在一个 I2C 总线中,如何处理两个地址一样的从器件?

zaodt 2009-08-15 12:35:34
现在要通过 I2C 接口读写两个一样的从器件;

但这个器件的从地址是固定的;

所以就会产生地址冲突;

请问:有什么简单的办法?
...全文
5180 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xianse 2009-08-20
  • 打赏
  • 举报
回复
楼主,你好,想问你关于Win CE.Net(C#)的 "Hello World "的源代码程序!再三谢谢了.

不知道你能帮忙不? 项目经理要2周内学懂Win CE.Net(C#),你能写个源代码谢谢下不》?
iwillbeback008 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shuiyan 的回复:]
I2C的协议规范本来就依赖不同地址,你这样的电路已经违背了I2C的基本了。

可以考虑电路上用分别供电的方式,不过需要注意该芯片在无电情况下是否会挂住I2C总线。

或者用信号切换方式,将SCL进行切换,可避免两个同时收到SCL信号。

或者该芯片是否支持单独引脚控制的低功耗模式,并且要求在低功耗模式下不响应I2C总线。
[/Quote]

很有经验,学习了。
gooogleman 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shuiyan 的回复:]
I2C的协议规范本来就依赖不同地址,你这样的电路已经违背了I2C的基本了。

可以考虑电路上用分别供电的方式,不过需要注意该芯片在无电情况下是否会挂住I2C总线。

或者用信号切换方式,将SCL进行切换,可避免两个同时收到SCL信号。

或者该芯片是否支持单独引脚控制的低功耗模式,并且要求在低功耗模式下不响应I2C总线。
[/Quote]

很有经验,学习了。
shuiyan 2009-08-15
  • 打赏
  • 举报
回复
I2C的协议规范本来就依赖不同地址,你这样的电路已经违背了I2C的基本了。

可以考虑电路上用分别供电的方式,不过需要注意该芯片在无电情况下是否会挂住I2C总线。

或者用信号切换方式,将SCL进行切换,可避免两个同时收到SCL信号。

或者该芯片是否支持单独引脚控制的低功耗模式,并且要求在低功耗模式下不响应I2C总线。
gooogleman 2009-08-15
  • 打赏
  • 举报
回复
能不能加个,电源控制来让某一个工作,这样另外一个就访问不到了,
嘿嘿,我想这样可以吧,
哈哈。
hitszj604 2009-08-15
  • 打赏
  • 举报
回复
那字地址那,要是字地址也一样那就没招啦
gooogleman 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zaodt 的回复:]
引用 6 楼 hzdysymbol 的回复:
用一个GPIO来控制切换完全可以实现的,以前有项目为了防止两个挂在I2C上的芯片干扰,就用这种方法来实现的,在需要的时候切换过去



你好!能不能大概说一下电路如何设计?
[/Quote]

楼主就是切断SDA或者SDL啊,用模拟开关即可。嘿嘿。

嘿嘿,每个器件就放一个开关。我理解没有错误吧。断了一根线,所以没有办法寻址了

zaodt 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hzdysymbol 的回复:]
用一个GPIO来控制切换完全可以实现的,以前有项目为了防止两个挂在I2C上的芯片干扰,就用这种方法来实现的,在需要的时候切换过去
[/Quote]


你好!能不能大概说一下电路如何设计?
gooogleman 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hzdysymbol 的回复:]
用一个GPIO来控制切换完全可以实现的,以前有项目为了防止两个挂在I2C上的芯片干扰,就用这种方法来实现的,在需要的时候切换过去
[/Quote]

嗯,把一条线断了,这方法不错。
hzdysymbol 2009-08-15
  • 打赏
  • 举报
回复
用一个GPIO来控制切换完全可以实现的,以前有项目为了防止两个挂在I2C上的芯片干扰,就用这种方法来实现的,在需要的时候切换过去

19,519

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧