查看: 12143|回复: 16

[其他] 关于内部时钟校准问题

[复制链接]

该用户从未签到

1

主题

14

帖子

0

新手上路

Rank: 1

积分
68
最后登录
1970-1-1
发表于 2010-1-7 20:07:30 | 显示全部楼层 |阅读模式
我用到是8bit的飞思卡尔单片机.我想用内部时钟,不过需要校正.我校正的时候用了PE生成的代码.是读flash里面的校准值.不过读出来的都是ff.问技术支持的结果也是和PE生成的代码是一样的.代码是这样的:
  /*  System clock initialization */
  ICSTRM = *(unsigned char*far)0xFFAF; /* Initialize ICSTRM register from a non volatile memory */
  ICSSC = *(unsigned char*far)0xFFAE;  /* Initialize ICSSC register from a non volatile memory */
  /* ICSC1: CLKS=0,RDIV=0,IREFS=1,IRCLKEN=1,IREFSTEN=0 */
  ICSC1 = 0x06;                        /* Initialization of the ICS control register 1 */
  /* ICSC2: BDIV=1,RANGE=0,HGO=0,LP=0,EREFS=0,ERCLKEN=0,EREFSTEN=0 */
  ICSC2 = 0x40;                        /* Initialization of the ICS control register 2 */
  while(!ICSSC_IREFST) {               /* Wait until the source of reference clock is internal clock */
  }
不过读出来的值是ff    不知道是哪里出了问题.不知道还有没有其他方法可以解决这个问题.    谢谢先
补充  我用的是mc9s08sh30   单片机
我知道答案 目前已有16人回答
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-1-8 10:06:07 | 显示全部楼层

    RE:关于内部时钟校准问题

    要根据手册来设置,希望你能够看看手册是如何设置的。不同的芯片,设置也是不相同的
    该会员没有填写今日想说内容.

    该用户从未签到

    1

    主题

    14

    帖子

    0

    新手上路

    Rank: 1

    积分
    68
    最后登录
    1970-1-1
     楼主| 发表于 2010-1-8 12:02:26 | 显示全部楼层

    RE:关于内部时钟校准问题

    先谢谢  安了

    该用户从未签到

    4

    主题

    34

    帖子

    0

    新手上路

    Rank: 1

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

    RE:关于内部时钟校准问题

    //BusClock=8MHz       
      MCGC2 = 0x42;
      MCGC1 = 0x06;
      MCGC3 = 0x01;
      // Wait until the initialization cycle of the external crystal clock is completed
      while(!MCGSC_LOCK) ;
    使用内部时钟 8M总线频率

    该用户从未签到

    4

    主题

    34

    帖子

    0

    新手上路

    Rank: 1

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

    RE:关于内部时钟校准问题

    DZ32的MCU

    该用户从未签到

    1

    主题

    14

    帖子

    0

    新手上路

    Rank: 1

    积分
    68
    最后登录
    1970-1-1
     楼主| 发表于 2010-1-8 14:27:25 | 显示全部楼层

    RE:关于内部时钟校准问题

    楼上的   这个是你自己写的一个值吧   不是每个芯片都有一个不同的内部校验值吗?   你这样固定一个值的话在另外一个DZ32不通用吧   我菜鸟  不知道是不是这样   
    可以通过先写ICSTRM 寄存器,然后使用FTRIM 位来精确校准IRC。我们将这个9 位的值作为校准值,
    即从0x000 到0x1FF, FTRIM 位为LSB。
    POR 后的校准值总是0x100。写入比0x100 大的值会降低频率,小的值会提高频率。如AN2496 所述,校
    准值与周期成线性关系,除了晶片工厂处理中产生的校准值与周期间的微小非线性变化所带来的微小变化。正
    是因为存在这些非线性的变化,所以为了找到最佳的校准值, AN2496 建议使用迭代的校准方法。
    为设备找到合理的校准值后,可以将该值存入flash 存储器中。该设备掉电后, IRC 可以将保存的值从
    flash 中复制到ICS 寄存器重新校准。Freescale 给每个MCU 定义了推荐使用的flash 地址来存储该校准值。
    具体设备的这个地址要参考数据手册的存储映射图。由工厂校准的设备中,该值就存放在这些位置上。
       不过我看不怎么懂an2496说明   呵呵  还是请大家再讨论讨论
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

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

    RE:关于内部时钟校准问题

    你用的是什么芯片?
    该会员没有填写今日想说内容.

    该用户从未签到

    4

    主题

    34

    帖子

    0

    新手上路

    Rank: 1

    积分
    58
    最后登录
    1970-1-1
    发表于 2010-1-8 15:03:01 | 显示全部楼层

    RE:关于内部时钟校准问题

    我在很多DZ的片子上都调过这个程序 没什么问题的

    该用户从未签到

    1

    主题

    14

    帖子

    0

    新手上路

    Rank: 1

    积分
    68
    最后登录
    1970-1-1
     楼主| 发表于 2010-1-8 15:16:13 | 显示全部楼层

    RE:关于内部时钟校准问题

    我用的是mc9s08sg32   sh32也在用

    该用户从未签到

    4

    主题

    34

    帖子

    0

    新手上路

    Rank: 1

    积分
    58
    最后登录
    1970-1-1
    发表于 2010-1-11 10:17:21 | 显示全部楼层

    RE:关于内部时钟校准问题

    这两个片子时钟模块不太一样的 DZ32的时钟控制模块要复杂些 可以参考下datasheet
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-11 03:22 , Processed in 0.108280 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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