AT91SAM7S128 und USB Problem.

Gast #695808
Lesenswert?
• ▲
▼
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 ????
#695871
Lesenswert?
• ▲
▼
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 ??

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren