<!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&nbsp;šestipinovým ISP rozhraním.
        Programátor je kompatibilní s&nbsp;„AVR studio 4“ (programátor&nbsp;
        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&nbsp;USB nebo 3.3V
        z&nbsp;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">&nbsp;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&nbsp;USB rozhraní </td>
        </tr>
        <tr>
          <td> Napájení cílového zařízení </td>
          <td> 5V z&nbsp;USB<br>
               3.3V z&nbsp;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&nbsp; sériového a paralelního rozhraní na dnešních PC.
        Konstrukce vychází z&nbsp;dostupných inforamcí na internetových
        stránkách, zejména z&nbsp;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&nbsp;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.&nbsp; Č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&nbsp;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
        &nbsp;select)&nbsp; se použije jen při prvním nahrání HEX souboru a
        pojistek do programátoru &nbsp;(poloha 1-2 ISPmega8538). V&nbsp;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á&nbsp;
        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&nbsp;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&nbsp;provrtanými díramy 3,2mm&nbsp; v&nbsp;ose x a y&nbsp;po 400
        milsů) . V&nbsp;rozích jsou šroubky a sloupky s&nbsp;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&nbsp;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&nbsp;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> &nbsp; </td>
          <td> &nbsp; </td>
        </tr>
        <tr>
          <td> 4 </td>
          <td> Sloupek M3x5mm </td>
          <td> &nbsp; </td>
          <td> &nbsp; </td>
        </tr>
        <tr>
          <td> 4 </td>
          <td> Šroub M3x12 křížový s&nbsp;válcovou hlavou </td>
          <td> &nbsp; </td>
          <td> &nbsp; </td>
        </tr>
        <tr>
          <td> 4 </td>
          <td> Podložka M3 </td>
          <td> &nbsp; </td>
          <td> &nbsp; </td>
        </tr>
        <tr>
          <td> 2 </td>
          <td> Konektor 6 pinů NDR-06 s piny </td>
          <td> &nbsp; </td>
          <td> &nbsp; </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&nbsp;aplikaci AVR studio. Do našeho programátoru tedy nahrajeme jen
        patřičný HEX soubor s&nbsp;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%&nbsp; -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>