to continue operation. In addition, write data can also be stored in the WFIFO to allow multiple writes
with no stalls.
Note:
Both the
WTAV
bit field in the
EPIWFIFOCNT
register and the
WBUSY
bit in the
EPISTAT
register must be polled to determine if there is a current write transaction from the WFIFO.
If both of these bits are clear, then a new bus access may begin.
Main read and write operations can be performed in subsets of the range 0x6000.0000 to
0xDFFF.FFFF. A read from an address mapped location uses the offset and size to control the
address and size of the external operation. When performing a multi-value load, the read is done
as a burst (when available) to maximize performance. A write to an address mapped location uses
the offset and size to control the address and size of the external operation. When performing a
multi-value store, the write is done as a burst (when available) to maximize performance.
11.3.1
Master Access to EPI
The following lists the Bus Masters which have access to the EPI:
■ CPU
■ µDMA
11.3.2
Non-Blocking Reads
The EPI Controller supports a special kind of read called a non-blocking read, also referred to as a
posted read. Where a normal read stalls the processor or μDMA until the data is returned, a
non-blocking read is performed in the background.
A non-blocking read is configured by writing the start address into a
EPIRADDRn
register, the size
per transaction into a
EPIRSIZEn
register, and then the count of operations into a
EPIRPSTDn
register. After each read is completed, the result is written into the NBRFIFO and the
EPIRADDRn
register is incremented by the size (1, 2, or 4). The three most significant bits of
EPIRADDRn
register
are only relevant in the Host Bus multi-chip select mode when they are used to enable the different
chip selects.
If the NBRFIFO is filled, then the reads pause until space is made available. The NBRFIFO can be
configured to interrupt the processor or trigger the μDMA based on fullness using the
EPIFIFOLVL
register. By using the trigger/interrupt method, the μDMA (or processor) can keep space available
in the NBRFIFO and allow the reads to continue unimpeded.
When performing non-blocking reads, the SDRAM controller issues two additional read transactions
after the burst request is terminated. The data for these additional transfers is discarded. This
situation is transparent to the user other than the additional EPI bus activity and can safely be
ignored.
Two non-blocking read register sets are available to allow sequencing and ping-pong use. When
one completes, the other then activates. So, for example, if 20 words are to be read from 0x100
and 10 words from 0x200, the
EPIRPSTD0
register can be set up with the read from 0x100 (with a
count of 20), and the
EPIRPSTD1
register can be set up with the read from 0x200 (with a count of
10). When
EPIRPSTD0
finishes (count goes to 0), the
EPIRPSTD1
register then starts its operation.
The NBRFIFO has then passed 30 values. When used with the μDMA, it may transfer 30 values
(simple sequence), or the primary/alternate model may be used to handle the first 20 in one way
and the second 10 in another. It is also possible to reload the
EPIRPSTD0
register when it is finished
(and the
EPIRPSTD1
register is active); thereby, keeping the interface constantly busy.
To cancel a non-blocking read, the
EPIRPSTDn
register is cleared. Care must be taken, however
if the register set was active to drain away any values read into the NBRFIFO and ensure that any
read in progress is allowed to complete.
819
June 18, 2014
Texas Instruments-Production Data
Tiva
™
TM4C1294NCPDT Microcontroller