在i2c协议中改变占空比有什么意义?这种特性在大多数先进的微控制器中都是可用的。
发布于 2015-07-17 14:20:49
占空比周期很大,因为不同的一平方公里C模式的占空比略有不同。
检查I平方C规格v5表10,pg。48.
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。
https://stackoverflow.com/questions/31384447
复制相似问题