Forum: Mikrocontroller und Digitale Elektronik USB mit PDIUSBD11


von Weinga-Unity (Gast)


Lesenswert?

Hi!

Hab schon einige Threads über dieses Theme geschrieben. Jetzt kommt noch 
einer:

Bezogen auf die Deskriptoren:
Hab ich das so richtig verstanden:

1. Vom PC kommt eine Get-Descriptor-Anweisung
2. Der µC lädt nun den Buffer mit dem Descriptor und sendet die ersten 8 
Bytes
3. Der PC macht einen Enpoint0-IN-Interrupt
4. Der µC lädt und sendet die nächsten 8 Bytes
usw...

Wäre sehr wichtig zu wissen, ob das so korrekt ist. Muss dann nämlich 
das ganze Programm neu schreiben, wenn es so ist.

mfg Weinga-Unity

von Thomas Zepf (Gast)


Lesenswert?

Im Prinzip ist es so wie du schreibst.

1. Host Setup mit GetDescriptor
2. uC copiert die ersten 8 Bytes
2a:uC gibt den EP0In Frei
3: Host holt die Daten der uc bekommt einen IRQ
4: Der uC schaut ob das ein In war
   und kopiert das nächste Packet
4a:uC gibt den EP0In wieder frei.

Falls du bei einem GetRequest den OutEp0 bekommst
terminiert der Host den Request
der uC muss in diesem Fall ein ACK senden
(In mit 0 Bytes daten)

Wie du siest bekommst du den Interupt immer erst nach einer Transaktion

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.