No changes between revisions
/Modules/AVR/AVRUSB01A/DOC/FW_USBasp.cs.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Modules/AVR/AVRUSB01A/DOC/HTML/AVRUSB01A.cs.htm
File deleted
/Modules/AVR/AVRUSB01A/DOC/HTML/AVRUSB01A.cs.html
0,0 → 1,553
<!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> AVRUSB01A </title>
<meta name="keywords" content="stavebnice MLAB USB AVR USBasp I2C">
<meta name="description" content="Projekt MLAB, Modul pro AVR procesory, převodník USB na I2C, programátor AVR ISP">
<!-- 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">
USB modul pro AVR
</p>
 
<p class=Autor>
Milan Horkel
</p>
 
<p class="Subtitle">
Potřeboval jsem rychle připojit I2C zařízení k Linuxovému počítači. Protože se mi nelíbilo
"bastl" provedení USB rozhraní s procesorem ATmega, zkomponoval jsem tento modul. Může
sloužit jako ISP programátor pro AVR procesory, jako převodník USB na I2C a na další pokusy
se softwarovou realizací USB na procesorech řadu ATmega. Obsahuje také stabilizátor 3,3V.
</p>
<p class="Subtitle">
<img width="630" height="319" src="AVRUSB01A_soubory/image001.jpg" alt="Obrázek modulu AVRUSB01A">
</p>
 
<p>
<a href="../AVRUSB01A.cs.pdf"><img class="NoBorder"
src="../../../../../Web/PIC/FileIco_PDF.ico"
alt="Acrobat">&nbsp;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> Napájení </td>
<td> +5V </td>
<td> Z USB rozhraní </td>
</tr>
<tr>
<td> Napájení vnitřní </td>
<td> +5V / +3.3V </td>
<td> Vlastní stabilizátor, max 800mA </td>
</tr>
<tr>
<td> Funkce (dle firmwaru) </td>
<td> USBasp<br>
i2c-tiny-usb </td>
<td> Programátor AVR<br>
Převodník USB - I2C </td>
</tr>
<tr>
<td> Rozměry </td>
<td> 60&nbsp;x&nbsp;30&nbsp;x&nbsp;18&nbsp;mm </td>
<td> Výška nad základnou </td>
</tr>
</table>
 
<h1> Popis konstrukce </h1>
 
<h2> Úvodem </h2>
 
<p>
Pro procesory AVR existuje knihovna (ne jedna, dokonce několik), která realizuje USB Low
Speed (1.5Mbit/s) protokol čistě softwarovými prostředky. Jedná se o řešení kompromisní,
protože obyčejné vývody procesorů AVR nesplňují elektrické parametry USB specifikace.
Nicméně existuje spousta konstrukcí, které toto řešení používají a díky přeci jen laxnějším
požadavkům pro Low Speed USB se jedná o řešení funkční.
</p>
 
<p>
<i>Pozor, novější operační systémy v souladu s USB specifikací zakazují Bulk
přenosy pro Low Speed USB zařízení. Takže některé firmwary nemusejí fungovat.</i>
</p>
 
<p>
Původní řešení ve stavebnici MLAB bylo poněkud neelegantní. Posuďte sami:
</p>
 
<table>
<tr>
<td>
<p>
<img width="288" height="320" src="AVRUSB01A_soubory/image002.jpg"
alt="Nelegantní řešení">
</p>
</td>
<td>
<p>
<img width="190" height="96" src="AVRUSB01A_soubory/image003.jpg"
alt="Nový modul">
</p>
</td>
</tr>
</table>
 
<p>
Modul tedy slouží pro běh standardních firmwarů, nebo pro tvorbu a testování vlastních.
Dále poskytuje stabilizátor napětí 3.3V. Standardní firmwary poskytují tyto například
tyto služby:
</p>
 
<ul>
<li> Programování procesorů AVR (firmware USBasp,
<a href="http://www.fischl.de/usbasp">http://www.fischl.de/usbasp</a>) </li>
<li> Převodník USB na I2C (firmware i2c-tiny-usb,
<a href="http://www.harbaum.org/till/i2c_tiny_usb">http://www.harbaum.org/till/i2c_tiny_usb</a>) </li>
<li> a další... </li>
</ul>
 
<h2> Zapojení modulu </h2>
 
<p>
Zapojení vychází z předdefinovaného přiřazení vývodů USB knihovny <i>usbdrv</i>, různé
firmwary mohou mít přiřazení (USB) vývodů odlišné a je třeba je před překladem přenastavit
(a&nbsp;případně opravit, pokud autor nemá konfiguraci správně připravenou).
</p>
 
<p>
První částí zapojení je napájecí zdroj. Umožňuje pomocí propojky J2 použít jak napětí +5V
přímo z&nbsp;USB, tak i napětí +3.3V z vestavěného stabilizátoru. Na vstupu je ochranná
pojistka, protože ji některá zařízení (v rozporu s USB specifikací) nemají a při případné
zkratu by mohlo někde něco uhořet. <i>Pozor, osazujeme jen jednu pojistku
(na plošném spoji leží přes sebe).</i>
</p>
 
<p>
<img width="988" height="294" src="AVRUSB01A_soubory/image004.png"
alt="Schéma, napájecí zdroj">
</p>
 
<p>
Další částí je procesor ATmega88, který je připojen na USB konektor.
</p>
 
<p>
<img width="988" height="454" src="AVRUSB01A_soubory/image005.png"
alt="Schéma, procesor">
</p>
 
<p>
Pro jeho vlastní programování se používá konektor J9 a je nutné zapojit propojku J6, která
umožní programování.
</p>
 
<p>
Po nahrání firmwaru "programátor AVR" je konektor J9 použit pro připojení cílového
zařízení, které lze napájet napětím 3.3V z modulu přes spojku J10 a případně spojkou J2
nastavit napětí +5V.
</p>
 
<p>
<img width="494" height="254" src="AVRUSB01A_soubory/image006.png"
alt="Schéma, konektor AVR ISP">
<img width="334" height="254" src="AVRUSB01A_soubory/image007.png"
alt="Schéma, konektor napájení">
</p>
 
<p>
Po nahrání firmwaru "převodník I2C" je možné na konektor J8 připojit I2C sběrnici, případně
povolit její napájení +3.3V přes J7 (J2 zapíná +5V z USB). K dispozici jsou dále LED diody
D4 a D5 a případně vyvedené rozhraní RS232 (TTL úrovně).
</p>
 
<p>
<img width="494" height="254" src="AVRUSB01A_soubory/image008.png"
alt="Schéma, I2C konektor">
<img width="334" height="254" src="AVRUSB01A_soubory/image009.png"
alt="Schéma, diody LED">
<img width="334" height="148" src="AVRUSB01A_soubory/image010.png"
alt="Schéma, konektor RS232">
</p>
 
<h2> Seznam součástek </h2>
 
<table class="Soupiska">
<tr>
<th> Počet </th>
<th> Reference </th>
<th> Název </th>
<th> Pouzdro </th>
</tr>
<tr>
<th colspan="4"> Odpory </th>
</tr>
<tr>
<td> 10 </td>
<td> R2, R3, R8, R9, R10, R11, R14, R15, R16, R17 </td>
<td> 68 </td>
<td> R0805 </td>
</tr>
<tr>
<td> 1 </td>
<td> R7 </td>
<td> 330 </td>
<td> R0805 </td>
</tr>
<tr>
<td> 2 </td>
<td> R5, R6 </td>
<td> 470 </td>
<td> R0805 </td>
</tr>
<tr>
<td> 1 </td>
<td> R1 </td>
<td> 2k2 </td>
<td> R0805 </td>
</tr>
<tr>
<td> 3 </td>
<td> R4, R12, R13 </td>
<td> 4k7 </td>
<td> R0805 </td>
</tr>
<tr>
<th colspan="4"> Keramické kondenzátory </th>
</tr>
<tr>
<td> 2 </td>
<td> C4, C5 </td>
<td> 22pF </td>
<td> C0805 </td>
</tr>
<tr>
<td> 2 </td>
<td> C1, C6 </td>
<td> 100nF </td>
<td> C0805 </td>
</tr>
<tr>
<td> 2 </td>
<td> C2, C3 </td>
<td> 10uF </td>
<td> C0805 </td>
</tr>
<tr>
<th colspan="4"> Diody </th>
</tr>
<tr>
<td> 2 </td>
<td> D1, D2 </td>
<td> 1N4007SMD </td>
<td> MELF </td>
</tr>
<tr>
<th colspan="4"> Zenerovy diody </th>
</tr>
<tr>
<td> 2 </td>
<td> D6, D7 </td>
<td> BZV55C3.6 </td>
<td> MINIMELF </td>
</tr>
<tr>
<th colspan="4"> Svítivé diody </th>
</tr>
<tr>
<td> 2 </td>
<td> D3, D4 </td>
<td> HCL-1505-4(RED) </td>
<td> LED1206REV </td>
</tr>
<tr>
<td> 1 </td>
<td> D5 </td>
<td> HCL-1503-4(GREEN) </td>
<td> LED1206REV </td>
</tr>
<tr>
<th colspan="4"> Pojistky </th>
</tr>
<tr>
<td> 1 </td>
<td> F1A </td>
<td> SR075-06 </td>
<td> R0805 </td>
</tr>
<tr>
<td> 0 </td>
<td> F1B </td>
<td> 1812L075PR </td>
<td> F1812 </td>
</tr>
<tr>
<th colspan="4"> Integrované obvody </th>
</tr>
<tr>
<td> 1 </td>
<td> U1 </td>
<td> LT1117-3.3 </td>
<td> SOT223 </td>
</tr>
<tr>
<td> 1 </td>
<td> U2 </td>
<td> ATmega88-20AU </td>
<td> TQFP32 </td>
</tr>
<tr>
<th colspan="4"> Krystaly </th>
</tr>
<tr>
<td> 1 </td>
<td> X1 </td>
<td> 12MHz </td>
<td> XTAL050 </td>
</tr>
<tr>
<th colspan="4"> Mechanické součástky </th>
</tr>
<tr>
<td> 1 </td>
<td> J1 </td>
<td> USB_B_01 </td>
<td> USB_B_01 </td>
</tr>
<tr>
<td> 4 </td>
<td> J2, J5, J7, J10 </td>
<td> JUMP2 </td>
<td> JUMP2 </td>
</tr>
<tr>
<td> 1 </td>
<td> J6 </td>
<td> JUMP3 </td>
<td> JUMP3 </td>
</tr>
<tr>
<td> 2 </td>
<td> J4, J3</td>
<td> JUMP2X3 </td>
<td> JUMP2X3 </td>
</tr>
<tr>
<td> 1 </td>
<td> J8 </td>
<td> JUMP2X5 </td>
<td> JUMP2X5 </td>
</tr>
<tr>
<td> 1 </td>
<td> J9 </td>
<td> JUMP2x3 </td>
<td> JUMP2x3/B </td>
</tr>
<tr>
<th colspan="4"> Konstrukční součástky </th>
</tr>
<tr>
<td> 4 </td>
<td> &nbsp; </td>
<td> Šroub M3x12 </td>
<td> &nbsp; </td>
</tr>
<tr>
<td> 4 </td>
<td> &nbsp; </td>
<td> Podložka M3 </td>
<td> &nbsp; </td>
</tr>
<tr>
<td> 4 </td>
<td> &nbsp; </td>
<td> Sloupek M3x5 </td>
<td> &nbsp; </td>
</tr>
<tr>
<td> 2 </td>
<td> &nbsp; </td>
<td> JUMPER </td>
<td> &nbsp; </td>
</tr>
<tr>
<td> 1 </td>
<td> &nbsp; </td>
<td> Plošný spoj </td>
<td> &nbsp; </td>
</tr>
</table>
 
<h2> Zapojení použitých IO </h2>
 
<p>
Použitý obvod ATmega88-20 v pouzdru TQFP je možné nahradit procesorem ATmega8, ale je třeba
použít správnou variantu firmwaru přeloženou pro použitý procesor. Rychlost procesoru a
krystal volíme dle požadavků firmwaru. USB knihovna podporuje jen vybrané kmitočty.
</p>
 
<p>
Knihovna USB umožňuje připojení USB datových signálů k libovolnému portu procesoru, ale
současně potřebuje, aby alespoň jeden signál vyvolával přerušení s dostatečně velkou
prioritou. Zde je přerušovacím signálem INT0 na signálu D+ (vývod PD2).
</p>
 
<h2> Mechanická konstrukce </h2>
 
<p>
Jedná se o standardní modul pro stavebnici MLAB určený k přišroubování k základní desce.
</p>
 
<h1> Osazení a oživení </h1>
 
<h2> Osazení </h2>
 
<p>
Na straně spojů nezapomeneme osadit drátové propojky (platí pro jednostranný plošný spoj).
</p>
 
<p>
<img width="802" height="404" src="AVRUSB01A_soubory/image011.png"
alt="Osazovací výkres, strana součástek">
</p>
 
<p>
Na straně spojů jsou osazeny standardní SMD součástky, jen LED diody se osazují opačně,
svítící stranou směrem do desky (je tam otvor velký tak akorát, aby se tam vešlo pouzdro
standardní diody v pouzdru 1206).
</p>
 
<p>
<img width="802" height="405" src="AVRUSB01A_soubory/image012.png"
alt="Osazovací výkres, strana spojů">
</p>
 
<h2> Oživení </h2>
 
<p>
Oživení spočívá v optické kontrole na zkraty a v elektrické kontrole funkčnosti
stabilizátoru +3.3V. Pak stačí externím programátorem nahrát příslušný firmware a ozkoušet
jeho funkčnost.
</p>
 
<h1> Programové vybavení </h1>
 
<p>
Jednotlivé firmwary (nakonfigurované pro tento hardware) jsou součástí tohoto projektu
spolu s jejich přeloženými binárními soubory v adresáři SW.
</p>
 
<p>
Firmwary musejí být nakonfigurovány s těmito parametry:
</p>
 
<table>
<tr>
<th> Parametr </th>
<th> Hodnota </th>
<th> Poznámka </th>
</tr>
<tr>
<td> USB D+ </td>
<td> PD2/INT0 </td>
<td> Je současně signálem externího přerušení INT0, obvyklé provedení programátoru USBasp používá port PB1. </td>
</tr>
<tr>
<td> USB D- </td>
<td> PD4 </td>
<td> Obvyklé provedení programátoru USBasp používá port PB1. </td>
</tr>
<tr>
<td> Přerušení </td>
<td> PD2/INT0 </td>
<td> Obvyklé provedení programátoru USBasp používá port PD2 spojený s portem PB1. </td>
</tr>
<tr>
<td> Krystal </td>
<td> 12.0MHz </td>
<td> Obvyklá hodnota frekvence, nutno volit podle toho, jaké frekvence jsou podporované v
USB knihovně (například 12.0MHz, 12.8MHz, 15.0MHz, 16.0MHz, 16.5MHz, 18.0MHz
20.0MHz). </td>
</tr>
<tr>
<td> Procesor </td>
<td> ATmega88 </td>
<td> Alternativně ATmega8 (nutný překlad firmwaru pro správně nastavený procesor). </td>
</tr>
</table>
</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>
/Modules/AVR/AVRUSB01A/DOC/HTML/FW_USBasp.cs.html
0,0 → 1,395
<!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="504" height="255" 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">&nbsp;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&nbsp; 0x16c0<br>
DEVICE ID&nbsp;&nbsp; 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) a
vnitř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 rychlost
komunikace a toho lze docílit instalací propojky mezi piny 2 a 3 konektoru J6 (označené RX
a 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 knihovny
libusb 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 (verze
0.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&gt;avrdude -c USBasp -p ATmega88 -F
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e930a
avrdude: safemode: Fuses OK
avrdude done.&nbsp; Thank you.
C:\Users\miho&gt;</code>
 
<h2> USBasp s Linuxem </h2>
 
<p>
Pod linuxem by vše mělo fungovat bez komplikací. Program avrdude spouštíme s root
oprávněním, aby se dostal k USB zařízení. Případně je možné systému říci, že pro toto
zaří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
&nbsp;
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 -F
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e930a
avrdude: safemode: Fuses OK
avrdude done.&nbsp; Thank you.
miho@bobik:~$</code>
 
<h2> USBasp s Androidem </h2>
 
<p>
Do Android zařízení nakoupíme aplikaci ZFlasher&nbsp;AVR (je zdarma) a přes OTG-USB kabel
př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 konektor
J9. Nutno zapojit propojky J5 (povolení programování) a J10 (propojení napájení přes ISP
konektor). 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 USB
kabel.
</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 to
1 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 -U
flash: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> &nbsp; </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í definic
pinů) 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, že
definice hardwaru jsou rozstrkané do více zdrojáků. To jsem upravovat nechtěl, aby byla
zachová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&nbsp;</td>
<td> ATmega8<br>
ATmega88 </td>
<td> &nbsp; </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ám
WinAVR-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>
/Modules/AVR/AVRUSB01A/DOC/HTML/FW_USBasp_soubory/image001.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Modules/AVR/AVRUSB01A/DOC/SRC/FW_USBasp.cs.doc
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property