欢迎光临散文网 会员登陆 & 注册

TMS320F28035使用学习系列分享(十四)SCI——基本收发配置

2023-03-11 16:16 作者:小靜靜紫陌璃  | 我要投稿

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]

    RXBUFTXBUF两组寄存器分别存放收发数据,皆存于低八位,其中RXBUF中还包括两个只读错误状态标志位

    因此SCI模块初始化关键步骤为:

    (1)打开对应外设时钟

    (2)IO功能配置

    (3)FIFO初始化

    (4)配置数据发送协议(奇偶校验、停止位、数据位数、波特率、对应功能复位、使能使能等等)

        波特率寄存器数据折算关系如下

SCIBAUDReg%3D15MHz%5Ctimes%20(8%5Ctimes%20baud)-1

        注意这里有高低两个寄存器,要将结果搬至对应高低位的寄存器中方可运行。

3.基本配置总结

        此处按照1位停止位、无奇偶校验、八位、异步模式、空闲线路协议设置,其他功能配置类似,最后实现基本收发功能。

(1)打开对应外设时钟

(2)IO功能配置

(3)FIFO初始化

4)配置数据发送协议

其中有关波特率设置

开启SCI

(5)发送字符

(6)发送字符串

(7)接收字符

(8)数据传输

        在主函数SCI初始化后发编写发送代码

        发送字符后接收相应字符,验证代码正确性


4.实验结果验证

图14-1 发送测试
14-2 接收测试

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

TMS320F28035使用学习系列分享(十四)SCI——基本收发配置的评论 (共 条)

分享到微博请遵守国家法律