Stuck at dwt_checkidlerc() when using DWM3000evb + Nucleo-F429ZI

Hi,

I am using DWM3000evb + Nucleo-F429ZI. The very first example with reading the device ID has worked fine. However, I am having trouble with further examples such as ss_twr, as the code gets stuck at the dwt_checkidlerc().

Does anyone has some clue for me please?

Hi @xman236 ,

How much is the SPI frequency ? In idle rc, dwm3000 can only work with 7MHz or lower. I usually use 2MHz to communicate with dwm3000 when it is in this mode.

Best Regard,
TN

Hi @leapslabs ,

I have the same problem and setup (DWM3000evb + Nucleo-F429ZI) as OP. How exactly can I see my SPI frequency and how can I adjust it?
I already tried by

  1. Altering the clock dividers:
    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV8;
    so that remaining frequency at APB1 peiphal clocks is below 7 MHz
  2. I changed line 76 from simple_tx.c from
    port_set_dw_ic_spi_fastrate(); to …slowrate();
    The declaration is as follows:
    /* @fn port_set_dw_ic_spi_slowrate
  • @brief set 4.5MHz
  •      note: hspi1 is clocked from 72MHz
    
  • */
    void port_set_dw_ic_spi_slowrate(void)
    {
    hcurrent_active_spi->Init.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16;
    HAL_SPI_Init(hcurrent_active_spi);
    }
    Which should then also bring down the frequency, but nothing worked so far.

Best regard
Alex

Yeah, I am using QM33120WDK1 and I’m getting caught with the same problem.