fish 发表于 2014-4-23 21:04:01

si24r01接在mega上无法和其它板通信

本帖最后由 fish 于 2014-4-23 21:54 编辑

小弟有2块si24r01,卖家说si24r01跟nrf24l01是一样的。
还有一块uno,一块nano,一块mega。

然后我遇到一个问题有些奇怪。
我将2块si24r01分别接在uno和nano上,接口按下面接(不是接那个6pin的ICSP口,电源接3.3v,接地),用的库是Mirf
* Pins:
* Hardware SPI:
* MISO -> 12
* MOSI -> 11
* SCK -> 13
*
* Configurable:
* CE -> 8
* CSN -> 7
这种情况下SPI寄存器测试正常,使用Mirf库附带的示例一块板作为client一块板作为server通信正常。这应该可以说明si24r01没问题吧?

不过,当我把其中1块si24r01接到mega上时,问题就出现了。
接口是参照Arduino官网上的信息接的,也就是接了50 51 52还有7 8(电源接3.3v,接地),SPI寄存器测试正常,可无论mega是作为client还是server,它都无法跟皆有si24r01的nano或uno通信,即使是接6pin的ICSP口也是一样SPI寄存器测试正常却无法通信。

请指教~不胜感激~

leicheng 发表于 2014-4-24 07:57:25

你既然已经知道2560接50、51、52,那么Mirf库文件里的11、12、13号引脚也要改成相应的。

fish 发表于 2014-4-24 12:53:56

leicheng 发表于 2014-4-24 07:57 static/image/common/back.gif
你既然已经知道2560接50、51、52,那么Mirf库文件里的11、12、13号引脚也要改成相应的。

在Mirf库中怎么改?我在1楼贴的那段代码其实是example里面的一段注释,CE和CSN可改,可MISO MOSI和SCK我找不到去哪改?请指教,谢谢~

fish 发表于 2014-4-24 13:00:09

leicheng 发表于 2014-4-24 07:57 static/image/common/back.gif
你既然已经知道2560接50、51、52,那么Mirf库文件里的11、12、13号引脚也要改成相应的。

刚才把Mirf库的文件都找遍了,只有CE和CSN能改

Domfecpedals 发表于 2014-4-24 14:51:46

mirf库是直接用的spi库来定义sck miso和mosi的,所以说你用2560会直接调用2560的spi库设置,应该不是这个问题
你的寄存器配置是怎么检测的?既然你都可以读取寄存器,说明spi管脚的定义是正确的。
我怀疑可能还是寄存器的问题,收发寄存器的地址在检查一下是否一致

leicheng 发表于 2014-4-24 17:23:25

fish 发表于 2014-4-24 13:00 static/image/common/back.gif
刚才把Mirf库的文件都找遍了,只有CE和CSN能改

不用找了,刚看了下Mirf库,它是用的Arduino硬件SPI,不是普通数字口定义的。另外,你前面已经证明了可以在其他板子之间通信,能读寄存器,说明基本设置是对的,可能个别需要调整,比如最大重发数,重发时间间隔、频道。不知道你的状态寄存器此刻是TX_DS、Max_RT还是RX_DR。
如果发送端是TX_DS:说明你已经接收到了应答包。接收端也应该可以读数据。
如果发送端是Max_RT:检测下周围是不是有干扰或者距离过大、地址匹配(应该不存在,之前已经验证)。然后调整下最大重发数,重发时间间隔、频道。
如果接收端不是RX_DR:那说明数据包还没收到,修改同上。
一般不建议用那种si24ro1,芯片不稳定。
PS:nrf24l01与Arduino配合在2ms内就能产生一次闭环通信。

fish 发表于 2014-4-25 18:04:15

其实问题很简单,我想复杂了。我在Arduino的官方论坛搜了下,发现不少人都在反映Mega板接nrf24l01不正常的问题,原因居然是3.3V口电压不足。。。有人并联电容升压,我直接接5V口了事了。。。谢谢楼上各位~

isilcala 发表于 2014-4-25 18:54:37

24l01很多奇怪症状都是3.3v供电问题,我之前也遇到过且发帖了,就是并个电容完事。

fish 发表于 2014-4-26 20:53:25

leicheng 发表于 2014-4-24 17:23 static/image/common/back.gif
不用找了,刚看了下Mirf库,它是用的Arduino硬件SPI,不是普通数字口定义的。另外,你前面已经证明了可以 ...

干扰应该没有。关于5v是否烧的问题,有人说烧有人说不烧,等烧了再说吧= =我在Arduino官方的论坛看到有些人在反映mega板的3.3v口电压问题,因为这个论坛是全球性的,不太可能那么多生产商都犯相同错误,应该是普遍问题吧。

fish 发表于 2014-5-1 21:22:58

leicheng 发表于 2014-4-24 17:23 static/image/common/back.gif
不用找了,刚看了下Mirf库,它是用的Arduino硬件SPI,不是普通数字口定义的。另外,你前面已经证明了可以 ...

还真是接5v给烧了,下午刚好调试好能遥控小车了晚上si24r01就烧了= =
页: [1]
查看完整版本: si24r01接在mega上无法和其它板通信