一、基本
1.5529包含五个时钟源
XT1CLK:外部低频晶振,32.786KHz,可以用作FLL参考电源,也可以整4MHZ到32Mhz
XT2CLK:外部高频晶振,可用作fll参考源可以4MHZ到32MHZ
但是F5529的最高CPU频率好像是25MHZ?
VLO:内部低耗低频晶振,10kHZ
REF:内部低频参考源,32.786Khz,可用作FLL参考源,精度高
DCO:数控振荡器,通过FLL设置
三个信号源
ACLK:辅助时钟源
MCLK:主时钟源
SMCLK:
时钟源和信号源的关系是,信号源来自于时钟源的分频。这三个时钟源可以选择从哪个时钟源里面得到时钟信号,并且自身还可以分频。于是可以获得多种多样的分频时钟。时钟源和信号源都可以给其下几个同时使用。当然信号源具体都能从哪几个时钟源中获得好像每个芯片不太一样,还是要看下 user’s guide
2.其中,选择XT1的时候需要将对应的IO设置为SEL=1,这个时候XT1clk才能够使用,否则无法使用
在f5529中,5.4为XT1的输入,5.5位XT1的输出
3.当设定完成后,如果没有时钟的设定,FLL将把MCLK和SMLCK设置为1.048576,DCO为2.097152,说明这个时候DCODIV其实是2
4.锁频环的设定
fdcoclk=D*(N+1)(fref/n)
fdcoclkdiv=(N+1)
(fref/n)
二、寄存器设定
f5529一共有9个相关的寄存器
1、UCSCTL0
用于DCO的设定,在不使用FLL的时候,需要首先设定DCO和MOD,这个在g2553里面有直接的函数设定成为1、2、4、8MHZ,但是f5529好像并没有。这个其实是一个大致的范围,搞不太懂。在使用FLL的时候,这个会自动调整,所以如果用FLL的话,就只需要整成0x00应该就行了。
2、UCSCTL1
DCORSEL:选择DCO的范围,在使用FLL的时候,需要先规定一个范围,这个范围必须将我们所要想达到的频率包括进去,否则应该会出错误。
DCOMOD:是否调制?这个PUC后是0,允许调制,是是否FLL调制还是?不管先
DCO的范围我在DATASHEET里面找到的

3、UCSCTL2
FLLD:D的确定,D其实是分频系数,可以选择12481632次分频
FLLN:就是公式里面N的值范围是0-9,共10位,最高1024
4、UCSCTL3
SELREF:FLL的参考时钟的选择,选择REFOCLK或者XT1CLK是比较常见的32.786kHZ
FLLREFDIV:FLL参考时钟分频,这样的话参考时钟也就能够改变来适应
5、UCSCTL4
SELA:选择ACLK的时钟源
SELS:选择SMCLK的时钟源
SELM:选择MCLK的时钟源
6、UCSCTL5
DIVPA:对于外部管脚的分频?把频率传输给外部管脚,我其实不太明白
DIVA\DIVS\DIVM是对应的分频
7、UCSCTL6
XT2和XT1的相关的寄存器,先不看
8、UCSCTL7
相关时钟的错误标志,当各个时钟出错的时候会置位
看见例程中有这么一段
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
在设定锁频环之前,先让各个时钟稳定,然后在使用锁频环
9、UCSCTL8
信号请求使能
各种时钟的REQEN,之前看到的在不同的模式下,在不同的供电模式中有不同的选择,具体可以看user’s guide 166页
10、UCSCTL9
BYOASSLV:旁路模式输入摇摆电平范围
不太清楚有啥用,目前好像不太需要配置
三、用FLL配置DCO
目前来说还是DCO用的比较多,所以通过FLL来得到DCO还是比较重要的,g2553上没有FLL,就很迷
大致的步骤,来自例程MSP430F55xx_UCS_02
1、选择FLL参考源
UCSCTL3 = SELREF_2; // Set DCO FLL reference = REFO,选择REFO来作为参考
2、检测时钟源是否稳定
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
这个例程里面实际上只需要检测DCO的就行了,不过无所谓,以后直接粘上去就行了
这一步好像也不是必要的
3、关闭FLL控制,好像如果不关闭的话,FLL寄存器不会改变
__bis_SR_register(SCG0); // Disable the FLL control loop
4、选择DCO的范围,设定DCO的D、N
UCSCTL1 = DCORSEL_5; // Select DCO range 16MHz operation
UCSCTL2 |= 249; // Set DCO Multiplier for 8MHz
// (N + 1) * FLLRef = Fdco
// (249 + 1) * 32768 = 8MHz
计算公式就是这样
fdcoclk=D*(N+1)(fref/n)
fdcoclkdiv=(N+1)
(fref/n)
5、开启FLL
__bic_SR_register(SCG0); // Enable the FLL control loop
6、等待DCO稳定
计算公式是
n x 32 x 32 x f_MCLK / f_FLL_reference
这个里面等待的时间是
32 x 32 x 8 MHz / 32,768 Hz = 250000
所以加一个句子
__delay_cycles(250000);

初学MSP430F5529时钟以及FLL配置相关推荐

  1. 对于MSP430F5529时钟系统的理解

    大一下学期才开始自学单片机,真真切切的感受到自己是个弱鸡,专业知识一点不会,看个书都费劲,周围又没有什么人可以交流交流或者带带我,那个酸爽就别提了,学的我一度想挠黑板.没办法,那也只能硬着头皮学,就是 ...

  2. 对MSP430F5438的时钟及uart配置

    对MSP430F5438的时钟及uart配置 在使用的过程中,一直认为比较简单,也一直没有深究,忽然这几天卡壳了,出现问题是操作UART发送出的数据给232显示,并不是想得到的数据.这里涉及了两个地方 ...

  3. 【ARM自学笔记】ARM7时钟简述及配置

    简述 所使用的芯片为NXP的I.MX6U. 硬件分析 原理图如下: 分为两个来源: 32.768KHz晶振(I.MX6U的RTC时钟源) 24MHz晶振(I.MX6U内核和外设的时钟源) 流程分析 P ...

  4. STM32F103ZET6的时钟系统RCC配置

    家人们,今天分析了一下手头ZET6开发板的时钟配置过程,记录一下下: 根据正点原子的<库函数开发指南>,时钟系统可以用时钟树来表示: 一共有HSE(高速外部时钟4-16M,正点原子开发板是 ...

  5. 初学MSP430F5529定时器

    之前一直感觉定时器有点难,但其实后来发现更多的是中断那块没太懂,中断以后会说的.先简单看下定时器吧. 一.基本 1.在user's guide上看到的5529其实有3种定时器,A\B\D,这三种好像确 ...

  6. CAD制图初学入门:CAD选项配置的使用技巧

    在CAD制图工作中,有些时候为了方便绘图会需要使用CAD选项配置功能来设置CAD软件中的一些相关参数.有些刚开始进行CAD制图初学入门的小伙伴可能对此不了解,接下来就让小编以国产CAD软件--浩辰CA ...

  7. CC2530 输入输出配置、中断配置、时钟、串口配置

    CC2530中文数据手册 IO口,I就是input,O是output,芯片io口输入是外面信号传输到芯片.输出是芯片内部传输信号到其他器件. 如何配置管脚的输入.输出状态? 参考 以配置LED灯为例, ...

  8. STM32F4 HAL库开发 --时钟使能和配置

    在STM32F4的HAL库中,外设时钟使能操作都是在RCC相关固件库文件头文件stm32f4xx_hal_rcc.h 定义的.外设时钟使能在HAL库中都是通过宏定义标识符来实现.首先,我们来看看GPI ...

  9. apache php日志配置,HTML_初学:apache与php基本配置,1、APACHE的日志主要分为“ - phpStudy...

    1.APACHE的日志主要分为"错误日志"与"访问日志". 2.apache错误日志目录的设置:/etc/apache2/apache2.conf   约170 ...

最新文章

  1. 自定义Spinner之IconSpinner
  2. Mysql的几个字符串函数【concat、concat_ws、group_concat】
  3. Hive _函数(系统内置函数、自定义函数、自定义UDF函数)
  4. gen文件下有两个R.java_gen目录无法更新,或者gen目录下的R.JAVA文件无法生成
  5. XPE下关闭自动播放功能的方法
  6. exp/imp和expdp/impdp在功能上的区别:
  7. html tab与jQuery,使用jquery实现div的tab切换实例代码
  8. SQOOP抽取各类型数据库脚本示例
  9. 接口和抽象类的区别是什么
  10. deal.II链接PETSc过程记录
  11. 完美汽配管理系统v12服务器,完美汽车维修4S店管理系统
  12. C++ Learning (Next)
  13. jquery滚动条滚动事件_滚动条和jQuery –使用航点的事件处理
  14. 漫画分销系统服务器配置,漫画分销平台怎么选择?月流水30万的老手来说两句!...
  15. WEB网页设计前端(前台)开发的常用工具推荐
  16. linux scons ld_run_path,使用scons替代makefile(3)
  17. 写一个用遗传算法解决VRP问题的代码
  18. win10向VMware中的win7传文件
  19. oracle ssh 连接工具,使用免费的Oracle云服务-通过console连接云主机
  20. ESP8266 SGP30检测eCO2和TVOC

热门文章

  1. 爱心信封打开ui动画特效
  2. 精品基于PHP实现的商城电商网站
  3. Laravel 中管道设计模式的使用 —— 中间件实现原理探究
  4. 中高级Java程序员,你不得不掌握的基本功,挑战20k+
  5. 如何修改pdf文件中文字的大小及颜色
  6. foobar2000_修复了在Foobar2000中找不到设备(0x88780078)
  7. Python 给员工发工资条
  8. 2014年教育领域五大事件立业公信
  9. 学生晚上回宿舍时其在实验室的计算机主机,学生晚上回宿舍时, 其在实验室的计算机主机应关闭, 显示器一般不用关。...
  10. 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 引理1