【求助】ATmega8 I/O 驱动NRF24L01收不到数据
做了个测电压用的无线模块,无线用的NRF24L01,现在AD完全正常,就是无线接收端收不到数据。流程如下:
发射端:AD0~3采集 电压信号=》 发射端通过串口输出采集到的电压数据=》 当0~3通道都采集完了通过无线发送数据包
接收端:设置接收模式 =》 如果接收缓存空,串口输出0x11
如果收到了,校验,校验失败输出0x22
问题:现在接收端输出的全是0x11.纠结死了,也发现不了问题。用示波器看每个引脚波形基本都符合时序,但是对不对不知道
调试平台: AVR STUDIO4 + GCC
代码如下:
写的易读性还是有的,应该很容易看懂每部分,注释也很清楚
T-ctrl为发射端代码
T-rec为接收端代码
由于是做好的PCB,所以用单片机自带的SPI程序我用不上呀...谢谢各位
5V|PD6-CSN|PB0-MOSI|PB2-IRQ
GND| PD5-CE |PD7-SCK | PB1-MISO SPI_RW里
if(PINB&0x10)temp++; // capture current MISO bit
将PINB&0x10改为Read_24L01_MISO,试试
再问一下,楼主用哪个引脚接的MISO? lcw_swust 发表于 2013-1-25 13:30 static/image/common/back.gif
SPI_RW里
if(PINB&0x10)temp++; // capture current MISO bit
将PINB&0x10改为Rea ...
你好,我用的PB1接的MISO,谢谢~我改改试试 lcw_swust 发表于 2013-1-25 13:30 static/image/common/back.gif
SPI_RW里
if(PINB&0x10)temp++; // capture current MISO bit
将PINB&0x10改为Rea ...
你好,我看了下,那里确实有问题。我又改了下,但发现还是不行,情况跟原来一样... 在楼主的程序里,发送端init_NRF24L01里将NRF24L01配置为了接收模式,
在nRF24L01_TxPacket里将NRF24L01配置为发送模式,貌似这样不对,
切换接收与发送模式最好是这样:
掉电(PWR_UP=0)->需要的模式->上电(PWR_UP=1)
此外,楼主的发送程序里nRF24L01_TxPacket之后马上就SPI_RW_Reg,这样不太好,应该等待发送完毕再进行其它操作
此外,建议楼主监测STATUS的值 lcw_swust 发表于 2013-1-26 09:24 static/image/common/back.gif
在楼主的程序里,发送端init_NRF24L01里将NRF24L01配置为了接收模式,
在nRF24L01_TxPacket里将NRF24L01配 ...
你好,根据你的提示,并参考原厂使用文档,做了如下更改:
1.在init_NRF24L01 里分别配置发射端和接受端的寄存器
2.nRF24L01_TxPacket 后 延时10ms
3.根据 上传的使用文档,注销了init_NRF24L01 里的
Hign_24L01_CSN; // Spi disable
Low_24L01_SCK; // Spi clock line init high
但是还是不行,问题跟原来一样。
上传更改后的程序如下:
gzc581 发表于 2013-1-26 11:24 static/image/common/back.gif
你好,根据你的提示,并参考原厂使用文档,做了如下更改:
1.在init_NRF24L01 里分别配置发射端和接受端 ...
对楼主的建议:
1.电路贴出来看看,注意NRF24L01的工作电压。
2.检查电路看引脚是否正确连接,比如程序里这样写
while(1){Low_24L01_CE;delayms(1000);Hign_24L01_CE;delayms(1000);}
然后用万用表去测量NRF24L01的CE脚是否受程序控制产生高低电平,并测量具体的电压值
将每个脚都测试一下。
3.我对MISO脚表示强烈怀疑,楼主说 改与不改情况一样。
那就请楼主做个测试,将MISO脚接到GND,调用SPI_RW函数,看返回值是多少;
然后将MISO脚接到VCC,调用SPI_RW函数,看返回值是多少;
4.检查NRF24L01是否正常工作,可以用这种办法:
设置NRF24L01配置寄存器(CONFIG)(或其它寄存器)为某值,然后读取该寄存的值,看是否与设置值相同,
再将设置该寄存器为另一个值,再次将其读出看是否为设置值。
5.不管接收端还是发送端,CE脚都可以不接单片机直接置为高电平。(以免程序误操作) lcw_swust 发表于 2013-1-26 12:04 static/image/common/back.gif
对楼主的建议:
1.电路贴出来看看,注意NRF24L01的工作电压。
2.检查电路看引脚是否正确连接,比如程序里 ...
首先真的很感谢你一直都对我的问题有回复,并提出很多有用的建议,要是换了别人可能早就不理我了,非常感激
1.电路图如下:收发的无线连接都一样,用wirless表示,电压检测正常
2.使用示波器检查收发每个引脚,都很正常
3.调用SPI_RW, 将内容改成如果收到高电平则串口输出0x55,低电平0x66,拔掉无线模块,直接用导线将VCC , GND 引到PB1上,串口很快输出0x55 / 0x66正常
4.寄存器用串口检测,读写正常
5.将CE置高,注释掉所有CE置高低操作,电压表确认。仍旧不行.....
6.PB1在高阻和弱上拉都试过
初始化里注释掉的又恢复了也都试过....
还是不行.....都快崩溃了,真纠结
NRF24L01P 的enhanced shockburst有crc校验功能,可以替换你的模块试试 gzc581 发表于 2013-1-27 02:29 static/image/common/back.gif
首先真的很感谢你一直都对我的问题有回复,并提出很多有用的建议,要是换了别人可能早就不理我了,非常感 ...
楼主半夜回贴,令人佩服
关于第3点,楼主可能没有理解,用程序来说,我是要楼主这样试:
while(1)
{
UART_Putchar(SPI_RW());
delayms(500);
} lcw_swust 发表于 2013-1-27 09:23 static/image/common/back.gif
楼主半夜回贴,令人佩服
关于第3点,楼主可能没有理解,用程序来说,我是要楼主这样试:
while(1)
你好,作如下更改:
UART_Putchar(SPI_RW(0x55));
_delay_ms(500);
接GND输出的是0x55;
由于是
PINB&=0B11111101
PORTB|=0B00000010弱上拉
悬空或是接3.3V都是0XFF
谢谢 lcw_swust 发表于 2013-1-27 09:23 static/image/common/back.gif
楼主半夜回贴,令人佩服
关于第3点,楼主可能没有理解,用程序来说,我是要楼主这样试:
while(1)
刚才用示波器看了一下,其余都很正常,就是发射和接受的MISO都出现了三角波...
另外发射端的MOSI/MISO在空闲的时候居然是高电平....
gzc581 发表于 2013-1-27 09:50 static/image/common/back.gif
你好,作如下更改:
UART_Putchar(SPI_RW(0x55));
接GND输出的是0x55;
楼主觉得对吗?应该是0X00才对吧,再检查下电路看看 lcw_swust 发表于 2013-1-27 13:43 static/image/common/back.gif
接GND输出的是0x55;
楼主觉得对吗?应该是0X00才对吧,再检查下电路看看
我擦,奇了怪了....昨天调程序睡太晚了,今天早上迷迷糊糊按你说的试了下居然输出了0x55......现在再试全是0x00呀.......难道早上我做梦做的这个测试吗.... lcw_swust 发表于 2013-1-27 13:43 static/image/common/back.gif
接GND输出的是0x55;
楼主觉得对吗?应该是0X00才对吧,再检查下电路看看
这是pcb和最新的程序 gzc581 发表于 2013-1-27 16:29 static/image/common/back.gif
这是pcb和最新的程序
这么看来,我也没办法,给你个51单片机程序参考一下
lcw_swust 发表于 2013-1-28 10:41 static/image/common/back.gif
这么看来,我也没办法,给你个51单片机程序参考一下
http://www.amobbs.com/thread-5518049-1-1.html
虽然没有用到您的方法,但是参照原来的帖子还是解决了,非常感谢您前几天的帮助 gzc581 发表于 2013-1-28 23:17 static/image/common/back.gif
http://www.amobbs.com/thread-5518049-1-1.html
虽然没有用到您的方法,但是参照原来的帖子还是解决了 ...
好的,恭喜你 问题算是解决了居然是硬件问题换了一块板 已经调通 可惜原来那块板的硬件问题还没找到!!! gzc581 发表于 2013-1-28 23:17 static/image/common/back.gif
http://www.amobbs.com/thread-5518049-1-1.html
虽然没有用到您的方法,但是参照原来的帖子还是解决了 ...
有联系方式不,我也遇见和你一样的问题了。想找你讨论下
mioc 发表于 2013-10-26 20:31 static/image/common/back.gif
有联系方式不,我也遇见和你一样的问题了。想找你讨论下
要不 你联系我吧。540317741 你还在看你的帖子不? 有用MEGA8硬件spi写的吗 ?
页:
[1]