20.6.2010, Krakow Poland
This project is very old and no longer developed.
Zniechęcony rozwiązaniami dostępnymi w internecie postanowiłem napisać własny bootloader dla mikrokontrolerów z rodziny AVR. Gotowe rozwiązania jakie znalazłem były zbyt rozbudowane lub po prostu nie działały. Projekt powstał w około 6-7 dni ale tylko dla tego że było to zagadnienie zupełnie mi obce i wszystkiego musiałem się nauczyć. Rozwiązanie jest proste i znacząco upraszcza proces programowania. Mam nadzieję że mój projekt będzie dobrą bazą dla własnych rozwiązań!
Nazwa pochodzi od angielskiego bootstrap load. Słówko bootstrap pochodzi z kolei od powiedzenia “pull oneself up by one`s bootstraps” czyli dawać sobie samemu radę. Bootloader jest więc programem który “sam siebie wczytuje”. Bootloader jest uruchamiany jako pierwszy w chwili zresetowania procesora (dzięki ustawieniu odpowiednich fusebitów). Bootloader znajduje się na końcu pamięci flash. Jedynie kod umieszczony w sekcji bootloadera może wykonywać pewne operacje, np zapisywać pamięć Flash, kod położony poza tą sekcją nie ma dostępu do tego typu operacji. Dzięki temu za pomocą bootloadera możemy zmieniać zawartość pamięci a dane do wpisania uC odbiera przez zaprogramowany przez nas interfejs (uart, i2c, ręcznie, ultradźwiękami, mikrofalami, kartą sd … co tylko programista wymyśli). Pozwala to zrezygnować z programatora.
Założenia:
Co udało się dodatkowo “upchnąć”:
Dodatkowe plusy rozwiązania:
Pytania i odpowiedzi:
Tutaj screen z Programmer's Notepad, czyli jak to działa w praktyce:
Po wgraniu bootloadera wystarczy prosty interfejs, ja zastosowałem przejściówkę com/usb oraz układ max232 jak w zdjęciu poniżej, można użyć ftdi czy adaptera bluetooth (np BTM-222). W porównaniu z usbasp znacząco zredukowałem ilość przewodów na płytce szczególnie że w projektach często wykorzystuje rs.
Przydatne linki: