DW1000 User Manual
© Decawave Ltd 2017
Version 2.12
Page 11 of 242
by the DW1000, and for a write transaction all octets output by the DW1000 should be ignored by the host
system.
Figure 1: SPI Read and Write Transactions
Note: The octets are physically presented on the SPI interface data lines with the high order bit sent first in
time.
SPI transactions are enveloped by the assertion of the active low chip select line, SPICSn. The high-to-low
assertion (low) of SPICSn initialises the SPI transaction handler so that the DW1000 interprets the next
octet(s) as a new transaction header. The low-to-high de-assertion of SPICSn ends the SPI transaction.
Typically a software SPI interface driver will include a parameter to indicate the length of the transaction, i.e.
how many octets to write to the device on the SPI bus, or how many bytes to read.
The SPI accessible parameters of the DW1000 are organised into 64 separate register file locations (detailed
in section 7
). Every SPI access transaction header includes a 6-bit register file ID
that identifies which register file is being accessed by the transaction. Sub-addressing within the selected
register file allows efficient access to all the parameters within the DW1000. Depending on the sub-
addressing being used, the transaction header is either one, two or three octets long. These three types of
transaction are described in the sub-sections below.
Note: when writing to any of the DW1000 registers care must be taken not to write extra data beyond the
published length of the selected register (see section 7
Figure 2 shows the fields within the one octet transaction header of a simple non-indexed SPI transaction.
Bit-6 is zero indicating that a sub-index is not present. The register (file) ID selects the top level addressing of
the DW1000 parameter or parameter block being accessed.
Transaction Header
Host should ignore
MOSI
MISO
Read
Transaction Header
Transaction Body
–
write data input by DW
1000
Host should ignore
Host should ignore
MOSI
MISO
Write
Transaction Body
–
read data output by DW
1000
ignored by DW
1000
SPICSn
SPICSn