如何使用外部模擬電壓控制數(shù)字電位器
本應(yīng)用筆記描述了使用外部模擬電壓改變數(shù)字電位器阻值的簡易方法。使用Microchip的PIC12F683型微控制器將模擬電壓轉(zhuǎn)換至控制數(shù)字電位器的I2C數(shù)據(jù)流。數(shù)字電位器DS1803作為本應(yīng)用中的示例器件,另外還用到極少數(shù)其他外部器件。這里介紹的方法適用于其他控制器輸入和其他數(shù)字電位器/可變電阻。
硬件配置
圖1顯示了使用PIC12F683的控制電路原理圖。微控制器6個(gè)GPIO中的4個(gè)用于控制SDA、SCL的輸出信號(hào)、單個(gè)LED,并接收一路模擬輸入。
GP5、GP4和GP0分別分配至信號(hào)輸出SDA、SCL和LED。SDA和SCL具有4.7kΩ上拉電阻至VDD,直接連接至DS1803的SDA和SCL引腳。微控制器的GP1 IO分配為模擬輸入引腳。通過跳線可選擇地址引腳、分離共用的VCC (VDD)、隔離SDA和SCL。
圖1. 模擬電壓控制數(shù)字電位器的原理圖
工程固件
本工程的固件在MPLAB IDE (7.40版本)環(huán)境下,由匯編語言編寫。此編譯工具目前由Microchip免費(fèi)提供。全部程序僅占用小于450字節(jié)的程序空間(Flash)和8字節(jié)的數(shù)據(jù)空間(RAM)。
程序首先初始化PIC的多個(gè)配置位,包括ADC和內(nèi)部振蕩器。程序配置ADC為從GP1輸入,并設(shè)置轉(zhuǎn)換時(shí)鐘為使用內(nèi)部125kHz振蕩器。
固件運(yùn)行一個(gè)循環(huán):ADC持續(xù)轉(zhuǎn)換模擬輸入端的電壓,一旦轉(zhuǎn)換完畢,10位ADC輸出的高8位作為數(shù)據(jù)字節(jié),傳送至I2C總線。此I2C信號(hào)用于控制DS1803。程序設(shè)置為一同控制DS1803的2個(gè)電位器;但通過改變固件,可以實(shí)現(xiàn)由PIC12F683的2個(gè)不同的模擬輸入獨(dú)立的控制2個(gè)數(shù)字電位器。
多種功能
程序允許用戶通過改變PIC12F683 GP1輸入端的電壓,控制數(shù)字電位器。GP1端電壓的持續(xù)變化會(huì)引起數(shù)字電位器電阻的相應(yīng)變化。輸出電阻(ROUT)可以看作是輸入電壓的函數(shù)。
設(shè)計(jì)中使用的DS1803端到端電阻為:50kΩ
VCC的允許范圍:2.7V至5V
輸入電壓變化范圍為0V至VCC
輸出電阻將會(huì)遵循:
ROUT (kΩ) = (50/VCC (kΩ)) × 輸入電壓
ADC運(yùn)行期間,LED不斷閃爍。如果I2C出現(xiàn)故障,LED保持常亮。一旦故障排除, LED繼續(xù)正常工作。設(shè)計(jì)者可通過檢查器件地址是否正確、I2C總線是否連接,排除系統(tǒng)的故障。
此設(shè)計(jì)非常通用,類似的方法可以用在多個(gè)系統(tǒng)。一些實(shí)例包括:
非線性傳遞函數(shù)(如,伽馬校準(zhǔn))可以使用可變電阻DS3906結(jié)合
上拉電阻相關(guān)文章:上拉電阻原理
評(píng)論