[PIC®/AVR®/dsPIC®产品] PIC16F72 HS振荡模式不起振

[复制链接]
zwll 发表于 2022-9-2 23:28 | 显示全部楼层
电容再小一点看看试试5p
dingy 发表于 2022-9-2 23:30 | 显示全部楼层

手册上电容典型值是15P,电阻应该是不需要的。
 楼主| jlyuan 发表于 2022-9-2 23:31 | 显示全部楼层
改成两个5p还是不行
 楼主| jlyuan 发表于 2022-9-2 23:33 | 显示全部楼层
不接电阻也是频率不对。
chuxh 发表于 2022-9-2 23:37 | 显示全部楼层
奇怪了, 你可以试试8M或者20M的吗?
 楼主| jlyuan 发表于 2022-9-2 23:39 | 显示全部楼层
确实如您所推测的用示波器测试晶振就不起振了,今天用频谱仪测试晶振有起振,有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();
}
}      
stly 发表于 2022-9-2 23:42 | 显示全部楼层
代码可以发全一点吗? 你这个看起来不应该测出来时间这么长
 楼主| jlyuan 发表于 2022-9-2 23:44 | 显示全部楼层

代码我重新改为如下:
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。
zyf部长 发表于 2022-9-2 23:46 | 显示全部楼层
你要看汇编有几条指令
 楼主| jlyuan 发表于 2022-9-2 23:47 | 显示全部楼层
混编汇编解决了
lizye 发表于 2022-9-2 23:49 | 显示全部楼层
原来如此。
 楼主| jlyuan 发表于 2022-9-2 23:51 | 显示全部楼层
用示波器看(探头x10模式)看OSC2引脚,不要看OSC1引脚
chuxh 发表于 2022-9-2 23:54 | 显示全部楼层

确定十六进制代码3FBA是实际值吗?
supernan 发表于 2022-9-2 23:57 | 显示全部楼层
没使用过十六进制值来设置PIC中的内容
xxmmi 发表于 2022-9-3 10:44 | 显示全部楼层
按以下方式进行操作可以
renyaq 发表于 2022-9-3 10:47 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dengdc 发表于 2022-9-3 10:49 | 显示全部楼层
寄存器11是Config位Xt或Hs。。
jiajs 发表于 2022-9-3 10:50 | 显示全部楼层
你是根据TS所说的来设置的:0x3FBA =(部分)CP关闭,PWRTEN禁用,WDT禁用,HS振荡器。如果没有振荡,则PWRTEN设置(必须发生1024次振荡,未设置72 ms计时器)应停止处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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