2021.10.22.

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

RS-232 port - D-Sub9Az 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 kapcsolat ellenő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 – és 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.

Szá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 a chip felülete, vagy 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ést…

Chipazonosítás – szemrevételezéssel

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

KépChip azonosítóUSB eszköznévVID/PIDMegjegyzés / ElőfordulásDriver
FT232RLFT232R USB UART0403 / 6001Arduino Nano, Diecimila,  USB-soros átjáróFTDI driver
CP2102CP2102 USB to UART Bridge Controller10C4 / EA61NodeMCU, USB-soros átjáróSilicon Labs driver
CH340GUSB2.0-Serial1A86 / 7523Arduino UNO, Arduino MEGA, Soros-USB átjáróWCH driver
PL2303HXUSB-Serial Controller C067B / 2303Ritka Arduino UNO, soros-USB átjáróProlific driver
ATMEGA16U2Firmware függő2341 / 0243
03EB / 2FFA (DFU)
Arduino UNO, Arduino MEGAArduino USB driver (keretrendszer tartalmazza)
ATMEGA32U4Firmware függő

2341 / 8036

2A03 / 0036 (DFU)
Leonardo lapka, Pro Micro, EsploraArduino USB driver (keretrendszer tartalmazza)
ATSAM3x8EFirmware függő
2A03 / 003E
03EB / 6124 (DFU)
Arduino DUEArduino 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ülnek á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ő -> Portok(COM és LPT)
 
Itt a jellemzők fülön nézzük meg az eszközazonosítót:
 
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. (Vagy letöltés a TavIR oldalról: 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.
 
É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. (Vagy letöltés a TavIR oldalról: USBdeview szoftver)
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 legfrissebb kiadás. Ha szükséges kézzel is telepíthető futtatható á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 alacsony szintű 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 driver telepí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/CH341 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ő futtatható á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 Arduino 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ő helyi 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ó hamisítá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ása 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, akkor 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.
 

Kapcsolódó állományok