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

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

stm32輸出SPWM 同步外部50HZ調(diào)試成功

一直忙于工作,很久沒有發(fā)帖了,學(xué)習(xí)了stm32已經(jīng)有一段時間了,以前一直在用8bit的PIC單片機,接觸了stm32后感覺到了32bit的高大上,最初的時候想做一個UPS控制板,程序折騰了很久了,最難的控制就是和外部50HZ同步,今晚調(diào)試成功,和大家一起分享、討論。

來張調(diào)試全家福

IMG_20160518_213105

亂糟糟的,買了塊stm32最小系統(tǒng)(便宜),搭配430開發(fā)板,就這樣飛起來了,

IMG_20160518_213157

CPLD板子輸出50HZ基準,板子也是看著便宜買的,學(xué)習(xí)的時候都刷壞了一片了,話說這玩意兒大概燒寫200次就洗白了,初學(xué)的時候該買塊FPGA的,隨便燒寫。

待續(xù)。。。。

全部回復(fù)(21)
正序查看
倒序查看
黑夜11
LV.5
2
2016-05-18 21:51

stm32F103c8T6的片子,規(guī)劃的時候引腳已經(jīng)用完了,話說這片子的抗干擾性能還真不咋滴,接地線用1根杜邦線的時候開啟外部中斷干擾很大,必須加大接地面積。

調(diào)試總得有個示波器,網(wǎng)上一搜太貴了,二手的看不上,干脆買個邏輯分析儀,以后還可以搞破解:

0
回復(fù)
黑夜11
LV.5
3
2016-05-18 22:02
@黑夜11
stm32F103c8T6的片子,規(guī)劃的時候引腳已經(jīng)用完了,話說這片子的抗干擾性能還真不咋滴,接地線用1根杜邦線的時候開啟外部中斷干擾很大,必須加大接地面積。[圖片]調(diào)試總得有個示波器,網(wǎng)上一搜太貴了,二手的看不上,干脆買個邏輯分析儀,以后還可以搞破解:[圖片]

重點來了,下面是oled12864顯示器,幫助我看是否相位鎖定

第一排的720是捕獲到外部50HZ的值,第二排360是捕獲到外部50HZ的脈寬值。捕獲后基本不變,證明分頻器精度還是很高

第三排為同步后的相位值,我設(shè)置的0,可以看到在從720~6  一直變化,證明基本同步

第三排為SPWM基準波形,大概顯示在721左右,一直在跳動,這個值跟第一排的值做PI環(huán)調(diào)節(jié)

下面是同步后的波形截圖:

最上面白色的波形是CPLD輸出的50HZ,第二根以下是STm32輸出的波形

0
回復(fù)
黑夜11
LV.5
4
2016-05-18 22:17
@黑夜11
重點來了,下面是oled12864顯示器,幫助我看是否相位鎖定第一排的720是捕獲到外部50HZ的值,第二排360是捕獲到外部50HZ的脈寬值。捕獲后基本不變,證明分頻器精度還是很高第三排為同步后的相位值,我設(shè)置的0,可以看到在從720~6 一直變化,證明基本同步第三排為SPWM基準波形,大概顯示在721左右,一直在跳動,這個值跟第一排的值做PI環(huán)調(diào)節(jié)[圖片]下面是同步后的波形截圖:[圖片]最上面白色的波形是CPLD輸出的50HZ,第二根以下是STm32輸出的波形

下面說說我實驗中的同步方案:

以下是我畫的一個草圖:

大家都知道,要想兩個波形完全同步的話,首先這兩個波形的周期(頻率)、占空比 要一樣

如果兩個周期,占空比一樣的波形在一起那就好辦了,

首先

1、設(shè)置好PWM輸入捕獲(捕獲外部50HZ用),比如上升沿中斷,

2、我們需要一個定時器0來記錄單片機所輸出一個周期的SPWM值(也就是產(chǎn)生一個50HZ需要多長時間),這個定時器0在一個50HZ輸出周期后清零。

3、當(dāng)輸出捕獲上升沿中斷到來的時候,記錄下當(dāng)前定時器0所處的值,然后單片機一個周期的值和外部50HZ的周期捕獲值做PI環(huán)調(diào)節(jié),使單片機的輸出頻率等于外部的50HZ

4、捕獲所記錄的值再和設(shè)定值(比如360)做PI環(huán)調(diào)節(jié),即可初步達到相位同步

后續(xù)更新所實驗的程序,待續(xù)。。。。。。

0
回復(fù)
黑夜11
LV.5
5
2016-05-18 23:06
@黑夜11
下面說說我實驗中的同步方案:以下是我畫的一個草圖:大家都知道,要想兩個波形完全同步的話,首先這兩個波形的周期(頻率)、占空比要一樣如果兩個周期,占空比一樣的波形在一起那就好辦了,首先1、設(shè)置好PWM輸入捕獲(捕獲外部50HZ用),比如上升沿中斷,2、我們需要一個定時器0來記錄單片機所輸出一個周期的SPWM值(也就是產(chǎn)生一個50HZ需要多長時間),這個定時器0在一個50HZ輸出周期后清零。3、當(dāng)輸出捕獲上升沿中斷到來的時候,記錄下當(dāng)前定時器0所處的值,然后單片機一個周期的值和外部50HZ的周期捕獲值做PI環(huán)調(diào)節(jié),使單片機的輸出頻率等于外部的50HZ4、捕獲所記錄的值再和設(shè)定值(比如360)做PI環(huán)調(diào)節(jié),即可初步達到相位同步[圖片]后續(xù)更新所實驗的程序,待續(xù)。。。。。。

發(fā)個PI調(diào)整相位程序,輸出直接調(diào)整SPWM載波,使之達到調(diào)整

0
回復(fù)
2016-05-19 09:52
@黑夜11
[圖片]發(fā)個PI調(diào)整相位程序,輸出直接調(diào)整SPWM載波,使之達到調(diào)整[圖片]

幫頂~~~


掃一下二維碼,工作人員邀你進電源網(wǎng)官方微信群(技術(shù)我們是閑侃的,閑侃我們是認真的)

0
回復(fù)
2016-05-19 10:56
已經(jīng)被添加到社區(qū)經(jīng)典圖庫嘍
http://www.e-ticket.cn/bbs/classic/
0
回復(fù)
dobetter
LV.7
8
2016-05-19 21:26
@黑夜11
[圖片]發(fā)個PI調(diào)整相位程序,輸出直接調(diào)整SPWM載波,使之達到調(diào)整[圖片]
0
回復(fù)
黑夜11
LV.5
9
2016-05-19 21:50
@黑夜11
[圖片]發(fā)個PI調(diào)整相位程序,輸出直接調(diào)整SPWM載波,使之達到調(diào)整[圖片]

繼續(xù)發(fā)。。。

前面程序部分同步外部50hz成功后,下一步就需要一個能夠檢測外部市電掉電和整流成50hz方波的電路,網(wǎng)上搜了好多ups的掉電檢測電路,有用光耦的,如下圖:

有用運放的:

如果用光耦的話,涉及到一個濾波大小的問題,濾波電容太大,則掉電后的檢測時間越長,

如果用運放的話,涉及到全波整流后,因為交流零點的問題,有一個小的毛刺問題,也要濾波電路,

綜合考慮選擇了用LM358加上NE555來判斷是否掉電,lm358則做全波整流,Ne555做一個帶比較的單穩(wěn)態(tài)電路,用Protues仿真實驗了一下,

檢測時間在0.2ms左右。

放大后

待續(xù)。。。

0
回復(fù)
345295362
LV.6
10
2016-05-25 01:18
很好,剛好我剛做完這個項目,值得學(xué)習(xí)
0
回復(fù)
345295362
LV.6
11
2016-05-25 01:28
你用STM32做這個就容易多了,外設(shè),速度都不缺,我用的8位PIC,不帶硬件乘法器做太痛苦了,到處都要斤斤計較,不然跑步過來,特別像你這樣大篇幅的運算,根本不敢用。 還好我選的片子外設(shè)夠強悍,基本沒有難的運算,做出來效果基本滿意。
0
回復(fù)
2016-05-25 19:58
@黑夜11
下面說說我實驗中的同步方案:以下是我畫的一個草圖:大家都知道,要想兩個波形完全同步的話,首先這兩個波形的周期(頻率)、占空比要一樣如果兩個周期,占空比一樣的波形在一起那就好辦了,首先1、設(shè)置好PWM輸入捕獲(捕獲外部50HZ用),比如上升沿中斷,2、我們需要一個定時器0來記錄單片機所輸出一個周期的SPWM值(也就是產(chǎn)生一個50HZ需要多長時間),這個定時器0在一個50HZ輸出周期后清零。3、當(dāng)輸出捕獲上升沿中斷到來的時候,記錄下當(dāng)前定時器0所處的值,然后單片機一個周期的值和外部50HZ的周期捕獲值做PI環(huán)調(diào)節(jié),使單片機的輸出頻率等于外部的50HZ4、捕獲所記錄的值再和設(shè)定值(比如360)做PI環(huán)調(diào)節(jié),即可初步達到相位同步[圖片]后續(xù)更新所實驗的程序,待續(xù)。。。。。。
沒看明白,第一、你用一個定時器產(chǎn)生了一路50Hz的方波信號,同時用了一個定時器來捕獲外面的方波信號,最后達到這兩個的方波信號的相位相同,這樣SPWM 怎么產(chǎn)生關(guān)系呢?希望樓主解答一下
0
回復(fù)
2016-05-25 21:11
@345295362
你用STM32做這個就容易多了,外設(shè),速度都不缺,我用的8位PIC,不帶硬件乘法器做太痛苦了,到處都要斤斤計較,不然跑步過來,特別像你這樣大篇幅的運算,根本不敢用。還好我選的片子外設(shè)夠強悍,基本沒有難的運算,做出來效果基本滿意。
其實stm32也不貴!
0
回復(fù)
黑夜11
LV.5
14
2016-05-26 22:45
@皇甫仁和
沒看明白,第一、你用一個定時器產(chǎn)生了一路50Hz的方波信號,同時用了一個定時器來捕獲外面的方波信號,最后達到這兩個的方波信號的相位相同,這樣SPWM怎么產(chǎn)生關(guān)系呢?希望樓主解答一下
首先,50HZ不是單片機產(chǎn)生的,是我用CPLD產(chǎn)生的,單片機產(chǎn)生SPWM對應(yīng)一個計數(shù)定時器,而且這個定時器要跟捕獲定時器設(shè)置一模一樣,SPWM信號的一個周期(即20MS)后,清零SPWM對應(yīng)的計數(shù)器,把這個計數(shù)器和捕獲計數(shù)器做PI環(huán),即可達到與外部捕獲一樣的周期了,我貼有程序,可以看一下,全文字說明,將就理解吧
0
回復(fù)
黑夜11
LV.5
15
2016-05-26 22:51
@345295362
你用STM32做這個就容易多了,外設(shè),速度都不缺,我用的8位PIC,不帶硬件乘法器做太痛苦了,到處都要斤斤計較,不然跑步過來,特別像你這樣大篇幅的運算,根本不敢用。還好我選的片子外設(shè)夠強悍,基本沒有難的運算,做出來效果基本滿意。

菜單已經(jīng)寫好,折騰慘了

0
回復(fù)
黑夜11
LV.5
16
2016-05-26 22:58
@黑夜11
繼續(xù)發(fā)。。。前面程序部分同步外部50hz成功后,下一步就需要一個能夠檢測外部市電掉電和整流成50hz方波的電路,網(wǎng)上搜了好多ups的掉電檢測電路,有用光耦的,如下圖:[圖片]有用運放的:[圖片]如果用光耦的話,涉及到一個濾波大小的問題,濾波電容太大,則掉電后的檢測時間越長,如果用運放的話,涉及到全波整流后,因為交流零點的問題,有一個小的毛刺問題,也要濾波電路,綜合考慮選擇了用LM358加上NE555來判斷是否掉電,lm358則做全波整流,Ne555做一個帶比較的單穩(wěn)態(tài)電路,用Protues仿真實驗了一下,檢測時間在0.2ms左右。[圖片]放大后[圖片]待續(xù)。。。

在這里發(fā)一個掉電檢測電路,電路需要稍微改進,做的好的話檢測部分不需要任何濾波電容,由于涉及個人隱私,我只發(fā)仿真電路,仿真軟件用的Protues

50HZ_ccp.zip,,鼠標點擊開關(guān)模擬停電,來電

0
回復(fù)
2016-05-30 17:26
贊一個!不懂樓主可否分享一下學(xué)習(xí)資料,小的也想玩玩
0
回復(fù)
2016-06-13 23:36
@guang盧
贊一個!不懂樓主可否分享一下學(xué)習(xí)資料,小的也想玩玩[圖片]
高手
0
回復(fù)
ruohan
LV.9
19
2016-06-15 16:48
@空軍通信兵
高手

確實是高手

0
回復(fù)
2016-11-09 22:08
@黑夜11
首先,50HZ不是單片機產(chǎn)生的,是我用CPLD產(chǎn)生的,單片機產(chǎn)生SPWM對應(yīng)一個計數(shù)定時器,而且這個定時器要跟捕獲定時器設(shè)置一模一樣,SPWM信號的一個周期(即20MS)后,清零SPWM對應(yīng)的計數(shù)器,把這個計數(shù)器和捕獲計數(shù)器做PI環(huán),即可達到與外部捕獲一樣的周期了,我貼有程序,可以看一下,全文字說明,將就理解吧
你好,請問你貼的程序在哪?學(xué)習(xí)下
0
回復(fù)
peter_yu
LV.5
21
2017-01-27 17:07
@ruohan
確實是高手
仔細學(xué)學(xué),謝謝分享。
0
回復(fù)
無錫市
LV.4
22
2017-02-04 20:19
@黑夜11
首先,50HZ不是單片機產(chǎn)生的,是我用CPLD產(chǎn)生的,單片機產(chǎn)生SPWM對應(yīng)一個計數(shù)定時器,而且這個定時器要跟捕獲定時器設(shè)置一模一樣,SPWM信號的一個周期(即20MS)后,清零SPWM對應(yīng)的計數(shù)器,把這個計數(shù)器和捕獲計數(shù)器做PI環(huán),即可達到與外部捕獲一樣的周期了,我貼有程序,可以看一下,全文字說明,將就理解吧
難道沒有人能把全部資料發(fā)在這里嗎  
0
回復(fù)
發(fā)