本推文主要介绍CCS的Graph模块的基础使用方法,CCS数据导出设置和MATLAB使用CCS导出的数据进行绘图处理的一般方法。
本推文使用软硬件资源为:研旭28335B PLUS开发板、研旭小功率带载控制试验箱、100W永磁同步电机、研旭XDS100V3仿真器、信号发生器、CCS9.2、MATLAB2017b。
本推文主要实验过程如下所示:

图1.1 MATLAB采集100Hz正弦波信号

图1.2 MATLAB采集IA相电流信号
因为我们的小功率带载控制试验箱常用PWM控制频率为10KHz,100W永磁同步电机为5对极,根据f=n*p/60(f:三相电流的电频率Hz; n:电机的实际机械转速rpm; p:电机极对数)可知,当转速为500转/分时,三相电流的电频率约为42Hz(500*5/60);当转速为3000转/分时,三相电流的电频率约为250Hz(3000*5/60)。综上所述,我们实验信号发生器产生一个40-300Hz的正弦波信号是较为合理的。
信号发生器具体设置如下:
波形:正弦波;
频率10KHz;
幅度:3V;
偏置:1.5V;
占空比:50%;
注:28335B PLUS开发板ADC输入范围为0-3V,请勿将超量程的信号接入ADC采样通道,以免造成芯片损坏。

图1.3 信号发生器参数设置
将信号发生器接入28335B PLUS开发板,如图1.4所示;

图1.4 28335B PLUS接线示意图
打开CCS,将本推文附带的例程“AD_TEST”烧录到28335B PLUS开发板,并运行程序。
在CCS中选择CCS-Tools-Graph-Single Time,打开Graph模块。Acquisition Buffer Size设置为512;Dsp Data Type设置为32-bit floating point;Start Address设置为adc_buffer(例程中将数据存放在数据容量为512,名称为adc_buffer的数组中);Display Data Size设置为512;其余参数保持默认,Graph Properties设置如图1.5所示。点击“OK”。

图1.5 Graph Properties配置参数
点击“OK”即可打开相应的Single Time。如下图1.6所示,程序中有DELAY_US(100),该函数延时100us,所以该例程的理论采样频率为10KHz。从图中可知,相邻两个波谷之间的差值约为100个采样点,则所测信号的频率为10KHz/100=100Hz,与信号发生器的设置相符合。
注:用户可在Single Time的右上脚点击Enable Continuous Refresh,打开Graph的连续刷新按钮,这样就可以获得一个持续变化的波形。

图1.6 Single Time界面
将信号发生器频率修改为300Hz,Single Time界面如图1.7所示。相邻两个波谷之间的差值约为34个采样点,则所测信号的频率约为300Hz。
例程的while(1) 循环包含了:执行 ADCa_Start_COV()函数(配置寄存器、等待 ADC 转换完成、16次浮点乘法运算)+ DELAY_US(100) + 循环跳转指令。这意味着真实的采样周期会比 100us 略长一点(比如102us)。这就导致真实的采样频率会略低于10kHz。在图上读出的单周期点数可能会略小于100(比如 98 左右)。
这种使用 DELAY 延时来控制采样率的方式会导致频率计算存在轻微误差。在工业级开发中,我们通常不会使用DELAY_US来控制采样,而是使用CPU定时器中断(CPU Timer Interrupt) 或 ePWM 触发 ADC 来保证采样频率的绝对精确。

图1.7 Single Time界面
①在Graph中观察到满意的完整波形后,点击 CCS 顶部工具栏的黄色暂停按钮 (Suspend)。必须让DSP暂停运行,以保证导出的数组数据是静态且完整的,防止在导出过程中数据被新一轮的采样覆盖。
②点击顶部菜单栏 View -> Memory Browser,打开内存浏览器窗口。
③在 Memory Browser 窗口右上角的工具栏中,找到并点击一个带绿色向外箭头的芯片图标(Save Memory)。
④配置导出参数:
File: 选择你想保存的文件路径,并给文件命名,例如D:\adc_data.dat(名称为adc_data,后缀为.dat的文件保存在D盘根目录下)。
File Type:下拉选择TI Data。

⑤点击 Next。
⑥配置导出参数二:
Format:下拉选择32-Bit Floating Point;
Start Address: 输入数组变量名 adc_buffer。
Memory Page: 保持默认(通常是Data)。
Length: 输入需要导出的数据点数,这里输入定义的缓冲长度512。

⑦点击 Finish,数据就会被保存到你指定的路径下。
①打开MATLAB R2017b;
②将本推文附件中MATLAB_ADC.txt的内容复制到MATLAB的命令行窗口。

③点击回车键,MATLAB会根据在D盘根目录下保存的文件“adc_data.dat”,生成一个图表;图标的横坐标为“采样点数 (Sample Index)”,纵坐标为“电压幅值 (V)”。
注:导出的.dat 文件包含了带有TI专用文件头的数据。如果您需要对这些离散的采样点进行频谱分析 (FFT)、滤波或重新绘制高质量的图表,可以直接在 MATLAB 中读取并解析这个 .dat 文件。

用户可以使用该推文附带的例程“YXDSP-EMBOXC-01 PMSM-100W-6002-TEST”,请参考该推文之前的介绍对目标参数进行设置,这里不再赘述。
当设置目标转速为1500转/分时,CCS的Graph如图3.1所示;相电流IA的幅值为1.6A左右,频率为125Hz。

图3.1
转动磁粉控制器,设置加载后,CCS的Graph如图3.2所示;相电流的幅值为4.4A左右(磁粉控制器加载的值不同,相电流幅值也不相同);

图3.2
将相电流IA对应的数据导出,并使用MATLAB绘图,可以得到如图3.3所示的图标;用户可以在例程的基础上,添加滑动平均滤波或一阶低通滤波,获得更平滑的波形。

图3.3
该推文为针对多数用户反馈的Graph及数据导出和处理问题所编写的一种解决方式,欢迎各位读者提供您的思路。同时也欢迎您反馈在使用研旭开发板和试验箱的过程中遇到的问题。如果您对于“基础教程”系列推文有任何想法或者建议,可以在该推文下留言。
资料下载地址:私xin
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删