Rev Author Line No. Line
3490 miho 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title> USBasp </title>
6 <meta name="keywords" content="USBasp AVRUSB01 MLAB firmware programátor">
7 <meta name="description" content="Firnware USBasp pro modul AVRUSB01, ISP programátor pro procesory AVR">
8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
10 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
11 <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
12 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
13 <!-- AUTOINCLUDE END -->
14 </head>
15  
16 <body lang="cs">
17  
18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
19 <!-- ============== HLAVICKA ============== -->
20 <div class="Header">
21 <script type="text/javascript">
22 <!--
23 SetRelativePath("../../../../../");
24 DrawHeader();
25 // -->
26 </script>
27 <noscript>
28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
29 </noscript>
30 </div>
31 <!-- AUTOINCLUDE END -->
32  
33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
34 <!-- ============== MENU ============== -->
35 <div class="Menu">
36 <script type="text/javascript">
37 <!--
38 SetRelativePath("../../../../../");
39 DrawMenu();
40 // -->
41 </script>
42 <noscript>
43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
44 </noscript>
45 </div>
46 <!-- AUTOINCLUDE END -->
47  
48 <!-- ============== TEXT ============== -->
49 <div class="Text">
50  
51 <p class="Title">
52 Firmware USBasp pro modul AVRUSB
53 </p>
54  
55 <p class=Autor>
56 Milan Horkel
57 </p>
58  
59 <p class="Subtitle">
60 Firmware USBasp umožňuje použít modul AVRUSB jako ISP programátor procesorů
61 řady AVR pod všemi běžnými operačními systémy.
62 </p>
63  
64 <p class="Subtitle">
3521 miho 65 <img width="640" height="319" src="FW_USBasp_soubory/image001.jpg"
3490 miho 66 alt="Obrázek modulu AVRUSB01">
67 </p>
68  
69 <p>
70 <a href="../FW_USBasp.cs.pdf"><img class="NoBorder"
71 src="../../../../../Web/PIC/FileIco_PDF.ico"
72 alt="Acrobat">&nbsp;PDF verze</a>
73 </p>
74  
75 <h1> Technické parametry </h1>
76  
77 <table>
78 <tr>
79 <th> Parametr </th>
80 <th> Hodnota </th>
81 <th> Poznámka </th>
82 </tr>
83 <tr>
84 <td> Rozhraní </td>
85 <td> USB </td>
86 <td> Low Speed </td>
87 </tr>
88 <tr>
89 <td> Protokol </td>
90 <td> USBasp </td>
91 <td> VENDOR ID&nbsp; 0x16c0<br>
92 DEVICE ID&nbsp;&nbsp; 0x05dc </td>
93 </tr>
94 <tr>
95 <td> Procesor </td>
96 <td> ATmega8 ATmega88 </td>
97 <td> Varianty překladu </td>
98 </tr>
99 <tr>
100 <td> Podporované systémy </td>
101 <td> WindowXP/7/8<br>
102 Linux/Ubuntu/...<br>
103 Android </td>
104 <td> avrdude<br>
105 avrdude<br>
106 ZFlasher AVR </td>
107 </tr>
108 </table>
109  
110 <h1> Popis </h1>
111  
112 <p>
113 Firmware USBasp je USB programátor pro procesory AVR s USB rozhraním realizovaným čistě
114 programovými prostředky. Jako vhodný ovládací program lze použít rozšířený AVRDUDE.
115 Firmware je přeložen ve variantách pro procesor ATmega8 a ATmega88.
116 </p>
117  
118 <h2> Hardware </h2>
119  
120 <p>
121 Konektor J9 slouží pro naprogramování firmwaru (při zapojené propojce J5, případně i J10),
122 nebo pro připojení zařízení, které chceme programovat tímto USBasp programátorem. Zapojení
123 je dle doporučení firmy Atmel (šestipinový ISP konektor).
124 </p>
125  
126 <p>
127 Programátor má vyvedeno USB napětí +5V na konektoru J3 (přes samoopravnou pojistku) a
128 vnitřní napětí na J4 (+5V z USB pokud je zapojen J2, nebo +3.3V z vnitřního stabilizátoru).
129 Toto vnitřní napětí je možné připojit na ISP konektor J9 pomocí propojky J10.
130 </p>
131  
132 <p>
133 Při programování cílového procesoru, který běží na nízkém kmitočtu je třeba snížit rychlost
134 komunikace a toho lze docílit instalací propojky mezi piny 2 a 3 konektoru J6 (označené RX
135 a GND).
136 </p>
137  
138 <p>
139 Červená LED indikuje přenos dat, zelená LED svítí jakmile se zařízení zapne.
140 </p>
141  
142 <table>
143 <tr>
144 <th> Propojka </th>
145 <th> Zapnuto </th>
146 <th> Vypnuto </th>
147 </tr>
148 <tr>
149 <td> J2 </td>
150 <td> Napájení 5V z USB </td>
151 <td> Napájení 3.3V ze stabilizátoru </td>
152 </tr>
153 <tr>
154 <td> J5 </td>
155 <td> Programování vlastního procesoru </td>
156 <td> Funguje jako programátor </td>
157 </tr>
158 <tr>
159 <td> J10 </td>
160 <td> Napájení cílového zařízení </td>
161 <td> Bez napájení cílového zařízení </td>
162 </tr>
163 <tr>
164 <td> J6.2 - J6.3 </td>
165 <td> Vnucený pomalý režim ISP </td>
166 <td> Rychlost přenosu nastavuje program </td>
167 </tr>
168 </table>
169  
170 <h2> USBasp s Windows </h2>
171  
172 <p>
173 Pod Windows je třeba nainstalovat driver libusb. Pro Windows7/8 jsou novější verze knihovny
174 libusb podepsané a tak nepůsobí potíže. Drivery vybalíme z přiloženého originálního balíku,
175 nebo stáhneme poslední verzi.
176 </p>
177  
178 <p>
179 <samp>SW/fw_usbasp/original/usbasp.2011-05-28.tar.gz</samp>
180 </p>
181  
182 <p>
183 Pokud používáte starší verzi programu avrdude, musíte použít starší verzi libusb (verze
184 0.x) a pod Windows7/8 povolit použití nepodepsaných driverů. Nepodepsané drivery je možné
185 povolit při startu systému pomocí volby F8 (při každém startu znova).
186 </p>
187  
188 <p>
189 Ověříme funkčnost (z příkazové řádky):
190 </p>
191  
192 <code>C:\Users\miho&gt;avrdude -c USBasp -p ATmega88 -F
193 avrdude: AVR device initialized and ready to accept instructions
194 Reading | ################################################## | 100% 0.00s
195 avrdude: Device signature = 0x1e930a
196 avrdude: safemode: Fuses OK
197 avrdude done.&nbsp; Thank you.
198 C:\Users\miho&gt;</code>
199  
200 <h2> USBasp s Linuxem </h2>
201  
202 <p>
203 Pod linuxem by vše mělo fungovat bez komplikací. Program avrdude spouštíme s root
204 oprávněním, aby se dostal k USB zařízení. Případně je možné systému říci, že pro toto
205 zařízení není třeba root oprávnění vytvořením souboru
206 <samp>/etc/udev/rules.d/99-USBasp.rules</samp> s tímto obsahem (maso je jedna dlouhá
207 řádka):
208 </p>
209  
210 <code># USBasp - USB programmer for Atmel AVR controllers
211 # Copy this file to /etc/udev/rules.d so
212 &nbsp;
213 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", MODE="0666"</code>
214  
215 <p>
216 Vzorový soubor opět nalezneme v přiloženém originálním balíku.
217 </p>
218  
219 <p>
220 <samp>SW/fw_usbasp/original/usbasp.2011-05-28.tar.gz</samp>
221 </p>
222  
223 <p>
224 Ověříme funkčnost (z terminálu):
225 </p>
226  
227 <code>miho@bobik:~$ avrdude -c USBasp -p ATmega88 -F
228 avrdude: AVR device initialized and ready to accept instructions
229 Reading | ################################################## | 100% 0.01s
230 avrdude: Device signature = 0x1e930a
231 avrdude: safemode: Fuses OK
232 avrdude done.&nbsp; Thank you.
233 miho@bobik:~$</code>
234  
235 <h2> USBasp s Androidem </h2>
236  
237 <p>
238 Do Android zařízení nakoupíme aplikaci ZFlasher&nbsp;AVR (je zdarma) a přes OTG-USB kabel
239 připojíme programátor a je to.
240 </p>
241  
242 <h1> Programování firmwaru </h1>
243  
244 <p>
245 Do modulu AVRUSB musíme neprogramovat firmware. Děláme to jiným programátorem přes konektor
246 J9. Nutno zapojit propojky J5 (povolení programování) a J10 (propojení napájení přes ISP
247 konektor). Pokud neumí použitý programátor napájet cílovou aplikaci přes ISP konektor,
248 musíme zapojit napájecí zdroj +3.3V nebo +5V na napájecí konektor J4, nebo připojit USB
249 kabel.
250 </p>
251  
252 <p>
253 Dejte extra pozor při programování propojek ať si omylem nezakážete ISP programování.
254 Raději dvakrát zkontrolujte typ procesoru a hodnotu propojek.
255 </p>
256  
257 <p>
258 Kdo nechce hledat parametry programu avrdude, tady je příklad pro procesor ATmega88 (je to
259 1 dlouhá řádka a platí pro programátor picoweb na portu LPT1):
260 </p>
261  
262 <p>
263 <samp>avrdude -c picoweb -p ATmega88 -P lpt1 -u -U hfuse:w:0xDE:m -U lfuse:w:0xD7:m -U
264 flash:w: usbasp_atmega88.hex</samp>
265 </p>
266  
267 <table>
268 <tr>
269 <th> Procesor </th>
270 <th> Soubor </th>
271 <th> EFUSE </th>
272 <th> HFUSE </th>
273 <th> LFUSE </th>
274 </tr>
275 <tr>
276 <td> ATmega8 </td>
277 <td> usbasp_atmega8.hex </td>
278 <td> &nbsp; </td>
279 <td> HFUSE=0xC9 </td>
280 <td> LFUSE=0x9F </td>
281 </tr>
282 <tr>
283 <td> ATmega88 </td>
284 <td> usbasp_atmega88.hex </td>
285 <td> EFUSE=0xF9 </td>
286 <td> HFUSE=0xDE </td>
287 <td> LFUSE=0xD7 </td>
288 </tr>
289 </table>
290  
291 <h1> Překlad firmwaru </h1>
292  
293 <h2> Zdrojáky a úpravy </h2>
294  
295 <p>
296 Zdojáky jsou z adresy <a href="http://www.fischl.de/usbasp">http://www.fischl.de/usbasp</a>
297 </p>
298  
299 <p>
300 Provedené úpravy spočívají v opravě definic IO vstupů a výstupů (důsledné použití definic
301 pinů) a v doplnění překladu o automatický překlad všech variant firmwarů najednou.
302 </p>
303  
304 <p>
305 Pokud budete chtít upravovat zdroják pro jiný hardware, je třeba dát pozor na to, že
306 definice hardwaru jsou rozstrkané do více zdrojáků. To jsem upravovat nechtěl, aby byla
307 zachována co největší podobnost s původním stavem.
308 </p>
309  
310 <p>
311 Konfiguraci firmwaru shrnuje tabulka
312 </p>
313  
314 <table>
315 <tr>
316 <th> Parametr </th>
317 <th> Hodnota </th>
318 <th> Poznámka </th>
319 </tr>
320 <tr>
321 <td> USB D+ </td>
322 <td> PD2 </td>
323 <td> USB Data+, je současně signálem externího přerušení INT0 </td>
324 </tr>
325 <tr>
326 <td> USB D- </td>
327 <td> PD4 </td>
328 <td> USB Data- </td>
329 </tr>
330 <tr>
331 <td> LED Red </td>
332 <td> PC0 </td>
333 <td> Červená LED, aktivní L, indikuje přenos dat </td>
334 </tr>
335 <tr>
336 <td> LED Green </td>
337 <td> PC1 </td>
338 <td> Zelená LED, aktivní L, svítí trvale </td>
339 </tr>
340 <tr>
341 <td> SW </td>
342 <td> PD0 </td>
343 <td> Zpomalení rychlosti ISP komunikace, aktivní L </td>
344 </tr>
345 <tr>
346 <td> Krystal </td>
347 <td> 12.0MHz </td>
348 <td> Nutno naprogramovat FUSE na externí krystal </td>
349 </tr>
350 <tr>
351 <td> Procesor&nbsp;</td>
352 <td> ATmega8<br>
353 ATmega88 </td>
354 <td> &nbsp; </td>
355 </tr>
356 </table>
357  
358 <h2> Překlad </h2>
359  
360 <p>
361 Pro překlad je připravený Makefilepro je překlad variant pro procesory ATmega8 i ATmega88.
362 </p>
363  
364 <p>
365 <samp>make all</samp>
366 </p>
367  
368 <p>
369 Pro překlad pod Windows stačí nainstalovat balík <samp>WinAVR</samp> (mám
370 WinAVR-20100110-install.exe).
371 </p>
372  
373 <p>
374 Pro překlad pod Linuxem potřebujete balíky <samp>gcc-avr</samp> a <samp>avr-libc</samp>.
375 </p>
376  
377 </div>
378  
379 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
380 <!-- ============== PATIČKA ============== -->
381 <div class="Footer">
382 <script type="text/javascript">
383 <!--
384 SetRelativePath("../../../../../");
385 DrawFooter();
386 // -->
387 </script>
388 <noscript>
389 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
390 </noscript>
391 </div>
392 <!-- AUTOINCLUDE END -->
393  
394 </body>
395 </html>