C8051F020中的ADC應用要素
摘要:歸納SOC型芯片C8051F020中模數轉換部分的應用要素,包括精度與通道、速率與啟動(dòng)、基準與增益、數據與控制,提出編程及相關(guān)SFR的操作順序。 關(guān)鍵詞:片上系統(SOC) A/D轉換(ADC) 特殊功能寄存器(SFR) C8051F020(簡(jiǎn)稱(chēng)F020)是美國德州Cygnal公司推出的一種混合信號SOC型8位單片機。它屬于C8051F系列中的F02x子系列。其性能價(jià)格比在目前應用領(lǐng)域極具競爭力。F020具有8路12位A/D轉換(簡(jiǎn)稱(chēng)ADC)接口和8路8位在線(xiàn)可編程(ISP)的ADC電路,片上的特殊功能寄存器(簡(jiǎn)稱(chēng)SFR)有15個(gè)與ADC的控制相關(guān),它們是: AMUX0SL——AMUX0通道選擇寄存器,復位值為00000000; MAX0CF——AMUX0配置寄存器,復位值為00000000; ADC0CF——ADC0配置寄存器,復位值為11111000; ADC0CN——ADC0控制寄存器,復位值為00000000; ADC0H——ADC0數據字MSB寄存器,復位值為00000000; ADC0L——ADC0數據字LSB寄存器,復位值為00000000; ADC0GTH——ADC0下限數據高字節寄存器,復位值為11111111; ADC0GTL——ADC0下限數據低字節寄存器,復位值為11111111; ADC0LTH——ADC0上限數據高字節寄存器,復位值為00000000; ADC0LTL——ADC0上限數據低字節寄存器,復位值為00000000; AMX1SL——AMUX1通道選擇寄存器,復位值為00000000; ADC1CN——ADC1控制寄存器,復位值為00000000; ADC1CF——ADC1配置寄存器,復位值為11111000; ADC1——ADC1數據字寄存器,復位值為00000000; REF0CN——基準電壓控制寄存器,復位值為00000000。 ADC是混合信號控制器的重要功能,如欲在應用編程中得心應手,就必須對其相關(guān)的要素有較清晰的整體認識。 1 ADC的精度與通道 F020采用TQFP100封裝,芯片引腳有8個(gè)(引腳18~25)專(zhuān)用于模擬輸入,是8路12位ADC的輸入端。每路12位的轉換精度都是其自身的%26;#177;1LSB(最低位)。實(shí)際上,對于12位逐次逼近寄存器型(SAR)ADC只有1個(gè),在它與各輸入端之間有1個(gè)具有9通道輸入的多路選擇開(kāi)關(guān)(可配置模擬多路開(kāi)關(guān)AMUX)。AMUX的第9通道連接溫度傳感器。在F020中,12位ADC稱(chēng)為ADC0,另有8路8位在系統可編程(ISP)的ADC電路稱(chēng)為ADC1。其8個(gè)外接引腳與P1口復用,片內結構與ADC0相近,只是轉換的位數為8位,轉換精度為8位的%26;#177;1LSB。 ADC0端口的每一對均可用編程設置成為分別地單端輸入或差分輸入。差分輸入時(shí)的端口配對為0-1、2-3、4-5、6-7,此設置由通道選擇寄存器 AMUX0SL的低4位和通道配置寄存器AMUX0CF的低4位確定。在A(yíng)MX0CF中,位3~0各對應2個(gè)引腳通道。位值=0,表示是獨立的單端輸入(復位值均為單端輸入);位值=1,表示是差分輸入對。對應AMX0CF選差分輸入時(shí),AMUX0SL中只有在選雙數(含0)通道時(shí)才有效(注:AMUX0SL低4位為1xxx時(shí),不論AMX0CF低4位為何值,均選溫度傳感器)。 將REF0CN的位3置“1”時(shí),允許使用溫度傳感器;置“0”時(shí),溫度傳感器的輸出為高阻態(tài)。溫度傳感器的值可用于修正參數的非線(xiàn)性或記錄、調整與溫度相關(guān)的數據。 2 ADC的速率與啟動(dòng) C8051F系列單片機中ADC的速率都是可用編程設置的,但最少要用16個(gè)系統時(shí)鐘。一般在轉換之前還自動(dòng)加上3個(gè)系統時(shí)鐘的跟蹤/保持捕獲時(shí)間(>1.5μs)。設置F020內ADC速率的方法是通過(guò)配置寄存器ADCxCF(x為0或1)的位7~3來(lái)進(jìn)行的,其復位值為11111(位 7~3=SYSCLK/CLK SAR-1)。 一般在啟動(dòng)ADC之前都要處于跟蹤方式,控制寄存器ADCxCN的位6如果為“0”,則一直處于跟蹤方式(此時(shí)啟動(dòng)4種啟動(dòng)方式都可比跟蹤啟動(dòng)快3個(gè)系統時(shí)鐘);如為“1”,則有4種跟蹤啟動(dòng)方式可選擇,即對ADCxCN中的位3~2賦值:00為向ADBUSY寫(xiě)1時(shí)跟蹤(軟件命令);01為定時(shí)器3溢出跟蹤;10為CNVSTR上升沿跟蹤(外部信號);11為定時(shí)器2溢出跟蹤。 復位時(shí),ADCxCN的位7為0,處于關(guān)斷狀態(tài)。每次轉換結束時(shí),ADCxCN的位5為“1”,位4(忙標志)的下降沿觸發(fā)結構中斷,也可用軟件查詢(xún)這些狀態(tài)位。 3 ADC的基準與增益 F020的片內有1個(gè)1.2V、15%26;#215;10 -6/℃的帶隙電壓基準發(fā)生器和1個(gè)兩倍增益的輸出緩沖器。2.4V的基準電壓(VREF)可通過(guò)外引腳分別接入ADC0、ADC1和DAC中。VREF 對外帶載能力為200μA(建議在驅動(dòng)外部負載時(shí),對地接1個(gè)負載電阻)。ADC使用偏置時(shí),必須將參考源控制寄存器REFcCN中的位1置“1”;如果 “0”,則關(guān)閉內部偏壓,此時(shí)可通過(guò)VREF引腳(引腳12)使用外部基準電壓,外部基準電壓必須小于VAV%26;#177;0.3V(還要大于 1V)。不用ADC,也不用DAC時(shí),可將REFxCN的位0置“0”,使緩沖放大器處于省電方式(輸出為高阻態(tài))。 設置REF0CN的位4為“0”時(shí),ADC0用VREF偏置,為“1”時(shí),用DAC0輸出偏置;設置REF0CN的位3為“0”時(shí),ADC1用VREF偏置,為“1”時(shí),用AV+偏置。 在F020的ADC電路中,輸入多路選擇開(kāi)關(guān)AMUX后面都帶有1個(gè)可用編程設置增益的內部放大器(PGA)。當各模擬通道之間輸入的電壓信號范圍差距較大時(shí),或需要放大一個(gè)具有較大直流偏移的信號時(shí)(在差分輸入方式,DAC可用于提供直流偏移)顯得尤為有用。設置的方式是配置ADCxCF中的位 2~0(000對應PGA的增益為1;001對應為2;010對應為4;011對應為8;10x對應為16、11x對應為0.5)。這里的增益對溫度傳感器信號也起作用。當增益為1時(shí),VTEMP=0.002 86(V/℃)(TEMPC) ℃+0.776V。 4 ADC的數據與控制 對應單端輸入,ADC結果數據字格式為:0V——0000,VREF——0FFF或FFF0。 對應差分輸入,ADC結果數據字格式為2的補碼:VREF——07FF,0——0000,-VREF——F800或8000。 將ADCxCN的位0置“0”可使結果右對齊;置“1”可使結果左對齊。當差分輸入時(shí),右對齊產(chǎn)生的多余高位是符號擴展位。 C8051F系列單片機內還設有數據相關(guān)窗口中斷發(fā)生器或稱(chēng)可編程窗口檢測器,也叫ADC上(下)限數據寄存器ADC0G(L)TH(L),用后臺方式監視一個(gè)關(guān)鍵電壓。當轉換數據位于規定的窗口之內(或之外)時(shí),向控制器申請轉換結束中斷。要求在窗口之內中斷時(shí),上限寄存器LT裝入高位窗口數,下限寄存器GT裝入低位窗口數;若要求在窗口之外中斷時(shí),則在下限寄存器GT中裝入高位窗口數,在上限寄存器LT中裝入下限窗口數。 復位時(shí),ADC部分的狀態(tài)為:內部電壓基準緩沖器關(guān)閉、內部偏壓關(guān)閉、內部傳感器關(guān)閉、ADC禁止、轉換結果數據寄存器右對齊、12位的端口均為單端輸入、端口指向AIN0、SAR轉換33個(gè)系統時(shí)鐘、內部放大器增益為1、下限數據寄存器為FFFFH、上限數據寄存器為0000H。 綜合F020中與ADC相關(guān)的各要素,要想正確應用ADC功能,應按下列順序編程:設置參考電壓>設置允許ADC>設置跟蹤(啟動(dòng))方式>設定數據對齊>配置通道>選擇通道>設置轉換時(shí)鐘和增益>設定窗口檢測上、下限>啟動(dòng)轉換。操作SFR的順序(以12位為例)為:REF0CH>ADC0CN>AMX0C>AMUX0SL>ADC0CF>ADC0GTH>ADC0GTL>ADC0LTH>ADC0LTL>ADC0CN 或其它啟動(dòng)方式。
本文引用地址:http://dyxdggzs.com/article/201610/307463.htm
評論