请问CH423如何避免和其他I2C总线上的设备造成冲突,我看CH423例子程序,给CH423写命令和数据时并没有写设备地址,如果我对I2C总线上其他设备操作,由于CH423不用写设备地址,那么写到其他设备上的数据就会写到CH423里造成误操作,请问如何解决?
CH423的命令码就相当于设备地址,只有CH423能够识别,不会与其他标准I2C设备的地址冲突。
谢谢楼上大侠回复,就算他的命令码就是设备地址,他不冲突别人,别人会冲突他呀,如果我对其他设备写的数据中有的值刚好等于他的命令码那怎么办,还有就担心这芯片的可靠性和抗干扰能力如何,因为论坛上很多人质疑452的稳定性。
(1)关于“别人会冲突他呀”: 只有紧跟在I2C起始信号后面的一个字节数据,CH423才会认为是命令码,换句话说,你发送给其他设备,且与423命令码相同的数据,不会紧跟在I2C起始信号后面,紧跟在起始信号后面的数据总是那个设备的地址,因此CH423不会误操作。 (2)关于稳定性: 我们手册中有关于提高抗干扰的方法,你可以做实验亲身感受一下。
谢谢指教,已经明白,还有个问题请教,就是我想用作输入,当外部电平变化产生中断给mcu,我知道他会在OC15产生低电平中断,如何清掉中断,是不是我读完数据后OC15自动输出高还是需要什么操作才能清除中断输出,因为我得到数据后就等待下次中断的产生。
产生中断时:把从IO7-IO0读取的电平值写入IO7-IO0的输出寄存器,CH423才会撤消中断请求。参看手册中关于“电平变化中断”部分的解释
明白,由于中断是靠OC15输出,对OC15有何特殊设置吗,还有把从IO7-IO0读取的电平值写入IO7-IO0的输出寄存器撤消中断后还要不要设置OC15?
不需要设置
请问多个CH423可以在一起使用吗?
可以,SCL和SDA线中只有一根可以共用,另外一根需要分开。
...
请提供CH423与单片机接口的C语言例子程序
您好,CH423的程序在 http://wch.cn/download/list.asp?id=106 可以下载。