0,0 → 1,695 |
<!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> ATprogISPUSB02A </title> |
<meta name="keywords" content="stavebnice MLAB USB ISP programátor ATMEL AVR"> |
<meta name="description" content="Projekt MLAB, USB ISP programátor pro procesory ATMEL 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"> |
Programátor pro procesory AVR |
</p> |
<p class=Autor> |
Miroslav Janás, Milan Horkel |
</p> |
<p class="Subtitle"> |
Modul USB programátoru procesorů AVR s šestipinovým ISP rozhraním. |
Programátor patří do rodiny programátorů STK500. Programátor obsahuje |
tlačítko RESET pro resetování cílového procesoru a přepínač VTG pro |
napájení cílového zařízení napětím 5V přímo z USB nebo 3.3V |
z vnitřního stabilizátoru. |
</p> |
<p class="Subtitle"> |
<img width="561" height="282" src="Pictures/image001.jpg" |
alt="Osazený programátor, pohled zhora"> |
</p> |
<p> |
<a href="../ATprogISPUSB02A.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> Napájení </td> |
<td> 5V </td> |
<td> Napájeno z USB rozhraní |
</td> |
</tr> |
<tr> |
<td> Napájení cílového zařízení </td> |
<td> 5V z USB<br> |
3.3V z vlastního stabilizátoru </td> |
<td> Omezeno USB portem<br> |
Maximálně cca 90mA/490mA <sup>1)</sup> </td> |
</tr> |
<tr> |
<td> Spotřeba </td> |
<td> cca 10mA </td> |
<td> Bez cílového zařízení </td> |
</tr> |
<tr> |
<td> Interface </td> |
<td> USB 1.1, USB 2.0 </td> |
<td> USB kabel A-B </td> |
</tr> |
<tr> |
<td> Kompatibilita </td> |
<td> AVR Studio 4<br> |
AVRDUDE </td> |
<td> STK500<br> |
STK500v2 </td> |
</tr> |
<tr> |
<td> Rozměry </td> |
<td> 65x25x20mm </td> |
<td> Výška nad nosnou deskou </td> |
</tr> |
</table> |
|
<p> |
<sup>1)</sup> Proud je omezen na cca 90mA pokud je osazen menší |
stabilizátor a nebo pokud je použit nenapájený USB HUB |
</p> |
|
<h1> Popis konstrukce </h1> |
|
<h2> Úvodem </h2> |
|
<p> |
Protože nové počítače a zejména notebooky již nemají oblíbený LPT port |
ke kterému se připojují různé jednoduché programátory procesorů, |
naklonovali jsme z dostupných pramenů tento programátor, který se |
připojuje přes všudypřítomnou USB sběrnici. Konstrukce vychází zejména |
z EVERTOOL – <span lang="EN-US">combined AVR programmer and |
debugger</span>. Aby byla konstrukce jednodušší, nahrává se firmware |
přes ISP konektor z jiného programátoru. Podrobnosti viz kapitola |
oživení dále v textu. |
</p> |
|
<h2> Zapojení modulu </h2> |
|
<p> |
Modul je připojen k USB sběrnici prostřednictvím převodníku |
USR-RS232 s obvodem FTDI TF232R. Tento převodník je běžně |
rozšířený s podporovaný ve všech používaných operačních systémech. |
Pokud ve vaší instalaci OS není driver přítomen, bude jej třeba |
nainstalovat. |
</p> |
|
<p> |
Pojistka F1 omezuje proud na cca 0.75A protože některé počítače nemají |
napájecí proud z USB portů omezen. Pojistka je samoopravná. Dioda |
D1 chrání programátor před zničením, pokud je špatně zapojený USB kabel |
nebo port. |
</p> |
|
<p> |
<img width="922" height="471" src="Pictures/image002.png" |
alt="Schéma USB rozhraní"> |
</p> |
|
<p> |
Napájecí napětí pro programátor se bere z USB portu. Z USB |
konektoru běžného počítače lze odebírat proud až 500mA. Z portu |
z nenapájeného USB rozbočovače (a z malých PDA počítačů) lze |
odebírat jen 100mA. Vlastní spotřeba programátoru je cca 10mA a zbytek |
lze použít pro napájení cílové aplikace. Aby bylo možné napájet cílovou |
aplikaci i napětím 3.3V je programátor vybaven stabilizátorem U2. Menší |
obvod U2_1 poskytne cílové aplikaci cca 90mA, větší obvod U2_2 pak až |
490mA. <i>Osazuje se jen jeden z nich!</i> Propojkou J2 se volí |
napětí 3.3V (stav rozpojeno) nebo 5V (stav spojeno). |
</p> |
|
<p> |
<img width="585" height="408" src="Pictures/image003.png" |
alt="Schéma napájecí části"> |
</p> |
|
<p> |
Srdcem programátoru je procesor U3 ATmega8535. Použití právě tohoto |
procesoru je dáno tím, že do programátoru musí pasovat firmware pro |
programátor STK500. Procesor komunikuje sériově přes USB-RS232 |
převodník U1. Odpory 100Ω v sérii s ISP signály jsou |
ochranné, aby nebylo tak snadné zničit programátor nebo cílovou |
aplikaci, zejména při nevhodném napájení. |
</p> |
|
<p> |
<img width="1029" height="431" src="Pictures/image004.png" |
alt="Schéma části s procesorem"> |
</p> |
|
<p> |
Přepínač (propojka) J4 přepíná ISP signály buď do režimu normální |
funkce (poloha 2-3) kdy programátor funguje jako programátor nebo do |
režimu programování firmwaru vlastního programátoru (poloha 1-2). |
V tomto režimu se ISP konektor J5 použije jako vstupní pro |
připojení externího programátoru. |
</p> |
|
<p> |
Je třeba si uvědomit, že 5V na USB nemusí znamenat 5V v cílové |
aplikaci protože se zde projeví úbytky na kabelech, pojistkách a |
tolerance napájecího zdroje PC. Napájení cílové aplikace se zapíná |
přepínačem SW2. |
</p> |
|
<p> |
<img width="672" height="260" src="Pictures/image005.png" |
alt="Schéma ISP konektoru"> |
</p> |
|
<p> |
Tlačítko SW1 slouží pro resetování cílové aplikace, ale neresetuje |
samotný programátor. Je nutné ho osadit, protože současně funguje jako |
drátová propojka na plošném spoji. |
</p> |
|
<p> |
Zelená LED dioda D2 značí připravenost programátoru, červená LED |
dioda D3 oznamuje právě probíhající programování. |
</p> |
|
<h2> Mechanická konstrukce </h2> |
|
<p> |
Modul je navržen jako standardní modul do stavebnice MLAB |
s upevňovacími sloupky v rozích. |
</p> |
|
<p> |
<img width="561" height="282" src="Pictures/image006.jpg" |
alt="Pohled ze strany součástek"> |
</p> |
|
<p> |
<img width="561" height="274" src="Pictures/image007.jpg" |
alt="Pohled ze strany spojů"> |
</p> |
|
<h1> Osazení a oživení </h1> |
|
<h2> Osazení </h2> |
|
<p> |
Modul je navržen na jednostranné desce a obsahuje dvě propojky. Jedna |
propojka je realizována prostřednictvím tlačítka RESET. Pokud se |
tlačítko neosadí, je třeba osadit propojku. Druhá propojka se nachází u |
konektoru J4. Katody LED diod jsou označeny v potisku a jsou |
směrem k procesoru. |
</p> |
|
<p> |
Deska při pohledu ze strany součástek |
</p> |
|
<p> |
<img width="705" height="358" src="Pictures/image008.png" |
alt="Osazovák ze strany součástek"> |
</p> |
|
<p> |
Deska při pohledu ze strany spojů |
</p> |
|
<p> |
<img width="699" height="354" src="Pictures/image009.png" |
alt="Osazovák ze strany spojů"> |
</p> |
|
<p> |
Seznam použitých součástek |
</p> |
|
<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> 4 </td> |
<td> R5, R6, R7, R17 </td> |
<td> 100 </td> |
<td> R0805 </td> |
</tr> |
<tr> |
<td> 2 </td> |
<td> R15, R16 </td> |
<td> 1k5 </td> |
<td> R0805 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> R1 </td> |
<td> 4k7 </td> |
<td> R0805 </td> |
</tr> |
<tr> |
<td> 8 </td> |
<td> R2, R3, R4, R8, R9, R10, R11, R12 </td> |
<td> 10k </td> |
<td> R0805 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> R14 </td> |
<td> 33k </td> |
<td> R0805 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> R13 </td> |
<td> 68k </td> |
<td> R0805 </td> |
</tr> |
<tr> |
<th colspan="4"> Keramické kondenzátory </th> |
</tr> |
<tr> |
<td> 2 </td> |
<td> C14, C15 </td> |
<td> 22p </td> |
<td> C0805 </td> |
</tr> |
<tr> |
<td> 11 </td> |
<td> C1, C3, C4, C5, C6, C8, C9, C10, C11, C12, C13 </td> |
<td> 100n </td> |
<td> C0805 </td> |
</tr> |
<tr> |
<td> 3 </td> |
<td> C2, C7, C16 </td> |
<td> 2.2uF/6.3V/C0805 </td> |
<td> C0805 </td> |
</tr> |
<tr> |
<th colspan="4"> Indukčnosti </th> |
</tr> |
<tr> |
<td> 1 </td> |
<td> L1 </td> |
<td> BLM21P300SPT </td> |
<td> R0805 </td> |
</tr> |
<tr> |
<th colspan="4"> Pojistky </th> |
</tr> |
<tr> |
<td> 1 </td> |
<td> F1 </td> |
<td> RXE075E_SMD </td> |
<td> F1812 </td> |
</tr> |
<tr> |
<th colspan="4"> Diody </th> |
</tr> |
<tr> |
<td> 1 </td> |
<td> D1 </td> |
<td> 1N4007SMD </td> |
<td> MELF </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> D2 </td> |
<td> green </td> |
<td> LED3 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> D3 </td> |
<td> red </td> |
<td> LED3 </td> |
</tr> |
<tr> |
<th colspan="4"> Integrované obvody </th> |
</tr> |
<tr> |
<td> 1 </td> |
<td> U1 </td> |
<td> FT232RL </td> |
<td> SSO28_210 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> U3 </td> |
<td> ATmega8535L-8AU </td> |
<td> TQFP44 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> U2_1 </td> |
<td> LE33CD </td> |
<td> SO8_150 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> U2_2 </td> |
<td> LT1117-3.3 </td> |
<td> SOT223 </td> |
</tr> |
<tr> |
<th colspan="4"> Krystaly </th> |
</tr> |
<tr> |
<td> 1 </td> |
<td> X1 </td> |
<td> 3.6864MHz </td> |
<td> XTAL050 </td> |
</tr> |
<tr> |
<th colspan="4"> Mechanické součástky </th> |
</tr> |
<tr> |
<td> 1 </td> |
<td> SW1 </td> |
<td> P-B1720A </td> |
<td> PUSH050x050 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> SW2 </td> |
<td> P-B143 </td> |
<td> P-B143 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> J1 </td> |
<td> USB_B_01 </td> |
<td> USB_B_01 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> J2 </td> |
<td> JUMP2 </td> |
<td> JUMP2 </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> J4 </td> |
<td> JUMP3 </td> |
<td> JUMP3 </td> |
</tr> |
<tr> |
<td> 2 </td> |
<td> J3, J5 </td> |
<td> JUMP2X3 </td> |
<td> JUMP2X3 </td> |
</tr> |
<tr> |
<th colspan="4"> Konstrukční součástky </th> |
</tr> |
<tr> |
<td> 2 </td> |
<td> </td> |
<td> Jumper propojka </td> |
<td> </td> |
</tr> |
<tr> |
<td> 4 </td> |
<td> </td> |
<td> Šroub M3x12 </td> |
<td> </td> |
</tr> |
<tr> |
<td> 4 </td> |
<td> </td> |
<td> Podložka M3 </td> |
<td> </td> |
</tr> |
<tr> |
<td> 4 </td> |
<td> Sloupek M3x5mm </td> |
<td> DI5M3X05 </td> |
<td> </td> |
</tr> |
<tr> |
<td> 2 </td> |
<td> Konektor 2x3 piny na kabel </td> |
<td> NDR-06 </td> |
<td> </td> |
</tr> |
<tr> |
<td> 12 </td> |
<td> Piny do konektoru </td> |
<td> NDR-T </td> |
<td> </td> |
</tr> |
<tr> |
<td> 1 </td> |
<td> Plošný spoj </td> |
<td> ATprogISPUSB02A </td> |
<td> </td> |
</tr> |
</table> |
|
<h2> Oživení </h2> |
|
<p> |
Pokud je deska dobře osazená, zbývá jen do procesoru nahrát firmware. |
Aby se zjednodušila konstrukce, byl vynechán pomocný procesor, který |
firmware nahrával do programátoru. Do tohoto pomocného procesoru se |
musel stejně nahrát další firmware, který pak už komunikoval |
s aplikaci AVR studio. Do našeho programátoru tedy nahrajeme jen |
patřičný HEX soubor s pojistkami pomocí externího programátoru. |
Nemáme tedy možnost automatického upgrade firmware. Pro upgrade je |
nutné zase použít externí programátor jako při prvotním programování |
firmwaru. |
</p> |
|
<p> |
Jednoduchý externí programátor (pro LPT port) je uveden v návodu |
v sekci „Modules/AVR“ na webu |
<a href="http://www.mlab.cz/">http://www.mlab.cz</a>. |
</p> |
|
<p> |
<img width="701" height="355" src="Pictures/image010.png" |
alt="Osazení zhora"> |
</p> |
|
<table> |
<tr> |
<th> J1 </th> |
<td> je USB konektor pro připojení k počítači PC </td> |
</tr> |
<tr> |
<th> J2 </th> |
<td> slouží pro volbu napájecího napětí programátoru a cílové aplikace </td> |
</tr> |
<tr> |
<th> J3 </th> |
<td> je konektor napájení programátoru (3.3V nebo 5V) </td> |
</tr> |
<tr> |
<th> J4 </th> |
<td> přepíná režim normální funkce nebo režim programování programátoru </td> |
</tr> |
<tr> |
<th> J5 </th> |
<td> je ISP programovací konektor </td> |
</tr> |
<tr> |
<th> SW1 </th> |
<td> je RESET pro cílovou aplikaci </td> |
</tr> |
<tr> |
<th> SW2 </th> |
<td> zapíná napájecí napětí pro cílovou aplikaci pokud nemá aplikace vlastní zdroj </td> |
</tr> |
</table> |
|
<h3> Nahrání procesoru v programátoru </h3> |
|
<p> |
Budeme potřebovat soubor <i>stk500.hex</i> s firmwarem. Ten |
naleznete v sekci HW tohoto projektu (na webu |
<a href="http://www.mlab.cz/">http://www.mlab.cz</a>). |
</p> |
|
<p> |
Dále budete potřebovat nějaký fungující programátor pro procesory |
ATMEL. Aby popis byl konkrétní, popíšeme použití jednoduchého |
programátoru <i>picoweb</i> spolu s aplikací <i>avrdude</i>. |
</p> |
|
<p> |
Do procesoru je třeba nahrát i správné hodnoty konfiguračních přepínačů |
<i>lfuse</i> a <i>hfuse</i>. |
</p> |
|
<p> |
Přepneme propojku J4 (ISP SELECTION) do polohy 1-2 a připojíme externí |
programátor k ISP konektoru J5. Pokud použitý externí programátor |
potřebuje ke své činnosti napájení z cílového zařízení, zapneme |
napájení přepínačem SW2 (TARGET POWER) přepnutím do polohy ON a zvolíme |
programovací napětí pomocí propojky J1 (SELECT) na 5V nebo 3,3V podle |
toho, co vyžaduje externí programátor. Obvyklá hodnota je 5V. Připojíme |
oživovaný programátor k USB portu počítače, tím se přivede |
napájení a druhým programátorem pak můžeme nahrát do procesoru firmware |
a konfigurační slova. |
</p> |
|
<p> |
Pro nahrání je připraven dávkový soubor <i>flash.bat</i>, který si |
budete muset přizpůsobit podle vaší konfigurace. Linuxoví uživatelé |
mají připravený shell script <i>flash.sh</i>, který si přizpůsobí |
podle svého. Dělá to samé. |
</p> |
|
<p> |
<samp>avrdude -p atmega8535 -P lpt1 -c picoweb -v -U lfuse:w:0xff:m -U |
hfuse:w:0xdb:m</samp> |
</p> |
|
<p> |
<samp>avrdude -p atmega8535 -P lpt1 -c picoweb -U flash:w:stk500.hex:a</samp> |
</p> |
|
<p> |
Po naprogramování se propojka J4 vrátí do pracovní polohy 2-3 (režim |
normal). |
</p> |
|
<h1> Programové vybavení </h1> |
|
<p> |
Pro uživatele Windows XP je nutné ještě nainstalovat ovladače USB |
převodníku FTDI. Aktuální drivery jsou na webu výrobce na adrese |
<a href="http://www.ftdichip.com/">http://www.ftdichip.com</a>. Hledáme |
drivery pro obvod FTDI232R pro Windows XP. Je jedno, zda zvolíme driver |
VCP nebo D2XX protože driver je ve skutečnosti jen jeden společný pro |
obě API. |
</p> |
|
<p> |
Programátor se v systému jeví jako nový COM port. Windows XP |
číslují použité COM porty pořád dál a po nějaké době začne přidělovat |
velká čísla (třeba COM11). AVR Studio umí použít jen port COM1 až COM9. |
V případě potřeby je možné systému vnutit pro dané zařízení |
libovolné číslo COM portu. Dělá se to ve správci zařízení |
v pokročilých volbách (je nutné být pro tuto chvíli |
administrátorem). |
</p> |
|
<h2> Použití programátoru v programu AVR Studio 4 </h2> |
|
<p> |
Po spuštění AVR studia vybereme na horní liště nástroje <samp>Tools / |
Program AVR / Auto Connect</samp>. A můžeme programovat. |
Pokud <samp>Auto Connect</samp> nic nenajde, zvolíme |
<samp>Tools / Program AVR / Connect</samp>… a vybereme |
<samp>Platform</samp>: „<i>STK500 or AVRISP</i>“ a případně nastavíme |
ve volbě <samp>Port</samp>: správný COM port, na kterém je náš |
programátor. |
</p> |
|
<p> |
Který COM port byl přiřazen USB programátoru můžeme poznat pomocí |
programu <samp>Příslušenství / Komunikace / Hyper Terminal</samp>, |
který zobrazuje přítomné COM porty i pro USB zařízení. Také je to vidět |
ve správci zařízení v sekci sériových portů. |
</p> |
|
<h2> Použití s programem AVRDUDE a AVRDUDEGUI </h2> |
|
<p> |
Při použití AVRDUDE zadáváme v příkazové řádce parametry |
programátoru a portu dle příkladu: |
</p> |
|
<p> |
<samp>avrdude –p xxx –c stk500v2 –P comx – U flash:w:muj.hex:a</samp> |
</p> |
|
<p> |
-p xxx … určuje typ cílového procesoru |
<br> |
-c xxx … určuje druh programátoru, tento programátor je kompatibilní |
s stk500v2 |
<br> |
-P comx … určuje komunikační com port, kde je náš programátor |
<br> |
muj.hex … soubor, který se programuje |
</p> |
|
<p> |
Ostatní parametry viz příkaz <samp>avrdude –?</samp>, který vypíše |
nápovědu. Při použití nadstavby AVRDUDEGUI opět volíme programátor typu |
stk500v2 a vybíráme správný COM port. |
</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> |