1 引言
在混合信號單片機中,美國Cygnal公司新推出的C8051F06X系列高集成度混合信號單片機可謂一枝獨秀。C8051F06X是高度集成的片上系統單片機,它有多達59個數字I/O口,采用與8051兼容的內核CIP-51,速度高達25MI/s。該系列單片機有C8051F060/2型和C8051F061/3型,與同家族的其他單片機相比,其模擬外設性能優異,除有一個帶可編程放大器和多路選擇器的8路10位ADC外,還有兩路采樣速度可達1 MS/s的16位ADC,兩路12位DAC,3個電壓比較器,1個片內溫度傳感器和參考電壓源等。本文僅以C8051F060型為例,著重介紹其高速、高精度模/數轉換器的使用方法。
2 高精度模/數轉換器
模/數轉換接口由2路16位逐次逼近式ADC、集成采樣保持器、一個可編程窗口檢測器、一個DMA接口組成。ADC0/ADC1可配置成單端或差分輸入方式。模/數轉換的工作方式,窗口檢測器和DMA接口均可通過特殊功能寄存器由軟件控制,模/數轉換器及其采樣保持電路也可通過特殊功能寄存器單獨設置,如圖1所示。顯然,轉換啟動方式靈活,軟件事件、外部硬件信號和周期性的定時溢出都能用作觸發信號,轉換結束后,16位的結果鎖存在SFR中,可由DMA接口將其存入片內或片外RAM。
2.1 單端/差分輸入方式
ADCO和ADC1既可編程為單端輸入方式獨立工作,也可以設置為互相配合接收差分輸入信號。采用單端輸入方式時,ADC可配置為同步采樣,或采用不同的轉換速度。采用差分輸入時,ADC1服從于ADC0,除零點和增益校準外,它的配置均基于ADC0。通道選擇寄存器AMXOSL的DIFFSEL位用于選擇單端和差分輸入方式。差分輸入時,輸入到ADC的是一個偽差分信號,每個ADC的實際測量電壓等于引腳AIN和引腳AINDG之間的電壓。AINDG必須在-0.2V~0.6V之間,在大多數系統中,AINDG接到AGND,否則,AINDG信號會產生一個微小的負向偏置,建議用內部的校準功能解決。AINOG和AIN1G要可靠連接在一起,為了得到精確的轉換結果,在兩種方式下,AINn電位均應高于AINnG。
2.2 參考電壓
ADC0和ADC1可以配置不同的參考電壓電路,既可以使用片內精密參考電壓源,也可以使用片外參考電壓源。片內參考電壓源電路由一個獨立的溫度穩定式帶隙參考電壓發生器產生1.25 V電壓,再由一個緩沖放大器將其放大2倍,其最大負載電流不能大于100μA,建議在VREF端和VRGND端外接0.1μF和47 μF的旁路電容器。每個參考電壓電路可由參考電壓控制寄存器(REFnCN)分別控制,其中,BIASEn位控制參考電壓發生器的使能,REFBEn位控制乘2緩沖器的使能。當禁止時,內部參考電壓電路的耗電量為1μA,緩沖放大器呈高阻抗狀態;當使用內部參考電壓源時,這兩個控制位均須置l;當使用外部參考電壓源時,控制位REFBEn應置0。應該注意,不論使用何種參考電壓源,當使用模/數轉換器時,BIASEn位必須置1,不使用模/數轉換器時,BIASEn位置0,以有利于降低能耗。
2.3 工作方式
ADC0和ADC1的最大轉換速度為1 MS/s,轉換時鐘由系統時鐘分頻產生,并由ADCnCF型寄存器的ADCnSC位設定。
2.3.1 轉換啟動方式
對于ADC0,模/數轉換的啟動方法有4種,由ADC0CN型寄存器中的轉換啟動方式位AD0CMl/AD0CM0決定,這4種方式分別是給ADC0CN的AD0BUSY位寫1;定時器2的溢出;定時器3的溢出;檢測到外部ADC轉換啟動信號CNVSTR0的上跳沿。對于ADC1,模/數轉換的啟動方法有5種,由寄存器ADC1CN中的轉換啟動方式位AdlCM12-AD1CM0決定,這5種方式分別是給ADC1CN的AD1BUSY位寫l;定時器2的溢出;定時器3的溢出;檢測到外部ADC轉換啟動信號CNVSTR的上跳沿;給ADC0CN的AD0BUSY位寫1。
在模/數轉換過程中,ADnBUSY位被置1,轉換結束后,該位被清零,如果允許中斷,ADnBUSY信號的下降沿將觸發中斷,并置位ADnINT的中斷標志位ADCnON.5。在單端方式,模/數轉換的結果數據存放在ADCnH和ADCnL中;在差分方式,模/數轉換的結果數據是ADC0與ADC1之和,存放在ADC0H和ADC0L中。當用給ADC0CN的AD0BUSY位寫1的方法啟動模/數轉換時,應該查詢ADnINT位,以便確定模/數轉換何時完成,建議查詢步驟為給ADnINT寫0;給ADnBUSY寫1;查詢ADnINT位是否為l;處理ADC數據,當在差分方式且以外部信號啟動模/數轉換時,應將引腳CNVSTR0和引腳CNVSTR1連接起來。
2.3.2 采樣保持方式
模/數轉換的采樣保持方式由ADCnCN型寄存器的ADCnTM位控制,一旦ADCn被啟動,其輸入將被連續采樣,而這時轉換尚未開始,當AdnTM位為1,轉換開始進行,一個采樣周期由18個SAR時鐘組成。當用CNVSTRn信號啟動轉換時,ADC一直采樣,直到引腳CNVSTRn上出現一個上跳沿為止。將AdnTM位置為1,就能保證在模擬輸入端接外部多路選擇器時,滿足必要的建立時間。
2.3.3 建立時間
如果ADC的輸入為高速快變信號,如外部多路選擇器的切換或其他跳變信號,則在進行轉換之前需要一個最小跟隨時間,這個時間取決于ADC的輸入電阻,采樣電容,外部等效電阻及所期望的轉換精度,等效時間常數對單端輸入和差分輸入都是一樣的,給定精度所需要的建立時間可由下式來估算:
其中A為所需精度,取LSB的小數部分;t為所需的建立時間(秒);n為ADC的位數
(16);RT為ADC的輸入電阻和外部等效電阻的總和;Cs為采樣電容。
2.4 校準
模/數轉換器在生產廠已經通過非線性、零點偏移和增益誤差校準,但也能在系統中單獨對ADC0和ADC1的這些參數分別進行校準。校準是通過ADC0型和ADC1型配置寄存器的相應位來進行的,校準參數可用ADC校準指示寄存器(ADC0CPT)和ADC校準參數寄存器(ADC0CCF)讀寫,ADC0CFF的CPTR位用于ADC0CCF讀寫特定的校準參數。
一般情況下,不必再進行非線性校正,若要進行這種校正,將ADCnLCAL位置1即可啟動,校正完成后,由硬件對ADCnLCAL位置0 ,校正參數存放在修正單元中。進行零點和增益校準時,可以使用內部或外部的電壓源作為校準源,由ADCnSCAL位來設定。為了保證精度,建議先進行零點校準,后進行增益校準,零點校準可由ADCnOCAL位的置1采啟動,校準完成后,由硬件對ADCnOCAL位置0,零點校準可以補償的偏移誤差為滿量程的±3.125%,偏移值在ADC的數字化之前加到AINnG輸入中;增益校準可通過將ADCnGCAL位的置l來啟動,校準完成后,由硬件對ADCnGCAL位置0,增益校準可以補償的非線性誤差約為±3.125%,增益值加到ADC的VREF通路中,用以改變轉換器傳遞函數的斜率。
2.5 可編程窗口檢測器
ADC0有一個可編程窗口檢測器,它能連續地將ADC0的輸出與用戶設定的限位值進行比較,并監測系統的超值條件是否滿足。這一點在中斷觸發系統中特別有用,既可以節約代碼空間和CPU的占用帶寬,又能提供快速的響應時間。窗口檢測器的中斷標志也可用于查詢方式,該標志即特殊功能寄存器(ADC0CN)中的AD0INT位。參考字的高低字節被分別裝入ADC下限(大于)和上限(小于)寄存器(ADC0GTH/ADC0GTL和ADC0LTH/ADC0LTL)中。單端和差分方式都可以使用窗口檢測器,在單端方式中,窗口檢測器對寄存器(ADC0GTx/ADC0LTx)與ADC0的輸出進行比較,而差分方式是將ADC0和ADC1的組合輸出用于比較。應該注意,窗口檢測器標志可以在監測到數據落在設定的限位值之內或之外時置位或復位,這取決于對寄存器(ADC0GTx和ADC0LTx)的編程。
3 應用舉例
圖2所示是一個微型彈簧自動測試分選系統的原理框圖,單片機(C8051F060)是該系統的控制中心,通過12位DAC的輸出產生一個直流電壓,送到加力器,加力器將使彈簧產生變形位移,由位移傳感器測出位移量,傳感器的輸出電壓送到Ain輸入端,經過16位A/D轉換得到位移量,根據物理學胡克定理公式:F=-kS,單片機即可計算出彈簧的彈性系數k值。圖中,LED陣列用于不同k值的指示,由于C8051F060型單片機有多達59個數字I/O口,所以,液晶顯示LCD接口。LED指示矩陣接口及鍵盤掃描接口等,均不需要太多的外擴電路,簡化了系統,提高了可靠性。
4 結束語
近年來,隨著大規模集成電路制造技術的不斷發展,混合信號單片機的模擬接口性能進一步提高,特別是ADC的功能更加完善,精度從10位、12位、直到16位甚至24位,但綜合考慮采樣速度等因素,C8051F06X系列單片機以16位精度和1 MS/s的采樣速度,以及其他靈活多樣的可配置功能,成為目前屈指可數的片上系統混合信號單片機。可以預見,該系列單片機必將在數據采集及智能化儀器儀表等方面得到廣泛的應用。 欲了解更多信息請登錄電子發燒友網(http://www.nxhydt.com)
在混合信號單片機中,美國Cygnal公司新推出的C8051F06X系列高集成度混合信號單片機可謂一枝獨秀。C8051F06X是高度集成的片上系統單片機,它有多達59個數字I/O口,采用與8051兼容的內核CIP-51,速度高達25MI/s。該系列單片機有C8051F060/2型和C8051F061/3型,與同家族的其他單片機相比,其模擬外設性能優異,除有一個帶可編程放大器和多路選擇器的8路10位ADC外,還有兩路采樣速度可達1 MS/s的16位ADC,兩路12位DAC,3個電壓比較器,1個片內溫度傳感器和參考電壓源等。本文僅以C8051F060型為例,著重介紹其高速、高精度模/數轉換器的使用方法。
2 高精度模/數轉換器
模/數轉換接口由2路16位逐次逼近式ADC、集成采樣保持器、一個可編程窗口檢測器、一個DMA接口組成。ADC0/ADC1可配置成單端或差分輸入方式。模/數轉換的工作方式,窗口檢測器和DMA接口均可通過特殊功能寄存器由軟件控制,模/數轉換器及其采樣保持電路也可通過特殊功能寄存器單獨設置,如圖1所示。顯然,轉換啟動方式靈活,軟件事件、外部硬件信號和周期性的定時溢出都能用作觸發信號,轉換結束后,16位的結果鎖存在SFR中,可由DMA接口將其存入片內或片外RAM。
2.1 單端/差分輸入方式
ADCO和ADC1既可編程為單端輸入方式獨立工作,也可以設置為互相配合接收差分輸入信號。采用單端輸入方式時,ADC可配置為同步采樣,或采用不同的轉換速度。采用差分輸入時,ADC1服從于ADC0,除零點和增益校準外,它的配置均基于ADC0。通道選擇寄存器AMXOSL的DIFFSEL位用于選擇單端和差分輸入方式。差分輸入時,輸入到ADC的是一個偽差分信號,每個ADC的實際測量電壓等于引腳AIN和引腳AINDG之間的電壓。AINDG必須在-0.2V~0.6V之間,在大多數系統中,AINDG接到AGND,否則,AINDG信號會產生一個微小的負向偏置,建議用內部的校準功能解決。AINOG和AIN1G要可靠連接在一起,為了得到精確的轉換結果,在兩種方式下,AINn電位均應高于AINnG。
2.2 參考電壓
ADC0和ADC1可以配置不同的參考電壓電路,既可以使用片內精密參考電壓源,也可以使用片外參考電壓源。片內參考電壓源電路由一個獨立的溫度穩定式帶隙參考電壓發生器產生1.25 V電壓,再由一個緩沖放大器將其放大2倍,其最大負載電流不能大于100μA,建議在VREF端和VRGND端外接0.1μF和47 μF的旁路電容器。每個參考電壓電路可由參考電壓控制寄存器(REFnCN)分別控制,其中,BIASEn位控制參考電壓發生器的使能,REFBEn位控制乘2緩沖器的使能。當禁止時,內部參考電壓電路的耗電量為1μA,緩沖放大器呈高阻抗狀態;當使用內部參考電壓源時,這兩個控制位均須置l;當使用外部參考電壓源時,控制位REFBEn應置0。應該注意,不論使用何種參考電壓源,當使用模/數轉換器時,BIASEn位必須置1,不使用模/數轉換器時,BIASEn位置0,以有利于降低能耗。
2.3 工作方式
ADC0和ADC1的最大轉換速度為1 MS/s,轉換時鐘由系統時鐘分頻產生,并由ADCnCF型寄存器的ADCnSC位設定。
2.3.1 轉換啟動方式
對于ADC0,模/數轉換的啟動方法有4種,由ADC0CN型寄存器中的轉換啟動方式位AD0CMl/AD0CM0決定,這4種方式分別是給ADC0CN的AD0BUSY位寫1;定時器2的溢出;定時器3的溢出;檢測到外部ADC轉換啟動信號CNVSTR0的上跳沿。對于ADC1,模/數轉換的啟動方法有5種,由寄存器ADC1CN中的轉換啟動方式位AdlCM12-AD1CM0決定,這5種方式分別是給ADC1CN的AD1BUSY位寫l;定時器2的溢出;定時器3的溢出;檢測到外部ADC轉換啟動信號CNVSTR的上跳沿;給ADC0CN的AD0BUSY位寫1。
在模/數轉換過程中,ADnBUSY位被置1,轉換結束后,該位被清零,如果允許中斷,ADnBUSY信號的下降沿將觸發中斷,并置位ADnINT的中斷標志位ADCnON.5。在單端方式,模/數轉換的結果數據存放在ADCnH和ADCnL中;在差分方式,模/數轉換的結果數據是ADC0與ADC1之和,存放在ADC0H和ADC0L中。當用給ADC0CN的AD0BUSY位寫1的方法啟動模/數轉換時,應該查詢ADnINT位,以便確定模/數轉換何時完成,建議查詢步驟為給ADnINT寫0;給ADnBUSY寫1;查詢ADnINT位是否為l;處理ADC數據,當在差分方式且以外部信號啟動模/數轉換時,應將引腳CNVSTR0和引腳CNVSTR1連接起來。
2.3.2 采樣保持方式
模/數轉換的采樣保持方式由ADCnCN型寄存器的ADCnTM位控制,一旦ADCn被啟動,其輸入將被連續采樣,而這時轉換尚未開始,當AdnTM位為1,轉換開始進行,一個采樣周期由18個SAR時鐘組成。當用CNVSTRn信號啟動轉換時,ADC一直采樣,直到引腳CNVSTRn上出現一個上跳沿為止。將AdnTM位置為1,就能保證在模擬輸入端接外部多路選擇器時,滿足必要的建立時間。
2.3.3 建立時間
如果ADC的輸入為高速快變信號,如外部多路選擇器的切換或其他跳變信號,則在進行轉換之前需要一個最小跟隨時間,這個時間取決于ADC的輸入電阻,采樣電容,外部等效電阻及所期望的轉換精度,等效時間常數對單端輸入和差分輸入都是一樣的,給定精度所需要的建立時間可由下式來估算:
其中A為所需精度,取LSB的小數部分;t為所需的建立時間(秒);n為ADC的位數
(16);RT為ADC的輸入電阻和外部等效電阻的總和;Cs為采樣電容。
2.4 校準
模/數轉換器在生產廠已經通過非線性、零點偏移和增益誤差校準,但也能在系統中單獨對ADC0和ADC1的這些參數分別進行校準。校準是通過ADC0型和ADC1型配置寄存器的相應位來進行的,校準參數可用ADC校準指示寄存器(ADC0CPT)和ADC校準參數寄存器(ADC0CCF)讀寫,ADC0CFF的CPTR位用于ADC0CCF讀寫特定的校準參數。
一般情況下,不必再進行非線性校正,若要進行這種校正,將ADCnLCAL位置1即可啟動,校正完成后,由硬件對ADCnLCAL位置0 ,校正參數存放在修正單元中。進行零點和增益校準時,可以使用內部或外部的電壓源作為校準源,由ADCnSCAL位來設定。為了保證精度,建議先進行零點校準,后進行增益校準,零點校準可由ADCnOCAL位的置1采啟動,校準完成后,由硬件對ADCnOCAL位置0,零點校準可以補償的偏移誤差為滿量程的±3.125%,偏移值在ADC的數字化之前加到AINnG輸入中;增益校準可通過將ADCnGCAL位的置l來啟動,校準完成后,由硬件對ADCnGCAL位置0,增益校準可以補償的非線性誤差約為±3.125%,增益值加到ADC的VREF通路中,用以改變轉換器傳遞函數的斜率。
2.5 可編程窗口檢測器
ADC0有一個可編程窗口檢測器,它能連續地將ADC0的輸出與用戶設定的限位值進行比較,并監測系統的超值條件是否滿足。這一點在中斷觸發系統中特別有用,既可以節約代碼空間和CPU的占用帶寬,又能提供快速的響應時間。窗口檢測器的中斷標志也可用于查詢方式,該標志即特殊功能寄存器(ADC0CN)中的AD0INT位。參考字的高低字節被分別裝入ADC下限(大于)和上限(小于)寄存器(ADC0GTH/ADC0GTL和ADC0LTH/ADC0LTL)中。單端和差分方式都可以使用窗口檢測器,在單端方式中,窗口檢測器對寄存器(ADC0GTx/ADC0LTx)與ADC0的輸出進行比較,而差分方式是將ADC0和ADC1的組合輸出用于比較。應該注意,窗口檢測器標志可以在監測到數據落在設定的限位值之內或之外時置位或復位,這取決于對寄存器(ADC0GTx和ADC0LTx)的編程。
3 應用舉例
圖2所示是一個微型彈簧自動測試分選系統的原理框圖,單片機(C8051F060)是該系統的控制中心,通過12位DAC的輸出產生一個直流電壓,送到加力器,加力器將使彈簧產生變形位移,由位移傳感器測出位移量,傳感器的輸出電壓送到Ain輸入端,經過16位A/D轉換得到位移量,根據物理學胡克定理公式:F=-kS,單片機即可計算出彈簧的彈性系數k值。圖中,LED陣列用于不同k值的指示,由于C8051F060型單片機有多達59個數字I/O口,所以,液晶顯示LCD接口。LED指示矩陣接口及鍵盤掃描接口等,均不需要太多的外擴電路,簡化了系統,提高了可靠性。
4 結束語
近年來,隨著大規模集成電路制造技術的不斷發展,混合信號單片機的模擬接口性能進一步提高,特別是ADC的功能更加完善,精度從10位、12位、直到16位甚至24位,但綜合考慮采樣速度等因素,C8051F06X系列單片機以16位精度和1 MS/s的采樣速度,以及其他靈活多樣的可配置功能,成為目前屈指可數的片上系統混合信號單片機。可以預見,該系列單片機必將在數據采集及智能化儀器儀表等方面得到廣泛的應用。 欲了解更多信息請登錄電子發燒友網(http://www.nxhydt.com)
評論
查看更多