极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 50339|回复: 9

新手求助,如何用arduino连接两个SPI设备

[复制链接]
发表于 2014-7-15 23:41:54 | 显示全部楼层 |阅读模式
本人新手,还在学习阶段,想用 arduino+nrf24l01+enc28j60 搭建一个简单的网关,nrf24l01接收信号,用 enc28j60 传到局域网,但问题是nrf24l01和enc28j60 这两个模块与arduino交互都用SPI协议,如果我想用arduino自带的lib开发,只能选择nrf24l01和enc28j60其一,因为他们公用一个定义(pins_arduino.h)   
static const uint8_t SS   = 10;
static const uint8_t MOSI = 11;
static const uint8_t MISO = 12;
static const uint8_t SCK  = 13
  所以解决方式就是选择nrf24l01不用arduino自带的lib开发,而是用另外的IO口自己开发,是这样吗?
回复

使用道具 举报

发表于 2014-7-16 01:06:36 | 显示全部楼层
SPI通讯是主从通讯,这里的应用 arduino做主机,nrf24l01和enc28j60做从机。
硬件SPI的MOSI,MISO,SCK是可以复用的。如何区分是与哪个设备通信呢?这里就需要SS了。
ss是片选,想要与哪个设备通信,就选中哪个设备。

针对你的需求,arduino要设置2个ss信号,一个给nrf24l01,一个给enc28j60。然后设备初始化的时候,按实际的SS配置管脚就行了。
回复 支持 反对

使用道具 举报

发表于 2014-7-16 07:09:09 | 显示全部楼层
spi本来就是并联使用的,具体呵那个通讯决定在ss片选,因此,把ss扯开就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-16 20:52:33 | 显示全部楼层
好的 谢谢楼上两位的回答我自己再尝试一下
回复 支持 反对

使用道具 举报

发表于 2014-7-16 23:29:33 | 显示全部楼层
arduino板把13脚接led,也就是sck。icsp下载时可兼作指示,呵呵,不小心想到的。
不过这和楼主的题目不搭了。
回复 支持 反对

使用道具 举报

发表于 2015-2-23 12:20:01 | 显示全部楼层
SPI信号中 SS 第电平有效(选中)
回复 支持 反对

使用道具 举报

发表于 2015-3-19 13:35:03 | 显示全部楼层
恩恩额恩恩呢
回复 支持 反对

使用道具 举报

发表于 2018-2-2 10:34:49 | 显示全部楼层
楼主  你的这个实现没有?
回复 支持 反对

使用道具 举报

发表于 2018-10-26 15:34:28 | 显示全部楼层
i7456 发表于 2014-7-16 01:06
SPI通讯是主从通讯,这里的应用 arduino做主机,nrf24l01和enc28j60做从机。
硬件SPI的MOSI,MISO,SCK是可 ...

大神,有代码吗?刚开始学arduino,弄不懂
回复 支持 反对

使用道具 举报

发表于 2021-3-8 10:46:09 | 显示全部楼层
我有一块2560的板子,上面有一个W5100和一个ADS1220的芯片,通过SPI总线连接,发现无法同时运行,有大侠帮忙解决一下
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 19:49 , Processed in 0.038020 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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