STM32F0xx HID composite device

Tu bo govora o vseh mogočih mikrokontrolerjih ne glede na tip ali zgradbo

STM32F0xx HID composite device

OdgovorNapisal/-a Aljosa » 10 Maj 2017, 23:06

Zdravo,

a je mogoče komu uspelo na STM32F0xx realizirati HID composite device?

Doma imam STM32F072-Discovery board in sem se igral s STM32CubeMX. V CubeMX lahko izbereš različne classe (HID, Audio itd...) ampak samo enega hkrati. Torej ne gre composit device. Jaz bi imel npr. napravo, ki bi imela 2 CustomHID-a pa Audio. Naredil sem projekt za Keil uVision MDK 5. Če recimo v projektu uporabim posamezen class bo stvar delovala ok. Deskriptorji so ok, report deskriptor tudi. Torej če izberem za uporabo HID audio class bo vse šlo lepo skozi in v windows bo vse štimalo. Za vsak tak class sem preveril in portdil, da posamezno deluje ok in da vse štima z deskriptorji. Za composite sem si pa napisal svoj wrapper, ki poskrbi za komunikacijo s pravim/izbranim classom pa zadeva ne funkcionira. Deskriptorji so pravilni in je naprava prepoznana kot composite device, se pa ustavi očitno pri pridobivanju report deskriptorjev zato potem posamezni classi ne delujejo in dobim napako, da naprava ni bila zagnana.

Še eno podvprašanje:
Kaj točno se nastavi z naslednjo funkcijo? Je to pomnilnik/buffer za endpointe?
HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData , HID_EPIN_ADDR , PCD_SNG_BUF, 0x98);

Kako se pa izračuna ta naslov (0x98)? V zgornjem primeru je 0x98 a to pomeni, da če imama za endpoint max packet 64 bajtov da bo naslednji endpoint 0x98+0x40=0xD8?

Hvala za odgovore in pomoč.
"Logic will get you from A to B. Imagination will take you everywhere.”
―Albert Einstein
Uporabniški avatar
Aljosa
 
Prispevkov: 43
Pridružen: 13 Feb 2015, 10:51
Kraj: Trbovlje
Zahvalil se je: 18 krat
Prejel zahvalo: 12 krat
Uporabnika povabil: borisz
Število neizkoriščenih povabil: 2

Re: STM32F0xx HID composite device

OdgovorNapisal/-a Aljosa » 14 Maj 2017, 21:39

Našel vse potrebne informacije. Mogoče še komu prav pride: http://www.st.com/en/embedded-software/ ... 32092.html
"Logic will get you from A to B. Imagination will take you everywhere.”
―Albert Einstein
Uporabniški avatar
Aljosa
 
Prispevkov: 43
Pridružen: 13 Feb 2015, 10:51
Kraj: Trbovlje
Zahvalil se je: 18 krat
Prejel zahvalo: 12 krat
Uporabnika povabil: borisz
Število neizkoriščenih povabil: 2

Re: STM32F0xx HID composite device

OdgovorNapisal/-a tilz0R » 15 Maj 2017, 23:30

Tvoji exampli niso za HAL driverje. Če jih ne uporabljaš, potem je to ok.

Drugače pa, če hočeš imeti composite device, moraš v vsakem primeru predstavit zadevo kot 1 class USB knjižnici. Znotraj classa pa odpret endpoint-e, ter primerno nastavit descriptor za oba hkrati.
"Words come easy, when they're true!"
Robbie Williams, Gary Barlow
Moj nickname je tilz[NULA]R.
Uporabniški avatar
tilz0R
 
Prispevkov: 945
Pridružen: 18 Jan 2015, 00:12
Kraj: Črnomelj
Zahvalil se je: 124 krat
Prejel zahvalo: 226 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 232

Re: STM32F0xx HID composite device

OdgovorNapisal/-a Aljosa » 15 Maj 2017, 23:38

Ja na takšen način sem si naredil. Dejansko en wrapper USB composite classa, ki združuje ostale classe v celoto. Sicer sem moral narediti še nekaj sprememb na originalnih knjižnicah, ker niso narejene direktno za kompozitno napravo ampak sedaj mi stvar deluje. Vsi deskriptorji štimajo in tudi z napravo komunciram normalno.
"Logic will get you from A to B. Imagination will take you everywhere.”
―Albert Einstein
Uporabniški avatar
Aljosa
 
Prispevkov: 43
Pridružen: 13 Feb 2015, 10:51
Kraj: Trbovlje
Zahvalil se je: 18 krat
Prejel zahvalo: 12 krat
Uporabnika povabil: borisz
Število neizkoriščenih povabil: 2


Vrni se na Hardware

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost