本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10122-4 F2MC-16LX 16 ビット・マイクロコントローラ MB90390 Series ハードウェアマニュアル F2MC-16LX 16 ビット・マイクロコントローラ MB90390 Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック 項目をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛読を賜り厚 くお礼申し上げます。 MB90390 シリーズは , ASIC (Application Specific IC) 対応が可能なオリジナル 16 ビッ ト・ワンチップマイクロコントローラである F2MC®-16LX ファミリの汎用品の一つと して開発された製品です。 本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90390 シ リーズの機能や動作について記載しています。本書をご一読ください。 ■ 商標 F2MCは, FUJITSU Flexible Microcontrollerの略で富士通マイクロエレクトロニクス株式 会社の商標です。 Controller Area Network (CAN) はロバート・ボッシュ GmbH の特許です。 Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。 その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録 商標です。 ■ ライセンス 本製品には,お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使 用されることを条件に,Philips 社 I2C 特許がライセンスされております。 Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to use, these components in an I2C system provided that the system conforms to the I2C Standard Specification as defined by Philips. i ■ 本書の全体構成 本書は , 以下に示す 29 の章および付録から構成されています。 第 1 章 概要 MB90390 シリーズの特長や基本的な仕様について説明します。 第 2 章 CPU CPU の機能と動作について説明します。 第 3 章 割込み MB90390 シリーズの割込みと拡張インテリジェント I/O サービス (EI2OS) の機能と 動作について説明します。 第 4 章 遅延割込み 遅延割込みの機能と動作について説明します。 第 5 章 クロック クロックについて説明します。 第 6 章 クロックモジュレータ クロックモジュレータの概要 , 特長 , レジスタの構成 , 動作について説明します。 第 7 章 リセット リセットについて説明します。 第 8 章 低消費電力モード 低消費電力モードについて説明します。 第 9 章 メモリアクセスモード メモリアクセスモードの機能と動作について説明します。 第 10 章 I/O ポート I/O ポートの機能と動作について説明します。 第 11 章 タイムベースタイマ タイムベースタイマの機能と動作について説明します。 第 12 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明します。 第 13 章 16 ビット入出力タイマ 16 ビット入出力タイマの機能と動作について説明します。 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 16 ビットリロードタイマ ( イベントカウント機能付き ) の機能と動作について説明 します。 第 15 章 時計タイマ 時計タイマの機能と動作について説明します。 第 16 章 8/16 ビット PPG 8/16 ビット PPG の機能と概要について説明します。 第 17 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明します。 ii 第 18 章 8/10 ビット A/D コンバータ MB90390 シリーズの 8/10 ビット A/D コンバータの機能と動作について説明します。 第 19 章 UART0, UART1 UART0, UART1 の機能と動作について説明します。 第 20 章 UART2, UART3 UART2, UART3 の機能と動作について説明します。 第 21 章 400 kHz I2C インタフェース I2C インタフェースの概要 , レジスタの構成 / 機能および I2C インタフェースの動作 について説明します。 第 22 章 シリアル I/O シリアル I/O の機能と動作について説明します。 第 23 章 CAN コントローラ CAN コントローラの機能と概要について説明します。 第 24 章 ステッピングモータ コントローラ ステッピングモータコントローラの機能と動作について説明します。 第 25 章 サウンドジェネレータ サウンドジェネレータの機能と動作について説明します。 第 26 章 アドレス一致検出機能 アドレス一致検出の機能と動作について説明します。 第 27 章 ROM ミラー機能選択 モジュール ROM ミラー機能選択モジュールについて説明します。 第 28 章 3M ビット フラッシュメモリ 3M ビットフラッシュメモリの機能や動作について説明します。 第 29 章 シリアル書込み接続例 F2MC-16LX MB90F394H(A) フラッシュマイコンのプログラマを用いたシリアル書 込み接続例について説明します。 付録 I/O マップ , F2MC-16LX の命令などを示します。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2007-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iv 目次 第1章 概要 .......................................................................................................... 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 製品概要 ............................................................................................................................... 2 特長 ...................................................................................................................................... 3 MB90V390H のブロックダイヤグラム ................................................................................. 6 MB90V390HA/MB90V390HB のブロックダイヤグラム ....................................................... 7 MB90394HA/MB90F394H(A) のブロックダイヤグラム ....................................................... 8 端子配列図 ............................................................................................................................ 9 パッケージ外形寸法図 ........................................................................................................ 12 端子機能説明 ...................................................................................................................... 13 入出力回路形式 .................................................................................................................. 18 デバイスの取扱い ............................................................................................................... 20 第2章 CPU ........................................................................................................ 23 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章 24 25 28 30 31 33 34 36 37 38 41 42 44 46 47 割込み .................................................................................................... 49 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 50 53 55 58 60 61 62 64 65 67 69 71 73 76 第4章 4.1 4.2 4.3 第5章 遅延割込み ............................................................................................. 77 遅延割込みモジュールの概要 ............................................................................................. 78 遅延割込みのレジスタ ........................................................................................................ 79 遅延割込みの動作 ............................................................................................................... 80 クロック ................................................................................................. 81 5.1 クロックの概要 .................................................................................................................. 5.2 クロック発生部のブロックダイヤグラム ........................................................................... 5.3 クロック選択レジスタ ........................................................................................................ 5.3.1 クロック選択レジスタ (CKSCR) .............................................................................. 5.3.2 PLL および特殊構成制御レジスタ (PSCCR) ........................................................... 5.4 クロックモード .................................................................................................................. 5.5 発振安定待ち時間 ............................................................................................................... 5.6 振動子と外部クロックの接続 ............................................................................................. 5.7 メインクロック HCLK, HCLKX の出力 .............................................................................. 第6章 クロックモジュレータ ........................................................................... 99 6.1 クロックモジュレータの概要 ........................................................................................... 6.2 クロックモジュレータのレジスタ説明 ............................................................................. 6.3 クロックモジュレータのクロック変調レジスタ .............................................................. 6.3.1 クロックモジュレータ制御レジスタ (CMCR) ........................................................ 6.3.2 クロック変調パラメータレジスタ (CMPR) ............................................................ 6.4 クロックモジュレータの使用上の注意 ............................................................................. 第7章 7.1 7.2 7.3 7.4 7.5 7.6 第8章 9.1 9.2 9.3 100 101 102 103 108 114 リセット ............................................................................................... 119 リセットの概要 ................................................................................................................ リセット要因と発振安定待ち時間 .................................................................................... 外部リセット端子 ............................................................................................................. リセット動作 .................................................................................................................... リセット要因ビット ......................................................................................................... リセットによる各端子の状態 ........................................................................................... 120 122 123 124 126 128 低消費電力モード ................................................................................ 129 8.1 低消費電力モードの概要 .................................................................................................. 8.2 低消費電力制御回路のブロックダイヤグラム .................................................................. 8.3 低消費電力モード制御レジスタ (LPMCR) ....................................................................... 8.4 CPU 間欠動作モード ........................................................................................................ 8.5 スタンバイモード ............................................................................................................. 8.5.1 スリープモード ...................................................................................................... 8.5.2 タイムベースタイマモード .................................................................................... 8.5.3 ストップモード ...................................................................................................... 8.6 状態遷移図 ........................................................................................................................ 8.7 スタンバイモードとリセット時の端子状態 ..................................................................... 8.8 低消費電力モード使用上の注意 ....................................................................................... 第9章 82 84 86 87 90 92 95 96 97 130 133 135 139 140 141 143 145 147 149 150 メモリアクセスモード ......................................................................... 153 メモリアクセスモードの概要 ........................................................................................... 154 メモリアクセスモードのモード端子 ................................................................................ 155 メモリアクセスモードのモードデータ ............................................................................. 156 vi 第 10 章 I/O ポート ............................................................................................. 159 10.1 I/O ポート ......................................................................................................................... 10.2 I/O ポートのレジスタ ....................................................................................................... 10.2.1 ポートデータレジスタ ........................................................................................... 10.2.2 データ方向レジスタ ............................................................................................... 10.2.3 アナログ入力許可レジスタ .................................................................................... 10.2.4 入力レベル選択レジスタ ........................................................................................ 第 11 章 160 161 162 164 165 166 タイムベースタイマ ............................................................................. 167 11.1 タイムベースタイマの概要 ............................................................................................... 168 11.2 タイムベースタイマ制御レジスタ .................................................................................... 169 11.3 タイムベースタイマの動作 ............................................................................................... 171 第 12 章 ウォッチドッグタイマ ......................................................................... 173 12.1 ウォッチドッグタイマの概要 ........................................................................................... 174 12.2 ウォッチドッグタイマの動作 ........................................................................................... 177 第 13 章 16 ビット入出力タイマ ........................................................................ 181 13.1 16 ビット入出力タイマの概要 .......................................................................................... 13.2 16 ビット入出力タイマのレジスタ .................................................................................. 13.3 16 ビットフリーランタイマ ............................................................................................. 13.3.1 タイマデータレジスタ ........................................................................................... 13.3.2 タイマ制御ステータスレジスタ ............................................................................. 13.3.3 16 ビットフリーランタイマの動作 ........................................................................ 13.4 アウトプットコンペア ...................................................................................................... 13.4.1 アウトプットコンペアのレジスタ .......................................................................... 13.4.2 アウトプットコンペア制御ステータスレジスタ .................................................... 13.4.3 16 ビットアウトプットコンペアの動作 ................................................................. 13.5 インプットキャプチャ ...................................................................................................... 13.5.1 インプットキャプチャのレジスタ .......................................................................... 13.5.2 16 ビットインプットキャプチャの動作 ................................................................. 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付き ) .................... 213 14.1 16 ビットリロードタイマ ( イベントカウント機能付き ) の概要 ..................................... 14.2 16 ビットリロードタイマのレジスタ ............................................................................... 14.2.1 タイマ制御ステータスレジスタ (TMCSR) ............................................................. 14.2.2 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) の レジスタ配置 ............................................................................................................... 14.3 16 ビットリロードタイマの内部 / 外部クロック動作 ...................................................... 14.4 16 ビットリロードタイマのアンダフロー動作 ................................................................ 14.5 16 ビットリロードタイマの出力端子機能 ........................................................................ 14.6 カウンタの動作状態 ......................................................................................................... 第 15 章 182 184 186 187 188 191 193 194 195 200 205 206 211 214 216 217 220 221 223 224 225 時計タイマ ........................................................................................... 227 15.1 時計タイマの概要 ............................................................................................................. 15.2 時計タイマのレジスタ ...................................................................................................... 15.2.1 タイマ制御レジスタ ............................................................................................... 15.2.2 サブ秒レジスタ ...................................................................................................... 15.2.3 秒 / 分 / 時間レジスタ ............................................................................................. vii 228 229 230 234 235 第 16 章 8/16 ビット PPG .................................................................................. 237 16.1 8/16 ビット PPG の概要 ................................................................................................... 16.2 8/16 ビット PPG のブロックダイヤグラム ...................................................................... 16.3 8/16 ビット PPG のレジスタ ............................................................................................ 16.3.1 PPG0 動作モード制御レジスタ (PPGC0) .............................................................. 16.3.2 PPG1 動作モード制御レジスタ (PPGC1) .............................................................. 16.3.3 PPG0/1 クロック選択レジスタ (PPG01) ............................................................... 16.3.4 リロードレジスタ (PRLL, PRLH) ........................................................................... 16.4 8/16 ビット PPG の動作 ................................................................................................... 16.5 8/16 ビット PPG のカウントクロックの選択 .................................................................. 16.6 8/16 ビット PPG のパルスの端子出力の制御 .................................................................. 16.7 8/16 ビット PPG の割込み ............................................................................................... 16.8 8/16 ビット PPG の各ハードウェアの初期値 .................................................................. 第 17 章 17.1 17.2 17.3 17.4 17.5 DTP/ 外部割込み .................................................................................. 259 DTP/ 外部割込みの概要 .................................................................................................... DTP/ 外部割込みのレジスタ ............................................................................................. DTP/ 外部割込みの動作 .................................................................................................... DTP 要求と外部割込み要求の切換え ............................................................................... DTP/ 外部割込み使用上の注意 ......................................................................................... 第 18 章 260 262 264 266 267 8/10 ビット A/D コンバータ ................................................................. 269 18.1 8/10 ビット A/D コンバータの概要 .................................................................................. 18.2 8/10 ビット A/D コンバータの構成 .................................................................................. 18.3 8/10 ビット A/D コンバータの端子 .................................................................................. 18.4 8/10 ビット A/D コンバータのレジスタ ........................................................................... 18.4.1 アナログ入力許可 /A/D コンバータ選択レジスタ .................................................. 18.4.2 A/D 制御ステータスレジスタ 1 (ADCS1) ............................................................... 18.4.3 A/D 制御ステータスレジスタ 0(ADCS0) ................................................................ 18.4.4 A/D データレジスタ (ADCR0, ADCR1) .................................................................. 18.5 8/10 ビット A/D コンバータの割込み ............................................................................... 18.6 8/10 ビット A/D コンバータの動作 .................................................................................. 18.6.1 A/D 変換の EI2OS 使用 ........................................................................................... 18.6.2 A/D 変換データ保護機能 ........................................................................................ 18.7 A/D コンバータ使用上の注意 ........................................................................................... 18.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) ....... 18.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) ....... 18.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) ....... 第 19 章 238 239 243 244 246 248 250 251 254 255 256 257 270 272 274 276 277 278 280 283 285 286 288 289 291 292 295 298 UART0, UART1 ................................................................................... 301 19.1 UART0, UART1 の特長 .................................................................................................... 19.2 UART のブロックダイヤグラム ....................................................................................... 19.3 UART のレジスタ ............................................................................................................. 19.3.1 シリアルモード制御レジスタ (UMC) ..................................................................... 19.3.2 ステータスレジスタ (USR) .................................................................................... 19.3.3 インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR) ....... 19.3.4 レート・データレジスタ (URD) ............................................................................. 19.4 UART0, UART1 の動作 .................................................................................................... 19.5 ボーレート ........................................................................................................................ viii 302 303 304 305 307 310 311 313 314 19.6 内部クロックおよび外部クロック .................................................................................... 19.7 転送データフォーマット .................................................................................................. 19.8 パリティビット ................................................................................................................ 19.9 割込み生成とフラグのセットタイミング ......................................................................... 19.9.1 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング ............ 19.9.2 受信動作時 ( モード 2) のフラグのセットタイミング ............................................ 19.9.3 送信動作時のフラグのセットタイミング ............................................................... 19.9.4 送受信動作時のステータスフラグ .......................................................................... 19.10 UART0, UART1 の応用例 ................................................................................................. 第 20 章 UART2, UART3 ................................................................................... 327 20.1 UART2, UART3 の概要 .................................................................................................... 20.2 UART2, UART3 の構成 .................................................................................................... 20.3 UART2, UART3 の端子 .................................................................................................... 20.4 UART2, UART3 のレジスタ ............................................................................................. 20.4.1 シリアル制御レジスタ (SCR2/SCR3) .................................................................... 20.4.2 シリアルモードレジスタ (SMR2/SMR3) ................................................................ 20.4.3 シリアルステータスレジスタ (SSR2/SSR3) .......................................................... 20.4.4 受信データレジスタ / 送信データレジスタ (RDR2/RDR3 および TDR2/TDR3) ............................................................................. 20.4.5 拡張ステータス制御レジスタ (ESCR2/ESCR3) .................................................... 20.4.6 拡張通信制御レジスタ (ECCR2/ECCR3) ............................................................... 20.4.7 ボーレートジェネレータレジスタ 0, 1 (BGR02/BGR03,BGR12/BGR13) ............. 20.5 UART2, UART3 の割込み ................................................................................................. 20.5.1 受信割込み発生とフラグセットのタイミング ........................................................ 20.5.2 送信割込み発生とフラグセットのタイミング ........................................................ 20.6 UART2, UART3 のボーレート .......................................................................................... 20.6.1 ボーレート設定 ...................................................................................................... 20.6.2 リロードカウンタ ................................................................................................... 20.7 UART2, UART3 の動作 .................................................................................................... 20.7.1 非同期モード ( 動作モード 0, 1) の動作 ................................................................. 20.7.2 同期モード ( 動作モード 2) の動作 ......................................................................... 20.7.3 LIN 機能 ( 動作モード 3) の動作 ............................................................................. 20.7.4 シリアル端子直接アクセス .................................................................................... 20.7.5 双方向通信機能 ( ノーマルモード ) ........................................................................ 20.7.6 マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) ..................................... 20.7.7 LIN 通信機能 ........................................................................................................... 20.7.8 UART2,UART3 の LIN 通信フローチャート例 ( 動作モード 3) .............................. 20.8 UART2, UART3 使用上の注意 .......................................................................................... 第 21 章 317 318 319 320 321 322 323 324 325 328 331 336 338 339 342 344 347 349 352 354 355 359 361 363 365 368 370 372 376 380 384 385 387 390 391 393 400 kHz I2C インタフェース ................................................................ 397 21.1 I2C インタフェースの概要 ................................................................................................ 21.2 I2C インタフェースのレジスタ ........................................................................................ 21.2.1 I2C バスステータスレジスタ (IBSR) ...................................................................... 21.2.2 I2C バス制御レジスタ (IBCR) ................................................................................. 21.2.3 I2C10 ビットスレーブアドレスレジスタ (ITBA) .................................................... 21.2.4 I2C10 ビットアドレスマスクレジスタ (ITMK) ....................................................... 21.2.5 I2C7 ビットスレーブアドレスレジスタ (ISBA) ...................................................... 21.2.6 I2C データレジスタ (IDAR) .................................................................................... ix 398 400 402 405 414 415 417 419 21.2.7 I2C クロック制御レジスタ (ICCR) ......................................................................... 21.2.8 ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) ....................... 21.3 I2C インタフェースの動作 ................................................................................................ 21.4 プログラミングフローチャート ....................................................................................... 第 22 章 シリアル I/O ......................................................................................... 431 22.1 シリアル I/O の概要 .......................................................................................................... 22.2 シリアル I/O のレジスタ ................................................................................................... 22.2.1 シリアルモード制御ステータスレジスタ (SMCS) ................................................. 22.2.2 シリアルシフトデータレジスタ (SDR) .................................................................. 22.3 シリアル I/O プリスケーラ (CDCR) ................................................................................. 22.4 シリアル I/O の動作 .......................................................................................................... 22.4.1 シフトクロック ...................................................................................................... 22.4.2 シリアル I/O の動作状態 ........................................................................................ 22.4.3 シフト動作のスタート / ストップタイミング ........................................................ 22.4.4 拡張シリアル I/O インタフェースの割込み機能 ..................................................... 第 23 章 420 424 425 428 432 433 434 438 439 440 441 442 444 447 CAN コントローラ ............................................................................... 449 23.1 CAN コントローラの特長 ................................................................................................. 23.2 CAN コントローラのブロックダイヤグラム .................................................................... 23.3 全体制御レジスタの一覧 .................................................................................................. 23.4 メッセージバッファ (ID レジスタ ) の一覧 ...................................................................... 23.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 ....................................................... 23.6 CAN コントローラのレジスタ分類 .................................................................................. 23.6.1 制御ステータスレジスタ (CSR) ............................................................................. 23.6.2 バス動作停止ビット (HALT=1) ............................................................................... 23.6.3 ラストイベント表示レジスタ (LEIR) ..................................................................... 23.6.4 受信および送信エラーカウンタ (RTEC) ................................................................ 23.6.5 ビットタイミングレジスタ (BTR) .......................................................................... 23.6.6 メッセージバッファ有効レジスタ (BVALR) .......................................................... 23.6.7 IDE レジスタ (IDER) .............................................................................................. 23.6.8 送信要求レジスタ (TREQR) ................................................................................... 23.6.9 送信 RTR レジスタ (TRTRR) ................................................................................. 23.6.10 リモートフレーム受信待機レジスタ (RFWTR) ...................................................... 23.6.11 送信解除レジスタ (TCANR) ................................................................................... 23.6.12 送信完了レジスタ (TCR) ........................................................................................ 23.6.13 送信割込み許可レジスタ (TIER) ............................................................................ 23.6.14 受信完了レジスタ (RCR) ........................................................................................ 23.6.15 リモート要求受信レジスタ (RRTRR) .................................................................... 23.6.16 受信オーバランレジスタ (ROVRR) ........................................................................ 23.6.17 受信割込み許可レジスタ (RIER) ............................................................................ 23.6.18 アクセプタンスマスク選択レジスタ (AMSR) ........................................................ 23.6.19 アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) .................................... 23.6.20 メッセージバッファ ............................................................................................... 23.6.21 ID レジスタ x (x=0 ~ 15) (IDRx) ............................................................................ 23.6.22 DLC レジスタ x (x=0 ~ 15) (DLCRx) ..................................................................... 23.6.23 データレジスタ x (x=0 ~ 15) (DTRx) .................................................................... 23.7 CAN コントローラの送信 ................................................................................................. 23.8 CAN コントローラの受信 ................................................................................................. x 450 451 452 454 456 458 459 464 466 468 469 471 472 473 474 475 476 477 478 479 480 481 482 483 485 487 488 490 491 493 495 23.9 23.10 23.11 23.12 23.13 23.14 23.15 23.16 CAN コントローラの受信フローチャート ........................................................................ CAN コントローラの使用方法 .......................................................................................... メッセージバッファ (x) による送信方法 .......................................................................... メッセージバッファ (x) による受信方法 .......................................................................... マルチレベルメッセージバッファの構成の決定 .............................................................. CAN1, CAN3 RX/TX 端子のリダイレクト設定 ................................................................ CAN ダイレクトモードレジスタ ...................................................................................... CAN コントローラの使用上の注意 .................................................................................. 第 24 章 ステッピングモータコントローラ ....................................................... 513 24.1 ステッピングモータコントローラの概要 ......................................................................... 24.2 ステッピングモータコントローラのレジスタ .................................................................. 24.2.1 PWM 制御 0 レジスタ ............................................................................................ 24.2.2 PWM1 および PWM2 コンペアレジスタ ................................................................ 24.2.3 PWM1 および PWM2 選択レジスタ ....................................................................... 24.3 ステッピングモータコントローラ使用上の注意 .............................................................. 第 25 章 26.1 26.2 26.3 26.4 526 527 528 532 533 534 535 アドレス一致検出機能 ......................................................................... 537 アドレス一致検出機能の概要 ........................................................................................... アドレス一致検出機能のレジスタ .................................................................................... アドレス一致検出機能の動作 ........................................................................................... アドレス一致検出機能の使用例 ....................................................................................... 第 27 章 514 515 516 518 519 523 サウンドジェネレータ ......................................................................... 525 25.1 サウンドジェネレータの概要 ........................................................................................... 25.2 サウンドジェネレータのレジスタ .................................................................................... 25.2.1 サウンドジェネレータ制御レジスタ ...................................................................... 25.2.2 周波数データレジスタ ........................................................................................... 25.2.3 振幅データレジスタ ............................................................................................... 25.2.4 デクリメントグレードレジスタ ............................................................................. 25.2.5 トーンカウントレジスタ ........................................................................................ 第 26 章 498 499 501 503 505 507 509 510 538 539 541 542 ROM ミラー機能選択モジュール ......................................................... 545 27.1 ROM ミラー機能選択モジュールの概要 .......................................................................... 546 27.2 ROM ミラー機能選択レジスタ (ROMM) .......................................................................... 547 第 28 章 3M ビットフラッシュメモリ ................................................................ 549 28.1 3M ビットフラッシュメモリの概要 ................................................................................. 28.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成 ........ 28.3 書込み / 消去モード .......................................................................................................... 28.4 フラッシュメモリ制御ステータスレジスタ (FMCS) ........................................................ 28.5 フラッシュメモリ自動アルゴリズム起動方法 .................................................................. 28.6 自動アルゴリズム実行状態の確認 .................................................................................... 28.6.1 データポーリングフラグ (DQ7) ............................................................................. 28.6.2 トグルビットフラグ (DQ6) .................................................................................... 28.6.3 タイミングリミット超過フラグ (DQ5) .................................................................. 28.6.4 セクタ消去タイマフラグ (DQ3) ............................................................................. 28.6.5 トグルビット 2 フラグ (DQ2) ................................................................................. 28.7 フラッシュメモリ書込み / 消去の詳細説明 ...................................................................... xi 550 551 553 555 557 559 561 562 563 564 565 566 28.7.1 読出し / リセット状態にする .................................................................................. 28.7.2 データの書込み ...................................................................................................... 28.7.3 全データの消去 ( チップ消去 ) ............................................................................... 28.7.4 任意データの消去 ( セクタ消去 ) ............................................................................ 28.7.5 セクタ消去の一時停止 ........................................................................................... 28.7.6 セクタ消去の再開 ................................................................................................... 28.8 3M ビットフラッシュメモリ使用上の注意 ....................................................................... 28.9 フラッシュメモリにおけるリセットベクタアドレス ....................................................... 28.10 3M ビットフラッシュメモリのプログラム例 ................................................................... 第 29 章 29.1 29.2 29.3 29.4 29.5 付録 A 付録 B B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 付録 C 付録 D 索引 シリアル書込み接続例 ......................................................................... 581 MB90F394H(A) シリアル書込み接続の基本構成 ............................................................. シリアル書込み接続例 ...................................................................................................... シリアル書込み接続例 ( ライタから電源供給時 ) ............................................................. フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ..................... フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) .............. 付録 567 568 570 571 573 574 575 576 577 582 586 588 590 592 .............................................................................................................. 595 I/O マップ .................................................................................................................... 命令 ............................................................................................................................. 命令の種類 ................................................................................................................ アドレッシング ......................................................................................................... 直接アドレッシング .................................................................................................. 間接アドレッシング .................................................................................................. 実行サイクル数 ......................................................................................................... 実効アドレスフィールド .......................................................................................... 命令一覧表の読み方 .................................................................................................. F2MC-16LX 命令一覧表 ............................................................................................ 命令マップ ................................................................................................................ フラッシュメモリモードのタイミングダイヤグラム .................................................. 割込みベクタ一覧表 .................................................................................................... 596 611 612 613 615 622 629 631 633 636 650 672 677 .............................................................................................................. 681 xii 本版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 611 ∼ 671 「付録 B 命令」全体を変更 変更箇所は , 本文中のページ左側の│によって示しています。 < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 以下の型格を追加 (MB90V390HA, MB90V390HB, MB90394HA, MB90F394HA) - レジスタ名称、端子名称を変更 ( プログラムバンクレジスタ (PCB) → プログラムカウンタバンクレジスタ (PCB)) ( アディショナルバンクレジスタ (ADB) → アディショナルデータバンクレジスタ (ADB)) (ESCR3 → ESCR2/ESCR3) (SIN3 → SIN2/SIN3) (SOT3 → SOT2/SOT3) (SMR3 → SMR2,SMR3) (ECCR3 → ECCR2/ECCR3) (BGR0/1 → BGR02/BGR03,BGR12/BGR13) (SSR3 → SSR2/SSR3) (RDR3 → RDR2/RDR3) (SCR3 → SCR2/SCR3) (TDR3 → TDR2/TDR3) (SCK3 → SCK2/SCK3) (UODR0, 1, 2 → UODR0, UODR1) (UIDR0, 1, 2 → UIDR0, UIDR1) 機能名を変更 (UART0, 1, 2 → UART0, UART1) (UART3 → UART2, UART3) (UART3 同期クロックモード → UART2, UART3 同期クロックモード ) 3 表 1.2-1 MB90390 シリーズの特長 (1 / 3) を変更 (MB90V390H の UART:3ch → 2 チャネル ) ( 時計タイマ:「発振偏差の修正に対応」を削除 ) (16 ビット入出力タイマ:fsys/22, fsys/24, fsys/26, fsys/28 → fsys/21, fsys/22, fsys/23, fsys/ 24, fsys/25, fsys/26, fsys/27) 4 表 1.2-1 MB90390 シリーズの特長 (2 / 3) を変更 ( クロックモジュレータを追加 ) 5 表 1.2-1 MB90390 シリーズの特長 (3 / 3) を変更 ( フラッシュメモリを変更 ) (* の記述を追加 ) 6 図 1.3-1 MB90V390H のブロックダイヤグラムを変更 (AN[14*:0] → AN[14:0]) xiii < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 8 図 1.5-1 MB90394HA/MB90F394H(A) のブロックダイヤグラムを変更 (10 ビット A/D コンバータ 8ch → 10 ビット A/D コンバータ 15 チャネル ) (AN[7:0] → AN[14:0]) 9 図 1.6-1 MB90V390H の端子配列図を変更 (P44/SPB → P44) (PGA-299 → LQFP-120 プローブケーブルヘッダ部における端子配列図 ) 11 図 1.6-3 MB90394HA/MB90F394H(A) の端子配列図を変更 (P42 → P42/SDA*) (P43 → P43/SCL*) (* : I2C は MB90F394H(A) では使用できません。の記述を追加 ) 13 表 1.8-1 端子機能説明 (1 / 5) 端子番号 98 の端子名を変更 (P00 ∼ P05 → P05) 15 表 1.8-1 端子機能説明 (3 / 5) 端子番号 48 を変更 (AN8* → AN8) 端子番号 49 を変更 (AN9 * → AN9) 端子番号 50 を変更 (AN10* → AN10) 端子番号 51 を変更 (AN11* → AN11) 端子番号 52 を変更 (AN12* → AN12) 16 表 1.8-1 端子機能説明 (4 / 5) 端子番号 53 を変更 (AN13 * → AN13) 端子番号 54 を変更 (AN14* → AN14) 18 表 1.9-1 入出力回路形式 (1 / 2) の分類 D の備考を変更 (( 注意事項 ) 入力特性は端子やデバイスにより異なります。データシートを参照して ください。の記述を追加 ) 19 表 1.9-1 入出力回路形式 (2 / 2) の分類 E の備考を変更 (( 注意事項 ) 入力特性は端子やデバイスにより異なります。データシートを参照して ください。の記述を追加 ) 20 ● ラッチアップの防止を変更 ( 同様の理由により , アナログ電源電圧 (AVCC, AVRH) がデジタル電源電圧を超える ことのないよう十分注意してください。の記述を追加 ) 21 ● 電源入力端子 (VCC/VSS) を変更 xiv < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 22 ● 水晶発振回路についてを変更 ( 各商品において , ご使用される発振子メーカに発振評価依頼をしてください。 の記述を追加 ) ● A/D コンバータの電源 , アナログ入力の投入順序についてを変更 (( アナログ電源とディジタル電源を同時に投入 , 遮断することは問題ありません。) を 削除 ) ● 初期化についてを削除 24 ● 最小命令実行時間を変更 (50ns (5MHz 発振 , 4 逓倍 ) → 42ns (4MHz 発振 , 6 逓倍 )) 28 ■ メモリ空間マップを変更 (FF4000H ∼ FFFFFFH → "FF4000H"/"FF8000H"* ∼ "FFFFFFH") (FF0000H ∼ FF3FFFH → "FF0000H" ∼ "FF3FFFH"/"FF7FFFH"*) ( <注意事項>を追加 ) 42 47, 48 51 53, 54 表 2.8-1 各レジスタの機能を変更 (RO0 → R0) (RWO0 → RW0) 2.11 "「DIV A, Ri」", "「DIVW A, RWi」" 命令の使用上の注意を追加 図 3.1-2 ソフトウェア割込みの概要を変更 (ILM : 割込みレベルマスクレジスタ → S : スタックフラグ ) 表 3.2-1 割込みベクタを変更 (*2 および *3 を追加 ) (*2: MB90V390HA/MB90V390HB の ( ) 内の割込みを共有します。の記述を追加 ) (*3: MB90394HA の ( ) 内の割込みを共有します。の記述を追加 ) 55 <注意事項>を変更 (*"1" は常に読出しです。の記述を削除 ) ( <補足>を追加 ) 59 図 3.4-2 割込み処理中のレジスタ退避を変更 (DPB → DTB) 63 表 3.5-1 割込み処理時のサイクル数の補正値を変更 64 図 3.5-2 スタック内に退避されたレジスタを変更 (DPB → DTB) 66 図 3.6-1 ソフトウェア割込みの発生と解除までを変更 (ILM : 割込みレベルマスクレジスタ → S : スタックフラグ ) 74 ● データ転送継続時 ( 停止条件が成立しない場合 ) を変更 ((「図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の動作フロー」+「表 3.8-2 EI2OS の実行時間のデータ転送の補正値」) マシンサイクル → ( 表 3.8-1 + 表 3.8-2 ) マ シンサイクル ) 80 図 4.3-1 遅延割込み発生を変更 (ICRyy → ICRxx) 82 ■ クロックの概要 , ● PLL クロック (PCLK) および● マシンクロック (φ) を変更 (4 種類 → 6 種類 ) <注意事項>を変更 xv < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 83 図 5.1-1 クロック供給マップ を変更 (PLL 逓倍回路に「6」「8」を追加 ) 84 図 5.2-1 クロック発生部のブロックダイヤグラムを変更 (「PLL および特殊構成制御レジスタ (PSCCR):bit8)」,「CS2」,「クロックセレクタ」 を追加 ) 85 ● クロックセレクタを変更 (4 種類 → 6 種類 ) 87 図 5.3-2 クロック選択レジスタ (CKSCR) の構成を変更 88 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2) bit14 の機能を変更 (• 書込みは , 影響しません。の記述を追加 ) bit13,bit12 の機能の ( 注意事項 ) を変更 ("00B" の設定は , メインクロックモード時のみ設定してください。→ "00B" と "01B" の 設定は , メインクロックモード時のみ設定してください。) 89 90, 91 92 93, 94 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2) bit9,bit8 の機能を変更 5.3.2 PLL および特殊構成制御レジスタ (PSCCR) を追加 ● PLL クロックモードを変更 ■ PLL クロック逓倍率の選択を変更 図 5.4-1 マシンクロック選択の状態遷移図 , および図の説明を変更 97 5.7 メインクロック HCLK, HCLKX の出力を追加 99 第 6 章 クロックモジュレータ ( 注意事項 ) を追加 100 ■ 周波数変調モードの変調度と周波数分解能 説明文を変更 104 表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (1 / 3) bit7 の機能を変更 106 表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (3 / 3) bit1, bit0 の機能を変更 (6 ms → 6 μs) bit1 の機能を変更 ((PLL lock time must be elapsed) → (PLL ロック時間が経過していなければなりません )) 107 表 6.3-2 モジュレータステータスを変更 ( モジュレータパワーオン待機モジュレータスタートアップタイム (> 6 ms) → モジュレータパワーオン待機モジュレータスタートアップタイム (> 6 μs)) 108 図 6.3-3 クロック変調パラメータレジスタ (CMPR) を変更 (CMPRL ( 上位 ) → CMPRH ( 上位 )) (XX0000010 B → XX000010B) 116 ■ 周波数変調モードの変調パラメータの 5. を変更 120 ● パワーオンリセットを変更 xvi < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 121 ● 外部リセットを変更 125 ● リセットベクタ ( アドレス :FFFFDCH ∼ FFFFDEH) <注意事項>を追加 128 ■ リセット中の端子の状態を変更 ( リセット中の各端子の状態は , 「5.7 スタンバイモード , ホールド , リセット時の端子 状態」を参照してください。の記述を削除 ) 130 図 8.1-1 CPU 動作モードと消費電流を変更 133 図 8.2-1 低消費電力制御回路のブロックダイヤグラムを変更 (「PLL 制御レジスタ (PSCCR):bit8)」 、「CS2」、「クロックセレクタ」を追加 ) 137 ■ 低消費電力モード制御レジスタへのアクセスを変更 ( スタンバイモード遷移命令 → 低消費電力モード遷移命令 ) ( スタンバイモード解除後の動作 → 低消費電力モード解除後の動作 ) 140 <注意事項>を変更 ( ストップモード , ウォッチモード , またはタイムベースタイマモード → ストップ モード またはタイムベースタイマモード ) 144 ■ タイムベースタイマモードの解除 ● リセットによる復帰の<注意事項>を変更 (RST 信号を 50μs → RST 信号を 100μs) 145 ■ ストップモードの解除 ● リセットによる復帰に<注意事項>を追加 147 図 8.6-1 状態遷移図を変更 ( メインクロック発振安定待ち → PLL クロック発振安定待ち ) 149 8.7 スタンバイモードとリセット時の端子状態を追加 151, 152 ● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスす る場合を変更 ( スタンバイモード遷移命令 → 低消費電力モード遷移命令 ) ( スタンバイモード解除後の動作 → 低消費電力モード解除後の動作 ) ● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合を 変更 ( 例 ( 時計モードまたはタイムベースタイマモード遷移関数の場合 ) → 例 ( タイム ベースタイマモード遷移関数の場合 )) (void enter_watch(){ → void enter_timebase(){) 165 ■ アナログ入力許可レジスタ <注意事項>を変更 (ANIN 0 ∼ 7 → AN0 ∼ AN7) (ANIN 8 ∼ 14 → AN8 ∼ AN14) 174 図 12.1-1 ウォッチドッグタイマのブロックダイヤグラムを変更 xvii < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 175 ■ ウォッチドッグタイマ制御レジスタ (WDTC) [bit7, bit5 ∼ bit3] PONR, WRST, ERST, SRST を変更 (【bit7 ∼ 3】PONR, STBR, WRST, ERST, SRST → [bit7, bit5 ∼ bit3] PONR, WRST, ERST, SRST) [bit2] WTE を変更 ( また , "0" の書込みはウォッチドッグカウンタをクリアします。の記述を追加 ) 177 ■ ウォッチドッグタイマの状態遷移図を追加 178 ■ ウォッチドッグカウンタを変更 ■ ウォッチドッグ停止を変更 ■ ウォッチドッグ不活性化を追加 ■ ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグ タイマの動作を追加 179 ■ リセット時のウォッチドッグタイマの動作を追加 182 ■ 16 ビットフリーランタイマを変更 ( ● カウンタ動作クロックは 4 種類から選択可能 → ● カウンタ動作クロックは 8 種類から選択可能 ) ● カウンタ動作クロックは 8 種類から選択可能を変更 ( 内部クロック 4 種類 : φ/4,φ/16,φ/64,φ/256 (φ: マシンクロック ) → 内部クロック 8 種類 : φ, φ/2,φ/4, φ/8,φ/16, φ/32, φ/64, φ/128 (φ: マシンクロック )) 183 ■ インプットキャプチャ ( モジュールごとに 2 チャネル ) を変更 ( インプットキャプチャ 0 (ch. IN0, IN1) はフリーランタイマ 0 に , インプットキャプ チャ 1 およびインプットキャプチャ 2 (ch.IN2, IN3, IN4, IN5) はフリーランタイマ 1 に 割り当てられています。の記述を追加 ) 186 13.3 16 ビットフリーランタイマの要約を変更 ( カウントクロックは 4 種類から選択可能 → カウントクロックは 8 種類から選択可能 ) (( フリーランタイマ 0) またはコンペアレジスタ 4 ( フリーランタイマ 1) の記述を追加 ) 図 13.3-1 16 ビットフリーランタイマのブロックダイヤグラム を変更 (CLK2 を追加 ) 187 ■ タイマデータレジスタを変更 189 表 13.3-1 フリーランタイマの制御ステータスレジスタ ( 下位 ) bit4 の機能を変更 bit3 の機能の ( 注意事項 ) を変更 191 ■ 16 ビットフリーランタイマの動作を変更 xviii < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 192 ■ アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたときのカウンタクリ アおよび図 13.3-6 アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたとき のカウンタクリアを変更 ( アウトプットコンペアレジスタ 0 値 → アウトプットコンペアレジスタ 0 (4) 値 ) ■ 16 ビットフリーランタイマのタイミングおよび図 13.3-7 16 ビットフリーランタイ マのクリアタイミング ( コンペアレジスタ 0/4 との一致 ) を変更 ( コンペアレジスタ 0 → コンペアレジスタ 0/4) ( リセット , ソフト , アウトプットコンペアレジスタ 0 → リセット , ソフトウェア , ア ウトプットコンペアレジスタ 0 (4)) ( アウトプットコンペアレジスタ 0 → アウトプットコンペアレジスタ 0 (4)) 193 ■ アウトプットコンペアを変更 (• 共通周波数を使用する場合は , 各 2 フリーランタイマには 3 パルス幅の変調信号が 有効です。→ • 各 2 フリーランタイマには 3 パルス幅の変調信号が有効です。) 209 表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 ) (1 / 2) bit2 を変更 224 図 14.5-1 16 ビットリロードタイマの出力端子機能 (1) を変更 図 14.5-2 16 ビットリロードタイマの出力端子機能 (2) を変更 225 図 14.6-1 カウンタの状態遷移を変更 229 図 15.2-1 時計タイマのレジスタ WTCR を変更 (0 0 0 - - 0 0 0 → 000XX000) WTSR を変更 (bit13 を - → R/W) (- - - X X X X X → XXXXXXXX) WTBR1 を変更 (D18 → D16) (- - X X X X X X → XXXXXXXX) WTHR を変更 (- - - X X X X X → XXXXXXXX) WTMR を変更 (- - X X X X X X → XXXXXXXX) <注意事項>を変更 ( 時計タイマ制御レジスタ (WTC) → タイマ制御レジスタ (WTCR)) 233 表 15.2-2 タイマ制御レジスタ ( 上位 ) を変更 235 図 15.2-5 秒 / 分 / 時間レジスタの構成を変更 (00354CH の記述を削除 ) (bit13 を - → R/W) 238 ● 16 ビット PPG 出力動作モードを変更 (PPG0+PPG1, PPG2+PPG3, PPG4+PPG5, PPG6+PPG7, PPG8+PPG9, PPGA+PPGB の組合 せで使用します。の記述を追加 ) 239 図 16.2-1 8/16 ビット PPG(ch.0) のブロックダイヤグラムを変更 (PRLBH0 → PRLL0) (( テンポラリバッファ ) の記述を追加 ) xix < 参考 > 2 版→ 3 版での主な変更内容 ページ 240 239 ∼ 242 変更内容(詳細は本文を参照してください。) 図 16.2-2 8/16 ビット PPG(ch.1) のブロックダイヤグラムを変更 (PRLBH1 → PRLL1) (( テンポラリバッファ ) の記述を追加 ) 16.2 8/16 ビット PPG のブロックダイヤグラムを変更 ( ● ブロックダイヤグラム中の端子などの詳細を追加 ) ( ● PPG1 動作モード制御レジスタ (PPGC1) を追加 ) ( ● PPG0/1 カウントクロック選択レジスタ (PPG01) を追加 ) ( ● PPG1 リロードレジスタ (PRLH1, PRLL1) を追加 ) ( ● PPG1 ダウンカウンタ (PCNT1) を追加 ) ( ● PPG1 テンポラリバッファ (PRLBH1) を追加 ) ( ● リロードレジスタ L/H セレクタを追加 ) ( ● カウントクロックセレクタを追加 ) ( ● PPG 出力制御回路を追加 ) 243 ■ 8/16 ビット PPG のレジスタ PPGCn を変更 ((0)(-)(0)(0)(0)(-)(-)(1) → (0)(X)(0)(0)(0)(X)(X)(1)) PPGCm を変更 ((0)(-)(0)(0)(0)(0)(0)(1) → (0)(X)(0)(0)(0)(0)(0)(1)) PPGnm を変更 ((0)(0)(0)(0)(0)(0)(-)(-) → (0)(0)(0)(0)(0)(0)(X)(X)) 248 図 16.3-3 PPG0/1 クロック選択レジスタ (PPG01) の構成 PCM1 および PCS1 の「タイムベースタイマからのクロック入力」の値を変更 (0 → 1) 249 表 16.3-3 クロック選択レジスタの構成 (PPG01) のビット機能説明 PCS1 および PCM1 の「タイムベースタイマからのクロック入力」の値を変更 (0 → 1) 250 ■ リロードレジスタ (PRLL, PRLH) PRLLn のアドレスを変更 (ch6 00350BH → ch.6 00350CH) 254 ■ 8/16 ビット PPG のカウントクロックの選択 <注意事項>を追加 262 ■ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) <注意事項>を追加 263 ■ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) <注意事項>を変更 ( 逓倍外部割込み出力 → 複数の外部割込み出力 ) ( 新たに 2 つの注意事項を追加 ) 267 ● DTP/ 外部割込みの動作手順を変更 (1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。の記述を追加 ) ● 外部割込み要求レベルを変更 ( パルス幅は最小 3 マシンサイクル必要とします。→ データシートに記載されている 最小パルス幅以上の期間が必要です。) xx < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 270 ■ 8/10 ビット A/D コンバータの機能を変更 ( マシンクロック周波数 20MHz の場合 → ある一定のマシンクロック周波数のみが使 用可能な場合 ) (16 ビットフリーランタイマのゼロ検出エッジから設定できます。→ 外部トリガ ADTG から設定できます。) 274 <注意事項>を変更 (ANIN0 ∼ 7 → AN0 ∼ AN7) (ANIN8 ∼ 14 → AN8 ∼ AN14) 275 <注意事項>を変更 ( ポート方向レジスタ (DD6/DDRB) → ポート方向レジスタ (DDR6/DDRB)) 277 図 18.4-2 アナログ入力許可 /A/D コンバータ選択レジスタの上位ビット (ADER1) の構 成 A/D コンバータ入力選択ビットを変更 (ANIN0 ∼ 7 → AN0 ∼ AN7) (ANIN8 ∼ 14 → AN8 ∼ AN14) 279 表 18.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明 bit12 の機能を変更 282 表 18.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 (2 / 2) bit5,bit4,bit3 の機能を変更 (( 注意事項 ) を追加 ) 図 18.4-6 A/D データレジスタ (ADCR0, ADCR1) アドレスを変更 (000037H(下位)→ 000037H(上位)) (000036H(上位)→ 000036H(下位)) 283 コンペア時間設定ビットを変更 (66 マシンサイクル (16MHz の場合 , 4.12μs) → 66 マシンサイクル (20MHz の場合 , 3.3μs)) (88 マシンサイクル (16MHz の場合 , 5.50μs) → 88 マシンサイクル (24MHz の場合 , 3.67μs)) (176 マシンサイクル (16MHz の場合 , 11.0μs) → 176 マシンサイクル (24MHz の場合 , 7.33μs)) サンプリング時間設定ビットを変更 (32 マシンサイクル (16MHz の場合 , 2.0μs) → 32 マシンサイクル (20MHz の場合 , 1.6μs)) (48 マシンサイクル (16MHz の場合 , 3.0μs) → 48 マシンサイクル (24MHz の場合 , 2.0μs)) (128 マシンサイクル (16MHz の場合 , 8.0μs) → 128 マシンサイクル (24MHz の場合 , 5.33μs)) 284 表 18.4-3 A/D データレジスタ 0 (ADCR0) の各ビットの機能説明 bit14,bit13 および bit12,bit11 の機能の ( 注意事項 ) を変更 ( マシンクロック周波数 16 (20)MHz の場合に , → マシンクロック周波数 16 (20, 24)MHz の場合に ,) 289 ● EI2OS を使用しているときのデータ保護機能を変更 xxi < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 302 19.1 UART0, UART1 の特長の要約を変更 (UART1 と UART2 は , UART0 と同じ機能を持ちます。の記述を削除 ) 303 図 19.2-1 UART0, UART1 のブロックダイヤグラムを変更 (( 注意事項 ) このダイヤグラムは ,UART0,UART1 については有効です。の記述を追加 ) ■ UART のレジスタ シリアルモード制御レジスタを変更 (UMC2 の記述を削除 ) (ch.2 000028H の記述を削除 ) 304 ステータスレジスタを変更 (USR2 の記述を削除 ) (ch.2 000029H の記述を削除 ) インプットデータレジスタ / アウトプットデータレジスタを変更 (UIDR2 および UODR2 の記述を削除 ) (ch.2 00002AH の記述を削除 ) レート・データレジスタを変更 (URD2 の記述を削除 ) (ch.2 00002BH の記述を削除 ) 305 図 19.3-1 シリアルモード制御レジスタ (UMC) の構成を変更 (UMC2 の記述を削除 ) (000028H の記述を削除 ) シリアル出力イネーブルを変更 (SOT0,1,2 → SOT0, SOT1) 動作モード設定を変更 306 表 19.3-1 シリアル制御レジスタビットの機能 bit1 および bit0 の機能を変更 (< 注意事項 > を削除 ) 307 図 19.3-2 ステータスレジスタ (USR) の構成を変更 (USR2 の記述を削除 ) (000029H の記述を削除 ) 310 図 19.3-3 インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR) を変更 (00002AH の記述を削除 ) (bit 8 to 0 → bit 7 ∼ bit 0) 311 図 19.3-4 レート・データレジスタ (URD) の構成を変更 (URD2 の記述を削除 ) (00002BH の記述を削除 ) 315 ■ CLK 非同期ボーレート <注意事項>を変更 (20MHz の記述を追加 ) 318 ■ 転送データフォーマットを変更 (UMC0, 1, 2 → UMC0, UMC1) (SIN0, 1, 2 → SIN0, SIN1) (SOUT0, 1, 2 → SOUT0, SOUT1) xxii < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 327 第 20 章 UART2, UART3 ( 注意事項 ) を追加 329 表 20.1-1 UART2, UART3 の機能 (2 / 2) LIN バスオプションの機能を変更 ((UART3) / ICU3 (UART2 は MB90V390HA/MB90V390HB のみ ) の記述を追加 ) 330 表 20.1-4 UART2, UART3 の割込みと EI2OS を変更 331 ■ UART2, UART3 の構成を変更 (• LIN synch break 生成回路の記述を追加 ) 336 表 20.3-1 UART2, UART3 の端子を変更 337 ■ UART2, UART3 の端子のブロックダイヤグラムを変更 (( 注意事項 ) レジスタと端子番号を除いて , UART2 は UART3 と機能的に同じです。 の記述を追加 ) 338 図 20.4-1 UART2, UART3 のレジスタ一覧を変更 339 図 20.4-2 シリアル制御レジスタ (SCR2/SCR3) を変更 (SCR2: 0035D9H の記述を追加 ) 342 図 20.4-3 シリアルモードレジスタ (SMR2/SMR3) を変更 (SMR2: 0035D8H の記述を追加 ) 344 図 20.4-4 シリアルステータスレジスタ (SSR2/SSR3) を変更 (SSR2: 0035DBH の記述を追加 ) 347 図 20.4-5 受信データレジスタ / 送信データレジスタ (RDR2/RDR3 および TDR2/TDR3) を変更 (RDR2/TDR2: 0035DAH の記述を追加 ) (11111111B [TDR2/TDR3] の記述を追加 ) 図 20.4-6 拡張ステータス制御レジスタ (ESCR2/ESCR3) を変更 (ESCR2: 0035DDH の記述を追加 ) 349 (00000100B → 00000X00B) (SIOP の網掛けを削除 ) (LBL1,LBL0 を網掛けに変更 ) 350 表 20.4-4 拡張ステータス制御レジスタ (ESCR2/ESCR3) の各ビットの機能説明 bit15 の機能を変更 (LIN synch break 割込みは受信割込みに接続されます。の記述を追加 ) bit14 の機能を変更 bit10 の機能を変更 (• 本ビットの設定値は、シリアル制御レジスタ (SCR) の TXE ビットが "0" の場合のみ 有効です。の記述を追加 ) bit9 の機能を変更 bit8 の機能を変更 ( 動作モード 0,1,3 の時は "0" に設定してください。→ MB90V390H/MB90F394H(A): 動作モード 0, 1, 3 のときは "0" に設定してください。 MB90V390HA/MB90V390HB/ MB90394HA:動作モード 0, 1, 3 のときは "0" に固定されます。) 351 表 20.4-5 SOPE と SIOP の相互作用説明を変更 xxiii < 参考 > 2 版→ 3 版での主な変更内容 ページ 352 変更内容(詳細は本文を参照してください。) 図 20.4-7 拡張通信制御レジスタ (ECCR2/ECCR3) を変更 (ECCR2: 0035DCH の記述を追加 ) (000000XXB → X0000XXXB) 353 表 20.4-6 拡張通信制御レジスタ (ECCR2/ECCR3) の各ビットの機能説明 bit5 の機能を変更 bit4 の機能を変更 354 ■ ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構成を 変更 図 20.4-8 ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構 成を変更 (BGR02: 0035DEH および BGR12: 0035DFH の記述を追加 ) 355 表 20.5-1 LIN-UART2,UART3 の割込み制御ビットと割込み要因 RDRF, ORE, FRE および PE の割込み要求フラグのクリアを変更 ( 受信データの読出し → 受信データの読出し MB90V390H/MB90F394H(A):LIN synch break 検出 (LBD= 1)) ( 受信エラーフラグクリアビット (SCR3:CRE) への "1" の書込み → 受信エラーフラグ クリアビット (SCR2/SCR3:CRE) への "1" 書込み MB90V390H/MB90F394H(A):LIN synch break 検出 (LBD= 1).) インプットキャプチャの行を変更 (ICP0/1/4/5 → ICP1/ICP3/ICP5) (ICS01/45 → ICS01/ICS23/ICS45) (ICE0/1/4/5 → ICE1/ICE3/ICE5) 356 ● 受信割込みを変更 357 ● LIN synch break 割込みを変更 ● LIN synch field エッジ検出割込みを変更 358 表 20.5-2 LIN-UART2,UART3 の割込みと EI2OS を変更 ● UART2 受信の場合を変更 ● UART2 送信の場合を変更 359 図 20.5-1 受信動作とフラグセットのタイミング <注意事項>を変更 ( 図 20.5-1 はモード 0 における → 図 20.5-1 はモード 0 およびモード 3 における ) 361 図 20.5-3 送信動作とフラグセットのタイミングを変更 ( モード 0,1 または 3:TDR 書込み → モード 0, 1, 2 (SSM=1) または 3:TDR2/TDR3 書 込み ) 363 ● 外部クロック (1 対 1 モード ) によるボーレートを変更 ( マシンクロックの 4 分周以下のボーレートを外部で設定できます。の記述を追加 ) 368 ■ リロードカウンタの再スタートを変更 (• グローバル MCU リセットの記述を追加 ) 371 ■ 同期方式を変更 372 図 20.7-1 送受信データフォーマット ( 動作モード 0, 1) を変更 373 ● 送受信データフォーマットを変更 377 ● クロックの供給を変更 xxiv < 参考 > 2 版→ 3 版での主な変更内容 ページ 380 381, 382 変更内容(詳細は本文を参照してください。) ● LIN マスタとしての UART2, UART3 動作を変更 表 20.7-2 LIN break 長を変更 (LBL0 → LBL1) (LBL1 → LBL0) ● LIN スレーブとしての動作を変更 ● LIN Synch Break 検出割込みとフラグを変更 図 20.7-7 LIN synch break 検出とフラグセットのタイミングを変更 385 図 20.7-10 UART2,UART3 の動作モード 0, 2 の設定 EXT のモード 0 を変更 ( ◎ → 0) SCKE のモード 0 を変更 ( ◎ → 0) CCO のモード 0 を変更 (0 → X) SCES のモード 0 を変更 (0 → +) 387 図 20.7-13 UART2,UART3 の動作モード 1 の設定 EXT のモード 1 を変更 ( ◎ → 0) SCKE のモード 1 を変更 ( ◎ → 0) CCO のモード 1 を変更 (0 → X) SCES のモード 1 を変更 (0 → +) 389 図 20.7-15 マスタ / スレーブ型通信フローチャートを変更 (SOT3 端子をシリアルデータ出力に設定 → SOT2/SOT3 端子をポート入力に設定 ) 390 図 20.7-16 UART2,UART3 の動作モード 3(LIN) 設定を変更 EXT のモード 3 を変更 ( ◎ → 0) SCKE のモード 3 を変更 ( ◎ → 0) CCO のモード 3 を変更 (0 → X) SCES のモード 3 を変更 (0 → +) 392 図 20.7-19 UART2, UART3 の LIN スレーブフローチャートを変更 393 ● 通信モードの設定を変更 ( 送受信中にモード設定をした場合,そのとき送受信されたデータは保証されません。 → 送受信中にモード設定をした場合 , 送受信は停止し , そのとき送受信されたデータ は保証されません。) ● スタートビット同期を追加 xxv < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 394 ● LIN 動作モード 3 の使用 <注意事項>を追加 ● バスアイドル機能を変更 ( バスアイドル機能は同期モード 2 では使用できません。→ バスアイドル機能は同期 モード 2 および SSM=0 では使用できません。) 395 ● A/D ビット ( シリアル制御レジスタ (SCR2/SCR3):アドレス / データ形式選択ビッ ト ) を変更 ● UART2,UART3 ソフトウェアリセットを変更 ( シリアル制御レジスタ (SCR3) の TXE ビットが "0" の時に , → シリアル制御レジス タ (SCR2/SCR3) の TXE ビットが "1" のときに ,) ● LIN Synch field 待ち状態を変更 397 第 21 章 400 kHz I2C インタフェース ( 注意事項 ) を追加 400, 401 ■ I2C インタフェースのレジスタ一覧を変更 (ITBA → ITBAH) (ITBA → ITBAL) (ITMK → ITMKH) (ITMK → ITMKL) ( ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) の図を追加 ) 403 表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (1 / 2) bit4 の機能を変更 ( このビットは , ビット ( アクノリッジビット ) の待機中に → このビットは , bit9( アク ノリッジビット ) の待機中に ) 404 表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (2 / 2) bit0 の機能を変更 (SCC ビットに 0 が書込まれる → SCC ビットに "1" が書き込まれる ) 408 表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (2 / 3) bit12 の機能を変更 ( 次の割込み時にデータバイト (IBSR の AAS = 1) 送信が → 次の割込み時にデータバ イト (IBSR の AL=1) 送信が ) bit10 の機能を変更 410 <注意事項>を変更 (• MB90F394H(A) と MB90V390H 以外のデバイスを使用する場合の注意を追加 ) 414 表 21.2-3 各 10 ビットスレーブアドレスレジスタ (ITBA) の機能 bit9 ∼ bit0 のビット名を変更 (TBA9 ∼ 0 → TA9 ∼ TA0) 415 ■ I2C10 ビットアドレスマスクレジスタ (ITMK) を変更 (ITMK → ITMKH) (ITMK → ITMKL) 418 表 21.2-6 各 7 ビットスレーブアドレスマスクレジスタの機能 bit14 ∼ bit8 のビット名を変更 (SMK → SM6 ∼ SM0) xxvi < 参考 > 2 版→ 3 版での主な変更内容 ページ 421 変更内容(詳細は本文を参照してください。) 表 21.2-8 クロック制御レジスタの各ビット機能 (1 / 2) bit14 の機能を変更 bit13 の機能を変更 (( 注意事項 ) を変更 ) ■ クロックプリスケーラ設定を変更 (INFCR:SEL[1:0]=01B の記述を追加 ) 423 表 21.2-10 共通マシンクロック周波数を変更 (400 K ビット ( ノイズフィルタ許可 )n ビットレート [K ビット ] → 400 K ビット ( ノイ ズフィルタ許可 , INFCR:SEL[1:0]=01B)n ビットレート [K ビット ]) 424 21.2.8 ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) を追加 425 ■ スタートコンディションを変更 ((BB=0 in IBSR=U, MSS=0 in IBCR=0) → (IBSR の BB=0, IBCR の MSS=0)) 437 表 22.2-2 シリアルシフトクロックモードの設定を変更 (φ=24MHz div=6 の列を追加 ) 447 図 22.4-8 拡張シリアル I/O インタフェースの割込み信号出力タイミングを変更 460 461 469 表 23.6-1 制御ステータスレジスタ ( 下位 ) の各ビット機能を変更 bit0 の機能を変更 (0: ストップモード外でのバス動作 → "0": バス動作が停止していない状態) (1: ストップモードでのバス動作 → "1": バス動作が停止状態 ) (for ( i=0; ( i <= 500 ) || → for ( i=0; ( i <= 500 ) && ) 図 23.6-2 制御ステータスレジスタ ( 上位バイト ) の構成 NS1 および NS0 のバスオフの値を変更 (00 → 11) 図 23.6-6 ビットタイミングレジスタ (BTR) の構成 アドレスを変更 (001C07H → 003707H) (001D07H → 003907H) (001C06H → 003706H) (001D06H → 003906H) 510 ∼ 512 23.16 CAN コントローラの使用上の注意を変更 ( ■ BVAL ビットによるメッセージバッファ禁止時の注意 → ■ BVAL ビットによる メッセージバッファ禁止時の注意 (-H 品 , MB90F394H, MB90V390H など )) ( ■ BVAL ビットによるメッセージバッファ禁止時の注意 (-H 品以外 , MB90V390 な ど ) を追加 ) 523 24.3 ステッピングモータコントローラ使用上の注意を追加 539 26.2 アドレス一致検出機能のレジスタの要約を変更 (• プログラムアドレス検出レジスタ (PADR0/PADR5) → • プログラムアドレス検出レ ジスタ (PADR0, PADR1, PADR3 ∼ PADR5)) 543 図 26.4-2 プログラムパッチ処理例を変更 545 第 27 章 ROM ミラー機能選択モジュール ( 注意事項 ) を削除 xxvii < 参考 > 2 版→ 3 版での主な変更内容 ページ 547 変更内容(詳細は本文を参照してください。) 表 27.2-1 ROM ミラーレジスタの各ビット機能 bit9 の機能の ( 注意事項 ) を変更 ( 他のデバイスは選択可能です。→ MB90394HA および MB90F394H(A) では選択可能 です。) <注意事項>を変更 (FF4000H ∼ FFFFFFH → "FF4000H"/"FF8000H" ∼ "FFFFFFH") (004000H ∼ 00FFFFH → "004000H"/"008000H" ∼ "00FFFFH") (FF0000H ∼ FF3FFFH → "FF0000H" ∼ "FF3FFFH"/"FF7FFFH") 550 28.1 3M ビットフラッシュメモリの概要の要約を変更 (CPU メモリマップ上の FC ∼ FF バンク → CPU メモリマップ上の F8/F9 ∼ FF バンク ) 551 図 28.2-1 フラッシュメモリ全体のブロックダイヤグラムを変更 (AQ0 ∼ AQ17 AQ-1 → AQ0 ∼ AQ18) 553, 554 ■ その他モードを変更 (CPU メモリ空間の FC/F9 ∼ FF バンク → CPU メモリ空間の F8/F9 ∼ FF バンク ) <注意事項>を追加 ■ フラッシュメモリの制御信号 <注意事項>を追加 556 [bit5] WE( 書込み許可 ) を変更 (FC/F9 ∼ FF バンク → F8(F9) ∼ FF バンク ) [bit4] RDY( レディ ) を変更 ( セクタ消去一時停止等のサスペンドコマンドは受け付けられます。→ セクタ消去一 時停止コマンドは受け付けられます。) 558 表 28.5-2 自動選択時のアドレス設定を変更 (AQ13 ∼ AQ17(AQ18) → AQ13 ∼ AQ18) 563 ● 書込み / チップ・セクタ消去時を変更 ( まれに "1" が書き込めたように正常終了する場合もあります。の記述を追加 ) 573 ■ フラッシュメモリセクタ消去の一時停止を変更 ( 最大 15μs の時間の後 , → 最大 20μs の時間の後 ,) ( セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマ ンド発行後 , 20μs 以上後に行ってください。の記述を追加 ) 574 ■ フラッシュメモリセクタ消去の再開を変更 575 ● ハードウェアリセット (RST) の入力を変更 ● フラッシュメモリへのプログラムアクセスを変更 583 表 29.1-1 富士通標準シリアルオンボード書込みに使用する端子 X0, X1 の補足説明を変更 P00, P01 の補足説明を変更 VCC の補足説明を変更 596 表 A-1 I/O マップ (1 / 6) アドレス 00000DH のレジスタを変更 ( アナログ入力許可 1/ADC 選択 → アナログ入力許可 1) xxviii < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 表 A-1 I/O マップ (2 / 6) アドレス 000028H ∼ 00002BH を変更 597 (UART2 → 予約 ) アドレス 00002FH のレジスタおよび略称を変更 ( シリアル IO プリスケーラ / エッジセレクタ → シリアル I/O プリスケーラ ) (SES → CDCR) アドレス 000030H のレジスタを変更 ( 外部割込み要求 → 割込み /DTP 許可レジスタ ) 表 A-1 I/O マップ (3 / 6) アドレス 00003BH のレジスタおよび周辺を変更 598 (ROM コレクション制御ステータス 1 → プログラムアドレス検出制御 / ステータスレ ジスタ 1) (ROM コレクション 1 → プログラムアドレス検出 1) アドレス 00003EH のレジスタを変更 (PPG2, PPG3 出力端子制御レジスタ → PPG2/PPG3 クロック制御レジスタ ) 599 表 A-1 I/O マップ (4 / 6) アドレス 00005FH の初期値を変更 (0XXXXXX0B → 0XXXXX00B) 表 A-1 I/O マップ (5 / 6) アドレス 00006FH の初期値を変更 (XXXXXXX1B → XXXXXX+*1B) 600 アドレス 00009EH のレジスタおよび周辺を変更 (ROM コレクション制御 / ステータス 0 → プログラムアドレス検出制御ステータスレ ジスタ 0) (ROM コレクション 0 → プログラムアドレス検出 0) * の記述を追加 表 A-2 I/O マップ (35XX アドレス ) (2 / 9) アドレス 00351AH の初期値を変更 (11111111B の記述を追加 ) 603 アドレス 00351CH の初期値を変更 (000000XXB → X0000XXXB) アドレス 00351DH の初期値を変更 (00000100B → 00000X00B) 表 A-2 I/O マップ (35XX アドレス ) (3 / 9) アドレス 00352EH のアービトレーションを変更 (TCCS0 → TCCSL0) アドレス 00352FH のアービトレーションを変更 604 (TCCS0 → TCCSH0) アドレス 00353EH のアービトレーションを変更 (TCCS1 → TCCSL1) アドレス 00353FH のアービトレーションを変更 (TCCS1 → TCCSH1) xxix < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 表 A-2 I/O マップ (35XX アドレス ) (4 / 9) アドレス 00354AH のアービトレーションを変更 605 (WTBR → WTBR(0)) アドレス 00354BH のアービトレーションを変更 (WTBR → WTBR(0)) アドレス 00354CH のアービトレーションを変更 (WTBR → WTBR(1)) 607 608 表 A-2 I/O マップ (35XX アドレス ) (6 / 9) アドレス 00356FH のレジスタを変更 (CAN RX/TX リダイレクトレジスタ → CAN2 RX/TX 端子選択レジスタ ) アドレス 0035A9H の行を変更 表 A-2 I/O マップ (35XX アドレス ) (7 / 9) アドレス 0035CFH の行を変更 アドレス 0035D0H ∼ 0035DFH の行を変更 表 A-2 I/O マップ (35XX アドレス ) (8 / 9) アドレス 0035E0H ∼ 0035E5H のレジスタおよび周辺を変更 609 (ROM コレクションアドレス 0 → プログラムアドレス検出レジスタ 0) (ROM コレクションアドレス 1 → プログラムアドレス検出レジスタ 1) (ROM コレクション 0 → アドレス一致検出 0) アドレス 0035F0H ∼ 0035F8H のレジスタおよび周辺を変更 (ROM コレクションアドレス 3 → プログラムアドレス検出レジスタ 3) (ROM コレクションアドレス 4 → プログラムアドレス検出レジスタ 4) (ROM コレクションアドレス 5 → プログラムアドレス検出レジスタ 5) (ROM コレクション 1 → アドレス一致検出 1) 610 表 A-2 I/O マップ (35XX アドレス ) * 1 および * 2 を追加 633 表 B.8-1 転送命令 ( バイト ) [41 命令 ] を変更 (MOV @AL,AH / MOV @A,T → MOV @AL,AH) 634 表 B.8-2 転送命令 ( バイト ) [38 命令 ] を変更 (MOVW @AL,AH / MOVW @A,T → MOVW @AL,AH) 645 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) [6 命令 ] を変更 (SWAPW / XCHW A,T → SWAPW) 675 表 D-1 割込みベクタ一覧表 (2 / 2) INT39 および INT40 のハードウェア割込みを変更 (UART2RX/(UART3RX) → UART3 RX/(UART2 RX)) (UART2TX/(UART3TX) → UART3 TX/(UART2 TX)) 677 表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (2 / 2) 割込みベクタ番号 #39 および #40 の割込み要因を変更 (UART2RX/(UART3RX) → UART3 RX/(UART2 RX)) (UART2TX/(UART3TX) → UART3 TX/(UART2 TX)) 変更箇所は , 本文中のページ左側の│によって示しています。 xxx 第1章 概要 MB90390 シリーズの特長や基本的な仕様について 説明します。 1.1 製品概要 1.2 特長 1.3 MB90V390H のブロックダイヤグラム 1.4 MB90V390HA/MB90V390HB のブロックダイヤグラム 1.5 MB90394HA/MB90F394H(A) のブロックダイヤグラム 1.6 端子配列図 1.7 パッケージ外形寸法図 1.8 端子機能説明 1.9 入出力回路形式 1.10 デバイスの取扱い 1 第 1 章 概要 1.1 製品概要 表 1.1-1 に , MB90390 シリーズの製品概要を示します。 ■ 製品概要 表 1.1-1 製品概要 2 特長 MB90V390H MB90V390HA MB90V390HB MB90394HA MB90F394H(A) 品種構成 評価用品 ROM バージョン フラッシュメモリ品 CPU F2MC-16LX CPU システムクロック オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, × 6, PLL 停止時 1/2) 最小命令実行時間 42ns (4 MHz 原発振 4 逓倍 ) ROM/ フラッシュ メモリ 外部 ROM メモリ 384K バイト RAM MB90V390H: 16K バイト MB90V390HA: 30K バイト MB90V390HB: 30K バイト 10K バイト パッケージ PGA-299 ブートブロック フラッシュメモリ 384K バイト ハードワイヤード リセットベクタ付き 10K バイト LQFP-120 第 1 章 概要 特長 1.2 表 1.2-1 に , MB90390 シリーズの特長を示します。 ■ 特長 表 1.2-1 MB90390 シリーズの特長 (1 / 3) 特長 MB90V390H MB90V390HA MB90V390HB MB90394HA MB90F394H(A) 2 チャネル UART 全二重ダブルバッファ方式 非同期 / 同期転送 ( スタート / ストップビット付き ) をサポートします。 ボーレート 4808/9615/10417/19230/38460/62500/500000bps ( 非同期 ) システムクロック =24 MHz 時 500k/1M/2Mbps ( 同期 ) UART (SCI / LIN) 2 チャネル 1 チャネル 1 チャネル (MB90V390H) I2C (400kbps) 1 チャネル SPB 1 チャネル シリアル I/O MSB または LSB から転送開始可能です。 内部クロック同期転送および外部クロック同期転送をサポートします。 ポジティブエッジとネガティブエッジクロック同期をサポートします。 ボーレートシステムクロック =24 MHz 時 31.25k/62.5k/125k/500k/1Mbps - 15 本の入力チャネル A/D コンバータ 10 ビットまたは 8 ビットの分解能 変換時間 :4.9μs 16 ビットリロード 動作クロック周波数 fsys/21, fsys/23, fsys/25 (fsys= システムクロック周波数 ) タイマ 外部イベントカウント機能をサポートします。 (2 チャネル ) 時計タイマ 水晶発振クロックで直接動作します。 読出し / 書込み可能な秒 / 分 / 時レジスタ 信号割込み 16 ビット入出力 タイマ (2 チャネル ) オーバフロー時に割込み信号を出力します。 アウトプットコンペア (ch.0) との照合時にタイマクリアをサポートします。 動作クロック周波数 fsys/21, fsys/22, fsys/23, fsys/24, fsys/25, fsys/26, fsys/27 (fsys= システムクロック周波数 ) 入出力タイマ 0 ( クロック入力 FRCK0) は , ICU0/ICU1,OCU0/OCU1/OCU2/OCU3 に対応 入出力タイマ 1 ( クロック入力 FRCK1) は , ICU2/ICU3/ICU4/ICU5,OCU4/OCU5/ OCU6/OCU7 に対応 16 ビット アウトプット コンペア (8 チャネル ) 16 ビット入出力タイマとの照合時に , 割込み信号を出力します。 16 ビットキャプチャレジスタ× 8 本 1 対のコンペアレジスタを出力信号生成に使用可能です。 OCU6/OCU7 出力は ICU3/ICU5 入力と共有 3 第 1 章 概要 表 1.2-1 MB90390 シリーズの特長 (2 / 3) 特長 16 ビット インプット キャプチャ (6 チャネル ) MB90V390H MB90V390HA MB90V390HB MB90394HA MB90F394H(A) 立上りエッジ , 立下りエッジまたはその両方を検出します。 16 ビットキャプチャレジスタ× 6 本 外部イベント時に割込み信号を出力します。 ICU3/ICU5 入力は OCU6/OCU7 出力と共有 8 ビットと 16 ビットの動作モードをサポートします。 8 ビットリロードカウンタ× 12 本 "L" パルス幅用の 8 ビットリロードレジスタ× 12 本 8/16 ビット PPG ( プログラマブル "H" パルス幅用の 8 ビットリロードレジスタ× 12 本 1 対の 8 ビットリロードカウンタを 1 本の 16 ビットリロードカウンタとして , パルス発生部 ) または 8 ビットプリスケーラと 8 ビットリロードカウンタとして構成可能です。 (6 チャネル ) 動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24 または 102.4μs@fosc=5MHz (fsys= システムクロック周波数 , fosc= 発振クロック周波数 ) 5 チャネル CAN インタフェース 2 チャネル CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。 エラー時に自動再送します。 リモートフレームに応答して自動転送します。 データおよび ID 用の順位付けされた 16 個のメッセージバッファ複数メッセー ジをサポートします。 アクセプタンスフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマスク /2 個 の部分ビットマスク 最高 1Mbps までサポートします。 ステッピング モータ コントローラ (6 チャネル ) 各チャネルに対する高電流出力× 4 本 各チャネルに対する同期化済み 8 ビット PWM × 2 本 外部割込み (8 チャネル ) 立上りエッジ , 立下りエッジ , "H" レベル , "L" レベルで起動可能 サウンド ジェネレータ 8 ビット PWM 信号は , 8 ビットリロードカウンタからのトーン周波数とミック スされます。 PWM 周波数システムクロック =16MHz 時 62.5kHz, 31.2kHz, 15.6kHz, 7.8kHz トーン周波数 PWM 周波数 /2/ ( リロード値 +1) 入出力ポート ほとんど , 全外部端子を汎用入出力として使用可能です。 すべてのプッシュプル出力 入力 / 出力または周辺信号として , ビット単位でプログラム可能です。 CMOS ヒステリシス入力あるいは Automotive 入力としてポート単位でソフト ウェアにて選択可能 クロック モジュレータ 電磁波放射低減用スペクトラム分散クロックモジュレータ 周波数 , 位相変調モード MB90F394H:周波数変調を使用しないでください。 MB90F394H, MB90V390H, MB90V390HA: CAN メッセージバッファ RAM とクロックモジュレータを同時に使用しないで ください。 4 第 1 章 概要 表 1.2-1 MB90390 シリーズの特長 (3 / 3) 特長 フラッシュメモリ MB90V390H MB90V390HA MB90V390HB MB90394HA - MB90F394H(A) 自動プログラミング , Embedded AlgorithmTM 書込み / 消去 / 消去一時停止 / 消去 再開コマンドをサポート アルゴリズム完了を示すフラグ 消去サイクル数:10,000 回 データ保持期間:20 年間 * フラッシュメモリの固定ブートセ クタを示すためにハード ワイヤードリセットが使用可能 ブートブロック構成 各ブロックで消去を実行可能 外部プログラミング電圧によるブ ロック保護 * : テクノロジ信頼性評価結果からの換算値です ( アレニウスの式を使用し , 高温加速試験結果を平均温度 + 85 ℃ へ換算しています ) 。 5 第 1 章 概要 MB90V390H のブロックダイヤグラム 1.3 図 1.3-1 に , MB90V390H のブロックダイヤグラムを示します。 ■ MB90V390H のブロックダイヤグラム 図 1.3-1 MB90V390H のブロックダイヤグラム X0,X1 RST クロック コントローラ F2MC-16LX CPU RAM 16K バイト I/O タイマ 0 FRCK0 インプット キャプチャ 6 チャネル IN[5:0] アウトプット コンペア 8 チャネル プリスケーラ x4* プリスケーラ SOT4 SCK4 SIN4 10 ビット A/D コンバータ 15 チャネル TIN[1:0] TOT[1:0] 16 ビット リロード タイマ 2 チャネル SPB* 6 シリアル I/O AV CC AV SS AN[14:0] AVRH AVRL ADTG WOT 8/16 ビット PPG 6 チャネル UART 4*チャネル F2MC-16LX Bus SOT[3*:0] SCK[3*:0] SIN[3*:0] I/O タイマ 1 OUT[7:0] FRCK1 PPG0[5:0] PPG1[5:0] CAN 5*チャネル RX[4:0] TX[4:0] SMC 6チャネル PWM1M[5:0] PWM1P[5:0] PWM2M[5:0] PWM2P[5:0] DV CC[3:0] DV SS[3:0] 外部割込み INT[7:0] サウンド ジェネレータ SGO SGA I2C インタ フェース * SDA* SCL* 時計 タイマ SPB インタ フェース * *:すべての MB90390 シリーズで有効ではあ りません。 第 1 章 概要 1.4 MB90V390HA/MB90V390HB のブロックダイヤグラム 図 1.4-1 に , MB90V390HA/MB90V390HB のブロックダイヤグラムを示します。 ■ MB90V390HA/MB90V390HB のブロックダイヤグラム 図 1.4-1 MB90V390HA/MB90V390HB のブロックダイヤグラム X0,X1 RST クロック コントローラ F2MC-16LX CPU RAM 30K バイト I/O タイマ 0 FRCK0 インプット キャプチャ 6 チャネル IN[5:0] アウトプット コンペア 8 チャネル プリスケーラ x4* プリスケーラ SOT4 SCK4 SIN4 シリアル I/O AV CC AV SS AN[14:0] AVRH AVRL ADTG 10 ビット A/D コンバータ 15 チャネル TIN[1:0] TOT[1:0] 16 ビット リロード タイマ 2 チャネル WOT 8/16 ビット PPG 6 チャネル UART 4*チャネル F2MC-16LX Bus SOT[3*:0] SCK[3*:0] SIN[3*:0] I/O タイマ 1 OUT[7:0] FRCK1 PPG0[5:0] PPG1[5:0] CAN 5*チャネル RX[4:0] TX[4:0] SMC 6チャネル PWM1M[5:0] PWM1P[5:0] PWM2M[5:0] PWM2P[5:0] DV CC[3:0] DV SS[3:0] 外部割込み INT[7:0] サウンド ジェネレータ SGO SGA I2C インタ フェース * SDA* SCL* 時計 タイマ *:すべての MB90390 シリーズで有効ではあ りません。 7 第 1 章 概要 1.5 MB90394HA/MB90F394H(A) のブロックダイヤグラム 図 1.5-1 に , MB90394HA/MB90F394H(A) のブロックダイヤグラムを示します。 ■ MB90394HA/MB90F394H(A) のブロックダイヤグラム 図 1.5-1 MB90394HA/MB90F394H(A) のブロックダイヤグラム X0,X1 RST クロック コントローラ F2MC-16LX CPU RAM 10K バイト RAM /Flash 384K バイト I/O タイマ 0 FRCK0 インプット キャプチャ 6 チャネル IN[5:0] アウトプット コンペア 8 チャネル プリスケーラ x3 プリスケーラ SOT4 SCK4 SIN4 シリアル I/O AV CC AV SS AN[14:0] AVRH AVRL ADTG 10 ビット A/D コンバータ 15 チャネル TIN[1:0] TOT[1:0] 16 ビット リロード タイマ 2 チャネル WOT 8/16 ビット PPG 6 チャネル UART 3チャネル F2MC-16LX Bus SOT[4,3,1,0] SCK[4,3,1,0] SIN[4,3,1,0] I/O タイマ 1 OUT[7:0] FRCK1 PPG0[5:0] PPG1[5:0] CAN 2チャネル RX[1:0] TX[1:0] SMC 6チャネル PWM1M[5:0] PWM1P[5:0] PWM2M[5:0] PWM2P[5:0] DV CC[3:0] DV SS[3:0] 外部割込み INT[7:0] サウンド ジェネレータ SGO SGA I2C インタ フェース * SDA SCL 時計タイマ *:I2C インタフェースは MB90F394H(A) で有効ではありません。 8 第 1 章 概要 1.6 端子配列図 MB90390 シリーズの端子配列図を示します。 ■ MB90V390H の端子配列図 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 1 90 2 89 3 88 4 87 5 86 6 85 7 84 8 83 9 82 10 81 11 80 MB90V390H Pin Assignment 12 13 79 78 14 77 15 76 16 75 17 74 18 73 72 19 LQFP-120プローブケーブル ヘッダ部における 端子配列図 20 21 22 23 24 71 70 69 68 67 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 RST MD0 MD1 MD2 DVSS DVCC PA7/PWM2M5 PA6/PWM2P5 PA5/PWM1M5 PA4/PWM1P5 PA3/PWM2M4 PA2/PWM2P4 PA1/PWM1M4 PA0/PWM1P4 DVSS DVCC P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 DVSS DVCC P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 P93/SIN3 P94/SCK3 P95/SOT3 P96/WOT AVCC AVRH AVRL AVSS P60/AN0 P61/AN1 P62/AN2 P63/AN3 P64/AN4 P65/AN5 P66/AN6 P67/AN7 VSS PB0/PPG02/TX3/AN8 PB1/PPG03/RX3/AN9 PB2/PPG04/TX4/AN10 PB3/PPG05/RX4/AN11 PB4/SIN4/AN12 PB5/SCK4/AN13 PB6/SOT4/AN14 DVCC DVSS P70/PWM1P0 P71/PWM1M0 P72/PWM2P0 P73/PWM2M0 38 61 37 62 30 36 63 29 35 64 28 34 65 27 33 66 26 32 25 31 P30/RX0 P31/TX0 P32/TIN1 P33/TOT1 P34/SOT0 P35/SCK0 P36/SIN0 P37/SIN1 P40/SCK1 P41/SOT1 P42/SDA P43/SCL P44 P45/ADTG VCC VSS C P46/INT0 P47/INT1 P50/PPG10 P51/PPG11 P52/PPG12 P53/PPG13 P54/PPG14 P55/PPG15 P56/PPG00/RX2 P57/PPG01/TX2 P90/SIN2 P91/SCK2 P92/SOT2 119 120 P27/INT7 P26/INT6 P25/INT5 P24/INT4 P23/INT3 P22/INT2 P21/RX1 P20/TX1 P17/SGA P16/SGO P15/TOT0 P14/TIN0 X0 X1 VSS VCC P13/OUT5 P12/OUT4 P11/OUT3 P10/OUT2 P07/OUT1 P06/OUT0 P05/IN5/OUT7 P04/IN4 P03/IN3/OUT6 P02/IN2 P01/IN1 P00/IN0 P97/FRCK1/HCLKX PB7/FRCK0/HCLK 図 1.6-1 MB90V390H の端子配列図 ( 注意事項 ) MB90V390H 以外では使用できない端子機能があります。 9 第 1 章 概要 ■ MB90V390HA/MB90V390HB の端子配列図 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 1 90 2 89 3 88 4 87 5 86 6 85 7 84 8 83 9 82 81 10 11 80 MB90V390HA/HB Pin Assignment 12 13 79 78 14 77 15 76 16 75 17 74 18 73 72 19 LQFP-120プローブケーブル ヘッダ部における 端子配列図 20 21 22 23 24 71 70 69 68 67 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 P93/SIN3 P94/SCK3 P95/SOT3 P96/WOT AVCC AVRH AVRL AVSS P60/AN0 P61/AN1 P62/AN2 P63/AN3 P64/AN4 P65/AN5 P66/AN6 P67/AN7 VSS PB0/PPG02/TX3/AN8 PB1/PPG03/RX3/AN9 PB2/PPG04/TX4/AN10 PB3/PPG05/RX4/AN11 PB4/SIN4/AN12 PB5/SCK4/AN13 PB6/SOT4/AN14 DVCC DVSS P70/PWM1P0 P71/PWM1M0 P72/PWM2P0 P73/PWM2M0 38 61 37 62 30 36 63 29 35 64 28 34 65 27 33 66 26 32 25 31 P30/RX0 P31/TX0 P32/TIN1 P33/TOT1 P34/SOT0 P35/SCK0 P36/SIN0 P37/SIN1 P40/SCK1 P41/SOT1 P42/SDA P43/SCL P44 P45/ADTG VCC VSS C P46/INT0 P47/INT1 P50/PPG10 P51/PPG11 P52/PPG12 P53/PPG13 P54/PPG14 P55/PPG15 P56/PPG00/RX2 P57/PPG01/TX2 P90/SIN2 P91/SCK2 P92/SOT2 119 120 P27/INT7 P26/INT6 P25/INT5 P24/INT4 P23/INT3 P22/INT2 P21/RX1 P20/TX1 P17/SGA P16/SGO P15/TOT0 P14/TIN0 X0 X1 VSS VCC P13/OUT5 P12/OUT4 P11/OUT3 P10/OUT2 P07/OUT1 P06/OUT0 P05/IN5/OUT7 P04/IN4 P03/IN3/OUT6 P02/IN2 P01/IN1 P00/IN0 P97/FRCK1/HCLKX PB7/FRCK0/HCLK 図 1.6-2 MB90V390HA/MB90V390HB の端子配列図 ( 注意事項 ) MB90V390H 以外では使用できない端子機能があります。 10 RST MD0 MD1 MD2 DVSS DVCC PA7/PWM2M5 PA6/PWM2P5 PA5/PWM1M5 PA4/PWM1P5 PA3/PWM2M4 PA2/PWM2P4 PA1/PWM1M4 PA0/PWM1P4 DVSS DVCC P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 DVSS DVCC P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 第 1 章 概要 ■ MB90394HA/MB90F394H(A) の端子配列図 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 1 90 2 89 3 88 4 87 5 86 6 85 7 84 8 83 9 82 10 81 11 80 MB90394HA/MB90F394H(A) Pin Assignment 12 13 14 79 78 77 15 76 16 75 17 74 18 73 19 72 20 71 LQFP-120 21 70 60 59 58 57 56 55 54 53 52 51 50 49 48 47 45 46 44 43 42 RST MD0 MD1 MD2 DVSS DVCC PA7/PWM2M5 PA6/PWM2P5 PA5/PWM1M5 PA4/PWM1P5 PA3/PWM2M4 PA2/PWM2P4 PA1/PWM1M4 PA0/PWM1P4 DVSS DVCC P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 DVSS DVCC P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 P93/SIN3 P94/SCK3 P95/SOT3 P96/WOT AVCC AVRH AVRL AVSS P60/AN0 P61/AN1 P62/AN2 P63/AN3 P64/AN4 P65/AN5 P66/AN6 P67/AN7 VSS PB0/PPG02 PB1/PPG03 PB2/PPG04 PB3/PPG05 PB4/SIN4 PB5/SCK4 PB6/SOT4 DVCC DVSS P70/PWM1P0 P71/PWM1M0 P72/PWM2P0 P73/PWM2M0 41 61 40 62 30 39 63 29 38 64 28 37 65 27 36 66 26 35 67 25 34 68 24 33 69 23 32 22 31 P30/RX0 P31/TX0 P32/TIN1 P33/TOT1 P34/SOT0 P35/SCK0 P36/SIN0 P37/SIN1 P40/SCK1 P41/SOT1 P42 P42/SDA* P43/SCL* P43 P44 P45/ADTG VCC VSS C P46/INT0 P47/INT1 P50/PPG10 P51/PPG11 P52/PPG12 P53/PPG13 P54/PPG14 P55/PPG15 P56/PPG00 P57/PPG01 P90 P91 P92 119 120 P27/INT7 P26/INT6 P25/INT5 P24/INT4 P23/INT3 P22/INT2 P21/RX1 P20/TX1 P17/SGA P16/SGO P15/TOT0 P14/TIN0 X0 X1 VSS VCC P13/OUT5 P12/OUT4 P11/OUT3 P10/OUT2 P07/OUT1 P06/OUT0 P05/IN5/OUT7 P04/IN4 P03/IN3/OUT6 P02/IN2 P01/IN1 P00/IN0 P97/FRCK1/HCLKX PB7/FRCK0/HCLK 図 1.6-3 MB90394HA/MB90F394H(A) の端子配列図 * : I2C は MB90F394H(A) では使用できません。 11 第 1 章 概要 パッケージ外形寸法図 1.7 図 1.7-1 に , MB90390 シリーズのパッケージ外形寸法図を示します。 なお , 本外形寸法は参考用です。正式版については , 別途ご相談ください。 ■ パッケージ外形寸法図 図 1.7-1 パッケージ外形寸法図 プラスチック・LQFP, 120 ピン (FPT-120P-M21) リードピッチ 0.50mm パッケージ幅× パッケージ長さ 16.0 × 16.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX 質量 0.88g コード(参考) P-LFQFP120-16×16-0.50 プラスチック・LQFP, 120 ピン (FPT-120P-M21) 注 1)* 印寸法はレジン残りを含む。 レンジ残りは、片側 +0.25(.010)MAX。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 18.00±0.20(.709±.008)SQ +0.40 * 16.00 –0.10 .630 +.016 –.004 SQ 90 61 91 60 0.08(.003) Details of "A" part +0.20 1.50 –0.10 +.008 (Mounting height) .059 –.004 INDEX 0~8° 120 LEAD No. 1 30 0.50(.020) C "A" 31 0.22±0.05 (.009±.002) 0.08(.003) M 0.145 .006 +0.05 –0.03 +.002 –.001 2002 FUJITSU LIMITED F120033S-c-4-4 最新の外形寸法図については , 下記の URL で確認してください。 http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html 12 0.60±0.15 (.024±.006) 0.10±0.05 (.004±.002) (Stand off) 0.25(.010) 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 端子機能説明 1.8 表 1.8-1 に , MB90390 シリーズの端子機能説明を示します。 ■ 端子機能説明 表 1.8-1 端子機能説明 (1 / 5) 端子番号 端子名 107 X1 108 X0 90 RST 93 ~ 95 P00 ~ P02 IN0 ~ IN2 入出力 回路形式 A B D IN3 D P04 IN4 D IN5 D 99 ~ 104 D OUT0 ~ OUT5 109 110 111 112 113 114 115 ~ 120 1 P14 TIN0 P15 TOT0 P16 SGO P17 SGA P20 TX1 P21 RX1 P22 ~ P27 INT2 ~ INT7 P30 RX0 汎用入出力ポートです。 インプットキャプチャ 0 ~ 2 の入力端子です。 インプットキャプチャ 3 の入力端子です。 汎用入出力ポートです。 インプットキャプチャ 4 の入力端子です。 インプットキャプチャ 5 の入力端子です。 アウトプットコンペア 7 の出力端子です。 OUT7 P06 , P07, P10 ~ P13 リセット入力端子です。 汎用入出力ポートです。 P05 98 発振入力端子です。 アウトプットコンペア 6 の出力端子です。 OUT6 97 発振出力端子です。 汎用入出力ポートです。 P03 96 機能 汎用入出力ポートです。 アウトプットコンペアの出力端子です。 D D D D D D D D 汎用入出力ポートです。 16 ビット リロードタイマ 0 の TIN0 入力端子です。 汎用入出力ポートです。 16 ビット リロードタイマ 0 の TOT0 出力端子です。 汎用入出力ポートです。 サウンドジェネレータの SGO 出力端子です。 汎用入出力ポートです。 サウンドジェネレータの SGA 出力端子です。 汎用入出力ポートです。 CAN インタフェース 1 の TX 出力端子です。 汎用入出力ポートです。 CAN インタフェース 1 の RX 入力端子です。 汎用入出力ポートです。 INT2 ~ INT7 の外部割込み入力端子です。 汎用入出力ポートです。 CAN インタフェース 0 の RX 入力端子です。 13 第 1 章 概要 表 1.8-1 端子機能説明 (2 / 5) 端子番号 2 3 4 5 6 7 8 9 10 端子名 P31 入出力 回路形式 D TX0 P32 D TIN1 P33 TOT1 P34 SOT0 P35 SCK0 P36 D D D D SIN0 P37 D SIN1 P40 SCK1 P41 SOT1 D D P42 11 SDA * D P43 12 SCL * D 14 18 , 19 SPB * P45 ADTG P46 , P47 INT0, INT1 D D D P50 ~ P55 20 ~ 25 PPG10 ~ PPG15 27 PPG00 汎用入出力ポートです。 16 ビット リロードタイマ 1 の TIN1 入力端子です。 汎用入出力ポートです。 16 ビット リロードタイマ 1 の TOT1 出力端子です。 汎用入出力ポートです。 UART0 の SOT 出力端子です。 汎用入出力ポートです。 UART0 の SCK 入出力端子です。 汎用入出力ポートです。 UART0 の SIN 入力端子です。 汎用入出力ポートです。 UART1 の SIN 入力端子です。 汎用入出力ポートです。 UART1 の SCK 入出力端子です。 汎用入出力ポートです。 UART1 の SOT 出力端子です。 汎用入出力ポートです。 I2C インタフェースのシリアルデータ入出力端子です。 汎用入出力ポートです。 I2C インタフェースのシリアルクロック入出力端子です。 シリアルペリフェラルバスインタフェースのシリアル入 出力端子です。 汎用入出力ポートです。 A/D コンバータの外部トリガ入力端子です。 汎用入出力ポートです。 INT0, INT1 の外部割込み入力端子です。 PPG タイマ 10 ~ 15 の出力端子です。 汎用入出力ポートです。 D PPG タイマ 00 の出力端子です。 RX2* CAN インタフェース 2 の RX 入力端子です。 P57 汎用入出力ポートです。 PPG01 TX2* 14 CAN インタフェース 0 の TX 出力端子です。 汎用入出力ポートです。 D P56 26 汎用入出力ポートです。 汎用入出力ポートです。 P44 13 機能 D PPG タイマ 01 の出力端子です。 CAN インタフェース 2 の TX 出力端子です。 第 1 章 概要 表 1.8-1 端子機能説明 (3 / 5) 端子番号 端子名 入出力 回路形式 P90 28 SIN2 * D P91 29 SCK2* D P92 30 SOT2 31 32 33 34 39 ~ 46 * P93 D D SIN3 P94 SCK3 P95 SOT3 P96 WOT P60 ~ P67 AN0 ~ AN7 D D D E TX3* E UART2 の SCK 入出力端子です。 汎用入出力ポートです。 UART2 の SOT 出力端子です。 汎用入出力ポートです。 UART3 の SIN 入力端子です ( 高速 UART)。 汎用入出力ポートです。 UART3 の SCK 入出力端子です ( 高速 UART)。 汎用入出力ポートです。 UART3 の SOT 出力端子です ( 高速 UART)。 汎用入出力ポートです。 時計タイマの WOT 出力端子です。 汎用入出力ポートです。 A/D コンバータの入力端子です。 CAN インタフェース 3 の TX 出力端子です。 A/D コンバータの入力端子です。 PB1 汎用入出力ポートです。 PPG タイマ 03 の出力端子です。 RX3* E CAN インタフェース 3 の RX 入力端子です。 AN9 A/D コンバータの入力端子です。 PB2 汎用入出力ポートです。 PPG タイマ 04 の出力端子です。 PPG04 TX4 * E CAN インタフェース 4 の TX 出力端子です。 AN10 A/D コンバータの入力端子です。 PB3 汎用入出力ポートです。 PPG タイマ 05 の出力端子です。 PPG05 51 RX4 52 汎用入出力ポートです。 AN8 PPG03 50 UART2 の SIN 入力端子です。 PPG タイマ 02 の出力端子です。 PPG02 49 汎用入出力ポートです。 汎用入出力ポートです。 PB0 48 機能 * E CAN インタフェース 4 の RX 入力端子です。 AN11 A/D コンバータの入力端子です。 PB4 汎用入出力ポートです。 SIN4 AN12 E シリアル I/O の SIN 入力端子です。 A/D コンバータの入力端子です。 15 第 1 章 概要 表 1.8-1 端子機能説明 (4 / 5) 端子番号 端子名 入出力 回路形式 汎用入出力ポートです。 PB5 53 54 57 ~ 60 SCK4 E A/D コンバータの入力端子です。 PB6 汎用入出力ポートです。 SOT4 E A/D コンバータの入力端子です。 P70 ~ P73 汎用入出力ポートです。 PWM1P0, PWM1M0, PWM2P0, PWM2M0 F PWM1P1, PWM1M1, PWM2P1, PWM2M1 PWM1P2, PWM1M2, PWM2P2, PWM2M2 PWM1P3, PWM1M3, PWM2P3, PWM2M3 F PWM1P4, PWM1M4, PWM2P4, PWM2M4 F PWM1P5, PWM1M5, PWM2P5, PWM2M5 F 92 FRCK0 F ステッピングモータコントローラ ch.4 の出力端子です。 汎用入出力ポートです。 F ステッピングモータコントローラ ch.5 の出力端子です。 汎用入出力ポートです。 D 16 ビット I/O タイマ 0 の FRCK0 入力端子です。 HCLK 発振クロック出力端子です。 P97 汎用入出力ポートです。 FRCK1 HCLKX 16 ステッピングモータコントローラ ch.3 の出力端子です。 汎用入出力ポートです。 PB7 91 ステッピングモータコントローラ ch.2 の出力端子です。 汎用入出力ポートです。 PA4 ~ PA7 81 ~ 84 ステッピングモータコントローラ ch.1 の出力端子です。 汎用入出力ポートです。 PA0 ~ PA3 77 ~ 80 ステッピングモータコントローラ ch.0 の出力端子です。 汎用入出力ポートです。 P84 ~ P87 71 ~ 74 シリアル I/O の SOT 出力端子です。 AN14 P80 ~ P83 67 ~ 70 シリアル I/O の SCK 入出力端子です。 AN13 P74 ~ P77 61 ~ 64 機能 D 16 ビット I/O タイマ 1 の FRCK1 入力端子です。 反転発振クロック出力端子です。 第 1 章 概要 表 1.8-1 端子機能説明 (5 / 5) 端子番号 端子名 入出力 回路形式 機能 55, 65, 75, 85 DVCC - 高電流出力バッファの専用電源入力端子です ( 端子番号 57 ~ 84) 。 56, 66, 76, 86 DVSS - 高電流出力バッファの専用 GND 電源端子です ( 端子番号 57 ~ 84) 。 35 AVCC - A/D コンバータの専用電源 (5V) 入力端子です。 36 AVRH - A/D コンバータの VrefH 入力端子です。 37 AVRL - A/D コンバータの VrefL 入力端子です。 38 AVSS - A/D コンバータの専用電源 (0V) 端子です。 MD1, MD0 C 動作モード指定用入力端子です。VCC あるいは VSS に直 87 MD2 G 動作モード指定用入力端子です。VCC あるいは VSS に直 15, 105 VCC - 電源 (5V) 入力端子です。 16, 47, 106 VSS - (0V) 入力端子です。 C - 電源安定化の容量端子です。0.1 μF 以上のセラミックコ ンデンサに接続してください。 88, 89 17 接つないで使用してください。 接つないで使用してください。 *: 製品によって使用できない端子機能があります。 17 第 1 章 概要 1.9 入出力回路形式 表 1.9-1 に , 入出力回路形式を示します。 ■ 入出力回路形式 表 1.9-1 入出力回路形式 (1 / 2) 分類 回路 備考 • 発振帰還抵抗:約 1MΩ A X1 クロック入力 P-ch N-ch X0 スタンバイ制御信号 • プルアップ抵抗付き CMOS ヒステリシス入力 • プルアップ抵抗 : 約 50kΩ B VCC R(プルアップ) R CMOS ヒステリシス入力 C R CMOS ヒステリシス入力 D VCC P-ch N-ch R R CMOS ヒステリシス入力 Automotive 18 • EVA:CMOS ヒステリシス入 力端子 • Flash:CMOS 入力端子 • CMOS 出力 • CMOS ヒステリシス入力 • Automotive 入力 ( 注意事項 ) 入力特性は端子やデバイス により異なります。 データシートを参照してく ださい。 第 1 章 概要 表 1.9-1 入出力回路形式 (2 / 2) 分類 回路 備考 • CMOS 出力 • CMOS ヒステリシス入力 • Automotive 入力 • アナログ入力 ( 注意事項 ) 入力特性は端子やデバイス により異なります。 データシートを参照してく ださい。 E VCC P-ch N-ch P-ch アナログ入力 N-ch R CMOS ヒステリシス入力 R Automotive • CMOS 高電流出力 • CMOS ヒステリシス入力 • Automotive 入力 F VCC P-ch 高電流出力 N-ch R CMOS ヒステリシス入力 R Automotive G R CMOS ヒステリシス入力 R(プルダウン) • EVA: プルダウン抵抗付き CMOS ヒステリシス入力 プルダウン抵抗 : 約 50kΩ • Flash:CMOS 入力 プルダウン抵抗なし 19 第 1 章 概要 1.10 デバイスの取扱い デバイスを取り扱う際には , 次の 11 の点について特にご注意ください。 • ラッチアップの防止 • 未使用端子の処理 • 供給電圧の安定化 • 外部クロックの使用 • 電源入力端子 (VCC/VSS) • • • • • • プルアップ / プルダウン抵抗 水晶発振回路について A/D コンバータの電源 , アナログ入力の投入順序について A/D コンバータ未使用時の端子処理について 電源投入時の注意点 PLL クロックモード動作中の注意について ■ デバイスの取扱い ● ラッチアップの防止 CMOS IC チップでは, 以下のような状態でラッチアップ現象を生じることがあります。 • 入力端子や出力端子に VCC より高い電圧あるいは VSS より低い電圧が印加された場 合 • VCC と VSS との間に定格を超える電圧が印加された場合 • VCC 電圧の前に AVCC 電源を印加された場合 ラッチアップ現象が発生すると電源電流が激増し , デバイスの熱破壊に至る場合があ りますので , 使用に際しては最大定格を超えることのないよう十分注意してください。 同様の理由により, アナログ電源電圧(AVCC, AVRH)がデジタル電源電圧を超えること のないよう十分注意してください。 ● 未使用端子の処理 使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる 永久破壊の原因となることがありますので, 2kΩ以上の抵抗を介してプルアップまたは プルダウンの処置をしてください。また , 使用していない入出力端子がある場合は , 出 力状態に設定して開放するか , 入力状態に設定して入力端子と同じ処置をしてくださ い。 ● 供給電圧の安定化 VCC 電源電圧の動作保証内においても, 電源電圧の急激な変化があると誤動作を起こす場 合がありますので , VCC 電源電圧を安定させてください。 安定化の基準としては , 商用周波数 (50 /60 Hz) での VCC リプル変動 (peak to peak 値 ) は , 標準 VCC 電源電圧値の 10% 以下に , また , 電源の切換え時などの瞬時変化においては , 過 度変動率が 0.1V/ms 以下になるように電源電圧を抑えてください。 20 第 1 章 概要 ● 外部クロックの使用 外部クロックを使用するには , X0 端子を駆動して X1 端子は開放してください。 図 1.10-1 に , 外部クロックの使用方法を示します。 図 1.10-1 外部クロックの使用方法 MB90390 シリーズ MB90590 Series X0 開放 X1 ● 電源入力端子 (VCC/VSS) • VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止する ために , 同電位にすべき端子はデバイス内部で接続してあります。 不要輻射の低減 , グランドレベルの上昇によるストローブ信号の誤動作防止 , 総出 力電流規格を守るなどのために , 必ず VCC 端子 , VSS 端子を外部で電源 , およびグラ ンドに接続してください。 • 電流供給源からできる限り低インピーダンスでこのデバイスの VCC 端子 , VSS 端子 に接続するように配慮してください。 • 電源ノイズ対策として , このデバイスの VCC 端子と VSS 端子の近くで , VCC 端子と VSS 端子との間に 0.1 µF 程度のコンデンサをバイパスコンデンサとして接続するこ とをお薦めします。 図 1.10-2 電源入力端子 (VCC/VSS) Vcc Vss Vcc Vss Vss Vcc MB90390 シリーズ Vcc Vss Vss Vcc ● プルアップ / プルダウン抵抗 MB90390 シリーズは , 内部プルアップ / プルダウン抵抗オプションをサポートしてい ません。必要に応じて外部構成部品を使用してください。 21 第 1 章 概要 ● 水晶発振回路について X0, X1 端子の近辺のノイズはこのデバイスの誤動作の原因となります。X0, X1 端子お よび水晶振動子 (またはセラミック振動子) さらにグランドへのバイパスコンデンサは できる限り近くになるように , また , その配線はほかの配線とできる限り交差しないよ うにプリント基板を設計してください。また , X0, X1 端子の回りをグランドで囲むよ うなプリント基板アートワークは , 安定した動作を期待できますので強くお薦めしま す。 各商品において , ご使用される発振子メーカに発振評価依頼をしてください。 ● A/D コンバータの電源 , アナログ入力の投入順序について A/D コンバータの電源 (AVCC, AVRH, AVRL) およびアナログ入力 (AN0 ~ AN14) の印 加は , 必ずデジタル電源 (VCC) の投入後に行ってください。また , 電源切断時は A/D コ ンバータの電源およびアナログ入力の遮断の後で , デジタル電源の遮断を行ってくだ さい。その際 , 電圧は AVRH, AV CC を超えないように投入・切断を行ってください。 ● A/D コンバータ未使用時の端子処理について A/D コンバータを使用しないときは , AVCC=VCC, AVSS=AVRH=AVRL=VSS に接続して ください。 ● 電源投入時の注意点 内部に内蔵している降圧回路の誤動作を防ぐために , 電源投入時における電圧の立上 り時間は 50μs (0.2V ~ 2.7V の間 ) 以上を確保してください。 ● PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたりまたはクロック入 力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を継続 し続ける場合があります。この動作は保証外です。 22 第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」" 命令の使用上の 注意 23 第 2 章 CPU 2.1 CPU の概要 F2MC-16LX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ れる用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコン トローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。 ■ CPU の概要 F2MC-16LX CPU コアは 16 ビットデータ処理は勿論 , 内部に 32 ビットアキュムレータ を塔載しているため 32 ビットデータ処理も可能です。メモリ空間は最大 16M バイト ( 拡張可能 ) , リニア方式およびバンク方式のいずれかにてアクセス可能です。また , 命 令体系は F2MC-8L の A-T アーキテクチャをベースに高級言語対応命令の追加・アド レッシングモードの拡張・乗除算命令の強化・ビット処理の充実化により命令が強化 されています。 以下に , F2MC-16LX CPU の特長を示します。 ● 最小命令実行時間 42ns (4MHz 発振 , 6 逓倍 ) ● 最大メモリ空間 16M バイト , リニア / バンク方式にてアクセス ● コントローラ用途に最適化された命令体系 • 豊富なデータタイプビット / バイト / ワード / ロングワード • 拡張されたアドレッシングモード 23 種類 • 32 ビットアキュムレータの採用による高精度演算 (32 ビット長 ) の強化 ● 強力な割込み機能 8 つのプライオリティレベル ( プログラマブル ) ● CPU に依存しない自動転送機能 最大 16 チャネルまでの拡張インテリジェント I/O サービス ● 高級言語 (C 言語 ) / マルチタスクに対応した命令体系 システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令 ● 実行速度の向上 4 バイトのキュー 24 第 2 章 CPU 2.2 メモリ空間 F2MC-16LX CPU が管理するデータ・プログラム・I/O はすべて F2MC-16LX CPU が 持つ 16M バイトのメモリ空間のいずれかに配置されます。CPU は 24 ビットのアド レスバスでこれらのアドレスを示すことにより , 各リソースをアクセスできます。 ■ CPU メモリ空間の概要 データ・プログラム・I/O はすべて F2MC-16LX CPU が持つ 16M バイトのメモリ空間 のいずれかに配置されます。CPU は 24 ビットのアドレスバスでこれらのアドレスを示 すことにより , 各リソースをアクセスできます。 図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。 図 2.2-1 F2MC-16LX システムとメモリマップの関係例 F2MC-16LX デバイス FFFFFFH FFFC00H プログラム FF0000H *1 ベクタテーブル領域 ROM 領域 プログラム領域 内部データバス 100000H 010000H 008000 / 004000H *2 020000H 外部領域 *4 ROM ミラー領域 (FF バンクのイメージ ) 外部領域 *4 000D00H *3 F2MC-16LX データ CPU EI2OS 000380H 000180H 000100H 0000C0H 割込み データ領域 汎用レジスタ EI2OS ディスク リプタ領域 外部領域 *4 割込み制御レジスタ領域 0000B0H リソース リソース制御レジスタ領域 000020H 汎用ポート RAM 領域 000000H I/O 領域 I/O ポート制御レジスタ 領域 *1:品種によって , 内蔵 ROM の容量が異なります。 *2:品種によって , イメージでアクセスできる領域が異なります (「第 27 章 ROM ミラー機能選択 モジュール」を参照 )。 *3:品種によって , 内蔵 RAM の容量が異なります。 *4:シングルチップモード時には , アクセスできません。 25 第 2 章 CPU ■ ROM 領域 ● ベクタテーブル領域 ( アドレス : FFFC00H ~ FFFFFFH) ベクタコール命令 , 割込みベクタおよびリセットベクタの各々のベクタテーブルとし て使用します。 ROM 領域の最上位に割り当てられており , 対応する処理ルーチンの開始アドレスをベ クタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルのアドレスに データとして設定します。 ● プログラム領域 ( アドレス:" ~ FFFBFFH") ROM が内部プログラム領域として内蔵されています。内蔵容量は , 品種によって異な ります。 ■ RAM 領域 ● データ領域 ( アドレス : 000100H ~ 0010FFH (4K バイト用 )) スタティック RAM が内部データ領域として内蔵されています。 内蔵 RAM 容量は品種によって異なります。 ● 汎用レジスタ領域 ( アドレス : 000180H ~ 00037FH) 8 ビット , 16 ビット , 32 ビットの演算や転送に使用する汎用レジスタが配置されていま す。 この領域は RAM 領域の一部として割り当てられているため , 通常の RAM として使用 できます。 汎用レジスタとして使用した場合 , 汎用レジスタアドレス指定は短い命令による高速 アクセスを可能とします。 ● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ領域 ( アドレス : 000100H ~ 00017FH) 拡張インテリジェント I/O サービス (EI2OS) の転送モード , I/O のアドレス , 転送数およ びバッファアドレスを設定します。 この領域は RAM 領域の一部として割り当てられているため , 通常の RAM として使用 できます。 ■ I/O 領域 ● 割込み制御レジスタ ( アドレス : 0000B0H ~ 0000BFH) 割込み制御レジスタ (ICR00~ICR15) は, 割込み機能を持つすべてのリソースに対応し ています。これらのレジスタは割込みレベルと拡張インテリジェント I/O サービス (EI2OS) を設定しています。 ● リソース制御レジスタ領域 ( アドレス : 000020H ~ 0000AFH) これらのレジスタはリソースを制御し , かつデータを入出力します。 ● I/O ポート制御レジスタ領域 ( アドレス : 000000H ~ 00001FH) これらのレジスタは I/O ポートを制御し , かつデータを入出力します。 26 第 2 章 CPU ■ アドレス作成の方式 F2MC-16LX のアドレス指定には , 以下に示す 2 つの方式があります。 ● リニア方式 24 ビットアドレスすべてを命令により指定する方式 ● バンク方式 アドレス上位 8 ビットを用途に応じたバンクレジスタで , アドレス下位 16 ビットを命 令により指定する方式 27 第 2 章 CPU 2.3 メモリ空間マップ 図 2.3-1 に , MB90390 シリーズのメモリ空間マップを示します。 ■ メモリ空間マップ 図 2.3-1 に示すように , バンク 00 の上位部分は FF バンク ROM のイメージであり , C コ ンパイラのスモールモデルを有効にします。下位 16 ビットも同様なため , ポインタ宣 言内の far 仕様を使用せずに ROM 内のテーブルを参照できます。例えば , "00C000H" にアクセスしようとすると, ROM内の"FFC000H"の値にアクセスすることになります。 バンク FF 内の ROM 領域は 48K バイト (MB90V390H/MB90V390HA/MB90V390HB で は各32Kバイト)を超え, バンク00内にその全体イメージを表示することはできません。 MB90394HA および MB90F394H(A) では , "FF4000H"/"FF8000H"* ~ "FFFFFFH" の間の イメージはバンク 00 内で可視ですが , "FF0000H" ~ "FF3FFFH"/"FF7FFFH"* の間のイ メージはバンク FF 内でしか可視でありません。 MB90V390H/MB90V390HA/MB90V390HB では , "FF8000H" ~ "FFFFFFH" の間のイメー ジはバンク 00 内で可視ですが , "FF0000H" ~ "FF7FFFH" の間のイメージはバンク FF 内 でしか可視できません。 <注意事項> ROM レジスタの MS ビットで選択できます (「27.2 ROM ミラー機能選択レジスタ (ROMM)」を 参照 )。 28 第 2 章 CPU 図 2.3-1 メモリ空間マップ MB90394HA/ F394H(A) FFFFFFH FF0000H FEFFFFH FE0000H FDFFFF H MB90V390HA/HB ROM (FF バンク ) FFFFFFH ROM (FE バンク ) FF0000H FEFFFFH ROM (FD バンク ) FE0000H FDFFFF H FD0000H FCFFFF H FD0000H FCFFFF H FC0000H FBFFFFH ROM (FB バンク ) FC0000H FBFFFFH ROM (FA バンク ) FB0000H FA F F F F H ROM (F9 バンク ) FA 0 0 0 0 H F9FFFFH FB0000H FA F F F F H FA 0 0 0 0 H F9FFFFH F90000H F90000H F8FFFFH ROM (FF バンク ) ROM (FE バンク ) ROM (FD バンク ) ROM (FC バンク ) ROM (FB バンク ) ROM (FA バンク ) ROM (F9 バンク ) ROM (F8 バンク ) F80000H 00FFFFH 004000H or 008000H ROM (FF バンク のイメージ ) 003FFFH 周辺 MB90V390H FFFFFFH FF0000H FEFFFFH ROM (FE バンク ) FE0000H FDFFFF H ROM (FD バンク ) FD0000H FCFFFF H ROM (FC バンク ) FC0000H FBFFFFH ROM (FB バンク ) FB0000H FA F F F F H FA 0 0 0 0 H F9FFFFH F90000H F8FFFFH RAM 6K バイト 00FFFFH ROM (FF バンク のイメージ ) 00FFFFH RAM 12K バイト 0050FFH 004100H 008000H 003500H 003500H 0028FFH 0030FFH 0030FFH 0000BFH 000000H RAM 12K バイト 0000BFH 000000H ROM (FF バンク のイメージ ) RAM 4K バイト RAM 12K バイト 000100H 000100H 周辺 ROM (F8 バンク ) 周辺 周辺 003500H 000100H ROM (F9 バンク ) 003FFFH 003FFFH RAM 10K バイト ROM (FA バンク ) F80000H 8017FFH 800000H 008000H 0070FFH 004100H ROM (FF バンク ) 周辺 0000BFH 000000H 周辺 29 第 2 章 CPU リニア方式によるアドレス指定 2.4 リニア方式には以下に示す 2 つの方式があります。 • 24 ビットオペランド指定……オペランドにて直接 24 ビットのアドレスを指定する方式 • 32 ビットレジスタ間接指定……32 ビットの汎用レジスタの内容の下位 24 ビットをアド レスとして引用する方式 ■ 24 ビットオペランド指定 図 2.4-1 に , 24 ビットオペランド指定の例を , 図 2.4-2 に , 32 ビットレジスタ間接指定 の例を示します。 図 2.4-1 リニア方式 (24 ビットオペランド指定 ) の例 JMPP 123456H 17452DH 旧プログラムカウンタ +プログラムバンク 17 452D JMPP 123456H 123456H 新プログラムカウンタ +プログラムバンク 12 次の命令 3456 図 2.4-2 リニア方式 (32 ビットレジスタ間接指定 ) の例 MOV A, @RL1+7 旧AL 090700H XXXXH 3A +7 RL1 (上位8ビットは無視) 新AL 30 003AH 240906F9 第 2 章 CPU 2.5 バンク方式によるアドレス指定 バンク方式は 16M バイトの空間を 64K バイトごとの 256 個のバンクに分割し , 以下 に示す 5 つのバンクレジスタで各空間に対応するバンクを指定します。 • プログラムカウンタバンクレジスタ (PCB) • データバンクレジスタ (DTB) • ユーザスタックバンクレジスタ (USB) • システムスタックバンクレジスタ (SSB) • アディショナルデータバンクレジスタ (ADB) ■ バンク方式によるアドレス指定 ● プログラムカウンタバンクレジスタ (PCB) による指定 プログラムカウンタバンクレジスタ (PCB) によって指定される 64K バイトのバンクを プログラム (PC) 空間とよび , 主として命令コードやベクタテーブル , 即値データなど が存在します。 ● データバンクレジスタ (DTB) による指定 データバンクレジスタ (DTB) によって指定される 64K バイトのバンクをデータ (DT) 空 間とよび , 主として読み書き可能なデータや内外リソースの制御 / データレジスタなど が存在します。 ● ユーザスタックバンクレジスタ (USB)・システムスタックバンクレジスタ (SSB) による指定 ユーザスタックバンクレジスタ (USB) またはシステムスタックバンクレジスタ (SSB) によって指定される 64K バイトのバンクをスタック (SP) 空間とよび , プッシュ / ポッ プ命令や割込みのレジスタ退避などの際にスタックアクセスが生じたときにアクセス される領域です。どちらの空間が使用されるかはコンディションコードレジスタ中の S フラグの値に依存します。 ● アディショナルデータバンクレジスタ (ADB) による指定 アディショナルデータバンクレジスタ (ADB) によって指定される 64K バイトのバンク をアディショナル (AD) 空間とよび , 主として DT 空間に入りきらなかったデータなど が存在します。 表 2.5-1 に示すように , 各アドレッシングモードで使用されるデフォルト空間が命令の コード効率を向上するために事前に決められています。また , あるアドレッシングを用 いたときにデフォルト以外の空間を使用したいときは , 各バンクに対応しているプレ フィックスコードを命令に先行して指定することにより , そのプレフィックスコード に対応した任意のバンク空間をアクセスできます。 DTB, USB, SSB, ADB はリセットにより "00H" に初期化され , PCB はリセットベクタに より指定された値に初期化されます。リセット後 , DT, SP, AD の各空間はバンク "00H" (000000H ~ 00FFFFH) に配置され , PC 空間はリセットベクタにより指定されたバンク に配置されます。 31 第 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 プログラム空間 FFH : PCB (プログラムカウンタバンクレジスタ) B3H : ADB (アディショナルデータバンクレジスタ) 92H : USB (ユーザスタックバンクレジスタ) 68H : DTB (データバンクレジスタ) 4BH : SSB (システムスタックバンクレジスタ) B3FFFFH アディショナル空間 B30000H 物理アドレス 92FFFFH ユーザスタック空間 920000H 68FFFFH 680000H データ空間 4BFFFFH システムスタック空間 4B0000H 000000H 32 第 2 章 CPU メモリ空間における多バイト長データ 2.6 メモリへの書込みはアドレスの低い方から順に行われます。したがって , 32 ビット 長データであれば下位 16 ビットが先に転送され , 続いて上位 16 ビットが転送され ます。 なお , 下位データの書込み直後にリセット信号を入力すると上位データが書き込ま れないことがあります。 ■ メモリ空間における多バイト長データの配置 図 2.6-1 に , メモリにおける多バイト長データの構成を示します。データは下位 8 ビッ トが n 番地に , 以下 n+1 番地 , n+2 番地 , n+3 番地・・・の順に配置されます。 図 2.6-1 メモリにおける多バイト長データの配置の例 MSB "H" LSB 01010101B 11001100B 11111111B 00010100B 01010101B 11001100B 11111111B n番地 00010100B "L" ■ 多バイト長データのアクセス アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク セスする命令では , "FFFFH" 番地の次のアドレスは同じバンクの "0000H" 番地になりま す。図 2.6-2 に , 多バイト長データのアクセス命令の例を示します。 図 2.6-2 MOVW A, 080FFFFH の実行 "H" 80FFFFH 実行前のAL ?? ?? 実行後のAL 23H 01H 01H · · · 800000H 23H "L" 33 第 2 章 CPU 2.7 レジスタ F2MC-16LX のレジスタは大別して , 専用レジスタと汎用レジスタの 2 種類に分ける ことができます。 専用レジスタは , CPU の内部に専用ハードウェアとして存在し , 使用する用途が CPU のアーキテクチャ上で限定されています。 汎用レジスタは , 通常のメモリと同じく , 使用する用途をユーザが指定できるもので す。CPU のアドレス空間上に RAM と共存し , アドレスを指定しないでアクセスで きるという点では専用レジスタと同じです。 ■ 専用レジスタ F2MC-16LX CPU コアの専用レジスタを以下に示します。 • アキュムレータ (A=AH:AL)……16 ビット× 2 本のアキュムレータ ( 合計 32 ビット のアキュムレータとしても使用可能 ) 。 • ユーザスタックポインタ (USP)……ユーザスタック領域を示す 16 ビットのポインタ • システムスタックポインタ (SSP)……システムスタック領域を示す 16 ビットのポイ ンタ • プロセッサステータス (PS)……システムの状態を示す 16 ビットのレジスタ • プログラムカウンタ (PC)……プログラムが格納されているアドレスを持つ 16 ビッ トのレジスタ • プログラムカウンタバンクレジスタ (PCB)……PC 空間を示す 8 ビットのレジスタ • データバンクレジスタ (DTB)……DT 空間を示す 8 ビットのレジスタ • ユーザスタックバンクレジスタ (USB)……ユーザスタック空間を示す 8 ビットのレ ジスタ • システムスタックバンクレジスタ (SSB)……システムスタック空間を示す 8 ビット のレジスタ • アディショナルデータバンクレジスタ(ADB)……AD空間を示す8ビットのレジスタ • ダイレクトページレジスタ (DPR)……ダイレクトページを示す 8 ビットのレジスタ 図 2.7-1 に , 専用レジスタの構成を示します。 34 第 2 章 CPU 図 2.7-1 専用レジスタ AH AL アキュムレータ USP ユーザスタックポインタ SSP システムスタックポインタ PS プロセッサステータス PC プログラムカウンタ DPR ダイレクトページレジスタ PCB プログラムカウンタバンクレジスタ DTB データバンクレジスタ USB ユーザスタックバンクレジスタ SSB システムスタックバンクレジスタ ADB アディショナルデータバンクレジスタ 8ビット 16ビット 32ビット ■ 汎用レジスタ 図 2.7-2 に示すように , F2MC-16LX の汎用レジスタは主記憶の "000180H" ~ "00037FH" ( 最大の場合 ) に存在し , レジスタバンクポインタ (RP) によって先に述べたアドレスの どの部分が現在使用中のレジスタバンクであるかを指定します。各バンクには以下に 示す 3 種類のレジスタが存在します。これらは独立ではなく , 以下に示すような関係が あります。 • R0 ~ R7 :8 ビットの汎用レジスタ • RW0 ~ RW7 :16 ビットの汎用レジスタ • RL0 ~ RL3 :32 ビットの汎用レジスタ 図 2.7-2 汎用レジスタ MSB LSB 16ビット 000180H+RP×10H RW0 下位 RL0 汎用レジスタの先頭アドレス RW1 RW2 RL1 RW3 R1 R0 RW4 R3 R2 RW5 R5 R4 RW6 R7 R6 RW7 RL2 RL3 上位 バイトレジスタとワードレジスタの上位 / 下位バイトの関係は 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] という式で表すことができます。 35 第 2 章 CPU 2.7.1 アキュムレータ (A) アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL で構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されま す。 ■ アキュムレータ (A) アキュムレータ (A) レジスタでは , 図 2.7-3 に示すように , 32 ビットデータ処理時は AH と AL を連結して使用します。また , 図 2.7-4 に示すように , 16 ビットデータ処理のワー ド処理や 8 ビットデータ処理のバイト処理のときは AL のみが使用されます。A レジ スタ中のデータはメモリ / レジスタ (Ri, RWi, RLi) 中のデータと各種演算ができ , F2MC8L のときと同様 , F2MC-16LX でも基本的にワード長以下のデータを AL へ転送すると , 転送前の AL 中のデータが自動的に AH に転送される ( データ保持機能 ) ので , データ 保持機能と AL-AH 間演算にて各種処理効率を上げることが可能になります。 AL へのバイト長以下のデータの転送時は , データは符号拡張またはゼロ拡張され 16 ビット長となり AL へ格納されます。AL 中のデータは , ワード長としてもバイト長と しても扱えます。AL にバイト処理の算術演算命令を実行すると , 演算前の AL の上位 8 ビットは無視され演算結果の上位 8 ビットはすべて "0" になります。A レジスタは , リセットでは初期化されず , リセット直後は不定値になります。 図 2.7-3 32 ビットデータ転送例 MOVL A,@R W1+6 実行前のA MSB LSB XXXXH XXXXH DTB 実行後のA 8F74H A6H A61540H 8FH 74H A6153EH 2BH 52H 15H 38H +6 RW1 2B52H AH AL 図 2.7-4 AL-AH 転送例 MSB MOVW A,@R W1+6 実行前のA XXXXH 1234H DTB 実行後のA 36 1234H A6H 1234H LSB A61540H 8FH 74H A6153EH 2BH 52H 15H 38H +6 RW1 第 2 章 CPU ユーザスタックポインタ (USP) とシステムスタック ポインタ (SSP) 2.7.2 ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は 16 ビッ トのレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復帰のメモリアドレスを示します。 ■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) 図 2.7-5 に示すように , ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) は , スタック系の命令により使用されますが , プロセッサステータス中の S フラ グが "0" のときは , USP レジスタが有効になり , S フラグが "1" のときは SSP レジスタ が有効になります。また , 割込みが受け付けられると S フラグがセットされるため , 割 込み時のレジスタ退避は必ず SSP の示すメモリ中に行われます。割込みルーチンでの スタック処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いられます。 スタック空間を分ける必要のない場合は SSP だけをお使いください。 スタック時のアドレスの上位 8 ビットは , SSP → SSB, USP → USB により示されます。 また , USP および SSP は , リセットでは初期化されず不定値になります。 図 2.7-5 スタック操作命令とスタックポインタ Sフラグが"O"のときのPUSHW Aの例 実行前 AL Sフラグ 実行後 AL MSB A624H USB C6H 0 SSB 56H A624H USB C6H 0 SSB 56H USP SSP USP SSP F328H C6F326H LSB XXH XXH 1234H F326H Sフラグが"0"であるため システムスタックを使用 1234H C6F326H A6H 24H F328H 561232H XXH XXH 561232H A6H 24H Sフラグが"1"のときのPUSHW Aの例 AL A624H 1 AL A624H 1 USB C6H SSB 56H USB C6H SSB 56H USP SSP USP SSP 1234H F328H 1232H Sフラグが"1"であるため システムスタックを使用 <注意事項> スタックポインタに設定すべき値は , 原則として偶数アドレスを使用してください。 37 第 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 3 4 2 1 0 初期値 - - I 0 S 1 T * N * Z * V * C * CCR * : 不定値 ● 割込み許可フラグ (I) ソフトウェアインタラプト以外のすべての割込み要求に対し I が "1" のときは割込みが 許可 , "0" のときは割込みはマスク。リセット時クリア。 ● スタックフラグ (S) S が "0" のときはスタック操作用ポインタとして USP が有効 , "1" のときは SSP が有効 になります。割込み受付け時およびリセット時にセット。 ● スティッキィビットフラグ (T) 論理右 / 算術右シフト命令を実行後にキャリよりシフトアウトされたデータに 1 つ以 上 "1" があったら "1", それ以外は "0"。シフト量がゼロの場合も "0"。 ● ネガティブフラグ (N) 演算結果の MSB が "1" なら N フラグはセット , それ以外はクリア。 ● ゼロフラグ (Z) 演算結果がすべて "0" ならセット , それ以外はクリア。 38 第 2 章 CPU ● オーバフローフラグ (V) 演算の実行により符号付き数値としてオーバフローが生じるとセット , 生じないとク リア。 ● キャリフラグ (C) 演算の実行により MSB より桁上り / 桁下りが生じるとセット , 生じないとクリア。 ■ レジスタバンクポインタ (RP) 図 2.7-8 に示すように , レジスタバンクポインタ (RP) は , F2MC-16LX の持つ汎用レジ スタとそれが存在する内部 RAM のアドレスとの関係を示すレジスタで , 現在使用中の レジスタバンクの先頭のメモリアドレスを [000180H+(RP) × 10H] という変換式で示し ます。RP は 5 ビットにより構成されており "00H" ~ "1FH" までの値をとることができ , "000180H" ~ "00037FH" のメモリ中にレジスタバンクを配置できます。 ただし , この範囲内であっても内部 RAM でなければ汎用レジスタとして使用すること はできません。RP はリセットによりすべて "0" に初期化されます。命令上では RP に 8 ビットの即値が転送できますが , 実際に使用されるのはそのデータの下位 5 ビットの みです。 図 2.7-8 レジスタバンクポインタ (RP) 初期値 B4 0 B3 0 B2 0 B1 0 B0 0 RP ■ インタラプトレベルマスクレジスタ (ILM) 図 2.7-9 に示すように , インタラプトレベルマスクレジスタ (ILM) は 3 ビットから構成 されており , CPU の割込みマスクのレベルを示します。この 3 ビットにより示される レベルより強いレベルの割込み要求のみが受け付けられます。表 2.7-1 に示すように , レベルの強弱は "0" が最強で , "7" が最弱と定義されています。したがって , 割込みが 受け付けられるには , 現状の ILM の保持値より小さい値の要求でなければなりません。 割込みが受け付けられるとその割込みのレベル値が ILM にセットされ , これ以降の同 じかそれより低い優先順位の割込みは受け付けられなくなります。ILM はリセットに よりすべて "0" に初期化されます。命令上では ILM に 8 ビットの即値が転送できますが , 実際に使用されるのはそのデータの下位 3 ビットのみです。 図 2.7-9 インタラプトレベルマスクレジスタ (ILM) 初期値 ILM2 0 ILM1 0 ILM0 0 ILM 39 第 2 章 CPU 表 2.7-1 インタラプトレベルマスクレジスタ (ILM) で示されるレベルの強弱 40 ILM2 ILM1 ILM0 レベル値 許可される割込みレベル 0 0 0 0 割込み禁止 0 0 1 1 0 のみ 0 1 0 2 1 より小さい値のレベル 0 1 1 3 2 より小さい値のレベル 1 0 0 4 3 より小さい値のレベル 1 0 1 5 4 より小さい値のレベル 1 1 0 6 5 より小さい値のレベル 1 1 1 7 6 より小さい値のレベル 第 2 章 CPU 2.7.4 プログラムカウンタ (PC) プログラムカウンタ (PC) は , 16 ビットのカウンタであり , CPU が実行すべき命令 コードのメモリアドレスの下位 16 ビットを示します。上位 8 ビットアドレスは PCB により示されます。PC は条件分岐命令 , サブルーチンコール命令 , 割込み , リ セットなどにより内容が更新されます。また , オペランドアクセス時のベースポイ ンタとして使用することもできます。 ■ プログラムカウンタ (PC) 図 2.7-10 に , プログラムカウンタを示します。 図 2.7-10 プログラムカウンタ PCB FEH PC ABCDH 次に実行する命令 FEABCDH 41 第 2 章 CPU 2.8 レジスタバンク レジスタバンクは 8 ワードで構成され , バイトレジスタ R0 ~ R7, ワードレジスタ RW0 ~ RW7, ロングワードレジスタ RL0 ~ RL3 の汎用レジスタとして各種演算 , ポインタとして各種命令に使用できます。 ■ レジスタバンク 表 2.8-1 に , 各レジスタの機能を , 表 2.8-2 に各レジスタの関係を示します。 レジスタバンクの内容は , 通常の RAM 同様にリセットでは初期化されず , リセット前 の状態が保持されます。ただし , パワーオン時は不定値になります。 表 2.8-1 各レジスタの機能 R0 ~ R7 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ 命令のカウンタとしても使用 RW0 ~ RW7 ポインタ , 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 ~ RL3 ロングポインタ , 各種命令のオペランドとして使用 表 2.8-2 各レジスタの関係 RW0 RL0 RW1 RW2 RL1 RW3 R0 RW4 R1 RL2 R2 RW5 R3 R4 RW6 R5 RL3 R6 RW7 R7 42 第 2 章 CPU ● ダイレクトページレジスタ (DPR) <初期値 :01H > ダイレクトページレジスタ (DPR) は , ダイレクトアドレッシングの命令時のオペラン ドの addr8 ~ addr15 を指定します。図 2.8-1 に示すように , DPR は 8 ビット長であり , リセットにより "01H" に初期化されます。 図 2.8-1 ダイレクトアドレッシングによる物理アドレスの生成 DTBレジスタ DPRレジスタ 命令中のダイレクトアドレス MSB LSB 24ビット 物理アドレス ● プログラムカウンタバンクレジスタ (PCB) <初期値 : リセットベクタ中の値> ● データバンクレジスタ (DTB) <初期値 :00H > ● ユーザスタックバンクレジスタ (USB) <初期値 :00H > ● システムスタックバンクレジスタ (SSB) <初期値 :00H > ● アディショナルデータバンクレジスタ (ADB) <初期値 :00H > 各々のバンクレジスタはそれぞれ PC 空間 , DT 空間 , SP 空間 ( ユーザ ) , SP 空間 ( シス テム ) AD 空間の配置されるメモリバンクを示します。すべてのバンクレジスタはバイ ト長です。リセットすることで , PCB はリセットベクタにより "00H" に初期化されま す。PCB 以外のバンクレジスタは読出し / 書込みができます。PCB は読出しは可能で すが書き込むことはできません。 16M バイト全空間に分岐する JMPP, CALLP, RETP, RETIQ, RETF 命令実行時および割 込み時に PCB は書き換わります。各レジスタの動作は , 「2.2 メモリ空間」を参照し てください。 43 第 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,#imm8 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 プレフィックスの有無にかかわらず , バンクの I/O 空間が使用されます。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8〕 命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。 ● POPW PS プレフィックスの有無にかかわらず , S フラグに応じて SSB または USB が使用されま す。プレフィックスの効果が次の命令まで及びます。 44 第 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, INTaddr16, INTPaddr24, RETI〕 プレフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。 ● JCTX@A プレフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。 ● MOV ILM, imm8 命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。 45 第 2 章 CPU 2.10 割込み抑止命令 以下に示す 10 種類の命令については , 割込み要求はサンプリングされません。 • MOV ILM, #imm8 • AND 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 • • • • MOV ILM,#imm8 NCC ADD A,01H CCR:XXX10XXB CCR:XXX10XXB NCCによりCCRは変化しません。 ■ プレフィックスコードが連続している場合 図 2.10-3 に示すように, 競合するプレフィックスコードが連続していた場合, 後方のも のが有効になります。 なお , 競合するプレフィックスコードとはここでいう PCB, ADB, DTB, SPB のことを意 味します。 図 2.10-3 プレフィックスコードの連続 プレフィックスコード • • • • • ADB DTB PCB ADD A,01H • • • • • プレフィックスコードは PCBが有効になります。 46 第 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 DIVW A, RW7 (USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + FH : 下位 16 ビット ) (USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + 6H : 下位 16 ビット ) (USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット ) *1: CCR レジスタの S ビットによる *2: CCR レジスタの S ビットが "0" の場合 バンクレジスタ (DTB, ADB, USB, SSB) の値が "00H" の場合は , 除算結果の余りは命令 オペランドのレジスタに格納されます。それ以外は , 上位 8 ビットは命令オペランドの レジスタに対応したバンクレジスタにより指定され , 下位 16 ビットは命令オペランド のレジスタのアドレスと同じアドレスとなり, 上位8ビットで指定されたバンクのレジ スタに余りが格納されます。 47 第 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 の命令を同等の命令列に置き換える機能が用意されています。 MB90390 シリーズでは , コンパイラおよびアセンブラは以下のものを使用してくださ い。 ● コンパイラ cc907 の V02L06 以降のバージョンまたは fcc907s の V30L02 以降のバージョン ● アセンブラ asm907a の V03L04 以降のバージョンまたは fasm907s の V30L04 (Rev. 300004) 以降の バージョン 48 第3章 割込み MB90390 シリーズの割込みと拡張インテリジェン ト 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 例外 49 第 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-16LX バス レジスタファイル マイクロコード ⑥ チェック AND ② ① 割込みレベル レベル比較器 ⑦ 比較器 ⑤ ④ ③ 周辺 要因FF PS I ILM IR ILM F2MC-16LX・CPU 許可FF 50 IR I 割込み IL コントローラ : : : : プロセッサステータス 割込み許可フラグ 割込みレベルマスクレジスタ インストラクションレジスタ 第 3 章 割込み ■ ソフトウェア割込み ソフトウェア割込みは , CPU がそれまで実行していたプログラムの実行からユーザの 定義した割込み処理用プログラムへ制御を移行する機能です。 ソフトウェア割込みは , INT 命令実行により要求されます。INT 命令により要求される 割込みには , 割込み要求フラグと割込み許可フラグはありません。INT 命令の実行によ り常に割込み要求が発生します。 INT 命令には , 割込みレベルの割り当てもありません。このため , INT 命令使用時には ILM の更新は行われません。代わりに , I フラグをクリアして , 継続する割込み要求を 保留状態にします。 図 3.1-2 ソフトウェア割込みの概要 F2MC-16LX バス ① PS レジスタファイル I ② マイクロコード F2MC-16LX・CPU IR S Bユニット キュー フェッチ PS I S IR : プロセッサステータス : 割込み許可フラグ : スタックフラグ : インストラクションレジスタ Bユニット : バスインタフェース ユニット 退避 命令系バス RAM ■ 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービスは , 内蔵リソースとメモリの間でデータを自動的に 転送します。この種の処理には , 従来 , 割込み処理プログラムが使用されていましたが , EI2OS はデータ転送を DMA ( ダイレクトメモリアクセス ) 的に実行できます。 拡張インテリジェント I/O サービス機能を内部リソースより発生させるためには , 割込 みコントローラの割込み制御レジスタ (ICR) 中に拡張インテリジェント I/O サービス許 可フラグ (ISE) を持っていなければなりません。 拡張インテリジェント I/O サービスは ISE フラグが "1" で割込み要求が発生した場合に 起動されます。 なお , ハードウェア割込み要求によって通常の割込みを発生させるには , ISE フラグを "0" にセットします。 51 第 3 章 割込み 図 3.1-3 拡張インテリジェント I/O サービス (EI2OS) の概要 メモリ空間 IOA I/Oレジスタ I/Oレジスタ 割込み要求 CPU ③ ISD ③ 周辺 ① ICS ② 割込み制御レジスタ 割込みコントローラ ① I/Oが転送を要求します。 BAP ④ バッファ DCT ② 割込みコントローラがディスク リプタを選択します。 ③ 転送元/転送先をディスクリプタ から読み出します。 ④ I/Oとメモリ間で転送が行われ ます。 ■ 例外 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は 予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時 の復旧ソフトウェアの起動などのみに使用することをお勧めします。 52 第 3 章 割込み 割込みベクタ 3.2 割込みベクタは , ハードウェア割込みとソフトウェア割込みについて同じ領域を使 用します。例えば , 割込み要求番号 INT42 が遅延ハードウェア割込みとソフトウェ ア割込み INT#42 に使用されます。したがって , 遅延割込みと INT#42 が同じ割込み 処理ルーチンを呼び出します。割込みベクタは , 表 3.2-1 に示すようにアドレス "FFFC00H" と "FFFFFFH" の間に配置されます。 ■ 割込みベクタ 表 3.2-1 割込みベクタ (1 / 2) 割込み 要求 割込み要因 割込み制御 レジスタ 番号 ベクタ ベクタ ベクタ モード アドレス アドレス L アドレス H レジスタ バンク アドレス INT 0 *1 ─ ─ ─ FFFFFCH FFFFFDH FFFFFEH 未使用 INT 1 *1 ─ ─ ─ FFFFF8H FFFFF9H FFFFFAH 未使用 . . . ─ ─ ─ . . . . . . . . . . . . INT 7 *1 ─ ─ ─ FFFFE0H FFFFE1H FFFFE2H 未使用 INT 8 リセット ─ ─ FFFFDCH FFFFDDH FFFFDEH FFFFDFH INT 9 INT9 命令 ─ ─ FFFFD8H FFFFD9H FFFFDAH 未使用 INT 10 例外 ─ ─ FFFFD4H FFFFD5H FFFFD6H 未使用 INT 11 タイムベースタイマ 0000B0H FFFFD0H FFFFD1H FFFFD2H 未使用 ICR00 FFFFCCH FFFFCDH FFFFCEH 未使用 FFFFC8H FFFFC9H FFFFCAH 未使用 FFFFC4H FFFFC5H FFFFC6H 未使用 FFFFC0H FFFFC1H FFFFC2H 未使用 FFFFBCH FFFFBDH FFFFBEH 未使用 FFFFB8H FFFFB9H FFFFBAH 未使用 FFFFB4H FFFFB5H FFFFB6H 未使用 FFFFB0H FFFFB1H FFFFB2H 未使用 FFFFACH FFFFADH FFFFAEH 未使用 FFFFA8H FFFFA9H FFFFAAH 未使用 FFFFA4H FFFFA5H FFFFA6H 未使用 FFFFA0H FFFFA1H FFFFA2H 未使用 FFFF9CH FFFF9DH FFFF9EH 未使用 INT 12 外部割込み INT0 ~ INT7 INT 13 CAN0 RX ICR01 INT 14 CAN0 TX/NS INT 15 CAN1 RX ICR02 INT 16 CAN1 TX/NS INT 17 PPG0/PPG1 (CAN2 RX)*2 TX/NS)*2 INT 18 PPG2/PPG3 (CAN2 INT 19 PPG4/PPG5 (CAN3 RX)*2 TX/NS)*2 INT 20 PPG6/PPG7 (CAN3 INT 21 PPG8/PPG9 (CAN4 RX)*2 INT 22 PPGA/PPGB (CAN4 TX/NS)*2 INT 23 16 ビット リロードタイマ 0 INT 24 16 ビット リロードタイマ 1 ICR03 ICR04 ICR05 ICR06 0000B1H 0000B2H 0000B3H 0000B4H 0000B5H 0000B6H 53 第 3 章 割込み 表 3.2-1 割込みベクタ (2 / 2) 割込み 要求 割込み要因 割込み制御 レジスタ 番号 INT 25 インプット キャプチャ 0/1 INT 26 アウトプット コンペア 0/1 INT 27 インプット キャプチャ 2/3 / アウトプット コンペア 6 ICR07 ICR08 ベクタ ベクタ ベクタ モード アドレス アドレス L アドレス H レジスタ バンク アドレス FFFF98H FFFF99H FFFF9AH 未使用 FFFF94H FFFF95H FFFF96H 未使用 FFFF90H FFFF91H FFFF92H 未使用 0000B7H 0000B8H INT 28 アウトプット コンペア 2/3 FFFF8CH FFFF8DH FFFF8EH 未使用 INT 29 インプット キャプチャ 4/5 / アウトプット コンペア 7 FFFF88H FFFF89H FFFF8AH 未使用 FFFF84H FFFF85H FFFF86H 未使用 FFFF80H FFFF81H FFFF82H 未使用 FFFF7CH FFFF7DH FFFF7EH 未使用 FFFF78H FFFF79H FFFF7AH 未使用 FFFF74H FFFF75H FFFF76H 未使用 FFFF70H FFFF71H FFFF72H 未使用 FFFF6CH FFFF6DH FFFF6EH 未使用 FFFF68H FFFF69H FFFF6AH 未使用 FFFF64H FFFF65H FFFF66H 未使用 FFFF60H FFFF61H FFFF62H 未使用 FFFF5CH FFFF5DH FFFF5EH 未使用 FFFF58H FFFF59H FFFF5AH 未使用 FFFF54H FFFF55H FFFF56H 未使用 ICR09 INT 30 アウトプット コンペア 4/5 (I2C)*2*3 INT 31 A/D コンバータ INT 32 I/O タイマ 0/1 / 時計タイマ INT 33 シリアル I/O ICR10 INT 34 サウンドジェネレータ INT 35 UART0 RX ICR11 ICR12 INT 36 UART0 TX INT 37 UART1 RX ICR13 INT 38 UART1 TX INT 39 UART3 (/UART2) RX*2 TX*2 INT 40 UART3 (/UART2) INT 41 フラッシュメモリ ICR14 ICR15 INT 42 遅延割込み 0000B9H 0000BAH 0000BBH 0000BCH 0000BDH 0000BEH 0000BFH INT 43 ─ ─ ─ FFFF50H FFFF51H FFFF52H 未使用 . . . ─ ─ ─ . . . . . . . . . . . . INT 254 ─ ─ ─ FFFC04H FFFC05H FFFC06H 未使用 INT 255 ─ ─ ─ FFFC00H FFFC01H FFFC02H 未使用 *1: PCB が "FFH" のとき , CALLV 命令とベクタ領域は同じです。CALLV 命令のベクタ使用時は , 注意が必要です。 *2: MB90V390HA/MB90V390HB の ( ) 内の割込みを共有します。 *3: MB90394HA の ( ) 内の割込みを共有します。 54 第 3 章 割込み 割込み制御レジスタ (ICR) 3.3 割込み制御レジスタは割込みコントローラ内にあり , 割込み機能を持つすべての I/O に対応して存在します。このレジスタには以下に示す 3 つの機能があります。 • 対応する周辺機器の割込みレベルの設定 • 対応する周辺機器の割込みを通常割込みにするか , 拡張インテリジェント I/O サー ビスにするかの選択 • 拡張インテリジェント I/O サービスのチャネルの選択 このレジスタに対するリードモディファイライト (RMW) 系命令でのアクセスは誤動 作を引き起こしますので行わないでください。 ■ 割込み制御レジスタ (ICR) 図 3.3-1 に , 割込み制御レジスタのビット構成の図を示します。 図 3.3-1 割込み制御レジスタ (ICR) bit 15/7 14/6 ICS3 ICS2 W W 13/5 ICS1 or S1 * 12/4 ICS0 or S0 * 11/3 10/2 9/1 8/0 ISE IL2 IL1 IL0 R/W R/W R/W R/W 割込み制御レジスタ リセット時 00000111B R/W: リード / ライト可能 W : ライトオンリ * : 注意事項参照 <注意事項> • ICS3 ~ ICS0 は EI2OS を起動する場合のみ有効となります。EI2OS を起動する場合は ISE を "1" に設定し , 起動しない場合は "0" に設定してください。EI2OS を起動しない 場合 , ICS3 ~ ICS0 は何を設定してもかまいません。 • ICS1 と ICS0 は書込みのみ , S1 と S0 は読出しのみ , それぞれ有効です。 <補足> 拡張インテリジェント I/O サービスチャネルセレクトビット (ICR:ICS3 ~ ICS0) は 書込み時のみ , 拡張インテリジェント I/O サービスステータスビット (ICR:S1,S0) は 読 出 し 時 の み , そ れ ぞ れ 有 効 と な り ま す。読 出 し 時 に は , bit6, bit7/bit14, bit15 (ICS2,ICS3) からは "1" が読み出されます。 [bit10 ~ bit8, bit2 ~ bit0] IL0, IL1, IL2 ( 割込みレベル設定ビット ) 割込みレベル設定ビットです。対応する内蔵リソースの割込みレベルを指定しま す。 読み書きができます。リセットによりレベル 7 ( 割込みなし ) に初期化されます。 表 3.3-1 に , 割込みレベル設定ビットと割込みレベルとの関係を示します。 55 第 3 章 割込み 表 3.3-1 割込みレベル設定ビットと割込みレベル 割込みレベル値 IL2 IL1 IL0 0 0 0 0 ( 最強割込み ) 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 ( 最弱割込み ) 1 1 1 7 ( 割込みなし ) [bit11, bit3] ISE ( 拡張インテリジェント I/O サービス許可ビット ) EI2OS 許可ビットです。割込み要求の発生時にこのビットが "1" であると EI2OS が 起動され , "0" のときは割込みシーケンスが起動されます。また , EI2OS が終了 ( カ ウント終了による場合と内蔵リソースからの要求による場合) したとき, ISEビット は "0" になります。対応する内蔵リソースに EI2OS の機能がないときには , ソフト ウェアで ISE を "0" にしておく必要があります。読み書き可能なビットです。 リセットにより "0" に初期化されます。 56 第 3 章 割込み [bit15 ~ bit12, bit7 ~ bit4] ICS3 ~ ICS0 ( 拡張インテリジェント I/O サービスチャネル セレクトビット ) EI2OS チャネル選択ビットです。書込み専用のビットで , このビットにより EI2OS のチャネルを指定します。ここで設定された値によりメモリ上の拡張インテリジェ ント I/O サービスディスクリプタのアドレスが決定します。ICS はリセットにより "0000H" に初期化されます。 表 3.3-2 に , ICS, チャネル番号 , ディスクリプタアドレスの対応関係を示します。 表 3.3-2 ICS ビット , チャネル番号 , ディスクリプタアドレス セレクトされるチャネル ディスクリプタアドレス ICS3 ICS2 ICS1 ICS0 0 0 0 0 0 000100H 0 0 0 1 1 000108H 0 0 1 0 2 000110H 0 0 1 1 3 000118H 0 1 0 0 4 000120H 0 1 0 1 5 000128H 0 1 1 0 6 000130H 0 1 1 1 7 000138H 1 0 0 0 8 000140H 1 0 0 1 9 000148H 1 0 1 0 10 000150H 1 0 1 1 11 000158H 1 1 0 0 12 000160H 1 1 0 1 13 000168H 1 1 1 0 14 000170H 1 1 1 1 15 000178H [bit13, bit12, bit5, bit4] S0, S1 ( 拡張インテリジェント I/O サービスステータスビット ) EI2OS 終了ステータスビットです。読出し専用のビットで , EI2OS 終了時にこのビッ トの値を調べることにより , 終了条件が何であったかを判別できます。 リセットにより "00B" に初期化されます。 表 3.3-3 に , S ビットと終了条件との関係を示します。 表 3.3-3 S ビットと終了条件 終了条件 S1 S0 0 0 EI2OS 動作中または非起動時 0 1 カウント終了による停止状態 1 0 リザーブ 1 1 内蔵リソースからの要求による停止状態 57 第 3 章 割込み 3.4 割込みフロー 図 3.4-1 に , 割込みフローを示します。 ■ 割込みフロー 図 3.4-1 割込みフロー I ILM IF IE ISE IL S I & IF & IE = 1 AND ILM > IL : : : : : : : CCR中のフラグ CPUのレベルレジスタ 内蔵リソースの割込み要求 内蔵リソースの割込みイネーブルフラグ EI2OSのイネーブルフラグ 内蔵リソースの割込み要求レベル CCR中のフラグ YES NO NO YES ISE = 1 次の命令の取込みと デコード PS, PC, PCB, DTB, ADB, DPR, Aを SSPのスタックへ退避 その後,ILM=IL 拡張インテリジェントI/O サービス処理 YES INT命令 NO 通常命令実行 NO ストリング系 命令の繰り返し 完了 YES PCの更新 58 PS, PC, PCB, DTB, ADB, DPR, Aを SSPのスタックへ退避 その後,I=O, ILM=IL S←1 割込みベクトルの取込み 第 3 章 割込み 図 3.4-2 割込み処理中のレジスタ退避 ワード (16ビット) "H" MSB LSB SSP(割込み発生前のSSPの値) AH AL DPR ADB DTB PCB PC PS "L" SSP(割込み発生後のSSPの値) 59 第 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-2 に , 割込み要因と割込みベクタ・割込み制御レジスタを示します。 60 第 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 バイトを退避した後 , 割込みベクタを 3 バイトリードし PC と PCB へロード , PS 中の ILM を受け付けた割込み要求のレベル値に更新 , S フラグを "1" に設定して分岐処 理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プログラム になります。 61 第 3 章 割込み 3.5.2 ハードウェア割込みの発生と解除 図 3.5-1 に , ハードウェア割込みの発生から割込み処理プログラムに割込み要求がな くなるまでのフローを示します。 ■ ハードウェア割込みの発生と解除 図 3.5-1 ハードウェア割込みの発生と解除まで PS F2MC-16LX バス レジスタファイル マイクロコード IR ⑥ I ⑤ ② ① 割込みレベル AND レベル比較器 ⑦ プロセッサステータス 割込み許可フラグ 割込みレベルマスクレジスタ インストラクションレジスタ ④ ③ 周辺 要因FF : : : : 比較器 チェック F2MC-16LX・CPU 許可FF PS I ILM IR ILM IL 割込み コントローラ ①周辺機器の内部で割込み要因が発生します。 ②周辺機器内の割込み許可ビットを参照し割込み許可になっていれば , 周辺機器から 割込みコントローラへ割込み要求を発生します。 ③割込み要求を受け取った割込みコントローラは , 同時に要求のあった割込みの優先 順位を判定した上で該当する割込みに対応する割込みレベルを CPU へ転送します。 ④ CPU は割込みコントローラから要求のあった割込みレベルをプロセッサステータス レジスタ内の ILM ビットと比較します。 ⑤比較の結果が現在の割込み処理レベルより優先順位が高い場合のみ , 同じプロセッ サステータスレジスタ内の I フラグの内容をチェックします。 ⑥⑤のチェックの結果 , I フラグが割込み許可状態である場合のみ , ILM ビットの内容 を要求されたレベルに設定し, 現在実行中の命令の実行が終了し次第, 割込み処理を 行い , 制御を割込み処理ルーチンへ移します。 ⑦ユーザの割込み処理ルーチン内のソフトウェアで①で発生した割込み要因をクリア することで割込み要求が終了します。 ⑥および⑦で , CPU が行う割込み処理の実行時間の計算式を以下に示します。 なお , サイクル数の補正値は , 表 3.5-1 を参照してください。 割込み起動 :24+6 ×サイクル数の補正値 割込み復帰 :15+6 ×サイクル数の補正値 (RETI 命令 ) 62 第 3 章 割込み 表 3.5-1 割込み処理時のサイクル数の補正値 スタックポインタが指しているアドレス 補正値 (cycle) 外部 8 ビットの場合 +4 外部 偶数アドレスの場合 +1 外部 奇数アドレスの場合 +4 内部 偶数アドレスの場合 0 内部 奇数アドレスの場合 +2 63 第 3 章 割込み 多重割込み 3.5.3 特殊なケースとして , データの入出力領域への書込み中はハードウェア割込み要求を受 け付けません。MB90390 シリーズでは , アドレス "00H" ~ "BFH", ("3100H" ~ "31FFH", "3300H" ~ "33FFH",) "3500H" ~ "35FFH", "3700H" ~ "37FFH", "3900H" ~ "39FFH", "3B00H" ~ "3BFFH", "3D00H" ~ "3DFFH" および "3F00H" ~ "3FFFH" を内 蔵しています。これは各リソースの割込み制御レジスタ関係の書換えを行っている最 中の割込み要求に対して , CPU が割込み関係で誤動作を起こすことを避けるためです。 また , 割込み処理の実行中に割込みが発生した場合は , 割込みレベルの強い方の処理が 優先されます。 ■ 多重割込み F2MC-16LX CPU は多重割込みをサポートしています。そのため , 割込み処理の実行中 にその割込みのもつ割込みレベルより強いレベルの割込みが発生すると , 現在実行中 の命令を終了した後でそちらに制御が移ります。強いレベルでの割込みが終了すると , 元の割込み処理に戻ります。割込み処理実行中に , その割込みと同等か , より弱いレベ ルの割込み処理が発生した場合は , ILM の内容や I フラグの命令による変更を施さない かぎり現在の割込み処理の終了まで , 新しい割込み要求は保留されます。 なお , 拡張インテリジェント I/O サービスは多重に起動されることはなく , 1 つの拡張 インテリジェント I/O サービスの処理中は , ほかの割込み要求および拡張インテリジェ ント I/O サービス要求はすべて保留されます。 図 3.5-2 に , スタック内に退避されるレジスタの順番を示します。 図 3.5-2 スタック内に退避されたレジスタ ワード(16ビット) MSB LSB "H" SSP(割込み発生前のSSPの値) AH AL DPR ADB DTB PCB PC PS "L" 64 SSP(割込み発生後のSSPの値) 第 3 章 割込み 3.6 ソフトウェア割込み ソフトウェア割込みは , 専用の命令の実行に対応して , CPU がそれまで実行してい たプログラムの実行からユーザの定義した割込み処理用プログラムへ制御を移行す る機能です。ソフトウェア割込みの起動は , ソフトウェア割込み命令の実行で常に 発生します。 ■ ソフトウェア割込み ソフトウェア割込みが発生するときに CPU が行う処理には以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの 退避 • PS レジスタに "1" を設定。自動的に割込み禁止になる • 対応する割込みベクタの内容の取込みとそこへの分岐 ソフトウェア割込みである INT 命令の実行による割込み要求には割込み要求フラグお よび許可フラグはなく , INT 命令の実行により常に割込み要求が発生します。 INT 命令には割込みレベルはありません。したがって , INT 命令では ILM の更新は行 われず , I フラグに "0" を設定して継続する割込み要求を保留状態にします。 ■ ソフトウェア割込みの構造 ソフトウェア割込みに関連する機構は , すべて CPU の内部に存在します。 CPU…………………マイクロコード : 割込み処理用ステップ ■ MB90390 割込みベクタ一覧表 表 D-1 に , MB90390 シリーズの割込みベクタ一覧表を示します。 表 D-1 に示すように , ソフトウェア割込みはハードウェア割込みと同じ割込みベクタ 領域を共有しています。例えば , 割込み要求番号の INT12 は , ソフトウェア割込みの INT#12 で使用されると同時にハードウェア割込みの外部割込み #0 ~ #7 でも使用され ます。したがって , 外部割込み #0 と INT#12 は同じ割込み処理ルーチンを呼び出します。 ■ ソフトウェア割込みの動作 CPU がソフトウェア割込み命令を取り込み , 実行すると , ソフトウェア割込み処理用マ イクロコードを起動します。ソフトウェア割込み処理マイクロコードでは SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込み ベクタを 3 バイトリードし PC と PCB へ格納 , I フラグを "0" に , S フラグを "1" にして 分岐処理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プロ グラムになります。 図 3.6-1 に , ソフトウェア割込みの発生から割込み処理プログラムに割込み要求がなく なるまでのフローを示します。 65 第 3 章 割込み 図 3.6-1 ソフトウェア割込みの発生と解除まで 1 PS F2MC-16LX バス レジスタファイル I 2 マイクロコード Bユニット IR キュー F2MC-16LX・CPU S フェッチ PS I S IR : プロセッサステータス : 割込み許可フラグ : スタックフラグ : インストラクションレジスタ Bユニット : バスインタフェース ユニット 退避 命令系バス RAM ①ソフトウェア割込み命令を実行します。 ②ソフトウェア割込み命令に対応したマイクロコードに従ってレジスタファイル中の CPU 内専用レジスタの退避を行います。 ③ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。 ■ その他 プログラムカウンタバンクレジスタ (PCB) が "FFH" であるとき , CALLV 命令のベクタ 領域は INT#vct8 命令のテーブルと重なります。ソフトウェアを作成する際に同一アド レスを使用するような CALLV 命令と INT#vct8 命令を使用しないように注意してくだ さい。 表 D-2 に , MB90390 シリーズの割込み要因 , 割込みベクタ , 割込み制御レジスタの関係 を示します。 66 第 3 章 割込み 3.7 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービス (EI2OS) とはハードウェア割込み動作の一種で , I/O とメモリとの間での自動データ転送機能を持っています。従来 , 割込み処理プロ グラムで行っていた I/O とのデータのやりとりを DMA 的に行えます。 ■ 拡張インテリジェント I/O サービス (EI2OS) 従来の割込み処理で行っていた方式と比べると以下に示すような利点があります。 • 転送のためのプログラムを記述する必要がないため , プログラムサイズを小さくで きる • 転送の際に内部レジスタを使用しないので , レジスタの退避が不要になり転送速度 が速い • I/O が都合により転送を停止でき , 不要データの転送がない • バッファアドレスのインクリメント , 更新なしの選択ができる • I/O レジスタアドレスのインクリメント , 更新なしの選択ができる ( バッファアドレ ス更新ありの場合 ) また , EI2OS が終了したときには , 終了条件を設定した後に自動的に割込み処理ルーチ ンへ分岐しますので , ユーザは終了条件の種類を判別できます。 EI2OS を実現するために , 2 箇所の部分にハードウェアが分散して存在し , それぞれの ブロックの中に以下に示すようなレジスタやディスクリプタがあります。 ● 割込み制御レジスタ 割込みコントローラ内にあり , ISD のアドレスを示します。 ● 拡張インテリジェント I/O サービスディスクリプタ RAM 上にあり転送モード , I/O のアドレスや転送数 , バッファアドレスを保持します。 図 3.7-1 に , EI2OS の概要を示します。 67 第 3 章 割込み 図 3.7-1 拡張インテリジェント I/O サービスの概要 メモリ空間 IOA I/Oレジスタ CPU ••••••••••••••• I/Oレジスタ 割込み要求 ③ 周辺 ① ICS ISD ③ ② 割込み制御レジスタ 割込みコントローラ BAP ① I/Oが転送を要求します。 ④ バッファ DCT ② 割込みコントローラがディスク リプタを選択します。 ③ 転送元/転送先をディスクリプタ から読み出します。 ④ I/Oとメモリ間で転送が行われ ます。 <注意事項> • IOA で指定できる領域は , "000000H" ~ "00FFFFH" です。 • BAP で指定できる領域は , "000000H" ~ "FFFFFFH" です。 • DCT で指定できる最大転送数は , 65536 個です。 ■ 拡張インテリジェント I/O サービス (EI2OS) の構造 EI2OS に関連する機構は , 以下の 4 つの部分に分かれて存在します。 • 内蔵リソース ………… 割込み許可ビット , 割込み要求ビット: リソースからの割込み要求の制御 • 割込みコントローラ … ICR :割込みのレベル付け , 同時割込み要求の優 先度判定 , EI2OS 動作の選択 • CPU …………………… I, ILM :割込み要求レベルと現レベルの比較 , 割込 み許可状態の識別マイクロコード :EI2OS 処理用ステップ • RAM…………………… ディスクリプタ:EI2OS の転送情報を記述する 68 第 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 サービスディスクリプタの構成 "H" データカウンタ上位8ビット(DCTH) データカウンタ下位8ビット (DCTL) I/Oアドレスポインタ上位8ビット (IOAH) I/Oアドレスポインタ下位8ビット (IOAL) EI2OS ステータス (ISCS) バッファアドレスポインタ上位8ビット (BAPH) 000100H+8×ICS バッファアドレスポインタ中位8ビット (BAPM) ISD先頭アドレス バッファアドレスポインタ下位8ビット (BAPL) "L" ■ データカウンタ (DCT) データカウンタ (DCT) は , 16 ビット長のレジスタで転送データ数に対応したカウンタ となります。データ転送前 , カウンタは 1 個デクリメントされます。このカウンタが "0" になると EI2OS は終了します。 図 3.7-3 に , データカウンタの構成を示します。 図 3.7-3 データカウンタの構成 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 DCT ( リセット時不定 ) 69 第 3 章 割込み ■ I/O レジスタアドレスポインタ (IOA) I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで I/O レジスタアドレ スポインタの 16 ビットによりバッファとデータ転送する I/O レジスタの下位アドレス (A15 ~ A00) を示します。上位アドレス (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 A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 IOA ( リセット時不定 ) ■ バッファアドレスポインタ (BAP) 24 ビットのレジスタで次に EI2OS による転送で使用するアドレスを保持します。BAP は EI2OS の各チャネルに対してそれぞれ独立に存在しますので , EI2OS の各チャネルは 16M バイトの任意の空間と転送できます。ISCS の BF ビットが "0" にセットされてい る場合 ( 更新可能 ) , BAP の下位 16 ビットのみ変化し , BAPH は変化しません。 70 第 3 章 割込み EI2OS ステータスレジスタ (ISCS) 3.7.2 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: データ転送後バッファアドレスポインタは固定される。 <注意事項> 更新する場合 , バッファアドレスポインタは下位 16 ビットのみ変化します。 71 第 3 章 割込み [bit1] DIR データの転送方向を指定します。 0:I/O アドレスポインタ→バッファアドレスポインタ 1: バッファアドレスポインタ→ I/O アドレスポインタ [bit0] SE 内蔵リソースからの要求での拡張インテリジェント I/O サービスの終了を制御しま す。 0: 内蔵リソースからの要求により終了しない。 1: 内蔵リソースからの要求により終了する。 72 第 3 章 割込み 3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フ ローと使用手順 図 3.8-1 に , 拡張インテリジェント I/O サービス (EI2OS) の動作フローの図を , 図 3.8-2 に , 使用手順の図を示します。 ■ 拡張インテリジェント I/O サービス (EI2OS) の動作フロー 図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の動作フロー BAP IOA ISD ISCS DCT ISE S1, SO 内部リソースより 割込み要求発生 ISE = 1 : : : : : : : バッファアドレスポインタ I/Oアドレスポインタ EI2OSディスクリプタ EI2OSステータス データカウンタ EI2OSイネーブルビット EI2OS終了ステータス NO YES 割込みシーケンス ISD/ISCSを読出し リソースからの 終了要求 YES SE = 1 NO DIR = 1 YES NO IOAで示されるデータ ⇓ (データ転送) BAPで示されるメモリ IF = 0 BAPで転送されるデータ ⇓ (データ転送) IOAで示されるメモリ YES NO BF = 0 更新値は, BWによる IOA更新 更新値は, BWによる BAP更新 YES NO DCTデクリメント DCT = 00B NO YES S1,S0に"01B"をセット S1,S0に"11B"をセット S1,S0に"00B"をセット リソース割込み要求 のクリア ISEを"0"にクリア CPU動作復帰 割込みシーケンス 73 第 3 章 割込み 図 3.8-2 拡張インテリジェント I/O サービス (EI2OS) の使用手順フロー CPUによる処理 EI2OSによる処理 EI2OSの初期化 正常終了 ジョブ実行 (割込み要求) AND(ISE=1) データ転送 カウントアウトまたは リソースからの終了要 求による割込みの発生 拡張インテリジェント I/Oサービスの設定 (チャネルの切換え) バッファ中のデータの処理 各フローでの拡張 EI2OS の実行時間を以下に示します。 ● データ転送継続時 ( 停止条件が成立しない場合 ) ( 表 3.8-1 + 表 3.8-2 ) マシンサイクル ● リソースからの停止要求時 (36+6 ×表 3.8-3 ) マシンサイクル ● カウント終了時 ( 表 3.8-1 + 表 3.8-2 + (21+6 ×表 3.8-3 )) マシンサイクル 表 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 :バイトデータ転送 偶 :偶数アドレス・ワード転送 奇 :奇数アドレス・ワード転送 74 B/ 偶 奇 B/ 偶 0 +2 奇 +2 +4 第 3 章 割込み 表 3.8-3 割込みハンドリング時間の補正値 スタックポインタが指しているアドレス 補正値 (cycle) 外部 8 ビットの場合 +4 外部 偶数アドレスの場合 +1 外部 奇数アドレスの場合 +4 内部 偶数アドレスの場合 0 内部 奇数アドレスの場合 +2 75 第 3 章 割込み 3.9 例外 F2MC-16LX では , 以下の要因により例外が発生して例外処理が行われます。 ■ 未定義命令の実行 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で通常処理から離れて例外処理を行います。一般的に , 例外処理は予 想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時の 復旧ソフトウェアの起動などのみに使用することをお勧めいたします。 ■ 未定義命令の実行による例外発生 F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い ます。未定義命令を実行すると , ソフトウェア割込み命令の「INT10」と等価な処理を 行います。すなわち , AL, AH, DPR, DTB, ADB, PCB, PC, PS の内容をシステムスタック に退避した後に , I フラグを "0" に設定し , S フラグを "1" に設定し , 割込み番号 10 の ベクタで示されるルーチンへ分岐します。スタックへ退避した PC の値は未定義命令を 格納しているアドレスそのものです。このため , RETI 命令で復帰させることは可能で すが , 再び例外を発生するため意味がありません。 76 第4章 遅延割込み 遅延割込みの機能と動作について説明します。 4.1 遅延割込みモジュールの概要 4.2 遅延割込みのレジスタ 4.3 遅延割込みの動作 77 第 4 章 遅延割込み 4.1 遅延割込みモジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー ルです。本モジュールを使用することで , ソフトウェアでの F2MC-16LX CPU に対 する割込み要求を発生 / 取消しができます。 ■ 遅延割込みのブロックダイヤグラム 図 4.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。 図 4.1-1 遅延割込みのブロックダイヤグラム F2MC-16LX バス 遅延割込み要因発生/解除デコーダ 要因ラッチ ■ 遅延割込み要求ロックの使用上の注意 このロックは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット に "0" を書き込むことでクリアされます。したがって , 割込み処理ルーチン内で要因を クリアするようにソフトウェアを作成しておかないと割込み処理から復帰した途端に 再割込み処理を起動することになりますので注意してください。 78 第 4 章 遅延割込み 遅延割込みのレジスタ 4.2 DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して "1" を書き込んだときには遅延割込みの要求を発生させ , "0" を書き込んだときには 遅延割込みの要求を解除します。リセット時には要因解除状態になります。 ■ 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) アドレス 00009FH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - - - - - - - R0 R/W 初期値 XXXXXXX0B R/W :リード / ライト可能 X :不定 :未定義ビット 表 4.2-1 遅延割込み要求発生 / 解除レジスタ (DIRR) の機能 ビット名 bit15 ~ bit9 -: 未定義ビット bit8 R0: 遅延割込み要求 発生ビット 機能 • 読出し:値は不定です。 • 書込み:影響しません。 • 遅延割込み要求を発生または解除します。 • このビットに "0" を設定した場合:遅延割込み要求を解除します。 • このビットに "1" を設定した場合:遅延割込み要求を発生します。 • リセットが指定されると , 割込み発生が解除され , "0" になります。 79 第 4 章 遅延割込み 4.3 遅延割込みの動作 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生 モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求 を発生します。 ■ 遅延割込み発生 ほかの割込み要求が本割込みより優先順位が低いまたはほかの割込み要求がない場合 に , 割込みコントローラは F2MC-16LX CPU に対して割込み要求を発生します。図 4.31 に示すように , F2MC-16LX CPU は自分の内部にある CCR レジスタ中の ILM ビット と割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の命 令が終了し次第, ハードウェア割込み処理マイクロプログラムを起動します。この結果, 本割込みに対する割込み処理ルーチンが実行されます。 図 4.3-1 遅延割込み発生 遅延割込み発生モジュール割込みコントローラ F2MC-16LX CPU 書込み ほかの要求 ICRyy IL CMP CMP DIRR ICRxx ILM INTA 80 第5章 クロック クロックについて説明します。 5.1 クロックの概要 5.2 クロック発生部のブロックダイヤグラム 5.3 クロック選択レジスタ 5.4 クロックモード 5.5 発振安定待ち時間 5.6 振動子と外部クロックの接続 5.7 メインクロック HCLK, HCLKX の出力 81 第 5 章 クロック 5.1 クロックの概要 クロック発生部は , CPU や周辺機能の動作クロックである内部クロックの動作を制 御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の PLL 発振によるクロックを PLL クロックといいます。 ■ クロックの概要 クロック発生部は発振回路を内蔵しており , 外部に振動子を接続することによって発 振クロックを発生します。外部で生成したクロックを入力して発振クロックにするこ ともできます。また , PLL クロック逓倍回路を内蔵しており , 発振クロックの逓倍ク ロックを 6 種類発生できます。クロック発生部では , 発振安定待ち時間の制御 , PLL ク ロック逓倍制御およびクロックセレクタでのクロックの切換えによる内部クロックの 動作制御を行います。 ● 発振クロック (HCLK) X0, X1 端子に振動子を取り付けて発生させるか , あるいは外部から入力したクロック のことです。 ● メインクロック (MCLK) 発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入 力クロックとなります。 ● PLL クロック (PCLK) 発振クロックを内蔵の PLL クロック逓倍回路により逓倍したクロックです。6 種類の 逓倍クロックを選択できるようになっています。 ● クロックモジュレータ (CLOMO) クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで, 周囲への電磁ノイズの影響 (EMI) を減らします。本モジュールには , 1) 位相変調モー ドと , 2) 周波数変調モードがあります。詳細は「第 6 章 クロックモジュレータ」を参 照してください。 ● マシンクロック (φ) CPU と周辺機能の動作クロックです。このクロックの 1 周期をマシンサイクル (1/φ) と しています。メインクロック ( 発振クロックの 2 分周クロック ) と , 6 種類の逓倍クロッ クの中から 1 種類を選択できるようになっています。 <注意事項> 動作電圧が 5 V の場合 , 発振クロック周波数は 3 MHz ~ 8 MHz の範囲で使用できます。 CPU およびソースの最大動作周波数は 24 MHz です。最大動作周波数を超える逓倍率ま たはクロックモジュレータのピーク周波数を設定した場合 , デバイスは正常に動作しませ ん。 82 第 5 章 クロック ■ クロック供給マップ CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを 供給しています。このため , CPU と周辺機能の動作は , メインクロックと PLL クロッ クの切換え ( クロックモード ) や PLL クロック逓倍率切換えの影響を受けます。一部 の周辺機能へは , タイムベースタイマの分周出力が供給されており , 各周辺でその動作 クロックを選択できるようになっています。図 5.1-1 に , クロック供給マップを示しま す。 図 5.1-1 クロック供給マップ 周辺機能 4 ウォッチドッグタイマ 8/16 ビット PPG PPG00~PPG05 Pin PPG10~PPG15 クロック発生ブロック 8/16 ビット PPG タイムベースタイマ Pin RX0~RX4 Pins 1 2 3 4 6 8 CAN0~CAN4 PLL 逓倍回路 PCLK TX0~TX4 Pins TIN0/TIN1 16 ビットリロード タイマ 0/1 クロックセレクタ クロックモジュレータ X1 Pin Pins SIN0/1(/2)/3 X0 Pin Pins TOUT0/TOUT1 システム クロック 発生回路 Pins ... クロックセレクタ 2 分周 HCLK UART0/UART1/ UART2(/UART3) + シリアルI/O MCLK SOT0/1(/2)/3 Pins ... SCK0/1(/2)/3 Pins ... AN0~AN14 10 ビット ADC (15 チャネル ) Pins ... SGO Pin サウンドジェネレータ CPU Pin 16 ビット フリーランタイマ 0/1 16 ビット入力 キャプチャ 出力コンペア (8 チャネル ) HCLK :発振クロック MCLK :メインクロック PCLK :PLL クロック φ :マシンクロック φc :CAN0 ~ CAN4 クロック SGA FRCK0/FRCK1 Pins IN0~IN5 Pins ... OUT0~OUT7 Pins ... PWM1/2M5~ PWM1/2M0 PWM1/2P5~ PWM1/2P0 Pin SMC (6チャネル) ... DV CC, DV SS Pin ... 3 発振安定待機制御 ( 注意事項 ) I2C インタフェースはオプションであり , このダイヤグ ラムには表示されていません。 83 第 5 章 クロック クロック発生部のブロックダイヤグラム 5.2 クロック発生部は , 次の 5 つのブロックで構成されています。 • システムクロック発生回路 • PLL 逓倍回路 • クロックセレクタ • クロック選択レジスタ (CKSCR) • 発振安定待ち時間セレクタ ■ クロック発生部のブロックダイヤグラム 図 5.2-1 に , クロック発生部のブロックダイヤグラムを示します。 なお , 図 5.2-1 には , スタンバイ制御回路 , タイムベースタイマの回路も含まれていま す。 図 5.2-1 クロック発生部のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP SLP SPL RST TMD CG1 CG0 端子ハイ インピーダンス 制御回路 Pin RST 間欠 サイクル セレクタ 間欠動作セレクタ 端子ハイ インピー ダンス制御 内部リセット 発生回路 内部 リセット CPU クロック 制御回路 CPU クロック ストップ・ スリープ信号 スタンバイ 制御回路 ストップ信号 割込み クリア 周辺クロック 制御回路 発振安定待ち時間クリア マシンクロック クロック CS2 PLL および 特殊構成 制御レジスタ (PSCCR):bit8 発振安定 待ち時間 セレクタ 2 セレクタ 2 PLL 逓倍回路 MCM WS1 WS0 - MCS CS1 CS0 クロック選択レジスタ (CKSCR) メインクロック X0 Pin HCLK X1 Pin システムクロック 発生回路 2 分周 1024 分周 2 分周 4 分周 4 分周 4 分周 2 分周 タイムベースタイマ ウォッチドッグタイマ (注意事項) このダイヤグラムには, クロックモジュレータは表示されていません。 詳細は「第 6 章 クロックモジュレータ」を参照してください。 84 第 5 章 クロック ● システムクロック発生回路 外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを 入力することもできます。 ● PLL 逓倍回路 PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。 ● クロックセレクタ メインクロックと 6 種類の PLL クロックから , CPU 系クロック制御回路および周辺系 クロック制御回路へ供給されるクロックを選択します。 ● クロック選択レジスタ (CKSCR) 発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック の逓倍率の選択などを行います。 ● 発振安定待ち時間セレクタ ストップモード解除時 , サブクロックモードからメインクロックモードへの移行時お よびサブクロックから PLL クロックモードへの移行時の発振クロックの発振安定待ち 時間を選択する回路です。4 種類のタイムベースタイマ出力を選択します。 85 第 5 章 クロック 5.3 クロック選択レジスタ クロック選択レジスタの一覧と各レジスタの機能を概略します。 ■ クロック選択レジスタ 図 5.3-1 にクロック選択レジスタ(CKSCR)とPLLおよび特殊構成制御レジスタ(PSCCR) を示します。 図 5.3-1 クロック選択レジスタ アドレス 0000A1H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 予約 R/W MCM R WS1 R/W WS0 R/W 予約 R/W MCS R/W CS1 R/W CS0 R/W アドレス 0035CFH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 予約 - 予約 - 予約 - 予約 - 予約 W 予約 W 予約 W CS2 W R/W W R X 86 : リード / ライト可能 : ライトオンリ : リードオンリ : 未定義 : 不定 (CKSCR) 初期値 11111100B (PSCCR) 初期値 XXXX0000B 第 5 章 クロック クロック選択レジスタ (CKSCR) 5.3.1 クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振 安定待ち時間の選択および PLL クロックの逓倍率の選択などを行うレジスタです。 ■ クロック選択レジスタ (CKSCR) 図 5.3-2 に , クロック選択レジスタ (CKSCR) の構成を , 表 5.3-1 に , クロック選択レジ スタ (CKSCR) の各ビットの機能について説明します。 図 5.3-2 クロック選択レジスタ (CKSCR) の構成 bit 15 アドレス 0 0 0 0 A 1 H 予約 R/W 14 13 MCM WS1 R R/W 12 11 10 9 8 WS0 予約 MCS CS1 CS0 R/W R/W R/W R/W R/W 0 (LPMCR) 初期値 11111100B CS2(PLLCレジスタ:bit8) CS2 CS1 CS0 逓倍率選択ビット ( )内は発振クロック4MHzと5MHz時 0 0 0 1× HCLK (4MHz / 5 MHz)* 0 0 1 2× HCLK (8MHz / 10 MHz)* 0 1 0 3× HCLK (12MHz / 15 MHz)* 0 1 1 4 ×HCLK (16MHz / 20 MHz)* 1 0 0 2 ×HCLK (8MHz / 10 MHz) 1 0 1 4× HCLK (16MHz / 20 MHz) 1 1 1 0 6× HCLK (24MHz / 設定禁止) 禁止 *: 20MHzを超える設定は禁止されています。 1 0 マシンクロック選択ビット PLLクロック選択 1 メインクロック選択 MCS WS1 WS0 R/W :リード/ライト可能 R :リードオンリ HCLK :発振クロック :初期値 1 発振安定待ち時間選択ビット ( )内は発振クロック4MHzと5MHz時 0 0 210/ HCLK(約256/204.8μs) 0 1 213/ HCLK (約2.05/1.64ms) 1 0 215/ HCLK (約8.19/6.55ms) 1 1 2 17/ HCLK (約32.77/26.22ms) MCM マシンクロック表示ビット 0 PLLクロックで動作中 1 メインクロックで動作中 <注意事項> マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。 87 第 5 章 クロック 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2) ビット名 bit15 bit14 機 能 予約 必ず "1" を書き込んでください。 MCM: マシン クロック 表示ビット • マシンクロックとして , メインクロックまたは PLL クロックのどちらが 選択されているかを表示するビットです。 • このビットが "0" のとき PLL クロックが選択されていることを示し , "1" のときメインクロックが選択されていることを示します。 • MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待ち時 間中であることを示します。 • 書込みは , 影響しません。 • ストップモード解除時 , サブクロックモードからメインクロックモード への移行時およびサブクロックから PLL クロックモードへの移行時の 発振クロックの発振安定待ち時間を選択します。 • すべてのリセット要因で "11B" に初期化されます。 ( 注意事項 ) 発振安定待ち時間は , 使用する振動子に合わせて適切な値を設定する必 要があります。「7.2 リセット要因と発振安定待ち時間」を参照してくだ さい。"00B" と "01B" の設定は , メインクロックモード時のみ設定してく bit13, bit12 bit11 WS1, WS0: 発振安定 待ち 時間選択 ビット 予約 ださい。 PLL ストップから PLL クロックモードに復帰する場合の発振安定待ち時 PLL クロックモードに切り換える場合は "10B" 間は , 214/HCLK 以上です。 または "11B" に設定してください。 5MHz 原発振の待ち時間 0 約 256 μs 約 205 μs 0 1 約 2.05 ms 約 1.64 ms 1 0 約 8.19 ms 約 6.56 ms 1 1 約 33.77 ms 約 26.22 ms WS0 0 必ず "1" を書き込んでください。 HCLK: 発振クロック周波数 88 4MHz 原発振の待ち時間 WS1 第 5 章 クロック 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2) ビット名 bit10 MCS: マシン クロック 選択ビット 機 能 • マシンクロックとして , メインクロックまたは PLL クロックのどちらを 選択するかを指定するビットです。 • このビットが "0" のとき PLL クロックを選択し , "1" のときメインクロッ クを選択します。 • このビットが "1" のときに "0" を書き込むと , PLL クロックの発振安定 待ち期間が発生するために, 自動的にタイムベースタイマがクリアされ, さらにタイムベースタイマ制御レジスタ (TBTC) の TBOF ビットもクリ アされます。 • PLL クロックの発振安定待ち時間は , 214/HCLK ( 発振クロック周波数 4MHz で動作している場合 : 約 4.1ms) 固定です。 • メインクロック選択時の動作クロックは , 発振クロックを 2 分周したク ロックとなります ( 発振クロック周波数 4MHz 時 , 動作クロックは 2MHz になります ) 。 • すべてのリセット要因で "1" に初期化されます。 ( 注意事項 ) MCS ビットが "1" のときに "0" を書き込む場合には , タイムベースタイ マ制御レジスタ (TBTC) の TBIE ビットまたはインタラプトレベルレジス タ (ILM) によりタイムベースタイマ割込みがマスクされている状態で行 うようにしてください。 • これらのビットと PSCCR レジスタの CS2 ビットは PLL クロックの逓倍 率を選択します。 • 6 種類の逓倍率から選択できます。 • すべてのリセット要因で "00B" に初期化されます。 • CS2, CS1, CS0 ビットの推奨設定 bit9, bit8 CS1, CS0: 逓倍率選択 ビット PLL クロックの逓倍率 CS2 CS1 CS0 0 0 0 ×1 0 0 1 ×2 0 1 0 ×3 0 1 1 ×4 1 0 0 ×2 1 0 1 ×4 1 1 0 ×6 1 1 1 × 8*2 最大 20MHz までの マシンクロック *1 20MHz 以上の マシンクロック *1 *1:データシートの交流規格を参照してください。 *2:すべてのデバイスには設定されていません。データシートの交流規 格を参照してください。 ( 注意事項 ) MCS ビットまたは MCM ビットが "0" のときには書込みが抑止されます。 いったん , MCS ビットを "1" にした ( メインクロックモード ) 後に CS2, CS1, CS0 ビットを書き換えてください。 89 第 5 章 クロック PLL および特殊構成制御レジスタ (PSCCR) 5.3.2 PLL および特殊構成制御レジスタは PLL のクロック逓倍率の選択を追加します。 ■ PLL および特殊構成制御レジスタ (PSCCR) の構成 図 5.3-3 に , PLL および特殊構成制御レジスタ (PSCCR) の構成を示します。表 5.3-2 に , PLL および特殊構成制御レジスタ (PSCCR) の各ビットの機能について説明します。 図 5.3-3 PLL および特殊構成制御レジスタ (PSCCR) の構成 アドレス 0 0 3 5 C FH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 予約 予約 予約 予約 予約 予約 予約 CS2 - - - - W W W W 初期値 (PSCCR) CS2 W X - 90 : ライトオンリ : 不定 : 未定義 : 初期値 XXXX0000 B 付加逓倍選択ビット 0 PLLクロックの逓倍率 x1, x2, x3, x4 1 PLLクロックの逓倍率 x2, x4, x6, x8 (CKSCR レジスタのCS1とCS0ビットの設定によります) 予約 予約ビット 0 このビットには常に"0"を書き込んでください。 読出し値は常に "X"です。 予約 予約ビット 0 このビットには常に"0"を書き込んでください。 読出し値は常に "X"です。 予約 予約ビット 0 このビットには常に"0"を書き込んでください。 読出し値は常に "X"です。 予約 予約ビット XXXX これらのビットには常に"0"を書き込んでくださ い。読出し値は常に "x"です。 第 5 章 クロック 表 5.3-2 PLL および特殊構成制御レジスタ (PSCCR) ビット名 機能 bit15 ~ bit9 予約 : 予約ビット • 予約ビットです。 • 常に "0" を書き込んでください。 • これらのビットは常に "X" を読み出します。 bit8 CS2: 逓倍率 選択ビット 2 • このビットとクロック選択レジスタ (CKSCR) の CS1 と CS0 ビットは PLL クロックの逓倍率を選択します。 • CS2, CS1, CS0 ビットの設定と PLL クロック逓倍率選択の関係につい ては , 表 5.3-1 を参照してください。 • このビットはすべてのリセット要因により "0" に初期化されます。 • このビットは常に "X" を読み出します。 ( 注意事項 ) MCS ビットまたは MCM ビットが "0" のとき , このビットの設定を変更す ることは禁止されています。MCS ビットを "1" に設定し , MCM ビットが "1" に設定されるのを待ってからこのビットを変更してください ( メイン クロックモード )。 <注意事項> PSCCR レジスタは書込み専用レジスタです。読出し値は書込み値と異なります。した がって , リードモディファイライト (RMW) 系命令は , INC/DEC 命令などを使用できませ ん。 91 第 5 章 クロック 5.4 クロックモード クロックモードには , メインクロックモードと PLL クロックモードがあります。 ■ メインクロックモード , PLL クロックモード ● メインクロックモード メインクロックモードは , CPU および周辺機能の動作クロックとして発振クロックを 2 分周したクロックを使用し , PLL クロックを停止させます。 ● PLL クロックモード PLL クロックモードは , CPU および周辺機能の動作クロックとして PLL クロックを使 用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) と PLL および特殊構成制御レジスタ (PSCCR:CS2) により選択できます。 ■ クロックモードの移行 クロック選択レジスタ (CKSCR) の MCS ビットへの書込み動作により , クロックモー ドはメインクロックモード , PLL クロックモードに移行します。 ● メインクロックモードから PLL クロックモードへの移行 メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1" から "0" に書き換えた場合には , PLL クロックの発振安定待ち期間 (214/HCLK) 後にメ インクロックから PLL クロックに切り換わります。 ● PLL クロックモードからメインクロックモードへの移行 PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" から "1" に書き換えた場合には , PLL クロックとメインクロックのエッジが一致するタイミン グ (1PLL ~ 8PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。 <注意事項> クロック選択レジスタ (CKSCR) の MCS ビットを書き換えても即座にマシンクロックの 切換えは行われません。マシンクロックに依存する周辺機能を操作する場合には , クロッ ク選択レジスタ (CKSCR) の MCM ビットを参照してマシンクロックの切換えが行われた ことを確認したのちに , 周辺機能の操作を行ってください。 クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモードおよび 低消費電力モードへは切り換えないようにしてください。 切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え を行った場合 , 切り換わらない場合があります。 ■ PLL クロック逓倍率の選択 クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ~ "11B" と PLL および特殊 構成制御レジスタ (PSCCR) の CS2 ビットに "0" または "1" を書き込むことにより , 1 ~ 4 逓倍 (CS2=0) と 2 ~ 8 逓倍 (CS2=1) の PLL クロック逓倍率を選択できます。 92 第 5 章 クロック ■ マシンクロック PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロックがマシンクロッ クとなります。このマシンクロックが CPU および周辺機能に供給されます。メインク ロック , PLL クロックは , クロック選択レジスタ (CKSCR) の MCS ビットへの書込みに より , いずれかを選択できます。 ■ クロックモジュレータ クロックモジュレータについては「第 6 章 クロックモジュレータ」を参照してくださ い。 図 5.4-1 に , マシンクロックの切換えによる状態遷移を示します。 図 5.4-1 マシンクロック選択の状態遷移図 メイン MCS = 1 MCM = 1 CS1, CS0 = XX CS2 = x (1) (6) (8) (7) (9) メイン PLLx MCS = 0 MCM = 1 (10) (11) (2) CS1, CS0 = XXB (3) CS2 = x (4) (5) (7) (7) PLL1 メイン MCS = 1 MCM = 0 PLL1: 逓倍 MCS = 0 MCM = 0 CS1, CS0 = 00B CS2 = 0 (6) CS1, CS0 = 00B CS2 = 0 PLL2 メイン MCS = 1 MCM = 0 PLL2: 逓倍 MCS = 0 MCM = 0 CS1, CS0 = 01B CS2 = 0 (7) PLL3 メイン MCS = 1 MCM = 0 CS1, CS0 = 10B CS2 = 0 (7) (6) PLL4 メイン MCS = 1 MCM = 0 CS1, CS0 = 11B CS2 = 0 CS1, CS0 = 11B CS2 = 0 PLL2A メイン MCS = 1 MCM = 0 PLL2A: 逓倍 MCS = 0 MCM = 0 CS1, CS0 = 00B CS2 = 1 (6) CS1, CS0 = 00B CS2 = 1 PLL4A メイン MCS = 1 MCM = 0 PLL4A: 逓倍 MCS = 0 MCM = 0 CS1, CS0 = 01B CS2 = 1 (7) (7) (6) PLL6 メイン MCS = 1 MCM = 0 CS1, CS0 = 10B CS2 = 1 CS1, CS0 = 10B CS2 = 0 PLL4: 逓倍 MCS = 0 MCM = 0 (6) (7) CS1, CS0 = 01B CS2 = 0 PLL3: 逓倍 MCS = 0 MCM = 0 (6) (7) PLL6: 逓倍 MCS = 0 MCM = 0 (6) PLL8 メイン MCS = 1 MCM = 0 CS1, CS0 = 11B CS2 = 1 CS1, CS0 = 01B CS2 = 1 CS1, CS0 = 10B CS2 = 1 PLL8: 逓倍 MCS = 0 MCM = 0 (6) CS1, CS0 = 11B CS2 = 1 93 第 5 章 クロック (1) MCS ビットに "0" を書き込む (2) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 00B および CS2= 0 (3) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 01B および CS2= 0 (4) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 10B および CS2= 0 (5) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 11B および CS2= 0 (6) MCS ビットに "1" を書き込む ( ウォッチドッグタイマリセットを含む ) (7) PLL クロックとメインクロックの同期タイミング (8) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 00B および CS2= 1 (9) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 01B および CS2= 1 (10) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 10B および CS2= 1 (11) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 11B および CS2= 1 MCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット MCM : クロック選択レジスタ (CKSCR) のマシンクロック表示ビット CS1, CS0 : クロック選択レジスタ (CKSCR) の逓倍率選択ビット CS2 : PLL および特殊構成制御レジスタ (PSCCR) の逓倍率選択ビット <注意事項> マシンクロックの初期値は , メインクロック (CKSCR:MCS = 1) です。 94 第 5 章 クロック 発振安定待ち時間 5.5 電源投入後 , ストップモード解除およびウォッチドッグリセットの場合は発振停止 から動作が開始するため , 発振開始後に発振安定待ち時間が必要です。また , メイン クロックから PLL クロックへ切り換える場合も , PLL クロックの発振開始後に発振 安定待ち時間が必要です。 ■ 発振安定待ち時間 セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で 安定して発振するまでに , 一般的に数 ms から 10ms または 20ms の時間が必要です。こ のため , 発振開始直後は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振 が安定した時点で CPU にクロックを供給するようにします。振動子の種類 ( 水晶 , セ ラミックなど ) によって発振が安定するまでの時間が異なるため, 使用する振動子に合 わせて適切な発振安定待ち時間を選択する必要があります。発振安定待ち時間は , ク ロック選択レジスタ (CKSCR) の設定で選択できます。 クロックモードをメインクロックから PLL クロックに切り換えた場合 , 発振安定待ち 時間の間 , CPU はメインクロックで動作しています。発振安定待ち時間が経過すると PLL モードに切り換わります。 図 5.5-1 に , 発振開始直後の動作を示します。 図 5.5-1 発振開始直後の動作 振動子の発振時間 発振安定待ち時間 通常動作開始または PLLクロックへの切換え X1 発振開始 発振安定 95 第 5 章 クロック 5.6 振動子と外部クロックの接続 MB90390 シリーズは , システムクロック発生回路を内蔵しており , 外部に振動子を 接続してクロックを発生させます。また , 外部で生成したクロックを入力すること もできます。 ■ 振動子と外部クロックの接続 ● 水晶振動子またはセラミック振動子の接続例 水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。 図 5.6-1 水晶振動子またはセラミック振動子の接続例 MB90390シリーズ X0 X1 ● 外部クロックの接続例 図 5.6-2 の例で示すように , 外部クロックは , X0 端子に接続し , X1 端子は開放にして ください。 図 5.6-2 外部クロックの接続例 MB90390シリーズ 96 X0 X1 ~ 開放 第 5 章 クロック メインクロック HCLK, HCLKX の出力 5.7 メインクロック HCLK, HCLKX の出力制御は , クロック出力許可レジスタを使用し ます。 ■ クロック出力許可レジスタ 図 5.7-1 クロック出力許可レジスタ (CKOE) bit 15 アドレス 00003FH - 14 13 12 11 10 - - - - - - - - - - 9 CKXOE CKOE R/W XXXXXX00B R/W HCLK出力許可 CKOE HCLK : 発振クロック HCLKX : 発振クロックの反転 : リード/ライト可能 R/W : 不定 X : 未定義 : 初期値 初期値 8 0 HCLK出力は禁止 1 HCLK出力は許可 CKXOE 0 HCLKX出力許可 HCLKX出力は禁止 1 HCLKX出力は許可 表 5.7-1 クロック出力許可レジスタの各ビット機能 ビット名 機能 bit15 ~ bit10 未定義 - bit9 CKXOE このビットが "1" に設定されると , P97( 端子番号 92) の HCLKX 出力 は許可されます。 このビットが "0" に設定されると , HCLKX 出力は禁止されます。 bit8 CKOE このビットが "1" に設定されると , PB7( 端子番号 91) の HCLK 出力 は許可されます。 このビットが "0" に設定されると , HCLK 出力は禁止されます。 97 第 5 章 クロック 98 第6章 クロックモジュレータ クロックモジュレータの概要 , 特長 , レジスタの構 成 , 動作について説明します。 ( 注意事項 ) • MB90F394H では周波数変調モードは使用でき ません • MB90F394H, MB90V390H, MB90V390HA では CAN メッセージバッファ RAM とクロックモ ジュレータを同時に使用しないでください。 6.1 クロックモジュレータの概要 6.2 クロックモジュレータのレジスタ説明 6.3 クロックモジュレータのクロック変調レジスタ 6.4 クロックモジュレータの使用上の注意 99 第 6 章 クロックモジュレータ 6.1 クロックモジュレータの概要 クロックモジュレータの概要を説明します。 ■ クロックモジュレータの概要 クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで 周囲への電磁ノイズへの影響 (EMI) を減らします。 本モジュレータには位相変調モードと周波数変調モードの 2 つのモードがあります。 リファレンスクロックは , ランダム信号で制御される三角波形 , もしくは変調した周波 数によって位相変調されます。 通常 , 周波数変調モードは , 位相変調モードに比べて EMI の動作を改善します。変調 クロックの平均周波数はリファレンスクロック周波数 F0 と同じです。 図 6.1-1 変調クロックの周波数スペクトラム ( 基本のみ ) 変調範囲 周波数 Fmin F0 Fmax ■ 周波数変調モードの変調度と周波数分解能 変調クロックの最大・最小周波数 (Fmax と Fmin) は , 変調度パラメータで明確に定義さ れています。さらに , 変調範囲の分解能は low (1) から high(7) の 7 段階で選択可能で す。高分解能とは , 変調クロックスペクトラムにおいて , 不連続周波数の高精度分解を 意味しますが , 変調度は近くなります。 通常 , 最高変調度と最高周波数分解との組合せは , 最大の EMI の減少の原因となりま す。場合によっては , 低変調度が EMI 動作を改善させることがあります。表 6.3-4 の可 能な設定を参照してください。 100 第 6 章 クロックモジュレータ 6.2 クロックモジュレータのレジスタ説明 クロックモジュレータには以下の 2 つのレジスタがあります。 • クロック変調パラメータレジスタ • クロックモジュレータ制御レジスタ ■ クロックモジュレータレジスタ アドレス 0035C0H 0035C2H bit15 0 クロック変調パラメータレジスタ CMPR CMCR クロックモジュレータ制御レジスタ 101 第 6 章 クロックモジュレータ クロックモジュレータのクロック変調レジスタ 6.3 以下に , クロック変調レジスタの一覧と各レジスタの機能を説明します。 ■ クロック変調レジスタ 図 6.3-1 クロック変調レジスタ CMPRL ( 下位 ) アドレス 0035C0H bit 7 MP7 R/W 6 MP6 R/W 5 MP5 R/W 4 MP4 R/W 3 MP3 R/W 2 MP2 R/W 1 MP1 R/W 0 MP0 R/W 初期値 11111101B bit15 − − 14 − − 13 MP13 R/W 12 MP12 R/W 11 MP11 R/W 10 MP10 R/W 9 MP9 R/W 8 MP8 R/W 初期値 XX0000010B bit 7 6 5 4 3 0 PMOD 予約 予約 予約 − 初期値 0001X000B R/W R/W R/W R/W − CMPRH ( 上位 ) 0035C1H CMCR 0035C2H R/W W R X 102 : リード / ライト可能 : ライトオンリ : リードオンリ : 未定義 : 不定 2 1 FMOD FMOD RUN R R/W PDX R/W 第 6 章 クロックモジュレータ クロックモジュレータ制御レジスタ (CMCR) 6.3.1 クロックモジュレータ制御レジスタ (CMCR) には次のような機能があります。 • モジュレータをパワーダウンモードに設定 • 位相変調モードもしくは周波数変調モードのモジュレータ許可 / 禁止 • モジュレータステータスの表示 ■ クロックモジュレータ制御レジスタ (CMCR) 図 6.3-2 クロックモジュレータ制御レジスタ (CMCR) の構成 bit 7 アドレス 0035C2H 6 5 4 3 PMOD 予約 予約 予約 - R/W R/W R/W R/W - 2 1 0 FMOD FMOD PDX RUN R R/W R/W CMCR 初期値 0 0 0 1 X 0 0 0B bit 0 パワーダウンビット PDX 0 パワーダウンモード 1 パワーアップモード bit 1 周波数変調許可ビット FMOD 0 周波数変調禁止 1 周波数変調許可 bit 2 FMOD RUN 0 1 周波数変調モードのモジュレータステータス クロック周波数非変調 / 周波数変調 クロック周波数変調 bit 4~bit 6 予約 bit 4 bit 5, bit 6 予約ビット 常に"1"を書き込んでください 常に"0"を書き込んでください bit 7 位相変調許可ビット PMOD R/W R X - : : : : リード/ライト可能 リードオンリ 不定 未定義 : 初期値 0 位相変調禁止 1 位相変調許可 クロックモジュレータには 2 つの異なるオペレーションモードがあります。 • 位相変調 • 周波数変調 通常 , 周波数変調は EMI の動作を改善します。 位相変調モードは (PMOD) で制御できます。ほかの追加設定は必要ありません。 残りのビット (FMODRUN, FMOD, PDX) は , 周波数変調モードのステータスを制御も しくは表示します。周波数変調モードは追加設定 (CMPR レジスタ ) が必要です。 103 第 6 章 クロックモジュレータ ■ クロックモジュレータ制御レジスタの機能 表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (1 / 3) ビット名 PMOD: bit7 位相変調 許可ビット 機能 "0": 位相変調不可 ( デフォルト ) "1": 位相変調許可 MCU は変調されたクロックによって動作します。 • モジュレータを位相モードで動作させるためには PMOD が "1" に設定さ れる必要があります。 位相変調モードとして , モジュレータはパワーダウンモードにとどめな ければなりません。すなわち , PDX は "0" に設定しなければなりません。 • モジュレータを許可にする前に , PLL クロックが安定している必要があ ります (PLL 安定待ち時間については「第 5 章 クロック」を参照してく ださい )。 • 位相変調モードは 15MHz ~ 25MHz の範囲で使用可能です。 • PLL 出力周波数が変わる場合 , または PLL が OFF になる場合 ( 例:パ ワーダウンモード ) には事前にクロックモジュレータを不可にしてくだ さい→ PMOD=0 後に NOP が 4 サイクル必要です。 • 位相変調を許可にすると , 直ちに変調されたクロックに切り換わります。 このときグリッジは発生しません。 位相変調開始シーケンスについては使用上の注意を参照してください。 • モジュレータは同時 (PMOD=1, FMOD=1, PDX=1) に , 位相変調モードと 周波数変調モードを設定してはいけません。位相モード (PMOD=1) を有 効にする前に , FMOD, FMODRUN, PDX を必ず "0" にしてください。 • 位相変調モードが許可のとき , FMODRUN ステータスフラグは "0" です。 位相変調の動作状態は PMOD によって参照できます。PMOD=1 であれ ばクロックは変調されています。 • 位相変調されたクロック信号のパルス幅は± 1.2 ns の範囲で変化します。 例:F0 = 20 MHz, T0 = 50ns Tmodmin = 50ns - 1.2ns =48.8ns → Fmodmax = 1/48.8 ns = 20.49 MHz bit6, bit5 予約ビット 本ビットには常に "0" を書き込んでください。 bit4 予約ビット 本ビットには常に "1" を書き込んでください。 bit3 未定義ビット 104 ─ 第 6 章 クロックモジュレータ 表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (2 / 3) ビット名 機能 "0": 非変調 / 位相変調クロックで MCU が動作 "1": 周波数クロックで MCU が動作 • FMODRUN は , 周波数変調モードにおけるモジュレータ出力のステータ スを表します (FMOD=1)。出力クロックが周波数変調されると , FMODRUN は "1" に設定 , さもなければ FMODRUN は "0" に設定されま す。 • FMODRUN は位相変調クロックを表示しません (PMOD=1)。モジュレー タが位相変調モードで許可されると , FMODRUN は "0" に設定されます。 • FMOD を "1" に設定することで周波数変調モードが許可された後 , モ ジュレータは調整されます。この時間の間 , クロックは変調されません。 そのため , 出力クロックが変調されたクロックに移行し , FMODRUN ビットが "1" に設定される前に , 既に数 μs が経過しています。調整時間 は , 発振周波数によって異なります。( 表を参照 ) bit2 FMODRUN: 周波数変調 モード ビットの モジュレータ ステータス 発振周波数 Fc 調整時間 4 MHz 64.00 μs 5 MHz 51.20 μs 6 MHz 42.67 μs 調整時間 = 256/Fc • 調整終了後 , 通常動作の間 , クロックは変調されたクロックに移行しま せん。 • FMOD 信号の周期と非変調クロックへの同期スイッチングのために , FMODRUN の "0" への変更と , モジュレータの無効化後での非変調ク ロックへのクロックスイッチングの遅延を 9 × T0 ( 入力クロック期間 ) 以下にしてください。 • FMODRUN ビットは読出しのみ可能です。FMODRUN に書込みしても 影響はありません。 • パラメータレジスタ CMPR を変更する前に , モジュレータは不可でなけ ればなりません→ FMOD=0, FMODRUN=0。 105 第 6 章 クロックモジュレータ 表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (3 / 3) ビット名 bit1 bit0 106 機能 FMOD: 周波数変調 許可ビット "0": 周波数変調不可 "1": 周波数変調許可 ( 注意事項 )MB90F394H では、このビットに "1" を設定しないでください。 • モジュレータを周波数モードで動作させるためには FMOD が "1" に設定 される必要があります。 • モジュレータを許可する前に , PLL クロックが安定している必要があり ます (PLL ロック時間が経過していなければなりません )。 • 周波数変調モードは 15 MHz ~ 25 MHz の範囲で使用可能です。 • 各 PLL 周波数は , 可変長パラメータのセットを提供します。選択設定さ れた (CMPR レジスタ ) と PLL 周波数は一致します。 CMPR レジスタの記述を参照してください。 • PLL 出力周波数が変わる場合 , または PLL が OFF になる場合 ( 例:パ ワーダウンモード ) には事前にクロックモジュレータを不可にしてくだ さい→ FMOD=0, FMODRUN=0。 • モジュレータが許可になる前に , PDX を "1" に設定することによって パワーダウンからアクティブモードに移行させます。起動の待ち時間 は 6 μs です。推奨起動手順の注意事項を参照してください。 • 周波数変調モードのモジュレータが許可になる前に必ずパラメータレジ スタ CMPR で適切に設定してください。 • モジュレータは同時 (FMOD=1, PDX=1, PMOD=1) に , 位相変調モードと 周波数変調モードを設定してはいけません。位相モード (FMOD=1, PDX=1) を有効にする前に , PMOD ビットを必ず "0" にしてください。 • FMOD を "1" に設定することで周波数変調モードが許可された後 , モ ジュレータは調整されます。この時間の間 , クロックは変調されません。 そのため , 出力クロックは変調されたクロックに直接移行しません。ク ロックのステータス ( 変調された周波数 / 変調されない周波数 ) は , FMODRUN ステータスビットによって表示されます。FMODRUN ビット の説明を参照してください。 • FMOD 信号の周期と非変調クロックへの同期スイッチングのために , FMODRUN の "0" への変更と , モジュレータの無効化後での非変調ク ロックへのクロックスイッチングの遅延を 9 × T0 ( 入力クロック期間 ) 以下にしてください。 • パラメータレジスタ CMPR を変更する前に , モジュレータは不可でなけ ればなりません→ FMOD=0, FMODRUN=0。 PDX: パワーダウン ビット "0": パワーダウンモード "1": パワーアップ • PDX は , モジュレータ用パワーダウン信号です。周波数変調モードが許 可になる前 , このビットは "1" に設定され , 起動待ち時間は 6 μs です。 推奨起動手順の注意事項を参照してください。 • 位相変調モード (PMOD ビット ) のために , このモジュレータはパワーダ ウンモード中 (PDX=0) 内に必ず含めてください。 • パワーダウンモード (PDX=0) に移行する前に , モジュレータは不可でな ければなりません FMOD=0, FMODRUN=0。 第 6 章 クロックモジュレータ 表 6.3-2 は , モジュレータステータスの要約表です。 表 6.3-2 モジュレータステータス PMOD FMOD PDX FMODRUN ( 読出しのみ ) モジュレータ禁止 0 0 0 0 位相変調モードのモジュレータ許可 モジュレータ動作中 1 0 0 0 モジュレータパワーオン 待機モジュレータスタートアップタイム (> 6 μs) 0 0 1 0 周囲変調モードのモジュレータ許可 モジュレータ換算 , 変調停止 0 1 1 0 周波数変調モードでのモジュレータ動作変調はオン 0 1 1 1 その他不可 107 第 6 章 クロックモジュレータ クロック変調パラメータレジスタ (CMPR) 6.3.2 クロック変調パラメータレジスタ (CMPR) は , 周波数変調モードの変調度を決定し ます。 ■ クロック変調パラメータレジスタ 図 6.3-3 クロック変調パラメータレジスタ (CMPR) CMPRL ( 下位 ) アドレス 0035C0H bit7 MP7 R/W bit6 MP6 R/W bit5 MP5 R/W bit4 MP4 R/W bit3 MP3 R/W bit2 MP2 R/W bit15 bit14 bit13 bit12 bit11 bit10 − − − − MP13 R/W MP12 R/W MP11 R/W MP10 R/W bit0 MP0 R/W 初期値 11111101B bit9 bit8 MP9 R/W MP8 R/W 初期値 XX000010B bit1 MP1 R/W CMPRH ( 上位 ) 0035C1H R/W : リード / ライト可能 X : 不定 − : 未定義 • 変調パラメータは , 変調クロックの変調度 , 最大 / 最小発生周波数を決定します。最 適な設定のために「6.4 クロックモジュレータの使用上の注意」を参照してくださ い。 • 変調パラメータの各設定は , 特別な PLL 周波数を参考にしています。PLL 周波数と 選択されたパラメータは一致します。表 6.3-3 を参照してください。 • 変調パラメータは , 周波数変調モードにのみ影響を及ぼします。位相変調モードは , 変更不可能な固定設定です。 <注意事項> モジュレータが禁止され , RUN フラグが "0"(FMOD=0, FMODRUN=0) のときのみ , 変調 パラメータが変更されます。 ■ クロック変調パラメータレジスタの機能 表 6.3-3 クロック変調パラメータレジスタの各ビットの機能 (CMPR) ビット名 bit15, bit14 未使用ビット bit13 ~ bit0 MP13 ~ MP0: 変調 パラメータビット 108 機能 PLL 周波数によって , 次の変調パラメータ設定が可能です。 第 6 章 クロックモジュレータ F0 : 変調されていない入力クロックの周波数 (PLL 周波数 ) T0: : 変調されていない入力クロックの周期 (PLL クロック周期 ) resolution : 変調されたクロック low (1) ~ high (7) における周波数の分解能 Fmin : 変調されたクロックの周波数で発生する最小周波数 Fmax : 変調されたクロックの周波数で発生する最大周波数 phase skew : 変調クロックの最大位相シフトは , 非同期クロックのクロック期間から算 出した非変調リファレンスクロックと関連しています。 例:phase skew=1.44 最悪の場合 , 変調クロックの n 周期のシーケンスは , 非変調リファレンス クロックの n 周期のシーケンス± 1.44 × T0 となります。 n > 50 周期 phase skew 50 : n ≦ 50 周期 CMPR : CMPR レジスタのレジスタ設定 n 周期 基準クロック + phase skew n 周期 変調クロック n 周期 <注意事項> すべての設定がすべてのデバイスで許可されているわけではありません。 MCU の実際の最大クロック周波数 ( データシートを参照 ) を考慮してください。例 えば , デバイスの最大クロック周波数が 25MHz のとき , F0=15MHz, 分解能 =7, 変調 度 =2 は設定できません。これは , 変調クロックでの最大発生周波数が 28.33 MHz で あり , 先の 25MHz を超えているためです。 109 第 6 章 クロックモジュレータ 表 6.3-4 はいくつかの MCU クロックと変調パラメータに対し推奨する設定を示しま す。 表 6.3-4 変調項目設定 (1 / 4) F0 (MHz) 110 分解能 変調度 Fmin (MHz) Fmax (MHz) +/- phase skew 50 [periods] +/- phase skew Min/Max [periods] CMPR 15 1 1 14.09 16.03 0.27 0.72 027FH 15 1 2 13.69 16.58 0.53 1.44 047EH 15 1 3 13.31 17.18 0.8 2.16 067DH 15 1 4 12.95 17.81 1.06 2.88 087CH 15 1 5 12.61 18.50 1.33 3.59 0A7BH 15 1 6 12.29 19.24 1.59 4.31 0C7AH 15 1 7 11.98 20.05 1.86 5.03 0E79H 15 1 8 11.69 20.92 2.13 5.75 1078H 15 1 9 11.41 21.87 2.39 6.47 1277H 15 1 10 11.15 22.92 2.66 7.19 1476H 15 1 11 10.90 24.07 2.92 7.91 1675H 15 1 12 10.65 25.34 3.19 8.63 1874H 15 1 13 10.42 26.75 3.45 9.34 1A73H 15 1 14 10.20 28.33 3.72 10.06 1C72H 15 1 15 9.99 30.11 3.98 10.78 1E71H 15 1 16 9.78 32.12 4.25 11.5 2070H 15 2 1 13.69 16.58 0.39 1.02 02BEH 15 2 2 12.95 17.81 0.78 2.03 04BCH 15 2 3 12.29 19.24 1.17 3.05 06BAH 15 2 4 11.69 20.92 1.56 4.06 08B8H 15 2 5 11.15 22.92 1.95 5.08 0AB6H 15 2 6 10.65 25.34 2.34 6.09 0CB4H 15 2 7 10.20 28.33 2.73 7.11 0EB2H 15 2 8 9.78 32.12 3.13 8.13 10B0H 15 3 1 13.31 17.18 0.78 1.86 02FDH 15 3 2 12.29 19.24 1.56 3.72 04FAH 15 3 3 11.41 21.87 2.34 5.58 06F7H 15 3 4 10.65 25.34 3.13 7.44 08F4H 15 3 5 9.99 30.11 3.91 9.3 0AF1H 15 4 1 12.95 17.81 0.75 2 033CH 15 4 2 11.69 20.92 1.5 4 0538H 15 4 3 10.65 25.34 2.25 6 0734H 15 4 4 9.78 32.12 3 8 0930H 15 5 1 12.61 18.50 1.13 3.94 037BH 15 5 2 11.15 22.92 2.25 7.88 0576H 15 5 3 9.99 30.11 3.38 11.81 0771H 15 6 1 12.29 19.24 1.5 2.67 03BAH 15 6 2 10.65 25.34 3 5.34 05B4H 15 7 1 11.98 20.05 1.81 3.95 03F9H 第 6 章 クロックモジュレータ 表 6.3-4 変調項目設定 (2 / 4) F0 (MHz) 分解能 変調度 Fmin (MHz) Fmax (MHz) +/- phase skew 50 [periods] +/- phase skew Min/Max [periods] CMPR 15 7 2 10.20 28.33 3.63 7.91 05F2H 16 1 1 15.00 17.14 0.27 0.72 027FH 16 1 2 14.58 17.73 0.53 1.44 047EH 16 1 3 14.17 18.37 0.8 2.16 067DH 16 1 4 13.79 19.05 1.06 2.88 087CH 16 1 5 13.43 19.79 1.33 3.59 0A7BH 16 1 6 13.09 20.58 1.59 4.31 0C7AH 16 1 7 12.76 21.45 1.86 5.03 0E79H 16 1 8 12.45 22.38 2.13 5.75 1078H 16 1 9 12.15 23.41 2.39 6.47 1277H 16 1 10 11.87 24.53 2.66 7.19 1476H 16 1 11 11.60 25.76 2.92 7.91 1675H 16 1 12 11.35 27.13 3.19 8.63 1874H 16 1 13 11.10 28.65 3.45 9.34 1A73H 16 1 14 10.86 30.34 3.72 10.06 1C72H 16 1 15 10.64 32.25 3.98 10.78 1E71H 16 2 1 14.58 17.73 0.39 1.02 02BEH 16 2 2 13.79 19.05 0.78 2.03 04BCH 16 2 3 13.09 20.58 1.17 3.05 06BAH 16 2 4 12.45 22.38 1.56 4.06 08B8H 16 2 5 11.87 24.53 1.95 5.08 0AB6H 16 2 6 11.35 27.13 2.34 6.09 0CB4H 16 2 7 10.86 30.34 2.73 7.11 0EB2H 16 3 1 14.17 18.37 0.78 1.86 02FDH 16 3 2 13.09 20.58 1.56 3.72 04FAH 16 3 3 12.15 23.41 2.34 5.58 06F7H 16 3 4 11.35 27.13 3.13 7.44 08F4H 16 3 5 10.64 32.25 3.91 9.3 0AF1H 16 4 1 13.79 19.05 0.75 2 033CH 16 4 2 12.45 22.38 1.5 4 0538H 16 4 3 11.35 27.13 2.25 6 0734H 16 5 1 13.43 19.79 1.13 3.94 037BH 16 5 2 11.87 24.53 2.25 7.88 0576H 16 5 3 10.64 32.25 3.38 11.81 0771H 16 6 1 13.09 20.58 1.5 2.67 03BAH 16 6 2 11.35 27.13 3 5.34 05B4H 16 7 1 12.76 21.45 1.81 3.95 03F9H 16 7 2 10.86 30.34 3.63 7.91 05F2H 20 1 1 18.60 21.63 0.27 0.72 027FH 20 1 2 18.08 22.38 0.53 1.44 047EH 20 1 3 17.58 23.20 0.8 2.16 067DH 20 1 4 17.11 24.07 1.06 2.88 087CH 111 第 6 章 クロックモジュレータ 表 6.3-4 変調項目設定 (3 / 4) F0 (MHz) 分解能 変調度 Fmin (MHz) Fmax (MHz) +/- phase skew 50 [periods] +/- phase skew Min/Max [periods] CMPR 20 1 5 16.66 25.01 1.33 3.59 0A7BH 20 1 6 16.24 26.02 1.59 4.31 0C7AH 20 1 7 15.84 27.13 1.86 5.03 0E79H 20 1 8 15.46 28.33 2.13 5.75 1078H 20 1 9 15.09 29.64 2.39 6.47 1277H 20 1 10 14.74 31.08 2.66 7.19 1476H 20 1 11 14.41 32.67 2.92 7.91 1675H 20 2 1 18.08 22.38 0.39 1.02 02BEH 20 2 2 17.11 24.07 0.78 2.03 04BCH 20 2 3 16.24 26.02 1.17 3.05 06BAH 20 2 4 15.46 28.33 1.56 4.06 08B8H 20 2 5 14.74 31.08 1.95 5.08 0AB6H 20 3 1 17.58 23.20 0.78 1.86 02FDH 20 3 2 16.24 26.02 1.56 3.72 04FAH 20 3 3 15.09 29.64 2.34 5.58 06F7H 20 4 1 17.11 24.07 0.75 2 033CH 20 4 2 15.46 28.33 1.5 4 0538H 112 20 4 3 14.09 34.42 2.25 6 0734H 20 5 1 16.66 25.01 1.13 3.94 037BH 20 5 2 14.74 31.08 2.25 7.88 0576H 20 6 1 16.24 26.02 1.5 2.67 03BAH 20 7 1 15.84 27.13 1.81 3.95 2BF5H 24 1 1 22.14 26.20 0.27 0.72 027FH 24 1 2 21.52 27.13 0.53 1.44 047EH 24 1 3 20.93 28.12 0.8 2.16 067DH 24 1 4 20.38 29.19 1.06 2.88 087CH 24 1 5 19.85 30.34 1.33 3.59 0A7BH 24 1 6 19.35 31.59 1.59 4.31 0C7AH 24 1 7 18.87 32.95 1.86 5.03 0E79H 24 2 1 21.52 27.13 0.39 1.02 02BEH 24 2 2 20.38 29.19 0.78 2.03 04BCH 24 2 3 19.35 31.59 1.17 3.05 06BAH 24 3 1 20.93 28.12 0.78 1.86 02FDH 24 3 2 19.35 31.59 1.56 3.72 04FAH 24 3 3 17.99 36.04 2.34 5.58 06F7H 24 4 1 20.38 29.19 0.75 2 033CH 24 5 1 19.85 30.34 1.13 3.94 037BH 24 6 1 19.35 31.59 1.5 2.67 03BAH 24 7 1 18.87 32.95 1.81 3.95 03F9H 25 1 1 23.01 27.36 0.27 0.72 027FH 25 1 2 22.37 28.33 0.53 1.44 047EH 25 1 3 21.76 29.37 0.8 2.16 067DH 第 6 章 クロックモジュレータ 表 6.3-4 変調項目設定 (4 / 4) F0 (MHz) 分解能 変調度 Fmin (MHz) Fmax (MHz) +/- phase skew 50 [periods] +/- phase skew Min/Max [periods] CMPR 25 1 4 21.19 30.49 1.06 2.88 087CH 25 1 5 20.64 31.70 1.33 3.59 0A7BH 25 1 6 20.12 33.00 1.59 4.31 0C7AH 25 2 1 22.37 28.33 0.39 1.02 02BEH 25 2 2 21.19 30.49 0.78 2.03 04BCH 25 2 3 20.12 33.00 1.17 3.05 06BAH 25 3 1 21.76 29.37 0.78 1.86 02FDH 25 3 2 20.12 33.00 1.56 3.72 04FAH 25 4 1 21.19 30.49 0.75 2 033CH 25 5 1 20.64 31.70 1.13 3.94 037BH 25 6 1 20.12 33.00 1.5 2.67 03BAH 113 第 6 章 クロックモジュレータ クロックモジュレータの使用上の注意 6.4 位相 , 周波数変調モードのスタート / ストップのシーケンスと周波数変調モードの変 調パラメータについて説明します。 ■ 位相変調モードの推奨起動手順 start 1. PLL を ON 2. PLL 安定待ち時間待機 (「第 5 章 クロック」の MCM フラグに関する説明を参照し てください ) 3. 位相変調モードを許可 (PMOD=1) クロックは直ちに位相変調される ... 動作中 ... stop 4. 位相変調モードを不可 (PMOD=0) 5. NOP 4 サイクル 6. PLL 停止 , パワーダウンモードに移行など <注意事項> PLL 待ち時間が経過する前にはモジュレータを許可にしないでください。また , 変調動作 中に PLL を停止しないでください。 114 第 6 章 クロックモジュレータ ■ 周波数変調モードの推奨起動手順 start 1. モジュレータをパワーダウンからパワーアップモード PDX=1 へ移行 2. PLL を ON 3. PLL 安定待ち時間待機 (「第 5 章 クロック」の MCM フラグに関する説明を参照し てください ) 同時にモジュレータが起動する 4. CMPR レジスタを正確に設定する 5. 周波数変調モードを許可 FMOD=1 換算完了後 , クロックは非変調から変調クロックにスイッチし , FMODRUN は "1" になります。 ... 動作中 ... stop 6. 周波数変換モードを不可 FMOD=0 7. FMODRUN が "0" に変化するまで待つ 8. パワーダウンモード PDX=0 に移行 9. PLL 停止 , パワーダウンモードに移行など <注意事項> PLL 待ち時間が経過する前にはモジュレータを許可にしないでください。 また , 変調動作中に PLL を停止しないでください。 115 第 6 章 クロックモジュレータ ■ 周波数変調モードの変調パラメータ EMI において , 特定分解を設定する特定変調パラメータの推奨値はありません。最適 な設定は , 実際のアプリケーションやシステム全体 , 要求値に依存します。 周波数変調モードでの最適な変調パラメータを決めるため , 下記のようにすることを 推奨します。 1. 必要パフォーマンスに基づく要求 PLL 周波数を決 める。 e.g. 16 MHz 2. MCU の最大許可クロック周波数を定義する。 e.g. 32 MHz 3. MCU の最大許可クロック周波数を最大値として , 最高分解能と最高変調度での設定を選択する。 e.g. 分解能 :7, 変調度 :2, CMPR=05F2H (Fmax= 30.34 MHz) 4. EMI 評価を実行する。 5. EMI 評価が要求を満たさない場合は , 同じ周波数 分解能で変調度を減少する 6. 116 ( これにより , 100 MHz 以上の周波数帯域における ノイズ低減効果は大きくなりますが , 100 MHz 以 下の周波数帯域におけるノイズ低減効果は小さく なります )。 e.g. 分解能 :7, 変調度 :1, CMPR=03F9H また , 周波数分解能を減少してください。変調度 が増加する ( これにより ,100 MHz 以上の周波数帯域における ノイズ低減効果は小さくなりますが , 100 MHz 以 下の周波数帯域におけるノイズ低減効果は大きく なります )。 または e.g. 分解能 :5, 変調度 :3, CMPR=0771H 最適な設定が見つかるまで , 新しい設定で 3 を繰 り返す。 第 6 章 クロックモジュレータ ■ 推奨設定 表 6.4-1 に PLL クロック , 最大許容 MCU クロック周波数 , 推奨クロックモジュレータ 設定の例を示します。 表 6.4-1 PLL クロックの例 F0 PLL クロック 周波数 最大許容 MCU クロック周波数 ( データシートを参照 ) クロックモジュレータ設定 分解能 変調度 Fmax CMPR 15 MHz 20 MHz 6 1 19.24 MHz 03BAH 15 MHz 25 MHz 7 1 20.05 MHz 03F9H 15 MHz 32 MHz 7 2 28.33 MHz 05F2H 16 MHz 20 MHz 5 1 19.79 MHz 037BH 16 MHz 25 MHz 7 1 21.45 MHz 03F9H 16 MHZ 32 MHz 7 2 30.34 MHz 05F2H 20 MHz 25 MHz 4 1 24.07 MHz 033CH 20 MHz 32 MHz 7 1 27.13 MHz 2BF5H 24 MHz 32 MHz 6 1 31.59 MHz 03BAH 25 MHz 32 MHz 5 1 31.70 MHz 037BH 117 第 6 章 クロックモジュレータ 118 第7章 リセット リセットについて説明します。 7.1 リセットの概要 7.2 リセット要因と発振安定待ち時間 7.3 外部リセット端子 7.4 リセット動作 7.5 リセット要因ビット 7.6 リセットによる各端子の状態 119 第 7 章 リセット 7.1 リセットの概要 リセット要因が発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解 除待ち状態になります。リセット解除後は , リセットベクタで示されたアドレスか ら処理を開始します。 リセットには , 次の 4 つの要因があります。 • 電源投入 ( パワーオン ) • ウォッチドッグタイマのオーバフロー • RST 端子からの外部リセット要求 • ソフトウェアリセット要求 ■ リセット要因 リセットの要因について 表 7.1-1 に示します。 表 7.1-1 リセット要因 マシンクロック ウォッチ ドッグタイマ 発振安定待ち 電源投入時 メインクロック (MCLK) 停止 あり RST 端子への "L" レベル入力 メインクロック (MCLK) 停止 なし ソフトウェア 低消費電力モード制御レジス タ (LPMCR) の内部リセット信 号発生ビット (RST) に "0" を書 き込む メインクロック (MCLK) 停止 なし ウォッチ ドッグタイマ ウォッチドッグタイマオーバ フロー メインクロック (MCLK) 停止 なし リセット パワーオン 外部端子 発生要因 MCLK: メインクロック ( 発振クロックの 2 分周クロック ) ● パワーオンリセット パワーオンリセットは , 電源投入時に発生するリセットです。この場合 , 発振安定待ち 時間は 218HCLK サイクルに固定されています (4MHz 原発振時 , 約 65.54 ms)。発振安 定待ち時間が経過した後 , リセット動作を行います。 120 第 7 章 リセット ● 外部リセット 外部リセットは , 外部リセット端子 (RST 端子 ) に "L" レベルを入力することでリセッ トを発生します。RST 端子への "L" レベル入力時間は , 16 マシンサイクル (16/φ) 以上 必要です。外部リセットでは , 発振安定待ち時間を確保しません。 MB90390 シリーズでは , 外部リセットは最小 100 μs のメインタイムベースタイマモー ドからのウェイクアップと最小 100 μs +発振子の発振時間+ 16 マシンサイクルのス トップモードからのウェイクアップです。データシートの交流規格を参照してくださ い。 <参考> RST 端子によるリセット要求の発生の場合に限り , 書込み動作中 ( 転送系命令実行中 MOV など) にリセット要因が発生した場合, 命令の終了後にリセット解除待ち状態になります。 そのため , 書込み中にリセットが入力されても , 正常に書込みを終了します。ただし , ス トリング系命令 (MOVS など ) は , 指定したカウンタ分の転送が完了する前にリセットを 受け付けるので , すべてのデータが転送されることは保証されません。 ● ソフトウェアリセット ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信 号発生ビット (RST) に "0" を書き込むことによって内部リセットを発生します。ソフ トウェアリセットでは発振安定待ち時間を確保しません。 ● ウォッチドッグリセット ウォッチドッグリセットは , ウォッチドッグタイマの起動後 , 定められた時間内に ウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に "0" が書き込まれた場合 , ウォッチドッグタイマのオーバフローによってリセットを発生 します。ウォッチドッグリセットでは , 発振安定待ち時間の確保はクロック選択レジス タ (CKSCR) で設定されます。 クロックの定義 HCLK : 発振クロック周波数 MCLK : メインクロック周波数 φ : マシンクロック (CPU 動作クロック ) 周波数 1/ φ : マシンサイクル (CPU 動作クロック周期 ) の詳細は , 「5.1 クロックの概 要」を参照してください。 121 第 7 章 リセット 7.2 リセット要因と発振安定待ち時間 MB90390 シリーズには 4 種類のリセット要因があり , リセット時の発振安定待ち時 間がリセット要因によってそれぞれ異なります。 ■ リセット要因と発振安定待ち時間 表 7.2-1 にリセット要因と発振安定待ち時間について示します。 表 7.2-1 リセット要因と発振安定待ち時間 発振安定待ち時間 ( ) 内は発振クロック周波数 4MHz 時 リセット パワーオン 218/HCLK ( 約 65.54ms: 4MHz 時 ) ウォッチドッグ なし 外部 なし : ただし , WS1, WS0 ビットは "11B" に初期化されます。 ソフトウェア なし : ただし , WS1, WS0 ビットは "11B" に初期化されます。 HCLK: 発振クロック周波数 WS1, WS0: クロック選択レジスタ (CKSCR) の発振安定待ち時間選択ビット 図 7.2-1 に , パワーオンリセット時の発振安定待ち時間について示します。 図 7.2-1 パワーオンリセット時の発振安定待ち時間 Vcc 217/HCLK 217/HCLK CLK CPU動作 降圧回路の 安定待ち時間 HCLK: 発振クロック 発振安定 待ち時間 <注意事項> セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで , 一 般に数 ms から 10ms または 20ms の発振安定待ち時間が必要です。そのため , 使用する 振動子に合わせた値を設定してください。詳細は , 「5.5 発振安定待ち時間」を参照して ください。 ■ 発振安定待ちリセット状態 電源投入時のリセット , ストップモードおよびサブクロックモード中のリセットに対 するリセット動作は , タイムベースタイマによって作られる発振安定待ち時間が経過 してからとなります。このとき , 外部リセット入力が解除されていない場合は , 外部リ セット解除後にリセット動作を行います。 122 第 7 章 リセット 外部リセット端子 7.3 外部リセット端子 (RST 端子 ) はリセット入力専用端子で , "L" レベルの入力によっ て内部リセットを発生します。MB90390 シリーズは , CPU 動作クロックに同期して リセットされます。ただし , I/O ポート端子は非同期時の外部リセット端子 (RST 端 子 ) によって影響を受けます。 ■ 外部リセット端子のブロックダイヤグラム 図 7.3-1 外部リセット端子のブロックダイヤグラム RST P-ch Pin N-ch CPU 動作クロック (HCLK 周波数を 2 分周した周波数による PLL 逓倍回路 ) CPU 同期回路 周辺機能 ( リソース ) 入力バッファ I/O ポートまたは 外部端子 <注意事項> 書込み動作中のリセットによるメモリ破壊を防ぐため, RST端子入力の受付けをメモリが 破壊されないサイクルで行います。また , 内部回路の初期化にはクロックが必要です。特 に外部クロックで動作させる場合は , リセット入力時にクロックを入力する必要がありま す。 123 第 7 章 リセット 7.4 リセット動作 リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読 出し先を選択し , モードフェッチを行います。このモードフェッチで CPU の動作 モードとリセット動作終了後の実行開始アドレスが決定されます。電源投入時 , ス トップモードからのリセットによる復帰では , 発振安定待ち時間が経過してから モードフェッチを行います。 ■ リセット動作の概要 図 7.4-1 に , リセット動作フローを示します。 図 7.4-1 リセット動作フロー パワーオンリセット ストップモード 外部リセット ソフトウェアリセット ウォッチドッグタイマリセット リセット中 発振安定待ちリセット状態 モードフェッチ (リセット動作) モードデータ取込み リセットベクタ取込み 通常動作 (RUN状態) リセットベクタが示す アドレスから命令コードを 取込み命令を実行 ■ モード端子 モード端子 (MD0 ~ MD2) は , リセットベクタとモードデータの取込み方法を指定しま す。リセットベクタとモードデータの取込みはリセットシーケンスで行います。モー ド端子の詳細は , 「9.2 メモリアクセスモードのモード端子」を参照してください。 ■ モードフェッチ リセットが解除されると , CPU はリセットベクタとモードデータを CPU コア内の該当レ ジスタ内にハードウェア転送します。リセットベクタとモードデータは , "FFFFDCH" ~ "FFFFDFH" の 4 バイトに割り当てられています。CPU は , リセット解除で直ちにこれら のアドレスをバスに出力し , リセットベクタとモードデータを取り込みます。このモー ドフェッチで , CPU はリセットベクタが指すアドレスから処理を開始します。 図 7.4-2 に , リセットベクタとモードデータの転送を示します。 124 第 7 章 リセット 図 7.4-2 リセットベクタとモードデータの転送 メモリ空間 F 2 MC-16LX CPUコア モードレジスタ FFFFDFH モードデータ FFFFDEH リセットベクタビット23~ビット16 FFFFDDH リセットベクタビット15~ビット8 FFFFDCH リセットベクタビット7~ビット0 マイクロ ROM リセットシーケンス PCB PC ● モードデータ ( アドレス :FFFFDFH) モードレジスタの内容を変更できるのはリセット動作だけで , モードレジスタの設定 はリセット動作以降に有効となります。モードデータの詳細は , 「9.3 メモリアクセス モードのモードデータ」を参照してください。 ● リセットベクタ ( アドレス :FFFFDCH ~ FFFFDEH) リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容のアドレス から実行を開始します。 <注意事項> MB90F394H(A) では, リセットベクタとモードデータはハードワイヤードロジックによっ て異なるあらかじめ決められた値を設定しています。 詳細については , 「28.9 フラッシュメモリにおけるリセットベクタアドレス」を参照し てください。 125 第 7 章 リセット 7.5 リセット要因ビット リセット発生要因は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すこと で識別できます。 ■ リセット要因ビット 図 7.5-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すと得 られます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッ チドッグタイマ制御レジスタ (WDTC) の読出し値をソフトウェアで処理した上で適切 なプログラムへ分岐するようにしてください。 図 7.5-1 リセット要因ビットブロックダイヤグラム HST="H" 内部固定 ( ハードウェアスタンバイなし ) RST 端子 パワーオン 発生検出 回路 ハードウェア スタンバイ 解除検出回路 外部リセット 要求検出回路 RST ビットセット 定期的なクリアなし RST="L" ウォッチ ドッグ タイマリセット 発生検出回路 LPMCR, RST ビット書込み 検出回路 クリア ウォ ッチドッグ タイマ制御 レジスタ S (WDTC) S R F/F Q R S Q R S Q R Q R S F/F F/F F/F F/F 遅延回路 Q ウォッチドッグ タイマ 制御レジスタ (WDTC) 読出し 内部データバス S : セット R : リセット Q : 出力 F/F: フリップフロップ ■ リセット要因ビットとリセット要因の対応 ウォッチドッグタイマ制御レジスタ (WDTC) のリセット要因ビットの構成を , 図 7.5-2 に , リセット要因ビットの内容とリセット要因の対応を 表 7.5-1 に示します。詳細は , 「12.1 ウォッチドッグタイマの概要」を参照してください。 126 第 7 章 リセット 図 7.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ ) ウォッチドッグタイマ制御レジスタ (WDTC) アドレス 0000A8H bit15 bit8 (TBTC) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 PONR - WRST ERST SRST WTE WT1 WT0 R - R R R W W W 初期値 X-XXXXXXB R/W : リード / ライト可能 X: 不定 表 7.5-1 リセット要因ビットの内容とリセット要因の対応 リセット要因 PONR WRST ERST SRST パワーオンリセット要求の発生 1 X X X ウォッチドッグタイマオーバ フローによるリセット要求の発生 △ 1 △ △ RST 端子からの外部リセット要求 △ △ 1 △ ソフトウェアリセット要求の発生 △ △ △ 1 △ : 前の状態を保持 X : 不定 ■ リセット要因ビットの注意事項 ● 複数のリセット要因が発生した場合 リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の 対応するそれぞれのリセット要因ビットが "1" にセットされます。例えば , RST 端子か らの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生し た場合 , ERST ビットと WRST ビットの両方が "1" になります。 ● パワーオンリセットの場合 パワーオンリセットの場合には , PONR ビットが "1" にセットされますが , PONR ビッ ト以外のリセット要因ビットは不定となります。このため , PONR ビットが "1" の場合 は, PONRビット以外のリセット要因ビットを無視するようにソフトウェアを作成して ください。 ● リセット要因ビットのクリア リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出したと きのみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは , その後 , ほかの要因でリセットが発生してもクリアされず "1" のままとなります。 <注意事項> パワーオンリセットが発生しない条件で電源を立ち上げた場合には, WDTCレジスタの値 は保証されません。 127 第 7 章 リセット 7.6 リセットによる各端子の状態 リセットによる各端子の状態について説明します。 ■ リセット中の端子の状態 リセット中の端子の状態は , モード端子 (MD2 ~ MD0) の設定によって決定されます。 ● 内部ベクタモード設定時 (MD2 ~ MD0=011B) I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 ■ モードデータ読出し後の端子の状態 モードデータ読出し後の端子の状態は , モードデータ (M1, M0=00B) によって決定され ます。 ● シングルチップモード選択時 (M1, M0=00B) I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 <注意事項> リセット要因が発生したときにハイインピーダンスとなる端子は , その端子に接続した機 器が誤動作しないように配慮してください。 128 第8章 低消費電力モード 低消費電力モードについて説明します。 8.1 低消費電力モードの概要 8.2 低消費電力制御回路のブロックダイヤグラム 8.3 低消費電力モード制御レジスタ (LPMCR) 8.4 CPU 間欠動作モード 8.5 スタンバイモード 8.6 状態遷移図 8.7 スタンバイモードとリセット時の端子状態 8.8 低消費電力モード使用上の注意 129 第 8 章 低消費電力モード 低消費電力モードの概要 8.1 動作クロックの選択とクロックの動作制御による次のような CPU 動作モードを備え ています。 • クロックモード (PLL クロック , メインクロックの各モード ) • CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作の各モード ) • スタンバイモード ( スリープ , タイムベースタイマ , ストップの各モード ) ■ CPU 動作モードと消費電流 CPU 動作モードと消費電流の関係を 図 8.1-1 に示します。 図 8.1-1 CPU 動作モードと消費電流 消費電流 数十mA CPU 動作モード PLLクロックモード 8逓倍クロック 6逓倍クロック 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック PLLクロック間欠動作モード 8逓倍クロック 6逓倍クロック 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック メインクロックモード(1/2クロックモード) メインクロック間欠動作モード 数mA スタンバイモード スリープモード タイムベースタイマモード 数μA 低消費電力モード ストップモード (注意事項) この図は,各種モードのイメージを示したもので,実際の消費電流とは異なる部分があります。 130 第 8 章 低消費電力モード ■ クロックモード ● PLL クロックモード 発振クロック (HCLK) の PLL 逓倍クロックで CPU および周辺機能を動作させるモード です。 ● メインクロックモード 発振クロック (HCLK) の 2 分周クロックで CPU および周辺機能を動作させるモードで す。メインクロックモードでは , PLL 逓倍回路が停止します。 <参考> クロックモードについては , 「5.4 クロックモード」を参照してください。 ■ CPU 間欠動作モード 周辺機能には高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリ , 周辺機能および外 部アクセスを行う場合 , CPU にだけ間欠クロックを入力するモードです。 ■ スタンバイモード スタンバイモードは, 低消費電力制御回路によるCPUへのクロックの供給停止 (スリー プモード ) や , CPU と周辺機能へのクロックの供給停止 ( タイムベースタイマモード ) , または発振クロックの停止 ( ストップモード ) によって消費電力を低減します。 ● PLL スリープモード PLL スリープモードは , PLL クロックモードにおいて CPU の動作クロックを停止させ るモードで , CPU 以外は PLL クロックで動作します。 ● メインスリープモード メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止 させるモードで , CPU 以外はメインクロックで動作します。 ● タイムベースタイマモード タイムベースタイマモードは発振クロックとタイムベースタイマ以外の動作を停止さ せるモードで , タイムベースタイマと時計タイマ以外の機能が停止します。 メインタイムベースタイマモードと PLL タイムベースタイマモードは , ステータスが 異なることに注意してください。状態は , CKSCR の MCS ビットで選択されたクロッ クによります。図 8.6-1 を参照してください。 PLL タイムベースタイマモードでは , 消費電力が著しく高くなります。詳細は , データ シートを参照してください。 131 第 8 章 低消費電力モード ● ストップモード ストップモードは原発振を停止させるモードで , すべての機能が停止します。 <注意事項> ストップモードでは発振クロックが停止するため , 最も低消費電力でデータを保持できま す。 クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモードおよび 低消費電力モードへは切り換えないようにしてください。 切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え を行った場合 , 切り換わらない場合があります。 132 第 8 章 低消費電力モード 低消費電力制御回路のブロックダイヤグラム 8.2 低消費電力制御回路は , 次の 7 つのブロックで構成されています。 • CPU 間欠動作セレクタ • スタンバイ制御回路 • CPU クロック制御回路 • 周辺クロック制御回路 • 端子ハイインピーダンス制御回路 • 内部リセット発生回路 • 低消費電力モード制御レジスタ (LPMCR) ■ 低消費電力制御回路のブロックダイヤグラム 図 8.2-1 に , 低消費電力制御回路のブロックダイヤグラムを示します。 図 8.2-1 低消費電力制御回路のブロックダイヤグラム 低消費電力モード制御レジスタ (LPMCR) STP SLP SPL RST TMD CG1 CG0 RST Pin 間欠 サイクル セレクタ CPU 間欠動作 セレクタ 端子ハイインピー ダンス制御回路 端子ハイインピー ダンス制御 内部リセット 発生回路 内部リセット CPU クロック 制御回路 CPU クロック ストップ , スリープ信号 スタンバイ 制御回路 ストップ信号 割込み解除 周辺クロック 制御回路 発振安定待ち時間クリア マシンクロック 発振安定 待ち時間 セレクタ クロック 2 CS2 セレクタ PLL 制御 レジスタ (PSCCR):bit8 周辺クロック 2 PLL 逓倍回路 - MCM WS1 WS0 - MCS CS1 CS0 クロック選択レジスタ (CKSCR) メインクロック X0 Pin 2 分周 HCLK X1 Pin システムクロック 発生回路 1024 分周 2 分周 4 分周 4 分周 4 分周 2 分周 タイムベースタイマ ウォッチドッグタイマ 133 第 8 章 低消費電力モード ● CPU 間欠動作セレクタ CPU 間欠動作モードにおける一時停止クロック数を選択します。 ● スタンバイ制御回路 CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの 移行および解除を行います。 ● CPU クロック制御回路 CPU および周辺クロック制御回路周辺機能に供給するクロックを制御する回路です。 ● 周辺クロック制御回路 周辺機能に供給するクロックを制御する回路です。 ● 端子ハイインピーダンス制御回路 タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー ダンスにする回路です。プルアップオプションが選択された端子に対しては , ストップ モードではプルアップ抵抗を切り離します。 ● 内部リセット発生回路 内部リセット信号を発生させる回路です。 ● 低消費電力モード制御レジスタ (LPMCR) スタンバイモードへの移行 / 解除および CPU 間欠動作機能の設定などを行うレジスタ です。 134 第 8 章 低消費電力モード 低消費電力モード制御レジスタ (LPMCR) 8.3 低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除およ び CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを行 うレジスタです。 ■ 低消費電力モード制御レジスタ (LPMCR) 図 8.3-1 に , 低消費電力モード制御レジスタ (LPMCR) の構成を , 表 8.3-1 に各ビットの 機能を示します。 図 8.3-1 低消費電力モード制御レジスタ (LPMCR) の構成 アドレス bit15 0000A0H bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 (CKSCR) STP SLP SPL RST TMD CG1 CG0 RESV W W R/W W R/W R/W R/W R/W 初期値 00011000B 予約ビット RESV このビットへは必ず"0"を書き込んでください。 CG1 CG0 CPU一時停止クロック数選択ビット 0 0 0 1 8クロック(CPUクロック:周辺クロック=1:約3~4) 1 0 16クロック(CPUクロック:周辺クロック=1:約5~6) 1 1 32クロック(CPUクロック:周辺クロック=1:約9~10) 0クロック(CPUクロック=周辺クロック) タイムベースタイマモードビット TMD 0 タイムベースタイマモードに移行 1 変化なし,ほかへの影響なし RST 内部リセット信号発生ビット 0 3マシンサイクルの内部リセット信号を発生 1 変化なし,ほかへの影響なし SPL 0 保持 1 ハイインピーダンス SLP R/W W :リード/ライト可能 :ライトオンリ :初期値 端子状態指定ビット (タイムベースタイマ, ストップモード時) スリープモードビット 0 変化なし,ほかへの影響なし 1 スリープモードに移行 STP 0 1 ストップモードビット 変化なし,ほかへの影響なし ストップモードに移行 135 第 8 章 低消費電力モード 表 8.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明 ビット名 機 能 bit7 STP: ストップモード ビット • • • • • ストップモードへの移行を指示するビットです。 このビットに "1" を書き込むとストップモードへ移行します。 このビットに "0" を書き込んでも動作に影響しません。 リセット , または割込み要求発生で "0" にクリアされます。 このビットを読み出すと , 常に "0" が読み出されます。 bit6 SLP: スリープモード ビット • • • • • スリープモードへの移行を指示するビットです。 このビットに "1" を書き込むとスリープモードに移行します。 このビットに "0" を書き込んでも動作に影響しません。 リセット , または割込み要求発生で "0" にクリアされます。 このビットを読み出すと , 常に "0" が読み出されます。 bit5 SPL: 端子状態指定 ビット ( タイム ベースタイマ・ ストップモード 時) • このビットはタイムベースタイマモード , またはストップモードの場合 のみ有効です。 • このビットが "0" の場合 , 外部端子のレベルを保持します。 • このビットが "1" の場合 , 外部端子をハイインピーダンスにします。 • リセットで "0" に初期化されます。 bit4 RST: 内部リセット信 号発生ビット • このビットに "0" を書き込むと 3 マシンサイクルの内部リセット信号を 発生します。 • このビットに "1" を書き込んでも動作に影響しません。 • このビットを読み出すと , 常に "1" が読み出されます。 bit3 TMD: タイムベースタ イマモードビッ ト • タイムベースタイマモードへの移行を指示するビットです。 • メインクロックモード , または PLL クロックモードにおいて , このビッ トに "0" を書き込むことにより , タイムベースタイマモードに移行しま す。 • リセットまたは割込み要求発生で "1" に初期化されます。 • このビットを読み出すと , 常に "1" が読み出されます。 bit2, bit1 CG1, CG0: CPU クロック 一時停止サイク ル数選択ビット • CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設定する ビットです。 • 1 命令ごとに指定サイクル数 CPU クロック供給を停止します。 • 4 種類のクロック数から選択できます。 • リセットで "00B" に初期化されます。 bit0 RESV: 予約ビット このビットには必ず "0" を書き込んでください。 136 第 8 章 低消費電力モード ■ 低消費電力モード制御レジスタへのアクセス 低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス リープモード , タイムベースタイマモード ) へ遷移しますが , 低消費電力モードへの遷 移に使用する命令は 表 8.3-2 の命令を使用してください。 表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記 内の命令列 を配置してください。 MOV LPMCR, #H’XX NOP NOP JMP $+3 MOV A, #H’10 ; 表 8.3-2 の低消費電力モード遷移命令 ; 次の命令へのジャンプ ; 任意の命令 内の命令列以外が配置されると低消費電力モード解除後の動作は保証されません。 C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は , 「8.8 低消費 電力モード使用上の注意」の「■スタンバイモード遷移のための低消費電力モード制 御レジスタ (LPMCR) へアクセスする際の注意事項」を参照してください。 表 8.3-2 の命令以外の命令で低消費電力モードへ遷移した場合には , 動作保証ができま せん。表 8.3-1 に示す以外の機能を制御する場合には , どの命令を使用してもかまいま せん。 ワード長で低消費電力モード制御レジスタへ書き込む場合には偶数アドレスで書き込 むようにしてください。奇数アドレスで書込みを行うと , 誤動作の原因となる場合があ ります。 ● STP, SLP, TMD ビットの優先順位 ストップモード要求とスリープモード要求およびタイムベースタイマモード要求を同 時に行った場合は , 次の優先順位で要求を処理します。 ストップモード要求 > タイムベースタイマモード要求 > スリープモード要求 <注意事項> ストップモード , またはタイムベースタイマモードの周辺機能とポートが端子を共有して いるときに端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電力 モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0" に 設定する。 以下の端子に適用されます : P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/ OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1, P34/ SOT0, P35/SCK0 137 第 8 章 低消費電力モード 表 8.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+disp8, A MOVW @RLi+disp8, A 138 第 8 章 低消費電力モード 8.4 CPU 間欠動作モード CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作 させることで , 消費電力を低減するモードです。 ■ CPU 間欠動作モード CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM), I/O, 周辺機能および外部 バスアクセスを行う場合 , CPU に供給するクロックを 1 命令実行ごとに一定期間停止 させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック を供給したまま CPU の実行速度を下げると , 低消費電力で処理できます。 低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの 一時停止サイクル数を選択します。 外部バス動作そのものは , 周辺機能と同じクロックを使用します。 CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ , 内蔵周辺機能および外部バスアクセスを行う場合の命令実行回数に一時停止サイクル 数を掛けた補正値を通常の実行時間に加えることで求めることができます。図 8.4-1 に CPU 間欠動作モード時の動作クロックを示します。 図 8.4-1 CPU 間欠動作時のクロック 周辺クロック CPUクロック 一時停止サイクル 1命令実行 サイクル 内部バス起動 139 第 8 章 低消費電力モード スタンバイモード 8.5 スタンバイモードには , スリープ (PLL スリープ , メインスリープ ) , ストップの各 モードがあります。 ■ スタンバイモードの動作状態 表 8.5-1 に , スタンバイモードの動作状態を示します。 表 8.5-1 スタンバイモードの動作状態 スタンバイモード スリープ モード タイム ベース タイマ モード ストップ モード 移行条件 PLL スリープモード MCS=0 SLP=1 メインスリープ モード MCS=1 SLP=1 タイムベース タイマモード (SPL=0) TMD=0 メイン クロック マシン クロック 動作 動作 TMD=0 ストップモード (SPL=0) STP=1 ストップモード (SPL=1) STP=1 周辺 端子 動作 動作 解除方法 保持 動作 タイムベース タイマモード (SPL=1) CPU 停止 外部リセット または 割込み 停止 * Hi-Z 停止 保持 停止 停止 Hi-Z * : タイムベースタイマ , 時計タイマは動作します。 SPL : 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット SLP : 低消費電力モード制御レジスタ (LPMCR) のスリープビット STP : 低消費電力モード制御レジスタ (LPMCR) の時計ストップビット TMD : 低消費電力モード制御レジスタ (LPMCR) のタイムベースタイマモードビット MCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット Hi-Z : ハイインピーダンス <注意事項> ストップモード またはタイムベースタイマモードの周辺機能とポートが端子を共有して いるときに , 端子をハイインピーダンスにするには周辺機能の出力を禁止し , 低消費電力 モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0" に 設定してください。 以下の端子に適用されます : P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/ OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1, P34/ SOT0, P35/SCK0 140 第 8 章 低消費電力モード スリープモード 8.5.1 スリープモードは CPU の動作クロックを停止させるモードで , CPU 以外は動作を続 行します。低消費電力モード制御レジスタ (LPMCR) でスリープモードへの移行を指 示すると , PLL クロックモードを設定している場合は PLL スリープモードへ移行し , メインクロックモードを設定している場合はメインスリープモードへ移行します。 ■ スリープモードへの移行 低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1", TMD ビットに "1", STP ビットに "0" を書き込むとスリープモードに移行します。スリープモードに移行する 場合 , クロック選択レジスタ (CKSCR) が MCS=0 であれば PLL スリープモードに , MCS=1 であればメインスリープモードに移行します。 <注意事項> SLP ビットと STP ビットに同時に "1" を書き込むと , STP ビットを優先し , ストップモー ドへ移行します。SLP ビットに "1", TMD ビットに "0" を同時に書き込むと , TMD ビット を優先し , タイムベースタイマモードに移行します。 ● データ保持機能 スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を書き込んだ場合に , 割 込み要求が発生している場合はスリープモードに移行しません。そのため , CPU は割 込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込 み処理ルーチンへ分岐します。 ● 端子状態 スリープモード中は , 直前の状態を保持します。 141 第 8 章 低消費電力モード ■ スリープモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生によってスリープモードを 解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 ● 割込みによる復帰 スリープモード中に周辺回路などから割込みレベルが 7 より高い割込み要求が発生す るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同 じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ ベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設定によって , 割込みが 受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられない 場合は , スリープモードを指定した命令の次の命令から処理を続行します。 図 8.5-1 に , 割込み発生によるスリープモードの解除を示します。 図 8.5-1 割込み発生によるスリープモードの解除 周辺機能の割込み イネーブルフラグ設定 INT発生(IL<7) NO スリープ解除しない スリープ解除しない YES I=0 YES 次の命令実行 スリープ解除する NO ILM<IL YES 次の命令実行 NO 割込み実行 <注意事項> 割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した 後に割込み処理に移行します。ただし , スリープモードへの移行と外部バスホールド要求 の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあり ます。 142 第 8 章 低消費電力モード 8.5.2 タイムベースタイマモード タイムベースタイマモードは原発振とタイムベースタイマ , 時計タイマ以外の動作 を停止させるモードで , タイムベースタイマと時計タイマ以外のすべての機能が停 止します。 ■ タイムベースタイマモードへの移行 PLL クロックモード , またはメインクロックモードの場合に低消費電力モード制御レ ジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベースタイマモードに移 行します。 メインタイムベースタイマモードと PLL タイマベースタイマモードとの状態の差に注 意してください。 結果としての状態は , CKSCR の MCS ビットにより選択されたクロッ クに依存します。図 8.6-1 を参照してください。消費電力は PLL タイマベースタイマ モードで顕著に高くなります。規定値はデータシートを参照してください。 ● データ保持機能 タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内 容を保持します。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割 込み要求が発生しているときはタイムベースタイマモードに移行しません。 ● 端子状態 タイムベースタイマモード中の外部端子を直前の状態に保持するか , ハイインピーダ ンス状態にするかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で きます。 143 第 8 章 低消費電力モード ■ タイムベースタイマモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生でタイムベースタイマモー ドを解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 <注意事項> タイマベースタイマモード中に必ず RST 信号を 100 μs 以上入れてください。 ● 割込みによる復帰 割込みレベルが 7 より高い割込み要求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電力制御回路はタイムベースタイマモードを解除します。 タイムベースタイマモードの解除後は , 通常の割込み処理と同じ扱いとなります。コン ディションコードレジスタ(CCR)のIフラグ, インタラプトレベルマスクレジスタ(ILM) および割込み制御レジスタ (ICR) の設定により割込みが受け付けられる場合は , 割込み 処理を実行します。割込みが受け付けられない場合は , タイムベースタイマモードに入 る前の次の命令から処理を続行します。 <注意事項> 割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令 を実行した後に割込み処理に移行します。ただし , タイムベースタイマモードへの移行と 外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理 に移行することがあります。 割込みによるメインタイムベースタイマモードからの起動は , 最大 40 μs の内部の遅延と なります。タイムベースタイマモードの周辺機能とポートが端子を共有しているときに端 子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電力モード制御レ ジスタ (LPMCR) の TMD ビットを "0" に設定してください。 以下の端子に適用されます : P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/ OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1, P34/ SOT0, P35/SCK0 144 第 8 章 低消費電力モード ストップモード 8.5.3 ストップモードは原発振を停止させるモードで , すべての機能が停止します。した がって , 最も低消費電力でデータを保持できます。 ■ ストップモードへの移行 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むとストップ モードに移行します。 ● データ保持機能 ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込 み要求が発生しているときはストップモードに移行しません。 ● 端子状態の設定 ストップモード中の外部端子を直前の状態に保持するか , ハイインピーダンス状態に するかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。 ■ ストップモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生によりストップモードを解 除します。動作クロックの発振はストップモードからの復帰前に停止するので, 低消費 電力制御回路は発振安定待ち状態になり , その後 , ストップモードを解除します。 ● リセットによる復帰 リセット要因によるストップモード解除の場合は , ストップモードを解除した上で発 振安定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後 に実行されます。 <注意事項> RST 信号はストップモードで少なくとも 100 μs +発振子の発振時間+ 16 マシンサイクルを アサートされる必要があります。データシートの交流規格を参照してください。 ● 割込みによる復帰 ストップモード中に外部割込みから割込みレベルが 7 より高い割込み要求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電力制御回路はストップ モードを解除します。ストップモードの解除後は , クロック選択レジスタ (CKSCR) の WS1, WS0ビットで指定されたメインクロックの発振安定待ち時間を経過した後で, 通常 の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) を設定して 割込みが受け付けられる場合は割込み処理を実行します。割込みが受け付けられない場 合は , ストップモードに入る前の次の命令から処理を続行します。 145 第 8 章 低消費電力モード <注意事項> 割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行した 後に割込み処理に移行します。ただし , ストップモードへの移行と外部バスホールド要求 の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあり ます。 図 8.5-2 に , ストップモードからの復帰動作を示します。 図 8.5-2 ストップモードの解除 ( 外部リセット ) RST端子 ストップモード メインクロック 発振安定待ち 発振中 発振中 PLLクロック 停止中 停止中 CPUクロック メインクロック CPU動作 停止中 リセットシーケンス 処理 リセット解除 ストップモード解除 <注意事項> • ストップモードの周辺機能やポートによって端子が共用されるときに端子をハイイン ピーダンスに設定するには , 周辺機能の出力を禁止し , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" に設定してください。 これは以下の端子に適用します。 P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/ OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1, P34/SOT0, P35/SCK0 • PLL ストップモードでは , メインクロックと PLL 乗法回路が停止します。 クロック選択レジスタの発振安定待ち時間選択ビット(CKSCR:WS1, WS0)で指定され た値により , メインクロック , PLL クロックの発振安定待ち時間は同時にカウントされ ます。しかし , PLL クロック発振安定待ち時間は , 214/HCLK 以上必要になります。ク ロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) を "10B" また は "11B" に設定してください。 146 第 8 章 低消費電力モード 8.6 状態遷移図 図 8.6-1 に , MB90390 シリーズの S 動作状態の遷移図と , 遷移条件を示します。 ■ 状態遷移図 図 8.6-1 状態遷移図 外部リセット , ウォッチドッグタイマリセット , ソフトウェアリセット 電源投入 リセット パワーオンリセット 発振安定待ち時間終了 MCS=0 PLL クロック モード メインクロック モード MCS=1 SLP=1 割込み SLP=1 PLL スリープ モード メインスリープ モード TMD=0 割込み TMD=0 STP=1 メインストップ 割込み 割込み PLL タイムベース タイマモード メインタイムベース タイマモード STP=1 割込み 発振安定待ち時間終了 メインクロック 発振安定待ち PLL ストップ モード 割込み 発振安定待ち時間終了 PLL クロック 発振安定待ち 147 第 8 章 低消費電力モード ■ 低消費電力モードの動作状態 表 8.6-1 に , 低消費電力モードの動作状態を示します。 表 8.6-1 低消費電力モードの動作状態 動作状態 メイン クロック PLL クロック CPU 周辺 時計 タイムベース タイマ 動作 動作 クロック ソース 動作 PLL 動作 PLL スリープ 動作 動作 PLL タイムベース タイマ PLL クロック 停止 PLL ストップ 停止 停止 PLL 発振安定待ち 動作 動作 メイン 停止 停止 停止 動作 動作 動作 動作 動作 動作 メインスリープ 動作 メインタイムベース タイマ 停止 メインストップ 停止 メイン発振安定待ち 動作 パワーオンリセット 停止 停止 停止 動作 動作 動作 * 動作 * 停止 動作 リセット メイン クロック 停止 停止 動作 停止 メイン クロック *: リセットフェーズ中では , クロックとほぼ同じ速度で両タイマを駆動できます ( パワーオン直後は別 )。 リセットフェーズの終わりで , タイマ値は初期値にリセットされます。 148 第 8 章 低消費電力モード スタンバイモードとリセット時の端子状態 8.7 シングルチップモード時のスタンバイモードとリセット時の各入出力端子の状態を 示します。 ■ 入出力端子の状態 ( シングルチップモード ) 表 8.7-1 にシングルチップモード時の入出力端子の状態を示します。 表 8.7-1 入出力端子の状態 ( シングルチップモード ) スタンバイモード 端子名 ストップ / タイムベースタイマ時 リセット時 スリープ時 SPL = 0 SPL = 1 P00 ~ P07 P10 ~ P17 P20, P21 P30 ~ P37 P40 ~ P45 P50 ~ P57 P60 ~ P67 P70 ~ P77 入力遮断 *4/ 直前の状態を 保持 *2 入力遮断 *4/ 出力 Hi-Z*5 入力可能 *1/ 直前の状態を 保持 *2 入力可能 *1/ 出力 Hi-Z*5 影響なし 入力不可 *3/ 出力 Hi-Z*5 P80 ~ P87 P90 ~ P97 PA0 ~ PA7 PB0 ~ PB7 P46, P47, P22 ~ P27 *1: ENIR レジスタの関連するビットが "1" のときにのみ , これらの端子はストップモード / タイム ベースタイマモード時で入力可能です。 *2: 各スタンバイモードになる直前に出力していた状態をそのまま出力 , または入力であれば入力不可を意味 します。 *3: 入力不可とは , 入力 端子に接地したゲートは機能しているが内部回路が機能していないので , 入力信号内 部回路で受け付けられない状態を意味します。 *4: 入力遮断状態では入力はマスクされ ,"L" レベルが内部に伝わります。 *5: 出力 Hi-Z は端子駆動用トランジスタを駆動禁止状態にして , 端子をハイインピーダンスにすることを意味 します。 149 第 8 章 低消費電力モード 8.8 低消費電力モード使用上の注意 低消費電力モードを使用する場合には , 次の 7 つの内容に関して注意が必要です。 • スタンバイモードへの移行と割込み • スタンバイモード移行時の注意について • スタンバイモードの割込みによる解除 • ストップモード解除時 • 発振安定待ち時間 • クロックモードの切換え • スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアク セスする際の注意事項 ■ スタンバイモードへの移行と割込み 周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ スタ (LPMCR:STP=1, SLP=1) または (LPMCR:TMD=0) としても無視されるため , 各ス タンバイモードへは移行しません (割込み処理後にも , スタンバイモードへの移行はし ません ) 。この場合 , 割込みレベルが 7 より高ければ , 割込み要求が CPU に受け付け られるかどうかには関係しません。また , CPU が割込み処理中であっても , その割込み 要求フラグビットがクリアされており , ほかに割込み要求がなければスタンバイモー ドへ移行できます。 ■ スタンバイモード移行時の注意について ストップモードもしくはタイムベースタイマモードの周辺機能とポートが端子を共有 しているときに端子をハイインピーダンスにするには , 以下の項目を実行してくださ い。 • 周辺機能の出力を禁止する 。 • 低消費電力モード制御レジスタ (LPMCR) では , SPL ビットを "1", STP ビットを "1" もしくは TMD ビットを "0" に設定する。 ■ スタンバイモードの割込みによる解除 スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ ベルが 7 より高い割込み要求が発生するとスタンバイモードは解除されます。これは CPU が割込みを受け付けるかどうかには関係しません。 スタンバイモード解除後は , 通常の割込み動作として割込み要求に対応する割込みレ ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ (ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1) されている場合は割込み処理ルーチンへ分岐します。 割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から 動作を再開します。 割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実 行した後に割込み処理に移行します。ただし, スタンバイモードに移行した場合の条件 によっては , 次の命令を実行する前に割込み処理に移行することがあります。 150 第 8 章 低消費電力モード <注意事項> 復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前に割込 み禁止をするなどの対策が必要です。 ■ ストップモード解除時 ストップモードに入る前に外部割込みの割込み入力要因の設定に従った入力により解 除できます。入力要因として "H" レベル , "L" レベル , 立上りエッジ , 立下りエッジを 選択できます。 ■ 発振安定待ち時間 ● 発振クロック発振安定待ち時間 ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間を確保 する必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで選択された時間を確保します。WS1, WS0 ビットに "00B" を設定す るのは , メインクロックモードの場合のみにしてください。 ● PLL クロック発振安定待ち時間 メインクロックモード中は PLL 逓倍回路が停止しているため , PLL クロックモードに 移行する場合は , PLL クロック発振安定待ち時間を確保する必要があります。 PLL ストップモード中はメインクロックおよび PLL 逓倍回路が停止しているため , PLL ストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL ク ロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定され た値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち時間 を同時にカウントしますので , CKSCR:WS1, WS0 ビットは発振安定待ち時間の長い方 に合わせて値を設定してください。ただし, PLLクロック発振安定待ち時間は214/HCLK 以上必要になりますので , CKSCR:WS1, WS0 ビットには "10B" または "11B" を設定して ください。 ■ クロックモードの切換え クロックモードを切り換えた場合 , 切換えが完了するまでは低消費電力モードへの切 換えおよびほかのクロックモードへの切換えを行わないようにしてください。切換え の完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくださ い。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え を行った場合 , 切り換わらない場合があります。 ■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ スする際の注意事項 ● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を 行う場合は , 表 8.3-2 の命令を使用してください。 151 第 8 章 低消費電力モード 表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記 を配置してください。 MOV LPMCR, #H’XX 内の命令列 ; 表 8.3-2 の低消費電力モード遷移命令 NOP NOP JMP $+3 ; 次の命令へのジャンプ MOV A, #H’10 ; 任意の命令 内の命令列以外が配置されると低消費電力モード解除後の動作は保証されません。 ● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を 行う場合は , 以下の 1 から 3 のいずれかの方法でアクセスしてください。 1. スタンバイモードに遷移させる命令を関数化し , スタンバイモード遷移命令の後に __wait_nop() のビルトイン関数を 2 個挿入してください。関数内でスタンバイ復帰 の割込み以外の割込みが発生する可能性がある場合は , コンパイル時に最適化を実 施し , LINK/UNLINK 命令の発生を抑止してください。 例 ( タイムベースタイマモード遷移関数の場合 ) void enter_timebase(){ IO_LPMCR.byte = 0x10; /* LPMCR の TMD ビットに "0" をセット */ __wait_nop(); __wait_nop(); } 2. スタンバイモードに遷移させる命令を __asm 文で記述し , スタンバイモード遷移命 令の後に 2 個の NOP と JMP 命令を挿入してください。 例 ( スリープモード遷移の場合 ) __asm(" __asm(" __asm(" MOV I:_IO_LPMCR, #H’58); NOP"); NOP"); __asm(" JMP $+3"); /* LPMCRのSLPビットに"1"をセット */ /* 次の命令へのジャンプ * 3. スタンバイモードに遷移させる命令を #pragma asm ~ #pragma endasm 間に記述し , スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。 例 ( ストップモード遷移の場合 ) #pragma asm MOV I:_IO_LPMCR, #H’98 NOP NOP JMP $+3 #pragma endasm 152 /* LPMCR の STP ビットに "1" をセット */ /* 次の命令へのジャンプ */ 第9章 メモリアクセスモード メモリアクセスモードの機能と動作について説明 します。 9.1 メモリアクセスモードの概要 9.2 メモリアクセスモードのモード端子 9.3 メモリアクセスモードのモードデータ 153 第 9 章 メモリアクセスモード 9.1 メモリアクセスモードの概要 F2MC-16LX では , アクセス方式 , アクセス領域のそれぞれについて , 次の 2 種類の メモリアクセスモードがあります。 ・動作モード ・バスモード ■ メモリアクセスモード 図 9.1-1 メモリアクセスモード 動作モード ○ RUN バスモード シングルチップ ○ フラッシュメモリモード MB90390 シリーズについては , 外部バス機能はサポートされていません。このため , 本 マニュアルの下記の記述は完全にはサポートされていません。お客様がご使用の際に は , MB90390 シリーズをシングルチップモードで使用してください。 MB90390 シリーズをシングルチップモードに設定するには , モード入力 (MD2 ~ MD0) を "011B" にし , モードデータの最大有効 2 ビット (M1, M0) を "00B" にする必要があり ます。 ● 動作モード 動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端 子 (MDx) とモードデータ内の M1, M0 ビットで指定します。 ● バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す もので , モード設定用端子 (MDx) とモードデータ内の M1, M0 ビットの内容で指定し ます。モード設定用端子 (MDx) は , リセットベクタおよびモードデータを読み出すと きのバスモードを指定するもので , モードデータ内の M1, M0 ビットは通常動作時のバ スモードを指定するものです。 154 第 9 章 メモリアクセスモード メモリアクセスモードのモード端子 9.2 MD2 ~ MD0 の 3 本の外部端子の設定の組合せによってモードの指定ができます。 ■ モード端子 表 9.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 *2 ― ― ― 1 1 1 フラッシュメモリ モード *2 ― ― パラレルライタ使用時の モード ( 設定禁止 ) 予約 内部ベクタモード 内部 ( モード データ ) リセットシーケンス以降 はモードデータで制御 ( 設定禁止 ) 予約 *1: フラッシュメモリのシリアル書込みは , モード端子の設定だけでは書込みができません。ほかの端 子設定も必要です。 詳細はフラッシュメモリのシリアルプログラミング接続例を参照してください。 *2: MB90V390H/MB90V390HA/MB90V390HB/MB90394HA は設定禁止です。 155 第 9 章 メモリアクセスモード 9.3 メモリアクセスモードのモードデータ 主記憶 "FFFFDFH" に置く CPU の動作制御用のデータです。リセットシーケンス実 行中にこのデータを取り込み , デバイス内部のモードレジスタに格納します。モー ドレジスタの内容を変更できるのはリセットシーケンスだけです。 本レジスタによる設定はリセットシーケンス以降に有効となります。 予約ビットは , 必ず "0" を設定してください。 ■ モードデータ 図 9.3-1 に , モードデータの設定を示します。 図 9.3-1 モードデータ構成 bit 7 6 5 4 3 2 1 0 モードデータ M1 M0 0 0 0 0 0 0 機能拡張ビット(予約領域) バスモード設定ビット ■ バスモード設定ビット リセットシーケンス終了後の動作モードの指定を行うビットです。表 9.3-1 に , ビット と機能との関係を示します。 表 9.3-1 バスモード設定ビットと機能 156 M1 M0 0 0 0 1 1 0 1 1 機能 シングルチップモード ( 設定禁止 ) ( 設定禁止 ) 第 9 章 メモリアクセスモード 図 9.3-2 に , 各バスモードのアクセス領域と物理アドレスとの対応関係を示します。 図 9.3-2 各バスモードのアクセス領域と物理アドレス FFFFFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H FCFFFFH FC0000H FBFFFFH FB0000H FAFFFF H FA0000 H F9FFFFH ROM (FF バンク ) ROM (FE バンク ) ROM (FD バンク ) ROM (FC バンク ) ROM (FB バンク ) ROM (FA バンク ) ROM (F9 バンク ) F90000H 00FFFFH 008000H 0050FFH 004100H 003FFFH ROM (FF バンクの イメージ ) RAM 4K バイト 周辺 003500H 0030FFH RAM 12K バイト 000100H 0000BFH 000000H : アクセス禁止 周辺 : 内部アクセス <注意事項> 異なるアクセス領域を証明している例です。特殊なデバイスは , このマップと異なること があります。データシートまたは「2.3 メモリ空間マップ」を参照してください。 157 第 9 章 メモリアクセスモード ■ 推奨設定例 表 9.3-2 に , モード端子とモードデータの推奨設定例を示します。 表 9.3-2 モード端子とモードデータの推奨設定例 設定例 シングルチップ MD2 MD1 MD0 M1 M0 0 1 1 0 0 <注意事項> Flash 品については , ハードワイヤードロジックによりモードデータにあらかじめ決めら れた値が設定されています。詳細については , 「28.9 フラッシュメモリにおけるリセッ トベクタアドレス」を参照してください。 158 第 10 章 I/O ポート I/O ポートの機能と動作について説明します。 10.1 I/O ポート 10.2 I/O ポートのレジスタ 159 第 10 章 I/O ポート 10.1 I/O ポート それぞれのポートの各端子は , 対応する周辺が端子を用いない設定となっていると き , 1 本ごとに方向レジスタを設定することにより , 入力 , 出力の指定ができます。 入力端子として指定した場合 , 端子の論理レベルが読み出され , 出力端子として指定 した場合 , データレジスタ値が読み出されます。これは , リードモディファイライト (RMW) 系命令の読出しにも適用されます。 ■ I/O ポート I/O ポートでは , ポート 0 ~ポート 3 についてのみは , 周辺信号の出力を許可する場合 , ポート方向レジスタの対応するビットを "1" に設定する必要があります。 周辺回路の出力として使用している場合にデータレジスタを読み出したときは , 方向 レジスタの値に関係なく , 制御出力として出力しているものが読み出されます。 一般的には , ポートを出力に設定する前に , データレジスタの設定にリードモディファ イライト (RMW) 系命令を使用しないことが推奨されます。それは , リードモディファ イライト(RMW)系命令によってレジスタ値ではなくポートの論理レベルが読み出され るからです。 図 10.1-1 に , I/O ポートのブロックダイヤグラムを示します。 図 10.1-1 I/O ポートのブロックダイヤグラム 内部データバス データレジスタ リード データレジスタ データレジスタ ライト 方向レジスタ 方向レジスタ ライト 方向レジスタ リード 160 端子 第 10 章 I/O ポート 10.2 I/O ポートのレジスタ I/O ポートのレジスタには , 次の 4 種類があります。 • ポートデータレジスタ (PDR0 ~ PDRB) • ポート方向レジスタ (DDR0 ~ DDRB) • ポートアナログ入力許可レジスタ (ADER) • 入力レベル選択レジスタ (ILSR) ■ I/O ポートのレジスタ 図 10.2-1 に , I/O ポートのレジスタを示します。 図 10.2-1 I/O ポートのレジスタ アドレス 000000H 000001H 000002H 000003H 000004H 000005H 000006H 000007H 000008H 000009H 00000AH 00000BH bit 7 P07 P17 P27 P37 P47 P57 P67 P77 P87 P97 PA7 PB7 6 P06 P16 P26 P36 P46 P56 P66 P76 P86 P96 PA6 PB6 5 P05 P15 P25 P35 P45 P55 P65 P75 P85 P95 PA5 PB5 4 P04 P14 P24 P34 P44 P54 P64 P74 P84 P94 PA4 PB4 3 P03 P13 P23 P33 P43 P53 P63 P73 P83 P93 PA3 PB3 2 P02 P12 P22 P32 P42 P52 P62 P72 P82 P92 PA2 PB2 1 P01 P11 P21 P31 P41 P51 P61 P71 P81 P91 PA1 PB1 0 P00 P10 P20 P30 P40 P50 P60 P70 P80 P90 PA0 PB0 ポート 0 データレジスタ (PDR0) ポート 1 データレジスタ (PDR1) ポート 2 データレジスタ (PDR2) ポート 3 データレジスタ (PDR3) ポート 4 データレジスタ (PDR4) ポート 5 データレジスタ (PDR5) ポート 6 データレジスタ (PDR6) ポート 7 データレジスタ (PDR7) ポート 8 データレジスタ (PDR8) ポート 9 データレジスタ (PDR9) ポート A データレジスタ (PDRA) ポート B データレジスタ (PDRB) 000010H 000011H 000012H 000013H 000014H 000015H 000016H 000017H 000018H 000019H 00001AH 00001BH D07 D17 D27 D37 D47 D57 D67 D77 D87 D97 DA7 DB7 D06 D16 D26 D36 D46 D56 D66 D76 D86 D96 DA6 DB6 D05 D15 D25 D35 D45 D55 D65 D75 D85 D95 DA5 DB5 D04 D14 D24 D34 D44 D54 D64 D74 D84 D94 DA4 DB4 D03 D13 D23 D33 D43 D53 D63 D73 D83 D93 DA3 DB3 D02 D12 D22 D32 D42 D52 D62 D72 D82 D92 DA2 DB2 D01 D11 D21 D31 D41 D51 D61 D71 D81 D91 DA1 DB1 D00 D10 D20 D30 D40 D50 D60 D70 D80 D90 DA0 DB0 ポート 0 方向レジスタ (DDR0) ポート 1 方向レジスタ (DDR1) ポート 2 方向レジスタ (DDR2) ポート 3 方向レジスタ (DDR3) ポート 4 方向レジスタ (DDR4) ポート 5 方向レジスタ (DDR5) ポート 6 方向レジスタ (DDR6) ポート 7 方向レジスタ (DDR7) ポート 8 方向レジスタ (DDR8) ポート 9 方向レジスタ (DDR9) ポート A 方向レジスタ (DDRA) ポート B 方向レジスタ (DDRB) bit15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 00000CH ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 00000DH ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8 ポート 6 アナログ入力許可レジスタ (ADER0) 00000EH 00000FH 入力レベル選択レジスタ (ILSR) 入力レベル選択レジスタ (ILSR) IL7 IL6 IL5 IL4 ILSPB ILI2C ILRX0 ILRX1 IL3 ILB IL2 ILA IL1 IL9 IL0 IL8 ポート B アナログ入力許可レジスタ (ADER1) 161 第 10 章 I/O ポート 10.2.1 ポートデータレジスタ I/O ポートの読出し / 書込みは , メモリへの読出し / 書込みとは多少動作が異なりま すので注意してください。 [ 入力モード ] 読出し時 : 対応する端子のレベルが読み出されます。 書込み時 : 出力用のラッチに書き込まれます。 [ 出力モード ] 読出し時 : データレジスタラッチの値が読み出されます。 書込み時 : 出力ラッチに書き込まれ , 対応する端子に出力されます。 ■ ポートデータレジスタ 図 10.2-2 に , ポートデータレジスタを示します。 図 10.2-2 ポートデータレジスタ bit 7 アドレス : 000000H P07 6 P06 5 P05 4 P04 3 P03 2 P02 1 P01 0 P00 初期値 アクセス XXXXXXXXB R/W PDR1 7 P17 6 P16 5 P15 4 P14 3 P13 2 P12 1 P11 0 P10 XXXXXXXXB R/W 7 6 5 4 3 2 1 0 アドレス : 000002H P27 P26 P25 P24 P23 P22 P21 P20 XXXXXXXXB R/W PDR3 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 XXXXXXXXB R/W 7 6 5 4 3 2 1 0 P47 P46 P45 P44 P43 P42 P41 P40 XXXXXXXXB R/W PDR0 アドレス : 000001H PDR2 アドレス : 000003H PDR4 アドレス : 000004H PDR5 7 6 5 4 3 2 1 0 アドレス : 000005H P57 P56 P55 P54 P53 P52 P51 P50 XXXXXXXXB R/W PDR6 7 P67 6 P66 5 P65 4 P64 3 P63 2 P62 1 P61 0 P60 XXXXXXXXB R/W XXXXXXXXB R/W XXXXXXXXB R/W アドレス : 000006H PDR7 アドレス : 000007H PDR8 アドレス : 000008H PDR9 7 6 5 4 3 2 1 0 P77 P76 P75 P74 P73 P72 P71 P70 7 6 5 4 3 2 1 0 P87 P86 P85 P84 P83 P82 P81 P80 7 6 5 4 3 2 1 0 アドレス : 000009H P97 P96 P95 P94 P93 P92 P91 P90 XXXXXXXXB R/W PDRA 7 PA7 6 PA6 5 PA5 4 PA4 3 PA3 2 PA2 1 PA1 0 PA0 XXXXXXXXB R/W 7 6 5 4 3 2 1 0 PB6 PB5 PB4 PB3 PB2 PB1 PB0 XXXXXXXXB R/W アドレス : 00000AH PDRB アドレス : 00000BH PB7 R/W: リード / ライト可能 162 第 10 章 I/O ポート ■ ポートデータレジスタの読出し ポートデータレジスタを読み出したときに得られる値は , データ方向レジスタの対応 するビットと ( 適切ならば ) 同じ端子に接続されているリソースの状態によります。 可能なケースは以下のとおりです。 DDR 値 リソース 読出し値 0( 入力 ) 可能 リソースの値 1( 出力 ) 可能 リソースの値 0( 入力 ) 不可 端子の値 1( 出力 ) 不可 PDR の値 163 第 10 章 I/O ポート 10.2.2 データ方向レジスタ データ方向レジスタは , 各端子がポートとして機能しているときは , 対応する各端子 を以下のように制御します。 0: 入力モード 1: 出力モード ■ データ方向レジスタ 図 10.2-3 に , データ方向レジスタを示します。 図 10.2-3 データ方向レジスタ bit 7 DDR0 アドレス : 000010H DDR1 アドレス : 000011H DDR2 アドレス : 000012H DDR3 アドレス : 000013H DDR4 アドレス : 000014H DDR5 アドレス : 000015H DDR6 アドレス : 000016H DDR7 アドレス : 000017H DDR8 アドレス : 000018H DDR9 アドレス : 000019H DDRA アドレス : 00001AH DDRB アドレス : 00001BH D07 6 5 4 3 2 1 0 D06 D05 D04 D03 D02 D01 D00 7 6 5 4 3 2 1 0 D17 D16 D15 D14 D13 D12 D11 D10 7 6 5 4 3 2 1 0 D27 D26 D25 D24 D23 D22 D21 D20 7 6 5 4 3 2 1 0 D37 D36 D35 D34 D33 D32 D31 D30 7 6 5 4 3 2 1 0 D47 D46 D45 D44 D43 D42 D41 D40 7 6 5 4 3 2 1 0 D57 D56 D55 D54 D53 D52 D51 D50 7 6 5 4 3 2 1 0 D67 D66 D65 D64 D63 D62 D61 D60 7 6 5 4 3 2 1 0 D77 D76 D75 D74 D73 D72 D71 D70 7 6 5 4 3 2 1 0 D87 D86 D85 D84 D83 D82 D81 D80 7 6 5 4 3 2 1 0 D97 D96 D95 D94 D93 D92 D91 D90 7 6 5 4 3 2 1 0 DA7 DA6 DA5 DA4 DA3 DA2 DA1 DA0 7 6 5 4 3 2 1 0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 初期値 00000000B アクセス 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 00000000B R/W 00000000B R/W R/W R/W: リード / ライト可能 ■ データ方向レジスタの読出し データ方向レジスタは , 一致するリソースの状態から独立して読出しが可能です。しか し , DDR 値はポートデータレジスタの読出しアクセスの結果に影響を与えます。 164 第 10 章 I/O ポート アナログ入力許可レジスタ 10.2.3 アナログ入力許可レジスタは , ポート 6 とポート B の各端子を以下のように制御し ます。 0: ポート入出力モード 1: アナログ入力モード 外部端子を A/D コンバータのアナログ入力として使用している場合 , 対応するビッ トを "1" に設定する必要があります。 ■ アナログ入力許可レジスタ 図 10.2-4 に , アナログ入力許可レジスタを示します。 図 10.2-4 アナログ入力許可レジスタ 13 12 11 10 9 8 アドレス bit15 14 00000DH ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8 00000CH R/W R/W R/W R/W R/W R/W R/W R/W 0 1 1 1 1 1 1 1 初期値 7 6 5 4 3 2 1 0 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 ADER1/ ADER0 R/W R/W R/W R/W R/W R/W R/W R/W 1 1 1 1 1 1 1 1 R/W: リード / ライト可能 <注意事項> bit15 (ADSEL) が "0" に設定されると , 端子 AN0 ~ AN7 ( ポート P60 ~ P67) は A/D コン バータ用入力として選択されます。このビットが "1" に設定されると , 端子 AN8 ~ AN14 ( ポート PB0 ~ PB6) は A/D コンバータ用入力として選択されます。 165 第 10 章 I/O ポート 10.2.4 入力レベル選択レジスタ 入力レベル選択レジスタにより , Automotive 入力レベルから CMOS ヒステリシス 入力レベルに設定を変更できます。 ■ 入力レベル選択レジスタ 入力レベル選択レジスタ (ILSR) はアドレス "0EH" と "0FH" にあります。 図 10.2-5 入力レベル選択レジスタ (ILSR) 13 12 11 10 9 8 アドレス bit15 14 00000FH ILSPB ILI2C ILRX0 ILRX1 ILB ILA IL9 IL8 00000EH 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 4 3 2 1 0 IL7 IL6 IL5 IL4 IL3 IL2 IL1 IL0 ILSR 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: リード / ライト可能 [bit15] ILSPB ILSPB ビットを "0" に設定する場合は , P44/SPB の入力レベルは IL4 (ILSR の 4 ビッ ト図 ) で選択できます。ILI2C ビットを "1" に設定する場合は , P44/SPB の入力レベ ルは IL4 ビットで選択されたものの反転になります。初期値は "0" です。このレジ スタの初期値は "0000H" です。このため , リセット後は全ポート Automotive 入力レ ベルになります。 [bit14] ILI2C ILI2C ビットを "0" に設定する場合は , P42/SDA と P43/SCL の入力レベルは IL4 (ILSR の 4 ビット図 ) で選択できます。ILI2C ビットを "1" に設定する場合は , P42/SDA と P43/SCL の入力レベルは IL4 ビットで選択されたものの反転になります。初期値は "0" です。 [bit13] ILRX0 ILRX0 ビットを "0" に設定する場合は , P30/RX0 の入力レベルは IL3 (ILSR の 3 ビッ ト図 ) で選択できます。ILRX0 ビットを "1" に設定する場合は , P30/RX0 の入力レベ ルは IL2 ビットで選択されたものの反転になります。初期値は "0" です。 [bit12] ILRX1 ILRX1 ビットを "0" に設定する場合は , P21/RX1 の入力レベルは IL2 (ILSR の 2 ビッ ト図 ) で選択できます。ILRX1 ビットを "1" に設定する場合は , P21/RX1 の入力レベ ルは IL2 ビットで選択されたものの反転になります。初期値は "0" です。 [bit11 ~ bit0] ILB ~ IL0 これらのビットは , 対応するポートの入力レベルを選択するビットです。IL0 はポー ト 0 入力レベルを設定し , ILB はポート B の入力レベルを設定します。 "0" に設定した場合:Automotive 入力レベルになります。 "1" に設定した場合:CMOS ヒステリシス入力レベルになります。 これらのビットの初期値は "0" です。 166 第 11 章 タイムベースタイマ タイムベースタイマの機能と動作について説明し ます。 11.1 タイムベースタイマの概要 11.2 タイムベースタイマ制御レジスタ 11.3 タイムベースタイマの動作 167 第 11 章 タイムベースタイマ 11.1 タイムベースタイマの概要 タイムベースタイマは , システムクロックを分周する 18 ビットのタイムベースカウ ンタと制御レジスタにより構成されます。タイムベースタイマは , タイムベースカ ウンタの桁上り信号により指定したインターバルで割込みを発生します。 ■ タイムベースタイマの概要 パワーオン時 , タイムベースカウンタはストップモードを設定するかまたはソフト ウェア (TBR ビットへの "0" の書込み ) によりすべてゼロにクリアされます。原発振が 入力されている間 , タイムベースカウンタはインクリメントされます。 タイムベースカウンタは , ウォッチドッグタイマのクロック供給 , 発振安定待ち時間の ためのタイマとして使用できます。 ■ タイムベースタイマのブロックダイヤグラム 図 11.1-1 に , タイムベースタイマのブロックダイヤグラムを示します。 図 11.1-1 タイムベースタイマのブロックダイヤグラム WTE 出力許可 WT1 WT0 リセット リセット コントロール 2ビット カウンタ セレクタ タイムベースカウンタ 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 168 1/210 ~ 1/217 セレクタ TBOF クリア EI2OS タイムベース分周出力 発振安定待ち完了信号 IRQ 第 11 章 タイムベースタイマ タイムベースタイマ制御レジスタ 11.2 タイムベースタイマ制御レジスタはタイムベースタイマの割込みの制御を行い , タ イムベースカウンタをクリアできます。 ■ タイムベースタイマ制御レジスタ (TBTC) 図 11.2-1 タイムベースタイマ制御レジスタの構成 アドレス 15 14 13 0000A9 H 予約 - - R/W - - R/W R/W W R/W R/W 12 11 10 9 初期値 8 1XX00100B TBIE TBOF TBR TBC1 TBC0 bit9 bit8 TBC1 TBC0 0 0 0 1 1 0 1 1 タイムベースタイマインターバル制御 1.024 ms (4 MHz 時 ) 4.096 ms (4 MHz 時 ) 16.384 ms (4 MHz 時 ) 131.072 ms (4 MHz 時 ) bit10 タイムベースタイマリセット TBR 0 1 読出し時 常に "1" 書込み時 全ビットを "0" にクリア 効果なし bit11 TBOF 0 1 タイムベースタイマ割込み要求フラグ 読出し時 書込み時 割込みなし このビットをクリア 効果なし 割込み要求 bit12 TBIE 0 1 タイムベースタイマ割込み許可 割込み禁止 割込み許可 bit13 - 未定義 - bit14 - 未定義 - bit15 Reserved R/W W X - リード / ライト可能 ライトオンリ ( 読出し値は常に "0") 不定 未定義 : 初期値 : : : : 0 1 予約 - このビットには常に "1" を書き込んでください 169 第 11 章 タイムベースタイマ 表 11.2-1 タイムベースタイマ制御レジスタのビット機能説明 ビット名 機能 予約済みビットです。TBTC レジスタにデータを書き込むときは , 必ず "1" を書き込んでください。 bit15 予約ビット bit14 未定義ビット - bit13 未定義ビット - bit12 TBIE タイムベースタイマによるインターバル割込みを許可するビットです。"1" のとき割込み許可 , "0" のとき割込みを禁止します。リセットにより "0" に 初期化します。読み書き可能なビットです。 TBOF タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のときに TBOF が "1" になると割込み要求を発生します。TBC1, TBC0 ビットで設定 されたインターバルごとに "1" にセットされます。"0" の書込み , ストップ モードへの遷移およびリセットによりクリアされます。"1" の書込みは意 味がありません。 リードモディファイライト (RMW) 系命令における読出し時には "1" が読め ます。 bit10 TBR タイムベースカウンタを全ビット "0" にクリアするビットです。"0" を書き 込むことによりタイムベースカウンタをクリアします。"1" の書込みは意 味がありません。 読出し時は "1" が読めます。 bit9, bit8 TBC1/TBC0 タイムベースタイマのインターバルを設定するビットです。表 11.2-2 を参 照してください。 bit11 表 11.2-2 タイムベースタイマインターバルの選択 170 TBC1 TBC0 原発振 4MHz 時のインターバル時間 0 0 1.024ms 0 1 4.096ms 1 0 16.384ms 1 1 131.072ms 第 11 章 タイムベースタイマ 11.3 タイムベースタイマの動作 タイムベースタイマには , ウォッチドッグタイマのクロックソース , 発振安定待ち時 間のためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり ます。 ■ タイムベースカウンタ タイムベースカウンタは , 原発振入力を 2 分周して発生させたクロック用の 18 ビット のカウンタにより構成されます。このクロックは , マシンクロックを発生するために使 用されます。原発振が入力されている間 , タイムベースカウンタはカウント動作を続け ます。タイムベースカウンタのクリアは , パワーオンリセット , ストップモードへの遷 移または TBTC レジスタ中の TBR ビットへの "0" の書込みにより行われます。 ■ インターバル割込み機能 タイムベースカウンタの桁上り信号により一定周期で割込みを発生します。TBTC レ ジスタ中の TBC1, TBC0 ビットで設定されるインターバル時間ごとに TBOF フラグを セットします。このフラグの書込みは , 最後にタイムベースタイマがクリアされた時間 を基準にして行われます。 ストップモードに遷移すると , タイムベースタイマは復帰時の発振安定待ち時間のタ イマとして使用されるので , TBOF フラグはモード遷移と同時にクリアされます。 171 第 11 章 タイムベースタイマ 172 第 12 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明 します。 12.1 ウォッチドッグタイマの概要 12.2 ウォッチドッグタイマの動作 173 第 12 章 ウォッチドッグタイマ 12.1 ウォッチドッグタイマの概要 ウォッチドッグタイマは , 18 ビットのタイムベースカウンタの桁上がり信号をク ロックソースとする 2 ビットのウォッチドッグカウンタ , 制御レジスタ , ウォッチ ドッグリセット制御部により構成されています。 ■ ウォッチドッグタイマのブロックダイヤグラム 図 12.1-1 に , ウォッチドッグタイマのブロックダイヤグラムを示します。 図 12.1-1 ウォッチドッグタイマのブロックダイヤグラム ウォッチドッグタイマ制御レジスタ (WDTC) PONR WRST ERST SRST WTE WT1 WT0 ウォッチドッグタイマ 2 起動 リセット発生 スリープモード タイムベースタイマモード ストップモード カウント クロック セレクタ カウンタ クリア 制御回路 終了 リセット発生 ウォッチドッグ リセット 発生回路 2ビット カウンタ 内部リセット 発生回路 クリア 4 (タイムベースタイマカウンタ) メインクロック (HCLK の2分周) HCLK : 発振クロック 174 21 22 28 29 210 211 212 213 214 215 216 217 218 第 12 章 ウォッチドッグタイマ ■ ウォッチドッグタイマ制御レジスタ (WDTC) WDTC bit7 アドレス : 0000A8H PONR R bit6 - - bit5 bit4 WRST ERST R R bit3 bit2 bit1 bit0 SRST R WTE W WT1 W WT0 W 初期値 XXXXX111B [bit7, bit5 ~ bit3] PONR, WRST, ERST, SRST リセットの要因を示すフラグです。各種リセット要因が発生すると , 本ビットは表 12.1-1 のように設定されます。 これらのビットはすべて WDTC の読出し動作後に "0" にクリアされます。読出し専 用のビットです。 表 12.1-1 リセット要因レジスタ リセット要因 PONR WRST ERST SRST パワーオン 1 ⎯ ⎯ ⎯ ウォッチドッグタイマ * 1 * * 外部端子 * * 1 * RST ビット * * * 1 *: 前の値の保持を示します。 [bit2] WTE ウォッチドッグタイマが停止状態のときに本ビットに "0" を書き込むことにより , ウォッチドッグタイマを動作状態にします。また , "0" の書込みはウォッチドッグカ ウンタをクリアします。"1" の書込みは何の操作もしません。 ウォッチドッグタイマは , パワーオン , ウォッチドッグタイマによるリセットによ り停止状態となります。読出し時は "1" が読み出されます。 [bit1, bit0] WT1, WT0 ウォッチドッグタイマのインターバル時間を選択するビットです。ウォッチドッグ タイマ起動時に書き込まれたデータのみが有効です。ウォッチドッグタイマ起動時 以外の書込みデータは無視します。 表 12.1-2 に , インターバル時間の設定を示します。 これらのビットは書込み可能なビットです。 175 第 12 章 ウォッチドッグタイマ 表 12.1-2 ウォッチドッグタイマインターバル選択ビット インターバル時間 * WT1 WT0 最小 最大 メインクロック サイクルカウント 0 0 約 3.58ms 約 4.61ms 214 ± 211 サイクル 0 1 約 14.33ms 約 18.43ms 216 ± 213 サイクル 1 0 約 57.23ms 約 73.73ms 218 ± 215 サイクル 1 1 約 458.7ms 約 589.82ms 221 ± 218 サイクル *: 原発振 4MHz <注意事項> インターバル時間は , カウントクロックとしてタイムベースタイマ , またはクロックタイ マのキャリ信号を使用します。タイムベースタイマ , またはクロックタイマが解除される と , ウォッチドッグタイマのインターバル時間は長くなります。 タイムベースタイマは , タイムベースタイマ制御レジスタ (TBTC) の TBR ビットに "0" を 書き込み , メインクロックモードから PLL クロックモードに遷移することでクリアされま す。 176 第 12 章 ウォッチドッグタイマ 12.2 ウォッチドッグタイマの動作 ウォッチドッグタイマの機能により , プログラムの暴走を検出できます。 プログラムの暴走などにより , 定められた時間内にウォッチドッグタイマのアクセ スが行われない場合 , ウォッチドッグタイマはシステムをリセットします。 ■ ウォッチドッグタイマの状態遷移図 ウォッチドッグタイマには下記の 4 つの状態が存在します。 • 無効 :動作していません。 • 動作 :カウンタクリア状態 ("0") からカウントを開始します。 • 停止 :カウンタクリア状態 ("0") を継続します。 • オーバフロー :ウォッチドッグリセットを発生します。 図 12.2-1 ウォッチドッグタイマ状態遷移図 無効 (初期状態) WTEビットに "0"書込み リセット リセット 割込みによるストップモード解除 割込みによるタイムベースタイマモード解除 割込みによるスリープモード解除 動作 停止 カウンタクリア状態("0") からカウント開始 カウンタクリア状態("0") カウンタ オーバフロー ストップモードに移行 タイムベースタイマモードに移行 スリープモードに移行 オーバフロー 常に ウォッチドッグリセット を発生 WTEビットに"0"書込み 177 第 12 章 ウォッチドッグタイマ ■ ウォッチドッグタイマの起動方法 ウォッチドッグタイマの起動は , ウォッチドッグタイマの停止中に WDTC レジスタの WTE ビットに "0" を書き込むことによって行われます。このとき , 同時にウォッチドッ グタイマのリセット発生のインターバルを WT1, WT0 ビットにより設定します。イン ターバルの設定は , この起動のときのデータのみが有効となります。 ■ ウォッチドッグカウンタ 一度 , ウォッチドッグタイマが起動されると , ウォッチドッグタイマカウンタをプログ ラム内で定期的にクリアする必要があります。WDTC レジスタの WTE ビットに "0" を 書き込むと , ウォッチドッグカウンタがクリアされます。ウォッチドッグカウンタは , タイムベースカウンタの桁上がり信号をクロックソースとする 2 ビットのカウンタに より構成されています。したがって , タイムベースカウンタがクリアされると , ウォッ チドッグリセットの発生時間が設定より長くなることがあります。 図 12.2-2 に , ウォッチドッグタイマの動作を示します。 図 12.2-2 ウォッチドッグタイマの動作 タイムベース ウォッチドッグ 00 01 10 00 01 10 11 00 WTE 書込み ウォッチドッグ起動 ウォッチドッグクリア ウォッチドッグリセット ■ ウォッチドッグ停止 ウォッチドッグタイマは , ストップモード , タイムベースタイマモードまたはスリープ モードに遷移時に 停止します。 ■ ウォッチドッグ不活性化 ウォッチドッグタイマは , あらゆる種類のリセットにより不活性化します。 ■ ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグ タイマの動作 ストップモード , タイムベースタイマモードまたはスリープモードに遷移すると , ウォッチドッグタイマはクリアされ停止します。CPU がストップモード , タイムベー スタイマモードまたはスリープモードから復帰すると , ウォッチドッグタイマは , クリ アされた状態からカウントを再開します。 178 第 12 章 ウォッチドッグタイマ ■ リセット時のウォッチドッグタイマの動作 ウォッチドッグタイマはすべてのリセット要因で無効となります。リセット解除後も ウォッチドッグタイマは無効状態です ( 表 12.2-1 を参照 )。 表 12.2-1 ウォッチドッグタイマクリア・停止条件 動作モード リセット WDTC レジ スタ WTE=0 ストップ モード スリープ モード タイムベース タイマモード カウンタクリア 遷移時 書込み時 遷移時 遷移時 遷移時 モード中の ウォッチドッグ タイマ状態 無効 N/A 停止 ( クリア状態 を保持 ) 停止 ( クリア状態 を保持 ) 停止 ( クリア状態 を保持 ) モード中の ウォッチドッグ リセット 発生しない N/A 発生しない 発生しない 発生しない 無効 動作 ( クリア状態 からカウン ト開始 ) 動作 ( クリア状態 からカウン ト開始 ) 動作 ( クリア状態 からカウン ト開始 ) 動作 ( クリア状態 からカウント 開始 ) モード解除後の ウォッチドッグ タイマ状態 ( 注意事項 ) ウォッチドッグの前状態は " 動作 " です。 179 第 12 章 ウォッチドッグタイマ 180 第 13 章 16 ビット入出力タイマ 16 ビット入出力タイマの機能と動作について説明 します。 13.1 16 ビット入出力タイマの概要 13.2 16 ビット入出力タイマのレジスタ 13.3 16 ビットフリーランタイマ 13.4 アウトプットコンペア 13.5 インプットキャプチャ 181 第 13 章 16 ビット入出力タイマ 13.1 16 ビット入出力タイマの概要 MB90390 シリーズは , 16 ビットフリーランタイマ 2 本 , アウトプットコンペアモ ジュール 4 本およびインプットキャプチャ 3 本のモジュールから構成され , 6 個の 入力チャネルおよび 8 個の出力チャネルをサポートしています。以下に , 16 ビット フリーランタイマ , アウトプットコンペアおよびインプットキャプチャについて説 明します。 ■ 16 ビットフリーランタイマ 16 ビットフリーランタイマは 16 ビットのアップカウンタ , 制御レジスタ , プリスケー ラより構成されています。本タイマカウンタの出力値はインプットキャプチャ, アウト プットコンペアの基本時間 ( ベースタイマ ) として使用されます。 ● カウンタ動作クロックは 8 種類から選択可能 内部クロック 8 種類 : φ, φ/2,φ/4, φ/8,φ/16, φ/32, φ/64, φ/128 (φ: マシンクロック ) ● 割込みはカウンタ値のオーバフロー, コンペアレジスタ 0 または 1 とのコンペアマッチによ り発生可能 ● カウンタ値はリセット, ソフトクリア, コンペアレジスタ0 (タイマ0のとき)またはコンペア レジスタ 4 ( タイマ 1 のとき ) とのコンペアマッチにより "0000H" に初期化可能 ■ アウトプットコンペア ( モジュールごとに 2 チャネル ) 4 本のアウトプットコンペアは 2 本の 16 ビットコンペアレジスタ , コンペア出力用ラッ チ , 制御レジスタより構成されています。16 ビットフリーランタイマ値とコンペアレ ジスタ値が一致したとき出力レベルを反転するとともに割込みを発生できます。 ● 各アウトプットコンペアにおいて 2 本のコンペアレジスタを独立して動作 各コンペアレジスタに対応した出力端子と割込みフラグです。 ● 2 本のコンペアレジスタをペアにして出力端子を制御可能 コンペアレジスタ 2 本を使用して出力端子を反転します。 ● 出力端子の初期値を設定することが可能 ● 割込みはコンペア一致により発生可能 182 第 13 章 16 ビット入出力タイマ ■ インプットキャプチャ ( モジュールごとに 2 チャネル ) 3本のインプットキャプチャは独立した2本の外部入力端子と対応したキャプチャレジ スタ , 制御レジスタにより構成されています。インプットキャプチャ 0 (ch. IN0, IN1) は フリーランタイマ 0 に , インプットキャプチャ 1 およびインプットキャプチャ 2 (ch. IN2, IN3, IN4, IN5) はフリーランタイマ 1 に割り当てられています。外部入力端子より 入力された信号の任意エッジを検出することにより 16 ビットフリーランタイマ値を キャプチャレジスタに保持し , 同時に割込みを発生できます。 ● 外部入力信号のエッジを選択可能 立上りエッジ , 立下りエッジ , 両エッジから選択可能です。 ● 2 本のインプットキャプチャは独立して動作可能 ● 割込みは外部入力信号の有効エッジにより発生可能 インプットキャプチャの割込みによりインテリジェント I/O サービスを起動できます。 ■ 16 ビット入出力タイマのブロックダイヤグラム 図 13.1-1 に , 16 ビット入出力タイマのブロックダイヤグラムを示します。 図 13.1-1 16 ビット入出力タイマのブロックダイヤグラム 割込み 16 ビットフリーランタイマ 16 ビットタイマ クリア 各ブロックへ 制御ロジック FRCK0 FRCK1 アウトプットコンペア 0/2/4/6 バス コンペアレジスタ 0 T Q T Q アウトプットコンペア 1/3/5/7 コンペアレジスタ 1 OUT0 OUT2 OUT4 OUT6 OUT1 OUT3 OUT5 OUT7 インプット キャプチャ 0/2/4 キャプチャレジスタ 0 エッジ選択 IN0 IN2 IN4 エッジ選択 IN1 IN3 IN5 インプット キャプチャ 1/3/5 キャプチャレジスタ 1 183 第 13 章 16 ビット入出力タイマ 13.2 16 ビット入出力タイマのレジスタ 16 ビット入出力タイマのレジスタには , 次の 3 つがあります。 • 16 ビットフリーランタイマのレジスタ • 16 ビットアウトプットコンペアのレジスタ • 16 ビットインプットキャプチャのレジスタ ■ 16 ビットフリーランタイマ 0/1 のレジスタ一覧 アドレス bit15 bit0 00352CH TCDT0 タイマデータレジスタ 0 00353CH TCDT1 タイマデータレジスタ 1 00352EH TCCSH0 TCCSL0 タイマ制御ステータスレジスタ 0 00353EH TCCSH1 TCCSL1 タイマ制御ステータスレジスタ 1 ■ 16 ビットアウトプットコンペアのレジスタ一覧 アドレス bit15 003530H 003532H OCCP0/OCCP1 アウトプットコンペアレジスタ 0/1 003534H 003536H OCCP2/OCCP3 アウトプットコンペアレジスタ 2/3 003538H 00353AH OCCP4/OCCP5 アウトプットコンペアレジスタ 4/5 00356AH 00356CH OCCP6/OCCP7 アウトプットコンペアレジスタ 6/7 bit0 000058H 000059H OCS1 OCS0 制御ステータスレジスタ 0/1 00005AH 00005BH OCS3 OCS2 制御ステータスレジスタ 2/3 00005CH 00005DH OCS5 OCS4 制御ステータスレジスタ 4/5 003568H 003569H OCS7 OCS6 制御ステータスレジスタ 6/7 184 第 13 章 16 ビット入出力タイマ ■ 16 ビットインプットキャプチャのレジスタ一覧 アドレス bit15 003520H 003522H IPCP0/IPCP1 インプットキャプチャデータレジスタ 0/1 003524H 003526H IPCP2/IPCP3 インプットキャプチャデータレジスタ 2/3 003528H 00352AH IPCP4/IPCP5 インプットキャプチャデータレジスタ 4/5 bit0 000054H 000055H ICS0/ICS1 0035C9H ICS4/ICS5 ICE23 ICE45 インプットキャプチャ制御ステータスレジスタ 4/5 インプットキャプチャエッジレジスタ 0/1 ICE01 0035CAH 0035CBH インプットキャプチャ制御ステータスレジスタ 2/3 ICS2/ICS3 000056H インプットキャプチャ制御ステータスレジスタ 0/1 インプットキャプチャエッジレジスタ 2/3 インプットキャプチャエッジレジスタ 4/5 185 第 13 章 16 ビット入出力タイマ 13.3 16 ビットフリーランタイマ 16 ビットフリーランタイマのカウント値はアウトプットコンペア , インプットキャ プチャの基本時間 ( ベースタイマ ) として使用されます。 • カウントクロックは 8 種類から選択可能 • カウンタオーバフロー割込みを発生可能 • モード設定によりアウトプットコンペアのコンペアレジスタ 0 ( フリーランタイマ 0) またはコンペアレジスタ 4 ( フリーランタイマ 1) の値との一致によるカウンタ の初期化が可能です。 • 2 つの分割したタイマを利用できます。 ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 13.3-1 16 ビットフリーランタイマのブロックダイヤグラム φ 割込み要求 IVF IVFE STOP MODE CLR CLK2 CLK1 CLK0 分周器 FRCK ス バ コンパレータ0/ コンパレータ1 16ビットフリーランタイマ クロック T15~T00 カウント値出力 ( 注意事項 ) 186 この図は , タイマ 1 でも有効。 タイマ 0 は , ICU0/ICU1 および OCU0/OCU1/OCU2/OCU3 に接続 タイマ 1 は , ICU2/ICU3/ICU4/ICU5 および OCU4/OCU5/OCU6/OCU7 に接続 第 13 章 16 ビット入出力タイマ 13.3.1 タイマデータレジスタ タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出せるレ ジスタです。カウンタ値はリセット時に "0000B" にクリアされます。このレジスタ に書き込むことでタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってく ださい。このレジスタはワードアクセスしてください。 ■ タイマデータレジスタ 図 13.3-2 フリーランタイマのタイマデータレジスタ (TCDT0/TCDT1) アドレス bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00352CH 00352DH 00353CH 00353DH TCDT0/TCDT1 初期値 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 0000000000000000B bit0~bit7 TCDT0/TCDT1 下位ビット Tn0 タイマデータレジスタ 0 Tn1 Tn2 タイマデータレジスタ 1 タイマデータレジスタ 2 Tn3 タイマデータレジスタ 3 Tn4 タイマデータレジスタ 4 Tn5 タイマデータレジスタ 5 Tn6 タイマデータレジスタ 6 Tn7 タイマデータレジスタ 7 n = 0, 1 bit8~bit15 TCDT0/TCDT1 Tn8 R/W:リード / ライト可能 上位ビット タイマデータレジスタ 8 Tn9 タイマデータレジスタ 9 Tn10 タイマデータレジスタ 10 Tn11 タイマデータレジスタ 11 Tn12 タイマデータレジスタ 12 Tn13 タイマデータレジスタ 13 Tn14 タイマデータレジスタ 14 Tn15 タイマデータレジスタ 15 n = 0, 1 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • タイマ制御ステータスレジスタのクリアビット (CLR) による初期化 • フリーランタイマ 0 : アウトプットコンペアのコンペアレジスタ 0 とタイマカウン タ値の一致による初期化 • フリーランタイマ 1 : アウトプットコンペアのコンペアレジスタ 4 とタイマカウン タ値の一致による初期化 187 第 13 章 16 ビット入出力タイマ タイマ制御ステータスレジスタ 13.3.2 タイマ制御ステータスレジスタは , 16 ビットフリーランタイマの動作モードの設定 , 起動・停止や割込みの制御を行います。 ■ タイマ制御ステータスレジスタ ( 下位 ) 図 13.3-3 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSL0/TCCSL1) アドレスbit 00352EH 00353EH 7 IVF 6 5 4 3 2 1 0 TCCSL0/TCCSL1 初期値 IVFE STOP MODE CLR CLK2 CLK1 CLK0 0 0 0 0 0 0 0 0B R/W R/W R/W R/W R/W R/W R/W R/W bit 2 bit1 CLK2 CLK1 bit 0 0 0 0 0 0 1 /2 0 1 0 /4 0 1 1 /8 1 0 0 / 16 1 0 1 / 32 1 1 0 / 64 1 1 1 / 128 カウントクロック選択 CLK0 = MCUクロック bit 3 CLR 0 1 クリアタイマ 書込み時 読出し時 常に "0" を読み出す 影響なし タイマを"0000B"にクリア bit 4 MODE 0 1 タイマのリセット条件を設定 リセットまたはクリアビットにより初期化 リセット , クリアビットまたはコンペアレジスタ 0 により初期化 bit 5 STOP 0 1 エッジ選択ビット ( 入力キャプチャ n) エッジ検索なし ( ストップ ) 上昇エッジ検索 bit 6 IVFE エッジ選択ビット ( 入力キャプチャ n) 0 エッジ検索なし ( ストップ ) 1 上昇エッジ検索 bit 7 IVF R/W 188 : リード / ライト可能 : 初期値 割込み要求フラグ 書込み時 0 読出し時 割込みなし このビットをクリア 1 割込み要求 影響なし 第 13 章 16 ビット入出力タイマ 表 13.3-1 フリーランタイマの制御ステータスレジスタ ( 下位 ) ビット名 機能 • • • • 割込み要求フラグビットとクリアビット "0" 書込み:可能な割込みは削除 "1" 書込み:影響なし リードモディファイライト (RMW) 系命令をサイクル中は必ず "1" を 書き込んでください。 bit7 IVF: 割込み要求 フラグ bit6 IVFE: エッジ選択ビット ( 入力 キャプチャ n) • 割込み要求許可 • "0" 書込み : 割込み禁止 • "1" 書込み : 割込み許可 bit5 STOP: エッジ選択ビット ( 入力 キャプチャ n) • タイマを停止するために使用 • "0" 書込み : カウンタ禁止 ( 動作 ) • "1" 書込み : カウンタ許可 ( 停止 ) bit4 MODE: タイマの リセット条件を 設定 • "0": リセットまたはクリアビットで初期化 • "1": フリーランタイマ 0 : リセット , クリアビットまたはコンペアレジス タ 0 で初期化 フリーランタイマ 1 : リセット , クリアビットまたはコンペアレジ スタ 4 で初期化 • 16 ビットフリーランタイマを "0000B" 値へ初期化 bit3 CLR: クリアタイマ • "0" 書込み : 影響なし • "1" 書込み : カウンタが初期化されます ( 注意事項 ) • タイマカウンタが停止している間,カウンタ値を初期化するには, "0000B" をタイマデータレジスタに書き込んでください。 • "1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書き込みを行うと , カウンタ値の初期化は行われません。 16 ビットフリーランタイマ用カウントクロックを選択するために使用し ます。値がこのビットに書き込まれた後 , 直ちにクロックがアップデー トされます。そのため , このビットに値を書き込む前に入力キャプチャ 動作が停止していることを確認してください。 bit2 ~ bit0 CLK2, CLK1, CLK0: カウントクロック 選択 CLK2 CLK1 0 0 CLK0 カウント φ= 20 MHz φ= 16 MHz φ= 8 MHz φ= 4 MHz φ= 1 MHz クロック 0 φ 50 ns 62.5 ns 125 ns 0.25 μs 1 μs 0 0 1 φ/ 2 100 ns 125 ns 0.25 μs 0.5 μs 2 μs 0 1 0 φ/ 4 0.2 μs 0.25 μs 0.5 μs 1 μs 4 μs 0 1 1 φ/ 8 0.4 μs 0.5 μs 1 μs 2 μs 8 μs 1 0 0 φ/ 16 0.8 μs 1 μs 2 μs 4 μs 16 μs 1 0 1 φ/ 32 1.6 μs 2 μs 4 μs 8 μs 32 μs 1 1 0 φ/ 64 3.2 μs 4 μs 8 μs 16 μs 64 μs 1 1 1 φ/ 128 6.4 μs 8 μs 16 μs 32 μs 128 μs 189 第 13 章 16 ビット入出力タイマ ■ タイマ制御ステータスレジスタ ( 上位 ) 図 13.3-4 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSH0/TCCSH1) アドレス: bit 15 00352FH 00353FH 14 13 12 11 10 9 8 TCCSH0/TCCSH1 初期値 ECKE R/W 0xxxxxxx - - - R/W : リード / ライト可能 - : 未定義 : 初期値 - - - B ECKE 0 1 外部クロック許可 内部タイムクロック FRCK からの外部クロック 表 13.3-2 フリーランタイマのタイマ制御ステータスレジスタ ( 上位 ) ビット名 bit15 ECKE: 外部クロック 許可ビット bit14 ~ bit8 未定義ビット 190 機能 このビットは内部タイマクロックと FRCK からの外部クロックの間で 選択されます。 "0" を書込み : 内部クロックを選択 "1" を書込み : 外部クロックを選択 - 第 13 章 16 ビット入出力タイマ 13.3.3 16 ビットフリーランタイマの動作 16 ビットフリーランタイマはリセット解除後にカウンタ値 "0000H" よりカウントを 開始します。このカウンタ値が 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作 カウンタ値は , 次の 5 つの条件でクリアされます。 • オーバフローが発生したとき • アウトプットコンペアレジスタ 0 値 ( フリーランタイマ 0) またはアウトプットコン ペアレジスタ 4 値 ( フリーランタイマ 1) とコンペアマッチしたとき ( モード設定が 必要 ) • 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき • 停止中に TCDT レジスタに "0000H" を書き込んだとき • リセット時 割込みはオーバフローが発生したときと , アウトプットコンペアレジスタ 0 (4) 値とコ ンペアマッチしたときに発生できます ( コンペアマッチ割込みはモード設定が必要で す)。 191 第 13 章 16 ビット入出力タイマ ■ オーバフローによるカウンタクリア 図 13.3-5 オーバフローによるカウンタクリア カウンタ値 オーバフロー FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット 割込み ■ アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたときのカウンタクリア 図 13.3-6 アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたときのカウンタクリア カウンタ値 FFFFH 一致 BFFFH 一致 7FFFH 3FFFH 時間 0000H リセット コンペアレジスタ値 BFFFH 割込み ■ 16 ビットフリーランタイマのタイミング ● 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 ) カウンタのクリアはリセット , ソフトウェア , アウトプットコンペアレジスタ 0 (4) と の一致で行えます。リセットとソフトウェアでのカウンタクリアはクリア発生ととも に行われますが , アウトプットコンペアレジスタ 0 (4) との一致によるカウンタクリア はカウントタイミングに同期して行われます。 図 13.3-7 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 ) φ コンペアレジスタ値 N コンペアマッチ カウンタ値 192 N 0000H 第 13 章 16 ビット入出力タイマ 13.4 アウトプットコンペア アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 本のコ ンペア出力端子および 1 本の制御レジスタから構成されています。アウトプットコ ンペアレジスタに設定された値と 16 ビットフリーランタイマ値が一致したら , 端子 の出力レベルを反転するとともに割込みを発生できます。 ■ アウトプットコンペア • MB90390 シリーズでは , 4 つの異なるアウトプットコンペアモジュールが使用でき ます。 • 各モジュールにアウトプットコンペアレジスタは全部で 2 本あり , 独立して動作で きます。また , 設定により 2 本のアウトプットコンペアレジスタを使い端子の出力 を制御可能です。 • 端子の出力初期値を独立して設定できます。 • 各モジュール用に 1 パルス幅の変調信号が発生できます。 • 各 2 フリーランタイマには 3 パルス幅の変調信号が有効です。 ■ アウトプットコンペアのブロックダイヤグラム 図 13.4-1 に , アウトプットコンペアのブロックダイヤグラムを示します。 図 13.4-1 アウトプットコンペアのブロックダイヤグラム 16 ビットタイマカウンタ値 (T15 ~ T00) T コンペア制御 Q OTE0 OUT0 CMP0EXT / CMP4EXT コンペアレジスタ 0 CMOD1 16 ビットタイマカウンタ値 (T15 ~ T00) バ ス CMOD0 T コンペア制御 Q OTE1 OUT1 コンペアレジスタ 1 ICP1 ICP0 ICE1 ICE0 コントローラ 制御ブロック コンペア 1 割込み コンペア 0 割込み ( 注意事項 ) 上図は出力コンペアユニット 2/3, 4/5, 6/7 でも有効です。 CMP0EXT/CMP4EXT 信号は , 図 13.4-5 に示します。 193 第 13 章 16 ビット入出力タイマ アウトプットコンペアのレジスタ 13.4.1 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。レジ スタ値は初期値不定ですので設定してから起動許可してください。本レジスタは ワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致 したとき , コンペア信号が発生してアウトプットコンペア割込みフラグをセットし ます。また , 出力許可をしている場合はコンペアレジスタに対応した出力レベルを 反転します。 コンペアレジスタに再書込みするために , コンペア割込みルーチンかコンペア動作 以内の範囲で不可となります。同期コンペアマッチとコンペアレジスタの書込みが 発生するように気をつけてください。 ■ アウトプットコンペアのアウトプットコンペアレジスタ 図 13.4-2 アウトプットコンペアレジスタ (OCCP) の構成 アドレス:bit 15 003530 H 003531 H 003532 H 003533 H 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 003534 H 003535 H 003536 H 003537 H 003538 H 003539 H 00353A H 00353B H 00356A H 00356B H 00356C H 00356E H OCCP0 OCCP1 : OCCP7 初期値 XXXXXXXXXXXXXXXX bit0~bit7 OCCPn 下位ビット C00 コンペアデータレジスタ 0 C01 コンペアデータレジスタ 1 C02 コンペアデータレジスタ 2 C03 コンペアデータレジスタ 3 C04 コンペアデータレジスタ 4 C05 コンペアデータレジスタ 5 C06 コンペアデータレジスタ 6 C07 コンペアデータレジスタ 7 n = 0, 1, 2, 3, 4, 5, 6, 7 bit8~bit15 R/W:リード / ライト可能 194 OCCPn 上位ビット C08 コンペアデータレジスタ 8 C09 コンペアデータレジスタ 9 C10 コンペアデータレジスタ 10 C11 コンペアデータレジスタ 11 C12 コンペアデータレジスタ 12 C13 コンペアデータレジスタ 13 C14 コンペアデータレジスタ 14 C15 コンペアデータレジスタ 15 n = 0, 1, 2, 3, 4, 5, 6, 7 B 第 13 章 16 ビット入出力タイマ 13.4.2 アウトプットコンペア制御ステータスレジスタ 制御ステータスレジスタは , アウトプットコンペアの動作モードの設定 , 起動・停止 や割込みの制御 , 外部出力端子の設定を行います。 ■ アウトプットコンペア制御ステータスレジスタ ( 下位 ) 図 13.4-3 アウトプットコンペア制御ステータスレジスタ (OCS0/OCS2/OCS4/OCS6) アドレス: bit 7 6 5 4 000058 H ICPm ICPn ICEm ICEn 00005AH 00005CH R/W R/W R/W R/W 003568 H 3 2 1 0 OCS0 OCS4 CSTm CSTn - - R/W R/W OCS2 OCS6 初期値 0 0 0 0 X X 0 0B bit 0 ユニット n 用タイマの比較 CSTn 0 ユニット n 用コンペア動作禁止 1 ユニット n 用コンペア動作許可 bit 1 ユニット m 用タイマの比較 CSTm 0 ユニット m 用コンペア動作禁止 1 ユニット m 用コンペア動作許可 bit 4 ユニット n 用コンペア割込み許可 ICEn 0 ユニット n 用出力コンペア割込み禁止 1 ユニット n 用出力コンペア割込み許可 bit 5 ICEm 0 1 ユニット m 用コンペア割込み許可 ユニット m 用出力コンペア割込み禁止 ユニット m 用出力コンペア割込み許可 bit 6 ICPn 0 1 ユニット n 用コンペア一致許可 ユニット n 用コンペア一致なし ユニット n 用コンペ一致あり bit 7 R/W X - : リード / ライト可能 : 不定 : 未定義 : 初期値 ICPm 0 1 ユニット m 用コンペア一致許可 ユニット m 用コンペア一致なし ユニット m 用コンペ一致あり n = 0, 2, 4, 6 m = 1, 3, 5, 7 195 第 13 章 16 ビット入出力タイマ 表 13.4-1 アウトプットコンペア制御ステータスレジスタ ( 下位 ) ビット名 機能 • アウトプットコンペア割込みフラグとして使用します。コンペアレジ スタ値が 16 ビットフリーランタイマ値と一致すると , このビットに "1" が設定されます。割込み要求 (ICEm と ICEn) が許可のとき , ICPm と ICPn ビットが設定されると アウトプットコンペア割込みが発生しま す。"0" 書込みで解除されます。 • "0": コンペア一致なし • "1": コンペア一致あり • "1" 書込みは影響しません。 • リードモディファイライト (RMW) 系命令では , 必ず "1" を読み出しま す。 ( 注意事項 ) ICPn: アウトプットコンペア n に対応 ICPm: アウトプットコンペア m に対応 bit7 ICPm bit6 ICPn bit5 ICEm bit4 ICEn bit3, bit2 未定義 - bit1 CSTm bit0 CSTn • コンペア動作が許可される前に , コンペアレジスタを許可するため • "0" 書込み : コンペア動作禁止 • "1" 書込み : コンペア動作許可 ( 注意事項 ) コンペア動作が許可される前に , 値がコンペアレジスタに書き込まれる ことを確認してください。 CSTn: アウトプットコンペア n に対応 CSTm: アウトプットコンペア m に対応 アウトプットコンペアは , 1 ビットフリーランタイマクロックに同調す るため , 16 ビットフリーランタイマが停止するとコンペア動作が止ま ります。 n = 0, 2, 4, 6 m = 1, 3, 5, 7 196 • アウトプットコンペア割込み許可フラグとして使用します。"1" が書き 込まれて割込みフラグ (ICPm または ICPn) が設定されるときに アウト プットコンペア割込みが発生します。 • "0" 書込み : アウトプットコンペア割込み禁止 • "1" 書込み : アウトプットコンペア割込み許可 ( 注意事項 ) ICEn: アウトプットユニット n に対応 ICEm: アウトプットユニット m に対応 第 13 章 16 ビット入出力タイマ ■ アウトプットコンペア制御ステータスレジスタ ( 上位 ) 図 13.4-4 アウトプットコンペア制御ステータスレジスタの構成 (OCS1/OCS3/OCS5/OCS7) アドレス: bit 15 14 000059 H CMOD1 00005BH 00005DH R/W 003569 H 13 12 11 10 9 8 OCS1 OCS5 CMOD0 OTEm OTEn OTDm OTDn - R/W R/W R/W R/W R/W OCS3 OCS7 初期値 0XX00000B bit 8 ユニット m 用出力端子レベル選択 OTDn 0 ユニット m 用コンペア端子出力を "0" に設定 1 ユニット m 用コンペア端子出力を "1" に設定 bit 9 ユニット m 用出力端子レベル選択 OTDm 0 ユニット m 用コンペア端子出力を "0" に設定 1 ユニット m 用コンペア端子出力を "1" に設定 bit 10 OTEn 0 1 ユニット n 用出力端子選択 ユニット n の対応端子用汎用ポート ユニット n 用出力コンペア端子を出力 bit11 OTEm 0 1 R/W : X - : : リード / ライト可能 不定 未定義 : 初期値 ユニット m 用出力端子選択 ユニット m の対応端子用汎用ポート ユニット m 用出力コンペア端子を出力 bit 15 bit 12 CMOD1 CMOD0 0 0 端子用比較モード定義 表 13.4-3 を参照 n = 0, 2, 4, 6 m = 1, 3, 5, 7 197 第 13 章 16 ビット入出力タイマ 表 13.4-2 アウトプットコンペア制御ステータスレジスタ ( 上位 ) ビット名 bit15, bit12 CMOD0, CMOD1 bit14, bit13 未使用 bit11 OTEm bit10 OTEn bit9 OTDm bit8 OTDn n = 0, 2, 4, 6 m = 1, 3, 5, 7 198 機能 端子出力値の動作モードを定義します。定義されたモードによっ てレベルは異なるコンペアレジスタとの一致を反転させます。表 13.4-3 を参照してください。 - アウトプットコンペア出力端子を許可するために使用します。初 期値は "0" です。 • "0": 汎用ポート • "1": アウトプットコンペア端子出力 ( 注意事項 ) OTEn : アウトプットコンペア n に対応 OTEm : アウトプットコンペア m に対応 出力として指定する場合 , ポート方向にレジスタの対応する ビットには必ず "1" を設定してください。 コンペア端子出力が許可のとき , 端子出力レベルを変えるために使 用します。コンペア出力端子の初期値は "0" です。数値が書き込ま れる前にコンペア動作が停止することを確認してください。読出 し時 , このビットはアウトプットコンペア端子出力を表示します。 • "0" 書込み : コンペア端子出力に "0" を設定 • "1" 書込み : コンペア端子出力に "1" を設定 ( 注意事項 ) OTDn : アウトプットコンペア n に対応 OTDm : アウトプットコンペア m に対応 第 13 章 16 ビット入出力タイマ 表 13.4-3 CMOD1, CMOD0 ビットの機能 レジスタ数との一致で反転する端子出力値 OCS1 Register OCCPx CMOD1 CMOD0 OUT0 x 0 0 1 x 1 0 0/1 OCS3 OUT1 Register OCCPx CMOD1 CMOD0 OUT2 0 0 2 3 0 1 2 2/3 1 0 0/2 0/3 1 1 0/2 0/2/3 CMOD1 CMOD0 OUT4 OUT5 x 0 4 5 x 1 4 4/5 CMOD1 CMOD0 OUT6 OUT7 0 0 6 7 0 1 6 6/7 OCS5 OUT3 Register OCCPx OCS7 Register OCCPx 1 0 4/6 4/7 1 1 4/6 4/6/7 図 13.4-5 出力選択のブロックダイヤグラム (OCU モジュール 1) コンペア制御2 OUT2 CMOD1 CMP0EXT CMOD0 OUT3 コンペア制御3 CMOD[1:0] = 10B の場合 , OCU モジュール 1 には , 出力コンペアレジスタ 0 での一致 が要求され , モジュール 0 からの比較結果は CMPEXT 信号により内的に運ばれます。 これは , モジュール 0 自身には当てはまりません。ここでは , レジスタとして OCCP0 と OCCP1 以外は使用されません。同じことが OCU モジュール 3 でも当てはまり , モ ジュール 2 からの結果が CMP4EXT として必要です。 199 第 13 章 16 ビット入出力タイマ 13.4.3 16 ビットアウトプットコンペアの動作 16 ビットアウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と 16 ビットフリーランタイマとの値を比較して , 一致したら割込み要求フラグをセッ トするとともに出力レベルを反転できます。CMOD0, CMOD1 ビットは , 各端子に対 応するコンペアレジスタを定義するために使われます。 ■ CMOD[1:0] = 00B のときの出力波形例 CMOD[1:0] = 00B のとき , コンペアレジスタに対応する端子の出力レベルはレジスタ値 とのすべての一致を反転させます。各出力レベルは , 1 つのコンペアレジスタで制御さ れます。 OUT0: レベルは , アウトプットコンペアレジスタ 0 との一致で反転します。 OUT1: レベルは , アウトプットコンペアレジスタ 1 との一致で反転します。 図 13.4-6 コンペアレジスタ 0, 1 を使用したときの出力波形例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット OCCP0値 BFFFH OCCP1値 7FFFH OUT0 OUT1 コンペア 0 割込み コンペア 1 割込み ( 注意事項 ) この図では , どちらの端子も初期値は "0" です。 200 第 13 章 16 ビット入出力タイマ ■ CMOD[1:0] = 01B のときの 2 コンペアレジスタでのサンプル出力波形 CMOD[1:0] = 01B のとき , コンペアレジスタ 0 (2) と対応する端子の出力レベルはレジ スタ値が一致するごとに反対になります。これは , CMOD[1:0] = 00B のときでも全く同 じです。しかし , 第 2 端子の出力レベルは , コンペアレジスタ 0 かコンペアレジスタ 1 (3) で示されるほかのエッジでのパルスされた信号を明確にします。逆もまた同様です。 両コンペアレジスタが同じ値をとる場合は , CMOD[1:0] = 00B のケースと同じです。 異なる周波数でのパルス幅変調信号は , フリーランタイマ (TCCSL0/TCCSL1 レジスタ の MODE ビット ) と対応したコンペアレジスタに基づくリセットオプションを付加し たモードの共同使用により明示されます。 OUT0 (2): このレベルはアウトプットコンペアレジスタ 0 (2) との一致によってのみ 反転します。 OUT1 (3): このレベルはアウトプットコンペアレジスタ 0 (2) かアウトプットコンペ アレジスタ 1 (3) との一致によって反転します。 OUT4 ~ OUT7 については , アウトプットコンペアレジスタ 4 が上述のアウトプットコ ンペアレジスタ 0 と同じ役割を果たします。 図 13.4-7 CMOD[1:0] = 01B のときのサンプル出力波形 ( 一致によるタイマリセットなし ) カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OUT0 OUT1 ( 注意事項 ) この図では , 両端子ともに初期値は "0" です。 図 13.4-8 CMOD[1:0] = 01B のときのサンプル出力波形 ( 一致によるタイマリセットあり ) カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OUT0 OUT1 ( 注意事項 ) この図では , 両端子ともに初期値は "0" です。 201 第 13 章 16 ビット入出力タイマ ■ CMOD[1:0] = 10B のときのサンプル出力波形 前述のコンペアレジスタの代わりに , CMOD[1:0] = 10B で示される動作モードは , 各フ リーランタイマの 3 パルス幅変調信号の使用を試みます。このモードを OCU モジュー ル 1 に設定する場合 , コンペアレジスタ 0 でのタイマ値の一致により , OUT2 と OUT3 になります。第 3 パルス信号では , OCU モード 0 の CMOD[1:0] ビットは "01B" に設定 してください。 OCS1: CMOD[1:0] = 01B のとき OUT0: このレベルは , アウトプットコンペアレジスタ 0 との一致によってのみ予約さ れます。 OUT1: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア レジスタ 1 との一致によって予約されます。 OCS3: CMOD[1:0] = 10B のとき OUT2: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア レジスタ 2 との一致によって予約されます。 OUT3: このレジスタは , アウトプットコンペアレジスタ 0 またはアウトプットコンペ アレジスタ 3 との一致によって予約されます。 OUT4 ~ OUT7 については , アウトプットコンペアレジスタ 4 が上述のアウトプットコ ンペアレジスタ 0 と同じ役割を果たします。 図 13.4-9 OCS1.CMOD[1:0] = 01B, OCS3.CMOD[1:0] = 10B のときのサンプル出力波形 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 OCCP1 値 OCCP2 値 OCCP3 値 BFFFH 7FFFH 3FFFH 5FFFH OUT0 OUT1 OUT2 OUT3 ( 注意事項 ) この図では , 全端子ともに初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。 202 第 13 章 16 ビット入出力タイマ ■ CMOD[1:0] = 11B のときのサンプル出力波形 CMOD[1:0] = 11B のとき , OUT3 (OUT7) 端子の出力レベルは , コンペアレジスタ 0, 1, 2, 3 (4, 6, 7) によって予約されます。OUT1 (OUT5) 端子では , この決定は CMOD[1:0] = 01B と同じです ( 表 13.4-3 を参照 )。 OUT0: このレベルは , コンペアレジスタ 0 との一致によってのみ予約されます。 OUT1: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 1 との一致によっ て予約されます。 OUT2: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 2 との一致によっ て予約されます。 OUT3: このレベルは , コンペアレジスタ 0, コンペアレジスタ 2 またはコンペアレジス タ 3 との一致によって予約されます。 OUT4 ~ OUT7 については , コンペアレジスタ 4 が上述のコンペアレジスタ 0 と同じ役 割を果たします。 図 13.4-10 OCS1:CMOD[1:0] = 11B, OCS3:CMOD[1:0] = 11B のときの出力波形 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OCCP2 値 3FFFH OCCP3 値 5FFFH OUT0 OUT1 OUT2 OUT3 ( 注意事項 ) この図では , 全端子ともに初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。 203 第 13 章 16 ビット入出力タイマ ■ アウトプットコンペアのタイミング アウトプットコンペアは , フリーランタイマと設定したアウトプットコンペアレジス タの値が一致したときにコンペアマッチ信号が発生して出力値を反転するとともに割 込みを発生できます。コンペアマッチ時の出力反転タイミングはカウンタのカウント タイミングに同期して行われます。 ● コンペアレジスタ書換え時のコンペア動作 アウトプットコンペアレジスタ書換え時のカウンタ値とはコンペアしません。 ● アウトプットコンペアの割込みタイミング 図 13.4-11 アウトプットコンペアの割込みタイミング φ カウンタ値 N N+1 コンペア レジスタ値 N コンペアマッチ 割込み ● アウトプットコンペアの出力端子変化タイミング 図 13.4-12 アウトプットコンペアの出力端子変化タイミング カウンタ値 コンペアレジスタ値 コンペアマッチ信号 端子出力 204 NN+1 N+1 N N 第 13 章 16 ビット入出力タイマ インプットキャプチャ 13.5 インプットキャプチャには外部から入力された信号の立上りエッジ , 立下りエッジ または両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに 保持する機能があります。また , エッジ検出時に割込みを発生できます。インプッ トキャプチャは , インプットキャプチャデータレジスタ , 制御レジスタで構成されて います。 ■ インプットキャプチャ 各インプットキャプチャには , それぞれに対応した外部入力端子があります。 ● 外部入力の有効エッジを 3 種類から選択可能です。 表 13.5-1 外部入力の有効エッジ 立上りエッジ ↑ 立下りエッジ ↓ 両エッジ ↑↓ ● 外部入力の有効エッジを検出したときに割込みを発生できます。 ■ インプットキャプチャのブロックダイヤグラム 図 13.5-1 に , インプットキャプチャのブロックダイヤグラムを示します。 図 13.5-1 インプットキャプチャの全体ブロックダイヤグラム フリーランタイマからのカウンタ値 バ ス IN0 エッジ検出 キャプチャデータレジスタ 0 EG11 EG10 EG01 EG00 エッジ検出 キャプチャデータレジスタ 0 ICP1 ICP0 ICE1 IEI1 IEI0 IN1 ICE0 割込み 割込み ( 注意事項 ) 上の図は , キャプチャユニット 2/3 とキャプチャユニット 4/5 にも有効です。 205 第 13 章 16 ビット入出力タイマ インプットキャプチャのレジスタ 13.5.1 インプットキャプチャのレジスタには次の 3 つがあり , 対応した外部端子入力波形 の有効エッジを検出したとき 16 ビットフリーランタイマ値を保持するレジスタで す ( ワードアクセスしてください。書込みはできません ) 。 • インプットキャプチャデータレジスタ • インプットキャプチャ制御ステータスレジスタ • インプットキャプチャエッジレジスタ ■ インプットキャプチャデータレジスタ 図 13.5-2 インプットキャプチャデータレジスタ (IPCP) bit 15 アドレス IPCP0: 003520H R IPCP1: 003522H IPCP2: 003524H IPCP3: 003526H IPCP4: 003528H IPCP5: 00352AH 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IPCP0~IPCP5 R R R R R R R R R R R R R R R 初期値 XXXXXXXXXXXXXXXXB IPCPn 下位ビット CP00 インプットキャプチャデータレジスタ 0 CP01 インプットキャプチャデータレジスタ 1 CP02 インプットキャプチャデータレジスタ 2 CP03 インプットキャプチャデータレジスタ 3 CP04 インプットキャプチャデータレジスタ 4 CP05 インプットキャプチャデータレジスタ 5 CP06 インプットキャプチャデータレジスタ 6 CP07 インプットキャプチャデータレジスタ 7 n = 0,1,2,3,4,5 上位ビット IPCPn R:リードオンリ 206 CP08 インプットキャプチャデータレジスタ 8 CP09 インプットキャプチャデータレジスタ 9 CP10 インプットキャプチャデータレジスタ 10 CP11 インプットキャプチャデータレジスタ 11 CP12 インプットキャプチャデータレジスタ 12 CP13 インプットキャプチャデータレジスタ 13 CP14 インプットキャプチャデータレジスタ14 CP15 インプットキャプチャデータレジスタ 15 n = 0,1,2,3,4,5 第 13 章 16 ビット入出力タイマ ■ インプットキャプチャ制御ステータスレジスタ 図 13.5-3 インプットキャプチャ制御ステータスレジスタ (ICS) bit 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 ICS01 000054 H ICPm ICPn ICEm ICEn EGm1 EGm0 EGn1 EGn0 000055 H 000056 H R/W R/W R/W R/W R/W R/W R/W R/W ICS23 アドレス 初期値 0 0 0 0 0 0 0 0B ICS45 bit9/bit1 bit8/bit0 EGn1 EGn0 0 0 0 1 エッジ選択ビット ( 入力キャプチャ n) エッジ検索なし ( ストップ ) 立上りエッジ検索 1 0 立下りエッジ検索 1 1 両エッジ検索 bit11/bit3 bit10/bit2 EGm1 EGm0 0 0 0 1 1 0 1 1 エッジ選択ビット ( 入力キャプチャ m) エッジ検索なし ( ストップ ) 立上りエッジ検索 立下りエッジ検索 両エッジ検索 bit12/bit4 0 エッジ選択ビット ( インプットキャプチャ n) エッジ検索なし ( ストップ ) 1 立上りエッジ検索 ICEn bit13/bit5 0 エッジ選択ビット ( インプットキャプチャ m) エッジ検索なし ( ストップ ) 1 立上りエッジ検索 ICEm bit14/bit6 ICPn 割込み要求フラグビット ( インプットキャプチャ n) 読出し時 書込み時 0 有効検出なし このビットをクリア 1 有効検出あり 影響なし bit15/bit7 ICPm R/W : リード / ライト可能 : 初期値 割込み要求フラグビット ( インプットキャプチャ m) 読出し時 書込み時 0 有効検出なし このビットをクリア 1 有効検出あり 影響なし n = 0, 2, 4 m = 1, 3, 5 207 第 13 章 16 ビット入出力タイマ 表 13.5-2 インプットキャプチャ制御ステータスレジスタビット ( 上位・下位 ) ビット名 機能 ICPn+1/3: 割込み要求フラグ ビット ( インプッ トキャプチャ n+1/ 3) • インプットキャプチャ n, m 用割込み要求フラグとして使用 します。 • 外部入力端子の有効エッジ決定で "1" が設定されます。 • 割込み許可ビット (ICEn+1/3) が設定されると , 有効エッジ決 定で割込みが発生します。 • "0" 書込みはこのビットを解除します。 • "1" 書込みは影響しません。 • リードモディファイライト (RMW) 系命令では必ず "1" を読 み出します。 bit14, bit6 ICPn/2: 割込み要求フラグ ビット ( インプッ トキャプチャ n/2) • インプットキャプチャ n, m 用割込み要求フラグとして使用 します。 • 外部入力端子の有効エッジ決定で "1" が設定されます。 • 割込み許可ビット (ICEn/2) が設定されると , 有効エッジ決定 で割込みが発生します。 • "0" 書込みはこのビットを解除します。 • "1" 書込みは影響しません。 • リードモディファイライト (RMW) 系命令では必ず "1" を読 み出します。 bit13, bit5 ICEn+1/3: 割込み要求フラグ ビット ( インプッ トキャプチャ n+1/ 3) • インプットキャプチャ n+1/3 用のインプットキャプチャ割込 み要求を許可するために使用されます。 • "1" が書き込まれると , 割込みフラグ (ICPn+1/3) が設定され るときにインプットキャプチャ割込みが発生します。 bit12, bit4 ICEn/2: 割込み要求フラグ ビット ( インプッ トキャプチャ n/2) • インプットキャプチャ n/2 用のインプットキャプチャ割込み 要求を許可するために使用されます。 • "1" が書き込まれると , 割込みフラグ (ICPn/2) が設定される ときにインプットキャプチャ割込みが発生します。 bit11, bit10, bit3, bit2 EG[n+1]1, EG[n+1]0 / EG31, EG30 • インプットキャプチャ n+1/3 用外部入力の有効エッジ極性を 指定するために使用されます。 • インプットキャプチャ動作を許可するためにも使用されま す。 bit8, bit9, bit1, bit0 EGn1, EGn0 / EG21, EG20 • インプットキャプチャ n/2 用外部入力の有効エッジ極性を指 定するために使用されます。 • インプットキャプチャ動作を許可するためにも使用されま す。 bit15, bit7 n = 0, 4 208 第 13 章 16 ビット入出力タイマ ■ インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) 図 13.5-4 インプットキャプチャエッジレジスタ (ICE) 初期値 bit 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 アドレス X X X X X 0* X XB 0035C9 H 0035CA H 0035CB H - - - - - IUCE IEIm IEIn R/W R R * ICE01 and ICE45 ("X" otherwise) bit8/bit0 有効エッジ表示ビット ( 入力キャプチャ n) IEIn 0 立上りエッジ検出 1 立下りエッジ検出 bit9/bit1 0 有効エッジ表示ビット ( 入力キャプチャ m) 立上りエッジ検出 1 立下りエッジ検出 IEIm : リード / ライト可能 R : リードオンリ - : 未定義 : 初期値 R/W bit10 ( 入力キャプチャ 1, 5 のみ ) IUCE 0 1 n = 0, 2, 4 UART3 への入力キャプチャ接続許可 外部入力キャプチャ接続 入力キャプチャへの UART3 接続 m = 1, 3, 5 表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 ) (1 / 2) ビット名 bit15 ~ bit11, bit7 ~ bit3 bit10 bit2 不定 機能 - IUCE: UART3 接続 許可への インプット キャプチャ • インプットキャプチャユニット 1, 5 のキャプチャソースを選 択します。UART3-LIN 動作によって使用されます。 • "0" 書込み : キャプチャソースは外部です。 • "1" 書込み : キャプチャソースは UART3 です。 MB90V390HA/ MB90V390HB: IUCE3: UART2 接続 許可への インプット キャプチャ IUCE3 ビットは MB90V390HA/MB90V390HB にのみあります。 • インプットキャプチャユニット 3 のキャプチャソースを選択 します。UART2-LIN 動作によって使用されます。 • "0" 書込み : キャプチャソースは外部です。 • "1" 書込み : キャプチャソースは UART2 です。 MB90394HA, MB90F394H(A) ではこのビットは未定義です。 MB90394HA, MB90F394H(A): 不定 bit9, bit1 IEIm: 有効エッジ 表示ビット • キャプチャレジスタ IPCP1, IPCP3, IPCP5 の有効エッジ表示 ビットで , 立上りまたは立下りエッジの検出を表示します。 • "0": 立下りエッジが検出 • "1": 立上りエッジが検出 • 読出しのみ可能です。 ( 注意事項 ) EGm1, EGm0 = 00B のとき , 読出し値に意味はありません。 209 第 13 章 16 ビット入出力タイマ 表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 ) (2 / 2) ビット名 bit8, bit0 n = 0, 2, 4 m = 1, 3, 5 210 IEIn: 有効エッジ 表示ビット 機能 • キャプチャレジスタ IPCP0, IPCP2, IPCP4 の有効エッジ表示 ビットで , 立上りまたは立下りエッジの検出を表示します。 • "0": 立下りエッジが検出 • "1": 立上りエッジが検出 • 読出しのみ可能です。 ( 注意事項 ) EGn1, EGn0 = 00B のとき , 読出し値に意味はありません。 第 13 章 16 ビット入出力タイマ 16 ビットインプットキャプチャの動作 13.5.2 16 ビットインプットキャプチャは設定された有効エッジを検出すると 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することがで きます。 ■ インプットキャプチャの取込みタイミング例 • キャプチャ 0= 立上りエッジ • キャプチャ 1= 立下りエッジ • キャプチャ例 = 両エッジ ( 例として ) 図 13.5-5 インプットキャプチャの取り込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット IN0 IN1 キャプチャ 0 不定 キャプチャ 1 不定 キャプチャ例 キャプチャ 0 割込み キャプチャ 1 割込み キャプチャ 割込み 不定 3FFFH 7FFFH BFFFH 3FFFH ■ インプットキャプチャ入力タイミング ● 入力信号に対するキャプチャタイミング 図 13.5-6 入力信号に対するキャプチャタイミング φ カウンタ値 インプット キャプチャ入力 N N+1 有効エッジ キャプチャ信号 キャプチャレジスタ N+1 割込み 211 第 13 章 16 ビット入出力タイマ 212 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 16 ビットリロードタイマ ( イベントカウント機能 付き ) の機能と動作について説明します。 14.1 16 ビットリロードタイマ ( イベントカウント機能付き ) の概要 14.2 16 ビットリロードタイマのレジスタ 14.3 16 ビットリロードタイマの内部 / 外部クロック動作 14.4 16 ビットリロードタイマのアンダフロー動作 14.5 16 ビットリロードタイマの出力端子機能 14.6 カウンタの動作状態 213 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 14.1 16 ビットリロードタイマ ( イベントカウント機能付き ) の概要 16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ スタ , 入力端子 1 本 (TIN), 出力端子 1 本 (TOT), 制御レジスタで構成されています。 入力クロックとして内部クロック 3 種類と外部クロックを選択できます。 ■ 16 ビットリロードタイマ ( イベントカウント機能付き ) の概要 出力端子 (TOT) には , リロードモード時にはトグル出力波形を出力し , ワンショット モード時にはカウント中を示す矩形波を出力します。入力端子 (TIN) は , イベントカウ ントモード時にイベント入力となり , 内部クロックモード時にはトリガ入力または ゲート入力に使用できます。 MB90390 シリーズの 16 ビットリロードタイマは 2 つです。 ■ インテリジェント I/O サービス (EI2OS) 機能と割込み 本タイマは EI2OS 対応の回路を有しています。このため , 本タイマのアンダフローによ り EI2OS を起動できます。本製品では , 2 つのタイマすべてが EI2OS で使用できますが , 割込みコントローラ内の割込み制御レジスタ(ICRx) 1つに対して2つのタイマ(ch.0+ch.1) を接続してありますので , ch.0 と ch.1 を別の用途の EI2OS に割り当てることはできませ ん。また , 2 つのタイマはそれぞれ別の割込みベクタを持っていますので , 割込みは同時 に 2 つの用途に使用できますが , ch.0 と ch.1 の割込み制御レジスタが上記共有関係にあ りますので , 割込みレベルは組合せのチャネルで同一のレベルとなります。 214 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) ■ 16 ビットリロードタイマのブロックダイヤグラム 図 14.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 図 14.1-1 16 ビットリロードタイマのブロックダイヤグラム 16 16ビットリロードレジスタ 8 リロード RELD F 2 MC-16LXバス 16ビットダウンカウンタ UF OUTE 16 OUTL 2 OUT CTL. GATE INTE UF CSL1 クロックセレクタ CNTE CSL0 TRG リトリガ IRQ クリア EI2OS CLR 2 IN CTL ポート(TIN) EXCK φ φ φ 21 23 25 3 出力許可 ポート(TOT) プリスケーラクリア MOD2 MOD1 周辺クロック UARTボーレート(ch.0) A/Dコンバータ(ch.1) MOD0 3 215 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 14.2 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタには , 次の 2 種類があります。 • タイマ制御ステータスレジスタ (TMCSR) • 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) ■ 16 ビットリロードタイマのレジスタ TMCSR0/TMCSR1 ( 上位 ) アドレス 000051H 000053H bit 15 9 8 初期値 14 13 12 11 10 − − − − CSL1 CSL0 − − − − R/W R/W R/W R/W 6 5 4 3 2 1 0 初期値 RELD I NTE UF CNTE TRG 00000000B R/W R/W R/W R/W R/W R/W 13 12 11 10 9 8 MOD2 MOD1 XXXX0000B TMCSR0/TMCSR1 ( 下位 ) アドレス 000050H 000052H bit 7 MOD0 OUTE OUTL R/W R/W TMR/TMRLR0/TMRLR1 ( 上位 ) アドレス 003541H 003543H bit 15 14 初期値 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W 5 4 3 2 1 0 TMR/TMRLR0/TMRLR1 ( 下位 ) アドレス 003540H 003542H bit 7 初期値 XXXXXXXXB R/W R/W: リード / ライト可能 X: 不定 -: 未定義 216 6 R/W R/W R/W R/W R/W R/W R/W 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 14.2.1 タイマ制御ステータスレジスタ (TMCSR) 16 ビットタイマの動作モードおよび割込みの制御をします。UF, CNTE, TRG ビット 以外のビットの書換えは , CNTE=0 のときに行うようにしてください。 ■ タイマ制御ステータスレジスタ (TMCSR) の配置 TMCSR0/TMCSR1 ( 上位 ) アドレス 000051H 000053H bit 15 9 8 初期値 14 13 12 11 10 − − − − CSL1 CSL0 − − − − R/W R/W R/W R/W 6 5 4 3 2 1 0 初期値 RELD I NTE UF CNTE TRG 00000000B R/W R/W R/W R/W R/W MOD2 MOD1 XXXX0000B TMCSR0/TMCSR1 ( 下位 ) アドレス 000050H 000052H bit 7 MOD0 OUTE OUTL R/W R/W R/W R/W : リード / ライト可能 X : 不定 : 未定義 ■ タイマ制御ステータスレジスタ (TMCSR) の内容 [bit11, bit10] CSL1, CSL0(ClockSeLect1, 0) カウントクロックセレクトビットです。選択されるクロックソースを , 表 14.2-1 に 示します。 表 14.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 外部イベントカウントモード [bit9, bit8, bit7] MOD2, MOD1, MOD0 動作モードおよび入出力端子の機能を設定するビットです。 MOD2 ビットは , 入出力の機能を選択するビットです。"0" の場合 , 入力端子はトリ ガ入力端子となり , 有効エッジが入力されるとリロードレジスタの内容をカウンタ へロードし , カウント動作を継続します。"1" の場合 , ゲートカウンタモードになり , 入力端子はゲート入力となり , 有効レベルが入力されている間のみカウントをしま す。 MOD1, MOD0 ビットは , 各モードにおける端子の機能の設定を行います。MOD2, MOD1, MOD0 ビットの設定を表 14.2-2 および表 14.2-3 に示します。 217 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 表 14.2-2 MOD2, MOD1, 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=00B, 01B, 10B) 表 14.2-3 MOD2, MOD1, MOD0 ビットの設定方法 (2) MOD2 MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 ― ― 0 1 トリガ入力 立上りエッジ 1 0 ↑ 立下りエッジ 1 1 ↑ 両エッジ × • イベントカウントモード時 (CSL0, CSL1=11B) • 表中の×は , 任意の値 [bit6] OUTE 出力許可ビットです。"0" のとき TOT 端子は汎用ポートになり , "1" のとき TOT 端 子はタイマ出力端子になります。出力波形はリロードモード時トグル出力となり , ワンショットモード時はカウンタ中を示す矩形波出力になります。 [bit5] OUTL TOT 端子の出力レベルを設定するビットです。 表 14.2-4 OUTE, RELD, OUTL の設定方法 218 出力波形 OUTE RELD OUTL 0 × × 汎用ポート 1 0 0 カウント中 "H" の矩形波 1 0 1 カウント中 "L" の矩形波 1 1 0 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) [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" 書込みは意味がありません。リー ドモディファイライト (RMW) 系命令における読出し時には "1" が読み出されます。 [bit1] CNTE(CouNT Enable) タイマのカウント許可ビットです。このビットに "1" を書き込むと起動トリガ待ち 状態になります。"0" 書込みによりカウント動作は停止します。 [bit0] TRG(TRiGger) ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。"0" 書 込み動作は意味を持ちません。読出し値は常に "0" です。このレジスタによるトリ ガ入力は , CNTE=1 のときのみ有効となります。CNTE=0 のときに "1" 書込みをし ても何も起こりません。 219 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 14.2.2 16 ビットタイマレジスタ (TMR)/16 ビットリロード レジスタ (TMRLR) のレジスタ配置 16 ビットタイマレジスタ (TMR) ( 読出し時 ) は , 16 ビットタイマのカウント値を読 み出すことができるレジスタです。初期値は不定です。このレジスタの読出しは , 必ずワード転送命令で行ってください。 16 ビットリロードレジスタ (TMRLR) ( 書込み時 ) は , カウントの初期値を保持して おくレジスタです。初期値は不定です。このレジスタへの書込みは , 必ずワード転 送命令で行ってください。 ■ 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) の レジスタ配置 TMR/TMRLR0/TMRLR1 ( 上位 ) アドレス 003541H 003543H bit 15 R/W 14 13 12 11 10 9 8 R/W R/W R/W R/W R/W R/W R/W 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB TMR/TMRLR0/TMRLR1 ( 下位 ) アドレス 003540H 003542H bit 7 R/W R/W: リード / ライト可能 X: 不定 220 初期値 XXXXXXXXB 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 14.3 16 ビットリロードタイマの内部 / 外部クロック動作 内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマ シンクロックの 21, 23, 25 分周のクロックから選択できます。外部入力端子は , レジ スタの設定によりトリガ入力またはゲート入力にすることができます。 外部クロックをセレクトすると TIN 端子は外部イベント入力端子となり , レジスタ で設定された有効エッジをカウントします。 ■ 16 ビットリロードタイマの内部クロック動作 カウント許可と同時にカウント動作を開始したい場合は , 制御レジスタの CNTE ビッ トと TRG ビットの両方に "1" を書き込んでください。 TRG ビットによるトリガ入力は , タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に有効です。 図 14.3-1 に , カウンタの起動およびカウンタの動作について示します。カウントスター トのトリガが入力されてからリロードレジスタのデータがカウンタへロードされるま でに , T (T: マシンサイクル ) の時間がかかります。 図 14.3-1 16 ビットリロードタイマのカウンタの起動および動作 カウントクロック リロードデータ カウンタ -1 -1 -1 データロード CNTE (ビット) TRG (ビット) T ■ 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) クロックソースとして内部クロックを選択した場合, TIN端子はトリガ入力またはゲー ト入力として使用できます。トリガ入力として使用した場合 , 有効エッジが入力される とリロードレジスタの内容をカウンタにロードして , 内部プリスケーラをクリアした 後 , カウント動作を開始します。 TIN は , 2・T (T はマシンサイクル ) 以上のパルスを入力してください。図 14.3-2 に , ト リガ入力の動作を示します。 221 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 図 14.3-2 16 ビットリロードタイマのトリガ入力の動作 カウントクロック 立上りエッジ検出時 TIN プリスケーラクリア カウンタ -1 リロードデータ 0000H -1 -1 ロード 2T~ 2.5T ゲート入力として使用する場合 , 制御レジスタの MOD0 ビットにより設定される有効 レベルが TIN 端子から入力されている間のみカウントをします。このとき , カウント クロックは止まらずに動き続けます。ゲートモード時のソフトウェアトリガは , ゲート レベルにかかわらず可能です。TIN 端子のパルス幅は , 2・T (T はマシンサイクル ) 以 上にしてください。図 14.3-3 に , ゲート入力の動作を示します。 図 14.3-3 16 ビットリロードタイマのゲート入力の動作 カウントクロック TIN MOD0=:1とした場合(入力"H"の間カウント) カウンタ -1 -1 -1 ■ 外部イベントカウント 外部クロックをセレクトすると TIN 端子は外部イベント入力端子となり , レジスタで 設定された有効エッジをカウントします。TIN 端子のパルス幅は , 4・T (T はマシンサ イクル ) 以上にしてください。 222 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 14.4 16 ビットリロードタイマのアンダフロー動作 16 ビットリロードタイマにより , カウンタ値が "0000H" から "FFFFH" に変化した ときにアンダフローが定義されますので , ( リロードレジスタ設定 +1) カウントの後 でアンダフローが発生します。 ■ 16 ビットリロードタイマのアンダフロー動作 アンダフロー発生時 , 制御レジスタの RELD ビットが "1" のときリロードレジスタの内 容をカウンタへロードしてカウント動作を継続し , "0" のときカウンタを "FFFFH" で停 止させます。 アンダフローが発生すると , 制御レジスタの UF ビットをセットし , このときに INTE ビットが "1" であると割込み要求を発生します。 図 14.4-1 に , アンダフロー発生時の動作を示します。 図 14.4-1 16 ビットリロードタイマのアンダフロー動作 カウントクロック カウンタ 0000H リロードデータ -1 -1 -1 データロード アンダフローセット [RELD=1] カウントクロック カウンタ 0000H FFFFH アンダフローセット [RELD=0] 223 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 14.5 16 ビットリロードタイマの出力端子機能 TOT 端子はリロードモード時にはアンダフローにより反転するトグル出力として , ワンショットモード時にはカウント中を示すパルス出力として機能します。 ■ 16 ビットリロードタイマの出力端子機能 16 ビットリロードタイマの出力極性はレジスタの OUTL ビットにより設定でき , OUTL=0 のときトグル出力は初期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 にすると出力波形は反転します。図 14.5-1 と図 14.5-2 に出 力端子機能を示します。 図 14.5-1 16 ビットリロードタイマの出力端子機能 (1) カウント開始 アンダフロー TOT OUTL=1のときは反転 汎用ポート OUTE CNTE 起動トリガ [RELD=1, OUTL=0] 図 14.5-2 16 ビットリロードタイマの出力端子機能 (2) アンダフロー TOT OUTL=1のときは 反転 汎用ポート OUTE CNTE 起動トリガ 起動トリガ待ち状態 [RELD=0, OUTL=0] 224 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) カウンタの動作状態 14.6 カウンタの状態は , 制御レジスタの CNTE ビットと内部信号の WAIT 信号によって 決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ), CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1, WAIT=0 の動作状 態 (RUN 状態 ) があります。 ■ カウンタの動作状態 図 14.6-1 に , 各状態の遷移を示します。 図 14.6-1 カウンタの状態遷移 Reset ハードウェアによる状態遷移 STOP CNTE=0, WAIT=1 外部入力による状態遷移 レジスタアクセスによる状態遷移 TIN:入力禁止 OUTE=0: 汎用ポート TOT: OUTE=1: 初期値出力 カウンタ:停止時の値を保持 リセット直後は不定 CNTE=0 CNTE=0 CNTE=1 TRG=1 CNTE=1 TRG=0 WAIT RUN CNTE=1, WAIT=1 TIN:トリガのみ有効* TOT: CNTE=1, WAIT=0 TIN:TINとして機能* OUTE=0: 汎用ポート OUTE=0: 汎用ポート OUTE=1: 初期値出力 RELD · UF カウンタ:動作 カウンタ:停止時の値を保持 リセット直後ロードする までは不定 TRG=1 TRG=1 LOAD TIN端子からの外部トリガ TOT: OUTE=1: TOTとして機能 CNTE=1, WAIT=0 リロードレジスタの内容を カウンタへロード RELD * UF TIN端子からの外部トリガ ロード終了 * : TIN端子を使用する前に,DDRの対応するビットを"0"に設定しなければなりません。 225 第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き ) 226 第 15 章 時計タイマ 時計タイマの機能と動作について説明します。 15.1 時計タイマの概要 15.2 時計タイマのレジスタ 227 第 15 章 時計タイマ 15.1 時計タイマの概要 時計タイマは , タイマ制御レジスタ , サブ秒レジスタ , 秒 / 分 / 時間レジスタ , 1/2 ク ロック分周器 , 22 ビットプリスケーラおよび秒 / 分 / 時間カウンタから構成されてい ます。MCU の発振周波数は所定の時計タイマの動作を行うために , 4MHz または 5MHz であることが前提になっています。時計タイマはリアルワールドタイマとし て動作してリアルワールド時間情報を提供します。 ■ 時計タイマのブロックダイヤグラム 図 15.1-1 に , 時計タイマのブロックダイヤグラムを示します。 図 15.1-1 時計タイマのブロックダイヤグラム 発振クロック 1/2クロック 分周器 OE 22ビットプリスケーラ OE WOT CO EN サブ秒レジスタ UPDT 秒カウンタ CI EN CO LOAD ST 6ビット INTE0 INT0 INTE1 分カウンタ 時間カウンタ CO 6ビット 秒/分/時間レジスタ INT1 INTE2 INT2 CO 5ビット INT3 INT3 IRQ 228 第 15 章 時計タイマ 15.2 時計タイマのレジスタ 時計タイマのレジスタには , 次の 5 種類があります。 • タイマ制御レジスタ (WTCR) • サブ秒レジスタ (WTBR) • 秒レジスタ (WTSR) • 分レジスタ (WTMR) • 時間レジスタ (WTHR) ■ 時計タイマのレジスタ 図 15.2-1 時計タイマのレジスタ タイマ制御レジスタ 13 12 11 10 9 8 アドレス bit15 14 000060H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0 000061H 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 4 3 2 1 0 予約 予約 予約 − − UPDT OE ST R/W R/W R/W 0 0 0 X X R/W R/W R/W 0 0 0 WTCR サブ秒レジスタ (0) 13 12 11 10 9 8 アドレス bit15 14 00354AH D15 D14 D13 D12 D11 D10 D9 D8 00354BH 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 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 WTBR0 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X 秒レジスタ / サブ秒レジスタ (1) WTSR アドレス bit15 00354CH − 00354DH X 初期値 WTBR1 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 − S5 S4 S3 S2 S1 S0 − − D21 D20 D19 D18 D17 D16 X X R/W R/W R/W R/W R/W R/W X X X X X X X R/W R/W R/W R/W R/W R/W X X X X X X 時間レジスタ / 分レジスタ WTHR アドレス bit15 00354EH − 00354FH X 初期値 WTMR 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 − − H4 H3 H2 H1 H0 − − M5 M4 M3 M2 M1 M0 X X X X R/W R/W R/W R/W R/W X X X X X R/W R/W R/W R/W R/W R/W X X X X X X R/W: リード / ライト可能 -: X: 未定義 不定 <注意事項> • クロックカウンタの解除は , クロックタイマ出力を使用するウォッチドッグカウンタ , インターバル割込みに影響を及ぼします。 • タイマ制御レジスタ (WTCR) の WTR に "0" を書き込むことで時計タイマを解除するに は , WTIE ビットを "0" に設定し , 時計タイマを割込み抑制状態に設定してください。割 込みを許可する前に WTOF フラグに "0" を書き込むことで発生した割込み要求を解除 してください。 229 第 15 章 時計タイマ 15.2.1 タイマ制御レジスタ タイマ制御レジスタは時計タイマの起動・停止 , 割込みの制御や外部出力端子の設 定などを行います。 ■ タイマ制御レジスタ ( 下位 ) 図 15.2-2 タイマ制御レジスタの構成 ( 下位 ) bit 7 アドレス: 000060 H 予約 6 5 予約 予約 R/W R/W R/W 4 3 - - - 2 1 UPDT OE 0 WTCR ST 初期値 0 0 0 X X 0 00B - R/W R/W R/W bit 0 スタートビット ST 0 すべてのカウンタとプリスケーラを "0" にリセット 1 動作開始 bit 1 出力イネーブルビット OE 0 汎用入出力として対応する端子を使用 1 端子に WOT を設定 ( ウォッチタイマ出力 ) bit 2 UPDT アップデートビット 0 影響なし 1 データ値とともにカウンタをアップデート bit 5 予約 0 1 予約ビット - - bit6 予約 0 1 予約ビット - - bit7 予約 0 230 R/W : リード / ライト可能 - : 未定義 : 初期値 1 予約ビット - - 第 15 章 時計タイマ 表 15.2-1 タイマ制御レジスタ ( 下位 ) ビット名 bit7 ~ bit5 bit4, bit3 bit2 bit1 bit0 予約ビット 未定義ビット 機能 予約ビットです。本ビットには必ず "0" を書き込んでください。 - UPDT: 書換えビット UPDT ビットは秒 / 分 / 時間カウンタ値を変更するために用意さ れたものです。 カウンタ値を変更するためには変更データを秒 / 分 / 時間レジス タに書き込んでください。次に UPDT ビットを "1" にセットし てください。レジスタ値は 22 ビットプリスケーラからの次の CO 信号時にカウンタにロードされます。UPDT ビットはカウン タ値が書き換えられたときにハードウェアによりリセットされ ます。ただし , ソフトウェアによるセット動作と上記ハードウェ アによるリセット動作が同時に生じた場合には UPDT ビットは リセットされません。 ( 注意事項 ) 秒カウンタが 59 秒を示しているとき , UPDT ビットをセット してもカウンタ値は変更されず , このビットはクリアされま す。このため , ST ビットによりカウンタ値を変更することを お勧めします。UPDT ビットへの "0" 書込みは影響ありませ ん。リードモディファイライト (RMW) 系命令では "0" が読み 出されます。 OE: 出力許可ビット OE ビットが "1" にセットされたとき WOT 外部端子は時計タイ マ用の出力として機能します。その他の場合にそれは汎用 I/O ま たは , ほかの周辺ブロックとして使用できます。 ST: 開始ビット ST ビットが "1" にセットされたときに時計タイマは秒 / 分 / 時間 値を各レジスタからロードしてその動作を開始します。それが "0" にリセットされたときにすべてのカウンタおよびプリスケー ラは "0" にリセットされて停止します。 231 第 15 章 時計タイマ ■ タイマ制御レジスタ ( 上位 ) 図 15.2-3 タイマ制御レジスタの構成 ( 上位 ) bit 15 14 13 12 11 10 9 8 WTCR アドレス: 000061 H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0 初期値 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit8 割込み要求ビット 0 INT0 0 書込み時 割込みをクリア 読出し時 割込み要求なし 1 影響なし 割込み要求あり bit9 割込み許可ビット 0 INTE0 0 割込み禁止 1 割込み許可 bit10 INT1 割込み要求ビット 1 0 書込み時 割込みをクリア 1 影響なし 読出し時 割込み要求なし 割込み要求あり bit11 INTE1 割込み許可ビット 1 0 割込み禁止 1 割込み許可 bit 12 INT2 割込み要求ビット 2 書込み時 0 割込みをクリア 1 影響なし 読出し時 割込み要求なし 割込み要求あり bit13 割込み許可ビット 2 INTE2 0 1 割込み禁止 割込み許可 bit14 INT3 割込み要求ビット 3 0 書込み時 割込みをクリア 1 影響なし 読出し時 割込み要求なし 割込み要求あり bit 15 割込み許可ビット 3 INTE3 R/W 232 : リード / ライト可能 : 初期値 0 割込み禁止 1 割込み許可 第 15 章 時計タイマ 表 15.2-2 タイマ制御レジスタ ( 上位 ) ビット名 bit15, bit13, bit11, bit9 bit14, bit12, bit10, bit8 機能 INTE3 ~ INTE0 INTE0 ~ INTE3 は割込みフラグです。これらのビットは秒カウンタ , 分 カウンタおよび時間カウンタがそれぞれオーバフローしたときにセット されます。もし , 対応する INTE ビットが "1" であるときに INT ビットが セットされたとすれば , 時計タイマは割込みの信号を発生します。これ らのフラグは秒 / 分 / 時間 / 日ごとに割込みの信号を発生します。 INT ビットに "0" を書き込むと各フラグはクリアされますが , "1" を書き 込んでも効果はありません。INT ビットに対して何らかのリードモディ ファイライト (RMW) 系命令を実行すると "1" が読み出されます。 INT3 ~ INT0 INT0 ~ INT3 は割込みフラグです。これらのビットは秒カウンタ , 分カ ウンタおよび時間カウンタがそれぞれオーバフローしたときにセットさ れます。もし , 対応する INTE ビットが "1" であるときに INT ビットが セットされると , 時計タイマは割込みの信号を発生します。これらのフ ラグは秒 / 分 / 時間 / 日ごとに割込みの信号を発生します。 INT ビットに "0" を書き込むと各フラグはクリアされますが , "1" を書き 込んでも効果はありません。INT ビットに対してリードモディファイラ イト (RMW) 系命令を実行すると "1" が読み出されます。 233 第 15 章 時計タイマ 15.2.2 サブ秒レジスタ サブ秒レジスタは , 発振クロックを分周する 22 ビットプリスケーラのリロード値を 格納します。リロード値は通常 22 ビットプリスケーラの出力が正確に 1 秒周期とな るように設定されます。サブ秒レジスタはリセットで初期化されませんが , プリス ケーラは初期化されます。 ■ サブ秒レジスタ 図 15.2-4 サブ秒レジスタの構成 サブ秒レジスタ (0) 13 12 11 10 9 8 アドレス bit15 14 00354AH D15 D14 D13 D12 D11 D10 D9 D8 00354BH 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 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 WTBR0 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X 秒レジスタ / サブ秒レジスタ (1) アドレス 00354CH 初期値 7 6 5 4 3 2 1 0 − − D21 D20 D19 D18 D17 D16 X X R/W R/W R/W R/W R/W R/W X X X X X X WTBR1 R/W : リード / ライト可能 X : 不定 − : 未定義 表 15.2-3 サブ秒レジスタのビット機能説明 ビット名 bit15 ~ bit0 bit5 ~ bit0 234 WTBR0: D15 ~ D0 WTBR1: D21 ~ D16 機能 サブ秒レジスタは 22 ビットプリスケーラに対するリロード 値を記憶するものです。この値はリロードカウンタが "0" に 達した後にリロードされます。すべての 3 バイトを変更する ときにはリロード動作が書込み命令どうしの間に実行されな いように注意してください。そうしないと 22 ビットプリス ケーラは新たなデータバイトと古いデータバイトを組み合わ せた誤った値をロードしてしまいます。普通はサブ秒レジス タを開始ビットが "0" の間に書き換えることを推奨します。 もし , サブ秒レジスタが "0" にセットされると 22 ビットプリ スケーラは全く動作しません。 入力クロック周波数は常に発振クロック周波数と等しくなる ように設定されており , 4MHz または 5MHz が意図されてい ます。4MHz 動作周波数の 22 ビットプリスケーラリロード値 は , 通常 "1E847FH" に設定されます。5MHz 動作周波数では "26259FH" です。 第 15 章 時計タイマ 15.2.3 秒 / 分 / 時間レジスタ 秒 / 分 / 時間レジスタは時間情報を記憶します。それは秒 , 分および時間をバイナリ で表示します。 これらのレジスタを読み取ることでカウンタ値が読み出されます。しかし , これらの レジスタは書込みを伴うものであり , UPDT ビットが "1" にセットされた後は書込み データが各カウンタ内にロードされます。これらのレジスタおよびカウンタはリ セットにて初期化されます。 ■ 秒 / 分 / 時間レジスタ 図 15.2-5 秒 / 分 / 時間レジスタの構成 秒レジスタ WTSR アドレス bit15 − 00354DH X 初期値 14 13 12 11 10 9 8 − S5 S4 S3 S2 S1 S0 X R/W R/W R/W R/W R/W R/W X X X X X X 時間レジスタ / 分レジスタ WTHR 13 アドレス bit15 14 00354EH − − − 00354FH X X X 初期値 R/W : リード / ライト可能 X : 不定 − : 未定義 WTMR 12 11 10 9 8 7 6 5 4 3 2 1 0 H4 H3 H2 H1 H0 − − M5 M4 M3 M2 M1 M0 X X R/W R/W R/W R/W R/W X X X X X R/W R/W R/W R/W R/W R/W X X X X X X <注意事項> 秒 / 分 / 時間レジスタには , 3 つのバイトレジスタがありますのでレジスタから得られる値 が一貫していることを確認してください。すなわち , "1 時間 59 分 59 秒 " という値が得ら れたとすると , それは "0 時間 59 分 59 秒 " または "1 時間 0 分 0 秒 " または "2 時間 0 分 0 秒 " かも知れません。 同様に , MCU の動作クロックが発振クロックの半分の場合 (PLL が停止したとき ) , これ らのレジスタからの読出し値は誤っている可能性があります。これは , 読出し動作とカウ ンタ動作の同期によるものです。このため , 使用する上では秒割込みで読出し命令をトリ ガすることを推奨いたします。 235 第 15 章 時計タイマ 236 第 16 章 8/16 ビット PPG 8/16 ビット PPG の機能と概要について説明しま す。 16.1 8/16 ビット PPG の概要 16.2 8/16 ビット PPG のブロックダイヤグラム 16.3 8/16 ビット PPG のレジスタ 16.4 8/16 ビット PPG の動作 16.5 8/16 ビット PPG のカウントクロックの選択 16.6 8/16 ビット PPG のパルスの端子出力の制御 16.7 8/16 ビット PPG の割込み 16.8 8/16 ビット PPG の各ハードウェアの初期値 237 第 16 章 8/16 ビット PPG 16.1 8/16 ビット PPG の概要 8/16 ビット PPG は , ハードウェアとして 8 ビットダウンカウンタ 2 個 , 8 ビットリ ロードレジスタ 4 個 , 16 ビット制御レジスタ 1 個 , 外部パルス出力端子 2 本および 割込み出力 2 本があり , これらにより以下の機能を実現します。 ■ 8/16 ビット PPG の機能 ● 8 ビット PPG 出力 2 チャネル独立動作モード 2 チャネルの独立した PPG 出力動作が可能です。 ● 16 ビット PPG 出力動作モード 1 チャネルの 16 ビットの PPG 出力動作が可能です。 PPG0+PPG1, PPG2+PPG3, PPG4+PPG5, PPG6+PPG7, PPG8+PPG9, PPGA+PPGBの組合せ で使用します。 ● 8+8 ビット PPG 出力動作モード ch.0 の出力を ch.1 のクロック入力とすることにより , 任意周期の 8 ビット PPG 出力動 作が可能です。 ● PPG 出力動作 任意周期・デューティ比のパルス波を出力します。外付け回路により D/A コンバータ としても使用可能です。 MB90390 シリーズには 6 本の PPG があります。16.2 以降では PPG0/PPG1 の機能につ いてのみ記述します。残りの PPG にも同じ機能があり , レジスタアドレスについては I/O マップに記しています。 図 16.1-1 に , PPG モジュールと外部端子の関係を示します。 図 16.1-1 PPG モジュールと外部端子の関係 PPG0 / PPG1 PPG2 / PPG3 内部モジュール PPG4 / PPG5 PPG6 / PPG7 PPG8 / PPG9 PPGA / PPGB 238 PPG00 PPG10 PPG01 PPG11 PPG02 PPG12 PPG03 PPG13 PPG04 PPG14 PPG05 PPG15 外部端子 第 16 章 8/16 ビット PPG 16.2 8/16 ビット PPG のブロックダイヤグラム 図 16.2-1 に , 8/16 ビット PPG(ch.0) のブロックダイヤグラムを , 図 16.2-2 に , 8/16 ビット PPG(ch.1) のブロックダイヤグラムを示します。 ■ 8/16 ビット PPG のブロックダイヤグラム 図 16.2-1 8/16 ビット PPG(ch.0) のブロックダイヤグラム PPG00出力許可 PPG00 周辺クロック16分周 周辺クロック8分周 周辺クロック4分周 周辺クロック2分周 周辺クロック PPG0 出力ラッチ 反転 クリア PEN0 カウント クロック選択 S RQ PCNT (ダウンカウンタ) IRQ リロード タイムベースカウンタの出力 メインクロックの512分周 "L"/"H"セレクト MB90390シリーズでは,このIRQ信号 はOR論理によりチャネル1のIRQ信号 とマージされます。 ch.1ボロー "L"/"H"セレクタ PRLL0 PRLBH0 (テンポラリバッファ) PIE0 PRLH0 PUF0 "L"側データバス "H"側データバス PPGC0 (動作モード制御) 239 第 16 章 8/16 ビット PPG 図 16.2-2 8/16 ビット PPG(ch.1) のブロックダイヤグラム PPG10出力端子 PPG10 周辺クロック16分周 周辺クロック8分周 周辺クロック4分周 周辺クロック2分周 周辺クロック PPG10 出力ラッチ 反転 カウント クロック選択 ch.0ボロー PEN1 MB90390シリーズでは,このIRQ信号 はOR論理によりチャネル0のIRQ信号 とマージされます。 S RQ PCNT (ダウンカウンタ) タイムベースカウンタの出力 メインクロックの512分周 "L"/"H"セレクト クリア IRQ リロード "L"/"H"セレクタ PRLL1 PRLL1 (テンポラリバッファ) PIE1 PRLH1 PUF1 "L"側データバス "H"側データバス PPGC1 (動作モード制御) 240 第 16 章 8/16 ビット PPG ● ブロックダイヤグラム中の端子などの詳細 8/16 ビット PPG タイマの実際の端子名および割込み要求番号を表 16.2-1 に示します。 表 16.2-1 ブロックダイヤグラムの端子および割込み要求番号 チャネル 出力端子 PPG0 P56 / PPG00 PPG1 P50 / PPG10 PPG2 P57 / PPG01 PPG3 P51 / PPG11 PPG4 PB0 / PPG02 PPG5 P52/ PPG12 PPG6 PB1 / PPG03 PPG7 P53/ PPG13 PPG8 PB2/ PPG04 PPG9 P54 / PPG14 PPGA PB3 / PPG05 PPGB P55 / PPG15 割込み要求番号 #17 (11H) #18 (12H) #19 (13H) #20 (14H) #21 (15H) #22 (16H) ● PPG1 動作モード制御レジスタ (PPGC1) 8/16 ビット PPG タイマの動作モードを設定します。8/16 ビット PPG タイマ 1 の動作 , 端子出力 , アンダフロー割込みを許可または禁止します。また , アンダフローの発生を 示します。 ● PPG0/1 カウントクロック選択レジスタ (PPG01) 8/16 ビット PPG タイマのカウントクロックを設定します。 ● PPG1 リロードレジスタ (PRLH1, PRLL1) 出力パルスの "H" 幅 , "L" 幅を設定します。PPG1 リロードレジスタに設定した値は , 8/ 16 ビット PPG タイマ 1 が起動すると PPG1 ダウンカウンタ (PCNT1) にリロードされま す。 ● PPG1 ダウンカウンタ (PCNT1) PPG1 リロードレジスタ (PRLH1, PRLL1) の設定値を交互にリロードしてカウントダウ ンする , 8 ビットのダウンカウンタです。アンダフローが発生すると , 端子出力を反転 します。2 チャネルの PPG ダウンカウンタ (PPG0, PPG1) を連結して , 1 チャネルの 16 ビット PPG ダウンカウンタとして使用することもできます。 ● PPG1 テンポラリバッファ (PRLBH1) PPG リロードレジスタ (PRLH1, PRLL1) への書込みのタイミングによって起こる出力 パルス幅のズレを防止するバッファです。PRLH1 の値を一時的に記憶し , PRLL1 への 書込みのタイミングに同期させて PRLH1 の設定値を有効にします。 241 第 16 章 8/16 ビット PPG ● リロードレジスタ L/H セレクタ "L" 側および "H" 側のリロードレジスタ (PRLL1, PRLH1) のどちらを PPG1 ダウンカウ ンタにリロードするか , 現在の端子出力レベルを検出して選択します。 ● カウントクロックセレクタ 5 種類のマシンクロックの分周クロック , またはタイムベースタイマの分周クロックか ら , PPG1 ダウンカウンタに入力するカウントクロックを選択します。 ● PPG 出力制御回路 端子出力レベル , およびアンダフロー発生による出力反転を行います。 242 第 16 章 8/16 ビット PPG 16.3 8/16 ビット PPG のレジスタ 8/16 ビット PPG のレジスタには , 次の 5 つがあります。 • PPGC0 (PPGC2, PPGC4, PPGC6, PPGC8, PPGCA) 動作モード制御レジスタ • PPGC1 (PPGC3, PPGC5, PPGC7, PPGC9, PPGCB) 動作モード制御レジスタ • PPG01 (PPG23, PPG45, PPG67, PPG89, PPGAB) クロック選択レジスタ • リロードレジスタ H • リロードレジスタ L ■ 8/16 ビット PPG のレジスタ PPGn 動作モード制御レジスタ bit 7 アドレス PEN0 ch.0 000038H ch.2 00003CH (R/W) ch.4 000040H (0) ch.6 000044H ch.8 000048H ch.A 00004CH PPGn 動作モード制御レジスタ bit 15 アドレス PEN1 ch.1 000039H ch.3 00003DH (R/W) ch.5 000041H (0) ch.7 000045H ch.9 000049H ch.B 00004DH PPGnm クロック選択レジスタ bit 7 アドレス PCS2 ch.01 00003AH ch.23 00003EH (R/W) ch.45 000042H (0) ch.67 000046H ch.89 00004AH ch.AB 00004EH リロードレジスタ (H) bit 15 アドレス ch.0 003501H − ch.1 003503H ch.2 003505H (R/W) ch.3 003507H (X) ch.4 003509H ch.5 00350BH ch.6 00350DH ch.7 00350FH ch.8 003511H ch.9 003513H ch.A 003515H ch.B 003517H リロードレジスタ (L) bit 7 アドレス ch.0 003500H − ch.1 003502H ch.2 003504H (R/W) ch.3 003506H (X) ch.4 003508H ch.5 00350AH ch.6 00350CH ch.7 00350EH ch.8 003510H ch.9 003512H ch.A 003514H ch.B 003516H R/W: リード / ライト可能 -: 未定義 X: 不定 6 − − (X) 5 PE00 (R/W) (0) 4 PIE0 (R/W) (0) 3 PUF0 (R/W) (0) 2 − − (X) 1 − − (X) 0 予約 (W) (1) 14 − (−) (X) 13 PE10 (R/W) (0) 12 PIE1 (R/W) (0) 11 PUF1 (R/W) (0) 10 MD1 (R/W) (0) 9 MD0 (R/W) (0) 8 予約 (W) (1) 6 PCS1 (R/W) (0) 5 PCS0 (R/W) (0) 4 PCM2 (R/W) (0) 3 PCM1 (R/W) (0) 2 PCM0 (R/W) (0) 1 − − (X) 0 − − (X) 14 13 12 11 10 9 8 − − − − − − − (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 5 4 3 2 1 0 − − − − − − − (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) PPGCn PPGCm PPGnm PRLHn PRLHm PRLLn PRLLm n = 0, 2, 4, 6, 8, A m = 1, 3, 5, 7, 9, B 243 第 16 章 8/16 ビット PPG PPG0 動作モード制御レジスタ (PPGC0) 16.3.1 動作モード制御レジスタ (PPGC0) は , 8/16 ビット PPG の動作モードの選択 , 端子 出力制御 , カウントクロック選択およびトリガの制御を行う 5 ビットの制御レジス タです。 ■ PPG0 動作モード制御レジスタ (PPGC0) 図 16.3-1 PPG0 動作モード制御レジスタ (PPGC0) の構成 PPG0 動作モードコントロールレジスタ bit 7 アドレス: ch.0, 000038H リード / ライト 初期値 PEN0 (R/W) (0) 6 5 - PE00 (-) (X) (R/W) (0) ほかのチャネル ch.2 00003CH ch.4 000040H ch.6 000044H ch.8 000048H ch.A 00004CH 4 3 2 1 0 PIE0 PUF0 - - 予約 (R/W) (0) (R/W) (0) (-) (X) (-) (X) (W) (1) PPGC0 bit 0 予約ビット 予約 1 PPGC0 を設定したとき , 常にこのビットを "1" に設定 bit 3 PUF0 PPG カウンタアンダフロービット 0 PPG カウンタアンダフローは検出されない 1 PPG カウンタアンダフローは検出される bit 4 PIE0 0 1 bit 5 PE00 PPG 割込み許可ビット 割込み禁止 割込み許可 0 PPG00 端子出力許可ビット パルス出力禁止 1 パルス出力許可 bit 7 PEN0 R/W X - 244 : リード / ライト可能 : 不定 : 未定義 : 初期値 0 1 動作許可ビット ストップ ("L" レベル出力保持 ) PPG 動作許可 第 16 章 8/16 ビット PPG 表 16.3-1 動作モード制御レジスタのビット機能説明 ビット名 機能 bit7 PEN0: 動作許可ビット "1" に設定されているとき , PPG カウンタ動作を許可します。動作が 禁止で出力が許可のとき (bit5) "L" レベルは出力に維持されます。 bit5 PE00: PPG00 端子出力許可 ビット "1" に設定されているとき , パルス出力を許可します。MB90390 シ リーズでは , パルス信号は "PPG00" 外部端子に出力されます。この 端子は , 不可時に 汎用ポートとして使用できます。 bit4 PIE0: PPG 割込み許可ビッ ト 本ビットが "1" のとき , PUF0 が "1" になると割込み要求を発生しま す。本ビットが "0" のときは割込み要求を発生しません。 8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ +8 ビッ ト PPG モードのときには , ch.0 のカウンタの値が "00H" ~ "FFH" に bit3 bit0 PUF0: PPG カウンタ アンダフロービット 予約ビット なったときのアンダフローにより "1" にセットされます。16 ビット PPG モードのときには , ch.1/ch.0 のカウンタの値が "0000H" から "FFFFH" になったときのアンダフローにより "1" にセットされます。 "0" の書込みにより "0" になります。このビットへの "1" 書込みは意 味がありません。リードモディファイライト (RMW) 系命令の読出 し時には "1" が読まれます。 予約ビットです。PPGC0 を設定するときは必ず "1" に設定してくだ さい。 245 第 16 章 8/16 ビット PPG PPG1 動作モード制御レジスタ (PPGC1) 16.3.2 PPG1 動作モード制御レジスタ (PPGC1) は , 8/16 ビット PPG の動作モードの選択 , 端子出力制御 , カウントクロック選択およびトリガの制御を行う 7 ビットの制御レ ジスタです。 ■ PPG1 動作モード制御レジスタ (PPGC1) 図 16.3-2 PPG1 動作モード制御レジスタ (PPGC1) の構成 PPG1 動作モードコントロールレジスタ 15 14 13 12 11 10 9 PEN1 - PE10 PIE1 PUF1 MD1 MD0 (R/W) (0) (-) (X) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit アドレス: ch.1 000039H リード / ライト 初期値 ほかのチャネル ch.3 00003DH ch.5 000041H ch.7 000045H ch.9 000049H ch.B 00004DH 8 予約 PPGC1 (W) (1) bit 8 予約 1 予約ビット PPGC0 を設定したとき , 常にこのビット を "1" に設定 bit 10 bit 9 MD1 MD0 PPG カウントモード 0 0 8 ビット PPG 2 チャネル独立モード 0 1 8 ビットプリスケーラ+ 8 ビット PPG 1 チャネルモード 1 0 1 1 予約 16 ビット PPG 1 チャネルモード bit 11 PUF1 PPG カウンタアンダフロービット 0 PPG カウンタアンダフローは検出されない 1 PPG カウンタアンダフローは検出される bit 12 0 PPG 割込み許可ビット 割込み禁止 1 割込み許可 PIE1 bit 13 PE10 PPG10 端子出力許可ビット 0 パルス出力禁止 ( 汎用ポート ) 1 パルス出力許可 bit 15 PEN1 246 R/W : リード / ライト可能 0 X : 不定 1 - : 未定義 : 初期値 動作許可ビット ストップ ("L" レベル出力保持 ) PPG 動作許可 第 16 章 8/16 ビット PPG 表 16.3-2 PPG1 動作モード制御レジスタのビット機能説明 ビット名 機能 bit15 PEN1: 動作許可ビット "1" に設定されているとき , PPG カウンタ動作を許可します。動 作が禁止で出力が許可のとき (bit13), "L" レベルは出力に維持さ れます。 bit13 PE10: PPG10 端子出力 許可ビット "1" に設定されているとき , パルス出力を許可します。MB90390 シリーズでは , パルス信号は "PPG10" 外部端子に出力されます。 この端子は , 不可時に 汎用ポートとして使用できます。 bit12 PIE1: PPG 割込み許可 ビット 本ビットが "1" のとき , PUF1 が "1" になると割込み要求を発生 します。本ビットが "0" のときは割込み要求を発生しません。 8 ビット PPG2 チャネルモードおよび 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 のカウンタの値が "00H" か bit11 PUF1: PPG カウンタ アンダフロー ビット ら "FFH" へなったときのアンダフローにより "1" にセットされ ます。16 ビット PPG モードのときには , ch.1/ch.0 のカウンタの 値が "0000H" から "FFFFH" へなったときのアンダフローにより "1" にセットされます。"0" の書込みにより "0" になります。こ のビットへの "1" 書込みは意味がありません。リードモディ ファイライト (RMW) 系命令の読出し時には "1" が読まれます。 図 16.3-2 で説明されているように , このビットは PPG タイマ動 作モードを選択します。 ビットを "10B" に設定しないでください。 bit10, bit9 MD1, MD0: PPG カウント モード ビットを "01B" に設定する場合には , PPGC0 の PEN0 ビット / PPGC1 の PEN1 ビットを "01B" に設定しないでください。また , PEN0 ビットおよび PEN1 ビットを同時に "11B" または "00B" に セットすることを推奨します。ビットを "11B" に設定する場合 には , PPGC0/PPGC1 をワード転送で書き換え , PEN0 ビットおよ び PEN1 ビットを同時に "11B" または "00B" にセットしてくださ い。 bit8 予約ビット 予約ビットです。PPGC1 を設定するときは必ず "1" に設定して ください。 247 第 16 章 8/16 ビット PPG PPG0/1 クロック選択レジスタ (PPG01) 16.3.3 PPG0/1 クロック選択レジスタ (PPG01) は , 8/16 ビット PPG のカウントクロック の制御を行う 8 ビットの制御レジスタです。 ■ PPG0, PPG1 クロック選択レジスタ (PPG01) 図 16.3-3 PPG0/1 クロック選択レジスタ (PPG01) の構成 PPG0/1 クロック選択レジスタ アドレス: 7 ch.01 00003AH ほかのチャネル ch.23 00003EH ch.45 000042H ch.67 000046H ch.89 00004AH ch.AB 00004EH 248 6 5 4 3 2 1 0 PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 - - (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (-) (-) PPG01 初期値 0 0 0 0 0 0 X XB bit 4 bit 3 bit 2 PCM2 PCM1 PCM0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 カウントクロック選択ビット (ch.0) 周辺クロック 周辺クロック /2 周辺クロック /4 周辺クロック /8 周辺クロック /16 1 1 1 タイムベースタイマからのクロック入力 bit 7 bit 6 bit 5 PCS2 PCS1 PCS0 0 0 0 0 0 1 0 1 0 R/W : リード / ライト可能 0 1 1 X : 不定 1 0 0 カウントクロック選択ビット (ch.1) 周辺クロック 周辺クロック /2 周辺クロック /4 周辺クロック /8 周辺クロック /16 - : 未定義 : 初期値 1 1 1 タイムベースタイマからのクロック入力 第 16 章 8/16 ビット PPG 表 16.3-3 クロック選択レジスタの構成 (PPG01) のビット機能説明 ビット名 機能 ch.1 のダウンカウンタの動作クロックを次のように選択します。 ( 注意事項 ) 8 ビットプリスケーラ +8 ビット PPG モードおよび 16 ビット PPG モー ドのときには , ch.1 の PPG は ch.0 からカウントクロックを受けて動作す るため , PCS2 ~ PCS0 ビットの指定は無効になります。 bit7 ~ bit5 PCS2 ~ PCS0: カウント クロック 選択ビット PCS2 PCS1 PCS0 動作モード 0 0 0 周辺クロック (62.5 ns マシンクロック , 16 MHz) 0 0 1 周辺クロック /2 (125 ns マシンクロック , 16 MHz) 0 1 0 周辺クロック /4 (250 ns マシンクロック , 16 MHz) 0 1 1 周辺クロック /8 (500 ns マシンクロック , 16 MHz) 1 0 0 周辺クロック /16 (1 μs マシンクロック , 16 MHz) 1 1 1 タイムベースタイマからのクロック入力 (128 μs, 4 MHz 原発振 ) ch.0 のダウンカウンタの動作クロックを , 次のように選択します。 PCM2 PCM1 PCM0 bit4 ~ bit2 PCM2 ~ PCM0: カウント クロック 選択ビット 動作モード 0 0 0 周辺クロック (62.5 ns マシンクロック , 16 MHz) 0 0 1 周辺クロック /2 (125 ns マシンクロック , 16 MHz) 0 1 0 周辺クロック /4 (250 ns マシンクロック , 16 MHz) 0 1 1 周辺クロック /8 (500 ns マシンクロック , 16 MHz) 1 0 0 周辺クロック /16 (1 μs マシンクロック , 16 MHz) 1 1 1 タイムベースタイマからのクロック入力 (128 μs, 4 MHz 原発振 ) 249 第 16 章 8/16 ビット PPG リロードレジスタ (PRLL, PRLH) 16.3.4 リロードレジスタ (PRLL, PRLH) は , ダウンカウンタ PCNT へのリロード値を保持 する各 8 ビットのレジスタです。PRLL, PRLH レジスタはどちらも読出し / 書込み が可能です。 ■ リロードレジスタ (PRLL, PRLH) リロードレジスタ (H) アドレス ch.0 003501H ch.1 003503H ch.2 003505H ch.3 003507H ch.4 003509H ch.5 00350BH ch.6 00350DH ch.7 00350FH ch.8 003511H ch.9 003513H ch.A 003515H ch.B 003517H リロードレジスタ (L) アドレス ch.0 003500H ch.1 003502H ch.2 003504H ch.3 003506H ch.4 003508H ch.5 00350AH ch.6 00350CH ch.7 00350EH ch.8 003510H ch.9 003512H ch.A 003514H ch.B 003516H bit15 14 13 12 11 10 9 8 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) bit7 6 5 4 3 2 1 0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) PRLHn PRLLn n = 0, 1, ... , 9, A,B R/W: リード / ライト可能 X: 不定 表 16.3-4 リロードレジスタの機能 レジスタ名 機能 PRLLn "L" 側リロード値保持 PRLHn "H" 側リロード値保持 <注意事項> 8 ビットプリスケーラ +8 ビット PPG モードで使用する場合には , ch.0 の PRLL と PRLH に異なる値を設定すると , ch.1 の PPG 波形がサイクルごとに異なる場合があるので , ch.0 の PRLL と PRLH は同じ値に設定することを推奨します。 250 第 16 章 8/16 ビット PPG 16.4 8/16 ビット PPG の動作 8/16 ビット PPG には , 8 ビット長の PPG ユニットが 2 チャネルあり , 2 チャネル独 立モード以外に , 連結動作させることにより 8 ビットプリスケーラ +8 ビット PPG モードと 16 ビット PPG1 チャネルモードの計 3 種類で動作できます。 ■ 8/16 ビット PPG の動作 8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが "L" 側と "H" 側の 2 本あります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダウン カウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとにダウ ンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反 転させます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した "L" 幅 / "H" 幅をもつパルス出力となります。 表 16.4-1 に , リロード動作とパルス出力の関係を示します。 表 16.4-1 リロード動作とパルス出力の関係 リロード動作 端子出力変化 PRLH → PCNT PPG0/PPG1 [0 → 1] ↑ 立上り PRLL → PCNT PPG0/PPG1 [1 → 0] ↓ 立下り また , PPGC0 の bit4 (PIE0) が "1" または PPGC1 の bit12 (PIE1) が "1" の場合 , それぞれ のカウンタの "00H" から "FFH" へのボロー (16 ビット PPG モードの場合には , "0000H" から "FFFFH" へのボロー ) によって割込み要求が出力されます。 ■ 8/16 ビット PPG の動作モード 8/16 ビット PPG の動作モードには , 2 チャネル独立モード , 8 ビットプリスケーラ +8 ビット PPG モードと , 16 ビット PPG1 チャネルモードの計 3 種類の動作モードがあり ます。 ● 2 チャネル独立モード 2 チャネル独立モードは , 8 ビット PPG として 2 チャネル独立に動作させる動作モード です。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 出力が接続されます。 251 第 16 章 8/16 ビット PPG ● 16 ビット PPG 1 チャネルモード 16 ビット PPG 1 チャネルモードは , ch.0 と ch.1 を連結させて , 16 ビットの PPG として 動作させる動作モードです。PPG00 端子と PPG10 端子は両方とも 16 ビット PPG 出力 が接続されます。 ■ 8/16 ビット PPG の出力動作 8/16 ビット PPG は , ch.0 の PPG については PPGC0 (PWM 動作モード制御レジスタ ) の bit7(PEN0) を , ch.1 の PPG については PPGC1 レジスタの bit15(PEN1) を "1" にセット することによって起動され , カウントを開始します。 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" レベルを保持します。 図 16.4-1 PPG 出力動作の出力波形 PEN PENにより動作開始("L"側から) 出力端子 PPG T×(L+1) (スタート) 252 T×(H+1) L:PRLLの値 H:PRLHの値 T:周辺クロック(φ,φ/4,φ/16) またはタイムベースカウンタから の入力(PPG01のクロックセレクト による) 第 16 章 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 : PRLLの値 H : PRLHの値 T : 入力クロック周期 Ph : "H"パルスの幅 Pl : "L"パルスの幅 253 第 16 章 8/16 ビット PPG 16.5 8/16 ビット PPG のカウントクロックの選択 8/16 ビット PPG の動作に使用するカウントクロックは , 周辺クロックおよびタイム ベースカウンタの入力を使用しており , 6 種類のカウントクロック入力が選択できま す。 ■ 8/16 ビット PPG のカウントクロックの選択 PPG01 出力端子制御レジスタ (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.1 の起動を行うと , 最初のカウント周期がずれる可能性があります。 • ch.0 が動作状態 • ch.1 が停止状態 254 第 16 章 8/16 ビット PPG 8/16 ビット PPG のパルスの端子出力の制御 16.6 本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG00/PPG10 よ り出力されます。 ■ 8/16 ビット PPG のパルスの端子出力の制御 端子出力許可ビット (PPGC0:PE00, PPGC1:PE10) が "0" のとき ( 初期値 ) は , パルス出 力は外部端子より出力されずに汎用ポートとして機能します。本ビットに "1" を設定 すると , パルス出力が外部端子より出力されます。 16 ビット PPG モードでは , PPG00, PPG10 には同じ波形が出力されるので , どちらの外 部端子出力を許可しても同じ出力を得ることができます。 8 ビットプリスケーラ +8 ビット PPG モードでは , PPG0 は 8 ビットプリスケーラのト グル波形が出力され , PPG10 は 8 ビット PPG の波形が出力されます。このモードのと きの出力波形の例を図 16.6-1 に示します。 図 16.6-1 8+8PPG 出力動作の出力波形 Pl0 Ph0 PPG0 PPG1 Ph1 Pl0 = T×(L0+1) Ph0 = T×(L0+1) Pl1 = T×(L0+1)×(Ll+1) Ph1 = T×(L0+1)×(Hl+1) Pl1 L0 : ch.0のPRLLの値およびch.0のPRLH値 L1 : ch.1のPRLLの値 H1 : ch.1のPRLHの値 T : 入力クロック周期 Ph0 : PPG00の"H"パルスの幅 Pl0 : PPG00の"L"パルスの幅 Ph1 : PPG10の"H"パルスの幅 Pl1 : PPG10の"L"パルスの幅 <注意事項> ch.0 の PRLL と ch.0 の PRLH には , 同じ値を設定することを推奨します。 255 第 16 章 8/16 ビット PPG 16.7 8/16 ビット PPG の割込み 8/16 ビット PPG の割込みは , リロード値がカウントアウトし , ボローが発生したと きにアクティブになります。 ■ 8/16 ビット PPG の割込み 8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ +8 ビット PPG モードのと きには, それぞれのカウンタのボローにより, それぞれの割込みの要求が行われますが, 16 ビット PPG モードでは 16 ビットカウンタのボローにより , PUF0 と PUF1 が同時に セットされます。このため割込み要因を一本化するために , PIE0 または PIE1 のどちら か一方のみを許可にすることを推奨します。また , 割込み要因のクリアも PUF0 と PUF1 を同時に行うことを推奨します。 256 第 16 章 8/16 ビット PPG 16.8 8/16 ビット PPG の各ハードウェアの初期値 8/16 ビット PPG の各ハードウェアは , リセット時に以下のように初期化されます。 ■ 8/16 ビット PPG の各ハードウェアの初期値 ● レジスタ • PPGC0 → 0X000XX1B • PPGC1 → 0X000001B • PPG01 → 000000XXB ● パルス出力 • PPG00 → "L" • PPG10 → "L" • PE00 → PPG00 出力禁止 • PE10 → PPG10 出力禁止 ● 割込み要求 • IRQ0 → "L" • IRQ1 → "L" なお , 上記以外のハードウェアは初期化されません。 <注意事項> 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミング , 16 ビット PPG モード以外のモードの場合には , リロードレジスタ (PRLL, PRLH) への書込みはワー ド転送命令を使用することを推奨します。 なお , バイト転送命令 2 回にて書き込んだ場合 , タイミングによっては予想しないパルス 幅の出力が発生する可能性がありますので注意してください。 257 第 16 章 8/16 ビット PPG 図 16.8-1 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミングチャート PPG0 B C B A A B C C D D ① 図 16.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 への書込みが行われます。 なお , 16 ビット PPG モード以外では , ch.0 と ch.1 の PRL の書込みは独立して行うこと ができます。 図 16.8-2 PRL 書込み動作のブロックダイヤグラム ch.0のPRLの書込みデータ テンポラリラッチ 16ビットPPGモード以外の ときのch.0の書込み 16ビットPPGモード時ch.1の 書込みに同期して転送 ch.1の書込み ch.0 PRL 258 ch.1のPRLの書込みデータ ch.1 PRL 第 17 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明しま す。 17.1 DTP/ 外部割込みの概要 17.2 DTP/ 外部割込みのレジスタ 17.3 DTP/ 外部割込みの動作 17.4 DTP 要求と外部割込み要求の切換え 17.5 DTP/ 外部割込み使用上の注意 259 第 17 章 DTP/ 外部割込み 17.1 DTP/ 外部割込みの概要 DTP( データ転送周辺 ) はデバイス外部に存在する周辺と F2MC-16LX CPU との間に あって , 外部周辺が発生する DMA 要求または割込み要求を受け取り , これを F2MC16LX CPU に伝えてインテリジェント I/O サービスまたは割込み処理を起動させる ための周辺です。 ■ DTP/ 外部割込みの概要 インテリジェント I/O 機能に関しては "H" または "L" 要求レベルを使用できます。外 部割込み要求に対しては , "H", "L" のほか立上りエッジおよび立下りエッジの 4 種類の 要求レベルを使用できます。 MB90390 シリーズでは , 外部バスインタフェースはサポートされていません。このた め , DTP/ 外部割込みはデータ転送周辺の役割を果たすことはできません。それは外部 割込みとしてのみ使用できます。 ■ DTP/ 外部割込みのブロックダイヤグラム 図 17.1-1 DTP/ 外部割込みのブロックダイヤグラム F2MC-16LX バス 8 8 8 16 260 割込み/DTP許可レジスタ ゲート 要因F/F 割込み/DTP要因レジスタ 要求レベル設定レジスタ エッジ検出回路 8 要求入力 第 17 章 DTP/ 外部割込み ■ DTP/ 外部割込みのレジスタ bit アドレス:000030H bit アドレス:000031H bit アドレス:000032H bit アドレス:000033H 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) 外部割込み要求レジスタ (EIRR) 要求レベル設定レジスタ (ELVR) 要求レベル設定レジスタ (ELVR) 261 第 17 章 DTP/ 外部割込み 17.2 DTP/ 外部割込みのレジスタ DTP/ 外部割込みのレジスタには , 次の 3 つがあります。 • 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) • 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) • 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ■ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) 割込み /DTP 許可レジスタ (ENIR) はデバイス端子を外部割込み /DTP 要求入力として 使用し , 割込みコントローラに対して要求を発生させる機能を動作させることを決定 するレジスタです。このレジスタの "1" を書かれたビットの対応する端子は外部割込 み /DTP 要求入力として使用され , 割込みコントローラに対して要求を発生する機能を 動作させます。"0" が書かれたビットの対応する端子は外部割込み /DTP 要求入力要因 を保持しますが , 割込みコントローラに対しては要求を発生しません。 <注意事項> DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要因ビット (EIRR:ER) をクリアしてください。 ENIR bit 7 アドレス : 000030H EN7 R/W 6 5 4 3 2 1 0 EN6 R/W EN5 R/W EN4 R/W EN3 R/W EN2 R/W EN1 R/W EN0 R/W 初期値 00000000B R/W: リード / ライト可能 ■ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) EIRR は , このレジスタの "1" となっているビットに対応する端子において外部割込み / DTP 要求が存在することを表します。このレジスタのビットに "0" を書き込むと対応 する要求フラグがクリアされます。"1" を書き込んでも効果はありません。リードモ ディファイライト (RMW) 系命令により , このレジスタからは常に "1" が読み出されま す。 EIRR アドレス : 000031H bit 15 ER7 R/W R/W: リード / ライト可能 262 14 13 12 11 10 9 8 ER6 R/W ER5 R/W ER4 R/W ER3 R/W ER2 R/W ER1 R/W ER0 R/W 初期値 XXXXXXXXB ( ただし , R/W で 対象が異なる ) 第 17 章 DTP/ 外部割込み <注意事項> • 複数の外部割込み出力が有効な場合 (ENIR: EN3 ~ EN0 = 1), CPU が割込みを受けた (ER3 ~ ER0 に "1" が設定された ) ビットのみ , クリアされます。ほかのビットを無条 件でクリアしてはいけません。 • DTP/ 外部割込み要因ビット (EIRR:ER) の値は , 対応する DTP/ 外部割込み許可ビット (ENIR:EN) が "1" に設定されている場合のみ有効です。DTP/ 外部割込みが許可されて いない状態 (ENIR:EN=0) では ,DTP/ 外部割込み要因の有無にかかわらず DTP/ 外部割 込み要因ビットがセットされる可能性があります。 • DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要因ビッ ト (EIRR:ER) をクリアしてください。 ■ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) bit 7 アドレス : 000032H LB3 R/W bit 15 アドレス : 000033H LB7 R/W 6 5 4 3 2 1 0 LA3 R/W LB2 R/W LA2 R/W LB1 R/W LA1 R/W LB0 R/W LA0 R/W 14 13 12 11 10 9 8 LA7 R/W LB6 R/W LA6 R/W LB5 R/W LA5 R/W LB4 R/W LA4 R/W 初期値 00000000B 初期値 00000000B R/W: リード / ライト可能 ELVR は外部端子における要求イベントを定義するものです。表 17.2-1 に示すように , 各端子には 2 ビットが割り当てられます。入力レベルにより要求が検出されたとすれ ば , フラグがソフトウェアによりリセットされた後でも , 入力が指定されたレベルにあ る限り割込みフラグはセットされます。 表 17.2-1 LBx と LAx 端子の割込み要求検出要因 割込み要求検出要因 LBx LAx 0 0 "L" レベルが端子に入力 0 1 "H" レベルが端子に入力 1 0 立上りエッジが端子に入力 1 1 立下りエッジが端子に入力 263 第 17 章 DTP/ 外部割込み 17.3 DTP/ 外部割込みの動作 割込みフラグがセットされたときに , このブロックは割込みコントローラへ割込み 信号を送ります。割込みコントローラ内で同時発生した割込みの優先順位を識別し た結果 , 本リソースからの割込みが最も優先順位が高かったときに , 割込みコント ローラは F2MC-16LX CPU に対して割込み要求を発生します。F2MC-16LX CPU は 自分の内部にある CCR レジスタ中の ILM ビットと割込み要求を比較し , 要求レベル が ILM ビットより高かったときに現在実行中の命令が終了し次第 , ハードウェア割 込み処理マイクロプログラムを起動します。 ■ 外部割込みの動作 図 17.3-1 に示すように, ハードウェア割込み処理マイクロプログラムにおいて, CPUは 割込みコントローラからISEビットの情報を読み出し, これにより当該要求が割込み処 理であることを識別し , 割込み処理マイクロプログラムへ分岐します。割込み処理マイ クロプログラムでは割込みべクタ領域の読出しと割込みコントローラへの割込みアク ノリッジを発生し , ベクタから生成したマクロ命令のジャンプ先アドレスをプログラ ムカウンタへ転送した上で , ユーザの割込み処理プログラムの実行を行います。 図 17.3-1 外部割込みの動作 割込み/DTP F2MC-16LX CPU 割込みコントローラ ほかの要求 ELVR ICR yy EIRR ENIR 要因 264 IL CMP CMP ICR xx ILM INTA 第 17 章 DTP/ 外部割込み ■ DTP の動作 初期化としてユーザプログラム内ではインテリジェント I/O サービスを起動するに当 たって , インテリジェント I/O サービスディスクリプタ内の I/O アドレスポインタに "000000H" から "0000FFH" に割りつけられているレジスタのアドレスを設定し , バッ ファアドレスポインタにメモリバッファの先頭アドレスを設定します。 DTP の動作シーケンスは外部割込みの場合とほぼ同じで , CPU がハードウェア割込み 処理マイクロプログラムを起動するまでは全く同じです。DTP の場合は CPU がハード ウェア割込み処理マイクロプログラム内で読み出す ISE ビットの内容が DTP を示して いるので , インテリジェント I/O サービス処理マイクロプログラムへ制御を移します。 インテリジェント I/O サービスが起動されると , アドレッシングされている外部周辺に 読出しまたは書込み信号が送られて本チップとの転送が行われます。外部周辺はその 転送が行われてから 3 マシンサイクル以内に本チップに対する割込み要求を取り下げ てください。転送が終了するとディスクリプタの更新などが行われ , その後 , 転送要因 をクリアする信号を割込みコントローラに発生させます。転送要因をクリアする信号 を受け取った本リソースは要因を保持しているフリップフロップをクリアして端子か らの次の要求に備えます。インテリジェント I/O 機能処理の詳細については , 「F2MC16LX プログラミングマニュアル」を参照してください。 図 17.3-2 DTP 動作終了時の外部割込み取下げタイミング エッジ要求,または"H"レベル要求 内部動作 (注意事項) インテリジェントI/Oサービスが I/Oレジスタ→メモリ転送のとき ディスクリプタ 選択,読出し 割込み要因 読出しアドレス アドレスバス端子 書込みアドレス 読出しデータ データバス端子 書込みデータ ① 読出し信号 ② 書込み信号 3マシンサイクル以内に取り下げる 図 17.3-3 DTP と外部周辺とのインタフェース簡略例 レジスタ 外部周辺 内部バス データ,アドレスバス ① INT IRQ DTP 転送終了後,3マシンサイクル 以内に取り下げる ② コア メモリ MB90390シリーズ 265 第 17 章 DTP/ 外部割込み 17.4 DTP 要求と外部割込み要求の切換え 外部割込み要求と DTP 要求の切換えは , 割込みコントローラの中にある本リソース に対応する ICR レジスタ中の ISE ビットの設定によって行います。各端子に対応し て個々に ICR が割り当てられていますので , 対応する ICR の ISE ビットに "1" が書 かれた端子が DTP 要求として , また , "0" が書かれた場合には外部割込み要求とし てそれぞれ動作します。 ■ DTP 要求と外部割込み要求の切換え 図 17.4-1 DTP 要求と外部割込み要求の切換え 割込みコントローラ 0 ICRxx ICRyy 1 F2MC-16LX CPU 端子 外部割込み/DTP DTP 外部割込み 266 第 17 章 DTP/ 外部割込み 17.5 DTP/ 外部割込み使用上の注意 DTP/ 外部割込みを使用する際には , 次の点について特に注意が必要です。 • DTP を用いたときの外部に接続する周辺の条件 • DTP/ 外部割込みの動作手順 • 外部割込み要求レベル ■ DTP/ 外部割込み使用上の注意 ● DTP を用いたときの外部に接続する周辺の条件 DTP がサポートできる外部周辺は , 転送が行われたことにより自動的に要求をクリア するものでなければなりません。また , 転送動作が開始してから 3 マシンサイクル以内 で転送要求を取り下げないと本リソースは次の転送要求が発生したものとして扱いま す。 ● DTP/ 外部割込みの動作手順 DTP/外部割込み内に存在するレジスタの設定を行う際, 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 許可レジスタの対象となるビットを不可状態にする。 3. 要求レベル設定レジスタの対象となるビットを設定する。 4. 要因レジスタの対象となるビットをクリアする。 5. 許可レジスタの対象となるビットを許可状態にする。 ( ただし , 4. と 5. はワード指定による同時書込み可能 ) 本リソース内のレジスタを設定するときには , 必ず許可レジスタを不可状態に設定し なければなりません。また , 許可レジスタを許可状態にする前に必ず要因レジスタをク リアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に誤って割 込み要因が起こってしまうことを避けるためです。 ● 外部割込み要求レベル 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , データシー トに記載されている最小パルス幅以上の期間が必要です。 図 17.5-1 に示すように, 要求入力レベルがレベル設定のとき, 外部より要求入力が入っ てその後 , 取り下げられても内部に要因保持回路が存在するので , 割込みコントローラ への要求はアクティブのままです。図 17.5-2 に示すように , 割込みコントローラへの 要求を取り下げるには要因保持回路をクリアする必要があります。 267 第 17 章 DTP/ 外部割込み 図 17.5-1 レベル設定時の要因保持回路のクリア レベル検出 割込み要因 要因F/F(割込み/DTP要因レジスタ) 許可ゲート 割込み コントローラへ クリアしない限り要因を保持し続ける 図 17.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 割込み要因 割込みコントローラ への割込み要求 268 "H"レベル 要因F/Fのクリアによってインアクティブとなる 第 18 章 8/10 ビット A/D コンバータ MB90390 シリーズの 8/10 ビット A/D コンバータ の機能と動作について説明します。 18.1 8/10 ビット A/D コンバータの概要 18.2 8/10 ビット A/D コンバータの構成 18.3 8/10 ビット A/D コンバータの端子 18.4 8/10 ビット A/D コンバータのレジスタ 18.5 8/10 ビット A/D コンバータの割込み 18.6 8/10 ビット A/D コンバータの動作 18.7 A/D コンバータ使用上の注意 18.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) 18.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) 18.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) 269 第 18 章 8/10 ビット A/D コンバータ 18.1 8/10 ビット A/D コンバータの概要 8/10 ビット A/D コンバータは , RC タイプ連続近似変換方式を使用するために , 入力 電圧を 10 ビットまたは 8 ビットのデジタル値に変換します。アナログ入力端子の入 力信号は 15 チャネルから選択します。ソフトウェア , 16 ビットリロードタイマ 1 の出力 , 外部トリガで変換を開始します。 ■ 8/10 ビット A/D コンバータの機能 以下に 8/10 ビット A/D コンバータの機能について示します。 • 変換時間は , 最小 4.9 μs ( ある一定のマシンクロック周波数のみが使用可能な場合 , サンプリング時間を含む ) です。 • サンプリング時間は , 最小 1.6 μs( ある一定のマシンクロック周波数のみが使用可能 な場合 ) です。 • 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。 • 10 ビット , または 8 ビットの分解能を設定できます。 • 入力信号は , 15 チャネルのアナログ入力端子からプログラムで設定可能です。 • A/D 変換終了時に割込み要求を出力し , EI2OS を起動できます。 • 割込み許可状態で A/D 変換を実行した場合 , 変換データ保護機能が働きます。 • 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 出力 ( 立上りエッジ ), 外部トリガ ADTG から設定できます。 • MB90390 シリーズには 15 のアナログ入力チャネルがあります。 0 チャネル~ 7 チャ ネルまたは 8 チャネルから 14 チャネルのどちらかを A/D コンバータの入力として 選択できます。 表 18.1-1 8/10 ビット A/D コンバータの変換モード 変換モード シングル変換動作 スキャン変換動作 単発変換モード 設定したチャネル (1 チャ ネル ) を 1 回変換後 , 終了 連続した複数のチャネル ( 最大 8 チャネルまで設定 可能 ) を 1 回変換後 , 終了。 0 チャネル~ 7 チャネルまたは 8 チャネル~ 14 チャ ネルのどちらかを選択できます。 連続変換モード 設定したチャネル (1 チャ ネル ) を繰り返し変換 連続した複数のチャネル ( 最大 8 チャネルまで設定 可能 ) を繰り返し変換 。 0 チャネル~ 7 チャネルまたは 8 チャネル~ 14 チャ ネルのどちらかを選択できます。 停止変換モード 設定したチャネル (1 チャ ネル ) を 1 回変換実行後 , 一時停止し , 次の起動が かかるまで待機 連続した複数のチャネル ( 最大 8 チャネルまで設定 可能 ) を変換実行。0 チャネル~ 7 チャネルまたは 8 チャネル~ 14 チャネルのどちらかを選択できます。 一時停止し , 次の起動がかかるまで待機します。 270 第 18 章 8/10 ビット A/D コンバータ 表 18.1-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルアドレス 割込み番号 レジスタ名 #31 (1FH) ICR10 アドレス 0000BAH 下位 上位 バンク FFFF80H FFFF81H FFFF82H EI2OS ○ ○:使用可能 271 第 18 章 8/10 ビット A/D コンバータ 18.2 8/10 ビット A/D コンバータの構成 8/10 ビット A/D コンバータは , 以下の 9 種類のブロックで構成されています。 • A/D 制御ステータスレジスタ (ADCS0, ADCS1) • A/D データレジスタ (ADCR0, ADCR1) • クロックセレクタ (A/D 変換起動用入力クロックセレクタ ) • デコーダ • アナログチャネルセレクタ • サンプルホールド回路 • D/A コンバータ • コンパレータ • 制御回路 ■ 8/10 ビット A/D コンバータのブロックダイヤグラム 図 18.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム A/D制御ステータス レジスタ (ADCS0/ADCS1) 割込み要求信号#31(1FH) BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 6 16ビットリロードタイマ1出力 外部トリガ(ADTG) 2 クロックセレクタ デコーダ 内部データバス φ P57/AN7 P56/AN6 P55/AN5 P54/AN4 P53/AN3 P52/AN2 P51/AN1 P50/AN0 アナログ チャネル セレクタ サンプル ホールド回路 AVRH/AVRL AVcc AVss コンパレータ コントロール回路 2 D/Aコンバータ 2 ADSEL A/Dデータレジスタ S10 ST1 ST0 CT1 CT0 - (ADCR0/ADCS1) φ :マシンクロック - :未定義ビット 272 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 第 18 章 8/10 ビット A/D コンバータ ● A/D 制御ステータスレジスタ (ADCS0/ADCS1) A/D 制御ステータスレジスタ (ADCS0) は , A/D 変換モードの設定と A/D 変換開始 / 終 了チャネルの設定を行う機能があります。 A/D 制御ステータスレジスタ (ADCS1) は , 割込み要求の許可 / 禁止の設定 , 割込み要求 の状態確認 , A/D 変換の停止中 / 動作中の確認を行う機能があります。 ● A/D データレジスタ (ADCR0, ADCR1) A/D 変換結果を格納するレジスタですが , A/D 変換の分解能の設定を行う機能もありま す。 ● クロックセレクタ A/D 変換起動クロックを設定するセレクタです。起動クロックには , 16 ビットリロー ドタイマ 1 出力または外部トリガ (ADTG) のどちらも使用できます。 ● デコーダ A/D 制御ステータスレジスタ (ADCS0) の A/D 変換終了チャネル設定ビット (ANE0 ~ ANE2), A/D 変換開始チャネル設定ビット (ANS0 ~ ANS2) の設定値から使用するアナ ログ入力端子を設定する回路です。 ● アナログチャネルセレクタ 15 チャネルのアナログ入力端子の中から使用する端子を設定する回路です。 ● サンプルホールド回路 アナログチャネルセレクタで設定された端子からの入力電圧を保持する回路です。A/D 変換を起動した直後の入力電圧を保持することで , A/D 変換中 ( 比較中 ) は , A/D 変換に おける入力電圧変動の影響を受けません。 ● D/A コンバータ 保持された入力電圧と比較するための基準電圧を発生します。 ● コンパレータ 保持された入力電圧と D/A コンバータの出力電圧を比較し大小を判定します。 ● 制御回路 コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了した場合 , 変換結果を A/D データレジスタ (ADCR0, ADCR1) に格納し割込み要求を出力します。 273 第 18 章 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータの端子 18.3 8/10 ビット A/D コンバータの端子 , および端子部のブロックダイヤグラムを示しま す。 ■ 8/10 ビット A/D コンバータの端子 A/D コンバータの端子は , 汎用ポートと兼用になっています。 表 18.3-1 8/10 ビット A/D コンバータの端子 機 能 端子名 チャネル 0 P60/AN0 チャネル 1 P61/AN1 チャネル 2 P62/AN2 チャネル 3 P63/AN3 チャネル 4 P64/AN4 チャネル 5 P65/AN5 チャネル 6 P66/AN6 チャネル 7 P67/AN7 チャネル 8 PB0/AN8 チャネル 9 PB1/AN9 チャネル 10 PB2/AN10 チャネル 11 PB3/AN11 チャネル 12 PB4/AN12 チャネル 13 PB5/AN13 チャネル 14 PB6/AN14 端子機能 入出力形式 プルアップ設定 スタンバイ制御 CMOS 出力 / CMOS または ヒステリシス 入力 または アナログ入力 なし なし ポート 6 入出力 / アナログ入力 ポート B 入出力 / アナログ入力 ■ アナログ入力許可レジスタ 図 18.3-1 にアナログ入力許可レジスタを示します。 図 18.3-1 アナログ入力許可レジスタ (ADER1/ADER0) アドレス bit15 00000DH 00000CH 初期値 14 13 12 11 10 9 ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 8 7 6 5 4 3 2 1 0 ADE8 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 R/W R/W R/W R/W R/W R/W R/W R/W 0 1 1 1 1 1 1 1 ADER1/ ADER0 R/W R/W R/W R/W R/W R/W R/W R/W 1 1 1 1 1 1 1 1 R/W : リード / ライト可能 <注意事項> bit15 (ADSEL) を "0" にすると , AN0 ~ AN7 ( ポート P60 ~ P67) が A/D コンバータの入力 端子となります。bit15 (ADSEL) を "1" にすると , AN8 ~ AN14 ( ポート PB0 ~ PB6) が A/D コンバータの入力端子となります。 274 第 18 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータの端子部のブロックダイヤグラム 図 18.3-2 P60/AN0 ~ P67/AN7 端子部と PB0/AN8 ~ PB6/AN14 端子部のブロックダイヤグラム アナログ入力 ADER 内部データバス PDR リード 出力ラッチ PDR ライト PDR ( ポートデータ レジスタ ) 方向ラッチ P-ch 端子 N-ch DDR リード DDR ライト DDR ( ポートデータ レジスタ ) スタンバイ制御 (SBL = 1) <注意事項> • 入力ポートとして使用する端子は , ポート方向レジスタ (DDR6/DDRB) の対応するビッ トに "0" を設定し , アナログ入力許可レジスタ (ADER) の対応するビットに "0" を設定 してください。 • アナログ入力端子として使用する端子は , アナログ入力許可レジスタ (ADER) の対応す るビットに "1" を設定してください。ポートデータレジスタ (PDR6/PDRB) の読出し値 は "0" になります。 275 第 18 章 8/10 ビット A/D コンバータ 18.4 8/10 ビット A/D コンバータのレジスタ 8/10 ビット A/D コンバータのレジスタ一覧を示します。 ■ 8/10 ビット A/D コンバータのレジスタ一覧 図 18.4-1 8/10 ビット A/D コンバータのレジスタ一覧 アドレス bit 15 14 13 12 11 10 00000DH / 00000CH ADER1 276 9 8 7 6 5 4 3 ADER0 000035H / 000034H ADCS1 ADCS0 000037H / 000036H ADCR1 ADCR0 2 1 0 第 18 章 8/10 ビット A/D コンバータ 18.4.1 アナログ入力許可 /A/D コンバータ選択レジスタ MB90390 シリーズには , 15 のアナログ入力チャネルがあり , A/D コンバータ 1 つに つき 8 つの入力が使用されます。特別ビット ADSEL がアナログ入力チャネルを選 択します。 ■ アナログ入力許可 /A/D コンバータ選択レジスタの上位ビット (ADER1) 図 18.4-2 アナログ入力許可 /A/D コンバータ選択レジスタの上位ビット (ADER1) の構成 bit15 アドレス 00000D H bit14 bit13 bit12 bit11 bit10 bit9 ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 R/W R/W R/W R/W R/W R/W R/W bit8 初期値 ADE8 01111111B R/W ADEx 0 1 アナログ入力許可ビット ポート入力モード ( ポート B) アナログ入力モード ( 初期値 ) A/D コンバータ入力選択ビット ADSEL R/W: リード / ライト可能 : 未定値 0 1 AN0 ~ AN7 ( ポート 6) が入力として選択 AN8 ~ AN14 ( ポート B) が入力として選択 ■ アナログ入力許可 /A/D コンバータ選択レジスタの下位ビット (ADER0) 図 18.4-3 アナログ入力許可 /A/D コンバータ選択レジスタの下位ビット (ADER0) の構成 アドレス 00000C H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 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: リード / ライト可能 : 未定値 ADEx 0 1 初期値 11111111B アナログ入力許可ビット ポート入力モード ( ポート 6) アナログ入力モード ( 初期値 ) 277 第 18 章 8/10 ビット A/D コンバータ 18.4.2 A/D 制御ステータスレジスタ 1 (ADCS1) A/D 制御ステータスレジスタ (ADCS1) は , A/D 変換起動要因の設定 , 割込み要求の 許可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う 機能があります。 ■ A/D 制御ステータスレジスタ 1 (ADCS1) 図 18.4-4 A/D 制御ステータスレジスタ 1 (ADCS1) アドレス 000035H bit15 bit14 bit13 bit12 bit11 bit10 bit9 BUSY INT bit8 bit7 INTE PAUS STS1 STS0 STRT 予約 R/W R/W R/W R/W R/W R/W W 初期値 bit0 ADCS0 00000000B R/W 予約ビット 予約 必ず“0”を設定してください STRT A/D変換起動ビット (ソフトウェア起動時(ADC2:EXT=0)のみ有効) 0 A/D変換機能を起動しない 1 A/D変換機能を起動する STS1 STS0 0 0 0 1 1 0 1 1 A/D起動要因設定ビット ソフトウェア起動 外部トリガ起動 またはソフトウェア起動 16ビットリロードタイマ1出力の起動 またはソフトウェア起動 外部トリガ起動, 16ビットリロードタイマ1出力の起動, またはソフトウェア起動 PAUS 一時停止フラグビット (EI2OS使用時のみ有効) 0 A/D変換動作中 1 A/D変換動作が一時停止中 INTE 割込み要求許可ビット 0 割込み要求出力の禁止 1 割込み要求出力の許可 割込み要求フラグビット INT 読出し時 書込み時 0 A/D変換未終了 割込み要求をクリア 1 A/D変換終了 動作に影響しません 変換中ビット BUSY R/W :リード/ライト可能 :初期値 278 読出し時 書込み時 0 A/D変換停止中 A/D変換強制停止 1 A/D変換動作中 動作に影響しません 第 18 章 8/10 ビット A/D コンバータ 表 18.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明 ビット名 機 能 BUSY: 変換中ビット • A/D コンバータの動作表示ビットです。 • "0" がセットされている場合は , A/D 変換停止中であることを示します。 "1" がセットされている場合は , A/D 変換動作中であることを示します。 • "0" を設定した場合は , A/D 変換動作を強制停止します。"1" を設定した 場合は , 動作に影響しません。 ( 注意事項 ) A/D 変換動作の強制停止と起動 (BUSY= 0 , STRT= 1) は , 同時に設定しな いでください。 bit14 INT: 割込み要求 フラグビット • A/D 変換結果が A/D データレジスタに格納されると , "1" がセットされ ます。 • 割込み要求許可ビット (ADCS:INTE) に "1" を設定している場合に , "1" がセットされると割込み要求を出力します。 • "0" を設定した場合は , 割込み要求がクリアされます。 • "1" を設定した場合は , 動作に影響しません。 • EI2OS を使用すると , "0" にクリアされます。 ( 注意事項 ) 割込み要求をクリアする場合は , A/D 変換を停止してください。 bit13 INTE: 割込み要求 許可ビット • 割込み要求を許可するビットです。 • "1" を設定した場合は , 割込み要求フラグビット (ADCS:INT) に "1" が セットされると割込み要求を出力します。 • EI2OS を使用する場合は , "1" を設定してください。 PAUS: 一時停止 フラグビット • A/D 変換動作が一時停止した場合に "1" がセットされます。 • 連続変換モードで EI2OS を使用した場合 , A/D 変換が終了しても , 前 データのメモリへの転送が完了していないと "1" がセットされ , A/D 変 換動作を一時停止し , 変換データを A/D データレジスタ (ADCR0/ ADCR1) に格納しません。 • A/D 変換結果のメモリへの転送が終了すると , 8/10 ビット A/D コンバー タは自動的に A/D 変換動作が開始されます。一時停止状態が解除され ても本ビットはクリアされません。本ビットをクリアするためには "0" を書き込んでください。 ( 注意事項 ) EI2OS を使用した場合に有効です。 STS1, STS0: A/D 起動要因 設定ビット • A/D 変換の起動要因の設定を行うビットです。 • 起動要因が兼用になっている場合は , 最初に発生した起動要因で起動し ます。 ( 注意事項 ) 起動要因は , 設定と同時に変更されますので , A/D 変換動作中に設定する 場合は目的とする起動要因がない状態で切り換えてください。 bit9 STRT: A/D 変換起動 ビット • A/D 変換動作を起動するビットです。 • "1" を設定した場合は , A/D 変換が起動します。 • "0" を設定した場合は , A/D 変換は起動しません。 • 停止変換モード時は , STRT ビットによる再起動はかかりません。 ( 注意事項 ) A/D 変換動作の強制停止 (BUSY= 0) , (STRT= 1) は同時に行わないでくだ さい。 bit8 予約: 予約ビット bit15 bit12 bit11, bit10 必ず "0" を設定してください。 279 第 18 章 8/10 ビット A/D コンバータ 18.4.3 A/D 制御ステータスレジスタ 0(ADCS0) A/D 制御ステータスレジスタ (ADCS0) は , A/D 変換モードの設定と A/D 変換開始 / 終了チャネルの設定を行う機能があります。 ■ A/D 制御ステータスレジスタ 0(ADCS0) 図 18.4-5 A/D 制御ステータスレジスタ 0 (ADCS0) アドレス bit15 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000034H (ADCS:H) MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 R/W R/W R/W R/W R/W R/W R/W ANE2 ANE1 ANE0 初期値 00000000B R/W A/D変換終了チャネル設定ビット 0 0 0 AN0/AN8端子 0 0 1 AN1/AN9端子 0 1 0 AN2/AN10端子 0 1 1 AN3/AN11端子 1 0 0 AN4/AN12端子 1 0 1 AN5/AN13端子 1 1 0 AN6/AN14端子 1 1 1 AN7端子 A/D変換開始チャネル設定ビット ANS2 ANS1 ANS0 280 変換中の 停止変換モード で一時停止中の 読出し 読出し 0 0 0 AN0/AN8端子 0 0 1 AN1/AN9端子 0 1 0 AN2/AN10端子 0 1 1 AN3/AN11端子 チャネル 1 0 0 1 0 1 1 1 0 AN6/AN14端子 1 1 1 AN7端子 MD1 MD0 R/W :リード/ライト可能 :初期値 停止中 変換中の 直前に変換 した チャネル AN4/AN12端子 番号 番号 AN5/AN13端子 A/D変換モード設定ビット 0 0 単発変換モード1(動作中の再起動可能) 0 1 単発変換モード2(動作中の再起動不可) 1 0 連続変換モード (動作中の再起動不可) 1 1 停止変換モード (動作中の再起動不可) 第 18 章 8/10 ビット A/D コンバータ 表 18.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 (1 / 2) ビット名 bit7, bit6 MD1, MD0: A/D変換モード 設定ビット 機 能 • A/D 変換モードを設定するビットです。 • MD1 と MD0 の 2 つのビットで A/D 変換モードを 4 つのモード ( 単発 変換モード 1, 単発変換モード 2, 連続変換モード , 停止変換モード ) か ら選択します。 • 単発変換モード 1, 単発変換モード 2, 連続変換モード , 停止変換モード を設定できます。 • 単発変換モード 1: A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した チャネルまで A/D 変換後 , 終了します。動作中の再起動ができます。 • 単発変換モード 2: A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した チャネルまで A/D 変換後 , 終了します。動作中の再起動はできません。 • 連続変換モード: A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した チャネルまでの A/D 変換を変換中ビット (BUSY) で強制停止するまで 繰り返します。動作中の再起動はできません。 • 停止変換モード: A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した チャネルまでの A/D 変換を 1 チャネルごとに一時停止しながら変換中 ビット (BUSY) で強制停止するまで繰り返します。動作中の再起動は できません。一時停止中の再起動は , A/D 起動要因設定ビット (STS1, STS0) で設定した起動要因の発生によって異なります。 ( 注意事項 ) 単発 , 連続 , 停止の各変換モードの再起動不可は 16 ビットフリーランタ イマ 0 検出 , 16 ビットリロードタイマ 1 外部トリガ , ソフトウェアすべ ての起動に適用されます。 281 第 18 章 8/10 ビット A/D コンバータ 表 18.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 (2 / 2) ビット名 bit5, bit4, bit3 bit2, bit1, bit0 282 機 能 ANS2, ANS1, ANS0: A/D 変換開始 チャネル設定 ビット • A/D 変換の開始チャネルの設定 , および変換中チャネル番号の確認を行 うビットです。 • A/D 変換を起動した場合は , A/D 変換開始チャネル設定ビット (ANE2 ~ ANE0) で設定されたチャネルから A/D 変換を開始します。 • A/D 変換中は , 変換中のチャネル番号が読み出されます。停止変換モー ドでの一時停止中は , 直前に変換したチャネルの番号が読み出されま す。 また , 本ビットに値を設定した場合でも A/D 変換が開始されるまでは , 設定した値ではなく , 前回に A/D 変換したチャネル番号が読み出され ます。 ( 注意事項 ) A/D 変換開始チャネル設定ビット (ANS2, ANS1, ANS0) に開始チャネル を設定した後に , 本レジスタのビットをリードモディファイライト (RMW) 系命令で設定しないでください。 ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換 チャネルが読み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネル を設定した後に , 本レジスタのビットをリードモディファイライト (RMW) 系命令で設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換 わる可能性があります。 ANE2, ANE1, ANE0: A/D 変換終了 チャネル設定 ビット • A/D 変換の終了チャネルの設定を行うビットです。 • A/D 変換を起動した場合は , A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定されたチャネルまで A/D 変換を行います。 • ANS2 ~ ANS0 ビットでチャネルを設定することでチャネルが変換さ れます。連続 / 停止変換モードでは , ANS2 ~ ANS0 で設定した開始 チャネルが最後に変換されます。開始チャネルが終了チャネルより大 きい場合は , 開始チャネル→ AN7, AN0 →終了チャネルへとひと続きに 変換されます。 第 18 章 8/10 ビット A/D コンバータ A/D データレジスタ (ADCR0, ADCR1) 18.4.4 A/D データレジスタ (ADCR0/ADCR1) は , A/D 変換結果を格納するレジスタですが , A/D 変換の分解能を設定 , A/D 変換時のサンプリング時間の設定 , および A/D 変換時 のコンペア時間設定を行う機能もあります。 ■ A/D データレジスタ (ADCR0, ADCR1) 図 18.4-6 A/D データレジスタ (ADCR0, ADCR1) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000037H(上位) S10 ST1 ST0 CT1 CT0 - D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 000036H(下位) W W W W W R R R R R R R R R R D9~D0 初期値 00000XXXB(上位) XXXXXXXXB(下位) A/Dデータビット 変換データを格納 CT1 CT0 0 0 0 1 1 0 1 1 ST1 ST0 0 0 0 1 1 0 1 1 S10 コンペア時間設定ビット サンプリング時間設定ビット A/D変換分解能設定ビット 0 10ビット分解能モード(D9~D0) 1 8ビット分解能モード(D7~D0) R :リードオンリ W :ライトオンリ X :不定 - :未定義ビット <注意事項> コンペア時間 , サンプリング時間を設定するとき , 最小限必要な値が尊重されなければな りません。例えば , ある周波数では 44 マシンサイクルは使用できません。 詳細については , データシートを参照してください。 283 第 18 章 8/10 ビット A/D コンバータ 表 18.4-3 A/D データレジスタ 0 (ADCR0) の各ビットの機能説明 ビット名 bit15 bit14, bit13 bit12, bit11 S10: A/D変換分解能 設定ビット ST1, ST0: サンプリング 時間 設定ビット CT1, CT0: コンペア時間 設定ビット 機 能 • A/D 変換の分解能を設定するビットです。 • "0" を設定した場合は , 10 ビット分解能が設定されます。 • "1" を設定した場合は , 8 ビット分解能が設定されます。 ( 注意事項 ) 分解能によって , 使用される A/D データビットが異なります。 • A/D 変換のサンプリング時間を設定するビットです。 • A/D 変換が起動されると , サンプリング時間設定ビット (ST1, ST0) で 設定した時間 , アナログ入力が取り込まれます。 ( 注意事項 ) • マシンクロック周波数 16 (20, 24)MHz の場合に , "00B" を設定すると , 正常なアナログ変換値が得られない場合があります。 • "00B" を設定する場合は , マシンクロック周波数を 8MHz 以下として ください。 • A/D 変換時のコンペア時間を設定するビットです。 • アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , コンペア 時間設定ビット (CT1, CT0) で設定した時間後に , A/D 変換結果が確定 し , A/D データビット (D9 ~ D0) に格納されます。 ( 注意事項 ) • "00B" を設定する場合は , マシンクロック周波数を 8MHz 以下として ください。 • マシンクロック周波数 16 (20, 24)MHz の場合に , "00B" を設定すると , 正常なアナログ変換値が得られない場合があります。 bit10 bit9 ~ bit0 -: 未定義ビット - D9 ~ D0: A/D 変換終了 チャネル選択 ビット • A/D 変換結果が格納されるビットです。1 回の A/D 変換終了ごとに書 き換えられます。 • 通常は , 最終変換値が格納されます。 • 初期値は不定です。 ( 注意事項 ) A/D 変換データ保護機能があります ( 詳細は ,「18.6 8/10 ビット A/D コ ンバータの動作」を参照 ) 。 A/D 変換中に , A/D データビットにデータを書き込まないでください。 <注意事項> • A/D 変換分解能設定ビット (S10) を書き換える場合は , 必ず A/D 変換動作前に A/D 変 換動作を停止させてから書き換えてください。A/D 変換動作開始後に書き換えた場合 は , A/D データレジスタ (ADCR0, ADCR1) の内容は不定となります。 • A/D データレジスタ (ADCR0, ADCR1) を読み出す場合 , 10 ビット分解能モードを設定 した場合は , 必ずワード転送命令 (MOVW A, 002EH など ) を使用してください。 284 第 18 章 8/10 ビット A/D コンバータ 18.5 8/10 ビット A/D コンバータの割込み 8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ れると割込み要求を出力します。拡張インテリジェント I/O サービス (EI2OS) にも 対応しています。 ■ 8/10 ビット A/D コンバータの割込み 表 18.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因 8/10 ビット A/D コンバータ 割込み要求フラグビット ADCS:INT 割込み要求許可ビット ADCS:INTE 割込み要因 A/D 変換結果の A/D データレジスタへ格納 A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR) に格納される と , A/D 制御ステータスレジスタ (ADCS1) の割込み要求フラグビット (INT) に "1" が セットされ , 割込み要求許可ビット (ADCSI: INTE=1) に "1" が設定されていると割込み 要求を出力します。 ■ 8/10 ビット A/D コンバータの割込みと EI2OS 表 18.5-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルのアドレス EI2OS 割込み番号 #31 (1FH) レジスタ名 アドレス 下位 上位 バンク ICR10 0000BAH FFFF80H FFFF81H FFFF82H ○ ○:使用可能 ■ 8/10 ビット A/D コンバータの EI2OS 機能 10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリに転送でき ます。EI2OS 機能を使用する場合は , 変換データ保護機能が働き , A/D 変換データがメ モリに転送され , A/D 制御ステータスレジスタ (ADCS1) の割込み要求フラグビット (INT) が "0" にクリアされるまで , A/D 変換は一時停止されるので , データの欠落を防 止できます。 285 第 18 章 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータの動作 18.6 8/10 ビット A/D コンバータには , 単発変換 , 連続変換 , 停止変換の 3 つの変換モー ドがあります。以下に , それぞれのモードでの動作を説明します。 ■ 単発変換モードでの動作 単発変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ れたチャネルの間でのアナログ入力は連続して変換されます。変換されるチャネルが ANE ビットで設定された終了チャネルに達すると A/D 変換は停止します。開始と終了 チャネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルが変換されると 停止します。 図 18.6-1 に単発変換モードで動作するために必要な設定を示します。 図 18.6-1 単発変換モードの設定 ADCS ADCR ADER bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BUSY INT INTE PAUS STS1 STS0 STRT MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ 予約 0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ S10 ST1 ST0 CT1 CT0 − ◇ ◇ ◇ ◇ 変換データを保管 ADSEL − − − − − − − − − − − − − − − ◇ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◇ : 変換中に使用 ◆ : 端子に相当したビットを "1" に設定 0: "0" に設定 <参考> 下記に単発変換モードでの変換シーケンス例を示します ( ここでは ADSEL = 0 とする )。 ANS = 000B, ANE = 011B: AN0 → AN1 → AN2 → AN3 → 終了 ANS = 110B, ANE = 010B: AN6 → AN7 → AN0 → AN1 → AN2 → 終了 ANS = 011B, ANE = 011B: AN3 → 終了 ■ 停止変換モードでの動作 停止変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ れたチャネルの間でのアナログ入力は , 各チャネルの変換後に一時停止しながら連続 して変換されます。ANE ビットで設定された終了チャネルが実行されると , A/D 変換 は一時停止し, 再びANSビットで設定されたチャネルから実行します。開始と終了チャ ネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルの変換が繰り返され ます。 図 18.6-2 に停止変換モードで動作するために必要な設定を示します。 286 第 18 章 8/10 ビット A/D コンバータ 図 18.6-2 停止変換モードの設定 ADCS ADCR ADER bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BUSY INT INTE PAUS STS1 STS0 STRT MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 ◇ ◇ ◇ ◇ ◇ ◇ 予約 0 MD1 ◇ 1 1 ◇ ◇ ◇ ◇ ◇ ◇ S10 ST1 ST0 CT1 CT0 − ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ 変換データを保管 ADSEL ◇ ◆ ◆ ◆ ◆ ◆ ◆ ◇ : 変換中に使用 ◆ : 端子に相当したビットを "1" に設定 0: "0" に設定 1: "1" に設定 <参考> 下記に停止変換モードでの変換シーケンス例を示します ( ここでは ADSEL = 0 とする )。 ANS = 000B, ANE = 011B: AN0 → 一時停止 → AN1 → 一時停止 → AN2 → 一時停止 → AN3 →一時停止 → AN0 → 繰返し ANS = 110B, ANE = 011B: AN6 → 一時停止 → AN7 → 一時停止 → AN0 → 一時停止 → AN1 →一時停止→ AN2 → 一時停止 → AN3 → 一時停 止→ AN6 → 繰返し ANS = 011B, ANE = 011B: AN3 →一時停止→ AN3 →一時停止→ 繰返し 287 第 18 章 8/10 ビット A/D コンバータ 18.6.1 A/D 変換の EI2OS 使用 8/10 ビット A/D コンバータは , A/D 変換結果をメモリに転送するために EI2OS 転送 を使用します。 ■ A/D 変換の EI2OS 使用 EI2OS を使用したときの動作フローを以下に示します。 図 18.6-3 EI2OS を使用したときのサンプル動作フローチャート A/D 変換開始 サンプル & ホールド EI2OS 開始 変換 変換終了 割込み発生 データ転送 データ 転送の繰返しが 規定された回数 * に 達した ? YES 割込み処理 NO 割込みクリア *: 回数は EI2OS の設定で規定されます。 EI2OSを使用することで, 変換データ保護機能は連続変換中であってもすべてのデータ を消失から保護します。安全に逓倍データ要素をメモリに転送できます。 288 第 18 章 8/10 ビット A/D コンバータ 18.6.2 A/D 変換データ保護機能 A/D 変換が割込み許可状態で実行されていると変換データ保護機能が動作します。 ■ A/D 変換データ保護機能 A/D コンバータには , 変換データを保管するデータレジスタは 1 つだけです。単発変換 が終了すると , データレジスタ中のデータは上書きされます。 次の変換データがストアされる前に変換結果がメモリに転送されない場合 , 変換デー タの一部が消失します。割込み許可状態 (INTE = 1) でのデータ保護機能は , そのよう なデータの消失を防ぎます。 ● EI2OS が使用されていないときのデータ保護機能 変換データが A/D データレジスタ (ADCR) にストアされるとき , A/D 制御ステータス レジスタ 1(ADCS1) の INT ビットは "1" に設定されます。 INT ビットが "1" の間 , A/D 変換は停止します。 A/D データレジスタ (ADCR) 中のデータが割込みルーチンでメモリに転送された後 , INT ビットがクリアされると停止状態が解除されます。 ● EI2OS を使用しているときのデータ保護機能 EI2OS を使用した連続変換において , A/D 制御ステータスレジスタ 1(ADCS1) の PAUS ビットは変換が終了するまで "1" に維持されます。この状態は , EI2OS がデータレジス タからメモリに変換データの転送を完了させるまで続きます。その間 , A/D 変換は停止 され , 次の変換データはストアされません。このとき , 一時停止フラグビット (ADCS1: PAUS) は自動的に "0" にクリアされません。クリアするためには同ビットに "0" を書 き込んでください。連続して A/D 変換を行っている場合は , A/D 変換動作が再開され ます。 図 18.6-4 に EI2OS 使用時のデータ保護機能の動作フローを示します。 289 第 18 章 8/10 ビット A/D コンバータ 図 18.6-4 EI2OS 使用時のデータ保護機能の動作フローチャート EI2OS を設定 連続 A/D 変換開始 最初の変換終了 データをデータレジスタに 保管 EI2OS を起動 2 番目のデータ変換完了 EI2OS は終了 ? NO A/D 変換を停止 YES データをデータレジスタに 保管 3 番目のデータ変換 EI2OS を起動 続く 全データ変換完了 EI2OS を起動 続く データをデータレジスタに 保管 割込み処理ルーチン A/D 変換を初期化または停止 終了 ( 注意事項 ) A/D コンバータが停止している間のステップは 除外する。 <注意事項> • 変換データ保護機能は , 割込み許可状態 (ADCS1: INTE = 1) のときのみ動作します。 • EI2OS が動作中で A/D 変換が停止している間に割込みが禁止になった場合 , A/D 変換 は再開されます。これにより , 古いデータを保管する前に新しいデータの上書きが発生 します。停止中に再開を試みると古いデータが破壊されます。 • 停止中に再開を試みるとスタンバイデータが破壊されます。 290 第 18 章 8/10 ビット A/D コンバータ 18.7 A/D コンバータ使用上の注意 A/D コンバータを使用する場合の注意点を示します。 ■ 8/10 ビット A/D コンバータ使用上の注意 ● アナログ入力端子 A/D コンバータのアナログ入力端子はポート 6 およびポート B の入出力端子と兼用に なっており , ポート 6 方向レジスタ (DDR6) とアナログ入力許可レジスタ (ADER) を切 り換えて使用します。A/D コンバータのアナログ入力端子として使用する場合は , ポー ト 6 方向レジスタ (DDR6 と DDRB) の対応するビットに "0" を設定 ( 入力ポートに設定 ) 後 , アナログ入力許可レジスタ (ADER) レジスタの対応するビットに "1" を設定 ( アナ ログ入力モードに設定 : ADEx=1) し , ポート側の入力ゲートを固定してください。ポー ト入出力モード (ADEx=0) では中間レベルの信号が入力されると , ゲートに入力リーク 電流が流れます。 ● 内部タイマで使用する場合の注意 A/D コンバータを内部タイマで起動する場合 , A/D 制御ステータスレジスタ (ADCS1) の A/D 起動要因設定ビット (STS1, STS0) で設定しますが , 内部タイマの入力値は , イ ンアクティブ側 ( 内部タイマの場合は "L") にしてください。アクティブ側にしておく と , A/D 制御ステータスレジスタ (ADCS) へデータ書込みを行った場合 , A/D コンバー タが動作し始める場合があります。 ● A/D コンバータの電源の投入および切断順序 A/D コンバータの電源端子 (AVcc, AVRH, AVRL) とアナログ入力端子 (AN0 ~ AN7) へ の電圧印加は , 必ずデジタル電源 (Vcc) の投入後に行ってください。A/D コンバータの 電源 , およびアナログ入力電源を切断した後に , デジタル電源 (Vcc) を切断してくださ い。AVR は , AVcc を超えないように電圧の印加と切断を行ってください。 ● A/D コンバータの電源電圧について ラッチアップ防止のため , A/D コンバータの電源 (AVcc) は , デジタル電源 (Vcc) の電圧 を超えないようにしてください。 291 第 18 章 8/10 ビット A/D コンバータ 18.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) 単発変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。 ■ 単発変換モードの EI2OS 起動プログラム例 ● 処理仕様 • アナログ入力 AN1 ~ AN3 まで変換して終了します。 • 変換データは , "200H" ~ "205H" 番地に順に転送します。 • 分解能は , 10 ビットとします。 • 起動は , ソフトウェア起動で行います。 図 18.8-1 単発変換モードの EI2OS 起動プログラム例のフロー 変換開始 AN1 割込み→EI2OS転送 AN2 割込み→EI2OS転送 AN3 割込み→EI2OS転送 終了 割込みシーケンス 並行処理 292 第 18 章 8/10 ビット A/D コンバータ ● コーディング例 BAPL BAPM BAPH EQU EQU EQU 000100H 000101H 000102H ; 下位バッファアドレスポインタ ; 中間バッファアドレスポインタ ; 上位バッファアドレスポインタ ISCS EQU 000103H ; EI2OS ステータスレジスタ IOAL EQU 000104H ; 下位 I/O アドレスレジスタ IOAH EQU 000105H ; 上位 I/O アドレスレジスタ DCTL EQU 000106H ; 下位データカウンタ DCTH EQU 000107H ; 上位データカウンタ DDR6 EQU 000016H ; ポート 6 方向レジスタ ADER0 EQU 00000CH ; アナログ入力許可レジスタ ICR10 EQU 0000BAH ; A/D コンバータ用割込み制御レジスタ ADCS0 EQU 000034H ; A/D 制御ステータスレジスタ ADCS1 EQU 000035H ; ADCR0 EQU 000036H ; A/D データレジスタ ADCR1 EQU 000037H ; ;-----Main program--------------------------------------------------------------CODE CSEG START: ; スタックポインタ (SP) が既に初期化済み ; であると想定 AND CCR,#0BFH ; 割込み不可 MOV ICR10,#00H ; 割込みレベル : 0 ( 最優先 ) MOV BAPL,#00H ; 変換データが転送され , 保管されるアドレスを 設定 ; MOV BAPM,#02H ; (200H ~ 205H を使用 ) MOV BAPH,#00H ; MOV ISCS,#18H ; ワードデータを転送 , アドレスに 1 を加算 , ; そして I/O メモリからデータを転送 MOV IOAL,#36H ; アナログデータレジスタのアドレスを MOV IOAH,#00H ; 転送ソースアドレスポインタとして設定 MOV DCTL,#03H MOV MOV MOV MOV MOV DDR6,#11110001B ADER0,#00001110B CTH,#00H ADCS0,#0BH ADCS1,#0A2H MOV OR ILM,#07H CCR,#40H MOV MOV BRA A,#00H A,#01H LOOP ; EI2OS 転送カウントを 3 に設定 , ; これは変換カウントと同じ値 ; P61 ~ P63 を入力として設定 ; P61/AN1~P63/AN3をアナログ入力として設定 ; ; シングル活性化 , AN1 ~ AN3 を変換 ; ソフトウェア活性化 , A/D 変換開始 ; 割込み許可 ; PS の ILM をレベル 7 に設定 ; 割込み許可 LOOP: ; ループエンドレス 293 第 18 章 8/10 ビット A/D コンバータ ;-----Interrupt program---------------------------------------------------------ED_INT1: MOV I:ADCS1,#00H ; A/D 変換停止 , 割込みフラグをクリア , 不可 ; RETI ; 割込みから復帰 CODE ENDS ;-----Vector setting------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFB4H ; ベクタを割込み #18(12H) に設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモード設定 VECT ENDS END START 294 第 18 章 8/10 ビット A/D コンバータ 18.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) 連続変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。 ■ 連続変換モードの EI2OS 起動プログラム例 処理仕様 • アナログ入力 AN3 ~ AN5 の変換を 2 度行い , 各チャネルの変換データを 2 個取得 します。 • 変換データは , "600H" ~ "60BH" 番地に順に転送します。 • 分解能は , 10 ビットとします。 • 起動は , 16 ビットリロードタイマで行います。 図 18.9-1 連続変換モードの EI2OS 起動プログラムのフロー 変換開始 AN3 割込み→EI2OS転送 AN4 割込み→EI2OS転送 AN5 割込み→EI2OS転送 全6回転送後 割込みシーケンス 終了 295 第 18 章 8/10 ビット A/D コンバータ ● コーディング例 BAPL BAPM BAPH EQU EQU EQU 000100H 000101H 000102H ; 下位バッファアドレスポインタ ; 中間バッファアドレスポインタ ; 上位バッファアドレスポインタ ISCS IOAL IOAH DCTL DCTH DDR6 ADER0 ICR10 ADCS0 ADCS1 ADCR0 ADCR1 TMCSR1L TMCSR1H TMRL1L TMRL1H EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 000103H 000104H 000105H 000106H 000107H 000016H 00000CH 0000BAH 000034H 000035H 000036H 000037H 000068H 000069H 003902H 003903H ; EI2OS ステータスレジスタ ; 下位 I/O アドレスレジスタ ; 上位 I/O アドレスレジスタ ; 下位データカウンタ ; 上位データカウンタ ; ポート 6 方向レジスタ ; アナログ入力許可レジスタ ; A/D コンバータ用割込み制御レジスタ ; A/D 制御ステータスレジスタ ; ; A/D データレジスタ ; ; 下位制御ステータスレジスタ 1 ; ; 16 ビットリロードレジスタ 1 ; ;-----Main program--------------------------------------------------------------CODE CSEG START: AND MOV CCR,#0BFH ICR10,#08H ; MOV MOV MOV MOV BAPL,#00H BAPM,#06H BAPH,#00H ISCS,#18H MOV MOV MOV IOAL,#36H IOAH,#00H DCTL,#06H MOV MOV MOV MOV MOV DDR6,#00000000B ADER0,#00111000B DCTH,#00H ADCS0,#9DH ADCS1,#0A8H MOVW TMRL1L,#0320H 296 MOV TMCSR1H,#00H MOV TMCSR1L,#12H ; スタックポインタ (SP) が既に初期化済み ; であると想定 ; 割込み不可 ; 割込みレベル : 0 ( 最優先 ) ; 割込み時に E12OS を許可 ; 変換データが保管されるアドレスを設定 ; (600H ~ 60BH を使用 ) ; ; ワードデータを転送 , アドレスに 1 を加算 , ; そして I/O メモリからデータを転送 ; アナログデータレジスタのアドレスを ; 転送ソースアドレスポインタとして設定 ; EI2OS による 6 種類転送 ; (3 チャネルに対しそれぞれ 2 種類 ) ; P60 ~ P67 を入力として設定 ; P63/AN3 ~ P65/AN5をアナログ入力として設定 ; ; 継続変換モード , AN3 ~ AN5 を変換 ;16 ビットタイマを起動 , A/D 変換を開始し ; 割込みを許可する ; タイマ値を 800(320H), 100s に設定 ; クロックソースを 125ns に設定 ; 外部トリガを禁止 ; タイマ出力を禁止 , 割込みを禁止し ; リロードを許可 第 18 章 8/10 ビット A/D コンバータ MOV MOV OR TMCSR1L,#13H ILM,#07H CCR,#40H ;16 ビットタイマを起動 ; PS の ILM をレベル 7 に設定 ; 割込みを許可 LOOP: MOV A,#00H ; ループエンドレス MOV A,#01H BRA LOOP ;-----Interrupt program---------------------------------------------------------ED_INT1: MOV I:ADCS1,#80H ; A/D 変換停止不可 , 割込みフラグを ; クリア , 不可 RETI ; 割込みから復帰 CODE ENDS ;-----Vector setting------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFB4H ; ベクタを割込み #18(12H) に設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモード設定 VECT ENDS END START 297 第 18 章 8/10 ビット A/D コンバータ 18.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) 停止変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。 ■ 停止変換モードの EI2OS 起動プログラム例 ● 処理仕様 • アナログ入力 AN3 を一定期間で 12 回変換します。 • 変換データは , "600H" ~ "617H" 番地に順に転送します。 • 分解能は , 10 ビットとします。 • 起動は , 16 ビットリロードタイマで行います。 図 18.10-1 停止変換モードの EI2OS 起動プログラムのフロー 変換開始 AN3 割込み EI2OS転送 停止 12回転送後 割込みシーケンス 16ビットリロードタイマ1起動 終了 298 第 18 章 8/10 ビット A/D コンバータ ● コーディング例 BAPL BAPM BAPH EQU EQU EQU 000100H 000101H 000102H ; 下位バッファアドレスポインタ ; 中間バッファアドレスポインタ ; 上位バッファアドレスポインタ ISCS IOAL IOAH DCTL DCTH DDR6 ADER0 ICR10 ADCS0 ADCS1 ADCR0 ADCR1 TMCSR1L TMCSR1H TMRL1L TMRL1H EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 000103H 000104H 000105H 000106H 000107H 000016H 00000CH 0000BAH 000034H 000035H 000036H 000037H 000068H 000069H 003902H 003903 ; EI2OS ステータスレジスタ ; 下位 I/O アドレスレジスタ ; 上位 I/O アドレスレジスタ ; 下位データカウンタ ; 上位データカウンタ ; ポート 6 方向レジスタ ; アナログ入力許可レジスタ ; A/D コンバータ用割込み制御レジスタ ; A/D 制御ステータスレジスタ ; ; A/D データレジスタ ; ; 下位制御ステータスレジスタ 1 ; ; 16 ビットリロードレジスタ 1 ; ;-----Main program--------------------------------------------------------------CODE CSEG START: ; スタックポインタ (SP) が既に初期化済み ; であると想定 AND CCR,#0BFH ; 割込み不可 MOV MOV MOV MOV MOV ICR10,#08H BAPL,#00H BAPM,#06H BAPH,#00H ISCS,#19H MOV MOV IOAL,#36H IOAH,#00H MOV MOV MOV MOV MOV DCTL,#0CH DDR6,#00000000B ADER0,#00001000B ADCS0,#0DBH ADCS1,#0A8H MOVW TMRL1L,#0320H MOV TMCSR1H,#00H MOV TMCSR1L,#12H MOV MOV TMCSR1L,#13H ILM,#07H ; 割込みレベル : 0 ( 最優先 )+ EI2OS. ; 変換データが保管されるアドレスを設定 ; (600H ~ 617H を使用 ) ; ; ワードデータを転送 , アドレスに 1 を加算 , ; I/O メモリからデータを転送 ; そしてリソース要求により終了 ; アナログデータレジスタのアドレスを ; 転送ソースアドレスポインタとして設定 ; EI2OS による 6 種類転送 ; P60 ~ P67 を入力として設定 ; P63/AN3 をアナログ入力として設定 ; 変換モードを停止 , AN3 CH を変換 ;16 ビットタイマを起動 , A/D 変換を開始し ; 割込みを許可する ; タイマ値を 800(320H), 100s に設定 ; クロックソースを 125ns に設定 ; 外部トリガを禁止 ; タイマ出力を禁止 , 割込みを禁止し ; リロードを許可 ;16 ビットタイマを起動 ; PS の ILM をレベル 7 に設定 299 第 18 章 8/10 ビット A/D コンバータ OR CCR,#40H ; 割込みを許可 LOOP: MOV A,#00H ; ループエンドレス MOV A,#01H BRA LOOP ;-----Interrupt program---------------------------------------------------------ED_INT1: MOV I:ADCS1,#80H ; A/D 変換停止不可 , 割込みフラグを ; クリア , 不可 RETI ; 割込みから復帰 CODE ENDS ;-----Vector setting------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFB4H ; ベクタを割込み #18(12H) に設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモード設定 VECT ENDS END START 300 第 19 章 UART0, UART1 UART0, UART1 の機能と動作について説明しま す。 ( 注意事項 ) UART2 は MB90390 シリーズでは規定されていま せん。このため , この機能を使用しないことを推奨 します。 19.1 UART0, UART1 の特長 19.2 UART のブロックダイヤグラム 19.3 UART のレジスタ 19.4 UART0, UART1 の動作 19.5 ボーレート 19.6 内部クロックおよび外部クロック 19.7 転送データフォーマット 19.8 パリティビット 19.9 割込み生成とフラグのセットタイミング 19.10 UART0, UART1 の応用例 301 第 19 章 UART0, UART1 19.1 UART0, UART1 の特長 UART0, UART1 は , 非同期通信または CLK 同期通信を行うためのシリアル I/O ポー トです。MB90390 シリーズには 4 本の UART があります。UART2, UART3 につい ては「第 20 章 UART2, UART3」を参照してください。 ■ UART0, UART1 の特長 UART0, UART1 には以下の特長があります。 • 全二重ダブルバッファ • CLK 同期と CLK 非同期調歩式データ転送のサポート • マルチプロセッサモードのサポート • 専用ボーレートジェネレータの内蔵 (12 種類 ) • 外部クロック入力または内部タイマによる自由なボーレート設定のサポート • 可変長データ (7ビット~9ビット[パリティなし], 6ビット~8ビット[パリティあり]) • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 割込み機能 ( 受信割込みと送信割込み ) • NRZ 形式の転送フォーマット 302 第 19 章 UART0, UART1 19.2 UART のブロックダイヤグラム 図 19.2-1 に , UART0, UART1 のブロックダイヤグラムを示します。 ■ UART0, UART1 のブロックダイヤグラム 図 19.2-1 UART0, UART1 のブロックダイヤグラム コントロールバス 受信割込み(CPUへ) 専用ボーレートクロック SCK0 送信クロック 16ビットリロードタイマ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 コントロールバス (注意事項) このダイヤグラムは,UART0,UART1については有効です。 303 第 19 章 UART0, UART1 19.3 UART のレジスタ UART0, UART1 には , 次の 4 つのレジスタがあります。 • シリアルモード制御レジスタ • ステータスレジスタ • インプットデータ / アウトプットデータレジスタ • レート・データレジスタ ■ UART のレジスタ シリアルモード制御レジスタ bit 7 アドレス:ch.0 000020H ch.1 000024H リード / ライト→ 初期値→ 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) 14 13 12 11 10 9 8 PE TDRE RIE TIE RBF TBF (R) (0) (R) (1) (R/W) (0) (R/W) (0) (R) (0) (R) (0) UMC0 UMC1 ステータスレジスタ bit15 アドレス:ch.0 000021H ch.1 000025H リード / ライト→ 初期値→ RDRF ORFE (R) (0) (R) (0) USR0 USR1 インプットデータレジスタ / アウトプットデータレジスタ bit 7 アドレス:ch.0 000022H ch.1 000026H リード / ライト→ 初期値→ 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) (W) (X) (R/W) (X) (R/W) (X) 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) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (X) UIDR0( 読出し ) UODR0( 書込み ) UIDR1( 読出し ) UODR1( 書込み ) レート・データレジスタ bit15 アドレス:ch.0 000023H ch.1 000027H リード / ライト→ 初期値→ R/W: リード / ライト可能 W: ライトオンリ R: リードオンリ X: 不定 304 URD0 URD1 第 19 章 UART0, UART1 シリアルモード制御レジスタ (UMC) 19.3.1 シリアルモード制御レジスタ (UMC) は , UART0, UART1 の動作モードを指定しま す。動作が停止中に動作モードを設定します。ただし , RFC ビットは動作中もアク セス可能です。 ■ シリアルモード制御レジスタ (UMC) 図 19.3-1 シリアルモード制御レジスタ (UMC) の構成 アドレス:bit 7 ch.0 000020H ch.1 000024H 6 5 4 3 2 1 0 UMC0 UMC1 PEN SBL MC1 MC0 SMDE RFC SCKE SOE R/W R/W R/W R/W R/W W R/W R/W 初期値 00000100B bit0 シリアル出力イネーブル SOE 0 SOT0, SOT1 端子禁止 (Hi-Z) 1 SOT0, SOT1 端子許可 (TxData) bit1 シリアル出力イネーブル SCKE 0 外部シリアルクロック入力 1 内部シリアルクロック出力 bit2 受信フラグクリア RFC 読出し時 書込み時 0 RDRF, ORFE, PE をクリア 1 影響なし bit3 SMDE 常に "1" 同期モードイネーブル 0 スタート・ストップ CLK 同期送信 1 非同期送信 bit5 bit4 動作モード設定 MC1 MC0 0 0 0 1 モード 1:非同期 , 8(7) データビット 1 0 モード 2:非同期 , マルチプロセッサ , 8+1 データビット 1 1 モード 3:非同期 , 9(8) データビット モード 0:非同期 , 7(6) データビット bit6 ストップビット長 SBL 0 1 ビット 1 2 ビット bit7 パリティイネーブル PEN R/W : リード / ライト可能 W : ライトオンリ ( 読出しは常に "0" を戻します ) : 初期値 0 パリティ使用禁止 1 パリティを使用 305 第 19 章 UART0, UART1 ■ シリアルモード制御レジスタ (UMC) の内容 表 19.3-1 シリアル制御レジスタビットの機能 ビット名 bit7 bit6 機 能 PEN: パリティ許可 シリアルデータ I/O でパリティビットの追加 ( 送信時 ) または検出 ( 受 信時 ) を指定します。モード 2 では "0" に設定します。 "0": パリティなし "1": パリティあり SBL: ストップビット長 送信データのストップビット数を指定します。受信データについては , 最初のストップビットだけが認識され , それ以降のストップビットは無 視されます。 "0":1 ビット長 "1":2 ビット長 転送データの長さを制御します。表 19.4-1 に , 本ビットで選択可能な 4 つの転送モード ( データ長 ) を示します。 bit5, bit4 MC1, MC0: モード制御ビット Mode MC1 MC0 データ長 0 0 0 7 (6) 1 0 1 8 (7) 2 1 0 8+1 3 1 1 9 (8) 括弧内の数字は , パリティ付きのデータ長を示します。 "+1" はパリティの代わりにアドレス / データビットを意味します。 bit3 bit2 bit1 SMDE: 同期モード許可 RFC: レシーバフラグ クリア SCKE: SCLK 許可 SMDE は , 転送方法を選択します。 "0": 調歩式 CLK 同期転送 ( 調歩ビットによるクロック選択の同期転送 ) "1": 調歩式 CLK 非同期転送 "0" を書き込むと , USR レジスタ中の RDRF, ORFE, PE フラグがクリア されます。"1" 書込みは無効であり , 読出し値は常に "1" になります。 ( 注意事項 ) 受信割込みが UART0, UART1 操作中許可されている場合 , RDRF, ORFE, PE のどれかが "1" になっていれば , RFC には "0" のみを書き込みます。 CLK 同期モードで本ビットに "1" を書き込むと , ポート端子が UART0, UART1 シリアルクロック出力端子に切り換わり , 同期クロックが出力 されます。CLK 非同期モードまたは外部クロックモードで "0" を設定 してください。 "0": 汎用入出力ポートとして機能し, シリアルクロックを出力しません。 ポートが入力モード (DDR=0) に設定され , RC3 ~ RC0 が "1111B" に 設定されている場合 , 外部クロック入力端子として機能します。 "1": UART0, UART1 シリアルクロック出力端子として機能します。 bit0 306 SOE: シリアル出力許可 "1" を書き込むと , ポート端子が UART0, UART1 シリアルデータ出力端 子に切り換わり , シリアル出力が可能になります。 "0": ポート端子として機能し , シリアルデータを出力しません。 "1": UART0, UART1 シリアルデータ出力端子 (SOT) として機能します。 第 19 章 UART0, UART1 ステータスレジスタ (USR) 19.3.2 ステータスレジスタ (USR) は , UART0, UART1 ポートの現在の状態を示します。 ■ ステータスレジスタ (USR) の構成 図 19.3-2 ステータスレジスタ (USR) の構成 アドレス:bit 15 ch.0 000021H ch.1 000025H 14 13 RDRF ORFE PE R R 12 11 TDRE RIE R 10 9 TIE RBF R R/W R/W R 8 USR0 USR1 初期値 TBF R 00010000B bit8 送信ビジーフラグビット TBF 0 1 送信アイドル 送信ビジー bit9 受信ビジーフラグビット RBF 0 受信アイドル 1 受信ビジー bit10 送信割込みイネーブルビット TIE 0 1 割込み禁止 割込み許可 bit11 送信割込みイネーブルビット RIE 0 割込み禁止 1 割込み許可 bit12 TDRE 送信データレジスタエンプティビット 0 UODR0, UODR1 におけるデータあり 1 UODR0, UODR1 におけるデータなし bit13 PE パリティエラービット 0 パリティエラー発生なし 1 パリティエラー発生あり bit14 ORFE オーバラン / フレーミングエラービット 0 オーバラン / フレーミングエラー発生なし 1 受信中にオーバラン / フレーミングエラー発生あり bit15 RDRF 受信データレジスタフルビット R/W : リード / ライト可能 0 UIDR0, UIDR1 におけるデータなし R : リードオンリ 1 UIDR0, UIDR1 におけるデータあり : 初期値 307 第 19 章 UART0, UART1 ■ ステータスレジスタ (USR) の内容 表 19.3-2 ステータスレジスタビットの機能 (1 / 2) ビット名 bit15 bit14 RDRF: 受信データ レジスタ フルビット ORFE: オーバラン / フレーミング エラービット 機能 UIDR ( インプットデータレジスタ ) の状態を示すフラグです。UIDR レ ジスタに受信データがロードされるとセットされ , UIDR レジスタを読 み出すか , UMC レジスタ中の RFC に "0" を書き込むとクリアされます。 RIE がアクティブな場合 , RDRF がセットされていれば受信割込み要求 が生成されます。 "0":UIDR 中にデータなし "1":UIDR 中にデータあり 受信中にオーバランまたはフレーミングエラーが発生した場合にセッ トされるフラグです。UMC レジスタ中の RFC に "0" を書き込むと , ク リアされます。本フラグをセットすると , UIDR 中のデータは無効にな り , 受信用シフトレジスタから UIDR へのロードが実行されません。 RIE がアクティブな場合 , ORFE がセットされていれば受信割込み要求 が生成されます。 "0": エラーなし "1": エラーあり ( 下の表を参照 ) UIDR0, UIDR1 の状態 RDRF ORFE 0 0 空 0 1 フレーミングエラー 1 0 有効データ 1 1 オーバランエラー PE: パリティ エラービット 受信パリティエラーが発生した場合にセットされるフラグです。UMC レジスタ中の RFC に "0" を書き込むとクリアされます。本フラグを セットすると , UIDR 中のデータは無効になり , 受信用シフタから UIDR へのロードが実行されません。RIE がアクティブな場合 , PE がセット されていれば受信割込み要求が生成されます。 "0": パリティエラーなし "1": パリティエラー発生 bit12 TDRE: 送信データ レジスタ エンプティ ビット UODR ( アウトプットデータレジスタ ) の状態を示すフラグです。 UODR レジスタに送信データを書き込むとクリアされます。データが 送信用シフタにロードされ , 転送が開始されるとセットされます。TIE がアクティブな場合 , TDRE がセットされていれば送信割込み要求が生 成されます。 "0":UODR 中にデータあり "1":UODR 中にデータなし bit11 RIE: 受信割込み 許可ビット 受信割込み要求を許可します。 "0": 割込みを禁止 "1": 割込みを許可 bit13 308 第 19 章 UART0, UART1 表 19.3-2 ステータスレジスタビットの機能 (2 / 2) ビット名 機能 TIE: 送信割込み 許可ビット 送信割込み要求を許可します。TDRE が "1" のとき送信割込みが許可さ れると , 送信割込みが直ちに生成されます。 "0": 割込みを禁止 "1": 割込みを許可 bit9 RBF: 受信ビジー フラグビット UART0, UART1 がインプットデータを受信中であることを示すフラグで す。スタートビットが検出されるとセットされ , ストップビットが検出 されるとクリアされます。 "0": 受信側がアイドル状態 "1": 受信側がビジー状態 bit8 TBF: 送信ビジー フラグビット UART0, UART1 がインプットデータを送信中であることを示すフラグで す。送信データが UODR レジスタに書き込まれるとセットされ , 送信 が完了するとクリアされます。 "0": 送信側がアイドル状態 "1": 送信側がビジー状態 bit10 309 第 19 章 UART0, UART1 19.3.3 インプットデータレジスタ (UIDR) とアウトプット データレジスタ (UODR) インプットデータレジスタ (UIDR) は , シリアルデータインプットレジスタであり , アウトプットデータレジスタ (UODR) は , シリアルデータアウトプットレジスタで す。 データ長が 6 ビットの場合 , 最大有効ビットの D7 と D6 が無視され , データ長が 7 ビットの場合 , 最大有効ビットの D7 が無視されます。USR レジスタ中の TDRE=1 のときのみ UODR に書き込みし , USR レジスタ中の RDRF=1 のときのみ UIDR を 読出しできます。 ■ インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR) 図 19.3-3 インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR) アドレス bit 7 ch.0 000022 H ch.1 000026 H 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 X X X X X X X XB bit 7~ bit 0 R/W: リード / ライト可能 310 リード / ライト 読出し時 書込み時 データレジスタ 入力データレジスタから読出し 出力データレジスタへ書込み 第 19 章 UART0, UART1 レート・データレジスタ (URD) 19.3.4 レート・データレジスタ (URD) は , UART0, UART1 用のデータ転送速度を選択する レジスタです。送信データ長が 9 ビットのとき , データの最大有効ビット (bit8) を 保持します。UART0, UART1 が停止中にボーレートとパリティを設定してくださ い。 ■ レート・データレジスタ (URD) 図 19.3-4 レート・データレジスタ (URD) の構成 アドレス: bit 15 ch.0 000023 H ch.1 000027 H 14 13 12 BCH RC3 RC2 RC1 11 10 RC0 BCH0 9 8 P D8 R/W R/W R/W R/W R/W R/W R/W R/W URD0 URD1 初期値 0 0 0 0 0 0 0 XB bit8 D8 X UIDRn/UODRn データビット 8 リード / ライト bit9 パリティビット P 0 偶数パリティ 1 奇数パリティ bit10 BCH0 - ボーレートクロック変換 1 詳細については表 19.3-3 を参照してください。 bit14~bit11 RC3~RC0 - オーバラン / フレーミングエラー 詳細については表 19.3-3 を参照してください。 bit15 BCH R/W : リード / ライト可能 : - 受信データレジスタフル 詳細については表 19.3-3 を参照してください。 初期値 311 第 19 章 UART0, UART1 ■ レート・データレジスタ (URD) の内容 表 19.3-3 レート・データレジスタビットの機能 ビット名 機能 ボーレートクロック用のマシンサイクルを指定します ( 詳細について は , 「19.4 UART0, UART1 の動作」を参照 ) 。 bit15, bit10 BCH, BCH0: ボーレート クロック変換 ビット BCH BCH0 分周比 各マシンサイクルの設定例 0 0 6 分周 24MHz マシンサイクル 24/6=4MHz 0 1 4 分周 16MHz マシンサイクル 16/4=4MHz 1 0 3 分周 12MHz マシンサイクル 12/3=4MHz 1 1 5 分周 20MHz マシンサイクル 20/5=4MHz 10MHz マシンサイクル 10/5=2MHz UART0, UART1 ポート用のクロック入力を選択します ( 詳細について は , 「19.4 UART0, UART1 の動作」を参照 ) 。 RC3 ~ RC0 bit14 ~ bit11 312 RC3, RC2, RC1, RC0 0000B ~ 1011B クロック入力 専用ボーレートジェネレータ 1101B 16 ビットリロードタイマ 0 1111B 外部クロック bit9 P: パリティ ビット パリティがアクティブのとき , 偶数 / 奇数パリティを設定します (PEN=1)。 "0": 偶数パリティ "1": 奇数パリティ bit8 D8: UIDRn/UODRn データ ビット 8 モード 2 または 3 (9 ビットデータ長 ) およびパリティなしでの転送 データの bit8 を保持します。読出し時には UIDR レジスタの bit8 とし て , 書込み時には UODR レジスタの bit8 として扱われます。その他 のモードでは意味を持ちません。USR レジスタ中で TDRE=1 のとき のみ D8 に書き込みます。 第 19 章 UART0, UART1 19.4 UART0, UART1 の動作 表 19.4-1 に , UART0, UART1 の動作モードを示します。モードを切り換えるには , UMC レジスタに値を設定します。 ■ UART0, UART1 の動作モード 表 19.4-1 UART0, UART1 の動作モード モード パリティ データ長 ON 6 OFF 7 ON 7 OFF 8 OFF 8+1 ON 8 OFF 9 クロックモード ストップビット長 * 0 1 2 CLK 非同期または CLK 同期 1 ビットまたは 2 ビット 3 *: ストップビット長については , 送信動作のみ指定が可能です。受信動作について は常に 1 ビット長となります。UART0, UART1 は上記モード以外では動作しませ んので設定しないでください。 <注意事項> UART0, UART1 は , 調歩クロック同期転送を使用するので , クロック同期転送でもスター トビットとストップビットをデータに追加します。 313 第 19 章 UART0, UART1 19.5 ボーレート 専用ボーレートジェネレータ使用時には , 次の 2 種類のボーレートがあります。 • CLK 同期ボーレート • CLK 非同期ボーレート ■ CLK 同期ボーレート BCH, BCH0, RC3, RC2, RC1 の 5 つの URD レジスタが CLK 同期転送用のボーレートを 選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 0 0 1 ⇒ ⇒ 6分周 [例えば, 24MHz時 24/6=4MHz] 4分周 [例えば, 16MHz時 16/4=4MHz] 1 0 ⇒ 3分周 [例えば, 12MHz時 12/3=4MHz] 1 1 ⇒ 5分周 [例えば, 20MHz時 20/5=4MHz] 次に , 上記で選択したクロックの分周比を RC3, RC2, RC1, RC0 に設定します。CLK 同 期転送には , 以下の 3 つの設定が可能です。それ以外の設定は禁止されます。 RC3 RC2 RC1 RC0 0 1 0 1 ⇒ 2分周 [例えば, 4MHz時 4/2=2.0Mbps] 0 1 1 1 ⇒ 4分周 [例えば, 4MHz時 4/4=1.0Mbps] 1 0 0 1 ⇒ 8分周 [例えば, 4MHz時 4/8=0.5Mbps] (2MHz時, 上記の例の半分の速度になります。) ■ CLK 非同期ボーレート BCH, BCH0, RC3, RC2, RC1, RC0 の 6 つの URD レジスタが CLK 非同期転送用のボー レートを選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 0 ⇒ 6分周 [例えば, 24MHz時 24/6=4MHz] 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 同期転送には , 以下の設定が可能です。 314 第 19 章 UART0, UART1 ボーレート = ボーレート = ボーレート = ボーレート = φ/6 2m-1 φ/4 2m-1 φ/3 2m-1 φ/5 2m-1 [bps] ( マシンサイクル= 24 MHz) [bps] ( マシンサイクル= 16 MHz) [bps] ( マシンサイクル= 12 MHz) [bps] ( マシンサイクル= 20 (10) MHz) 上記の 12 個のボーレートが選択可能であり , CLK 同期ボーレートの計算方法の公式を 以下に示します。 ここで , φ はマシンサイクルであり , m は RC3 ~ RC1 の 10 進数表記です。 ボーレート = ボーレート = ボーレート = ボーレート = φ/6 2m-1 φ/4 2m-1 φ/3 2m-1 φ/5 2m-1 [bps] ( マシンサイクル= 24 MHz) [bps] ( マシンサイクル= 16 MHz) [bps] ( マシンサイクル= 12 MHz) [bps] ( マシンサイクル= 20 (10) MHz) <注意事項> m=0 または m=1 の場合 , 上記公式は計算不可です。 CLK 非同期ボーレートが -1% ~ +1% の範囲にある場合 , データ転送が可能です。ボー レートは , CLK 非同期ボーレートを 8 × 13, 8 × 12, 8 で割った値です。 表 19.5-1 に , マシンサイクルが 24MHz, 20MHz, 16MHz, 12MHz 時の例を示します。表中 の "-" でマークした設定は使用しないでください。 315 第 19 章 UART0, UART1 表 19.5-1 ボーレート CLK 非同期 (μs/bps) RC3 RC2 RC1 RC0 CLK 同期 (μs/bps) 24 MHz 20 MHz 16 MHz 12 MHz BCH/ 0=00B BCH/ 0=11B BCH/ 0=01B BCH/ 0=10B - - - - CLK 24 MHz 非同期 分周比 BCH/ 0=00B 20 MHz 16 MHz 12 MHz BCH/ 0=11B BCH/ 0=01B BCH/ 0=10B 8 × 12 - - - - 26/ 38460 26/ 38460 26/ 38460 26/ 38460 8 × 13 - - - - 8 - - - - 8 - - - - - - - - 0.5 / 2M 0.5 / 2M 0.5 / 2M - - - - 104/ 9615 104/ 9615 104/ 9615 104/ 9615 8 × 13 1 / 1M 1 / 1M 1 / 1M 1 / 1M 0 192/ 5208 192/ 5208 192/ 5208 192/ 5208 8 × 12 - - - - 0 1 208/ 4808 208/ 4808 208/ 4808 208/ 4808 8 × 13 2 / 500K 2 / 500K 2 / 500K 2 / 500K 0 1 0 1 0 1 1 1 1 0 0 - - - 1 1 0 1 - - 1 1 1 0 - 1 1 1 1 - 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 2/500000 2/500000 2/500000 2/500000 0 1 0 0 48/ 20833 48/ 20833 48/ 20833 48/ 20833 8 × 12 0 1 0 1 52/ 19230 52/ 19230 52/ 19230 52/ 19230 8 × 13 0.5 / 2M 0 1 1 0 96/10417 96/10417 96/10417 96/10417 8 × 12 0 1 1 1 1 0 0 1 0 1 316 - - - - - - 8 - - - - 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16/ 62500 16/ 62500 16/ 62500 16/ 62500 第 19 章 UART0, UART1 19.6 内部クロックおよび外部クロック RC3 ~ RC0 を "1101B" に設定すると , 16 ビットリロードタイマからのクロック信 号を選択することになります。RC3 ~ RC0 を "1111B" に設定すると外部クロック を選択することになります。 なお , 外部クロックの最大周波数は 2MHz です。 ■ 内部クロックおよび外部クロック CLK 非同期ボーレートは , CLK 同期ボーレートを 8 で割ったものです。また , CLK 非 同期ボーレートが選択したボーレート -1% ~ +1% の範囲にある場合 , データ転送が可 能です。表 19.6-1 に , 内部タイマをクロックとして選択した場合のボーレートを示し ます。本表の値は , マシンサイクルを 7.3728MHz として計算しています。ただし , 表 中の "-" でマークした設定は使用しないでください。 φ/X ボーレート= 8×2 (n+1) [bps] φ :マシンサイクル X :内部タイマのカウントクロックソースの分周比 n :リロード値 (10進数) 表 19.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 表中の値は , 16 ビットリロードタイマのリロードカウント動作のリロード値 (10 進数 ) です。 317 第 19 章 UART0, UART1 転送データフォーマット 19.7 UART0, UART1 は , NRZ (non-return-to-zero) 形式のデータのみを扱います。 図 19.7-1 に , 送受信クロックと CLK 同期モードのデータとの関係を示します。 ■ 転送データフォーマット 図 19.7-1 転送データフォーマット SCK0 SIN0, SOT0 0 起動 1 LSB 0 1 1 0 0 1 転送されたデータは"01001101B"(モード1)または"101001101B"(モード3) 0 MSB 1 1 停止 D8停止 ⎫ ⎬ モードに依存 ⎭ 図 19.7-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始 まり , LSB ファーストで指定されたデータビット長転送が行われ , ストップビット ("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロックを入 力してください。 内部クロック ( 専用ボーレートジェネレータまたは 16 ビットリロードタイマ ) を選択 している場合 , クロックは連続的に出力されます。CLK 同期転送を使用する場合 , 選択 したボーレートクロックが安定 (2 ボーレートクロックサイクル ) するまでデータ転送 を開始しないでください。 CLK 非同期転送を使用する場合 , UMC0, UMC1 レジスタ中の SCKE ビットを "0" に設 定し , クロック出力を無効にしてください。SIN0, SIN1 と SOUT0, SOUT1 の転送デー タフォーマットは , 図 19.7-1 に示すものと同じです。 318 第 19 章 UART0, UART1 19.8 パリティビット URD0, URD1 レジスタ中の P ( パリティ ) ビットは , パリティが許可されている場合 に偶数 / 奇数パリティのどちらを使用するかを指定します。UMC0, UMC1 レジスタ 中の PEN ( パリティ許可 ) ビットはパリティを許可します。 ■ パリティビット 偶数パリティ設定時に図 19.8-1 に示すデータをSINに入力すると, 受信パリティエラー が発生します。図 19.8-1 には , "001101B" を偶数 / 奇数パリティで送信時に送信される データも示しています。 図 19.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 (パリティ) 319 第 19 章 UART0, UART1 19.9 割込み生成とフラグのセットタイミング UART0, UART1 には , 2 つの割込み要因と 6 個のフラグがあります。2 つの割込み 要因には , 受信割込みと送信割込みがあります。6 個のフラグとは , RDRF, ORFE, PE, TDRE, RBF, TBF です。受信については , RDRF, ORFE, PE フラグが割込みを 要求します。送信については , TDRE フラグが割込みを要求します。 ■ 6 つのフラグのセットタイミング ● RDRF フラグ RDRF は UIDR レジスタに受信データがロードされるとセットされます。UMC レジス タ中の RFC に "0" を書き込むか , UIDR レジスタを読み出すとクリアされます。 ● ORFE フラグ ORFE フラグは , オーバランまたはフレーミングエラーフラグです。受信エラーが発生 した場合にセットされ , UMC レジスタ中の RFC に "0" を書き込むとクリアされます。 ● PE フラグ PE フラグは , 受信パリティエラーフラグです。受信パリティエラーが発生した場合に セットされ , UMC0 レジスタ中の RFC に "0" を書き込むとクリアされます。パリティ 検出機能はモード 2 では有効ではないので注意してください。 ● TDRE フラグ TDRE フラグは , UODR0 レジスタが空になり書込み可能になったときにセットされ , UODR0 レジスタに書込みを行うとクリアされます。上記の 4 個のフラグ (RDRF, ORFE, PE, TDRE) は , 送受信割込みを起動します。 ● RBF と TBF フラグ RBF と TBF フラグは , 受信または送信が進行中であることを示します。RBF は受信中 にアクティブになります。TBF は送信中にアクティブになります。 320 第 19 章 UART0, UART1 受信動作時 ( モード 0, モード 1, モード 3) のフラグの セットタイミング 19.9.1 RDRF, ORFE, PE フラグは , 受信転送が終了し最後のストップビットを検出すると きにセットされ , CPU への割込み要求が発生します。ORFE, PE のどちらかのビッ トがアクティブのときには , UIDR0, UIDR1 中のデータは無効となります。 ■ 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング 図 19.9-1 , 図 19.9-2 , 図 19.9-3 に , RDRF, ORFE, PEフラグのセットタイミングを示しま す。 図 19.9-1 RDRF のセットタイミング ( モード 0, モード 1, モード 3) データ 停止 (停止) RDRF 受信割込み 図 19.9-2 ORFE のセットタイミング ( モード 0, モード 1, モード 3) データ 停止 データ RDRF = 1 RDRF = 0 ORFE ORFE 受信割込み 停止 受信割込み (オーバランエラー) (フレーミングエラー) 図 19.9-3 PE のセットタイミング ( モード 0, モード 1, モード 3) データ 停止 (停止) PE 受信割込み 321 第 19 章 UART0, UART1 受信動作時 ( モード 2) のフラグのセットタイミング 19.9.2 RDRF フラグは最後のストップビットを検出し , 最後のデータビット (D8) の値が "1" で受信転送が終了するときにセットされます。 ORFE フラグは最後のデータビット (D8) の値とは無関係に , 最後のストップビット を検出するときにセットされます。ORFE ビットがアクティブのときには , UIDR 中 のデータは無効となります。 どれかのフラグがセットされると , CPU への割込み要求が発生します ( モード 2 の 使用法の詳細については , 「19.10 UART0, UART1 の応用例」を参照 ) 。 ■ 受信動作時 ( モード 2) のフラグのセットタイミング 図 19.9-4 RDRF のセットタイミング ( モード 2) データ D6 D7 停止 D8 (停止) RDRF 受信割込み 図 19.9-5 ORFE のセットタイミング ( モード 2) データ D7 D8 停止 RDRF=1 RDRF=0 ORFE ORFE 受信割込み D7 D8 停止 受信割込み (オーバランエラー) 322 データ (フレーミングエラー) 第 19 章 UART0, UART1 送信動作時のフラグのセットタイミング 19.9.3 送信動作時に UODR レジスタに書き込まれたデータは , 内部シフトレジスタに転送 されます。このとき , TDRE フラグがセットされ , CPU への割込み要求が発生して , 次のデータを UODR フラグに書き込めるようになります。 ■ 送信動作時のフラグのセットタイミング 図 19.9-6 TDRE のセットタイミング ( モード 0) UODR書込み TDRE CPUへ割込みを要求 送信割込み SOT0出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3 ST:スタートビット D0~D7:データビット SP:ストップビット 323 第 19 章 UART0, UART1 送受信動作時のステータスフラグ 19.9.4 送受信動作時に , RBF フラグはスタートビットが検出されるとセットされ , ストッ プビットが検出されるとクリアされます。UIDR 中の受信データは , RBF クリアタ イミングではまだ無効状態です。UIDR 中のデータは , RDRF セットタイミングで有 効になります。 ■ 送受信動作時のステータスフラグ 図 19.9-7 に , RBF と受信割込みフラグのタイミングとの関係を示します。 図 19.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 がセットされ , 送信が完了するとクリアされま す。 図 19.9-8 TBF のセットタイミング ( モード 0) UODR書込み SOT0出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP TBF ST:スタートビット D0~D7:データビット SP:ストップビット <注意事項> SIN0 入力端子が "1" に固定されていない限り , 受信動作はリセットのリリース後に開始し ます。このため , モードを設定する前に , UMC レジスタ中の RFC に "0" を書き込み , セッ トされているすべての受信フラグをクリアしてください。 USR0 レジスタ中の RBF と TBF フラグが "0" のとき , 通信モードをセットしてください。 モード設定中の送受信データは保証されません。 ■ EI2OS ( 拡張インテリジェント I/O サービス ) EI2OS の詳細については ,「3.7 拡張インテリジェント I/O サービス (EI2OS)」を参照し てください。 324 第 19 章 UART0, UART1 UART0, UART1 の応用例 19.10 モード 2 は , 1 台のホスト CPU の数台のスレーブ CPU が接続されるような場合に 使用されます ( 図 19.10-1 を参照 ) 。 ■ 応用例 図 19.10-1 RBF のセットタイミング ( モード 0) SIN0入力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP RBF RDRF, PE, ORFE ST:スタートビット D0~D7:データビット SP:ストップビット 図 19.10-2 に示すように , 通信はホスト CPU がアドレスデータを転送することによっ て始まります。アドレスデータは , 9 番目のビット (D8) が "1" にセットされています。 これにより , 通信先となるスレーブ CPU が選択され , ユーザが決定したプロトコルを 使用してホスト CPU との通信を行います。通常データは D8 が "0" にセットされてい ます。非選択のスレーブ CPU は , 次の通信セッションが始まるまでスタンバイ状態で 待機します。図 19.10-3 に , 本モードでの動作フローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので , UMC レジスタ の PEN ビットは "0" としてください。 図 19.10-2 モード 2 使用時のシステム構築例 SOT0 SIN0 ホストCPU SOT0 SIN0 SOT0 SIN0 スレーブCPU#0 スレーブCPU#1 325 第 19 章 UART0, UART1 図 19.10-3 モード 2 使用時の通信フローチャート (ホストCPU) (スレーブCPU) 起動 起動 転送モードを"3"とする 転送モードを"2"にセット D0~D7にスレーブCPU選択, D8に"1"をセットし, 1バイト転送 1バイト受信 NO 選択? D8に"0"をセットし, 通信を実行 終了 YES 転送モードを"3"にセット し, SOT0出力を許可 マスタCPUで通信を実行 ステータスフラグを使用し て転送の完了を確認, 転送 モードを"2"にセットして SOT0出力を禁止 326 第 20 章 UART2, UART3 UART2, UART3 の機能と動作について説明します。 ( 注意事項 ) MB90V390HA/MB90V390HB にのみ , UART2 は あります。 20.1 UART2, UART3 の概要 20.2 UART2, UART3 の構成 20.3 UART2, UART3 の端子 20.4 UART2, UART3 のレジスタ 20.5 UART2, UART3 の割込み 20.6 UART2, UART3 のボーレート 20.7 UART2, UART3 の動作 20.8 UART2, UART3 使用上の注意 327 第 20 章 UART2, UART3 UART2, UART3 の概要 20.1 LIN(Local Interconnect Network) 機能を持つ UART2, UART3 は , 外部装置と同期 通信もしくは非同期通信 ( 調歩同期 ) をするための汎用のシリアルデータ通信インタ フェースです。双方向通信機能 ( ノーマルモード ), マスタ / スレーブ型通信機能 ( マ ルチプロセッサモード : マスタ / スレーブ両方をサポート ) に加え LIN バスに対応す るための特別な機能もサポートしています。 ■ UART2, UART3 の機能 ● UART2, UART3 の機能 UART2, UART3 は , ほかの CPU や周辺装置とシリアルデータの送受信をする汎用シリ アルデータ通信インタフェースで , 表 20.1-1 に示す機能をもっています。 表 20.1-1 UART2, UART3 の機能 (1 / 2) 機 能 データバッファ 全二重ダブルバッファ シリアル入力 5 回オーバサンプリングを行い , サンプリング値の多数決により 受信値を決定します ( 非同期モードのみ )。 転送モード • クロック同期 ( スタート / ストップ同期 , またはスタート / ス トップビット選択 ) • クロック非同期 ( スタート / ストップビットが使用可能 ) ボーレート • 専用ボーレートジェネレータあり (15 ビットリロードカウン タから構成 ) • 外部クロック入力可能。また , リロードカウンタで調節可能 データ長 • 7 ビット ( 同期または LIN モード以外 ) • 8 ビット 信号方式 NRZ (Non Return to Zero) スタートビットタイミング 非同期モード時は , スタートビット立下りエッジに同期 受信エラー検出 • フレーミングエラー • オーバランエラー • パリティエラー ( 動作モード 1 では不可 ) 割込み要求 • • • • マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) 1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能 ( マスタとスレーブシステムの両方をサポート ) 同期モード 端子アクセス マスタまたはスレーブ機能 シリアル入出力端子の状態を直接読出しが可能 328 受信割込み ( 受信完了 , 受信エラー検出 , LIN synch break 検出 ) 送信割込み ( 送信データエンプティ ) ICU への割込み要求 (LIN synch field 検出 : LSYN) 送受信とも拡張インテリジェント I/O サービス (EI2OS) 第 20 章 UART2, UART3 表 20.1-1 UART2, UART3 の機能 (2 / 2) 機 能 LIN バスオプション • • • • • マスタデバイス動作 スレーブデバイス動作 LIN Synch break 検出 LIN Synch break 生成 インプットキャプチャ 0, 1, 4, 5 に接続している LIN Synch field のスタート / ストップエッジ 検出 (UART3) / ICU3 (UART2 は MB90V390HA/MB90V390HB のみ ) 同期シリアルクロック スタート / ストップビットで同期通信するために SCK3 端子に連 続出力可能 クロック遅延オプション クロックを遅らせるための特殊な同期クロックモード (SPI に有効 ) UART2, UART3 は 4 つの異なるモードで動作します。動作モードは , シリアルモード レジスタ (SMR2/SMR3) の MD0, MD1 ビットにより決定されます。モード 0 と 2 は双方 向シリアル通信 , モード 1 はマスタ / スレーブ通信 , モード 3 は LIN マスタ / スレーブ 通信に使用されます。 表 20.1-2 UART2, UART3 の動作モード データ長 動作モード パリティ なし 0 ノーマルモード 1 マルチ プロセッサ モード パリティ あり 7 ビットまたは 8 ビット 7 ビット または 8 ビット ― 同期方式 ストップ ビット長 非同期 非同期 1 ビット または 2 ビット +1 * 2 ノーマルモード 3 LIN モード 8 ビット 8 ビット ― データビット フォーマット 同期 なし , 1 ビット , 2 ビット 非同期 1 ビット LSB ファースト MSB ファースト LSB ファースト ―:設定不可 *:"+1" はマルチプロセッサモードで通信制御用に使用されるアドレス / データ選択ビット (A/D) です。 シリアルモードレジスタ (SMR2/SMR3) の MD1 と MD0 ビットで , 下記に示す UART2, UART3 の動作モードを決定します。 表 20.1-3 UART2, UART3 の動作モード MD1 MD0 0 0 モード 0 種類 0 1 1 非同期 ( マルチプロセッサモード ) 1 0 2 同期 ( ノーマルモード ) 1 1 3 非同期 (LIN モード ) 非同期 ( ノーマルモード ) 329 第 20 章 UART2, UART3 <注意事項> • モード 1 は , マスタ / スレーブ接続時にはマスタとスレーブいずれの動作にも対応しま す。 • モード 3 は , 通信フォーマット 8N-1, LSB ファーストに固定されます。 • モードを変更すると UART は送受信を打ち切り , 次の通信開始を待ちます。 ■ UART2, UART3 の割込みと EI2OS 表 20.1-4 UART2, UART3 の割込みと EI2OS 割込み制御レジスタ チャネル ベクタテーブルのアドレス EI2OS 割込み番号 レジスタ名 アドレス 下位 上位 バンク UART2 受信 #39(27H) ICR14 0000BEH FFFF60H FFFF61H FFFF62H *1 UART2 送信 #40(28H) ICR14 0000BEH FFFF5CH FFFF5DH FFFF5EH *2 UART3 受信 #39(27H) ICR14 0000BEH FFFF60H FFFF61H FFFF62H *3 UART3 送信 #40(28H) ICR14 0000BEH FFFF5CH FFFF5DH FFFF5EH *4 *1: UART2 受信の EI2OS は , UART2 の送信割込みと UART3 の送受信割込みが禁止されている場合のみ使用可能 です。受信エラーを検出すると EI2OS の停止要求が機能します。 *2: UART2 送信の EI2OS は , UART2 の受信割込みと UART3 の送受信割込みが禁止されている場合のみ使用可能 です。 *3: UART3 受信の EI2OS は , UART3 の送信割込みと UART2 の送受信割込みが禁止されている場合のみ使用可能 です。受信エラーを検出すると EI2OS の停止要求が機能します。 *4: UART3 送信の EI2OS は , UART3 の受信割込みと UART2 の送受信割込みが禁止されている場合のみ使用可能 です。 330 第 20 章 UART2, UART3 20.2 UART2, UART3 の構成 UART2, UART3 の構成ブロックを簡単な概要で示します。 ■ UART2, UART3 の構成 UART2, UART3 は次のブロックで構成されます。 • リロードカウンタ • 受信制御回路 • 受信シフトレジスタ • 受信データレジスタ (RDR2/RDR3) • 送信制御回路 • 送信シフトレジスタ • 送信データレジスタ (TDR2/TDR3) • エラー検出回路 • オーバサンプリング回路 • 割込み生成回路 • LIN synch break/Synch Field 検出 • LIN synch break 生成回路 • バスアイドル検出回路 • シリアルモードレジスタ (SMR2/SMR3) • シリアル制御レジスタ (SCR2/SCR3) • シリアルステータスレジスタ (SSR2/SSR3) • 拡張通信制御レジスタ (ECCR2/ECCR3) • 拡張ステータス制御レジスタ (ESCR2/ESCR3) 331 第 20 章 UART2, UART3 ■ UART2, UART3 のブロックダイヤグラム 図 20.2-1 UART2, UART3 のブロックダイヤグラム OTO, EXT, REST CLK PE ORE FRE TIE RIE LBIE LBD 送信クロック リロード カウンタ SCK2/ SCK3 書込み 生成回路 受信クロック 送信制御回路 受信制御回路 RBI TBI 端子 送信スタート 回路 スタートビット 検出回路 SIN2/ SIN3 端子 受信 IRQ 再スタート受信 リロードカウンタ 送信 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ TDRE IRQ SOT2/SOT3 オーバ サンプリング 回路 端子 RDRF SOT SIN キャプチャへの 内部信号 LIN break/ Synch Field 検出回路 SIN 送信シフト レジスタ 受信シフト レジスタ LIN break 生成回路 送信開始 EI2OS へ バスアイドル 検出回路 エラー 検出 PE ORE FRE RDR2/RDR3 LBR LBL1 LBL0 TDR2/TDR3 RBI LBD TBI 内部データバス PE ORE FRE RDRF TDRE BDS RIE TIE 332 SSR2/ SSR3 レジスタ MD1 MD0 OTO EXT REST UPCL USCKE USOE SMR2/ SMR3 レジスタ PEN P SBL CL A/D CRE RXE TXE SCR2/ SCR3 レジスタ LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS ESCR2/ SCDE ESCR3 SSM レジスタ ECCR2/ ECCR3 レジスタ RBI TBI 第 20 章 UART2, UART3 ■ 各ブロックの説明 ● リロードカウンタ 専用ボーレートジェネレータとして機能する 15 ビットリロードカウンタです。リロー ド値に対する 15 ビットレジスタから構成され , 外部クロックまたは内部クロックより 送受信クロックを生成します。また , 送信リロードカウンタのカウント値を BGR02/ BGR12, resp. BGR03/BGR13 から読み出すことができます。 ● 受信制御回路 受信ビットカウンタ , スタートビット検出回路 , および受信パリティカウンタから構成 されています。受信ビットカウンタは , 受信データビットをカウントして , 設定した データ長に応じて1データの受信を完了すると, 受信データレジスタにフラグをセット します。このとき , 受信割込みが許可されていれば受信割込み要求を発生します。ス タートビット検出回路は , シリアル入力信号からスタートビットを検出する回路で , ス タートビットを検出するとスタートビットの立下りエッジに同期してリロードカウン タに信号を送ります。受信パリティカウンタは , 受信データのパリティを計算します。 ● 受信シフトレジスタ SIN2/SIN3 端子から入力された受信データをビットシフトしながら取り込み , 受信が完 了すると , RDR2/RDR3 レジスタに受信データを転送します。 ● 受信データレジスタ (RDR2/RDR3) 受信データを保持します。シリアル入力データは変換され , 受信データレジスタに格納 されます。 ● 送信制御回路 送信ビットカウンタ , 送信スタート回路 , および送信パリティカウンタから構成されて います。送信ビットカウンタは , 送信データビットをカウントして , 設定したデータ長 に応じて 1 データの送信を完了すると送信データレジスタにフラグをセットします。こ のとき , 送信割込みが許可されていれば送信割込み要求を発生します。送信スタート回 路は , TDR2/TDR3 のデータ書込みで送信動作を開始します。送信パリティカウンタは , パリティありの場合 , 送信するデータのパリティビットを生成します。 ● 送信シフトレジスタ TDR2/TDR3 に書き込まれたデータを送信シフトレジスタに転送し , ビットシフトしな がら SOT2/SOT3 端子に出力します。 ● 送信データレジスタ (TDR2/TDR3) 送信データを設定します。書き込まれたデータはシリアルデータに変換され出力され ます。 ● エラー検出回路 受信終了時において , エラーがあったかどうかを検出します。エラーが発生すると , 対 応するエラーフラグをセットします。 ● オーバサンプリング回路 非同期モード動作では5回オーバサンプリングを行い, サンプリング値の多数決により 受信値を決定します。また , 同期モード動作では停止します。 333 第 20 章 UART2, UART3 ● 割込み生成回路 すべての割込み要因を制御します。対応する割込み許可ビットがセットされていると 直ちに割込みが発生します。 ● LIN synch break/Synch Field 検出回路 LIN マスタノードがメッセージヘッダを送信すると LIN synch break を検出します。 LIN synch break が検出されると LBD フラグビットがセットされます。LIN Synch Field の 1 回目と5回目の立下りエッジを検出し, マスタノードが送信する実際のシリアルクロッ ク同期を測定するためにキャプチャへ内部信号を出力します。 ● LIN synch break 生成回路 設定された長さの LIN synch break を生成します。 ● バスアイドル検出回路 送受信が行われていないことを検出し , TBI, RBI フラグビットを生成します。 ● シリアルモードレジスタ (SMR2/SMR3) 以下に動作機能を示します。 • UART2, UART3 動作モード選択 • クロック入力ソースの選択 • 外部クロックが 1 対 1 接続またはリロードカウンタ接続であるかを選択 • 専用リロードタイマのリセット • LIN-UART2, UART3 ソフトウェアリセット ( レジスタの設定は維持 ) • シリアルデータ端子への出力許可 / 禁止設定 • クロック端子への出力許可 / 禁止設定 ● シリアル制御レジスタ (SCR2/SCR3) 以下に動作機能を示します。 • パリティビット有無の設定 • パリティビット選択 • ストップビット長の設定 • データ長の設定 • モード 1 でのフレームデータ形式の選択 • エラーフラグのクリア • 送信許可 / 禁止 • 受信許可 / 禁止 ● シリアルステータスレジスタ (SSR2/SSR3) 以下に動作機能を示します。 • 送受信やエラーの状態確認 • 転送方向 LSB ファースト /MSB ファーストの選択 • 受信割込み許可 / 禁止 • 送信割込み許可 / 禁止 334 第 20 章 UART2, UART3 ● 拡張ステータス制御レジスタ (ESCR2/ESCR3) • LIN synch break 割込み許可 / 禁止 • LIN synch break 検出 • LIN synch break 長選択 • SIN2/SIN3, SOT2/SOT3 端子への直接アクセス • UART2, UART3 同期クロックモードでの連続クロック出力設定 • サンプリングクロックエッジ選択 ● 拡張通信制御レジスタ (ECCR2/ECCR3) • バスアイドル検出 • 同期クロック設定 • LIN synch break 生成 335 第 20 章 UART2, UART3 20.3 UART2, UART3 の端子 UART2, UART3 の端子 , 割込み要因 , レジスタの一覧および詳細を示します。 ■ LIN-UART2, UART3 の端子 UART2, UART3 の端子は , 汎用ポートと兼用になっています。表 20.3-1 に端子の機能 , 入 出力形式 , および UART2, UART3 使用時の設定などを示します。 表 20.3-1 UART2, UART3 の端子 端子名 端子機能 P90/SIN2 ポート入出力 / シリアルデータ入力 P91/SCK2 P92/SOT2 P93/SIN3 P95/SOT3 P94/SCK3 入出力形式 プルアップ 選択 スタンバイ 制御 入力ポートに設定 (DDR9:bit0 = 0) クロック入力時 入力ポートに設定 (DDR9:bit1 = 0) ポート入出力 / シリアルクロック 入出力 ポート入出力 / シリアルデータ出力 CMOS 出力およ び Automotive 選 ポート入出力 / 択許可 /CMOS ヒ シリアルデータ入力 ステリシス入力 クロック出力時 出力許可に設定 (SMR2:SCKE = 1) 出力許可に設定 (SMR2:SOE = 1) なし あり ポート入出力 / シリアルデータ出力 ポート入出力 / シリアルクロック 入出力 規格値はデータシート「■電気的特性 3. 直流規格」を参照してください。 336 端子の使用に 必要な設定 入力ポートに設定 (DDR9:bit3 = 0) 出力許可に設定 (SMR2/SMR3:SOE = 1) クロック入力時 入力ポートに設定 (DDR9: bit4 = 0) クロック出力時 出力許可に設定 (SMR2/SMR3:SCKE = 1) 第 20 章 UART2, UART3 ■ UART2, UART3 の端子のブロックダイヤグラム 図 20.3-1 UART2, UART3 の端子のブロックダイヤグラム リソース入力 ポートデータレジスタ (RDR) リソース出力 リソース出力許可 内部データバス PDR リード 出力ライト P-ch PDR リード 端子 ポート方向レジスタ (RDR) N-ch 方向ラッチ P93/SIN2/SIN3 P94/SCK2/SCK3 P95/SOT2/SOT3 DDR ライト スタンバイ制御 (SPL = 1) DDR リード スタンバイ制御 : ストップモード (SPL =1), タイムベースタイマモード (SPL = 1) ( 注意事項 ) リソース入出力信号はリソース機能を持つ端子から入出力される。 ( 注意事項 ) レジスタと端子番号を除いて , UART2 は UART3 と機能的に同じです。 337 第 20 章 UART2, UART3 20.4 UART2, UART3 のレジスタ UART2, UART3 のレジスタ一覧を示します。 ■ UART2, UART3 のレジスタ一覧 図 20.4-1 UART2, UART3 のレジスタ一覧 アドレス : bit15 bit8 bit7 bit0 003519H, 003518H SCR3 ( シリアル制御レジスタ ) SMR3 ( シリアルモードレジスタ ) 00351BH, 00351AH SSR3 ( シリアルステータスレジスタ ) RDR3/TDR3 ( 受信データレジスタ / 送信データレジスタ ) 00351DH, 00351CH ESCR3 ( 拡張ステータス制御レジスタ ) ECCR3 ( 拡張通信制御レジスタ ) 00351FH, 00351EH BGR13 ( ボーレートジェネレータレジスタ ) BGR03 ( ボーレートジェネレータレジスタ ) 0035D9H, 0035D8H SCR2 ( シリアル制御レジスタ ) SMR2 ( シリアルモードレジスタ ) 0035DBH, 0035DAH SSR2 ( シリアルステータスレジスタ ) RDR2/TDR2 ( 受信データレジスタ / 送信データレジスタ ) 0035DDH, 0035DCH ESCR2 ( 拡張ステータス制御レジスタ ) ECCR2 ( 拡張通信制御レジスタ ) 0035DFH, 0035DEH BGR12 ( ボーレートジェネレータレジスタ ) BGR02 ( ボーレートジェネレータレジスタ ) 338 第 20 章 UART2, UART3 20.4.1 シリアル制御レジスタ (SCR2/SCR3) シリアル制御レジスタ (SCR2/SCR3) は , パリティの設定 , ストップビット長やデー タ長の選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリア , 送受信動作の許可または禁止の設定を行います。 ■ シリアル制御レジスタ (SCR2/SCR3) 図 20.4-2 シリアル制御レジスタ (SCR2/SCR3) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 SCR3: 003519H PEN P SBL CL SCR2: 0035D9H R/W R/W R/W R/W bit0 初期値 A/D CRE RXE TXE R/W W 00000000B R/W R/W bit8 送信許可ビット TXE 0 送信禁止 1 送信許可 bit9 受信許可ビット RXE 0 受信禁止 1 受信許可 bit10 CRE 受信エラーフラグクリアビット 書込み時 0 影響なし 1 受信エラーフラグ (PE, FRE, ORE) クリア 読出し時 常に "0" を 読出し bit11 A/D アドレス / データ形式選択ビット 0 データフレーム 1 アドレスフレーム bit12 データ長選択ビット CL 0 7 ビット 1 8 ビット bit13 SBL ストップビット長選択ビット 0 1 ビット 1 2 ビット bit14 P R/W : リード / ライト可能 W : ライトオンリ : 初期値 パリティ選択ビット 0 偶数パリティ 1 奇数パリティ bit15 PEN パリティ許可ビット 0 パリティなし 1 パリティあり 339 第 20 章 UART2, UART3 表 20.4-1 シリアル制御レジスタ (SCR2/SCR3) の各ビットの機能説明 (1 / 2) ビット名 bit15 PEN: パリティ 許可ビット bit14 P: パリティ 選択ビット bit13 SBL: ストップ ビット長 選択ビット bit12 CL: データ長 選択ビット 機 能 パリティビットの付加 ( 送信時 ) と検出 ( 受信時 ) を行うかどうかを設定しま す。 ( 注意事項 ) パリティビットは動作モード 0 の場合 , または動作モード 2 でスタート / ス トップあり (ECCR2/ECCR3:SSM=1) に設定した場合にのみ付加されます。 モード 3 (LIN) のときには "0" に固定されます。 パリティビットあり (SCR2/SCR3:PEN=1) に設定した場合に , 奇数パリティ (1) か偶数パリティ (0) のいずれかに設定します。 動作モード 0, 1 ( 非同期 ) の場合 , または動作モード 2 ( 同期 ) でスタート / ス トップビットあり (ECCR2/ECCR3:SSM=1) に設定した場合のストップビッ ト ( 送信データのフレームエンドマーク ) のビット長を設定します。 本ビットは , モード 3(LIN) では "0" に固定されます。 ( 注意事項 ) 受信時は , 常にストップビットの 1 ビット目だけを検出します。 送受信データのデータ長を指定します。本ビットは , モード 2, 3 では "1" に固 定されます。 bit11 A/D: アドレス / データ形式 選択ビット マルチプロセッサモード ( モード 1) で , 送受信するフレームのデータ形式を 指定します。マスタ側は本ビットに書き込み , スレーブ側は本ビットを読み 出してください。 • "0" に設定した場合:データフレームに設定されます。 • "1" に設定した場合:アドレスデータのフレームに設定されます。 読出しは , 最後に受信したデータ形式の値になります。 ( 注意事項 ) 本ビットの使用にあたっては , 「20.8 UART2, UART3 使用上の注意」を参 照してください。 bit10 CRE: 受信エラー フラグ クリア ビット シリアルステータスレジスタ (SSR2/SSR3) の FRE, ORE, PE フラグをクリア するビットです。 • "1" 書込みで , エラーフラグがクリアされます。 • "0" 書込みでは , 影響ありません。 読み出した場合 , 常に "0" が読めます。 ( 注意事項 ) 受信動作停止後に受信エラーフラグをクリアしてください。 RXE: 受信動作 許可ビット LIN-UART2, UART3 の受信動作を許可または禁止します。 • "0" に設定した場合:データフレーム受信動作が禁止されます。 • "1" に設定した場合:データフレーム受信動作が許可されます。 モード 3 での LIN synch break 検出は影響されません。 ( 注意事項 ) 受信中に受信動作を禁止 (RXE=0) した場合には , 直ちに受信動作が停止し ます。この場合 , データは保証されません。 bit9 340 第 20 章 UART2, UART3 表 20.4-1 シリアル制御レジスタ (SCR2/SCR3) の各ビットの機能説明 (2 / 2) ビット名 bit8 TXE: 送信動作 許可ビット 機 能 LIN-UART2, UART3 の送信動作を許可または禁止します。 • "0" に設定した場合:データフレーム送信動作が禁止されます。 • "1" に設定した場合:データフレーム送信動作が許可されます。 ( 注意事項 ) 送信中に送信動作を禁止 (TXE=0) した場合には , 直ちに送信動作が停止し ます。この場合 , データは保証されません。 341 第 20 章 UART2, UART3 20.4.2 シリアルモードレジスタ (SMR2/SMR3) シリアルモードレジスタ (SMR2/SMR3) は , 動作モードの選択 , ボーレートクロック の選択 , シリアルデータとクロックの端子への出力許可または禁止の設定を行います。 ■ シリアルモードレジスタ (SMR2/SMR3) 図 20.4-3 シリアルモードレジスタ (SMR2/SMR3) アドレス bit15 SMR3: 003518H SMR2: 0035D8H bit8 bit7 bit6 bit5 bit4 bit2 bit3 bit1 bit0 初期値 MD1 MD0 OTO EXT REST UPCL SCKE SOE 00000000B R/W R/W R/W R/W W W R/W R/W bit0 LIN-UART シリアルデータ出力許可ビット SOE 汎用入出力ポート LIN-UART シリアルデータ出力端子 0 1 bit1 SCKE LIN-UART シリアルクロック出力許可ビット 0 汎用入出力ポートまたは LIN-UART クロック 入力端子 1 LIN-UART のシリアルクロック出力端子 bit2 LIN-UART プログラマブルクリアビット UPCL 書込み時 0 影響なし 1 LIN-UART リセット 読出し時 常に "0" を読出し bit3 リロードカウンタ再スタートビット REST 書込み時 読出し時 0 影響なし 1 リロードカウンタの再スタート 常に "0" を読出し bit4 外部シリアルクロックソース選択ビット EXT 0 ボーレートジェネレータ ( リロードカウンタ ) 使用 1 外部シリアルクロックソース使用 bit5 1 対 1 外部クロック入力許可ビット OTO R/W : リード / ライト可能 W : ライトオンリ : 初期値 342 0 ボーレートジェネレータ ( リロードカウンタ ) 使用 1 外部クロック直接使用 bit7 bit6 MD1 MD0 0 0 モード 0: 非同期 ノーマル 0 1 モード 1: 非同期 マルチプロセッサ 1 0 モード 2: 同期 1 1 モード 3: 非同期 LIN 動作モード設定ビット 第 20 章 UART2, UART3 表 20.4-2 シリアルモードレジスタ (SMR2/SMR3) の各ビットの機能説明 ビット名 機 能 動作モードを設定します。 bit7, bit6 MD1, MD0 : 動作モード選択 ビット bit5 OTO: 1 対 1 外部クロック 許可ビット "1" の書込みで , LIN-UART2, UART3 シリアルクロックに外部クロック を直接使用することを許可します。 動作モード 2( 同期 ) スレーブ動作 (ECCR2/ECCR3:MS=1) 時に使用さ れます。 EXT=0 の場合 , OTO ビットは "0" に固定されます。 bit4 EXT: 外部クロック選択 ビット クロック入力を選択します。 "0" を設定すると , 内部ボーレートジェネレータ ( リロードカウンタ ) のクロックとなり, "1"を設定すると外部シリアルクロックソースを選 択します。 bit3 REST: リロードカウンタ 再スタートビット "1" を書き込んだ場合 , リロードカウンタは再スタートします。 "0" を書き込んだ場合は影響ありません。 常に "0" が読み出されます。 UPCL: LIN-UART プログ ラマブルクリア ビット (LIN-UART ソフト ウェアリセット ) "1"を書き込んだ場合, LIN-UART2, UART3を即時リセット (LIN-UART ソフトウェアリセット ) します。ただし , レジスタの設定は維持され ます。その際 , 送受信は中断されます。 すべての送受信割込み要因 (TDRE, RDRF, LBD, PE, ORE, FRE) は解除 されます。割込み禁止および送信禁止に設定した後 , LIN-UART2, UART3 のリセットを行ってください。 また受信データレジスタはク リア (RDR2/RDR3=00H) され , リロードカウンタは再スタートします。 "0" を書き込んだ場合は影響ありません。 常に "0" が読み出されます。 bit1 SCKE: LIN-UART シリアルクロック 出力許可ビット シリアルクロックの入出力ポートを制御するビットです。 "0" の場合は SCK2/SCK3 端子は汎用入出力ポート , またはシリアルク ロック入力端子として機能します。"1" の場合はシリアルクロック出 力端子となり , 動作モード 2( 同期 ) でクロックを出力します。 ( 注意事項 ) SCK2/SCK3 端子をシリアルクロック入力 (SCKE=0) として使用する 場合は , 汎用入出力ポートの対応する DDR ビットを入力ポートに設 定してください。また , クロック選択ビットによって外部クロック を選択 (EXT=1) してください。 ( 参考 ) SCK2/SCK3 端子がシリアルクロック出力 (SCKE=1) に設定されてい る場合は, 汎用入出力ポートの状態にかかわらず, シリアルクロック 出力端子として機能します。 bit0 SOE: LIN-UART シリアル データ出力許可 ビット シリアルデータの出力を許可 / 禁止するビットです。 "0" の場合 , SOT2/SOT3 端子は汎用入出力ポートとなり , "1" の場合は シリアルデータ出力端子 (SOT2/SOT3) となります。 ( 参考 ) シリアルデータ出力 (SOE=1) の場合 , SOT2/SOT3 端子は汎用入出力 ポートの状態にかかわらず , SOT2/SOT3 端子として機能します。 bit2 343 第 20 章 UART2, UART3 20.4.3 シリアルステータスレジスタ (SSR2/SSR3) シリアルステータスレジスタ (SSR2/SSR3) は , 送受信やエラーの状態の確認 , 割込 みの許可または禁止の設定を行います。 ■ シリアルステータスレジスタ (SSR2/SSR3) 図 20.4-4 シリアルステータスレジスタ (SSR2/SSR3) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 SSR3: 00351BH SSR2: 0035DBH PE ORE FRE RDRF TDRE BDS RIE TIE R R R R R bit0 初期値 00001000B R/W R/W R/W bit8 TIE 送信割込み許可ビット 0 送信割込み禁止 1 送信割込み許可 bit9 RIE 受信割込み許可ビット 0 受信割込み禁止 1 受信割込み許可 bit10 BDS 転送方向選択ビット 0 LSB ファースト ( 最下位ビットから転送 ) 1 MSB ファースト ( 最上位ビットから転送 ) bit11 TDRE 送信データエンプティフラグビット 0 送信データレジスタ TDR にデータが存在 する 1 送信データレジスタ TDR が空 bit12 RDRF 受信データフルフラグビット 0 受信データレジスタ RDR が空 1 受信データレジスタ RDR にデータが存在 する bit13 FRE フレーミングエラーフラグビット 0 フレーミングエラーなし 1 フレーミングエラーあり bit14 ORE オーバランエラーフラグビット 0 オーバランエラーなし 1 オーバランエラーあり bit15 R/W : リード / ライト可能 R : リードオンリ : 初期値 344 PE パリティエラーフラグビット 0 パリティエラーなし 1 パリティエラーあり 第 20 章 UART2, UART3 表 20.4-3 シリアルステータスレジスタ (SSR2/SSR3) の各ビットの機能説明 (1 / 2) ビット名 機 能 PE: bit15 パリティエラー フラグビット • PE = 1 で受信時にパリティエラーが発生すると "1" にセットされ , シリ アル制御レジスタ (SCR2/SCR3) の CRE ビットに "1" を書き込むとクリア されます。 MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1), 同様にこのビットはクリアされます。 • PE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 • 本フラグがセットされた場合は , 受信データレジスタ (RDR2/RDR3) の データは無効です。 ORE: bit14 オーバラン エラーフラグ ビット • 受信時にオーバランが発生すると "1" にセットされ , シリアル制御レジ スタ (SCR2/SCR3) の CRE ビットに "1" を書き込むとクリアされます。 MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1), 同様にこのビットはクリアされます。 • ORE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 • 本フラグがセットされた場合は , 受信データレジスタ (RDR2/RDR3) の データは無効です。 FRE: bit13 フレーミング エラーフラグ ビット • 受信時にフレーミングエラーが発生すると "1" にセットされ , シリアル 制御レジスタ (SCR2/SCR3) の CRE ビットに "1" を書き込むとクリアされ ます。 MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1), 同様にこのビットはクリアされます。 • FRE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 • 本フラグがセットされた場合は , 受信データレジスタ (RDR2/RDR3) の データは無効です。 ( 注意事項 ) SBL=1 でストップ ビットの最初または 2 番目のビットによってフレーム エラーが検出された場合は , どちらかのストップ ビットでこのビットが "1" にセットされます。 したがって , ストップ ビットの 2 番目のビットによって受信データが許可 されているかどうかを判断する必要があります。 RDRF: bit12 受信データ フルフラグ ビット • 受信データレジスタ (RDR2/RDR3) の状態を示すフラグです。 • RDR2/RDR3 に受信データがロードされると "1" にセットされ , 受信デー タレジスタ (RDR2/RDR3) を読み出すと "0" にクリアされます。 MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1), 同様にこのビットはクリアされます。 • RDRF ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 345 第 20 章 UART2, UART3 表 20.4-3 シリアルステータスレジスタ (SSR2/SSR3) の各ビットの機能説明 (2 / 2) ビット名 機 能 TDRE: bit11 送信データ エンプティ フラグビット • 送信データレジスタ (TDR2/TDR3) の状態を示すフラグです。 • TDR に送信データを書き込むと "0" となり , TDR2/TDR3 に有効なデータ が存在していることを示します。データが送信シフトレジスタにロード されて送信が開始されると "1" となり , TDR2/TDR3 に有効なデータが存 在していないことを示します。 • TDRE ビットと TIE ビットが "1" の場合 , 送信割込み要求を出力します。 • TDRE ビットが "1" のとき , 拡張通信制御レジスタ (ECCR2/ECCR3) の LBR ビットに "1" をセットすると TDRE ビットは "0" となり , LIN synch break 生成後 "1" になります。 ( 注意事項 ) 初期状態では , TDRE=1 になっています。 BDS: bit10 転送方向 選択ビット 転送シリアルデータを最下位ビット側から先に転送するか (LSB ファースト , BDS=0), 最上位ビット側から先に転送するか (MSB ファースト , BDS=1) を 選択するビットです。 ( 注意事項 ) シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側 を入れ替えるため , RDR2/RDR3 レジスタへデータを書き込んだ後 , BDS ビットを書き換えると , そのデータは無効になります。BDS ビットはモー ド 3(LIN) では "0" に固定されます。 RIE: bit9 受信割込み 要求許可ビット • CPU への受信割込み要求出力の許可 / 禁止をするビットです。 • RIE ビットと受信データフラグビット (RDRF) が "1" の場合 , または 1 つ 以上のエラーフラグビット (PE, ORE, FRE) が "1" の場合 , 受信割込み要 求を出力します。 TIE: bit8 送信割込み 要求許可ビット 346 • CPU への送信割込み要求出力の許可 / 禁止をするビットです。 • TIE ビットと TDRE ビットが "1" の場合 , 送信割込み要求を出力します。 第 20 章 UART2, UART3 20.4.4 受信データレジスタ / 送信データレジスタ (RDR2/RDR3 および TDR2/TDR3) 受信データと送信データレジスタは同一アドレスに配置されています。読出しをし た場合は , 受信データレジスタとして機能し , 書込みをした場合は送信データレジス タとして機能します。 ■ 受信データレジスタ (RDR2/RDR3) 図 20.4-5 に , 受信レジスタのビット構成を示します。 図 20.4-5 受信データレジスタ / 送信データレジスタ (RDR2/RDR3 および TDR2/TDR3) アドレス bit 7 6 5 4 3 2 1 初期値 0 RDR3/TDR3: 00351AH RDR2/TDR2: 0035DAH 00000000B [RDR2/RDR3] 11111111B [TDR2/TDR3] R/W R/W R/W R/W R/W R/W R/W R/W bit7 ~ bit0 R/W:リード / ライト可能 R/W データレジスタ 読出し 受信データレジスタから読出し 書込み 送信データレジスタに書込み 受信データレジスタ (RDR2/RDR3) は , シリアルデータ受信用のデータバッファレジス タです。 シリアル入力端子 (SIN2/SIN3 端子 ) に送られてきたシリアルデータ信号がシフトレジ スタで変換されて , 受信データレジスタ (RDR2/RDR3) に格納されます。 データ長が 7 ビットの場合は , 上位 1 ビット (RDR2/RDR3:D7) は "0" となります。 受信データが , 受信データレジスタ (RDR2/RDR3) に格納されると , 受信データフルフ ラグビット (SSR2/SSR3:RDRF) が "1" にセットされます。受信割込みが許可されている 場合は (SSR2/SSR3:RIE=1), 受信割込み要求を発生します。 受信データレジスタ(RDR2/RDR3)は, 受信データフルフラグビット(SSR2/SSR3:RDRF) が "1" の状態で読み出してください。受信データフルフラグビット (SSR2/SSR3:RDRF) は , 受信データレジスタ (RDR2/RDR3) を読み出すと自動的に "0" にクリアされます。 また , 受信割込みが許可されていて , エラーが生じていない場合には , 受信割込みもク リアされます。 受信エラーが発生 (SSR2/SSR3:PE, ORE, FRE のいずれかが "1") した場合 , 受信データ レジスタ (RDR2/RDR3) のデータは無効となります。 347 第 20 章 UART2, UART3 ■ 送信データレジスタ (TDR2/TDR3) 送信データレジスタ (TDR2/TDR3) は , シリアルデータ送信用のデータバッファレジス タです。 送信動作が許可されている場合に (SCR2/SCR3:TXE=1), 送信するデータを送信データ レジスタ (TDR2/TDR3) に書き込むと , 送信データが送信用シフトレジスタに転送され シリアルデータに変換されて , シリアルデータ出力端子 (SOT2/SOT3 端子 ) から送出さ れます。 データ長が 7 ビットの場合 , 上位 1 ビット (TDR2/TDR3:D7) は無効データとなります。 送信データエンプティフラグ (SSR2/SSR3:TDRE) は , 送信データが送信データレジスタ (TDR2/TDR3) に書き込まれると "0" にクリアされます。 送信データエンプティフラグ (SSR2/SSR3:TDRE) は , 送信用シフトレジスタへの転送が 終了し , 送信が開始されると "1" にセットされます。 送信データエンプティフラグ (SSR2/SSR3:TDRE) が "1" の場合は , 次の送信用データを 書き込むことができます。送信割込みが許可されている場合には送信割込みが発生し ます。次の送信データの書込みは , 送信割込みの発生によるか , 送信データエンプティ フラグ (SSR2/SSR3:TDRE) が "1" の状態で行ってください。 <注意事項> 送信データレジスタは書込み専用のレジスタで , 受信データレジスタは読出し専用のレジ スタです。2 つのレジスタは同一アドレスに配置されているため , 書込み値と読出し値が 異なります。したがって , INC/DEC 命令などリードモディファイライト (RMW) 系命令は 使用できません。 348 第 20 章 UART2, UART3 20.4.5 拡張ステータス制御レジスタ (ESCR2/ESCR3) 拡張ステータス制御レジスタ (ESCR2/ESCR3) は , LIN synch break 割込み許可 / 禁 止 , LIN synch break 長選択 , LIN synch break 検出 , SIN2/SIN3, SOT2/SOT3 端子 への直接アクセス , UART2, UART3 同期クロックモードでの連続クロック出力 , サ ンプリングクロックエッジの設定があります。 ■ 拡張ステータス制御レジスタ (ESCR2/ESCR3) 図 20.4-6 に拡張ステータス制御レジスタ (ESCR2/ESCR3) のビット構成を , 表 20.4-4 に 各ビットの機能を示します。 図 20.4-6 拡張ステータス制御レジスタ (ESCR2/ESCR3) アドレス bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 ESCR3: 00351DH LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES ESCR2: 0035DDH R/W R/W R/W R/W R/W R/W R/W R/W bit 0 初期値 00000X00B bit8 SCES 0 1 サンプリングクロックエッジ選択ビット ( モード 2) クロックの立上りエッジでサンプリング ( ノーマル ) クロックの立下りエッジでサンプリング ( 反転クロック ) bit9 CCO 0 1 連続クロック出力許可ビット ( モード 2) 連続クロック出力禁止 連続クロック出力許可 bit10 SIOP 0 1 bit11 SOPE 0 1 bit13 LBL1 0 0 1 1 シリアル入出力ピンアクセス設定ビット 書込み時 (SOPE = 1) 読出し時 SOT2/SOT3 端子を "0" に固定 SIN2/SIN3 端子の値を SOT2/SOT3 端子を "1" に固定 読出し シリアル出力端子直接アクセス許可ビット シリアル出力端子直接アクセス禁止 シリアル出力端子直接アクセス許可 bit12 LBL0 0 1 0 1 LIN Synch break 長選択ビット 13 ビット分 14 ビット分 15 ビット分 16 ビット分 bit14 LBD 0 1 R/W : リード / ライト可能 × : 不定 bit15 LBIE 0 1 LIN Synch break 検出フラグビット 読出し時 * 書込み時 LIN synch break 検出フラグ クリア 影響なし LIN synch break 検出なし LIN synch break 検出あり LIN synch break 検出割込み許可ビット LIN synch break 検出割込み禁止 LIN synch break 検出割込み許可 : 初期値 *: 表 20.4-4 を参照してください。 349 第 20 章 UART2, UART3 表 20.4-4 拡張ステータス制御レジスタ (ESCR2/ESCR3) の各ビットの機能説明 ビット名 bit15 LBIE: LIN synch break 検出割込み 許可ビット bit14 LBD: LIN synch break 検出フラグビット bit13, bit12 bit11 bit10 LBL1/LBL0: LIN synch break 長 選択ビット SOPE: シリアル出力端子 直接アクセス許可 ビット * SIOP: シリアル入出力 端子直接 アクセス ビット * bit9 CCO: 連続クロック 出力許可ビット bit8 SCES: サンプリング クロックエッジ 選択ビット 機 能 LIN synch break 検出割込みを許可 / 禁止するビットです。 LIN synch break 割込みは受信割込みに接続されます。 LIN synch break検出フラグ (LBD)が"1"のとき, 割込みが許可(LBIE=1) されると割込みを発生します。 モード 1, 2 では "0" に固定されます。 MB90V390H/MB90F394H(A):動作モード 0 または 3 で LIN synch break が検出されると "1" にセットされます。このビットが "1" になるとき , 受信エラーフラグ (SSR2/SSR3:FRE,SSR2/SSR3:ORE, SSR2/SSR3:PE) と 受信レジスタフルフラグ (SSR2/SSR3:RDRF) はクリアされます。 MB90V390HA/MB90V390HB/MB90394HA:動作モード 3 で LIN synch break が検出されると "1" にセットされます。 このビットに "0 " を書き込むと , このビットと , 対応する割込み ( 許可 されている場合 ) がクリアされます。 このビットを使用する前に SCR2/SCR3 レジスタの RXE ビットに "0" を書き込んでください。 リードモディファイライト (RMW) 系命令を実行すると常に "1" が読 み出されますが LIN synch break の検出によるものではありませんの でご注意ください。 これらのビットは , UART2, UART3 による LIN synch break の生成時間を 何ビット分とするか , 設定します。 受信 LIN synch break 長は常に 11 ビットです。 シリアルデータの出力が許可 (SMR2,SMR3:SOE=1) されているときに 本ビットに "1" を設定すると , SOT2, SOT3 端子への直接書込みを許可 します。* 通常の読出し命令は , 常に SIN2, SIN3 端子の値を返します。 シリアル出力端子直接アクセス許可 (SOPE=1) のときに書込みを行う と本ビット値が SOT2, SOT3 端子に反映されます。 ( 注意事項 ) • ビット操作命令の場合は読出しサイクル内の SOT2, SOT3 のビット 値を返します。* • 本ビットの設定値は、シリアル制御レジスタ (SCR) の TXE ビット が "0" の場合のみ有効です。 このビットは , UART2, UART3 がマスタモード 2 ( 同期 ) で動作し , SCK2/SCK3 端子がクロック出力として構成されている場合 , SCK2/ SCK3 端子での連続シリアルクロックを使用可能にします。 ( 注意事項 ) CCO ビットが "1" のとき , ECCR2/ECCR3 の SSM ビットを "1" にし て使用してください。 動作モード 2 ( 同期 ) のスレーブ設定のとき , SCES を "1" に設定する と , サンプリングエッジが立上りエッジから立下りエッジへ切り換わ ります。 動作モード 2 のマスタ設定 (ECCR2/ECCR3:MS=0) で SCK3 端子がク ロック出力のとき , 内部シリアルクロックと出力クロック信号が反転 します。 MB90V390H/MB90F394H(A): 動作モード 0, 1, 3 のときは "0" に設定してください。 MB90V390HA/MB90V390HB/MB90394HA: 動作モード 0, 1, 3 のときは "0" に固定されます。 *: 表 20.4-5 を参照してください。 350 第 20 章 UART2, UART3 表 20.4-5 SOPE と SIOP の相互作用説明 SOPE SIOP SIOP への書込み SIOP からの読出し 1 R/W SOT2/SOT3 へ "0" または "1" 書込み SIN2/SIN3 の値を返す - RMW SOT2/SOT3 の値を読み出し , "0" または "1" を書き込む - : "0" あるいは "1" 351 第 20 章 UART2, UART3 20.4.6 拡張通信制御レジスタ (ECCR2/ECCR3) 拡張通信制御レジスタ (ECCR2/ECCR3) は , バスアイドル検出 , 割込み設定 , 同期ク ロック設定 , および LIN Synch break の生成を行います。 ■ 拡張通信制御レジスタ (ECCR2/ECCR3) 図 20.4-7 に拡張通信制御レジスタ (ECCR2/ECCR3) のビット構成を , 表 20.4-6 に各ビッ トの機能を示します。 図 20.4-7 拡張通信制御レジスタ (ECCR2/ECCR3) アドレス ECCR3: 00351CH ECCR2: 0035DCH bit 7 bit 6 bit 5 LBR MS W bit 4 bit 3 bit 2 SCDE SSM R/W R/W R/W bit 1 bit 0 RBI TBI R R 初期値 X0000XXXB bit0 TBI* 0 1 送信バスアイドル検出フラグビット 送信中 送信動作なし bit1 RBI* 0 1 受信バスアイドル検出フラグビット 受信中 受信動作なし bit2 未使用ビット 読出し値は不定です。 常に "0" を書き込んでください。 bit3 SSM 0 1 スタート / ストップ許可ビット ( モード 2) スタート / ストップビットなし スタート / ストップビットあり bit4 SCDE 0 1 シリアルクロック遅延許可ビット ( モード 2) クロック遅延禁止 クロック遅延許可 bit5 MS 0 1 マスタ / スレーブ機能選択ビット ( モード 2) マスタモード ( シリアルクロック発生 ) スレーブモード ( 外部シリアルクロック受信 ) bit6 R/W : リード / ライト可能 R : リードオンリ W : ライトオンリ X : 不定 - : 未定義 : 初期値 *:動作モード 2 で SSM = 0 のときには未使用 352 LBR 0 1 LIN Synch break 生成ビット 書込み時 読出し時 影響なし 常に "0" を読出し LIN Synch break を生成 bit7 未使用ビット 読出し値は不定です。常に "0" を書き込んでください。 第 20 章 UART2, UART3 表 20.4-6 拡張通信制御レジスタ (ECCR2/ECCR3) の各ビットの機能説明 ビット名 機 能 bit7 未使用ビット 未使用ビットです。常に "0" を書き込んでください。 bit6 LBR: LIN Synch break 生成ビット 動作モード 3 において , 本ビットに "1" を設定すると ESCR2/ESCR3 の LBL0/LBL1 ビットで設定された長さの LIN synch break を生成します。 動作モード 0 時は , "0" に設定してください。 MS: マスタ / スレーブ モード選択ビット 同期モード 2 において UART2, UART3 のマスタまたはスレーブモード を選択できます。 "0" のマスタモード選択時は , UART2, UART3 は同期クロックを生成し ます。 "1" のスレーブモード選択時は , UART2, UART3 は外部シリアルクロッ クを受信します。 モード 0, 1, 3 のときは "0" に固定されます。 ( 注意事項 ) スレーブモード選択時は , クロックソースを外部クロックに設定し , 外部クロック入力を許可 (SMR2/SMR3:SCKE=0, EXT=1, OTO=1) にす る必要があります。 bit4 SCDE: シリアルクロック 遅延許可ビット モード 2 のマスタモード動作時に , SCDE ビットを "1" に設定すると図 20.7-5 に示すような遅延したシリアルクロックを出力します。 ( 注意事項 ) 図 20.7-5 に MB90V390HA/MB90V390HB/MB90394HAの行動を示しま す ( 遅 延 は ハ ー フ シ リ ア ル ク ロ ッ ク 周 期 で す )。MB90V390H/ MB90F394H(A) は遅延は 1 マシンクロック周期です。 bit3 SSM: スタート/ストップ ビットモード 許可ビット bit2 未使用ビット 未使用ビットです。 読出し値は不定です。 常に "0 を書き込んでください。 bit1 RBI: 受信バスアイドル フラグビット SIN2/SIN3 端子が "H" レベルかつ受信動作をしていないときに "1" にな ります。動作モード 2 で SSM=0 のときは本ビットを使用しないでくだ さい。 bit0 TBI: 送信バスアイドル フラグビット SOT2/SOT3 端子に送信動作がない場合は "1" になります。動作モード 2 で SSM=0 のときは本ビットを使用しないでください。 bit5 モード 2 で本ビットが "1" に設定されているとスタート / ストップビッ トを同期データフォーマットに付加します。 モード 0, 1, 3 のときは "0" に固定されます。 353 第 20 章 UART2, UART3 20.4.7 ボーレートジェネレータレジスタ 0, 1 (BGR02/BGR03,BGR12/BGR13) ボーレートジェネレータレジスタ 0, 1(BGR02/BGR03,BGR12/BGR13) は , シリア ルクロックの分周比を設定します。また , 送信リロードカウンタのカウント値を読 み出すことができます。 ■ ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構成 図 20.4-8 にボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット 構成を示します。 図 20.4-8 ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構成 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 BGR03: 00351EH BGR13: 00351FH BGR02: 0035DEH BGR12: 0035DFH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00000000B 00000000B R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W bit7 ~ bit0 BGR7 ~ BGR0 書込み時 読出し時 bit14 ~ bit8 BGR14 ~ BGR8 書込み時 読出し時 ボーレートジェネレータレジスタ 02,03 リロードカウンタ 0 ~ 7 に書込み 送信リロードカウンタビット 0 ~ 7 の読出し ボーレートジェネレータレジスタ 12,13 リロードカウンタ 8 ~ 14 に書込み 送信リロードカウンタビット 8 ~ 14 の読出し bit15 R/W :リード / ライト可能 R :リードオンリ :未定義 読出し時 未使用ビット "0" を読み出せます ボーレートジェネレータレジスタはシリアルクロックの分周比を設定します。 BGR12/BGR13 は上位ビット , BGR02/BGR03 は下位ビットに対応し , カウンタのリロー ド値の書込みと送信リロードカウンタ値の読出しが可能です。また , バイト・ワードア クセスできます。 ボーレートジェネレータレジスタに "0" 以外のリロード値を書き込むとリロードカウ ンタはカウントを開始します。 354 第 20 章 UART2, UART3 20.5 UART2, UART3 の割込み UART2, UART3 には受信割込みと送信割込みがあり , 次に示す要因で割込み要求を 発生させることができます。 • 受信データが受信データレジスタ (RDR2/RDR3) にセットされた場合 , または受信 エラーが発生した場合 • 送信データが送信データレジスタ (TDR2/TDR3) から送信用シフトレジスタに転送 され , 送信が開始された場合 • LIN synch break 検出 それぞれの割込みは拡張インテリジェント I/O サービス (EI2OS) に対応しています。 ■ LIN-UART2,UART3 の割込み LIN-UART2,UART3 の割込み制御ビットと割込み要因は表 20.5-1 のようになっていま す。 表 20.5-1 LIN-UART2,UART3 の割込み制御ビットと割込み要因 割込み 動作モード 送受信 / フラグ 要求フラグ レジスタ 0 1 2 3 キャプチャ ビット RDRF SSR2/ SSR3 受信データの ○ ○ ○ ○ RDR2/RDR3 書込 み ORE SSR2/ SSR3 ○ ○ ○ ○ オーバラン エラー FRE SSR2/ SSR3 ○ ○ △ ○ フレーミング エラー PE SSR2/ SSR3 ○ × △ × パリティエラー LBD ESCR2/ ESCR3 受信 送信 インプット キャプチャ 割込み要因 TDRE SSR2/ SSR3 ICP1/ ICP3/ ICP5 ICS01/ ICS23/ ICS45 ICP1/ ICP3/ ICP5 ICS01/ ICS23/ ICS45 × × × ○ ○ ○ ○ ○ LIN synch break 検出 送信レジスタが 空 割込み要因 許可ビット 割込み要求 フラグのクリア 受信データの読出し MB90V390H/ MB90F394H(A): LIN synch break 検出 (LBD= 1) SSR2/SSR3: RIE 受信エラーフラグクリ アビット (SCR2/SCR3: CRE) への "1" 書込み MB90V390H/ MB90F394H(A): LIN synch break 検出 (LBD= 1). ESCR2/ESCR3: ESCR2/ESCR3:LBD への LBIE "0" 書込み SSR2/SSR3: TIE LIN synch fieldの × × × ○ 1 回目の立下り ICS01/ICS23/ エッジ ICS45: LIN synch fieldの ICE1/ICE3/ × × × ○ 5 回目の立下り ICE5 送信データの書込み LIN Synch break 発生ビット (ECCR2/ ECCR3: LBR) への "1" 書込み ICP1/ICP3/ICP5 を ディセーブル エッジ ○ : 使用ビット × : 未使用ビット △ : ECCR2/ECCR3:SSM=1 のみ使用可能 355 第 20 章 UART2, UART3 ● 受信割込み 以下に示す動作が受信モードで発生するとシリアルステータスレジスタ (SSR2/SSR3) の各フラグビットは "1" に設定されます。 データ受信完了 受信データが受信シフトレジスタから受信データレジスタ (RDR2/RDR3) へ転送され , 読出し可能です。(RDRF=1) オーバランエラー RDRF=1 で , RDR2/RDR3 が CPU によって読み出されずに , 次のシリアル データを 受信した場合。(ORE=1) フレーミングエラー ストップビット受信エラー。(FRE=1) パリティエラー パリティ検出エラー。(PE=1) 上記のフラグビットいずれかが "1" のとき , 受信割込みが許可 (SSR2/SSR3:RIE=1) され ていると受信割込み要求が発生します。 RDRF フラグは , 受信データレジスタ (RDR2/RDR3) を読み出すと自動的に "0" にクリ ア さ れ ま す。こ れ が RDRF フ ラ グ を リ セ ッ ト す る 唯 一 の 方 法 で す (MB90V390H/ MB90F394H(A) では , LIN break が検出された場合にも RDRF フラグがクリアされま す )。エラーフラグはシリアル制御レジスタ (SCR2/SCR3) の受信エラーフラグクリア ビット (CRE) に "1" を書き込むと , すべて "0" にクリアされます。MB90V390H/ MB90F394H(A) では , LIN break が検出されたとき , エラーフラグもクリアされます。 RDRF フラグが "1" で , エラービットがセットされていない場合 , RDR2/RDR3 には有 効なデータだけが含まれます。 <注意事項> CRE フラグは書込み専用で , "1" 書込みのとき , 1 クロックサイクル間 "1" を保持します。 ● 送信割込み 送信データが送信データレジスタ (TDR2/TDR3) から送信シフトレジスタに転送され , 送信が開始されると, シリアルステータスレジスタ(SSR2/SSR3)の送信データレジスタ エンプティフラグビット (TDRE) が "1" にセットされます。この場合 , 送信割込みが許 可 (SSR2/SSR3:TIE=1) されていると送信割込み要求が発生します。 <注意事項> ハードウェアリセット / ソフトウェアリセット後の TDRE の初期値が "1" であるため , TIE ビットが "1" に設定されると直ちに割込みが発生します。また , TDRE は , 送信データレ ジスタ (TDR2/TDR3) にデータを書き込むことでのみクリアされます。 356 第 20 章 UART2, UART3 ● LIN synch break 割込み MB90V390H/MB90F394H(A): この項は ,UART2, UART3 がモード 0 または 3 で動作す る場合にのみ適用されます。 バス ( シリアル入力 ) が 11 ビット時間以上 "0" ( ドミナント ) になっている場合 , 拡張 ステータス / 制御レジスタ (ESCR2/ESCR3) の LIN Synch break 検出フラグビット (LBD) が "1" に セ ッ ト さ れ , 受 信 エ ラ ー フ ラ グ (SSR2/SSR3:FRE, SSR2/SSR3:ORE, SSR2/ SSR3:PE)および受信データレジスタフルフラグ(SSR2/SSR3:RDRF) がクリアされます。 この場合 ,9 ビット時間後に , 受信エラーフラグが "1" にセットされます。そのため LIN synch break の検出のみを希望する場合 ,RXE フラグを "0" にセットする必要がありま す。 LBD フラグに "1" を書き込むと , 割込みおよび LBD フラグがクリアされます。これは , LIN synch field のインプットキャプチャ割込みの前に実行する必要があります。 MB90V390HA/MB90V390HB/MB90394HA: この項は , UART2, UART3 がモード 3 で LIN スレーブとして動作する場合にのみ適用されます。 バス ( シリアル入力 ) が 11 ビット時間以上 "0" ( ドミナント ) になっている場合 , 拡張 ステータス / 制御レジスタ (ESCR2/ESCR3) の LIN Synch break 検出フラグビット (LBD) が "1" にセットされます。この場合 , 9 ビット時間後に , 受信エラーフラグが "1" にセッ トされます。そのため LIN synch break の検出のみを希望する場合 ,RXE フラグを "0" に セットする必要があります。 LBD フラグに "1" を書き込むと , 割込みおよび LBD フラグがクリアされます。これは , LIN synch field のインプットキャプチャ割込みの前に実行する必要があります。 ● LIN synch field エッジ検出割込み この項は , UART2, UART3 がモード 3 で LIN スレーブとして動作する場合にのみ適用 されます。LIN break の検出後に , 受信バスの次の立下りエッジが UART2, UART3 に よって示されます。同時に ICU1/ICU3/ICU5 に接続されている内部信号が "1" にセット されます。この信号は , LIN synch field の 5 番目の立下りエッジの後 ,"0" にリセットさ れます。どちらの場合も ," 両方のエッジ検出 " および ICU1/ICU3/ICU5 割込みが許可 されていれば , ICU1/ICU3/ICU5 は割込みを生成します。ICU1/ICU3/ICU5 カウンタ値 の差は , シリアルクロックに 8 を掛けた値です。これを 8 で割ると , 専用リロードカウ ンタの新しく検出および計算されたボーレートになります。次に , この値から 1 を引い た値をボーレートジェネレータレジスタ (BGR02/BGR12 および BGR03/BGR13) に書 き込まなければなりません。リロードカウンタを再スタートする必要はありません。な ぜなら,このカウンタは開始ビットの立下りエッジが検出されると自動的に再スタート されるからです。 357 第 20 章 UART2, UART3 ■ LIN-UART2,UART3 の割込みと EI2OS 表 20.5-2 LIN-UART2,UART3 の割込みと EI2OS 割込み制御レジスタ チャネル ベクタテーブルのアドレス EI2OS 割込み番号 レジスタ名 アドレス 下位 上位 バンク UART2 受信 #39(27H) ICR14 0000BEH FFFF60H FFFF61H FFFF62H *1 UART2 送信 #40(28H) ICR14 0000BEH FFFF5CH FFFF5DH FFFF5EH *2 UART3 受信 #39(27H) ICR14 0000BEH FFFF60H FFFF61H FFFF62H *3 UART3 送信 #40(28H) ICR14 0000BEH FFFF5CH FFFF5DH FFFF5EH *4 *1: UART2 受信のための EI2OS サービスは , UART2 送信割込みと UART3 の送信および受信割込みの 両方が禁止されている場合にだけ使用可能です。受信エラーの検出時に , EI2OS サービスの停止 要求がサポートされます。 *2: UART2 送信のための EI2OS サービスは , UART2 受信割込みと UART3 の送信および受信割込みの 両方が禁止されている場合にだけ使用可能です。 *3: UART3 受信のための EI2OS サービスは , UART3 送信割込みと UART2 の送信および受信割込みの 両方が禁止されている場合にだけ使用可能です。受信エラーの検出時に , EI2OS サービスの停止 要求がサポートされます。 *4: UART3 送信のための EI2OS サービスは , UART3 受信割込みと UART2 の送信および受信割込みの 両方が禁止されている場合にだけ使用可能です。 ■ UART2,UART3 の EI2OS 機能 UART2,UART3 は EI2OS 対応の回路があります。このため , 受信 / 送信の各割込みで 別々に EI2OS を起動することができます。 ● UART2 受信の場合 UART2 は割込みレジスタを , UART2 送信割込み , UART3 受信および送信割込みとの 間で共有します。そのため EI2OS の起動は , UART2 送信割込みが存在せず , UART3 受 信または送信割込みが使用されていない場合にだけ可能です。 ● UART2 送信の場合 UART2 は割込みレジスタを , UART2 受信割込み , UART3 受信および送信割込みとの 間で共有します。そのため EI2OS の起動は , UART2 受信割込みが存在せず , UART3 受 信または送信割込みが使用されていない場合にだけ可能です。 ● UART3 受信の場合 UART3 は割込みレジスタを , UART3 送信割込み , UART2 受信および送信割込みとの 間で共有します。そのため EI2OS の起動は , UART3 送信割込みが存在せず , UART2 受 信または送信割込みが使用されていない場合にだけ可能です。 ● UART3 送信の場合 UART3 は割込みレジスタを , UART3 受信割込み , UART2 受信および送信割込みとの 間で共有します。そのため EI2OS の起動は , UART3 受信割込みが存在せず , UART2 受 信または送信割込みが使用されていない場合にだけ可能です。 358 第 20 章 UART2, UART3 受信割込み発生とフラグセットのタイミング 20.5.1 受信時の割込みとしては , 受信完了 (SSR2/SSR3:RDRF) および受信エラーの発生 (SSR2/SSR3:PE, ORE, FRE) があります。 ■ 受信割込み発生とフラグセットのタイミング モード 0, 1, 2(SSM=1), 3 で最初のストップビットの検出 , またはモード 2(SSM=0) で最 終データビットが検出されることにより , 受信データが受信データレジスタ (RDR2/ RDR3) に格納されます。受信が完了したとき (SSR2/SSR3:RDRF=1) または受信エラー が発生 (SSR2/SSR3:PE, ORE, FRE=1) すると各フラグがセットされます。そのとき , 受 信割込みが許可 (SSR2/SSR3: RIE=1) されていると受信割込みが発生します。 <注意事項> 各モードで受信エラーが発生したときは , 受信データレジスタ (RDR2/RDR3) のデータは 無効となります。 図 20.5-1 に , 受信動作とフラグセットのタイミングを示します。 図 20.5-1 受信動作とフラグセットのタイミング 受信データ ( モード 0/3) ST D0 D1 D2 …D5 D6 D7/P SP ST 受信データ ( モード 1) ST D0 D1 D2 …D6 D7 A/D SP ST D0 D1 D2 …D4 D5 D6 D7 D0 受信データ ( モード 2) PE*1, FRE RDRF ORE*2 (RDRF = "1") 受信割込み発生 * 1:モード 1, 3 で PE フラグは常に "0" となります。 * 2:受信データが読み出される前に (RDRF = 1) , 次のデータが転送されるとオーバランエラーが発生します。 ST:スタートビット SP:ストップビット A/D:モード 1 ( マルチプロセッサ ) アドレスデータ選択ビット <注意事項> 図 20.5-1 はモード 0 およびモード 3 におけるすべての受信動作を表しているわけではあ りません。"7P1" と "8N1"(P=" 偶数パリティ " または " 奇数パリティ ") の例のみ示されて います。 359 第 20 章 UART2, UART3 図 20.5-2 ORE フラグセットタイミング 受信データ RDRF ORE 360 第 20 章 UART2, UART3 送信割込み発生とフラグセットのタイミング 20.5.2 送信時の割込みは , 送信データが送信データレジスタ (TDR2/TDR3) から送信用シフ トレジスタに転送され , 送信が開始されると発生します。 ■ 送信割込み発生とフラグセットのタイミング 送信データレジスタ (TDR2/TDR3) に書き込まれたデータが送信シフトレジスタに転送 され , 送信が開始されると , 次のデータの書込みが可能な状態 (SSR2/SSR3:TDRE=1) に なります。そのとき , 送信割込みが許可 (SSR2/SSR3:TIE=1) されていると送信割込みが 発生します。 TDRE ビットは読出しのみ可能なビットのため , 送信データレジスタ (TDR2/TDR3) へ のデータ書込みのみにより "0" にクリアされます。 図 20.5-3 に UART2,UART3 の各モードに設定したときの送信動作とフラグセットのタ イミングについて示します。 図 20.5-3 送信動作とフラグセットのタイミング 送信割込み発生 送信割込み発生 モード 0, 1, 2 (SSM=1) または 3: TDR2/TDR3 書込み TDRE シリアル出力 ST D0 D1 D2 D3 D4 D5 D6 D7 P SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP A/D A/D 送信割込み発生 送信割込み発生 モード 2 (SSM = 0) : TDR2/TDR3 書込み TDRE シリアル出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 ST:スタートビット D0 ~ D7:データビット P:パリティ SP:ストップビット A/D:アドレスデータ選択ビット ( モード 1) <注意事項> 図 20.5-3 はモード 0 におけるすべての送信動作については説明していません。 "8p1" (p=" 偶数パリティ " または " 奇数パリティ ") についてのみ示されています。 パリティビットはモード3の場合, もしくはモード2でSSM=0の場合には送信されません。 361 第 20 章 UART2, UART3 ■ 送信割込み要求発生タイミング 送信割込みが許可されている場合に (SSR2/SSR3:TIE=1), TDRE フラグが "1" にセット されると送信割込みが発生します。 <注意事項> 初期状態では , TDRE ビットが "1" になっていますので , 送信割込みを許可 (SSR2/ SSR3:TIE=1) にすると直ちに送信割込みが発生します。TDRE ビットのクリアは送信デー タレジスタ (TDR2/TDR3) に新規データを書き込むしかありませんので , 送信割込み許可 のタイミングには注意してください。 362 第 20 章 UART2, UART3 20.6 UART2, UART3 のボーレート UART2,UART3 の送受信クロックソースは , 次のいずれかを選択できます。 • 専用ボーレートジェネレータ ( リロードカウンタ ) • 外部クロックをボーレートジェネレータに入力 ( リロードカウンタ ) • 外部クロック (SCK2/SCK3 端子入力クロックの直接使用 ) ■ UART2,UART3 ボーレート選択 ボーレートは次の 3 種類の中から 1 種類を選択できます。ボーレートの選択回路を図 20.6-1 に示します。 ● 専用ボーレートジェネレータ ( リロードカウンタ ) で内部クロックを分周して得られるボー レート 2 つの内部リロードカウンタがあり , それぞれ送受信シリアルクロックに対応していま す。ボーレートジェネレータレジスタ 1, 0 (BGR02/BGR03,BGR12/BGR13) で 15 ビット のリロード値を設定することによりボーレートを選択できます。 リロードカウンタは , 設定された値で内部クロックを分周します。 非同期モード , 同期モード ( マスタ ) 時に使用します。 クロックソースの設定は , 内部クロックとボーレートジェネレータクロック使用を選 択 (SMR2/SMR3:EXT=0, OTO=0) してください。 ● 専用ボーレートジェネレータ ( リロードカウンタ ) で外部クロックを分周して得られるボー レート リロードカウンタのクロックソースに外部クロックを使用します。 ボーレートジェネレータレジスタ 1, 0 (BGR02/BGR03,BGR12/BGR13) で 15 ビットのリ ロード値を設定することによりボーレートを選択できます。 リロードカウンタは , 設定された値で外部クロックを分周します。 非同期モード時に使用します。 クロックソースの設定は , 外部クロックとボーレートジェネレータクロック使用を選 択 (SMR2/SMR3:EXT=1, OTO=0) してください。 本モードは特殊な周波数の発振子を分周して使用するケースを想定して用意されてい ます。 ● 外部クロック (1 対 1 モード ) によるボーレート UART2,UART3 のクロック入力端子 (SCK2/SCK3) から入力されたクロックをそのまま ボーレートとして使用します ( 同期モード 2 スレーブ動作 (ECCR2/ECCR3:MS=1))。マ シンクロックの 4 分周以下のボーレートを外部で設定できます。 同期モード ( スレーブ ) 時に使用します。 クロックソースの設定は , 外部クロックと外部クロック直接使用を選択 (SMR2/ SMR3:EXT=1, OTO=1) してください。 363 第 20 章 UART2, UART3 図 20.6-1 ボーレート選択回路(リロードカウンタ) REST スタートビット 立下りエッジ検出 リロード値:v Rxc = 0? 受信 リロード 15 ビットリロードカウンタ Rxc = v/2? セット FF 受信クロック 0 リセット 1 リロード値:v CLK 0 SCK2, SCK3 ( 外部クロック 入力 ) 1 送信 15 ビットリロードカウンタ カウンタ値:TXC EXT Txc = 0? セット FF リロード OTO 0 リセット Txc = v/2? 1 送信クロック 内部データバス EXT REST OTO 364 SMR2/ SMR3 レジスタ BGR14 BGR13 BGR12 BGR11 BGR10 BGR9 BGR8 BGR12/ BGR13 レジスタ BGR7 BGR6 BGR5 BGR4 BGR3 BGR2 BGR1 BGR0 BGR02/ BGR03 レジスタ 第 20 章 UART2, UART3 ボーレート設定 20.6.1 ボーレートの設定を示します。また , シリアルクロック周波数の計算結果を示しま す。 ■ ボーレートの計算 2 つの 15 ビットリロードカウンタは , ボーレートジェネレータレジスタ 1, 0 (BGR02/ BGR03,BGR12/BGR13) で設定します。 ボーレートの計算式を以下に示します。 リロード値 : v= ( φb ) - 1 v: リロード値 b: ボーレート φ: マシンクロック , 外部クロック周波数 計算例 マシンクロック16MHz, 内部クロック使用, ボーレートを19200 bpsに設定する場合, 次のようになります。 リロード値 : 6 v= × 10 ( 1619200 ) - 1 = 832 よって , 実際のボーレートは下記のように計算できます。 b= φ (v + 1) = 16 × 106 = 19207.6831 833 <注意事項> リロード値を "0" に設定するとリロードカウンタは停止します。そのため , 最低の分周比 は "2" になります。 非同期モードで送受信する際, 5回オーバサンプリングして受信値を決定するため, リロー ド値を最低でも "4" に設定する必要があります。 365 第 20 章 UART2, UART3 ■ 各クロック速度のリロード値とボーレート 各クロック速度のリロード値とボーレートを , 表 20.6-1 に示します。 表 20.6-1 リロード値とボーレート ボーレート (bps) 8 MHz 10 MHz 16 MHz 20 MHz value 24 MHz value dev.* value dev.* value dev.* dev.* value dev.* 4M ― ― ― ― ― ― 4 0 5 0 2M ― ― 4 0 7 0 9 0 11 0 1M 7 0 9 0 15 0 19 0 23 0 500000 15 0 19 0 31 0 39 0 47 0 460800 ― ― ― ― ― ― ― ― 51 - 0.16 250000 31 0 39 0 63 0 79 0 95 0 230400 ― ― ― ― ― ― ― ― 103 - 0.16 153600 51 - 0.16 64 - 0.16 103 - 0.16 129 - 0.16 155 - 0.16 125000 63 0 79 0 127 0 159 0 191 0 115200 68 - 0.64 86 0.22 138 0.08 173 0.22 207 - 0.16 76800 103 - 0.16 129 - 0.16 207 - 0.16 259 - 0.16 311 - 0.16 57600 138 0.08 173 0.22 277 0.08 346 - 0.06 416 0.08 38400 207 - 0.16 259 - 0.16 416 0.08 520 0.03 624 0 28800 277 0.08 346 < 0.01 554 - 0.01 693 - 0.06 832 - 0.03 19200 416 0.08 520 0.03 832 - 0.03 1041 0.03 1249 0 10417 767 < 0.01 959 < 0.01 1535 < 0.01 1919 < 0.01 2303 < 0.01 9600 832 0.04 1041 0.03 1666 0.02 2083 0.03 2499 0 7200 1110 < 0.01 1388 < 0.01 2221 < 0.01 2777 < 0.01 3332 < 0.01 4800 1666 0.02 2082 - 0.02 3332 < 0.01 4166 < 0.01 4999 0 2400 3332 < 0.01 4166 < 0.01 6666 < 0.01 8332 < 0.01 9999 0 1200 6666 < 0.01 8334 0.02 13332 < 0.01 16666 < 0.01 19999 0 600 13332 < 0.01 16666 < 0.01 26666 < 0.01 ― ― ― ― 300 26666 < 0.01 ― ― ― ― ― ― ― ― *: 周波数偏差 (dev.) の単位は % です。 同期モード時の最大ボーレートは , マシンクロックの 1/5 です。 ■ 外部クロック シリアルモードレジスタ (SMR2/SMR3) の EXT ビットに "1" を書き込むと外部クロッ クが選択されます。ボーレートジェネレータで外部クロックは内部クロックと同じよ うに使用できます。 同期モード 2 でスレーブ動作を使用する際に , 1 対 1 外部クロック入力モード (SMR2/ SMR3:OTO=1) を選択します。このモードでは , SCK2/SCK3 に入力された外部クロック を UART2,UART3 のシリアルクロックに直接入力します。 <注意事項> 外部クロック信号は UART2,UART3 で内部クロックに同期します。したがって , 分周不可 能な外部クロックの場合 , 不安定な信号状態になります。 366 第 20 章 UART2, UART3 ■ リロードカウンタの動作 リロード値を 832 としたときの 2 つのリロードカウンタの動作を図 20.6-2 に示します。 図 20.6-2 リロードカウンタの動作 送受信クロック リロード カウンタ 001 000 832 831 830 829 828 827 413 412 411 410 リロードカウンタ値 送受信クロック リロード カウンタ 417 416 415 414 <注意事項> シリアルクロック信号の立下りエッジは , リロード値を 2 で割った値 ( (v+1)/2 ) をカウン トした後に発生します。 367 第 20 章 UART2, UART3 20.6.2 リロードカウンタ 専用ボーレートジェネレータとして機能する 15 ビットのリロードカウンタです。 外 部クロックまたは内部クロックより送受信クロックを生成します。 また , 送信リロードカウンタのカウント値をボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) より読み出すことができます。 ■ リロードカウンタの機能 リロードカウンタには , 送信リロードカウンタと受信リロードカウンタがあり , 専用 ボーレートジェネレータとして機能します。リロード値に対する 15 ビットレジスタか ら構成されており , 外部クロックまたは内部クロックより送受信クロックを生成しま す。また , 送信リロードカウンタのカウント値をボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) より読み出すことができます。 ■ リロードカウンタのカウントの開始 ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) にリロード値を書き 込むとリロードカウンタはカウントを開始します。 ■ リロードカウンタの再スタート リロードカウンタは下記の条件で再スタートされます。 送信 / 受信リロードカウンタ共通 • グローバル MCU リセット • UART2,UART3 プログラマブルリセット (SMR2/SMR3:UPCL ビット ) • プログラマブル再スタート (SMR2/SMR3:REST ビット ) 受信リロードカウンタ • 自動再スタート ( 非同期モードでのスタートビット立下りエッジ検出 ) ● プログラマブル再スタート シリアルモードレジスタ (SMR2/SMR3) の REST ビットを "1" にセットすると , 次のク ロックサイクルで 2 つのリロードカウンタは再スタートします。 この機能により送信リロードカウンタを簡易的なタイマとして利用することが可能で す。 本機能の使用例を図 20.6-3 に示します ( リロード値 100 の場合 ) 。 368 第 20 章 UART2, UART3 図 20.6-3 リロードタイマの再スタートによる簡易タイマの使用例 MCU クロック リロードカウンタ クロック出力 REST リロード値 37 36 35 100 99 98 97 96 95 94 93 92 91 90 89 88 87 Read BGR02/BGR03,BGR12/BGR13 データバスの 読出し 90 :不定値 この例では , 再スタート後のマシンサイクル数 cyc は下式で求められます。 cyc = v - c + 1 = 100 - 90 + 1 = 11 v : リロード値 , c : リロードカウンタの値 <注意事項> SMR2/SMR3:UPCL ビットに "1" を書き込むことで UART2,UART3 をリセットした場合に も , リロードカウンタは再スタートします。 ● 自動再スタート ( 受信リロードカウンタのみ ) 非同期モードでスタートビット立下りエッジが検出されると , 受信リロードカウンタ が再スタートします。これは受信シフトレジスタを受信データに同期させるための機 能です。 ■ リロードカウンタのクリア リセットによりボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のリ ロード値とリロードカウンタが "00H" にクリアされ , リロードカウンタは停止します。 UART2,UART3 のリセット (SMR2/SMR3:UPCL への "1" 書込み ) でカウンタ値は一時 "00H" にクリアされますが , リロード値は保持されていますのでリロードカウンタは再 スタートします。再スタートの設定 (SMR2/SMR3:REST への "1" 書込み ) ではカウンタ 値は "00H" にクリアされずに再スタートします。 369 第 20 章 UART2, UART3 20.7 UART2, UART3 の動作 UART2,UART3 は , モード 0 の双方向シリアル通信 , モード 1 のマスタ / スレーブマル チプロセッサ通信 , モード 2, モード 3 のマスタ / スレーブ双方向通信で動作します。 ■ UART2,UART3 の動作 ● 動作モード UART2,UART3 の動作モードにはモード 0 ~モード 3 の 4 種類があり , 表 20.7-1 に示 すように CPU 間の接続方式やデータ転送方式を選択することができます。 表 20.7-1 UART2, UART3 の動作モード データ長 動作モード 同期方式 パリティなし 0 ノーマルモード 1 マルチプロセッサ モード 2 ノーマルモード 3 LIN モード パリティあり 7 ビットまたは 8 ビット 7 ビットまたは 8 ビット + 1* ― 8 ビット 8 ビット ストップビット長 ― 非同期 非同期 1 ビット または 2 ビット 同期 なし , 1 ビット , 2 ビット 非同期 1 ビット データビット フォーマット LSB ファースト MSB ファースト LSB ファースト ―: 設定不可 *: "+1" はマルチプロセッサモードで通信制御用に使用されるアドレス / データ選択ビット (A/D) です。 <注意事項> モード 1 動作は, マスタ/スレーブ接続システムの UART2, UART3 のマスタまたはスレー ブ動作の両方に対してサポートされています。モード 3 では , UART2, UART3 の機能は 8N1-Format, LSB first にロックされています。 モードが変更されると , UART2, UART3 は , 可能なすべての送信または受信を切断し , 新 しいアクションを待機します。 ■ CPU 間接続方式 外部クロック 1 対 1 接続 ( ノーマルモード ) とマスタ / スレーブ型接続 ( マルチプロ セッサモード ) のどちらかを選択できます。どちらの方式でも , データ長 , パリティ有 無 , 同期方式などは , すべての CPU で統一しておく必要があり , 動作モードを次のよう に選択します。 • 1 対 1 接続の場合 :2 つの CPU で動作モード 0, 動作モード 2 のいず れかの同じ方式を採用する必要があります。非同 期方式では動作モード 0, 同期方式では動作モー ド 2 を選択してください。また , 動作モード 2 で は 1 つの CPU をマスタへ , もう 1 つの CPU をス レーブへ設定してください。 • マスタ / スレーブ型接続の場合 :動作モード 1 を選択します。マスタ / スレーブシ ステムとして使用してください。 370 第 20 章 UART2, UART3 ■ 同期方式 非同期動作では , UART2, UART3 受信クロックは自動的に受信開始ビットの立下り エッジに同期化されます。 • MB90V390H/MB90F394H(A):開始ビット検出は,レベルの検出によって行われます。 つまり , シリアルデータ入力 SIN2/SIN3 が "0" のときに SCR2/SCR3:RXE ビットが "1" にセットされると , 即座に開始ビットが検出されます。SCR2/SCR3:RXE ビット が "0" にセットされているときでも受信開始ビットは記憶されます。それによって SCR2/SCR3:RXE ビットが再び "1" にセットされると , 即座に受信が開始されます。 次善策として , SCR2/SCR3:RXE ビットを "0" にセットした後 , SMR2/SMR3: UPCL ビットに "1" を書き込むことによって UART2, UART3 をリセットします。 • MB90V390HA/MB90V390HB/MB90394HA: 開始ビット検出は , エッジの検出によっ て行われます。 つまり , SIN2/SIN3 が "0" のときに SCR2/SCR3:RXE ビットが "1" にセットされた場 合 , シリアルデータ入力 SIN2/SIN3 の次の立下りエッジまで開始ビットは検出され ません。SCR2/SCR3:RXE ビットが "0" にセットされているとき , 受信開始ビットは 記憶されません。つまり SCR2/SCR3:RXE ビットが再び "1" にセットされた後 , 開始 ビットが検出されると受信が開始されます。 同期モードでは , 同期化はマスタデバイスのクロック信号によって , または UART2, UART3 がマスタとして動作している場合は UART2, UART3 自身によって実行されま す。 ■ 信号方式 NRZ (Non Return to Zero) 形式です。 ■ 送受信許可 UART2, UART3 は , 送信動作許可ビット (SCR2/SCR3:TXE) と受信動作許可ビット (SCR2/SCR3:RXE) を使用して送信と受信の両方を制御します。 • 受信時に受信動作が禁止されている場合 ( データは受信シフトレジスタに入力され ます ), フレーム受信を終了し , 受信データレジスタ (RDR2/RDR3 ) の受信データを 読み出します。次に受信動作を停止します。 • 送信時に送信動作が禁止されている場合 ( データは送信シフトレジスタから出力さ れます ), 送信データレジスタ (TDR2/TDR3) のデータがなくなるまで待機した後で 送信動作を停止します。 371 第 20 章 UART2, UART3 非同期モード ( 動作モード 0, 1) の動作 20.7.1 UART2,UART3 を動作モード 0( ノーマルモード ), または動作モード 1( マルチプロ セッサモード ) で使用する場合 , 転送方式は非同期となります。 ■ 非同期モードの動作 ● 送受信データフォーマット 送受信データは必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビッ ト長の送受信が行われ , 少なくとも 1 ビットのストップビット ("H" レベル ) で終了し ます。 ビット転送方向 (LSB ファーストまたは MSB ファースト ) はシリアルステータスレジ スタ (SSR2/SSR3) の BDS ビットで決定されます。パリティありの場合 , パリティビッ トは常に最終データビットと最初のストップビットの間に置かれます。 動作モード 0 では , データ長は 7 ビットまたは 8 ビットを選択します。パリティは , あ り / なしの選択ができます。また , ストップビット長 (1 または 2) を選択可能です。 動作モード 1 では , データ長は 7 ビットまたは 8 ビットで , パリティは付加されず , ア ドレス / データ選択ビットが付加されます。ストップビット長 (1 または 2) を選択でき ます。 送受信フレームのビット長計算式は , 以下のようになります。 長さ = 1 + d + p + s (d= データビット数 [7 または 8], p= パリティ [0 または 1], s= ストップビットの数 [1 または 2]) 図 20.7-1 に , 非同期モードの場合のデータフォーマットを示します。 図 20.7-1 送受信データフォーマット ( 動作モード 0, 1) *1 *2 動作モード 0 ST D0 D1 D2 D3 D4 D5 D6 D7/P 動作モード 1 ST D0 D1 D2 D3 D4 D5 D6 D7 A/D SP SP SP *1: パリティなしでデータ長が 8 ビットの場合は D7 ( ビット 7) パリティありでデータ長が 7 ビットの場合は P ( パリティ ) *2: SCR3 の SBL ビットが "1" に設定されている場合のみ ST: スタートビット SP: ストップビット A/D: モード 1 でのアドレス / データ選択ビット ( マルチプロセッサ・モード ) <注意事項> シリアルステータスレジスタ (SSR2/SSR3) の BDS ビットを "1"(MSB ファースト ) に設 定する場合 , ビットは D7, D6, …D1, D0(P) の順序で処理されます。 372 第 20 章 UART2, UART3 受信時に , 両方のストップ ビットが検出されます ( 選択している場合 )。しかし , 受信 データレジスタフル (RDRF) フラグは , 最初のストップ ビットで "1" になります。バス アイドルフラグ (ECCR2/ECCR3 の RBI)は,それ以上の開始ビットが検出されない場合, 2 番目のストップ ビットの後に "1" になります (2 番目のストップ ビットは , マークレ ベルですが , " バスアクティビティ " に含まれます )。 ● 送信動作 シリアルステータスレジスタ (SSR2/SSR3) の送信データレジスタエンプティフラグ ビット (TDRE) が "1" であれば , 送信データレジスタ (TDR2/TDR3) に送信データを書 き込むことができます。データを書き込むと TDRE フラグは "0" になります。このと き , 送信が許可されていれば ( シリアル制御レジスタ (SCR2/SCR3) の TXE=1), データ は送信シフトレジスタに書き込まれ , シリアルクロックの次のサイクルでスタート ビットから順に送信が開始されます。 送信割込みが許可されていれば (TIE=1), TDRE フラグがセットされると割込みが発生 されます。TDRE の初期値は "1" であるため , その状態で TIE に "1" を書き込むと直ち に割込みが発生しますので注意してください。 データ長が 7 ビットに設定 (CL=0) されている場合 , 転送方向選択ビット (BDS) の設定 (LSB ファーストまたは MSB ファースト ) にかかわらず , TDR2/TDR3 の MSB が不使用 ビットになります。 <注意事項> 送信データエンプティフラグビット (SSR2/SSR3:TDRE) の初期値が "1" になっているた め , 送信割込みが許可 (SSR2/SSR3:TIE=1) されると直ちに割込みが発生します。 ● 受信動作 受信動作が許可 (SCR2/SCR3:RXE=1) されていると , 受信動作を行います。スタート ビットを検出すると, シリアル制御レジスタ(SCR2/SCR3)で設定しているデータフォー マットに従って 1 フレームデータの受信が行われます。エラーが発生した場合にはエ ラーフラグ (SSR2/SSR3:PE, ORE, FRE) がセットされます。1 フレームの受信が完了する と , 受信データは受信シフトレジスタから受信データレジスタ (RDR2/RDR3) へ転送さ れ , 受信データレジスタフルフラグビット (SSR2/SSR3:RDRF) が "1" にセットされます。 このとき , 受信割込み要求が許可 (SSR2/SSR3:RIE=1) されていると受信割込み要求を出 力します。 受信データを読み出す際には , 1 フレームデータの受信完了後にエラーフラグの状態を 確認し , 正常に受信が行われていれば受信データレジスタ (RDR2/RDR3) から受信デー タを読み出してください。受信エラーが発生している場合には , エラー処理を行ってく ださい。 受信データの読出しで , 受信データレジスタフルフラグビット (SSR2/SSR3:RDRF) は "0" にクリアされます。 データ長が 7 ビットに設定 (CL=0) されている場合 , 転送方向選択ビット (BDS) の設定 (LSB ファーストまたは MSB ファースト ) にかかわらず , TDR2/TDR3 の MSB が不使用 ビットになります。 373 第 20 章 UART2, UART3 <注意事項> 受信データレジスタ (RDR2/RDR3) のデータは , 受信データレジスタフルフラグビット (SSR2/SSR3:RDRF)が"1"にセットされ, エラーが発生しなかった(SSR2/SSR3:PE, ORE, FRE=0) 場合に有効となります。 ● 使用クロック 内部クロックまたは外部クロックを使用します。ボーレートは , ボーレートジェネレー タを選択 (SMR2/SMR3:EXT=0 または 1, OTO=0) してください。 ● ストップビット 送信時に , 1 ビットまたは 2 ビットのストップビットを選択できます。 2 ビットのストッ プビットを選択したときは , 両方のストップビットが受信時に検出されます。 最初のストップビットが検出されると受信データレジスタフルフラグ (SSR2/SSR3: RDRF) が "1" になります。その後 , スタートビットが検出されない場合 , 受信バスアイ ドルフラグ (ECCR2/ECCR3:RBI) が "1" になり受信動作がないことを示します。 ● エラー検出 モード 0 では , パリティエラー , オーバランエラー , フレームエラーを検出できます。 モード 1 では , オーバラン , フレームエラーを検出できます。パリティエラーは検出で きません。 ● パリティ パリティビットの付加 ( 送信時 ), 検出 ( 受信時 ) を設定できます。 パリティ許可ビット (SCR2/SCR3:PEN) でパリティの有無を , パリティ選択ビット (SCR2/SCR3:P) で偶数 / 奇数パリティを選択できます。 動作モード 1 では , パリティを使用できません。 図 20.7-2 パリティ有効時の送信データ SIN ST SP 1 0 1 1 0 0 0 0 0 SOT ST 偶数パリティにて受信時 パリティエラー発生 (SCR2/SCR3:P = 0) SP 偶数パリティの送信 (SCR2/SCR3:P = 0) SP 奇数パリティの送信 (SCR2/SCR3:P = 1) 1 0 1 1 0 0 0 0 1 SOT ST 1 0 1 1 0 0 0 0 0 データ パリティ ST:スタートビット SP:ストップビット パリティあり (PEN = 1) の場合 ( 注意事項 ) 動作モード 1 では , パリティは使用できません。 374 第 20 章 UART2, UART3 ● データ信号方式 NRZ データフォーマットです。 ● データ転移方法 データビット転送方法を LSB ファーストまたは MSB ファーストに選択できます。 375 第 20 章 UART2, UART3 20.7.2 同期モード ( 動作モード 2) の動作 UART2,UART3 を動作モード 2( ノーマルモード ) で使用する場合 , 転送方式はク ロック同期となります。 ■ 同期モード ( 動作モード 2) の動作 ● 送受信データフォーマット 同期モードでは , 8 ビットデータを送受信し , スタートビット , ストップビットの無を 選択 (ECCR2/ECCR3:SSM=0) できます。また , スタート / ストップあり (ECCR2/ ECCR3:SSM=1) のとき , パリティビットの有無を選択 (SCR2/SCR3:PEN) できます。 図 20.7-3 に同期モード使用時のデータフォーマットを示します。 図 20.7-3 送受信データフォーマット ( 動作モード 2) 送受信データ (ECCR2/ECCR3:SSM=0,SCR2/SCR3:PEN=0) D0 D1 D2 D3 D4 D5 D6 D7 送受信データ (ECCR2/ECCR3:SSM=1,SCR2/SCR3:PEN=0) ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP 送受信データ (ECCR2/ECCR3:SSM=1,SCR2/SCR3:PEN=1) ST D0 D1 D2 D3 D4 D5 D6 D7 P SP SP * * *:2 ストップビットに設定 (SCR:SBL = 1) した場合 ST:スタートビット SP:ストップビット P:パリティビット ● モード 2 のクロック反転機能とスタート / ストップビット 拡張ステータス制御レジスタ (ESCR2/ESCR3) の SCES ビットが "1" の場合 , シリアル クロックは反転します。スレーブモードでは UART2, UART3 は受信したシリアルク ロックの立下りエッジでデータをサンプリングします。マスタモードでは SCES ビッ トが "1" のとき , マークレベルが "0" になることにご注意ください。 拡張通信制御レジスタ (ECCR2/ECCR3) の SSM ビットが "1" の場合には , 非同期モード のようにスタートビットとストップビットが付加されます。 図 20.7-4 クロック反転時の送信データフォーマット 送受信クロック (SCES = 0, CCO = 0): マークレベル 送受信クロック (SCES = 1, CCO = 0): データの流れ (SSM = 1) ( パリティなし , 1 ストップビットのとき ) マークレベル ST SP データフレーム 376 第 20 章 UART2, UART3 ● クロックの供給 クロック同期モード ( ノーマル ) では , 送受信ビット数はクロックサイクル数と同じで なければなりません。スタート / ストップビットが許可されている場合は追加された スタート / ストップビット分まで一致している必要があります。 マスタモード (ECCR2/ECCR3: MS = 0) でシリアルクロック出力許可 (SMR2/SMR3: SCKE = 1) を選択した場合は , 送受信時には同期クロックが自動的に出力されます。ス レーブモード (ECCR2/ECCR3: MS = 1) またはシリアルクロック出力禁止 (SMR2/SMR3: SCKE = 0) を選択した場合には , 送受信データの各ビット分のクロックが外部から供 給される必要があります。 送受信動作に関係ない場合にはクロック信号はマークレベル("H")に保たれる必要があ ります。 ECCR2/ECCR3 レジスタの SCDE ビットが "1" のとき , クロック出力信号は遅延されま す。この遅延の大きさは , MB90V390H/MB90F394H(A) と MB90V390HA/MB90V390HB/ MB90394HA で異なります。 MB90V390H/MB90F394H(A):ECCR2/ECCR3 レジスタの SCDE ビットが "1" のとき , ク ロック出力信号の遅延の大きさは 1 マシンクロックサイクルです。 MB90V390HA/MB90V390HB/MB90394HA:ECCR2/ECCR3 レジスタの SCDE ビットが "1" である場合 , クロック出力信号の遅延の大きさは , 図 20.7-5 に示すように , シリア ルクロックサイクルの半分です。本機能は , 受信側のデバイスがクロックの立上りエッ ジ , または立下りエッジでデータをサンプリングする場合に必要となります。 図 20.7-5 送信クロックの遅延 (SCDE=1) 送信データの書込み 受信データのサンプルエッジ (SCES=0) 送受信クロック ( 通常 ) マークレベル 送信クロック (SCDE=1) マークレベル 送受信データ マークレベル 0 LSB 1 1 0 1 データ 0 0 1 MSB 拡張ステータス制御レジスタ (ESCR2/ESCR3) の SCES ビットが "1" の場合 , UART2, UART3 のクロックは反転し , 受信データをクロックの立下りエッジでサンプリングし ます。ECCR2/ECCR3 レジスタの MS ビットが "0" ( マスタモード ) であり , SMR2/SMR3 レジスタの SCKE ビット が "1" ( クロック出力許可 ) である場合 , 出力クロック信号も 反転されます。 通信が行われていないとき , クロック信号はマークレベルとして "0" に保つ必要があ ります。 ESCR2/ESCR3 レジスタの CCO ビットが "1" である場合 , データ通信が行われていな いときでも , シリアルクロックが送信されます。 377 第 20 章 UART2, UART3 図 20.7-6 連続クロック供給 ( モード 2) 送受信クロック (SCES = 0, CCO = 1): 送受信クロック (SCES = 1, CCO = 1): データの流れ (SSM = 1) ( パリティなし , 1 ストップビットのとき ) ST SP データフレーム ● エラー検出 スタートビット / ストップビットが有効でない場合 (ECCR2/ECCR3:SSM=0) は , オーバ ランエラーのみが検出されます。 ● 同期モードの通信設定 同期モードで通信を行うためには下記の設定が必要です。 • ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) 専用ボーレートリロードカウンタを必要な値に設定してください。 • シリアルモードレジスタ (SMR2/SMR3) MD1, MD0 : "10B" ( モード 2) SCKE : "1" ・・・専用ボーレートリロードカウンタを使用 "0" SOE : ・・・外部クロックを入力 "1" ・・・送受信許可 "0" ・・・受信のみ許可 • シリアル制御レジスタ (SCR2/SCR3) RXE, TXE : どちらかのフラグを "1" に設定 A/D : アドレス / データ選択機能は使用されないため , 本ビットの値は無効で す。 CL : 自動的に 8 ビット長に設定される。本ビットの値は無効です。 CRE : "1" ・・・エラーフラグはクリアされ , 送受信は中断されます。 - SSM=0 の場合 PEN, P, SBL : パリティビット , ストップビットは使用されないため無効です。 - SSM=1 の場合 PEN: "1"・・・パリティビット付加 / 検出 ,"0"・・・パリティビット不使用 P: "1"・・・偶数パリティ ,"0"・・・奇数パリティ SBL: "1"・・・ストップビット長 2, "0"・・・ストップビット長 1 • シリアルステータスレジスタ (SSR2/SSR3) BDS : "0"・・・LSB ファースト , "1"・・・MSB ファースト RIE : "1"・・・受信割込み許可 , "0"・・・受信割込み禁止 TIE : "1"・・・送信割込み許可 , "0"・・・送信割込み禁止 • 拡張通信制御レジスタ (ECCR2/ECCR3) SSM : "0" ・・・スタートビット / ストップビット不使用 ( 通常 ) , "1" 378 ・・・スタートビット / ストップビット使用 ( 拡張機能 ) 第 20 章 UART2, UART3 MS : "0" ・・・マスタモード ( シリアルクロック出力 ) , "1" ・・・スレーブモード ( マスタデバイスからシリアルクロックを入力 ) <注意事項> 通信を開始する際には , 送信データレジスタ (TDR2/TDR3) にデータを書き込んでくださ い。データの受信のみを行う場合は , シリアル出力を禁止 (SMR2/SMR3:SOE=0) に設定 し , TDR2/TDR3 にダミーデータを書き込んでください。 連続クロックとスタート / ストップビットを許可にすることで , 非同期モードのような双 方向通信が可能となります。 379 第 20 章 UART2, UART3 20.7.3 LIN 機能 ( 動作モード 3) の動作 動作モード 3 において , UART2,UART3 は LIN マスタおよび LIN スレーブとして動 作します。LIN 機能において , 特別なモードを供給します。 動作モード 3 ではデータフォーマットは 8N1-LSB ファーストに設定されます。 ■ 非同期 LIN モード動作 ● LIN マスタとしての UART2, UART3 動作 LINモードではマスタがバス全体のボーレートを決定し, スレーブはマスタに同期しま す。初期設定後にマスタが動作することでボーレートが要求する値に固定されます。 拡張通信制御レジスタ (ECCR2/ECCR3) の LBR ビットに "1" を書き込むと , SOT2/SOT3 端子から "L" レベルが 13 ビット~ 16 ビット出力されます。これは LIN メッセージの 開始を示す LIN synch break です。 これにより , シリアルステータスレジスタ (SSR2/SSR3) の TDRE フラグビットは "0" に なります。送信データレジスタ (TDR2/TDR3) に有効な値が存在しないときは , ブレー ク後に "1"( 初期値 ) になります。このとき , SSR2/SSR3 の TIE ビットが "1" であれば送 信割込みを出力します。 送信される LIN break の長さは ESCR2/ESCR3 の LBL0/LBL1 ビットによって , 下表のよ うに設定されます。 表 20.7-2 LIN break 長 LBL1 LBL0 LIN break 長 0 0 13 ビット 0 1 14 ビット 1 0 15 ビット 1 1 16 ビット Synch field は LIN break の後にバイトデータ "55H" として送信されます。送信割込みの 発生を防ぐため , TDRE フラグが "0" の状態であっても LBR ビットを "1" に設定した後 に "55H" を TDR2/TDR3 に書き込むことができます。 ● LIN スレーブとしての動作 LIN スレーブモードでは UART2,UART3 はマスタのボーレートに同期する必要があり ます。受信が禁止設定 (RXE=0) でも LIN break 割込みが許可設定 (LBIE=1) であれば , UART2,UART3 は受信割込みを発生します。このとき , ESCR2/ESCR3 の LBD ビットが "1" になります。 LBD ビットに "0" を書き込むと受信割込み要求フラグがクリアされます。 ボーレートの計算についての例を説明します。Synch field の最初の立下りエッジを UART2,UART3 が検出すると , インプットキャプチャ (ICU0) に入力される内部信号を "H" にして ICU0 をスタートさせます。この内部信号は 5 番目の立下りエッジで "L" に なります。ICU0 は LIN モードに設定されている必要があります (ICE01)。また , ICU0 380 第 20 章 UART2, UART3 の割込みをイネーブル設定 , 両エッジ検出に設定する必要があります (ICS01)。ICU0 入 力信号が "1" の時間がボーレートを 8 倍した値となります。ボーレート設定値は下式 で算出できます。 フリーランタイマがオーバフローしていない場合 : BGR 値 = {(b-a)×Fe/(8×φ)}-1 フリーランタイマがオーバフローした場合 : BGR値 ={(max+b-a)×Fe/(8×φ)}-1 max : フリーランタイマの最大値 a : 1 度目の割込み後の ICU データレジスタ値 b : 2 度目の割込み後の ICU データレジスタ値 φ : マシンクロック周波数 (MHz) Fe : 外部クロック周波数 (MHz) 内部ボーレートジェネレータが使われる場 合 (EXT=0), Fe = φ として計算します。 <注意事項> 上記のように LIN スレーブモード時 , Synch field で新たに計算された BGR 値がボーレー トの± 15% 以上の誤差が生じた場合は , ボーレートの設定は行わないでください。 UART と ICU の関係につきましては ,「13.3 16 ビットフリーランタイマ」および「13.5 インプットキャプチャ」を参照してください。 ● LIN Synch Break 検出割込みとフラグ スレーブモードにおいて , LIN synch break が検出されると ESCR2/ESCR3 の LIN break 検出フラグ (LBD) が "1" になります。LIN break 割込みが許可の場合 (LBIE=1) は割込 みが発生します。 図 20.7-7 LIN synch break 検出とフラグセットのタイミング シリアルクロックサイクル # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 シリアル クロック シリアル入力 (LIN バス ) MB90V390HA/ MB90V390HB/ MB90394HA FRE (RXE=1) MB90V390H/ MB90F394H(A) LBD (RXE=0) RXE = 1 の場合に受信割込み発生 RXE = 0 の場合に受信割込み発生 上図は LIN synch break 検出とフラグのタイミングを示しています。 受信が許可されており (RXE = 1), 受信割込みが許可されている (RIE = 1) 場合 , SSR2/ SSR3 の受信データフレームエラー (FRE) フラグビットによって , LIN break 割込みよ りも 2 ビット時間早く ("8N1") 受信割込みが生成されますから , LIN break が想定され る場合は RXE をオフにしておくことを推奨します。 381 第 20 章 UART2, UART3 MB90V390H/MB90F394H(A): LBD は , 動作モード 0 および 3 でだけサポートされています。LIN break が検出さ れると , 受信エラーフラグ (SSR2/SSR3:FRE,SSR2/SSR3:ORE,SSR2/SSR3:PE) および 受信データレジスタフルフラグ (SSR2/SSR3:RDRF) がクリアされます。 MB90V390HA/MB90V390HB/MB90394HA: LBD は , 動作モード 3 でだけサポートされています。LIN break が検出されたとき , 受信エラーフラグ (SSR2/SSR3:FRE,SSR2/SSR3:ORE,SSR2/SSR3:PE) および受信デー タレジスタフルフラグ (SSR2/SSR3:RDRF) はクリアされません。 図 20.7-8 は , 標準的な LIN メッセージの開始と UART2, UART3 の動作を示しています。 図 20.7-8 LIN スレーブモードでの UART2,UART3 の動作 シリアル クロック シリアル入力 (LIN バス ) CPU による LBR クリア LBD 内部 ICU 信号 382 Synch break (14 ビット設定の場合 ) Synch field 第 20 章 UART2, UART3 ● LIN バスタイミング 図 20.7-9 LIN バスタイミングと UART2,UART3 信号 前回のシリアルクロック クロックなし ( 計算フレーム ) 新たに計算されたシリアルクロック ICU カウント LIN バス (SIN2/SIN3) RXE LBD (IRQ0) LBIE 内部 ICU 信号 IRQ(ICU) RDRF (IRQ0) RIE CPU による RDR2/RDR3 読出し 受信割込み許可 LIN break 開始 LIN break 検出 , 割込み発生 CPU による IRQ クリア (LBD → 0) LBIE 禁止 IRQ (ICU) IRQ クリア:ICU スタート IRQ(ICU) IRQ クリア:ボーレートを計算して設定 受信許可 スタートビットの立下りエッジ 受信データ 1 バイト RDR2/RDR3 に保存 CPU による RDR2/RDR3 読出し 383 第 20 章 UART2, UART3 シリアル端子直接アクセス 20.7.4 送信端子 (SOT2/SOT3) または受信端子 (SIN2/SIN3) へ直接アクセスすることができ ます。 ■ UART2,UART3 端子直接アクセス UART2,UART3では, プログラマがシリアル入出力端子に直接アクセスすることができ ます。 シリアル入力端子 (SIN2/SIN3) の状態をシリアル入出力端子直接アクセスビット (ESCR2/ESCR3:SIOP) で読み出すことができます。 シリアル出力端子 (SOT2/SOT3) への直接書込みを可能 (ESCR2/ESCR3:SOPE=1) にし , シリアル入出力端子直接アクセスビット (ESCR2/ESCR3:SIOP) へ "0" または "1" を書き 込んだ後 , シリアル出力を許可 (SMR2/SMR3:SOE=1) にすると , シリアル出力端子 (SOT2/SOT3) の値を任意に設定することができます。 LIN モードの場合は , 送信したデータの読出し , または物理的に LIN バス線信号が間 違っていたときのエラー処理に使用できます。 <注意事項> • 送信動作中ではない ( 送信シフトレジスタが空 ) 場合のみ直接アクセス可能です。 • 送信を許可 (SMR2/SMR3:SOE=1) する前にシリアル出力端子直接アクセスビット (ESCR2/ESCR3: SIOP) へ値を書き込んでください。これは , SIOP ビットが以前の値 を保持しているため , 期待しないレベルの信号が出力されることを防ぐためです。 • 通常の読出しで SIN2/SIN3 端子の値が読み出されますが , リードモディファイライト (RMW) 系命令では SIOP ビットは SOT2/SOT3 端子の値が読み出されます。 384 第 20 章 UART2, UART3 20.7.5 双方向通信機能 ( ノーマルモード ) 動作モード 0, 2 で , 通常のシリアル双方向通信をすることができます。動作モード 0 は非同期通信 , 動作モード 2 は同期通信の選択ができます。 ■ 双方向通信機能 UART2,UART3 をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 20.7-10 に示す設定が必要です。 図 20.7-10 UART2,UART3 の動作モード 0, 2 の設定 bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 SCR2/SCR3, SMR2/SMR3 PEN P SBL CL A/D CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE モード 0 モード 2 SSR2/SSR3, TDR2/TDR3, RDR2/RDR3 PE ORE FRE RDRF TDRE BDS RIE TIE 変換データの設定 ( 書込み時 ) 受信データ保持 ( 読出し時 ) モード 0 モード 2 LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES ESCR2/ESCR3, ECCR2/ECCR3 LBR MS SCDE SSM RBI TBI モード 0 モード 2 :使用ビット :未使用ビット :"1" を設定 :"0" を設定 :SSM = 1 の場合に使用 ( 同期スタート / ストップビットモード ) :自動的に正しく設定されるビット ● CPU 間接続 双方向通信では , 図 20.7-11 に示すように , 2 つの CPU を相互に接続します。 図 20.7-11 UART2,UART3 の動作モード 2 の双方向通信の接続例 SOT SOT SIN 出力 SIN 入力 SCK CPU-1 ( マスタ ) SCK CPU-2 ( スレーブ ) ● 通信手順 通信は , 送信データが準備できたときに送信側から任意なタイミングで開始します。受 信側で送信データを受け取ると , 定期的に ANS ( 例では 1 バイトごと ) を返します。図 20.7-12 に双方向通信フローチャートの一例を示します。 385 第 20 章 UART2, UART3 図 20.7-12 双方向通信フローチャートの例 ( 送信側 ) ( 受信側 ) スタート スタート 動作モード設定 (0, 2 いずれか ) 動作モード設定 ( 送信側と合わせる ) TDR2/TDR3 に 1 バイト データをセットして通信 データ送信 受信データあり NO YES NO 受信データあり 受信データ読出しと処理 YES 受信データ読出しと処理 データ送信 (ANS) 386 1 バイトデータ送信 第 20 章 UART2, UART3 20.7.6 マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) 動作モード 1 で , 複数 CPU のマスタ / スレーブモード接続による通信が可能です。 マスタまたはスレーブとして使用できます。 ■ マスタ / スレーブ型通信機能 UART2,UART3 をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 20.7-13 に示す設定が必要です。 図 20.7-13 UART2,UART3 の動作モード 1 の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCR2/SCR3, SMR2/SMR3 PEN P SBL CL A/D CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE モード 1 SSR2/SSR3, TDR2/TDR3, RDR2/RDR3 PE ORE FRE RDRF TDRE BDS RIE TIE 変換データの設定 ( 書込み時 ) 受信データ保持 ( 読出し時 ) モード 1 ESCR2/ESCR3, ECCR2/ECCR3 LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS SCDE SSM RBI TBI モード 1 :使用ビット :未使用ビット :"1" を設定 :"0" を設定 :自動的に正しく設定されるビット ● CPU 間接続 マスタ / スレーブ型通信では , 図 20.7-14 に示すように 2 本の共通通信ラインに 1 つの マスタ CPU と複数のスレーブ CPU を接続して通信システムを構成します。UART2, UART3 はマスタまたはスレーブのどちらでも使用できます。 図 20.7-14 UART2,UART3 のマスタ / スレーブ型通信の接続例 SOT SIN マスタ CPU SOT SIN スレーブ CPU#0 SOT SIN スレーブ CPU#1 387 第 20 章 UART2, UART3 ● 機能選択 マスタ / スレーブ型通信では , 表 20.7-3 に示すように動作モードとデータ転送方式を選 択してください。 表 20.7-3 マスタ / スレーブ型通信機能の選択 動作モード マスタ CPU スレーブ CPU アドレス 送受信 モード 1 (A/D ビット 送受信 ) モード 1 (A/D ビット 送受信 ) データ 送受信 データ パリティ 同期方式 ストップ ビット ビット 方向 なし 非同期 1 ビットまたは 2 ビット LSB ファースト または MSB ファースト A/D=1 + 7 ビットまたは 8 ビットアドレス A/D=0 + 7 ビットまたは 8 ビットデータ ● 通信手順 通信はマスタ CPU がアドレスデータを送信することによって始まります。アドレス データとは A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択しま す。各スレーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレ スと一致した場合にマスタ CPU との通信をします。 図 20.7-15 に , マスタ / スレーブ型通信 ( マルチプロセッサモード ) のフローチャート を示します。 388 第 20 章 UART2, UART3 図 20.7-15 マスタ / スレーブ型通信フローチャート ( マスタ CPU) ( スレーブ CPU) スタート スタート 動作モード 1 に設定 動作モード 1 に設定 SIN2/SIN3 端子をシリアル データ入力に設定 SOT2/SOT3 端子をシリアル データ出力に設定 SIN2/SIN3 端子をシリアル データ入力に設定 SOT2/SOT3 端子をポート 入力に設定 7 または 8 データビット設定 1 または 2 ストップビット 設定 7 または 8 データビット設定 1 または 2 ストップビット 設定 A/D ビットに "1" をセット TXE = RXE = 1 を設定 受信バイト TXE = RXE = 1 を設定 スレーブへアドレスを 送信 A/D ビット = 1 NO YES スレーブアドレス が一致 A/D ビットに "0" をセット YES マスタ CPU と通信 スレーブ CPU と通信 通信終了 ? NO 通信終了 ? NO NO YES YES ほかのスレーブ CPU と通信 NO YES TXE = RXE = 0 を設定 終了 389 第 20 章 UART2, UART3 20.7.7 LIN 通信機能 UART2,UART3 通信で LIN デバイスは , LIN マスタシステムもしくは LIN スレーブ システムに使用できます。 ■ LIN マスタ / スレーブ型通信機能 UART2,UART3の LIN通信モード (動作モード3) に必要な設定を図 20.7-16 に示します。 図 20.7-16 UART2,UART3 の動作モード 3(LIN) 設定 SCR2/SCR3, SMR2/SMR3 モード 3 PEN SSR2/SSR3, TDR2/TDR3, RDR2/RDR3 モード 3 P SBL CL PE ORE FRE ESCR2/ESCR3, ECCR2/ECCR3 A/D CRE RXE TXE MD1 MD0 OTO EXT RDRF TDRE LBIE LBD LBL1 LBL0 SOPE BDS RIE TIE SIOP CCO SCES REST UPCL SCKE SOE 変換データの設定 ( 書込み時 ) 受信データ保持 ( 読出し時 ) LBR MS SCDE SSM RBI TBI モード 3 :使用ビット :不使用ビット :"1" を設定 :"0" を設定 :自動的に正しく設定されるビット ● LIN デバイス接続 1 つの LIN マスタと LIN スレーブの通信システムを図 20.7-17 で示します。 UART2,UART3 は , LIN マスタまたは LIN スレーブとして動作することができます。 図 20.7-17 LIN バスシステムの通信例 SOT SOT LIN バス SIN LIN マスタ 390 SIN トランシーバ トランシーバ LIN スレーブ 第 20 章 UART2, UART3 UART2,UART3 の LIN 通信フローチャート例 ( 動作モード 3) 20.7.8 UART2,UART3 の LIN 通信フローチャート例を示します。 ■ UART2, UART3 の LIN マスタデバイス 図 20.7-18 UART2, UART3 の LIN マスタフローチャート スタート 初期設定: 動作モードを "3" に設定 シリアルデータ出力許可 , ボーレート設定 Synch break 長設定 TXE = 1, TIE = 0, RXE = 1, RIE = 1 NO メッセージ ? ( 受信 ) YES ウェイク アップ ? (80H 受信 ) NO YES RXE = 0 Synch Break 割込み許可 Synch Break 送信: ECCR2/ECCR3: LBR = 1 Synch Field 送信: TDR2/TDR3 = 55H YES NO RDRF = 1 受信割込み Data Field 受信 ? Data 1 受信* 1 ( 送信 ) 送信 Data 1 セット TDR2/TDR3 = Data 1 送信割込み許可 RDRF = 1 受信割込み TDRE = 1 送信割込み Data N 受信* 1 送信 Data N セット TDR2/TDR3 = Data N 送信割込み禁止 LBD = 1 Synch Break 割込み RDRF = 1 受信割込み 受信許可 LBD = 0 Synch Break 割込み禁止 Data 1 受信 * 1 Data 1 読出し RDRF = 1 受信割込み RDRF = 1 受信割込み Synch Field 受信 * 1 Identify Field セット : TDR2/TDR3 = lD Data N 受信 * 1 Data N 読出し RDRF = 1 受信割込み ID Field 受信* 1 エラーなし ? NO エラー処理* 2 YES *1: エラーが発生した場合 , エラー処理を行ってください。 *2: ・ FRE, ORE が "1" になっていた場合 , SCR: CRE ビットに "1" を書き込み , エラーフラグをクリアしてください。 ・ESCR: LBD ビットが "1" になっていた場合 , UART リセットを実行してください。 ( 注意事項 ) 各処理の中でエラー検出を行い , 適切に対処してください。 391 第 20 章 UART2, UART3 ■ UART2, UART3 の LIN スレーブデバイス 図 20.7-19 UART2, UART3 の LIN スレーブフローチャート スタート 初期設定: 動作モードを "3" に設定 シリアルデータ出力許可 TXE = 1, TIE = 0, RXE = 0, RIE = 1 UART と ICU の接続 受信禁止 ICU 割込み許可 Synch Break 割込み許可 LBD = 1 Synch Break 割込み Synch Break 検出クリア ECCR2/ECCR3: LBD = 0 Synch Break 割込み禁止 ICU 割込み ICU データ読出し ICU 割込みフラグクリア ICU 割込み NO YES ( 受信 ) ( 送信 ) Data Field 受信 ? RDRF = 1 受信割込み Data 1 受信* 1 送信 Data 1 セット TDR2/TDR3 = Data 1 送信割込み許可 RDRF = 1 受信割込み TDRE = 1 送信割込み Data N 受信* 1 送信 Data N セット TDR2/TDR3 = Data N 送信割込み禁止 受信禁止 RDRF = 1 受信割込み ICU データ読出し ボーレート調整 受信許可 ICU 割込みフラグクリア ICU 割込み禁止 Data 1 受信 * 1 Data 1 読出し RDRF = 1 受信割込み RDRF = 1 受信割込み Data N 受信 * 1 Data N 読出し 受信禁止 Identify Field 受信* 1 NO エラー処理* 2 エラーなし ? YES NO スリープ モード ? YES ウェイクアッ プ受信 ? YES *1: エラーが発生した場合 , エラー処理を行ってください。 *2: ・FRE, ORE が "1" になっていた場合 , SCR: CRE ビットに "1" を 書き込み , エラーフラグをクリアしてください。 ・ESCR: LBD ビットが "1" になっていた場合 , UART リセットを 実行してください。 ( 注意事項 ) 各処理の中でエラー検出を行い , 適切に対処してください。 392 NO ウェイクアッ プ送信 ? YES NO ウェイクアップ コード送信 第 20 章 UART2, UART3 20.8 UART2, UART3 使用上の注意 UART2,UART3 を使用する場合の注意点を示します。 ■ UART2,UART3 使用上の注意 ● 動作許可 UART2,UART3 には送信 , 受信のそれぞれに対してシリアル制御レジスタ (SCR2/SCR3) に TXE ( 送信 ), RXE ( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では , 送受信とも動作禁止であるため , 通信前に動作を許可する必要があります。ビットを禁 止にすることで動作も解除できます。 ● 通信モードの設定 通信モードの設定は , UART2,UART3 の動作停止中に行ってください。送受信中にモー ド設定をした場合 , 送受信は停止し , そのとき送受信されたデータは保証されません。 ● 送信割込み許可のタイミング 送信データエンプティフラグビット (SSR2/SSR3:TDRE) はデフォルト ( 初期値 ) が "1" ( 送信データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR2/ SSR3:TIE=1) すると , 直ちに送信割込み要求が発生します。これを避けるため , 必ず送 信データを設定してから TIE フラグを "1" にしてください。 ● スタートビット同期 MB90V390H/MB90F394H(A): 非同期モードでは , スタートビットはレベルにより検出されます。SCR2/SCR3: RXE ビットが "1" に設定されて , シリアルデータ入力 SIN2/SIN3 が "0" の場合は , 直ちにス タートビットが検出されます。 非同期モードでは , SCR2/SCR3: RXE ビットが "0" に設定されていても受信スタート ビットを記憶します。これにより , SCR2/SCR3: RXE ビットが再び "1" に設定された後 , すぐに受信を開始します。動作環境として , SCR2/SCR3: RXE ビットを "0" に設定して から SMR2/SMR3: UPCL ビットに "1" を書き込むことにより UART2,UART3 をリセッ トします。 MB90V390HA/MB90V390HB/MB90394HA: 非同期モードでは , スタートビットはエッジにより検出されます。SCR2/SCR3: RXE ビットが "1" に設定されて SIN2/SIN3 が "0" の場合 , スタートビットはシリアルデータ 入力 SIN2/SIN3 の次の立下りエッジの前に検出されません。 非同期モードでは SCR2/SCR3: RXE ビットが "0" に設定後 , 受信スタートビットが記憶 されません。SCR2/SCR3: RXE ビットが再び "1" に設定されたときにスタートビットを 検出すると受信を開始します。 393 第 20 章 UART2, UART3 ● LIN 動作モード 3 の使用 LIN 機能はモード 3 ( 送受信 Synch break) で使用可能ですが , モード 3 では自動的に LIN フォーマットの設定 (8N1, LSB ファースト ) になります。 LIN break の送信ビット長は可変ですが , 受信は 11 ビット長固定になっています。 <注意事項> LIN 動作中は , ESCR2/ESCR3 レジスタの SCES ビットを "0" に設定してください。 ● 動作設定の変更 スタート / ストップビットの付加またはデータフォーマットを変更した場合など , 設定 を変更した後には UART2,UART3 のリセットを強くお勧めします。 <注意事項> シリアルモードレジスタ (SMR2/SMR3) の設定にあたり UART2,UART3 をリセットする ために同時に UPCL ビットを設定しても意味がありません。この場合正しい動作設定は保 証されません。そのため , シリアルモードレジスタ (SMR2/SMR3) のビット設定を行った 後 , 再度 , UART2,UART3 をリセット (SMR2/SMR3:UPCL=1) することを推奨します。 ● LIN スレーブ設定 スレーブ動作の最初のLIN synch breakを受信する前にボーレートを設定してください。 さもないと , Synch break の期間は最小限必要な LIN 仕様 (13 マスタビットおよび 11 ス レーブビット分 ) に対して正確に判断できません。 ● プログラムの互換性 UART2,UART3 がほかの UART と類似していますが , プログラムの互換性はありませ ん。プログラミングの型は同じときもありますが , レジスタの構造は異なります。さら に , ボーレートの設定はあらかじめ設定された値を選出する代わりにリロード値に よって現在決定されます。 ● バスアイドル機能 バスアイドル機能は同期モード 2 および SSM=0 では使用できません。 394 第 20 章 UART2, UART3 ● A/D ビット ( シリアル制御レジスタ (SCR2/SCR3):アドレス / データ形式選択ビット ) こ の ビ ッ ト の 動 作 は MB90V390H/MB90F394H(A) と MB90V390HA/MB90V390HB/ MB90394HA で異なります。 MB90V390H/MB90F394H(A): シリアル制御レジスタのA/Dビット (マルチプロセッサモード1のアドレスデータビッ ト ) を使用する場合は特に注意してください。A/D ビットに書き込むことで送信を設 定しますが , このビットの読出しで最後に受信した A/D ビットを返すので , A/D ビット は制御とフラグの両方のビットとして使用します。受信 / 送信の A/D ビットの値は内 部的に別々のレジスタに保存されています。ただし , リードモディファイライト (RMW) 系命令使用時は , 受信の A/D ビットの値が読み出され , それをモディファイした値が送 信の A/D ビットに書き込まれます。これにより , 同一のレジスタのビットのうちどれ か 1 つを命令によってアクセスすると , A/D ビットに間違った値を書き込みます。 したがって , 送信前にこのビットは最後のレジスタアクセスで書き込まれる必要があ ります。また , バイトアクセス時およびすべてのビットに正しい値を書き込むことで上 記の問題を防ぐことができます。 さらに , A/D ビットは送信データレジスタのようにバッファされません。送信中にビッ トを変更することにより現在送信しているデータの A/D ビットを変更できます。 MB90V390HA/MB90V390HB/MB90394HA: • A/D ビットに書き込むことで送信を設定しますが , このビットの読出しで最後に受 信した A/D ビットを返すので , A/D ビットは制御とフラグの両方のビットとして使 用します。送受信 A/D ビット値を異なったレジスタの内部に格納します。リードモ ディファイライト (RMW) 系命令を使用すると A/D ビットの送信が読み出され , 受 信 A/D データはほかの読出しとして読み出されます。 • TDRE ビットが "0" から "1" になり , 送信が開始すると A/D ビットの送信が送信デー タレジスタ (TDR2/TDR3) のデータとあわせて送信シフトレジスタにロードされま す。したがって , 送信データレジスタ (TDR2/TDR3) に書き込む前に A/D ビットを送 信に設定してください。 ● UART2,UART3 ソフトウェアリセット シリアル制御レジスタ (SCR2/SCR3) の TXE ビットが "1" のときに , LIN-UART ソフト ウェアリセット (SMR2/SMR3: UPCL = 1) を実行してください。 ● LIN Synch field 待ち状態 MB90V390H/MB90F394H(A): モード 0 および 3 では , シリアル入力が 11 ビット以上 "0" に保持されていれば , ESCR2/ ESCR3 レジスタの LBD ビットが "1" に設定されます。LBD が "1" に設定されたときに , 受信エラーフラグ (SSR2/SSR3:FRE, SSR2/SSR3:ORE, SSR2/SSR3:PE) と受信データレ ジスタフルフラグ (SSR2/SSR3:RDRF) がクリアされます。UART2,UART3 は次に受信 される Synch field を待ちます。UART2,UART3 が Synch break 以外の理由でこの状態に 設定されると , ソフトウェアリセット (SMR2/SMR3: UPCL=1) で初期化される必要が あります。 MB90V390HA/MB90V390HB/MB90394HA: モード 3 では (LIN 動作 ), シリアル入力が 11 ビット以上 "0" に保たれていれば , ESCR2/ ESCR3 レジスタの LBD ビットが "1" に設定されます。UART2,UART3 は次に受信され る Synch field を待ちます。UART2,UART3 が Synch break 以外の理由でこの状態に設定 されると , ソフトウェアリセット (SMR2/SMR3: UPCL=1) で初期化される必要があり ます。 395 第 20 章 UART2, UART3 396 第 21 章 2 400 kHz I C インタフェース I2C インタフェースの概要 , レジスタの構成 / 機能 および I2C インタフェースの動作について説明し ます。 ( 注意事項 ) I2C インタフェースはすべての MB90390 シリーズ で有効ではありません。 21.1 I2C インタフェースの概要 21.2 I2C インタフェースのレジスタ 21.3 I2C インタフェースの動作 21.4 プログラミングフローチャート 397 第 21 章 400 kHz I2C インタフェース 21.1 I2C インタフェースの概要 I2C インタフェースは , 内部 IC BUS をサポートするシリアル I/O ポートです。I2C バス上のマスタ / スレーブデバイスとして動作します。 ■ I2C インタフェースの機能 • マスタ / スレーブ送受信 • アービトレーション機能 • クロック同期化機能 • ゼネラルコールアドレス検出機能 • 転送方向検出機能 • スタートコンディションの繰り返し発生および検出機能 • バスエラー検出機能 • 7 ビットマスタ / スレーブアドレッシング • 10 ビットマスタ / スレーブアドレッシング • 7 ビット , 10 ビットスレーブアドレスへのインタフェース可能 • スレーブアドレス受信でのアクノリッジを禁止可能 ( マスタのみの動作中 ) • 一部のスレーブアドレスとのインタフェースをアドレスマスク (7 ビット , 10 ビットモード中 ) • 400K バイトまでの転送レート • SDA, SCL の内蔵ノイズフィルタを使用可能 • プリスケーラ設定とは関係なく , マシンクロックが 6 MHz 以上の場合 , 400 K バイ トで受信可能 • 転送とバスエラーイベント上で MCU 割込みの発生可能 • ビット , バイトレベルでのスレーブアドレスによるスローダウンをサポート プリスケーラ設定とは関係なく , マシンクロックが 6 MHz 以上の場合 , データ受信が 400 K バイトレートに達するまでの間 , I2C インタフェースはビットレベルでの SCL ク ロックの伸長をサポートしません。ただし , 割込み中 (IBCR レジスタ中で INT = 1) に SCL が "L" レベルである間は , バイトレベルでのクロック伸長が実行されます。 398 第 21 章 400 kHz I2C インタフェース ■ I2C インタフェースのブロックダイヤグラム 図 21.1-1 に , I2C インタフェースのブロックダイヤグラムを示します。 図 21.1-1 I2C インタフェースのブロックダイヤグラム ICCR I2C 許可 EN クロック分周器 1 2 3 4 5 ... 32 ICCR CS4 CS3 5 CS2 5 クロックセレクタ 同期 CS1 クロック分周器 2 (12 分周 ) SCL デューティ周期発生器 CS0 IBSR BB シフトクロック発生器 バスビジー 連続スタート RSC 最終ビット LRB 送信 / 受信 バスオブザーバ バスエラー TRX アドレスデータ ADT アービトレーション ロスト検知器 AL ICCR NSF 内部データバス IBCR 許可 BER BEIE MCU IRQ 割込み要求 INTE INT ノイズ フィルタ SCL SDA SCL SDA IBCR SCC MSS ACK GCAA 開始 スタートストップ コンディション発生器 マスタ ACK 許可 GC-ACK 許可 ACK 発生器 8 IBSR AAS IDAR 8 スレーブ 汎用コール GCA ISMK 7 ビットモード許可 ENSB スレーブアドレス コンパレータ ITMK 10 ビットモード許可 ENTB アドレス長受信 RAL 10 7 10 ITBA ITMK 7 ISBA ISMK 10 10 7 7 399 第 21 章 400 kHz I2C インタフェース 21.2 I2C インタフェースのレジスタ I2C インタフェースで使用するレジスタの構成および機能について説明します。 ■ I2C インタフェースのレジスタ一覧 バス制御レジスタ (IBCR) アドレス 0035A1H bit 15 BER R/W 14 13 12 11 10 9 8 BEIE R/W SCC W MSS R/W ACK R/W GCAA R/W INTE R/W INT R/W 6 5 4 3 2 1 0 RSC R AL R LRB R TRX R AAS R GCA R ADT R IBCR 初期値 00000000B バスステータスレジスタ (IBSR) アドレス 0035A0H bit 7 BB R IBSR 初期値 00000000B 10 ビットスレーブアドレスレジスタ (ITBA) bit 15 0035A3H 0035A2H 14 13 12 11 10 9 8 − − − − − − − − − − − − TA9 R/W TA8 R/W bit 7 6 5 4 3 2 1 0 TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W TA7 R/W ITBAH ( 上位 ) 初期値 00000000B ITBAL ( 下位 ) 初期値 00000000B 10 ビットスレーブアドレスマスクレジスタ (ITMK) 0035A5H bit 15 14 13 12 11 10 9 8 ENTB R/W RAL R/W − − − − − − − − TM9 R/W TM8 R/W 6 5 4 3 2 1 0 TM6 R/W TM5 R/W TM4 R/W TM3 R/W TM2 R/W TM1 R/W TM0 R/W bit 7 0035A4H TM7 R/W ITMKH ( 上位 ) 初期値 00111111B ITMKL ( 下位 ) 初期値 11111111B 7 ビットスレーブアドレスレジスタ (ISBA) アドレス 0035A6H R/W R W - bit 7 − − 6 5 4 3 2 1 0 SA6 R/W SA5 R/W SA4 R/W SA3 R/W SA2 R/W SA1 R/W SA0 R/W ISBA 初期値 00000000B : リード / ライト可能 : リードオンリ : ライトオンリ : 不定 ( 続く ) 400 第 21 章 400 kHz I2C インタフェース ( 続き ) 7 ビットスレーブアドレスマスクレジスタ (ISMK) アドレス 0035A7H bit 15 ENSB R/W 14 13 12 11 10 9 8 SM6 R/W SM5 R/W SM4 R/W SM3 R/W SM2 R/W SM1 R/W SM0 R/W 6 5 4 3 2 1 0 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W ISMK 初期値 01111111B データレジスタ (IDAR) アドレス 0035A8H bit 7 D7 R/W IDAR 初期値 00000000B クロックコントロールレジスタ (ICCR) アドレス 0035ABH bit 15 − − 14 13 12 11 10 9 8 NSF R/W EN R/W CS4 R/W CS3 R/W CS2 R/W CS1 R/W CS0 R/W ICCR 初期値 00011111B ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) アドレス 0035A9H bit 15 − − 14 13 12 11 10 9 8 − − − − − − − − − − SEL1 R/W SEL0 R/W INFCR 初期値 XXXXXX01B R/W : リード / ライト可能 : 不定 401 第 21 章 400 kHz I2C インタフェース 21.2.1 I2C バスステータスレジスタ (IBSR) I2C バスステータスレジスタ (IBSR) の構成および機能について説明します。 • バスビジー検知 • 繰返し開始状態検知 • アービトレーションロスト検知 • アクノリッジ検知 • データ転送検知表示 • スレーブ検知のアドレッシング • 汎用コールアドレス検知 • アドレスデータ転送検知 ■ I2C バスステータスレジスタ (IBSR) このレジスタは読出しのみ可能です。全ビットはハードウェアで制御されています。イ ンタフェースが不可の場合 (ICCR 中の EU = 0), 全ビットはクリアされます。 図 21.2-1 バスステータスレジスタの構成 (IBSR) アドレス bit 7 0035A0H 6 5 4 3 BB RSC AL LRB TRX AAS 2 R R R R R R 1 0 GCA ADT R R IBSR 初期値 0 0 0 0 0 0 0 0B bit 0 ADT アドレスデータ転送ビット 0 入力データはアドレスデータ以外 ( バス非使用 ) 1 入力データはアドレスデータ bit 1 汎用コールアドレス GCA 0 スレーブ外として受信した汎用コールアドレス 1 スレーブとして受信した汎用コールアドレス bit 2 AAS スレーブビットとしてのアドレッシング 0 スレーブとしてアドレスされていない 1 スレーブとしてアドレスされている bit 3 転送データビット TRX 0 転送データなし 1 転送データ bit 4 LRB 最終受信ビット 0 レシーバはアクノリッジしていない 1 レシーバはアクノリッジしている bit 5 AL アービトレーションロストビット 0 アービトレーションロスト検知なし 1 アービトレーションロスト検知あり bit 6 RSC 連続スタートコンディションビット 0 連続スタートコンディションの検知なし 1 連続スタートコンディションの検知あり bit 7 BB R : リードオンリ : 初期値 402 バスビジービット 0 ストップコンディション検知 ( バスアイドル ) 1 スタートコンディション検知 ( バス使用中 ) 第 21 章 400 kHz I2C インタフェース ■ I2C バスステータスレジスタ (IBSR) の内容 表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (1 / 2) ビット名 機 能 bit7 BB: バスビジー ビット このビットは , I2C バスの状態を示すビットです。 "0": ストップコンディションを検出した ( バスは使用されていない )。 "1": スタートコンディションを検出した ( バスは使用されている )。 開始状態が検知されると , このビットは "1" に設定されます。ストップ 状態でリセットされます。 bit6 RSC: 繰返しスタート コンディション ビット このビットは , 繰返しスタートコンディション検出ビットです。 "0": 繰返しスタートコンディションは検出されていない。 "1": バス使用中に , 再びスタートコンディションを検出した。 このビットは , アドレスデータ送信の完了 (ADT= 0) またはストップコ ンディション検出でクリアされます。 AL: アービトレー ションロスト ビット このビットは , アービトレーションロスト検出ビットです。 "0": アービトレーションロスト検出はされていない。 "1": マスタ送信中にアービトレーションロストの発生を検出した。 このビットは , INT ビットに "0" を書き込むか , IBCR レジスタ中の MSS ビットに "1" を書き込むことでクリアされます。 下記のような場合 , アービトレーションロストが発生します。 - SCL 立上りエッジで , 送信データが SDA 行の読出しデータと一致し ない場合 - ほかのマスタにより , 繰返しスタートコンディションがデータバイト の 1 ビット目で発生した場合 - ほかのスレーブが SCL 行を "L" レベルにするために , インタフェー スがスタート / ストップコンディションを発生できない場合 LRB: 最終受信ビット このビットは , アクノリッジ格納ビットです。受信側からのアクノリッ ジを格納します。 "0": 受信側アクノリッジ "1": 受信側アクノリッジ不可 このビットは , bit9( アクノリッジビット ) の待機中にハードウェアで変 更され , スタート / ストップコンディションでクリアされます。 bit5 bit4 403 第 21 章 400 kHz I2C インタフェース 表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (2 / 2) ビット名 機 能 bit3 TRX: 転送データ ビット このビットは , データ転送の動作を示すビットです。 "0": データ転送されていない。 "1": データ転送された。 下記の場合に , このビットは "1" になります。 - マスタモード中にスタートコンディションが発生した場合 - 開始ビットの転送 , スレーブとしてのデータ読出しやマスタとしての データ送信が完了した場合 下記の場合に , このビットは "0" になります。 - バスがアイドル状態 (BB=0) の場合 - アービトレーションロストが発生した場合 - マスタ割込み中 (MSS = 1, INT = 1) に SCC ビットに "1" が書き込ま れた場合 - マスタ割込み中 (MSS = 1, INT = 1) に MSS ビットがクリアされた 場合 - インタフェースがスレーブモード中で , 最終転送バイトがアクノリッ ジされなかった場合 - インタフェースがスレーブモード中にデータを受信した場合 - インタフェースがマスタモード中にスレーブからのデータを読み出 した場合 bit2 AAS: スレーブビット としての アドレッシング このビットは , スレーブ時のアドレッシング検出ビットです。 "0": スレーブ時に , アドレッシングされていない。 "1": スレーブ時に , アドレッシングされた。 このビットは , スタートコンディションまたはストップコンディション の検出でクリアされます。インタフェースが 7 ビットや 10 ビットのス レーブアドレスを検知したときに設定されます。 このビットは , ゼネラルコールアドレス (00H) 検出ビットです。 "0": スレーブ時に , ゼネラルコールアドレスは受信されていない。 "1": スレーブ時に , ゼネラルコールアドレスを受信した。 このビットは , スタートコンディションまたはストップコンディション の検出でクリアされます。 bit1 GCA: 汎用コール アドレス bit0 このビットは , アドレスデータ転送の検出ビットです。 "0": 受信データがアドレスデータ以外である ( またはバスが使用されて いない ) 。 "1": 受信データがアドレスデータである。 このビットは , スタートコンディションで "1" にセットされます。書込 みアクセスの 10 ビットスレーブアドレスヘッダが検知された場合 , 第 ADT: 2 バイトの後にクリアされます。その他の場合は , 第 1 バイトの後にク アドレス リアされます。 データ転送ビッ 「第 1 バイト /2 バイトの後に」とは , 下記を意味します。 ト - マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , MSS ビットに "0" が書き込まれる - マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , SCC ビットに "1" が書き込まれる - INT ビットがクリアされる - インタフェースが , マスタ , スレーブのカレント転送と関係していな いときに全バイト転送を開始 404 第 21 章 400 kHz I2C インタフェース 21.2.2 I2C バス制御レジスタ (IBCR) I2C バス制御レジスタ (IBCR) には下記の機能があります。 • I2C 割込み許可フラグ • I2C 割込み発生フラグ • I2C バスエラー検知フラグ • I2C 繰返しスタートコンディション発生 • I2C マスタ / スレーブモード選択 • I2C ゼネラルコールアクノリッジ発生許可 • I2C データバイトアクノリッジ発生許可 ■ I2C バス制御レジスタ (IBCR) このレジスタへの書込みアクセスは , INT = 1 の間か , 転送が開始された場合にのみ 行ってください。ACK や GCAA ビットの変更が結果としてバスエラーとなった場合 , ユーザはデータの転送中にこのレジスタに書込みしてはいけません。インタフェース が禁止の場合 (ICCR 中の EN = 0), このレジスタ中の全ビット (BER と BEIE ビットは 除く ) はクリアされます。 405 第 21 章 400 kHz I2C インタフェース 図 21.2-2 バス制御レジスタの構成 アドレス bit 15 0035A1H 14 13 12 BER BEIE SCC MSS 11 10 9 ACK GCAA INTE 8 IBCR 初期値 INT R/W R/W W R/W R/W R/W R/W R/W 00000000B bit 8 割込みビット INT 0 1 詳細は以降の表を参照。 bit 9 割込み許可ビット INTE 0 割込み禁止 1 割込み許可 bit 10 GCCA 汎用コールアドレスアクノリッジビット 0 汎用コールアドレスにアクノリッジなし 1 汎用コールアドレスでアクノリッジあり bit 11 アクノリッジビット ACK 0 データバイト受信にアクノリッジなし 1 データバイト受信でアクノリッジあり bit 12 MSS マスタ / スレーブ選択ビット 0 スレーブモード 1 マスタモード ( 詳細は以降の表を参照 ) bit 13 SCC スタートコンディション継続ビット 0 書込み : 効果なし 1 書込み : 連続スタートコンディション発生 bit 14 BEIE バスエラー割込み許可ビット 0 バスエラー割込み禁止 1 バスエラー割込み許可 bit 15 R/W : リード / ライト可能 : 初期値 406 BER バスエラービット 0 書込み時 バスエラークリア 読出し時 エラー検知なし 1 効果なし エラー検知あり 第 21 章 400 kHz I2C インタフェース ■ バス制御レジスタ (IBCR) の内容 表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (1 / 3) ビット名 bit15 bit14 bit13 機能 BER: バスエラー ビット このビットは , バスエラー割込み要求フラグです。ハードウェアで設定 され , ユーザによりクリアされます。リードモディファイライト (RMW) 系命令時には , このビットは常に "1" を読み出します。 ( 書込み時 ) "0": バスエラー割込み要求フラグをクリアする。 "1": 関係なし。 ( 読出し時 ) "0": バスエラーは検出されていない。 "1": データ転送中に , 不正なスタート , ストップコンディションを検出 した。 このビットがセットされた場合 , ICCR レジスタの EN ビットはクリア されて I2C インタフェースは停止状態になり , データ転送は中断されま す。そして , IBSR と IBCR レジスタ中のすべてのビット (BER と BEIE 除く ) はクリアされます。BER ビットは , インタフェースが再動作可能 になる前に , クリアされなければいけません。 下記の場合 , このビットは "1" になります。 - スタート / ストップコンディションが間違った場所 ( アドレスデータ 転送中や bit2 ~ bit9( アクノリッジビット ) の転送中 ) で検知される。 - 読出しアクセスの 10 ビットアドレスヘッダが , 10 ビット書込みアク セスの前に受信される。 BEIE: バスエラー 割込み許可 ビット このビットは , バスエラー割込み許可ビットです。ユーザによってのみ 変更可能です。 "0": バスエラー割込み禁止。 "1": バスエラー割込み許可。 このビットが "1" のときに BER ビットが "1" ならば MCU 割込みを発生 します。 SCC: スタート コンディション 継続ビット このビットは , スタートコンディション発生ビットです。書込みのみで す。このビットの読出し値は常に "0" です。 ( 書込み時 ) "0": 関係なし。 "1": マスタ転送時に再びスタートコンディションを発生させる。 マスタモード (MSS = 1, INT = 1) の割込み中にこのビットに "1" が書 き込まれた場合 , 繰返しスタートコンディションが発生し , INT ビット が自動的にクリアされます。 407 第 21 章 400 kHz I2C インタフェース 表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (2 / 3) ビット名 bit12 bit11 bit10 408 機能 MSS: マスタ / スレー ブ選択ビット このビットは , マスタ / スレーブの選択ビットです。このビットはユー ザによってのみ設定されますが , クリアはユーザおよびハードウェアで 可能です。 "0": スレーブモードとなる。 "1": マスタモードとなり , スタートコンディションを発生し , IDAR レジ スタにおけるアドレスデータの転送を開始する。 このビットは , マスタ送信中にアービトレーションロストが発生し た場合にクリアされる。 マスタモード (MSS = 1, INT = 1) の割込み中に "0" が書き込まれた場 合 , INT ビットが自動的にクリアされ , ストップ条件が発生し , データ 転送が完了します。IBSR レジスタの BB ビットのポーリングでストッ プ条件発生をチェックできます。ただし , MSS ビットが即時にリセット されることに注意してください。 バスがアイドル中 (MSS = 0, BB = 0) に "1" が書き込まれた場合 , ス タート条件が発生し , IDAR レジスタ ( アドレスデータ ) の内容が送信さ れます。 バスの使用中 (IBSR 中の BB = 1, TRX = 0, IBCR 中の MSS = 0) に MSS ビットに "1" が書き込まれた場合 , インタフェースはバスがフリー になり , スタートが送信されるまで待機されます。 一方でインタフェースがスレーブとして書込みアクセス ( データ受信 ) でアドレスされた場合 , 転送終了後に送信が開始し , 再びバスがフリー になります。IBSR の AAS が "1", TRX が "1" の間にインタフェースがス レーブとしてのデータを送信する場合は , データの転送は開始されずに 再びバスがフリーになります。インタフェースがスレーブとしてアドレ スされているか (IBSR の AAS = 1), データバイトの送信が成功してい るか (IBCR の MSS = 1), 次の割込み時にデータバイト (IBSR の AL=1) 送信が失敗しているかをチェックすることが重要です。 ACK: アクノリッジ ビット このビットは , データを受信した場合のアクノリッジ発生許可ビットで す。このビットはユーザによってのみ変更可能です。 "0": アクノリッジは発生しない。 "1": アクノリッジが発生する。 このビットは , スレーブにおけるアドレスデータ受信時には無効となり ます。 インタフェースが 7 ビットか 10 ビットのスレーブアドレスを検知した 場合 , 対応許可ビット (ITMK の ENTB, ISMK の ENSB) が設定されてい るかどうかをアクノリッジします。 割込み中 (INT = 1) またはバスがアイドル (IBSR レジスタの BB = 0) の みの場合に , このビットへの書込みアクセスが発生します。 GCAA: 汎用コール アドレス アクノリッジ ビット このビットは , ゼネラルコールアドレスを受信した場合のアクノリッジ 発生許可ビットです。このビットはユーザによってのみ変更可能です。 "0": アクノリッジは発生しない。 "1": アクノリッジが発生する。 割込み中 (INT = 1), バスがアイドル中 (IBSR レジスタの BB = 0) また はインタフェースが禁止 (ICCR レジスタの EN = 0) のみの場合に , この ビットへの書込みアクセスが発生します。 第 21 章 400 kHz I2C インタフェース 表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (3 / 3) ビット名 bit9 bit8 機能 INTE: 割込み許可 ビット このビットは , MCU 割込み許可ビットです。このビットはユーザによっ てのみ変更可能です。 "0": 割込み禁止 "1": 割込み許可 このビットが "1" のとき INT ビットが "1" ならば , ハードウェアにより MCU 割込みが発生します。 INT: 割込みフラグ ビット このビットは , 転送終了割込み要求フラグビットです。このビットは ハードウェアによって変更され , ユーザによってクリアできます。 リードモディファイライト (RMW) 系命令時は , このビットの読出し値 は常に "1" です。 ( 書込み時 ) "0": 転送終了割込み要求フラグをクリアする。 "1": 関係なし。 ( 読出し時 ) "0": 転送が終了していないか , カレント転送と関係していない , または バスがアイドル状態。 "1": アクノリッジビットを含めた 1 バイト転送 , または受信が終了した ときに次の条件に該当する場合セットされます。 ・バスマスタである。 ・アドレスされたスレーブである。 ・ゼネラルコールアドレスを受信した。 ・アービトレーションロストが発生した。 デバイスがスレーブとしてアドレスされている場合 , アクノリッジビッ トを含めてアドレスデータ受信の終了 (7 ビット受信の場合は第 1 ビッ トの後 , 10 ビット受信の場合は第 2 ビットの後 ) に設定してください。 このビットが "1" の間 , SCL 行は "L" レベル信号を保持します。この ビットへ "0" を書き込むことで設定がクリアされ , SCL 行が開放され , 次バイトや発生したスタート / ストップコンディションが転送されま す。さらに , SCC ビットへの "1" の書込みや MSS ビットがクリアされ た場合に , このビットはクリアされます。 409 第 21 章 400 kHz I2C インタフェース ■ SCC, MSS , INT ビット競合 SCC, MSS, INT ビットの競合について , 以下の注意が必要です。 SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , スタートコンディション発 生およびストップコンディション発生の競合が起こります。この場合の優先度は , 次の ようになります。 ● 次のバイト転送とストップコンディション発生 INT ビットに "0", MSS ビットに "0" を書き込むと MSS ビットの "0" 書込みが優先され , ストップコンディションが発生します。 ● 次のバイト転送とスタートコンディション発生 INT ビットに "0", SCC ビットに "1" を書き込むと SCC ビットの "1" 書込みが優先され , ス タートコンディションが発生し , IDAR レジスタのデータが転送されます。 ● スタートコンディション発生とストップコンディション発生 SCC ビットに "1", MSS ビットに "0" を書き込むと MSS ビットのクリアが優先され , ス トップコンディションが発生し , インタフェースがスレーブモードになります。 <注意事項> • 本 LSI のほかにマスタモードとなるほかの LSI がバス上に存在する場合 , 本 LSI をマス タモードで使用できません (MB90F394H(A), MB90V390H)。 - 使用可能な構成例 I2Cバス MB90F394H MB90V390H スレーブA スレーブB マスタ I2Cバス MB90F394H MB90V390H スレーブA マスタA スレーブ - 使用できない構成例 I2Cバス MB90F394H MB90V390H スレーブA マスタA マスタ • MB90F394H(A) と MB90V390H 以外のデバイスを使用する場合の注意 デバイスを以下の条件で使用する場合 , スレーブとして受信できません。よって , ゼネ ラルコールアドレスの送信を禁止します。 - MB90390 シリーズ以外のバス上にほかのマスタモード LSI があり , MB90390 シリー ズではゼネラルコールアドレスをマスタとして送信し , 第 2 バイトの後にアービト レーションロストが発生する条件 410 第 21 章 400 kHz I2C インタフェース 図 21.2-3 と図 21.2-4 に示したタイミングでスタートコンディションを発生させる命 令を実行 (MMS ビットに "1" を設定 ) すると , アービトレーションロスト検出 (AL ビッ ト= 1) による割込み (INT ビット= 1) が発生しません。 • AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 1 スタートコンディション未検出 (BB ビット= 0) 状態で , SDA 端子または SCL 端子レ ベルが "L" のときに , スタートコンディションを発生させる命令を実行 (IBCR レジス タの MSS ビットに "1" を設定 ) した場合 図 21.2-3 AL ビット= 1 検出による割込みが発生しないタイミング図 SCL端子 SCL端子かSDA端子が"L"レベル SDA端子 "L" "L" I2C動作許可状態 (ENビット=1) マスタモード設定 (MSSビット=1) 1 アービトレーションロスト検出 (ALビット=1) バスビジー (BBビット) 0 割込み (INTビット) 0 411 第 21 章 400 kHz I2C インタフェース • AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 2 ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット= 1) して スタートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビットに "1" を設定 ) した場合 図 21.2-4 に示したとおり , I2C が動作禁止 (EN ビット= 0) の状態で , I2C バス上のほ かのマスタが通信を開始すると , スタートコンディション未検出 (BB ビット =0) で I2C バスが占有されている状態になるためです。 図 21.2-4 AL ビット= 1 検出による割込みが発生しないタイミング図 開始条件 9クロック目でINTビット割込みが 発生しない 終了条件 SCL端子 SDA端子 スレーブアドレス ACK DAT ACK ENビット MSSビット ALビット 0 BBビット 0 INTビット 上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願 いします。 1) スタートコンディションを発生させる命令を実行 (MSS ビットに "1" を設定 ) 2) タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3 ビットデータ送信時間を待つ。* 例: I2C 転送周波数 100 kHz の場合 3 ビットデータ送信時間 {1/(100 × 103)} × 3 = 30 µs 3) IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット = 1, BB ビット = 0 の 場合には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。AL ビット と BB ビットがその他の状態のときは通常処理を行う。 412 第 21 章 400 kHz I2C インタフェース 以下にフロー例を示します。 マスタモード設定 バス制御レジスタ (IBCR) のMSSビットに"1"を設定 クロック制御レジスタ (ICCR) に設定されている I2C転送周波数での3ビットデータ送信時間待ち* NO BBビット=0でかつALビット=1? YES ENビットを"0"にしてI 2Cの初期化 通常処理へ *: アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 , I2C 転送周 波数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。 • AL ビット= 1 検出による割込み (INT ビット= 1) が発生する例 バスビジー検出 (BB ビット= 1) されている状態で , スタートコンディションを発生さ せる命令を実行 (MSS ビットに "1" を設定 ) およびアービトレーションロストした場合 には , AL ビット= 1 検出時に INT ビット割込みが発生します。 図 21.2-5 AL ビット= 1 検出時に割込みが発生するタイミング図 開始条件 9クロック目で割込み SCL端子 SDA端子 スレーブアドレス ACK DAT ENビット MSSビット ソフトでのALビットクリア ALビット BBビット ソフトでのINTビットクリアで SCL開放 INTビット 413 第 21 章 400 kHz I2C インタフェース I2C10 ビットスレーブアドレスレジスタ (ITBA) 21.2.3 このレジスタ (ITBAH / ITBAL) は 10 ビットスレーブアドレスを示します。 ■ I2C10 ビットスレーブアドレスレジスタ (ITBA) インタフェースが禁止 (ICCR の EN = 0) の場合 , このレジスタへは書込みアクセスの みが有効です。 アドレス 0035A3H bit 15 14 13 12 11 10 9 8 − − − − − − − − − − − − TA9 R/W TA8 R/W アドレス 0035A2H bit 7 6 5 4 3 2 1 0 TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W TA7 R/W ITBAH ( 上位 ) 初期値 00000000B ITBAL ( 下位 ) 初期値 00000000B R/W : リード / ライト可能 : 未定義 ■ 10 ビットスレーブアドレスレジスタ (ITBA) の内容 表 21.2-3 各 10 ビットスレーブアドレスレジスタ (ITBA) の機能 ビット名 bit15 ~ bit10 bit9 ~ bit0 未定義 TA9 ~ TA0: 10 ビット スレーブ アドレス 機 能 このビットは常に "0" を戻します。 スレーブモード時にアドレスデータが受信されると , 10 ビットアドレス が有効 (ITMK レジスタの ENTB = 1) かどうか ITBA レジスタを比較しま す。ライトアドレス 1 での 10 ビットアドレスヘッダの受信後に , アクノ リッジは送信されます。そして 2 番目に入ってくるバイトが TBAL レジ スタと比較されます。一致が検知されると , アクノリッジ信号がマスタ デバイスに送信され , AAS ビットが設定されます。さらに , 繰返しス タートコンディション後 , インタフェースはリードアドレス 2 での 10 ビットアドレスヘッダの受信でアクノリッジします。 スレーブアドレスの全ビットは ITMK レジスタでマスクされます。10 ビットスレーブアドレスの全ビットは , ITBA レジスタに書き戻され , IBSR レジスタの AAS ビットが "1" の間だけ有効です。 <注意事項> • 10 ビットヘッダ ( 書込みアクセス ) は次のビットシーケンスで成り立つ : 11110B, TA9, TA8, 0 • 10 ビットヘッダ ( 読出しアクセス ) は次のビットシーケンスで成り立つ : 11110B, TA9, TA8, 1 414 第 21 章 400 kHz I2C インタフェース 21.2.4 I2C10 ビットアドレスマスクレジスタ (ITMK) このレジスタには , 10 ビットスレーブアドレスマスクと 10 ビットスレーブアドレス 許可ビットがあります。 ■ I2C10 ビットアドレスマスクレジスタ (ITMK) アドレス 0035A5H bit 15 アドレス 0035A4H bit 7 ENTB R/W TM7 R/W 14 13 12 11 10 9 8 RAL R/W − − − − − − − − TM9 R/W TM8 R/W 6 5 4 3 2 1 0 TM6 R/W TM5 R/W TM4 R/W TM3 R/W TM2 R/W TM1 R/W TM0 R/W ITMKH ( 上位 ) 初期値 00111111B ITMKL ( 下位 ) 初期値 11111111B R/W : リード / ライト可能 : 未定義 415 第 21 章 400 kHz I2C インタフェース ■ I2C10 ビットアドレスマスクレジスタ (ITMK) の内容 表 21.2-4 各 10 ビットアドレスマスクレジスタ (ITMK) の機能 ビット名 機能 ENTB: 10 ビット スレーブ アドレス許可 ビット このビットは , 10 ビットスレーブアドレスを許可します ( そしてその受 信時にアクノリッジします )。インタフェースが不可 (ICCR の EN=0) のとき にのみ , このビットへの書込みアクセスが可能です。 "0": 10 ビットアドレス禁止 "1": 10 ビットアドレス許可 bit14 RAL: 受信スレーブ アドレス長 ビット このビットは , インタフェースが 7 ビットまたは 10 ビットのどちらを スレーブとしてアドレスされているか示します。 "0": 7 ビットスレーブとしてアドレス "1": 10 ビットスレーブとしてアドレス 7 ビット , 10 ビットスレーブアドレスが共に許可されているとき (ENTB=1 かつ ENSB=1), このビットでインタフェースがどちらを使用し ているか決められます。このビットは , IBSR レジスタの AAS ビットが "1" のとき有効です。このビットは , インタフェースが不可 (ICCR の EN=0) のときにリセットされます。 bit13 ~ bit10 未定義 これらのビットは , 読出し時に常に "1" を戻します。 TMK: 10 ビット スレーブ アドレスマスク レジスタ これらのレジスタは , インタフェースの 10 ビットスレーブアドレスの マスクに使用します。インタフェースが不可のとき (ICCR の EN=0) の み , これらのビットに書込みアクセスできます。 "0": ビットはスレーブアドレスの比較に使用されない "1": ビットはスレーブアドレスの比較に使用される このビットは , 複合 10 ビットスレーブアドレス上でインタフェースを アクノリッジさせます。10 ビットスレーブアドレス比較をさせるレジ スタ上でのみ , このビットを "1" にしてください。受信スレーブアドレ スは ITBA レジスタに書き戻されます。IBSR レジスタの AAS ビットが "1" の場合は , ITBA レジスタにより受信スレーブアドレスが決定されま す。 ( 注意事項 ) インタフェースを許可にした後でアドレスマスクを変更すると前の受 信スレーブアドレスにより上書きされてから再びスレーブアドレスが セットされます。 bit15 bit9 ~ bit0 416 第 21 章 400 kHz I2C インタフェース I2C7 ビットスレーブアドレスレジスタ (ISBA) 21.2.5 このレジスタは 7 ビットスレーブアドレスを定義します。 ■ I2C7 ビットスレーブアドレスレジスタ インタフェースが不可 (ICCR の EN=0) のとき にのみ , このビットへの書込みアクセス が可能です。 アドレス 0035A6H bit 7 − − 6 5 4 3 2 1 0 SA6 R/W SA5 R/W SA4 R/W SA3 R/W SA2 R/W SA1 R/W SA0 R/W ISBA 初期値 00000000B R/W : リード / ライト可能 : 未定義 ■ I2C7 ビットスレーブアドレスレジスタの内容 表 21.2-5 各 7 ビットアドレスマスクレジスタの機能 ビット名 bit7 bit6 ~ bit0 機能 未定義 このビットは , 読出し時に常に "1" を戻します。 SA6 ~ SA0: 7 ビット スレーブ アドレスビット スレーブモード中にアドレスデータを受信すると , 7 ビットアドレスが 有効 (ISMK レジスタの ENSB = 1) のとき , ISBA レジスタと比較され ます。一致が検出されると , アクノリッジ信号がマスタデバイスに送 信され , AAS ビットがセットされます。 スレーブアドレスの全ビットが ISMK レジスタでマスクされます。 IBSR レジスタの AAS ビットが "1" のときのみ , 受信 7 ビットスレーブ アドレスの ISBA への書き戻しが有効です。 10 ビットまたは汎用コールを受信した場合は , インタフェースはこの レジスタの内容と入力されたデータと比較しません。 417 第 21 章 400 kHz I2C インタフェース ■ I2C7 ビットスレーブアドレスマスクレジスタ (ISMK) このレジスタには , 7 ビットスレーブアドレスマスクと 7 ビットモード許可ビットがあ ります。インタフェースが不可 (ICCR の EN=0) のとき にのみ , このビットへの書込み アクセスが可能です。 アドレス 0035A7H bit 15 ENSB R/W 14 13 12 11 10 9 8 SM6 R/W SM5 R/W SM4 R/W SM3 R/W SM2 R/W SM1 R/W SM0 R/W ISMK 初期値 01111111B R/W: リード / ライト可能 ■ I2C7 ビットスレーブアドレスマスクレジスタの内容 表 21.2-6 各 7 ビットスレーブアドレスマスクレジスタの機能 ビット名 bit15 bit14 ~ bit8 418 機能 ENSB: 7 ビット スレーブ アドレスビット このビットは 7 ビットスレーブアドレスを許可します ( そしてその 受信時にアクノリッジします )。 "0": 7 ビットアドレス禁止 "1": 7 ビットアドレス許可 SM6 ~ SM0: 7 ビット スレーブ アドレスマスク ビット このレジスタは , インタフェースの 7 ビットスレーブアドレスのマ スクに使用します。 "0": ビットはスレーブアドレスの比較に使用されない "1": ビットはスレーブアドレスの比較に使用される このビットは , 複合 7 ビットスレーブアドレス上でインタフェース をアクノリッジさせます。7 ビットスレーブアドレス比較をさせる レジスタ上でのみ , このビットを "1" にしてください。受信スレー ブアドレスは ISBA レジスタに書き戻されます。IBSR レジスタの AAS ビットが "1" の場合は , ISBA レジスタにより受信スレーブア ドレスが決定されます。 ( 注意事項 ) インタフェースを許可にした後でアドレスマスクを変更すると , 前の受信スレーブアドレスにより上書きされてから再びスレーブ アドレスがセットされます。 第 21 章 400 kHz I2C インタフェース I2C データレジスタ (IDAR) 21.2.6 400 kHz I2C インタフェース用データレジスタ (IDAR) の構成および機能について説 明します。 ■ I2C データレジスタ (IDAR) アドレス 0035A8H bit 7 D7 R/W 6 5 4 3 2 1 0 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W IDAR 初期値 00000000B R/W: リード / ライト可能 ■ I2C データレジスタの内容 表 21.2-7 データレジスタの各ビット機能 ビット名 bit7 ~ bit0 D7 ~ D0: データビット 機能 シリアル転送に使用されるデータレジスタであり , MSB から転送さ れます。 このレジスタの書込み側はダブルバッファになっており , バスが使用 中 (BB=1) である場合 , 書込みデータは各バイト転送時にシリアル転 送用のレジスタにロードされます。IBCR レジスタの INT ビットがク リアされるか , バスがアイドル (IBSR の BB = 0) のとき , このデータ バイトは内部転送レジスタにロードされます。読出しアクセス中 , 内 部レジスタは直接読み出されます。このため , IBCR レジスタの INT が "1" のときのみ , このレジスタの受信データは有効です。 419 第 21 章 400 kHz I2C インタフェース 21.2.7 I2C クロック制御レジスタ (ICCR) I2C クロック制御レジスタ (ICCR) には , 次の機能があります。 • テストモード許可 • I/O パッドノイズフィルタ許可 • I2C インタフェース動作許可 • シリアルクロック周波数設定 ■ I2C クロック制御レジスタ (ICCR) アドレス 0035ABH bit 15 − − R/W : リード / ライト可能 : 未定義 420 14 13 12 11 10 9 8 NSF R/W EN R/W CS4 R/W CS3 R/W CS2 R/W CS1 R/W CS0 R/W ICCR 初期値 00011111B 第 21 章 400 kHz I2C インタフェース ■ I2C クロック制御レジスタ (ICCR) の内容 表 21.2-8 クロック制御レジスタの各ビット機能 (1 / 2) ビット名 bit15 bit14 bit13 機能 未定義 このビットは , 読出し時に常に "0" を戻します。 NSF: I/O パッド ノイズ フィルタ許可 ビット このビットは SDA, SCL I/O パッドに内蔵したノイズフィルタを有効にし ます。 インタフェースが 100K ビット超のデータレートで送受信する場合 , この ビットを "1" にすることを推奨します。 MB90V390H: ノイズフィルタは最小 0ns から最大 1 ~ 1.5 内部バスサイクルの単発ノ イズを抑制します。最大値は ,I2C 信号 (SDA,SCL) とマシンクロックとの 間の位相関係に依存します。 MB90394HA, MB90V390HA, MB90V390HB: ノイズフィルタは最小 0ns から INFCR の SEL1, SEL0 ビットの設定によ る最大値までの単発ノイズを抑制します。表 21.2-11 を参照してくださ い。 最大値は I2C 信号 (SDA, SCL) とマシンクロックとの間の位相関係に依存 します。 EN: 許可ビット このビットは , I2C インタフェース動作を許可します。設定はユーザのみ 可能ですが , クリアはユーザ / ハードウェアで可能です。 "0": インタフェース禁止 "1": インタフェース許可 このビットが "0" のとき , IBSR レジスタの全ビットと IBCR レジスタ (BER と BEIE ビットは除く ) はクリアされ , モジュールが禁止になり , I2C ラインが開放のままになります。バスエラーが発生したとき (IBCR の BER = 1) は , ハードウェアでクリアできます。 ( 注意事項 ) • I2C インタフェースの動作が禁止されると , 送受信は直ちに停止されま す。 • MSS ビットに "0" を書き込んでストップコンディションを発生させた 後に I2C インタフェースの動作を禁止する場合は , ストップコンディ ションの発生を確認 (IBSR の BB=0) した後 , 動作を禁止 (ICCR の EN=0) してください。 421 第 21 章 400 kHz I2C インタフェース 表 21.2-8 クロック制御レジスタの各ビット機能 (2 / 2) ビット名 機能 このビットはシリアルビットレートを選択します。インタフェースが禁 止 (EN = 0) または EN ビットが同じ書込みアドレスでクリアされる場合 にのみ , このビットの変更が可能です。 n bit12 ~ bit8 CS4 ~ CS0: クロック プリスケーラ ビット 1 CS4 CS3 CS2 CS1 CS3 0 0 0 0 1 ビットレート:φ /28 (+1) 2 0 0 0 1 0 ビットレート:φ /40 (+1) 3 0 0 0 1 1 ビットレート:φ /52 (+1) 4 0 0 1 0 0 ビットレート:φ /64 (+1) 1 … 1 ビットレート:φ /400 (+1) 31 1 1 1 +1 は , ノイズフィルタが許可のとき , 除数に "1" を足すことを意味しま す。 422 第 21 章 400 kHz I2C インタフェース ■ クロックプリスケーラ設定 CS0 ~ CS4 の計算式は , 下記のようになります。 φ ビットレート= n×12+16 φ ビットレート= n×12+17 n>0 :マシンクロック , ノイズフィルタ無効 n>0 :マシンクロック , ノイズフィルタ有効 , INFCR:SEL[1:0]=01B 表 21.2-9 プリスケーラ設定 n CS4 CS3 CS2 CS1 CS0 1 0 0 0 0 1 2 0 0 0 1 0 3 0 0 0 1 1 1 1 1 ... 31 1 1 ( 注意事項 ) プリスケーラ設定に n = 0 は使用しないでください。SDA/SCL タイミン グを阻害します。 ■ 共通マシンクロック周波数 表 21.2-10 に , 共通マシンクロック周波数を示します。 表 21.2-10 共通マシンクロック周波数 マシンクロック [MHz] 100 K ビット ( ノイズフィルタ不可 ) n ビットレート [K ビット ] 400 K ビット ( ノイズフィルタ許可 , INFCR:SEL[1:0]=01B) n ビットレート [K ビット ] 24 19 98 4 369 20 16 96 3 377 16 12 100 2 390 40/3 = 13.3 10 98 2 325 12 9 96 2 292 64/6 = 10.6 8 94 1 367 10 7 100 1 344 8 6 90 1 275 423 第 21 章 400 kHz I2C インタフェース ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) 21.2.8 ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) は , マシンクロック の機能として SDA と SCL のノイズフィルタのフィルタ時間を設定するのに使用しま す。本レジスタは , MB90394HA, MB90V390HA, MB90V390HB のみに用意されてい ます。 ■ ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) アドレス 0035A9H bit 15 − − 14 − − 13 − − 12 − − 11 − − 10 − − 9 8 SEL1 R/W SEL0 R/W INFCR 初期値 XXXXXX01B R/W : リード / ライト可能 : 未定義 ■ ノイズ・フィルタ・コンフィギュレーション・レジスタの内容 表 21.2-11 ノイズ・フィルタ・コンフィギュレーション・レジスタの各ビットの機能 ビット名 bit 15 ~ bit 10 不定 機能 本ビットは読出し時に "X" を返します。本ビットには常に "0" を書き込 んでください。 MB90394HA, MB90V390HA, MB90V390HB: 本ビットでは , SDA と SCL の I/O パッドの内蔵ノイズフィルタのフィル タ時間を設定します。 ノイズフィルタは下表に従い , 0 ns ( 最小 ) と最高値の間にある単一スパ イク幅を抑制します。最高値は , I2C 信号 (SDA, SCL) とマシンクロック との位相関係に依存します。 bit9, bit8 424 SEL1, SEL0 抑制されたスパイクの最大長 SEL1 SEL0 0 0 0.5 ~ 1 マシンクロック・サイクル 0 1 1 ~ 1.5 マシンクロック・サイクル ( 初期値 ) 1 0 1.5 ~ 2 マシンクロック・サイクル 1 1 2 ~ 2.5 マシンクロック・サイクル 第 21 章 400 kHz I2C インタフェース 21.3 I2C インタフェースの動作 I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL) の 2 本の双方向バスラインによって通信が行われます。I2C インタフェースは , それに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) があり , ワイヤード論 理を可能にします。 ■ スタートコンディション バスが開放されている状態 (IBSR の BB=0, IBCR の MSS=0) で MSS ビットに "1" を書 き込むと I2C インタフェースはマスタモードとなり , 同時にスタートコンディションを 発生します。 バスアイドル中 (MSS = 0, BB = 0) に "1" が書き込まれるとスタートコンディション が発生し , IDAR レジスタの内容 ( アドレスデータを含む ) が送信されます。 バスマスタモード中や割込み状態 (IBCR の MSS = 1, INT = 1) のとき , SCC ビットに "1" を書き込むことで連続スタートコンディションが発生します。 バス使用中 (IBSR の BB = 1, TRX = 0, IBCR の MSS = 0, INT = 0) に MSS ビットに "1" を書き込むとバスがフリーになり , スタートが送信されるまでインタフェースは待 機されます。 このとき , 書込みアクセス ( データ受信 ) でインタフェースがスレーブとしてアドレス される場合 , 転送が終了し , 再びバスがフリーになった後 , 送信が開始されます。この ときインタフェースがスレーブとしてデータを送信する場合は , バスがフリーになっ てもデータ送信は開始されません。このため , インタフェースがスレーブとしてアドレ スされているか (IBCR の MSS = 0, IBSR の AAS = 1), データバイト転送が成功したか (IBCR の MSS = 1), 次の割込み時にデータバイトの送信が失敗したかどうか (IBSR の AL = 1) を調べることが重要になります。 ほかのいかなる状態で MSS ビットまたは SCC ビットへ "1" を書き込んでも意味があり ません。 ■ ストップコンディション マスタモード (MSS=1, INT=1 in IBCR) 時に , MSS ビットに "0" を書き込むとストップ コンディションを発生し , スレーブモードになります。これ以外での MSS ビットへの "0" の書込みは無視されます。 MSS ビットのクリア後 , ほかのマスタがストップビットの発生の前に SCL ラインをプ ルすると , インタフェースはストップ状態を発生しようと試みます。これは次のバイト が転送された後に発生します。 ■ スレーブアドレス検知 スレーブモード中 , スタート状態が発生した後 , BB は "1" に設定され , マスタデバイス からのデータ送信は IDAR レジスタに受信されます。 8 ビットの受信後 , ISMK レジスタの ENSB ビットが "1" のとき , IDAR レジスタの内容 はビットマスクを ISMK に保管するために使用する ISBA レジスタと比較されます。一 致の場合 , AAS ビットは "1" に設定され , アクノリッジ信号がマスタに送信されます。 受信データの bit0(IDAR レジスタの bit0) は反転され , TRX ビットに保管されます。 425 第 21 章 400 kHz I2C インタフェース ITMK レジスタの ENTB ビットが "1" で , 10 ビットアドレスヘッダ (11110, TA1, TA0, 書込みアクセス ) が検知された場合 , インタフェースはマスタにアクノリッジ信号を送 信し , 最終ビットの反転値を TRX レジスタに保管します。割込みは発生せず , 次の転 送バイトが ITBA レジスタの下位バイトと比較 (ITMK へのビットマスクの保管に使用 ) されます。一致の場合 , アクノリッジ信号がマスタに送信され , ASS ビットがセットさ れ , 割込みが発生します。 インタフェースがスレーブとしてアドレス指定され , 連続スタートコンディションが 検知された場合 , 10 ビットアドレスヘッダ (11110, TA1, TA0, 読出しアクセス ) の受信 後に AAS ビットが設定され , 割込みが発生します。 10 ビット , 7 ビットアドレス用の分割レジスタがあり , それらのビットがマスクされて いるため , ISMK の ENSB と ITMK の ENTB の設定により , インタフェースを両アドレ スでアクノリッジできます。受信スレーブアドレス長 (7 ビットまたは 10 ビット ) は , ITMK レジスタの RAL ビット (AAS ビットが設定されているときのみ , このビットは 有効です ) の読出しにより決められます。 マスタとしての使用時のみ , 両ビットを "0" としてインタフェースにノースレーブをあ てることができます。 全スレーブアドレスビットは対応するマスクレジスタ (ITMK / ISMK) でマスクされま す。 ■ スレーブアドレスマスク マスクレジスタ (ITMK/ISMK) で "1" に設定したビットのみがアドレス比較用に使用で きます。その他のビットはすべて無視されます。IBSR レジスタの AAS ビットが "1" の とき , 受信スレーブアドレスは , ITBA から (10 ビットアドレス受信時で RAL = 1) また は ISBA から (7 ビットアドレス受信時で RAL = 0) 読出しできます。 ビットマスクがクリアされた場合 , 常にスレーブとしてアドレスされているので , イン タフェースはバスモニタとして使用できます。ただし , ほかのスレーブモニタリングが なかったとしても , スレーブアドレス受信でアクノリッジするため , これは本来のバス モニタではありませんので注意してください。 ■ アドレッシング マスタモードでは , スタートコンディション発生後 , BB=1, TRX=1 にセットされ , IDAR レジスタの内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノ リッジを受信すると , 送信データの bit0( 送信後の IDAR レジスタの bit0) を反転して , TRX ビットへ格納します。 スレーブによるアクノリッジは IBSR レジスタの LRB ビットの使用をチェックします。 この手順は連続スタートコンディションにも適応します。 書込みアクセスの 10 ビットアドレスをするために , 2 バイトを送信してください。1 バ イト目は , ビットシーケンス "1110A9A80" から成り立つ 10 ビットアドレスヘッダです。 2 バイト目は , 10 ビットスレーブアドレスの下位 8 ビット (A7 ~ A0) から成り立って います。 10 ビットスレーブアドレスは , 読出しアクセス (11110A9A81) での 10 ビットアドレス ヘッダに続く , 上位バイトシーケンスの送信と連続スタートコンディション (IBCR の SCC ビット ) により , 読出しアクセスされます。 426 第 21 章 400 kHz I2C インタフェース アドレスデータバイトの概要 : 7 ビットスレーブ , 書込みアクセス : 起動条件 - A6 A5 A4 A3 A2 A1 A0 0. 7 ビットスレーブ , 読出しアクセス : 起動条件 - A6 A5 A4 A3 A2 A1 A0 1. 10 ビットスレーブ , 書込みアクセス : 起動条件 - 1 1 1 1 0 A9 A8 0 - A7 A6 A5 A4 A3 A2 A1 A0. 10 ビットスレーブ , 読出しアクセス : 起動条件 - 1 1 1 1 0 A9 A8 1 - A7 A6 A5 A4 A3 A2 A1 A0 - 再起動 - 1 1 1 1 0 A9 A8 1. ■ アービトレーション マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ ンが起こります。自分の送信データが "1", SDA ライン上のデータが "L" レベルの場合 , 自分はアービトレーションを失ったとみなし , AL=1 にセットします。 第 1 ビットでスタートコンディションが検知されたが , インタフェースが発生できな かったり , 何らかの理由でスタート / ストップコンディションの発生が失敗した場合 , AL ビットは "1" に設定されます。 アービトレーションロスト検知は MSS, TRX ビットともにクリアされ , それ自身のス レーブアドレスが送信された場合にアクノリッジできるように , 直ちにデバイスはス レーブモードになります。 ■ アクノリッジ アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , IBCR レジス タの ACK ビットによってアクノリッジの有無を選択できます。 スレーブ送信側に , マスタ受信側からアクノリッジを受信しなかった場合 , TRX=0 と なりスレーブ受信モードになります。これによって , マスタはスレーブが SCL ライン を開放したときにストップコンディションを発生できます。 マスタモード時は , IBSR レジスタの LRB ビットによって , スレーブによるアクノリッ ジをチェックできます。 427 第 21 章 400 kHz I2C インタフェース 21.4 プログラミングフローチャート 400 kHz I2C インタフェース用の各プログラミングフローチャートを示します。 ■ プログラミングフローチャート 図 21.4-1 スレーブアドレッシングとデータ送信例 7 ビットスレーブアドレッシング データ送信 開始 開始 書込み用スレーブアドレス BER クリア ( 設定の場合 ) インタフェース許可 : EN = 1 IDAR = データバイト ; INT =0 IDAR = スレーブアドレス <<1+RW; MSS = 1; INT = 0 INT=1? NO NO INT=1? YES YES YES BER=1? YES バスエラー BER=1? NO NO AL=1? YES 転送再開 AAS か どうか確認 YES AL=1? NO NO ACK? ACK? NO NO (LRB=0?) (LRB=0?) YES YES データ送信準備完了 最終 バイト 転送 ? YES NO ACK なしスレーブ 連続スタートまたは ストップコンディ ション発生 転送完了 連続スタートまたは ストップコンディ ション発生 428 転送再開 AAS か どうか確認 第 21 章 400 kHz I2C インタフェース 図 21.4-2 データ受信例 開始 書込み用スレーブアドレス IBCR の ACK ビットクリア ( スレーブからの読出しが 最終バイトのとき ): INT = 1 INT=1? NO YES BER=1? YES バスエラー 再許可 IF NO NO 最終 バイト 転送 ? YES 転送完了 連続スタートまたは ストップコンディ ション発生 429 第 21 章 400 kHz I2C インタフェース 430 第 22 章 シリアル I/O シリアル I/O の機能と動作について説明します。 22.1 シリアル I/O の概要 22.2 シリアル I/O のレジスタ 22.3 シリアル I/O プリスケーラ (CDCR) 22.4 シリアル I/O の動作 431 第 22 章 シリアル I/O 22.1 シリアル I/O の概要 シリアル I/O の動作モードには , 以下の 2 種類があります。 • 内部シフトクロックモード……内部クロックに同期してデータ転送を行います。 • 外部シフトクロックモード……外部端子 (SCK4) から入力されるクロックに同期 してデータ転送を行います。このモードで外部端 子 (SCK4) を共有している汎用ポートを操作するこ とにより , CPU の命令による転送動作も可能です。 ■ シリアル I/O のブロックダイヤグラム クロック同期によるデータ転送を可能にするシリアル I/O インタフェースのブロック ダイヤグラムを示します。このインタフェースは 8 ビット× 1 チャネル構成で , データ は LSB ファースト /MSB ファーストから転送できます。 図 22.1-1 拡張シリアル I/O インタフェースのブロックダイヤグラム 内部データバス (MSBファースト) D0~D7 D7~D0 (LSBファースト) 転送方向選択 SIN4 読出し 書込み SDR(シリアルシフトデータレジスタ) SOT4 SCK4 シフトクロック カウンタ 制御回路 内部クロック 2 1 0 SMD2 SMD1 SMD0 SIE SIR BUSY STOP STRT 割込み要求 内部データバス 432 MODE BDS SOE SCOE 第 22 章 シリアル I/O 22.2 シリアル I/O のレジスタ シリアル I/O のレジスタには , 次の 2 つがあります。 • シリアルモード制御ステータスレジスタ (SMCS) • シリアルシフトデータレジスタ (SDR) ■ シリアル I/O のレジスタ bit 15 アドレス: 00002DH SMD2 アドレス: 00002CH 13 12 11 10 9 8 SIE SIR BUSY STOP STRT bit 7 6 5 4 3 2 1 0 − − − − MODE BDS SOE SCOE bit 7 アドレス: 00002EH 14 SMD1 SMD0 D7 6 5 4 3 2 1 0 D6 D5 D4 D3 D2 D1 D0 シリアルモード制御 ステータスレジスタ (SMCS) シリアルシフトデータ レジスタ (SDR) 433 第 22 章 シリアル I/O 22.2.1 シリアルモード制御ステータスレジスタ (SMCS) シリアルモード制御ステータスレジスタ (SMCS) は , シリアル I/O 転送モードを制御 するレジスタです。 ■ シリアルモード制御ステータスレジスタの上位バイト (SMCS) 図 22.2-1 シリアルモード制御ステータスレジスタ ( 上位バイト ) の構成 bit15 アドレス: 00002D H bit14 SMD2 SMD1 R/W R/W bit13 bit12 bit11 bit10 bit9 bit8 SMD0 SIE SIR BUSY STOP STRT R/W R/W R/W R R/W R/W "0" 書込みは影響なし。"0" は常に読出し STOP 0 1 通常動作 434 MODE=1 のとき , "1" 書込みはシリアル送信を活性化 ストップビット 転送停止 転送ステータスビット 0 停止またはシリアルデータレジスタ R/W 待機状態 1 シリアル転送はアクティブ シリアル I/O 割込み要求ビット SIR 0 1 割込みは要求されない SIE 0 1 シリアル I/O 割込み禁止 SMD2~ SMD0 : 初期値 スタートビット STRT 0 1 BUSY R/W : リード / ライト可能 R : リードオンリ 初期値 00000010 B 000B 001B 010B 011B 100B 101B 110B 111B SIE=1 のとき , 割込み要求は CPU へ出される シリアル I/O 割込みイネーブルビット シリアル I/O 割込み許可 シフトクロックモード選択ビット プリスケーラ出力は 2 分周 プリスケーラ出力は 4 分周 プリスケーラ出力は 16 分周 プリスケーラ出力は 32 分周 プリスケーラ出力は 64 分周 外部シフトクロックモード プリスケーラ出力は 8 分周 プリスケーラ出力は 128 分周 第 22 章 シリアル I/O ■ シリアルモード制御ステータスレジスタの下位バイト (SMCS) 図 22.2-2 シリアルモード制御ステータスレジスタ ( 下位バイト ) の構成 アドレス: 00002C H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - - - MODE BDS SOE SCOE - - - - R/W R/W R/W R/W SCOE R/W : リード / ライト可能 : 未定義 : 初期値 汎用ポート端子 , 各命令を転送 1 シフトクロック出力端子 シリアル出力許可ビット SOE 0 1 汎用ポート端子 BDS 0 1 LSB ファースト 1 XXXX0000 B シフトクロック出力許可ビット 0 MODE 0 初期値 シリアルデータ出力 ビット方向選択ビット MSB ファースト シリアルモード選択ビット STRT = 1 のとき , 転送開始 シリアルデータレジスタが読出し / 書込みされる場合に 転送開始 435 第 22 章 シリアル I/O ■ シリアルモード制御ステータスレジスタ (SMCS) の各ビット機能 表 22.2-1 シリアルモード制御ステータスレジスタの各ビット機能 (1 / 2) ビット名 機能 bit15, bit14, bit13 SMD2 ~ SMD0: シフトクロック モード選択 ビット bit12 SIE: シリアル I/O 割込み イネーブル ビット シリアル I/O 割込みイネーブルビット シリアル I/O の割込み要求を図 22.2-1 に示すとおりに制御します。リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能です。 bit11 SIR: シリアル I/O 割込み要求 ビット シリアル I/O 割込み要求ビット シリアル転送が終了すると "1" にセットされ , 割込み許可時 (SIE=1) にこのビット が "1" になると , CPU へ割込み要求を発生します。クリア条件は MODE ビットに よって異なります。MODE ビットが "0" のとき , SIR ビットへの "0" 書込みにより クリアされます。MODE ビットが "1" のとき , SDR の読出しまたは書込み動作によ りクリアされます。MODE ビットの値にかかわらずリセットまたは STOP ビット への "1" 書込み動作によりクリアされます。 本ビットに "1" を書き込んでも意味がありません。リードモディファイライト (RMW) 系命令の読出し時は , 常に "1" が読み出されます。 bit10 BUSY: 転送ステータス ビット 転送ステータスビット シリアル転送が実行中か否かを示すビットです。 リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。 bit9 STOP: ストップビット ストップビット シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると STOP=1 による停止状態となります。リセットにより "1" に初期化されます。本ビットは , 読出しおよび書込みが可能です。 bit8 STRT: スタートビット スタートビット シリアル転送の起動を行うビットです。NODE ビットが "0" の状態で "1" を書くこ とによって転送が開始されます。MODE ビットに "1" を設定し , STRT ビットにも "1" を設定した場合 , シリアルデータレジスタにデータを書き込むことにより , 転 送が開始します。 シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1" の書込みは 無視され , "0" の書込みは意味がありません。 読出し時には常に "0" が読み出されます。 bit3 MODE: シリアルモード 選択ビット シリアルモード選択ビット このビットにより停止状態からの起動条件の選択を行います。ただし , 動作中の書 換えは禁止します。 リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能で す。インテリジェント I/O サービスを起動する際には "1" にしておいてください。 bit2 BDS: ビット方向選択 ビット ビット方向選択ビット シリアルデータの入出力時に , 最下位ビット側から先に転送するか (LSB ファース ト ), 最上位ビット側から先に転送するか (MSB ファースト ) を図 22.2-2 に示すとお りに選択します。転送方向選択ビットは , SDR にデータを書き込む前に設定してお いてください。 bit1 SOE: シリアル出力 許可ビット シリアル出力許可ビット シリアル I/O 用出力外部端子 (SOT4) の出力を制御します。 リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能で す。 436 シフトクロックモード選択ビット 表 22.2-2 を参照してください。 第 22 章 シリアル I/O 表 22.2-1 シリアルモード制御ステータスレジスタの各ビット機能 (2 / 2) ビット名 機能 シフトクロック出力許可ビット シリアル I/O 用入出力外部端子 (SCK4) の出力を図 22.2-2 に示すとおりに制御しま す。 外部シフトクロックモードで命令ごとに転送を行うときは "0" に設定してくださ い。 リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能で す。 SCOE: シフトクロック 出力許可ビット bit0 ■ シフトクロック選択 シフトクロックモード選択シリアルシフトクロックモードを表 22.2-2 に示すとおりに 選択します。第 2 パートがシリアル I/O プリスケーラレジスタ (CDCR) に関連付けられ ます。 ( 注意事項 ) 詳細は , 「22.3 シリアル I/O プリスケーラ (CDCR)」を参照してください。 表 22.2-2 シリアルシフトクロックモードの設定 SMD2 SMD1 SMD0 φ=24MHz div=6 φ=20MHz div=4 φ=16MHz div=4 φ=8MHz div=4 φ=4MHz div=4 0 0 0 2 MHz 2.5 MHz 2 MHz 1 MHz 500 kHz 0 0 1 1 MHz 1.25 MHz 1 MHz 500 kHz 250 kHz 0 1 0 250 kHz 312.5 kHz 250 kHz 125 kHz 62.5 kHz 0 1 1 125 kHz 156.25 kHz 125 kHz 62.5 kHz 31.25 kHz 1 0 0 62.5 kHz 78.125 kHz 62.5 kHz 31.25 kHz 15.625 kHz 1 0 1 1 1 0 500 kHz 625 kHz 500 kHz 250 kHz 125 kHz 1 1 1 31.25 kHz 39.1 kHz 31.25 kHz 15.625 kHz 7812.5 Hz 外部シフトクロックモード 表 22.2-3 シリアル I/O プリスケーラレジスタの分周比 div MD DIV3 DIV2 DIV1 DIV0 推奨マシンサイクル 3 1 0 0 1 0 6 MHz 4 1 0 0 1 1 8 MHz 5 1 0 1 0 0 10 MHz 6 0 0 1 0 1 12 MHz 7 0 0 1 1 0 14 MHz 8 1 0 1 1 1 16 MHz 本ビットの転送中の書換えは禁止します。 SMDリセットにより"000B"に初期化されます。 クロック選択で SCOE =0 とし , SCK4 端子を共有しているポートを操作することによっ て命令ごとにシフトさせることも可能です。 437 第 22 章 シリアル I/O 22.2.2 シリアルシフトデータレジスタ (SDR) シリアルシフトデータレジスタ (SDR) は , シリアル I/O 転送データを格納するシリ アルデータレジスタで転送中は読み書き不可です。 ■ シリアルシフトデータレジスタ (SDR) SDR bit アドレス: 00002EH 7 6 5 4 3 2 1 0 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W R/W : リード / ライト可能 X : 不定 438 初期値 XXXXXXXXB 第 22 章 シリアル I/O 22.3 シリアル I/O プリスケーラ (CDCR) シリアル I/O プリスケーラ (CDCR) は , シリアル I/O のシフトクロックを提供します。 シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。 シリアル I/O は , この通信プリスケーラによってさまざまマシンクロックに対して一 定のボーレートが得られるように設計されています。CDCR レジスタは , マシンク ロックの分周を制御するレジスタです。 ■ シリアル I/O プリスケーラ (CDCR) 図 22.3-1 シリアル I/O プリスケーラ (CDCR) の構成 アドレス: 00002FH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MD - NEG - DIV3 DIV2 DIV1 DIV0 R/W - R/W - R/W R/W R/W R/W DIV3~ DIV0 0000B 0001B 0010B 0011B 0100B 0101B 0110B 0111B 1xxxB NEG 0 1 R/W : リード / ライト可能 X : 不定 : 未定義 : 初期値 MD 0 1 初期値 0 X 0 X 0 0 0 0B マシンクロック分周比ビット 分周比= 1 分周比= 2 分周比= 3 分周比= 4 分周比= 5 分周比= 6 分周比= 7 分周比= 8 予約 ネガティブクロック動作ビット 通常動作 シフトクロック信号が反転 マシンクロック分周モード選択ビット シリアル I/O プリスケーラ禁止 シリアル I/O プリスケーラ許可 <注意事項> 分周比を変えた場合はクロックの安定時間として2周期分の時間を置いてから通信を行っ てください。 439 第 22 章 シリアル I/O 22.4 シリアル I/O の動作 拡張シリアル I/O インタフェースは , シリアルモード制御ステータスレジスタ (SMCS), シリアルシフトデータレジスタ (SDR) により構成されます。8 ビットのシ リアルデータの入出力に使用します。 ■ シリアル I/O の動作 シリアルデータの入出力は , シフトレジスタの内容がシリアルシフトクロック ( 外部ク ロック , 内部クロック ) の立下りに同期してビット直列にシリアル出力端子 (SOT4 端 子 ) に出力され , 立上りに同期してシリアル入力端子 (SIN4 端子 ) からビット直列に SDR ( シリアルシフトデータレジスタ ) に入力されます。シフトの方向 (MSB からの転 送または LSB からの転送 ) は , SMCS ( シリアルモード制御ステータスレジスタ ) の方 向指定ビット (BDS) により指定できます。 転送が終了するとシリアルモード制御ステータスレジスタ (SMCS) の MODE ビットに よって停止状態またはデータレジスタリード / ライト待機状態に入ります。各々の状 態から転送状態に移るには , それぞれ次のことを行います。 • 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書き込みま す (STOP と STRT は同時設定が可能です ) 。 • SDR ( シリアルシフトデータレジスタ ) リード / ライト待機状態からの復帰時はデー タレジスタを読出しまたは書込みします。 440 第 22 章 シリアル I/O シフトクロック 22.4.1 シフトクロックには内部シフトクロックモード , 外部シフトクロックモードの 2 種 類があり , SMCS の設定で指定します。モードの切換えは , シリアル I/O が停止した 状態で行ってください。停止状態の確認は , BUSY ビットを読み出すことで可能で す。 ■ 内部シフトクロックモード 内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク ロックが SCK4 端子より出力可能です。データが 1 クロックごとに 1 ビット転送され ます。転送の速度 ( ボーレート ) は以下のようになります。 A は SMCS の SMD ビットで示す分周比で , 21, 22, 23, 24, 25, 26, 27 です。 転送周波数 (Hz) = φ 転送速度 (s) = A div A div φ ■ 外部シフトクロックモード SCK4 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに 1 ビット転送されます。転送速度は DC から 1/ (5 マシンサイクル ) まで可能です。例 えば , "1 マシンサイクル =0.1μs" のとき , 2MHz まで可能です。 命令ごとに転送することもでき , 次のような設定をすることによって実現します。 外部シフトクロックモードを選択し , SMCS の SCOE ビットを "0" に設定します。さら に , SCK4 端子を共有しているポートの方向レジスタに "1" を書き込み , ポートを出力 モードに設定します。以上の設定をした後 , ポートのデータレジスタ (PDR) に "1", "0" を書き込むと , SCK4 端子に出力されるポートの値を外部クロックとして取り込み , 転 送動作を行います。シフトクロックの開始は "H" からスタートさせてください。 <注意事項> シリアル I/O 動作中の SMCS, SDR への書込みは禁止です。 441 第 22 章 シリアル I/O 22.4.2 シリアル I/O の動作状態 シリアル I/O の動作状態には , 次の 4 種類があります。 • STOP 状態 • 停止状態 • SDR のリード / ライト待機状態 • 転送状態 ■ シリアル 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 にす ると転送動作が再開されます。 ● シリアルデータレジスタリード / ライト待機状態 SMCS の MODE ビットが "1" のとき , シリアル転送が終了すると , BUSY=0, SIR=1 と なりシリアルデータレジスタリード / ライト待機状態に入ります。割込み許可レジス タが許可状態ならば本ブロックより割込み信号を出力します。 リード / ライト待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き 込まれたりすると BUSY=1 となり転送動作が再開されます。 ● 転送状態 BUSY=1 でシリアル転送を行っている状態です。MODE ビットによりそれぞれ停止状 態およびリード / ライト待機状態に遷移します。 図 22.4-1 に , 動作遷移を示します。 442 第 22 章 シリアル I/O 図 22.4-1 拡張シリアル I/O インタフェース動作遷移図 リセット STOP=0 & STRT=0 転送終了 STRT=0, BUSY=0 MODE=0 STOP=0 & STRT=1 MODE=0 & STOP=0 & 終了 STOP STRT=0, BUSY=0 STOP=1 STOP=1 STOP=1 STOP=0 & STRT=1 転送動作 シリアルデータレジスタリード/ライト待機 MODE=1 & 終了 & STOP=0 STRT=1, BUSY=1 STRT=1, BUSY=0 MODE=1 SDRのR/W & MODE=1 図 22.4-2 シリアルシフトデータレジスタへの読出し , 書込み概念図 シリアルデータ データバス SOT4 SIN4 データバス 読出し 書込み 割込み出力 拡張I/Oシリアル インタフェース 読出し 書込み ② CPU ① 割込み入力 データバス 割込みコントローラ ① MODE=1のとき, シフトクロックカウンタによって転送終了し, SIR=1となってリー ド / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生します。 ただし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送中断 のときは割込み信号は発生しません。 ② シリアルシフトデータレジスタがリード / ライトされると , 割込み要求はクリアさ れシリアル転送を開始します。 443 第 22 章 シリアル I/O 22.4.3 シフト動作のスタート / ストップタイミング シフト動作をスタートする場合は , SMCS の STOP ビットを "0", STRT ビットを "1" に設定します。 シフト動作のストップタイミングについては , STOP=1 によって停止する場合と , 転 送終了によって停止する場合があります。 • STOP=1 によって停止→ MODE ビットにかかわらず SIR=0 のまま停止 • 転送終了で停止→ MODE ビットにかかわらず SIR=1 となり停止 BUSY ビットは MODE ビットにかかわらずシリアル転送状態のとき "1" となり , 停 止状態またはリード / ライト待機状態のとき "0" となります。転送状態を確認したい ときはこのビットを読み出してください。 ■ シフト動作のスタート / ストップタイミング ● 内部シフトクロックモード (LSB ファースト ) 図 22.4-3 シフト動作のスタート / ストップタイミング ( 内部クロック ) "1"出力 SCK4 (転送スタート) STRT (転送終了) MODE=0のとき BUSY SOT4 D00 D07( データ保持) ● 外部シフトクロックモード (LSB ファースト ) 図 22.4-4 シフト動作のスタート / ストップタイミング ( 外部クロック ) SCK4 (転送スタート) STRT (転送終了) MODE=0のとき BUSY SOT4 444 DO0 DO7 (データ保持) 第 22 章 シリアル I/O ● 外部シフトクロックモードで命令シフトを行ったとき (LSB ファースト ) 図 22.4-5 シフト動作のスタート / ストップタイミング ( 外部シフトクロックモードで命令シフトを実行時 ) SCK4 STRT PDRのSCKビット"0" PDRのSCKビット"0" PDRのSCKビット"1" (転送終了) MODE=0のとき BUSY SOT4 DO7 (データ保持) DO6 命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が出力 され "0" が書き込まれたとき "L" が出力されます ( ただし , 外部シフトクロックモード 選択で SCOE=0 のとき ) 。 ● STOP=1 による停止 (LSB ファースト , 内部クロック時 ) 図 22.4-6 STOP ビットを "1" としたときのストップタイミング "1"出力 SCK4 (転送スタート) (転送終了) MODE=0のとき STRT BUSY STOP SOT4 DO3,DO4 DO5(データ保持) ( 注意事項 ) DO7 ~ DO0 は出力データを示します。 445 第 22 章 シリアル I/O シリアルデータの転送中は , シフトクロックの立下りでシリアル出力端子 (SOT4) から のデータが出力され , 立上りでシリアル入力端子 (SIN4) のデータが入力されます。 図 22.4-7 シリアルデータの入出力シフトタイミング ○ LSB ファースト(BDSビットが"0"のとき) SCK4 SIN4 SIN入力 D10 D11 D12 D13 D14 D15 D16 D17 DO3 DO4 DO5 DO6 DO7 SOT出力 SOT4 DO0 DO1 DO2 ○ MSB ファースト(BDSビットが"1"のとき) SCK4 SIN4 SIN入力 D17 D16 D15 D14 D13 D12 D11 D10 DO4 DO3 DO2 DO1 DO0 SOT出力 SOT4 446 DO7 DO6 DO5 第 22 章 シリアル I/O 拡張シリアル I/O インタフェースの割込み機能 22.4.4 拡張シリアル I/O インタフェースは , CPU に対して割込み要求を発生できます。 データの転送終了時に割込みフラグである SIR ビットがセットされ , 割込みを許可 する SMCS の SIE ビットが "1" のとき , CPU へ割込み要求を出力します。 ■ 拡張シリアル I/O インタフェースの割込み機能 図 22.4-8 拡張シリアル I/O インタフェースの割込み信号出力タイミング SCK4 (転送終了) BUSY (転送開始) SIE=1 SIR SDR RD/WR SOT4 DO7 (データ保持) DO6 DO0 MODE=1の場合 SCK4 (転送終了) BUSY SIE=1 SIR SDR RD/WR SOT4 DO6 DO7 (データ保持) MODE=0の場合 447 第 22 章 シリアル I/O 448 第 23 章 CAN コントローラ CAN コントローラの機能と概要について説明しま す。 ( 注意事項 ) MB90390 シリーズでは CAN コントローラ 2 ~ 4 は規定されていません。このため , これらの機能は 使用しないことを推奨します。 23.1 CAN コントローラの特長 23.2 CAN コントローラのブロックダイヤグラム 23.3 全体制御レジスタの一覧 23.4 メッセージバッファ (ID レジスタ ) の一覧 23.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 23.6 CAN コントローラのレジスタ分類 23.7 CAN コントローラの送信 23.8 CAN コントローラの受信 23.9 CAN コントローラの受信フローチャート 23.10 CAN コントローラの使用方法 23.11 メッセージバッファ (x) による送信方法 23.12 メッセージバッファ (x) による受信方法 23.13 マルチレベルメッセージバッファの構成の決定 23.14 CAN1, CAN3 RX/TX 端子のリダイレクト設定 23.15 CAN ダイレクトモードレジスタ 23.16 CAN コントローラの使用上の注意 449 第 23 章 CAN コントローラ 23.1 CAN コントローラの特長 CAN コントローラは , 16 ビットマイクロコンピュータ (F2MC-16LX) 内に一体化さ れたモジュールです。CAN ( コントローラエリアネットワーク ) は自動車用コント ローラ間のシリアル通信用の標準プロトコルであり工業分野で広く使用されている ものです。 ■ CAN コントローラの特長 CAN コントローラの特長は次のとおりです。 ● CAN 仕様バージョン 2.0 パート A および B に適合しています。 標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしています。 ● リモートフレームの受信によるデータフレームの送信をサポートしています。 ● 16 個の送信 / 受信メッセージバッファ 29 ビットの ID および 8 バイトデータ マルチレベルメッセージバッファ構造 ● フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサポート しています。 標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンスマ スクレジスタを提供します。 ● ビット速度は10kbps~1Mbpsでプログラマブルです (1Mbpsでご使用の場合, マシンクロッ クは 8MHz 以上で動作する必要があります ) 。 450 第 23 章 CAN コントローラ CAN コントローラのブロックダイヤグラム 23.2 図 23.2-1 に , CAN コントローラのブロックダイヤグラムを示します。 ■ CAN コントローラのブロックダイヤグラム 図 23.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 アービト レーション チェック BITER ビットエラー チェック ACKER 確認エラー チェック FRMER フォームエラー チェック AMSR AMR0 0 1 アクセプタンス フィルタ 受信 バッファx判定 AMR1 RBFx IDR0~IDR15, DLCR0~DLCR15, DTR0~DTR15, RAM RAMアドレス発生 PH1 入力 ラッチ RX RBFx, TBFx, RDLC, TDLC, IDSEL LEIR IDER 451 第 23 章 CAN コントローラ 23.3 全体制御レジスタの一覧 表 23.3-1 に , 全体制御レジスタの一覧を示します。 ■ 全体制御レジスタの一覧 表 23.3-1 全体制御レジスタの一覧 (1 / 2) アドレス 略号 アクセス 初期値 BVALR R/W 00000000 00000000B 送信要求レジスタ TREQR R/W 00000000 00000000B 送信解除レジスタ TCANR W 00000000 00000000B 送信完了レジスタ TCR R/W 00000000 00000000B 受信完了レジスタ RCR R/W 00000000 00000000B RRTRR R/W 00000000 00000000B ROVRR R/W 00000000 00000000B 受信割込み許可 00358FH 00359FH レジスタ RIER R/W 00000000 00000000B 003700H 003900H 003B00H 003D00H 003F00H 制御ステータス 003701H 003901H 003B01H 003D01H 003F01H レジスタ CSR R/W, R 00---000 0----001B 003702H 003902H 003B02H 003D02H 003F02H ラストイベント 003703H 003903H 003B03H 003D03H 003F03H 表示レジスタ LEIR R/W -------- 000-0000B 受信および送信 003705H 003905H 003B05H 003D05H 003F05H エラーカウンタ RTEC R 00000000 00000000B 003706H 003906H 003B06H 003D06H 003F06H ビットタイミング 003707H 003907H 003B07H 003D07H 003F07H レジスタ BTR R/W -1111111 11111111B IDER R/W XXXXXXXX XXXXXXXXB TRTRR R/W 00000000 00000000B RFWTR R/W XXXXXXXX XXXXXXXXB CAN0 CAN1 CAN2 * CAN3 * CAN4 * レジスタ 000070H 000080H 003570H 003580H 000071H 000081H 003571H 003581H 003590H メッセージ 003591H バッファ 有効レジスタ 000072H 000082H 003572H 003582H 003592H 000073H 000083H 003573H 003583H 003593H 000074H 000084H 003574H 003584H 003594H 000075H 000085H 003575H 003585H 003595H 000076H 000086H 003576H 003586H 003596H 000077H 000087H 003577H 003587H 003597H 000078H 000088H 003578H 003588H 003598H 000079H 000089H 003579H 003589H 003599H 00007AH 00008AH 00357AH 00358AH 00359AH リモート要求受信 00007BH 00008BH 00357BH 00358BH 00359BH レジスタ 00007CH 00008CH 00357CH 00358CH 00359CH 受信オーバラン 00007DH 00008DH 00357DH 00358DH 00359DH レジスタ 00007EH 00008EH 00357EH 00007FH 00008FH 00357FH 00358EH 00359EH 003704H 003904H 003B04H 003D04H 003F04H 003708H 003908H 003B08H 003D08H 003F08H 003709H 003909H 003B09H 003D09H 003F09H 00370AH 00390AH 003B0AH 003D0AH 003F0AH 00370BH 00390BH 003B0BH 003D0BH 003F0BH IDE レジスタ 送信 RTR レジスタ 00370CH 00390CH 003B0CH 003D0CH 003F0CH リモートフレーム 00370DH 00390DH 003B0DH 003D0DH 003F0DH 受信待機レジスタ *: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。 452 第 23 章 CAN コントローラ 表 23.3-1 全体制御レジスタの一覧 (2 / 2) アドレス CAN0 CAN1 CAN2 * CAN3 * CAN4 * レジスタ 00370EH 00390EH 003B0EH 003D0EH 003F0EH 送信割込み許可 00370FH 00390FH 003B0FH 003D0FH 003F0FH レジスタ 略号 アクセス 初期値 TIER R/W 00000000 00000000B 003710H 003910H 003B10H 003D10H 003F10H 003711H 003911H 003B11H 003D11H 003F11H アクセプタンス マスク選択 003712H 003912H 003B12H 003D12H 003F12H レジスタ 003713H 003913H 003B13H 003D13H 003F13H XXXXXXXX XXXXXXXXB AMSR R/W XXXXXXXX XXXXXXXXB 003714H 003914H 003B14H 003D14H 003F14H 003715H 003915H 003B15H 003D15H 003F15H アクセプタンス 003716H 003916H 003B16H 003D16H 003F16H マスクレジスタ 0 XXXXXXXX XXXXXXXXB AMR0 R/W XXXXX--- XXXXXXXXB 003717H 003917H 003B17H 003D17H 003F17H 003718H 003918H 003B18H 003D18H 003F18H 003719H 003919H 003B19H 003D19H 003F19H アクセプタンス 00371AH 00391AH 003B1AH 003D1AH 003F1AH マスクレジスタ 1 00371BH 00391BH 003B1BH 003D1BH 003F1BH XXXXXXXX XXXXXXXXB AMR1 R/W XXXXX--- XXXXXXXXB *: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。 453 第 23 章 CAN コントローラ 23.4 メッセージバッファ (ID レジスタ ) の一覧 表 23.4-1 に , メッセージバッファ (ID レジスタ ) の一覧を示します。 ■ メッセージバッファ (ID レジスタ ) の一覧 表 23.4-1 メッセージバッファ (ID レジスタ ) の一覧 (1 / 2) アドレス レジスタ CAN0 CAN1 略号 アクセス 初期値 CAN2 * CAN3 * CAN4 * 003600H 003800H 003A00H 003C00H 003E00H 汎用 RAM ~ ~ ~ ~ ~ 00361FH 00381FH 003A1FH 003C1FH 003E1FH -- R/W 003620H 003820H 003A20H 003C20H 003E20H 003621H 003821H 003A21H 003C21H 003E21H 003622H 003822H 003A22H 003C22H 003E22H 003623H 003823H 003A23H 003C23H 003E23H 003624H 003824H 003A24H 003C24H 003E24H XXXXXXXX XXXXXXXXB ID レジスタ 0 00362AH 00382AH 003A2AH 003C2AH 003E2AH IDR0 R/W XXXXX--- XXXXXXXXB 003625H 003825H 003A25H 003C25H 003E25H ID レジスタ 1 003626H 003826H 003A26H 003C26H 003E26H 003627H 003827H 003A27H 003C27H 003E27H 003628H 003828H 003A28H 003C28H 003E28H 003629H 003829H 003A29H 003C29H 003E29H XXXXXXXX XXXXXXXXB IDR1 R/W XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 2 IDR2 R/W XXXXX--- XXXXXXXXB 00362BH 00382BH 003A2BH 003C2BH 003E2BH 00362CH 00382CH 003A2CH 003C2CH 003E2CH 00362DH 00382DH 003A2DH 003C2DH 003E2DH 00362EH 00382EH 003A2EH 003C2EH 003E2EH 00362FH 00382FH 003A2FH 003C2FH 003E2FH XXXXXXXX XXXXXXXXB ID レジスタ 3 IDR3 R/W XXXXX--- XXXXXXXXB 003630H 003830H 003A30H 003C30H 003E30H 003631H 003831H 003A31H 003C31H 003E31H ID レジスタ 4 003632H 003832H 003A32H 003C32H 003E32H XXXXXXXX XXXXXXXXB IDR4 R/W XXXXX--- XXXXXXXXB 003633H 003833H 003A33H 003C33H 003E33H 003634H 003834H 003A34H 003C34H 003E34H 003635H 003835H 003A35H 003C35H 003E35H 003636H 003836H 003A36H 003C36H 003E36H XXXXXXXX XXXXXXXXB ID レジスタ 5 IDR5 R/W XXXXX--- XXXXXXXXB 003637H 003837H 003A37H 003C37H 003E37H 003638H 003838H 003A38H 003C38H 003E38H 003639H 003839H 003A39H 003C39H 003E39H ID レジスタ 6 00363AH 00383AH 003A3AH 003C3AH 003E3AH 00363BH 00383BH 003A3BH 003C3BH 003E3BH *: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。 454 XXXXXXXXB ~ XXXXXXXXB XXXXXXXX XXXXXXXXB IDR6 R/W XXXXX--- XXXXXXXXB 第 23 章 CAN コントローラ 表 23.4-1 メッセージバッファ (ID レジスタ ) の一覧 (2 / 2) アドレス レジスタ CAN0 CAN1 略号 アクセス 初期値 CAN2 * CAN3 * CAN4 * 00363CH 00383CH 003A3CH 003C3CH 003E3CH 00363DH 00383DH 003A3DH 003C3DH 003E3DH ID レジスタ 7 00363EH 00383EH 003A3EH 003C3EH 003E3EH 00363FH 00383FH 003A3FH 003C3FH 003E3FH 003640H 003840H 003A40H 003C40H 003E40H 003641H 003841H 003A41H 003C41H 003E41H ID レジスタ 8 003642H 003842H 003A42H 003C42H 003E42H XXXXXXXX XXXXXXXXB IDR7 R/W XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB IDR8 R/W XXXXX--- XXXXXXXXB 003643H 003843H 003A43H 003C43H 003E43H 003644H 003844H 003A44H 003C44H 003E44H 003645H 003845H 003A45H 003C45H 003E45H 003646H 003846H 003A46H 003C46H 003E46H 003647H 003847H 003A47H 003C47H 003E47H 003648H 003848H 003A48H 003C48H 003E48H 003649H 003849H 003A49H 003C49H 003E49H 00364AH 00384AH 003A4AH 003C4AH 003E4AH 00364BH 00384BH 003A4BH 003C4BH 003E4BH XXXXXXXX XXXXXXXXB ID レジスタ 9 IDR9 R/W XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 10 IDR10 R/W XXXXX--- XXXXXXXXB 00364CH 00384CH 003A4CH 003C4CH 003E4CH 00364DH 00384DH 003A4DH 003C4DH 003E4DH ID レジスタ 11 IDR11 00364EH 00384EH 003A4EH 003C4EH 003E4EH XXXXXXXX XXXXXXXXB R/W XXXXX--- XXXXXXXXB 00364FH 00384FH 003A4FH 003C4FH 003E4FH 003650H 003850H 003A50H 003C50H 003E50H 003651H 003851H 003A51H 003C51H 003E51H 003652H 003852H 003A52H 003C52H 003E52H 003653H 003853H 003A53H 003C53H 003E53H 003654H 003854H 003A54H 003C54H 003E54H 003655H 003855H 003A55H 003C55H 003E55H 003656H 003856H 003A56H 003C56H 003E56H 003657H 003857H 003A57H 003C57H 003E57H 003658H 003858H 003A58H 003C58H 003E58H 003659H 003859H 003A59H 003C59H 003E59H 00365AH 00385AH 003A5AH 003C5AH 003E5AH XXXXXXXX XXXXXXXXB ID レジスタ 12 IDR12 R/W XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 13 IDR13 R/W XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 14 IDR14 R/W XXXXX--- XXXXXXXXB 00365BH 00385BH 003A5BH 003C5BH 003E5BH 00365CH 00385CH 003A5CH 003C5CH 003E5CH 00365DH 00385DH 003A5DH 003C5DH 003E5DH 00365EH 00385EH 003A5EH 003C5EH 003E5EH 00365FH 00385FH 003A5FH 003C5FH 003E5FH XXXXXXXX XXXXXXXXB ID レジスタ 15 IDR15 R/W XXXXX--- XXXXXXXXB *: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。 455 第 23 章 CAN コントローラ 23.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 表 23.5-1 に , メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧を示し ます。 ■ メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 表 23.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 (1 / 2) アドレス レジスタ CAN0 CAN1 CAN2 * CAN3 * CAN4 * 003660H 003860H 003A60H 003C60H 003E60H 003661H 003861H 003A61H 003C61H 003E61H 003662H 003862H 003A62H 003C62H 003E62H 003663H 003863H 003A63H 003C63H 003E63H 003664H 003864H 003A64H 003C64H 003E64H 003665H 003865H 003A65H 003C65H 003E65H 003666H 003866H 003A66H 003C66H 003E66H 003667H 003867H 003A67H 003C67H 003E67H 003668H 003868H 003A68H 003C68H 003E68H 003669H 003869H 003A69H 003C69H 003E69H 00366AH 00386AH 003A6AH 003C6AH 003E6AH 00366BH 00386BH 003A6BH 003C6BH 003E6BH 00366CH 00386CH 003A6CH 003C6CH 003E6CH 00366DH 00386DH 003A6DH 003C6DH 003E6DH 00366EH 00386EH 003A6EH 003C6EH 003E6EH 00366FH 00386FH 003A6FH 003C6FH 003E6FH 003670H 003870H 003A70H 003C70H 003E70H 003671H 003871H 003A71H 003C71H 003E71H 003672H 003872H 003A72H 003C72H 003E72H 003673H 003873H 003A73H 003C73H 003E73H 003674H 003874H 003A74H 003C74H 003E74H 003675H 003875H 003A75H 003C75H 003E75H 003676H 003876H 003A76H 003C76H 003E76H 003677H 003877H 003A77H 003C77H 003E77H 003678H 003878H 003A78H 003C78H 003E78H 003679H 003879H 003A79H 003C79H 003E79H 00367AH 00387AH 003A7AH 003C7AH 003E7AH 00367BH 00387BH 003A7BH 003C7BH 003E7BH 略号 アクセス 初期値 DLC レジスタ 0 DLCR0 R/W ---- XXXXB DLC レジスタ 1 DLCR1 R/W ---- XXXXB DLC レジスタ 2 DLCR2 R/W ---- XXXXB DLC レジスタ 3 DLCR3 R/W ---- XXXXB DLC レジスタ 4 DLCR4 R/W ---- XXXXB DLC レジスタ 5 DLCR5 R/W ---- XXXXB DLC レジスタ 6 DLCR6 R/W ---- XXXXB DLC レジスタ 7 DLCR7 R/W ---- XXXXB DLC レジスタ 8 DLCR8 R/W ---- XXXXB DLC レジスタ 9 DLCR9 R/W ---- XXXXB DLC レジスタ 10 DLCR10 R/W ---- XXXXB DLC レジスタ 11 DLCR11 R/W ---- XXXXB DLC レジスタ 12 DLCR12 R/W ---- XXXXB DLC レジスタ 13 DLCR13 R/W ---- XXXXB *: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。 456 第 23 章 CAN コントローラ 表 23.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 (2 / 2) アドレス レジスタ CAN0 CAN1 CAN2 * 略号 アクセス 初期値 DLC レジスタ 14 DLCR14 R/W ---- XXXXB DLC レジスタ 15 DLCR15 R/W ---- XXXXB CAN3 * CAN4 * 00367CH 00387CH 003A7CH 003C7CH 003E7CH 00367DH 00387DH 003A7DH 003C7DH 003E7DH 00367EH 00387EH 003A7EH 003C7EH 003E7EH 00367FH 00387FH 003A7FH 003C7FH 003E7FH 003680H ~ 003687H 003A80H ~ 003A87H 003C80H ~ 003C87H 003E80H データレジスタ 0 ~ 003E87H (8 バイト ) DTR0 R/W XXXXXXXXB ~ XXXXXXXXB 003688H 003888H 003A88H ~ ~ ~ 00368FH 00388FH 003A8FH 003C88H ~ 003C8FH 003E88H データレジスタ 1 ~ 003E8FH (8 バイト ) DTR1 R/W XXXXXXXXB ~ XXXXXXXX 003890H ~ 003897H 003A90H ~ 003A97H 003C90H ~ 003C97H 003E90H データレジスタ 2 ~ 003E97H (8 バイト ) DTR2 R/W XXXXXXXXB ~ XXXXXXXXB 003698H 003898H 003A98H ~ ~ ~ 00369FH 00389FH 003A9FH 003C98H ~ 003C9FH 003E98H データレジスタ 3 ~ 003E9FH (8 バイト ) DTR3 R/W XXXXXXXXB ~ XXXXXXXXB 0036A0H 0038A0H 003AA0H 003CA0H 003EA0H データレジスタ 4 ~ ~ ~ ~ ~ 0036A7H 0038A7H 003AA7H 003CA7H 003EA7H (8 バイト ) DTR4 R/W XXXXXXXXB ~ XXXXXXXXB 0036A8H 0038A8H 003AA8H 003CA8H 003EA8H データレジスタ 5 ~ ~ ~ ~ ~ 0036AFH 0038AFH 003AAFH 003CAFH 003EAFH (8 バイト ) DTR5 R/W XXXXXXXXB ~ XXXXXXXXB 0036B0H 0038B0H 003AB0H 003CB0H 003EB0H データレジスタ 6 ~ ~ ~ ~ ~ 0036B7H 0038B7H 003AB7H 003CB7H 003EB7H (8 バイト ) DTR6 R/W XXXXXXXXB ~ XXXXXXXXB 0036B8H 0038B8H 003AB8H 003CB8H 003EB8H データレジスタ 7 ~ ~ ~ ~ ~ 0036BFH 0038BFH 003ABFH 003CBFH 003EBFH (8 バイト ) DTR7 R/W XXXXXXXXB ~ XXXXXXXXB 0036C0H 0038C0H 003AC0H 003CC0H 003EC0H データレジスタ 8 ~ ~ ~ ~ ~ 0036C7H 0038C7H 003AC7H 003CC7H 003EC7H (8 バイト ) DTR8 R/W XXXXXXXXB ~ XXXXXXXXB 0036C8H 0038C8H 003AC8H 003CC8H 003EC8H データレジスタ 9 ~ ~ ~ ~ ~ 0036CFH 0038CFH 003ACFH 003CCFH 003ECFH (8 バイト ) DTR9 R/W XXXXXXXXB ~ XXXXXXXXB 0036D0H 0038D0H 003AD0H 003CD0H 003ED0H データレジスタ 10 ~ ~ ~ ~ ~ 0036D7H 0038D7H 003AD7H 003CD7H 003ED7H (8 バイト ) DTR10 R/W XXXXXXXXB ~ XXXXXXXXB 0036D8H 0038D8H 003AD8H 003CD8H 003ED8H データレジスタ 11 ~ ~ ~ ~ ~ 0036DFH 0038DFH 003ADFH 003CDFH 003EDFH (8 バイト ) DTR11 R/W XXXXXXXXB ~ XXXXXXXXB 0036E0H 0038E0H 003AE0H 003CE0H 003EE0H データレジスタ 12 ~ ~ ~ ~ ~ 0036E7H 0038E7H 003AE7H 003CE7H 003EE7H (8 バイト ) DTR12 R/W XXXXXXXXB ~ XXXXXXXXB 0036E8H 0038E8H 003AE8H 003CE8H 003EE8H データレジスタ 13 ~ ~ ~ ~ ~ 0036EFH 0038EFH 003AEFH 003CEFH 003EEFH (8 バイト ) DTR13 R/W XXXXXXXXB ~ XXXXXXXXB 0036F0H 0038F0H 003AF0H ~ ~ ~ 0036F7H 0038F7H 003AF7H 003EF0H データレジスタ 14 ~ 003EF7H (8 バイト ) DTR14 R/W XXXXXXXXB ~ XXXXXXXXB 0036F8H 0038F8H 003AF8H 003CF8H 003EF8H データレジスタ 15 ~ ~ ~ ~ ~ 0036FFH 0038FFH 003AFFH 003CFFH 003EFFH (8 バイト ) DTR15 R/W XXXXXXXXB ~ XXXXXXXXB 003690H ~ 003697H 003880H ~ 003887H 003CF0H ~ 003CF7H *: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。 457 第 23 章 CAN コントローラ 23.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) 458 第 23 章 CAN コントローラ 制御ステータスレジスタ (CSR) 23.6.1 CAN 制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リードモディファイライト (RMW) 系命令 ) を実行することは禁止されています。 ただし , HALT ビットが変化しないタイミングでは , ビット操作命令を使用しても問 題ありません ( マクロ命令の初期化時など )。 ■ 制御ステータスレジスタ (CSR) ( 下位 ) 図 23.6-1 制御ステータスレジスタの構成 ( 下位バイト ) アドレス: bit 7 CAN0: 003700 H TOE CAN1: 003900 H CAN2: 003B00 H CAN3: 003D00 H R/W CAN4: 003F00 H 6 5 4 3 2 1 0 - - - - NIE 予約 HALT - - - - R/W W R/W CSR0/CSR1/CSR2/CSR3/CSR4 (下位) 初期値 0 X X X X 0 X 1B bit 0 HALT バス動作停止ビット 0 書込み : バス動作停止をキャンセル 読出し : ストップモード以外でのバス動作 1 書込み : バス動作停止 読出し : ストップモードでのバス動作 bit 1 予約ビット Reserved 0 bit 5 NIE "1" を書き込まないでください ノードステータス遷移割込み許可ビット 0 ノードステータス遷移割込み許可 1 ノードステータス遷移割込み禁止 bit 6 TOE R/W W X - : : : : リード/ライト可能 ライトオンリ 不定 未定義 : 初期値 転送出力許可ビット 0 汎用ポート端子 1 CAN コントローラ転送端子 459 第 23 章 CAN コントローラ ■ 制御ステータスレジスタ (CSR 下位 ) の内容 表 23.6-1 制御ステータスレジスタ ( 下位 ) の各ビット機能 ビット名 bit7 bit6 ~ bit3 TOE: 送信出力許可 ビット 機能 本ビットに "1" を書き込むと汎用ポート端子を CAN コントローラの 送信端子に切り換えます。 "0": 汎用ポート端子 "1": CAN コントローラの送信端子 不定 - bit2 NIE: ノードステータス 遷移割込み 許可ビット 本ビットはノードステータス遷移割込み (NT = 1 の場合 ) を許可また は禁止します。 "0": ノードステータス遷移割込みを禁止する "1": ノードステータス遷移割込みを許可する bit1 予約ビット 予約ビットです。このビットには , "1" を書き込まないでください。 このビットはバス動作停止を制御します。バス停止状態はこのビッ トを読み出すことで確認できます。 このビットへの書込み "0": バス動作停止をキャンセル "1": バス動作停止 このビットの読出し "0": バス動作が停止していない状態 "1": バス動作が停止状態 bit0 HALT: バス動作停止 ビット ( 注意事項 ) バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビット が "1" になっていることを確認後 , "0" を書き込んでください。 プログラム例 : switch ( IO_CANCT0.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_CANCT0.CSR.bit.HALT == 0); i++); IO_CANCT0.CSR.word = 0x0084; /* HALT = 0 */ break; } ( 注意事項 ) 変数値 "i" は , フェイルセーフとして使用しています。 460 第 23 章 CAN コントローラ ■ 制御ステータスレジスタ (CSR) ( 上位 ) 図 23.6-2 制御ステータスレジスタ ( 上位バイト ) の構成 アドレス: bit 15 CAN0: 003701 H CAN1: 003901 H CAN2: 003B01 H CAN3: 003D01 H CAN4: 003F01 H 14 13 12 11 10 TS RS - - - NT R R - - - 9 8 NS1 NS0 CSR0/CSR1/CSR2/CSR3/CSR4 (上位) 初期値 00XXX000B R/W R R bit9 bit8 NS1 NS0 0 0 エラーがアクティブ 0 1 1 0 警告 ( エラーがアクティブ ) エラーパッシブ 1 1 バスオフ ノード状態 bit10 NT 0 1 ノードステータス遷移フラグ 変化なし ステータス変化 bit14 RS 受信ステータスビット 0 メッセージ受信なし 1 メッセージ受信あり bit15 R/W R X - : : : : リード/ライト可能 リードオンリ : 初期値 遷移ステータスビット TS 0 メッセージ転送なし 1 メッセージ転送あり 不定 未定義 461 第 23 章 CAN コントローラ ■ 制御ステータスレジスタ (CSR 上位 ) の内容 表 23.6-2 制御ステータスレジスタ ( 上位 ) の各ビット機能 ビット名 bit15 bit14 bit13 ~ bit11 機能 TS: 送信ステータス ビット 本ビットはメッセージが送信中であるかどうかを示します。 "0": メッセージは送信されていません。 "1": メッセージが送信されています。 本ビットはエラーフレームおよびオーバフローフレームが送信され ている間も "0" です。 RS: 受信ステータス ビット 本ビットはメッセージが受信されているかどうかを示します。 "0": メッセージは受信されていません。 "1": メッセージが受信されています。 メッセージがバス上にある間 , 本ビットは "1" になります。このた め , 本ビットはメッセージが送信されている間も "1" になります。 本ビットは必ずしも , 受信メッセージがアクセプタンスフィルタを 通過したかどうかを示すものではありません。 結果として , 本ビットが "0" であるときはバス動作は停止している (HALT = 0) か , バスはインターミッション / バスアイドルにある , ま たはエラー / オーバロードフレームがバス上にあることを意味しま す。 未定義 - もしノードステータスがインクリメントに変化し , またはバスオフ からエラーアクティブに変化しても , 本ビットは "1" になります。 すなわち , NT ビットは , ノードステータスがエラーアクティブ (00B) からワーニング (01B) に , ワーニング (01B) からエラーパッシ ブ (10B) に , エラーパッシブ (10B) からバスオフ (11B) に , バスオフ bit10 NT: ノードステータス 遷移フラグ bit9, bit8 NS1, NS0: ノードステータス ビット 1 および 0 (11B) からエラーアクティブ (00B) に変化したときに "1" にセットさ れます。括弧内の数字は NS1 ビットおよび NS0 ビットの値を示し ます。 ノードステータス遷移割込み許可ビット (NIE) が "1" であるときに 割込みが発生します。"0" を書き込むと NT ビットが "0" にセットさ れます。NT ビットに "1" を書き込んでも無視されます。リードモ ディファイライト (RMW) 系命令が読み出されたときに "1" が読み 出されます。 本ビット群は現在のノードステータスを表します。 詳細については表 23.6-3 を参照してください。 表 23.6-3 NS1, NS0 およびノードステータスの間の対応 462 ノードステータス NS1 NS0 0 0 エラーアクティブ 0 1 ワーニング ( エラーアクティブ ) 1 0 エラーパッシブ 1 1 バスオフ 第 23 章 CAN コントローラ <注意事項> ワーニング ( エラーアクティブ ) はノードステータスに対する CAN 仕様 2.0B におけるエ ラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウンタが 96 を 超えたことを表します。ノードステータスの変化図は図 23.6-3 に示されています。 図 23.6-3 ノードステータス遷移図 ハードウェアリセット REC:受信エラーカウンタ TEC:送信エラーカウンタ エラーアクティブ レジスタ(CSR)のHALTビットに"0"が書き込 まれた後,連続的な11ビット"H"レベル (リセッシブビット)が受信入力端子(RX) に128回入力。 REC≧96 または TEC≧96 REC≧128 または TEC≧128 ワーニング (- - -) (エラー アクティブ) REC<96 および TEC<96 REC<128 および TEC<128 バスオフ エラーパッシブ TEC≧256 463 第 23 章 CAN コントローラ バス動作停止ビット (HALT=1) 23.6.2 バス動作停止ビットは , バス動作停止をセットもしくは解除し , またはそのステート を表示します。 ■ バス動作停止をセットする条件 (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 ビットの "H" レベル ( リセッシブビット ) が入力された後に行われます。 • 上記条件のノードステータスがバスオフに変化したときのバス動作停止の解除は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットの "H" レベル ( リセッシブ ビット ) が 128 回入力された後に行われます。次に送信および受信エラーカウンタの両 者の値が "0" に達してノードステータスはエラーアクティブに変化します。 • バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になっている ことを確認後 , "0" を書き込んでください。 ■ バス動作停止間の状態 (HALT=1) • バスは , 送信および受信などの動作を一切行いません。 • 送信出力端子 (TX) は , "H" レベル ( リセッシブビット ) を出力します。 • ほかのレジスタおよびエラーカウンタの値は変化しません。 464 第 23 章 CAN コントローラ <注意事項> ビットタイミングレジスタ (BTR) はバス動作停止 (HALT=1) の間にセットしなければなり ません。 465 第 23 章 CAN コントローラ ラストイベント表示レジスタ (LEIR) 23.6.3 本レジスタはラストイベントを示します。 NTE, TCE および RCE は排他的なものです。ラストイベントのビットが "1" にセッ トされたとき , ほかのビットは "0" にセットされます。 ■ ラストイベント表示レジスタ (LEIR) 図 23.6-4 ラストイベント表示レジスタ (LEIR) の構成 アドレス: bit 7 CAN0: 003702 H CAN1: 003902 H CAN2: 003B02 H CAN3: 003D02 H CAN4: 003F02 H NTE 6 5 TCE RCE 4 - 3 2 1 0 MBP3 MBP2 MBP1 MBP0 LEIR0, LEIR1, LEIR2, LEIR3, LEIR4 初期値 0 0 0 X 0 0 0 0B R/W R/W R/W - R/W R/W R/W R/W bit3 bit2 bit1 bit0 MBP3 MBP2 MBP1 MBP0 メッセージバッファ ポインタビット 0 ~ 15 ( 初期値 : 0000B) bit5 受信完了イベントビット RCE 0 読出し時 - 1 受信完了 書込み時 ビットクリア 無視 bit6 TCE 転送完了イベントビット 0 読出し時 - 1 転送完了 書込み時 ビットクリア 無視 bit7 NTE R/W X - : : : : 466 リード/ライト可能 不定 未定義 初期値 0 1 ノードステータス転送イベントビット 読出し時 - 転送イベント 書込み時 ビットクリア 無視 第 23 章 CAN コントローラ ■ ラストイベント表示レジスタ (LEIR) の内容 [bit7] NTE: ノードステータス遷移イベントビット • 本ビットが"1"のときはノードステータス遷移がラストイベントであることを表 します。 • 本ビットは制御ステータスレジスタ (CSR) の NT ビットと同時に "1" にセットさ れます。 • 本ビットはまた , CSR のノードステータス遷移割込み許可ビット (NIE) のセッ ティングとは無関係に "1" にセットされます。 • 本ビットに "0" を書き込むと NTE ビットは "0" にセットされます。本ビットに "1" を書き込んでも無視されます。 • リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出され ます。 [bit6] TCE: 送信完了イベントビット 本ビットが "1" のときは送信完了がラストイベントであることを表します。 本ビットは送信完了レジスタ (TCR) のビットのいずれか 1 つと同時に "1" にセット されます。また , 本ビットは送信割込み許可レジスタ (TIER) のビットのセッティン グとは無関係に "1" にセットされます。 "0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも 無視されます。 リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されま す。 本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは送信動作を完了した メッセージバッファの番号を示すために使用されます。 [bit5] RCE: 受信完了イベントビット 本ビットが "1" であるときは受信完了がラストイベントであることを表します。 本ビットは受信完了レジスタ (RCR) のビットのいずれか 1 つと同時に "1" にセット されます。また , 本ビットは受信割込み許可レジスタ (RIER) のビットのセッティン グとは無関係に "1" にセットされます。 "0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも 無視されます。 リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されま す。 本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは受信動作を完了した メッセージバッファの番号を示すために使用されます。 [bit4] 未定義 [bit3 ~ bit0] MBP3 ~ MBP0: メッセージバッファポインタビット TCE または RCE ビットが "1" にセットされたときに本ビット群は対応するメッセー ジバッファ (0 ~ 15) の番号を示します。 NTE ビットが "1" にセットされると本ビット群は意味を持ちません。 "0" を書き込むと本ビット群は "0" にセットされます。本ビット群に "1" を書き込ん でも無視されます。 リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。 もし , LEIR が CAN 割込みハンドラ内でアクセスされたとしても割込みを引き起こ したイベントは必ずしも LEIR により表されるものと同じではありません。割込み ハンドラ内で LEIR アクセスに対する割込み要求の時点でほかの CAN イベントが発 生する可能性があります。 467 第 23 章 CAN コントローラ 23.6.4 受信および送信エラーカウンタ (RTEC) 受信および送信エラーカウンタは , CAN 仕様で定められる送信エラーカウントおよ び受信エラーカウントを示します。このレジスタは読出し専用です。 ■ 受信および送信エラーカウンタ (RTEC) 図 23.6-5 受信および送信エラーカウンタの構成 bit15 アドレス CAN0: 003705H TEC7 CAN1: 003905H R CAN2: 003B05H CAN3: 003D05H CAN4: 003F05H 14 TEC6 R 13 TEC5 R 12 TEC4 R 11 TEC3 R 10 TEC2 R 9 TEC1 R 8 TEC0 R RTEC ( 上位 ) 初期値 00000000B bit 7 アドレス CAN0: 003704H REC7 CAN1: 003904H R CAN2: 003B04H CAN3: 003D04H CAN4: 003F04H 6 REC6 R 5 REC5 R 4 REC4 R 3 REC3 R 2 REC2 R 1 REC1 R 0 REC0 R RTEC ( 下位 ) 初期値 00000000B R: リードオンリ ■ 受信および送信エラーカウンタ (RTEC) の内容 [bit15 ~ bit8] TEC7 ~ TEC0: 送信エラーカウンタ これらは送信エラーカウンタです。 TEC7 ~ TEC0 は , カウンタ値が 256 より大きい場合 0 ~ 7 を示します。以降のイン クリメントはカウンタ値にカウントされません。この場合 , バスオフがノードス テータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=11B) 。 [bit7 ~ bit0] REC7 ~ REC0: 受信エラーカウンタ これらは受信エラーカウンタです。 REC7 ~ REC0 は , カウンタ値が 256 より大きい場合に 0 ~ 7 を示します。以降の インクリメントはカウンタ値にカウントされません。この場合 , エラーパッシブが ノードステータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=10B) 。 468 第 23 章 CAN コントローラ ビットタイミングレジスタ (BTR) 23.6.5 ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングをセット するものです。 ■ ビットタイミングレジスタ (BTR) 図 23.6-6 ビットタイミングレジスタ (BTR) の構成 bit15 アドレス: 003707H(CAN0) 003907H(CAN1) リード / ライト: 初期値: 14 13 12 11 10 9 8 − TS2.2 TS2.1 TS2.0 TS1.3 TS1.2 TS1.1 TS1.0 (−) (X) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) 6 5 4 3 2 1 0 RSJ0 PSC5 PSC4 PSC3 PSC2 PSC1 PSC0 (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) bit 7 アドレス: 003706H(CAN0) RSJ1 003906H(CAN1) リード / ライト: (R/W) 初期値: (1) R/W : リード / ライト可能 : 未定義 <注意事項> 本レジスタはバス動作停止 (HALT=1) の間にセットしなければなりません。 ■ ビットタイミングレジスタ (BTR) の内容 [bit15] 未定義 [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) を決定します。 469 第 23 章 CAN コントローラ ■ プリスケーラ設定 CAN 仕様および CAN コントローラのそれぞれにおけるビット時間セグメントは図 23.6-7 および図 23.6-8 に示されています。 図 23.6-7 CAN 仕様におけるビット時間セグメント ノミナルビット時間 SYNC_SEG PROP_SEG PHASE_SEG1 PHASE_SEG2 サンプルポイント 図 23.6-8 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)) = (3 + TS1 + TS2) TQ = (RSJ + 1) × TQ × TQ 正しく動作を行うためには以下の条件を満足しなければなりません。 ・1 ≦ PSC ≦ 63 の場合 TSEG1 ≧ 2TQ TSEG1 ≧ RSJW TSEG2 ≧ 2TQ TSEG2 ≧ RSJW ・PSC=0 の場合 TSEG1 ≧ 5TQ TSEG2 ≧ 2TQ TSEG2 ≧ RSJW CAN 仕様に従ったビットタイミングの設定をするためには , 遅延時間などほかの条件 も考慮しなければなりません。 470 第 23 章 CAN コントローラ メッセージバッファ有効レジスタ (BVALR) 23.6.6 メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を セットしまたはそのステートを表示します。 ■ メッセージバッファ有効レジスタ (BVALR) 図 23.6-9 メッセージバッファ有効レジスタ (BVALR) の構成 bit15 アドレス: CAN0: 000071H BVAL15 CAN1: 000081H R/W CAN2: 003571H CAN3: 003581H CAN4: 003591H bit 7 アドレス: CAN0: 000070H BVAL7 CAN1: 000080H R/W CAN2: 003570H CAN3: 003580H CAN4: 003590H 14 13 12 11 10 9 8 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 BVAL9 BVAL8 R/W R/W R/W R/W R/W R/W R/W 6 5 4 3 2 1 0 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0 R/W R/W R/W R/W R/W R/W R/W BVALRn ( 上位 ) 初期値 00000000B BVALRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] BVAL15 ~ BVAL0:メッセージバッファ有効レジスタ (BVALR) "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) にする場合は , 「23.16 CAN コントロー ラの使用上の注意」に従ってください。 471 第 23 章 CAN コントローラ IDE レジスタ (IDER) 23.6.7 本レジスタは送信 / 受信の間にメッセージバッファ (x) により使用されるフレーム フォーマットを設定します。 ■ IDE レジスタ (IDER) 図 23.6-10 IDE レジスタ (IDER) の構成 bit15 14 13 12 11 10 アドレス: CAN0: 003709H IDE15 IDE14 IDE13 IDE12 IDE11 IDE10 CAN1: 003909H R/W R/W R/W R/W R/W R/W CAN2: 003B09H CAN3: 003D09H CAN4: 003F09H 9 IDE9 R/W 8 IDE8 R/W IDERn ( 上位 ) 初期値 XXXXXXXXB bit 7 アドレス: CAN0: 003708H IDE7 CAN1: 003908H R/W CAN2: 003B08H CAN3: 003D08H CAN4: 003F08H 1 IDE1 R/W 0 IDE0 R/W IDERn ( 下位 ) 初期値 XXXXXXXXB 6 IDE6 R/W 5 IDE5 R/W 4 IDE4 R/W 3 IDE3 R/W 2 IDE2 R/W n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] IDE15 ~ IDE0:IDE レジスタ (IDER) "0": メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用 されます。 "1": メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用 されます。 <注意事項> • 本レジスタはメッセージバッファ (x) が無効であるとき ( メッセージバッファ有効レジ スタの BVALx(BVALR)=0) に設定しなければなりません。バッファが有効である (BVALx=1)ときに設定を行うと受信メッセージを不必要に格納する可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントロー ラの使用上の注意」に従ってください。 472 第 23 章 CAN コントローラ 23.6.8 送信要求レジスタ (TREQR) 送信要求レジスタ (TREQR) は , メッセージバッファ (x) に対する送信要求を設定し またはその状態を表示します。 ■ 送信要求レジスタ (TREQR) 図 23.6-11 送信要求レジスタ (TREQR) の構成 bit15 アドレス: CAN0: 000073H TREQ15 R/W CAN1: 000083H CAN2: 003573H CAN3: 003583H CAN4: 003593H bit 7 アドレス: CAN0: 000072H TREQ7 R/W CAN1: 000082H CAN2: 003572H CAN3: 003582H CAN4: 003592H 14 13 12 11 10 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 R/W R/W R/W R/W R/W 9 8 TREQ9 TREQ8 R/W R/W 6 5 4 3 2 1 0 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0 R/W R/W R/W R/W R/W R/W R/W TREQRn ( 上位 ) 初期値 00000000B TREQRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] TREQ15 ~ TREQ0:送信要求レジスタ (TREQR) TREQx に "1" が書き込まれたときメッセージバッファ (x) に対する送信を開始します。 もし , リモートフレーム受信待機レジスタ (RFWTR)*1 の RFWTx が "0" であれば送信は 直ちに開始します。しかし , RFWTx=1 であればリモートフレームが受信される ( リモー ト要求受信レジスタ (RRTRR)*1 が "1" になる ) まで待機した後に送信が開始します。 もし , TREQx に "1" が書き込まれるときに RRTRx が既に "1" であれば , RFWTx=1 で あっても送信は直ちに開始します *2。 *1: TRTRR および RFWTR に関しては「23.6.9 送信 RTR レジスタ (TRTRR)」および 「23.6.10 リモートフレーム受信待機レジスタ (RFWTR)」を参照してください。 *2: 送信の解除に関しては「23.6.11 送信解除レジスタ (TCANR)」および「23.6.12 送信 完了レジスタ (TCR)」を参照してください。 TREQx に "0" を書き込んでも無視されます。 リードモディファイライト(RMW)系命令が読み出されたときは"0"が読み出されます。 もし , 送信動作の完了時における ("0" への ) クリアおよび "1" の書込みによる設定が同 時に発生した場合にはクリア動作が優先されます。 もし , 1 つ以上のビットに "1" が書き込まれると下位番号のメッセージバッファ (x) か ら開始して送信が行われます。 TREQx は送信が待ち状態中は "1" であり送信が完了または解除されたときに "0" にな ります。 473 第 23 章 CAN コントローラ 23.6.9 送信 RTR レジスタ (TRTRR) 本レジスタはメッセージバッファ (x) による送信 RTR ( リモート送信要求 ) ビットを 設定するものです。 ■ 送信 RTR レジスタ (TRTRR) 図 23.6-12 送信 RTR レジスタ (TRTRR) の構成 bit15 アドレス: CAN0: 00370BH TRTR15 CAN1: 00390BH R/W CAN2: 003B0BH CAN3: 003D0BH CAN4: 003F0BH bit 7 アドレス: CAN0: 00370AH TRTR7 CAN1: 00390AH R/W CAN2: 003B0AH CAN3: 003D0AH CAN4: 003F0AH 14 13 12 11 10 9 8 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8 R/W R/W R/W R/W R/W R/W R/W 6 5 4 3 2 1 0 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0 R/W R/W R/W R/W R/W R/W R/W R/W: リード / ライト可能 [bit15 ~ bit0] TRTR15 ~ TRTR0:送信 RTR レジスタ (TRTRR) "0": データフレームが送信されます。 "1": リモートフレームが送信されます。 474 TRTRRn ( 上位 ) 初期値 00000000B TRTRRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 第 23 章 CAN コントローラ リモートフレーム受信待機レジスタ (RFWTR) 23.6.10 リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求 が設定された ( 送信要求レジスタ (TREQR) の TREQx が "1" であり , 送信 RTR レジ スタ (TRTRR) の TRTRx が "0" である ) ときに送信を開始する条件を設定します。 ■ リモートフレーム受信待機レジスタ (RFWTR) 図 23.6-13 リモートフレーム受信待機レジスタ (RFWTR) の構成 bit15 アドレス: CAN0: 00370DH RFWT15 CAN1: 00390DH R/W CAN2: 003B0DH CAN3: 003D0DH CAN4: 003F0DH bit 7 アドレス: CAN0: 00370CH RFWT7 CAN1: 00390CH R/W CAN2: 003B0CH CAN3: 003D0CH CAN4: 003F0CH 14 13 12 11 10 9 8 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8 R/W R/W R/W R/W R/W R/W R/W 6 5 4 3 2 1 0 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0 R/W R/W R/W R/W R/W R/W R/W RFWTRn ( 上位 ) 初期値 XXXXXXXXB RFWTRn ( 下位 ) 初期値 XXXXXXXXB n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] RFWT15 ~ RFWT0:リモートフレーム受信待機レジスタ (RFWTR) "0": 送信を直ちに開始します。 "1": リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) まで待 機した後に送信を開始します。 <注意事項> • 送信に対する要求が設定されたときに RRTRx が既に "1" であれば送信を直ちに開始し ます。 • リモートフレーム送信に対しては RFWTx を "1" にセットしないでください。 475 第 23 章 CAN コントローラ 23.6.11 送信解除レジスタ (TCANR) TCANx に "1" が書き込まれたときに本レジスタはメッセージバッファ (x) への送信 に対する待ち状態中の要求を解除します。 解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx に "0" を書き込んでも無視されます。 これは書込み専用レジスタであり , その読出し値は常に "0" です。 ■ 送信解除レジスタ (TCANR) 図 23.6-14 送信解除レジスタ (TCANR) の構成 bit15 アドレス: CAN0: 000075H TCAN15 W CAN1: 000085H CAN2: 003575H CAN3: 003585H CAN4: 003595H bit 7 アドレス: CAN0: 000074H TCAN7 W CAN1: 000084H CAN2: 003574H CAN3: 003584H CAN4: 003594H W: ライトオンリ 476 14 13 12 11 10 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 W W W W W 9 8 TCAN9 TCAN8 W W 6 5 4 3 2 1 0 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0 W W W W W W W TCANRn ( 上位 ) 初期値 00000000B TCANRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 第 23 章 CAN コントローラ 送信完了レジスタ (TCR) 23.6.12 メッセージバッファ (x) により送信の完了時に対応する TCx は "1" になります。 もし , 送信完了割込み許可レジスタ (TIER) の TIEx が "1" であれば割込みが発生し ます。 ■ 送信完了レジスタ (TCR) 図 23.6-15 送信完了レジスタ (TCR) の構成 bit15 アドレス: CAN0: 000077H TC15 CAN1: 000087H R/W CAN2: 003577H CAN3: 003587H CAN4: 003597H 14 TC14 R/W 13 TC13 R/W 12 TC12 R/W 11 TC11 R/W 10 TC10 R/W 9 TC9 R/W 8 TC8 R/W TCRn ( 上位 ) 初期値 00000000B bit 7 アドレス: CAN0: 000076H TC7 CAN1: 000086H R/W CAN2: 003576H CAN3: 003586H CAN4: 003596H 6 TC6 R/W 5 TC5 R/W 4 TC4 R/W 3 TC3 R/W 2 TC2 R/W 1 TC1 R/W 0 TC0 R/W TCRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] TC15 ~ TC0:送信完了レジスタ (TCR) ● TCx=0 となる条件 • TCx に "0" を書き込む。 • 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。 送信の完了の後で TCx に "0" を書き込むとそれを "0" にセットします。TCx に "1" を書 き込んでも無視されます。リードモディファイライト (RMW) 系命令が実行されたとき は "1" が読み出されます。 <注意事項> もし , 送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に発生し たときは "1" への設定が優先します。 477 第 23 章 CAN コントローラ 23.6.13 送信割込み許可レジスタ (TIER) 本レジスタはメッセージバッファ (x) による送信割込みを許可または禁止します。送 信割込みは送信完了時 ( 送信完了レジスタ (TCR) の TCx が "1" になったとき ) に発 生します。 ■ 送信割込み許可レジスタ (TIER) 図 23.6-16 送信割込み許可レジスタ (TIER) の構成 bit15 アドレス: CAN0: 00370FH TIE15 CAN1: 00390FH R/W CAN2: 003B0FH CAN3: 003D0FH CAN4: 003F0FH 14 TIE14 R/W 13 TIE13 R/W 12 TIE12 R/W 11 TIE11 R/W 10 TIE10 R/W 9 TIE9 R/W 8 TIE8 R/W TIERn ( 上位 ) 初期値 00000000B bit 7 アドレス: CAN0: 00370EH TIE7 CAN1: 00390EH R/W CAN2: 003B0EH CAN3: 003D0EH CAN4: 003F0EH 6 TIE6 R/W 5 TIE5 R/W 4 TIE4 R/W 3 TIE3 R/W 2 TIE2 R/W 1 TIE1 R/W 0 TIE0 R/W TIERn ( 下位 ) 初期値 00000000B R/W: リード / ライト可能 [bit15 ~ bit0] TIE15 ~ TIE0:信割込み許可レジスタ (TIER) "0": 送信割込みは禁止されます。 "1": 送信割込みは許可されます。 478 n = 0, 1, 2, 3, 4 第 23 章 CAN コントローラ 受信完了レジスタ (RCR) 23.6.14 メッセージバッファ (x) への受信メッセージの格納の完了時に RCx は "1" になりま す。 もし , 受信完了割込み許可レジスタの RIEx が "1" であれば割込みが発生します。 ■ 受信完了レジスタ (RCR) 図 23.6-17 受信完了レジスタ (RCR) の構成 bit15 アドレス: CAN0: 000079H RC15 CAN1: 000089H R/W CAN2: 003579H CAN3: 003589H CAN4: 003599H 14 RC14 R/W 13 RC13 R/W 12 RC12 R/W 11 RC11 R/W 10 RC10 R/W 9 RC9 R/W 8 RC8 R/W RCRn ( 上位 ) 初期値 00000000B bit 7 アドレス: CAN0: 000078H RC7 CAN1: 000088H R/W CAN2: 003578H CAN3: 003588H CAN4: 003598H 6 RC6 R/W 5 RC5 R/W 4 RC4 R/W 3 RC3 R/W 2 RC2 R/W 1 RC1 R/W 0 RC0 R/W RCRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] RC15 ~ RC0:受信完了レジスタ (RCR) ● RCx=0 となる条件 RCx に "0" を書き込む。 受信メッセージの処理の完了の後で RCx に "0" を書き込んで "0" にセットしてくださ い。RCx に "1" を書き込んでも無視されます。 リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。 <注意事項> もし , 受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に発生し たときは , "1" への設定が優先します。 479 第 23 章 CAN コントローラ リモート要求受信レジスタ (RRTRR) 23.6.15 受信されたリモートフレームがメッセージバッファ (x) 内に格納されると RRTRx は (RCx 設定が "1" になると同時に ) "1" になります。 ■ リモート要求受信レジスタ (RRTRR) 図 23.6-18 リモート要求受信レジスタ (RRTRR) の構成 bit15 アドレス: CAN0: 00007BH RRTR15 CAN1: 00008BH R/W CAN2: 00357BH CAN3: 00358BH CAN4: 00359BH 14 13 12 11 10 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 bit 7 アドレス: CAN0: 00007AH RRTR7 CAN1: 00008AH R/W CAN2: 00357AH CAN3: 00358AH CAN4: 00359AH R/W R/W R/W R/W R/W 9 8 RRTR9 RRTR8 R/W R/W 6 5 4 3 2 1 0 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0 R/W R/W R/W R/W R/W R/W R/W RRTRRn ( 上位 ) 初期値 00000000B RRTRRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] RRTR15 ~ RRTR0:リモート要求受信レジスタ (RRTRR) ● RRTRx=0 となる条件 • RRTRx に "0" を書き込む。 • 受信されたデータフレームがメッセージバッファ (x) に格納された後 (RCx 設定が "1" になるのと同時 ) 。 • メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx は "1") 。 RRTRx に "1" を書き込んでも無視されます。 リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。 <注意事項> もし , "1" への設定と "0" の書込みによるクリアが同時に発生したときは "1" への設定が優 先します。 480 第 23 章 CAN コントローラ 受信オーバランレジスタ (ROVRR) 23.6.16 もし , メッセージバッファ (x) 内への受信メッセージの格納完了時に受信完了レジス タ (RCR) が既に "1" であれば , ROVRx は "1" になり受信がオーバランしたことを表 します。 ■ 受信オーバランレジスタ (ROVRR) 図 23.6-19 受信オーバランレジスタ (ROVRR) の構成 bit15 アドレス: CAN0: 00007DH ROVR15 CAN1: 00008DH R/W CAN2: 00357DH CAN3: 00358DH CAN4: 00359DH bit 7 アドレス: CAN0: 00007CH ROVR7 CAN1: 00008CH R/W CAN2: 00357CH CAN3: 00358CH CAN4: 00359CH 14 13 12 11 10 9 8 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8 R/W R/W R/W R/W R/W R/W R/W 6 5 4 3 2 1 0 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0 R/W R/W R/W R/W R/W R/W R/W ROVRRn ( 上位 ) 初期値 00000000B ROVRRn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 [bit15 ~ bit0] ROVR15 ~ ROVR0:受信オーバランレジスタ (ROVRR) ROVRx に "0" を書き込むと ROVRx=0 になります。ROVRx に "1" を書込みしても無視 されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込むと それを "0" に設定します。 リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。 <注意事項> もし , "1" への設定と "0" の書込みによるクリアが同時に発生したときは "1" への設定が優 先します。 481 第 23 章 CAN コントローラ 23.6.17 受信割込み許可レジスタ (RIER) 受信割込み許可レジスタ (RIER) は , メッセージバッファ (x) による受信割込みを許 可または禁止します。 受信割込みは受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に発 生します。 ■ 受信割込み許可レジスタ (RIER) 図 23.6-20 受信割込み許可レジスタ (RIER) の構成 bit15 14 13 12 11 10 アドレス: CAN0: 00007FH RIE15 RIE14 RIE13 RIE12 RIE11 RIE10 CAN1: 0000BFH R/W R/W R/W R/W R/W R/W CAN2: 00357FH CAN3: 00358FH CAN4: 00359FH bit 7 アドレス: CAN0: 00007EH RIE7 CAN1: 0000BEH R/W CAN2: 00357EH CAN3: 00358EH CAN4: 00359EH 9 8 RIE9 R/W RIE8 R/W 6 5 4 3 2 1 0 RIE6 R/W RIE5 R/W RIE4 R/W RIE3 R/W RIE2 R/W RIE1 R/W RIE0 R/W R/W: リード / ライト可能 [bit15 ~ bit0] RIE15 ~ RIE0:受信割込み許可レジスタ (RIER) "0": 受信割込みは禁止されます。 "1": 受信割込みは許可されます。 482 RIERn ( 上位 ) 初期値 00000000B RIERn ( 下位 ) 初期値 00000000B n = 0, 1, 2, 3, 4 第 23 章 CAN コントローラ 23.6.18 アクセプタンスマスク選択レジスタ (AMSR) 本レジスタは受信メッセージ ID とメッセージバッファ (x)ID の比較に対するマスク ( アクセプタンスマスク ) を選択します。 ■ アクセプタンスマスク選択レジスタ (AMSR) 図 23.6-21 アクセプタンスマスク選択レジスタ (AMSR) の構成 bit 7 アドレス: CAN0: 003710H AMS CAN1: 003910H 3.1 CAN2: 003B10H R/W CAN3: 003D10H CAN4: 003F10H 6 AMS 3.0 R/W 5 AMS 2.1 R/W 4 AMS 2.0 R/W 3 AMS 1.1 R/W 2 AMS 1.0 R/W 1 AMS 0.1 R/W 0 AMS 0.0 R/W AMSRn Byte 0 初期値 XXXXXXXXB bit15 アドレス: CAN0: 003711H AMS 7.1 CAN1: 003911H CAN2: 003B11H R/W CAN3: 003D11H CAN4: 003F11H 14 AMS 7.0 R/W 13 AMS 6.1 R/W 12 AMS 6.0 R/W 11 AMS 5.1 R/W 10 AMS 5.0 R/W 9 AMS 4.1 R/W 8 AMS 4.0 R/W AMSRn Byte 1 初期値 XXXXXXXXB AMSRn Byte 2 初期値 XXXXXXXXB bit 7 アドレス: CAN0: 003712H AMS CAN1: 003912H 11.1 CAN2: 003B12H R/W CAN3: 003D12H CAN4: 003F12H bit15 アドレス: CAN0: 003713H AMS CAN1: 003913H 15.1 CAN2: 003B13H R/W CAN3: 003D13H CAN4: 003F13H 6 5 4 3 2 1 0 AMS 11.0 R/W AMS 10.1 R/W AMS 10.0 R/W AMS 9.1 R/W AMS 9.0 R/W AMS 8.1 R/W AMS 8.0 R/W 14 AMS 15.0 R/W 13 AMS 14.1 R/W 12 AMS 14.0 R/W 11 AMS 13.1 R/W 10 AMS 13.0 R/W 9 AMS 12.1 R/W 8 AMS 12.0 R/W AMSRn Byte 3 初期値 XXXXXXXXB n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 表 23.6-4 アクセプタンスマスクの選択 アクセプタンスマスク AMSx.1 AMSx.0 0 0 フルビット比較 0 1 フルビットマスク 1 0 アクセプタンスマスクレジスタ 0(AMR0) 1 1 アクセプタンスマスクレジスタ 1(AMR1) 483 第 23 章 CAN コントローラ <注意事項> • AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である ( メッセージバッファ 有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりません。バッ ファが有効 (BVALx=1) なときに設定を行うと不要な受信メッセージが格納される可能 性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッ セージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントローラの 使用上の注意」に従ってください。 484 第 23 章 CAN コントローラ 23.6.19 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがありますが両者とも に標準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用で きます。 AM28 ~ AM18 (11 ビット ) は標準フレームフォーマットにおけるアクセプタンスマ スクに使用され AM28 ~ AM0 (29 ビット ) は拡張フォーマットでアクセプタンスマ スクに使用されます。 ■ アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) 図 23.6-22 アクセプタンスマスクレジスタ 0 (AMR0) の構成 bit 7 アドレス: CAN0: 003714H AM28 CAN1: 003914H R/W CAN2: 003B14H CAN3: 003D14H CAN4: 003F14H 6 5 4 3 2 1 0 AM27 R/W AM26 R/W AM25 R/W AM24 R/W AM23 R/W AM22 R/W AM21 R/W AMR0n バイト 0 初期値 XXXXXXXXB bit15 アドレス: CAN0: 003715H AM17 CAN1: 003915H R/W CAN2: 003B15H CAN3: 003D15H CAN4: 003F15H 14 AM16 R/W 13 AM15 R/W 12 AM14 R/W 11 AM13 R/W 10 AM20 R/W 9 AM19 R/W 8 AM18 R/W AMR0n バイト 1 初期値 XXXXXXXXB bit 7 アドレス: CAN0: 003716H AM12 CAN1: 003916H R/W CAN2: 003B16H CAN3: 003D16H CAN4: 003F16H 6 AM11 R/W 5 AM10 R/W 4 AM9 R/W 3 AM8 R/W 2 AM7 R/W 1 AM6 R/W 0 AM5 R/W AMR0n バイト 2 初期値 XXXXXXXXB bit15 アドレス: CAN0: 003717H AM4 CAN1: 003917H R/W CAN2: 003B17H CAN3: 003D17H CAN4: 003F17H 14 AM3 R/W 13 AM2 R/W 12 AM1 R/W 11 AM0 R/W 10 − − 9 − − 8 − − AMR0n バイト 3 初期値 XXXXXXXXB n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 X - : 不定 : 未定義 (続く) 485 第 23 章 CAN コントローラ (続き) bit 7 アドレス: CAN0: 003718H AM28 CAN1: 003918H R/W CAN2: 003B18H CAN3: 003D18H CAN4: 003F18H bit15 アドレス: CAN0: 003719H AM17 CAN1: 003919H R/W CAN2: 003B19H CAN3: 003D19H CAN4: 003F19H bit 7 アドレス: CAN0: 00371AH AM12 CAN1: 00391AH R/W CAN2: 003B1AH CAN3: 003D1AH CAN4: 003F1AH bit15 アドレス: CAN0: 00371BH AM4 CAN1: 00391BH R/W CAN2: 003B1BH CAN3: 003D1BH CAN4: 003F1BH 6 5 4 3 2 1 0 AM27 R/W AM26 R/W AM25 R/W AM24 R/W AM23 R/W AM22 R/W AM21 R/W AMR1n バイト 0 初期値 XXXXXXXXB 14 AM16 R/W 13 AM15 R/W 12 AM14 R/W 11 AM13 R/W 10 AM20 R/W 9 AM19 R/W 8 AM18 R/W AMR1n バイト 1 初期値 XXXXXXXXB AMR1n バイト 2 初期値 XXXXXXXXB 6 5 4 3 2 1 0 AM11 R/W AM10 R/W AM9 R/W AM8 R/W AM7 R/W AM6 R/W AM5 R/W 14 13 12 11 10 9 8 AM3 R/W AM2 R/W AM1 R/W AM0 R/W − − − − − − AMR1n バイト 3 初期値 XXXXXXXXB n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 X: 不定 -: 未定義 ● 0: コンペア 本ビットに対応するアクセプタンスコード ( 受信メッセージ ID と比較するための ID レジスタ IDRx) を受信メッセージ ID のビットと比較します。一致しなければメッセー ジは受信されません。 ● 1: マスク 本ビットに対応するアクセプタンスコード ID レジスタ (IDRx) をマスクします。受信 メッセージ ID のビットとの比較は行われません。 <注意事項> • AMR0 および AMR1 は AMR0 および AMR1 を選択するメッセージバッファ (x) のすべ てが無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに 設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行うと不 必要な受信メッセージが格納される可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッ セージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントローラの 使用上の注意」に従ってください。 486 第 23 章 CAN コントローラ メッセージバッファ 23.6.20 メッセージバッファは 16 個あり , 1 つのメッセージバッファ x (x=0 ~ 15) は ID レ ジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成され ています。 ■ メッセージバッファ ● メッセージバッファ (x) は送信および受信の両方に使用されます。 ● 下位番号のメッセージバッファの方が高い優先順位を割り当てられています。 • 送信時に 1 つ以上のメッセージバッファに対して送信要求されたときには , 最下位 番号のメッセージバッファから開始して送信が行われます (「23.7 CAN コントロー ラの送信」を参照 ) 。 • 受信時に 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセー ジのアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッ セージ ID が通過するときに受信メッセージは最下位番号のメッセージバッファ内 に格納されます (「23.8 CAN コントローラの受信」を参照 ) 。 ● 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたときに メッセージバッファはマルチレベルメッセージバッファとして使用できます。これにより , 受信時間に対する余裕が与えられます。 (「23.12 メッセージバッファ (x) による受信方法」を参照 ) 。 <注意事項> • メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位で偶数アドレ スに対して行わなければなりません。バイト単位で書込み動作を行うと下位バイトへ の書込み時に上位バイトに不定データを書き込んでしまいます。 • メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0" ( 無効 ) であるとき にメッセージバッファ x (IDRx, DLCRx および DTRx) は汎用 RAM として使用できま す。ただし , CAN コントローラが送受信動作中は , メッセージバッファを使用します ので , CPU のアクセスが最大で 64 マシンサイクル待たされることがあります。これは 汎用 RAM 領域についても同様です。 487 第 23 章 CAN コントローラ 23.6.21 ID レジスタ x (x=0 ~ 15) (IDRx) ID レジスタ x (x=0 ~ 15) (IDRx) は , メッセージバッファ (x) に対する ID レジスタ です。 ■ ID レジスタ x (x=0 ~ 15) (IDRx) 図 23.6-23 ID レジスタ x (IDRx) の構成 bit 7 アドレス: CAN0: 003620H + 4 × x ID28 CAN1: 003820H + 4 × x R/W CAN2: 003A20H + 4 × x CAN3: 003C20H + 4 × x CAN4: 003E20H + 4 × x 6 ID27 R/W 5 ID26 R/W 4 ID25 R/W 3 ID24 R/W 2 ID23 R/W 1 ID22 R/W 0 ID21 R/W IDRxn バイト 0 初期値 XXXXXXXXB bit15 アドレス: CAN0: 003621H + 4 × x ID20 CAN1: 003821H + 4 × x R/W CAN2: 003A21H + 4 × x CAN3: 003C21H + 4 × x CAN4: 003E21H + 4 × x 14 ID19 R/W 13 ID18 R/W 12 ID17 R/W 11 ID16 R/W 10 ID15 R/W 9 ID14 R/W 8 ID13 R/W IDRxn バイト 1 初期値 XXXXXXXXB bit 7 アドレス: CAN0: 003622H + 4 × x ID12 CAN1: 003822H + 4 × x R/W CAN2: 003A22H + 4 × x CAN3: 003C22H + 4 × x CAN4: 003E22H + 4 × x 6 ID11 R/W 5 ID10 R/W 4 ID9 R/W 3 ID8 R/W 2 ID7 R/W 1 ID6 R/W 0 ID5 R/W IDRxn バイト 2 初期値 XXXXXXXXB bit15 アドレス: CAN0: 003623H + 4 × x ID4 CAN1: 003823H + 4 × x R/W CAN2: 003A23H + 4 × x CAN3: 003C23H + 4 × x CAN4: 003E23H + 4 × x 14 13 12 11 10 9 8 ID3 R/W ID2 R/W ID1 R/W ID0 R/W − − − − − − IDRxn バイト 3 初期値 XXXXX---B x = 0, ... , 15 n = 0, 1, 2, 3, 4 R/W: リード / ライト可能 -: 未定義 X: 不定 標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x) を使用しているときは ID28 ~ ID18 の 11 ビットを使用してください。拡張フレーム フォーマット (IDEx=1) でバッファを使用しているときは ID28 ~ ID0 の 29 ビットを使 用してください。 ID28 ~ ID0 の機能は次のとおりです。 • アクセプタンスコード設定 ( 受信メッセージ ID との比較用の ID) • 送信メッセージ ID の設定 488 第 23 章 CAN コントローラ <注意事項> • 標準フレームフォーマットでは ID28 ~ ID22 のビットのすべてに "1" をセットするこ とは禁止されています。 - 受信メッセージ ID の格納 - 受信メッセージ ID はアクセプタンスマスクでマスクされているビットにも格納され ます。標準フレームフォーマットでは ID17 ~ ID0 は不定値 ( 前回受信したメッセー ジの一部 ) が格納されます。 • 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書 込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでし まいます。上位バイトへの書込みは無視されます。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントロー ラの使用上の注意」に従ってください。 489 第 23 章 CAN コントローラ DLC レジスタ x (x=0 ~ 15) (DLCRx) 23.6.22 DLC レジスタ x (x=0 ~ 15) (DLCRx) は , メッセージバッファ x に対する DLC を格 納します。 ■ DLC レジスタ x (x=0 ~ 15) (DLCRx) 図 23.6-24 DLC レジスタ x (x=0 ~ 15) (DLCRx) の構成 bit15 アドレス: CAN0: 003660H+ 2 × x − CAN1: 003860H+ 2 × x − CAN2: 003A60H+ 2×x CAN3: 003C60H+ 2×x CAN4: 003E60H+ 2×x 14 − − 13 − − 12 − − 11 DLC3 R/W 10 DLC2 R/W 9 DLC1 R/W 8 DLC0 R/W DLCRnx ( 下位 ) 初期値 ----XXXXB x = 0, ... , 15 n = 0, 1, 2, 3, 4 R/W : リード / ライト可能 : 未定義 [bit15 ~ bit8] DLC3 ~ DLC0:DLC レジスタ x (x=0 ~ 15) (DLCRx) ● 送信 • データフレームが送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときに送 信メッセージのデータ長 ( バイト単位 ) を設定します。 • リモートフレームが送信する (TRTRx=1) ときに要求メッセージのデータ長 ( バイト 単位 ) を設定します。 <注意事項> 0000B ~ 1000B (0 ~ 8 バイト ) 以外の設定は禁止されています。 ● 受信 • データフレームが受信された (リモートフレーム要求受信レジスタ(RRTRR)のRRTRx が "0") ときに受信メッセージのデータ長 ( バイト単位 ) を格納します。 • リモートフレームが受信された (RRTRx=1) ときに要求メッセージのデータ長 ( バイ ト単位 ) を格納します。 <注意事項> 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み 動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいま す。上位バイトへの書込みは無視されます。 490 第 23 章 CAN コントローラ 23.6.23 データレジスタ x (x=0 ~ 15) (DTRx) データレジスタ x (x=0 ~ 15) (DTRx) は , メッセージバッファ (x) に対するデータレ ジスタです。 本レジスタはデータフレームの送信および受信のみ使用されるものであり , リモート フレームの送信および受信には使用されません。 ■ データレジスタ x (x=0 ~ 15) (DTRx) 図 23.6-25 データレジスタ x (x=0 ~ 15) (DTRx) の構成 bit 7 アドレス: CAN0: 003680H+ 8 × x D7 CAN1: 003880H+ 8 × x R/W CAN2: 003A80H+ 8 × x CAN3: 003C80H+ 8 × x CAN4: 003E80H+ 8 × x 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W DTRxn バイト 0 初期値 XXXXXXXXB bit15 アドレス: D7 CAN0: 003681H+ 8 × x CAN1: 003881H+ 8 × x R/W CAN2: 003A81H+ 8 × x CAN3: 003C81H+ 8 × x CAN4: 003E81H+ 8 × x bit 7 アドレス: D7 CAN0: 003682H+ 8 × x CAN1: 003882H+ 8 × x R/W CAN2: 003A82H+ 8 × x CAN3: 003C82H+ 8 × x CAN4: 003E82H+ 8 × x bit15 アドレス: CAN0: 003683H+ 8 × x D7 CAN1: 003883H+ 8 × x R/W CAN2: 003A83H+ 8 × x CAN3: 003C83H+ 8 × x CAN4: 003E83H+ 8 × x 14 D6 R/W 13 D5 R/W 12 D4 R/W 11 D3 R/W 10 D2 R/W 9 D1 R/W 8 D0 R/W DTRxn バイト 1 初期値 XXXXXXXXB 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W DTRxn バイト 2 初期値 XXXXXXXXB 14 13 12 11 10 9 8 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W DTRxn バイト 3 初期値 XXXXXXXXB bit 7 アドレス: D7 CAN0: 003684H+ 8 × x CAN1: 003884H+ 8 × x R/W CAN2: 003A84H+ 8 × x CAN3: 003C84H+ 8 × x CAN4: 003E84H+ 8 × x 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W DTRxn バイト 4 初期値 XXXXXXXXB R/W: リード / ライト可能 ( 続く ) 491 第 23 章 CAN コントローラ (続き) bit15 アドレス: CAN0: 003685H+ 8 × x D7 CAN1: 003885H+ 8 × x R/W CAN2: 003A85H+ 8 × x CAN3: 003C85H+ 8 × x CAN4: 003E85H+ 8 × x 14 D6 R/W 13 D5 R/W 12 D4 R/W 11 D3 R/W 10 D2 R/W 9 D1 R/W 8 D0 R/W DTRxn バイト 5 初期値 XXXXXXXXB bit 7 アドレス: D7 CAN0: 003686H+ 8 × x CAN1: 003886H+ 8 × x R/W CAN2: 003A86H+ 8 × x CAN3: 003C86H+ 8 × x CAN4: 003E86H+ 8 × x bit15 アドレス: CAN0: 003687H+ 8 × x D7 CAN1: 003887H+ 8 × x R/W CAN2: 003A87H+ 8 × x CAN3: 003C87H+ 8 × x CAN4: 003E87H+ 8 × x R/W: リード / ライト可能 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W DTRxn バイト 6 初期値 XXXXXXXXB DTRxn バイト 7 初期値 XXXXXXXXB 14 13 12 11 10 9 8 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W x = 0, ... , 15 n = 0, 1, 2, 3, 4 ● 送信メッセージデータ (0 ~ 8 バイトのいずれか ) の設定 データは MSB ファーストで開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。 ● 受信メッセージデータ データは MSB ファーストで開始して BYTE0, BYTE1, ...BYTE7 の順で格納されます。 受信メッセージデータが 8 バイトより少なくてもデータが格納されるデータレジスタ (DTRx) の残りのバイトは不定となります。 <注意事項> 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み 動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいま す。上位バイトへの書込みは無視されます。 492 第 23 章 CAN コントローラ 23.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)。 493 第 23 章 CAN コントローラ <注意事項> データフレームまたはリモートフレームのいずれかを格納すると送信要求は解除されま す。 ■ CAN コントローラの送信の完了 送信が成功したときに RRTRx および TREQx は "0" になり送信完了レジスタ (TCR) の TCx は "1" になります。もし送信完了割込みが許可されていれば ( 送信完了割込み許可 レジスタ (TIER) の TIEx は "1") 割込みが発生します。 ■ CAN コントローラの送信フローチャート 図 23.7-1 に , CAN コントローラの送信フローチャートを示します。 図 23.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? 0 送信の終了 494 0 TCANx? TREQx=0 1 送信完了割込みが 発生する 第 23 章 CAN コントローラ 23.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 ビットが "00B" に設定されたメッセージバッファに設定されていれば RCR の RCx ビットの値にかかわらず受信メッセージは格納されます。 • もし , RCR の RCx ビットが "0" のバッファと AMSR のビットが全ビット比較に設定 されているバッファが複数ある場合 , 受信メッセージは最下位番号 ( 最優先 ) のメッ セージバッファ x に格納されます。 • もし , 上記のメッセージバッファがなければ受信メッセージは下位番号メッセージ バッファ x に格納されます。 495 第 23 章 CAN コントローラ • メッセージバッファは昇順でソートし , 配置してください。最下位メッセージバッ ファは , 全ビットコンペア , そして AMR0 か AMR1 マスクとなります。最上位メッ セージバッファは全ビットマスクになります。 図 23.8-1 には , 受信メッセージを格納すべきメッセージバッファ x を決定するための フローチャートが示されています。メッセージバッファはバッファ番号順に , AMSR の 各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1 を 使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセット されたメッセージバッファの順番に設定されることを推奨します。 図 23.8-1 受信メッセージを格納するメッセージバッファ (x) を決定するフローチャート 開始 RCxが"0"にセットされているか,AMSx.1 およびAMSx.0が"00B"にセットされている メッセージバッファが見つかったか。 NO YES 最下位番号のメッセージ バッファを選択 最下位番号のメッセージ バッファを選択 終了 ■ 受信オーバラン 受信メッセージが格納されるべきメッセージバッファ x に対応する受信完了レジスタ (RCR) の RCx ビットが既に "1" にセットされていてメッセージバッファ x の受信メッ セージの格納が完了したときに受信オーバランレジスタ (ROVRR) の ROVRx ビットは "1" にセットされて受信オーバランを示します。 ■ データフレームおよびリモートフレームの受信に対する処理 ● データフレームの受信に対する処理 リモート要求受信レジスタ (RRTRR) の RRTRx は "0" になります。 送信要求レジスタ (TREQR) の TREQx は ( 受信メッセージを格納する直前に ) "0" にな ります。送信を実行しなかったメッセージバッファ (x) に対する送信要求は解除されま す。 <注意事項> データフレームまたはリモートフレームのいずれの送信に対する要求も解除されます。 496 第 23 章 CAN コントローラ ● リモートフレームの受信に対する処理 RRTRx は "1" になります。 もし , 送信 RTR レジスタ (TRTRR) の TRTRx が "1" であれば TREQx は "0" になります。 この結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に 対する要求は解除されます。 <注意事項> • データフレーム送信に対する要求は解除されません。 • 送信要求の解除に関しては「23.7 CAN コントローラの送信」を参照してください。 ■ 受信完了 受信完了レジスタ (RCR) の RCx は受信メッセージを格納した後に "1" になります。 もし , 受信割込みが許可されていれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1") 割込みが発生します。 <注意事項> この CAN コントローラはそれ自身が送信したメッセージを受信することはありません。 497 第 23 章 CAN コントローラ 23.9 CAN コントローラの受信フローチャート 図 23.9-1 に , CAN コントローラの受信フローチャートを示します。 ■ CAN コントローラの受信フローチャート 図 23.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 1 RIEx? 0 受信割込みが発生する 受信の終了 498 第 23 章 CAN コントローラ 23.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 は標準フレームフォーマットでは ID11 ~ ID0 に設 定する必要はありません。メッセージバッファ (x) の ID は送信では送信メッセージと して使用され受信ではアクセプタンスコードとして使用されます。 この設定はメッセージバッファ(x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに行わなければなりません。バッファが有効 (BVALx=1) のときに設定を行うと不必要な受信メッセージが格納される可能性があります。 499 第 23 章 CAN コントローラ ■ アクセプタンスフィルタの設定 メッセージバッファ(x) のアクセプタンスフィルタはアクセプタンスコードおよびアク セプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ ファ (x) が無効 ( メッセージバッファ許可レジスタ (BVALR) の BVALx が "0") である ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行 うと不必要な受信メッセージが格納される可能性があります。 各メッセージバッファ(x) で使用されたアクセプタンスマスクをアクセプタンスマスク 選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ (AMR0 および AMR1) も使用するのであれば設定しなければなりません ( 設定の詳細 に関しては「23.6.18 アクセプタンスマスク選択レジスタ (AMSR)」および「23.6.19 ア クセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1)」を参照 ) 。 アクセプタンスマスクは不必要な受信メッセージが格納されたときでも送信要求が解 除されないように設定しなければなりません。例えば , それは同一の ID のメッセージ のみを送信するのであればフルビット比較に設定しなければなりません。 ■ 低電力消費モードの設定 F2MC-16LX を低電力消費モード ( 停止 , タイムベースタイマなど ) に設定するには制 御ステータスレジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込んでからバ ス動作が停止したか (HALT=1) をチェックしてください。 500 第 23 章 CAN コントローラ 23.11 メッセージバッファ (x) による送信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ ファ (x) を有効にしてください。 ■ メッセージバッファ (x) による送信方法 ● 送信データ長コードの設定 送信データ長コード ( バイト単位 ) を DLC レジスタ (DLCRx) の DLC3 ~ DLC0 に設定 してください。 データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して は送信メッセージのデータ長を設定してください。 リモートフレーム送信 (TRTRx=1 のとき ) に対しては要求メッセージのデータ長 ( バイ ト単位 ) を設定してください。 <注意事項> "0000B" ~ "1000B" (0 ~ 8 バイト ) 以外の設定は禁止されています。 ● 送信データの設定 ( データフレームの送信に対してのみ ) データフレーム送信 ( 送信レジスタ (TRTRR) の TRTRx が "0" のとき ) に対してはデー タを送信バイト数分データレジスタ (DTRx) に設定してください。 <注意事項> 送信データは送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して再書込みし なければなりません。メッセージバッファ有効レジスタ (BVALR) の BVALx ビットを "0" に設定する必要はありません。BVALx ビットを "0" に設定するとリモートフレーム受信を 喪失する可能性があります。 ● 送信 RTR レジスタの設定 データフレーム送信に対しては送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定し てください。 リモートフレーム送信に対しては TRTRx を "1" に設定してください。 501 第 23 章 CAN コントローラ ● 送信開始条件の設定 ( データフレームの送信のみ ) データフレーム送信に対する要求が設定された直後に送信を開始するには , リモート フレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください ( 送信要求 レジスタ (TREQR) の TREQx は "1" であり送信 RTR レジスタ (TRTRR) の TRTRx は "0" です ) 。 データフレーム送信に対する要求が設定 (TREQx=1およびTRTRx=0)された後にリモー トフレームを受信する ( リモート要求受信レジスタ (RRTRR) の RRTRx が "1" になる ) まで待機した後に送信を開始するには , RFWTx を "1" に設定してください。 <注意事項> もし , RFWTx が "1" に設定されるとリモートフレーム送信を行うことはできません。 ● 送信完了割込みの設定 送信完了割込みを発生する場合には送信完了割込み許可レジスタ (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 が受信したリ モートフレームの値になることに注意してください。 502 第 23 章 CAN コントローラ 23.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 ならば処理された受信メッセージは有効です。RCRx に "0" を書き込んでそ れを "0" に設定し ( 受信完了割込みも解除されます ) て受信を終了します。 ROVRx=1 ならば受信オーバランが発生し , 処理された受信メッセージに新たな受信 メッセージが上書きされている可能性があります。この場合には ROVRx ビットに "0" を書き込んでそれを "0" に設定した後で受信メッセージを再処理しなければなりませ ん。 図 23.12-1 に , 受信割込み処理の一例を示します。 503 第 23 章 CAN コントローラ 図 23.12-1 受信割込み処理の例 RCx=1で割込み 受信メッセージの読取り A=ROVRx ROVRx=0 A = 0? YES RCx=0 終了 504 NO 第 23 章 CAN コントローラ 23.13 マルチレベルメッセージバッファの構成の決定 もし , 受信が頻繁に行われる場合または不特定多数のメッセージを受信するのであ れば , メッセージを処理する時間が不十分であれば , 1 つ以上のメッセージバッファ を組み合わせてマルチレベルメッセージバッファとすることにより CPU による受信 メッセージの処理に対する余裕を与えてください。 ■ マルチレベルメッセージバッファの構成の決定 マルチレベルメッセージバッファを用意するには組み合わされた各メッセージバッ ファに同じアクセプタンスフィルタを設定しなければなりません。 もし , アクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較 ((AMSx.1, AMSx.0)=(0, 0)) に設定されていればメッセージバッファをマルチレベル メッセージ構成とすることはできません。これは全ビット比較では受信完了レジスタ (RCR) の RCx ビットの値の如何にかかわらず受信メッセージが格納されることから , 1 つ以上のメッセージバッファに対して全ビット比較および同一アクセプタンスコード (ID レジスタ (IDRx)) が指定されたとしても受信メッセージが常に下位番号の ( 優先度 の低い ) メッセージバッファに格納されるからです。このため , 全ビット比較および同 一アクセプタンスコードを 1 つ以上のメッセージバッファに指定してはなりません。 図 23.13-1 に , マルチレベルメッセージバッファの動作例を示します。 505 第 23 章 CAN コントローラ 図 23.13-1 マルチレベルメッセージバッファの動作例 初期化 AMS15, AMS14, AMS13 AMSR AMR0選択 10 10 10 . . . AM28~AM18 AMS0 ID28~ID18 0000 1111 111 RC15, RC14, RC13 IDE . . . メッセージバッファ 13 0101 0000 000 0 . . . RCR 0 0 0 . . . メッセージバッファ 14 0101 0000 000 0 . . . ROVRR 0 0 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 . . . 0101 1111 010 0 . . . メッセージバッファ 15 メッセージ受信中:オーバランが発生し(ROVR13=1),受信メッセージはメッセージバッファ13に記憶されます。 メッセージ受信中 0101 1111 011 0 . . . メッセージバッファ 13 0101 1111 011 0 . . . RCR 1 1 1 . . . メッセージバッファ 14 0101 1111 001 0 . . . ROVRR 0 0 1 . . . 0101 1111 010 0 . . . メッセージバッファ 15 <注意事項> 4 個のメッセージが同一のアクセプタンスフィルタ設定によりメッセージバッファ 13, 14 および 15 に受信されます。 506 第 23 章 CAN コントローラ 23.14 CAN1, CAN3 RX/TX 端子のリダイレクト設定 CAN1, CAN3 は CAN1 RX/TX 端子 (RX1/TX1) → RX0/TX0 端子へ , CAN3 RX/TX 端 子 (RX3/TX3) → RX2/TX2 端子へのリダイレクションを CANSWR レジスタで変更で きます。 ■ CAN2 RX/TX 端子選択レジスタ (CANSWR) 図 23.14-1 CAN2 RX/TX 端子選択レジスタ (CANSWR) アドレス: CAN0: 00356FH bit15 14 13 12 − − − − − − − − 11 RXS 23 R/W 10 TXS 23 R/W 9 RXS 01 R/W 8 TXS 01 R/W CANSWR 初期値 XXXX0000B R/W : リード / ライト可能 X : 不定値 - : 未定義 ■ CAN 選択レジスタ (CANSWR) の内容 表 23.14-1 CAN 選択レジスタの各ビットの機能 bit15 ~ bit12 ビット名 機能 未定義 - bit11 RXS23: 受信スイッチ 2/3 このビットに "0" を書き込むと , CAN3 の入力は RX3 端子からになります。 このビットに "1" を書き込むと , CAN3 の入力は RX2 端子からになります。 bit10 TXS23: 送信スイッチ 2/3 このビットに "0" を書き込むと , CAN3 の出力は TX3 端子からになります。 このビットに "1" を書き込むと , CAN3 の出力は TX2 端子からになります。 bit9 RXS01: 受信スイッチ 0/1 このビットに "0" を書き込むと , CAN1 の入力は RX1 端子からになります。 このビットに "1" を書き込むと , CAN1 の入力は RX0 端子からになります。 bit8 TXS01: 送信スイッチ 0/1 このビットに "0" を書き込むと , CAN1 の出力は TX1 端子からになります。 このビットに "1" を書き込むと , CAN1 の出力は TX0 端子からになります。 CAN1 は , CAN1 RX/TX 端子リダイレクトを変更し , 図 23.14-2 のように CAN0 と共有 します。このため , この機能は外部 CAN トランシーバのセービングを行えます。この 機能は CANSWR レジスタで選択されます。同じ機能が CAN2 と CAN3 にも提供され ています。 507 第 23 章 CAN コントローラ 図 23.14-2 CAN1 と CAN3 RX/TX のリダイレクション CAN0 TX TX0 CANSWR の TXS01 で選択 RX0 RX CAN0 CANSWR の RXS01 で選択 VCC CAN1 TX TX1 RX1 RX CAN1 CAN2 TX TX2 RX2 RX CAN2 RX CAN3 CANSWR の RXS23 で選択 CANSWR の TXS23 で選択 VCC CAN3 508 TX TX3 RX3 第 23 章 CAN コントローラ 23.15 CAN ダイレクトモードレジスタ MB90390 シリーズはシステムクロック用のクロックモジュレータを提供します。 CAN コントローラが変調クロックで動作できないため , 非変調クロックがクロック モジュレータ設定とは無関係に CAN コントローラに提供されます。 ■ CAN ダイレクトモードレジスタ (CDMR) 図 23.15-1 CAN ダイレクトモードレジスタ (CDMR) の構成 アドレス: CAN0: 00356EH bit 7 − − 6 − − 5 − − 4 − − 3 − − 2 − − 1 − − 0 DIRECT R/W CDMR 初期値 XXXXXXX0B R/W : リード / ライト可能 X : 不定値 - : 未定義 ■ CAN ダイレクトモードレジスタの内容 表 23.15-1 CAN ダイレクトモードレジスタの DIRECT ビット機能 ビット名 bit7 ~ bit1 bit0 未定義 DIRECT 機能 - クロック変調が禁止のときは , このレジスタに "1" を書き込んでくだ さい。これにより , CAN コントローラは変調クロックとの同期をス キップし , CAN と CPU 間での通信を可能な限りの速度で実施しま す。 同期変調システムクロックと非変調 CAN クロックを目的としてク ロック変調を許可にする場合は , このビットに "0" を書き込まなけれ ばなりません。 509 第 23 章 CAN コントローラ 23.16 CAN コントローラの使用上の注意 CAN コントローラの使用は , 下記の点に注意してください。 ■ BVAL ビットによるメッセージバッファ禁止時の注意 (-H 品 , MB90F394H, MB90V390H など ) メッセージバッファが禁止状態で , CAN コントローラが CAN 通信に参加している状態 (CSR: HALT ビットの読出し値が "0" で , CAN コントローラがメッセージを送信可能な 状態 ) であれば , BVAL ビットにより CAN コントローラの誤動作の影響を受ける可能 性があります。本注意事項は , この現象を回避する方法を説明しています。 ● 発生条件 以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送信動作が正常に行わ れない可能性があります。 • CAN コントローラが CAN 通信に参加している状態 , つまり , CSR: HALT ビットの 読出し値が "0" で , CAN コントローラがメッセージを送信可能な状態 • BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容 の読出しの処理を行う場合 ● 処置 送信要求の抑止をする場合の操作 BVAL ビットを転送要求の抑制に使用しないでください。代わりに TCAN ビットを 使用してください。 送信メッセージを構成する場合の操作 送信メッセージの構成を行うために , ID レジスタ (IDR) や IDE レジスタ (IDER) の 内容を変更する場合は , メッセージバッファ有効レジスタの BVAL ビットにより メッセージバッファを無効にする必要があります。 この場合 , TREQ ビットが "0" かどうかチェックした後か , 前メッセージの通信が完 了 (TC = 1) した後に BVAL ビットをリセットしてください バッファが禁止であることが必要なケースでは , 転送リクエストのペンディングが ないことを守ってください。このため , 転送中かどうか下記のようにテストする前 に BVALx ビットをリセットしないでください。 a) 必要に応じて転送要求をキャンセル (TCANx=1;) b) ポーリングか割込みで転送終了を待つ (TREQx = 1 の間 ) 転送バッファが禁止になった (BVALx=0) 後でのみリセット可能です。 (a の注意事項 ) バッファの転送が既に開始されているときは , キャンセル要求は無 視され , バッファの禁止は転送が完了するまで遅延します。 510 第 23 章 CAN コントローラ ■ BVAL ビットによるメッセージバッファ禁止時の注意 (-H 品以外 , MB90V390HA/HB など ) メッセージバッファが禁止状態で , CAN コントローラが CAN 通信に参加している状態 (CSR: HALT ビットの読出し値が "0" で , CAN コントローラがメッセージを送信可能な 状態 ) であれば , BVAL ビットにより CAN コントローラの誤動作の影響を受ける可能 性があります。本注意事項は , この現象を回避する方法を説明しています。 ● 発生条件 以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送信動作が正常に行わ れない可能性があります。 • CAN コントローラが CAN 通信に参加している状態 , つまり , CSR: HALT ビットの 読出し値が "0" で , CAN コントローラがメッセージを送信可能 / 受信可能な状態 • BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容 の読出し / 書込みの処理を行う場合 ● 処置 受信メッセージバッファの再構成をする場合の操作 CAN コントローラが CAN 通信に関与している場合 (CSR:HALT ビットの読出し値= 0), ID, AMS, AMR0/AMR1 レジスタ設定によってメッセージバッファを再構成する ために , 下記の 2 つの動作のうち , いずれか 1 つを行ってください。 - HALT ビットを使用 HALT ビットに "1" を書き込み , 結果が "1" であることを確認するために読み出 してください。その後 , ID/AMS/AMR0/AMR1 レジスタの設定を変更してくださ い。 - メッセージバッファ 0 を使用しない メッセージバッファ 0 を使用しないでください。つまり , メッセージバッファを 禁止し (BVAL0 = 0), 割込み受信を禁止し (RIE0 = 0), 送信を要求しないでくだ さい (TREQ0 = 0)。 受信メッセージを処理する場合の操作 次メッセージの上書きを避けるための BVAL ビットによる受信禁止を使用しないで ください。上書きが行われたかどうかは , ROVR ビットを使用して確認してくださ い。詳細は「23.6.16 受信オーバランレジスタ (ROVRR)」と「23.12 メッセージバッ ファ (x) による受信方法」を参照してください。 送信要求の抑止をする場合の操作 BVAL ビットを転送要求の抑制に使用しないでください。代わりに TCAN ビットを 使用してください。 511 第 23 章 CAN コントローラ 送信メッセージを構成する場合の操作 送信メッセージの構成を行うために , ID レジスタ (IDR) や IDE レジスタ (IDER) の 内容を変更する場合は , メッセージバッファ有効レジスタの BVAL ビットにより メッセージバッファを無効にする必要があります。 この場合 , TREQ ビットが "0" かどうかチェックした後か , 前メッセージの通信が完 了 (TC = 1) した後に BVAL ビットをリセットしてください バッファが禁止であることが必要なケースでは , 転送リクエストのペンディングが ないことを守ってください。このため , 転送中かどうか下記のようにテストする前 に BVALx ビットをリセットしないでください。 a) 必要に応じて転送要求をキャンセル (TCANx=1;) b) ポーリングか割込みで転送終了を待つ (TREQx = 1 の間 ) 転送バッファが不可になった (BVALx=0) 後でのみリセット可能です。 (a の注意事項 ) バッファの転送が既に開始されているときは , キャンセル要求は無 視され , バッファの禁止は転送が完了するまで遅延します。 512 第 24 章 ステッピングモータ コントローラ ステッピングモータコントローラの機能と動作に ついて説明します。 24.1 ステッピングモータコントローラの概要 24.2 ステッピングモータコントローラのレジスタ 24.3 ステッピングモータコントローラ使用上の注意 513 第 24 章 ステッピングモータ コントローラ ステッピングモータコントローラの概要 24.1 ステッピングモータコントローラは 2 個の PWM パルス発生器 , 4 個のモータドライ バおよび対応するセレクタロジックから構成されています。 4 個のモータドライバは , 高出力駆動能力があり , 2 個のモータコイルの 4 個の端部 に直接接続できます。PWM パルス発生器とセレクタロジックを組み合わせて , モー タの回転を制御するように設計されています。同期機構により 2 個の PWM の同期 動作が確かなものとなります。 MB90390 シリーズは , ステッピングモータコントローラを 6 つに分けて供給します。 ■ ステッピングモータコントローラのブロックダイヤグラム 図 24.1-1 ステッピングモータコントローラのブロックダイヤグラム マシンクロック OE1 CK プリスケーラ EN P1 PWM1P0 セレクタ PWM1パルス発生器 PWM1M0 PWM P0 PWM1コンペアレジスタ PWM1選択レジスタ OE2 CK CE EN 出力許可 PWM2P0 セレクタ PWM2パルス発生器 PWM2M0 PWM ロード PWM2コンペアレジスタ 514 出力許可 BS PWM2選択レジスタ 第 24 章 ステッピングモータ コントローラ 24.2 ステッピングモータコントローラのレジスタ ステッピングモータコントローラのレジスタには次の 5 種類があります。 • PWM 制御 n レジスタ (PWCn) • PWM1 コンペア n レジスタ (PWC1n) • PWM2 コンペア n レジスタ (PWC2n) • PWM1 選択レジスタ (PWS1n) • PWM2 選択レジスタ (PWS2n) ■ ステッピングモータコントローラのレジスタ 図 24.2-1 ステッピングモータコントローラレジスタ一覧 bit 7 アドレス: SMC0: 000062H OE2 SMC1: 000064H R/W SMC2: 000066H SMC3: 000068H SMC4: 00006AH SMC5: 00006CH bit 7 6 OE1 R/W 5 P1 R/W 4 P0 R/W 3 CE R/W 2 − − 1 − − 予約 R/W 6 5 4 3 2 1 0 SMC0: 003550H SMC1: 003554H SMC2: 003558H SMC3: 00355CH SMC4: 003560H SMC5: 003564H D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W D7 R/W bit15 SMC0: 003551H SMC1: 003555H SMC2: 003559H SMC3: 00355DH SMC4: 003561H SMC5: 003565H SMC0: 003552H SMC1: 003556H SMC2: 00355AH SMC3: 00355EH SMC4: 003562H SMC5: 003566H 14 13 12 11 10 9 8 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W bit 7 6 5 4 3 2 1 0 − − − − P2 R/W P1 R/W P0 R/W M2 R/W M1 R/W M0 R/W D7 R/W bit15 SMC0: 003553H SMC1: 003557H SMC2: 00355BH SMC3: 00355FH SMC4: 003563H SMC5: 003567H 0 − − 14 13 12 11 10 9 8 BS R/W P2 R/W P1 R/W P0 R/W M2 R/W M1 R/W M0 R/W PWCn 初期値 00000XX0B PWC1n ( 下位 ) 初期値 XXXXXXXXB PWC2n ( 上位 ) 初期値 XXXXXXXXB PWS1n ( 下位 ) 初期値 XX000000B PWS2n ( 上位 ) 初期値 X0000000B n = 0, 1, 2, 3, 4, 5 R/W : リード / ライト可能 X : 未定値 : 不定 515 第 24 章 ステッピングモータ コントローラ 24.2.1 PWM 制御 0 レジスタ PWM 制御 0 レジスタは , ステッピングモータコントローラの起動・停止 , 割込みの 制御や外部出力端子などの設定を行います。 ■ PWM 制御 0 レジスタ 図 24.2-2 PWM 制御 0 レジスタの構成 bit 7 アドレス : SMC0: 000062 H SMC1: 000064 H SMC2: 000066 H SMC3: 000068 H SMC4: 00006AH SMC5: 00006CH OE2 6 5 4 3 2 1 OE1 P1 P0 CE - - - - R/W R/W R/W R/W R/W 0 予約 R/W PWCn 初期値 00000XX0B bit 0 予約ビット 予約 0 1 これは予約ビットです。 常に "0" を書き込んでください。 bit 4 カウント許可ビット CE 0 PWM ジェネレータ停止 1 PWM ジェネレータ動作 bit 5 P1 bit 4 動作クロック選択ビット P0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック bit 6 OE1 出力許可 1 ビット 0 汎用端子で出力 1 PWM1Pn, PWM1Mn 出力許可 bit 7 OE2 R/W : リード / ライト可能 X : 不定 : 未定義 : 初期値 出力許可 2 ビット 0 汎用端子で出力 1 PWM1Pn, PWM1Mn 出力許可 n = 0, 1, 2, 3, 4, 5 ■ パルス幅制御レジスタ [bit7] OE2: 出力許可 2 ビット 本ビットが "1" にセットされたとき , 外部端子は PWM2Pn および PWM2Mn として 割り当てられます。その他の場合にはそれらを汎用 I/O として使用できます。 [bit6] OE1: 出力許可 1 ビット 本ビットが "1" にセットされたとき , 外部端子は PWM1Pn および PWM1Mn として 割り当てられます。その他の場合にはそれらを汎用 I/O として使用できます。 516 第 24 章 ステッピングモータ コントローラ [bit5, bit4] P1, P0: 動作クロック選択ビット 本ビット群は PWM パルス発生器に対するクロック入力信号を指定します。 クロック入力 P1 P0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック [bit3] CE: カウント許可ビット 本ビットは PWM パルス発生器の動作を許可します。本ビットが "1" にセットされ たとき , PWM パルス発生器はそれらの動作を開始します。PWM2 パルス発生器は PWM1 パルス発生器の 1 マシンクロックサイクル後にスタートすることに注意して ください。これは出力ドライバからのスイッチングノイズを減少させるのを助ける ものです。 [bit2, bit1] 不定 [bit0] 予約ビット 予約ビットです。本ビットには必ず "0" を書き込んでください。 517 第 24 章 ステッピングモータ コントローラ 24.2.2 PWM1 および PWM2 コンペアレジスタ PWM1 および PWM2 の 2 つの 8 ビットコンペアレジスタの内容は , PWM パルスの 幅を決定するものです。記憶された "00H" の値は PWM のデューティが 0% である ことを表し , "FFH" は 99.6% のデューティを表します。 ■ PWM1 および PWM2 コンペアレジスタ PWM1 および PWM2 コンペアレジスタは , 任意の時点でアクセスできますが , 変更さ れた値はPWM2選択レジスタのBSビットが"1"にセットされた後における現在のPWM サイクルの終わりにパルス幅に反映されます。 図 24.2-3 PWM1 および PWM2 コンペアレジスタ bit 7 SMC0: 003550H D7 SMC1: 003554H R/W SMC2: 003558H SMC3: 00355CH SMC4: 003560H SMC5: 003564H bit15 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W PWC1n ( 下位 ) 初期値 XXXXXXXXB 14 13 12 11 10 9 8 SMC0: 003551H SMC1: 003555H SMC2: 003559H SMC3: 00355DH SMC4: 003561H SMC5: 003565H D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W PWC2n ( 上位 ) 初期値 XXXXXXXXB D7 R/W 図 24.2-4 デューティサイクル設定の例 1つのPWMサイクル 256入力クロックサイクル レジスタ値 00H 80H 128入力クロックサイクル FFH 255入力クロックサイクル 518 第 24 章 ステッピングモータ コントローラ 24.2.3 PWM1 および PWM2 選択レジスタ PWM1 および PWM2 選択レジスタは , ステッピングモータコントローラの外部端子 の出力が "0", "1", PWM パルスおよびハイインピーダンスかを選択します。 ■ PWM1 選択レジスタ 図 24.2-5 PWM1 選択レジスタ構成 アドレス : SMC0: 003552 H SMC1: 003556 H SMC2: 00355AH SMC3: 00355EH SMC4: 003562 H SMC5: 003566 H bit 7 6 5 4 3 2 1 0 - - P2 - - R/W R/W R/W R/W R/W R/W PWS1n P1 P0 M2 M1 M0 初期値 X X 0 0 0 0 00 B bit 2 bit 1 M1 出力選択ビット M1 M0 0 0 0 PWM1Mn = "L" 0 0 1 0 1 X PWM1Mn = "H" PWM パルス 1 X X bit 5 R/W : リード / ライト可能 : 不定 : 初期値 bit 0 M2 bit 4 ハイインピーダンス bit 3 P1 出力選択ビット P2 P1 P0 0 0 0 PWM1Pn = "L" 0 0 1 0 1 X PWM1Pn = "H" PWM パルス 1 X X ハイインピーダンス n = 0, 1, 2, 3, 4, 5 519 第 24 章 ステッピングモータ コントローラ ■ パルス幅モジュレータ 1 選択レジスタ (PWS1n) の内容 表 24.2-1 PWM1 選択レジスタの各ビットの機能 ビット名 bit7, bit6 機能 不定 ─ 本ビット群は PWM1Pn における出力信号を選択するものです。 bit5 ~ bit3 P2 ~ P0: 出力 P 選択ビット P2 P1 P0 PWM1Pn 0 0 0 "L" 0 0 1 "H" 0 1 X PWM パルス 1 X X ハイインピーダンス 本ビット群は PWM1Mn における出力信号を選択するものです。 bit2 ~ bit0 520 M2 ~ M0: 出力 M 選択ビット M2 M1 M0 PWM1Mn 0 0 0 "L" 0 0 1 "H" 0 1 X PWM パルス 1 X X ハイインピーダンス 第 24 章 ステッピングモータ コントローラ ■ PWM2 選択レジスタ アドレス : SMC0: 003553 H SMC1: 003557 H SMC2: 00355BH SMC3: 00355F H SMC4: 003563 H SMC5: 003567 H bit 15 14 13 12 11 10 9 8 BS P2 P1 P0 M2 M1 M0 PWS2n - R/W R/W R/W R/W R/W R/W R/W 初期値 X 0 0 0 0 0 0 0B bit 10 bit 9 bit 8 M2 出力選択ビット M2 M1 M0 0 0 0 PWM2Mn = "L" 0 0 1 0 1 X PWM2Mn = "H" PWM パルス 1 X X bit 13 bit 12 bit 11 ハイインピーダンス P2 出力選択ビット P2 P1 P0 0 0 0 PWM2Pn = "L" 0 0 1 0 1 X PWM2Pn = "H" PWM パルス 1 X X ハイインピーダンス bit 14 BS 0 R/W : リード / ライト可能 : 不定 : 初期値 1 アップデートビット - パルスジェネレータ , セレクタが PWM サイクル の終端でレジスタ内容をロード n = 0, 1, 2, 3, 4, 5 521 第 24 章 ステッピングモータ コントローラ ■ パルス幅モジュレータ 2 選択レジスタ (PWS2n) の内容 表 24.2-2 PWM2 選択レジスタの各ビットの機能 ビット名 bit15 bit14 機能 不定 BS: 書換えビット ─ 本ビットは PWM 出力に対する設定を同期するために用意されてい ます。本ビットがセットされるまで , 2 個のコンペアレジスタおよ び 2 個の選択レジスタに対して行われた変更は出力信号には反映さ れません。 本ビットが "1" にセットされたとき , PWM パルス発生器およびセ レクタはレジスタ内容を現在の PWM サイクルの終わりでロードし ます。BS ビットは次の PWM サイクルの始めに自動的に "0" にリ セットされます。もし , BS ビットがこの自動リセットと同時にソ フトウェアにより "1" にセットされると , BS ビットは "1" にセット され ( すなわち変更されないままであり ), 自動リセットは解除さ れます。 本ビット群は PWM2Pn における出力信号を選択するものです。 bit13 ~ bit11 P2 ~ P0: 出力 P 選択 ビット P2 P1 P0 PWM2Pn 0 0 0 "L" 0 0 1 "H" 0 1 X PWM パルス 1 X X ハイインピーダンス 本ビット群は PWM2Mn における出力信号を選択するものです。 bit10 ~ bit8 522 M2 ~ M0: 出力 M 選択 ビット M2 M1 M0 PWM2Mn 0 0 0 "L" 0 0 1 "H" 0 1 X PWM パルス 1 X X ハイインピーダンス 第 24 章 ステッピングモータ コントローラ 24.3 ステッピングモータコントローラ使用上の注意 ステッピングモータコントローラを使用する場合の注意点を示します。 ■ PWM 設定値を変更する場合の注意 PWM コンペアレジスタ 1(PWC1n), PWM コンペアレジスタ 2(PWC2n), PWM 選択レジ スタ 1(PWS1n) および PWM 選択レジスタ 2(PWS2n) は常にアクセスされます。PWM の "H" 幅または PWM 出力の設定を変更する場合 , 設定値をこれらのレジスタに書き込 んでから , PWM 選択レジスタ 2 の BS ビットを "1" に設定してください ( または同時に 実行してください )。 BS ビットを "1" に設定すると , 新しい設定値が現在の PWM サイクルの終了時に有効 になり , BS ビットは自動的にクリアされます。 BS ビットを "1" に設定するのと同時に BS ビットを PWM サイクルの終了時にリセッ トする場合 , 書込み "1" が優先され , BS ビットのリセットが解除されます。 523 第 24 章 ステッピングモータ コントローラ 524 第 25 章 サウンドジェネレータ サウンドジェネレータの機能と動作について説明 します。 25.1 サウンドジェネレータの概要 25.2 サウンドジェネレータのレジスタ 525 第 25 章 サウンドジェネレータ 25.1 サウンドジェネレータの概要 サウンドジェネレータは , サウンド制御レジスタ , 周波数データレジスタ , 振幅デー タレジスタ , デクリメントグレードレジスタ , トーンカウントレジスタ , PWM パル ス発生器 , 周波数カウンタ , デクリメントカウンタおよびトーンパルスカウンタから 構成されています。 ■ サウンドジェネレータのブロックダイヤグラム 図 25.1-1 に , サウンドジェネレータのブロックダイヤグラムを示します。 図 25.1-1 サウンドジェネレータのブロックダイヤグラム クロック入力 プリスケーラ S1 S0 8ビットPWM パルス発生器 CO EN PWM CI CO EN リロード 振幅データ レジスタ トグル フリップフロップ D Q EN 周波数 カウンタ リロード 1/d 周波数データ レジスタ DEC DEC デクリメント カウンタ CI CO EN SGA OE1 デクリメント グレードレジスタ トーンパルス カウンタ 混合 TONE OE1 SGO OE2 OE2 CI CO EN トーンカウント レジスタ INTE INT ST IRQ 526 第 25 章 サウンドジェネレータ 25.2 サウンドジェネレータのレジスタ サウンドジェネレータのレジスタには , 次の 5 種類があります。 • サウンド制御レジスタ (SGCR) • 周波数データレジスタ (SGFR) • 振幅データレジスタ (SGAR) • デクリメントグレードレジスタ (SGDR) • トーンカウントレジスタ (SGTR) ■ サウンドジェネレータのレジスタ 図 25.2-1 サウンドジェネレータレジスタ一覧 アドレス: 00005EH 00005FH 003546H 6 S0 R/W 5 TONE R/W 4 OE2 R/W 3 OE1 R/W 2 INTE R/W 1 INT R/W 0 ST R/W bit15 14 13 12 11 10 9 8 Reserved R/W − − − − − BUSY DEC − − − − − R/W R/W bit 7 D7 R/W 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W SGFR 初期値 XXXXXXXXB SGAR 初期値 XXXXXXXXB bit15 003547H D7 R/W bit 7 003548H D7 R/W bit15 003549H SGCR ( 下位 ) 初期値 00000000B bit 7 S1 R/W D7 R/W 14 13 12 11 10 9 8 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W 6 5 4 3 2 1 0 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W 14 13 12 11 10 9 8 D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W SGCR ( 上位 ) 初期値 0XXXXX00B SGDR 初期値 XXXXXXXXB SGTR 初期値 XXXXXXXXB R/W : リード / ライト可能 X : 未定値 : 不定 527 第 25 章 サウンドジェネレータ サウンドジェネレータ制御レジスタ 25.2.1 サウンド制御レジスタは , サウンドジェネレータの割込みの制御や外部出力端子な どの設定を行い , 動作状態の制御を行います。 ■ サウンドジェネレータ制御レジスタ (SGCR) ( 下位 ) 図 25.2-2 サウンドジェネレータ制御レジスタ ( 下位バイト ) の構成 bit 7 6 5 4 3 2 1 0 INT ST アドレス : 00005EH S1 S0 TONE OE2 OE1 INTE SGCR (下位) 初期値 0 0 0 0 0 0 0 0B R/W R/W R/W R/W R/W R/W R/W R/W bit 0 ST 0 1 スタートビット ストップ動作 スタート動作 bit 1 INT 0 1 読出し時 割込みなし 割込み要求 割込みビット 書込み時 割込みクリア 効果なし bit 2 割込み許可ビット INTE 0 1 割込み禁止 割込み許可 bit 3 OE1 0 1 アンプ出力許可ビット 汎用端子 SGA 出力許可 bit 4 OE2 0 1 サウンド出力許可ビット 汎用端子 SGO 出力許可 bit 5 TONE 0 1 bit 7 R/W : リード / ライト可能 : 初期値 528 トーン出力ビット トーン, PWM ミックス SGO 出力 bit 6 S1 S0 0 0 0 1 1 0 1 1 動作クロック選択ビット マシンクロック 1/2 マシンクロック 1/4 マシンクロック 1/8 マシンクロック 第 25 章 サウンドジェネレータ ■ サウンドジェネレータ制御レジスタ (SGCR) ( 下位 ) の内容 [bit7, bit6] S1, S0: 動作クロック選択ビット 本ビット群はサウンドジェネレータに対するクロック入力信号を指定するもので す。 クロック入力 S1 S0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック [bit5] TONE: トーン出力ビット 本ビットが "1" にセットされたとき , SGO 信号はトグルフリップ - フロップから単 純な矩形波形 ( トーンパルス ) になります。その他の場合には , SGO 信号トーンパ ルスと PWM パルスとの混合 (AND ロジック ) 信号となります。 [bit4] OE2: サウンド出力許可ビット 本ビットが "1" にセットされたとき , 外部端子は SGO 出力として割り当てられます。 その他の場合には端子は汎用に使用できます。SGO 出力を許可するにはポート方向 レジスタの対応ビットも "1" にセットしなければなりません。 [bit3] OE1: 振幅出力許可ビット 本ビットが "1" にセットされたとき , 外部端子は SGA 出力として割り当てられます。 その他の場合には端子は汎用に使用できます。SGA 出力を許可するには , ポート方 向レジスタの対応ビットも "1" にセットしなければなりません。 SGA 信号は PWM パルス発生器からの PWM パルスでありサウンドの振幅を表して います。 [bit2] INTE: 割込み許可ビット 本ビットはサウンドジェネレータの割込み信号を許可するものです。本ビットが"1" であり INT ビットが "1" にセットされたとき , サウンドジェネレータは割込みを信 号で知らせます。 [bit1] INT: 割込みビット トーンカウントレジスタおよびデクリメントグレードレジスタにより指定された トーンパルスの個数がトーンパルスカウンタによりカウントされたときに本ビッ トは "1" にセットされます。 本ビットは "0" を書き込むことにより "0" にリセットされます。"1" を書き込んでも 効果はなく , リードモディファイライト (RMW) 系命令は常に "1" を読み取る結果と なります。 529 第 25 章 サウンドジェネレータ [bit0] ST: 開始ビット 本ビットはサウンドジェネレータの動作を開始させるためのものです。本ビットが "1" の間にサウンドジェネレータはその動作を行います。 本ビットが "0" にリセットされたとき , サウンドジェネレータは現在のトーンサイ クルの終わりにその動作を停止します。BUSY ビットはサウンドジェネレータが完 全に停止したかどうかを示します。 本ビットが "0" のときに "1" を書き込むと , 周波数データレジスタ , 振幅データレジ スタ , デクリメントグレードレジスタ , トーンカウントレジスタの値は , それぞれカ ウンタにロードされます。 530 第 25 章 サウンドジェネレータ ■ サウンドジェネレータ制御レジスタ ( 上位 ) 図 25.2-3 サウンドジェネレータ制御レジスタ ( 上位バイト ) アドレス : 00005FH bit 15 14 13 12 11 10 予約 - - - - - R/W - - - - - 9 8 BUSY DEC R R/W SGCR (上位) 初期値 0 X X X X X 0 0B bit 8 DEC 0 1 オートデクリメント許可ビット オートデクリメント禁止 オートデクリメント許可 bit 9 BUSY 0 1 ビジービット 動作完了 ジェネレータビジー bit 15 予約 R/W : リード / ライト可能 R : リードオンリ : 未定義 : 初期値 0 1 予約ビット 常に "0" を書き込んでください。 ■ サウンドジェネレータ制御レジスタ (SGCR) ( 上位 ) の内容 [bit15] 予約ビット 予約ビットです。本ビットには必ず "0" を書き込んでください。 [bit14 ~ bit10] 未定義ビット [bit9] BUSY: ビジービット 本ビットはサウンドジェネレータが動作しているかどうかを示すものです。本ビッ トは ST ビットが "1" にセットされると同時に "1" にセットされます。また , 本ビッ トは ST ビットが "0" にリセットされて 1 つのトーンサイクルの終わりに動作が完 了したときに "0" にリセットされます。本ビットに書込み命令を行っても効果はあ りません。 [bit8] DEC: 自動デクリメント許可ビット DEC ビットはデクリメントグレードレジスタと組み合わされたサウンドの自動デ グラデーションのために用意されたものです。 もし , 本ビットが "1" にセットされると , デクリメントグレードレジスタにより指定 されたトグルフリップ - フロップからのトーンパルスの個数がデクリメントカウン タによりカウントされるごとに , 振幅データレジスタに記憶された値は 1 だけデク リメントされます。 531 第 25 章 サウンドジェネレータ 25.2.2 周波数データレジスタ 周波数データレジスタは周波数カウンタに対するリロード値を記憶します。記憶さ れた値はサウンド ( またはトグルフリップ - フロップからのトーン信号 ) の周波数を 表します。レジスタ値は周波数カウンタのアンダフローかつ PWM パルス生成カウ ンタのアンダフローでカウンタ内にリロードされます。 ■ 周波数データレジスタ アドレス 003546H bit 7 D7 R/W 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W SGFR 初期値 XXXXXXXXB R/W: リード / ライト可能 図 25.2-4 に , トーン信号とレジスタ値との間の関係を示します。 図 25.2-4 トーン信号とレジスタ値との間の関係 1つのトーンサイクル トーン信号 (レジスタ値+1)× 1PWMサイクル (レジスタ値+1)× 1PWMサイクル 動作中にレジスタ値を変更すると変更のタイミングによっては 50% のデューティサイ クルに変わることもあり得ます。 532 第 25 章 サウンドジェネレータ 25.2.3 振幅データレジスタ 振幅データレジスタは PWM パルス発生器に対するリロード値を記憶します。レジ スタ値はサウンドの振幅を表します。レジスタ値はトーン信号の立下りで PWM パ ルス発生器にリロードされます。 ■ 振幅データレジスタ アドレス 003547H bit15 D7 R/W 14 D6 R/W 13 D5 R/W 12 D4 R/W 11 D3 R/W 10 D2 R/W 9 D1 R/W 8 D0 R/W SGAR 初期値 XXXXXXXXB R/W: リード / ライト可能 DEC ビットが "1" でありデクリメントカウンタがそのリロード値に達したとき , この レジスタ値は 1 だけデクリメントされますが , レジスタ値が "00H" に達したときにはさ らなるデクリメントは行われません。ただし , サウンドジェネレータは ST ビットがク リアされるまでその動作を継続します。 図 25.2-5 に , レジスタ値と PWM パルスとの間の関係を示します。 図 25.2-5 レジスタ値と PWM パルスとの間の関係 1つのPWMサイクル 256入力クロックサイクル レジスタ値 00H 1つの入力クロックサイクル 80H 129入力クロックサイクル FEH 255入力クロックサイクル FFH 256入力クロックサイクル レジスタ値が "FFH" にセットされたときに PWM 信号は常に "1" となります。 533 第 25 章 サウンドジェネレータ 25.2.4 デクリメントグレードレジスタ デクリメントグレードレジスタはデクリメントカウンタに対するリロード値を記憶 するものです。これらは振幅データレジスタ内の記憶値を自動的にデクリメントす るために用意されたものです。レジスタ値はデクリメントカウンタのアンダフロー かつトーン信号の立下りでカウンタ内にリロードされます。 ■ デクリメントグレードレジスタ アドレス 003548H bit 7 D7 R/W 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W SGDR 初期値 XXXXXXXXB R/W: リード / ライト可能 DEC ビットが "1" でありデクリメントカウンタがトーンパルスをリロード値までカウ ントしたとき, 振幅データレジスタはトーンサイクルの終わりに1だけデクリメントさ れます。 この動作により , CPU の介在の回数を少なくしてサウンドの自動的なデグラデーショ ンが実現されます。 このレジスタにより指定されたトーンパルスの数は " レジスタ値 +1" であることに注 意してください。デクリメントグレードレジスタが "00H" にセットされたときにデク リメント動作がトーンサイクルごとに行われます。 534 第 25 章 サウンドジェネレータ 25.2.5 トーンカウントレジスタ トーンカウントレジスタはトーンパルスカウンタに対するリロード値を記憶するも のです。トーンパルスカウンタはトーンパルスの数 ( またはデクリメント動作の回 数 ) を蓄積して , それがリロード値に達したときに INT ビットをセットします。それ らは割込みの頻度を減少することを目的としています。レジスタ値はトーンパルス カウンタのアンダフローかつデクリメントカウンタのアンダフローかつトーン信号 の立下りでカウンタ内にリロードされます。 ■ トーンカウントレジスタ アドレス 003549H bit15 D7 R/W 14 D6 R/W 13 D5 R/W 12 D4 R/W 11 D3 R/W 10 D2 R/W 9 D1 R/W 8 D0 R/W SGTR 初期値 XXXXXXXXB R/W: リード / ライト可能 トーンパルスカウンタのカウント入力はデクリメントカウンタからのキャリアウト信 号に接続されています。トーンカウントレジスタが "00H" にセットされたときにトー ンパルスカウンタはデクリメントカウンタからのキャリアウトごとに INT ビットを セットします。このため , 蓄積されたトーンパルスの数は , (( デクリメントグレードレジスタ ) +1) × (( トーンカウントレジスタ ) +1) となります。 すなわち , 両レジスタが "00H" にセットされたときに INT ビットはトーンサイクルご とにセットされます。 535 第 25 章 サウンドジェネレータ 536 第 26 章 アドレス一致検出機能 アドレス一致検出の機能と動作について説明しま す。 26.1 アドレス一致検出機能の概要 26.2 アドレス一致検出機能のレジスタ 26.3 アドレス一致検出機能の動作 26.4 アドレス一致検出機能の使用例 537 第 26 章 アドレス一致検出機能 26.1 アドレス一致検出機能の概要 アドレスがアドレス検出レジスタに設定された値と等しい場合に , CPU に読み出さ れる命令コードを強制的に INT9 命令のコード (01H) に置き換えます。その結果 , CPU が設定された命令を実行するときに INT9 命令を実行します。INT9 割込みルー チンで処理を行うことにより , アドレス一致検出機能を実現できます。 アドレス検出レジスタは 5 本用意されており , レジスタごとに割込み許可ビットが あります。アドレス検出レジスタに設定された値とアドレスが一致して , かつ割込 み許可ビットが "1" の場合 , CPU に読み出される命令コードを強制的に INT9 命令 のコードに置き換えます。 ■ アドレス一致検出機能のブロックダイヤグラム 図 26.1-1 アドレス一致検出機能のブロックダイヤグラム アドレス検出レジスタ 許可ビット F2MC-16LXバス 538 比較 アドレスラッチ INT9 命令 F2MC-16LX CPUコア 第 26 章 アドレス一致検出機能 26.2 アドレス一致検出機能のレジスタ アドレス一致検出機能には , 次の 2 種類のレジスタがあります。 • プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5) • プログラムアドレス検出制御 / ステータスレジスタ (PACSR0, PACSR1) ■ プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5) プログラムアドレス検出レジスタは , 各レジスタに書き込まれた値とアドレスを比較 します。一致した場合は , PACSR の対応する割込み許可ビットが "1" の場合 , CPU に 対して INT9 命令の発生を要求します。 対応する割込み許可ビットが "0" の場合は , 一致していても何も行いません。 図 26.2-1 プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5) プログラムアドレス検知レジスタ PADR0 0035E2H/0035E1H/0035E0H PADR1 0035E5H/0035E4H/0035E3H PADR3 0035F2H/0035F1H/0035F0H PADR4 0035F5H/0035F4H/0035F3H PADR5 0035F8H/0035F7H/0035F6H バイト バイト バイト アクセス R/W R/W R/W R/W R/W 初期値 不定 不定 不定 不定 不定 表 26.2-1 に , PADR0, PADR1, PADR3 ~ PADR5 レジスタと PACSR0,PACSR1 レジスタ との対応を示します。 表 26.2-1 PADR0, PADR1, PADR3 ~ PADR5 レジスタと PACSR0, PACSR1 レジス タとの対応 アドレス検出レジスタ 割込み許可ビット PADR0 AD0E (bit1) PADR1 AD1E (bit3) PADR3 AD3E (bit1) PADR4 AD4E (bit3) PADR5 AD5E (bit5) ■ プログラムアドレス検出制御 / ステータスレジスタ (PACSR) プログラムアドレス検出制御 / ステータスレジスタ (PACSR) は , アドレス検出機能の 動作を制御します。 図 26.2-2 プログラムアドレス検出制御 / ステータスレジスタ (PACSR0/PACSR1) アドレス 00009EH アドレス 00003BH bit 7 6 5 4 Reserved Reserved Reserved Reserved R/W R/W R/W R/W bit15 3 AD1E R/W 2 Reserved R/W 1 AD0E R/W 0 Reserved R/W 14 13 12 11 10 9 8 Reserved Reserved Reserved AD3E R/W Reserved R/W AD4E R/W Reserved R/W AD5E R/W R/W R/W R/W PACSR0 初期値 00000000B PACSR1 初期値 00000000B R/W: リード / ライト可能 539 第 26 章 アドレス一致検出機能 [bit15, bit14] 予約ビット 本ビットは , 予約ビットです。PACSR1 を設定する前に , 必ず "0" を設定してくださ い。 [bit13] AD5E( アドレス検知レジスタ 1 許可 ) 本ビットは , PADR5 の動作許可ビットです。 このビットが "1" のとき PADR5 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 [bit12] 予約ビット 本ビットは , 予約ビットです。PACSR1 を設定するときは , 必ず "0" を設定してくだ さい。 [bit11] AD4E( アドレス検知レジスタ 1 許可 ) 本ビットは , PADR4 の動作許可ビットです。 このビットが "1" のとき PADR4 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 [bit10] 予約ビット 本ビットは , 予約ビットです。PACSR1 を設定するときは , 必ず "0" を設定してくだ さい。 [bit9] AD3E: アドレス検知レジスタ 1 許可 本ビットは PADR3 の動作許可ビットです。 このビットが "1" のとき , アドレスは PADR3 レジスタで比較されます。一致の場合 , INT9 命令が発行されます。 [bit8] 予約ビット 本ビットは予約ビットです。PACSR1 を設定する前にこのビットを "0" に設定して ください。 [bit7 ~ bit4] 予約ビット 本ビットは予約ビットです。PACSR0 を設定する前にこのビットを "0" に設定して ください。 [bit3] AD1E: アドレス検知レジスタ 1 許可 本ビットは , PADR1 の動作許可ビットです。 このビットが "1" のときに PADR1 レジスタとアドレスの比較を行い , 一致した場合 に CPU は INT9 命令を実行します。 [bit2] 予約ビット 本ビットは予約ビットです。PACSR0 を設定する前にこのビットを "0" に設定して ください。 [bit1] AD0E: アドレス検知レジスタ 0 許可 本ビットは , PADR0 の動作許可ビットです。 このビットが "1" のとき , アドレスは PADR0 レジスタで比較されます。一致の場合 , INT9 命令が発行されます。 [bit0] 予約ビット 本ビットは予約ビットです。PACSR0 を設定する前にこのビットを "0" に設定して ください。 540 第 26 章 アドレス一致検出機能 26.3 アドレス一致検出機能の動作 プログラムカウンタがアドレス一致検出レジスタと同じアドレスを指示している場 合は INT9 命令を実行します。INT9 命令ルーチンを処理することによってアドレス 一致検出機能を実現できます。 ■ アドレス一致検出機能の動作 アドレス検出レジスタは5本用意されており, レジスタごとにコンペア許可ビットがあ ります。アドレス検出レジスタに設定された値とプログラムカウンタの値が一致して , かつコンペア許可ビットが "1" の場合 , CPU は INT9 命令を実行します。 <注意事項> アドレス検出レジスタとプログラムカウンタの値が一致した場合は , 内部データバスの内 容が強制的に "01H" に変更されるので , INT9 命令を実行することになります。アドレス検 出レジスタの内容を変更する前には , コンペア許可ビットを必ず "0" にしてください。コ ンペア許可ビットが "1" になっている間に変更すると , 誤動作を引き起こす可能性があり ます。 541 第 26 章 アドレス一致検出機能 26.4 アドレス一致検出機能の使用例 図 26.4-1 にアドレス一致検出機能のシステム構成例を , 表 26.4-1 に E2PROM メモ リマップを示します。 ■ アドレス一致検出機能のシステム構成例 図 26.4-1 アドレス一致検出機能のシステム構成例 E2PROM MCU F2MC-16LX プルアップ抵抗 SIN ○ コネクタ(UART) 表 26.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 本体 ● 初期状態 E2PROM はすべて "0" とします。 ● パッチが必要となる場合 コネクタ (UART) を通して , MCU にパッチプログラムの本体およびプログラムアドレ スを転送します。MCU はその情報を E2PROM に書き込みます。 542 第 26 章 アドレス一致検出機能 ● リセットシーケンス MCU はリセット後 E2PROM の値を読み出します。パッチプログラムのバイト数が "0" でなかった場合は , パッチプログラムの本体が E2PROM から読み出され RAM に書き 込まれます。次に , MCU により PADR0 または PADR1 どちらか一方でパッチアドレス をセットし , コンペア許可ビットをセットします。再配置可能はパッチプログラムが望 まれる場合は , RAM 領域に対してパッチ済みプログラムの最初のアドレスを書き込む ことができます。この場合 , INT9 ルーチンがこのユーザ定義の RAM 領域を参照し , パッチ済みプログラムへ向けてジャンプします。 ● INT9 命令 割込みルーチンでは , スタックプログラムのカウンタの値を調べることにより , 割込み が発生するアドレスを知ることができます。割込みの最中にスタックへ押し込まれた 情報は破棄されます。 ■ プログラムパッチ処理例 図 26.4-2 プログラムパッチ処理例 000000H ③ 修正プログラム RAM プログラムアドレス検出レジスタ E2PROM ① プログラムアドレス検出設定 (リセットシーケンス) ・修正プログラムバイト数 ・割込み発生アドレス ・修正プログラム ROM ② ④ 異常プログラム FFFFFFH ①リセットシーケンスのプログラムアドレス検出設定と通常プログラムの実行 ②アドレス一致検出によるINT9割込み処理でRAMに展開した修正プログラムへ分岐 ③INT9処理の分岐による修正プログラムの実行 ④修正プログラムから分岐した元の通常プログラムの実行 543 第 26 章 アドレス一致検出機能 図 26.4-3 プログラムパッチ処理フロー図 リセット E2PROMの"0000H"を読み出す INT9 YES "0000H"=0(E2PROM) NO パッチプログラムへ JMP 000400H アドレスを読み出す "0001H"~"0003H"(E2PROM) ↓MOV PADR0(MCU) パッチプログラム実行 "000400H"~"000480H" パッチプログラムを読み出す パッチプログラム終了 JMP FF0050H "0010H"~"0090H"(E2PROM) ↓MOV "000400H"~"000480H"(MCU) コンペア許可 MOV PACSR,#02H 通常プログラム実行 NO PC=PADR0 YES INT9 FFFFFFH ROM FFFFH 0090H FF0050H FE0000H パッチプログラム 0010H 001100H プログラムアドレス中位:00 0002H RAM 000480H 000400H プログラムアドレス上位:FF 0001H 000100H パッチプログラムバイト数:80 544 スタック領域 RAM領域 プログラムアドレス下位:00 0003H 0000H 異常プログラム FF0000H E2PROM 000000H パッチプログラム RAM/レジスタ領域 I/O領域 第 27 章 ROM ミラー機能選択 モジュール ROM ミラー機能選択モジュールについて説明しま す。 27.1 ROM ミラー機能選択モジュールの概要 27.2 ROM ミラー機能選択レジスタ (ROMM) 545 第 27 章 ROM ミラー機能選択 モジュール 27.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールは , FF バンクに配置されている ROM 内のデータを 00 バンクへのアクセスで読み出せるように設定します。 ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 27.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム F2MC-16LXバス ROMミラー機能選択レジスタ アドレス領域 FFバンク 00バンク ROM 546 第 27 章 ROM ミラー機能選択 モジュール 27.2 ROM ミラー機能選択レジスタ (ROMM) ROM ミラー機能選択レジスタ (ROMM) は , アドレス "004000H" ~ "00FFFFH" 番地 を使用中にアクセスしないでください。 ■ ROM ミラー機能選択レジスタ (ROMM) 図 27.2-1 ROM ミラー機能選択レジスタ (ROMM) アドレス : 00006FH bit15 14 13 12 11 10 9 8 − − − − − − − − − − MS R/W (+) MI R/W − − R/W : リード / ライト可能 X : 不定 : 未定義 ROMM 初期値 XXXXXX+1B (+): MB90V390H: リードオンリ , "1" に固定 MB90F394H: 選択可能 , 初期値 "0" 表 27.2-1 ROM ミラーレジスタの各ビット機能 ビット名 bit15 ~ bit10 未定義 機能 "1": 32K バイト ROM ミラーサイズ (008000H ~ 00FFFFH) "0": 48K バイト ROM ミラーサイズ (004000H ~ 00FFFFH) bit9 MS: ミラーサイズ bit8 MI: ミラービット ( 注意事項 ) MB90V390H, MB90V390HA および MB90F390HB ではこのビットは "1" に固定され , 読出しのみ使用できます。MB90394HA および MB90F394H(A) では選択可能です。 "1" を書込み時には FF バンクの ROM のデータが 00 バンクでも読 み出せるようになります。"0" を書込み時には 00 バンクはこの機 能は働きません。 本ビットは , 書込みのみ可能です。 <注意事項> ROM ミラー機能を起動している場合 , "FF4000H"/"FF8000H" ~ "FFFFFFH" 番地のみ "004000H"/"008000H" ~ "00FFFFH" 番地にミラーされます。このため , "FF0000H" ~ "FF3FFFH"/"FF7FFFH" 番地は 00 バンクにミラーされません。 547 第 27 章 ROM ミラー機能選択 モジュール 548 第 28 章 3M ビット フラッシュメモリ 3M ビットフラッシュメモリの機能や動作について 説明します。 フラッシュメモリへのデータ書込み / 消去の方法に は , 下記の 3 とおりの方法があります。 • パラレルライタ • シリアル専用ライタ • プログラム実行による書込み / 消去 ここでは , " プログラム実行による書込み / 消去 " について説明します。 28.1 3M ビットフラッシュメモリの概要 28.2 フラッシュメモリ全体のブロックダイヤグラムと フラッシュメモリのセクタ構成 28.3 書込み / 消去モード 28.4 フラッシュメモリ制御ステータスレジスタ (FMCS) 28.5 フラッシュメモリ自動アルゴリズム起動方法 28.6 自動アルゴリズム実行状態の確認 28.7 フラッシュメモリ書込み / 消去の詳細説明 28.8 3M ビットフラッシュメモリ使用上の注意 28.9 フラッシュメモリにおけるリセットベクタアドレス 28.10 3M ビットフラッシュメモリのプログラム例 549 第 28 章 3M ビット フラッシュメモリ 28.1 3M ビットフラッシュメモリの概要 3M ビットフラッシュメモリは , CPU メモリマップ上の F8/F9 ~ FF バンクに配置さ れ , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU からの読出しアクセスおよびプログラムアクセスが可能です。フラッシュメモリへ の書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令 動作で行えます。このため , 内蔵 CPU の制御による実装状態での書換えが可能とな り , プログラムおよびデータの改善を効率よく行えます。 ■ 3M ビットフラッシュメモリの特長 • 自動プログラムアルゴリズム (Embedded AlogrithmTM*:MBM29LV200 と同様 ) • 消去一時停止 / 消去再開機能の搭載 • データポーリング , トグルビットによる書込み / 消去完了検出 • CPU 割込みによる書込み / 消去の完了検出 • セクタごとの消去が可能 ( セクタ組合せ自由 ) • 書込み / 消去回数 ( 最小 ) 10,000 回 *:Embedded Algorithm は Advanced Micro Devices 社の商標です。 <注意事項> マニュファクチャコードとデバイスコードの読出し機能はありません。また , これらの コードはコマンドによってもアクセスできません。 ■ フラッシュメモリ書込み / 消去の方法 フラッシュメモリは書込みと読出しを同時に行うことはできません。つまり , フラッ シュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上にあるプログ ラムを RAM に一度コピーし RAM 実行することで , フラッシュメモリからプログラム アクセスをせずに書込み動作だけを行うことが可能となります。 ■ フラッシュメモリのレジスタ ● フラッシュメモリ制御ステータスレジスタ (FMCS) bit 7 アドレス : 0000AEH 550 6 5 4 3 2 1 0 INTE RDYINT WE RDY Reserved Reserved Reserved Reserved (R/W) (R/W) (R/W) (R) (R/W) (R/W) (R/W) (R/W) 初期値 000X0000B 第 28 章 3M ビット フラッシュメモリ 28.2 フラッシュメモリ全体のブロックダイヤグラムと フラッシュメモリのセクタ構成 図 28.2-1 に , フラッシュメモリインタフェース回路付きのフラッシュメモリ全体の ブロックダイヤグラムを , 図 28.2-2 に , 3M ビットフラッシュメモリのセクタ構成を 示します。 ■ フラッシュメモリ全体のブロックダイヤグラム 図 28.2-1 フラッシュメモリ全体のブロックダイヤグラム フラッシュメモリ インタフェース回路 ポート0 ポート1 ポート2 ポート3 ポート4 ポート5 F 2 MC-16LX バス BYTE 3Mビットフラッシュメモリ BYTE CE CE OE OE WE WE AQ0~AQ18 AQ0~AQ18 DQ0~DQ15 DQ0~DQ15 INT RY/BY RY/BY RESET ライトイネーブル割込み信号 (対CPU) 外部リセット信号 RY/ BY ライトイネーブル信号 551 第 28 章 3M ビット フラッシュメモリ ■ 3M ビットフラッシュメモリのセクタ構成 図 28.2-2 に , 3M ビットフラッシュメモリのセクタ構成を示します。図中アドレスには , 各セクタの上位アドレスと下位アドレスを示します。 図 28.2-2 3M ビットフラッシュメモリのセクタ構成 ライタ アドレス* CPUアドレス SA8 (16 Kバイト) 7FFFFH FFFFFFH SA7 (8 Kバイト) 7BFFFH FFBFFFH SA6 (8 Kバイト) 79FFFH FF9FFFH SA5 (32 Kバイト) 77FFFH FF7FFFH SA4 (64 Kバイト) 6FFFFH FEFFFFH SA3 (64 Kバイト) 5FFFFH FDFFFFH 4FFFFH FCFFFFH SA2 (64 Kバイト) 3FFFFH FBFFFFH SA1 (64 Kバイト) 2FFFFH FAFFFF H SA0 (64 Kバイト) 1FFFFH F9FFFFH 0FFFFH 00000H F8FFFFH F80000H MB90F394H(A) 未使用 未使用 *: パラレルライタを使用してフラッシュメモリに書込み / 消去を行う際は , 必ずライタアドレ スを使用してください。 552 第 28 章 3M ビット フラッシュメモリ 28.3 書込み / 消去モード フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの 異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み / 消去を行え , その他モードでは , 内部バスを介して CPU から書込み / 消去を行えま す。モードの選択はモード外部端子で行います。 ■ フラッシュメモリモード リセット信号が発生中にモード端子を "111B" にセットすると CPU が停止します。フ ラッシュメモリインタフェース回路は直接ポート0, 1, 2, 3, 4, 5に接続しているので, 外 部端子から直接制御できます。このモードでは , MCU が外部端子中の標準フラッシュ メモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去を行 えます。 フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる すべての動作を使用できます。 ■ その他モード フラッシュメモリは , CPU メモリ空間の F8/F9 ~ FF バンクに配置されており , 通常の マスク ROM と同様にフラッシュメモリインタフェース回路を介して CPU から読出し アクセスおよびプログラムアクセスできます。 フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん だ付けされていても再書込みが可能です。 これらのモードでは , セクタプロテクト動作を実行することはできません。 <注意事項> フラッシュメモリへの書込み / 消去はすべてのマシンクロック周波数では指定されませ ん。データシートの交流規格を参照してください。 ■ フラッシュメモリの制御信号 表 28.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。 フラッシュメモリ制御信号と MBM29LV200 の外部端子にはほぼ 1 対 1 の対応関係が 存在します。セクタプロテクト動作で必要となる VID(12V) 端子は , MBM29LV200 にお ける A9,RESET,OE の代わりに MD0, MD1, MD2 となります。 フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ トのアクセスしか許可されません。DQ15 ~ DQ8 はサポートされていません。BYTE 端子は常に "0" にセットしてください。 553 第 28 章 3M ビット フラッシュメモリ 表 28.3-1 フラッシュメモリ制御信号 MB90F394H(A) MBM29LV200 端子番号 通常機能 フラッシュメモリモード 1 P30 AQ16 A15 2 P31 CE CE 3 P32 OE OE 4 P33 WE WE 5 P34 AQ17 A16 6 P35 AQ18 - 7 P36 BYTE BYTE 8 P37 RY/BY RY/BY 9 ~ 12 P40 ~ P43 AQ8 ~ AQ11 A7 ~ A10 18, 19 P46, P47 AQ12, AQ13 A11, A12 20, 21 P50, P51 AQ14, AQ15 A13, A14 89 MD0 MD0 A9 (VID) 88 MD1 MD1 RESET (VID) 87 MD2 MD2 OE (VID) 93 ~ 100 P00 ~ P07 DQ0 ~ DQ7 DQ0 ~ DQ7 101 ~ 104 P10 ~ P13 DQ8 ~ DQ11 DQ8 ~ DQ11 90 RST RESET RESET 109 ~ 112 P14 ~ P17 DQ12 ~ DQ15 DQ12 ~ DQ15 113 ~ 120 P20 ~ P27 AQ0 ~ AQ7 A-1, A0 ~ A6 <注意事項> 上記で述べられていないすべてのポート端子はプルアップ抵抗を介して VCC に接続して ください。 554 第 28 章 3M ビット フラッシュメモリ 28.4 フラッシュメモリ制御ステータスレジスタ (FMCS) 制御ステータスレジスタ (FMCS) は , フラッシュメモリインタフェース回路にある レジスタで , フラッシュメモリの書込み / 消去の際に使用します。 ■ 制御ステータスレジスタ (FMCS) bit 7 アドレス : 0000AEH 6 5 4 3 2 1 0 INTE RDYINT WE RDY Reserved Reserved Reserved Reserved (R/W) (R/W) (R/W) (R) (R/W) (R/W) (R/W) (R/W) 初期値 000X0000B ● ビット内容 [bit7] INTE( 割込み許可 ) フラッシュメモリの書込み / 消去の終了で CPU に割込みを発生させるビットです。 INTE ビットが "1" でかつ RDYINT ビットが "1" のときに CPU へ割込みが発生しま す。INTE ビットが "0" であれば割込みは発生しません。 • "0": 書込み / 消去終了での割込み禁止 • "1": 書込み / 消去終了での割込み許可 [bit6] RDYINT( レディ割込み ) フラッシュメモリの動作状態を表すビットです。 フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書 込み / 消去後このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできま せん。書込み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み / 消 去が可能になります。"0" 書込みによって "0" にクリアされ , "1" の書込みは無視さ れます。フラッシュメモリ自動アルゴリズム (「28.5 フラッシュメモリ自動アルゴ リズム起動方法」を参照 ) 終了タイミングで , "1" にセットされます。リードモディ ファイライト (RMW) 系命令使用時は , 必ず "1" が読めます。 • "0": 書込み / 消去動作実行中 • "1": 書込み / 消去動作終了 ( 割込み要求発生 ) 555 第 28 章 3M ビット フラッシュメモリ [bit5] WE( 書込み許可 ) フラッシュメモリ領域への書込み許可ビットです。 このビットが "1" のとき , F8(F9) ~ FF バンクへのコマンドシーケンス (「28.5 フ ラッシュメモリ自動アルゴリズム起動方法」を参照 ) 発行後の書込みは , フラッシュ メモリ領域への書込みになります。本ビットが "0" のとき , 書込み / 消去の信号は発 生しません。このビットはフラッシュメモリの書込み / 消去のコマンドを起動する 際に使用します。 書込み / 消去を行わないときは , 誤ってフラッシュメモリにデータを書き込まない よう , 常に "0" に設定することを推奨します。 • "0": フラッシュメモリ書込み / 消去禁止 • "1": フラッシュメモリ書込み / 消去許可 [bit4] RDY( レディ ) フラッシュメモリの書込み / 消去許可ビットです。 このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。 なお , この状態でも読出し / リセットコマンド , セクタ消去一時停止コマンドは受け 付けられます。 • "0": 書込み / 消去動作実行中 • "1": 書込み / 消去動作終了 ( 次データ書込み / 消去許可 ) [bit3 ~ bit0] 予約ビット 試験用予約ビットです。通常使用時は必ず "0" に設定してください。 <注意事項> RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで判定す るようプログラムを作成してください。 図 28.4-1 RDYINT, RDY ビットの遷移 自動アルゴリズム 終了タイミング RDYINTビット RDYビット 1マシンサイクル 556 第 28 章 3M ビット フラッシュメモリ フラッシュメモリ自動アルゴリズム起動方法 28.5 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と 再開の制御が可能です。 ■ コマンドシーケンス表 表 28.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま す。コマンドレジスタに書込みするデータはすべてバイトですが , ワードアクセスで書 込みするようにしてください。このときの上位バイト分のデータは無視されます。 表 28.5-1 コマンドシーケンス表 1st バスライト サイクル コマンド バスライト シーケンス アクセス 2nd バスライト 3rd バスライト サイクル サイクル 4th バスライト サイクル 5th バスライト サイクル 6th バスライト サイクル アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ 読出し / 1 FxXXXX XXF0 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXF0 書込み プログラム 4 FxAAAA XXAA Fx5554 チップ 消去 6 セクタ 消去 6 リセット * 読出し / リセット * - - - - - - - - - - RA RD - - - - XX55 FxAAAA XXA0 PA(even) PD(word) - - - - FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 FxAAAA XX10 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 SA(even) XX30 セクタ消去一時停止 Address"FxXXXX"Data(xxB0H) の入力で , セクタ消去中の消去一時停止 セクタ消去再開 Address"FxXXXX"Data(xx30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始 自動選択 3 FxAAAA XXAA Fx5554 XX55 FxAAAA XX90 - - - - - - ( 注意事項 ) • 表中のアドレス Fx は , 3M ビットフラッシュメモリの FF, FE, FD, FB, FA, F9 を意味します。操作時にはアクセス対象バン クの値としてください。 • 表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。ただし , "X" は任意の値です。 • RA: 読出しアドレス • PA: 書込みアドレス , 偶数アドレスのみ指定可能 • SA: セクタアドレス , 「28.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成」を参照し てください。 • RD: 読出しデータ • PD: 書込みデータ , ワードデータのみ指定可能 *:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットできます。 557 第 28 章 3M ビット フラッシュメモリ 表 28.5-1 の自動選択コマンドは、セクタ保護の状態を取得するために使用されます。 自動選択コマンドを使用するときには、以下のアドレスを設定してください。 表 28.5-2 自動選択時のアドレス設定 セクタ保護 AQ13 ~ AQ18 AQ7 AQ2 AQ1 AQ0 DQ7 ~ DQ0 セクタアドレス L H L L CODE* *: セクタアドレスが保護されるとき , 出力は "01H" です。 セクタアドレスが保護されないとき , 出力は "00H" です。 558 第 28 章 3M ビット フラッシュメモリ 28.6 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアがあり ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内 蔵フラッシュメモリの動作状態の確認ができます。 ■ ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは , DQ7, DQ6, DQ5, DQ3, DQ2 の 5 ビットの出力で構成 されます。それぞれにデータポーリングフラグ (DQ7), トグルビットフラグ (DQ6), タイ ミングリミット超過フラグ (DQ5), セクタ消去タイマフラグ (DQ3), トグルビット 2 フラ グ (DQ2) の機能があります。これにより , 書込み / チップ・セクタ消去終了 , 消去コー ドライトが有効かどうか確認できます。ハードウェアシーケンスフラグを参照するに は , コマンドシーケンス (「28.5 フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) 設定後にフラッシュメモリ内部の対象セクタのアドレスに読出しアク セスすることで参照できます。表 28.6-1 に , ハードウェアシーケンスフラグのビット 割当てを示します。 表 28.6-1 ハードウェアシーケンスフラグのビット割当て ビット No. ハードウェア シーケンスフラグ 7 6 5 4 3 2 1 0 DQ7 DQ6 DQ5 - DQ3 DQ2 - - 自動書込み / チップ・セクタ消去が実行中であるかの判断は , ハードウェアシーケンス フラグを確認するか , フラッシュメモリ制御ステータスレジスタ (FMCS) の RDY ビッ トを確認することで , 書込みが終了しているかを知ることができ , 書込み / 消去終了後 は , 読出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれか のフラグで自動書込み / 消去終了を確認後に , データの読出しなどの次処理を行ってく ださい。また , 2 回目以降のセクタ消去コードライトが有効であるかも , ハードウェア シーケンスフラグによって確認できます。表 28.6-2 に , ハードウェアシーケンスフラ グ機能の一覧を示します。 559 第 28 章 3M ビット フラッシュメモリ 表 28.6-2 ハードウェアシーケンスフラグ機能一覧 状態 正常動作時 の状態変化 DQ7 DQ6 DQ5 DQ3 DQ2 書込み動作→書込 み完了 ( 書込みアド レス指定時 ) 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 * 書込み動作 異常動作 チップ / セクタ消去 動作 *:DQ5 が "1" のとき ( タイミングリミット超過 ) , 書込み / 消去中セクタへの連続的な読出しに対し ては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。 560 第 28 章 3M ビット フラッシュメモリ データポーリングフラグ (DQ7) 28.6.1 データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状 態であることをデータポーリング機能によって知らせるためのフラグです。 ■ データポーリングフラグ (DQ7) 表 28.6-3 と表 28.6-4 に , データポーリングフラグの状態遷移を示します。 表 28.6-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 チップ / セクタ消去 セクタ消去→ セクタ消去一 セクタ消去 書込み動作 待ち 一時停止中 消去一時停止 時停止→再開 セクタ消去 →完了 ( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ ) →開始 →完了 DQ7 → DATA:7 DQ7 0→1 0 0→1 1→0 DATA:7 表 28.6-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ 消去動作 DQ7 DQ7 0 ● 書込み動作時 自動書込みアルゴリズム実行中に読出しアクセスすると , フラッシュメモリはアドレ スの指し示す番地によらず , 最後に書き込まれたデータの bit7 の反転データを出力し ます。自動書込みアルゴリズム終了時に読出しアクセスすると , フラッシュメモリはア ドレスの指し示す番地の読出し値の bit7 を出力します。 ● チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク タからチップ消去時はアドレスの指し示す番地に関係なく読出しアクセスするとフ ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス の指し示す番地の読出し値の bit7(DATA:7) を出力します。トグルビットフラグ (DQ6) とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であ るかの判定が可能です。 <注意事項> 自動アルゴリズム起動時は指定したアドレスへの読出しアクセスは無視されます。データ の読出しは , データポーリングフラグ (DQ7) の終了を受けてほかのビットの出力が可能と なります。このため , 自動アルゴリズム終了後のデータの読出しは , データポーリング終 了を確認した読出しアクセスの次に行うようにしてください。 561 第 28 章 3M ビット フラッシュメモリ 28.6.2 トグルビットフラグ (DQ6) トグルビットフラグ (DQ6) は , データポーリングフラグと同様に , 主に自動アルゴ リズム実行が進行中または終了状態であることをトグルビット機能によって知らせ るためのフラグです。 ■ トグルビットフラグ (DQ6) 表 28.6-5 と表 28.6-6 に , トグルビットフラグの状態遷移を示します。 表 28.6-5 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 DQ6 チップ / セクタ消去 セクタ消去→ セクタ消去一 書込み動作 セクタ消去 一時停止中 消去一時停止 時停止→再開 セクタ消去 →完了 待ち→開始 ( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ ) →完了 Toggle → DATA:6 Toggle → Stop Toggle Toggle → 1 1 → Toggle DATA:6 表 28.6-6 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ消去動作 DQ6 Toggle Toggle ● 書込み / チップ・セクタ消去時 自動書込みアルゴリズムおよびチップ・セクタ消去アルゴリズム実行中に連続した読 出しアクセスを行うと , フラッシュメモリはアドレスの指し示す番地によらず , リード ごとに "1" と "0" を交互に出力するトグル状態を出力します。自動書込みアルゴリズム およびチップ / セクタ消去アルゴリズム終了時に連続した読出しアクセスを行うとフ ラッシュメモリは bit6 のトグル動作を止め , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さ ないのであれば , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 <注意事項> 書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約 2μs のトグル動作をした後 , データを書き換えることなくトグル動作を終了します。消去 の際 , 選択されたすべてのセクタが書換え保護されている場合トグルビットは約 100μs の トグル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。 562 第 28 章 3M ビット フラッシュメモリ 28.6.3 タイミングリミット超過フラグ (DQ5) タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ グです。 ■ タイミングリミット超過フラグ (DQ5) 表 28.6-7 と表 28.6-8 に , タイミングリミット超過フラグの状態遷移を示します。 表 28.6-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 ) チップ / セクタ消去 セクタ消去→ セクタ消去一 セクタ消去 書込み動作 動作状態 待ち 消去一時停止 時停止→再開 一時停止中 セクタ消去 →完了 ( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ ) →開始 →完了 DQ5 0→ DATA:5 0→1 0 0 0 DATA:5 表 28.6-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ消去動作 DQ5 1 1 ● 書込み / チップ・セクタ消去時 書込みまたはチップ・セクタ消去自動アルゴリズム起動後に読出しアクセスすると , 規 定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい る場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるかと は無関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能に より自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断できます。 例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする とフェイルが発生します。この場合 , フラッシュメモリはロックされ , 自動アルゴリズ ムは終了しません。まれに "1" が書き込めたように正常終了する場合もあります。し たがって , データポーリングフラグ (DQ7) から有効なデータが出力されません。また , トグルビットフラグ (DQ6) はトグル動作を止めず , タイムリミットを超え , タイミング リミット超過フラグ (DQ5) は "1" を出力します。この状態はフラッシュメモリが不良 ではなく , 正しく使用されなかったということを表しています。この状態が発生したと きは , リセットコマンドを実行してください。 563 第 28 章 3M ビット フラッシュメモリ 28.6.4 セクタ消去タイマフラグ (DQ3) セクタ消去タイマフラグ (DQ3) は , セクタ消去コマンド起動後 , セクタ消去ウェイ ト期間中であるか否かを知らせるフラグです。 ■ セクタ消去タイマフラグ (DQ3) 表 28.6-9 と表 28.6-10 に , セクタ消去タイマフラグの状態遷移を示します。 表 28.6-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 DQ3 チップ / セクタ消去 セクタ消去→ セクタ消去一 セクタ消去 書込み動作 待ち 一時停止中 消去一時停止 時停止→再開 セクタ消去 →完了 ( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ ) →開始 →完了 0→ DATA:3 1 0→1 1→0 0→1 DATA:3 表 28.6-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ消去動作 DQ3 0 1 ● セクタ消去動作時 セクタ消去コマンド起動後に読出しアクセスすると , フラッシュメモリはコマンドを 発行したセクタのアドレス信号の指し示す番地によらず , セクタ消去ウェイト期間中 であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合は "1" を出力しま す。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて のセクタ消去コードのライトまたは消去一時停止以外のコマンドは , 消去が終了され るまで無視されます。このフラグが "0" であればフラッシュメモリは , 追加のセクタ消 去コードのライトを受け付けます。このことを確認するために , 引き続くセクタ消去 コードのライトに先立ち , このフラグの状態をチェックすることを推奨します。もし , 2 回目の状態チェックで "1" であったなら追加セクタの消去コードは受け付けられてい ない可能性があります。 ● セクタ消去中の読出しアクセス セクタ消去一時停止中に読出しアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタに属するならば "1" を出力します。このアドレスが消去さ れたセクタに属さない場合 , フラッシュメモリは対応するメモリ値の bit3(DATA: 3) を 出力します。 564 第 28 章 3M ビット フラッシュメモリ 28.6.5 トグルビット 2 フラグ (DQ2) トグルビット 2 フラグ (DQ2) は , セクタ消去一時停止中であることをトグルビット 機能によって知らせるフラグです。 ■ トグルビット 2 フラグ (DQ2) 表 28.6-11 と表 28.6-12 に , トグルビット 2 フラグの状態遷移を示します。 表 28.6-11 トグルビット 2 フラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 書込み動作 →完了 1→ DATA:2 DQ2 チップセクタ セクタ消去 消去→ 待ち→開始 完了 Toggle → Stop Toggle セクタ消去→ 消去一時停止 セクタ消去一 時停止→再開 セクタ消去 一時停止中 消去中のセクタ 消去中のセクタ 消去中でないセクタ Toggle Toggle DATA:2 表 28.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 は消去しているセクタからの読出しア クセスならばトグル動作をします。 <参考> 消去の際 , 選択されたすべてのセクタが書換え保護されている場合トグルビット 2 は約 100μsのトグル動作をし, その後データを書き換えないで読出し/リセット状態に戻ります。 565 第 28 章 3M ビット フラッシュメモリ 28.7 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止およびセクタ消去再開の それぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細説明 フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , 消去再開の動作がコマンドシーケンス (「28.5 フラッシュメモリ自動アルゴ リズム起動方法」の表 28.5-1 を参照 ) のバスへの書込みサイクルを行うことで自動ア ルゴリズムを実行することが可能です。それぞれのバスへの書込みサイクルは必ず続 けて行う必要があります。また , 自動アルゴリズムはデータ・ポーリング機能などで終 了時を知ることができます。正常終了後は読出し / リセット状態に戻ります。 フラッシュメモリの各動作について , 次項より下記の順に示します。 • 読出し / リセット状態にする • データを書き込む • 全データを消去する ( チップ消去 ) • 任意のデータを消去する ( セクタ消去 ) • セクタ消去を一時停止する • セクタ消去を再開する 566 第 28 章 3M ビット フラッシュメモリ 28.7.1 読出し / リセット状態にする 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリを読出し / リセット状態にする フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 (「28.5 フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) の読出し / リセット コマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 読出し / リセットコマンドには , 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し/リセット状態では通常の読出しアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません。何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。 567 第 28 章 3M ビット フラッシュメモリ 28.7.2 データの書込み 書込みコマンドを発行し , フラッシュメモリにデータを書き込む手順について説明 します。 ■ フラッシュメモリにデータを書き込む フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表 (「28.5 フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) の書 込みコマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動アルゴリズム が起動され自動書込みを開始します。 ● アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ スへのワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが , 1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。 ● データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ "1" を書き込むと , データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が 終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超え , タイミン グリミット超過フラグ (DQ5) がエラーと判定するか , 見かけ上データ "1" が書き込まれ たように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデータを読 み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすることができ ます。 自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意 が必要です。 568 第 28 章 3M ビット フラッシュメモリ ■ フラッシュメモリの書込み手順 図 28.7-1 に , フラッシュメモリの書込み手順の例を示します。ハードウェアシーケン スフラグ (「28.6 自動アルゴリズム実行状態の確認」を参照 ) を用いることでフラッ シュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了の確 認にデータポーリングフラグ (DQ7) を用いています。 フラグチェックのために読み出すデータは最後に書込みを行ったアドレスからの読出 しとなります。 データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変 わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ ングフラグビット (DQ7) を再チェックする必要があります。 トグルビットフラグ (DQ6) でも同様にタイミングリミット超過フラグビット (DQ5) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再 チェックする必要があります。 図 28.7-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS:WE (bit5) フラッシュメモリ書込み許可 書込みコマンドシーケンス (1) FxAAAA←XXAA (2) Fx5554←XX55 (3) FxAAAA←XXA0 (4) 書込みアドレス←書込みデータ 内部アドレス読出し データポーリング(DQ7) 次アドレス Data Data 0 タイミングリミット(DQ5) 1 内部アドレス読出し Data データポーリング(DQ7) Data 書込みエラー 最終アドレス FMCS:WE (bit5) フラッシュメモリ書込み禁止 書込み完了 ハードウェアシーケンス フラグによる確認 569 第 28 章 3M ビット フラッシュメモリ 28.7.3 全データの消去 ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい て説明します。 ■ フラッシュメモリ全データの消去 ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 (「28.5 フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のチップ消去コマ ンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます。6 サイクル目のライトが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。 570 第 28 章 3M ビット フラッシュメモリ 28.7.4 任意データの消去 ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ 消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同 時に指定することも可能です。 ■ フラッシュメモリ任意データの消去 ( セクタ消去 ) フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表 (「28.5 フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のセクタ消去コマ ンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 ● セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへセクタ消去コード (30H) をライトすることに より 50μs のセクタ消去待ちが開始します。複数のセクタ消去を行う場合は上記の処理 に引き続き消去する目的のセクタ内のアドレスに消去コード (30H) をライトします。 ● 複数のセクタを指定するときの注意 最後のセクタ消去コードの書込みから 50μs のセクタ消去待ち期間終了により消去が開 始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアドレス と消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50μs 以内に入力する必 要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去コード の書込みが有効かどうかは , セクタ消去タイマ ( ハードウェアシーケンスフラグ DQ3) によって調べることができます。 なお , このとき , セクタ消去タイマを読出しするアドレスは , 消去しようとしているセ クタを指すようにします。 ■ フラッシュメモリのセクタ消去手順 ハードウェアシーケンスフラグ (「28.6 自動アルゴリズム実行状態の確認」を参照 ) を 用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図 28.7-2 に , フラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の 確認にトグルビットフラグ (DQ6) を用いています。 フラグチェックのために読み出すデータは , 消去しようとしているセクタからの読出 しとなりますので注意が必要です。 トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもトグルビットフラグ (DQ6) をチェックする必要があります。 データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と 同時に変わるので , データポーリングフラグ (DQ7) を再チェックする必要があります。 571 第 28 章 3M ビット フラッシュメモリ 図 28.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 次セクタ 内部アドレス読出し2 NO YES トグルビット (DQ6) データ1(DQ6) = データ2(DQ6) セクタ消去終了 YES NO 0 タイミングリミット (DQ5) 1 内部アドレス読出し 1 内部アドレス読出し 2 NO トグルビット (DQ6) データ1(DQ6) = データ2(DQ6) YES 消去エラー 最終セクタ NO YES FMCS:WE(bit5) フラッシュメモリ消去禁止 消去完了 572 ハードウェアシーケンス フラグによる確認 第 28 章 3M ビット フラッシュメモリ 28.7.5 セクタ消去の一時停止 セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタからデータを読み出すことが可 能です。 ■ フラッシュメモリセクタ消去の一時停止 フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 (「28.5 フ ラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のセクタ消去一時停 止コマンドをフラッシュメモリ内に送ることで実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込 みはできません。このコマンドは消去待ち時間を含むセクタ消去中のみ有効で , チップ 消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) のライトを行うことで実施されますが , このとき , アドレス はフラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度 の消去一時停止コマンドは無視されます。 セクタ消去待ち期間中にセクタ消去一時停止コマンドが入力されると , 直ちにセクタ 消去待ちを終了し , 消去動作を中断して消去停止状態になります。セクタ消去待ち期間 後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20μs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セクタ消去コマンドあ るいはセクタ消去再開コマンド発行後 , 20µs 以上後に行ってください。 573 第 28 章 3M ビット フラッシュメモリ 28.7.6 セクタ消去の再開 セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリセクタ消去の再開 一時停止したセクタ消去を再開させるには , コマンドシーケンス表 (「28.5 フラッシュ メモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のセクタ消去再開コマンドを フラッシュメモリ内に送ることで実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態からセクタ消去を再開するためのコマンドです。このコマンドは消去再開コード (30H) のライトを行うことで実施されますが , このときのアドレスはフラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 574 第 28 章 3M ビット フラッシュメモリ 28.8 3M ビットフラッシュメモリ使用上の注意 3M ビットフラッシュメモリに関する注意を以下に示します。 ■ フラッシュメモリ使用上の注意 ● ハードウェアリセット (RST) の入力 読出し中で自動アルゴリズムを起動していないときにハードウェアリセットを入力す るには , "L" レベル幅として最低 500ns を確保する必要があります。この場合 , ハード ウェアリセット起動後 , フラッシュメモリからデータを読み出すまでに , 最低 500ns が 必要となります。 同様に , 書込み / 消去中で自動アルゴリズムが起動しているときにハードウェアリセッ トを入力するには , "L" レベル幅として最低 500ns を確保する必要があります。この場 合 , フラッシュメモリを初期化するために実行中の動作を停止した後 , データを読み出 すまでに 20ns が必要となります。 書込み中にハードウェアリセットをすると , 書き込まれているデータは不定となりま す。消去中のハードウェアリセットや電源切れにより , 消去されているセクタは使用不 可となる可能性があります。 ● ソフトウェアリセット , ウォッチドッグタイマリセットの取消し CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ 状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。それは , これ らのリセット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリ ズムが続行し , リセット離脱後に CPU がシーケンスを開始したときにフラッシュメモ リユニットが読出し状態になることが妨げられる可能性があるためです。これらのリ セット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。 ● フラッシュメモリへのプログラムアクセス 自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。 CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム 領域を RAM などの別の領域に切換え後 , 書込み / 消去を開始する必要があります。こ の場合 , 割込みベクタを含むセクタ (SA8/SA13) が書込み / 消去されると , 割込み処理 を実行できません。 同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込 み要因は無効にする必要があります。 ● ホールド機能 CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求 の受付けが許可 (EPCR の HDE ビットが "1" をセット ) されたとき , 制御ステータスレ ジスタ (FMCS) の WE ビットが必ず "0" になっているようにしてください。 ● 拡張インテリジェント I/O サービス (EI2OS) フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは , EI2OS には受付け不可能であり使用できません。 ● VID の適用 セクタプロテクト動作に必要な VID の印加は , 電源が ON のとき開始し , 終了する必要 があります。 575 第 28 章 3M ビット フラッシュメモリ 28.9 フラッシュメモリにおけるリセットベクタアドレス MB90F394H(A) は , ハードワイヤードリセットベクタをサポートします。 内部ベクタモードでのアドレス "FFFFDCH" ~ "FFFFDFH" へのすべての読出しアク セスは , ハードワイヤードロジックにより事前に決められた値を読み出すことにな ります。しかし , フラッシュメモリモードでは , 前節で述べたようにこれらのアドレ スのアクセスが可能です。 このため , これらのアドレスへの書込みは意味がありません。特に ( フラッシュメモ リモードではなく ) CPU アクセスでフラッシュメモリをプログラミングするとき , ソフトウェアポーリング用にこれらのアドレスを読み出さないように注意してくだ さい。さもなければ , フラッシュメモリはハードウェアシーケンスフラグ値の代わ りに固定リセットベクタ値を返します。 ■ フラッシュメモリにおけるリセットベクタアドレス 表 28.9-1 に , リセットベクタとモードデータの事前に決められた値を示します。 表 28.9-1 リセットベクタとモード値 リセットベクタ FFA000H モードデータ 00H <注意事項> リセットベクタとモードデータは事前に決められた値が設定されていますので , フラッ シュメモリに書き込むプログラムの中のリセットベクタ値とモードデータ値は動作に影 響を与えませんが , 同一のプログラムをマスク ROM 品で使用した場合 , 異なる動作をす る可能性がありますので , フラッシュメモリにも同一の値を書き込むことを推奨します。 576 第 28 章 3M ビット フラッシュメモリ 28.10 3M ビットフラッシュメモリのプログラム例 3M ビットフラッシュメモリのプログラム例を示します。 ■ 3M ビットフラッシュメモリのプログラム例 NAME FLASHWE TITLE FLASHWE ;-----------------------------------------------------------------------------;3Mビット-FLASH サンプルプログラム ; ;1: FLASHにあるプログラム(アドレス FF8000H セクタ SA6)をRAM(アドレス 001500H)に ; 転送する。 ;2: RAM上でプログラムを実行する。 ;3: PDR1の値をFLASH(アドレス F90000Hセクタ SA1)に書き込む。 ;4: 書き込んだ値(アドレス F90000H セクタ SA1)を読み出しPDR2に出力する。 ;5: 書き込んだセクタ(SA1)を消去する。 ;6: 消去データ確認の出力 ;条件 ; ・RAM転送バイト数: 100H(256B) ; ・書込み,消去の終了判定 ; DQ5(タイミングリミット超過フラグ)での判定 ; DQ6(トグルビットフラグ)での判定 ; RDY(FMCS)での判定 ; ・エラー時の処理 ; P00~P07に"H"を出力する ; リセットコマンド発行 ;-----------------------------------------------------------------------------; 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 ; 577 第 28 章 3M ビット フラッシュメモリ DATA DSEG ABS=0FFH ;FLASHコマンドアドレス ORG 5554H COMADR2 RW 1 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(1500H番地)に"FLASH書込み消去プログラム(FF80OOH)"を転送する ; ////////////////////////////////////////////////////////////// MOVW A,#1500H ;転送先RAM領域 MOVW A,#08000H ;転送元アドレス(プログラムのある位置) MOVW RW0,#100H ;転送するバイト数 MOVS ADB,PCB ;FF8000Hから001500Hへ100H転送 CALLP 001500H ;転送したプログラムのあるアドレスへジャンプ ; ///////////////////////////////////////////////////// ; データ出力 ; ///////////////////////////////////////////////////// OUT MOV A,#0F9H MOV ADB,A MOVW RW2,#0000H MOVW A,@RW2+00 MOV PDR2,A END JMP * CODE ENDS 578 第 28 章 3M ビット フラッシュメモリ ;//////////////////////////////////////////////////////////// ;FLASH書込み消去プログラム(SA6) ;//////////////////////////////////////////////////////////// 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,#0F9H ;ADB変更1 MOV ADB,A ;書込みモード指定アドレス用バンク指定 MOV PDR3,#00H ;スイッチ初期化 MOV DDR3,#00H ; WAIT1 BBC PDR3:0,WAIT1 ;PDR3:0 "H"で書込みスタート ; ;//////////////////////////////////////////////// ; 書込み(SA1) ;//////////////////////////////////////////////// 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ビット(4ビット)抽出 BZ WRITE ;書込み終了か? MOV FMCS,#00H ;書込みモード解除 579 第 28 章 3M ビット フラッシュメモリ ; ; ; ///////////////////////////////////////////////////// 書込みデータ出力 ///////////////////////////////////////////////////// MOVW RW2,#0000H ;書込みデータ出力 MOVW A,@RW2+00 MOV PDR2,A ; WAIT2 BBC PDR3:1,WAIT2 ;PDR3:1 "H"でセクタ消去スタート ; ;///////////////////////////////////////////// ;セクタ消去(SA1) ;///////////////////////////////////////////// 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 ELS ; 待ち時間チェック ; /////////////////////////////////////////////////////////////////// ; タイムリミット超過チェック- フラグが立ちトグル動作中であるときERROR ; /////////////////////////////////////////////////////////////////// MOVW A,@RW2+00 AND A,#20H ;DQ5タイムリミットチェック BZ NTOE ;タイムリミットオーバ MOVW A,@RW2+00 ;AH 書込み動作中は,DQ6から MOVW A,@RW2+00 ;AL リードごと"H", "L"が交互に出力される XORW A ;AHとALのXOR(DQ6の値が違えば1 書込み動作 ; 中である) AND A,#40H ;DQ6トグルビットは"H"か BNZ ERROR ;"H"ならERRORへ ; /////////////////////////////////////// ; 消去終了チェック(FMCS-RDY) ; /////////////////////////////////////// NTOE MOVW A,FMCS ; AND A,#10H ;FMCS RDYビット(4ビット)抽出 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 ; 580 第 29 章 シリアル書込み接続例 F2MC-16LX MB90F394H(A) フラッシュマイコンの プログラマを用いたシリアル書込み接続例につい て説明します。 29.1 MB90F394H(A) シリアル書込み接続の基本構成 29.2 シリアル書込み接続例 29.3 シリアル書込み接続例 ( ライタから電源供給時 ) 29.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 29.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 581 第 29 章 シリアル書込み接続例 29.1 MB90F394H(A) シリアル書込み接続の基本構成 MB90F394H(A) では , フラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサポートしています。その仕様について以下に説明します。 ■ MB90F394H(A) シリアル書込み接続の基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。 図 29.1-1 MB90F394H(A) の富士通スタンダードシリアルオンボードプログラミング ホストインタフェースケーブル(AZ201) 汎用共通ケーブル(AZ210) RS232C AF220/AF210/ AF120/AF110 MB90F394H フラッシュ CLK同期シリアル ユーザシステム マイコン プログラマ + メモリカード スタンドアロンで動作可能 <注意事項> AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法および接続 用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株 式会社にお問い合わせください。 582 第 29 章 シリアル書込み接続例 表 29.1-1 富士通標準シリアルオンボード書込みに使用する端子 端子 MD2, MD1, MD0 X0, X1 P00, P01 機能 補足説明 モード端子 フラッシュマイコンプログラマから書込みモードに制 御します。 発振用端子 書込みモード時に, CPU内部動作クロックはPLLクロッ ク 1 逓倍となっています。したがって , 発振クロック周 波数が内部動作クロックとなりますので , シリアル書 換え時に使用する発振子は 3 MHz ~ 16 MHz となりま す。 書込みプログラム起動端子 P00に"L"レベル, P07に"H"レベルを入力してください。 RST リセット端子 SIN4 シリアルデータ入力端子 SOT4 シリアルデータ出力端子 SCK4 シリアルクロック入力端子 - シリアル I/O を使用します。 C 端子 電源安定化の容量端子です。外部に 0.1μF 程度のセラ ミックコンデンサを接続してください。 VCC 電源電圧供給端子 書込み電圧 (5V ± 10%) VSS GND 端子 フラッシュマイコンプログラマの GND と共通にしま す。 C P00, P01, SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御 回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル 書込み中はユーザ回路を切り離すことができます。 「29.2 シリアル書込み接続例 」と「29.3 シリアル書込み接続例 ( ライタから電源供給 時 ) 」に , 以下のシリアル書込み接続例を示しますので参照してください。 • シリアル書込み接続例 ( ユーザ電源使用時 ) • シリアル書込み接続例 ( ライタから電源供給時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 583 第 29 章 シリアル書込み接続例 図 29.1-2 シリアルプログラミング用ユーザ回路接続 AF220/AF210/AF120/AF110 書込み制御端子 AF220/AF210/AF120/ AF110 /TICS端子 MB90F394H 書込み制御端子 10kΩ ユーザ回路 表 29.1-2 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) 型格 本 体 機能 AF220/AC4P イーサネットインタフェース内蔵モデル /100V ~ 220V 電源アダプタ AF210/AC4P スタンダードモデル /100V ~ 220V 電源アダプタ AF120/AC4P 単キーイーサネットインタフェース内蔵モデル /100V ~ 220V 電源アダプタ AF110/AC4P 単キーモデル /100V ~ 220V 電源アダプタ AZ221 ライタ専用 PC/AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ :1m FF201 富士通製 F2MC-16LX フラッシュマイコン用制御モジュール AZ290 リモートコントローラ /P2 2MB PC Card ( オプション ) フラッシュメモリ容量~ 128K バイト対応 /P4 4MB PC Card ( オプション ) フラッシュメモリ容量~ 512K バイト対応 問い合せ先 : 横河ディジタルコンピュータ株式会社 電話 :042-333-6224 <注意事項> AF200 フラッシュマイコンプログラマは終息製品ですが , 制御モジュール FF201 を用い ることにより使用できます。シリアル書込み接続例を「29.2 シリアル書込み接続例」に 示します。 ■ 発振クロック周波数とシリアルクロック入力周波数 MB90F394H(A)の入力可能なシリアルクロック周波数は, 以下の計算式により求めるこ とができます。ご使用の発振クロック周波数に合わせて , シリアルクロック入力周波数 をフラッシュマイコンプログラマに設定してください。 fSC = 0.125 × fOSC ここで fSC はシリアルクロック周波数を , fOSC は発振クロック周波数を示します。 584 第 29 章 シリアル書込み接続例 表 29.1-3 入力可能なシリアルクロック周波数の例 マイコンの入力可能な最大 シリアルクロック周波数 AF220/AF210/AF120/ AF110 の設定可能な最大 シリアルクロック周波数 AF200 の設定可能な最大 シリアルクロック周波数 500kHz 500kHz 500kHz 8MHz 時 * 1MHz 850kHz 500kHz 16MHz 時 * 2MHz 1.25MHz 500kHz 発振クロック 周波数 4MHz 時 *:外部クロックのみ 585 第 29 章 シリアル書込み接続例 29.2 シリアル書込み接続例 なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110B ■ シリアル書込み接続例 ( ユーザ電源使用時 ) 図 29.2-1 に , マイコンの電源電圧をユーザ電源より供給する場合のシリアル書込み接 続例を示します。 図 29.2-1 MB90F394H(A) シリアル書込み接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28SまたはDX20-28S MB90F394H MD2 (19) MD1 TMODE MD0 X0 (12) X1 TAUX (23) /TICS (10) P00 ユーザ 回路 10kΩ /TRES RST (5) 10kΩ P01 C ユーザ 回路 TTXD TRXD TCK (13) (27) (6) TVcc (2) SIN4 SOT4 SCK4 VCC ユーザ電源 GND (7,8, 14,15. 21,22 1,28) VSS 14ピン 3, 4, 9, 11, 16, 17, 18, 20, 24, 25, 26ピンは開放。 DX10-28S:ライトアングルタイプ DX20-28S:ストレートタイプ 586 1ピン DX10-28S DX20-28S 28ピン 15ピン コネクタ (ヒロセ電機製)のピン配列 第 29 章 シリアル書込み接続例 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図 の制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 図 29.2-2 ユーザ回路接続 ( 細部 ) AF220/AF210/AF120/AF110 書込み制御端子 10kΩ MB90F394H 書込み制御端子 AF220/AF210/ AF120/AF110 /TICS端子 ユーザ回路 587 第 29 章 シリアル書込み接続例 29.3 シリアル書込み接続例 ( ライタから電源供給時 ) 図 29.3-1 に , マイコンの電源電圧をライタ電源より供給する場合のシリアル書込み 接続例を示します。 なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110B ■ シリアル書込み接続例 ( ライタから電源供給時 ) 図 29.3-1 MB90F394H(A) シリアル書込み接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン コネクタ プログラマ DX10-28S TAUX3 MB90F394H MD2 (19) 10kΩ 10kΩ MD1 10kΩ TMODE MD0 X0 (12) X1 TAUX (23) /TICS (10) P00 10kΩ ユーザ回路 10kΩ /TRES RST (5) 10kΩ P01 C ユーザ 回路 0.1μF TTXD TRXD TCK TVcc Vcc TVPP1 (13) (27) (6) (2) (3) (16) SIN4 SOT4 SCK4 ユーザ電源 GND (7,8, 14,15. 21,22 1,28) 3, 4, 9, 11, 16, 17, 18, 20, 24, 25, 26ピンは開放。 DX10-28S:ライトアングルタイプ DX20-28S:ストレートタイプ VCC VSS 14ピン 1ピン 28ピン 15ピン DX10-28S DX20-28S コネクタ(ヒロセ電機製)のピン配列 588 第 29 章 シリアル書込み接続例 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図 の制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源をAF220/AF210/AF120/AF110から供給するときはユーザ電源と短絡しな いでください。 図 29.3-2 ユーザ回路接続 ( 細部 ) AF220/AF210/AF120/AF110 書込み制御端子 10kΩ MB90F394H 書込み制御端子 AF220/AF210/ AF120/AF110 /TICS端子 ユーザ回路 589 第 29 章 シリアル書込み接続例 29.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 図 29.4-1 に , マイコンの電源電圧をユーザ電源より供給する場合のフラッシュマイ コンプログラマとの最小限の接続例を示します。 シリアル書換えモード :MD2, MD1, MD0=110B ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) フラッシュメモリ書込み時に , 各端子を下記のように設定していただければ , MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 29.4-1 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ ユーザシステム シリアル書換え時1 10kΩ MB90F394H MD2 シリアル書換え時1 10kΩ 10kΩ 10kΩ 10kΩ MD1 MD0 シリアル書換え時0 10kΩ X0 X1 P00 10kΩ 10kΩ シリアル書換え時0 ユーザ回路 シリアル書換え時1 ユーザ回路 P01 C コネクタ DX10-28S /TRES TTXD TRXD TCK TVcc 0.1μF 10kΩ (5) (13) (27) (6) (2) RST SIN4 SOT4 SCK4 VCC (7,8, GND 14,15, ユーザ電源 21,22, VSS 1,28) 3, 4, 9, 10, 11, 12, 16, 17, 18, 19, 20, 23, 24, 25, 26ピンは開放。 DX10-28S:ライトアングルタイプ DX20-28S:ストレートタイプ 590 DX10-28S 14ピン 1ピン 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 第 29 章 シリアル書込み接続例 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 図 29.4-2 ユーザ回路接続 ( 細部 ) AF220/AF210/AF120/AF110 書込み制御端子 10kΩ MB90F394H 書込み制御端子 AF220/AF210/ AF120/AF110 /TICS端子 ユーザ回路 591 第 29 章 シリアル書込み接続例 29.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 図 29.5-1 に , マイコンの電源電圧をライタ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書換えモード :MD2, MD1, MD0=110B ■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) フラッシュメモリ書込み時に各端子を下記のように設定していただければ , MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 29.5-1 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン プログラマ シリアル書換え時1 シリアル 書換え時1 10kΩ MB90F394H MD2 10kΩ 10kΩ MD1 10kΩ 10kΩ MD0 シリアル書換え時0 10kΩ X0 X1 シリアル 書換え時0 P00 10kΩ 10kΩ ユーザ回路 シリアル書換え時1 P01 ユーザ回路 C コネクタ DX10-28S /TRES TTXD TRXD TCK TVcc GND (5) (13) (27) (6) (2) (3) (16) 0.1μF 10kΩ RST SIN4 SOT4 SCK4 VCC (7,8, 14,15, 21,22, 1,28) 4, 9, 10, 11, 12, 17, 18, 19, 20, 23, 24, 25, 26ピンは開放。 DX10-28S:ライトアングルタイプ DX20-28S:ストレートタイプ VSS DX10-28S DX20-28S 14ピン 1ピン 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 592 第 29 章 シリアル書込み接続例 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源をAF220/AF210/AF120/AF110から供給するときはユーザ電源と短絡しな いでください。 図 29.5-2 ユーザ回路接続 ( 細部 ) AF220/AF210/AF120/AF110 書込み制御端子 10kΩ MB90F394H 書込み制御端子 AF220/AF210/ AF120/AF110 /TICS端子 ユーザ回路 593 第 29 章 シリアル書込み接続例 594 付録 I/O マップ , F2MC-16LX の命令などを示します。 付録 A I/O マップ 付録 B 命令 付録 C フラッシュメモリモードのタイミングダイヤグラム 付録 D 割込みベクタ一覧表 595 付録 付録 A I/O マップ 表 A-1 に , 周辺ブロック中のレジスタに割り当てられるアドレスを示します。 ■ I/O マップ 表 A-1 I/O マップ (1 / 6) アドレス レジスタ 略称 アクセス 周辺 初期値 000000H ポート 0 データレジスタ PDR0 R/W ポート 0 XXXXXXXXB 000001H ポート 1 データレジスタ PDR1 R/W ポート 1 XXXXXXXXB 000002H ポート 2 データレジスタ PDR2 R/W ポート 2 XXXXXXXXB 000003H ポート 3 データレジスタ PDR3 R/W ポート 3 XXXXXXXXB 000004H ポート 4 データレジスタ PDR4 R/W ポート 4 XXXXXXXXB 000005H ポート 5 データレジスタ PDR5 R/W ポート 5 XXXXXXXXB 000006H ポート 6 データレジスタ PDR6 R/W ポート 6 XXXXXXXXB 000007H ポート 7 データレジスタ PDR7 R/W ポート 7 XXXXXXXXB 000008H ポート 8 データレジスタ PDR8 R/W ポート 8 XXXXXXXXB 000009H ポート 9 データレジスタ PDR9 R/W ポート 9 XXXXXXXXB 00000AH ポート A データレジスタ PDRA R/W ポート A XXXXXXXXB 00000BH ポート B データレジスタ PDRB R/W ポート B XXXXXXXXB 00000CH アナログ入力許可 0 ADER0 R/W ポート 6, A/D 11111111B 00000DH アナログ入力許可 1 ADER1 R/W ポート B, A/D 01111111B 00000EH 入力レベル選択レジスタ ILSR R/W ポート 00000000B 00000FH 入力レベル選択レジスタ ILSR R/W ポート 00000000B 000010H ポート 0 方向レジスタ DDR0 R/W ポート 0 00000000B 000011H ポート 1 方向レジスタ DDR1 R/W ポート 1 00000000B 000012H ポート 2 方向レジスタ DDR2 R/W ポート 2 00000000B 000013H ポート 3 方向レジスタ DDR3 R/W ポート 3 00000000B 000014H ポート 4 方向レジスタ DDR4 R/W ポート 4 00000000B 000015H ポート 5 方向レジスタ DDR5 R/W ポート 5 00000000B 000016H ポート 6 方向レジスタ DDR6 R/W ポート 6 00000000B 000017H ポート 7 方向レジスタ DDR7 R/W ポート 7 00000000B 596 付録 A I/O マップ 表 A-1 I/O マップ (2 / 6) アドレス レジスタ 略称 アクセス 周辺 初期値 000018H ポート 8 方向レジスタ DDR8 R/W ポート 8 00000000B 000019H ポート 9 方向レジスタ DDR9 R/W ポート 9 00000000B 00001AH ポート A 方向レジスタ DDRA R/W ポート A 00000000B 00001BH ポート B 方向レジスタ DDRB R/W ポート B 00000000B 00001CH ~ 00001FH 予約 000020H シリアルモード制御レジスタ 0 UMC0 R/W 00000100B 000021H ステータスレジスタ 0 USR0 R/W 00010000B 000022H インプット / アウトプットデータ レジスタ 0 UIDR0/ UODR0 R/W XXXXXXXXB 000023H レート・データレジスタ 0 URD0 R/W 0000000XB 000024H シリアルモード制御レジスタ 1 UMC1 R/W 00000100B 000025H ステータスレジスタ 1 USR1 R/W 00010000B 000026H インプット / アウトプットデータ レジスタ 1 UIDR1/ UODR1 R/W XXXXXXXXB 000027H レート・データレジスタ 1 URD1 R/W 0000000XB 000028H ~ 00002BH UART0 UART1 予約 00002CH シリアルモード制御ステータス レジスタ ( 下位 ) SMCS R/W 00002DH シリアルモード制御ステータス レジスタ ( 上位 ) SMCS R/W 00002EH シリアルシフトデータレジスタ SDR R/W XXXXXXXXB 00002FH シリアル I/O プリスケーラ CDCR R/W 0X0X0000B 000030H 割込み /DTP 許可レジスタ ENIR R/W 00000000B 000031H 外部割込み要求レジスタ EIRR R/W XXXX0000B シリアル I/O 00000010B XXXXXXXXB 外部割込み 000032H 要求レベル設定レジスタ ( 下位 ) ELVR R/W 00000000B 000033H 要求レベル設定レジスタ ( 上位 ) ELVR R/W 00000000B 000034H A/D 制御ステータスレジスタ 0 ADCS0 R/W 00000000B 000035H A/D 制御ステータスレジスタ 1 ADCS1 R/W 00000000B A/D コンバータ 000036H A/D データレジスタ ( 下位 ) ADCR0 R XXXXXXXXB 000037H A/D データレジスタ ( 上位 ) ADCR1 R/W 00000XXXB 597 付録 表 A-1 I/O マップ (3 / 6) アドレス レジスタ 略称 アクセス R/W 000038H PPG0 動作モード制御レジスタ PPGC0 000039H PPG1 動作モード制御レジスタ PPGC1 R/W 00003AH PPG0/PPG1 クロック選択レジスタ PPG01 R/W 00003BH プログラムアドレス検出制御 / ステータスレジスタ 1 PACSR1 R/W 00003CH PPG2 動作モード制御レジスタ PPGC2 R/W 00003DH PPG3 動作モード制御レジスタ PPGC3 R/W 00003EH PPG2/PPG3 クロック制御レジスタ PPG23 R/W 00003FH クロック出力許可レジスタ CKOE R/W 000040H PPG4 動作モード制御レジスタ PPGC4 R/W 000041H PPG5 動作モード制御レジスタ PPGC5 R/W 000042H PPG4/PPG5 クロック選択レジスタ PPG45 R/W 000043H PPG6 動作モード制御レジスタ PPGC6 000045H PPG7 動作モード制御レジスタ PPGC7 R/W 000046H PPG6/PPG7 クロック選択レジスタ PPG67 R/W 000047H 16 ビット プログラマブル パルス発生部 2/3 クロック出力 16 ビット プログラマブル パルス発生部 4/5 0X000XX1B 0X000001B 000000XXB 00000000B 0X000XX1B 0X000001B 000000XXB XXXXXX00B 0X000XX1B 0X000001B 000000XXB 16 ビット プログラマブル パルス発生部 6/7 0X000XX1B 0X000001B 000000XXB 予約 PPG8 動作モード制御レジスタ PPGC8 000049H PPG9 動作モード制御レジスタ PPGC9 R/W 00004AH PPG8/PPG9 クロック選択レジスタ PPG89 R/W 00004BH R/W 16 ビット プログラマブル パルス発生部 8/9 0X000XX1B 0X000001B 000000XXB 予約 00004CH PPGA 動作モード制御レジスタ PPGCA R/W 00004DH PPGB 動作モード制御レジスタ PPGCB R/W 00004EH PPGA/PPGB クロック選択 レジスタ PPGAB R/W 00004FH 598 プログラムアドレス 検出 1 R/W 000048H 000051H 16 ビット プログラマブル パルス発生部 0/1 初期値 予約 000044H 000050H 周辺 0X000XX1B 16 ビット プログラマブル パルス発生部 A/B 0X000001B 00000000B 予約 タイマ制御ステータスレジスタ 0 ( 下位 ) TMCSR0 タイマ制御ステータスレジスタ 0 ( 上位 ) TMCSR0 R/W 16 ビット リロードタイマ 0 R/W 00000000B XXXX0000B 付録 A I/O マップ 表 A-1 I/O マップ (4 / 6) アドレス レジスタ 略称 アクセス 周辺 000052H タイマ制御ステータスレジスタ 1 ( 下位 ) TMCSR1 R/W 000053H タイマ制御ステータスレジスタ 1 ( 上位 ) TMCSR1 R/W 000054H インプットキャプチャ制御 ステータスレジスタ 0/1 ICS01 R/W インプットキャプチャ 0/1 00000000B 000055H インプットキャプチャ制御 ステータスレジスタ 2/3 ICS23 R/W インプットキャプチャ 2/3 00000000B 000056H インプットキャプチャ制御 ステータスレジスタ 4/5 ICS45 R/W インプットキャプチャ 4/5 00000000B 16 ビット リロードタイマ 1 000057H 初期値 00000000B XXXX0000B 予約 アウトプットコンペア制御 ステータスレジスタ 0 OCS0 000059H アウトプットコンペア制御 ステータスレジスタ 1 OCS1 R/W 00005AH アウトプットコンペア制御 ステータスレジスタ 2 OCS2 R/W 00005BH アウトプットコンペア制御 ステータスレジスタ 3 OCS3 R/W 0XX00000B 00005CH アウトプットコンペア制御 ステータスレジスタ 4 OCS4 R/W 0000XX00B 00005DH アウトプットコンペア制御 ステータスレジスタ 5 OCS5 R/W 00005EH サウンド制御レジスタ ( 下位 ) SGCR R/W 000058H 0000XX00B R/W アウトプットコンペア 0/1 0XX00000B 0000XX00B アウトプットコンペア 2/3 アウトプットコンペア 4/5 0XX00000B 00000000B サウンドジェネレータ 00005FH サウンド制御レジスタ ( 上位 ) SGCR R/W 0XXXXX00B 000060H 時計タイマ制御レジスタ ( 下位 ) WTCR R/W 000XX000B 000061H 時計タイマ制御レジスタ ( 上位 ) WTCR R/W 000062H PWM 制御レジスタ 0 PWC0 R/W 時計タイマ 000063H 000064H PWM 制御レジスタ 1 PWC1 00000XX0B R/W ステッピングモータ コントローラ 1 00000XX0B ステッピングモータ コントローラ 2 00000XX0B ステッピングモータ コントローラ 3 00000XX0B 予約 PWM 制御レジスタ 2 PWC2 000067H 000068H ステッピングモータ コントローラ 0 予約 000065H 000066H 00000000B R/W 予約 PWM 制御レジスタ 3 PWC3 R/W 599 付録 表 A-1 I/O マップ (5 / 6) アドレス レジスタ 略称 000069H 00006AH PWM 制御レジスタ 4 PWC4 初期値 R/W ステッピングモータ コントローラ 4 00000XX0B ステッピングモータ コントローラ 5 00000XX0B ROM ミラー XXXXXX+*1B 予約 PWM 制御レジスタ 5 PWC5 00006DH ~ 00006EH 00006FH 周辺 予約 00006BH 00006CH アクセス R/W 予約 ROM ミラー機能選択レジスタ ROMM W 000070H ~ 00008FH CAN インタフェース 0/1 用に予約済み。「第 23 章 CAN コントローラ」を参照してください。 000090H ~ 00009DH 予約 00009EH プログラムアドレス検出制御 ステータスレジスタ 0 PACSR0 R/W プログラムアドレス 検出 0 00000000B 00009FH 遅延割込み / 解除レジスタ DIRR R/W 遅延割込み XXXXXXX0B 0000A0H 低消費電力モード制御レジスタ LPMCR R/W 0000A1H クロック選択レジスタ CKSCR R/W 00011000B 低消費電力制御 0000A2H ~ 0000A7H 11111100B 予約 0000A8H ウォッチドッグタイマ制御 レジスタ WDTC R/W ウォッチドッグタイマ XXXXX111B 0000A9H タイムベースタイマ制御レジスタ TBTC R/W タイムベースタイマ 1XX00100B フラッシュメモリ 000X0000B 0000AAH ~ 0000ADH 0000AEH 予約 フラッシュ制御ステータスレジス タ(MB90F394Hのみ,ほかでは予約) 0000AFH * MB90V390H: 読出しのみ可能 , "1" に固定 MB90F394H: 選択可能 , 初期値 "0" 600 FMCS R/W 予約 付録 A I/O マップ 表 A-1 I/O マップ (6 / 6) アドレス レジスタ 略称 アクセス 周辺 初期値 0000B0H 割込み制御レジスタ 00 ICR00 R/W 00000111B 0000B1H 割込み制御レジスタ 01 ICR01 R/W 00000111B 0000B2H 割込み制御レジスタ 02 ICR02 R/W 00000111B 0000B3H 割込み制御レジスタ 03 ICR03 R/W 00000111B 0000B4H 割込み制御レジスタ 04 ICR04 R/W 00000111B 0000B5H 割込み制御レジスタ 05 ICR05 R/W 00000111B 0000B6H 割込み制御レジスタ 06 ICR06 R/W 00000111B 0000B7H 割込み制御レジスタ 07 ICR07 R/W 00000111B 0000B8H 割込み制御レジスタ 08 ICR08 R/W 00000111B 0000B9H 割込み制御レジスタ 09 ICR09 R/W 00000111B 0000BAH 割込み制御レジスタ 10 ICR10 R/W 00000111B 0000BBH 割込み制御レジスタ 11 ICR11 R/W 00000111B 0000BCH 割込み制御レジスタ 12 ICR12 R/W 00000111B 0000BDH 割込み制御レジスタ 13 ICR13 R/W 00000111B 0000BEH 割込み制御レジスタ 14 ICR14 R/W 00000111B 0000BFH 割込み制御レジスタ 15 ICR15 R/W 00000111B 割込みコントローラ 0000C0H ~ 0000FFH 予約 601 付録 ■ I/O マップ (35XX アドレス ) 表 A-2 I/O マップ (35XX アドレス ) (1 / 9) アドレス レジスタ アービト レーション アクセス 周辺 初期値 003500H リロードレジスタ L0 PRLL0 R/W 003501H リロードレジスタ H0 PRLH0 R/W 003502H リロードレジスタ L1 PRLL1 R/W 003503H リロードレジスタ H1 PRLH1 R/W XXXXXXXXB 003504H リロードレジスタ L2 PRLL2 R/W XXXXXXXXB 003505H リロードレジスタ H2 PRLH2 R/W 003506H リロードレジスタ L3 PRLL3 R/W 003507H リロードレジスタ H3 PRLH3 R/W XXXXXXXXB 003508H リロードレジスタ L4 PRLL4 R/W XXXXXXXXB 003509H リロードレジスタ H4 PRLH4 R/W 00350AH リロードレジスタ L5 PRLL5 R/W 00350BH リロードレジスタ H5 PRLH5 R/W XXXXXXXXB 00350CH リロードレジスタ L6 PRLL6 R/W XXXXXXXXB 00350DH リロードレジスタ H6 PRLH6 R/W 00350EH リロードレジスタ L7 PRLL7 R/W 00350FH リロードレジスタ H7 PRLH7 R/W XXXXXXXXB 003510H リロードレジスタ L8 PRLL8 R/W XXXXXXXXB 003511H リロードレジスタ H8 PRLH8 R/W 003512H リロードレジスタ L9 PRLL9 R/W 003513H リロードレジスタ H9 PRLH9 R/W XXXXXXXXB 003514H リロードレジスタ LA PRLLA R/W XXXXXXXXB 003515H リロードレジスタ HA PRLHA R/W 003516H リロードレジスタ LB PRLLB R/W 003517H リロードレジスタ HB PRLHB R/W 602 XXXXXXXXB 16 ビット プログラマブル パルス発振器 0/1 16 ビット プログラマブル パルス発振器 2/3 16 ビット プログラマブル パルス発振器 4/5 16 ビット プログラマブル パルス発振器 6/7 16 ビット プログラマブル パルス発振器 8/9 16 ビット プログラマブル パルス発振器 A/B XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 付録 A I/O マップ 表 A-2 I/O マップ (35XX アドレス ) (2 / 9) アービト レーション アクセス シリアルモード レジスタ SMR3 R/W 00000000B 003519H シリアル制御レジスタ SCR3 R/W 00000000B 00351AH 受信データレジスタ / 送信データレジスタ RDR3/TDR3 R/W 00000000B/ 11111111B 00351BH シリアルステータス レジスタ SSR3 R/W 00001000B 00351CH 拡張通信制御レジスタ ECCR3 R/W 00351DH 拡張ステータス / 制御レジスタ ESCR3 R/W 00000X00B 00351EH ボーレートジェネレー タレジスタ 0 BGR03 R/W 00000000B 00351FH ボーレートジェネレー タレジスタ 1 BGR13 R/W 00000000B 003520H インプットキャプチャ データレジスタ 0 IPCP0 R XXXXXXXXB 003521H インプットキャプチャ データレジスタ 0 IPCP0 R 003522H インプットキャプチャ データレジスタ 1 IPCP1 R 003523H インプットキャプチャ データレジスタ 1 IPCP1 R XXXXXXXXB 003524H インプットキャプチャ データレジスタ 2 IPCP2 R XXXXXXXXB 003525H インプットキャプチャ データレジスタ 2 IPCP2 R 003526H インプットキャプチャ データレジスタ 3 IPCP3 R 003527H インプットキャプチャ データレジスタ 3 IPCP3 R XXXXXXXXB 003528H インプットキャプチャ データレジスタ 4 IPCP4 R XXXXXXXXB 003529H インプットキャプチャ データレジスタ 4 IPCP4 R 00352AH インプットキャプチャ データレジスタ 5 IPCP5 R 00352BH インプットキャプチャ データレジスタ 5 IPCP5 R アドレス レジスタ 003518H 周辺 UART3 インプット キャプチャ 0/1 インプット キャプチャ 2/3 インプット キャプチャ 4/5 初期値 X0000XXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 603 付録 表 A-2 I/O マップ (35XX アドレス ) (3 / 9) アドレス レジスタ アービト レーション アクセス 周辺 初期値 00352CH タイマデータ レジスタ 0 TCDT0 R/W 00000000B 00352DH タイマデータ レジスタ 0 TCDT0 R/W 00000000B 00352EH タイマ制御ステータス レジスタ 0 TCCSL0 R/W 00000000B 00352FH タイマ制御ステータス レジスタ 0 TCCSH0 R/W 0XXXXXXXB 003530H アウトプットコンペア レジスタ 0 OCCP0 R/W XXXXXXXXB 003531H アウトプットコンペア レジスタ 0 OCCP0 R/W 003532H アウトプットコンペア レジスタ 1 OCCP1 R/W 003533H アウトプットコンペア レジスタ 1 OCCP1 R/W XXXXXXXXB 003534H アウトプットコンペア レジスタ 2 OCCP2 R/W XXXXXXXXB 003535H アウトプットコンペア レジスタ 2 OCCP2 R/W 003536H アウトプットコンペア レジスタ 3 OCCP3 R/W 003537H アウトプットコンペア レジスタ 3 OCCP3 R/W XXXXXXXXB 003538H アウトプットコンペア レジスタ 4 OCCP4 R/W XXXXXXXXB 003539H アウトプットコンペア レジスタ 4 OCCP4 R/W 00353AH アウトプットコンペア レジスタ 5 OCCP5 R/W 00353BH アウトプットコンペア レジスタ 5 OCCP5 R/W XXXXXXXXB 00353CH タイマデータ レジスタ 1 TCDT1 R/W 00000000B 00353DH タイマデータ レジスタ 1 TCDT1 R/W 00000000B 00353EH タイマ制御ステータス レジスタ 1 TCCSL1 R/W 00000000B 00353FH タイマ制御ステータス レジスタ 1 TCCSH1 R/W 0XXXXXXXB 604 I/O タイマ 0 アウトプット コンペア 0/1 アウトプット コンペア 2/3 アウトプット コンペア 4/5 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB I/O タイマ 1 付録 A I/O マップ 表 A-2 I/O マップ (35XX アドレス ) (4 / 9) アービト レーション アクセス 16 ビットタイマ レジスタ 0/ 16 ビットリロード レジスタ 0 TMR0/ TMRLR0 R/W 003541H 16 ビットタイマ レジスタ 0/ 16 ビットリロード レジスタ 0 TMR0/ TMRLR0 R/W XXXXXXXXB 003542H 16 ビットタイマ レジスタ 1/ 16 ビットリロード レジスタ 1 TMR1/ TMRLR1 R/W XXXXXXXXB 16 ビットタイマ レジスタ 1/ 16 ビットリロード レジスタ 1 TMR1/ TMRLR1 アドレス 003540H 003543H レジスタ 周辺 初期値 XXXXXXXXB 16 ビット リロードタイマ 0 16 ビット リロードタイマ 1 003544H ~ 003545H XXXXXXXXB R/W 予約 003546H 周波数データレジスタ SGFR R/W XXXXXXXXB 003547H 振幅データレジスタ SGAR R/W XXXXXXXXB 003548H デクリメントグレード レジスタ SGDR R/W 003549H トーンカウント レジスタ SGTR R/W XXXXXXXXB 00354AH サブ秒レジスタ WTBR(0) R/W XXXXXXXXB 00354BH サブ秒レジスタ WTBR(0) R/W XXXXXXXXB 00354CH サブ秒レジスタ WTBR(1) R/W 00354DH 秒レジスタ WTSR R/W 00354EH 分レジスタ WTMR R/W XXXXXXXXB 00354FH 時間レジスタ WTHR R/W XXXXXXXXB 003550H PWM1 コンペア レジスタ 0 PWC10 R/W XXXXXXXXB 003551H PWM2 コンペア レジスタ 0 PWC20 R/W 003552H PWM1 選択レジスタ 0 PWS10 R/W 003553H PWM2 選択 レジスタ 0 PWS20 R/W サウンド ジェネレータ 時計タイマ ステッピング モータ コントローラ 0 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XX000000B X0000000B 605 付録 表 A-2 I/O マップ (35XX アドレス ) (5 / 9) アービト レーション アクセス PWM1 コンペア レジスタ 1 PWC11 R/W 003555H PWM2 コンペア レジスタ 1 PWC21 R/W 003556H PWM1 選択レジスタ 1 PWS11 R/W 003557H PWM2 選択レジスタ 1 PWS21 R/W X0000000B 003558H PWM1 コンペア レジスタ 2 PWC12 R/W XXXXXXXXB 003559H PWM2 コンペア レジスタ 2 PWC22 R/W 00355AH PWM1 選択レジスタ 2 PWS12 R/W 00355BH PWM2 選択レジスタ 2 PWS22 R/W X0000000B 00355CH PWM1 コンペア レジスタ 3 PWC13 R/W XXXXXXXXB 00355DH PWM2 コンペア レジスタ 3 PWC23 R/W 00355EH PWM1 選択レジスタ 3 PWS13 R/W 00355FH PWM2 選択レジスタ 3 PWS23 R/W X0000000B 003560H PWM1 コンペア レジスタ 4 PWC14 R/W XXXXXXXXB 003561H PWM2 コンペア レジスタ 4 PWC24 R/W 003562H PWM1 選択レジスタ 4 PWS14 R/W 003563H PWM2 選択レジスタ 4 PWS24 R/W X0000000B 003564H PWM1 コンペア レジスタ 5 PWC15 R/W XXXXXXXXB 003565H PWM2 コンペア レジスタ 5 PWC25 R/W 003566H PWM1 選択レジスタ 5 PWS15 R/W 003567H PWM2 選択レジスタ 5 PWS25 R/W アドレス レジスタ 003554H 606 周辺 初期値 XXXXXXXXB ステッピング モータ コントローラ 1 ステッピング モータ コントローラ 2 ステッピング モータ コントローラ 3 ステッピング モータ コントローラ 4 ステッピング モータ コントローラ 5 XXXXXXXXB XX000000B XXXXXXXXB XX000000B XXXXXXXXB XX000000B XXXXXXXXB XX000000B XXXXXXXXB XX000000B X0000000B 付録 A I/O マップ 表 A-2 I/O マップ (35XX アドレス ) (6 / 9) アービト レーション アクセス アウトプットコンペア 制御ステータス レジスタ 6 OCS6 R/W 0000XX00B 003569H アウトプットコンペア 制御ステータス レジスタ 7 OCS7 R/W 0XX00000B 00356AH アウトプット コンペアレジスタ 6 OCCP6 R/W 00356BH アウトプット コンペアレジスタ 6 OCCP6 R/W XXXXXXXXB 00356CH アウトプット コンペアレジスタ 7 OCCP7 R/W XXXXXXXXB 00356DH アウトプット コンペアレジスタ 7 OCCP7 R/W XXXXXXXXB 00356EH CAN ダイレクト モードレジスタ CDMR R/W CAN クロック 同期 XXXXXXX0B 00356FH CAN2 RX/TX 端子選択 レジスタ CANSWR R/W CAN 0/1/2/3 XXXX0000B 003570H ~ 00359FH CAN インタフェース 2/3/4 で予約済み。「第 23 章 CAN コントローラ」を参照してく ださい。 0035A0H I2C バスステータス レジスタ IBSR R 00000000B 0035A1H I2C バス制御レジスタ IBCR R/W 00000000B 0035A2H I2C 10 ビットスレーブ アドレスレジスタ ITBAL R/W 00000000B ITBAH R/W 00000000B ITMKL R/W 11111111B ITMKH R/W アドレス レジスタ 003568H 0035A3H 0035A4H 0035A5H I2C 10 ビットアドレス マスクレジスタ 周辺 アウトプット コンペア 6/7 I2C インタフェース 初期値 XXXXXXXXB 00111111B 0035A6H I2C 7 ビットスレーブア ドレスレジスタ ISBA R/W 0035A7H I2C 7 ビットアドレスマ スクレジスタ ISMK R/W 01111111B 0035A8H I2C データレジスタ IDAR R/W 00000000B 0035A9H I2C ノイズ・フィルタ・ コンフィギュレーショ ン・レジスタ *2 INFCR R/W XXXXXX01B 0035AAH 0035ABH 00000000B 予約 I2C クロック制御 レジスタ ICCR R/W I2C インタフェース 00011111B 0035ACH ~ 0035AFH 予約 607 付録 表 A-2 I/O マップ (35XX アドレス ) (7 / 9) アドレス レジスタ アービト レーション 0035B0H ~ 0035BFH アクセス 周辺 初期値 予約 0035C0H 下位バイトクロック変 調パラメータレジスタ CMPRL R/W 0035C1H 上位バイトクロック変 調パラメータレジスタ CMPRH R/W 0035C2H クロックモジュレータ 制御レジスタ CMCR R/W 0035C3H ~ 0035C8H 11111101B クロック モジュレータ XX000010B 0001X000B 予約 0035C9H インプットキャプチャ エッジレジスタ 0/1 ICE01 R/W インプット キャプチャ 0/1 XXXXX0XXB 0035CAH インプットキャプチャ エッジレジスタ 2/3 ICE23 R インプット キャプチャ 2/3 XXXXXXXXB 0035CBH インプットキャプチャ エッジレジスタ 4/5 ICE45 R/W インプット キャプチャ 4/5 XXXXX0XXB PLL XXXX0000B 0035CCH ~ 0035CEH 0035CFH 予約 PLL および特殊構成 制御レジスタ PSCCR 0035D0H ~ 0035D7H W 予約 0035D8H シリアルモード レジスタ SMR2 R/W 00000000B 0035D9H シリアル制御レジスタ SCR2 R/W 00000000B 0035DAH 受信 / 送信 データレジスタ RDR2/TDR2 R/W 00000000B/ 11111111B 0035DBH シリアルステータス レジスタ SSR2 R/W 00001000B 0035DCH 拡張通信制御レジスタ ECCR2 R/W 0035DDH 拡張ステータス 制御レジスタ ESCR2 R/W 00000X00B 0035DEH ボーレート ジェネレータ レジスタ 0 BGR02 R/W 00000000B 0035DFH ボーレート ジェネレータ レジスタ 1 BGR12 R/W 00000000B 608 UART2*1 X0000XXXB 付録 A I/O マップ 表 A-2 I/O マップ (35XX アドレス ) (8 / 9) アドレス レジスタ アービト レーション アクセス 周辺 初期値 0035E0H プログラムアドレス 検出レジスタ 0 PADR0 R/W XXXXXXXXB 0035E1H プログラムアドレス 検出レジスタ 0 PADR0 R/W XXXXXXXXB 0035E2H プログラムアドレス 検出レジスタ 0 PADR0 R/W 0035E3H プログラムアドレス 検出レジスタ 1 PADR1 R/W 0035E4H プログラムアドレス 検出レジスタ 1 PADR1 R/W XXXXXXXXB 0035E5H プログラムアドレス 検出レジスタ 1 PADR1 R/W XXXXXXXXB 0035E6H ~ 0035EFH アドレス一致 検出 0 XXXXXXXXB XXXXXXXXB 予約 0035F0H プログラムアドレス 検出レジスタ 3 PADR3 R/W XXXXXXXXB 0035F1H プログラムアドレス 検出レジスタ 3 PADR3 R/W XXXXXXXXB 0035F2H プログラムアドレス 検出レジスタ 3 PADR3 R/W XXXXXXXXB 0035F3H プログラムアドレス 検出レジスタ 4 PADR4 R/W XXXXXXXXB 0035F4H プログラムアドレス 検出レジスタ 4 PADR4 R/W 0035F5H プログラムアドレス 検出レジスタ 4 PADR4 R/W XXXXXXXXB 0035F6H プログラムアドレス 検出レジスタ 5 PADR5 R/W XXXXXXXXB 0035F7H プログラムアドレス 検出レジスタ 5 PADR5 R/W XXXXXXXXB 0035F8H プログラムアドレス 検出レジスタ 5 PADR5 R/W XXXXXXXXB アドレス一致 検出 1 XXXXXXXXB 0035F9H ~ 0035FFH 予約 003600H ~ 0036FFH CAN インタフェース 0 で予約。「第 23 章 CAN コントローラ」を参照してください。 003700H ~ 0037FFH CAN インタフェース 0 で予約。「第 23 章 CAN コントローラ」を参照してください。 609 付録 表 A-2 I/O マップ (35XX アドレス ) (9 / 9) アドレス レジスタ アービト レーション アクセス 周辺 初期値 003800H ~ 0038FFH CAN インタフェース 1 で予約。「第 23 章 CAN コントローラ」を参照してください。 003900H ~ 0039FFH CAN インタフェース 1 で予約。「第 23 章 CAN コントローラ」を参照してください。 003A00H ~ 003AFFH CAN インタフェース 2 で予約。「第 23 章 CAN コントローラ」を参照してください。 003B00H ~ 003BFFH CAN インタフェース 2 で予約。「第 23 章 CAN コントローラ」を参照してください。 003C00H ~ 003CFFH CAN インタフェース 3 で予約。「第 23 章 CAN コントローラ」を参照してください。 003D00H ~ 003DFFH CAN インタフェース 3 で予約。「第 23 章 CAN コントローラ」を参照してください。 003E00H ~ 003EFFH CAN インタフェース 4 で予約。「第 23 章 CAN コントローラ」を参照してください。 003F00H ~ 003FFFH CAN インタフェース 4 で予約。「第 23 章 CAN コントローラ」を参照してください。 * 1:UART2 は MB90V390HA, MB90V390HB でのみ有効です。 * 2:I2C ノイズ・フィルタ・コンフィギュレーション・レジスタは MB90V390HA, MB90V390HB, MB90394HA でのみ有効です。 • "X" は値が不定であることを示します。 • "0000H" ~ "00FFH" の範囲のアドレスは , MCU の主要機能のために予約されていま す。これらの予約済みアドレスへの読出しアクセスの結果は "X" になり , 書込みア クセスは禁止です。 ○書込み / 読出しについての説明 R/W : リード / ライト可能 R : リードオンリ W : ライトオンリ ○初期値についての説明 0 : このビットの初期値は "0" です。 1 : このビットの初期値は "1" です。 X : このビットの初期値は不定です。 610 付録 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 611 付録 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 命令 612 付録 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) 613 付録 ■ 実効アドレスフィールド 実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。 表 B.2-1 実効アドレスフィールド コード 表記 アドレス形式 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 レジスタ間接 614 0A @RW2 ADB 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 ビットディスプレースメント付 レジスタ間接 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) は命令のオペランドには 記述されることなく指定されます。 615 付録 図 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 次の命令 実行後 616 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 617 付録 ● 短縮直接アドレス (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 に格納する命令 ) 実行前 実行後 618 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 619 付録 ● 直接ビットアドレス (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 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PCB F F 実行後 FFC000H EF FFFFE0H 00 FFFFE1H D0 PC D 0 0 0 PCB F F 620 メモリ空間 PC 0 0 0 0 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 を参照 してください ) 621 付録 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 に例を示します。 622 付録 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 623 付録 ● ディスプレースメント付ロングレジスタ間接 (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 624 +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 625 付録 ● レジスタリスト (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 実行前 626 SP 34FDH 34FEH 実行後 付録 B 命令 ● アキュムレータ間接 (@A) アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを アクセスするアドレス方式です。アドレスの bit23 ~ bit16 はデータバンクレジスタ (DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。 図 B.4-10 アキュムレータ間接 (@A) 例 MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 DTB B B 実行後 A 0716 メモリ空間 2534 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 627 付録 ● 間接指定分岐アドレス (@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 628 メモリ空間 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 命令一覧表の読み方」を参照 してください。 629 付録 表 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 - ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 630 付録 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 631 付録 表 B.6-1 実効アドレスフィールド (1 / 2) コード *: 632 表記 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 命令でメモリなどからデータを読 み出し , メモリへ書き込む ) であるかどうか示します。 *: リードモディファイライト命令である。 - : リードモディファイライト命令ではない。 ( 注意事項 ) 読み書きで意味の異なるアドレスには使用できません。 633 付録 表 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) 634 意味 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 レジスタ並び 635 付録 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 2 × (b) byte (A) ←→ (eam) Z - - - - - - - - - XCH Ri,ear 2 7 4 byte (Ri) ←→ (ear) - - - - - - - - - - XCH Ri,eam 2+ 9 + (a) 2 - - - - - - - - - - 0 2 × (b) byte (Ri) ←→ (eam) ( 注意事項 ) 表中の (a), (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 636 付録 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 を参照してください。 637 付録 表 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 を参照してください。 638 付録 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 を参照してください。 639 付録 表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ~ RG B DIVU A 1 *1 0 0 DIVU A,ear 2 *2 1 DIVU A,eam 2+ *3 DIVUW A,ear 2 DIVUW A,eam MULU MULU オペレーション LH AH I S T N Z V C RMW word (AH) / byte (AL) 商→ byte (AL) 余り→ byte (AH) - - - - - - - * * - 0 word (A) / byte (ear) 商→ byte (A) 余り→ byte (ear) - - - - - - - * * - 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) - - - - - - - * * - *4 1 0 long (A) / word (ear) 商→ word (A) 余り→ word (ear) - - - - - - - * * - 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - 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) byte (A) * byte (eam) → word (A) - - - - - - - - - - MULUW A 1 *11 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - - MULUW A,ear 2 *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - MULUW A,eam 2+ *13 0 (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 を参照してください。 640 付録 B 命令 表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ~ RG B DIV A 2 *1 0 0 DIV A,ear 2 *2 1 DIV A,eam 2+ *3 DIVW A,ear 2 DIVW A,eam 2+ MUL A 2 *8 MUL A,ear 2 *9 MUL A,eam 2+ *10 MULW A 2 *11 MULW A,ear 2 MULW A,eam 2+ オペレーション LH AH I S T N Z V C RMW word (AH) / byte (AL) 商 --> byte (AL) 余り→ byte (AH) Z - - - - - - * * - 0 word (A) / byte (ear) 商 --> byte (A) 余り→ byte (ear) Z - - - - - - * * - 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) Z - - - - - - * * - *4 1 0 long (A) / word (ear) 商 --> word (A) 余り→ word (ear) - - - - - - - * * - *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - - *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - *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 を参照してください。 641 付録 表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW AND A,#imm8 2 2 0 0 byte (A) ← (A) and imm8 - - - - - * * R - - AND A,ear 2 3 1 0 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 を参照してください。 642 付録 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 - - LH AH I S T N Z V C RMW long (A) ← (A) and (ear) - - - - - * * R - - long (A) ← (A) and (eam) - - - - - * * R - - XORL A,ear 2 6 2 0 long (A) ← (A) xor (ear) - - - - - * * R - - XORL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) xor (eam) - - - - - * * R - - LH AH I S T N Z V C RMW ( 注意事項 ) 表中の (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) 643 付録 表 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 ROLC ear 2 3 2 ROLC eam 2+ 5+(a) 0 ASR A,R0 2 *1 1 LSR A,R0 2 *1 1 LSL A,R0 2 *1 ASRW A 1 LSRW A/SHRW A LSLW A/SHLW A 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 2 × (b) byte (eam) ← 右ローテートキャリー付 0 byte (ear) ← 左ローテートキャリー付 - - - - * * - * - - - - - * * - * * - - - - - * * - * - 2 × (b) byte (eam) ← 左ローテートキャリー付 - - - - - * * - * * 0 byte (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - 0 byte (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 1 0 byte (A) ← ロジカル左バレルシフト (A,R0) - - - - - * * - * - 2 0 0 word (A) ← 算術右シフト (A,1 ビット ) - - - - * * * - * - 1 2 0 0 word (A) ← ロジカル右シフト (A,1 ビット ) - - - - * R * - * - 1 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) - - - - - * * - * - *1:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 5+(R0) *2:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 6+(R0) ( 注意事項 ) 表中の (a),(b) は , 表 B.5-1 および表 B.5-2 を参照してください。 644 - 付録 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) - - - - - - - - - - 5 2 0 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - 6+(a) 0 (d) word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - JMPP @ear 注 1) 2 JMPP @eam 注 1) 2+ JMPP addr24 4 4 0 0 CALL @ear 注 2) 2 6 1 (c) word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (PC) ← (ear) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 × (c) word (PC) ← (eam) CALL @eam 注 2) 2+ 7+(a) 0 CALL addr16 注 3) 3 6 0 CALLV #vct4 注 3) 1 7 0 2 × (c) ベクタコール命令 CALLP 2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23 @ear 注 4) 2 10 2 CALLP @eam 注 4) 2+ 11+(a) 0 CALLP addr24 注 5) 4 10 0 (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 を参照してください。 645 付録 表 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 で分岐 - - - - - * * * * - 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - DBNZ ear,rel 3 *5 2 DBNZ eam,rel 3+ *6 2 DWBNZ ear,rel 3 *5 2 DWBNZ eam,rel 3+ *6 2 LH AH I S T N Z V C RMW CBNE eam,#imm8,rel CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - CWBNE eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - - - - - - * * * - * 0 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 0 word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - 2 × (c) word (eam) = (eam) - 1, (eam) ≠ 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) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - LINK #imm8 UNLINK RET 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - RETP 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - *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 を参照してください。 646 付録 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 を参照してください。 647 付録 表 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 (io:bp) b = 1 になるまで待つ - - - - - - - - - - WBTC io:bp 3 *4 0 *5 (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 * - - - 648 付録 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 を参照してください。 649 付録 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 に示します。 650 付録 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 命令 651 652 A SWAP ADDSP ADB SPB #8 C0 D0 E0 ea 系命令 その 2 #4 rel BNT BT +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 rel ビット操 MOV ea, Ri 作系命令 rel rel BLS 文字列操 XCH Ri, ea 作系命令 2 バイト XCHW RWi, ea 系命令 BHI rel BGT MOVW ea, RWi BLE rel BGE MOVW RWi, ea 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 BLT rel A 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 BNV rel SUBL SUBW A, #32 A MOVW MOVX RET A SP, A A, addr16 A, #8 rel rel ea 系命令 その 8 A NOT XOR BV rel MULU A MOVW MOVW RETP A, SP io, #16 ea 系命令 その 7 DIVU A, #8 rel OR OR CCR, #8 BP A, #8 BC/BLO BNZ/BNE rel BZ/BEQ F0 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 B0 MOV MOV MOV MOVX A, MOV CALL ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 その 1 A0 BNC/BHS rel @A rel 90 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 JMP BRA 80 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 A, #8 io, A A, io 70 rel CMP MOV MOV 60 rel dir, A A, dir 50 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV MOV 40 BN 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.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) 653 654 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.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) 655 656 @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.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) 657 658 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.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) 659 660 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.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) 661 662 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.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) 663 664 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.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) 665 666 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.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) 667 668 +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.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) 669 670 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.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) 671 付録 付録 C フラッシュメモリモードのタイミングダイヤグラム フラッシュメモリモードにおける MB90390 シリーズでの外部端子の各タイミング ダイヤグラムを以下に示します。 ■ 読出しアクセスによるデータ読出し 図 C-1 読出しアクセスのタイミングダイヤグラム tRC アドレス安定 AQ16~AQ0 tACC CE tDF tOE OE tOEH WE tOH tCE ハイ インピーダンス DQ7~DQ0 出力定義済 ハイインピーダンス ■ 書込み , データポーリング , 読出し (WE 制御 ) 図 C-2 書込みアクセス (WE 制御 ) のタイミングダイヤグラム 3rdバスサイクル データポーリング AQ18 ~ AQ0 7AAAAH PA tWC tAS PA tRC tAH CE tGHWL OE tWP tWHWH1 WE tDF tDH A0H DQ7 ~ DQ0 tOE tWPH tcs PD DQ7 DOUT tDS tOH 5.0 V tCE PA : 書込みアドレス PD : 書込みデータ DQ7 : 書込みデータの反転出力 DOUT : 書込みデータの出力 <注意事項> 4 つのバスサイクルのうち , 最後の 2 つのバスサイクルシーケンスを記述します。 672 付録 C フラッシュメモリモードのタイミングダイヤグラム ■ 書込み , データポーリング , 読出し (CE 制御 ) 図 C-3 書込みアクセス (CE 制御 ) のタイミングダイヤグラム 3rdバスサイクル データポーリング 7AAAAH AQ18~AQ0 PA tWC tAS PA tAH tWH WE tGHWL OE tCP tWHWH1 CE tCPH tWS tDH A0H DQ7~DQ0 PD DQ7 DOUT tDS 5.0 V 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 DQ7 ~ DQ0 tDH AAH 55H 80? AAH 55H 10H/30H tDS VCC tVCS 673 付録 <注意事項> SA はセクタ消去におけるセクタアドレスです。"7AAAH" ( または 6AAAAH) はチップ消去に おけるアドレスです。 ■ データポーリング 図 C-5 データポーリングのタイミングダイヤグラム tCH CE tOE tDF 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=トグル停止 t OE *:DQ6 は有効データです ( デバイスは自動動作を停止します )。 674 DQ7~DQ0 =有効 付録 C フラッシュメモリモードのタイミングダイヤグラム ■ 書込み / 消去中の RY/BY タイミング 図 C-7 書込み / 消去中の RY/BY 信号出力のタイミングダイヤグラム CE 最終書込みパルスの 立上りエッジ WE 書込みまたは消去 RY/ BY t BUSY ■ RST と RY/BY タイミング 図 C-8 ハードウェアリセット時の RY/BY 信号出力のタイミングダイヤグラム CE RY/ BY tRP RST tREADY ■ セクタプロテクト許可 / セクタプロテクト検証 図 C-9 セクタプロテクト許可 / セクタプロテクト検証 AQ18~AQ9 SAx AQ8, AQ2, AQ1 SAy (AQ8, AQ2, AQ1) = (0, 1, 0) MD0 12 V 5 V MD2 12 V 5 V tVLHT tVLHT OE WE tWPP tOESP CE tCSP DQ7~DQ0 01H SA SA x:最初のセクタアドレス tOE y:次のセクタアドレス 675 付録 ■ セクタプロテクト一時取消し 図 C-10 セクタプロテクト一時取消し MD1 12 V 5 V 5 V CE WE tVLHT RY/BY 676 書込み/消去コマンドシーケンス 付録 D 割込みベクタ一覧表 付録 D 割込みベクタ一覧表 割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の "FFFC00H" ~ "FFFFFFH" に割り当ててあり , ソフトウェア割込みと共通で使用しています。 ■ 割込みベクタ一覧表 表 D-1 に , MB90390 シリーズの割込みベクタ一覧表を示します。 表 D-1 割込みベクタ一覧表 (1 / 2) ソフトウェア 割込み命令 ベクタ アドレス L ベクタ アドレス M ベクタ アドレス H モード レジスタ 割込み No INT0 FFFFFCH FFFFFDH FFFFFEH 未使用 #0 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 なし INT8 FFFFDCH FFFFDDH FFFFDEH FFFFDF #8 (RESET ベクタ ) INT9 FFFFD8H FFFFD9H FFFFDAH 未使用 #9 INT9 命令 INT10 FFFFD4H FFFFD5H FFFFD6H 未使用 #10 < 例外 > INT11 FFFFD0H FFFFD1H FFFFD2H 未使用 #11 タイムベースタイマ INT12 FFFFCCH FFFFCDH FFFFCEH 未使用 #12 外部割込み (INT0 ~ INT7) INT13 FFFFC8H FFFFC9H FFFFCAH 未使用 #13 CAN0 RX INT14 FFFFC4H FFFFC5H FFFFC6H 未使用 #14 CAN0 TX/NS INT15 FFFFC0H FFFFC1H FFFFC2H 未使用 #15 CAN1 RX INT16 FFFFBCH FFFFBDH FFFFBEH 未使用 #16 CAN1 TX/NS INT17 FFFFB8H FFFFB9H FFFFBAH 未使用 #17 PPG0/PPG1/(CAN2 RX) INT18 FFFFB4H FFFFB5H FFFFB6H 未使用 #18 PPG2/PPG3/(CAN2 TX/NS) INT19 FFFFB0H FFFFB1H FFFFB2H 未使用 #19 PPG4/PPG5/(CAN3 RX) INT20 FFFFACH FFFFADH FFFFAEH 未使用 #20 PPG6/PPG7/(CAN3 TX/NS) INT21 FFFFA8H FFFFA9H FFFFAAH 未使用 #21 PPG8/PPG9/(CAN4 RX) INT22 FFFFA4H FFFFA5H FFFFA6H 未使用 #22 PPGA/PPGB/(CAN4 TX/NS) INT23 FFFFA0H FFFFA1H FFFFA2H 未使用 #23 16 ビットリロードタイマ 0 INT24 FFFF9CH FFFF9DH FFFF9EH 未使用 #24 16 ビットリロードタイマ 1 INT25 FFFF98H FFFF99H FFFF9AH 未使用 #25 インプットキャプチャ 0/1 INT26 FFFF94H FFFF95H FFFF96H 未使用 #26 アウトプットコンペア 0/1 ハードウェア割込み なし ・ ・ ・ 677 付録 表 D-1 割込みベクタ一覧表 (2 / 2) ソフトウェア 割込み命令 ベクタ アドレス L ベクタ アドレス M ベクタ アドレス H モード レジスタ 割込み No INT27 FFFF90H FFFF91H FFFF92H 未使用 #27 インプットキャプチャ 2/3 アウトプットコンペア 6 INT28 FFFF8CH FFFF8DH FFFF8EH 未使用 #28 アウトプットコンペア 2/3 INT29 FFFF88H FFFF89H FFFF8AH 未使用 #29 インプットキャプチャ 4/5 アウトプットコンペア 7 INT30 FFFF84H FFFF85H FFFF86H 未使用 #30 アウトプットコンペア 4/5 (I2C) INT31 FFFF80H FFFF81H FFFF82H 未使用 #31 A/D コンバータ INT32 FFFF7CH FFFF7DH FFFF7EH 未使用 #32 I/O タイマ 0/1/ 時計タイマ INT33 FFFF78H FFFF79H FFFF7AH 未使用 #33 シリアル I/O INT34 FFFF74H FFFF75H FFFF76H 未使用 #34 サウンドジェネレータ INT35 FFFF70H FFFF71H FFFF72H 未使用 #35 UART0 RX INT36 FFFF6CH FFFF6DH FFFF6EH 未使用 #36 UART0 TX INT37 FFFF68H FFFF69H FFFF6AH 未使用 #37 UART1 RX INT38 FFFF64H FFFF65H FFFF66H 未使用 #38 UART1 TX INT39 FFFF60H FFFF61H FFFF62H 未使用 #39 UART3 RX/(UART2 RX) INT40 FFFF5CH FFFF5DH FFFF5EH 未使用 #40 UART3 TX/(UART2 TX) INT41 FFFF58H FFFF59H FFFF5AH 未使用 #41 フラッシュメモリ INT42 FFFF54H FFFF55H FFFF56H 未使用 #42 遅延割込み INT43 FFFF50H FFFF51H FFFF52H 未使用 #43 なし ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT254 FFFC04H FFFC05H FFFC06H 未使用 #254 なし INT255 FFFC00H FFFC01H FFFC02H 未使用 #255 なし 678 ハードウェア割込み ・ ・ ・ 付録 D 割込みベクタ一覧表 ■ 割込み要因と割込みベクタ・割込み制御レジスタ 表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (1 / 2) 割込み要因 EI2OS クリア 割込みベクタ 割込み制御レジスタ 番号 アドレス 番号 アドレス リセット × #08 FFFFDCH - - INT9 命令 × #09 FFFFD8H - - 例外 × #10 FFFFD4H - - タイムベースタイマ × #11 FFFFD0H ICR00 外部割込み (INT0 ~ INT7) ○ 0000B0H #12 FFFFCCH CAN0 RX × #13 FFFFC8H ICR01 0000B1H CAN0 TX/NS × #14 FFFFC4H CAN1 RX × #15 FFFFC0H ICR02 0000B2H CAN1 TX/NS × #16 FFFFBCH PPG0/PPG1/(CAN2 RX) × #17 FFFFB8H ICR03 × 0000B3H PPG2/PPG3/(CAN2 TX/NS) #18 FFFFB4H PPG4/PPG5/(CAN3 RX) × #19 FFFFB0H ICR04 0000B4H PPG6/PPG7/(CAN3 TX/NS) × #20 FFFFACH PPG8/PPG9/(CAN4 RX) × #21 FFFFA8H ICR05 × 0000B5H PPGA/PPGB/(CAN4 TX/NS) #22 FFFFA4H 16 ビットリロードタイマ 0 ○ #23 FFFFA0H ICR06 16 ビットリロードタイマ 1 ○ 0000B6H #24 FFFF9CH インプットキャプチャ 0/1 ○ #25 FFFF98H ICR07 0000B7H アウトプットコンペア 0/1 ○ #26 FFFF94H インプットキャプチャ 2/3/ アウトプットコンペア 6 ○ #27 FFFF90H ICR08 0000B8H アウトプットコンペア 2/3 ○ #28 FFFF8CH インプットキャプチャ 4/5/ アウトプットコンペア 7 ○ #29 FFFF88H ICR09 0000B9H アウトプットコンペア 4/5/(I2C) ○ #30 FFFF84H A/D コンバータ ○ #31 FFFF80H ICR10 0000BAH I/O タイマ 0/1/ 時計タイマ × #32 FFFF7CH シリアル I/O ○ #33 FFFF78H ICR11 サウンドジェネレータ × 0000BBH #34 FFFF74H 679 付録 表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (2 / 2) 割込み要因 EI2OS クリア 割込みベクタ 番号 アドレス UART0 RX ◎ #35 FFFF70H UART0 TX ○ #36 FFFF6CH UART1 RX ◎ #37 FFFF68H UART1 TX ○ #38 FFFF64H UART3 RX/(UART2 RX) ◎ #39 FFFF60H UART3 TX/(UART2 TX) ○ #40 FFFF5CH フラッシュメモリ × #41 FFFF58H 遅延割込み × #42 FFFF54H 割込み制御レジスタ 番号 アドレス ICR12 0000BCH ICR13 0000BDH ICR14 0000BEH ICR15 0000BFH ○ :EI2OS 割込みクリア信号または EI2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアされます。 ◎ :EI2OS 割込みクリア信号または EI2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアされます。 ストップ要求はあります。 × :EI2OS 割込みクリア信号にて割込み要求フラグはクリアされません。 <注意事項> • 1 つの割込み番号に対して 2 つの割込み要因を持つ周辺モジュールについては , EI2OS 割込みクリア信号にて , 両方の割込み要求フラグがクリアされます。 • EI2OS の終了時には , EI2OS クリア信号が同じ割込み番号に割り当てられている複数 の割込みフラグに送られます。 • EI2OS が許可されていると , 同じ割込み制御レジスタ (ICR) に割り当てられている 2 つ の割込みのうちのいずれか 1 つが発生すると EI2OS を起動します。このことは , 本来 各割込み要因に固有であるべき EI2OS ディスクリプタが , 2 つの割込みで共有されて いることを意味します。したがって , 一方の割込みが許可されているときは , 他方の割 込みを禁止にしなければなりません。 680 索引 索引 Numerics 10 ビットアドレスマスクレジスタ I2C10 ビットアドレスマスクレジスタ (ITMK) の内容 ................................................416 10 ビットスレーブアドレスレジスタ 10 ビットスレーブアドレスレジスタ (ITBA) の 内容 ..................................................................414 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアの レジスタ一覧 ..................................................184 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの レジスタ一覧 ..................................................185 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........220 16 ビット入出力タイマ 16 ビット入出力タイマのブロック ダイヤグラム ..................................................183 16 ビットフリーランタイマ 16 ビットフリーランタイマ ................................182 16 ビットフリーランタイマ 0/1 の レジスタ一覧 ..................................................184 16 ビットフリーランタイマのタイミング ........192 16 ビットフリーランタイマの動作 ....................191 16 ビットフリーランタイマのブロックダイヤグ ラム ..................................................................186 16 ビットリロードタイマ 16 ビットリロードタイマ ( イベントカウント機 能付き ) の概要 ...............................................214 16 ビットリロードタイマの アンダフロー動作 ..........................................223 16 ビットリロードタイマの出力端子機能 ........224 16 ビットリロードタイマの 内部クロック動作 ..........................................221 16 ビットリロードタイマの入力端子機能 ( 内部 クロックモード時 ) ........................................221 16 ビットリロードタイマのブロックダイヤグラ ム ......................................................................215 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタ ................216 16 ビットリロードレジスタ 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........220 24 ビットオペランド 24 ビットオペランド指定 ......................................30 2 コンペアレジスタ CMOD[1:0] = 01B のときの 2 コンペアレジスタで のサンプル出力波形 ...................................... 201 3M ビットフラッシュメモリ 3M ビットフラッシュメモリのセクタ構成 ...... 552 3M ビットフラッシュメモリの特長 .................. 550 3M ビットフラッシュメモリの プログラム例 ..................................................577 7 ビットスレーブアドレスマスクレジスタ I2C7 ビットスレーブアドレスマスク レジスタ (ISMK) ............................................ 418 I2C7 ビットスレーブアドレスマスクレジスタの 内容 .................................................................. 418 7 ビットスレーブアドレスレジスタ I2C7 ビットスレーブアドレスレジスタの 内容 .................................................................. 417 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ....... 291 8/10 ビット A/D コンバータの EI2OS 機能 ....... 285 8/10 ビット A/D コンバータの機能 ...................270 8/10 ビット A/D コンバータの端子 ...................274 8/10 ビット A/D コンバータの端子部のブロック ダイヤグラム ..................................................275 8/10 ビット A/D コンバータのブロックダイヤグ ラム .................................................................. 272 8/10 ビット A/D コンバータの レジスタ一覧 ..................................................276 8/10 ビット A/D コンバータの割込み ............... 285 8/10 ビット A/D コンバータの割込みと EI2OS ................................................................ 285 8/16 ビット PPG 8/16 ビット PPG のカウントクロックの 選択 .................................................................. 254 8/16 ビット PPG の各ハードウェアの 初期値 .............................................................. 257 8/16 ビット PPG の機能 .......................................238 8/16 ビット PPG の出力動作 ............................... 252 8/16 ビット PPG の動作 .......................................251 8/16 ビット PPG の動作モード ........................... 251 8/16 ビット PPG のパルスの端子出力の 制御 .................................................................. 255 8/16 ビット PPG のブロックダイヤグラム ....... 239 8/16 ビット PPG の割込み ................................... 256 8/16 ビット PPG のリロード値とパルス幅の関係 8/16 ビット PPG のリロード値とパルス幅の 関係 .................................................................. 253 8/16 ビット PPG のレジスタ 8/16 ビット PPG のレジスタ ............................... 243 681 索引 A A アキュムレータ (A) ................................................36 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ 0(ADCS0) ..........280 A/D 制御ステータスレジスタ 1(ADCS1) ..........278 A/D データレジスタ A/D データレジスタ (ADCR0,ADCR1) ..............283 A/D 変換 A/D 変換データ保護機能 .....................................289 A/D 変換の EI2OS 使用 ........................................288 ADCR A/D データレジスタ (ADCR0,ADCR1) ..............283 ADCS1 A/D 制御ステータスレジスタ 1(ADCS1) ..........278 ADER アナログ入力許可 /A/D コンバータ選択レジスタ の上位ビット (ADER1) ..................................277 アナログ入力許可 /AD コンバータ選択レジスタ の下位ビット (ADER0) ..................................277 AMR0/AMR1 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................485 AMSR アクセプタンスマスク選択レジスタ (AMSR) ............................................................483 B BAP バッファアドレスポインタ (BAP) .......................70 BTR ビットタイミングレジスタ (BTR) .....................469 ビットタイミングレジスタ (BTR) の内容 ........469 BVALR メッセージバッファ有効レジスタ (BVALR) ..........................................................471 BVAL ビット BVAL ビットによるメッセージバッファ禁止時の 注意 (-H 品 , MB90F394H, MB90V390H など ) ................................................................510 BVAL ビットによるメッセージバッファ禁止時の 注意 (-H 品以外 , MB90V390HA/HB など ) ....511 BY RST と RY/BY タイミング ..................................675 書込み / 消去中の RY/BY タイミング ...............675 C CANSWR CAN2 RX/TX 端子選択レジスタ (CANSWR) .......................................................507 CAN 選択レジスタ (CANSWR) の内容 .............507 CAN コントローラ CAN コントローラの受信フローチャート .......498 CAN コントローラの送信の開始 .......................493 CAN コントローラの送信の完了 .......................494 CAN コントローラの送信フローチャート .......494 CAN コントローラの送信要求の解除 ...............493 CAN コントローラの特長 ...................................450 682 CAN コントローラのブロック ダイヤグラム ..................................................451 CAN 選択レジスタ CAN 選択レジスタ (CANSWR) の内容 ............. 507 CAN ダイレクトモードレジスタ CAN ダイレクトモードレジスタの内容 ........... 509 CCR コンディションコードレジスタ (CCR) ............... 38 CDCR シリアル I/O プリスケーラ (CDCR) .................. 439 CDMR CAN ダイレクトモードレジスタ (CDMR) ....... 509 CE 書込み , データポーリング , 読出し (CE 制御 ) ........................................................ 673 CKSCR クロック選択レジスタ (CKSCR) .......................... 87 CLK 同期 CLK 同期ボーレート ...........................................314 CLK 非同期 CLK 非同期ボーレート .......................................314 CMCR クロックモジュレータ制御レジスタ (CMCR) ............................................................ 103 CMOD CMOD[1:0] = 00B のときの出力波形例 ............. 200 CMOD[1:0] = 01B のときの 2 コンペアレジスタで のサンプル出力波形 ...................................... 201 CMOD[1:0] = 10B のときの サンプル出力波形 .......................................... 202 CMOD[1:0] = 11B のときの サンプル出力波形 .......................................... 203 CMR コモンレジスタバンクプレフィックス (CMR) .................................................................45 CPU CPU の概要 .............................................................. 24 CPU 間欠動作モード CPU 間欠動作モード ....................................131, 139 CPU 間接続 CPU 間接続方式 ....................................................370 CPU 動作モード CPU 動作モードと消費電流 ................................130 CSR 制御ステータスレジスタ (CSR) ( 下位 ) ........... 459 制御ステータスレジスタ (CSR) ( 上位 ) ........... 461 D DCT データカウンタ (DCT) ...........................................69 DIRR 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延 割込み要求レジスタ ) ...................................... 79 DIV A, Ri 「DIV A, Ri」「DIVW A, RWi」命令使用上の 注意 .................................................................... 47 DIVW A, RWi 「DIV A, Ri」「DIVW A, RWi」命令使用上の 注意 .................................................................... 47 DLCRx DLC レジスタ x(x=0 ~ 15)(DLCRx) .................. 490 索引 DLC レジスタ メッセージバッファ (DLC レジスタとデータレジ スタ ) の一覧 ...................................................456 DLC レジスタ x DLC レジスタ x(x=0 ~ 15)(DLCRx) ..................490 DQ2 トグルビット 2 フラグ (DQ2) .............................565 DQ3 セクタ消去タイマフラグ (DQ3) .........................564 DQ5 タイミングリミット超過フラグ (DQ5) .............563 DQ6 トグルビットフラグ (DQ6) .................................562 DQ7 データポーリングフラグ (DQ7) .........................561 DTP DTP の動作 ............................................................265 DTP 要求と外部割込み要求の切替え ................266 DTP/ 外部割込み DTP/ 外部割込みの概要 .......................................260 DTP/ 外部割込みのブロックダイヤグラム .......260 DTP/ 外部割込みのレジスタ ...............................261 DTP/ 外部割込みの使用上の注意 .......................267 DTRx データレジスタ x(x=0 ~ 15)(DTRx) ..................491 E EI2OS EI2OS( 拡張インテリジェント I/O サービス ) ..................................................324 UART2, UART3 の割込みと EI2OS ....................330 インテリジェント I/O サービス (EI2OS) 機能と割 込み ..................................................................214 拡張インテリジェント I/O サービス (EI2OS) ...............................................................67 拡張インテリジェント I/O サービス (EI2OS) ...............................................................51 2 EI OS ステータスレジスタ EI2OS ステータスレジスタ (ISCS) .......................71 EIRR 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............262 ELVR 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ......................263 ENIR 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............262 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................636 FMCS 制御ステータスレジスタ (FMCS) ......................555 I I/O レジスタアドレスポインタ I/O レジスタアドレスポインタ (IOA) .................70 I/O ポート I/O ポート .............................................................. 160 I/O ポートのレジスタ I/O ポートのレジスタ .......................................... 161 I/O マップ I/O マップ .............................................................. 596 I/O マップ (35XX アドレス ) ............................... 602 I2C7 ビットスレーブアドレスレジスタ I2C7 ビットスレーブアドレスレジスタ ............417 2 I C インタフェース I2C インタフェースの機能 ..................................398 I2C インタフェースのブロック ダイヤグラム ..................................................399 I2C インタフェースのレジスタ一覧 .................. 400 I2C クロック制御レジスタ I2C クロック制御レジスタ (ICCR) .....................420 I2C クロック制御レジスタ (ICCR) の内容 ........421 2C データレジスタ I I2C データレジスタの内容 ..................................419 I2C データレジスタ (IDAR) ................................419 2C バスステータスレジスタ I I2C バスステータスレジスタ (IBSR) ................. 402 I2C バスステータスレジスタ (IBSR) の 内容 .................................................................. 403 I2C バス制御レジスタ I2C バス制御レジスタ (IBCR) ............................. 405 IBCR I2C バス制御レジスタ (IBCR) ............................. 405 バス制御レジスタ (IBCR) の内容 ...................... 407 IBSR I2C バスステータスレジスタ (IBSR) ................. 402 I2C バスステータスレジスタ (IBSR) の 内容 .................................................................. 403 ICCR I2C クロック制御レジスタ (ICCR) .....................420 ICE インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) .................................... 209 ICR 割込み制御レジスタ (ICR) ....................................55 ID ID の設定 ...............................................................499 IDAR I2C データレジスタ (IDAR) ................................419 IDER IDE レジスタ (IDER) ............................................ 472 IDE レジスタ IDE レジスタ (IDER) ............................................ 472 IDRx ID レジスタ x(x=0 ~ 15)(IDRx) .......................... 488 ID レジスタ メッセージバッファ (ID レジスタ ) の 一覧 .................................................................. 454 ID レジスタ x ID レジスタ x(x=0 ~ 15)(IDRx) .......................... 488 ILM インタラプトレベルマスクレジスタ (ILM) .......39 INFCR ノイズ・フィルタ・コンフィギュレーション・レ ジスタ (INFCR) ............................................... 424 INT SCC, MSS , INT ビット競合 ................................410 683 索引 IOA I/O レジスタアドレスポインタ (IOA) .................70 ISCS EI2OS ステータスレジスタ (ISCS) .......................71 ISD 拡張インテリジェント I/O サービスディスクリプ タ (ISD) ..............................................................69 ITBA I2C10 ビットスレーブアドレスレジスタ (ITBA) ..............................................................414 ITMK I2C10 ビットアドレスマスクレジスタ (ITMK) .............................................................415 L LEIR ラストイベント表示レジスタ (LEIR) ................466 ラストイベント表示レジスタ (LEIR) の 内容 ..................................................................467 LIN LIN マスタ / スレーブ型通信機能 ......................390 UART2, UART3 の LIN スレーブデバイス .......392 UART2, UART3 の LIN マスタデバイス ...........391 非同期 LIN モード動作 ........................................380 LIN-UART LIN-UART2, UART3 の端子 ................................336 LIN-UART2,UART3 の割込み .............................355 LIN-UART2,UART3 の割込みと EI2OS .............358 LPMCR スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................151 低消費電力モード制御レジスタ (LPMCR) .......135 M MB90390 MB90390 割込みベクタ一覧表 .............................65 MB90F394H MB90F394H シリアル書込み接続の 基本構成 ..........................................................582 MSS SCC, MSS , INT ビット競合 ................................410 N NCC フラグ変化抑止プレフィックス (NCC) ...............45 P PACSR プログラムアドレス検出制御 / ステータスレジス タ (PACSR) ......................................................539 PADR プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5) ...........................539 PC プログラムカウンタ (PC) ......................................41 684 PLL PLL および特殊構成制御レジスタ (PSCCR) の 構成 .................................................................... 90 PLL クロック逓倍率 PLL クロック逓倍率の選択 ..................................92 PLL クロックモード メインクロックモード , PLL クロックモード ........................................ 92 PPG PPG0, PPG1 クロック選択レジスタ (PPG01) ............................................................ 248 PPG0 動作モード制御レジスタ PPG0 動作モード制御レジスタ (PPGC0) ..........244 PPG1 動作モード制御レジスタ PPG1 動作モード制御レジスタ (PPGC1) ..........246 PPGC0 PPG0 動作モード制御レジスタ (PPGC0) ..........244 PPGC1 PPG1 動作モード制御レジスタ (PPGC1) ..........246 PRLL, PRLH リロードレジスタ (PRLL, PRLH) .......................250 PS プロセッサステータス (PS) ..................................38 PSCCR PLL および特殊構成制御レジスタ (PSCCR) の 構成 .................................................................... 90 PWM PWM 設定値を変更する場合の注意 .................. 523 PWM1 および PWM2 コンペアレジスタ PWM1 および PWM2 コンペアレジスタ ..........518 PWM1 選択レジスタ PWM1 選択レジスタ ............................................ 519 PWM2 選択レジスタ PWM2 選択レジスタ ............................................ 521 PWM 制御 0 レジスタ PWM 制御 0 レジスタ .......................................... 516 PWS2n パルス幅モジュレータ 2 選択レジスタ (PWS2n) の内容 .............................................................. 522 R RCR 受信完了レジスタ (RCR) .....................................479 RFWTR リモートフレーム受信待機レジスタ (RFWTR) .......................................................... 475 RIER 受信割込み許可レジスタ (RIER) ........................ 482 ROMM ROM ミラー機能選択レジスタ (ROMM) ..........547 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールのブロックダイ ヤグラム .......................................................... 546 ROM ミラー機能選択レジスタ ROM ミラー機能選択レジスタ (ROMM) ..........547 ROVRR 受信オーバランレジスタ (ROVRR) ...................481 RP レジスタバンクポインタ (RP) ..............................39 RRTRR リモート要求受信レジスタ (RRTRR) ................ 480 索引 RST RST と RY/BY タイミング ..................................675 RTEC 受信および送信エラーカウンタ (RTEC) ...........468 受信および送信エラーカウンタ (RTEC) の 内容 ..................................................................468 RY RST と RY/BY タイミング ..................................675 書込み / 消去中の RY/BY タイミング ...............675 S SCC SCC, MSS , INT ビット競合 ................................410 SCR シリアル制御レジスタ (SCR2/SCR3) .................339 SDR シリアルシフトデータレジスタ (SDR) .............438 SGCR サウンドジェネレータ制御レジスタ (SGCR) ( 下位 ) ..............................................................528 サウンドジェネレータ制御レジスタ (SGCR) ( 上位 ) の内容 .................................................531 SMCS シリアルモード制御ステータスレジスタの 上位バイト (SMCS) ........................................434 SMR シリアルモードレジスタ (SMR2/SMR3) ...........342 SSP ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) ..............................................37 T TBTC タイムベースタイマ制御レジスタ (TBTC) .............................................................169 TCANR 送信解除レジスタ (TCANR) ...............................476 TCR 送信完了レジスタ (TCR) .....................................477 TIER 送信割込み許可レジスタ (TIER) ........................478 TMCSR タイマ制御ステータスレジスタ (TMCSR) の 内容 ..................................................................217 タイマ制御ステータスレジスタ (TMCSR) の 配置 ..................................................................217 TMR 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........220 TMRLR 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........220 TREQR 送信要求レジスタ (TREQR) ................................473 TRTRR 送信 RTR レジスタ (TRTRR) ..............................474 U UART LIN-UART2, UART3 の端子 ................................336 LIN-UART2,UART3 の割込み ............................. 355 LIN-UART2,UART3 の割込みと EI2OS ............. 358 UART0,UART1 の動作モード ............................. 313 UART0,UART1 の特長 .........................................302 UART0,UART1 のブロック ダイヤグラム ..................................................303 UART2, UART3 の EI2OS 機能 ........................... 358 UART2, UART3 の LIN スレーブデバイス ....... 392 UART2, UART3 の LIN マスタデバイス ........... 391 UART2, UART3 の機能 ........................................ 328 UART2, UART3 の構成 ........................................ 331 UART2, UART3 の端子のブロック ダイヤグラム ..................................................337 UART2, UART3 の動作 ........................................ 370 UART2, UART3 のブロックダイヤグラム ........332 UART2, UART3 のレジスタ一覧 ........................ 338 UART2, UART3 の割込みと EI2OS .................... 330 UART2, UART3 ボーレート選択 ........................ 363 UART2,UART3 使用上の注意 ............................. 393 UART2,UART3 端子直接アクセス .....................384 UART のレジスタ ................................................304 UIDR インプットデータレジスタ (UIDR) とアウトプッ トレジスタ (UODR) .......................................310 UMC シリアルモード制御レジスタ (UMC) ................ 305 UODR インプットデータレジスタ (UIDR) とアウトプッ トレジスタ (UODR) .......................................310 URD レート・データレジスタ (URD) ........................ 311 USP ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) .............................................. 37 USR ステータスレジスタ (USR) の構成 .................... 307 W WDTC ウォッチドッグタイマ制御レジスタ (WDTC) ............................................................ 175 WE 書込み , データポーリング , 読出し (WE 制御 ) ....................................................... 672 X x メッセージバッファ (x) による受信方法 ..........503 メッセージバッファ (x) による送信方法 ..........501 あ アービトレーション アービトレーション ............................................ 427 685 索引 アウトプットコンペア アウトプットコンペア .........................................193 アウトプットコンペア ( モジュールごとに 2 チャ ネル ) ................................................................182 アウトプットコンペアのタイミング .................204 アウトプットコンペアのブロック ダイヤグラム ..................................................193 アウトプットコンペア制御ステータスレジスタ アウトプットコンペア制御ステータスレジスタ ( 下位 ) ..............................................................195 アウトプットコンペア制御ステータスレジスタ ( 上位 ) ..............................................................197 アウトプットコンペアレジスタ アウトプットコンペアのアウトプットコンペア レジスタ ..........................................................194 アウトプットコンペアレジスタ 0(4) 値 アウトプットコンペアレジスタ 0(4) 値とコンペ アマッチしたときのカウンタクリア ..........192 アウトプットレジスタ インプットデータレジスタ (UIDR) とアウトプッ トレジスタ (UODR) .......................................310 アキュムレータ アキュムレータ (A) ................................................36 アクセプタンスフィルタ アクセプタンスフィルタの設定 .........................500 アクセプタンスフィルタリング アクセプタンスフィルタリング .........................495 アクセプタンスマスク選択レジスタ アクセプタンスマスク選択レジスタ (AMSR) ............................................................483 アクセプタンスマスクレジスタ アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................485 アクノリッジ アクノリッジ .........................................................427 アドレス アドレス作成の方式 ...............................................27 アドレス一致検出機能 アドレス一致検出機能のシステム構成例 .........542 アドレス一致検出機能の動作 .............................541 アドレス一致検出機能のブロック ダイヤグラム ..................................................538 アドレス指定 バンク方式によるアドレス指定 ...........................31 アドレッシング アドレッシング .............................................426, 613 間接アドレッシング .............................................622 直接アドレッシング .............................................615 アナログ入力許可 /A/D コンバータ選択レジスタ アナログ入力許可 /A/D コンバータ選択レジスタ の上位ビット (ADER1) ..................................277 アナログ入力許可 /AD コンバータ選択レジスタ アナログ入力許可 /AD コンバータ選択レジスタ の下位ビット (ADER0) ..................................277 アナログ入力許可レジスタ アナログ入力許可レジスタ .........................165, 274 い 位相変調モード 位相変調モードの推奨起動手順 .........................114 686 イベントカウント機能 16 ビットリロードタイマ ( イベントカウント機 能付き ) の概要 ............................................... 214 インターバル割込み インターバル割込み機能 .................................... 171 インタラプトレベルマスクレジスタ インタラプトレベルマスクレジスタ (ILM) .......39 インテリジェント I/O サービス インテリジェント I/O サービス (EI2OS) 機能と割 込み .................................................................. 214 インプットキャプチャ インプットキャプチャ ........................................ 205 インプットキャプチャ ( モジュールごとに 2 チャ ネル ) ................................................................ 183 インプットキャプチャ入力タイミング ............211 インプットキャプチャの取り込み タイミング例 ..................................................211 インプットキャプチャのブロック ダイヤグラム ..................................................205 インプットキャプチャエッジレジスタ インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) .................................... 209 インプットキャプチャ制御ステータスレジスタ インプットキャプチャ制御ステータス レジスタ .......................................................... 207 インプットキャプチャデータレジスタ インプットキャプチャデータ レジスタ .......................................................... 206 インプットデータレジスタ インプットデータレジスタ (UIDR) とアウトプッ トレジスタ (UODR) .......................................310 う ウォッチドッグ ウォッチドッグカウンタ .................................... 178 ウォッチドッグ停止 ............................................ 178 ウォッチドッグ不活性化 .................................... 178 ウォッチドッグタイマ ウォッチドッグタイマの起動方法 .................... 178 ウォッチドッグタイマの状態遷移図 ................ 177 ウォッチドッグタイマのブロック ダイヤグラム ..................................................174 ストップモード , タイムベースタイマモード , ス リープモード時のウォッチドッグタイマの動 作 ......................................................................178 リセット時のウォッチドッグタイマの 動作 .................................................................. 179 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) ............................................................ 175 お 応用例 応用例 ....................................................................325 オーバフロー オーバフローによるカウンタクリア ................ 192 索引 か く 外形寸法図 パッケージ外形寸法図 ...........................................12 外部イベントカウント 外部イベントカウント .........................................222 外部クロック 外部クロック .........................................................366 振動子と外部クロックの接続 ...............................96 内部クロックおよび外部クロック .....................317 外部シフトクロックモード 外部シフトクロックモード .................................441 外部リセット端子 外部リセット端子のブロック ダイヤグラム ..................................................123 外部レベルレジスタ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ......................263 外部割込み DTP/ 外部割込みの使用上の注意 .......................267 DTP 要求と外部割込み要求の切替え ................266 外部割込みの動作 .................................................264 外部割込み要求レジスタ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............262 概要 製品概要 .....................................................................2 カウンタ カウンタの動作状態 .............................................225 カウンタクリア オーバフローによるカウンタクリア .................192 カウントクロック 8/16 ビット PPG のカウントクロックの 選択 ..................................................................254 書込み 書込み , データポーリング , 読出し (CE 制御 ) .........................................................673 書込み , データポーリング , 読出し (WE 制御 ) .......................................................672 書込み / 消去中の RY/BY タイミング ...............675 拡張インテリジェント I/O サービスディスクリプタ 拡張インテリジェント I/O サービスディスクリプ タ (ISD) ..............................................................69 拡張インテリジェント I/O サービス EI2OS( 拡張インテリジェント I/O サービス ) ..................................................324 拡張インテリジェント I/O サービス (EI2OS) .........................................................51, 67 拡張インテリジェント I/O サービス (EI2OS) の構 造 ........................................................................68 拡張インテリジェント I/O サービス (EI2OS) の動 作フロー ............................................................73 拡張シリアル I/O インタフェース 拡張シリアル I/O インタフェースの 割込み機能 ......................................................447 拡張ステータス制御レジスタ 拡張ステータス制御レジスタ (ESCR2/ESCR3) ...............................................349 拡張通信制御レジスタ 拡張通信制御レジスタ (ECCR2/ECCR3) ...........352 間接アドレッシング 間接アドレッシング .............................................622 クロック クロックの概要 ......................................................82 内部クロックおよび外部クロック .................... 317 クロック供給マップ クロック供給マップ .............................................. 83 クロック出力許可レジスタ クロック出力許可レジスタ ..................................97 クロック選択レジスタ PPG0, PPG1 クロック選択レジスタ (PPG01) ............................................................ 248 クロック選択レジスタ .......................................... 86 クロック選択レジスタ (CKSCR) .......................... 87 クロック速度 各クロック速度のリロード値と ボーレート ......................................................366 クロック発生部 クロック発生部のブロックダイヤグラム ..........84 クロックプリスケーラ クロックプリスケーラ設定 ................................423 クロック変調パラメータレジスタ クロック変調パラメータレジスタ .................... 108 クロック変調パラメータレジスタの機能 ........108 クロック変調レジスタ クロック変調レジスタ ........................................ 102 クロックモード クロックモード ....................................................131 クロックモードの移行 .......................................... 92 クロックモードの切換え .................................... 151 クロックモジュレータ クロックモジュレータ .......................................... 93 クロックモジュレータの概要 ............................100 クロックモジュレータ制御レジスタ クロックモジュレータ制御レジスタ (CMCR) ............................................................ 103 クロックモジュレータ制御レジスタの 機能 .................................................................. 104 クロックモジュレータレジスタ クロックモジュレータレジスタ ........................ 101 こ コマンドシーケンス コマンドシーケンス表 ........................................ 557 コモンレジスタバンクプレフィックス コモンレジスタバンクプレフィックス (CMR) .................................................................45 コンディションコードレジスタ コンディションコードレジスタ (CCR) ............... 38 コンペアマッチ アウトプットコンペアレジスタ 0(4) 値とコンペ アマッチしたときのカウンタクリア ..........192 さ サウンドジェネレータ サウンドジェネレータのブロック ダイヤグラム ..................................................526 サウンドジェネレータのレジスタ .................... 527 687 索引 サウンドジェネレータ制御レジスタ サウンドジェネレータ制御レジスタ (SGCR) ( 下位 ) の内容 .................................................529 サウンドジェネレータ制御レジスタ (SGCR) ( 上位 ) の内容 .................................................531 サウンドジェネレータ制御レジスタ ( 上位 ) ..............................................................531 サブ秒レジスタ サブ秒レジスタ .....................................................234 し システムスタックポインタ ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) ..............................................37 実効アドレス 実効アドレスフィールド .....................................631 実効アドレスフィールド 実効アドレスフィールド .....................................614 実行サイクル 実行サイクル数 .....................................................629 実行サイクル数計算方法 .....................................629 シフトクロック 外部シフトクロックモード .................................441 シフトクロック選択 .............................................437 内部シフトクロックモード .................................441 シフト動作 シフト動作のスタート / ストップ タイミング ......................................................444 周波数データレジスタ 周波数データレジスタ .........................................532 周波数分解能 周波数変調モードの変調度と 周波数分解能 ..................................................100 周波数変調モード 周波数変調モードの推奨起動手順 .....................115 周波数変調モードの変調度と 周波数分解能 ..................................................100 周波数変調モードの変調パラメータ .................116 受信オーバラン 受信オーバラン .....................................................496 受信オーバランレジスタ 受信オーバランレジスタ (ROVRR) ...................481 受信および送信エラーカウンタ 受信および送信エラーカウンタ (RTEC) の 内容 ..................................................................468 受信および送信エラーカウンタ (RTEC) ...........468 受信完了 受信完了 .................................................................497 受信完了レジスタ 受信完了レジスタ (RCR) .....................................479 受信データレジスタ 受信データレジスタ (RDR2/RDR3) ...................347 受信動作 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................321 受信動作時 ( モード 2) のフラグのセットタイミ ング ..................................................................322 受信メッセージ 受信メッセージの格納 .........................................495 受信割込み許可レジスタ 受信割込み許可レジスタ (RIER) ........................482 688 出力端子機能 16 ビットリロードタイマの出力端子機能 ....... 224 消去 書込み / 消去中の RY/BY タイミング ............... 675 フラッシュメモリ全データの消去 ( チップ消去 ) ................................................. 570 フラッシュメモリ任意データの消去 ( セクタ消去 ) ................................................. 571 状態遷移 ウォッチドッグタイマの状態遷移図 ................ 177 状態遷移図 状態遷移図 ............................................................ 147 消費電流 CPU 動作モードと消費電流 ................................130 シリアル I/O 拡張シリアル I/O インタフェースの 割込み機能 ......................................................447 シリアル I/O の動作 .............................................440 シリアル I/O の動作状態 .....................................442 シリアル I/O のブロックダイヤグラム ............. 432 シリアル I/O のレジスタ .....................................433 シリアル I/O プリスケーラ シリアル I/O プリスケーラ (CDCR) .................. 439 シリアル書込み接続 MB90F394H シリアル書込み接続の 基本構成 .......................................................... 582 シリアル書込み接続例 シリアル書込み接続例 ( ユーザ電源使用時 ) .....................................586 シリアル書込み接続例 ( ライタから電源供給時 ) ............................. 588 シリアルクロック入力周波数 発振クロック周波数とシリアルクロック入力周波 数 ......................................................................584 シリアルシフトデータレジスタ シリアルシフトデータレジスタ (SDR) ............. 438 シリアルステータスレジスタ シリアルステータスレジスタ (SSR2/SSR3) .....344 シリアル制御レジスタ シリアル制御レジスタ (SCR2/SCR3) ................ 339 シリアルモード制御ステータスレジスタ シリアルモード制御ステータスレジスタ (SMCS) の各ビット機能 .............................................. 436 シリアルモード制御ステータスレジスタの下位バ イト (SMCS) ....................................................435 シリアルモード制御ステータスレジスタの 上位バイト (SMCS) ........................................ 434 シリアルモード制御レジスタ シリアルモード制御レジスタ (UMC) ................ 305 シリアルモード制御レジスタ (UMC) の 内容 .................................................................. 306 シリアルモードレジスタ シリアルモードレジスタ (SMR2/SMR3) ........... 342 シングルチップモード 入出力端子の状態 ( シングルチップモード ) ............................. 149 信号方式 信号方式 ................................................................ 371 振動子 振動子と外部クロックの接続 ..............................96 振幅データレジスタ 振幅データレジスタ ............................................ 533 索引 す 推奨設定 推奨設定 .................................................................117 推奨設定例 推奨設定例 .............................................................158 スタートコンディション スタートコンディション .....................................425 スタックポインタ ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) ..............................................37 スタンバイモード スタンバイモード .................................................131 スタンバイモード移行時の注意について .........150 スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................151 スタンバイモードの動作状態 .............................140 スタンバイモードの割込みによる解除 .............150 スタンバイモードへの移行と割込み .................150 ステータスフラグ 送受信動作時のステータスフラグ .....................324 ステータスレジスタ ステータスレジスタ (USR) の構成 ....................307 ステータスレジスタ (USR) の内容 ....................308 ステッピングモータコントローラ ステッピングモータコントローラのブロックダイ ヤグラム ..........................................................514 ステッピングモータコントローラの レジスタ ..........................................................515 ストップコンディション ストップコンディション .....................................425 ストップモード ストップモード , タイムベースタイマモード , ス リープモード時のウォッチドッグタイマの動 作 ......................................................................178 ストップモード解除時 .........................................151 ストップモードの解除 .........................................145 ストップモードへの移行 .....................................145 スリープモード ストップモード , タイムベースタイマモード , ス リープモード時のウォッチドッグタイマの動 作 ......................................................................178 スリープモードの解除 .........................................142 スリープモードへの移行 .....................................141 スレーブアドレス スレーブアドレス検知 .........................................425 スレーブアドレスマスク .....................................426 せ 制御信号 フラッシュメモリの制御信号 .............................553 制御ステータスレジスタ 制御ステータスレジスタ (CSR 下位 ) の 内容 ..................................................................460 制御ステータスレジスタ (CSR 上位 ) の 内容 ..................................................................462 制御ステータスレジスタ (FMCS) ......................555 セクタ消去 チップ消去 / セクタ消去 コマンドシーケンス ......................................673 フラッシュメモリセクタ消去の 一時停止 .......................................................... 573 フラッシュメモリセクタ消去の 再開 .................................................................. 574 フラッシュメモリ任意データの消去 ( セクタ消去 ) ................................................. 571 フラッシュメモリのセクタ消去手順 ................ 571 セクタ消去タイマフラグ セクタ消去タイマフラグ (DQ3) .........................564 セクタプロテクト セクタプロテクト一時取消し ............................676 セクタプロテクト許可 セクタプロテクト許可 / セクタプロテクト検証 ..................................675 セットタイミング 6 つのフラグのセットタイミング .....................320 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................321 受信動作時 ( モード 2) のフラグのセットタイミ ング .................................................................. 322 送信動作時のフラグのセットタイミング ........323 全体制御レジスタ 全体制御レジスタ ................................................458 全体制御レジスタの一覧 .................................... 452 専用レジスタ 専用レジスタ .......................................................... 34 そ 送受信許可 送受信許可 ............................................................ 371 送受信動作時 送受信動作時のステータスフラグ .................... 324 送信 RTR レジスタ 送信 RTR レジスタ (TRTRR) ..............................474 送信解除レジスタ 送信解除レジスタ (TCANR) ............................... 476 送信完了レジスタ 送信完了レジスタ (TCR) .....................................477 送信データレジスタ 送信データレジスタ (TDR2/TDR3) .................... 348 送信動作 送信動作時のフラグのセットタイミング ........323 送信要求 CAN コントローラの送信要求の解除 ............... 493 送信要求レジスタ 送信要求レジスタ (TREQR) ................................473 送信割込み 送信割込み要求発生タイミング ........................ 362 送信割込み許可レジスタ 送信割込み許可レジスタ (TIER) ........................ 478 双方向通信機能 双方向通信機能 ....................................................385 その他 その他 ......................................................................66 ソフトウェア ソフトウェア割込み .............................................. 51 ソフトウェア割込み ソフトウェア割込み .............................................. 65 ソフトウェア割込みの構造 ..................................65 ソフトウェア割込みの動作 ..................................65 689 索引 た タイマ制御ステータスレジスタ タイマ制御ステータスレジスタ ( 下位 ) ...........188 タイマ制御ステータスレジスタ ( 上位 ) ...........190 タイマ制御ステータスレジスタ (TMCSR) の 内容 ..................................................................217 タイマ制御ステータスレジスタ (TMCSR) の 配置 ..................................................................217 タイマ制御レジスタ タイマ制御レジスタ ( 下位 ) ...............................230 タイマ制御レジスタ ( 上位 ) ...............................232 タイマデータレジスタ タイマデータレジスタ .........................................187 タイミング 16 ビットフリーランタイマのタイミング ........192 タイミングリミット超過フラグ タイミングリミット超過フラグ (DQ5) .............563 タイムベース タイムベースカウンタ .........................................171 タイムベースタイマ タイムベースタイマの概要 .................................168 タイムベースタイマのブロック ダイヤグラム ..................................................168 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタ (TBTC) .............................................................169 タイムベースタイマモード ストップモード , タイムベースタイマモード , ス リープモード時のウォッチドッグタイマの動 作 ......................................................................178 タイムベースタイマモードの解除 .....................144 タイムベースタイマモードへの移行 .................143 多重割込み 多重割込み ...............................................................64 多バイト長データ 多バイト長データのアクセス ...............................33 メモリ空間における多バイト長データの 配置 ....................................................................33 端子 端子機能説明 ...........................................................13 端子出力 8/16 ビット PPG のパルスの端子出力の 制御 ..................................................................255 端子配列図 MB90394HA/MB90F394H(A) の端子配列図 ........11 MB90V390HA/MB90V390HB の 端子配列図 ........................................................10 MB90V390H の端子配列図 ......................................9 単発変換モード 単発変換モードでの動作 .....................................286 単発変換モードの EI2OS 起動 プログラム例 ..................................................292 ち 遅延割込み 遅延割込みのブロックダイヤグラム ...................78 遅延割込み発生 .......................................................80 遅延割込み要求ロックの使用上の注意 ...............78 690 遅延割込み要因発生 / 解除レジスタ 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延 割込み要求レジスタ ) ...................................... 79 チップ消去 チップ消去 / セクタ消去 コマンドシーケンス ...................................... 673 フラッシュメモリ全データの消去 ( チップ消去 ) ................................................. 570 注意 DTP/ 外部割込みの使用上の注意 .......................267 遅延割込み要求ロックの使用上の注意 ..............78 フラッシュメモリ使用上の注意 ........................ 575 注意事項の回避 注意事項の回避について ...................................... 48 直接アドレッシング 直接アドレッシング ............................................ 615 て 停止変換モード 停止変換モードでの動作 .................................... 286 停止変換モードの EI2OS 起動 プログラム例 ..................................................298 低消費電力制御回路 低消費電力制御回路のブロック ダイヤグラム ..................................................133 低消費電力モード 低消費電力モードの動作状態 ............................148 低消費電力モード制御レジスタ スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 .......................................................... 151 低消費電力モード制御レジスタ (LPMCR) ....... 135 低消費電力モード制御レジスタへの アクセス .......................................................... 137 低電力消費モード 低電力消費モードの設定 .................................... 500 データカウンタ データカウンタ (DCT) ...........................................69 データフレーム データフレームおよびリモートフレームの受信に 対する処理 ......................................................496 データ方向レジスタ データ方向レジスタの読出し ............................164 データポーリング 書込み , データポーリング , 読出し (CE 制御 ) ........................................................ 673 書込み , データポーリング , 読出し (WE 制御 ) ....................................................... 672 データポーリング ................................................674 データポーリングフラグ データポーリングフラグ (DQ7) .........................561 データレジスタ メッセージバッファ (DLC レジスタとデータレジ スタ ) の一覧 ................................................... 456 データレジスタ x データレジスタ x(x=0 ~ 15)(DTRx) .................. 491 デクリメントグレードレジスタ デクリメントグレードレジスタ ........................ 534 デバイスの取扱い デバイスの取扱い ..................................................20 索引 転送データ 転送データフォーマット .....................................318 と 同期方式 同期方式 .................................................................371 同期モード 同期モード ( 動作モード 2) の動作 ....................376 動作モード UART0,UART1 の動作モード .............................313 トーンカウントレジスタ トーンカウントレジスタ .....................................535 特殊構成制御レジスタ PLL および特殊構成制御レジスタ (PSCCR) の 構成 ....................................................................90 特長 特長 .............................................................................3 トグルビット トグルビット .........................................................674 トグルビット 2 フラグ トグルビット 2 フラグ (DQ2) .............................565 トグルビットフラグ トグルビットフラグ (DQ6) .................................562 時計タイマ 時計タイマのブロックダイヤグラム .................228 時計タイマのレジスタ .........................................229 な 内部クロック 内部クロックおよび外部クロック .....................317 内部クロック動作 16 ビットリロードタイマの 内部クロック動作 ..........................................221 内部シフトクロックモード 内部シフトクロックモード .................................441 に 入出力回路形式 入出力回路形式 .......................................................18 入出力端子 入出力端子の状態 ( シングルチップモード ) ..............................149 入力端子機能 16 ビットリロードタイマの入力端子機能 ( 内部 クロックモード時 ) ........................................221 入力レベル選択レジスタ 入力レベル選択レジスタ .....................................166 の ノイズ・フィルタ・コンフィギュレーション・レジスタ ノイズ・フィルタ・コンフィギュレーション・レ ジスタ (INFCR) ...............................................424 ノイズ・フィルタ・コンフィギュレーション・レ ジスタ の内容 .................................................424 は ハードウェア 8/16 ビット PPG の各ハードウェアの 初期値 .............................................................. 257 ハードウェア割込み .............................................. 50 ハードウェアシーケンス ハードウェアシーケンスフラグ ........................ 559 ハードウェア割込み ハードウェア割込み .............................................. 60 ハードウェア割込みの構造 ..................................60 ハードウェア割込みの動作 ..................................61 ハードウェア割込みの発生と解除 ...................... 62 バス制御レジスタ バス制御レジスタ (IBCR) の内容 ...................... 407 バス動作停止 バス動作停止間の状態 (HALT=1) ...................... 464 バス動作停止を解除する条件 (HALT=0) ..........464 バス動作停止をセットする条件 (HALT=1) ...... 464 バスモード バスモード設定ビット ........................................ 156 発振安定待ち 発振安定待ちリセット状態 ................................122 発振安定待ち時間 発振安定待ち時間 ..........................................95, 151 リセット要因と発振安定待ち時間 .................... 122 発振クロック周波数 発振クロック周波数とシリアルクロック入力周波 数 ......................................................................584 バッファアドレスポインタ バッファアドレスポインタ (BAP) .......................70 パリティビット パリティビット ....................................................319 パルス 8/16 ビット PPG のパルスの端子出力の 制御 .................................................................. 255 パルス幅 8/16 ビット PPG のリロード値とパルス幅の 関係 .................................................................. 253 パルス幅制御レジスタ パルス幅制御レジスタ ........................................ 516 パルス幅モジュレータ 2 選択レジスタ パルス幅モジュレータ 2 選択レジスタ (PWS2n) の内容 .............................................................. 522 パルス幅モジュレータ選択レジスタ パルス幅モジュレータ 1 選択レジスタ (PWS1n) の内容 .............................................................. 520 バンクセレクトプレフィックス バンクセレクトプレフィックス .......................... 44 バンク方式 バンク方式によるアドレス指定 .......................... 31 汎用レジスタ 汎用レジスタ .......................................................... 35 ひ ビット競合 SCC, MSS , INT ビット競合 ................................410 ビットタイミング ビットタイミングの設定 .................................... 499 ビットタイミングレジスタ ビットタイミングレジスタ (BTR) .....................469 691 索引 ビットタイミングレジスタ (BTR) の内容 ........469 非同期モード 非同期モードの動作 .............................................372 秒 / 分 / 時間レジスタ 秒 / 分 / 時間レジスタ ..........................................235 ふ フォーマット 転送データフォーマット .....................................318 フラグ 6 つのフラグのセットタイミング ......................320 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................321 受信動作時 ( モード 2) のフラグのセットタイミ ング ..................................................................322 受信割込み発生とフラグセットの タイミング ......................................................359 送信動作時のフラグのセットタイミング .........323 送信割込み発生とフラグセットのタイミング .361 フラグ変化抑止プレフィックス フラグ変化抑止プレフィックス (NCC) ...............45 フラッシュマイコンプログラマ フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源使用時 ) .................................590 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源供給時 ) .........................592 フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源使用時 ) .................................590 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源供給時 ) .........................592 フラッシュメモリ 3M ビットフラッシュメモリのセクタ構成 ......552 3M ビットフラッシュメモリの特長 ..................550 3M ビットフラッシュメモリの プログラム例 ..................................................577 フラッシュメモリ書込み / 消去の 詳細説明 ..........................................................566 フラッシュメモリ書込み / 消去の方法 .............550 フラッシュメモリ使用上の注意 .........................575 フラッシュメモリセクタ消去の 一時停止 ..........................................................573 フラッシュメモリセクタ消去の 再開 ..................................................................574 フラッシュメモリ全体のブロック ダイヤグラム ..................................................551 フラッシュメモリ全データの消去 ( チップ消去 ) ..................................................570 フラッシュメモリにおけるリセットベクタアドレ ス ......................................................................576 フラッシュメモリにデータを書き込む .............568 フラッシュメモリ任意データの消去 ( セクタ消去 ) ..................................................571 フラッシュメモリの書込み手順 .........................569 フラッシュメモリの制御信号 .............................553 フラッシュメモリのセクタ消去手順 .................571 フラッシュメモリのレジスタ .............................550 フラッシュメモリモード .....................................553 フラッシュメモリを読出し / リセット状態に する ..................................................................567 692 プリスケーラ シリアル I/O プリスケーラ (CDCR) .................. 439 プリスケーラ設定 ................................................470 フレームフォーマット フレームフォーマットの設定 ............................499 プレフィックス コモンレジスタバンクプレフィックス (CMR) .................................................................45 バンクセレクトプレフィックス .......................... 44 フラグ変化抑止プレフィックス (NCC) ..............45 プレフィックスコード プレフィックスコードが連続している場合 ...... 46 プレフィックス命令 割込み抑止命令とプレフィックス命令に関する制 約 ........................................................................46 プログラマ フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源使用時 ) ................................590 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源供給時 ) ........................ 592 プログラミングフローチャート プログラミングフローチャート ........................ 428 プログラムアドレス検出制御 / ステータスレジスタ プログラムアドレス検出制御 / ステータスレジス タ (PACSR) ......................................................539 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5) ........................... 539 プログラムカウンタ プログラムカウンタ (PC) ...................................... 41 プログラムパッチ プログラムパッチ処理例 .................................... 543 プロセッサステータス プロセッサステータス (PS) ..................................38 ブロック 各ブロックの説明 ................................................333 ブロックダイヤグラム 16 ビット入出力タイマのブロック ダイヤグラム ..................................................183 16 ビットフリーランタイマのブロックダイヤグ ラム .................................................................. 186 16 ビットリロードタイマのブロックダイヤグラ ム ......................................................................215 8/10 ビット A/D コンバータの端子部のブロック ダイヤグラム ..................................................275 8/10 ビット A/D コンバータのブロックダイヤグ ラム .................................................................. 272 8/16 ビット PPG のブロックダイヤグラム ....... 239 CAN コントローラのブロック ダイヤグラム ..................................................451 DTP/ 外部割込みのブロックダイヤグラム ....... 260 MB90394HA/MB90F394H(A) の ブロックダイヤグラム ......................................8 MB90V390HA/MB90V390HB の ブロックダイヤグラム ......................................7 MB90V390H のブロックダイヤグラム ................. 6 ROM ミラー機能選択モジュールのブロックダイ ヤグラム .......................................................... 546 UART0,UART1 のブロック ダイヤグラム ..................................................303 アウトプットコンペアのブロック ダイヤグラム ..................................................193 索引 アドレス一致検出機能のブロック ダイヤグラム ..................................................538 インプットキャプチャのブロック ダイヤグラム ..................................................205 ウォッチドッグタイマのブロック ダイヤグラム ..................................................174 外部リセット端子のブロック ダイヤグラム ..................................................123 クロック発生部のブロックダイヤグラム ...........84 サウンドジェネレータのブロック ダイヤグラム ..................................................526 シリアル I/O のブロックダイヤグラム .............432 ステッピングモータコントローラのブロックダイ ヤグラム ..........................................................514 タイムベースタイマのブロック ダイヤグラム ..................................................168 遅延割込みのブロックダイヤグラム ...................78 低消費電力制御回路のブロック ダイヤグラム ..................................................133 時計タイマのブロックダイヤグラム .................228 フラッシュメモリ全体のブロック ダイヤグラム ..................................................551 み 未定義命令 未定義命令の実行 ..................................................76 未定義命令の実行による例外発生 ...................... 76 め ポートデータレジスタ ポートデータレジスタ .........................................162 ポートデータレジスタの読出し .........................163 ポート方向レジスタ ポート方向レジスタ .............................................164 ボーレート CLK 同期ボーレート ............................................314 CLK 非同期ボーレート ........................................314 各クロック速度のリロード値と ボーレート ......................................................366 ボーレートの計算 .................................................365 ボーレートジェネレータレジスタ ボーレートジェネレータレジスタ (BGR02/ BGR03,BGR12/BGR13) のビット構成 .........354 命令 未定義命令の実行 ..................................................76 命令の種類 ............................................................ 612 命令マップの構造 ................................................650 命令一覧表 F2MC-16LX 命令一覧表 .......................................636 メインクロックモード メインクロックモード , PLL クロックモード ........................................ 92 メッセージバッファ BVAL ビットによるメッセージバッファ禁止時の 注意 (-H 品 , MB90F394H, MB90V390H など ) ................................................................ 510 BVAL ビットによるメッセージバッファ禁止時の 注意 (-H 品以外 , B90V390HA/HB など ) ...... 511 マルチレベルメッセージバッファの構成の 決定 .................................................................. 505 メッセージバッファ ....................................458, 487 メッセージバッファ (DLC レジスタとデータレジ スタ ) の一覧 ................................................... 456 メッセージバッファ (ID レジスタ ) の 一覧 .................................................................. 454 メッセージバッファ (x) による受信方法 ..........503 メッセージバッファ (x) による送信方法 ..........501 メッセージバッファ制御レジスタ メッセージバッファ制御レジスタ .................... 458 メッセージバッファ有効レジスタ メッセージバッファ有効レジスタ (BVALR) .......................................................... 471 メモリアクセスモード メモリアクセスモード ........................................ 154 メモリ空間 CPU メモリ空間の概要 .......................................... 25 I/O 領域 .................................................................... 26 RAM 領域 ................................................................ 26 ROM 領域 ................................................................ 26 メモリ空間における多バイト長データの 配置 .................................................................... 33 メモリ空間マップ ..................................................28 ま も マシンクロック 共通マシンクロック周波数 .................................423 マシンクロック .......................................................93 マスタ / スレーブ型通信機能 マスタ / スレーブ型通信機能 .............................387 マルチレベルメッセージバッファ マルチレベルメッセージバッファの構成の 決定 ..................................................................505 モード その他モード ........................................................ 553 フラッシュメモリモード .................................... 553 モード 0 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................321 モード 1 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................321 モード 2 受信動作時 ( モード 2) のフラグのセットタイミ ング .................................................................. 322 へ 変調度 周波数変調モードの変調度と 周波数分解能 ..................................................100 変調パラメータ 周波数変調モードの変調パラメータ .................116 ほ 693 索引 モード 3 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................321 モード端子 モード端子 .....................................................124, 155 モードデータ モードデータ .........................................................156 モードデータ読出し後の端子の状態 .................128 モードフェッチ モードフェッチ .....................................................124 ゆ ユーザスタックポインタ ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) ..............................................37 ユーザ電源 シリアル書込み接続例 ( ユーザ電源使用時 ) ......................................586 フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源使用時 ) .................................590 フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源使用時 ) .................................590 よ 要求レベル設定レジスタ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ......................263 要求ロック 遅延割込み要求ロックの使用上の注意 ...............78 読出し 書込み , データポーリング , 読出し (CE 制御 ) .........................................................673 書込み , データポーリング , 読出し (WE 制御 ) .......................................................672 読出しアクセスによるデータ読出し .................672 ら ライタ シリアル書込み接続例 ( ライタから電源供給時 ) ..............................588 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源供給時 ) .........................592 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源供給時 ) .........................592 ラストイベント表示レジスタ ラストイベント表示レジスタ (LEIR) ................466 ラストイベント表示レジスタ (LEIR) の 内容 ..................................................................467 り リセット リセット時のウォッチドッグタイマの 動作 ..................................................................179 リセット中の端子の状態 .....................................128 リセット動作 リセット動作の概要 .............................................124 リセットベクタアドレス 694 フラッシュメモリにおけるリセットベクタアドレ ス ......................................................................576 リセット要因 リセット要因 ........................................................ 120 リセット要因と発振安定待ち時間 .................... 122 リセット要因ビット リセット要因ビット ............................................ 126 リセット要因ビットとリセット要因の 対応 .................................................................. 126 リセット要因ビットの注意事項 ........................ 127 リモートフレーム データフレームおよびリモートフレームの受信に 対する処理 ......................................................496 リモートフレーム受信待機レジスタ リモートフレーム受信待機レジスタ (RFWTR) .......................................................... 475 リモート要求受信レジスタ リモート要求受信レジスタ (RRTRR) ................ 480 リロードカウンタ リロードカウンタのカウントの開始 ................ 368 リロードカウンタの機能 .................................... 368 リロードカウンタのクリア ................................369 リロードカウンタの再スタート ........................ 368 リロードカウンタの動作 .................................... 367 リロード値 8/16 ビット PPG のリロード値とパルス幅の 関係 .................................................................. 253 各クロック速度のリロード値と ボーレート ......................................................366 リロードレジスタ リロードレジスタ (PRLL, PRLH) .......................250 れ 例外 例外 ..........................................................................52 レート・データレジスタ レート・データレジスタ (URD) ........................ 311 レート・データレジスタ (URD) の内容 ........... 312 レジスタ 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........220 16 ビットリロードタイマのレジスタ ............... 216 8/10 ビット A/D コンバータの レジスタ一覧 ..................................................276 8/16 ビット PPG のレジスタ ............................... 243 A/D 制御ステータスレジスタ 0(ADCS0) ..........280 A/D 制御ステータスレジスタ 1(ADCS1) ..........278 A/D データレジスタ (ADCR0,ADCR1) ..............283 DLC レジスタ x(x=0 ~ 15)(DLCRx) .................. 490 DTP/ 外部割込みのレジスタ ............................... 261 EI2OS ステータスレジスタ (ISCS) .......................71 I/O ポートのレジスタ .......................................... 161 I2C バスステータスレジスタ (IBSR) ................. 402 I2C バスステータスレジスタ (IBSR) の 内容 .................................................................. 403 IDE レジスタ (IDER) ............................................ 472 ID レジスタ x(x=0 ~ 15)(IDRx) .......................... 488 PPG0, PPG1 クロック選択レジスタ (PPG01) ............................................................ 248 PPG0 動作モード制御レジスタ (PPGC0) ..........244 PPG1 動作モード制御レジスタ (PPGC1) ..........246 索引 PWM1 および PWM2 コンペアレジスタ ..........518 PWM 制御 0 レジスタ ..........................................516 ROM ミラー機能選択レジスタ (ROMM) ..........547 UART のレジスタ .................................................304 アウトプットコンペア制御ステータスレジスタ ( 下位 ) ..............................................................195 アウトプットコンペア制御ステータスレジスタ ( 上位 ) ..............................................................197 アクセプタンスマスク選択レジスタ (AMSR) ............................................................483 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................485 アナログ入力許可レジスタ .................................165 インタラプトレベルマスクレジスタ (ILM) ........39 インプットデータレジスタ (UIDR) とアウトプッ トレジスタ (UODR) .......................................310 クロック選択レジスタ ...........................................86 クロック選択レジスタ (CKSCR) ..........................87 コンディションコードレジスタ (CCR) ...............38 サウンドジェネレータのレジスタ .....................527 サブ秒レジスタ .....................................................234 周波数データレジスタ .........................................532 受信オーバランレジスタ (ROVRR) ...................481 受信完了レジスタ (RCR) .....................................479 受信割込み許可レジスタ (RIER) ........................482 シリアル I/O のレジスタ .....................................433 シリアルシフトデータレジスタ (SDR) .............438 シリアルモード制御ステータスレジスタの 上位バイト (SMCS) ........................................434 シリアルモード制御レジスタ (UMC) ................305 振幅データレジスタ .............................................533 ステータスレジスタ (USR) の構成 ....................307 ステッピングモータコントローラの レジスタ ..........................................................515 制御ステータスレジスタ (FMCS) ......................555 専用レジスタ ...........................................................34 送信 RTR レジスタ (TRTRR) ..............................474 送信解除レジスタ (TCANR) ...............................476 送信要求レジスタ (TREQR) ................................473 送信割込み許可レジスタ (TIER) ........................478 タイマ制御ステータスレジスタ (TMCSR) の 内容 ..................................................................217 タイマ制御ステータスレジスタ (TMCSR) の 配置 ..................................................................217 タイマ制御レジスタ ( 下位 ) ...............................230 タイマ制御レジスタ ( 上位 ) ...............................232 タイムベースタイマ制御レジスタ (TBTC) .............................................................169 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延 割込み要求レジスタ ) ......................................79 低消費電力モード制御レジスタ (LPMCR) .......135 データレジスタ x(x=0 ~ 15)(DTRx) ..................491 デクリメントグレードレジスタ .........................534 トーンカウントレジスタ .....................................535 時計タイマのレジスタ .........................................229 汎用レジスタ ...........................................................35 ビットタイミングレジスタ (BTR) .....................469 秒 / 分 / 時間レジスタ ..........................................235 フラッシュメモリのレジスタ .............................550 プログラムアドレス検出制御 / ステータスレジス タ (PACSR) ......................................................539 プログラムアドレス検出レジスタ ((PADR0, PADR1, PADR3 ~ PADR5) ...........................539 ポートデータレジスタ ........................................ 162 ポート方向レジスタ ............................................ 164 メッセージバッファ制御レジスタ .................... 458 メッセージバッファ有効レジスタ (BVALR) .......................................................... 471 ラストイベント表示レジスタ (LEIR) ................ 466 リモートフレーム受信待機レジスタ (RFWTR) .......................................................... 475 リモート要求受信レジスタ (RRTRR) ................ 480 リロードレジスタ (PRLL, PRLH) .......................250 レート・データレジスタ (URD) ........................ 311 レジスタバンク ......................................................42 レジスタバンクポインタ (RP) ..............................39 割込み制御レジスタ (ICR) ....................................55 レジスタ一覧 16 ビットアウトプットコンペアの レジスタ一覧 ..................................................184 16 ビットインプットキャプチャの レジスタ一覧 ..................................................185 16 ビットフリーランタイマ 0/1 の レジスタ一覧 ..................................................184 レジスタバンク レジスタバンク ......................................................42 レジスタバンクポインタ レジスタバンクポインタ (RP) ..............................39 連続変換モード 連続変換モードの EI2OS 起動 プログラム例 ..................................................295 わ 割込み 8/16 ビット PPG の割込み ................................... 256 スタンバイモードの割込みによる解除 ............150 ソフトウェア割込み ........................................ 51, 65 多重割込み .............................................................. 64 ハードウェア割込み ........................................ 50, 60 割込み要因と割込みベクタ・ 割込み制御レジスタ ...................................... 679 割込み /DTP 許可レジスタ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ............... 262 割込み /DTP フラグ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ............... 262 割込み制御レジスタ 割込み制御レジスタ (ICR) ....................................55 割込み要因と割込みベクタ・ 割込み制御レジスタ ...................................... 679 割込みフロー 割込みフロー .......................................................... 58 割込みベクタ 割込みベクタ .......................................................... 53 割込みベクタ一覧表 ............................................ 677 割込み要因と割込みベクタ・ 割込み制御レジスタ ...................................... 679 割込みベクタ一覧 MB90390 割込みベクタ一覧表 ............................. 65 割込み要因 割込み要因と割込みベクタ・ 割込み制御レジスタ ...................................... 679 695 索引 割込み要求許可レジスタ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............262 696 割込み抑止命令 割込み抑止命令 ......................................................46 割込み抑止命令とプレフィックス命令に関する制 約 ........................................................................46 CM44-10122-4 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC-16LX 16 ビット・マイクロコントローラ MB90390 Series ハードウェアマニュアル 2008 年 7 月 第 4 版 発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 ビジネス推進部