Számítógép USB port - soros illesztés (és minden ami a buktatókkal együtt jár)

RS-232Az informatika hőskorában számos eszköz soros porton kapcsolódott össze. Ezt hívták a protokoll alapján RS-232 csatlakozásnak. Előnye volt az egyszerű megvalósíthatóság, a rugalmasság, az egyértelmű pont-pont kapcsolódás, valamint a többféle kapcsolatellenőrzési mód (2, 4 vagy 6 vezetékes mód, a különféle kézfogásos eljárások).... Bővebben: → Wikipedia: Sorosport.

Napjainkra a számítógépek fejlődtek és a soros/RS-232 felületet kiváltotta az USB port, az ipari megvalósítások esetén is a soros kommunikáció kezd a háttérbe szorulni. Azonban az egyszerűsége, könnyű kezelhetősége miatt várhatóan még jópár évtizedig velünk marad valamilyen formában. A mikrokontroller világban a soros kommunikáció a maga fizikai valójában megmaradt, a programozási oldalon a soros eljárások a számítógép-kontroller kapcsolat egyik alappillére maradt.

USBSzámos eszköz, melyet USB portra illesztünk, valójában egy USB-soros átalakítóchippel működik. Egy ideális világban ezek telepítése nagyon egyszerű lenne: Csak rádugjuk a gépre, és működik. Viszont nem ideális világban élünk.... Így marad a szitkozódás, fórumok kutakodása, gyártói oldalak felkeresése. De ezek sem minden esetben egyszerűek. Ez az oldal próbálja összegyűjteni a lehetőségeket, a gyakoribb illesztők telepítési ismertetéseit illetve ismérveit, előfordulási helyeit.

Azonosítás

Az USB eszközeink azonosítására több lehetőségünk van:
  • Ha leolvasható, megtalálható az illesztőchip, akkor az már támpontot ad.
  • Ha dobozolt termék, vagy lecsiszolt chip, esetleg nem követhető az USB illesztés, akkor a számítógép felé az eszköz önazonosítása adhat támpontot.
De nézzük az egyszerűbbet, a fizikai megjelenését...

Chipazonosítás - szemre

Az USB csatlakozó környékén körbenézve az alábbi chipeket láthatjuk:

Kép Chip azonosító USB eszköznév VID/PID Megjegyzés / Előfordulás Driver

FT232RL

FT232R USB UART

0403 / 6001

Arduino Nano, Diecimila,  USB-soros átjáró

FTDI driver

CP2102

CP2102 USB to UART Bridge Controller

10C4 / EA61 NodeMCU, USB-soros átjáró Silicon Labs driver

CH340G

USB2.0-Serial

1A86 / 7523 Arduino UNO, Arduino MEGA, Soros-USB átjáró WCH driver
PL2303HX USB-Serial Controller C 067B / 2303 Ritka Arduino UNO, soros-USB átjáró Prolific driver
ATMEGA16U2 Firmware függő 2341 / 0243

03EB / 2FFA (DFU)
Arduino UNO, Arduino MEGA Arduino USB driver (keretrendszer tartalmazza)
ATMEGA32U4 Firmware függő 2341 / 8036
2A03 / 0036 (DFU)
Leonardo lapka, Pro Micro, Esplora Arduino USB driver (keretrendszer tartalmazza)
ATSAM3x8E Firmware függő
2A03 / 003E

03EB / 6124 (DFU)
Arduino DUE Arduino USB driver (keretrendszer tartalmazza)
 
Ha nem található egyértelműen meg az illesztőchip, akkor az USB szoftverprotokoll szerinti eszközazonosítás következik...

Chipazonosítás - szoftverkövetelményként

Az USB eszközök működését egy elég komplex protokoll vezérli. Az USB eszközök számítógépre csatlakoztatásakor a kommunikációs sebesség egyeztetése után többek közt az alábbi adatok kerünek átküldésre:
  • Eszköz azonosító VID (gyártóazonosító) és PID (termékazonosító) kódszámok,
  • Sorozatszám,
  • Eszköz áramfelvételi igénye, energiatakarékossági jellemzői,
  • Eszköz szöveges neve és gyártója,
  • stb.
Ebből számunkra a VID és a PID azonosító a fontos. Ezt megismerni Windows alatt több lehetőségünk van. Két gyakori megoldás....

Eszközkezelő

A legegyszerűbb megoldás az eszközkezelőben azonosítani az eszközt. Ehhez egyszerűen nyissuk meg a PC-re csatlakoztatáskor a megjelenő eszköz tulajdonságlapját:
Eszközkezelő a sorosport megjelenítéssel
 
Itt a jellemzők fülön nézzük meg az eszközazonosítót:
Tulajdonságok -> Részletek
 
A VID/PID páros már egyértelműen azonosítja az eszközt. Az előző táblázatban már feltűntetésre került a jellemző a VID/PID azonosító, így a meghajtóprogram megkeresése is könnyebb (USB illesztők)
Tipp: az eszköznév az sok esetben megváltoztatható, így az nem minden esetben releváns információ.

USBview. USBdeview

Az eszközök a csatlakoztatáskor az azonosítóját átadja a rendszernek - ezt azonban botorkálva, keresgélve nehézkes megtalálni az eszközkezelőben - hiszen lehet akár ismeretlen eszközök közt, az USB illesztő vagy akár soros eszközök közt megbújva is. Könnyebb kezelhetőséget biztosít az USBview szoftver.
Ez megmutatja az eszközök kapcsolódási fáját, az eszközök által a PC felé átadott információkat.
USBView nézet
Érdemes a könnyebb, áttekinthetőbb használathoz a teljes nézetet, illetve az automatikus nézetfrissítést is bekapcsolni.
Az USBdeview program megmutatja, hogy mely eszközökhöz milyen meghajtóprogram van telepítve. Itt a hibásan betöltött, sérült alkalmazás egyszerűen akár törölhető is.
Egyszerűen jobb egérgombbal kattintva a hivatkozás illetve a meghajtóprogram eltávolítható. A listában itt is jól látható az eszközhöz tartozó VID/PID azonosító. Az USB eszközazonosítók birtokában már megtalálhatjuk az illesztőprogramot illetve a gyártót. A korábbi táblázat segítségével a gyakoribbak szintén beazonosíthatóak.

FT232RL illesztő

Az FT232RL USB-soros illesztőchip az FTDI (Future Technology Devices International Ltd.) gyártmánya. Az eszköz VID-je minden esetben a 0403, míg a PID alapértelmezetten a 6003. Ha a PID 0000 értékű, akkor kezdjünk gyanakodni termékhamisításra (Hamis a baba cikksorozat).
Az FTDI chipek meghajtóprogramjai a www.ftdichip.com oldalon érhetőek el Windows, Linux, Mac OSX rendszerek mellett számos ritkább/különlegesebb operációs rendszerhez is. A Windows alatti használatnál Windows 7 és későbbi rendszerekhez az eszközcsatlakoztatás után - ha nincs elérhető eszközmeghajtó a PC-n, akkor az FTDI honlapról letöltésre kerül a legfrisebb kiadás. Ha szükséges kézzel is telepíthető futattható állományként, OEM eszközkezelőként. Vagy akár meglevő driver frissítéseként.
Az FT232RL chipek esetén két meghajtóeszköz települ:
USB eszközök közé az alacsonyszintű eszközkezelő, mely lehetővé teszi a közvetlen kivezetéscímzést, az eszköz (át)konfigurálást, míg a portok közé települ a tényleges soros felületet adó eszközmeghajtó. Ennek további beállításai a Tulajdonságok vagy a Portbeállítások/Speciális közt lehetséges.
A drivertelepítés után nem szükséges a PC újraindítása, az eszköz azonnal üzemkész.
Hol fordulhat elő?
Az FT232RL chip előfordul az Arduino Duemilanove/Diecimila áramkörök illesztőjeként, önálló USB-soros eszközként, ESP-01 mellett soros illesztőként, USB-RS232 illesztőkábelként. (linkek). Fontos tudni, hogy az eszköz 3.3V belső stabilizátora max. 50mA plusz külső terhelést visel el.
Tipp: Az FT232RL előd chipje az FT232BM, melynek kezelésével megegyezik.
Tipp: az FT232 chipcsalád konfigurálását az MProg illetve az FTProg szoftverekkel végezhetjük. Fontos! Hibás chip átprogramozással az áramköri kapcsolás/PC illesztés rendellenes működését okozhatjuk!

CP2102 illesztő

Az illesztőchip a Silicon Labs terméke, a CP210x család tagja. A  számítógépre csatlakoztatáskor élő internetkapcsolat esetén a meghajtóprogram automatikusan letöltődik és települ. Windows, Mac OSX és Linux rendszerekhez a SiLabs oldaláról tölthető le az illesztőprogram.
Ha az automatikus frissítés nem működik, akkor a kézi telepítésre is van lehetőség. A korábban említett honlapról a meghajtóprogramot letöltjük, majd elindítjuk.
Ha ismeretlen eszközként jelentkezik be, akkor driverfrissítésére van szükség. Ez a kibontott telepítőre mutatással lehetséges.
Tipp: A modul 3.3V feszültségforrása ~150...200mA terhelhetőségű.
Hol fordulhat elő?
A NodeMCU egyes változatain, ritkán 1-1 Arduino UNO klón illesztője, USB-soros illesztőként és a terhelhetősége miatt az ESP WiFi modulok PC illesztése és táppellátásban kap szerepet.

CH340 meghajtó

A CH340/CH341 az egyik újabb soros illesztőchip. A PC-re csatlakoztatva a meghajtóprogram nem töltődik le automatikusan , az eszközkezelőben "USB-Serial 2.0" néven jelentkezik be. Így, ha korábban nem volt telepített CH340 eszközmeghajtó, akkor kézzel kell az eszközmeghajtót frissíteni.
A CH340 chip megjelenésekor (~2013 vége) eléggé instabil, hibázgató meghajtóprogram volt csak elérhető hozzá. Ez kb. 2015 elejéig tartott - az azóta elérhető programok már stabil működésűek. A meghajtóprogram a www.wch.cn honlapról tölthető le a telepítők közül (a honlap nyelvei közt angol a cikk írásakor nem érhető el). A CH340G/CH341 chiphez tartozó meghajtóprogram egy telepítendő futatható állomány.
Fontos! A telepítés során a telepítőben található keretrendszer segítségével kell a meghajtóprogramot installálni - a szokásos driverfrissítés nem minden esetben sikeres.
A driverfrissítést is ezen a módon hajthatjuk végre.
Hol fordulhat elő?
Sok helyen tört előre, ahol az ár-érték arány megjelenik. A chip fix jellemzőkkel bír - de a nevet, azonosítót szinte soha nem kell átírni. Ahol nem követelmény az egyedi VID/PID vagy önálló név, hanem csak egy egyszerű USB-soros átjáróra van szükség - ott követel helyet magának.
Arduino UNO illetve Mega lapokon egyre gyakoribb, ahogy ESP fejlesztőrendszerek is sűrűn használják (WittyCloud, NodeMCU, D1 mini).

PL2303 illesztő

Az FT232RL chippel megegyezik a Prolific Technlogy Inc. PL2302 illesztőjének a lábkiosztása. Az illesztőchip többféle alverzióval (revízióval) készült - ez az illesztőprogramot is már meghatározza. Az egyes verziók meghajtóprogramjai nem csereszabatosak! A PL2302 meghajtóprogramjai mind az eszközkezelőból frissítéssel, mind önállóan futtatva, telepítéssel is illeszthetőek. De ha nincsen elérhető hlyi meghajtóprogram, akkor az Internetről automatikusan is települ.
Fontos! A PL-2303HXA and PL-2303X chipek csak Windows 7 rendszerig működnek (hasonló hamisitási incidens miatt, mint a FTDI: Hamis a baba... esete)!
Hol fordulhat elő?
Az USB-soros illesztés a leggyakoribb fellelhetősége, illetve költséghatékonység miatt az FT232RL chipek helyére is kerülhet,

ATMega16u2 - Arduino illesztés

Az ATMega16U2 chip az egyszerűbb felépítésű AVR kontrollerek családjába tartozik, amely USB hardware egységet is tartalmaz. Az ATMega U2 család 8, 16 illetve 32 kbyte programmemóriát tartalmaz, a jelölése is ennek megfelelő. Az Arduino eszközök eleinte az ATMega8U2 chipet tartalmazták (Arduino Uno rev.1), majd később az ATMega16U2 került beépítésre (Arduino Uno rev.2 és rev.3). A chip egyszerű USB-soros firmware-t tartalmaz - hiszen eredeti alkalmazása Arduino környezetben az FT232RL illesztőchip kiváltása volt.
A firmware frissítésének segítségével van mód a VID/PID USB azonosító átírására, vagy akár új funkciók beépítésére. Arduino esetén a firmware a LUFA projektre épül - így joystickká, midi eszközzé, billentyűzetté alakítás egyszerű firmware módosítássa megoldható.
Az eredeti illesztőprogram azonosítója a sorosport megvalósítását biztosítja, és az illesztőprogram az Arduino telepítő része.
A telepítés során, ha rendszergazdaként a futtatható állományt használjuk, akkkor a meglevő állományok is frissítésre kerülnek. Ehhez elég jóváhagyni a telepítést.
Ha nem akarunk telepíteni, keretrendszert, meghajtóprogramot - akkor a keretrendszer telepítő "Drivers" könyvtárára lesz szükségünk: ezt kell driverfrissítéskor megmutatni. A drivers könyvtár dpinst* állománya az automatikus telepítést végzi telepítéskor vagy beavatkozás nélküli eszközmeghajtó-telepítést hajthatunk végre.
Az eredmény minden eljárás során a feltelepített, előkészített illesztő.
Hol fordulhat elő?
Az Arduino UNO illetve Arduino Mega lapok USB illesztője a legfőbb fellelési helye.

ATMega32U4 kombinált illesztő

Egyes chipek belül mikrokontrollert és USB hardware-t tartalmaznak. Az ilyen eszközök gyakorlatilag szinte bármilyen VID/PID azonosítóval rendelkezhetnek - a működtető szoftver (firmware) határozza meg, hogy miként jelentkezik be. Az Arduino családban az ATMega32U4 chip gyakori alkalmazású - hiszen a minták közt joystick, billentyűzet, sorosport és egér-emuláció is szerepel.
A Leonardo/Pro Micro lap különlegessége, hogy kétféle eszközillesztőre is szüksége van. Egyik a bootoader kezeléséhez, a másik a működés közbeni sorosport eléréséhez. A telepítés során a keretrendszerrel együtt történő telepítés a legegyszerűbb, szinte csak a tovább gombot kell nyomkodni.... (Együtt települ az ATMega16U2 illesztővel). Ugyanúgy utólagos telepítés is megoldható az Arduino / Drivers alól az dpinst* illesztőprogram telepítőkészlet futtatásával. De a hagyományos lehetőség van még az eszközkezelőben az illesztőprogram frissítésre is...
Hol fordulhat elő?
Az Arduino Leonardo, Esplora, Pro Micro lapok központi chipje.

 

TavIR-Facebook