本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 AN706-00004-2v0-J FM3 Family 32-BIT MICROCONTROLLER MB9A100/MB9B100/MB9B300/MB9B400/MB9B500 series 低電圧検出割込み回路の設定/利用方法 TM ARM and Cortex-M3 are the trademarks of ARM Limited in the EU and other countries. AN706-00004-2v0-J 注意事項 本資料の記載内容は、予告なしに変更することがありますので、ご用命の際は営業部 門にご確認ください。 本資料に記載された動作概要や応用回路例は、半導体デバイスの標準的な動作や使い 方を示したもので、実際に使用する機器での動作を保証するものではありません。し たがいまして、これらを使用するにあたってはお客様の責任において機器の設計を行 ってください。これらの使用に起因する損害などについては、当社はその責任を負い ません。 本資料に記載された動作概要・回路図を含む技術情報は、当社もしくは第三者の特許 権、著作権等の知的財産権やその他の権利の使用権または実施権の許諾を意味するも のではありません。また、これらの使用について、第三者の知的財産権やその他の権 利の実施ができることの保証を行うものではありません。したがって、これらの使用 に起因する第三者の知的財産権やその他の権利の侵害について、当社はその責任を負 いません。 本資料に記載された製品は、通常の産業用、一般事務用、パーソナル用、家庭用など の一般的用途に使用されることを意図して設計・製造されています。極めて高度な安 全性が要求され、仮に当該安全性が確保されない場合、社会的に重大な影響を与えか つ直接生命・身体に対する重大な危険性を伴う用途(原子力施設における核反応制御、 航空機自動飛行制御、航空交通管制、大量輸送システムにおける運行制御、生命維持 のための医療機器、兵器システムにおけるミサイル発射制御をいう)、ならびに極め て高い信頼性が要求される用途(海底中継器、宇宙衛星をいう)に使用されるよう設 計・製造されたものではありません。したがって、これらの用途にご使用をお考えの お客様は、必ず事前に営業部門までご相談ください。ご相談なく使用されたことによ り発生した損害などについては、責任を負いかねますのでご了承ください。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても、 結果的に人身事故、火災事故、社会的な損害を生じさせないよう、お客様は、装置の 冗長設計、延焼対策設計、過電流防止対策設計、誤動作防止設計などの安全設計をお 願いします。 本資料に記載された製品を輸出または提供する場合は、外国為替及び外国貿易法およ び米国輸出管理関連法規等の規制をご確認の上、必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は、各社の商標または登録商 標です。 Copyright© 2010-2011 FUJITSU SEMICONDUCTOR LIMITED all rights reserved 1 AN706-00004-2v0-J 改版履歴 版数 日付 内容 1.0 版 2010/11/4 新規作成 2.0 版 2011/1/20 MB9A100/MB9B100/MB9B300/MB9B400 Series に対応 2 AN706-00004-2v0-J 目次 注意事項 ...............................................................................................................................1 改版履歴 ...............................................................................................................................2 目次 ...................................................................................................................................... 3 1 はじめに ........................................................................................................................ 4 2 低電圧検出..................................................................................................................... 5 3 4 2.1 割込み(NVIC).......................................................................................................... 5 2.2 APB2 バスクロック................................................................................................ 7 2.3 低電圧検出電圧保護レジスタ(LVD_RLR)............................................................... 7 設定例(サンプルプログラム) ......................................................................................... 8 3.1 サンプルプログラムについて................................................................................. 8 3.2 低電圧検出回路の起動時間 .................................................................................... 8 3.3 設定手順例 ............................................................................................................. 9 使用上の注意事項........................................................................................................ 11 3 AN706-00004-2v0-J 1 はじめに 低電圧検出回路は、電源電圧を監視し、検出電圧よりも電源電圧が低下したときにリセッ ト信号および割込み信号を発生させる回路です。 低電圧検出割込み回路は以下の動作をおこないます。 電源電圧(VCC)を監視し、設定された電圧よりも電源電圧が低下したときに割込み信 号を発生させます。 動作の許可もしくは停止を選択できます。初期状態は停止しています。 検出電圧の設定が可能です。 スタンバイモード時も電源電圧を監視できます。 スタンバイモード時に電源電圧低下を検出すると、スタンバイモードから復帰しま す。 このアプリケーションノートでは、低電圧検出の設定方法について説明します。 低電圧検出に割込みの設定をおこなうサンプルプログラムにて設定例を示します。 4 AN706-00004-2v0-J 2 低電圧検出 (※低電圧検出の特徴や動作、ブロックダイヤグラムについては”MB9Axxx/MB9Bxxx Series ペリフェラルマニュアルの CHAPTER4:低電圧検出”をご参照ください) 2.1 割込み(NVIC) (※NVIC に関しては”Cortex-M3 テクニカルリファレンス マニュアルの 8 章ネスト型ベク タ割り込みコントローラ”をご参照ください) 表 2-1にNVICに入力される例外と割込み(低電圧検出)の要因ベクタ表を示します。 表 2-1 低電圧検出割込みベクタ 例外と割込み要因 低電圧検出(LVD) IRQ No. ベクタ No. 18 2 ベクタ Offset 0x48 CPU コアの例外を含むすべての割込みは NVIC で管理されます。 “Cortex-M3 テクニカルリファレンスマニュアル”では例外タイプ:IRQ をすべて外部割込み 入力と定義しています。 本書では、例外タイプ:IRQ を周辺割込みと表現します。周辺割込みには、外部端子による 割込み「外部割込み・NMI 制御部」と LSI 内部の周辺リソースからの割込みがあります。 NVIC 割り込みは、対応する割り込みイネーブルセットレジスタ、または割り込みイネーブ ルクリアレジスタのビットフィールドに書き込むことで、許可および禁止できます。この レジスタは、1 を書き込んで許可と 1 を書き込んでクリアのポリシーを使用しており、どち らのレジスタからも、対応する(32)割り込みの現在の許可状態が読み出されます。 割り込みイネーブルセットレジスタは、次の目的に使用します。 割り込みを許可する。 どの割り込みが現在許可されているのかを判別する。 レジスタの各ビットは、32 個の割り込みのうちの 1 つと対応します。 割り込みイネーブルセットレジスタにビットをセットすることで、対応する割り込みが許 可されます。保留中の割り込みのイネーブルビットがセットされると、プロセッサは優先 度に基づいて割り込みをアクティブにします。 イネーブルビットがクリアされている場合、割り込み信号をアサートすると、その割り込 みは保留されます。しかし、優先度にかかわらず、この割り込みをアクティブにすること はできません。 このため、禁止された割り込みは、ラッチされる汎用 I/O ビットとして使用することができ 5 AN706-00004-2v0-J ます。また、割り込みを呼び出すことなくこのビットを読み込んでクリアできます。 低電圧検出の割込みの使用を許可する場合、割り込みイネーブルセットレジスタのiRQ No.2 に相当するビットを 1 にします。表 2-2に割り込みイネーブルセットレジスタの設定 を示します。 表 2-2 割り込みイネーブルセットレジスタの設定 アドレス:0xE000E100=0bXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XX bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 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 X X 1 X X ※X は任意の値 アドレス:0xE000E104=0b0000000000000000XXXXXXXXXXXXXXXX bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 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 は任意の値 (※すべての割込み内容と割込み番号については”MB9Axxx/MB9Bxxx Series ペリフェラル マニュアルの CHAPTER6:割込み.3.例外と割込み要因ベクタ”をご参照ください) ベクタ No.16 以降の周辺割込みの優先度は、割込み優先度レジスタで設定可能です。割り 込み優先度レジスタは各割込みに対して 4 ビットずつ割り振られています。 低電圧検出(LVD)の割り込み優先度レジスタは IRQ No.2 なのでアドレス:0xE000E402 が 低電圧検出(LVD)の割り込み優先度レジスタになります。リセット時は 0x00 になるので最 も高い優先度です。 ベクタ offset が 0x48 なので割込みアドレスは 0x00000048 に格納します。 6 AN706-00004-2v0-J 2.2 APB2 バスクロック (※APB2 バスクロックの詳細については”MB9Axxx/MB9Bxxx Series ペリフェラルマニュア ルの CHAPTER2-1:クロック”をご参照ください) 低電圧検出のバスクロックは PCLK2 となっていて(“FM3 MB9B500 シリーズ データシー トのブロックダイヤグラム”をご参照ください)、最大内部動作クロック周波数は 40MHz と なっています。CPU/AHB バスクロックが 40MHz を越える設定をする場合は APB2 プリス ケーラレジスタ(APBC2_PSR)の設定で分周をしてください。 また、低電圧検出回路の起動時間の待ち時間は APB2 のクロック周波数により計算されま す。 2.3 低電圧検出電圧保護レジスタ(LVD_RLR) 低電圧検出電圧設定レジスタ(LVD_CTL)は保護されていて、保護状態の書込みは無視されま す。0x1ACCE553 を書き込むことにより、低電圧検出電圧設定レジスタの書き込みが可能 となります(書込み保護解除)。それ以外の値を書込むことで低電圧検出電圧設定レジスタの 書き込みが無効になります(書込み保護)。 また、LVD_RLR 読出しにより、保護の状態を確認することが可能です。保護が解除されて いるときは、0x00000000 が読み出され、保護されているときは、0x00000001 が読み出さ れます。 7 AN706-00004-2v0-J 3 設定例(サンプルプログラム) 3.1 サンプルプログラムについて 低電圧検出を動作させるサンプルプログラムについて説明します。 以下に、本サンプルプログラムの設定条件について示します。 クロック設定: マスタクロックを PLL クロック 80MHz(X0,X1 に外部メインクロック 4MHz を入力 して逓倍)に設定 APB2 プリスケーラ 2 分周(APB0 バスクロック 40MHz) 以上の条件で低電圧検出割り込み回路を以下のように設定します。 - マスタクロックを PLL に変更したとき低電圧検出割込み回路を起動させる - 割込みは 3.2V を中心に発生させる 3.2 低電圧検出回路の起動時間 LVD_CTL:LVDIE を”1”にして低電圧検出回路を起動したとき、起動が完了するまで待ち時 間が発生します。起動完了までの時間は次の計算式により計算されます。 待ち時間 = 2002×tcycp ※tcpyp = PCLK2 周期 2002×tcycp = 2002×25ns = 0.05005ms 8 AN706-00004-2v0-J 3.3 設定手順例 次の手順は、サンプルプログラムでおこなっている低電圧検出の設定方法を示しています。 低電圧検出回路設定 START マスタクロック PLL クロック設定 APB2 クロック分周設定 低電圧検出割込み要因クリア (LVD_CLR:LVDCL=0b0) 低電圧検出電圧保護レジスタ 0x1ACCE553 書込みで保護解除 (LVD_RLR=0x1ACCE553) 割込み電圧 3.2V、低電圧検出割込み 回路起動(LVD_CTL:SVHI=0b0010 LVDIE=0b1 低電圧検出電圧保護レジスタ 0x00000000 書込みで保護 (LVD_RLR=0x00000000 ※書き込む値は 0x1ACCE553 以外の値 NVIC 低電圧検出割込み許可 LVDIRDY=0b0 LVD 起動中 LVD_STR2: LVDIRDY=0b1? LVDIRDY=0b1 LVD 起動完了 メインループ メインループ(低電圧検出割込み待ち 空処理) 図 3-1 サンプルプログラムでの設定手順例 9 AN706-00004-2v0-J bit0=0b0 低電圧検出 の割込みでない IRQ02MON bit0=0b1? bit0=0b1 低電圧検出 割込み発生 低電圧検出割込み要因クリア (LVD_CLR:LVDCL=0b0) 図 3-2 低電圧検出割込み処理例 10 AN706-00004-2v0-J 4 使用上の注意事項 低電圧検出回路の安定待ち期間中にタイマモード、ストップモードおよび PBC2_PSR レジスタにより PCLK の停止を行うと、電源電圧の監視が行われません。安定待ち期 間が完了したのち遷移させてください。 このアプリケーションノートに付属するサンプルプロジェクトは IAR Embedded Workbench for ARM によって作成されています。 11