91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

stm32輸出SPWM 同步外部50HZ調試成功

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

來張調試全家福

IMG_20160518_213105

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

IMG_20160518_213157

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

待續。。。。

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

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

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

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

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

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

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

第三排為SPWM基準波形,大概顯示在721左右,一直在跳動,這個值跟第一排的值做PI環調節

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

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

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

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

以下是我畫的一個草圖:

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

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

首先

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

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

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

4、捕獲所記錄的值再和設定值(比如360)做PI環調節,即可初步達到相位同步

后續更新所實驗的程序,待續。。。。。。

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

發個PI調整相位程序,輸出直接調整SPWM載波,使之達到調整

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

幫頂~~~


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

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

繼續發。。。

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

有用運放的:

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

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

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

檢測時間在0.2ms左右。

放大后

待續。。。

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

菜單已經寫好,折騰慘了

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

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

50HZ_ccp.zip,,鼠標點擊開關模擬停電,來電

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

確實是高手

0
回復
2016-11-09 22:08
@黑夜11
首先,50HZ不是單片機產生的,是我用CPLD產生的,單片機產生SPWM對應一個計數定時器,而且這個定時器要跟捕獲定時器設置一模一樣,SPWM信號的一個周期(即20MS)后,清零SPWM對應的計數器,把這個計數器和捕獲計數器做PI環,即可達到與外部捕獲一樣的周期了,我貼有程序,可以看一下,全文字說明,將就理解吧
你好,請問你貼的程序在哪?學習下
0
回復
peter_yu
LV.5
21
2017-01-27 17:07
@ruohan
確實是高手
仔細學學,謝謝分享。
0
回復
無錫市
LV.4
22
2017-02-04 20:19
@黑夜11
首先,50HZ不是單片機產生的,是我用CPLD產生的,單片機產生SPWM對應一個計數定時器,而且這個定時器要跟捕獲定時器設置一模一樣,SPWM信號的一個周期(即20MS)后,清零SPWM對應的計數器,把這個計數器和捕獲計數器做PI環,即可達到與外部捕獲一樣的周期了,我貼有程序,可以看一下,全文字說明,將就理解吧
難道沒有人能把全部資料發在這里嗎  
0
回復
主站蜘蛛池模板: 惠安县| 如皋市| 湄潭县| 泸水县| 香港| 芜湖市| 平定县| 双桥区| 柳江县| 名山县| 兰西县| 青河县| 石棉县| 南昌市| 大同县| 九寨沟县| 会东县| 门头沟区| 融水| 临桂县| 山阳县| 清新县| 图木舒克市| 嘉黎县| 伊通| 广河县| 资讯 | 古田县| 广宗县| 确山县| 炉霍县| 广昌县| 毕节市| 武宁县| 龙陵县| 赣州市| 襄樊市| 黄石市| 上虞市| 灵璧县| 定陶县|