User Manual

Apollo3 Blue Datasheet
DS-A3-0p9p1 Page 263 of 909 2019 Ambiq Micro, Inc.
All rights reserved.
Figure 17. Direct Mode 5-byte Write Transfer
Reading from the REG_IOM_FIFOPOP register will perform a POP operation, return 4 bytes of data and
advance the internal read FIFO pointer by 4 bytes. Any unused bytes within the read data will be filled with
0’s and aligned to a word boundary at the end of the transaction. An example of a 5 byte read operation is
shown below.
Figure 18. Direct Mode 5-byte Read
The IOM also supports a non-destructive POP mechanism to prevent unintended POP events from
occurring. If the REG_IOM_FIFOCTRL.POPWR field is active (1), a write to the REG_IOM_FIFOPOP
register will be required in order to complete the POP event. Reads will return the current data.
An active transaction will be paced by data availability and will hold the clock low if there is not enough
data to continue write operations, or if the read FIFO is full during read operations. This wait condition is
indicated when the REG_IOM_CMDSTAT.CMDSTAT field is 0x6. Once new data or FIFO locations are
present, the command will continue operation automatically.
FIFOLOCATION0
FIFOLOCATION1
FIFOLOCATION2
FIFOLOCATION3
FIFOLOCATION4
FIFOLOCATION5
FIFOLOCATION6
FIFOLOCATION7
FIFOLOCATION8
FIFOLOCATION9
FIFOLOCATION10
…………………..
FIFOLOCATION28
FIFOLOCATION29
FIFOLOCATION30
FIFOLOCATION31
FIFOLOCATION10
word0
word1
word7
word2
FIFOPTR
21
43
65
87
A9
CB
ED
0F
FIFOLOCATION8
FIFOLOCATION9
FIFOLOCATION10
……………………..
FIFOLOCATION28
FIFOLOCATION29
FIFOLOCATION30
FIFOLOCATION31
FIFOLOCATION10
word0
word1
word7
word2
FIFOPTR
WRITEFIFOINITSTATE
WRITEFIFOAFTERDI REC TMODEPUSHOF2
WORDS(0x87654321,0x0FEDCBA9)
21
43
65
87
9A
CB
ED
0F
FIFOLOCATION8
FIFOLOCATION9
FIFOLOCATION10
……… ……………..
FIFOLOCATION28
FIFOLOCATION29
FIFOLOCATION30
FIFOLOCATION31
FIFOLOCATION10
word0
word1
word7
word2
FIFOPTR
WRITEFIFOAFTERWRITEOPERATIONOF5BYTES
CMDTO WRITE5BYTES(LSBMODE=0)
BINARY:...<ADDR/OFFSET>..0010_0001_0100_0011_0110_0101_1000_0111_1010_1001<END>
DISCARDED
BYTES
FIFOLOCATION0
FIFOLOCATION1
FIFOLOCATION2
FIFOLOCATION3
FIFOLOCATION4
FIFOLOCATION5
FIFOLOCATION6
FIFOLOCATION7
FIFOLOCATION8
FIFOLOCATION9
FIFOLOCATION10
…………………..
FIFOLOCATION28
FIFOLOCATION29
FIFOLOCATION30
FIFOLOCATION31
FIFOLOCATION10
word0
word1
word7
word2
FIFOPTR
21
43
65
87
A9
0
0
0
FIFOLOCATION8
FIFOLOCATION9
FIFOLOCATION10
……………………..
FIFOLOCATION28
FIFOLOCATION29
FIFOLOCATION30
FIFOLOCATION31
FIFOLOCATION10
word0
word1
word7
word2
FIFOPTR
READFIFOINITSTATE
READFIFOAFTER5BYTEREADISPERFORMED
(0x87654321,0x000000A9)
21
43
65
87
9A
0
0
0
FIFOLOCATION8
FIFOLOCATION9
FIFOLOCATION10
……… ……………..
FIFOLOCATION28
FIFOLOCATION29
FIFOLOCATION30
FIFOLOCATION31
FIFOLOCATION10
word0
word1
word7
word2
FIFOPTR
READFIFODATAVIEW
CMDTOREAD5BYTES(LS BMODE=0)
BINARY:0010_0001_0100_0011_0110_0101_1000_0111_1010_1001<END>
FILLEDBYTES