找回密码
 立即注册
查看: 548|回复: 7

有源晶振使用的问题,求解

[复制链接]
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
    发表于 2023-6-2 16:06:44 | 显示全部楼层 |阅读模式
    有源晶振使用的问题,求解-1.png

    芯片stc32g12k128.遇到一个问题。使用了标称25M的有源晶振,以为mcu工作频率就是25M了。在P54输出了一个1/10主频。并对它进行测量。结果发现对应的主频不是25M。求解释(表中P54输出频率列出的是对应主频值)


    //XOSCCR=0xc0; //启动外部晶振 .用22M外晶振
    //while (!(XOSCCR&1));//等待时钟稳定
    CLKDIV = 0x00; //时钟不分频
    CLKSEL = 0x01;//选择外部振荡源,25M有源晶振
    在mcu设置时只选择了外部振荡源。没选外部晶振。

    第一次使用有源晶振,没经验,不知问题在哪里,难道是信号波形不好。谐波在捣乱?还是有源晶振使用时需要关闭什么设置。
    我自己的测量并不保证准确,只做为一个参考,希望看到的是stc-isp设置下载频率不同时,因为mcu使用了外部有源晶振,其工作频率是一个稳定的值。
    回复 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3036

    回帖

    6843

    积分

    超级版主

    积分
    6843
    发表于 2023-6-3 12:25:40 | 显示全部楼层
    1、断开晶振信号,看MCU还能运行吗?
    2、要启动外部晶振,因为需要用到晶振输入电路。
    3、用定时器0或1自动重装并自动取反输出方波,配合测试。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-6-3 15:31:46 | 显示全部楼层
    梁工 发表于 2023-6-3 12:25
    1、断开晶振信号,看MCU还能运行吗?
    2、要启动外部晶振,因为需要用到晶振输入电路。
    3、用定时器0或1自 ...

    关闭外部晶振,使用内部IRC时钟,用stc-isp设置12M,用stc-isp定时器设置T0定时器1毫秒计时中断,在中断程序中翻转P3.3.这时用stc虚拟示波器测得P3.3方波频率1.004K,符合预期。程序不变。把stc-isp设置频率改为24M。再测P3.3方波频率,还是1.004K左右。两种情况用自制频率计测P5.4输出频率都是24M(1/10输出,实际测得值是2.4M)改变stc-isp设置频率为18.432M,这时测P3.3方波频率为1.58K左右,测P5.4频率37M多些。换了一个stc12k128dip40芯片,结果一样。感觉我对设置频率的理解有问题
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-6-3 15:36:35 | 显示全部楼层
    感觉是我在stc-isp中设置12M频率时。实际芯片工作频率是24M

    点评

    下载时选择内部IRC频率,注意程序中不要写CLKDIV,不要写跟IRC有关的寄存器,启动时MCU会自动配置好。 下载选择选择12M,内部振荡是24M,CLKDIV=2,即2分频。 下载选择选择24M,内部振荡是24M,CLKDIV=0,即1分频。  详情 回复 发表于 2023-6-3 15:44
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3036

    回帖

    6843

    积分

    超级版主

    积分
    6843
    发表于 2023-6-3 15:44:06 | 显示全部楼层
    丽江春水 发表于 2023-6-3 15:36
    感觉是我在stc-isp中设置12M频率时。实际芯片工作频率是24M

    下载时选择内部IRC频率,注意程序中不要写CLKDIV,不要写跟IRC有关的寄存器,启动时MCU会自动配置好。
    下载选择选择12M,内部振荡是24M,CLKDIV=2,即2分频。
    下载选择选择24M,内部振荡是24M,CLKDIV=0,即1分频。

    这几年我们做了大量的应用,不管是内部时钟还是外部晶振,都未曾碰到过问题。每天接几十个电话,都未碰到主频异常的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-6-3 16:01:25 | 显示全部楼层
    梁工 发表于 2023-6-3 12:25
    1、断开晶振信号,看MCU还能运行吗?
    2、要启动外部晶振,因为需要用到晶振输入电路。
    3、用定时器0或1自 ...

    打开外部晶振选项,P5.4输出25M了。问题解决。谢谢梁老师
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-6-4 08:32:19 | 显示全部楼层
    梁工 发表于 2023-6-3 15:44
    下载时选择内部IRC频率,注意程序中不要写CLKDIV,不要写跟IRC有关的寄存器,启动时MCU会自动配置好。
    下 ...

    谢谢。记住了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-6-4 08:50:50 | 显示全部楼层
    我的问题出在程序中加了CLKDIV = 0x00; //时钟不分频 。干扰了MCU自己的设置。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-17 20:02 , Processed in 0.069823 second(s), 60 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表