MSP430f5438初学者笔记
MSP430单片机笔记
1、MSP430 端口功能P1、P2 I/O、中断功能、其他片内外设功能P3、P4、P5、P6 I/O、其他片内外设功能S、COM I/O、驱动液晶2、PxDIR 方向寄存器0 为输入模式1 为输出模式在PUC 后全都为位,作为输入时,只能读;作为输出时,可读可定。
3、PxIN 输入寄存器输入寄存器是只读的,用户不能对它写入,只能读取其IO 内容。
此时引脚方向必须为输入。
4、PxOUT 输出寄存器这是IO 端口的输出缓冲器,在读取时输出缓存的内容与脚引方向定义无关。
改变方向寄存器的内容,输出缓存的内容不受影响。
5、PxIFG 中断标专寄存器标志相应引脚是否有待处理中断信息。
0 没有中断请求1 有中断请求6、PxIES 中断触发沿选择寄存器0 上升沿使相应标志置位1 下降沿使相应标志置位7、PxIE 中断使能寄存器0 禁止中断1 允许中断8、PxSEL 功能择寄存器0 择引脚为I/O 功能。
1 择引脚为外围模块功能9、关于端口P3、P4、P5、P6端口P3、P4、P5、P6 是没有中断功能的,其它功能与P1、P2 相同。
所以在此不再作详尽说明。
10、关于端口COM、S这些端口实现与LCD 片的驱动接口,COM 端是LCD 片的公共端,S 端为LCD片的段码端。
LCD 片输出端也可以用软件配置为数字输出端口,详情使用请查看其册。
11、WDT 看门狗看门狗定时器实际上是一个特殊的定时器,它的的功能是当程序运行发生故障序时能使系统从新启动。
其原理就是发生的故障的时间满足规定的定时时间后,产一个非屏蔽中断,使系统的位。
12、定时器各种定时器功能看门狗定时器基本定时,当程序发生错误时执行一个受控的系统重启动。
基本定时器基本定时,支持软件和各种外围模块工作在低频率、低功耗条件下。
定时器A基本定时,支持同时进行的多种时序控制、多个捕获、比较功能和多种输出波形(PWM),可以以硬件方式支持串行通信。
定时器B基本定时,功能基本同定时器A,但比较定时器 A 灵活,功能更强大。
msp430f5438使用说明.
MSP430F5438 开发板使用说明
1.电源
开发板使用DC5V的外部供电,跳线J3实现了开关功能。
电源接通后D6的LED点亮。
2. 复位按键
S13为复位按键。
按下复位按钮,即可将程序复位,从头开始执行。
3.键盘
开发板设有12个按键,为3*4的行列扫描键盘。
使用P3.0到P3.7端口,P3.0、P3.1、P3.2为行线,P3.4、P3.5、P3.6、P3.7为列线。
列线分别由上拉电阻拉到VCC,在行线与列线的每一个交接处有一个按键,按键的两端分别接在行线和列线上。
如果有键按下,则与只相连的行线与列线被连通,即可检测按键。
4.LCD显示
表1:12864LCD的引脚说明
IO口连接
P9.5------RS P9.6------R\W P9.7------E P10.0~10.7--------DB0~DB7 P11.0-------CS1 P11.1-------CS2 P11.2------RST
跳线J4是背光开关;
电位器R13背光亮度调节。
5.LED
P9.0 9.1 9.2 9.3 9.4 口接有LED,设置各口为输出高电平时LED点亮,低电平时熄灭。
6.扩展IO口
开发板两侧的双排插针。
MSP430F5438管脚。
MSP430单片机深入学习笔记
复位1.POR信号只在两种情况下产生:➢微处理器上电。
➢RST/NMI管脚被设置为复位功能,在此管脚上产生低电平时系统复位。
2.PUC信号产生的条件为:➢POR信号产生。
➢看门狗有效时,看门狗定时器溢出。
➢写看门狗定时器安全健值出现错误。
➢写FLASH存储器安全键值出现错误。
3.POR信号的出现会导致系统复位,并产生PUC信号。
而PUC信号不会引起POR信号的产生。
系统复位后(POR之后)的状态为:➢RST/MIN管脚功能被设置为复位功能。
➢所有I/O管脚被设置为输入。
➢外围模块被初始化,其寄存器值为相关手册上注明的默认值。
➢状态寄存器(SR)复位。
➢看门狗激活,进入工作模式。
➢程序计数器(PC)载入0xFFFE(0xFFFE为复位中断向量)处的地址,微处理器从此地址开始执行程序。
4.典型的复位电路有以下3种:(1)由于MSP430具有上电复位功能,因此,上电后只要保持RST/NMI(设置为复位功能)为高电平即可。
通常的做法为,在RST/NMI管脚接100kΩ的上拉电阻,如图1-5(a)所示。
(2)除了在RST/NMI管脚接100kΩ的上拉电阻外,还可以再接0.1μF的电容,电容的另一端接地,可以使复位更加可靠。
如图1-5(b)所示。
(3)由于MSP430具有极低的功耗,如果系统断电后立即上电,则系统中电容所存储的电荷来不及释放,此时系统电压不会下降到最低复位电压以下,因而MSP430不会产生上电复位,同时RST/NMI管脚上也没有足够低的电平使MSP430复位。
这样,系统断电后立即上电,MSP430并没有被复位。
为了解决这个问题,可增加一个二极管,这样断电后储存在复位电容中的电荷就可以通过二极管释放,从而加速电容的放电。
二极管的型号可取1N4008。
如图1-5(c)所示。
系统时钟振荡器:1.DCO 数控RC振荡器,位于芯片内部。
不用时可以关闭2.LFXT1 可以接低频振荡器,典型的如32.768kHz的钟表振荡器,此时振荡器不需要接负载电容。
MSP430f5438初学者笔记
MSP430f5438初学者笔记一、简介1.1CPU:16-bit RISC除program-flow指令外所有指令都在寄存器和7种源操作数寻址方式及4种目的操作数合作下执行16个寄存器,register-to-register指令执行时间是一个CPU时钟R0 程序计数器寄存器20-bitR1 堆栈指针20-bitR2 状态寄存器16-bitR3 不变的产生器R4~R15 通用寄存器1.2指令集:51指令3格式7中寻址方式附加指令1.3操作模式6个可软件设置的LOW-POWER模式一个中断事件可以唤醒5个模式中的任何一个,响应请求,并从中断程序中返回原模式Mode ACTIVE DISABLEDActive mode (AM) 所有时钟ACTIVELow-power mode 0 (LPM0) ACLK SMCLK FLL CPU MCLK LPM1 ACLK SMCLK CPU FLL MCLK LPM2 DCO发生器ACLK CPU MCLK FLL DCOCLK LPM3 ACLK CPU MCLK FLL DCOCLK DC发生器LPM4 晶振关闭完整数据保留LPM5 内部调节器关闭无数据保留通过RST和IO唤醒1.4中断矢量地址:FFFF~FF80H1.5 SFR处于最低地址空间可以进行字访问和字节访问1.6存储256K闪存空间64K程序存储器16KRAM 512BBSL程序装载器用于编程存储器串连接口1.7外围时钟:支持统一的时钟系统UCS包括:32K手表晶振(XT1 低频模式)内部低频振荡器VLO内部平衡低频振荡器REFO内部集成数字控制器DCO高频晶振(XT1高频模式or XT2)FLL锁频环连同一个数字调节器使得DCO构成一个多倍可编程的手表晶振时钟信号:ACLK 32K手表晶振、高频晶振、VLO、REFO、DCO MCLK CPU用,来源同ACLKSMCLK 用于外围来源同ACLK多分频ACLK电源管理模块(PMM)包括一个集成的PMM电压调节器,提供核心电压设备和包含可编程的产出水平,来提供电力的优化。
Msp430学习笔记
Msp430学习笔记一、简介图1 基本结构图2 pin designation结论:1.基本每个管脚都可以复用2.外围功能模块丰富端口介绍(32 I/O pins)1.端口P1和P2具有输入、输出、中断和外部模块功能。
这些功能可以通过各自的7个控制寄存器的设置来实现。
(1)PxDIR 输入输出方向寄存器rw(2)PxIN 输入寄存器r(3)PxOUT 输出寄存器r(4)PxIFG 中断标志寄存器r(5)PxIES 中断触发沿选择寄存器rw(6)PxIE 中断使能寄存器rw(7)PxSEL 功能选择寄存器rw2.其他端口:四个控制寄存器(除去中断相关)看看例程二、时钟部分1.时钟寄存器设置SCFQCTL 系统时钟控制寄存器(倍频,反馈后默认是31,31+1=32)SCFI0 系统时钟频率调整器0(锁频环反馈中的分频(实质最终是倍频))SCFI1 系统时钟频率调整器1(自动控制调整,无需软件设置)FLL_CTL0 FLL+控制器0 (反馈中是否分频、选择LFXT1晶振的有效电容)FLL_CTL1 FLL+控制器1 (振荡器控制、时钟源对应的振荡器的选择,默认情况下:振荡器打开,MCLK选择DCOCLK,SMCLK选择DCOCLK)图时钟模块2.工作模式:One Active Mode、Five Power Saving ModesMSP430是一个特别强调低功耗的单片机系列,尤其适用于采用电池供电的长时间工作场合。
系统根据应用和节能使用不同的时钟信号,这样可以合理利用系统的电源,实现整个系统的超低功耗。
中断是MSP430微处理器的一大特色。
有效地利用中断可以简化程序,并且提高执行效率和系统稳定性。
几乎所有的msp430系统单片机的每个外围模块都能产生中断,为MSP430针对事件(外围模块产生的中断)进行的编程打下基础。
MSP430在没有事件发生时处于低功耗模式,事件发生时通过中断唤醒CPU,时间处理完毕后CPU再次进入低功耗模式,由于CPU运算速度和推出低功耗的速度很快,所以在应用中,CPU大部分时间都处于低功耗状态,使得系统的整体功耗极大地降低。
关于MSP5438_DCO总结
MSP430F5438A其中TI例程,程序开始前的一句注释就让我困惑了很久,这句注释如下:ACLK n/a ,MCLK= SMCLK= BRCLK default DCO =~1.045MHz都知道MSP430 在时钟方面是灵活多变的,它的UCS 模块有三个时钟信号(MCLK、SMCLK 和ACLK)和五个时钟源(XT1CLK、VLOCLK、REFOCLK、DCOCLK 和XT2CLK)。
PUC(上电清零)之后,UCS 模块的默认配置如下:●XT1 为LF 模式,作为XT1CLK 时钟源。
XT1CLK 作为ACLK。
●DCOCLKDIV 作为MCLK●DCOCLKDIV 作为SMCLK●FLL 模块使能。
XT1CLK 作为FLL 基准时钟FLLREFCLK。
●XIN 和XOUT 管脚为普通IO 口,XT1 仍然不能用直到I/O 口配置为XT1 模式。
●XT2IN 和XT2OUT 脚作为普通IO 口,XT2 禁止。
让我困惑的是后半句,MCLK= SMCLK= BRCLK default DCO =~1.045MHz 。
首先我不太清楚1.045MHz 是怎么来的,后来依旧是在MSP430x5xx Family Users Guide 中找到了相关解释。
在第56 页有如下英文介绍:As shown above FLL operation with XT1 is enabled by default. On MSP430x5xx devices thecrystalpinsXIN XOUT are shared with general-purpose I/O. To enable XT1 the PSEL bitsassociated with the crystal pins must be set. When a 32768Hz crystal is used for XT1CLK thefault controllogic will immediately cause ACLK to be sourced by the REFOCLK since XT1 willnot be stable immediately. See Section 3.2.12 for further details. Once the crystal startup isobtained and settled the FLL stabilizes MCLK and SMCLK to 1.048576MHz and fDCO2.097152MHz.这段英文的前半部分正好解释了FLL 和XT1 上电后的默认状态。
电子设计竞赛msp430f5438程序技术文档
UCSCTL5|=DIVS_0+DIVM_0;
}
本模块主要完成对 MCLK,SMCLK,ACLK。即系统时钟,子系统时钟,辅助
时钟的配置,通过设定相应的寄存器位来使 msp430f5438 工作在硬件所需要的条
件下。
I/0 口初始化配置子程序:
2
void PORT_Init(void)
//I/O 口初始化配置
第八章 简易频谱仪程序解析 .................................................. 20 8.1 简易频谱仪程序模块功能介绍 ............................................. 20 8.2 简易频谱仪程序模块流程图介绍 ........................................... 21 8.3 简易频谱仪程序主功能模块介绍 ........................................... 22
}
定时器分为 A0,A1 两个需要使用时必须对以上的寄存器进行相应的配置,完成 相应的模块功能包括定时中断,PWM 信号产生。
DAC12 初始化子程序:
void ADC12_Init(void)
{ ADC12CTL0&=~ADC12ENC;
//ADC12 初始化在 ENC=0 下修改
DC12CTL0|=ADC12ON+ADC12REFON+ADC12REF2_5V+ADC12SHT0_0+ADC
UCSCTL6&=~(XT1OFF+XT2OFF);
// 开 XT1,XT2
UCSCTL6|=XCAP_3;
MSP430初学者教程(最详细)
如何学习MSP430单片机学习就是迎接挑战、解决困难的过程,没有挑战,就没有人生的乐趣。
下面以MSP430系列单片机为例,解释一下学习单片机的过程。
(1)获取资料购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料,例如,在网上可以找到FET 使用指导、MSP430 F1xx系列、F4xx系列的使用说明和具体单片机芯片的数据说明,可以找到仿真器FET的电路图、实验板电路图、芯片封装知识等大量的实际应用参考电路,当然有些资料是英文的,看懂英文资料是个挑战,学会4、6级英语就是为看资料的。
英语难学,但是看资料容易,只要下决心,看完一本资料,就可以看懂所有的相关资料。
(2)购买仿真器FET和实验电路板如果经济条件不错,可以直接购买。
(3)自制仿真器FET和实验电路板自制仿真器FET,首先要到网上找到FET电路图,然后就可以使用画电路板软件画电路图和电路板图,这又是个挑战。
FET电路非常简单,但要把它制作出来还是需要下一番工夫的,找一本有关书,然后练习画原理图,画完原理图后,就学习认识元件封装,再购买元件,这时就可以画电路板图了,一旦画好,将形成的PCB文件交给电路板制作公司,10天后,就可以得到电路板,焊上元件和电缆,等实验电路板做好后,就可以与实验电路板一起调试了。
自制实验电路板,需要单片机芯片内部工作原理的知识、封装知识,清楚的知道每一个引脚的功能,还需要数码管、按钮、排电阻、三端稳压器、二极管、散热器、电解电容、普通电容、电阻、钮子开关等元件的知识,对于初学者,可以做一个只有3个数码管、8个按钮、8个发光二极管的简单实验板,这样的实验板,虽然简单,但足可以帮助初学者入门单片机。
自制实验电路板与自制FET一样,首先画电路图,然后买元件,再画电路板。
由于MSP430系列芯片是扁平封装,焊接起来有一定难度,这好象是个挑战,但实际上很简单,方法如下:首先在焊盘上涂上松香水,在松香水未干的情况下,将芯片放在焊盘上,注意芯片第一引脚的位置,并使引脚与焊盘对齐,将擦干净的电烙铁(不能有任何焊锡)接触引脚,引脚只要一热,焊盘上的焊锡就自动将引脚焊住了,千万注意电烙铁上不能有焊锡,焊接时最好配备一个放大镜。
MSP430单片机定时器学习笔记
MSP430单片机定时器学习笔记
msp430 定时器学习笔记
_BIS_SR(LPM2_bits + GIE) //进入LPM3 低功耗模式和开总中断允许
中断
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
}
TACTL timerA 控制寄存器
TAR timerA 计数器
CCTL0 捕获/比较控制寄存器0
CCRO 捕获/比寄存器0(具有最高中断优先级别,单独使用一个中断向量) CCTL1 捕获/比较寄存器1
CCR1 捕获/比较寄存器1
CCTL2 捕获/比较寄存器2
CCR2 捕获/比较寄存器2
TAIV 中断向量寄存器
其中,定时器,CCR2,CCR1 三者共用一个中断向量
TimerA 输出模式:
输出模式0 输出模式:输出信号OUTx 由每个捕获/比较模块的控制寄存器CCTLx 中的OUTx 位定义,并在写入该寄存器后立即更新。
最终位OUTx 直通。
输出模式1 置位模式:输出信号在TAR 等于CCRx 时置位,并保持置位到。
MSP430F5438调试笔记
MSP430F5438调试笔记
MSP430F5438 调试笔记1.JTAG 连接下载问题:
出现问题1:
说明JTAG 没有发现MSP430F5438 设备,JTAG 正确接法是:2 脚接VCC 默认为JTAG 供电,这个供电由USB 馈电得到,注:一般情况下在JTAG 供电时,4 脚需悬空。
在外部供电时2 脚也需接到VCC 上,4 脚悬空或接VCC 均可,一般是悬空,防止外部供电与JTAG 的供电电压不匹配,引起JTAG 异常。
JTAG 的TEST 管脚处理:之前看到利尔达关于IAR 烧写工具的描述,如下图所示:但是这个不适用5 系列的430,但手册中没说,深受其害。
和开发板的人沟通这个只试用与2 系列和4 系列的B 仿真器和并口仿真器不能同时试用。
可能的原因:1)并口FET 不要是什么精简版的没有Test 脚肯定不灵2)RST 引脚上不要有外接的复位片子通用原则3)IAR430 的版本要在4.21 及以上4.20/4.11b 可能也行,没试过;3.x 的版本应该还没有5 系吧...4)电源问题处理好是目标板供电还是并口供电,二选一吧,不要冲突了,这个是
不是决定因素不清楚,但是肯定需要考虑tips:感谢大家的阅读,本文由我司收
集整编。
仅供参阅!。
msp430 学习笔记 - 定时器
// 停止看门狗WDT // 设置P1.0口方向为输出。 // 时钟源选择为SMCLK,选择计数模式,定时器中断开
_BIS_SR(LPM0_bits + GIE); }
//进入低功耗模式LPM0和开中断
// Timer_A3 中断向量(TAIV)处理 #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A(void) {
2. 定时器相关寄存器 ................................................................................................................... 2 2.1. TACTL .......................................................................................................................... 3 2.2. TAR ............................................................................................................................. 4 2.3. TACCRx ....................................................................................................................... 4 2.4. TACCTLx ...................................................................................................................... 5 2.5. TAIV ............................................................................................................................ 6
msp430 学习笔记 - 系统时钟
2.2. VLO 设置
使用超低功耗低频振荡器 VLO 可以很大程度地降低系统功耗, 下面的例子是设置 ACLK 为 VLO, MCLK 为 VLO 的 8 分频:
#include <msp430g2553.h>
3
msp430 学习笔记 - 系统时钟
//1延时 //#define CPU_F ((double)16000000) //cpu frequency16000000 #define CPU_F ((double)1630) //cpu frequency1630 //CPU 的实际 MCLK 大约为 13.05/8=1.63KHz #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
6 SELM.0
5 DIVM.1
4 DIVM.0
3 SELS
2 DIVS.1
1 DIVS.0
0 DCOR
• SELM.0,SELM.1 选择 MCLK 时钟源。 • 0 : 时钟源为 DCOLCK (默认时钟源); • 1 : 时钟源为 DCOCLK ; • 2 : 时钟源为 LFXTlCLK ( 对于 MSP430F11/12X ), 时钟源为 XT2CLK ( 对于 MSP430F13/14/15/16X );
• XT2CLK 高频时钟源 ---- 存在于X13X、X14X、X15X、X16X、X43X、X44X等
• DCOCLK ( Digitally Controlled Oscillator ) 内部数字控制 RC 振荡器, 频率在0~16MHz
MSP430F5438实验手册
目录1.实验1 USC时钟系统------------------------------------------------------------------------------------------------------22.实验2 GPIO和EXTI-------------------------------------------------------------------------------------------------------33.实验3 串口通信UART----------------------------------------------------------------------------------------------------44.实验4 SPI通信------------------------------------------------------------------------------------------------------------55.实验5 I2C通信------------------------------------------------------------------------------------------------------------66.实验6 Timer_A定时器---------------------------------------------------------------------------------------------------77.实验7 Timer_B定时器--------------------------------------------------------------------------------------------------108.实验8 看门狗WDT--------------------------------------------------------------------------------------------------------139.实验9 RTC时间-----------------------------------------------------------------------------------------------------------1410.实验10 ADC_12----------------------------------------------------------------------------------------------------------1511.实验11 Flash编程-----------------------------------------------------------------------------------------------------1612.实验12 低功耗LPM-----------------------------------------------------------------------------------------------------1713.实验13 DMA传输--------------------------------------------------------------------------------------------------------1914. 实验14 键盘数码管ZLG7290----------------------------------------------------------------------------------------2115. 实验15 液晶显示LCD1602-------------------------------------------------------------------------------------------2216. 实验16 液晶显示LCD12864-----------------------------------------------------------------------------------------2317. 实验17 液晶显示TFT-------------------------------------------------------------------------------------------------2418. 实验18 数字温度传感器DS18B20----------------------------------------------------------------------------------25实验1 USC时钟系统一.实验原理图 Array二.实验步骤1. 下载程序。
SDLu的MSP430入门学习笔记定时器TimerA比较输出PWM
S.D.Lu的MSP430入门学习笔记(8):定时器TimerA(3)比较输出PWM本篇笔记介绍如何使用TimerA的比较模式输出PWM信号。
PWM信号有两个参数,周期T和脉宽D。
为了实现PWM的控制,我们将通过TACCR0控制周期,通过TACCR1控制脉宽。
输出选择模式7(或模式6)。
在本例中,输出模式6和输出模式7只是第一个周期输出可能不同,从第二个周期开始输出是一样的。
CCR1单元的输出引脚是P1.2。
如下图,请参考MSP430G2x52、G2x12系列数据手册。
将P1.2的功能按下图配置,请参考MSP430G2x52、G2x12系列数据手册。
程序如下:程序运行结果是P1.2口输出占空比为20%的PWM信号。
在本例中,TIME用于控制PWM周期,DUTY指的是占空比,取值范围0~100。
需要特别注意的是,在14行中用到了乘法和除法运算,如果不注意,乘法非常容易产生溢出。
本例中将TIME定义为(1000ul),其中1000是TIME的数值,ul为后缀,它表示1000是一个unsigned long类型的数据,这是IAR编译环境定义的。
将TIME定义为unsigned long类型之后,14行右边的乘法运算结果将保存为32位长度,这样就避免了溢出。
如果将TIME定义改为#define TIME (1000),则当TIME * DUTY的值大于0xFFFF时,就会出现溢出,无法得到我们预想的结果。
本例中,9~17行的代码被执行一次之后,CPU就进入LPM0模式,不再执行任何语句。
PWM信号不是由CPU控制IO口产生的,而是由ACLK驱动TimerA产生的。
从图12-12可以看出,模式1、4、5不能用于输出PWM信号,模式2-模式6、模式3-模式7是两对反相的输出模式。
输出模式2,3,6,和7对于输出单元0无效,因为在这些模式下,EQUx=EQU0。
因此,CCR0单元需要以控制IO的方式才能输出PWM信号。
MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述
MSP430F5438 32位硬件硬件乘法器的介绍和使用详细概述
32 位硬件乘法器是一个并行器件,而不是CPU 内核的一部分。
这也就意味着:它在工作时不会涉及CPU 的活动。
硬件乘法寄存器是可以通过CPU 汇编指令的读或着写进行操作。
硬件乘法器特点:
○无符号乘法;
○有符号乘法;
○无符号乘加操作;
○由符号乘加操作;
○8 位,16 位,24 位,和32 位操作数;
○整数乘法
○小数乘法
○8位和16 位操作数与16 位硬件乘法器兼容;
○8位和24 位在没有符号位扩展的情况下,依然可以进行乘法操作;
硬件乘法器结构图:
硬件乘法器支持8 位,16 位,24 位,32 位无符号操作数,有符号操作数,无符号乘、加操作和有符号乘、加操作。
操作数的大小,可以通过对"字"或者"字节"的定义来确定。
操作数的类型可以通过第一个操作数的写入进行选择。
硬件乘法器有两个32 位操作数寄存器,操作数OP1 和操作数OP2,以及一个64 位结果寄存器,而这个寄存器需要使用RES0 和RES3 寄存器。
为了兼容16 X 16 硬件乘法器,8 位或者16 位操作数的结果需要使用RESL0,RESL1 和SUMNEXT这三个寄存器。
RESL0 用于存储16 X 16 结果的低“字”,RESL1 用于存储16 X 16 结果的高“字”。
以及SUMEXT 用于存储结果的信息。
硬件乘法器操作:。
MSP430F5438学习笔记 FLASH操作编程
1. // 时钟默认情况 2. // FLL 时钟 3. // 辅助时钟 4. // 主系统时钟 5. // 子系统时钟 FLL 选择 XT1 ACLK 选择 XT1 MCLK 选择 DCOCLKDIV SMCLK 选择 DCOCLKDIV 32768Hz 8000000Hz 8000000Hz
6. // UART 时钟选择 ACLK 7. // 低频波特率产生 9600-8-N-1 8. #include <msp430.h> 9. #include <stdio.h> 10. #include <stdint.h> 11. 12. void clock_config(void); 13. void select_xt1(void); 14. void dco_config(void); 15. void uart_config(void); 16. 17. void flash_writebuf(uint8_t *flash_ptr,uint8_t *buffer,uint 8_t len);
图 1 运行结果
4.注意事项
在下载程序是仿真器可以设置擦除 FLASH 的范围, 可以只擦除主 FLASH (可 以理解为程序部分),也可以擦除主 FLAHS 和 INFO FLASH 部分,这些设 置具体如何使用要看具体情况。如果需要 INFO FLASH 内的所有内容复位, 则可以选择 Erase main and Information memory —— 擦除主 FLASH 和 INFO FLASH。
UCSCTL1 = DCORSEL_5; UCSCTL2 = FLLD_1 + 243;
// DCO 最大频率为 16MHz // 设置 DCO 频率为 8MHz
MSP f 学习笔记
MSP430F552X中文手册及例程一、先写一篇开个头:这样快速闯入MSP430学习过程进入各个电子产品公司的网站,招聘里面嵌入式占据了大半工程师职位。
广义的嵌入式无非几种:传统的什么51单片机、 MSP430称做嵌入式微控制器;ARM是嵌入式微处理器;当然还有DSP;FPGA。
我们现在就不说别的,就说MSP430单片机,多数想学MSP430的童鞋,对89C51内核系列的单片机是很熟悉的,为了加深对MSP430 系列单片机的认识吗,迅速闯入MSP430学习过程,就必须彻底了解MSP430单片机,我们不妨将51单片机和MSP430两者进行一下比较。
第一点, 51内核单片机是8 位单片机。
其指令是采用的被称为“ CISC ”的复杂指令集,共具有111 条指令。
而MSP430 单片机是16 位的单片机,采用了精简指令集( RISC )结构,只有简洁的27 条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据存储器都可参加多种运算。
这些内核指令均为单周期指令,功能强,运行的速度快。
第二点,MCU主要分为两种工作模式:待机与执行。
51内核单片机正常情况下消耗的电流为mA级 ,在掉电状态下,其耗电电流仍约为3mA左右 ;即使在掉电方式下,电源电压可以下降到2V ,但是为了保存内部RAM 中的数据,还需要提供约50uA的电流。
而430单片机功耗是在uA级的,工作电流极小,并且超低功耗,关断状态下的电流仅为0.1μA,待机电流为0.8μA,常规模式下的(250μA/1MIPS@3V),端口漏电流不足50 nA,并可零功耗掉电复位(BOR)。
另外,该芯片属低电器件,仅需1.8~3.6V电压供电,因而可有效降低系统功耗。
MSP430将低功耗模式扩展为7种,分别对应不同应用场合及任务的低功耗方式。
以睡眠模式为例,包括深度睡眠模式RTC:只有时钟在跑而其他都不动,目前,TI宣布其MSP430在RTC模式下最低功耗仅为360nA。
MSP430初学者教程
MSP430初学者教程1.了解MSP430体系结构和特性:首先,你需要了解MSP430的体系结构和主要特性。
MSP430采用的是16位RISC架构,具有低功耗特性以及丰富的外设和存储器。
了解这些特性对于理解MSP430的使用至关重要。
3.学习MSP430的编程语言:4.熟悉MSP430的编程模型:了解MSP430的编程模型对于编写有效的程序至关重要。
这包括掌握寄存器、存储器和外设的使用。
你可以通过阅读MSP430的技术手册或官方文档来获得更多信息。
5.编写你的第一个MSP430程序:现在你已经准备好编写你的第一个MSP430程序了。
这个程序的目的是让你熟悉MSP430的编程环境和基本语法。
它可以是一个简单的LED点亮程序,让一个LED灯在一定的时间间隔内闪烁。
6.学习如何调试MSP430程序:当你编写MSP430程序时,你可能会遇到一些错误。
学习如何调试MSP430程序是非常重要的。
MSP430开发环境提供了一些调试工具,你可以使用它们来检查程序的运行情况。
7.学习如何使用MSP430的外设:8.尝试更复杂的MSP430项目:一旦你熟悉了MSP430的基本概念和编程,你可以尝试进行一些更复杂的项目。
比如,你可以使用MSP430控制一些传感器,或者与其他设备进行通信。
这将帮助你更深入地理解MSP430的使用。
9.参与MSP430社区和论坛:加入MSP430的社区和论坛是一个很好的方式来与其他MSP430开发者交流经验和获取帮助。
你可以在这些平台上提问,分享自己的项目经验,与其他人一起学习和进步。
10.持续学习:最后,持续学习是提高你在MSP430开发方面技能的关键。
MSP430的技术在不断发展,新的功能和工具不断出现。
通过阅读相关的书籍、文章和博客,参加培训和研讨会,你可以不断更新自己的知识。
这是一个MSP430初学者教程的总结。
我希望这个教程能够帮助你快速入门MSP430,并在自己的项目中有效使用它。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、简介1.1CPU:16-bit RISC除program-flow指令外所有指令都在寄存器和7种源操作数寻址方式及4种目的操作数合作下执行16个寄存器,register-to-register指令执行时间是一个CPU时钟R0 程序计数器寄存器20-bitR1 堆栈指针20-bitR2 状态寄存器16-bitR3 不变的产生器R4~R15 通用寄存器1.2指令集:51指令3格式7中寻址方式附加指令1.3操作模式6个可软件设置的LOW-POWER模式一个中断事件可以唤醒5个模式中的任何一个,响应请求,并从中断程序中返回原模式Mode ACTIVE DISABLEDActive mode (AM) 所有时钟ACTIVELow-power mode 0 (LPM0) ACLK SMCLK FLL CPU MCLK LPM1 ACLK SMCLK CPU FLL MCLK LPM2 DCO发生器ACLK CPU MCLK FLL DCOCLK LPM3 ACLK CPU MCLK FLL DCOCLK DC发生器LPM4 晶振关闭完整数据保留LPM5 内部调节器关闭无数据保留通过RST和IO唤醒1.4中断矢量地址:FFFF~FF80H1.5 SFR处于最低地址空间可以进行字访问和字节访问1.6存储256K闪存空间64K程序存储器16KRAM 512BBSL程序装载器用于编程存储器串连接口1.7外围时钟:支持统一的时钟系统UCS包括:32K手表晶振(XT1 低频模式)内部低频振荡器VLO内部平衡低频振荡器REFO内部集成数字控制器DCO高频晶振(XT1高频模式or XT2)FLL锁频环连同一个数字调节器使得DCO构成一个多倍可编程的手表晶振时钟信号:ACLK 32K手表晶振、高频晶振、VLO、REFO、DCOMCLK CPU用,来源同ACLKSMCLK 用于外围来源同ACLK多分频ACLK电源管理模块(PMM)包括一个集成的PMM电压调节器,提供核心电压设备和包含可编程的产出水平,来提供电力的优化。
还包括SVS和SVM电路即降压保护,可用来产生内部复位信号实时时钟RTC:用来作为32位的多用计数器或实时时钟,计数模式下,RTC有两个独立的8位计数器可被级联成16位的计数器ADC12_A:支持一个快速的12位的AD转换器12位的SAR核心、简单选择控制、参考发生器、16字的BUFF可在CPU不参与的情况下允许16个独立的ADC采样N=选择的时钟频率/波特率=UBR1x(整数部分的高位)+UBR0x(整数部分的低位)+小数部分(小数部分=调整因子个数/8)例如:串口配置选用时钟为32768KHz,波特率为9600,则N=32768/9600=3.41。
所以,UBR1x= 0,UBR0x=3,调整因子个数/8=0.41 =>调整因子个数=3 =>UMCTLx=01010010(原则是调整因子"1"分布要均匀)。
1.8系统复位及初始化掉电复位(BOR)》上电复位(POR)》PUCRst/nmi配置成复位状态,I/O口恢复到输入状态、状态寄存器复位、看门狗到看门狗状态1.9中断源:系统复位可屏蔽中断、不可屏蔽(系统不可屏蔽中断和用户不可屏蔽中断)二.USC5个时钟源:XT1CLK:有低频(LF)和高频(HF)模式,低频32768HZ的手表晶振、标准晶振、谐振器或者外部的4M~32MHZ的晶振VLOCLK:内部10KHZ低功率、低频振荡器REFOCLK:内部32768HZ平衡的、低频参考振荡器、作为FLL的参考晶振DCOCLK:内部数字控制振荡器,可被FLL稳定XT2CLK:可选的高频振荡源,可选用标准晶振、谐振器或来自外部的4M~40MHZ的晶振3个时钟信号ACLK:辅助时钟,可软件设置为XT1CLK, REFOCLK, VLOCLK,DCOCLK,DCOCLKDIVXT2CLK,DCOCLKDIV is the DCOCLK frequency dividedby 1, 2, 4,8, 16, or 32 within the FLL block.用于外围模块MCLK:主时钟,可软件设置为XT1CLK, REFOCLK, VLOCLK,DCOCLK,DCOCLKDIVXT2CLK,DCOCLKDIV is the DCOCLK frequencydivided by 1, 2, 4,8, 16, or 32 within the FLL block.用于CPU和系统SMCLK:子时钟,可软件设置为XT1CLK, REFOCLK, VLOCLK,DCOCLK,DCOCLKDIVXT2CLK,DCOCLKDIV is the DCOCLK frequencydivided by 1, 2, 4,8, 16, or 32 within the FLL block.用于外围独立的模块。
USC系统默认配置:XT1在低频模式下作为振荡源给XT1CLK、XT1CLK提供给ACLKDCOCLKDIV提供给MCLK和SMCLKFLL使能,XT1CLK作为FLL参考时钟FLLREFCLKXIN和XOUT设为普通I/O口功能、XT1处于关闭状态直到XT1操作配置该I/O口XT2IN和XT2OUT同样被配成普通I/O口,XT2关闭REFO:32768HZ提供一个稳定的参考晶振为FLLREFCLK,它联合FLL在不需要晶体的情况下可提供范围灵活的系统时钟设置,REFO不工作时不耗电!if the REFO oscillator is not used to source MCLK, SMCLK. or FLLREFCLK. The OSCOFF bit disables REFO for LPM4.XT1:LF模式下支持一个极低功耗的32768HZ的手表晶振,内部XCAP为其提供下载电容,也可通过外加电容HF模式下需要加外部电容,通过XT1DRIVE设置驱动器力度,以便减少功耗;XT1BYPASS 设置可与外部晶振信号一起使用,此时处于休眠状态;XT2:相同于XT1的HF模式DCO:一般配合FLL一起使用XT2CLK (if available) The value of n is defined by the FLLREFDIVx (n = 1, 2, 4, 8, 12, or 16). default is n = 1.fDCOCLK = D×(N + 1)×(fFLLREFCLK /n)fDCOCLKDIV = (N + 1) × (fFLLREFCLK /n)FLL:连续不断的把一个频率计分器相加或相减寄存器:UCSCTL0,UCSCTL1,对DCO的设置寄存器UCSCTL2,FLL分频、倍乘NUCSCTL3,对FLL参考晶振的选择、分频FLLREFCLKUCSCTL4,设置ACLK、MCLK、SMCLK时钟来源,UCSCTL5,设置外部ACLK、ACLK、MCLK、SMCLK分频UCSCTL6,对XT1、XT2的允许范围,旁路,开关UCSCTL7,XT2、XT1、DC0时钟中断错误标志UCSCTL8,MODOSC、ACLK、SMCLK、MCLK条件响应请求标志附注:DCO设置:fDCOCLK = D×(N + 1)×(fFLLREFCLK /n)fDCOCLKDIV = (N + 1) × (fFLLREFCLK /n) = fDCOCLK/DUCSCTL1,DCORSEL 设置DCOCLK的频率范围,在频率范围内可满足其参考时钟源的倍频,若超出范围,则用FLLN无法完成倍频DISMOD 使能调整UCSCTL2,FLLD 设置D的值,(1、2、4、8……)FLLN 设置N的值,在DCOCLK的频率范围内才可以实现对其参考晶振的倍频UCSCTL3,SELREF,选择参考晶振FLLREFDIV对参考晶振进行分频(1/2/4/8……)三、看门狗看门狗功能和间隔定时功能看门狗中断标志位WDTIFG;看门狗中断使能WDTIE;WDTCTL 看门狗时钟(00为SMCLK)选择、模式选择、间隔设定四、通用串口两类串口模块:USCI_Ax——UART\IrDA\SPIUSCI_Bx——I2C\SPI4.1(UART模式)特点:两根线UCAxTXD、UCAxRXD;独立的收发移位寄存器和缓冲寄存器;波特率自动检测,可编程设置;状态寄存器提供错误监测和抑制、地址监测;独立收发中断异步传输格式:(UCMODEx)UCIDLE:在IDLE-LINE模式下,表示该模式开启的标志位;UCDORM控制数据传输,置位时,所有非地址字节数据被装配但不送入缓存RXBUF中;UCRXIFG:溢出标志,缓存中有数据进入则置位;UCRXEIE:置位时所有可用的错误标志位可置位;UCTXADDR:地址数据进入TXBUF置位,字节完成后自动清位;UCBRK:检测到break则置位;UCTXBRKIrDA解码与编码:对每个低位(0)数据调职为脉冲UCIRTXPLx 规定脉冲调制时间为若干个半时钟周期;时钟由UCIRXCLK选择;UCIRTXCLK = 1 :UCIRTXPLx = 6 - 1 = 5.UCIRTXCLK = 0 :UCIRTXPLx = t PULSE ⨯ 2 ⨯ f BRCLK – 1解码:滤波!UCIRRXEF滤波标志,长脉冲过、低脉冲丢弃程序编制的滤波长度:UCIRRXFLx = (t PULSE – t WAKE) ⨯ 2 ⨯ f BRCLK – 4自动错误监测:UCRXEIE帧错误(UCFE)、校验错误(UCPE)、接受溢出错误(UCOE)、Break(UCBRK)波特率产生:低频模式(UCOS16 = 0),来自低频时钟源,最大波特率时源晶振BRCLK的1/3;N is the number of BRCLKs per BITCLK.过采样模式:(UCOS16 = 1),支持在高电平时钟信号下采样位流;支持IrDA最大波特率时源晶振BRCLK的1/16;中断:中断适量寄存器UCAxIV寄存器:(8位)UCAxCTL0:校验使能与选择、MSB、数据长度、停止位、工作模式、同步异步选择UCAxCTL1:时钟信号、错误标志与Break使能、休眠(UCDORM)、复位时能、地址与数据选择UCAxBR0,UCAxBR1:波波特率设置UCAxMCTL:调整控制寄存器UCBRFx UCBRSx UCOS16 模式选择UCAxSTAT:状态寄存器、错误标志位、UCAxRXBUF\UCAxTXBUFUCAxIRTCTL:红外发送脉冲长度、发送时钟、调制使能UCAxIRRCTL:红外接收脉冲长度、发送时钟、调制使能UCAxABCTL:自动波特率控制寄存器UCAxIE:中断使能UCAxIFG:中断标志UCAxIV:中断矢量。