選擇正確的模數(shù)轉(zhuǎn)換器 (ADC) ,計算和使用ADC校準值
校準值可以通過讀取已知參考值然后找出要使用的校正因子(二進制因數(shù))來計算。對于給出的示例,理想情況和最壞情況 ADC 值之間的差異永遠不會超過 1.2%,因此從原始值的二分之一或四分之一開始是沒有意義的。測試和使用的唯一值是 1/128、1/256 和 1/512。你想從接近你期望看到的價值開始。
使用計算器很容易找到校正因子,但如果我們必須在應用程序中使用的定點處理器上計算它,則需要一種基于整數(shù)的方法。
以流程圖形式顯示了本示例中用于計算和使用校準常數(shù)的算法。在此方法中,使用單個字節(jié)(或字)來存儲校準常數(shù)。位 7 指示參考電壓是低(需要減去校準值)還是高(添加校準值)。位 0、1 和 2 指示是否使用 1/128、1/256 和 1/512 因子。
當然,我們可以為每個可能的因素使用一個單獨的字節(jié),用第四個字節(jié)來指示參考值是高還是低。
寫入校準值
無論我們使用表格還是校準常數(shù),如何將校準值輸入系統(tǒng)?任何校準方案的一個關鍵組成部分是非易失性存儲的可用性。許多微控制器都有片上 EEPROM。校準通常在測試電路板時進行。在大批量生產(chǎn)環(huán)境中,這可能會通過某種釘床自動測試設備來完成。
我們通常希望將處理器置于某種“校準模式”,可能通過將引腳接地??梢詫ιa(chǎn)測試設備進行編程,以將非常精確的電壓施加到模擬輸入并將校準引腳接地。然后微控制器可以進入校準模式,讀取參考值并計算補償值或創(chuàng)建查找表。
在某些情況下,我們沒有足夠的內(nèi)存將校準代碼添加到微控制器。在這種情況下,我們可以讓微控制器將 ADC 值返回到輸出引腳(串行)或一組引腳(并行),由生產(chǎn)測試設備讀取。然后,外部計算機可以計算校準值或表格值,并通過相同的接口將它們返回給微控制器。
如果生產(chǎn)設備還對微控制器進行在線編程,則校準數(shù)據(jù)可以嵌入到閃存中編程的數(shù)據(jù)中。如果被校準的參考在微控制器內(nèi)部,則測試設備可能必須首先將校準程序加載到微控制器中,執(zhí)行校準,然后加載實際的應用程序代碼。
最后,一些非常小的微控制器根本沒有足夠的引腳來進行校準。在這種情況下,我們通??梢允馆敵鲆_兼作校準引腳。我們使用外部電阻器將引腳拉高。生產(chǎn)設備在上電前將引腳接地以選擇校準模式。
它的工作方式是微控制器上電,所有引腳都處于輸入狀態(tài)。它在將引腳配置為輸出之前讀取校準引腳。如果該引腳為高電平,則開始正常操作。如果引腳為低電平,則必須外部接地,因此單片機進入校準模式。當然,輸出必須是在引腳外部接地時不會損壞任何東西的輸出。
最后,如果我們正在校準基準,將精確電壓施加到備用 ADC 輸入,我們可以使用該輸入本身將系統(tǒng)置于校準模式。使用一個電阻器將備用輸入拉至零電平 ADC 電壓(在我們一直使用的示例中為接地)。然后,當在引腳上檢測到超過某個預定閾值(例如,滿量程電壓的三分之二)的電壓時,讓軟件進入校準模式。
選擇校準電壓時,我們希望選擇在參考電壓處于其可能的最低值時不會使 ADC 飽和的最大值。這可確保我們在計算校準常數(shù)(或表格)時不會因為位舍入誤差而失去準確性。這通常會使校準電壓高于滿量程值的 90%,盡管我們可能希望選擇最接近的標準參考電壓以簡化設計。
在某些應用中,我們可以通過尋找 ADC 輸入的變化來解決參考問題。我們可能會看到光學傳感器發(fā)生 10% 的變化,而不是將其與固定值進行比較,或者我們可能會看到溫度下降 25%。當然,傳感器的精度也包括在內(nèi),但該主題超出了本文的范圍。
盡管有時很難知道要為我們的應用使用哪種 ADC,但種類繁多的部件可確保我們找到適合我們需要的部件。將軟件與硬件相匹配可確保我們獲得產(chǎn)品所需的準確性和可靠性。