forked from felis/USB_Host_Shield_2.0
-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
Description
On the error data should be ignored and do nothing on data toggle bit.
MAX3421 Programming Guide p.13
If the IN data was error-free but there was a data toggle mismatch (the DATA0 or DATA1 PID
send by the peripheral did not match the endpoint toggle value), the SIE sends the ACK
handshake, but it does not complement the data toggle or assert the RCVDAVIRQ. The SIE sets
HRSL = 0110 (Toggle Error) for this condition. This situation would happen if the peripheral
received a corrupted ACK handshake from the previous IN transfer. In this case the host ignores
the data in the RCVDATA FIFO, because it represents data that the peripheral mistakenly resent
when it missed the last ACK handshake. By ACK-ing the transfer and not updating its own
toggle bit, the SIE causes the peripheral to complement its toggle bit, thus forcing the data toggle
mechanism back into sync.