硬件部分
AD 转换器(ADC)将模拟量转换为数字量通常要经过 4 个步骤:采样、保持、量化和编码。所谓采样即是将一个时间上连续变化的模拟量转换为时间上离散变化的模拟量。注意:A/D模块采样可接受的电压范围为0~3V,过高将会烧坏A/D模块
将采样结果存储起来,直到下次采样,这个过程叫做保持。一般采样器和保持电路一起总称为采样保持电路。将采样电平归化为与之接近的离散数字电平,这个过程叫做量化。将量化后的结果按照一定数制形式表示就是编码。将采样电平(模拟值)转换为数字值时,主要有两类方法:直接比较型与间接比较型。直接比较型:就是将输入模拟信号直接与标准的参考电压比较,从而得到数字量。常见的有并行 ADC 和逐次比较型 ADC。间接比较型:输入模拟量不是直接与参考电压比较,而是将二者变为中间的某种物理量在进行比较,然后将比较所得的结果进行数字编码。常见的有双积分型 ADC。
图9. 3 A/D硬件图
将DSP的J5端ADCINA0与J4端PWM1A连接。
模型搭建
“代码生成A/D采样实验模型”,如下图:
图9. 4 ADC采样实验模型
用MATLAB/Simulink R2018b或者更高版本MATLAB/Simulink新建仿真模型。
其中 “1”是中断模块,双击该模块打开参数对话框,根据图9. 5中断向量表,CPU中断序列选择1,PIE中断序列选择1,优先级选择30;
图9. 5中断表
图9. 6中断参数配置
“2”是子系统,框选区域后,光标放在边上三点处,选择创建子系统;
图9. 7创建子系统
“3”ADC采样模块,双击该模块打开参数对话框,ADC Control设置:模块选择“A”,转换开始条件选择“ePWMxA”,其余配置如图9. 8所示;
图9. 8 ADC Control设置
Input Channels设置:转换通道数选择“1”,通道选择“ADCINA0”,点击“OK”按钮,关闭对话框。
图9. 9 ADC Input Channels设置
“4”是函数调用模块,查找Trigger模块,选择触发器类型为“函数调用”,完成设置。
图9. 10函数调用模块
“5”“6”分别为数据存储器与数据读取器。
“7”ePWM模块的General、ePWMA设置与PWM波形实验相同;
图9. 11 ePWM-General、ePWMA设置
Event Trigger设置:勾选“使能ADC的A模块开始转换”。
图9. 12 ePWM- Event Trigger设置
下载运行
该实验需要使用到Code Composer Studio (CCS),与之前实验略有不同,故模型选择“Build”仅编译。
第一步:DSP板上电
“Build”,模型编译按钮,点击该按钮,模型会自动编译,在matlab路径下生成目标代码,建立ccs工程文件;
图9. 13 ADC采样实验模型
第二步:将生成的代码烧入DSP核心板
首先,打开ccs,导入刚才代码生成建立的工程,点击编译,生成.out文件。(注:工程位置即matlab/simulink代码生成的位置)
其次,使用“仿真线”将DSP板“仿真线”接口与电脑相连,右键.ccxml文件选择“Launch Selected Configuration”打开事先配置好的仿真器。
最后,在Debug界面通过进行链接,点击
下载.out文件,点击Browse project选择生成的“.out”文件并点击“OK”。
第三步:点击运行程序并观察实验结果
实验现象:程序运行后,在Debug中观察ia,效果如图9.14所示,断开DSP的J5端ADCINA0与J4端PWM1A连线后,数据发生改变,约为2.9。
图9. 14 Debug采样观测
图9. 15 断开后采样数据
以上就是代码生成A/D采样实验的所有内容啦!大家点点收藏的同时,麻烦点点赞同哦,谢谢!代码生成模型已在闲鱼(灼青云)上架,有需要的小伙伴可以看看。