Innehållsförteckning:

Så här inaktiverar du JTAG innan du startar Atmegas 40DIP med Arduino IDE Mightycore: 4 steg
Så här inaktiverar du JTAG innan du startar Atmegas 40DIP med Arduino IDE Mightycore: 4 steg

Video: Så här inaktiverar du JTAG innan du startar Atmegas 40DIP med Arduino IDE Mightycore: 4 steg

Video: Så här inaktiverar du JTAG innan du startar Atmegas 40DIP med Arduino IDE Mightycore: 4 steg
Video: Glömt lösenordet i Windows 10? Ingen fara - så här löser du problemet 2024, December
Anonim
Hur man inaktiverar JTAG innan man startar Atmegas 40DIP med Arduino IDE Mightycore
Hur man inaktiverar JTAG innan man startar Atmegas 40DIP med Arduino IDE Mightycore

Nyligen fick jag använda atmegas 40 DIP för att styra industrisystem eftersom denna typ av mikrokontroller levererar många analoga eller digitala I/O så att du inte behöver några utbyggare.

Atmegas32/644p/1284p inkluderar ett sätt att ladda ner skissen du skapar som kallas "JTAG" (se

en.wikipedia.org/wiki/JTAG för fler förklaringar). Om du använder Arduino IDE eller LDmicro (IEC 61-131) laddas skisser ner med SPI-porten och JTAG-stiften (4 stift: PC2 (D18) PC3 (D19) PC4 (D20) PC5 (D21) är inte tillgängliga för någonting Så du måste inaktivera JTAG i ditt program.

Med arduino IDE behöver du bara lägga till tre rader kod i installationsdelen så här:

uint8_t tmp = 1 << JTD;

MCUCR = tmp;

MCUCR = tmp;

Den två gånger MCUCR -linjemetoden.

Med LDmicro kunde jag inte göra någonting.

För att undvika dessa problem startade jag upp efter MCUCR -registermanipulation mina atmegas med Arduino IDE under Mightycore. Ett sätt att bränna säkringarna med en JTAG inaktiverad.

Steg 1: Säkringsberäkningen av din 40DIP -krets:

Säkringsberäkningen av din 40DIP -krets
Säkringsberäkningen av din 40DIP -krets
Säkringsberäkningen av din 40DIP -krets
Säkringsberäkningen av din 40DIP -krets
Säkringsberäkningen av din 40DIP -krets
Säkringsberäkningen av din 40DIP -krets

Gå till webbplatsen:

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

Välj den bra kretsen (atmega1284p i mitt exempel men på samma sätt med andra 40 DIP -atmegas) och titta på "U hfuse: w: 0x99: m" och avmarkera JTAGEN så det ger "U hfuse: w: 0xD9: m". Tänk på värdet 0xD9.

Steg 2: Letar efter Boards.txt -filen i Mightycore -katalogen:

Letar efter Boards.txt -filen i Mightycore -katalogen
Letar efter Boards.txt -filen i Mightycore -katalogen
Letar efter Boards.txt -filen i Mightycore -katalogen
Letar efter Boards.txt -filen i Mightycore -katalogen

Sök på din dator i Mightycore -katalogen. För mig i C: / user / myself / AppData / Local / Arduino15 / packages / Mightycore / Harware / avr / 2.0.0 / boards.txt.

Steg 3: Ändra Boards.txt och Bootload med Mightycore:

Ändra Boards.txt och Bootload med Mightycore
Ändra Boards.txt och Bootload med Mightycore

Ta en titt på klockfrekvensblocket för atmega1284p med Notepad ++.

Ändra varje hög säkring som "1284.meny.clock.16MHz_external.bootloader.high_fuses = 0xd6" till "1284.menu.clock.16MHz_external.bootloader.high_fuses = 0xd9" (0xd9 det tidigare värdet du måste komma ihåg). Spara det.

Sedan är det bara att följa uppstartsmetoden som anges

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

Det är allt.

Steg 4: Slutsats:

Nu tjänar du 4 I/O och du behöver inte göra någon registermanipulation i dina skisser. Du kan också gå tillbaka och aktivera JTAGEN och starta om en gång till.

Tack till alla intressanta självstudier på webben som gav mig några nycklar för att lyckas med detta projekt.

Rekommenderad: