【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【呕血的心得,结贴】nRF24L01调试的问题,大神乱入

共5条 1/1 1 跳转至

【呕血的心得,结贴】nRF24L01调试的问题,大神乱入

高工
2014-04-08 00:47:24    评分

今天调试了一天的接收,没进展。

是用遥控器和配套的nRF24L01带天线的子卡。

飞行器发送部分:

设置成RF频点是40,通道0发送,禁止应答信号。

并一直发送数据

观察发送端的STATUS为0x2E,FIFO_STATUS为0x11

理论上是在不断发送数据了。

遥控器接收配置与飞行器一致,能够对nRF24L01进行检测

相信SPI2的配置应该没有问题。

但是接收端遥控器上一直无法得到有效的接收IRQ信号,接收数据的程序卡死在检测IRQ上

后来,读取CD的状态为0x00

当时就凌乱了,接收端遥控器没有检测到射频范围内的信号......

求大神指点一二。

【更新1】状况出在这里:http://forum.eepw.com.cn/thread/249735/2#11

【更新2】呕血的心得:http://forum.eepw.com.cn/thread/249735/2#12



高工
2014-04-08 12:18:28    评分
2楼

等串口工具回来吧

把所有寄存器信息全打印出来,看看那里有问题。


高工
2014-04-10 00:33:38    评分
3楼

nRF24L01调试有2天了,还是卡在接收方中断信号无法正常输出的问题上。

完成nRF20L01的配置后,再读取回来

看从串口工具上撸下来的信息

飞行器(发送)端:

遥控器(接收)端:

串口工具打印的信息表明

nRF24L01的配置信息已经完全写进器件,也就是说配置成功

并且能够检测到nRF24L01的在线情况

说明SPI的设置没有问题

两端的配置也完全匹配。

值得注意的是,遥控器(接收)端,已经能够检测到对应通道的射频信号(CD is 0x01

但是遥控器(接收)端死活不产生中断(STATUS is 0x0e)

头大啊......


高工
2014-04-13 23:32:05    评分
4楼

整整花了4天时间在调试这个小小的模块上面

这么个小东西,真的不能小瞧啊

虽然花了这么多时间,但是至今依然无法得到令自己满意的结果

不过基本的通信,问题是解决了

这里简单分享一下个人的调试心得。

1、寄存器的配置

一定要仔细核对,最好是用串口或者LCD显示出来,要不然根本不知道配置是否成功。

当然,收发双方的配置要对应一致才行。

2、延时

这次又栽倒在延时函数上,不是延时函数不精确,而是数据手册带来的误导

数据手册上CE端拉高,延迟130us后就可以完成发射/接收,发射模式和接收模式切换保证在1.5ms以上

其实亲测这个时间根本不行

整整2天被困扰在延时函数上,模块总是能够检测到对应频点通道射频信号,但是无法接收到数据

后来一咬牙,所有延时全部提升至ms级,神马问题立即烟消云散

baidu了一下,居然有几位哥们儿和我情况一样,这里给跪了......

得特西特呀,你叫我该怎么办?

3、调试

这里借鉴了互联网的一些高手的经验,个人觉得很有用,这里重复提一下。

以调试通道0的通信为例。


先调试发射端,禁用自动应答、禁用接收、禁用自动重发,然后在主函数里面重复发送数据

这个时候,STATUS应该返回0x2eFIFO_STATUS应该返回0x11


发射端在上述条件下不断发送数据,同时进行接收端的调试

接收端禁用通道0自动应答、使能接收通道0

在这种情况下,接收端的STATUS应该返回0x40


调试到这里,基本上算是通了,但是这种没有  握手?应答? 的通信,是不可靠、不安全的通信

所以最终把上面调试时候禁用的功能再打开,基本上没有太大问题了的。

4、不要过分相信IDE的复位运行功能,要多尝试下载后,断电复位运行。


基本功能实现了,现在存在的问题是接收16个字节以上的数据就开始乱码,最新进展请关注:http://forum.eepw.com.cn/thread/249382/1

不日将更新

最近实在是不想调试这货了,似乎有点疲劳了,想先放一段时间。


是不是应该直接移植开源代码,还是自己慢慢模仿着写下去?

这个才是最大的问题。


高工
2014-04-30 22:59:56    评分
5楼
指教谈不上 一学电子深似海 大家共同学习

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]