OSCTUNE寄存器调整频率

[复制链接]
3222|8
 楼主| licangcxian 发表于 2014-2-27 16:43 | 显示全部楼层 |阅读模式
有没有高手帮帮忙,我遇到一个问题:PIC16F1824,时钟32MHZ,不准,现在用OSCTUNE修正频率,问题是怎么修改,频率都不变,语句:MOVLB  0x01
                                                       MOFLW  B'00001000'
                                                       MOVWF  OSCTUNE

这个数值怎么变化,频率都不变。
yewuyi 发表于 2014-2-28 08:41 | 显示全部楼层
你用的内部RC振荡还是外部晶体振荡?
 楼主| licangcxian 发表于 2014-2-28 14:26 | 显示全部楼层
用的是内部振荡器
 楼主| licangcxian 发表于 2014-2-28 14:28 | 显示全部楼层
我测试频率的信号是PWM输出,不管怎么改变OSCTUNE的值,PWM输出频率都不变
yewuyi 发表于 2014-2-28 17:28 | 显示全部楼层
你可能要仔细看看手册,内部RC也分很多方式,可能不是每一种都支持微调。

PWM的频率源如果和CPU是一个的话,那么CPU的频率源发生变化,PWM的输出频率也会发生变化,但占空比不变,你还要确定你是占空比不变还是频率不变?
 楼主| licangcxian 发表于 2014-3-1 09:10 | 显示全部楼层
5.2.2.3 内部振荡器频率调整
500 kHz 内部振荡器是出厂时校准的。该内部振荡器可
以通过用软件写入OSCTUNE 寄存器(寄存器5-3)进
行调整。由于HFINTOSC 和MFINTOSC 时钟源是基于
500 kHz 内部振荡器产生的,所以OSCTUNE 寄存器值
的变化将同时应用于两者。
OSCTUNE 寄存器的默认值为0。该值是一个6 位的二
进制补码。值为1Fh 时,将调整为最高频率。值为20h
时,将调整为最低频率。
以上是手册里描述的,我用的是内部HFINTOSC 时钟,PWM也是用的是CPU的时钟,因为PWM的计数器是TIMER2,他的时钟没得选,只有Fosc/4,所以PWM频率不变,也就是说Fosc没变,我用PIC已经5年了,编了不少程序,但以前没有用OSCTUNE,现在想用OSCTUNE,微调频率,怎么都不行,手册我已上上下下看了N遍,没发现有什么注意事项或条件或使能位,手册关于OSCTUNE的使用简绍也极其简单,只说改变它的值,可以改变Fosc,真是奇怪了,搞了一周了,实在不行,要投降啦,所以发帖,请求同行高手支援。这位朋友,在这里谢谢你。
 楼主| licangcxian 发表于 2014-3-1 09:11 | 显示全部楼层
是频率不变,占空比50%
shuidi_wangdan 发表于 2014-3-1 11:43 | 显示全部楼层
路过!
yewuyi 发表于 2014-3-1 13:14 | 显示全部楼层
你还是仔细检查一下各项寄存器配置,这个出问题的概率应该不大,你可以先屏蔽掉PWM,然后用代码操作IO翻转测试一下CPU频率是不是也不改变。
如果你确认你的各项时钟源配置等都没问题,可以尝试联系代理商FAE,他们会帮你核实问题,如果确有问题,他们会反映给MCHP寻求最终回复。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部