Incorrect Device ID read from DWM3000

I am testing a new PCB that uses the DWM3000 module. I have the SPI interface working to the extent that I see signal activity in CLK, MOSI, MISO, and CS. My initial test is to read the device ID from the Module, and it is returning an incorrect value.

What I see on the MISO bus is:
0x00, 0x02, 0x03, 0xCA
I expect to see is:
0x02, 0x03, 0xCA, 0xDE

I would appreciate any pointers as to why this is happening.

Just after I posted this question I found the issue. Reading the DW3000 user manual I noticed the chip select must be low for the whole transaction, my driver was raising it after the header and lowering it again for the read. I patched the driver, and it works just as expected, just need to make a cleaner solution that my testing patch.

3 Likes

Any mismatch here can result in corrupted or incorrect data being read. Also, ensure that the chip-select line (CS) is properly managed to trigger the correct data transmission.

Another angle to consider is the use of an identity validation API to authenticate device IDs before sending them through SPI. This could help ensure that the ID you’re reading is valid and hasn’t been altered during transmission.