#申请原创#
一周前就开始进行ADC转换的实验,由于不熟悉ATtiny1627的ADC的使用,反复折腾了多天,今天终于基本完成了实验,ADC转换出了正确的数据。我在实验中是开通了三个通道的ADC转换,每次转换一个通道,信号输入端用了一个5.1k的固定电阻和一个5.1k的微调电阻串联,线路图如下:
焊接好的扩展板如下:
我选择的是12位单采样,参照电压选择的是VREF 2.048v,后来改为4.096v。在实验过程中,首先遇到的难题是函数调用时通道名称参数问题,我查遍了相关的头文件,没有找到有关的宏定义,参照MCC配置中的名称(如下图所示)也不正确。
最后还是参考了mxkw0514坛友的帖子,才知道这个参数名称定义的比较特别,格式为ADC_MUXPOS_AINx_gc。下面是相关的测试代码:
函数的参数名称问题解决之后,又出现了转换数值不正确的问题,如下图所示,我对Gnd、3.3V和5V的电压进行采样,得到的电压值却是负数:
我反复改变参照电压和Positive Input Multiplexer 这两个参数,转换的数值始终不会完全正确,折腾了几天都没有进展。最后被迫无奈,我尝试开启差分转换,如下图所示:
最后终于获得了正确的转换数值:
奇怪的是,我再尝试关闭差分转换,又能够获得正确的转换结果了,百思不得其解。
下图是实验装置:
|