DSP28335 ADC采样单独电路板正常,接入到电源系统中,采样...
用DSP28335的ADC采样,单独电路板,模拟给一个输入电压到ADC口,采样时正常,接入到自己的数字电源产品中,ADC采用口用示波器能够测试到输入电压超过2V(正常应该大于ADC值2730),但是ADC寄存器中显示采样值无法超过2200的值。
各位有没有遇到过类似问题的,可能是什么原因导致的? 又是一年比赛啊。
贴硬件图和代码,这样别人没法帮你分析。 初始化代码如下:
InitAdc();// For this example, init the ADC
// Configure ADC
AdcRegs.ADCTRL3.bit.SMODE_SEL = 1; //0顺序采样模式,1同步采样
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //采样级联方式,SEQ采用16状态排序器
AdcRegs.ADCTRL1.bit.CONT_RUN = 0; //禁止连续运行位
AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; //允许覆盖
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// 1:SEQ1可以由EPWMA触发启动信号;0:不使能
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0; // 1:使能转换结束中断;0:不使能中断
//设置采用通道
AdcRegs.ADCMAXCONV.all = 0x5; // Setup 1 conv's on SEQ1
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup ADCINA0 as 0 SEQ1 conv.
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; // Setup ADCINA1 as 1 SEQ1 conv.
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2; // Setup ADCINA2 as 2 SEQ1 conv.
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x3; // Setup ADCINA3 as 3 SEQ1 conv.
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x4; // Setup ADCINA4 as 4 SEQ2 conv.
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x5; // Setup ADCINA5 as 5 SEQ2 conv.
阻抗不匹配
加个运放缓冲一下再驱动你的ADC就可以了 rclong 发表于 2019-8-1 15:28
阻抗不匹配
加个运放缓冲一下再驱动你的ADC就可以了
接入到ADC之前中间加了一个51欧姆的电阻,用于做阻抗匹配,在电阻前级都采用了运放电路。一般这个地方阻抗匹配应该设置多少? ADC输入前端有电容吗? tianyaxtutianya 发表于 2019-8-1 15:32
接入到ADC之前中间加了一个51欧姆的电阻,用于做阻抗匹配,在电阻前级都采用了运放电路。一般这个地 ...
对于Delta型的ADC,输入必须接保持电容,或者对ADC的驱动运放来说,为了保持稳定需要在输出后面接一个大于某一固定时间常数的RC电路。 tianyaxtutianya 发表于 2019-8-1 15:32
接入到ADC之前中间加了一个51欧姆的电阻,用于做阻抗匹配,在电阻前级都采用了运放电路。一般这个地 ...
有运放的话驱动ADC不会有什么问题
看看ADC的ref电压量一下看看对不对 pulan 发表于 2019-8-1 15:38
ADC输入前端有电容吗?
接了一个2.2NF的电容 rclong 发表于 2019-8-1 15:43
有运放的话驱动ADC不会有什么问题
看看ADC的ref电压量一下看看对不对
测试过了,我采用的是内部ADC基准,ADCREFP和ADCREFM输出电压值是对的但是存在类似开关周期的开关纹波。
这个开关周期的纹波无论在AD口是小于1.6V,还是大于1.6V。这个开关纹波都存在,且没有太大变化,感觉这个纹波是GND上带来的 量AD口的电压,别用示波器,用万用表。示波器的带宽太大了,各种毛刺都算进去,万用表测量更接近AD采样值。 SARadc吧,应该是12bit的,buffer用的运放带宽要采样率带宽的100倍,用高速的缓冲用的opa吧 最终发现是单独这块电路板的个别问题,换一块电路板则没有这个现象,怀疑为芯片的AD口被静电损坏 本帖最后由 tianyaxtutianya 于 2019-8-12 20:11 编辑
28335的内部ADC采样仍然存在偏差
页:
[1]