<!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> USB232R01A </title>
    <meta name="keywords" content="USB FTDI RS232 převodník">
    <meta name="description" content="USB převodník pro RS232">
    <!-- 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">
        Převodník USB na RS232
      </p>
      <p class=Autor>
        Milan&nbsp;Horkel
      </p>
      <p class="Subtitle">
        Modul slouží jako univerzální převodník z&nbsp;USB na RS232 s&nbsp;výstupy
        na straně RS232 v&nbsp;úrovních TTL. Převodník používá obvod FT232R od
        firmy FTDI. Tyto obvody jsou podporované ve všech rozšířených operačních
        systémech.
      </p>
      <p  class="Subtitle">
        <img width="328" height="204" src="USB232R01A.cs_files/image001.jpg"
          alt="Obrázek modulu USB232R01A">
      </p>
      <p>
        <a href="../USB232R01A.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 2.0 </td>
          <td> <span lang="EN-US">High Speed</span> </td>
        </tr>
        <tr>
          <td> Konektor </td>
          <td> USB B </td>
          <td> Standardní velký USB konektor </td>
        </tr>
        <tr>
          <td> Spotřeba </td>
          <td> 15mA&nbsp;/&nbsp;5V </td>
          <td> Bez připojeného dalšího zařízení </td>
        </tr>
        <tr>
          <td> Signály </td>
          <td> RXD TXD RTS# CTS# DTR# DSR# DCD# RI# </td>
          <td> Signály obvyklé na 9pin konektoru, signály pro řízení přenosu
               s&nbsp;volitelnou polaritou, TTL </td>
        </tr>
        <tr>
          <td> Řízení toku </td>
          <td> Nastavitelné </td>
          <td> Možno nastavit HW i SW řízení toku dat </td>
        </tr>
        <tr>
          <td> Režim spánku </td>
          <td> Ano </td>
          <td> Spínač napájení pro externí použití </td>
        </tr>
        <tr>
          <td> Vzbuzení PC </td>
          <td> Ano </td>
          <td> Pomocí signálu RI# </td>
        </tr>
        <tr>
          <td> Rozměry </td>
          <td> 51x31x18mm </td>
          <td> Výška nad základnou </td>
        </tr>
      </table>

      <h1> Popis konstrukce </h1>

      <h2> Úvodem </h2>

      <p>
        Sériový port RS232 se pomalu stává nedostupnou relikvií minulých časů a
        je třeba začít používat novější rozhraní. Na druhé straně jednočipové
        mikropočítače jsou velmi dobře přizpůsobeny pro sériovou komunikaci a
        tak se přirozeným řešením stává převodník USB na sériový kanál.
      </p>

      <p>
        Pro modul jsme vybrali běžně dostupný obvod FT232RL firmy FTDI. Obvody
        jsou i v&nbsp;kusovém množství dostupné u firmy ASIX v&nbsp;Praze za
        velmi rozumnou cenu. Bližší informace na
        <a href="http://www.asix.cz/">http://www.asix.cz</a>
        a technické informace a drivery na stránce výrobce
        <a href="http://www.ftdichip.com/">http://www.ftdichip.com</a>.
      </p>

      <h2> Obvod FT232R </h2>

      <p>
        Hlavní vlastnosti obvodu lze shrnout v&nbsp;těchto bodech:
      </p>

      <ul>
        <li> USB 2.0 s&nbsp;přenosem 300Bd až 3MBd s&nbsp;běžnými nastaveními (7
             nebo 8 bitů, parita, …) </li>
        <li> FIFO pro příjem i vysílání </li>
        <li> Podpora řízení přenosu HW i SW </li>
        <li> Podpora ve všech běžných OS drivery od výrobce </li>
        <li> Programovatelné polarity signálů, pomocné signály </li>
        <li> Podpora úsporných režimů a vzbouzení PC </li>
        <li> Nízká cena </li>
      </ul>

      <p>
        Tento nový obvod od firmy FTDI má některé výhody oproti předchozím
        verzím:
      </p>

      <ul>
        <li> Potřebuje méně externích součástek, nepotřebuje krystal </li>
        <li> Konfigurační paměť EEPROM je integrovaná uvnitř obvodu </li>
      </ul>

      <h2> Zapojení modulu </h2>

      <p>
        Zapojení vychází z&nbsp;katalogu součástky a příslušných aplikačních
        poznámek.
      </p>

      <p>
        Obvod FT232R má vestavěný vnitřní stabilizátor 3.3V pro signály USB.
        Toto napětí je vyvedeno na konektor J6 a lze je zatížit až 50mA.
      </p>

      <p>
        Konektor J5 slouží pro nastavení napětí vstupních a výstupních signálů.
        Je možno použít rozkmit signálů 5V nebo 3.3V. Jiné úrovně jsou možné
        (až do 1.8V) ale je třeba dodat příslušné napětí na pin J5.2.
      </p>

      <p>
        Tranzistor Q1 spíná napětí USB VCC na konektor J4. Toto napětí se
        automaticky vypne, když počítač přejde do režimu spánku. Aktivací
        signálu RI# je možno počítač probudit pokud to není v&nbsp;konfiguraci
        zakázané.
      </p>

      <p>
        LED diody indikují RX a TX aktivitu. Funkci je možno změnit modifikací
        obsahu EEPROM.
      </p>

      <p>
        <img width="864" height="463" src="USB232R01A.cs_files/image002.gif"
          alt="Schema">
      </p>

      <table class="Soupiska">
        <tr>
          <th> Reference </th>
          <th> Hodnota </th>
        </tr>
        <tr>
          <th colspan="2"> Odpory </th>
        </tr>
        <tr>
          <td> R4, R5 </td>
          <td> 270R </td>
        </tr>
        <tr>
          <td> R3 </td>
          <td> 1k </td>
        </tr>
        <tr>
          <td> R1 </td>
          <td> 4k7 </td>
        </tr>
        <tr>
          <td> R2 </td>
          <td> 10k </td>
        </tr>
        <tr>
          <th colspan="2"> Keramické kondenzátory </th>
        </tr>
        <tr>
          <td> C1 </td>
          <td> 10nF </td>
        </tr>
        <tr>
          <td> C3, C4, C5, C6, C7 </td>
          <td> 100nF </td>
        </tr>
        <tr>
          <th colspan="2"> Elektrolytické kondenzátory </th>
        </tr>
        <tr>
          <td> C2 </td>
          <td> 4u7/6.3V </td>
        </tr>
        <tr>
          <th colspan="2"> Indukčnosti </th>
        </tr>
        <tr>
          <td> L1 </td>
          <td> MI0805K400R-10 </td>
        </tr>
        <tr>
          <th colspan="2"> Diody </th>
        </tr>
        <tr>
          <td> D1 </td>
          <td> 1N4007SMD </td>
        </tr>
        <tr>
          <td> D2, D3 </td>
          <td> LED3mm_RED </td>
        </tr>
        <tr>
          <th colspan="2"> Tranzistory </th>
        </tr>
        <tr>
          <td> Q1 </td>
          <td> IRF7416SMD </td>
        </tr>
        <tr>
          <th colspan="2"> Integrované obvody </th>
        </tr>
        <tr>
          <td> U1 </td>
          <td> FT232RL </td>
        </tr>
        <tr>
          <th colspan="2"> Mechanické součástky </th>
        </tr>
        <tr>
          <td> J1 </td>
          <td> USB_B_01 </td>
        </tr>
        <tr>
          <td> J2 </td>
          <td> JUMP2X8 </td>
        </tr>
        <tr>
          <td> J3, J4 </td>
          <td> JUMP2X3 </td>
        </tr>
        <tr>
          <td> J5, J6, J8 </td>
          <td> JUMP3 </td>
        </tr>
        <tr>
          <td> J9 </td>
          <td> JUMP2 </td>
        </tr>
        <tr>
          <th colspan="2"> Konstrukční součásti </th>
        </tr>
        <tr>
          <td> 4ks </td>
          <td> Šroub M3x12 </td>
        </tr>
        <tr>
          <td> 4ks </td>
          <td> Podložka M3 </td>
        </tr>
        <tr>
          <td> 4ks </td>
          <td> Sloupek M3x5 </td>
        </tr>
        <tr>
          <td> 1ks </td>
          <td> Jumper </td>
        </tr>
        <tr>
          <td> 1ks </td>
          <td> PCB USB232R0A </td>
        </tr>
      </table>

      <h2> Mechanická konstrukce </h2>

      <p>
        Převodník je vyroben v&nbsp;podobě standardního modulu stavebnice MLAB.
        V&nbsp;rozích je opatřen upevňovacími šrouby se sloupky.
      </p>

      <p>
        <img width="300" height="188" src="USB232R01A.cs_files/image003.jpg"
          alt="Pohled zhora">
        <img width="300" height="188" src="USB232R01A.cs_files/image004.jpg"
          alt="Pohled ze strany spojů">
      </p>

      <h1> Osazení a oživení </h1>

      <h2> Osazení </h2>

      <p>
        Nejprve osazujeme SMD součástky. Začneme obvodem U1 aby nám nepřekážely
        ostatní součástky. Je třeba použít pastového tavidla a minimum pájky.
        Mikropáječka je téměř nezbytností.
      </p>

      <p>
        Na straně součástí nezapomeňte osadit 4 drátové propojky. Nejvhodnější
        je tenký lakovaný samopájitelný drátek. Polarita LED diod je označena
        (A jako anoda).
      </p>

      <p>
        <img width="320" height="195" src="USB232R01A.cs_files/image005.jpg"
          alt="Osazení ze strany spojů">
        <img width="322" height="195" src="USB232R01A.cs_files/image006.jpg"
          alt="Osazení ze strany součástí">
      </p>

      <h2> Oživení </h2>

      <p>
        V&nbsp;zásadě není co oživovat. Před prvním zapnutím je vhodné
        zkontrolovat, zda zařízení nemá zkrat v&nbsp;napájení (konektor J3,
        napětí 5V).
      </p>

      <h2> Konfigurace </h2>

      <p>
        Konfigurace se zapisuje do interní paměti EEPROM a je nepovinná. Viz
        kapitola o driverech.
      </p>

      <h1> Programové vybavení – drivery </h1>

      <p>
        Drivery, programy a originální dokumentace na stránkách výrobce čipu
        <a href="http://www.ftdichip.com/">http://www.ftdichip.com</a>.
        Aplikační poznámky si zaslouží alespoň zběžné prostudování.
      </p>

      <h2> Instalace driverů WinXP </h2>

      <p>
        Při prvním připojení převodníku k&nbsp;USB portu si systém vyžádá
        adresář s&nbsp;drivery. Základní chování je takové, že se pro převodník
        spustí drivery pro obsluhu zařízení se dvěma aplikačními rozhraními.
      </p>

      <h3> Rozhraní <code>Virtual COM Port</code> </h3>

      <p>
        Toto rozhraní umožňuje aplikacím přes <code>Win32 COM API</code>
        komunikovat s&nbsp;převodníkem jako se standardním sériovým portem.
        Zpřístupnění tohoto rozhraní je možné zakázat v&nbsp;konfiguraci
        součástky (v paměti EEPROM) nebo v&nbsp;konfiguraci driveru (v
        příslušném INI souboru).
      </p>

      <p>
        Pro komunikaci je možno použít libovolný terminálový program a vybrat si
        nově vzniklý COM port. Na rozdíl od obyčejného COM portu dojde
        k&nbsp;přerušení spojení mezi programem (terminálem) a USB COM portem
        kdykoli odpojíme a připojíme USB zařízení. Spojení je pak nutné znovu
        navázat (u terminálu typicky „zavěsit“ a znovu se spojit).
      </p>

      <h3> Rozhraní <code>D2XX API</code> </h3>

      <p>
        Toto rozhraní je proprietární rozhraní firmy FTDI a slouží pro
        komunikaci s&nbsp;obvody FTDI včetně ovládání jejich speciálních funkcí
        (například programování paměti EEPROM).
      </p>

      <h3> Architektura driverů </h3>

      <p>
        Nová generace driverů pro obvody FTDI používá koncepci kombinovaného
        driveru (na rozdíl od dřívějších verzí) a stačí tak jediná sada driverů,
        která dává k&nbsp;dispozici jak rozhraní pro virtuální COM port tak i
        proprietární rozhraní FTDI. U nových obvodů (FT232R, FT2232 a podobně)
        je konfigurace nastavená v&nbsp;paměti EEPROM součástky.
      </p>

      <p>
        <img width="335" height="238" src="USB232R01A.cs_files/image007.gif"
          alt="Architektura driverů">
      </p>

      <p>
        Obrázek ukazuje stav, kdy jsou k&nbsp;dispozici obě rozhraní (výchozí
        konfigurace). Nelze <i>současně</i> využívat obě výše uvedená rozhraní.
      </p>

      <h2> Konfigurace součástky </h2>

      <p>
        Výchozí konfigurace součástky je celkem rozumná a obvykle není třeba
        konfiguraci měnit. K&nbsp;nastavování konfigurace součástky slouží
        program Mprog.exe a je ke stažení na webu výrobce. Po spuštění vypadá
        takhle:
      </p>

      <p>
        <img width="642" height="535" src="USB232R01A.cs_files/image008.jpg"
          alt="Program Mprog.exe">
      </p>

      <p>
        Program umožňuje zapsat do konfigurační EEPROM až po uložení vytvořené
        konfigurace do souboru. Možnosti nastavení jsou patrné a v&nbsp;helpu
        programu stručně popsané.
      </p>

      <p>
        Pokud si naprogramujete vlastní USB VID/PID identifikátory bude třeba
        upravit i příslušné položky v&nbsp;INF souboru driverů.
      </p>

      <h2> Základy USB </h2>

      <p>
        Podrobnosti na <a href="http://www.usb.org/">http://www.usb.org</a>.
        Zde je k&nbsp;dispozici specifikace USB.
      </p>

      <h3> Úplné základy </h3>

      <p>
        Rychlost na USB se často plete:
      </p>

      <ul>
        <li> Full Speed – 480Mbit/s – pouze USB 2.0, používají například USB
             disky, nutné lepší kabely </li>
        <li> High Speed – 12MBit/s – běžná zařízení (<i>i náš převodník</i>) </li>
        <li> Low Speed – 1.5Mbit/s – zařízení typu HID (klávesnice, myši) </li>
      </ul>

      <p>
        Napájení:
      </p>

      <ul>
        <li> Napájecí napětí 5V, k&nbsp;dispozici zaručeně minimálně 100mA,
             maximálně 500mA pokud to zdroj v&nbsp;počítači nebo HUBu umožňuje </li>
        <li> Zařízení po zastrčení do USB nesmí mít spotřebu větší než 100mA </li>
        <li> Signály jsou 3.3V, diferenciální pár </li>
        <li> Teoreticky má být napájení jištěno <i>ale u některých zařízení to
             neplatí</i> </li>
      </ul>

      <p>
        Přenos dat:
      </p>

      <ul>
        <li> Isochronní – zabraná šířka pásma – například pro přenos zvuku </li>
        <li> Interrupt přenosy – pro interaktivní přenosy – například klávesnice,
             signalizace a podobně </li>
        <li> Bulk přenosy – přenosy velkého množství dat – disky a podobně
             (<i>i náš převodník</i>) </li>
        <li> Řídící přenosy – pro řízení USB zařízení </li>
      </ul>

      <p>
        Komunikace po USB probíhá v&nbsp;rámcích, které se přenášejí vždy po 1
        milisekundě (u zařízení Low Speed nebo High Speed). Do každého rámce se
        snaží obslužné programy (drivery USB) nacpat co nejvíce přenosů.
        Přednost mají isochronní přenosy (například pro reproduktory), pak data
        související s&nbsp;interaktivním přenosem (očuchávání klávesnice, přenos
        přerušení) a teprve zbytek kapacity je vyplněn hromadnými přenosy.
        Převodník využívá hromadné přenosy.
      </p>

      <p>
        V&nbsp;žádném případě nelze spoléhat na časování přenosů. Data se
        přenášejí po paketech a jsou na&nbsp;straně driverů i v&nbsp;obvodu
        FT232R vyrovnávací paměti pro odesílaná a pro přijímaná data. Jediná
        správná cesta bezchybného přenosu spočívá ve využití řízení přenosu buď
        HW signály nebo znaky XON/XOFF.
      </p>

      <h3> Přenos dat u obvodu FT232R </h3>

      <p>
        Data se přenášejí po paketech o délce až 64B. 2 bajty se použijí pro
        přenos stavu řídících signálů a zbytek jsou sériová data. Přenos dat
        probíhá pouze pokud se zaplní vyrovnávací paměť o délce 64B nebo pokud
        od&nbsp;posledního přenosu uběhla dostatečně dlouhá doba (vyprší Latency
        Timer s přednastavenou dobou 16ms).
      </p>

      <p>
        Pokud se změní stav některého z&nbsp;řídících signálů dojde k&nbsp;přenosu
        v&nbsp;nejbližším milisekundovém rámci. Totéž platí i pro případ přenosu
        některého znaku pro řízení přenosu (obvykle znaky XON a XOFF).
      </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>