Sommario:

Come disabilitare JTAG prima del bootload di Atmegas 40DIP con Arduino IDE Mightycore: 4 passaggi
Come disabilitare JTAG prima del bootload di Atmegas 40DIP con Arduino IDE Mightycore: 4 passaggi

Video: Come disabilitare JTAG prima del bootload di Atmegas 40DIP con Arduino IDE Mightycore: 4 passaggi

Video: Come disabilitare JTAG prima del bootload di Atmegas 40DIP con Arduino IDE Mightycore: 4 passaggi
Video: LDTO12: Raspberry Pi: un Ponte tra IT e Embedded 2024, Dicembre
Anonim
Come disabilitare JTAG prima del bootload di Atmegas 40DIP con Arduino IDE Mightycore
Come disabilitare JTAG prima del bootload di Atmegas 40DIP con Arduino IDE Mightycore

Recentemente ho avuto modo di utilizzare l'atmegas 40 DIP per controllare i sistemi industriali perché questo tipo di microcontrollore fornisce molti I/O analogici o digitali quindi non hai bisogno di espansori.

L'atmegas32/644p/1284p include un modo per scaricare lo schizzo che crei chiamato "JTAG" (vedi

en.wikipedia.org/wiki/JTAG per ulteriori spiegazioni). Se usi Arduino IDE o LDmicro (IEC 61-131) gli sketch vengono scaricati dalla porta SPI e i pin JTAG (4 pin: PC2(D18) PC3(D19) PC4(D20) PC5(D21) non sono disponibili per nulla Quindi devi disabilitare JTAG nel tuo programma.

Con arduino IDE devi solo aggiungere 3 righe di codice nella sezione di configurazione in questo modo:

uint8_t tmp = 1<< JTD;

MCUCR = tmp;

MCUCR = tmp;

Il metodo della doppia linea MCUCR.

Con LDmicro non sono riuscito a fare nulla.

Per evitare questi problemi, ho avviato il bootload dopo la manipolazione del registro MCUCR il mio atmegas con Arduino IDE sotto Mightycore. Un modo per bruciare i fusibili con un JTAG disabilitato.

Passaggio 1: il calcolo del fusibile del circuito 40DIP:

Il calcolo del fusibile del tuo circuito 40DIP
Il calcolo del fusibile del tuo circuito 40DIP
Il calcolo del fusibile del tuo circuito 40DIP
Il calcolo del fusibile del tuo circuito 40DIP
Il calcolo del fusibile del tuo circuito 40DIP
Il calcolo del fusibile del tuo circuito 40DIP

Vai al sito web:

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

Scegli il circuito corretto (atmega1284p nel mio esempio ma allo stesso modo con altri 40 DIP atmegas) e guarda "U hfuse:w:0x99:m" e deseleziona JTAGEN in modo che dia "U hfuse:w:0xD9:m". Tieni a mente il valore 0xD9.

Passaggio 2: ricerca del file Boards.txt nella directory Mightycore:

Cercando il file Boards.txt nella directory Mightycore
Cercando il file Boards.txt nella directory Mightycore
Cercando il file Boards.txt nella directory Mightycore
Cercando il file Boards.txt nella directory Mightycore

Sul tuo PC cerca nella directory Mightycore. Per me in C:\user\myself\AppData\Local\Arduino15\packages\Mightycore\Harware\avr\2.0.0\boards.txt.

Passaggio 3: modifica Boards.txt e Bootload con Mightycore:

Modifica Boards.txt e Bootload con Mightycore
Modifica Boards.txt e Bootload con Mightycore

Dai un'occhiata al blocco della frequenza di clock dell'atmega1284p con Notepad++.

Modifica ogni fusibile alto come "1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd6" in "1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd9" (0xd9 il valore precedente che dovevi ricordare). Salvalo.

Quindi devi solo seguire il metodo di bootload fornito in

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

Questo è tutto.

Fase 4: Conclusione:

Ora guadagni 4 I/O e non devi fare alcuna manipolazione del registro nei tuoi schizzi. Puoi anche tornare indietro e abilitare JTAGEN e riavviare ancora una volta.

Grazie a tutti i tutorial interessanti sul web che mi hanno fornito alcune chiavi per riuscire in questo progetto.

Consigliato: