[讨论] 提问+MSP430F5438DCO范围怎么理解

羽翼之杨勇0102   2014-3-1 19:09 楼主
悬赏 1 分 芯积分未解决
UCSCTL1 = DCORSEL_2; // 设置DCO范围 这个DCO的范围如何计算啊!我看了半天那个用户指南还是不会呀!请教大神!帮帮忙啊!谢谢! 本帖最后由 qinkaiabc 于 2014-3-1 11:27 编辑

回复评论 (20)

我知道那个表啊!可是没有符合条件的范围啊!!谢谢!!能具体点吗?菜鸟伤不起啊!!哈哈!!
点赞  2014-3-1 20:09
引用: 羽翼之杨勇0102 发表于 2014-3-1 12:09
我知道那个表啊!可是没有符合条件的范围啊!!谢谢!!能具体点吗?菜鸟伤不起啊!!哈哈!!

MSP430(F5529)学习笔记——UCS配置详解
http://blog.csdn.net/girlkoo/article/details/9047191
点赞  2014-3-1 20:12
好啦!谢谢!我的数据手册有问题啊!非常感谢啊!!
点赞  2014-3-1 20:22
引用: qinkaiabc 发表于 2014-3-1 20:12
MSP430(F5529)学习笔记——UCS配置详解
http://blog.csdn.net/girlkoo/article/details/9047191

谢谢!我是刚刚开始学习单片机的菜鸟,以前没怎么接触过单片机,只是学了一段时间的51单片机,对于430更是不知所措,您能给我一点学习上的建议吗?我现在是自学,拿了一本实例精讲再看,感觉很费劲,一周也看不完一个实例,很多东西都要花很长时间理解,很困惑!!
点赞  2014-3-2 09:49
引用: 羽翼之杨勇0102 发表于 2014-3-2 01:49
谢谢!我是刚刚开始学习单片机的菜鸟,以前没怎么接触过单片机,只是学了一段时间的51单片机,对于430更 ...

起始430跟51一样,区别在于430的引脚有输入和输出的选择。其他的模块也都是配置寄存器这类的。。
点赞  2014-3-2 09:55
有什么问题尽管在这里提出来
点赞  2014-3-2 09:56
引用: 羽翼之杨勇0102 发表于 2014-3-2 01:49
谢谢!我是刚刚开始学习单片机的菜鸟,以前没怎么接触过单片机,只是学了一段时间的51单片机,对于430更 ...

有什么问题尽管在这里提出来

点赞  2014-3-2 09:56
谢谢!430该怎么学咧!我感觉学的没头没脑,拿着一本实验指导在那里看!不知道合不合理!不知怎么开始!!
点赞  2014-3-2 11:06
while (SFRIFG1 & OFIFG) //清除 OFIFG,and XT1OFFG ,DCOFFG { UCSCTL7 &= ~( XT1LFOFFG + DCOFFG); SFRIFG1 &= ~OFIFG; } 清除 OFIFG,and XT1OFFG ,DCOFFG,是不是不对呀,看笔记应该是清除XT2OFFG XT1LFOFFG DCOFFG!SFRIFG1 & OFIFG这个条件是没有中断即将发生,为什么以这个条件作为判断条件呢? 本帖最后由 羽翼之杨勇0102 于 2014-3-2 13:53 编辑
点赞  2014-3-2 11:10
引用: qinkaiabc 发表于 2014-3-2 09:56
有什么问题尽管在这里提出来

UCSCTL3 |= SELREF_2;                  //将REFCLK配置为REFCLK  
SELREF Bits6-4 FLL基准源选择。
000 XT1CLK
001 保留。默认是XT1CLK。
010 REFOCLK
011 保留。默认是REFOCLK
100 保留。默认是REFOCLK
101 XT2CLK,如果没有XT2,默认REFOCLK
110 保留。XT2CLK,如果没有XT2,默认REFOCLK

没有XT2是什么意思!是说被占用吗?还是说没有使能!
点赞  2014-3-2 14:40
引用: 羽翼之杨勇0102 发表于 2014-3-2 03:10
while (SFRIFG1 & OFIFG) //清除 OFIFG,and XT1OFFG ,DCOFFG
{
UCSCTL7 &= ~( XT1LFOFFG + DCOFFG);

SFRIFG1 &= ~OFIFG; // 清除时钟错误标志位  
点赞  2014-3-2 15:21
引用: 羽翼之杨勇0102 发表于 2014-3-2 06:40
UCSCTL3 |= SELREF_2;                  //将REFCLK配置为REFCLK  
SELREF Bits6-4 FLL基准源选择。
0 ...

XT2是外部接的晶振,没接就不能用了
点赞  2014-3-2 15:35
引用: qinkaiabc 发表于 2014-3-2 15:35
XT2是外部接的晶振,没接就不能用了

XT1也一样吗?都需要外部接的晶振!!不接就不能用!
点赞  2014-3-3 08:58
引用: qinkaiabc 发表于 2014-3-2 15:21
SFRIFG1 &= ~OFIFG; // 清除时钟错误标志位

OFIFG是晶振错误标志位吧?为0是没有中断,为1是有未解决的中断。那个while语句的条件是有中断才执行XT1LFOFFG 和DCOFFG清零,位为0 则最近一次复位之后没有失效条件产生
void Init_Clk(void)
{
UCSCTL1 = DCORSEL_2; // 设置DCO范围
UCSCTL3 |= SELREF_2; // 选择FLL参考源自REFO
UCSCTL4 = SELM_3 + SELA_2 + SELS_4; //MCLK = DCOC,SMCLK =DCODIV,ACLK=REFO
while (SFRIFG1 & OFIFG) //清除 OFIFG,and XT1OFFG ,DCOFFG
{
UCSCTL7 &= ~( XT1LFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG;
}
}
在这个while循环里面,究竟是干什么呢?越看越迷糊!请您指点一下吧!谢谢!!

点赞  2014-3-3 09:27
引用: 羽翼之杨勇0102 发表于 2014-3-3 01:27
OFIFG是晶振错误标志位吧?为0是没有中断,为1是有未解决的中断。那个while语句的条件是有中断才执行XT1L ...

1:对于MSP430F4XX序列来说,它有3个可用的时钟来源,XT1(低速),XT2(高速),DCO.
2:由上面3个时钟源,可以构成4个时钟信号。
     ACLK/N,ACLK,SMCLK,MCLK,其中ACLK/N专门输出给别的IC用,430本身只用后面3个时钟信号。
     ACLK只能由XT1(低速)提供
     SMCLK可以由DCO和XT2(高速)提供,
     MCLK可以由XT1(低速),XT2(高速),DCO.提供。
3:如果只接一个晶振,则必须接在XT1(低速)上。
4:PUC上电的时候,SMCLK和MCLK默认由DCO提供。
5:如果配置MCLK由XT1(低速)或 XT2(高速)提供,则当这两个晶振出错的时候,MCLK会自动切换到      DCO
6:XT1(低速),XT1(高速),XT2(高速),DCO出错的时候,都会置位OFIG,同时PUC上电也会置位OFIG,而当OFIG置位的时候,MCLK会自动切换到DCO。所以,如果一上电就配置MCLK为XT2(高速),这样是不会起作用的,因为它已经切换到了DCO。要切换到XT2(高速),必须等待,直到OFIG清零,然后才可以手动设置MCLK为XT2(高速),这时才会生效。

7:如果因为配置原因而造成DCO出错,同时OFIG置位,MCLK此时仍然由DCO提供,以保证指令的继续执行。
8:DCO和FLL是两个东西,FLL是用来稳定DCO的输出频率。

点赞  2014-3-3 09:58
大牛!您给我介绍一本书吧!我感觉很无奈啊!!很基础的那种!!
点赞  2014-3-3 10:24
引用: 羽翼之杨勇0102 发表于 2014-3-3 10:24
大牛!您给我介绍一本书吧!我感觉很无奈啊!!很基础的那种!!

MCU工程师炼成记:我和MSP430单片机 丁武锋 这本书适合菜鸟吗?我找了一堆资料,看不懂!急死人啊!!

点赞  2014-3-3 14:05
有数据手册!!!
点赞  2014-3-12 20:56
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复