<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 電源管理 > 正文

可否利用DAC來(lái)改變交流信號的幅值?

發(fā)布時(shí)間:2020-05-12 來(lái)源:卓晴 責任編輯:wenwei

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

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>