TMS320F28388的AD支持16位单端信号输入,真是个好功能啊。
不过,我在实际测试发现,AD采样结果波动较大。INA240A1的输出通过100Ω+330pF的RC滤波后,接入AD通道。
在AD不工作时,AD输入信号是正常的。但在AD工作时,发现每次采样转换的时候,输入信号都有高达80mV的跌落(满量程输入是3V),如下图所示。
是不是这个跌落导致实际结果有较大波动呢?如果每次跌落值相同,那也不应该有那么大误差呀(好几十LSB了)。更重要的问题是如何解决了?加大滤波电容可以吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
TMS320F28388的AD支持16位单端信号输入,真是个好功能啊。
不过,我在实际测试发现,AD采样结果波动较大。INA240A1的输出通过100Ω+330pF的RC滤波后,接入AD通道。
在AD不工作时,AD输入信号是正常的。但在AD工作时,发现每次采样转换的时候,输入信号都有高达80mV的跌落(满量程输入是3V),如下图所示。
是不是这个跌落导致实际结果有较大波动呢?如果每次跌落值相同,那也不应该有那么大误差呀(好几十LSB了)。更重要的问题是如何解决了?加大滤波电容可以吗?
是否跟INA240有关我这边不能确定,目前还没有两者结合的使用经历或者相似问题。因为假期的原因可能回复不及时,你可以等待今天应该会有回复。
有相关例程的,C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f2838x\examples\c28x\adc\adc_ex1_soc_software.c
#define EX_ADC_RESOLUTION 12 // 12 for 12-bit conversion resolution, which supports single-ended signaling // Or 16 for 16-bit conversion resolution, which supports single-ended or // differential signaling #define EX_ADC_SIGNALMODE "SINGLE-ENDED" //"SINGLE-ENDED" for ADC_MODE_SINGLE_ENDED: // Sample on single pin (VREFLO is the low reference) // Or "Differential" for ADC_MODE_DIFFERENTIAL: // Sample on pair of pins (difference between pins is converted, subject to // common mode voltage requirements; see the device data manual)
更改一下宏定义就可以实现16位单端采样了。但是这个例程还有点bug,更改16位之后会报错,你可以将例程中如下代码的elif语句中判断条件直接改为“1”或者“0”就可以运行了
#elif(EX_ADC_RESOLUTION == 16) #if(EX_ADC_SIGNALMODE == "SINGLE-ENDED") ADC_setMode(ADCA_BASE, ADC_RESOLUTION_16BIT, ADC_MODE_SINGLE_ENDED); ADC_setMode(ADCC_BASE, ADC_RESOLUTION_16BIT, ADC_MODE_SINGLE_ENDED); #elif(EX_ADC_SIGNALMODE == "DIFFERENTIAL") ADC_setMode(ADCA_BASE, ADC_RESOLUTION_16BIT, ADC_MODE_DIFFERENTIAL); ADC_setMode(ADCC_BASE, ADC_RESOLUTION_16BIT, ADC_MODE_DIFFERENTIAL); #endif
谢谢,在英文论坛发了,等待回复!
看来新器件还是不能随便用啊,各种未知的因素。