打印

OSCTUNE寄存器调整频率

[复制链接]
2835|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输出频率都不变

使用特权

评论回复
5
yewuyi| | 2014-2-28 17:28 | 只看该作者
你可能要仔细看看手册,内部RC也分很多方式,可能不是每一种都支持微调。

PWM的频率源如果和CPU是一个的话,那么CPU的频率源发生变化,PWM的输出频率也会发生变化,但占空比不变,你还要确定你是占空比不变还是频率不变?

使用特权

评论回复
6
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,真是奇怪了,搞了一周了,实在不行,要投降啦,所以发帖,请求同行高手支援。这位朋友,在这里谢谢你。

使用特权

评论回复
7
licangcxian|  楼主 | 2014-3-1 09:11 | 只看该作者
是频率不变,占空比50%

使用特权

评论回复
8
shuidi_wangdan| | 2014-3-1 11:43 | 只看该作者
路过!

使用特权

评论回复
9
yewuyi| | 2014-3-1 13:14 | 只看该作者
你还是仔细检查一下各项寄存器配置,这个出问题的概率应该不大,你可以先屏蔽掉PWM,然后用代码操作IO翻转测试一下CPU频率是不是也不改变。
如果你确认你的各项时钟源配置等都没问题,可以尝试联系代理商FAE,他们会帮你核实问题,如果确有问题,他们会反映给MCHP寻求最终回复。

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝