forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
ATSAM3S2C USB Bulk-komunikace MCU/PC-USB Device Vendor Class

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> ARM
 
Aqarel
Anonymní





PříspěvekZaslal: 08 květen 2014, 23:43    Předmět: ATSAM3S2C USB Bulk-komunikace MCU/PC-USB Device Vendor Class Citovat

Ahoj,
mám kartu s ATSAM3S2C připojenou přes USB (FS) k PC. Používám Atmel Studio 6.1. Chci komunikovat přes Bulk out endpoint. Na straně počítače používám driver libusbK. Pokud si v mcu nastavím velikost přijímacího buferu na 10B (udi_vendor_bulk_out_run(appDataBulkOut, 10, usb_bulk_out_callback)) a z PC pošlu data o délce např. 20B, tak na straně PC funkce WritePipe() tvrdí, že bylo odesláno všech 20B. Ale mcu přijme pouze 10B.

Je nějaká funkce v ASF, kterou bych si zjistil, že PC poslalo víc dat, než se vleze do bufferu? Neměla by už selhat funkce WritePipe()?

díky

Arrow administrator: přejmenováno z "ATSAM3S2C USB Bulk"
Návrat nahoru
 

 
Aqarel
Anonymní





PříspěvekZaslal: 09 květen 2014, 0:33    Předmět: Citovat

Smile Je použit režim USB Device Vendor Class

Zkusil jsem to naopak. Posílám data z mcu do PC, přičemž v PC je nastaven přijímací buffer menší než je délka odesílaných dat. Na žádné straně nedojde k chybě, ale tentokrát pokud volám funkci ReadPipe() opakovaně, tak nakonec získám celou poslanou zprávu.

Proč to stejné nefunguje pro udi_vendor_bulk_out_run() nebo jak se dozvědět, že všechny data nebyly přijaty?

Je tu ještě jeden problém, pokud funkci udi_vendor_bulk_out_run přestanu opakovaně volat, tak i přesto funkce WritePipe() nevrátí žádnou chybu a vše se tváří, že bylo odesláno v pořádku.

PS: Náhodou nesetkal jste někdo s problémem, že pokud se v konfiguraci USB nastaví UDI_VENDOR_EPS_SIZE_ISO_FS = 0 (nebo Bulk či interrupt), což by podle dokumentace mělo pouze deaktivovat daný endpoint, tak již nejde nastavit alternative setting na 1(libusbk vrátí chybu, že zařízení pracuje chybně) => nezavolá se makro UDI_VENDOR_ENABLE_EXT()?
Návrat nahoru
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> ARM Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)