34.3.3.4 ST
- Store Data from Data Space Using Indirect
Addressing
The ST
instruction is used to store data that is shifted serially
into the PHY layer to the bus matrix address space. The ST
instruction
is based on indirect addressing, which means that the Address Pointer in the UPDI needs
to be written prior to bus matrix access. Automatic pointer post-increment operation is
supported, and is useful when the ST
instruction is used with
REPEAT
. ST
is also used to store the UPDI Address
Pointer into the Pointer register. The maximum supported size for storing address and
data is 16 bits.
ST
to the UPDI Pointer register and store of regular data. In both
cases, an Acknowledge (ACK) is sent back by the UPDI if the store
was successful and a SYNCH character is sent before each
instruction. To write the UPDI Pointer register, the following
procedure should be followed.- Set the PTR
field in the
ST
instruction to the signature 0x2 - Set the address size field SizeA to the desired address size
- After issuing
the
ST
instruction, send SizeA bytes of address data - Wait for the ACK character, which signifies a successful write to the Address register
- Set the PTR
field in the
ST
instruction to the signature 0x0 to write to the address specified by the UPDI Pointer register. If the PTR field is set to 0x1, the UPDI pointer is automatically updated to the next address according to the data size SizeD field of the instruction after the write is executed - Set the SizeD field in the instruction to the desired data size
- After sending
the
ST
instruction, send SizeD bytes of address data - Wait for the ACK character which signifies a successful write to the bus matrix
When used with the REPEAT
, it is recommended to set up the
address register with the start address for the block to be written and use the Pointer
Post Increment register to automatically increase the address for each repeat cycle.
When using REPEAT
, the data frame of SizeD data bytes can be sent after
each received ACK.