用COP820CJ實(shí)現可變輸入范圍的PWM A/D轉換
關(guān)鍵詞:PWM,A/D,計數
1 COP820CJ芯片介紹
COP820CJ是美國國家半導體公司的一款8位單片機,其主要數據有:64字節RAM,1K字節ROM,24個(gè)I/O口,時(shí)鐘頻率10MHz,工作電壓2.5V~6.0V。主要特性有:多輸入喚醒機制(MIWU),低壓復位的保護機制,片上模擬比較器,低電磁輻射設計,I/O口可編程為三態(tài)、推挽輸出、弱上拉輸入等。下面僅就將要涉及的部分加以介紹。
COP820CJ的端口分為L(cháng)/I/D/G四類(lèi)。其中I口為4位輸入端口,D口為4位輸出端口,G口有6位I/O口和2位輸入口,L口為8位I/O口。L口也是芯片的喚醒端口,其中,L1和L2又是比較器輸入口,L3又是比較器輸出口。L口配有數據寄存器(LDATA〔0DOH〕)和配置寄存器(LCONF〔0D1H〕),兩寄存器共同決定該端口的狀態(tài)。具體關(guān)系見(jiàn)表1。
COP820CJ的片上RAM、端口、寄存器均映射到00H~FEH的數據內存空間,其中C0~CFH段主要是喚醒及看門(mén)狗控制寄存器,D0~DFH段有8個(gè)端口類(lèi)寄存器,E0~EFH段為計時(shí)器和系統寄存器。00~2FH及F0~FFH為RAM地址。其中,F0~FEH段可用作寄存器,并包括B地址寄存器〔FCH〕、X地址寄存器〔FEH〕和SP堆棧指針〔FDH〕三個(gè)專(zhuān)用寄存器。
2 工作原理
2.1 基本原理
利用COP820CJ芯片上的模擬比較器和脈沖寬度調制方式,可以構成由軟件調控的可變輸入范圍的A/D轉換器。原理圖見(jiàn)圖1。圖中,L1和L2為比較器輸入端,如電容電壓小于輸入電壓,L3端輸出高脈沖,反之,L3輸出低脈沖,并對低脈沖減1計數。輸入電壓可通過(guò)L1、L2之間并聯(lián)的兩個(gè)背向二極管對電容C1快速充放電,使兩者電位迅速接近。
比較器允許的輸入電壓為0.4V~1.5V(此時(shí)電容電壓與充電、放電時(shí)間之間為近似線(xiàn)性關(guān)系),實(shí)際輸入電壓范圍可能要更小一些。因此,我們可以通過(guò)設定高低脈沖的參數,使電容電壓始終保持在測量范圍內。設電源為5V,時(shí)鐘頻率為10MHz,脈沖周期為24個(gè)時(shí)鐘,即2.4微秒,輸入電壓范圍是

VIN=VL+(VH-VL)×(TON/TOTAL)其中,TON為計數器的值,TOTAL為總脈沖數。
2.2 轉換時(shí)間及分辨率
由上可知,脈沖周期為2.4微秒,如脈沖總數選為100,進(jìn)行兩次計數,則轉換時(shí)間近似為2.4×100×2=480微秒。如輸入為高速變化信號,只需減少脈沖總數即可。如脈沖總數為100,輸入電壓為1.0~3.3V,則分辨率為23mV。為提高分辨率,可先對輸入信號進(jìn)行粗測,然后調整高低脈沖的占空比,使對應電壓略超出測量結果的上下限值,這樣可以獲得更高的分辨率。
3 軟件設計
3.1 流程圖
流程圖見(jiàn)圖2。
3.2 相關(guān)信息
控制寄存器2(CNTRL2〔CCH〕)的第三位是比較器允許位,第四位為比較器輸出。X指令為交換兩寄存器中的數據。SBIT(RBIT)i,n指令為將n寄存器的第i位置1(0)。IFBITi,n指令在n寄存器的第i位為1時(shí)執行下一條指令,否則跳過(guò)。DRSZn指令先將寄存器n的值減1,如結果非零,則執行下一條指令,否則跳過(guò)。
要保證脈沖周期為24個(gè)時(shí)鐘,必須精確計算


SBIT/RBIT/IFBIT(對B,X寄存器操作時(shí)):1個(gè)時(shí)鐘;
DRSZ/JP:3個(gè)時(shí)鐘。
3.3 匯編代碼




參考文獻
pwm相關(guān)文章:pwm原理
評論