aspl 发表于 2010-11-5 11:50:44

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

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);//flushrx
        RF_CSN=1;


        SPI_WR_Reg(WRITE_REG + CONFIG, 0x3f);

    RF_CE =1;

xsh2005105326 发表于 2010-11-5 11:57:52

在我印象中,24L01只有1M和2M两种速率吧

laoma 发表于 2010-11-5 13:04:05

24L01+ 有二百五速率

aspl 发表于 2010-11-5 18:44:54

大家帮忙啊

chinmel 发表于 2010-12-11 18:04:18

我也是遇到这个问题 经过试验 把寄存器配置成0x2f通信就正常了
即 SPI_WR_Reg(WRITE_REG + RF_SETUP,0x2f);

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

benladn911 发表于 2010-12-11 21:46:35

就改那个寄存器就可以了,好好看下命令。

denglu 发表于 2010-12-11 23:52:46

mark

chinmel 发表于 2010-12-12 12:27:36

回复【6楼】benladn911 AVR猎手
-----------------------------------------------------------------------
手册里写的是这样的:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_604139H92GED.jpg
(原文件名:2.jpg)

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

chinmel 发表于 2010-12-12 12:33:25

我将发射端的设置成11后,将接收端的分别设置成00,01,10,发现都不能接收数据。而只有将接收端设置为11时菜能正常通信。
由此我相信 11 就是250kpbs(或者所谓的Reserved)的正确设置。
不过这样的话 手册似乎就有些问题了 而手册我是从官网下载的。

求解答~

benladn911 发表于 2010-12-12 12:57:09

NRFWriteReg(W_REGISTER+RF_SETUP,0x26);    // 数据传输率250Kbps,发射功率0dBm,低噪声放大器增益

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

chinmel 发表于 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位是保留位。。。

lzbpli 发表于 2011-8-27 09:36:10

mark

aishiqi1992 发表于 2011-9-1 16:51:14

回复【8楼】chinmel 朱宁
-----------------------------------------------------------------------

手册传上来!!

zplmcu 发表于 2011-9-7 23:51:38

可以通讯上的 我经常设置成0X26 一点问题没
不过有51单片机 测试32BYTE 250KBPS的时候 读取数据时间需要加长
其它的没什么区别

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

rfinchina2012 发表于 2011-9-26 20:01:29

楼主还得细心

laber_1911 发表于 2011-12-11 22:14:15

SPI_RW_Reg(W_REGISTER+RF_SETUP,(0x03<<1)|(0<<3)|(1<<5));//250Kbps,0dBm
--------------------------------------------
我使用上面的工作一直很正常。

catshit_one 发表于 2011-12-11 22:16:14

我也发现手册有这问题,求解答
页: [1]
查看完整版本: NRF24L01+ 1M和2M可以正常通信,为什么250kbps不行呢?以下是配置代码: