51uwb.cn

 找回密码
 立即注册
查看: 27350|回复: 7
打印 上一主题 下一主题

【提问】DWM1000模块 不能触发中断

[复制链接]

1

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
跳转到指定楼层
楼主
发表于 2020-7-22 09:38:13 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
按照例程 配置好模块和硬件以后,模块就运行起来了,读ID 自检什么的都通过了。但是DECAIRQ中断 不触发。标签端是一直在发的。
手动把IRQ引脚拉高进行读操作 可以读到数据,但是数据不是标签发送的数据。
希望路过的大佬 指导一下,或者提供一个排查的思路

如下是对模块的配置。
  1. static dwt_config_t config = {
  2.     2,               /* Channel number. */
  3.     DWT_PRF_64M,     /* Pulse repetition frequency. */
  4.    DWT_PLEN_128,   /* Preamble length. Used in TX only. */
  5.    DWT_PAC8,       /* Preamble acquisition chunk size. Used in RX only. */
  6.     5,//5,               /* TX preamble code. Used in TX only. */
  7.     5,//5,               /* RX preamble code. Used in RX only. */
  8.     0,               /* 0 to use standard SFD, 1 to use non-standard SFD. */
  9.     DWT_BR_6M8,     /* Data rate. */
  10.     DWT_PHRMODE_STD, /* PHY header mode. */
  11.     (129 + 8 - 8)  /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
  12. };
复制代码
  1. void APP_UWB_SoftInit(void)
  2. {
  3.     port_DisableEXT_IRQ();
  4.     reset_DW1000();

  5. //    spi_set_rate_low();
  6.     while(dwt_initialise(DWT_LOADUCODE)== DWT_ERROR)
  7.     {
  8.         rt_pin_write(LED_GREEN, PIN_LOW);
  9.         rt_thread_mdelay(500);
  10.     }
  11. //    spi_set_rate_high();
  12.     /* Configure DW1000. See NOTE 7 below. */
  13.     dwt_configure(&config);
  14.     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);
  15.     dwt_setrxantennadelay(RX_ANT_DLY);
  16.     dwt_settxantennadelay(TX_ANT_DLY);
  17.     dwt_setpreambledetecttimeout(PRE_TIMEOUT);
  18.     dwt_configuresleep(DWT_PRESRV_SLEEP |DWT_CONFIG,DWT_WAKE_CS|DWT_SLP_EN);
  19.     dwt_setrxtimeout(0);
  20.     dwt_rxenable(DWT_START_RX_IMMEDIATE);
  21.     uwb_states = UWB_READY;
  22.     port_EnableEXT_IRQ();
  23. }
复制代码




回复

使用道具 举报

1

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
沙发
 楼主| 发表于 2020-7-23 16:36:48 | 显示全部楼层
蓝点无限 发表于 2020-7-22 20:29
但是DECAIRQ中断 不触发。标签端是一直在发的。-->发送完成中断?
建议你中断单独一个一个enable,单独去 ...

读寄存器 SYS_STATUS_ID( 0x0F)得到的是 0x800002
也就是SYS_STATUS_SLP2INIT这个标志被置1了,
有没有中文资料描述一下这些寄存器的状态值呀?
回复

使用道具 举报

1

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
板凳
 楼主| 发表于 2020-7-29 14:04:03 | 显示全部楼层
过了这么久 回来结个帖。

问题找到了,SPI通信速率的问题。系统时钟168MHz, SPI的时钟总线给他4分频了。导致波特率上不去。
UWB在通信的时候对时间的要求很严格。大家在调试的时候要注意呀!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-5-6 02:04 , Processed in 0.012634 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表