2492|3

22

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

430F5529设置时钟,DCOFFG一直置位不能清零 [复制链接]

程序如下
void UCS_Init()
{
                P5SEL |= BIT4+BIT5;                       // Port select XT1
                UCSCTL6 &= ~XT1OFF;                     // XT1 On
                UCSCTL6 |= XCAP_3;                        // Internal load cap

            P5SEL |= BIT2+BIT3;
            UCSCTL6 &= ~XT2OFF;                                                 //打开XT2

            UCSCTL0 = 0x0000;
            UCSCTL3 = SELREF_0 + FLLREFDIV_0;                //n=1,FLLREFCLK时钟源为XT1CLK
                                                                                            //DCOCLK=D*(N+1)*(FLLREFCLK/n);
                                                                                            //DCOCLKDIV=(N+1)*(FLLREFCLK/n);
            UCSCTL4 = UCSCTL4 & (~(SELA_7|SELS_7|SELM_7)) | SELA_4 | SELS_3 | SELM_3;

            /*********************寄存器配置部分******************************/
            _bis_SR_register(SCG0);
            UCSCTL1 = DCORSEL_5;                //DCO频率范围在10~20MHZ
            UCSCTL2 = FLLD_4 | 1;                //D=16,N=1
            //UCSCTL4 = SELA_4 + SELS_3 +SELM_3;                //ACLK的时钟源为DCOCLKDIV,MCLK\SMCLK的时钟源为DCOCLK
            UCSCTL5 = DIVA_1 + DIVS_1;                        //ACLK由DCOCLKDIV的2分频得到,SMCLK由DCOCLK的2分频得到
                                                                                    //最终MCLK:10MHZ,SMCLK:5MHZ,ACLK:32KHZ
            _bic_SR_register(SCG0);        //Enable the FLL control loop
            __delay_cycles(8192);

                while (SFRIFG1 & OFIFG)
                {
                                UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
                                SFRIFG1 &= ~OFIFG;
                }

运行的时候,一直在while里面循环,查寄存器发现DCOFFG始终是置1状态不能清除,我想知道是对DCO的哪里配置存在问题

最新回复

也就是说还是你程序中,对寄存器的操作的问题咯?呵呵,能解决就好。多逛逛430的论坛,你会有收获的  详情 回复 发表于 2016-5-10 16:21
 
点赞 关注

回复
举报

4177

帖子

9

TA的资源

五彩晶圆(高级)

沙发
 
本帖最后由 huaiqiao 于 2016-5-3 21:39 编辑

楼主我先说下,我没有使用过您的这个F5529,但是我的想法是您对照您的一条条语句去看寄存器的配置的值,是否正确。
下午下载了个中文文档,看了下,您也参考一下。DCOFFG是DCO故障标志,建议您先仔细看下这个故障标志,会来自哪里。





点评

根据你的文档,我看了下UCSCTL0寄存器,确实是DCO位一直保持在31才是DCOFFG持续置位,原因也查出来了,是计算频率的设置出了问题,实际算出来的值远超过了UCSCTL1的预设值  详情 回复 发表于 2016-5-10 16:01
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
huaiqiao 发表于 2016-5-3 21:38
楼主我先说下,我没有使用过您的这个F5529,但是我的想法是您对照您的一条条语句去看寄存器的配置的值,是 ...

根据你的文档,我看了下UCSCTL0寄存器,确实是DCO位一直保持在31才是DCOFFG持续置位,原因也查出来了,是计算频率的设置出了问题,实际算出来的值远超过了UCSCTL1的预设值

点评

也就是说还是你程序中,对寄存器的操作的问题咯?呵呵,能解决就好。多逛逛430的论坛,你会有收获的  详情 回复 发表于 2016-5-10 16:21
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

4
 
多大点事er 发表于 2016-5-10 16:01
根据你的文档,我看了下UCSCTL0寄存器,确实是DCO位一直保持在31才是DCOFFG持续置位,原因也查出来了,是 ...

也就是说还是你程序中,对寄存器的操作的问题咯?呵呵,能解决就好。多逛逛430的论坛,你会有收获的
 
 
 

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

查找数据手册?

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-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表