Part Number:TMS320F28027
AD采样使用AINB3口通过杜邦线接在自己的开发板的某一位置,情况如下:
1.AINB3口通过杜邦线接在TMS320F28027的VCC上 其程序代码如下
printf("\r\nSOC0原始值%0.4d SOC1转换为电压值:%0.2fV",adcVal[1],(float)((adcVal[1])*3.3/4096)); 串口助手显示4095,3.3V 并且数据一直保持不变即为下面输出显示
SOC0原始值4095 SOC0转换为电压值:3.3V
2.AINB3口通过杜邦线接在TMS320F28027的GND上发现上述C代码在串口助手输出显示为
SOC0原始值0057 SOC0转换为电压值:0.05V
SOC0原始值0056 SOC0转换为电压值:0.05V
SOC0原始值0062 SOC0转换为电压值:0.05V
SOC0原始值0052 SOC0转换为电压值:0.04V
SOC0原始值0063 SOC0转换为电压值:0.05V
SOC0原始值0070 SOC0转换为电压值:0.06V
最大的疑问是接GND的时候数值不为零?怎么才能消除这个误差?还有TMS320F28027为3.28V左右也就是说接VCC的时候输出值也是偏大的 这怎么解决?
3.另外关于函数AdcOffsetSelfCal()是怎么使用的?当程序下载到flash中的时候怎么调用才不会出错,在贵公司网站也搜到这个使用解释无奈是英文解释能否做中文的详细说明?
谢谢!
Green Deng:
你好,根据你的描述,你的测试信号来源都是基于开发板上的引脚的?有没有测试过独立的电压源?或者做ADC采样测试的时候有没有同时用诸如示波器来测试信号源?
因为我看这个大小的电压误差也很有可能是板子本身的浮动电压或者外界干扰电压,最好把这个可能性排除。
另外关于AdcOffsetSelfCal(),确实TI官方资料应该都是英文的,中文资料可能只能找一下论坛帖子或者第三方网站的资料了
,
jun liu:
AdcOffsetSelfCal()能否给一个详细的解决方法的解释?我把AD 的电源换成线性稳压电源结果还是那样,有没有比较准的官方例子、最好带详细解释的,谢谢!
,
Green Deng:
你好,我跟你确认一下你的问题,然后去咨询一下其他工程师吧。
目前你的情况是测量3.3V电压的时候数值正确,但是测量0V电压的时候会有0.05V的偏高。程序中没有使用AdcOffsetSelfCal()并且你想知道如何正确使用AdcOffsetSelfCal()来进行采样校准。
上述内容是否正确?