Increasing bitrate of DW3000 module

There are two dwm3000 modules on STM32, a tag and an anchor module for sending data. Their configuration is as follows;

static dwt_config_t config = {
    5, 
    DWT_PLEN_64, 
    DWT_PAC8, 
    9,  
    9,     
    0,       
    DWT_BR_6M8,   
    DWT_PHRMODE_EXT, 
    DWT_PHRRATE_DTA,  
    (64 + 1 + 8 - 8), 
    DWT_STS_MODE_OFF,
    DWT_STS_LEN_64, 
    DWT_PDOA_M0   
};

SPI is run at fast rate and SPI bit rate is set to 36 Mbps. It is set this way but when I do throughput test on oscilloscope, the difference between two data packets is 3.46 ms while 1024 frame buffer duration time is 568us. this means that the maximum throughput value is 2.2 Mbps. I also revised deca_spi.c api file with DMA and IT, but the throughput value did not increase.

Thanks for your help and advice.

At the risk of giving a completely unhelpful answer, have you considered using a different radio?

The DW3000 is designed for the accurate time stamping needed for range measurements, it’s not intended for high speed data transfer. It’s data transfer capabilities are more than sufficient for what’s needed for a ranging system but it’s a poor choice for high speed bulk data transmission. When I’ve needed to transfer lots of data I’ve used UWB to verify things are in range and then initiated a link over a different radio system for the actual data transfer. That way I can use a radio that is both faster for data and also includes all the protocol needed to handle dropped packets and retransmissions rather than having to re-invent that wheel over UWB.

1 Like