
565
SAM9G15 [DATASHEET]
11052E–ATARM–06-Feb-13
RXRDY_TXKL: Received OUT Data/KILL Bank
–
Received OUT Data
(for OUT endpoint or Control endpoint):
This bit is set by hardware after a new packet has been stored in the endpoint FIFO.
This bit is cleared by the device firmware after reading the OUT data from the endpoint.
For multi-bank endpoints, this bit may remain active even when cleared by the device firmware, this if an other packet has been
received meanwhile.
Hardware assertion of this bit may generate an interrupt if enabled by the UDPHS_EPTCTLx register RXRDY_TXKL bit.
This bit is reset by UDPHS_EPTRST register EPT_x (reset endpoint) and by UDPHS_EPTCTLDISx (disable endpoint).
–
KILL Bank
(for IN endpoint):
–
The bank is really cleared or the bank is sent, BUSY_BANK_STA is decremented.
–
The bank is not cleared but sent on the IN transfer, TX_COMPLT
–
The bank is not cleared because it was empty. The user should wait that this bit is cleared before trying to clear
another packet.
Note:
“Kill a packet” may be refused if at the same time, an IN token is coming and the current packet is sent on the UDPHS
line. In this case, the TX_COMPLT bit is set. Take notice however, that if at least two banks are ready to be sent,
there is no problem to kill a packet even if an IN token is coming. In fact, in that case, the current bank is sent (IN
transfer) and the last bank is killed.
TX_COMPLT: Transmitted IN Data Complete
This bit is set by hardware after an IN packet has been sent.
This bit is reset by UDPHS_EPTRST register EPT_x (reset endpoint), and by UDPHS_EPTCTLDISx (disable endpoint).
TXRDY_TRER: TX Packet Ready/Transaction Error
–
TX Packet Ready
:
This bit is cleared by hardware, as soon as the packet has been sent.
For Multi-bank endpoints, this bit may remain clear even after software is set if another bank is available to transmit.
Hardware clear of this bit may generate an interrupt if enabled by the UDPHS_EPTCTLx register TXRDY_TRER bit.
This bit is reset by UDPHS_EPTRST register EPT_x (reset endpoint), and by UDPHS_EPTCTLDISx (disable endpoint).
–
Transaction Error
(for high bandwidth isochronous OUT endpoints) (Read-Only):
This bit is set by hardware when a transaction error occurs inside one microframe.
If one toggle sequencing problem occurs among the n-transactions (n = 1, 2 or 3) inside a microframe, then this bit is still set as
long as the current bank contains one “bad” n-transaction. (see
“CURBK: Current Bank” on page 566
) As soon as the current
bank is relative to a new “good” n-transactions, then this bit is reset.
Notes:
1. A transaction error occurs when the toggle sequencing does not respect the
Universal Serial Bus Specification, Rev
2.0
(5.9.2 High Bandwidth Isochronous endpoints) (Bad PID, missing data....)
2. When a transaction error occurs, the user may empty all the “bad” transactions by clearing the Received OUT Data
flag (RXRDY_TXKL).
If this bit is reset, then the user should consider that a new n-transaction is coming.
This bit is reset by UDPHS_EPTRST register EPT_x (reset endpoint), and by UDPHS_EPTCTLDISx (disable endpoint).
ERR_FL_ISO: Error Flow
This bit is set by hardware when a transaction error occurs.
–
Isochronous IN transaction is missed, the micro has no time to fill the endpoint (underflow).
–
Isochronous OUT data is dropped because the bank is busy (overflow).
This bit is reset by UDPHS_EPTRST register EPT_x (reset endpoint) and by UDPHS_EPTCTLDISx (disable endpoint).