基于片上ADC/DAC實現精度可調ADC的方法
摘要: 在數據采集系統中,由于成本限制和系統其他模塊功能要求,系統中MCU的ADC精度有時無法滿足系統測量精度要求。基于上述原因,提出一種利用MCU自帶的10位ADC和DAC,結合運放、電容、電阻等元件搭建的外圍硬件電路,實現將MCU自帶的ADC轉換為精度可調的ADC。軟件設計是通過校正方法減小由硬件導致的ADC測量誤差。實驗結果表明,該系統可實現10~20位精度可調的ADC,測量精度最高可提高1 024倍,能夠滿足大多數情況下的測量精度要求。
本文引用地址:http://m.butianyuan.cn/article/179510.htm某系統的A/D模塊需實現檢測輸入電壓值,變化范圍為0~58 V。主芯片選用NXP公司的ARM7系列的LPC2368,片上自帶10位ADC和DAC,ADC測量輸入電壓范圍是0~3 V,而DAC的范圍是0~3 V。傳統方法是直接將輸入電壓送入ADC法滿足精度要求,但輸入電壓的變化范圍大于ADC的輸入電壓范圍。基于此,這里給出一種利用MCU自帶ADC和DAC,并結合運放、電容、電阻等元件搭建外圍硬件電路,實現10~20位測量精度可調的ADC的方法。
1 高精度ADC設計原理
輸入電壓經過電阻分壓產生電壓U入,送入由運放和電阻組成的減法運算電路的同相端,分壓的原因是輸入電壓最大值大于運放的最大輸入電壓。MCU的DAC輸出經過同相比例運算電路放大之后產生與U入相近的電壓U近,送入減法電路的反相端。同相比例運算電路的作用是擴大DAC的輸出電壓范圍,使U入和U近的最大值近似相等。經過減法運算電路之后的電壓差值U差經過箝位電路送入MCU的ADC,通過讀ADC寄存器的值可得U差的值。箝位電路是防止ADC的輸入電壓超過量程,而導致燒毀MCU。
在測量時,由軟件控制改變DAC寄存器的值,從而改變DAC輸出電壓值,使U差的電壓值在量程范圍(0~3 V)之內。此時通過讀DAC和ADC的寄存器的值,可得DAC輸出電壓與送入ADC的電壓U差的值。根據DAC的輸出電壓和同相比例運算電路公式可得U近電壓值,根據減法電路公式、U差和U近的值可得輸入電壓值。
系統硬件框圖如圖1所示。
圖1 系統硬件框圖
2 系統硬件設計
圖2為實現17位ADC原理圖。U101、R100、R101、R102、R103組成減法電路,U102、R108、R109、R116組成同相比例運算電路。VD100組成箝位電路。VR是由基準電壓源產生的3 V的基準電壓。R117和R118組成分壓電路,在R118上的電壓為45 mV可抵消運放的零漂。ADO是MCU的ADC通道0的輸入端。
圖2 17位ADC原理圖
圖2所示的電路雖然只是實現17位ADC,但通過修改幾個特定的電阻阻值就可實現調節(jié)測量輸入電壓范圍和ADC測量分辨率。通過修改同相比例運算電路中R109與R116比例值,可實現調節(jié)輸入電壓的測量范圍;通過修改減法電路中的R103與R100比例值,可實現調節(jié)ADC的分辨率。下面結合實現17位ADC硬件設計電路圖,具體說明如何實現17位高精度ADC、調節(jié)測量輸入電壓范圍和實現10~20位精度可調的ADC。
評論