[笔记].I2C札记(续)之双向口操作
最近想写个PCF8563的Verilog代码,对有些代码的技巧很是疑惑,无奈重新翻书来寻找答案。
一般情况下SDA为双向口,为了防止输入和输出冲突,SDA和SCL总线上都会接上拉电阻来保护电路。
图1 I2C总线信号连接示意图
对于主机来说,要使得SDA作为输入口,就必须先将其拉成高阻态。而SDA作为输出口的情况下,就有一个技巧,不仔细还真有点难以捉摸:主机输出高电平,可以直接输出高电平;也可以输出高阻,由于接有上拉电阻,因此从机会接收到高电平。而主机输出想要输出低电平,为了摆脱上拉电阻的束缚,就必须直接输出低电平。
图2 SDA双向口操作