Forum: Mikrocontroller und Digitale Elektronik Serial auf USB mit ARM, CDC ACM


von Florian P. (flo_pa)


Lesenswert?

Hallo zusammen,
seit geraumer Zeit hänge ich an folgendem Problem:

Ich verwende einen AT91SAM7S256 µC und versuche auf diesem einen Seriell 
auf USB - Konverter zum Laufen zu bringen. Bei der Enumerierung wird der 
usbser.sys - Treiber richtig installiert und der virtuelle COM - Port 
auch ordnungsgemäß erstellt. Senden von einem Hyper Terminal (Virtueller 
COM) zu einem zweiten (physikalische COM Schnittstelle) funktioniert 
ohne Probleme. Allein die Kommunikation von Seriell auf USB klappt 
nicht.

Dabei werden die über USART0 eintreffende Daten mittels PDC in einen 
Buffer geschrieben und anschließend in den entsprechenden Bulk - IN - 
FiFo gelegt. Von dort werden diese allerdings nie vom Host abgeholt 
(TXCOMP Flag wird nicht gesetzt).

Ist es notwendig über den Interrupt IN (CDC ACM Model) dem Host 
mitzuteilen, dass Daten im FiFo zum Auslesen bereit stehen? Falls ja, 
wie müsste die entsprechende "Notification" - Nachricht aufgebaut sein 
und wann müsste diese gesendet werden (nachdem oder bevor der FiFo mit 
den USART0 - Daten beschrieben wurde?)

Vielen Dank schon einmal im Voraus.
Florian

von Christian (Gast)


Lesenswert?

Hoi Florian

Leider wird beim CDC ACM (Communication Device Class abstract control 
model) auf allen Windows PC nicht die gleichen Treiber und Versionen 
verwendet.

1. Mach doch ein Test mit Vista (neuste Treiber Versionen)

2. KB901122 und KB943198 intallieren, dann sollte es auch gehen.
   http://support.microsoft.com/kb/901122
   Für ACM wird das file usbccgp.sys (USB common class generic) 
benötigt.
   Du kannst aber auch auf SP3 beim XP warten.

Gruss
Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.