<!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> ATprogISPUSB01A </title>
<meta name="keywords" content="stavebnice MLAB ISP USB programátor ATMELL AVR">
<meta name="description" content="Projekt MLAB, ISP USB programátor procesorů 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
</p>
<p class="Subtitle">
Modul USB programátoru procesorů AVR s šestipinovým ISP rozhraním.
Programátor je kompatibilní s „AVR studio 4“ (programátor
STK500 nebo AVRISP) a s „avrdude“ (programátor STK500v2). 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 z USB nebo 3.3V
z vnitřního stablizátoru.
</p>
<p class="Subtitle">
<img width="624" height="319" src="Pictures/image001.jpg"
alt="Obrázek programátoru">
</p>
<p>
<a href="../ATprogISPUSB01A.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 zdrojem<br>
Maximálně cca 90mA </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>
<h1> Popis konstrukce </h1>
<h2> Úvodem </h2>
<p>
Modul byl navrhnut pro programování AVR procesorů přes USB rozhraní,
pro nedostupnost sériového a paralelního rozhraní na dnešních PC.
Konstrukce vychází z dostupných inforamcí na internetových
stránkách, zejména z EVERTOOL – combinet AVR programmer and
debugger. Pro složitost nahrání firmware do modulu, byl vytvořen soubor
stk500.hex, který se externím programátorem nahraje do modulu. Pokud
jsou dobře nastaveny konfigurační pojistky je programátor připraven k
programování.
</p>
<h2> Zapojení modulu </h2>
<p>
Základní procesor U1 ATmega8535 zajišťuje veškerou programovací
činnost. S PC komunikuje prostřednitvím sériového rozhraní. O
seriového rozhraní se stará IO U2, známý převodník USB-rs232
FT323RL. Často se vyskytuje situace, programovat při nižším
napětí, než 5V. Proto byl programátor osazen i stabilizátorm 3,3V
LE33DE U3. Na rozhraní ISP byly přidány ochranné rezistory
s hodnotou 100 ohmů a dále možnost vypnout napájení cílového
zařízení přes přepínač SW2 (VTG enable). Jumper J7 (ISP
select) se použije jen při prvním nahrání HEX souboru a
pojistek do programátoru (poloha 1-2 ISPmega8538). V poloze
2-3 normal AVRISP je modul připraven programovat. Zapojení obsahuje
tlačítko reset, kterým se resetuje cílový procesor. (Neresetuje se
programátor!!!) a je nutné toto tlačítko osadit na desce. Zelená
LED dioda D2 značí připravenost programátoru, červená LED dioda D1
oznamuje právě probíhající programování.
</p>
<p>
<img width="1070" height="620" src="Pictures/image002.png"
alt="Zapojení procesorové části">
</p>
<p>
Srdce programátoru – ATmega8535.
</p>
<p>
<img width="978" height="531" src="Pictures/image003.png"
alt="Zapojení USB rozhraní">
</p>
<p>
USB interface s převodníkem USB-rs232 FT232RL. Standardní
katalogové zapojení doplněno o stabilizátor U3 LE33D. Stabilizátor
vytváří napětí 3,3V. Jumprem J3 se volí programovací napětí.
</p>
<h2> Mechanická konstrukce </h2>
<p>
Modul je navrhnut pro připevnění na standardní nosou desku (deska
s provrtanými díramy 3,2mm v ose x a y po 400
milsů) . V rozích jsou šroubky a sloupky s rozpětím 5x2cm
(2000x800mils).
</p>
<h1> Osazení a oživení </h1>
<h2> Osazení </h2>
<p>
Modul je navrhnut na jednostranné desce a obsahuje dvě propojky. Jedna
propojka je realizována prostřednistvím tlačítka reset.Tudíž se
neosazuje, ale samo tlačítko tuto propojku realizuje.Tlačítko reset je
nutné osadit. Druhá propojka se nachází u konektoru J7 (sel ISP).
</p>
<p>
Deska z pohledu strany součástek
</p>
<p>
<img width="701" height="356" src="Pictures/image004.png"
alt="Osazení desky ze strany součástek">
</p>
<p>
Deska z pohledu strany spojů
</p>
<p>
<img width="700" height="352" src="Pictures/image005.png"
alt="Osazení desky ze strany spojů">
</p>
<p>
Seznam použitých součástek
</p>
<table class="Soupiska">
<tr>
<th> Počet </th>
<th> Reference </th>
<th> Hodnota </th>
<th> Pouzdro </th>
</tr>
<tr>
<th colspan="4"> Odpory SMD </th>
</tr>
<tr>
<td> 8 </td>
<td> R1, R6, R7, R8, R9, R10, R11, R14 </td>
<td> 10k </td>
<td> R0805 </td>
</tr>
<tr>
<td> 1 </td>
<td> R2 </td>
<td> 68k </td>
<td> R0805 </td>
</tr>
<tr>
<td> 1 </td>
<td> R3 </td>
<td> 33k </td>
<td> R0805 </td>
</tr>
<tr>
<td> 2 </td>
<td> R4, R5 </td>
<td> 1k5 </td>
<td> R0805 </td>
</tr>
<tr>
<td> 1 </td>
<td> R13 </td>
<td> 4k7 </td>
<td> R0805 </td>
</tr>
<tr>
<td> 4 </td>
<td> R12, R15, R16, R17 </td>
<td> 100 </td>
<td> R0805 </td>
</tr>
<tr>
<th colspan="4"> Keramické kondenzátory SMD </th>
</tr>
<tr>
<td> 10 </td>
<td> C1, C4, C5, C6, C7, C8, C12, C13, C14, C15 </td>
<td> 100n </td>
<td> C0805 </td>
</tr>
<tr>
<td> 2 </td>
<td> C2, C3 </td>
<td> 22p </td>
<td> C0805 </td>
</tr>
<tr>
<td> 1 </td>
<td> C10 </td>
<td> 10n </td>
<td> C0805 </td>
</tr>
<tr>
<td> 1 </td>
<td> C16 </td>
<td> 2.2uF lze i elektrolyt </td>
<td> C0805 </td>
</tr>
<tr>
<th colspan="4"> Elektrolytické kondenzátory SMD </th>
</tr>
<tr>
<td> 2 </td>
<td> C9, C11 </td>
<td> 4.7uF/6.3V </td>
<td> ELYTB </td>
</tr>
<tr>
<th colspan="4"> Indukčnosti SMD </th>
</tr>
<tr>
<td> 1 </td>
<td> L1 </td>
<td> ferrite_bead </td>
<td> R0805 </td>
</tr>
<tr>
<th colspan="4"> Diody </th>
</tr>
<tr>
<td> 1 </td>
<td> D1 </td>
<td> red </td>
<td> LED3 </td>
</tr>
<tr>
<td> 1 </td>
<td> D2 </td>
<td> green </td>
<td> LED3 </td>
</tr>
<tr>
<td> 1 </td>
<td> D3 </td>
<td> 1N4007SMD </td>
<td> MELF </td>
</tr>
<tr>
<th colspan="4"> Integrované obvody </th>
</tr>
<tr>
<td> 1 </td>
<td> U1 </td>
<td> ATmega8535_TQ44 </td>
<td> TQFP44 </td>
</tr>
<tr>
<td> 1 </td>
<td> U2 </td>
<td> FT232RL </td>
<td> SSO28_210 </td>
</tr>
<tr>
<td> 1 </td>
<td> U3 </td>
<td> LE33D </td>
<td> SO8_150 </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"> Pojistky SMD </th>
</tr>
<tr>
<td> 1 </td>
<td> FUSE </td>
<td> 0.5A </td>
<td> R1206 </td>
</tr>
<tr>
<th colspan="4">
<span class='c1'>Mechanické součástky</span>
</th>
</tr>
<tr>
<td> 1 </td>
<td> J1 </td>
<td> JUMP2X3 </td>
<td> JUMP2X3 </td>
</tr>
<tr>
<td> 1 </td>
<td> J2 </td>
<td> JUMP2x3 </td>
<td> JUMP2x3/B </td>
</tr>
<tr>
<td> 1 </td>
<td> J3 </td>
<td> JUMP2 </td>
<td> JUMP2 </td>
</tr>
<tr>
<td> 1 </td>
<td> J4 </td>
<td> USB_B_01 </td>
<td> USB_B_01 </td>
</tr>
<tr>
<td> 1 </td>
<td> J7 </td>
<td> JUMP3 </td>
<td> JUMP3 </td>
</tr>
<tr>
<td> 1 </td>
<td> SW1 </td>
<td> TARGET_RESET </td>
<td> PUSH050x050 </td>
</tr>
<tr>
<td> 1 </td>
<td> SW2 </td>
<td> SW_P-B143 </td>
<td> P-B143 </td>
</tr>
<tr>
<th colspan="4"> Konstrukční součástky </th>
</tr>
<tr>
<td> 2 </td>
<td> Jumper propojka </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> 4 </td>
<td> Sloupek M3x5mm </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> 4 </td>
<td> Šroub M3x12 křížový s válcovou hlavou </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> 4 </td>
<td> Podložka M3 </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> 2 </td>
<td> Konektor 6 pinů NDR-06 s piny </td>
<td> </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. Nicméně do pomocného procesoru se
muselo stejně nahrát další firmaware, 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 a
už se o nic nestaráme. Jen nemáme možnost automatické upgrade firmware.
Pro upgrade je nutné zase použít externí programátor.
</p>
<p>
Postup nahrání pojistek a firmware pro avrdude je následující:
</p>
<p>
Přepneme JUMPER J7 (sel ISP) do polohy 1-2 ISPmega8535 a připojíme
externí programátor do konektoru ISP(6pin). Pokud externí programátor
potřebuje ke své činnosti napájení ze cílového zařízení, přepneme
přepínač SW2 (VTG) do polohy on. Zvolíme programovací napětí pomocí
JUMPERU J3 (sel POWER) na 5V nebo 3,3V, dle externího programátoru.
Připojíme náš programátor na USB, tím se přivede napájení, a můžeme
nahrát pojistky a soubor stk500.hex.
</p>
<p>
Pro pojistky:
</p>
<p>
<samp>avrdude -p atmega8535 -P %PORT% -c %PRG% -U lfuse:w:<b>0xff</b>:m -U hfuse:w:<b>0xdb</b>:m</samp>
</p>
<p>
Pro soubor stk500.hex
</p>
<p>
<samp>avrdude -p atmega8535 -P %PORT% -c %PRG% -U flash:w:<b>stk500.hex</b>:a</samp>
</p>
<p>
kde PRG je typ externího programátoru a PORT je sériový nebo paralelní
port externího programátoru.
</p>
<p>
Po naprogramování se JUMPER J7 (sel ISP) vrátí do polohy 2-3 ISP
normal.
</p>
<h1> Programové vybavení </h1>
<p>
Pro uživatele WINDOWS XP je nutné ještě nainstalovat ovladače USB
převodníku FTDI.
</p>
<h2> AVR Studio 4 </h2>
<p>
Po spuštění aplikace vybereme na horní liště nástroje Tools – Program
AVR – Auto connect. A můžeme už programovat. Pokud auto connect nic
nenajde, zvolíme Tools – Program AVR –connect… a vybereme Platform:
STK500 or AVRISP Port: COM kde se náš programátor nachází.
</p>
<h2> AVRDUDE </h2>
<p>
Zde stačí do příkazové řádky zadat tyto patametry
</p>
<p>
<samp>avrdude –p xxx <b>–c stk500v2 –P comx</b> – U flash:w:muj.hex:a</samp>
</p>
<p>
xxx … typ cílového procesoru
<br>
comx … com port kde je náš programátor
</p>
<p>
ostatní parametry viz příkaz avrdude –?, zde získáme nápovědu.
</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>