发新帖我要提问
12
返回列表
打印

PIC16F72 HS振荡模式不起振

[复制链接]
楼主: jlyuan
手机看帖
扫描二维码
随时随地手机跟帖
21
电容再小一点看看试试5p

使用特权

评论回复
22
tian111| | 2021-2-6 14:11 | 只看该作者
手册上电容典型值是15P,电阻应该是不需要的。

使用特权

评论回复
23
jlyuan|  楼主 | 2021-2-6 14:19 | 只看该作者
改成两个5p还是不行

使用特权

评论回复
24
jlyuan|  楼主 | 2021-2-6 14:21 | 只看该作者
不接电阻也是频率不对。

使用特权

评论回复
25
dingy| | 2021-2-6 14:23 | 只看该作者
奇怪了, 你可以试试8M或者20M的吗?

使用特权

评论回复
26
jlyuan|  楼主 | 2021-2-6 14:26 | 只看该作者
确实如您所推测的用示波器测试晶振就不起振了,今天用频谱仪测试晶振有起振,有16.000600Hz,频偏600Hz。是下面这段程序有问题,实测正频宽30us,负频宽75us,帮分析下怎么会有这么大的出入:
DAT0()        {RB5=1;delay(5);RB5=0;delay(15);
// RB5 为IO口定义 PIC16F7x
void delay(int Count)
{
        int i;
for(i=0; i<Count; i++)
{
        NOP();
}
}      

使用特权

评论回复
27
pangb| | 2021-2-6 14:29 | 只看该作者
代码可以发全一点吗? 你这个看起来不应该测出来时间这么长

使用特权

评论回复
28
jlyuan|  楼主 | 2021-2-6 14:33 | 只看该作者

代码我重新改为如下:
PIC16F76,16MHz,机械周期0.25us
DAT0()
{
RB5=1;NOP();
RB5=0;NOP();NOP();NOP();NOP();
}
在执行上述函数时,用示波器测试实际正频宽为2us,负频宽为2.75us。相差0.75us是正确的。但是正频宽理论上应该是0.25us变成实际2us,负频宽理论上应该是1us变成实际2.75us。

使用特权

评论回复
29
xxrs| | 2021-2-6 14:35 | 只看该作者
你要看汇编有几条指令

使用特权

评论回复
30
jlyuan|  楼主 | 2021-2-6 14:38 | 只看该作者
混编汇编解决了

使用特权

评论回复
31
langgq| | 2021-2-6 14:40 | 只看该作者
原来如此。

使用特权

评论回复
32
zhanglli| | 2021-2-6 14:43 | 只看该作者
用示波器看(探头x10模式)看OSC2引脚,不要看OSC1引脚

使用特权

评论回复
33
chuxh| | 2021-2-7 21:23 | 只看该作者
确定十六进制代码3FBA是实际值吗?

使用特权

评论回复
34
dingy| | 2021-2-7 21:26 | 只看该作者
没使用过十六进制值来设置PIC中的内容

使用特权

评论回复
35
supernan| | 2021-2-7 21:30 | 只看该作者
按以下方式进行操作可以

使用特权

评论回复
36
supernan| | 2021-2-7 21:32 | 只看该作者

使用特权

评论回复
37
yinxiangh| | 2021-2-7 21:34 | 只看该作者
寄存器11是Config位Xt或Hs。。

使用特权

评论回复
38
zhanglli| | 2021-2-7 21:37 | 只看该作者
你是根据TS所说的来设置的:0x3FBA =(部分)CP关闭,PWRTEN禁用,WDT禁用,HS振荡器。如果没有振荡,则PWRTEN设置(必须发生1024次振荡,未设置72 ms计时器)应停止处理。

使用特权

评论回复
39
bqyj| | 2021-2-7 21:41 | 只看该作者

明白了,多谢大家讨论这么多哈

使用特权

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

本版积分规则