2904|3

35

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

为什么我的MSP430F5529时钟初始化使用高速XT1模式,XT1HFOFFG一直是高 [复制链接]

MCU:MSP430F5529

本人想使用这款单片机的XT1高速频率模式,但是经过配置之后,XT1HFOFFG标志位一直为高。

我现在外部接的是12M无源晶振和2个30PF负载电容。

板子是自己做的,之前尝试过用32768HZ的晶振使用低速频率模式就能正常工作。换成告诉就有问题,网上的类型情况我也百度了,该改的都改了,可是还是有问题,下面是我的初始化代码:

求大佬帮我看看哪里有问题,谢谢了!

 

P5SEL |= BIT4+BIT5;
    UCSCTL6 |= XTS + XT1DRIVE_1;
    UCSCTL6 &= ~XT1OFF;


    UCSCTL3 = SELREF__REFOCLK + FLLREFDIV__1 ;//FLL参考时钟XT1 FLL参考时钟1分频
    __bis_SR_register(SCG0);//关闭FLL
    UCSCTL0 = 0x0000;//DCO MOD最低
    UCSCTL1 = DCORSEL_2 + 0 ;//DCO频率范围选择2 + 使能调制器
    UCSCTL2 = FLLD__1 + 61 ;//预分频1  + 31倍倍频
    __bic_SR_register(SCG0);//开启FLL
    while(SFRIFG1 & OFIFG)
    {
        UCSCTL7 &= ~(DCOFFG + XT1HFOFFG + XT1LFOFFG +XT2OFFG);//清除XT1 XT2 DCO时钟错误标志
        SFRIFG1 &= ~OFIFG;//清除时钟错误标志
    }
    UCSCTL4 = SELA__XT1CLK + SELM__XT1CLK + SELS__XT1CLK  ;
    UCSCTL5 = DIVPA__1 + DIVM__1 + DIVS__1 + DIVA__1 ;

最新回复

XT1HFOFFG标志位一直为高,说明还是配置的不对,还得仔细看下说明书上MSP430F5529时钟的配置。   详情 回复 发表于 2019-7-11 09:00
 
点赞 关注

回复
举报

2618

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

XT1HFOFFG标志位一直为高,说明还是配置的不对,还得仔细看下说明书上MSP430F5529时钟的配置。

点评

嗯 我就是看了才不明白 我明明已经开了XT1的高频模式,也选择了高频模式的范围。我真的不明白哪里还有问题了。我百度了很多这个案例,有人这个标志位没清零是因为寄存器配置有问题,我现在配置我确定是没错的,晶振  详情 回复 发表于 2019-7-13 10:04
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
alan000345 发表于 2019-7-11 09:00 XT1HFOFFG标志位一直为高,说明还是配置的不对,还得仔细看下说明书上MSP430F5529时钟的配置。

嗯 我就是看了才不明白 我明明已经开了XT1的高频模式,也选择了高频模式的范围。我真的不明白哪里还有问题了。我百度了很多这个案例,有人这个标志位没清零是因为寄存器配置有问题,我现在配置我确定是没错的,晶振用的无源加负载电容,可是就是标志位不能清零。

 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

4
 

此问题已经解决。

我将以下程序进行了更改。

    while(SFRIFG1 & OFIFG)
    {
        UCSCTL7 &= ~(DCOFFG + XT1HFOFFG + XT1LFOFFG +XT2OFFG);//清除XT1 XT2 DCO时钟错误标志
        SFRIFG1 &= ~OFIFG;//清除时钟错误标志
    }
    UCSCTL4 = SELA__XT1CLK + SELM__XT1CLK + SELS__XT1CLK  ;
    UCSCTL5 = DIVPA__1 + DIVM__1 + DIVS__1 + DIVA__1 ;

 

改为了

    UCSCTL4 = SELA__XT1CLK + SELM__XT1CLK + SELS__XT1CLK  ;
    UCSCTL5 = DIVPA__1 + DIVM__1 + DIVS__1 + DIVA__1 ;

    while(SFRIFG1 & OFIFG)
    {
        UCSCTL7 &= ~(DCOFFG + XT1HFOFFG + XT1LFOFFG +XT2OFFG);//清除XT1 XT2 DCO时钟错误标志
        SFRIFG1 &= ~OFIFG;//清除时钟错误标志
    }
 

我的理解是要先让各个时钟分配到时钟源,只有当XT1知道自己没有被3个时钟的任何一个使用,它才会自己关闭。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表