Hello,
I've some questions related to the USB2.0 documentation (sprufm9h.pdf).
I'm using a LOGIC PD L138 eXperimenter board with the following versions
on the ARM side of the OMAP-L138:
- CCS Version 4.2.1.00004
- SYS/BIOS 6.30.03.46
Implemented is a virtual COM port on my Laptop (Windows XP Professional, SP3).
The two bmAttributes for the endpoint descriptors (EP1 IN and EP1 OUT) within the configuration descriptor are set to "Bulk".
FLUSHFIFO questions:
====================
sprufm9h.pdf describes on page 32/165 resp. on page 34/165 the Setup for Bulk In/Out Transactions.
In chapter 2.7.1.2.1.1 Setup the following statement is made:
"When the endpoint is first configured (following a SET_CONFIGURATION or SET_INTERFACE command on Endpoint 0), the lower byte of PERI_TXCSR should be written to set the CLRDATATOG bit (bit 6). This will ensure that the data toggle (which is handled automatically by the controller) starts in the correct state.
Also if there are any data packets in the FIFO, indicated by the FIFONOTEMPTY bit (bit 1 of PERI_TXCSR) being set, they should be flushed by setting the FLUSHFIFO bit (bit 3 of PERI_TXCSR)."
Similar statement can be found for the Bulk Out Transactions (see chapter 2.7.1.2.2.1)
However, the description for the FLUSHFIFO in chapter 4.35 Control Status Register for Peripheral Transmit Endpoint (PERI_TXCSR) on page 126/165 has the following note:
"Note: FlushFIFO has no effect unless the TXPKTRDY bit is set. Also note that, if the FIFO is double-buffered, FlushFIFO may need to be set twice to completely clear the FIFO."
Q1: When receiveing on EP0 a SET_CONFIGURATION do I need to set the TXPKTRDY in addition to the FLUSHFIFO bit (when FIFONOTEMPTY bit is set)?
Q2: If the FIFO is double-buffered, do I need to check the FIFONONEMPTY a second time before setting the FLUSHFIFO bit or can I set the bit just twice?
Next question is similar to Q2, just for the receive side.
Q3: If the FIFO is double-buffered, do I need to check the RXPKTRDY a second time before setting the FLUSHFIFO bit or can I set the bit just twice?
EMUR questions:
===============
sprufm9h.pdf describes on page 101/165 the Emulation Register (EMUR).
Q4: Where can I find a detailed description of the 3 bits resp. how do I need to set these register when using an emulator?
Q5: What is the "CBA 3.0 emulation interface"?
Thanks,
Frank