性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 5
    回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

記錄一下STM32做的雙路DDS信號發(fā)生器模塊設計過程!

前言:

      最近帶學生要做一個正弦波測試電源的課題,用來作為單相電表的測試電源。電表出廠的時候要校準。比如一個220V/50A的電表,電網(wǎng)的電壓不一定是標準220v,可能是200v有時候也可能240v,這都是很正常的。再說電流,如果小功率電器,比如5w的手機充電器,那么電流大概只有0.02A,如果是一臺3KW的熱水器,電流大概就會有15A。所以電表出廠時要測試各種負載情況下的電壓電流就不可能用固定的負載測試。在已知電壓電流的情況下檢查電表的讀數(shù),這就可以知道電表是否準確了。這時候就要用到交流測試電源了。

      剛開始我也很困惑,根據(jù)歐姆定律電源不是可以輸出電壓和電流嗎?怎么電壓一路,電流一路呢?比如我們測試220V/50A情況下電表精度的時候不可能找一個11KW的電器接在標準的220v電壓上讓你去測試??!而且下感性或容性負載情況下電流電壓有相移也是模擬不了的。這樣就必須有兩路電源讓電壓和電流分別被電表芯片測量到形成功率數(shù)據(jù)。這樣就是我們需要做的單相交流測試電源了!

      我們正常使用電表時電壓從電表的輸入端會送到內(nèi)部變壓器進行降壓整流濾波后給電表的芯片和液晶供電,另外電表內(nèi)部也會有一個分壓電路把220V的輸入電壓用電阻分壓后送給電表芯片采集電壓。單相表的電流采樣一般會使用錳銅片作為采樣電阻,電流流過錳銅片會產(chǎn)生壓降,把這個信號送給電表芯片計算電流。

所以我們要做兩路獨立的電源,一路加在電表的進線端,另一路加在電表中錳銅片兩端。這樣沒有負載,電表也可以顯示電壓、電流和功率數(shù)據(jù)。聽到這里估計很多人都已經(jīng)明白了。

來我們看一下下圖單相電表的正常使用中的接法和用單相交流測試電源的接法示意圖。

我們的交流測試源要求電壓、電流兩路隔離輸出。而且電壓輸出是恒壓,電流輸出作為恒流輸出。

交流測試源要求:

      電壓源功率20W,電流源功率20W,電壓電流相互獨立采用C型臥式變壓器隔離;輸出失真度由于0.1%;頻率45.00-65.00HZ,最小步進0.01HZ,精度0.01HZ;電壓輸出0-220V可調(diào),最小步進0.1%,精度0.1%;電流輸出分為0-50A檔,最小步進0.1%,精度0.1%;電流相對于電壓的相位0-360°可調(diào),最小步進0.01°,精度0.05°。

      我們給出的方案就是用單片機產(chǎn)生兩路頻率、相位、幅值可調(diào)的正弦波信號。將正弦波信號分別送給兩個功放模塊然后經(jīng)過變壓器升壓或升流。變壓器有內(nèi)阻,所以升壓升流后的電壓電流會隨負載的增大而減小。此時通過電壓、電流互感器采樣后反饋給功放模塊的前級運放做負反饋,調(diào)節(jié)負反饋的深度從而達到負載變化輸出端穩(wěn)定的狀態(tài)。

      問題的關鍵就在于這個信號發(fā)生器,如何用單片機產(chǎn)生兩路頻率、相位、幅值都可調(diào)的正弦波呢?首先我們想到了STM32F103RCT6單片機,它有串口、IIC接口、1路12位的DAC(2通道),并且有72M高頻運行速度。這樣太合適不過了。

正題:

      以下部分我們主要研究STM32的信號發(fā)生器,信號發(fā)生器做好了這個項目基本就沒什么問題了。首先我們分析STM32單片機12位的DAC數(shù)據(jù)是0-4095,對于0.1%的幅值步進是絕對沒有問題的。72M主頻,開一個360K的定時器中斷來輸出波形數(shù)據(jù)也是絕對沒有問題的。比如要輸出50HZ正弦波,360K/50=7200,就是說每個周期細分7200個數(shù)據(jù),那么這樣的正弦波的失真度絕對也是可以達到要求的。那么我們就運用FPGA課程里面學習的DDS原理,做出頻率可調(diào)相位可調(diào)的波形。

接下來我們先寫個固定頻率的程序,輸出幾個不同頻率的正弦波看下情況。

45HZ固定頻率、100%幅值的正弦波:

50HZ固定頻率、100%幅值的正弦波:

65HZ固定頻率、100%幅值的正弦波:

50HZ固定頻率、1%幅值的正弦波:

50HZ固定頻率、10%幅值的正弦波:

50HZ固定頻率、30%幅值的正弦波:

50HZ固定頻率、50%幅值的正弦波:

50HZ固定頻率、80%幅值的正弦波:

雙通道50HZ、100%幅值、0°相位:

雙通道50HZ、100%幅值、180°相位:

雙通道50HZ、電壓100%幅值、電流1%、0°相位:

雙通道50HZ、電壓100%幅值、電流10%、0°相位:

雙通道50HZ、電壓100%幅值、電流50%、0°相位:

雙通道50HZ、電壓100%幅值、電流100%、120°相位:

      接下來就是如何調(diào)頻了,這個缺點麻煩,不太容易理解。這里我先賣個關子,我們先繼續(xù)進行實驗。實驗發(fā)現(xiàn)這個基于單片機原理的DDS信號發(fā)生器性能還是不錯的,頻率做到10K波形依然挺穩(wěn)定。那么我們做這個信號發(fā)生器就不僅限于這個交流測試源了啊。開心!我們先把這個信號源優(yōu)化一下,調(diào)整好性能參數(shù)后,以后可能其他課題項目也會用到的。那么我們重新調(diào)整一下信號發(fā)生器的參數(shù),經(jīng)測試在沒有濾波的情況下2K以下的波形都是非常漂亮的??紤]到后期加濾波情況,我們將頻率限制在20KHZ??紤]到多用途情況又增加了三角波、鋸齒波、方波,隨后看看能不能把自定義波形加里面及任意波,這個難度似乎有點大,還在思考之中!

      似乎在一定程度上(低頻情況)可以替代AD9850、AD9833、AD9834這種專業(yè)級的DDS芯片的。當然20KHZ以上的波形產(chǎn)生我們這個方案是肯定不行的。但是能替代一部分需求也是不錯的,想想就來勁,開干!

最終給出新的參數(shù):

      ·頻率0-20KHZ,步進0.01HZ,兩路波形允許輸出不同頻率波形;

      ·相位0-360°可調(diào),最小步進0.01°,相位調(diào)節(jié)只在兩路波形頻率相同時生效;

      ·幅值0-100%可調(diào),最小步進0.1%;

      ·正弦波、方波、三角波、鋸齒波,四種波形可選;

      ·IIC、串口通信,每個芯片可以設置不同地址,以便輸出多路正弦波使用。

那么我們來擬定一個通信協(xié)議吧,串口通信簡單,先做串口部分吧??聪聢D:

/******************************************數(shù)據(jù)舉例******************************************/

//地址清零

FA AF FE

//設置有返回數(shù)據(jù)

FA 00 A1 01 FE

//軟復位

FA 00 A2 FE

//設置模塊地址為0

FA 00 A3 00 FE

//設置通道1輸出1234.56HZ,幅值1000,正弦波

FA 00 A4 01 00 12 34 56 FE

FA 00 A5 01 10 00 FE

FA 00 A7 01 01 FE

//設置通道2輸出1234.56HZ,幅值1000,正弦波

FA 00 A4 02 00 12 34 56 FE

FA 00 A5 02 10 00 FE

FA 00 A7 02 01 FE

//設置通道2輸出相位180°

FA 00 A6 02 01 80 00 FE

   由于我不會做上位機,所以只能用串口調(diào)試助手測試,用起來還是比較麻煩的。所以希望會做上位機的網(wǎng)友給做一個簡單的上位機吧,謝謝了!我給出一個示意圖:

我先把HEX文件附上去,等IIC、自定義波形程序、上位機弄好再把源代碼附上來!

全部回復(5)
正序查看
倒序查看
m32112
LV.1
2
2022-02-16 15:22

期待源碼

0
回復
2022-03-15 23:06

搬個小板凳來聽大佬講課

0
回復
2022-12-18 18:55

期待程序公開。大佬

0
回復
chdqliwei
LV.3
5
2022-12-23 09:43

等大佬產(chǎn)品發(fā)布

0
回復
電路啊
LV.4
6
2023-02-21 21:25

一年了,源碼呢

0
回復
發(fā)