用COP820CJ實現(xiàn)可變輸入范圍的PWM A/D轉換
關鍵詞:PWM,A/D,計數(shù)
1 COP820CJ芯片介紹
COP820CJ是美國國家半導體公司的一款8位單片機,其主要數(shù)據(jù)有:64字節(jié)RAM,1K字節(jié)ROM,24個I/O口,時鐘頻率10MHz,工作電壓2.5V~6.0V。主要特性有:多輸入喚醒機制(MIWU),低壓復位的保護機制,片上模擬比較器,低電磁輻射設計,I/O口可編程為三態(tài)、推挽輸出、弱上拉輸入等。下面僅就將要涉及的部分加以介紹。
COP820CJ的端口分為L/I/D/G四類。其中I口為4位輸入端口,D口為4位輸出端口,G口有6位I/O口和2位輸入口,L口為8位I/O口。L口也是芯片的喚醒端口,其中,L1和L2又是比較器輸入口,L3又是比較器輸出口。L口配有數(shù)據(jù)寄存器(LDATA〔0DOH〕)和配置寄存器(LCONF〔0D1H〕),兩寄存器共同決定該端口的狀態(tài)。具體關系見表1。
COP820CJ的片上RAM、端口、寄存器均映射到00H~FEH的數(shù)據(jù)內(nèi)存空間,其中C0~CFH段主要是喚醒及看門狗控制寄存器,D0~DFH段有8個端口類寄存器,E0~EFH段為計時器和系統(tǒng)寄存器。00~2FH及F0~FFH為RAM地址。其中,F(xiàn)0~FEH段可用作寄存器,并包括B地址寄存器〔FCH〕、X地址寄存器〔FEH〕和SP堆棧指針〔FDH〕三個專用寄存器。
2 工作原理
2.1 基本原理
利用COP820CJ芯片上的模擬比較器和脈沖寬度調(diào)制方式,可以構成由軟件調(diào)控的可變輸入范圍的A/D轉換器。原理圖見圖1。圖中,L1和L2為比較器輸入端,如電容電壓小于輸入電壓,L3端輸出高脈沖,反之,L3輸出低脈沖,并對低脈沖減1計數(shù)。輸入電壓可通過L1、L2之間并聯(lián)的兩個背向二極管對電容C1快速充放電,使兩者電位迅速接近。
比較器允許的輸入電壓為0.4V~1.5V(此時電容電壓與充電、放電時間之間為近似線性關系),實際輸入電壓范圍可能要更小一些。因此,我們可以通過設定高低脈沖的參數(shù),使電容電壓始終保持在測量范圍內(nèi)。設電源為5V,時鐘頻率為10MHz,脈沖周期為24個時鐘,即2.4微秒,輸入電壓范圍是
VIN=VL+(VH-VL)×(TON/TOTAL)其中,TON為計數(shù)器的值,TOTAL為總脈沖數(shù)。
2.2 轉換時間及分辨率
由上可知,脈沖周期為2.4微秒,如脈沖總數(shù)選為100,進行兩次計數(shù),則轉換時間近似為2.4×100×2=480微秒。如輸入為高速變化信號,只需減少脈沖總數(shù)即可。如脈沖總數(shù)為100,輸入電壓為1.0~3.3V,則分辨率為23mV。為提高分辨率,可先對輸入信號進行粗測,然后調(diào)整高低脈沖的占空比,使對應電壓略超出測量結果的上下限值,這樣可以獲得更高的分辨率。
3 軟件設計
3.1 流程圖
流程圖見圖2。
3.2 相關信息
控制寄存器2(CNTRL2〔CCH〕)的第三位是比較器允許位,第四位為比較器輸出。X指令為交換兩寄存器中的數(shù)據(jù)。SBIT(RBIT)i,n指令為將n寄存器的第i位置1(0)。IFBITi,n指令在n寄存器的第i位為1時執(zhí)行下一條指令,否則跳過。DRSZn指令先將寄存器n的值減1,如結果非零,則執(zhí)行下一條指令,否則跳過。
要保證脈沖周期為24個時鐘,必須精確計算
SBIT/RBIT/IFBIT(對B,X寄存器操作時):1個時鐘;
DRSZ/JP:3個時鐘。
3.3 匯編代碼
參考文獻
pwm相關文章:pwm原理
評論