最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

msp430 UCS实验报告

来源:动视网 责编:小OO 时间:2025-09-28 16:12:00
文档

msp430 UCS实验报告

Msp430单片机第二次实验报告1.系统时钟--ACLK,SMCLK,MCLK的产生1.1实验目标(1)了解MSP430F6638的时钟系统(2)掌握配置MSP430F6638时钟的方法(3)了解MSP430F6638的时钟系统与低功耗之间的关系1.2实验原理MSP430F6638具有灵活的时钟系统:(1)外部时钟XT1,XT2;(2)内置时钟DCO(锁相环FLL+);(3)内置时钟VLO,12KHz典型频率,内置REFO,典型频率32.768KHz;(4)时钟检测系统,时钟不稳定或失效检测,
推荐度:
导读Msp430单片机第二次实验报告1.系统时钟--ACLK,SMCLK,MCLK的产生1.1实验目标(1)了解MSP430F6638的时钟系统(2)掌握配置MSP430F6638时钟的方法(3)了解MSP430F6638的时钟系统与低功耗之间的关系1.2实验原理MSP430F6638具有灵活的时钟系统:(1)外部时钟XT1,XT2;(2)内置时钟DCO(锁相环FLL+);(3)内置时钟VLO,12KHz典型频率,内置REFO,典型频率32.768KHz;(4)时钟检测系统,时钟不稳定或失效检测,
Msp430单片机第二次实验报告

1. 系统时钟--ACLK,SMCLK,MCLK的产生

1.1 实验目标

(1) 了解MSP430F6638 的时钟系统

(2) 掌握配置MSP430F6638 时钟的方法

(3) 了解MSP430F6638 的时钟系统与低功耗之间的关系

1.2 实验原理

MSP430F6638 具有灵活的时钟系统:

(1) 外部时钟XT1,XT2;

(2) 内置时钟DCO(锁相环FLL+);

(3) 内置时钟VLO,12KHz 典型频率,内置REFO,典型频率32.768KHz;

(4) 时钟检测系统,时钟不稳定或失效检测,可触发中断;

(5) MCLK ----CPU 运行时钟

(6) SMCLK---子系统运行时钟

(7) ACLK -----辅助时钟

本实验演示了基础的时钟配置。

UCS 模块包括5 个时钟源

(1) XTICLK:低频/高频振荡器,可以使用32768Hz 外部晶振;

(2) VLOCLK:内部低功耗、低频率振荡器,典型频率为10KHz;

(3) REFOCLK:进过调整的内部振荡器,典型值为32768hz,可以用作FLL 的参考时钟;

(4) DCOCLK:内部数字时钟,可以通过FLL 得到稳定的时钟信号;

(5) XT2CLK:可选的高频振荡器。可以用作FLL 的参考时钟。

UCS 模块提供的3 个可利用的时钟信号:

(1) ACLK:辅助时钟。可以通过软件选择XT1CLK, REFOCLK, VLOCLK, DCOCLK,

DCOCLKDIV 或(在有可用的XT2CLK 的情况下)XT2CLK 作为辅助时钟。

DCOCLKDIV 是DCOCLK 通过FLL 模块经过1,2,4,8,16,32 分频获得的。ACLK 可

以为某些外围模块提供时钟。ACLK 可以被1,2,4,8,16,32 分频。ACLK/n 就是

ACLK 经过1,2,4,8,16,32 分频获得的,同时也可以通过外部引脚输出;

(2) MCLK:主时钟。MCLK 可以被1,2,4,8,16,32 分频后为CPU 和系统提供时钟。

MCLK 的获得和来源ACLK 的相同;

(3) SMCLK:子系统时钟。SMCLK 被1,2,4,8,16,32 分频后为个别外围模块提供时钟。

其来源和ACLK 相同。

1.3 实验步骤

(1) 将PC 和板载仿真器通过USB 线相连;

(2) 打开CCS 集成开发工具,选择Project->Import Existing CCS Eclipse Project,导入

MSP430F6638_DemoV2.0\\5.CLK_system\\XT1 sources ACLK 或者

MSP430F6638_DemoV2.0\\5.CLK_system\\XT2 sources SMCLK 文件夹中的工程;

(3) 选择对该工程进行编译链接,生成.out 文件。然后选择,将程序下载

到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程序。(调试方式下的全速运行和直接上电运行程序在时序有少许差别,建议上电运行程序)。

1.4 实验现象

通过示波器实际测量,MSP430 可以通过软件配置,选择不同的时钟源,工作在不同的时钟频率下。

1.5 关键代码

实验一:

#include 

void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer

  P1DIR |= BIT0;                            // ACLK set out to pin

  P1SEL |= BIT0;

//  P5SEL |= BIT4+BIT5;                       // Select XT1

 // while(BAKCTL & LOCKIO)                    // Unlock XT1 pins for operation

 //    BAKCTL &= ~(LOCKIO);

  UCSCTL6 &= ~(XT1OFF);                     // XT1 On

  UCSCTL6 |= XCAP_3;                        // Internal load cap 

  // Loop until XT1 fault flag is cleared

  do

  {

    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);

                                            // Clear XT2,XT1,DCO fault flags

    SFRIFG1 &= ~OFIFG;                      // Clear fault flags

  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  

  UCSCTL6 &= ~(XT1DRIVE_3);                 // Xtal is now stable, reduce drive strength

  UCSCTL4 |= SELA_0;                        // ACLK = LFTX1 (by default)

  UCSCTL5 |= DIVA_0;                         /* ACLK Divider Bit: 0 */

  __bis_SR_register(LPM3_bits);             // Enter LPM3

  __no_operation();                         // For debugger

}

实验二:

#include 

void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer

  P1DIR |= BIT0;                            // ACLK set out to pin

  P1SEL |= BIT0;

  P3DIR |= BIT4;                            // SMCLK set out to pins

  P3SEL |= BIT4;                            

  

  P7SEL |= BIT2+BIT3;                       // Port select XT2

  UCSCTL6 &= ~XT2OFF;                       // Enable XT2 

  UCSCTL3 |= SELREF_2;                      // FLLref = REFO

                                            // Since LFXT1 is not used,

                                            // sourcing FLL with LFXT1 can cause

                                            // XT1OFFG flag to set

  UCSCTL4 |= SELA_2;                        // ACLK=REFO,SMCLK=DCO,MCLK=DCO

  // Loop until XT1,XT2 & DCO stabilizes - in this case loop until XT2 settles

  do

  {

    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);

                                            // Clear XT2,XT1,DCO fault flags

    SFRIFG1 &= ~OFIFG;                      // Clear fault flags

  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  UCSCTL6 &= ~XT2DRIVE0;                    // Decrease XT2 Drive according to

                                            // expected frequency

  UCSCTL4 |= SELS_5 + SELM_5;               // SMCLK=MCLK=XT2

  UCSCTL5 |= DIVS_0;                        /* SMCLK Source Divider 0 */

  __no_operation();

  //while(1);                                 // Loop in place

  __bis_SR_register(LPM0_bits);             // Enter LPM3

  __no_operation();                         // For debugger

}

1.6 思考题

(1) MSP430 系列单片机有哪些时钟输入信号?

答:ACLK,MCLK,SMCLK

(2) MSP430 系列单片机的DCO 振荡器有什么重要用途?

答:DCOCLK是内部数字时钟,可以通过FLL 模块经过1,2,4,8,16,32 分频得到稳定的时钟信号 。可以作为ACLK,MCLK,SMCLK的信号源。DCO振荡器是一个可数字控制的RC振荡器,

它的频率随供电电压、环境温度变化而具有一定的不稳定性。DCO频率可以通过选择FLL的频率(FLLRENCLK/n)来增强振荡频率的稳定性。

(3) MSP430 系列单片机不接任何振荡器是否可以正常工作?

答:不可以。Msp430单片机的时钟既要有高频率以对系统硬件需求和外部事件有较快的反应速度,又要有低频率来降低电流消耗,还要有多个时钟源产生多个时钟输出信号,所以需要外接振荡器。

2. 系统时钟--FLL与时钟校正

2.1 实验目标

(1) 熟悉CCSV5 集成开发环境的使用

(2) 了解MSP430 的时钟系统

(3) 掌握配置MSP430 时钟系统的方法

2.2 实验原理

    本实验详细的介绍了MSP430F6638 的FLL 锁频环电路与时钟的校正。这个实验室通过

FLL 锁频环电路自动校正使内部DCO 振荡器稳定的运行在2.45MHz,相互关系式有:ACLK=XT1=32768Hz,MCLK=SMCLK=DCO=(74+1)*REFO=2457600Hz,这里XTICLK 被选为ACLK,REFO 是内部调整过的32768Hz 参考时钟,提供一个稳定的参考时钟用作FLLREFCLK。

    运行主程序之前关闭看门狗时钟,进行复位,防止改变时钟源时产生可能的错误时间

间隔。用引脚P1.0 与辅助时钟ACLK 连接,引脚P3.4 与子系统时钟SMCLK 连接,通过

软件选择频率为32768Hz 的XT1CLK 时钟源作为辅助时钟,ACLK=XT1=32768Hz,设置

FLL 的相关参数,包括分频器(N+1)FLLN 和分频值FLLD 以及FLL 的参考时钟,通过

f(DCOCLK)=D*(N+1)*f(FLLREFCLK)得到稳定的DCOCLK 频率。

2.3 实验步骤

(1) 将PC 和板载仿真器通过USB 线相连;

(2) 打开CCS 集成开发工具,选择Project->Import Existing CCS Eclipse Project,导入

MSP430F6638_DemoV2.0\\6.CLK_fll\\DCO at 2.45MHz 文件夹中的工程;

(3) 选择对该工程进行编译链接,生成.out 文件。然后选择,将程序下载

到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程序。(调试方式下的全速运行和直接上电运行程序在时序有少许差别,建议上电运行程序)。

2.4 实验现象

    程序运行之后,将示波器探头连接到MCU 的P3.4 管脚,调整好示波器参数,可以检

测出该管脚有2.45MHz 左右的频率输出。

2.5 关键代码

#include 

void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer

  P1DIR |= BIT0;                            // ACLK set out to pins

  P1SEL |= BIT0;                               

  P3DIR |= BIT4;                            // SMCLK set out to pins

  P3SEL |= BIT4;

  

  while(BAKCTL & LOCKIO)                    // Unlock XT1 pins for operation

  BAKCTL &= ~(LOCKIO);

  UCSCTL6 &= ~(XT1OFF);                     // XT1 On

  UCSCTL6 |= XCAP_3;                        // Internal load cap 

  // Loop until XT1 fault flag is cleared

  do

  {

    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);

                                            // Clear XT2,XT1,DCO fault flags

    SFRIFG1 &= ~OFIFG;                      // Clear fault flags

  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  // Initialize DCO to 2.45MHz

  __bis_SR_register(SCG0);                  // Disable the FLL control loop

  UCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODx

  UCSCTL1 = DCORSEL_3;                      // Set RSELx for DCO = 4.9 MHz

  UCSCTL2 = FLLD_1 + 74;                    // Set DCO Multiplier for 2.45MHz

                                            // (N + 1) * FLLRef = Fdco

                                            // (74 + 1) * 32768 = 2.45MHz

                                            // Set FLL Div = fDCOCLK/2

  __bic_SR_register(SCG0);                  // Enable the FLL control loop

  // Worst-case settling time for the DCO when the DCO range bits have been

  // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx

  // UG for optimization.

  // 32 x 32 x 2.45 MHz / 32,768 Hz = 76563 = MCLK cycles for DCO to settle

  __delay_cycles(76563);

  // Loop until XT1,XT2 & DCO fault flag is cleared

  do

  {

    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);

                                            // Clear XT2,XT1,DCO fault flags

    SFRIFG1 &= ~OFIFG;                      // Clear fault flags

  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  

  while(1);                                 // Loop in place

}

2.6 思考题

(1) MSP430 系列单片机有哪些时钟输入源?

答:XT1CLK 低频或高频时钟源,XT2CLK 高频时钟源,VLOCLK 低功耗低频内部时钟源,REFOCLK 低频修整内部参考时钟源,DCOCLK 片内数字控制时钟源。

(2) MSP430 系列单片机提供几种时钟信号?每种时钟信号的通常用途是什么?

答: ACLK 辅助时钟:ACLK可由软件选择来自XT1CLK、REFOCLK、VLOCLK、DCOCLK、

DCOCLKDIV、XT2CLK(由具体器件决定)这几个时钟源之一。然后经1、2、4、8、16、32分频得到。ACLK可由软件选作各个外设模块的时钟信号,一般用于低速外设模块。

   MCLK 系统主时钟: MCLK可由软件选择来自上述5种时钟源,同样可经过分频得到。MCLK主要用于CPU和系统。

   SMCLK 子系统时钟:可由软件选择来自上述5种时钟源,同样可经过分频得到。SMCLK可由软件选作各个外设模块的时钟信号,主要用于高速外设模块。

(3) MSP430 系列单片机的DCO 振荡器有什么重要用途?

答:DCOCLK是内部数字时钟,可以通过FLL 模块经过1,2,4,8,16,32 分频得到稳定的时钟信号 。可以作为ACLK,MCLK,SMCLK的信号源。DCO振荡器是一个可数字控制的RC振荡器,

它的频率随供电电压、环境温度变化而具有一定的不稳定性。DCO频率可以通过选择FLL的频率(FLLRENCLK/n)来增强振荡频率的稳定性。

3. 系统时钟--时钟配置和输入选择

3.1 实验目的

(1) 了解MSP430F6638 的时钟系统

(2) 掌握配置MSP430F6638 时钟的方法

(3) 了解MSP430F6638 的时钟系统与低功耗之间的关系

3.2 实验原理

   本实验演示了使用一个外部的32KHz 晶振作为ACLK 的时钟输入源,使用一个更高频

率的晶振作为SMCLK 的时钟输入源。供CPU 使用的MCLK 由内部的DCO 产生。32kHz

的晶振连接到CPU 的XIN 和XOUT 管脚。高频率的晶振连接到CPU 的XT2IN 和XT2OUT。ACLK 通过P1.0 输出,SMCLK 通过P3.4 输出。

3.3 实验步骤

(1) 将PC 和板载仿真器通过USB 线相连;

(2) 打开CCS 集成开发工具,选择Project->Import Existing CCS Eclipse Project,导入

MSP430F6638_DemoV2.0\\7.CLK_select\\select clock source 文件夹中的工程;

(3) 选择对该工程进行编译链接,生成.out 文件。然后选择,将程序下载

到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程序。(调试方式下的全速运行和直接上电运行程序在时序有少许差别,建议上电运行程序)。

3.4 实验现象

    程序运行之后,将示波器探头连接到MCU 的P3.4 和P1.0 管脚,调整好示波器参数,

可以检测出该管脚有2.45MHz 左右的频率输出。

3.5 关键代码

#include 

void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

  P1DIR |= BIT0;                            // ACLK set out to pins

  P1SEL |= BIT0;                            

  P3DIR |= BIT4;                            // SMCLK set out to pins

  P3SEL |= BIT4;                            

//  while(BAKCTL & LOCKIO)                    // Unlock XT1 pins for operation

//     BAKCTL &= ~(LOCKIO);

  

  P7SEL |= BIT2+BIT3;                       // Port select XT2

  UCSCTL6 &= ~XT2OFF;                       // Set XT2 On

  

  UCSCTL6 &= ~(XT1OFF);                     // XT1 On

  UCSCTL6 |= XCAP_3;                        // Internal load cap 

  // Loop until XT1 fault flag is cleared

  do

  {

    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);

                                            // Clear XT2,XT1,DCO fault flags

    SFRIFG1 &= ~OFIFG;                      // Clear fault flags

  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  

  UCSCTL6 &= ~XT2DRIVE0;                    // Decrease XT2 Drive according to

                                            // expected frequency  

  UCSCTL4 |= SELA_0 + SELS_5;               // Select SMCLK, ACLK source and DCO source

  while(1);                                 // Loop in place

}

文档

msp430 UCS实验报告

Msp430单片机第二次实验报告1.系统时钟--ACLK,SMCLK,MCLK的产生1.1实验目标(1)了解MSP430F6638的时钟系统(2)掌握配置MSP430F6638时钟的方法(3)了解MSP430F6638的时钟系统与低功耗之间的关系1.2实验原理MSP430F6638具有灵活的时钟系统:(1)外部时钟XT1,XT2;(2)内置时钟DCO(锁相环FLL+);(3)内置时钟VLO,12KHz典型频率,内置REFO,典型频率32.768KHz;(4)时钟检测系统,时钟不稳定或失效检测,
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top