Wgrywanie bootlader-a i programu do mikro kontrolera Atmega16
KROK 1:
wchodzimy w katalog: arduino\hardware\arduino\variants
(katalog arduino oznacza folder w którym znajduje się program arduino)
następnie w folderze variants tworzymy nowy folder i zmieniamy jego nazwę na: mega16
w stworzonym folderze "mega16" zapisujemy plik
pins_arduino.h
który pobieramy ze strony:
https://github.com/sudar/arduino-extra-cores/blob/master/variants/mega16/pins_arduino.h
(jeśli nie możemy pobrać - tworzymy w folderze mega16 nowy dokument tekstowy, wklejamy do niego cały kod z powyższej strony, i zmieniamy nazwę pliku na: pins_arduino.h )
KROK 2:
na stronie:
http://www.engbedded.com/fusecalc
1. Wybieramy z rozwijanej listy "AVR part name:" interesujący nas mikrokontroler
w tym przypadku jest to "ATmega16".
2. Wybieramy z rozwijanej listy rodzaj i częstotliwość oscylatora którym taktowany będzie procesor mikrokontrolera ( Int. - oscylator wewnętrzny ; Ext - oscylator zewnętrzny)
Ja wybrałem wewnętrzny oscylator RC o częstotliwości taktowania 8MHz
3. Jeśli nie korzystamy z interfejsu JTAG odznaczamy zaznaczenie "JTAG Interface Enabled; [JTAGEN=0]"
jeśli tego nie odznaczymy, niektóre wyjścia mikokontrolera nie będą dostępne do normalnego użytkowania.
Wszystkie zmiany ustawień zaznaczone są na poniższym obrazku:
Klikamy na przycisk "Apply feature settings" aby zapisać dokonane zmiany.
Przewijamy stronę na dół aż do tabelki:
Zapisujemy sobie wartości Low i High
Wartości te są różne dla innych ustawień. Dla ustawień jak na pierwszym obrazku otrzymamy:
Low = 0xE4
High = 0xD9
otwieramy plik:
arduino-x.x.x-windows\arduino-1.0.4\hardware\arduino\boards.txt
najlepiej to zrobić za pomocą programu Notepad++ dostępny za darmo w internecie
na samym końcu pliku boards.txt wpisujemy:
##############################################################
atmega16.name=ATmega16 (internal 8 MHz)
atmega16.bootloader.low_fuses=0xE4
atmega16.bootloader.high_fuses=0xD9
atmega16.upload.maximum_size=16384
atmega16.build.mcu=atmega16
atmega16.build.f_cpu=8000000L
atmega16.build.core=arduino
atmega16.build.variant=mega16
W tym momencie należy zwrócić szczególną uwagę na linijki:
atmega16.bootloader.low_fuses=0xE4
atmega16.bootloader.high_fuses=0xD9
aby wartości low_fuses i high_fuses zgadzały się z zapisanymi wcześniej wartościami
(Jeżeli zrobiłeś wszystko jak w tym poradniku wartości powinny wyglądać jak wyżej.)
Zapisujemy plik i przechodzimy do wgrywania bootloadera
KROK 3:
łączymy arduino z atmegą16
Przyjrzyj się powyższemu obrazkowi i zwróć uwagę na piny nr 6, 7, 8, 9.
są to piny MOSI MISO SCK i RESET które należy podłączyć następująco:
Dla arduino mega1280 lub mega2560
RESET -> 53
MOSI -> 51
MISO -> 50
SCK -> 52
dla pozostałych arduino np. Arduino UNO:
RESET -> 10
MOSI -> 11
MISO -> 12
SCK -> 13
następnie podłączamy do Atmegi zasilanie:
5V -> VCC (pin nr 10 na powyższym obrazku)
GND -> GND
Dla zwrokowców:
![]() |
| Źródło: http://arduinoj.blogspot.com/2013/04/pierwsza-produkcyjna-implementacja_4.html |
Sprawdzamy 2 razy czy wszystko jest dobrze podłączone i podłączamy arduino do komputera.
Następnie wgrywamy na naszą płytkę arduino program "ArduinoISP" który będzie pośredniczył w programowaniu naszej ATmegi:
jeśli mamy podłączone arduino do komputera, wybieramy odpowiedni port COM:
Narzędzia(Tools)/ Port Szeregowy(Serial Port) i wybieramy port COM do którego mamy podłączoną płytkę.
Następnie:
wybieramy: Plik/Przykłady/ArduinoISP
lub w wersji anglojęzycznej : File/Examples/ArduinoISP
w zakładce Narzędzia (Tools) / Płytka (Boards) wybieramy nazwę naszego Arduino
w zakładce Narzędzia (Tools) / Programator (Programmer) wybieramy USBasp
i wysyłamy program ArduinoISP do naszej płytki klikając przycisk "wyślij"
po wgraniu programu przechodzimy do wgrywnia bootloadera
w menu Narzędzia/Płytka wybieramy: ATmega16 (internal 8 MHz)
(jeśli nie możesz znaleźć tej pozycji - wyłącz i włącz program Arduino i sprawdź czy na pewno dopisałeś kod do pliku boards.txt jak w kroku 2),
w menu Narzędzia/Programator wybieramy Arduino as ISP
a następnie klikamy Narzędzia/Wypal Bootloader
(jeśli pojawi się błąd tzn że źle zrobiliśmy poprzednie kroki lub źle połączony jest układ lub należy skorzystać z innej wersji Arduino (pamiętając o dodawaniu pliku pins_arduino.h i dodaniu wpisu do pliku boards.txt)
KROK 4
rozmieszczenie pinów Digital i Analog:Wgrywamy napisany program na ATmega16:
Ustawiamy kompilator jak przy wgrywaniu bootloadera tzn:
- odpowiedni port COM
- Płytka - ATmega16 (internal 8 MHz)
- Programator - Arduino as ISP
Sprawdzamy poprawność programu i klikamy "Wyślij"
jeśli program nie chce się przesłać sprawdź połączenie pomiędzy atmegą16 a Arduino, i upewnij się czy wgrałeś bootloader.
Artykuł ma charakter edukacyjny
Artykuł oparty o wiadomości ze strony http://arduinoj.blogspot.com/2013/04/pierwsza-produkcyjna-implementacja_4.html
Autor nie ponosi żadnej odpowiedzialności za skutki wykorzystania treści zawartych w artykule.





Wielkie dzięki za ten poradnik bez niego nie mógł bym uruchomić swojej atmegi 16 ;) Wszystkie pięknie działa.Pozdrawiam
OdpowiedzUsuń