SPI frequency programming


I am currently trying to pull data off the Trek1000 to a seperate controller via SPI through the J6 connector. But the DW1000s SPI clock is running at 20Mhz and this is out of the range of our device.

I am wondering if it is possible to lower the SPI clock speed of the device?


The DW1000 is an SPI slave and doesn’t set the SPI speed. It will run down to almost DC.
The processor running the SPI bus controls the speed.


what are you trying to do? the STM micro on-board EVB1000 communicates with the DW1000, J6 connector can be used to communicate with DW1000 with a different external micro, but in this case S2 should be put to OFF. Are you trying to communicate with ARM application running on the STM micro or trying to control DW1000 with own application running on a different device?

I am trying to get the ranging data off the dw1000 so i can use it on an external micro controller

Do you want to control the radio fully and run the ranging exchange yourself or just get the end result numbers?

If you want the end result then the best solution would be to modify the STM code to output the data you need on a serial port.
If you want to drive the entire thing yourself then you need to bypass the STM and do everything yourself, possibly by including the decawave supplied libraries in your own code or by writing your own device drivers.

You can’t just listen to the data passing between the DW1000 and the processor running it and get the raw range measurements, the DW1000 doesn’t output those, they are calculated by the processor. You could in theory calculate them from the data being passed on the bus but by the time you’ve built a system capable of decoding and processing the messages you may as well just control the DW1000 yourself.