各模块简要介绍— 1

Download Report

Transcript 各模块简要介绍— 1

主要内容
• Msp430单片机简介
• Msp430单片机的结构及主要模块
• Msp430单片机的具体应用
—位移测量装置
1 、MSP430单片机简介
主要内容
•
•
•
•
•
MSP430单片机的主要特性
MSP430单片机系列种类
MSP430单片机的应用领域
Msp430单片机的开发工具
Msp430的相关学习资料
MSP430单片机
MSP430系列单片机是美国德州
仪器(TI)1996年开始推向市场的一种
16位超低功耗的混合信号处理器
(Mixed Signal Processor)。称之为
混合信号处理器,主要是由于其针对
实际应用需求,把许多模拟电路、数
字电路和微处理器集成在一个芯片上
,以提供“单片”解决方案。
MSP430单片机的主要特性
• 超低功耗
•
0.1 A掉电模式
0.8 A等待模式
250 A /1MIPS
(1 S时钟唤醒时间)
50nA 端口漏电流
• 16bit RISC CPU
27条核心指令
7种寻址模式
高集成度
10bit SAR ADC
(200ksps)
12bit SAR ADC
(200ksps)
12bit DAC
OP AMP,PGA,LCD
DRIVER ,
硬件乘法器、
MSP430单片机的主要特性
• 容易使用
基于JTAG的嵌入式仿真
便宜的开发工具
应用文档比较多
• 代码安全
硬件熔丝结构
BSL升级,密码错误自动擦除
MSP430单片机系列种类
基于LCD
MSP430 4xx:
基于闪存的MCU,提供1.8伏至3.6伏工作电压、
高达120kB的闪存/ROM和8 MIP (带有FLL+SVS)
MSP430 3xx :
ROM/OTP 产品系列MCU,提供2.5伏至5.5伏工作电压,
高达32kB和4MIPS(带有FLL)
MSP430单片机系列种类
非基于LCD
MSP430x1xx:
基于闪存/ ROM的MCU提供1.8伏至3.6伏的工作电压、
高达60kB和8MIPS(带有基本时钟)
MSP430F2xx:
基于闪存的MCU 提供1.8 伏至3.6 伏工作电压、掉电复位及
16MIPS(带有基本时钟)
MSP430F5XX:
基于闪存的MCU 提供1.8 伏至3.6 伏工作电压、掉电复位及
18MIPS(带有基本时钟)
MSP430单片机的应用领域
• 医疗和工业测量
葡萄糖和胆固醇浓度测量、温度
计、ERG、心率监视器、脉搏血
氧仪
工业测量: 电压电流、温度、压
力、PH值…测量
• 传感设备
报警系统、烟雾探测器、智能家
居、无线资产管理、无线传感器
MSP430单片机的应用领域
• 日常公用测量
水表、气表、自动抄表、先进电
表网络基础设施、热分配表
• 便携式消费
无线鼠标和键盘、触摸按键、
手机、数码相机、MP3
电动牙刷、剃须刀、运动手表等
Msp430单片机的开发工具
硬件:
PC机、 MSP430 JTAG 仿真器、
并口线(USB)、用户板
PC机
JTAG调试器
JTAG
用户板
接口
软件:无限制版IAR集成开发环境
Msp430的相关学习资料
• 基本特性说明PDF文档
包括 pin designation /
functional block / terminal
functions / absolute maximum
ratings / operating
conditions
• 用户手册PDF Msp430xxxx
family user’s guide (关于寄
存器的具体说明)
• 光盘附带的示例程序
• Msp430学习论坛
• 相关书籍
了解到使用430单片机的学习过程
1、了解所用430单片机型号的内部模块
资源。
2、结合实际分析要使用的模块资源。
3、针对具体模块学习相关示例代码。
4、修改代码形成自己的子程序。
5、将不同子程序整合成完整系统程序。
2 、MSP430内部结构
和各模块简要介绍
MSP430内部结构
• 以msp430f247为例
Msp430的引脚图
引脚具体说
明见terminal
functions表
格
各模块简要介绍— 1、CPU
• 16-BIT RISC architecture
源操作数7种寻址模式,目标
操作数4种寻址模式
• 16个寄存器(见右图),寄
存器间传送数据在1个CPU
clock内完成
• R0~R3是专用寄存器PC、
SP、SR、CG,其余为通用
寄存器
各模块简要介绍— 1、CPU
• 51条指令(27条核心指令、24条
仿真指令)。分为单操作数、双
操作数以及相对跳转三种类型。
指令集略
各模块简要介绍— 2、工作模式
MSP430单片机的各个模块都可以独立运行,如定时
器、输入/输出端口、A/D转换、看门狗、液晶显示器等都
可以在CPU休眠的状态下独立工作。若需要主CPU工作,
任何一个模块都可以通过中断唤醒CPU,从而使系统以最
低功耗运行。
让CPU工作于突发状态可以充分利用CPU的低功耗
性能。通常,使用软件将CPU设定到某一低功耗模式,在
需要时使用中断将CPU从休眠状态中唤醒,完成工作后又
可以进入相应的休眠状态。
• 430单片机包括1种活动模式和5种
低功耗模式
不同模式下电流消耗:
各模块简要介绍— 3、msp430f247的
中断向量表(部分)
各模块简要介绍—
4、Msp247的存储器组织
各模块简要介绍—
5、Msp430f247的基准时钟系统
基准时钟可由以下方式提供:
• LFXT1CLK: 400kHz~16MHz的低频/高频晶振
,通常外接32768HZ的表晶或外部时钟信号等
• XT2CLK: 400kHz~16MHz,优化了高频特性
的振荡器,接标准晶振或外部时钟。
• DCOCLK:内部数控RC振荡器(DCO)
• VLOCLK:12kHz的低频/低功耗振荡器
各模块简要介绍—
5、Msp430f247的基准时钟系统
基准时钟提供如下信号:
系统主时钟MCLK:供CPU或高速外设使用,
可以选择任一振荡源,并进行1、2、4、8分
频作为信号源。
子系统时钟SMCLK: 供高速外设使用,可以选
择任一振荡源,并进行1、2、4、8分频作为
信号源。
辅助子时钟ACLK: 供低速外设使用,只能选择
LFXT1进行1、2、4、8分频作为信号源。
各模块简要介绍—
5、Msp430f247的基准时钟系统
系统复位后:
MCLK和SMCLK由DCO提供,
ACLK由LFXT1提供
以下是DCO设置程序:
//设定DCO为16MHZ :
BCSCTL1 =CALBC1_16MHZ;
DCOCTL =CALDCO_16MHZ;
可选频率1M、8M、12M、16M
读取0x10f9和0x10f8两
个地址里面
16MHzDCO常数分别
装入BCSCTL1和
DCOCTL两个寄存器
各模块简要介绍— 6、digital I/O
• 有6个8bit I/O口 P1~P6
• 每个口都可以被配置为输入口或
输出口
• P1口和P2口具有外部中断的功能
,P1口的所有口线共用一个中断
向量,使用各自不同的标志位,
P2口类似。
各模块简要介绍—6、digital I/O
• 重要寄存器
输入寄存器PxIN 、
输出寄存器PxOUT、
方向寄存器PxDIR 、
上拉/下拉使能寄存器PxREN
PxSEL、 PxSEL2
各模块简要介绍—6、digital I/O
使用方法:
(1)首先设置PxSEL、 PxSEL2
确定是作通用口还是作其他功能用
(2)若作通用I/O 口用,则再设置PxDIR
确定是输入还是输出,
若作通用I/O 口输出,则设置PxREN禁止上下拉
若作通用I/O 口输入,则设置PxREN使能上下拉
(3)若作其他功能使用,则设置PxREN使能
上下拉电阻,同时也要指定其信号的输入输
出方向(PxDIR)。
各模块简要介绍—6、digital I/O
配置没有使用到的I/O引脚:
应被配置为I/O功能、输出方
向、上拉/下拉电阻使能。这样可
以减少系统的功耗。
各模块简要介绍—6、digital I/O
控制I/O口的实例:
P1OUT |=BIT0 ; //置P1.0为1
P1OUT |=BIT0+BIT1+BIT7 ;
//置P1.0、 P1.1 、 P1.7为1
P1OUT&=~BIT0 ; //置P1.0为0
各模块简要介绍—7、SVS
• SVS—supply voltage supervisor
SVS可以监视供电电压AVcc或
外部电压,当发生欠压时置标志位
并产生一个POR复位,门槛可以软
件设置。
SVS Block Diagram
SVS特点:
1、可以监视AVcc
2、可选择是否产生POR信号
3、SVS比较器输出软件可访问
4、可设置14个比较门槛
5、可监视外部电压。
各模块简要介绍—8、WDT+
主要功能是在程序跑飞时能
够控制系统的重新启动,当不需
要时可以禁止该功能,此时可以
当成一个间隔计数器使用。
以下是关看门狗程序:
WDTCTL=WDTPW+WDTHOLD;
0x5A00
0x0080
//关看门狗
WDTCTL定义
各模块简要介绍—9、硬件乘法器
hardware multiplier
该模块是430单片机的特色,
乘法器完全用硬件实现,其工作
与CPU完全独立,能够通过CPU
指令对其进行读和写。
可完成16x16bits 、
16x8bits、 8x16bits、 8x8bits
各模块简要介绍—10、Timer_A
概述:
Timer_A是一个具有3个捕捉/比
较模块的16bit定时/计数器,不仅能完
成定时的基本功能,还能完成对计数值
的捕捉功能,而且可以方便地输出多路
PWM波形;其中断功能也很完善,支
持定时器溢出中断、捕捉比较中断等多
种类型,可方便实现定时、测频、输出
PWM波形等多种功能。
Timer_A Block Diagram
Timer_A模式
Timer_A模式—UP Mode
Timer_A模式—Continuous Mode
Timer_A模式—Up/Down Mode
Timer_A的捕捉比较模块
capture/compare blocks
有三个捕捉比较模块TACCR0、
TACCR1、TACCR2,用于捕捉计数值
和产生时间间隔。每个模块都有以下两
种应用模式:
capture mode 、 compare mode
(取决于CAP)
Timer_A的捕捉比较模块
capture/compare blocks
Capture mode: (CAP=1)
外部信号的边沿或软件置位都
可以触发一次捕捉,当捕捉发生时
,计数值TAR被装入TACCRx,此
外捕捉比较标志位CCIFG置1。
Timer_A的捕捉比较模块
capture/compare blocks
Compare mode: (CAP=0)
该模式用于产生PWM信号,
当计数值TAR等于TACCRx时,捕
捉比较标志位CCIFG置1,EQU
x=1,从而影响output unit的输
出(PWM)。
Timer_A的捕捉比较模块
capture/compare blocks
捕捉比较模
块的7种输
出模式:
(output
modes)
Timer_A的捕捉比较模块
capture/compare blocks
捕捉比较
模块的7
种输出模
式
(以CCR1为
例)
Timer_A的捕捉比较模块
capture/compare blocks
捕捉比较
模块的7
种输出模
式
(以CCR1为
例)
Timer_A的捕捉比较模块
capture/compare blocks
捕捉比较
模块的7
种输出模
式
(以CCR2为
例)
各模块简要介绍—11、Timer_B
Timer_B有7个捕捉比较模块,其
功能与Timer_A功能类似,主要在以下
方面不同:
(1)计数长度可以为8bits 、10bits、
12bits、16bits
(2)捕捉比较寄存器具有双缓冲结构,
不同捕捉比较寄存器TBCCRx能够进行
组合,实现严格同步的比较输出。
各模块简要介绍—12、USCI
( 注: USCI即universal serial communication
interface。)
• MSP430F247中有4个USCI模块UCA0 、UCA1、
UCB0、UCB1
其中UCA0和UCA1完全相同,支持以下串行
通信方式:
1、 UART mode
(TXD、RXD)
2、pulse shaping for IrDA communications
3、automatic baud rate detection for LIN
communication
4、 SPI mode (3 or 4 pins)
UCB0和UCB1完全相同,支持以下
串行通信方式:
• I2C mode (SCL 、SDA)
• SPI mode (3 or 4pins,CLK、
SIMO、SOMI、STE)
各模块简要介绍—13、电压比较器
comparator A
各模块简要介绍—14、ADC12
主要特点如下:
(1)12bits逐次逼近型
(2)最大转换速率大于200ksps
(3)采样时间软件可控
(4)可由Timer_A或Timer_B启动转换
(5)可选择内部或外部参考电压
(6)8个外部模拟输入通道(内部温感、
AVcc、外部参考电压源)
(7)转换时钟可设置
(8)单通道单次、单通道连续、多通道单次
、多通道连续等转换模式
(9)ADCcore和参考电压都可以设置为低
功耗模式
(10)16个12bits转换结果存储寄存器
3 、 Msp430单片机的具体应
用 —位移测量装置
Msp430单片机的具体应用
—位移测量装置框图
MSP430单片机需要完成的工作
• 两路AD模拟量采集
(采用了2个SPI接口的ADS7818)
• 接收键盘输入
• 控制LCD显示
• 控制直流电机运行
(方向和速度控制)
位移测量装置中使用到的资源
• 通用I/O口 (键盘显示器)
• 1个SPI模块
(AD)
• Timer_A的捕捉比较模块
(电机驱动PWM信号)
引脚资源使用一览表
键盘
LCD
ADS7818
(2)
电机
P1.4 / P1.5 / P1.6 / P1.7
P4.0~P4.7 / P5.0 / P5.2 / P5.3
P3.0 : UCA0CLK
P3.5 : UCA0SOMI
P3.1 : CONV1
P2.1 : CONV2
P1.0 : 电机方向
P1.2/TA1 : 电机速度信号(PWM
)
关于 “msp430x24x.h”文件
的一些解释
主要是对寄存器符号和一些常数的定义。
寄存器符号定义例如:
#define P1OUT_
(0x0021)
DEFC( P1OUT , P1OUT_)
#define TACCR0_ (0x0172)
DEFW( TACCR0 , TACCR0_)
关于 “msp430x24x.h”文件
的一些解释
• 常数定义例如:
#define BIT0
(0x0001)
#define MC_0
(0*0x10u)
#define TASSEL_1 (1*0x100u)
TACTL = MC_0 ;
//关闭TA
TACTL = TASSEL_1 + MC_1;
//选择ACLK作为时钟,TA工作在UP
mode, 同时可启动TA
TACTL定义
Msp430的中断子程序
0xfffa
#pragma vector = TIMERB0_VECTOR
__interrupt void tb0_isr(void)
{
// 中断服务程序定义
}
//1ms中断