Hlavní stránka

Kdysi jsem stavěl jednoduchý programátor na LPT port – byl docela jednoduchý, ale způsob připojení již dnes vylučuje jeho používání na moderních počítačích, které LPT (a mnohdy již ani COM port) nemají. Přemýšlel jsem tedy co postavit, až jsem narazil na tento opensource programátor. Na první pohled mě zaujal tím, že je kompatibilní s STK500 a zároveň není k naprogramování jeho samotného třeba dalšího programátoru – stačí jej pouze postavit, připojit na USB a naprogramovat přímo z počítače.


Původní programátor, který jsem občas používal byl jednodušší - vlastně pouze propojoval několik pinů LPT portu přes dvojici 74HC125 přímo na ISP.





AVRUSB500v2 je samozřejmě složitější. Postavit tento programátor lze buď na dodanou desku (lze zakoupit od autora a to dokonce i s připájeným obvodem FT232 (jediná SMD součástka) a nebo (což byl můj případ) si navrhnout vlastní plošný spoj, což byla cesta, kterou jsem se rozhodl jít. Podařilo se mi dostat na rozměr 50x42mm při použití standardních součástek (s výjimkou FT-232 samozřejmě). Zapojení, které autor použil je hodně očesané - zvláště v případě FT232, kde oproti katalogovému chybí celá řada součástek, nicméně jak jsem si ověřil, je funkční.


Originální schéma zapojení je možné stáhnout ZDE

DPS kterou jsem navrhl je jednostranná, s jedinou drátovou propojkou a přidal jsem ještě druhou variantu konektoru, obsahující napájení, což mi umožnilo samostatný vývod napájení zcela vynechat. Obvod FT232RL je v pouzdru SSOP, což znamená rozteč 0.65mm a díky tomu, že je využita sotva polovina vývodů, dá se to pod velmi silnou lupou s ostrým hrotem mikropájky připájet i ručně vývod po vývodu (odvážnější mohou zkusit použít minivlnu, ale obvod stojí přes 100 Kč ;o)). Sám SMD součástky používám jen výjimečně a pájet takovou miniaturu bylo pro mě dost exotickou záležitostí. Postupoval jsem tak, že jsem si všechny plošky pocínoval (k odsátí přebytečného cínu jsem použil odsávací lanko). Po kontrole, že nikde nejsou nějaké vlasové zkraty jsem přiložil čip, chytil jej za jednu nohu, upravil polohu, chytil za protilehlou a pak opatrně nožku po nožce s miniaturní kapičkou cínu na ostrém hrotu pájky přichytával. Jde to pomalu, ale jde to – nakonec jsem opatrným páčením hrotem ulamovacího nože mezi vývody otestoval, zda všechny drží (dvě se mi utrhly, takže nedržely a bylo nutné je přepájet) – pod lupou je vidět, že se hnou. Druhý test spočíval v proměření odporu mezi vývodem součástky a místem kam spoj vede a pak ještě mezi vývodem a sousední nožkou. Kupodivu – vše bylo OK, takže jsem mohl zahájit osazování zbytku desky, což už bylo jednoduché.



Protože jsem neměl v zásobě žádný zbytečný USB prodlužovák (což bude asi nejjednodušší způsob, jak získat kablík od programátoru do PC) ale měl jsem kdysi dávno z GM koupený rozložený USB konektor bez krytky, použil jsem kus UTP kabelu, konektor na něj připojil, sestavil a zasmrštil jej 2x do klasické smršťovačky (tenčí na konec s kabelem a silnější na tělo konektoru). Po ověření polarity měřením jsem jej připájel na DPS a pomocí tavné pistole jej zajistil tak, aby se nemohl vytrhnout. Tím bylo vše připraveno k zapojení. Ověřil jsem, že není zkrat mezi signály a napájením a že odběr po připojení na zdroj 5V je v normě a připojil jsem to k PC – byl nadetekován převodník FT232 a po doinstalování ovladačů (nechají se vyhledat přes internet, nebo jsou již součástí systému – například v Linuxu a možná i ve Vistách) přibyl COM port, jež lze nastavit v ovladačích například jako COM5 apod.

Tím to samozřejmě nekončí – ATMEGA8 osazená v desce je stále ještě prázdná – neobsahuje firmware a tedy to celé ještě jako programátor nelze použít. Na desce jsou pro tyto případe vlastně programátory 2 – jeden ještě nefunguje, protože vyžaduje firmware a druhý je již teď plně funkční, ale není jednoduché jej použít. Autor navrhuje použít linux a speciální upravený programátor UISP s podporou tzv. Bit Bang programátoru využívajícího speciální mód FT232, kdy je přímý přístup k příslušným vývodům. Ty jsou připojeny na ATMEGA8 na RESET, MOSI, MISO a SCK, takže jej můžeme tímto způsobem přímo nakrmit firmwarem. Řeší se tak problém slepice-vejce, kdy bez programátoru nelze získat programátor. Přiznám se, že cestu přes Linux jsem zkusil, ale neuspěl jsem – rozchodil jsem překlady, ale nakrmit to přes UISP jsem nedokázal – možná jsem měl příliš nové jádro, nebo nevím (s Linuxem zatím moc kamarád nejsem). Našel jsem ale jinou cestu – existuje podpora pro Bit Bang v jiném software – AVRDUDE. Existuje k němu i grafické rozhraní, takže je možné jej pohodlně nastavit. Tato cesta fungovala ihned, pouze bylo nutné upravit konfigurační soubor, kde bylo třeba jinak nastaveny konfigurace vývodů FT232. Aby případný zájemce nemusel tápat, uvedu zde přesný postup, který vedl k úspěšnému oživení programátoru:

Bude potřeba stáhnout následující soubory:

Dostupné soubory:
Soubor Datum Velikost souboru Zobrazení    
serjtag-0.3.zip 27.01.2009 276.71 KB 1995
avrdude-GUI-1.0.5.zip 27.01.2009 12.65 KB 1867
avrdude 20.01.2009 382.23 KB 2225

avrusb500v2-1.2.tar.gz (firmware pro náš programátor je v souboru avrusb500_pre.hex)

Aby nebylo nutné vše stahovat a dávat dohromady, udělal jsem takovou malou kompilaci toho nejnutnějšího včetně projektů pro EAGLE, PDF, bitmapy DPS atd. Je ke stažení zde:

avrusb500v2-vse_potrebne 20.01.2009 467.85 KB 2007

Samozřejmě musí být po připojení programátoru nadetekován jako převodník FT232 – drivery tedy již musí být nainstalovány. Pokud je potřebujete stáhnout, lze použít tyto: CDM 2.04.14.zip
Příslušná propojka na desce programátoru musí být zkratována pomocí jumperu !!

Po spuštění avrdude-GUI.exe nastavíme všechny potřebné parametry (viz screenshot) a tlačítkem Erase-Write-Verify natáhneme firmware do ATMEGA8.



Pak ještě nastavíme Fuse – nejdříve použijeme READ, upravíme hodnoty a pak WRITE podle následujícího screenshotu:



Odpojíme zkratovací propojku, můžeme odpojit a zapojit programátor od USB (měla by zablikat LEDka) a můžeme jej otestovat například v AVRSTUDIO jako STK500 – po připojení zkušební desky s ATTINY2313 to šlo okamžitě a testovací HEX do ATTINY doslova prosvištěl.

Jediný problém je, že je verze programátoru nastavena na 0, což AVRSTUDIO pozná a nabízí update firmware, což samozřejmě nejde – jedná se o zcela jiný hardware. Když dialog zrušíme, funguje to, ale existuje jednoduchá možnost, jak programátor nastavit tak, aby se tvářil, jako konkrétní verze programátoru. Vystačíme si s libovolným terminálem – například pomůže Hyperterminál z windows. Nastavíme připojení přes sériový port Rychlost=115200, Parita=žádná, Počet bitů=8, Stopbity=1 a Řízení=žádné

Zmáčkneme 2x za sebou ENTER a dostaneme se do režimu, kdy lze zadat verzi:



Zadáme verzi 2.1 od teď nás již AVRSTUDIO nebude otravovat nabídkami update firmware.

Sdílet

Submit to FacebookSubmit to Google BookmarksSubmit to TwitterSubmit to LinkedIn

Komentáře   

0 #17 Re: ProblemVW 2011-05-31 14:14
From original web:

"the serial communication via usb needs to run at 115.2K baud and this can only be done with a crystal"

Firmware is written for 115.2K baud on 18.4320MHz crystal.
Citovat
0 #16 ProblemDan Raul 2011-05-31 11:44
Hello,

Firstly let me congratulate you for finding a sollution to prgram BingBang in Windows,

I have made this programmer from scratch but I have a problem,

I can load the Hex and everithing,

Disconnect the jumper, plug in the USb (LED blinks for 6 times) but I cant connect to AVR STUDIO,

The only part that isnt original is the XTAL wich is 16 MHZ (is this a problem?),

Do I need to connect an AVR before I connect it with AVR STUDIO ?

Thank you and waiting for your HELp,
Citovat
0 #15 Re: Re: pl-2303Filda 2011-05-03 16:02
Ještě jednou jsem zkontroloval pojistky a zjistil jsem, že jsou špatně nastavené - vnitřní oscilátor 1MHz. Mikroprocesor tedy jel správně, ale od špatné frekvence se odvíjelo i špatné nastavení UART jednotky v mikroprocesoru - proto byla chybná komunikace. Po přenastavení vše jede v pořádku. Děkuji za Vaší včasnou reakci, ve které upozorňujete zkontrolovat pojistky, asi bych se s tím dlouho dlouho zbytečně pral až bych to nakonec vzdal... :)
Citovat
0 #14 Re: pl-2303VW 2011-05-03 11:52
To že Vám nejde vstoupit do konfigurace v HyperTerminálu, kde se má nastavit Rychlost=115200 , Parita=žádná, Počet bitů=8, Stopbity=1 a Řízení=žádné a kde se tedy kromě RxD a TxD určitě žádný další signál nepoužívá (Řízení=žádné) znamená, že je špatně něco jiného.



- Zkontroloval bych, že nemáte TxD zapojeno do TxD a RxD do RxD, ale do křiže - to znamená TxD do Rxd a naopak.



- Zkontroloval bych, že používáte správný driver (pro PL-2303) a že jste v HyperTerminálu použil ten správný port, který tento driver přidal do systému.



- A samozřejmě zkraty, samotné zapojení, nastavení ATMEGA8 při programování (fuses) kde se dá při nepozornosti nastavit jiná frekvence a je celkem logické, že to nejede (i když píšete, že bliká, tak snad tohle ne).



Jinak nevím - neznám nikoho, kdo by to takto upravoval pro použití s jiným převodníkem. Jedině se zeptat autora - to znamená na http://tuxgraphics.org/electronics/200705/article0 7052.shtml
Citovat
0 #13 pl-2303filda 2011-05-03 10:50
Dobrý den,

mikroprocesor ATMEGA8 jsem naprogramoval pomocí jinýho programátoru takže v mém případě nebylo zapotřebí AVRDUDE. Místo FT232 jsem použil jiný převodník PL-2303 (zapojený v jednoduchém modulu, kde mám vyvedeny pouze TxD a RxD). LEDka po připojení napájení zabliká, tak jak popisujete v návodu. Problém je v tom, že není možné v terminálu dvojtým ENTERem vstoupit do konfiguračního módu (ATMEGA8 neposílá žádnou odpověď) a AVRSTUDIO s ním také nepracuje. PL-2303 je 100% funkční. Otázka zní zda-li nevíte, jestli protokol STK500 potřebuje ke své komunikaci ostaní signály sériové linky, nebo zda používá jenom TxD a RxD.
Citovat
0 #12 Re: Co to umi..VW 2011-03-01 13:50
Má být kompatibilní s STK500 V2, takže by se měla dát očekávat kompatibilita s ním. Někde jsem vygooglil, co STK500 V2 podporuje (bez záruky):



ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega162, ATmega164, ATmega644

ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861

AT90CAN128, AT90PWM2, AT90PWM3, AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535

ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega169, ATmega32, ATmega324, ATmega329, ATmega3290, ATmega48, ATmega64, ATmega640, ATmega644, ATmega649, ATmega6490, ATmega8, ATmega8515, ATmega8535, ATmega88
Citovat
0 #11 Co to umi..krytrs 2011-03-01 12:25
Chtěl bych se zeptat, co to všechno umí programovat. Konkrétně mě zajíma ATmega 8. Jinak moc pěkny článek a pro lidi jako já kteří teprva začínají je velice srozumitelný :)
Citovat
0 #10 Re: Error: Could not create Stk500Common layerVW 2010-12-15 01:25
Viděl bych to na problém někde na úrovni instalace AVRStudia a jeho modulů - poslední řádek hlášky je celkem podnětný.
Citovat
0 #9 Error: Could not create Stk500Common layerGabi K 2010-12-14 18:56
Dobrý deň prajem. Programátor funguje bezchybne, no ak ho skúšam použiť na inom laptope tak mi vypisuje tieto chybové hlásenia:



Error: Could not create Stk500Common layer

Error: Could not create hex file reader

Error: Could not create source buffer

Error: Could not create destination buffer

Fatal: Make sure 'AvrCommon.dll' and 'Stk500Common.d ll' are properly installed



Prosím pomôžte mi vyriešiť tento problém, ďakujem
Citovat
0 #8 jojo 2010-07-21 23:19
tiez som si ho postavil , je to pecka //// spolupracuje aj s codevisionavr .



az by este niekto zhanal atmega 8 v gem elektro ich maju - http://www.gme.cz/cz/atmega8-16pu-p432-201.html
Citovat

Přidat komentář


Bezpečnostní kód
Obnovit