Other Parts Discussed in Thread: TM4C1294NCPDT
Hi,
I am upgrading a design that previously used a UART to dump a lot of data to a PC, to an EPI-based interface. The EPI is in 8-bit Host-Bus mode, submode is XFIFO. The EPI bus is externally connected to an FT2232H USB Bridge which works in FT245 mode (async FIFO mode, with RD, WR, FFULL and FEMPTY signals). I am just starting out with the EPI module and I have a bunch of beginner questions:
1. It is not clear to me if the EPI's write FIFO is always used, or if there are separate procedures to write through the FIFO vs to write directly to the bus. Looking at Figure "11-1. EPI Block Diagram" in the TM4C1294KCPDT datasheet, it seems that the AHB bus can access the Host Bus interface either directly or through the FIFO. However I have no idea what's the software mechanisms to do either.
2. same question as #1 but for the read-FIFO.
3. I also don't understand the relationship / priority between reads and writes. obviously, at any given point in time the bus can only do one of the two (half-duplex). So, what happens if the EPI's write FIFO currently has some filled entries that "want" to go out into the external bus, but there is also a non-blocking ready underway... what will happen? reads, writes, errors...? To put the question more constructively: What would be a good approach that will allow me to both constantly dump a lot of data (writes) out of the bus, but also be monitoring any occasional incoming data that comes in from time to time?
4. a question that relates specifically to using the XFIFO mode: is it meaningless to have an address mapping to the MCU's RAM, considering that the concept of address does not exist in an external FIFO? If I map it anyway, will only one address be effective? for that matter, is it mandatory to have memory mapping to the MCU in order to use the EPI?
5. just to make sure: in XFIFO mode, the EPIBAUD register value is meaningless, right? considering that the rate of transaction is dictated by the FFULL & FEMPTY "flow control" signals.
I will probably have a few more questions, especially when I start using the DMA for this, but that's quite long already for now...
thanks!