51uwb.cn

 找回密码
 立即注册
查看: 27156|回复: 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. }
复制代码




回复

使用道具 举报

35

主题

941

帖子

3912

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3912
发表于 2020-7-22 20:29:44 | 显示全部楼层
但是DECAIRQ中断 不触发。标签端是一直在发的。-->发送完成中断?
建议你中断单独一个一个enable,单独去排查问题,我看你程序enable了一大堆
回复

使用道具 举报

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在通信的时候对时间的要求很严格。大家在调试的时候要注意呀!
回复

使用道具 举报

1

主题

6

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2020-8-20 11:26:39 | 显示全部楼层
说的好,我也注意下
回复

使用道具 举报

0

主题

2

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2020-10-24 11:49:25 | 显示全部楼层
学长啊啊啊 发表于 2020-7-29 14:04
过了这么久 回来结个帖。

问题找到了,SPI通信速率的问题。系统时钟168MHz, SPI的时钟总线给他4分频了。 ...

你好,可以具体介绍下SPI通信速率和系统时钟匹配上的具体代码配置吗,我最近在做DW1000收发实验的时候也遇到了中断的问题,在主函数里面循环接收可以收到数据,但是设置了回调函数以后就始终进不去
回复

使用道具 举报

0

主题

8

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2022-7-14 14:39:43 | 显示全部楼层
我也遇到了,,求解。。。
回复

使用道具 举报

0

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-8-8 03:06:11 | 显示全部楼层
这个DW1000的 SPI 通信要求真是不一般
回复

使用道具 举报

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

本版积分规则

bphero Inc.  

GMT+8, 2024-3-29 18:03 , Processed in 0.017647 second(s), 4 queries , File On.

Powered by Discuz! X3.3

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

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