PWM定時器及其蜂鳴器

2021-10-24 14:23:51 字數 2106 閱讀 2065

arm體系結構-pwm定時器及其蜂鳴器

1、一般soc中產生pwm訊號都是靠定時器模組產生的。也就是說soc有個定時器專門生產pwm訊號的。

2、pwm(pulse wide modulation 脈寬調變),也就是這是一種訊號,這個訊號有特定的波形。

3、pwm波形是乙個週期性波形,週期為t,在每個週期內波形是完全相同的。每個週期內由乙個高電平和乙個低電平組成。

4、pwm波形有2個重要引數:乙個是週期t,另乙個是占空比duty(占空比就是乙個週期內高電平的時間除以週期時間的商)。

5、對於乙個pwm波形,知道了週期t和占空比duty,就可以算出這個波形的所有細節。譬如高電平時間為tduty,低電平時間為t(1-duty)。

6、pwm波形有很多用處,譬如通訊上用pwm來進行脈寬調變對基波進行載波調製;在發光二極體led照明領域可以用pwm波形來調製電流進行調光;用來驅動蜂鳴器等裝置。

1、pwm波形其實就是用時間來控制電平高低,所以用定時器來實現pwm波形是天經地義的。

2、在s5pv210中,pwm波形產生有2個暫存器很關鍵,乙個是tcntb、乙個是tcmpb。其中,tcntb決定了pwm波形的週期,tcmpb決定了pwm波形的占空比。

3、最終生成的pwm波形的週期是:tcntb×時鐘週期(pclk_psys經過兩極分頻後得到的時鐘週期)。注意這個週期是pwm中高電平+低電平的總時間,不是其中之一。

4、最終生成的pwm波形的占空比是:tcmpb/tcntb

1、預分頻器與分頻器

①兩級分頻是串聯(級聯)的,所以兩級分頻的分頻數是相乘的。

②兩級分頻的分頻係數分別在tcfg0和tcfg1兩個暫存器中設定。

③預分頻器有2個,prescaler0為timer0&timer1共用;prescaler1為timer2、3、4共用;兩個prescaler都是8個bit位,因此prescaler value範圍為0~255;所以預分頻器的分頻值範圍為1~256(注意實際分頻值為prescaler value + 1)。

④分頻器實質上是乙個mux開關,多選一開關決定了走哪個分頻係數路線。可以選擇的有1/1,1/2,1/4,1/8,1/16等。

⑤計算一下,兩級分頻下來,分頻最小為1/1(也可能是1/2),最大分頻為1/256×16(1/4096).

⑥在pclk_psys為66mhz的情況下(預設時鐘設定就是66mhz的),此時兩級分頻後的時鐘週期範圍為0.03us到62.061us;再結合tcntb的值的設定(範圍為1~2的32次方),可知能定出來的時間最長為266548.27s(折合74小時多,遠遠夠用了)。

1、tcnt&tcmp、tcntb&tcmpb、tcnto

①tcnt和tcntb是相對應的,tcntb是有位址的暫存器,供程式設計師操作;tcnt在內部和tcntb相對應,它沒有暫存器位址,程式設計師不能程式設計訪問這個暫存器。

②tcnt暫存器功能就是用來減1的,它是內部的不能讀寫;我們向tcnt中寫要通過tcntb往進寫;讀取tcnt暫存器中的值要通過讀取相對應的tcnto暫存器。

③工作流程就是:我們事先算好tcnt暫存器中開始減的那個數(譬如300),然後將之寫入tcntb暫存器中,在啟動timer前,將tcntb中的值刷到tcnt暫存器中(有一位暫存器專門用來操作刷資料過去的),刷過去後就可以啟動定時器開始計時;在計時過程中如果想知道tcnt暫存器中的值減到多少了,可以讀取相應的tcnto暫存器來得知。

④定時功能只需要tcnt、tcntb兩個即可

⑤tcnto暫存器用來做一些捕獲計時

⑥tcmpb用來生成pwm波形

1、首先這是乙個發聲裝置,發出類似於蜜蜂的聲音。

2、蜂鳴器裡面有2個金屬片,離的很緊但沒挨著;沒電的時候兩個片在彈簧本身張力作用下分開彼此平行;有電的時候兩邊分別充電,在異性電荷的吸力作用下兩個片挨著;

3、我們只要以快速的頻率給蜂鳴器的正負極:供電、斷電。進行這樣的迴圈,蜂鳴器的兩個彈簧片就會挨著分開挨著分開···形成敲擊,發出聲音。

4、因為人的耳朵能聽見的聲音頻率有限制(20hz-20000hz),我們做實驗時一般給個2khz的頻率

5、頻率高低會影響聲音的音訊,一般是音訊越低聲音聽起來越低沉、音訊越高聽起來越尖銳。

6、根據以上的分析,可以看出,只要用pwm波形的電壓訊號來驅動蜂鳴器,把pwm波形的週期t設定為要發出的聲音頻號的1/頻率即可;pwm的占空比只要確保能驅動蜂鳴器。

通用定時器產生PWM

這裡給出乙個公式 tout arr 1 psc 1 tclk 其中 tclk tim3 的輸入時鐘頻率 單位為 mhz 注意這裡的單位,正常情況下由systeminit 函式配置掛載在apb1的通用定時器2 7皆為72mhz。tout tim3 溢位時間 單位為 us 根據上一節 定時器中斷 和本節...

關於定時器( PWM波)

學習使我強壯!準備學習pwm,然後,發現自己貌似並不是很懂定時 計數 器這個東東,emmm,木得關係,再學習一下!明確 1.時鐘週期 1 11059200,1個機器週期 12個時鐘週期 2.關於定時功能的實現 定時器內部有乙個暫存器,開始計數後,每隔乙個機器週期 12 11059200秒 自動加一,...

定時器及其清除

倒計時定時器 迴圈定時器 及定時器的清除 1 body 2 div 3 input type button onclick yi value 啟動倒計時定時器 4 input type button onclick er value 啟動迴圈定時器 5 input type button oncli...