MSP430F6638单片机uart寄存器小结

姓名:杨汉雄

学号:19011210569

【嵌牛导读】MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。MSP430含有两个USCI外设支持复数的串行通信协议,不同的USCI模块支持不同的协议。其中USCI_Ax支持UART,IrDA,LIN,SPI协议;USCI_Bx支持IIC,SPI协议。

【嵌牛正文】

        UART是通用异步串行接口的简称。串行通信接口是用来与单片机外界系统进行通信桥梁,比如可以吧单片机ADC转换的数据通过串口发送给PC机(上位机),经上位机处理之后在发回给单片,达到通信的目的。TI公司的MSP430系列单片机均具有UART功能,其中大部分还和SPI,I2C功能复用,通过相关寄存器的配置,可以很轻松地就实现了UART,SPI,I2C的通信功能。本文对MSP430串口的寄存器进行了小结。

MSP430F6638 USCI寄存器表

UCAxCTL0寄存器

7-UCPEN 校验位使能 0=关闭 1=开启

6-UCPAR 校验方式选择 0=奇校验 1=偶校验

5-UCMSB 数据方向 0=低位先 1=高位先

4-UC7BIT 单次数据最大长度  0=八位数据 1=七位数据

3-UCSPB 停止位选择  0=1位停止位 1=2位停止位

2-1-UCMODEx 串口模式选择位 

00=uart模式

 01= Idle-line multiprocessor mode 

10= Address-bit multiprocessor mode

11=UART mode with automatic baud-rate detection

0-UCSYNC 同步模式使能位 0=异步模式 1=同步模式


UCAxCTL1寄存器

7-6 UCSSELx 串口时钟选择位 00=外部时钟 01=ACLK 10=SMCLK 11=SMCLK

5 UCRXEIE 接收错误中断使能位 0=关闭中断 1=开启中断

4 UCBRKIE 接收完成中断使能位 0=关闭中断 1=开启中断

3 UCDORM 睡眠模式使能 0=关闭 1=开启

2 UCTXADDR帧数据选择 0=下一帧送数据 1=下一帧送地址

1 UCTXBRK数据停止帧选择 0=下一帧非停止 1=下一帧停止

0 UCSWRST软件复位使能 拉高时开启复位将发送缓存接收缓存中断标志等清零


串口波特率设置

        MSP430串口可以使用选择低频晶振或高频晶振来产生串口通信的波特率,以此节省功耗,通过配置UCAxMCTL 调制控制寄存器的第0位:UCOS16=0进入低频模式 UCOS16=1进入高频模式(ACLK = REFO = 32768Hz, MCLK = SMCLK = default DCO/2 = 1048576Hz)。

UCAxBR0 设置波特率的低八位

UCAxBR1 设置波特率的高八位

一般来说波特率可由时钟分频得到,分频数N=晶振频率/想得到的波特率

但N往往不是整数,所以需要用到调制功能。 通过UCAxMCTL调制控制寄存器可以配置出相应的小数部分。

7-4位UCBRFx 高时钟模式下的调制值;

3-1位UCBRSx 低时钟模式下的调制值

0位UCOS16 高低频模式的选择

调制功能有两种:

1.通过低频时钟调制低波特率(32.768K)

整数部分UCBRx=N;

小数部分UCBRSx=round[(N-INT(N)*8]  //ROUND为四舍五入

2.通过高频时钟调制低波特率(1048576时钟预分频后)

整数部分UCBRx=INT(N/16)

小数部分UCBRFx=round([(N/16)-INT(N/16)]*16)

比如要在低频模式下得到9600波特率,先计算分频数N=32768/9600=3.41,取整得N=3,则应向UCAxBR0 填入0x0000 0011

取小数位0.41*8=3.28 则应向UCBRSx 寄存器中填入0x0000 0011

你可能感兴趣的:(MSP430F6638单片机uart寄存器小结)