EMC菜鸟 发表于 2020-12-27 17:59:29

请教STC8G内部高精IRC频率调整的具体细节问题:

本帖最后由 EMC菜鸟 于 2020-12-27 18:05 编辑

STC8G2K32S2
用的内部时钟,在程序运行中需要切换时钟至尽量准确的12M、发现一个问题,如果我一开始就运行12M时,读出IRTRIM的值(BB) 和 T24M_ROMADDR处读出的值(BA)不一样,经过实测貌似BB确实更准确,这是为什么?能否请STC公布该IRC使用上更具体的细节,比如到底哪些寄存器参与了IRC的参数调整、最准确的值到底是什么、如何在程序中能调整到最为准确的频率值(至少跟开机直接运行该频率调整到一样的参数吧)?

EMC菜鸟 发表于 2020-12-28 13:26:00

版主能指点一下吗?

国学芯用 发表于 2020-12-28 13:49:04

如图:参考这个程序

EMC菜鸟 发表于 2020-12-28 14:05:56

国学芯用 发表于 2020-12-28 13:49
如图:参考这个程序

我就是用的这个程序:

                CLKDIV = 0x04;
                IRTRIM = T24M_ROMADDR;
                VRTRIM = VRT20M_ROMADDR;
                IRCBAND = 0x00;
                CLKDIV = 0x02;       

我现在的问题不是这个程序本身,而是这个程序还不够准确!我发现开机直接运行12M、跟我开机后从别的频率切换至12M、效果有差别!我开机直接运行12M,然后读 IRTRIM 和 T24M_ROMADDR 比较、这两值并不相同(差一个字)!

小李非刀 发表于 2020-12-28 21:35:02

STC ISP下载后会调整到所设置的频率,如果用户去修改那些设置参数,则要测频才能确定你调整的频率是否正确,STC ISP是根据下载数据流的时间信息来校准频率的。

EMC菜鸟 发表于 2020-12-29 09:03:22

小李非刀 发表于 2020-12-28 21:35
STC ISP下载后会调整到所设置的频率,如果用户去修改那些设置参数,则要测频才能确定你调整的频率是否正确 ...

我现在的问题是直接运行内部 12M 时读出的 IRTRIM 的参数、和 T24M_ROMADDR 处读出的不一样!

搞不懂为什么 STC 搞个IRC的参数还遮遮掩掩神神秘秘的!
页: [1]
查看完整版本: 请教STC8G内部高精IRC频率调整的具体细节问题: