|
按照例程 配置好模块和硬件以后,模块就运行起来了,读ID 自检什么的都通过了。但是DECAIRQ中断 不触发。标签端是一直在发的。
手动把IRQ引脚拉高进行读操作 可以读到数据,但是数据不是标签发送的数据。
希望路过的大佬 指导一下,或者提供一个排查的思路。
如下是对模块的配置。
- static dwt_config_t config = {
- 2, /* Channel number. */
- DWT_PRF_64M, /* Pulse repetition frequency. */
- DWT_PLEN_128, /* Preamble length. Used in TX only. */
- DWT_PAC8, /* Preamble acquisition chunk size. Used in RX only. */
- 5,//5, /* TX preamble code. Used in TX only. */
- 5,//5, /* RX preamble code. Used in RX only. */
- 0, /* 0 to use standard SFD, 1 to use non-standard SFD. */
- DWT_BR_6M8, /* Data rate. */
- DWT_PHRMODE_STD, /* PHY header mode. */
- (129 + 8 - 8) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
- };
复制代码- void APP_UWB_SoftInit(void)
- {
- port_DisableEXT_IRQ();
- reset_DW1000();
- // spi_set_rate_low();
- while(dwt_initialise(DWT_LOADUCODE)== DWT_ERROR)
- {
- rt_pin_write(LED_GREEN, PIN_LOW);
- rt_thread_mdelay(500);
- }
- // spi_set_rate_high();
- /* Configure DW1000. See NOTE 7 below. */
- dwt_configure(&config);
- dwt_setinterrupt(DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE |DWT_INT_RFTO | DWT_INT_RXPTO), 1);
- dwt_setrxantennadelay(RX_ANT_DLY);
- dwt_settxantennadelay(TX_ANT_DLY);
- dwt_setpreambledetecttimeout(PRE_TIMEOUT);
- dwt_configuresleep(DWT_PRESRV_SLEEP |DWT_CONFIG,DWT_WAKE_CS|DWT_SLP_EN);
- dwt_setrxtimeout(0);
- dwt_rxenable(DWT_START_RX_IMMEDIATE);
- uwb_states = UWB_READY;
- port_EnableEXT_IRQ();
- }
复制代码
|
|