IIC分时复用

2019-07-21 04:46发布

想在单片机同一个IIC接口连接多个相同的传感器,由于传感器地址相同,所以无法用设备地址来进行区分,请问有什么办法或者是说加什么芯片,可以使得IIC分时复用,分别传输这些传感器的数据呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
112chang222
1楼-- · 2019-07-21 18:55
haimianying 发表于 2019-3-3 21:30
gpio扩展器是什么,有人告诉我可以将SCL线都连上,将SDA线分时复用,这样可以吗?

所有传感器都挂在同一个I2C总线上,主从机数据都往总线上面发,然后分时复用就行了,就是同一个时间只开启一个传感器,其余传感器都关掉。有专门的GPIO扩展芯片,对于你用的八个传感器,一个3、8线译码器就行了。
Acuity
2楼-- · 2019-07-21 19:49
haimianying 发表于 2019-3-3 21:31
我的传感器很多,有8个,用模拟IO口也很麻烦

楼主这个担心多余了,80个传感器都不是问题,只要IO够用,把模拟时序抽象出来,通过函数指针的方式调用,再多的模拟总线都不担心。楼主这个情况最好的办法就是用8组IO模拟i2c,用一根复用不是不可以,但比用8根复杂得多了,加多路复用开关,通过开关切换,稳定性差、速度慢不说,还增加成本。本人最多试过模拟21根i2c总线操作AT24C16(24C16地址线不能用的)。
参考模拟i2c总线:https://blog.csdn.net/qq_20553613/article/details/78878211
二九结狐六体
3楼-- · 2019-07-21 23:41
其余传感器都关掉。有专门的GPIO扩展芯片,对于你用的八个传感器,一个3、8线译码器就行了。
haimianying
4楼-- · 2019-07-22 00:27
112chang222 发表于 2019-3-3 22:22
所有传感器都挂在同一个I2C总线上,主从机数据都往总线上面发,然后分时复用就行了,就是同一个时间只开 ...

嗯嗯,谢谢。

一周热门 更多>