
DW1000 User Manual
© Decawave Ltd 2017
Version 2.12
Page 60 of 242
The SR (“Special Register”) is a 32-bit segment of OTP that is directly readable via the register interface upon
power up. To programme the SR register follow the normal OTP programming method but set the OTP
address to 0x400. The value of the SR register can be directly read back at address
Table 11: OTP_SRDAT Register
Bit
Function
31:5
Reserved. Defaults to all “0”. If programming the OTP_SRDATA register these bits must be set to “0”
4:3
SPI_SR_EN[1:0]
. Set to “01” to enable bits [1:0] to be used instead of GPIO[6:5] boot
strapping. If set, this will disable the external selection of SPI mode via GPIO6 and 5.
2
Reserved. Defaults to
“0”. If programming the OTP_SRDATA register these bits must be set to “0”
1
SPI_SR_PH
. Set SPI Phase mode to this value if bits [4:3] are set to “01”
0
SPI_SR_POL
. Set SPI Polarity mode to this value if bits [4:3] are set to “01”
6.3.2 Programming a value into OTP memory
The programming of the OTP requires a number of setup steps to be carried out in sequence. Optimal
programming requires that the VDDIO pin be driven to 3.8 V (or the VDDIOA pin if access to VDDIO is not
available). The table below outlines the programming steps to place the OTP into its programming state and
to programme a single location.
Table 12: Register accesses required to program the OTP
Step
Number
Instruction
Register
Address
Data
Length
(Bytes)
Data
(Write/Read)
Configure OTP for Programming – Stage 1:
C-1
Write Sub-Register
0x36:00 (PMSC_CTRL0)
1
0x01
C-2
Write Sub-Register
0x2D:07 (O1)
1
0x03
C-3
Write Sub-Register
0x2D:00 (OTP_WDAT)
2
0x9220
C-4
Write Sub-Register
0x2D:06 (OTP_CTRL)
1
0x08
Wait 1ms
C-5
Write Sub-Register
0x2D.07 (O1)
1
0x02
C-6
Write Sub-Register
0x2D:06 (OTP_CTRL)
1
0x88
C-7
Write Sub-Register
0x2D:06 (OTP_CTRL)
1
0x80
C-8
Write Sub-Register
0x2D:06 (OTP_CTRL)
1
0x00
Configure OTP for Programming – Stage 2:
C-9
Write Sub-Register
0x2D:07 (O1)
1
0x05
C-10
Write Sub-Register
0x2D:00 (OTP_WDAT)
2
0x000E
C-11
Write Sub-Register
0x2D:06 (OTP_CTRL)
1
0x08
Wait 1ms
C-12
Write Sub-Register
0x2D.07 (O1)
1
0x04
C-13
Write Sub-Register
0x2D:06 (OTP_CTRL)
1
0x88
C-14
Write Sub-Register
0x2D:06 (OTP_CTRL)
1
0x80