1. 目标:
通过SCI串行通信总线实现PC和DSP之间的数据交互
重点:可以实现PC端向DSP批量写入数据
调试环境概述:
开发板:F28388D controlCARD 评估模块
CCS版本:Code Composer Studio 9.1.0
SDK: C2000Ware_MotorControl_SDK_2_01_00_00
使用例程:sci/sci_ex1_echoback(可以通过SCI收发数据)
调试流程:
- 下载程序到开发板
- 在电脑端通过串口助手查看收到的数据
- 通过串口助手向DSP发送数据
重点:
- 需要一个可以发送单个数据和数据文件的串口助手
网上并没有找到,所以我自己写一个
调试效果:
1 打开文件
2 写入数据:
数据文件如下:
注:必须是 .dlx结尾的文件,数据格式逗号分开
2. SCI时钟
硬件环境
主控芯片: TMS320F280049C
板卡: LAUNCHXL-F280049C
C2000 Piccolo MCU F280049C LaunchPad™ 开发套件
先来看时钟树
这里的SYSCLK为100MHZ(请参考 28388Clock)
那么要去到SCI,还要经过1个分频寄存器(LOSPCP)和1个使能寄存器PCLKCRx
1. LOSPCP
在线仿真的时候就可以查看该寄存器的值,该值的设置位于:
Device_init() == >
SysCtl_setLowSpeedClock(SYSCTL_LSPCLK_PRESCALE_4);
根据文档描述我们这里进行4分频操作,那么100MHZ的SYSCLK就变成了 100MHZ/4 = 25MHZ
2. PCLKCRx
这个寄存器去看了发现就是个使能寄存器,这个x到底是多少具体看外设是什么,比如SCI就是PCLKCR7
3. SCI Auto-Baud
开启 Auto-Band 功能,如何开启?
上述方法缺陷
在第(2)步SCI模块会等待上位机发送字符 ‘A’ 或者 ‘a’ 来完成SCI自动波特率检验,并且在这里死循环等待。
补充:
如果检验完成之后,又需要重新调整波特率,那么需要重新调用 SCI_lockAutobaud(SCIA_BASE); 函数
4. SCI数据位宽
one to eight bits.
这里作死想发一个2字节,事实证明确实只能发一个字节。