基于Verilog HDL數(shù)字電位器ADN2850的串口控制
摘要:數(shù)字電位器由于可調(diào)精度高,更穩(wěn)定,定位更準(zhǔn)確,操作更方便,數(shù)據(jù)可長期保存和隨時刷新等優(yōu)點,在某些場合具有模擬電位器不可比擬的優(yōu)勢。論述對數(shù)字電位器ADN2850的一種方便的控制方法,通過計算機上的串口直接對ADN2850進行寫入和控制。該方法簡潔、高效,明顯提高了調(diào)試效率。給出用Verilog HDL實現(xiàn)該方法的關(guān)鍵程序,該程序已經(jīng)通過前仿真和板級調(diào)試,達到了預(yù)期的效果。
關(guān)鍵詞:數(shù)字電位器;SPI;ADN2850串口;Verilog HDL
0 引 言
數(shù)字電位器是利用微電子技術(shù)制成的集成電路,它是依靠電阻陣列和多路模擬開關(guān)的組合完成阻值的變化。它沒有可動的滑臂,而通過按鈕輸入信號,或是通過數(shù)字輸入信號改變數(shù)字電位器的阻值。數(shù)字電位器由于可調(diào)精度高,更穩(wěn)定,定位更準(zhǔn)確,操作更方便,數(shù)據(jù)可長期保存和隨時刷新等優(yōu)點,在某些場合具有模擬電位器不可比擬的優(yōu)勢。
1 ADN2850的基本結(jié)構(gòu)和工作原理
ADN2850是ADI公司的雙通道,1 024階非易失性數(shù)字電位器。溫度系數(shù)僅為35 ppm/℃。其功能模塊圖如圖1所示。它的輸出電阻W和B之間的阻值主要由中間寄存器RDAC中存儲的值決定。RDAC的值可以由外部指令直接賦予或者從內(nèi)部非易失性存儲器E2MEM中載入。E2MEM中的值可以被修改或者被保護。當(dāng)RDAC中的值被改變后,新的值也可以被存入E2MEM中。之后,新的值將在系統(tǒng)重新上電后自動加載到RDAC中。
賬 ADN2850的指令系統(tǒng)包含16種模式,通過一個標(biāo)準(zhǔn)SPI串行接口傳送24位命令字決定,高位在先。24位命令字的前4位是命令,接下來4位是地址,后面16位是數(shù)據(jù)。這些指令可以用于RDAC的值的寫入,E2MEM值的改寫與復(fù)原,電阻值的回讀等。
2 SPI接口簡介
SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用4根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間。正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。
SPI的通信以主從方式工作,這種模式通常有1個主設(shè)備和1個或多個從設(shè)備,一般需要4根線,事實上3根也可以(單向傳輸時)。其也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCLK(時鐘),CS(片選)。由SCLK提供時鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過SDO線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成1位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為1次),就可以完成8位數(shù)據(jù)的傳輸。ADN2850的SPI接口的4根引腳線分別是SDI,SDO,CLK,CS。
這里利用FPGA對SPI接口進行配置。為了方便對輸入SPI的指令的隨時改變,而不需要程序的重復(fù)寫入,24位指令通過串口輸入到FPGA。串口通信由微機上的串口調(diào)試助手協(xié)助進行。由于少了重新寫入程序的時間,從而調(diào)試速度和效率明顯增高。
3 串口簡介
串口是計算機上一種通用的設(shè)備通信的協(xié)議,可以用于獲取遠程采集設(shè)備的數(shù)據(jù)。
串口按位(b)發(fā)送和接收字節(jié)。通信使用3根線完成:地線、發(fā)送、接收功能。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗位。波特率是衡量通信速度的參數(shù),它表示每秒鐘傳送的bit的個數(shù)。數(shù)據(jù)位則是衡量通信中實際數(shù)據(jù)位的參數(shù)。停止位一般是為了平衡兩個系統(tǒng)的時鐘而在實際數(shù)據(jù)位結(jié)束后傳送的。奇偶校驗位是串口通信中檢錯的一種方式,沒有校驗位也可以。整個系統(tǒng)的連接框圖如圖2所示。
4 ADN2850的串口控制
用串口控制ADN2850的流程圖如圖3所示。一旦有指令從串口發(fā)送,就重新經(jīng)FPGA后寫入ADN2850。
評論