Cypress ( )
外部割込みの設定方法 32-BIT MICROCONTROLLER FM3 ファミリアプリケーションノート APPLICATION NOTE ARM is the registered trademark of ARM Limited in the EU and other countries. Cortex is the trademark of ARM Limited in the EU and other countries. Publication Number AN706-00003 Revision 3.1 Issue Date January 31, 2014
AN706-00003-3v1-J, January 31, 2014
目次 目次... 3 対象製品... 4 1 はじめに... 8 2 外部割込み... 9 2.1 割込み (NVIC)... 9 2.2 割込み (IRQ04 一括読出しレジスタ )... 11 2.3 レジスタ... 11 2.4 I/O ポート設定レジスタ... 11 2.5 APB2 バスクロック... 12 3 設定例 ( サンプルプログラム )... 13 3.1 サンプルプログラムについて... 13 3.2 設定手順例... 14 4 使用上の注意事項... 16 改版履歴... 17 January 31, 2014, AN706-00003-3v1-J 3
対象製品 本アプリケーションノートに記載されている内容の対象製品は 下記の通り です (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) MB9A310A MB9A110A MB9AF311LA,MB9AF312LA,MB9AF314LA MB9AF311MA,MB9AF312MA,MB9AF314MA,MB9AF315MA, MB9AF316MA MB9AF311NA,MB9AF312NA,MB9AF314NA,MB9AF315NA, MB9AF316NA MB9AF111LA,MB9AF112LA,MB9AF114LA MB9AF111MA,MB9AF112MA,MB9AF114MA,MB9AF115MA, MB9AF116MA MB9AF111NA,MB9AF112NA,MB9AF114NA,MB9AF115NA, MB9AF116NA 4 AN706-00003-3v1-J, January 31, 2014
(TYPE2) MB9BD10T MB9BFD16S, MB9BFD17S, MB9BFD18S MB9BFD16T, MB9BFD17T, MB9BFD18T MB9B610T MB9BF616S, MB9BF617S, MB9BF618S MB9BF616T, MB9BF617T, MB9BF618T MB9B510T MB9BF516S, MB9BF517S, MB9BF518S MB9BF516T, MB9BF517T, MB9BF518T MB9B410T MB9BF416S, MB9BF417S, MB9BF418S MB9BF416T, MB9BF417T, MB9BF418T MB9B310T MB9BF316S, MB9BF317S, MB9BF318S MB9BF316T, MB9BF317T, MB9BF318T MB9B210T MB9BF216S, MB9BF217S, MB9BF218S MB9BF216T, MB9BF217T, MB9BF218T MB9B110T MB9BF116S, MB9BF117S, MB9BF118S MB9BF116T, MB9BF117T, MB9BF118T (TYPE3) MB9A130LA MB9AF131KA,MB9AF132KA MB9AF131LA,MB9AF132LA (TYPE4) MB9B510R MB9BF512N,MB9BF514N, MB9BF515N, MB9BF516N MB9BF512R,MB9BF514R, MB9BF515R, MB9BF516R MB9B410R MB9BF412N,MB9BF414N, MB9BF415N, MB9BF416N MB9BF412R,MB9BF414R, MB9BF415R, MB9BF416R MB9B310R MB9BF312N,MB9BF314N, MB9BF315N, MB9BF316N MB9BF312R,MB9BF314R, MB9BF315R, MB9BF316R MB9B110R MB9BF112N,MB9BF114N, MB9BF115N, MB9BF116N MB9BF112R,MB9BF114R, MB9BF115R, MB9BF116R January 31, 2014, AN706-00003-3v1-J 5
(TYPE5) MB9A310K MB9AF311K,MB9AF312K MB9A110K MB9AF111K,MB9AF112K (TYPE6) MB9AB40NA MB9AFB41LA,MB9AFB42LA, MB9AFB44LA MB9AFB41MA,MB9AFB42MA, MB9AFB44MA MB9AFB41NA,MB9AFB42NA, MB9AFB44NA MB9AA40NA MB9AFA41LA,MB9AFA42LA, MB9AFA44LA MB9AFA41MA,MB9AFA42MA, MB9AFA44MA MB9AFA41NA,MB9AFA42NA, MB9AFA44NA MB9A340NA MB9AF341LA,MB9AF342LA, MB9AF344LA MB9AF341MA,MB9AF342MA, MB9AF344MA MB9AF341NA,MB9AF342NA, MB9AF344NA MB9A140NA MB9AF141LA,MB9AF142LA, MB9AF144LA MB9AF141MA,MB9AF142MA, MB9AF144MA MB9AF141NA,MB9AF142NA, MB9AF144NA (TYPE7) MB9AA30N MB9AFA31L,MB9AFA32L MB9AFA31M,MB9AFA32M MB9AFA31N,MB9AFA32N MB9A130N MB9AF131M,MB9AF132M MB9AF131N,MB9AF132N (TYPE8) MB9A150R MB9AF154M,MB9AF155M, MB9AF156M MB9AF154N,MB9AF155N, MB9AF156N MB9AF154R,MB9AF155R, MB9AF156R 6 AN706-00003-3v1-J, January 31, 2014
(TYPE9) MB9B520M MB9BF521K, MB9BF522K,MB9BF524K MB9BF521L, MB9BF522L,MB9BF524L MB9BF521M, MB9BF522M,MB9BF524M MB9B320M MB9BF321K, MB9BF322K,MB9BF324K MB9BF321L, MB9BF322L,MB9BF324L MB9BF321M, MB9BF322M,MB9BF324M MB9B120M MB9BF121K, MB9BF122K,MB9BF124K MB9BF121L, MB9BF122L,MB9BF124L MB9BF121M, MB9BF122M,MB9BF124M January 31, 2014, AN706-00003-3v1-J 7
1 はじめに 外部割込み制御部は 次の順序で割込みコントローラへ外部割込み要求を出力します 1. INTxx 端子に入力された信号が 外部割込み要求レベルレジスタ (ELVR) で設定したエッジ / レベルを検出します 検出するエッジ / レベルは 次の 4 種類から選択できます "H" レベル /"L" レベル / 立上りエッジ / 立下りエッジ 2. 検出された割込み入力は 割込み要因 F/F に保持されます これは外部割込み要因レジスタ (EIRR) で読み出せます また 外部要因クリアレジスタ (EICL) で保持された割込み要因をクリアします 3. 外部割込みが許可レジスタ (ENIR) で 割込み許可されている場合は 割込みコントローラへ外部割込み要求 (INTIRQxx) を出力します このアプリケーションノートでは 外部割込みの設定方法について説明します INT02_1 端子へ外部割込みの設定をおこなうサンプルプログラムにて設定例を示します 8 AN706-00003-3v1-J, January 31, 2014
2 外部割込み ( 外部割込みの特徴や動作 ブロックダイヤグラムについては FM3 ファミリペリフェラ ルマニュアルの CHAPTER: 外部割込み NMI 制御部 をご参照ください ) 2.1 割込み (NVIC) ( NVIC に関しては Cortex-M3 テクニカルリファレンスマニュアルの 8 章ネスト型ベクタ割り込みコントローラ をご参照ください ) 表 2-1 に NVIC に入力される例外と割込みの要因ベクタ表を示します 表 2-1 外部割込みベクタ 例外と割込み要因 ベクタ No. IRQ No. ベクタ Offset 外部端子割込み要求 20 4 0x50 ch.0~ch.7 外部端子割込み要求 ch.8~ch.31 21 5 0x54 ( すべての割込み内容と割込み番号については FM3 ファミリペリフェラルマニュアルの CHAPTER: 割込み.3. 例外と割込み要因ベクタ をご参照ください ) CPU コアの例外を含むすべての割込みは NVIC で管理されます Cortex-M3 テクニカルリファレンスマニュアル では例外タイプ :IRQ をすべて外部割込み入力と定義しています 本書では 例外タイプ :IRQ を周辺割込みと表現します 周辺割込みには 外部端子による割込み 外部割込み NMI 制御部 と LSI 内部の周辺リソースからの割込みがあります NVIC 割り込みは 対応する割り込みイネーブルセットレジスタ または割り込みイネーブルクリアレジスタのビットフィールドに書き込むことで 許可および禁止できます このレジスタは 1 を書き込んで許可と 1 を書き込んでクリアのポリシーを使用しており どちらのレジスタからも 対応する (32) 割り込みの現在の許可状態が読み出されます 割り込みイネーブルセットレジスタは 次の目的に使用します 割り込みを許可する どの割り込みが現在許可されているのかを判別する レジスタの各ビットは 32 個の割り込みのうちの 1 つと対応します 割り込みイネーブルセットレジスタにビットをセットすることで 対応する割り込みが許 January 31, 2014, AN706-00003-3v1-J 9
可されます 保留中の割り込みのイネーブルビットがセットされると プロセッサは優先度に基づいて割り込みをアクティブにします イネーブルビットがクリアされている場合 割り込み信号をアサートすると その割り込みは保留されます しかし 優先度にかかわらず この割り込みをアクティブにすることはできません このため 禁止された割り込みは ラッチされる汎用 I/O ビットとして使用することができます また 割り込みを呼び出すことなくこのビットを読み込んでクリアできます INT02_1 端子は外部端子割込み要求 ch.2 にあたるので使用する場合 割り込みイネーブル セットレジスタの IRQ No.4 に相当するビットを 1 にします 表 2-2 に割り込みイネーブル セットレジスタの設定を示します 表 2-2 割り込みイネーブルセットレジスタの設定アドレス :0xE000E100=0bXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX bit 3130292827262524232221201918171615141312 11 10 9 8 7 6 5 4 3 2 1 0 値 X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 X X X X x は任意の値アドレス :0xE000E104=0b0000000000000000XXXXXXXXXXXXXXXX bit 3130292827262524232221201918171615141312 11 10 9 8 7 6 5 4 3 2 1 0 値 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X X X X X X X X X X X X X X X X x は任意の値 ベクタ No.16 以降の周辺割込みの優先度は 割込み優先度レジスタで設定可能です 割り込み優先度レジスタは各割込みに対して 4 ビットずつ割り振られています 外部端子割込み要求 ch.2 の割り込み優先度レジスタは IRQ No.4 なのでアドレス :0xE000E404が外部端子割込み要求 ch.2 の割り込み優先度レジスタになります リセット時は 0x00 になるので最も高い優先度です また ベクタ offset が 0x50 なので割込みアドレスは 0x00000050 に格納します 10 AN706-00003-3v1-J, January 31, 2014
2.2 割込み (IRQ04 一括読出しレジスタ ) ( 割込み要求一括読出しレジスタに関しては FM3 ファミリペリフェラルマニュアルの CHAPTER: 割込み をご参照ください ) 外部割込み ch.2 の割込みベクタは ch.0,1,3~7 と共用になっています 割込み発生により ベクタアドレスに遷移したとき IRQ04 一括読出しレジスタによりどの ch. で割込み要求が発生したか判断できます 2.3 レジスタ ( レジスタ設定の詳細については FM3 ファミリペリフェラルマニュアルの CHAPTER: 外部割込み NMI 制御部 をご参照ください ) 表 2-3 に外部割込みで設定するレジスタ郡を示します 表 2-3 外部割込みで使用するレジスタ一覧 レジスタ略称 レジスタ名 アドレス ENIR 外部割込み許可レジスタ ベース+0x000 EIRR 外部割込み要因レジスタ ベース+0x004 EICL 外部割込み要因クリアレジスタ ベース+0x008 ELVR 外部割込み要求レベル設定レジスタ ベース+0x00C 外部割込みベースアドレス :0x40030000 2.4 I/O ポート設定レジスタ ( I/O ポートの詳細については FM3 ファミリペリフェラルマニュアルの CHAPTER:I/O ポート をご参照ください ) 外部割込みは I/O ポートの機能のひとつであり 周辺機能の入力ポートとなります ch. によって その他の周辺機能の入出力ポート GPIO アナログ入力ポートと共用となっています また 同一 ch. が複数の I/O ポートに割り振られています ( リロケート機能 ) 設定は EPFR レジスタでおこないます EPFR レジスタの設定により 以下の決定ができます - 外部割込み端子の使用 / 未使用の決定 - リロケートされた端子の決定 January 31, 2014, AN706-00003-3v1-J 11
2.5 APB2 バスクロック ( APB2 バスクロックの詳細については FM3 ファミリペリフェラルマニュアルの CHAPTER: クロック をご参照ください ) 外部割込みのバスクロックは PCLK2 となっています ( FM3 各シリーズのデータシートブロックロックダイヤグラム をご参照ください ) CPU/AHB バスクロックが APB2 バスクロックの最大周波数を越える設定をする場合は APB2 プリスケーラレジスタ (APBC2_PSR) の設定で分周をしてください 12 AN706-00003-3v1-J, January 31, 2014
3 設定例 ( サンプルプログラム ) 3.1 サンプルプログラムについて I/O ポートを外部割込み端子として動作させるサンプルプログラムについて説明します 以下に本サンプルプログラムの設定条件を示します クロック設定条件 : マスタクロックを PLL クロック最大周波数 (X0,X1 に外部メインクロック 4MHz を入力して逓倍 ) に設定 APB2 プリスケーラ 2 分周 以上の条件により 外部端子割込みを以下のように設定します - INT02_1 と共用になっている P11 を周辺機能として使用する - ch2. の使用端子を INT02_1 で使用する - Low レベルエッジを割込み発生条件とする割込み関数内で ch. 判別をおこない ch2. の割込みのみ処理をおこなう January 31, 2014, AN706-00003-3v1-J 13
3.2 設定手順例次の手順は サンプルプログラムでおこなっている外部割込みの設定方法を示しています 外部割込み設定 START APB2 バスクロック分周設定マスタクロック PLL クロック設定 ch.2 の割込み発生条件を Low レベルエッジにする (ELVR=0x0030) 拡張機能端子設定外部割込み ch2. の端子を INT02_1 で使用 (EPFR6=0x00000020) アナログ入力設定 AN01 をデジタル入出力として使用 (ADE&=0xFFFD) ポート機能設定 P11 を周辺機能の入出力端子として使用 (PFR1.bit1=0b1) すべての割込み要因フラグをクリアする (EICL=0x0000) ch.2 の外部割込み要求発生を許可する (ENIR=0x0004) NVIC 外部端子割込み要求 ch.0~ ch.7 割込み許可 すべての外部割込みを禁止する (ENIR=0x0000) メインループ ( 外部割込み待ち ) 図 3-1 サンプルプログラムでの設定手順例 14 AN706-00003-3v1-J, January 31, 2014
外部割込み処理 START IRQ04MON bit2=0b1? bit2=1 bit2=0 EIRR bit2=1? bit2=1 bit2=0 INT02_1 外部割込み発生 割込みフラグクリア (EICL:ECL2=0) bit2=1 EIRR bit2=0? bit2=0 割込み要因クリア確認 END 図 3-2 外部割込み処理例 January 31, 2014, AN706-00003-3v1-J 15
4 使用上の注意事項 初期状態で外部割込み要求レベル設定レジスタ (ELVR) は 0x00000000 となっているので外部割込み ch.0~15 はすべて L レベル検出になっています また EPFR06 の初期値は 0x00000000 となっているのですべての外部割込み端子は _0 を INT 端子として使用します リセット時に INT00_0~15_0 の端子が LOW の場合 外部割込み要因レジスタ (EIRR) は 1 になります この状態で外部割込みを許可すると直後に割込みが発生しますので 外部割込みを許可する場合 外部割込み要因クリアレジスタ (EICL) によるクリアをおこなってから外部割込みを許可してください このアプリケーションノートに付属するサンプルプロジェクトは IAR Embedded Workbench for ARM および Keil MDK-ARM によって作成されています 16 AN706-00003-3v1-J, January 31, 2014
改版履歴版数 日付 内容 1.0 版 2010/11/4 新規作成 2.0 版 2011/1/20 MB9A100/MB9B100/MB9B300/MB9B400 Series に対応 3.0 版 2012/12/14 サンプルプロジェクトが MDK-ARM に対応 MB9A110A/MB9A310A Series に対応 MB9B110T/MB9B210T/MB9B310T/MB9B410T/MB9B510T/ MB9B610T/MB9BD10T Series に対応 MB9A130LA Series に対応 MB9B110R/MB9B310R/MB9B410R/MB9B510R Series に対応 MB9A110K/MB9A310K Series に対応 MB9A140NA/MB9A340NA/MB9AA40NA/MB9AB40NA Series に対応 MB9A130N/MB9AA30N Series に対応 MB9A150R Series に対応 MB9B120M/MB9B320M/MB9B520M Series に対応 3.1 版 2014/1/31 社名変更および記述フォーマットの変換 January 31, 2014, AN706-00003-3v1-J 17
免責事項本資料に記載された製品は 通常の産業用, 一般事務用, パーソナル用, 家庭用などの一般的用途 ( ただし 用途の限定はありません ) に使用されることを意図して設計 製造されています (1) 極めて高度な安全性が要求され 仮に当該安全性が確保されない場合 社会的に重大な影響を与えかつ直接生命 身体に対する重大な危険性を伴う用途 ( 原子力施設における核反応制御, 航空機自動飛行制御, 航空交通管制, 大量輸送システムにおける運行制御, 生命維持のための医療機器, 兵器システムにおけるミサイル発射制御等をいう ) ならびに (2) 極めて高い信頼性が要求される用途 ( 海底中継器, 宇宙衛星等をいう ) に使用されるよう設計 製造されたものではありません 上記の製品の使用法によって惹起されたいかなる請求または損害についても Spansion は お客様または第三者 あるいはその両方に対して責任を一切負いません 半導体デバイスはある確率で故障が発生します 当社半導体デバイスが故障しても 結果的に人身事故, 火災事故, 社会的な損害を生じさせないよう お客様において 装置の冗長設計, 延焼対策設計, 過電流防止対策設計, 誤動作防止設計などの安全設計をお願いします 本資料に記載された製品が 外国為替及び外国貿易法 米国輸出管理関連法規などの規制に基づき規制されている製品または技術に該当する場合には 本製品の輸出に際して 同法に基づく許可が必要となります 商標および注記このドキュメントは 断りなく変更される場合があります 本資料には Spansion が開発中の Spansion 製品に関する情報が記載されている場合があります Spansion は それらの製品に対し 予告なしに仕様を変更したり 開発を中止したりする権利を有します このドキュメントに含まれる情報は 現状のまま 保証なしに提供されるものであり その正確性, 完全性, 実施可能性および特定の目的に対する適合性やその市場性および他者の権利を侵害しない事を保証するものでなく また 明示, 黙示または法定されているあらゆる保証をするものでもありません Spansion は このドキュメントに含まれる情報を使用することにより発生したいかなる損害に対しても責任を一切負いません Copyright 2013-2014 Spansion Inc. All rights reserved. 商標 :Spansion, Spansion ロゴ ( 図形マーク ), MirrorBit, MirrorBit Eclipse TM, ORNAND TM 及びこれらの組合せは 米国 日本ほか諸外国における Spansion LLC の商標です 第三者の社名 製品名等の記載はここでは情報提供を目的として表記したものであり 各権利者の商標もしくは登録商標となっている場合があります 18 AN706-00003-3v1-J, January 31, 2014