大家好呀!今天小编发现了iic为什么接上拉的有趣问题,来给大家解答一下,别忘了关注本站哦,现在我们开始阅读吧!
什么是开漏中断引脚,什么是上拉电阻,为何I2C主线上要接上两个电阻供电...
就是指高电平;所谓下,是指低电平。上拉,就是通过一个电阻将信号接电源,一般用于时钟信号数据信号等。下拉,就是通过一个电阻将信号接地,一般用于保护信号。
上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。
上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
什么样的输出形式,引脚都可以接上拉电阻。但是“开漏”输出的话,输出电流非常小,根本驱动不了器件,所以要接上拉电阻,提供输出电流。
lpc串行中断信号要接上拉电阻吗?,接上拉电阻是因为I2C通信需要输出高电平的能力。一般开漏输出无法输出高电平,如果在漏极接上拉电阻,则可以进行电平转换。I2C由两条总线SDA和SCL组成。
推挽就是强上拉了,拉电流比较大,不允许外部拉低,只能用于输出信号不能输入。开漏是完全没有上拉能力的,不能输出高电平,但可以输出低电平,相当于对地接一个开关。高阻模式无输出能力,相当于开路,只能输入信号。
通过IIC总线发送数据时,为什么要加“SCL=1;SCL=0;“?
因为SCL相当于时钟信号,SCL必须进过0一个循环后,SDA才会进行下一次有效赋值,SCL每一次循环,SDA都可以进行一次赋值(读或者写),而且是在SCL为0时变化。
【3】scl=1;目的是scl线从0到1的跳变。具体可以看IIC通信协议的图形。【4】scl=0; 循环外 。字节的所有位,共8位移出后。需要等到IIC从站设备的响应。scl状态是协议约定的要求。sda=1表示,IO口做输入用。
I2C总线理解上的难点就是在于 ACK和NACK的使用上,估计你就没看明白I2C协议。
而在发送数据时,主机控制总线,在scl=0时,sda被主机改变;scl=1时,sda不变,并被从机读取。(scl=0时,主机改变sda)应答时,相当于读取一位数据,同样是在scl=1时,由从机改变sda。
IIC总线的时序,好像是:最高频率在400KHz。单片机指令的执行时间,速度快,所以要加延时。停止函数,是在SCL=1期间,SDA出现上升,那么SDA先要为0,这个0,要在SCL=0实现。
为什么I2C总线的SCL和SDL要串接电阻呢
按照IC的规范来讲,SDA和SCL都是需要上拉电阻的。当然如果你主控芯片的两个管脚具有内部上拉并且满足你的速率要求,也是可以省略外部上拉的。
lpc串行中断信号要接上拉电阻吗?,接上拉电阻是因为I2C通信需要输出高电平的能力。一般开漏输出无法输出高电平,如果在漏极接上拉电阻,则可以进行电平转换。I2C由两条总线SDA和SCL组成。
所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上,一般SDA、SCL都会接上拉电阻实现电平的转换以及提高驱动能力。
上拉电阻最好用上,或者外接上拉电阻。SCL引脚设置输出;SDA在向外写数据时设置输出,读取数据数据时设置输入并且读PIN寄存器。如果你的AVR单片机有TWI接口,那就直接使用TWI来编程了。
单片机5V供电的话,SCL和SDA的连接线串联一个适当的电阻是个不错的选择。
总线空闲时,因各设备都是开漏输出,上拉电阻Rp使SDA和SCL线都保持高电平。任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的SDA是“与”关系,SCL也是“与”关系。
小伙伴们,上文介绍iic为什么接上拉的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。