This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我将430G2231的SMCLK( 默认状态也就是MCLK即DCO)从P1.4引出,并用数字示波器和频率计进行了详细测量:
1) 如果初始化中我配置DCO为出厂校准的频率1MHZ,如
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
这时发现信号的频率准确度是比较好的,约在2%误差内,但时钟信号的前后沿都比较"晃抖",为什么会这样?我担心若将此钟输出作为某类特殊信号使用时会产生干扰.
2)如果初始化中我配置DCO为一个非出厂校准频率,,如
BCSCTL1 = 136;
DCOCTL = 96;
此时标称的DCO频率是1.6MHz,实测误差大约在10%以内,准确度确实要差一些,但这时的波形却非常稳定。又选测了其它一些频率,都如此。
想问问为什么会有这种异常?按理出厂校准就是MCU内部根据实际温度补偿一个调整电阻值,但温度都是缓变的,不应该频繁地抖动啊?
1.Modulator 公式:
t = (32 – MODx) × tDCO + MODx × tDCO+1
2.如果不要补偿,应该把DCOCTL中的MODX置零,是DCOCTL的低五位,楼主的设置刚好MODX为0
DCO 模块混有两个DCO 频率,fDCO 和 fDCO+1,用以产生介于fDCO 和 fDCO+1之间的频率。这样就可得到带有所需的平均频率的调制时钟。调制的影响表现形式就是频率的抖动。本质上来说,这种调制将时钟能量扩散到一个宽带中,减小了电磁干扰(EMI)。DCO 频率会随着温度和电压的变化而有所波动。请参阅器件数据手册关于DCO 的具体说明。注意任何供电电源的不稳定也会造成DCO 频率的抖动。