对I2C学习板一些你可能不了解的东西
时间:10-02
整理:3721RD
点击:
以前做I2C实验时总是有时候对有时候不对十分不可靠,今天买回了逻辑分析仪,程序如下:
void send(uchar dat)
{
uchar i;
for(i=0; i<8; i++)
{
dat <<= 1;
sda = CY;
delay();
scl = 1;
delay();
scl = 0;
}
}
把总线协议查看了一次发现发送数据时SDA 线的数据居然比SCL 线的电平拉得慢0.125US,十分奇怪于是换个IO口却是正常的,
突然想起来24C02和DS1302的I2C线是一起共用的,可能是时钟芯片影响到的。于是把时钟芯片的复位端拉0后24C02上查看的I2C可以正常工作了。所以在这里可以提示下大家I2C可能没有注意到的问题
void send(uchar dat)
{
uchar i;
for(i=0; i<8; i++)
{
dat <<= 1;
sda = CY;
delay();
scl = 1;
delay();
scl = 0;
}
}
把总线协议查看了一次发现发送数据时SDA 线的数据居然比SCL 线的电平拉得慢0.125US,十分奇怪于是换个IO口却是正常的,
突然想起来24C02和DS1302的I2C线是一起共用的,可能是时钟芯片影响到的。于是把时钟芯片的复位端拉0后24C02上查看的I2C可以正常工作了。所以在这里可以提示下大家I2C可能没有注意到的问题
受教、!什么时钟芯片,低电平是取消复位还是复位?
很好的提醒
就是说:几个模块共用I2C总线的时候可能会相互影响...对么? 谢谢小编
另外,手册上说,ds1302使用i2c 会降低性能哟.....是么
感谢提醒
我要学的还很多,受教了
我也不清楚,但是我现在就是这个问题
DS1302,那个是功能端,可以识别你写数据结束的。但是写东西时一定要为高才行。把这个脚拉低I2C可以正常工作了,有可能就是写时这个芯片也作了回应。我拉高电平时他居然会自动占用数据线把电平拉低,你知道是为什么吗,这个现象在写一个命令时就出现了
很好的提醒