找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于MCU软件模拟IIC的时序 求分析

查看数: 3922 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-22 13:56

正文摘要:

首先感谢关注 我的问题首先第一个问题就是在软件模拟IIC的时候时钟信号的一个问题 上面的SDA_OUT()就是配置数据线为输出模式,IIC_SCL和IIC_SDA就是I/O口输出。这里我想不通,希望前辈指教。 最后就是IIC的 ...

回复

ID:474802 发表于 2020-3-22 19:52
wo4fisher 发表于 2020-3-22 13:56
首先是传输频率,表格里边有两种,不同的电压,他们的传输频率最大值是不一样的,1.8V左右的时候最大不能超 ...

感谢回答
ID:474802 发表于 2020-3-22 19:47
xuyaqi 发表于 2020-3-22 15:13
首先不能加在一起算,而是分别2.5v供电时 T高>4us,T低>4.7us,4.5-5.5供电时 T高>0.6us,T低>1.2us,这也 ...

弄懂了,谢谢
ID:474802 发表于 2020-3-22 19:39
xuyaqi 发表于 2020-3-22 15:13
首先不能加在一起算,而是分别2.5v供电时 T高>4us,T低>4.7us,4.5-5.5供电时 T高>0.6us,T低>1.2us,这也 ...

但这是3.3V的电压该怎么算呢?
ID:687694 发表于 2020-3-22 17:03
告诉你个小技巧,在proteus里面建个mcu然后加载HEX文件,用仿真示波器观察i2c数据线上的波形判断是否正常。
ID:94031 发表于 2020-3-22 15:13
首先不能加在一起算,而是分别2.5v供电时 T高>4us,T低>4.7us,4.5-5.5供电时 T高>0.6us,T低>1.2us,这也解答了你别人为什么是2us,因为别人是4.5-5.5供电。
ID:191511 发表于 2020-3-22 13:56
首先是传输频率,表格里边有两种,不同的电压,他们的传输频率最大值是不一样的,1.8V左右的时候最大不能超过100KHZ,从而也限制了高低电平的最小持续时间。5V左右的时候,最大传输频率也可达到400khz;也就是说在不同大电压情况下,在保证24C02能正常工作的情况下,还决定了数据传输的最高频率。
你说的8.7us是在某一个电压区间的值。随着电压这个周期值是变化的。
在5V左右的时候,其实理想情况1.8us就够了。
例程中delay_us(x)函数一般实现延时都不是绝对的xus,而是有多少的变化的。因为一般都用软件延时,延时并不精确,具体时间可以用示波器或者逻辑分析仪去判断。
IIC的传输时钟周期,这个时钟并不是标准的方波,简单点说是pwm波,不通的编程方式,这个时钟的波形是稍有差别的。并且多数串行数据通信都是要检测边沿信号来进行数据改变和锁存的。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表