打印

ST在蒙人嗎?

[复制链接]
5164|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eng588|  楼主 | 2010-10-18 13:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM8S的規格書上對I2C_FREQR以下說:
    000001:  1MHZ
    000010:2MHz
   。。。。。。。
    110010: 50MHz

請問這些整數的時鐘是從那裡來的,當外部晶體是11.059的時侯怎樣得到7MHz的時鐘?怎樣得道13MHz的時鐘,STM8s并沒有PLL電路啊?
沙发
jgphu| | 2010-10-18 15:46 | 只看该作者
楼主说的不错,STM8S的确给外设时钟之前只进行了简单的分频工作,但是ST决对没有蒙楼主。

像I2C,UART,CAN 这些总线都有波特率(当然I2C可以没有严格的频率),而这些波特率往往不是外面时钟的整数倍,这就需要芯片的内部外设对时钟进行PLL调整,用以输出用户期望的误差比较小的波特率。

使用特权

评论回复
板凳
eng588|  楼主 | 2010-10-18 16:49 | 只看该作者
PLL成本比較高吧?STM8S的規格書上也沒講。

使用特权

评论回复
地板
香水城| | 2010-10-18 18:08 | 只看该作者
1)ST从来没有蒙人。
2)请说明你看的是哪份文档,哪一页?

使用特权

评论回复
5
hsbjb| | 2010-10-18 19:14 | 只看该作者
楼主这标题有点吓人

使用特权

评论回复
6
pkat| | 2010-10-18 22:54 | 只看该作者
楼主可不能这么说ST

使用特权

评论回复
7
yulri| | 2010-10-19 07:56 | 只看该作者
如何蒙人??

使用特权

评论回复
8
eng588|  楼主 | 2010-10-19 08:35 | 只看该作者
回香水城:
文檔名稱:STM8S參考手冊
文檔編號:RM0016
第257頁:頻率寄存器(I2C_FREQR)

使用特权

评论回复
9
IJK| | 2010-10-19 11:27 | 只看该作者
回香水城:
文檔名稱:STM8S參考手冊
文檔編號:RM0016
第257頁:頻率寄存器(I2C_FREQR)
eng588 发表于 2010-10-19 08:35


LZ看的是老的手册。新的手册(Rev 6)I2C_FREQR允许的范围是1M~24M

使用特权

评论回复
10
xsgy123| | 2010-10-19 17:17 | 只看该作者
楼主估计是看错资料了:lol

使用特权

评论回复
11
香水城| | 2010-10-19 21:09 | 只看该作者
文档版本?

使用特权

评论回复
12
jgphu| | 2010-10-20 10:05 | 只看该作者
楼主的时意思是, I2C的输入频率1M,2M,3M,4M,5M.....是怎么得到的。

楼主是说, 例如: 12M的外部晶振, I2C的输入频率I2C_FREQR如何得到5M,这个在SPEC中的确没有说明。

使用特权

评论回复
13
eng588|  楼主 | 2010-10-20 16:22 | 只看该作者
樓上說的極是

使用特权

评论回复
14
IJK| | 2010-10-20 17:51 | 只看该作者
楼主的时意思是, I2C的输入频率1M,2M,3M,4M,5M.....是怎么得到的。

楼主是说, 例如: 12M的外部晶振, I2C的输入频率I2C_FREQR如何得到5M,这个在SPEC中的确没有说明。 ...
jgphu 发表于 2010-10-20 10:05


STM8的I2C的输入频率来自系统时钟(类似于STM32的I2C的输入频率来自APB时钟)。

12M的外部晶振,通常系统时钟可以是12M、6M、4M、等等,相应的I2C_FREQR应该填12M、6M、4M等等

使用特权

评论回复
15
eng588|  楼主 | 2010-10-20 18:13 | 只看该作者
14# IJK
如此说,11.0592M的外部晶振用什么样的I2C输入频率?

使用特权

评论回复
16
dfsa| | 2010-10-20 18:58 | 只看该作者
即时是有问题,那也是技术资料出了错误,谈不上蒙人

使用特权

评论回复
17
秋天落叶| | 2010-10-20 22:47 | 只看该作者
光看标题还以为是ST代理商把你骗了呢:lol

使用特权

评论回复
18
IJK| | 2010-10-21 09:34 | 只看该作者
14# IJK  
如此说,11.0592M的外部晶振用什么样的I2C输入频率?
eng588 发表于 2010-10-20 18:13


11M比较合适。其实没必要象51那样用11.0592M的外部晶振,用12M或者16M晶振,串口也可以得到比较准确的9600、19200波特率

使用特权

评论回复
19
香水城| | 2010-10-22 14:54 | 只看该作者
回12、13楼:I2C_FREQR这个寄存器存放的是I2C模块所使用的时钟频率,即手册上"Peripheral clock frequency"。这个频率是由时钟控制模块的配置所决定,请看下面的贴图中红线标出的地方:

STM8_CLK_Control.GIF (23.66 KB )

STM8_CLK_Control.GIF

STM8_I2C_FREQR.GIF (10.15 KB )

STM8_I2C_FREQR.GIF

使用特权

评论回复
20
jgphu| | 2010-10-22 16:50 | 只看该作者
1、I2C外设的时钟和其它外设(例如SPI,ADC等)一样,都是通过使能相任外设的时种,即等于Fmaster。
2、Fmaster可以来自外部时钟,内部时钟; Fmaster等于外部时钟或内部时钟的整数倍。
3、上面文档有写“输入时钟频率必须被编程生成正确的时间”,就是说Fmaster被编程生成特定的频率,通过生成的这些特定的频率用来产生I2C时钟信号(100K, 400K).
4、现在的重点,也是楼主想问的,就是红色字体Fmaster被编程生成特定的频率,例如:MCU使用外部晶振11MHz, 要想产生3M的输入时钟,STMCU能不能产生?如果能产生,是如何产品的,这个在STM8的SPEC中没有写明。所以楼主才会有疑问。

使用特权

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

本版积分规则

82

主题

179

帖子

0

粉丝