本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 多機能タイマからの PWM 波形生成 32-BIT MICROCONTROLLER FM3 Family APPLICATION NOTE Publication Number FM3_AN706-00081 CONFIDENTIAL Revision 1.0 Issue Date March 12, 2014 A P P L I C A T I O N N O T E 対象製品 本操作マニュアルに記載されている内容の対象製品は、下記のとおりです。 (TYPE0) シリーズ名 MB9B500B MB9B400A MB9B300B MB9B100A 品種型格 (パッケージサフィックスは除く) MB9BF504NB,MB9BF505NB,MB9BF506NB MB9BF504RB,MB9BF505RB,MB9BF506RB MB9BF404NA,MB9BF405NA,MB9BF406NA MB9BF404RA,MB9BF405RA,MB9BF406RA MB9BF304NB,MB9BF305NB,MB9BF306NB MB9BF304RB,MB9BF305RB,MB9BF306RB MB9BF102NA,MB9BF104NA,MB9BF105NA,MB9BF106NA MB9BF102RA,MB9BF104RA,MB9BF105RA,MB9BF106RA (TYPE1) シリーズ名 品種型格 (パッケージサフィックスは除く) MB9AF311LA, MB9AF311MA, MB9AF311NA, MB9AF312LA MB9A310A MB9AF312MA, MB9AF312NA, MB9AF314LA, MB9AF314MA MB9AF314NA, MB9AF315MA, MB9AF315NA, MB9AF316MA MB9AF316NA MB9AF111LA, MB9AF111MA, MB9AF111NA, MB9AF112LA MB9A110A MB9AF112MA, MB9AF112NA, MB9AF114LA, MB9AF114MA MB9AF114NA, MB9AF115MA, MB9AF115NA, MB9AF116MA MB9AF116NA (TYPE2) シリーズ名 MB9BD10T MB9B610T MB9B510T MB9B410T MB9B310T MB9B210T MB9B110T 2 CONFIDENTIAL 品種型格 (パッケージサフィックスは除く) MB9BFD16T, MB9BFD16S, MB9BFD17T, MB9BFD17S, MB9BFD18T MB9BFD18S MB9BF616T, MB9BF616S, MB9BF617T, MB9BF617S, MB9BF618T MB9BF618S MB9BF516T, MB9BF516S, MB9BF517T, MB9BF517S, MB9BF518T MB9BF518S MB9BF416T, MB9BF416S, MB9BF417T, MB9BF417S, MB9BF418T MB9BF418S MB9BF316T, MB9BF316S, MB9BF317T, MB9BF317S, MB9BF318T MB9BF318S MB9BF216T, MB9BF216S, MB9BF217T, MB9BF217S, MB9BF218T MB9BF218S MB9BF116T, MB9BF116S, MB9BF117T, MB9BF117S, MB9BF118T MB9BF118S FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (TYPE3) シリーズ名 MB9A130LA 品種型格 (パッケージサフィックスは除く) MB9AF131LA, MB9AF131KA, MB9AF132LA, MB9AF132KA (TYPE4) シリーズ名 MB9B510R MB9B410R MB9B310R MB9B110R 品種型格 (パッケージサフィックスは除く) MB9BF512N, MB9BF512R, MB9BF514N, MB9BF514R, MB9BF515N MB9BF515R, MB9BF516N, MB9BF516R MB9BF412N, MB9BF412R, MB9BF414N, MB9BF414R, MB9BF415N MB9BF415R, MB9BF416N, MB9BF416R MB9BF312N, MB9BF312R, MB9BF314N, MB9BF314R, MB9BF315N MB9BF315R, MB9BF316N, MB9BF316R MB9BF112N, MB9BF112R, MB9BF114N, MB9BF114R, MB9BF115N MB9BF115R, MB9BF116N, MB9BF116R (TYPE5) シリーズ名 品種型格 (パッケージサフィックスは除く) MB9A310K MB9AF311K, MB9AF312K MB9A110K MB9AF111K, MB9AF112K (TYPE7) シリーズ名 MB9AA30N MB9A130N 品種型格 (パッケージサフィックスは除く) MB9AFA31L, MB9AFA31M, MB9AFA31N, MB9AFA32L MB9AFA32M, MB9AFA32N MB9AF131M, MB9AF131N, MB9AF132M, MB9AF132N (TYPE8) シリーズ名 品種型格 (パッケージサフィックスは除く) MB9AF154M, MB9AF154N, MB9AF154R, MB9AF155M MB9A150R MB9AF155N, MB9AF155R, MB9AF156M, MB9AF156N MB9AF156R (TYPE9) シリーズ名 MB9B520M MB9B320M MB9B120M March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 品種型格 (パッケージサフィックスは除く) MB9BF521K, MB9BF521L, MB9BF521M, MB9BF522K, MB9BF522L MB9BF522M, MB9BF524K, MB9BF524L, MB9BF524M MB9BF321K, MB9BF321L, MB9BF321M, MB9BF322K, MB9BF322L MB9BF322M, MB9BF324K, MB9BF324L, MB9BF324M MB9BF121K, MB9BF121L, MB9BF121M, MB9BF122K, MB9BF122L MB9BF122M, MB9BF124K, MB9BF124L, MB9BF124M 3 A P P L I C A T I O N N O T E 目次 1. はじめに .................................................................................................................................................... 6 2. 多機能タイマの仕様 .................................................................................................................................. 7 2.1 多機能タイマの概要 ....................................................................................................................... 7 3. 多機能タイマの設定方法 ........................................................................................................................... 9 3.1 フリーランタイマおよびアウトプットコンペア ............................................................................ 9 3.2 レジスタの基本設定と波形出力例 ................................................................................................ 12 3.3 デッドタイムタイマについて ....................................................................................................... 20 3.4 PPG タイマとの連携機能 ............................................................................................................. 27 3.5 ADC との連携機能 ....................................................................................................................... 36 3.6 三相モータ制御(正弦波出力サンプルプログラム) ................................................................... 37 4. サンプルプログラムについて .................................................................................................................. 41 5. 本版での主な変更内容 ............................................................................................................................. 42 4 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 図 3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3-10 3-11 3-12 3-13 3-14 3-15 3-16 3-17 3-18 3-19 3-20 3-21 3-22 3-23 3-24 FRT のモードおよび周期計算式 ................................................................................................ 10 FRT 1 チャネルに対して OCU 3 チャネルを使用した波形出力例 .............................................. 11 FRT 各チャネルに対し、OCU 1 チャネルを使用した波形出力例 ............................................. 11 MFT の出力波形例 1................................................................................................................... 12 MFT の出力波形例 2................................................................................................................... 13 MFT の出力波形例 3................................................................................................................... 14 MFT の出力波形例 4................................................................................................................... 15 MFT の出力波形例 5................................................................................................................... 16 MFT の出力波形例 6................................................................................................................... 17 MFT の出力波形例 7................................................................................................................. 18 MFT の出力波形例 8 ................................................................................................................. 19 ノンオーバラップ信号 ............................................................................................................. 20 MFT の出力波形例 9................................................................................................................. 21 MFT の出力波形例 10............................................................................................................... 22 MFT の出力波形例 11 ............................................................................................................... 23 MFT の出力波形例 12............................................................................................................... 24 MFT の出力波形例 13............................................................................................................... 26 MFT の出力波形例 14............................................................................................................... 29 MFT の出力波形例 15............................................................................................................... 31 MFT の出力波形例 16............................................................................................................... 33 MFT の出力波形例 17............................................................................................................... 35 ADC 起動トリガと FRT の関係 ................................................................................................ 36 正弦波と PWM 波形 ................................................................................................................. 37 三相モータ制御信号と PWM 出力 ............................................................................................ 37 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 5 A P P L I C A T I O N N O T E 1. はじめに 本アプリケーションノートは FM3 用「多機能タイマ」の設定方法を記載したものです。 多機能タイマは、三相相補 PWM 波形を生成することが可能です。白物家電、FA 機器や UPS 等で利用され ているインバータ制御に最適です。 本アプリケーションノートでは、この多機能タイマの基本仕様と、設定/出力波形の関係を、簡単に示しま す。本製品を利用したアプリケーション開発の際にご参照ください。また、FM3 ファミリのペリフェラルマ ニュアル タイマ編もあわせてご参照ください。 6 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E 2. 多機能タイマの仕様 2.1 多機能タイマの概要 多機能タイマは、三相モータ制御を実現する機能ブロックです。PPG, A/D コンバータ(以降、 ADC と記載します。 )と連携することで、多彩なモータ制御を実現できます。 機能 多機能タイマには、以下の機能があります。 • 任意の周期・パルス長の PWM 信号を出力できます(PWM 信号出力機能)。 • PWM 信号出力に同期して、PPG の起動ができます。PPG の出力信号を PWM 信号に重畳して 出力できます(DC チョッパ波形出力機能)。 • PWM 信号出力から、パワートランジスタの応答時間(デッドタイム)を確保したノンオーバラッ プ信号を生成できます(デッドタイマ機能)。 • 入力信号の変化タイミングや、パルス幅を PWM 信号出力に同期して取り込めます(インプッ ト・キャプチャ機能)。 • ADC の起動を PWM 信号出力に同期して任意のタイミングで行えます(ADC 起動機能)。 • モータ緊急停止割込み信号(DTTIX 入力信号)のノイズキャンセル処理を行います。有効な信号 入力が検出された場合、モータ停止時の端子状態を任意に設定可能です(DTIF 割込み機能)。 PPG(Programmable Pulse generator) : PWM 波形を出力することのができるタイマです。周期、Duty をソフトウェアで設定することができます。 ブロック構成 多機能タイマは、複数のタイマ群の総称になります。ですので、多機能タイマをユニットという単位で今後 表現します。多機能タイマ 1 ユニットは以下の機能ブロックにより構成されます。 • フリーラン・タイマ・ユニット :3 チャネル • アウトプット・コンペア・ユニット :6 チャネル(2 チャネル×3 ユニット) • 波形ジェネレータ・ユニット :3 チャネル • ノイズキャンセラ・ユニット :1 チャネル • インプット・キャプチャ・ユニット :4 チャネル(2 チャネル×2 ユニット) • ADC 起動コンペア・ユニット :3 チャネル • ADC 起動要因セレクタ・ユニット :3 チャネル 多機能タイマは、1 ユニットを使用することで、1 個の三相モータ制御が行える構成です。本ファミリには 本多機能タイマを複数ユニット搭載している製品があり、複数の三相モータ制御に対応できます。 本アプリケーションノートでは、多機能タイマユニット 0 を例にとり、多機能タイマの使用方法について サンプルプログラムと共に紹介します。 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 7 A P P L I C A T I O N N O T E 略語表記について 本アプリケーションノートでは、以下略称表記を用いて説明します。 8 CONFIDENTIAL MFT 多機能タイマ・ユニット PPG プログラマブル・パルスジェネレータ・ユニット FRT フリーラン・タイマ・ユニット OCU アウトプット・コンペア・ユニット WFG 波形ジェネレータ・ユニット ADCMP ADC 起動コンペア・ユニット ATSA ADC 起動要因セレクタ・ユニット FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E 3. 多機能タイマの設定方法 3.1 フリーランタイマおよびアウトプットコンペア • FRT は、MFT 内の各機能ブロックの動作基準となるカウンタ値を出力するタイマ機能ブロック です。 • FRT は、クロック・プリスケーラ, 16 ビットアップダウンカウンタ, 周期設定レジスタ(TCCP レ ジスタ), 制御回路から構成されます。 • MFT の 1 ユニットは、FRT を 3 個搭載した 3 チャネル構成です。それぞれの FRT が独立し た動作を行えます。 • OCU は、FRT のカウンタ値を基準として PWM 信号を生成出力する機能ブロックです。OCU か ら出力される PWM 信号の信号名は、それぞれ RT0~RT5 です。これらの信号は、WFG を経由 して LSI 外部出力端子へ出力されます。 • OCU は、コンペア値格納レジスタ(OCCP レジスタ), 制御回路から構成されます。それぞれの回 路を 2 組持った 2 チャネル構成が基本単位です。 • MFT の 1 ユニットは、OCU を 3 個搭載しており、6 個のコンペアレジスタ, 6 本の出力信号端 子, 6 本の割込み出力があります(2 チャネル×3 ユニット構成)。 OCU は、FRT のカウンタ値と一致した際に端子出力レベルを反転させたりします。連動させる FRT はソ フトウェアにより 3 チャネルのうちのいずれかを選択することができます。例えば、1 ユニットの OCU 内 の各チャネルをそれぞれ異なる FRT に連動させることができます。 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 9 A P P L I C A T I O N N O T E FRT はアップカウントモードとアップダウンカウントモードの 2 種類が存在します。 図 1 に、FRT のカウントモードについて示します。FRT の周期設定はコンペアクリアバッファレジスタ (TCCP0 レジスタ) にカウント数を設定します。 図 3-1 FRT のモードおよび周期計算式 カウント数 TCCP0 アップカウントモード FRT 周期=TCCP0 設定値 × 時間 カウントクロック周期 カウント数 TCCP0 時間 アップダウンカウントモード FRT 周期=TCCP0 設定値 × カウントクロック周期 ×2 図 2、および図 3 に、FRT と OCU を利用した出力波形例を示しました。 図 2 のように、1 つの FRT に同期して OCU 出力を行うことができます。 図 3 は、3 つの FRT を利用して、それぞれ OCU を個別に連動させて出力を行う波形例です。 注意点として、各 FRT 自体は同期して起動できない点が上げられます。これは FRT 起動ビットがそれぞれ 別のレジスタに存在するためです。 10 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N 図 3-2 N O T E FRT 1 チャネルに対して OCU 3 チャネルを使用した波形出力例 カウント数 OCCP4 OCCP2 OCCP0 時間 RTO0 RTO2 RTO4 図 3-3 FRT 各チャネルに対し、OCU 1 チャネルを使用した波形出力例 カウント数 OCCP0 時間 RTO0 カウント数 OCCP2 時間 RTO2 カウント数 OCCP4 RTO4 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 時間 11 A P P L I C A T I O N 3.2 N O T E レジスタの基本設定と波形出力例 以下に、FRT、OCU を利用した波形出力例を示します。 OCU はチャネル 0 とチャネル 1 を使用、FRT はチャネル 0 を使用します。 以下 MFT のレジスタ設定について、[レジスタ名]=[設定値] で示します。以下断りがない限り、 Φ = PCLK(周辺機能クロック)= 40MHz で設定しています。 MFT 出力を行う場合、ポート機能設定レジスタ(PFR)を周辺機能の入出力端子として設定、 拡張ポート機能端子設定レジスタ(EPFR)を MFT 出力に設定します。 (1)出力波形例 1 <主なレジスタ設定> TCCP0 = 0x7FFF // FRT 周期: 0x7FFF ×1/40MHz TCSA0 = 0x21F0 // FRT:アップダウンカウントモード OCCP0 = 0x1000 // RTO0 L 幅 0x1000 ×1/40MHz ×2 = 0.20ms OCCP1 = 0x3000 // RTO1 L 幅 0x3000 ×1/40MHz ×2 = 0.61ms ×2 = 1.64ms OCSA10 = 0x3F OCSB10 = 0x60 OCSC10 = 0x00 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 4 に示します。 図 3-4 MFT の出力波形例 1 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT 1.64ms RTO1 端子 0.61ms RTO0 端子 0.20ms 12 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (2)出力波形例 2 出力波形例 1 からの変更箇所は、OCSB10 レジスタのビット 12(CMOD ビット)です。 CMOD ビット = 1、かつ OCSC10 レジスタの MOD ビット = 0 の場合、RTO0(または偶数チャネル)の 出力は、FRT カウント値と対応する OCCP0 の値の一致でのみ反転するのに対して、RTO1(または奇数 チャネル)の出力は、FRT カウント値と、それぞれ OCCP1 と OCCP0 の値が一致する毎に極性反転を行い ます。 <主なレジスタ設定> TCCP0 = 0x7FFF //周期 0x7FFF ×1/40MHz ×2 = 1.64ms TCSA0 = 0x21F0 //FRT:アップダウンカウントモード OCCP0 = 0x1000 //RTO0 L 幅 0x1000 ×1/40MHz ×2 = 0.20ms OCCP1 = 0x3000 //RTO1 H 幅 0x3000 ×1/40MHz ×2 = 0.61ms OCSA10 = 0x3F OCSB10 = 0x70 //CMOD ビット = 1 OCSC10 = 0x00 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 5 に示します。 図 3-5 MFT の出力波形例 2 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT 1.64ms 0.61ms RTO1 端子 RTO0 端子 0.20ms March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 13 A P P L I C A T I O N N O T E (3)出力波形例 3 出力波形例 1 からの変更箇所は、OCSC10 レジスタの各ビット(MOD ビット)です。 CMOD ビット=0、かつ OCSC10 レジスタの MOD ビット = 1 の場合、端子出力 RTO1, RTO0 は、それぞ れ OCCP1 と OCCP0 の値が FRT カウント値とアップカウント時に一致すると“H”に、ダウンカウント時に 一致すると“L”になります。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz ×2 = 1.64ms TCSA0 = 0x21F0 // FRT:アップダウンカウントモード OCCP0 = 0x1000 // RTO0 L幅 0x1000 ×1/40MHz ×2 = 0.20ms OCCP1 = 0x3000 // RTO1 L幅 0x3000 ×1/40MHz ×2 = 0.61ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x03 // MOD1 ビット = , MOD0 ビット = 1 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 6 に示します。 図 3-6 MFT の出力波形例 3 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT 1.64ms 0.61ms RTO1 端子 RTO0 端子 14 CONFIDENTIAL 0.20ms FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (4)出力波形例 4 出力波形例 1 からの変更箇所は、OCSB10 レジスタのビット 12(CMOD ビット)および OCSC10 レジス タの各ビット(MOD ビット)です。 本設定では、出力波形例 3 の出力波形の反転した出力になります。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz ×2 = 1.64ms TCSA0 = 0x21F0 // FRT:アップダウンカウントモード OCCP0 = 0x1000 // RTO0 H幅 0x1000 ×1/40MHz ×2 = 0.20ms OCCP1 = 0x3000 // RTO1 H幅 0x3000 ×1/40MHz ×2 = 0.61ms OCSA10 = 0x3F OCSB10 = 0x70 // CMOD ビット = 1 OCSC10 = 0x03 // 各 MOD ビット = 1 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 7 に示します。 図 3-7 MFT の出力波形例 4 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT 0.61ms RTO1 端子 RTO0 端子 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 0.20ms 15 A P P L I C A T I O N N O T E (5)出力波形例 5 出力波形例 1 からの変更箇所は、TCSA0 レジスタの MODE ビットです。本設定により、FRT はアップカ ウントモードで動作します。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RTO0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RTO1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x00 // 各 MOD ビット = 0 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 8 に示します。 図 3-8 MFT の出力波形例 5 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT 0.82ms RTO1 端子 0.20ms 0.82ms RTO0 端子 16 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (6)出力波形例 6 出力波形例 5 からの変更箇所は、OCSB10 のビット 12(CMOD ビット)です。 CMOD ビット = 1、かつ OCSC10 レジスタの MOD ビット = 0 の場合、RTO0(または偶数チャネル)の 出力は、FRT カウント値と対応する OCCP0 の値の一致でのみ反転するのに対して、RTO1(または奇数 チャネル)の出力は、FRT カウント値と、それぞれ OCCP1 と OCCP0 の値が一致する毎に極性反転を行い ます。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RTO0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RTO1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x70 // CMOD ビット = 1 OCSC10 = 0x00 // 各 MOD ビット = 0 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 9 に示します。 図 3-9 MFT の出力波形例 6 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT 0.82ms RTO1 端子 0.20ms 0.82ms RTO0 端子 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 17 A P P L I C A T I O N N O T E (7)出力波形例 7 出力波形例 5 からの変更箇所は、OCSC10 の各ビット(MOD ビット)です。 CMOD ビット = 0、かつ OCSC10 レジスタの MOD ビット = 1 の場合、端子出力 RTO1, RTO0 は、対応す る OCCP の値と FRT カウント値がアップカウント時に一致すると”H”に、 ダウンカウント時に一致すると”L” になりますが、 FRT がアップカウントモードのため、 コンペア一致しても常に”H”がセットされるため、 RTO1、 RTO0 共に”H”出力固定になります。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RTO0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RTO1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x03 // 各 MOD ビット = 1 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 10 に示します。 図 3-10 MFT の出力波形例 7 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT RTO1 端子 RTO0 端子 18 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (8)出力波形例 8 出力波形例 5 からの変更箇所は、OCSB10 レジスタのビット 12(CMOD ビット)および OCSC10 レジス タの各ビット(MOD ビット)です。CMOD ビット = 1、かつ OCSC10 レジスタの MOD ビット = 1 の場 合、端子出力 RTO1, RTO0 は、対応する OCCP の値と FRT カウント値がアップカウント時に一致すると”L” に、ダウンカウント時に一致すると”H”になりますが、FRT がアップカウントモードのため、コンペア一致 しても常に”L”がセットされるため、RTO1、RTO0 共に”L”出力固定になります。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RTO0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RTO1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 1 OCSC10 = 0x03 // 各 MOD ビット = 1 RTO1 端子、RTO0 端子の出力波形、および FRT の関係について図 11 に示します。 図 3-11 MFT の出力波形例 8 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT RTO1 端子 RTO0 端子 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 19 A P P L I C A T I O N 3.3 N O T E デッドタイムタイマについて MFT には、ノンオーバラップ信号を生成するために、デッドタイムタイマが存在します。 MFT には、1 対(2 チャネル)出力に対して 1 チャネルのデッドタイムタイマが存在します。 MFT1 ユニットあたり、3 対(合計 6 チャネル)出力があるので、3 チャネルのデッドタイムタイマが存在 します。 ※IGBT などのスイッチング素子のスイッチ切替え時において、 スイッチ切替えの遅延による信号の衝突 (貫 通電流)を防止するために必要で、タイマ出力をともに L にする期間が必要になります。このような信号を ノンオーバラップ信号と呼んでいます。 図 3-12 ノンオーバラップ信号 デッドタイムタイマの コンペア値 デッドタイムタイマの カウント動作 内部RTx 信号 RTOx(奇数側) 出力信号 RTOx(偶数側) 出力信号 デッドタイム なお、デッドタイムタイマは、使用しない場合は内部インターバルタイマとしても利用可能です。 以下に、サンプルプログラムを用いてデッドタイムタイマを利用した場合の波形出力について紹介します。 20 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (1) 出力波形例 9 RTO0, RTO1 の出力に注目する為、デッドタイムタイマ用のレジスタ WFTM10, WFSA10 のレジスタ設定 のみを追加しています。WFSA10 レジスタの TMD[2:0]ビットを 0b010 に設定すると、内部 RT1, RT0 の立 上りエッジにより、デッドタイムタイマ 0 が起動されデッドタイムタイマのカウンタがオーバフローするま での間 RTO1, RTO0 端子から H が出力されます。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms) TCSA0 = 0x21D0 // FRT:アップカウントモード) OCCP0 = 0x1000 // RT0 L 幅 = H 幅 = 0.82ms) OCCP1 = 0x3000 // RT1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms) OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x00 // 各 MOD ビット = 0 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0010 // TMD = 0b010 0x500 ×1/40MHz = 32us RTO1 端子、RTO0 端子の出力波形、およびデッドタイムタイマの関係について図 13 に示します。 図 3-13 MFT の出力波形例 9 デットタイムタイマ WFSA10 = 0x0500 RT0 RT1 H幅 32us 位相差 0.2ms RTO1 端子 RTO0 端子 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 0.20ms 21 A P P L I C A T I O N N O T E (2)出力波形例 10 出力波形例 9 から、OCSB10 レジスタの CMOD ビットのみ 1 に変更します。RT0(または偶数チャネル) は、対応する OCCP レジスタの一致でのみ反転するのに対して、RT1(または奇数チャネル)は、それぞ れ OCCP1 レジスタと OCCP0 レジスタの一致で反転します。この波形の立上りをトリガとして、デッドタ イムタイマが起動して RTO1, RTO0 からデッドタイムタイマのカウンタがオーバフローするまでの間”H”が 出力されます。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RT0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RT1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x70 // CMOD ビット = 1 OCSC10 = 0x00 // 各 MOD ビット = 0 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0010 0x500×1/40MHz = 32us // TMD = 0b010 RTO1 端子、RTO0 端子の出力波形、およびデッドタイムタイマの関係について図 14 に示します。 図 3-14 MFT の出力波形例 10 デットタイムタイマ WFSA10 = 0x0500 RT0 RT1 L幅 H幅 0.2ms H幅 32us 0.82ms RTO1 端子 RTO0 端子 22 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (3)出力波形例 11 CMOD ビットが 0、かつ MOD ビットが 1 であり、更にフリーランタイマがアップカウントモードのため、 コンペア一致しても RT 信号は常に 1(”H”レベル)がセットされることになります(出力波形例 7 参照) 。 そのため、デッドタイムタイマが起動しないため、出力は”L”出力固定になります。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RTO0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RTO1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x03 // 各 MOD ビット = 1 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0010 0x500 ×1/40MHz = 32us // TMD = 0b010 RTO1 端子、RTO0 端子の出力波形、およびデッドタイムタイマの関係について図 15 に示します。 図 3-15 WFSA10 = 0x0500 MFT の出力波形例 11 デットタイムタイマは起動せず。 H H RT0 RT1 H 出力のため立上りエッジが発生しない RTO1 端子 RTO0 端子 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 23 A P P L I C A T I O N N O T E (4)出力波形例 12 CMOD ビットが 1、かつ MOD ビットが1であり、更にフリーランタイマがアップカウントモードのため、 コンペア一致しても RT 信号は常に 0(L レベル)がセットされることになります(出力波形例 8 参照) 。そ のため、デッドタイムタイマが起動しないため、出力は L 出力固定になります。 (結果として、出力波形例 11 と同様の波形となります。 ) <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RTO0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RTO1 L 幅 = H 幅 = 0.82ms, RTO0 との位相差 0x2000 ×1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x70 // CMOD ビット = 1 OCSC10 = 0x03 // 各 MOD ビット = 1 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0010 0x500 ×1/40MHz = 32us // TMD = 0b010 RTO1 端子、RTO0 端子の出力波形、およびデッドタイムタイマの関係について図 16 に示します。 図 3-16 WFSA10 = 0x0500 MFT の出力波形例 12 デットタイムタイマは起動せず。 RT0 RT1 L L L 出力のため立上りエッジが発生しない RTO1 端子 RTO0 端子 24 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E (5)出力波形例 13 WFSA10 レジスタの TMD[2:0]ビットを 0b100 に設定することで、RT1 信号によるノンオーバラップ信号を 生成できます。このとき、OCSB10 レジスタの CMOD ビットは必ず”1”に設定してください。FRT をアッ プダウンカウントモードにして、デッドタイムタイマを利用する場合の例を示します。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz ×2 = 1.64ms TCSA0 = 0x21F0 // FRT:アップダウンカウントモード OCCP0 = 0x1000 OCCP1 = 0x3000 // RTO1 H幅 0x3000×1/40MHz ×2 = 0.61ms OCSA10 = 0x3F OCSB10 = 0x70 // CMOD ビット = 1 OCSC10 = 0x03 // 各 MOD ビット = 1 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0020 // TMD =0b100 0x500 ×1/40MHz = 32us RTO1 端子、RTO0 端子の出力波形、およびデッドタイムタイマの関係について図 17 に示します。 RTO1 端子と RTO0 端子の出力の位相差は、デッドタイムタイマで生成した値の 2 倍となります。 RTO1 端子 L 幅:RTO1 H 幅(0.61ms)+デッドタイムタイマ周期(32us)=646us RTO0 端子 H 幅:RTO1 H 幅(0.61ms)- デッドタイムタイマ周期(32us)=582us また、RTO0/1 のレベルを反転出力させたい場合は、DTCR レジスタの DMOD ビットを”1”に設定してく ださい。 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 25 A P P L I C A T I O N 図 3-17 N O T E MFT の出力波形例 13 デッドタイムタイマ WFSA10 = 0x0500 RT1 H幅 RTO1 L 幅 614us 646us 位相差 32us RTO1 端子 RTO0 H 幅 582us RTO0 端子 26 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N 3.4 N O T E PPG タイマとの連携機能 MFT は、PPG タイマ(PPG: Programmable Pulse Generator)と内部接続しており、RTOx 端子からの PPG タイマの出力を行えます。ここでは、MFT と PPG タイマの連携機能について、サンプルプログラムを用い た波形出力とあわせて紹介します。 PPG タイマの起動は、下記 3 種類が存在します。 (1)ソフトウェアによるトリガビットによる起動 (TRG レジスタの PEN ビット設定による) 、 (2)タイミングジェネレータによる起動 (同時起動が可能) (3)MFT の内部 GATE 信号による起動 (GATEC レジスタによる動作モード設定が必要) GATE 信号の生成方法は、 WFSA10 レジスタの TMD ビット、 GTEN ビットの組み合わせにより決まります。 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 27 A P P L I C A T I O N N O T E (1)出力波形例 14 WFSA10 レジスタの TMD ビット、GTEN ビットと PGEN ビットの組み合わせにより、PPG の出力波形が RTO 端子より出力されます。下記サンプル例では、RTO0 からあらかじめ起動した PPG タイマ出力を、内 部 RT0 信号が H レベルの期間だけ出力する設定にしています。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 OCCP1 = 0x3000 // RTO1 H幅 0x3000 ×1/40MHz ×2 = 0.61ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x00 // 各 MOD ビット = 0 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0408 0x500 ×1/40MHz = 32us // TMD =0b001, PGEN = 0b01:RT0 に PPG の出力を許可 PPGC0 = 0x00 PRLL0 = 0x80 // PPG L 幅 0x80 ×1/40MHz = 3us PRLH0 = 0x80 // PPG H 幅 GATEC0 = 0x00 // TRG レジスタにより PPG 起動 0x80 ×1/40MHz = 3us (フリーランタイマを起動する前に、PPG タイマを起動させておく必要があります。 ) RTO1 端子、RTO0 端子の出力波形、および各タイマの関係について図 18 に示します。 RTO1 端子は WFSA10 レジスタにて PPG 出力許可を行っていないため、内部 RT1 信号がそのまま RTO1 端子に出力されています。 28 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N 図 3-18 N O T E MFT の出力波形例 14 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT RT1 信号 H 期間に PPG 信号が 出力される RT0 信号 非同期 PPG0 信号 RTO1 端子 0.2ms RTO0 端子 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 0.82ms 0.82ms 29 A P P L I C A T I O N N O T E (2)出力波形例 15 下記サンプル例では、RTO0 端子から、PPG タイマ出力を、内部 RT0 信号が H レベルの期間だけ出力する 設定にしています。 (1)との違いは、PPG タイマの起動がソフトウェアトリガによるものでなく、RT0 か ら生成された GATE 信号により起動されたものとなります。 PPG の出力について MFT と同期させたい場合はこちらの設定にしてください。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 OCCP1 = 0x3000 // RTO1 H幅 0x3000 ×1/40MHz ×2 = 0.61ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x00 // 各 MOD ビット = 0 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0408 // TMD =0b001, PGEN = 0b01:RT0 に PPG の出力を許可, GTEN = 0b10 0x500 ×1/40MHz = 32us PPGC0 = 0x00 PRLL0 = 0x80 // PPG L 幅 0x80 ×1/40MHz = 3us PRLH0 = 0x80 // PPG H 幅 GATEC0 = 0x02 // MFT からの起動信号による起動 0x80 ×1/40MHz = 3us RTO1 端子、RTO0 端子の出力波形、および各タイマの関係について図 19 に示します。 RTO1 端子は WFSA10 レジスタにて PPG 出力許可を行っていないため、内部 RT1 信号がそのまま RTO1 端子に出力されています。 30 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N 図 3-19 N O T E MFT の出力波形例 15 TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 FRT RT1 信号 立上りで PPG 起動。 立下りで PPG 停止 RT0 信号 同期 PPG0 信号 RTO1 端子 0.2ms RTO0 端子 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 0.82ms 0.82ms 0.82ms 31 A P P L I C A T I O N N O T E (3)出力波形例 16 WFSA0 レジスタの TMD[2:0]ビットを 0b010 に設定すると、内部 RT0/RT1 の立上りエッジにより、デッド タイムタイマ 0 が起動します。このとき WFSA10 レジスタの GTEN ビットが 0、かつ PGEN ビットが 1 の場合、デッドタイムタイマのカウンタがアンダフローするまでの間 RTO0 端子から PPG タイマのパルス が出力されます。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 OCCP1 = 0x3000 // RTO1 H幅 0x3000 ×1/40MHz ×2 = 0.61ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x00 // 各 MOD ビット = 0 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0410 0x500 ×1/40MHz = 32us // TMD =0b010, PGEN = 0b01:RT0 に PPG の出力を許可, GTEN = 0b00 PPGC0 = 0x00 PRLL0 = 0x80 // PPG L 幅 0x80 ×1/40MHz = 3us PRLH0 = 0x80 // PPG H 幅 GATEC0 = 0x00 // TRG レジスタにより PPG 起動 0x80 ×1/40MHz = 3us (FRT を起動する前に、PPG タイマを起動させてください。 ) RTO1 端子、RTO0 端子の出力波形、およびデッドタイムタイマの関係について図 20 に示します。RTO1 端子は WFSA10 レジスタにて PPG 出力許可を行っていないため、デッドタイムタイマがアンダフローす るまで H レベルを出力します。 32 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N 図 3-20 N O T E MFT の出力波形例 16 FRT TCCP0 = 0x7FFF OCCP1 = 0x3000 OCCP0 = 0x1000 RT0/1 の立上りで デットタイムタイマ起動 RT1 信号 RT0 信号 非同期 PPG0 信号 RTO1 端子 200us 1.64ms RTO0 端子 拡大 32us デッドタイムタイマのカウント時間 デッドタイムタイマのカウント時間中 32us PPG タイマパルスを出力 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 33 A P P L I C A T I O N N O T E (4)出力波形例 17 WFSR10 レジスタの TMD[2:0]ビットを 0b010 に設定し、GTEN ビットが 1、かつ PGEN ビットが 1 の場 合、RT0/1 の立上りエッジによりデッドタイムタイマのカウンタをスタートし、アンダフローするまでの間 RTO0 端子から PPG タイマのパルスが出力されます。 (3)との違いは、PPG タイマの起動がソフトウェアトリガによるものでなく、RT0 から生成された GATE 信号により起動されたものとなります。 PPG の出力について多機能タイマと同期させたい場合はこちらの設定にしてください。 複数の GTEN ビットに 1 を設定した場合、ゲート信号は各タイマ動作期間中の信号を OR した信号になり ます。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF ×1/40MHz = 0.82ms TCSA0 = 0x21D0 // FRT:アップカウントモード OCCP0 = 0x1000 // RT0 L 幅 = H 幅 = 0.82ms OCCP1 = 0x3000 // RT1 L 幅 = H 幅 = 0.82ms, RT0 との位相差 0x200 × 1/40MHz = 0.2ms OCSA10 = 0x3F OCSB10 = 0x60 // CMOD ビット = 0 OCSC10 = 0x00 // 各 MOD ビット = 0 WFTM10 = 0x0500 // 周期 WFSA10 = 0x0450 0x500 ×1/40MHz = 32us // TMD = 0b010, PGEN = 0b01:RT0 に PPG の出力を許可, GTEN = 0b01 RTO1 端子、RTO0 端子の出力波形、およびデッドタイムタイマの関係について図 21 に示します。 RTO1 端子は WFSA10 レジスタにて PPG 出力許可を行っていないため、デッドタイムタイマがアンダ フローするまで H レベルを出力します。 34 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N 図 3-21 N O T E MFT の出力波形例 17 FRT CPCLR0 = 0x8000 OCCP1 = 0x3000 OCCP0 = 0x1000 RT1 信号 RT0/1 の立上りで デットタイムタイマ起動 RT0 信号 RT0 の立上りで PPG 起動。 立下りで PPG 停止 同期 PPG0 信号 RTO1 端子 200us 1.64ms RTO0 端子 拡大 32us デッドタイムタイマのカウント時間 デッドタイムタイマのカウント時間中 32us PPG タイマパルスを出力 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 35 A P P L I C A T I O N 3.5 N O T E ADC との連携機能 MFT は ADC と内部接続しており、ADC の起動を PWM 信号出力に同期して任意のタイミングで行えます。 以下に、FRT、ADC 起動コンペアを利用した例を示します。 <主なレジスタ設定> TCCP0 = 0x7FFF // 周期 0x7FFF×1/40MHz ×2 = 1.64ms TCSA0 = 0x21F0 // FRT:アップダウンカウントモード ACSA = 0x0100 // アップカウント時にコンペア ACSB = 0x0000 // バッファ機能:無効 ACCP = 0x2800 // コンペア値 ATSA = 0x0000 ADC 起動トリガ、および FRT の関係について図 22 に示します。 図 3-22 ADC 起動トリガと FRT の関係 TCCP0 = 0x7FFF ACCP = 0x2800 FRT ADC 起動トリガ ADC 変換 36 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N 3.6 N O T E 三相モータ制御(正弦波出力サンプルプログラム) MFT を 1 ユニット使用して、 三相モータ駆動用のトランジスタを制御する PWM 波形信号を生成できます。 ここでは、正弦波相当のルックアップテーブルを元にしたサンプルプログラムを用い、MFT のユニット 0 を使用した三相 PWM 波形出力 RTO5~RTO0 (RTO5,3,1 と RTO4,2,0 はそれぞれ極性が逆) を紹介します。 正弦波相当のルックアップテーブルから値を OCCP レジスタへ順次ロードしながら、OCU から正弦波相当 の PWM 波形を生成できます。正弦波とそれに相当する OCU 出力の PWM 波形を図 23 に示します。 また 120 度づつ位相シフトした三相モータ制御用の正弦波形と WFG からの PWM 出力波形を図 24 に示し ます。 図 3-23 正弦波と PWM 波形 正弦波 PWM 出力 図 3-24 三相モータ制御信号と PWM 出力 三相モータ 制御信号 PWM 出力 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 37 A P P L I C A T I O N N O T E 本サンプルプログラムでは、各機能ブロックを以下のモードで動作させます。 FRT :アップダウンカウントモード, 割込み有り OCU :アップダウンカウントモード(Active High), 割込み無し WFG :RT-デッドタイマモード(Active High) ADCMP/ATSA :アップカウント中の一致で、ADC ユニット 0 に対しスキャン変換起動指示 <サンプルプログラムの主なレジスタ設定> /***************************************************************************************************************** ・ FRT チャネル 0 に、アップダウンカウントモード動作、Zero 値検出割込み許可を設定。 ・ FRT チャネル 0 の動作周期を設定。本例では、"0x5FFF"を設定しており、FRT のプリスケーラ設定 =1/4、PCLK=40MHz の条件で、FRT のカウント周期は 4.915ms。 *****************************************************************************************************************/ TCCP0 = 0x5FFF // 周期 0x5FFF ×1/40MHz ×2 ×4 = 4.915ms TCSA0 = 0x20F2 // FRT:アップダウンカウントモード、クロック分周プリスケーラ設定:1/4、 // Zero 値検出割込み:許可 /***************************************************************************************************************** ・ OCU チャネル 1,3,5 に FRT チャネル 0 を接続設定。 ・ OCU チャネル 1,3,5 に、アップダウンカウントモード(Active High)動作を設定。 また、出力信号(RT1,RT3,RT5)の初期出力レベルを指定。 *****************************************************************************************************************/ 38 CONFIDENTIAL OCFS10 = 0x0000 // 各 OCU チャネルに FRT チャネル 0 を接続 OCFS32 = 0x0000 // 各 OCU チャネルに FRT チャネル 0 を接続 OCFS54 = 0x0000 // 各 OCU チャネ 5 に FRT チャネル 0 を接続 OCSA10 = 0x02 // OCCP のバッファ機能:有効、OCU チャネル 1:動作許可 OCSA32 = 0x02 // OCCP のバッファ機能:有効、OCU チャネル 3:動作許可 OCSA54 = 0x02 // OCCP のバッファ機能:有効、OCU チャネル 5:動作許可 FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E OCSB10 = 0x00 //RT1 出力レベル:Low、バッファ転送:Zero 値検出転送 OCSB32 = 0x00 //RT1 出力レベル:Low、バッファ転送:Zero 値検出転送 OCSB54 = 0x00 //RT1 出力レベル:Low、バッファ転送:Zero 値検出転送 OCSC = 0x2A //OCU チャネル 1,3,5 動作モード:アップダウン(Active High) /***************************************************************************************************************** OCU 出力信号 RT1, 3, 5 の変化タイミング設定。 書き込まれた値は、バッファレジスタに書き込まれた後、Zero 値検出タイミングで OCCP1, OCCP3, OCCP5 レジスタに転送) *****************************************************************************************************************/ OCCP1 = 0x4800 OCCP3 = 0x4800 OCCP5 = 0x4800 /***************************************************************************************************************** ・ WFG 各チャネルに RT-デッドタイマモード(Active High)の初期設定 ・ WFG のこのモードでは、OCU 奇数チャネルの出力信号(RT1, RT3, RT5)に対し、 WFG の偶数出力信号(RTO0, RTO2, RTO4)は、それぞれ RT1, RT3, RT5 と同じレベル, 奇数出力信号(RTO1, RTO3, RTO5)はそれぞれ逆のレベルの信号が出力。 *****************************************************************************************************************/ WFSA10 = 0x0021 // TMD=0b100, PGEN = 0b00, PSEL = 0b00, GTEN = 0b00, DCK = 0b001) WFSA32 = 0x0021 // TMD=0b100, PGEN = 0b00, PSEL = 0b00, GTEN = 0b00, DCK = 0b001) WFSA54 = 0x0021 // TMD=0b100, PGEN = 0b00, PSEL = 0b00, GTEN = 0b00, DCK = 0b001) /***************************************************************************************************************** ・ WFG 各チャネルにデッドタイムを設定。本例では、"0x0014"を設定しており、WFG の プリスケーラ設定 = 1/2, PCLK = 40MHz の条件で、挿入されるデッドタイムは 1.0us。 *****************************************************************************************************************/ WFTM10 = 0x0014 //デッドタイム期間 (0x14 ×1/40MHz ×2 = 1.0us) WFTM32 = 0x0014 //デッドタイム期間 (0x14 ×1/40MHz ×2 = 1.0us) WFTM54 = 0x0014 //デッドタイム期間 (0x14 ×1/40MHz ×2 = 1.0us) March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 39 A P P L I C A T I O N N O T E /***************************************************************************************************************** ・ ADCMP チャネル 0 に、FRT のアップカウント時の一致条件で ADC ユニット 0 に AD 変換起動 指示するよう設定。 (本サンプルプログラムでは AD 変換起動指示のみで、実際の ADC 動作は行っていません。 ) *****************************************************************************************************************/ ACSA = 0x0001 // ADC 起動タイミング:アップカウント時のみ ACSB // バッファ機能:無効 = 0x0000 ACCP0 = 0x2800 // ADC に対する起動タイミングを指定 ATSA = 0x0000 // ADCMP からの変換起動信号をスキャン変換起動信号として選択 /***************************************************************************************************************** MFT/FRT 割込みハンドラ内 ・ FRT チャネル 0 は、カウント値が"0x0000"になった時点で、Zero 値検出割込みを発生 (Zero 値検出割込みは、FRT カウント開始の最初の Zero 値では発生しません) 。 ・ 割込みハンドラ内で OCCP1, OCCP3, OCCP5 に正弦波ルックアップテーブル値を更新。 ・ Zero 値検出フラグをクリアし、割込みから復帰。 *****************************************************************************************************************/ TCSA0:IRQZF ビット = 0 40 CONFIDENTIAL // Zero 値検出フラグクリア OCCP1 = “sinVal1” // 正弦波ルックアップテーブル値 OCCP3 = “sinVal3” // sinVal1 から位相差 120 度 OCCP5 = “sinVal5” // sinVal3 から位相差 120 度 FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E 4. サンプルプログラムについて 本アプリケーションノートに対応したサンプルプログラムを準備しました。 多機能タイマの初期設定を行うプログラムを、MFT.c の中に定義しています。 サンプルプログラム 1 3.2 章、3.3 章、3.5 章の各波形例のレジスタ設定を参考に、修正の上動作をご確認下さい。 サンプルプログラム 2 3.6 章のサンプルプログラムになります。 サンプルプログラムは IAR Embedded Workbench for ARM および Keil MDK-ARM によって 作成されています。 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 41 A P P L I C A T I O N N O T E 5. 本版での主な変更内容 ページ 場所 変更箇所 Revision 1.0 - 42 CONFIDENTIAL - Initial release FM3_AN706-00081-1v0-J, March 12, 2014 A P P L I C A T I O N N O T E AN706-00081-1v0-J Spansion • Application Note FM3 ファミリ 32 ビット・マイクロコントローラ 多機能タイマの設定方法 2014 年 3 月 Rev. 1.0 発行 編集 Spansion Inc. マーケティングコミュニケーション部 March 12, 2014, FM3_AN706-00081-1v0-J CONFIDENTIAL 43 A P P L I C A T I O N N O T E 免責事項 本資料に記載された製品は、通常の産業用, 一般事務用, パーソナル用, 家庭用などの一般的用途 (ただし、用途の限定は ありません) に使用されることを意図して設計・製造されています。 (1) 極めて高度な安全性が要求され、仮に当該安全 性が確保されない場合、社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 (原子力施設に おける核反応制御, 航空機自動飛行制御, 航空交通管制, 大量輸送システムにおける運行制御, 生命維持のための医療機器, 兵器システムにおけるミサイル発射制御等をいう) 、ならびに(2) 極めて高い信頼性が要求される用途 (海底中継器, 宇 宙衛星等をいう) に使用されるよう設計・製造されたものではありません。上記の製品の使用法によって惹起されたいか なる請求または損害についても、Spansion は、お客様または第三者、あるいはその両方に対して責任を一切負いません。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても、結果的に人身事故, 火災事故, 社会的 な損害を生じさせないよう、お客様において、装置の冗長設計, 延焼対策設計, 過電流防止対策設計, 誤動作防止設計など の安全設計をお願いします。本資料に記載された製品が、外国為替及び外国貿易法、米国輸出管理関連法規などの規制に基 づき規制されている製品または技術に該当する場合には、本製品の輸出に際して、同法に基づく許可が必要となります。 商標および注記 このドキュメントは、断りなく変更される場合があります。本資料には Spansion が開発中の Spansion 製品に関する情報 が記載されている場合があります。Spansion は、それらの製品に対し、予告なしに仕様を変更したり、開発を中止したり する権利を有します。このドキュメントに含まれる情報は、現状のまま、保証なしに提供されるものであり、その正確性, 完 全性, 実施可能性および特定の目的に対する適合性やその市場性および他者の権利を侵害しない事を保証するものでなく、 また、明示, 黙示または法定されているあらゆる保証をするものでもありません。Spansion は、このドキュメントに含まれ る情報を使用することにより発生したいかなる損害に対しても責任を一切負いません。 Copyright © 2014 Spansion Inc. All rights reserved. ® ® ® TM TM 商標:Spansion , Spansion ロゴ (図形マーク), MirrorBit , MirrorBit Eclipse , ORNAND 及びこれらの組合せは、米 国・日本ほか諸外国における Spansion LLC の商標です。第三者の社名・製品名等の記載はここでは情報提供を目的として 表記したものであり、各権利者の商標もしくは登録商標となっている場合があります。 44 CONFIDENTIAL FM3_AN706-00081-1v0-J, March 12, 2014