打印

ST在蒙人嗎?

[复制链接]
楼主: eng588
手机看帖
扫描二维码
随时随地手机跟帖
21
香水城| | 2010-10-22 17:23 | 只看该作者 回帖奖励 |倒序浏览
从19楼的框图中可以看到,fMASTER只能有三种来源,即fHSE、fHSIDIV和fHSI

这个框图说明如果MCU使用外部晶振11MHz,是不可能为I2C模块产生3M的输入时钟。如果MCU使用外部晶振11MHz,只能为I2C模块提供11MHz的时钟,即需要在I2C_FREQR寄存器中填入001011(11MHz)。但如果HSE不是1MHz的整数倍,我要问问,才能知道怎么填写I2C_FREQR寄存器;如果使用11.059MHz的HSE,我估计可以配置I2C_FREQR=001011(11MHz)。

使用特权

评论回复
22
jgphu| | 2010-10-22 18:20 | 只看该作者
同意21楼的看法: 问一下如何填写I2C_FREQR寄存器
不同意21楼的看法: 我估计。。

使用特权

评论回复
23
香水城| | 2010-10-22 18:23 | 只看该作者
同意21楼的看法: 问一下如何填写I2C_FREQR寄存器
不同意21楼的看法: 我估计。。
jgphu 发表于 2010-10-22 18:20


哈哈,把我搞糊涂了,你到底是同意还是不同意,如果不同意,请说明理由,:lol

使用特权

评论回复
24
jgphu| | 2010-10-22 18:25 | 只看该作者
不同意的理由:这个问题能不能问问官方,大家不要猜测了。

使用特权

评论回复
25
jgphu| | 2010-10-22 18:26 | 只看该作者
我估计就是SPEC没有写明白而已,ST不可能蒙人撒。

使用特权

评论回复
26
sinadz| | 2010-10-22 18:30 | 只看该作者
我也觉得只是没写明白而已,帽子不能扣太大了:lol

使用特权

评论回复
27
香水城| | 2010-10-22 18:31 | 只看该作者
也就是说,你只是不同意我的最后一句话“如果使用11.059MHz的HSE,我估计可以配置I2C_FREQR=001011(11MHz)。”  你是同意我其它的说明?

使用特权

评论回复
28
jgphu| | 2010-10-22 18:35 | 只看该作者
YES

使用特权

评论回复
29
eng588|  楼主 | 2010-10-25 09:47 | 只看该作者
我說實話,我使用11.0592M晶震,將I2C頻率配置為6M, 8M都能工作,
也不知這里面究竟是怎麼回事

使用特权

评论回复
30
IJK| | 2010-10-25 11:21 | 只看该作者
我說實話,我使用11.0592M晶震,將I2C頻率配置為6M, 8M都能工作,
也不知這里面究竟是怎麼回事
eng588 发表于 2010-10-25 09:47


I2C不象串口,对频率不敏感。这种现象也正常。I2C在这个问题上有点象SPI,频率差1、2倍常常也能正常跑。

使用特权

评论回复
31
eng588|  楼主 | 2010-10-25 11:25 | 只看该作者
30# IJK
我用一個器件最高只能跑50K,我真不知道怎麼設置

使用特权

评论回复
32
香水城| | 2010-10-25 11:52 | 只看该作者
30# IJK  
我用一個器件最高只能跑50K,我真不知道怎麼設置
eng588 发表于 2010-10-25 11:25


如前面所说,I2C_FREQR寄存器是用于设置I2C模块的时钟频率,不是I2C总线的时钟频率;你说的“一個器件最高只能跑50K”,应该是指I2C总线的时钟频率吧?设置I2C总线的时钟频率需要配置I2C_CCRL和I2C_CCRH实现。

使用特权

评论回复
33
jgphu| | 2010-10-25 12:42 | 只看该作者
最高50K?

1、这个不可能,I2C协议的标准速率是100K, 这个在做的产品中已经验证。
2、文档写的很清楚I2C总线的速率要达400K,I2C_FREQR要选择4M以上。
3、关于I2C_FREQR取值1-50MHz的来历,香水城记得帮忙问问。

使用特权

评论回复
34
eng588|  楼主 | 2010-10-25 12:52 | 只看该作者
我是說,我的一個外部從器件只能跑50K,不是指MCU 33# jgphu

使用特权

评论回复
35
香水城| | 2010-10-25 12:56 | 只看该作者
我是說,我的一個外部從器件只能跑50K,不是指MCU 33# jgphu
eng588 发表于 2010-10-25 12:52


你这个50K与STM8有什么关系?

使用特权

评论回复
36
eng588|  楼主 | 2010-10-25 15:37 | 只看该作者
你这个50K与STM8有什么关系?
香水城 发表于 2010-10-25 12:56

因為STM8的SCLK腳上的頻率是根據I2C模塊的輸入頻率來計算的,
如果I2C模塊的輸入頻率本身就有誤,那SCLK頻率就有誤,
我不能確定這個問題,就當心量產,雖然幾臺機的測試沒問題。

使用特权

评论回复
37
eng588|  楼主 | 2010-10-25 15:43 | 只看该作者
你这个50K与STM8有什么关系?

因為I2C引腳上的SCLK頻率是根據i2c模塊輸入頻率計算來的,
如果模塊本身的頻率就有誤,那SCLK的頻率就有誤,就有可能在某些時侯超過50K。

使用特权

评论回复
38
jgphu| | 2010-10-25 16:38 | 只看该作者
还有这么奇怪的I2C器件,对频率要求这么高。。。。无语了。  建议换一家的芯片,从来没有听到I2C器件被要求CLK频率<50K的, 问一下,是什么芯片。

使用特权

评论回复
39
eng588|  楼主 | 2010-10-25 16:57 | 只看该作者
还有这么奇怪的I2C器件,对频率要求这么高。。。。无语了。  建议换一家的芯片,从来没有听到I2C器件被要求CLK频率<50K的, 问一下,是什么芯片。


大名鼎鼎的蘋果公司的,沒得換的,只有授權的才能拿到。

使用特权

评论回复
40
香水城| | 2010-10-25 17:22 | 只看该作者
因為STM8的SCLK腳上的頻率是根據I2C模塊的輸入頻率來計算的,
如果I2C模塊的輸入頻率本身就有誤,那SCLK頻率就有誤,
我不能確定這個問題,就當心量產,雖然幾臺機的測試沒問題。 ...
eng588 发表于 2010-10-25 15:37


你这个担心是有道理的,但可以很容易解决。

不错,STM8的SCLK的频率是根据I2C模块的输入频率计算出来的,但并不是与I2C_FREQR寄存器的数值密切相关,只要你能够保证SCLK引脚上测量到的信号波形,符合设计要求,就不会在量产后发生问题。

决定SCLK输出频率的是I2C_CCRL寄存器,而不是I2C_FREQR寄存器。

我猜想I2C_FREQR的内容,可能与信号的斜率或输出通道的带宽相关,因此稍微差一些不会影响正常操作;你29楼的测试也说明了这一点。我正在与设计师联系以证实我的这些猜想,有确切结论后会告诉你。

根据你的情况,建议你直接与ST的工程师联系,这样可以得到更快和更有效的支持,如果希望我帮你搭桥,请给我你的联络。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则