msp430f5529学习笔记(2)时钟系统

这篇具有很好参考价值的文章主要介绍了msp430f5529学习笔记(2)时钟系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前~本章将会详细的讲解msp430f5529单片机的时钟系统及其使用方法。如有不妥的地方欢迎各位大佬斧正!!!


目录

什么是时钟系统和时钟源

MSP430f5529时钟源和时钟系统介绍

产生时钟信号的时钟源:

时钟配置


什么是时钟系统和时钟源

       在单片机中,单片机每开始一个周期的工作就需要一个节拍来告诉它,这就相当于我们的心脏每跳动一次,血液被泵到身体各处一次一样。那么单片机的时钟就是单片机工作所需要的节拍,单片机的取指令、译指令等工作都需要以这样的时钟周期为最小周期。

       而实际上这样一个时钟就是一个方波信号,在每一个上升沿或者下降沿会迫使单片机工作一次。产生这样有规律的方波信号的源头就叫做时钟源(振荡器),因此单片机工作的快慢就和这个时钟源的频率有关系,频率越高,单片机完成一次工作的时间就越短,频率越低,单片机完成一次工作的时间就越长。但并不意味着可以无脑的选择最高频率,对很多不需要大量处理,只是控制的情况,为了增加可靠性,降低编程难度,降低功耗,往往选用低频的的时钟源,单片机是数字逻辑电路,频率越高,逻辑门变化越快,运算速度越快,功耗就会增大。(这里消耗电量最大的是逻辑门的通断)因此要根据用户手册和实际情况去选择合适的时钟源。

MSP430f5529时钟源和时钟系统介绍

       MSP430f5529 以低功耗为主推功能,其实现低功耗一方面就是动态的去配置相应的时钟以降低功耗,通过UCS单元产生三路信号:

MCLK(Master clock主时钟,供CPU使用。MCLK配置的越高,cpu的执行速度就越快,功耗就越高。注意:一旦关闭MCLK,CPU也将停止工作。因此在超低功耗系统中可以通过间歇启用MCLK的方法降低系统功耗。MCLK也可经分频后给CPU使用。

SMCLK (Subsystem master clock)子系统时钟,供高速外设使用。

ACLK( Auxiliary clock 辅助时钟,供低速外设使用。

       通过这样的设计,不同的部分就可以根据自己的时钟来工作,不需要的时候可以将空闲的时钟源关闭,进入低功耗模式。根据时钟不同程度上的关闭,分为7种低功耗模式。

        三个时钟相互独立,关闭任何一种时钟不影响其余时钟工作。可通过对三种时钟不同的关闭方式来实现不同的休眠模式(即当关闭某时钟后其相应的外设也将停止工作)。

msp43f5529数字时钟,msp430,学习,单片机,嵌入式硬件

产生时钟信号的时钟源:

  1. XT1CLK 外部低频率或高频率振荡源,32.768Khz(LF模式)或4-32Mhz(HF模式);
  2. XT2CLK 外部高频振荡源,4-32Mhz;
  3. VLOCLK 内部低耗低频振荡源,典型为10KHZ,精度一般;
  4. REFOCLK 内部低频参照源,典型值32.768KHZ,常被用作锁相环FLL的基准频率,精度很高,不使用时不消耗电源,其设置往往要参考LPM模式的的设置;
  5. DCOCLK内部数字控制振荡源,通过内部FLL单元稳定而来,并不算是一个通过振荡产生时钟的源。

       当我们给板子上电时,ACLK =REFOCLK = 32.768Khz;FLLREFCLK = REFOCLK = 32.768K;DCOCLK默认为2.097152MHZ,FLL默认2分频,所以MCLK和SMCLK的频率都为1.048576MHZ。

        MSP430f5529 开发板支持将系统时钟在引脚上复用输出,MCLK输出复用P7.7脚,SMCLK输出复用P2.2脚,ACLK复用P1.0脚,实验板上只引出P1.0和P2.2,而P7.7未被引出。这样方便了我们通过测量的方式去检测时钟系统的配置情况。

时钟配置

接下来我们通过代码来配置这三个时钟:

 #include <msp430.h> 

 void main(void)
 {
     WDTCTL = WDTPW | WDTHOLD;   // 关闭看门狗
     P1DIR |= BIT0;              //P1.0配置为输出
     P1SEL |= BIT0;              //P1.0输出ACLK
     P2DIR |= BIT2;              //P2.2配置为输出
     P2SEL |= BIT2;              //P2.2输出SMCLK
     while(1);
 }

运行上面的代码,可在P1.0和P2.2引脚通过示波器检测到子系统时钟和辅助系统时钟的频率。

UCSCTL4 |= SELA_1;          //配置ACLK = VCOCLK =9.21Khz
UCSCTL4 |= SELA_2;          //配置ACLK = REFOCLK = 32.86Khz
UCSCTL4 |= SELA_3;          //配置ACLK = DCOCLK = 2.11Mhz
UCSCTL4 |= SELA_4;          //配置ACLK = DCOCLKDIV = 1.06Mhz

使用以上代码可配置内部时钟源。

       修改时钟源,配置ACLK = 32.768Khz,MCLK = SMCLK = DCOCLKDIV=1.05M;

#include <msp430.h>

void main(void)
{
    WDTCTL = WDTPW | WDTHOLD;   // 关闭看门狗
    P1DIR |= BIT0;              //配置P1.0为输出
    P1SEL |= BIT0;              //P1.0输出ACLK
    P2DIR |= BIT2;              // 配置P2.2为输出
    P2SEL |= BIT2;              //P2.2输出SMCLK

    P5SEL   |= BIT4+BIT5;       //P5.4和P5.5选择XT1晶振功能
    UCSCTL3 |= SELREF_0;        //设置FLL参考时钟源为XT1
    do
    {
       UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
                                //清除XT2,XT1,DCO故障失效标志位
       SFRIFG1 &= ~OFIFG;       //清除晶振故障失效中断标志位
    }while(SFRIFG1&OFIFG);      //晶振故障失效中断标志位
    UCSCTL6 &= ~XT1DRIVE_0;     //减少XT1驱动能力
    UCSCTL4 |= SELA_0;          //ACLK = XT1CLK

    while(1);
}

使用以上代码可配置外部中断源。文章来源地址https://www.toymoban.com/news/detail-584953.html


到了这里,关于msp430f5529学习笔记(2)时钟系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MSP430F5529单片机入门学习笔记1

    本笔记整理自B站教程 MSP430F5529单片机学习视频汇总 右边部分写错了,看的时候注意 注意#include“driverlib.h”头文件时要注意: 添加MSP430F5xx_6xx文件夹到当前工程下 MSP430F5xx_6xx文件夹是在导入的msp430ware_3_80_13_03包中找 把上述MSP430F5xx_6xx文件夹的路径包含进来 有三个系统时钟可

    2024年02月06日
    浏览(47)
  • 【2023电赛备赛】msp430f5529学习笔记(一)

    【写在前】 本人目前是大二在读生,第一次参加电赛,准备不充分,结果熬了四天,最后成绩却不如人意。有51和32的基础,然后想立一个flag系统的学习一下主打超低功耗的msp430f5529单片机为比赛做准备(毕竟电赛限制TI的板子)。另一方面也是给电协的后继者留下一些参考的

    2024年02月11日
    浏览(47)
  • MSP430学习笔记(四)丨I2C通信(MSP430F5529驱动OLED显示屏)

    ​  笔者学习采用单片机型号为MSP430F5529,使用MSP-EXP430F5529LP开发板。 ​  笔者拥有一定的STM32基础,在学习MSP430的过程中,最开始苦于没有合适的OLED显示驱动代码,所以花了很多时间钻研。综合网上的各种代码,笔者认为江协科技的STM32课程中提供的OLED代码使用方便,

    2024年02月16日
    浏览(49)
  • MSP430F5529库函数学习——串口

    波特率计算网站;导入MSP430Ware,查看例程;原理图和中文开发手册获取 目录 GPIO_setAsPeripheralModuleFunctionInputPin()和GPIO_setAsPeripheralModuleFunctionOutputPin 函数声明  作用 参数 selectedPort selectedPins 使用 USCI_A_UART_init() 函数声明  作用 参数 baseAddress param  USCI_A_UART_enable() 函数

    2024年02月16日
    浏览(68)
  • MSP430F5529库函数GPIO学习

    导入MSP430Ware,查看例程;数据手册以及原理图获取 建议不是很了解寄存器的看完我的MSP430F5529学习笔记  目录 GPIO_setAsOutputPin() 函数声明 作用 参数 selectedPort selectedPins 修改的寄存器 使用 与GPIO_setAsOutputPin()参数一致的函数  GPIO_setOutputHighOnPin() GPIO_setOutputLowOnPin()

    2024年02月15日
    浏览(67)
  • 【MSP430F5529基于库函数的学习】电赛速学及小车实战

    为电赛准备学习的MSP430笔记 提示:主要跟着这个大佬学的 一张经常要看的图 时钟配置和闪烁的LED 时钟系统结构 (1)5个时钟来源 时钟系统模块具有5个时钟来源。 ① XT1CLK:低频/高频振荡器,可以使用32768Hz的手表晶振、标准晶体、谐振器或4~32MHz的外部时钟源; ② VLOCLK:

    2024年02月12日
    浏览(45)
  • MSP430F5529——中断理解

    认识低功耗模式; MSP430的中断,需要两个部分,一部分是打开中断,另外一部分是编写中断服务函数 首先我们得知道__bis_SR_register和_BIS_SR是一个玩意。查看宏定义可知  _BIS_SR()可传入的参数 然后我们查看x的值,发现里面有八个可以传入的值 我们这里只需要关系GIE就可以

    2024年02月16日
    浏览(53)
  • 05:OLED模块【MSP430F5529】

    目录 实物图 字模取字         字模软件         取模步骤         1.设置软件         2.取模         3.输出数据  代码 type.h oledfont.h oled.h oled.c main.c 下面图片中,可以看到OLED模块的四个接口:GND,VCC,SCL,SDA GND VCC SCL SDA 接地 接电源3.3V/5V 接P3.5 接P3.6       

    2024年02月16日
    浏览(46)
  • 06:PWM与电机驱动【MSP430F5529】

    电机型号: 工作方式: 原理图以及接线: 根据官方例程,主要代码为drive.c drive.h main.c (后面好像使用的时候会有什么冲突导致1或者2通道无法正常运行,不太记得了,可以到实物上实验一下子) 下面是智能送药小车使用PWM驱动电机相关代码与注释(在实物中,均能正常运行)

    2024年02月15日
    浏览(49)
  • MSP430F5529循迹小车 2022电赛 C题

    编辑时间2022/8/21 选用材料:主控MSP430F5529、直流减速电机(带光电编码器)、TB6612电机驱动、超声波测距、灰度传感器、无线透传、OLED屏显示。 使用灰度传感器巡线,超声波检测前后车距作为位置环反馈,通过位置环调节前后车距离。 :MSP430   循迹    无线串口透

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包