Техническая Спецификация для Atmel Evaluation Kit AT91SAM9M10-G45-EK AT91SAM9M10-G45-EK

Модели
AT91SAM9M10-G45-EK
Скачать
Страница из 1361
 800
SAM9M10 [DATASHEET]
6355F–ATARM–12-Mar-13
 
38.5.8.7
Isochronous IN
Isochronous-IN is used to transmit a stream of data whose timing is implied by the delivery rate. Isochronous trans-
fer provides periodic, continuous communication between host and device.
It guarantees bandwidth and low latencies appropriate for telephony, audio, video, etc.
If the endpoint is not available (TX_PK_RDY = 0), then the device does not answer to the host. An ERR_FL_ISO
interrupt is generated in the UDPHS_EPTSTAx register and once enabled, then sent to the CPU.
The STALL_SNT command bit is not used for an ISO-IN endpoint.
38.5.8.8
High Bandwidth Isochronous Endpoint Handling: IN Example
For high bandwidth isochronous endpoints, the DMA can be programmed with the number of transactions
(BUFF_LENGTH field in UDPHS_DMACONTROLx) and the system should provide the required number of pack-
ets per microframe, otherwise, the host will notice a sequencing problem.
A response should be made to the first token IN recognized inside a microframe under the following conditions:
• If at least one bank has been validated, the correct DATAx corresponding to the programmed Number Of 
Transactions per Microframe (NB_TRANS) should be answered. In case of a subsequent missed or corrupted 
token IN inside the microframe, the USB 2.0 Core available data bank(s) that should normally have been 
transmitted during that microframe shall be flushed at its end. If this flush occurs, an error condition is flagged 
(ERR_FLUSH is set in UDPHS_EPTSTAx).
• If no bank is validated yet, the default DATA0 ZLP is answered and underflow is flagged (ERR_FL_ISO is set in 
UDPHS_EPTSTAx). Then, no data bank is flushed at microframe end. 
• If no data bank has been validated at the time when a response should be made for the second transaction of 
NB_TRANS = 3 transactions microframe, a DATA1 ZLP is answered and underflow is flagged (ERR_FL_ISO is 
set in UDPHS_EPTSTAx). If and only if remaining untransmitted banks for that microframe are available at its 
end, they are flushed and an error condition is flagged (ERR_FLUSH is set in UDPHS_EPTSTAx).
• If no data bank has been validated at the time when a response should be made for the last programmed 
transaction of a microframe, a DATA0 ZLP is answered and underflow is flagged (ERR_FL_ISO is set in 
UDPHS_EPTSTAx). If and only if the remaining untransmitted data bank for that microframe is available at its 
end, it is flushed and an error condition is flagged (ERR_FLUSH is set in UDPHS_EPTSTAx).
• If at the end of a microframe no valid token IN has been recognized, no data bank is flushed and no error 
condition is reported. 
At the end of a microframe in which at least one data bank has been transmitted, if less than NB_TRANS banks
have been validated for that microframe, an error condition is flagged (ERR_TRANS is set in UDPHS_EPTSTAx).
Cases of Error (in UDPHS_EPTSTAx)
• ERR_FL_ISO: There was no data to transmit inside a microframe, so a ZLP is answered by default.
• ERR_FLUSH: At least one packet has been sent inside the microframe, but the number of token IN received is 
lesser than the number of transactions actually validated (TX_BK_RDY) and likewise with the NB_TRANS 
programmed.
• ERR_TRANS: At least one packet has been sent inside the microframe, but the number of token IN received is 
lesser than the number of programmed NB_TRANS transactions and the packets not requested were not 
validated.
• ERR_FL_ISO + ERR_FLUSH: At least one packet has been sent inside the microframe, but the data has not 
been validated in time to answer one of the following token IN.
• ERR_FL_ISO + ERR_TRANS: At least one packet has been sent inside the microframe, but the data has not 
been validated in time to answer one of the following token IN and the data can be discarded at the microframe 
end.