- ADC工作方式配置
DSP的模数转换模块(ADC)支持对三种情况下的触发信号进行响应,分别是:软件触发,ePWM触发和外部引脚信号触发。本文主要介绍如何对一个外部接入的模拟信号进行模数转换。需要注意的是,接入的模拟信号电压范围在0~3V之间,否则将会烧坏DSP的模数转换模块。
下面是对一个从DSP的A2通道输入的一个信号进行模数转换的配置过程:
AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK; // S/H 采样保持时间,16个ADCCLK
AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS;
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; // 1 Cascaded mode
AdcRegs.ADCTRL1.bit.CPS = 0;
AdcRegs.ADCTRL1.bit.SEQ_OVRD=1;
AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=1;//外部引脚信号启动ADC采样
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2;// 采样A2通道,存在ADCRESULT2中
// 设置SEQ1的最大通道数,最多可设置16个输入通道
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0; //实际值比设置值大1
AdcRegs.ADCTRL1.bit.CONT_RUN = 1; // 连续采样模式
- 读取转换值
配置好ADC的转换方式之后,如果A2引脚上一旦有信号输入,DSP的ADC模块就会自动响应开始抽样-量化-编码,得到对应的数字信号值存储在设置好的结果寄存器中。下面是对转换后的数据读取过程:
for (i=0; i<TIMES; i++) //TIMES为对模拟信号的采样次数
{
while (AdcRegs.ADCST.bit.INT_SEQ1== 0) //每当一个模拟信号电压值转换完成时,该位置1
{