STM32 és usb

Az utolsó cikk, beszéltem arról, hogy a projekt kell keresni Keil-betakarító eszközök USB, adott egy linket a projekt, és elmagyarázta, hogyan kell beállítani, hogy szinte bármilyen fórumon STM32.







A projekt interfész két tömeges endpoyntami (és ki) hajtották végre, az én „egyedi” protokoll, amely segítségével engedélyezheti, letilthatja, és svetoiody villog a kívánt időben az égő / nem ég.

Nos lefektetett egy kis programot mindezt:

STM32 és usb

Ebben a cikkben, én kiad egy kis összefoglaló, hogy milyen eszközöket lehet használni, hogy nagy mértékben egyszerűsíti az életét.

Tehát van napirenden a következő lehetőségek közül:

1) Írj maga a vezető. A feladat nehéz, hálátlan, hosszú. Itt egyszerre lehet küldeni, például a Windows Driver Foundation. Rengeteg példát, akkor vedd nyitott és alkalmazkodni, hogy megfeleljen az Ön igényeinek.
A nyilvánvaló előnye ennek a lehetőség - a döntést, hogy egy szép és kompakt. De megéri az időt ...
Bocs, ha csalódást okozott azoknak, akik azt gondolták, hogy fogom leírni ezt a lehetőséget :)

3) Egy kész eszközöket. Itt, ebben a „variáns kezdőknek és nem csak a” nem mondunk le.

De először, egy rövid kitérőt.

Hogy a Windows felismeri az USB-eszközt?
A legtöbb esetben ez a „vezetékes” a készülék VID (Vendor ID) és PID (Product ID). Vannak kivételek, mint például HID és Mass Storage, ahol a Windows felismeri a készüléket és az osztály vezető megcsúszik már főzött.

Ha csatlakoztatni az eszközt a számítógépes rendszer felismeri, de nyilvánvaló, akkor esküszöm, hogy nincs egy vezető, és kéri, hogy válassza ki .inf- fájlt.
Ez az a fájl, és az előírt, többek között, a VID és PID, valamint az utat a vezető.

Tehát találkozunk: libusbt-win32 és Jungo WinDriver.

Jungo WinDriver

Egy nagyon hasznos dolog.
A varázsló futtatása, válassza ki a VID-PID A készülék:

STM32 és usb

Generál inf-fájlt, kivéve, telepítse a vezetőt azonnal, és íme. Itt vannak a két nagy-endpoynta + menedzser, nulla endpoynt:

STM32 és usb

De a készülék meghatározott Eszközkezelő:

STM32 és usb






De ez még nem minden. Kattintson a mágikus gomb generálása kód:

STM32 és usb

És mi lesz az igazán széles a lehetőségek minden ízét:

STM32 és usb

Létrehoz projekt C # (.NET) és ő adott nekem solyushen két projekt: a tényleges program maga, és Lieb dolgozni egy USB-eszközt. Az utóbbi mindent meg kell, akár a kapcsolat-leválasztás devaysa eseményeket. Általában, ha nem zavarja, mindent lehet csökkenteni a normál olvasási-felvétel endpoynty.
Következő maguk megbirkózni? ;-)

Nos, most beszéljünk a hiányosságokat.
1) Jungo WinDriver - egy darab nagyon fizetni. Ki szeretné, hogy ideges - az árak itt.
2) Egyes USB-eszközök több konfigurációkat. Ez a ritka, de előfordul.
WinDriver ilyen munka nem függvényében a változás a konfigurációs van megjelölve még nem elérhető.

libusbt-win32

Kivonat a bin és apu programm inf-Wizard.exe. Szintén egy varázslót az inf fájlt, és ezzel együtt az összes többi szükséges fájlok telepítéséhez.
Fuss, úgy döntünk, a készüléket, tartsa inf, stb külön mappában:

STM32 és usb

A telepítéshez a jól azonnal.

STM32 és usb

Most, hogy hozzon létre a projekt, meg kell gyűjteni az összes szükséges fájlt a libusbt a lib könyvtárban, a többek között, kém, hogy hogyan működik a készülék az oltalmi kör mappában. A munka - egyszerű (lásd bulk.c)


De ez úgy tűnt, hogy egy kicsit. Ahogy egyszer kikötöttek kemény drogok, a továbbiakban C # .NET + elkezdtem keresni a megoldásokat, amelyek olyan egyszerű, mint Jungo WinDriver.
És találtam a következőket:

LibUsbDotNet

Éppen ez liby írtam egy programot az előző cikkben. Bízza endpoyntami olyan egyszerű.


Nos, miután a végrehajtási egy kis protokoll, író-olvasó és a kényelem endpoynty LED villog :)
Csak ne felejtsük el egy finomság: az egész csere USB-devaysom előfordul kezdeményezésére a házigazda. Ezért az adatok nem tartoznak bele a gazda, amíg a gazda nem akar olvasni.
Ez minden.

Itt alapvetően mindent meg kell, hogy hozzon létre egy primitív STM32 USB-eszközt. Minden kommunikáció csökken az olvasás és írás endpoynty és elemzése, hogy mi van ott mindegy is ez, és mit kell tenni róla.
Személy szerint úgy gondolom, ezt a lehetőséget is könnyebb, mint végrehajtó egy eszköz szerepel, mint egy normál osztályban.

Mint mindig, a projekt fájlokat itt.

Nos, a következő alkalommal eléri a kezét, akkor emelje fel az USB Mass Storage, és több mint egy interfész készült LED, azaz Kompozit USB-eszköz :)

Libusbt egy jó dolog, de a standard osztályok szintén nem rossz. Például a CDC osztály látható a rendszerben virtuális COM port, amely nem tud, de örülnek, de nagyon egyszerűen. Mégis, bármilyen rendszeren anélkül, hogy telepíteni a járművezetők sokkal megéri.

Nos, igen :) Csak CDC-osztály még mindig szükség van inf-fájlt, valamint a VID-PID. Nos, a Linux nem számít.

Általában az volt a probléma a következő: szervezni az USB-csere gyorsan és egyszerűen, olvasás és írás endpoynty. És ez a felismerés még a CDC már legalább egy részét, de mélyülő :)

További információkat a cikkek köszönöm, érdekes és informatív. Most fokozatosan is vehetem USB. Apránként -, mert nem látok sok értelme az USB-kreatív legyen felbontás a készülék, mert FT232. VCP - mi minden. )

ft232 költségek körülbelül ugyanaz, mint STM32F103. Ennek van értelme. )