Nejběžnější metodou programování pro AVR je sériové programování v obvodu (funkce ISP) přes komunikační rozhraní SPI. Všechny mikrokontroléry AVR kromě Tiny11 a Tiny28 mají tuto funkci. Tento režim je pohodlný, protože umožňuje programovat AVR umístěný v hotovém zařízení, to znamená, že nemusíte vyjímat mikrokontrolér z desky pokaždé, když jej chcete přeprogramovat.

Rozhraní SPI (Serial Peripheral Interface) se skládá ze 3 linek: SCK, MISO a MOSI.

SCK (SPI hodiny)
Hodinový signál, který programátor generuje na lince SCK.

MOSI (Master Out, Slave In – slave vstup, master výstup)
Linka přenosu dat z programátoru (master) do programovatelného mikrokontroléru (slave). Během každého impulsu na lince SCK je z programátoru do programovatelného mikrokontroléru přenesen jeden bit po lince MOSI.

MISO (Master In, Slave Out – slave výstup, master vstup)
Linka přenosu dat z programovatelného mikrokontroléru (slave) do programátoru (master). Pro každý impuls na lince SCK se z mikrokontroléru do programátoru přenese jeden bit po lince MISO.

Pro zajištění normální komunikace po třech SPI linkách je nutné propojit společnou zem (GND) na programátoru a programovatelném zařízení.

Pro vstup a setrvání v režimu sériového programování se používá resetovací linka (RESET). Při programování AVR musí být aktivní (nízký). Také při mazání čipu musí být na konci cyklu mazání vygenerován impuls na lince RESET.

Kromě toho lze výstup regulátoru XTAL1 použít pro taktování regulátoru s programátorem.

Při programování AVR funguje programátor vždy jako hlavní zařízení a mikrokontrolér jako podřízený.

Softwarová část

Na internetu lze najít mnoho programů, které pracují s určitými typy zařízení pro programování mikrokontrolérů AVR. Většina těchto programů je zcela zdarma.

AVRDUDE
Balíček WinAVR obsahuje výkonný nástroj AVRDUDE. Umožňuje načítat programy a data do paměti mikrokontroléru a také je odtud číst. AVRDUDE používá rozhraní SPI. Existují verze pro Windows a Linux. Původní kód napsal Brian S. Dean a jmenoval se avrprog.

AVRDUDE lze použít prostřednictvím příkazového řádku ke čtení nebo zápisu všech typů paměti čipu nebo prostřednictvím GUI. Použití AVRDUDE z příkazové řádky je vhodné pro plné programování celé paměti čipu, zatímco GUI je užitečné pro prozkoumávání obsahu paměti, změnu jednotlivých bajtů EEPROM, pojistkových a zámkových bitů atd.

ČTĚTE VÍCE
Co dělat, aby lobelie kvetly?

AVRDUDE podporuje mnoho typů programovacích zařízení, fungujících přes USB rozhraní, paralelní port (LPT) a sériový port (COM).

Pro práci s AVRDUDE přes grafické rozhraní můžete použít program USBASP AVRDUDE PROG, určený pro práci s programátorem USBASP, o kterém bude řeč dále.

Hardware

USBASP – USB programátor pro AVR
Programátor USBasp je nejběžnějším rozpočtovým programátorem, který pracuje s portem USB. Jeho cena zpravidla nepřesahuje 300 rublů (2017).

Typicky je programátor USBasp vybaven kabelem se dvěma konektory na koncích. Umístění pinů na ISP konektoru programátoru a na kabelu je vidět na následujícím obrázku. (NC znamená „nepřipojeno“ – nepřipojeno.)

Před instalací ovladače byste měli zasunout USB konektor programátoru do volného USB portu na vašem počítači. Ve Správci zařízení by se mělo objevit nové zařízení.

Chcete-li nainstalovat ovladač USBasp, musíte spustit soubor InstallDriver.exe z rozbaleného archivu. Ve Windows XP můžete jednoduše nasměrovat Průvodce nově rozpoznaným hardwarem na složku s rozbalenými soubory ovladače.

Po dokončení instalace ovladače by se ve správci zařízení měla objevit ikona programátoru bez žlutého vykřičníku.

Po instalaci ovladače v systému Windows XP může být nutné před zahájením práce s programátorem restartovat počítač.

Nejjednodušší programátor AVR

Schéma jednoduchého AVR programátoru
Konektor připojený k paralelnímu portu PC je znázorněn ze strany kolíků

Pokud máte počítač s paralelním portem a operačním systémem Windows XP nebo nižším, můžete použít nejjednodušší programátor, který se skládá z 25pinového konektoru pro paralelní (LPT) port, 4 rezistorů (150 Ohmů) a propojovacího délka kabelu by neměla přesáhnout 1,5 metru. Rezistory jsou nutné pro ochranu paralelního portu v případě nesprávné instalace a některých dalších problémů.

Obvod je pojmenován podle vývojových desek společnosti Atmel pro rychlé zahájení práce s mikrokontroléry AVR. Pokud chcete, aby se váš programátor téměř přesně shodoval s programátorem STK200, měli byste nainstalovat propojku pro určení programátoru pomocí softwaru (není nutné pro AVRDUDE). Propojka by měla propojit piny 2-12.

Je třeba poznamenat, že obvod nemá mezilehlou vyrovnávací paměť a není galvanicky izolován ve vztahu k paralelnímu portu, proto, aby se zabránilo poškození paralelního portu, by měl být kabel připojován a odpojován s vypnutým napájením na deska, kde je nainstalován ovladač. Kromě toho, když je programátor připojen k paralelnímu portu, měli byste se vyhnout zkratování jeho pinů.

ČTĚTE VÍCE
Proč se sekera nazývá sekera?

Při použití tohoto programátoru musíte v makefile zadat:

Konfigurace AVRDUDE při práci s paralelním portem

Ve Windows 2000 a Windows XP je přímá operace s paralelním (LPT) portem zakázána, takže pro normální provoz AVRDUDE musíte nainstalovat ovladač giveio.sys. Chcete-li nainstalovat tento ovladač, přejděte do složky WinAVRbin a spusťte soubor install_giveio.bat (ovladač můžete ze systému odebrat spuštěním souboru remove_giveio.bat).
Ve Windows 98 nejsou vyžadována žádná speciální nastavení.

Pro práci s nejjednodušším LPT programátorem je vhodná i bezplatná GNU utilita PonyProg určená pro programování Flash čipů se sériovým přístupem. PonyProg existuje ve verzích pro Windows a Linux. Má podporu ruského jazyka. Lze použít standardní sériový (COM) nebo paralelní (LPT) port.

Toto je původní článek myROBOT.ru
Trvalá adresa článku: http://myrobot.ru/stepbystep/mc_programmer.php