Hallo; wie kann man das Bit TXPKTREADY wieder zurücksetzen ? Das Problem ist folgendes; ich sende Daten zum Device[BULK], diese werden angenommen und verarbeitet; nun beginnt meine Firmware zu arbeiten. Die Daten liegen zum senden an den PC bereit und sind in den EP geschrieben worden, sowie das Flag TXPKTREADY wurde gesetzt. Beim nächsten IN token vom Host werden die Daten ach gesendet. Falls aber nun kein IN Token vom Host kommt (möglicherweise, weil die USB Timeout zu Ende ist) sind die Daten im FIFO und das Bit TXPKTREADY ist gesetzt. Nun schickt der Host eine neues Protokoll, was entgegengenommen wird, und direkt danach beginnt der HOST mit dem senden von IN Tokens, da er auf dieses Protokoll eine Antwort haben will...jetzt bekomme ich aber die alten Daten, die noch im FIFO stehen ?!?!?!?!?!?!? Deshalb, wie kann ich das TXPKTREADY Bit resetten ????
TXPKTRDY kann man nicht zurücksetzen. Aus Deinem Text meine ich aber herlauszulesen dass Du versuchst einen Bulk-Endpoint bidirektional zu benutzen. Das ist nicht möglich. Nur Control-Endpoints sind bidirektional.
Hallo, das Problem kenn ich. Soweit ich das jetzt noch in Erinnerung habe gibt es kein FIFO-Reset o.ä. . Da hilft dir nur ein sauberes Protokoll. So ist es ...
Es gibt einen BULK endpoint für IN und einen separaten für OUT Transfers..... Das Problem ist; ich kann keine IN Token detektieren, und somit weiß ich nie ob der Host welche sendet oder nicht... Meine EP Fifo ist jedoch gefüllt und "scharf" gemacht (TXPKTREADY" ist gesetzt)...wenn ich jetzt eine neues Protokoll empfange (OUT transfer) will ich gerne den IN Endpoint resetten, da ansonsten die alten Daten beim nächsten IN Token zurückgesendet werden... Was ist die Lösung ??
Die alten Daten empfangen und im Host verwerfen. Darum musst du dich aber selbst kümmern. Im Host z.B. solange Daten abfragen, bis nichts mehr zurückkommt.
Hallo, warum benutzt du nicht die 3 UARTs vom SAM ? Dann kannst du aus allen Rohren feuern bis deinem PC schwarz vor Augen wird.
Probier mal ein Endpoint-Reset (Datenblatt Seite 472). Ist vielleicht ein Isochronous-Endpoint besser für Dein Vorhaben geeignet?
... It also resets the data toggle to DATA0. Das ist immer sehr spannend beim SAM.
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.