0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

眨眼學(xué)會(huì)PWM

冬至子 ? 來(lái)源:玩兒轉(zhuǎn)FPGA ? 作者:東哥 ? 2023-06-28 17:24 ? 次閱讀

所謂PWM,就是用高電平時(shí)間和波形周期的比值代表某個(gè)數(shù)。如果這個(gè)數(shù)經(jīng)過(guò)濾波后變成了接近連續(xù)的曲線(xiàn)表現(xiàn)出來(lái)那就是DA轉(zhuǎn)換;如果通過(guò)這個(gè)比值表達(dá)的是控制電機(jī)的電壓,那么表現(xiàn)出來(lái)就是電機(jī)控制。一切可以量化的東西都可以用PWM的方式去表示,這也是PWM應(yīng)用廣泛的原因。

產(chǎn)生PWM的方法:

1.產(chǎn)生一個(gè)計(jì)數(shù)器,滿(mǎn)脈沖周期后翻轉(zhuǎn)。

2.產(chǎn)生一個(gè)比較器,到達(dá)比例位置的時(shí)候輸出高電平,否則輸出低電平,整個(gè)過(guò)程見(jiàn)下圖

圖片

FPGA本質(zhì)上是數(shù)字電路。為了生成上圖的結(jié)果,所以我們需要按照上述的2步流程設(shè)計(jì)兩個(gè)電路,第一個(gè)電路是計(jì)數(shù)器,第二個(gè)電路是在計(jì)數(shù)器后面的比較器,對(duì)計(jì)數(shù)器輸出進(jìn)行監(jiān)控,一旦高于占空比對(duì)應(yīng)的計(jì)數(shù)值的時(shí)候里面變?yōu)?,其余時(shí)候?yàn)?,這樣就基本實(shí)現(xiàn)了PWM。也就對(duì)應(yīng)了下面兩段代碼:

//計(jì)數(shù)器電路,cnt_cycle就是計(jì)數(shù)器輸出計(jì)數(shù)結(jié)果 always@(posedge clk)

begin

cnt_cycle <= (cnt_cycle == (T-1)) ? 0 : cnt_cycle + 1;

end

/ 比較器電路 ,pwm_buf 為輸出PWM結(jié)果,紅色字為計(jì)數(shù)器輸入,綠色字為比較器比較線(xiàn) /

always@(posedge clk)

begin

pwm_buf <= (cnt_cycle < duty_cycle_buf) ? 1'b1 : 1'b0;

end

也就是說(shuō),以上兩段代碼對(duì)應(yīng)的電路如下圖:

圖片

針對(duì)以上電路我要作一點(diǎn)說(shuō)明:計(jì)數(shù)器在FPGA里面的實(shí)現(xiàn)就是加法器和觸發(fā)器組成的,加法器每次對(duì)輸出+1,下一個(gè)時(shí)鐘把+1的結(jié)果給到輸出端,根本不是數(shù)電書(shū)上異步2分頻的結(jié)果!另外再次強(qiáng)調(diào),由于FPGA的設(shè)計(jì)收到實(shí)際因素的限制,數(shù)電書(shū)上某些理模型是難以在實(shí)際中大量應(yīng)用的,所以FPGA內(nèi)部很多結(jié)構(gòu)和綜合結(jié)果都與數(shù)電書(shū)上有差異,但是數(shù)字電路的基本原理是沒(méi)有任何改變的!

PWM還差最后一點(diǎn),因?yàn)檩斎胝伎毡瓤梢圆粩喔淖儯簿褪堑谝粡垐D的比較線(xiàn)是會(huì)上下移動(dòng)的,為了不影響我們?cè)谟?jì)數(shù)的過(guò)程中突然采集到突變的值最終導(dǎo)致,不平滑的占空比,所以占空比輸入在每個(gè)計(jì)數(shù)周期完成后才會(huì)去采集。也就是大家看到的這句:

always@(posedge clk)

begin

if(cnt_cycle == (T-1)) duty_cycle_buf <= (duty_cycle > T-1) ? T-1 : duty_cycle;

end

只有在cnt_cycle計(jì)數(shù)一個(gè)周期T的時(shí)候,占空比值才會(huì)更新,也就是比較線(xiàn)才會(huì)移動(dòng)!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26452
  • 電機(jī)控制
    +關(guān)注

    關(guān)注

    3519

    文章

    1838

    瀏覽量

    267878
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5106

    瀏覽量

    212912
  • 比較器
    +關(guān)注

    關(guān)注

    14

    文章

    1623

    瀏覽量

    107005
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1992

    瀏覽量

    60981
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PWM應(yīng)用

    PWM
    橙群微電子
    發(fā)布于 :2023年03月09日 09:11:48

    眨眼拍照的眼部傳感器哪家有做?

    眨眼拍照的眼部傳感器哪家有做?
    發(fā)表于 05-14 10:52

    PWM怎么樣才能學(xué)會(huì)啊,求幫忙

    PWM怎么樣才能學(xué)會(huì)啊,求幫忙
    發(fā)表于 12-29 19:44

    眨眼睛,開(kāi)關(guān)電器——新型傳感器研制出來(lái)了!

    最近,中國(guó)科學(xué)家發(fā)明了一種新型傳感器,它可附在眼鏡上探測(cè)我們的眼部運(yùn)動(dòng):我們眨眨眼,電燈就光亮;再眨眨眼,電燈就熄滅?!罢?b class='flag-5'>眨眼”就搞定開(kāi)關(guān)家用電器等的日常任務(wù)將成為現(xiàn)實(shí)。 “該項(xiàng)技術(shù)可以被認(rèn)為擁有了
    發(fā)表于 08-07 15:58

    Xilinx XUPV5LX110T錯(cuò)誤導(dǎo)致眨眼沒(méi)有停止正常嗎?

    時(shí)用作目標(biāo),程序員很好檢測(cè)到我的電腦和狀態(tài)指示燈是綠色的,當(dāng)我下載bitstrem它說(shuō)它是成功但卡沒(méi)有變化而且錯(cuò)誤導(dǎo)致眨眼沒(méi)有停止,這是正常的嗎?這個(gè)主題也發(fā)布在virtex 5子論壇上,以防你越過(guò)它!謝謝你的幫助
    發(fā)表于 08-21 10:07

    PWM的異常行為

    所期望的。改變PWM參數(shù)也會(huì)改變眨眼的速度。但是,如果我改變程序閱讀:LED只是停留。由于PWM參數(shù)(在前面的例子中工作得很清楚),我希望它能快速閃爍。有什么明顯的因素會(huì)導(dǎo)致這種行為嗎?我是否誤解
    發(fā)表于 09-27 10:51

    pwm程序停止調(diào)用回調(diào)函數(shù)

    ,timer2(pwm計(jì)時(shí)器)根本不算數(shù)。所以我開(kāi)始比較眨眼PWM定時(shí)器代碼。唯一的區(qū)別是“DrvtTMRMARALMALL”函數(shù)。所以我添加了一個(gè)空回調(diào)。我注意到在動(dòng)態(tài)實(shí)現(xiàn)中,生成的代碼從來(lái)沒(méi)有設(shè)置
    發(fā)表于 03-05 10:05

    PWM怎么樣學(xué)習(xí)

    PWM怎么樣才能學(xué)會(huì)啊,求幫忙
    發(fā)表于 07-08 05:22

    會(huì)眨眼的電子貓電路圖

    會(huì)眨眼的電子貓電路圖
    發(fā)表于 05-21 13:15 ?1942次閱讀
    會(huì)<b class='flag-5'>眨眼</b>的電子貓電路圖

    聲控眨眼玩具電路圖

    聲控眨眼玩具電路圖
    發(fā)表于 07-29 09:15 ?1058次閱讀
    聲控<b class='flag-5'>眨眼</b>玩具電路圖

    基于A(yíng)daboost算法的駕駛員眨眼識(shí)別

    基于A(yíng)daboost算法的駕駛員眨眼識(shí)別 眨眼是一種睜閉眼睛的生理活動(dòng),眨眼的速度會(huì)受疲勞程度、情感壓力、行為種類(lèi)、睡覺(jué)數(shù)量、眼睛受傷程度、疾
    發(fā)表于 11-09 17:17 ?1178次閱讀

    會(huì)眨眼的小貓咪電路圖

    會(huì)眨眼的小貓咪電路圖 T1與外圍元件組成模擬貓的音頻振蕩電路。
    發(fā)表于 11-18 18:16 ?1254次閱讀
    會(huì)<b class='flag-5'>眨眼</b>的小貓咪電路圖

    免動(dòng)手?jǐn)z影 眨眼時(shí)便按下快門(mén)

    日本的一個(gè)研發(fā)團(tuán)隊(duì)最近讓免動(dòng)手?jǐn)z影變得比以往任何時(shí)候都更加簡(jiǎn)單——至少是對(duì)于戴眼鏡的人而言。他們所研發(fā)的Blincam是一部附接在眼鏡上的相機(jī),可在你眨眼時(shí)按下快門(mén)。
    發(fā)表于 04-17 15:51 ?1078次閱讀

    如何快速學(xué)會(huì)PLC編程

    PLC編程可以很快學(xué)會(huì)。想學(xué)會(huì)PLC的心情是可以理解的.
    的頭像 發(fā)表于 09-07 10:06 ?9831次閱讀
    如何快速<b class='flag-5'>學(xué)會(huì)</b>PLC編程

    兒童樂(lè)高Arduino教程之眨眼草圖

    電子發(fā)燒友網(wǎng)站提供《兒童樂(lè)高Arduino教程之眨眼草圖.zip》資料免費(fèi)下載
    發(fā)表于 07-10 15:15 ?0次下載
    兒童樂(lè)高Arduino教程之<b class='flag-5'>眨眼</b>草圖