Hallo Forum, ich komme mit meinem USB-Projekt nicht weiter und bräuchte mal Hilfe beim Thema USB. Ich möchte 2 virtuelle COM-Ports mit einem STM32F4xx verwenden. Dazu habe ich Anleitungen und Quellen aus: https://community.st.com/t5/stm32-mcus/how-to-implement-a-dual-cdc-acm-usb-device-using-the-st-classic/ta-p/708039 und Github kombiniert. Das ganze läuft jetzt, das 2 Ports in Windows erkannt werden, das ich beide öffnen kann und dass ich ein Echo zurückbekomme. Jedoch ist mir jetzt aufgefallen, dass die Interrupt-Last hoch ist, sobald ich den ersten Port öffne. Beim zweiten Port ist das nicht so und funktioniert sehr gut. Im pcap hab ich gesehen, dass ständig Nachrichten "URB Function: URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL (0x001e)" gesendet werden. Irgendetwas scheint noch zu fehlen oder nicht zu stimmen. Im Anhang habe ich mal die beiden pcap-files: 4.pcap - Funktion ok, senden und empfangen von "abcd" im Paket 1745 ff 5.pcap - nicht okay, senden und empfangen von "efgh" im Paket 1123 ff Im Quellcode habe ich bis dahin folgendes angepasst: Usb_device.c "USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS0);" hier habe ich 2 cdc interfaces angelegt ...FS0 und ...FS1, wobei ich die Receive- und TransmitCplt-Funktionen ergänzt habe. Sonst gab es einen Hardfault, weil auf 0 gesprungen werden sollte. Die "USBD_malloc"-Funktion (static) habe ich durch getrennte Speicher ersetzt in der die "USBD_CDC_HandleTypeDef" abgelegt werden. Vielen Dank für Hinweise
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.