完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1. 数控振荡器(DCO)
DCO是一个集成的数字控制振荡器。DCO频率可以通过软件使用UCSCTL1.DCORSEL、UCSCTL0.DCO和UCSCTL0.MOD位进行调整。DCO频率可由FLL选择性地稳定到FLLREFCLK/n的多个倍频。FLL可以接受由UCSCTL3.SELREF位选择的不同参考时钟源。参考时钟源包括XT1CLK、REFOCLK或XT2CLK(如果可用)。n的值由UCSCTL3.FLLREFDIV位(n=1、2、4、8、12或16)定义。默认值为n=1。在某些情况下,可能不需要或不希望FLL操作;在这些情况下,不需要FLLREFCLK。这可以通过设置UCSCTL3.SELREF={7}来实现。 ******************************************************************* 注:仅适用于MSP430F543x和MSP430F541x非A版本 通过设置UCSCTL3.SELREF={7} 将XT2CLK用作FLL参考时钟源 ******************************************************************* UCSCTL2.FLLD位将FLL预分频器值D配置为1、2、4、8、16或32。默认情况下,D=2,MCLK和SMCLK来自DCOCLKDIV,提供时钟频率DCOCLK/2。 倍频器(N+1)和分频器值D定义了DCOCLK和DCOCLKDIV频率。倍频器(N+1)可使用UCSCTL2.FLLN位设置,其中N>0。可以使用的最小乘数(N+1)是2。如果无意中写入FLLN=0h,逻辑将导致FLLN=1h。因此,设置FLLN=0h也相当于设置FLLN=1h,并将产生乘2。所有其他FLLN设置的行为如下所述;例如,FLLN=2h导致乘3,或FLLN=3h导致乘4。 2.DCO频率区间选择 MSP430F6736A, MSP430F6735A, MSP430F6734A, MSP430F6733A MSP430F6731A, MSP430F6730A, MSP430F6726A, MSP430F6725A MSP430F6724A, MSP430F6723A, MSP430F6721A, MSP430F6720A 这些芯片为例 当选择适当的DCO频率范围(UCSCTL1.DCORSEL)时,目标DCO频率fDCO应设置为在fDCO(n,0)、MAX≤fDCO≤fDCO(n,31)、MIN范围内,其中: fDCO(n,0),MAX代表:DCORSEL=n、DCO=0指定的最大频率, fDCO(n,31)、MIN代表:DCORSEL=n、DCO=31指定的最小频率 这样可以确保目标DCO频率位于选定的范围内。还应注意,如果所选范围的实际fDCO频率导致FLL或应用程序选择节拍0或31,则DCO故障标志置位,报告所选范围处于其最小或最大节拍设置。 例如:需要fDCO的输出频率位16MHz,那么DCORSEL=5 fDCO(5,0), max = 6MHz < fDCO(16MHz) < fDCO(5,31), min = 23.7MHz 3.调整DCO频率 默认情况下,FLL处于启用状态。可通过设置SCG0或SCG1来禁用FLL。当FLL被禁用时,DCO将继续在UCSCTL0和UCSCTL1中定义的当前设置下运行。如果需要,可以手动调整DCO频率。否则,DCO频率由FLL来稳定 在PUC之后,UCSCTL1.DCORSEL={2}和UCSCTL0.DCO={0}。MCLK和SMCLK来源于DCOCLKDIV。由于CPU执行代码的时钟是MCLK,来自快速启动DCO的,因此在不到5us的时间内从PUC开始执行代码。 DCOCLK的频率由以下设置:
FLL连续向上或向下计数频率积分器。驱动DCO的频率积分器的输出可以在UCSCTL0(MOD和DCO)、UCSCTL1中读取。计数用频率fFLLREFCLK/n(n=1、2、4、8、12或16)调整+1,或用频率fDCOCLK/[D×(N+1)]调整-1。 ******************************************************************* 注:读取UCSCTL0.MOD和UCSCTL0.DCO位 积分器由DCOCLK更新,DCOCLK可能和MCLK工作频率不同。用户可能无法立即读取先前写入的值,因为尚未对积分器进行更新。这很正常。在下一次DCOCLK更新积分器时,可以读取正确的值。 另外,由于MCLK可以异步于积分器更新,在这种情况下,可能导致读取的值损坏。在这种情况下,应采用多数表决法。 ******************************************************************* 5个积分器位(UCSCTL0位12至8)设置DCO频率节拍。DCO实现了32个节拍,每个节拍比前一个提高了大约8%。调制器混合两个相邻的DCO频率以产生分数节拍。 对于给定的DCO偏差范围设置,必须给DCO留出一定的时间,以使其稳定运行在适当的节拍上。节拍之间需要(n×32)个fFLLREFCLK周期,最坏情况下需要(n×32×32)个fFLLREFCLK周期才能使得DCO稳定。值n由UCSCTL3.FLLREFDIV位(n=1、2、4、8、12或16)定义。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:46 , Processed in 0.722170 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号