37.3.3.4 ST
- Store Data from UPDI to
Data Space Using Indirect Addressing
The ST
instruction is used to store data from the UPDI PHY shift
register to the data space. The ST
instruction is used to store data
that are shifted serially into the PHY layer. The ST
instruction is
based on indirect addressing, which means that the Address Pointer in the UPDI needs to
be written before the data space. The automatic pointer post-increment operation is
supported and is useful when the ST
instruction is utilized with the
REPEAT
instruction. The ST
instruction is also
used to store the UPDI Address Pointer into the Pointer register. The maximum supported
size for storing address and data is 32 bits.
Figure 37-10 gives an example of an ST
instruction to the UPDI
Pointer register and the storage of regular data. A SYNCH character is sent before each
instruction. In both cases, an Acknowledge (ACK) is sent back by the UPDI if the
ST
instruction was successful.
- Set the PTR field in the
ST
instruction to signature0x2
. - Set the address size (Size A) field to the desired address size.
- After issuing the
ST
instruction, send Size A 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 signature0x0
to write to the address specified by the UPDI Pointer register. If the PTR field is set to0x1
, the UPDI pointer is automatically updated to the next address according to the data size Size B field of the instruction after the write is executed. - Set the Size B field in the instruction to the desired data size.
- After sending the
ST
instruction, send Size B bytes of data. - Wait for the ACK character, which signifies a successful write to the bus matrix.
When used with the REPEAT
instruction, 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 the REPEAT
instruction, the data frame of Size
B data bytes can be sent after each received ACK.