Hallo W.S.
du hattest hier mal USB-CDC Code für einen STM32F103 gepostet. Das habe
ich mal probiert mit diesm Board:
Ebay-Artikel Nr. 221961031950
1.5k an D+ mache ich von Hand.
Leider endet das unter Windows in einem unbekannten USB-Gerät (Fehler
beim festlegen der Adresse).Ich hab mal an in die Funktion OnSetup
folgenden Debug-Code eingebaut:
1 | void OnSetup (word EpCtrlStatus)
|
2 | {
|
3 | ReadControlBlock(&CMD.SetupPacket.bmRequestType, 8);
|
4 | debug_printf("OnSetup 0x%x 0x%x\n", (int)CMD.SetupPacket.bRequest, (int)CMD.SetupPacket.wValue);
|
5 |
|
6 | if (IsStandardRequest()) /* wenn Type = Standard */
|
als Ausgabe erhalte ich:
OnSetup 0x6 0x100
OnSetup 0x5 0x16
OnSetup 0x6 0x100
OnSetup 0x5 0x17
OnSetup 0x6 0x100
OnSetup 0x5 0x18
OnSetup 0x6 0x100
OnSetup 0x5 0x19
Damit hat er meines Erachtens nach schon den Device Descriptor
erfolgreich angefordert (0x6 0x100). Danach soll SetAdress (0x5)
ausgeführt werden, was fehl schlägt. Das ganze wiederholt sich dann 4
mal. Hast du eine Ahnung wie ich jetzt am besten weiter mache bei der
Fehlereingrenzung? An der Hardware kanns ja eigentlich nicht mehr
liegen, sonst würde er ja schon beim Device-Deskriptor meckern.