Inhoudsopgave:

Hoe JTAG uit te schakelen voordat u Atmegas 40DIP opstart met Arduino IDE Mightycore - Ajarnpa
Hoe JTAG uit te schakelen voordat u Atmegas 40DIP opstart met Arduino IDE Mightycore - Ajarnpa

Video: Hoe JTAG uit te schakelen voordat u Atmegas 40DIP opstart met Arduino IDE Mightycore - Ajarnpa

Video: Hoe JTAG uit te schakelen voordat u Atmegas 40DIP opstart met Arduino IDE Mightycore - Ajarnpa
Video: THINKPAD MEC1663 JTAG PORT ENABLE 2024, November
Anonim
Hoe JTAG uit te schakelen voordat u Atmegas 40DIP opstart met Arduino IDE Mightycore
Hoe JTAG uit te schakelen voordat u Atmegas 40DIP opstart met Arduino IDE Mightycore

Onlangs heb ik atmegas 40 DIP mogen gebruiken om industriële systemen te besturen omdat dit soort microcontroller veel analoge of digitale I/O levert, dus je hebt geen uitbreidingen nodig.

De atmegas32/644p/1284p bevatten een manier om de schets die u maakt, de "JTAG" genoemd, te downloaden (zie

en.wikipedia.org/wiki/JTAG voor meer uitleg). Als je Arduino IDE of LDmicro (IEC 61-131) gebruikt, worden de schetsen gedownload via de SPI-poort en zijn de JTAG-pinnen (4 pins: PC2(D18) PC3(D19) PC4(D20) PC5(D21) nergens voor beschikbaar Je moet dus JTAG in je programma uitschakelen.

Met arduino IDE hoef je alleen maar 3 regels code toe te voegen in de setup-sectie als volgt:

uint8_t tmp = 1<< JTD;

MCUCR = tmp;

MCUCR = tmp;

De tweemaal MCUCR-lijnmethode.

Met LDmicro kon ik niets doen.

Om deze problemen te voorkomen, heb ik na MCUCR-registermanipulatie mijn atmegas met Arduino IDE onder Mightycore bootloaded. Een manier om de zekeringen te verbranden met een JTAG uitgeschakeld.

Stap 1: De zekeringberekening van uw 40DIP-circuit:

De zekeringberekening van uw 40DIP-circuit
De zekeringberekening van uw 40DIP-circuit
De zekeringberekening van uw 40DIP-circuit
De zekeringberekening van uw 40DIP-circuit
De zekeringberekening van uw 40DIP-circuit
De zekeringberekening van uw 40DIP-circuit

Ga naar de website:

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

Kies het goede circuit (atmega1284p in mijn voorbeeld, maar op dezelfde manier met andere 40 DIP-atmegas) en kijk naar de "U hfuse:w:0x99:m" en schakel JTAGEN uit zodat het "U hfuse:w:0xD9:m" geeft. Houd de 0xD9-waarde in gedachten.

Stap 2: Zoeken naar het Boards.txt-bestand in de Mightycore-directory:

Op zoek naar het Boards.txt-bestand in de Mightycore-directory
Op zoek naar het Boards.txt-bestand in de Mightycore-directory
Op zoek naar het Boards.txt-bestand in de Mightycore-directory
Op zoek naar het Boards.txt-bestand in de Mightycore-directory

Zoek op uw pc in de Mightycore-directory. Voor mij in C:\user\myself\AppData\Local\Arduino15\packages\Mightycore\Harware\avr\2.0.0\boards.txt.

Stap 3: Wijzig de Boards.txt en Bootload met Mightycore:

Wijzig de Boards.txt en Bootload met Mightycore
Wijzig de Boards.txt en Bootload met Mightycore

Kijk eens naar het klokfrequentieblok van de atmega1284p met Notepad++.

Wijzig elke hoge zekering zoals "1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd6" naar "1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd9" (0xd9 de vorige waarde die u moest onthouden). Sla het op.

Dan hoef je alleen maar de bootloading-methode te volgen die wordt gegeven in

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

Dat is het.

Stap 4: Conclusie:

Nu verdien je 4 I/O en hoef je geen registermanipulatie te doen in je schetsen. Je kunt ook teruggaan en JTAGEN inschakelen en nog een keer opnieuw opstarten.

Dank aan alle interessante tutorials op het web die me enkele sleutels gaven om te slagen in dit project.

Aanbevolen: