MCU的SPI接口做主,如何带两个SPI从设备

[复制链接]
 楼主| andy_mqy 发表于 2012-12-14 14:49 | 显示全部楼层 |阅读模式
选用的MCU只有一个SPI接口,但有两个SPI接口的从设备,想以SPI总线方式对两个从设备进行读写。所以,没有使用MCU的标准SPI接口的CS端口,而是用两个I/O来分别去片选两个从设备,这种方式是否可行。即,仍然使用MCU的SPI接口,但不使用接口自带的CS引脚(做普通IO用),而用其它的两个IO来分时片选两个从设备。请教有这种方式应用过的设计吗,谢谢!
chenyu988 发表于 2012-12-14 15:09 | 显示全部楼层
2个从设备的地址设置不一样即可
yanwen217 发表于 2012-12-14 15:16 | 显示全部楼层
最安全点,加个模拟开关来切换,在数码相机等产品上很多这种用法,比如SGM5018之类
 楼主| andy_mqy 发表于 2012-12-14 16:40 | 显示全部楼层
chenyu988 发表于 2012-12-14 15:09
2个从设备的地址设置不一样即可

谢谢2楼和3楼回复。那样得两个从设备都接受数据吗?SPI的总线方式是这样区分与哪个设备通讯吗?两个从设备一个是SPI FLASH和SPI接口的MEMS,我考虑用片选来使能某一个从设备。选中的可以通讯,否则引脚位高阻。
john_lee 发表于 2012-12-14 16:51 | 显示全部楼层
SPI 没有地址的说法,否则也不会搞一个SS(slave select)线了,一个 master 带多个 slave 的方法,一般就是加一个译码器(如138,4051等等)来对SS线进行多路切换。
jlass 发表于 2012-12-14 16:58 | 显示全部楼层
可行
用5个GPIO口就能实现
另外:就如楼上所说,SPI口没有地址的说法,是用片选区分的
杨爱林林 发表于 2012-12-14 17:28 | 显示全部楼层
新手学习了
 楼主| andy_mqy 发表于 2012-12-19 12:58 | 显示全部楼层
这两天编写了代码,进行了测试。目前,没有使用MCU的SPI接口自带的CS端口,而是用两个GPIO作为两个从设备的片选,而将MCU的CS端口设置为普通IO口,目前可以实现其中一个从设备的读写了。
-兔子- 发表于 2012-12-19 13:20 | 显示全部楼层
没问题, 不管几个外设, 只用片选区分, 操作时保持一个选中, 其它无视。
coody 发表于 2012-12-19 14:40 | 显示全部楼层
片选不同即可
bruceding 发表于 2012-12-19 17:13 | 显示全部楼层
必须用普通IO呦,mcu那个cs是mcu的spi作为slave时才有用的,作为master时用不到。
dwanwan2008 发表于 2012-12-24 09:39 | 显示全部楼层
楼主可否留下联系方式。想请教你驱动屏的问题。
ayb_ice 发表于 2012-12-24 09:46 | 显示全部楼层
通过片选信号选择设备即可
戒指320 发表于 2012-12-24 09:49 | 显示全部楼层
使用CS 片选区分,操纵第一个时 选中第一个cs有效,操作第二个时 选中第二个cs有效, 另外spi没有地址之说  iic才有地址
szjlj168 发表于 2012-12-24 09:55 | 显示全部楼层
学习了
uet_cache 发表于 2012-12-24 10:24 | 显示全部楼层
有各自的片选
 楼主| andy_mqy 发表于 2013-1-10 12:57 | 显示全部楼层
谢谢,楼上各位回复。如很多网友说的一样,SPI总线是用片选来区分哪一个作为MCU的从设备的,同时没有使用MCU的SPI接口选定的CS引脚,而是用另外的GPIO作为各个从设备的CS。通过这段时间的调试,可以实现了用MCU分别去操作两个SPI接口的从设备了。
kulas 发表于 2013-1-10 13:03 来自手机 | 显示全部楼层
其实楼主的想法就可行
liangliang6688 发表于 2013-1-11 17:20 | 显示全部楼层
你好,我是做电子元器件的,互相学习!!QQ:2427881011  胡浩亮
qd_kun 发表于 2013-5-13 21:16 | 显示全部楼层
帮助很大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

86

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部