ht8 mcu timer module 應用範例(1)– · ht8 mcu timer...

7
HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號 AN0436T V1.00 1 / 7 December 7, 2016 HT8 MCU Timer Module 應用範例(1)– 如何產生不同頻率的 Buzzer 信號 文件編碼:AN0436T 簡介 市售蜂鳴器(Buzzer)可區分為有源蜂鳴器及無源蜂鳴器二種,這裡指的不是指電源而 是指振盪源。有源蜂鳴器因內部帶振盪源,只要通電就能發出聲響,使用雖方便,但元件 價格較高。而無源蜂鳴器因內部無振盪源,需外部輸入 2kHz~5kHz 方波進行驅動,雖驅動 方式較為複雜,但元件價格較低,時常應用於產品上。本文將介紹 MCU TM 模塊中 STM 較匹配輸出模式,說明如何產生不同頻率以驅動 Buzzer工作原理 每組定時模塊(TM)皆俱備數種工作模式,經設定 TnM0TnM1 n 對應 TM 模塊的編號)暫 存器使 STM 成為比較匹配輸出模式。STM 分為 10-Bit 16-Bit(參考實際使用之 MCU Datasheet),通過設定 TnCK2~TnCK0 暫存器來控制計數頻率、 TnIO1~TnIO0 決定輸出方式。 模塊中還配置了兩組比較器:比較器 A 和比較器 P,當計數過程中會將 TMnDHTMnDL 數值與 TMnA10-Bit/16-Bit)、TMnRP3-Bit/8-Bit)設定值進行比較,而不同的工作模式 在比較匹配時將產生不同的動作。此處使用的是比較器 A 匹配進行輸出驅動 BuzzerSTM 計時器模塊結構 下圖為 16-bit STM 計時器模塊的內部結構圖。並非所有 HOLTEK 8-bit Flash MCU STM 部結構圖與此圖完全相同,此處僅僅為了方便對範例應用進行說明提供的一個參考。具體 STM 內部結構框圖請參照其對應的 MCU DatasheetfSYS fSYS/4 fH/64 fH/16 fTBC TCKn 000 001 010 011 100 101 110 111 TnCK2~TnCK0 16-bit Count-up Counter 8-bit Comparator P CCRP b8~b15 b0~b15 16-bit Comparator A TnON TnPAU Comparator A Match Comparator P Match Counter Clear 0 1 Output Control Polarity Control Pin Control TPn TnOC TnM1, TnM0 TnIO1, TnIO0 TnAF Interrupt TnPF Interrupt TnPOL TnCP CCRA TnCCLR Edge Detector TnIO1, TnIO0 fH/8 Standard Type TM Block Diagram

Upload: others

Post on 26-Jul-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

  • HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號

    AN0436T V1.00 1 / 7 December 7, 2016

    HT8 MCU Timer Module 應用範例(1)–

    如何產生不同頻率的 Buzzer 信號

    文件編碼:AN0436T

    簡介

    市售蜂鳴器(Buzzer)可區分為有源蜂鳴器及無源蜂鳴器二種,這裡指的“源”不是指電源而

    是指振盪源。有源蜂鳴器因內部帶振盪源,只要通電就能發出聲響,使用雖方便,但元件

    價格較高。而無源蜂鳴器因內部無振盪源,需外部輸入 2kHz~5kHz 方波進行驅動,雖驅動

    方式較為複雜,但元件價格較低,時常應用於產品上。本文將介紹 MCU TM 模塊中 STM 比

    較匹配輸出模式,說明如何產生不同頻率以驅動 Buzzer。

    工作原理

    每組定時模塊(TM)皆俱備數種工作模式,經設定 TnM0、TnM1(n 對應 TM 模塊的編號)暫

    存器使 STM 成為比較匹配輸出模式。STM 分為 10-Bit 或 16-Bit(參考實際使用之 MCU

    Datasheet),通過設定 TnCK2~TnCK0 暫存器來控制計數頻率、TnIO1~TnIO0 決定輸出方式。

    模塊中還配置了兩組比較器:比較器 A 和比較器 P,當計數過程中會將 TMnDH、TMnDL

    數值與 TMnA(10-Bit/16-Bit)、TMnRP(3-Bit/8-Bit)設定值進行比較,而不同的工作模式

    在比較匹配時將產生不同的動作。此處使用的是比較器 A 匹配進行輸出驅動 Buzzer。

    STM 計時器模塊結構

    下圖為 16-bit STM 計時器模塊的內部結構圖。並非所有 HOLTEK 8-bit Flash MCU 的 STM 內

    部結構圖與此圖完全相同,此處僅僅為了方便對範例應用進行說明提供的一個參考。具體

    STM 內部結構框圖請參照其對應的 MCU 之 Datasheet。

    fSYSfSYS/4

    fH/64fH/16

    fTBC

    TCKn

    000

    001

    010

    011

    100

    101

    110

    111

    TnCK2~TnCK0

    16-bit Count-up Counter

    8-bit Comparator P

    CCRP

    b8~b15

    b0~b15

    16-bit Comparator A

    TnONTnPAU

    Comparator A Match

    Comparator P Match

    Counter Clear 01

    Output Control

    Polarity Control

    Pin Control TPn

    TnOC

    TnM1, TnM0TnIO1, TnIO0

    TnAF Interrupt

    TnPF Interrupt

    TnPOL TnCP

    CCRA

    TnCCLR

    Edge Detector

    TnIO1, TnIO0

    fH/8

    Standard Type TM Block Diagram

  • HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號

    AN0436T V1.00 2 / 7 December 7, 2016

    HT66F0185 之 STM 比較匹配輸出產生 Buzzer 信號說明

    硬體部分

    硬體部分通過改變 HT66F0185 PC、PA1、PD 狀態資訊來更改 STM 比較匹配輸出的頻率。通

    過指撥開關控制 PC、PA1、PD 的 I/O 埠(均設定為輸入提升)狀態作為計數初值分別裝入

    TMnAL、TMnAH,進而達到實時改變輸出頻率的目的。如下圖所示:

    SWa7~SWa0

    PA1、PC6~PC0 TM0AL 說明

    00000000

    對應→

    11111111 11111111

    指撥開關 SWa0~SWa7 分別接 MCU PC0~PC6 及 PA1。

    指撥開關 SWb0~SWb3 分別接 MCU PD0~PD3。當指撥

    開關撥向 ON 狀態時(即指撥開關的位被置 1),對應

    的 I/O 埠被短接到 GND 端(即對應的 I/O 埠被清 0)。

    通過將 I/O 埠的狀態讀到 MCU 中,且分別將 SWa 對

    應的 I/O 埠狀態寫入 TM0AL 暫存器和將 SWb 對應的

    I/O 埠狀態寫入 TM0AH 暫存器的低四位中,藉此改變

    STM 的初值,達到改變輸出波形頻率的目的。

    00000001 11111110 11111110

    00000010 11111101 11111101

    00000011 11111100 11111100

    … … …

    11111100 00000011 00000011

    11111101 00000010 00000010

    11111110 00000001 00000001

    11111111 00000000 00000000

    SWb3~SWb0

    PD3~PD0 TM0AH

    0000

    對應→

    1111 00001111

    0001 1110 00001110

    0010 1101 00001101

    0011 1100 00001100

    … … …

    1100 0011 00000011

    1101 0010 00000010

    1110 0001 00000001

    1111 0000 00000000

    例:當 SWb3~SWb0=0b1110,SWa7~SWa0=0b00001011 時,對應的 TM0AH=0b00000001,

    TM0AL=0b11110100。即設定的初值為 500,程式中設定計時時鐘為 1MHz,所以每 0.5ms 輸

    出翻轉一次,即輸出頻率為 1KHz。

  • HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號

    AN0436T V1.00 3 / 7 December 7, 2016

    比較匹配輸出模式操作範例圖

    暫存器設定

    Bit 7 TnPAU:TMn 計數器暫停控制位元

    0:運行

    1:暫停

    通過設定此位元為高可使計數器暫停,清零此位元恢復正常計數器操作。當處於

    暫停條件時,TMn 保持上電狀態並繼續耗電。當此位由低到高轉換時,計數器將

    保留其剩餘值,直到此位元再次改變為低準位,並從此值開始繼續計數。

    Bit 6~ 4 TnCK2~TnCK0:選擇 TMn 計數時鐘位元

    000:fSYS/4

    001:fSYS

    010:fH/16

    011:fH/64

    100:fTBC

  • HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號

    AN0436T V1.00 4 / 7 December 7, 2016

    101:fH/8

    110:TCKn 上升緣時鐘

    111:TCKn 下降緣時鐘

    此三位元用於選擇 TMn 的時鐘源。外部引腳時鐘源能被選擇在上升緣或下降緣有

    效。fSYS是系統時鐘,fH和 fTBC是其它的內部時鐘源,細節方面請參考振盪器章節。

    Bit 3 TnON:TMn 計數器 On/Off 控制位元

    0:Off

    1:On

    此位元控制 TMn 的總開關功能。設定此位元為高則使能計數器使其運行,清零此

    位元則除能 TMn。清零此位元將停止計數器並關閉 TMn 減少耗電。當此位元經由

    低到高轉換時,內部計數器將復位清零;當此位元經由高到低轉換時,內部計數

    器將保持其剩餘值,直到此位元再次改變為高準位。若 TMn 處於比較匹配輸出模

    式時,當 TnON 位元經由低到高轉換時,TMn 輸出腳將復位至 TnOC 位指定的初

    始值。

    Bit 2~ 0 未定義,讀為“0”

    Bit 7~ 6 TnM1~TnM0:選擇 TMn 工作模式位元

    00:比較匹配輸出模式

    01:捕捉輸入模式

    10:PWM 模式或單脈衝輸出模式

    11:定時/計數器模式

    這兩位元設定 TMn 需要的工作模式。為了確保操作可靠,TMn 應在 TnM1 和 TnM0

    位元有任何改變前先關掉。在定時/計數器模式,TMn 輸出腳控制必須除能。

    Bit 5~ 4 TnIO1~TnIO0:選擇 TPn 引腳輸出功能位元

    比較匹配輸出模式

    00:無變化

    01:輸出低

    10:輸出高

    11:輸出翻轉

    在比較匹配輸出模式下,TnIO1 和 TnIO0 位元決定當比較器 A 比較匹配輸出發生

    時 TMn 輸出腳如何改變狀態。當比較器 A 比較匹配輸出發生時 TMn 輸出腳能設

    為切換高、切換低或翻轉當前狀態。若此兩位元同時為 0 時,這個輸出將不會改

    變。TMn 輸出腳的初始值通過 TMnC1 暫存器的 TnOC 位元設定取得。注意,由

    TnIO1 和 TnIO0 位元得到的輸出準位必須與通過 TnOC 位元設定的初始值不同,否

    則當比較匹配發生時,TMn 輸出腳將不會發生變化。在 TMn 輸出腳改變狀態後,

    通過 TnON 位元由低到高準位的轉換復位至初始值。(PWM 模式的說明此處不進

    行敘述,請參照 DataSheet。)

  • HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號

    AN0436T V1.00 5 / 7 December 7, 2016

    Bit 3 TnOC:TMn TPn 輸出控制位元

    比較匹配輸出模式

    0:初始低

    1:初始高

    這是 TMn 輸出腳輸出控制位元。它取決於 TMn 此時正運行於比較匹配輸出模式

    還是 PWM 模式。在比較匹配輸出模式時,比較匹配發生前其決定 TMn 輸出腳的

    邏輯準位值。

    Bit 2 TnPOL:TMn TPn 輸出極性控制位元

    0:同相

    1:反相

    此位元控制 TPn 輸出腳的極性。此位元為高時 TMn 輸出腳反相,為低時 TMn 輸

    出腳同相。若 TMn 處於定時/計數器模式時其不受影響。

    Bit 1 TnDPX:TMn PWM 週期/占空比控制位元

    0:CCRP–週期;CCRA–占空比

    1:CCRP–占空比;CCRA–週期

    此位元決定 CCRA 與 CCRP 暫存器哪個被用於 PWM 波形的週期和占空比控制。

    Bit 0 TnCCLR:選擇 TMn 計數器清零條件位元

    0:比較器 P 匹配

    1:比較器 A 匹配

    此位元用於選擇清除計數器的方法。標準型 TM 包括兩個比較器–比較器 A 和比

    較器 P。這兩個比較器每個都可以用作清除內部計數器。TnCCLR 位元設為高,計

    數器在比較器 A 比較匹配發生時被清除;此位元設為低,計數器在比較器 P 比較

    匹配發生或計數器溢出時被清除。計數器溢出清除的方法僅在 CCRP 被清除為 0

    時才能生效。

  • HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號

    AN0436T V1.00 6 / 7 December 7, 2016

    程式流程圖

    開始

    系統初始化

    配置STM

    CLR WDT

    f_change=1?

    f_change=0寫新數據到TMnD

    掃描指撥開關狀態

    指撥開關狀態發生變化?

    f_change=1

    Y

    N

    YN

    1、初始化:引腳初始化,PC、PD 輸入提升,使能 TP0。

    2、STM 配置:比較匹配輸出模式,輸出翻轉,計時時鐘 fH/8(1MHz),比較器 A 匹配。

    3、指撥按鍵掃描:輪詢指撥按鍵狀態資訊,皆與前次狀態進行比較,一旦發生改變,置

    f_change 為 1,且將改變後的指撥按鍵信息給 TMnA 暫存器重新賦值。

    程式範例

    HOLTEK HT8 MCU 範常式式:V3C 語言範例。

    ha0436.zip

    結論

    驅動無源 Buzzer 元件需求方波頻率 2kHz~5KHz 以及佔空比(Duty) 50%,雖然也可使用 PWM

    進行 Buzzer 控制,但必需同時設定頻率及 Duty,使用上較為不便。

    比較匹配輸出能固定 50% Duty 輸出,故只要設定輸出的頻率即可,當發生匹配時,就會自

    動輸出一個翻轉的準位,使用上比 PWM 輸出模式更加方便。

  • HT8 MCU Timer Module 應用範例(1)–如何產生不同頻率的 Buzzer 信號

    AN0436T V1.00 7 / 7 December 7, 2016

    版本及修改資訊

    Date 日期 Author 作者 Issue 發行、修訂說明

    2016.07.10 洪凱迪 First Version

    參考資料

    參考文件 HT66F0185 DataSheet、HT8 FLASH MCU。

    如需進一步瞭解,敬請瀏覽 Holtek 官方網站 http://www.holtek.com.tw/home。

    免責聲明

    免責聲明

    本網頁所載的所有資料、商標、圖片、連結及其他資料等(以下簡稱「資料」),只供參

    考之用,盛群半導體股份有限公司(以下簡稱「本公司」)將會隨時更改資料,並由本公

    司決定而不作另行通知。雖然本公司已盡力確保本網頁的資料準確性,但本公司並不保證

    該等資料均為準確無誤。本公司不會對任何錯誤或遺漏承擔責任。

    本公司不會對任何人士使用本網頁而引致任何損害(包括但不限於電腦病毒、系統固障、

    資料損失)承擔任何賠償。本網頁可能會連結至其他機構所提供的網頁,但這些網頁並不

    是由本公司所控制。本公司不對這些網頁所顯示的內容作出任何保證或承擔任何責任。

    責任限制

    在任何情況下,本公司並不須就任何人由於直接或間接進入或使用本網站,並就此內容上

    或任何產品、資訊或服務,而招致的任何損失或損害負任何責任。

    管轄法律

    本免責聲明受中華民國法律約束,並接受中華民國法院的管轄。

    免責聲明更新

    本公司保留隨時更新本免責聲明的權利,任何更改於本網站發佈時,立即生效。

    http://www.holtek.com.tw/home

    簡介工作原理STM計時器模塊結構HT66F0185之STM比較匹配輸出產生Buzzer信號說明程式流程圖程式範例結論版本及修改資訊參考資料免責聲明免責聲明責任限制管轄法律免責聲明更新

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile (None) /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /CreateJDFFile false /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice