本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10106-6 2 F MC-16LX 16 ビット・マイクロコントローラ MB90595 Series ハードウェアマニュアル F2MC-16LX 16 ビット・マイクロコントローラ MB90595 Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目 をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして,平素より格別のご愛読を賜り厚 くお礼申し上げます。 MB90595 シリーズは,ASIC(Application Specific IC) 対応が可能なオリジナル 16 ビッ ト・ワンチップマイクロコントローラである F2MC®-16LX シリーズの汎用品の 1 つと して開発された製品です。 本書は,実際にこの半導体を使って製品を設計する技術者の方を対象に,MB90595 シ リーズの機能や動作について記載しています。本書をご一読ください。 ■ 商標 F2MC は,FUJITSU Flexible Microcontroller の略で富士通マイクロエレクトロニクス株 式会社の商標です。 Embedded Algorithm TM は,Advanced Micro Devices 社の商標です。 その他の記載されている社名および製品名などの固有名詞は,各社の商標または登録商 標です。 ■ 本書の全体構成 第 1 章 概要 この章では,MB90595 シリーズの特長や基本的な仕様について説明します。 第 2 章 CPU この章では,CPU の機能と動作について説明します。 第 3 章 割込み この章では,MB90595 シリーズの割込みと拡張インテリジェント I/O サービス (EI2OS) の機能と動作について説明します。 第 4 章 遅延割込み この章では,遅延割込みの機能と動作について説明します。 第 5 章 クロックとリセット この章では,クロックとリセットの機能と動作について説明します。 第 6 章 低消費電力制御回路 この章では,低消費電力回路の機能と動作について説明します。 第 7 章 メモリアクセスモード この章では,メモリアクセスモードの機能と動作について説明します。 第 8 章 I/O ポート この章では,I/O ポートの機能と動作について説明します。 第 9 章 タイムベースタイマ この章では,タイムベースタイマの機能と動作について説明します。 i 第 10 章 ウォッチドッグタイマ この章では,ウォッチドッグタイマの機能と動作について説明します。 第 11 章 16 ビット入出力タイマ この章では,16 ビット入出力タイマの機能と動作について説明します。 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) この章では,16 ビットリロードタイマ(イベントカウント機能付)の機能と動作に ついて説明します。 第 13 章 8/16 ビット PPG この章では,8/16 ビット PPG の機能と動作について説明します。 第 14 章 DTP/ 外部割込み この章では,DTP/ 外部割込みの機能と動作について説明します。 第 15 章 A/D コンバータ この章では A/D コンバータの機能と動作について説明します。 第 16 章 UART0 この章では,UART0 の機能と動作について説明します。 第 17 章 UART1(SCI) この章では,UART1 (SCI) の機能と動作について説明します。 第 18 章 シリアル I/O この章では,シリアル I/O の機能と動作について説明します。 第 19 章 CAN コントローラ この章では,CAN コントローラの機能と動作について説明します。 第 20 章 ステッピングモータ コントローラ この章では,ステッピングモータコントローラの機能と動作について説明します。 第 21 章 アドレス一致検出機能 この章では,アドレス一致検出の機能と動作について説明します。 第 22 章 ROM ミラー機能選択 モジュール この章では,ROM ミラー機能選択モジュールについて説明します。 第 23 章 1M ビットフラッシュメモリ この章では,1M ビットフラッシュメモリの機能と動作について説明します。 第 24 章 MB90F598/F598G シリアル書き込み接続例 この章では, 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フ ラッシュマイコンプログラマを用いた場合のシリアル書込み接続例について説明 します。 付録 付録では,命令,I/O マップ,フラッシュメモリモードのタイミングダイヤグラム, MB90595 割込みベクタ一覧表を示します。 ii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2007-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iii iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 第2章 概要 .......................................................................................................... 1 製品概要 ............................................................................................................................... 2 特長 ...................................................................................................................................... 3 ブロックダイヤグラム .......................................................................................................... 5 パッケージ外形寸法図 .......................................................................................................... 6 端子配列図 ............................................................................................................................ 7 端子機能説明 ........................................................................................................................ 8 入出力回路 .......................................................................................................................... 12 デバイスの取扱い ............................................................................................................... 15 CPU ........................................................................................................ 19 2.1 CPU の概要 ........................................................................................................................ 2.2 メモリ空間 .......................................................................................................................... 2.3 メモリ空間マップ ............................................................................................................... 2.4 リニア方式によるアドレス指定 ......................................................................................... 2.5 バンク方式によるアドレス指定 ......................................................................................... 2.6 メモリ空間における多バイト長データ ............................................................................... 2.7 レジスタ ............................................................................................................................. 2.7.1 アキュムレータ (A) ................................................................................................... 2.7.2 ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) ..................... 2.7.3 プロセッサステータス (PS) ..................................................................................... 2.7.4 プログラムカウンタ (PC) ......................................................................................... 2.8 レジスタバンク .................................................................................................................. 2.9 プリフィックスコード ........................................................................................................ 2.10 割込み抑止命令 .................................................................................................................. 2.11 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 .......................................................... 第3章 20 21 22 23 24 26 27 29 30 31 34 35 37 39 40 割込み .................................................................................................... 43 3.1 割込みの概要 ...................................................................................................................... 3.2 割込みベクタ ...................................................................................................................... 3.3 割込み制御レジスタ (ICR) .................................................................................................. 3.4 割込みフロー ...................................................................................................................... 3.5 ハードウェア割込み ........................................................................................................... 3.5.1 ハードウェア割込みの動作 ...................................................................................... 3.5.2 ハードウェア割込みの発生と解除 ............................................................................ 3.5.3 多重割込み ............................................................................................................... 3.6 ソフトウェア割込み ........................................................................................................... 3.7 拡張インテリジェント I/O サービス (EI2OS) ..................................................................... 3.7.1 拡張インテリジェント I/O サービスディスクリプタ (ISD) ...................................... 3.7.2 EI2OS ステータスレジスタ (ISCS) .......................................................................... 3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フローと使用手順 ............................. 3.9 例外 .................................................................................................................................... v 44 47 48 51 52 53 54 55 56 58 60 62 64 66 第4章 4.1 4.2 4.3 遅延割込み ............................................................................................. 67 遅延割込みモジュールの概要 ............................................................................................. 68 遅延割込みのレジスタ ........................................................................................................ 69 遅延割込みの動作 ............................................................................................................... 70 第5章 5.1 5.2 5.3 クロックとリセット ............................................................................... 71 クロック発生部 .................................................................................................................. 72 リセット要因の発生 ........................................................................................................... 73 リセット要因 ...................................................................................................................... 76 第6章 低消費電力制御回路 ............................................................................... 79 6.1 低消費電力制御回路の概要 ................................................................................................. 6.2 低消費電力制御回路のレジスタ ......................................................................................... 6.2.1 低消費電力モード制御レジスタ (LPMCR) ............................................................... 6.2.2 クロック選択レジスタ (CKSCR) .............................................................................. 6.3 低消費電力モードの動作 .................................................................................................... 6.3.1 スリープモード ........................................................................................................ 6.3.2 時計モード ............................................................................................................... 6.3.3 ストップモード ........................................................................................................ 6.3.4 ハードウェアスタンバイモード ............................................................................... 6.4 CPU 間欠動作 ..................................................................................................................... 6.5 マシンクロック切換え ........................................................................................................ 6.6 クロック選択の状態遷移 .................................................................................................... 第7章 7.1 7.2 7.3 メモリアクセスモード ........................................................................... 99 メモリアクセスモードの概要 ........................................................................................... 100 モード端子 ........................................................................................................................ 101 モードデータ .................................................................................................................... 102 第8章 I/O ポート ............................................................................................. 105 8.1 I/O ポート ......................................................................................................................... 8.2 I/O ポートのレジスタ ....................................................................................................... 8.2.1 ポートデータレジスタ ........................................................................................... 8.2.2 ポート方向レジスタ ............................................................................................... 8.2.3 アナログ入力許可レジスタ .................................................................................... 第9章 9.1 9.2 9.3 80 82 83 85 87 89 90 92 94 95 96 97 106 107 108 109 110 タイムベースタイマ ............................................................................. 111 タイムベースタイマの概要 ............................................................................................... 112 タイムベースタイマ制御レジスタ .................................................................................... 113 タイムベースタイマの動作 ............................................................................................... 114 第 10 章 ウォッチドッグタイマ ......................................................................... 115 10.1 ウォッチドッグタイマの概要 ........................................................................................... 116 10.2 ウォッチドッグタイマの動作 ........................................................................................... 118 第 11 章 16 ビット入出力タイマ ........................................................................ 119 11.1 16 ビット入出力タイマの概要 .......................................................................................... 120 11.2 16 ビット入出力タイマのレジスタ .................................................................................. 122 vi 11.3 16 ビットフリーランタイマ ............................................................................................. 11.3.1 データレジスタ ...................................................................................................... 11.3.2 コントロールステータスレジスタ .......................................................................... 11.3.3 16 ビットフリーランタイマの動作 ........................................................................ 11.4 アウトプットコンペア ...................................................................................................... 11.4.1 アウトプットコンペアのレジスタ .......................................................................... 11.4.2 アウトプットコンペアのコントロールステータスレジスタ .................................. 11.4.3 16 ビットアウトプットコンペアの動作 ................................................................. 11.5 インプットキャプチャ ...................................................................................................... 11.5.1 インプットキャプチャのレジスタ .......................................................................... 11.5.2 16 ビットインプットキャプチャの動作 ................................................................. 第 12 章 16 ビットリロードタイマ(イベントカウント機能付)....................... 141 12.1 16 ビットリロードタイマ(イベントカウント機能付)の概要 ....................................... 12.2 16 ビットリロードタイマのレジスタ ............................................................................... 12.2.1 タイマコントロールステータスレジスタ (TMCSR) ............................................... 12.2.2 16 ビットタイマレジスタ (TMR) /16 ビットリロードレジスタ (TMRLR) の レジスタ配置 ............................................................................................................... 12.3 16 ビットリロードタイマの内部クロック動作と外部クロック動作 ................................ 12.4 16 ビットリロードタイマのアンダフロー動作 ................................................................ 12.5 16 ビットリロードタイマの出力端子機能 ........................................................................ 12.6 カウンタの動作状態 ......................................................................................................... 第 13 章 14.1 14.2 14.3 14.4 14.5 148 149 151 152 153 156 157 159 160 162 165 166 167 170 171 172 173 DTP/ 外部割込み .................................................................................. 175 DTP/ 外部割込みの概要 .................................................................................................... DTP/ 外部割込みのレジスタ ............................................................................................. DTP/ 外部割込みの動作 .................................................................................................... DTP 要求と外部割込み要求の切換え ............................................................................... DTP/ 外部割込みの使用上の注意 ..................................................................................... 第 15 章 142 144 145 8/16 ビット PPG .................................................................................. 155 13.1 8/16 ビット PPG の概要 ................................................................................................... 13.2 8/16 ビット PPG のブロックダイヤグラム ...................................................................... 13.3 8/16 ビット PPG のレジスタ ............................................................................................ 13.3.1 PPG0 動作モード制御レジスタ (PPGC0) .............................................................. 13.3.2 PPG1 動作モード制御レジスタ (PPGC1) .............................................................. 13.3.3 PPG0, PPG1 出力端子制御レジスタ (PPG01) ...................................................... 13.3.4 リロードレジスタ (PRLL, PRLH) ........................................................................... 13.4 8/16 ビット PPG の動作 ................................................................................................... 13.5 8/16 ビット PPG のカウントクロックの選択 .................................................................. 13.6 8/16 ビット PPG のパルスの端子出力の制御 .................................................................. 13.7 8/16 ビット PPG の割込み ............................................................................................... 13.8 8/16 ビット PPG の各ハードウェアの初期値 .................................................................. 第 14 章 123 124 125 127 129 130 131 134 136 137 139 176 177 179 181 182 A/D コンバータ .................................................................................... 185 15.1 A/D コンバータの特長 ...................................................................................................... 15.2 A/D コンバータのブロックダイヤグラム ......................................................................... 15.3 A/D コンバータのレジスタ一覧 ........................................................................................ 15.3.1 A/D コントロールステータスレジスタ (ADCS0) ................................................... vii 186 188 189 190 15.3.2 A/D コントロールステータスレジスタ (ADCS1) ................................................... 15.3.3 データレジスタ (ADCR0, ADCR1) ......................................................................... 15.4 A/D コンバータの動作 ...................................................................................................... 15.5 EI2OS を使った変換動作 .................................................................................................. 15.5.1 単発モード時の EI2OS の起動例 ............................................................................ 15.5.2 連続モード時の EI2OS の起動例 ............................................................................ 15.5.3 停止モード時の EI2OS の起動例 ............................................................................ 15.6 変換データ保護機能 ......................................................................................................... 第 16 章 UART0 ................................................................................................. 205 16.1 UART0 の特長 .................................................................................................................. 16.2 UART0 のブロックダイヤグラム ..................................................................................... 16.3 UART0 のレジスタ ........................................................................................................... 16.3.1 シリアルモードコントロールレジスタ 0(UMC0) ................................................... 16.3.2 ステータスレジスタ 0(USR0) ................................................................................ 16.3.3 インプットデータレジスタ 0(UIDR0) とアウトプットレジスタ 0(UODR0) .......... 16.3.4 レート・データレジスタ 0(URD0) ......................................................................... 16.4 UART0 の動作 .................................................................................................................. 16.5 ボーレート ........................................................................................................................ 16.6 内部クロックおよび外部クロック .................................................................................... 16.7 転送データフォーマット .................................................................................................. 16.8 パリティビット ................................................................................................................ 16.9 割込み生成とフラグのセットタイミング ......................................................................... 16.9.1 受信動作時(モード 0, モード 1, モード 3)のフラグのセットタイミング .......... 16.9.2 受信動作時(モード 2)のフラグのセットタイミング .......................................... 16.9.3 送信動作時のフラグのセットタイミング ............................................................... 16.9.4 送受信動作時のステータスフラグ .......................................................................... 16.10 UART0 の応用例 ............................................................................................................... 第 17 章 206 207 208 209 211 213 214 216 217 219 220 221 222 223 224 225 226 227 UART1(SCI) ......................................................................................... 229 17.1 UART1 の特長 .................................................................................................................. 17.2 UART1 のブロックダイヤグラム ..................................................................................... 17.3 UART1 のレジスタ一覧 .................................................................................................... 17.3.1 シリアルモードレジスタ 1(SMR1) ......................................................................... 17.3.2 シリアルコントロールレジスタ (SCR1) ................................................................ 17.3.3 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1(SODR1) ...................................................... 17.3.4 シリアルステータスレジスタ 1(SSR1) .................................................................. 17.3.5 UART1 通信プリスケーラコントロールレジスタ (U1CDCR) ................................ 17.4 UART1 の動作モードとクロック選択 .............................................................................. 17.4.1 非同期(調歩同期)モード .................................................................................... 17.4.2 CLK 同期モード ...................................................................................................... 17.5 UART1 のフラグと割込み発生要因 .................................................................................. 17.6 UART1 の割込みとフラグのセットタイミング ................................................................ 17.7 UART1 の応用例と使用上の注意 ..................................................................................... 第 18 章 192 194 196 198 199 200 201 202 230 231 232 233 235 237 238 240 241 244 246 248 249 252 シリアル I/O ......................................................................................... 255 18.1 シリアル I/O の概要 .......................................................................................................... 256 18.2 シリアル I/O のレジスタ ................................................................................................... 257 viii 18.2.1 シリアルモードコントロールステータスレジスタ (SMCS) ................................... 18.2.2 シリアルシフトデータレジスタ (SDR) .................................................................. 18.3 シリアル I/O プリスケーラ (SCDCR) ............................................................................... 18.4 シリアル I/O の動作 .......................................................................................................... 18.4.1 シフトクロック ...................................................................................................... 18.4.2 シリアル I/O の動作状態 ........................................................................................ 18.4.3 シフト動作のスタート / ストップタイミング ........................................................ 18.4.4 拡張シリアル I/O インタフェースの割込み機能 .................................................... 18.5 ネガティブクロック動作 .................................................................................................. 第 19 章 258 262 263 264 265 266 268 270 271 CAN コントローラ ............................................................................... 273 19.1 CAN コントローラの特長 ................................................................................................. 19.2 CAN コントローラのブロックダイヤグラム .................................................................... 19.3 全体コントロールレジスタの一覧 .................................................................................... 19.4 メッセージバッファ (ID レジスタ ) の一覧 ....................................................................... 19.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 ....................................... 19.6 CAN コントローラのレジスタ分類 .................................................................................. 19.6.1 制御ステータスレジスタ (CSR) ............................................................................. 19.6.2 バス動作停止ビット (HALT=1) ............................................................................... 19.6.3 ラストイベント表示レジスタ (LEIR) ..................................................................... 19.6.4 受信および送信エラーカウンタ (RTEC) ................................................................ 19.6.5 ビットタイミングレジスタ (BTR) .......................................................................... 19.6.6 メッセージバッファ有効レジスタ (BVALR) .......................................................... 19.6.7 IDE レジスタ (IDER) .............................................................................................. 19.6.8 送信要求レジスタ (TREQR) ................................................................................... 19.6.9 送信 RTR レジスタ (TRTRR) ................................................................................. 19.6.10 リモートフレーム受信待機レジスタ (RFWTR) ...................................................... 19.6.11 送信解除レジスタ (TCANR) ................................................................................... 19.6.12 送信完了レジスタ (TCR) ........................................................................................ 19.6.13 送信割込み許可レジスタ (TIER) ............................................................................ 19.6.14 受信完了レジスタ (RCR) ........................................................................................ 19.6.15 リモート要求受信レジスタ (RRTRR) .................................................................... 19.6.16 受信オーバランレジスタ (ROVRR) ........................................................................ 19.6.17 受信割込み許可レジスタ (RIER) ............................................................................ 19.6.18 アクセプタンスマスク選択レジスタ (AMSR) ........................................................ 19.6.19 アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) .................................... 19.6.20 メッセージバッファ ............................................................................................... 19.6.21 ID レジスタ x(x=0 ∼ 15)(IDRx) .............................................................................. 19.6.22 DLC レジスタ x(x=0 ∼ 15)(DLCRx) ....................................................................... データレジスタ x(x=0 ∼ 15)(DTRx) ...................................................................... 19.6.23 19.7 CAN コントローラの送信 ................................................................................................. 19.8 CAN コントローラの受信 ................................................................................................. 19.9 CAN コントローラの受信フローチャート ........................................................................ 19.10 CAN コントローラの使用方法 .......................................................................................... 19.11 メッセージバッファ (x) による送信方法 .......................................................................... 19.12 メッセージバッファ (x) による受信方法 .......................................................................... 19.13 マルチレベルメッセージバッファの構成の決定 .............................................................. 19.14 CAN コントローラの使用上の注意 .................................................................................. ix 274 275 276 277 279 281 282 285 286 288 289 291 292 293 294 295 296 297 298 299 300 301 302 303 305 307 308 310 311 313 315 318 319 321 323 324 326 第 20 章 ステッピングモータコントローラ ....................................................... 329 20.1 ステッピングモータコントローラの概要 ......................................................................... 20.2 ステッピングモータコントローラのレジスタ .................................................................. 20.2.1 PWM 制御 0 レジスタ ............................................................................................ 20.2.2 PWM1, PWM2 コンペアレジスタ .......................................................................... 20.2.3 PWM1, PWM2 選択レジスタ ................................................................................. 第 21 章 21.1 21.2 21.3 21.4 アドレス一致検出機能 ......................................................................... 335 アドレス一致検出機能の概要 ........................................................................................... アドレス一致検出機能のレジスタ .................................................................................... アドレス一致検出機能の動作 ........................................................................................... アドレス一致検出機能の使用例 ....................................................................................... 第 22 章 330 331 332 333 334 336 337 339 340 ROM ミラー機能選択モジュール ......................................................... 343 22.1 ROM ミラー機能選択モジュールの概要 .......................................................................... 344 22.2 ROM ミラー機能選択レジスタ (ROMM) .......................................................................... 345 第 23 章 1M ビットフラッシュメモリ ................................................................ 347 23.1 1M ビットフラッシュメモリの概要 ................................................................................. 23.2 フラッシュメモリ全体のブロックダイヤグラムとセクタ構成 ......................................... 23.3 書込み / 消去モード .......................................................................................................... 23.4 フラッシュメモリコントロールステータスレジスタ (FMCS) ......................................... 23.5 フラッシュメモリ自動アルゴリズム起動方法 .................................................................. 23.6 自動アルゴリズム実行状態の確認 .................................................................................... 23.6.1 データポーリングフラグ (DQ7) ............................................................................. 23.6.2 トグルビットフラグ (DQ6) .................................................................................... 23.6.3 タイミングリミット超過フラグ (DQ5) .................................................................. 23.6.4 セクタ消去タイマフラグ (DQ3) ............................................................................. 23.6.5 トグルビット 2 フラグ (DQ2) ................................................................................. 23.7 フラッシュメモリ書込み / 消去の詳細説明 ...................................................................... 23.7.1 フラッシュメモリを読出し / リセット状態にする ................................................. 23.7.2 フラッシュメモリへのデータの書込み .................................................................. 23.7.3 フラッシュメモリの全データの消去 ( チップ消去)............................................... 23.7.4 フラッシュメモリの任意のデータの消去 ( セクタ消去 ) ........................................ 23.7.5 フラッシュメモリのセクタ消去の一時停止 ........................................................... 23.7.6 フラッシュメモリのセクタ消去の再開 .................................................................. 23.8 フラッシュメモリ使用上の注意 ....................................................................................... 23.9 フラッシュメモリにおけるリセットベクタアドレス ....................................................... 23.10 フラッシュセキュリティの特長 ....................................................................................... 23.11 1M ビットフラッシュメモリのプログラム例 ................................................................... 第 24 章 24.1 24.2 24.3 24.4 24.5 348 349 351 353 355 357 359 360 361 362 363 365 366 367 370 371 374 375 376 378 379 380 MB90F598/F598G シリアル書き込み接続例 ....................................... 385 MB90F598/F598G シリアル書込み接続の基本構成 ......................................................... シリアル書込み接続例 ( ユーザ電源使用時 ) .................................................................... シリアル書込み接続例 ( ライタから電源供給時 ) ............................................................. フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ..................... フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) .............. x 386 390 392 394 396 付録 付録 A 付録 B B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 付録 C 付録 D .............................................................................................................. 399 I/O マップ .................................................................................................................... 命令 ............................................................................................................................. 命令の種類 ................................................................................................................... アドレッシング ........................................................................................................... 直接アドレッシング .................................................................................................... 間接アドレッシング .................................................................................................... 実行サイクル数 ........................................................................................................... 実効アドレスフィールド ............................................................................................. 命令一覧表の読み方 .................................................................................................... F2MC-16LX 命令一覧表 .............................................................................................. 命令マップ ................................................................................................................... フラッシュメモリモードのタイミングダイアグラム .................................................. MB90595 割込みベクタ一覧表 .................................................................................... 400 407 408 409 411 418 425 427 429 432 446 468 473 索引 ........................................................................................................................ 477 xi xii 本版での主な変更内容 ページ 407 ∼ 467 場所 変更内容(詳細は本文を参照してください。) 付録 B 命令 「付録 B 命令」全体を変更 変更箇所は , 本文中のページ左側の│によって示しています。 < 参考 > 4 版→ 5 版での主な変更内容 ページ 場所 − − 変更内容(詳細は本文を参照してください。) 用語を変更 ( 受容 → アクセプタンス ) 15 第 1 章 概要 1.8 デバイスの取扱い ● 供給電圧の安定化 を追加 74 第 5 章 クロックとリセット 5.2 リセット要因の発生 表 5.2-2 リセット入力によって初期化されないレジスタ の MCS を変更 (×→○) 88 第 6 章 低消費電力制御回路 6.3 低消費電力モードの動作 表 6.3-2 低消費電力モードへの遷移に使用される命令の一 覧 を変更 182 ● 外部割込み要求レベル を変更 183 第 14 章 DTP/ 外部割込み 14.5 DTP/ 外部割込みの使用上の 注意 199 第 15 章 A/D コンバータ ■単発モード時の EI2OS の起動例 を変更 2 200 15.5.1 単発モード時の EI OS の 起動 EI2OS の設定 ICR2 → ICR10 割込みシーケンス RET → RETI ICR2: 割込み制御レジスタ→ ICR10: 割込み制御レジスタ 第 15 章 A/D コンバータ ■連続モード時の EI2OS の起動例を変更 15.5.2 連続モード時の 起動例 201 EI2OS の 284 EI2OS の設定 ICR2 → ICR10 EI2OS 終了割込みシーケンス RET → RETI ICR2: 割込み制御レジスタ→ ICR10: 割込み制御レジスタ 第 15 章 A/D コンバータ 2 282 図 14.5-1 レベル設定時の割込み要求フラグビット (EIRR:ER) を変更 ■停止モード時の EI2OS の起動例を変更 15.5.3 停止モード時の EI OS の 起動 EI2OS の設定 第 19 章 CAN コントローラ 19.6.1 制御ステータスレジスタ (CSR) 19.6.1 制御ステータスレジスタ (CSR) の 要約 を変更 ICR2 → ICR10 2 EI OS 終了割込みシーケンス RET → RETI ICR2: 割込み制御レジスタ→ ICR10: 割込み制御レジスタ 【bit0】HALT: バス動作停止ビット を変更 xiii < 参考 > 4 版→ 5 版での主な変更内容 ページ 場所 変更内容(詳細は本文を参照してください。) ■ バス動作停止を解除する条件 (HALT=0) の < 注意事項 > を変更 (・バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になっていることを確認後 ,"0" を書き 込んでください。を追加 ) 285 第 19 章 CAN コントローラ 19.6.2 バス動作停止ビット (HALT=1) 373 第 23 章 1M ビットフラッシュ 図 23.7-2 フラッシュメモリのセクタ消去手順の例 を変更 メモリ 23.7.4 フラッシュメモリの任意の データを消去する ( セクタ消去 ) 432 付録 B F2MC-16LX の命令 B.8 F2MC-16LX 命令一覧表 表 B.8-1 転送系命令 ( バイト ) 41 命令 を変更 (MOV @AL,AH / MOV @A,T → MOV @AL,AH) 433 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 を 変更 (MOVW @AL,AH / MOVW @A,T → MOVW @AL,AH) 444 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命 令 (SWAPW / XCHW A,T → SWAPW) 変更箇所は , 本文中のページ左側の│によって示しています。 xiv 第1章 概要 MB90595 シリーズの特長や基本的な仕様について 説明します。 1.1 製品概要 1.2 特長 1.3 ブロックダイヤグラム 1.4 パッケージ外形寸法図 1.5 端子配列図 1.6 端子機能説明 1.7 入出力回路 1.8 デバイスの取扱い 1 第 1 章 概要 1.1 製品概要 表 1.1-1 に , MB90595 シリーズの製品概要を示します。 ■ 製品概要 表 1.1-1 製品概要 MB90V595/V595G 特長 MB90F598/F598G MB90598/598G F2MC-16LX CPU CPU システムクロック オンチップ PLL クロック逓倍方式 (× 1, × 2, × 3, × 4, PLL 停止時 1/2) 最小命令実行時間 62.5ns (4MHz 原発振 4 逓倍) ブートブロック フラッシュメモリ 128KB MASK ROM 128KB ハード・ワイヤード・リセット・ ベクタ ROM 外部 RAM 6KB パッケージ PGA-256 QFP100 エミュレータ専用電源 * 無 - 4KB 4KB *: エミュレーションポッド MB2145-507 をご使用いただく際のディップスィッチ S2 の設定です。 詳細につきましては , MB2145-507 ハードウェアマニュアル(2.7 エミュレータ専用電源)をご参照くださ い。 < 注意事項 > 2 型格に G サフィックスの付いた製品については , CAN コントローラの機能が拡張さ れています。 CAN コントローラの章の 「19.6.5 ビットタイミングレジスタ (BTR)」をご参照く ださい。 第 1 章 概要 1.2 特長 表 1.2-1 に , MB90595 シリーズの特長を示します。 ■ 特長 表 1.2-1 MB90595 の特長 (1 / 2) 機能 特長 UART0 全 2 重ダブルバッファ方式 非同期 / 同期転送 (スタート / ストップビット付) をサポートします。 ボーレート 4808/5208/9615/10417/19230/38460/62500/500000bps (非同期) システムクロック =16MHz 時 500K/1M/2Mbps (同期) UART1 (SCI) 全 2 重ダブルバッファ方式 非同期 (スタート / ストップ同期 ) および CLK 同期通信 ボーレート 1202/2404/4808/9615/31250bps(非同期) 6, 8, 10, 12, 16MHz 時 62.5K/125K/250K/500K/1Mbps(同期) シリアル I/O MSB または LSB から転送開始可能です。 内部クロック同期転送および外部クロック同期転送をサポートします。 ポジティブエッジとネガティブエッジクロック同期をサポートします。 ボーレート システムクロック=16MHz時31.25K/62.5K/125K/500K/1M/2Mbps A/D コンバータ 10 ビットまたは 8 ビットの分解能 8 本の入力 ch 変換時間 :26.3 µs 16 ビットリロードタイ マ (2ch) 動作クロック周波数 fsys/21, fsys/23, fsys/25(fsys= システムクロック周波数) 外部イベントカウント機能をサポートします。 16 ビット入出力タイマ オーバフロー時に割込み信号を出力します。 アウトプットコンペア (ch.0) との照合時に , タイマクリアをサポートしま す。 動作クロック周波数 fsys/22, fsys/24, fsys/26, fsys/28 (fsys= システムクロック 周波数) 16 ビットアウトプット コンペア (4ch) 16 ビット入出力タイマとの照合時に , 割込み信号を出力します。 16 ビットキャプチャレジスタ× 4 本 1 対のコンペアレジスタを出力信号生成に使用可能です。 16 ビットインプット キャプチャ (4ch) 立上りエッジ , 立下りエッジ , またはその両方を検出します。 16 ビットキャプチャレジスタ× 4 本 外部イベント時に割込み信号を出力します。 3 第 1 章 概要 表 1.2-1 MB90595 の特長 (2 / 2) 機能 特長 8 ビットと 16 ビットの動作モードをサポートします。 8 ビットリロードカウンタ× 12 本 L パルス幅用の 8 ビットリロードレジスタ× 12 本 H パルス幅用の 8 ビットリロードレジスタ× 12 本 1 対の 8 ビットリロードカウンタを 1 本の 16 ビットリロードカウンタとし 8/16 ビット PPG (プログラマブルパルス て , または 8 ビットプリスケーラと 8 ビットリロードカウンタとして構成可 能です。 発生部)(6ch) 出力端子× 6 本 動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24 または 128 µs@fosc=4MHz (fsys= システムクロック周波数 , fosc= 発振クロック周 波数) CAN インタフェース CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。 エラー時に自動再送します。 リモートフレームに応答して自動伝送します。 データおよび ID 用の順位付けされた 16 個のメッセージバッファ 複数メッセージをサポートします。 受入れフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマスク /2 個の部分ビットマスク 最高 1Mbps までサポートします。 ステッピングモータコ ントローラ (4ch) 各 ch に対する高電流出力× 4 本 各 ch に対する同期化済 8 ビット PWM × 2 本 MB89940 設計リソースを継承します。 外部割込み (8ch) エッジ検出とレベル検出が設定可能です。 入出力ポート ほとんど , 全外部端子を汎用入出力として使用可能です。 すべてのプッシュプル出力とシュミットトリガ入力 入力 / 出力または周辺信号として , ビット単位でプログラム可能です。 フラッシュメモリ 自動プログラミング , Embeded AlgorithmTM*, 書込み / 消去 / 消去一時停止 / 消去再開コマンドをサポートします。 アルゴリズムの完了を示すフラグ フラッシュメモリ中の固定ブートセクタを示すために , ハード・ワイヤー ド・リセット・ベクタが使用可能です。 ブートブロック構成 各ブロックで消去を実行可能です。 *: Embedded AlgorithmTM は Advanced Micro Devices Inc. の商標です。 4 第 1 章 概要 ブロックダイヤグラム 1.3 図 1.3-1 に , MB90595 シリーズのブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.3-1 ブロックダイヤグラム X0,X1 RST クロック 制御回路 HST 16LX CPU 入出力タイマ RAM 4K インプット キャプチャ ×4ch ROM/ フラッシュ 128K プリスケーラ IN[3:0] アウトプット コンペア ×4ch OUT[3:0] 8/16-bit PPG×6ch PPG[5:0] SOT0 SCK0 UART 0 SIN0 SOT1 SCK1 SIN1 UART 1 (SC1) F2MC-16 Bus プリスケーラ CAN RX コントローラ TX 16bit リロードタイマ ×2ch TIN[1:0] TOT[1:0] プリスケーラ PWM1M[3:0] SOT2 SCK2 SIN2 シリアル I/O PWM1P[3:0] SMC 4ch PWM2M[3:0] PWM2P[3:0] DVCC[1:0] AVCC DVSS[2:0] AVSS AN[7:0] AVRH AVRL 10bit ADC×8ch 外部割込み 8ch INT[7:0] ADTG 5 第 1 章 概要 パッケージ外形寸法図 1.4 図 1.4-1 に , MB90595 シリーズのパッケージ外形寸法図を示します。 なお , 本外形寸法は参考用です。正式版については , 別途ご相談ください。 ■ パッケージ外形寸法図 図 1.4-1 パッケージ外形寸法図 プラスチック・QFP, 100 ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 14.00×20.00mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 3.35mm MAX コード(参考) P-QFP100-14 × 20-0.65 (FPT-100P-M06) プラスチック・QFP, 100 ピン (FPT-100P-M06) 注 1)* 印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 23.90±0.40(.941±.016) * 20.00±0.20(.787±.008) 80 51 81 50 0.10(.004) 17.90±0.40 (.705±.016) * 14.00±0.20 (.551±.008) INDEX Details of "A" part 100 0.25(.010) +0.35 3.00 –0.20 +.014 .118 –.008 (Mounting height) 0~8° 31 1 30 0.65(.026) 0.32±0.05 (.013±.002) 0.13(.005) M 0.17±0.06 (.007±.002) "A" C 2002 FUJITSU LIMITED F100008S-c-5-5 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html 6 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) 0.25±0.20 (.010±.008) (Stand off) 単位:mm (inches) 注意:括弧内の値は参考値です。 P00/IN0 P01/IN1 P02/IN2 P03/IN3 P04/OUT0 P05/OUT1 P06/OUT2 P07/OUT3 P10/PPG0 P11/PPG1 P12/PPG2 P13/PPG3 P14/PPG4 P15/PPG5 P16/TIN1 P17/TOT1 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 P34 P35 P36 P37 P40/SCT0 P41/SOK0 P42/SIN0 P43/SIN1 P44/SCK1 Vcc P45/SOT1 P46/SOT2 P47/SCK2 C P50/SIN2 P51/INT4 P52/INT5 Vss X0 X1 Vcc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 QFP-100 パッケージコード (モールド) FPT-100P-M06 MD2 HST P92/INT0 P91/RX P90/TX DVSS P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 DVCC P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 DVSS P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 DVCC P73/PWM2M0 P72/PWM2P0 P71/PWM1M0 P70/PWM1P0 DVSS RST P95/INT3 P94/INT2 P93/INT1 1.5 P20 P21 P22 P23 P24 P25 P26 P27 P30 P31 Vss P32 P33 第 1 章 概要 端子配列図 図 1.5-1 に , MB90595 シリーズの端子配列図を示します。 ■ 端子配列図 図 1.5-1 端子配列図 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 MD1 MD0 P57/TOT0 P56/TIN0 P67/AN7 P66/AN6 P65/AN5 P64/AN4 Vss P63/AN3 P62/AN2 P61/AN1 P60/AN0 AVss AVRL AVRH AVcc P55/ADTG P54/INT7 P53/INT6 7 第 1 章 概要 端子機能説明 1.6 表 1.6-1 に , MB90595 シリーズの端子機能説明を示します。 ■ 端子機能説明 表 1.6-1 端子機能説明 ( 1 / 4 ) 端子番号 端子名 82 X0 回路形式 機能説明 発振入力端子です。 A 83 X1 77 RST B リセット入力端子です。 52 HST C ハードウェアスタンバイ入力端子です。 発振出力端子です。 P00 ∼ P03 汎用入出力ポートです。 G 85 ∼ 88 IN0 ∼ IN3 インプットキャプチャの入力端子です。 P04 ∼ P07 汎用入出力ポートです。 G 89 ∼ 92 OUT0 ∼ OUT3 アウトプットコンペアの出力端子です。 P10 ∼ P15 汎用入出力ポートです。 D 93 ∼ 98 PPG0 ∼ PPG5 プログラマブルパルス発生部の出力端子です。 P16 99 汎用入出力ポートです。 D TIN1 16 ビットリロードタイマ 1 の TIN 入力端子です。 P17 100 汎用入出力ポートです。 D TOT1 16 ビットリロードタイマ 1 の TOT 出力端子です。 1∼8 P20 ∼ P27 G 汎用入出力ポートです。 9, 10 P30, P31 G 汎用入出力ポートです。 12 ∼ 16 P32 ∼ P36 G 汎用入出力ポートです。 17 P37 D 汎用入出力ポートです。 P40 18 汎用入出力ポートです。 G SOT0 UART0 の SOT 出力端子です。 P41 19 汎用入出力ポートです。 G SCK0 UART0 の SCK 入出力端子です。 P42 20 SIN0 8 汎用入出力ポートです。 G UART0 の SIN 入力端子です。 第 1 章 概要 表 1.6-1 端子機能説明 ( 2 / 4 ) 端子番号 端子名 回路形式 P43 21 汎用入出力ポートです。 G SIN1 UART1 の SIN 入力端子です。 P44 22 汎用入出力ポートです。 G SCK1 UART1 の SCK 入出力端子です。 P45 24 汎用入出力ポートです。 G SOT1 UART1 の SOT 出力端子です。 P46 25 汎用入出力ポートです。 G SOT2 シリアル I/O の SOT 出力端子です。 P47 26 汎用入出力ポートです。 G SCK2 シリアル I/O の SCK 入出力端子です。 P50 28 汎用入出力ポートです。 D SIN2 シリアル I/O の SIN 入力端子です。 P51 ∼ P54 汎用入出力ポートです。 D 29 ∼ 32 INT4 ∼ INT7 INT4 ∼ INT7 の外部割込み入力端子です。 P55 33 汎用入出力ポートです。 D ADTG A/D コンバータの外部トリガ入力端子です。 汎用入出力ポートです。 P60 ∼ P63 E 38 ∼ 41 AN0 ∼ AN3 A/D コンバータの入力端子です。 P64 ∼ P67 汎用入出力ポートです。 E 43 ∼ 46 AN4 ∼ AN7 A/D コンバータの入力端子です。 P56 47 汎用入出力ポートです。 D TIN0 16 ビットリロードタイマ 0 の TIN 入力端子です。 P57 48 汎用入出力ポートです。 D TOT0 16 ビットリロードタイマ 0 の TOT 出力端子です。 P70 ∼ P73 54 ∼ 57 機能説明 PWM1P0 PWM1M0 PWM2P0 PWM2M0 汎用入出力ポートです。 F ステッピングモータコントローラ ch.0 の出力端子 です。 9 第 1 章 概要 表 1.6-1 端子機能説明 ( 3 / 4 ) 端子番号 端子名 回路形式 P74 ∼ P77 59 ∼ 62 PWM1P1 PWM1M1 PWM2P1 PWM2M1 汎用入出力ポートです。 F P80 ∼ P83 64 ∼ 67 PWM1P2 PWM1M2 PWM2P2 PWM2M2 PWM1P3 PWM1M3 PWM2P3 PWM2M3 F F ステッピングモータコントローラ ch.3 の出力端子 です。 汎用入出力ポートです。 D TX CAN インタフェースの TX 出力端子です。 P91 75 汎用入出力ポートです。 D RX CAN インタフェースの RX 入力端子です。 P92 76 汎用入出力ポートです。 D INT0 INT0 の外部割込み入力端子です。 P93 ∼ P95 汎用入出力ポートです。 D 78 ∼ 80 INT1 ∼ INT3 10 ステッピングモータコントローラ ch.2 の出力端子 です。 汎用入出力ポートです。 P90 74 ステッピングモータコントローラ ch.1 の出力端子 です。 汎用入出力ポートです。 P84 ∼ P87 69 ∼ 72 機能説明 INT1 ∼ INT3 の外部割込み入力端子です。 58, 68 DVCC - 高電流出力バッファの専用電源入力端子です (端 子番号 54 ∼ 72)。 53, 63, 73 DVSS - 高電流出力バッファの専用 GND 電源端子です (端 子番号 54 ∼ 72)。 34 AVCC - A/D コンバータの専用電源入力端子です。 37 AVSS - A/D コンバータの専用 GND 電源端子です。 35 AVRH - A/D コンバータの VrefH 入力端子です。 36 AVRL - A/D コンバータの VrefL 入力端子です。 49, 50 MD0, MD1 C テストモード用入力端子です。VCC に接続してく 51 MD2 H ださい。 テストモード用入力端子です。VSS に接続してくだ さい。 第 1 章 概要 表 1.6-1 端子機能説明 ( 4 / 4 ) 端子番号 端子名 回路形式 機能説明 27 C - 外部コンデンサ用の端子です。0.1 µ F のコンデン サを , この端子と VSS に接続してください。 23, 84 VCC - 電源入力端子です。 11, 42, 81 VSS - GND 電源端子です。 11 第 1 章 概要 入出力回路 1.7 表 1.7-1 に , 入出力回路を示します。 ■ 入出力回路 表 1.7-1 入出力回路 (1 / 3) 分類 回路 備考 発振帰還抵抗 約 1M Ω X1 発振帰還抵抗 A クロック入力 X0 HARD,SOFT STANDBY CONTROL プルアップ抵抗付きヒステリシス入力 プルアップ抵抗 : 約 50k Ω B R(プルアップ) R ヒステリシス入力 ヒステリシス入力端子 C R ヒステリシス入力 12 第 1 章 概要 表 1.7-1 入出力回路 (2 / 3) 分類 回路 備考 • • CMOS 出力 ヒステリシス入力 • • • CMOS 出力 ヒステリシス入力 アナログ入力 • • CMOS 高電流出力 ヒステリシス入力 P-ch D N-ch R ヒステリシス入力 P-ch N-ch E P-ch アナログ入力 R N-ch ヒステリシス入力 P-ch 高電流 F N-ch R ヒステリシス入力 13 第 1 章 概要 表 1.7-1 入出力回路 (3 / 3) 分類 回路 備考 • • • CMOS 出力 ヒステリシス入力 TTL 入力 (MB90F598/F598G のみ) • プルダウン抵抗付き ヒステリシス入力 プルダウン抵抗 : 約 50k Ω Flash 品にはプルダウン抵抗はありま せん P-ch N-ch G R ヒステリシス入力 R T TTL ヒステリシス入力 H 14 R R(プルダウン) • 第 1 章 概要 1.8 デバイスの取扱い デバイスを取り扱う際には , 次の 16 の点について特にご注意ください。 • ラッチアップの防止 • 供給電圧の安定化 • 未使用端子の処理 • 外部クロックの使用 • 電源入力端子 (VCC/VSS) • プルアップ / ダウン抵抗 • 水晶発振回路について • A/D コンバータの電源 , アナログ入力の投入順序について • A/D コンバータ未使用時の端子処理について • N.C. 端子の処理について • 電源投入時の注意点 • 初期化について • ポート 0,1 からの出力が不定になる場合 (MB90598/F598/V595/V595G のみ ) • 「DIV A,Ri」,「DIVW A,RWi」命令を使用する場合 • REALOS を使用する場合 • PLL クロックモード動作中の注意について ■ デバイスの取り扱い ● ラッチアップの防止 CMOS IC は , 以下の条件でラッチアップ現象を生じることがあります。 • VCC を超えるか VSS に満たない電圧が , 入力または出力端子に適用された場合。 • 定格電圧を超える電圧が VCC と VSS の間に適用された場合。 • AVCC 電源入力が VCC 電圧の前に適用された場合。 ラッチアップ現象は , 電流を急激に増加させ , デバイスを傷つけることがあります。 ● 供給電圧の安定化 VCC 電源電圧の動作保証内においても , 電源電圧の急激な変化があると誤動作を起こす 場合がありますので VCC 電源電圧を安定させてください。安定化の基準としては , 商用 周波数 (50Hz ∼ 60Hz) での VCC リプル変動 (peak to peak 値 ) は , 標準 VCC 電源電圧値の 10% 以下に , また電源の切換え時などの瞬時変化においては , 過渡変動率が 0.1V/ms 以 下になるように電源電圧を抑えてください。 ● 未使用端子の処理 使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる 永久破壊の原因となることがありますので , 2K Ω 以上の抵抗を介して , プルアップま たはプルダウンなどの処理をしてください。 また , 使用していない入出力端子がある場合は , 出力状態に設定して開放するか , また は入力状態に設定して入力端子と同じ処置をするかしてください。 15 第 1 章 概要 ● 外部クロックの使用 外部クロックを使用するには , X0 端子を駆動して , X1 端子は開放してください。 図 1.8-1 に , 外部クロックの使用方法を示します。 図 1.8-1 外部クロックの使用 MB90595 シリーズ X0 X1 ● 電源入力端子 (VCC/VSS) 図 1.8-2 に示すように , すべての VCC 電源端子は , 必ず同電位にしてください。また , すべての VSS 電源端子も同様に扱ってください。複数の VCC または VSS システムがあ る場合 , デバイスは保証された動作範囲内でも正しく動作しません。 図 1.8-2 電源入力端子 (VCC/VSS) Vcc Vss Vcc Vss Vss Vcc MB90595 シリーズ Vcc Vss Vss Vcc ● プルアップ / ダウン抵抗 MB90595 シリーズは , 内部プルアップ / ダウン抵抗をサポートしていません。必要で あれば , 外部構成部品を使用してください。 ● 水晶発振回路について X0, X1 端子の近辺のノイズはこのデバイスの誤動作の元となります。X0, X1 端子およ び水晶振動子(あるいはセラミック振動子), さらにグランドへのバイパスコンデンサ はできる限り近くになるように , またその配線は , ほかの配線とできる限り交差しない ようにプリント基板を設計してください。 また , X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定し た動作を期待できますので , 強くお薦めします。 16 第 1 章 概要 ● A/D コンバータの電源 , アナログ入力の投入順序について A/D コンバータ , D/A コンバータの電源 (AVCC, AVRH, AVRL, DVCC, DVSS) およびアナ ログ入力(AN0∼AN7)の印加は, 必ずディジタル電源(VCC)の投入後に行ってください。 また , 電源切断時は A/D コンバータの電源およびアナログ入力の遮断の後で , ディジタ ル電源の遮断を行ってください。その際 , AVRH, DVCC は AVCC を超えないように投 入・切断を行ってください。(アナログ電源とディジタル電源を同時に投入 , 遮断する ことは問題ありません。) ● A/D コンバータ未使用時の端子処理について A/D コンバータを使用しないときは , AVCC=VCC, AVSS=AVRH=DVCC=VSS に接続して ください。 ● N.C. 端子の処理について N.C.(内部接続)端子は , 必ず開放にして使用してください。 ● 電源投入時の注意点 内部に内蔵している降圧回路の誤動作を防ぐために , 電源投入時における電圧の立上 り時間は , 50 µ s(0.2V ∼ 2.7V の間)以上を確保してください。 ● 初期化について デバイス内には , パワーオンリセットによってのみ初期化される内蔵レジスタ類があ ります。これらの初期化を期待する場合は電源の再投入を行ってください。 ● ポート 0, 1 からの出力が不定になる場合(MB90598/F598/V595/V595G のみ) 電源を投入後 , 降圧回路の発振安定待ち時間(パワーオンリセット中)に RST 端子が "H" の場合 , ポート 0, 1 から不定を出力します。RST 端子が "L" の場合 , ポート 0, 1 は ハイ・インピーダンス状態になります。 タイミングは , 図 1.8-3 および図 1.8-4 のようになりますので注意してください。 17 第 1 章 概要 図 1.8-3 ポート 0, 1 が不定出力になるタイミングチャート(RST 端子が "H" の場合) 発振安定待ち時間*2 降圧回路の安定待ち時間*1 Vcc(電源端子) PONR(パワーオンリセット)信号 RST(外部非同期リセット)信号 RST(内部リセット)信号 発振クロック信号 KA(内部動作クロックA)信号 KB(内部動作クロックB)信号 PORT(ポート出力)信号 出力不定期間 *1:降圧回路の発振安定待ち時間 217/発振クロック周波数(発振クロック周波数16MHzの場合, 約 8.19ms) *2:発振安定待ち時間 218/発振クロック周波数(発振クロック周波数16MHzの場合, 約16.38ms) 図 1.8-4 ポート 0, 1 がハイ・インピーダンス状態になるタイミングチャート(RST 端子が "L" の場合) 発振安定待ち時間 *2 降圧回路の安定待ち時間 *1 Vcc(電源端子) PONR(パワーオンリセット)信号 RST(外部非同期リセット)信号 RST(内部リセット)信号 発振クロック信号 KA(内部動作クロックA)信号 KB(内部動作クロックB)信号 PORT(ポート出力)信号 *1:降圧回路の発振安定待ち時間 2 ハイ・インピーダンス 17 /発振クロック周波数(発振クロック周波数16MHzの場合,約 8.19ms) *2:発振安定待ち時間 218 /発振クロック周波数(発振クロック周波数16MHzの場合,約16.38ms) ●「DIV A,Ri」, 「DIVW A,RWi」命令を使用する場合 符号付乗除算命令「DIV A,Ri」, 「DIVW A,RWi」命令は , 対応するバンクレジスタ (DTB, ADB, USB, SSB) の値を "00H" に設定し使用してください。対応するバンクレジ スタ (DTB, ADB, USB, SSB) の値を "00H" 以外に設定した場合 , 命令実行結果により得 られる余りは , 命令オペランドのレジスタに格納されません。 詳細は ,「2.11「DIV A,Ri」,「DIVW A,RWi」命令の使用上の注意」を参照してください。 ● REALOS を使用する場合 REALOS を使用する場合は , 拡張インテリジェント I/O サービス (EI2OS) が使用できま せん。 ● PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を 継続し続ける場合があります。この動作は , 保証外の動作です。 18 第2章 CPU CPU の機能と動作について説明します。 2.1 CPU の概要 2.2 メモリ空間 2.3 メモリ空間マップ 2.4 リニア方式によるアドレス指定 2.5 バンク方式によるアドレス指定 2.6 メモリ空間における多バイト長データ 2.7 レジスタ 2.8 レジスタバンク 2.9 プリフィックスコード 2.10 割込み抑止命令 2.11 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 19 第 2 章 CPU 2.1 CPU の概要 F2MC-16LX CPU コアは , 民生用・車載用機器等の高速リアルタイム処理が要求さ れる用途向けに設計された 16bitCPU です。F2MC-16LX の命令セットはコントロー ラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。 ■ CPU の概要 F2MC-16LX CPU コアは 16 ビットデータ処理は勿論 , 内部に 32 ビットアキュームレー タを塔載しているため 32 ビットデータ処理も可能です。メモリ空間は最大 16Mbyte (拡張可能), リニア方式およびバンク方式のいずれかにてアクセス可能です。また , 命 令体系は F2MC-8L の A-T アーキテクチャをベースに , 高級言語対応命令の追加・アド レッシングモードの拡張・乗除算命令の強化・ビット処理の充実化により命令が強化 されています。 以下に , F2MC-16LX CPU の特長を示します。 ● 最小命令実行時間 62.5ns (4MHz 発振 , 4 逓倍) ● 最大メモリ空間 16Mbyte, リニア / バンク方式にてアクセス ● コントローラ用途に最適化された命令体系 • 豊富なデータタイプ ビット / バイト / ワード / ロングワード • 拡張されたアドレッシングモード 23 種類 • 32bit アキュムレータの採用による高精度演算 (32 ビット長)の強化 ● 強力な割込み機能 8 つのプライオリティレベル (プログラマブル) ● CPU に依存しない自動転送機能 最大 16ch までの拡張インテリジェント I/O サービス ● 高級言語 (C 言語)/ マルチタスクに対応した命令体系 システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令 ● 実行速度の向上 4byte のキュー 20 第 2 章 CPU 2.2 メモリ空間 F2MC-16LX CPU が管理するデータ・プログラム・I/O はすべて F2MC-16LX CPU が持つ 16Mbyte のメモリ空間のいずれかに配置されます。CPU は 24bit のアドレス バスでこれらのアドレスを示すことにより , 各リソースをアクセスすることができ ます。 ■ CPU メモリ空間の概要 図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。 図 2.2-1 F2MC-16LX システムとメモリマップの関係例 FFFFFFH F2 MC-16LX CPU プログラム FF8000H データ 810000H 割込み 800000H データ領域 周辺回路 〔デバイス〕 プログラム領域 汎用ポート 0000C0H 0000B0H 000020H 000000H 割込みコントローラ 周辺回路 汎用ポート ■ アドレス作成の方式 F2MC-16LX のアドレス指定には , 以下に示す 2 つの方式があります。 ● リニア方式 24bit アドレスすべてを命令により指定する方式 ● バンク方式 アドレス上位 8bit を用途に応じたバンクレジスタで , アドレス下位 16bit を命令により 指定する方式 21 第 2 章 CPU 2.3 メモリ空間マップ 図 2.3-1 に , MB90595 シリーズのメモリ空間マップを示します。 ■ メモリ空間マップ 図 2.3-1 に示すように , バンク 00 の上位部分は FF バンク ROM のイメージであり , C コ ンパイラのスモールモデルを有効にします。下位 16 ビットも同様なため , ポインタ宣 言内の far 仕様を使用せずに ROM 内のテーブルを参照できます。たとえば , 00C000H にアクセスしようとすると , ROM 内の FFC000H の値にアクセスすることになります。 バンク FF 内の ROM 領域は 48Kbyte を超え , バンク 00 内にその全体イメージを表示す ることはできません。 FF4000H ∼ FFFFFFH の間のイメージはバンク 00 内で可視ですが , FF0000H ∼ FF3FFFH の間のイメージはバンク FF 内でしか可視でありません。 図 2.3-1 メモリ空間マップ MB90V595/V595G FFFFFFH FF0000H FEFFFFH ROM (FFバンク) ROM (FEバンク) FC0000H 00FFFFH 004000H FF0000H FEFFFFH ROM (FFバンク) ROM (FEバンク) ROM (FDバンク) ROM (FCバンク) ROM (FFバンク のイメージ) 001FFFH 001900H 0018FFH FFFFFFH FE0000H FE0000H FDFFFFH FD0000H FCFFFFH MB90F598/F598G/MB90598/MB90598G 00FFFFH 004000H ROM (FFバンク のイメージ) 001FFFH 周辺 RAM 6K 001900H 周辺 0010FFH RAM 4K 000100H 0000BFH 000000H 22 000100H 周辺 0000BFH 000000H 周辺 第 2 章 CPU 2.4 リニア方式によるアドレス指定 リニア方式には以下に示す 2 つの方式があります。 • 24 ビットオペランド指定……オペランドにて直接 24bit のアドレスを指定する方 式 • 32 ビットレジスタ間接指定……32bit の汎用レジスタの内容の下位 24bit をアド レスとして引用する方式。 ■ 24 ビットオペランド指定 図 2.4-1 に , 24 ビットオペランド指定の例を , 図 2.4-2 に , 32 ビットレジスタ間接指定 の例を示します。 図 2.4-1 リニア方式 (24 ビットオペランド指定)の例 JMPP 123456H 旧プログラムカウンタ +プログラムバンク 17 17452DH 452D 123456H 新プログラムカウンタ +プログラムバンク 12 JMPP 123456H 次の命令 3456 図 2.4-2 リニア方式 (32 ビットレジスタ間接指定)の例 MOV A,@RL1+7 旧AL XXXX 090700H 3A +7 RL1 (上位8bitは無視) 新AL 240906F9 003A 23 第 2 章 CPU 2.5 バンク方式によるアドレス指定 バンク方式は 16Mbyte の空間を 64Kbyte ごとの 256 個のバンクに分割し , 以下に 示す 5 つのバンクレジスタで各空間に対応するバンクを指定します。 • プログラムバンクレジスタ (PCB) • データバンクレジスタ (DTB) • ユーザスタックバンクレジスタ (USB) • システムスタックバンクレジスタ (SSB) • アディショナルバンクレジスタ (ADB) ■ バンク方式によるアドレス指定 ● プログラムバンクレジスタ (PCB) による指定 プログラムバンクレジスタ (PCB) によって指定される 64Kbyte のバンクをプログラム (PC) 空間とよび , 主として命令コードやベクタテーブル , 即値データなどが存在しま す。 ● データバンクレジスタ (DTB) による指定 データバンクレジスタ (DTB) によって指定される 64Kbyte のバンクをデータ (DT) 空間 とよび , 主として読み書き可能なデータや内外リソースの制御 / データレジスタなどが 存在します。 ● ユーザスタックバンクレジスタ (USB)・システムスタックバンクレジスタ (SSB) による指 定 ユーザスタックバンクレジスタ (USB) あるいはシステムスタックバンクレジスタ (SSB) によって指定される 64Kbyte のバンクをスタック (SP) 空間とよび , プッシュ / ポップ命令や割込みのレジスタ退避などの際にスタックアクセスが生じたときにアク セスされる領域です。どちらの空間が使用されるかはコンディションコードレジスタ 中の S フラグの値に依存します。 ● アディショナルバンクレジスタ (ADB) による指定 アディショナルバンクレジスタ (ADB) によって指定される 64Kbyte のバンクをアディ ショナル (AD) 空間とよび , 主として DT 空間に入りきらなかったデータなどが存在し ます。 表 2.5-1 に示すように , 各アドレッシングモードで使用されるデフォルト空間が , 命令 のコード効率を向上するために事前に決められています。また , あるアドレッシングを 用いたときにデフォルト以外の空間を使用したいときは , 各バンクに対応しているプ リフィックスコードを命令に先行して指定することにより , そのプリフィックスコー ドに対応した任意のバンク空間をアクセスすることができます。 DTB, USB, SSB, ADB はリセットにより 00H に初期化され , PCB はリセットベクタによ り 指 定 さ れ た 値 に 初 期 化 さ れ ま す。リ セ ッ ト 後 , DT, SP, AD の 各 空 間 は バ ン ク 00H(000000H ∼ 00FFFFH) に配置され, PC空間はリセットベクタにより指定されたバン クに配置されます。 24 第 2 章 CPU 表 2.5-1 デフォルト空間 デフォルト空間 アドレッシング プログラム空間 PC 間接 , プログラムアクセス , 分岐系 データ空間 @RW0, @RW1, @RW4, @RW5 を用いたアドレッシング , @A,addr16,dir スタック空間 PUSHW, POPW, @RW3, @RW7 を用いたアドレッシング アディショナル空間 @RW2, @RW6 を用いたアドレッシング 図 2.5-1 に , レジスタバンクに分割されたメモリ空間の例を示します。 図 2.5-1 各空間の物理アドレス FFFFFFH 物 理 ア ド レ ス FF0000H B3FFFFH B30000H 92FFFFH 920000H 68FFFFH 680000H 4BFFFFH 4B0000H プログラム空間 アディショナル空間 ユーザスタック空間 データ空間 システムスタック空間 FFH : PCB(プログラムバンクレジスタ) ( B3H : ADB(アデショナルバンクレジスタ) 92H : USB(ユーザスタックバンクレジスタ) 68H : DTB(データバンクレジスタ) ( 4BH : SSB(システムスタックバンクレジスタ) 000000H 25 第 2 章 CPU 2.6 メモリ空間における多バイト長データ メモリへの書込みはアドレスの低い方から順に行われます。したがって , 32 ビット 長データであれば下位 16bit が先に転送され , 続いて上位 16bit が転送されます。 なお , 下位データの書込み直後にリセット信号を入力すると上位データが書き込ま れないことがあります。 ■ メモリ空間における多バイト長データの配置 図 2.6-1 に , メモリにおける多バイト長データの構成を示します。データは下位 8bit が n 番地に , 以下 n+1 番地 , n+2 番地 , n+3 番地・・・の順に配置されます。 図 2.6-1 メモリにおける多バイト長データの配置の例 MSB H ↑ 01010101 LSB 11001100 11111111 00010100 01010101 11001100 11111111 n番地 00010100 ↓ L ■ 多バイト長データのアクセス アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク セスする命令では , FFFFH 番地の次のアドレスは同じバンクの 0000H 番地になります。 図 2.6-2 に , 多バイト長データのアクセス命令の例を示します。 図 2.6-2 MOVW A, 080FFFFH の実行 H ↑ 80FFFFH ↓ L 26 ?? ?? 実行後のAL 23H 01H 01H ・ ・ ・ 800000H 実行前のAL 23H 第 2 章 CPU 2.7 レジスタ F2MC-16LX のレジスタは大別して , 専用レジスタと , 汎用レジスタの 2 種類に分け ることができます。 専用レジスタは , CPU の内部に専用ハードウェアとして存在し , 使用する用途が CPU のアーキテクチャ上で限定されています。 汎用レジスタは , 通常のメモリと同じく , 使用する用途をユーザが指定することが できるものです。CPU のアドレス空間上に RAM と共存し , アドレスを指定しない でアクセスできるという点では専用レジスタと同じです。 ■ 専用レジスタ F2MC-16LX CPU コアの専用レジスタは以下に示す 13 本があります。 • アキュムレータ (A=AH:AL)……16bit × 2 本のアキュムレータ(合計 32bit のアキュ ムレータとしても使用可能)。 • ユーザスタックポインタ (USP)……ユーザスタック領域を示す 16bit のポインタ • システムスタックポインタ (SSP)……システムスタック領域を示す16bit のポインタ • プロセッサステータス (PS)……システムの状態を示す 16bit のレジスタ • プログラムカウンタ (PC)……プログラムが格納されているアドレスを持つ 16bit の レジスタ • プログラムバンクレジスタ (PCB)……PC 空間を示す 8bit のレジスタ • データバンクレジスタ (DTB)……DT 空間を示す 8bit のレジスタ • ユーザスタックバンクレジスタ (USB)……ユーザスタック空間を示す 8bit のレジス タ • システムスタックバンクレジスタ (SSB)……システムスタック空間を示す 8bit のレ ジスタ • アディショナルバンクレジスタ (ADB)……AD 空間を示す 8bit のレジスタ • ダイレクトページレジスタ (DPR)……ダイレクトページを示す 8bit のレジスタ 図 2.7-1 に , 専用レジスタの構成を示します。 27 第 2 章 CPU 図 2.7-1 専用レジスタ AH AL アキュムレータ USP ユーザスタックポインタ SSP システムスタックポインタ PS プロセッサステータス PC プログラムカウンタ DPR ダイレクトページレジスタ PCB プログラムバンクレジスタ DTB データバンクレジスタ USB ユーザスタックバンクレジスタ SSB システムスタックバンクレジスタ ADB アディショナルデータバンクレジスタ 8 bit 16 bit 32 bit ■ 汎用レジスタ 図 2.7-2 に示すように , F2MC-16LX の汎用レジスタは主記憶の 000180H ∼ 00037FH(最 大の場合)に存在し , レジスタバンクポインタ (RP) によって先に述べたアドレスのど の部分が現在使用中のレジスタバンクであるかを指定します。各バンクには以下に示 す 3 種のレジスタが存在します。これらは独立ではなく , 以下に示すような関係があり ます。 • R0 ∼ R7 : 8bit の汎用レジスタ • RW0 ∼ RW7: 16bit の汎用レジスタ • RL0 ∼ RL3: 32bit の汎用レジスタ 図 2.7-2 汎用レジスタ MSB 000180H + RP*10H 汎用レジスタの 先頭アドレス LSB 16bit 下位 RW0 RL0 RW1 RW2 RL1 RW3 上位 R1 R0 RW4 R3 R2 RW5 R5 R4 RW6 R7 R6 RW7 バイトレジスタとワードレジスタの上位 / 下位バイトの関係は , RW(i+4) = R(i*2+1)*256+R(i*2) [i=0 ∼ 3] という式で表すことができ , RLi の上位・下位と RW の関係は RL(i) = RW(i*2+1)*65536+RW(i*2) [i=0 ∼ 3] という式で表すことができます。 28 RL2 RL3 第 2 章 CPU 2.7.1 アキュムレータ (A) アキュムレータ (A) レジスタは , 2 つの 16bit 長の演算用レジスタ AH および AL で 構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されます。 ■ アキュムレータ (A) アキュムレータ (A) レジスタでは , 図 2.7-3 に示すように , 32bit データ処理時は AH と AL を連結して使用します。また , 図 2.7-4 に示すように , 16bit データ処理のワード処 理や 8bit データ処理のバイト処理のときは AL のみが使用されます。A レジスタ中の データはメモリ / レジスタ (Ri, RWi, RLi) 中のデータと各種演算ができ , F2MC-8 のとき と同様 , F2MC-16LX でも基本的にワード長以下のデータを AL へ転送しますと , 転送前 の AL 中のデータが自動的に AH に転送されます(データ保持機能)ので , データ保持 機能と AL -AH 間演算にて各種処理効率を上げることが可能になります。 AL へのバイト長以下のデータの転送時は , データは符号拡張またはゼロ拡張され 16bit 長となり AL へ格納されます。AL 中のデータは , ワード長としてもバイト長としても 扱えます。AL にバイト処理の算術演算命令を実行すると , 演算前の AL の上位 8bit は 無視され演算結果の上位 8bit はすべて "0" になります。A レジスタは , リセットでは初 期化されず , リセット直後は不定値になります。 図 2.7-3 32bit データ転送例 MOVL A,@RW1+6 MSB 実行前のA XXXXH XXXXH DTB 実行後のA 8F74H 2B52H AH AL A6H メモリ空間 LSB A61540H 8FH 74H A6153EH 2BH 52H 15H 38H +6 RW1 図 2.7-4 AL -AH 転送例 MOVW A,@RW1+6 MSB 実行前のA XXXXH 1234H DTB 実行後のA 1234H 1234H AH AL A6H メモリ空間 LSB A61540H 8FH 74H A6153EH 2BH 52H 15H 38H +6 RW1 29 第 2 章 CPU ユーザスタックポインタ (USP) とシステムスタック ポインタ (SSP) 2.7.2 ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は , 16bit のレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復帰のメモリアドレスを示します。 ■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) 図 2.7-5 に示すように , ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) は , スタック系の命令により使用されますが , プロセッサステータス中の S フラグ が "0" のときは , USP レジスタが有効になり , S フラグが "1" のときは SSP レジスタが有 効になります。また , 割込みが受付られると S フラグがセットされるため , 割込み時の レジスタ退避は必ず SSP の示すメモリ中に行われます。割込みルーチンでのスタック 処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いられます。スタック 空間を分ける必要のない場合は SSP だけをお使いください。 スタック時のアドレスの上位 8bit は , SSP → SSB, USP → USB により示されます。ま た USP および SSP は , リセットでは初期化されず , 不定値になります。 図 2.7-5 スタック操作命令とスタックポインタ Sフラグが"0"の時のPUSHW Aの例 実行前 AL A624H USP F328H SSB 56H? SSP 1234H USB C6H USP F326H SSB 56H SSP 1234H C6F326H A6H 24H A624H USB C6H USP F328H 561232H XX XX 1 SSB 56H SSP 1234H A624H USB C6H USP F328H 561232H A6H 24H SSB 56H SSP 1232H 0 AL A624H 0 Sフラグ C6F326H LSB C6H Sフラグ 実行後 MSB USB XX XX Sフラグが"0"であるため ユーザスタックを使用 Sフラグが"1"の時のPUSHW Aの例 実行前 AL Sフラグ 実行後 AL Sフラグ 1 < 注意事項 > 30 Sフラグが"1"であるため システムスタックを使用 スタックポインタに設定すべき値は, 原則として偶数アドレスを使用してください。 第 2 章 CPU 2.7.3 プロセッサステータス (PS) プロッセッサステータス (PS) は , CPU の動作制御を行うビットと CPU の状態を示 すビットより構成されています。 ■ プロセッサステータス (PS) 図 2.7-6 に示すように , プロッセサステータス (PS) の上位バイトはレジスタバンクの先 頭アドレスを示すインタラプトレベルマスクレジスタ(ILM)および, レジスタバンクポ インタ (RP) より構成され , PS の下位バイトは命令実行結果および割込み発生などによ りセット / リセットされる各種フラグより構成されているコンディションコードレジ スタ (CCR) より構成されています。 図 2.7-6 プロッセサステータス ( PS) の構造 bit 15 PS 13 12 8 7 ILM 0 RP CCR ■ コンディションコードレジスタ (CCR) 図 2.7-7 に , コンディションコードレジスタ (CCR) の構成を示します。 図 2.7-7 コンディションコードレジスタ (CCR) の構成 bit 7 6 5 4 3 2 1 0 - I S T N Z V C : CCR - 0 1 X X X X X X:不定値 初期値 ● 割込み許可フラグ (I) ソフトウェアインタラプト以外のすべての割込み要求に対し I が "1" のときは割込みが 許可 , "0" のときは割込みはマスク。リセット時クリア。 ● スタックフラグ (S) S が "0" のときはスタック操作用ポインタとして USP が有効 , "1" のときは SSP が有効 になります。割込み受付時およびリセット時にセット。 ● スティッキィビットフラグ (T) 論理右 / 算術右シフト命令を実行後にキャリよりシフトアウトされたデータに 1 つ以 上 "1" があったら "1", それ以外は "0"。シフト量がゼロの場合も "0"。 ● ネガティブフラグ (N) 演算結果の MSB が "1" なら N フラグはセット , それ以外はクリア。 ● ゼロフラグ (Z) 演算結果がすべて "0" ならセット , それ以外はクリア。 31 第 2 章 CPU ● オーバフローフラグ (V) 演算の実行により符号付き数値としてオーバフローが生じるとセット , 生じないとク リア。 ● キャリーフラグ (C) 演算の実行により MSB より桁上り / 桁下りが生じるとセット , 生じないとクリア。 ■ レジスタバンクポインタ (RP) 図 2.7-8 に示すように , レジスタバンクポインタ (RP) は , F2MC-16LX の持つ汎用レジ スタとそれが存在する内部 RAM のアドレスとの関係を示すレジスタで , 現在使用中の レジスタバンクの先頭のメモリアドレスを[ 000180H +(RP)*10H という変換式で示しま す。RP は 5bit により構成されており 00H ∼ 1FH までの値をとることができ , 000180H ∼ 00037FH のメモリ中にレジスタバンクを配置できます。 ただし , この範囲内であっても内部 RAM でなければ汎用レジスタとして使用すること はできません。RP はリセットによりすべて "0" に初期化されます。命令上では RP に 8bit の即値が転送できますが , 実際に使用されるのはそのデータの下位 5bit のみです。 図 2.7-8 レジスタバンクポインタ (RP) 初期値 32 B4 B3 B2 B1 B0 0 0 0 0 0 : RP 第 2 章 CPU ■ インタラプトレベルマスクレジスタ (ILM) 図 2.7-9 に示すように , インタラプトレベルマスクレジスタ (ILM) は 3bit から構成され ており , CPU の割込みマスクのレベルを示します。この 3bit により示されるレベルよ り強いレベルの割込み要求のみが受付られます。表 2.7-1 に示すように , レベルの強弱 は "0" が最強で , "7" が最弱と定義されています。したがって割込みが受付られるには , 現状の ILM の保持値より小さい値の要求でなければなりません。割込みが受付られる とその割込みのレベル値が ILM にセットされ , これ以降の同じかそれより低い優先順 位の割込みは受付られなくなります。ILM はリセットによりすべて "0" に初期化され ます。命令上では ILM に 8bit の即値が転送できますが , 実際に使用されるのはそのデー タの下位 3bit のみです。 図 2.7-9 インタラプトレベルマスクレジスタ (ILM) 初期値 ILM2 ILM1 ILM0 0 0 0 : ILM 表 2.7-1 インタラプトレベルマスクレジスタ (ILM) で示されるレベルの強弱 ILM2 ILM1 ILM0 レベル値 許可される割込みレベル 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 割込み禁止 0 のみ 1 より小さい値のレベル 2 より小さい値のレベル 3 より小さい値のレベル 4 より小さい値のレベル 5 より小さい値のレベル 6 より小さい値のレベル 33 第 2 章 CPU 2.7.4 プログラムカウンタ (PC) プログラムカウンタ (PC) は , 16bit のカウンタであり , CPU が実行すべき命令コー ドのメモリアドレスの下位 16bit を示します。上位 8bit アドレスは PCB により示さ れます。PC は条件分岐命令 , サブルーチンコール命令 , 割込み , リセットなどによ り内容が更新されます。 また , オペランドアクセス時のベースポインタとして使用することもできます。 ■ プログラムカウンタ (PC) 図 2.7-10 に , プログラムカウンタを示します。 図 2.7-10 プログラムカウンタ PCB FEH PC ABCDH FEABCDH 34 次に実行する命令 第 2 章 CPU 2.8 レジスタバンク レジスタバンクは 8word で構成され , バイトレジスタ R0 ∼ R7, ワードレジスタ RW0 ∼ RW7, ロングワードレジスタ RL0 ∼ RL3 の汎用レジスタとして各種演算 , ポインタとして各種命令に使用でき , RL0 ∼ RL3 は全空間を直接アクセスするリニ アポインタとしても使用できます。 ■ レジスタバンク 表 2.8-1 に , 各レジスタの機能を , 表 2.8-2 に各レジスタの関係を示します。 レジスタバンクの内容は , 通常の RAM 同様に , リセットでは初期化されず , リセット 前の状態が保持されます。ただし , パワーオン時は不定値になります。 表 2.8-1 各レジスタの機能 R0 ∼ R7 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ命令のカウン タとしても使用 RW0 ∼ RW7 ポインタ , 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 ∼ RL3 ロングポインタ , 各種命令のオペランドとして使用 表 2.8-2 各レジスタの関係 RW0 RW1 RW2 RW3 R0 R1 R2 R3 R4 R5 R6 R7 RL0 RL1 R4 RL2 RW5 RW6 RL3 RW7 35 第 2 章 CPU ● ダイレクトページレジスタ (DPR) <初期値 :01H > ダイレクトページレジスタ (DPR) は , ダイレクトアドレッシングの命令時のオペラン ドの addr8 ∼ addr15 を指定します。図 2.8-1 に示すように , DPR は 8bit 長であり , リセッ トにより 01H に初期化されます。 図 2.8-1 ダイレクトアドレッシングによる物理アドレスの生成 DTBレジスタ DPRレジスタ 命令中のダイレクトアドレス αααααααα ββββββββ γγγγγγγγ MSB 24bit 物理アドレス LSB ααααααααββββββββγγγγγγγγ ● プログラムカウンタバンクレジスタ (PCB) <初期値 : リセットベクタ中の値> ● データバンクレジスタ (DTB) <初期値 :00H > ● ユーザスタックバンクレジスタ (USB) <初期値 :00H > ● システムスタックバンレジスタ (SSB) <初期値 :00H > ● アディショナルデータバンクレジスタ (ADB) <初期値 :00H > 各々のバンクレジスタはそれぞれ PC 空間 , DT 空間 , SP 空間(ユーザ), SP 空間(シ ステム)AD 空間の配置されるメモリバンクを示します。すべてのバンクレジスタはバ イト長であり , リセットにより PCB はリセットベクタにより 00H に初期化されます。 PCB 以外のバンクレジスタは読出し / 書込みができます。PCB は読出しは可能ですが 書き込むことはできません。 16Mbyte 全空間に分岐するJMPP, CALLP, RETP, RETIQ, RETF命令実行時および割込み 時に PCB は書き換わります。各レジスタの動作は , 「2.2 メモリ空間」を参照してく ださい。 36 第 2 章 CPU 2.9 プリフィックスコード 命令の前にプリフィックスコードを置くことで , 命令動作の一部を変更することが 可能です。プリフィックスコードには , バンクセレクトプリフィックス , コモンレジ スタバンクプリフィックス , フラグ変化抑止プリフィックスの 3 種類があります。 ■ バンクセレクトプリフィックス データアクセスの際に使用されるメモリ空間はアドレッシングごとに定められていま す。バンクセレクトプリフィックスを命令前に置くことで , 命令によるデータアクセス のメモリ空間をアドレッシングモードと無関係に任意に選択することが可能となりま す。 表 2.9-1 に , バンクセレクトプリフィックスと対応するメモリ空間を示します。 表 2.9-1 バンクセレクトプリフィックス バンクセレクトプリフィックス 選択される空間 PCB PC 空間 DTB データ空間 ADB AD 空間 SPB そのときのスタックフラグの内容により SSP 空 間 , USP 空間のどちらかが用いられます。 ただし , 以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW 〕 プリフィックスの有無に関わらず, オペランド指定されたバンクレジスタを使用する。 ● スタック操作命令〔PUSHW, POPW〕 プリフィックスの有無に関わらず , S フラグに応じて SSB または USB を使用する。 ● I/O アクセス命令 MOV A,io / MOV io,A /MOVX A,io / MOVW A,io / MOVW io,A / MOV io,#imm 8 MOVW io,#imm16 / MOVB A,io:bp / MOVB io:bp,A / SETB io:bp / CLRB io:bp BBC io:bp,rel / BBS io:bp,rel / WBTC,WBTS プリフィックスの有無に関わらず , バンクの IO 空間が使用されます。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8 〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● POPW PS プリフィックスの有無に関わらず , S フラグに応じて SSB または USB が使用されます。 プリフィックスの効果が次の命令まで及びます。 37 第 2 章 CPU ● MOV ILM,#imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● RETI プリフィックスの有無に関わらず , SSB が使用されます。 ■ コモンレジスタバンクプリフィックス (CMR) 複数のタスク間でのデータ交換を容易にするためには , そのときの RP がどのような値 でも比較的簡単に定められた同一のレジスタバンクをアクセスする手段が必要です。 コモンレジスタバンクプリフィックス (CMR) をレジスタバンクをアクセスする命令の 前に置くことで , 現在の RP の値に関係なくその命令のレジスタアクセスをすべて 000180H ∼ 00018FH にあるコモンバンク (RP=0 のときに選択されるレジスタバンク ) に変更することができます。ただし , 以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕 プリフィックスコードを付加したストリング命令実行中に割込み要求が発生すると , 割込み復帰後のストリング命令に対しては , プリフィックスが無効であるため誤動作 となります。上記のストリング命令に対しては CMR プリフィックスを付加しないでく ださい。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● MOV ILM,#imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ■ フラグ変化抑止プリフィックス (NCC) フラグ変化を抑止するためには , フラグ変化抑止プリフィックスコード (NCC) を用い ます。不要フラグ変化を抑止する命令の前に置くことで , 命令実行に伴うフラグ変化を 抑止可能です。ただし以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW 〕 プリフィックスコードを付加したストリング命令の実行中に割込み要求が発生すると 割込み復帰後のストリング命令に対してはプリフィックスが無効であるために誤動作 となります。上記のストリング命令には NCC プリフィックスを付加しないでくださ い。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● 割込み命令〔INT #vct8,INT9, INT addr16, INTP addr24, RETI〕 プリフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。 ● JCTX @A プリフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。 ● MOV ILM,imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 38 第 2 章 CPU 2.10 割込み抑止命令 以下に示す 10 種類の命令については , 割込み要求はサンプリングされません。 ・MOV ・AND ILM, #imm8 CCR, #imm8 ・PCB ・ADB ・SPB ・CMR ・OR CCR, #imm8 ・POPW PS ・NCC ・DTB ■ 割込み抑止命令 図 2.10-1 に示すように , この命令実行中に有効なハードウェア割込み要求が発生して も , 割込み処理が行われるのは , この命令以降にこの種類以外の命令が実行された後に なります。 図 2.10-1 割込み抑止命令 割込み抑止命令 (a) ・・・・・・・・ ・・・ (a)普通の命令 割込み要求発生 割込み受け付け ■ 割込み抑止命令とプリフィックス命令に関する制約 図 2.10-2 に示すように , 割込み抑止命令の前にプリフィックスコードを付加した場合 , プリフィックスコードの効果は , プリフィックスコード後の最初の〔割込み抑止命令以 外の命令〕まで及びます。 図 2.10-2 割込み抑止命令とプリフィックスコード 割込み抑止命令 MOV A,FFH NCC MOV ILM,#imm8 ・・・・ CCR:XXX10XX ADD A,01H CCR:XXX10XX NCCにより,CCRは変化しません ■ プリフィックスコードが連続している場合 図 2.10-3 に示すように, 競合するプリフィックスコードが連続していた場合, 後方のも のが有効になります。なお , 競合するプリフィックスコードとはここでいう PCB, ADB, DTB, SPB のことを意味します。 図 2.10-3 プリフィックスコードの連続 プリフィックスコード ・・・・・ ADB DTB PCB ADD A,01H ・・・・ ↑プリフィックスコードは PCBが有効になります。 39 第 2 章 CPU 2.11 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 「DIV A,Ri」および「DIVW A,RWi」命令を使用する場合は , バンクレジスタを "00H" に設定してください。 ■「DIV A,Ri」および「DIVW A,RWi」命令の使用上の注意 表 2.11-1 「DIV A,Ri」および「DIVW A,RWi」命令の使用上の注意 (i=0 ∼ 7) 命令 左記命令事項時に影響を受 けるバンクレジスタ名 余りが格納されるアドレス DIV A,R0 (DTB: 上位 8 ビット)+(0180H+RP × 10H+8H: 下位 16 ビット) DIV A,R1 (DTB: 上位 8 ビット)+(0180H+RP × 10H+9H: 下位 16 ビット) DIV A,R4 (DTB: 上位 8 ビット)+(0180H+RP × 10H+CH: 下位 16 ビット) (DTB: 上位 8 ビット)+(0180H+RP × 10H+DH: 下位 16 ビット) DIV A,R5 DTB DIVW A,RW0 (DTB: 上位 8 ビット)+(0180H+RP × 10H+0H: 下位 16 ビット) DIVW A,RW1 (DTB: 上位 8 ビット)+(0180H+RP × 10H+2H: 下位 16 ビット) DIVW A,RW4 (DTB: 上位 8 ビット)+(0180H+RP × 10H+8H: 下位 16 ビット) DIVW A,RW5 (DTB: 上位 8 ビット)+(0180H+RP × 10H+AH: 下位 16 ビット) DIV A,R2 (ADB: 上位 8 ビット)+(0180H+RP × 10H+AH: 下位 16 ビット) (ADB: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット) DIV A,R6 ADB DIVW A,RW2 (ADB: 上位 8 ビット)+(0180H+RP × 10H+4H: 下位 16 ビット) DIVW A,RW6 (ADB: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット) DIV A,R3 (USB*2: 上位 8 ビット)+(0180H+RP × 10H+BH: 下位 16 ビット) DIV A,R7 DIVW A,RW3 USB SSB*1 (USB*2: 上位 8 ビット)+(0180H+RP × 10H+FH: 下位 16 ビット) (USB*2: 上位 8 ビット)+(0180H+RP × 10H+6H: 下位 16 ビット) (USB*2: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット) DIVW A,RW7 *1: CCR レジスタの S ビットによる *2: CCR レジスタの S ビットが "0" の場合 バンクレジスタ (DTB, ADB, USB, SSB) の値が "00H" の場合は , 除算結果の余りが命令 オペランドのレジスタに格納されます。バンクレジスタの値が "00H" 以外の場合は , 上 位 8 ビットアドレスは命令オペランドのレジスタに対応したバンクレジスタにより指 定され , 下位 16 ビットアドレスは命令オペランドのレジスタのアドレスと同じアドレ スとなり , 上位 8 ビットで指定されたバンクのレジスタに余りが格納されます。 40 第 2 章 CPU ●例 DTB=053H, RP=03H の 場 合 に「DIV A,R0」を 実 行 し た 場 合 は , R0 の ア ド レ ス が "0180H"+RP("03H") × "10H"+"08H"(R0 相当アドレス)=0001B8H となります。 ここで , 「DIV A,R0」で指定されるバンクレジスタはデータバンクレジスタ (DTB) で すので, バンクアドレス"053H"を付加したアドレス"05301B8H"に余りが格納されます。 < 参考 > バンクレジスタ , Ri および RWi のレジスタについては , 「2.7 レジスタ」を参照し てください。 ■ 注意事項の回避について 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意事項を回避してプログラムを開発 していただくために , コンパイラでは 表 2.11-1 の命令を生成しないように変更し , ア センブラでは 表 2.11-1 の命令を同等の命令列に置き換える機能を追加したものが用 意されています。MB90595 シリーズのコンパイラおよびアセンブラは , 以下のものを 使用してください。 ● コンパイラ cc907 の V02L06 以降のバージョンおよび fcc907s の V30L02 以降のバージョン ● アセンブラ asm907a の V03L04 以降のバージョンおよび fasm907s の V03L04(Rev.300004) 以降の バージョン 41 第 2 章 CPU 42 第3章 割込み MB90590 シリーズの割込みと拡張インテリジェン ト I/O サービス (EI2OS) の機能と動作について説明 します。 3.1 割込みの概要 3.2 割込みベクタ 3.3 割込み制御レジスタ (ICR) 3.4 割込みフロー 3.5 ハードウェア割込み 3.6 ソフトウェア割込み 3.7 拡張インテリジェント I/O サービス (EI2OS) 3.8 拡張インテリジェント I/O サービス (EI2OS) の 動作フローと使用手順 3.9 例外 43 第 3 章 割込み 割込みの概要 3.1 F2MC-16LX は , イベントなどの発生により現在実行中の処理を中断して , 別に定義 したプログラムへ制御を移す割込み機能があります。割込み機能は以下の 4 つに分 けることができます。 • ハードウェア割込み……内蔵リソースのイベント発生による割込み処理 • ソフトウェア割込み……ソフトウェアのイベント発生命令による割込み処理 • 拡張インテリジェント I/O サービス (EI2OS)……内蔵リソースのイベント発生によ る転送処理 • 例外……動作例外事項の発生による中断処理 ■ ハードウェア割込み ハードウェア割込みは , 内部リソースからの割込み要求によって起動します。ハード ウェア割込み要求は , 内部リソース内の割込み要求フラグと割込み許可フラグがセッ トされた場合に発生します。従って , ハードウェア要求を発生させるためには , 内部リ ソース内に , 割込み要求フラグと割込み許可フラグを持っていなければなりません。 ● 割込みレベルの指定 ハードウェア割込みは , 割込みレベルを指定することができます。割込みレベルを指定 するには , 割込みコントローラのレベル設定ビット (IL0, IL1, IL2) を使用します。 ● ハードウェア割込み要求マスク ハードウェア割込み要求は , CPU 内のプロセッサステータスレジスタ (PS) 中の I フラ グおよび ILM ビット (IL0, IL1, IL2) を使用してマスクすることができます。マスクの かかっていない割込み要求が発生すると , CPU は , PS, PC, PCB, DTB, ADB, DPR, A の 各レジスタからなる 12 バイトのデータを SSB と SSP レジスタが示すメモリ領域に退 避します。 図 3.1-1 ハードウェア割込みの概要 PS レジスタファイル F2MC-16 バス マイクロコード IR ⑥ F2MC-16LX CPU 許可 FF ⑦ AND チェック ⑤ 比較器 ④ PS I ILM IR : : : : プロセッサステータス 割込み許可フラグ 割込みレベルマスクレジスタ インストラクションレジスタ ③ 周辺 要因 FF ① ILM I ② レ ベ ル 比 較 器 割 込 レ ベ ル IL 割込み コントローラ ■ ソフトウェア割込み ソフトウェア割込みは , CPU がそれまで実行していたプログラムの実行から , ユーザの 定義した割込み処理用プログラムへ制御を移行する機能です。 ソフトウェア割込みは , INT 命令実行により要求されます。INT 命令により要求される 44 第 3 章 割込み 割込みには , 割込み要求フラグと割込み許可フラグはありません。INT 命令の実行によ り常に割込み要求が発生します。 INT 命令には , 割込みレベルの割当もありません。このため , INT 命令使用時には ILM の更新は行われません。代わりに , I フラグをクリアして , 継続する割込み要求を保留 状態にします。 図 3.1-2 ソフトウェア割込みの概要 ① F2MC-16 バス レジスタファイル ② マイクロコード PS I S Bユニット IR キュー F2MC-16LX CPU フェッチ 退避 命令系バス PS : I : S : IR : Bユニット: RAM プロセッサステータス 割込み許可フラグ スタックフラグ インストラクションレジスタ Bus interfaceユニット ■ 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービスは , 内蔵リソースとメモリの間でデータを自動的に 転送します。この種の処理には , 従来割込み処理プログラムが使用されていましたが , EI2OS はデータ転送を DMA (ダイレクトメモリアクセス)的に実行できます。 拡張インテリジェント I/O サービス機能を内部リソースより発生させるためには , 割込 みコントローラの割込み制御レジスタ (ICR) 中に拡張インテリジェント I/O サービス許 可フラグ (ISE) を持っていなければなりません。 拡張インテリジェント I/O サービスは ISE フラグが "1" で割込み要求が発生した場合に 起動されます。なお , ハードウェア割込み要求によって通常の割込みを発生させるには , ISE フラグを "0" にセットします。 図 3.1-3 拡張インテリジェント I/O サービス (EI2OS) の概要 メモリ空間 IOA I/Oレジスタ …………… I/Oレジスタ 周辺 割込み要求 ① CPU ③ ISD ③ ICS ② 割込み制御レジスタ 割込みコントローラ BAP ④ バッファ ① I/Oが転送を要求します。 ② 割込みコントローラがディスクリプタ を選択します。 ③ 転送元/先をディスクリプタから 読み出します。 DCT ④ I/Oとメモリ間で転送が行われます。 45 第 3 章 割込み ■ 例外 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は 予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時 の復旧ソフトウェアの起動などのみに使用することをお勧め致します。 46 第 3 章 割込み 割込みベクタ 3.2 割込みベクタは , ハードウェア割込みとソフトウェア割込みについて同じ領域を使 用します。たとえば , 割込み要求番号 INT42 が , 遅延ハードウェア割込みとソフト ウェア割込み INT #42 に使用されます。したがって , 遅延割込みと INT #42 が同じ 割込み処理ルーチンを呼び出します。割込みベクタは , 表 3.2-1 に示すようにアド レス FFFC00H と FFFFFFH の間に配置されます。 ■ 割込みベクタ 表 3.2-1 割込みベクタ 割込み要求 ベクタアドレス L ベクタアドレス H ベクタアドレスバンク モードレジスタ INT 0*1 FFFFFCH FFFFFDH FFFFFEH 未使用 INT 1*1 FFFFF8H FFFFF9H FFFFFAH 未使用 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT 7*1 FFFFE0H FFFFE1H FFFFE2H 未使用 INT 8*2 FFFFDCH FFFFDDH FFFFDEH FFFFDFH INT 9 FFFFD8H FFFFD9H FFFFDAH 未使用 INT 10*3 FFFFD4H FFFFD5H FFFFD6H 未使用 INT 11 FFFFD0H FFFFD1H FFFFD2H 未使用 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT 254 FFFC04H FFFC05H FFFC06H 未使用 INT 255 FFFC00H FFFC01H FFFC02H 未使用 *1: PCB が FFH の場合 , CALLV 命令のベクタ領域は , INT #vct8 (#0 ∼ #7) と同じです。 *2: このベクタは , リセットベクタです。 *3: このベクタは , 例外処理ベクタです。 ■ 割込みベクタ一覧表 付録 D の 表 D-1 に , MB90595 の割込みベクタ一覧表を示していますので , 参照してく ださい。 47 第 3 章 割込み 割込み制御レジスタ (ICR) 3.3 割込み制御レジスタは割込みコントローラ内にあり , 割込み機能を持つすべての I/O に対応して存在します。このレジスタには以下に示す 3 つの機能があります。 • 対応する周辺の割込みレベルの設定 • 対応する周辺の割込みを通常割込みにするか , 拡張インテリジェント I/O サービス にするかの選択 • 拡張インテリジェント I/O サービスのチャネルの選択 このレジスタに対するリードモディファイライト系の命令でのアクセスは誤動作を 引き起こしますので行わないでください。 ■ 割込み制御レジスタ (ICR) 図 3.3-1 に , 割込み制御レジスタのビット構成の図を示します。 図 3.3-1 割込み制御レジスタ (ICR) bit 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 ICS3 ICS2 ICS1 or S1 ICS0 or S0 ISE IL2 IL1 IL0 W W * * R/W R/W R/W R/W 割込み制御レジスタ リセット時 00000111 B R/W:リード/ライト可能 W :ライトオンリ < 注意事項 > • ICS3 ∼ ICS0 は EI2OS を起動する場合のみ有効となります。EI2OS を起動する 場合は ISE を "1" に設定し , 起動しない場合は "0" に設定してください。EI2OS を 起動しない場合 , ICS3 ∼ ICS0 は何を設定してもかまいません。 • *"1" は常に読出しです。 ICS1 と ICS0 は書込みのみ , S1 と S0 は読出しのみ , それぞれ有効です。 [bit10 ∼ bit8][bit2 ∼ bit0] IL0 ∼ IL2(割込みレベル設定ビット) 割込みレベル設定ビットです。対応する内蔵リソースの割込みレベルを指定します。読 み書きができます。リセットによりレベル 7(割込みなし)に初期化されます。 表 3.3-1 に , 割込みレベル設定ビットと割込みレベルとの関係を示します。 表 3.3-1 割込みレベル設定ビットと割込みレベル ILM2 ILM1 ILM0 割込みレベル値 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0(最強割込み) 1 2 3 4 5 6(最弱割込み) 7(割込みなし) [bit11][bit3] ISE(拡張インテリジェント I/O サービスイネーブルビット) 48 第 3 章 割込み EI2OS 許可ビットです。割込み要求の発生時にこのビットが "1" であると EI2OS が起 動され , "0" のときは割込みシーケンスが起動されます。また , EI2OS が終了(カウン ト終了による場合と内蔵リソースからの要求による場合)したとき , ISE ビットは "0" になります。対応する内蔵リソースに EI2OS の機能がないときには , ソフトウェアで ISE を "0" にしておく必要があります。読み書き可能なビットです。 リセットにより "0" に初期化されます。 [bit15 ∼ bit12][bit7 ∼ bit4] ICS3 ∼ ICS0(拡張インテリジェント I/O サービスチャネル セレクトビット) EI2OS チャネル選択ビットです。書込み専用のビットで , このビットにより EI2OS のチャネルを指定します。ここで設定された値によりメモリ上の拡張インテリ ジェント I/O サービスディスクリプタのアドレスが決定します。ICS はリセットにより "0000" に初期化されます。 表 3.3-2 に , ICS, チャネル番号 , ディスクリプタアドレスの対応関係を示します。 表 3.3-2 ICS ビット , チャネル番号 , ディスクリプタアドレス ICS3 ICS2 ICS1 ICS0 セレクトされるチャネル ディスクリプタアドレス 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 000100H 000108H 000110H 000118H 000120H 000128H 000130H 000138H 000140H 000148H 000150H 000158H 000160H 000168H 000170H 000178H 49 第 3 章 割込み [bit13 ∼ bit12][bit5 ∼ bit4] S0, S1(拡張インテリジェント I/O サービスステータス) EI2OS 終了ステータスビットです。読出し専用のビットで , EI2OS 終了時にこのビット の値を調べることにより , 終了条件が何であったかを判別することができます。 リセットにより "00" に初期化されます。 表 3.3-3 に , S ビットと終了条件との関係を示します。 表 3.3-3 S ビットと終了条件 S1 50 S0 0 0 0 1 1 1 0 1 終了条件 2 EI OS 動作中あるいは非起動時 カウント終了による停止状態 リザーブ 内蔵リソースからの要求による停止状態 第 3 章 割込み 割込みフロー 3.4 図 3.4-1 に , 割込みフローを示します。 ■ 割込みフロー 図 3.4-1 割込みフロー I ILM IF IE ISE IL S I&IF&IE=1 AND ILM > IL : : : : : : : CCR内の割込み許可フラグ PS内の割込みレベルマスクレジスタ 内蔵リソースの割込み要求 内蔵リソースの割込みイネーブルフラグ EI2OSイネーブルフラグ 内蔵リソースの割込み要求レベル CCR内のフラグ YES NO NO 次の命令の取込みと デコード PS,PC,PCB,DTB,ADB,DPR, AをSSPのスタックへ対比 そののち,ILM=IL INT命令 拡張インテリジェント I/Oサービスの処理 YES PS,PC,PCB,DTB,ADB,DPR, AをSSPのスタックへ退避 そののち,I=0,ILM=IL NO 通常命令実行 NO YES ISE = 1 S ← 1 割込みベクタ取込み ストリング系 命令の繰返し 完了 YES PCの更新 図 3.4-2 割込み処理中のレジスタ退避 ワード (16bit) H MSB LSB SSP(割込み発生前のSSPの値) AH AL DPR ADB DPB PCB PC PS L SSP(割込み発生後のSSPの値) 51 第 3 章 割込み 3.5 ハードウェア割込み ハードウェア割込みは , 内蔵リソースからの割込み要求信号に対応して , CPU がそ れまで実行していたプログラムの実行を一時中断し , ユーザの定義した割込み処理 用プログラムへ制御を移行する機能です。 ■ ハードウェア割込み ハードウェア割込みの起動は , 割込み要求がもつ割込みレベルと , CPU の PS がもつイ ンタラプトレベルマスクレジスタ (ILM) の比較 , および PS 内の I フラグの内容をハー ドウェアで参照したのち , 発生条件に合致すれば発生します。 ハードウェア割込みが発生するときに CPU が行う処理には , 以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへ の退避 • PSレジスタ内のILM の設定。自動的に現在要求している割込みレベルと同じになる • 対応する割込みベクタの内容の取り込みとそこへの分岐 ■ ハードウェア割込みの構造 ハードウェア割込みに関連する機構は , 以下の 3 つの部分に分かれて存在します。 ● 内蔵リソース 割込み許可ビット , 割込み要求ビット : リソースからの割込み要求の制御 ● 割込みコントローラ ICR : 割込みのレベル付け , 同時要求割込みの優先度判定 ● CPU I, ILM : 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別マイクロコード : 割込み処理用ステップ 各機構は , 内蔵リソースではリソースの制御レジスタに , 割込みコントローラでは ICR に , CPU では CCR の内容などとして現れます。ハードウェア割込みを使用する場合に は , あらかじめソフトウェアでこの 3ヵ所の設定を行う必要があります。 割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の FFFC00H ∼ FFFFFFH に割り当ててあり , ソフトウェア割込みと共通で使用しています。付録 D の 表 D-2 に , MB90595 シリーズの割当を示します。 52 第 3 章 割込み 3.5.1 ハードウェア割込みの動作 ハードウェア割込み要求の機能を持つ内蔵リソースは , 割込みの要求のありなしを 示す「割込み要求フラグ」と , CPU への自分の割込み要求のするしないを選択する 「割込み許可フラグ」を持っています。割込み要求フラグは内蔵リソース固有のイベ ントの発生によりセットされ , 割込み許可フラグが「許可」であったときに , リソー スは割込みコントローラへ割込み要求を発生します。 ■ ハードウェア割込みの動作 割込みコントローラは , 同時に受け取った各割込み要求に対する ICR 内の割込みレベ ル (IL) 同士を比較し , もっとも高いレベルの要求 (IL の値の最も小さいもの)を採択 して CPU へ通知します。同一レベルの要求が複数あった場合には , 割込み番号が少な いものを優先します。 各割込み要求と各 ICR の関係はハードウェアで決まっています。 CPU は受け取った割込みレベル (IL) と PS レジスタ内の ILM とを比較し , 割込みレベ ル (IL) < (ILM) であり , PS レジスタ内の I ビットが "1" であるときに , 現在実行中の命 令が終了したあとで , 割込み処理用マイクロコードを起動します。割込み処理マイクロ コードの先頭で割込みコントローラの ICR 中の ISE ビットを参照し , "0"(すなわち割 込み)であることを確認して割込み処理の本体を起動します。 割込み処理の本体では SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込みベクタを 3byte リードし PC と PCB へロード , PS 中 の ILM を , 受け付けた割込み要求のレベル値に更新 , S フラグを "1" に設定して分岐処 理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プログラム になります。 53 第 3 章 割込み ハードウェア割込みの発生と解除 3.5.2 図 3.5-1 に , ハードウェア割込みの発生から割込み処理プログラムに割込み要求がな くなるまでのフローを示します。 ■ ハードウェア割込みの発生と解除 図 3.5-1 ハードウェア割込みの発生と解除まで PS レジスタファイル F2MC-16 バス マイクロコード IR ⑥ F2MC-16LX CPU チェック ⑤ ⑦ 要因 FF ① AND 比較器 ④ PS I ILM IR : : : : プロセッサステータス 割込み許可フラグ 割込みレベルマスクレジスタ インストラクションレジスタ ③ 周辺 許可 FF ILM I ② レ ベ ル 比 較 器 割 込 レ ベ ル IL 割込み コントローラ ①周辺の内部で割込み要因が発生します。 ②周辺内の割込み許可ビットを参照し割込み許可になっていれば , 周辺から割込みコ ントローラへ割込み要求を発生します。 ③割込み要求を受けとった割込みコントローラは , 同時に要求のあった割込みの優先 順位を判定した上で該当する割込みに対応する割込みレベルを CPU へ転送します。 ④CPU は割込みコントローラから要求のあった割込みレベルをプロセッサステータス レジスタ内の ILM ビットと比較します。 ⑤比較の結果が現在の割込み処理レベルより優先順位が高い場合のみ , 同じプロセッ サステータスレジスタ内の I フラグの内容をチェックします。 ⑥⑤のチェックの結果 I フラグが割込み許可状態である場合のみ , ILM ビットの内容を 要求されたレベルに設定し , 現在実行中の命令の実行が終了し次第割込み処理を行い , 制御を割込み処理ルーチンへ移します。 ⑦ユーザの割込み処理ルーチン内のソフトウェアで①で発生した割込み要因をクリア することで割込み要求が終了します。 ⑥および⑦で , CPU が行う割込み処理の実行時間の計算式を以下に示します。なお , サ イクル数の補正値は , 表 3.5-1 を参照してください。 割込み起動 : 24+6 ×サイクル数の補正値 割込み復帰 : 15+6 ×サイクル数の補正値(RETI 命令) 表 3.5-1 割込み処理時のサイクル数の補正値 スタックポインタが示しているアドレス 54 サイクル数の補正値 内部領域 偶数アドレスの場合 0 内部領域 奇数アドレスの場合 +2 第 3 章 割込み 多重割込み 3.5.3 特殊な場合として , データの入出力領域への書込み中はハードウェア割込み要求を 受け付けません。これは各リソースの割込み制御レジスタ関係の書換えを行ってい る最中の割込み要求に対して , CPU が割込み関係で誤動作を起こすことを避けるた めです。 また , 割込み処理の実行中に割込みが発生した場合は , 割込みレベルの強い方の処理 が優先されます。 ■ 多重割込み F2MC-16LX CPU は多重割込みをサポートしています。そのため , 割込み処理の実行中 にその割込みのもつ割込みレベルより強いレベルの割込みが発生すると , 現在実行中 の命令を終了したあとでそちらに制御が移ります。強いレベルでの割込みが終了する と , もとの割込み処理に戻ります。割込み処理実行中に , その割込みと同等かより弱い レベルの割込み処理が発生した場合は , ILM の内容や I フラグの命令による変更を施さ ないかぎり現在の割込み処理の終了まで , 新しい割込み要求は保留されます。なお , 拡 張インテリジェント I/O サービスは多重に起動されることはなく , 1 つの拡張インテリ ジェント I/O サービスの処理中は , ほかの割込み要求および拡張インテリジェント I/O サービス要求はすべて保留されます。 図 3.5-2 に , スタック内に退避されるレジスタの順番を示します。 割込みに退避されるレジスタ 図 3.5-2 スタック内に退避されたレジスタ ワード (16bit) H MSB LSB SSP(割込み発生前のSSPの値) AH AL DPR ADB DPB PCB PC PS L SSP(割込み発生後のSSPの値) 55 第 3 章 割込み 3.6 ソフトウェア割込み ソフトウェア割込みは , 専用の命令の実行に対応して , CPU がそれまで実行してい たプログラムの実行から , ユーザの定義した割込み処理用プログラムへ制御を移行 する機能です。ソフトウェア割込みの起動は , ソフトウェア割込み命令の実行で常 に発生します。 ■ ソフトウェア割込み ソフトウェア割込みが発生するときに CPU が行う処理は以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの 退避 • PS レジスタに "I" を設定。自動的に割込み禁止になる • 対応する割込みベクタの内容の取り込みとそこへの分岐 ソフトウェア割込みである INT 命令の実行による割込み要求には割込み要求フラグお よび許可フラグはなく , INT 命令の実行により常に割込み要求が発生します。 INT 命令には割込みレベルはありません。したがって , INT 命令では ILM の更新は行 われず , I フラグに "0" を設定して継続する割込み要求を保留状態にします。 ■ ソフトウェア割込みの構造 ソフトウェア割込みに関連する機構は , すべて CPU の内部に存在します。 • CPU ………………… マイクロコード : 割込み処理用ステップ ■ MB90595 割込みベクタ一覧表 付録 D 表 D-1 に , MB90595 シリーズの割込みベクタ一覧表を示します。 付録 D 表 D-1 に示すように , ソフトウェア割込みはハードウェア割込みと同じ割込み ベクタ領域を共有しています。たとえば , 割込み要求番号の INT13 は , ソフトウェア割 込みの INT#13 で使用されると同時にハードウェア割込みの外部割込み #0/#1 でも使用 されます。したがって , 外部割込み #0 と INT#13 は同じ割込み処理ルーチンを呼び出 します。 ■ ソフトウェア割込みの動作 CPU がソフトウェア割込み命令を取り込み実行すると , ソフトウェア割込み処理用マ イクロコードを起動します。ソフトウェア割込み処理マイクロコードでは SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込み ベクタを 3byte リードし PC と PCB へ格納 , I フラグを "0" に , S フラグを "1" にして分 岐処理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プログ ラムになります。 図 3.6-1 に , ソフトウェア割込みの発生から割込み処理プログラムに割込み要求がなく なるまでのフローを示します。 56 第 3 章 割込み 図 3.6-1 ソフトウェア割込みの発生と解除まで F2MC-16 バス レジスタファイル ② マイクロコード F2MC-16LX CPU ① IR PS I S Bユニット キュー フェッチ 退避 命令系バス RAM PS : プロセッサステータス I : 割込み許可フラグ S : スタックフラグ IR : インストラクションレジスタ Bユニット: Bus interfaceユニット ①ソフトウェア割込み命令を実行します。 ②ソフトウェア割込み命令に対応したマイクロコードにしたがってレジスタファイル 中の CPU 内専用レジスタの退避を行います。 ③ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。 ■ その他 プログラムバンクレジスタ (PCB) が FFH であるとき , CALLV 命令のベクタ領域は INT #vct8 命令のテーブルと重なります。ソフトウェアを作成する際に同一アドレスを使用 するような CALLV 命令と INT #vct8 命令を使用しないように注意してください。 付録 D 表 D-1 に , MB90595 シリーズの割込み要因 , 割込みベクタ , 割込み制御レジス タの関係を示します。 57 第 3 章 割込み 3.7 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービス (EI2OS) とはハードウェア割込み動作の一種で , I/O とメモリとの間での自動データ転送機能を持っています。従来割込み処理プログ ラムで行っていた I/O とのデータのやりとりを DMA 的に行えます。 ■ 拡張インテリジェント I/O サービス (EI2OS) 従来の割込み処理で行っていた方式と比べると以下に示すような利点があります。 • 転送のためのプログラムを記述する必要がないため , プログラムサイズを小さくす ることができる • 転送の際に内部レジスタを使用しないので , レジスタの退避が不要になり転送速度 が速い • I/O が都合により転送を停止することができ , 不要データの転送がない • バッファアドレスのインクリメント , 更新なしの選択ができる • I/O レジスタアドレスのインクリメント , 更新なしの選択ができる(バッファアドレ ス更新ありの場合) また , EI2OS が終了したときには , 終了条件を設定した後に自動的に割込み処理ルーチ ンへ分岐しますので , ユーザは終了条件の種類を判別することができます。 EI2OS を実現するために , 2 か所の部分にハードウェアが分散して存在し , そろぞれの ブロックの中に以下に示すようなレジスタやディスクリプタがあります。 ● 割込み制御レジスタ 割込みコントローラ内にあり , IDS のアドレスを示します。 ● 拡張インテリジェント I/O サービスディスクリプタ RAM 上にあり転送モード , I/O のアドレスや転送数 , バッファアドレスを保持します。 < 注意事項 > 58 REALOS を使用する場合は , 拡張インテリジェント I/O サービス (EI2OS) が使用で きません。 第 3 章 割込み 図 3.7-1 に , EI2OS の概要を示します。 図 3.7-1 拡張インテリジェント I/O サービスの概要 メモリ空間 by IOA I/Oレジスタ …………… I/Oレジスタ 周辺 割込み要求 ① CPU ③ ISD ③ by ICS ② 割込み制御レジスタ 割込みコントローラ by BAP ④ バッファ ① I/Oが転送を要求します。 ② 割込みコントローラがディスクリプタ を選択します。 ③ 転送元/先をディスクリプタから 読み出します。 by DCT ④ I/Oとメモリ間で転送が行われます。 • IOA で指定できる領域は , 000000H ∼ 00FFFFH です。 < 注意事項 > • BAP で指定できる領域は , 000000H ∼ FFFFFFH です。 • DCT で指定できる最大転送数は , 65536 個です。 ■ 拡張インテリジェント I/O サービス (EI2OS) の構造 EI2OS に関連する機構は , 以下の 4 つの部分に分かれて存在します。 ● 内蔵リソース • 割込み許可ビット , 割込み要求ビット : リソースからの割込み要求の制御 ● 割込みコントローラ • ICR: 割込みのレベル付け , 同時要求割込みの優先度判定 , EI2OS 動作の選択 ● CPU • I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別 • マイクロコード :EI2OS 処理用ステップ ● RAM • ディスクリプタ :EI2OS の転送情報を記述する 59 第 3 章 割込み 拡張インテリジェント I/O サービスディスクリプタ (ISD) 3.7.1 拡張インテリジェント I/O サービスディスクリプタは , 内部 RAM 中の 000100H ∼ 00017FH に存在し , 以下に示すものから構成されます。 • データ転送の各種コントロールデータ • ステータスデータ • バッファアドレスポインタ ■ 拡張インテリジェント I/O サービスディスクリプタ (ISD) 図 3.7-2 に , 拡張インテリジェント I/O サービスディスクリプタの構成を示します。 図 3.7-2 拡張インテリジェント I/O サービスディスクリプタの構成 データカウンタ上位8bit (DCTH) データカウンタ下位8bit (DCTL) H I/Oアドレスポインタ上位8bit (IOAH) I/Oアドレスポインタ下位8bit (IOAL) EI2OSステータス (ISCS) バッファアドレスポインタ上位8bit (BAPH) 000100H + 8 × ICS バッファアドレスポインタ中位bit8 (BAPM) ISD先頭アドレス バッファアドレスポインタ下位8bit (BAPL) L ■ データカウンタ (DCT) データカウンタ (DCT) は , 16 ビット長のレジスタで , 転送データ数に対応したカウン タとなります。データ転送後 , カウンタは 1 個デクリメントされます。このカウンタが ゼロになると EI2OS は終了します。 図 3.7-3 に , データカウンタの構成を示します。 図 3.7-3 データカウンタの構成 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DCT B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 (リセット時不定) 60 第 3 章 割込み ■ I/O レジスタアドレスポインタ (IOA) I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで , I/O レジスタアド レスポインタの 16bit によりバッファとデータ転送する I/O レジスタの下位アドレス (A15 ∼ A0) を示します。上位アドレス (A23 ∼ A16) はすべて "0" であり , 000000H か ら 00FFFFH 番地までの任意の I/O を指定できます。図 3.7-4 に , IOA の構成の図を示し ます。 図 3.7-4 I/O レジスタアドレスポインタの構成 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IOA A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 (リセット時不定) ■ バッファアドレスポインタ (BAP) 24bit のレジスタで次に EI2OS による転送で使用するアドレスを保持します。BAP は EI2OS の各チャネルに対してそれぞれ独立に存在しますので , EI2OS の各チャネルは 16Mbyte の任意の空間と転送することができます。ISCS の BF ビットが "0" にセットさ れている場合 (更新可能), BAP の下位 16bit のみ変化し , BAPH は変化しません。 61 第 3 章 割込み 3.7.2 EI2OS ステータスレジスタ (ISCS) EI2OS ステータスレジスタ (ISCS) は , 8 ビット長のレジスタで , バッファアドレス ポインタ , I/O レジスタアドレスポインタの更新 / 固定 , 転送データ長(バイト / ワー ド), 転送方向を示します。 ■ EI2OS ステータスレジスタ (ISCS) 図 3.7-5 に , ISCS の構成を示します。 図 3.7-5 ISCS の構成 bit 7 予約 6 予約 5 4 3 2 1 0 予約 IF BW BF DIR SE ISCS (リセット時不定) * ISCSのbit7~bit5には必ず"0"を書き込んでください。 以下に各ビットの説明を示します。 [bit4] IF I/O レジスタアドレスポインタの更新 / 固定を指定します。 0: データ転送後 I/O レジスタアドレスポインタは更新 ( インクリメント ) される。 1: データ転送後 I/O レジスタアドレスポインタは固定される。 < 注意事項 > インクリメントのみ許可されます。 [bit3] BW 転送データ長を指定します。 0: バイト 1: ワード [bit2] BF バッファアドレスポインタの更新 / 固定を指定します。 0: データ転送後バッファアドレスポインタは更新 ( インクリメント ) される。 1: データ転送後バッファアドレスポインタは固定される。 < 注意事項 > 更新する場合 , バッファアドレスポインタは下位 16bit のみ変化します。 [bit1] DIR データの転送方向を指定します。 0:I/O アドレスポインタ → バッファアドレスポインタ 1: バッファアドレスポインタ → I/O アドレスポインタ 62 第 3 章 割込み [bit0] SE 内蔵リソースからの要求での拡張インテリジェントI/O サービスの終了を制御します。 0: 内蔵リソースからの要求により終了しない。 1: 内蔵リソースからの要求により終了する。 63 第 3 章 割込み 3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フ ローと使用手順 図 3.8-1 に , 拡張インテリジェント I/O サービス (EI2OS) の動作フローを , 図 3.8-2 に , 使用手順を示します。 ■ 拡張インテリジェント I/O サービス (EI2OS) の動作フロー 図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー 内蔵リソースにより 割込み要求発生 NO ISE=1 YES ISD/ISCSリード 割込みシーケンス YES リソースから の終了要求 SE=1 NO YES DIR=1 NO IOAで示されるデータ (データ転送) BAPで示されるメモリ IF=0 NO BAPで示されるデータ (データ転送) IOAで示されるメモリ YES 更新値は BWによる BF=0 IOA更新 YES NO BAP更新 DCTデクリメント DCT=00 NO S1,S0に"00"を書込み リソース割込み 要求のクリア CPU動作復帰 ISD :EI2OSディスクリプタ ISCS :EI2OSステータス DCT :データカウンタ I/OA :I/Oアドレスポインタ BAP :バッファアドレスポインタ ISE :EI2OSイネーブルビット S1,S0 :EI2OS終了ステータス 64 YES S1,S0に"01"を書込み S1,S0に"11"を書込み ISEを"0"にクリア 割込みシーケンス 第 3 章 割込み 図 3.8-2 拡張インテリジェント I/O サービス (EI2OS) の使用手順フロー EI2 OSによる処理 CPUによる処理 EI2 OSの初期化 正常終了 (割込み要求) AND (ISE = 1) ジョブ実行 データ転送 カウントアウトまたは リソースからの終了要求 による割込みの発生 拡張インテリジェント I/Oサービスの設定 (チャネルの切換え) バッファ中のデータの処理 各フローでの拡張 EI2OS の実行時間を以下に示します。 ● データ転送継続時(停止条件が成立しない場合) ( 表 3.8-1 + 表 3.8-2 )マシンサイクル ● リソースからの停止要求時 (36+6 × 表 3.5-1 )マシンサイクル ● カウント終了時 ( 表 3.8-1 + 表 3.8-2 +(21+6 × 表 3.5-1 ) )マシンサイクル 表 3.8-1 EI2OS の継続時の実行時間 ISCS・SE ビット "0" に設定 I/O アドレスポインタ "1" に設定 固定 更新 固定 更新 固定 32 34 33 35 更新 34 36 35 37 バッファアドレスポインタ 表 3.8-2 EI2OS の実行時間のデータ転送の補正値 内部アクセス I/O アドレスポインタ バッファアドレスポインタ B: バイトデータ転送 偶 : 偶数アドレス・ワード転送 内部アクセス B/ 偶 奇 B/ 偶 0 +2 奇 +2 +4 奇 : 奇数アドレス・ワード転送 65 第 3 章 割込み 3.9 例外 F2MC-16LX では , 以下の要因により例外が発生し , 例外処理が行われます。 ■ 未定義命令の実行 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は 予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時 の復旧ソフトウェアの起動などのみに使用することをお勧め致します。 ■ 未定義命令の実行による例外発生 F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い ます。未定義命令を実行すると , ソフトウェア割込み命令の「INT 10」と等価な処理を 行います。すなわち , AL, AH, DPR, DTB, ADB, PCB, PC, PS の内容をシステムスタッ クに退避した後に , フラグを "0" に設定し , S フラグを "1" に設定し , 割込み番号 10 の ベクタで示されるルーチンへ分岐します。スタックへ退避した PC の値は未定義命令を 格納しているアドレスそのものです。2 バイト以上の命令コードでは , 未定義であるこ とが識別できたコードを格納しているアドレスになります。このため , RETI 命令で復 帰させることは可能ですが , 再び例外を発生するため , 意味がありません。 66 第4章 遅延割込み 遅延割込みの機能と動作について説明します。 4.1 遅延割込みモジュールの概要 4.2 遅延割込みのレジスタ 4.3 遅延割込みの動作 67 第 4 章 遅延割込み 4.1 遅延割込みモジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー ルです。本モジュールを使用することで , ソフトウェアで F2MC-16LX CPU に対し て割込み要求の発生 / 取消しを行うことができます。 ■ 遅延割込みのブロックダイヤグラム 図 4.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。 図 4.1-1 遅延割込みのブロックダイヤグラム F2MC-16LX バス 遅延割込み要因発生/解除デコーダ 要因ラッチ ■ 遅延割込み要求ロックの使用上の注意 このロックは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット に "0" を書き込むことでクリアされます。したがって , 割込み処理ルーチン内で要因を クリアするようにソフトウェアを作成しておかないと割込み処理から復帰した途端に 再割込み処理を起動することになりますので注意してください。 68 第 4 章 遅延割込み 4.2 遅延割込みのレジスタ DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して "1" を書込み時には遅延割込みの要求を発生させ , "0" を書込み時には遅延割込みの 要求を解除します。リセット時には要因解除状態になります。 ■ 遅延割込み要因発生 / 解除レジスタ (DIRR: Delayed interrupt request register) 遅延割込み要因発生 / 解除レジスタ (DIRR) では , 予約ビット領域は 0, 1 どちらの書込 みも結構ですが , 将来の拡張を考慮してこのレジスタをアクセスする際にはセット ビット , クリアビット命令を使用することをお勧めします。 bit 15 DIRR アドレス: 00009F H R/W : リード / ライト可能 − : 未定義 14 13 12 11 10 9 8 初期値 RO -------0 B R/W リセット時には要因解除状態になります。 69 第 4 章 遅延割込み 4.3 遅延割込みの動作 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生 モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求 を発生します。 ■ 遅延割込み発生 ほかの割込み要求が本割込みより優先順位が低い , あるいは , ほかの割込み要求がない 場合に , 割込みコントローラは F2MC-16LX CPU に対して割込み要求を発生します。図 4.1-1 に示すように , F2MC-16LX CPU は自分の内部にある CCR レジスタ中の ILM ビッ トと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の 命令が終了し次第 , ハードウェア割込み処理マイクロプログラムを起動します。この結 果 , 本割込みに対する割込み処理ルーチンが実行されます。 図 4.3-1 遅延割込み発生 遅延割込み発生モジュール 割込みコントローラ F2MC-16LX CPU WRITE ほかの要求 ICRyy IL CMP DIRR ICRxx CMP ILM INTA 割込み処理ルーチン内で DIRR の該当ビットの "0" を書き込むことで本割込み要因をク リアし , 合わせてタスクの切換えを行います。 70 第5章 クロックとリセット クロックとリセットの機能と動作について説明し ます。 5.1 クロック発生部 5.2 リセット要因の発生 5.3 リセット要因 71 第 5 章 クロックとリセット 5.1 クロック発生部 クロック発生部により , スリープ , 時計 , ストップおよび , PLL クロック逓倍機能な ど内部クロックの動作制御を行います。この内部クロックのことをマシンクロック とよび , その 1 周期をマシンサイクルとしています。また , 原発振によるクロックを メインクロックとよび , 内部の VCO 発振によるクロックを PLL クロックとしてい ます。 ■ クロック発生部の注意 動作電圧が 5V のとき , OSC 原発振は 3MHz ∼ 5MHz の発振が可能です。外部クロッ ク供給の場合 , 3MHz ∼ 16MHz の発振が可能です。しかし , CPU および周辺リソース 回路の最大動作周波数が 16MHz なので , 16MHz を超える逓倍係数を指定した場合には , 正常な動作は保証されません。たとえば , 外部クロックが 16MHz で発振している場合 , 逓倍係数として "1" しか指定できません。 また , VCO 発振の最低動作周波数は 4MHz であり , この周波数以下の発振も指定する こともできません。 図 5.1-1 に , クロック発生回路ブロックダイヤグラムを示します。 図 5.1-1 クロック発生回路ブロックダイヤグラム リセット 割込みHST ストップモード 遷移 S Q S Q 時計モード スリープモード R 遷移 R マシンクロック マシンクロック選択 S Q 1 R 2 3 4 PLL逓倍 発振安定時間選択 タイムベースタイマ 1/2 X0 1/2048 1/4 1/4 1/8 X1 ウォッチドッグ インターバル選択 監視タイマ ウォッチドッグリセット 72 第 5 章 クロックとリセット リセット要因の発生 5.2 リセット要因が発生すると , F2MC-16LX はただちに現在実行中の処理を中断し , リ セット解除待ち状態になります。 ■ リセット要因の発生 リセットは以下の要因で発生します。 • パワーオンリセットの発生 • ハードウェアスタンバイ状態の解除 • ウォッチドッグタイマのオーバフロー • RST 端子による外部リセット要求の発生 • ソフトウェアによるリセット要求の発生 ■ リセット解除後の動作 リセット要因が取り除かれると , F2MC-16LX はただちにリセットベクタを格納してあ るアドレスを出力し , リセットベクタとモードデータの取り込みを行います。リセット ベクタとモードデータは FFFFDCH ∼ FFFFDFH の 4 バイトに割り当てられています。 リセットベクタとモードデータは , 図 5.2-1 で示すように , リセット解除後にレジスタ にハードウェアで転送されます。 リセットベクタとモードデータを読み出した後のバスモードは , モードデータにより 指定します。 図 5.2-1 リセットベクタとモードデータの格納場所と格納先 F 2 MC-16LX CPU モード メモリ空間 レジスタ FFFFDF H モードデータ FFFFDE H リセットベクタ・ビット23~16 FFFFDD H リセットベクタ・ビット15~8 FFFFDC H リセットベクタ・ビット7~0 マイクロ ROM リセットシーケンス PCB PC < 注意事項 > MB90F598/F598G については , ハードワイヤードロジックによりリセットベクタと モードデータにあらかじめ決められた値が設定されています。詳細については , 「23.9 フラッシュメモリにおけるリセットベクタアドレス」を参照してください。 73 第 5 章 クロックとリセット ■ リセット入力によって初期化されないレジスタ 本製品には , パワーオンリセットでしか初期化されないレジスタがあります。 表 5.2-1 に各リセット要因によって初期化されないレジスタを示します。 表 5.2-1 リセット入力によって初期化されないレジスタ CKSCR リセットの種類 WS1 WS0 MCS LPMCR CS1 CS0 CG1 CG0 × × ○ ○ ○ ○ ○ ○ RST のみ使用 × × × × × ソフトウェアリセット ウォッチドッグリセット × × ○ × × パワーオンリセット ○ ○ ○ ○ ○ ハードウェアスタンバイ × × ○ × × • WS1, WS0 : メインクロック発振安定待ち時間設定 • MCS : マシンクロック設定("0"=PLL クロック , "1"= メインクロック) • CS1, CS0 :PLL クロック逓倍設定 • CG1, CG0:CPU 間欠動作の設定 ○ : 初期化する × : 初期化しない(前の状態を保持) MCS ビットについては , マシンクロック設定ビットですので , 特に注意が必要です。例 えば , 電源投入がパワーオンリセット規格を満足しないときは , パワーオンリセットが 発生しません。そのため , MCS が初期化されないことにより , 内部動作周波数が動作 保証範囲外になり , 正常動作しなくなることが考えられます。 また , 何らかの原因により CPU が暴走し , MCS, CS1, CS0 が書換わった際にも内部動作 周波数が動作保証範囲外になり , その状態から RST 入力のみでは正常復帰しなくなる ことが考えられます(ただし , 内部ウォッチドックが発生した場合には , MCS が初期 化され正常動作します)。 上記のようなケースが考えられる場合には , HST+RST(HST と RST)をショートとし て使用することを推奨します。 表 5.2-2 に , HST+RST を行った場合のリセット入力による初期化されないレジスタに ついて示します。 また, 図 5.2-2 に示すように, リセット解除時の動作状態が, HST+RST のリセット入力と , RST のみの入力とで異なるので , 注意が必要です。 表 5.2-2 リセット入力によって初期化されないレジスタ CKSCR LPMCR リセットの種類 RST+HST WS1 WS0 MCS CS1 CS0 CG1 CG0 × × ○ × × ○ ○ ○ : 初期化する × : 初期化しない(前の状態を保持) 74 第 5 章 クロックとリセット 図 5.2-2 リセット入力による動作遷移 [リセット入力による動作遷移] リセット入力(RST,HST+RST) A.発振状態 状態 RSTのみ使用 (HST=H) HST+RST を使用 発振 発振 停止 メイン発振 安定待ち メインラン実行可能 B.命令実行タイミング("L"停止,"H"開始) ・RSTのみを使用(HST=H) リセット入力前に設定 した発振安定時間 ・HST+RSTを使用 ・パワーオンリセット時 Vcc(電源) 状態 パワーオン リセット 発振 停止 メイン発振 安定待ち メインラン実行可能 メイン発振の218カウント 発振安定時間 75 第 5 章 クロックとリセット リセット要因 5.3 表 5.3-1 に , 5 種類のリセット要因を示します。リセット要因によりマシンクロック とウォッチドッグ機能の初期化状態が異なります。 リセット要因レジスタはリセット要因を表示します。 ■ リセット要因 表 5.3-1 リセット要因 リセット 発生要因 マシンクロック ウォッチドッグタイマ 発振安定待ち パワーオン 電源立ち上げ時 メインクロック 停止 あり ハードウェアスタンバイ HST 端子への "L" レベル入力 メインクロック 停止 あり ウォッチドッグタイマ ウォッチドッグタイマオーバフロー メインクロック 停止 あり 外部端子 RST 端子への "L" レベル入力 前の状態を保持 前の状態を保持 なし ソフトウェア LPMCR 中の RST ビット に "0" ライト 前の状態を保持 前の状態を保持 なし * ストップ , ハードウェアスタンバイモード時のリセット入力は , リセット要因に関係なく発 振安定 待ち時間を取ります。 * パワーオンリセットの発振安定待ち時間は , 原発振 218 サイクル固定です。それ以外の発振 安定待 ち時間は , クロック選択レジスタの CS1/CS0 により決定されます。 図 5.3-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり ます。それぞれのリセット要因には対応したフリップフロップがあります。これらの 内容はウォッチドッグタイマ制御レジスタを読み出すことで得ることができますので, リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッチドッグ タイマ制御レジスタを読み出した値をソフトウェアで処理した上で , 適切なプログラ ムへ分岐するようにしてください。図 5.3-2 に , ウォッチドッグタイマ制御レジスタの 構成を示します。 76 第 5 章 クロックとリセット 図 5.3-1 リセット要因ビットブロックダイヤグラム HST端子 RST端子 RST=L HST=L→H 定期的なクリアなし 電源投入 RSTビットセット ハードウェア スタンバイ 解除検出回路 パワーオン発生 検出回路 S F/F R S F/F Q 外部リセット要求 検出回路 R S S F/F Q F/F Q ウォッチドッグタイマ リセット発生検出回路 R S R F/F Q Q LPMCR:RSTビット 書込み検出回路 遅延 回路 WTCレジスタ WTCレジスタ読出し F2MC-16LX 内部バス 図 5.3-2 ウォッチドッグタイマ制御レジスタ bit アドレス: 0000A8H リード/ライト 初期値 7 6 PONR STBR (R) (X) (R) (X) 5 WRST 4 3 2 1 0 ERST SRST WTE WT1 WT0 (R) (X) (R) (X) (W) (1) (W) (1) (W) (1) (R) (X) WDTC リセット要因が複数発生する場合でも , ウォッチドッグタイマ制御レジスタの対応す るそれぞれのリセット要因ビットを立てるようになっています。したがって , 外部リ セット要求とウォッチドッグリセットが同時に発生した場合でもERSTビットとWRST ビットの両方が "1" になります。 ただし , パワーオンリセットの場合だけは別で , PONR ビットが "1" であるときはそれ 以外のビットの内容は正常なリセット要因を示しておりません。このため , PONR ビッ トが "1" の場合はそれ以外のリセット要因ビットの内容は無視するようにソフトウェ アを作成してください。 表 5.3-2 リセット要因ビット リセット要因 PONR STBR WRST ERST SRST パワーオン 1 - - - - ハードウェアスタンバイ * 1 * * * ウォッチドッグタイマ * * 1 * * 外部端子 * * * 1 * RST ビット * * * * 1 *: 前の値を保持 リセット要因ビットのクリアはウォッチドッグタイマ制御レジスタの読出しだけです ので , 一度発生したリセット要因に対応するリセット要因ビットは , それ以外のリセッ ト要因が発生しても "1" になったままとなっています。 77 第 5 章 クロックとリセット 78 第6章 低消費電力制御回路 低消費電力制御回路の機能と動作について説明し ます。 6.1 低消費電力制御回路の概要 6.2 低消費電力制御回路のレジスタ 6.3 低消費電力モードの動作 6.4 CPU 間欠動作 6.5 マシンクロック切換え 6.6 クロック選択の状態遷移 79 第 6 章 低消費電力制御回路 6.1 低消費電力制御回路の概要 MB90595 シリーズは , 電力消費の削減を支援する各種動作モードをサポートしてい ます。 動作モードとして , PLL クロックモード・PLL スリープモード・時計モード・メイ ンクロックモード・メインスリープモード・メインストップモード・ハードウェア スタンバイモードがあり , PLL クロックモード以外の動作モードが低消費電力モー ドに分類しています。 ■ 低消費電力制御回路の概要 メインクロックモードまたはメインスリープモードでは , メインクロック (OSC 発振 クロック)が使用されます。これらのモードでは , メインクロックを 2 分周したクロッ クを動作クロックとして発生させ, PLLクロック(VCO発振クロック)を停止させます。 PLL スリープモードまたはメインスリープモードでは , CPU の動作クロックだけが停 止します。その他のクロックはすべて動作します。 時計モードでは , タイムベースタイマだけが動作します。ストップモードまたはハード ウェアスタンバイモードでは , 発振が停止し , 最も低い消費電力でデータを保持できま す。 CPU 間欠動作機能は , レジスタ , 内蔵メモリ , または内蔵リソースのアクセスを行うと きに , CPU に供給するクロックを間欠動作させる機能であり , 内蔵リソースに高速ク ロックを供給したまま CPU の実行速度を下げることにより , 低消費電力で処理が行え ます。 PLL クロックの逓倍率は , CS1, CS0 ビットの設定により , 1, 2, 3, 4 逓倍の中から選択す ることができます。 WS1, WS0 ビットを使用して , ストップモードまたはハードウェアスタンバイモードの 解除時のメインクロックの発振安定待ち時間を設定することができます。 < 注意事項 > 80 クロックモードを切り替えた場合 , 切替えが完了するまでは , 他のクロックモードお よび低消費電力モードへの切替えを行わないようにしてください。切替えの完了は 「6.2.2 クロック選択レジスタ (CKSCR)」の MCM ビットを参照して確認してくださ い。 第 6 章 低消費電力制御回路 ■ 低消費電力制御回路のブロックダイヤグラム 図 6.1-1 低消費電力制御回路とクロック生成部 CKSCR MCS メインクロック (OSC発振) PLL逓倍回路 MCM 1 2 3 4 1/2 CPUクロック発生 CKSCR CS1 CPU クロック CPU クロックセレクタ 0/9/17/33 間欠サイクル選択 CS0 LPMCR CG1 CG0 CPU間欠動作機能 サイクル数選択回路 F2MC-16LX バス LPMCR SLP 周辺系クロック発生 周辺クロック スタンバイ制御回路 STP RST 解除 HST起動 HST端子 割込み要求 またはRST CKSCR WS1 WS0 発振安定 待ち時間 セレクタ 210 213 215 217* クロック入力 タイムベースタイマ タイムベースクロック 212 214 216 219 LPMCR SPL LPMCR 端子ハイインピーダンス制御回路 端子 HI-Z RST端子 内部リセット発生回路 RST 内部RST ウォッチドッグタイマへ WDGRST *:電源投入時は,218となります。 81 第 6 章 低消費電力制御回路 6.2 低消費電力制御回路のレジスタ 低消費電力制御回路には , 次の 2 つのレジスタがあります。 • 低消費電力モード制御レジスタ (LPMCR) • クロック選択レジスタ (CKSCR) ■ 低消費電力制御回路のレジスタ 低消費電力モード制御レジスタ アドレス: bit 0000A0H 7 STP リード/ライト 初期値 (W) (0) 5 4 3 2 1 0 SLP 6 SPL RST 予約 CG1 CG0 予約 (W) (0) (R/W) (0) (W) (1) (-) (1) (R/W) (0) (R/W) (0) LPMCR (-) (0) クロック選択レジスタ 15 14 13 12 11 10 9 8 0000A1H 予約 MCM WS1 WS0 予約 MCS CS1 CS0 リード/ライト 初期値 (-) (1) (R) (1) (R/W) (1) (-) (1) (R/W) (1) (R/W) (0) アドレス: R/W:リード/ライト可能 W :ライトオンリ R :リードオンリ - :未定義 82 bit (R/W) (1) (R/W) (0) CKSCR 第 6 章 低消費電力制御回路 低消費電力モード制御レジスタ (LPMCR) 6.2.1 低消費電力モード制御レジスタはクロック選択レジスタと共に消費電力の削減に関 する各種動作モードの設定を行います。 ■ 低消費電力モード制御レジスタ (LPMCR) 7 bit アドレス: 0000A0H STP リード/ライト 初期値 (W) (0) 6 5 4 3 2 1 0 SLP SPL RST 予約 CG1 CG0 予約 (W) (0) (R/W) (0) (W) (1) (-) (1) (R/W) (0) (R/W) (0) LPMCR (-) (0) R/W:リード/ライト可能 W :ライトオンリ - :未定義 [bit7]STP "1" を書き込むことにより時計モード (CKSCR. MCS=0) またはストップモード (CKSCR. MCS=1) に遷移します。"0" の書込みでは何の操作もしません。リセット , 時計解除ま たはストップ解除で "0" にクリアされます。書込みのみ可能なビットです。読出し値 は , 常に "0" です。 [bit6]SLP "1" を書き込むことによりスリープモードに遷移します。"0" の書込みでは何の操作も しません。リセット , またはスリープ解除 , またはストップ解除で "0" にクリアされま す。 STP ビットと SLP ビットに同時に "1" を書き込んだ場合 , 時計モードまたはストップ モードに遷移します。書込みのみ可能なビットです。読出し値は , 常に "0" です。 [bit5]SPL "0" のとき , 時計モードおよびストップモード時の外部端子のレベルを保持します。"1" のとき , 時計モードおよびストップモード時の外部端子をハイインピーダンスにしま す。リセットで "0" にクリアされます。読み書き可能なビットです。 < 注意事項 > SPL を "1" にセットすることが推奨されます。"0" にセットされている場合 , すべて の入力はストップモードで確定するようにしてください(ポートを出力にセットす るか , 確定済みの入力信号を与えてください。 [bit4]RST "0" を書き込むことにより 3 マシンサイクルの内部リセット信号を発生します。"1" の 書込みでは何の操作もしません。リード時は "1" が , 読み出されます。 [bit3] 予約 必ず "1" を設定してください。 83 第 6 章 低消費電力制御回路 [bit2, bit1]CG1, CG0 CPU 間欠動作機能のクロック一時停止サイクル数を設定します。 パワーオン , ハードウェアスタンバイ , ウォッチドッグによるリセットにより "00" に 初期化されます。その他のリセット要因によるリセットでは初期化されません。読み 書き可能なビットです。 CPU 間欠動作機能は , レジスタ , 内蔵メモリ , または内蔵リソースのアクセスを行うと きに , CPU へのクロック供給を一時停止し , 内部バスサイクルの起動を遅延させる機能 で , 内蔵リソースに高速クロックを供給したまま CPU の実行速度を下げることにより , 低消費電力で処理が行えます。 表 6.2-1 CG ビット設定 CG1 CG0 0 0 0 サイクル(CPU クロック = リソースクロック) 0 1 9 サイクル(CPU クロック = リソースクロック =1: 約 3 ∼ 4) 1 0 17 サイクル(CPU クロック = リソースクロック =1: 約 5 ∼ 6) 1 1 33 サイクル(CPU クロック = リソースクロック =1: 約 9 ∼ 10) CPU クロック一時停止サイクル数 [bit0] 予約 必ず "0" を設定してください。 < 注意事項 > 84 ストップモード , 時計モード時に周辺機能とポートを兼用している端子をハイイン ピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定してください。 対象となる端子を以下に示します。 対象端子 :P04/OUT0, P05/OUT1, P06/OUT2, P07/OUT3, P10/PPG0, P11/PPG1, P12/PPG2, P13/PPG3, P14/PPG4, P15/PPG5, P17/TOT1 第 6 章 低消費電力制御回路 6.2.2 クロック選択レジスタ (CKSCR) クロック選択レジスタは , CPU のマシーンクロックの設定・制御を行い , 電源立ち 上げ時や発振復帰時の発振安定待ち時間の設定を行います。 ■ クロック選択レジスタ (CKSCR) 14 13 12 11 10 9 8 予約 MCM WS1 WS0 予約 MCS CS1 CS0 (-) (1) R/W:リード/ライト可能 R :リードオンリ - :未定義 (R) (1) (R/W) (1) (R/W) (1) (-) (1) (R/W) (1) (R/W) (0) アドレス: 0000A1H bit 15 リード/ライト 初期値 CKSCR (R/W) (0) [bit15] 予約 必ず "1" を設定してください。 [bit14]MCM マシンクロックとして , メインクロックまたは PLL クロックのどちらが選択されてい るかを表示するビットです。"0" のとき , PLL クロックが選択されていることが示され , "1" のとき , メインクロックが選択されていることが示されます。 MCS =0 で , かつ MCM =1 ならば , PLL クロック発振安定待ち期間中であることになります。なお , PLL クロック の発振安定待ち期間は , 213 メインクロックサイクル固定です。 [bit13, bit12]WS1, WS0 ストップモード , ハードウェアスタンバイモード解除時のメインクロックの発振安定 待ち時間を設定します。 パワーオンリセットにより "11" に初期化され , その他のリセット要因によるリセット では初期化されません。読み書き可能なビットです。 表 6.2-2 WS ビット設定 WS1 WS0 0 0 約 256µ s(原振 210 カウント) 0 1 約 2.05 ms(原振 213 カウント) 1 0 約 8.19 ms(原振 215 カウント) 1 1 約 32.77ms (原振 217 カウント)パワーオンリセット時のみ , 約 65.54ms (原振 218 カウント) 発振安定待ち時間(原発振 4MHz 時) [bit11] 予約 必ず "1" を設定してください。 85 第 6 章 低消費電力制御回路 [bit10] MCS マシンクロックとして , メインクロックまたは PLL クロックのどちらを選択するかを 指示するビットです。"0" を書き込むことにより , PLL クロックを選択します。"1" を 書き込むことにより , メインクロックを選択します。"1" のときに , "0" を書き込むと , PLL クロックの発振安定待ち期間を発生するために , 自動的にタイムベースタイマが クリアされます。なお , PLL クロックの発振安定待ち期間は , 213 メインクロックサイ クル固定です。 (原発振 4MHz 時 , 発振安定待ち時間は約 2ms になります) 。 また , メインクロック選択時の動作クロックは , メインクロックを 2 分周したクロック となります(原発振 4MHz 時 , 動作クロックは 2MHz になります) 。 パワーオン , ハードウェアスタンバイ , ウォッチドッグによるリセットにより "1" に初 期化されます。しかし , RST 端子からの外部リセットまたはソフトウェアリセット (LPMCR レジスタ中の RST ビット)により初期化されることはありません。 < 注意事項 > MCS ビットを "1" から "0" に更新するとき , タイムベースタイマ割込みを TBIE ビットまたは CPU の ILM ビットで必ずマスクしてください。 [bit9, bit8]CS1, CS0 PLL クロックの逓倍率を選択するビットです。 本ビットはパワーオンリセットにより "00" に初期化されます。その他のリセットでは 初期化されません。 MCS ビットが "0" のときには書込みが抑止されます。いったん , MCS ビットを "1" に した(メインクロックモード)後に , CS ビットを書き換えてください。読み書き可能 なビットです。 表 6.2-3 CS ビット設定 < 注意事項 > 86 CS1 CS0 0 0 0 1 8MHz(動作周波数 =OSC 発振周波数 *2) 1 0 12MHz(動作周波数 =OSC 発振周波数 *3) 1 1 16MHz(動作周波数 =OSC 発振周波数 *4) マシンクロック(原発振 4MHz 時) 4MHz(動作周波数 =OSC 発振周波数) 動作電圧が 5V のとき , OSC 原発振は 3MHz ∼ 5MHz の発振が可能です。外部クロッ ク供給の場合 , 3MHz ∼ 16MHz の発振が可能です。しかし , CPU および周辺リソー ス回路の最大動作周波数が 16MHz なので , 16MHz を超える逓倍係数を指定した場 合には , 正常な動作は保証されません。たとえば , 外部クロックが 16MHz で発振し ている場合 , 逓倍係数として "1" しか指定できません。 また , VCO 発振の最低動作周波数は 4MHz であり , この周波数以下の発振も指定で きません。 第 6 章 低消費電力制御回路 6.3 低消費電力モードの動作 表 6.3-1 に , 各動作モードにおけるチップの状態を示します。 ■ 低消費電力モードの動作 表 6.3-1 低消費電力モード動作状態 遷移条件 発振 &T.B.T PLL CPU 時計タイマ 周辺 端子 解除方法 メイン スリープ MCS=1 SLP=1 動作 停止 停止 動作 動作 動作 外部リセット 割込み PLL スリープ MCS=0 SLP=1 動作 動作 停止 動作 動作 動作 外部リセット 割込み 時計 (SPL=0) MCS=0 STP=1 動作 停止 停止 動作 停止 保持 外部リセット 外部割込み 時計 (SPL=1) MCS=0 STP=1 動作 停止 停止 動作 停止 HI-Z 外部リセット 外部割込み ストップ (SPL=0) MCS=1 STP=1 停止 停止 停止 停止 停止 保持 * 外部リセット 外部割込み ストップ (SPL=1) MCS=1 STP=1 停止 停止 停止 停止 停止 HI-Z 外部リセット 外部割込み ハードウェア スタンバイ HST=L 停止 停止 停止 停止 停止 HI-Z HST=H *: ストップモードで SPL を "0" にセットしている場合 , すべての入力は安定したディジタル 値を入力 しなければなりません。そうでなければ , 入力バッファで電流が消費されます (A/D アナログ入力 は例外) 。 < 注意事項 > ストップモード , 時計モード時に周辺機能とポートを兼用している端子をハイイン ピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定してください。 対象となる端子を以下に示します。 対象端子 :P04/OUT0, P05/OUT1, P06/OUT2, P07/OUT3, P10/PPG0, P11/PPG1, P12/PPG2, P13/PPG3, P14/PPG4, P15/PPG5, P17/TOT1 87 第 6 章 低消費電力制御回路 ■ 低消費電力モード制御レジスタアクセスの注意 低消費電力モード制御レジスタにデータを書込むと , 低消費電力モード (ストップま たはスリープモード)が起動します。この場合 , 表 6.3-2 に示す命令を使用してくださ い。低消費電力モードを起動するのにその他の命令を使用した場合 , 誤動作が起こる可 能性があります。低消費電力モード制御レジスタの低消費電力モードへの遷移を除く 機能の制御については , 任意の命令を使用できます。 ワード長で低消費電力モード制御レジスタにデータを書き込むには , 必ずデータを偶 数番地のアドレスに書き込むようにします。奇数番地にデータを書き込んで低消費電 力モードを起動した場合 , 誤動作が起こる可能性があります。 表 6.3-2 低消費電力モードへの遷移に使用される命令の一覧 MOV io,#imm8 MOV dir,#imm8 MOV eam,#imm8 MOV eam,Ri MOV io,A MOV dir,A MOV addr16,A MOV eam,A MOVW io,#imm16 MOVW dir,#imm16 MOVW eam,#imm16 MOVW eam,RWi MOVW io,A MOVW dir,A MOVW addr16,A MOVW eam,A SETB io:bp SETB dir:bp SETB addr16:bp CLRB io:bp CLRB dir:bp CLRB addr16:bp MOV @RLi+dip8,A MOVW @RLi+dip8,A ■ 低消費電力モードへ移行する場合の注意 ストップモード , 時計モード時に周辺機能とポートを兼用している端子をハイイン ピーダンスにする場合は , 以下の手順に従って設定して下さい。 1. 周辺機能の出力を禁止します。 2. 低消費電力モード制御レジスタ (LPMCR) の SPL ビットに "1", STP ビットに "1" を 設定します。 88 第 6 章 低消費電力制御回路 6.3.1 スリープモード スリープモードとは , CPU に供給するクロックのみを停止するモードで , CPU は停 止し , 周辺回路は動作を続けます。 ■ スリープモードへの遷移 低消費電力モード制御レジスタ中の SLP ビットに "1", STP ビットに "0" を書き込むこ とによりスタンバイ制御回路をスリープモードに設定します。 SLP ビットに "1" を書き込んだときに割込み要求が発生していると , スタンバイ制御回 路はスリープモードへ遷移しません。そのため , CPU は割込みを受け付けない状態で は次の命令の実行 , 受け付ける状態であれば即座に割込み処理ルーチンの分岐を行い ます。 スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ■ スリープモードの解除 スタンバイ制御回路は , リセット入力または割込みの発生によりスリープモードを解 除します。リセット要因によりスリープモードを解除した場合は , スリープモードを解 除した上でリセット状態になります。 スリープモード中に周辺回路および内蔵リソースから割込みレベルが 7 より強い割込 み要求が発生すると , スタンバイ制御回路はスリープモードを解除します。スリープ モードの解除後は , 通常の割込み処理と同じ扱いとなり , I フラグ , ILM と割込み制御 レジスタ (ICR) の設定により割込みが受け付けられるときは , CPU はスタンバイ書込 み命令の次の割込み保留でない命令を実行後に , 割込み処理を実行し , 割込みが受け付 けられないときはスリープモードに入れた命令の次の命令から処理を続行します。 < 注意事項 > 通常 , 割込み処理はスリープモードへの遷移中に実行された命令の次の命令を実行 後に開始されます。 89 第 6 章 低消費電力制御回路 6.3.2 時計モード 時計モードとは , 原発振 , タイムベースタイマ以外の動作を止めるモードであり , チップのほぼ全機能が停止します。 ■ 時計モードへの遷移 スタンバイ制御回路は , クロック選択レジスタの MCS ビットが "0" で , 低消費電力モー ド制御レジスタの STP ビットに "1" が書き込まれたときに , 時計モードにセットされ ます。 時計モード中の I/O 端子を , 直前の状態に保持するか , ハイインピーダンス状態にする かを , 低消費電力モード制御レジスタ中の SPL ビットにより制御できます。STP ビッ トに "1" を書き込んだときに割込み要求が発生している場合は , スタンバイ制御回は時 計モードに遷移しません。 時計モードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持しま す。 < 注意事項 > 90 時計モード時に周辺機能とポートを兼用している端子をハイインピーダンスに設定 する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定してくだ さい。 対象となる端子を以下に示します。 対象端子 :P04/OUT0, P05/OUT1, P06/OUT2, P07/OUT3, P10/PPG0, P11/PPG1, P12/PPG2, P13/PPG3, P14/PPG4, P15/PPG5, P17/TOT1 第 6 章 低消費電力制御回路 ■ 時計モードの解除 スタンバイ制御回路は , リセット入力または割込みの発生により時計モードを解除し ます。リセット要因により時計モードを解除した場合は , 時計モードを解除した上で , リセット状態になります。 時計モードからの復帰の場合 , まずスタンバイ制御回路が時計モードを解除し , PLL ク ロック発振安定待ち状態に遷移します。MCS ビットは外部リセットによりクリアされ ないので , リセット時間が PLL クロック発振安定待ち時間より短い場合 , リセットシー ケンスはメインクロックを使用して行われます。PLL クロック発振安定待ち時間は , タ イムベースタイマがクリアされていないので , その状態に応じて 213 ∼ 3 × 213 になり ます。 時計モード中に周辺回路などから割込みレベルが 7 より強い割込み要求が発生すると , スタンバイ制御回路は時計モードを解除します。時計モードの解除後は , 通常の割込み 処理と同じ扱いとなり , I フラグ , ILM と割込み制御レジスタ (ICR) の設定により割込 みが受け付けられるときは , CPU はスタンバイ書込み命令の次の割込み保留でない命 令を実行後に , 割込み処理を実行し , 割込みが受け付けられないときは時計モードに入 る前の次の命令から処理を続行します。 < 注意事項 > • 通常 , 割込み処理は時計モードへの遷移中に実行された命令の次の命令を実行後 に開始されます。 • スタンバイ制御回路は , 時計モードが解除されると PLL クロック発振安定待ち状 態に遷移します。PLL クロックを使用していない場合 , リセットまたは割込みの 直後の命令により MCS ビットに "1" を書き込んでください。 91 第 6 章 低消費電力制御回路 6.3.3 ストップモード ストップモードとは , 原発振を止めるモードであり , チップの全機能が停止します。 したがって , もっとも低消費電力でデータを保持することができます。 ■ ストップモードへの遷移 クロック選択レジスタの MCS ビットが "1" で , 低消費電力モード制御レジスタ中の STP ビットに "1" を書き込むことによりスタンバイ制御回路をストップモードに設定しま す。 ストップモード中の I/O 端子を , 直前の状態に保持するか , ハイインピーダンス状態に するかを , LPMCR 中の SPL ビットにより制御できます。 < 注意事項 > • SPL を "1" にセットすることが推奨されます。"0" にセットされている場合 , すべ ての入力をストップモードで定義するようにしてください(ポートを出力にセッ トするか , 定義済みの入力信号を適用します)。 • ストップモード時に周辺機能とポートを兼用している端子をハイインピーダンス に設定する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定 してください。 対象となる端子を以下に示します。 対象端子 :P04/OUT0, P05/OUT1, P06/OUT2, P07/OUT3, P10/PPG0, P11/PPG1, P12/PPG2, P13/PPG3, P14/PPG4, P15/PPG5, P17/TOT1 STP ビットに "1" を書き込んだときに割込み要求が発生している場合は , スタンバイ制 御回路はストップモードに遷移しません。 ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ■ ストップモードの解除 スタンバイ制御回路は , リセット入力 , または割込みの発生によりストップモードを解 除します。リセット要因によりストップモードを解除した場合は , ストップモードを解 除した上で , リセット状態になります。 ストップモード中に周辺回路などから割込みレベルが 7 より強い割込み要求が発生す ると , スタンバイ制御回路はストップモードを解除します。ストップモードの解除後は , CKSCR 中の WS1, 0 ビットで指定されたメインクロッの発振安定待ち時間を経過した あとで, 通常の割込み処理と同じ扱いとなり, Iフラグ, ILM と割込み制御レジスタ(ICR) の設定により割込みが受け付けられるときは , CPU はスタンバイ書込み命令の次の割 込み保留でない命令を実行後に , 割込み処理を実行し , 割込みが受け付けられないとき はストップモードに入る前の次の命令から処理を続行します。 < 注意事項 > 92 通常 , 割込み処理はストップモードへの遷移中に実行された命令の次の命令実行後 に開始されます。 第 6 章 低消費電力制御回路 ■ 発振安定待ち時間の設定 WS1, WS0 ビットを使用して , ストップモードまたはハードウェアスタンバイモードの 解除時の発振安定待ち時間の設定を行います。X0, X1 端子に接続する発振回路 , 発振 素子の種類や特性に応じて発振安定待ち時間を設定します。 パワーオンリセット以外のリセットでは , 本ビットは初期化されません。パワーオンリ セット時は "11" に初期化されるので , 電源を最初に投入したときに , 発振安定待ち時 間は原発振の約 217 パルスカウントに設定されます。 93 第 6 章 低消費電力制御回路 6.3.4 ハードウェアスタンバイモード ハードウェアスタンバイモードとは , リセットを含むほかの状態に関係なく HST 端 子が "L" レベルの間 , 発振を停止させ I/O 端子をすべてハイインピーダンス状態にす るモードです。 ■ ハードウェアスタンバイモードへの遷移 HST 端子を "L" レベルにすることにより , どんな状態からでもスタンバイ制御回路を ハードウェアスタンバイモードに設定することができます。ハードウェアスタンバイ モードでは内部 RAM の内容は保持されますが , アキュムレータなどの専用レジスタは 初期状態になります。 ■ ハードウェアスタンバイモードの解除 ハードウェアスタンバイモードの解除は , HST 端子によってのみ解除することができ ます。HST 端子を "H" レベルとなるとスタンバイ制御回路はハードウェアスタンバイ モードを解除し , 内部リセット信号を有効にしたのち発振安定待ち状態に遷移します。 さらに , メインクロック発振安定待ち時間の経過後 , スタンバイ制御回路は内部リセッ トを解除し , その結果は CPU はリセットシーケンスから実行を開始します。 ■ 発振安定待ち時間の設定 WS1, WS0 ビットを使用して , ストップモードまたはハードウェアスタンバイモードの 解除時の発振安定待ち時間の設定を行います。X0, X1 端子に接続する発振回路 , 発振 素子の種類や特性に応じて発振安定待ち時間を設定します。 パワーオンリセット以外のリセットでは , 本ビットは初期化されません。パワーオンリ セット時は "11" に初期化されるので , 電源を最初に投入したときに , 発振安定待ち時 間は原発振の約 217 パルスカウントに設定されます。 94 第 6 章 低消費電力制御回路 6.4 CPU 間欠動作 CPU 間欠動作機能は , レジスタ , または内蔵メモリ (ROM, RAM, I/O, リソース) アクセスを行うときに CPU に供給するクロックを一定期間停止させ , 内部バスサイ クルの起動を遅らせます。内蔵リソースに高速クロックを供給したまま CPU の実行 速度を下げることにより , 低消費電力で処理が行えます。 ■ CPU 間欠動作 図 6.4-1 に , CPU 間欠動作を示します。CPU 間欠動作は , CG1, CG0 ビットにより , ク ロック一時停止のサイクル数の選択を行います。 なお , 外部バス動作そのものは , リソースと同じクロックを使用して行われます。 また , CPU 間欠動作機能を使用した場合の命令実行時間の算出は , 通常の実行時間に補 正係数 (レジスタ , 内蔵メモリ , または内蔵リソースアクセスを行う回数に , 一時停止 サイクル数をかけた値)を加えることで , 求めることができます。 図 6.4-1 CPU 間欠動作 周辺クロック CPUクロック 一時停止サイクル 1命令実行 サイクル 内部バス起動 95 第 6 章 低消費電力制御回路 6.5 マシンクロック切換え CKSCR レジスタ中の MCS ビットへの書込みにより , マシンクロックは , メインク ロックから PLL クロックに切り換わります。 ■ メインクロックと PLL クロックの切換え MCS ビットを "1" から "0" に書き換えた場合には , PLL クロックの発振安定待ち時間 (213 マシンクロックサイクル)経過後に , マシンクロックはメインクロックから PLL クロックに切り換わります。 MCS ビットを "0" から "1" に書き換えた場合には , PLL クロックとメインクロックの エッジが一致する時点(1 ∼ 8PLL クロックサイクル後)で , マシンクロックは PLL ク ロックからメインクロックに切り換わります。 MCS ビットを書き換えても即座にマシンクロックの切り換えが行われないので , マシ ンクロックに依存するリソースを操作する場合には , MCM ビットを常に参照してマシ ンクロックの切り換えが行われたことを確認した後 , リソースの操作を行います。 < 注意事項 > クロックモードを切り替えた場合 , 切替えが完了するまでは , 他のクロックモードお よび低消費電力モードへの切替えを行わないようにしてください。切替えの完了は 「6.2.2 クロック選択レジスタ (CKSCR)」の MCM ビットを参照して確認してくださ い。 ■ マシンクロックの初期化 MCS ビットは , 外部端子 (RST) によるリセット , RST ビットによるリセットでは初期 化されません。その他のリセットでは , "1" に初期化されます。 96 第 6 章 低消費電力制御回路 6.6 クロック選択の状態遷移 PLL クロックの発振安定待ち時間は , 213 メインクロックサイクル固定です ( 原発振 4MHz 時 , 発振安定待ち時間は約 2ms になります )。 ■ クロック選択の状態遷移 動作電圧が 5V のとき , OSC 原発振は 3MHz ∼ 5MHz の発振が可能です。外部クロッ ク供給の場合 , 3MHz ∼ 16MHz の発振が可能です。 図 6.6-1 に , クロック選択の状態遷移を示します。 図 6.6-1 クロック選択の状態遷移 パワーオン ① メイン ⇒ PLLx MCS = 0 MCM = 1 CS1/0=xx メイン MCS = 1 MCM = 1 CS1/0=xx ⑦ ② ③ PLL1 ⇒ メイン PLL1 逓倍 ④ MCS = 1 MCM = 0 CS1/0=00 ⑥ MCS = 0 MCM = 0 CS1/0=00 ⑦ PLL2 逓倍 PLL2 ⇒ メイン MCS = 1 ⑦ MCS = 0 MCM = 0 CS1/0=01 ⑥ MCM = 0 CS1/0=01 ⑤ PLL3 逓倍 PLL3 ⇒ メイン ⑦ MCS = 1 MCM = 0 ⑥ CS1/0=10 PLL4 ⇒ メイン MCS = 1 MCM = 0 ①MCS ビットクリア ⑥ ②PLL クロック発振安定待ち終了 & CS1/0=00 ③PLL クロック発振安定待ち終了 & CS1/0=01 CS1/0=11 ④PLL クロック発振安定待ち終了 & CS1/0=10 ⑤PLL クロック発振安定待ち終了 & CS1/0=11 ⑥MCSビットセット (ハードウェアスタンバイ,ウォッチドッグリセットを含む) ⑦PLL クロックとメインクロック同期タイミング MCS = 0 MCM = 0 CS1/0=10 PLL4 逓倍 MCS = 0 MCM = 0 CS1/0=11 97 第 6 章 低消費電力制御回路 < 注意事項 > 98 クロックモードを切り替えた場合 , 切替えが完了するまでは , 他のクロックモードお よび低消費電力モードへの切替えを行わないようにしてください。切替えの完了は 「6.2.2 クロック選択レジスタ (CKSCR)」の MCM ビットを参照して確認してくださ い。 第7章 メモリアクセスモード メモリアクセスモードの機能と動作について説明 します。 7.1 メモリアクセスモードの概要 7.2 モード端子 7.3 モードデータ 99 第 7 章 メモリアクセスモード 7.1 メモリアクセスモードの概要 F2MC-16LX では , アクセス方式 , アクセス領域の各々について , 次の 2 種類のメモ リアクセスモードがあります。 • 動作モード • バスモード ■ メモリアクセスモード 図 7.1-1 メモリアクセスモード 動作モード ○ RUN バスモード シングルチップ ○ フラッシュメモリモード MB90595 シリーズについては , 外部バス機能はサポートされていません。このため , 本 マニュアルの以下の部分は完全にはサポートされていません。ユーザご使用の際には , MB90595 シリーズをシングルチップモードで使用してください。 MB90595 シリーズをシングルチップモードに設定するには , モード入力 (MD2 ∼ MD0) を"011"にし, モードデータの最大有効2ビット (M1, M0) を"00"にする必要があります。 ● 動作モード 動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端 子 (MDx) の内容で指定します。動作モードを選択することで , 通常動作 / 内部試験プ ログラムの起動 / 特殊試験機能の起動を行うことができます。 ● バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す もので , モード設定用端子 (MDx) とモードデータ内の Mx ビットの内容で指定します。 モード設定用端子 (MDx) は , リセットベクタおよびモードデータを読み出すときのバ スモードを指定するもので , モードデータ内の Mx ビットは , 通常動作時のバスモード を指定するものです。 100 第 7 章 メモリアクセスモード モード端子 7.2 MD2 ∼ MD0 の 3 本の外部端子の設定の組合せによって , モードの指定ができます。 ■ モード端子 表 7.2-1 モード端子と設定モードの関係 モード端子設定 モード名 MD2 MD1 MD0 リセットベクタ 外部データ アクセス領域 バス幅 備考 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 フラッシュシリアル書き込み * ― ― ― 1 1 1 フラッシュメモリモード ― ― パラレルライタ使用時のモード (指定禁止) 内部ベクタモード 内部 (モードデータ) リセットシーケンス以降はモード データで制御 (指定禁止) *: フラッシュメモリのシリアル書込みは , モード端子の設定だけでは書込みができません。他の端 子設定も必要です。 詳細はフラッシュメモリ書込み接続例を参照して下さい。 101 第 7 章 メモリアクセスモード モードデータ 7.3 主記憶 FFFFDFH に置く , CPU の動作制御用のデータです。リセットシーケンス実 行中にこのデータを取り込み , デバイス内部のモードレジスタに格納します。モー ドレジスタの内容を変更できるのはリセットシーケンスだけです。 本レジスタによる設定はリセットシーケンス以降に有効となります。 予約ビットは , 必ず "0" を設定してください。 ■ モードデータ 図 7.3-1 に , ビットの設定を示します。 図 7.3-1 モードデータ構成 bit モードデータ 7 6 5 4 3 2 1 M1 M0 0 0 0 0 0 0 0 機能拡張ビット(予約領域) バスモード設定ビット ■ バスモード設定ビット リセットシーケンス終了後の動作モードの指定を行うビットです。表 7.3-1 に , ビット と機能との関係を示します。 表 7.3-1 バスモード設定ビットと機能 M1 M0 0 0 0 1 1 0 1 1 機能 シングルチップモード (設定禁止) 図 7.3-2 に , 各バスモードのアクセス領域と物理アドレスとの対応関係を示します。 102 第 7 章 メモリアクセスモード 図 7.3-2 各バスモードのアクセス領域と物理アドレス FFFFFFH ROM デバイス依存 #1 010000H ROM 004000H 002000H 001900H デバイス依存 #1 000100H 0000C0H 000000H I/O :アクセスなし RAM :内部アクセス I/O シングルチップ 注 (#1):「デバイス依存」とは , デバイスにより決定されるアドレスのことです。 ■ 推奨設定例 表 7.3-2 に , モード端子とモードデータの推奨設定例を示します。 表 7.3-2 モード端子とモードデータの推奨設定例 設定例 シングルチップ < 注意事項 > MD2 MD1 MD0 M1 M0 0 1 1 0 0 フラッシュ品については , ハードワイアードロジックにより , モードデータにあらか じめ決められた値が設定されています。詳細については , 「23.9 フラッシュメモリ におけるリセットベクタアドレス」を参照してください。 103 第 7 章 メモリアクセスモード 104 第8章 I/O ポート I/O ポートの機能と動作について説明します。 8.1 I/O ポート 8.2 I/O ポートのレジスタ 105 第 8 章 I/O ポート 8.1 I/O ポート それぞれのポートの各端子は , 対応する周辺が端子を用いない設定となっている時 , 1 本ごとに方向レジスタを設定することにより , 入力 , 出力の指定を行うことができ ます。入力端子として指定した場合 , 端子の論理レベルが読み出され , 出力端子とし て指定した場合 , データレジスタ値が読み出されます。これは , リードモディファイ ライトのリード操作にも適用されます。 ■ I/O ポート I/O ポートでは , ポート 0 ∼ポート 3 についてのみは , 周辺信号の出力を許可する場合 , ポート方向レジスタの対応するビットを "1" に設定する必要があります。 周辺回路の出力として使用している場合にデータレジスタを読出した時は , 方向レジ スタの値に関係なく , 制御出力として出力しているものが , 読み出されます。 一般的には , ポートを出力に設定する前に , データレジスタの設定にリードモディファ イライト系の命令を使用しないことが推奨されます。それは , リードモディファイライ ト系の命令によってレジスタ値ではなくポートの論理レベルが読み出されるからで す。 図 8.1-1 に , I/O ポートのブロックダイヤグラムを示します。 図 8.1-1 入出力ポートのブロックダイヤグラム 内部データバス データレジスタ リード データレジスタ データレジスタ ライト 方向レジスタ 方向レジスタ ライト 方向レジスタ リード 106 端子 第 8 章 I/O ポート 8.2 I/O ポートのレジスタ I/O ポートのレジスタには , 次の 3 種類があります。 • ポートデータレジスタ (PDR0 ∼ PDR9) • ポート方向レジスタ (DDR0 ∼ DDR9) • ポートアナログ入力許可レジスタ (ADER) ■ I/O ポートのレジスタ 図 8.2-1 に , I/O ポートのレジスタを示します。 図 8.2-1 I/O ポートのレジスタ bit 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 アドレス:000000H P07 P06 P05 P04 P03 P02 P01 P00 ポート0データレジスタ(PDR0) アドレス:000001H P17 P16 P15 P14 P13 P12 P11 P10 ポート1データレジスタ(PDR1) アドレス:000002H P27 P26 P25 P24 P23 P22 P21 P20 ポート2データレジスタ(PDR2) アドレス:000003H P37 P36 P35 P34 P33 P32 P31 P30 ポート3データレジスタ(PDR3) アドレス:000004H P47 P46 P45 P44 P43 P42 P41 P40 ポート4データレジスタ(PDR4) アドレス:000005H P57 P56 P55 P54 P53 P52 P51 P50 ポート5データレジスタ(PDR5) アドレス:000006H P67 P66 P65 P64 P63 P62 P61 P60 ポート6データレジスタ(PDR6) アドレス:000007H P77 P76 P75 P74 P73 P72 P71 P70 ポート7データレジスタ(PDR7) アドレス:000008H P87 P86 P85 P84 P83 P82 P81 P80 ポート8データレジスタ(PDR8) アドレス:000009H - - P95 P94 P93 P92 P91 P90 ポート9データレジスタ(PDR9) 11/3 10/2 9/1 8/0 bit 15/7 14/6 13/5 12/4 アドレス:000010H D07 D06 D05 D04 D03 D02 D01 D00 ポート0方向レジスタ(DDR0) アドレス:000011H D17 D16 D15 D14 D13 D12 D11 D10 ポート1方向レジスタ(DDR1) アドレス:000012H D27 D26 D25 D24 D23 D22 D21 D20 ポート2方向レジスタ(DDR2) アドレス:000013H D37 D36 D35 D34 D33 D32 D31 D30 ポート3方向レジスタ(DDR3) アドレス:000014H D47 D46 D45 D44 D43 D42 D41 D40 ポート4方向レジスタ(DDR4) アドレス:000015H D57 D56 D55 D54 D53 D52 D51 D50 ポート5方向レジスタ(DDR5) アドレス:000016H D67 D66 D65 D64 D63 D62 D61 D60 ポート6方向レジスタ(DDR6) アドレス:000017H D77 D76 D75 D74 D73 D72 D71 D70 ポート7方向レジスタ(DDR7) アドレス:000018H D87 D86 D85 D84 D83 D82 D81 D80 ポート8方向レジスタ(DDR8) アドレス:000019H - - D95 D94 D93 D92 D91 D90 ポート9方向レジスタ(DDR9) bit 15 14 13 12 11 10 9 アドレス:00001BH ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 8 ADE1 ADE0 ポート6アナログ入力許可レジスタ(ADER) 107 第 8 章 I/O ポート 8.2.1 ポートデータレジスタ I/O ポートの R/W は , メモリへの R/W とは多少動作が異なりますので注意してくだ さい。 入力モード リード時 : 対応する端子のレベルが読み出されます。 ライト時 : 出力用のラッチに書き込まれます。 出力モード リード時 : データレジスタラッチの値が読み出されます。 ライト時 : 出力ラッチに書き込まれ , 対応する端子に出力されます。 ■ ポートデータレジスタ 図 8.2-2 に , ポートデータレジスタを示します。 図 8.2-2 ポートデータレジスタ bit PDR0 アドレス:000000H 7 6 5 4 3 2 1 0 P07 P06 P05 P04 P03 P02 P01 P00 bit PDR1 アドレス:000001H 15 14 13 12 11 10 9 8 P17 P16 P15 P14 P13 P12 P11 P10 7 6 5 4 3 2 1 0 P27 P26 P25 P24 P23 P22 P21 P20 14 13 12 11 10 9 8 P36 P35 P34 P33 P32 P31 P30 7 6 5 4 3 2 1 0 P47 P46 P45 P44 P43 P42 P41 P40 14 13 12 11 10 9 8 P56 P55 P54 P53 P52 P51 P50 7 6 5 4 3 2 1 0 P67 P66 P65 P64 P63 P62 P61 P60 14 13 12 11 10 9 8 P76 P75 P74 P73 P72 P71 P70 bit 7 PDR8 P87 アドレス:000008H 6 5 4 3 2 1 0 P86 P85 P84 P83 P82 P81 P80 bit 15 PDR9 アドレス:000009H 14 13 12 11 10 9 8 - P95 P94 P93 P92 P91 P90 bit PDR2 アドレス:000002H bit 15 PDR3 P37 アドレス:000003H bit PDR4 アドレス:000004H bit 15 PDR5 P57 アドレス:000005H bit PDR6 アドレス:000006H bit 15 PDR7 アドレス:000007H R/W : リード / ライト可能 108 P77 初期値 アクセス 不定 R/W *1 不定 R/W *1 不定 R/W *1 不定 R/W *1 不定 R/W *1 不定 R/W *1 不定 R/W *1 不定 R/W *1 不定 R/W *1 不定 R/W *1 第 8 章 I/O ポート ポート方向レジスタ 8.2.2 ポート方向レジスタは , 各端子がポートとして機能しているときは , 対応する各端子 を以下のように制御します。 0: 入力モード 1: 出力モード ■ ポート方向レジスタ 図 8.2-3 に , ポート方向レジスタを示します。 図 8.2-3 ポート方向レジスタ bit DDR0 アドレス:000010H 6 5 4 3 2 1 D07 D06 D05 D04 D03 D02 D01 D00 14 13 12 11 10 9 8 D16 D15 D14 D13 D12 D11 D10 6 5 4 3 2 1 0 D26 D25 D24 D23 D22 D21 D20 14 13 12 11 10 9 8 D36 D35 D34 D33 D32 D31 D30 6 5 4 3 2 1 0 D46 D45 D44 D43 D42 D41 D40 14 13 12 11 10 9 8 D56 D55 D54 D53 D52 D51 D50 6 5 4 3 2 1 0 D66 D65 D64 D63 D62 D61 D60 14 13 12 11 10 9 8 D76 D75 D74 D73 D72 D71 D70 6 5 4 3 2 1 0 D86 D85 D84 D83 D82 D81 D80 14 13 12 11 10 9 8 - D95 D94 D93 D92 D91 D90 bit 15 DDR1 アドレス:000011H D17 bit 7 DDR2 アドレス:000012H D27 bit 15 DDR3 アドレス:000013H D37 bit 7 DDR4 アドレス:000014H D47 bit 15 DDR5 アドレス:000015H D57 bit 7 DDR6 アドレス:000016H D67 bit 15 DDR7 D77 アドレス:000017H bit 7 DDR8 アドレス:000018H D87 bit 15 DDR9 アドレス:000019H 0 7 - 初期値 アクセス 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W --000000B R/W R/W:リード/ライト可能 < 注意事項 > 端子が周辺リソースにより出力モードにセットされている場合 , DDR の対応する ビットは , 常に "1" で読み出されます。 ポート方向レジスタ 0, 1 はパワーオンリセット中は不定であり , パワーオンリセッ ト後は "00" に初期化されます。したがって , ポート 0, 1 の出力もパワーオンリセッ ト中は不定となります。 109 第 8 章 I/O ポート 8.2.3 アナログ入力許可レジスタ アナログ入力許可レジスタは , ポート 6 の各端子を以下のように制御します。 0: ポート入出力モード 1: アナログ入力モード 外部端子を A/D コンバータのアナログ入力として使用している場合 , 対応するビッ トを "1" に設定する必要があります。 ■ アナログ入力許可レジスタ 図 8.2-4 に , アナログ入力許可レジスタを示します。 図 8.2-4 アナログ入力許可レジスタ bit アドレス:00001BH 15 14 13 12 11 10 ADE7 ADE6 ADE5 ADE4 ADE3 R/W R/W R/W R/W R/W R/W : リード / ライト可能 110 9 8 ADE2 ADE1 ADE0 R/W R/W R/W 初期値 11111111B 第9章 タイムベースタイマ タイムベースタイマの機能と動作について説明し ます。 9.1 タイムベースタイマの概要 9.2 タイムベースタイマ制御レジスタ 9.3 タイムベースタイマの動作 111 第 9 章 タイムベースタイマ 9.1 タイムベースタイマの概要 タイムベースタイマは , システムクロックを分周する 18 ビットのタイムベースカウ ンタと制御レジスタにより構成されます。タイムベースタイマは , タイムベースカ ウンタの桁上り信号により指定したインターバルで割込みを発生します。 ■ タイムベースタイマの概要 パワーオン時 , タイムベースカウンタは , ストップモードを設定するか , またはソフト ウェア (TBR ビットへの "0" の書込み)によりすべてゼロにクリアされます。原振が 入力されている間 , タイムベースカウンタはインクリメントされます。 タイムベースカウンタは , ウォッチドッグタイマのクロック供給 , 発振安定時間待ちの ためのタイマとして使用できます。 ■ タイムベースタイマのブロックダイヤグラム 図 9.1-1 に , タイムベースタイマのブロックダイヤグラムを示します。 図 9.1-1 タイムベースタイマのブロックダイヤグラム WTE 出力許可 WT1 WT0 リセット リセット コントロール 2bitカウンタ セレクタ タイムベースカウンタ f/2 パワーオン リセット STOPモード 1 1 1 1 1 1 1 1 1 2 211 212 213 214 215 216 217 218 クリア コントロール TBOF セレクタ TBR TBC1 TBC0 WS1 WS0 112 1/210 to 1/217 セレクタ TBOF クリア EI2OS タイムベース分周出力 発振安定待ち完了信号 IRQ 第 9 章 タイムベースタイマ 9.2 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタは , タイムベースタイマの割込みの制御を行い , タ イムベースカウンタのクリヤを行うことができます。 ■ タイムベースタイマ制御レジスタ (TBTC) 15 12 11 10 9 8 予約 TBIE TBOF TBR TBC1 TBC0 W R/W R/W W R/W R/W bit TBTC アドレス:0000A9H 14 13 初期値 1--00100B R/W:リード/ライト可能 W :ライトオンリ [bit15] 予約 予約済ビットです。このレジスタにデータを書込む時は , 必ず "1" を書き込んでくださ い。 [bit12]TBIE タイムベースタイマによるインターバル割込みを許可するビットです。"1" のとき割込 み許可 , "0" のとき割込みを禁止します。リセットにより "0" に初期化します。読み書 き可能なビットです。 [bit11]TBOF タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のとき TBOF が , "1" になると割込み要求を発生します。TBC1, TBC0 ビットで設定されたインターバルごと に "1" にセットされます。"0" の書込み , ストップモード , ハードウェアスタンバイモー ドでの変遷 , およびリセットによりクリアされます。"1" の書込みは , 意味がありませ ん。 リードモディファイライト系命令におけるリード時には "1" が読めます。 [bit10]TBR タイムベースカウンタを全ビット "0" にクリアするビットです。"0" を書き込むことに よりタイムベースカウンタをクリアします。"1" の書込みは意味がありません。 リード時は "1" が読めます。 [bit9, bit8]TBC1, TBC0 タイムベースタイマのインターバルを設定するビットです。表 9.2-1 に , インターバル の設定を示します。 表 9.2-1 タイムベースタイマインターバルの選択 TBC1 TBC0 原振 4MHz 時のインターバル時間 0 0 1.024 ms 0 1 4.096 ms 1 0 16.384 ms 1 1 131.072 ms 113 第 9 章 タイムベースタイマ 9.3 タイムベースタイマの動作 タイムベースタイマには , ウォッチドッグタイマのクロックソース , 発振安定時間待 ちのためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり ます。 ■ タイムベースカウンタ タイムベースカウンタは , 原振入力を 2 分周して発生させたクロック用の 18 ビットの カウンタにより構成されます。このクロックは , マシンクロックを発生するのに使用さ れます。原振が入力されている間 , タイムベースカウンタはカウント動作を続けます。 タイムベースカウンタのクリアは , パワーオンリセット , ストップモードかハードウェ アスタンバイモードへの遷移 , または TBTC レジスタ中の TBR ビットへの "0" の書込 みにより行われます。 ■ インターバル割込み機能 タイムベースカウンタの桁上り信号により一定周期で割込みを発生します。TBTC レ ジスタ中の TBC1, TBC0 ビットで設定されるインターバル時間ごとに TBOF フラグを セットします。このフラグの書込みは , 最後にタイムベースタイマがクリアされた時間 を基準にして行われます。 ストップモード , またはハードウェアスタンバイモードに遷移すると , タイムベースタ イマは復帰時の発振安定時間待ちのタイマとして使用されるので , TBOF フラグはモー ド遷移と同時にクリアされます。 114 第 10 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明 します。 10.1 ウォッチドッグタイマの概要 10.2 ウォッチドッグタイマの動作 115 第 10 章 ウォッチドッグタイマ ウォッチドッグタイマの概要 10.1 ウォッチドッグタイマは , 18bit のタイムベースタイマの桁上り信号をクロックソー スとする 2 ビットのウォッチドッグカウンタ , コントロールレジスタ , ウォッチドッ グリセット制御部により構成されています。 ■ ウォッチドッグタイマのブロックダイヤグラム 図 10.1-1 に , ウォッチドッグタイマのブロックダイヤグラムを示します。 図 10.1-1 ウォッチドッグタイマのブロックダイヤグラム WTE 出力許可 WT1 WT0 セレクタ リセット コントロール 2bitカウンタ タイムベースカウンタ 1 f/2 2 パワーオン リセット STOPモード ・・・ 1 1 1 1 1 1 1 1 211 212 213 214 215 216 217 218 クリア コントロール TBOF TBOF TBR クリア TBC1 TBC0 EI2OS 1/210 to 1/217 WS1 セレクタ WS0 116 タイムベース分周出力 発振安定待ち完了信号 IRQ リセット 第 10 章 ウォッチドッグタイマ ■ ウォッチドッグタイマ制御レジスタ (WDTC) bit WDTC アドレス:0000A8H R W 初期値 7 6 5 4 3 2 1 0 PONR STBR WRST ERST SRST WTE WT1 WT0 R R R R W W W R XXXXX111H :リードオンリ :ライトオンリ [bit7 ∼ bit3] PONR, STBR, WRST, ERST, SRST リセットの要因を示すフラグです。各種リセット要因が発生すると , 本ビットは 表 10.1-1 のように設定されます。これらのビットはすべて WDTC のリード動作後に "0" にクリアされます。読出し専用のレジスタです。詳細については , 「5.2 リセット要因 の発生」を参照してください。 表 10.1-1 リセット要因レジスタ リセット要因 パワーオン ハードウェアスタンバイ ウォッチドッグタイマ 外部端子 RST ビット *: 前の値の保持を示します。 PONR STBR WRST ERST SRST 1 * * * * ― 1 * * * ― * 1 * * ― * * 1 * ― * * * 1 [bit2] WTE ウォッチドッグタイマが停止状態のときに本ビットに "0" を書き込むことにより , ウォッチドッグタイマを動作状態にします。"1" の書込みは何の操作もしません。 ウォッチドッグタイマは , パワーオン , ハードウェアスタンバイ , ウォッチドッグタイ マによるリセットにより停止状態となります。読出し時は "1" が読み出されます。 [bit1, bit0] WT1, WT0 ウォッチドッグタイマのインターバル時間を選択するビットです。ウォッチドッグタ イマ起動時に書き込まれたデータのみが有効です。ウォッチドッグ起動時以外の書込 みデータは無視します。 表 10.1-2 に , インターバル時間の設定を示します。 書込み可能なビットです。 表 10.1-2 ウォッチドッグタイマインターバル選択ビット WT1 WT0 インターバル時間 (原振 :4MHz) 最小 最大 * メイン・クロック・サイク ル・カウント 0 0 約 3.58 ms 約 4.61 ms 214 ± 211 サイクル 0 1 約 14.33 ms 約 18.43 ms 216 ± 213 サイクル 1 0 約 57.23 ms 約 73.73 ms 218 ± 215 サイクル 1 1 約 458.7 ms 221 ± 218 サイクル *: インターバルの最大値は , ウォッチドッグ動作中にタイムベースカウンタまたは時計カウンタが リセッ トされない場合の値です。 約 589.82 ms 117 第 10 章 ウォッチドッグタイマ 10.2 ウォッチドッグタイマの動作 ウォッチドッグタイマの機能により , プログラムの暴走を検出することができます。 プログラムの暴走などにより , 定められた時間内にウォッチドッグタイマのアクセ スが行われない場合 , ウォッチドッグタイマはシステムをリセットします。 ■ ウォッチドッグタイマの起動方法 ウォッチドッグタイマの起動は , ウォッチドッグタイマの停止中に WDTC レジスタの WTE ビットに "0" を書き込むことによって行われます。このとき , 同時にウォッチドッ グタイマのリセット発生のインターバルを WT1, WT0 ビットにより設定します。イン ターバルの設定は , この起動のときのデータのみが有効となります。 ■ ウォッチドッグカウンタ 一度 , ウォッチドッグタイマが起動されると , ウォッチドッグタイマカウンタをプログ ラム内で定期的にクリアする必要があります。WDTC レジスタの WTE ビットに "0" を 書き込むと , ウォッチドッグカウンタがクリアされます。ウォッチドッグカウンタは , タイムベースカウンタの桁上り信号をクロックソースとする 2 ビットのカウンタによ り構成されています。したがって , タイムベースカウンタがクリアされると , ウォッチ ドッグリセットの発生時間が設定より短くなることがあります。 ウォッチドッグのカウンタは , WTE ビットへの書込みによるクリアのほかに , リセッ トの発生 , スリープモード , ストップモードへの変遷によってクリアされます(なお , 時計モードへの変遷では , クリアされません) 。 図 10.2-1 に , ウォッチドッグタイマの動作を示します。 図 10.2-1 ウォッチドッグタイマの動作 タイムベース ウォッチドッグ 00 01 10 00 01 10 11 00 WTEライト ウォッチドッグ起動 ウォッチドッグクリア ウォッチドッグリセット ■ ウォッチドッグ停止 ウォッチドッグタイマは , 一度起動すると , パワーオン , ハードウェアスタンバイ , ウォッチドッグによるリセットでのみ初期化され停止状態となります。外部端子 , ソフ トウェアによるリセットではウォッチドッグのカウンタはクリアしますがウォッチ ドッグ機能は , 停止されません。 118 第 11 章 16 ビット入出力タイマ 16 ビット入出力タイマの機能と動作について説明 します。 11.1 16 ビット入出力タイマの概要 11.2 16 ビット入出力タイマのレジスタ 11.3 16 ビットフリーランタイマ 11.4 アウトプットコンペア 11.5 インプットキャプチャ 119 第 11 章 16 ビット入出力タイマ 11.1 16 ビット入出力タイマの概要 MB90595 シリーズは 16 ビットフリーランタイマ 1 本 , アウトプットコンペアモ ジュール 2 本 , インプットキャプチャ 2 本のモジュールから構成され , 4 個の入力 チャネルおよび , 4 個の出力チャネルをサポートしています。ここでは , 16 ビット入 出力タイマの機能のうち , 16 ビットフリーランタイマ , アウトプットコンペア 0/1 およびインプットキャプチャ 0/1 について説明します。残りのモジュールの機能も 同様であり , レジスタアドレスに関しては , 「付録 A I/O マップ」を参照してくだ さい。 ■ 16 ビットフリーランタイマ 16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールレジスタ , プ リスケーラより構成されています。本タイマカウンタの出力値はインプットキャプ チャ , アウトプットコンペアの基本時間(ベースタイマ)として使用されます。 ● カウンタ動作クロックは 4 種類から選択可能 内部クロック 4 種類 ( φ /4, φ /16, φ /64, φ /256) ● 割込みはカウンタ値のオーバフロー, コンペアレジスタ 0 とのコンペアマッチにより発生可 能 ● カウンタ値はリセット , ソフトクリア , コンペアレジスタ 0 とのコンペアマッチにより "0000H" に初期化可能 ■ アウトプットコンペア(モジュールごとに 2 チャネル) アウトプットコンペアは 2 本の 16 ビットコンペアレジスタ , コンペア出力用ラッチ , コントロールレジスタより構成されています。16 ビットフリーランタイマ値とコンペ アレジスタ値が一致したとき出力レベルを反転すると共に割込みを発生することがで きます。 ● 2 本のコンペアレジスタを独立して動作 各コンペアレジスタに対応した出力端子と割込みフラグ ● 2 本のコンペアレジスタをペアにして出力端子を制御可能 コンペアレジスタ 2 本を使用して出力端子を反転する。 ● 出力端子の初期値を設定することが可能 ● 割込みはコンペア一致により発生可能 120 第 11 章 16 ビット入出力タイマ ■ インプットキャプチャ ( モジュールごとに 2 チャネル ) インプットキャプチャは独立した 2 本の外部入力端子と対応したキャプチャレジスタ , コントロールレジスタにより構成されています。外部入力端子より入力された信号の 任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ に保持し , 同時に割込みを発生することができます。 ● 外部入力信号のエッジを選択可能 立上りエッジ , 立下りエッジ , 両エッジから選択可能 ● 2 本のインプットキャプチャは独立して動作可能 ● 割込みは外部入力信号の有効エッジにより発生可能 インプットキャプチャの割込みによりインテリジェント IO サービスを起動できます。 ■ 16 ビット入出力タイマのブロックダイヤグラム 図 11.1-1 に , 16 ビット入出力タイマのブロックダイヤグラムを示します。 図 11.1-1 16 ビット入出力タイマのブロックダイヤグラム コントロールロジック 各ブロックへ 割込み 16ビットフリーランタイマ 16ビットタイマ バス クリア アウトプットコンペア0 コンペアレジスタ0 アウトプットコンペア1 コンペアレジスタ1 ○ ○ T Q OUT0 T Q OUT1 エッジ選択 IN0 エッジ選択 IN1 インプットキャプチャ0 キャプチャレジスタ0 インプットキャプチャ1 キャプチャレジスタ1 121 第 11 章 16 ビット入出力タイマ 11.2 16 ビット入出力タイマのレジスタ 16 ビット入出力タイマのレジスタには , 次の 3 つがあります。 • 16 ビットフリーランタイマのレジスタ • 16 ビットアウトプットコンペアのレジスタ • 16 ビットインプットキャプチャのレジスタ ■ 16 ビットフリーランタイマのレジスタ一覧 bit 15 0 000066H タイマデータレジスタ TCDT 000068H TCCS コントロールステータスレジスタ ■ 16 ビットアウトプットコンペアのレジスタ一覧 bit 15 0 001928H 00192AH コンペアレジスタ OCCP0/OCCP1 000058H OCS0 OCS1 コントロールステータスレジスタ ■ 16 ビットインプットキャプチャのレジスタ一覧 bit 15 001920H 001922H 00005CH 122 0 キャプチャレジスタ IPCP0/IPCP1 ICS01 コントロールステータスレジスタ 第 11 章 16 ビット入出力タイマ 16 ビットフリーランタイマ 11.3 16 ビットフリーランタイマのカウント値はアウトプットコンペア , インプットキャ プチャの基本時間 ( ベースタイマ ) として使用されます。 • カウントクロックは 4 種類から選択可能です。 • カウンタオーバフロー割込みを発生することができます。 • モード設定によりアウトプットコンペアのコンペアレジスタ 0 の値との一致によ るカウンタの初期化が可能です。 ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 11.3-1 に , 16 ビットフリーランタイマのブロックダイヤグラムを示します。 図 11.3-1 16 ビットフリーランタイマのブロックダイヤグラム φ 割込み要求 IVF IVFE STOP MODE CLR CLK1 CLK0 分周器 ス バ コンパレータ0 16ビットフリーランタイマ クロック T15~T00 カウント値出力 123 第 11 章 16 ビット入出力タイマ 11.3.1 データレジスタ データレジスタは , 16 ビットフリーランタイマのカウント値を読み出すことができ るレジスタです。カウンタ値はリセット時に "0000H" にクリアされます。このレジ スタに書き込むことで , タイマ値を設定できますが必ず停止 (STOP=1) 状態で行って ください。このレジスタはワードアクセスしてください。 ■ データレジスタ 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 7 6 5 4 3 2 1 0 T07 T06 T05 T04 T03 T02 T01 T00 R/W 0 R/W : リード / ライト可能 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 bit アドレス:000067H bit アドレス:000066H ←属性 ←初期値 TCDT ←属性 ←初期値 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • コントロールステータスレジスタのクリアビット (CLR) による初期化 • アウトプットコンペアのコンペアレジスタ 0 とタイマカウンタ値の一致による初期 化 ( モードの設定が必要です ) 124 第 11 章 16 ビット入出力タイマ 11.3.2 コントロールステータスレジスタ コントロールステータスレジスタは , 16 ビットフリーランタイマの動作モードの設 定 , 起動・停止や割込みの制御を行います。 ■ コントロールステータスレジスタ 7 6 5 4 3 2 1 0 予約 IVF IVFE STOP MODE CLR CLK1 CLK0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 bit アドレス:000068H TCCS ←属性 ←初期値 R/W : リード / ライト可能 [bit7] 予約ビット 本ビットには必ず "0" を書き込んでください。 [bit6]IVF 16 ビットフリーランタイマの割込み要求フラグです。 16 ビットフリーランタイマがオーバフローを起こしたとき , またはモード設定により コンペアレジスタ 0 とコンペアマッチしてカウンタクリアされたときに本ビットは "1" にセットされます。 割込み要求許可ビット (bit5:IVFE) がセットされていると割込みが発生します。 本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。 リードモディファイ系命令では "1" が読み出せます。 0 割込み要求なし(初期値) 1 割込み要求あり [bit5]IVFE 16 ビットフリーランタイマの割込み許可ビットです。本ビットが "1" のとき , 割込み フラグ (bit6:IVF) が "1" にセットされると割込みが発生します。 0 割込み禁止(初期値) 1 割込み許可 125 第 11 章 16 ビット入出力タイマ [bit4]STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。 "1" 書込み時にタイマのカウント停止。"0" 書込み時にタイマのカウントを開始。 < 注意事項 > 0 カウント許可(動作)(初期値) 1 カウント禁止(停止) 16 ビットフリーランタイマのカウントが停止すると , アウトプットコンペア動作も 停止。 [bit3]MODE 16 ビットフリーランタイマの初期化条件を設定します。 "0" のときはリセットとクリアビット (bit2:CLR) でカウンタ値を初期化可能。 "1" のときはリセットとクリアビット (bit2:CLR) のほかにアウトプットコンペアのコン ペアレジスタ 0 の値との一致によりカウンタ値を初期化することができます。 < 注意事項 > 0 リセット , クリアビットによる初期化(初期値) 1 リセット , クリアビット , コンペアレジスタ 0 による初期化 カウンタ値の初期化はカウント値の変化点で行われます。 [bit2]CLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するビットです。 "1" 書込み時にカウンタ値を "0000H" に初期化。"0" を書き込んでも意味を持ちません。 リード値は常に "0" です。カウンタ値の初期化はカウント値の変化点で行われます。 < 注意事項 > 0 意味を持ちません(初期値) 1 カウンタ値を "0000H" に初期化します タイマ停止中に初期化する場合はデータレジスタに"0000H"を書き込んでください。 [bit1, bit0]CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択します。本ビットに書込み後す ぐにクロックは変更されますのでアウトプットコンペア , インプットキャプチャが停 止状態のときに変更してください。 CLK1 CLK0 カウントクロック分周比 φ =16MHz φ = 8MHz φ = 4MHz φ = 2MHz 0 0 φ /4 0.25 µ s 0.5 µ s 1µs 2µs 0 1 φ /16 1µs 2µs 4µs 8µs 1 0 φ /64 4µs 8µs 16 µ s 32 µ s 1 1 φ /256 16 µ s 32 µ s 64 µ s 128 µ s φ : マシンクロック 126 第 11 章 16 ビット入出力タイマ 11.3.3 16 ビットフリーランタイマの動作 16 ビットフリーランタイマはリセット解除後にカウンタ値 "0000H" よりカウントを 開始します。このカウンタ値が 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作 カウンタ値は , 次の 5 つの条件でクリアされます。 • オーバフローが発生したとき。 • アウトプットコンペアレジスタ0値とコンペアマッチしたとき(モード設定が必要)。 • 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき。 • 停止中に TCDC レジスタに "0000H" を書き込んだとき。 • リセット時 割込みはオーバフローが発生したときと, コンペアレジスタ0値とコンペアマッチして カウンタクリアされたときに発生することができます ( コンペアマッチ割込みはモー ド設定が必要です )。 ■ オーバフローによるカウンタクリア カウンタ値 オーバフロー FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み ■ アウトプットコンペアレジスタ 0 値とコンペアマッチしたときのカウンタクリア カウンタ値 FFFFH BFFFH 一致 一致 7FFFH 3FFFH 0000H 時間 リセット コンペア レジスタ値 割込み BFFFH 127 第 11 章 16 ビット入出力タイマ ■ 16 ビットフリーランタイマのタイミング ● 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0 との一致 ) カウンタのクリアはリセット , ソフト , コンペアレジスタ 0 との一致で行うことができ ます。リセットとソフトでのカウンタクリアはクリア発生とともに行われますが , コン ペアレジスタ 0 との一致によるカウンタクリアはカウントタイミングに同期して行わ れます。 マシンクロック(φ) N コンペアレジスタ値 コンペアマッチ カウンタ値 128 N 0000 第 11 章 16 ビット入出力タイマ 11.4 アウトプットコンペア アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 本のコ ンペア出力端子 , およびコントロールレジスタから構成されています。コンペアレ ジスタに設定された値と 16 ビットフリーランタイマ値が一致したら , 端子の出力レ ベルを反転すると共に割込みを発生することができます。 ■ アウトプットコンペア • コンペアレジスタは全部で 2 本あり , 独立して動作させることができます。また設 定により 2 本のコンペアレジスタを使い端子の出力を制御可能です。 • 端子の出力初期値を設定することができます。 • 割込みはコンペア一致により発生可能です。 ■ アウトプットコンペアのブロックダイヤグラム 図 11.4-1 に , アウトプットコンペアのブロックダイヤグラムを示します。 図 11.4-1 アウトプットコンペアのブロックダイヤグラム 16ビットタイマカウンタ値 (T15~T00) T Q コンペア制御 OTE0 OUT0 OTE1 OUT1 コンペアレジスタ0 CMOD 16ビットタイマカウンタ値 (T15~T00) ス バ T Q コンペア制御 コンペアレジスタ1 ICP1 コントロール制御 ICP0 ICE1 ICE0 コンペア1割込み コンペア0割込み 制御ブロック 129 第 11 章 16 ビット入出力タイマ 11.4.1 アウトプットコンペアのレジスタ 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。レジ スタ値は初期値不定ですので設定してから起動許可してください。本レジスタは ワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致 した時コンペア信号が発生してアウトプットコンペア割込みフラグをセットします。 また , 出力許可をしている場合はコンペアレジスタに対応した出力レベルを反転し ます。 ■ アウトプットコンペアのコンペアレジスタ アドレス: bit 001929H 00192BH アドレス: 001928H 00192AH bit 15 14 13 12 11 10 9 8 C15 C14 C13 C12 C11 C10 C09 C08 R/W X 7 R/W X 6 R/W X 5 R/W X 4 R/W X 3 R/W X 2 R/W X 1 R/W X 0 C06 C05 C04 C03 C02 C01 C00 R/W R/W X X R/W : リード / ライト可能 X : 不定値 R/W X R/W X R/W X R/W X R/W X R/W X 130 C07 ←属性 ←初期値 OCCP0/OCCP1 ←属性 ←初期値 第 11 章 16 ビット入出力タイマ 11.4.2 アウトプットコンペアのコントロールステータスレ ジスタ コントロールステータスレジスタは , アウトプットコンペアの動作モードの設定 , 起 動・停止や割込みの制御 , 外部出力端子の設定を行います。 ■ アウトプットコンペアのコントロールステータスレジスタ アドレス: bit 15 14 13 000059H アドレス: 000058H bit 12 11 10 9 8 CMOD OTE1 OTE0 OTD1 OTD0 R/W 0 3 R/W 0 2 OCS1 R/W 0 1 R/W 0 0 ←属性 ←初期値 OCS0 ←属性 ←初期値 7 6 5 R/W 0 4 ICP1 ICP0 ICE1 ICE0 CST1 CST0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W : リード / ライト可能 − : 未定義 [bit15 ∼ bit13] 未使用ビット [bit12] CMOD 端子出力を許可した場合 (OTE1=1 OR OTE0=1) のコンペア一致における端子出力レベ ル反転動作モードを切り換えます。 • CMOD=0 のとき(初期値)はコンペアレジスタに対応した端子の出力レベルを反転 します。 - OUT0: コンペアレジスタ 0 の一致によりレベルを反転します。 - OUT1: コンペアレジスタ 1 の一致によりレベルを反転します。 • CMOD=1 のときはコンペアレジスタ 0 は CMOD=0 時と同じく出力レベルを反転し ますが , コンペアレジスタ 1 に対応した端子 (OUT1) の出力レベルは , コンペアレジ スタ 0 の一致とコンペアレジスタ 1 の一致の両方で出力レベルを反転します。コン ペアレジスタ 0 と 1 が同値の時はコンペアレジスタ 1 本のときと同じ動作をします。 - OUT0: コンペアレジスタ 0 の一致によりレベルを反転します。 - OUT1: コンペアレジスタ 0 と 1 の一致によりレベルを反転します。 131 第 11 章 16 ビット入出力タイマ [bit11, bit10] OTE1, OTE0 アウトプットコンペアの端子出力を許可するビットです。本ビットは初期値 "0" です。 < 注意事項 > 0 汎用ポートとして動作します。(初期値) 1 アウトプットコンペア端子出力になります。 OTE1: アウトプットコンペア 1(OUT1) に対応 OTE0: アウトプットコンペア 0(OUT0) に対応 [bit9, bit8]OTD1, OTD0 アウトプットコンペアの端子出力を許可した場合の端子出力レベルを変更するときに 使用します。コンペア端子出力の初期値は "0" となります。書込み時はコンペア動作 を停止してから行ってください。読出し時はアウトプットコンペア端子出力値が読み 出せます。 < 注意事項 > 0 コンペア端子出力を "0" にします(初期値) 1 コンペア端子出力を "1" にします OTD1: アウトプットコンペア 1 に対応 OTD0: アウトプットコンペア 0 に対応 [bit7, bit6]ICP1, ICP0 アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリーラン タイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1, ICE0) が許 可されているときに本ビットがセットされるとアウトプットコンペア割込みが発生し ます。本ビットは "0" 書込みによりクリアされ , "1" 書込みでは意味をもちません。リー ドモディファイ系命令では "1" が読み出せます。 < 注意事項 > 132 0 コンペア一致なし(初期値) 1 コンペア一致あり ICP1: アウトプットコンペア 1 に対応 ICP0: アウトプットコンペア 0 に対応 第 11 章 16 ビット入出力タイマ [bit5, bit4]ICE1, ICE0 アウトプットコンペアの割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP0, ICP1) がセットされるとアウトプットコンペア割込みが発生します。 < 注意事項 > 0 アウトプットコンペア割込み禁止(初期値) 1 アウトプットコンペア割込み許可 ICE1: アウトプットコンペア 1 に対応 ICE0: アウトプットコンペア 0 に対応 [bit3, bit2] 未使用ビット [bit1, bit0]CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。 0 コンペア動作禁止(初期値) 1 コンペア動作許可 コンペア動作許可をする前にコンペアレジスタ値を設定してください。 < 注意事項 > CST1: アウトプットコンペア 1 に対応 CST0: アウトプットコンペア 0 に対応 アウトプットコンペアは 16 ビットフリーランタイマのクロックと同期させているた め 16 ビットフリーランタイマを停止させるとコンペア動作も停止します。 133 第 11 章 16 ビット入出力タイマ 11.4.3 16 ビットアウトプットコンペアの動作 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ リーランタイマとの値を比較して一致したら割込み要求フラグをセットするととも に , 出力レベルを反転することができます。 ■ コンペアレジスタ 0, 1 を使用したときの出力波形例(出力の初期値は 0 とする) 図 11.4-2 コンペアレジスタ 0, 1 を使用したときの出力波形例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OUT0 OUT1 コンペア0割込み コンペア1割込み 2 組のコンペアレジスタを使い , 出力レベルを変えることができます(CMOD=1 の時) 。 ■ 2 組のコンペアレジスタによる出力波形例(出力の初期値は 0 とする) 図 11.4-3 2 組のコンペアレジスタによる出力波形例(出力の初期値は 0 とする) カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OUT0 OUT1 コンペア0割込み コンペア1割込み 134 コンペア0と 1に対応 第 11 章 16 ビット入出力タイマ ■ アウトプットコンペアのタイミング アウトプットコンペアは , フリーランタイマと設定したコンペアレジスタの値が一致 したときにコンペアマッチ信号が発生して出力値を反転するとともに割込みを発生す ることができます。コンペアマッチ時の出力反転タイミングはカウンタのカウントタ イミングに同期して行われます。 ● コンペアレジスタ書換え時のコンペア動作 コンペアレジスタ書換え時のカウンタ値とはコンペアしません。 カウンタ値 N+1 N N+2 N+3 一致信号は発生しない。 M コンペアレジスタ0値 N+1 コンペアレジスタ0ライト N+3 M コンペアレジスタ1値 コンペアレジスタ1ライト コンペア0停止 コンペア1停止 ● アウトプットコンペアの割込みタイミング φ N カウンタ値 N+1 N コンペアレジスタ値 コンペアマッチ 割込み ● アウトプットコンペアの出力端子変化タイミング カウンタ値 コンペアレジスタ値 N N+1 N N+1 N コンペアマッチ信号 端子出力 135 第 11 章 16 ビット入出力タイマ インプットキャプチャ 11.5 インプットキャプチャは外部から入力された信号の立上りエッジ , 立下りエッジま たは両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保 持する機能を持っています。また , エッジ検出時に割込みを発生することができま す。インプットキャプチャは , インプットキャプチャデータレジスタ , コントロール レジスタで構成されています。 ■ インプットキャプチャ 各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。 ● 外部入力の有効エッジを 3 種類から選択可能です。 • 立上りエッジ ( ↑ ) • 立下りエッジ ( ↓ ) • 両エッジ ( ↑↓ ) ● 外部入力の有効エッジを検出したときに割込みを発生することができます。 ■ インプットキャプチャのブロックダイヤグラム 図 11.5-1 に , インプットキャプチャのブロックダイヤグラムを示します。 図 11.5-1 インプットキャプチャの全体ブロックダイヤグラム キャプチャデータレジスタ0 バス 16ビットタイマカウンタ値 (T15~T00) キャプチャデータレジスタ1 ICP1 エッジ検出 IN0 EG11 EG10 EG01 EG00 エッジ検出 IN1 ICP0 ICE1 ICE0 割込み 割込み 136 第 11 章 16 ビット入出力タイマ 11.5.1 インプットキャプチャのレジスタ インプットキャプチャのレジスタは , 次の 2 つがあり , 対応した外部端子入力波形の 有効エッジを検出したとき 16 ビットフリーランタイマ値を保持するレジスタです (ワードアクセスしてください。書込みはできません)。 • インプットキャプチャデータレジスタ • インプットキャプチャコントロールレジスタ ■ インプットキャプチャデータレジスタ アドレス: 001921H 001923H アドレス: 001920H 001922H bit bit 15 14 13 12 11 10 9 8 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 R X R X R X R X R X R X R X R X 7 6 5 4 3 2 1 0 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 R X R X R X R X R X R X R X R X ←属性 ←初期値 IPCP0/IPCP1 ←属性 ←初期値 R : リードオンリ X : 不定値 ■ インプットキャプチャコントロールステータスレジスタ アドレス: bit 00005CH 7 6 5 4 3 2 1 0 ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 ICS01 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 ←属性 ←初期値 R/W : リード / ライト可能 [bit7, bit6] ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると本 ビットを "1" にセットします。割込み許可ビット (ICE0, ICE1) がセットされていると有 効エッジを検出することにより割込みを発生することができます。 本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リード モディファイライト系命令では "1" が読み出せます。 < 注意事項 > 0 有効エッジ検出なし(初期値) 1 有効エッジ検出あり ICP0: インプットキャプチャ 0 に対応 ICP1: インプットキャプチャ 1 に対応 137 第 11 章 16 ビット入出力タイマ [bit5, bit4] ICE1, ICE0 インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP0, ICP1) がセットされるとインプットキャプチャ割込みが発生します。 < 注意事項 > 0 割込み禁止(初期値) 1 割込み許可 ICE0: インプットキャプチャ 0 に対応 ICE1: インプットキャプチャ 1 に対応 [bit3 ∼ bit0] EG11, EG10, EG01, EG00 外部入力の有効エッジ極性を指定します。インプットキャプチャ動作許可も兼用して います。 < 注意事項 > 138 EG11 EG01 EG10 EG00 0 0 エッジ検出なし ( 停止状態 ) ( 初期値 ) 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑↓ エッジ検出極性 EG01, EG00: インプットキャプチャ 0 に対応 EG11, EG10: インプットキャプチャ 1 に対応 第 11 章 16 ビット入出力タイマ 16 ビットインプットキャプチャの動作 11.5.2 16 ビットインプットキャプチャは設定された有効エッジを検出すると 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することとが できます。 ■ インプットキャプチャの取り込みタイミング例 • キャプチャ 0= 立上りエッジ • キャプチャ 1= 立下りエッジ • キャプチャ例 = 両エッジ(例として) 図 11.5-2 インプットキャプチャの取り込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット IN0 IN1 IN例 キャプチャ0 不定 キャプチャ1 不定 キャプチャ例 不定 3FFFH 7FFF H BFFFH 3FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ例割込み ■ インプットキャプチャ入力タイミング ● 入力信号に対するキャプチャタイミング マシンクロック(φ) カウンタ値 インプットキャプチャ 入力 N N+1 有効エッジ キャプチャ信号 キャプチャレジスタ N+1 割込み 139 第 11 章 16 ビット入出力タイマ 140 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 16 ビットリロードタイマ(イベントカウント機能 付)の機能と動作について説明します。 12.1 16 ビットリロードタイマ(イベントカウント機能付) の概要 12.2 16 ビットリロードタイマのレジスタ 12.3 16 ビットリロードタイマの内部クロック動作と外部ク ロック動作 12.4 16 ビットリロードタイマのアンダフロー動作 12.5 16 ビットリロードタイマの出力端子機能 12.6 カウンタの動作状態 141 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 12.1 16 ビットリロードタイマ(イベントカウント機能付) の概要 16 ビットリロードタイマ 1 は , 16bit のダウンカウンタ , 16bit のリロードレジスタ , 入力端子 1 本 (TIN), 出力端子 1 本 (TOT), コントロールレジスタで構成されていま す。入力クロックとして内部クロック 3 種類と外部クロックを選択できます。 ■ 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 出力端子 (TOT) には , リロードモード時にはトグル出力波形を出力し , ワンショット モード時にはカウント中を示す矩形波を出力します。入力端子 (TIN) は , イベントカウ ントモード時にイベント入力となり , 内部クロックモード時にはトリガ入力または , ゲート入力に使用することができます。 MB90595 シリーズの 16 ビットリロードタイマは 2 つです。 ■ インテリジェント I/O サービス (EI2OS) 機能と割込み 本タイマは EI2OS 対応の回路を有しています。このため , 本タイマのアンダフローに より EI2OS を起動させることができます。本製品では , 2 つのタイマすべてで EI2OS で 使用することができます。 142 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) ■ 16 ビットリロードタイマのブロックダイヤグラム 図 12.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 図 12.1-1 16 ビットリロードタイマのブロックダイヤグラム 16 / 16ビットリロードレジスタ / 8 リロード RELD 16ビットダウンカウンタ / 16 OUTL 2 / F2MC-16BUS OUTE OUT CTL. GATE クロックセレクタ UF CSL1 EXCK φ φ φ 21 23 25 CSL0 ポート(TIN) IN CTL プリスケーラ クリア 出力許可 /3 MOD2 MOD1 周辺クロック IRQ CNTE クリア EI 2 OS CLR TRG リトリガ / 2 / INTE MOD0 ポート(TOT) UARTボーレート(ch.0) A/DC(ch.1) 3 143 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 12.2 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタには , 次の 2 種類があります。 • タイマコントロールステータスレジスタ (TMCSR) • 16 ビットタイマレジスタ /16 ビットリロードレジスタ (TMR/TMRLR) ■ 16 ビットリロードタイマのレジスタ タイマコントロールステータスレジスタ上位 アドレス:ch.0 ch.1 ⎫ 000051H ⎬ 000055H ⎭ リード/ライト 初期値 bit 15 000050H ⎫ 000054H ⎬ ⎭ リード/ライト 初期値 16ビットタイマレジスタ上位/ 16ビットリロードレジスタ上位 アドレス:ch.0 000053H ⎫ ch.1 000057H ⎬ ⎭ リード/ライト 初期値 16ビットタイマレジスタ下位/ 16ビットリロードレジスタ下位 アドレス:ch.0 000052H ⎫ 000056 H ⎬ H ch1ch.1 00003E ⎭ リード/ライト 初期値 R/W:リード/ライト可能 X :不定値 - :未定義 144 13 12 11 10 8 9 ― ― ― ― CSL1 CSL0 MOD2 MOD1 ― ― ― ― ― ― ― ― (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit タイマコントロールステータスレジスタ下位 アドレス:ch.0 ch.1 14 7 6 5 4 3 2 1 0 MOD0 OUTE OUTL RELD INTE UF CNTE TRG (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit 15 14 13 12 11 10 9 8 (R/W) (X) bit (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 (R/W) (X) TMCSR (R/W) (X) 2 1 0 TMR/ TMRLR (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 12.2.1 タイマコントロールステータスレジスタ (TMCSR) 16 ビットタイマの動作モード , および割込みの制御をします。UF, CNTE, TRG ビッ ト以外のビットの書換えは , CNTE=0 のときに行うようにしてください。 ■ タイマコントロールステータスレジスタ (TMCSR) の配置 タイマコントロールステータスレジスタ上位 アドレス:ch.0 000051H ⎫ ⎬ ch1 H H ch.1 00003D 000055 ⎭ リード/ライト 初期値 タイマコントロールステータスレジスタ下位 アドレス:ch.0 000050H ⎫ ⎬ ch1 H H ch.1 00003C 000054 ⎭ リード/ライト 初期値 bit 15 14 13 12 11 10 9 8 ― ― ― ― CSL1 CSL0 MOD2 MOD1 ― ― ― ― ― ― ― ― (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit 7 6 5 4 3 2 1 0 MOD0 OUTE OUTL RELD INTE UF CNTE TRG (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) TMCSR R/W:リード/ライト可能 - :未定義 ● タイマコントロールステータスレジスタ (TMCSR) の内容 [bit11, bit10]CSL1, CSL0 (Clock SeLect1, 0) 表 12.2-1 に , カウントクロックセレクトビットです。選択されるクロックソースを示 します。 表 12.2-1 CSL ビット設定クロックソース クロックソース (マシンサイクル φ =16MHz) CSL1 CSL0 0 0 φ /21 (0.125 µ s) 0 1 φ /23 (0.5 µ s) 1 0 φ /25 (2.0 µ s) 1 1 外部イベントカウントモード 145 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) [bit9 ∼ bit7]MOD2 ∼ MOD0 動作モードおよび , 入出力端子の機能を設定するビットです。 MOD2 ビットは , 入出力の機能を選択するビットです。"0" の場合 , 入力端子はトリガ 入力端子となり , 有効エッジが入力されるとリロードレジスタの内容をカウンタへ ロードし , カウント動作を継続します。"1" の場合 , ゲートカウンタモードになり , 入 力端子はゲート入力となり , 有効レベルが入力されている間のみカウントをします。 MOD1, MOD0 ビットは , 各モードにおける端子の機能の設定を行います。表 12.2-2 お よび表 12.2-3 に , MOD2 ∼ MOD0 ビットの設定を 示します。 表 12.2-2 MOD2 ∼ MOD0 ビットの設定方法 (1) MOD2 MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 0 トリガ禁止 ― 0 0 1 トリガ入力 立上りエッジ 0 1 0 ↑ 立下りエッジ 0 1 1 ↑ 両エッジ 1 × 0 ゲート入力 "L" レベル 1 × 1 ↑ "H" レベル 内部クロックモード時 (CSL0, CSL1=00, 01, 10) 表 12.2-3 MOD2 ∼ MOD0 ビットの設定方法 (2) MOD2 × MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 ― ― 0 1 トリガ入力 立上りエッジ 1 0 ↑ 立下りエッジ 1 1 ↑ 両エッジ • イベントカウントモード時 (CSL0, CSL1=11) • 表中の×は , 任意の値 [bit6]OUTE 出力許可ビットです。"0" のとき TOT 端子は汎用ポートになり , "1" のとき TOT 端子 はタイマ出力端子になります。出力波形はリロードモード時トグル出力となり , ワン ショットモード時はカウンタ中を示す矩形波出力になります。 146 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) [bit5]OUTL TOT 端子の出力レベルを設定するビットです。 表 12.2-4 OUTE, RELD, OUTL の設定方法 OUTE RELD OUTL 0 × × 汎用ポート 1 0 0 カウント中 "H" の矩形波 1 0 1 カウント中 "L" の矩形波 1 1 0 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 [bit4]RELD (REloaD) リロード動作を許可するビットです。"1" のときはリロードモードになり , カウンタの 値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへ ロードしてカウント動作を続けます。"0" のときは単発動作モードとなり , カウンタの 値が 0000H → FFFFH へのアンダフローによりカウント動作を停止します。 [bit3]INTE (INTerrupt Enable) タイマ割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を 発生します。"0" のときは UF ビットが "1" であっても割込み要求を発生しません。 [bit2]UF (UnderFlow) タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフローに より "1" にセットされます。"0" の書込みまたはインテリジェント I/O サービスによっ てクリアされます。このビットへの "1" 書込みは , 意味がありません。リードモディ ファイライト系命令における読出し時には , "1" が読み出されます。 [bit1]CNTE (CouNT enable) タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動トリ ガ待ち状態になります。"0" 書込みによりカウント動作は停止します。 [bit0]TRG (Trigger) ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。"0" 書込み 動作は , 意味を持ちません。読出し値は , 常に "0" です。このレジスタによるトリガ 入力は , CNTE=1 のときのみ有効となります。CNTE=0 のときには , なにもおこりま せん。 147 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 12.2.2 16 ビットタイマレジスタ (TMR) /16 ビットリロード レジスタ (TMRLR) のレジスタ配置 ○ TMR 内容(リード時) 16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定 です。このレジスタの読出しは , 必ずワード転送命令で行ってください。 ○ TMRLR 内容(ライト時) 16 ビットリロードレジスタは , カウントの初期値を保持しておくレジスタです。初 期値は不定です。このレジスタへの書込みは , 必ずワード転送命令で行ってくださ い。 ■ 16 ビットタイマレジスタ (TMR) /16 ビットリロードレジスタ (TMRLR) のレジスタ 配置 16ビットタイマレジスタ上位/ 16ビットリロードレジスタ上位 アドレス:ch.0 000053H ch1 H H ch.1 00003F 000057 bit (R/W) (X) R/W:リード/ライト可能 X :不定値 148 (R/W) (X) bit 16ビットタイマレジスタ下位/ 16ビットリロードレジスタ下位 リード/ライト 初期値 14 13 12 11 10 9 8 ⎫ ⎬ ⎭ リード/ライト 初期値 アドレス:ch.0 000052H ch1 H H ch.1 00003E 000056 15 (R/W) (X) 7 (R/W) (X) 6 (R/W) (X) 5 (R/W) (X) 4 (R/W) (X) 3 (R/W) (X) 2 1 ⎫ ⎬ ⎭ 0 TMR/ TMRLR (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 12.3 16 ビットリロードタイマの内部クロック動作と外部ク ロック動作 内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマ シンクロックの 21, 23, 25 分周のクロックから選択することができます。外部入力端 子は , レジスタの設定により , トリガ入力またはゲート入力にすることができます。 外部クロックをセレクトすると TIN 端子は , 外部イベント入力端子となりレジスタ で設定された有効エッジをカウントします。 ■ 16 ビットリロードタイマの内部クロック動作 カウント許可と同時にカウント動作を開始したい場合は , コントロールレジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビットによるト リガ入力は , タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に有効で す。 図 12.3-1 に , カウンタの起動およびカウンタの動作について示します。カウンタス タートのトリガが入力されてからリロードレジスタのデータがカウンタへロードされ るまでに , T(T: マシンサイクル)の時間がかかります。 図 12.3-1 16 ビットリロードタイマのカウンタの起動および動作 カウントクロック リロードデータ カウンタ -1 -1 -1 データロード CNTE (ビット) TRG (ビット) T ■ 16 ビットリロードタイマの入力端子機能(内部クロックモード時) クロックソースとして , 内部クロックを選択した場合 , TIN 端子はトリガ入力または ゲート入力として使用することができます。トリガ入力として使用した場合, 有効エッ ジが入力されるとリロードレジスタの内容をカウンタにロードして , 内部プリスケー ラをクリアした後 , カウント動作を開始します。 TIN は , 2・T(T はマシンサイクル)以上のパルスを入力してください。図 12.3-2 に , トリガ入力の動作を示します。 149 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 図 12.3-2 16 ビットリロードタイマのトリガ入力の動作 カウントクロック 立上りエッジ検出時 TIN プリスケーラクリア カウンタ リロードデータ C000H -1 -1 -1 ロード 2T2.5T ゲート入力として使用する場合 , コントロールレジスタの MOD0 ビットにより設定さ れる有効レベルが , TIN 端子から入力されている間のみカウントをします。この時カ ウントクロックは , 止まらずに動き続けます。ゲートモード時のソフトウェアトリガ は , ゲートレベルに関わらず可能です。TIN 端子のパルス幅は , 2・T(T はマシンサ イクル)以上にしてください。図 12.3-3 に , ゲート入力の動作を示します。 図 12.3-3 16 ビットリロードタイマのゲート入力の動作 カウントクロック MOD0= 1 とした場合(入力"H"の間カウント) TIN カウンタ -1 -1 -1 ■ 外部イベントカウント 外部クロックをセレクトすると TIN 端子は , 外部イベント入力端子となりレジスタで 設定された有効エッジをカウントします。TIN 端子のパルス幅は , 4・T(T はマシン サイクル)以上にしてください。 150 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 12.4 16 ビットリロードタイマのアンダフロー動作 16 ビットリロードタイマにより , カウンタ値が 0000H から FFFFH に変化したとき にアンダフローが定義されますので , ( リロードレジスタ設定 +1) カウントの後でア ンダフローが生じます。 ■ 16 ビットリロードタイマのアンダフロー動作 アンダフロー発生時 , コントロールレジスタの RELD ビットが "1" のときリロードレ ジスタの内容をカウンタへロードしてカウント動作を継続し , "0" のときカウンタを FFFFH で停止させます。 アンダフローが発生すると , コントロールレジスタの UF ビットをセットし , このと きに INTE ビットが "1" であると割込み要求を発生します。 図 12.4-1 に , アンダフロー発生時の動作を示します。 図 12.4-1 16 ビットリロードタイマのアンダフロー動作 カウントクロック カウンタ 0000H リロードデータ -1 -1 -1 データロード アンダフローセット [RELD=1] カウントクロック カウンタ 0000H FFFFH アンダフローセット [RELD=0] 151 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 16 ビットリロードタイマの出力端子機能 12.5 TOT 端子はリロードモード時には , アンダフローにより反転するトグル出力として , ワンショットモード時には , カウント中を示すパルス出力として機能します。 ■ 16 ビットリロードタイマの出力端子機能 16 ビットリロードタイマの出力極性は , レジスタの OUTL ビットにより設定でき OUTL=0 のときトグル出力は , 初期値が "0" で , ワンショットパルス出力は , カウント 中 "1" を出力します。OUTL=1 にすると出力波形は , 反転します。図 12.5-1 と図 12.5-2 に , 出力端子機能を示します。 図 12.5-1 16 ビットリロードタイマの出力端子機能 (1) カウント開始 アンダフロー TOT OUTL=1のときは反転 汎用ポート CNTE 起動トリガ [RELD=1, OUTL=0] 図 12.5-2 16 ビットリロードタイマの出力端子機能 (2) アンダフロー TOT OUTL=1のときは反転 汎用ポート CNTE 起動トリガ 起動トリガ待ち状態 [RELD=0, OUTL=0] 152 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) カウンタの動作状態 12.6 カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号 によって決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ), CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE=1, WAIT=0 の 動作状態 (RUN 状態 ) があります。 ■ カウンタの動作状態 図 12.6-1 に , 各状態の遷移を示します。 図 12.6-1 カウンタの状態遷移 リセット ハードウェアによる状態遷移 STOP CNTE=0, WAIT=1 レジスタアクセスによる状態遷移 TIN:入力禁止 TOT:汎用ポート カウンタ:停止時の値を保持 リセット直後は不定 CNTE=0 CNTE=0 CNTE=1 TRG=1 CNTE=1 TRG=0 WAIT RUN CNTE=1, WAIT=1 CNTE=1, WAIT=0 TIN:トリガのみ有効 TIN:TINとして機能 TOT:初期値出力 TOT:TOTとして機能 カウンタ:停止時の値を保持 リセット直後ロードする までは不定 RELD·UF カウンタ:動作 TRG=1,TRG=1 RELD·UF LOAD CNTE=1, WAIT=0 ロード終了 リロードレジスタの内容を カウンタへロード 153 第 12 章 16 ビットリロードタイマ (イベントカウント機能付) 154 第 13 章 8/16 ビット PPG 8/16 ビット PPG の機能と概要について説明しま す。 13.1 8/16 ビット PPG の概要 13.2 8/16 ビット PPG のブロックダイヤグラム 13.3 8/16 ビット PPG のレジスタ 13.4 8/16 ビット PPG の動作 13.5 8/16 ビット PPG のカウントクロックの選択 13.6 8/16 ビット PPG のパルスの端子出力の制御 13.7 8/16 ビット PPG の割込み 13.8 8/16 ビット PPG の各ハードウェアの初期値 155 第 13 章 8/16 ビット PPG 13.1 8/16 ビット PPG の概要 8/16 ビット PPG は , ハードウェアとして , 8bit ダウンカウンタ 2 個 , 8bit リロード レジスタ 4 個 , 16bit 制御レジスタ 1 個 , 外部パルス出力端子 2 本 , 割込み出力 2 本 を有し , これらにより以下の機能を実現します。 ■ 8/16 ビット PPG の機能 ● 8 ビット PPG 出力 2ch 独立動作モード 2ch の独立した PPG 出力動作が可能です。 ● 16 ビット PPG 出力動作モード 1ch の 16bit の PPG 出力動作が可能です。 ● 8+8 ビット PPG 出力動作モード ch.0 の出力を ch.1 のクロック入力とすることにより , 任意周期の 8bit PPG 出力動作が 可能です。 ● PPG 出力動作 任意周期・デューティ比のパルス波を出力します。外付け回路により D/A コンバータ としても使用可能です。 MB90595 シリーズには 6 本の PPG があります。次節では PPG0/1 の機能についてのみ 記述します。残りの PPG も同じ機能を持ち , レジスタアドレスについては I/O マップ に記しています。ch.0 の PPG の出力信号は , どの外部端子にも接続されていません。 156 第 13 章 8/16 ビット PPG 13.2 8/16 ビット PPG のブロックダイヤグラム 図 13.2-1 に , 8/16 ビット PPG(ch.0) のブロックダイヤグラムを , 図 13.2-2 に , 8/16 ビット PPG(ch.1) のブロックダイヤグラムを示します。 ■ 8/16 ビット PPG のブロックダイヤグラム 図 13.2-1 8 ビット PPG (ch.0) のブロックダイヤグラム PPG00出力許可 PPG00 周辺クロック16分周 周辺クロック8分周 周辺クロック4分周 周辺クロック2分周 周辺クロック MB90595シリーズでは,この信号は 外部端子には接続していません。 PPG0 出力ラッチ 反転 クリア PEN0 カウント クロック選択 S R Q PCNT (ダウンカウンタ) IRQ リロード タイムベースカウンタの出力 メインクロックの512分周 L/Hセレクト MB90595シリーズでは,このIRQ信号 はOR論理によりチャネル1のIRQ信号 とマージされます。 ch.1-ボロー L/Hセレクタ PRLL0 PRLBH0 PIE0 PRLH0 PUF0 L側データバス H側データバス PPGC0 (動作モード制御) 157 第 13 章 8/16 ビット PPG 図 13.2-2 8 ビット PPG (ch.1) のブロックダイヤグラム PPG10 出力端子 PPG10 周辺クロック 16分周 周辺クロック 8分周 周辺クロック 4分周 周辺クロック 2分周 周辺クロック MB90595 シリーズでは,この端子は 「PPG0」外部端子に接続しています。 PPG1 出力ラッチ 反転 カウントクロック 選択 ch.0-ボロー タイムベースカウンタ出力 メインクロック512分周 L/H セレクト クリア PEN1 MB90595 シリーズでは,このIRQ信号 は,OR論理によりチャネル0のIRQ 信号とマージされます。 S R Q PCNT (ダウンカウンタ) IRQ リロード L/H セレクタ PRLL1 PRLBH1 PIE1 PRLH1 PUF1 L側データバス H側データバス PPGC1 (動作モード制御) 図 13.2-3 PPG モジュールと外部端子の関係 PPG0 PPG2,PPG3 PPG1 PPG4,PPG5 PPG2 PPG6,PPG7 PPG3 PPG8,PPG9 PPG4 PPGA,PPGB PPG5 ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ 158 PPG0,PPG1 外部端子 第 13 章 8/16 ビット PPG 13.3 8/16 ビット PPG のレジスタ 8/16 ビット PPG のレジスタには , 次の 5 つがあります。 • PPG0 動作モード制御レジスタ • PPG1 動作モード制御レジスタ • PPG0, PPG1 出力端子制御レジスタ • リロードレジスタ H • リロードレジスタ L ■ 8/16 ビット PPG のレジスタ PPG0動作モード制御レジスタ アドレス:ch.0 000038H 7 6 5 4 3 2 1 0 PEN0 ― PE00 PIE0 PUF0 ― ― 予約 (R/W) (0) (-) (-) (R/W) (0) (R/W) (0) (R/W) (0) (-) (-) (-) (-) (W) (1) bit PPGC0 リード/ライト 初期値 PPG1動作モード制御レジスタ アドレス:ch.0 000039H bit 15 14 13 12 11 10 9 8 PEN1 ― PE10 PIE1 PUF1 MD1 MD0 予約 (R/W) (0) (-) (-) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) 6 5 4 3 2 1 0 PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 ― ― (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (-) (-) (-) (-) PPGC1 リード/ライト 初期値 PPG0,1出力端子制御レジスタ アドレス:ch.0,ch.1 00003AH bit 7 PPG01 リード/ライト 初期値 リロードレジスタH bit 15 14 13 12 11 10 9 8 アドレス:ch.0 001901H ch.1 001903H リード/ライト 初期値 リロードレジスタL PRLH (R/W) (X) bit (R/W) (X) 7 (R/W) (X) 6 (R/W) (X) 5 (R/W) (X) 4 (R/W) (X) 3 (R/W) (X) 2 (R/W) (X) 1 アドレス:ch.0 001900H ch.1 001902H リード/ライト 初期値 R/W:リード/ライト可能 W :ライトオンリ X :不定値 0 PRLL (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 159 第 13 章 8/16 ビット PPG 13.3.1 PPG0 動作モード制御レジスタ (PPGC0) 動作モード制御レジスタ (PPGC0) は , 8/16 ビット PPG の動作モードの選択 , 端子 出力制御 , カウントクロック選択 , トリガの制御を行う 5bit の制御レジスタです。 ■ PPG0 動作モード制御レジスタ (PPGC0) PPG0動作モード制御レジスタ アドレス:ch.0,000038H bit 7 リード/ライト 初期値 6 5 4 3 2 1 0 PEN0 ― PE00 PIE0 PUF0 ― ― 予約 (R/W) (0) (-) (-) (R/W) (0) (R/W) (0) (R/W) (0) (-) (-) (-) (-) (W) (1) PPGC0 R/W:リード/ライト可能 W :ライトオンリ [bit7]PEN0 (PPG ENable): 動作許可ビット PPG の動作開始および動作モードを以下の様に選択します。 PEN0 動作状態 0 動作停止("L" レベル出力保持) 1 PPG 動作イネーブル 本ビットに "1" を書き込むことで , PPG はカウントを開始します。 リセットにより , 本ビットは "0" に初期化されます。リード / ライトが可能です。 [bit5]PE00 (PPG output Enable 00):PPG00 端子出力許可ビット パルス出力外部端子 PPG00 を以下の様に制御します。 0 汎用ポート端子(パルス出力禁止) 1 PPG00= パルス出力端子(パルス出力許可) リセットにより , 本ビットは "0" に初期化されます。本ビットは , リード / ライトが可 能です。 MB90595 シリーズについては , 本ビットを常に "0" に設定する必要があります。 [bit4]PIE0 (PPG Interrupt Enable):PPG の割込み許可ビット PPG の割込み許可を以下の様に制御します。 0 割込み禁止 1 割込み許可 本ビットが "1" のとき , PUF0 が "1" になると割込み要求を発生します。本ビットが "0" のときは割込み要求を発生しません。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , リード / ライトが可 能です。 160 第 13 章 8/16 ビット PPG [bit3]PUF0 (PPG Underflow Flag):PPG カウンタアンダフロービット PPG のカウンタアンダフロービットを以下のように制御します。 0 PPG のカウンタアンダフローが検出していません 1 PPG のカウンタアンダフローを検出しました 8 ビット PPG 2ch モードおよび 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 のカウンタの値が 00H ∼ FFH へなったときのアンダフローにより "1" にセットさ れます。16 ビット PPG 1ch モードのときには , ch.1/ch.0 のカウンタの値が 0000H ∼ FFFFH へなったときのアンダフローにより "1" にセットされます。"0" の書込みにより "0" に なります。このビットへの "1" 書込みは , 意味がありません。リードモディファイライ トのリード時には "1" が読み出せます。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , リード / ライトが可 能です。 [bit0] 予約 : 予約ビット 予約ビットです。PPGC0 を設定するときは必ず "1" に設定してください。 161 第 13 章 8/16 ビット PPG 13.3.2 PPG1 動作モード制御レジスタ (PPGC1) PPG1 動作モード制御レジスタ (PPGC1) は , 8/16 ビット PPG の動作モードの選択 , 端子出力制御 , カウントクロック選択 , トリガの制御を行う 7bit の制御レジスタで す。 ■ PPG1 動作モード制御レジスタ (PPGC1) PPG1動作モード制御レジスタ bit 15 アドレス:ch.1 000039H リード/ライト 初期値 R/W:リード/ライト可能 W :ライトオンリ 14 13 12 11 10 9 8 PEN1 ― PE10 PIE1 PUF1 MD1 MD0 予約 (R/W) (0) (-) (-) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) PPGC1 [bit15]PEN1(PPG ENable): 動作許可ビット PPG の動作開始および動作モードを以下のように選択します。 PEN1 動作状態 0 動作停止("L" レベル出力保持) 1 PPG 動作イネーブル 本ビットに "1" を書き込むことで PWM はカウントを開始します。 リセットにより , 本ビットは "0" に初期化されます。リード / ライトが可能です。 [bit13]PE10 (PPG output Enable 10):PPG10 端子出力許可ビット パルス出力外部端子 PPG10 を以下のように制御します。 0 汎用ポート端子(パルス出力禁止) 1 PPG10= パルス出力端子(パルス出力許可) リセットにより , 本ビットは "0" に初期化されます。本ビットは , リード / ライトが可 能です。 MB90595 シリーズについては , パルス信号は「PPG0」外部端子に出力されます。 162 第 13 章 8/16 ビット PPG [bit12]PIE1 (PPG Interrupt Enable):PPG の割込み許可ビット PPG の割込み許可を以下のように制御します。 0 割込み禁止 1 割込み許可 本ビットが "1" のとき , PUF1 が "1" になると割込み要求を発生します。本ビットが "0" のときは割込み要求を発生しません。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , リード / ライトが可 能です。 [bit11]PUF1 (PPG Underflow Flag):PPG カウンタアンダフロービット PPG のカウンタアンダフロービットを以下のように制御します。 0 PPG のカウンタアンダフローを検出していません 1 PPG のカウンタアンダフローを検出しました 8 ビット PPG 2ch モードおよび 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.1 のカウンタの値が 00H ∼ FFH へなったときのアンダフローにより "1" にセットさ れます。16 ビット PPG 1ch モードのときには , ch.1/ch.0 のカウンタの値が 0000H ∼ FFFFH へなったときのアンダフローにより "1" にセットされます。"0" の書込みにより "0" に なります。このビットへの "1" 書込みは , 意味がありません。リードモディファイライ トのリード時には "1" が読み出されます。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , リード / ライトが可 能です。 163 第 13 章 8/16 ビット PPG [bit10, bit9]MD1, MD0 (PPG count MoDe): 動作モード選択ビット PPG タイマの動作モードを以下のように選択します。 MD1 MD0 0 0 8 ビット PPG2ch 独立モード 0 1 8 ビットプリスケーラ +8 ビット PPG1ch モード 1 0 予約(設定禁止) 1 1 16 ビット PPG1ch モード 動作モード リセットにより , 本ビットは "00" に初期化されます。本ビットは , リード / ライトが可 能です。 < 注意事項 > • ビットを "10" に設定しないでください。 • ビットを "01" に設定する場合には , PPGC0 の PEN0 ビット /PPGC1 の PEN1 ビッ トを "01" に設定しないでください。また , PEN0 ビットおよび PEN1 ビットを同 時に "11" または "00" にセットすることを推奨します。 • ビットを "11" に設定する場合には , PPGC0/PPGC1 をワード転送で書換え , PEN0 ビットおよび PEN1 ビットを同時に "11" または "00" にセットしてください。 [bit8] 予約 : 予約ビット 予約ビットです。PPGC1 を設定するときは必ず "1" に設定してください。 164 第 13 章 8/16 ビット PPG PPG0, PPG1 出力端子制御レジスタ (PPG01) 13.3.3 PPG0, PPG1 出力端子制御レジスタ (PPG01) は , 8/16 ビット PPG の端子出力の制 御を行う 8bit の制御レジスタです。 ■ PPG0, PPG1 出力端子制御レジスタ (PPG01) PPG0,1出力制御レジスタ アドレス: ch.0,ch.1 00003AH 7 6 5 4 3 2 1 0 PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 ― ― (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (-) (-) (-) (-) bit リード/ライト 初期値 R/W:リード/ライト可能 PPG01 [bit7 ∼ bit5]PCS2 ∼ PCS0 (PPG Count Select): カウントクロック選択ビット ch.1 のダウンカウンタの動作クロックを , 次のように選択します。 PCS2 PCS1 PCS0 0 0 0 周辺クロック(62.5ns マシンクロック 16MHz 時) 0 0 1 周辺クロック /2(125ns マシンクロック 16MHz 時) 0 1 0 周辺クロック /4(250ns マシンクロック 16MHz 時) 0 1 1 周辺クロック /8(500ns マシンクロック 16MHz 時) 1 0 0 周辺クロック /16(1 µ s マシンクロック 16MHz 時) 1 1 1 タイムベースカウンタからの入力クロック(128 µ s 原発振 4MHz 時) 動作モード リセットにより本ビットは "000" に初期化されます。本ビットは , リード / ライトが可 能です。 < 注意事項 > 8 ビットプリスケーラ +8 ビット PPG モードおよび 16 ビット PPG モードのときに は , ch.1 の PPG は , ch.0 からカウントクロックを受けて動作するため , PCS2 ∼ PCS0 ビットの指定は , 無効になります。 [bit4 ∼ bit2]PCM2 ∼ PCM0 (PPG Count Mode): カウントクロック選択ビット ch.0 のダウンカウンタの動作クロックを , 次のように選択します。 PCM2 PCM1 PCM0 0 0 0 周辺クロック(62.5ns マシンクロック 16MHz 時) 0 0 1 周辺クロック /2(125ns マシンクロック 16MHz 時) 0 1 0 周辺クロック /4(250ns マシンクロック 16MHz 時) 0 1 1 周辺クロック /8(500ns マシンクロック 16MHz 時) 1 0 0 周辺クロック /16(1 µ s マシンクロック 16MHz 時) 1 1 1 タイムベースカウンタからの入力クロック(128 µ s 原発振 4MHz 時) 動作モード リセットにより本ビットは "000" に初期化されます。本ビットは , リード / ライトが可 能です。 165 第 13 章 8/16 ビット PPG 13.3.4 リロードレジスタ (PRLL, PRLH) リロードレジスタ (PRLL, PRLH) は , ダウンカウンタ PCNT へのリロード値を保持 する , 各 8bit のレジスタです。PRLL, PRLH レジスタは , どちらもリード / ライト が可能です。 ■ リロードレジスタ (PRLL, PRLH) bit 15 リロードレジスタH 14 13 12 11 10 9 8 アドレス:ch.0 001901H ch.1 001903H リード/ライト 初期値 PRLH (R/W) (X) bit リロードレジスタL (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 アドレス:ch.0 001900H ch.1 001902H リード/ライト 初期値 R/W:リード/ライト可能 X :不定値 PRLL (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) レジスタ名 < 注意事項 > 166 0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 機能 PRLL L 側リロード値保持 PRLH H 側リロード値保持 8 ビットプリスケーラ +8 ビット PPG モードで使用する場合には , ch.0 の PRLL と PRLH に異なる値を設定すると , ch.1 の PPG 波形がサイクルごとに異なる場合があ るので , ch.0 の PRLL と PRLH は , 同じ値に設定することを推奨します。 第 13 章 8/16 ビット PPG 13.4 8/16 ビット PPG の動作 8/16 ビット PPG には , 8bit 長の PPG ユニットが 2ch あり , 2ch 独立モード以外に , 連結動作させることにより , 8 ビットプリスケーラ +8 ビット PPG モードと , 16 ビット PPG 1ch モードの計 3 種類の動作を行うことができます。 ■ 8/16 ビット PPG の動作 8bit 長の PPG ユニットそれぞれは , 8bit 長のリロードレジスタが L 側と H 側の 2 本あ ります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダウンカウンタ (PCNT) に L 側 /H 側交互にリロードされてカウントクロックごとにダウンカウントさ れ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反転させます。 この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した L 幅 /H 幅をもつパ ルス出力となります。 表 13.4-1 に , リロード動作とパルス出力の関係を示します。 表 13.4-1 リロード動作とパルス出力の関係 リロード動作 端子出力変化 PRLH → PCNT PPG00/01[0 → 1] 立上り PRLL → PCNT PPG00/01[1 → 0] 立下り また , PPGC0 中の bit4(PIE0) が "1" のときおよび PPGC1 中の bit12(PIE1) が "1" のとき , それぞれのカウンタの 00H ∼ FFH へのボロー (16 ビット PPG モードの場合には , 0000H ∼ FFFFH へのボロー)によって割込み要求が出力されます。 ■ 8/16 ビット PPG の動作モード 8/16 ビット PPG の動作モードには , 2ch 独立モードと , 8 ビットプリスケーラ +8 ビット PPG モードと , 16 ビット PPG 1ch モードの計 3 種類の動作モードがあります。 ● 2ch 独立モード 2ch 独立モードは , 8 ビット PPG として 2ch 独立に動作させる動作モードです。PPG00 端子は , ch.0 の PPG 出力が接続され , PPG10 端子は , ch.1 の PPG 出力が接続されます。 ● 8 ビットプリスケーラ +8 ビット PPG モード 8 ビットプリスケーラ +8 ビット PPG モードは , ch.0 を 8 ビットプリスケーラとして動 作させ , ch.1 を ch.0 のボロー出力でカウントすることにより , 任意周期の 8 ビット PPG 波形を出力できるようにする動作モードです。PPG00 端子は , ch.0 のプリスケーラ出力 が接続され , PPG10 端子は , ch.1 の PPG 出力が接続されます。 167 第 13 章 8/16 ビット PPG ● 16 ビット PPG 1ch モード 16 ビット PPG 1ch モードは , ch.0 と ch.1 を連結させて , 16 ビットの PPG として動作さ せる動作モードです。PPG00 端子と PPG10 端子は , 両方とも 16 ビット PPG 出力が接 続されます。 MB90595 シリーズについては , ch.0 の PPG からの出力信号は外部端子には接続してい ません。 ■ 8/16 ビット PPG の出力動作 8/16 ビット PPG は , ch.0 の PPG については , PPGC0 (PWM 動作モード制御)レジス タの bit7(PEN0) を , ch.1 の PPG については , PPGC1 レジスタの bit15(PEN1) を "1" に セットすることによって起動され , カウントを開始します。MB90595 シリーズについ ては , ch.0 の PPG からの出力信号は外部端子には接続していません。 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 を停止状態で , ch.1 を動 作状態に設定しないでください。 8/16 ビット PPG は , ch.0 の PPG については , PPGC0 (PWM 動作モード制御)レジス タの bit7(PEN0) を , ch.1 の PPG については , PPGC1 レジスタの bit15(PEN1) を "1" に セットすることによって起動され , カウントを開始します。動作を開始した後は , PPGC0 の bit7(PEN0) または PPGC1 の bit15(PEN1) に "0" を書き込むことによってカウ ント動作を停止し , 停止した後 , パルス出力は L レベルを保持します。 図 13.4-1 PPG 出力動作の出力波形 PEN PENにより動作開始(L側から) 出力端子 PPG T×(L+1) (スタート) 168 T×(H+1) L:PRLLの値 H:PRLHの値 T:周辺クロック(φ,φ/4,φ/16)または タイマベースカウンタからの入力 (PPGCのクロックセレクトによる) 第 13 章 8/16 ビット PPG ■ 8/16 ビット PPG のリロード値とパルス幅の関係 リロードレジスタに書かれた値に +1 した値に , カウントクロックの周期を掛けた値が , 出力されるパルスの幅となります。 8 ビット PPG 動作時のリロードレジスタ値が 00H のときおよび 16 ビット PPG 動作時 のリロードレジスタ値が 0000H のときは , カウントクロック 1 周期分のパルス幅をも つことになりますので注意してください。また , 8 ビット PPG 動作時のリロードレジ スタ値が FFH のとき , カウントクロック 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジスタ値が FFFFH のときは , カウントクロック 65536 周期分のパルス幅をもつことになりますので注意してください。 P1=T×(L+1) Ph=T×(H+1) L : H : T : Ph : Pl : PRLLの値 PRLHの値 入力クロック周期 ハイパルスの幅 ローパルスの幅 169 第 13 章 8/16 ビット PPG 13.5 8/16 ビット PPG のカウントクロックの選択 8/16 ビット PPG の動作に使用するカウントクロックは , 周辺クロックおよびタイム ベースカウンタの入力を使用しており , 6 種類のカウントクロック入力が選択できま す。 ■ 8/16 ビット PPG のカウントクロックの選択 PPG01 レジスタの bit4 ∼ bit2 (PCM2 ∼ PCM0) で ch.0 のクロックを , bit7 ∼ bit5 (PCS2 ∼ PCS0) で ch.1 のクロックを選択します。 クロックは , マシンクロックの 1/16 ∼ 1 倍の周辺クロックとタイムベースカウンタか らの入力クロックより選択できます。 しかし , 8 ビットプリスケーラ +8 ビット PPG モードまたは 16 ビット PPG モードのと きには , PCS2 ∼ PCS0 の設定は意味がありません。 タイムベースカウンタの入力を使用した場合 , トリガにより起動がかかる最初および ストップの後の最初のカウント周期がずれる可能性がありますので注意してくださ い。また , 本モジュール動作中にタイムベースカウンタのクリアを行うと周期がずれる ことがあります。 8 ビットプリスケーラ +8 ビット PPG モード・ch.0 が動作状態 , ch.1 が停止状態である ときに ch.1 の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意 してください。 170 第 13 章 8/16 ビット PPG 8/16 ビット PPG のパルスの端子出力の制御 13.6 本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG00/PPG10 よ り出力させることができます。 ■ 8/16 ビット PPG のパルスの端子出力の制御 端子出力許可ビット (PPGC0:PE00, PPGC1:PE10) が "0" のとき ( 初期値 ) は , パルス出力 は外部端子より出力されずに , 汎用ポートとして機能します。本ビットに "1" を設定す ると , パルス出力が外部端子より出力されます。 16 ビット PPG モードでは , PPG00, PPG10 は同じ波形が出力されるので , どちらの外部 端子出力を許可しても同じ出力を得ることができます。 8 ビットプリスケーラ +8 ビット PPG モードでは , PPG0 は 8 ビットプリスケーラのト グル波形が出力され , PPG10 は 8 ビット PPG の波形が出力されます。図 13.6-1 に , この モードのときの出力波形の例を示します。 MB90595 シリーズについては , ch.0 の PPG からの出力信号は外部端子には接続してい ません。 図 13.6-1 8+8PPG 出力動作の出力波形 Ph0 Pl0 PPG00 PPG10 Ph1 Pl0 = T×(L0+1) Ph0 = T×(L0+1) Pl1 = T×(L0+1)×(Ll+1) Ph1 = T×(L0+1)×(Hl+1) < 注意事項 > Pl1 L0 L1 H1 T Ph0 Pl0 Ph1 Pl1 : : : : : : : : ch.0のPRLLの値およびch.0のPRLH値 ch.1のPRLLの値 ch.1のPRLHの値 入力クロック周期 PPG00のハイパルスの幅 PPG00のローパルスの幅 PPG10のハイパルスの幅 PPG10のローパルスの幅 ch.0 の PRLL と ch.0 の PRLH は , 同じ値を設定することを推奨します。 171 第 13 章 8/16 ビット PPG 13.7 8/16 ビット PPG の割込み 8/16 ビット PPG の割込みは , リロード値がカウントアウトし , ボローが発生したと きにアクティブになります。 ■ 8/16 ビット PPG の割込み 8 ビット PPG 2ch モードおよび 8 ビットプリスケーラ +8 ビット PPG モードのときには , それぞれのカウンタのボローにより , それぞれの割込みの要求が行われますが , 16 ビッ ト PPG モードでは , 16 ビットカウンタのボローにより , PUF0 と PUF1 が同時にセット されます。このため , 割込み要因を一本化するために , PIE0 または PIE1 のどちらか一 方のみを許可にすることを推奨します。また , 割込み要因のクリアも PUF0 と PUF1 を 同時に行うことを推奨します。 172 第 13 章 8/16 ビット PPG 13.8 8/16 ビット PPG の各ハードウェアの初期値 8/16 ビット PPG の各ハードウェアは , リセット時に以下のように初期化されます。 ■ 8/16 ビット PPG の各ハードウェアの初期値 ● レジスタ • PPGC0 → 0X000001B • PPGC1 → 00000001B • PPG10 → XXXXXX00B ● パルス出力 • PPG00 → "L" • PPG10 → "L" • PE00 → PPG00 出力禁止 • PE10 → PPG10 出力禁止 ● 割込み要求 • IRQ0 → "L" • IRQ1 → "L" なお , 上記以外のハードウェアは初期化されません。 < 注意事項 > 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミング 16 ビット PPG モード以外のモードの場合には , リロードレジスタ (PRLL, PRLH) へ の書込みはワード転送命令を使用することを推奨します。なお , バイト転送命令 2 回 にて書き込んだ場合 , タイミングによっては , 予想しないパルス幅の出力が発生する 可能性がありますので注意してください。 図 13.8-1 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミングチャート PPG0 A B B C A B C C D D ① 図 13.8-1 のタイムチャートにおいて , ①のタイミングの前で PRLL を A から C に書き 換えて , ①の後 PRLH の値を B から D に書き換えた場合 , ①のタイミングでの PRL の 値は PRLL=C, PRLH=B のため 1 回だけ L 側のカウント数 C, H 側のカウント数 B のパ ルスが発生されます。 同様に , 16 ビット PPG モードで使用する場合には , ch.0 と ch.1 の PRL はロングワード 転送で書き込むか , または ch.0 → ch.1 の順にワード転送で書き込んでください。この モードのときには , ch.0 の PRL への書込みは , 一時的にテンポラリに書き込まれ , その 後 ch.1 の PRL に書込みを行った時点で , 実際に ch.0 の PRL への書込みが行われます。 173 第 13 章 8/16 ビット PPG なお , 16 ビット PPG モード以外では , ch.0 と ch.1 の PRL の書込みは独立して行うこと ができます。 図 13.8-2 PRL 書込み部分のブロックダイヤグラム ch.0のPRLの書込みデータ テンポラリラッチ 16ビットPPGモード以外の ときのch.0の書込み 16ビットPPGモード時ch.1の 書込みに同期して転送 ch.1の書込み ch.0 PRL 174 ch.1のPRLの書込みデータ ch.1 PRL 第 14 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明しま す。 14.1 DTP/ 外部割込みの概要 14.2 DTP/ 外部割込みのレジスタ 14.3 DTP/ 外部割込みの動作 14.4 DTP 要求と外部割込み要求の切換え 14.5 DTP/ 外部割込みの使用上の注意 175 第 14 章 DTP/ 外部割込み DTP/ 外部割込みの概要 14.1 DTP (Data Transfer Peripheral) はデバイス外部に存在するペリフェラルと F2MC16LX CPU との間にあって , 外部ペリフェラルが発生する DMA 要求あるいは割込み 要求を受け取り , これを F2MC-16LX CPU に伝えてインテリジェント I/O サービス あるいは割込み処理を起動させるための周辺です。 ■ DTP/ 外部割込みの概要 インテリジェント I/O 機能に関しては "H" または "L" 要求レベルを使用することがで きます。外部割込み要求に対しては 4 種類の要求レベルを使用することができます。 ("H", "L" の立上りエッジおよび立下りエッジ。) MB90595 シリーズでは , 外部バスインタフェースはサポートされていません。このた め DTP/ 外部割込みはデータ転送ペリフェラルの役割を果たすことはできません。それ は外部割込みとしてのみ使用することができます。 ■ DTP/ 外部割込みのブロックダイヤグラム 図 14.1-1 DTP/ 外部割込みのブロックダイヤグラム 8 割込み/DTP許可レジスタ 8 ゲート 8 エッジ検出回路 要因F/F 8 要求入力 割込み/DTP要因レジスタ 16 要求レベル設定レジスタ ■ DTP/ 外部割込みのレジスタ bit アドレス:000030H bit アドレス:000031H bit アドレス:000032H bit アドレス:000033H 176 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 割込み/DTP許可レジスタ (ENIR) 割込み/DTP要因レジスタ (EIRR) 要求レベル設定レジスタ (ELVR) 要求レベル設定レジスタ (ELVR) 第 14 章 DTP/ 外部割込み 14.2 DTP/ 外部割込みのレジスタ DTP/ 外部割込みのレジスタには , 次の 3 つがあります。 • 割込み /DTP 許可レジスタ (ENIR : Interrupt request enable register) • 割込み /DTP 要因レジスタ (EIRR : External interrupt request register) • 要求レベル設定レジスタ (ELVR : External level register) ■ 割込み /DTP 許可レジスタ (ENIR : Interrupt request enable register) 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 R/W R/W R/W R/W R/W R/W R/W R/W bit ENIR アドレス:000030H 初期値 00000000 B R/W : リード / ライト可能 割込み /DTP 許可レジスタ (ENIR) はデバイス端子を外部割込み /DTP 要求入力として 使用し , 割込みコントローラに対して要求を発生させる機能を動作させることを決定 するレジスタです。このレジスタの "1" を書かれたビットの対応する端子は外部割込 み /DTP 要求入力として使用され , 割込みコントローラに対して要求を発生する機能を 動作させます。"0" が書かれたビットの対応する端子は外部割込み /DTP 要求入力要因 は保持しますが , 割込みコントローラに対しては要求を発生しません。 ■ 割込み /DTP 要因レジスタ (EIRR : External interrupt request register) EIRR アドレス:000031H bit 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 R/W R/W R/W R/W R/W R/W R/W R/W ………(ただし両者で 対象が異なる) R/W : リード / ライト可能 初期値 XXXXXXXXB EIRR は , このレジスタの "1" となっているビットに対応する端子において外部割込み / DTP 要求が存在することを表します。このレジスタのビットに "0" を書き込むと対応 する要求フラグがクリアされます。"1" を書き込んでも効果はありません。リードモ ディファイライト命令によりこのレジスタからは常に "1" が読み出されます。 < 注意事項 > 複数の外部割込み要求出力が許可 (ENIR:EN7 ∼ EN0=1) されている場合 , CPU が割 込みを受け付けたビット (ER7 ∼ ER0 の "1" にセットされているビット ) だけを "0" にクリアするようにしてください。それ以外のビットを無条件にクリアすることは 避けてください。 177 第 14 章 DTP/ 外部割込み ■ 要求レベル設定レジスタ (ELVR : External level register) 図 14.2-1 LBx と LAx 端子の割込み要求検出要因 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 R/W R/W R/W R/W R/W 6 5 4 3 LA7 LB6 LA6 R/W R/W R/W bit アドレス:000032H R/W bit 7 LB7 アドレス:000033H R/W R/W R/W 2 1 0 LB5 LA5 LB4 LA4 R/W R/W R/W R/W 初期値 00000000B 初期値 00000000B R/W : リード / ライト可能 ELVR は外部端子における要求イベントを定義するものです。図 14.2-1 に示すように , 各端子には 2 ビットが割当てられます。入力レベルにより要求が検出されたとすれば , フラグがソフトウェアによりリセットされた後でも入力が指定されたレベルに在る限 り割込みフラグはセットされます。 表 14.2-1 178 LBx LAx 0 0 L レベルが端子に入力 0 1 H レベルが端子に入力 1 0 立上りエッジが端子に入力 1 1 立下りエッジが端子に入力 割込み要求検出要因 第 14 章 DTP/ 外部割込み 14.3 DTP/ 外部割込みの動作 割込みフラグがセットされたときにこのブロックは割込みコントローラへ割込み信 号を送ります。割込みコントローラ内で同時発生した割込みの優先順位を識別した 結果 , 本リソースからの割込みが最も優先順位が高かったときに , 割込みコントロー ラは F2MC-16LX CPU に対して割込み要求を発生します。F2MC-16LX CPU は自分 の内部にある CCR レジスタ中の ILM ビットと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の命令が終了し次第 , ハードウェア割込 み処理マイクロプログラムを起動します。 ■ 外部割込みの動作 図 14.3-1 に示すように , ハードウェア割込み処理マイクロプログラムにおいて , CPU は割込みコントローラからISE ビットの情報を読出し, これにより当該要求が割込み処 理であることを識別し , 割込み処理マイクロプログラムへ分岐します。割込み処理マイ クロプログラムでは割込みべクタ領域の読出しと割込みコントローラへの割込みアク ノリッジを発生し , ベクタから生成したマクロ命令のジャンプ先アドレスをプログラ ムカウンタへ転送した上で , ユーザの割込み処理プログラムの実行を行います。 図 14.3-1 外部割込みの動作 割込み/DTP F2MC-16LX CPU 割込みコントローラ ほかの要求 ELVR ICR yy EIRR ENIR 要因 IL CMP ICR xx CMP ILM INTA ■ DTP の動作 初期化としてユーザプログラム内ではインテリジェント I/O サービスを起動するに当 たって , インテリジェント I/O サービスディスクリプタ内の I/O アドレスポインタに 000000H から 0000FFH に割りつけられているレジスタのアドレスを設定し , バッファア ドレスポインタにメモリバッファの先頭アドレスを設定します。 DTP の動作シーケンスは外部割込みの場合とほぼ同じで , CPU がハードウェア割込み 処理マイクロプログラムを起動するまでは全く同じです。DTP の場合は CPU がハード ウェア割込み処理マイクロプログラム内で読み出す ISE ビットの内容が DTP を示して いるので , インテリジェント I/O サービス処理マイクロプログラムへ制御を移します。 インテリジェント I/O サービスが起動されると , アドレッシングされている外部ペリ フェラルにリードまたはライト信号が送られ本チップとの転送が行われます。外部ペ リフェラルはその転送が行われてから 3 マシンサイクル以内に本チップに対する割込 み要求を取り下げてください。転送が終了するとディスクリプタの更新などが行われ , その後転送要因をクリアする信号を割込みコントローラに発生させます。転送要因を クリアする信号を受け取った本リソースは要因を保持しているフリップフロップをク リアして端子からの次の要求に備えます。インテリジェント I/O 機能処理の詳細につ いては MB90500 プログラミングマニュアルを参照してください。 179 第 14 章 DTP/ 外部割込み 図 14.3-2 DTP 動作終了時の外部割込み取下げタイミング エッジ要求,またはHレベル要求 内部動作 * インテリジェントI/Oサービスが I/Oレジスタ→メモリ転送のとき ディスクリプタ 選択,読出し 割込み要因 リードアドレス アドレスバス端子 データバス端子 ライトアドレス リードデータ リード信号 ライトデータ ① ライト信号 ② 3マシンサイクル以内に取り下げる 図 14.3-3 DTP と外部ペリフェラルとのインタフェース簡略例 レジスタ 外部ペリフェラル 内部バス データ,アドレスバス ① INT IRQ DTP 転送終了後,3マシンサイクル 以内に取り下げる 180 ② MB90595 CORE MEMORY 第 14 章 DTP/ 外部割込み 14.4 DTP 要求と外部割込み要求の切換え 外部割込み要求と DTP 要求の切換えは , 割込みコントローラの中にある , 本リソー スに対応する ICR レジスタ中の ISE ビットの設定によって行います。各端子に対応 して個々に ICR が割り当てられていますので , 対応する ICR の ISE ビットに "1" が 書かれた端子が DTP 要求として , また , "0" が書かれた場合には外部割込み要求と して , それぞれ動作することになります。 ■ DTP 要求と外部割込み要求の切換え 図 14.4-1 DTP 要求と外部割込み要求の切換え 割込みコントローラ 0 ICRxx ICRyy 1 F2MC-16 CPU 端子 外部割込み/DTP DTP 外部割込み 181 第 14 章 DTP/ 外部割込み 14.5 DTP/ 外部割込みの使用上の注意 DTP/ 外部割込みを使用する際には , 次の点について特に注意が必要です。 • DTP を用いたときの外部に接続するペリフェラルの条件 • スタンバイからの復帰 • DTP/ 外部割込みの動作手順 • 外部割込み要求レベル ■ DTP/ 外部割込みの使用上の注意 ● DTP を用いたときの外部に接続するペリフェラルの条件 DTP がサポートできる外部ペリフェラルは , 転送が行われたことにより自動的に要求 をクリアするものでなければなりません。また , 転送動作が開始してから 3 マシンサイ クル以内 ( 暫定値 ) で転送要求を取り下げるようになっていないと , 本リソースは次の 転送要求が発生したものとして扱ってしまいます。 ● スタンバイからの復帰 ストップモードまたは時計モードのスタンバイ状態からの復帰に外部割込みを使う場 合は , 入力要求を H レベルまたは L レベル要求としてください。エッジ要求では , ス トップモードまたは時計モードのスタンバイ状態からの復帰は行われません。 ● DTP/ 外部割込みの動作手順 DTP/外部割込み内に存在するレジスタの設定を行う際, 次の手順で設定してください。 1. 許可レジスタの対象となるビットをディセーブル状態にする。 2. 要求レベル設定レジスタの対象となるビットを設定する。 3. 要因レジスタの対象となるビットをクリアする。 4. 許可レジスタの対象となるビットをイネーブル状態にする。 (ただし , 3. と 4. はワード指定による同時書込み可能) 。 本リソース内のレジスタを設定するときには必ず許可レジスタをディセーブル状態に 設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前に必 ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許 可状態時に誤って割込み要因が起こってしまうことを避けるためです。 ● 外部割込み要求レベル 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は 最小 3 マシンサイクル必要とします。 図 14.5-1 に示すように, 要求入力レベルがレベル設定のとき, 外部より要求入力が入っ てその後取り下げられても内部に割込み要求フラグビット (EIRR:ER) が存在するので , 割込みコントローラへの要求は active のままです。図 14.5-2 に示すように , 割込みコン トローラへの要求を取り下げるには割込み要求フラグビット (EIRR:ER) をクリアする 必要があります。 182 第 14 章 DTP/ 外部割込み 図 14.5-1 レベル設定時の割込み要求フラグビット (EIRR:ER) 割込み要因 レベル検出 割込み要求フラグビット(EIRR:ER) 許可ゲート 割込み コントローラへ クリアしない限り要因を保持し続ける 図 14.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 割込み要因 割込みコントローラ への割込み要求 Hレベル 割込み要求フラグビット(EIRR:ER)のクリアによってinactiveとなる 183 第 14 章 DTP/ 外部割込み 184 第 15 章 A/D コンバータ A/D コンバータの機能と動作について説明します。 15.1 A/D コンバータの特長 15.2 A/D コンバータのブロックダイヤグラム 15.3 A/D コンバータのレジスタ一覧 15.4 A/D コンバータの動作 15.5 EI2OS を使った変換動作 15.6 変換データ保護機能 185 第 15 章 A/D コンバータ 15.1 A/D コンバータの特長 A/D コンバータは , アナログ入力電圧をディジタル値に変換するものです。A/D コン バータの特徴は次のとおりです。 ■ A/D コンバータの特長 ● 変換時間 1 チャネル当たり最小 26.3 µ s (16MHz のマシンクロック ) ● サンプル & ホールド回路付 RC 型逐次比較変換方式を採用 ● 10 ビットまたは 8 ビットの分解能 ● アナログ入力は 8 チャネルからプログラムで選択 • シングル変換モード :1 チャネルを選択変換 • スキャン変換モード : 連続した複数のチャネルを変換。最大 8ch プログラム可能 • 連続変換モード : 指定チャネルを繰返し変換 • 停止変換モード :1チャネルを変換したら一時停止して次の起動が掛かるまで待 機 ( 変換開始の同期が可能 )。 ● 割込み要求 A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることがで きます。この割込み発生で EI2OS を起動することができ A/D 変換結果データをメモリ に転送できますので連続処理に適しています。 ● 起動要因を選択可能 起動要因は , ソフト , 外部トリガ ( 立下りエッジ ), タイマ ( 立上りエッジ ) の選択。 ■ アナログ入力許可レジスタ アナログ入力に使用される端子に対応する ADE ビットに常に "1" を書き込んでくださ い。 15 14 13 12 11 10 9 8 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 R/W R/W : リード / ライト可能 R/W R/W R/W R/W R/W R/W R/W bit アドレス:00001BH ポート 6 端子は次のように制御されます。 • 0: ポート入力 / 出力モード • 1: アナログ入力モード • リセット時には "1" がセットされます。 186 初期値 11111111B 第 15 章 A/D コンバータ ■ 入力インピーダンス A/D コンバータのサンプリング回路は次の等価回路で表されます。 最大3.2kΩ アナログ入力 ADC 最大30pF サンプリング時間が 4 µ s (16MHz のマシンクロックで ST1=0 および ST0=0)にセッ トされたとき , アナログ入力への駆動インピーダンスは 15.5kΩ 以下でなければなりま せん。そうしなければ変換の精度は低下します。もしそうであれば , サンプリング時間 を更に長く設定する (ST1=1 および ST0=1)か , 外部コンデンサを付加して駆動イン ピーダンスを補償してください。 187 第 15 章 A/D コンバータ A/D コンバータのブロックダイヤグラム 15.2 図 15.2-1 に , A/D コンバータのブロックダイヤグラムを示します ■ A/D コンバータのブロックダイヤグラム 図 15.2-1 A/D コンバータのブロックダイヤグラム AVCC AVRH/AVRL AVSS D/Aコンバータ MPX 逐次比較レジスタ 比較器 サンプル&ホールド回路 デコーダ データレジスタ ADCR0, ADCR1 A/D制御レジスタ0 A/D制御レジスタ1 トリガ起動 ADCS0, ADCS1 ADTG タイマ起動 16ビットリロードタイマ1 動作クロック φ 188 プリスケーラ データバス 入力回路 AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 第 15 章 A/D コンバータ 15.3 A/D コンバータのレジスタ一覧 A/D コンバータのレジスタには次の 3 つがあります。 • コントロール • ステータスレジスタ • データレジスタ ■ A/D コンバータのレジスタ一覧 図 15.3-1 A/D コンバータのレジスタ配置 bit 15 bit アドレス:000034H bit アドレス:000035H bit アドレス:000036H bit アドレス:000037H 8 7 0 ADCS1 ADCS0 ADCR1 ADCR0 8ビット SSR 8ビット 7 6 5 4 3 2 1 0 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 15 14 13 12 11 10 9 8 BUSY INT INTE PAUS STS1 STS0 STRT 予約 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 15 14 13 12 11 10 9 8 S10 ST1 ST0 CT1 CT0 ― D9 D8 コントロールステータスレジスタ (ADCS0およびADCS1) データレジスタ (ADCR0およびADCR1) 189 第 15 章 A/D コンバータ 15.3.1 A/D コントロールステータスレジスタ (ADCS0) A/D コントロールステータスレジスタ (ADCS0) は , A/D コンバータの制御およびス テータス表示を行います。ADCS0 は A/D 変換動作中に書換えないようにしてくだ さい。 ■ A/D コントロールステータスレジスタ (ADCS0) 7 6 5 4 3 2 1 0 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 bit ADCS0 アドレス:000034H ←ビット属性 ←初期値 R/W : リード / ライト可能 [bit7, bit6] MD1, MD0 (A/D converter mode set) MD1, MD0 ビットは , 動作モードを設定します。 MD1 MD0 0 0 1 1 0 1 0 1 動作モード 単発モード , 動作中の再起動はすべて可能 単発モード , 動作中の再起動不可能 連続モード , 動作中の再起動不可能 停止モード , 動作中の再起動不可能 ● 単発モード ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまで A/D 変換を連 続して行い 1 回変換が終了したら停止する。 ● 連続モード ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまで A/D 変換を繰 返し行います。 ● 停止モード ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまで 1ch ごとに A/D 変換を行い一時停止する。変換再開は起動要因発生によって行われます。 リセット時には本ビット群は "00" に初期化されます。 < 注意事項 > 190 • 連続モード , 停止モードで A/D 変換を起動すると BUSY ビットで停止するまで変 換動作を続けます。 • 停止は BUSY ビットに "0" を書き込むことにより行われます。 • 単発 , 連続 , 停止の各モードの再起動の不可能はタイマ , 外部トリガ , ソフトすべ ての起動に適用されます。 第 15 章 A/D コンバータ [bit5 ∼ bit3]ANS2 ∼ ANS0 (Analog start channel set) 本ビット群より A/D 変換の開始チャネルを設定します。 A/D コンバータを起動すると , このビットで選択されたチャネルから A/D 変換を開始 します。 < 注意事項 > ANS2 ANS1 ANS0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 開始チャネル AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 • リード A/D 変換の間 , 現在の変換チャネルが本ビット群から読み出されます。もしシス テムが停止モードで停止すれば最後の変換チャネルが読み出されます。 • リセット時には本ビット群は "000" に初期化されます。 [bit2 ∼ bit0]ANE2 ∼ ANE0 (Analog end channel set) 本ビット群より A/D 変換の終了チャネルを設定します。 < 注意事項 > ANE2 ANE1 ANE0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 終了チャネル AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 • 同一のチャネルが ANE2 ∼ ANE0 および ANS2 ∼ ANS0 に書き込まれると , 変換 は 1 つのチャネルに対してのみ行われます ( シングル変換 )。 • 連続モード , 停止モードを設定している場合は本ビット群で設定されたチャネル の変換が終わると ANS2 ∼ ANS0 で設定された開始チャネルに戻ります。 • 設定チャネルが ANS > ANE の場合は ANS より変換が始まり 7ch まで変換した ら 0ch. に戻り ANE まで変換します。 • リセット時には本ビット群は "000" に初期化されます。 例:チャネル設定 ANS=6ch., ANE=3ch. で単発モードの時 動作 変換チャネル 6ch.→7ch.→0ch.→1ch.→2ch.→3ch. 191 第 15 章 A/D コンバータ 15.3.2 A/D コントロールステータスレジスタ (ADCS1) A/D コントロールステータスレジスタ (ADCS1) は , A/D コンバータの制御およびス テータス表示を行います。 ■ A/D コントロールステータスレジスタ (ADCS1) bit ADCS1 アドレス:000035H 15 14 13 12 11 10 9 8 BUSY INT INTE PAUS STS1 STS0 STRT 予約 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 W 0 R/W 0 ←ビット属性 ←初期値 R/W : リード / ライト可能 W : ライトオンリ [bit15] BUSY (busy flag and stop) • リード時 - A/D コンバータ動作表示用のビットです。 - A/D 変換起動でセットされ終了でクリアされます。 • ライト時 - A/D 動作中に本ビットに "0" を書き込むと強制的に動作を停止します。 - 連続 , 停止モード時の強制停止に利用します。 動作表示用のビットに "1" を書き込むことはできません。RMW 系命令では "1" が読ま れます。単発モードでは A/D 変換終了でクリアされます。 連発 , 停止モードでは "0" 書込みで停止するまでクリアされません。 リセット時に本ビットは "0" に初期化されます。 強制停止とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 [bit14]INT (interrupt) 変換データが ADCR に書き込まれるとセットされます。 bit5 (INTE) が "1" のときに本ビットがセットされると割込み要求が発生します。また EI2OS 起動を許可している場合EI2OS が起動されます。 "1"書込みは意味を持ちません。 クリアは "0" 書込みと EI2OS 割込みクリア信号で行われます。 < 注意事項 > 本ビットの "0" 書込みクリアは A/D 停止中に行ってください。 リセット時に本ビットは "0" に初期化されます。 [bit13]INTE (Interrupt enable) 本ビットは変換終了による割込みの許可・不許可を指定します。 • 0: 割込みの禁止 • 1: 割込みの許可 EI2OS を使用するときは本ビットをセットしてください。EI2OS は割込み要求発生で起 動するようになっています リセット時に本ビットは "0" に初期化されます。 192 第 15 章 A/D コンバータ [bit12]PAUS (A/D converter pause) A/D 変換動作が一時的に停止した場合にセットされます。 A/D 変換結果を格納するレジスタが 1 つのため連続で変換した場合 , 変換結果を EI2OS で転送しなければ前データが壊れてしまいます。 これを保護するためデータレジスタの内容を EI2OS で転送しなければ次の変換データ が格納されないようになっています。この間 A/D 変換動作は停止します。EI2OS で転 送を終了すると A/D は変換を再開します。 このビットは EI2OS を使用したときのみ有効です。 < 注意事項 > • 変換データの保護機能に関しては 「15.6 変換データ保護機能」を参照してくだ さい。 • リセット時に本ビットは "0" に初期化されます。 [bit11, bit10]STS1, STS0 (Start source select) リセット時に本ビット群は "00" に初期化されます。 本ビットの設定により A/D 起動要因を選択します。 表 15.3-1 STS1 STS0 0 0 ソフト起動。 0 1 外部端子トリガでの起動とソフト起動。 1 0 タイマでの起動とソフト起動。 1 1 外部端子トリガ , タイマでの起動とソフト起動 機能 2 つ以上の起動要因が許されているモードでは最初に生じた原因により A/D 変換が起 動されます。 起動源の設定は書き換えられると直ちに変わりますので, A/D変換中に書き換えるとき には注意してください。 < 注意事項 > • 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のと きに本ビットを書き換えて外部端子トリガ起動に設定すると A/D が起動する場合 があります。 • タイマ選択時は , 16 ビットリロードタイマ 1 の出力が選択されます。 [bit9]STRT (Start) 本ビットに "1" を書き込むことにより A/D を起動します。 再起動をかけるときは , 再び書き込んでください。 リセット時に本ビットは "0" に初期化されます。 停止モード時は動作機能上再起動はかかりません。"1" を書き込む前に BUSY ビットを チェックしてください。 強制停止とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 [bit8] 予約 これは予約ビットです。本ビットには常に "0" を書き込んでください。 193 第 15 章 A/D コンバータ 15.3.3 データレジスタ (ADCR0, ADCR1) データレジスタ (ADCR0, ADCR1) は , 変換の結果として生成されたディジタル値を 記憶するために使用されるものです。ADCR0 は下位 8 ビットを記憶し , ADCR1 は 変換結果の最上位の 2 ビットを記憶します。これらのレジスタ値は変換が完了する たびに書き換えられます。通常は最後の変換値が本ビット群に記憶されます。 ■ データレジスタ (ADCR0, ADCR1) 7 6 5 4 3 2 1 0 初期値 D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXX R R R R R R R R 15 14 13 12 11 10 9 8 初期値 S10 ST1 ST0 CT1 CT0 ━ D9 D8 00001-XX W W W W W ━ R R bit ADCR0 アドレス:000036H ADCR1 アドレス:000037H R W − bit : リードオンリ : ライトオンリ : 未定義 ADCR1 のビット 10 ∼ 15 からは常に "0" が読み出されます。 変換データの保護機能を利用することができます。「15.6 変換データ保護機能」を参 照してください。 A/D 変換の間はこれらのレジスタにデータを絶対に書き込まないでください。 [bit15]S10 本ビットは変換の分解能を指定します。"0" にセットされると 10 ビットの A/D 変換が 行われます。その他の場合には 8 ビットの A/D 変換が行われてその結果は D7 ∼ D0 に 記憶されます。 本ビットを読み出すと常に "0" が読み出されます。 [bit14, bit13]ST1, ST0 (Sampling time) 表 15.3-2 ST1 ST0 0 0 64 マシンサイクル (16MHz で 4 µ s) 0 1 予約 1 0 予約 1 1 4096 マシンサイクル (16MHz で 256 µ s) 機能 本ビット群は入力時における電圧サンプリング時間の持続時間を決定するものです。 本ビット群を読み出すと常に "00" が読み出されます。 194 第 15 章 A/D コンバータ [bit12, bit11]CT1, CT0 (Compare time) 表 15.3-3 CT1 CT0 0 0 176 マシンサイクル (8MHz で 22 µ s) 0 1 352 マシンサイクル (16MHz で 22 µ s) 1 0 予約 1 1 予約 機能 本ビット群は比較操作時間の持続期間を決定するものです。 本ビットを "00" に設定するときはマシンクロックが 8MHz 以下のときにしてください。 8MHz より高速の場合には変換精度が保証されません。 本ビット群を読み出すと常に "00" が読み出されます。 195 第 15 章 A/D コンバータ 15.4 A/D コンバータの動作 A/D コンバータは逐次比較方式で作動し , 分解能は 10 ビットまたは 8 ビットを選択 することができます。 この A/D コンバータは変換結果記憶用のレジスタが 1 つ (16 ビット)であるため , 変換データレジスタ (ADCR0 および ADCR1)は変換が完了するたびに書き換えら れます。このため , A/D コンバータ単独では連続変換処理には適しませんので拡張イ ンテリジェント I/O 機能 (EI2OS) を使って変換データをメモリに転送しながら変換 することを推奨いたします。 ■ 単発モード 単発モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい き ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換 は動作を停止 します。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS で指定したチャ ネルのみの変換動作になります。 例: ANS=000, ANE=011 開始 → AN0 → AN1 → AN2 → AN3 → 終了 ANS=010, ANE=010 開始 → AN2 → 終了 ■ 連続モード 連続モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい き ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に 戻り A/D 変換動作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS で指定したチャネルのみの変換を続けます。 例: ANS=000, ANE=011 開始→ AN0 → AN1 → AN2 → AN3 → AN0 - - →繰り返し ANS=010, ANE=010 開始→ AN2 → AN2 → AN2 - - →繰り返し 連続モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し続けま す(BUSY ビットに "0" を書き込む→強制動作停止)。強制動作停止を行うと変換中の ものは途中で止まってしまうため , 注意してください(強制動作停止した場合は変換レ ジスタは変換完了した前データが格納されています) 。 196 第 15 章 A/D コンバータ ■ 停止モード 停止モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい きますが 1ch 変換する度に変換動作を一時停止します。一時停止を解除するにはもう 一度起動をかけることにより行われます。 ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に戻 り A/D 変換動作を続けます。開始チャネルと終了チャネルが同じ (ANS=ANE) であれ ば変換は 1 つのチャネルに対してのみ実行されます。 例: ANS=000, ANE=011 開始→ AN0 →停止→起動→ AN1 →停止→起動→ AN2 →停止→起動→ → AN3 →停止→起動→ AN0 - - →繰り返し ANS=010, ANE=010 開始→ AN2 →停止→起動→ AN2 →停止→起動→ AN2 - - →繰り返し このときの起動要因は STS1, STS0 で設定されたものだけです。 このモードを使用することにより変換開始の同期をかけることが可能です。 197 第 15 章 A/D コンバータ 15.5 EI2OS を使った変換動作 図 15.5-1 に , A/D 変換起動から変換データ転送までのフロー例(連続モード)を示 します。 ■ EI2OS を使った変換動作 図 15.5-1 A/D 変換起動から変換データ転送までのフロー例(連続モード) A/D変換起動 サンプル&ホールド EI2OS起動 変換 データ転送 割込み処理 変換終了 割込み発生 割込みクリア ☆は EI2OS の設定で決まります。 198 第 15 章 A/D コンバータ 15.5.1 単発モード時の EI2OS の起動例 単発モード時の EI2OS は次の手順で起動します。 • アナログ入力 AN1 ∼ AN3 の変換をして終了する。 • 変換データは 200H ∼ 205H 番地に順に転送する。 • ソフトウェアで変換を開始する。 • 最高の割込みレベルを使用する。 ■ 単発モード時の EI2OS の起動例 設定項目 EI2OS の設定 プログラム例 動作説明 MOV ICR10, #08H 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリプタ アドレスの設定。 MOV BAPL, #00H MOV BAPM, #02H MOV BAPH, #00H 変換データの転送先番地。 MOV ISCS, #18H ワードデータ転送 , 転送後転送先番地をインクリメント する。I/O からメモリへ転送。リソースからの要求で終 了しない。 MOV IOA, #36H MOV DCT, #03H MOV ADCS0, #0BH A/D コンバータ設定 MOV ADCS1, #A2H 割込みシーケンス RETI EI2OS 転送を 3 回行う。変換回数と同じにする。 単発モード , 開始チャネル AN1, 終了チャネル AN3 ソフト起動 , A/D 変換開始 割込みからの復帰 ICR10 : 割込み制御レジスタ BAPL : バッファアドレスポインタ下位 BAPM : バッファアドレスポインタ中位 BAPH : バッファアドレスポインタ上位 ISCS :EI2OS ステータスレジスタ IOA :I/O アドレスカウンタ DCT : データカウンタ 起動開始 AN1 割込み EI2OS転送 AN2 割込み EI2OS転送 AN3 割込み EI2OS転送 終了 割込みシーケンス 平行処理 199 第 15 章 A/D コンバータ 連続モード時の EI2OS の起動例 15.5.2 連続モード時の EI2OS の起動例は次のとおりです。 • アナログ入力 AN3 ∼ AN5 の変換をして各チャネルの変換データを 2 つ取得す る。 • 変換データは 600H ∼ 60BH 番地に順に転送する。 • 起動は外部エッジ入力で行う。 • 割込みレベル最強 ■ 連続モード時の EI2OS の起動例 設定項目 EI2OS の設定 プログラム例 動作説明 MOV ICR10, #08H 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリプタ アドレスの設定。 MOV BAPL, #00H MOV BAPM, #06H MOV BAPH, #00H 変換データの転送先番地 MOV ISCS, #18H MOV IOA, #36H MOV DCT, #06H MOV ADCS0, #9DH A/D コンバータ設定 MOV ADCS1, #A4H 2 EI OS 終了割込み MOV ADCS1, #00H RETI シーケンス ワードデータ転送 , 転送後転送先番地をインクリメント する。I/O からメモリへ転送。リソースからの要求で終 了しない。 転送元アドレス EI2OS 転送を 6 回行う。3ch × 2 分のデータ転送を行う。 連続モード , 開始チャネル AN3, 終了チャネル AN5 外部エッジ起動 , A/D 変換開始 割込みからの復帰 • ICR10 : 割込み制御レジスタ • BAPL : バッファアドレスポインタ下位 • BAPM : バッファアドレスポインタ中位 • BAPH : バッファアドレスポインタ上位 • ISCS : EI2OS ステータスレジスタ • IOA : I/O アドレスカウンタ • DCT : データカウンタ 起動開始 AN3 → 割込み → EI2OS転送 AN4 → 割込み → EI2OS転送 AN5 → 割込み → EI2OS転送 全6回転送後 割込みシーケンス 終了 200 第 15 章 A/D コンバータ 停止モード時の EI2OS の起動例 15.5.3 停止モード時の EI2OS の起動例は , 次のとおりです。 • アナログ入力 AN3 を一定期間おいて 12 回変換する。 • 変換データは 600H ∼ 617H 番地に順に転送する。 • 起動は外部エッジ入力で行う。 • 割込みレベル最強 ■ 停止モード時の EI2OS の起動例 設定項目 プログラム例 EI2OS の設定 動作説明 MOV ICR10, #08H 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリプタ アドレスの設定。 MOV BAPL, #00H MOV BAPM, #06H MOV BAPH, #00H 変換データの転送先番地。 MOV ISCS, #18H MOV IOA, #36H MOV DCT, #0CH ワードデータ転送 , 転送後転送先番地をインクリメント する。I/O からメモリへ転送。リソースからの要求で終 了しない。 転送元アドレス EI2OS 転送を 12 回行う。 停止モード , 開始チャネル AN3, 終了チャネル AN3 MOV ADCS0, #DBH (1ch 変換) A/D コンバータ設定 MOV ADCS1, #A4H 外部エッジ起動 , A/D 変換開始 2 EI OS 終了割込み MOV ADCS1, #00H 割込みからの復帰 RETI シーケンス ICR10 : 割込み制御レジスタ BAPL : バッファアドレスポインタ下位 BAPM : バッファアドレスポインタ中位 BAPH : バッファアドレスポインタ上位 ISCS : EI2OS ステータスレジスタ IOA : I/O アドレスカウンタ DCT : データカウンタ 起動開始 AN3 → 割込み → EI2OS転送 12回転送後 停止 外部エッジ起動 割込みシーケンス 終了 201 第 15 章 A/D コンバータ 15.6 変換データ保護機能 A/D コンバータは , 変換データ保護機能を持ち EI2OS を使って連続変換と複数の データを確保できることを特長としています。 変換データレジスタは 1 つですので連続で A/D 変換をすると 1 回の変換終了と共に 変換データが格納されて前データが失われます。これを保護するために , 本 A/D コ ンバータは変換が終了しても前データが EI2OS を使ってメモリへ転送されていない と変換データはレジスタに格納されず A/D は一時停止する機能を持っています。 ■ 変換データ保護機能 一時停止の解除は EI2OS でメモリへ転送された後 , 行われます。 前データが転送されていれば一時停止することなく A/D は連続して変換します。 < 注意事項 > 202 この機能は ADCS1 の INT, INTE ビットに関係しています。 データ保護機能は割込み許可( INTE =1)状態でしか動作しないようになっています。 割込み禁止 ( INTE =0) の場合は本機能は動作せず連続で A/D 変換を行った場合は 次々に変換データはレジスタに格納されて旧データは失われます。 また , 割込み許可 ( INTE =1) 状態で EI2OS を使わない場合は INT ビットはクリアさ れないため , データ保護機能が働き A/D は変換を一時停止状態にします。この場合 は割込みシーケンスで INT ビットをクリアすると停止状態が解除されます。 EI2OS 動作中で A/D が一時停止をしているときに割込みを禁止にすると A/D が動作 し転送する前に変換データレジスタの内容が変わることがあります。 また , 一時停止中に再起動をかけると待機データが壊れます。 第 15 章 A/D コンバータ ■ データ保護機能のフロー例(EI2OS の場合) EI2OS設定 A/D連続変換起動 1回変換終了 データレジスタに格納 EI2OS起動 2回変換終了 NO EI2OS終了 A/D一時停止 YES YES データレジスタに格納 EI2OS終了 NO EI2OS起動 3回変換終了 続く EI2OS起動 すべて変換終了 割込みルーチン 終了 A/D停止 ■ 変換データ保護機能の使用上の注意 A/D コンバータを外部トリガまたは内部タイマを使って起動する場合 ADCS1 レジス タの A/D 起動要因ビット STS1, STS0 で設定しますが , このときに外部トリガおよび内 部タイマの入力値はインアクティブ側の状態で設定してください。アクティブ側にし ておくと動作しはじめる場合があります。 STS1 および STS0 をセットする場合には必ず , ADTG に対して "1"(入力)を指定し内 部タイマ (タイマ 2)に対しては "0"(出力)を指定してください。 203 第 15 章 A/D コンバータ 204 第 16 章 UART0 UART0 の機能と動作について説明します。 16.1 UART0 の特長 16.2 UART0 のブロックダイヤグラム 16.3 UART0 のレジスタ 16.4 UART0 の動作 16.5 ボーレート 16.6 内部クロックおよび外部クロック 16.7 転送データフォーマット 16.8 パリティビット 16.9 割込み生成とフラグのセットタイミング 16.10 UART0 の応用例 205 第 16 章 UART0 16.1 UART0 の特長 UART0 は , 非同期 ( 調歩同期 ) 通信 , または CLK 同期通信を行うためのシリアル I/O ポートです。 ■ UART0 の特長 UART0 には以下の特長があります。 • 全二重ダブルバッファ • CLK 同期と CLK 非同期調歩式データ転送のサポート • マルチプロセッサモードのサポート • 専用ボーレートジェネレータの内蔵 (12 種類 ) • 外部クロック入力または内部タイマによる自由なボーレート設定のサポート • 可変長データ (7 ∼ 9 ビット [ パリティなし ], 6 ∼ 8 ビット [ パリティあり ]) • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 割込み機能 ( 受信割込みと送信割込み ) • NRZ 形式の転送フォーマット 206 第 16 章 UART0 UART0 のブロックダイヤグラム 16.2 図 16.2-1 に , UART0 のブロックダイヤグラムを示します。 ■ UART0 のブロックダイヤグラム 図 16.2-1 UART のブロックダイヤグラム コントロールバス 受信割込み(CPUへ) 専用ボーレートクロック SCK0 送信クロック 16bitリロードタイマ0 クロック 選択回路 送信割込み(CPUへ) 受信クロック SCK0 SIN0 受信制御回路 送信制御回路 スタートビット 検出回路 送信スタート回路 受信ビットカウンタ 送信ビットカウンタ 受信パリティ カウンタ 送信パリティ カウンタ SOT0 送信用シフタ 受信用シフタ 受信状態判定回路 受信終了 送信開始 UIDR UODR EI2OS用 受信エラー発生信号 (CPUへ) データバス UMC レジスタ PEN SBL MC1 MC0 SMDE RFC SCKE SOE USR レジスタ RDRF ORFE PE TDRE RIE TIE RBF TBF URD レジスタ BCH RC3 RC2 RC1 RC0 BCH0 P D8 コントロールバス 207 第 16 章 UART0 16.3 UART0 のレジスタ UART0 には , 次の 4 つのレジスタがあります。 • シリアルモードコントロールレジスタ • ステータスレジスタ • インプットデータ / アウトプットデータレジスタ • レート / データレジスタ ■ UART0 のレジスタ シリアルモードコントロールレジスタ アドレス:ch.0 000020H bit 7 リード/ライト 初期値 ステータスレジスタ アドレス:ch.0 000021H リード/ライト 初期値 6 5 4 3 2 1 0 PEN SBL MC1 MC0 SMDE RFC SCKE SOE (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) (R/W) (0) (R/W) (0) bit 15 14 13 12 11 10 9 8 RDRF ORFE PE TDRE RIE TIE RBF TBF (R) (0) (R) (0) (R) (0) (R) (1) (R/W) (0) (R/W) (0) (R) (0) (R) (0) UMC0 USR0 インプットデータレジスタ/アウトプットデータレジスタ アドレス:ch.0 000022H リード/ライト 初期値 レート/データレジスタ アドレス:ch.0 000023H リード/ライト 初期値 R/W:リード/ライト可能 W :ライトオンリ R :リードオンリ X :不定値 208 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) bit bit 15 14 13 12 11 10 9 8 BCH RC3 RC2 RC1 RC0 BCH0 P D8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (1) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (X) UIDR0(リード) UODR0(ライト) URD0 第 16 章 UART0 シリアルモードコントロールレジスタ 0(UMC0) 16.3.1 シリアルモードコントロールレジスタ 0(UMC0) は , UART0 の動作モードを指定し ます。動作が停止中に動作モードを設定します。ただし , RFC ビットは動作中もア クセス可能です。 ■ シリアルモードコントロールレジスタ 0 (UMC0) シリアルモードコントロールレジスタ0 アドレス:ch.0 000020H bit 7 リード/ライト 初期値 6 5 4 3 2 1 0 PEN SBL MC1 MC0 SMDE RFC SCKE SOE (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) (R/W) (0) (R/W) (0) UMC0 R/W:リード/ライト可能 W :ライトオンリ ● シリアルモードコントロールレジスタ 0(UMC0) の内容 [bit7]PEN(Parity ENable) シリアルデータ I/O でパリティビットの追加 (送信時)または検出 (受信時)を指定 します。モード 2 では "0" に設定します。 0: パリティなし 1: パリティあり [bit6]SBL(Stop Bit Length) 送信データのストップビット数を指定します。受信データについては , 最初のストップ ビットだけが認識され , それ以降のストップビットは無視されます。 0:1 ビット長 1:2 ビット長 [bit5, bit4]MC1, MC0 (Mode Control) 転送データの長さを制御します。下表に , 本ビットで選択可能な 4 つの転送モード (データ長)を示します。 表 16.3-1 UART 動作モード モード MC1 MC0 データ長 *1 0 1 0 0 1 0 1 0 7 (6) 8 (7) 8+1 2 *2 3 1 1 9 (8) *1: 括弧内の数字は , パリティ付きのデータ長を示します。 *2: いくつものスレーブ CPU が単一ホスト CPU に接続している場合 , モード 2 が使用されます。受 信パリティチェック機能は使用不可のため , UMC0 レジスタ中の PEN を "0" に設定してくださ い (詳細については , 「16.4 UART0 の動作」を参照)。送信データ長は 9 ビットで , パリティ ビットは追加できません。 209 第 16 章 UART0 [bit3]SMDE (Synchro MoDe Enable) SMDE は , 転送方法を選択します。 0: 調歩式 CLK 同期転送 (調歩ビットによるクロック選択の同期転送) 1: 調歩式 CLK 非同期転送 [bit2]RFC (Receiver Flag Clear) "0" を書き込むと , USR0 レジスタ中の RDRF, ORFE, PE フラグがクリアされます。"1" 書込みは無効であり , 読出し値は常に "1" になります。 < 注意事項 > 受信割込みが UART0 操作中許可されている場合 , RDRF, ORFE, PE のどれかが "1" になっていれば , RFC には "0" のみを書き込みます。 [bit1]SCKE(SCLK Enable) CLK 同期モードで本ビットに "1" を書き込むと , ポート端子が UART0 シリアルクロッ ク出力端子に切り換わり , 同期クロックが出力されます。CLK 同期モードまたは外部 クロックモードでゼロを設定してください。 0: 汎用入出力ポートとして機能し , シリアルクロックを出力しません。ポートが入力 モード (DDR=0) に設定され , RC3 ∼ RC0 が "1111B" に設定されている場合 , 外部ク ロック入力端子として機能します。 1:UART0 シリアルクロック出力端子として機能します。 [bit0]SOE(Serial Output Enable) "1" を書き込むと , ポート端子が UART0 シリアルデータ出力端子に切り換わり , シリ アル出力が可能になります。 0: ポート端子として機能し , シリアルデータを出力しません。 1:UART0 シリアルデータ出力端子として機能します。 210 第 16 章 UART0 16.3.2 ステータスレジスタ 0(USR0) ステータスレジスタ 0(USR0) は , UART0 ポートの現在の状態を示します。 ■ ステータスレジスタ 0(USR0) ステータスレジスタ0 アドレス:ch.0 000021H リード/ライト 初期値 R/W:リード/ライト可能 R :リードオンリ bit 15 14 13 12 11 10 9 8 RDRF ORFE PE TDRE RIE TIE RBF TBF (R) (0) (R) (0) (R) (0) (R) (1) (R/W) (0) (R/W) (0) (R) (0) (R) (0) USR0 ● ステータスレジスタ (USR0) の内容 [bit15]RDRF(Receiver Data Register Full) UIDR0 (インプットデータレジスタ)の状態を示すフラグです。UIDR0 レジスタに受 信データがロードされるとセットされ , UIDR0 レジスタを読み出すか , UMC0 レジスタ 中の RFC に "0" を書き込むと , クリアされます。RIE がアクティブな場合 , RDRF が セットされていれば受信割込み要求が生成されます。 0:UIDR0 中にデータなし 1:UIDR0 中にデータあり [bit14]ORFE (Over-run/framing error) 受信中にオーバランまたはフレーミングエラーが発生した場合にセットされるフラグ です。UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。本フラグをセッ トすると , UIDR0 中のデータは無効になり , 受信用シフタから UIDR0 へのロードが実 行されません。RIE がアクティブな場合 , ORFE がセットされていれば受信割込み要求 が生成されます。 0: エラーなし 1: エラーあり 表 16.3-2 に , RDRF または ORFE による受信完了後の UIDR0 の状態を示します。 表 16.3-2 受信完了後の UIDR0 の状態 RDRF ORFE 0 0 空 0 1 フレーミングエラー 1 0 有効データ 1 1 オーバランエラー UIDR0 データの状態 オーバランまたはフレーミングエラーが発生した場合 , UIDR0 中のデータは無効です。 次のデータはフラグクリア後に受信できます。 211 第 16 章 UART0 [bit13]PE(Parity Error) 受信パリティエラーが発生した場合にセットされるフラグです。UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。本フラグをセットすると , UIDR0 中のデー タは無効になり , 受信用シフタから UIDR0 へのロードが実行されません。RIE がアク ティブな場合 , PE がセットされていれば受信割込み要求が生成されます。 0: パリティエラーなし 1: パリティエラー発生 [bit12]TDRE(Transmitter Data Register Empty) UODR0 (アウトプットデータレジスタ)の状態を示すフラグです。UODR0 レジスタ に送信データを書き込むと , クリアされます。データが送信用シフタにロードされ , 転 送が開始されるとセットされます。TIE がアクティブな場合 , TDRE がセットされてい れば受信割込み要求が生成されます。 0:UODR0 中にデータあり 1:UODR0 中にデータなし [bit11]RIE(Receiver Interrupt Enable) 受信割込み要求を許可します。 0: 割込みを禁止します。 1: 割込みを許可します。 [bit10]TIE(Transmitter Interrupt Enable) 送信割込み要求を許可します。TDRE が "1" のとき送信割込みが許可されると , 送信割 込みが直ちに生成されます。 0: 割込みを禁止します。 1: 割込みを許可します。 [bit9]RBF (Receiver Busy Flag) UART0 がインプットデータを受信中であることを示すフラグです。スタートビットが 検出されるとセットされ , ストップビットが検出されるとクリアされます。 0: 受信側がアイドル状態 1: 受信側がビジー状態 [bit8]TBF (Transmitter Busy Flag) UART0 がインプットデータを送信中であることを示すフラグです。送信データが UODR0 レジスタに書き込まれるとセットされ , 送信が完了するとクリアされます。 0: 送信側がアイドル状態 1: 送信側がビジー状態 212 第 16 章 UART0 16.3.3 インプットデータレジスタ 0(UIDR0) と アウトプットレジスタ 0(UODR0) インプットデータレジスタ 0(UIDR0) は , シリアル・データ・インプット・レジスタ であり , アウトプットレジスタ 0(UODR0) は , シリアル・データ・アウトプット・ レジスタです。 データ長が 6 ビットの場合最大有効ビットの D7 と D6 が無視され , データ長が 7 ビットの場合最大有効ビットの D7 が無視されます。USR0 レジスタ中の TDRE=1 のときのみ UODR0 に書き込みし , USR0 レジスタ中の RDRF=1 のときのみ UIDR0 を読出しできます。 ■ インプットデータレジスタ 0(UIDR0) とアウトプットレジスタ 0(UODR0) インプットデータレジスタ/アウトプットデータレジスタ0 アドレス:000022H リード/ライト 初期値 R/W:リード/ライト可能 X :不定値 bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) UIDR0(リード) UODR0(ライト) 213 第 16 章 UART0 16.3.4 レート・データレジスタ 0(URD0) レート・データレジスタ 0(URD0) は , UART0 用のデータ転送速度を選択するレジス タです。送信データ長が 9 ビットのとき , データの最大有効ビット (bit8) を保持し ます。UART0 が停止中にボーレートとパリティを設定してください。 ■ レート・データレジスタ 0(URD0) レート/データレジスタ0 アドレス:ch.0 000023H リード/ライト 初期値 bit 15 14 13 12 11 10 9 8 BCH RC3 RC2 RC1 RC0 BCH0 P D8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (1) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (X) URD0 R/W:リード/ライト可能 X :不定値 ● レート・データレジスタ 0(URD0) の内容 [bit15, bit10]BCH, BCH0 (Baud rate clock change) ボーレートクロック用のマシンサイクルを指定します (詳細については , 「16.4 UART0 の動作」を参照)。 表 16.3-3 マシンサイクルの設定例 < 注意事項 > BCH BCH0 分周比 各マシンサイクルの設定例 0 0 - 設定禁止 0 1 4 分周 16MHz マシンサイクル 16/4=4MHz 1 0 3 分周 12MHz マシンサイクル 12/3=4MHz 1 1 5 分周 10MHz マシンサイクル 10/5=2MHz BCH と BCH0 を "00B" に設定しないでください。 [bit14 ∼ bit11]RC3 ∼ RC0 (Rate control) UART0 ポート用のクロック入力を選択します ( 詳細については ,「16.4 UART0 の動 作」を参照 )。 表 16.3-4 クロック入力選択 RC3 ∼ RC0 "0000B" ∼ "1011B" < 注意事項 > 214 クロック入力 専用ボーレートジェネレータ "1101B" 16bit リロードタイマ 0 "1111B" 外部クロック レートコントロールビットを "1100B", "1110B" に設定しないでください。 第 16 章 UART0 [bit9]P(Parity): パリティがアクティブのとき , 偶数 / 奇数パリティを設定します (PEN=1)。 0: 偶数パリティ 1: 奇数パリティ [bit8]D8 モード 2 または 3 (9bit データ長), およびパリティなしでの転送データの bit8 を保持 します。読出し時には UIDR0 レジスタの bit8 として , 書込み時には UODR0 レジスタ の bit8 として扱われます。その他のモードでは意味を持ちません。USR0 レジスタ中で TDRE=1 のときのみ D8 に書き込みます。 215 第 16 章 UART0 16.4 UART0 の動作 表 16.4-1 に , UART0 の動作モードを示します。モードを切り換えるには , UMC0 レ ジスタに値を設定します。 ■ UART0 の動作モード 表 16.4-1 UART0 の動作モード モード パリティ データ長 On 6 Off 7 On 7 Off 8 Off 8+1 On 8 Off 9 クロックモード ストップビット長 * CLK 非同期または CLK 同期 1bit または 2bit 0 1 2 3 *: ストップビット長については , 送信動作のみ指定が可能です。受信動作については常に 1 ビット 長となります。UART0 は上記モード以外では動作しませんので , 設定しないでください。 < 注意事項 > 216 UART0 は , 調歩クロック同期転送を使用するので , クロック同期転送でもスタート ビットとストップビットをデータに追加します。 第 16 章 UART0 16.5 ボーレート 専用ボーレートジェネレータ使用時には , 次の 2 種類があります。 • CLK 同期ボーレート • CLK 非同期ボーレート ■ CLK 同期ボーレート BCH, BCH0, RC3, RC2, RC1 の 5 つの URD0 レジスタが CLK 同期転送用のボーレート を選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 1 ⇒ 4 分周 [たとえば,16MHz 時 16/4=4MHz] 1 0 ⇒ 3 分周 [たとえば,12MHz 時 12/3=4MHz] 1 1 ⇒ 5 分周 [たとえば,10MHz 時 10/5=2MHz] 次に , 上記で選択したクロックの分周比を RC3, RC2, RC1 に設定します。CLK 同期転 送には , 以下の 3 つの設定が可能です。それ以外の設定は禁止されます。 RC3 RC2 RC1 0 1 0 ⇒ 2 分周 [たとえば,4MHz 時 4/2=2.0M(bps)] 0 1 1 ⇒ 4 分周 [たとえば,4MHz 時 4/4=1.0M(bps)] 1 0 0 ⇒ 8 分周 [たとえば,4MHz 時 4/8=0.5M(bps)] (2MHz 時,上記の例の半分の速度になります。) ■ CLK 非同期ボーレート BCH, BCH0, RC3, RC2, RC1, RC0 の 6 つの URD レジスタが CLK 非同期転送用のボー レートを選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 1 ⇒ 4 分周 [たとえば,16MHz 時 16/4=4MHz] 1 0 ⇒ 3 分周 [たとえば,12MHz 時 12/3=4MHz] 1 1 ⇒ 5 分周 [たとえば,10MHz 時 10/5=2MHz] 次に , 上記で選択したクロックの非同期転送クロック分周比を RC3, RC2, RC1, RC0 に 設定します。CLK 同期転送には , 以下の設定が可能です。 217 第 16 章 UART0 RC3 RC2 RC1 RC0 0 0 0 ⇒ 8×1分周 0 1 0 ⇒ 8×2分周 0 1 1 ⇒ 8×4分周 1 0 0 ⇒ 8×8分周 0 0 1 ⇒ 分周なし 1 0 1 ⇒ 8 分周 × × 0 ⇒ 12分周 1 ⇒ 13分周 0 ⇒ 設定禁止 1 ⇒ 8 分周 上記の 12 個のボーレートが選択可能であり , CLK 同期ボーレートの計算方法の公式を 以下に示します。 ボーレート = ボーレート = ボーレート = φ/4 [bps](マシンサイクル=16 MHz) 2m-1 φ/3 [bps](マシンサイクル=12 MHz) 2m-1 φ/5 [bps](マシンサイクル=10 MHz) 2m-1 ここで , φ はマシンサイクルであり , m は RC3 ∼ RC1 の 10 進数表記です。 < 注意事項 > m=0 または m=1 の場合 , 上記公式は計算不可です。 CLK 非同期ボーレートが -1% ∼ +1% の範囲にある場合 , データ転送が可能です。 ボーレートは , CLK 非同期ボーレートを 8 × 13, 8 × 12, 8 で割った値です。 表 16.5-1 に , マシンサイクルが 16MHz, 12MHz, 10MHz 時の例を示します。表中の "-" でマークした設定は使用しないでください。 表 16.5-1 ボーレート CLK 非同期 ( µ s/ ボー) RC 3 RC 2 RC1 RC0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 16MHz 12MHz 10MHz BCH/0=01 BCH/0=10 BCH/0=11 - - 48/ 20833 26/ 38460 26/ 38460 52/ 19230 CLK 非同期分周比 16MHz 12MHz 10MHz BCH/0=01 BCH/0=10 BCH/0=11 8 × 12 - - - 8 × 13 - - - 8 - - - - - 1 2/500000 2/500000 4/250000 8 - - - 0 48/ 20833 48/ 20833 96/10417 8 × 12 - - - 0 1 52/ 19230 52/ 19230 104/ 9615 8 × 13 0.5 / 2M 0.5 / 2M 1 / 1M 1 1 0 96/10417 8 × 12 - - - 1 1 1 104/ 9615 104/ 9615 208/ 4808 8 × 13 1 / 1M 1 / 1M 2 / 500K 1 0 0 0 192/ 5208 192/ 5208 8 × 12 - - - 1 0 0 1 208/ 4808 208/ 4808 416/ 2404 8 × 13 2 / 500K 2 / 500K 4 / 250K 1 0 1 0 1 0 1 1 218 - - CLK 同期 ( µ s/ ボー) 96/10417 192/ 5208 - - 16/ 62500 16/ 62500 32/ 31250 8 - - - 8 - - - 第 16 章 UART0 内部クロックおよび外部クロック 16.6 RC3 ∼ RC0 を "1101B" に設定すると , 16bit リロードタイマからのクロック信号を 選択することになります。RC3 ∼ RC0 を "1111B" に設定すると , 外部クロックを 選択することになります。尚 , 外部クロックの最大周波数は 2MHz です。 ■ 内部クロックおよび外部クロック CLK 非同期ボーレートは , CLK 同期ボーレートを 8 で割ったものです。また , CLK 非 同期ボーレートが選択したボーレート -1% ∼ +1% の範囲にある場合 , データ転送が可 能です。表 16.6-1 に , 内部タイマをクロックとして選択した場合のボーレートを示し ます。本表の値は , マシンサイクルを 7.3728MHz として計算しています。ただし , 表 中の "-" でマークした設定は使用しないでください。 ボーレート= φ/X 8×2 (n+1) [bps] φ:マシンサイクル X:内部タイマのカウントクロックソースの分周比 n:リロード値 (10進数) 表 16.6-1 ボーレートとリロード値 ボーレート (bps) リロード値 X= 21( マシンクロックの 2 分周 ) X= 23( マシンクロックの 8 分周 ) 76800 2 - 38400 5 - 19200 11 2 9600 23 5 4800 47 11 2400 95 23 1200 191 47 600 383 95 300 767 191 表中の値は , 16bit リロードタイマのリロードカウント動作のリロード値 (10 進数 ) です。 219 第 16 章 UART0 16.7 転送データフォーマット UART0 は , NRZ (non-return-to-zero) 形式のデータのみを扱います。図 16.7-1 に , 送受信クロックと CLK 同期モードのデータとの関係を示します。 ■ 転送データフォーマット 図 16.7-1 転送データフォーマット SCK0 SIN0,SOT0 0 起動 1 LSB 0 1 1 0 転送されたデータは01001101B(モード1)または101001101B(モード3) 1 0 0 MSB 1 1 ⎫ 停止 D8 停止 ⎬ モードに依存 ⎭ 図 16.7-1 に示すように , 転送データは必ずスタートビット("L" レベルデータ)より始 まり, LSB ファーストで指定されたデータビット長転送が行われ, ストップビット ("H" レベルデータ)で終了します。外部クロックを選択している場合は , 常にクロックを入 力してください。 内部クロック(専用ボーレートジェネレータまたは 16bit リロードタイマ)を選択して いる場合 , クロックは連続的に出力されます。CLK 同期転送を使用する場合 , 選択した ボーレートクロックが安定 (2 ボーレートクロックサイクル)するまでデータ転送を 開始しないでください。 CLK 非同期転送を使用する場合 , UMC0 レジスタ中の SCKE ビットを "0" に設定し , ク ロック出力を無効にしてください。SIN0 と SOT0 の転送データフォーマットは , 図 16.7-1 に示すものと同じです。 220 第 16 章 UART0 16.8 パリティビット URD0 レジスタ中の P( パリティ ) ビットは , パリティが許可されている場合に偶数 / 奇数パリティのどちらを使用するかを指定します。UMC0 レジスタ中の PEN( パリ ティイネーブル ) ビットはパリティを許可します。 ■ パリティビット 偶数パリティ設定時に図 38 に示すデータを SIN0 に入力すると , 受信パリティエラー が発生します。図 16.8-1 には, 001101B を偶数/奇数パリティで送信時に送信されるデー タも示しています。 図 16.8-1 パリティを許可したシリアルデータ SIN0 (受信パリティエラー発生P=0) 0 起動 1 LSB 0 1 1 0 0 0 1 停止 MSB (パリティ) SOT0 (偶数パリティ送信P=0) 0 起動 1 LSB 0 1 1 0 0 1 1 停止 MSB (パリティ) SOT0 (奇数パリティ送信P=1) 0 起動 1 LSB 0 1 1 0 0 0 1 停止 MSB (パリティ) 221 第 16 章 UART0 16.9 割込み生成とフラグのセットタイミング UART0 には , 2 つの割込み要因と 6 個のフラグがあります。2 つの割込み要因には , 受信割込みと送信割込みがあります。6 個のフラグとは , RDRF, ORFE, PE, TDRE, RBF, TBF です。受信については , RDRF, ORFE, PE フラグが割込みを要求します。 送信については , TDRE フラグが割込みを要求します。 ■ 6 つのフラグのセットタイミング ● RDRF フラグ RDRF は UIDR0 レジスタに受信データがロードされるとセットされます。UMC0 レジ スタ中の RFC に "0" を書き込むか , UIDR0 レジスタを読み出すと , クリアされます。 ● ORFE フラグ ORFE フラグは , オーバランまたはフレーミングエラーフラグです。受信エラーが発生 した場合にセットされ, UMC0レジスタ中のRFCに"0"を書き込むと, クリアされます。 ● PE フラグ PE フラグは , 受信パリティエラーフラグです。受信パリティエラーが発生した場合に セットされ , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。パリティ 検出機能はモード 2 では有効ではないので注意してください。 ● TDRE フラグ TDRE フラグは , UODR0 レジスタが空になり書込み可能になったときにセットされ , UODR0 レジスタに書込みを行うと , クリアされます。上記の 4 個のフラグ (RDRF, ORFE, PE, TDRE) は , 送受信割込みを起動します。 ● RBF と TBF フラグ RBF と TBF フラグは , 受信または送信が進行中であることを示します。RBF は受信中 にアクティブになります。TBF は送信中にアクティブになります。 222 第 16 章 UART0 16.9.1 受信動作時(モード 0, モード 1, モード 3)のフラグ のセットタイミング RDRF, ORFE, PE フラグは , 受信転送が終了し最後のストップビットを検出すると きにセットされ , CPU への割込み要求が発生します。ORFE, PE のどちらかのビッ トがアクティブ時には , UIDR0 中のデータは無効となります。 ■ 受信動作時(モード 0, モード 1, モード 3)のフラグのセットタイミング 図 16.9-1 , 図 16.9-2 , 図 16.9-3 に , RDRF, ORFE, PE フラグのセットタイミングを示しま す。 図 16.9-1 RDRF のセットタイミング (モード 0, モード 1, モード 3) データ 停止 (停止) RDRF 受信割込み 図 16.9-2 ORFE のセットタイミング (モード 0, モード 1, モード 3) データ 停止 データ RDRF = 1 RDRF = 0 ORFE ORFE 受信割込み 受信割込み (オーバランエラー) 停止 (フレーミングエラー) 図 16.9-3 PE のセットタイミング (モード 0, モード 1, モード 3) データ 停止 (停止) PE 受信割込み 223 第 16 章 UART0 16.9.2 受信動作時(モード 2)のフラグのセットタイミング RDRF フラグは , 最後のストップビットを検出し , 最後のデータビット (D8) の値が "1" で受信転送が終了するときにセットされます。 ORFE フラグは , 最後のデータビット (D8) の値に無関係に , 最後のストップビット を検出するときにセットされます。ORFE ビットがアクティブ時には , UIDR0 中の データは無効となります。 どれかのフラグがセットされると , CPU への割込み要求が発生します (モード 2 の 使用法の詳細については , 「16.10 UART0 の応用例」を参照)。 ■ 受信動作時(モード 2)のフラグのセットタイミング 図 16.9-4 RDRF のセットタイミング(モード 2) データ D6 D7 D8 停止 (停止) RDRF 受信割込み 図 16.9-5 ORFE のセットタイミング (モード 2) データ D7 D8 停止 データ RDRF=1 RDRF=0 ORFE ORFE 受信割込み 受信割込み (オーバランエラー) 224 D7 D8 停止 (フレーミングエラー) 第 16 章 UART0 送信動作時のフラグのセットタイミング 16.9.3 送信動作時に UODR0 フラグに書き込まれたデータは , 内部シフトレジスタに転送 されます。この時 , TDRE フラグがセットされ , CPU への割込み要求が発生して , 次 のデータを UODR0 フラグに書込みができるようになります。 ■ 送信動作時のフラグのセットタイミング 図 16.9-6 TDRE のセットタイミング(モード 0) UODR0ライト TDRE CPUへ割込みを要求する。 送信割込み SOT0出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3 ST:スタートビット D0~D7:データビット SP:ストップビット 225 第 16 章 UART0 送受信動作時のステータスフラグ 16.9.4 送受信動作時に , RBF フラグは , スタートビットが検出されるとセットされ , ストッ プビットが検出されるとクリアされます。UIDR0 中の受信データは , RBF クリアタ イミングではまだ無効状態です。UIDR0 中のデータは , RDRF セットタイミングで 有効になります。 ■ 送受信動作時のステータスフラグ 図 16.9-7 に , RBF と受信割込みフラグのタイミングとの関係を示します。 図 16.9-7 RBF のセットタイミング (モード 0) SIN0入力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP RBF RDRF, PE, ORFE ST:スタートビット D0 ∼ D7:データビット SP:ストップビット UODR0 に送信データを書き込むと , TBF がセットされ , 送信が完了するとクリアされ ます。 図 16.9-8 TBF のセットタイミング (モード 0) UODR0ライト SOT0出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP TBF ST:スタートビット D0 ∼ D7:データビット SP:ストップビット < 注意事項 > SIN0 入力端子が "1" に固定されていない限り , 受信動作はリセットのリリース後に 開始します。このため , モードを設定する前に , UMC0 レジスタ中の RFC に "0" を 書き込み , セットされているすべての受信フラグをクリアしてください。 USR0 レジスタ中の RBF と TBF フラグが "0" のとき , 通信モードをセットしてくだ さい。モード設定中の送受信データは保証されません。 ■ EI2OS (拡張インテリジェント I/O サービス) 拡張インテリジェント I/O サービス (EI2OS) の詳細については , 「3.7 拡張インテリ ジェント I/O サービス (EI2OS)」を参照してください。 226 第 16 章 UART0 16.10 UART0 の応用例 モード 2 は , 1 台のホスト CPU の数台のスレーブ CPU が接続されるような場合に 使用されます( 図 16.10-1 を参照)。 ■ UART0 の応用例 図 16.10-1 RBF のセットタイミング(モード 0) SIN0入力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP RBF RDRF, PE, ORFE ST:スタートビット D0 ∼ D7:データビット SP:ストップビット 図 16.10-2 に示すように , 通信は , ホスト CPU がアドレスデータを転送することによっ て始まります。アドレスデータは , 9 番目のビット (D8) が "1" にセットされています。 これにより通信先となるスレーブ CPU が選択され , ユーザが決定したプロトコルを使 用してホスト CPU との通信を行います。通常データは D8 が "0" にセットされていま す。非選択のスレーブ CPU は , 次の通信セッションが始まるまでスタンバイ状態で待 機します。図 16.10-3 に , 本モードでの動作フローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので , UMC0 レジスタ の PEN ビットは "0" としてください。 図 16.10-2 モード 2 使用時のシステム構築例 SOT0 SIN0 ホストCPU SOT0 SIN0 SOT0 SIN0 スレーブCPU#0 スレーブCPU#1 227 第 16 章 UART0 図 16.10-3 モード 2 使用時の通信フローチャート (ホストCPU) (スレーブCPU) 起動 起動 転送モードを3とする 転送モードを"2"にセット D0~D7にスレーブCPU選択, D8に"1"をセットし,1バイト 転送 1バイト受信 選択 ? D8に"0"をセットし,通信を 実行 終了 YES 転送モードを"3"にセッし, SOTO出力を許可 マスターCPUで通信を実行 ステータスフラグを使用し て転送の完了を確認,転送 モードを"2"にセットして SOTO出力を禁止 228 NO 第 17 章 UART1(SCI) UART1(SCI) の機能と動作について説明します。 17.1 UART1 の特長 17.2 UART1 のブロックダイヤグラム 17.3 UART1 のレジスタ一覧 17.4 UART1 の動作モードとクロック選択 17.5 UART1 のフラグと割込み発生要因 17.6 UART1 の割込みとフラグのセットタイミング 17.7 UART1 の応用例と使用上の注意 229 第 17 章 UART1(SCI) 17.1 UART1 の特長 UART1 は , 非同期(調歩同期)通信 , または CLK 同期通信を行うためのシリアル I/O ポートです。 ■ UART1 の特長 UART1 には以下の特長があります。 • 全二重ダブルバッファ • 非同期 ( 調歩同期 ), CLK 同期通信が可能 • マルチプロセッサモードのサポート • 専用ボーレートジェネレータ内蔵 • 非同期 : 9615/31250/4808/2404/1202 bps CLK同期: 1M/500K/250K/125K/62.5K bps 内部マシンクロック 16,12,10,8,6MHz 時 • 外部クロックによる自由なボーレートの設定が可能 • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 転送信号は NRZ 符号 • インテリジェント I/O サービスのサポート 230 第 17 章 UART1(SCI) 17.2 UART1 のブロックダイヤグラム 図 17.2-1 に , UART1 のブロックダイヤグラムを示します。 ■ UART1 のブロックダイヤグラム 図 17.2-1 UART1 のブロックダイヤグラム 制御記号 受信割込み(CPUへ) 専用ボーレートジェネレータ SCK1 送信クロック 16bitリロードタイマ0 クロック 選択回路 送信割込み(CPUへ) 受信クロック 外部クロック SIN1 受信制御回路 送信制御回路 スタートビット 検出回路 送信スタート回路 受信ビットカウンタ 送信ビットカウンタ 受信パリティ カウンタ 送信パリティ カウンタ SOT1 送信用シフタ 受信用シフタ 受信状態判定回路 受信終了 送信開始 SIDR1 SODR1 EI2OS用 受信エラー発生信号 (CPUへ) F2MC-16 BUS SMR1 レジスタ MD1 MD0 CS2 CS1 CS0 SCKE SOE SCR1 レジスタ PEN P SBL CL A/D REC RXE TXE SSR1 レジスタ PE ORE FRE RDRF TDRE RIE TIE 制御記号 231 第 17 章 UART1(SCI) UART1 のレジスタ一覧 17.3 図 17.3-1 に , UART1 のレジスタ一覧を示します。 ■ UART1 のレジスタ一覧 図 17.3-1 UART1 のレジスタ一覧 bit 15 8 7 0 SCR1 SMR1 (R/W) SSR1 SIDR1(R)/SODR1(W) (R/W) U1CDCR – (R/W) 8bit 8bit bit 7 アドレス: 000024 H MD1 6 MD0 5 CS2 4 CS1 3 CS0 2 予約 1 SCKE 0 SOE bit 15 アドレス: 000025 H PEN 14 P 13 SBL 12 CL 11 A/D 10 REC 9 RXE 8 TXE bit 7 アドレス: 000026 H D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 bit 15 PE 14 ORE 13 FRE 12 RDRF 11 TDRE 10 – 9 RIE 8 TIE 6 – 5 – 4 – 3 DIV3 2 DIV2 1 DIV1 0 DIV0 シリアルモードレジスタ1 (SMR1) アドレス: 000027 H シリアルコントロール レジスタ1(SCR1) シリアルインプットレジスタ1 シリアルアウトプット レジスタ1(SIDR1/SODR1) シリアルステータスレジスタ1 (SSR1) bit アドレス: 000028 H R/W:リード/ライト可能 232 7 MD UART1通信プリスケーラ コントロールレジスタ(U1CDCR) 第 17 章 UART1(SCI) 17.3.1 シリアルモードレジスタ 1(SMR1) シリアルモードレジスタ 1(SMR1) は , UART1 の動作モードを指定します。動作 モードの設定は動作停止中に行い , 動作中にこのレジスタへの書込みは行わないで ください。 ■ シリアルモードレジスタ 1 (SMR1) 以下にシリアルモードレジスタ 1(SMR1) のビット構成を示します。 bit 7 SMR1 アドレス: 000024 H MD1 R/W R/W : リード / ライト可能 6 5 4 3 2 1 0 初期値 MD0 CS2 CS1 CS0 予約 SCKE SOE 00000000B R/W R/W R/W R/W R/W R/W R/W [bit7, bit6]MD1, MD0 (MoDe select): このビットでは , UART1 の動作モードを選択します。表 17.3-1 に , 動作モード選択設 定を示します。 表 17.3-1 動作モード選択設定 < 注意事項 > モード MD1 MD0 0 0 0 非同期(調歩同期)ノーマルモード 1 0 1 非同期(調歩同期)マルチプロセッサモード 2 1 0 CLK 同期モード - 1 1 設定禁止 動作モード モード 1 の CLK 非同期モード(マルチプロセッサ)とは , 1 台のホスト CPU に数台 のスレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形 式を判別できません。したがって , マルチプロセッサモードのマスタのみをサポート します。 また , パリティチェック機能は使用できませんので UMC1 レジスタの PEN は "0" に 設定してください。 [bit5 ∼ bit3]CS2 ∼ CS0 (Clock Select): このビットでは , ボーレートクロックソースを選択します。専用ボーレートジェネレー タを選択した場合には , 同時にボーレートも決定されます。表 17.3-2 に , クロック入力 選択設定を示します。 表 17.3-2 クロック入力選択設定 CS2 ∼ CS0 クロック入力 000B ∼ 100B 専用ボーレートジェネレータ 101B 予約 110B 内部タイマ * 111B 外部クロック *: 内部タイマを選択した場合 , MB90595 シリーズではリロードタイマ 0 出力が選択されます。 233 第 17 章 UART1(SCI) [bit2] 予約ビット 必ず "0" を書き込んでください。 [bit1]SCKE(SCLK Enable): CLK 同期モード ( モード 2) で通信を行う場合 , SCK1 端子をクロック入力端子にする か , クロック出力端子として使うかを指定します。 CLK 非同期モード時または外部クロックモード時では "0" に設定してください。 0: クロック入力端子として機能します。 1: クロック出力端子として機能します。 < 注意事項 > クロック入力端子として使うには , 外部クロックソースが選択されている必要があ ります。 [bit0]SOE(Serial Output Enable): 汎用 I/O ポート端子と兼用されている外部端子 (SOT1) を , シリアル出力端子として使 うか , I/O ポート端子として使うかを指定します。 0: 汎用 I/O ポート端子として機能します。 1: シリアルデータ出力端子 (SOT1) として機能します。 234 第 17 章 UART1(SCI) 17.3.2 シリアルコントロールレジスタ (SCR1) シリアルコントロールレジスタ (SCR1) は , シリアル通信を行う場合の転送プロトコ ルを制御します。 ■ シリアルコントロールレジスタ (SCR1) 図 17.3-2 に , シリアルコントロールレジスタ (SCR1) のビット構成を示します。 図 17.3-2 シリアルコントロールレジスタ (SCR1) のレジスタ一覧 bit 15 SCR1 アドレス: 000025 H PEN 14 13 12 11 10 9 8 初期値 P SBL CL A/D REC RXE TXE 00000100B R/W R/W : リード / ライト可能 W :ライトオンリ R/W R/W R/W R/W W R/W R/W [bit15]PEN(Parity Enable) シリアル通信において, パリティを付加してデータ通信を行うかどうかを指定します。 0: パリティなし 1: パリティあり < 注意事項 > パリティを付加できるのは , 非同期(調歩同期)通信モードのノーマルモード(モー ド 0)のみです。マルチプロセッサモード(モード 1)および CLK 同期通信(モー ド 2)では , パリティを付加することはできません。 [bit14]P(Parity) パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。 0: 偶数パリティ 1: 奇数パリティ [bit13]SBL(Stop Bit Length) 非同期(調歩同期)通信を行うときのフレームエンドマークである , ストップビットの ビット長を指定します。 0:1 ストップビット 1:2 ストップビット [bit12]CL(Character Length) 送受信する 1 フレームのデータ長を指定します。 0:7 ビットデータ 1:8 ビットデータ < 注意事項 > 7 ビットデータを扱えるのは , 非同期(調歩同期)通信のうちのノーマルモード(モー ド 0)のみです。マルチプロセッサモード(モード 1)および CLK 同期通信(モー ド 2)では , 8 ビットデータとしてください。 235 第 17 章 UART1(SCI) [bit11]A/D(Address/Data) 非同期(調歩同期)通信のマルチプロセッサモード(モード 1)において , 送信するフ レームのデータ形式を指定します。 0: データフレーム 1: アドレスフレーム [bit10]REC(Receiver Error Clear) SSR1 レジスタのエラーフラグ (PE, ORE, FRE) をクリアします。 "1" 書込みは無効であり , 読出し値は常に "1" になります。 [bit9]RXE(Receiver Enable) UART1 の受信動作を制御します。 0: 受信動作を禁止します。 1: 受信動作を許可します。 < 注意事項 > 受信中(受信シフトレジスタにデータが入力されているとき)に受信動作を禁止し た場合には , そのフレームの受信を完了し受信データバッファ SIDR1 レジスタに受 信データをストアしたところで受信動作を停止します。 [bit8]TXE (Transmitter Enable) UART1 の送信動作を制御します。 0: 送信動作を禁止します。 1: 送信動作を許可します。 < 注意事項 > 236 送信中(送信レジスタからデータが出力されているとき)に送信動作を禁止した場 合は , 送信データバッファSODR1 レジスタにデータがなくなった後に送信動作を停 止します。 "0" の書込みは , SODR1 レジスタにデータを書き込んだ後は , 一定の期間を置いて 行ってください。一定の期間は , ブロック非同期転送モード時は , ボーレートの 1/16 時間です。クロック同期転送モード時は , ボーレートの時間です。 第 17 章 UART1(SCI) 17.3.3 シリアルインプットデータレジスタ 1(SIDR1)/ シリ アルアウトプットデータレジスタ 1(SODR1) シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジス タ 1(SODR1) レジスタは , 受信 / 送信用のデータバッファレジスタです。 ■ シリアルインプットデータレジスタ 1(SIDR1) / シリアルアウトプットデータレジ スタ 1(SODR1) 以下に SIDR1 と SODR1 のビット構成を示します。 SIDR1 bit アドレス: 000026 H SODR1 bit アドレス: 000026 H R W 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 R R R R R R R R 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 W W W W W W W W 初期値 不定 初期値 不定 :リードオンリ :ライトオンリ シリアルインプットデータレジスタ 1 (SIDR1) は , シリアルデータ受信用のデータバッ ファレジスタです。シリアルアウトプットデータレジスタ 1 (SODR1) は , シリアルデー タ送信用のデータバッファレジスタです。データ長が 7bit の場合 , 上位 1bit(D7) は無効 データとなります。SODR1 レジスタへの書込みは , SSR1 レジスタの TDRE が "1" のと きに行ってください。 < 注意事項 > このアドレスへのライトは SODR1 レジスタへの書込みを , リードは SIDR1 レジス タの読出しを意味します。 237 第 17 章 UART1(SCI) 17.3.4 シリアルステータスレジスタ 1(SSR1) シリアルステータスレジスタ 1(SSR1) は , UART1 の動作状態を表すフラグで構成さ れています。 ■ シリアルステータスレジスタ 1(SSR1) 以下にシリアルステータスレジスタ 1(SSR1) のビット構成を示します。 bit SSR1 アドレス: 000027 H 15 14 13 12 11 10 9 8 初期値 PE ORE FRE RDRF TDRE – RIE TIE 00001-00B R R R R – R/W R/W R R/W : リード / ライト可能 R : リードオンリ − : 未定義 [bit15]PE(Parity Error) 受信時にパリティエラーが発生したときにセットされる , 割込み要求フラグです。一度 セットされたフラグをクリアするには , SCR1 レジスタの REC ビット (bit10) に "0" を 書き込みます。 本ビットがセットされた場合には , SIDR1 のデータは無効データとなります。 0: パリティエラーなし 1: パリティエラー発生 [bit14]ORE(Over Run Error) 受信時にオーバランエラーが発生したときにセットされる , 割込み要求フラグです。一 度セットされたフラグをクリアするには , SCR1 レジスタの REC ビット (bit10) に "0" を 書き込みます。 本ビットがセットされた場合には , SIDR1 のデータは無効データとなります。 0: オーバランエラーなし 1: オーバランエラー発生 [bit13]FRE(Framing Error) 受信時にフレーミングエラーが発生したときにセットされる , 割込み要求フラグです。 一度セットされたフラグをクリアするには , SCR1 レジスタの REC ビット (bit10) に "0" を書き込みます。 本ビットがセットされた場合には , SIDR1 のデータは無効データとなります。 0: フレーミングエラーなし 1: フレーミングエラー発生 [bit12]RDRF(Receiver Data Register Full) SIDR1 レジスタに受信データがあることを示す , 割込み要求フラグです。 SIDR1 レジスタに受信データがロードされるとセットされ , SIDR1 レジスタを読み出 すと自動的にクリアされます。 0: 受信データなし 1: 受信データあり 238 第 17 章 UART1(SCI) [bit11]TDRE(Transmitter Data Register Empty) SODR1 に送信データを書き込めることを示す , 割込み要求フラグです。 SODR1 レジスタに送信データを書き込むとクリアされます。書き込んだデータが送信 用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを書き 込めることを表します。 0: 送信データの書込み禁止 1: 送信データの書込み許可 [bit9]RIE(Receiver Interrupt Enable) 受信割込みを制御します。 0: 割込みを禁止します。 1: 割込みを許可します。 < 注意事項 > 受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信 があります。 [bit8]TIE(Transmitter Interrupt Enable) 送信割込みを制御します。 0: 割込みを禁止します。 1: 割込みを許可します。 < 注意事項 > 送信割込み要因は , TDRE による送信要求です。 239 第 17 章 UART1(SCI) 17.3.5 UART1 通信プリスケーラコントロールレジスタ (U1CDCR) UART1 通信プリスケーラコントロールレジスタ (U1CDCR) は , マシンクロックの分 周を制御するレジスタです。UART1 の動作クロックは , マシンクロックを分周する ことにより得られます。この通信プリスケーラによって , 種々のマシンクロックに 対して一定のボーレートが得られるように設計されています。 本通信プリスケーラ出力は , 拡張 I/O シリアルインタフェースの動作クロックにも使 われています。 ■ UART1 通信プリスケーラコントロールレジスタ (U1CDCR) 以下に U1CDCR のビット構成を示します。 7 MD 6 – 5 – 4 – 3 DIV3 2 DIV2 1 DIV1 0 DIV0 R/W R/W : リード / ライト可能 − : 未定義 – – – R/W R/W R/W R/W bit U1CDCR アドレス: 000028 H 初期値 0---1111B [bit7]MD(Machine clock devide MoDe select) 通信プリスケーラの動作許可ビットです。 0: 通信プリスケーラは停止します。 1: 通信プリスケーラは動作します。 [bit3 ∼ bit0]DIV3 ∼ DIV0 (DIVide 3 ∼ DIVide0) 表 17.3-3 に示す表に従い , マシンクロックの分周比を決定します。 表 17.3-3 マシンクロックの分周比 DIV3 ∼ DIV0 分周比 * 1101B 3 分周 1100B 4 分周 1011B 5 分周 1010B 6 分周 1001B 7 分周 1000B 8 分周 *: 分周比を変えた場合はクロックの安定時間として 2 周期分の時間を置いてから通 信を行ってください。 240 第 17 章 UART1(SCI) 17.4 UART1 の動作モードとクロック選択 UART1 は , 非同期モードと CLK 同期モードの 2 種類の動作モードを持ち , SMR1 レ ジスタ , SCR1 レジスタに値を設定する事によりモードを切換えることができます。 ■ UART1 の動作モード 表 17.4-1 に , UART1 の動作モードを示します。 表 17.4-1 UART1 の動作モード モード パリティ データ長 有/無 7 有/無 8 1 無 8+1 2 無 8 0 動作モード 非同期(調歩同期) ノーマルモード ストップビット長 * 1bit または 2bit 非同期(調歩同期) マルチプロセッサモード CLK 同期モード 無 *: 非同期(調歩同期)モードでのストップビット長については , 送信動作のみ指定が可能です。受 信動作については常に 1 ビット長となります。上記モード以外では動作しませんので , 設定しな いでください。 241 第 17 章 UART1(SCI) ■ UART1 のクロック選択 ● 専用ボーレートジェネレータ 表 17.4-2 および表 17.4-3 に , 専用ボーレートジェネレータを選択したときのボーレー トを 示します。また , 表 17.4-4 に , 通信プリスケーラ設定値を示します。 表 17.4-2 ボーレート(非同期時) CS2 CS1 CS0 非同期時(調歩同期) 算出式 0 0 0 9615 ( φ ÷ div)/(8 × 13 × 2) 0 0 1 4808 ( φ ÷ div)/(8 × 13 × 22) 0 1 0 2404 ( φ ÷ div)/(8 × 13 × 23) 0 1 1 1202 ( φ ÷ div)/(8 × 13 × 24) 1 0 0 31250 ( φ ÷ div)/26 表 17.4-3 ボーレート(CLK 同期時) CS2 CS1 CS0 CLK 同期時 算出式 0 0 0 1M ( φ ÷ div)/2 0 0 1 500 K ( φ ÷ div)/22 0 1 0 250 K ( φ ÷ div)/23 0 1 1 125 K ( φ ÷ div)/24 1 0 0 62.5 K ( φ ÷ div)/25 表中の φ はマシンクロックを示します。 表 17.4-4 通信プリスケーラ設定値 242 MD DIV3 DIV2 DIV1 DIV0 div 推奨マシンクロック 1 1 1 0 1 3 6MHz 1 1 1 0 0 4 8MHz 1 1 0 1 1 5 10MHz 1 1 0 1 0 6 12MHz 1 1 0 0 0 8 16MHz 第 17 章 UART1(SCI) ● 内部タイマ CS2 ∼ CS0 を "110" に設定して内部タイマを選択した場合は , リロードタイマ 0(16 ビッ ト 動作時 ) をリロードモードで動作させます。このときのボーレートの算出式は , 次の とおりです。 非同期(調歩同期):( φ ÷ N)/(16 × 2 × (n+1)) CLK 同期:( φ ÷ N)/(2 × (n+1)) N: タイマのカウントクロックソース n: タイマのリロード値 表 17.4-5 に , マシンクロックを 7.3728MHz としたときのボーレートとリロード値 (10 進数 ) の関係を示します。 表 17.4-5 ボーレートとリロード値 リロード値 ボーレート N=21 (マシンクロックの 2 分周) N=23 (マシンクロックの 8 分周) 2 - 38400 19200 5 - 9600 11 2 4800 23 5 2400 47 11 1200 95 23 600 191 47 300 383 95 ボーレートクロックソースとして内部タイマ ( リロードタイマ 0) を選択した場合には , 16 ビットタイマ 0 の出力信号 TOT0 は, 既に MB90595 コントローラに内部的に接続さ れていることに注意してください。したがって , 16 ビットタイマ 0 の外部出力端子 TOT0 から UART1 の外部クロック入力端子 SCK1 へ外部で接続する必要はありませ ん。また , タイマ端子をほかに使用していなければ , I/O ポート端子として使用するこ とができます。 ● 外部クロック CS2 ∼ CS0 を "111" に設定して外部クロックを選択した場合のボーレートは , 外部ク ロックの周波数を f とすると次のようになります。 非同期 ( 調歩同期 ) : f/16 CLK 同期 : f f の最大値は 2MHz であることに , 注意してください。 243 第 17 章 UART1(SCI) 17.4.1 非同期(調歩同期)モード UART1 は , NRZ (Non Return to Zero) 形式のデータのみを扱います。 ■ 非同期(調歩同期)モードの転送データフォーマット 図 17.4-1 に , 転送データフォーマットを示します。 図 17.4-1 非同期(調歩同期)モードの転送データフォーマット(モード 0, モード 1) SIN1,SOT1 0 1 0 1 1 0 0 Start LSB 1 0 1 1 ........(モード 0) MSB Stop A/D Stop ........(モード 1) 転送されたデータは "01001101 B" 図 17.4-1 に示すように , 転送データは必ずスタートビット("L" レベルデータ)より始 まり, LSB ファーストで指定されたデータビット長転送が行われ, ストップビット ("H" レベルデータ)で終了します。外部クロックを選択している場合は , 常にクロックを入 力してください。 ノーマルモード(モード 0)ではデータ長を 7 ビットまたは 8 ビットに設定することが できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。 また , マルチプロセッサモードではパリティを付加することはできません。そのかわり , A/D ビットが必ず付加されます。 ■ 非同期(調歩同期)モードの受信動作 SCR1 レジスタの RXE ビット (bit9) が "1" ならば , 常に受信動作が行われています。 受信ラインにスタートビットが現れると , SCR1 レジスタで決められたデータフォー マットに従い 1 フレームデータの受信が行われます。1 フレームの受信が終わると , ( エラーが発生した場合にはエラーフラグのセットが行われた後 )RDRF フラグ (SSR1 レジスタ bit12) がセットされます。このとき同じ SSR1 レジスタの RIE ビット (bit9) が "1" にセットされていれば CPU に対して受信割込みが発生します。SSR1 レジスタの各 フラグを調べ , 正常受信なら SIDR1 レジスタをリードして , エラーが発生していれば 必要な処理を行うようにしてください。 RDRF フラグは , SIDR1 レジスタをリードするとクリアされます。 244 第 17 章 UART1(SCI) ■ 非同期(調歩同期)モードの送信動作 SSR1 レジスタの TDRE フラグ (bit11) が "1" のとき , 送信データを SODR1 レジスタに 書き込みます。 ここで, SCR1レジスタの TXEビット(bit8) が"1"なら送信が行われます。 SODR1 レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開 始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな ります。このとき同じ SSR1 レジスタの TIE ビット (bit8) が "1" にセットされていれば CPU に対して送信割込みが発生して , SODR1 レジスタに送信データをセットするよう に要求します。 TDRE フラグは , SODR1 レジスタにデータをセットするといったんクリアされます。 245 第 17 章 UART1(SCI) 17.4.2 CLK 同期モード UART1 は , NRZ (Non Return to Zero) 形式のデータのみを扱います。 ■ CLK 同期モードの転送データフォーマット 図 17.4-2 に , 送受信クロックとデータとの関係を示します。 図 17.4-2 CLK 同期モードの転送データフォーマット ( モード 2) SODR1書込み マーク SCLK RXE,TXE SIN1,SOT1 1 LSB 0 1 1 0 0 1 0 MSB..............(モード 2) 転送されたデータは"01001101 B" 内部クロック(専用ボーレートジェネレータまたは内部タイマ)を選択している場合 は , データを送信するとデータ受信用同期クロックが自動的に生成されます。 外部クロックを選択している場合は , 送信側 UART の送信用データバッファSODR1 レ ジスタにデータがあること(TDRE フラグが "0")を確かめた後 , 正確に 1 バイト分の クロックを供給する必要があります。また , 送信開始前と終了後は , 必ずマークレベル にしてください。 データは 8 ビットのみとなり , パリティを付加することはできません。また , スタート / ストップビットがないのでオーバランエラー以外のエラー検出は行われません。 246 第 17 章 UART1(SCI) ■ CLK 同期モードを使用する場合の , 各制御レジスタの設定値 CLK 同期モードを使用する場合の , 各制御レジスタの設定値を示します。 ● SMR1 レジスタ MD1, MD0 :10 CS2, CS1, CS0: クロック入力を指定 SCKE:専用ボーレートジェネレータまたは内部タイマの場合 1, 外部クロックの場合 0 SOE:送信を行う場合 1, 受信のみの場合 0 ● SCR1 レジスタ PEN:0 P, SBL, A/D:これらのビットは意味を持ちません CL:1 REC:0 (初期化するため) RXE, TXE:少なくとも , どちらか一方を 1 ● SSR1 レジスタ RIE:割込みを使用する場合 1, 割込みを使用しない場合 0 TIE:0 ■ CLK 同期モードの通信開始 SODR1 レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮 の送信データを SODR1 レジスタに書き込む必要があります。 ■ CLK 同期モードの通信終了 SSR1 レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR1 レジ スタの ORE ビットによって , 通信が正常に行われたかを判断してください。 247 第 17 章 UART1(SCI) 17.5 UART1 のフラグと割込み発生要因 UART1 は PE/ORE/FRE/RDRF/TDRE の 5 つのフラグを持ちます。また , 割込み要 因には受信用のものと送信用のものがあります。 ■ UART1 のフラグ UART は , PE/ORE/FRE/RDRF/TDRE の 5 つのフラグを持ちます。PE はパリティエラー , ORE はオーバランエラー , FRE はフレーミングエラーのことで , 受信時エラーが発生 したときにセットされ , SCR1 レジスタの REC に "0" を書き込むとクリアされます。 RDRF は受信データが SIDR1 レジスタにロードされるとセットされ , SIDR1 レジスタ を読み出すことでクリアされます。ただし , モード 1 ではパリティ検出機能 , モード 2 ではパリティ検出機能とフレーミングエラー検出機能はありません。TDRE は , SODR1 レジスタが空になり , 書込み可能な状態になるとセットされ , SODR1 レジスタへ書き 込むとクリアされます。 ■ UART1 の割込み発生要因 UART1 の割込み発生要因には , 受信用のものと送信用のものがあります。受信時は , PE/ ORE/FRE/RDRF により割込みを要求します。送信時は , TDRE により割込みを要求 します。 各動作モード時の割込みとフラグのセットタイミングは , 「17.6 UART1 の割込みとフ ラグのセットタイミング」に示します。参照してください。 248 第 17 章 UART1(SCI) 17.6 UART1 の割込みとフラグのセットタイミング 各動作モード時の割込みとフラグのセットタイミングを示します。 ■ UART1 の割込みとフラグのセットタイミング ● モード 0 の受信動作時 PE, ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフ ラグがセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブ時 には , SIDR1 のデータは無効データとなります。 図 17.6-1 に , PE, ORE, FRE, RDRF のセットタイミング(モード 0)を示します。 図 17.6-1 PE, ORE, FRE, RDRF のセットタイミング(モード 0) データ D6 D7 Stop PE,ORE,FRE RDRF 受信割込み ● モード 1 の受信動作時 ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフラグ がセットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8bit の ため , 最後の 9bit 目のアドレス / データを示すデータは無効データとなります。ORE, FRE がアクティブ時は , SIDR1 のデータは無効データとなります。 図 17.6-2 に , ORE, FRE, RDRF のセットタイミング(モード 1)を示します。 図 17.6-2 ORE, FRE, RDRF のセットタイミング(モード 1) データ D7 アドレス/ データ Stop ORE,FRE RDRF 受信割込み 249 第 17 章 UART1(SCI) ● モード 2 の受信動作時 ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット され , CPU への割込み要求が発生します。ORE がアクティブ時は , SIDR1 のデータは 無効データとなります。 図 17.6-3 に , OR, RDRF のセットタイミング ( モード 2) を示します。 図 17.6-3 ORE, RDRF のセットタイミング ( モード 2) データ D5 D6 D7 ORE RDRF 受信割込み ● モード 0, モード 1, モード 2 の送信動作時 TDRE フラグは , SODR1 レジスタへ送信データが書き込まれるとクリアされます。ま た , SODR1 レジスタ値が内部シフトレジスタに転送されると SODR1 レジスタが書き 込み可能な状態になるため , TDRE フラグがセットされます。このフラグがセットされ ると CPU への割込み要求が発生します。送信動作中に SCR1 レジスタの TXE に "0" ( モード 2 の時は RXE も含む ) を書き込むと , SSR1 レジスタの TDRE が "1" となり , 送 信用のシフタが停止してから UART1 の送信動作を禁止します。送信動作中に SCR1 レ ジスタの TXE に "0"( モード 2 のときは RXE も含む ) を書き込んだ後 , 送信が停止する 前にSODR1レジスタへ書き込まれたデータは送信されます。図 17.6-4 に, TDREのセッ トタイミング ( モード 0, モード 1) を示します。また , 図 17.6-5 に , TDRE のセットタ イミング ( モード 2) を示します。 250 第 17 章 UART1(SCI) 図 17.6-4 TDRE のセットタイミング ( モード 0, モード 1) SODR1書込み TDRE CPUへ割込みを要求する。 SOT1割込み SOT1出力 ST D0 D1 D2 D3 D4 D5 D6 D7 ST:スタートビット D0~D7:データビット SP:ストップビット SP SP A/D ST D0 D1 D2 D3 A/D:アドレス/データマルチプレクサ 図 17.6-5 TDRE のセットタイミング ( モード 2) SODR1書込み TDRE CPUへ割込みを要求する。 SOT1割込み SOT1出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0~D7:データビット 251 第 17 章 UART1(SCI) 17.7 UART1 の応用例と使用上の注意 UART1 の応用例として , モード 1 使用時のシステム構築例と通信フローチャートを 示します。 ■ UART1 の応用例 ( モード 1 使用時のシステム構築例 ) 図 17.7-1 に示すように , モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続 されるような場合に使用されます。このリソースでは , ホスト側の通信インタフェース のみサポートします。 図 17.7-1 モード 1 使用時のシステム構築例 SO SI ホストCPU SO SI スレーブCPU#0 SO SI スレーブCPU#1 ■ UART1 の通信フローチャート 通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス データとは , SCR1 レジスタの A/D が "1" のときのデータで , それにより通信先となる スレーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR1 レジスタの A/D が "0" のときのデータです。図 17.7-2 に , そのフローチャートを 示します。 このモードにおいては , パリティチェック機能は使用できませんので SCR1 レジスタの PEN ビットは "0" としてください。 252 第 17 章 UART1(SCI) 図 17.7-2 モード 1 使用時の通信フローチャート START 転送モードを1とする D0~D7にスレーブCPUを 選択するデータ, A/Dに"1"を セットし1バイト転送 A/Dに"0"をセット 受信動作許可 スレーブCPUと通信 通信終了? NO YES ほかの スレーブ CPU と通信 NO YES 受信動作禁止 END ■ 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービス (EI2OS) については , 「3.7 拡張インテリジェント I/O サービス (EI2OS)」を参照してください。 ■ UART1 の使用上の注意 通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ は保証されません。 253 第 17 章 UART1(SCI) 254 第 18 章 シリアル I/O シリアル I/O の機能と動作について説明します。 18.1 シリアル I/O の概要 18.2 シリアル I/O のレジスタ 18.3 シリアル I/O プリスケーラ (SCDCR) 18.4 シリアル I/O の動作 18.5 ネガティブクロック動作 255 第 18 章 シリアル I/O 18.1 シリアル I/O の概要 シリアル I/O の動作モードには , 以下の 2 種類があります。 • 内部シフトクロックモード……内部クロックに同期してデータ転送を行います。 • 外部シフトクロックモード……外部端子 (SCK2) から入力されるクロックに同期 してデータ転送を行います。このモードで外部端子 (SCK2) を共有している汎用 ポートを操作することにより , CPU の命令による転送動作も可能です。 ■ シリアル I/O のブロックダイヤグラム クロック同期によるデータ転送を可能にするシリアル I/O インタフェースのブロック ダイヤグラムを示します。このインタフェースは 8bit × 1ch 構成で , データは LSB/MSB から転送できます。 図 18.1-1 拡張シリアル I/O インタフェースのブロックダイヤグラム 内部データバス D7~D0(LSBファースト) (MSBファースト)D0~D7 転送方向選択 SIN2 リード ライト SDR(シリアルデータレジスタ) SOT2 SCK2 シフトクロック カウンタ 制御回路 内部クロック 2 1 0 SMD2 SMD1 SMD0 SIE SIR BUSY STOP STRT MODE 割込み要求 内部データバス 256 BDS SOE SCOE 第 18 章 シリアル I/O 18.2 シリアル I/O のレジスタ シリアル I/O のレジスタには , 次の 2 つがあります。 • シリアルモードコントロールステータスレジスタ (SMCS) • シリアルシフトデータレジスタ (SDR) ■ シリアル I/O のレジスタ bit アドレス: 00002DH bit アドレス: 00002CH bit アドレス: 00002EH 15 14 13 12 11 10 9 8 SMD2 SMD1 SMD0 SIE SIR BUSY STOP STRT 7 6 5 4 3 2 1 0 ― ― ― ― MODE BDS SOE SCOE 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 シリアルモードコントロール ステータスレジスタ(SMCS) シリアルデータレジスタ (SDR) 257 第 18 章 シリアル I/O 18.2.1 シリアルモードコントロールステータスレジスタ (SMCS) シリアルモードコントロールステータスレジスタ (SMCS) は , シリアル I/O 転送モー ドを制御するレジスタです。 ■ シリアルモードコントロールステータスレジスタ (SMCS) 15 14 13 12 11 10 9 8 SMD2 SMD1 SMD0 SIE SIR BUSY STOP STRT R/W R/W R/W R/W R/W R R/W R/W bit 7 6 5 4 *1 3 2 1 *2 0 ― ― ― ― MODE BDS SOE SCOE ― ― ― ― R/W R/W R/W R/W bit SMCS アドレス: 00002DH SMCS アドレス: 00002CH 初期値 00000010B 初期値 ----0000B R/W : リード / ライト可能 R : リードオンリ − : 未定義 *1:Write 動作は "0" のみ可。 *2:Write 動作は "1" のみ可 , Read 動作は常に "0" ● 各ビット機能 [bit3] シリアルモード選択ビット (MODE) このビットにより停止状態からの起動条件の選択を行います。ただし , 動作中の書換え は禁止します。 表 18.2-1 シリアルモード選択ビットの設定 MODE 動作 0 STRT=1 にすることにより起動します。[ 初期値 ] 1 シリアルデータレジスタのリード / ライトにより起動します。 リセットにより "0" に初期化されます。本ビットは , リード / ライトが可能です。イン テリジェント I/O サービスを起動する際には "1" にしておいてください。 [bit2] 転送方向選択ビット (BDS:Bit Direction Select) シリアルデータの入出力時に , 最下位ビット側から先に転送するか(LSB ファースト), 最上位ビット側から先に転送するか(MSB ファースト)を , 表 18.2-2 に示すとおりに 選択します。 258 第 18 章 シリアル I/O 表 18.2-2 転送方向選択ビットの設定 < 注意事項 > 0 LSB ファースト [ 初期値 ] 1 MSB ファースト 転送方向選択ビットは , SDR にデータを書き込む前に , 設定しておいてください。 [bit1] シリアル出力許可ビット (SOE:Serial Out Enable) シリアル I/O 用出力外部端子 (SOT2) の出力を 表 18.2-3 に示すとおりに制御します。 表 18.2-3 シリアル出力許可ビットの設定 0 汎用ポート端子 [ 初期値 ] 1 シリアルデータ出力 リセットにより "0" に初期化されます。本ビットは , リード / ライトが可能です。 [bit0] シフトクロック出力許可ビット (SCOE : SCK2 Output Enable) シフトクロック用入出力外部端子 (SCK2) の出力を 表 18.2-4 に示すとおりに制御しま す。 表 18.2-4 シフトクロック出力許可ビットの設定 0 汎用ポート端子 , 命令毎転送時 [ 初期値 ] 1 シフトクロック出力端子 外部シフトクロックモードで命令ごとに転送を行うときは "0" に設定してください。リ セットにより "0" に初期化されます。本ビットは , リード / ライトが可能です。 259 第 18 章 シリアル I/O [bit15 ∼ bit13] シフトクロック選択ビット (SMD2 ∼ SMD0:Serial Shift Clock Mode) シリアルシフトクロックモードを 表 18.2-5 に示すとおりに選択します。 表 18.2-5 シリアルシフトクロックモードの設定 SMD2 SMD1 SMD0 φ =16MHz div=4 φ =8MHz div=4 φ =4MHz div=4 div M1 0 0 0 2MHz 1MHz 500kHz 3 1 DIV3 DIV2 DIV1 DIV0 1 1 0 1 推奨マシン サイクル 6MHz 0 0 1 1MHz 500kHz 250kHz 4 1 1 1 0 0 8MHz 0 1 0 250kHz 125kHz 62.5kHz 5 1 1 0 1 1 10MHz 0 1 1 125kHz 62.5kHz 31.25kHz 6 1 1 0 1 0 12MHz 1 0 0 62.5kHz 31.25kHz 15.625kHz 7 1 1 0 0 1 14MHz 1 0 1 8 1 1 0 0 0 16MHz 外部シフトクロックモード 1 1 0 予約 1 1 1 予約 * 詳細については , 「18.3 シリアル I/O プリス ケーラ (SCDCR)」を参照してください。 リセットにより "000" に初期化されます。本ビットの転送中の書換えは禁止します。シ フトクロックは内部シフトクロック 5 種類と , 外部シフトクロックが選択できます。 SMD2 ∼ SMD0=110, 111 は予約ですので設定しないでください。 クロック選択で SCOE=0 とし , SCK2 端子を共有しているポートを操作することによっ て命令ごとにシフト動作させることも可能です。 [bit12] シリアル I/O 割込み許可ビット (SIE: Serial I/O Interrupt Enable)) シリアル I/O の割込み要求を 表 18.2-6 に示すとおりに制御します。 表 18.2-6 割込み要求許可ビットの設定 0 シリアル I/O 割込み禁止 [ 初期値 ] 1 シリアル I/O 割込み許可 リセットにより "0" に初期化されます。本ビットは , リード / ライトが可能です。 [bit11] シリアル I/O 割込み要求ビット (SIR : Serial I/O Interrupt Request) シリアルデータの転送が終了すると "1" にセットされ , 割込み許可時 (SIE=1) にこの ビットが "1" になると , CPU へ割込み要求を発生します。クリア条件は MODE ビット によって異なります。MODE ビットが "0" のとき , SIR ビットへの "0" 書込みによりク リアされます。MODE ビットが "1" のとき , SDR の読出し , または書込み動作によりク リアされます。MODE ビットの値にかかわらずリセット , または STOP ビットへの "1" 書込み動作によりクリアされます。 本ビットに "1" を書き込んでも意味がありません。リードモディファイライト系命令 のリード時は , 常に "1" が読み出されます。 260 第 18 章 シリアル I/O [bit10] 転送状態ビット (BUSY) シリアル転送が実行中か否かを示すビットです。 表 18.2-7 転送状態ビットの設定 BUSY 動作 0 停止またはシリアルデータレジスタ R/W 待機状態 [ 初期値 ] 1 シリアル転送状態 リセットにより "0" に初期化されます。本ビットは , リードのみ可能です。 [bit9] ストップビット (STOP) シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると STOP=1 に よる停止状態となります。 表 18.2-8 ストップビットの設定 STOP 動作 0 動作 1 STOP=1 による転送停止 [ 初期値 ] リセットにより "1" に初期化されます。本ビットは , リード / ライトが可能です。 [bit8] スタートビット (STRT:Start) シリアル転送の起動を行うビットです。停止状態で "1" を書くことによって転送が開 始されます。シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1" の ライトは無視され , "0" のライトは意味がありません。 リード時には常に "0" が読み出されます。 261 第 18 章 シリアル I/O 18.2.2 シリアルシフトデータレジスタ (SDR) シリアルシフトデータレジスタ (SDR) は , シリアル I/O 転送データを格納するシリ アルデータレジスタで , 転送中は読み書き不可です。 ■ シリアルシフトデータレジスタ (SDR) 図 18.2-1 シリアルシフトデータレジスタ (SDR) bit SDR アドレス: 00002EH R/W:リード/ライト可能 262 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXH (不定) 第 18 章 シリアル I/O 18.3 シリアル I/O プリスケーラ (SCDCR) シリアル I/O プリスケーラ (SCDCR) は , シリアル I/O のシフトクロックを提供しま す。 シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。 シリアル I/O は , この通信プリスケーラによって種々のマシンクロックに対して一定 のボーレートが得られるように設計されています。SCDCR レジスタは , マシンク ロックの分周を制御するレジスタです。 ■ シリアル I/O プリスケーラ (SCDCR) 図 18.3-1 シリアル I/O プリスケーラ (SCDCR) bit SCDCR アドレス: 00002BH 15 14 13 12 11 10 9 8 初期値 M1 DIV3 DIV2 DIV1 DIV0 0---1111B R/W R/W R/W R/W R/W R/W:リード/ライト可能 [bit15]MD(Machine clock devide moDe select) 通信プリスケーラの動作許可ビットです。 0: シリアル I/O プリスケーラは停止します。 1: シリアル I/O プリスケーラは動作します。 [bit11 ∼ bit8]DIV3 ∼ DIV0 (DIVide 3 ∼ DIVide 0) マシンクロックの分周比を決定するビットです。 表 18.3-1 マシンクロックの分周比 < 注意事項 > DIV3 ∼ DIV0 分周比 1101B 3 1100B 4 1011B 5 1010B 6 1001B 7 1000B 8 分周比を変えた場合はクロックの安定時間として 2 周期分の時間を置いてから通信 を行ってください。 263 第 18 章 シリアル I/O 18.4 シリアル I/O の動作 拡張シリアル I/O インタフェースは , シリアルモードコントロールステータスレジス タ (SMCS), シフトレジスタ (SDR) により構成されます。8bit のシリアルデータの入 出力に使用します。 ■ シリアル I/O の動作 シリアルデータの入出力は , シフトレジスタの内容がシリアルシフトクロック ( 外部ク ロック , 内部クロック ) の立下りに同期してビット直列にシリアル出力端子 (SOT2 端 子 ) に出力され , 立上りに同期してシリアル入力端子 (SIN2 端子 ) からビット直列に SDR( シフトレジスタ ) に入力されます。シフトの方向 (MSB からの転送または LSB か らの転送 ) は , SMCS( シリアルモードコントロールステータスレジスタ ) の方向指定 ビット (BDS) により指定することができます。 転送が終了するとシリアルモードコントロールステータスレジスタ (SMCS) の MODE ビットによって停止状態または , データレジスタ R/W 待機状態に入ります。各々の状 態から転送状態に移るには , それぞれ次のことを行います。 ● 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書込みます(STOP と STRT は同時設定が可能です)。 ● シリアルシフトデータレジスタ R/W 待機状態からの復帰時はデータレジスタをリード , ま たはライトします。 264 第 18 章 シリアル I/O シフトクロック 18.4.1 シフトクロックには内部シフトクロックモード , 外部シフトクロックモードの 2 種 類があり , SMCS の設定で指定します。モードの切換えは , シリアル I/O が停止した 状態で行ってください。停止状態の確認は , BUSY ビットを読み出すことで可能で す。 ■ 内部シフトクロックモード 内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク ロックが SCK 端子より出力可能です。データが 1 クロックごとに 1bit 転送されます。 転送の速度は以下の様になります。 転送速度(s) = A×div 内部クロックのマシンサイクル(Hz) A は SMCS の SMD ビットで示す分周比で , 21, 22, 24, 25, 26 です。 表 18.4-1 内部シフトクロックモードのボーレート算出式 SMD2 SMD1 SMD0 φ/div=4MHz φ/div=2MHz φ/div=1MHz ボーレート算出式 0 0 0 2MHz 1 MHz 500kHz ( φ ÷ div)/21 0 0 1 1 MHz 500kHz 250kHz ( φ ÷ div)/22 0 1 0 250kHz 125kHz 62.5kHz ( φ ÷ div)/24 0 1 1 125kHz 62.5kHz 31.25kHz ( φ ÷ div)/25 1 0 0 62.5kHz 31.25kHz 15.625kHz ( φ ÷ div)/26 div の値は , 表 17.4-4 を参照。 ■ 外部シフトクロックモード SCK2 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに 1bit 転送されます。転送速度は DC から 1/(8 マシンサイクル ) まで可能です。たとえば , "1 マシンサイクル = 62.5ns" のとき , 2MHz まで可能です。 命令ごとに転送することもでき , 次のような設定をすることによって実現します。 外部シフトクロックモードを選択し , SMCS の SCOE ビットを "0" に設定します。さら に , SCK2 端子を共有しているポートの方向レジスタに "1" を書込み , ポートを出力モー ドに設定します。以上の設定をした後 , ポートのデータレジスタ (PDR) に "1", "0" を書 き込むと , SCK2 端子に出力されるポートの値を外部クロックとして取り込み , 転送動 作を行います。シフトクロックの開始は "H" からスタートさせてください。 < 注意事項 > シリアル I/O 動作中の SMCS, SDR への書込みは禁止です。 265 第 18 章 シリアル I/O 18.4.2 シリアル I/O の動作状態 シリアル I/O の動作状態には , 次の 4 種類があります。 • STOP 状態 • 停止状態 • SDR の R/W 待機状態 • 転送状態 ■ シリアル I/O の動作状態 ● STOP 状態 RESET 時 , または SMCS の STOP ビットに "1" を書き込んだ時の状態でシフトカウン タは初期化され , SIR =0 となります。 STOP 状態からの復帰は , STOP=0, STRT=1(同時設定可)とすることによって行われ ます。STOP ビットは STRT ビットより優先ビットですので STOP=1 の時 STRT=1 とし ても転送動作は行われません。 ● 停止状態 MODE ビットが "0" のとき , 転送が終了したことによって SMCS が BUSY=0, SIR =1 と なり , カウンタが初期化され停止状態に入ります。停止状態からの復帰は STRT=1 にす ると転送動作が再開されます。 ● シリアルデータレジスタ R/W 待機状態 SMCS の MODE ビットが "1" のとき , シリアル転送が終了すると , BUSY=0, SIR =1 と なりシリアルデータレジスタ R/W 待機状態に入ります。割込み許可レジスタが許可状 態ならば本ブロックより割込み信号を出します。 R/W 待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き込まれた りすると BUSY=1 となり転送動作が再開されます。 ● 転送状態 BUSY=1 でシリアル転送を行っている状態です。MODE ビットによりそれぞれ停止状 態および R/W 待機状態に遷移します。 図 18.4-1 に , 動作遷移を示します。 266 第 18 章 シリアル I/O 図 18.4-1 拡張シリアル I/O インタフェース動作遷移図 リセット STOP=0 & STRT=0 転送終了 STRT=0,BUSY=0 MODE=0 STOP=0 & STRT=1 MODE=0 & STOP=0 & 終了 STOP STOP=1 STRT=0,BUSY=0 STOP=1 STOP=1 STOP=0 & STRT=1 シリアルデータレジスタ R/W 待機 MODE=1 & 終了 & STOP=0 STRT=1,BUSY=0 MODE=1 SDRのR/W & MODE=1 転送動作 STRT=1,BUSY=1 図 18.4-2 シリアルデータレジスタへのリード , ライト概念図 シリアルデータ SOT2 SIN2 データバス データバス リード ライト 割込み出力 拡張シリアル I/Oインタフェース リード ライト ② ① 割込み入力 データバス CPU 割込みコントローラ ①MODE=1のとき, シフトクロックカウンタによって転送終了し, SIR =1となってリー ド / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生します。た だし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送中断のと きは割込み信号は発生しません。 ②シリアルデータレジスタがリード / ライトされると , 割込み要求はクリアされシリア ル転送を開始します。 267 第 18 章 シリアル I/O 18.4.3 シフト動作のスタート / ストップタイミング シフト動作をスタートする場合は , SMCS の STOP ビットを "0", STRT ビットを "1" に設定します。シフト動作のストップタイミングについては , STOP=1 によって 停止する場合と , 転送終了によって停止する場合があります。 • STOP=1 によって停止→ MODE ビットに係わらず SIR =0 のまま停止 • 転送終了で停止→ MODE ビットに係わらず SIR =1 となり停止。 BUSY ビットは MODE ビットに係わらずシリアル転送状態の時 "1" となり , 停止状 態 , または R/W 待機状態のとき "0" となります。転送状態を確認したいときはこの ビットをリードしてください。 ■ シフト動作のスタート / ストップタイミング ● 内部シフトクロックモード(LSB ファースト) 図 18.4-3 シフト動作のスタート / ストップタイミング (内部クロック) SCK2 "1"出力 (転送スタート) STRT (転送終了) MODE=0の場合 BUSY SOT2 DO0 DO7(データ保持) ・・・ ● 外部シフトクロックモード(LSB ファースト) 図 18.4-4 シフト動作のスタート / ストップタイミング (外部クロック) SCK2 (転送スタート) STRT (転送終了) MODE=0の場合 BUSY SOT2 268 DO0 ・・・ DO7(データ保持) 第 18 章 シリアル I/O ● 外部シフトクロックモードで命令シフトを行ったとき(LSB ファースト) 図 18.4-5 シフト動作のスタート / ストップタイミング(外部シフトクロックモードで命令シフトを実行時) PDRのSCK2ビット"0" PDRのSCK2ビット"0" PDRのSCK2ビット"1" (転送終了) MODE=0の場合 SCK2 STRT BUSY SOT2 ・・・ DO6 DO7(データ保持) ( 注意事項 ) 命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が出力され "0" が書き込まれたとき "L" が出力されます ( ただし , 外部 シフトクロックモード選択で , SCOE=0 のとき )。 ● STOP=1 による停止(LSB ファースト , 内部クロック時) 図 18.4-6 STOP ビットを "1" としたときのストップタイミング "1" 出力 SCK2 (転送スタート) (転送終了) MODE=0のとき STRT BUSY STOP SOT2 DO3 ・・・ DO5(データ保持) DO4 ( 注意事項 )DO7 ∼ DO0 は出力データを示します。 シリアルデータの転送中は , シフトクロックの立下りでシリアル出力端子 (SOT2) から のデータが出力され , 立上りでシリアル入力端子 (SIN2) のデータが入力されます。 図 18.4-7 シリアルデータの入出力シフトタイミング <LSB ファースト(BDSビットが"0"のとき)> SCK2 SIN2入力 SIN2 DI0 DI1 SOT2 DO0 DO1 DI2 DI3 DI4 DI5 DI6 DI7 DO3 DO4 DO5 DO6 DO7 SOT2出力 DO2 <MBS ファースト(BDSビットが"1"のとき)> SCK2 SIN2 SIN2入力 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 DO4 DO3 DO2 DO1 DO0 SOT2出力 SOT2 DO7 DO6 DO5 269 第 18 章 シリアル I/O 18.4.4 拡張シリアル I/O インタフェースの割込み機能 拡張シリアル I/O インタフェースは , CPU に対し割込み要求を発生することができ ます。データの転送終了時に割込みフラグである SIR ビットがセットされ , 割込み を許可する SMCS の SIE ビットが "1" の時 , CPU へ割込み要求を出力します ■ 拡張シリアル I/O インタフェースの割込み機能 図 18.4-8 拡張シリアル I/O インタフェースの割込み信号出力タイミング SCK2 (転送終了)* BUSY SIE=1 SIR SDR RD/WR SOT2 DO6 *:MODE=1の場合 270 DO7(データ保持) 第 18 章 シリアル I/O 18.5 ネガティブクロック動作 MB90595 シリーズは , シリアル I/O のネガティブクロック動作をサポートします。 この動作では , シフトクロック信号はインバータにより単純に反転にされます。こ のため , 前述のシリアル I/O のシフトクロック信号の定義は , ロジック L レベルから ロジック H レベルへ , ネガティブエッジからポジティブエッジへ , あるいはこの逆 に反転されます。このことは , シリアルクロックの入力および出力ともに同じです。 ■ ネガティブクロック動作 ● SES(シリアルエッジセレクト)レジスタ bit 7 SES アドレス: 00002FH ― 6 5 4 3 2 1 0 ― ― ― ― ― ― NEG ― ― ― ― ― ― ― R/W 初期値 -------0B R/W:リード/ライト可能 表 18.5-1 NEG ビットの設定 NEG 動作 0 通常動作 (デフォルト) 1 シフトクロック信号反転 271 第 18 章 シリアル I/O 272 第 19 章 CAN コントローラ CAN コントローラの機能と動作について説明しま す。 19.1 CAN コントローラの特長 19.2 CAN コントローラのブロックダイヤグラム 19.3 全体コントロールレジスタの一覧 19.4 メッセージバッファ (ID レジスタ ) の一覧 19.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 19.6 CAN コントローラのレジスタ分類 19.7 CAN コントローラの送信 19.8 CAN コントローラの受信 19.9 CAN コントローラの受信フローチャート 19.10 CAN コントローラの使用方法 19.11 メッセージバッファ (x) による送信方法 19.12 メッセージバッファ (x) による受信方法 19.13 マルチレベルメッセージバッファの構成の決定 19.14 CAN コントローラの使用上の注意 273 第 19 章 CAN コントローラ 19.1 CAN コントローラの特長 CAN コントローラは , 16 ビットマイクロコンピュータ (F2MC-16LX) 内に一体化さ れたモジュールです。CAN( コントローラエリアネットワーク ) は自動車用コント ローラ間のシリアル通信用の標準プロトコルであり工業分野で広く使用されている ものです。 ■ CAN コントローラの特長 CAN コントローラの特長は次のとおりです。 ● CAN 仕様バージョン 2.0 パート A および B に適合しています。 標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしています。 ● リモートフレームの受信によるデータフレームの送信をサポートしています。 ● 16 個の送信 / 受信メッセージバッファ 29 ビットの ID および 8 バイトデータ マルチ・レベル・メッセージ・バッファ構造 ● フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサポート しています。 標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンスマ スクレジスタを提供します。 ● ビット速度は 10kbs ∼ 1Mbps でプログラマブルです(1Mbps でご使用の場合 , マシンクロッ クは 8MHz 以上で動作する必要があります) 。 274 第 19 章 CAN コントローラ CAN コントローラのブロックダイヤグラム 19.2 図 19.2-1 に , CAN コントローラのブロックダイヤグラムを示します。 ■ CAN コントローラのブロックダイヤグラム 図 19.2-1 CAN コントローラのブロックダイヤグラム TQ (動作クロック) 2 F MC-16LXバス プリスケーラ 1~64周波数分割 クロック SYNC, TSEG1, TSEG2 ビットタイミング発生 PSC TS1 BTR TS2 RSJ TOE TS RS CSR IDLE, SUSPND, 送信,受信, ERR, OVRLD HALT NIE NT バスステート マシン ノードステータス 変化割込み ノードステータス 変化割込み発生 NS1,NS0 エラー 制御 RTEC 送信/ 受信シーケンサ BVALR TREQR TBFxクリア TBFx 送信バッファx判定 エラーフレーム 発生 データ アクセプタンス カウンタ フィルタ制御 過負荷 フレーム発生 TDLC RDLC TBFx IDSEL BITER, STFER, CRCER, FRMER, ACKER TCANR 出力 ドライバ ARBLOST TX TRTRR TCR TBFx, セット,クリア TDLC 送信完了 割込み 送信完了 割込み発生 TIER RCR スタッフィング 送信シフト レジスタ RFWTR CRC発生 ACK発生 CRCER RBFx, セット RDLC 受信完了 割込み発生 RIER 受信完了 割込み CRC発生/エラーチェック 受信シフト レジスタ RBFx, TBFx,セット,クリア STFER デスタッフィング/ スタッフィングエラーチェック RRTRR RBFx, セット IDSEL ROVRR ARBLOST AMSR AMR0 0 1 アクセプタンス フィルタ 受信 バッファx判定 BITER ビットエラー チェック ACKER 確認エラー チェック FRMER フォームエラー チェック AMR1 RBFx IDR0~IDR15, DLCR0~DLCR15, DTR0~DTR15, RAM RAMアドレス発生 アービトレション チェック PH1 入力 ラッチ RX RBFx, TBFx, RDLC, TDLC, IDSEL LEIR IDER 275 第 19 章 CAN コントローラ 19.3 全体コントロールレジスタの一覧 表 19.3-1 に , 全体コントロールレジスタの一覧を示します。 ■ 全体コントロールレジスタ 表 19.3-1 全体コントロールレジスタの一覧 アドレス 000080H 000081H 000082H 000083H 000084H 000085H 000086H 000087H 000088H 000089H 00008AH 00008BH 00008CH 00008DH 00008EH 00008FH 001B00H 001B01H 001B02H 001B03H 001B04H 001B05H 001B06H 001B07H 001B08H 001B09H 001B0AH 001B0BH 001B0CH 001B0DH 001B0EH 001B0FH 001B10H 001B11H 001B12H 001B13H 001B14H 001B15H 001B16H 001B17H 001B18H 001B19H 001B1AH 001B1BH 276 レジスタ 略号 アクセス 初期値 メッセージバッファ有効レジスタ BVALR R/W 00000000 00000000 送信要求レジスタ TREQR R/W 00000000 00000000 送信解除レジスタ TCANR W 00000000 00000000 送信完了レジスタ TCR R/W 00000000 00000000 受信完了レジスタ RCR R/W 00000000 00000000 リモート要求受信レジスタ RRTRR R/W 00000000 00000000 受信オーバランレジスタ ROVRR R/W 00000000 00000000 受信割込み許可レジスタ RIER R/W 00000000 00000000 制御ステータスレジスタ CSR R/W, R 00 - --000 0 - - - -0-1 ラストイベント表示レジスタ LEIR R/W - - - - - - - - 000-0000 受信 / 送信エラーカウンタ RTEC R 00000000 00000000 ビットタイミングレジスタ BTR R/W -1111111 11111111 IDE レジスタ IDER R/W XXXXXXXX XXXXXXXX RTR 送信レジスタ TRTRR R/W 00000000 00000000 リモートフレーム受信待機レジスタ RFWTR R/W XXXXXXXX XXXXXXXX TIER R/W 00000000 00000000 AMSR R/W 送信割込み許可レジスタ XXXXXXXX XXXXXXXX アクセプタンスマスク選択レジスタ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX アクセプタンスマスクレジスタ 0 AMR0 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX アクセプタンスマスクレジスタ 1 AMR1 R/W XXXXX - -- XXXXXXXX 第 19 章 CAN コントローラ 19.4 メッセージバッファ (ID レジスタ ) の一覧 表 19.4-1 に , メッセージバッファ (ID レジスタ ) の一覧を示します。 ■ メッセージバッファ (ID レジスタ ) の一覧 表 19.4-1 メッセージバッファ (ID レジスタ ) の一覧 (1 / 2) アドレス 001A00H ∼ 001A1FH 001A20H 001A21H 001A22H 001A23H 001A24H 001A25H 001A26H 001A27H 001A28H 001A29H 001A2AH 001A2BH 001A2CH 001A2DH 001A2EH 001A2FH 001A30H 001A31H 001A32H 001A33H 001A34H 001A35H 001A36H 001A37H 001A38H 001A39H 001A3AH 001A3BH 001A3CH 001A3DH 001A3EH 001A3FH 001A40H 001A41H 001A42H 001A43H 001A44H 001A45H 001A46H 001A47H レジスタ 汎用 RAM 略号 アクセス 初期値 -- R/W XXXXXXXX ∼ XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 0 IDR0 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 1 IDR1 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 2 IDR2 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 3 IDR3 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 4 IDR4 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 5 IDR5 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 6 IDR6 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 7 IDR7 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 8 IDR8 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 9 IDR9 R/W XXXXX - -- XXXXXXXX 277 第 19 章 CAN コントローラ 表 19.4-1 メッセージバッファ (ID レジスタ ) の一覧 (2 / 2) アドレス 001A48H 001A49H 001A4AH 001A4BH 001A4CH 001A4DH 001A4EH 001A4FH 001A50H 001A51H 001A52H 001A53H 001A54H 001A55H 001A56H 001A57H 001A58H 001A59H 001A5AH 001A5BH 001A5CH 001A5DH 001A5EH 001A5FH 278 レジスタ 略号 アクセス IDR10 R/W 初期値 XXXXXXXX XXXXXXXX ID レジスタ 10 XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 11 IDR11 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 12 IDR12 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 13 IDR13 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 14 IDR14 R/W XXXXX - -- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 15 IDR15 R/W XXXXX - -- XXXXXXXX 第 19 章 CAN コントローラ 19.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 表 19.5-1 に , メッセージバッファ (DLC レジスタ ) の一覧を , 表 19.5-2 に , メッ セージバッファ ( データレジスタ ) の一覧を示します。 ■ メッセージバッファ (DLC レジスタ ) の一覧 表 19.5-1 メッセージバッファ (DLC レジスタ ) の一覧 アドレス 001A60H 001A61H 001A62H 001A63H 001A64H 001A65H 001A66H 001A67H 001A68H 001A69H 001A6AH 001A6BH 001A6CH 001A6DH 001A6EH 001A6FH 001A70H 001A71H 001A72H 001A73H 001A74H 001A75H 001A76H 001A77H 001A78H 001A79H 001A7AH 001A7BH 001A7CH 001A7DH 001A7EH 001A7FH レジスタ 略号 アクセス 初期値 DLC レジスタ 0 DLCR0 R/W - - - - XXXX DLC レジスタ 1 DLCR1 R/W - - - - XXXX DLC レジスタ 2 DLCR2 R/W - - - - XXXX DLC レジスタ 3 DLCR3 R/W - - - - XXXX DLC レジスタ 4 DLCR4 R/W - - - - XXXX DLC レジスタ 5 DLCR5 R/W - - - - XXXX DLC レジスタ 6 DLCR6 R/W - - - - XXXX DLC レジスタ 7 DLCR7 R/W - - - - XXXX DLC レジスタ 8 DLCR8 R/W - - - - XXXX DLC レジスタ 9 DLCR9 R/W - - - - XXXX DLC レジスタ 10 DLCR10 R/W - - - - XXXX DLC レジスタ 11 DLCR11 R/W - - - - XXXX DLC レジスタ 12 DLCR12 R/W - - - - XXXX DLC レジスタ 13 DLCR13 R/W - - - - XXXX DLC レジスタ 14 DLCR14 R/W - - - - XXXX DLC レジスタ 15 DLCR15 R/W - - - - XXXX 279 第 19 章 CAN コントローラ ■ メッセージバッファ ( データレジスタ ) の一覧 表 19.5-2 メッセージバッファ ( データレジスタ ) の一覧 アドレス 001A80H ∼ 001A87H 001A88H ∼ 001A8FH 001A90H ∼ 001A97H 001A98H ∼ 001A9FH 001AA0H ∼ 001AA7H 001AA8H ∼ 001AAFH 001AB0H ∼ 001AB7H 001AB8H ∼ 001ABFH 001AC0H ∼ 001AC7H 001AC8H ∼ 001ACFH 001AD0H ∼ 001AD7H 001AD8H ∼ 001ADFH 001AE0H ∼ 001AE7H 001AE8H ∼ 001AEFH 001AF0H ∼ 001AF7H 001AF8H ∼ 001AFFH 280 レジスタ 略号 アクセス 初期値 データレジスタ 0 (8 バイト) DTR0 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 1 (8 バイト) DTR1 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 2 (8 バイト) DTR2 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 3 (8 バイト) DTR3 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 4 (8 バイト) DTR4 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 5 (8 バイト) DTR5 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 6 (8 バイト) DTR6 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 7 (8 バイト) DTR7 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 8 (8 バイト) DTR8 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 9 (8 バイト) DTR9 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 10 (8 バイト) DTR10 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 11 (8 バイト) DTR11 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 12 (8 バイト) DTR12 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 13 (8 バイト) DTR13 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 14 (8 バイト) DTR14 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 15 (8 バイト) DTR15 R/W XXXXXXXX ∼ XXXXXXXX 第 19 章 CAN コントローラ 19.6 CAN コントローラのレジスタ分類 CAN コントローラのレジスタは , 次の 3 つに分類されます。 • 全体コントロールレジスタ • メッセージバッファコントロールレジスタ • メッセージバッファ ■ 全体コントロールレジスタ 全体コントロールレジスタには , 次の 4 つがあります。 • 制御ステータスレジスタ (CSR) • ラストイベント表示レジスタ (LEIR) • 受信および送信エラーカウンタ (RTEC) • ビットタイミングレジスタ (BTR) ■ メッセージバッファコントロールレジスタ メッセージバッファコントロールレジスタには , 次の 14 のレジスタがあります。 • メッセージバッファ有効レジスタ (BVALR) • IDE レジスタ (IDER) • 送信要求レジスタ (TREQR) • 送信 RTR レジスタ (TRTRR) • リモートフレーム受信待機レジスタ (RFWTR) • 送信解除レジスタ (TCANR) • 送信完了レジスタ (TCR) • 送信割込み許可レジスタ (TIER) • 受信完了レジスタ (RCR) • リモート要求受信レジスタ (RRTRR) • 受信オーバランレジスタ (ROVRR) • 受信割込み許可レジスタ (RIER) • アクセプタンスマスク選択レジスタ (AMSR) • アクセプタンスマスクレジスタ 0 および 1(AMR0, AMR1) ■ メッセージバッファ メッセージバッファは , 次の 3 つがあります。 • ID レジスタ x(x=0 ∼ 15)(IDRx) • DLC レジスタ x(x=0 ∼ 15)(DLCRx) • データレジスタ x(x=0 ∼ 15)(DTRx) 281 第 19 章 CAN コントローラ 制御ステータスレジスタ (CSR) 19.6.1 制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リー ドモディファイライト ) を実行することは禁止されています。ただし , HALT ビット が変化しないタイミング ( マクロの初期化など ) では , ビット操作命令を使用しても 問題ありません。 ■ 制御ステータスレジスタ (CSR) 15 14 13 12 11 10 9 8 TS RS ― ― ― NT NS1 NS0 リード/ライト: (R) (R) (―) (―) (―) (R/W) (R) (R) 初期値: (0) (0) (―) (―) (―) (0) (0) (0) 7 6 5 4 3 2 1 0 TOE ― ― ― ― NIE ― HALT (R/W) (―) (―) (―) (―) (R/W) (―) (R/W) (0) (―) (―) (―) (―) (0) (―) (1) bit アドレス: 001B01H bit アドレス: 001B00H リード/ライト: 初期値: R/W:リード/ライト可能 R :リードオンリ - :未定義 [bit15]TS: 送信ステータスビット 本ビットはメッセージが送信中であるかどうかを示します。 0: メッセージは送信されていません。 1: メッセージが送信されています。 本ビットはエラーフレームおよび過負荷フレームが送信されている間も "0" です。 [bit14]RS: 受信ステータスビット 本ビットはメッセージが受信されているかどうかを示します。 0: メッセージは受信されていません。 1: メッセージが受信されています。 メッセージがバス上に在る間 , 本ビットは "1" になります。このため本ビットはメッ セージが送信されている間も "1" になります。本ビットは必ずしも , 受信メッセージが アクセプタンスフィルタを通って通過したかどうかを示すものではありません。 結果として , 本ビットが "0" であるときはバス動作は停止している (HALT=0) か , バス はインターミッション / バスアイドルにある , または , エラー / オーバロードフレーム がバス上にあることを意味します。 [bit10]NT: ノードステータス遷移フラグ もしノードステータスがインクリメントに変化しまたはバスオフからエラーアクティ ブに変化しても本ビットは "1" になります。 282 第 19 章 CAN コントローラ すなわち NT ビットは , ノードステータスがエラーアクティブ (00) からワーニング (01) に , ワーニング (01) からエラーパッシブ (10) に , エラーパッシブ (10) からバスオフ (11) に , バスオフ (11) からエラーアクティブ (00) に変化したときに "1" にセットされます。 括弧内の数字は NS1 ビットおよび NS0 ビットの値を示します。 ノードステータス遷移割込み許可ビット (NIE) が "1" であるときに割込みが発生しま す。"0" を書き込むと NT ビットが "0" にセットされます。NT ビットに "1" を書き込ん でも無視されます。リードモディファイライト系命令がリードされたときに "1" が読 み出されます。 [bit9, bit8]NS1 および NS0: ノードステータスビット 1 および 0 本ビット群は現在のノードステータスを表します。 表 19.6-1 NS1 および NS0 およびノードステータスの間の対応 < 注意事項 > NS1 NS0 0 0 エラーアクティブ 0 1 ワーニング(エラーアクティブ) 1 0 エラーパッシブ 1 1 バスオフ ノードステータス ワーニング ( エラーアクティブ ) はノードステータスに対する CAN 仕様 2.0B におけ るエラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウン タが 96 を超えたことを表します。ノードステータスの変化図は 図 19.6-1 に示され ています。 図 19.6-1 ノードステータス遷移図 ハードウェアリセット REC:受信エラーカウンタ TEC:送信エラーカウンタ エラーアクティブ レジスタ(CSR)のHALTビットに0が書き込ま れた後,連続的な11ビットハイレベル(リ セッシブビット)が受信入力端子(RX)に128 回入力される。 REC≧96 または TEC≧96 REC<96 および TEC<96 ワーニング REC≧128 または TEC≧128 REC<128 および TEC<128 バスオフ エラーパッシブ TEC≧256 283 第 19 章 CAN コントローラ [bit7]TOE: 送信出力許可ビット 本ビットに "1" を書き込むと汎用ポート端子を CAN コントローラの送信端子に切り換 えます。 0: 汎用ポート端子 1:CAN コントローラの送信端子 [bit2]NIE: ノードステータス遷移割込み許可ビット 本ビットはノードステータス遷移割込み (NT=1 の場合 ) を許可または禁止します。 0: ノードステータス遷移割込みを禁止する 1: ノードステータス遷移割込みを許可する [bit0]HALT: バス動作停止ビット 本ビットはバス動作停止をセットもしくは解除しまたはそのステートを表示します。 読出し時 0: バス動作中 1: バス動作停止 書込み時 0: バス動作停止を解除 1: バス動作停止をセット < 注意事項 > バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になってい ることを確認後 ,"0" を書き込んでください。 参考プログラム例 : switch (IO_CANCTO.CSR.bit.NS) { case 0 : /* error active */ break: case 1 : /* warning */ break: case 2 : /* error passive */ break: default : /* bus off */ for (i=0; (i<=500) && (IO_CANCTO.CSR.bit.HALT==0); i++); IO_CANCTO.CSR.word = 0x0084; /* HALT = 0 */ break: } ※ 変数 i はフェイルセーフのために使用しています。 284 第 19 章 CAN コントローラ 19.6.2 バス動作停止ビット (HALT=1) バス動作停止ビットは , バス動作停止をセットもしくは解除し , またはそのステート を表示します。 ■ バス動作停止をセットする条件 (HALT=1) バス動作停止をセットする条件 (HALT=1) として , 次の 3 つがあります。 • ハードウェアリセットの後 • ノードステータスがバスオフに変化したとき • HALT への "1" の書込み < 注意事項 > • バス動作は F2MC-16LX が低消費電力消費モード ( 停止モード , クロックモード , およびハードウェアスタンバイモード ) に遷移する前に HALT に "1" を書き込む ことにより停止しなければなりません。 HALT に "1" が書き込まれる時に , 送信が進行中であれば送信が終了した後にバス 動作は停止します (HALT=1)。HALT に "1" が書き込まれるときに , 受信が進行中 であればバス動作は直ちに停止します (HALT=1)。もし受信されたメッセージが メッセージバッファ(x) に記憶中であればメッセージを記憶した後に , バス動作は 停止します (HALT=1)。 • バス動作が停止したかどうかは , 常に HALT ビットを読み出してチェックしてく ださい。 ■ バス動作停止を解除する条件 (HALT=0) HALT への "0" の書込み < 注意事項 > • 上記条件のハードウェアリセット後または HALT に "1" を書き込むことによるバ ス動作停止の解除は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットのハイレベル ( リセッシブビット ) が入力された後に行われます。 • 上記条件のノードステータスがバスオフに変化したときのバス動作停止の解除は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットのハイレベル ( リセッシブビット ) が 128 回入力された後に行われます。次に送信および受信 エラーカウンタの両者の値が "0" に達してノードステータスはエラーアクティブ に変化します。 • バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になって いることを確認後 ,"0" を書き込んでください。 ■ バス動作停止間の状態 (HALT=1) • バスは , 送信および受信などの動作を一切行いません。 • 送信出力端子 (TX) は , ハイレベル ( リセッシブビット ) を出力します。 • ほかのレジスタおよびエラーカウンタの値は変化しません。 < 注意事項 > ビットタイミングレジスタ (BTR) はバス動作停止 (HALT=1) の間にセットしなけれ ばなりません。 285 第 19 章 CAN コントローラ 19.6.3 ラストイベント表示レジスタ (LEIR) 本レジスタはラストイベントを示します。 NTE, TCE および RCE は排他的なものです。ラストイベントのビットが "1" にセッ トされたときほかのビットは "0" にセットされます。 ■ ラストイベント表示レジスタ (LEIR) bit アドレス: 001B02H 7 NTE リード/ライト: (R/W) 初期値: (0) R/W:リード/ライト可能 - :未定義 6 5 4 3 2 1 0 TCE RCE ― MBP3 MBP2 MBP1 MBP0 (R/W) (R/W) (―) (R/W) (R/W) (R/W) (R/W) (0) (0) (―) (0) (0) (0) (0) [bit7]NTE: ノードステータス遷移イベントビット • 本ビットが "1" のときはノードステータス遷移がラストイベントであることを表し ます。 • 本ビットは制御ステータスレジスタ (CSR) の NT ビットと同時に "1" にセットされ ます。 • 本ビットはまた CSR のノードステータス遷移割込み許可ビット (NIE) のセッティン グに無関係に "1" にセットされます。 • 本ビットに "0" を書き込むと NTE ビットは "0" にセットされます。本ビットに "1" を書き込んでも無視されます。 • リードモディファイライト系命令が実行されたときは "1" が読み出されます。 [bit6]TCE: 送信完了イベントビット 本ビットが "1" のときは送信完了がラストイベントであることを表します。 本ビットは送信完了レジスタ (TCR) のビットのいずれか 1 つと同時に "1" にセットさ れます。また本ビットは送信割込み許可レジスタ (TIER) のビットのセッティングに無 関係に "1" にセットされます。 "0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも無 視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 本ビットが "1" にセットされたとき MBP3 ∼ MBP0 ビットは送信動作を完了したメッ セージバッファの番号を示すために使用されます。 286 第 19 章 CAN コントローラ [bit5]RCE: 受信完了イベントビット 本ビットが "1" であるときは受信完了がラストイベントであることを表します。 本ビットは受信完了レジスタ (RCR) のビットのいずれか 1 つと同時に "1" にセットさ れます。また本ビットは受信割込み許可レジスタ (RIER) のビットのセッティングに無 関係に "1" にセットされます。 "0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも無 視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 本ビットが "1" にセットされたとき MBP3 ∼ MBP0 ビットは受信動作を完了したメッ セージバッファの番号を示すために使用されます。 [bit3 ∼ bit0]MBP3 ∼ MBP0: メッセージバッファポインタビット TCE または RCE ビットが "1" にセットされたときに本ビット群は対応するメッセージ バッファ (0 ∼ 15) の番号を示します。 NTE ビットが "1" にセットされると本ビット群は意味を持ちません。 "0" を書き込むと本ビット群は "0" にセットされます。本ビット群に "1" を書き込んで も無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 もし LEIR が CAN 割込みハンドラ内でアクセスされたとしても割込みを引き起こした イベントは必ずしも LEIR により表されるものと同じではありません。割込みハンドラ 内で LEIR アクセスに対する割込み要求の時点でほかの CAN イベントが生ずる可能性 があります。 287 第 19 章 CAN コントローラ 19.6.4 受信および送信エラーカウンタ (RTEC) 受信および送信エラーカウンタは , CAN 仕様で定められる送信エラーカウントおよ び受信エラーカウントを示します。このレジスタは読出し専用です。 ■ 受信および送信エラーカウンタ (RTEC) 15 14 13 12 11 10 001B05H TEC7 TEC6 TEC5 TEC4 TEC3 TEC2 TEC1 TEC0 リード/ライト: (R) (R) (R) (R) (R) (R) (R) (R) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 001B04H REC7 REC6 REC5 REC4 REC3 REC2 REC1 REC0 リード/ライト: (R) (R) (R) (R) (R) (R) (R) (R) 初期値: :リードオンリ (0) (0) (0) (0) (0) (0) (0) (0) bit アドレス: bit アドレス: R 9 1 8 0 [bit15 ∼ bit8]TEC7 ∼ TEC0: 送信エラーカウンタ これらは送信エラーカウンタです。 TEC7 ∼ TEC0 は , カウンタ値が 256 より大きい場合 0 ∼ 7 を示します。以降のインク リメントはカウンタ値にカウントされません。この場合バスオフがノードステータス で示されます(制御ステータスレジスタ CSR の NS1 および NS0=11) 。 [bit7 ∼ bit0]REC7 ∼ REC0: 受信エラーカウンタ これらは受信エラーカウンタです。 REC7 ∼ REC0 は , カウンタ値が 256 より大きい場合に 0 ∼ 7 を示します。以降のイン クリメントはカウンタ値にカウントされません。この場合エラーパッシブがノードス テータスで示されます(制御ステータスレジスタ CSR の NS1 および NS0=10) 。 288 第 19 章 CAN コントローラ ビットタイミングレジスタ (BTR) 19.6.5 ビットタイミングレジスタ (BTR) は , プリスケーラおよびビットタイミングをセッ トするものです。 ■ ビットタイミングレジスタ (BTR) bit アドレス: 001B07H 15 14 ― TS2.2 リード/ライト: (―) 初期値: (―) 13 12 11 10 9 8 TS2.1 TS2.0 TS1.3 TS1.2 TS1.1 TS1.0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) 4 3 2 1 0 7 6 RSJ1 RSJ0 PSC5 PSC4 PSC3 PSC2 PSC1 PSC0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) bit アドレス: 001B06H 初期値: (1) 5 R/W:リード/ライト可能 - :未定義 < 注意事項 > 本レジスタはバス動作停止 (HALT=1) の間にセットしなければなりません。 [bit14 ∼ bit12]TS2.2 ∼ TS2.0: タイムセグメント 2 セットビット 2 ∼ 0 本ビット群は単位時間 (TQ) を [(TS2.2 ∼ TS2.0)+1] で分周してタイムセグメント 2(TSEG2) を決定します。タイムセグメント 2 は CAN 仕様におけるフェーズバッファ セグメント 2(PHASE_SEG2) に等しいものです。 [bit11 ∼ bit8]TS1.3 ∼ TS1.0: タイムセグメント 1 設定ビット 3 ∼ 0 本ビット群は単位時間 (TQ) を [(TS1.3 ∼ TS1.0)+1] で分周してタイムセグメント 1(TSEG1) を決定します。タイムセグメント 1 は CAN 仕様におけるプロパゲーション セグメント (PROP_SEG)+ フェーズバッファセグメント 1(PHASE_SEG1) に等しいもの です。 [bit7, bit6]RSJ1 ∼ RSJ0: 再同期ジャンプ幅設定ビット 1 および 0 本ビット群は単位時間 (TQ) を [(RSJ1 ∼ RSJ0)+1] で分周して再同期ジャンプ幅を決定 させます。 [bit5 ∼ bit0]PSC5 ∼ PSC0: プリスケーラ設定ビット 5 ∼ 0 本ビット群は入力クロックを [(PSC5 ∼ PSC0)+1] の周波数で分割して CAN コントロー ラの単位時間 (TQ) を決定します。 CAN 仕様および CAN コントローラの夫々におけるビット時間セグメントは 図 19.6-2 および図 19.6-3 に示されています。 289 第 19 章 CAN コントローラ 図 19.6-2 CAN 仕様におけるビット時間セグメント ノミナルビット時間 SYNC_SEG PROP_SEG PHASE_SEG1 PHASE_SEG2 サンプルポイント 図 19.6-3 CAN コントローラにおけるビット時間セグメント ノミナルビット時間 SYNC_SEG TSEG1 TSEG2 サンプルポイント 入力クロック (CLK), 単位時間 (TQ), ビットタイム (BT), 同期セグメント (SYNC_SEG), タイムセグメント 1 および 2(TSEG1 および TSEG2)および再同期ジャンプ幅 [(RSJ1+RSJ0)+1] 周波数分割としたときの PSC=PSC5 ∼ PSC0, TSI=TS1.3 ∼ TS1.0, TS2=TS2.2 ∼ TS1.0 および RSJ=RSJ1 および RSJ0 の間の関係は次に示すとおりです。 TQ BT RSJW = = = = = (PSC + 1) × CLK SYNC_SEG + TSEG1 + TSEG2 (1 + (TS1 + 1) + (TS2 + 1)) × TQ (3 + TS1 + TS2) TQ (RSJ + 1) × TQ 正しく動作を行うためには以下の条件を満足しなければなりません。 表 19.6-2 条件 G サフィックス付きの製品 • 1 ≦ PSC ≦ 63 の場合 TSEG1 ≧ 2TQ TSEG1 ≧ RSJW TSEG2 ≧ 2TQ TSEG2 ≧ RSJW • PSC=0 の場合 TSEG1 ≧ 5TQ TSEG2 ≧ 2TQ TSEG2 ≧ RSJW < 注意事項 > 290 G サフィックスなしの製品 • 1 ≦ PSC ≦ 63 の場合 TSEG1 ≧ RSJW TSEG2 ≧ RSJW+2TQ • PSC=0 の場合 TSEG1 ≧ 5TQ TSEG2 ≧ RSJW+2TQ CAN 仕様に従ったビットタイミングの設定をするためには , 遅延時間など , ほかの 条件も考慮されなければなりません。 第 19 章 CAN コントローラ メッセージバッファ有効レジスタ (BVALR) 19.6.6 メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を セットし , またはそのステートを表示するものです。 ■ メッセージバッファ有効レジスタ (BVALR) 15 14 13 10 9 8 BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 BVAL9 BVAL8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 0 BVAL7 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) bit アドレス: アドレス: 000081H 000080H 初期値: (0) 12 11 R/W:リード/ライト可能 0: メッセージバッファ (x) 無効 1: メッセージバッファ (x) 有効 もしメッセージバッファ(x) が無効にセットされればそれはメッセージを送信または受 信しません。 もしバッファが送信動作の間に無効にセットされればそれは送信が完了しまたはエ ラーにより終了した後で無効 (BVALx=0) になります。 もしバッファが受信動作の間に無効にセットされればそれは直ちに無効 (BVALx=0) に なります。もし受信メッセージがメッセージバッファ (x) にストアされていればメッ セージバッファ (x) はメッセージをストアした後に無効となります。 < 注意事項 > • x はメッセージバッファ番号を示します (x=0 ∼ 15)。 • ビット (BVALx) に "0" を書き込むことによりメッセージバッファ(x) を無効とした ときにビット操作命令の実行はそのビットが "0" にセットされるまで禁止されま す。 • CAN コントローラが CAN 通信に参加している状態(CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な 状態)で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 291 第 19 章 CAN コントローラ IDE レジスタ (IDER) 19.6.7 本レジスタは送信 / 受信の間にメッセージバッファ (x) により使用されるフレーム フォーマットを設定します。 ■ IDE レジスタ (IDER) 15 14 13 10 9 8 IDE15 IDE14 IDE13 IDE12 IDE11 IDE10 IDE9 IDE8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 1 0 IDE7 IDE6 IDE5 IDE4 IDE3 IDE2 IDE1 IDE0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) bit アドレス: 001B09H bit アドレス: 001B08H 初期値: (X) 12 11 2 R/W:リード/ライト可能 X :不定値 0: メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用さ れます。 1: メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用さ れます。 < 注意事項 > 292 • 本レジスタはメッセージバッファ (x) が無効であるとき(メッセージバッファ有 効レジスタの BVALx(BVALR)=0)に設定しなければなりません。バッファが有効 である (BVALx=1) ときに設定を行うと受信メッセージを不必要にストアする可能 性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な 状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 第 19 章 CAN コントローラ 19.6.8 送信要求レジスタ (TREQR) 送信要求レジスタ (TREQR) は , メッセージバッファ (x) に対する送信要求を設定し またはその状態を表示します。 ■ 送信要求レジスタ (TREQR) bit 15 14 13 12 11 10 9 8 TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 TREQ9 TREQ8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 1 0 TREQ7 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) アドレス: アドレス: 000083H 初期値: (0) bit 7 000082H 初期値: (0) 2 R/W:リード/ライト可能 TREQx に "1" が書き込まれたときメッセージバッファ (x) に対する送信を開始します。 もしリモートフレーム受信待機レジスタ (RFWTR)*1 の RFWTx が "0" であれば送信は 直ちに開始します。しかし RFWTx=1 であればリモートフレームが受信される(リモー ト要求受信レジスタ (RRTRR) *1 が "1" になる)まで待機した後に送信が開始します。 もし TREQx に "1" が書き込まれるときに RRTRx が既に "1" であれば , RFWTx=1 であっ ても送信は直ちに開始します *2 。 *1:TRTRR および RFWTR に関しては , 「19.6.9 送信 RTR レジスタ (TRTRR)」および 「19.6.10 リモートフレーム受信待機レジスタ (RFWTR)」を参照してください。 *2: 送信の解除に関しては 「19.6.11 送信解除レジスタ (TCANR)」および 「19.6.12 送 信完了レジスタ (TCR)」を参照してください。 TREQx に "0" を書き込んでも無視されます。 リードモディファイライト系命令がリードされたときは "0" が読み出されます。 もし送信動作の完了時における("0" への)クリアおよび "1" の書込みによる設定が同 時に生じればクリア動作が優先されます。 もし 1 つ以上のビットに "1" が書き込まれれば下位番号のメッセージバッファ(x) から 開始して送信が行われます。 TREQx は送信が待ち状態中は "1" であり送信が完了または解除されたときに "0" にな ります。 293 第 19 章 CAN コントローラ 送信 RTR レジスタ (TRTRR) 19.6.9 本レジスタはメッセージバッファ (x) による送信 RTR( リモート送信要求 ) ビットを 設定するものです。 ■ 送信 RTR レジスタ (TRTRR) 15 14 13 12 11 10 9 TRTR15 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 TRTR7 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) bit アドレス: アドレス: 001B0BH 001B0AH 初期値: (0) R/W:リード/ライト可能 0: データフレームが送信されます。 1: リモートフレームが送信されます。 294 8 0 第 19 章 CAN コントローラ リモートフレーム受信待機レジスタ (RFWTR) 19.6.10 リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求 が設定された ( 送信要求レジスタ (TREQR) の TREQx が "1" であり送信 RTR レジ スタ (TRTRR) の TRTRx が "0" である ) ときに送信を開始する条件を設定します。 0: 送信は直ちに開始します。 1: リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) まで 待機した後に送信を開始します。 ■ リモートフレーム受信待機レジスタ (RFWTR) bit アドレス: 001B0DH 15 14 13 12 11 10 9 8 RFWT15 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 1 0 初期値: bit アドレス: 001B0CH (X) 7 6 5 4 3 2 RFWT7 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値: (X) R/W:リード/ライト可能 X :不定値 < 注意事項 > • 送信に対する要求が設定されたときに RRTRx が既に "1" であれば送信は直ちに開 始します。 • リモートフレーム送信に対しては RFWTx を "1" にセットしないでください。 295 第 19 章 CAN コントローラ 19.6.11 送信解除レジスタ (TCANR) TCANx に "1" が書き込まれたときに本レジスタはメッセージバッファ (x) への送信 に対する待ち状態中の要求を解除します。 解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx に "0" を書き込んでも無視されます。 これは書込み専用レジスタでありその読出し値は常に "0" です。 ■ 送信解除レジスタ (TCANR) bit アドレス: 14 13 12 11 10 9 8 000085H TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 TCAN9 TCAN8 リード/ライト: (W) (W) (W) (W) (W) (W) (W) (W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) 1 0 bit アドレス: 7 6 5 4 3 2 000084H TCAN7 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0 リード/ライト: (W) (W) (W) (W) (W) (W) (W) (W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) W :ライトオンリ 296 15 第 19 章 CAN コントローラ 19.6.12 送信完了レジスタ (TCR) メッセージバッファ (x) により送信の完了時に対応する TCx は "1" になります。 もし送信完了割込み許可レジスタ (TIER) の TIEx が "1" であれば割込みが生じます。 ■ 送信完了レジスタ (TCR) bit アドレス: 000087H 15 14 13 12 11 10 9 8 TC15 TC14 TC13 TC12 TC11 TC10 TC9 TC8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) bit 7 6 5 4 3 1 0 TC6 TC5 TC4 TC3 TC2 TC1 TC0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) アドレス: 000086H TC7 (0) 2 R/W:リード/ライト可能 ● TCx=0 となる条件 • TCx に "0" を書き込む。 • 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。 送信の完了の後で TCx に "0" を書き込むとそれを "0" にセットします。TCx に "1" を書 込んでも無視されます。リードモディファイライト系命令が実行されたときは "1" が 読み出されます。 < 注意事項 > もし送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じ たときは "1" への設定が優先します。 297 第 19 章 CAN コントローラ 19.6.13 送信割込み許可レジスタ (TIER) 本レジスタはメッセージバッファ (x) による送信割込みを許可または禁止します。送 信割込みは送信完了時 ( 送信完了レジスタ (TCR) の TCx が "1" になったとき ) に発 生します。 ■ 送信割込み許可レジスタ (TIER) 15 14 13 11 10 9 TIE15 TIE14 TIE13 TIE12 TIE11 TIE10 TIE9 TIE8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 1 0 TIE7 TIE6 TIE5 TIE4 TIE3 TIE2 TIE1 TIE0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) bit アドレス: 001B0FH 初期値: bit アドレス: 001B0EH (0) R/W:リード/ライト可能 0: 送信割込みは禁止されます。 1: 送信割込みは許可されます。 298 12 4 3 2 8 第 19 章 CAN コントローラ 19.6.14 受信完了レジスタ (RCR) メッセージバッファ (x) への受信メッセージのストアの完了時に RCx は "1" になり ます。 もし受信完了割込み許可レジスタの RIEx が "1" であれば割込みが生じます。 ■ 受信完了レジスタ (RCR) 15 14 13 12 11 10 9 8 RC15 RC14 RC13 RC12 RC11 RC10 RC9 RC8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 1 0 RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) bit アドレス: 000089H bit アドレス: 000088H (0) 4 3 2 R/W:リード/ライト可能 ● RCx=0 となる条件 RCx に "0" を書き込む。 受信メッセージの処理の完了の後で RCx に "0" を書き込んで "0" にセットしてくださ い。RCx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > もし受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じ たときは , "1" への設定が優先します。 299 第 19 章 CAN コントローラ 19.6.15 リモート要求受信レジスタ (RRTRR) 受信されたリモートフレームがメッセージバッファ (x) 内にストアされると , RRTRx は (RCx 設定が "1" になると同時に )"1" になります。 ■ リモート要求受信レジスタ (RRTRR) 14 13 12 11 RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 RRTR9 RRTR8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 RRTR7 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) bit アドレス: アドレス: 00008BH 00008AH 初期値: 15 (0) 10 9 8 0 R/W:リード/ライト可能 ● RRTRx=0 となる条件 • RRTRx に "0" を書き込む。 • 受信されたデータフレームがメッセージバッファ(x) にストアされた後 (RCx 設定が "1" になるのと同時 )。 • メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx は 1)。 RRTRx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > 300 もし "1" への設定と "0" の書込みによるクリアが同時に生じたときは "1" への設定が 優先します。 第 19 章 CAN コントローラ 19.6.16 受信オーバランレジスタ (ROVRR) もし , メッセージバッファ (x) 内への受信メッセージのストア完了時に , 受信完了レ ジスタ (RCR) がすでに "1" であれば , ROVRx は "1" になり受信がオーバランしたこ とを表します。 ■ 受信オーバランレジスタ (ROVRR) bit アドレス: 00008DH 15 14 13 12 11 10 9 8 ROVR15 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 bit アドレス: 00008CH (0) 7 6 5 0 ROVR7 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値: (0) R/W:リード/ライト可能 ROVRx に "0" を書き込むと ROVRx=0 になります。ROVRx に "1" を書込みしても無視 されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込むと それを "0" に設定します。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > もし "1" への設定と "0" の書込みによるクリアが同時に生じたときは "1" への設定が 優先します。 301 第 19 章 CAN コントローラ 19.6.17 受信割込み許可レジスタ (RIER) 本レジスタはメッセージバッファ (x) による受信割込みを許可または禁止します。 受信割込みは受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に発 生します。 ■ 受信割込み許可レジスタ (RIER) 15 14 13 12 11 10 9 RIE15 RIE14 RIE13 RIE12 RIE11 RIE10 RIE9 RIE8 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 0 RIE7 RIE6 RIE5 RIE4 RIE3 RIE2 RIE1 RIE0 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (0) (0) (0) (0) (0) (0) (0) bit アドレス: 00008FH アドレス: 00008EH (0) R/W:リード/ライト可能 0: 受信割込みは禁止されます。 1: 受信割込みは許可されます。 302 8 第 19 章 CAN コントローラ 19.6.18 アクセプタンスマスク選択レジスタ (AMSR) 本レジスタは受信メッセージ ID とメッセージバッファ (x)ID の比較に対するマスク ( アクセプタンスマスク ) を選択します。 ■ アクセプタンスマスク選択レジスタ (AMSR) BYTE0 6 5 AMS3.1 AMS3.0 AMS2.1 AMS2.0 AMS1.1 リード/ライト: (R/W) (R/W) (R/W) (R/W) (X) (X) (X) 15 14 AMS7.1 リード/ライト: (R/W) アドレス: 7 bit 001B10H 初期値: BYTE1 アドレス: bit 001B11H 初期値: BYTE2 アドレス: (X) AMS1.0 AMS0.1 AMS0.0 (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) 13 12 11 10 9 8 AMS7.0 AMS6.1 AMS6.0 AMS5.1 AMS5.0 AMS4.1 AMS4.0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 2 1 0 AMS11.1 AMS11.0 AMS10.1 AMS10.0 AMS9.1 AMS9.0 AMS8.1 AMS8.0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 11 10 9 8 (X) 15 bit 001B13H 0 5 初期値: アドレス: 1 AMS15.1 リード/ライト: (R/W) 初期値: (X) 14 4 13 3 2 6 リード/ライト: (R/W) BYTE3 3 7 bit 001B12H 4 12 AMS15.0 AMS14.1 AMS14.0 AMS13.1 AMS13.0 AMS12.1 AMS12.0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) R/W:リード/ライト可能 X :不定値 表 19.6-3 アクセプタンスマスク選択レジスタ (AMSR) AMSx.1 AMSx.0 0 0 フルビット比較 0 1 フルビットマスク 1 0 アクセプタンスマスクレジスタ 0(AMR0) 1 1 アクセプタンスマスクレジスタ 1(AMR1) アクセプタンスマスク 303 第 19 章 CAN コントローラ < 注意事項 > 304 • AMSx.1 および AMSx.0 はメッセージバッファ(x) が無効である ( メッセージバッ ファ有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりま せん。バッファが有効 (BVALx=1) なときに設定を行うと不要な受信メッセージが ストアされる可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な 状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 第 19 章 CAN コントローラ 19.6.19 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがありますが両者とも に標準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用で きます。 AM28 ∼ AM18(11 ビット ) は標準フレームフォーマットにおけるアクセプタンスマ スクに使用され AM28 ∼ AM0(29 ビット ) は拡張フォーマットでアクセプタンスマ スクに使用されます。 ■ アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) AMR0 BYTE0 アドレス: bit 001B14H 7 6 5 4 3 2 1 0 AM28 AM27 AM26 AM25 AM24 AM23 AM22 AM21 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 9 8 初期値: AMR0 BYTE1 (X) 15 14 13 12 11 10 AM20 AM19 AM18 AM17 AM16 AM15 AM14 AM13 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) 1 0 アドレス: bit 001B15H 初期値: (X) (X) (X) (X) (X) bit 7 6 5 4 3 AM12 AM11 AM10 AM9 AM8 AM7 AM6 AM5 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) AMR0 BYTE2 アドレス: 001B16H 2 初期値: (X) (X) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 AM4 AM3 AM2 AM1 AM0 ― ― ― (R/W) (R/W) (R/W) (R/W) (―) (―) (―) (X) (X) (X) (X) (X) (―) (―) (―) 7 6 5 1 0 AM28 AM27 AM26 AM25 AM24 AM23 AM22 AM21 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 15 14 13 12 11 10 9 8 AMR0 BYTE3 アドレス: 001B17H リード/ライト: (R/W) 初期値: AMR1 BYTE0 アドレス: bit 001B18H 初期値: AMR1 BYTE1 アドレス: bit 001B19H 4 3 2 AM20 AM19 AM18 AM17 AM16 AM15 AM14 AM13 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値: (X) R/W:リード/ライト可能 X :不定値 - :未定義 ( 続く ) 305 第 19 章 CAN コントローラ ( 続き ) AMR1 BYTE2 7 6 5 AM12 AM11 AM10 AM9 AM8 リード/ライト: (R/W) (R/W) (R/W) (R/W) 初期値: (X) (X) (X) 15 14 13 AM4 AM3 リード/ライト: (R/W) 初期値: アドレス: bit 001B1AH AMR1 BYTE3 アドレス: bit 001B1BH (X) (X) 4 3 2 1 0 AM7 AM6 AM5 (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) 12 11 10 9 8 AM2 AM1 AM0 ― ― ― (R/W) (R/W) (R/W) (R/W) (―) (―) (―) (X) (X) (X) (X) (―) (―) (―) R/W:リード/ライト可能 X :不定値 - :未定義 ● 0: コンペア 本ビットに対応するアクセプタンスコード ( 受信メッセージ ID と比較する為の ID レ ジスタ IDRx) を受信メッセージ ID のビットと比較します。マッチしなければメッセー ジは受信されません。 ● 1: マスク 本ビットに対応するアクセプタンスコード ID レジスタ (IDRx) をマスクします。受信 メッセージ ID のビットとのコンペアは行われません。 < 注意事項 > 306 • AMR0 および AMR1 は AMR0 および AMR1 を選択するメッセージバッファ (x) のすべてが無効(メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに設定しなければなりません。バッファが有効 (BVALx=1) であると きに設定を行うと不必要な受信メッセージがストアされる可能性があります。 • CAN コントローラが CAN 通信に参加している状態(CSR:HALT ビットの読出 し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可 能な状態)で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 第 19 章 CAN コントローラ 19.6.20 メッセージバッファ メッセージバッファは 16 個あり , 1 つのメッセージバッファ x(x=0 ∼ 15) は ID レジ スタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成されて います。 ■ メッセージバッファ ● メッセージバッファ (x) は送信および受信の両方に使用されます。 ● 下位番号のメッセージバッファの方が高い優先順位を割当てられています。 • 送信時に送信要求が 1 つ以上のメッセージバッファに対して為されたときには最下 位番号のメッセージバッファから開始して送信が行われます ( 「19.7 CAN コント ローラの送信」を参照してください )。 • 受信時に 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセー ジのアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッ セージ ID が通過すると き に 受 信 メ ッ セ ー ジ は 最 下 位 番 号 の メ ッ セ ー ジ バ ッ ファ内に記憶されます (「19.9 CAN コントローラの受信フローチャート」を参照 してください )。 ● 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたときに メッセージバッファはマルチレベルメッセージバッファとして使用することができます。 これにより受信時間に対する余裕が与えられます (0 を参照してください )。 < 注意事項 > • メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位でイーブ ンアドレスに対して行わなければなりません。バイト単位で書込み動作を行うと 下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいます。 • メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0"(無効)である ときにメッセージバッファ x(IDRx, DLCRx および DTRx)は汎用 RAM として使 用することができます。ただし , CAN コントローラが送受信動作中は , メッセー ジバッファを使用しますので , CPU アクセスが最大で 64 マシンサイクル待たさ れることがあります。これは汎用 RAM 領域(アドレス 001A00H ∼ 001A1FH)に ついても同様です。 307 第 19 章 CAN コントローラ ID レジスタ x(x=0 ∼ 15)(IDRx) 19.6.21 ID レジスタ x(x=0 ∼ 15)(IDRx) は , メッセージバッファ (x) に対する ID レジスタで す。 ■ ID レジスタ x(x=0 ∼ 15)(IDRx) BYTE0 アドレス: 7 6 5 3 2 ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID21 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 15 14 13 12 11 10 9 ID20 ID19 ID18 ID17 ID16 ID15 ID14 ID13 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 6 5 4 3 2 1 0 ID12 ID11 ID10 ID9 ID8 ID7 ID6 ID5 リード/ライト: (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値: (X) (X) (X) (X) (X) (X) (X) (X) 15 14 13 12 11 10 9 8 ID4 ID3 ID2 ID1 ID0 ― ― ― (R/W) (R/W) (R/W) (R/W) (―) (―) (―) (X) (X) (X) (X) (―) (―) (―) bit 001A20H+4x 初期値: BYTE1 アドレス: bit 001A21H+4x 初期値: (X) bit 7 BYTE2 アドレス: 001A22H+4x BYTE3 アドレス: bit 001A23H+4x リード/ライト: (R/W) 初期値: R/W:リード/ライト可能 X :不定値 - :未定義 (X) 4 1 0 8 標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x) を使用しているときは ID28 ∼ ID18 の 11 ビットを使用してください。拡張フレーム フォーマット (IDEx=1) でバッファを使用しているときは ID28 ∼ ID0 の 29 ビットを使 用してください。 ID28 ∼ ID0 の機能は次のとおりです。 ● アクセプタンスコード設定 受信メッセージ ID との比較用の ID ● 送信メッセージ ID の設定 ● 注意 標準フレームフォーマットでは ID28 ∼ ID22 のビットのすべてに "1" をセットするこ とは禁止されています。 308 第 19 章 CAN コントローラ ● 受信メッセージ ID の記憶 ● 注意 受信メッセージ ID はアクセプタンスマスクでマスクされているビットにも記憶されま す。標準フレームフォーマットでは ID17 ∼ ID0 は不定値(前回受信したメッセージの 一部)が記憶されます。 < 注意事項 > • 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位 で書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き 込んでしまいます。上位バイトへの書込みは無視されます。 • 本レジスタはメッセージバッファ (x) が無効(メッセージバッファ有効レジスタ (BVALR) の BVALx が "0")であるときに設定されなければなりません。バッファ が有効 (BVALx=1) であるときに設定を行うと不必要な受信メッセージがストアさ れてしまいます。 • CAN コントローラが CAN 通信に参加している状態(CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な 状態)で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 309 第 19 章 CAN コントローラ DLC レジスタ x(x=0 ∼ 15)(DLCRx) 19.6.22 これはメッセージバッファ x に対する DLC をストアします。 ■ DLC レジスタ x(x=0 ∼ 15)(DLCRx) 6 5 4 1 0 ― ― ― ― DLC3 DLC2 DLC1 DLC0 リード/ライト: (―) (―) (―) (―) (R/W) (R/W) (R/W) (R/W) 初期値: (―) (―) (―) (―) (X) (X) (X) (X) bit アドレス: 001A60H+2x 7 3 2 R/W:リード/ライト可能 X :不定値 - :未定義 ● 送信 • データフレームが送信する(送信 RTR レジスタ (TRTRR) の TRTRx が "0")ときに 送信メッセージのデータ長(バイト単位)を設定します。 • リモートフレームが送信する (TRTRx=1) ときに要求メッセージのデータ長(バイト 単位)を設定します。 < 注意事項 > 0000 ∼ 1000(0 ∼ 8 バイト)以外の設定は禁止されています。 ● 受信 • データフレームが受信された(リモートフレーム要求受信レジスタ (RRTRR) の RRTRx が "0")ときに受信メッセージのデータ長(バイト単位)を記憶します。 • リモートフレームが受信された (RRTRx=1) ときに要求メッセージのデータ長(バイ ト単位)を記憶します。 < 注意事項 > 310 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で 書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込ん でしまいます。上位バイトへの書込みは無視されます。 第 19 章 CAN コントローラ データレジスタ x(x=0 ∼ 15)(DTRx) 19.6.23 データレジスタ x(x=0 ∼ 15)(DTRx) は , メッセージバッファ (x) に対するデータレ ジスタです。 本レジスタはデータフレームの送信および受信のみ使用されるものでありリモート フレームの送信および受信には使用されません。 ■ データレジスタ x(x=0 ∼ 15)(DTRx) BYTE0 bit アドレス: 001A80H+8x 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) 9 8 リード/ライト: (R/W) 初期値: BYTE1 アドレス: bit 001A81H+8x リード/ライト: (R/W) 初期値: BYTE2 アドレス: bit 001A82H+8x リード/ライト: (R/W) 初期値: (X) (X) (X) (X) (X) bit 15 14 13 12 11 BYTE3 アドレス: 001A83H+8x D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 15 14 13 12 11 10 9 8 リード/ライト: (R/W) 初期値: BYTE4 アドレス: bit 001A84H+8x リード/ライト: (R/W) 初期値: BYTE5 アドレス: bit 001A85H+8x D7 リード/ライト: (R/W) 初期値: 10 (X) D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) R/W:リード/ライト可能 X :不定値 ( 続く ) 311 第 19 章 CAN コントローラ ( 続き ) BYTE6 アドレス: bit 001A86H+8x 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) リード/ライト: (R/W) 初期値: BYTE7 アドレス: bit 001A87H+8x リード/ライト: (R/W) 初期値: (X) R/W:リード/ライト可能 X :不定値 ● 送信メッセージデータ(0 ∼ 8 バイトのいずれか)の設定。 データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。 ● 受信メッセージデータ データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で記憶されます。 受信メッセージデータが 8 バイトより少なくてもデータが記憶されるデータレジスタ (DTRx) の残りのバイトは不定となります。 < 注意事項 > 312 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で 書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込ん でしまいます。上位バイトへの書込みは無視されます。 第 19 章 CAN コントローラ 19.7 CAN コントローラの送信 CAN コントローラでは , 送信要求レジスタ (TREQR) の TREQx に "1" が書き込まれ たときにメッセージバッファ (x) による送信が開始します。このときに TREQx は "1" になり送信完了レジスタ (TCR) の TCx は "0" になります。 ■ CAN コントローラの送信の開始 リモートフレーム受信待機レジスタ (RFWTR) の RFWTx が "0" であれば送信は直ちに 開始します。もし RFWTx が "1" であれば , リモートフレームが受信される(リモート 要求受信レジスタ (RRTRR) の RRTRx が "1" になる)まで待機した後に送信が開始し ます。 もし送信に対する要求が 1 つ以上のメッセージバッファに対して為された(1 つ以上の TREQx が "1")ときには最下位番号のメッセージバッファから開始して送信が行われ ます。 CAN バスに対するメッセージ送信(送信出力端子 TX によるもの)はバスがアイドル のときに開始します。 送信 RTR レジスタ (TRTRR) の TRTRx が "0" であればデータフレームが送信されます。 もし TRTRx が "1" であればリモートフレームが送信されます。 送信に関してメッセージバッファが CAN バス上のほかの CAN コントローラと競合し てアービトレーションが不調に終わった場合または送信中にエラーが生じた場合 , メッセージバッファはバスがアイドルとなるまで待機しそれが成功するまで再送信を 反復します。 ■ CAN コントローラの送信要求の解除 ● 送信解除レジスタ (TCANR) による解除 送信待ち状態中に送信を実行しなかったメッセージバッファ(x) に対する送信要求は送 信解除レジスタ (TCANR) の TCANx に "1" を書き込むことにより解除することができ ます。解除の完了時に TREQx は "0" になります。 ● 受信メッセージの記憶による解除 送信要求にもかかわらず送信を実行しなかったメッセージバッファ(x) も受信を行いま す。 データフレームの送信に対する要求にもかかわらずメッセージバッファ(x) が送信を実 行していなかった場合 (TRTRx=0 または TREQx=1) でも , アクセプタンスフィルタを通 過した受信データフレームをストアした後には , 送信要求が解除されます (TREQx=0)。 < 注意事項 > リモートフレームをストアすることでは送信要求は解除されません(TREQx=1 はそ のままです)。 リモートフレームの送信に対する要求にもかかわらずメッセージバッファ(x) が送信を 実行していなかった場合 (TRTRx=1 または TREQx=1) でも , アクセプタンスフィルタを 通過した受信リモートフレームをストアした後には , 送信要求が解除されます (TREQx=0)。 313 第 19 章 CAN コントローラ < 注意事項 > データフレームまたはリモートフレームのいずれをストアしても , 送信要求は解除 されます。 ■ CAN コントローラの送信の完了 送信が成功したときに RRTRx は "0" になり TREQx は "0" になり送信完了レジスタ (TCR) の TCx は "1" になります。もし送信完了割込みが許可されていれば(送信完了 割込み許可レジスタ (TIER) の TIEx は 1)割込みが生じます。 ■ CAN コントローラの送信フローチャート 図 19.7-1 に , CAN コントローラの送信フローチャートを示します。 図 19.7-1 CAN コントローラの送信フローチャート 送信要求 (TREQx:=1) TCx:=0 0 TREQx? 1 0 RFWTx? 1 0 RRTRx? 1 上記条件を満足するほかのメッセージバ ッファがある場合,その中で最下位番号メ ッセージバッファを選択 NO バスは使用されて いないか。 YES 0 1 TRTRx? データフレームが送信される リモートフレームが送信される NO 送信は成功したか。 YES 1 RRTRx := 0 TREQx := 0 TCx := 1 TIEx? TREQx:=0 1 0 送信完了割込みが生ずる 送信の終了 314 0 TCANx? 第 19 章 CAN コントローラ 19.8 CAN コントローラの受信 CAN バス上でデータフレームまたはリモートフレームの開始 (SOF) が検出されたと きに受信は開始します。 ■ アクセプタンスフィルタリング 標準フレームフォーマットの受信メッセージは , 標準フレームフォーマットに設定さ れたメッセージバッファ (x)(IDE レジスタ (IDER) の IDEx は 0) と比較されます。拡張 フレームフォーマットの受信メッセージは , 拡張フレームフォーマットに設定された メッセージバッファ (x)(IDEx は 1) と比較されます。 もし受信メッセージ ID とアクセプタンスコード ( 受信メッセージ ID との比較の為の ID レジスタ (IDRx)) との比較の後にアクセプタンスマスクにより比較すべきビット セットのすべてが一致すれば受信メッセージはメッセージバッファ(x) のアクセプタン スフィルタを通過します。 ■ 受信メッセージの記憶 受信動作が成功したときに受信メッセージはアクセプタンスフィルタを通過した ID を 含めメッセージバッファ (x) に記憶されます。 データフレームを受信したときに受信メッセージは ID レジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) に記憶されます。 受信メッセージデータが 8 バイトより少なくてもデータは DTRx の残りのバイトに記 憶されその値は不定となります。 リモートフレームを受信したときに受信メッセージは IDRx および DLCRx のみに記憶 されて DTRx はそのままです。 もしアクセプタンスフィルタを通過した ID を含む 1 つ以上のメッセージバッファがあ れば受信メッセージが記憶されるべきメッセージバッファ x は次の規則により決定さ れます。 • メッセージバッファx(x=0 ∼ 15) の優先順位はその番号が低いほど高くなります。す なわちメッセージバッファ 0 が最高の優先度を与えられメッセージバッファ 15 は 最低の優先度が与えられます。 • 受信メッセージを記憶する上では基本的に受信完了レジスタ (RCR) の RCx ビット が "0" に設定されたメッセージバッファが優先されます。 • もしアクセプタンスマスク選択レジスタ(AMSR)の各ビットが全ビット比較(AMSx.1 および AMSx.0 ビットが 00 に設定されたメッセージバッファ ) に設定されていれば RCR の RCx ビットの値にかかわらず受信メッセージはストアされます。 • もし RCR の RCx ビットが "0" のバッファと AMSR のビットが全ビット比較に設定 されているバッファが複数ある場合 , 受信メッセージは最下位番号(最優先)のメッ セージバッファ x に記憶されます。 • もし上記のメッセージバッファが無ければ受信メッセージは下位番号メッセージ バッファ x に記憶されます。 315 第 19 章 CAN コントローラ 図 19.8-1 には , 受信メッセージを記憶すべきメッセージバッファ x を決定するための フローチャートが示されています。メッセージバッファはバッファ番号順に , AMSR の 各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1 を 使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセット されたメッセージバッファの順番に設定されることを推奨します。 図 19.8-1 受信メッセージを記憶するメッセージバッファ (x) を決定するフローチャート 開始 RCxが0にセットされているか,AMSx.1およ びAMSx.0が00にセットされているメッセー ジバッファが見つかったか。 NO YES 最下位番号のメッセージバッ ファを選択 最下位番号のメッセージバッ ファを選択 終了 ■ 受信オーバラン 受信メッセージがストアされるべきメッセージバッファ x に対応する受信完了レジス タ (RCR) の RCx ビットがすでに "1" にセットされていてメッセージバッファ x の受信 メッセージの記憶が完了したときに受信オーバランレジスタ (ROVRR) の ROVRx ビッ トは "1" にセットされて受信オーバランを示します。 ■ データフレームおよびリモートフレームの受信に対する処理 ● データフレームの受信に対する処理 リモート要求受信レジスタ (RRTRR) の RRTRx は "0" になります。 送信要求レジスタ (TREQR) の TREQx は(受信メッセージを記憶する直前に)"0" にな ります。送信を実行しなかったメッセージバッファ (x) に対する送信要求は解除されま す。 < 注意事項 > データフレームまたはリモートフレームのいずれの送信に対する要求も解除されま す。 ● リモートフレームの受信に対する処理 RRTRx は "1" になります。 もし送信 RTR レジスタ (TRTRR) の TRTRx が "1" であれば TREQx は "0" になります。 この結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に 対する要求は解除されます。 < 注意事項 > 316 • データフレーム送信に対する要求は解除されません。 • 送信要求の解除に関しては 「19.7 CAN コントローラの送信」を参照してくださ い。 第 19 章 CAN コントローラ ■ 受信完了 受信完了レジスタ (RCR) の RCx は受信メッセージを記憶した後に "1" になります。 もし受信割込みが許可されていれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1") 割込みが生じます。 < 注意事項 > この CAN コントローラはそれ自身が送信したメッセージを受信することはありませ ん。 317 第 19 章 CAN コントローラ 19.9 CAN コントローラの受信フローチャート 図 19.9-1 に , CAN コントローラの受信フローチャートを示します。 ■ CAN コントローラの受信フローチャート 図 19.9-1 CAN コントローラの受信フローチャート データフレームまたはリモート フレームの開始(SOF)の検出 NO アクセプタンスフィルタをパスする メッセージバッファ(x)はあるか。 YES NO 受信は成功したか。 YES 受信メッセージを記憶するメッセージ バッファ(x)を決定 受信メッセージをメッセージ バッファ(x)に記憶 1 RCx? 0 データフレーム ROVRx:=1 リモートフレーム 受信メッセージは? RRTRx:=0 RRTRx:=1 1 TRTRx? 0 TREQx:=0 RCx:=1 RIEx? 1 0 受信割込みが生じる 受信の終了 318 第 19 章 CAN コントローラ 19.10 CAN コントローラの使用方法 CAN コントローラでは , 次のような設定が必要です。 • ビットタイミングの設定 • フレームフォーマットの設定 • ID の設定 • アクセプタンスフィルタの設定 • 低消費電力モードの設定 ■ ビットタイミングの設定 ビットタイミングレジスタ (BTR) はバス動作停止 ( 制御ステータスレジスタ (CSR) の バス動作停止ビット (HALT) が "1") の間に設定しなければなりません。 設定完了の後に HALT に "0" を書き込んでバス動作停止を解除してください。 ■ フレームフォーマットの設定 メッセージバッファ (x) により使用されるフレームフォーマットを設定してください。 標準フレームフォーマットを使用するときには IDE レジスタ (IDER) の IDEx を "0" に 設定してください。拡張フレームフォーマットを使用するときには IDEx を "1" に設定 してください。 この設定はメッセージバッファ(x) が無効(メッセージバッファ有効レジスタ (BVALR) の BVALx が "0")であるときに行わなければなりません。バッファが有効 (BVALx=1) のときに設定を行うと不必要な受信メッセージがストアされる可能性があります。 ■ ID の設定 メッセージバッファ (x) の ID を ID レジスタ (IDRx) の ID28 ∼ ID0 に設定してくださ い。メッセージバッファ (x) の ID は標準フレームフォーマットでは ID17 ∼ ID0 に設 定する必要はありません。メッセージバッファ (x) の ID は送信では送信メッセージと して使用され受信ではアクセプタンスコードとして使用されます。 この設定はメッセージバッファ(x) が無効(メッセージバッファ有効レジスタ (BVALR) の BVALx が "0")であるときに行わなければなりません。バッファが有効 (BVALx=1) のときに設定を行うと不必要な受信メッセージがストアされる可能性があります。 319 第 19 章 CAN コントローラ ■ アクセプタンスフィルタの設定 メッセージバッファ(x) のアクセプタンスフィルタはアクセプタンスコードおよびアク セプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ ファ (x) が無効 ( メッセージバッファ許可レジスタ (BVALR) の BVALx が "0") である ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行 うと不必要な受信メッセージがストアされる可能性があります。 各メッセージバッファ(x) で使用されたアクセプタンスマスクをアクセプタンスマスク 選択レジスタ(AMSR)により設定してください。アクセプタンスマスクレジスタ(AMR0 および AMR1) も使用するのであれば設定しなければなりません(設定の詳細に関して は 「19.6.18 アクセプタンスマスク選択レジスタ (AMSR)」および 「19.6.19 アクセプ タンスマスクレジスタ 0 および 1 (AMR0/AMR1)」を参照してください) 。 アクセプタンスマスクは不必要な受信メッセージがストアされたときでも送信要求が 解除されないように設定しなければなりません。たとえばそれは同一の ID のメッセー ジのみを送信するのであればフルビット比較に設定しなければなりません。 ■ 低電力消費モードの設定 F2MC-16LX を低電力消費モード ( 停止 , 時計 , ハードウェアスタンバイなど ) に設定す るには制御ステータスレジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込ん でからバス動作が停止したか (HALT=1) をチェックしてください。 320 第 19 章 CAN コントローラ 19.11 メッセージバッファ (x) による送信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ ファ (x) を有効にしてください。 ■ メッセージバッファ (x) による送信方法 ● 送信データ長コードの設定 送信データ長コード(バイト単位)を DLC レジスタ (DLCRx) の DLC3 ∼ DLC0 に設 定してください。 データフレーム送信(送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき)に対して は送信メッセージのデータ長を設定してください。 リモートフレーム送信(TRTRx=1 のとき)に対しては要求メッセージのデータ長(バ イト単位)を設定してください。 < 注意事項 > 0000 ∼ 1000(0 ∼ 8 バイト)以外の設定は禁止されています。 ● 送信データの設定(データフレームの送信に対してのみ) データフレーム送信景送信レジスタ (TRTRR) の TRTRx が "0" のとき)に対してはデー タを送信バイト数分データレジスタ (DTRx) に設定してください。 < 注意事項 > 送信データは送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して再書込 みしなければなりません。メッセージバッファ有効レジスタ (BVALR) の BVALx ビッ トを "0" に設定する必要はありません。BVALx ビットを "0" に設定するとリモートフ レーム受信を喪失する可能性があります。 ● 送信 RTR レジスタの設定 データフレーム送信に対しては送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定し てください。 リモートフレーム送信に対しては TRTRx を "1" に設定してください。 ● 送信開始条件の設定(データフレームの送信のみ) データフレーム送信に対する要求が設定された直後に送信を開始するためには , リ モートフレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください(送 信要求レジスタ (TREQR) の TREQx は "1" であり送信 RTR レジスタ (TRTRR) の TRTRx は "0" です)。 データフレーム送信に対する要求が設定され(TREQx=1 および TRTRx=0)た後にリ モートフレームを受信する(リモート要求受信レジスタ (RRTRR) の RRTRx が "1" に なる)まで待機した後に送信を開始する為には , RFWTx を "1" に設定してください。 < 注意事項 > もし RFWTx が "1" に設定されるとリモートフレーム送信を行うことはできません。 321 第 19 章 CAN コントローラ ● 送信完了割込みの設定 送信完了割込みを発生する場合には送信完了割込み許可レジスタ (TIER) の TIEx を "1" に設定してください。 送信完了割込みを発生しない場合には TIEx を "0" に設定してください。 ● 送信要求の設定 送信要求を行うには送信要求レジスタ (TREQR) の TREQx を "1" に設定してください。 ● 送信要求の解除 メッセージバッファ(x) に対する送信の要求を解除するときには送信キャンセルレジス タ (TCANR) の TCANx に "1" を書き込んでください。 TREQx をチェックしてください。TREQx=0 の場合には送信解除が終了したか送信が 完了しています。送信完了レジスタ (TCR) の TCx をチェックしてください。TCx=0 の 場合には送信解除は終了しています。TCx=1 ならば送信が完了しています。 ● 送信完了の処理 送信が成功すれば送信完了レジスタ (TCR) の TCx は "1" になります。 もし送信完了割込みが許可されていれば(送信完了割込み許可レジスタ (TIER) の TIEx が "1")割込みが生じます。 送信完了をチェックした後に TCx に "0" を書き込んでそれを "0" に設定してください。 これにより送信完了割込みが解除されます。 次の場合には待ち状態中の送信要求はメッセージの受信および記憶により解除されま す。 • データフレームの受信によるデータフレーム送信の要求 • データフレームの受信によるリモートフレーム送信の要求 • リモートフレームの受信によるリモートフレーム送信の要求 データフレーム送信に対する要求はリモートフレームの受信および記憶によっては解 除されません。ただし ID および DLC は受信したリモートフレームの ID および DLC により変更されます。送信されるべきデータフレームの ID および DLC が受信したリ モートフレームの値になることに注意してください。 322 第 19 章 CAN コントローラ 19.12 メッセージバッファ (x) による受信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定の後で , 以下の設定をしてください。 ■ メッセージバッファ (x) による受信方法 ● 受信割込み設定 受信割込みを許可するには受信割込み許可レジスタ (RIER) の RIEx を "1" に設定して ください。 受信割込みを禁止するには RIEx を "0" に設定してください。 ● 受信開始 設定の後で受信を開始するときにはメッセージバッファ有効レジスタ (BVALR) の BVALx を "1" に設定してメッセージバッファ (x) を有効にしてください。 ● 受信完了の処理 アクセプタンスフィルタへの通過の後に受信が成功すれば受信メッセージはメッセー ジバッファ (x) に記憶されて受信完了レジスタ (RCR) の RCx は "1" になります。デー タフレーム受信に関してはリモート要求受信レジスタ (RRTRR) の RRTRx は "0" にな ります。リモートフレーム受信に関しては RRTRx は "1" になります。 もし受信割込みが許可されれば(受信割込み許可レジスタ (RIER) の RIEx が "1")割込 みが生じます。 受信完了をチェックした後 (RCx=1) で受信メッセージを処理してください。 受信メッセージの処理を完了した後は受信オーバランレジスタ (ROVRR) の ROVRx を チェックしてください。 ROVRx=0 ならば処理された受信メッセージは有効です。CRx に "0" を書き込んでそれ を "0" に設定し(受信完了割込みも解除されます)て受信を終了します。 ROVRx=1 ならば受信オーバランが生じ , 処理された受信メッセージに新たな受信メッ セージが上書きされている可能性があります。この場合には ROVRx ビットに "0" を書 き込んでそれを "0" に設定した後で受信メッセージを再処理しなければなりません。図 19.12-1 に , 受信割込み処理の一例を示します。 図 19.12-1 受信割込み処理の例 RCx=1で割込み 受信メッセージ読取り A:=ROVRx ROVRx:=0 A = 0? NO YES RCx:=0 終了 323 第 19 章 CAN コントローラ 19.13 マルチレベルメッセージバッファの構成の決定 もし受信が頻繁に行われる場合 , または , 不特定多数のメッセージを受信するのであ れば , すなわちメッセージを処理する時間が不十分であれば , 1 つ以上のメッセージ バッファを組合せてマルチレベルメッセージバッファとすることにより CPU による 受信メッセージの処理に対する余裕を与えてください。 ■ マルチレベルメッセージバッファの構成の決定 マルチレベルメッセージバッファを用意するには組合せられた各メッセージバッファ に同じアクセプタンスフィルタを設定しなければなりません。 もしアクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較 ((AMSx.1, AMSx.0)=(0, 0)) に設定されていればメッセージバッファをマルチレベルメッセージ構 成とすることはできません。これは全ビット比較では受信完了レジスタ (RCR) の RCx ビットの値の如何に関わらず受信メッセージが記憶されることから , 1 つ以上のメッ セージバッファに対して全ビット比較および同一アクセプタンスコード (ID レジスタ (IDRx)) が指定されたとしても受信メッセージが常に下位番号の ( 優先度の低い ) メッ セージバッファに記憶されるからです。このため全ビット比較および同一アクセプタ ンスコードを 1 つ以上のメッセージバッファに指定してはなりません。 図 19.13-1 は , マルチレベルメッセージバッファの動作例を示しています。 324 第 19 章 CAN コントローラ 図 19.13-1 マルチレベルメッセージバッファの動作例 初期化 AMS15, AMS14, AMS13 AMSR AMR0選択 . . . 10 10 10 AM28~AM18 AMS0 0000 ID28~ID18 メッセージバッファ 13 1111 111 0101 0000 000 RC15, RC14, RC13 IDE . . . 0 . . . RCR 0 0 0 . . . ROVRR 0 0 0 . . . メッセージバッファ 14 0101 0000 000 0 . . . メッセージバッファ 15 0101 0000 000 0 . . . ROVR15, ROVR14, ROVR13 マスク メッセージ受信中:受信メッセージはメッセージバッファ13に記憶されます。 IDE ID28~ID18 メッセージ受信中 0101 1111 000 0 . . . メッセージバッファ 13 0101 1111 000 0 . . . RCR 0 0 1 . . . メッセージバッファ 14 0101 0000 000 0 . . . ROVRR 0 0 0 . . . メッセージバッファ 15 0101 0000 000 0 . . . メッセージ受信中:受信メッセージはメッセージバッファ14に記憶されます。 メッセージ受信中 0101 1111 001 0 . . . メッセージバッファ 13 0101 1111 000 0 . . . RCR 0 1 1 . . . メッセージバッファ 14 0101 1111 001 0 . . . ROVRR 0 0 0 . . . メッセージバッファ 15 0101 0000 000 0 . . . メッセージ受信中:受信メッセージはメッセージバッファ15に記憶されます。 メッセージ受信中 0101 1111 010 0 . . . メッセージバッファ 13 0101 1111 000 0 . . . RCR 1 1 1 . . . メッセージバッファ 14 0101 1111 001 0 . . . ROVRR 0 0 0 . . . メッセージバッファ 15 0101 1111 010 0 . . . メッセージ受信中:受信メッセージはメッセージバッファ13に記憶されます。 メッセージ受信中 0101 1111 011 0 . . . メッセージバッファ 13 0101 1111 011 0 . . . RCR 1 1 1 . . . メッセージバッファ 14 0101 1111 001 0 . . . ROVRR 0 0 1 . . . メッセージバッファ 15 0101 1111 010 0 . . . < 注意事項 > 4 個のメッセージが同一のアクセプタンスフィルタ設定によりメッセージバッファ 13, 14 および 15 に受信されます。 325 第 19 章 CAN コントローラ 19.14 CAN コントローラの使用上の注意 CAN コントローラが CAN 通信に参加している状態(CSR:HALT ビットの読出し値 が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状 態)で , メッセージバッファの内容の読出しや書込み中にメッセージバッファ有効 レジスタの BVAL ビットを無効 (BVALR:BVAL=0) にした場合 , CAN コントローラ の動作に異常をもたらす可能性があります。これは , 以下の操作により回避するこ とができます。 ■ CAN コントローラの使用上の注意 ● 受信メッセージバッファの構成を変更する場合の操作 CAN のアプリケーションによっては , CAN 通信後に得られる情報を元にメッセージ バッファの構成を変更する場合があります。CAN 通信が確立されている間 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受 信が可能な状態 ) で , ID レジスタ (IDR) やアクセプタンスマスク選択レジスタ (AMSR), アクセプタンスマスクレジスタ 0/1(AMR0/ AMR1) の設定変更によりメッセージバッ ファの構成を変更する場合は , 以下のいずれかによる操作を行ってください。 [HALT ビットの使用 ] 制御ステータスレジスタ (CSR) の HALT ビットに "1" を書込み , HALT ビットの読出 し値が "1" になったことを確認してから ID レジスタ (IDR) やアクセプタンスマスク選 択レジスタ (AMSR), アクセプタンスマスクレジスタ 0/1(AMR0/ AMR1) の設定を変更 してください。 [ メッセージバッファ 0 を使用しない ] メッセージバッファ 0 を送信にも受信にも使用しないでください ( メッセージバッ ファを無効 (BVALR:BVAL0=0), 受信完了時の割込みを禁止 (RIER:RIE0=0), 送信要求し ない (TREQR:TREQ=0) に設定してください )。 ● 受信メッセージの処理を行う場合の操作 受信メッセージをメッセージバッファから読み出す場合は , 次のメッセージが上書き される可能性があります。これを回避するために , メッセージバッファ有効レジスタの BVAL ビットによる受信禁止 (BVALR:BVAL=0) を行わないでください。受信メッセー ジをメッセージバッファから確実に読み出す場合は , メッセージの読出し前後で , メッ セージの上書き有無を受信オーバランレジスタ (ROVRR) の ROVR ビットにより確認 してください。詳細は , 「19.6.16 受信オーバランレジスタ (ROVRR)」および 「19.12 メッセージバッファ (x) による受信方法」を参照してください。 ● 送信要求の抑止をする場合の操作 送信要求を解除する場合は , メッセージバッファ有効レジスタの BVAL ビットによる 送信禁止 (BVALR:BVAL=0) を行わないでください。送信要求を解除する場合は , 受信 キャンセルレジスタ (TCANR) の TCAN ビットを "1" に設定してください。 326 第 19 章 CAN コントローラ ● 送信メッセージを構成する場合の操作 送信メッセージの構成を行うために , ID レジスタ (IDR) や IDE レジスタ (IDER) の設定 を行う場合は, メッセージバッファ有効レジスタのBVALビットによりメッセージバッ ファを無効 (BVALR:BVAL=0) にする必要があります。 送信要求レジスタ (TREQR) の TREQ ビットが "0" であることを確認するか , 送信完了 レジスタ (TCR) の TC ビットが "1" であることを確認してから BVAL ビットを無効 (BVALR:BVAL=0) にしてください。 327 第 19 章 CAN コントローラ 328 第 20 章 ステッピングモータ コントローラ ステッピングモータコントローラの機能と動作に ついて説明します。 20.1 ステッピングモータコントローラの概要 20.2 ステッピングモータコントローラのレジスタ 329 第 20 章 ステッピングモータ コントローラ 20.1 ステッピングモータコントローラの概要 ステッピングモータコントローラは 2 個の PWM パルス発生器 , 4 個のモータドライ バおよびセレクタロジックから構成されています。 4 個のモータドライバは高出力駆動能力があり 2 個のモータコイルの 4 個の端部に 直接的に接続することができます。PWM パルス発生器とセレクタロジックを組合せ てモータの回転を制御するように設計されています。同期機構により 2 個の PWM の同期作動が確かなものとなります。 ここではステッピングモータコントローラ 0 のみを説明しています。他のコント ローラの機能も同様です。レジスタアドレスは I/O マップに見られます。 ■ ステッピングモータコントローラのブロックダイヤグラム 図 20.1-1 に , ステッピングモータコントローラのブロックダイヤグラムを示します。 図 20.1-1 ステッピングモータコントローラのブロックダイヤグラム マシンクロック OE1 CK プリスケーラ PWM1P0 PWM1パルス発生器 EN P1 セレクタ PWM1M0 PWM P0 PWM1コンペアレジスタ PWM1選択レジスタ OE2 CK CE EN 出力許可 PWM2P0 セレクタ PWM2パルス発生器 PWM2M0 PWM ロード PWM2コンペアレジスタ 330 出力許可 BS PWM2選択レジスタ 第 20 章 ステッピングモータ コントローラ 20.2 ステッピングモータコントローラのレジスタ ステッピングモータコントローラのレジスタには , 次の 5 種類があります。 • PWM 制御 0 レジスタ • PWM1 コンペア 0 レジスタ • PWM2 コンペア 0 レジスタ • PWM1 選択レジスタ • PWM2 選択レジスタ ■ ステッピングモータコントローラのレジスタ PWM制御0レジスタ アドレス: 00005EH 7 6 5 4 3 OE2 OE1 P1 P0 (R/W) (0) (R/W) (0) (R/W) (0) 7 6 D7 (R/W) (X) bit リード/ライト 初期値 2 1 0 CE ― ― 予約 (R/W) (0) (R/W) (0) ― ― ― ― (R/W) (0) 5 4 3 2 1 0 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) PWC0 PWM1コンペア0レジスタ アドレス: bit 000070H リード/ライト 初期値 PWM2コンペア0レジスタ アドレス: 000071H bit リード/ライト 初期値 14 13 12 11 10 9 8 D7 15 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) PWC10 PWC20 PWM1選択レジスタ アドレス: bit 000072H リード/ライト 初期値 PWM2選択レジスタ アドレス: 000073H リード/ライト 初期値 bit 7 6 5 4 3 2 1 0 ― ― P2 P1 P0 M2 M1 M0 ― ― ― ― (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 15 14 ― BS ― ― (R/W) (0) 13 12 11 10 9 8 P2 P1 P0 M2 M1 M0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) PWS10 PWS20 R/W:リード/ライト可能 X :不定値 - :未定義 331 第 20 章 ステッピングモータ コントローラ 20.2.1 PWM 制御 0 レジスタ PWM 制御 0 レジスタは , ステッピングモータコントローラの起動・停止 , 割込みの 制御や外部出力端子などの設定を行います。 ■ PWM 制御 0 レジスタ PWM制御0レジスタ アドレス: 00005EH bit リード/ライト 初期値 6 5 4 3 2 1 OE2 7 OE1 P1 P0 CE ― ― 予約 0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) ― ― ― ― (R/W) (0) PWC0 R/W:リード/ライト可能 X :不定値 [bit7]OE2: 出力許可ビット 本ビットが "1" にセットされたとき外部端子は PWM2P0 および PWM2M0 として割り 当てられます。その他の場合にはそれらは汎用 I/O として使用することができます。 [bit6]OE1: 出力許可ビット 本ビットが "1" にセットされたとき外部端子は PWM1P0 および PWM1M0 として割り 当てられます。その他の場合にはそれらは汎用 I/O として使用することができます。 [bit5, bit4]P1, P0: 動作クロック選択ビット 本ビット群は PWM パルス発生器に対するクロック入力信号を指定します。 表 20.2-1 クロック入力 P1 P0 クロック入力 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック [bit3]CE: カウント許可ビット 本ビットは PWM パルス発生器の動作を許可します。本ビットが "1" にセットされたと き PWM パルス発生器はそれらの動作を開始します。PWM2 パルス発生器は PWM1 パ ルス発生器の 1 マシンクロックサイクル後にスタートすることに注意してください。こ れは出力ドライバからのスイッチングノイズを減少させるのを助けるものです。 [bit0] 予約 : 予約ビット 予約ビットです。本ビットには必ず "0" を書き込んできださい。 332 第 20 章 ステッピングモータ コントローラ PWM1, PWM2 コンペアレジスタ 20.2.2 PWM1, PWM2 の 2 つの 8 ビットコンペアレジスタの内容は , PWM パルスの幅を決 定するものです。記憶された "00H" の値は PWM のデューティが 0% であることを 表し , "FFH" は 99.6% のデューティを表します。 ■ PWM1, PWM2 コンペアレジスタ PWM1 , PWM2 コンペアレジスタは , 任意の時点でアクセスすることができますが , 変 更された値は PWM2 選択レジスタの BS ビットが "1" にセットされた後における現在 の PWM サイクルの終わりにパルス幅に反映されます。 PWM1コンペア0レジスタ アドレス: 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) bit 000070H リード/ライト 初期値 PWM2コンペア0レジスタ アドレス: 000071H リード/ライト 初期値 14 13 11 10 9 8 D7 15 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) bit 12 PWC10 PWC20 R/W:リード/ライト可能 X :不定値 1つのPWMサイクル 256入力クロックサイクル レジスタ値 00H 80H 128入力クロックサイクル FFH 255入力クロックサイクル 333 第 20 章 ステッピングモータ コントローラ PWM1, PWM2 選択レジスタ 20.2.3 PWM1, PWM2 選択レジスタは , ステッピングモータコントローラの外部端子の出力 が "0", "1", PWM パルス , ハイインピーダンスかを選択します。 ■ PWM1, PWM2 選択レジスタ PWM1選択レジスタ アドレス: bit 000072H リード/ライト 初期値 PWM2選択レジスタ アドレス: 000073H リード/ライト 初期値 R/W:リード/ライト可能 - :未定義 bit 7 6 5 4 3 ― ― P2 P1 ― ― ― ― (R/W) (0) (R/W) (0) 13 2 1 0 P0 M2 M1 M0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 15 14 12 11 10 9 8 ― BS P2 P1 P0 M2 M1 M0 ― ― (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) PWS10 PWS20 [bit14]BS: 書換えビット 本ビットは PWM 出力に対する設定を同期する為に用意されています。本ビットがセッ トされるまで , 2 個のコンペアレジスタおよび 2 個の選択レジスタに対して行われた変 更は出力信号には反映されません。 本ビットが "1" にセットされたとき , PWM パルス発生器およびセレクタはレジスタ内 容を現在の PWM サイクルの終わりでロードします。BS ビットは次の PWM サイクル の始めに自動的に "0" にリセットされます。もし BS ビットがこの自動リセットと同時 にソフトウェアにより "1" にセットされると , BS ビットは "1" にセットされ ,(すなわ ち変更されないままであり)自動リセットは解除されます。 [bit13 ∼ bit11]P2 ∼ P0: 出力選択ビット 本ビット群は PWM2P0 における出力信号を選択するものです。 [bit10 ∼ bit8]M2 ∼ M0: 出力選択ビット 本ビット群は PWM2M0 における出力信号を選択するものです。 [bit5 ∼ bit3]P2 ∼ P0: 出力選択ビット 本ビット群は PWM1P0 における出力信号を選択するものです。 [bit2 ∼ bit0]M2 ∼ M0: 出力選択ビット 本ビット群は PWM1M0 における出力信号を選択するものです。 次の表は出力レベルと選択ビットの間の関係を示すものです。 P2 0 0 0 1 334 P1 0 0 1 X P0 0 1 X X PWMnP0 L H PWM パルス 高インピーダンス M2 0 0 0 1 M1 0 0 1 X M0 0 1 X X PWMnM0 L H PWM パルス 高インピーダンス 第 21 章 アドレス一致検出機能 アドレス一致検出の機能と動作について説明しま す。 21.1 アドレス一致検出機能の概要 21.2 アドレス一致検出機能のレジスタ 21.3 アドレス一致検出機能の動作 21.4 アドレス一致検出機能の使用例 335 第 21 章 アドレス一致検出機能 21.1 アドレス一致検出機能の概要 アドレスが , アドレス検出レジスタに設定された値と等しい場合に , CPU に読み込 まれる命令コードを強制的に INT9 命令のコード (01H) に置き換えます。その結果 , CPU が設定された命令を実行する時に , INT9 命令を実行します。INT9 割込みルー チンで処理を行うことにより , アドレス一致検出機能を実現することができます。 アドレス検出レジスタは 2 本用意されており , 各レジスタごとにコンペア許可ビッ トがあります。アドレス検出レジスタに設定された値とアドレスが一致して , かつ 割込み許可ビットが "1" の場合 , CPU に読み込まれる命令コードを強制的に INT9 命令のコードに置き換えます。 ■ アドレス一致検出機能のブロックダイヤグラム 図 21.1-1 アドレス一致検出機能のブロックダイヤグラム アドレス検出レジスタ 許可ビット F2MC-16LXバス 336 比較 アドレスラッチ INT9 命令 F2MC-16LX CPUコア 第 21 章 アドレス一致検出機能 21.2 アドレス一致検出機能のレジスタ アドレス一致検出機能には , 次の 2 種類のレジスタがあります。 • プログラムアドレス検出レジスタ (PADR0/PADR1) • プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) ■ プログラムアドレス検出レジスタ (PADR0/PADR1) プログラムアドレス検出レジスタ (PADR0/PADR1:Program Address Detect Register 0/1) は , 各レジスタに書き込まれた値と , アドレスを比較します。一致した場合は , ADCSR の対応する割込み許可ビットが "1" の場合 , CPU に対して INT9 命令の発生を要求しま す。 対応する割込み許可ビットが "0" の場合は , 一致していても何も行いません。 図 21.2-1 プログラムアドレス検出レジスタ (PADR0/PADR1) プログラムアドレス検出レジスタ byte byte byte アクセス 初期値 PADR0 1FF2H/1FF1H/1FF0H R/W 不定 PADR1 1FF5H/1FF4H/1FF3H R/W 不定 図 21.2-1 に , プログラムアドレス検出レジスタ (PADR0/PADR1) と PACSR との対応を 示します。 表 21.2-1 PADR0/PADR1 レジスタと PACSR との対応 アドレス検出レジスタ 割込み許可ビット PADR0 AD0E PADR1 AD1E ■ プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) プログラムアドレス検出コントロール / ステータスレジスタ (PACSR:Program Address detect Control Status Register) は , アドレス検出機能の動作を制御します。 図 21.2-2 プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) プログラムアドレス検出コントロール/ステータスレジスタ bit 7 6 5 アドレス:009EH 予約 リード/ライト 初期値 予約 予約 4 3 2 1 0 予約 AD1E 予約 AD0E 予約 (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) PACSR (-) (R/W) (R/W) (0) (0) (0) R/W:リード/ライト可能 [bit7 ∼ bit4] 予約 : 予約ビット bit7∼bit4は, 予約ビットです。PACSRを設定するときは, 必ず"0"を設定してください。 337 第 21 章 アドレス一致検出機能 [bit3]AD1E(Address Detect register 1 Enable) AD1E は , PADR1 の動作許可ビットです。 このビットが "1" のとき PADR1 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 [bit2] 予約 : 予約ビット bit2 は , 予約ビットです。PACSR を設定する時は , 必ず "0" を設定してください。 [bit1]AD0E(Address Detect register 0 Enable) AD0E は , PADR0 の動作許可ビットです。 このビットが "1" のとき PADR0 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 [bit0] 予約 : 予約ビット bit0 は , 予約ビットです。PACSR を設定するときは , 必ず "0" を設定してください。 338 第 21 章 アドレス一致検出機能 21.3 アドレス一致検出機能の動作 プログラムカウンタがアドレス一致検出レジスタと同じアドレスを指示している場 合は , INT9 命令を実行します。INT9 命令ルーチンを処理することによってアドレス 一致検出機能を実現することができます。 ■ アドレス一致検出機能の動作 アドレス検出レジスタは2本用意されており, 各レジスタごとにコンペア許可ビットが あります。アドレス検出レジスタに設定された値とプログラムカウンタの値が一致し て , かつコンペア許可ビットが "1" の場合 , CPU は INT9 命令を実行します。 < 注意事項 > アドレス検出レジスタとプログラムカウンタの値が一致した場合は , 内部データバ スの内容が強制的に "01H" に変更されるので , INT9 命令を実行することになります。 アドレス検出レジスタの内容を変更する前には , コンペア許可ビットを必ず "0" にし てください。コンペア許可ビットが "1" になっている間に変更すると , 誤動作を引き 起こす可能性があります。 339 第 21 章 アドレス一致検出機能 21.4 アドレス一致検出機能の使用例 図 21.4-1 に , アドレス一致検出機能のシステム構成例を , 表 21.4-1 に , E2PROM メモリマップを示します。 ■ アドレス一致検出機能のシステム構成例 図 21.4-1 アドレス一致検出機能のシステム構成例 E2PROM MCU F2MC-16LX pull up 抵抗 SIN ○ コネクタ(UART) ■ E2PROM メモリマップ 表 21.4-1 E2PROM メモリマップ アドレス 意 味 0000H パッチプログラム No.0 バイト数 (0 のときプログラムミスなし ) 0001H プログラムアドレス No.0 bit7 ∼ bit0 0002H プログラムアドレス No.0 bit15 ∼ bit8 0003H プログラムアドレス No.0 bit24 ∼ bit16 0004H パッチプログラム No.1 バイト数 (0 のときプログラムミスなし ) 0005H プログラムアドレス No.1 bit7 ∼ bit0 0006H プログラムアドレス No.1 bit15 ∼ bit8 0007H プログラムアドレス No.1 bit24 ∼ bit16 0010H ∼ パッチプログラム No.0/1 本体 ● 初期状態 E2PROM はすべて "0" とします。 ● パッチが必要となる場合 コネクタ (UART) を通して , MCU にパッチプログラムの本体およびプログラムアドレ スを転送します。MCU はその情報を E2PROM に書き込みます。 340 第 21 章 アドレス一致検出機能 ● リセットシーケンス MCU はリセット後 E2PROM の値を読み出します。パッチプログラムのバイト数が "0" でなかった場合は , パッチプログラムの本体が E2PROM から読み出され RAM に書き 込まれます。次に , MCU により PADR0, または PADR1 どちらか一方でパッチアドレ スをセットし , コンペア許可ビットをセットします。再配置可能はパッチプログラムが 望まれる場合は , RAM 領域に対してパッチ済みプログラムの最初のアドレスを書き込 むことができます。この場合 , INT9 ルーチンがこのユーザ定義の RAM 領域を参照し , パッチ済みプログラムへ向けてジャンプします。 ● INT9 命令 割込みルーチンでは , スタックプログラムのカウンタの値を調べることにより , 割込み が発生するアドレスを知ることができます。割込みの最中にスタックへ押し込まれた 情報は破棄されます。 ■ プログラムパッチ処理例 図 21.4-2 プログラムパッチ処理例 FFFFFFH ③ 異常プログラム ROM ① P C ∥ 発 生 ア ド レ ス 外付E2PROM プログラムパッチ用 レジスタセット ○ ○ ○ プログラムバイト数 割込み発生アドレス 修正プログラム UARTを使用してデータ転送 RAM 修正プログラム ② 000000H 341 第 21 章 アドレス一致検出機能 ■ プログラムパッチ処理フロー図 図 21.4-3 プログラムパッチ処理フロー図 リセット E2PROMの0000Hを読み込む YES INT9 0000H (E2PROM) =0 NO パッチプログラムへ JMP 000400H アドレスを読み込む 0001H ~0003H (E2PROM) ↓MOV PADR0(MCU) パッチプログラム実行 000400H ~000480H パッチプログラムを読み込む 0010H ~0090H(E2PROM) ↓MOV 000400H ~000480H(MCU) パッチプログラム終了 JMP FF0050H コンペア許可 MOV PACSR,#02H 通常プログラム実行 NO PC=PADR0 YES INT9 FFFFFFH ROM FFFFH 0090H FF0050H FE0000H パッチプログラム 0010H 001100H プログラムアドレス 下位:00 0003H 0002H 0001H 0000H 342 異常プログラム FF0000H E2PROM プログラムアドレス 中位:00 プログラムアドレス 上位:FF パッチプログラムバイト 数:80 スタック領域 RAM領域 RAM 000480H パッチプログラム 000400H 000100H 000000H RAM/レジスタ領域 I/O 領域 第 22 章 ROM ミラー機能選択 モジュール ROM ミラー機能選択モジュールについて説明しま す。 22.1 ROM ミラー機能選択モジュールの概要 22.2 ROM ミラー機能選択レジスタ (ROMM) 343 第 22 章 ROM ミラー機能選択 モジュール 22.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールは , ROM が配置されている FF バンクが 00 バンク でみることをレジスタの設定で選択することができます。 ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 22.1-1 ROM ミラー機能選択モジュールのブロック F2MC-16LXバス ROMミラー機能選択レジスタ アドレス領域 FFバンク 00バンク ROM 344 第 22 章 ROM ミラー機能選択 モジュール 22.2 ROM ミラー機能選択レジスタ (ROMM) ROM ミラー機能選択レジスタ (ROMM) は , アドレス 004000H ∼ 00FFFFH 番地の 使用中にアクセスしないでください。 ■ ROM ミラー機能選択レジスタ (ROMM) ROMミラー機能選択レジスタ bit 15 14 13 12 11 10 9 アドレス:00006FH リード/ライト 初期値 8 MI (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) ROMM (W) (1) W :ライトオンリ - :未定義 [bit8]MI "1" を書込み時には FF バンクの ROM のデータが 00 バンクでも読みだせるようになり ます。"0" を書込み時には 00 バンクはこの機能ははたらきません。 本ビットは , 書込みのみ可能です。 < 注意事項 > ROM ミラー機能を起動している場合 , FF4000H ∼ FFFFFFH 番地のみ 004000H ∼ 00FFFFH 番地にミラーされます。このため , FF0000H ∼ FF3FFFH 番地は 00 バンク にミラーされません。 345 第 22 章 ROM ミラー機能選択 モジュール 346 第 23 章 1M ビットフラッシュメモリ 1M ビットフラッシュメモリの機能と動作について 説明します。 フラッシュメモリへのデータ書込み / 消去の方法に は , 下記の 3 とおりの方法があります。 1. パラレルライタ 2. シリアル専用ライタ 3. プログラム実行による書込み / 消去 ここでは , "3. プログラム実行による書込み / 消去 " について解説します。 23.1 1M ビットフラッシュメモリの概要 23.2 フラッシュメモリ全体のブロックダイヤグラムと セクタ構成 23.3 書込み / 消去モード 23.4 フラッシュメモリコントロールステータスレジスタ (FMCS) 23.5 フラッシュメモリ自動アルゴリズム起動方法 23.6 自動アルゴリズム実行状態の確認 23.7 フラッシュメモリ書込み / 消去の詳細説明 23.8 フラッシュメモリ使用上の注意 23.9 フラッシュメモリにおけるリセットベクタアドレス 23.10 フラッシュセキュリティの特長 23.11 1M ビットフラッシュメモリのプログラム例 347 第 23 章 1M ビットフラッシュメモリ 23.1 1M ビットフラッシュメモリの概要 1M ビットフラッシュメモリは , CPU メモリマップ上の FE ∼ FF バンクに配置され , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU か らのリードアクセスおよびプログラムアクセスが可能です。フラッシュメモリへの 書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令動 作で行えます。このため , 内蔵 CPU の制御による実装状態での書換えが可能となり , プログラムおよびデータの改善が効率よく行えます。 ■ 1M ビットフラッシュメモリの特長 • 128K ワード× 8/64K ワード× 16 ビット (MB90F598:16K+512 × 2+7K+8K+32K+64K, MB90F598G:16K+8K × 2+32K+64K) セクタ構成 • 自動プログラムアルゴリズム(Embedded AlgorithmTM: MB90F598-MBM29F400T, MB90F598G-MBM29LV200 と同様) • 消去一時停止 / 消去再開機能の搭載 • データポーリング , トグルビットによる書込み / 消去完了検出 • CPU 割込みによる書込み / 消去の完了検出 • セクタごとの消去が可能 ( セクタ組合せ自由 ) • 書込み / 消去回数 ( 最小 ) 10, 000 回 • フラッシュセキュリティ機能 • フラッシュ読出しサイクルタイム ( 最小 ) 2 マシンサイクル Embedded AlgorithmTM は , Advanced Micro Devices 社の商標です。 < 注意事項 > マニュファクチャコードとデバイスコードの読出し機能はありません。また , これら のコードは , コマンドによってもアクセスできません。 ■ フラッシュメモリ書込み / 消去の方法 フラッシュメモリは書込み / 消去と読出しを同時に行う事はできません。つまり , フ ラッシュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上にあるプ ログラムを RAM にいったんコピーし RAM 実行することで , フラッシュメモリからプ ログラムアクセスをせず書込み動作だけを行うことが可能となります。 ■ フラッシュメモリのレジスタ ● フラッシュメモリコントロールステータスレジスタ (FMCS) 7 bit 5 4 3 2 1 0 アドレス:0000AEH INTE RDYINT WE RDY 予約 LPM1 予約 LPM0 リード/ライト (R/W) (R/W) (R/W) (R) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (X) (0) (0) (0) (0) 初期値 R/W:リード/ライト可能 R :リードオンリ X :不定値 348 6 FMCS 第 23 章 1M ビットフラッシュメモリ 23.2 フラッシュメモリ全体のブロックダイヤグラムとセク タ構成 図 23.2-1 に , フラッシュメモリインタフェース回路付のフラッシュメモリの全体ブ ロックダイヤグラムを , 図 23.2-2 に , フラッシュメモリのセクタ構成を示します。 ■ フラッシュメモリ全体のブロックダイヤグラム 図 23.2-1 フラッシュメモリ全体のブロックダイヤグラム フラッシュメモリ インタフェース回路 BYTE ポート2 ポート3 ポート4 F 2 MC-16LX バス 1Mbitフラッシュメモリ BYTE CE CE OE OE WE WE AQ0~AQ16 AQ0~AQ15 AQ-1 DQ0~DQ15 DQ0~DQ15 INT RY/BY RY/BY RESET ライトイネーブル割込み信号 (対CPU) 外部リセット信号 RY/ BY ライトイネーブル信号 ■ 1M ビットフラッシュメモリのセクタ構成 図 23.2-2 に , 1M ビットフラッシュメモリのセクタ構成を示します。図中アドレスには , 各セクタの上位アドレスと下位アドレスを示します。 CPU からアクセスする場合 FE バンクレジスタに SA0, FF バンクレジスタに SA1 ∼ SA4 が配置されています。 349 第 23 章 1M ビットフラッシュメモリ 図 23.2-2 1M ビットフラッシュメモリのセクタ構成 MB90F598 SA6 (16K bytes) SA5 (512bytes) CPUアドレス FFFFFF H 7FFFFH FFC000 H FFBFFF H 7C000H 7BFFFH FFBE00 H FFBDFF H 7BE00H 7BDFF H FFBC00H 7BC00 H FFBBFFH 7BBFFH FFA000H FF9FFFH 7A000H 79FFF H FF8000 H 78000H FF7FFFH 77FFFH FF0000H FEFFFFH 70000H 6FFFF H FE0000 H 60000H SA4 (512bytes) SA3 (7K bytes) * ライタアドレス SA0 (64K bytes) SA4 (16K bytes) CPUアドレス * ライタアドレス FFFFFF H 7FFFFH FFC000 H FFBFFF H 7C000H 7BFFFH FFA000H FF9FFFH 7A000H 79FFF H FF8000 H 78000H FF7FFFH 77FFFH FF0000H FEFFFFH 70000H 6FFFF H FE0000 H 60000H SA3 (8K bytes) SA2 (8K bytes) SA1 (32K bytes) MB90F598G SA2 (8K bytes) SA1 (32K bytes) SA0 (64K bytes) *: ライタアドレスとは , フラッシュメモリにパラレルライタでデータ書込みを行う際 , CPU アドレスに 対して相当するアドレスです。汎用ライタを使用し書込み / 消去を行う際は , このアドレスで書込み / 消去を実行します。 350 第 23 章 1M ビットフラッシュメモリ 23.3 書込み / 消去モード フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの 異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み / 消去が行え , その他モードでは , 内部バスを介して CPU から書込み / 消去が行えま す。モードの選択はモード外部端子で行います。 ■ フラッシュメモリモード リセット信号が発生中にモード端子を "111B" にセットすると , CPU が停止します。フ ラッシュメモリインタフェース回路は直接ポート0, 2, 3, 4に接続しているので, 外部端 子から直接制御することができます。このモードでは , MCU が外部端子中の標準フ ラッシュメモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去が行えます。 フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる すべての動作を使用できます。 ■ その他モード フラッシュメモリは , CPU メモリ空間の FE ∼ FF バンクに配置されており , 通常のマ スク ROM と同様にフラッシュメモリインタフェース回路を介して CPU から読出しア クセスおよびプログラムアクセスすることができます。 フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん だ付けされていても再書込みが可能です。 これらのモードでは , セクタプロテクト動作を実行することはできません。 ■ フラッシュメモリの制御信号 表 23.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。 フラッシュメモリ制御信号と MBM29F400T/MBM29LV200 の外部端子にはほぼ 1 対 1 の対応関係が存在します。セクタプロテクト動作で必要となる VID (12V) 端子は , MBM29F400T/MBM29LV200 における A9, RESET, OE の代わりに , MD0, MD1, MD2 と なります。 フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ トのアクセスしか許可されません。DQ15 ∼ DQ8 はサポートされていません。BYTE 端子は常に "0" にセットしてください。 351 第 23 章 1M ビットフラッシュメモリ 表 23.3-1 フラッシュ制御信号 MB90F598/MB90F598G MBM29F400T/MBM29LV200 端子番号 通常機能 フラッシュメモリモード 1∼8 P20 ∼ P27 AQ0 ∼ AQ7 A-1, A0 ∼ A6 9 P30 AQ16 A15 10 P31 CE CE 12 P32 OE OE 13 P33 WE WE 16 P36 BYTE BYTE 17 P37 RY/BY RY/BY 18 ∼ 22 P40 ∼ P44 AQ8 ∼ AQ12 A7 ∼ A11 24 ∼ 26 P45 ∼ P47 AQ13 ∼ AQ15 A12 ∼ A14 49 MD0 MD0 A9(VID) 50 MD1 MD1 RESET (VID) 51 MD2 MD2 OE (VID) 85 ∼ 92 P00 ∼ P07 DQ0 ∼ DQ7 DQ0 ∼ DQ7 77 RST RESET RESET 使用不可 352 DQ8 ∼ DQ15 第 23 章 1M ビットフラッシュメモリ フラッシュメモリコントロールステータスレジスタ (FMCS) 23.4 コントロールステータスレジスタ (FMCS) は , フラッシュメモリインタフェース回 路にあるレジスタで , フラッシュメモリの書込み / 消去の際に使用します。 ■ コントロールステータスレジスタ (FMCS) 7 bit 6 5 4 3 2 1 0 アドレス:0000AEH INTE RDYINT WE RDY 予約 LPM1 予約 LPM0 リード/ライト (R/W) (R/W) (R/W) (R) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (X) (0) (0) (0) (0) 初期値 FMCS R/W:リード/ライト可能 R :リードオンリ X :不定値 ● ビット内容 [bit7]INTE(INTerrupt Enable) フラッシュメモリの書込み / 消去の終了で CPU に割込みを発生させるビットです。 INTE ビットが "1" でかつ RDYINT ビットが "1" のときに CPU へ割込みが発生します。 INTE ビットが "0" であれば割込みは発生しません。 0: 書込み / 消去終了での割込み禁止 1: 書込み / 消去終了での割込み許可 [bit6]RDYINT(ReaDY INTerrupt) フラッシュメモリの動作状態を表すビットです。 フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書込み / 消去後このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。書 込み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み / 消去が可能に なります。"0" 書込みによって "0" にクリアされ , "1" の書込みは無視されます。フラッ シュメモリ自動アルゴリズム ( 「23.5 フラッシュメモリ自動アルゴリズム起動方法」 参照 ) 終了タイミングで , "1" にセットされます。リードモディファイライト (RMW) 命 令使用時は , 必ず "1" が読み出せます。 0: 書込み / 消去動作実行中 1: 書込み / 消去動作終了 ( 割込み要求発生 ) 353 第 23 章 1M ビットフラッシュメモリ [bit5]WE(Write Enable) フラッシュメモリ領域へのライトイネーブルビットです。 このビットが "1" のとき , FE ∼ FF バンクへのコマンドシーケンス(「23.5 フラッシュ メモリ自動アルゴリズム起動方法」参照)発行後のライトは , フラッシュメモリ領域へ のライトになります。本ビットが "0" のとき , 書込み / 消去の信号は発生されません。 このビットはフラッシュメモリの書込み / 消去のコマンドを起動する際に使用します。 書込み/消去を行わないときは, 誤ってフラッシュメモリにデータを書き込まないよう, 常に "0" に設定する事を推奨します。 0: フラッシュメモリ書込み / 消去禁止 1: フラッシュメモリ書込み / 消去許可 [bit4]RDY(ReadDY) フラッシュメモリの書込み / 消去許可ビットです。 このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。なお , こ の状態でも読出し / リセットコマンド , セクタ消去一時停止などのサスペンドコマンド は受け付けられます。 0: 書込み / 消去動作実行中 1: 書込み / 消去動作終了 ( 次データ書込み / 消去許可 ) [bit3, bit1] 予約ビット 試験用予約ビットです。通常使用時は必ず "0" に設定してください。 [bit2, bit0]LPM1, LPM0(Low Power Mode) フラッシュメモリアクセス時のフラッシュメモリ本体の消費電流を制御します。ただ し , CPU からフラッシュメモリへのアクセスタイムが設定により大きく異なりますの で , CPU の動作周波数により設定値を選択してください。 01: 低電力消費モード ( 内部動作周波数 4MHz 以下で動作 ) 10: 低電力消費モード ( 内部動作周波数 8MHz 以下で動作 ) 11: 低電力消費モード ( 内部動作周波数 10MHz 以下で動作 ) 00: 通常消費電力モード ( 内部動作周波数 16MHz 以下で動作 ) < 注意事項 > RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで判 定するようプログラムを作成してください。 自動アルゴリズム 終了タイミング RDYINTビット RDYビット 1マシンサイクル 354 第 23 章 1M ビットフラッシュメモリ フラッシュメモリ自動アルゴリズム起動方法 23.5 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書 込み , チップ消去の 4 種類があり , セクタ消去については一時停止と再開の制御が可 能です。 ■ コマンドシーケンス表 表 23.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま す。コマンドレジスタにライトするデータはすべてバイトですが , ワードアクセスでラ イトするようにしてください。このときの上位バイト分のデータは無視されます。 表 23.5-1 コマンドシーケンス表 コマンド バスラ 1stバスライトサイクル 2nd バスライトサイクル 3th バスライトサイクル 4th バスライトサイクル 5th バスライトサイクル 6thバスライトサイクル シーケン イトア データ アドレス データ アドレス データ ス クセス アドレス データ アドレス データ アドレス データ アドレス 読出し / リセット 1 FxXXXX XXF0 - - - - - - - - - - 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXF0 RA RD - - - - 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXA0 PA(even) PD(word) - - - - 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 FxAAAA XX10 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 SA(even) XX30 - - *1 読出し / リセット *1 書込みプ ログラム チップ 消去 セクタ 消去 セクタ消去一時停止 セクタ消去再開 Auto Select*2 3 Address"FxXXXX"Data(xxB0H) の入力で , セクタ消去中の消去一時停止 Address"FxXXXX"Data(xx30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始 FxAAAA XXAA Fx5554 XX55 FxAAAA XX90 FxAAAA - - - ( 注意事項 ) • 表中のアドレス Fx は , FF, FE を意味します。それぞれの操作時にはアクセス対象バンクの値としてくださ い。 • 表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。 ただし "X" は任意の値です。 • RA: 読出しアドレス • PA: 書込みアドレス(偶数アドレスのみ指定可) • SA: セクタアドレス ( 「第 23 章 1M ビットフラッシュメモリ」の 「23.2 フラッシュメモリ全体のブロック ダイヤグラムとセクタ構成」を参照願います。) • RD: 読出しデータ • PD: 書込みデータ , ワードデータのみ指定可 *1:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットすることができ ます。 *2:MB90F598G のみ 355 第 23 章 1M ビットフラッシュメモリ 表 23.5-1 における AutoSelect は , セクタ保護の状態を知るためのコマンドです。実際 には , 前記コマンドと共に下記のようにアドレスを設定する必要があります。 表 23.5-2 AutoSelect 時のアドレス設定(MB90F598G のみ) セクタ保護 AQ13 ∼ AQ16 AQ7 AQ2 AQ1 AQ0 DQ7 ∼ DQ0 セクタアドレス L H L L CODE * *: 保護されたのセクタアドレスでの出力は "01H", 保護されていないセクタアドレスでの出力は "00H" 356 第 23 章 1M ビットフラッシュメモリ 23.6 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了した事を知らせるハードウェアを持ちま す。この自動アルゴリズムは , 下記のハードウェアシーケンスによって内蔵フラッ シュメモリの動作状態の確認ができます。 ■ ハードウェア・シーケンス・フラグ ハードウェア・シーケンス・フラグは , DQ7, DQ6, DQ5, DQ3, DQ2 の 5 ビットの出力で 構成されます。それぞれがデータポーリングフラグ (DQ7), トグルビットフラグ (DQ6), タイミングリミット超過フラグ (DQ5), セクタ消去タイマフラグ (DQ3), トグルビット 2 フラグ (DQ2) の機能を持ちます。これにより , 書込み / チップ・セクタ消去終了 , 消去 コードライトが有効かの確認をすることができます。なお , トグルビット 2 フラグ (DQ2) は MB90F598 では使用できません。 ハードウェア・シーケンス・フラグを参照するには , コマンドシーケンス( 「23.5 フ ラッシュメモリ自動アルゴリズム起動方法」の表 23.5-1 を参照)設定後にフラッシュ メモリ内部の対象セクタのアドレスにリードアクセスすることで参照できます。表 23.6-1 に , ハードウェア・シーケンス・フラグのビット割当てを示します。 表 23.6-1 ハードウェア・シーケンス・フラグのビット割当て ビット No. 7 6 5 4 3 2 1 0 ハードウェアシーケンスフラグ DQ7 DQ6 DQ5 - DQ3 DQ2 - - *:MB90F598G のみ 自動書込み / チップ・セクタ消去が実行中であるかの判断は , ハードウェア・シーケン ス・フラグを確認するか , フラッシュメモリコントロールレジスタ (FMCS) の RDY ビッ トを確認することで , 書込みが終了しているかを知る事ができ , 書込み / 消去終了後は , 読出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれかのフ ラグで自動書込み / 消去終了を確認後に , データの読出しなどの次処理を行って下さ い。また , 2 回目以降のセクタ消去コードライトが有効であるかも , ハードウェア・シー ケンス・フラグによって確認することができます。事項に各ハードウェア・シーケン ス・フラグの説明を示します。表 23.6-2 に , ハードウェア・シーケンス・フラグ機能の 一覧を示します。 357 第 23 章 1M ビットフラッシュメモリ 表 23.6-2 ハードウェア・シーケンス・フラグ機能一覧 状態 書込み動作→書込み完了 (書込みアドレス指定時) チップ・セクタ消去動作→消去完了 セクタ消去ウェイト→消去開始 正常動作時 の状態変化 消去動作→セクタ消去一時停止 (消去中のセクタ) セクタ消去一時停止→消去再開 (消去中のセクタ) セクタ消去一時停止中 (消去中でないセクタ) 書込み動作 DQ7 DQ6 DQ5 DQ3 DQ2 *2 DQ7 → DATA:7 Toggle → DATA:6 0→ DATA:5 0→ DATA:3 1→ DATA:2 0→1 Toggle → Stop 0→1 1 Toggle → Stop 0 Toggle 0 0→1 Toggle 0→1 Toggle → 1 0 1→0 Toggle 1→0 1 → Toggle 0 0→1 Toggle DATA:7 DATA:6 DATA:5 DATA:3 DATA:2 DQ7 Toggle 1 0 1 0 Toggle 1 1 *1 異常動作 チップ・セクタ消去動作 *1:DQ5 が "1" のとき(タイミングリミット超過), 書込み / 消去中セクタへの連続的な読出しに対し ては , DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。 *2:MB90F598G のみ 358 第 23 章 1M ビットフラッシュメモリ データポーリングフラグ (DQ7) 23.6.1 データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状 態であることをデータポーリング機能によって知らせるためのフラグです。 ■ データポーリングフラグ (DQ7) 表 23.6-3 と表 23.6-4 に , データポーリングフラグの状態遷移を示します。 表 23.6-3 データポーリングフラグの状態遷移(正常動作時の状態変化) 動作状態 書込み動作 →完了 DQ7 DQ7 → DATA:7 チップセクタ消去 セクタ消去ウエイト →完了 →開始 0→1 0 セクタ消去 →消去一時停止 消去中のセクタ セクタ消去一時停止 セクタ消去 →再開 一時停止中 消去中のセクタ 消去中でないセクタ 0→1 1→0 DATA:7 表 23.6-4 データポーリングフラグの状態遷移(異常動作時の状態変化) 動作状態 書込み動作 チップ・セク タ消去動作 DQ7 DQ7 0 ● 書込み動作時 自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはアドレ スの指し示す番地によらず , 最後に書き込まれたデータの bit7 の反転データを出力し ます。自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはア ドレスの指し示す番地の読出し値の bit7 を出力します。 ● チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク タから , チップ消去時はアドレスの指し示す番地に関係なく , リードアクセスするとフ ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス の指し示す番地の読出し値の bit7(DATA:7) を出力します。トグルビットフラグ (DQ6) とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であ るかの判定が可能です。 < 注意事項 > 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。 データの読出しは , データポーリングフラグ (DQ7) の終了を受けてほかのビットの 出力が可能となります。このため自動アルゴリズム終了後のデータの読出しは , デー タポーリング終了を確認したリードアクセスの次に行うようにしてください。 359 第 23 章 1M ビットフラッシュメモリ 23.6.2 トグルビットフラグ (DQ6) トグルビットフラグはデータポーリングフラグ (DQ6) と同様に , 主に自動アルゴリ ズム実行が進行中 , もしくは終了状態であることをトグルビット機能によって知ら せる為のフラグです。 ■ トグルビットフラグ (DQ6) 表 23.6-5 と表 23.6-6 に , トグルビットフラグの状態遷移を示します。 表 23.6-5 トグルビットフラグの状態遷移(正常動作時の状態変化) 動作状態 書込み動作→完了 チップセクタ消去→ 完了 セクタ消去ウエイト →開始 セクタ消去 →消去一時停止 消去中のセクタ セクタ消去一時停止 →再開 消去中のセクタ セクタ消去 一時停止中 消去中でないセクタ DQ6 Toggle → DATA:6 Toggle → Stop Toggle Toggle → 1 1 → Toggle DATA:6 表 23.6-6 トグルビットフラグの状態遷移(異常動作時の状態変化) 動作状態 書込み動作 チップ・セクタ消去 動作 DQ6 Toggle Toggle ● 書込み / チップ・セクタ消去時 自動書込みアルゴリズムおよびチップ・セクタ消去アルゴリズム実行中に , 連続した リードアクセスを行うと , フラッシュメモリはアドレスの指し示す番地によらず , リー ドごとに "1" と "0" を交互に出力するトグル状態を出力します。自動書込みアルゴリズ ムおよびチップ / セクタ消去アルゴリズム終了時に連続したリードアクセスを行うと フラッシュメモリは bit6 のトグル動作を止め , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタに属するならば , "1" を出力します。消去中のセクタに属さ ないのであれば , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 < 参考 > 360 書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約 2 m s のトグル動作をした後 , データを書き換えることなくトグル動作を終わりま す。 消去の際 , 選択されたすべてのセクタが書換え保護されている場合トグルビットは 約 100 m s のトグル動作をし , その後データを書き換えないで読出し / リセット状態 に戻ります。 第 23 章 1M ビットフラッシュメモリ 23.6.3 タイミングリミット超過フラグ (DQ5) タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ グです。 ■ タイミングリミット超過フラグ (DQ5) 表 23.6-7 と表 23.6-8 に , タイミングリミット超過フラグの状態遷移を示します。 表 23.6-7 タイミングリミット超過フラグの状態遷移(正常動作時の状態変化) 動作状態 書込み動作→完了 チップセクタ消去 →完了 セクタ消去ウエイト →開始 セクタ消去 →消去一時停止 消去中のセクタ セクタ消去一時停止 →再開 消去中のセクタ セクタ消去 一時停止中 消去中でないセクタ DQ5 0 → DATA:5 0→1 0 0 0 DATA:5 表 23.6-8 タイミングリミット超過フラグの状態遷移(異常動作時の状態変化) 動作状態 書込み動作 チップ・セクタ 消去動作 DQ5 1 1 ● 書込み / チップ・セクタ消去時 書込みまたは , チップ・セクタ消去自動アルゴリズム起動後にリードアクセスすると , 規定時間(書込み / 消去に要する時間)内であれば "0" を , 規定時間を超えてしまって いる場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるか 無関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能に より自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断すること ができます。 例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする とフェイルが発生します。この場合フラッシュメモリはロックされ , 自動アルゴリズム は終了しません。したがって , データポーリングフラグ (DQ7) から有効なデータが出 力されません。またトグルビットフラグ (DQ6) はトグル動作を止めず , タイムリミッ トを超え , タイミングリミット超過フラグ (DQ5) は "1" を出力します。この状態はフ ラッシュメモリが不良ではなく , 正しく使用されなかったという事を表しています。こ の状態が発生したときは , リセットコマンドを実行してください。 361 第 23 章 1M ビットフラッシュメモリ 23.6.4 セクタ消去タイマフラグ (DQ3) セクタ消去タイマフラグは , セクタ消去コマンド起動後セクタ消去ウェイト期間中 であるか否かを知らせるフラグです。 ■ セクタ消去タイマフラグ (DQ3) 表 23.6-9 と表 23.6-10 に , セクタ消去タイマフラグの状態遷移を示します。 表 23.6-9 セクタ消去タイマフラグの状態遷移(正常動作時の状態変化) 動作状態 書込み動作 →完了 チップセクタ消去 →完了 セクタ消去ウエイト →開始 セクタ消去 →消去一時停止 消去中のセクタ セクタ消去一時停止 →再開 消去中のセクタ セクタ消去 一時停止中 消去中でないセクタ DQ3 0 → DATA:3 1 0→1 1→0 0→1 DATA:3 表 23.6-10 セクタ消去タイマフラグの状態遷移(異常動作時の状態変化) 動作状態 書込み動作 チップ・セクタ消 去動作 DQ3 0 1 ● セクタ消去動作時 セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマンドを 発行したセクタのアドレス信号の指し示す番地によらず , セクタ消去ウェイト期間中 であれば "0" を , セクタ消去ウェイト期間を越えてしまっている場合は "1" を出力しま す。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて のセクタ消去コードのライト , または消去一時停止以外のコマンドは , 消去が終了され るまで無視されます。 このフラグが "0" であればフラッシュメモリは , 追加のセクタ消去コードのライトを受 け付けます。この事を確認するために , 引き続くセクタ消去コードのライトに先立ちこ のフラグの状態をチェックすることを推奨します。もし 2 回目の状態チェックで "1" で あったなら追加セクタの消去コードは受け付けられてない可能性があります。 ● セクタ消去動作時 セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さ ないのであれば , アドレスの指し示す番地の読出し値の bit3(DATA:3) を出力します。 362 第 23 章 1M ビットフラッシュメモリ トグルビット 2 フラグ (DQ2) 23.6.5 トグルビット 2 フラグ (DQ2) は , セクタ消去一時停止中であることをトグルビット 機能によって知らせるフラグです。 なお , トグルビット 2 フラグ (DQ2) は MB90F598 では使用できません。 ■ トグルビット 2 フラグ (DQ2) 表 23.6-11 と表 23.6-12 に , トグルビット 2 フラグの状態遷移を示します。 表 23.6-11 トグルビット 2 フラグの状態遷移(正常動作時の状態変化) 動作状態 DQ2 書込み動作 →完了 チップセクタ消去 →完了 セクタ消去ウエイト →開始 セクタ消去 →消去一時停止 消去中のセクタ セクタ消去一時停止 →再開 消去中のセクタ セクタ消去 一時停止中 消去中でないセクタ 1 → DATA:2 Toggle → Stop Toggle Toggle Toggle DATA:2 表 23.6-12 トグルビット 2 フラグの状態遷移(異常動作時の状態変化) 動作状態 DQ2 書込み動作 チップ・セクタ消 去動作 1 ※ ※ :DQ5 が "1" のとき(タイミングリミット超過), 書込み / 消去中セクタへの連続的な 読出しに対しては , DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグル しません。 ● セクタ消去動作時 チップセクタ消去アルゴリズム実行中に連続したリードアクセスを行うと , フラッ シュメモリはアドレスの指す番地によらず , リードごとに "1" と "0" を交互に出力する トグル状態を出力します。 チップセクタ消去アルゴリズム終了後に連続したリードアクセスを行うと , フラッ シュメモリは bit2 のトグル出力を止め , アドレスの指し示す番地の読出し値の bit2(DATA:2) を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止中に連続したリードアクセスを行うと , フラッシュメモリはアド レスの指し示す番地が , 消去中のセクタに属するならば "1" と "0" を交互に出力するト グル状態を出力します。消去中のセクタに属さないのであれば , アドレスの指し示す番 地の読出し値の bit2(DATA:2) を出力します。 また , セクタ消去一時停止書込み時 , 消去一時停止していないセクタから連続したリー ドアクセスを行うと , "1" 出力します。 DQ2 は DQ6 と共に使用し , 消去一時停止中であるかを検出するのに使用します。 (DQ2 はトグル動作するが , DQ6 はトグル動作しない。) さらに , DQ2 は消去しているセクタの検出にも使用します。消去動作時には , DQ2 は 消去しているセクタからのリードアクセスならばトグル動作をします。 363 第 23 章 1M ビットフラッシュメモリ < 参考 > 364 消去の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビット 2 は約 100 m s のトグル動作をし , その後 , データを書き換えないで読出し / リセット 状態に戻ります。 第 23 章 1M ビットフラッシュメモリ 23.7 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ ぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細説明 フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , 消去再開の動作がコマンドシーケンス ( 「23.5 フラッシュメモリ自動アル ゴリズム起動方法」の 表 23.5-1 を参照 ) のバスへのライトサイクルを行うことで自動 アルゴリズムを実行することが可能です。それぞれのバスへのライトサイクルは必ず 続けて行う必要があります。また , 自動アルゴリズムはデータ・ポーリング機能などで 終了時を知ることができます。正常終了後は読出し / リセット状態に戻ります。 各動作について , 次項より下記の順に示します。 • 読出し / リセット状態にする • データを書き込む • 全データを消去する(チップ全消去) • 任意のデータを消去する(セクタ消去) • セクタ消去を一時停止する • セクタ消去を再開する 365 第 23 章 1M ビットフラッシュメモリ 23.7.1 フラッシュメモリを読出し / リセット状態にする 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリを読出し / リセット状態にする フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 ( 「23.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 23.5-1 を参照 ) の読出し / リセッ トコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません , 何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。 366 第 23 章 1M ビットフラッシュメモリ 23.7.2 フラッシュメモリへのデータの書込み 書込みコマンドを発行し , フラッシュメモリへデータを書き込む手順について説明 します。 ■ フラッシュメモリへのデータの書込み フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表( 「23.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 23.5-1 を参照)の 書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能で す。4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動アルゴリ ズムが起動され自動書込みが開始します。 ● アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込む事ができません。つまり , 偶数アドレス へのワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが , 1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。 ● データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻す事はできません。データ "0" にデータ "1" を書き込むと , データポーリングアルゴリズム (DQ7) または , トグル動作 (DQ6) が 終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミング リミット超過フラグ (DQ5) がエラーと判定するか , あるいは見かけ上データ "1" が書き 込まれたように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデー タを読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすること ができます。 自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意 が必要です。 367 第 23 章 1M ビットフラッシュメモリ ■ フラッシュメモリ書込み手順 図 23.7-1 に , フラッシュメモリ書込みの手順の例を示します。ハードウェア・シーケ ンス・フラグ( 「23.6 自動アルゴリズム実行状態の確認」を参照)を用いる事でフ ラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了 の確認にデータポーリングフラグ (DQ7) を用いています。 フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読込 みとなります。 データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変 わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ ングフラグビット (DQ7) は再チェックする必要があります。 トグルビットフラグ (DQ6) でも同様にタイミングリミット超過フラグビット (DQ5) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再 チェックする必要があります。 368 第 23 章 1M ビットフラッシュメモリ 図 23.7-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS:WE (bit5) フラッシュメモリ書込み許可 書込みコマンドシーケンス (1) FxAAAA←XXAA (2) Fx5554←XX55 (3) FxAAAA←XXA0 (4) 書込みアドレス←書込みデータ 内部アドレスリード データポーリング (DQ7) 次アドレス Data Data 0 タイミングリミット (DQ5) 1 内部アドレスリード Data データポーリング (DQ7) Data 書込みエラー 最終アドレス NO YES FMCS:WE (bit5) フラッシュメモリ書込み禁止 書込み完了 ハードウェア・シーケンス・ フラグによる確認 369 第 23 章 1M ビットフラッシュメモリ 23.7.3 フラッシュメモリの全データの消去 ( チップ消去) チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい て説明します。 ■ フラッシュメモリのデータの消去 ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表(「23.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 23.5-1 を参照)のチップ消去コマ ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます , 6 サイクル目のライトが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的に全てのセルを消去する前に "0" を書き込んで検証します。 370 第 23 章 1M ビットフラッシュメモリ 23.7.4 フラッシュメモリの任意のデータの消去 ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ 消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同 時に指定することも可能です。 ■ フラッシュメモリの任意のデータの消去 ( セクタ消去 ) フラッシュメモリの任意のセクタを消去する為には , コマンドシーケンス表( 「23.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 23.5-1 を参照)のセクタ消去コマ ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 ● セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) をライトすること により 50 µ s のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上 記の処理に引き続き消去する目的のセクタ内のアドレスに消去コード(30H)をライトし ます。 ● 複数のセクタを指定するときの注意 最後のセクタ消去コードのライトから 50 µ s のセクタ消去ウェイト期間終了により消 去が開始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのア ドレスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µ s 以内に入力 する必要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去 コードのライトが有効かどうかはセクタ消去タイマ(ハードウェア・シーケンス・フ ラグ DQ3)によって調べることができます。なおこのとき , セクタ消去タイマをリー ドするアドレスは , 消去しようとしているセクタを指すようにします。 371 第 23 章 1M ビットフラッシュメモリ ■ フラッシュメモリのセクタ消去手順 ハードウェア・シーケンス・フラグ( 「23.6 自動アルゴリズム実行状態の確認」を参 照)を用いる事でフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図 23.7-2 にフラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の確 認にトグルビットフラグ (DQ6) を用いています。 フラグチェックの為に読み出すデータは , 消去しようとしているセクタからの読出し となりますので , 注意が必要です。 トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもトグルビットフラグ (DQ6) は再チェックする必要があります。 データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と 同時に変わるので , データポーリングフラグを再チェックする必要があります。 372 第 23 章 1M ビットフラッシュメモリ 図 23.7-2 フラッシュメモリのセクタ消去手順の例 消去開始 FMCS:WE (bit5) フラッシュメモリ消去許可 消去コマンドシーケンス (1) FxAAAA ← XXAA (2) Fx5554 ← XX55 (3) FxAAAA ← XX80 (4) FxAAAA ← XXAA (5) Fx5554 ← XX55 (6)セクアアドレス←消去コード(30H) YES 消去セクタがほかにあるか NO 内部アドレスリード 1 YES 次セクタ 内部アドレスリード 2 NO トグルビット (DQ6) データ1(DQ6) = データ2(DQ6) セクタ消去終了 YES NO 0 タイミングリミット(DQ5) 1 内部アドレスリード 1 内部アドレスリード 2 NO トグルビット (DQ6) データ1(DQ6) = データ2(DQ6) YES 消去エラー 最終セクタ NO YES FMCS:WE (bit5) フラッシュメモリ消去禁止 ハードウェア・シーケンス・ フラグによる確認 消去完了 373 第 23 章 1M ビットフラッシュメモリ 23.7.5 フラッシュメモリのセクタ消去の一時停止 セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタから , データを読み出すことが 可能です。 ■ フラッシュメモリのセクタ消去の一時停止 フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表( 「23.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 23.5-1 を参照)のセクタ消去一時 停止コマンドを , フラッシュメモリ内に続けて送ることで実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込 みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) の書込みを行う事で実施されますが , このときアドレスはフ ラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の消 去一時停止コマンドは無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去 ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 15 µ s の時間の後 , 消去一時停止状態に入ります。 374 第 23 章 1M ビットフラッシュメモリ 23.7.6 フラッシュメモリのセクタ消去の再開 セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリのセクタ消去の再開 一時停止したセクタ消去を再開させるには , コマンドシーケンス表(「23.5 フラッシュ メモリ自動アルゴリズム起動方法」の 表 23.5-1 を参照)のセクタ消去再開コマンドを , フラッシュメモリ内に続けて送ることで実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態から , セクタ消去を再開する為のコマンドです。このコマンドは消去再開コード (30H) の書込みを行うことで実施されますが , このときのアドレスはフラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 375 第 23 章 1M ビットフラッシュメモリ 23.8 フラッシュメモリ使用上の注意 以下に MB90F598/ F598G のフラッシュメモリに関する注意を示します。 ■ フラッシュメモリ使用上の注意 ● ハードウェアリセット (RST) の入力 読出し中で自動アルゴリズムが起動していないときに , ハードウェアリセットを入力 するには , L レベル幅として最低 500ns をとる必要があります。この場合 , ハードウェ アリセット起動後フラッシュメモリからデータを読み出すまでに , 最低 500ns が必要と なります。同様に , 書込み / 消去中で自動アルゴリズムが起動しているときに , ハード ウェアリセットを入力するには , L レベル幅として最低 50ns をとる必要があります。こ の場合 , フラッシュメモリを初期化するために実行中の動作を停止した後データを読 み出すまでに , 20 µ s が必要となります。 書込み中にハードウェアリセットすると , 書き込まれているデータは不定となります。 消去中にハードウェアリセットすると , 消去されているセクタは使用不可となる可能 性があります。 ● ソフトウェアリセット , ウォッチドッグタイマリセット , ハードウェアスタンバイの取消 CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ 状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。それは , これ らのリセット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリ ズムが続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメモリ ユニットが読出し状態になることが妨げられる可能性があるためです。これらのリ セット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。 ● フラッシュメモリへのプログラムアクセス 自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。 CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム 領域を RAM などの別の領域に切り換え後 , 書込み / 消去を開始する必要があります。 この場合 , 割込みベクタを含むセクタ (SA6/SA4) が消去されると , 書込み / 消去割込み 処理を実行できません。 同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込 みソースは無効となります。 ● ホールド機能 CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求 の受付が許可(EPCR の HDE ビットが "1" をセット)されたとき , コントロールステー タスレジスタ (FMCS) の WE ビットが必ず "0" になっているようにしてください。 ● 拡張インテリジェント I/O サービス (EI2OS) フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは , EI2OS には受付不可能であり , 使用できません。 376 第 23 章 1M ビットフラッシュメモリ ● VID の適用 セクタプロテクト動作に必要な VID の適用は , 供給電圧がオンのとき常に開始し , 終了 する必要があります。 377 第 23 章 1M ビットフラッシュメモリ 23.9 フラッシュメモリにおけるリセットベクタアドレス MB90F598/F598G は , ハードワイヤードリセットベクタをサポートします。 内部ベクタモードでのアドレス FFFFDCH ∼ FFFFDFH へのすべての読出しアクセ スは , ハードワイヤードロジックにより事前に決められた値を読み出すことになり ます。しかし , フラッシュメモリモードでは , 前節で述べたようにこれらのアドレス のアクセスが可能です。 このため , これらのアドレスへの書込みは意味がありません。特に(フラッシュメ モリモードではなく)CPU アクセスでフラッシュメモリをプログラミングするとき , ソフトウェアポーリング用にこれらのアドレスを読み出さないように注意してくだ さい。さもなければ , フラッシュメモリはハードウェアシーケンスフラグ値の代り に固定リセットベクタ値を返します。 ■ フラッシュメモリにおけるリセットベクタアドレス 次の表に , リセットベクタとモードデータの事前に決められた値を示します。 < 注意事項 > 378 リセットベクタ FFA000H モードデータ 00H リセットベクタとモードデータは事前に決められた値が設定されていますので , フ ラッシュメモリに書き込むプログラムの中のリセットベクタ値とモードデータ値は 動作に影響を与えませんが , 同一のプログラムをマスク ROM 品で使用した場合 , 異 なる動作をする可能性がありますので , フラッシュメモリにも同一の値を書き込む ことを推奨します。 第 23 章 1M ビットフラッシュメモリ 23.10 フラッシュセキュリティの特長 フラッシュセキュリティコントローラ機能により , フラッシュメモリの内容を外部 端子から読出されることを防止できます。 ■ フラッシュセキュリティの特長 事前定義されたフラッシュメモリのアドレスが , フラッシュセキュリティコントロー ラ(1M ビットフラッシュメモリ :FE0001, 2M ビットフラッシュメモリ :FC0001)に割 り当てられます。このアドレスに保護コード "01H" が書き込まれるとフラッシュメモ リへのアクセスが制限されます。フラッシュメモリが一度保護されると , チップ消去を 行うまで , 機能のロックを解除することはできません。ロックを解除しない限り , いず れの外部端子からもフラッシュメモリへの読出し / 書込みはできません。 この機能は , フラッシュメモリに格納される自己完結型プログラムやデータのセキュ リティを必要とするアプリケーションに適しています。マイクロコントローラの外部 に位置するプログラム部分を対象アプリケーションが必要とする場合には , フラッ シュセキュリティコントローラは , 目的の機能を提供することができません。このため , 保護コードを設定した場合は , 外部ベクタフェッチモードは使用しません。 標準パラレルプログラマによるフラッシュマイクロコントローラのプログラミングに は , 独特のセットアップが必要になることがあります。たとえば , ミナトエレクトロニ クスのプログラマでは , デバイスチェックを切断する必要があります。保護コードは , フラッシュプログラミングの終わりにコーディングすることを推奨されます。これは , プログラミング中の不要な保護を回避するためです。 一度保護されたフラッシュメモリを再度プログラムするには , チップ消去操作を行う 必要があります。 詳細については , 弊社担当者にお問い合わせください。 379 第 23 章 1M ビットフラッシュメモリ 23.11 1M ビットフラッシュメモリのプログラム例 ここでは , 1M ビットフラッシュメモリのプログラム例を掲載します。 ■ 1M ビットフラッシュメモリのプログラム例 NAME FLASHWE TITLE FLASHWE ;-----------------------------------------------------------------------------;1Mbit-FLASH サンプルプログラム ; ;1: FLASHにあるプログラム(アドレス FFBC00H セクタ SA3/SA4)をRAM(アドレス 000700H)に転送する。 ; ;2: RAM上でプログラムを実行する。 ;3: PDR1の値をFLASH(アドレス FE0000H セクタ SA0)に書き込む。 ;4: 書き込んだ値(アドレス FE0000H セクタ SA0)を読出しPDR2に出力する。 ;5: 書き込んだセクタ(SA0)を消去する。 ;6: 消去データ確認の出力 ; 条件 ; ・RAM転送バイト数: 100H(256B) ; ・書込み,消去の終了判定 ; DQ5(タイミングリミット超過フラグ)での判定 ; DQ6(トグルビットフラグ)での判定 ; RDY(FMCS)での判定 ; ・エラー時の処理 ; P00~P07にHiを出力する ; リセットコマンド発行 ;-----------------------------------------------------------------------------; RESOUS IOSEG ABS=00 ;"RESOUS"I/Oセグメントの定義 ORG 0000H PDR0 RB 1 PDR1 RB 1 PDR2 RB 1 PDR3 RB 1 ORG 0010H DDR0 RB 1 DDR1 RB 1 DDR2 RB 1 DDR3 RB 1 ORG 00A1H CKSCR RB 1 ORG 00AEH FMCS RB 1 ORG 006FH ROMM RB 1 RESOUS ENDS ; SSTA SSEG RW 0127H STA_T RW 1 SSTA ENDS ; DATA DSEG ABS=0FFH ;FLASHコマンドアドレス ORG 5554H COMADR2 RW 1 380 第 23 章 1M ビットフラッシュメモリ ORG 0AAAAH COMADR1 RW 1 DATA ENDS ;///////////////////////////////////////////////////////////// ;メインプログラム(FFA000H) ;///////////////////////////////////////////////////////////// CODE CSEG START: ;///////////////////////////////////////////////////// ;初期化 ;///////////////////////////////////////////////////// MOV CKSCR,#0BAH ;3逓倍に設定 MOV RP,#0 MOV A,#!STA_T MOV SSB,A MOVW A,#STA_T MOVW SP,A MOV ROMM,#00H ;ミラーOFF MOV PDR0,#00H ;エラー確認用 MOV DDR0,#0FFH MOV PDR1,#00H ;データ入力用ポート MOV DDR1,#00H MOV PDR2,#00H ;データ出力用ポート MOV DDR2,#0FFH ;////////////////////////////////////////////////////////////// ;RAM(700H 番地)に"FLASH書込み消去プログラム(FFBCOOH)" を転送する ;////////////////////////////////////////////////////////////// MOVW A,#0700H ;転送先RAM領域 MOVW A,#0BC00H ;転送元アドレス(プログラムのある位置) MOVW RW0,#100H ;転送するバイト数 MOVS ADB,PCB ;FFBC00H から000700H へ100H 転送 CALLP 000700H ;転送したプログラムのあるアドレスへジャンプ ;///////////////////////////////////////////////////// ;データ出力 ;///////////////////////////////////////////////////// OUT MOV A,#0FEH MOV ADB,A MOVW RW2,#0000H MOVW A,@RW2+00 MOV PDR2,A END JMP * CODE ENDS ;//////////////////////////////////////////////////////////// ;FLASH書込み消去プログラム(SA3/SA4) ;//////////////////////////////////////////////////////////// RAMPRG CSEG ABS=0FFH ORG 0BC00H ; //////////////////////////////////////////// ; 初期化 ; //////////////////////////////////////////// MOVW RW0,#0500H ;RW0:入力データ確保用RAM空間 00:0500~ MOVW RW2,#0000H ;RW2:フラッシュメモリ書込みアドレス FD:0000~ MOV A,#00H ;DTB変更 MOV DTB,A ;@RW0用バンク指定 MOV A,#0FEH ;ADB変更1 MOV ADB,A ;書込みモード指定アドレス用バンク指定 MOV PDR3,#00H ;スイッチ初期化 381 第 23 章 1M ビットフラッシュメモリ MOV DDR3,#00H ; WAIT1 BBC PDR3:0,WAIT1 ;PDR3:0 Hiで書込みスタート ; ;//////////////////////////////////////////////// ; 書込み(SA0) ;//////////////////////////////////////////////// MOV A,PDR1 MOVW @RW0+00,A ;RAMにPDR1データを確保 MOV FMCS,#20H ;書込みモード設定 MOVW ADB:COMADR1,#00AAH ;フラッシュ書込みコマンド1 MOVW ADB:COMADR2,#0055H ;フラッシュ書込みコマンド2 MOVW ADB:COMADR1,#00A0H ;フラッシュ書込みコマンド3 ; MOVW A,@RW0+00 ;入力データ(RW0)をフラッシュメモリ(RW2) ; に書き込む MOVW @RW2+00,A WRITE ;待ち時間チェック ; /////////////////////////////////////////////////////////////////// ; タイムリミット超過チェック-フラグが立ちトグル動作中であるときERROR ; /////////////////////////////////////////////////////////////////// MOVW A,@RW2+00 AND A,#20H ;DQ5タイムリミットチェック BZ NTOW ;タイムリミットオーバ MOVW A,@RW2+00 ;AH MOVW A,@RW2+00 ;AL XORW A ;AH ALのXOR(値が違えば1) AND A,#40H ;DQ6トグルビットは違っているか BNZ ERROR ;違えばERRORへ ; /////////////////////////////////////// ; 書込み終了チェック(FMCS-RDY) ; /////////////////////////////////////// NTOW MOVW A,FMCS AND A,#10H ;FMCS RDYビット(4bit)抽出 BZ WRITE ;書込み終了か ? MOV FMCS,#00H ;書込みモード解除 ;///////////////////////////////////////////////////// ;書込みデータ出力 ;///////////////////////////////////////////////////// MOVW RW2,#0000H ;書込みデータ出力 MOVW A,@RW2+00 MOV PDR2,A ; WAIT2 BBC PDR3:1,WAIT2 ;PDR3:1 Hiでセクタ消去スタート ; ;///////////////////////////////////////////// ;セクタ消去(SA0) ;///////////////////////////////////////////// MOV @RW2+00,#0000H ;アドレス初期化 MOV FMCS,#20H ;消去モード設定 MOVW ADB:COMADR1,#00AAH ;フラッシュ消去コマンド1 MOVW ADB:COMADR2,#0055H ;フラッシュ消去コマンド2 MOVW ADB:COMADR1,#0080H ;フラッシュ消去コマンド3 MOVW ADB:COMADR1,#00AAH ;フラッシュ消去コマンド4 MOVW ADB:COMADR2,#0055H ;フラッシュ消去コマンド5 MOV @RW2+00,#0030H ;消すセクタに消去コマンド発行6 382 第 23 章 1M ビットフラッシュメモリ ELS ; ; ; ; 待ち時間チェック /////////////////////////////////////////////////////////////////// タイムリミット超過チェック- フラグが立ちトグル動作中であるときERROR /////////////////////////////////////////////////////////////////// MOVW A,@RW2+00 AND A,#20H ;DQ5タイムリミットチェック BZ NTOE ;タイムリミットオーバ MOVW A,@RW2+00 ;AH 書込み動作中は,DQ6から MOVW A,@RW2+00 ;AL リードごとHi Lowが交互出力される XORW A ;AHとALのXOR(DQ6の値が違えば1 書込み動作 ; 中である) AND A,#40H ;DQ6トグルビットはHiか BNZ ERROR ;HiならERRORへ ; /////////////////////////////////////// ; 消去終了チェック(FMCS-RDY) ; /////////////////////////////////////// NTOE MOVW A,FMCS ; AND A,#10H ;FMCS RDYビット(4bit)抽出 BZ ELS ;セクタ消去終了か? MOV FMCS,#00H ;FLASH消去モード解除 RETP ;メインプログラムに戻る ;////////////////////////////////////////////// ;エラー ;////////////////////////////////////////////// ERROR MOV ADB:COMADR1,#0F0H ;リセットコマンド(読出しが可能になる) MOV FMCS,#00H ;FLASHモード解除 MOV PDR0,#0FFH ;エラー処理の確認 RETP ;メインプログラムに戻る RAMPRG ENDS ;///////////////////////////////////////////// VECT CSEG ABS=0FFH ORG 0FFDCH DSL START DB 00H VECT ENDS ; END START 383 第 23 章 1M ビットフラッシュメモリ 384 第 24 章 MB90F598/F598G シリアル 書き込み接続例 横河ディジタルコンピュータ株式会社製 AF220/ AF210/AF120/AF110 フラッシュマイコンプログラ マを用いた場合のシリアル書込み接続例について 説明します。 24.1 MB90F598/F598G シリアル書込み接続の基本構成 24.2 シリアル書込み接続例 ( ユーザ電源使用時 ) 24.3 シリアル書込み接続例 ( ライタから電源供給時 ) 24.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 24.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 385 第 24 章 MB90F598/F598G シリアル書き込み接続例 24.1 MB90F598/F598G シリアル書込み接続の基本構成 MB90F598 では , フラッシュ ROM のシリアルオンボード書込み(富士通標準)を サポートしています。その仕様について以下に解説します。 ■ MB90F598/F598G シリアル書込み接続の基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。 ホストインタフェースケーブル(AZ201) 汎用共通ケーブル(AZ210) RS232C AF220/AF210/ AF120/AF110 フラッシュ マイコン プログラマ + メモリカード CLK同期シリアル MB90F598/F598G ユーザシステム スタンドアロンで動作可能 < 注意事項 > AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法及び 接続用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコン ピュータ株式会社殿にお問い合わせください。 表 24.1-1 富士通標準シリアルオンボード書込みに使用する端子 端 子 機 能 補足説明 MD2 ∼ MD0 モード端子 フラッシュマイコンプログラマから, 書込みモードに制御します。 X0, X1 発振用端子 書込みモード時に , CPU 内部動作クロックは PLL クロック 1 逓倍 となっています。したがいまして , 発振クロック周波数が , 内部動 作クロックとなりますので , シリアル書換え時に使用する発振子 は 3MHz ∼ 5MHz となります。 P00, P01 書込みプログラム起動端子 - RST リセット端子 - SIN1 シリアルデータ入力端子 SOT1 シリアルデータ出力端子 SCK1 シリアルクロック入力端子 C C 端子 電源安定化の容量端子です。外部に 0.1 µF 程度のセラミックコン デンサを接続してください。 VCC 電源電圧供給端子 書込み電圧 (5V ± 10%) をユーザシステムから供給する場合には フラッシュマイコンプログラマとの接続は必要ありません。接続 時にはユーザ側の電源と短絡しないようにしてください。 VSS GND 端子 フラッシュマイコンプログラマの GND と共通にします。 HST ハードウェアスタンバイ端子 シリアル書込みモード中は "H" レベルを入力してください。 386 UART1 を CLK 同期モードとして使用します。 第 24 章 MB90F598/F598G シリアル書き込み接続例 P00, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 下図の制御回路 が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書込 み中はユーザ回路を切り離すことができます。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F598/F598G 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS端子 ユーザ 次節以降に , 以下のシリアル書込み接続例を示しますのでご参照ください。 • シリアル書込み接続例 ( ユーザー電源使用時 ) • シリアル書込み接続例 ( ライタから電源供給時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 387 第 24 章 MB90F598/F598G シリアル書き込み接続例 ■ フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式 会社製 ) 表 24.1-2 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) 型 格 本体 < 注意事項 > 388 機 能 AF220/AC4P イーサネットインタフェース内蔵モデル /100V ∼ 220V 電源アダ プタ AF210/AC4P スタンダードモデル /100V ∼ 220V 電源アダプタ AF120/AC4P 単キー イーサネットインタフェース内蔵モデル /100V ∼ 220V 電 源アダプタ AF110/AC4P 単キーモデル /100V ∼ 220V 電源アダプタ AZ221 ライタ専用 PC/AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ :1m FF210 富 士 通 製 F2MC-16LX フ ラ ッ シ ュ マ イ コ ン 用 コ ン ト ロ ー ル モ ジュール /P2 2MB PC Card(Option) FLASH メモリ容量∼ 128KB 対応 /P4 4MB PC Card(Option) FLASH メモリ容量∼ 512KB 対応 AF200 フラッシュマイコンプログラマは終息製品ですが , コントロールモジュール FF201 を用いることにより使用できます。シリアル書込み接続も , 次節に示します 接続例にて対応できます。 第 24 章 MB90F598/F598G シリアル書き込み接続例 ■ 発振クロック周波数とシリアルクロック入力周波数について MB90F598/F598Gの入力可能なシリアルクロック周波数は, 以下の計算式によって求め ることができます。したがって , ご使用の発振クロック周波数に合わせて , シリアルク ロック入力周波数をフラッシュマイコンプログラマの設定により変更してください。 入力可能なシリアルクロック周波数 = 0.125 ×発振クロック周波数 表 24.1-3 入力可能なシリアルクロック周波数の例 発振クロック周波数 マイコンの入力可能な 最大シリアルクロック 周波数 AF220/AF210/AF120/ AF110 の設定可能な 最大シリアルクロック 周波数 AF200 の設定可能な 最大シリアルクロック 周波数 4MHz 時 500kHz 500kHz 500kHz 8MHz 時 1MHz 850kHz 500kHz 16MHz 時 2MHz 1.25MHz 500kHz 389 第 24 章 MB90F598/F598G シリアル書き込み接続例 24.2 シリアル書込み接続例 ( ユーザ電源使用時 ) 図 24.2-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , シリアル書込 み接続例を示します。なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/ AF110 の TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書き換えモード :MD2, MD1, MD0=110 ■ シリアル書込み接続例 ( ユーザ電源使用時 ) 図 24.2-1 MB90F598/F598G シリアル書込み接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン コネクタ プログラマ DX10-28S TAUX3 MB90F598/F598G MD2 (19) 10k Ω 10k Ω MD1 10k Ω TMODE MD0 X0 (12) 3MHz~5MHz X1 TAUX P00 (23) 10k Ω /TICS (10) ユーザ ユーザ 10k Ω HST 10k Ω /TRES RST (5) 10k Ω ユーザ 0.1µF TTXD TRXD TCK (13) (27) (6) TVcc (2) P01 C SIN1 SOT1 SCK1 Vcc ユーザ電源 GND (7,8, 14,15. 21,22 1,28) Vss 14ピン 3, 4, 9, 11, 16, 17, 18, 20, 24, 25, 26ピンはOPEN DX10-28S:ライトアングルタイプ 390 1ピン DX10-28S 28ピン 15ピン コネクタ (ヒロセ電機製)のピン配列 第 24 章 MB90F598/F598G シリアル書き込み接続例 SIN1, SOT1, SCK1端子をユーザシステムでも使用する場合には , P00と同様下図の制御 回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル 書き込み中はユーザ回路を切り離すことができます )。 • AF220/AF210/AF120/AF110との接続は, ユーザ電源がOFFの状態で行ってください。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F598/F598G 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS端子 ユーザ 391 第 24 章 MB90F598/F598G シリアル書き込み接続例 24.3 シリアル書込み接続例 ( ライタから電源供給時 ) 図 24.3-1 に , マイコンの電源電圧をライタ電源より供給する場合の , シリアル書込 み接続例を示します。なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/ AF110 の TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書き換えモード :MD2 ∼ MD0=110 ■ シリアル書込み接続例 ( ライタから電源供給時 ) 図 24.3-1 MB90F598/F598G シリアル書込み接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン コネクタ プログラマ DX10-28S TAUX3 MB90F598/F598G MD2 (19) 10kΩ 10k Ω MD1 10kΩ TMODE MD0 X0 (12) 3MHz~5MHz X1 TAUX /TICS P00 (23) 10kΩ (10) ユーザ 10kΩ ユーザ HST 10kΩ /TRES RST (5) 10kΩ ユーザ 0.1µF TTXD TRXD TCK TVcc Vcc TVPP1 (13) (27) (6) (2) (3) (16) P01 C SIN1 SOT1 SCK1 Vcc ユーザ電源 GND (7,8, 14,15. 21,22 1,28) 4, 9, 11, 17, 18, 20, 24, 25, 26ピンはOPEN DX10-28S: ライトアングルタイプ Vss 14ピン 1ピン 28ピン 15ピン DX10-28S コネクタ(ヒロセ電機製)のピン配列 392 第 24 章 MB90F598/F598G シリアル書き込み接続例 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , P00 と同様下図の 制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シ リアル書込み中はユーザ回路を切り離すことができます )。 • AF220/AF210/AF120/AF110との接続は, ユーザ電源がOFFの状態で行ってください。 • 書込み電源を AF220/AF210/AF120/AF110 から供給するときは , ユーザ電源と短絡し ないでください。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F598/F598G 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS端子 ユーザ 393 第 24 章 MB90F598/F598G シリアル書き込み接続例 24.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 図 24.4-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。なお , モード端子 MD2, MD0 に は , AF220/AF210/AF120/AF110 の TAUX3, TMODE より , MD2=1, MD0=0 が入力 されます。 シリアル書き換えモード :MD2 ∼ MD0=110 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) フラッシュメモリ書込み時に , 各端子を下記のように設定して頂ければ , MD2 ∼ MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 24.4-1 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ ユーザシステム シリアル書換え時1 10kΩ MB90F598/F598G MD2 シリアル書換え時1 10kΩ 10k Ω 10kΩ 10k Ω MD1 MD0 シリアル書換え時0 10kΩ X0 3MHz~5MHz X1 P00 10kΩ 10kΩ シリアル書換え時0 ユーザ回路 シリアル書換え時1 ユーザ回路 10k Ω コネクタ DX10-28S or DX20-28S /TRES TTXD TRXD TCK TVcc (5) (13) (27) (6) (2) GND (7,8, 14,15, 21,22, 1,28) 3, 4, 9, 10, 11, 12, 16, 17, 18, 19, 20, 23, 24, 25, 26ピンはOPEN DX10-28S:ライトアングルタイプ 0.1µ F 10kΩ P01 HST C RST SIN1 SOT1 SCK1 Vcc ユーザ電源 DX10-28S Vss 14ピン 1ピン 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 394 第 24 章 MB90F598/F598G シリアル書き込み接続例 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます )。 • AF220/AF210/AF120/AF110との接続は, ユーザ電源がOFFの状態で行ってください。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F598/F598G 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS端子 ユーザ 395 第 24 章 MB90F598/F598G シリアル書き込み接続例 24.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 図 24.5-1 に , マイコンの電源電圧をライタ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書き換えモード :MD2 ∼ MD0=110 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) フラッシュメモリ書込み時に各端子を下記のように設定して頂ければ , MD2 ∼ MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 24.5-1 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン プログラマ シリアル書換え時1 10k Ω MB90F598/F598G MD2 シリアル書換え時1 10kΩ 10k Ω MD1 10kΩ 10kΩ MD0 シリアル書換え時0 10kΩ X0 3MHz~5MHz シリアル書換え時0 X1 P00 10kΩ 10k Ω ユーザ回路 P01 シリアル書換え時1 ユーザ回路 10kΩ コネクタ DX10-28S /TRES TTXD TRXD TCK TVcc Vcc TVPP1 GND (5) (13) (27) (6) (2) (3) (16) 0.1µ F 10kΩ RST SIN1 SOT1 SCK1 Vcc (7,8, 14,15, 21,22, 1,28) 4, 9, 10, 11, 12, 17, 18, 19, 20, 23, 24, 25, 26ピンはOPEN DX10-28S:ライトアングルタイプ HST C Vss DX10-28S 14ピン 1ピン 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 396 第 24 章 MB90F598/F598G シリアル書き込み接続例 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります(フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます) 。 • AF220/AF210/AF120/AF110との接続は, ユーザ電源がOFFの状態で行ってください。 • 書込み電源を AF220/AF210/AF120/AF110 から供給するときは , ユーザ電源と短絡し ないでください。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F598/F598G 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS端子 ユーザ 397 第 24 章 MB90F598/F598G シリアル書き込み接続例 398 付録 付録では , I/O マップ , 命令などを示します。 付録 A I/O マップ 付録 B 命令 付録 C フラッシュメモリモードのタイミングダイアグラム 付録 D MB90595 割込みベクタ一覧表 399 付録 A I/O マップ 付録 A I/O マップ 表 A-1 と表 A-2 に , 周辺ブロック中のレジスタに割り当てられるアドレスを示しま す。 ■ I/O マップ 表 A-1 I/O マップ (1) ( 1 / 5 ) アドレス レジスタ アクセス 周辺 初期値 00H ポート 0 データレジスタ PDR0 R/W ポート 0 XXXXXXXX 01H ポート 1 データレジスタ PDR1 R/W ポート 1 XXXXXXXX 02H ポート 2 データレジスタ PDR2 R/W ポート 2 XXXXXXXX 03H ポート 3 データレジスタ PDR3 R/W ポート 3 XXXXXXXX 04H ポート 4 データレジスタ PDR4 R/W ポート 4 XXXXXXXX 05H ポート 5 データレジスタ PDR5 R/W ポート 5 XXXXXXXX 06H ポート 6 データレジスタ PDR6 R/W ポート 6 XXXXXXXX 07H ポート 7 データレジスタ PDR7 R/W ポート 7 XXXXXXXX 08H ポート 8 データレジスタ PDR8 R/W ポート 8 XXXXXXXX 09H ポート 9 データレジスタ PDR9 R/W ポート 9 - -XXXXXX 0AH ∼ 0FH 使用禁止 10H ポート 0 方向レジスタ DDR0 R/W ポート 0 00000000 11H ポート 1 方向レジスタ DDR1 R/W ポート 1 00000000 12H ポート 2 方向レジスタ DDR2 R/W ポート 2 00000000 13H ポート 3 方向レジスタ DDR3 R/W ポート 3 00000000 14H ポート 4 方向レジスタ DDR4 R/W ポート 4 00000000 15H ポート 5 方向レジスタ DDR5 R/W ポート 5 00000000 16H ポート 6 方向レジスタ DDR6 R/W ポート 6 00000000 17H ポート 7 方向レジスタ DDR7 R/W ポート 7 00000000 18H ポート 8 方向レジスタ DDR8 R/W ポート 8 00000000 19 H ポート 9 方向レジスタ DDR9 R/W ポート 9 - -000000 R/W ポート 6, A/D 11111111 1AH 1BH 使用禁止 アナログ入力許可レジスタ 1CH ∼ 1FH 400 略称 ADER 使用禁止 20H シリアル・モード・コントロール・レジスタ 0 UMC0 R/W 21H ステータスレジスタ 0 USR0 R/W 22H インプット / アウトプットデータレジスタ 0 UIDR0/ UODR0 R/W 23H レート / データレジスタ 0 URD0 R/W 00000100 00010000 UART0 XXXXXXXX 0000000X 付録 A I/O マップ 表 A-1 I/O マップ (1) ( 2 / 5 ) アドレス レジスタ 略称 アクセス 周辺 初期値 24H シリアルモードレジスタ 1 SMR1 R/W 00000000 25H シリアルコントロールレジスタ 1 SCR1 R/W 00000100 26H インプット / アウトプットデータレジスタ 1 SIDR1/ SODR1 R/W 27H シリアルステータスレジスタ 1 SSR1 R/W 00001-00 28H UART1 プリスケーラコントロールレジスタ U1CDCR R/W 0 - --1111 29H ∼ 2AH UART1(SCI) XXXXXXXX 使用禁止 2BH シリアル IO プリスケーラレジスタ SCDCR R/W 0 - --1111 2CH シリアルモードコントロールレジスタ(下位) SMCS R/W - - - -0000 2DH シリアルモードコントロールレジスタ(上位) SMCS R/W 2E H シリアルデータレジスタ SDR R/W XXXXXXXX 2FH エッジセレクタレジスタ SES R/W - - - - - --0 30H 外部割込み許可レジスタ ENIR R/W 00000000 31H 外部割込み要求レジスタ EIRR R/W 32H 要求レベル設定レジスタ(下位) ELVR R/W 33H 要求レベル設定レジスタ(上位) ELVR R/W 00000000 34H A/D コントロールステータスレジスタ 0 ADCS0 R/W 00000000 35H A/D コントロールステータスレジスタ 1 ADCS1 R/W 36H A/D データ 0 レジスタ ADCR0 R 37H A/D データ 1 レジスタ ADCR1 R/W 38H PPG0 動作モード制御レジスタ PPGC0 R/W 39H PPG1 動作モード制御レジスタ PPGC1 R/W 3AH PPG0, PPG1 出力端子制御レジスタ PPG01 R/W 3BH シリアル I/O 外部割込み A/D コンバータ 00000010 XXXXXXXX 00000000 00000000 XXXXXXXX 00001-XX 16bit プログラマブ ルパルス発生部 0/1 0-000 - -1 0-000001 000000 - - 使用禁止 3CH PPG2 動作モード制御レジスタ PPGC2 R/W 3DH PPG3 動作モード制御レジスタ PPGC3 R/W 3E H PPG2, PPG3 出力端子制御レジスタ PPG23 R/W 3FH 16bit プログラマブ ルパルス発生部 2/3 0-000 - -1 0-000001 000000 - - 使用禁止 40H PPG4 動作モード制御レジスタ PPGC4 R/W 41H PPG5 動作モード制御レジスタ PPGC5 R/W 42H PPG4, PPG5 出力端子制御レジスタ PPG45 R/W 43H 16bit プログラマブ ルパルス発生部 4/5 0-000 - -1 0-000001 000000 - - 使用禁止 44H PPG6 動作モード制御レジスタ PPGC6 R/W 45H PPG7 動作モード制御レジスタ PPGC7 R/W 46H PPG6, PPG7 出力端子制御レジスタ PPG67 R/W 47H 16bit プログラマブ ルパルス発生部 6/7 0-000 - -1 0-000001 000000 - - 使用禁止 48H PPG8 動作モード制御レジスタ PPGC8 R/W 49H PPG9 動作モード制御レジスタ PPGC9 R/W 4AH PPG8,PPG 9 出力端子制御レジスタ PPG89 R/W 16bit プログラマブ ルパルス発生部 8/9 0-000 - -1 0-000001 000000 - 401 付録 A I/O マップ 表 A-1 I/O マップ (1) ( 3 / 5 ) アドレス レジスタ 4BH アクセス 周辺 初期値 使用禁止 4CH PPGA 動作モード制御レジスタ PPGCA R/W 4DH PPGB 動作モード制御レジスタ PPGCB R/W 4EH PPGA, B 出力端子制御レジスタ PPGAB R/W 4FH 16bit プログラマブ ルパルス発生部 A/B 0-000 - -1 0-000001 000000 - - 使用禁止 50H タイマコントロールステータスレジスタ 0 (下位) TMCSR0 R/W 51H タイマコントロールステータスレジスタ 0 (上位) TMCSR0 R/W 00000000 - - - -0000 16bit リロードタイマ 0 52H タイマレジスタ 0/ リロードレジスタ 0(下位) TMR0/ TMRLR0 R/W XXXXXXXX 53H タイマレジスタ 0/ リロードレジスタ 0(上位) TMR0/ TMRLR0 R/W XXXXXXXX 00000000 54H タイマコントロールステータスレジスタ 1 (下位) TMCSR1 R/W 55H タイマコントロールステータスレジスタ 1 (上位) TMCSR1 R/W - - - -0000 16bit リロードタイマ 1 56H タイマレジスタ 1/ リロードレジスタ 1(下位) TMR1/ TMRLR1 R/W XXXXXXXX 57H タイマレジスタ 1/ リロードレジスタ 1(上位) TMR1/ TMRLR1 R/W XXXXXXXX 58H アウトプット・コンペア・コントロール・ス テータスレジスタ 0 OCS0 R/W 59H アウトプット・コンペア・コントロール・ス テータスレジスタ 1 OCS1 R/W 5AH アウトプット・コンペア・コントロール・ス テータスレジスタ 2 OCS2 R/W 5BH アウトプット・コンペア・コントロール・ス テータスレジスタ 3 OCS3 R/W 5CH インプット・キャプチャ・コントロール・ス テータスレジスタ 0/1 ICS01 R/W インプットキャプチャ 0/1 00000000 5DH インプット・キャプチャ・コントロール・ス テータスレジスタ 2/3 ICS23 R/W インプットキャプチャ 2/3 00000000 5EH PWM 制御レジスタ 0 PWC0 R/W ステッピングモー タコントローラ 0 00000 - -0 R/W ステッピングモー タコントローラ 1 00000 - -0 R/W ステッピングモー タコントローラ 2 00000 - -0 R/W ステッピングモー タコントローラ 3 00000 - -0 5FH 60H 62H PWM 制御レジスタ 1 - --00000 0000 - -00 アウトプットコンペア 2/3 - --00000 PWC1 使用禁止 PWM 制御レジスタ 2 63H 64H 0000 - -00 アウトプットコンペア 0/1 使用禁止 61H 402 略称 PWC2 使用禁止 PWM 制御レジスタ 3 PWC3 付録 A I/O マップ 表 A-1 I/O マップ (1) ( 4 / 5 ) アドレス レジスタ 65H 略称 アクセス 周辺 初期値 入出力タイマ 00000000 使用禁止 66H タイマデータレジスタ(下位) TCDT R/W 67H タイマデータレジスタ(上位) TCDT R/W 00000000 68H タイマコントロールステータスレジスタ TCCS R/W 00000000 69H ∼ 6EH 使用禁止 6FH ROM ミラー機能選択レジスタ ROMM R/W 70H PWM1 コンペアレジスタ 0 PWC10 R/W 71H PWM2 コンペアレジスタ 0 PWC20 R/W 72H PWM1 選択レジスタ 0 PWS10 R/W 73H PWM2 選択レジスタ 0 PWS20 R/W -0000000 74H PWM1 コンペアレジスタ 1 PWC11 R/W XXXXXXXX 75H PWM2 コンペアレジスタ 1 PWC21 R/W 76H PWM1 選択レジスタ 1 PWS11 R/W 77H PWM2 選択レジスタ 1 PWS21 R/W -0000000 78H PWM1 コンペアレジスタ 2 PWC12 R/W XXXXXXXX 79H PWM2 コンペアレジスタ 2 PWC22 R/W 7AH PWM1 選択レジスタ 2 PWS12 R/W 7BH PWM2 選択レジスタ 2 PWS22 R/W -0000000 7CH PWM1 コンペアレジスタ 3 PWC13 R/W XXXXXXXX 7DH PWM2 コンペアレジスタ 3 PWC23 R/W 7EH PWM1 選択レジスタ 3 PWS13 R/W 7FH PWM2 選択レジスタ 3 PWS23 R/W 80H ∼ 8FH ROM ミラー - - - - - --1 XXXXXXXX ステッピングモー タコントローラ 0 ステッピングモー タコントローラ 1 ステッピングモー タコントローラ 2 ステッピングモー タコントローラ 3 XXXXXXXX - -000000 XXXXXXXX - -000000 XXXXXXXX - -000000 XXXXXXXX - -000000 -0000000 CAN インタフェース 0/1 用に予約済。『CAN コントローラハードウェアマニュアル』を参照。 90H ∼ 9DH 使用禁止 9EH プログラムアドレス検出コントロール / ステー タスレジスタ PACSR R/W アドレス一致検出機能 00000000 9FH 遅延割込み要因発生 / 解除レジスタ DIRR R/W 遅延割込み - - - - - --0 A0H 低消費電力モード制御レジスタ LPMCR R/W 低消費電力制御回路 00011000 A1H クロック選択レジスタ CKSCR R/W 低消費電力制御回路 11111100 A2H ∼ A7H 使用禁止 A8H ウォッチドッグタイマ制御レジスタ WDTC R/W ウォッチドッグタイマ XXXXX111 A9H タイムベースタイマ制御レジスタ TBTC R/W タイムベースタイマ 1 - -00100 R/W フラッシュメモリ 000X0000 AAH ∼ ADH AEH AFH 使用禁止 フラッシュメモリコントロールステータスレジ スタ(MB90F598/F598G のみ , それ以外は使用 禁止) FMCS 使用禁止 403 付録 A I/O マップ 表 A-1 I/O マップ (1) ( 5 / 5 ) アドレス 略称 アクセス 周辺 初期値 B0H 割込み制御レジスタ 00 ICR00 R/W 00000111 B1H 割込み制御レジスタ 01 ICR01 R/W 00000111 B2H 割込み制御レジスタ 02 ICR02 R/W 00000111 B3H 割込み制御レジスタ 03 ICR03 R/W 00000111 B4H 割込み制御レジスタ 04 ICR04 R/W 00000111 B5H 割込み制御レジスタ 05 ICR05 R/W 00000111 B6H 割込み制御レジスタ 06 ICR06 R/W 00000111 B7H 割込み制御レジスタ 07 ICR07 R/W B8H 割込み制御レジスタ 08 ICR08 R/W B9H 割込み制御レジスタ 09 ICR09 R/W 00000111 BAH 割込み制御レジスタ 10 ICR10 R/W 00000111 BBH 割込み制御レジスタ 11 ICR11 R/W 00000111 BCH 割込み制御レジスタ 12 ICR12 R/W 00000111 BDH 割込み制御レジスタ 13 ICR13 R/W 00000111 BEH 割込み制御レジスタ 14 ICR14 R/W 00000111 BFH 割込み制御レジスタ 15 ICR15 R/W 00000111 C0H ∼ FFH 404 レジスタ 使用禁止 割込みコントローラ 00000111 00000111 付録 A I/O マップ 表 A-2 I/O マップ (2) (1 / 2) アドレス レジスタ 略称 アクセス 周辺 初期値 1900H リロードレジスタ L PRLL0 R/W 1901H リロードレジスタ H PRLH0 R/W 1902H リロードレジスタ L PRLL1 R/W 1903H リロードレジスタ H PRLH1 R/W XXXXXXXX 1904H リロードレジスタ L PRLL2 R/W XXXXXXXX 1905H リロードレジスタ H PRLH2 R/W 1906H リロードレジスタ L PRLL3 R/W 1907H リロードレジスタ H PRLH3 R/W 1908H リロードレジスタ L PRLL4 R/W 1909H リロードレジスタ H PRLH4 R/W 190AH リロードレジスタ L PRLL5 R/W 190BH リロードレジスタ H PRLH5 R/W 190CH リロードレジスタ L PRLL6 R/W 190DH リロードレジスタ H PRLH6 R/W 190EH リロードレジスタ L PRLL7 R/W 190FH リロードレジスタ H PRLH7 R/W 1910H リロードレジスタ L PRLL8 R/W XXXXXXXX 16bit プログラマブ ルパルス発生部 0/1 16bit プログラマブ ルパルス発生部 2/3 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 16bit プログラマブ ルパルス発生部 4/5 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 16bit プログラマブ ルパルス発生部 6/7 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 16bit プログラマブ ルパルス発生部 8/9 1911H リロードレジスタ H PRLH8 R/W 1912H リロードレジスタ L PRLL9 R/W 1913H リロードレジスタ H PRLH9 R/W XXXXXXXX 1914H リロードレジスタ L PRLLA R/W XXXXXXXX 1915H リロードレジスタ H PRLHA R/W 1916H リロードレジスタ L PRLLB R/W 1917H リロードレジスタ H PRLHB R/W XXXXXXXX XXXXXXXX 1918H ∼ 191FH 16bit プログラマブ ルパルス発生部 A/B XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 使用禁止 1920H インプットキャプチャレジスタ 0(下位) IPCP0 R 1921H インプットキャプチャレジスタ 0(上位) IPCP0 R 1922H インプットキャプチャレジスタ 1(下位) IPCP1 R 1923H インプットキャプチャレジスタ 1(上位) IPCP1 R XXXXXXXX 1924H インプットキャプチャレジスタ 2(下位) IPCP2 R XXXXXXXX 1925H インプットキャプチャレジスタ 2(上位) IPCP2 R 1926H インプットキャプチャレジスタ 3(下位) IPCP3 R 1927H インプットキャプチャレジスタ 3(上位) IPCP3 R XXXXXXXX 1928H アウトプットコンペアレジスタ 0(下位) OCCP0 R/W XXXXXXXX 1929H アウトプットコンペアレジスタ 0(上位) OCCP0 R/W 192AH アウトプットコンペアレジスタ 1(下位) OCCP1 R/W 192BH アウトプットコンペアレジスタ 1(上位) OCCP1 R/W インプットキャプチャ 0/1 インプットキャプチャ 2/3 アウトプットコンペア 0/1 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 405 付録 A I/O マップ 表 A-2 I/O マップ (2) (2 / 2) アドレス レジスタ 略称 アクセス 192CH アウトプットコンペアレジスタ 2(下位) OCCP2 R/W 192DH アウトプットコンペアレジスタ 2(上位) OCCP2 R/W 192EH アウトプットコンペアレジスタ 3(下位) OCCP3 R/W 192FH アウトプットコンペアレジスタ 3(上位) OCCP3 R/W 1930H ∼ 19FFH 周辺 初期値 XXXXXXXX アウトプットコンペア 2/3 XXXXXXXX XXXXXXXX XXXXXXXX 使用禁止 1A00H ∼ 1AFFH CAN インタフェース用に予約済。『CAN コントローラハードウェアマニュアル』参照。 1B00H ∼ 1BFFH CAN インタフェース用に予約済。『CAN コントローラハードウェアマニュアル』参照。 1C00H ∼ 1EFFH 使用禁止 1FF0H プログラムアドレス検出レジスタ 0(下位) 1FF1H プログラムアドレス検出レジスタ 0(中位) 1FF2H プログラムアドレス検出レジスタ 0(上位) 1FF3H プログラムアドレス検出レジスタ 1(下位) 1FF4H プログラムアドレス検出レジスタ 1(中位) 1FF5H プログラムアドレス検出レジスタ 1(上位) 1FF6H ∼ 1FFFH XXXXXXXX PADR0 R/W XXXXXXXX アドレス一致検出機能 PADR1 R/W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 使用禁止 ● 初期値 "?" は未使用ビットを表し , "X" は値が不定であることを示します。 ● 表にリストされていない 0000H ∼ 00FFH の範囲のアドレスは , MCU の主要機能のために予 約されています。これらの予約済アドレスへのリードアクセスの結果は "X" になり , ライ トアクセスは禁止です。 ● 読出し / 書込みについての説明 R/W: リードライト可能 R : リードオンリ W : ライトオンリ ● 初期値についての説明 0: このビットの初期値は "0" です。 1: このビットの初期値は "1" です。 X: このビットの初期値は不定です。 -: このビットは未使用です。初期値は不定です。 406 付録 B 命令 付録 B 命令 F2MC-16LX に使用している命令について説明します。 B.1 命令の種類 B.2 アドレッシング B.3 直接アドレッシング B.4 間接アドレッシング B.5 実行サイクル数 B.6 実効アドレスフィールド B.7 命令一覧表の読み方 B.8 F2MC-16LX 命令一覧表 B.9 命令マップ 管理番号 : CM44-00202-1 407 付録 B 命令 B.1 命令の種類 F2MC-16LX には , 以下に示す 351 種類の命令があります。 ■ 命令の種類 • 転送系命令 ( バイト ) 41 命令 • 転送系命令 ( ワード , ロングワード ) 38 命令 • 加減算命令 ( バイト , ワード , ロングワード ) 42 命令 • 増減算命令 ( バイト , ワード , ロングワード ) 12 命令 • 比較命令 ( バイト , ワード , ロングワード ) 11 命令 • 符号なし乗除算命令 ( ワード , ロングワード ) 11 命令 • 符号付き乗除算命令 ( ワード , ロングワード ) 11 命令 • 論理演算命令 ( バイト , ワード ) 39 命令 • 論理演算命令 ( ロングワード ) 6 命令 • 符号反転命令 ( バイト , ワード ) 6 命令 • ノーマライズ命令 ( ロングワード ) 1 命令 • シフト命令 ( バイト , ワード , ロングワード ) 18 命令 • 分岐命令 50 命令 ( 分岐命令 1: 31 命令 , 分岐命令 2: 19 命令 ) • アキュムレータ操作命令 ( バイト , ワード ) 6 命令 • その他制御命令 ( バイト , ワード , ロングワード ) 28 命令 • ビット操作命令 21 命令 • ストリング命令 10 命令 408 付録 B 命令 B.2 アドレッシング F2MC-16LX では , 命令の実効アドレスフィールドまたは命令コード自体 ( インプラ イド ) でアドレス形式が決定されます。命令コード自体でアドレス形式が決定する 場合は , 使用する命令コードに合わせてアドレスを指定します。命令によっては , 数 種類のアドレス指定方式から設定できるものがあります。 ■ アドレッシング F2MC-16LX には , 以下に示す 23 種類のアドレッシングがあります。 • 即値 (#imm) • レジスタ直接 • 直接分岐アドレス (addr16) • 物理直接分岐アドレス (addr24) • I/O 直接 (io) • 短縮直接アドレス (dir) • 直接アドレス (addr16) • I/O 直接ビットアドレス (io: bp) • 短縮直接ビットアドレス (dir: bp) • 直接ビットアドレス (addr16: bp) • ベクタアドレス (#vct) • レジスタ間接 (@RWj j=0 ∼ 3) • ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) • ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) • ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) • ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) • ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) • プログラムカウンタ相対分岐アドレス (rel) • レジスタリスト (rlst) • アキュムレータ間接 (@A) • アキュムレータ間接分岐アドレス (@A) • 間接指定分岐アドレス (@ear) • 間接指定分岐アドレス (@eam) 409 付録 B 命令 ■ 実効アドレスフィールド 実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。 表 B.2-1 実効アドレスフィールド コード 410 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 デフォルトバンク なし DTB DTB レジスタ間接 0A @RW2 0B @RW3 SPB 0C @RW0+ DTB 0D @RW1+ 0E @RW2+ 0F @RW3+ SPB 10 @RW0+disp8 DTB 11 @RW1+disp8 DTB 12 @RW2+disp8 ADB 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 DTB 16 @RW6+disp8 ADB 17 @RW7+disp8 SPB 18 @RW0+disp16 DTB 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C @RW0+RW7 インデックス付レジスタ間接 DTB 1D @RW1+RW7 インデックス付レジスタ間接 DTB 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 PCB 1F addr16 直接アドレス DTB ポストインクリメント付 レジスタ間接 8 ビットディスプレースメント付 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 ADB DTB ADB SPB DTB DTB ADB SPB 付録 B 命令 B.3 直接アドレッシング 直接アドレッシングでは , オペランド値 , レジスタおよびアドレスを直接指定しま す。 ■ 直接アドレッシング ● 即値 (#imm) オペランドの値を直接指定します。(#imm4/#imm8/#imm16/#imm32) 。 図 B.3-1 に例を示します。 図 B.3-1 即値 (#imm) 例 MOVW A, #01212H (A にオペランドの値を格納する命令 ) 実行前 A 2233 4455 実行後 A 4455 1 2 1 2 ( 命令によっては AL → AH に転送が行われる ) ● レジスタ直接 オペランドとして , 直接レジスタを指定します。指定できるレジスタを表 B.3-1 に示し ます。 表 B.3-1 レジスタ直接 汎用レジスタ 専用レジスタ *: バイト R0, R1, R2, R3, R4, R5, R6, R7 ワード RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 ロングワード RL0, RL1, RL2, RL3 アキュムレータ A, AL ポインタ SP * バンク PCB, DTB, USB, SSB, ADB ページ DPR 制御 PS, CCR, RP, ILM SP は , コンディションコードレジスタ (CCR) 中の S フラグビットの値に応じてユーザス タックポインタ (USP) またはシステムスタックポインタ (SSP) のどちらか一方が選択さ れ , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドには 記述されることなく指定されます。 411 付録 B 命令 図 B.3-2 に例を示します。 図 B.3-2 レジスタ直接例 MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 ) 実行前 A 0716 2534 メモリ空間 R0 実行後 A 0716 2564 ?? メモリ空間 R0 34 ● 直接分岐アドレス (addr16) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ∼ bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 B.3-3 に例を示 します。 図 B.3-3 直接分岐アドレス (addr16) 例 JMP 3B20H ( バンク内で直接分岐アドレス指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3B20H 次の命令 実行後 412 PC 3 B 2 0 PCB 4 F 4F3C20H 62 4F3C21H 20 4F3C22H 3B JMP 3B20H 付録 B 命令 ● 物理直接分岐アドレス (addr24) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 24 ビットです。無条件分岐命令 , サブルーチンコール命令およびソフト ウェア割込み命令に使用します。図 B.3-4 に例を示します。 図 B.3-4 物理直接分岐アドレス (addr24) 例 JMPP 333B20H ( 直接分岐アドレス 24 ビット指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 333B20H 次の命令 実行後 PC 3 B 2 0 PCB 3 3 4F3C20H 63 4F3C21H 20 4F3C22H 3B 4F3C23H 33 JMPP 333B20H ● I/O 直接 (io) オペランドのメモリアドレスを 8 ビットのディスプレースメントで直接指定します。 データバンクレジスタ (DTB) , ダイレクトページレジスタ (DPR) の値にかかわらず , 物理アドレス "000000H" ∼ "0000FFH" の空間の I/O 空間がアクセスされます。I/O 直接 アドレス指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを 記述しても無効です。図 B.3-5 に例を示します。 図 B.3-5 I/O 直接 (io) 例 MOVW A, i : 0C0H (I/O 直接で読出しを行い , A に格納する命令 ) 実行前 実行後 A 0716 2534 メモリ空間 0000C0H EE 0000C1H FF A 2534 FFEE 413 付録 B 命令 ● 短縮直接アドレス (dir) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) により指定されます。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) により指定されます。図 B.3-6 に例を示します。 図 B.3-6 短縮直接アドレス (dir) 例 MOV S : 20H, A (A の下位 8 ビットの内容を短縮直接アドレス指定方式で書き込む命令 ) A 4455 実行前 DPR 6 6 DTB 7 7 A 4455 実行後 DPR 6 6 1212 メモリ空間 776620H 1212 DTB 7 7 ?? メモリ空間 776620H 12 ● 直接アドレス (addr16) オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 B.3-7 に例を示 します。 図 B.3-7 直接アドレス (addr16) 例 MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 ) 実行前 実行後 414 A 2020 A AABB AABB 0123 DTB 5 5 DTB 5 5 メモリ空間 553B21H 01 553B20H 23 付録 B 命令 ● I/O 直接ビットアドレス (io: bp) 物理アドレス "000000H" ∼ "0000FFH" 内のビットを直接指定します。ビットの位置は ": bp" で表され , 数字の大きいほうが最上位ビット (MSB) , 小さい方が最下位ビット (LSB) となります。図 B.3-8 に例を示します。 図 B.3-8 I/O 直接ビットアドレス (io: bp) 例 SETB i : 0C1H : 0 (I/O 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 0000C1H 実行前 00 メモリ空間 0000C1H 実行後 01 ● 短縮直接ビットアドレス (dir: bp) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) で指定されます。アドレスの bit23 ∼ bit16 は データバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の 大きい方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-9 に例を示しま す。 図 B.3-9 短縮直接ビットアドレス (dir: bp) 例 SETB S : 10H : 0 ( 短縮直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 実行前 DTB 5 5 DPR 6 6 556610H 00 メモリ空間 実行後 DTB 5 5 DPR 6 6 556610H 01 415 付録 B 命令 ● 直接ビットアドレス (addr16: bp) 64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ∼ bit16 はデー タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。 図 B.3-10 直接ビットアドレス (addr16: bp) 例 SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 DTB 5 5 実行前 00 552222H メモリ空間 DTB 5 5 実行後 01 552222H ● ベクタアドレス (#vct) 分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には 4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込 み命令に使用します。図 B.3-11 に例を示します。 図 B.3-11 ベクタアドレス (#vct) 例 CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PC 0 0 0 0 PCB F F 実行後 FFC000H EF FFFFE0H 00 FFFFE1H D0 PC D 0 0 0 PCB F F 416 メモリ空間 CALLV #15 付録 B 命令 表 B.3-2 CALLV ベクタ一覧表 命令 ベクタアドレス L ベクタアドレス H CALLV #0 XXFFFEH XXFFFFH CALLV #1 XXFFFCH XXFFFDH CALLV #2 XXFFFAH XXFFFBH CALLV #3 XXFFF8H XXFFF9H CALLV #4 XXFFF6H XXFFF7H CALLV #5 XXFFF4H XXFFF5H CALLV #6 XXFFF2H XXFFF3H CALLV #7 XXFFF0H XXFFF1H CALLV #8 XXFFEEH XXFFEFH CALLV #9 XXFFECH XXFFEDH CALLV #10 XXFFEAH XXFFEBH CALLV #11 XXFFE8H XXFFE9H CALLV #12 XXFFE6H XXFFE7H CALLV #13 XXFFE4H XXFFE5H CALLV #14 XXFFE2H XXFFE3H CALLV #15 XXFFE0H XXFFE1H ( 注意事項 ) XX には PCB レジスタの値が入ります。 <注意事項> プログラムカウンタバンクレジスタ (PCB) が "FFH" の場合ベクタ領域は INT #vct8 (#0 ∼ #7) のベクタ領域と共有しているため , 使用する場合は注意が必要です。( 表 B.3-2 を参照 してください ) 417 付録 B 命令 B.4 間接アドレッシング 間接アドレッシングでは , 記述したオペランドが示すアドレスのデータで , 間接的に アドレスを指定します。 ■ 間接アドレッシング ● レジスタ間接 (@RWj j=0 ∼ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタックバンクレジスタ (SSB) またはユーザ スタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンク レジスタ (ADB) で示されます。図 B.4-1 に例を示します。 図 B.4-1 レジスタ間接 (@RWj j=0 ∼ 3) 例 MOVW A, @RW1 ( レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 0 F DTB 7 8 ● ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。 オペランド操作後RWjはオペランドデータ長 (バイトの場合は1, ワードの場合は2, ロングワードの場合は 4) 分だけ加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタッ クバンクレジスタ (SSB) またはユーザスタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンクレジスタ (ADB) で示されます。 ポストインクリメントした結果がインクリメント指定したレジスタ自身のアドレス だった場合は , 参照される値はインクリメントした値となり , 命令が書込みだった場合 は命令による書込みが優先されるので , インクリメントするはずだったレジスタは書 込みデータとなります。 図 B.4-2 に例を示します。 418 付録 B 命令 図 B.4-2 ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 例 MOVW A, @RW1+ ( ポストインクリメント付レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 1 1 DTB 7 8 ● ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 汎用レジスタ RWj の内容にディスプレースメントを加算したものをアドレスとしたメ モリをアクセスするアドレッシングです。ディスプレースメントは , バイトとワードの 2 種類があり , 符号付数値として加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1, RW4, RW5 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3, RW7 を用い た場合はシステムスタックバンクレジスタ (SSB) またはユーザスタックバンクレジス タ (USB) で示され , RW2, RW6 を用いた場合はアディショナルデータバンクレジスタ (ADB) で示されます。図 B.4-3 に例を示します。 図 B.4-3 ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 例 MOVW A, @RW1+10H (ディスプレースメント付レジスタ間接で読出しを行い, Aに格納する命令) 実行前 A 0716 2534 (+10H) RW1 D 3 0 F 実行後 DTB 7 8 メモリ空間 78D31FH EE 78D320H FF A 2534 FFEE RW1 D 3 0 F DTB 7 8 419 付録 B 命令 ● ディスプレースメント付ロングレジスタ間接 (RLi+disp8 i=0 ∼ 3) 汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットをア ドレスとしたメモリをアクセスするアドレッシングです。ディスプレースメントは 8 ビットで符号付数値として加算されます。図 B.4-4 に例を示します。 図 B.4-4 ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) 例 MOVW A, @RL2+25H (ディスプレースメント付ロングレジスタ間接で読出しを行い, Aに格納する命令) A 0716 実行前 2534 (+25H) RL2 F 3 8 2 4B02 メモリ空間 824B27H EE 824B28H FF A 2534 FFEE 実行後 RL2 F 3 8 2 4B02 ● ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) (命令のアドレス+4+disp16) で示されるアドレスのメモリをアクセスするアドレッシン グです。ディスプレースメントはワード長です。アドレスの bit23 ∼ bit16 はプログラ ムカウンタバンクレジスタ (PCB) により指定されます。次に示す命令のオペランドア ドレスは , ( 次の命令のアドレス +disp16) とは , みなしませんので注意してください。 • DBNZ eam, rel • CBNE eam, #imm8, rel • MOV eam, #imm8 • DWBNZ eam, rel • CWBNE eam, #imm16, rel • MOVW eam, #imm16 図 B.4-5 に例を示します。 図 B.4-5 ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) 例 MOVW A, @PC+20H ( ディスプレースメント付 PC 間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 PCB C 5 PC 4 5 5 6 実行後 A 2534 FFEE PCB C 5 PC 4 5 5 A 420 +4 C54556H 73 C54557H 9E C54558H 20 C54559H 00 C5455AH ・ ・ ・ +20H C5457AH EE C5457BH FF MOVW A, @PC+20H 付録 B 命令 ● ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 汎用レジスタ RW7 の内容に , RW0 あるいは RW1 を加算したものをアドレスとしたメ モリをアクセスするアドレッシングです。アドレスの bit23 ∼ bit16 はデータバンクレ ジスタ (DTB) で示されます。図 B.4-6 に例を示します。 図 B.4-6 ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 例 MOVW A, @RW1+RW7 ( ベースインデックス付レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 RW1 D 3 0 F WR7 0 1 0 1 実行後 A 2534 RW1 D 3 0 F 2534 + DTB 7 8 メモリ空間 78D410H EE 78D411H FF FFEE DTB 7 8 WR7 0 1 0 1 ● プログラムカウンタ相対分岐アドレス (rel) 分岐先のアドレスはプログラムカウンタ (PC) の値と 8 ビットのディスプレースメント を加算した値となります。加算の結果が 16 ビットを超えた場合は , バンクレジスタの インクリメントまたはデクレメントをせずに , 超えた分は無視されますので , 64K バイ トのバンク内で閉じたアドレスとなります。プログラムカウンタ相対分岐アドレスに よるアドレッシングは , 無条件 / 条件分岐命令に使用します。アドレスの bit23 ∼ bit16 はプログラムカウンタバンクレジスタ (PCB) で示されます。 図 B.4-7 に例を示します。 図 B.4-7 プログラムカウンタ相対分岐アドレス (rel) 例 BRA 10H ( 無条件相対分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3C32H 次の命令 実行後 PC 3 C 2 0 PCB 4 F 4F3C21H 10 4F3C20H 60 BRA 10H 421 付録 B 命令 ● レジスタリスト (rlst) スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 B.4-8 にレ ジスタリストの構成 , 図 B.4-9 に例を示します。 図 B.4-8 レジスタリストの構成 MSB LSB RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0 対応ビットが "1" の場合に設定 , "0" の場合に非設定 MSB: 最上位ビット LSB: 最下位ビット 図 B.4-9 レジスタリスト (rlst) 例 POPW, RW0, RW4 ( レジスタリストで示された複数のワードレジスタに , SP で示されるメモリの データを転送する命令 ) SP 3 4 F A SP 3 4 F E RW0 ×× ×× RW0 02 01 RW1 ×× ×× RW1 ×× ×× RW2 ×× ×× RW2 ×× ×× RW3 ×× ×× RW3 ×× ×× RW4 ×× ×× RW4 04 03 RW5 ×× ×× RW5 ×× ×× RW6 ×× ×× RW6 ×× ×× RW7 ×× ×× RW7 ×× ×× メモリ空間 SP 01 メモリ空間 34FAH 01 34FAH 02 34FBH 02 34FBH 03 34FCH 03 34FCH 34FDH 04 04 34FEH 実行前 422 SP 34FDH 34FEH 実行後 付録 B 命令 ● アキュムレータ間接 (@A) アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを アクセスするアドレス方式です。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。 図 B.4-10 アキュムレータ間接 (@A) 例 MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 ) A 実行前 0716 2534 DTB B B A 実行後 0716 メモリ空間 BB2534H EE BB2535H FF FFEE DTB B B ● アキュムレータ間接分岐アドレス (@A) 分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま す。バンク空間内での分岐先を示し , アドレスの bit23 ∼ bit16 はプログラムカウンタ バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド レスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ 間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11 に例を示します。 図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例 JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 A 6677 PCB 4 F 3B20 メモリ空間 4F3B20H 次の命令 4F3C20H 実行後 PC 3 B 2 0 A 6677 61 JMP @A PCB 4 F 3B20 423 付録 B 命令 ● 間接指定分岐アドレス (@ear) ear で示される番地のワードデータが分岐先アドレスとなります。図 B.4-12 に例を示し ます。 図 B.4-12 間接指定分岐アドレス (@ear) 例 JMP @@RW0 ( レジスタ間接の間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 メモリ空間 217F48H 20 217F49H 3B 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 4F3C20H 73 4F3C21H 08 JMP @@RW0 ● 間接指定分岐アドレス (@eam) eam で示される番地のワードデータが分岐先アドレスとなります。図 B.4-13 に例を示 します。 図 B.4-13 間接指定分岐アドレス (@eam) 例 JMP @RW0 ( レジスタ間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 3 B 2 0 実行後 PC 3 B 2 0 RW0 3 B 2 0 424 メモリ空間 4F3B20H 次の命令 PCB 4 F 4F3C20H 73 4F3C21H 00 JMP @RW0 付録 B 命令 B.5 実行サイクル数 命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令の「サイクル数」の値 と , 条件で決まる「補正値」の値およびプログラムフェッチの「サイクル数」の値 を加算することで得られます。 ■ 実行サイクル数 内蔵 ROM などの 16 ビットバスに接続されたメモリ上のプログラムをフェッチする場 合には , 実行中の命令がワード境界を越えるごとにプログラムフェッチをするため , データのアクセスなどに干渉すると実行サイクル数が増大します。 外部データバスの 8 ビットバスに接続されたメモリ上のプログラムをフェッチする場 合は , 実行中の命令の 1 バイトごとにプログラムフェッチをするため , データのアクセ スなどに干渉すると実行サイクル数が増大します。 CPU 間欠動作時は , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの アクセスをすると , 低消費電力モード制御レジスタの CG0, CG1 ビットで指定されるサ イクル数分 CPU へ供給されるクロックが一時停止しますので , CPU 間欠動作の命令の 実行に要するサイクル数は , 通常の実行サイクル数に , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの「アクセス回数」×一時停止の「サイクル数」の値 を「補正値」として加算してください。 ■ 実行サイクル数計算方法 表 B.5-1 , 表 B.5-2 , 表 B.5-3 に命令実行サイクル数および補正値のデータを示します。 表 B.5-1 各種アドレッシングに対する実行サイクル数 (a) * コード 00 ∼ 07 オペランド Ri RWi RLi 各種アドレッシングに対する 実行サイクル数 各種アドレッシングに 対するレジスタ アクセス回数 命令一覧表に記載 命令一覧表に記載 08 ∼ 0B @RWj 2 1 0C ∼ 0F @RWj+ 4 2 10 ∼ 17 @RWi+disp8 2 1 18 ∼ 1B @RWi+disp16 2 1 1C 1D 1E 1F @RW0+RW7 @RW1+RW7 @PC+disp16 addr16 4 4 2 1 2 2 0 0 *: (a) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用さ れています。" ∼ " と "B" の意味については「B.7 命令一覧表の読み方」を参照 してください。 425 付録 B 命令 表 B.5-2 実サイクル数算出用サイクル数の補正値 (b) バイト *1 オペランド (c) ワード *1 (d) ロング *1 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 内部レジスタ +0 1 +0 1 +0 2 内部メモリ 偶数アドレス +0 1 +0 1 +0 2 内部メモリ 奇数アドレス +0 1 +2 2 +4 4 外部データバス *2 16 ビット偶数アドレス +1 1 +1 1 +2 2 外部データバス *2 16 ビット奇数アドレス +1 1 +4 2 +8 4 外部データバス *2 8 ビット +1 1 +4 2 +8 4 *1: (b), (c), (d) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用され ています。 *2: 外部データバスを使用した場合は , レディ入力および自動レディによりウェイトしたサ イクル数も加算する必要があります。 表 B.5-3 プログラムフェッチサイクル数算出用サイクル数の補正値 命令 バイト境界 ワード境界 内部メモリ − +2 外部データバス 16 ビット − +3 外部データバス 8 ビット +3 − ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 426 付録 B 命令 B.6 実効アドレスフィールド 表 B.6-1 に実効アドレスフィールドを示します。 ■ 実効アドレスフィールド 表 B.6-1 実効アドレスフィールド (1 / 2) コード 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 0A @RW2 0B @RW3 0C @RW0+ 0D @RW1+ 0E @RW2+ 0F @RW3+ 10 @RW0+disp8 11 @RW1+disp8 12 @RW2+disp8 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 16 @RW6+disp8 17 @RW7+disp8 アドレス拡張部の バイト数 * レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 − レジスタ間接 0 ポストインクリメント付 レジスタ間接 0 8 ビットディスプレースメント付 レジスタ間接 1 427 付録 B 命令 表 B.6-1 実効アドレスフィールド (1 / 2) コード *: 428 表記 18 @RW0+disp16 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C アドレス形式 アドレス拡張部の バイト数 * 16 ビットディスプレースメント付 レジスタ間接 2 @RW0+RW7 インデックス付レジスタ間接 0 1D @RW1+RW7 インデックス付レジスタ間接 0 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 2 1F addr16 直接アドレス 2 アドレス拡張部のバイト数は , 「B.8 F2MC-16LX 命令一覧表」の # ( バイト数 ) の "+" に当てはまります。 "#" の意味については「B.7 命令一覧表の読み方」を参照してください。 付録 B 命令 B.7 命令一覧表の読み方 「B.8 F2MC-16LX 命令一覧表」で使用している項目の説明を表 B.7-1 に , 記号の説 明を表 B.7-2 に示します。 ■ 命令の表示記号の説明 表 B.7-1 命令一覧表の項目の説明 項目 ニーモニック 説明 英大文字 , 記号 : アセンブラ上もそのまま表記します。 英小文字 : アセンブラ上では , 書き替えて記述します。 英小文字の後の数 : 命令中のビット幅を示します。 # バイト数を示します。 ∼ サイクル数を示します。 RG 命令実行時のレジスタアクセス回数を示します。 CPU 間欠動作時の補正値を算出するのに使用します。 B オペレーション LH AH 命令実行時の実サイクル数の算出用補正値を示します。 命令実行時の実サイクルは∼欄の数値を加算したものとなります。 命令の動作を示します。 アキュムレータの bit15 ∼ bit8 に対する特殊動作を示します。 Z: 0 を転送する。 X: 符号を拡張して転送する。 − : 転送しない。 アキュムレータの上位 16 ビットに対する特殊動作を示します。 *: AL から AH へ転送する。 − : 転送しない。 Z: AH へ 00H を転送する。 X: AL の符号拡張で AH へ 00H または FFH を転送する。 I I ( 割込み許可 ) , S ( スタック ) , T ( ステッキィビット ) , S N ( ネガティブ ) , Z ( ゼロ ) , V ( オーバフロー ) , C ( キャリー ) T の各フラグの状態を示します。 N *: 命令の実行で変化する。 Z − : 変化しない。 V S: 命令の実行でセットされる。 C R: 命令の実行でリセットされる。 RMW リードモディファイライト命令 (1 命令でメモリなどからデータを読 み出し , メモリへ書き込む ) であるかどうか示します。 *: リードモディファイライト命令である。 − : リードモディファイライト命令ではない。 ( 注意事項 ) 読み書きで意味の異なるアドレスには使用できません。 429 付録 B 命令 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 A 32 ビットアキュムレータ 命令により , 使用されるビット長が変わります。 バイト : AL の下位 8 ビット ワード : AL の 16 ビット ロング : AL: AH の 32 ビット AH A の上位 16 ビット AL A の下位 16 ビット SP スタックポインタ (USP or SSP) PC プログラムカウンタ PCB プログラムカウンタバンクレジスタ DTB データバンクレジスタ ADB アディショナルデータバンクレジスタ SSB システムスタックバンクレジスタ USB ユーザスタックバンクレジスタ SPB カレントスタックバンクレジスタ (SSB or USB) DPR ダイレクトページレジスタ brg1 DTB, ADB, SSB, USB, DPR, PCB, SPB brg2 DTB, ADB, SSB, USB, DPR, SPB Ri R0, R1, R2, R3, R4, R5, R6, R7 RWi RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 RWj RW0, RW1, RW2, RW3 RLi RL0, RL1, RL2, RL3 dir 短縮直接アドレス指定 addr16 直接アドレス指定 addr24 物理直接アドレス指定 ad24 0 ∼ 15 addr24 の bit0 ∼ bit15 ad24 16 ∼ 23 addr24 の bit16 ∼ bit23 io I/O 領域 (000000H ∼ 0000FFH) #imm4 4 ビット即値データ #imm8 8 ビット即値データ #imm16 16 ビット即値データ #imm32 32 ビット即値データ ext (imm8) 430 意味 8 ビット即値データを符号拡張した 16 ビットデータ 付録 B 命令 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 意味 disp8 8 ビットディスプレースメント disp16 16 ビットディスプレースメント bp ビットオフセット値 vct4 ベクタ番号 (0 ∼ 15) vct8 ベクタ番号 (0 ∼ 255) ()b ビットアドレス rel PC 相対分岐指定 ear 実効アドレス指定 ( コード 00 ∼ 07) eam 実効アドレス指定 ( コード 08 ∼ 1F) rlst レジスタ並び 431 付録 B 命令 B.8 F2MC-16LX 命令一覧表 F2MC-16LX で使用している命令の一覧を示します。 ■ F2MC-16LX 命令一覧表 表 B.8-1 転送系命令 ( バイト ) 41 命令 # ∼ RG B LH AH I S T N Z V C MOV A,dir 2 3 0 (b) byte (A) ← (dir) Z * - - - * * - - - MOV A,addr16 3 4 0 (b) byte (A) ← (addr16) Z * - - - * * - - - MOV A,Ri 1 2 1 0 byte (A) ← (Ri) Z * - - - * * - - - MOV A,ear 2 2 1 0 byte (A) ← (ear) Z * - - - * * - - - MOV A,eam 2+ 3 + (a) 0 (b) byte (A) ← (eam) Z * - - - * * - - - MOV A,io 2 3 0 (b) byte (A) ← (io) Z * - - - * * - - - MOV A,#imm8 2 2 0 0 byte (A) ← imm8 Z * - - - * * - - - MOV A,@A 2 3 0 (b) byte (A) ← ((A)) Z - - - - * * - - - MOV A,@RLi+disp8 3 10 2 (b) byte (A) ← ((RLi)+disp8) Z * - - - * * - - - MOVN A,#imm4 1 1 0 0 byte (A) ← imm4 Z * - - - R * - - - MOVX A,dir 2 3 0 (b) byte (A) ← (dir) X * - - - * * - - - MOVX A,addr16 3 4 0 (b) byte (A) ← (addr16) X * - - - * * - - - MOVX A,Ri 2 2 1 0 byte (A) ← (Ri) X * - - - * * - - - MOVX A,ear 2 2 1 0 byte (A) ← (ear) X * - - - * * - - - MOVX A,eam 2+ 3 + (a) 0 (b) byte (A) ← (eam) X * - - - * * - - - MOVX A,io 2 3 0 (b) byte (A) ← (io) X * - - - * * - - - MOVX A,#imm8 2 2 0 0 byte (A) ← imm8 X * - - - * * - - - MOVX A,@A 2 3 0 (b) byte (A) ← ((A)) X - - - - * * - - - MOVX A,@RWi+disp8 2 5 1 (b) byte (A) ← ((RWi)+disp8) X * - - - * * - - - MOVX A,@RLi+disp8 3 10 2 (b) byte (A) ← ((RLi)+disp8) X * - - - * * - - - MOV dir,A 2 3 0 (b) byte (dir) ← (A) - - - - - * * - - - MOV addr16,A 3 4 0 (b) byte (addr16) ← (A) - - - - - * * - - - MOV Ri,A 1 2 1 0 byte (Ri) ← (A) - - - - - * * - - - MOV ear,A 2 2 1 0 byte (ear) ← (A) - - - - - * * - - - MOV eam,A 2+ 3 + (a) 0 (b) byte (eam) ← (A) - - - - - * * - - - ニーモニック オペレーション RMW MOV io,A 2 3 0 (b) byte (io) ← (A) - - - - - * * - - - MOV @RLi+disp8,A 3 10 2 (b) byte ((RLi)+disp8) ← (A) - - - - - * * - - - MOV Ri,ear 2 3 2 0 byte (Ri) ← (ear) - - - - - * * - - - MOV Ri,eam 2+ 4 + (a) 1 (b) byte (Ri) ← (eam) - - - - - * * - - - MOV ear,Ri 2 4 2 0 byte (ear) ← (Ri) - - - - - * * - - - MOV eam,Ri 2+ 5 + (a) 1 (b) byte (eam) ← (Ri) - - - - - * * - - - MOV Ri,#imm8 2 2 1 0 byte (Ri) ← imm8 - - - - - * * - - - MOV io,#imm8 3 5 0 (b) byte (io) ← imm8 - - - - - - - - - - MOV dir,#imm8 3 5 0 (b) byte (dir) ← imm8 - - - - - - - - - - MOV ear,#imm8 3 2 1 0 byte (ear) ← imm8 - - - - - * * - - - MOV eam,#imm8 3+ 4 + (a) 0 (b) byte (eam) ← imm8 - - - - - - - - - - MOV @AL,AH 2 3 0 (b) byte ((A)) ← (AH) - - - - - * * - - - XCH A,ear 2 4 2 0 byte (A) ←→ (ear) Z - - - - - - - - - XCH A,eam 2+ 5 + (a) 0 Z - - - - - - - - - XCH Ri,ear 2 7 4 - - - - - - - - - - XCH Ri,eam 2+ 9 + (a) 2 - - - - - - - - - - 2 × (b) byte (A) ←→ (eam) 0 byte (Ri) ←→ (ear) 2 × (b) byte (Ri) ←→ (eam) ( 注意事項 ) 表中の (a), (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 432 付録 B 命令 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVW A,dir 2 3 0 (c) word (A) ← (dir) - * - - - * * - - - MOVW A,addr16 3 4 0 (c) word (A) ← (addr16) - * - - - * * - - - MOVW A,SP 1 1 0 0 word (A) ← (SP) - * - - - * * - - - MOVW A,RWi 1 2 1 0 word (A) ← (RWi) - * - - - * * - - - MOVW A,ear 2 2 1 0 word (A) ← (ear) - * - - - * * - - - MOVW A,eam 2+ 3 + (a) 0 (c) word (A) ← (eam) - * - - - * * - - - MOVW A,io 2 3 0 (c) word (A) ← (io) - * - - - * * - - - MOVW A,@A 2 3 0 (c) word (A) ← ((A)) - - - - - * * - - MOVW A,#imm16 3 2 0 0 word (A) ← imm16 - * - - - * * - - - MOVW A,@RWi+disp8 2 5 1 (c) word (A) ← ((RWi)+disp8) - * - - - * * - - - MOVW A,@RLi+disp8 3 10 2 (c) word (A) ← ((RLi)+disp8) - * - - - * * - - - MOVW dir,A 2 3 0 (c) word (dir) ← (A) - - - - - * * - - - MOVW addr16,A 3 4 0 (c) word (addr16) ← (A) - - - - - * * - - - MOVW SP,A 1 1 0 0 word (SP) ← (A) - - - - - * * - - - MOVW RWi,A 1 2 1 0 word (RWi) ← (A) - - - - - * * - - - MOVW ear,A 2 2 1 0 word (ear) ← (A) - - - - - * * - - - MOVW eam,A 2+ 3 + (a) 0 (c) word (eam) ← (A) - - - - - * * - - - MOVW io,A 2 3 0 (c) word (io) ← (A) - - - - - * * - - - MOVW @RWi+disp8,A 2 5 1 (c) word ((RWi)+disp8) ← (A) - - - - - * * - - MOVW @RLi+disp8,A 3 10 2 (c) word ((RLi)+disp8) ← (A) - - - - - * * - - - MOVW RWi,ear 2 3 2 0 word (RWi) ← (ear) - - - - - * * - - - MOVW RWi,eam 2+ 4 + (a) 1 (c) word (RWi) ← (eam) - - - - - * * - - - MOVW ear,RWi 2 4 2 0 word (ear) ← (RWi) - - - - - * * - - - MOVW eam,RWi 2+ 5 + (a) 1 (c) word (eam) ← (RWi) - - - - - * * - - - MOVW RWi,#imm16 3 2 1 0 word (RWi) ← imm16 - - - - - * * - - MOVW io,#imm16 4 5 0 (c) word (io) ← imm16 - - - - - - - - - - MOVW ear,#imm16 4 2 1 0 word (ear) ← imm16 - - - - - * * - - - MOVW eam,#imm16 4+ 4 + (a) 0 (c) word (eam) ← imm16 - - - - - - - - - - MOVW @AL,AH 2 3 0 (c) word ((A)) ← (AH) - - - - - * * - - - XCHW A,ear 2 4 2 0 word (A) ←→ (ear) - - - - - - - - - - XCHW A,eam 2+ 5 + (a) 0 2 × (c) word (A) ←→ (eam) - - - - - - - - - - XCHW RWi, ear 2 7 4 0 word (RWi) ←→ (ear) - - - - - - - - - - XCHW RWi, eam 2+ 9 + (a) 2 2 × (c) word (RWi) ←→ (eam) - - - - - - - - - - MOVL A,ear 2 4 2 0 long (A) ← (ear) - - - - - * * - - - MOVL A,eam 2+ 5 + (a) 0 (d) long (A) ← (eam) - - - - - * * - - - MOVL A,#imm32 5 3 0 0 long (A) ← imm32 - - - - - * * - - - MOVL ear,A 2 4 2 0 long (ear) ← (A) - - - - - * * - - - MOVL eam,A 2+ 5 + (a) 0 (d) long(eam) ← (A) - - - - - * * - - - ( 注意事項 ) 表中の (a), (c), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 433 付録 B 命令 表 B.8-3 加減算命令 ( バイト・ワード・ロングワード ) 42 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW ADD A,#imm8 2 2 0 0 byte (A) ← (A) + imm8 Z - - - - * * * * - ADD A,dir 2 5 0 (b) byte (A) ← (A) + (dir) Z - - - - * * * * - ADD A,ear 2 3 1 0 byte (A) ← (A) + (ear) Z - - - - * * * * - ADD A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam) Z - - - - * * * * - ADD ear,A 2 3 2 0 byte (ear) ← (ear) + (A) - - - - - * * * * - ADD eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) + (A) Z - - - - * * * * * ADDC A 1 2 0 0 byte (A) ← (AH) + (AL) + (C) Z - - - - * * * * - ADDC A,ear 2 3 1 0 byte (A) ← (A) + (ear)+ (C) Z - - - - * * * * - ADDC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam)+ (C) Z - - - - * * * * - ADDDC A 1 3 0 0 byte (A) ← (AH) + (AL) + (C) (10 進数 ) Z - - - - * * * * - SUB A,#imm8 2 2 0 0 byte (A) ← (A) - imm8 Z - - - - * * * * - SUB A,dir 2 5 0 (b) byte (A) ← (A) - (dir) Z - - - - * * * * - SUB A,ear 2 3 1 0 byte (A) ← (A) - (ear) Z - - - - * * * * - SUB A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) Z - - - - * * * * - SUB ear,A 2 3 2 0 byte (ear) ← (ear) - (A) - - - - - * * * * - SUB eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) - (A) - - - - - * * * * * SUBC A 1 2 0 0 byte (A) ← (AH) - (AL) - (C) Z - - - - * * * * - SUBC A,ear 2 3 1 0 byte (A) ← (A) - (ear) - (C) Z - - - - * * * * - SUBC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) - (C) Z - - - - * * * * - SUBDC A 1 3 0 0 byte (A) ← (AH) - (AL) - (C) (10 進数 ) Z - - - - * * * * - ADDW A 1 2 0 0 word (A) ← (AH) + (AL) - - - - - * * * * - ADDW A,ear 2 3 1 0 word (A) ← (A) + (ear) - - - - - * * * * - ADDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) - - - - - * * * * - ADDW A,#imm16 3 2 0 0 word (A) ← (A) + imm16 - - - - - * * * * - word (ear) ← (ear) + (A) - - - - - * * * * - word (eam) ← (eam) + (A) - - - - - * * * * * ADDW ear,A 2 3 2 0 ADDW eam,A 2+ 5+(a) 0 2 × (c) ADDCW A,ear 2 3 1 0 word (A) ← (A) + (ear) + (C) - - - - - * * * * - ADDCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) + (C) - - - - - * * * * - SUBW A 1 2 0 0 word (A) ← (AH) - (AL) - - - - - * * * * - SUBW A,ear 2 3 1 0 word (A) ← (A) - (ear) - - - - - * * * * - SUBW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - - - - - * * * * - SUBW A,#imm16 3 2 0 0 word (A) ← (A) - imm16 - - - - - * * * * - word (ear) ← (ear) - (A) - - - - - * * * * - word (eam) ← (eam) - (A) - - - - - * * * * * SUBW ear,A 2 3 2 0 SUBW eam,A 2+ 5+(a) 0 2 × (c) SUBCW A,ear 2 3 1 0 word (A) ← (A) - (ear) - (C) - - - - - * * * * - SUBCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - (C) - - - - - * * * * - ADDL A,ear 2 6 2 0 long (A) ← (A) + (ear) - - - - - * * * * - ADDL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) + (eam) - - - - - * * * * - ADDL A,#imm32 5 4 0 0 long (A) ← (A) + imm32 - - - - - * * * * - SUBL A,ear 2 6 2 0 long (A) ← (A) - (ear) - - - - - * * * * - SUBL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) - (eam) - - - - - * * * * - SUBL A,#imm32 5 4 0 0 long (A) ← (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 434 付録 B 命令 表 B.8-4 増減算命令 ( バイト・ワード・ロングワード ) 12 命令 ニーモニック # ∼ RG B INC ear 2 3 2 0 INC eam 2+ 5+(a) 0 2 × (b) DEC ear 2 3 2 0 DEC eam 2+ 5+(a) 0 2 × (b) INCW ear 2 3 2 0 INCW eam 2+ 5+(a) 0 2 × (c) DECW ear 2 3 2 0 DECW eam 2+ 5+(a) 0 2 × (c) INCL ear 2 7 4 0 INCL eam 2+ 9+(a) 0 2 × (d) DECL ear 2 7 4 0 DECL eam 2+ 9+(a) 0 2 × (d) オペレーション LH AH I S T N Z V C RMW byte (ear) <-- (ear) + 1 - - - - - * * * - - byte (eam) ← (eam) + 1 - - - - - * * * - * byte (ear) ← (ear) - 1 - - - - - * * * - - byte (eam) ← (eam) - 1 - - - - - * * * - * word (ear) ← (ear) + 1 - - - - - * * * - - word (eam) ← (eam) + 1 - - - - - * * * - * word (ear) ← (ear) - 1 - - - - - * * * - - word (eam) ← (eam) - 1 - - - - - * * * - * long (ear) ← (ear) + 1 - - - - - * * * - - long (eam) ← (eam) + 1 - - - - - * * * - * long (ear) ← (ear) - 1 - - - - - * * * - - long (eam) ← (eam) - 1 - - - - - * * * - * LH AH I S T N Z V C RMW ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-5 比較命令 ( バイト・ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B オペレーション CMP A 1 1 0 0 byte (AH) - (AL) - - - - - * * * * - CMP A,ear 2 2 1 0 byte (A) - (ear) - - - - - * * * * - CMP A,eam 2+ 3+(a) 0 (b) byte (A) - (eam) - - - - - * * * * - CMP A,#imm8 2 2 0 0 byte (A) - imm8 - - - - - * * * * - CMPW A 1 1 0 0 word (AH) - (AL) - - - - - * * * * - CMPW A,ear 2 2 1 0 word (A) - (ear) - - - - - * * * * - CMPW A,eam 2+ 3+(a) 0 (c) word (A) - (eam) - - - - - * * * * - CMPW A,#imm16 3 2 0 0 word (A) - imm16 - - - - - * * * * - CMPL A,ear 2 6 2 0 long (A) - (ear) - - - - - * * * * - CMPL A,eam 2+ 7+(a) 0 (d) long (A) - (eam) - - - - - * * * * - CMPL A,#imm32 5 3 0 0 long (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 435 付録 B 命令 表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIVU A 1 *1 0 0 word (AH) / byte (AL) 商→ byte (AL) 余り→ byte (AH) - - - - - - - * * - DIVU A,ear 2 *2 1 0 word (A) / byte (ear) 商→ byte (A) 余り→ byte (ear) - - - - - - - * * - DIVU A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) - - - - - - - * * - DIVUW A,ear 2 *4 1 0 long (A) / word (ear) 商→ word (A) 余り→ word (ear) - - - - - - - * * - DIVUW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MULU MULU A 1 *8 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - A,ear 2 *9 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MULU A,eam 2+ *10 0 (b) MULUW A 1 *11 0 0 MULUW A,ear 2 *12 1 MULUW A,eam 2+ *13 0 オペレーション byte (A) * byte (eam) → word (A) - - - - - - - - - - word (AH) * word (AL) → Long (A) - - - - - - - - - - 0 word (A) * word (ear) → Long (A) - - - - - - - - - - (c) word (A) * word (eam) → Long (A) - - - - - - - - - - *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 7 正常の場合 , 15 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 8 正常の場合 , 16 *3:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 9+(a) 正常の場合 , 19+(a) *4:ゼロディバイトの場合 , 4 オーバフローの場合 , 7 正常の場合 , 22 *5:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 8+(a) 正常の場合 , 26+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 byte(AH) がゼロでない場合 , 7 *9:byte(ear) がゼロの場合 , 4 byte(ear) がゼロでない場合 , 8 *10:byte(eam) がゼロの場合 , 5+(a) byte(eam) がゼロでない場合 , 9+(a) *11:word(AH) がゼロの場合 , 3 word(AH) がゼロでない場合 , 11 *12:word(ear) がゼロの場合 , 4 word(ear) がゼロでない場合 , 12 *13:word(eam) がゼロの場合 , 5+(a) word(eam) がゼロでない場合 , 13+(a) ( 注意事項 ) 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 436 付録 B 命令 表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIV A 2 *1 0 0 word (AH) / byte (AL) 商 --> byte (AL) 余り→ byte (AH) Z - - - - - - * * - DIV A,ear 2 *2 1 0 word (A) / byte (ear) 商 --> byte (A) 余り→ byte (ear) Z - - - - - - * * - DIV A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) Z - - - - - - * * - DIVW A,ear 2 *4 1 0 long (A) / word (ear) 商 --> word (A) 余り→ word (ear) - - - - - - - * * - DIVW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MUL A 2 *8 MUL A,ear 2 *9 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MUL A,eam 2+ *10 MULW A 2 *11 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - MULW A,ear 2 - *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - MULW A,eam 2+ *13 0 (c) word (A) * word (eam) → Long (A) - - - - - - - - - - オペレーション *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 8 or 18 正常の場合 , 18 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 11 or 22 正常の場合 , 23 *3:ゼロディバイトの場合 , 5+(a) オーバフローの場合 12+(a) or 23+(a) 正常の場合 , 24+(a) *4:被除数が正 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 30 正常の場合 , 31 被除数が負 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 31 正常の場合 , 32 *5:被除数が正 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 12+(a) or 31+(a) 正常の場合 , 32+(a) 被除数が負 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 13+(a) or 32+(a) 正常の場合 , 33+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 結果が正の場合 , 12 結果が負の場合 , 13 *9:byte(ear) がゼロの場合 , 4 結果が正の場合 , 13 結果が負の場合 , 14 *10:byte(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 14+(a) 結果が負の場合 , 15+(a) *11:word(AH) がゼロの場合 , 3 結果が正の場合 , 16 結果が負の場合 , 19 *12:word(ear) がゼロの場合 , 4 結果が正の場合 , 17 結果が負の場合 , 20 *13:word(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 18+(a) 結果が負の場合 , 21+(a) ( 注意事項 ) ・ DIV, DIVW 命令でオーバフロー発生時の実行サイクル数に 2 種類ありますが , 演算前と演算後に検出する場合が あるためです。 DIV, DIVW 命令でオーバフロー発生時には , AL の内容は破壊されます。 ・ 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 437 付録 B 命令 表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令 ニーモニック # ∼ RG B AND A,#imm8 2 2 0 0 AND A,ear 2 3 1 0 LH AH I S T N Z V C RMW byte (A) ← (A) and imm8 - - - - - * * R - - byte (A) ← (A) and (ear) - - - - - * * R - - オペレーション AND A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) and (eam) - - - - - * * R - - AND ear,A 2 3 2 0 byte (ear) ← (ear) and (A) - - - - - * * R - - AND eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) and (A) - - - - - * * R - * OR A,#imm8 2 2 0 0 byte (A) ← (A) or imm8 - - - - - * * R - - OR A,ear 2 3 1 0 byte (A) ← (A) or (ear) - - - - - * * R - - OR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) or (eam) - - - - - * * R - - OR ear,A 2 3 2 0 byte (ear) ← (ear) or (A) - - - - - * * R - - OR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) or (A) - - - - - * * R - * XOR A,#imm8 2 2 0 0 byte (A) ← (A) xor imm8 - - - - - * * R - - XOR A,ear 2 3 1 0 byte (A) ← (A) xor (ear) - - - - - * * R - - XOR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) xor (eam) - - - - - * * R - - XOR ear,A 2 3 2 0 byte (ear) ← (ear) xor (A) - - - - - * * R - - XOR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) xor (A) - - - - - * * R - * NOT A 1 2 0 0 byte (A) ← not (A) - - - - - * * R - - NOT ear 2 3 2 0 byte (ear) ← not (ear) - - - - - * * R - - NOT eam 2+ 5+(a) 0 2 × (b) byte (eam) ← not (eam) - - - - - * * R - * ANDW A 1 2 0 0 word (A) ← (AH) and (A) - - - - - * * R - - ANDW A,#imm16 3 2 0 0 word (A) ← (A) and imm16 - - - - - * * R - - ANDW A,ear 2 3 1 0 word (A) ← (A) and (ear) - - - - - * * R - - ANDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) and (eam) - - - - - * * R - - ANDW ear,A 2 3 2 0 word (ear) ← (ear) and (A) - - - - - * * R - - ANDW eam,A 2+ 5+(a) 0 2 × (c) word (eam) ← (eam) and (A) - - - - - * * R - * ORW A 1 2 0 0 word (A) ← (AH) or (A) - - - - - * * R - - ORW A,#imm16 3 2 0 0 word (A) ← (A) or imm16 - - - - - * * R - - ORW A,ear 2 3 1 0 word (A) ← (A) or (ear) - - - - - * * R - - ORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) or (eam) - - - - - * * R - - word (ear) ← (ear) or (A) - - - - - * * R - - word (eam) ← (eam) or (A) - - - - - * * R - * ORW ear,A 2 3 2 0 ORW eam,A 2+ 5+(a) 0 2 × (c) XORW A 1 2 0 0 word (A) ← (AH) xor (A) - - - - - * * R - - XORW A,#imm16 3 2 0 0 word (A) ← (A) xor imm16 - - - - - * * R - - XORW A,ear 2 3 1 0 word (A) ← (A) xor (ear) - - - - - * * R - - XORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) xor (eam) - - - - - * * R - - word (ear) ← (ear) xor (A) - - - - - * * R - - word (eam) ← (eam) xor (A) - - - - - * * R - * - XORW ear,A 2 3 2 0 XORW eam,A 2+ 5+(a) 0 2 × (c) NOTW A 1 2 0 0 word (A) ← not (A) - - - - - * * R - NOTW ear 2 3 2 0 word (ear) ← not (ear) - - - - - * * R - - NOTW eam 2+ 5+(a) 0 2 × (c) word (eam) ← not (eam) - - - - - * * R - * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 438 付録 B 命令 表 B.8-9 論理 2 演算命令 ( ロングワード ) 6 命令 # ∼ RG B ANDL A,ear 2 6 2 0 ANDL A,eam 2+ 7+(a) 0 (d) ORL A,ear 2 6 2 0 long (A) ← (A) or (ear) - - - - - * * R - - ORL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) or (eam) - - - - - * * R - - long (A) ← (A) xor (ear) - - - - - * * R - - long (A) ← (A) xor (eam) - - - - - * * R - - LH AH I S T N Z V C RMW ニーモニック XORL A,ear 2 6 2 0 XORL A,eam 2+ 7+(a) 0 (d) LH AH I S T N Z V C RMW long (A) ← (A) and (ear) - - - - - * * R - - long (A) ← (A) and (eam) - - - - - * * R - - オペレーション ( 注意事項 ) 表中の (a), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-10 符号反転命令 ( バイト・ワード ) 6 命令 ニーモニック # ∼ RG B 1 2 0 0 byte (A) ← 0 - (A) X - - - - * * * * byte (ear) ← 0 - (ear) - - - - - * * * * - - - - - * * * * * - オペレーション NEG A - NEG ear 2 3 2 0 NEG eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 0 - (eam) - NEGW A 1 2 0 0 word (A) ← 0 - (A) - - - - - * * * * NEGW ear 2 3 2 0 word (ear) ← 0 - (ear) - - - - - * * * * - NEGW eam 2+ 5+(a) 0 2 × (c) word (eam) ← 0 - (eam) - - - - - * * * * * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-11 ノーマライズ命令 ( ロングワード ) 1 命令 ニーモニック NRML A,R0 # ∼ RG B オペレーション LH AH I S T N Z V C RMW 2 *1 1 0 long (A) ← 最初に "1" が立っていた所まで左 シフトする byte (R0) ← その場合のシフト回数 - - - - - - * - - - *1:アキュムレータがすべて "0" であった場合は , 4 "0" 以外であった場合は , 6+(R0) 439 付録 B 命令 表 B.8-12 シフト命令 ( バイト・ワード・ロングワード ) 18 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW RORC A 2 2 0 0 byte (A) ← 右ローテートキャリー付 - - - - - * * - * - ROLC A 2 2 0 0 byte (A) ← 左ローテートキャリー付 - - - - - * * - * - RORC ear 2 3 2 0 byte (ear) ← 右ローテートキャリー付 RORC eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 右ローテートキャリー付 ROLC ear 2 3 2 ROLC eam 2+ 5+(a) 0 0 ASR A,R0 2 *1 1 0 LSR A,R0 2 *1 1 0 LSL A,R0 2 *1 1 ASRW A 1 2 LSRW A/SHRW A 1 LSLW A/SHLW A 1 ASRW A,R0 2 *1 LSRW A,R0 2 *1 LSLW A,R0 2 *1 ASRL A,R0 2 *2 LSRL A,R0 2 LSLL A,R0 2 - - - - * * - * - - - - - * * - * * - - - - - * * - * - - - - - - * * - * * byte (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - byte (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 0 byte (A) ← ロジカル左バレルシフト (A,R0) - - - - - * * - * - 0 0 word (A) ← 算術右シフト (A,1 ビット ) - - - - * * * - * - 2 0 0 word (A) ← ロジカル右シフト (A,1 ビット ) - - - - * R * - * - 2 0 0 word (A) ← ロジカル左シフト (A,1 ビット ) - - - - - * * - * - 1 0 word (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ←ロジカル左バレルシフト (A,R0) - - - - - * * - * - 1 0 long (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) <-- ロジカル左バレルシフト (A,R0) - - - - - * * - * - byte (ear) ← 左ローテートキャリー付 2 × (b) byte (eam) ← 左ローテートキャリー付 *1:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 5+(R0) *2:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 6+(R0) ( 注意事項 ) 表中の (a),(b) は , 表 B.5-1 および表 B.5-2 を参照してください。 440 - 付録 B 命令 表 B.8-13 分岐命令 1 31 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW BZ/BEQ rel 2 *1 0 0 (Z) = 1 の場合分岐 - - - - - - - - - - BNZ/BNE rel 2 *1 0 0 (Z) = 0 の場合分岐 - - - - - - - - - - BC/BLO rel 2 *1 0 0 (C) = 1 の場合分岐 - - - - - - - - - - BNC/BHS rel 2 *1 0 0 (C) = 0 の場合分岐 - - - - - - - - - - BN rel 2 *1 0 0 (N) = 1 の場合分岐 - - - - - - - - - - BP rel 2 *1 0 0 (N) = 0 の場合分岐 - - - - - - - - - - BV rel 2 *1 0 0 (V) = 1 の場合分岐 - - - - - - - - - - BNV rel 2 *1 0 0 (V) = 0 の場合分岐 - - - - - - - - - - BT rel 2 *1 0 0 (T) = 1 の場合分岐 - - - - - - - - - - BNT rel 2 *1 0 0 (T) = 0 の場合分岐 - - - - - - - - - - BLT rel 2 *1 0 0 (V) xor (N) = 1 の場合分岐 - - - - - - - - - - BGE rel 2 *1 0 0 (V) xor (N) = 0 の場合分岐 - - - - - - - - - - BLE rel 2 *1 0 0 ((V) xor (N)) or (Z) = 1 の場合分岐 - - - - - - - - - - BGT rel 2 *1 0 0 ((V) xor (N)) or (Z) = 0 の場合分岐 - - - - - - - - - - BLS rel 2 *1 0 0 (C) or (Z) = 1 の場合分岐 - - - - - - - - - - BHI rel 2 *1 0 0 (C) or (Z) = 0 の場合分岐 - - - - - - - - - - BRA rel 2 *1 0 0 無条件分岐 - - - - - - - - - - JMP @A 1 2 0 0 word (PC) ← (A) - - - - - - - - - - JMP addr16 3 3 0 0 word (PC) ← addr16 - - - - - - - - - - JMP @ear 2 3 1 0 word (PC) ← (ear) - - - - - - - - - - JMP @eam 2+ 4+(a) 0 (c) word (PC) ← (eam) - - - - - - - - - - JMPP @ear 注 1) 2 5 2 0 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - JMPP @eam 注 1) 2+ 6+(a) 0 (d) word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - JMPP addr24 4 4 0 0 CALL @ear 注 2) 2 6 1 (c) CALL @eam word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (PC) ← (ear) - - - - - - - - - - 2 × (c) word (PC) ← (eam) 注 2) 2+ 7+(a) 0 CALL addr16 注 3) 3 6 0 CALLV #vct4 注 3) 1 7 0 2 × (c) ベクタコール命令 CALLP @ear 注 4) 2 10 2 2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23 11+(a) 0 10 0 CALLP @eam 注 4) 2+ CALLP addr24 注 5) 4 (c) *2 word (PC) ← addr16 word (PC) ← (eam)0-15, (PCB) ← (eam)16-23 2 × (c) word (PC) ← addr0-15, (PCB) ← addr16-23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *1:分岐が行われる場合 , 4 行われない場合 , 3 *2:3 × (c)+(b) 注 1) 分岐先アドレスの読込み (word) 注 2) W:スタックへの退避 (word), R:分岐先アドレスの読込み (word) 注 3) スタックへの退避 (word) 注 4) W:スタックへの退避 (long), R:分岐先アドレスの読込み (long) 注 5) スタックへの退避 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 441 付録 B 命令 表 B.8-14 分岐命令 2 19 命令 ニーモニック # ∼ RG B CBNE A,#imm8,rel 3 *1 0 0 byte (A) ≠ imm8 で分岐 - - - - - * * * * - CWBNE A,#imm16,rel 4 *1 0 0 word (A) ≠ imm16 で分岐 - - - - - * * * * - CBNE ear,#imm8,rel 4 *2 1 0 byte (ear) ≠ imm8 で分岐 - - - - - * * * * - CBNE eam,#imm8,rel 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - CWBNE eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - DBNZ ear,rel 3 *5 2 byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - DBNZ eam,rel 3+ *6 2 - - - - - * * * - * DWBNZ ear,rel 3 *5 2 DWBNZ eam,rel 3+ *6 2 0 オペレーション 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 0 LH AH I S T N Z V C RMW - - - - - * * * - - 2 × (c) word (eam) = (eam) - 1, (eam) ≠ 0 で分岐 - - - - - * * * - * word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 INT #vct8 2 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - INT addr16 3 16 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INTP addr24 4 17 0 6 × (c) ソフトウェア割込み - - R S - - - - - - 8 × (c) ソフトウェア割込み - - R S - - - - - - - * * * * * * * - INT9 1 20 0 RETI 1 *8 0 *7 割込みからの復帰 - 2 6 0 (c) 関数の入口で , 旧フレームポインタをスタッ クに保存し , 新フレームポインタの設定 , お よびローカルポインタの領域を確保する - - - - - - - - - - 1 5 0 (c) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - LINK #imm8 UNLINK RET RETP *1:分岐が行われる場合 , 5 行われない場合 , 4 *2:分岐が行われる場合 , 13 行われない場合 , 12 *3:分岐が行われる場合 , 7+(a) 行われない場合 , 6+(a) *4:分岐が行われる場合 , 8 行われない場合 , 7 *5:分岐が行われる場合 , 7 行われない場合 , 6 *6:分岐が行われる場合 , 8+(a) 行われない場合 , 7+(a) *7:次の割込み要求へ分岐する場合 , 3 × (b)+2 × (c) 今の割込みから復帰の場合 , 6 × (c) *8:次の割込みへ分岐する場合 , 15 今の割込みから復帰する場合 , 17 注 1) CBNE / CWBNE 命令では , RWj+ のアドレッシングモードは , 使用しないでください。 注 2) スタックからの復帰 (word) 注 3) スタックからの復帰 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 442 付録 B 命令 表 B.8-15 その他制御命令 ( バイト・ワード・ロングワード ) 28 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW PUSHW A 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (A) - - - - - - - - - - PUSHW AH 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (AH) - - - - - - - - - - PUSHW PS 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (PS) - - - - - - - - - - PUSHW rlst 2 *3 *5 *4 (SP) ← (SP) - 2n, ((SP)) ← (rlst) - - - - - - - - - - POPW A 1 3 0 (c) word (A) ← ((SP)), (SP) ← (SP) + 2 - * - - - - - - - - POPW AH 1 3 0 (c) word (AH) ← ((SP)), (SP) ← (SP) + 2 - - - - - - - - - - POPW PS 1 4 0 (c) word (PS) ← ((SP)), (SP) ← (SP) + 2 - - * * * * * * * - POPW rlst 2 *2 *5 *4 (rlst) ← ((SP)), (SP) ← (SP) + 2n - - - - - - - - - - JCTX @A 1 14 0 6 × (c) コンテキストスイッチ命令 - - * * * * * * * - AND CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) and imm8 - - * * * * * * * - OR CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) or imm8 - - * * * * * * * - MOV RP,#imm8 2 2 0 0 byte (RP) ← imm8 - - - - - - - - - - MOV ILM,#imm8 2 2 0 0 byte (ILM) ← imm8 - - - - - - - - - - MOVEA RWi,ear 2 3 1 0 word (RWi) ← ear - - - - - - - - - - MOVEA RWi,eam 2+ 2+(a) 1 0 word (RWi) ← eam - - - - - - - - - - MOVEA A,ear 2 1 0 0 word (A) ← ear - * - - - - - - - - MOVEA A,eam 2+ 1+(a) 0 0 word (A) ← eam - * - - - - - - - - ADDSP #imm8 2 3 0 0 word (SP) ← (SP) + ext(imm8) - - - - - - - - - - ADDSP #imm16 3 3 0 0 word (SP) ← (SP) + imm16 - - - - - - - - - - MOV A,brg1 2 *1 0 0 byte (A) ← (brg1) Z * - - - * * - - - MOV brg2,A 2 1 0 0 byte (brg2) ← (A) - - - - - * * - - - NOP 1 1 0 0 ノーオペレーション - - - - - - - - - - ADB 1 1 0 0 AD 空間アクセス用プリフィックス コード - - - - - - - - - - DTB 1 1 0 0 DT 空間アクセス用プリフィックス コード - - - - - - - - - - PCB 1 1 0 0 PC 空間アクセス用プリフィックス コード - - - - - - - - - - SPB 1 1 0 0 SP 空間アクセス用プリフィックス コード - - - - - - - - - - NCC 1 1 0 0 フラグ無変化用プリフィックスコー ド - - - - - - - - - - CMR 1 1 0 0 コモンレジスタバンク用プリフィッ クス - - - - - - - - - - *1:PCB,ADB,SSB,USB・・・・・・1 ステート DTB,DPR ・・・・・・・・・・2 ステート *2:7+3 × (POP する回数 )+2 × (POP する最後のレジスタ番号 ), RLST=0( 転送レジスタ無し ) の場合 7 *3:29+3 × (PUSH する回数 )-3 × (PUSH する最後のレジスタ番号 ), RLST=0 ( 転送レジスタ無し ) の場合 8 *4:(POP する回数 ) × (c), または (PUSH する回数 ) × (c) *5:(POP する回数 ), または (PUSH する回数 ) ( 注意事項 ) 表中の (a),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 443 付録 B 命令 表 B.8-16 ビット操作命令 21 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVB A,dir:bp 3 5 0 (b) byte (A) ← (dir:bp)b Z * - - - * * - - - MOVB A,addr16:bp 4 5 0 (b) byte (A) ← (addr16:bp)b Z * - - - * * - - - MOVB A,io:bp 3 4 0 (b) byte (A) ← (io:bp)b Z * - - - * * - - - MOVB dir:bp,A 3 7 0 2 × (b) bit (dir:bp)b ← (A) - - - - - * * - - * MOVB addr16:bp,A 4 7 0 2 × (b) bit (addr16:bp)b ← (A) - - - - - * * - - * MOVB io:bp,A 3 6 0 2 × (b) bit (io:bp)b ← (A) - - - - - * * - - * SETB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 1 - - - - - - - - - * SETB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 1 - - - - - - - - - * SETB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 1 - - - - - - - - - * CLRB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 0 - - - - - - - - - * CLRB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 0 - - - - - - - - - * CLRB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 0 - - - - - - - - - * BBC dir:bp,rel 4 *1 0 (b) (dir:bp) b = 0 の場合分岐 - - - - - - * - - - BBC addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 0 の場合分岐 - - - - - - * - - - BBC io:bp,rel 4 *2 0 (b) (io:bp) b = 0 の場合分岐 - - - - - - * - - - BBS dir:bp,rel 4 *1 0 (b) (dir:bp) b = 1 の場合分岐 - - - - - - * - - - BBS addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 1 の場合分岐 - - - - - - * - - - BBS io:bp,rel 4 *2 0 (b) (io:bp) b = 1 の場合分岐 - - - - - - * - - - SBBS addr16:bp,rel 5 *3 0 - - - - - - * - - * 2 × (b) (addr16:bp) b = 1 で分岐 , bit (addr16:bp) b ← 1 WBTS io:bp 3 *4 0 *5 WBTC io:bp 3 *4 0 *5 (io:bp) b = 1 になるまで待つ - - - - - - - - - - (io:bp) b = 0 になるまで待つ - - - - - - - - - - LH AH I S T N Z V C RMW *1:分岐が行われる場合 , 8 分岐が行われない場合 , 7 *2:分岐が行われる場合 , 7 分岐が行われない場合 , 6 *3:条件成立の場合 , 10 未成立の場合 , 9 *4:不定回数 *5:条件が成立するまで ( 注意事項 ) 表中の (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 # ∼ RG B SWAP 1 3 0 0 byte (A)0-7 ←→ (A)8-15 - - - - - - - - - - SWAPW 1 2 0 0 word (AH) ←→ (AL) - * - - - - - - - - EXT 1 1 0 0 byte 符号拡張 X - - - - * * - - - ニーモニック オペレーション EXTW 1 2 0 0 word 符号拡張 - X - - - * * - - - ZEXT 1 1 0 0 byte ゼロ拡張 Z - - - - R * - - - ZEXTW 1 1 0 0 word ゼロ拡張 - Z - - - R * - - - 444 付録 B 命令 表 B.8-18 ストリング命令 10 命令 # ∼ RG B MOVS / MOVSI 2 *2 *5 *3 MOVSD 2 *2 *5 *3 SCEQ / SCEQI 2 *1 *8 SCEQD 2 *1 *8 FILS / FILSI 2 6m+6 MOVSW / MOVSWI 2 *2 MOVSWD 2 *2 *5 SCWEQ / SCWEQI 2 *1 SCWEQD 2 *1 FILSW / FILSWI 2 6m+6 ニーモニック LH AH I S T N Z V C RMW byte 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - byte 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *4 byte 検索 @AH+ ← AL, カウンタ = RW0 - - - - - * * * * - *4 byte 検索 @AH- ← AL, カウンタ = RW0 - - - - - * * * * - *8 *3 byte 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - *5 *6 word 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - *6 word 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *8 *7 word 検索 @AH+ - AL, カウンタ = RW0 - - - - - * * * * - *8 *7 word 検索 @AH- - AL, カウンタ = RW0 - - - - - * * * * - *8 *6 word 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - オペレーション *1:RW0 が "0" の場合 , 5 カウントアウトの場合 , 4+7 × (RW0) 一致した場合 , 7n+5 *2:RW0 が "0" の場合 , 5 "0" 以外の場合 , 4+8 × (RW0) *3:(b) × (RW0)+(b) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (b) の項目 を算出してください。 *4:(b)+n *5:2 × (b) × (RW0) *6:(c) × (RW0)+(c) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (c) の項目 を算出してください。 *7:(c) × n *8:(b) × (RW0) ( 注意事項 ) ・ m:RW0 値 ( カウンタ値 ) n:ループした回数 ・ 表中の (b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 445 付録 B 命令 B.9 命令マップ F2MC-16LX の命令コードは , 1 ∼ 2 バイトで構成されていますので , 命令マップは 複数のページで構成されています。 F2MC-16LX の命令マップを示します。 ■ 命令マップの構造 図 B.9-1 命令マップの構造 基本ページマップ ビット操作系命令 文字列操作系命令 2 バイト系命令 :第 1 バイト ea 系命令× 9 :第 2 バイト 1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命 令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。 実際の命令コードと命令マップの対応を図 B.9-2 に示します。 446 付録 B 命令 図 B.9-2 実際の命令コードと命令マップの対応 命令によっては ない場合もある 命令によって 長さが異なる 命令コード 第 1 バイト 第 2 バイト オペランド オペランド ・・・ [ 基本ページマップ ] XY +Z [ 拡張ページマップ ]* UV +W *:拡張ページマップとはビット操作系命令・文字列操作系命令・2 バイト系命令・ea 系 命令の総称で , 実際は各系列の命令ごとに複数存在します。 命令コードの例を表 B.9-1 に示します。 表 B.9-1 命令コードの例 第 1 バイト ( 基本ページマップより ) 第 2 バイト ( 拡張ページマップより ) NOP 00 + 0=00 ― AND A, #8 30 + 4=34 ― MOV A, ADB 60 + F=6F 00 + 0=00 @RW2+d8, #8, rel 70 + 0=70 F0 + 2=F2 命令 447 448 A SWAP ADDSP ADB SPB #8 CMP A, #8 A, #8 dir, A A, dir io, A A, io JMP BRA 60 @A rel MULU DIVU ea 系命令 その 2 B0 C0 D0 E0 ea 系命令 その 8 ea 系命令 その 7 #4 rel rel BNT BT BNV BV BP BN rel rel rel rel rel BNC/BHS rel BC/BLO BNZ/BNE rel BZ/BEQ F0 +F +E +D +C +B LSRW ASRW LSLW NEGW A A A A XORW ORW ANDW ANDW PUSHW POPW A, #16 A A A A PUSHW POPW rlst rlst XORW PUSHW POPW A, #16 PS PS MOVW RWi, ea 2 バイト XCHW RWi, ea 系命令 文字列操 XCH Ri, ea 作系命令 MOVW ea, RWi ビット操 MOV ea, Ri 作系命令 CMPW MOVL MOVW RETI A, #16 A, #32 addr16, A ORW PUSHW POPW A A, #16 AH AH A A ADDSP MULUW NOTW #16 A SWAPW ZEXTW EXTW CMPL CMPW A, #32 BHI BLS BGT BLE BGE BLT rel rel rel rel rel rel A MOVW MOVW RETP A, SP io, #16 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 MOVW MOVX RET A SP, A A, addr16 A, #8 A0 ADDW MOVW MOVW INT MOVW MOVW MOV A, MOVW ea 系命令 MOVW A, #16 A, dir A, io #vct8 A, RWi RWi, A RWi, #16 @RWi+d8 @RWi+d8,A その 9 NOT XOR A, #8 90 rel SUBL SUBW A, #32 A A A OR OR CCR, #8 80 MOV MOV MOV MOVX A, MOV CALL ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 その 1 70 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV 50 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 MOV MOV MOV 40 MOV MOV CBNE A, CWBNE A, MOVW MOVW INTP MOV +A RP, #8 ILM, #8 #8, rel #16, rel A, #16 A,addr16 addr24 Ri, ea +9 UNLINK A A A, #8 A, #8 SUBC SUB ADD 30 AND AND MOV MOV CALL ea 系命令 CCR, #8 A, #8 dir, #8 io, #8 addr16 その 5 CMP A A, dir A, dir ADDC SUB ADD 20 LINK ADDL ADDW #imm8 A, #32 ZEXT DTB @A EXT JCTX PCB A SUBDC ADDDC NEG NCC INT9 A CMR NOP 10 SUBW MOVW MOVW INT MOVEA A, #16 dir, A io, A addr16 RWi, ea +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-2 基本ページマップ +F +E +D +C +B +A +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 10 MOVB io:bp, A 20 30 CLRB io:bp 40 50 SETB io:bp 60 70 BBC io;bp, rel 80 90 BBS io:bp, rel A0 B0 MOVB MOVB A, MOVB MOVB CLRB CLRB SETB SETB BBC BBC BBS BBS A, dir:bp addr16:bp dir:bp, A addr16:bp,A dir:bp addr16:bp dir:bp addr16:bp dir:bp, rel addr16:bp,rel dir:bp, rel addr16:bp,rel MOVB A, io:bp 00 WBTS io:bp C0 D0 WBTC io:bp E0 SBBS addr16:bp F0 付録 B 命令 表 B.9-3 ビット操作系命令マップ ( 第 1 バイト =6CH) 449 450 MOVSI MOVSD PCB, PCB PCB, DTB PCB, ADB PCB, SPB DTB, PCB DTB, DTB DTB, ADB DTB, SPB ADB, PCB ADB, DTB ADB, ADB ADB, SPB SPB, PCB SPB, DTB SPB, ADB SPB, SPB +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 10 +0 00 MOVSWI 20 MOVSWD 30 40 50 60 70 90 A0 B0 C0 SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SCEQI SCEQD SCWEQI SCWEQD FILSI PCB PCB PCB PCB PCB 80 D0 FILSI SPB ADB DTB PCB E0 F0 付録 B 命令 表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH) LSLW LSLL LSL MOVW MOVW A, R0 A, R0 A, R0 @RL2+d8, A A, @RL2+d8 MOVW MOVW NRML A, @A @AL, AH A, R0 ASRW ASRL ASR MOVW MOVW A, R0 A, R0 A, R0 @RL3+d8, A A, @RL3+d8 LSRW LSRL LSR A, R0 A, R0 A, R0 +D +E +F MOVW MOVW @RL1+d8, A A, @RL1+d8 MOVW MOVW @RL0+d8, A A, @RL0+d8 +C +B +A +9 +8 A MOV MOV MOVX MOV MOV A, PCB A, @A A, @RL3+d8 @RL3+d8, A A, @RL3+d8 +6 ROLC MOV MOV A, @A @AL, AH +5 A MOV MOV MOVX MOV MOV A, DPR DPR, A A, @RL2+d8 @RL2+d8, A A, @RL2+d8 +4 ROLC MOV MOV A, USB USB, A +3 +7 MOV MOV MOVX MOV MOV A, SSB SSB, A A, @RL1+d8 @RL1+d8, A A, @RL1+d8 +2 40 MOV MOV A, ADB ADB, A 30 +1 20 MOV MOV MOVX MOV MOV A, DTB DTB, A A, @RL0+d8 @RL0+d8, A A, @RL0+d8 10 +0 00 50 60 DIVU MULW MUL 70 A A A 80 90 A0 B0 C0 D0 E0 F0 付録 B 命令 表 B.9-5 2 バイト系命令マップ ( 第 1 バイト =6FH) 451 452 @PC+d16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 使用禁止 使用禁止 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3+ addr16 A,@RW3+ addr16 SUBL SUBL SUBL A, SUBL A, addr16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 @RW1+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 使用禁止 +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 +F 使用禁止 @RW0+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 使用禁止 +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDL A, @RW3, @RW3+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B ADDL 使用禁止 @RW2, @RW2+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ADDL ADDL A, SUBL SUBL A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A ADDL A, @RW1, @RW1+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ADDL ADDL A, SUBL SUBL A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDL @RW0+RW7 ,#8, rel 使用禁止 @RW0, @RW0+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ADDL ADDL A, SUBL SUBL A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 SUBL A, RW7, @RW7+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW7+d8 A, RL3 @RW7+d8 +7 SUBL RW6, @RW6+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW6+d8 A, RL3 @RW6+d8 +6 ADDL A, RW5, @RW5+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 ADDL ADDL A, SUBL SUBL A, A, RL2 @RW5+d8 A, RL2 @RW5+d8 +5 ADDL @RW3, @RW3+d16 #8, rel ,#8, rel RW4, @RW4+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 使用禁止 addr16, ,#8, rel @PC+d16, ,#8, rel @RW1+RW7 ,#8, rel @RW2, @RW2+d16 #8, rel ,#8, rel @RW1, @RW1+d16 #8, rel ,#8, rel @RW0, @RW0+d16 #8, rel ,#8, rel R7, @RW7+d8, #8, rel #8, rel R6, @RW6+d8, #8, rel #8, rel R5, @RW5+d8, #8, rel #8, rel R4, @RW4+d8, #8, rel #8, rel R3, @RW3+d8, #8, rel #8, rel R2, @RW2+d8, #8, rel #8, rel R1, @RW1+d8, #8, rel #8, rel ADDL ADDL A, SUBL SUBL A, A, RL2 @RW4+d8 A, RL2 @RW4+d8 CBNE↓ F0 R0, @RW0+d8, #8, rel #8, rel CBNE↓ E0 +4 D0 RW3, @RW3+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 C0 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW3+d8 A, RL1 @RW3+d8 B0 +3 A0 RW2, @RW2+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 90 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW2+d8 A, RL1 @RW2+d8 80 +2 70 RW1, @RW1+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 CWBNE↓ CWBNE↓ 60 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW1+d8 A, RL0 @RW1+d8 50 40 +1 30 +0 20 RW0, @RW0+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 10 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW0+d8 A, RL0 @RW0+d8 00 付録 B 命令 表 B.9-6 ea 系命令 その 1 ( 第 1 バイト =70H) +F @@RW3+ JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+,A @PC+d16, A @RW2+, #8 @PC+d16, #8 A,@RW2+ @PC+d16 CALLP CALLP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+,A addr16, A @RW3+, #8 addr16, #8 A,@RW3+ addr16 JMPP JMPP CALLP @ +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+,A @RW1+RW7,A @RW1+, #8 @RW1+RW7,#8 A,@RW1+ @RW1+RW7 JMPP @ +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+,A @RW0+RW7,A @RW0+, #8 @RW0+RW7,#8 A,@RW0+ @RW0+RW7 CALLP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3,A @RW3+d16,A @RW3, #8 @RW3+d16,#8 A,@RW3 @RW3+d16 +B CALLP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2,A @RW2+d16,A @RW2, #8 @RW2+d16,#8 A,@RW2 @RW2+d16 +A JMPP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1,A @RW1+d16,A @RW1, #8 @RW1+d16,#8 A,@RW1 @RW1+d16 +9 JMPP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #8 @RW0+d16,#8 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW7+d8 @RL3 @@RW7+d8 RL3 @RW7+d8 RL3 @RW7+d8 A, RL3 @RW7+d8 RL3, A @RW7+d8,A R7, #8 @RW7+d8,#8 A, RW7 @RW7+d8 F0 +7 E0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW6+d8 @RL3 @@RW6+d8 RL3 @RW6+d8 RL3 @RW6+d8 A, RL3 @RW6+d8 RL3, A @RW6+d8,A R6, #8 @RW6+d8,#8 A, RW6 @RW6+d8 D0 +6 C0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW5+d8 @RL2 @@RW5+d8 RL2 @RW5+d8 RL2 @RW5+d8 A, RL2 @RW5+d8 RL2, A @RW5+d8,A R5, #8 @RW5+d8,#8 A, RW5 @RW5+d8 B0 +5 A0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW4+d8 @RL2 @@RW4+d8 RL2 @RW4+d8 RL2 @RW4+d8 A, RL2 @RW4+d8 RL2, A @RW4+d8,A R4, #8 @RW4+d8,#8 A, RW4 @RW4+d8 90 +4 80 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW3+d8 @RL1 @@RW3+d8 RL1 @RW3+d8 RL1 @RW3+d8 A, RL1 @RW3+d8 RL1, A @RW3+d8,A R3, #8 @RW3+d8,#8 A, RW3 @RW3+d8 70 +3 60 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW2+d8 @RL1 @@RW2+d8 RL1 @RW2+d8 RL1 @RW2+d8 A, RL1 @RW2+d8 RL1, A @RW2+d8,A R2, #8 @RW2+d8,#8 A, RW2 @RW2+d8 50 +2 40 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW1+d8 @RL0 @@RW1+d8 RL0 @RW1+d8 RL0 @RW1+d8 A, RL0 @RW1+d8 RL0, A @RW1+d8,A R1, #8 @RW1+d8,#8 A, RW1 @RW1+d8 30 +1 20 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW0+d8 @RL0 @@RW0+d8 RL0 @RW0+d8 RL0 @RW0+d8 A, RL0 @RW0+d8 RL0, A @RW0+d8,A R0, #8 @RW0+d8,#8 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-7 ea 系命令 その 2 ( 第 1 バイト =71H) 453 454 D0 E0 F0 MOVX MOVX A, XCH XCH A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MOVX MOVX A, XCH XCH A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A A,@RW3+ addr16 A,@RW3+ addr16 +D +E +F DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R7 @RW7+d8 A, R7 @RW7+d8 R7, A @RW7+d8,A A, R7 @RW7+d8 A, R7 @RW7+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R6 @RW6+d8 A, R6 @RW6+d8 R6, A @RW6+d8,A A, R6 @RW6+d8 A, R6 @RW6+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R5 @RW5+d8 A, R5 @RW5+d8 R5, A @RW5+d8,A A, R5 @RW5+d8 A, R5 @RW5+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R4 @RW4+d8 A, R4 @RW4+d8 R4, A @RW4+d8,A A, R4 @RW4+d8 A, R4 @RW4+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R3 @RW3+d8 A, R3 @RW3+d8 R3, A @RW3+d8,A A, R3 @RW3+d8 A, R3 @RW3+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R2 @RW2+d8 A, R2 @RW2+d8 R2, A @RW2+d8,A A, R2 @RW2+d8 A, R2 @RW2+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R1 @RW1+d8 A, R1 @RW1+d8 R1, A @RW1+d8,A A, R1 @RW1+d8 A, R1 @RW1+d8 +C INC DEC R7 @RW7+d8 C0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ROLC RORC RORC INC R7 @RW7+d8 R7 @RW7+d8 ROLC INC DEC R6 @RW6+d8 B0 +B ROLC RORC RORC INC R6 @RW6+d8 R6 @RW6+d8 ROLC INC DEC R5 @RW5+d8 A0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ROLC RORC RORC INC R5 @RW5+d8 R5 @RW5+d8 ROLC INC DEC R4 @RW4+d8 90 +A ROLC RORC RORC INC R4 @RW4+d8 R4 @RW4+d8 ROLC INC DEC R3 @RW3+d8 INC DEC R2 @RW2+d8 INC DEC R1 @RW1+d8 80 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R0 @RW0+d8 A, R0 @RW0+d8 R0, A @RW0+d8,A A, R0 @RW0+d8 A, R0 @RW0+d8 70 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ROLC RORC RORC INC R3 @RW3+d8 R3 @RW3+d8 ROLC 60 INC DEC R0 @RW0+d8 50 +9 ROLC RORC RORC INC R2 @RW2+d8 R2 @RW2+d8 ROLC 40 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, A @RW0+d16,A A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ROLC RORC RORC INC R1 @RW1+d8 R1 @RW1+d8 ROLC 30 ROLC RORC RORC INC R0 @RW0+d8 R0 @RW0+d8 20 ROLC 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-8 ea 系命令 その 3 ( 第 1 バイト =72H) +F @@RW3+ JMP INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2+ @@PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A @RW2+, #16 @PC+d16, #16 A,@RW2+ @PC+d16 CALL CALL JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A @RW3+, #16 addr16, #16 A,@RW3+ addr16 JMP JMP XCHW XCHW A, A,@RW1+ @RW1+RW7 +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALL @ MOVW MOVW @RW1+, #16 @RW1+RW7,#16 CALL INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A JMP @ JMP +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 XCHW XCHW A, A,@RW0+ @RW0+RW7 MOVW MOVW @RW0+, #16 @RW0+RW7,#16 INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A CALL @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, #16 @RW3+d16,#16 A,@RW3 @RW3+d16 +B CALL JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, #16 @RW2+d16,#16 A,@RW2 @RW2+d16 +A JMP @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, #16 @RW1+d16,#16 A,@RW1 @RW1+d16 +9 JMP JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #16 @RW0+d16,#16 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW7 @@RW7+d8 RW7 @@RW7+d8 RW7 @RW7+d8 RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, A @RW7+d8,A RW7, #16 @RW7+d8,#16 A, RW7 @RW7+d8 F0 +7 E0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW6 @@RW6+d8 RW6 @@RW6+d8 RW6 @RW6+d8 RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, A @RW6+d8,A RW6, #16 @RW6+d8,#16 A, RW6 @RW6+d8 D0 +6 C0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW5 @@RW5+d8 RW5 @@RW5+d8 RW5 @RW5+d8 RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, A @RW5+d8,A RW5, #16 @RW5+d8,#16 A, RW5 @RW5+d8 B0 +5 A0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW4 @@RW4+d8 RW4 @@RW4+d8 RW4 @RW4+d8 RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, A @RW4+d8,A RW4, #16 @RW4+d8,#16 A, RW4 @RW4+d8 90 +4 80 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW3 @@RW3+d8 RW3 @@RW3+d8 RW3 @RW3+d8 RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, A @RW3+d8,A RW3, #16 @RW3+d8,#16 A, RW3 @RW3+d8 70 +3 60 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2 @@RW2+d8 RW2 @@RW2+d8 RW2 @RW2+d8 RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, A @RW2+d8,A RW2, #16 @RW2+d8,#16 A, RW2 @RW2+d8 50 +2 40 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW1 @@RW1+d8 RW1 @@RW1+d8 RW1 @RW1+d8 RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, A @RW1+d8,A RW1, #16 @RW1+d8,#16 A, RW1 @RW1+d8 30 +1 20 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW0 @@RW0+d8 RW0 @@RW0+d8 RW0 @RW0+d8 RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, A @RW0+d8,A RW0, #16 @RW0+d8,#16 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-9 ea 系命令 その 4 ( 第 1 バイト =73H) 455 456 ADD ADD A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW0+ @RW0+RW7 @RW0+, r W0+RW7, r SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW1+ @RW1+RW7 @RW1+, r W1+RW7, r ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, r PC+d16, r ADD ADD SUB SUB ADDC ADDC CMP CMP AND AND OR OR XOR XOR DBNZ DBNZ A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 @RW3+, r addr16, r +E +F +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, SUB +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, r W3+d16, r +B A, SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, r W2+d16, r +A ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, r W1+d16, r +9 ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, r W0+d16, r ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 R7, r RW7+d8, r ADD F0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 R6, r RW6+d8, r E0 ADD D0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 R5, r RW5+d8, r C0 ADD B0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 R4, r RW4+d8, r A0 ADD 90 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 R3, r RW3+d8, r 80 ADD 70 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 R2, r RW2+d8, r 60 ADD 50 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 R1, r RW1+d8, r 40 ADD 30 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 R0, r RW0+d8, r 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H) NOT NOT @RW1+ @RW1+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A SUB SUB @RW2+, A @PC+d16,A SUB SUB @RW3+, A addr16, A ADD ADD @RW2+, A @PC+d16,A ADD ADD @RW3+, A addr16, A +D +E +F SUBC SUBC A, NEG NEG A, AND AND A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A OR OR @RW3+, A addr16, A XOR XOR @RW3+, A addr16, A NOT NOT @RW3+ addr16 OR OR XOR XOR NOT NOT @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 NOT NOT @RW0+ @RW0+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A +C SUBC SUBC A, NEG NEG A, AND AND A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A NOT NOT @RW3 @RW3+d16 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A NOT R7 @RW7+d8 NOT R6 @RW6+d8 NOT R5 @RW5+d8 NOT R4 @RW4+d8 +B XOR NOT R7, A @RW7+d8, A XOR NOT R6, A @RW6+d8, A XOR NOT R5, A @RW5+d8, A XOR NOT R4, A @RW4+d8, A NOT R3 @RW3+d8 NOT R2 @RW2+d8 NOT R1 @RW1+d8 NOT NOT @RW2 @RW2+d16 XOR NOT XOR NOT R3, A @RW3+d8, A XOR R2, A @RW2+d8,A XOR NOT R1, A @RW1+d8, A NOT R0 @RW0+d8 F0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A NEG A, AND AND OR OR R7 @RW7+d8 R7, A @RW7+d8, A R7, A @RW7+d8, A XOR XOR XOR XOR XOR XOR E0 XOR NOT R0, A @RW0+d8, A D0 +A ADD SUB SUB SUBC SUBC A, NEG R7, A @RW7+d8, A R7, A @RW7+d8, A A, R7 @RW7+d8 ADD NEG A, AND AND OR OR R6 @RW6+d8 R6, A @RW6+d8, A R6, A @RW6+d8, A NEG A, AND AND OR OR R5 @RW5+d8 R5, A @RW5+d8, A R5, A @RW5+d8, A NEG A, AND AND OR OR R4 @RW4+d8 R4, A @RW4+d8, A R4, A @RW4+d8, A NEG A, AND AND OR OR R3 @RW3+d8 R3, A @RW3+d8, A R3, A @RW3+d8, A NEG A, AND AND OR OR R2 @RW2+d8 R2, A @RW2+d8,A R2, A @RW2+d8,A NEG A, AND AND OR OR R1 @RW1+d8 R1, A @RW1+d8, A R1, A @RW1+d8, A XOR C0 NOT NOT @RW1 @RW1+d16 ADD SUB SUB SUBC SUBC A, NEG R6, A @RW6+d8, A R6, A @RW6+d8, A A, R6 @RW6+d8 ADD B0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A ADD SUB SUB SUBC SUBC A, NEG R5, A @RW5+d8, A R5, A @RW5+d8, A A, R5 @RW5+d8 ADD A0 +9 ADD SUB SUB SUBC SUBC A, NEG R4, A @RW4+d8, A R4, A @RW4+d8, A A, R4 @RW4+d8 ADD 90 NOT NOT @RW0 @RW0+d16 ADD SUB SUB SUBC SUBC A, NEG R3, A @RW3+d8, A R3, A @RW3+d8, A A, R3 @RW3+d8 ADD 80 NEG A, AND AND OR OR R0 @RW0+d8 R0, A @RW0+d8, A R0, A @RW0+d8, A 70 ADD ADD SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A ADD SUB SUB SUBC SUBC A, NEG R2, A @RW2+d8,A R2, A @RW2+d8,A A, R2 @RW2+d8 60 ADD 50 ADD SUB SUB SUBC SUBC A, NEG R1, A @RW1+d8, A R1, A @RW1+d8, A A, R1 @RW1+d8 40 ADD 30 ADD SUB SUB SUBC SUBC A, NEG R0, A @RW0+d8, A R0, A @RW0+d8, A A, R0 @RW0+d8 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-11 ea 系命令 その 6 ( 第 1 バイト =75H) 457 458 ADDW A, SUBW ADDW ADDCW +F CMPW CMPW A, ANDW ANDW A, ANDW A, ORW ORW ORW ORW A, A, ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, r @PC+d16,r ADDCW A, ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr16 A,@RW3+ addr 16 @RW3+, r addr16, r +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 SUBW A, ADDCW SUBW A, ANDW XORW XORW A, DWBNZ DWBNZ A,@RW1+ @RW1+RW7 @RW1+, r @RW1+RW7,r SUBW ADDW A, ADDW CMPW A, +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 CMPW XORW XORW A, DWBNZ DWBNZ A,@RW0+ @RW0+RW7 @RW0+, r @RW0+RW7,r ADDCW A, +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDCW XORW XORW A, DWBNZ DWBNZ A,@RW3 @RW3+d16 @RW3, r @RW3+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B SUBW A, XORW XORW A, DWBNZ DWBNZ A,@RW2 @RW2+d16 @RW2, r @RW2+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A SUBW XORW XORW A, DWBNZ DWBNZ A,@RW1 @RW1+d16 @RW1, r @RW1+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDW A, XORW XORW A, DWBNZ DWBNZ A,@RW0 @RW0+d16 @RW0, r @RW0+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 ADDW ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, r @RW7+d8,r F0 +7 E0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, r @RW6+d8,r D0 +6 C0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, r @RW5+d8,r B0 +5 A0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, r @RW4+d8,r 90 +4 80 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, r @RW3+d8,r 70 +3 60 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, r @RW2+d8,r 50 +2 40 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, r @RW1+d8,r 30 +1 20 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, r @RW0+d8,r 10 +0 00 付録 B 命令 表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H) ORW ORW XORW XORW NOTW NOTW RW6, A @RW6+d8, A RW6, A @RW6+d8, A RW6 @RW6+d8 ORW ORW XORW XORW NOTW NOTW RW7, A @RW7+d8, A RW7, A @RW7+d8, A RW7 @RW7+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW6, A @RW6+d8, A RW6, A @RW6+d8, A A, RW6 @RW6+d8 RW6 @RW6+d8 RW6, A @RW6+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW7, A @RW7+d8, A RW7, A @RW7+d8, A A, RW7 @RW7+d8 RW7 @RW7+d8 RW7, A @RW7+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0 @RW0+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1 @RW1+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2 @RW2+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3 @RW3+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+ @RW0+RW7 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+ @RW1+RW7 SUBW SUBW @RW2+, A @PC+d16,A SUBW SUBW @RW3+, A addr16, A ADDW ADDW @RW2+, A @PC+d16,A ADDW ADDW @RW3+, A addr16, A +6 +7 +8 +9 +A +B +C +D +E +F SUBCW SUBCW A, NEGW NEGW ANDW ANDW A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A ORW ORW @RW3+, A addr16, A XORW XORW @RW3+, A addr16, A NOTW NOTW @RW3+ addr16 SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 ORW ORW XORW XORW NOTW NOTW RW5, A @RW5+d8, A RW5, A @RW5+d8, A RW5 @RW5+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW5, A @RW5+d8, A RW5, A @RW5+d8, A A, RW5 @RW5+d8 RW5 @RW5+d8 RW5, A @RW5+d8, A +5 F0 ORW ORW XORW XORW NOTW NOTW RW4, A @RW4+d8, A RW4, A @RW4+d8, A RW4 @RW4+d8 E0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW4, A @RW4+d8, A RW4, A @RW4+d8, A A, RW4 @RW4+d8 RW4 @RW4+d8 RW4, A @RW4+d8, A D0 +4 C0 ORW ORW XORW XORW NOTW NOTW RW3, A @RW3+d8, A RW3, A @RW3+d8, A RW3 @RW3+d8 B0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW3, A @RW3+d8, A RW3, A @RW3+d8, A A, RW3 @RW3+d8 RW3 @RW3+d8 RW3, A @RW3+d8, A A0 +3 90 ORW ORW XORW XORW NOTW NOTW RW2, A @RW2+d8, A RW2, A @RW2+d8, A RW2 @RW2+d8 80 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW2, A @RW2+d8, A RW2, A @RW2+d8, A A, RW2 @RW2+d8 RW2 @RW2+d8 RW2, A @RW2+d8, A 70 +2 60 ORW ORW XORW XORW NOTW NOTW RW1, A @RW1+d8, A RW1, A @RW1+d8, A RW1 @RW1+d8 50 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW1, A @RW1+d8, A RW1, A @RW1+d8, A A, RW1 @RW1+d8 RW1 @RW1+d8 RW1, A @RW1+d8, A 40 +1 30 ORW ORW XORW XORW NOTW NOTW RW0, A @RW0+d8, A RW0, A @RW0+d8, A RW0 @RW0+d8 20 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW0, A @RW0+d8, A RW0, A @RW0+d8, A A, RW0 @RW0+d8 RW0 @RW0+d8 RW0, A @RW0+d8, A 10 +0 00 付録 B 命令 表 B.9-13 ea 系命令 その 8 ( 第 1 バイト =77H) 459 460 A, MULU +F DIV DIV A, DIVW DIVW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 DIV DIV A, DIVW DIVW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 DIV DIV A, DIVW DIVW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 DIV DIV A, DIVW DIVW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 DIV DIV A, DIVW DIVW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, @RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ A, DIVW DIVW A, addr16 A,@RW3+ addr16 MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, MULUW @RW1+RW7 MULU @RW0+RW7 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULU +D A,@RW1+ MULU +C A,@RW0+ MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 MULU MULU A, MULUW MULUW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 MULU MULU A, MULUW MULUW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 DIV DIV A, DIVW DIVW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 F0 +7 E0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 D0 +6 C0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 B0 +5 A0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 90 +4 80 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 70 +3 60 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 50 +2 40 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 30 +1 20 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H) MOVEA MOVEA RW1 RW1,RW2 ,@RW2+d8 MOVEA MOVEA RW1 RW1,RW3 ,@RW3+d8 MOVEA MOVEA RW1 RW1,RW4 ,@RW4+d8 MOVEA MOVEA RW1 RW1,RW5 ,@RW5+d8 MOVEA MOVEA RW1 RW1,RW6 ,@RW6+d8 MOVEA MOVEA RW1 RW1,RW7 ,@RW7+d8 MOVEA MOVEA RW1 RW1,@RW0 ,@RW0+d16 MOVEA MOVEA RW1 RW1,@RW1 ,@RW1+d16 MOVEA MOVEA RW1 RW1,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,@RW3 ,@RW3+d16 MOVEA MOVEA RW0 RW0,RW2 ,@RW2+d8 MOVEA MOVEA RW0 RW0,RW3 ,@RW3+d8 MOVEA MOVEA RW0 RW0,RW4 ,@RW4+d8 MOVEA MOVEA RW0 RW0,RW5 ,@RW5+d8 MOVEA MOVEA RW0 RW0,RW6 ,@RW6+d8 MOVEA MOVEA RW0 RW0,RW7 ,@RW7+d8 MOVEA MOVEA RW0 RW0,@RW0 ,@RW0+d16 MOVEA MOVEA RW0 RW0,@RW1 ,@RW1+d16 MOVEA RW0 MOVEA RW0 MOVEA MOVEA +2 +3 +4 +5 +6 +7 +8 +9 50 70 90 B0 C0 D0 E0 F0 MOVEA MOVEA RW4 RW4,@RW2+ ,@PC+d16 MOVEA MOVEA RW6,@RW3+ RW6, addr16 MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA RW0,@RW3+ RW0, addr16 RW1,@RW3+ RW1, addr16 RW2,@RW3+ RW2, addr16 RW3,@RW3+ RW3, addr16 RW4,@RW3+ RW4, addr16 RW5,@RW3+ RW5, addr16 MOVEA MOVEA RW3 RW3,@RW2+ ,@PC+d16 +F MOVEA MOVEA RW2 RW2,@RW2+ ,@PC+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2+ ,@PC+d16 RW6,@RW2+ ,@PC+d16 RW7,@RW2+ ,@PC+d16 MOVEA MOVEA RW1 RW1,@RW2+ ,@PC+d16 MOVEA MOVEA RW0 RW0,@RW2+ ,@PC+d16 +E MOVEA MOVEA RW7@RW3+ RW7, addr16 MOVEA MOVEA RW7 RW7,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW1+ ,@RW1+RW7 RW6,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW1+ ,@RW1+RW7 RW1,@RW1+ ,@RW1+RW7 RW2,@RW1+ ,@RW1+RW7 RW3,@RW1+ ,@RW1+RW7 RW4,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW7 RW7,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW3 ,@RW3+d16 RW6,@RW3 ,@RW3+d16 RW7,@RW3 ,@RW3+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2 ,@RW2+d16 RW6,@RW2 ,@RW2+d16 RW7,@RW2 ,@RW2+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW1 ,@RW1+d16 RW6,@RW1 ,@RW1+d16 RW7,@RW1 ,@RW1+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW0 ,@RW0+d16 RW6,@RW0 ,@RW0+d16 RW7,@RW0 ,@RW0+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW7 ,@RW7+d8 RW6,RW7 ,@RW7+d8 RW7,RW7 ,@RW7+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW6 ,@RW6+d8 RW6,RW6 ,@RW6+d8 RW7,RW6 ,@RW6+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW5 ,@RW5+d8 RW6,RW5 ,@RW5+d8 RW7,RW5 ,@RW5+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW4 ,@RW4+d8 RW6,RW4 ,@RW4+d8 RW7,RW4 ,@RW4+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW3 ,@RW3+d8 RW6,RW3 ,@RW3+d8 RW7,RW3 ,@RW3+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW2 ,@RW2+d8 RW6,RW2 ,@RW2+d8 RW7,RW2 ,@RW2+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW1 ,@RW1+d8 RW6,RW1 ,@RW1+d8 RW7,RW1 ,@RW1+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW0 ,@RW0+d8 RW6,RW0 ,@RW0+d8 RW7,RW0 ,@RW0+d8 A0 +D MOVEA MOVEA RW4 RW4,@RW3 ,@RW3+d16 MOVEA MOVEA RW4 RW4,@RW2 ,@RW2+d16 MOVEA MOVEA RW4 RW4,@RW1 ,@RW1+d16 MOVEA MOVEA RW4 RW4,@RW0 ,@RW0+d16 MOVEA MOVEA RW4 RW4,RW7 ,@RW7+d8 MOVEA MOVEA RW4 RW4,RW6 ,@RW6+d8 MOVEA MOVEA RW4 RW4,RW5 ,@RW5+d8 MOVEA MOVEA RW4 RW4,RW4 ,@RW4+d8 MOVEA MOVEA RW4 RW4,RW3 ,@RW3+d8 MOVEA MOVEA RW4 RW4,RW2 ,@RW2+d8 MOVEA MOVEA RW4 RW4,RW1 ,@RW1+d8 MOVEA MOVEA RW4 RW4,RW0 ,@RW0+d8 80 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW0+ ,@RW0+RW7 RW6,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW3 RW3,@RW3 ,@RW3+d16 MOVEA MOVEA RW3 RW3,@RW2 ,@RW2+d16 MOVEA MOVEA RW3 RW3,@RW1 ,@RW1+d16 MOVEA MOVEA RW3 RW3,@RW0 ,@RW0+d16 MOVEA MOVEA RW3 RW3,RW7 ,@RW7+d8 MOVEA MOVEA RW3 RW3,RW6 ,@RW6+d8 MOVEA MOVEA RW3 RW3,RW5 ,@RW5+d8 MOVEA MOVEA RW3 RW3,RW4 ,@RW4+d8 MOVEA MOVEA RW3 RW3,RW3 ,@RW3+d8 MOVEA MOVEA RW3 RW3,RW2 ,@RW2+d8 MOVEA MOVEA RW3 RW3,RW1 ,@RW1+d8 MOVEA MOVEA RW3 RW3,RW0 ,@RW0+d8 60 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW0+ ,@RW0+RW7 RW1,@RW0+ ,@RW0+RW7 RW2,@RW0+ ,@RW0+RW7 RW3,@RW0+ ,@RW0+RW7 RW4,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW2 RW2,@RW3 ,@RW3+d16 MOVEA MOVEA RW2 RW2,@RW2 ,@RW2+d16 MOVEA MOVEA RW2 RW2,@RW1 ,@RW1+d16 MOVEA MOVEA RW2 RW2,@RW0 ,@RW0+d16 MOVEA MOVEA RW2 RW2,RW7 ,@RW7+d8 MOVEA MOVEA RW2 RW2,RW6 ,@RW6+d8 MOVEA MOVEA RW2 RW2,RW5 ,@RW5+d8 MOVEA MOVEA RW2 RW2,RW4 ,@RW4+d8 MOVEA MOVEA RW2 RW2,RW3 ,@RW3+d8 MOVEA MOVEA RW2 RW2,RW2 ,@RW2+d8 MOVEA MOVEA RW2 RW2,RW1 ,@RW1+d8 MOVEA MOVEA RW2 RW2,RW0 ,@RW0+d8 40 +C +B RW0,@RW3 ,@RW3+d16 +A RW0,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,RW1 ,@RW1+d8 MOVEA MOVEA RW0 RW0,RW1 ,@RW1+d8 +1 30 MOVEA MOVEA RW1 RW1,RW0 ,@RW0+d8 20 MOVEA MOVEA RW0 RW0,RW0 ,@RW0+d8 10 +0 00 付録 B 命令 表 B.9-15 MOVEA RWi, ea 命令 ( 第 1 バイト =79H) 461 462 MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 +C +D +E +F +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 MOV +A R0,@RW2 @RW2+d16 R1,@RW2 @RW2+d16 R2,@RW2 @RW2+d16 R3,@RW2 @RW2+d16 R4,@RW2 @RW2+d16 R5,@RW2 @RW2+d16 R6,@RW2 @RW2+d16 R7,@RW2 @RW2+d16 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 MOV R0, MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH) MOVW MOVW RW2, RW2,@RW0 @RW0+d16 MOVW MOVW RW2, RW2,@RW1 @RW1+d16 MOVW MOVW RW2, RW2,@RW2 @RW2+d16 MOVW MOVW RW2, RW2,@RW3 @RW3+d16 MOVW MOVW RW1, RW1, RW6 @RW6+d8 MOVW MOVW RW1, RW1, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 MOVW MOVW MOVW MOVW RW1, MOVW MOVW RW2, MOVW MOVW RW3, MOVW MOVW RW4, MOVW MOVW RW5, MOVW MOVW RW6, MOVW MOVW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 MOVW MOVW RW1, @RW3+ RW1, addr16 MOVW MOVW RW0, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 MOVW MOVW RW1, RW1, @RW2+ @PC+d16 MOVW MOVW RW0, RW6 @RW6+d8 MOVW RW0, @RW1+ MOVW MOVW RW0, @RW2+ @PC+d16 MOVW MOVW RW0, @RW3+ RW0, addr16 +6 +7 +8 +9 +A +B +C +D +E +F MOVW MOVW @RW1+RW7 RW1, @RW1+ MOVW MOVW RW2, RW2, RW7 @RW7+d8 MOVW MOVW RW1, RW1, RW5 @RW5+d8 MOVW MOVW RW0, RW5 @RW5+d8 +5 MOVW MOVW RW2, @RW3+ RW2, addr16 MOVW MOVW RW3, @RW3+ RW3, addr16 MOVW MOVW RW3, RW3, @RW2+ @PC+d16 MOVW MOVW RW4, @RW3+ RW4, addr16 MOVW MOVW RW4, RW4, @RW2+ @PC+d16 MOVW MOVW RW5, @RW3+ RW5, addr16 MOVW MOVW RW5, @RW2+ @PC+d16 MOVW MOVW RW6, @RW3+ RW6, addr16 MOVW MOVW RW6, RW6, @RW2+ @PC+d16 MOVW MOVW RW7, @RW3+ RW7, addr16 MOVW MOVW RW7, RW7, @RW2+ @PC+d16 MOVW RW7, @RW1+RW7 MOVW MOVW RW7, RW7,@RW3 @RW3+d16 MOVW MOVW RW7, RW7,@RW2 @RW2+d16 MOVW MOVW RW7, RW7,@RW1 @RW1+d16 MOVW MOVW RW7, RW7,@RW0 @RW0+d16 MOVW MOVW RW7, RW7, RW7 @RW7+d8 MOVW MOVW RW7, RW7, RW6 @RW6+d8 MOVW MOVW RW7, RW7, RW5 @RW5+d8 MOVW MOVW RW7, RW7, RW4 @RW4+d8 MOVW MOVW RW7, RW7, RW3 @RW3+d8 MOVW RW6, MOVW @RW1+RW7 RW7, @RW1+ MOVW MOVW RW6, RW6,@RW3 @RW3+d16 MOVW MOVW RW6, RW6,@RW2 @RW2+d16 MOVW MOVW RW6, RW6,@RW1 @RW1+d16 MOVW MOVW RW6, RW6,@RW0 @RW0+d16 MOVW MOVW RW6, RW6, RW7 @RW7+d8 MOVW MOVW RW6, RW6, RW6 @RW6+d8 MOVW MOVW RW6, RW6, RW5 @RW5+d8 MOVW MOVW RW6, RW6, RW4 @RW4+d8 MOVW MOVW RW6, RW6, RW3 @RW3+d8 MOVW MOVW @RW1+RW7 RW6, @RW1+ MOVW MOVW RW5, RW5,@RW3 @RW3+d16 MOVW MOVW RW5, RW5,@RW2 @RW2+d16 MOVW MOVW RW5, RW5,@RW1 @RW1+d16 MOVW MOVW RW5, RW5,@RW0 @RW0+d16 MOVW MOVW RW5, RW5, RW7 @RW7+d8 MOVW MOVW RW5, RW5, RW6 @RW6+d8 MOVW MOVW RW5, RW5, RW5 @RW5+d8 MOVW MOVW RW5, RW5, RW4 @RW4+d8 MOVW RW4, MOVW @RW1+RW7 RW5, @RW1+ MOVW MOVW RW4, RW4,@RW3 @RW3+d16 MOVW MOVW RW4, RW4,@RW2 @RW2+d16 MOVW MOVW RW4, RW4,@RW1 @RW1+d16 MOVW MOVW RW4, RW4,@RW0 @RW0+d16 MOVW MOVW RW4, RW4, RW7 @RW7+d8 MOVW MOVW RW4, RW4, RW6 @RW6+d8 MOVW MOVW RW4, RW4, RW5 @RW5+d8 MOVW MOVW RW4, RW4, RW4 @RW4+d8 MOVW RW3, MOVW @RW1+RW7 RW4, @RW1+ MOVW MOVW RW3, RW3,@RW3 @RW3+d16 MOVW MOVW RW3, RW3,@RW2 @RW2+d16 MOVW MOVW RW3, RW3,@RW1 @RW1+d16 MOVW MOVW RW3, RW3,@RW0 @RW0+d16 MOVW MOVW RW3, RW3, RW7 @RW7+d8 MOVW MOVW RW3, RW3, RW6 @RW6+d8 MOVW MOVW RW3, RW3, RW5 @RW5+d8 MOVW MOVW RW3, RW3, RW4 @RW4+d8 MOVW RW2, MOVW @RW1+RW7 RW3, @RW1+ MOVW MOVW RW2, RW2, @RW2+ @PC+d16 MOVW RW1, MOVW @RW1+RW7 RW2, @RW1+ MOVW MOVW RW2, RW2, RW6 @RW6+d8 MOVW MOVW RW2, RW2, RW5 @RW5+d8 MOVW MOVW RW2, RW2, RW4 @RW4+d8 MOVW MOVW RW5, RW5, RW3 @RW3+d8 MOVW MOVW RW7, RW7, RW2 @RW2+d8 MOVW MOVW RW7, RW7, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW4 @RW4+d8 MOVW MOVW RW4, RW4, RW3 @RW3+d8 MOVW MOVW RW6, RW6, RW2 @RW2+d8 MOVW MOVW RW6, RW6, RW1 @RW1+d8 MOVW MOVW RW0, RW4 @RW4+d8 MOVW MOVW RW3, RW3, RW3 @RW3+d8 MOVW MOVW RW5, RW5, RW2 @RW2+d8 MOVW MOVW RW5, RW5, RW1 @RW1+d8 +4 MOVW MOVW RW2, RW2, RW3 @RW3+d8 MOVW MOVW RW4, RW4, RW2 @RW2+d8 MOVW MOVW RW4, RW4, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW3 @RW3+d8 MOVW MOVW RW3, RW3, RW2 @RW2+d8 MOVW MOVW RW3, RW3, RW1 @RW1+d8 MOVW MOVW RW0, RW3 @RW3+d8 MOVW MOVW RW2, RW2, RW2 @RW2+d8 MOVW MOVW RW2, RW2, RW1 @RW1+d8 +3 F0 MOVW MOVW RW7, RW7, RW0 @RW0+d8 E0 MOVW MOVW RW1, RW1, RW2 @RW2+d8 D0 MOVW MOVW RW6, RW6, RW0 @RW0+d8 C0 MOVW MOVW RW0, RW2 @RW2+d8 B0 MOVW MOVW RW5, RW5, RW0 @RW0+d8 A0 +2 90 MOVW MOVW RW4, RW4, RW0 @RW0+d8 80 MOVW MOVW RW1, RW1, RW1 @RW1+d8 70 MOVW MOVW RW3, RW3, RW0 @RW0+d8 60 MOVW MOVW RW0, RW1 @RW1+d8 50 MOVW MOVW RW2, RW2, RW0 @RW0+d8 40 +1 30 MOVW MOVW RW1, RW1, RW0 @RW0+d8 20 MOVW MOVW RW0, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-17 MOVW RWi, ea 命令 ( 第 1 バイト =7BH) 463 464 +F +E +D +C +B +A +9 +8 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3, R1 @RW3+d16, R1 MOV @RW2, R1 @RW2+d16, R1 MOV @RW1, R1 @RW1+d16, R1 MOV @RW0, R1 @RW0+d16, R1 MOV MOV MOV MOV MOV MOV MOV @RW3, R2 @RW3+d16, R2 MOV @RW2, R2 @RW2+d16, R2 MOV @RW1, R2 @RW1+d16, R2 MOV @RW0, R2 @RW0+d16, R2 MOV MOV MOV MOV MOV MOV MOV @RW3, R3 @RW3+d16, R3 MOV @RW2, R3 @RW2+d16, R3 MOV @RW1, R3 @RW1+d16, R3 MOV @RW0, R3 @RW0+d16, R3 MOV MOV MOV MOV MOV MOV MOV @RW3, R4 @RW3+d16, R4 MOV @RW2, R4 @RW2+d16, R4 MOV @RW1, R4 @RW1+d16, R4 MOV @RW0, R4 @RW0+d16, R4 MOV MOV MOV MOV MOV MOV MOV @RW3, R5 @RW3+d16, R5 MOV @RW2, R5 @RW2+d16, R5 MOV @RW1, R5 @RW1+d16, R5 MOV @RW0, R5 @RW0+d16, R5 MOV MOV MOV MOV MOV MOV MOV @RW3, R6 @RW3+d16, R6 MOV @RW2, R6 @RW2+d16, R6 MOV @RW1, R6 @RW1+d16, R6 MOV @RW0, R6 @RW0+d16, R6 MOV MOV MOV MOV MOV MOV MOV @RW3, R7 @RW3+d16, R7 MOV @RW2, R7 @RW2+d16, R7 MOV @RW1, R7 @RW1+d16, R7 MOV @RW0, R7 @RW0+d16, R7 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3+, R0 addr16, R0 MOV @RW3+, R1 addr16, R1 MOV MOV MOV MOV MOV @RW2+, R1 @PC+d16, R1 MOV @RW2+, R0 @PC+d16, R0 MOV MOV MOV @RW3+, R2 addr16, R2 MOV @RW2+, R2 @PC+d16, R2 MOV MOV MOV @RW3+, R3 addr16, R3 MOV @RW2+, R3 @PC+d16, R3 MOV MOV MOV @RW3+, R4 addr16, R4 MOV @RW2+, R4 @PC+d16, R4 MOV MOV MOV @RW3+, R5 addr16, R5 MOV @RW2+, R5 @PC+d16, R5 MOV MOV MOV @RW3+, R6 addr16, R6 MOV @RW2+, R6 @PC+d16, R6 MOV MOV MOV @RW3+, R7 addr16, R7 MOV @RW2+, R7 @PC+d16, R7 MOV @RW1+, R0 @RW1+RW7, R0 @RW1+, R1 @RW1+RW7, R1 @RW1+, R2 @RW1+RW7, R2 @RW1+, R3 @RW1+RW7, R3 @RW1+, R4 @RW1+RW7, R4 @RW1+, R5 @RW1+RW7, R5 @RW1+, R6 @RW1+RW7, R6 @RW1+, R7 @RW1+RW7, R7 MOV @RW0+, R0 @RW0+RW7, R0 @RW0+, R1 @RW0+RW7, R1 @RW0+, R2 @RW0+RW7, R2 @RW0+, R3 @RW0+RW7, R3 @RW0+, R4 @RW0+RW7, R4 @RW0+, R5 @RW0+RW7, R5 @RW0+, R6 @RW0+RW7, R6 @RW0+, R7 @RW0+RW7, R7 MOV @RW3, R0 @RW3+d16, R0 MOV @RW2, R0 @RW2+d16, R0 MOV @RW1, R0 @RW1+d16, R0 MOV @RW0, R0 @RW0+d16, R0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R7, R0 @RW7+d8, R0 R7, R1 @RW7+d8, R1 R7, R2 @RW7+d8, R2 R7, R3 @RW7+d8, R3 R7, R4 @RW7+d8, R4 R7, R5 @RW7+d8, R5 R7, R6 @RW7+d8, R6 R7, R7 @RW7+d8, R7 F0 +7 E0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R6, R0 @RW6+d8, R0 R6, R1 @RW6+d8, R1 R6, R2 @RW6+d8, R2 R6, R3 @RW6+d8, R3 R6, R4 @RW6+d8, R4 R6, R5 @RW6+d8, R5 R6, R6 @RW6+d8, R6 R6, R7 @RW6+d8, R7 D0 +6 C0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R5, R0 @RW5+d8, R0 R5, R1 @RW5+d8, R1 R5, R2 @RW5+d8, R2 R5, R3 @RW5+d8, R3 R5, R4 @RW5+d8, R4 R5, R5 @RW5+d8, R5 R5, R6 @RW5+d8, R6 R5, R7 @RW5+d8, R7 B0 +5 A0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R4, R0 @RW4+d8, R0 R4, R1 @RW4+d8, R1 R4, R2 @RW4+d8, R2 R4, R3 @RW4+d8, R3 R4, R4 @RW4+d8, R4 R4, R5 @RW4+d8, R5 R4, R6 @RW4+d8, R6 R4, R7 @RW4+d8, R7 90 +4 80 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R3, R0 @RW3+d8, R0 R3, R1 @RW3+d8, R1 R3, R2 @RW3+d8, R2 R3, R3 @RW3+d8, R3 R3, R4 @RW3+d8, R4 R3, R5 @RW3+d8, R5 R3, R6 @RW3+d8, R6 R3, R7 @RW3+d8, R7 70 +3 60 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R2, R0 @RW2+d8, R0 R2, R1 @RW2+d8, R1 R2, R2 @RW2+d8, R2 R2, R3 @RW2+d8, R3 R2, R4 @RW2+d8, R4 R2, R5 @RW2+d8, R5 R2, R6 @RW2+d8, R6 R2, R7 @RW2+d8, R7 50 +2 40 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R1, R0 @RW1+d8, R0 R1, R1 @RW1+d8, R1 R1, R2 @RW1+d8, R2 R1, R3 @RW1+d8, R3 R1, R4 @RW1+d8, R4 R1, R5 @RW1+d8, R5 R1, R6 @RW1+d8, R6 R1, R7 @RW1+d8, R7 30 +1 20 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R0, R0 @RW0+d8, R0 R0, R1 @RW0+d8, R1 R0, R2 @RW0+d8, R2 R0, R3 @RW0+d8, R3 R0, R4 @RW0+d8, R4 R0, R5 @RW0+d8, R5 R0, R6 @RW0+d8, R6 R0, R7 @RW0+d8, R7 10 +0 00 付録 B 命令 表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH) MOVW MOVW@RW2 @RW2, RW1 +d16, RW1 MOVW MOVW@RW3 @RW3, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0+, RW1 +RW7,RW1 MOVW MOVW@RW1 @RW1+, RW1 +RW7,RW1 MOVW MOVW@PC @RW2+, RW1 +d16, RW1 MOVW MOVW @RW3+, RW1 addr16, RW1 MOVW MOVW@RW2 @RW2, RW0 +d16, RW0 MOVW MOVW@RW3 @RW3, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0+, RW0 +RW7,RW0 MOVW MOVW@RW1 @RW1+, RW0 +RW7,RW0 MOVW MOVW@PC @RW2+, RW0 +d16, RW0 MOVW MOVW @RW3+, RW0 addr16, RW0 +B +C +D +E +F MOVW MOVW @RW3+, RW2 addr16, RW2 MOVW MOVW@PC @RW2+, RW2 +d16, RW2 MOVW MOVW@RW1 @RW1+, RW2 +RW7,RW2 MOVW MOVW@RW0 @RW0+, RW2 +RW7,RW2 MOVW MOVW@RW3 @RW3, RW2 +d16, RW2 MOVW MOVW@RW2 @RW2, RW2 +d16, RW2 MOVW MOVW @RW3+, RW3 addr16, RW3 MOVW MOVW@PC @RW2+, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1+, RW3 -+RW7,RW3 MOVW MOVW@RW0 @RW0+, RW3 +RW7,RW3 MOVW MOVW@RW3 @RW3, RW3 +d16, RW3 MOVW MOVW@RW2 @RW2, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1, RW3 +d16, RW3 MOVW MOVW @RW3+, RW4 addr16, RW4 MOVW MOVW@PC @RW2+, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1+, RW4 +RW7,RW4 MOVW MOVW@RW0 @RW0+, RW4 +RW7,RW4 MOVW MOVW@RW3 @RW3, RW4 +d16, RW4 MOVW MOVW@RW2 @RW2, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1, RW4 +d16, RW4 MOVW MOVW @RW3+, RW5 addr16, RW5 MOVW MOVW@PC @RW2+, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1+, RW5 +RW7,RW5 MOVW MOVW@RW0 @RW0+, RW5 +RW7,RW5 MOVW MOVW@RW3 @RW3, RW5 +d16, RW5 MOVW MOVW@RW2 @RW2, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW5 +d16, RW5 MOVW MOVW @RW3+, RW6 addr16, RW6 MOVW MOVW @PC @RW2+, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1+, RW6 +RW7,RW6 MOVW MOVW@RW0 @RW0+, RW6 +RW7,RW6 MOVW MOVW@RW3 @RW3, RW6 +d16, RW6 MOVW MOVW@RW2 @RW2, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW6 +d16, RW6 MOVW MOVW @RW3+, RW7 addr16, RW7 MOVW MOVW@PC @RW2+, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1+, RW7 +RW7,RW7 MOVW MOVW@RW0 @RW0+, RW7 +RW7,RW7 MOVW MOVW@RW3 @RW3, RW7 +d16, RW7 MOVW MOVW@RW2 @RW2, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1, RW7 +d16, RW7 MOVW MOVW@RW0 @RW0, RW7 +d16, RW7 +A MOVW MOVW@RW1 @RW1, RW2 +d16, RW2 MOVW MOVW@RW0 @RW0, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0, RW4 +d16, RW4 +9 MOVW MOVW@RW0 @RW0, RW3 +d16, RW3 MOVW MOVW@RW0 @RW0, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW0 +d16, RW0 +8 MOVW MOVW@RW0 @RW0, RW2 +d16, RW2 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW7, RW0 @RW7+d8, RW0 RW7, RW1 @RW7+d8, RW1 RW7, RW2 @RW7+d8, RW2 RW7, RW3 @RW7+d8, RW3 RW7, RW4 @RW7+d8, RW4 RW7, RW5 @RW7+d8, RW5 RW7, RW6 @RW7+d8, RW6 RW7, RW7 @RW7+d8, RW7 F0 +7 E0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW6, RW0 @RW6+d8, RW0 RW6, RW1 @RW6+d8, RW1 RW6, RW2 @RW6+d8, RW2 RW6, RW3 @RW6+d8, RW3 RW6, RW4 @RW6+d8, RW4 RW6, RW5 @RW6+d8, RW5 RW6, RW6 @RW6+d8, RW6 RW6, RW7 @RW6+d8, RW7 D0 +6 C0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW5, RW0 @RW5+d8, RW0 RW5, RW1 @RW5+d8, RW1 RW5, RW2 @RW5+d8, RW2 RW5, RW3 @RW5+d8, RW3 RW5, RW4 @RW5+d8, RW4 RW5, RW5 @RW5+d8, RW5 RW5, RW6 @RW5+d8, RW6 RW5, RW7 @RW5+d8, RW7 B0 +5 A0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW4, RW0 @RW4+d8, RW0 RW4, RW1 @RW4+d8, RW1 RW4, RW2 @RW4+d8, RW2 RW4, RW3 @RW4+d8, RW3 RW4, RW4 @RW4+d8, RW4 RW4, RW5 @RW4+d8, RW5 RW4, RW6 @RW4+d8, RW6 RW4, RW7 @RW4+d8, RW7 90 +4 80 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW3, RW0 @RW3+d8, RW0 RW3, RW1 @RW3+d8, RW1 RW3, RW2 @RW3+d8, RW2 RW3, RW3 @RW3+d8, RW3 RW3, RW4 @RW3+d8, RW4 RW3, RW5 @RW3+d8, RW5 RW3, RW6 @RW3+d8, RW6 RW3, RW7 @RW3+d8, RW7 70 +3 60 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW2, RW0 @RW2+d8, RW0 RW2, RW1 @RW2+d8, RW1 RW2, RW2 @RW2+d8, RW2 RW2, RW3 @RW2+d8, RW3 RW2, RW4 @RW2+d8, RW4 RW2, RW5 @RW2+d8, RW5 RW2, RW6 @RW2+d8, RW6 RW2, RW7 @RW2+d8, RW7 50 +2 40 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW1, RW0 @RW1+d8, RW0 RW1, RW1 @RW1+d8, RW1 RW1, RW2 @RW1+d8, RW2 RW1, RW3 @RW1+d8, RW3 RW1, RW4 @RW1+d8, RW4 RW1, RW5 @RW1+d8, RW5 RW1, RW6 @RW1+d8, RW6 RW1, RW7 @RW1+d8, RW7 30 +1 20 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW0, RW0 @RW0+d8, RW0 RW0, RW1 @RW0+d8, RW1 RW0, RW2 @RW0+d8, RW2 RW0, RW3 @RW0+d8, RW3 RW0, RW4 @RW0+d8, RW4 RW0, RW5 @RW0+d8, RW5 RW0, RW6 @RW0+d8, RW6 RW0, RW7 @RW0+d8, RW7 10 +0 00 付録 B 命令 表 B.9-19 MOVW RWi, ea 命令 ( 第 1 バイト =7DH) 465 466 XCH XCH XCH XCH R1, XCH XCH R1, R1,@RW2 W2+d16, A XCH XCH R2, XCH XCH R2, R2,@RW2 W2+d16, A XCH XCH R3, XCH XCH R3, R3,@RW2 W2+d16, A XCH XCH R4, XCH XCH R4, R4,@RW2 W2+d16, A XCH XCH R5, XCH XCH R5, R5,@RW2 W2+d16, A XCH XCH R6, XCH XCH R6, R6,@RW2 W2+d16, A XCH XCH R7, XCH XCH R7, R7,@RW2 W2+d16, A XCH XCH XCH XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, +F R0,@RW3+ R0, addr16 XCH XCH R1,@RW3+ R1, addr16 XCH XCH R2,@RW3+ R2, addr16 XCH XCH R3,@RW3+ R3, addr16 XCH XCH R4,@RW3+ R4, addr16 XCH XCH R5,@RW3+ R5, addr16 XCH XCH R6,@RW3+ R6, addr16 XCH XCH R7,@RW3+ R7, addr16 +E R0,@RW2+ @PC+d16 R1,@RW2+ @PC+d16 R2,@RW2+ @PC+d16 R3,@RW2+ @PC+d16 R4,@RW2+ @PC+d16 R5,@RW2+ @PC+d16 R6,@RW2+ @PC+d16 R7,@RW2+ @PC+d16 R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW1+RW7 R1,@RW1+ @RW1+RW7 R2,@RW1+ @RW1+RW7 R3,@RW1+ @RW1+RW7 R4,@RW1+ @RW1+RW7 R5,@RW1+ @RW1+RW7 R6,@RW1+ @RW1+RW7 R7,@RW1+ @RW1+RW7 +D R0,@RW1+ XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW0+RW7 R1,@RW0+ @RW0+RW7 R2,@RW0+ @RW0+RW7 R3,@RW0+ @RW0+RW7 R4,@RW0+ @RW0+RW7 R5,@RW0+ @RW0+RW7 R6,@RW0+ @RW0+RW7 R7,@RW0+ @RW0+RW7 XCH +C R0,@RW0+ +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 R0, +A R0,@RW2 W2+d16, A R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-20 XCH Ri, ea 命令 ( 第 1 バイト =7EH) XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2+ @PC+d16 RW1,@RW2+ @PC+d16 RW2,@RW2+ @PC+d16 RW3,@RW2+ @PC+d16 RW4,@RW2+ @PC+d16 RW5,@RW2+ @PC+d16 RW6,@RW2+ @PC+d16 RW7,@RW2+ @PC+d16 XCHW XCHW RW0,@RW3+ RW0, addr16 +E +F XCHW XCHW RW7,@RW3+ RW7, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1+ @RW1+RW7 RW1,@RW1+ @RW1+RW7 RW2,@RW1+ @RW1+RW7 RW3,@RW1+ @RW1+RW7 RW4,@RW1+ @RW1+RW7 RW5,@RW1+ @RW1+RW7 RW6,@RW1+ @RW1+RW7 RW7,@RW1+ @RW1+RW7 +D XCHW XCHW RW6,@RW3+ RW6, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 +C XCHW XCHW RW5,@RW3+ RW5, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 RW2,@RW3 @RW3+d16 RW3,@RW3 @RW3+d16 RW4,@RW3 @RW3+d16 RW5,@RW3 @RW3+d16 RW6,@RW3 @RW3+d16 RW7,@RW3 @RW3+d16 +B XCHW XCHW RW4,@RW3+ RW4, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 RW2,@RW2 @RW2+d16 RW3,@RW2 @RW2+d16 RW4,@RW2 @RW2+d16 RW5,@RW2 @RW2+d16 RW6,@RW2 @RW2+d16 RW7,@RW2 @RW2+d16 +A XCHW XCHW RW3,@RW3+ RW3, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 RW2,@RW1 @RW1+d16 RW3,@RW1 @RW1+d16 RW4,@RW1 @RW1+d16 RW5,@RW1 @RW1+d16 RW6,@RW1 @RW1+d16 RW7,@RW1 @RW1+d16 +9 XCHW XCHW RW2,@RW3+ RW2, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 RW2,@RW0 @RW0+d16 RW3,@RW0 @RW0+d16 RW4,@RW0 @RW0+d16 RW5,@RW0 @RW0+d16 RW6,@RW0 @RW0+d16 RW7,@RW0 @RW0+d16 +8 XCHW XCHW RW1,@RW3+ RW1, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW7 @RW7+d8 RW1, RW7 @RW7+d8 RW2, RW7 @RW7+d8 RW3, RW7 @RW7+d8 RW4, RW7 @RW7+d8 RW5, RW7 @RW7+d8 RW6, RW7 @RW7+d8 RW7, RW7 @RW7+d8 F0 +7 E0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW6 @RW6+d8 RW1, RW6 @RW6+d8 RW2, RW6 @RW6+d8 RW3, RW6 @RW6+d8 RW4, RW6 @RW6+d8 RW5, RW6 @RW6+d8 RW6, RW6 @RW6+d8 RW7, RW6 @RW6+d8 D0 +6 C0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW5 @RW5+d8 RW1, RW5 @RW5+d8 RW2, RW5 @RW5+d8 RW3, RW5 @RW5+d8 RW4, RW5 @RW5+d8 RW5, RW5 @RW5+d8 RW6, RW5 @RW5+d8 RW7, RW5 @RW5+d8 B0 +5 A0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW4 @RW4+d8 RW1, RW4 @RW4+d8 RW2, RW4 @RW4+d8 RW3, RW4 @RW4+d8 RW4, RW4 @RW4+d8 RW5, RW4 @RW4+d8 RW6, RW4 @RW4+d8 RW7, RW4 @RW4+d8 90 +4 80 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW3 @RW3+d8 RW1, RW3 @RW3+d8 RW2, RW3 @RW3+d8 RW3, RW3 @RW3+d8 RW4, RW3 @RW3+d8 RW5, RW3 @RW3+d8 RW6, RW3 @RW3+d8 RW7, RW3 @RW3+d8 70 +3 60 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW2 @RW2+d8 RW1, RW2 @RW2+d8 RW2, RW2 @RW2+d8 RW3, RW2 @RW2+d8 RW4, RW2 @RW2+d8 RW5, RW2 @RW2+d8 RW6, RW2 @RW2+d8 RW7, RW2 @RW2+d8 50 +2 40 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW1 @RW1+d8 RW1, RW1 @RW1+d8 RW2, RW1 @RW1+d8 RW3, RW1 @RW1+d8 RW4, RW1 @RW1+d8 RW5, RW1 @RW1+d8 RW6, RW1 @RW1+d8 RW7, RW1 @RW1+d8 30 +1 20 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW0 @RW0+d8 RW1, RW0 @RW0+d8 RW2, RW0 @RW0+d8 RW3, RW0 @RW0+d8 RW4, RW0 @RW0+d8 RW5, RW0 @RW0+d8 RW6, RW0 @RW0+d8 RW7, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-21 XCHW RWi, ea 命令 ( 第 1 バイト =7FH) 467 付録 C フラッシュメモリモードのタイミングダイアグラム 付録 C フラッシュメモリモードのタイミングダイアグラム 以下にフラッシュメモリモードにおける MB90F598/F598G の外部端子の各タイミン グダイアグラムを示します。 ■ 読出しアクセスによるデータリード 図 C-1 読出しアクセスのタイミングダイアグラム tRC アドレス安定 AQ16~AQ0 tACC CE tOE tDF OE tOEH WE tOH tCE ハイ インピーダンス 出力定義済 ハイインピーダンス DQ7~DQ0 ■ 書込み , データポーリング , 読出し (WE コントロール ) 図 C-2 書込みアクセス (WE コントロール ) のタイミングダイアグラム 3rdバスサイクル AQ18 ~ AQ0 データポーリング PA 7AAAAH tWC tAS PA tRC tAH CE tGHWL OE tWP tWHWH1 WE tOE tWPH tCS DQ7 ~ DQ0 tDF tDH A0H PD DQ7 DOUT tDS tOH 5.0V tCE PA : 書込みアドレス PD : 書込みデータ DQ7 : 書込みデータの反転出力 DOUT : 書込みデータの出力 ( 注意事項 ) 4 つのバスサイクルの内の後最後の 2 つのバスサイクルシーケンスを記述します。 468 付録 C フラッシュメモリモードのタイミングダイアグラム ■ 書込み , データポーリング , 読出し (CE コントロール ) 図 C-3 書込みアクセス (CE コントロール)のタイミングダイアグラム 3rdバスサイクル データポーリング PA 7AAAAH AQ18~AQ0 tWC tAS PA tAH tWH WE tGHWL OE tCP tWHWH1 CE tCPH tWS tDH A0H PD DQ7 DOUT DQ7~DQ0 tDS 5.0V PA : 書込みアドレス PD : 書込みデータ DQ7 : 書込みデータの反転出力 DOUT : 書込みデータの出力 ( 注意事項 ) 4 つのバスサイクルの内の後最後の 2 つのバスサイクルシーケンスを記述します。 ■ チップ消去 / セクタ消去コマンドシーケンス 図 C-4 書込みアクセス ( チップ消去 / セクタ消去 ) のタイミングダイアグラム tAS AQ18 ~ AQ0 7AAAAH tAH 75555H 7AAAAH 7AAAAH 75555H SA* CE tGHWL OE tWP WE tWPH tCS tDH DQ7 ~ DQ0 AAH 55H 80H AAH 55H 10H/30H tDS VCC tVCS *: SA はセクタ消去におけるセクタアドレスです。7AAAAH ( または 6AAAAH) はチップ消去における アドレスです。 469 付録 C フラッシュメモリモードのタイミングダイアグラム ■ データポーリング 図 C-5 データポーリングのタイミングダイアグラム tCH CE tDF tOE OE tOEH WE tCE tOH * DQ7 ハイ インピーダンス DQ7=有効データ DQ7 tWHWH1または tWHWH2 DQ6~DQ0 DQ6~DQ0= 有効データ DQ6~DQ0=無効 tOE *: DQ7 は有効データです ( デバイスは自動動作を停止します )。 ■ トグルビット 図 C-6 ドグルビットのタイミングダイアグラム CE tOEH WE tOES OE * データ(DQ7~DQ0) DQ6=トグル DQ6=トグル DQ6=トグル停止 tOE *: DQ7 は有効データです ( デバイスは自動動作を停止します )。 470 DQ7~DQ0 =有効 付録 C フラッシュメモリモードのタイミングダイアグラム ■ 書込み / 消去中の RY/BY タイミング 図 C-7 書込み / 消去中の RY/BY 信号出力のタイミングダイアグラム CE 最終書込みパルスの 立上りエッジ WE 書込みまたは消去 RY/BY tビジー ■ RST と RY/BY タイミング 図 C-8 ハードウェアリセット時の RY/BY 信号出力のタイミングダイアグラム CE RY/BY tRP RST tレディ 471 付録 C フラッシュメモリモードのタイミングダイアグラム ■ セクタプロテクト許可 / セクタプロテクト検証 図 C-9 セクタプロテクト許可 / セクタプロテクト検証 AQ18~AQ9 SAy SAx (AQ8, AQ2, AQ1)=(0, 1, 0) AQ8,AQ2,AQ1 MD0 12V 5V MD2 12V 5V tVLHT tVLHT OE WE CE tWPP tOESP tCSP DQ7~DQ0 01H tOE SAX: 最初のセクタアドレス SAY: 次のセクタアドレス ■ セクタプロテクト一時取消 図 C-10 セクタプロテクト一時取消 MD1 12V 5V 5V OE WE tVLHT RY/BY 472 書込み/消去コマンドシーケンス 付録 D MB90595 割込みベクタ一覧表 付録 D MB90595 割込みベクタ一覧表 割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の FFFC00H ∼ FFFFFFH に割り当ててあり , ソフトウェア割込みと共通で使用しています。 ■ MB90595 割込みベクタ一覧表 表 D-1 に , MB90595 シリーズの割込みベクタ一覧表を示します。 表 D-1 MB90595 割込みベクタ一覧表 (1 / 2) ソフトウェア 割込み命令 ベクタアドレス L ベクタアドレス M ベクタアドレス H モードレジスタ 割込み No ハードウェア割込み INT 0 FFFFFCH FFFFFDH FFFFFEH 未使用 #0 なし . . . . . . . . . . . . . . . . . . . . . INT 7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 なし INT 8 FFFFDCH FFFFDDH FFFFDEH FFFFDF #8 (RESET ベクタ) INT 9 FFFFD8H FFFFD9H FFFFDAH 未使用 #9 アドレス一致検出機能 INT 10 FFFFD4H FFFFD5H FFFFD6H 未使用 #10 < 例外 > INT 11 FFFFD0H FFFFD1H FFFFD2H 未使用 #11 CAN RX INT 12 FFFFCCH FFFFCDH FFFFCEH 未使用 #12 CAN TX/NS INT 13 FFFFC8H FFFFC9H FFFFCAH 未使用 #13 外部割込み INT0/INT1 INT 14 FFFFC4H FFFFC5H FFFFC6H 未使用 #14 タイムベースタイマ INT 15 FFFFC0H FFFFC1H FFFFC2H 未使用 #15 16bit リロードタイマ 0 INT 16 FFFFBCH FFFFBDH FFFFBEH 未使用 #16 A/D コンバータ INT 17 FFFFB8H FFFFB9H FFFFBAH 未使用 #17 入出力タイマ INT 18 FFFFB4H FFFFB5H FFFFB6H 未使用 #18 外部割込み INT2/INT3 INT 19 FFFFB0H FFFFB1H FFFFB2H 未使用 #19 シリアル I/O INT 20 FFFFACH FFFFADH FFFFAEH 未使用 #20 外部割込み INT4/INT5 INT 21 FFFFA8H FFFFA9H FFFFAAH 未使用 #21 インプットキャプチャ 0 INT 22 FFFFA4H FFFFA5H FFFFA6H 未使用 #22 PPG 0/1 INT 23 FFFFA0H FFFFA1H FFFFA2H 未使用 #23 アウトプットコンペア 0 INT 24 FFFF9CH FFFF9DH FFFF9EH 未使用 #24 PPG 2/3 INT 25 FFFF98H FFFF99H FFFF9AH 未使用 #25 外部割込み INT6/INT7 INT 26 FFFF94H FFFF95H FFFF96H 未使用 #26 インプットキャプチャ1 INT 27 FFFF90H FFFF91H FFFF92H 未使用 #27 PPG 4/5 INT 28 FFFF8CH FFFF8DH FFFF8EH 未使用 #28 アウトプットコンペア1 INT 29 FFFF88H FFFF89H FFFF8AH 未使用 #29 PPG 6/7 INT 30 FFFF84H FFFF85H FFFF86H 未使用 #30 インプットキャプチャ2 INT 31 FFFF80H FFFF81H FFFF82H 未使用 #31 PPG 8/9 473 付録 D MB90595 割込みベクタ一覧表 表 D-1 MB90595 割込みベクタ一覧表 (2 / 2) ソフトウェア 割込み命令 ベクタアドレス L ベクタアドレス M ベクタアドレス H モードレジスタ 割込み No ハードウェア割込み INT 32 FFFF7CH FFFF7DH FFFF7EH 未使用 #32 アウトプットコンペア2 INT 33 FFFF78H FFFF79H FFFF7AH 未使用 #33 インプットキャプチャ3 INT 34 FFFF74H FFFF75H FFFF76H 未使用 #34 PPG A/B INT 35 FFFF70H FFFF71H FFFF72H 未使用 #35 アウトプットコンペア3 INT 36 FFFF6CH FFFF6DH FFFF6EH 未使用 #36 16bit リロードタイマ 1 INT 37 FFFF68H FFFF69H FFFF6AH 未使用 #37 UART 0 RX INT 38 FFFF64H FFFF65H FFFF66H 未使用 #38 UART 0 TX INT 39 FFFF60H FFFF61H FFFF62H 未使用 #39 UART 1 RX INT 40 FFFF5CH FFFF5DH FFFF5EH 未使用 #40 UART 1 TX INT 41 FFFF58H FFFF59H FFFF5AH 未使用 #41 フラッシュメモリ INT 42 FFFF54H FFFF55H FFFF56H 未使用 #42 遅延割込み INT 43 FFFF50H FFFF51H FFFF52H 未使用 #43 なし . . . . . . . . . . . . . . . . . . . . . INT 254 FFFC04H FFFC05H FFFC06H 未使用 #254 なし INT 255 FFFC00H FFFC01H FFFC02H 未使用 #255 なし ■ 割込み要因と割込みベクタ・割込み制御レジスタ 付録 D 表 D-2 に , MB90595 シリーズの割込み要因 , 割込みベクタ , 割込み制御レジス タの関係を示します。 表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (1 / 2) 割込み要因 I2OS クリア 割込みベクタ 割込み制御レジスタ 番号 アドレス 番号 アドレス リセット × # 08 FFFFDCH - - INT9 命令 × # 09 FFFFD8H - - 例外 × # 10 FFFFD4H - - CAN RX × # 11 FFFFD0H CAN TX/NS × # 12 FFFFCCH ICR00 0000B0H 外部割込み INT0/INT1 ○ # 13 FFFFC8H タイムベースタイマ × # 14 FFFFC4H ICR01 0000B1H 16bit リロードタイマ 0 ○ # 15 FFFFC0H A/D コンバータ ○ # 16 FFFFBCH ICR02 0000B2H 入出力タイマ × # 17 FFFFB8H 外部割込み INT2/INT3 ○ # 18 FFFFB4H ICR03 0000B3H シリアル I/O ○ # 19 FFFFB0H 外部割込み INT4/INT5 ○ # 20 FFFFACH ICR04 0000B4H 474 付録 D MB90595 割込みベクタ一覧表 表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (2 / 2) 割込み要因 I2OS クリア 割込みベクタ 番号 アドレス インプットキャプチャ 0 ○ # 21 FFFFA8H PPG 0/1 × # 22 FFFFA4H アウトプットコンペア 0 ○ # 23 FFFFA0H PPG 2/3 × # 24 FFFF9CH 外部割込み INT6/INT7 ○ # 25 FFFF98H インプットキャプチャ 1 ○ # 26 FFFF94H PPG 4/5 × # 27 FFFF90H アウトプットコンペア 1 ○ # 28 FFFF8CH PPG 6/7 × # 29 FFFF88H インプットキャプチャ 2 ○ # 30 FFFF84H PPG 8/9 × # 31 FFFF80H アウトプットコンペア 2 ○ # 32 FFFF7CH インプットキャプチャ 3 ○ # 33 FFFF78H PPG A/B × # 34 FFFF74H アウトプットコンペア 3 ○ # 35 FFFF70H 16bit リロードタイマ 1 ○ # 36 FFFF6CH UART 0 RX ◎ # 37 FFFF68H UART 0 TX ○ # 38 FFFF64H UART 1 RX ◎ # 39 FFFF60H UART 1 TX ○ # 40 FFFF5CH フラッシュメモリ × # 41 FFFF58H 遅延割込み × # 42 FFFF54H 割込み制御レジスタ 番号 アドレス ICR05 0000B5H ICR06 0000B6H ICR07 0000B7H ICR08 0000B8H ICR09 0000B9H ICR10 0000BAH ICR11 0000BBH ICR12 0000BCH ICR13 0000BDH ICR14 0000BEH ICR15 0000BFH ○ : I2OS 割込みクリア信号または I2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアさ れます。 ◎ : I2OS 割込みクリア信号または I2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアさ れます。ストップ要求はあります。 × : I2OS 割込みクリア信号にて割込み要求フラグはクリアされません。 ( 注意事項 ) ・1 つの割込み番号に対して 2 つの割込み要因を持つ周辺モジュールについては , I2OS 割込みクリア信号にて , 両方の割込み要求フラグがクリアされます。 ・I2OS の終了時には , I2OS クリア信号が同じ割込み番号に割り当てられている複数の割 込みフラグに送られます。 ・I2OS が許可されていると , 同じ割込みコントロールレジスタ (ICR) に割当てられてい る 2 つの 割込みの内のいずれか 1 つが発生すると , I2OS を始動します。このことは , 本来各割込み 要因に固有であるべき I2OS ディスクルプタが , 2 つの割込みで共有され ていることを意味し , 従って一方の割込みが許可されている時は , 他方の割込みを不許 可にしなければなりません。 475 付録 D MB90595 割込みベクタ一覧表 476 索引 Numerics 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアのレジスタ一覧 ..........................................................................122 16 ビットインプットキャプチャ 16 ビットインプットキャプチャのレジスタ一覧 ..........................................................................122 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) のレジスタ配置 ..........................................................................148 16 ビット入出力タイマ 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................121 16 ビットフリーランタイマ 16 ビットフリーランタイマ ................................120 16 ビットフリーランタイマのタイミング ........128 16 ビットフリーランタイマの動作 ....................127 16 ビットフリーランタイマの ブロックダイヤグラム ..................................123 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................122 16 ビットリロードタイマ 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ...............................................142 16 ビットリロードタイマのアンダフロー動作 ..........................................................................151 16 ビットリロードタイマの出力端子機能 ..........................................................................152 16 ビットリロードタイマの内部クロック動作 ..........................................................................149 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................149 16ビットリロードタイマのブロックダイヤグラム ..........................................................................143 16 ビットリロードタイマのレジスタ ................144 16 ビットリロードレジスタ 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) のレジスタ配置 ..........................................................................148 1M ビットフラッシュメモリ 1M ビットフラッシュメモリのセクタ構成 ..........................................................................349 1M ビットフラッシュメモリの特長 ..................348 1M ビットフラッシュメモリのプログラム例 ..........................................................................380 24 ビットオペランド 24 ビットオペランド指定 ......................................23 8/16 ビット PPG 8/16 ビット PPG のカウントクロックの選択 ..........................................................................170 8/16 ビット PPG の各ハードウェアの初期値 ..........................................................................173 8/16 ビット PPG の機能 .......................................156 8/16 ビット PPG の出力動作 ...............................168 8/16 ビット PPG の動作 .......................................167 8/16 ビット PPG の動作モード ........................... 167 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................171 8/16 ビット PPG のブロックダイヤグラム ..........................................................................157 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................169 8/16 ビット PPG のレジスタ ............................... 159 8/16 ビット PPG の割込み ................................... 172 477 A E A/D コントロールステータスレジスタ A/D コントロールステータスレジスタ (ADCS0) ..........................................................................190 A/D コントロールステータスレジスタ (ADCS1) ..........................................................................192 A/D コンバータ A/D コンバータの特長 .........................................186 A/D コンバータのブロックダイヤグラム .........188 A/D コンバータのレジスタ一覧 .........................189 EI2OS EI2OS( 拡張インテリジェント I/O サービス ) ..........................................................................226 EI2OS を使った変換動作 .....................................198 インテリジェント I/O サービス (EI2OS) 機能と 割込み .............................................................. 142 拡張インテリジェント I/O サービス (EI2OS) ..............................................................45, 58, 253 拡張インテリジェント I/O サービス (EI2OS) の 構造 .................................................................... 59 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ........................................................64 単発モード時の EI2OS の起動例 ........................ 199 停止モード時の EI2OS の起動例 ........................ 201 データ保護機能のフロー例 (EI2OS の場合 ) ..........................................................................203 連続モード時の EI2OS の起動例 ........................ 200 EI2OS ステータスレジスタ EI2OS ステータスレジスタ (ISCS) .......................62 C CAN コントローラ CAN コントローラの受信フローチャート ..........................................................................318 CAN コントローラの使用上の注意 ...................326 CAN コントローラの送信の開始 .......................313 CAN コントローラの送信の完了 .......................314 CAN コントローラの送信フローチャート ..........................................................................314 CAN コントローラの送信要求の解除 ...............313 CAN コントローラの特長 ...................................274 CAN コントローラのブロックダイヤグラム ..........................................................................275 CLK 同期ボーレート CLK 同期ボーレート ............................................217 CLK 同期モード CLK 同期モードの通信開始 ................................247 CLK 同期モードの通信終了 ................................247 CLK 同期モードの転送データフォーマット ..........................................................................246 CLK 同期モードを使用する場合の , 各制御 レジスタの設定値 ..........................................247 CLK 非同期ボーレート CLK 非同期ボーレート ........................................217 CPU CPU の概要 ..............................................................20 CPU メモリ空間の概要 ..........................................21 CPU 間欠動作 CPU 間欠動作 ..........................................................95 D DLC レジスタ メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................279 DLC レジスタ x DLC レジスタ x(x=0 ∼ 15)(DLCRx) ..................310 DTP DTP/ 外部割込みの概要 .......................................176 DTP/ 外部割込みの使用上の注意 .......................182 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................176 DTP/ 外部割込みのレジスタ ...............................176 DTP の動作 ............................................................179 DTP 要求と外部割込み要求の切換え ................181 478 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................432 I I/O ポート I/O ポート .............................................................. 106 I/O ポートのレジスタ .......................................... 107 I/O マップ I/O マップ .............................................................. 400 I/O レジスタアドレスポインタ I/O レジスタアドレスポインタ (IOA) ................. 61 ID ID の設定 ...............................................................319 IDE レジスタ IDE レジスタ (IDER) ............................................ 292 ID レジスタ メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................277 ID レジスタ x ID レジスタ x(x=0 ∼ 15)(IDRx) .......................... 308 M MB90595 MB90595 割込みベクタ一覧表 ........................... 473 MB90F598/F598G MB90F598/F598G シリアル書込み接続の基本構成 ..........................................................................386 P PLL クロック メインクロックと PLL クロックの切換え ......... 96 PPG0,PPG1 出力端子制御レジスタ PPG0,PPG1 出力端子制御レジスタ (PPG01) ............................................................ 165 PPG0 動作モード制御レジスタ PPG0 動作モード制御レジスタ (PPGC0) ...........160 PPG1 動作モード制御レジスタ PPG1 動作モード制御レジスタ (PPGC1) ...........162 PWM1, PWM2 コンペアレジスタ PWM1, PWM2 コンペアレジスタ ......................333 PWM1, PWM2 選択レジスタ PWM1, PWM2 選択レジスタ ...............................334 PWM 制御 0 レジスタ PWM 制御 0 レジスタ ..........................................332 R ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................344 ROM ミラー機能選択レジスタ ROM ミラー機能選択レジスタ (ROMM) ..........345 RST と RY/BY タイミング RST と RY/BY タイミング ..................................471 U UART0 UART0 の応用例 ...................................................227 UART0 の動作モード ...........................................216 UART0 の特長 .......................................................206 UART0 のブロックダイヤグラム .......................207 UART0 のレジスタ ...............................................208 UART1 UART1 の応用例 ( モード 1 使用時のシステム 構築例 ) ............................................................252 UART1 のクロック選択 .......................................242 UART1 の使用上の注意 .......................................253 UART1 の通信フローチャート ...........................252 UART1 の動作モード ...........................................241 UART1 の特長 .......................................................230 UART1 のフラグ ...................................................248 UART1 のブロックダイヤグラム .......................231 UART1 のレジスタ一覧 .......................................232 UART1 の割込みとフラグのセットタイミング ..........................................................................249 UART1 の割込み発生要因 ...................................248 UART1 通信プリスケーラコントロールレジスタ UART1 通信プリスケーラコントロールレジスタ (U1CDCR) ........................................................240 あ アウトプットコンペア アウトプットコンペア ........................................ 129 アウトプットコンペア ( モジュールごとに 2 チャネル ) ................. 120 アウトプットコンペアのコントロールステータス レジスタ .......................................................... 131 アウトプットコンペアのコンペアレジスタ ..........................................................................130 アウトプットコンペアのタイミング ................ 135 アウトプットコンペアのブロックダイヤグラム ..........................................................................129 アウトプットコンペアレジスタ 0 アウトプットコンペアレジスタ 0 値と コンペアマッチしたときのカウンタクリア ..........................................................................127 アウトプットレジスタ 0 インプットデータレジスタ 0(UIDR0) と アウトプットレジスタ 0(UODR0) ............... 213 アキュムレータ アキュムレータ (A) ................................................ 29 アクセス 読出しアクセスによるデータリード ................ 468 アクセプタンスフィルタ アクセプタンスフィルタの設定 ........................ 320 アクセプタンスフィルタリング アクセプタンスフィルタリング ........................ 315 アクセプタンスマスク選択レジスタ アクセプタンスマスク選択レジスタ (AMSR) ............................................................ 303 アクセプタンスマスクレジスタ 0 および 1 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................305 アドレス アドレス作成の方式 .............................................. 21 アドレス一致検出機能 アドレス一致検出機能のシステム構成例 ........340 アドレス一致検出機能の動作 ............................339 アドレス一致検出機能のブロックダイヤグラム ..........................................................................336 アドレス指定 バンク方式によるアドレス指定 .......................... 24 アドレッシング アドレッシング ....................................................409 間接アドレッシング ............................................ 418 直接アドレッシング ............................................ 411 アナログ入力許可レジスタ アナログ入力許可レジスタ ........................110, 186 アンダフロー 16 ビットリロードタイマのアンダフロー動作 ..........................................................................151 い イベントカウント 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ............................................... 142 インターバル割込み インターバル割込み機能 .................................... 114 インタラプトレベルマスクレジスタ インタラプトレベルマスクレジスタ (ILM) .......33 479 インテリジェント I/O サービス インテリジェント I/O サービス (EI2OS) 機能と 割込み ..............................................................142 インピーダンス 入力インピーダンス .............................................187 インプットキャプチャ インプットキャプチャ .........................................136 インプットキャプチャ ( モジュールごとに 2 チャネル ) ..................121 インプットキャプチャ入力タイミング .............139 インプットキャプチャの取り込みタイミング例 ..........................................................................139 インプットキャプチャのブロックダイヤグラム ..........................................................................136 インプットキャプチャコントロールステータス レジスタ インプットキャプチャコントロールステータス レジスタ ..........................................................137 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ .............137 インプットデータレジスタ 0 インプットデータレジスタ 0(UIDR0) と アウトプットレジスタ 0(UODR0) ...............213 う ウォッチドッグ ウォッチドッグカウンタ .....................................118 ウォッチドッグ停止 .............................................118 ウォッチドッグタイマ ウォッチドッグタイマの起動方法 .....................118 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................116 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................117 え エラーカウンタ 受信および送信エラーカウンタ (RTEC) ...........288 お オーバフロー オーバフローによるカウンタクリア .................127 か 外形寸法図 パッケージ外形寸法図 .............................................6 外部イベントカウント 外部イベントカウント .........................................150 外部クロック 内部クロックおよび外部クロック .....................219 外部シフトクロックモード 外部シフトクロックモード .................................265 外部割込み DTP/ 外部割込みの概要 .......................................176 DTP/ 外部割込みの使用上の注意 .......................182 480 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................176 DTP/ 外部割込みのレジスタ ............................... 176 DTP 要求と外部割込み要求の切換え ................ 181 外部割込みの動作 ................................................179 概要 製品概要 .................................................................... 2 カウンタ カウンタの動作状態 ............................................ 153 カウントクロック 8/16 ビット PPG のカウントクロックの選択 ..........................................................................170 書込み / 消去中の RY/BY タイミング 書込み / 消去中の RY/BY タイミング ............... 471 拡張インテリジェント I/O サービス EI2OS( 拡張インテリジェント I/O サービス ) ..........................................................................226 拡張インテリジェント I/O サービス (EI2OS) ..............................................................45, 58, 253 拡張インテリジェント I/O サービス (EI2OS) の 構造 .................................................................... 59 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ........................................................64 拡張インテリジェント I/O サービスディスクリプタ 拡張インテリジェント I/O サービス ディスクリプタ (ISD) ...................................... 60 拡張シリアル I/O インタフェース 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................270 間接アドレッシング 間接アドレッシング ............................................ 418 く クロック UART1 のクロック選択 ...................................... 242 クロック選択の状態遷移 ...................................... 97 クロック発生部の注意 .......................................... 72 内部クロックおよび外部クロック .................... 219 ネガティブクロック動作 .................................... 271 発振クロック周波数とシリアルクロック 入力周波数について ...................................... 389 クロック選択レジスタ クロック選択レジスタ (CKSCR) .......................... 85 こ コマンド コマンドシーケンス表 ........................................ 355 コモンレジスタバンクプリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................38 コンディションコードレジスタ コンディションコードレジスタ (CCR) ............... 31 コントロールステータスレジスタ アウトプットコンペアのコントロールステータス レジスタ .......................................................... 131 コントロールステータスレジスタ .................... 125 コントロールステータスレジスタ (FMCS) ..........................................................................353 コンペアマッチ アウトプットコンペアレジスタ 0 値と コンペアマッチしたときのカウンタクリア ..........................................................................127 コンペアレジスタ 2 組のコンペアレジスタによる出力波形例 ( 出力の初期値は 0 とする ) ..........................134 アウトプットコンペアのコンペアレジスタ ..........................................................................130 コンペアレジスタ 0,1 を使用したときの出力 波形例 ( 出力の初期値は 0 とする ) .............134 し システムスタックポインタ ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) ..................30 実効アドレス 実効アドレスフィールド .....................................427 実効アドレスフィールド 実効アドレスフィールド .....................................410 実行サイクル 実行サイクル数 .....................................................425 実行サイクル数計算方法 .....................................425 シフト動作 シフト動作のスタート / ストップ タイミング ......................................................268 受信 受信完了 .................................................................317 受信オーバラン 受信オーバラン .....................................................316 受信オーバランレジスタ 受信オーバランレジスタ (ROVRR) ...................301 受信および送信エラーカウンタ 受信および送信エラーカウンタ (RTEC) ...........288 受信完了レジスタ 受信完了レジスタ (RCR) .....................................299 受信動作 受信動作時 ( モード 0, モード 1, モード 3) の フラグのセットタイミング ..........................223 非同期 ( 調歩同期 ) モードの受信動作 ..............244 受信動作時 ( モード 2) のフラグの セットタイミング ..........................................224 受信割込み許可レジスタ 受信割込み許可レジスタ (RIER) ........................302 シリアル I/O シリアル I/O の動作 .............................................264 シリアル I/O の動作状態 .....................................266 シリアル I/O のブロックダイヤグラム .............256 シリアル I/O のレジスタ .....................................257 シリアル I/O プリスケーラ シリアル I/O プリスケーラ (SCDCR) ................263 シリアルアウトプットデータレジスタ 1 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................237 シリアルインプットデータレジスタ 1 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................237 シリアル書込み MB90F598/F598G シリアル書込み接続の基本構成 ..........................................................................386 シリアル書込み接続例 ( ユーザ電源使用時 ) .....................................390 シリアル書込み接続例 ( ライタから電源供給時 ) ............................. 392 シリアルクロック入力周波数 発振クロック周波数とシリアルクロック 入力周波数について ...................................... 389 シリアルコントロールレジスタ シリアルコントロールレジスタ (SCR1) ........... 235 シリアルシフトデータレジスタ シリアルシフトデータレジスタ (SDR) ............. 262 シリアルステータスレジスタ 1 シリアルステータスレジスタ 1(SSR1) ..............238 シリアルモードコントロールステータスレジスタ シリアルモードコントロールステータスレジスタ (SMCS) .............................................................258 シリアルモードコントロールレジスタ 0 シリアルモードコントロールレジスタ 0 (UMC0) ............................................................ 209 シリアルモードレジスタ 1 シリアルモードレジスタ 1(SMR1) .................... 233 す 推奨設定例 推奨設定例 ............................................................ 103 スタックポインタ ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) .................. 30 ステータスフラグ 送受信動作時のステータスフラグ .................... 226 ステータスレジスタ ステータスレジスタ 0 (USR0) ............................211 ステッピングモータコントローラ ステッピングモータコントローラの ブロックダイヤグラム ..................................330 ステッピングモータコントローラのレジスタ ..........................................................................331 ストップモード ストップモードの解除 .......................................... 92 ストップモードへの遷移 ...................................... 92 スリープモード スリープモードの解除 .......................................... 89 スリープモードへの遷移 ...................................... 89 レジスタ シリアルステータスレジスタ 1(SSR1) ..............238 せ 制御ステータスレジスタ 制御ステータスレジスタ (CSR) .........................282 セキュリティ フラッシュセキュリティの特長 ........................ 379 セクタ 1M ビットフラッシュメモリのセクタ構成 ..........................................................................349 セクタ消去 チップ消去 / セクタ消去コマンドシーケンス ..........................................................................469 481 フラッシュメモリのセクタ消去手順 .................372 フラッシュメモリのセクタ消去の 一時停止 ..........................................................374 フラッシュメモリのセクタ消去の再開 .............375 フラッシュメモリの任意のデータの消去 ( セクタ消去 ) ..................................................371 セクタ消去タイマフラグ セクタ消去タイマフラグ (DQ3) .........................362 セクタプロテクト セクタプロテクト一時取消 .................................472 セクタプロテクト許可 / セクタプロテクト検証 ..........................................................................472 全体コントロールレジスタ 全体コントロールレジスタ .........................276, 281 専用レジスタ 専用レジスタ ...........................................................27 そ 送受信動作 送受信動作時のステータスフラグ .....................226 送信 RTR レジスタ 送信 RTR レジスタ (TRTRR) ..............................294 送信解除レジスタ 送信解除レジスタ (TCANR) ...............................296 送信完了レジスタ 送信完了レジスタ (TCR) .....................................297 送信動作 非同期 ( 調歩同期 ) モードの送信動作 ..............245 送信動作時のフラグのセットタイミング .........225 送信要求レジスタ 送信要求レジスタ (TREQR) ................................293 送信割込み許可レジスタ 送信割込み許可レジスタ (TIER) ........................298 ソフトウェア割込み ソフトウェア割込み .........................................44, 56 ソフトウェア割込みの動作 ...................................56 ソフトウェア割込みの構造 ...................................56 た タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ (TMCSR) の配置 .............................................145 タイミングリミット超過フラグ タイミングリミット超過フラグ (DQ5) .............361 タイムベースカウンタ タイムベースカウンタ .........................................114 タイムベースタイマ タイムベースタイマの概要 .................................112 タイムベースタイマのブロックダイヤグラム ..........................................................................112 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタ (TBTC) ..........................................................................113 多重割込み 多重割込み ...............................................................55 多バイト長データ 多バイト長データのアクセス ...............................26 端子 16 ビットリロードタイマの出力端子機能 ..........................................................................152 482 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ............................. 149 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................171 端子機能説明 ............................................................ 8 端子配列図 ................................................................ 7 モード端子 ............................................................ 101 単発モード 単発モード ............................................................ 196 単発モード時の EI2OS の起動例 ........................ 199 ち 遅延割込み 遅延割込みのブロックダイヤグラム .................. 68 遅延割込み発生 ......................................................70 遅延割込み要求ロックの使用上の注意 ..............68 遅延割込み要因発生 / 解除レジスタ 遅延割込み要因発生 / 解除レジスタ (DIRR: Delayed interrupt request register) .....................69 チップ消去 チップ消去 / セクタ消去コマンドシーケンス ..........................................................................469 フラッシュメモリのデータの消去 ( チップ消去 ) ................................................. 370 チップ消去 / セクタ消去コマンドシーケンス チップ消去 / セクタ消去コマンドシーケンス ..........................................................................469 注意事項 注意事項の回避について ...................................... 41 直接アドレッシング 直接アドレッシング ............................................ 411 て 停止モード 停止モード ............................................................ 197 停止モード時の EI2OS の起動例 ........................ 201 低消費電力制御回路 低消費電力制御回路の概要 ..................................80 低消費電力制御回路のブロックダイヤグラム ............................................................................81 低消費電力制御回路のレジスタ .......................... 82 低消費電力モード 低消費電力モードの動作 ...................................... 87 低消費電力モードへ移行する場合の注意 ..........88 低消費電力モード制御レジスタ 低消費電力モード制御レジスタアクセスの注意 ............................................................................88 低消費電力モード制御レジスタ (LPMCR) ......... 83 低電力消費モード 低電力消費モードの設定 .................................... 320 データカウンタ データカウンタ (DCT) ...........................................60 データフォーマット CLK 同期モードの転送データフォーマット ..........................................................................246 非同期 ( 調歩同期 ) モードの転送データ フォーマット ..................................................244 データフレーム データフレームおよびリモートフレームの受信に 対する処理 ......................................................316 データポーリング 書込み , データポーリング , 読出し (CE コントロール ) .........................................469 書込み , データポーリング , 読出し (WE コントロール ) .......................................468 データポーリング .................................................470 データポーリングフラグ データポーリングフラグ (DQ7) .........................359 データ保護機能 データ保護機能のフロー例 (EI2OS の場合 ) ..........................................................................203 変換データ保護機能の使用上の注意 .................203 データレジスタ データレジスタ .....................................................124 データレジスタ (ADCR0,ADCR1) ......................194 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................280 データレジスタ x データレジスタ x(x=0 ∼ 15)(DTRx) ..................311 デバイスの取り扱い デバイスの取り扱い ...............................................15 転送データ 転送データフォーマット .....................................220 と 動作モード UART0 の動作モード ...........................................216 UART1 の動作モード ...........................................241 特長 特長 .............................................................................3 トグルビット トグルビット .........................................................470 トグルビット 2 フラグ トグルビット 2 フラグ (DQ2) .............................363 トグルビットフラグ トグルビットフラグ (DQ6) .................................360 時計モード 時計モードの解除 ...................................................91 時計モードへの遷移 ...............................................90 な 内部クロック 16 ビットリロードタイマの内部クロック動作 ..........................................................................149 内部クロックおよび外部クロック .....................219 内部クロックモード 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................149 内部シフトクロックモード 内部シフトクロックモード .................................265 に 入出力回路 入出力回路 ...............................................................12 ね ネガティブクロック ネガティブクロック動作 .................................... 271 は ハードウェア・シーケンス・フラグ ハードウェア・シーケンス・フラグ ................ 357 ハードウェアスタンバイモード ハードウェアスタンバイモードの解除 ..............94 ハードウェアスタンバイモードへの遷移 ..........94 ハードウェア割込み ハードウェア割込み ........................................ 44, 52 ハードウェア割込みの構造 ..................................52 ハードウェア割込みの動作 ..................................53 ハードウェア割込みの発生と解除 ...................... 54 バス動作 バス動作停止間の状態 (HALT=1) ...................... 285 バス動作停止を解除する条件 (HALT=0) ..........285 バス動作停止をセットする条件 (HALT=1) ..........................................................................285 バスモード設定ビット バスモード設定ビット ........................................ 102 発振安定待ち時間 発振安定待ち時間の設定 ................................ 93, 94 発振クロック周波数 発振クロック周波数とシリアルクロック 入力周波数について ...................................... 389 バッファアドレスポインタ バッファアドレスポインタ (BAP) .......................61 パリティビット パリティビット ....................................................221 パルス 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................171 パルス幅 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................169 バンクセレクトプリフィックス バンクセレクトプリフィックス .......................... 37 バンク方式 バンク方式によるアドレス指定 .......................... 24 汎用レジスタ 汎用レジスタ .......................................................... 28 ひ ビットタイミング ビットタイミングの設定 .................................... 319 ビットタイミングレジスタ ビットタイミングレジスタ (BTR) .....................289 非同期 ( 調歩同期 ) モード 非同期 ( 調歩同期 ) モードの受信動作 ..............244 非同期 ( 調歩同期 ) モードの送信動作 ..............245 非同期 ( 調歩同期 ) モードの転送データ フォーマット ..................................................244 483 ふ フォーマット 転送データフォーマット .....................................220 フラグ 6 つのフラグのセットタイミング ......................222 UART1 のフラグ ...................................................248 UART1 の割込みとフラグのセットタイミング ..........................................................................249 受信動作時 ( モード 0, モード 1, モード 3) の フラグのセットタイミング ..........................223 受信動作時 ( モード 2) のフラグの セットタイミング ..........................................224 セクタ消去タイマフラグ (DQ3) .........................362 送受信動作時のステータスフラグ .....................226 送信動作時のフラグのセットタイミング .........225 タイミングリミット超過フラグ (DQ5) .............361 データポーリングフラグ (DQ7) .........................359 トグルビット 2 フラグ (DQ2) .............................363 トグルビットフラグ (DQ6) .................................360 ハードウェア・シーケンス・フラグ .................357 フラグ変化抑止プリフィックス フラグ変化抑止プリフィックス (NCC) ...............38 フラッシュマイコンプログラマ フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源使用時 ) .........................394 フラッシュマイコンプログラマとの最小限の 接続例 ( ライタから電源供給時 ) .................396 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) ..........................................................................388 フラッシュメモリ 1M ビットフラッシュメモリのセクタ構成 ..........................................................................349 1M ビットフラッシュメモリの特長 ..................348 1M ビットフラッシュメモリのプログラム例 ..........................................................................380 フラッシュセキュリティの特長 .........................379 フラッシュメモリ書込み / 消去の詳細説明 ..........................................................................365 フラッシュメモリ書込み / 消去の方法 .............348 フラッシュメモリ書込み手順 .............................368 フラッシュメモリ使用上の注意 .........................376 フラッシュメモリ全体のブロックダイヤグラム ..........................................................................349 フラッシュメモリにおけるリセットベクタ アドレス ..........................................................378 フラッシュメモリの制御信号 .............................351 フラッシュメモリのセクタ消去手順 .................372 フラッシュメモリのセクタ消去の 一時停止 ..........................................................374 フラッシュメモリのセクタ消去の再開 .............375 フラッシュメモリのデータの消去 ( チップ消去 ) ..................................................370 フラッシュメモリの任意のデータの消去 ( セクタ消去 ) ..................................................371 フラッシュメモリのレジスタ .............................348 フラッシュメモリへのデータの書込み .............367 フラッシュメモリモード .....................................351 フラッシュメモリを読出し / リセット状態にする ..........................................................................366 484 プリスケーラ シリアル I/O プリスケーラ (SCDCR) ................ 263 プリフィックスコード プリフィックスコードが連続している場合 ............................................................................39 プリフィックス命令 割込み抑止命令とプリフィックス命令に関する 制約 .................................................................... 39 フレームフォーマット フレームフォーマットの設定 ............................319 フローチャート CAN コントローラの受信フローチャート ..........................................................................318 CAN コントローラの送信フローチャート ..........................................................................314 UART1 の通信フローチャート .......................... 252 プログラム 1M ビットフラッシュメモリのプログラム例 ..........................................................................380 プログラムパッチ処理フロー図 ........................ 342 プログラムパッチ処理例 .................................... 341 プログラムアドレス検出コントロール / ステータスレジスタ プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) ...................... 337 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0/PADR1) .............................................337 プログラムカウンタ プログラムカウンタ (PC) ...................................... 34 プロセッサステータス プロセッサステータス (PS) ..................................31 ブロックダイヤグラム 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................121 16 ビットフリーランタイマの ブロックダイヤグラム ..................................123 16ビットリロードタイマのブロックダイヤグラム ..........................................................................143 8/16 ビット PPG のブロックダイヤグラム ..........................................................................157 A/D コンバータのブロックダイヤグラム ........188 CAN コントローラのブロックダイヤグラム ..........................................................................275 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................176 ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................344 UART0 のブロックダイヤグラム ...................... 207 UART1 のブロックダイヤグラム ...................... 231 アウトプットコンペアのブロックダイヤグラム ..........................................................................129 アドレス一致検出機能のブロックダイヤグラム ..........................................................................336 インプットキャプチャのブロックダイヤグラム ..........................................................................136 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................116 シリアル I/O のブロックダイヤグラム ............. 256 ステッピングモータコントローラの ブロックダイヤグラム ..................................330 タイムベースタイマのブロックダイヤグラム ..........................................................................112 遅延割込みのブロックダイヤグラム ...................68 低消費電力制御回路のブロックダイヤグラム ............................................................................81 フラッシュメモリ全体のブロックダイヤグラム ..........................................................................349 ブロックダイヤグラム .............................................5 へ 変換データ 変換データ保護機能 .............................................202 ほ ポートデータレジスタ ポートデータレジスタ .........................................108 ポート方向レジスタ ポート方向レジスタ .............................................109 ボーレート CLK 同期ボーレート ............................................217 CLK 非同期ボーレート ........................................217 ま マシンクロック マシンクロックの初期化 .......................................96 マルチレベルメッセージバッファ マルチレベルメッセージバッファの構成の決定 ..........................................................................324 め 命令 未定義命令の実行 ...................................................66 未定義命令の実行による例外発生 .......................66 命令の種類 .............................................................408 命令マップの構造 .................................................446 「DIV A,Ri」および「DIVW A,RWi」命令の使用上 の注意 ................................................................40 命令一覧表 F2MC-16LX 命令一覧表 .......................................432 メインクロック メインクロックと PLL クロックの切換え .........96 メッセージ 受信メッセージの記憶 .........................................315 メッセージバッファ マルチレベルメッセージバッファの構成の決定 ..........................................................................324 メッセージバッファ .....................................281, 307 メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................279 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................277 メッセージバッファ (x) による受信方法 ..........323 メッセージバッファ (x) による送信方法 ..........321 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................280 メッセージバッファコントロールレジスタ メッセージバッファコントロールレジスタ ..........................................................................281 メッセージバッファ有効レジスタ メッセージバッファ有効レジスタ (BVALR) ..........................................................................291 メモリアクセスモード メモリアクセスモード ........................................ 100 メモリ空間 メモリ空間における多バイト長データの 配置 .................................................................... 26 CPU メモリ空間の概要 .......................................... 21 メモリ空間マップ ..................................................22 メモリマップ E2PROM メモリマップ ........................................ 340 も モード端子 モード端子 ............................................................ 101 モードデータ モードデータ ........................................................ 102 ゆ ユーザスタックポインタ ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) .................. 30 よ 要求レベル設定レジスタ 要求レベル設定レジスタ (ELVR: External level register) .....................................178 読出しアクセス 読出しアクセスによるデータリード ................ 468 ら ラストイベント表示レジスタ ラストイベント表示レジスタ (LEIR) ................ 286 り リセット フラッシュメモリを読出し / リセット状態にする ..........................................................................366 リセット解除後の動作 .......................................... 73 リセット入力によって初期化されないレジスタ ............................................................................74 リセット要因 .......................................................... 76 リセット要因の発生 .............................................. 73 リセットベクタアドレス フラッシュメモリにおけるリセットベクタ アドレス .......................................................... 378 リモートフレーム データフレームおよびリモートフレームの受信に 対する処理 ......................................................316 リモートフレーム受信待機レジスタ リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................295 リモート要求受信レジスタ リモート要求受信レジスタ (RRTRR) ................ 300 485 リロード値 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................169 リロードレジスタ リロードレジスタ (PRLL,PRLH) ........................166 れ 例外 例外 ...........................................................................46 未定義命令の実行による例外発生 .......................66 レート・データレジスタ 0 レート・データレジスタ 0(URD0) ....................214 レジスタ 16 ビットアウトプットコンペアのレジスタ一覧 ..........................................................................122 16 ビットインプットキャプチャのレジスタ一覧 ..........................................................................122 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) のレジスタ配置 ..........................................................................148 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................122 16 ビットリロードタイマのレジスタ ................144 8/16 ビット PPG のレジスタ ...............................159 A/D コントロールステータスレジスタ (ADCS0) ..........................................................................190 A/D コントロールステータスレジスタ (ADCS1) ..........................................................................192 A/D コンバータのレジスタ一覧 .........................189 CLK 同期モードを使用する場合の , 各制御 レジスタの設定値 ..........................................247 DLC レジスタ x(x=0 ∼ 15)(DLCRx) ..................310 DTP/ 外部割込みのレジスタ ...............................176 EI2OS ステータスレジスタ (ISCS) .......................62 I/O ポートのレジスタ ..........................................107 I/O レジスタアドレスポインタ (IOA) .................61 IDE レジスタ (IDER) ............................................292 ID レジスタ x(x=0 ∼ 15)(IDRx) ..........................308 PPG0,PPG1 出力端子制御レジスタ (PPG01) ............................................................165 PPG0 動作モード制御レジスタ (PPGC0) ...........160 PPG1 動作モード制御レジスタ (PPGC1) ...........162 PWM1, PWM2 コンペアレジスタ ......................333 PWM1, PWM2 選択レジスタ ...............................334 PWM 制御 0 レジスタ ..........................................332 ROM ミラー機能選択レジスタ (ROMM) ..........345 UART0 のレジスタ ...............................................208 UART1 通信プリスケーラコントロールレジスタ (U1CDCR) ........................................................240 UART1 のレジスタ一覧 .......................................232 アウトプットコンペアのコントロールステータス レジスタ ..........................................................131 アウトプットコンペアのコンペアレジスタ ..........................................................................130 アクセプタンスマスク選択レジスタ (AMSR) ............................................................303 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................305 アナログ入力許可レジスタ .........................110, 186 インタラプトレベルマスクレジスタ (ILM) ............................................................................33 486 インプットキャプチャコントロールステータス レジスタ .......................................................... 137 インプットキャプチャデータレジスタ ............137 インプットデータレジスタ 0(UIDR0) と アウトプットレジスタ 0(UODR0) ............... 213 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................117 クロック選択レジスタ (CKSCR) .......................... 85 コモンレジスタバンクプリフィックス (CMR) ............................................................................38 コンディションコードレジスタ (CCR) ............... 31 コントロールステータスレジスタ .................... 125 コントロールステータスレジスタ (FMCS) ..........................................................................353 受信オーバランレジスタ (ROVRR) ...................301 受信完了レジスタ (RCR) .....................................299 受信割込み許可レジスタ (RIER) ........................ 302 シリアル I/O のレジスタ .....................................257 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................237 シリアルコントロールレジスタ (SCR1) ........... 235 シリアルシフトデータレジスタ (SDR) ............. 262 シリアルモードコントロールステータスレジスタ (SMCS) .............................................................258 シリアルモードコントロールレジスタ 0(UMC0) ..........................................................................209 シリアルモードレジスタ 1(SMR1) .................... 233 ステータスレジスタ 0 (USR0) ............................211 ステッピングモータコントローラのレジスタ ..........................................................................331 制御ステータスレジスタ (CSR) .........................282 全体コントロールレジスタ ........................276, 281 専用レジスタ .......................................................... 27 送信 RTR レジスタ (TRTRR) ..............................294 送信解除レジスタ (TCANR) ............................... 296 送信完了レジスタ (TCR) .....................................297 送信要求レジスタ (TREQR) ................................293 送信割込み許可レジスタ (TIER) ........................ 298 タイマコントロールステータスレジスタ (TMCSR) の配置 .............................................145 タイムベースタイマ制御レジスタ (TBTC) ..........................................................................113 遅延割込み要因発生 / 解除レジスタ (DIRR: Delayed interrupt request register) .....................69 低消費電力制御回路のレジスタ .......................... 82 低消費電力モード制御レジスタ (LPMCR) ......... 83 低消費電力モード制御レジスタアクセスの注意 ............................................................................88 データレジスタ ....................................................124 データレジスタ (ADCR0,ADCR1) .....................194 データレジスタ x(x=0 ∼ 15)(DTRx) .................. 311 汎用レジスタ .......................................................... 28 ビットタイミングレジスタ (BTR) .....................289 フラッシュメモリのレジスタ ............................348 プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) ...................... 337 プログラムアドレス検出レジスタ (PADR0/PADR1) .............................................337 ポートデータレジスタ ........................................ 108 ポート方向レジスタ ............................................ 109 メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................279 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................277 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................280 メッセージバッファコントロールレジスタ ..........................................................................281 メッセージバッファ有効レジスタ (BVALR) ..........................................................................291 要求レベル設定レジスタ (ELVR: External level register) ......................................178 ラストイベント表示レジスタ (LEIR) ................286 リセット入力によって初期化されないレジスタ ............................................................................74 リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................295 リモート要求受信レジスタ (RRTRR) ................300 リロードレジスタ (PRLL,PRLH) ........................166 レート・データレジスタ 0(URD0) ....................214 レジスタバンク .......................................................35 レジスタバンクポインタ (RP) ..............................32 割込み /DTP 許可レジスタ (ENIR: Interrupt request enable register) ......................177 割込み /DTP 要因レジスタ (EIRR: External interrupt request register) ...................177 割込み制御レジスタ (ICR) ....................................48 レジスタバンク レジスタバンク .......................................................35 レジスタバンクポインタ レジスタバンクポインタ (RP) ..............................32 連続モード 連続モード .............................................................196 連続モード時の EI2OS の起動例 ........................200 わ 割込み 8/16 ビット PPG の割込み ...................................172 DTP/ 外部割込みの概要 .......................................176 DTP/ 外部割込みの使用上の注意 .......................182 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................176 DTP/ 外部割込みのレジスタ ...............................176 DTP 要求と外部割込み要求の切換え ................181 UART1 の割込みとフラグのセットタイミング ..........................................................................249 UART1 の割込み発生要因 ..................................248 インターバル割込み機能 .................................... 114 インテリジェント I/O サービス (EI2OS) 機能と 割込み .............................................................. 142 外部割込みの動作 ................................................179 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................270 受信割込み許可レジスタ (RIER) ........................ 302 送信割込み許可レジスタ (TIER) ........................ 298 ソフトウェア割込み ........................................ 44, 56 ソフトウェア割込みの構造 ..................................56 ソフトウェア割込みの動作 ..................................56 多重割込み .............................................................. 55 遅延割込みのブロックダイヤグラム .................. 68 遅延割込み要求ロックの使用上の注意 ..............68 ハードウェア割込み ........................................ 44, 52 ハードウェア割込みの構造 ..................................52 ハードウェア割込みの動作 ..................................53 ハードウェア割込みの発生と解除 ...................... 54 割込み制御レジスタ (ICR) ....................................48 割込みフロー .......................................................... 51 割込みベクタ .......................................................... 47 割込みベクタ一覧表 .............................................. 47 割込み要因と割込みベクタ・ 割込み制御レジスタ ...................................... 474 割込み抑止命令 ......................................................39 割込み抑止命令とプリフィックス命令に関する 制約 .................................................................... 39 割込み /DTP 許可レジスタ 割込み /DTP 許可レジスタ (ENIR: Interrupt request enable register) ...................... 177 割込み /DTP 要因レジスタ 割込み /DTP 要因レジスタ (EIRR: External interrupt request register) ...................177 割込み制御レジスタ 割込み制御レジスタ (ICR) ....................................48 割込み要因と割込みベクタ・ 割込み制御レジスタ ...................................... 474 割込みベクタ MB90595 割込みベクタ一覧表 .....................56, 473 割込み要因と割込みベクタ・ 割込み制御レジスタ ...................................... 474 487 488 CM44-10106-6 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC-16LX 16 ビット・マイクロコントローラ MB90595 Series ハードウェアマニュアル 2008 年 7 月 第 6 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 ビジネス推進部