搜索
bottom↓
回复: 17

NRF24L01+ 1M和2M可以正常通信,为什么250kbps不行呢?以下是配置代码:

[复制链接]

出0入0汤圆

发表于 2010-11-5 11:50:44 | 显示全部楼层 |阅读模式
RF_CE =0;
   
        Delay_us(100);
    SPI_Read_Buf(TX_ADDR, buf, TX_ADR_WIDTH+1);//debug 测试原来的本地地址:复位值是:0xE7 0xE7 0xE7 0xE7 0xE7
         
         SPI_WR_Reg(WRITE_REG + CONFIG, 0x02);
     Delay_us(100);

    SPI_WR_Reg(WRITE_REG + CONFIG, 0x3f);
                 
        SPI_WR_Reg(WRITE_REG + EN_AA, 0x00);            //  频道0自动        ACK应答允许       
        SPI_WR_Reg(WRITE_REG + EN_RXADDR, 0x01);   //  允许接收地址只有频道0,如果需要多频道可以参考Page21
        SPI_WR_Reg(WRITE_REG + SETUP_AW,  0x02);
        SPI_WR_Reg(WRITE_REG + RF_CH,  0x22);            //   设置信道工作为2.4GHZ,收发必须一致
        SPI_WR_Reg(WRITE_REG + SETUP_RETR,  0xf0);   //设置发射速率为250kpbs,发射功率为最大值0dB
        SPI_WR_Reg(WRITE_REG + RF_SETUP,  0x27);   //设置发射速率为250kpbs,发射功率为最大值0dB
        SPI_WR_Reg(WRITE_REG + NRFRegSTATUS,  0x0e);
                                                  

        SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);    // 写本地地址       
        SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址

        SPI_WR_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节
        SPI_WR_Reg(WRITE_REG + FIFO_STATUS, 0x11);


        RF_CSN=0;
        NRF24SPI_Send_Byte(0xe2);  //flush  rx
        RF_CSN=1;


        SPI_WR_Reg(WRITE_REG + CONFIG, 0x3f);

    RF_CE =1;

出0入0汤圆

发表于 2010-11-5 11:57:52 | 显示全部楼层
在我印象中,24L01只有1M和2M两种速率吧

出0入0汤圆

发表于 2010-11-5 13:04:05 | 显示全部楼层
24L01+ 有二百五速率

出0入0汤圆

 楼主| 发表于 2010-11-5 18:44:54 | 显示全部楼层
大家帮忙啊

出0入0汤圆

发表于 2010-12-11 18:04:18 | 显示全部楼层
我也是遇到这个问题 经过试验 把寄存器配置成0x2f通信就正常了
即 SPI_WR_Reg(WRITE_REG + RF_SETUP,  0x2f);

但是根据手册 这样的设置是保留的
期待大虾的解答

出0入0汤圆

发表于 2010-12-11 21:46:35 | 显示全部楼层
就改那个寄存器就可以了,好好看下命令。

出0入0汤圆

发表于 2010-12-11 23:52:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-12 12:27:36 | 显示全部楼层
回复【6楼】benladn911 AVR猎手
-----------------------------------------------------------------------
手册里写的是这样的:

(原文件名:2.jpg)

现在的问题是将[RF_DR_LOW,RF_DR_HIGH]设置成10时 发现并不能正常通信 (只能在上电后接收1次 以后就收不到了) 而1M或2M就完全正常
我将[RF_DR_LOW,RF_DR_HIGH]设置成11后测试(我想这应该就是250kpbs的模式了) 发现一切正常
昨晚在校园里做了距离测试 直线距离大约在900米左右吧 发射端放在6楼阳台的

出0入0汤圆

发表于 2010-12-12 12:33:25 | 显示全部楼层
我将发射端的[RF_DR_LOW,RF_DR_HIGH]设置成11后,将接收端的[RF_DR_LOW,RF_DR_HIGH]分别设置成00,01,10,发现都不能接收数据。而只有将接收端设置为11时菜能正常通信。
由此我相信 11 就是250kpbs(或者所谓的Reserved)的正确设置。
不过这样的话 手册似乎就有些问题了 而手册我是从官网下载的。

求解答~

出0入0汤圆

发表于 2010-12-12 12:57:09 | 显示全部楼层
NRFWriteReg(W_REGISTER+RF_SETUP,0x26);    // 数据传输率250Kbps,发射功率0dBm,低噪声放大器增益  

你再好好检查下吧,以上是我的设置。可以正常通信。两个模块的设置参数一直即可。

出0入0汤圆

发表于 2010-12-12 14:27:24 | 显示全部楼层
回复【10楼】benladn911 AVR猎手
-----------------------------------------------------------------------

奇了 我按照你说的设置 跟先前的结果一样 只能在上电时接收一次 之后就不行了
设置成这样 SPI_WR_Reg(WRITE_REG + RF_SETUP,  0x2f); 就一切正常了

另外 你的设置 NRFWriteReg(W_REGISTER+RF_SETUP,0x26); 与LZ的设置 SPI_WR_Reg(WRITE_REG + RF_SETUP,  0x27);
两者应该没有差别的。。。RF_SETUP的第0位是保留位。。。

出0入0汤圆

发表于 2011-8-27 09:36:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-1 16:51:14 | 显示全部楼层
回复【8楼】chinmel 朱宁
-----------------------------------------------------------------------

手册传上来!!

出0入0汤圆

发表于 2011-9-7 23:51:38 | 显示全部楼层
可以通讯上的 我经常设置成0X26 一点问题没
不过有51单片机 测试32BYTE 250KBPS的时候 读取数据时间需要加长
其它的没什么区别

没用到自动应带的 相关寄存器 都设置为0  或则 屏蔽掉 使用默认的设置就好

出0入0汤圆

发表于 2011-9-26 20:01:29 | 显示全部楼层
楼主还得细心

出0入0汤圆

发表于 2011-12-11 22:14:15 | 显示全部楼层
SPI_RW_Reg(W_REGISTER+RF_SETUP,(0x03<<1)|(0<<3)|(1<<5));//250Kbps,0dBm
--------------------------------------------
我使用上面的工作一直很正常。

出0入0汤圆

发表于 2011-12-11 22:16:14 | 显示全部楼层
我也发现手册有这问题,求解答
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 02:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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