English version
biprog - nejen ISP programátor
Záložky: Úvod - Vlastnosti -
Popis hardware - Popis software - Čítač - ToDo - Zpětná vazba - Download
Pohled na osazenou desku:
Pohled ze strany spojů:
Biprog v krabičce:
Na webu je možné najít bezpočet různých stránek s konstrukcí ISP programátoru pro mikropočítače AVR firmy
Atmel. Některé programátory jsou vytvořeny na základě aplikační poznámky AVR910 a využívají tedy zejména
program AVRprog. Jiné naopak využívají pro své řízení STK500 plugin AVR Studia a jejich firmware je napsán
na základě aplikační poznámky AVR068.
Je zřejmé, že HW je v obou případech téměř shodný. To mě přivedlo k nápadu udělat další variantu hardware
a k němu napsat software, který by byl schopen pracovat s oběma ovládacími programy. Záměr se podařilo
naplnit a výsledkem mého snažení je zde popsaný programátor biprog.
Programátor je zabudován do krabičky KG22M a tím jsou dány i rozměry 72 x 50 x 22 mm. Tuto krabičku je možné
zakoupit například v prodejnách GES. Dobře ji poznáte podle této nálepky:
Destička není v krabičce nijak upevněna. Drží v ní pouze za vystupující konektory. Snad je to zřejmé z fotografie.
Za základ konstrukce jsem zvolil svůj oblíbený mikropočítač ATmega8. Bylo to zejména z důvodů možnosti
implementace
bootloaderu, velikosti paměti a velikosti pouzdra. Zapojení se nijak zvlášť neliší od podobných a nevyžaduje tedy
podrobnější popis. Za zmínku stojí snad jen konektor JP3, jumpery JP1 a JP2, tlačítko SW1 a svítivé diody.
Na konektor JP3 jsou vyvedeny nevyužité porty mikropočítače. To umožňuje využít tento hardware i pro jiné účely,
než je programátor. Jako příklad mohu uvést např. čítač do 3,5MHz se zobrazením na monitoru PC.
Tlačítko SW1 je v současné verzi SW ještě nevyužité. V budoucí verzi by mělo sloužit na rychlou ruční změnu frekvence
SCK. Úplně bez významu však tlačítko není ani teď. Pokud je stisknuté v okamžiku zapnutí napájecího napětí, aktivuje
se bootloader a umožňuje upgrade nebo úplnou výměnu SW. Vstoupit do režimu "Upgrade" jde však i bez tlačítka - viz
Popis software - část AVRISP.
Jumper JP1 má základní polohu 2-3. V poloze 1-2 slouží pro počáteční instalaci bootloaderu a později případně pro
jeho upgrade. Jumper JP2 je v současné době nevyužitý (v HW 3.0 je zrušen).
Využití svítivých diod:
LED1 - bliká při čekání na příkaz
LED2 - polarita signálu RESET je nastavena pro procesory s jádrem 51
LED3 - polarita signálu RESET je nastavena pro procesory AVR
LED4 - programátor je zapnutý a je v programovacím režimu nebo v režimu bootloaderu
LED5 - programátor je zapnutý a není v programovacím režimu ani v režimu bootloaderu
LED6 - svítí při aktivovaném bootloaderu. Je možné osadit dvoubarevnou LED a v budoucnu využít i jinak
Deska zdroje a patic (Socket Board)
Překvapilo mě, že nikde jsem na webu nenašel jako HW doplněk ISP programátoru desku se zdrojem a paticemi
pro různá pouzdra procesorů. Předpokládám, že většina bastlířů ani jiný než ISP programátor nemá a přitom velmi často
potřebuje programovat i jinak než "In System". Pak je přece nějaký podobný doplněk nutností !
Nicméně nikde jsem to neviděl a tak jsem si jednu takovou destičku udělal. Jejímu popisu je věnovaná samostatná
stránka.
USB varianta (HW 2.1)
Pan Kamil Řezáč navrhl a realizoval USB variantu biprogu. Je v ní použit převodník FT232RL od firmy FTDI.
Využívá se ovladače VCP (virtuální sériový port) a s USB biprogem se tedy pracuje naprosto stejně, jako se základní
variantou pro sériový port. Jedinou výjimkou je snad napájení biprogu a cílové aplikace/MCU. USB biprog je napájen
napětím 5V z USB a pomocí jumperu JP4 je možné zapnout i napájení programovaného procesoru z biprogu.
Není vyřešen případ, kdy cílová aplikace by byla napájena napětím 3,3V.
I v tomto HW (verze 2.1) je již udělána úprava, které je věnován odstavec o HW3.0.
Podklady pro výrobu USB varianty biprogu najdete v sekci Download.
Použití převodníku USB/RS232
Kompletní převodník USB/RS232 lze pořídit už za 350,- Kč. Já jsem vyzkoušel tento:
Nainstaloval jsem ovladač z přiloženého CD a ve "Správci zařízení" (Windows XP) se objevil nový sériový port - Prolific
USB-to-Serial Comm Port (COM3). Konektor jsem propojil s biprogem, spustil AVR studio a vyzkoušel komunikaci.
Jak AVRprog, tak STK500 plugin fungují naprosto stejně, jako přes reálný sériový port. AVRDUDE jsem nezkoušel,
ale předpokládám, že musí fungovat také.
Byl jsem požádán, abych do SW biprogu zabudoval podporu nových '51 Atmel procesorů - AT89LP4052.
Jak se však ukázalo po prostudování datasheetu, bylo třeba udělat i úpravu HW. Uvedené mikropočítače totiž ke svému
naprogramování potřebují ještě jeden SPI signál, a to SS (Slave Select). Rozhodl jsem se zrušit jumper JP2 a port PB1
ATmegy propojit (přes rezistor 100 ohmů) s pinem 3 ISP konektoru SV1.
Od verze 1.3 je implementována podpora těchto nových MCU i do firmware biprogu.
HW 4.1 (přidáno 23. 11. 2007)
Pan Jan Švíka navrhl a realizoval nový HW 4.1 s integrovaným RS232 převodníkem a 6-ti pinovým ISP konektorem:
Popis konstrukce od jeho autora je ve formátu pdf a můžete si ho stáhnout.
Podklady pro výrobu všech HW verzí biprogu najdete v sekci Download.
Veškerý software je psán v assembleru AVR.
Část AVRprog
Část, spolupracující s programem AVRprog, je převzata z konstrukce Programmer für AVR-Prog und avrdude.
Byly pouze respektovány rozdíly mezi AT90S2313 a ATmega8. Dále byly provedeny některé změny s cílem ušetřit
registry a zcela přepracována hlavní smyčka. Tady jsem zase opisoval z programu, který jsem našel
na Stránce Ondřeje Pužmana. Na rozdíl od části AVRISP zde není implementováno uložení polarity signálu RESET
do paměti EEPROM. Program je kompatibilní i s AVRDUDE (AVR910, AVR911, AVR109, butterfly).
Frekvence signálu SCK přímo zde měnit nejde, ale používá se tatáž frekvence, která byla naposledy nastavena při použití
AVRISP.
Část AVRISP
Tato část je zcela původní. Byla napsána na základě aplikační poznámky AVR068. Jako ovládací program se používá
plugin STK500 AVR Studia anebo AVRDUDE (avrispv2, stk500v2). Pro upgrade firmware je možné využít i "tlačítko"
Upgrade na záložce "Board" (od AVRstudia 4.14 na záložce "HW Settings"). Vyžaduje to však malou úpravu v adresáři
STK500. Nejdříve je třeba přejmenovat původní aplikaci s názvem "Upgrade.exe" na nějaké jiné jméno. Potom je třeba
do tohoto adresáře překopírovat program "AVRProg.exe" a přejmenovat ho na "Upgrade.exe". Při stisknutí "tlačítka"
Upgrade se potom automaticky ukončí plugin STK500, spustí se AVRProg a v biprogu se aktivuje bootloader.
Volba frekvence ISP
Na záložce "Board" (od AVRstudia 4.14 na záložce "Main") je možné vybrat si jednu ze šesti možných frekvencí.
Nabízené možnosti skutečně odpovídají reálným hodnotám. První tři jsou realizovány hardwarově pomocí SPI rozhraní,
ostatní jsou realizovány softwarově. Význam poslední možnosti (603 Hz) je zřejmě nulový, protože ovládací program v PC
vždy skončí uplynutím timeoutu. Zkoušel jsem tuto rychlost i s originálním firmware Atmelu (samozřejmě v jiném hardware,
než biprog) a choval se stejně. Uvažuji o možnosti místo nevyužitých 603 Hz implementovat např. frekvenci 1,8432 MHz.
Trochu mi vadí, že skutečnost by neodpovídala nabídce. Jakou frekvenci mi doporučíte zvolit pro náhradu nepoužitelných
603 Hz?
Podpora AT89S8252
Na rozdíl od továrního software STK500 (AVRISP) biprog podporuje i procesor AT89S8252. K tomu je třeba
do adresáře "Partdescriptionfiles" překopírovat soubor AT89S8252_biprog.xml,
který najdete v sekci Download.
Ještě je třeba zdůraznit některá fakta, platící pro AT89S8252:
- Čtení signatury je pouze simulované.
- Čtení Lock bitů je pouze simulované.
- Zápis Lock bitů je skutečný.
- S jiným firmware (než biprog) to fungovat nebude !
Podpora AT89S2051/AT89S4051 a AT89LP2052/AT89LP4052
Od verze SW 1.2 (SW 1.3) je možné použít biprog i pro programování uvedených procesorů.
Vyzkoušeny mám pouze typy AT89S2051 a AT89LP4052 , ale neměly by snad být problémy ani s těmi ostatními.
Stejně jako u AT89S8252, je třeba příslušné xml soubory překopírovat do adresáře "Partdescriptionfiles".
Všechny tyto nově podporované mikropočítače umožňují uložit/přečíst uživatelskou signaturu o délce až 32 bytů.
Plugin STK500 pro tuto signaturu nemá bohužel žádnou vhodnou funkci. Využil jsem tedy skutečnosti, že tyto
mikročipy nemají paměť EEPROM. Čtení anebo zápis uživatelské signatury je realizován jako čtení/zápis EEPROM.
NOVÉ (16. 6. 2008) - Podpora procesoru AT89S8253
Od čísla verze 1.5 firmware podporuje biprog nástupce a náhradu procesoru AT89S8252, tedy procesor AT89S8253.
Je to první procesor (z těch, které podporuje biprog), který má jak EEPROM, tak možnost uložení uživatelské
signatury. Aby toho bylo možné využít, musel jsem pro tento procesor vytvořit dva definiční xml soubory.
Oba soubory je možné použít k programování flash paměti procesoru a zatímco soubor AT89S8253_biprog.xml
slouží také k programování EEPROM, tak soubor AT89S8253-User row array_biprog.xml musíte zvolit, pokud budete
chtít zapsat (nebo smazat) uživatelskou signaturu. Aby to fungovalo, musíte samozřejmě oba soubory zkopírovat
do adresáře "Partdescriptionfiles".
NOVÉ (16. 6. 2008) - Podpora AVR studia 4.14
Od verze 4.14 AVR studia má plugin STK500 nové GUI (grafické uživatelské rozhraní). Důsledkem toho je, že pro
správnou funkci programování "Pojistek" (záložka Fuses) a "Zámků" (záložka LockBits) obsahují definiční xml
soubory nový element "V2". Musel jsem tedy tento element doplnit také do všech již dříve vytvořených xml souborů
pro AT89Sx051, AT89LPx052 i AT89S8252 (pro ten se soubor nově jmenuje AT89S8252_biprog.xml). Definiční
xml soubor pro AT89S8253 jsem samozřejmě udělal hned v této rozšířené podobě.
Jak bylo uvedeno už v části Vlastnosti programátoru, HW biprogu je možné použít i pro zcela jinou aplikaci. Jako
příklad jsem udělal demonstrační firmware, který umožňuje využívat PC jako jednoduchý měřič frekvence (čítač)
do asi 3,5MHz. Měřený signál je třeba přivést na vstup T0 (port PD4, pin 6) proti GND.
Jako ovládací program je v tomto případě použita aplikace CITAC.exe pana Davida Matouška.
Protože na rozdíl od originálního HW pana Matouška (najdete ho v KE 2/2003) je zde i předdělička 256 realizována
softwarově, klesla maximální možná měřená frekvence ze 16MHz na asi 3,5 MHz (přibližně polovina frekvence krystalu).
Také firmware pro čítač si můžete v případě zájmu stáhnout o kousek níže v sekci Download. Na obrázku můžete vidět,
jak tento čítač změřil frekvenci krystalu 3,6864 MHz (která ovšem byla pomocí děličky ATtiny12 vydělena osmi).
Některé z mnoha dalších možností využití HW biprog:
- počítačem řízený generátor obdélníkového signálu
- připojení inteligentního displeje k sériovému portu PC
- jednoduchý vývojový kit či demonstrační přípravek
V plánu mám následující úpravy či rozšíření:
1) SW - Manuální změna frekvence SPI pomocí tlačítka
2) SW - Indikace zvolené frekvence blikáním LED
Pokud by někdo měl nějaký nápad na jiné úpravy anebo by se chtěl ujmout navržených úprav sám, neváhejte mě
kontaktovat !
Na tomto místě budu postupně uveřejňovat zajímavé odkazy, týkající se biprogu.
Pan Vladimír Anděl věnoval zkušenostem se stavbou biprogu na svém webu celou stránku.
Najdete na ní pěkný stručný návod a obrazec plošných spojů pro tiskárny s rozlišením 300 dpi.
Zjistil jsem, že o biprogu se píše i na několika čínských stránkách. Jedna z nich je třeba tady.
Na stránkách robotika.cz je mimo jiné také pěkný přehled programátorů pro procesory AVR.
biprog je "cardware" pro nekomerční použití!
biprog is "Cardware" for non-commercial use!
Pokud ho budete používat, pošlete prosím pohlednici s vyobrazením vašeho města či kraje na následující adresu:
If you have found it useful, please send me a traditional postcard with your city/region view. My postal address is:
Lubos Ruckl
TELCOM servis Decin, s. r. o.
Folknarska 21
405 01 Decin 2
Czech republic
Pro download souborů použijte pravé tlačítko myši a v nabídce vyberte "Uložit cíl jako ...".
ukazuje, že spolu s Vámi navštívilo
od 8. 12. 2005 tuto stránku teprve
uživatelů internetu ...
Úvodní stránka
Bootloader
Deska patic a zdroj pro "ISP" programování
Programátor AT-master
Programátor TSP-IC
Jakékoliv ohlasy a otázky pište prosím na adresu: lubos.ruckl@quick.cz
Aktualizováno 16. 6. 2008