1 / 20

MSP340 LaunchPad 介绍

MSP340 LaunchPad 介绍. LaunchPad 是一款适用于 TI 的 MSP430G2xx 系列产品的完整开发解决方案,可支持多达 20 个引脚,提供板上 Flash 仿真工具,以直接连接至 PC 轻松进行编程、调试和评估。. 目录. 一、 基本时钟系统 二、 通用IO 三、中断 四、 定时器 五、 ADC10 六、课程软件任务介绍. LAUNCHPAD时钟系统 包括: VLO 、 LFXT 、 DCO. 一、时钟系统. • 超低功耗 / 低频振荡器 (VLO) – 4 – 20kHz (典型值12kHz)

keon
Download Presentation

MSP340 LaunchPad 介绍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MSP340 LaunchPad介绍 LaunchPad 是一款适用于TI的MSP430G2xx 系列产品的完整开发解决方案,可支持多达20 个引脚,提供板上Flash 仿真工具,以直接连接至PC 轻松进行编程、调试和评估。

  2. 目录 一、基本时钟系统 二、通用IO 三、中断 四、定时器 五、ADC10 六、课程软件任务介绍

  3. LAUNCHPAD时钟系统包括:VLO、LFXT、DCO 一、时钟系统 • 超低功耗/低频振荡器 (VLO) –4–20kHz(典型值12kHz) –500nA待机流耗 –0.5%/°Cand4%/V漂移 •外接晶体振荡器(LFXT1) –片内可编程负载电容 –故障保护OSC_Fault –脉冲滤波器 •数字控制振荡器(DCO) –0-to-16MHz –+3%容差 –出厂校准(FlashI.M.) 辅助时钟 32768Hz 主系统时钟 子系统时钟 上电后: MCLK 和 SMCLK 由DCOCLK 提供(约1.1 MHz) ACLK 由 LFXT1CLK 提供(LF 模式,6pF内部负载电容)

  4. 设置时钟涉及到寄存器BCSCTL1、BCSCTL2的设置,具体见用户说明说,下面举例设置DOC为1MHz及系统主时钟MCLK。设置时钟涉及到寄存器BCSCTL1、BCSCTL2的设置,具体见用户说明说,下面举例设置DOC为1MHz及系统主时钟MCLK。 // 设置DCO为1MHz BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; // 设定 MCLK BCSCTL2 |= SELM_1+ DIVM_3; // 设置 MCLK 对MCLK的时钟源进行选择 SELM_0:MCLK选择DCOCLK SELM_1:MCLK选择DCOCLK SELM_2:MCLK选择XT2CLK/LFXTCLK SELM_3:MCLK选择LFXTCLK 对MCLK,即指令运行的时钟源进行分频 DIVM_0:MCLK=1M DIVM_1:MCLK=1M/2 DIVM_2:MCLK=1M/4 DIVM_3:MCLK=1M/8

  5. 二、通用IO 1、P口端口寄存器: (1)、PxDIR 输入/输出方向寄存器 (0:输入模式 1:输出模式) (2)、PxIN 输入寄存器 输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。 (3)、PxOUT 输出寄存器 寄存器内的内容不会受引脚方向改变的影响。 (4)、PxIFG 中断标志寄存器 (0:没有中断请求 1:有中断请求) 该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求; 这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位; 外部中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受; (5)、PxIES 中断触发沿选择寄存器 (0:上升沿中断 1:下降沿中断) (6)、PxSEL 功能选择寄存器 (0:选择引脚为I/O端口 1:选择引脚为外围模块功能) (7)、PxREN 上拉/下拉电阻使能寄存器 (0:禁止 1:使能)

  6. 2、P口端口功能示意图:

  7. 3、基本操作: (1)、所有P口都可作为通用IO口使用 (2)、所有P口都可进行字节操作和位操作 按字节操作: 例: P1DIR=0xff; //将P1口作为输出口 PIOUT=0x20; // P1口输出0x20 P1DIR=0x00; //将P1口作为输入口 data=P1IN //读取P1口外部输入值 按位操作: 例: P1DIR=BIT0; //将P1.0作为输出口 P1OUT|=BIT0; //P1.0输出1 P1OUT&=~BIT0; //P1.0输出0 P1DIR&=~BIT0 //将P1.0口作为输入 data=P1IN&BIT0 //读取P1.0口外部输入值

  8. 三、中断 1、中断源: 外部中断:P1、P2、定时器中断、看门狗定时器中断、串口中断、A/D转换 中断、比较器中断。 2、中断的 一般设置: (1)、打开、关闭局部中断: 打开局部中断一般是给想关的特殊功能寄存器相关位置1 以P1口外部中断为例: 打开局部中断: P1IE|=BIT0;//打开P1.0外部中断 ,BIT0的值为0x01,即把P1IE的第一位置1

  9. 关闭局部中断一般是给想关的特殊功能寄存器相关位置0关闭局部中断一般是给想关的特殊功能寄存器相关位置0 同样以P1口外部中断为例: 关闭局部中断: P1IE&=~BIT0;//关闭P1.0外部中断 (2)、打开、关闭全局中断: _EINT();//打开总中断,相当于51的EA=1; _DINT();//关闭总中断,相当于51的EA=0; (3)、各中断向量Interrupt Vectors: • PORT1_VECTOR • PORT2_VECTOR • ADC10_VECTOR • TIMER0_VECTOR • TIMER0_A0_VECTOR • TIMER0_A1_VECTOR • TIMER1_A0_VECTOR • TIMER1_A1_VECTOR • WDT_VECTOR

  10. (4)、中断应用程序举例(外部中断): void interrupt_initial() { P1DIR&=~BIT7; //P1.7为输入 P1IE|=0x80; //P1.7中断允许 P1IES|=0x00; //P1.7上升沿触发 P1IFG=0; //P1.7中断标志清除,对于多源中断必须先清中断标志再打开中断 _EINT(); //总中断允许 } #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { P1IFG&=~BIT7; //P1.7中断标志清除 /*在此写中断服务子程序*/ } • #pragmavector-下面的函数是一个用于所列矢量的中断 • __interruptvoid-识别中断名称

  11. 四、定时器 • 异步16位定时器/计数器 • 连续、递增-递减、递增计数模式 • 3个捕获/比较寄存器 • PWM输出 • 中断向量寄存器,实现快速中断响应 • 可触发DMA • 多个时钟源可选 • 所有430均有Timer_A

  12. 本次课程设计中,采用增计数模式产生PWM波 增计数模式: 捕获/比较寄存器CCR0用作Timer_A增计数模式的周 期寄存器,因为CCR0为16位寄存器,所以该模式 适用于定时周期小于65536的连续计数情况。计数器 TAR可以增计数到CCR0的值,当计数值与CCR0的 值相等时,定时器复位,并从0开始重新计数。

  13. 增计数模式: 增计数模式 0FFFFh 例程: void zengjishu() { TACTL=TASSEL1+TACLR; //选择计数时钟为ACLK,将计数器TAR清零 CCTL0=CCIE; //使能中断 CCR0=200; //计数终值,方波频率为:32768/200/2 TACTL|=MC_1; //选择Timer_A为增计数模式 P1DIR|=BIT0; //P1.0作为输出 _EINT(); //使能总中断 } #pragma vertor =TIMERA0_VECTOR __interrupt void Timer_A(void) { P1OUT^=0X01; //P1.0取反 } 0h

  14. 例程 #include"in430.h" #include "msp430g2553.h" static unsigned char temp = 0xaa; void main( void ) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P1DIR = 0xff; //设定P1口为输出方式 P1OUT = 0xff; //给P1口赋初始值 TA0CCTL0 = CCIE; //打开中断 (Timer0_A3 Capture/Compare Control 0 ) TA0CCR0 = 50000; //设定计数变量 TA0CTL = TASSEL_2 + MC_2; //定时器选择时钟SMCLK,使用模式二连续计数方式 _EINT(); //开总中断 while(1) { LPM0; } //开启低功耗模式0,进入低功耗模式,等待中断唤醒 } #pragma vector = TIMER0_A0_VECTOR __interrupt void time1(void) { temp = ~temp; //取反 P1OUT = temp; //P1口赋值 }

  15. 五、ADC10 一、主要特点: 1、 10位转换精度。 2、有多种时钟源可供选择,内带时钟发生器。 3、配有6个外部通道和2个内部通道。 4、内置参考电源,并且参考电压Vref有8种组合。 5、采样速度快,最快200Ks/s。 6、四种工作模式: 1、单通道单次转换模式: CONSEQ_0。 2、单通道多次转换模式: CONSEQ_2。 3、序列通道单次转换模式:CONSEQ_1 。 4、序列通道多次转换模式:CONSEQ_3。

  16. 例程: P1SEL&=0x20; //使能A/D通道A5; ADC10CTL0 = ADC10SHT_1+ ADC10ON+SREF_1+REF2_5V+REFON+MSC; // 打开ADC10内核,确定采样周期为8*ADC10OSC/2,选择内部参考电压为2.5v; ADC10CTL1 = INCH_5+ADC10DIV_1+CONSEQ_2; // input A5模拟信号输入选择通道A5即P1.5,设置为单通道多次转换模式,分频因子为2 ADC10AE0 |= BIT5; // 使P1.5允许AD模拟输入信号 ADC10CTL0|=ENC; //使能转换; ADC10CTL0|=ADC10SC; //开始转换;

  17. 单片机系统 本课程设计是把输入电压通过buck电路降压给锂电池充电,锂电池电压输出端通过boost电路升压输入到逆变桥得到交流电。有三处用到单片机的地方:buck电路降压、boost电路升压和逆变桥触发输入信号。前两者通过闭环调节取得给定电压,逆变桥触发输入信号则是由单片机输出SPWM波。 充电部分 软件设计

  18. 定时器中断模块 设置定时器中断TIMER_A (1) 它的工作方式和周期,此处设为使用 32位的周期定时器 TIMER1_A0,周期为 1ms。 (2) 使能定时器中断。 (3) 使能定时器 在定时器中断中,对单片机原始频率8MHz 进行8 分频,再乘以1000 成为TIMER1-A0 的周期1ms,每触发一次中断就计数加1,当计数500 下,即500ms 后,对转换好的采 样值进行一次处理,进行PI 调节控制输出PWM 波的占空比。

  19. 三段式充电:

  20. SPWM 输出SPWM则通过SPWM数组表实现,数组表有足够多的数值,按照正弦规律变化,实现正弦波的近似输出。当数字表的元素越多,精度越高。

More Related