【導讀】使用電位器可以很方便在信號源的驅動下形成一個幅值可以調節(jié)的交流信號源。這比起使用通常的可編程直流電源,或者DAC輸出電壓來說,輸出的是幅度可以變的交流信號源,可以用于很多的自動測量環(huán)節(jié)。
01緣起
1.為什么討論電子電位器?
為什么要討論使用一個 DAC[1]來作為一個電位器呢?這里面主要原因如下:
● 使用電位器可以很方便在信號源的驅動下形成一個幅值可以調節(jié)的交流信號源。這比起使用通常的可編程直流電源,或者DAC輸出電壓來說,輸出的是幅度可以變的交流信號源,可以用于很多的自動測量環(huán)節(jié)。
● 為什么不直接使用 機械電位器[2]來改變信號源的幅值呢?還是一個原因,那就是自動可編程改變信號的幅值。
● 現(xiàn)在有數(shù)字電位器,比如 X9C102,X9C103,X9C104[3],AD5272等,為什么不使用它們來實現(xiàn)對交流信號源進行幅值改變呢?這里面一個主要原因就是器件的頻帶寬度[4](https://zhuoqing.blog.csdn.net/article/details/104134132 "X9C102,X9C103,X9C104"),AD5272等,為什么不使用它們來實現(xiàn)對交流信號源進行幅值改變呢?這里面一個主要原因就是器件的頻帶寬度[^4068]的問題。相比于機械電位器,這些電子電位器(變阻器)都具有相對較窄的工作頻帶寬度,對于高頻信號不適合。
2.為什么使用DAC做電位器?
● DAC用作電位器改變交流信號原理;
● 使用DAC來分壓交流信號的優(yōu)點是什么?
● 是否能夠克服前面數(shù)字電位器的頻帶過窄的問題?
寫這些話的時候,我還不知道具體答案,下面就通過實驗來驗證一下吧。
02實驗電路
最近,剛剛購買了幾片16bit的DAC芯片 DAC8830IDR[5](價格6.6),具有SPI接口,基于該DAC來驗證一下前面的思路的可行性。
1.實驗電路設計
由于DAC8830使用SPI接口來設置輸出電壓,使用STC8G1K(SOP16)作為控制器來完成對它的信號控制。
1)SCH [6]
▲ 原理圖設計
2)PCB
對于實驗原理圖進行LAYOUT,盡可以滿足單面PCB板制作的工藝要求??焖僦瓢嬷蟮玫綄膶嶒炿娐钒?。
▲ 實驗電路板的PCB設計
2.MCU軟件編程[7]
1) DA8830訪問子程序
使用STC8G的SPI端口對DA8830進行訪問。根據DA8830的SPI讀寫時序,相應的DAC8830寫入轉換(16bit)數(shù)據的子程序為:
void DAC8830Set(unsigned int nDAC) {
OFF(DAC8830_CS);
SPISendChar((unsigned char)(nDAC >> 8));
SPISendChar((unsigned char)nDAC);
ON(DAC8830_CS);
}
▲ DA8830的SPI讀寫時序
對應的DA8830的CS,SPK的波形為:
▲ 示波器觀察到DA8830的CS,CLK的波形
從上面波形可以看出,DAC8830Set()函數(shù)的執(zhí)行時間在STC8G1K17(35MHz)執(zhí)行中的時間大約為。
在靜態(tài)下,通過兩個電阻組成的參考電壓分壓電路,生成大約2.5V的參考電壓。實際測量電壓為:。
根據DA8830數(shù)據手冊,DAC8830的參考電壓輸入阻抗大約為:。因此,理論計算所得到的參考電壓為:
這個數(shù)值比起前面實際測量得到的要大,這說明對應的DA8830的參考電壓管腳的阻抗比起還要小。
為了便于測量數(shù)據波形,調用DA8830Set()函數(shù)中的輸入參數(shù)為。那么輸出電壓計算值應該為:
實際測量DA8830的輸出電壓為:。
2) 輸出電壓波形
▲ 每1ms寫入DAC8830遞增數(shù)據的CS,DI數(shù)據波形
寫入遞增的數(shù)據,輸出波形。
for(;;) {
WaitTime(1);
//----------------------------------------------------------------------
DAC8830Set(nShowCount);
nShowCount += 0x200;
//----------------------------------------------------------------------
}
此時Dout輸出遞增的鋸齒波形。
▲ 輸出遞增的鋸齒波形
03參考電壓與輸出信號
下面經過幾組實驗,來驗證DAC的參考電壓對于輸出信號的影響。
1.參考電壓的有效范圍
在DAC8830的數(shù)據手冊中,對于參考電壓的輸入范圍給定的是1.25V ~ Vpp。下面通過一組實驗來測試實際的有效輸入參考電壓范圍:
下面通過在某一給定的DAC8830的設置下,給定Vref,測量對應的實際輸出。將三種不同設置下的輸出電壓與參考電壓之間的關系繪制在一起。從圖中可以看到,實際上,DA8830的參考電壓對于輸出電壓的等比例的影響范圍是在整個的工作電壓(0~5V)之內都有效。
▲ 將三種不同設置下的參考電壓與輸出電壓繪制在一起
2.輸入交變的參考電壓
1)在Vref加入交流電壓波形
在Vref中加入100Hz左右正弦波,設置DAC8830轉換值為0x7fff,輸出的電壓波形如下圖所示??梢钥吹捷敵觯˙lue)的電壓波形等于Vref(Cyan)的一半。
▲ DAC8830的Dout(Cyan)與Vref(Blue)的波形
當設置為0xffff的時候,輸入的波形就與輸入一致了。
▲ DAC8830的Dout(Cyan)與Vref(Blue)的波形
2)輸入高頻方波波形
為了測試從Vref到Vout之間的頻帶寬度,在Vref中加入高頻方波信號,觀察輸出的Vout的信號。
▲ 加入高頻方波信號Vref(Blue)觀察輸出信號Vout(Cyan)
將波形再次展開,觀察輸出的過渡過程。
展開波形,對比輸入輸出波形,可以觀察到Vref到Vout之間的帶寬應該超過1MHz。按照DAC8830數(shù)據手冊上關于參考電壓 -3dB帶寬的參數(shù),典型值為1.3MHz。
▲ 加入高頻方波信號Vref(Blue)與輸出信號Vout(Cyan)波形
3.使用DAC對交流信號進行調幅
下面將固定的交流電壓(有直流分量,使得信號始終大于零)施加在Vref,測量Vout隨著DAC8830的設置值的變化情況。
施加的電壓頻率,幅值。
輸出電壓值如設置數(shù)值之間的關系為:
▲ 輸出電壓值與設置值之間的關系
可以看到整體上輸出與設置值之間的關系呈現(xiàn)非常好的線性關系。
注意到在曲線的一開始似乎有一些略微的非線性。下面重新采集設置值范圍在(0,0x3ff)范圍內的輸出電壓與設置值之間的關系曲線。
▲ 輸出電壓值與設置值之間的關系
可以看到在起始的時候,由于系統(tǒng)存在噪聲,使得輸出的電流電壓與設定值之間存在一定的非線性。當理論輸出電壓小于系統(tǒng)地線上的噪聲電壓時,使用交流萬用表測量得到的數(shù)值就會偏大。
下面重新對頻率為的信號測量輸出電壓與設定值之間的關系。結果與1kHz的情形相同。只是輸出整體的增益下降了。
▲ 輸出電壓值與設置值之間的關系
增益變化了9%左右。
4.信號超量程
當輸入信號的幅值超過DAC8830d的工作電壓,或者低于0V,輸出都會出現(xiàn)截止。
▲ 輸入信號超過+5V,低于0V的情況
結論
通過前面的實驗,可以看到,使用DAC8830來當做電位器獲得幅度可變的交流信號源是可行的。它具有很寬的信號帶寬,并且輸出信號的幅值與設置信號之間具有非常好的線性關系,只是在信號比較小的時候輸出會受到系統(tǒng)和芯片本身的噪聲影響。
當輸入信號超出了DAC8830的工作電壓,或者低于0V時,輸出信號都會截止。所以在使用的時候,需要通過一定的信號偏置的方式將交流信號平移到始終在0~5V(DAC8830工作電壓)范圍之后進行調試,然后可以再通過隔直電容去掉信號中的偏移量。
參考資料
[1] DAC: https://baike.baidu.com/item/%E6%95%B0%E6%A8%A1%E8%BD%AC%E6%8D%A2%E5%99%A8/4634384?fromtitle=DAC&fromid=1196661&fr=aladdin
[2] 機械電位器: https://zhuoqing.blog.csdn.net/article/details/104089780
[3] X9C102,X9C103,X9C104: https://zhuoqing.blog.csdn.net/article/details/104134132
[4] 頻帶寬度: 器件的輸出增益隨著信號頻率的改變而下降,最終形成的最大等效輸出帶寬
推薦閱讀: