如题:
配置使用内部电压参考Internal Reference Voltage
在AD端口 加入一个 2.55Vdc的直流电压,
理论ADCResult结果应该是 2.55 / 3.3 * 4096 =3165
实际DSP AD读取的ADCResult值为:3106
误差 60,请问有遇到过类似问题没?
Susan Yang:
你可以查看一下芯片手册6.9.2.1.3 On-Chip Analog-to-Digital Converter (ADC) Electrical Data/Timing,从这里您可以 看到ADC的性能指标。
ADC是存在误差的。ADC的误差有偏置误差,增益误差,积分非线性误差。测试的时候应该考虑这几种误差累加之后的结果。 一个LSB等效0.732mv, 即0.034V.
如果要求更高的精度,可以进一步做校准,如输入一路参考电压给ADC引脚,然后用软件校准。
,
NormalOne:
你好,
一个LSB等效0.732mv, 即0.034V.这个0.034V是指什么?
,
Green Deng:
你好,除了上述Susan所提的误差之外,采样器件本身也有可能造成误差。请问你的硬件是自己设计还是使用的TI套件?软件是自己编辑的还是TI例程?是否有测试过其他电压值,是否有稳定的60个点的误差?
,
NormalOne:
是自己设计的硬件,
测试过其他电压,包括其他AD通道,基本都会存在误差30—60个点之间吧,并且都是偏小
另外3.3V用示波器测过了,也是比较稳定的
,
NormalOne:
此外,测试给定电压以后,测量的是进DSP-AD端口的电压,应该可以排除采样电路上面的问题
,
NormalOne:
你好,
我将采样保持由
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0x9;
修改为
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0xf;
采样值正常了,采样频率是20khz有一个小疑问:
采样单个时间:1/45Mhz * (0xf+1 采样保持) + 13cycle转换周期 = 645ns
16通道全部采样完毕 645ns * 16 = 10.32us我现在使用ADC中断,作为主控制中断,PWM启动AD转换—频率20khz
这个AD转换时间过长,会有什么影响?
,
Susan Yang:
请忽略0.034V,这是是28335的相关参数。
对于28069,参考数据手册的Table 6-27. ADC Electrical Characteristics
1 LSB has the weighted value of full-scale range (FSR)/4096. FSR is 3.3 V with internal reference and VREFHI – VREFLO for external
reference
,
NormalOne:
问题按照
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/96901 。。处理了
看起来不是只有我有这个问题
I connect AN0 to 3.3V and I write the correct value to "AdcRegs.ADCREFTRIM.bit.BG_FINE_TRIM" till I read 4096 to the AdcResultReg.
EALLOW; AdcRegs.ADCREFTRIM.bit.BG_FINE_TRIM = "correct value"; EDIS;
,
Susan Yang:
好吧,谢谢您的分享!
,
Green Deng:
个人认为,采样时间长的话影响不大,最多就是采样点较少。但是采样时间短的话就会有问题,比如你的采样保持窗口时间太短可能导致采样电容充放电不完全,继而导致采样值不准确等等。
,
NormalOne:
你好,
我试过了,修改不同的 采样保持窗口时间,
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0x6;
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0x9;AdcRegs.ADCSOC0CTL.bit.ACQPS = 0xf;
同一个DC输入电压,采样得到的ADResult值,和理论 误差都不一样,
采样保持时间 也并不是越大越好。
就比较奇怪,和外网的这两位仁兄的很像,并且 也都是28069的芯片,
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/351356#pi320995=2
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/96901 。。