swq0603 发表于 2014-7-15 23:41:54

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

本人新手,还在学习阶段,想用 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口自己开发,是这样吗?

i7456 发表于 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扯开就可以了。

swq0603 发表于 2014-7-16 20:52:33

好的 谢谢楼上两位的回答:lol我自己再尝试一下

xiaoliumonitor 发表于 2014-7-16 23:29:33

arduino板把13脚接led,也就是sck。icsp下载时可兼作指示,呵呵,不小心想到的。
不过这和楼主的题目不搭了。

ksfksf 发表于 2015-2-23 12:20:01

SPI信号中 SS 第电平有效(选中)

菜鸟一个 发表于 2015-3-19 13:35:03

恩恩额恩恩呢

Rookie 发表于 2018-2-2 10:34:49

楼主你的这个实现没有?

zjg 发表于 2018-10-26 15:34:28

i7456 发表于 2014-7-16 01:06
SPI通讯是主从通讯,这里的应用 arduino做主机,nrf24l01和enc28j60做从机。
硬件SPI的MOSI,MISO,SCK是可 ...

大神,有代码吗?刚开始学arduino,弄不懂

jd_wl 发表于 2021-3-8 10:46:09

我有一块2560的板子,上面有一个W5100和一个ADS1220的芯片,通过SPI总线连接,发现无法同时运行,有大侠帮忙解决一下
页: [1]
查看完整版本: 新手求助,如何用arduino连接两个SPI设备