1 引言 TLC2543是TI公司的12位串行模數轉換器,使用開(kāi)關(guān)電容逐次逼近技術(shù)完成A/D轉換過(guò)程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 2 TLC2543的特點(diǎn) (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時(shí)間; (3)11個(gè)模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線(xiàn)性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長(cháng)度。 3 TLC2543的引腳排列及說(shuō)明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說(shuō)明見(jiàn)表1。 圖1TLC2543的封裝 表1TLC2543引腳說(shuō)明 4 接口時(shí)序 可以用四種傳輸方法使TLC2543得到全12位分辯率,每次轉換和數據傳遞可以使用12或16個(gè)時(shí)鐘周期。 一個(gè)片選()脈沖要插到每次轉換的開(kāi)始處,或是在轉換時(shí)序的開(kāi)始處變化一次后保持為低,直到時(shí)序結束。 圖2顯示每次轉換和數據傳遞使用16個(gè)時(shí)鐘周期和在每次傳遞周期之間插入的時(shí)序,圖3顯示每次轉換和數據傳遞使用16個(gè)時(shí)鐘周期,僅在每次轉換序列開(kāi)始處插入一次時(shí)序。 圖216時(shí)鐘傳送時(shí)序圖(使用,MSB在前) 圖316時(shí)鐘傳送時(shí)序圖(不使用,MSB在前) 5TLC2543在智能儀器儀表中的應用 TLC2543是12位分辯率,與MAX186在功能上基本相同,但價(jià)格比MAX186低得多,因此TLC2543在便攜式數據記錄儀、醫用儀器、電力檢測儀表中具有廣泛的應用。下面主要講述TLC2543在電力監控顯示屏中的應用。 在電廠(chǎng)和變電站中,電網(wǎng)中的電壓和電流由于多種原因常常處于波動(dòng)狀態(tài),為了給工作人員提供有效數據,并在超值范圍內采取有效措施,監測電網(wǎng)中電壓和電流值是非常必要的。該系統主要是采用TLC2543作A/D轉換器,把電壓和電流值轉換成數字信號,GMS90C32作CPU,進(jìn)行數字信號處理,PS7219作LED顯示驅動(dòng)器,把監測的電壓和電流值顯示出來(lái),本文主要介紹TLC2543在電力監控顯示屏中與單片機GMS90C32的接口部分,包括硬件和軟件兩部分。 5.1 硬件 GMS90C××和GMS97C××系列是LGS公司的51系列單片機,這類(lèi)單片機都不帶SPI或相同的接口能力,為了和TLC2543模數轉換器接口,需要用軟件來(lái)模擬SPI的時(shí)序操作。圖4是TLC2543和GMS90C××或GMS97C××的接口簡(jiǎn)圖,TLC2543的I/O時(shí)鐘、數據輸入、片選由并行雙向I/O口1的引腳P1.0、P1.1、P1.3提供。TLC2543的轉換結果數據通過(guò)口1的P1.2腳接收,通道選擇和方式數據通過(guò)口3輸入到微控制器。 圖4TLC2543和GMS90C32接口 在設計制作時(shí)要注意如下 三個(gè)問(wèn)題: (1)電源去耦 當使用TLC2543這種12位A/D器件時(shí),每個(gè)模擬IC的電源端必須用一個(gè)0.1μF的陶瓷電容連接到地,用作去耦電容。在噪聲影響較大的環(huán)境中,建議每個(gè)電源和陶瓷電容端并一個(gè)10μF的鉭電容,這樣能夠減小噪聲的影響。 (2)接地 對模擬器件和數字器件,電源的地線(xiàn)回路必須分開(kāi),以防止數字部分的噪聲電流通過(guò)模擬地回路引入,產(chǎn)生噪聲電壓,從而對模擬信號產(chǎn)生干擾。所有的地線(xiàn)回路都有一定的阻抗,因此地線(xiàn)要盡可能寬或用地線(xiàn)平面,以減小阻抗,連線(xiàn)應當盡可能短,如果使用開(kāi)關(guān)電源,則開(kāi)關(guān)電源要遠離模擬器件。 (3)電路板布線(xiàn) 使用TLC2543時(shí)一定要注意電路板的布線(xiàn),電路板的布線(xiàn)要確保數字信號和模擬信號隔開(kāi),模擬線(xiàn)和數字線(xiàn)特別是時(shí)鐘信號線(xiàn)不能互相平行,也不能在TLC2543芯片下面布數字信號線(xiàn)。 5.2 軟件 包括主程序和兩個(gè)子程序“SET1”、“SET2”。主程序定義口1的I/O引腳方向:P1.2設置為輸入端,P1.0、P1.1和P1.3設置為輸出端。設定P1.3使TLC2543片選端為高,“SET1”被調用,這個(gè)子程序模擬SPI操作,在TLC2543和微控制器間交換數據。檢測最低位前導(LSBF)標志,即通道選擇/方式數據字節的位1,以決定轉換結果的哪個(gè)字節最先傳送,子程序“SET2”用于映射相應于所選擇的特定通道的MSBYTE和LSBYTE到偶數或奇數的RAM地址。 程序清單如下: ORG2000H BEGIN:MOVSP,#50H;設置堆棧指針 MOVP1,#04H;定義口1的輸入和輸出 CLRP1.0;清I/O時(shí)鐘 SETBP1.3;設置片選 為高 MOVA,#0FFH ACALLSET1;調SET1子程序 ACALLSET2;調SET2子程序 JMPBEGIN;轉到BEGIN SET1:MOVR4,P3;讀方式/通道數據 MOVA,R4 CLRP1.3;設置片選為低 JBACC.1,LSB;如果A的位1為1,則先傳送低字節 MSB:MOVR5,#08H;設置高4位計數器 LOP1:MOVC,P1.2;讀轉換結果 RLCA;A寄存器的內容左移 MOVP1.1,C;輸出方式/通道字節 SETBP1.0;設置I/O時(shí)鐘為高 CLRP1.0;設置I/O時(shí)鐘為低 DJNZR5,LOP1;不為0則返回LOP1 MOVR2,A;把高字節放到R2 MOVA,R4;把方式/通道控制字放到R2 JBACC.1,RETURN LSB:MOVR5,#08H;設置低字節計數器 LOP2:MOVC,P1.2;讀轉換數據到C RLCA;A的內容到C MOVP1.1,C;輸出方式/通道字節 SETBP1.0;設置時(shí)鐘為高 CLRP1.0;設置時(shí)鐘為低 DJNZR5,LOP2;R5不為0,則返回LOP2 MOVR3,A;把低字節反放到R3 MOVA,R4;把方式/通道控制字放到R3 JBACC.1,MSB;如果R4的位1為1,則傳送高字節 RETURN:RET SET2:MOVA,R4;讀方式/通道控制字 ANLA,#0F0H;保留通道控制字 SWAPA;A寄存器中的高4和低4位交換 MOVB,#02H MULA,B;A和B相乘 ADDA,#030H;A的內容再加30H MOVR1,A MOVA,R2 MOV@R1,A;把高字節的內容放到對應地址中 INCR1 MOVA,R3 MOV@R1,A;把低字節的內容放到對應地址中 RET END |