极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16377|回复: 9

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

[复制链接]
发表于 2014-4-23 21:04:01 | 显示全部楼层 |阅读模式
本帖最后由 fish 于 2014-4-23 21:54 编辑

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

然后我遇到一个问题有些奇怪。
我将2块si24r01分别接在uno和nano上,接口按下面接(不是接那个6pin的ICSP口,电源接3.3v,接地),用的库是Mirf
  1. * Pins:
  2. * Hardware SPI:
  3. * MISO -> 12
  4. * MOSI -> 11
  5. * SCK -> 13
  6. *
  7. * Configurable:
  8. * CE -> 8
  9. * 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寄存器测试正常却无法通信。

请指教~不胜感激~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-4-24 07:57:25 | 显示全部楼层
你既然已经知道2560接50、51、52,那么Mirf库文件里的11、12、13号引脚也要改成相应的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-24 12:53:56 | 显示全部楼层
leicheng 发表于 2014-4-24 07:57
你既然已经知道2560接50、51、52,那么Mirf库文件里的11、12、13号引脚也要改成相应的。

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

使用道具 举报

 楼主| 发表于 2014-4-24 13:00:09 | 显示全部楼层
leicheng 发表于 2014-4-24 07:57
你既然已经知道2560接50、51、52,那么Mirf库文件里的11、12、13号引脚也要改成相应的。

刚才把Mirf库的文件都找遍了,只有CE和CSN能改
回复 支持 反对

使用道具 举报

发表于 2014-4-24 14:51:46 | 显示全部楼层
mirf库是直接用的spi库来定义sck miso和mosi的,所以说你用2560会直接调用2560的spi库设置,应该不是这个问题
你的寄存器配置是怎么检测的?既然你都可以读取寄存器,说明spi管脚的定义是正确的。
我怀疑可能还是寄存器的问题,收发寄存器的地址在检查一下是否一致
回复 支持 反对

使用道具 举报

发表于 2014-4-24 17:23:25 | 显示全部楼层
fish 发表于 2014-4-24 13:00
刚才把Mirf库的文件都找遍了,只有CE和CSN能改

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

使用道具 举报

 楼主| 发表于 2014-4-25 18:04:15 | 显示全部楼层
其实问题很简单,我想复杂了。我在Arduino的官方论坛搜了下,发现不少人都在反映Mega板接nrf24l01不正常的问题,原因居然是3.3V口电压不足。。。有人并联电容升压,我直接接5V口了事了。。。谢谢楼上各位~
回复 支持 反对

使用道具 举报

发表于 2014-4-25 18:54:37 | 显示全部楼层
24l01很多奇怪症状都是3.3v供电问题,我之前也遇到过且发帖了,就是并个电容完事。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 20:53:25 | 显示全部楼层
leicheng 发表于 2014-4-24 17:23
不用找了,刚看了下Mirf库,它是用的Arduino硬件SPI,不是普通数字口定义的。另外,你前面已经证明了可以 ...

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

使用道具 举报

 楼主| 发表于 2014-5-1 21:22:58 | 显示全部楼层
leicheng 发表于 2014-4-24 17:23
不用找了,刚看了下Mirf库,它是用的Arduino硬件SPI,不是普通数字口定义的。另外,你前面已经证明了可以 ...

还真是接5v给烧了,下午刚好调试好能遥控小车了晚上si24r01就烧了= =
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 18:53 , Processed in 0.040898 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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