<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title> USBasp </title><meta name="keywords" content="USBasp AVRUSB01 MLAB firmware programátor"><meta name="description" content="Firnware USBasp pro modul AVRUSB01, ISP programátor pro procesory AVR"><!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --><link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"><link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print"><link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico"><script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script><!-- AUTOINCLUDE END --></head><body lang="cs"><!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --><!-- ============== HLAVICKA ============== --><div class="Header"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawHeader();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --><!-- ============== MENU ============== --><div class="Menu"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawMenu();// --></script><noscript><p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- ============== TEXT ============== --><div class="Text"><p class="Title">Firmware USBasp pro modul AVRUSB</p><p class=Autor>Milan Horkel</p><p class="Subtitle">Firmware USBasp umožňuje použít modul AVRUSB jako ISP programátor procesorůřady AVR pod všemi běžnými operačními systémy.</p><p class="Subtitle"><img width="640" height="319" src="FW_USBasp_soubory/image001.jpg"alt="Obrázek modulu AVRUSB01"></p><p><a href="../FW_USBasp.cs.pdf"><img class="NoBorder"src="../../../../../Web/PIC/FileIco_PDF.ico"alt="Acrobat"> PDF verze</a></p><h1> Technické parametry </h1><table><tr><th> Parametr </th><th> Hodnota </th><th> Poznámka </th></tr><tr><td> Rozhraní </td><td> USB </td><td> Low Speed </td></tr><tr><td> Protokol </td><td> USBasp </td><td> VENDOR ID 0x16c0<br>DEVICE ID 0x05dc </td></tr><tr><td> Procesor </td><td> ATmega8 ATmega88 </td><td> Varianty překladu </td></tr><tr><td> Podporované systémy </td><td> WindowXP/7/8<br>Linux/Ubuntu/...<br>Android </td><td> avrdude<br>avrdude<br>ZFlasher AVR </td></tr></table><h1> Popis </h1><p>Firmware USBasp je USB programátor pro procesory AVR s USB rozhraním realizovaným čistěprogramovými prostředky. Jako vhodný ovládací program lze použít rozšířený AVRDUDE.Firmware je přeložen ve variantách pro procesor ATmega8 a ATmega88.</p><h2> Hardware </h2><p>Konektor J9 slouží pro naprogramování firmwaru (při zapojené propojce J5, případně i J10),nebo pro připojení zařízení, které chceme programovat tímto USBasp programátorem. Zapojeníje dle doporučení firmy Atmel (šestipinový ISP konektor).</p><p>Programátor má vyvedeno USB napětí +5V na konektoru J3 (přes samoopravnou pojistku) avnitřní napětí na J4 (+5V z USB pokud je zapojen J2, nebo +3.3V z vnitřního stabilizátoru).Toto vnitřní napětí je možné připojit na ISP konektor J9 pomocí propojky J10.</p><p>Při programování cílového procesoru, který běží na nízkém kmitočtu je třeba snížit rychlostkomunikace a toho lze docílit instalací propojky mezi piny 2 a 3 konektoru J6 (označené RXa GND).</p><p>Červená LED indikuje přenos dat, zelená LED svítí jakmile se zařízení zapne.</p><table><tr><th> Propojka </th><th> Zapnuto </th><th> Vypnuto </th></tr><tr><td> J2 </td><td> Napájení 5V z USB </td><td> Napájení 3.3V ze stabilizátoru </td></tr><tr><td> J5 </td><td> Programování vlastního procesoru </td><td> Funguje jako programátor </td></tr><tr><td> J10 </td><td> Napájení cílového zařízení </td><td> Bez napájení cílového zařízení </td></tr><tr><td> J6.2 - J6.3 </td><td> Vnucený pomalý režim ISP </td><td> Rychlost přenosu nastavuje program </td></tr></table><h2> USBasp s Windows </h2><p>Pod Windows je třeba nainstalovat driver libusb. Pro Windows7/8 jsou novější verze knihovnylibusb podepsané a tak nepůsobí potíže. Drivery vybalíme z přiloženého originálního balíku,nebo stáhneme poslední verzi.</p><p><samp>SW/fw_usbasp/original/usbasp.2011-05-28.tar.gz</samp></p><p>Pokud používáte starší verzi programu avrdude, musíte použít starší verzi libusb (verze0.x) a pod Windows7/8 povolit použití nepodepsaných driverů. Nepodepsané drivery je možnépovolit při startu systému pomocí volby F8 (při každém startu znova).</p><p>Ověříme funkčnost (z příkazové řádky):</p><code>C:\Users\miho>avrdude -c USBasp -p ATmega88 -Favrdude: AVR device initialized and ready to accept instructionsReading | ################################################## | 100% 0.00savrdude: Device signature = 0x1e930aavrdude: safemode: Fuses OKavrdude done. Thank you.C:\Users\miho></code><h2> USBasp s Linuxem </h2><p>Pod linuxem by vše mělo fungovat bez komplikací. Program avrdude spouštíme s rootoprávněním, aby se dostal k USB zařízení. Případně je možné systému říci, že pro totozařízení není třeba root oprávnění vytvořením souboru<samp>/etc/udev/rules.d/99-USBasp.rules</samp> s tímto obsahem (maso je jedna dlouhářádka):</p><code># USBasp - USB programmer for Atmel AVR controllers# Copy this file to /etc/udev/rules.d so SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", MODE="0666"</code><p>Vzorový soubor opět nalezneme v přiloženém originálním balíku.</p><p><samp>SW/fw_usbasp/original/usbasp.2011-05-28.tar.gz</samp></p><p>Ověříme funkčnost (z terminálu):</p><code>miho@bobik:~$ avrdude -c USBasp -p ATmega88 -Favrdude: AVR device initialized and ready to accept instructionsReading | ################################################## | 100% 0.01savrdude: Device signature = 0x1e930aavrdude: safemode: Fuses OKavrdude done. Thank you.miho@bobik:~$</code><h2> USBasp s Androidem </h2><p>Do Android zařízení nakoupíme aplikaci ZFlasher AVR (je zdarma) a přes OTG-USB kabelpřipojíme programátor a je to.</p><h1> Programování firmwaru </h1><p>Do modulu AVRUSB musíme neprogramovat firmware. Děláme to jiným programátorem přes konektorJ9. Nutno zapojit propojky J5 (povolení programování) a J10 (propojení napájení přes ISPkonektor). Pokud neumí použitý programátor napájet cílovou aplikaci přes ISP konektor,musíme zapojit napájecí zdroj +3.3V nebo +5V na napájecí konektor J4, nebo připojit USBkabel.</p><p>Dejte extra pozor při programování propojek ať si omylem nezakážete ISP programování.Raději dvakrát zkontrolujte typ procesoru a hodnotu propojek.</p><p>Kdo nechce hledat parametry programu avrdude, tady je příklad pro procesor ATmega88 (je to1 dlouhá řádka a platí pro programátor picoweb na portu LPT1):</p><p><samp>avrdude -c picoweb -p ATmega88 -P lpt1 -u -U hfuse:w:0xDE:m -U lfuse:w:0xD7:m -Uflash:w: usbasp_atmega88.hex</samp></p><table><tr><th> Procesor </th><th> Soubor </th><th> EFUSE </th><th> HFUSE </th><th> LFUSE </th></tr><tr><td> ATmega8 </td><td> usbasp_atmega8.hex </td><td> </td><td> HFUSE=0xC9 </td><td> LFUSE=0x9F </td></tr><tr><td> ATmega88 </td><td> usbasp_atmega88.hex </td><td> EFUSE=0xF9 </td><td> HFUSE=0xDE </td><td> LFUSE=0xD7 </td></tr></table><h1> Překlad firmwaru </h1><h2> Zdrojáky a úpravy </h2><p>Zdojáky jsou z adresy <a href="http://www.fischl.de/usbasp">http://www.fischl.de/usbasp</a></p><p>Provedené úpravy spočívají v opravě definic IO vstupů a výstupů (důsledné použití definicpinů) a v doplnění překladu o automatický překlad všech variant firmwarů najednou.</p><p>Pokud budete chtít upravovat zdroják pro jiný hardware, je třeba dát pozor na to, žedefinice hardwaru jsou rozstrkané do více zdrojáků. To jsem upravovat nechtěl, aby bylazachována co největší podobnost s původním stavem.</p><p>Konfiguraci firmwaru shrnuje tabulka</p><table><tr><th> Parametr </th><th> Hodnota </th><th> Poznámka </th></tr><tr><td> USB D+ </td><td> PD2 </td><td> USB Data+, je současně signálem externího přerušení INT0 </td></tr><tr><td> USB D- </td><td> PD4 </td><td> USB Data- </td></tr><tr><td> LED Red </td><td> PC0 </td><td> Červená LED, aktivní L, indikuje přenos dat </td></tr><tr><td> LED Green </td><td> PC1 </td><td> Zelená LED, aktivní L, svítí trvale </td></tr><tr><td> SW </td><td> PD0 </td><td> Zpomalení rychlosti ISP komunikace, aktivní L </td></tr><tr><td> Krystal </td><td> 12.0MHz </td><td> Nutno naprogramovat FUSE na externí krystal </td></tr><tr><td> Procesor </td><td> ATmega8<br>ATmega88 </td><td> </td></tr></table><h2> Překlad </h2><p>Pro překlad je připravený Makefilepro je překlad variant pro procesory ATmega8 i ATmega88.</p><p><samp>make all</samp></p><p>Pro překlad pod Windows stačí nainstalovat balík <samp>WinAVR</samp> (mámWinAVR-20100110-install.exe).</p><p>Pro překlad pod Linuxem potřebujete balíky <samp>gcc-avr</samp> a <samp>avr-libc</samp>.</p></div><!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --><!-- ============== PATIČKA ============== --><div class="Footer"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawFooter();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --></body></html>