新手求助,如何用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口自己开发,是这样吗? SPI通讯是主从通讯,这里的应用 arduino做主机,nrf24l01和enc28j60做从机。
硬件SPI的MOSI,MISO,SCK是可以复用的。如何区分是与哪个设备通信呢?这里就需要SS了。
ss是片选,想要与哪个设备通信,就选中哪个设备。
针对你的需求,arduino要设置2个ss信号,一个给nrf24l01,一个给enc28j60。然后设备初始化的时候,按实际的SS配置管脚就行了。 spi本来就是并联使用的,具体呵那个通讯决定在ss片选,因此,把ss扯开就可以了。 好的 谢谢楼上两位的回答:lol我自己再尝试一下 arduino板把13脚接led,也就是sck。icsp下载时可兼作指示,呵呵,不小心想到的。
不过这和楼主的题目不搭了。 SPI信号中 SS 第电平有效(选中) 恩恩额恩恩呢 楼主你的这个实现没有? i7456 发表于 2014-7-16 01:06
SPI通讯是主从通讯,这里的应用 arduino做主机,nrf24l01和enc28j60做从机。
硬件SPI的MOSI,MISO,SCK是可 ...
大神,有代码吗?刚开始学arduino,弄不懂 我有一块2560的板子,上面有一个W5100和一个ADS1220的芯片,通过SPI总线连接,发现无法同时运行,有大侠帮忙解决一下
页:
[1]