首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >I2C占空比意义

I2C占空比意义
EN

Stack Overflow用户
提问于 2015-07-13 13:15:41
回答 1查看 5.3K关注 0票数 3

在i2c协议中改变占空比有什么意义?这种特性在大多数先进的微控制器中都是可用的。

EN

回答 1

Stack Overflow用户

发布于 2015-07-17 14:20:49

占空比周期很大,因为不同的一平方公里C模式的占空比略有不同。

检查I平方C规格v5表10,pg。48.

代码语言:javascript
运行
复制
     Mode     | t_HIGH | t_LOW | ratio
--------------+--------+-------+-------
Standard-mode |  4.00u |  4.7u | 0.85
Fast-mode     |  0.60u |  1.3u | 0.46
Fast-mode Plus|  0.26u |  0.5u | 0.52

您的控制器将需要决定一个比率,以使其在I平方C规格范围内。

例如,如果控制器使用的是标准的模式定时比,这将阻止您以最大时钟频率实现快速模式计时。

这些是最小t_HIGH:t_LOW标准中定义的比率。但是,注意100 kHz周期是10 us,但是表中的t_HIGH + t_LOW小于10 us。因此,只要满足t_HIGH和t_LOW最小时间,实际值的比率就会发生变化。

这些比率的目的是说明一平方公里C模式之间的时间限制是不同的。这并不是控制人员需要保持的强制性比率。

例如,4美国高,6美国低将是一个0.67的比率,但标准模式的时间将得到满足。

STM32F4示例:

STM32F4xx系列只支持100 kHz和400 kHz通信速度(RM0090,rev 5,pg )。818,第27.2款)。

我不知道你的比率来自哪里,但参考手册状态(RM0090,rev 5,pg )。849,第27.6.8节)标准模式为1:1,快速模式为1:2或9:16。

例如,为了达到100 kHz的最高标准模式时钟频率,需要为5 us编程t_HIGH和t_LOW,因为其比例为1:1。

例如,对于快速模式( 1:2 ),您需要将t_HIGH编程为3.33 us,将t_LOW编程为6.66 us ( 100 kHz )。然而,这不符合标准模式的时间要求。

因此,您不能使用STM32F4编程的快速模式,同时保持标准模式的时间在最高的标准模式频率.

反之亦然:您不能使用标准模式和程序400 kHz快速模式,因为默认的1:1比率对于2.5us来说是超出规格的,因为t_LOW将是1.25us<1.3us。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31384447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档