Spisu treści:

Jak wyłączyć JTAG przed załadowaniem Atmegas 40DIP z Arduino IDE Mightycore: 4 kroki
Jak wyłączyć JTAG przed załadowaniem Atmegas 40DIP z Arduino IDE Mightycore: 4 kroki

Wideo: Jak wyłączyć JTAG przed załadowaniem Atmegas 40DIP z Arduino IDE Mightycore: 4 kroki

Wideo: Jak wyłączyć JTAG przed załadowaniem Atmegas 40DIP z Arduino IDE Mightycore: 4 kroki
Wideo: Programowanie przez Jtag Nbox 5800c STI7100 2024, Grudzień
Anonim
Jak wyłączyć JTAG przed załadowaniem Atmegas 40DIP z Arduino IDE Mightycore?
Jak wyłączyć JTAG przed załadowaniem Atmegas 40DIP z Arduino IDE Mightycore?

Ostatnio wykorzystałem atmegas 40 DIP do sterowania systemami przemysłowymi, ponieważ ten rodzaj mikrokontrolera dostarcza wiele wejść/wyjść analogowych lub cyfrowych, więc nie są potrzebne żadne ekspandery.

Atmegas32/644p/1284p zawiera sposób na pobranie utworzonego szkicu, który nazywa się "JTAG" (patrz

en.wikipedia.org/wiki/JTAG, aby uzyskać więcej wyjaśnień). Jeśli używasz Arduino IDE lub LDmicro (IEC 61-131), szkice są pobierane przez port SPI, a piny JTAG (4 piny: PC2(D18) PC3(D19) PC4(D20) PC5(D21) nie są dostępne dla niczego Więc musisz wyłączyć JTAG w swoim programie.

Z arduino IDE wystarczy dodać 3 linie kodu w sekcji konfiguracji w następujący sposób:

uint8_t tmp = 1<< JTD;

MCUCR = tmp;

MCUCR = tmp;

Metoda podwójnej linii MCUCR.

Z LDmicro nie mogłem nic zrobić.

Aby uniknąć tych problemów, załadowałem po manipulacji rejestrem MCUCR moje atmegas z Arduino IDE pod Mightycore. Sposób na spalenie bezpieczników przy wyłączonym JTAG.

Krok 1: Obliczanie bezpiecznika obwodu 40DIP:

Obliczanie bezpiecznika obwodu 40DIP
Obliczanie bezpiecznika obwodu 40DIP
Obliczanie bezpiecznika obwodu 40DIP
Obliczanie bezpiecznika obwodu 40DIP
Obliczanie bezpiecznika obwodu 40DIP
Obliczanie bezpiecznika obwodu 40DIP

Przejdź do strony internetowej:

eleccelerator.com/fusecalc/fusecalc.php?chi…

Wybierz dobry obwód (atmega1284p w moim przykładzie, ale w ten sam sposób z innymi atmegazami 40 DIP) i spójrz na "U hfuse:w:0x99:m" i odznacz JTAGEN, więc daje "U hfuse:w:0xD9:m". Pamiętaj o wartości 0xD9.

Krok 2: Poszukaj pliku Boards.txt w katalogu Mightycore:

Szukam pliku Boards.txt w katalogu Mightycore
Szukam pliku Boards.txt w katalogu Mightycore
Szukam pliku Boards.txt w katalogu Mightycore
Szukam pliku Boards.txt w katalogu Mightycore

Na komputerze przeszukaj katalog Mightycore. Dla mnie w C:\user\myself\AppData\Local\Arduino15\packages\Mightycore\Harware\avr\2.0.0\boards.txt.

Krok 3: Zmodyfikuj plik Boards.txt i bootload za pomocą Mightycore:

Zmodyfikuj Boards.txt i Bootload za pomocą Mightycore
Zmodyfikuj Boards.txt i Bootload za pomocą Mightycore

Spójrz na blok częstotliwości zegara atmega1284p z Notepad++.

Zmodyfikuj każdy wysoki bezpiecznik, np. „1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd6” na „1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd9” (0xd9 to poprzednia wartość, którą musiałeś zapamiętać). Zapisz go.

Następnie wystarczy postępować zgodnie z metodą ładowania podaną w

www.instructables.com/id/Arduino-18x-Clone…

Otóż to.

Krok 4: Wniosek:

Teraz zarabiasz 4 I/O i nie musisz wykonywać żadnych manipulacji rejestrami w swoich szkicach. Możesz także cofnąć się i włączyć JTAGEN i ponownie uruchomić komputer ponownie.

Dziękuję wszystkim ciekawym tutorialom w sieci, które dały mi kilka kluczy do sukcesu w tym projekcie.

Zalecana: