代碼的校準部分
可調整編譯器#define值(calibrateADC1和calibrateDAC),以使能或禁用ADC和DAC的校準程序。
要校準ADC或DAC,接口板(USB-SWD/UART)必須連接至 J1和PC上的USB端口。可使用“超級終端”等COM端口查看程序來查看校準菜單并逐步執行校準程序。
校準ADC時,源代碼會提示用戶將零電平和滿量程電壓連接至AIN2和AIN3。注意,AIN2是正輸入端。完成校準程序后,ADC1INTGN和ADC1OF寄存器的新校準值就會存儲到內部閃存中。
校準DAC時,應通過精確的電流表連接VLOOP+輸出端。 DAC校準程序的第一部分校準DAC以設置4 mA輸出,第二部分則校準DAC以設置20 mA輸出。用于設置4 mA和20 mA 輸出的DAC代碼會存儲到閃存中。針對最終的4 mA和20 mA 設置在AIN9處測得的電壓也會記錄下來并存儲到閃存中。由于在AIN9處的電壓與流經RLOOP的電流線性相關,因此這些值會用于計算DAC的調整因子。這種閉環方案意味著,可以使用片內24位∑-△型型ADC進行微調而消除DAC和基于晶體管的電路上的所有線性誤差。
UART配置為波特率9600、8數據位、無極性、無流量控制。如果本電路直接與PC相連,則可使用“超級終端”等通信端口查看程序來查看該程序發送給UART的結果,如圖5 所示。
要輸入校準程序所需的字符,請在查看終端中鍵入所需字符,然后ADuCM360 UART端口就會收到該字符。
圖5. 校準DAC時的“超級終端”輸出
代碼的溫度測量部分
要獲得溫度讀數,應測量熱電偶和RTD的溫度。RTD溫度通過一個查找表轉換為其等效熱電偶電壓(T型熱電偶請參見ISE, Inc.的ITS-90表)。將這兩個電壓相加,便可得到熱電偶電壓的絕對值。
首先,測量熱電偶兩條線之間的電壓(V1)。測量RTD電壓并通過查找表轉換為溫度,然后再將此溫度轉換為其等效熱電偶電壓(V2)。然后,將V1和V2相加,以得出整體熱電偶電壓,接著將此值轉換為最終的溫度測量結果。
對熱電偶而言,固定數量的電壓所對應的溫度會存儲在一個數組中。其間的溫度值利用相鄰點的線性插值法計算。
圖6顯示了使用 ADuCM360上的ADC1測量整個熱電偶工作范圍內的52個熱電偶電壓時獲得的誤差。最差情況的總誤差小于1°C。
圖6. 通過分段線性逼近法利用ADuCM360/ADuCM361所測52個校準點時的誤差
RTD溫度是運用查找表計算出來的,并且對RTD的運用方式與對熱電偶一樣。注意,描述RTD溫度與電阻關系的多項式與描述熱電偶的多項式不同。
有關線性化和實現RTD最佳性能的詳細信息,請參考 應用筆記AN-0970“利用ADuC706x微控制器實現RTD接口和線性化”。
代碼的溫度至電流輸出部分
測得最終溫度后,將DAC輸出電壓設置為適當的值,以便在RLOOP上產生所需的電流。輸入溫度范圍應該是?200°C 至+350°C。代碼針對?200°C和+350°C設置的輸出電流分別是4 mA和20 mA。代碼實施的是閉環方案,如圖7所示,其中AIN9上的反饋電壓通過ADC0測量,然后此值用于補償 DAC輸出設置。FineTuneDAC(void)函數執行此項校正。
為獲得最佳結果,應在開始該電路的性能測試前校準 DAC。
圖7. 閉環控制4 mA至20 mA的DAC輸出
出于調試目的,以下字符串會在正常工作期間發送至 UART(見圖8)。
圖8. 用于調試的UART字符串
常見變化
對于標準UART至RS-232接口,可以用 ADM3202等器件代替FT232R收發器,前者需采用3 V電源供電。對于更寬的溫度范圍,可以使用不同的熱電偶,例如J型熱電偶。為使冷結補償誤差最小,可以讓一個熱敏電阻與實際的冷結接觸,而不是將其放在PCB上。
針對冷結溫度測量,可以用一個外部數字溫度傳感器來代替RTD和外部基準電阻。例如, ADT7410 可以通過I2C接口連接到ADuCM360。
有關冷結補償的更多詳情,請參考ADI公司的《傳感器信號調理》第7章“溫度傳感器”。
如果USB連接器與本電路之間需要隔離,則必須增加 ADuM3160/ ADuM4160 隔離器件。
評論