ny2000214 发表于 2009-5-3 16:28:20

求助,NRF2401打死收不到数据

折腾来折腾去,NRF2401接收端(DR1)硬是一点反应都没有

发送和接收的配置字除最后一位,其它都是一样的,用的MCU是STM32,直接用它的SPI方式
NRF2401用的ShockBurst模式。
想确认一下,发送端的ANT1,ANT2有方波输出是否就说明发送正常(现在发送端是有方波输出的),接收板换上发送程序也可以看到方波

但换接收的话就一点反应都没,甚至连一点误码干扰之类的东西都收不到,一点都没。用的是淘宝上的9元的NRF2401模块。
请教DX们该怎么检查。

laoye 发表于 2009-5-3 16:45:42

两端的配置信息是不是全都一样,,发生端数据是有了的,,
就看DR脚,有波形就行哈

ny2000214 发表于 2009-5-3 17:31:15

配置一样啊,除了最后一位,决定发送接收那个,那个应该没关系吧,地址用的 0xCCCCCC
其他的配置都是坛子里的网友的程序。

DR脚这两天都被俺望穿了。。。硬是静悄悄的低电平,连个误动作都没,受不了了。。。

对了,想确认下发送端的ANT1脚有方波输出可以说明发送没问题么?

ny2000214 发表于 2009-5-4 14:30:17

顶一下,沉太快
有经验的兄弟给点建议啊

fandipeng412 发表于 2009-5-4 15:49:49

过些天才能玩那个东西,现在还不了解,帮不了

ny2000214 发表于 2009-5-5 20:56:28

多谢各位,现在DR1脚有波形了,但我还没尝试去读它,读不到,所以DR1一直是高的,因为数据没读出来

因为现在情况是这样,我直接用STM32的SPI与NRF2401相接,SPI模式设为MASTER
对NRF2401写数据时直接就写就OK了,SCK与MOSI会自相配合将数据写入。

但是当NRF2401收到数据是,该怎么去读取呢?
MCU的SPI始终作为MASTE的,那数据该从MISO这个脚送进来,可是要想让NRF2401送数据,必需要有CLK时钟,也就是SCK这个脚咯。
但不晓得怎么让SCK这个引脚产生时钟,就STM32看来,读数据用SPI_I2S_ReceiveData(SPI2); 但这句话只是 return SPIx->DR;
也就是这只是读取接收缓冲区,通过示波器观察,执行这句话时SCK并没有产生CLK时钟,所以数据自然也就没出来。或者说这句话的功能根本就是说数据已经接收到了,存在缓冲区里,执行这句话不过是去把数据读过来。所以现在不明白作为MASTER的MCU怎么让NRF2401将数据交出来,难道说这时的CLK需要软件模拟SPI?不能用硬件来?

小弟概念不清,还请各兄弟指点

fuel2002 发表于 2009-5-28 20:55:20

我才遇到一个问题,有意思,A,B两块板子,两个2401模块,当全部插在B板上做自发自收,没问题。

A板子插一块,发送数据,B板插一块收也可以,但是A板子收,B板发,就不行,A板打死没有DR,强行用一个导线将DR1碰一下VCC,能收到中断,但数据为0(这实际上说明A板没收到东西),这怎么解释,我甚至在A板的DR脚上做了个10k的上拉电阻,还是不行。

jackielau 发表于 2009-6-9 15:56:19

【6楼】 ny2000214
我对SPI总线不熟悉,所以瞎说几句,只是参考!!
我猜:是不是发送之后就要把SPI设为从机啊?这样就可以有数据进来了!!

zlcnkkm 发表于 2009-7-27 02:03:12

不清楚,不过记忆中貌似2401一定要是MASTER

yuanlaifeng 发表于 2010-8-25 00:45:42

mark
页: [1]
查看完整版本: 求助,NRF2401打死收不到数据