Schémata jednoduchých avr programátorů. Programátoři mikrokontrolérů AVR

Pro rádiové techniky, kteří milují design elektronická zařízení, čas od času je třeba při navrhování používat mikrokontroléry. Aplikace těchto polovodičových součástek

otevírá velké vyhlídky pro rádiového technika. Mikrokontroléry vyrábí pouze několik společností, jejichž vůdci jsou MicrochipTechnology, ATMEL, ARMLimited. Hlavní rys podobných zařízení je potřeba jejich softwarového firmwaru. K tomu jsou potřební programátoři. Dnes je obrovský výběr odlišné typy programátoři, ale cena takových produktů je velmi vysoká a ne každý radioamatér si může dovolit koupit takové zařízení.

V tomto článku se budeme zabývat USB programátorem (AVR) založeným na mikrokontroléru Atmega 8. Tento produkt je dostatečně jednoduchý na to, aby si ho amatérský amatér mohl sestavit sám a neutrácel spoustu peněz za značkový produkt. USB programátor (AVR), který jsme si vybrali, má minimální páskování mikrokontroléru, což umožňuje sestavit velmi miniaturní zařízení. Takový produkt nezabírá mnoho místa, má běžnou jednotku flash. Programátor USB (AVR) ve svém obvodu obsahuje typ těla mikrokontroléru - TQFP 32 (nemělo by být zaměňováno s typem DIP balíčku, protože mají různé pinouty). Schéma takového zařízení je zobrazeno na fotografii.

Pojďme k popisu obvodu zařízení. Propojka J1 se používá, když je potřeba blikat mikrokontrolér s taktovací frekvencí nižší než 1,5 MHz. Je-li to žádoucí, lze tento můstek snadno vyloučit z obvodu, k tomu 25. kolík ovladače sedí na „zemi“. V takovém případě bude programátor AVR-USB vždy pracovat na nižší frekvenci. Je třeba poznamenat, že programování nezabere více času, ale samozřejmě se rozhodnete. Zenerovy diody D1, D2 se používají k přizpůsobení úrovně mezi sběrnicí USB a programátorem. Modrá LED signalizuje připravenost zařízení k programování mikrokontroléru, červená dioda svítí během programování. Obvod má konektor IDC-06, ke kterému jsou vyvedeny piny, jehož pinout odpovídá typu ATMEL 6pólového ISP konektoru. Napájecí kontakty mikrokontrolérů se zobrazují na specifikovaném konektoru, jsou převzaty z USB portu osobní počítač, proto je nutné dávat pozor, aby se neumožnilo programování řídicí jednotky pomocí stejného konektoru, k tomu je nutné připojit resetovací kontakty na řídicí jednotku a na konektor (na obrázku je znázorněna červená tečkovaná čára).

Propojka redukce rychlosti programátoru a konektor mikrokontroléru jsou umístěny na konci zařízení. To je programátor USB (AVR), jak vidíte, vše je elementární.

Po sestavení zařízení musíte zablikat řídicí mikrokontrolér, k tomu doporučuji použít program PonyProg. Při programování spustíme krystal pro provoz z externího zdroje hodin 12 MHz.

Programátor USB pro AVR popsaný v tomto článku pracuje se všemi mikrokontroléry AVR, umožňuje vám blikat, sledovat nahraný obsah zařízení, mazat čipy, měnit konfiguraci.

Stejně jako divadlo začíná věšákem na kabáty, začíná programování mikrokontrolérů výběrem dobrého programátora. Protože začínám ovládat mikrokontroléry ATMEL, musel jsem se důkladně seznámit s tím, co nabízejí výrobci. Nabízejí spoustu zajímavých a chutných věcí, jen za přemrštěné ceny. Například šátek s jedním čtyřnohým mikrokontrolérem s dvojicí odporů a diod jako páskování je jako „letadlo“. Proto prudce vyvstala otázka vlastní montáže programátora. Po dlouhém studiu zkušeností zkušených radioamatérů bylo rozhodnuto sestavit osvědčený programátor USBASP, jehož mozkem je mikrokontrolér Atmega8 (existují také možnosti firmwaru pro atmega88 a atmega48). Minimální postroj mikrokontroléru vám umožňuje sestavit poměrně miniaturní programátor, který si můžete vždy vzít s sebou jako flash disk.

Autorem tohoto programátoru je Němec Thomas Fichl, jeho vývojová stránka s diagramy, soubory desky plošných spojů a řidiči.
Jakmile bylo rozhodnuto sestavit miniaturní programátor, překreslil jsem obvod pro mikrokontrolér Atmega8 v balíčku TQFP32 (pinout mikrokontroléru se liší od pinout v balíčku DIP):

Propojka J1 se používá, pokud je nutné blikat mikrokontrolér s taktovací frekvencí pod 1,5 MHz. Mimochodem, tento můstek lze úplně vyloučit položením 25. ramene MK na zem. Poté bude programátor vždy pracovat na nižší frekvenci. Pro sebe jsem si všiml, že programování při snížené rychlosti je o zlomek sekundy delší, a proto nyní netahejte za propojku, ale neustále s ní šiju.
Zenerovy diody D1 a D2 se používají k přizpůsobení úrovní mezi programátorem a USB sběrnicí, bez nich to bude fungovat, ale ne na všech počítačích.
Modrá LED indikuje připravenost k programování obvodu, červená se rozsvítí během programování. Piny pro programování jsou směrovány na konektor IDC-06, pinout odpovídá standardu ATMEL pro 6pinový konektor ISP:

Na tento konektor jsou vyvedeny kontakty pro napájení programovatelných zařízení, zde jsou převzaty přímo z USB port počítač, takže musíte být opatrní a vyhnout se zkratům. Stejný konektor se také používá pro programování řídicího mikrokontroléru; k tomu stačí připojit resetovací piny na konektoru a na mikronech (viz červená tečkovaná čára na schématu). V autorově schématu se to provádí pomocí propojky, ale já jsem neuspořádal desku a odstranil ji. U jednoho firmwaru stačí jednoduchá propojka. Ukázalo se, že deska byla oboustranná, o rozměrech 45x18 mm.

Konektor pro programování a jumper pro snížení rychlosti programátoru jsou umístěny na konci zařízení, to je velmi výhodné

Ovládejte firmware mikrokontroléru
Po sestavení zařízení tedy zůstává nejdůležitější věc - blikat řídicí mikrokontrolér. Pro tyto účely se dobře hodí přátelé, kteří mají počítače s portem LPT :) Nejjednodušší programátor s pěti dráty pro AVR
Mikrokontrolér lze blikat z programovacího konektoru připojením resetovacích kolíků mikrokontroléru (29 stop) a konektoru. Firmware existuje pro modely Atmega48, Atmega8 a Atmega88. Je vhodné použít jeden z posledních dvou kamenů, protože podpora pro verzi pro Atmega48 byla ukončena a nejnovější verze firmware pochází z roku 2009. A verze pro 8. a 88. kameny jsou neustále aktualizovány a zdá se, že autor plánuje přidat do funkce debugger v obvodu. Vezmeme firmware na německou stránku. Pro plnění řídicí program v mikrokontroléru jsem použil program PonyProg. Při programování je nutné zahájit práci krystalu z externího zdroje hodin na 12 MHz. Obrazovka programu s nastavením propojek pojistek v PonyProg:

Po provedení firmwaru by se měla rozsvítit LED připojená k 23. noze mikrokontroléru. Bude to jisté znamení, že programátor úspěšně blikal a je připraven k použití.

Instalace ovladače
Instalace byla provedena na stroji pomocí systém Windows 7 a nevznikly žádné problémy. Při prvním připojení k počítači se zobrazí zpráva, že bylo detekováno nové zařízení, které vás vyzve k instalaci ovladače. Instalaci vybereme ze zadaného umístění:

Okamžitě se zobrazí okno s varováním, že ovladač, který má být nainstalován, nemá digitální podpis v malých:

Zatloukáme se do varování a pokračujeme v instalaci, po krátké pauze se zobrazí okno informující o úspěšném dokončení operace instalace ovladače

To je vše, nyní je programátor připraven pracovat.

Khazama AVR programátor
Pro práci s programátorem jsem si vybral blikač programátoru Khazama AVR. Skvělý program s minimalistickým rozhraním.

Funguje se všemi běžnými mikrokontroléry AVR, umožňuje flashovat a eeprom, prohlížet obsah paměti, mazat čip a měnit konfiguraci pojistkových bitů. Obecně docela standardní sada. Pojistky se konfigurují výběrem zdroje hodin z rozevíracího seznamu, čímž se výrazně sníží pravděpodobnost omylu uzamčení krystalu. Pojistky lze také změnit umístěním zaškrtávacích políček do spodního pole, zatímco jackdaw nelze umístit na neexistující konfiguraci, což je také velké plus z hlediska bezpečnosti.

Pojistky se do paměti MK zapisují, jak asi uhodnete, stisknutím tlačítka Zapsat vše. Tlačítko Uložit uloží aktuální konfiguraci a Načíst vrátí uloženou. Pravdou je, že jsem na to nikdy nemohl přijít praktická aplikace tato tlačítka. Tlačítko Výchozí je určeno k záznamu standardní konfigurace pojistek, jako jsou mikrokontroléry pocházející z výroby (obvykle 1 MHz z interního RC).
Obecně platí, že po celou dobu používání tohoto programátoru se to ukázalo z nejlepší stránky, pokud jde o stabilitu a rychlost práce. Fungovalo to bez problémů jak na starém stacionárním PC, tak na novém notebooku.

Soubor PCB si můžete stáhnout ve SprintLayout do

V životě každého uživatele přijde okamžik, kdy je nutné upgradovat hardware počítače. Ale ne všechno je tak šťastné, jak se zdálo - výrobci počítačů nyní podle jejich názoru vyhazují zbytečné věci jako porty COM a LPT (to platí i pro majitele notebooků). A co by měl nešťastný uživatel udělat, pokud potřebuje pro zařízení flashovat další AVR MK? Existuje pouze jedna cesta ven - vytvořit programátor USB (nebo koupit). Dnes to uděláme ... (myslím shromáždění). Naším cílem je tedy vytvořit programátor USBasp.

Při výrobě tohoto programátoru však existuje jeden problém - musíte blikat ovladač používaný v tomto programátoru. Hledáme tedy přítele, který má v počítači funkční COM- nebo LPT-port a po zakoupení piva jdeme k němu (on za takový dárek neodmítne). Když jsem vytvořil svůj USBasp, použil jsem nejjednodušší programátor ISP - programátor Gromov (Gromov - vývojář Tvůrce algoritmu). Takže vám řeknu, jak pomocí něj vytvořit USBasp. Nejprve jsme pájeli programátor Gromov podle následujícího schématu:

Otázky jako: „Kde je kresba desky?“ zůstane nezodpovězeno, protože odpověď je v archivu. Poznamenám jednu věc: blikající ovladač potřebuje napájecí napětí 5 voltů (+ a -), které lze odebírat z počítačová jednotka napájení (používá se konektor z diskety). K tomu na desce programátoru AVR poskytujeme místo pro připojení 2 napájecích vodičů. Bude to vypadat asi takto:

Hlavní přípravné operace byly dokončeny a nyní pokračujeme v akcích k dosažení hlavního cíle - shromáždění USBasp.

Na sestavě není nic zvláštního k popisu, protože zde je vše jasné. Pro sebe jsem vyloučil propojky Jmp1 a Jmp3 z obvodu, nahradil Jmp2 přepínačem a místo konektoru ISP typu BH-10 jsem nainstaloval DB-9M. Řídicí jednotka byla samostatně zablikána pomocí následující desky:


Sestavený programátor USB AVR jsem vložil do vhodného plastového pouzdra:

A teď vám řeknu, jak zajistit, aby USBasp fungoval. Co máme k dispozici (veškerý software v archivu):

1. Gromovův programátor;
2. software s názvem Uniprof;
3. programátor USBasp;
4. firmware pro řadič USBasp;
5. ovladač pro instalaci USBasp do systému.

Na sestavený USBasp jsme umístili propojky Jmp1 (obvod RESET) a Jmp2 (+ 5V), připojili jsme k němu programátor Gromov a celou věc připojili k COM portu počítače, nezapomeňte na napájení 5 voltů. Spouštíme Uniprof, pokud je vše sestaveno a připojeno správně, pak by měl být určen typ kontroléru, který má blikat:

Stiskněte tlačítko s obrázkem složky a nápisem HEX a zadejte cestu k souboru firmwaru řadiče USBasp. Ve výsledku získáme následující:

Zbývající stisknutí tlačítka Prog s červenou šipkou spustí blikající režim. Čekáme na konec vyplňování hexadecimálního souboru. A teď největším rake je fuse-bit firmware. Do zaškrtávacího políčka „Brzda“ (zaškrtávací políčko nad džbánkem na pivo) vložte daw (důležité zejména pro šikovné systemisty), stiskněte tlačítko „Pojistka“ (ala kladivo a srp: -D) a nastavte pojistky podle obrázku :

Po instalaci zaškrtávacích políček stiskněte tlačítka "Zapsat" v každém z bajtů.

Poznámka (najednou někdo použije Gromovův programátor a další): v Uniprofu zaškrtávací políčko naproti pojistce znamená, že je nastaveno na 1 (v PoniProg znamená daw nastavení na 0).

Požádali jste o to? Pokuta! Odstraňte propojku J1 a zapojte programátor do počítače. Nyní krmíme dříví a v systému se objevuje nové zařízení s názvem USBasp. Stáhněte si avrdude do řadičů flash, ale má to nevýhodu - je to konzole. Dobří strýcové nás však nenechali v potížích a vytvořili grafický shell pro avrdude, kterému se říká USBASP_AVRDUDE_PROG. Když blikají pojistkové bity prostřednictvím avrdudy, zaškrtávací políčko v zaškrtávacím políčku naproti bitu znamená 0.

To je vše. O spuštění programátoru budou otázky - jen se zeptejte, nějak na to přijdeme.

Programátor je hardwarově-softwarové zařízení, které se používá ke čtení nebo zápisu informací na paměťové zařízení (interní mikrokontroléry). Pokud radioamatér potřebuje naprogramovat zařízení mikrokontroléru jednou, můžete použít běžný programátor, který se připojuje k portu COM nebo LPT. Například nejjednodušší programátor AVR je kabel se 6 a 4 odpory (programátor PonyProg).

Pomocí konvenčního programátoru můžete načíst hexadecimální programy do mnoha mikrokontrolérů AVR, aniž byste ztráceli čas a peníze. Programátor lze navíc použít jako obvodový programátor, takže můžete naprogramovat mikrokontrolér AVR, aniž byste jej museli vyjímat ze zařízení.

Tito programátoři jsou připojeni k počítači pomocí speciálního programu (který se také nazývá programátor). Vysílá s a zařízení jej zapisuje pouze do paměti mikroobvodu. Programátory lze připojit přes sériový nebo paralelní port, přes USB konektor atd. Moderní programátoři jsou obvykle připojeni přes USB.

Programátor USB je určen k programování mikroprocesorových zařízení určité společnosti (v závislosti na značce programátoru) ve smontované podobě. Výrazně zjednodušuje proces konfigurace softwaru.

Jak připojit USB programátor?

Chcete-li zařízení používat, musíte jej připojit k jednomu z portů USB v počítači. Poté se v počítači zobrazí zpráva o připojení nového zařízení USBasp a LED na samotném programátoru se rozsvítí, což znamená, že zařízení je úspěšně připojeno.

Poté musíte nainstalovat ovladače, aby operační systém mohl správně pracovat s tímto zařízením. Poté bude možné připojit mikroprocesorové zařízení k rozhraní ISP. Během programování se rozsvítí druhá LED.

Programátor má zpravidla dvě rozhraní - jedno pro připojení mikrokontroléru, druhé pro připojení k počítači. Pro připojení mikrokontroléru můžete použít režim sériového programování ISP. A do počítače toto zařízení připojuje přes standardní USB konektor.

Chcete-li ovládat programátor, musíte si nainstalovat speciální programy... Nejlepší je používat aplikace v okně. Pro práci se zařízením lze použít například ExtremeBurner, Khazama, avrguge a další.

Zjistíme, co je rozhraní ISP, budeme se zabývat levným a pohodlným programátorem USB ISP. Uvažujme schémata nejjednodušších programátorů pro mikrokontroléry AVR využívajících porty COM a LPT počítače. Tyto informace jsou dostačující k blikání většiny modelů mikrokontrolérů AVR nejen v systému Linux, ale také v jiných operačních systémech.

ISP In-System Programming Interface

Abyste mohli napsat program na mikrokontrolér AVR, potřebujete programátora.

Programátor je malý elektronický obvod, který umožňuje připojit mikrokontrolér k jednomu z portů počítače (COM, LPT, USB) pro následné čtení a zápis firmwaru (programování).

Existuje mnoho různých návrhů programátorů pro mikrokontroléry AVR, které jsou připojeny k různým portům v počítači.

Nejspolehlivější a nejpohodlnější možností je programátor, který se připojuje k portu USB, protože je nový stolní počítače a notebooky již neinstalují porty COM a LPT.

V hotových zařízeních je programátor připojen k mikrokontroléru přes rozhraní ISP (In System Programming) - rozhraní pro programování v systému. Rozhraní ISP se skládá z několika vodičů, kterými jsou odesílány hodinové signály a data pro připojení programátoru k mikrokontroléru.

Rozhraní ISP je zpravidla umístěno na deskách ve formě deseti nebo šesti pinů, ke kterým je programátor připojen pomocí vhodného konektoru přes smyčku.

Postava: 4. Rozhraní ISP na desce.

Přiřazení pinů v rozhraní ISP:

  1. VCC - napájecí zdroj plus, obvykle + 5V;
  2. GND - mínus výkon, zem (zem);
  3. MOSI - datový vstup (Master Out Slave In);
  4. MISO - datový výstup (Master In Slave Out);
  5. SCK - hodinový signál (sériové hodiny);
  6. RST - vydá resetovací signál.

Pro programování mikrokontroléru v obvodu postačují pouze 4 piny, protože mikrokontrolér lze napájet ze samotného obvodu, kde je nainstalován.

Jak připojit programátor k čipu mikrokontroléru AVR, pokud není pájen do obvodu? - velmi jednoduché, v případě potřeby použití stejných pinů rozhraní ISP, napájení mikrokontroléru ze zdroje napájení.

Programátor USB ISP ASP

Pro práci s čipy AVR jsem zakoupil levné USB Programátor ISP za přibližně 10 $. Takové zařízení je nyní v prodeji v mnoha domácích i zahraničních online obchodech, takže s nákupem by neměly být žádné problémy.

Postava: 5. USB ISP - programátor se smyčkou pro obvodové programování mikrokontrolérů AVR od ATMEL.

Tento programátor je bezpečný, má malé rozměry a je podporován většinou programů firmwaru AVR pro mikrokontroléry. USB ISP funguje pod operační systémy Linux, Mac OS X a Windows. U systému Linux nemusíte instalovat žádné ovladače; po připojení programátoru k portu USB je zařízení okamžitě detekováno a připraveno k použití.

Níže uvedu pinout konektorů programátoru USB ISP - bude to pro nás užitečné později při připojení k mikrokontroléru.

Postava: 6. Umístění pinů na uSB konektor ISP (pinout).

Postava: 7. Umístění kontaktů v konektorech konektoru připojeného k programátoru USB ISP.

Co když neexistuje způsob, jak koupit programátor USB ISP? - Mikrokontroléry můžete programovat pomocí jednoduchých domácích programátorů, které se připojují k portu COM nebo LPT, ale je lepší vytvořit si USB ISP sami, zatímco jednou pro něj programujete mikroobvod mikroobvodu pomocí jednoduchého domácího programátoru přes port COM nebo LPT.

Postava: 8. Schematický diagram domácí programátor USB ASP ISP.

Podrobné informace o výrobě USB ASP, deskách plošných spojů, ovladačích a firmwaru pro mikrokontrolér najdete na oficiálních webových stránkách: http://www.fischl.de/usbasp/

Kromě toho je na tomto bezplatném programátoru na internetu spousta zdrojů, existuje mnoho hotových rozvržení desek plošných spojů, včetně programu SprintLayout, takže se v tomto článku nebudeme podrobně zabývat.

Programátor pomocí portu COM

Tento programátor se také nazývá „Gromovův programátor“, na počest toho, kdo vynalezl tento obvod, tvůrce programu Algorithm Builder ( grafické prostředí pro programování AVR pod Windows pomocí algoritmického jazyka) - G.L. Gromova.

Tento programátor umožňuje programovat čipy AVR pomocí portu COM počítače - rozhraní RS232. K sestavení takového programátoru potřebujete minimum dílů - 3 diody, 7 rezistorů, konektor DB-9 nebo DB-25 (podle toho, který protikus je ve vašem počítači nainstalován) a konektor ISP pro připojení k mikrokontroléru ( nebo jen pár vodičů k čipu). V obvodu lze použít jakékoli diody s nízkým výkonem.

Postava: 9. Schematický diagram mikrokontrolérů AVR programátoru přes port COM počítače.

Pro úplnost uvedu níže pinout portů RS-232 pro možnosti DB-9 a DB-25.

Postava: 10. RS232 - COM port, rozložení pinů DB-9.

Postava: 11. RS232 COM Port DB-25 - rozložení pinů na konektorech.

Programátor používající port LPT

Jak víme, LPT port počítače je navržen pro připojení místní tiskárna (Port místní tiskárny), ale přesto se často používá pro připojení různá zařízení a domácí výrobky. V tento případ můžeme jej použít k programování mikrokontrolérů AVR, které pro tento účel velmi shromažďujeme jednoduché schéma který je uveden níže.

Postava: 12. Schéma programátoru pro mikrokontroléry AVR využívající LPT port počítače.

Jak vidíte, obvod je ještě jednodušší než u možnosti c, zde k připojení k portu LPT počítače potřebujeme pouze 4 rezistory s nízkým výkonem a konektor (zástrčka, s kolíky).

Postava: 13. Uspořádání pinů pro konektory LPT-portu.

Všechny části a připojení lze umístit do pouzdra konektoru LPT a pro připojení k mikrokontroléru vytáhněte smyčku s konektorem pro rozhraní ISP nebo jednoduše nezbytné vodiče pro připojení k mikročipu.

Software a poznámky

Po připojení programátoru COM nebo LPT k mikrokontroléru nesmíte zapomenout dodávat energii samotnému mikročipu. Jako zdroj energie pro mikrokontrolér můžete použít baterie nebo napájecí zdroj se stabilizátorem, což bude nejbezpečnější jak pro port počítače, tak pro čip. Už jsme diskutovali o tom, jak ji používat.

Pod Linuxem existuje velmi výkonný program, který může pracovat s programátory USB ASP, COM a LPT - to je program AVRDUDE, o nichž pojednáme v následujících částech.

Chcete-li flashovat AVR čipy pod Windows pomocí dat programátorů COM a LPT, potřebujete program UniРrof od Nikolaev, který je univerzálním programátorem pro AVR (avr.nikolaew.org).

POZORNOST! Při sestavování a používání programátorů využívajících port COM nebo LPT počítače buďte velmi opatrní a opatrní, jednoduchá chyba může snadnozapálit ty porty. Pro normální provoz těchto programátorů byste se měli pokusit použít co nejkratší vodiče od konektoru k obvodu programátoru a mikrokontroléru. Je žádoucí mít počítačový mikroprocesor s frekvencí nepřesahující 1–2 GHz a pro programování čipů je vhodné používat jako OS Win2000 nebo WinXP.

Je také důležité vědět, že adaptéry USB-RS232 (USB-COM Port) s programátorem Gromov s největší pravděpodobností nebudou fungovat, pouze ty s novějšími mikroobvody budou fungovat, takže je lepší hledat stroj s nativním portem COM.

Závěr

Programátoři, o nichž se pojednává v článku, jsou jen některé z nejdostupnějších a jednoduchá řešení z velkého seznamu programátorů AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, FTDI programátoři a další.

Nyní můžete v každém případě sestavit programátor, který máte k dispozici, a blikat alespoň jeden mikroobvod, na jehož základě můžete sestavit jiného pohodlnějšího programátora nebo nějaký druh zařízení.

V příštím článku zjistíme, jak připojit různé modely mikrokontrolérů AVR k programátoru, zjistíme, kde získat informace o zapojení mikrokontrolérů.