V amaterském rádiu (PE 03/2016) popsal pan Miroslav Cina zkušenosti ze stavby ISP programátoru USBasp autora Thomase Fischela. Protože pro programování procesorů používám zakoupené ISP programátory AVRProg USB v3 MKII Eco, které jsou poměrně drahé a často odchází jsem se rozhodl uvedený USBasp programátor sestavit a odzkoušet.
Pohled na programátor (v krabičce 3D tisk)
Sbírka programátorů :-)
Parametry programátoru
- USBasp - programátor USB pro procesory z rodiny Atmel AVR.
- Pracuje pod Linuxem, Mac OS X a Windows 10/11 (testováno).
- Programovací rychlost USBasp je až 5 kBytů za vteřinu.
- SCK pro podporu obvodů s nízkou rychlostí oscilátoru programovaného obvodu (<1,5MHz).
- Tento programátor lze použít pouze pro programování 5V obvodů (logiky). U jiných například 3,3V systémů je nutný převodník úrovně 5->3,3V!
DIP spínač
Rychlost SCK - Pokud má programovaný procesor nastavené hodiny (pojistky fuse) nižší než 1,5 MHz, musíme sepnout spínač 1 DIP spínače (SCK se zmenší z 375 kHz na 8 kHz).
- spínač 1 poloha ON = zapne rychlost při programování obvodů s procesorem (jeho hodin) < 1,5 MHz na 8 KHz
- spínač 1 poloha OFF = zapne rychlost při programování obvodů s procesorem (jeho hodin) > 1,5 MHz na 375 KHz
Napájení programovaného obvodu
- spínač 2 poloha ON = zapne napájení z USB portu do ISP konektoru (naše programované zařízení je napájeno z USB PC portu)
- spínač 2 poloha OFF = vypne napájení z USB portu do ISP konektoru (naše programované zařízení má svoje napájení 5V)
LED diody na desce USBasp
- LED 1 označená nápisem RUN -> svítí když je spuštěné nahrávání programu (programátor nahrává cílový procesor)
- LED 2 označená nápisem USB OK ->svítí pokud systém (Windows) našel na USB sběrnici zařízení (USBasp programátor)
- LED 3 označená nápisem POWER -> svítí pokud je na desce USBasp programátoru přítomno napájecí napětí 5V
Schéma zapojení USBasp programátoru (doplněno oproti PE 03/2016 o DIP spínač)
Deska spojů (můj návrh - v PE deska nebyla uvedena)
Foto ze stavby programátoru
Seznam součástek
Označení | Hodnota | TME | Cena za ks/ x-ks |
SWITCH1 | DIP spínač | https://www.tme.eu/cz/details/ds-02/prepinace-dip-switch/ninigi/ | 11,8,-/ 11,8,- |
D1, D2 | Zener 3V6 | https://www.tme.eu/cz/details/tzmb3v6-gs08/zenerovy-diody-smd/vishay/ | 0,5,-/ 1,- |
LED1-3 | LED rudá 3mm | https://www.tme.eu/cz/details/l-934ec/led-diody-tht-3mm/kingbright-electronic/ | 2,4,-/ 7,2,- |
C2, C4 | 22pF | https://www.tme.eu/cz/details/cc-22/keramicke-kondenzatory-tht-50v/sr-passives/ | 0,18,-/ 0,36,- |
C3 | 100nF/50V kerko | http://www.tme.eu/cz/details/cm-100n-x7r/kondenzatory-mlcc-tht/sr-passives/ | 1,1,-/ 1,1,- |
C1 | 10uF/16V | https://www.tme.eu/cz/details/ce-10_25sp/elektrolyticke-kondenzatory-tht-85c/sr-passives/ | 0,6,-/ 0,6,- |
R1, R2 | 68/ 1206 | https://www.tme.eu/cz/details/rc1206jr-0768r/rezistory-smd-1206/yageo/rc1206jr-0768rl/ | 0,16,-/ 0,32,- |
R3 | 2k2/ 1206 | https://www.tme.eu/cz/details/smd1206-2k2/rezistory-smd-1206/royal-ohm/1206s4j0222t5e/ | 0,19,-/ 0,19,- |
R4-5, R7 | 270/ 1206 | https://www.tme.eu/cz/details/rc1206fr-07270r/rezistory-smd-1206/yageo/rc1206fr-07270rl/ | 0,18,-/ 0,18,- |
R6 | 10k/ 1206 | https://www.tme.eu/cz/details/smd1206-10k/rezistory-smd-1206/royal-ohm/1206s4j0103t5e/ | 0,2,-/ 0,2,- |
Q1 | Krystal 12MHz | https://www.tme.eu/cz/details/12.00m-hc49-s/krystalove-rezonatory-tht/yic/1200m-hc49-s/ | 13,6,-/ 13,6,- |
X2 | USB konektor | http://www.tme.eu/cz/details/usb-b-s-ra/konektory-usb-a-ieee1394/adam-tech/ | 13,3,-/ 13,3,- |
IC1 | ATMEGA 8-16PU | https://www.tme.eu/cz/details/atmega8-16pu/8-bit-avr-family/microchip-atmel/ | 72,3,-/ 72,3,- |
IC1-patice | Patice DIL28 | http://www.tme.eu/cz/details/gold-28p-w/presne-patice/ninigi/gold-28p-w/ | 17,8,-/ 17,8,- |
J1-ISP | 2x5 pin řadový konektor 2,54mm | https://www.tme.eu/cz/details/zl231-10pg/konektory-idc/connfly/ds1013-10ssib1/ | 2,-/ 2,- |
kabel ISP | kabel samice-samice | https://www.tme.eu/cz/details/fc10150-s/ploche-kabely-s-konektory-idc/amphenol/ | 23,6,-/ 23,6,- |
Celkem za kus v Kč | 165,- |
Uvedení do provozu
Multimetrem na test vodivosti "pípák" zkontrolujeme zda není zkrat mezi některou cestou a 0V, nebo +5V, nebo mezi.
Zasuneme USB konektor do desky USBasp a bez vloženého procesoru do patice zkontrolujeme multimetrem napájecí napětí 5V na pinech patice procesoru mezi pin 7 = +5V a pin 8 = 0V dále mezi pin 8 = 0V a pin 1 = +5V dále mezi pin 22 = 0V a pin 20 = +5V.
Po zasunutí USB konektoru z PC do USBasp nám Windows oznámí, že zařízení nepracuje správně. V tuto chvíli ignorujeme hlášení.
Odpojíme USB kabel z desky USBasp.
Na desce USBasp sepneme DIP spínač 2 do polohy "ON" (aby šlo z ISP konektoru do desky USBasp napájecí napětí).
Použijeme jiný programátor (například MKII), který připojíme na ISP konektor USBasp našeho programátoru.
Vložíme do patice USBasp programátoru procesor Atmega 8-16PU a propojíme drátkem pin 1 procesoru (reset) s pinem 16 procesoru (reset na ISP konektoru).
Spustíme v PC program avrdude pro náš programátor (například MKII) a nastavíme pojistky HFUSE=0xc9 LFUSE=0xef.
Následně nahrajeme do procesoru Atmega 8 obslužný program (hex ze stránek fischl.de nebo zde z mého webu v příloze).
Odpojíme drátek spojující pin 1 a pin 16 procesoru Atmega 8.
Připojíme USB kabel z PC do USBasp programátoru -> Windows by měl oznámit nalezené zařízení USBasp. Koukneme do správce zařízení, kdy by měl být programátor vidět.
Pomocí programu "Zadix" nainstalujeme ovladač pro programátor
Nyní již můžeme nahrávat do našich projektů i přímo pomocí Arduino IDE, kde zvolíme programátor USBasp.
Starší postup - ovladače
Zvolíme volbu "aktualizovat ovladač" a nastavíme cestu do složky jako na obrázku.
Systém (Windows) by měl najít ovladač a nainstalovat ho (pokud "vybafne" červené varování zvolíme opravdu nainstalovat).
Pokud vše proběhne OK.
Tím je vše dokončeno a můžeme programátor začít používat...
Nastavení pojistek procesoru Atmega 8-16PU
HFUSE=0xc9 LFUSE=0xef EFUSE=0xff
DONATE
- schéma a deska (Eagle, Gerber)
FREE
- 3D krabička (gcode, stl)
Aktualizace 4. 9. 2018
Snadnější instalaci ovladačů do Windows (testováno Windows 10/11 - 32/64 bit) je možné provést pomocí nástroje zadig (kde je instalace do systému otázka 3 kliknutí myši :-) https://zadig.akeo.ie/3