《電子技術應用》
您所在的位置:首頁 > 電源技術 > 設計應用 > 利用MAXQ3210產生壓電信號
利用MAXQ3210產生壓電信號
摘要: MAXQ3210微控制器集成了一個壓電揚聲器驅動器,以固定頻率驅動高音揚聲器。本應用筆記演示了怎樣改動揚聲器驅動器反饋單元,利用軟件來產生各種頻率信號。
Abstract:
Key words :

引言

壓電蜂鳴器或揚聲器使用壓電晶體單元,壓電晶體在加電時會出現(xiàn)輕微變形,將電信號轉換為聲音。晶體單元連在揚聲器錐體或面板,當施加快速變化的電壓時,它會快速振動。這種振動激發(fā)出空氣中的聲波,從而產生頻率基于電波頻率的音調。

早期的計算機和電子游戲使用壓電揚聲器產生的各類聲音,從單音、汽笛音到白噪聲等。和早期相比,個人計算機的聲音產生技術有了很大的進步。今天,系統(tǒng)即使增加了多通道、數(shù)字聲音和音樂,以及基于MIDI的音樂合成器系統(tǒng),仍然使用簡單的壓電揚聲器。汽車報警、煙霧探測器、銷售點(PoS)終端、小型電子玩具和游戲以及很多應用都依靠壓電聲發(fā)生器來產生單音、大分貝報警音效。

改動硬件驅動揚聲器

對系統(tǒng)中的壓電揚聲器增加硬件非常簡單。

對于只需要一路頻率輸出的應用,可以對壓電揚聲器進行優(yōu)化,以一定的音頻振蕩。通過加入反饋網絡和逆變器,揚聲器在接通后以共振頻率開始自激振蕩。這類網絡通常用于在煙霧探測器、二氧化碳傳感器和安防系統(tǒng)中產生大分貝報警音。

Maxim的MAXQ3210微控制器集成了這類壓電揚聲器驅動電路(圖1)。軟件界面非常簡單,包括一個控制位,用于打開或者關斷揚聲器。輸出音的頻率和音量完全由壓電揚聲器和反饋網絡元件決定。

圖1. MAXQ3210微控制器的壓電音驅動電路
圖1. MAXQ3210微控制器的壓電音驅動電路

在軟件控制下迅速接通和關斷揚聲器可以產生各種嘀噠、啁啾等聲音效果,但是輸出頻率不變。怎樣才能產生各種不同的輸出頻率呢?

為改變輸出頻率,必須去掉自動反饋環(huán)路,直接通過端口引腳來控制揚聲器輸出。數(shù)字揚聲器的輸入可以在固定電壓和地之間切換,微控制器的數(shù)字I/O引腳可直接驅動它。根據壓電揚聲器輸出大小和所需的分貝數(shù),可能需要專門的驅動電路或者IC來處理壓電揚聲器引腳的高壓,或者將大電流驅動到揚聲器中,以產生高音。在這些情況下,微控制器I/O引腳被用于打開或者關斷揚聲器,設置輸出頻率。I/O引腳不直接驅動壓電單元。

MAXQ3210還可用于產生多個揚聲器輸出頻率。反饋輸入引腳直接連接到器件的一個其他端口引腳上。只要內置揚聲器逆變器能夠跟上端口引腳驅動的頻率,按照合適的速率觸發(fā)端口引腳都可以產生所需的音調。

注意:本應用筆記的源代碼可以下載(ZIP, 4.5kB)。

音樂合成器

為能夠產生簡單的音樂信號,揚聲器必須接通一段時間,然后關斷相同的時間。產生的聲音頻率由下面的公式給出:

輸出頻率 = 1/(長周期 + 短周期)

為能夠產生一定時間長度的聲音,需要計算進行驅動的完整周期數(shù):

周期數(shù) = (聲音持續(xù)時間 × 輸出頻率)

以中C基本鋼琴音標音頻為例。對這些頻率進行調諧,音符“中C的A”等于440Hz。表1中列出的值是近似值。

表1. 音符和接近的聲音頻率

Note Frequency (Hz)
Middle C 261
C sharp/D flat 277
D 294
D sharp/E flat 311
E 330
F 349
F sharp/G flat 370
G 392
G sharp/A flat 415
A 440
A sharp/B flat 466
B 494
C (next octave up) 523


以一定頻率來接通和關斷MAXQ3210端口引腳最簡單的方法是使用軟件循環(huán)。使用微控制器的單周期指令執(zhí)行頻率來計算內循環(huán)延時,該頻率典型值為3.57MHz。

move HRNC, #1 ; Turn the piezoelectric horn driver on.

;; Play Middle C for one second.

   move    LC[1], #261       ; Outer loop counter = 261 cycles (1s * 261Hz)
middleC:
   move    PO0.0, #1         ; Switch output high.
   move    LC[0], #6839      ; Half period : (1/261Hz) / (1/3.57MHz) / 2
   djnz    LC[0], $          ; Decrement and jump, if not zero, to current 
                             ;    instruction.
   move    PO0.0, #0         ; Switch output low.
   move    LC[0], #6839      ; Half period : (1/261Hz) / (1/3.57MHz) / 2
   djnz    LC[0], $          ; Decrement and jump if not zero to current 
                             ;    instruction.
   djnz    LC[1], middleC    ; Decrement and jump, if not zero, to top of loop.

通過改變循環(huán)計數(shù)器LC[0]裝載的數(shù)值來改變輸出頻率(對應于產生的音符)。通過改變循環(huán)計數(shù)器LC[1]裝載的數(shù)值來改變音符持續(xù)時間。把這些代碼打包到一個簡單宏中,定義幾個常數(shù),就很容易產生播放一小段音樂的代碼。

#define NOTE_C     261
#define NOTE_C_SH  277
#define NOTE_D_FL  277
#define NOTE_D     294
#define NOTE_D_SH  311
#define NOTE_E_FL  311
#define NOTE_E     330
#define NOTE_F     349
#define NOTE_F_SH  370
#define NOTE_G_FL  370
#define NOTE_G     392

#define EIGHTH     1       ; 120 beats per minute, 4/4 time
#define QUARTER    2       ; 120 beats per minute, 4/4 time
#define QUARTERDOT 3       ; 120 beats per minute, 4/4 time
#define HALF       4       ; 120 beats per minute, 4/4 time
#define WHOLE      8       ; 120 beats per minute, 4/4 time

 

play macro note, duration
local L1, L2
   move    HRNC,  #1
   move    LC[1], #(note * duration / 8)
L1:
   move    PO0.0, #1         ; Switch output high.
   move    LC[0], #(1785000 / note)
   djnz    LC[0], $          ; Decrement and jump, if not zero, to current 
                             ;    instruction.
   move    PO0.0, #0         ; Switch output low.
   move    LC[0], #(1785000 / note)
   djnz    LC[0], $          ; Decrement and jump, if not zero, to current 
                             ;    instruction.
   djnz    LC[1], L1         ; Decrement and jump, if not zero, to top of loop.
   move    HRNC,  #1
   move    LC[1], #50        ; 50ms of silence
L2:
   move    LC[0], #3570      ; 1ms (inner loop)  
   djnz    LC[0], $
   djnz    LC[1], L2
endm

;; First 8 bars of Beethoven's "Ode to Joy"

   play    NOTE_E,     QUARTER
   play    NOTE_E,     QUARTER
   play    NOTE_F,     QUARTER
   play    NOTE_G,     QUARTER

   play    NOTE_G,     QUARTER
   play    NOTE_F,     QUARTER
   play    NOTE_E,     QUARTER
   play    NOTE_D,     QUARTER

   play    NOTE_C,     QUARTER
   play    NOTE_C,     QUARTER
   play    NOTE_D,     QUARTER
   play    NOTE_E,     QUARTER

   play    NOTE_E,     QUARTERDOT
   play    NOTE_D,     EIGHTH
   play    NOTE_D,     HALF

   play    NOTE_E,     QUARTER
   play    NOTE_E,     QUARTER
   play    NOTE_F,     QUARTER
   play    NOTE_G,     QUARTER

   play    NOTE_G,     QUARTER
   play    NOTE_F,     QUARTER
   play    NOTE_E,     QUARTER
   play    NOTE_D,     QUARTER



   play    NOTE_C,     QUARTER
   play    NOTE_C,     QUARTER
   play    NOTE_D,     QUARTER
   play    NOTE_E,     QUARTER

   play    NOTE_D,     QUARTERDOT
   play    NOTE_C,     EIGHTH
   play    NOTE_C,     HALF

可以縮小這一例子需要的代碼空間。只使用子程序(而不是解開的代碼宏)和查找表就可以產生音符值。其基本原理相同。

定時器驅動的音樂合成器

上面的代碼雖然非常簡單,但是要求微控制器犧牲其所有時間來產生音調。對于音樂賀卡等簡單應用,這樣簡單地使用微控制器是可以的。然而,對于更復雜的應用,需要在后臺播放音樂,而微控制器去完成其他工作。為完成這種雙重角色,微控制器必須從周期性地開關端口引腳以產生某一音符這類工作中解放出來。

MAXQ3210集成了計數(shù)器/定時器功能。在一種模式下,定時器可以在端口引腳上產生某一頻率的輸出波形。利用這種模式,將定時器輸出引腳連接至反饋輸入,微控制器在音符開始時啟動定時器,在音符結束時關掉它。

定時器還可以用于控制音符本身的持續(xù)時間。MAXQ3210含有另一個長周期定時器,非常適合完成這一任務。通過在每一音符間隔開始產生一個中斷,定時器查找預編碼的音符查找表,以更少的空間來編碼時間更長的音樂。

結論

壓電音發(fā)生功能被用于大量的應用中,以產生音樂、報警等其他聲音效果。采用集成了MAXQ3210等壓電揚聲器驅動器的微控制器,只需要很少的硬件和軟件開銷就能夠產生壓電音。集成的可編程定時器使得大部分音調發(fā)生功能都可以在后臺完成,而微控制器能夠集中處理主要任務。

此內容為AET網站原創(chuàng),未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
女人香蕉久久**毛片精品| 国产嫩草影院久久久久| 性xx色xx综合久久久xx| 亚洲私拍自拍| 一区二区三区精品视频在线观看| 亚洲国产成人精品久久| 久久精品一区二区三区不卡牛牛 | 亚洲国产精品免费| 在线看片一区| 亚洲国产日本| 最新日韩在线| 亚洲精品一区二区三区蜜桃久| 在线观看国产一区二区| 影音先锋亚洲电影| 亚洲二区免费| 亚洲区中文字幕| 亚洲精品中文字幕女同| 99精品久久| 中日韩午夜理伦电影免费| 亚洲深夜影院| 午夜精品福利在线| 久久国产加勒比精品无码| 久久福利电影| 91久久黄色| 日韩一级黄色大片| 中文一区二区| 午夜精品久久久久久99热软件| 欧美一级黄色网| 久久久久久久久伊人| 毛片一区二区三区| 欧美日韩国产综合视频在线| 欧美日韩在线看| 国产精品欧美日韩| 国产亚洲欧美一区二区| 1024日韩| 一本一本a久久| 性欧美超级视频| 亚洲激情啪啪| 国产精品99久久99久久久二8 | 欧美日韩视频在线| 国产精品日本一区二区 | 中文久久精品| 欧美在线不卡视频| 亚洲欧洲一区二区三区久久| 在线综合亚洲欧美在线视频| 新67194成人永久网站| 久久五月天婷婷| 欧美精品首页| 国产精品一区二区你懂的| 狠狠色噜噜狠狠色综合久| 亚洲精品免费在线观看| 亚洲男人的天堂在线| 亚洲电影第1页| 亚洲视频精品| 久久婷婷国产麻豆91天堂| 欧美日韩123| 国产亚洲人成网站在线观看| 亚洲国产精品传媒在线观看| 亚洲视频在线二区| 亚洲欧洲另类国产综合| 亚洲在线电影| 免费久久精品视频| 国产精品人人做人人爽| 亚洲国产精品嫩草影院| 香蕉国产精品偷在线观看不卡| 亚洲精品综合精品自拍| 欧美专区在线播放| 欧美精品18| 国产在线麻豆精品观看| 99这里只有精品| 亚洲国产婷婷香蕉久久久久久99 | 牛牛影视久久网| 国产精品日本精品| 亚洲肉体裸体xxxx137| 欧美一区2区三区4区公司二百| 夜夜嗨av一区二区三区免费区| 久久久999精品| 欧美亚洲第一页| 亚洲国产精品综合| 性高湖久久久久久久久| 一区二区三欧美| 男人插女人欧美| 国产一区二区三区的电影| 99香蕉国产精品偷在线观看| 亚洲国产精品精华液2区45| 亚洲欧美综合v| 欧美日韩大片| 亚洲国产导航| 亚洲第一视频| 欧美在线看片a免费观看| 欧美日韩精品一区二区三区| **性色生活片久久毛片| 欧美亚洲日本国产| 亚洲嫩草精品久久| 欧美日韩视频一区二区| 亚洲国产激情| 亚洲国产女人aaa毛片在线| 久久精品国产69国产精品亚洲| 国产精品v亚洲精品v日韩精品| 亚洲欧洲一区二区在线播放| 亚洲国产99精品国自产| 久久精品一区二区| 国产欧美日韩视频在线观看 | 欧美一区二区观看视频| 午夜精品久久久久| 国产精品久久久久久久久久久久久久 | 一区二区三区精品视频在线观看| 免费一区视频| 亚洲第一精品夜夜躁人人爽| 久久精品99久久香蕉国产色戒| 久久国产欧美| 国产欧美日韩在线视频| 亚洲欧美日韩一区二区在线| 亚洲欧美激情一区| 国产精品毛片高清在线完整版| 一区二区日韩精品| 亚洲一区制服诱惑| 欧美亚韩一区| 亚洲永久免费av| 午夜精品一区二区三区四区 | 国产精品日日摸夜夜摸av| 亚洲视频免费在线观看| 亚洲视频在线观看一区| 欧美视频一区二区三区在线观看 | 亚洲午夜久久久久久久久电影院| 亚洲一区二区不卡免费| 欧美性大战久久久久| 中国成人黄色视屏| 欧美一区二区三区久久精品茉莉花 | 国产精品视频大全| 午夜久久黄色| 久久漫画官网| 亚洲大胆人体在线| 日韩午夜高潮| 国产精品成人久久久久| 亚洲影院色无极综合| 久久精品99国产精品| 国产一区二区三区在线观看精品| 久久国产福利| 欧美激情五月| 一级成人国产| 欧美在线观看视频一区二区三区 | 欧美高清视频一区二区| 亚洲精品资源美女情侣酒店| 亚洲午夜国产成人av电影男同| 国产精品麻豆成人av电影艾秋| 欧美一二三区在线观看| 久久综合九九| 亚洲免费成人| 欧美在线视频一区二区| 伊人春色精品| 一区二区三区久久| 国产乱码精品一区二区三区av| 欧美在线1区| 欧美精品久久久久久久久久| 亚洲每日更新| 欧美永久精品| 亚洲国产精品va在线看黑人| 制服丝袜亚洲播放| 国产欧美综合一区二区三区| 91久久综合亚洲鲁鲁五月天| 欧美日韩亚洲一区二区| 午夜视频在线观看一区二区| 美女任你摸久久| 夜夜爽www精品| 久久久久久久欧美精品| 亚洲人体影院| 久久爱www| 亚洲人成在线观看一区二区| 午夜精品区一区二区三| 影音先锋久久久| 亚洲制服欧美中文字幕中文字幕| 国产午夜亚洲精品羞羞网站| 亚洲日本欧美| 国产精品影视天天线| 亚洲精品视频二区| 国产精品久久久久国产精品日日| 久久精品国产精品亚洲| 欧美日韩在线亚洲一区蜜芽| 欧美伊人影院| 国产精品成人播放| 亚洲国产专区校园欧美| 国产精品porn| 亚洲激情小视频| 国产精品日韩一区二区| 亚洲精品美女久久7777777| 国产精品视频成人| 日韩视频精品在线| 国产一区二区三区四区hd| 亚洲午夜视频| 亚洲国产高潮在线观看| 久久国产精品免费一区| 99国产精品国产精品毛片| 久久女同精品一区二区| 中日韩视频在线观看| 欧美福利视频| 久久丁香综合五月国产三级网站| 欧美视频你懂的| 日韩特黄影片| 伊人久久大香线蕉综合热线|