TMS320F28035使用学习系列分享(十四)SCI——基本收发配置
1 简述
串行通信接口(SCI)是C2000系列芯片常用到的一种通信模块,其使用与其他MCU中UART模块类似,为双线异步串行端口。本篇是对TMS320F28035 SCI初始化配置及基本数据收发使用的总结,针对相关文件函数进行调用与配置。
2 相关设置
相关引脚:
F28035仅有一组SCIA,对应引脚如下
SCIA-RXD-->GPIO7 GPIO28
SCIA-TXD-->GPIO12 GPIO29
相关寄存器:
GPIO对应寄存器
工作方式控制寄存器:
CCR:通信控制寄存器
CTL1:控制寄存器1
CTL2:控制寄存器2
HBAUD:波特率高位寄存器
LBAUD:波特率低位寄存器
数据收发相关寄存器
RXST:接收状态寄存器
RXEMU:接收仿真缓冲寄存器
RXBUF:接收数据缓冲区
TXBUF:发送数据缓冲区
FIFO设置:
FFTX:FIFO 发送寄存器
FFRX:FIFO 接收寄存器
FFCT:FIFO 控制寄存器
PRI:FIFO 优先级控制寄存器
其中红色标记寄存器主要涉及初始化配置,蓝色标记寄存器主要涉及收发操作
一些主要寄存器中功能如下
FFTX寄存器
15:SCIRST SCI复位
14:SCIFFENA SCI使能
13:TXFIFORESET FIFO发送复位
12-8:TXFFST FIFO数据状态(发送)
7:TXFFINT FIFO发送中断标志位
6:TXFFINTCLR 清除FIFO发送中断标志位
5:TXFFIENA FIFO发送中断使能
4-0:TXFFIL FIFO发送中断等级设置
FFRX寄存器
15:RXFFOVF FIFO接收溢出标志位
14:RXFFOVRCLR 清除FIFO接收溢出标志位
13:RXFIFORESET FIFO接收复位
12-8:RXFFST FIFO数据状态(接收)
7:RXFFINT FIFO接收中断标志位
6:RXFFINTCLR 清除FIFO接收中断标志位
5:RXFFIENA FIFO接收中断使能
4-0:RXFFIL FIFO接收中断等级设置
FFCT寄存器
15:ABD 自动波特率检测位
14:ABDCLR 自动波特率检测清除位
13:CDC CDC校准A检测位
7-0:FFTXDLY FIFO传输延迟设置
CCR寄存器-数据长度-奇偶校验位-奇/偶校验-停止位长度
7:STOPBITS 设置停止位
6:PARITY 奇偶校验方式
5:PARITYENA 奇偶校验使能
4:LOOPBKENA 启动回环测试
3:ADDRIDLE_MODE 空闲位/地址位模式选择
2-0:SCICHAR 字符长度控制位
CTL1寄存器
6:RXERRINTENA SCI接收错误中断使能
5:SWRESET SCI软件复位
3:TXWAKE 唤醒模式
2:SLEEP 睡眠模式
1:TXENA SCI发送使能
0:RXENA SCI接收使能
CTL2寄存器
7:TXRDY 发送缓冲寄存器就绪标志位
6:TXEMPTY 发送空标志位
1:RXBKINTENA 接收缓冲区/中断使能
0:TXINTENA SCITXBUF寄存器中断使能
SCI波特率寄存器
SCIHBAUD[7-0] SCILBAUD[7-0]
RXBUF与TXBUF两组寄存器分别存放收发数据,皆存于低八位,其中RXBUF中还包括两个只读错误状态标志位
因此SCI模块初始化关键步骤为:
(1)打开对应外设时钟
(2)IO功能配置
(3)FIFO初始化
(4)配置数据发送协议(奇偶校验、停止位、数据位数、波特率、对应功能复位、使能使能等等)
波特率寄存器数据折算关系如下
注意这里有高低两个寄存器,要将结果搬至对应高低位的寄存器中方可运行。
3.基本配置总结
此处按照1位停止位、无奇偶校验、八位、异步模式、空闲线路协议设置,其他功能配置类似,最后实现基本收发功能。
(1)打开对应外设时钟
(2)IO功能配置
(3)FIFO初始化
(4)配置数据发送协议
其中有关波特率设置
开启SCI
(5)发送字符
(6)发送字符串
(7)接收字符
(8)数据传输
在主函数SCI初始化后发编写发送代码
发送字符后接收相应字符,验证代码正确性
4.实验结果验证


通过该方式,我们可以使用选择语句进行设计,将不同发送字符对应不同所期望实现功能(如控制PWM开启/停止、返回ADC采样值等等),这样便可通过上位机进行程序调试,也便于结果的实时储存。