查看: 8312|回复: 6

[其他] 请教如何防止晶振抖动问题

[复制链接]

该用户从未签到

3

主题

33

帖子

0

新手上路

Rank: 1

积分
58
最后登录
1970-1-1
发表于 2010-8-17 13:59:42 | 显示全部楼层 |阅读模式
我用的是12M晶振,通过PLL倍频到总线时钟为12M。软件仿真时,晶振总是在抖动。用示波器抓PWM波形时,PWM方波的频率也总是随总线时钟的抖动而抖动。  比如总线频率设置为12MHz,但实际运行为11.99627M或12.01982M; PWM方波的频率设置为80KHz,而实际则为79.02536K或81.2374K。   PWM波即随总线时钟的抖动而抖动。
请问如何防止晶振抖动?  如何解决PWM波不抖动问题?  因为我需要产生一路精确的PWM波形,不允许抖动的。 谢谢了。。。
我知道答案 目前已有5人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-8-17 14:04:25 | 显示全部楼层

    RE:请教如何防止晶振抖动问题

    12M晶振分频处理肯定不是理想状态,建议使用11.0592M的晶振。
    该会员没有填写今日想说内容.

    该用户从未签到

    3

    主题

    33

    帖子

    0

    新手上路

    Rank: 1

    积分
    58
    最后登录
    1970-1-1
     楼主| 发表于 2010-8-17 14:12:08 | 显示全部楼层

    回复:请教如何防止晶振抖动问题

    回复第 2 楼 安 于2010-08-17 06:04:25发表:
    12M晶振分频处理肯定不是理想状态,建议使用11.0592M的晶振。 

    我用的单片机是MC9S08DZ60,飞思卡尔单片机能把1~16M范围内的外部晶振倍频到你想要的数值(0~40M)。应该不是这个原因吧?   我用16M的晶振同样会出现抖动现象。
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-8-17 17:02:46 | 显示全部楼层

    RE:请教如何防止晶振抖动问题

    你可以开启时钟微调,时钟参考选择外部时钟,不要选择内部,内部时钟误差比较大。
    该会员没有填写今日想说内容.

    该用户从未签到

    3

    主题

    33

    帖子

    0

    新手上路

    Rank: 1

    积分
    58
    最后登录
    1970-1-1
     楼主| 发表于 2010-8-19 08:53:50 | 显示全部楼层

    回复:请教如何防止晶振抖动问题

    回复第 4 楼 安 于2010-08-17 09:02:46发表:
    你可以开启时钟微调,时钟参考选择外部时钟,不要选择内部,内部时钟误差比较大。 

    时钟微调是对内部自带的时钟的吧,我现在是使用外部晶振的,如果使用芯片内部自带的4M时钟才可以使用时钟微调啊,版主
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-8-19 09:53:50 | 显示全部楼层

    RE:请教如何防止晶振抖动问题

    把你的时钟设置代码给我看看。
    该会员没有填写今日想说内容.

    该用户从未签到

    3

    主题

    33

    帖子

    0

    新手上路

    Rank: 1

    积分
    58
    最后登录
    1970-1-1
     楼主| 发表于 2010-8-19 14:29:02 | 显示全部楼层

    回复:请教如何防止晶振抖动问题

    回复第 6 楼 安 于2010-08-19 01:53:50发表:
    把你的时钟设置代码给我看看。 

         //Moving from FEI to PEE Mode: External Crystal = 12 MHz, Fmcgout = 12M, Bus Frequency = 6 MHz
         
            //FEI -> FBE
            MCGC2 = 0b00110110; //0x36 set BDIV=1
           while (MCGSC_OSCINIT != 1);
           MCGC1 = 0b10111000; //0xb8 set RDIV=128
           while (MCGSC_IREFST != 0);
           while (MCGSC_CLKST != 0b10);
           //FBE -> BLPE
           MCGC2 = 0b00111110; //0x3e
           MCGC1 = 0b10011000; //0x98 set R=8 12MHz/8 = 1.5MHz(满足PLL的1~2MHz),
           MCGC3 = 0b01001000; //0x48 set VDIV=32
           MCGC3 = 0b01000010; //0x42 set VDIV=8
           while (MCGSC_PLLST != 1);
           //BLPE -> PBE
           MCGC2 = 0b00110110; //0x36;
           while (MCGSC_LOCK != 1);
           //PBE -> PEE
           MCGC1 = 0b00011000; //0x18
           while (MCGSC_CLKST != 0b11);
       
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 20:37 , Processed in 0.101985 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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