Schémata a materiály. Aktualizace firmwaru programátoru

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

Jakmile bylo rozhodnuto sestavit miniaturní programátor, překreslil jsem obvod pro mikrokontrolér Atmega8 v pouzdře TQFP32(pinout mikrokontroléru se liší od pinoutu v balíčku DIP):

Jumper J1 se používá, pokud je potřeba flashovat mikrokontrolér s taktovací frekvencí pod 1,5 MHz. Mimochodem, tento skokan se dá úplně eliminovat položením 25. nohy MK na zem. Potom bude programátor vždy pracovat se sníženou frekvencí. Osobně jsem si všiml, že programování při snížené rychlosti trvá o zlomek vteřiny déle, a proto nyní jumper netahám, ale neustále s ním šiju.
Zenerovy diody D1 a D2 slouží k přizpůsobení úrovní mezi programátorem a USB sběrnicí, půjde to i bez nich, ale ne na všech počítačích.
Modrá LED indikuje, že obvod je připraven k programování, červená LED svítí během programování. Programovací kontakty jsou umístěny na konektoru IDC-06, vývod odpovídá standardu ATMEL pro 6pinový ISP konektor:


Tento konektor obsahuje kontakty pro napájení programovatelných zařízení, zde je odebírán přímo z USB portu počítače, takže je třeba dávat pozor a vyhnout se zkratům. Stejný konektor se používá i pro programování řídicího mikrokontroléru, k tomu stačí připojit piny Reset na konektoru a na mikrokontroléru (viz červená tečkovaná čára ve schématu). V autorském obvodu je to provedeno propojkou, ale desku jsem nezaneřádil a odstranil. Pro jeden firmware postačí jednoduchá drátěná propojka. Deska se ukázala jako oboustranná o rozměrech 45x18 mm.


Programovací konektor a propojka pro snížení rychlosti programátoru jsou umístěny na konci zařízení, což je velmi pohodlné


Firmware řídícího mikrokontroléru

Po sestavení zařízení tedy zbývá nejdůležitější flashnout ovládací mikrokontrolér. Přátelé, kteří ještě mají počítače s LPT portem, se pro tyto účely dobře hodí :)Nejjednodušší pětivodičový programátor pro AVR
Mikrokontrolér lze flashnout z programovacího konektoru připojením resetovacích pinů mikrokontroléru (29 noha) a konektoru. Firmware existuje pro modely Atmega48, Atmega8 a Atmega88. Je vhodné použít jeden z posledních dvou kamenů, protože podpora verze Atmega48 byla ukončena a nejnovější verze firmwaru pochází z roku 2009. A verze pro 8. a 88. kámen jsou neustále aktualizovány a zdá se, že autor plánuje přidat k funkčnosti in-circuit debugger. Firmware získáváme z německé stránky. Pro nahrání ovládacího programu do mikrokontroléru jsem použil program PonyProg. Při programování je nutné nastavit krystal tak, aby pracoval z externího zdroje hodin na 12 MHz. Screenshot programu s nastavením pojistkových propojek v PonyProg:


Po bliknutí firmwaru by se měla rozsvítit LED připojená k noze 23 mikrokontroléru. To bude zaručeným znamením, že programátor byl úspěšně naprogramován a je připraven k použití.

Instalace ovladače

Instalace byla provedena na stroji s Windows 7 a nenastaly žádné problémy. Při prvním připojení k počítači se zobrazí zpráva oznamující, že bylo zjištěno nové zařízení, s výzvou k instalaci ovladače. Vyberte instalaci ze zadaného umístění:


Vyberte složku, kde se palivové dříví nachází, a klikněte na Další


Okamžitě se objeví okno s upozorněním, že instalovaný ovladač nemá digitální podpis pro malé softwary:


Upozornění ignorujeme a pokračujeme v instalaci, po krátké pauze se objeví okno informující o úspěšném dokončení instalace ovladače


To je vše, programátor je nyní připraven k použití.

Khazama AVR programátor

Pro práci s programátorem jsem zvolil Flasher Khazama AVR Programmer. Skvělý program s minimalistickým rozhraním.


Funguje se všemi oblíbenými mikrokontroléry AVR, umožňuje flashovat a eeprom, prohlížet obsah paměti, mazat čip a také měnit konfiguraci pojistkových bitů. Obecně zcela standardní sada. Nastavení pojistky se provádí výběrem zdroje hodin z rozevíracího seznamu, čímž se výrazně sníží pravděpodobnost zablokování krystalu omylem. Pojistky lze také změnit umístěním checkboxů do spodního pole, ale nemůžete umístit checkboxy na neexistující konfiguraci, a to je také velké plus z hlediska bezpečnosti.


Pojistky se zapisují do paměti MK, jak asi tušíte, stisknutím tlačítka Zapsat vše. Tlačítko Uložit uloží aktuální konfiguraci a tlačítko Načíst vrátí uloženou konfiguraci. Pravda, praktické využití těchto tlačítek se mi nepodařilo vymyslet. Tlačítko Default je určeno pro záznam standardní konfigurace pojistek, té, se kterou mikrokontroléry přicházejí z výroby (obvykle 1 MHz z interního RC).
Obecně se za celou dobu, co tento programátor používám, ukázal jako nejlepší z hlediska stability a rychlosti provozu. Fungovalo to bez problémů jak na prastarém stolním PC, tak na novém notebooku.

Stáhněte si soubor PCBve SprintLayout můžete sledovat tento odkaz

Jaké první kroky by měl udělat radioamatér, pokud se rozhodne sestavit obvod na mikrokontroléru? Samozřejmě je zapotřebí řídicí program - „firmware“, stejně jako programátor.

A pokud s prvním bodem nejsou žádné problémy - hotový „firmware“ obvykle nahrají autoři obvodů, pak s programátorem jsou věci složitější.

Cena hotových USB programátorů je poměrně vysoká a nejlepším řešením by bylo sestavit si je sami. Zde je schéma navrhovaného zařízení (obrázky lze kliknout).

Hlavní část.

Instalační panel MK.

Původní schéma bylo převzato z webu LabKit.ru se svolením autora, za což mu patří velký dík. Jedná se o tzv. klon proprietárního programátoru PICkit2. Protože verze zařízení je „odlehčenou“ kopií proprietárního PICkitu2, autor nazval svůj vývoj PICkit-2 Lite, který klade důraz na snadnost montáže takového zařízení pro začínající radioamatéry.

Co umí programátor? Pomocí programátoru můžete flashovat nejdostupnější a nejoblíbenější MCU řady PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A atd.), stejně jako paměťové čipy EEPROM řady 24LC. Kromě toho může programátor pracovat v režimu převodníku USB-UART a má některé funkce logického analyzátoru. Obzvláště důležitou funkcí, kterou má programátor, je výpočet kalibrační konstanty vestavěného RC oscilátoru některých MCU (například PIC12F629 a PIC12F675).

Nutné změny.

V obvodu došlo k některým změnám, které jsou nutné k tomu, aby pomocí programátoru PICkit-2 Lite bylo možné zapisovat/mazat/číst data z paměťových čipů EEPROM řady 24Cxx.

Ze změn, které byly provedeny ve schématu. Přidáno připojení z pinu 6 DD1 (RA4) na pin 21 panelu ZIF. Pin AUX se používá výhradně pro práci s paměťovými čipy 24LC EEPROM (24C04, 24WC08 a analogy). Přenáší data, proto je na schématu programovacího panelu označen slovem „Data“. Při programování mikrokontrolérů se pin AUX většinou nepoužívá, i když je potřeba při programování MK v režimu LVP.

Přibyl také pull-up rezistor 2 kOhm, který je zapojen mezi piny SDA a Vcc paměťových čipů.

Všechny tyto úpravy jsem již provedl na desce plošných spojů po sestavení PICkit-2 Lite podle původního schématu autora.

Paměťové čipy 24Cxx (24C08 atd.) jsou široce používány v domácích rádiových zařízeních a někdy se musí flashovat, například při opravách CRT televizorů. K uložení nastavení používají paměť 24Cxx.

LCD televizory používají jiný typ paměti (paměť Flash). O tom, jak flashovat paměť LCD televizoru, jsem již mluvil. Pokud má někdo zájem, koukněte.

Kvůli nutnosti pracovat s mikroobvody řady 24Cxx jsem musel programátor „dodělat“. Nový plošný spoj jsem neleptal, pouze jsem na plošný spoj doplnil potřebné prvky. Tohle se stalo.

Jádrem zařízení je mikrokontrolér PIC18F2550-I/SP.

Toto je jediný čip v zařízení. PIC18F2550 MK je třeba "probliknout". Tato jednoduchá operace způsobuje mnohým zmatek, protože vzniká takzvaný problém „kuře a vejce“. Jak jsem to vyřešil vám řeknu o něco později.

Seznam dílů pro sestavení programátoru. V mobilní verzi přetáhněte tabulku doleva (přejetím doleva-doprava), abyste viděli všechny její sloupce.

název Označení Hodnocení/Parametry Značka nebo typ položky
Pro hlavní část programátora
Mikrokontrolér DD1 8bitový mikrokontrolér PIC18F2550-I/SP
Bipolární tranzistory VT1, VT2, VT3 KT3102
VT4 KT361
Dioda VD1 KD522, 1N4148
Schottkyho dioda VD2 1N5817
LED diody HL1, HL2 jakékoli 3 volty, Červené A zelená zářící barvy
Rezistory R1, R2 300 ohmů
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kOhm
R7, R8, R14 100 ohmů
R9, R10, R15, R16 4,7 kOhm
R11 2,7 kOhm
R13 100 kOhm
Kondenzátory C2 0,1 μ K10-17 (keramika), dovážené analogy
C3 0,47 mikronů
Elektrolytické kondenzátory C1 100uF * 6,3V K50-6, importované analogy
C4 47 uF * 16 V
Induktor (tlumivka) L1 680 uH unifikovaný typ EC24, CECL nebo domácí
Quartzový rezonátor ZQ1 20 MHz
USB zásuvka XS1 typu USB-BF
Skokan XT1 jakýkoli typ "skokanky"
Pro instalační panel mikrokontroléru (MK)
ZIF panel XS1 jakýkoli 40pinový ZIF panel
Rezistory R1 2 kOhm MLT, MON (výkon od 0,125 W a více), importované analogy
R2, R3, R4, R5, R6 10 kOhm

Nyní trochu o detailech a jejich účelu.

Zelená LED HL1 se rozsvítí po připojení napájení k programátoru a Červené LED HL2 svítí při přenosu dat mezi počítačem a programátorem.

Pro zajištění všestrannosti a spolehlivosti zařízení je použita zásuvka USB XS1 typu „B“ (čtvercová). Počítač používá zásuvku USB typu A. Není proto možné zaměnit zdířky propojovacího kabelu. Toto řešení také přispívá ke spolehlivosti zařízení. Pokud se kabel stane nepoužitelným, lze jej snadno vyměnit za nový bez nutnosti pájení nebo instalačních prací.

Jako 680 µH induktor L1 je lepší použít již hotový (např. typy EC24 nebo CECL). Ale pokud nemůžete najít hotový produkt, můžete si udělat plyn sami. K tomu je třeba navinout 250 - 300 závitů drátu PEL-0.1 na feritové jádro z induktoru typu CW68. Stojí za zvážení, že díky přítomnosti PWM se zpětnou vazbou není třeba se starat o přesnost hodnocení indukčnosti.

Napětí pro vysokonapěťové programování (Vpp) od +8,5 do 14 voltů vytváří klíčový regulátor. Zahrnuje prvky VT1, VD1, L1, C4, R4, R10, R11. Pulsy PWM jsou odesílány z kolíku 12 PIC18F2550 do základny VT1. Zpětnou vazbu zajišťuje dělič R10, R11.

Pro ochranu prvků obvodu před zpětným napětím z programovacích linek při použití USB programátoru v režimu ICSP (In-Circuit Serial Programming) se používá dioda VD2. VD2 je Schottkyho dioda. Měl by být zvolen s úbytkem napětí na P-N přechodu ne větším než 0,45 voltu. Dioda VD2 také chrání prvky před zpětným napětím, když je programátor používán v režimu převodu USB-UART a logického analyzátoru.

Při použití programátoru výhradně pro programování mikrokontrolérů v panelu (bez použití ICSP) můžete diodu VD2 úplně eliminovat (to jsem udělal já) a místo ní nainstalovat propojku.

Kompaktnost zařízení zajišťuje univerzální ZIF panel (Zero Insertion Force - s nulovou náročností na instalaci).

Díky němu můžete mikrokontrolér „napevno zapojit“ do téměř jakéhokoli pouzdra DIP.

Schéma "Instalační panel mikrokontroléru (MK)" ukazuje, jak musí být mikrokontroléry s různými kryty instalovány v panelu. Při instalaci MK byste měli věnovat pozornost skutečnosti, že mikrokontrolér v panelu je umístěn tak, že klíč na čipu je na straně páčky zámku panelu ZIF.

Takto je potřeba nainstalovat 18pinové mikrokontroléry (PIC16F84A, PIC16F628A atd.).

A zde jsou 8pinové mikrokontroléry (PIC12F675, PIC12F629 atd.).

Pokud potřebujete flashovat mikrokontrolér v obalu pro povrchovou montáž (SOIC), můžete použít adaptér nebo jednoduše připájet 5 pinů k mikrokontroléru, které jsou obvykle vyžadovány pro programování (Vpp, Clock, Data, Vcc, GND).

Hotový výkres plošného spoje se všemi změnami najdete na odkazu na konci článku. Otevřením souboru v programu Sprint Layout 5.0 v režimu „Tisk“ můžete nejen vytisknout vrstvu se vzorem tištěných vodičů, ale také zobrazit umístění prvků na desce plošných spojů. Věnujte pozornost izolované propojce, která spojuje pin 6 DD1 a pin 21 panelu ZIF. Musíte vytisknout výkres desky v zrcadlovém obraze.

Desku s plošnými spoji můžete vyrobit metodou LUT, stejně jako značku pro desky s plošnými spoji, pomocí tsaponlak (to jsem udělal já) nebo metodou „tužka“.

Zde je obrázek umístění prvků na desce plošných spojů (klikací).

Při instalaci je prvním krokem připájení propojek z pocínovaného měděného drátu, dále instalace nízkoprofilových prvků (odpory, kondenzátory, křemen, kolíkový konektor ISCP), dále tranzistory a naprogramovaný MK. Posledním krokem je instalace ZIF panelu, USB patice a utěsnění vodičů v izolaci (propojky).

"Firmware" mikrokontroléru PIC18F2550.

Soubor firmwaru - PK2V023200.hex musíte zapsat PIC18F2550I-SP MK do paměti pomocí libovolného programátoru, který podporuje mikrokontroléry PIC (například Extra-PIC). Použil jsem JDM Programmator JONIC PROG a program WinPic800.

Firmware můžete nahrát do MCU PIC18F2550 pomocí stejného proprietárního programátoru PICkit2 nebo jeho nové verze PICkit3. Samozřejmě to můžete udělat s domácím PICkit-2 Lite, pokud jej někdo z vašich přátel dokázal sestavit před vámi :).

Rovněž stojí za to vědět, že „firmware“ mikrokontroléru PIC18F2550-I/SP (soubor PK2V023200.hex) se zapíše při instalaci programu PICkit 2 Programmer do složky spolu se soubory samotného programu. Přibližné umístění souboru PK2V023200.hex - "C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex" . Pro uživatele, kteří mají na svém počítači nainstalovanou 32bitovou verzi systému Windows, se cesta k umístění bude lišit: "C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex" .

Pokud jste nemohli vyřešit problém „kuře a vejce“ pomocí navrhovaných metod, můžete si na webu AliExpress koupit hotový programátor PICkit3. Tam to vyjde mnohem levněji. Psal jsem o tom, jak nakupovat díly a elektronické stavebnice na AliExpress.

Aktualizace firmwaru programátoru.

Pokrok se nezastaví a Microchip čas od času vydává aktualizace pro svůj software, včetně programátorů PICkit2, PICkit3. Samozřejmě můžeme také aktualizovat ovládací program našeho domácího PICkit-2 Lite. K tomu budete potřebovat program PICkit2 Programmer. Co to je a jak jej používat - o něco později. Mezitím pár slov o tom, co je třeba udělat pro aktualizaci firmwaru.

Chcete-li aktualizovat software programátoru, musíte zavřít propojku XT1 na programátoru, když je odpojen od počítače. Poté připojte programátor k PC a spusťte PICkit2 Programmer. Když je XT1 zavřený, režim se aktivuje zavaděč ke stažení nové verze firmwaru. Poté v PICkit2 Programmer přes menu „Nástroje“ - „Stáhnout operační systém PICkit 2“ otevřete dříve připravený hex soubor aktualizovaného firmwaru. Dále proběhne proces aktualizace softwaru programátoru.

Po aktualizaci je potřeba odpojit programátor od PC a odstranit propojku XT1. V normálním režimu je propojka otevřená. Verzi softwaru programátoru zjistíte v nabídce „Help“ - „About“ v programu PICkit2 Programmer.

To vše je o technických problémech. A nyní o softwaru.

Práce s programátorem. Programátor PICkit2.

Pro práci s USB programátorem budeme muset do počítače nainstalovat program PICkit2 Programmer. Tento speciální program má jednoduché rozhraní, snadno se instaluje a nevyžaduje speciální konfiguraci. Za zmínku stojí, že s programátorem můžete pracovat pomocí vývojového prostředí MPLAB IDE, ale pro flashování/mazání/čtení MK stačí jednoduchý program - PICkit2 Programmer. Doporučuji.

Po instalaci programu PICkit2 Programmer připojte sestavený USB programátor k počítači. Zároveň se rozsvítí zelená LED („napájení“) a operační systém rozpozná zařízení jako "Programátor mikrokontrolérů PICkit2" a nainstalujte ovladače.

Spusťte program PICkit2 Programmer. V okně programu by se měl objevit nápis.

Pokud není programátor připojen, v okně programu se zobrazí děsivá zpráva a krátké pokyny „Co dělat?“ v angličtině.

Pokud je programátor připojen k počítači s nainstalovaným MK, program jej při spuštění detekuje a upozorní nás na to v okně PICkit2 Programmer.

Gratulujeme! První krok byl učiněn. A o tom, jak používat program PICkit2 Programmer, jsem mluvil v samostatném článku. Další krok .

Požadované soubory:

    Uživatelská příručka PICkit2 (ruština) vezměte nebo.

S rozvojem výpočetní techniky je pokaždé méně a méně počítačů vybavených porty COM a LPT. To zase způsobuje potíže, zejména radioamatérům, spojené se spárováním programovacích nástrojů mikrokontroléru s osobním počítačem.

Tento článek popisuje USB programátor pro mikrokontroléry AVR, který si můžete sami sestavit. Je postaven na mikrokontroléru Atmega8 a je schopen provozu z USB konektoru počítače. Tento programátor je kompatibilní s STK500 v2.

Popis USB programátoru

USB programátor je postaven na desce vyrobené z jednostranné fólie ze sklolaminátu. Na desce jsou 2 propojky: jedna je umístěna pod konektorem SPI, druhá propojka je umístěna poblíž stejného konektoru.

Po utěsnění všech dílů je potřeba mikrokontrolér Atmega8 flashnout firmwarem uvedeným na konci článku. Pojistky, které je potřeba nastavit při programování mikrokontroléru Atmega8, by měly vypadat takto:

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

Je třeba připomenout, že v některých programech jsou nastavení pojistek nastavena v opačném směru. Například v programu CodeVisionAVR je potřeba zaškrtnout políčka u výše uvedených pojistek a v programu PonyProg naopak.

Programování Atmega8 přes LPT port počítače

Nejrychlejší a nejlevnější způsob programování Atmega8 je použití LPT programátoru pro AVR. Podobné schéma je uvedeno níže.

Mikrokontrolér je napájen jednoduchým regulátorem napětí 78L05. Jako programovací shell můžete použít program UniProf.

Když poprvé zapnete program a když ovladač není připojen, stisknutím tlačítka „LPTpins“ musíte nakonfigurovat piny portu LPT následovně:

Při spuštění UniProf automaticky určí typ mikrokontroléru. Firmware Atmega8_USB_prog.hex nahrajeme do paměti UniProf a odmítneme připojení souboru EEPROM.

Pojistky nastavíme následovně (pro program UniProF) stisknutím tlačítka „FUSE“:

Chcete-li si nastavení zapamatovat, stiskněte všechna tři tlačítka „Write“. Poté kliknutím na „Erase“ nejprve vymažeme paměť flashovaného mikrokontroléru. Poté klikněte na „Prog“ a počkejte na dokončení firmwaru.

Nastavení programátoru USB

Poté, co je náš mikrokontrolér flashován, musí být nainstalován na desce USB programátoru. Dále připojíme programátor k USB portu počítače, ale zatím nedodáváme napájení.

Nastavení portu:

Nastavení terminálu:

Nastavení ASCII:

Nyní, po dokončení všech procedur, napájíme USB programátor. LED HL1 by měla 6krát zablikat a poté zůstat svítit.

Chcete-li zkontrolovat spojení mezi USB programátorem a počítačem, stiskněte v programu HyperTerminal 2x klávesu „Enter“. Pokud je vše v pořádku, měli bychom vidět následující obrázek:

Pokud tomu tak není, zkontrolujte znovu instalaci, zejména linku TxD.

Dále vstoupíme do programátoru verze 2.10, protože bez něj nebude programátor pracovat s „top-level“ programy. Chcete-li to provést, zadejte „2“ a stiskněte „Enter“, zadejte „a“ (anglicky) a stiskněte „Enter“.

USB programátor je schopen rozpoznat připojení programovatelného mikrokontroléru. To se provádí formou sledování „vytažení“ signálu Reset do zdroje napájení. Tento režim se zapíná a vypíná následovně:

  • „0“, „Enter“ - režim je deaktivován.
  • „1“, „Enter“ - režim je povolen.

Změna programovací rychlosti (1 MHz):

  • „0“, „Enter“ – maximální rychlost.
  • „1“, „Enter“ – snížená rychlost.

Tím jsou přípravné práce dokončeny, nyní můžete zkusit flashnout nějaký mikrokontrolér.

(Staženo: 1 203)

Jednoho dne jsem se rozhodl sestavit jednoduchý LC metr pro pic16f628a a přirozeně musel být něčím flashován. Dříve jsem měl počítač s fyzickým COM portem, ale nyní mám pouze USB a desku pci-lpt-2com. Pro začátek jsem sestavil jednoduchý JDM programátor, ale jak se ukázalo, nechtěl pracovat ani s deskou pci-lpt-com, ani s adaptérem usb-com (nízké napětí signálů RS-232). Pak jsem spěchal hledat programátory usb pic, ale tam, jak se ukázalo, bylo vše omezeno na použití drahých pic18f2550/4550, které jsem přirozeně neměl a je škoda používat tak drahé MK, pokud jsem velmi málokdy něco dělat ve špičkách (preferuji av- Ano, flashovat je není problém, jsou mnohem levnější a zdá se mi, že je na nich jednodušší psát programy). Po dlouhém brouzdání po internetu v jednom z mnoha článků o programátoru EXTRA-PIC a jeho různých variantách jeden z autorů napsal, že extrapic funguje s libovolnými com porty a dokonce i s adaptérem usb-com.

Obvod tohoto programátoru využívá převodník logických úrovní max232.

Myslel jsem, že když použijete usb adaptér, bylo by velmi hloupé dvakrát převádět usb na usart TTL, TTL na RS232, RS232 zpět na úrovně TTL, pokud stačí vzít signály TTL portu RS232 z usb- čip převodníku usart.

Takže jsem udělal. Vzal jsem čip CH340G (který má všech 8 signálů com portu) a připojil jej místo max232. A toto se stalo.

V mém obvodu je propojka jp1, která není v extra špičce, nainstaloval jsem ji, protože jsem nevěděl, jak se bude TX výstup chovat na úrovni TTL, tak jsem ji umožnil invertovat na zbývající volné NAND prvek a jak se ukázalo, bylo to správně, na pinu TX je logická jednička, a proto je na pinu VPP při zapnutí 12 voltů, ale při programování se nic nestane (i když softwarově můžete invertovat TX) .

Po složení desky přišel čas na testování. A tady přišlo hlavní zklamání. Programátor byl okamžitě identifikován (s programem ic-prog) a začal pracovat, ale velmi pomalu! V zásadě - podle očekávání. Poté jsem v nastavení com portu nastavil maximální rychlost (128 kilobaud) a začal testovat všechny nalezené programy pro JDM. V důsledku toho se PicPgm ukázal jako nejrychlejší. Můj pic16f628a byl plně flashován (hex, eeprom a config) plus ověření asi 4-6 minut (čtení je pomalejší než zápis). IcProg funguje také, ale pomaleji. V programování nebyly žádné chyby. Zkoušela jsem flashnout i eeprom 24c08, výsledek stejný - vše šije, ale velmi pomalu.

Závěry: programátor je vcelku jednoduchý, neobsahuje drahé součástky (CH340 - 0,3-0,5 $, k1533la3 lze obecně najít mezi rádiovým smetím), funguje na jakémkoli počítači, notebooku (a dokonce můžete používat tablety na Windows 8/10 ). Nevýhody: je velmi pomalý. Vyžaduje také externí napájení pro signál VPP. V důsledku toho se mi zdálo, že pro občasné blikání špiček je to snadno opakovatelná a levná možnost pro ty, kteří nemají po ruce starý počítač s potřebnými porty.

Zde je fotografie hotového zařízení:

Jak říká píseň: "Udělal jsem ho z toho, co bylo." Sada dílů je velmi rozmanitá: SMD i DIP.

Pro ty, co si troufnou obvod zopakovat, bude jako převodník usb-uart vhodný téměř jakýkoli (ft232, pl2303, cp2101 atd.), místo k1533la3 bude vhodný k555, myslím, že i řada k155 nebo zahraniční analog 74als00, může dokonce pracovat s logickými prvky NOT typu k1533ln1. Přikládám vlastní desku plošných spojů, ale zapojení tam může překreslit každý na prvky, které byly k dispozici.

Seznam radioprvků

Označení Typ Označení Množství PoznámkaProdejnaMůj poznámkový blok
IC1 ČipCH340G1 Do poznámkového bloku
IC2 ČipK1533LA31 Do poznámkového bloku
VR1 Lineární regulátor

LM7812

1 Do poznámkového bloku
VR2 Lineární regulátor

LM7805

1 Do poznámkového bloku
VT1 Bipolární tranzistor

KT502E

1 Do poznámkového bloku
VT2 Bipolární tranzistor

KT3102E

1 Do poznámkového bloku
VD1-VD3 Usměrňovací dioda

1N4148

2 Do poznámkového bloku
C1, C2, C5-C7 Kondenzátor100 nF5 Do poznámkového bloku
C3, C4 Kondenzátor22 pF2 Do poznámkového bloku
HL1-HL4 Světelná diodaŽádný4 Do poznámkového bloku
R1, R3, R4 Rezistor

1 kOhm

3
22. září 2011 ve 20:11 hodin

Miniaturní USB programátor pro mikrokontroléry AVR

  • Programování mikrokontroléru

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

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

Jumper J1 se používá, pokud je potřeba flashovat mikrokontrolér s taktovací frekvencí pod 1,5 MHz. Mimochodem, tento skokan se dá úplně eliminovat položením 25. nohy MK na zem. Potom bude programátor vždy pracovat se sníženou frekvencí. Osobně jsem si všiml, že programování při snížené rychlosti trvá o zlomek vteřiny déle, a proto nyní jumper netahám, ale neustále s ním šiju.
Zenerovy diody D1 a D2 slouží k přizpůsobení úrovní mezi programátorem a USB sběrnicí, půjde to i bez nich, ale ne na všech počítačích.
Modrá LED indikuje, že obvod je připraven k programování, červená LED svítí během programování. Programovací kontakty jsou umístěny na konektoru IDC-06, vývod odpovídá standardu ATMEL pro 6pinový ISP konektor:

Tento konektor obsahuje kontakty pro napájení programovatelných zařízení, zde je odebírán přímo z USB portu počítače, takže je třeba dávat pozor a vyhnout se zkratům. Stejný konektor se používá i pro programování řídicího mikrokontroléru, k tomu stačí připojit piny Reset na konektoru a na mikrokontroléru (viz červená tečkovaná čára ve schématu). V autorském obvodu je to provedeno propojkou, ale desku jsem nezaneřádil a odstranil. Pro jeden firmware postačí jednoduchá drátěná propojka. Deska se ukázala jako oboustranná o rozměrech 45x18 mm.

Programovací konektor a propojka pro snížení rychlosti programátoru jsou umístěny na konci zařízení, což je velmi pohodlné

Firmware řídícího mikrokontroléru
Po sestavení zařízení tedy zbývá nejdůležitější flashnout ovládací mikrokontrolér. Kamarádi, kteří mají ještě počítače s LPT portem, se pro tyto účely dobře hodí :) Nejjednodušší pětidrátový programátor pro AVR
Mikrokontrolér lze flashnout z programovacího konektoru připojením resetovacích pinů mikrokontroléru (29 noha) a konektoru. Firmware existuje pro modely Atmega48, Atmega8 a Atmega88. Je vhodné použít jeden z posledních dvou kamenů, protože podpora verze Atmega48 byla ukončena a nejnovější verze firmwaru pochází z roku 2009. A verze pro 8. a 88. kámen jsou neustále aktualizovány a zdá se, že autor plánuje přidat k funkčnosti in-circuit debugger. Firmware získáváme z německé stránky. Pro nahrání ovládacího programu do mikrokontroléru jsem použil program PonyProg. Při programování je nutné nastavit krystal tak, aby pracoval z externího zdroje hodin na 12 MHz. Screenshot programu s nastavením pojistkových propojek v PonyProg:

Po bliknutí firmwaru by se měla rozsvítit LED připojená k noze 23 mikrokontroléru. To bude zaručeným znamením, že programátor byl úspěšně naprogramován a je připraven k použití.

Instalace ovladače
Instalace byla provedena na stroji s Windows 7 a nenastaly žádné problémy. Při prvním připojení k počítači se zobrazí zpráva oznamující, že bylo zjištěno nové zařízení, s výzvou k instalaci ovladače. Vyberte instalaci ze zadaného umístění:

Okamžitě se objeví okno s upozorněním, že instalovaný ovladač nemá digitální podpis pro malé softwary:

Upozornění ignorujeme a pokračujeme v instalaci, po krátké pauze se objeví okno informující o úspěšném dokončení instalace ovladače

To je vše, programátor je nyní připraven k použití.

Khazama AVR programátor
Pro práci s programátorem jsem zvolil Flasher Khazama AVR Programmer. Skvělý program s minimalistickým rozhraním.

Funguje se všemi oblíbenými mikrokontroléry AVR, umožňuje flashovat a eeprom, prohlížet obsah paměti, mazat čip a také měnit konfiguraci pojistkových bitů. Obecně zcela standardní sada. Nastavení pojistky se provádí výběrem zdroje hodin z rozevíracího seznamu, čímž se výrazně sníží pravděpodobnost zablokování krystalu omylem. Pojistky lze také změnit umístěním checkboxů do spodního pole, ale nemůžete umístit checkboxy na neexistující konfiguraci, a to je také velké plus z hlediska bezpečnosti.

Pojistky se zapisují do paměti MK, jak asi tušíte, stisknutím tlačítka Zapsat vše. Tlačítko Uložit uloží aktuální konfiguraci a tlačítko Načíst vrátí uloženou konfiguraci. Pravda, praktické využití těchto tlačítek se mi nepodařilo vymyslet. Tlačítko Default je určeno pro záznam standardní konfigurace pojistek, té, se kterou mikrokontroléry přicházejí z výroby (obvykle 1 MHz z interního RC).
Obecně se za celou dobu, co tento programátor používám, ukázal jako nejlepší z hlediska stability a rychlosti provozu. Fungovalo to bez problémů jak na prastarém stolním PC, tak na novém notebooku.

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