This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
无论您是 MSP430 的设计老手,还是初涉 MSP430 应用设计,8 月 30 日到 9 月 16 日,快来分享您认为对您设计有用的资料文档!每一位分享者将获赠一块 MSP430 LaunchPad + MSP430 电容触摸 BoosterPack 。
我们期待您的给力分享!
希望 TI 官方 MSP430 社区为大家提供一个学习、分享的平台!
今年TI杯电子设计竞赛元器件清单里列举了摄像头,所以我最开始尝试了MSP430F149采集数字摄像头OV7620,虽然效果不怎么好,但终究也算做出来了,充分体会到了TI代码库的强大,很多都是现学现用
摄像头的采集主要是时序,具体可以参考下PAL制式的介绍,下面是代码:
#include <msp430x14x.h>
#define uchar unsigned char
#define uint unsigned int
///图像采集宏定义及全局变量///////
#define ROW 30
#define LINE 40
uchar row;
uint row_count;
uchar image_over_flag;
uchar image[ROW][LINE];
uint const table[ROW]={
30,37,44,51,58,65,72,79,86,93,
100,107,114,121,128,135,142,149,156,163,
170,177,184,191,198,205,212,219,226,233
};
unsigned char num;
void delay(void)
{
unsigned int i;
for(i=10000;i>0;i--);
}
void clk_init(void)
{
volatile unsigned char i;
BCSCTL1 &= ~XT2OFF; //Enable XT2
do
{
IFG1 &= ~OFIFG; //Clear OFIFG
for(i=0xff;i>0;i--); //Set a delay
}while(IFG1&OFIFG); //check-up the OFIFG
BCSCTL2 |= SELM_2; //Set XT2CLK the clock of MCLK
/* DCOCTL|=DCO0+DCO1+DCO2;
BCSCTL1|=RSEL0+RSEL1+RSEL2;*/
}
void uart_init(void)
{
P3SEL |= 0x30; // P3.4,5选择为UART收发端口
ME1 |= UTXE0 + URXE0; // 使能USART0收发
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x0D; // 32k/2400 - 13.65
UBR10 = 0x00; //
UMCTL0 = 0x6B; // Modulation
UCTL0 &= ~SWRST; // 初始化UART0状态机
}
void io_init(void)
{
P1DIR &= ~BIT0; //P1.0
P1IES &= ~BIT0; //Low_to_High edge
P1IE |= BIT0; //enable interrupt
P1IFG = 0;
P1OUT &= ~BIT0;
P2DIR &= ~BIT0; //P2.0
P2IES &= ~BIT0;
P2IE |= BIT0;
//P2IE &= ~BIT0;
P2IFG = 0;
P2OUT &= ~BIT0;
P4DIR = 0xff; //output
P4SEL = 0; //gpio
P4OUT=0XFF;
P5DIR = 0; // in
P5SEL = 0; //gpio
P5OUT = 0;
}
/*******************************************
函数名称:PutSting
功 能:向PC机发送字符串
参 数:无
返回值 :无
********************************************/
void PutString(unsigned char *ptr)
{
while(*ptr != '\0')
{
while (!(IFG1 & UTXIFG0)); // TX缓存空闲?
TXBUF0 = *ptr++; // 发送数据
}
while (!(IFG1 & UTXIFG0));
TXBUF0 = '\n';
}
void uart_send(uchar dat)
{
while(!(IFG1 & UTXIFG0));
TXBUF0 = dat;
}
//main
void main(void)
{
uchar tab[]={"ao yun ni hao!"};
uchar i,j;
/*下面六行程序关闭所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0XFF;
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
clk_init();
uart_init();
io_init();
PutString(tab);
_EINT();
while(1)
{
P4OUT ^= BIT4;
if(image_over_flag)
{
P4OUT ^= BIT5;
P1IE &= ~BIT0;
P2IE &= ~BIT0;
uart_send(0x01);
for(i=0;i<ROW;i++)
{
for(j=0;j<LINE;j++)
{
if(image[i][j]==0x01) image[i][j]=0x02;
uart_send(image[i][j]);
}
}
uart_send(0x01);
image_over_flag=0;
P1IE |= BIT0;
}
}
}
// vsync interrupt 场中断
#pragma vector=PORT1_VECTOR
__interrupt void Port(void)
{
P1IFG=0; //Flag clear
row = 0;
row_count = 0;
P4OUT ^= BIT7 ;
P2IE |= BIT0; //enable herf interrupt
//_EINT();
}
//href interrupt 行中断
#pragma vector=PORT2_VECTOR
__interrupt void Port2(void)
{
P2IFG=0;//FLAG clear
P4OUT ^= BIT0;
uchar j;
uchar (*p)[LINE];
p=image+row;
row_count++;
//P4OUT=0X00;delay();P4OUT=0XFF;
if(row_count==table[row])
{
for(j=0;j<LINE+20;j++) //消隐20
{
if(j<20) *(*p)=P5IN;
else *(*p+(j-20))=P5IN;
}
row++;
//if(row_count == 303) image_over_flag=1;
}
if(row_count>233)
{
P2IE &= ~BIT0; //disable href interrupt
image_over_flag=1;
}
_EINT();
}
话说好长时间没用了。以前全国大学生电子大赛的时候接触过MSP430,功能还是蛮强大的,非常好用。现在有这种好机会,当然不会错过,果断申请一个回来学学,虽然挺忙,但是还是挺感兴趣。
电子发烧友不错的资源
适合各阶层学者学习,学习资料嘛,电脑故障,重装电脑都不见了。一些资源来自电子发烧友,不错,贴个图片和链接,大家自己动下载吧。
下载地址:http://bbs.elecfans.com/topic-msp430-1.html?search=ʽᵤʯʱ&source=hotsearch&sId=vBjS2
下面是TI官网链接,基础知识,大家慢慢看不要着急,时间到了,MSP430就用的超神了。
16 位MSP430G 系列微处理器的使用扩展
下载地址:www.ti.com.cn/.../zhca429.pdf
对于使用低成本的430应用来说可以说太有价值了,
具体自己看,我就列一下标题.哈哈,希望有更多这样的好文章出现.
1 系统硬件概述 ..................................................................................................................................... 2
2 TimerA 定时器模拟DAC 的实现 ......................................................................................................... 3
2.1 PWM 输出实现D/A 理论基础 ...................................................................................................... 3
2.2 仿真分析及试验数据 .................................................................................................................... 4
3 TimerA 定时器模拟UART .................................................................................................................. 4
4 Flash 模拟EEPROM .......................................................................................................................... 6
5 MSP430G2xx1 系列串口在线升级功能的实现 .................................................................................... 6
5.1 BSL 简介 .................................................................................................................................... 6
5.2 BSL 实现 .................................................................................................................................... 6
6 MSP430G2231 程序代码的编写 ......................................................................................................... 8
我觉得这份文档非常好 我根据这几份文档已经制作出来了一套安防系统了.MSP430是我学习的第三种单片机,感觉还是很强大和安全性非常好.并且是超低功耗的.
以上就是我与MSP430的历史,和成绩.
http://ishare.iask.sina.com.cn/f/20249541.html
http://ishare.iask.sina.com.cn/search.php?key=MSP430&format 新浪爱问上找到的一些以前学习过感觉不错的资料
还有视频课件http://xidong.net/File001/File_58799.html
希望我能够成为贵公司的有幸获得者!QQ邮箱留言tangwei1326864272@qq.com 联系方式15802034368 非常感谢!
德州仪器1996年到2000年初,先后推出了31x、32x、33x等几个系列,这些系列具有LCD驱动模块,对提高系统的集成度较有利。每一系列有ROM 型(C)、OTP 型(P)和 EPROM 型(E)等芯片。EPROM 型的价格昂贵,运行环境温度范围窄,主要用于样机开发。这也表明了这几个系列的开发模式,即:用户可以用 EPROM 型开发样机;用OTP型进行小批量生产;而ROM型适应大批量生产的产品。
2000 年推出了11x/11x1系列。这个系列采用20脚封装,内存容量、片上功能和 I/O 引脚数比较少,但是价格比较低廉。 这个时期的MSP430已经显露出了它的特低功耗等的一系列技术特点,但也有不尽如人意之处。它的许多重要特性如:片内串行通信接口、硬件乘法器、足够的 I/O 引脚等,只有33x系列才具备。33x系列价格较高,比较适合于较为复杂的应用系统。当用户设计需要更多考虑成本时,33x并不一定是最适合的。而片内高精度A/D转换器又只有32x系列才有。 2000年7月推出了F13x/F14x 系列,在2001年7月到2002年又相继推出F41x、F43x、F44x。这些全部是 Flash 型单片机。 F41x系列单片机有48个I/O 口,96段LCD驱动。F43x、F44x系列是在13x、14x的基础上,增加了液晶驱动器,将驱动LCD的段数由3xx系列的最多120段增加到160段。并且相应地调整了显示存储器在存储区内的地址,为以后的发展拓展了空间。 MSP430系列的部分产品具有Flash存储器,在系统设计、开发调试及实际应用上都表现出较明显的优点。TI公司推出具有Flash 型存储器及JTAG 边界扫描技术的廉价开发工具MSP-FET430X110,将国际上先进的JTAG技术和Flash在线编程技术引入MSP430。这种以Flash 技术与FET开发工具组合的开发方式,具有方便、廉价、实用等优点,给用户提供了一个较为理想的样机开发方式。 2001年TI 公司又公布了BOOTSTRAP LOADER技术,利用它可在烧断熔丝以后只要几根线就可更改并运行内部的程序。这为系统软件的升级提供了又一方便的手段。BOOTSTRAP 具有很高的保密性,口令可达到 32个字节的长度。 TI公司在2002年底和2003年期间又陆续推出了F15x和F16x系列的产品。 在这一新的系列中,有了两个方面的发展。一是从存储器方面来说,将 RAM 容量大大增加,如F1611的RAM容量增加到了10KB。二是从外围模块来说,增加了I2C、DMA、DAC12 和SVS等模块。[3]编辑本段MSP430单片机的特点处理能力强
MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。
运算速度快
MSP430 系列单片机能在25MHz晶体的驱动下,实现40ns的指令周期。16位的数据宽度、40ns的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如 FFT 等)。
超低功耗
MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。 首先,MSP430 系列单片机的电源电压采用的是1.8-3.6V 电压。因而可使其在1MHz 的时钟条件下运行时,芯片的电流最低会在165μA左右,RAM 保持模式下的最低功耗只有0.1μA。 其次,独特的时钟系统设计。在 MSP430 系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL 和FLL+)时钟系统和DCO数字振荡器时钟系统。可以只使用一个晶体振荡器(32768Hz),也可以使用两个晶体振荡器。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。 由于系统运行时开启的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。在实时时钟模式下,可达2.5μA ,在RAM 保持模式下,最低可达0.1μA 。
片内资源丰富
MSP430 系列单片机的各系列都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10位/12位ADC、16位Σ-Δ ADC、DMA、I/O端口、基本定时器(Basic Timer)、实时时钟(RTC)和USB控制器等若干外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 A/D 转换器;16 位定时器(Timer_A 和 Timer_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、 PWM 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,P0、P1、P2 端口能够接收外部上升沿或下降沿的中断输入;10/12位硬件 A/D 转换器有较高的转换速率,最高可达200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位 D/A 转换;硬件I2C串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用的DMA模块。MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。 另外,MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的低功耗状态时,中断唤醒只需5μs。
方便高效的开发环境
MSP430 系列有 OTP 型、 FLASH 型和 ROM 型三种类型的器件,这些器件的开发手段不同。对于 OTP 型和 ROM 型的器件是使用仿真器开发成功之后烧写或掩膜芯片;对于 FLASH 型则有十分方便的开发调试环境,因为器件片内有 JTAG 调试接口,还有可电擦写的 FLASH 存储器,因此采用先下载程序到 FLASH 内,再在器件内通过软件控制程序的运行,由 JTAG 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 C 语言。[4]编辑本段MSP430单片机家族MSP430x1xx系列
基于闪存或 ROM 的超低功耗 MCU,提供 8MIPS,工作电压为 1.8V - 3.6V,具有高达 60KB 的闪存和各种高性能模拟及智能数字外设。 超低功耗低至: 0.1μA RAM 保持模式 0.7μA 实时时钟模式 200μA/MIPS 工作模式 在 6μs 之内快速从待机模式唤醒 器件参数: 闪存选项:1KB – 60KB ROM 选项:1KB – 16KB RAM 选项:512B – 10KB GPIO 选项:14、22、48 引脚 ADC 选项:10 和 12 位斜率 SAR 其它集成外设:模拟比较器、DMA、硬件乘法器、SVS、12 位 DAC[5]
MSP430F2xx系列
基于闪存的超低功耗 MCU,在 1.8V - 3.6V 的工作电压范围内性能高达 16MIPS。包含极低功耗振荡器 (VLO)、内部上拉/下拉电阻和低引脚数选择。 超低功耗低至: 0.1μA RAM 保持模式 0.3μA 待机模式 (VLO) 0.7μA 实时时钟模式 220μA/MIPS 工作模式 在 1μs 之内超快速地从待机模式唤醒 器件参数: 闪存选项:1KB – 120KB RAM 选项:128B – 8KB GPIO 选项:10、16、24、32、48、64 引脚 ADC 选项:10 和 12 位斜率 SAR、16 位 Σ-Δ ADC 其它集成外设:模拟比较器、硬件乘法器、DMA、SVS、12 位 DAC、运算放大器[6]
MSP430C3xx系列
旧款的 ROM 或 OTP 器件系列,工作电压为 2.5V - 5.5V,高达 32KB ROM、4MIPS 和 FLL。 超低功耗低至: 0.1μA RAM 保持模式 0.9μA 实时时钟模式 160μA/MIPS 工作模式 在 6μs 之内快速从待机模式唤醒 器件参数: ROM 选项:2KB – 32KB RAM 选项:512B – 1KB GPIO 选项:14、40 引脚 ADC 选项:14 位斜率 SAR 其它集成外设:LCD 控制器、硬件乘法器[7]
MSP430x4xx系列
基于 LCD 闪存或 ROM 的器件系列,提供 8-16MIPS,包含集成 LCD 控制器,工作电压为 1.8V-3.6V,具有 FLL 和 SVS。低功耗测量和医疗应用的理想选择。 超低功耗低至: 0.1μA RAM 保持模式 0.7μA 实时时钟模式 200μA/MIPS 工作模式 在 6μs 之内快速从待机模式唤醒 器件参数: 闪存/ROM 选项:4kB – 120KB RAM 选项:256B – 8KB GPIO 选项:14、32、48、56、68、72、80 引脚 ADC 选项:10 和 12 位斜率 SAR、16 位 Σ-Δ ADC 其它集成外设:LCD 控制器、模拟比较器、12 位 DAC、DMA、硬件乘法器、运算放大器、USCI 模块[8]
MSP430F5xx系列
新款基于闪存的产品系列,具有最低工作功耗,在 1.8V-3.6V 的工作电压范围内性能高达 25MIPS。包含一个用于优化功耗的创新电源管理模块。 超低功耗低至: 0.1μA RAM 保持模式 2.5μA 实时时钟模式 165μA/MIPS 工作模式 在 5μs 之内快速从待机模式唤醒 器件参数: 闪存选项:高达 256KB RAM 选项:高达 16KB ADC 选项:10 和 12 位 SAR 其它集成外设:USB、模拟比较器、DMA、硬件乘法器、RTC、USCI、12 位 DAC[9]
初步接触像MSP43这样的单片机,最关心的问题就是“怎么样让他跑起来?”,而构建最小系统最关键的就是电源与晶振。电源方面TI有完备的电源解决方案可以供我们参考,至于晶振就比较难办了,因为MSP430采用的是低功耗设计,并不是单片机主频多少外接多大晶振就可以。以msp430f5172为例,当工作在25Mhz频率时需要外接32Khz的超低频率晶振。开始我对这块相当迷惑,但我看过这篇文档后就恍然大悟了,分享给大家,也希望能得到版子 ^_^
把大概内容贴一下,具体请参考附件
1 32 kHz 晶体振荡器 .......................................................................................................... 2
2 晶振选择 ...................................................................................................................... 3
3 印刷电路板 (PCB) 设计注意事项 .......................................................................................... 6
4 测试晶体振荡器 .............................................................................................................. 8
5 生产中的晶体振荡器 ........................................................................................................ 9
图 图片 片列 列表 表
1 一个音叉晶振的机械振荡................................................................................................... 2
2 一个晶振的等效电路........................................................................................................ 2
3 一个晶振的电抗.............................................................................................................. 2
4 主皮尔斯振荡器电路........................................................................................................ 3
5 针对一个 0ppm 晶振的频率与负载电容间的关系........................................................................ 4
6 温度范围内一个音叉晶振的频率偏差 ..................................................................................... 5
7 没有负载电容器和带有负载电容器的布局布线(XIN 和 XOUT 相邻引脚是标准功能引脚) ...................... 7
8 针对 MSP430F41x 和 MSP430F1232IRHB 的带有外部电容器和接地护圈的布局(XIN 和 XOUT 相邻引脚
为 NC 引脚)。 ............................................................................................................. 7
9 带有增加的电阻器 RQ的负电阻方法 ...................................................................................... 9
图 图表 表列 列表 表
1 针对 32kHz 振荡器的典型振荡裕度....................................................................................... 5
2 安全因子...................................................................................................................... 9
采用 MSP430 LaunchPad 启动开发工作
议程
MSP430 系列MCU产品
超低功耗
业内功耗最低的 MCU
集成
智能型模拟与数字外设
量模块、LCD、ADC、DAC 等等
丰富齐全的产品线,低成本可供选择 易于启动开发工作
低成本与简单入手
-包括代码范例、数据手册、用户指南等等!
找到适合您需要的理想 MCU
封装可供选择
MSP430 MCU
介绍
MSP430 | Ultra-Low Power is in our DNA
MSP430 支持的应用
MSP430 MCU 可支持数以
千计的应用
凭借 MSP430 MCU 的超低功耗性能、
高集成度模拟与数字外设、以及易用
的工具,客户可方便地实现其产品的
差异化
MSP430 | Ultra-Low Power is in our DNA
Value Line 系列:16 位性能,8 位器件的价格
1KB
2KB
4KB
8KB
14 引脚
TSSOP/PDIP 封装
10 个 GPIO
16 引脚
QFN 封装
10 个 GPIO
20 引脚
TSSOP/PDIP 封装
16 个 GPIO
16KB
闪存容量
.5 KB
32 引脚
QFN 封装
24 个 GPIO
MSP430G2001
MSP430G21X1*
MSP430G22X1
ADC
SC
MSP430G21X2
UART
28 引脚
TSSOP 封装
24 个 GPIO
MSP430G22X2
MSP430G23X2
MSP430G24X2
MSP430G21X3
MSP430G22X3
MSP430G23X3
MSP430G24X3
MSP430G25X3
SC
ADC
SC
ADC UART
SC
ADC
SC
ADC
SC
ADC
SC
ADC
SC
ADC
SC
ADC UART
SC
ADC UART
SC
ADC UART
SC
ADC UART
Value Line 功能框图
Value Line 外设
通用 I/O
可独立编程
可提供输入、输出与中断(边沿可选)的任意组合
所有寻址指令可对端口控制寄存器进行读/写访问
每个 I/O 具有一个可独立编程的上拉/下拉电阻
某些器件/引脚具有触摸按键模块 (PinOsc)
16 位 Timer_A2
2 个捕获/比较寄存器
丰富的中断功能
WDT+ 看门狗定时器
也可用作一个普通定时器
欠压复位
可在上电和断电期间提供正确的复位信号
功耗包含于MCU最低功耗时(LPM4)所消耗电流之中
Value Line 外设
串行通信
支持 I2C 和 SPI 的 USI
支持 I2C、SPI 以及 UART 的 USCI
Comparator_A+
可设定反相和同相输入
可选的 RC 输出滤波器
可直接输出至 Timer_A2 捕获输入
具有中断能力
8 通道/10 位 200 ksps SAR ADC
8 个外部通道(取决于器件)
内置电压和温度传感器
可编程的参考电压
DTC可在无需 CPU 干预的情况下将结果发送至存储器
具有中断能力
LaunchPad 开发板
片上仿真器模块
6 针 eZ430 连接器
MSP430器件和插座
外置晶体接口
电源连接器
复位按钮
LED 和跳线
P1.0 和 P1.6
P1.3 按钮
芯片引出脚
USB 仿真器接口
议程
Code Composer Studio 简介
用于 TI 嵌入式处理器的集成型开发环境 (IDE)
包括调试器、编译器、编辑器、仿真器、操作系统 (OS) ...
该 IDE 基于 Eclipse 开源软件框架
由 TI 对其进行扩展以支持TI 嵌入式控制器
CCSv5 基于成熟的 Eclipse(在 CCS 5.1 中采用的是 version 3.7)
未来的 CCS 版本将使用 Eclipse 的最新版本
由其他供应商提供的全兼容型 Eclipse 插件或使用 TI 工具并将它们置于一种现有的
Eclipse 环境之中
用户能充分利用 Eclipse 的最新特性
集成更多的工具
OS 应用程序开发工具(Linux、Android...)
代码分析、源控制...
很快支持 Linux
低成本!445 或 495 美元
常见任务
创建新项目
采用模板即可非常简单地创建针对某款器件的新项目
Build选项
用户可使用Build选项对项目进行编译配置
选项的更新通过编译器的发布来提供,而不依赖于 CCS 的更新升级
共享项目
用户可非常方便共享项目,并包括项目的版本控制等
简化操作以共享链接资源
方案
源文件
头文件
库文件
Build与工具设置
方案
源文件
头文件
库文件
Build与工具设置
工作空间与方案
工作空间
项目一
项目二
项目三
设定和偏好
工作空间包含您的设置
与偏好,以及至您的项
目的链接。
将项目从工作空间中删
除只是删除了链接,而
并非设计文件
项目
源文件
头文件
库文件
Build与工具设置
一个工程项目包含了您
的Build选项与工具设置
,以及至您的输入文件
的链接。
将文件从工作空间中删
除只是删除了链接,而
并非设计文件
源文件
代码和数据
头文件
说明/定义
库文件
代码和数据
链接
链接
链接
链接
项目向导
单页向导满足大多数情况的使用要求
"下一个"按钮将在某个模板需要附加设
置显示
包含调试器设置
假如选取了某款特定的器件,用户还
可选择其调试器,并生成 ccxml 文件
采用默认设置使其简单易用
一些高级配置编译器版本、字节存储
顺序等在 Advanced Settings下
MSP430 | Ultra-Low Power is in our DNA
各种不同的 IDE 选项
可提供免费的集成型开发环境 (IDE)
Code Composer Studio
可提供其他的 MSP430 IDE 选项!更多详情敬请访问 www.ti.com/msp430tools
IAR Embedded Workbench
器件的配置文件。
MSPGCC
Lab1:Code Composer Studio
第一步:创建 CCS 工作空间
第二步:创建一个 CCS 项目
Empty Project
第三步:在 CCS 项目中加进一个文件
Temperature_Sense_Demo.c
CCS 窗口 - C/C++ 透视概览
独立的调试与 C/C++ 项目透
视图
一键式项目调试
项目概要
问题观察
项目视图
列表
代码窗口
控制台
CCS 窗口 - 调试透视概览
独立的调试与 C/C++
项目透视图
一键式项目调试
目标控制
代码窗口
程序长度信息
实时、系统内
MSP430 信息
访问
高度可配置的窗口布局
第四步:Build及调试一个 CCS 项目
点击 "DEBUG" 以构建代码
并启动调试器
第五步:运行、终止一个 CCS 项目
"终止"
"运行"
透视图
议程
MSP430G2xx 结构
超低功耗
0.1uA 断电模式流耗
0.8uA 待机模式流耗
220uA / 1MIPS
<1us 时钟启动时间
<50nA 端口漏电流
零功耗欠压复位 (BOR)
超灵活
0.5k 至 16kB 系统内可编程 (ISP) 闪
存
16 位定时器
SPI、I2C
10 位 ADC
嵌入式仿真
闪存 时钟
数字
外设
RISC
CPU
16 位
MAB 16
MDB 16
RAM
模拟
外设
. . .
. . .
ACLK
SMCLK
JTAG/调试
0 15
16
16-bit ALU
R8
R9
R10
R11
R12
R13
R14
R15
R4
R5
R6
R7
R3/CG
R2/SR
R1/SP
R0/PC
16
0 15
16
16-bit ALU
R8
R9
R10
R11
R12
R13
R14
R15
R4
R5
R6
R7
R3/CG
R2/SR
R1/SP
R0/PC
16
16 位 RISC CPU
单周期寻址寄存器文件
4 种专用型
12 种通用型
无累加器瓶颈
RISC 架构
27 条核心指令
24 条仿真指令
7 种地址模式
Atomic内存至内存寻址
位、字节和字处理
常数发生器
7
存储器映射
中断矢量表
闪存/ROM
信息存储器
RAM
16 位外设
8 位外设
8 位特殊功能寄存器
闪存可编程:通过 JTAG 或系统内
(ISP)
编程电压低至 2.2V,单字节或单字编程
主存储器:每段512 字节 (0-n). 可分段
或全部擦除
信息存储器:每段64 字节 (A-D)
Section A 包含器件专用的校准数据,并
可锁定
可编程闪存定时发生器
0Fh
0h
0FFh
010h
01FFh
0100h
027Fh
0200h
FFDFh
F800h
0FFFFh
0FFC0h
示出的是 G2231
010FFh
01000h
MC LK
C PU
SMC LK
Pe r iphe r a ls
A C LK
Pe r iphe r a ls
1 6MH z
D C O
Mi n . Pu l s
Fi l te r
VL O
OSC_ Fa u l t
时钟系统
超低功耗/低频振荡器 (VLO)
4 - 20kHz(典型值为 12kHz)
500nA 待机流耗
0.5%/°C 和 4%/V 漂移
晶体振荡器 (LFXT1)
片内集成可编程负载电容
故障保险 OSC_Fault
脉冲滤波器
数字控制振荡器 (DCO)
0 至 16MHz
+ 3% 容差
出厂校准(保存在闪存中)
MCU PUC后,MCLK 和 SMCLK 由
DCOCLK 提供(约 1.1 MHz)。在
LF 模式中,ACLK 由 LFXT1CLK 采用
一个 6pF 内部负载电容提供。
G2xxx -DCO校正
// Setting the DCO to 1MHz
if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
while(1); // Erased calibration data? Trap!
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation
G2xx1 器件只具有 1MHz DCO 校正参数。若需要较高的频率,客户必须自行校准。
G2xx2 和 G2xx3 具有所有 4 个DCO校正参数校准值。
VLO 的校准
在运行期间可对 VLO 进行校准
采用校准的 1MHz DCO为Timer_A提供时钟
利用 VLO 提供的 ACLK/8 ,捕获其上升沿
经运算f
VLO
= 8MHz/计数
可在网上查询代码库 (SLAA340)
TAR
Calibrated 1 MHz DCO
CCRx
ACLK/8 from VLO
f
VLO
= 8MHz/Counts
系统 MCLK 和 Vcc
时钟速度与所需的 Vcc 必需匹配
需要外部 LDO 稳压器
如果 Vcc < 选定频率所要求的最小电压值,则会导致程序运行不确定性
所有 G2xxx 器件的工作频率均可高达 16MHz
Lab2:基本时钟配置
Lab 2:
// Configure Basic Clock
BCSCTL1 = __________; // Set range
DCOCTL = ___________;// Set DCO step + modulation
BCSCTL3 |= LFXT1S_2;// Set LFXT1
// Configure MCLK
BCSCTL2 |= ________ + DIVM_3; // Set MCLK
Lab 2:2xx 用户指南中的 BCSCTL2
Lab 2:MSP430G2231 标头文件中的 BCSCTL2
议程
中断和堆栈
进入中断服务程序
当前执行的指令已完成
指向下一条指令的 PC 被推送至堆栈上
SR 被推送至堆栈上
选择了具有最高优先级的中断
中断请求标志为单源中断标志时自动复位;若为多源中断标志则保持于
设定状态,由软件控制
SR 被清零;这将终止任何低功耗模式;由于 GIE 位被清零,因此将禁
止执行更多的中断
中断向量的内容被装入 PC;程序将利用位于该地址的中断服务例程继
续执行
Vector Table - G2231
Interrupt Source Interrupt
Flag
System
Interrupt
Word Address Priority
Power-up
External Reset
Watchdog Timer+
Flash key violation
PC out-of-range
PORIFG
RSTIFG
WDTIFG
KEYV
Reset
0FFFEh
31
(highest)
NMI
Oscillator Fault
Flash memory access violation
NMIIFG
OFIFG
ACCVIFG
Non-maskable
Non-maskable
Non-maskable
0FFFCh
30
0FFFAh 29
0FFF8h 28
0FFF6h 27
Watchdog Timer+ WDTIFG maskable 0FFF4h 26
Timer_A2 TACCR0 CCIFG maskable 0FFF2h 25
Timer_A2 TACCR1 CCIFG
TAIFG
maskable 0FFF0h 24
0FFEEh 23
0FFECh 22
ADC10 ADC10IFG maskable 0FFEAh 21
USI USIIFG
USISTTIFG
maskable 0FFE8h 20
I/O Port P2 (2) P2IFG.6
P2IFG.7
maskable 0FFE6h 19
I/O Port P1 (8) P1IFG.0 to
P1IFG.7
maskable 0FFE4h 18
0FFE2h 17
0FFE0h 16
Unused 0FFDEh to 0FFCDh 15 - 0
中断处理函数编程
#pragma vector=WDT_VECTOR
__interrupt void WDT_ISR(void)
{
IE1 &= ~WDTIE; // disable interrupt
IFG1 &= ~WDTIFG; // clear interrupt flag
WDTCTL = WDTPW + WDTHOLD; // put WDT back in hold state
BUTTON_IE |= BUTTON; // Debouncing complete
}
#pragma vector - 下面的函数是一个用于所列矢量的 ISR
__interrupt void - 识别 ISR 名称
无特别需要的返回值
GPIO 端口
P1DIR |= BIT4;
P1SEL |= BIT4;
P1DIR |= BIT0;
P1OUT |= BIT0;
输入寄存器 PxIN
输出寄存器 PxOUT
方向寄存器 PxDIR
功能选择 PxSEL
中断边缘 PxIES
中断启用 PxIE
中断标记 PxIFG
用于 GPIO 中断
电阻启用 PxREN
功能选择2 PxSEL2
GPIO 寄存器
GPIO 代码范例
G2231
引脚复用
每个引脚具有多项功能
在对应的寄存器选择相应的引脚功能
具体详见各器件的数据手册
Lab3:GPIO
Lab3
Lab 3:
P1DIR |= BIT0; // Set P1.0 to output direction
P1IES |= BIT3; // P1.3 Hi/lo edge
_____ &= ~BIT3; // P1.3 IFG cleared
_____ |= BIT3; // P1.3 interrupt
// Port1 interrupt service routine
#pragma vector = __________
__interrupt void Port_1(void)
// Port1 interrupt service routine
P1OUT ^= BIT0; // P1.0 = toggle
______ &= ~BIT3; // P1.3 IFG cleared
议程
Timer_A
异步 16 位定时器/计数
器
连续、递增-递减、递增
计数模式
多个捕获/比较寄存器
PWM 输出
中断向量寄存器用于实
现中断快速响应
能触发 DMA 传输
所有 MSP430 上均有
Timer_A模块
C o mp a ra ra to r 2
C C I
C o u n t
Mo d e
Se t
TAIFG
TAC C R 2
AC L K
SMC L K
TAC L K
IN C L K
GN D
VC C
C C I2 A
C C I2 B
Se t
C C IFG2
Ou tp u t
U n i t2
C C R 0
SC C I Y
A
EN
C C R 1
C C R 2
C a p tu re
Mo d e
1 6 -b i t Ti me r
TAR
Timer_A 计数模式
0FFFFh
0h
CCR0
停止/暂停
定时器计数停止/暂停
递增
定时器在 0 和 CCR0 之间计数
0FFFFh
0h
连续
定时器连续递增计数
0FFFFh
0h
CCR0
UP/DOW N Mode
递增/递减
定时器在 0 - CCR0 - 0 之间计数
CCR - 计数比较寄存器
Timer_A 中断
TACCR1 CCIFG
TACCR2 CCIFG
TAIFG
TIMERA1_VECTOR TAIV
对 TACCR1、2 和 TA 中断标记进行优先级处理,并采用 Timer_A
中断向量寄存器 (TAIV) 将之组合成为另一个中断向量。
TACCR0 CCIFG TIMERA0_VECTOR
Timer_A 捕获/比较寄存器 0 中断标记
(TACCR0) 生成单个中断向量:
代码必须包含一个处理程序,以确定触发的是哪一个 Timer_A1 中断
无需处理程序
TAIV 处理程序范例
#pragma vector = TIMERA1_VECTOR
__interrupt void TIMERA1_ISR(void)
{
switch(__even_in_range(TAIV,10))
{
case 2 : // TACCR1 CCIFG
P1OUT ^= 0x04; break;
case 4 : // TACCR2 CCIFG
P1OUT ^= 0x02; break;
case 10 : // TAIFG
P1OUT ^= 0x01; break;
}
}
0xF814 add.w &TAIV,PC
0xF818 reti
0xF81A jmp 0xF824
0xF81C jmp 0xF82A
0xF81E reti
0xF820 reti
0xF822 jmp 0xF830
0xF824 xor.b #0x4,&P1OUT
0xF828 reti
0xF82A xor.b #0x2,&P1OUT
0xF82E reti
0xF830 xor.b #0x1,&P1OUT
0xF834 reti
C 代码 汇编代码
源 TAIV 内容
没有即将发生的中断 0
TACCR1 CCIFG 02h
TACCR2 CCIFG 04h
保留 06h
保留 08h
TAIFG 0Ah
保留 0Ch
保留 0Eh
0
TAIV
15
x x x x 0 0 0 0 0 0 0 0 0 0 0
0
PWM完全自动发送
可通过对CCR的配置,生成多路相同频率和不同占空比的PWM
请浏览 MSP430 的相关网址的代码范例
Timer_A PWM 范例
TEST
Vcc
P2.5
Vss
XOUT
XIN
RST
P2.0
P2.1
P2.2
TA2/P1.7
P1.6
P1.5
P1.4
P1.3
TA1/P1.2
P1.1
P1.0
P2.4
P2.3
MSP430F11x1
CCR0
CCR1
CCR0
CCR1
CCR0
CCR1
CCR2 CCR2 CCR2
采用 Timer_A 的直接硬件控制
TACCR1:
基准延迟 / ADC 触发
TAIFG:
基准和 ADC 接通
TAR
0
TACCR1 = 557
65535
ADC10IFG:
处理 ADC 结果
基准 / ADC 关断
CPU 运作模式
17ms
2s
范例:ADC10
WDT+ 模块:概要
看门狗
间隔定时器
单独中断向量
1 6 -Bi t
C o u n te r
Pa ssw o rd
C o mp a re
EQU
EQU
R / W
MD B
WD TC TL
C o n tro l
R e g i ste r
看门狗定时器故障保险
倘若 ACLK/SMCLK 发生故
障,则时钟脉冲源 = MCLK
(WDT+ 故障保护特性)
假如 MCLK 由一个晶振
(XTAL) 提供,且晶振发生故
障,则 MCLK = DCO
(XTAL 故障保护特性)
Fa il -Sa fe
Logic
1 6-bit
C ounte r
A EN
SMC LK
A C LK
MC LK
1
1
C LK
WD TSSEL WD TH OLD
WDT:常见设计问题
设置一个靠近 main() 起点的中断,以查看代码是否重新启动
C 程序是不是具有大量初始化数据 ?
通常只会在拥有超大RAM空间器件上出现
解决方案:在 __low_level_init() 函数中关闭看门狗
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop the dog
.
.
}
WDT:间隔定时器功能
时被设定,则生成一个 WDT 间
隔中断(而不是复位中断)
Lab4:定时器和中断
Lab4
LED控制
Lab 4 源代码
// Configure TimerA
TACTL = __________________; // Source: ACLK, UP mode
CCR0 = 5100; //Timer count 5100
CCR1 = 100; //Timer count 100
CCTL0 = CCIE; //CCR0 interrupt enabled
CCTL1 = CCIE; //CCR1 interrupt enabled
// Timer A0 interrupt service routine
#pragma vector = __________
__interrupt void Timer_A0(void)
// Timer A1 interrupt service routine
#pragma vector = __________
__interrupt void Timer_A1(void)
议程
超低功耗特性
MSP430 从一开始就是专为
超低功耗 (ULP) 而设计的
外设专为减少功耗和最大限
度地降低 CPU 占用率而优化
智能型低功耗外设能独立于
CPU 而工作,并让系统在更
长的时间里处于较低功耗模
式
www.ti.com/ulp
超低功耗是MSP430的NDA
多种操作模式
100 nA 断电(RAM 保持)
0.3 µA 待机
110 µA / MIPS(采用 RAM)
220 µA / MIPS(采用闪存)
即时可稳定工作的高速时钟
1.8 至 3.6V 单电源操作
零功率、始终工作的 BOR
<50nA 的引脚漏电流
可最大限度地减少每项任务的执行周期的 CPU
低功耗智能外设
自动传输数据的 ADC
功耗微乎其微的定时器
100 nA 模拟比较器
可保证所需工作条件下的性能
超低功耗工作模式
最大限度地减少运行时间
最大限度地增加系统处于低功耗模式
按功能需求的中断型程序设计(具有 <1μs 的唤醒时间)
始终工作的零功耗欠压复位 (BOR) 功能电路
运行状态
低功耗模式
平均水平
关断
所有时钟均
关断
100nA
待机
DCO 关断
ACLK 接通
0.3µA
LPM3
CPU 关断
DCO 接通
ACLK 接通
45µA
MSP430 低功耗模式
LPM0
LPM4
运行
DCO 接通
ACLK 接通
220µA
<1µs
<1µs
具体数值因器件而异
低功耗模式配置
运行模式 0 0 0 0 约 250uA
LPM0 0 0 0 1 约 35uA
LPM3 1 1 0 1 约 0.8uA
LPM4 1 1 1 1 约 0.1uA
bis.w #CPUOFF,SR ; LPM0
R2/SR
保留 C
SCG1 SCG0
Z N GIE
CPU
OFF
OSC
OFF
V
采用汇编程序的 LPM
ORG 0F000h
RESET mov.w #300h,SP
mov.w
#WDT_MDLY_32,&WDTCTL
bis.b #WDTIE,&IE1
bis.b #01h,&P1DIR
Mainloop bis.w #CPUOFF+GIE,SR
xor.b #01h,&P1OUT
jmp Mainloop
WDT_ISR bic.w #CPUOFF,0(SP)
reti
ORG 0FFFEh
DW RESET
ORG 0FFF4h
DW WDT_ISR
Item1
Item2
PC
SR=0018
SP
SP
第一项
第二项
PC
SR
Item1
Item2
PC
SR=0008
SP
第一项
第二项
低功耗模式的堆栈操作
ULP 简单易用!
使用我们的低功耗模式很容易
void main(void)
{
WDT_init(); // initialize Watchdog Timer
while(1)
{
__bis_SR_register(LPM3_bits + GIE); // 进入 LPM3,启用中断
activeMode(); // 运行的代码
}
}
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer (void)
{
__bic_SR_register_on_exit(LPM3_bits); // 从 0(SR) 清除 LPM3 位,退出 LPM3,进入运行模式
}
= LPM3 + RTC_Function
0.80µA + 250µA *
100µs
1000000µs
0.80µA + 0.030µA = 0.83µA
时间
1mA
1µA
100µA
10µA
// Partial RTC_Function
incrementseconds();
incrementminutes();
incrementhours();
//
3 2 7 6 8
In te rfa ce
MSP 4 3 0F2 0 x 1
可连续工作 10 年的嵌入式实时时钟
低功耗操作
低功耗MSP430 应用:
可最大限度地减小瞬间吸收电流
能最大限度地增加系统处于低功耗模式的时间
MSP430 具备固有的低功耗特性,但是您的设计对于
系统功耗也有很大的影响
正确的低功耗设计方法能起到改进的作用
即时稳定时钟
100% CPU 负荷
将软件功能移至外设来完成
MCU
P1.2
// Endless Loop
for (;;)
{
P1OUT |= 0x04; // Set
delay1();
P1OUT &= ~0x04; // Reset
delay2();
}
// Setup output unit
CCTL1 = OUTMOD0_1;
_BIS_SR(CPUOFF);
零 CPU 负荷
47
片上模拟外设的电源管理
P1OUT |= 0x02; // Power divider
CACTL1 = CARSEL + CAREF_2 + CAON; // Comp_A on
if (CAOUT & CACTL2)
P1OUT |= 0x01; // Fault
else
P1OUT &= ~0x01;
P1OUT &= ~0x02; // de-power divider
CACTL1 = 0; // Disable Comp_A
Comparator_A
Px.x
R e f
+
-C AON
MSP4 3 0 F2 0 x 1
P1 .0
48
具有关断模式的运算放大器其总功耗可降低 20 倍
MC U MC U
Se ns or
TLV2 7 6 0
SD
A D C
Px.x
Se ns or
" 1 uA OPA "
A D C
0.01uA = 关断模式
20uA = 运行模式
---------------------------
0.06uA = 平均值
1uA = 静态模式
1uA = 运行模式
-----------------------
1uA = 平均值
外部设备的电源管理
49
未用引脚接口
数字输入引脚需防止遭受击穿电流的影响
如果引脚设为输入且浮动,则当输入电压在 VIL 与 VIH 之间时的
会产生击穿电流。
未用的GPIO 应当:
设为输出
可由一个外围线路连接至 Vcc 或GND
或可接上一个上拉/下拉电阻
Lab5:低功耗模式
Lab5
Lab 5:
_BIS_SR(_________);//Enter Low Power Mode;
仅采用一行代码即可进入低功耗模式!
议程
快速灵活的 ADC10
10 位 8 通道 SAR ADC
6 个外部通道
Vcc 和内部温度
采样速率高达 200 ksps
可选的转换时钟
多种自动扫描模式
单通道单次
多通道单次
单通道多次
多通道多次
内部或外部基准自由选择
可由Timer_A 触发
具中断能力
数据传输控制器 (DTC)
自动断电模式
R A M, Fla s h,
Pe r iphe r a ls
S/H 1 0- bit SA R
A D C 1 0SC
TA1
TA2
TA0
D ir e c t
Tr a ns fe r
C ontr olle r
V R - V R +
A VC C A VSS
1 .5V or 2 .5V
A uto
B a tt Te m p
Direct
Transfer
Controller
Data
Transfer
Controller
采样定时
参考电压建立时间最大为30uS
可选的采样保持时间
转换需13个时钟周期
可选的时钟脉冲源
- ADC10OSC(约 5MHz)
- ACLK
- MCLK
- SMCLK
70 个周期/样本
全自动
自动扫描 + DTC 可实现性能提升
Data2
Data1
Data0
Data2
ADC
DTC
AUTO
// Autoscan + DTC
_BIS_SR(CPUOFF);
// Software
Res[pRes++] = ADC10MEM;
ADC10CTL0 &= ~ENC;
if (pRes < NR_CONV)
{
CurrINCH++;
if (CurrINCH == 3)
CurrINCH = 0;
ADC10CTL1 &= ~INCH_3;
ADC10CTL1 |= CurrINCH;
ADC10CTL0 |= ENC+ADC10SC;
}
Comparator_A
可用内部电压参考,
也可从外部接入
内建低通滤波器可利
用软件来选择开或关
多路输入选择开关
具有中断功能
CAOUT
+
-VCC
CAEX
0.5xVCC
0.25xVCC
set CAIFG
Flag
CA0
CA1
CCI1B
+
-0V
G
D
S
VCC 0V
CAON
CAREF
0 .2 5 x VC C
+
-~0 .5 5 V
R EF
Px.x
Px.x
VSS
Tim e r _ A
C a ptur e
基于比较器的Slope ADC
10 位以上的精度
非常适合电阻型传感器
超低成本应用
应用笔记 SLAA038
R_NTC = 10k x
t_NTC
t_10k
t_x = R_x x C x ln
Vcc
CAREF V
. . .
定时器触发采样
// Interrupt CPU cycles
; MSP430 ISR to start conversion 6
BIS #ADC12SC,&ADC12CTL0 ; Start conversion 5
RETI ; Return 5
; 16
存储器
ADC
定时器
定时器触发的中断 - 无软件等待循环
选择一款 MSP430 ADC
需要测量的电压范围是多少?
针对 A
IN 的最大频率是多少?
分辨率是多少?
是否采用差分输入?
基准范围是多少?
是否具有多个通道?
最小值最大值 RefIN
RefOUT
RefI_OUT
ADC10 8 34 200+ 10 57 Vss 至 Vref 1.4-3.6 1.5/2.5V +/-1mA SW/定时器/计数器 N/A DTC
ADC12 12 34 200+ 12 68 Vss 至 Vref 1.4-3.6 1.5/2.5V +/-1mA SW/定时器/计数器 N/A 转换存储器
SD16 3 个独立 16 85 +/-600mV 1.0-1.5 1.2V +/-1mA SW/计数器 至32倍预加载
SD16_A 4 个复用约 0.03 约 5 16 85 +/-600mV 1.0-1.5 1.2V +/-1mA SW/计数器 至32倍缓冲输入
SINAD
(典型值)
AIN 触发 增益 特性
约 4
fSAM PLE
(ksps) 基准
通道数 分辨率
Slope
Bits
10 100 1k 10k 100k 1M
SAR
Sigma-Delta
Samples per Second
8
12
16
20
24
Lab6:应用ADC10
Lab6:
温度
Lab 6:
//Configure ADC10
// Choose ADC Channel as Temp Sensor
ADC10CTL1 = _______ + ADC10DIV_3;
//Choose ADC Ref sourceCCTL1
ADC10CTL0 = _______ + ADC10SHT_3 + REFON + ADC10ON +ADC10IE;
议程
USI
MSP430G2xx1/2 器件
可变长度移位寄存器
支持 I2C
START/STOP 检测
SCL 在 START 之后保持
SCL 在计数器溢出之后保
持
丢失检测仲裁机制
支持 SPI
8/16 位移位寄存器
MSB或LSB 优先可选
灵活的定时
中断驱动
8 /1 6 -B it Shift
R e gis te r
SD A
SD I
SC L
SC L K
U SIIFG
U SIIFG
U SISTTIFG
SMC L K
SC L K
AC L K
TA1
TA2
SWC L K
TA0
D iv ide r
H OL D
U SIIFG
SC L H o l d
B it C ounte r
STAR T
STOP
D e te ct
SD O
U SISTTIFG
U SISTP
USI的data IO
数据移位寄存器:可支持多达
16 位
发送与接收的位数受控于一个
位计数器
发送与接收是同时进行的
数据 I/O 由用户定义:MSB
或 LSB 优先
位计数器在最后一个位之后自
动停止计时并设定标记
无需数据缓冲
USISSELx
USIIFG
Bit Counter
Data I/O
Set USIIFG
USICNTx
SMCLK
SMCLK
SCLK
ACLK
TA1
TA2
USISWCLK
TA0
Clock Divider
/1/2/4/8.../128
USIDIVx
HOLD
Data Shift
Register
//Shift16_inout_Software
SR = DATA;
for (CNT=0x10;CNT>0;CNT--)
{
P2OUT &= ~SDO;
if (SR & 0x8000)
P2OUT |= SDO;
SR = SR << 1;
if (P2IN & SDIN)
SR |= 0x01;
P2OUT |= SCLK;
P2OUT &= ~SCLK;
}
USI 减低了 SPI 的 CPU 负荷
425 个周期
10 个周期
// Shift16_inout_USI
USISR |= DATA;
USICNT |= 0x10;
Pe r iphe r a l
SD O
SC L K
SD IN
MSP4 3 0
I2C Slave从时钟边缘至数据寄存器
的时间短至 4us
若使用纯软件解决方案,MCU几乎
无法完成其他操作
USI 硬件可实现实用和兼容的 I2C
代码可通过 MSP430 的相关网址获
得
USCI
专为超低功耗而精心设计:
可从任意低功耗模式自动起动
两个专用模块:
USCI_A:
UART 或 SPI
USCI_B:
SPI 或 I2C
双缓冲发送 (TX) / 接收 (RX)
波特率/位时钟发生器:
自动波特率检测
灵活的时钟脉冲源
接收 (RX) 干扰抑制
DMA 被启用
误差检测
SMC L K
Ba u d R a te
Ge n e ra to r
Se ri a l In te rfa ce
AC L K
SPI
U AR T
IrD A
U C x
Bi t C l o ck
Ge n e ra to r
Se ri a l In te rfa ce
AC L K
SMC L K
I2 C
SPI
U C BxC L K
U C AxC L K
U SC I _B
U SC I _A
7
U C x
4
推荐的 USCI 初始化/重构过程在您的工作手册中进行了说明。
USCI 增强型特性
最新标准 MSP430 串行接口
可从任意低功耗模式 (LPM) 实现自动时钟起动
两个独立的通信模块
异步通信模式
UART 标准和多处理器协议
具有自动波特率检测功能的 UART
(支持 LIN)
两个调制器支持 n/16 位定时
IrDA 位整形编码器与解码器
同步通信模式
SPI(主控器和从动器模式,三线和四线式)
I2C(主控器和从动器模式)
U x R XB U F
U R XD
SMC L K
U C L KI
AC L K
SMC L K
R e c e iv e r Shift
R e gis te r
B a ud- R a te
Ge ne r a tor
Tr a ns m it Shift
R e gis te r
U x TXB U F
C l o ck Ph a se a n d Po l a ri ty U C L K
U TXD
SOMI
SIMO
STE
USCI 波特率发生器
Pre sca l e r / D i vi d e r
U C A x B R 0
1
st
Mo d u l a to r B ITC LK 1 6
U C A x B R 1
8 8
U C B R Sx
3
U C 0 C L K
AC L K
SMC L K
SMC L K
L SB
/ 1 6
2
n d
Mo d u l a to r B ITC LK
U C B R Fx
4
BITC L K1 6
1 Bi t
Sa mp l i n g fo r ma j o ri ty vo te s
R XD
过采样波特率发生
两个调制器
UCBRSx 和 UCBRFx
采用 BITCLK16 进行 RX 采样
Value Line 通信模块
通用串行通信接口
G2xx3
通用串行接口
G2xx1/2
两个调制器;支持
n/16 定时
- 自动波特率检测
- IrDA 编码器与解码器
- 同时 USCI_A 和 USCI_B(两通
道)
- - -
两个 SPI(USCI_A 和 USCI_B 上
各一个)
-支持Master和Slave模式
- 三线和四线模式
- 可提供一个 SPI
-支持Master和Slave模式
- 简化的中断用法
- 支持Master和Slave模式
- 高达 400kbps
- 需要软件 (SW) 状态机
-支持Master和Slave模式
USCI
USI
SPI
I2C
UART
低开销 UART 实现方案
100% 硬件实现锁存与输出
依靠 LPM3 和 LPM4 实现了全速性能
低 CPU 开销
应用笔记 SLAA078 可在网上查阅
P2 .2 /TA0 TA0/P1 .1
MSP4 3 0
Sta rt - C C R 0 = TAR
- a d d 1 .5 b i t l e n g th to C C R 0
- sw i tch to co mp a re mo d e
co mp a re - l o g i c l e ve l l a tch e d i n SC C I
- a d d 1 b i t l e n g th to C C R 0
Sto p
OU TMOD x
Ou tp u t
U n i t0
SC C I Y
A
EN C a p tu re /C o mp a re
TXD
R XD
76
议程
Grace
TM
Grace
TM
一款免费的图形用户界面,可生成源代码,免
除手动配置外设
Grace 是什么?
Grace - Graphical Code Engine(图形代码引擎)
是:
不是:
直观地启用和配置 MSP430 外设
开发人员可与按钮、下拉菜
单和文本字段进行交互,以
轻而易举地完成对底层寄
存器的设置
Grace 可生成经全面注释的
C 代码,适用于来自
MSP430 产品线的所有
F2xx 和 G2xx Value Line
微控制器
项目结构与构建流程
应用程序
C/C++
源文件
"xxxxx.cfg"
这是器件外设配置文件,并采用图形 Grace 视图
进行编辑。
"src" 文件夹
在 "Debug" 或 "Release" 文件夹内部自动生成。
包含用于对所有已配置外设进行初始化的
MSP430 C 代码。
C/C++ 编译器 链接器 最终的可执行
MSP430 输出文件
用户代码框架示例
/*
* ======== Standard MSP430 includes ========
*/
#include <msp430.h>
/*
* ======== Grace related includes ========
*/
#include <ti/mcu/msp430/csl/CSL.h>
/*
* ======== main ========
*/
int main(int argc, char *argv[])
{
// Activate Grace-generated configuration
CSL_init();
__enable_interrupt(); // Set GIE
// >>>>> Fill-in user code here <<<<<
return (0);
}
执行所有由 Grace 配置的外
设设置
用户代码从这里开始...
430通用头文件
主控器包括用于所有 Grace
关联内容的文件
Grace - 添加一个外设
怎样告知添加了一个外设?
则将显示一个绿色的钩型标记。
Grace - 导航
Grace - 配置一个外设
"Overview"(概要)
"Basic User"(基本用户)
"Power User"(高级用户)
"Registers"(寄存器设置)
它们是完全连通的
当前的配置
Grace - 移除一个外设
Lab7:Grace
Lab7:
Lab 7:按步操作
即唤醒 MCU
议程
什么是电容式触摸?
te xt
C1
C2
C3
C4
电容的变化...
当存在一个导电元件时 - 手指或触针
MSP430 电容式触摸检测方法
Pin oscillator
(带内部 RO 的 PinOsc)
无需外部组件
使用内部定时器
目前采用此方法的器件是 MSP430G2xx2 和 MSP430G2xx3
1uA/按钮
10uA/按钮
< 3uA/按钮
RO
抗干扰能力最强
使用内部定时器、比较器
具有比较器的 MSP430 器件均支持
RC
功耗最低的方法
最多可支持 16 个按键
使用 GPIO 和定时器
任何 MSP430 器件均支持
触摸库结构
Button
Slider
Proximity
Capacitance Sensor
APPLICATION LAYER:
Compensation
PHYSICAL LAYER:
Filter Method Type:
RC
RO
Fast Scan RO
Wheel
0/1 Z X A
PinOsc
16bit
Capacitance
CAP TOUCH
LAYER
Determination of threshold crossing
Sensor Delta
Offset
Array of deltas
SCHEDULER
HAL
Element:
Port I/O
definitions
Sensor:
Electrodes
Reference
Sensor Type
Measurement Method
Peripherals
Peripheral settings
Measurement Parameters
Schedule:
Sensor
Peripherals
Period definition
配置
电容式触摸 BoosterPack
电容式触摸插件
MSP430G2xx2芯片
器件型号:430BOOST-SENSE1
谢谢! 我这里分享一份TI关于G2系列单片机在线培训视频的PPT,感觉这份PPT全方位的介绍了G2系列,各个模块部分都分开讲述,
我也刚刚入门了MSP430单片机,很有幸参加了2012年的TI杯大学生电子设计大赛,而且做的网络阻抗测试仪也拿到了好名次,我想分享的书是《MSP430F常用模块应用原理》,这本书介绍了很多有用的模块,而且对430单片机的寄存器介绍的很详细,我觉得看了以后,430变的不那么的难了!
分享一个比较好的430的视频啊教程,下载链接在simplecd上面 http://simplecd.me/entry/gRgTd5v5/(
ed2k://|file|%E7%AC%AC%E4%B8%80%E9%83%A8%E5%88%86.%E7%A1%AC%E4%BB%B6%E7%BB%93%E6%9E%84.rar|765081734|b02160fe6ad0b42211a5d2548895b4ee|h=ihqwhxpar5hm4ojyo7lunhhnt2mblqyw|/ |
ed2k://|file|%E7%AC%AC%E4%BA%8C%E9%83%A8%E5%88%86.%E8%BD%AF%E4%BB%B6%E4%BD%BF%E7%94%A8.rar|122128500|017e70fef1702d2fdb19b93cc56d87d6|h=tdcxs4tzmq6ssu53qmgy2y52bvggl3p3|/ |
ed2k://|file|%E7%AC%AC%E4%B8%89%E9%83%A8%E5%88%86.%E5%9F%BA%E7%A1%80%E7%A8%8B%E5%BA%8F.rar|451203473|56f173cd084d528d8b7e0bba4e3ed212|h=m7neurqoajuqew62xrgjv4zqlx2fi5fv|/ |
ed2k://|file|%E7%AC%AC%E5%9B%9B%E9%83%A8%E5%88%86.%E6%A8%A1%E5%9D%97%E7%A8%8B%E5%BA%8F.rar|1363629985|6ae0caa60b8edaca557998e88a05841c|h=ucvroeo4h7fh5vgarozhj5cpytgewxzt|/ |
)
从430的整体内部部件讲起,然后对照官方的文档来逐步讲解每一个功能模块,最后再来结合参考的例程叫你如何编写430的C语言程序,讲解非常详细,强烈推荐初学者看看这个视频。
另外把自己收藏的几个430的文档以及官方的各个模块的例程代码共享一下,希望能够得到套件。
资料名称:MSP-EXP430F5529实验板用户手册
资料地址:http://www.ti.com.cn/cn/lit/ug/slau330a/slau330a.pdf
分享理由:它不仅仅是一个实验板的用户手册!第16页的基本代码结构提示我们配套软件提供了很多例程,本人开发的GPS记录仪使用到了其中的FatFs,即读写FAT文件系统的SD卡。里面还有MSP430的USB功能演示,包含模拟HID设备、大容量存储设备等。
资料名称:MSP-EXP430G2 LaunchPad试验板用户手册
资料地址:http://www.ti.com.cn/cn/lit/ug/zhcu010b/zhcu010b.pdf
分享理由:仔细阅读手册,其实试验板上部的调试仿真器可对支持Spy-Bi-Wire的各型号MSP430单片机进行调试,故如果我们开发项目需要使用其它430单片机,只需将LanuchPad的调试器直接飞线连到其它单片机上,即可方便地实现程序的下载与调试。记得正确连接电源和地。
对我启发比较大的文档是MSP430_Family_Users_Guide(中文版)
下载地址是wenku.baidu.com/.../0e4ff244a8956bec0975e3b8.html
该文档详细的介绍了msp430系列的芯片的使用和各自的特点,非常适合初学者,我就是靠这个和430结缘的,希望它可以帮助更多的人!
从这个暑假开始接触430单片机,花了一个暑假的时间,和同学一起泡在实验室,一起学习430g2553和2452系列。
刚开始学的时候上网找了一些学习视频,但是发现看了之后还是对这款单片机没有一种直观的感受。
在同学的建议下,我开始仔细研究德仪官方提供的技术资料 “MSP430X2XXUser's Guide” 以及 “MSP430G2553Datasheet”
虽然是英文的,但是只要认真看还是很容易看懂的(网上也有中文版本),UserGuide 里将430的每个模块都分门别类,你可以就按照目录的顺序一个一个熟悉它的每个子模块,当你把它的每个模块都玩遍后,你会发现你对这款单片机有了一个非常直观的感受。
所以我强烈建议像我一样的初学者可以好好研究下这两个技术资料。
还有推荐一本书430的书 《MSP430系列16位超低功耗单片机原理与实践》地址:http://product.dangdang.com/product.aspx?product_id=20314558
这本书写的很全也很详细,其内容和User's Guide 内容差不多,但是更全,写的也非常详细,是很好用的一本书。
pdf下载链接:
http://download.csdn.net/detail/zoujaichi/4550626 MSP430X2XXUser's Guide
http://download.csdn.net/detail/zoujaichi/4550620 MSP430G2553Datasheet
希望对和我一样的初学者有用处
PS:不知道为什么无法添加附件
分享文章题目:MSP430混合电压和逻辑系统的设计
文档介绍了MSP430在一个板上多供电电源电压以及逻辑电平不匹配情况下各种解决方案。
这个对做电原理设计时很有帮助,是一份很有用的资料。
另外,先前从网络上下载保留的一份文档《MSP430学习心经》,对初学MSP430也是很有用的。
接触的第一款单片机就是MSP430F449,到现在已经有三年了,平时在网上也会搜一些讲解430的资料,感觉这个总结的很不错,特向大家推荐一下:www.ideyi.org/.../article_1077_374597.html。另外,MSP430终于集成了USB,www.ti.com.cn/.../msp430f5529。
引用文档名称:利用超低功耗单片机MSP430 作为系统伴随芯片
MSP430资料的链接:http://www.ti.com.cn/cn/lit/an/zhca117/zhca117.pdf
这个文档让我对低功耗设计技巧又多了一份认识,非常实用。利用GPIO给外设供电的方法让我在不使用的时候可以彻底的关断外部比较放大器的供电电源,进一步降低了待机电流。
我想说说MSP430的经验:
从大三开始接触单片机,从最基本51开始,后来TI赞助湖北省电子设计大赛。我有幸代表我们学校参加比赛。于是开始接触430。接触430接触的多了,虽然不是什么高手,但是我还是想跟大家分享使用430的经验。
个人认为430最大的优势在于其低功耗和其官网提供的完善的资料,但是如果不去使用低功耗模式,所以在程序设计中,一定要注意在空闲时进入低功耗模式。一直很感谢TI,不仅是因为其免费的样片,更是因为其提供的完赛的资料,从模拟电路设计,到编程手册,到应用笔记,更有elab实验室,提供一些小工具也是非常的实用。
说的有点乱。
贴出一些有意义的地址,相信有了这些,没有什么难题了。
关于CPU相关资料,在产品目录,比如5438
www.ti.com.cn/.../msp430f5438a
包含各种手册和应用笔记。
processors.wiki.ti.com/.../Grace_Quick_Start_Guide
图形化配置工具生成C代码
430外设库文件,之间用API调用。
ucos对430的支持,使430能够运行操作系统
FreeRTOS对操作系统的支持。
感谢TI全体成员的努力,成就强大的430.
这是我给实验室设计的MSP430F5438A的最小系统实验板,包含原理图、PCB源文件(已经布好线,可以直接拿去做板子),还有拍下来高清实物图,实验室的同学们现在都在用,反映很好。大家利用该最小系统已经研发出很多产品了,人体姿态测量系统、三维微动平台、GPS堆场监控系统、血糖血氧仪……。
虽然是最小系统,有了它创意就是你自己的事情了,MSP430F5438A却是是一款不错的微控制器,越用越喜欢,希望大家也喜欢。也希望能与大家一起交流技术。
在这里分享给大家,同时希望能获得奖品,更好的将430用到科研中去。
附件一、最小系统侧面实物图
附件二、连接到目标板的最小系统
MSP430 系列单片机C语言程序设计与开发
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MSP430系列是一个具有明显技术特色的单片机品种。关于它的硬件特性及汇编语言程序设计已在《MSP430系列超低功耗16位单片机的原理与应用》及《MSP430系列 FLASH型超低功耗16位单片机》等书中作了全面介绍。本书介绍IAR公司为MSP430系列单片机配备的C程序设计语言C430。书中叙述了C语言的基本概念、C430的扩展特性及C库函数;对C430的集成开发环境的使用及出错信息作了详尽的说明;并以MSP430F149为例,对各种应用问题及外围模块操作提供了典型的C程序例程,供读者在今后的C430程序设计中参考。
C语言是很多单片机开发工程师常用的工具软件之一,使用它可以大大地提高编程效率,所产生的文档容易理解和移植。
MSP430系列单片机是一种高性能、低功耗的绿色单片机,其代码存储空间从1K至60K不等。当程序量大于8K时,使用汇编语言会使软件设计工作的效率大大降低。对于MSP430系列单片机,给广大单片机工程师提供与标准C语言基本兼容的C编译软件是拓展大容量程序空间应用的最好方法。美国TI公司MSP430单片机总监Mark Witt先生非常重视这件事情,在去年他访问我们公司时曾同我谈到了此事,并且帮我们与IAR公司牵线搭桥,使IAR顺利地在中国开展业务。同时Mark Witt先生还非常赞同我们出版关于MSP430 C语言的书籍。在广大读者、单片机工程师和爱好者的要求下,经过半年多的努力和北京航空航天大学出版社的大力支持,终于使《MSP430系列单片机C语言程序设计与开发》一书与广大读者见面了。
如果说《MSP430系列超低功耗16位单片机原理与应用》和《MSP430系列Flash型超低功耗16位单片机》使广大读者认识并掌握了MSP430单片机的性能和用途,那么《MSP430系列单片机C语言程序设计与开发》将会使您对MSP430系列单片机的软件设计技术有一个非常大的提升。
这教程好在把大家都熟悉的C语言和MSP430结合,能更好的适合大家学习。。。
下载链接:http://dl.vmall.com/c0hn5sifsb
http://115.com/file/bei4frg0 ,115网盘的下载地址,MSP430的很多资料,我的网盘。
超低功耗 16 位 MSP430TM电源管理解决方案MCU.pdf
MSP430™超低功耗微控制器 2012上半年 芯片比较和价格手册.pdf
MSP430 硬件工具用户指南.pdf
TI超低功耗微控制器.pdf
真心希望能获得LaunchPad和那个神奇的电容触摸板子~~~
其实官方的这个资料很给力哦,我就是从这里面开始起步的,现在都已经学到了很多了
www.ti.com/.../msp430_protel.html
这个对于我们自己设计也很有帮助的,很多设计都很经典的
www.ti.com/.../selection_guide.pdf
这个官方有的,虽然个人觉得就是些基础的讲解,但是推荐给新手学习还是不错的
MSP430 单片机的开发及应用,很实用,我推荐给大家。希望能拿到 MSP430 LaunchPad + MSP430 电容触摸 BoosterPack 。
学习MSP430,TI官网上资料还是比较全的;
MSP430的参考资料可分为以下4类:
(1) Data Sheet : 某款单片机的手册,包括IO定义、电气参数、特殊说明等。
(2) User Guide :某系列单片机的全部内部设备使用说明,寄存器表,原理框图等
(3) Code Example: 全部内部设备的代码范例
(4) Application Note:实用、完整的设计范例
分享一份制作:
2007年全国大学生电子设计竞赛 用MSP430实现的《简易无线识别装置》
这个是我刚接触MSP430 Launchpad 时对IO端口进行操作时所发的一篇心得小帖,虽然描述的是很细微的问题,但是花费了很长时间进行了调试,最后通过查看datasheet,才将问题解决了。往往细节决定成败,一个大的项目背后是不能忽视的许多个这样的小细节,跟大家共享吧。
首先,分享一下我所拥有的文档资料吧,然后在仔细说说其中对我最有用的资料!
我试了一下,不知道怎样把所有的资料一个一个上传,打包之后 可能又是因为太大,一直上传不上去,所以我只有一个一个上传了,这是所有资料的图片,呵呵,希望楼主见谅,只能一个一个上传了,然后介绍一个我认为最重要的~!
首先,分享一下我所拥有的文档资料吧,然后在仔细说说其中对我最有用的资料!
我试了一下,不知道怎样把所有的资料一个一个上传,打包之后 可能又是因为太大,一直上传不上去,所以我只有一个一个上传了,这是所有资料的图片,呵呵,希望楼主见谅,只能一个一个上传了,然后介绍一个我认为最重要的~!
我分享的是《基于MSP430的手持式LCR数字电桥的设计与实现》,这是篇论文,08年的,有点古老。但是很有用。
其讲述了,LCR电桥的原理,构成和发展,很通俗易懂,LCR测量方面入门的好文章。
文中采用了MSP430F449,其有64K FLASH,2K SRAM,和丰富的外设,最重要的是其丰富的中断、休眠唤醒和低功耗,十分适合用在手持设备上。
也给出了关键函数,对MSP430的编程学习也有帮助。
一直想把文档传上来~可是传了好久都失败~
http://wenku.baidu.com/view/50b10784b9d528ea81c779fe.html
Proteus是一个很好的仿真平台,仿真51单片机非常实用,Proteus高一点的版本也可以仿真MSP430单片机,方便了MSP430单片机的学习。开始我用Proteus仿真MSP430时老是提示仿真错误,仔细检查过后还是没能发现出问题的原因。生成hex文件的方式是严格按照网上大神们所说的,IAR的设置也是一样,但还是仿真不出结果。我想很多人都遇到过这种类似情况。
有一次我从网上下载了别人上传的仿真的Proteus和IAR文件,发现竟然可以仿真出来了,我仔细对比了IAR的设置是一模一样的呀,但为什么我原来的仿真还是出错呢?我想应该是Proteus文件的某些设置的问题。但是绝大多数人可以熟练使用Proteus,但是怎样设置Proteus就不怎么会了,当然我也不会。所以我另辟蹊径,为何不用别人能成功仿真的IAR和Proteus文件作为模板,在此模板上进行修改,修改成自己仿真电路和程序呢,所以这里我就上传那个可以进行成功仿真的Proteus和IAR文件上来给大家,大家可以直接用这个模板进行编程仿真。
顺便附上MSP430单片机官方的例程 MSP430 16-bit Microcontroller Code Examples and Function Library,链接 http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/code.page 在MSP430编程时,可以拿这些例程作为模板或参考,可以做到快速上手,不必为一大堆的寄存器而浪费时间了。
我的心得:
slau144b_msp430x2xx family user's guide 是我们学习使用 430 必须的查询手册,还有DATASHEET,在这里我贴出来GUIDE部分,还有一些书籍,还有就是TI举办这种活动的方式很好,有利于大家相互交流学习。我们公司的产品很多使用了430的片子,现在我正在开发的一个项目正使用430和maxim的芯片架构,希望能有更多的合作机会。
TI能作为受国人尊重的公司与其对中国电子教育的推动是分不开的,接触msp430有一段时间了期间,在网上找了各种资料也在学校图书馆看了各种msp430的书,发现那些所谓的书只不过是TI官方数据手册的翻译而已,可以说TI的数据手册才是你解决问题的根源。另外还有官方例程,它是你入门的最好工具。如果其它资料不是教你方式方法个人觉得它用处不大,在此贴出个人认为有用的资料供参考。
刚参加工作的时候用过多款MSP430 MCU,MSP430F1232,MSP430F1121A,MSP430F149,不过都是做一些较简单的应用,记得刚开始用430的时候,不知道程序一开始要关闭看门狗,每次程序加载后都跑不起来,后来细读官方的历程后才恍然大悟,现在每次看到WDTCTL = WDTPW + WDTHOLD; 都能让我回想起玩430的那段时光。
实际应用中感觉MSP430在抗干扰能力上也有很突出表现,控制的LED灯伸到面板外面打静电从来都没死机或程序跑飞的情况。
使用MSP430过程中一个小经验分享给一下,一般我们用MSP430的系统耗电都很小,而我们使用的UIF仿真器内部的TPS76601可以提供最大250mA的输出电流到目标板,我们完全不用外接电源,直接从仿真器到目标板就能完成调试工作,调试过程变得更简洁一些。
在原理图设计中将2脚接入到系统电源中,当然也可以做成兼容模式,随需求切换。不过在应用前要保证我们的目标板工作电流要在仿真器提供的电流范围以内,检查是否有短路,我们也可以在电源输出部分接PTC保护过流,也可以在系统中接1个电源指示LED,发现灯亮不正常,及时退出操作,防止仿真器损坏。
www.ideyi.org/.../article_1077_378130.html 上次申请 没有得到 先学习一下MSP430G2211IN14 的特性及开发环境。
www.ideyi.org/.../article_1078_450106.html 对于初学者,可以很快上手进行简单的编程,了解熟悉MSP430的编译环境
www.ideyi.org/.../view_3119.html 对于初次接触430单片机,了解,学习ccsv4很有帮助的!视频讲得很不错,中文的!
http://www.deyisupport.com/question_answer/f/55/t/1849.aspx MSP430F5438中文用户指南 对于本次设计的公寓智能微控制电柜的采集控制系统起到了很大的帮助住,主要是它是中文的 该文档可以帮助了解MSP430F5438的电源管理模块,CRC冗余校验模块,SPI,I2C通信模块等,很详细。
http://www.ti.com.cn/sitesearch/cn/docs/universalsearch.tsp?searchTerm=MSP430F5438&linkId=1这是更多关于 MSP430F5438的资料。
希望这次能得到开发板学习一下,过把瘾。
电赛那会儿用了2年的MSP430F5438,现在基本上没怎么用了,不过把当时做的一些资料给大家共享一下吧。
不知道为什么附件传不上去,那就只能上传我字节写的一些发布在百度文库中的程序了,希望对大家有用。
PS:MSP430很多都带硬件SPI和IIC接口,为甚么大家怎么热衷于模拟时序呢?这不是浪费资源么。
下面给两个程序,一个是使用硬件IIC,一个是使用硬件SPI,希望对大家有帮助:
硬件SPI : nrf905驱动 http://wenku.baidu.com/view/e6b7ae234b35eefdc8d33369.html
硬件I2C: 这个是用硬件IIC读TMP101温度的函数。希望大家喜欢,俺自己写的,欢迎交流!
#include "msp430x54x.h"
#define uchar unsigned char
void I2C_INIT();
void WRITE_CMD(uchar config,uchar date);
void READ_RISTER(uchar rigister);
void READ_Tempriture();
uchar RXD[2];
uchar temp_flag;
float temperiture;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
I2C_INIT();
while (1)
{ __delay_cycles(50); // Delay required between transactio
WRITE_CMD(0x03,0x0a);
// WRITE_CMD(0x03,0x00);
READ_RISTER(0X01);
WRITE_CMD(0x00,0x60);
UCB0I2CSA = 0x19;
_NOP();
READ_Tempriture();
// __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, enable interrupts
__no_operation(); // Remain in LPM0 until all data
}
}
void I2C_INIT()
{
UCB0CTL1 |= UCSWRST; //复位
UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC; //主机I2C模式
UCB0CTL1 = UCSSEL_2 + UCSWRST; // SMCLK
UCB0BR0 = 12; // /12
UCB0BR1 = 0;
P3SEL |= 0x06;
UCB0I2CSA = 0x49; //从机地址
UCB0CTL1 &= ~UCSWRST;
}
//写数据到寄存器中
//config=寄存器地址, date=给寄存器的数值
void WRITE_CMD(uchar config,uchar date)
{ while(UCB0STAT&0x10) //检测总线是否忙碌
{I2C_INIT();
};
UCB0CTL1 |= UCTR + UCTXSTT; //开始发送地址
UCB0TXBUF =config ;
while((UCB0IFG & UCTXIFG)==0); //检测数据是否发送完毕
UCB0TXBUF =date;
while((UCB0IFG & UCTXIFG)==0); //检测数据是否发送完毕
UCB0CTL1 |= UCTXSTP; // 结束I2C
while((UCB0CTL1 & UCTXSTP)==1);// 清除中断标志位
UCB0IFG &= ~UCTXIFG;
}
//读寄存器的值
//参数rigister 要读的寄存器地址
//每次接收数据位2BYTE
void READ_RISTER(uchar rigister)
{ uchar c;
while (UCB0CTL1 & UCTXSTP); //检测总线是否忙碌
UCB0CTL1 |= UCTR + UCTXSTT; //开始发送地址
UCB0TXBUF =rigister ; //需要读的寄存器地址
while((UCB0IFG&UCTXIFG)==0); //检测地址是否发送完毕
UCB0IFG &= ~UCTXIFG;
UCB0CTL1 &= ~UCTR; //接收数据
c=UCB0RXBUF;
UCB0CTL1 |=UCTXSTT; //开始接收
while(!(UCB0IFG&UCRXIFG)); //等待数据接收完毕
RXD[0]= UCB0RXBUF;
while(!(UCB0IFG & UCRXIFG));
RXD[1]= UCB0RXBUF;
UCB0CTL1 |= UCTXSTP; // 结束I2C
while((UCB0CTL1&UCTXSTP)==1);// 清除中断标志位
UCB0IFG &= ~UCTXIFG;
UCB0IFG &= ~UCRXIFG; // 清除中断标志位
}
//读温度寄存器中的值
void READ_Tempriture()
{
READ_RISTER(0x00);
if( RXD[0]>128)
{ temp_flag=1;
RXD[0]=~RXD[0];
}
else temperiture=((int)RXD[0]+(RXD[1]>>4)*0.0625);
}
在一个自动控制项目中,我需要使用声音识别,但受到成本和功耗限制,不能使用DSP和CPU。最终选用了
MSP430的MCU来完成任务,但是使用430来做声音处理的资料不多,在搜索之后,我发现了这篇文档:
这个文档里比较详细的讲述了使用430MCU进行一般的声音处理的方法。
在这个文档的引导启发下,我顺利完成了任务。
其实在工程中碰到的很多问题都可以在TI的文档库里找到答案,只是需要时间去搜索而已。
前段时间准备TI举办的电子设计大赛,学习430单片机,了解到它相对其他单片机的强大之处,之前在TI官网上看430的教学视频也对我帮助很大,下面贴出一些我之前看过的帖子,希望对大家有所帮助。
1、www.deyisupport.com/.../55.aspx 430的帖子汇总,可以再上面看到很多知识,也可以提问,马上有人提供帮助。
2、www.ti.com/.../workshop_material.html 德州仪器高性能模拟器件在全国大学生电子设计竞赛中的应用系列培训
3、www.ti.com/.../ti_msp430.html TI MSP430 大学计划
4、www.ti.com/.../msp430_protel.html MSP430 最小系统板设计 - Protel 格式
5、www.ti.com/.../msp430_solutions.html 大学生电子设计竞赛 MSP430 解决方案案例
6、www.ti.com/.../msp430.html MSP430 教学光盘
控制器名称:升降机控制器(西门子351模块的替代品)
本控制器以MSP430F1122为主控芯片。其功能为:接收升降机的位置反馈信号,并将升降机位置反馈给主控端;接收主控端的控制信号;根据控制信号控制执行机构将升降机停在指定位置。
在此附上MSP430X1XX系列用户手册,以及自己根据该手册以及芯片PDF原创编写的DDS信号发生程序和信号相应参数的检测程序。程序运行稳定,非常实用,希望能帮到需要学习的朋友。
基于 MSP430Fxxx的三个实例,很有用的,一个是带UCOSII的,一个是摄像头的,还一个是关于GUI的,这个GUI是zlgGUI,网上少有的资料哦!! 这是之前做的一个mini数码相机时写的,也有一些是参考别人的,都是不错的资料!!
接触MSP430系列MCU已经一年多了,在学习的过程中也结识了不少朋友,从大学生电子设计竞赛,到各电子论坛,也算是总结了一些经验。与大家的交流后,普遍有个感觉就是学习要系统,资料和工具要选择要权威。
说到资料的寻找,TI的官网上最为经典。所遇到的所有问题在上面基本上都能找到解决方法。而且搜索方便、快捷,更新也是蛮快。所以如果是刚学的新手,还是上MSP430的主页吧,资料是英文的不要紧,慢慢看,慢慢调试,习惯就好了,比中文的讲的透彻,毕竟中文是别人翻译的。废话不多说,网站如下:www.ti.com.cn/.../mcuprodtechdoc.tsp
期待已久的板子,终于有机会亲手调试了。。。大家一起加油,玩好430!
德州仪器公司 MSP430 系列超低功率微控制器包含几个器件,这些器件特有针对多种应用的不同的外设集。 这种架构与 5 种低功耗模式相组合,专为在便携式测量应用中延长电池使用寿命而优化。 该器件具有一个强大的 16 位 RISC CPU、16 位寄存器和有助于获得最大编码效率的常数发生器。 数字控制振荡器 (DCO) 可在不到 1µs 的时间里完成从低功耗模式至运行模式的唤醒。
西安电子科技大学 《MSP430自学手册》 谢楷
谢老板的书老少咸宜很适合入门
TI提供给各位开发作者交流的网站
有很多成熟的解决方案,可以帮助快速上手并开发产品