Domácí programátor pro PIC řadiče.

Řekněte:
Z nějakého neznámého důvodu jsem se neustále snažil odložit své seznámení s mikrokontroléry na později. Možná myšlenka na použití digitálních technologických modulů vyvolala v hlavě nováčka, který se nikdy nepokusil dívat se za hranice analogové elektroniky, neopodstatněné obavy. Zároveň jsem však velmi jasně pochopil, jaké příležitosti mi poskytnou i ty nejlevnější mikrokontroléry. A pak jsem se jednoho dne rozhodl pochopit toto, na první pohled obtížné, ale také velmi zajímavé téma.

Bylo logické začít studiem teorie a sestavením projektu někoho jiného pomocí mikrokontroléru (dále MK). Myslím, že o prvním nestojí za to - na internetu je na toto téma tolik článků. Pokud jde o druhou, moje volba padla na toto zařízení. Jeho schéma je dostatečně jednoduché na opakování a zaměření na montáž bude také nadbytečné, pojďme tedy rovnou k firmwaru MK.

Programátor ExtraCheap Po krátkém hledání na internetu bylo nalezeno několik programátorských obvodů, ale většinou šlo o poměrně složitá zařízení určená k blikání několika typů MK. Chtěl jsem postavit obvod speciálně pro PIC12F629. Poté, co jsem strávil trochu více času, jsem konečně našel to, co jsem hledal - programátor ExtraCheap z projektu WiiFree.

K přenosu dat se používá port COM. Obvod je napájen 5 volty, které lze odebírat z portů USB nebo PS / 2.
Několik fotografií sestaveného zařízení:

Pro práci s programátorem se doporučuje používat program IC-Prog.

Nastavení IC-Prog Stáhněte si archivy s nejnovějšími verzemi softwaru IC-Prog, ovladače NT / 2000, souboru nápovědy v ruštině z oficiálních webových stránek programu a rozbalte je do stejného adresáře.
Nyní musíte nainstalovat programátorský ovladač, pro který spustíme icprog.exe (pokud se objeví nějaké chybové zprávy, jednoduše je ignorujeme) a vybrat položku „Možnosti“ v nabídce „Nastavení“. Otevřete kartu „Programování“ a zaškrtněte políčko vedle „Ověřit během programování“. Dále v části „Různé“ musíte aktivovat možnost „Povolit ovladač NT / 2000 / XP“, uložit nastavení kliknutím na tlačítko „OK“ a restartovat program.

Jazyk rozhraní můžete změnit v sekci „Jazyk“. Chcete-li programu označit typ našeho programátoru, stiskněte klávesu F3, v okně, které se otevře, vyberte „Programátor JDM“ a označte port COM, ke kterému je zařízení připojeno.

Tím je přednastavení programu dokončeno.

Firmware MKIC-Prog umožňuje pracovat s velkým počtem MK, ale my potřebujeme pouze PIC12F629 - vyberte jej v rozevíracím seznamu v pravém horním rohu programu.
Chcete-li načíst firmware z MK, proveďte příkaz „Číst mikroobvod“ (ikona se zelenou šipkou nebo F8).

Na konci procesu čtení se firmware MK zobrazí v hexadecimálním formátu v okně programového kódu. Měli byste věnovat pozornost poslední paměťové buňce na 03F8 - ukládá hodnotu konstanty OSCCAL, kterou nastavuje výrobce při kalibraci čipu. Každý MK má svůj vlastní, takže by bylo hezké ho někde přepsat (například ho poškrábám jehlou na zadní straně PIC), aby se usnadnil proces obnovy (i když to není nutné), pokud byla tato konstanta během firmwaru omylem přepsána.


Chcete-li „vyplnit“ firmware ze souboru * .hex do MK, musíte jej otevřít v programu („Soubor“ -\u003e „Otevřít soubor ...“ nebo Ctrl + O) a spustit příkaz „Programovat mikroobvod“ (ikona se žlutou barvou blesk nebo F5). Odpovíme „ano“ na první otázku.


Na další otázku je ale třeba odpovědět „Ne“, jinak bude dříve zmíněná konstanta OSCCAL přepsána.


Poté začne proces firmwaru. Po dokončení program zobrazí informační zprávu o svých výsledcích.

V tomto ohledu bych téma rád ukončil. Doufejme, že tyto informace začátečníkům pomohou porozumět základům programování mikrokontrolérů PIC.
Děkujeme za pozornost Sekce souboru PCB (LAY):

Vývoj elektroniky postupuje rychlým tempem a stále častěji je hlavním prvkem zařízení mikrokontrolér. Provede většinu práce a zbaví designéra potřeby složitých obvodů, čímž se zmenší velikost desky plošných spojů na minimum. Jak každý ví, mikrokontrolér je řízen programem zapsaným do jeho vnitřní paměti. A pokud zkušený elektronický programátor nemá problémy s používáním mikrokontrolérů ve svých zařízeních, pak se pro začínajícího radioamatéra může pokus o napsání programu na ovladač (zejména PIC) změnit ve velké zklamání a někdy i malou pyrotechnickou show v podobě kuřáckého mikroobvodu.

Kupodivu, se vší velikostí internetu, je v něm velmi málo informací o firmwaru. PIC řadičea materiál, který lze najít, je velmi pochybné kvality. Samozřejmě si můžete koupit továrního programátora za neadekvátní cenu a ušít, kolik chcete, ale co dělat, když se člověk nezabývá masovou výrobou. Pro tyto účely můžete sestavit jednoduchý a levný domácí produkt s názvem Programátor JDM podle níže uvedeného schématu (obrázek 1):



Obrázek 1 - programátorské schéma


Okamžitě dávám seznam prvků pro ty, kteří jsou příliš líní, aby se podívali na diagram:

  • R1 - 10 kOhm
  • R2 - 10 kOhm (dolní index). Nastavením odporu tohoto rezistoru musíte během programování dosáhnout přibližně 13 V na pinu č. 4 (VPP). V mém případě je odpor 1,2 kOhm
  • R3 - 200 Ohm
  • R4, R5 - 1,5 kOhm
  • VD1, VD2, VD3, VD4, VD6 - 1N4148
  • VD5 - 1N4733A (stabilizační napětí 5,1 V)
  • VD7 - 1N4743A (stabilizace napětí 13V)
  • C1 - 100 nF (0,1 μF)
  • C2 - 470 μF x 16 V (elektrolytický)
  • SUB-D9F - konektor COM portu (MAMA nebo SOCKET)
  • Zásuvka DIP8 - záleží na ovladači, který používáte

Diagram používá příklad připojení takových běžných řadičů jako PIC12F675 a PIC12F629, ale to vůbec neznamená, že firmware jiných sérií OBR bude nemožné. Pro zápis programu do ovladače jiného typu stačí hodit dráty programátoru v souladu s obrázkem 2, který je uveden níže.



Obrázek č. 2 - možnosti balíčků řadičů PIC s požadovanými piny


Jak asi tušíte, pouzdro se používá v obvodu mého programátora DIP8... Se silnou touhou můžete vytvořit univerzální adaptér pro každý typ mikroobvodu, čímž získáte univerzálního programátora. Ale protože s PIC řadiče Zřídka pracuji, to mi stačí.

I když je samotný obvod poměrně jednoduchý a nezpůsobí potíže s montáží, vyžaduje také respekt. Proto by bylo hezké vyrobit pro něj desku s plošnými spoji. Po nějaké manipulaci s programem SprintLayout, s textolitem, vrtákem a žehličkou, se zrodil takový polotovar (foto č. 3).



Foto # 3 - programátor s plošnými spoji


Stáhněte si zdroj desky s plošnými spoji pro program SprintLayout můžete sledovat tento odkaz:
(stažení: 680)
V případě potřeby jej můžete změnit pro svůj typ PIC řadiče. Pro ty, kteří se rozhodli ponechat desku beze změny, je zde pohled ze strany dílů pro usnadnění instalace (obrázek 4).



Obrázek №4 - deska z montážní strany


Trochu více čarodějnictví s páječkou a máme hotové zařízení, které může blikat PIC řadič přes COM port tvůj počítač. Výsledek mého úsilí, stále teplý a nemytý z tavidla, je uveden na fotografii č. 5.



Foto # 5 - kompletní programátor


Od této chvíle první fáze na cestě k firmwaru PIC řadič, se chýlí ke konci. Druhá fáze bude zahrnovat připojení programátoru k počítači a práci s programem IC-Prog.
Bohužel ne všechny moderní počítače a notebooky jsou schopné pracovat s tímto programátorem kvůli banální absenci COM porty, a ty, které jsou nainstalovány na notebookech, nevydávají potřebné pro programování 12V... Rozhodl jsem se tedy obrátit na svůj první PC, který už dávno sbíral prach a čekal na svoji nejlepší hodinu (a stále čekal).
Zapneme tedy počítač a nejprve nainstalujeme program IC-Prog... Můžete si jej stáhnout z webu autora nebo kliknout na tento odkaz:
(stažení: 778)
Připojíme programátor k COM port a spusťte nově nainstalovanou aplikaci. Pro správnou funkci je třeba provést řadu manipulací. Zpočátku musíte vybrat typ ovladače, který budete šit. mám to PIC12F675... Na snímku obrazovky č. 6 je pole pro výběr ovladače zvýrazněno červeně.



Screenshot 6 - výběr typu mikrokontroléru




Screenshot # 7 - Nastavení metody nahrávání řadiče


Ve stejném okně přejděte na Programování„a vyberte položku“ Kontrola programování". Kontrola po naprogramování může způsobit chybu, protože v některých případech samotný firmware nainstaluje pojistky blokující čtení St... Abyste se neklamali, je lepší tuto kontrolu deaktivovat. Stručně řečeno, postupujte podle obrazovky # 8.



Screenshot # 8 - nastavení ověření


S tímto oknem pokračujeme v práci a přejdeme k Všeobecné". Zde musíte nastavit prioritu programu a určitě ji použít." NT / 2000 / XP ovladač (snímek obrazovky č. 9). V některých případech může program doporučit instalaci tohoto ovladače a je vyžadován restart IC-Prog.



Screenshot # 9 - obecná nastavení


S tímto oknem tedy práce skončila. Nyní přejdeme k nastavení samotného programátoru. Vyberte z nabídky " Nastavení "-\u003e" Nastavení programátoru"nebo jen stiskněte klávesu F3... Zobrazí se následující okno, jak je znázorněno na snímku obrazovky # 10.



Screenshot # 10 - Okno nastavení programátoru


Nejprve vybereme typ programátoru - Programátor JDM... Dále nastavte přepínač na použití ovladače Okna... Další krok zahrnuje výběr COM portke kterému je váš programátor připojen. Pokud je sám, nejsou vůbec žádné otázky a pokud je jich více, podívejte se ve správci zařízení, který z nich se aktuálně používá. Jezdec I / O latence slouží k úpravě rychlosti zápisu a čtení. To může být nutné na rychlých počítačích a v případě problémů s firmwarem - tento parametr musí být zvýšen. V mém případě to zůstalo ve výchozím nastavení stejné 10 a všechno fungovalo dobře.

Tím je nastavení programu dokončeno IC-Prog je u konce a můžete pokračovat v procesu samotného firmwaru, ale nejprve si přečteme data z mikrokontroléru a uvidíme, co je do něj zapsáno. Chcete-li to provést, na panelu nástrojů klikněte na ikonu mikroobvodu se zelenou šipkou, jak je znázorněno na snímku obrazovky 11.



Screenshot 11 - proces čtení informací z mikrokontroléru


Pokud je mikrokontrolér nový a dosud nebyl blikán, budou všechny jeho paměťové buňky naplněny hodnotami 3FFFaž na úplně poslední. Bude obsahovat hodnotu kalibrační konstanty. Tato hodnota je pro každý řadič velmi důležitá a jedinečná. Přesnost časování závisí na tom, kterou nastavuje výrobce výběrem a nastavením této velmi konstantní. Screenshot 12 ukazuje paměťovou buňku, která uloží konstantu při čtení ovladače.



Screenshot # 12 - Hodnota konstanty kalibrace


Hodnota je opět jedinečná pro každý mikroobvod a nemusí být stejná jako na obrázku. Mnoho z nezkušenosti tuto konstantu přepíše a následně PIC řadič začne pracovat nesprávně, pokud projekt používá taktování z interního generátoru. Doporučuji vám zapsat si tuto konstantu a přímo na ovladač nalepit nápis s jeho hodnotou. Takto se v budoucnu vyhnete mnoha potížím. Hodnota je tedy zapsána - pojďme dál. Otevřete soubor firmwaru, který má obvykle příponu .hex... Nyní místo štítků 3FFF, programovací vyrovnávací paměť obsahuje kód našeho programu (snímek obrazovky # 13).



Screenshot # 13 - firmware načtený do programovací vyrovnávací paměti


Výše jsem napsal, že mnozí přepisují kalibrační konstantu nedbalostí. Kdy se to stane? K tomu dojde při otevření souboru firmwaru. Konstantní hodnota se automaticky změní na 3FFF a pokud zahájíte proces programování, pak už není cesty zpět. Screenshot 14 ukazuje paměťovou buňku, kde byla dříve konstanta 3450 (před otevřením hexadecimální soubor).

Mnoho začínajících radioamatérů na začátku svého podnikání se bojí začít pracovat s mikrokontrolérem. Důvodem je mnoho věcí a hlavní obavou je často to, jak správně programovat a jak programovat. jednoduchý programovací obvod pro mikrokontrolér PICPodíváme se, sbíráme, zeptáme se na oficiálním fóru a necháme zpětnou vazbu, pokud uspějete

Doporučil bych vám nejprve začít pracovat s obecnými informacemi o mikrokontrolérech.

Programátor ExtraCheap

Na internetu mnoho různých programovacích schématAle většina z nich je velmi složitá a je vzácné vidět fotografie, které by potvrdily její výkon.

Ale požadovaný programátor byl nalezen v mnoha požadavcích.

K přenosu dat se používá port COM. Obvod je napájen 5 volty, které lze odebírat z portů USB nebo PS / 2.

Další fotografie tohoto zařízení:

Pro práci s programátorem se doporučuje používat program IC-Prog

Nastavení IC-Prog

Stahování nejnovější verze programu z off-site Software IC-Prog, ovladač NT / 2000, soubor nápovědy v ruském jazyce a rozbalte je do jednoho a stejného adresáře.

Nyní musíte nainstalovat ovladač programátoru, pro který spustíme soubor icprog.exe (pokud se zobrazí chybové zprávy, jednoduše je ignorujte) a v nabídce „Nastavení“ vybrat položku „Možnosti“. Otevřete kartu „Programování“ a zaškrtněte políčko vedle „Ověřit během programování“. Dále v části „Různé“ musíte aktivovat možnost „Povolit ovladač NT / 2000 / XP“, uložit nastavení kliknutím na tlačítko „OK“ a restartovat program.

Jazyk rozhraní můžete změnit v sekci „Jazyk“. Chcete-li programu označit typ našeho programátoru, stiskněte klávesu F3, v okně, které se otevře, vyberte „Programátor JDM“ a označte port COM, ke kterému je zařízení připojeno.

Tím je přednastavení programu dokončeno.

Firmware MK

IC-Prog umožňuje práci s velkým počtem MCU, ale potřebujeme pouze PIC12F629 - vyberte jej v rozevíracím seznamu v pravém horním rohu programu.
Chcete-li načíst firmware z MK, proveďte příkaz „Číst mikroobvod“ (ikona se zelenou šipkou nebo F8).

Na konci procesu čtení se firmware MK zobrazí v hexadecimálním formátu v okně programového kódu. Měli byste věnovat pozornost poslední paměťové buňce na 03F8 - tam je uložena hodnota konstanty OSCCAL. , který je nastaven výrobcem při kalibraci čipu. Každý MK má svůj vlastní, takže by bylo hezké jej někde přepsat (např. Ho poškrábám jehlou na zadní straně PIC „a), aby se usnadnil proces obnovy (i když to není nutné ) pokud byla tato konstanta omylem přepsána během blikání.


Chcete-li „vyplnit“ firmware ze souboru * .hex do MK, musíte jej otevřít v programu („Soubor“ -\u003e „Otevřít soubor ...“ nebo Ctrl + O) a spustit příkaz „Programovat mikroobvod“ (ikona se žlutou blesk nebo F5). Odpovíme „ano“ na první otázku.


Na další otázku je ale třeba odpovědět „Ne“, jinak bude dříve zmíněná konstanta OSCCAL přepsána.


Poté začne proces firmwaru. Po dokončení program zobrazí informační zprávu o svých výsledcích.

V tomto ohledu bych téma rád ukončil. Doufám, že tato informace pomůže začátečníkům porozumět základům programování PIC. mikrokontroléry.

Když jsem se začal zabývat PIC řadiči, pak přirozeně byla první věc otázka výběru programátora. Vzhledem k tomu, že značkoví programátoři nejsou levní a obecně se nákup programátoru nezdá být sportovním, bylo rozhodnuto sestavit si ho sám. Po procházení Internetu jsem stáhl obvod a sestavil programátor JDM. Fungovalo to velmi špatně: buď to zaplnilo nějaký druh odpadu, pak nevyplnilo prvních pár bytů, pak nevyplnilo vůbec nic.

Významnou nevýhodou programátoru JDM je, že nemůže ovládat linku Vdd a v důsledku toho nemůže během programování implementovat správný algoritmus napájení. Pokud je řídicí jednotka nakonfigurována následujícím způsobem: „Internal Oscillator“, „MCLR Off“, pak je-li sekvence napájecího napětí nesprávná, nejprve se spustí a začne provádět program, který byl do ní vložen dříve, a poté přejde do programovacího režimu (v tomto případě může ukazatel ukazovat kamkoli ne na začátku programové paměti). V tomto ohledu je velkou otázkou, kam se váš program nahraje a zda se vůbec nahraje.

Po opotřebení programátorem JDM jsem na jednom z buržoazních webů našel programátorský obvod, ve kterém byly tyto nedostatky opraveny. Tento programátor používám dodnes a upozorňuji na něj:

Nejjednodušší převodník úrovní RS232-\u003e TTL se vyrábí na diodách D1 ... D4 a Zenerově diodě D6. Když je napětí na vedeních DATA, CLOCK menší než 0V, pak jsou staženy k zemi přes diody D1, D2, a když je napětí na těchto vedeních více než 5V, pak jsou staženy nahoru přes diody D3, D4 na napájení + 5V, které nastavuje Zenerova dioda D6.

Toto zařízení je napájeno přímo z portu COM. Zenerovy diody a diody v tomto obvodu lze nahradit domácími: D814D, KS147A atd.

Jak je implementován správný algoritmus napájecího napětí a odkud pochází programovací napětí 13 V? Všechno je jako vždy velmi jednoduché.

Když je port inicializován, výstup TxD visí na -10V. V tomto případě je kondenzátor C1 nabíjen prostřednictvím Zenerovy diody D7 (která se v tomto případě ukáže být zahrnuta do přímé
směru a funguje jako dioda). Ty. napětí na kladné větvi C1 vzhledem k GND je nula, ale relativně k TxD \u003d + 10V (nebo kolik napětí máte na výstupu portu COM).

Nyní si představme, co se stane, když se napětí na výstupu TxD změní z -10V na +10V. Současně s nárůstem napětí na pinu TxD začne také stoupat napětí na kladné noze kondenzátoru C1. Náboj nemůže odtékat na zem přes D7, protože nyní je D7 znovu zapnutý, jediný způsob je prosakovat PIC, ale proud je sporý. Takže napětí na noze C1 plus (a tedy na kolíku MCLR) začíná stoupat. V okamžiku, kdy je TxD nula vzhledem k zemi, na kondenzátoru C1 (na jeho kladné noze, a tedy na MCLR), je to jen +10 V vzhledem k zemi. Když TxD + 3V, - na C1 již 3 + 10 \u003d 13V. To je vše, napětí Vpp již bylo aplikováno a vedení VDD je stále pouze + 3V.

S dalším zvyšováním napětí na TxD se napětí na C1 nezvyšuje, protože Zenerova dioda D7 začíná pracovat. Když napětí na TxD stoupne nad + 5V, začne fungovat Zenerova dioda D6.

Pro omezení výbojového proudu kondenzátoru C1 přes Zenerovu diodu D7 je do obvodu zahrnut odpor R6, napětí na C1 není přesně stejné jako stabilizační napětí, ale o něco vyšší: U C1 \u003d Ust + I DISP * R6. Rezistor R3 se používá k nastavení programovacího napětí. Můžete dát proměnnou 10KΩ nebo zvolit konstantní, takže programovací napětí je přibližně 13 V (v zařízení zobrazeném na obrázku níže R3 \u003d 1,2 kΩ).

S tímto programátorem úspěšně programuji řadiče PIC12F629 a PIC16F628A, autor však tvrdil, že tento programátor (ve verzi, kterou jsem představil) lze naprogramovat PIC12F508 , PIC12F509 , PIC12F629 , PIC12F635, PIC12F675, PIC12F683 , PIC16F627A , PIC16F628A , PIC16F648A... Kromě nich má autorská stránka feng3.cool.ne.jp úpravy programátoru pro další řadiče PIC.

Připravená zařízení:

Možnost programátoru od Mixér.