首页 理论教育 MSP430单片机入门与提高技巧

MSP430单片机入门与提高技巧

时间:2023-12-05 理论教育 版权反馈
【摘要】:8MSP430F249单片机最小系统8.1MSP430单片机下载方式当单片机程序利用IAR开发环境编译和Proteus仿真通过以后,还需要把程序生成的二进制代码烧录进单片机内部闪存中运行,这个过程称为下载或者编程。MSP430单片机支持多种Flash编程方法,如BSL和JTAG等。图8.2MSP430单片机进入BSL时序信号使用TEST和RST/NMI脚调用启动程序载入器后,通信可以用一个标准的异步串口协议确定。

MSP430单片机入门与提高技巧

8 MSP430F249单片机最小系统

8.1 MSP430单片机下载方式

当单片机程序利用IAR开发环境编译和Proteus仿真通过以后,还需要把程序生成的二进制代码烧录进单片机内部闪存中运行,这个过程称为下载或者编程。MSP430单片机支持多种Flash编程方法,如BSL和JTAG等。

BSL是启动加载程序(Boot Strap Loader)的简称,该方法允许用户通过标准的RS-232串口访问MSP430单片机的Flash和RAM。在单片机的地址为(0C00H-1000H)的ROM区内存放了一段引导程序,给单片机的特定引脚加上一段特定的时序脉冲,就可以进入这段程序,让用户读写、擦除Flash程序。可通过BSL无条件擦除单片机闪存,重新下载程序,还可以通过密码读出程序。

JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。目前JTAG接口的连接有两种标准,即14针接口和20针接口,MSP430单片机使用的是14针的接口,其定义分别如表8-1所示。

表8-1 JTAG 14针接口定义引脚功能

下面分别介绍BSL和JTAG方式下的编程器设计,可以用在实际系统编程中。

8.2 BSL编程器原理

启动程序载入器(Boot Strap)是一种编程方法,允许通过串行连接和MSP430通信,在Flash Memory被完全擦除时也能正常工作。MSP430的启动程序载入器(Boot Strap)在单片机正常复位时不会自动启动,当需要对单片机下载程序代码时,对RST/NMI和TEST引脚设置特殊的顺序。当MSP430单片机的TEST引脚为低电平而RST/NMI引脚有上升沿时,用户程序从位于内存地址0FFFEh复位向量开始执行,用户程序正常启动,如图8.1所示。

图8.1 MSP430单片机正常启动复位时序信号

如图8.2所示,当TEST引脚出现至少两个跳变沿,TEST引脚为高电平且RST引脚出现高电平,启动程序载入器(Boot Strap)所需的时序时,单片机进入启动程序载入器工作方式

图8.2 MSP430单片机进入BSL时序信号

使用TEST和RST/NMI脚调用启动程序载入器(Boot Strap)后,通信可以用一个标准的异步串口协议确定。用MSP430的P1.1端口BSLTX传输数据,P2.2端口BSLRX接收数据。UART设置为波特率9600,8位数据位,偶校验,1位停止位。详细的通信协议细节请参考TI的数据手册。考虑到大部分计算机已经没有独立的串行口,必须利用USB接口实现BSL功能。下面介绍一种USB接口的BSL下载器的硬件设计,如图8.3所示。

图8.3中,USB插座的1、2、3、4脚分别为5 V电源,D-信号线、D+信号线和地线。5、6脚为插座外壳接地引脚。电脑可通过1脚提供5 V电源,由于PL2303为3.3 V供电,这里使用一个AMS1117-3.3作为5 V转3.3 V稳压芯片,用于将USB接口提供的5 V转换成PL2303芯片所需的电压,如图8.4所示,PL2303是一种高度集成的RS232-USB接口转换器,可提供一个RS-232全双工异步串行通信装置与USB功能接口转换。该器件内置USB功能控制器、USB收发器振荡器和带有全部调制解调器控制信号的UART,只需外接几只电容就可实现USB信号与RS-232信号的转换,所有工作全部由芯片自动完成,使用者无需考虑固件设计。在通过BSL下载时,DTR连接MSP430的RESET,RTS连接MSP430的TCK,TXD连接单片机的P2.2,RXD连接单片机的P1.1。通过下载软件如Mspfet,可以实现Boot Strap规定的时序要求,具体使用方式如下。

图8.3 USB接口BSL下载器原理图

图8.4 3.3V电源电路图

(1)利用IAR开发软件生成TI公司规定的txt格式下载文件,右键单击Project中的工程名,选择Options,在Output中选择MSP430-txt,如图8.5所示。保存配置并重新编译,在工程名debug\exe目录下可以找到下载文件。

图8.5 IAR生成MSP430-txt编程文件配置

(2)打开Mspfet软件,进行如下设置,如图8.6所示,并选择芯片型号为MSP430F149。打开编程txt文件,先点击ERASE擦除芯片上原有的程序,再点击PROGRAM即可下载,如图8.7所示。

图8.6 MSPFET配置

图8.7 MSPFET下载示意图

8.3 JTAG下载器电路

通过电脑的并行端口实现MSP430单片机的JTAG端口编程和调试,对于初学者是一种成本较低的方案,下面介绍用电脑的并行口实现JTAG编程,但是在用JTAG烧断保密熔丝后,要再想修改闪存程序,就只能用BSL方法了。

图8.8中,74HC244为一个8通道缓冲芯片,将A1~A8缓冲输出到Y1~Y8,JP4为标准的14芯MSP430单片机的JTAG接口。通过该接口通过14芯排线连接到单片机开发板的JTAG插座上,即可实现单片机程序的下载和实时仿真调试功能。具体设置如下。在IAR软件中右键单击Project中的工程名,选择Options→Debugger,在Driver选项中选择FET Debugger,如图8.9所示。

图8.8 并口JTAG下载器电路原理图

图8.9 IAR的调试器配置

然后在图8.10中选择FET Debugger,再选择Connection中的Texas Instrument LPT-I,即选择电脑的并口作为下载口,确定后即可开始程序的下载和调试。

图8.10 IAR的FET调试器并口配置

8.4 MSP430F149单片机最小系统设计

前面的章节中,我们主要采用MSP430F249作为仿真器件,详述了单片机内部功能和外部扩展电路的设计和应用。本节主要介绍实用的单片机小系统开发板的硬件设计,作为单片机实验学习使用。在选择单片机型号时,由于市面上MSP430F149较为常用也易于购买,且与MSP430F249功能基本相同,管脚也兼容,因此,选择MSP430F149作为单片机最小系统的主芯片。

MSP430F149单片机的特点如下:

●1.8V~3.6V超宽供电电压;

●五种低功耗模式,从Standby模式唤醒时间小于6μs;

●0.1μA RAM,保持;

●0.8μA实时时钟模式;

●2KB RAM,60KB+256B Flash Memory(支持IAP);

●片内硬件乘法器支持四种乘法运算;

●两个具有PWM输出单元的16位定时器(Timer A3,Timer B7);

●两个UART接口,两个SPI接口(与UART复用);

●一个8通道12位模数转换器(ADC),具有片内参考电压源;

●一个模拟比较器,看门狗电路等。

开发板可使用的资源如下:

●两种可选供电方式(标准稳压器接口、USB接口);

●符合TI标准的14芯JTAG仿真调试端口;

蜂鸣器

●18B20单芯片12位高精度温度传感器

●12位模数转换器(ADC)接口和单路输出10位数模转换器(DAC);

●标准的1602液晶接口和标准的12864液晶接口;

●6位共阴极动态扫描数码管电路;

●RTC实时时钟和纽扣电池

●IIC接口的EEPROM;

●4×4的矩阵式键盘;

●标准的RS-232接口和RS-485接口;

●含8个LED的流水灯电路(红、黄、绿)。

1)单片机电路

图8.11中MSP430F149单片机外接Y1和Y2晶振,分别为32.768 k Hz和8 MHz,给单片机提供低速晶体振荡器高速晶体振荡器,以满足不同的应用对速度和功耗的要求。P3是标准的14芯JTAG接口,用于单片机的程序下载和实时仿真调试。R1、R2、C1组成RC复位电路,当给开发板供电时,提供一个延迟的低电平给单片机的RST端口,S1为按键复位。C9~C13为0.1μF瓷片电容,这些电容分别为单片机电源VCC、模拟电源AVCC和ADC的参考电源VREF提供退耦,提高单片机系统工作的稳定性。值得注意的是,这些退耦电容的放置必须靠近单片机对应的电源引脚,和这些引脚的连线尽可能短。R5为一个0Ω电阻,用于数字电源的地和模拟电源的地之间的隔离,用这种设计方法将数字电路部分和模拟电路部分的地线分开,减少数字部分对模拟部分的干扰。P1为双排插座,将单片机的部分端口引出,可用于外部器件的扩展。图8.12为单片机电源部分,外接电源通过AMS1117-3.3提供单片机及其他部分所需的3.3V电源。

2)RS-232串行口电路

这里选用MAX3232作为单片机串行口转换芯片,MAX3232是一款3.0 V~5.5 V供电、低功耗的RS-232收发器,支持高达1Mbps的通信速率,仅需要4个0.1μF的电容作为外部元件即能工作。单片机与MAX3232连接电路图如图8.13所示。

MSP430F149片内集成了两个UART端口,这里使用了它的UART0端口,单片机通过UTXD0(P3.4)向PC机发送数据,通过URXD0(P3.5)接收来自PC机的数据。在TX线上有一个红色LED,RX线上有一个绿色LED,当单片机通过MAX3232与PC机通信时,两个LED会根据通信线上电平的变化而闪烁发光,指示通信的进行。如果不用作UART通信,则当P3.4和P3.5用于通用输入输出端口时,P3.4和P3.5分别与标号为D10和D11的两个LED连接,可以作为通用LED使用。

3)RS-485接口电路

RS-232串行口通信距离和速度都比较低,当要求通信距离为几十米到上千米时,广泛采用RS-485串行总线标准。RS-485采用平衡发送和差分接收,具有抑制共模干扰的能力。总线收发器具有高灵敏度,能检测低至200 m V的电压,传输的差分信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互联时非常方便,可以省掉许多信号线。应用RS-485可以联网构成分布式系统。这里单片机开发板选择MAXIM公司的MAX485。MAX485是用于RS-485与RS-422通信的低功耗收发器,通信距离最远可达1 km,器件中具有一个驱动器和一个接收器,可以实现最高2.5 Mbps的传输速率。MAX485采用单一电源+5V工作,额定电流为300μA,采用半双工通信方式。它完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出端和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连和DE端分别为接收和发送的使能端。当为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态。因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A端的电平高于B端时,代表发送的数据为1;当A端的电平低于B端时,代表发送的数据为0。同时将A端和B端之间加匹配电阻,用来抑制信号反射,一般可选120Ω的电阻。(www.xing528.com)

图8.11 MSP430F149单片机电路图

图8.12 MSP430F149电源电路图

图8.13 MSP430F149与MAX3232的连接电路图

在图8.14中,将MAX485的RE引脚与DE引脚连接在一起,通过单片机的P3.3端口可以直接控制收发模式。当P3.3输出高电平时,MAX485处于发送数据模式;当P3.3输出低电平时,MAX485处于接收数据模式。

图8.14 MSP430F149与MAX485的连接电路图

4)EEPROM电路

在实际的单片机应用系统中,为了保护现场,经常需要将系统断电之前的工作状态与重要运行数据保存在非易失存储器中,以便在下次开机时,能恢复到原来的工作状态。针对这种保存数据量不大和存储速度要求不高的特点,可采用Atmel公司出品的一款高性能接口的AT24C02的EEPROM芯片,它采用两线串行接口(I2C),是通过两根线(SDL与SCL)与外部I2C控制器交换数据。这种连接方式简化了与单片机的连接,工作电压2.7V~5.5V,存储容量256×8 bit即2K字节,支持100万次的擦写,数据能有效保持100年。单片机与AT24C02的连接电路如图8.15所示。

单片机的通用输入输出端口P6.6、P6.7与AT24C02的SCL、SDA端口连接构成I2C总线,因为MSP430F149内部没有专用的I2C接口电路,所以只能用I/O端口来模拟I2C时序,从而实现对EEPROM的读写操作,用于用户的数据掉电保存。

5)实时时钟电路

实时时钟(RTC)是一个由外部晶体振荡器获取时钟信号,向单片机等系统提供时间和日期数据的器件。单片机和RTC间的通信可通过并行口也可通过串行口。这里选择Dallas公司的DS1302实时时钟芯片。DS1302是一个单芯片的实时时钟,能够计算秒、分、时、日、周、月、年,自动补偿2100年之前的闰年日期;2.0V~5.5V的供电电压,3线制的串行通信接口,且内置31字节的可由电池维持数据的静态RAM,用户可自由使用。DS1302支持双电源供电,VCC2连接主电源,VCC1连接备用电池。当VCC2的电压高于VCC1时,芯片从VCC2处获得能量并且可以通过涓流充电的方式对VCC1连接的电池进行充电;当VCC2的电源断开连接时,芯片内部自动切换到从VCC1处取电,从而保证即使在系统板掉电的情况下,DS1302仍能进行正确计时,且保存在RAM中的数据不会丢失。单片机与DS1302的连接电路如图8.16所示。

图8.15 单片机与AT24C02的连接电路

图8.16 单片机与DS1302的连接电路

单片机通过其通用I/O端口的P2.5、P2.6、P2.7端口与DS1302的SCLK、I/O、三个引脚连接,通过这三个I/O可以执行对DS1302的读写操作。DS1302的第1管脚接到了系统板的3.3 V电源上,作为芯片的主电源;第8管脚连接了一个CR1220型纽扣电池的正极,为芯片提供系统板掉电后的电源。

6)DAC电路

由于MSP430F149内部没有DAC功能模块,开发板选择外部扩展串行接口的D/A转换器TLC5615。TLC5615是TI公司生产的10位串行D/A转换器。芯片的主要特点是:输出为电压型,输出电压与基准电压同极性,最高输出电压为基准输入电压的2倍;单5V电源供电,低功耗;具有上电复位功能,以确保芯片可以重复启动;逻辑控制通过3线串行总线与微处理器接口;数字输入端带有施密特触发器,可有效地抑制噪声的干扰。该芯片广泛应用于用电池供电的测试仪表、工业控制等场合。TLC5615的主要技术参数是:电源电压4.5V~5.5V,典型值为5V;输入基准电压的下限值为2 V~VDD-0.2 V,典型值为2.048 V。单片机与TLC5615的连接电路如图8.17所示。

单片机的P6.2、P6.3端口与TLC5615的SCLK、DIN端口连接,通过在两通用I/O端口上模拟TLC5615时序从而实现对DAC的操作。从图8.17可以看到,TLC5615的输出端OUT连接到了跳线座J2的第2脚。如果用短路帽将跳线座J2 的2脚和3脚连接,则DAC的输出直接驱动LED,可以通过LED亮度的变化直观地看到DAC输出电压值的变化;如果用短路帽将跳线座J2的2脚和1脚连接,则可以用MSP430内置的ADC对DAC输出的电压进行采样转换,对ADC和DAC电路同时进行应用。如果不使用短路帽,则可以直接用电压表测量跳线座J2的2脚对地之间的电压数值,从而得知DAC输出的准确数值。

7)温度传感器电路

开发板选择常用的数字温度传感器DS18B20,DS18B20是一款小巧的温度传感器,通过单总线协议与单片机进行通信,硬件连接十分简洁。它具有如下特性:测温范围-55℃~+125℃,并且在-10℃~+85℃范围内具有±0.5℃的精度,9位到12位的可编程分辨率,用户自定义、非易失性温度阈值。单片机与DS18B20的连接电路如图8.18所示。通过图8.18可知单片机的P5.6端口与DS18B20的DQ端连接,通过在单片机的I/O端口模拟1-Wire协议的时序,能实现对DS18B20的读写。

图8.17 单片机与TLC5615连接电路图

图8.18 单片机与DS18B20的连接电路图

8)12864液晶接口电路

液晶显示模块作为一种显示器件在单片机系统中得到广泛的应用,具有体积小、重量轻、功耗低、显示内容丰富等特点,如各种仪器、仪表、电子显示装置、计算机显示终端、电子打印机等诸多方面。液晶显示可以实现固定显示,如显示的内容为数字或者字符,且显示的内容不能随意的变化。另外一种液晶显示为点阵液晶,点阵液晶模块的液晶像点做成点阵形式,显示内容由这些点阵组成,可以随心所欲地改变,数字、英文字符、中文字符或图像都可以在一个模块上显示,这些显示内容还可以动态变化。本开发板采用的12864液晶接口是一个引脚间距为2.54 mm的20脚单排扁平电缆连接器插座,可以连接任何以ST7920为驱动器的12864液晶模块,可以显示横向128点,纵向64点的图像,如果按照汉字为16×16点、英文字符为8×8点,该液晶模块可以同时显示32个汉字或者128个英文字符。其管脚功能如表8-2所示。

表8-2 12864液晶模块管脚功能

12864液晶模块与单片机的连接电路如图8.19所示。

图8.19 单片机与12864液晶模块的连接电路

在图8.19中,第3位V0为调整液晶偏压输入端,将V0连接到一个3296标准封装的电位器(R10)的中间抽头处,通过电位器进行调整可以改变液晶的对比度,得到好的显示效果。第15位是液晶数据传输模式的选择位,如果PSB接高电平则液晶工作在并行数据传输模式;如果PSB接低电平,则液晶工作在串行数据传输模式。此位连接到了跳线座J1的第2脚,J1的第3脚与VCC连接,第1脚与GND连接,可以使用短路帽来决定PSB连接到哪一种电平。第17位是液晶的复位端,此端口直接与VCC相连,上电后液晶模块自动完成复位功能。

9)1602液晶接口电路

1602液晶也称为1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由几个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起字符间距和行间距的作用,能够同时显示16×2即32个字符,也就是6列2行。其管脚功能如表8-3所示。

表8-3 1602液晶管脚功能

1602液晶接口与单片机的连接关系如图8.20所示。其中VEE是调整液晶偏压输入端,已连接到一个3296型电位器(R11)的中间抽头处,可以手动调整液晶偏压改变对比度。

图8.20 单片机与1602液晶的连接图

10)数码管电路

本开发板数码管电路由6个共阴极的数码管构成,通过动态扫描的方式保证6个数码管可以稳定显示。因为MSP430F149是一款低功耗的单片机、其I/O端口的驱动能力十分有限,所以在数码管的段选信号、位选信号与单片机之间增加了两片74HC573,用作缓冲驱动,这样既可以正常驱动数码管又可以保护单片机的I/O端口不会因为电流过大而损坏。单片机与数码管的连接关系如图8.21所示。

图8.21 单片机与数码管的连接电路

74HC573是8位锁存器,它有一个输出使能端E,一个锁存使能端L;在硬件电路设计中,将LE与GND连接,保证输出跟随输入保持同步变化。OE连接到电平的通用I/O端口P6.4和P6.5,通过单片机的这两个端口的输出电平可以决定OE连接低电平还是高电平,从而可以控制74HC573是否输出信号,这样再不需要显示数码管电路的关闭状态,可以降低整个系统的功耗。

单片机的I/O引脚与6位数码管的位选信号的对应关系如表8-4所示。

表8-4 6位数码管的位选信号定义

位选信号为低电平有效,即相应的I/O输出低电平时对应的数码管被点亮。单片机的I/O引脚与6位数码管的段选信号对应关系如表8-5所示。

表8-5 6位数码管的段选信号定义

段码是高电平有效,即相应的I/O输出高电平时对应的段码被点亮。

11)流水灯电路

开发板使用了8个多色的LED构成流水灯电路,同样使用了一片74HC573作隔离缓冲。经过74HC573隔离以后,单片机的P2端口的每一位都对应一个LED,当相应I/O输出低电平时LED点亮,当相应I/O输出高电平时LED熄灭。流水灯电路原理如图8.22所示。

这里也使用了P6.1控制74HC573的输出使能,在不需要流水灯功能时,将P6.1置高,可降低系统的功耗。RP1为330Ω的排阻,可以减少焊接的工作量和电路板的面积。

图8.22 流水灯电路原理图

12)键盘电路

图8.23 单片机4×4键盘接口电路

开发板配备了一个4×4的键盘,这个键盘是4×4的矩阵式键盘与4个独立式按键复用的键盘,其电路原理如图8.23所示。如果P1.7输出低电平,则K1~K4这4个按键就构成了4个连接到P1.0~P1.3端口的独立式按键;如果P1.6输出低电平,则K5~K8这4个按键就构成了4个连接到P1.0~P1.3端口的独立式按键;如果P1.5输出低电平,则K9~K12这4个按键就构成了4个连接到P1.0~P1.3端口的独立式按键;如果P1.4输出低电平,则K13~K16这4个按键就构成了4个连接到P1.0~P1.3端口的独立式按键。如果用户不需要独立式按键,那么直接用程序控制P1端口的扫描信号,这时的键盘电路就是一个工作在扫描方式的4×4的矩阵式键盘电路。

13)ADC接口电路

MSP430F149内部有一个12位的模数转换器,它对外提供8路转换通道,对应通用I/O的P6.0~P6.7引脚。在开发板使用了P6.0对应的通道,它被连接到标号为R4的4.7 kΩ电位器的第2个引脚,通过转动电位器调节旋钮可以改变加载在P6.0端口上模拟电压的大小。P6.1端口可以通过设置跳线座J2的1脚和2脚的连接关系决定是否连接到TLC5615的输出端。此外,单片机内置的ADC还支持外部参考电压输入,通过单排插针P2可以连接外部参考电压。

14)蜂鸣器电路

因为单片机的I/O电流驱动能力十分有限,所以开发板使用了一个PNP型三极管来驱动蜂鸣器。具体连接电路如图8.24所示。如果P5.7端口输出低电平,PNP三极管将导通,蜂鸣器发声;如果P5.7端口输出高电平,PNP三极管截止,则蜂鸣器被关闭。当端口输出一定频率的信号时,可以得到如报警等所需的声音。

图8.24 蜂鸣器电路原理图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈