本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10134-2 F2MC-16LX 16 ビット・マイクロコントローラ MB90945 Series ハードウェアマニュアル F2MC-16LX 16 ビット・マイクロコントローラ MB90945 Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目 をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛読を賜り厚 くお礼申し上げます。 MB90945 シリーズは , ASIC (Application Specific IC) 対応が可能なオリジナル 16 ビッ ト・ワンチップマイクロコントローラである F2MC®-16LX ファミリの汎用品の 1 つと して開発された製品です。 本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90945 シ リーズの機能や動作について記載しています。本書をご一読ください。 ■ 商標 F2MC は FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株 式会社の商標です。 その他 , 本書で登場するシステム名 , 製品名はそれぞれの会社もしくは組織の商標で す。 ■ 本書の全体構成 本書は , 以下に示す 26 の章 , および付録から構成されています。 第 1 章 概要 MB90945 シリーズの特長や基本的な仕様について説明します。 第 2 章 CPU CPU について説明します。 第 3 章 割込み 割込みの機能と動作について説明します。 第 4 章 遅延割込み 遅延割込みの機能と動作について説明しています。 第 5 章 クロック クロックについて説明します。 第 6 章 クロックモジュレータ クロックモジュレータの概要・特長・レジスタの構成 , 動作について説明します。 第 7 章 リセット リセットについて説明します。 第 8 章 低消費電力モード 低消費電力モードの機能と動作について説明します。 第 9 章 メモリアクセスモード メモリアクセスモードの機能と動作について示します。 i 第 10 章 I/O ポート I/O ポートの機能と動作について説明します。 第 11 章 タイムベースタイマ タイムベースタイマの機能と動作について説明します。 第 12 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明します。 第 13 章 16 ビット入出力タイマ 16 ビット入出力タイマの機能と動作について説明します。 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 16 ビットリロードタイマ ( イベントカウント機能付 ) の機能と動作について説明し ます。 第 15 章 8/16 ビット PPG 8/16 ビット PPG の機能と概要について説明します。 第 16 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明します。 第 17 章 8/10 ビット A/D コンバータ MB90945 シリーズの 8/10 ビット A/D コンバータの機能と動作について説明します。 第 18 章 UART0 UART0 の機能と動作について説明します。 第 19 章 UART2/3 UART2/3 の機能と動作について説明します。 第 20 章 400 kHz I2C インタフェース I2C インタフェースの機能と動作について説明します。 第 21 章 シリアル I/O シリアル I/O の機能と動作について説明します。 第 22 章 CAN コントローラ CAN コントローラの機能と動作について説明します。 第 23 章 アドレス一致検出機能 アドレス一致検出の機能と動作について説明します。 第 24 章 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールについて説明します。 第 25 章 1M/2M/3M ビット フラッシュメモリ 1M/2M/3M ビットフラッシュメモリの機能や動作について説明します。 第 26 章 MB90F947 同期シリアル書込み接続例 F2MC-16LX MB90F947 フラッシュマイコンプログラマを用いた場合の , 同期シリア ル書込み接続例について説明します。 ii 付録 付録では , I/O マップ , F2MC-16LX の命令などを示します。 • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2006-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iii iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 第2章 概要 ............................................................................................................ 1 製品概要 ................................................................................................................................. 2 特長 ........................................................................................................................................ 3 MB90V390HA/HB のブロックダイヤグラム .......................................................................... 5 MB90F946A のブロックダイヤグラム ................................................................................... 6 MB90F947(A),MB90947A のブロックダイヤグラム .............................................................. 7 MB90F949(A) のブロックダイヤグラム................................................................................. 8 端子配列図.............................................................................................................................. 9 パッケージ外形寸法図.......................................................................................................... 12 端子機能説明 ........................................................................................................................ 13 入出力回路............................................................................................................................ 17 デバイスの取扱い ................................................................................................................. 20 CPU.......................................................................................................... 23 2.1 CPU の概要 .......................................................................................................................... 24 2.2 メモリ空間............................................................................................................................ 25 2.3 メモリ空間マップ ................................................................................................................. 28 2.4 リニア方式によるアドレス指定 ........................................................................................... 30 2.5 バンク方式によるアドレス指定 ........................................................................................... 31 2.6 メモリ空間における多バイト長データ................................................................................. 33 2.7 レジスタ ............................................................................................................................... 34 2.7.1 アキュムレータ (A)..................................................................................................... 37 2.7.2 ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) ....................... 38 2.7.3 プロセッサステータス (PS) ....................................................................................... 40 2.7.4 プログラムカウンタ (PC)........................................................................................... 43 2.8 レジスタバンク .................................................................................................................... 44 2.9 プリフィックスコード.......................................................................................................... 46 2.10 割込み抑止命令 .................................................................................................................... 48 2.11 「DIV A, Ri」 「DIVW A, RWi」命令の使用上の注意 .............................................................. 50 第3章 割込み ...................................................................................................... 53 3.1 割込みの概要 ........................................................................................................................ 54 3.2 割込みベクタ ........................................................................................................................ 56 3.3 割込み制御レジスタ (ICR).................................................................................................... 58 3.4 割込みフロー ........................................................................................................................ 61 3.5 ハードウェア割込み ............................................................................................................. 63 3.5.1 ハードウェア割込みの動作 ........................................................................................ 64 3.5.2 ハードウェア割込みの発生と解除.............................................................................. 65 3.5.3 多重割込み ................................................................................................................. 66 3.6 ソフトウェア割込み ............................................................................................................. 67 3.7 拡張インテリジェント I/O サービス (EI2OS) ....................................................................... 69 3.7.1 拡張インテリジェント I/O サービスディスクリプタ (ISD) ........................................ 71 3.7.2 EI2OS ステータスレジスタ (ISCS) ............................................................................ 73 3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フローと使用手順............................... 75 3.9 例外 ...................................................................................................................................... 78 v 第4章 4.1 4.2 4.3 遅延割込み ............................................................................................... 79 遅延割込みモジュールの概要 ............................................................................................... 80 遅延割込みのレジスタ.......................................................................................................... 81 遅延割込みの動作 ................................................................................................................. 82 第5章 クロック................................................................................................... 83 5.1 クロックの概要 .................................................................................................................... 84 5.2 クロック発生部のブロックダイヤグラム ............................................................................. 86 5.3 クロック選択レジスタ.......................................................................................................... 88 5.3.1 クロック選択レジスタ (CKSCR)................................................................................ 89 5.3.2 PLL および特殊構成制御レジスタ (PSCCR) ............................................................. 92 5.4 クロックモード .................................................................................................................... 94 5.5 発振安定待ち時間 ................................................................................................................. 97 5.6 振動子と外部クロックの接続 ............................................................................................... 98 第6章 6.1 6.2 6.3 クロックモジュレータ ............................................................................. 99 クロックモジュレータの概要 ............................................................................................. 100 クロックモジュレータ制御レジスタ (CMCR) .................................................................... 101 使用上の注意 ...................................................................................................................... 103 第7章 7.1 7.2 7.3 7.4 7.5 7.6 リセット................................................................................................. 105 リセットの概要 .................................................................................................................. 106 リセット要因と発振安定待ち時間...................................................................................... 108 外部リセット端子 ............................................................................................................... 110 リセット動作 ...................................................................................................................... 111 リセット要因ビット ........................................................................................................... 113 リセットによる各端子の状態 ............................................................................................. 115 第8章 低消費電力モード .................................................................................. 117 8.1 低消費電力モードの概要 .................................................................................................... 118 8.2 低消費電力モードのブロックダイヤグラム ....................................................................... 121 8.3 低消費電力モード制御レジスタ (LPMCR) ......................................................................... 123 8.4 CPU 間欠動作モード .......................................................................................................... 127 8.5 スタンバイモード ............................................................................................................... 128 8.5.1 スリープモード ........................................................................................................ 129 8.5.2 タイムベースタイマモード ...................................................................................... 131 8.5.3 ストップモード ........................................................................................................ 133 8.6 状態遷移図.......................................................................................................................... 135 8.7 低消費電力モード使用上の注意 ......................................................................................... 137 第9章 9.1 9.2 9.3 メモリアクセスモード ........................................................................... 141 メモリアクセスモードの概要 ............................................................................................. 142 モード端子.......................................................................................................................... 143 モードデータ ...................................................................................................................... 144 第 10 章 I/O ポート............................................................................................... 147 10.1 I/O ポート ........................................................................................................................... 148 10.2 I/O ポートのレジスタ ......................................................................................................... 149 vi 10.2.1 10.2.2 10.2.3 10.2.4 第 11 章 ポートデータレジスタ (PDR0 ~ PDR6, PDR8 ~ PDRB)....................................... 150 ポート方向レジスタ (DDR0 ~ DDR6, DDR8 ~ DDRB) ......................................... 152 アナログ入力許可レジスタ (ADER0, ADER1) ......................................................... 154 入力レベル選択レジスタ (MB90V390HA/HB のみ )................................................. 155 タイムベースタイマ............................................................................... 157 11.1 タイムベースタイマの概要................................................................................................. 158 11.2 タイムベースタイマ制御レジスタ...................................................................................... 159 11.3 タイムベースタイマの動作................................................................................................. 161 第 12 章 ウォッチドッグタイマ ........................................................................... 163 12.1 ウォッチドッグタイマの概要 ............................................................................................. 164 12.2 ウォッチドッグタイマの動作 ............................................................................................. 167 第 13 章 16 ビット入出力タイマ .......................................................................... 171 13.1 16 ビット入出力タイマの概要............................................................................................ 172 13.2 16 ビット入出力タイマのレジスタ .................................................................................... 174 13.3 16 ビットフリーランタイマ ............................................................................................... 176 13.3.1 タイマデータレジスタ (TCDT0, TCDT1) ................................................................. 177 13.3.2 タイマ制御ステータスレジスタ (TCCSL0, TCCSL1) .............................................. 178 13.3.3 16 ビットフリーランタイマの動作 .......................................................................... 181 13.4 アウトプットコンペア........................................................................................................ 183 13.4.1 アウトプットコンペアのレジスタ (OCCP0 ~ OCCP3) .......................................... 184 13.4.2 アウトプットコンペアの制御ステータスレジスタ (OCS0, OCS2) ......................... 185 13.4.3 16 ビットアウトプットコンペアの動作 ................................................................... 190 13.5 インプットキャプチャ........................................................................................................ 195 13.5.1 インプットキャプチャのレジスタ (IPCP0 ~ IPCP5) .............................................. 196 13.5.2 16 ビットインプットキャプチャの動作 ................................................................... 201 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ).......................... 203 14.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 .......................................... 204 14.2 16 ビットリロードタイマのレジスタ................................................................................. 206 14.2.1 タイマ制御ステータスレジスタ (TMCSR0) ............................................................. 207 14.2.2 16 ビットタイマレジスタ (TMR0)/16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ............................................................................................................ 210 14.3 16 ビットリロードタイマの内部 / 外部クロック動作 ........................................................ 211 14.4 16 ビットリロードタイマのアンダフロー動作 .................................................................. 213 14.5 16 ビットリロードタイマの出力端子機能.......................................................................... 214 14.6 カウンタの動作状態 ........................................................................................................... 215 第 15 章 8/16 ビット PPG .................................................................................... 217 15.1 8/16 ビット PPG の概要..................................................................................................... 218 15.2 8/16 ビット PPG のブロックダイヤグラム ........................................................................ 219 15.3 8/16 ビット PPG のレジスタ.............................................................................................. 223 15.3.1 PPG0 動作モード制御レジスタ (PPGC0) ................................................................ 225 15.3.2 PPG1 動作モード制御レジスタ (PPGC1) ................................................................ 227 15.3.3 PPG0/1 クロック選択レジスタ (PPG01) ................................................................. 229 15.3.4 リロードレジスタ (PRLL, PRLH)............................................................................. 231 15.4 8/16 ビット PPG の動作..................................................................................................... 232 vii 15.5 15.6 15.7 15.8 8/16 ビット PPG のカウントクロックの選択 .................................................................... 235 8/16 ビット PPG のパルスの端子出力の制御 .................................................................... 236 8/16 ビット PPG の割込み ................................................................................................. 237 8/16 ビット PPG の各ハードウェアの初期値 .................................................................... 238 第 16 章 16.1 16.2 16.3 16.4 16.5 DTP/ 外部割込み .................................................................................... 241 DTP/ 外部割込みの概要...................................................................................................... 242 DTP/ 外部割込みのレジスタ............................................................................................... 244 DTP/ 外部割込みの動作...................................................................................................... 246 DTP 要求と外部割込み要求の切換え ................................................................................. 248 DTP/ 外部割込みの使用上の注意 ....................................................................................... 249 第 17 章 8/10 ビット A/D コンバータ................................................................... 251 17.1 8/10 ビット A/D コンバータの概要 .................................................................................... 252 17.2 8/10 ビット A/D コンバータの構成 .................................................................................... 254 17.3 8/10 ビット A/D コンバータの端子 .................................................................................... 256 17.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 258 17.4.1 アナログ入力許可 /ADC 選択レジスタ..................................................................... 259 17.4.2 A/D 制御ステータスレジスタ 1(ADCS1).................................................................. 260 17.4.3 A/D 制御ステータスレジスタ 0 (ADCS0)................................................................. 263 17.4.4 A/D データレジスタ (ADCR0, ADCR1).................................................................... 266 17.5 8/10 ビット A/D コンバータの割込み................................................................................. 268 17.6 8/10 ビット A/D コンバータの動作 .................................................................................... 269 17.6.1 A/D 変換の EI2OS 使用 ............................................................................................ 271 17.6.2 A/D 変換データ保護機能 .......................................................................................... 272 17.7 8/10 ビット A/D コンバータ使用上の注意.......................................................................... 274 17.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) ......... 275 17.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) ......... 278 17.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) ......... 281 第 18 章 UART0 ................................................................................................... 285 18.1 UART0 の特長 .................................................................................................................... 286 18.2 UART0 のブロックダイヤグラム ....................................................................................... 287 18.3 UART0 のレジスタ ............................................................................................................. 288 18.3.1 シリアルモード制御レジスタ (UMC0) ..................................................................... 289 18.3.2 ステータスレジスタ (USR0) .................................................................................... 292 18.3.3 インプットデータレジスタ (UIDR0) とアウトプットデータレジスタ (UODR0) ................................................................................................................................. 295 18.3.4 レート・データレジスタ (URD0)............................................................................. 296 18.4 UART0 の動作 .................................................................................................................... 298 18.5 ボーレート.......................................................................................................................... 299 18.6 内部クロックおよび外部クロック...................................................................................... 302 18.7 転送データフォーマット .................................................................................................... 303 18.8 パリティビット .................................................................................................................. 304 18.9 割込み生成とフラグのセットタイミング ........................................................................... 305 18.9.1 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング .............. 306 18.9.2 受信動作時 ( モード 2) のフラグのセットタイミング.............................................. 307 18.9.3 送信動作時のフラグのセットタイミング................................................................. 308 18.9.4 送受信動作時のステータスフラグ............................................................................ 309 viii 18.10 UART0 の応用例................................................................................................................. 310 第 19 章 UART2/3 ................................................................................................ 313 19.1 UART2/3 の概要 ................................................................................................................. 314 19.2 UART2/3 の構成 ................................................................................................................. 318 19.3 UART2/3 の端子 ................................................................................................................. 322 19.4 UART2/3 のレジスタ .......................................................................................................... 324 19.4.1 シリアル制御レジスタ (SCR2/3).............................................................................. 325 19.4.2 シリアルモードレジスタ (SMR2/3).......................................................................... 327 19.4.3 シリアルステータスレジスタ (SSR2/3) ................................................................... 329 19.4.4 受信データレジスタ / 送信データレジスタ (RDR2/3 / TDR2/3) .............................. 332 19.4.5 拡張ステータス制御レジスタ (ESCR2/3) ................................................................ 334 19.4.6 拡張通信制御レジスタ (ECCR2/3) .......................................................................... 336 19.4.7 ボーレートジェネレータレジスタ 0, 1 (BGR02/BGR03/BGR12/BGR13) ............... 338 19.5 UART2/3 の割込み.............................................................................................................. 339 19.5.1 受信割込み発生とフラグセットのタイミング.......................................................... 343 19.5.2 送信割込み発生とフラグセットのタイミング.......................................................... 345 19.6 UART2/3 のボーレート ...................................................................................................... 347 19.6.1 ボーレート設定 ........................................................................................................ 349 19.6.2 リロードカウンタ..................................................................................................... 352 19.7 UART2/3 の動作 ................................................................................................................. 354 19.7.1 非同期モード ( 動作モード 0, 1) の動作 ................................................................... 356 19.7.2 同期モード ( 動作モード 2) の動作........................................................................... 359 19.7.3 LIN 機能 ( 動作モード 3) の動作 ............................................................................... 363 19.7.4 シリアル端子直接アクセス ...................................................................................... 367 19.7.5 双方向通信機能 ( ノーマルモード ) .......................................................................... 368 19.7.6 マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 370 19.7.7 LIN 通信機能............................................................................................................. 373 19.7.8 UART2/3 の LIN 通信フローチャート例 ( 動作モード 3).......................................... 374 19.8 UART2/3 使用上の注意 ...................................................................................................... 376 第 20 章 400 kHz I2C インタフェース.................................................................. 379 20.1 I2C インタフェースの概要.................................................................................................. 380 20.2 I2C インタフェースのレジスタ .......................................................................................... 382 20.2.1 バスステータスレジスタ (IBSR) .............................................................................. 384 20.2.2 バス制御レジスタ (IBCR)......................................................................................... 388 20.2.3 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL).............................................. 393 20.2.4 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ............................................... 394 20.2.5 7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 396 20.2.6 データレジスタ (IDAR) ............................................................................................ 398 20.2.7 クロック制御レジスタ (ICCR) ................................................................................. 399 2 20.3 I C インタフェースの動作.................................................................................................. 402 20.4 プログラミングフローチャート ......................................................................................... 405 第 21 章 シリアル I/O ........................................................................................... 407 21.1 シリアル I/O の概要 ............................................................................................................ 408 21.2 シリアル I/O のレジスタ..................................................................................................... 409 21.2.1 シリアルモード制御ステータスレジスタ (SMCS4) ................................................. 410 21.2.2 シリアルデータレジスタ (SDR4) ............................................................................. 414 ix 21.3 シリアル I/O プリスケーラ (CDCR4) ................................................................................. 415 21.4 シリアル I/O の動作 ............................................................................................................ 416 21.4.1 シフトクロック ........................................................................................................ 417 21.4.2 シリアル I/O の動作状態 .......................................................................................... 418 21.4.3 シフト動作のスタート / ストップタイミング .......................................................... 420 21.4.4 拡張シリアル I/O インタフェースの割込み機能....................................................... 423 第 22 章 CAN コントローラ ................................................................................. 425 22.1 CAN コントローラの特長................................................................................................... 426 22.2 CAN コントローラのブロックダイヤグラム ...................................................................... 427 22.3 全体制御レジスタの一覧 .................................................................................................... 428 22.4 メッセージバッファ (ID レジスタ ) の一覧 ........................................................................ 430 22.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 ......................................................... 432 22.6 CAN コントローラのレジスタ分類 .................................................................................... 434 22.6.1 制御ステータスレジスタ (CSR) ............................................................................... 435 22.6.2 バス動作停止ビット (HALT = 1)............................................................................... 440 22.6.3 ラストイベント表示レジスタ (LEIR) ....................................................................... 442 22.6.4 受信および送信エラーカウンタ (RTEC) .................................................................. 445 22.6.5 ビットタイミングレジスタ (BTR)............................................................................ 446 22.6.6 メッセージバッファ有効レジスタ (BVALR) ............................................................ 449 22.6.7 IDE レジスタ (IDER) ................................................................................................ 450 22.6.8 送信要求レジスタ (TREQR)..................................................................................... 451 22.6.9 送信 RTR レジスタ (TRTRR) ................................................................................... 452 22.6.10 リモートフレーム受信待機レジスタ (RFWTR)........................................................ 453 22.6.11 送信解除レジスタ (TCANR) ..................................................................................... 454 22.6.12 送信完了レジスタ (TCR) .......................................................................................... 455 22.6.13 送信割込み許可レジスタ (TIER) .............................................................................. 456 22.6.14 受信完了レジスタ (RCR).......................................................................................... 457 22.6.15 リモート要求受信レジスタ (RRTRR) ...................................................................... 458 22.6.16 受信オーバランレジスタ (ROVRR).......................................................................... 459 22.6.17 受信割込み許可レジスタ (RIER) .............................................................................. 460 22.6.18 アクセプタンスマスク選択レジスタ (AMSR) .......................................................... 461 22.6.19 アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) ...................................... 463 22.6.20 メッセージバッファ ................................................................................................. 465 22.6.21 ID レジスタ x (x:0 ~ 15) (IDRx) ............................................................................... 466 22.6.22 DLC レジスタ x (x:0 ~ 15) (DLCRx)........................................................................ 468 22.6.23 データレジスタ x (x=0 ~ 15) (DTRx) ...................................................................... 469 22.7 CAN コントローラの送信................................................................................................... 471 22.8 CAN コントローラの受信................................................................................................... 474 22.9 CAN コントローラの受信フローチャート.......................................................................... 477 22.10 CAN コントローラの使用方法............................................................................................ 478 22.11 メッセージバッファ (x) による送信方法 ............................................................................ 480 22.12 メッセージバッファ (x) による受信方法 ............................................................................ 482 22.13 マルチレベルメッセージバッファの構成の決定 ................................................................ 484 22.14 CAN ダイレクトモードレジスタ (CDMR).......................................................................... 486 22.15 CAN コントローラの使用上の注意 .................................................................................... 487 x 第 23 章 23.1 23.2 23.3 23.4 アドレス一致検出機能 ........................................................................... 489 アドレス一致検出機能の概要 ............................................................................................. 490 アドレス一致検出機能のレジスタ...................................................................................... 491 アドレス一致検出機能の動作 ............................................................................................. 493 アドレス一致検出機能の使用例 ......................................................................................... 494 第 24 章 ROM ミラー機能選択モジュール........................................................... 497 24.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 498 24.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 499 第 25 章 1M/2M/3M ビットフラッシュメモリ...................................................... 501 25.1 1M/2M/3M ビットフラッシュメモリの概要 ....................................................................... 502 25.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成 .......... 503 25.3 書込み / 消去モード ............................................................................................................ 507 25.4 フラッシュメモリ制御ステータスレジスタ (FMCS).......................................................... 509 25.5 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 511 25.6 自動アルゴリズム実行状態の確認...................................................................................... 513 25.6.1 データポーリングフラグ (DQ7) ............................................................................... 515 25.6.2 トグルビットフラグ (DQ6) ...................................................................................... 516 25.6.3 タイミングリミット超過フラグ (DQ5) .................................................................... 517 25.6.4 セクタ消去タイマフラグ (DQ3) ............................................................................... 518 25.6.5 トグルビット 2 フラグ (DQ2)................................................................................... 519 25.7 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 521 25.7.1 読出し / リセット状態 .............................................................................................. 522 25.7.2 データの書込み ........................................................................................................ 523 25.7.3 全データの消去 ( チップ消去 ) ................................................................................. 526 25.7.4 任意のデータの消去 ( セクタ消去 ) .......................................................................... 527 25.7.5 セクタ消去の一時停止 ............................................................................................. 529 25.7.6 セクタ消去の再開..................................................................................................... 530 25.8 1M/2M/3M ビットフラッシュメモリ使用上の注意............................................................. 531 25.9 フラッシュメモリにおけるリセットベクタアドレス ......................................................... 532 25.10 1M/2M/3M ビットフラッシュメモリのプログラム例 ......................................................... 533 第 26 章 26.1 26.2 26.3 26.4 26.5 MB90F947 同期シリアル書込み接続例 ................................................. 537 MB90F947 同期シリアル書込み接続の基本構成................................................................ 538 同期シリアル書込み接続例 ( ユーザ電源使用時 )............................................................... 542 同期シリアル書込み接続例 ( ライタから電源供給時 ) ....................................................... 544 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ....................... 546 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )................ 548 付録 付録 A 付録 B B.1 B.2 B.3 B.4 B.5 B.6 ............................................................................................................... 551 I/O マップ ...................................................................................................................... 552 命令 ............................................................................................................................... 560 命令の種類 .................................................................................................................. 561 アドレッシング........................................................................................................... 562 直接アドレッシング.................................................................................................... 564 間接アドレッシング.................................................................................................... 571 実行サイクル数........................................................................................................... 578 実効アドレスフィールド ............................................................................................ 580 xi B.7 B.8 B.9 付録 C 付録 D 索引 命令一覧表の読み方.................................................................................................... 582 F2MC-16LX 命令一覧表 .............................................................................................. 585 命令マップ .................................................................................................................. 599 フラッシュメモリモードのタイミングダイヤグラム.................................................... 621 MB90945 割込みベクタ一覧表 ...................................................................................... 627 ............................................................................................................... 631 xii 本版での主な変更内容 ページ 560 ∼ 620 変更内容(詳細は本文を参照してください。) 「付録 B 命令」全体を変更 変更箇所は , 本文中のページ左側の│によって示しています。 xiii xiv 第1章 概要 MB90945 シリーズの特長や基本的な仕様について 説明します。 1.1 製品概要 1.2 特長 1.3 MB90V390HA/HB のブロックダイヤグラム 1.5 MB90F947(A),MB90947A のブロックダイヤグラム 1.6 MB90F949(A) のブロックダイヤグラム 1.7 端子配列図 1.8 パッケージ外形寸法図 1.9 端子機能説明 1.10 入出力回路 1.11 デバイスの取扱い 1 第 1 章 概要 1.1 製品概要 表 1.1-1 に , MB90945 シリーズの製品概要を示します。 ■ 製品概要 表 1.1-1 製品概要 品種構成 MB90V390HA MB90V390HB MB90F946A MB90F947(A) MB90F949(A) MB90947A 評価用品 フラッシュメモリ品 マスク ROM 品 F2MC-16LX CPU CPU システムクロック ROM/ フラッシュ メモリ 2 オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, × 6, × 8, PLL 停止時 1/2) 最小命令実行時間 42 ns (5MHz 原発振 6 逓倍 ) 外部 RAM 30K バイト パッケージ PGA-299 ハード・ワイヤード・リセッ ト・ベクタ付きブートブロッ クフラッシュメモリ 384K バイト ( MB90F946A) 128K バイト ( MB90F947(A)) 256K バイト ( MB90F949(A)) 16K バイト ( MB90F946A) 6K バイト ( MB90F947(A)) 12K バイト ( MB90F949(A)) QFP-100 ブートブロック ROM メモリ 128 K バイト 6 K バイト 第 1 章 概要 1.2 特長 表 1.2-1 に , MB90945 シリーズの特長を示します。 ■ 特長 表 1.2-1 MB90945 の特長 ( 1 / 2 ) 特長 MB90V390HA MB90V390HB MB90F946A MB90F947(A) MB90F949(A) MB90947A UART 1 チャネル 全 2 重ダブルバッファ方式 非同期 / 同期転送 ( スタート / ストップビット付 ) をサポートします。 ボーレート 4808/9615/10417/19230/38460/62500/500000bps ( 非同期 ) システムクロック =20MHz 時 500K/1M/2Mbps ( 同期 ) UART (SCI / LIN) 1 チャネル I2C (400kbps) 1 チャネル シリアル I/O MSB または LSB から転送開始可能です。 内部クロック同期転送 および外部クロック同期転送をサポートします。 ポジティブエッジとネガティブエッジクロック同期をサポートします。 ボーレートシステムクロック =20MHz 時 31.25K/62.5K/125K/500K/1Mbps (MB90F946A, MB90V390HA/HB : 2 チャネル ) 15 本の入力チャネル A/D コンバータ 10 ビットまたは 8 ビットの分解能 変換時間 :4.9 μs (1 チャネルあたり ) 2 チャネル 16 ビット リロードタイマ 1 チャネル 動作クロック周波数 fsys/21, fsys/23, fsys/25 (fsys= システムクロック周波数 ) 外部イベントカウント機能をサポートします。 16 ビット入出力 タイマ (2 チャネル ) オーバフロー時に割込み信号を出力します。 アウトプットコンペア (ch.0) との照合時に , タイマクリアをサポートします。 動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24, fsys/25, fsys/26, fsys/27 (fsys= システムクロック周波数 ) 入出力タイマ 0 ( クロック入力 FRCK0) は , ICU 0/1, OCU 0/1/2/3 に対応 入出力タイマ 1 ( クロック入力 FRCK1) は , ICU 2/3/4/5 に対応 16 ビットアウト プットコンペア (4 チャネル ) 16 ビット入出力タイマとの照合時に , 割込み信号を出力します。 16 ビットコンペアレジスタ× 4 本 1 対のコンペアレジスタを出力信号生成に使用可能です。 16 ビットイン プットキャプチャ (6 チャネル ) 立上りエッジ , 立下りエッジまたはその両方を検出します。 16 ビットキャプチャレジスタ× 6 本 外部イベント時に割込み信号を出力します。 3 第 1 章 概要 表 1.2-1 MB90945 の特長 ( 2 / 2 ) 特長 MB90V390HA MB90V390HB MB90F946A MB90F947(A) MB90F949(A) MB90947A 8/16 ビット PPG ( プログラマブル パルス発生部 ) (6 チャネル ) 8 ビットと 16 ビットの動作モードをサポートします。 8 ビットリロードカウンタ× 12 本 "L" パルス幅用の 8 ビットリロードレジスタ× 12 本 "H" パルス幅用の 8 ビットリロードレジスタ× 12 本 1 対の 8 ビットリロードカウンタを 1 本の 16 ビットリロードカウンタとして , または 8 ビットプリスケーラと 8 ビットリロードカウンタとして構成可能で す。 動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24 または 102.4 μs @fosc=5MHz (fsys= システムクロック周波数 , fosc= 発振クロック周波数 ) CAN インタ フェース 1 チャネル CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。 エラー時に自動再送します。 リモートフレームに応答して自動伝送します。 データおよび ID 用の順位付けされた 16 個のメッセージバッファ複数メッセー ジをサポートします。 アクセプタンスフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマスク /2 個の部分ビットマスク 最高 1Mbps までサポートします。 MB90V390HA, MB90F947, MB90F949: クロック変調と CAN を同時に使用できません。 周波数変調モード 位相変調モード クロック モジュレータ 位相変調モード MB90V390HA, MB90F947, MB90F949: クロック変調と CAN を同時に使用できません。 位相変調モード EMI は PLL クロックの変調により減少します。 外部割込み (8 チャネル ) 立上りエッジ , 立下りエッジ , "H" レベル , "L" レベルで起動可能 入出力ポート ほとんど , 全外部端子を汎用入出力として使用可能です。 すべてのプッシュプル出力 入力 / 出力または周辺信号として , ビット単位でプログラム可能です。 Automotive ヒステリシス入力特性 フラッシュメモリ - 自動プログラミング , Embedded AlgorithmTM*, 書込 み / 消去 / 消去一時停止 / 消去再開コマンドを サポートします。 アルゴリズムの完了を示すフラグ 消去サイクル数 : 10,000 回 データ保存期間 : 20 年間 フラッシュメモリ中の固定ブートセクタを示すた めに , ハード・ワイヤード・リセット・ベクタが使 用可能です。 ブートブロック構成 各ブロックで消去を実行可能です。 外部プログラミング電圧によるブロック保護 *: Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。 4 第 1 章 概要 1.3 MB90V390HA/HB のブロックダイヤグラム 図 1.3-1 に , MB90V390HA/HB のブロックダイヤグラムを示します。 ■ MB90V390HA/HB のブロックダイヤグラム 図 1.3-1 MB90V390HA/HB のブロックダイヤグラム X0,X1 RST 位相モジュ レータ付き クロックコ ントローラ 16LX CPU RAM 16K インプット キャプチャ 6 チャネル IN5 ~ IN0 OUT3 ~ OUT0 プリスケーラ I/O タイマ 1 FRCK1 UART 8/16 ビット PPG 6 チャネル PPG15 ~ PPG10 プリスケーラ SOT3 SCK3 SIN3 FRCK0 アウトプット コンペア 4 チャネル UART (LIN/SCI/ SPI) F2MC-16 Bus SOT0 SCK0 SIN0 I/O タイマ 0 CAN 外部割込み PPG05 ~ PPG00 RX1 TX1 INT7 ~ INT0 プリスケーラ SOT4 SCK4 SIN4 AVCC AVSS AN14 ~ AN0 AVRH AVRL ADTG シリアル I/O 10 ビット A/D コンバータ 15 チャネル I2C 16 ビット リロード タイマ 2 チャネル SDA SCL TIN1, TIN0 TOT1, TOT0 5 第 1 章 概要 1.4 MB90F946A のブロックダイヤグラム 図 1.4-1 に , MB90F946A のブロックダイヤグラムを示します。 ■ MB90F946A のブロックダイヤグラム 図 1.4-1 MB90F946A のブロックダイヤグラム X0,X1 RST 位相モジュ レータ付き クロックコ ントローラ 16LX CPU RAM 16K インプット キャプチャ 6 チャネル IN5 ~ IN0 アウトプット コンペア 4 チャネル OUT3 ~ OUT0 プリスケーラ I/O タイマ 1 FRCK1 UART0 8/16 ビット PPG 6 チャネル プリスケーラ× 2 SOT2/3 SCK2/3 SIN2/3 FRCK0 フラッシュ 384K UART2/3 (LIN/SCI/ SPI) F2MC-16 Bus SOT0 SCK0 SIN0 I/O タイマ 0 CAN 外部割込み PPG15 ~ PPG0 PPG05 ~ PPG00 RX1 TX1 INT7 ~ INT0 プリスケーラ SOT4 SCK4 SIN4 AVCC AVSS AN14 ~ AN0 AVRH AVRL ADTG 6 シリアル I/O 10 ビット A/D コンバータ 15 チャネル I2C 16 ビット リロード タイマ 1 チャネル SDA SCL TIN0 TOT0 第 1 章 概要 1.5 MB90F947(A),MB90947A のブロックダイヤグラム 図 1.5-1 に , MB90F947(A) と MB90947A のブロックダイヤグラムを示します。 ■ MB90F947(A) と MB90947A のブロックダイヤグラム 図 1.5-1 MB90F947(A) と MB90947A のブロックダイヤグラム X0,X1 RST 位相モジュ レータ付き クロックコ ントローラ 16LX CPU RAM 6K フラッシュ インプット キャプチャ 6 チャネル IN5 ~ IN0 アウトプット コンペア 4 チャネル OUT3 ~ OUT0 プリスケーラ I/O タイマ 1 FRCK1 UART 8/16 ビット PPG 6 チャネル プリスケーラ SOT3 SCK3 SIN3 FRCK0 ROM * 128K UART (LIN/SCI/ SPI) F2MC-16 Bus SOT0 SCK0 SIN0 I/O タイマ 0 CAN 外部割込み PPG15 ~ PPG10 PPG05 ~ PPG00 RX1 TX1 INT7 ~ INT0 プリスケーラ SOT4 SCK4 SIN4 AVCC AVSS AN14 ~ AN0 AVRH AVRL ADTG シリアル I/O 10 ビット A/D コンバータ 15 チャネル I2C 16 ビット リロード タイマ 1 チャネル SDA SCL TIN0 TOT0 *: MB90F947(A) : フラッシュ 128 K バイト MB90947A : ROM 128 K バイト 7 第 1 章 概要 1.6 MB90F949(A) のブロックダイヤグラム 図 1.6-1 に , MB90F949(A) のブロックダイヤグラムを示します。 ■ MB90F949(A) のブロックダイヤグラム 図 1.6-1 MB90F949(A) のブロックダイヤグラム X0,X1 RST 位相モジュ レータ付き クロックコ ントローラ 16LX CPU RAM 12K フラッシュ 256K インプット キャプチャ 6 チャネル IN5 ~ IN0 プリスケーラ I/O タイマ 1 UART 8/16 ビット PPG 6 チャネル プリスケーラ SOT3 SCK3 SIN3 FRCK0 アウトプット コンペア 4 チャネル UART (LIN/SCI/ SPI) F2MC-16 Bus SOT0 SCK0 SIN0 I/O タイマ 0 CAN 外部割込み OUT3 ~ OUT0 FRCK1 PPG15 ~ PPG10 PPG05 ~ PPG00 RX1 TX1 INT7 ~ INT0 プリスケーラ SOT4 SCK4 SIN4 AVCC AVSS AN14 ~ AN0 AVRH AVRL ADTG 8 シリアル I/O 10 ビット A/D コンバータ 15 チャネル I2C SDA SCL 16 ビット リロード タイマ 1 チャネル TIN0 TOT0 第 1 章 概要 1.7 端子配列図 ここでは , MB90945 シリーズの端子配列図を示します。 ■ MB90V390HA/HB の端子配列図 図 1.7-1 MB90V390HA/HB の端子配列図 MD2 MD0 MD1 RST P55/PPG15 P56/PPG00 P57/PPG01 P90 P93/SIN3 P95/SOT3 P94/SCK3 P91 P92 P96 Vcc Vss PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 P80 P81 P00/IN0 P01/IN1 P02/IN2 P03/IN3 (TOP VIEW) 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 P04/IN4 81 50 P97/FRCK1 P05/IN5 82 49 PB7/FRCK0 P06/OUT0 83 48 P54/PPG14 P07/OUT1 84 47 P53/PPG13 P10/OUT2 85 46 P52/PPG12 P11/OUT3 86 45 P51/PPG11 P12 87 44 Vss P13 88 43 P67/AN7 P14/TIN0 89 42 P66/AN6 Vcc 90 41 P65/AN5 Vss 91 40 P64/AN4 X1 92 39 P63/AN3 X0 93 38 P62/AN2 P15/TOT0 94 37 P61/AN1 P16 95 36 P60/AN0 P17 96 35 AVss P20/TX1 97 34 AVRL P21/RX1 98 33 AVRH P22/INT2 99 32 AVcc P23/INT3 100 31 PB6/SOT4/AN14 QFP - 100 Package code (mold) FPT-100P-M06 PB5/SCK4/AN13 PB4/SIN4/AN12 PB3/PPG05/AN11 PB2/PPG04/AN10 PB1/PPG03/AN9 PB0/PPG02/AN8 P50/PPG10 P47/INT1 P46/INT0 P43/SCL P42/SDA P41 P40 C Vss Vcc P45/ADTG P44 P37 P36/SIN0 P35/SCK0 P33/TOT1 P34/SOT0 P32/TIN1 P31 P30 P27/INT7 P26/INT6 P25/INT5 P24/INT4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 (FPT-100P-M06) As seen with QFP100 probe cable 9 第 1 章 概要 ■ MB90F946A の端子配列図 図 1.7-2 MB90F946A の端子配列図 MD2 MD0 MD1 RST P55/PPG15 P56/PPG00 P57/PPG01 P90 P93/SIN3 P95/SOT3 P94/SCK3 P91 P92 P96 Vcc Vss PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 P80 P81 P00/IN0 P01/IN1 P02/IN2 P03/IN3 (TOP VIEW) 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 P04/IN4 81 50 P97/FRCK1 P05/IN5 82 49 PB7/FRCK0 P06/OUT0 83 48 P54/PPG14 P07/OUT1 84 47 P53/PPG13 P10/OUT2 85 46 P52/PPG12 P11/OUT3 86 45 P51/PPG11 P12 87 44 Vss P13 88 43 P67/AN7 P14/TIN0 89 42 P66/AN6 Vcc 90 41 P65/AN5 Vss 91 40 P64/AN4 X1 92 39 P63/AN3 X0 93 38 P62/AN2 P15/TOT0 94 37 P61/AN1 P16 95 36 P60/AN0 P17 96 35 AVss P20/TX1 97 34 AVRL P21/RX1 98 33 AVRH P22/INT2 99 32 AVcc P23/INT3 100 31 PB6/SOT4/AN14 QFP - 100 Package code (mold) FPT-100P-M06 (FPT-100P-M06) 10 PB5/SCK4/AN13 PB4/SIN4/AN12 PB3/PPG05/AN11 PB2/PPG04/AN10 PB1/PPG03/AN9 PB0/PPG02/AN8 P50/PPG10 P47/INT1 P46/INT0 P43/SCL P42/SDA P41 P40 C Vss Vcc P45/ADTG P44 P37 P36/SIN0 P35/SCK0 P33/TOT1 P34/SOT0 P32/TIN1 P31 P30 P27/INT7 P26/INT6 P25/INT5 P24/INT4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 第 1 章 概要 ■ MB90947A/MB90F947(A)/MB90F949(A) の端子配列図 図 1.7-3 MB90947A/MB90F947(A)/MB90F949(A) の端子配列図 MD2 MD0 MD1 RST P55/PPG15 P56/PPG00 P57/PPG01 P90 P93/SIN3 P95/SOT3 P94/SCK3 P91 P92 P96 Vcc Vss PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 P80 P81 P00/IN0 P01/IN1 P02/IN2 P03/IN3 (TOP VIEW) 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 P04/IN4 81 50 P97/FRCK1 P05/IN5 82 49 PB7/FRCK0 P06/OUT0 83 48 P54/PPG14 P07/OUT1 84 47 P53/PPG13 P10/OUT2 85 46 P52/PPG12 P11/OUT3 86 45 P51/PPG11 P12 87 44 Vss P13 88 43 P67/AN7 P14/TIN0 89 42 P66/AN6 Vcc 90 41 P65/AN5 Vss 91 40 P64/AN4 X1 92 39 P63/AN3 X0 93 38 P62/AN2 P15/TOT0 94 37 P61/AN1 P16 95 36 P60/AN0 P17 96 35 AVss P20/TX1 97 34 AVRL P21/RX1 98 33 AVRH P22/INT2 99 32 AVcc P23/INT3 100 31 PB6/SOT4/AN14 QFP - 100 Package code (mold) FPT-100P-M06 PB5/SCK4/AN13 PB4/SIN4/AN12 PB3/PPG05/AN11 PB2/PPG04/AN10 PB1/PPG03/AN9 PB0/PPG02/AN8 P50/PPG10 P47/INT1 P46/INT0 P43/SCL P42/SDA P41 P40 C Vss Vcc P45/ADTG P44 P37 P36/SIN0 P35/SCK0 P34/SOT0 P33 P32 P31 P30 P27/INT7 P26/INT6 P25/INT5 P24/INT4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 (FPT-100P-M06) 11 第 1 章 概要 1.8 パッケージ外形寸法図 図 1.8-1 に , MB90945 シリーズのパッケージ外形寸法図を示します。なお , 本外形 寸法は参考用です。正式版については , 別途ご相談ください。 ■ パッケージ外形寸法図 図 1.8-1 パッケージ外形寸法図 プラスチック・QFP, 100 ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 14.00 × 20.00mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 3.35mm MAX コード(参考) P-QFP100-14×20-0.65 (FPT-100P-M06) プラスチック・QFP, 100 ピン (FPT-100P-M06) 注 1)* 印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 23.90±0.40(.941±.016) * 20.00±0.20(.787±.008) 80 51 81 50 0.10(.004) 17.90±0.40 (.705±.016) *14.00±0.20 (.551±.008) INDEX Details of "A" part 100 1 30 0.65(.026) "A" C 12 0.25(.010) +0.35 3.00 –0.20 +.014 .118 –.008 (Mounting height) 0~8˚ 31 2002 FUJITSU LIMITED F100008S-c-5-5 0.32±0.05 (.013±.002) 0.13(.005) M 0.17±0.06 (.007±.002) 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) 0.25±0.20 (.010±.008) (Stand off) 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 1.9 端子機能説明 表 1.9-1 に , MB90945 シリーズの端子機能説明を示します。 ■ 端子機能説明 表 1.9-1 端子機能説明 ( 1 / 4 ) 端子番号 端子名 回路形式 92 X1 93 X0 54 RST B リセット入力端子です。 P00 ~ P05 D 汎用入出力ポートです。 77 ~ 82 A 機能説明 発振用端子です。 IN0 ~ IN5 83 ~ 86 P06, P07 P10, P11 インプットキャプチャ 0 ~ 5 の入力端子です。 D OUT0 ~ OUT3 87, 88 89 P12, P13 D 汎用入出力ポートです。 P14 D 汎用入出力ポートです。 P15 16 ビット リロードタイマ 0 の TIN0 入力端子です D TOT0 95, 96 97 汎用入出力ポートです。 16 ビット リロードタイマ 0 の TOT0 出力端子です。 P16, P17 D 汎用入出力ポートです。 P20 D 汎用入出力ポートです。 TX1 98 汎用入出力ポートです。 アウトプットコンペアの出力端子です。 TIN0 94 発振用端子です。 P21 CAN インタフェース 1 の TX 出力端子です。 F RX1 汎用入出力ポートです。 CAN インタフェース 1 の RX 入力端子です。 D 99, 100 1~4 P22 ~ P27 5~8 P30 ~ P33 D 汎用入出力ポートです。 P34 D 汎用入出力ポートです。 9 INT2 ~ INT7 INT2 ~ INT7 の外部割込み入力端子です。 SOT0 10 P35 SCK0 汎用入出力ポートです。 UART 0 の SOT 出力端子です。 D 汎用入出力ポートです。 UART 0 の SCK 入出力端子です。 13 第 1 章 概要 表 1.9-1 端子機能説明 ( 2 / 4 ) 端子番号 11 端子名 P36 回路形式 D SIN0 汎用入出力ポートです。 UART 0 の SIN 入力端子です。 12 P37 D 汎用入出力ポートです。 13 P44 D 汎用入出力ポートです。 14 P45 D 汎用入出力ポートです。 ADTG 18, 19 20 A/D コンバータの外部トリガ入力端子です。 P40, P41 D 汎用入出力ポートです。 P42 F 汎用入出力ポートです。 SDA 21 P43 I2C インタフェースのシリアルデータ端子です。 F SCL 22, 23 P46, P47 24 P50 D 29 30 31 36 ~ 43 PB0 ~ PB3 汎用入出力ポートです。 INT0 ~ INT1 の外部割込み入力端子です。 D PPG10 25 ~ 28 汎用入出力ポートです。 I2C インタフェースのシリアルクロック端子です。 INT0, INT1 汎用入出力ポートです。 プログラマブルパルスジェネレータの出力端子です。 E 汎用入出力ポートです。 PPG02 ~ PPG05 プログラマブルパルスジェネレータの出力端子です。 AN8 ~ AN11 A/D コンバータの入力端子です。 PB4 E 汎用入出力ポートです。 SIN4 シリアル I/O の SIN 入力端子です。 AN12 A/D コンバータの入力端子です。 PB5 E 汎用入出力ポートです。 SCK4 シリアル I/O の SCK 入出力端子です。 AN13 A/D コンバータの入力端子です。 PB6 E 汎用入出力ポートです。 SOT4 シリアル I/O の SOT 出力端子です。 AN14 A/D コンバータの入力端子です。 P60 ~ P67 AN0 ~ AN7 14 機能説明 E 汎用入出力ポートです。 A/D コンバータの入力端子です。 第 1 章 概要 表 1.9-1 端子機能説明 ( 3 / 4 ) 端子番号 端子名 45 ~ 48 P51 ~ P54 回路形式 D PPG11 ~ PPG14 49 PB7 P97 D P55 D P56, P57 D P90 D P93 D P95 D P94 D P91 D P92 D 汎用入出力ポートです。 UART2 の SCK 入出力端子です (LIN/SCI/SPI)。 (MB90F946A, MB90V390HA/HB のみ ) D SOT2 64 汎用入出力ポートです。 UART 3 の SCK 入出力端子です (LIN/SCI/SPI)。 SCK2 63 汎用入出力ポートです。 UART 3 の SOT 出力端子です (LIN/SCI/SPI)。 SCK3 62 汎用入出力ポートです。 UART 3 の SIN 入力端子です (LIN/SCI/SPI)。 SOT3 61 汎用入出力ポートです。 UART 2 の SIN 入力端子です (LIN/SCI/SPI)。 (MB90F946A, MB90V390HA/HB のみ ) SIN3 60 汎用入出力ポートです。 プログラマブルパルスジェネレータの出力端子です。 SIN2 59 汎用入出力ポートです。 プログラマブルパルスジェネレータの出力端子です。 PPG00, PPG01 58 汎用入出力ポートです。 16 ビット I/O タイマ 1 の FRCK1 入力端子です。 PPG15 56, 57 汎用入出力ポートです。 16 ビット I/O タイマ 0 の FRCK0 入力端子です。 FRCK1 55 汎用入出力ポートです。 プログラマブルパルスジェネレータの出力端子です。 FRCK0 50 機能説明 汎用入出力ポートです。 UART 2 の SOT 出力端子です (LIN/SCI/SPI)。 (MB90F946A, MB90V390HA/HB のみ ) P96 D 汎用入出力ポートです。 PA0 ~ PA7 H 汎用入出力ポートです。EVA デバイスでは端子はス ルーレート制御付き高電流出力です。 P80, P81 H 汎用入出力ポートです。EVA デバイスでは端子はス ルーレート制御付き高電流出力です。 32 AVCC -- A/D コンバータの専用電源 (5V) 端子です。 33 AVRH -- A/D コンバータ用高基準電圧入力端子です。 67 ~ 74 75, 76 15 第 1 章 概要 表 1.9-1 端子機能説明 ( 4 / 4 ) 端子番号 端子名 回路形式 機能説明 34 AVRL -- A/D コンバータ用低基準電圧入力端子です。 35 AVSS -- A/D コンバータの専用電源 (0V) 端子です。 MD1, MD0 C 動作モード指定用入力端子です。VCC あるいは VSS 52, 53 に直接つないで使用してください。 51 MD2 G 動作モード指定用入力端子です。VCC あるいは VSS に直接つないで使用してください。 16 15 65 90 VCC -- 電源 (5V) 入力端子です。EVA デバイスでは , ピン 65 は高電流出力の DVcc 供給端子として使用します。 16 44 66 91 VSS -- 電源 (0V) 入力端子です。EVA デバイスでは , ピン 66 は高電流出力の DVss 供給端子として使用します。 17 C -- 電源安定化の容量端子です。0.1 μF 以上のセラミッ クコンデンサに接続してください。 第 1 章 概要 1.10 入出力回路 表 1.10-1 に , 入出力回路を示します。 ■ 入出力回路 表 1.10-1 入出力回路 ( 1 / 3 ) 分類 回路 備考 A 発振帰還抵抗約 1MΩ X1 クロック入力 P-ch N-ch X0 スタンバイ制御信号 B プルアップ抵抗付きCMOSヒステリ VCC シス入力 ( 約 50kΩ) R ( プルアップ ) R CMOS ヒステリシス入力 C R CMOS ヒステリシス入力 • 評価用品 / マスク ROM 品 : CMOS ヒステリシス入力 • フラッシュメモリ品 : CMOS 入力 17 第 1 章 概要 表 1.10-1 入出力回路 ( 2 / 3 ) 分類 回路 備考 D • CMOS 出力 (4mA) • オートモーティブヒステリシス 入力 VCC P-ch N-ch R ࠝ࠻ࡕ࠹ࠖࡉ ࡅࠬ࠹ࠪࠬജ E VCC P-ch N-ch P-ch アナログ入力 N-ch R 18 オートモーティブ ヒステリシス入力 • CMOS 出力 (4mA) • オートモーティブヒステリシス 入力 • アナログ入力 第 1 章 概要 表 1.10-1 入出力回路 ( 3 / 3 ) 分類 回路 備考 F • CMOS 出力 P21: 4mA P42, P43: 3mA • CMOS ヒステリシス入力 VCC P-ch High current N-ch R CMOSヒステリシス入力 R Automotive HYS G R CMOSヒステリシス入力 R(プルダウン) H VCC P-ch N-ch • 評価用品 / マスク ROM 品 : プルダウン抵抗付き CMOS ヒステリシス入力 ( 約 50 kΩ) • フラッシュメモリ品 : プルダウンなし CMOS 入力 • 評価用品 / マスク ROM 品 : スルーレート制御付き CMOS 高電流出力 (30mA) • フラッシュメモリ品 : CMOS 出力 (4mA) • オートモーティブヒステリシス 入力 R ࠝ࠻ࡕ࠹ࠖࡉ ࡅࠬ࠹ࠪࠬജ 19 第 1 章 概要 1.11 デバイスの取扱い デバイスを取り扱う際には , 次の 11 の点について特にご注意ください。 • ラッチアップの防止 • 未使用端子の処理 • 電源電圧の安定化 • 外部クロックの使用 • 電源端子 (VCC/VSS) • • • • • • プルアップ / プルダウン抵抗 水晶発振回路について A/D コンバータの電源 , アナログ入力の投入順序について A/D コンバータ未使用時の端子処理について 電源投入時の注意点 PLL クロックモード動作中の注意について ■ デバイスの取扱い ● ラッチアップの防止 CMOS IC は , 以下の条件でラッチアップ現象を生じさせることがあります。 • VCC を超えるか VSS に満たない電圧が , 入力または出力端子に適用された場合 • 定格電圧を超える電圧が VCC と VSS の間に適用された場合 • AVCC 電源入力が VCC 電圧の前に適用された場合 ラッチアップ現象は , 電源電流を急激に増加させ , デバイスを傷つけることがありま す。 ● 未使用端子の処理 使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる 永久破壊の原因となることがありますので , 2kΩ 以上の抵抗を介して , プルアップまた はプルダウンなどの処置をしてください。 また , 使用していない入出力端子がある場合は , 出力状態に設定して開放するか , 入力 状態に設定して入力端子と同じ処置をしてください。 ● 電源電圧の安定化 VCC 電源電圧の動作保証内においても , 電源電圧の急激な変化があると誤動作を起こ す場合がありますので , VCC 電源電圧を安定させてください。 安定化の基準としては, 商用周波数 (50 Hz~60 Hz) でのVCC リップル変動 (peak to peak 値 ) は , 標準 VCC 電源電圧値の 10% 以下に , また電源の切換え時などの瞬時変化にお いては , 過度変動率が 0.1 V/ms 以下になるように電源電圧を抑えてください。 20 第 1 章 概要 ● 外部クロックの使用 外部クロックを使用するには , X0 端子を駆動して X1 端子は開放してください。 図 1.11-1 に , 外部クロックの使用方法を示します。 図 1.11-1 外部クロックの使用 MB90945 シリーズ X0 開放 X1 ● 電源端子 (VCC/VSS) 図 1.11-2 に示すように , すべての VCC 電源端子は , 必ず同電位にしてください。また , すべての VSS 電源端子も同様に扱ってください。複数の VCC または VSS システムがあ る場合 , デバイスは保証された動作範囲内でも正しく動作しません。 図 1.11-2 電源端子 (VCC/VSS) Vcc Vss Vcc Vss Vss Vcc MB90945 シリーズ Vcc Vss Vss Vcc 21 第 1 章 概要 ● プルアップ / プルダウン抵抗 MB90945 シリーズは , 内部プルアップ / プルダウン抵抗オプションをサポートしてい ません。必要であれば , 外部構成部品を使用してください。 ● 水晶発振回路について X0, X1 端子の近辺のノイズは , このデバイスの誤動作の原因となります。X0, X1 端子 および水晶振動子 (またはセラミック振動子) さらにグランドへのバイパスコンデンサ はできる限り近くになるように , またその配線は , ほかの配線とできる限り交差しない ようにプリント基板を設計してください。 また , X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定し た動作を期待できますので , 強くお薦めします。 各量産品において、ご使用される発振子メーカに発振評価依頼をしてください。 ● A/D コンバータの電源 , アナログ入力の投入順序について A/D コンバータの電源 (AVCC, AVRH, AVRL) およびアナログ入力 (AN0 ~ AN14) の印 加は , 必ずデジタル電源 (VCC) の投入後に行ってください。 また , 電源切断時は A/D コンバータの電源およびアナログ入力の遮断の後で , デジタル 電源の遮断を行ってください。その際 , 電圧は AVRH, AVCC を超えないように投入・ 切断を行ってください 。 ● A/D コンバータ未使用時の端子処理について A/D コンバータを使用しないときは , AVCC=VCC, AVSS=AVRH=AVRL=VSS に接続して ください。 ● 電源投入時の注意点 内部に内蔵している降圧回路の誤動作を防ぐために , 電源投入時における電圧の立上 り時間は , 50 μs (0.2 V ~ 2.7 V の間 ) 以上を確保してください。 ● 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 ビットデータ処理も可能です ( 一部の命令と併せて 32 ビットデータ処理が可能になります )。メモリ空間は最大 16M バイト ( 拡張可能 ), リ ニア方式およびバンク方式のいずれかにてアクセス可能です。また , 命令体系は F2MC8L の 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 メモリ空間の概要 図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。 図 2.2-1 F2MC-16LX システムとメモリマップの関係例 F2MC-16LX デバイス FFFFFFH FFFC00H プログラム FF0000H *1 ベクタテーブル領域 ROM 領域 プログラム領域 100000H 010000H F2MC-16LX CPU 内部データバス 008000H / 004000H *2 020000H 外部領域 *4 ROM ミラー領域 (FF バンクのイメ-ジ ) 外部領域 *4 000D00H *3 データ EI2OS 000380H 000180H 000100H 0000C0H 割込み データ領域 汎用レジスタ EI2OS ディスク リプタ領域 外部領域 *4 割込み制御レジスタ領域 0000B0H リソース 汎用ポート RAM 領域 リソース制御レジスタ領域 I/O 領域 000020H 000000H I/O ポート制御レジスタ 領域 *1:品種によって , 内蔵 ROM の容量が異なります。 *2:品種によって , イメージでアクセスできる領域が異なります ( 第 24 章を参照 )。 *3:品種によって , 内蔵 RAM の容量が異なります。 *4:シングルチップモード時には , アクセスできません。 25 第 2 章 CPU ■ ROM 領域 ● ベクタテーブル領域 ( アドレス : FFFC00H ~ FFFFFFH) ベクタコール命令 , 割込みベクタおよびリセットベクタの各々のベクタテーブルとし て使用します。 ROM 領域の最上位アドレスに割り当てられており , 対応する処理ルーチンの開始アド レスをベクタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルのア ドレスにデータとして設定します。 ● プログラム領域 ( アドレス:" ~ FFFBFFH") ROM が内部プログラム領域として内蔵されています。 内蔵 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 に , MB90945 シリーズのメモリ空間マップを示します。 ■ メモリ空間マップ 図 2.3-1 に示すように , バンク 00 の上位部分は FF バンク ROM のイメージであり , C コ ンパイラのスモールモデルを有効にします。下位 16 ビットも同様なため , ポインタ宣 言内の far 仕様を使用せずに ROM 内のテーブルを参照できます。例えば , 00C000H に アクセスしようとすると , ROM 内の FFC000H の値にアクセスすることになります。バ ンク FF 内の ROM 領域は 48K バイト (MB90V390HA/HB および MB90F946A では各 32K バイト ) を超え , バンク 00 内にその全体イメージを表示することはできません。 MB90947A, MB90F947(A) および MB90F949(A) では , FF4000H/FF8000H* ~ FFFFFFH の 間のイメージはバンク 00 内で可視ですが , FF0000H ~ FF3FFFH/FF7FFFH* の間のイメー ジはバンク FF 内でしか可視でありません。 MB90V390HA/HB および MB90F946A では , FF8000H ~ FFFFFFH の間のイメージはバ ンク 00 内で可視ですが , FF0000H ~ FF7FFFH の間のイメージはバンク FF 内でしか可 視できません。 *:ROM レジスタの MS ビットで選択できます (「24.2 ROM ミラー機能選択レジスタ (ROMM)」参照 )。 28 第 2 章 CPU 図 2.3-1 メモリ空間マップ MB90V390HA MB90V390HB FFFFFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H FCFFFFH FC0000H FBFFFFH FB0000H FAFFFFH FA0000H F9FFFFH F90000H 8017FFH ROM (FF バンク ) ROM (FE バンク ) ROM (FD バンク ) MB90947A MB90F947 MB90F947A MB90F946A FFFFFFH ROM (FF バンク ) FF0000H FEFFFFH ROM (FE バンク ) FE0000H FDFFFFH FFFFFFH FF0000H FEFFFFH FE0000H ROM (FF バンク ) ROM (FE バンク ) ROM (FD バンク ) FD0000H ROM (FA バンク ) FFFFFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H FCFFFFH ROM (FC バンク ) ROM (FB バンク ) MB90F949 MB90F949A FC0000H FBFFFFH FB0000H FAFFFFH ROM (FF バンク ) ROM (FE バンク ) ROM (FD バンク ) ROM (FC バンク ) ROM (FB バンク ) ROM (FA バンク ) FA0000H ROM (F9 バンク ) F9FFFFH F90000H ROM (F9 バンク ) RAM 6K バイト 800000H 00FFFFH 008000H ROM (FF バンク のイメージ ) 0070FFH 00FFFFH 00FFFFH 00FFFFH ROM (FF バンク ROM (FF バンク ROM (FF バンク 004000H/ のイメージ ) 004000H/ のイメージ ) 008000H のイメージ ) 008000H 008000H RAM 12K バイト 0050FFH 004100H RAM 4K バイト 004100H 003FFFH 周辺 003FFFH 003FFFH 周辺 003500H 003500H 0030FFH 0030FFH RAM 12K バイト 003FFFH 周辺 003500H 周辺 003500H 0030FFH RAM 12K バイト RAM 12K バイト 0018FF H RAM 6K バイト 000100H 0000BFH 000000H 000100H 000100H 周辺 0000BFH 000000H 周辺 0000BFH 000000H 000100H 周辺 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 XXXX 3A +7 RL1 ( 上位 8 ビットは無視 ) 新 AL 30 003A 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 各空間の物理アドレス FFFFFF H プログラム空間 FF0000 H B3FFFF H 物理アドレス : PCB ( プログラムカウンタバンクレジスタ ) B3 H : ADB ( アディショナルデータバンクレジスタ ) 92 H : USB ( ユーザスタックバンクレジスタ ) 68 H : DTB ( データバンクレジスタ ) 4B H : SSB ( システムスタックバンクレジスタ ) アディショナル空間 B30000 H 92FFFF H FF H ユーザスタック空間 920000 H 68FFFF H データ空間 680000 H 4BFFFF H システムスタック空間 4B0000 H 000000 H 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 01010101 11001100 11111111 00010100 01010101 11001100 11111111 n 番地 00010100 "L" ■ 多バイト長データのアクセス アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク セスする命令では , FFFFH 番地の次のアドレスは同じバンクの 0000H 番地になります。 図 2.6-2 に , 多バイト長データのアクセス命令の例を示します。 図 2.6-2 MOVWA, 080FFFFH の実行 "H" 80FFFF H 実行前の AL ?? ?? 実行後の AL 23 H 01H 01H · · · 23 H 800000 H "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 ビット 35 第 2 章 CPU ■ 汎用レジスタ 図 2.7-2 に示すように , F2MC-16LX の汎用レジスタは主記憶の 000180H ~ 00037FH ( 最 大の場合 ) に存在し , レジスタバンクポインタ (RP) によって先に述べたアドレスのど の部分が現在使用中のレジスタバンクであるかを指定します。各バンクには以下に示 す 3 種のレジスタが存在します。これらは独立ではなく , 以下に示すような関係があり ます。 • R0 ~ R7 :8 ビットの汎用レジスタ • RW0 ~ RW7 :16 ビットの汎用レジスタ • RL0 ~ RL3 :32 ビットの汎用レジスタ 図 2.7-2 汎用レジスタ MSBLSB 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 の上位・下位と RWi の関係は RL (i) = RW (i × 2+1) × 65536+RW (i × 2) [i=0 ~ 3] という式で表すことができます。 36 第 2 章 CPU 2.7.1 アキュムレータ (A) アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL で構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されま す。 ■ アキュムレータ (A) アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL で 構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されます。 アキュムレータ (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 ビットデータ転送例 MO VL A,@R W1+6 実行前の A XXXX H MSBLSB XXXX H A6 H DTB 実行後の A 8F74 H A61540 H 8F H 74 H A6153E H 2B H 52 H 15 H 38 H +6 2B52 H RW1 AHAL 図 2.7-4 AL-AH 転送例 MSB MO VW A,@R W1+6 実行前の A XXXX H 1234 H DTB 実行後の A 1234 H 1234 H A6 H LSB A61540 H 8F H 74 H A6153E H 2B H 52 H 15 H 38 H +6 RW1 37 第 2 章 CPU 2.7.2 ユーザスタックポインタ (USP) とシステムスタック ポインタ (SSP) ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は , 16 ビッ トのレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復帰のメモリアドレスを示します。 ■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は , 16 ビット のレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復 帰のメモリアドレスを示します。 図 2.7-5 に示すように , ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) は , スタック系の命令により使用されますが , プロセッサステータス中の S フラ グが "0" のときは , USP レジスタが有効になり , S フラグが "1" のときは SSP レジスタ が有効になります。また , 割込みが受け付けられると S フラグがセットされるため , 割 込み時のレジスタ退避は必ず SSP の示すメモリ中に行われます。割込みルーチンでの スタック処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いられます。 スタック空間を分ける必要のない場合は SSP だけをお使いください。 スタック時のアドレスの上位 8 ビットは , SSP → SSB, USP → USB により示されます。 また USP および SSP は , リセットでは初期化されず , 不定値になります。 38 第 2 章 CPU 図 2.7-5 スタック操作命令とスタックポインタ MSBLSB S フラグが "0" のときの PUSHW A の例 実行前 AL S フラグ AL 実行後 C6F326 H A624 H USB C6 H USP F328 H 0 SSB 56 H SSP 1234 H A624 H USB C6 H USP F326 H 0 SSB 56 H SSP 1234 H C6F326 H A6 H 24 H 561232 H XX XX 561232 H A6 H 24 H XX XX S フラグが "0" であるため ユーザスタックを使用 S フラグが "1" のときの PUSH A の例 AL AL A624 H USB C6 H USP F328 H 1 SSB 56 H SSP 1234 H A624 H USB C6 H USP F328 H 1 SSB 56 H SSP 1232 H S フラグが "1" であるため システムスタックを使用 <注意事項> スタックポインタに設定すべき値は , 原則として偶数アドレスを使用してください。 39 第 2 章 CPU 2.7.3 プロセッサステータス (PS) プロセッサステータス (PS) は , CPU の動作制御を行うビットと CPU の状態を示す ビットより構成されています。 ■ プロセッサステータス (PS) 図 2.7-6 に示すように , プロセッサステータス (PS) の上位バイトはレジスタバンクの先 頭アドレスを示すレジスタバンクポインタ (RP) およびインタラプトレベルマスクレジ スタ (ILM) より構成され , PS の下位バイトは命令実行結果および割込み発生などによ りセット / リセットされる各種フラグより構成されているコンディションコードレジ スタ (CCR) より構成されています。 図 2.7-6 プロセッサステータス (PS) の構造 bit15 bit13 bit12 PS ILM bit8 bit7 bit0 RP CCR ■ コンディションコードレジスタ (CCR) 図 2.7-7 に , コンディションコードレジスタ (CCR) の構成を示します。 図 2.7-7 コンディションコードレジスタ (CCR) の構成 初期値→ bit7 bit6 bit5 bit3 bit4 bit2 bit1 bit0 - - 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" ならセット , それ以外はクリアされます。 40 第 2 章 CPU ● オーバフローフラグ (V) 演算の実行により符号付き数値としてオーバフローが生じるとセット , 生じないとク リアされます。 ● キャリフラグ (C) 演算の実行により MSB より桁上り / 桁下りが生じるとセット , 生じないとクリアされ ます。 ■ レジスタバンクポインタ (RP) 図 2.7-8 に示すように , レジスタバンクポインタ (RP) は , F2MC-16LX の持つ汎用レジ スタとそれが存在する内部 RAM のアドレスとの関係を示すレジスタで , 現在使用中の レジスタバンクの先頭のメモリアドレスを [00180H+(RP) × 10H] という変換式で示し ます。RP は 5 ビットにより構成されており 00H ~ 1FH までの値をとることができ , 000180H ~ 00037FH のメモリ中にレジスタバンクを配置できます。 ただし , この範囲内であっても内部 RAM でなければ汎用レジスタとして使用すること はできません。RP はリセットによりすべて "0" に初期化されます。命令上では RP に 8 ビットの即値が転送できますが , 実際に使用されるのはそのデータの下位 5 ビットの みです。 図 2.7-8 レジスタバンクポインタ (RP) RP B4 B3 B2 B1 B0 初期値 00000 ■ インタラプトレベルマスクレジスタ (ILM) 図 2.7-9 に示すように , インタラプトレベルマスクレジスタ (ILM) は 3 ビットから構成 されており , CPU の割込みマスクのレベルを示します。この 3 ビットにより示される レベルより強いレベルの割込み要求のみが受け付けられます。表 2.7-1 に示すように , レベルの強弱は "0" が最強で , "7" が最弱と定義されています。したがって , 割込みが 受け付けられるには , 現状の ILM の保持値より小さい値の要求でなければなりません。 割込みが受け付けられるとその割込みのレベル値が ILM にセットされ , これ以降の同 じかそれより低い優先順位の割込みは受け付けられなくなります。ILM はリセットに よりすべて "0" に初期化されます。命令上では ILM に 8 ビットの即値が転送できます が , 実際に使用されるのはそのデータの下位 3 ビットのみです。 図 2.7-9 インタラプトレベルマスクレジスタ (ILM) ILM ILM2 ILM1 ILM0 初期値 000 41 第 2 章 CPU 表 2.7-1 インタラプトレベルマスクレジスタ (ILM) で示されるレベルの強弱 42 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 FE H PC ABCD H 次に実行する命令 FEABCD H 43 第 2 章 CPU 2.8 レジスタバンク レジスタバンクは 8word で構成され , バイトレジスタ 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 RW1 RL0 RW2 RW3 R0 R1 R2 R3 R4 R5 R6 R7 44 RL1 RW4 RL2 RW5 RW6 RL3 RW7 第 2 章 CPU ● ダイレクトページレジスタ (DPR) <初期値 :01H > ダイレクトページレジスタ (DPR) は , ダイレクトアドレッシングの命令時のオペラン ドの addr8 ~ addr15 を指定します。図 2.8-1 に示すように , DPR は 8 ビット長であり , リセットにより 01H に初期化されます。DPR は命令により読出し / 書込みができます。 図 2.8-1 ダイレクトアドレッシングによる物理アドレスの生成 DTB レジスタ DPR レジスタ αααααααα ββββββββ γγγγγγγγ LSB MSB 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 メモリ空間」を参照し てください。 45 第 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 アクセス命令 MOVA, io/MOV io, A/MOVX A, io/MOVW A, io/MOVW io, A/MOV io,#imm8 MOV 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 が使用されます。 プリフィックスの効果が次の命令まで及びます。 46 第 2 章 CPU ● MOV ILM,#imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● RETI プリフィックス有無にかかわらず , SSB が使用されます。 ■ コモンレジスタバンクプリフィックス (CMR) 複数のタスク間でのデータ交換を容易にするためには , そのときの RP がどのような値 でも比較的簡単に定められた同一のレジスタバンクをアクセスする手段が必要です。 コモンレジスタバンクプリフィックス (CMR) をレジスタバンクをアクセスする命令の 前に置くことで , 現在の RP の値に関係なくその命令のレジスタアクセスをすべて 000180H ~ 00018FH にあるコモンバンク (RP=0 のときに選択されるレジスタバンク ) に変更できます。ただし , 以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕 プリフィックスコードを付加したストリング命令実行中に割込み要求が発生すると , 割込み復帰後のストリング命令に対しては , プリフィックスが無効であるため誤動作 となります。上記のストリング命令に対しては CMR プリフィックスを付加しないでく ださい。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● MOV ILM,#imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ■ フラグ変化抑止プリフィックス (NCC) フラグ変化を抑止するためには , フラグ変化抑止プリフィックスコード (NCC) を用い ます。不要フラグ変化を抑止する命令の前に置くことで , 命令実行に伴うフラグ変化を 抑止可能です。ただし , 以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕 プリフィックスコードを付加したストリング命令の実行中に割込み要求が発生すると 割込み復帰後のストリング命令に対してはプリフィックスが無効であるために誤動作 となります。 上記のストリング命令には NCC プリフィックスを付加しないでください。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● 割込み命令〔INT#vct8, INT9, INT addr16, INTP addr24, RETI〕 プリフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。 ● JCTX@A プリフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。 ● MOV ILM, #imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 47 第 2 章 CPU 2.10 割込み抑止命令 以下に示す 10 種類の命令については , 割込み要求はサンプリングされません。 - MOV ILM,#imm8 - PCB - SPB - OR CCR,#imm8 - NCC - AND CCR,#imm8 - ADB - CMR - POPW PS - DTB ■ 割込み抑止命令 図 2.10-1 に示すように , この命令実行中に有効な割込み要求が発生しても , 割込み処理 が行われるのは , この命令以降にこの種類以外の命令が実行された後になります。 図 2.10-1 割込み抑止命令 割込み抑止命令 • • • • • • • •• • • (a) (a) 普通の命令 割込み要求発生 割込み受付け ■ 割込み抑止命令とプリフィックス命令に関する制約 図 2.10-2 に示すように , 割込み抑止命令の前にプリフィックスコードを置くと , プリ フィックスコードの効果は, プリフィックスコード後の最初の (割込み抑止命令以外の 命令 ) まで及びます。 図 2.10-2 割込み抑止命令とプリフィックスコード 割込み抑止命令 MOV A, FF H NCC MOV ILM,#imm8 CCR:XXX10XX •••• ADD A,01H CCR:XXX10XX NCC により CCR は変化しません。 ■ プリフィックスコードが連続している場合 図 2.10-3 に示すように , 競合するプリフィックスコードが連続していた場合 , 後方のも のが有効になります。なお , 競合するプリフィックスコードとはここでいう PCB, ADB, DTB, SPB のことを意味します。 48 第 2 章 CPU 図 2.10-3 プリフィックスコードの連続 プリフィックスコード ••••• ADB DTB PCB ADD A,01H •••• プリフィックスコードは PCB が有効になります。 49 第 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 ビット ) DIV A, R5 DIVW A, RW0 DTB (DTB: 上位 8 ビット ) + (0180H + RP × 10H + DH : 下位 16 ビット ) (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 ビット ) DIV A, R6 DIVW A, RW2 ADB (ADB: 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット ) (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ビットで指定されたバンクのレジ スタに余りが格納されます。 50 第 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 の命令を同等の命令列に置き換える機能が用意されています。 MB90945 シリーズでは , コンパイラおよびアセンブラは , 以下のものを使用してくだ さい。 ● コンパイラ cc907 の V02L06 以降のバージョンまたは fcc907s の V30L02 以降のバージョン ● アセンブラ asm907a の V03L04 以降のバージョンまたは fasm907s の V30L04 (Rev. 300004) 以降の バージョン 51 第 2 章 CPU 52 第3章 割込み 割込みの機能と動作について説明します。 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 例外 53 第 3 章 割込み 3.1 割込みの概要 F2MC-16LX は , イベントなどの発生により現在実行中の処理を中断して , 別に定義 したプログラムへ制御を移す割込み機能があります。割込み機能は以下の 4 つに分 けることができます。 • ハードウェア割込み:内蔵リソースのイベント発生による割込み処理 • ソフトウェア割込み:ソフトウェアのイベント発生命令による割込み処理 • 拡張インテリジェント I/O サービス (EI2OS):内蔵リソースのイベント発生による 転送処理 • 例外:動作例外事項の発生による中断処理 ■ ハードウェア割込み ハードウェア割込みは , 内部リソースからの割込み要求によって起動します。ハード ウェア割込み要求は , 内部リソース内の割込み要求フラグと割込み許可フラグがセッ トされた場合に発生します。したがって , ハードウェア割込み要求を発生させるために は , 内部リソース内に , 割込み要求フラグと割込み許可フラグを持っていなければなり ません。 ● 割込みレベルの指定 ハードウェア割込みは , 割込みレベルを指定できます。割込みレベルを指定するには , 割込みコントローラのレベル設定ビット (IL0, IL1, IL2) を使用します。 ● ハードウェア割込み要求マスク ハードウェア割込み要求は , CPU 内のプロセッサステータスレジスタ (PS) 中の I フラ グおよび ILM ビットを使用してマスクできます。マスクのかかっていない割込み要求 が発生すると , CPU は , PS, PC, PCB, DTB, ADB, DPR, A の各レジスタからなる 12 バイ トのデータを SSB と SSP レジスタが示すメモリ領域に退避します。 ■ ソフトウェア割込み ソフトウェア割込みは , INT 命令実行により要求されます。INT 命令により要求される 割込みには , 割込み要求フラグと割込み許可フラグはありません。INT 命令の実行によ り常に割込み要求が発生します。 ■ INT 命令には , 割込みレベルの割当てもありません。このため , INT 命令使用時には ILM の更新は行われません。代わりに , I フラグをクリアして , 継続する割込み要求を 保留状態にします。 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービスは , 内蔵リソースとメモリの間でデータを自動的に 転送します。 この種の処理には , 従来 , 割込み処理プログラムが使用されていましたが , EI2OS はデータ転送を DMA ( ダイレクトメモリアクセス ) のように実行できます。 拡張インテリジェント I/O サービス機能を内部リソースより発生させるためには , 割込 みコントローラの割込み制御レジスタ (ICR) 中に拡張インテリジェント I/O サービス許 可フラグ (ISE) を持っていなければなりません。 拡張インテリジェント I/O サービスは ISE フラグが "1" で割込み要求が発生した場合に 起動されます。なお, ハードウェア割込み要求によって通常の割込みを発生させるには, ISE フラグを "0" にセットします。 54 第 3 章 割込み ■ 例外 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は 予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時 の復旧ソフトウェアの起動などに使用することを推奨します。 55 第 3 章 割込み 3.2 割込みベクタ 割込みベクタは , ハードウェア割込みとソフトウェア割込みについて同じ領域を使 用します。例えば , 割込み要求番号 INT42 が , 遅延ハードウェア割込みとソフト ウェア割込み INT#42 に使用されます。したがって , 遅延割込みと INT#42 が同じ割 込み処理ルーチンを呼び出します。割込みベクタは , 表 3.2-1 に示すようにアドレス FFFC00H と FFFFFFH の間に配置されます。 ■ 割込みベクタ 表 3.2-1 割込みベクタ ( 1 / 2 ) 割込み 要求 割込み要因 割込み制御 レジスタ 番号 ベクタ ベクタ ベクタ モード アドレスバ アドレス L アドレス H レジスタ ンク アドレス INT 0 * -- -- -- FFFFFCH FFFFFDH FFFFFEH 未使用 INT 1 * -- -- -- FFFFF8H FFFFF9H FFFFFAH 未使用 . . . -- -- -- . . . . . . . . . . . . INT 7 * -- -- -- FFFFE0H FFFFE1H FFFFE2H 未使用 INT 8 リセット -- -- FFFFDCH FFFFDDH FFFFDEH FFFFDFH INT 9 INT9 命令 -- -- FFFFD8H FFFFD9H FFFFDAH 未使用 INT 10 例外 -- -- FFFFD4H FFFFD5H FFFFD6H 未使用 INT 11 タイムベースタイマ FFFFD0H FFFFD1H FFFFD2H 未使用 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 未使用 INT 12 外部割込み INT0 ~ INT7 INT 13 -- INT 14 INT 15 -- CAN 1 TX/NS INT 17 PPG 0/1 INT 18 PPG 2/3 INT 19 PPG 4/5 INT 20 PPG 6/7 INT 21 PPG 8/9 56 ICR01 CAN 1 RX INT 16 INT 22 ICR00 PPG A/B ICR02 ICR03 ICR04 ICR05 0000B0H 0000B1H 0000B2H 0000B3H 0000B4H 0000B5H 第 3 章 割込み 表 3.2-1 割込みベクタ ( 2 / 2 ) 割込み 要求 割込み要因 割込み制御 レジスタ 番号 INT 23 16 ビット リロードタイマ 0 INT 24 INT 25 ICR06 ベクタ ベクタ ベクタ モード アドレスバ アドレス L アドレス H レジスタ ンク アドレス 0000B6H -インプット キャプチャ 0/1 INT 26 アウトプット コンペア 0/1 INT 27 インプット キャプチャ 2/3 INT 28 アウトプット コンペア 2/3 INT 29 インプット キャプチャ 4/5 INT 30 I2C INT 31 A/D コンバータ INT 32 I/O タイマ 0/1 INT 33 シリアル I/O INT 34 -- INT 35 UART 0 RX INT 36 UART 0 TX INT 37 -- INT 38 -- INT 39 UART 3 RX INT 40 UART 3 TX INT 41 フラッシュメモリ ICR07 ICR08 ICR09 ICR10 ICR11 ICR12 ICR13 ICR14 ICR15 FFFFA0H FFFFA1H FFFFA2H 未使用 FFFF9CH FFFF9DH FFFF9EH 未使用 FFFF98H FFFF99H FFFF9AH 未使用 FFFF94H FFFF95H FFFF96H 未使用 FFFF90H FFFF91H FFFF92H 未使用 FFFF8CH FFFF8DH FFFF8EH 未使用 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 未使用 0000B7H 0000B8H 0000B9H 0000BAH 0000BBH 0000BCH 0000BDH 0000BEH 0000BFH INT 42 遅延割込み INT 43 -- -- -- FFFF50H FFFF51H FFFF52H 未使用 . . . -- -- -- . . . . . . . . . . . . INT 254 -- -- -- FFFC04H FFFC05H FFFC06H 未使用 INT 255 -- -- -- FFFC00H FFFC01H FFFC02H 未使用 *: PCB が FFH のとき , CALLV 命令のベクタ領域は INT #vct8 (#0 ~ #7) のベクタ領域と同様になります。 CALLV 命令のベクタ使用時は注意が必要です。 57 第 3 章 割込み 3.3 割込み制御レジスタ (ICR) 割込み制御レジスタは割込みコントローラ内にあり , 割込み機能を持つすべての I/O に対応して存在します。このレジスタには以下に示す 3 つの機能があります。 • 対応する周辺機器の割込みレベルの設定 • 対応する周辺機器の割込みを通常割込みにするか , 拡張インテリジェント I/O サー ビスにするかの選択 • 拡張インテリジェント I/O サービスのチャネルの選択 このレジスタに対するリードモディファイライト系の命令でのアクセスは誤動作を 引き起こしますので行わないでください。 ■ 割込み制御レジスタ (ICR) 図 3.3-1 に , 割込み制御レジスタのビット構成の図を示します。 図 3.3-1 割込み制御レジスタ (ICR) 割込み制御レジスタ bit15/7 bit14/6 ICS3 ICS2 W W R/W :リード / ライト可能 W :ライトオンリ bit13/5 bit12/4 ICS1 or S1 * ICS0 or S0 * bit11/3 bit10/2 bit9/1 bit8/0 ISE IL2 IL1 IL0 初期値 R/W R/W R/W R/W 00000111B *:ICS1 と ICS0 は書込みのみ , S1 と S0 は読出しのみ , それぞれ有効です。 <注意事項> ICS3 ~ ICS0 は EI2OS を起動する場合のみ有効となります。EI2OS を起動する場合は ISE を "1" に設定し , 起動しない場合は "0" に設定してください。EI2OS を起動しない場合 , ICS3 ~ ICS0 は何を設定してもかまいません。 拡張インテリジェント 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 に , 割込みレベル設定ビットと割込みレベルとの関係を示します。 58 第 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" に初期化されます。 【bit15 ~ bit12,bit 7 ~ bit4】ICS3 ~ ICS0 ( 拡張インテリジェント I/O サービスチャネル セレクトビット ) EI2OS チャネル選択ビットです。書込み専用のビットで , このビットにより EI2OS の チャネルを指定します。ここで設定された値によりメモリ上の拡張インテリジェント I/O サービスディスクリプタのアドレスが決定します。ICS はリセットにより初期化さ れます。 表 3.3-2に, ICSビット, チャネル番号, ディスクリプタアドレスの対応関係を示します。 59 第 3 章 割込み 表 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 ビットと終了条件 60 S1 S0 0 0 EI2OS 動作中または非起動時 0 1 カウント終了による停止状態 1 0 リザーブ 1 1 内蔵リソースからの要求による停止状態 終了条件 第 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 次の命令の取込み デコード INT 命令 PS, PC, PCB, DTB, ADB, DPR, A を SSP のスタックへ退避 そののち , ILM = IL 拡張インテリジェント I/O サービス YES NO 通常命令実行 NO ストリング系 命令の繰返し 完了 YES PS, PC, PCB, DTB, ADB, DPR, A を SSP のスタックへ退避 そののち , I = 0, ILM = IL S←1 割込みベクタ取込み PC の更新 61 第 3 章 割込み 図 3.4-2 割込み処理中のレジスタ退避 ワード (16 ビット ) MSB LSB "H" SSP( 割込み発生前の SSP の値 ) AH AL DPR ADB DTB PCB PC PS "L" 62 SSP( 割込み発生後の SSP の値 ) 第 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 に割り当ててあり , ソフトウェア割込みと共通で使用しています。 63 第 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 フラグを設定して分岐処理を 行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プログラムにな ります。 64 第 3 章 割込み 3.5.2 ハードウェア割込みの発生と解除 図 3.5-1 に , ハードウェア割込みの発生から割込み処理プログラムに割込み要求がな くなるまでのフローを示します。 ■ ハードウェア割込みの発生と解除 図 3.5-1 ハードウェア割込みの発生と解除まで F2MC-16LX バス レジスタファイル マイクロコード PS IR I チェック ILM 比較器 PS I ILM IR : プロセッサステータス : 割込み許可フラグ : 割込みレベルマスクレジスタ : インストラクションレジスタ F2M C - 1 6 LX . C P U 周辺 許可 FF 要因 FF AND レ ベ ル 比 較 器 割 込 み レ ベ 割込み ル IL コントローラ ①周辺機器の内部で割込み要因が発生します。 ②周辺機器内の割込み許可ビットを参照し割込み許可になっていれば , 周辺機器から 割込みコントローラへ割込み要求を発生します。 ③割込み要求を受け取った割込みコントローラは , 同時に要求のあった割込みの優先 順位を判定した上で該当する割込みに対応する割込みレベルを CPU へ転送します。 ④ CPU は割込みコントローラから要求のあった割込みレベルをプロセッサステータス レジスタ内の ILM ビットと比較します。 ⑤比較の結果が現在の割込み処理レベルより優先順位が高い場合のみ , 同じプロセッ サステータスレジスタ内の I フラグの内容をチェックします。 ⑥⑤のチェックの結果 I フラグが割込み許可状態である場合のみ , ILM ビットの内容を 要求されたレベルに設定し , 現在実行中の命令の実行が終了次第割込み処理を行い , 制御を割込み処理ルーチンへ移します。 ⑦ユーザの割込み処理ルーチン内のソフトウェアで①で発生した割込み要因をクリア することで割込み要求が終了します。 ⑥および⑦で , CPU が行う割込み処理の実行時間の計算式を以下に示します。 割込み起動 : 24 + 6 × ( 表 3.3-2 のマシンサイクル ) 割込み復帰 : 15 + 6 × ( 表 3.3-3 のマシンサイクル ) RETI 命令 表 3.5-1 割込み処理時のサイクル数の補正値 スタックポインタが示しているアドレス サイクル数の補正値 内部領域偶数アドレスの場合 0 内部領域奇数アドレスの場合 +2 65 第 3 章 割込み 3.5.3 多重割込み 特殊な場合として , データの入出力領域への書込み中はハードウェア割込み要求を 受け付けません。MB90945 シリーズでは , アドレス 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" 66 SSP( 割込み発生後の SSP の値 ) 第 3 章 割込み 3.6 ソフトウェア割込み ソフトウェア割込みは , 専用の命令の実行に対応して , CPU がそれまで実行してい たプログラムの実行から , ユーザの定義した割込み処理用プログラムへ制御を移行 する機能です。ソフトウェア割込みの起動は , ソフトウェア割込み命令の実行で常 に発生します。 ■ ソフトウェア割込み ソフトウェア割込みが発生するときに CPU が行う処理は以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの 退避 • PS レジスタに "I" を設定。自動的に割込み禁止になる • 対応する割込みベクタの内容の取込みとその内容の処理への分岐 ソフトウェア割込みである INT 命令の実行による割込み要求には割込み要求フラグお よび許可フラグはなく , INT 命令の実行により常に割込み要求が発生します。 INT 命令には割込みレベルはありません。したがって , INT 命令では ILM の更新は行 われず , I フラグに "0" を設定して継続する割込み要求を保留状態にします。 ■ ソフトウェア割込みの構造 ソフトウェア割込みに関連する機構は , すべて CPU の内部に存在します。 CPU:マイクロコード : 割込み処理用ステップ ■ MB90945 割込みベクタ一覧表 付表 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 に , ソフトウェア割込みの発生から割込み処理プログラムに割込み要求がなく なるまでのフローを示します。 67 第 3 章 割込み 図 3.6-1 ソフトウェア割込みの発生と解除まで ➀ F2MC-16LX バス レジスタ ファイル ➁ マイクロ コード 2 M C - 1 6 LX . C P U F PS I S B ユニット IR キュー フェッチ PS : プロセッサステータス I : 割込み許可フラグ ILM : 割込みレベルマスクレジスタ IR : インストラクションレジスタ B ユニット : バスインタフェースユニット 退避 命令形バス RAM ①ソフトウェア割込み命令を実行します。 ②ソフトウェア割込み命令に対応したマイクロコードに従ってレジスタファイル中の CPU 内専用レジスタの退避を行います。 ③ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。 ■ その他 プログラムバンクレジスタ (PCB) が FFH であるとき , CALLV 命令のベクタ領域は INT#vct8 命令のテーブルと重なります。ソフトウェアを作成する際に同一アドレスを 使用するような CALLV 命令と INT#vct8 命令を使用しないように注意してください。 付表 D-2 に , MB90945 シリーズの割込み要因 , 割込みベクタ , 割込み制御レジスタの関 係を示します。 68 第 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 サービスディスクリプタ (ISD) RAM 上にあり , 転送モード , I/O のアドレスや転送数 , バッファアドレスを保持します。 図 3.7-1 に , EI2OS の概要を示します。 69 第 3 章 割込み 図 3.7-1 拡張インテリジェント I/O サービスの概要 メモリ空間 IOA I/O レジスタ 周辺 I/O レジスタ ••••••••••••••• CPU 割込み要求 ➂ ISD ➂ ICS ➁ ➀ 割込み制御レジスタ 割込みコントローラ BAP ➃ バッファ DCT ① I/O が転送を要求します。 ② 割込みコントローラが ディスクリプタを選択します。 ③ 転送元 / 転送先をディスクリプタから 読み出します。 ④ I/O とメモリ間で転送が行われます。 <注意事項> • IOA で指定できる領域は , 000000H ~ 00FFFFH です。 • BAP で指定できる領域は , 000000H ~ FFFFFFH です。 • DCT で指定できる最大転送数は , 65536 個です。 ■ 拡張インテリジェント I/O サービス (EI2OS) の構造 EI2OS に関連する機構は , 以下の 4 つの部分に分かれて存在します。 • 内蔵リソース ...... 割込み許可ビット , 割込み要求ビット : リソースからの割込み要 求の制御 • 割込みコントローラ ......ICR: 割込みのレベル付け , 同時要求割込みの優先度判定 , EI2OS 動作の選択 • CPU......I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別 マイクロコード :EI2OS 処理用ステップ • RAM...... ディスクリプタ :EI2OS の転送情報を記述する 70 第 3 章 割込み 3.7.1 拡張インテリジェント I/O サービスディスクリプタ (ISD) 拡張インテリジェント 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) 000100 H + 8 × ICS バッファアドレスポインタ中位 8 ビット (BAPM) ISD 先頭アドレス バッファアドレスポインタ下位 8 ビット (BAPL) "L" ■ データカウンタ (DCT) データカウンタ (DCT) は , 16 ビット長のレジスタで , 転送データ数に対応したカウン タとなります。データ転送前 , カウンタは 1 個デクリメントされます。このカウンタが ゼロになると EI2OS は終了します。 図 3.7-3 に , データカウンタの構成を示します。 図 3.7-3 データカウンタの構成 DCTH bit 15 14 13 12 11 DCTL 10 9 8 7 6 5 4 3 2 1 0 初期値 DCT B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 XXXXXXX XXXXXXXXB 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 R/W : リード / ライト可能 X : 不定 71 第 3 章 割込み ■ I/O レジスタアドレスポインタ (IOA) I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで , I/O レジスタアド レスポインタの 16 ビットによりバッファとデータ転送する I/O レジスタの下位アドレ ス (A15 ~ A0) を示します。上位アドレス (A23 ~ A16) はすべて "0" であり , 000000H から00FFFFH 番地までの任意のI/Oを指定できます。図 3.7-4に, IOAの構成を示します。 図 3.7-4 I/O レジスタアドレスポインタの構成 IOAH bit 15 14 13 12 11 IOAL 10 9 8 7 6 5 4 3 2 1 0 初期値 XXXXXXX XXXXXXXXB IOA A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 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 R/W : リード / ライト可能 X : 不定 ■ バッファアドレスポインタ (BAP) バッファアドレスポインタ (BAP) は 24 ビットのレジスタで , I/O 領域とデータ転送を 行う 16M バイトのアドレスを設定します。BAP 更新 / 固定選択ビット (ISCS:BF) を " 更新あり "(ISCS:BF=0) に設定した場合は , バッファアドレスポインタ (BAP) は下位 16 ビット (BAPM,BAPL) だけ変化し , 上位 8 ビット (BAPH) は変化しません。 バッファアドレスポインタ (BAP) のビット構成を図 3.7-5 に示します。 図 3.7-5 バッファアドレスポインタ (BAP) の構成 bit 23 bit16 bit15 BAP BAPH R/W R/W : リード / ライト可能 X : 不定 bit8 bit7 bit0 BAPM BAPL R/W R/W 初期値 XXXXXXXXB <参考> 72 • I/O アドレスポインタ (IOA) で設定できる領域は , "000000H" ~ "00FFFFH" です。 • バッファアドレスポインタ (BAP) で設定できる領域は , "000000H" ~ "FFFFFFH" です。 • データカウンタ (DCT) で設定できる最大転送回数は , 65536 回です。 第 3 章 割込み EI2OS ステータスレジスタ (ISCS) 3.7.2 EI2OS ステータスレジスタ (ISCS) は , 8 ビット長のレジスタで , バッファアドレス ポインタ , I/O レジスタアドレスポインタの更新 / 固定 , 転送データ長 ( バイト / ワー ド ), 転送方向を示します。 ■ EI2OS ステータスレジスタ (ISCS) 図 3.7-6 に , ISCS の構成を示します。 図 3.7-6 ISCS の構成 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 予約 予約 IF BW BF DIR SE ISCS ( リセット時不定 ) ISCS の bit7 ~ bit5 には必ず "0" を書き込んでください。 以下に各ビットの説明を示します。 【bit4】IF I/O レジスタアドレスポインタの更新 / 固定を指定します。 0:データ転送後 I/O レジスタアドレスポインタは更新 ( インクリメント ) される。 1:データ転送後 I/O レジスタアドレスポインタは固定される。 <注意事項> 更新する場合 , I/O レジスタアドレスポインタは , インクリメントのみ許可されます。 【bit3】BW 転送データ長を指定します。 0:バイト 1:ワード 【bit2】BF バッファアドレスポインタの更新 / 固定を指定します。 0:データ転送後バッファアドレスポインタは更新 ( インクリメント ) される。 1:データ転送後バッファアドレスポインタは固定される。 <注意事項> 更新する場合 , バッファアドレスポインタは下位 16 ビットのみ変化します。インクリメ ントのみ許可されます。 73 第 3 章 割込み 【bit1】DIR データの転送方向を指定します。 0:I/O レジスタアドレスポインタ→バッファアドレスポインタ 1:バッファアドレスポインタ→ I/O レジスタアドレスポインタ 【bit0】SE 内蔵リソースからの要求での拡張インテリジェント I/O サービスの終了を制御します。 0:内蔵リソースからの要求により終了しない。 1:内蔵リソースからの要求により終了する。 74 第 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 I/OA : バッファアドレスポインタ : I/O アドレスポインタ ISD : EI2OS ディスクリプタ ISCS DCT : EI2OS ステータス : データカウンタ ISE : EI2OS イネーブルビット S1, S0 : EI2OS 終了ステータス NO ISE = 1 割込みシーケンス YES ISD/ISCS リード YES リソースからの終了要求 SE = 1 NO YES DIR = 1 NO IOA で示されるデータ ⇓ ( データ転送 ) BAP で示されるメモリ BAP で示されるデータ ⇓ ( データ転送 ) IOA で示されるメモリ YES IF = 0 NO 更新値は , BW による IOA 更新 更新値は , BW による BAP 更新 YES BF = 0 NO DCT デクリメント DCT = 00 YES NO S1, S0 に "00" を セット S1, S0 に "01" を セット S1, S0 に "11" を セット リソース割込み要求 のクリア ISE を "0" にクリア CPU 動作復帰 割込みシーケンス 75 第 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 ビット 76 "1" に設定 固定 更新 固定 更新 固定 32 34 33 35 更新 34 36 35 37 I/O アドレスポインタ バッファアドレス ポインタ "0" に設定 第 3 章 割込み 表 3.8-2 拡張 EI2OS の実行時間のデータ転送の補正値 内部アクセス I/O アドレスポインタ バッファアドレス ポインタ 内部 アクセス B/ 偶 奇 B/ 偶 0 +2 O +2 +4 B: バイトデータ転送 偶 : 偶数アドレス・ワード転送 奇 : 奇数アドレス・ワード転送 表 3.8-3 割込みハンドリング時間の補正値 スタックポインタが指しているアドレス 補正値 (cycle) 外部 8 ビットの場合 +4 外部 偶数アドレスの場合 +1 外部 奇数アドレスの場合 +4 内部 偶数アドレスの場合 0 内部 奇数アドレスの場合 +2 77 第 3 章 割込み 3.9 例外 F2MC-16LX では , 以下の要因により例外が発生し , 例外処理が行われます。 ■ 未定義命令の実行 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は 予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時 の復旧ソフトウェアの起動などに使用することを推奨します。 ■ 未定義命令の実行による例外発生 F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い ます。未定義命令を実行すると , ソフトウェア割込み命令の「INT10」と等価な処理を 行います。すなわち , AL, AH, DPR, DTB, ADB, PCB, PC, PS の内容をシステムスタック に退避した後に , I フラグを "0" に設定し , S フラグを "1" に設定し , 割込み番号 10 の ベクタで示されるルーチンへ分岐します。スタックへ退避した PC の値は未定義命令を 格納しているアドレスそのものです。このため , RETI 命令で復帰させることは可能で すが , 再び例外を発生するため , 意味がありません。 78 第4章 遅延割込み 遅延割込みの機能と動作について説明しています。 4.1 遅延割込みモジュールの概要 4.2 遅延割込みのレジスタ 4.3 遅延割込みの動作 79 第 4 章 遅延割込み 4.1 遅延割込みモジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー ルです。本モジュールを使用することで , ソフトウェアでの F2MC-16LX CPU に対 する割込み要求を発生 / 取消しができます。 ■ 遅延割込みのブロックダイヤグラム 図 4.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。 図 4.1-1 遅延割込みのブロックダイヤグラム F2MC-16 バス 遅延割込み要因発生 / 解除デコーダ 要因ラッチ ■ 遅延割込み要求ロックの使用上の注意 このロックは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット に "0" を書き込むことでクリアされます。したがって , 割込み処理ルーチン内で要因を クリアするようにソフトウェアを作成しておかないと割込み処理から復帰した途端に 再割込み処理を起動することになりますので注意してください。 80 第 4 章 遅延割込み 4.2 遅延割込みのレジスタ DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して "1" を書込み時には遅延割込みの要求を発生させ , "0" を書込み時には遅延割込みの 要求を解除します。リセット時には要求解除状態になります。 ■ 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) 図 4.2-1 遅延割込み要因発生 / 解除レジスタ (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: 遅延割込み 要求発生 ビット • • • • 遅延割込み要求を発生または解除します。 このビットに "1" を設定した場合:遅延割込み要求を発生します。 このビットに "0" を設定した場合:遅延割込み要求を解除します。 リセットが指定されると , 割込み発生が解除され , "0" になりま す。 81 第 4 章 遅延割込み 4.3 遅延割込みの動作 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生 モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求 を発生します。 ■ 遅延割込み発生 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生モ ジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求を発 生します。ほかの割込み要求が本割込みより優先順位が低いまたはほかの割込み要求 がない場合に , 割込みコントローラは F2MC-16LX CPU に対して割込み要求を発生しま す。図 4.3-1 に示すように , F2MC-16LX CPU は自分の内部にある PS レジスタ中の ILM ビットと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行 中の命令が終了し次第 , ハードウェア割込み処理マイクロプログラムを起動します。こ の結果 , 本割込みに対する割込み処理ルーチンが実行されます。 図 4.3-1 遅延割込み発生 割込みコントローラ 遅延割込み発生モジュール F2MC-16LX CPU WRITE ほかの要求 ICR yy IL CMP CMP DIRR 82 ICR xx ILM 第5章 クロック クロックについて説明します。 5.1 クロックの概要 5.2 クロック発生部のブロックダイヤグラム 5.3 クロック選択レジスタ 5.4 クロックモード 5.5 発振安定待ち時間 5.6 振動子と外部クロックの接続 83 第 5 章 クロック 5.1 クロックの概要 クロック発生部は , CPU や周辺機能の動作クロックである内部クロックの動作を制 御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の PLL 発振によるクロックを PLL クロックといいます。 ■ クロックの概要 クロック発生部は発振クロックを生成する発振回路を内蔵しており , 外部に振動子を接 続することによって , 発振クロックを発生します。外部で生成したクロックを入力して , 発振クロックにすることもできます。また , PLL クロック逓倍回路を内蔵しており , 発 振クロックの逓倍クロックを 6 種類発生できます。クロック発生部では , 発振安定待ち 時間の制御 , PLL クロック逓倍制御およびクロックセレクタでのクロックの切換えによ る , 内部クロックの動作制御を行います。 ● 発振クロック (HCLK) 発振回路に振動子を接続して発生させるか , あるいは外部から入力したクロックのこ とです。 ● メインクロック (MCLK) 発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入 力クロックとなります。 ● PLL クロック (PCLK) 発振クロックを , 内蔵の PLL クロック逓倍回路により逓倍したクロックです (PLL 発振 回路 )。6 種類の PLL クロックを選択できるようになっています。 ● クロックモジュレータ (CLOMO) クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで, 周囲への電磁ノイズの影響 (EMI) を減らします。本モジュールには位相変調モードが あります。詳細は「第 6 章 クロックモジュレータ」を参照してください。 ● マシンクロック (φ) CPU と周辺機能の動作クロックです。このクロックの 1 周期を , マシンサイクル (1/φ) としています。メインクロック ( 発振クロックの 2 分周クロック ) と , 6 種類の逓倍ク ロックの中から 1 種類を選択できるようになっています。 <注意事項> 動作電圧が 5 V の場合 , 発振クロック周波数は 3 MHz ~ 8 MHz の範囲で使用できます。 CPU および周辺機能の最大動作周波数は 24 MHz です。最大動作周波数を超える逓倍率 やクロックモジュレータのピーク周波数を設定した場合 , デバイスは正常に動作しませ ん。 84 第 5 章 クロック ■ クロック供給マップ CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを 供給しています。このため , CPU と周辺機能の動作は , メインクロックと PLL クロッ クの切換え ( クロックモード ) や PLL クロック逓倍率切換えの影響を受けます。一部 の周辺機能へは , タイムベースタイマの分周出力が供給されており , 各周辺で , その動 作クロックを選択できるようになっています。図 5.1-1 に , クロック供給マップを示し ます。 図 5.1-1 クロック供給マップ 周辺機能 4 ウォッチドッグタイマ 8/16 ビット PPG PPG10 ~ PPG15 端子 RX/TX 端子 CAN1 TIN0/TIN1 端子 16 ビットリロード TOT0/TOT1 タイマ 端子 クロック発生ブロック MCS ビット PPG00 ~ PPG05 端子 8/16 ビット PPG タイムベースタイマ 1 2 3 4 6 8 PLL 逓倍回路 PCLK SIN0/SIN2/SIN3/SIN4 クロックセレクタ 端子 UART0/UART2/UART3 + シリアル I/O クロックモジュレータ X0 端子 X1 端子 ... SOT0/SOT2/SOT3/SOT4 端子 ... SCK0/SCK2/SCK3/SCK4 システム クロック 発生回路 HCLK 端子 クロックセレクタ 2 分周 MCLK 10 ビット A/D コンバータ (15 チャネル ) ... AN0 ~ AN14 端子 ... SDA 端子 I2C SCL 端子 16 ビットフリー ランタイマ 0/1 CPU 16 ビット入力キャプ チャ (6 チャネル ) HCLK :発振クロック MCLK :メインクロック PCLK :PLL クロック φ :マシンクロック φc :CAN1 クロック 出力コンペア (4 チャネル ) FRCK0/FRCK1 端子 IN0 ~ IN15 端子 ... OUT0 ~ OUT3 端子 ... 3 発振安定待機制御 85 第 5 章 クロック 5.2 クロック発生部のブロックダイヤグラム クロック発生部は , 次の 5 つのブロックで構成されています。 • システムクロック発生回路 • PLL 逓倍回路 • クロックセレクタ • クロック選択レジスタ (CKSCR) • 発振安定待ち時間セレクタ ■ クロック発生部のブロックダイヤグラム 図 5.2-1 に , クロック発生部のブロックダイヤグラムを示します。 図 5.2-1 クロック発生部のブロックダイヤグラム 低消費電力モード制御レジスタ (LPMCR) STP SLP SPL RST TMD CG1 CG0 RST - 端子 間欠サイク ルセレクタ CPU 間欠動作 セレクタ 端子ハイ インピーダンス 制御回路 端子ハイ インピーダ ンス制御 内部リセット 発生回路 内部 リセット CPU クロック 制御回路 CPU クロック ストップ・ スリープ信号 スタンバイ 制御回路 ストップ信号 割込み クリア 周辺クロック 制御回路 発振安定待ち時間クリア マシンクロック CS2 PLL および 特殊構成制御 レジスタ (PSCCR): bit8 X0 クロック セレクタ 発振安定 待ち時間 セレクタ 2 2 PLL 逓倍回路 端子 HCLK X1 周辺 クロック 2 分周 - MCM WS1 WS0 メイン クロック 1024 分周 - MCS CS1 CS0 クロック選択レジスタ (CKSCR) 2 分周 4 分周 4 分周 4 分周 2 分周 端子 システムクロック 発生回路 タイムベースタイマ ウォッチドッグタイマ (注意事項)このダイヤグラムには , クロックモジュレータが表示されていません。 詳細は「第 6 章 クロックモジュレータ」を参照してください。 86 第 5 章 クロック ● システムクロック発生回路 外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを 入力することもできます。 ● PLL 逓倍回路 PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。 ● クロックセレクタ メインクロックと 6 種類の PLL クロックから , CPU 系クロック制御回路および周辺系 クロック制御回路へ供給されるクロックを選択します。 ● クロック選択レジスタ (CKSCR) 発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック の逓倍率の選択などを行います。 ● 発振安定待ち時間セレクタ ストップモード解除時 , 発振クロックの発振安定待ち時間を選択します。4 種類のタイ ムベースタイマ出力を選択します。それ以外の場合は , 発振安定待ち時間は選択されま せん。 87 第 5 章 クロック 5.3 クロック選択レジスタ クロック選択レジスタの一覧と各レジスタの機能を概略します。 ■ クロック選択レジスタ 図 5.3-1にクロック選択レジスタ(CKSCR)とPLLおよび特殊構成制御レジスタ(PSCCR) を示します。 図 5.3-1 クロック選択レジスタ CKSCR アドレス 0000A1H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 予約 R/W MCM WS1 WS0 初期値 CS1 CS0 11111100B R/W 予約 R/W MCS R R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 予約 W CS2 XXXX0000B PSCCR アドレス 0035CFH X - R/W R W 88 予約 予約 予約 予約 - - - - : 不定 : 未定義 : リード / ライト可能 : リードオンリ : ライトオンリ 予約 W 予約 W W 第 5 章 クロック 5.3.1 クロック選択レジスタ (CKSCR) クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振 安定待ち時間の選択および PLL クロックの逓倍率の選択などを行うレジスタです。 ■ クロック選択レジスタ (CKSCR) の構成 図 5.3-2 に , クロック選択レジスタ (CKSCR) の構成を , 表 5.3-1 に , クロック選択レジ スタ (CKSCR) の各ビットの機能について説明します。 図 5.3-2 クロック選択レジスタ (CKSCR) の構成 アドレス bit15 0 0 0 0 A 1 H 予約 R/W bit14 bit13 bit12 bit11 MCM WS1 WS0 予約 R/W R/W R R/W bit10 bit9 bit8 MCS CS1 CS0 R/W R/W R/W bit0 (LPMCR) 初期値 11111100B CS2(PLLCレジスタ:bit8) CS2 CS1 CS0 逓倍率選択ビット ( ) 内は発振クロック 4MHz と 5MHz 時 0 0 0 1 x HCLK (4MHz / 5MHz)* 0 0 1 2 x HCLK (8MHz / 10MHz)* 0 1 0 3 x HCLK (12MHz / 15MHz)* 0 1 1 4 x HCLK (16MHz / 20MHz)* 1 0 0 2 x HCLK (8MHz / 10MHz) 1 0 1 4 x HCLK (16MHz / 20MHz) 1 1 0 6 x HCLK (24MHz / 設定禁止) 1 1 1 禁止 *: 20MHzを超える設定は禁止されています。 0 マシンクロック選択ビット PLL クロック選択 1 メインクロック選択 MCS WS1 WS0 0 0 210/HCLK ( 約 256/204.8 μs) 0 1 213/HCLK ( 約 2.05/1.64 ms) 1 0 215/HCLK ( 約 8.19/6.55 ms) 1 1 217/HCLK ( 約 32.77/26.22 ms) MCM R/W : リード / ライト可能 HCLK : 発振クロック R : リードオンリ : 初期値 発振安定待ち時間選択ビット ( ) 内は発振クロック 4MHz と 5MHz 時 マシンクロック表示ビット 0 PLL クロックで動作中 1 メインクロックで動作中 <注意事項> マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。 89 第 5 章 クロック 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 ( 1 / 2 ) ビット名 bit 15 ( 注意事項 ) 必ず "1" を書き込んでください。 MCM: マシンクロッ ク表示ビット • マシンクロックとして , メインクロックまたは PLL クロックのどちら が選択されているかを表示するビットです。 • このビットが "0" のとき PLL クロックが選択されていることを示し , "1" のときメインクロックが選択されていることを示します。 • MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待ち 時間中であることを示します。 • 書込みは , 動作に影響しません。 WS1, WS0: 発振安定待ち 時間選択 ビット • ストップモード解除時 , 発振クロックの発振安定待ち時間を選択する ビットです。 • すべてのリセット要因で "11B" に初期化されます。 ( 注意事項 ) 発振安定待ち時間は , 使用する振動子に合わせて適切な値を設定する 必要があります。「7.2 リセット要因と発振安定待ち時間」を参照し てください。"00B" と "01B" の設定は , メインクロックモード時のみ 設定してください。 PLL ストップから PLL クロックモードに復帰する場合の発振安定待 ち時間は , 214/HCLK 以上です。PLL クロックモードに切り換える場 合は "10B" または "11B" に設定してください。 bit 13 bit 12 90 能 予約 bit 14 bit 11 機 予約 WS1 WS0 0 0 0 1 1 0 1 1 4MHz 発振の待ち時間 5MHz 発振の待ち時間 約 256 μs ( 発振の 210 カウント ) 約 205 μs 約 2.05 ms 約 1.64 ms ( 発振の 213 カウント ) ( 発振の 213 カウント ) 約 8.19 ms 約 6.56 ms ( 発振の 215 カウント ) ( 発振の 215 カウント ) 約 33.77 ms 約 26.21 ms ( 発振の 217 カウント ) ( 発振の 217 カウント ) ( 注意事項 ) 必ず "1" を書き込んでください。 ( 発振の 210 カウント ) 第 5 章 クロック 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 ( 2 / 2 ) ビット名 機 能 MCS: マシン クロック 選択ビット • マシンクロックとして , メインクロック , または PLL クロックのどち らを選択するかを指定するビットです。 • このビットが "0" のとき PLL クロックを選択し , "1" のときメインク ロックを選択します。 • このビットが "1" のときに "0" を書き込むと , PLL クロックの発振安 定待ち時間が発生するために , 自動的にタイムベースタイマがクリア され , さらにタイムベースタイマ制御レジスタ (TBTC) の TBOF ビッ トもクリアされます。 • PLL クロックの発振安定待ち時間は , 214/HCLK ( 発振クロック周波数 4MHz で動作している場合 : 約 4.1 ms) 固定です。 • メインクロック選択時の動作クロックは , 発振クロックを 2 分周した クロックとなります ( 発振クロック周波数 4MHz 時 , 動作クロックは 2MHz になります ) 。 • すべてのリセット要因で "1" に初期化されます。 ( 注意事項 ) MCS ビットが "1" のときに "0" を書き込む場合には , タイムベースタ イマ制御レジスタ (TBTC) の TBIE ビットまたはインタラプトレベルレ ジスタ (ILM) により , タイムベースタイマ割込みがマスクされている 状態で行うようにしてください。 CS1, CS0: 逓倍率選択 ビット • このビットと PSCCR レジスタの CS2 ビットは PLL クロック逓倍率 を選択します。 • 6 種類の逓倍率から選択できます。 • すべてのリセット要因で "00B" に初期化されます。 bit 10 • CS2, CS1, CS0 ビットの推奨設定 bit 9 bit 8 CS2 0 0 0 0 1 1 1 1 CS1 0 0 1 1 0 0 1 1 CS0 0 1 0 1 0 1 0 1 PLL クロック逓倍率 × 1 ( 最大 20MHz までのマシンクロック )*1 × 2 ( 最大 20MHz までのマシンクロック )*1 × 3 ( 最大 20MHz までのマシンクロック )*1 × 4 ( 最大 20MHz までのマシンクロック )*1 × 5 (20MHz を超えるマシンクロック )*1 × 6 (20MHz を超えるマシンクロック )*1 × 7 (20MHz を超えるマシンクロック )*1 × 8 *2 (20MHz を超えるマシンクロック )*1 *1 : データシートの交流規格を参照してください。 *2: すべてのデバイスには設定されていません。データシートの交流規格 を参照してください。 ( 注意事項 ) MCS ビットまたは MCM ビットが "0" のときには , 書込みが抑止され ます。いったん , MCS ビットを "1" にした ( メインクロックモード ) 後に , CS2, CS1, CS0 ビットを書き換えてください。 HCLK: 発振クロック周波数 91 第 5 章 クロック 5.3.2 PLL および特殊構成制御レジスタ (PSCCR) PLL および特殊構成制御レジスタは PLL のクロック逓倍率の選択を追加します。 ■ PLL および特殊構成制御レジスタ (PSCCR) の構成 図 5.3-3 に , PLL および特殊構成制御レジスタ (PSCCR) の構成を示します。表 5.3-2 に , PLL および特殊構成制御レジスタ (PSCCR) の各ビットの機能について説明します。 図 5.3-3 PLL および特殊構成制御レジスタ (PSCCR) の構成 アドレス bit15 0035CFH 予約 bit14 予約 bit13 予約 bit12 予約 bit11 bit10 bit9 bit8 CS2 予約 予約 予約 W W W 初期値 PSCCR W CS2 付加逓倍率選択ビット 0 PLL クロックの逓倍率× 1, × 2, × 3, × 4 (CKSCR レジスタの CS1 と CS0 ビットの設定 によります ) 1 PLL クロックの逓倍率× 2, × 4, × 6, × 8 (CKSCR レジスタの CS1 と CS0 ビットの設定 によります ) 予約 0 予約 0 予約 0 W X - 92 : ライトオンリ : 不定 : 未定義 : 初期値 XXXX0000B 予約 XXXX 予約ビット このビットには常に "0" を書き込んでくださ い。読出し値は常に "X" です。 予約ビット このビットには常に "0" を書き込んでくださ い。読出し値は常に "X" です。 予約ビット このビットには常に "0" を書き込んでくださ い。読出し値は常に "X" です。 予約ビット これらのビットには常に "0" を書き込んでくだ さい。読出し値は常に "X" です。 第 5 章 クロック 表 5.3-2 PLL および特殊構成制御レジスタ (PSCCR) の各ビットの機能説明 ビット名 bit 15 ~ bit9 bit 8 機 能 予約 : 予約ビット • 予約ビットです。 • 常に "0" を書き込んでください。 • これらのビットは常に "X" を読み出します。 CS2: 逓倍率 選択ビット 2 • このビットとクロック選択レジスタ (CKSCR) の CS1 と SC0 ビット は PLL クロックの逓倍率を選択します。 • CS2, CS1, CS0 ビットの設定と PLL クロック逓倍率選択の関係につい ては , 表 5.3-1 を参照してください。 • このビットはすべてのリセット要因により "0" に初期化されます。 • このビットは常に "X" を読み出します。 ( 注意事項 ) MCS ビットまたは MCM ビットが "0" のとき , このビットの設定を 変更することは禁止されています。MCS ビットを "1" に設定し , MCM ビットが "1" に設定されるのを待ってからこのビットを変更し てください ( メインクロックモード )。 <注意事項> PSCCR レジスタは書込み専用レジスタです。読出し値は書込み値と異なります。した がって , リードモディファイライト (RMW) 動作を実行する命令は , INC/DEC 命令など , 使用できません。 93 第 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 クロックとメインクロックのエッジが一致するタイ ミング (1 ~ 8PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。 <注意事項> クロック選択レジスタ (CKSCR) の MCS ビットを書き換えても即座にマシンクロックの 切換えは行われません。マシンクロックに依存する周辺機能を操作する場合には , クロッ ク選択レジスタ (CKSCR) の MCM ビットを参照してマシンクロックの切換えが行われた ことを確認したのちに , 周辺機能の操作を行ってください。 クロックモードを切り換えた場合 , 切換えが完了するまでは他のクロックモードおよび低 消費電力モードへは切り換えないようにしてください。 切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え を行った場合 , 切り換わらない場合があります。 ■ PLL クロック逓倍率の選択 クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ~ "11B" と PLL および特殊 構成制御レジスタ (PSCCR) の CS2 ビットに "0" または "1" を書き込むことにより , 1 ~ 4, 6または8逓倍(表 5.3-1 bit8/bit9を参照)の4種類のPLLクロック逓倍率を選択できます。 94 第 5 章 クロック ■ マシンクロック PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロックが , マシンクロッ クとなります。このマシンクロックが CPU および周辺機能に供給されます。メインク ロック , PLL クロックは , クロック選択レジスタ (CKSCR) の MCS ビットへの書込みに より , いずれかを選択できます。 ■ クロックモジュレータ クロックモジュレータについては「第 6 章 クロックモジュレータ」を参照してくださ い。 図 5.4-1 に , マシンクロックの切換えによる状態遷移を示します。 図 5.4-1 マシンクロック選択の状態遷移図 Main MCS = 1 MCM = 1 CS1, CS0 = xx CS2 = x (1) (6) (8) (7) Main PLLx MCS = 0 MCM = 1 CS1, CS0 = xx CS2 = x (7) (7) CS2 = 0 (6) CS1, CS0 = 01 CS2 = 0 (6) CS1, CS0 = 10 CS2 = 0 (7) CS1, CS0 = 11 CS2 = 0 (6) CS1, CS0 = 00 CS2 = 1 CS1, CS0 = 01 CS2 = 1 PLL4A: Multiplied MCS = 0 MCM = 0 (6) PLL6 Main MCS = 1 MCM = 0 (7) CS1, CS0 = 10 CS2 = 1 (7) CS1, CS0 = 11 CS2 = 1 CS1, CS0 = 01 CS2 = 1 PLL6: Multiplied MCS = 0 MCM = 0 (6) PLL8 Main MCS = 1 MCM = 0 PLL4: Multiplied MCS = 0 MCM = 0 (6) PLL2A: Multiplied MCS = 0 MCM = 0 PLL4A Main MCS = 1 MCM = 0 PLL3: Multiplied MCS = 0 MCM = 0 PLL4 Main MCS = 1 MCM = 0 CS1, CS0 = 11 CS2 = 0 (7) CS1, CS0 = 00 CS2 = 1 PLL2: Multiplied MCS = 0 MCM = 0 PLL3 Main MCS = 1 MCM = 0 CS1, CS0 = 10 CS2 = 0 (7) (6) CS1, CS0 = 00 PLL2 Main MCS = 1 MCM = 0 CS1, CS0 = 01 CS2 = 0 PLL2A Main MCS = 1 MCM = 0 PLL1: Multiplied MCS = 0 MCM = 0 PLL1 Main MCS = 1 MCM = 0 CS1, CS0 = 00 CS2 = 0 (7) (9) (10) (11) (2) (3) (4) (5) CS1, CS0 = 10 CS2 = 1 PLL8: Multiplied MCS = 0 MCM = 0 (6) CS1, CS0 = 11 CS2 = 1 95 第 5 章 クロック (1) MCS ビットに "0" を書き込む (2) PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 00 (3) PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 01 (4) PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 10 (5) PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 11 (6) MCS ビットに "1" を書込む ( ウォッチドッグタイマリセットを含む ) (7) PLL クロックとメインクロックの同期タイミング (8) PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 00 (9) PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 01 (10) PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 10 (11) PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 11 MCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット MCM : クロック選択レジスタ (CKSCR) のマシンクロック表示ビット CS1, CS0 : クロック選択レジスタ (CKSCR) の逓倍率選択ビット CS2 : PLL および特殊構成制御レジスタ (PSCCR) の逓倍率選択ビット <注意事項> マシンクロックの初期値は , メインクロック (CKSCR:MCS = 1) です。 96 第 5 章 クロック 5.5 発振安定待ち時間 電源投入後 , ストップモード解除時には , 発振停止から動作が開始するため , 発振開 始後に発振安定待ち時間が必要です。また , メインクロックから PLL クロックへ切 り換える場合も , PLL クロックの発振開始後に発振安定待ち時間が必要です。 ■ 発振安定待ち時間 セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で 安定して発振するまでに , 一般的に数 ms の時間が必要です。このため , 発振開始直後 は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振が安定した時点で CPU にクロックを供給するようにします。振動子の種類 ( 水晶 , セラミックなど ) によって 発振が安定するまでの時間が異なるため , 使用する振動子に合わせて適切な発振安定 待ち時間を選択する必要があります。発振安定待ち時間は , クロック選択レジスタ (CKSCR) の設定で選択できます。 クロックモードをメインクロックから PLL クロックに切り換えた場合 , PLL 発振安定 待ち時間の間 , CPU はメインクロックで動作しています。発振安定待ち時間を経過す ると , PLL モードに切り換わります。 図 5.5-1 に , 発振開始直後の動作を示します。 図 5.5-1 発振開始直後の動作 振動子の発振時間 発振安定待ち時間 通常動作開始または PLL クロックへの切換え X1 発振開始 発振安定 97 第 5 章 クロック 5.6 振動子と外部クロックの接続 MB90945 シリーズは , システムクロック発生回路を内蔵しており , 外部に振動子を 接続してクロック発生させます。また , 外部で生成したクロックを入力することも できます。 ■ 振動子と外部クロックの接続 ● 水晶振動子またはセラミック振動子の接続例 水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。 図 5.6-1 水晶振動子またはセラミック振動子の接続例 X0 X1 ● 外部クロックの接続例 図 5.6-2 の例で示すように , 外部クロックは , X0 端子に接続し , X1 端子は開放にして ください。 図 5.6-2 外部クロックの接続例 MB90945 シリーズ X0 ~ 98 X1 開放 第6章 クロックモジュレータ クロックモジュレータの概要・特長・レジスタの 構成 , 動作について説明します。 <注意事項> MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に 使用しないでください。 MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問題ありません。 6.1 クロックモジュレータの概要 6.2 クロックモジュレータ制御レジスタ (CMCR) 6.3 使用上の注意 99 第 6 章 クロックモジュレータ 6.1 クロックモジュレータの概要 クロックモジュレータの概要を説明します。 ■ クロックモジュレータの概要 クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで 周囲への電磁ノイズへの影響 (EMI) を減らします。 本モジュレータには位相変調モードがあります。 リファレンスクロックは , ランダム信号で制御される三角波形もしくは , 変調した周波 数によって位相変調されます。 図 6.1-1 に変調クロックの周波数スペクトラム ( 基本のみ ) を示します。 図 6.1-1 変調クロックの周波数スペクトラム ( 基本のみ ) 変調範囲 周波数 Fmin 100 F0 Fmax 第 6 章 クロックモジュレータ 6.2 クロックモジュレータ制御レジスタ (CMCR) クロックモジュレータ制御レジスタ (CMCR) は位相変調を許可 / 禁止にします。 ■ クロックモジュレータ制御レジスタ (CMCR) 図 6.2-1 にクロックモジュレータ制御レジスタ (CMCR) の構成を示します。 図 6.2-1 クロックモジュレータ制御レジスタ (CMCR) の構成 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス 0035C2H PMOD 予約 予約 予約 - 予約 予約 予約 R/W R/W R/W R/W - R R/W R/W CMCR 初期値 0 0 0 1 X 0 0 0B bit0, bit1, bit2 予約 bit 0,1 bit 2 予約ビット 常に "0" を書き込んでください。 書込みは影響しません。 bit4, bit5, bit6 予約 bit 4 bit 5,6 予約ビット 常に "1" を書き込んでください 常に "0" を書き込んでください bit7 R/W R X - : リード / ライト可能 : リードオンリ : 不定 : 未定義 : 初期値 PMOD 0 1 位相変調イネーブルビット 位相変調禁止 位相変調許可 101 第 6 章 クロックモジュレータ ■ クロックモジュレータ制御レジスタの機能 表 6.2-1 にクロックモジュレータ制御レジスタの各ビットの機能を示します。 表 6.2-1 クロックモジュレータ制御レジスタの各ビットの機能 ビット名 PMOD: 位相変調 許可ビット bit7 "0": 位相変調禁止 ( デフォルト ) "1": 位相変調許可。MCU は位相変調されたクロックによって動作 します。 • モジュレータを位相変調モードで動作させるためには PMOD が "1" に設定される必要があります。 • モジュレータを許可にする前に , PLL クロックが安定している 必要があります (PLL 安定待ち時間については「第 5 章 クロッ ク」を参照してください )。 • 位相変調モードは 15MHz ~ 24MHz の範囲で使用可能です。 • PLL 出力周波数が変わる場合 , または PLL がオフになる場合 ( 例:パワーダウンモード ) には事前にクロックモジュレータを 不可にしてください→ PMOD=0 後に NOP が 4 サイクル必要で す。 • 位相変調を許可にすると , 直ちに変調されたクロックに切り換わ ります。このとき , グリッジは発生しません。 位相変調開始シーケンスについては使用上の注意を参照してく ださい。 • 位相変調の動作状態は 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 bit 6, bit5 予約ビット 本ビットには常に "0" を書き込んでください。 bit 4 予約ビット 本ビットには常に "1" を書き込んでください。 bit 3 未定義ビット - 予約ビット このビットへの読出しおよび書込みは影響しません。 読出し値は常に "0" が読み出されます。 bit 1 予約ビット 本ビットには常に "0" を書き込んでください。 bit 0 予約ビット 本ビットには常に "0" を書き込んでください。 bit 2 102 機能 第 6 章 クロックモジュレータ 6.3 使用上の注意 位相変調モードのスタート / ストップシーケンスについて説明します。 ■ 位相変調モードの推奨起動手順 start 1. PLL をオン 2. PLL 安定待ち時間待機 (「第 5 章クロック」の MCM フラグに関する説明 を参照してください ) 3. 位相変調モードを許可 (PMOD=1) クロックは直ちに位相変調される ... 動作中 ... stop 4. 位相変調モードを不可 (PMOD=0) 5. NOP4 サイクル 6. PLL 停止 , パワーダウンモードに移行 etc... <注意事項> PLL 安定待ち時間が経過する前にはモジュレータを許可にしないでください。 また , 変調動作中に PLL を停止しないでください。 <注意事項> MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に 使用しないでください。 MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問 題ありません。 103 第 6 章 クロックモジュレータ 104 第7章 リセット リセットについて説明します。 7.1 リセットの概要 7.2 リセット要因と発振安定待ち時間 7.3 外部リセット端子 7.4 リセット動作 7.5 リセット要因ビット 7.6 リセットによる各端子の状態 105 第 7 章 リセット 7.1 リセットの概要 リセット要因が発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解 除待ち状態になります。リセット解除後は , リセットベクタで示されたアドレスか ら処理を開始します。 リセットには , 次の 4 つの要因があります。 • 電源投入 ( パワーオン ) • ウォッチドッグタイマのオーバフロー • RST 端子からの外部リセット要求 • ソフトウェアリセット要求 ■ リセット要因 リセットの要因について 表 7.1-1 に示します。 表 7.1-1 リセット要因 マシンクロック ウォッチ ドッグタイマ 発振安定待ち 電源投入時 メインクロック (MCLK) 停止 あり 外部端子 RST端子への"L"レベ ル入力 メインクロック (MCLK) 停止 なし ソフトウェア 低消費電力モード制 御レジスタ (LPMCR) の内部リセット信号 発生ビット (RST) に "0" を書き込む メインクロック (MCLK) 停止 なし ウォッチ ドッグタイマ ウォッチドッグタイ マオーバフロー メインクロック (MCLK) 停止 なし リセット パワーオン 発生要因 MCLK: メインクロック ( 発振クロックの 2 分周クロック ) ● 外部リセット 外部リセットは , 外部リセット端子 (RST 端子 ) に "L" レベルを入力することでリセッ トを発生します。RST 端子への "L" レベル入力時間は , 16 マシンサイクル (16/φ) 以上 必要です。外部リセットでは , 発振安定待ち時間をとりません。 MB90945 シリーズでは , 外部リセットは最小 100 μs のメインタイムベースタイマモー ドからのウェイクアップと最小 100 μs +発振子の発振時間+ 16 マシンサイクルのス トップモードからのウェイクアップです。データシートの交流規格を参照してくださ い。 106 第 7 章 リセット <参考> RST端子によるリセット要求の発生の場合に限り, 書込み動作中 (転送系命令実行中MOV など) にリセット要因が発生した場合, 命令の終了後にリセット解除待ち状態になります。 そのため , 書込み中にリセットが入力されても , 正常に書込みを終了します。ただし , ス トリング系命令 (MOVS など ) は , 指定したカウンタ分の転送が完了する前にリセットを 受け付けるので , すべてのデータが転送されることは保証されません。 ● ソフトウェアリセット ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信 号発生ビット (RST) に "0" を書き込むことによって , 内部リセットを発生します。ソフ トウェアリセットでは , 発振安定待ち時間をとりません。 ● ウォッチドッグタイマリセット ウォッチドッグタイマリセットは , ウォッチドッグタイマの起動後 , 定められた時間内 にウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に "0" を書き込まれた場合 , ウォッチドッグタイマのオーバフローによってリセットを発 生します。ウォッチドッグリセットでは , 発振安定待ち時間はクロック選択レジスタ (CKSCR) で設定されます。 ● パワーオンリセット パワーオンリセットは , 電源投入時に発生するリセットです。この場合 , 217/HCLK の 発振安定待ち時間に 217/HCLK (EVA デバイス ) または 216/HCLK( その他 ) の電圧降圧 回路安定待ち時間が追加されます。この 2 つの待ち時間 ( 4MHz 原発振時 約 65.54 ms (EVA デバイス ) または 約 49.15 ms ( その他 )) が経過するとリセットが実行されます。 図 7.2-1 を参照してください。 クロックの定義 HCLK : 発振クロック周波数 MCLK : メインクロック周波数 f : マシンクロック (CPU 動作クロック ) 周波数 1/ f : マシンサイクル (CPU 動作クロック周期 ) マシンクロックの詳細は , 「第 5 章 クロック」を参照してください。 107 第 7 章 リセット 7.2 リセット要因と発振安定待ち時間 MB90945 シリーズには , 4 種類のリセット要因があり , リセット時の発振安定待ち 時間がリセット要因によってそれぞれ異なります。 ■ リセット要因と発振安定待ち時間 表 7.2-1 にリセット要因と発振安定待ち時間について示します。 表 7.2-1 リセット要因と発振安定待ち時間 発振安定待ち時間 ( ) 内は発振クロック周波数 4MHz 時 リセット パワーオン 217/HCLK (EVA デバイス ) または 216/HCLK( その他 ) 電圧 降圧回路安定待ち時間 +217/HCLK 発振安定待ち時間 =218/ HCLK(EVA デバイス :4 MHz 発振時 約 65.54 ms) または 3 × 216/HCLK ( その他 :4 MHz 発振時 約 49.15 ms) ウォッチドッグタイマ なし RST 端子により外部リセット なし : ただし WS1, WS0 ビットは "11B" に初期化されます。 ソフトウェア なし : ただし WS1, WS0 ビットは "11B" に初期化されます。 HCLK: 発振クロック周波数 WS1, WS0: クロック選択レジスタ (CKSCR) の発振安定待ち時間選択ビット 図 7.2-1 に , パワーオンリセット時の発振安定待ち時間について示します。 図 7.2-1 パワーオンリセット時の発振安定待ち時間 Evaluation/flash model Vcc EVA: 217/HCLK その他 : 216/HCLK 217/HCLK 降圧回路の 安定待ち時間 発振安定 待ち時間 CLK CPU 動作 HCLK : 発振クロック 108 第 7 章 リセット <注意事項> セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで , 一 般に数 ms の発振安定待ち時間が必要です。そのため , 使用する振動子に合わせた値を設 定してください。詳細は , 「5.5 発振安定待ち時間」を参照してください。 ■ 発振安定待ちリセット状態 電源投入時のリセット , ストップモード中のリセットに対するリセット動作は , タイム ベースタイマによって作られる発振安定待ち時間が経過してからとなります。このと き , 外部リセット入力が解除されていない場合は , 外部リセット解除後にリセット動作 を行います。 109 第 7 章 リセット 7.3 外部リセット端子 外部リセット端子 (RST 端子 ) は , リセット入力専用端子で , "L" レベルの入力に よって内部リセットを発生します。MB90945 シリーズは , CPU 動作クロックに同期 してリセットがかかります。ただし , I/O ポート端子は非同期時の外部リセット端子 (RST 端子 ) によって影響を受けます。 ■ 外部リセット端子のブロックダイヤグラム ● 外部リセット端子のブロックダイヤグラム 図 7.3-1 外部リセット端子のブロックダイヤグラム CPU 動作クロック (HCLK 周波数を 2 分周した周波数による PLL 逓倍回路 ) RST CPU P-ch 同期回路 Pin N-ch 入力 バッファ 周辺機能 ( リソース ) I/O ポート または外部端子 <注意事項> 書込み動作中のリセットによるメモリ破壊を防ぐため, RST端子入力の受付けをメモリが 破壊されないサイクルで行います。また , 内部回路の初期化には , クロックが必要です。 特に外部クロックで動作させる場合は , リセット入力時にクロックを入力する必要があり ます。 110 第 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 に , リセットベクタとモードデータの転送を示します。 111 第 7 章 リセット 図 7.4-2 リセットベクタとモードデータの転送 F2MC-16LX CPU コア メモリ空間 FFFFDFH モードデータ FFFFDE H リセットベクタビット 23 ~ 16 FFFFDDH リセットベクタビット 15 ~ 8 リセットベクタビット 7 ~ 0 FFFFDCH モードレジスタ リセット シーケンス マイクロ ROM PCB PC ● モードデータ ( アドレス :FFFFDFH) モードレジスタの内容を変更できるのはリセット動作だけで , モードレジスタの設定 はリセット動作以降に有効となります。モードデータの詳細は , 「9.3 モードデータ」 を参照してください。 ● リセットベクタ ( アドレス :FFFFDCH ~ FFFFDEH) リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容のアドレス から実行を開始します。 <注意事項> MB90F946A, MB90F947(A) および MB90F949 (A) では , リセットベクタとモードデータ はハードワイヤードロジックによって異なるあらかじめ決められた値を設定しています。 詳細については , 「25.9 フラッシュメモリにおけるリセットベクタアドレス」を参照し てください。 112 第 7 章 リセット 7.5 リセット要因ビット リセット要因はウォッチドッグタイマ制御レジスタ (WDTC) を読み出すことで識別 できます。 ■ リセット要因ビット 図 7.5-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すと得 られます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッ チドッグタイマ制御レジスタ (WDTC) の読出し値をソフトウェアで処理した上で , 適 切なプログラムへ分岐するようにしてください。 図 7.5-1 リセット要因ビットのブロックダイヤグラム RST pin 定期的なクリアなし RST=L パワーオン 発生検出 回路 外部リセット 要求検出回路 ウォッチドッグ タイマリセット 発生検出回路 ウォッチドッグ タイマ制御 レジスタ (WDTC) RST ビットセット LPMCR, RST ビット書込み 検出回路 クリア S R S Q R S Q R R S F/F F/F F/F F/F 遅延回路 Q Q ウォッチドッグ タイマ 制御レジスタ (WDTC) 読出し S: セット R: リセット Q: 出力 F/F: フリップフロップ 内部データバス ■ リセット要因ビットとリセット要因の対応 ウォッチドッグタイマ制御レジスタ (WDTC) のリセット要因ビットの構成を , 図 7.5-2 に , リセット要因ビットの内容とリセット要因の対応を 表 7.5-1 に示します。詳細は , 「12.1 ウォッチドッグタイマの概要」を参照してください。 図 7.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ ) ウォッチドッグタイマ制御レジスタ (WDTC) アドレス : 0000A8H bit15............bit8 bit7 bit6 (TBTC) PONR R - - bit5 bit4 bit3 bit2 WRST ERST SRST WTE R R R W bit1 WT1 W bit0 初期値 WT0 XXXXX111B W R: リードオンリ W: ライトオンリ X: 不定 113 第 7 章 リセット 表 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レジスタの値は 保証されません。 114 第 7 章 リセット 7.6 リセットによる各端子の状態 リセットによる各端子の状態について説明します。 ■ リセット中の端子の状態 リセット中の端子の状態は , モード端子 (MD2 ~ MD0) の設定によって決定されます。 ● 内部ベクタモード設定時 (MD2 ~ MD0=011B) I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 ■ モードデータ読出し後の端子の状態 モードデータ読出し後の端子の状態は , モードデータ (M1, M0=00B) によって決定され ます。 ● シングルチップモード選択時 (M1, M0=00B) I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 <注意事項> リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器 が誤動作しないように配慮してください。 115 第 7 章 リセット 116 第8章 低消費電力モード 低消費電力モードの機能と動作について説明しま す。 8.1 低消費電力モードの概要 8.2 低消費電力モードのブロックダイヤグラム 8.3 低消費電力モード制御レジスタ (LPMCR) 8.4 CPU 間欠動作モード 8.5 スタンバイモード 8.6 状態遷移図 8.7 低消費電力モード使用上の注意 117 第 8 章 低消費電力モード 8.1 低消費電力モードの概要 動作クロックの選択とクロックの動作制御による , 次のような CPU 動作モードを備 えています。 • クロックモード (PLL クロック , メインクロックの各モード ) • CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作の各モード ) • スタンバイモード ( スリープ , タイムベースタイマ , ストップの各モード ) ■ CPU 動作モードと消費電流 CPU 動作モードと消費電流の関係を図 8.1-1 に示します。 図 8.1-1 CPU 動作モードと消費電流 消費電流 数 10mA CPU 動作モード PLL クロックモード 8 逓倍クロック 6 逓倍クロック 4 逓倍クロック 3 逓倍クロック 2 逓倍クロック 1 逓倍クロック PLL クロック間欠 動作モード 8 逓倍クロック 6 逓倍クロック 4 逓倍クロック 3 逓倍クロック 2 逓倍クロック 1 逓倍クロック メインクロックモード (1/2 クロックモード ) メインクロック間欠動作モード 数 mA スタンバイモード スリープモード タイムベースタイマモード 数 μA ストップモード 低消費電力モード ( 注意事項 ) この図は , 各種モードのイメージを示したもので , 実際の消費電流とは異なる 部分があります。 118 第 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 タイムベースタイマモードでは , 消費電力が著しく高くなります。詳細は , データ シートを参照してください。 ● ストップモード ストップモードは原発振を停止させるモードで , すべての機能が停止します。 119 第 8 章 低消費電力モード <注意事項> ストップモードでは発振クロックが停止するため , 最小の消費電力でデータを保持できま す。 クロックモードを切り換えた場合 , 切り換えが完了するまでは他のクロックモードおよび 低消費電力モードへは切り換えないようにしてください。 切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え を行った場合 , 切り換わらない場合があります。 120 第 8 章 低消費電力モード 8.2 低消費電力モードのブロックダイヤグラム 低消費電力モードは , 次の 7 つのブロックで構成されています。 • CPU 間欠動作セレクタ • スタンバイ制御回路 • CPU クロック制御回路 • 周辺クロック制御回路 • 端子ハイインピーダンス制御回路 • 内部リセット発生回路 • 低消費電力モード制御レジスタ (LPMCR) ■ 低消費電力モードのブロックダイヤグラム 図 8.2-1 に , 低消費電力モードのブロックダイヤグラムを示します。 図 8.2-1 低消費電力モードのブロックダイヤグラム 低消費電力モード制御レジスタ (LPMCR) STP SLP SPL RST TMD CG1 CG0 予約 RST 端子 端子ハイインピー ダンス制御回路 端子ハイインピー ダンス制御 内部リセット 発生回路 内部リセット CPU クロック 制御回路 CPU クロック 間欠 サイクル セレクタ CPU 間欠動作 セレクタ ストップ , スリープ信号 スタンバイ 制御回路 ストップ信号 割込み解除 周辺クロック 制御回路 発振安定待ちクリア マシンクロック CS2 PLL および 特殊構成制御 レジスタ (PSCCR):bit8 X0 端子 X1 端子 クロック セレクタ 発振安定 待ち時間 セレクタ 2 2 PLL 逓倍回路 HCLK 2 分周 システムクロック 発生回路 - 周辺クロック MCM WS1 WS0 メイン クロック - MCS CS1 CS0 クロック選択レジスタ (CKSCR) 1024 分周 2 分周 4 分周 4 分周 4 分周 2 分周 タイムベースタイマ ウォッチドッグタイマ 121 第 8 章 低消費電力モード ● CPU 間欠動作セレクタ CPU 間欠動作モードにおける , 一時停止クロック数を選択します。 ● スタンバイ制御回路 CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの 移行および解除を行います。 ● CPU クロック制御回路 CPU および周辺クロック制御回路の周辺機能に供給するクロックを制御する回路で す。 ● 周辺クロック制御回路 周辺機能に供給するクロックを制御する回路です。 ● 端子ハイインピーダンス制御回路 タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー ダンスにする回路です。プルアップオプションの選択された端子に対しては , ストップ モードではプルアップ抵抗を切り離します。 ● 内部リセット発生回路 内部リセット信号を発生させる回路です。 ● 低消費電力モード制御レジスタ (LPMCR) スタンバイモードへの移行 / 解除および CPU 間欠動作機能の設定などを行うレジスタ です。 122 第 8 章 低消費電力モード 8.3 低消費電力モード制御レジスタ (LPMCR) 低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除およ び CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを行 うレジスタです。 ■ 低消費電力モード制御レジスタ (LPMCR) 図 8.3-1 に , 低消費電力モード制御レジスタ (LPMCR) の構成を示します。 図 8.3-1 低消費電力モード制御レジスタ (LPMCR) の構成 アドレス bit15 0000A0H (CKSCR) bit7 bit6 bit5 bit4 bit3 bit2 bit1 STP SLP SPL W W R/W bit0 RST TMD CG1 CG0 予約 W R/W R/W R/W 初期値 00011000B R/W bit0 予約ビット 予約 このビットへは必ず "0" を書込んでください。 0 bit1, bit2 CG1 CG0 CPU クロック一時停止サイクル数選択ビット 0 0 0 1 1 0 0 サイクル (CPU クロック=周辺クロック ) 8 サイクル (CPU クロック:周辺クロック= 1:約 3 ~ 4) 16 サイクル (CPU クロック:周辺クロック= 1:約 5 ~ 6) 1 1 32 サイクル (CPU クロック:周辺クロック= 1:約 9 ~ 10) bit3 タイムベースタイマモードビット TMD 0 タイムベースタイマモードに移行 1 変化なし , 他への影響なし bit4 内部リセット信号発生ビット RST 0 3 マシンサイクルの内部リセット信号を発生 1 変化なし , 他への影響なし bit5 端子状態指定ビット ( タイムベースタイマ・ストップモード時 ) SPL 0 保持 1 ハイインピーダンス bit6 スリープモードビット SLP 0 変化なし , 他への影響なし 1 スリープモードに移行 bit7 R/W : リード / ライト可能 W : ライトオンリ 0 : 初期値 変化なし , 他への影響なし 1 ストップモードに移行 STP ストップモードビット 123 第 8 章 低消費電力モード 表 8.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明 ビット名 bit 7 STP: ストップモード ビット • • • • • ストップモードへの移行を指示するビットです。 このビットに "1" を書き込むと , ストップモードへ移行します。 このビットに "0" を書き込んでも動作に影響しません。 リセット , または割込み要求発生で "0" にクリアされます。 このビットを読み出すと , 常に "0" が読み出されます。 bit 6 SLP: スリープモード ビット • • • • • スリープモードへの移行を指示するビットです。 このビットに "1" を書き込むとスリープモードに移行します。 このビットに "0" を書き込んでも動作に影響しません。 リセット , または割込み要求発生で "0" にクリアされます。 このビットを読み出すと , 常に "0" が読み出されます。 SPL: 端子状態指定 ビッ ト ( タイ ム ベースタイマ・ ストップモード時) • このビットはタイムベースタイマモード , またはストップモー ドの場合だけ有効です。 • このビットが "0" の場合 , 外部端子のレベルを保持します。 • このビットが "1" の場合 , 外部端子をハイインピーダンスにしま す。 • リセットで "0" に初期化されます。 bit 4 RST: 内部リセット信号 発生ビット • このビットに "0" を書き込むと 3 マシンサイクルの内部リセッ ト信号を発生します。 • このビットに "1" を書き込んでも動作に影響しません。 • このビットを読み出すと , 常に "1" が読み出されます。 bit 3 TMD: タイムベース タイマモード ビット • タイムベースタイマモードへの移行を指示するビットです。 • メインクロックモード , または PLL クロックモードにおいて , こ のビットに "0" を書き込むことにより , タイムベースタイマモー ドに移行します。 • リセットまたは割込み要求発生で "1" にクリアされます。 • このビットを読み出すと , 常に "1" が読み出されます。 bit 2 bit 1 CG1, CG0: CPU クロック 一時停止サイクル 数選択ビット • CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設定 するビットです。 • 1 命令ごとに指定サイクル数 CPU クロック供給を停止します。 • 4 種類のクロック数から選択できます。 • リセットで "00B" に初期化されます。 予約 : 予約ビット このビットには必ず "0" を書き込んでください。 bit 5 bit 0 124 機能 第 8 章 低消費電力モード ■ 低消費電力モード制御レジスタへのアクセス 低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス リープモード , タイムベースタイマモード ) へ遷移しますが , 低消費電力モードへの遷 移に使用する命令は 表 8.3-2 の命令を使用してください。 表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記 内の命令列 を配置してください。 MOV LPMCR, #H’XX NOP NOP JMP $+3 MOV A, #H’10 ; 表 8.3-2 の低消費電力モード遷移命令 ; 次の命令へのジャンプ ; 任意の命令 内の命令列以外が配置されると低消費電力解除後の動作は保証されません。 C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は , 「8.7 低消費 電力モード使用上の注意」の「スタンバイモード遷移のための低消費電力モード制御 レジスタ (LPMCR) へアクセスする際の注意事項」を参照してください。 表 8.3-2 の命令以外の命令で低消費電力モードへ遷移した場合には , 動作保証ができま せん。表 8.3-1 に示す以外の機能を制御する場合には , どの命令を使用してもかまいま せん。 ワード長で低消費電力モード制御レジスタへ書き込む場合には , 偶数アドレスで書き 込むようにしてください。奇数アドレスで書込みを行うと , 誤動作の原因となる場合が あります。 ■ STP, SLP, TMD ビットの優先順位 ストップモード要求とスリープモード要求およびタイムベースタイマモード要求を同 時に行った場合は , 次の優先順位で要求を処理します。 ストップモード要求 > タイムベースタイマモード要求 > スリープモード要求 <注意事項> ストップモード , またはタイムベースタイマモードの周辺機能とポートが端子を共有して いるときに , 端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電 力モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0" に設定してください。 以下の端子に適用されます。 P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/ SCK0 125 第 8 章 低消費電力モード 表 8.3-2 低消費電力モードへ遷移する場合に使用する命令一覧 MOV io,#imm8 MOV dir,#imm8 MOV eam,#imm8 MOV eam,Ri MOV io,A MOV dir,A MOV addr,A MOV eam,A MOV @RLi+disp8,A MOVP addr24,A MOVW io,#imm16 MOVW dir,#imm16 MOVW eam,#imm16 MOVW eam,RWi MOVW io,A MOVW dir,A MOVW addr16, MOVW eam,A MOVW @RLi+disp8,A MOVPW addr24,A SETB io:bp SETB dir:bp SETB addr16:bp CLRB io:bp CLRB dir:bp CLRB addr16:bp 126 第 8 章 低消費電力モード 8.4 CPU 間欠動作モード CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作 させることで , 消費電力を低減するモードです。 ■ CPU 間欠動作モード CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM), I/O, 周辺機能および外部 バスアクセスを行う場合 , CPU に供給するクロックを 1 命令実行ごとに一定期間停止 させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック を供給したまま , CPU の実行速度を下げると , 低消費電力で処理できます。 低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの 一時停止サイクル数を選択します。 外部バス動作そのものは , 周辺機能と同じクロックを使用します。 CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ , 内蔵周辺機能および外部バスアクセスを行う場合の命令実行回数に , 一時停止サイク ル数をかけた補正値を通常の実行時間に加えることで , 求めることができます。図 8.41 に CPU 間欠動作モード時の動作クロックを示します。 図 8.4-1 CPU 間欠動作時のクロック 周辺クロック CPU クロック 一時停止サイクル 1 命令実行 サイクル 内部バス起動 127 第 8 章 低消費電力モード 8.5 スタンバイモード スタンバイモードには , スリープ (PLL スリープ , メインスリープ ), タイムベースタ イマ , ストップの各モードがあります。 ■ スタンバイモードの動作状態 図 8.5-1 に , スタンバイモードの動作状態を示します。 表 8.5-1 スタンバイモードの動作状態 スタンバイモード スリープ モード タイム ベース タイマ モード ストップ モード * SPL SLP STP TMD MCS Hi-Z 移行条件 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 : タイムベースタイマは動作します。 : 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット : 低消費電力モード制御レジスタ (LPMCR) のスリープモードビット : 低消費電力モード制御レジスタ (LPMCR) のストップモードビット : 低消費電力モード制御レジスタ (LPMCR) のタイムベースタイマモードビット : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット : ハイインピーダンス <注意事項> ストップモード , またはタイムベースタイマモードの周辺機能とポートが端子を共有して いるときに , 端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電 力モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0" に設定してください。 以下の端子に適用されます。 P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/ SCK0 128 第 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 は割 込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込 み処理ルーチンへ分岐します。 ● 端子状態 スリープモード中は , すべての端子は ( バス入出力またはバス制御で使用されている端 子以外 ) 直前の状態を保持します。 ■ スリープモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生によってスリープモードを 解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 ● 割込みによる復帰 スリープモード中に, 周辺回路などから割込みレベルが7より高い割込み要求が発生す るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同 129 第 8 章 低消費電力モード じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ ベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設定によって , 割込みが 受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられない 場合は , スリープモードを指定した命令の次の命令から処理を続行します。 図 8.5-1 に , 割込み発生によるスリープモードの解除を示します。 図 8.5-1 割込み発生によるスリープモードの解除 周辺機能の割込み イネーブルフラグ設定 IL<7 スリープ解除しない INT 発生 ? (IL<7) スリープ解除しない YES I=0 YES 次の命令実行 スリープ解除する NO ILM<IL YES 次の命令実行 NO 割込み実行 <注意事項> 割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した 後に , 割込み処理に移行します。ただし , スリープモードへの移行と外部バスホールド要 求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあ ります。 130 第 8 章 低消費電力モード 8.5.2 タイムベースタイマモード タイムベースタイマモードは , 原発振とタイムベースタイマ , 時計タイマ以外の動作 を停止させるモードで , タイムベースタイマと時計タイマ以外すべての機能が停止 します。 ■ タイムベースタイマモードへの移行 PLL クロックモード , またはメインクロックモードの場合に , 低消費電力モード制御レ ジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベースタイマモードに移 行します。 メインタイムベースタイマモードと PLL タイムベースタイマモードとの状態の差に注 意してください。結果としての状態は , CKSCR の MCS ビットにより選択されたクロッ クに依存します。図 8.6-1 を参照してください。消費電力は PLL タイムベースタイマ モードで顕著に高くなります。規定値はデータシートを参照してください。 ● データ保持機能 タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内 容を保持します。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割 込み要求が発生しているときはタイムベースタイマモードに移行しません。 ● 端子状態 タイムベースタイマモード中の外部端子を直前の状態に保持するか , ハイインピーダ ンス状態にするかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で きます。 131 第 8 章 低消費電力モード ■ タイムベースタイマモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生でタイムベースタイマモー ドを解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 <注意事項> メインタイムベースタイマモード中に必ず RST 信号を 100 μs 以上入れてください。 ● 割込みによる復帰 タイムベースタイマ中に, 周辺回路などから割込みレベルが7より高い割込み要求が発 生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制御回路 はタイムベースタイマモードを解除します。タイムベースタイマモードの解除後は , 通 常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フ ラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設 定により割込みが受け付けられる場合は , 割込み処理を実行します。割込みが受け付け られない場合は , タイムベースタイマモードに入る前の次の命令から処理を続行しま す。 <注意事項> 割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令 を実行した後に , 割込み処理に移行します。ただし , タイムベースタイマモードへの移行 と外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処 理に移行することがあります。 割込みによるメインタイムベースタイマモードからの起動は , 最大 40 μs の内部の遅延と なります。タイムベースタイマモードの周辺機能とポートが端子を共有しているときに , 端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電力モード制御 レジスタ (LPMCR) の TMD ビットを "0" に設定してください。 以下の端子に適用されます。 P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/ SCK0 132 第 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) を設定して 割込みが受け付けられる場合は割込み処理を実行します。割込みが受け付けられない場 合は , ストップモードに入る前の次の命令から処理を続行します。 133 第 8 章 低消費電力モード <注意事項> 割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行した 後に , 割込み処理に移行します。ただし , ストップモードへの移行と外部バスホールド要 求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあ ります。 図 8.5-2 に , ストップモードからの復帰動作を示します。 図 8.5-2 ストップモードの解除 ( 外部リセット ) RST 端子 ストップモード メインクロック PLL クロック 発振中 発振安定待ち 停止中 発振中 停止中 CPU クロック メインクロック CPU 動作 停止中 リセットシーケンス 処理 リセット解除 ストップモード解除 <注意事項> • ストップモードの周辺機能やポートによって端子が共用されるとき , 端子をハイイン ピーダンスに設定するには , 周辺機能の出力を禁止し , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" に設定してください。 これは以下の端子に適用します。 P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/ SCK0 • PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため , PLLストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間 は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定 された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち 時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットは , 発振安定待ち時間の 長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間は 214/HCLK以上必要になりますので, CKSCR:WS1, WS0ビットには, "10B"または"11B" を設定してください。 134 第 8 章 低消費電力モード 8.6 状態遷移図 図 8.6-1 に , MB90945 シリーズの動作状態の遷移図と , 遷移条件を示します。 ■ 状態遷移図 図 8.6-1 状態遷移図 外部リセット , ウォッチドッグタイマリセット , ソフトウェアリセット 電源投入 リセット パワーオンリセット 発振安定待ち時間終了 MCS=0 PLL クロック モード メインクロック モード MCS=1 SLP=1 割込み SLP=1 メインスリープ モード TMD=0 割込み PLL スリープモード TMD=0 メイン タイムベースタイマ モード STP=1 メインストップ モード メインクロック 発振安定待ち 割込み PLL タイムベース タイマモード STP=1 割込み 割込み PLL ストップモード 発振安定 待ち時間終了 割込み 発振安定 待ち時間終了 PLL クロック 発振安定待ち 135 第 8 章 低消費電力モード ■ 低消費電力モードの動作状態 表 8.6-1 に , 低消費電力モードの動作状態を示します。 表 8.6-1 低消費電力モードの動作状態 動作状態 メイン クロック PLL クロック PLL CPU 周辺 タイムベース タイマ クロック ソース 動作 動作 PLL スリープ 動作 動作 動作 PLL クロック タイムベースタイマ *1 停止 PLL ストップ 停止 停止 PLL 発振安定待ち 動作 動作 メイン 停止 停止 動作 動作 動作 メインスリープ 動作 タイムベースタイマ *2 動作 メイン クロック 停止 停止 メインストップ 停止 メイン発振安定待ち 動作 パワーオンリセット 停止 動作 停止 動作 リセット 停止 停止 動作 停止 動作 *3 メイン クロック *1: PLL クロックモード時 *2: メインクロックモード時 *3: リセットフェーズ中では , クロックとほぼ同じ速度でタイムベースタイマを駆動できます ( パワー オン直後は別 )。 リセットフェーズの終わりで , タイマ値は初期値にリセットされます。 136 第 8 章 低消費電力モード 8.7 低消費電力モード使用上の注意 低消費電力モードを使用する場合には , 次の 7 つの内容に関して注意が必要です。 • スタンバイモードへの移行と割込み • スタンバイモード移行時の注意について • スタンバイモードの割込みによる解除 • ストップモード解除時 • 発振安定待ち時間 • クロックモードの切換え • スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアク セスする際の注意事項 ■ スタンバイモードへの移行と割込み 周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ スタ (LPMCR:STP=1, SLP=1) または , (LPMCR:TMD=0) としても無視されるため , 各ス タンバイモードへは移行しません (割込み処理後にも, スタンバイモードへの移行はし ません ) 。この場合 , 割込みレベルが 7 より高ければ , 割込み要求が CPU に受け付け られるかどうかには関係しません。 また , CPU が割込み処理中であっても , その割込み要求フラグビットがクリアされてお り , 他に割込み要求がなければ , スタンバイモードへ移行できます。 ■ スタンバイモード移行時の注意について ストップモードもしくは , タイムベースタイマモードの周辺機能とポートが端子を共 有しているときに , 端子をハイインピーダンスにするには , 以下の項目を実行してくだ さい。 1. 周辺機能の出力を禁止する 2. 低消費電力モード制御レジスタ (LPMCR) では , SPL ビットを "1" もしくは , STP ビッ トを "1" もしくは , TMD ビットを "0" に設定する。 ■ スタンバイモードの割込みによる解除 スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ ベルが 7 より高い割込み要求が発生すると , スタンバイモードは解除されます。これは CPU が割込みを受け付けるかどうかには関係しません。 スタンバイモード解除後は , 通常の割込み動作として , 割込み要求に対応する割込みレ ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ (ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1) されている場合は , 割込み処理ルーチンへ分岐します。 割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から 動作を再開します。 割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実 行した後に , 割込み処理に移行します。 ただし , スタンバイモードに移行した場合の条件によっては , 次の命令を実行する前に 割込み処理に移行することがあります。 137 第 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 の命令を使用してください。 138 第 8 章 低消費電力モード 表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記 内の命令列 を配置してください。 MOV LPMCR, #H’XX NOP NOP ; 表 8.3-2 の低消費電力モード遷移命令 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 /* LPMCR の STP ビットに 1 をセット */ /* 次の命令へのジャンプ */ 139 第 8 章 低消費電力モード 140 第9章 メモリアクセスモード メモリアクセスモードの機能と動作について示し ます。 9.1 メモリアクセスモードの概要 9.2 モード端子 9.3 モードデータ 141 第 9 章 メモリアクセスモード 9.1 メモリアクセスモードの概要 F2MC-16LX では , アクセス方式 , アクセス領域のそれぞれについて , 次の 2 種類の メモリアクセスモードがあります。 • 動作モード • バスモード ■ メモリアクセスモード 動作モード バスモード シングルチップ RUN フラッシュプログラミング MB90945 シリーズについては , 外部バス機能はサポートされていません。このため , 本 マニュアルの下記の記述は完全にはサポートされていません。お客様がご使用の際に は , MB90945 シリーズをシングルチップモードで使用してください。 MB90945 シリーズをシングルチップモードに設定するには , モード入力 (MD2 ~ MD0) を"011B"にし, モードデータの最上位2ビット(M1, M0)を"00B"にする必要があります。 ● 動作モード 動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端 子 (MD2 ~ MD0) とモードデータ内の M1 ビット , M0 ビットで指定します。 ● バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す もので , モード設定用端子 (MD2 ~ MD0) とモードデータ内の M1 ビット , M0 ビット の内容で指定します。モード設定用端子 (MD2 ~ MD0) は , リセットベクタおよびモー ドデータを読み出すときのバスモードを指定するもので , モードデータ内の M1 ビット , M0 ビットは , 通常動作時のバスモードを指定するものです。 142 第 9 章 メモリアクセスモード 9.2 モード端子 表 9.2-1 に 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: フラッシュメモリのシリアル書込みは , モード端子の設定だけでは書込みができません。ほかの 端子設定も必要です。 詳細は「第 26 章 MB90F947 同期シリアル書込み接続例」を参照してください。 *2: MB90V390HA/HB および MB90947A は設定禁止 143 第 9 章 メモリアクセスモード 9.3 モードデータ 主記憶 FFFFDFH に置く , CPU の動作制御用のデータです。リセットシーケンス実 行中にこのデータを取り込み , デバイス内部のモードレジスタに格納します。モー ドレジスタの内容を変更できるのはリセットシーケンスだけです。 本レジスタによる設定はリセットシーケンス以降に有効となります。 予約ビットは , 必ず "0" を設定してください。 ■ モードデータ 図 9.3-1 に , ビットの設定を示します。 図 9.3-1 モードデータ構成 モードデータ bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 M1 M0 0 0 0 0 0 0 機能拡張ビット ( 予約領域 ) バスモード設定ビット ■ バスモード設定ビット リセットシーケンス終了後の動作モードの指定を行うビットです。表 9.3-1 に , ビット と機能の関係を示します。 表 9.3-1 バスモード設定ビットと機能 M1 M0 0 0 0 1 1 0 1 1 機能 シングルチップモード ( 設定禁止 ) 図 9.3-2 に , 各バスモードのアクセス領域と物理アドレスの対応関係を示します。 144 第 9 章 メモリアクセスモード 図 9.3-2 各バスモードのアクセス領域と物理アドレス FFFFFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H FCFFFFH FC0000H FBFFFFH FB0000H FAFFFFH FA0000H 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 メモリ空間マップ」を参照してください。 145 第 9 章 メモリアクセスモード ■ 推奨設定例 表 9.3-2 に , モード端子とモードデータの推奨設定例を示します。 表 9.3-2 モード端子とモードデータの推奨設定例 設定例 MD2 MD1 MD0 M1 M0 シングルチップ 0 1 1 0 0 <注意事項> フラッシュ品については , ハードワイヤードロジックによりモードデータにあらかじめ決 められた値が設定されています。詳細については , 「25.9 フラッシュメモリにおけるリ セットベクタアドレス」を参照してください。 146 第 10 章 I/O ポート I/O ポートの機能と動作について説明します。 10.1 I/O ポート 10.2 I/O ポートのレジスタ 147 第 10 章 I/O ポート 10.1 I/O ポート それぞれのポートの各端子は , 対応する周辺が端子を用いない設定となっていると き , 1 本ごとに方向レジスタを設定することにより , 入力 , 出力の指定ができます。 入力端子として指定した場合 , 端子の論理レベルが読み出され , 出力端子として指定 した場合 , データレジスタ値が読み出されます。これは , リードモディファイライト のリード操作にも適用されます。 ■ I/O ポート 端子を他の周辺機能の出力として使用している場合 , 方向レジスタ値に関係なく , 周辺 出力値が読み出されます。 一般的には , ポートを出力に設定する前に , データレジスタの設定にリードモディファ イライト系の命令を使用しないことが推奨されます。それは , リードモディファイライ ト系の命令によってレジスタ値ではなくポートの論理レベルが読み出されるからで す。 図 10.1-1 に , I/O ポートのブロックダイヤグラムを示します。 図 10.1-1 I/O ポートのブロックダイヤグラム 内部データバス データレジスタリード データレジスタ データレジスタライト 方向レジスタ 方向レジスタライト 方向レジスタリード 148 端子 第 10 章 I/O ポート 10.2 I/O ポートのレジスタ I/O ポートのレジスタには , 次の 4 種類があります。 • ポートデータレジスタ (PDR0 ~ PDRB) • ポート方向レジスタ (DDR0 ~ DDRB) • ポートアナログ入力許可レジスタ (ADER0, ADER1) • 入力レベル選択レジスタ (ILSR) ■ I/O ポートのレジスタ 図 10.2-1 に , I/O ポートのレジスタを示します。 図 10.2-1 I/O ポートのレジスタ アドレス : 000000H : 000001H : 000002H : 000003H : 000004H : 000005H : 000006H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 P07 P17 P27 P37 P47 P57 P67 P06 P16 P26 P36 P46 P56 P66 P05 P15 P25 P35 P45 P55 P65 P04 P14 P24 P34 P44 P54 P64 P03 P13 P23 P33 P43 P53 P63 P02 P12 P22 P32 P42 P52 P62 P01 P11 P21 P31 P41 P51 P61 P00 P10 P20 P30 P40 P50 P60 ポート 0 データレジスタ (PDR0) ポート 1 データレジスタ (PDR1) ポート 2 データレジスタ (PDR2) ポート 3 データレジスタ (PDR3) ポート 4 データレジスタ (PDR4) ポート 5 データレジスタ (PDR5) ポート 6 データレジスタ (PDR6) : 000008H : 000009H : 00000AH : 00000BH P87 P97 PA7 PB7 P86 P96 PA6 PB6 P85 P95 PA5 PB5 P84 P94 PA4 PB4 P83 P93 PA3 PB3 P82 P92 PA2 PB2 P81 P91 PA1 PB1 P80 P90 PA0 PB0 ポート 8 データレジスタ (PDR8) ポート 9 データレジスタ (PDR9) ポート A データレジスタ (PDRA) ポート B データレジスタ (PDRB) : 000010H : 000011H : 000012H : 000013H : 000014H : 000015H : 000016H D07 D17 D27 D37 D47 D57 D67 D06 D16 D26 D36 D46 D56 D66 D05 D15 D25 D35 D45 D55 D65 D04 D14 D24 D34 D44 D54 D64 D03 D13 D23 D33 D43 D53 D63 D02 D12 D22 D32 D42 D52 D62 D01 D11 D21 D31 D41 D51 D61 D00 D10 D20 D30 D40 D50 D60 ポート 0 方向レジスタ (DDR0) ポート 1 方向レジスタ (DDR1) ポート 2 方向レジスタ (DDR2) ポート 3 方向レジスタ (DDR3) ポート 4 方向レジスタ (DDR4) ポート 5 方向レジスタ (DDR5) ポート 6 方向レジスタ (DDR6) : 000018H : 000019H : 00001AH : 00001BH - D97 DA7 DB7 - D96 DA6 DB6 - D95 DA5 DB5 - D94 DA4 DB4 - D93 DA3 DB3 - D92 DA2 DB2 D81 D91 DA1 DB1 D80 D90 DA0 DB0 ポート 8 方向レジスタ (DDR8) ポート 9 方向レジスタ (DDR9) ポート A 方向レジスタ (DDRA) ポート B 方向レジスタ (DDRB) 9/1 8/0 アドレス bit15/7 14/6 13/5 12/4 11/3 10/2 : 00000CH ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 : 00000DH ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8 : 00000EH IL7 IL6 IL5 IL4 IL3 IL2 IL1 IL0 : 00000FH ILSPB ILI2C ILRX0 ILRX1 ILB ILA IL9 IL8 ポート 6 アナログ入力許可レジスタ (ADER0) ポート B アナログ入力許可レジスタ (ADER1) 入力レベル選択レジスタ (ILSR) 入力レベル選択レジスタ (ILSR) 149 第 10 章 I/O ポート 10.2.1 ポートデータレジスタ (PDR0 ~ PDR6, PDR8 ~ PDRB) I/O ポートの R/W は , メモリへの R/W とは多少動作が異なりますので注意してくだ さい。 [ 入力モード ] 読出し時 : 対応する端子のレベルが読み出されます。 書込み時 : 出力用のラッチに書き込まれます。 [ 出力モード ] 読出し時 : データレジスタラッチの値が読み出されます。 書込み時 : 出力ラッチに書き込まれ , 対応する端子に出力されます。 ■ ポートデータレジスタ 図 10.2-2 に , ポートデータレジスタを示します。 図 10.2-2 ポートデータレジスタ PDR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 アドレス : 000000H P07 P06 P05 P04 P03 P02 P01 P00 不定 アクセス R/W PDR1 bit7 P17 bit6 P16 bit5 P15 bit4 P14 bit3 P13 bit2 P12 bit1 P11 bit0 P10 不定 R/W アドレス : 000001H PDR2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000002H P27 P26 P25 P24 P23 P22 P21 P20 不定 R/W PDR3 bit7 P37 bit6 P36 bit5 P35 bit4 P34 bit3 P33 bit2 P32 bit1 P31 bit0 P30 不定 R/W アドレス : 000003H PDR4 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000004H P47 P46 P45 P44 P43 P42 P41 P40 不定 R/W PDR5 bit7 P57 bit6 P56 bit5 P55 bit4 P54 bit3 P53 bit2 P52 bit1 P51 bit0 P50 不定 R/W アドレス : 000005H PDR6 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000006H P67 P66 P65 P64 P63 P62 P61 P60 不定 R/W PDR8 bit7 bit6 bit5 bit4 bit3 bit2 - - - - - - bit1 P81 bit0 P80 不定 R/W アドレス : 000008H PDR9 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000009H P97 P96 P95 P99 P93 P92 P91 P90 不定 R/W PDRA bit7 PA7 bit6 PA6 bit5 PAA bit4 PA4 bit3 PA3 bit2 PA2 bit1 PA1 bit0 PA0 不定 R/W 不定 R/W アドレス : 00000AH PDRB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 00000BH PB7 PBB PB5 PB4 PB3 PB2 PB1 PB0 150 第 10 章 I/O ポート <注意事項> PDR8 の bit7 ~ bit2 は予約されています。常に "0" を書き込んでください。読出し時には , "X" が読み出されます。これらのビットは MB90V390HA/HB で物理的に存在しますが , MB90945 シリーズ以外のデバイスでは存在しません。 ■ ポートデータレジスタの読出し ポートデータレジスタを読み出したときに得られる値は , データ方向レジスタの対応 するビットと ( 適切ならば ) 同じ端子に接続されているリソースの状態によります。 可能なケースは以下のとおりです : DDR 値 リソース リード値 0( 入力 ) 可能 リソースの値 1( 出力 ) 可能 リソースの値 0( 入力 ) 不可 端子の値 1( 出力 ) 不可 PDR の値 151 第 10 章 I/O ポート 10.2.2 ポート方向レジスタ (DDR0 ~ DDR6, DDR8 ~ DDRB) ポート方向レジスタは , 各端子がポートとして使用しているときは , 対応する各端子 を以下のように制御します。 0: 入力モード 1: 出力モード ■ ポート方向レジスタ 図 10.2-3 に , ポート方向レジスタを示します。 図 10.2-3 ポート方向レジスタ DDR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000010H D07 D06 D05 D04 D03 D02 D01 D00 DDR1 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000011H D17 D16 D15 D14 D13 D12 D11 D10 DDR2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000012H D27 D26 D25 D24 D23 D22 D21 D20 DDR3 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000013H D37 D36 D35 D34 D33 D32 D31 D30 初期値 アクセス 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W DDR4 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000014H D47 D46 D45 D44 D43 D42 D41 D40 00000000B R/W DDR5 bit7 D57 bit6 D56 bit5 D55 bit4 D54 bit3 D53 bit2 D52 bit1 D51 bit0 D50 00000000B R/W アドレス : 000015H DDR6 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000016H D67 D66 D65 D64 D63 D62 D61 D60 00000000B R/W DDR8 bit7 bit6 bit5 bit4 bit3 bit2 - - - - - - bit1 D81 bit0 D80 00000000B R/W アドレス : 000018H DDR9 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000019H D97 D96 D95 D99 D93 D92 D91 D90 00000000B R/W DDRA アドレス : 00001AH bit7 DA7 bit6 DA6 bit5 DAA bit4 DA4 bit3 DA3 bit2 DA2 bit1 DA1 bit0 DA0 00000000B R/W DDRB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 00001BH DB7 DBB DB5 DB4 DB3 DB2 DB1 DB0 00000000B R/W <注意事項> PDR8 の bit7 ~ bit2 は予約されています。常に "0" を書き込んでください。読出し時には , "X" が読み出されます。これらのビットは MB90V390HA/HB で物理的に存在しますが , MB90945 シリーズ以外のデバイスでは存在しません。 152 第 10 章 I/O ポート ■ ポート方向レジスタの読出し ポート方向レジスタは , 一致するリソースの状態から独立して読出しが可能です。しか し , DDR 値はポートデータレジスタのリードアクセスの結果に影響を与えます。 153 第 10 章 I/O ポート 10.2.3 アナログ入力許可レジスタ (ADER0, ADER1) アナログ入力許可レジスタは , ポート 6 とポート B の各端子を以下のように制御し ます。 0: ポート入出力モード 1: アナログ入力モード 外部端子を A/D コンバータのアナログ入力として使用している場合 , 対応するビッ トを "1" に設定する必要があります。 ■ アナログ入力許可レジスタ 図 10.2-4 に , アナログ入力許可レジスタを示します。 図 10.2-4 アナログ入力許可レジスタ (ADER1/ADER0) ADER1/ADER0 アドレス 00000DH アドレス 00000CH bit15 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 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADE7 R/W ADE6 R/W ADE5 R/W ADE4 R/W ADE3 R/W ADE2 R/W ADE1 R/W ADE0 R/W 初期値 01111111 初期値 11111111 R/W :リード / ライト可能 <注意事項> bit15 (ADSEL) が "0" に設定されると , 端子 AN 0 ~ AN 7 ( ポート P60 ~ P67) は A/D コ ンバータ用入力として選択されます。このビットが "1" に設定されると , 端子 AN 8 ~ AN14 ( ポート PB0 ~ PB6) は , A/D コンバータ用入力として選択されます。 154 第 10 章 I/O ポート 10.2.4 入力レベル選択レジスタ (MB90V390HA/HB のみ ) MB90V390HA/HB では , 入力レベル選択レジスタ (ILSR) はオートモーティブヒステ リシス入力レベルから CMOS ヒステリシス入力レベルの切換えを許可します。 評価用品以外の MB90945 シリーズ ( のデバイス ) では , 入力レベルはハードワイ ヤードであり , ILSR レジスタは存在しません。MB90V390HA/HB に他の MB90945 シリーズのデバイスと同じ入力レベル構成を設定するためには ILSR に "5000H" の 値を必ず書き込んでください。評価用品以外の MB90945 シリーズのデバイスでは , ILSR レジスタアドレスへの書込みは意味を持ちません。 ■ 入力レベル選択レジスタ (MB90V390HA/HB のみ ) MB90V390HA/HB では , 入力レベル選択レジスタ (ILSR) は 0EH と 0FH に配置されます。 図 10.2-5 入力選択レジスタ (ILSR) ILSR アドレス 00000FH アドレス 00000EH bit15 bit14 ILSPB R/W ILI2C R/W bit13 bit7 bit6 bit5 IL7 R/W IL6 R/W IL5 R/W bit12 bit11 bit10 bit9 bit8 ILB R/W ILA R/W IL9 R/W IL8 R/W bit4 bit3 bit2 bit1 bit0 IL4 R/W IL3 R/W IL2 R/W IL1 R/W IL0 R/W ILRX0 ILRX1 R/W R/W 初期値 00000000 初期値 00000000 R/W :リード / ライト可能 【bit15】ILSPB ILSPB ビットが "0" に設定されている場合 , P44 の入力レベルは IL4(ILSR の bit4) に より選択されます。ILSPB ビットが "1" に設定されている場合 , P44 の入力レベルは IL4 ビットにより選択されたレベルの反転となります。初期値は "0" です。 このレジスタの初期値は "0000H" です。このため , MB90V390HA/HB では , リセッ ト後 , すべてのポートに対する入力レベルが " オートモーティブヒステリシス " に なります。MB90V390HA/HB に他の MB90945 シリーズのデバイスと同じ入力レベ ル構成を設定するためには , ILSR に必ず "5000H" の値を書き込んでください。 【bit14】ILI2C ILI2C ビットが "0" に設定されている場合 , P42/SDA および P43/SCL の入力レベルは IL4(ILSR の bit4) により選択されます。ILI2C ビットが "1" に設定されている場合 , P42/SDA および P43/SCL の入力レベルは IL4 ビットにより選択されたレベルの反転 となります。初期値は "0" です。 【bit13】ILRX0 ILRX0 ビットが "0" に設定されている場合 , P30/RX0 の入力レベルは IL3(ILSR の bit3) により選択されます。ILRX0 ビットが "1" に設定されている場合 , P30/RX0 の入力レ ベルは IL3 ビットにより選択されたレベルの反転となります。初期値は "0" です。 155 第 10 章 I/O ポート 【bit12】ILRX1 ILRX1 ビットが "0" に設定されている場合 , P21/RX1 の入力レベルは IL2(ILSR の bit2) によって選択されます。ILRX1 ビットが "1" に設定されている場合 , P21/RX1 の入力レベルは IL2 ビットにより選択されたレベルの反転となります。初期値は "0" です。 【bit11 ~ bit0】IL0 ~ ILB これらのビットは対応するポートの入力レベルを設定します。IL0 はポート 0 の入 力レベルを , ILB はポート B の入力レベルを設定します。これらのビットに "0" を 設定すると " オートモーティブヒステリシス " 入力レベルが選択され , "1" を設定す ると "CMOS ヒステリシス " 入力レベルが選択されます。初期値は "0" です。 156 第 11 章 タイムベースタイマ タイムベースタイマの機能と動作について説明し ます。 11.1 タイムベースタイマの概要 11.2 タイムベースタイマ制御レジスタ 11.3 タイムベースタイマの動作 157 第 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 2 11 12 13 14 15 16 17 2 2 2 2 TBOF セレクタ WS0 158 TBOF クリア TBC1 WS1 2 2 218 クリア コントロール TBR TBC0 2 1 1/210 ~ 1/217 セレクタ EI 2OS タイムベース分周出力 発振安定待ち完了信号 IRQ リセット 第 11 章 タイムベースタイマ 11.2 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタはタイムベースタイマの割込みの制御を行い , タ イムベースカウンタをクリアできます。 ■ タイムベースタイマ制御レジスタ (TBTC) 図 11.2-1 タイムベースタイマ制御レジスタ (TBTC) の構成 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 0000A9 H 初期値 bit8 予約 - - R/W - - R/W R/W W R/W R/W 1XX00100B TBIE TBOF TBR TBC1 TBC0 bit9 bit8 TBC1 TBC0 0 0 0 1 1 0 1 1 タイムベースタイマインターバル制御 1.024 ms (4MHz 時 ) 4.096 ms (4MHz 時 ) 16.384 ms (4MHz 時 ) 131.072 ms (4MHz 時 ) bit10 タイムベースタイマリセット TBR 読出し時 0 常に "1" 1 書込み時 全ビットを "0" にクリア 効果なし bit11 TBOF 0 1 タイムベースタイマ割込み要求フラグ 読出し時 書込み時 割込みなし このビットをクリア 割込み要求 効果なし bit12 TBIE 0 1 タイムベースタイマ割込み許可 割込み禁止 割込み許可 bit13 - 未定義 - bit14 - 未定義 - bit15 予約 R/W : リード / ライト可能 0 1 W : ライトオンリ ( リードは常に "0") X : 不定 - : 未定義 予約 - このビットには常に "1" を書き込む : 初期値 159 第 11 章 タイムベースタイマ 表 11.2-1 タイムベースタイマ制御レジスタの各ビット機能説明 ビット名 bit15 機能 予約済ビットです。TBTC レジスタにデータを書き込むときは , 必 ず "1" を書き込んでください。 予約 bit14 未定義 - bit13 未定義 - bit12 TBIE: タイムベース タイマ割込み 許可 タイムベースタイマによるインターバル割込みを許可するビット です。"1" のとき割込み許可 , "0" のとき割込みを禁止します。リ セットにより "0" に初期化します。読み書き可能なビットです。 bit11 TBOF: タイムベース タイマ割込み 要求フラグ タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のとき TBOF が , "1" になると割込み要求を発生します。TBC1, TBC0 ビットで設定されたインターバルごとに "1" にセットされま す。"0" の書込み , ストップモードへの遷移およびリセットにより クリアされます。"1" の書込みは , 意味がありません。 リードモディファイライト系命令における読出し時には "1" が読 めます。 bit10 TBR: タイムベース タイマリセット タイムベースカウンタを全ビット "0" にクリアするビットです。 "0" を書き込むことによりタイムベースカウンタをクリアします。 "1" の書込みは意味がありません。 読出し時は "1" が読めます。 TBC1, TBC0: タイムベース タイマ インターバル 制御 タイムベースタイマのインターバルを設定するビットです。 表 11.2-2 を参照してください。 bit9, bit8 表 11.2-2 に TBC1 と TBC0 の設定を示します。 表 11.2-2 タイムベースタイマインターバルの選択 160 TBC1 TBC0 原発振 4MHz 時のインターバル時間 0 0 1.024 ms 0 1 4.096 ms 1 0 16.384 ms 1 1 131.072 ms 第 11 章 タイムベースタイマ 11.3 タイムベースタイマの動作 タイムベースタイマには , ウォッチドッグタイマのクロックソース , 発振安定待ち時 間のためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり ます。 ■ タイムベースカウンタ タイムベースカウンタは , 原発振入力を 2 分周して発生させたクロック用の 18 ビット のカウンタにより構成されます。このクロックは , マシンクロックを発生するのに使用 されます。原発振が入力されている間 , タイムベースカウンタはカウント動作を続けま す。タイムベースカウンタのクリアは , パワーオンリセット , ストップモードへの遷移 または TBTC レジスタ中の TBR ビットへの "0" の書込みにより行われます。 ■ インターバル割込み機能 タイムベースカウンタの桁上がり信号により一定周期で割込みを発生します。TBTC レ ジスタ中の TBC1, TBC0 ビットで設定されるインターバル時間ごとに TBOF フラグを セットします。このフラグの書込みは , 最後にタイムベースタイマがクリアされた時間 を基準にして行われます。 ストップモードに遷移すると , タイムベースタイマは復帰時の発振安定待ち時間のタ イマとして使用されるので , TBOF フラグはモード遷移と同時にクリアされます。 161 第 11 章 タイムベースタイマ 162 第 12 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明 します。 12.1 ウォッチドッグタイマの概要 12.2 ウォッチドッグタイマの動作 163 第 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 : 発振クロック 164 21 22 28 29 210 211 212 213 214 215 216 217 218 第 12 章 ウォッチドッグタイマ ■ ウォッチドッグタイマ制御レジスタ (WDTC) WDTC bit7 アドレス : 0000A8H PONR R R W bit6 - - bit5 bit4 bit3 WRST ERST R R SRST R bit2 bit1 WTE W WT1 W bit0 初期値 . 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 に , インターバル時間の設定を示します。 これらのビットは書込み可能なビットです。 165 第 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 クロックモードに遷移することでクリアされま す。 166 第 12 章 ウォッチドッグタイマ 12.2 ウォッチドッグタイマの動作 ウォッチドッグタイマの機能により , プログラムの暴走を検出できます。 プログラムの暴走などにより , 定められた時間内にウォッチドッグタイマのアクセ スが行われない場合 , ウォッチドッグタイマはシステムをリセットします。 ■ ウォッチドッグタイマの状態遷移図 ウォッチドッグタイマには下記の 4 つの状態が存在します。 無効 :動作していません。 動作 :"0" からカウントを開始します。 停止 :カウント値を "0" で停止します。 オーバフロー :ウォッチドッグリセットを発生します。 図 12.2-1 ウォッチドッグタイマの状態遷移図 無効 ( 初期状態 ) WTE ビットに "0" 書込み リセット リセット 割込みによるストップモード解除 割込みによるタイムベースタイマモード解除 割込みによるスリープモード解除 停止 動作 カウント= 0 "0" からカウント開始 ストップモード移行 タイムベースタイマモード移行 スリープモード移行 カウンタ オーバフロー オーバフロー 常に ウォッチドッグリセットを 発生 WTE ビットに "0" 書込み 167 第 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 がストップモード , タイムベー スタイマモードまたはスリープモードから復帰すると , ウォッチドッグタイマは , クリ アされた状態からカウントを再開します。 ■ リセット時のウォッチドッグタイマの動作 あらゆる種類のリセットがかかるとウォッチドッグタイマは不活性化し , リセット解 除後も不活性化の状態が続きます。 168 第 12 章 ウォッチドッグタイマ 表 12.2-1 : ウォッチドッグタイマのクリアおよび停止する条件 リセット WDTC レジスタ WTE=0 ストップ モード スリープ モード タイムベース タイマモード モードに移行 レジスタに 書込み モードに移行 モードに移行 モードに移行 モード カウンタクリア のタイミング モード中の ウォッチドッグ 状態 無効 モード中の ウォッチドッグ リセット状態 発生しない モード解除後の ウォッチドッグ 状態 無効 N/A N/A 停止 停止 停止 ( クリア状態を ( クリア状態を ( クリア状態を 保持 ) 保持 ) 保持 ) 発生しない 発生しない 発生しない 動作 動作 動作 動作 (クリア状態から (クリア状態から (クリア状態から ( クリア状態から カウント開始 ) カウント開始 ) カウント開始 ) カウント開始 ) この表は以前のウォッチドッグ状態が動作状態にあったと仮定した場合のものです。 169 第 12 章 ウォッチドッグタイマ 170 第 13 章 16 ビット入出力タイマ 16 ビット入出力タイマの機能と動作について説明 します。 13.1 16 ビット入出力タイマの概要 13.2 16 ビット入出力タイマのレジスタ 13.3 16 ビットフリーランタイマ 13.4 アウトプットコンペア 13.5 インプットキャプチャ 171 第 13 章 16 ビット入出力タイマ 13.1 16 ビット入出力タイマの概要 MB90945 シリーズは , 16 ビットフリーランタイマ 2 本 , アウトプットコンペアモ ジュール 2 本およびインプットキャプチャ 3 本のモジュールから構成され , 6 個の入 力チャネルおよび 4 個の出力チャネルをサポートしています。ここでは , 16 ビット フリーランタイマ , アウトプットコンペアおよびインプットキャプチャについて説 明します。 ■ 16 ビットフリーランタイマ 2 本の 16 ビットフリーランタイマは 16 ビットのアップカウンタ , 制御レジスタ , プリ スケーラより構成されています。本タイマカウンタの出力値はインプットキャプチャ , アウトプットコンペアの基本時間 ( ベースタイマ ) として使用されます。 ● カウンタ動作クロックは 8 種類から選択可能 内部クロック 8 種類 : φ, φ/2,φ/4, φ/8,φ/16, φ/32, φ/64, φ/128 (φ: マシンクロック ) ● 割込みはカウンタ値のオーバフロー, コンペアレジスタ 0 または 1 との比較一致により発生 可能 ● カウンタ値はリセット , ソフトウェアクリア , コンペアレジスタ 0 による一致 (MB90V390HA/HB では , フリーランタイマ 1 はコンペアレジスタ 0 による一致ではクリ アできず , コンペアレジスタ 4 でクリアできる ) によって "0000H" に初期化できます。 ■ アウトプットコンペア ( モジュールごとに 2 チャネル ) 2 本のアウトプットコンペアは 2 本の 16 ビットコンペアレジスタ , コンペア出力用ラッ チ , 制御レジスタより構成されています。アウトプットコンペア 0 および 1 ( チャネル OUT0, OUT1, OUT2, OUT3) はフリーランタイマ 0 に割り当てられています。16 ビット フリーランタイマ値とコンペアレジスタ値が一致したとき出力レベルを反転すると共 に割込みを発生できます。 ● 各アウトプットコンペアにおいて 2 本のコンペアレジスタを独立して動作 各コンペアレジスタに対応した出力端子と割込みフラグ ● 2 本のコンペアレジスタをペアにして出力端子を制御可能 コンペアレジスタ 2 本を使用して出力端子を反転する。 ● 出力端子の初期値を設定することが可能 ● 割込みは比較一致により発生可能 172 第 13 章 16 ビット入出力タイマ ■ インプットキャプチャ ( モジュールごとに 2 チャネル ) 3 本のインプットキャプチャは独立した 2 本の外部入力端子と対応した 16 ビットキャ プチャレジスタ , 制御レジスタにより構成されています。 インプットキャプチャ0( チャ ネル IN0, IN1) はフリーランタイマ 0 に , インプットキャプチャ1 およびインプットキャ プチャ 2( チャネル IN2, IN3, IN4, IN5) はフリーランタイマ 1 に割り当てられています。 外部入力端子より入力された信号の任意エッジを検出することにより , 16 ビットフ リーランタイマ値をキャプチャレジスタに保持し , 同時に割込みを発生できます。 ● 外部入力信号のエッジを選択可能 立上りエッジ , 立下りエッジ , 両エッジから選択可能 ● 2 本のインプットチャネルは独立して動作可能 ● 割込みは外部入力信号の有効エッジにより発生可能 インプットキャプチャの割込みによりインテリジェント I/O サービスを起動できます。 ■ 16 ビット入出力タイマのブロックダイヤグラム 図 13.1-1 に , 16 ビット入出力タイマのブロックダイヤグラムを示します。 図 13.1-1 16 ビット入出力タイマのブロックダイヤグラム 制御ロジック 各ブロックへ 割込み 16 ビットフリ-ランタイマ 0/1 16 ビットタイマ FRCK0 FRCK1 クリア アウトプットコンペア 0/2 バス コンペアレジスタ 0 T Q T Q アウトプットコンペア 1/3 コンペアレジスタ 1 OUT0 OUT2 OUT4 OUT6 OUT1 OUT3 OUT5 OUT7 インプットキャプチャ 0/2/4 キャプチャレジスタ 0 エッジ選択 IN0 IN2 IN4 エッジ選択 IN1 IN3 IN5 インプットキャプチャ 1/3/5 キャプチャレジスタ 1 173 第 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 174 bit0 003530H 003532H OCCP0/1 アウトプットコンペアレジスタ 0/1 003534H 003536H OCCP2/3 アウトプットコンペアレジスタ 2/3 000058H 000059H OCS1 OCS0 制御ステータスレジスタ 0/1 00005AH 00005BH OCS3 OCS2 制御ステータスレジスタ 2/3 第 13 章 16 ビット入出力タイマ ■ 16 ビットインプットキャプチャのレジスタ一覧 bit15 bit0 003520H 003522H IPCP0/1 インプットキャプチャデータレジスタ 0/1 003524H 003526H IPCP2/3 インプットキャプチャデータレジスタ 2/3 003528H 00352AH IPCP4/5 インプットキャプチャデータレジスタ 4/5 000054H 000055H ICS01 ICS23 0035C9H ICE01 ICE45 インプットキャプチャ制御ステータスレジスタ 4/5 インプットキャプチャエッジレジスタ 0/1 ICE23 0035CAH 0035CBH インプットキャプチャ制御ステータスレジスタ 2/3 ICS45 000056H インプットキャプチャ制御ステータスレジスタ 0/1 インプットキャプチャエッジレジスタ 2/3 インプットキャプチャエッジレジスタ 4/5 175 第 13 章 16 ビット入出力タイマ 13.3 16 ビットフリーランタイマ 16 ビットフリーランタイマは 16 ビットのアップカウンタと制御ステータスレジス タにより構成されています。16 ビットフリーランタイマのカウント値はアウトプッ トコンペア , インプットキャプチャの基本時間 ( ベースタイマ ) として使用されま す。 • カウントクロックは 8 種類から選択可能です。 • カウンタオーバフロー割込みを発生できます。 • モード設定によりアウトプットコンペアのコンペアレジスタ 0 の値との一致によ るカウンタの初期化が可能です。 • 2 つの分割したタイマが利用できます。 ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 13.3-1 16 ビットフリーランタイマのブロックダイヤグラム 割込み要求 IVF バ ス IVFE STOP MODE CLR CLK2 CLK1 CLK0 分周器 コンパレータ 0/1 16 ビットアップカウンタ クロック カウント値出力 ( 注意事項 ) この図は , タイマ 1 でも有効。 タイマ 0 は , ICU0/ICU1 および OCU0/OCU1/OCU2/OCU3 に接続 タイマ 1 は , ICU2/ICU3/ICU4/ICU5 に接続 176 FRCK0 FRCK1 T15 ~ T00 第 13 章 16 ビット入出力タイマ 13.3.1 タイマデータレジスタ (TCDT0, TCDT1) タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出せるレ ジスタです。カウンタ値はリセット時に "0000H" にクリアされます。このレジスタ に書き込むことで , タイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってく ださい。このレジスタはワードアクセスしてください。 ■ フリーランタイマのタイマデータレジスタ 図 13.3-2 フリーランタイマのタイマデータレジスタ (TCDT0, TCDT1) TCDT0/TCDT1 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 352CH 352DH 353CH 353DH 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/1 Tn0 タイマデータレジスタ 0 Tn1 タイマデータレジスタ 1 Tn2 タイマデータレジスタ 2 Tn3 タイマデータレジスタ 3 Tn4 タイマデータレジスタ 4 Tn5 タイマデータレジスタ 5 Tn6 タイマデータレジスタ 6 Tn7 タイマデータレジスタ 7 n = 0, 1 bit8 ~ bit15 TCDT0/1 R/W:リード / ライト可能 上位ビット Tn8 タイマデータレジスタ 8 Tn9 タイマデータレジスタ 9 Tn10 タイマデータレジスタ 10 Tn11 タイマデータレジスタ 11 Tn12 タイマデータレジスタ 12 Tn13 タイマデータレジスタ 13 Tn14 タイマデータレジスタ 14 Tn15 タイマデータレジスタ 15 n = 0, 1 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • タイマ制御ステータスレジスタのクリアビット (CLR) による初期化 • アウトプットコンペアのコンペアレジスタ 0 とタイマカウンタ値の一致による初期 化 MB90V390HA/HB では , フリーランタイマ 1 がコンペアレジスタ 0 との一致により 初期化できませんが , コンペアレジスタ 4 との一致により初期化できます。詳細に ついては , MB90390 シリーズハードウェアマニュアルを参照してください。 177 第 13 章 16 ビット入出力タイマ 13.3.2 タイマ制御ステータスレジスタ (TCCSL0, TCCSL1) タイマ制御ステータスレジスタは , 16 ビットフリーランタイマの動作モードの設定 , 起動・停止や割込みの制御を行います。 ■ フリーランタイマのタイマ制御ステータスレジスタ ( 下位 ) 図 13.3-3 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSL0, TCCSL1) TCCSL0/TCCSL1 アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00352EH 00353EH 0 0 0 0 0 0 0 0B R/W R/W R/W R/W R/W R/W R/W R/W bit2 bit1 bit0 CLK2 CLK1 CLK0 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 カウントクロック選択 φ = MCU clock bit3 CLR 0 1 クリアタイマ 読出し時 書込み時 影響なし タイマを"0000B"にクリア 常に "0" を読込み bit4 タイマのリセット条件を設定 MODE 0 リセットまたはクリアビットにより初期化 1 リセット, クリアビットまたはコンペアレジスタ0(4)により初期化 bit5 タイマ停止 STOP 0 カウンタ許可 1 カウンタ禁止 ( 停止 ) bit6 割込み許可ビット IVFE 0 割込み禁止 1 割込み許可 bit7 IVF R/W 178 割込み要求フラグビット 読出し時 書込み時 : リード / ライト可能 0 割込みなし このビットをクリア : 初期値 1 割込み要求 影響なし 第 13 章 16 ビット入出力タイマ 表 13.3-1 フリーランタイマのタイマ制御ステータスレジスタ ( 下位 ) ビット名 IVF: 割込み bit 7 要求 フラグ ビット IVFE: 割込み bit 6 許可 ビット STOP: bit 5 タイマ 停止 bit 4 機能 • • • • 割込み要求フラグビットとクリアビット "0" 書込み:可能な割込みは削除 "1" 書込み:影響なし リードモディファイライトサイクル中は必ず "1" を読み出せます。 • 割込み要求許可 • "0" 書込み : 割込み禁止 • "1" 書込み : 割込み許可 • タイマを停止するために使用 • "0" 書込み : カウンタ許可 ( 動作 ) • "1" 書込み : カウンタ禁止 ( 停止 ) MODE: • "0": リセットまたはクリアビットで初期化 リセット • "1": リセット , クリアビット , コンペアレジスタ 0 で初期化 条件設定 MB90V390HA/HB では , フリーランタイマ 1 はコンペアレジスタ 0 との 一致で初期化できませんが , コンペアレジスタ 4 の一致で初期化できま す。 詳細については , MB90390 シリーズハードウェアマニュアルを参照してく ださい。 CLR: • 16 ビットフリーランタイマを "0000H" 値へ初期化 クリア • "0" 書込み : 影響なし タイマ • "1" 書込み : カウンタが初期化されます ( 注意事項 ) • タイマカウンタが停止している間 , カウンタ値を初期化するには , "0000H" bit 3 をタイマデータレジスタに書き込んでください。 • "1" を書き込んだ後 , 次のカウントクロックまでにこのビットに "0" 書込み を行うと , カウンタ値の初期化は行われません。 CLK2, CLK1, CLK0: カウント クロック 選択 bit 2 ~ bit0 16 ビットフリーランタイマ用カウントクロックを選択するために使用します。 値がこのビットに書き込まれた後 , 直ちにクロックがアップデートされます。そ のため , このビットに値を書き込む前に , 入力キャプチャ動作が停止しているこ とを確認してください。 CLK2 CLK1 CLK0 カウント クロック φ= 20 MHz φ= 16 MHz φ= 8 MHz φ= 4 MHz φ= 1 MHz 0 0 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 179 第 13 章 16 ビット入出力タイマ ■ フリーランタイマのタイマ制御ステータスレジスタ ( 上位 ) 図 13.3-4 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSH0/TCCSH1) TCCSH0/TCCSH1 アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 00352FH 00353FH 0xxxxxxx R/W - - - - - - ECKE R/W : リード / ライト可能 - : 未定義 : 初期値 B 外部クロック許可 0 内部タイムクロック 1 FRCK0, FRCK1 からの外部クロック 表 13.3-2 フリーランタイマのタイマ制御ステータスレジスタ ( 上位 ) ビット名 ECKE bit 15 bit 14 ~ bit8 180 機能 このビットは内部タイムクロックと FRCK0, FRCK1 からの外部クロッ クの間で選択されます。 "0" を書込み : 内部クロックを選択 "1" を書込み : 外部クロックを選択 未定義 - 第 13 章 16 ビット入出力タイマ 13.3.3 16 ビットフリーランタイマの動作 16 ビットフリーランタイマはリセット解除後にカウンタ値 "0000H" よりカウントを 開始します。このカウンタ値が 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作 カウンタ値は , 次の 5 つの条件でクリアされます。 • オーバフローが発生したとき • アウトプットコンペアレジスタ 0 値 (4) 値 と一致したとき ( モード設定が必要 ) • 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき • 停止中に TCDT レジスタに "0000H" を書き込んだとき • リセット時 割込みはオーバフローが発生したときと , アウトプットコンペアレジスタ 0 (4) 値と一 致したときに発生できます ( 比較一致割込みはモード設定が必要です ) 。 ■ オーバフローによるカウンタクリア 図 13.3-5 オーバフローによるカウンタクリア カウンタ値 オーバフロー FFFF H BFFF H 7FFF H 3FFF H 0000 H 時間 リセット 割込み 181 第 13 章 16 ビット入出力タイマ ■ アウトプットコンペアレジスタ 0 (4) 値と一致したときのカウンタクリア 図 13.3-6 アウトプットコンペアレジスタ 0 (4) 値と一致したときのカウンタクリア カウンタ値 FFFF H 一致 BFFF H 一致 7FFF H 3FFF H 時間 0000 H リセット コンペア レジスタ値 BFFFH 割込み ■ 16 ビットフリーランタイマのタイミング ● 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 ) カウンタのクリアはリセット , ソフトウェア , アウトプットコンペアレジスタ 0 (4) と の一致で行えます。リセットとソフトウェアでのカウンタクリアはクリア発生ととも に行われますが , アウトプットコンペアレジスタ 0 (4) との一致によるカウンタクリア はカウントタイミングに同期して行われます。 図 13.3-7 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 ) φ コンペアレジスタ値 N 比較一致 カウンタ値 182 N 0000 第 13 章 16 ビット入出力タイマ 13.4 アウトプットコンペア アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 本のコ ンペア出力端子および 1 本の制御レジスタから構成されています。アウトプットコ ンペアレジスタに設定された値と 16 ビットフリーランタイマ値との一致により , 端 子の出力レベルの反転と , 割込みの発生ができます。 ■ アウトプットコンペア • MB90945 シリーズでは , 2 つの異なるアウトプットコンペアモジュールが使用でき ます。 • 各モジュールにアウトプットコンペアレジスタは全部で 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 でも有効です。 CMP0EXT 信号は , 図 13.4-5 に示します。 183 第 13 章 16 ビット入出力タイマ 13.4.1 アウトプットコンペアのレジスタ (OCCP0 ~ OCCP3) 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。レジ スタ値は初期値不定ですので設定してから起動許可してください。本レジスタは ワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致 したとき , コンペア信号が発生してアウトプットコンペア割込みフラグをセットしま す。また , 出力許可をしている場合はコンペアレジスタに対応した出力レベルを反 転します。 コンペアレジスタに再書込みするために , コンペア割込みルーチンかコンペア動作 以内の範囲で不可となります。同期比較一致とコンペアレジスタの書込みが発生し ないように注意してください。 ■ アウトプットコンペアレジスタ 図 13.4-2 アウトプットコンペアレジスタ (OCCP0 ~ OCCP3) の構成 アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 3530 H 3531 H 3532 H 3533 H 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 3534 H 3535 H 3536 H 3537 H 3538 H 3539 H 353AH 353BH 356AH 356BH 356CH 356EH OCCP0 OCCP1 OCCP2 OCCP33 初期値 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 bit8 ~ bit15 R/W:リード / ライト可能 184 OCCPn 上位ビット C08 コンペアデータレジスタ 8 C09 コンペアデータレジスタ 9 C10 コンペアデータレジスタ 10 C11 コンペアデータレジスタ 11 C12 コンペアデータレジスタ 12 C13 コンペアデータレジスタ 13 C14 コンペアデータレジスタ 14 C15 コンペアデータレジスタ 15 n = 0, 1, 2, 3 B 第 13 章 16 ビット入出力タイマ 13.4.2 アウトプットコンペアの制御ステータスレジスタ (OCS0, OCS2) 制御ステータスレジスタは , アウトプットコンペアの動作モードの設定 , 起動・停止 や割込みの制御 , 外部出力端子の設定を行います。 ■ アウトプットコンペアの制御ステータスレジスタ ( 下位 ) 図 13.4-3 アウトプットコンペアの制御ステータスレジスタ (OCS0, OCS2) アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000058 H 00005AH 00005CH R/W R/W R/W R/W 003568 H OCS0 OCS4 OCS2 OCS6 初期値 - - R/W R/W 0 0 0 0 X X 0 0B bit0 CSTn ユニット n 用タイマの比較 0 ユニット n 用コンペア動作禁止 1 ユニット n 用コンペア動作許可 bit1 CSTm ユニット m 用タイマの比較 0 ユニット m 用コンペア動作禁止 1 ユニット m 用コンペア動作許可 bit4 ICEn ユニット n 用コンペア割込み許可 0 ユニット n 用出力コンペア割込み禁止 1 ユニット n 用出力コンペア割込み許可 bit5 ICEm ユニット m 用コンペア割込み許可 0 ユニット m 用出力コンペア割込み禁止 1 ユニット m 用出力コンペア割込み許可 bit6 ICPn ユニット n 用比較一致許可 0 ユニット n 用比較一致なし 1 ユニット n 用比較一致 bit7 R/W X - : リード / ライト可能 : 不定 : 未定義 : 初期値 ICPm ユニット m 用比較一致許可 0 ユニット m 用比較一致なし 1 ユニット m 用比較一致 n = 0, 2, 4, 6 m = 1, 3, 5, 7 185 第 13 章 16 ビット入出力タイマ 表 13.4-1 アウトプットコンペアの制御ステータスレジスタ ( 下位 ) ビット名 bit 7 ICPm: ユニット m 用 比較一致許可 ICPn: ユニット n 用 比較一致許可 bit 6 bit 5 ICEm: ユニット m 用 コンペア 割込み許可 bit 4 ICEn: ユニット n 用 コンペア 割込み許可 bit 3, bit2 未定義 bit 1 CSTm: ユニット m 用 タイマの比較 CSTn: ユニット n 用 タイマの比較 bit 0 n = 0, 2 186 m = 1, 3 機能 • アウトプットコンペア割込みフラグとして使用します。コンペアレジ スタ値が 16 ビットフリーランタイマ値と一致すると , "1" がこのビッ トに設定されます。割込み要求ビット (ICEm と ICEn) が許可のとき , ICPm と ICPn ビットが設定されると , アウトプットコンペア割込みが 発生します。"0" 書込みで解除されます。 • "0": 比較一致なし • "1": 比較一致 • "1" 書込みは影響しません。 • リードモディファイライト系命令では , 必ず "1" を読出し ( 注意事項 ) ICPn: アウトプットコンペア n に対応 ICPm: アウトプットコンペア m に対応 • アウトプットコンペア割込み許可フラグとして使用します。"1" が書 き込まれると割込みフラグ (ICPm または ICPn) が設定されるとき , ア ウトプットコンペア割込みが発生します。 • "0" 書込み : アウトプットコンペア割込み禁止 • "1" 書込み : アウトプットコンペア割込み許可 ( 注意事項 ) ICEn: アウトプットコンペアユニット n に対応 ICEm: アウトプットコンペアユニット m に対応 - • コンペア動作が許可される前に , コンペアレジスタを許可するために 使用します。 • "0" 書込み : コンペア動作禁止 • "1" 書込み : コンペア動作許可 ( 注意事項 ) コンペア動作が許可される前に , 値がコンペアレジスタに書き込まれ ることを確認してください。 CSTn: アウトプットコンペア n に対応 CSTm: アウトプットコンペア m に対応 アウトプットコンペアは , 16 ビットフリーランタイマクロックに同調 するため , 16 ビットフリーランタイマが停止すると , コンペア動作が 止まります。 第 13 章 16 ビット入出力タイマ ■ アウトプットコンペアの制御ステータスレジスタ ( 上位 ) 図 13.4-4 アウトプットコンペアの制御ステータスレジスタの構成 (OCS1/OCS3) アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000059 H 00005BH 00005DH R/W 003569 H OCS1 OCS5 OCS3 OCS7 初期値 - - R/W R/W R/W R/W R/W 0XX00000B bit8 OTDn ユニット n 用出力端子レベル選択 0 ユニット n 用コンペア端子出力を "0" に設定 1 ユニット n 用コンペア端子出力を "1" に設定 bit9 OTDm ユニット m 用出力端子レベル選択 0 ユニット m 用コンペア端子出力を "0" に設定 1 ユニット m 用コンペア端子出力を "1" に設定 bit10 OTEn ユニット n 用出力端子選択 0 ユニット n の対応端子用汎用ポート 1 ユニット n 用出力コンペア端子を出力 bit11 OTEm R/W X - : リード / ライト可能 : 不定 : 未定義 : 初期値 ユニット m 用出力端子選択 0 ユニット m の対応端子用汎用ポート 1 ユニット m 用出力コンペア端子を出力 bit15 bit12 CMOD1 CMOD0 0 0 端子用比較モード定義 詳細については表 13.4-3 を参照して ください。 n = 0, 2, 4, 6 m = 1, 3, 5, 7 187 第 13 章 16 ビット入出力タイマ 表 13.4-2 アウトプットコンペアの制御ステータスレジスタ ( 上位 ) ビット名 bit 15, bit12 機能 CMOD0, CMOD1: 端子用比較モード 定義 bit 14, bit13 未定義 bit 11 OTEm: ユニット m 用出力 端子選択 bit 10 bit 9 bit 8 n = 0, 2 端子出力値の動作モードを設定します。設定されたモードによって レベルは異なるコンペアレジスタとの一致を反転させます。表 13.4-3 と「13.4.3 16 ビットアウトプットコンペアの動作」を参照してくだ さい。 - OTEn: ユニット n 用出力 端子選択 OTDm: ユニット m 用出力 端子レベル選択 OTDn: ユニット n 用出力 端子レベル選択 アウトプットコンペア出力端子を許可するために使用します。初期 値は "0" です。 • "0": 汎用ポート • "1": アウトプットコンペア端子出力 ( 注意事項 ) OTEn: アウトプットコンペア n に対応 OTEm: アウトプットコンペア m に対応 出力として指定する場合 , ポート方向レジスタの対応するビット は必ず "1" に設定されなければなりません。 コンペア端子出力が許可のとき , 端子出力レベルを変えるために使用 します。コンペア出力端子の初期値は "0" です。値が書き込まれる前 にコンペア動作が停止することを確認してください。リードのとき , このビットはアウトプットコンペア端子出力を表示します。 • "0" 書込み : コンペア端子出力に "0" を設定 • "1" 書込み : コンペア端子出力に "1" を設定 ( 注意事項 ) OTDn: アウトプットコンペア n に対応 OTDm: アウトプットコンペア m に対応 m = 1, 3 表 13.4-3 CMOD1, CMOD0 のビットの機能 出力端子と比較一致対象 OCCP レジスタ番号の対応 OCS1 Register OCCPx CMOD1 CMOD0 OUT0 X 0 0 1 X 1 0 0/1 CMOD0 OUT2 OCS3 CMOD1 188 OUT1 Register OCCPx OUT3 0 0 2 3 0 1 2 2/3 1 0 0/2 0/3 1 1 0/2 0/2/3 第 13 章 16 ビット入出力タイマ 図 13.4-5 出力選択のブロックダイヤグラム (OCU モジュール 1) コンペア制御 2 OUT2 CMOD1 CMP0EXT CMOD0 OUT3 コンペア制御 3 CMOD1, CMOD0 = 10 の場合 , OCU モジュール 1 には , アウトプットコンペアレジス タ 0 での一致が要求され , モジュール 0 からの比較結果は CMP0EXT 信号により , 内的 に運ばれます。これは , モジュール 0 自身にはあてはまりません。ここでは , レジスタ として OCCP0 と OCCP1 以外は使用されません。 189 第 13 章 16 ビット入出力タイマ 13.4.3 16 ビットアウトプットコンペアの動作 16 ビットアウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と 16 ビットフリーランタイマの値との一致により , 割込み要求フラグをセットすると ともに , 出力レベルを反転できます。CMOD0, CMOD1 ビットは , 各端子に対応する コンペアレジスタを定義するために使われます。 ■ CMOD1, CMOD0 = 00B のときの出力波形例 CMOD1, CMOD0 = 00B のとき , コンペアレジスタに対応する端子の出力レベルはレジ スタ値とのすべての一致を反転させます。各出力レベルは , 1 つのコンペアレジスタで 制御されます。 OUT0: レベルは , アウトプットコンペアレジスタ 0 との一致で反転します。 OUT1: レベルは , アウトプットコンペアレジスタ 1 との一致で反転します。 図 13.4-6 CMOD1, CMOD0 = 00B のときの出力波形例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OUT0 OUT1 コンペア 0 割込み コンペア 1 割込み ( 注意事項 ) この図では , どちらの端子も初期値は "0" です。 ■ CMOD1, CMOD0 = 01B のときの 2 コンペアレジスタでのサンプル出力波形 CMOD1, CMOD0 = 01B のとき , コンペアレジスタ 0 (2) と対応する端子の出力レベルは レジスタ値が一致するごとに反対になります。これは , CMOD1, CMOD0 = 00B のとき でも全く同じです。しかし , 第 2 端子の出力レベルはコンペアレジスタ 0 かコンペアレ ジスタ 1 (3) との一致により反対になります。これにより , コンペアレジスタ 0 で示さ れたエッジとコンペアレジスタ 1 (3) で示された他のエッジによってパルスされた信号 を明確にします。逆もまた同様です。両コンペアレジスタが同じ値をとる場合は , CMOD1, CMOD0 = 00B のケースと同じです。 190 第 13 章 16 ビット入出力タイマ 異なる周波数でのパルス幅変調信号は , フリーランタイマ (TCCS0/TCCS1 レジスタの MODE ビット ) と対応したコンペアレジスタ一致に基づく , リセットオプションを付 加したモードの共同使用により明示されます。 OUT0 (2): このレベルはアウトプットコンペアレジスタ 0 (2) との一致によってのみ リバースされます。 OUT1 (3): このレベルはアウトプットコンペアレジスタ 0 (2) かアウトプットコンペ アレジスタ 1 (3) との一致によってリバースされます。 図 13.4-7 CMOD1, CMOD0 = 01B のときのサンプル出力波形 ( 一致によるタイマリセットなし ) カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OUT0 OUT1 ( 注意事項 ) この図では , 両端子ともに初期値は "0" です。 図 13.4-8 CMOD1, CMOD0 = 01B のときのサンプル出力波形 ( 一致によるタイマリセットあり ) カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OUT0 OUT1 ( 注意事項 ) この図では , 両端子ともに初期値は "0" です。 191 第 13 章 16 ビット入出力タイマ ■ CMOD1, CMOD0 = 10B のときのサンプル出力波形 前述のコンペアレジスタの代わりに , CMOD1, CMOD0 = 10B で示される動作モードは , 3 つのパルス幅変調された信号の使用時に用います。このモードを OCU モジュール 1 に設定する場合 , コンペアレジスタ 0 でのタイマ値の一致により , OUT2 と OUT3 を反 転します。第 3 パルス信号では , OCU モジュール 0 の CMOD1, CMOD0 ビットは "01B" に設定してください。 OCS1: CMOD1, CMOD0 = 01B のとき OUT0: このレベルは , アウトプットコンペアレジスタ 0 との一致によってのみ反転さ れます。 OUT1: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア レジスタ 1 との一致によって反転されます。 OCS3: CMOD1, CMOD0 = 10B のとき OUT2: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア レジスタ 2 との一致によって反転されます。 OUT3: このレジスタは , アウトプットコンペアレジスタ 0 またはアウトプットコンペ アレジスタ 3 との一致によって反転されます。 図 13.4-9 OCS1.CMOD1, CMOD0 = 01B, OCS3.CMOD1, CMOD0 = 10B のときの サンプル出力波形 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OCCP2 値 3FFFH OCCP3 値 5FFFH OUT0 OUT1 OUT2 OUT3 ( 注意事項 ) この図では , 全端子共に初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。 192 第 13 章 16 ビット入出力タイマ ■ CMOD1, CMOD0 = 11B のときのサンプル出力波形 CMOD1, CMOD0 = 11B のとき , OUT3 端子の出力レベルは , コンペアレジスタ 0, 2, 3 に よって反転されます。OUT1 端子では , この決定は CMOD1, CMOD0 = 01B と同じです ( 表 13.4-3 を参照してください )。 OUT0: このレベルは , コンペアレジスタ 0 との一致によってのみ反転されます。 OUT1: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 1 との一致によっ て反転されます。 OUT2: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 2 との一致によっ て反転されます。 OUT3: このレベルは , コンペアレジスタ 0, コンペアレジスタ 2 またはコンペアレジス タ 3 との一致によって反転されます。 図 13.4-10 OCS1.CMOD1, CMOD0 = 11B, OCS3.CMOD1, CMOD0 = 11B のときの サンプル出力波形 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット OCCP0 値 BFFFH OCCP1 値 7FFFH OCCP2 値 3FFFH OCCP3 値 5FFFH OUT0 OUT1 OUT2 OUT3 ( 注意事項 ) この図では , 全端子共に初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。 193 第 13 章 16 ビット入出力タイマ ■ アウトプットコンペアのタイミング アウトプットコンペアは , フリーランタイマと設定したアウトプットコンペアレジス タの値が一致したときに比較一致信号が発生して , 出力値を反転するとともに割込み を発生できます。比較一致時の出力反転タイミングはカウンタのカウントタイミング に同期して行われます。 ● コンペアレジスタ書換え時のコンペア動作 アウトプットコンペアレジスタ書換え時のカウンタ値とはコンペアしません。 ● アウトプットコンペアの割込みタイミング 図 13.4-11 アウトプットコンペアの割込みタイミング φ カウンタ値 N コンペアレジスタ値 N+1 N 比較一致 割込み ● アウトプットコンペアの出力端子変化タイミング 図 13.4-12 アウトプットコンペアの出力端子変化タイミング カウンタ値 コンペアレジスタ値 比較一致信号 端子出力 194 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 キャプチャデータレジスタ 1 エッジ検出 ICP1 ICP0 ICE1 IEI1 IEI0 IN1 ICE0 割込み 割込み ( 注意事項 ) 上の図は , キャプチャユニット 2/3 とキャプチャユニット 4/5 にも有効です。 195 第 13 章 16 ビット入出力タイマ 13.5.1 インプットキャプチャのレジスタ (IPCP0 ~ IPCP5) インプットキャプチャのレジスタは , 次の 3 つがあり , 対応した外部端子入力波形の 有効エッジを検出したとき 16 ビットフリーランタイマ値を保持するレジスタです ( ワードアクセスしてください。書込みはできません ) 。 • インプットキャプチャデータレジスタ • インプットキャプチャ制御ステータスレジスタ • インプットキャプチャエッジレジスタ ■ インプットキャプチャデータレジスタ 図 13.5-2 インプットキャプチャデータレジスタ (IPCP) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 3520 H . . . 352BH R R R R R R R R R R R R R R R R IPCP0 IPCP1 : IPCP5 初期値 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 : 196 リードオンリ 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 インプットキャプチャ制御ステータスレジスタ (ICS01, ICS23, ICS45) アドレス bit15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 000054 H 000055 H 000056 H R/W R/W R/W R/W R/W R/W R/W R/W ICS01 ICS23 ICS45 初期値 0 0 0 0 0 0 0 0B bit9, bit1 bit8, bit0 EGn1 EGn0 0 0 エッジ選択ビット ( インプットキャプチャ n) エッジ検出なし ( ストップ ) 0 1 立上りエッジ検出 1 0 立下りエッジ検出 1 1 両エッジ検出 bit11, bit3 bit10, bit2 EGm1 EGm0 0 0 エッジ選択ビット ( インプットキャプチャm) エッジ検出なし ( ストップ ) 0 1 立上りエッジ検出 1 0 立下りエッジ検出 1 1 両エッジ検出 bit12,bit4 ICEn 割込み許可ビット ( インプットキャプチャ n) 0 割込み禁止 1 割込み許可 bit13,bit5 ICEm 割込み許可ビット ( インプットキャプチャ m) 0 割込み禁止 1 割込み許可 bit14,bit6 ICPn 割込み要求フラグビット ( インプットキャプチャ n) 読出し時 書込み時 0 有効検出なし このビットをクリア 1 有効検出 影響なし bit15,bit7 ICPm R/W : リード / ライト可能 : 初期値 割込み要求フラグビット ( インプットキャプチャ m) 0 読出し時 有効検出なし 書込み時 このビットをクリア 1 有効検出 影響なし n = 0, 2, 4 m = 1, 3, 5 197 第 13 章 16 ビット入出力タイマ 表 13.5-2 インプットキャプチャ制御ステータスレジスタビット ( 上位・下位 ) ビット名 ICPn+1/3: 割込み要求フラグ ビット ( インプット キャプチャ n+1/3) • インプットキャプチャ n, m 用割込み要求フラグとして使用 します。 • 外部入力端子の有効エッジ決定で "1" が設定されます。 • 割込み許可ビット (ICEn+1/3) が設定されると , 有効エッジ 決定で割込みが発生します。 • "0" 書込みはこのビットを解除します。 • "1" 書込みは影響しません。 • リードモディファイライト動作では必ず "1" を読み出しま す。 ICPn/2: 割込み要求フラグ ビット ( インプット キャプチャ n/2) • インプットキャプチャ n, m 用割込み要求フラグとして使用 します。 • 外部入力端子の有効エッジ決定で "1" が設定されます。 • 割込み許可ビット (ICEn/2) が設定されると , 有効エッジ決 定で割込みが発生します。 • "0" 書込みはこのビットを解除します。 • "1" 書込みは影響しません。 • リードモディファイライト動作では必ず "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: エッジ選択ビット ( インプットキャプ チャ m) • インプットキャプチャ n+1/3 用外部入力の有効エッジ極性 を指定するために使用されます。 • インプットキャプチャ動作を許可するためにも使用されま す。 bit9, bit8, bit1, bit0 EGn1, EGn0 / EG21, EG20: エッジ選択ビット ( インプットキャプ チャ n) • インプットキャプチャ n/2 用外部入力の有効エッジ極性を 指定するために使用されます。 • インプットキャプチャ動作を許可するためにも使用されま す。 bit15, bit7 bit14, bit6 n = 0, 4 198 機能 第 13 章 16 ビット入出力タイマ ■ インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) 図 13.5-4 インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) 初期値 bit15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 アドレス 0035C9 H 0035CAH 0035CBH - - - - - IUCE IEIm IEIn - - - - - R/W R R X X X X X 0*x x B * ICE01 and ICE45 ( その他は "X" です。) bit8,bit0 有効エッジ表示ビット ( 入力キャプチャ n) IEIn 0 立下りエッジ検出 1 立上りエッジ検出 bit9,bit1 有効エッジ表示ビット ( 入力キャプチャ m) IEIm R/W : リード / ライト可能 R : リードオンリ - : 未定義 : 初期値 0 立下りエッジ検出 1 立上りエッジ検出 bit10 ( 入力キャプチャ 1, 5 のみ ) IUCE UART3 への入力キャプチャ接続許可 0 外部入力キャプチャ接続 1 入力キャプチャへの UART3 接続 n = 0, 2, 4 m = 1, 3, 5 199 第 13 章 16 ビット入出力タイマ 表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 ) ビット名 bit15 ~ bit11, 未定義 bit7 ~ bit3 - bit10 IUCE1/5: • インプットキャプチャユニット 1, 5 のキャプチャソースを選択し UART3 へのイン ます。UART3-LIN 動作によって使用されます。 プットキャプチャ • "0" 書込み : キャプチャソースは外部です。 接続許可 • "1" 書込み : キャプチャソースは UART3 です。 bit2 MB90947A, MB90 • インプットキャプチャユニット 3 のキャプチャソースを選択しま F947(A) および す。UART2-LIN 動作によって使用されます。 MB90F949 (A): • "0" 書込み : キャプチャソースは外部です。 未定義 • "1" 書込み : キャプチャソースは UART2 です。 上記以外のデバイ ス: IUCE3: UART2 へのイ ンプットキャプ チャ接続許可 bit9, bit1 bit8, bit0 n = 0, 2, 4 200 機能 IEIm: 有効エッジ 表示ビット • キャプチャレジスタ IPCP1, IPCP3, IPCP5 の有効エッジ表示ビッ トで , 立上りまたは立下りエッジの検出を表示します。 • "0": 立下りエッジが検出 • "1": 立上りエッジが検出 • リードオンリです。 ( 注意事項 ) EGm1, EGm0 = 00B のとき , 読出し値に意味はありません。 IEIn: 有効エッジ 表示ビット • キャプチャレジスタ IPCP0, IPCP2, IPCP4 の有効エッジ表示ビッ トで , 立上りまたは立下りエッジの検出を表示します。 • "0": 立下りエッジが検出 • "1": 立上りエッジが検出 • リードオンリです。 ( 注意事項 ) EGn1, EGn0 = 00B のとき , 読出し値に意味はありません。 m = 1, 3, 5 第 13 章 16 ビット入出力タイマ 13.5.2 16 ビットインプットキャプチャの動作 16 ビットインプットキャプチャは設定された有効エッジを検出すると 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することとが できます。 ■ インプットキャプチャの取込みタイミング例 • キャプチャ 0= 立上りエッジ • キャプチャ 1= 立下りエッジ • キャプチャ例 = 両エッジ ( 例として ) 図 13.5-5 インプットキャプチャの取込みタイミング例 カウンタ値 FFFF H BFFF H 7FFF H 3FFF H 時間 0000 H リセット IN0 IN1 IN 例 キャプチャ 0 不定 キャプチャ 1 不定 キャプチャ例 不定 3FFF H 7FFFH BFFFH 3FFF H キャプチャ 0 割込み キャプチャ 1 割込み キャプチャ割込み 201 第 13 章 16 ビット入出力タイマ ■ インプットキャプチャ入力タイミング 図 13.5-6 に入力信号に対するキャプチャタイミングを示します。 図 13.5-6 入力信号に対するキャプチャタイミング φ カウンタ値 インプット キャプチャ入力 N N+1 有効エッジ キャプチャ信号 キャプチャレジスタ 割込み 202 N+1 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 16 ビットリロードタイマ ( イベントカウント機能 付 ) の機能と動作について説明します。 14.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 14.2 16 ビットリロードタイマのレジスタ 14.3 16 ビットリロードタイマの内部 / 外部クロック動作 14.4 16 ビットリロードタイマのアンダフロー動作 14.5 16 ビットリロードタイマの出力端子機能 14.6 カウンタの動作状態 203 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 14.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ スタ , 入力端子 1 本 (TIN0), 出力端子 1 本 (TOT0), 制御レジスタで構成されていま す。入力クロックとして内部クロック 3 種類と外部クロックを選択できます。 ■ 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 出力端子 (TOT0) には , リロードモード時にはトグル出力波形を出力し , ワンショット モード時にはカウント中を示す矩形波を出力します。入力端子 (TIN0) は , イベントカ ウントモード時にイベント入力となり , 内部クロックモード時にはトリガ入力または ゲート入力に使用できます。 ■ インテリジェント I/O サービス (EI2OS) 機能と割込み 本タイマは EI2OS 対応の回路を有しています。このため , 本タイマのアンダフローに より EI2OS を起動できます。 204 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) ■ 16 ビットリロードタイマのブロックダイヤグラム 図 14.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 図 14.1-1 16 ビットリロードタイマのブロックダイヤグラム 16 16 ビットリロードレジスタ 8 リロード RELD 16 ビットダウンカウンタ UF OUTE F2MC-16LX バス 16 OUTL 2 OUT CTL. GATE INTE UF クロックセレクタ CSL1 CNTE CSL0 IRQ クリア I 2OSCLR TRG リトリガ 2 EXCK φ 2 1 φ 2 3 φ 5 2 ポート (TIN) IN CTL 出力許可 3 プリスケーラ クリア ポート (TOT) MOD2 MOD1 周辺クロック UART ボーレート (ch.0) MOD0 3 205 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 14.2 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタには , 次の 2 種類があります。 • タイマ制御レジスタ (TMCSR0) • 16 ビットタイマレジスタ (TMR0)/16 ビットリロードレジスタ (TMRLR0) ■ 16 ビットリロードタイマのレジスタ 図 14.2-1 16 ビットリロードタイマのレジスタ TMCSR0 ( 上位 ) アドレス bit15 bit14 bit13 bit12 bit11 bit10 000051H - - - - - - - - CSL1 R/W CSL0 R/W bit6 bit5 bit9 bit8 MOD2 MOD1 R/W R/W 初期値 XXXX0000B TMCSR0 ( 下位 ) アドレス 000050H bit7 bit4 bit3 bit2 bit1 bit0 初期値 RELD INTE UF CNTE TRG 00000000B R/W R/W R/W R/W R/W R/W MOD0 OUTE OUTL R/W R/W TMR/TMRLR0 ( 上位 ) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB 003541H TMR/TMRLR0 ( 下位 ) アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 R/W R/W R/W R/W R/W R/W R/W R/W XXXXXXXXB 003540H R/W :リード / ライト可能 X :不定 - :未定義 206 初期値 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 14.2.1 タイマ制御ステータスレジスタ (TMCSR0) 16 ビットタイマの動作モードおよび割込みの制御をします。UF, CNTE, TRG ビッ ト以外のビットの書換えは , CNTE=0 のときに行うようにしてください。 ■ タイマ制御ステータスレジスタ (TMCSR0) の配置 TMCSR0 ( 上位 ) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000051H - - - - - - - - CSL1 CSL0 R/W R/W R/W R/W bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 RELD R/W INTE R/W UF R/W CNTE R/W TRG R/W 00000000B MOD2 MOD1 初期値 XXXX0000B TMCSR0 ( 下位 ) アドレス 000050H bit7 MOD0 OUTE OUTL R/W R/W R/W R/W :リード / ライト可能 X :不定 - :未定義 ■ タイマ制御ステータスレジスタ (TMCSR0) の内容 【bit11, bit10】CSL1, CSL0 (Clock select1, 0) カウントクロックセレクトビットです。選択されるクロックソースを , 表 14.2-1 に示 します。 表 14.2-1 CSL ビット設定クロックソース CSL1 CSL0 クロックソース ( マシンサイクル φ = 16 MHz) 0 0 φ/21 (0.125 μs) 0 1 φ/23 (0.5 μs) 1 0 φ/25 (2.0 μs) 1 1 外部イベントカウントモード 【bit9, bit8,bit 7】MOD2, MOD1, MOD0 動作モードおよび入出力端子の機能を設定するビットです。 MOD2 ビットは , 入出力の機能を選択するビットです。"0" の場合 , 入力端子はトリガ 入力端子となり , 有効エッジが入力されるとリロードレジスタの内容をカウンタへ ロードし , カウント動作を継続します。"1" の場合 , ゲートカウンタモードになり , 入 力端子はゲート入力となり , 有効レベルが入力されている間のみカウントします。 MOD1, MOD0 ビットは , 各モードにおける端子の機能の設定を行います。MOD2, MOD1, MOD0 ビットの設定を表 14.2-2 および表 14.2-3 に示します。 207 第 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 x 0 1 x 1 ゲート入力 "L" レベル "H" レベル 内部クロックモード時 (CSL0, CSL1 = 00B, 01B, or 10B) 表 14.2-3 MOD2, MOD1, MOD0 ビットの設定方法 (2) MOD2 x MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 - - 0 1 トリガ入力 立上りエッジ 1 0 立下りエッジ 1 1 両エッジ • イベントカウンタモード時 (CSL0, CSL1=11B) • 表中の×は , 任意の値 【bit6】OUTE 出力許可ビットです。"0" のとき TOT0 端子は汎用ポートになり , "1" のとき TOT0 端子 はタイマ出力端子になります。出力波形はリロードモード時トグル出力となり , ワン ショットモード時はカウント中を示す矩形波出力になります。 208 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 【bit5】OUTL TOT0 端子の出力レベルを設定するビットです。 表 14.2-4 OUTE, RELD, OUTL の設定方法 OUTE RELD OUTL 0 x x 汎用ポート 1 0 0 カウント中 "H" の矩形波 1 0 1 カウント中 "L" の矩形波 1 1 0 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 【bit4】RELD(Reload) リロード動作を許可するビットです。"1" のときはリロードモードになり , カウンタの 値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへ ロードしてカウント動作を続けます。"0" のときはワンショットモードとなり , カウン タの値が 0000H → FFFFH へのアンダフローによりカウント動作を停止します。 【bit3】INTE(Interrupt enable) タイマ割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を 発生します。"0" のときは UF ビットが "1" であっても割込み要求を発生しません。 【bit2】UF(Underflow) タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフローに より "1" にセットされます。"0" の書込みまたはインテリジェント I/O サービスによっ てクリアされます。このビットへの "1" 書込みは , 意味がありません。リードモディ ファイライト系命令における読出し時には , "1" が読み出されます。 【bit1】CNTE(Count enable) タイマのカウント許可ビットです。このビットに "1" を書き込むと , 起動トリガ待ち状 態になります。"0" 書込みによりカウント動作は停止します。 【bit0】TRG(Trigger) ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。"0" 書込み 動作は , 意味を持ちません。読出し値は , 常に "0" です。このレジスタによるトリガ入 力は , CNTE=1 のときのみ有効となります。CNTE=0 のときに , "1" 書込みをしても動 作に影響を与えません。 209 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 14.2.2 16 ビットタイマレジスタ (TMR0)/16 ビットリロード レジスタ (TMRLR0) のレジスタ配置 16 ビットタイマレジスタ (TMR0) ( 読出し時 ) は , 16 ビットタイマのカウント値を 読み出すことができるレジスタです。初期値は不定です。このレジスタの読出しは , 必ずワード転送命令で行ってください。 16 ビットリロードレジスタ (TMRLR0) ( 書込み時 ) は , カウントの初期値を保持し ておくレジスタです。初期値は不定です。このレジスタへの書込みは , 必ずワード 転送命令で行ってください。 ■ 16 ビットタイマレジスタ (TMR0)/16 ビットリロードレジスタ (TMRLR0) のレジスタ配置 TMR/TMRLR0 ( 上位 ) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 XXXXXXXXB 003541H R/W R/W R/W R/W R/W R/W R/W R/W TMR/TMRLR0 ( 下位 ) アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 R/W R/W R/W R/W R/W R/W R/W R/W 003540H XXXXXXXXB R/W :リード / ライト可能 X :不定 210 初期値 第 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 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) クロックソースとして , 内部クロックを選択した場合 , TIN0 端子はトリガ入力または ゲート入力として使用できます。トリガ入力として使用した場合 , 有効エッジが入力さ れるとリロードレジスタの内容をカウンタにロードして , 内部プリスケーラをクリア した後 , カウント動作を開始します。 TIN0 は , 2・T (T はマシンサイクル ) 以上のパルス幅を入力してください。図 14.3-2 に , トリガ入力の動作を示します。 211 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 図 14.3-2 16 ビットリロードタイマのトリガ入力の動作 カウント クロック 立上りエッジ検出時 TIN プリスケーラ クリア カウンタ 0000H リロードデータ -1-1 -1 ロード 2T ~ 2.5T ゲート入力として使用する場合 , 制御レジスタの MOD0 ビットにより設定される有効 レベルが , TIN0 端子から入力されている間のみカウントをします。このとき , カウン トクロックは , 止まらずに動き続けます。ゲートモード時のソフトウェアトリガは , ゲートレベルにかかわらず可能です。TIN0 端子のパルス幅は , 2・T (T はマシンサイク ル) 以上にしてください。図 14.3-3 に , ゲート入力の動作を示します。 図 14.3-3 16 ビットリロードタイマのゲート入力の動作 カウント クロック MOD0=1 とした場合 ( 入力 "H" の間カウント ) TIN カウンタ -1-1 -1 ■ 外部イベントカウンタ 外部クロックをセレクトすると TIN0 端子は , 外部イベント入力端子となり , レジスタ で設定された有効エッジをカウントします。TIN0 端子のパルス幅は , 4・T (T はマシン サイクル ) 以上にしてください。 212 第 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] 213 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 14.5 16 ビットリロードタイマの出力端子機能 TOT0 端子はリロードモード時には , アンダフローにより反転するトグル出力とし て , ワンショットモード時には , カウント中を示すパルス出力として機能します。 ■ 16 ビットリロードタイマの出力端子機能 16 ビットリロードタイマの出力極性は , 制御レジスタの OUTL ビットにより設定でき , OUTL=0 のときトグル出力は , 初期値が "0" で , ワンショットパルス出力は , カウント中 "1" を出力します。OUTL=1 にすると出力波形は , 反転します。図 14.5-1 と図 14.5-2 に 出力端子機能を示します。 図 14.5-1 16 ビットリロードタイマの出力端子機能 (1) カウントスタート アンダフロー OUTL=1 のときは反転 TOT 汎用ポート OUTE CNTE 起動トリガ [RELD=1, OUTL=0] 図 14.5-2 16 ビットリロードタイマの出力端子機能 (2) アンダフロー OUTL=1 のとき は反転 TOT 汎用ポート OUTE CNTE 起動トリガ 起動トリガ待ち状態 [RELD=0, OUTL=0] 214 第 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 カウンタの状態遷移 リセット ハードウェアによる状態遷移 STOP CNTE=0, WAIT=1 外部入力による状態遷移 レジスタアクセスによる状態遷移 TIN 端子 :入力禁止 TOT 端子:汎用ポート カウンタ: 停止時の値を保持 リセット直後は不定 CNTE=0 CNTE=0 CNTE=1 TRG=0 WAIT CNTE=1 TRG=1 CNTE=1, WAIT=1 RUN TIN 端子 :TIN 端子として機能 * TIN 端子 :トリガ入力のみ有効 * TOT 端子 :OUTE=0 のとき , 汎用ポート OUTE=1 のとき , 初期値出力 TOT 端子:OUTE=0 のとき , 汎用ポート OUTE=1 のとき , TOT 端子として機能 RELD • UF カウンタ:動作 カウンタ: 停止時の値を保持 リセット直後ロード するまでは不定 TRG=1 TRG=1 LOAD TIN から外部トリガ CNTE=1, WAIT=0 CNTE=1, WAIT=0 リロードレジスタの内容を カウンタへロード RELD UF TIN から外部トリガ ロード終了 *: TIN 端子使用前に該当する DDR のビットを "0" に設定する必要があります。 215 第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 216 第 15 章 8/16 ビット PPG 8/16 ビット PPG の機能と概要について説明しま す。 15.1 8/16 ビット PPG の概要 15.2 8/16 ビット PPG のブロックダイヤグラム 15.3 8/16 ビット PPG のレジスタ 15.4 8/16 ビット PPG の動作 15.5 8/16 ビット PPG のカウントクロックの選択 15.6 8/16 ビット PPG のパルスの端子出力の制御 15.7 8/16 ビット PPG の割込み 15.8 8/16 ビット PPG の各ハードウェアの初期値 217 第 15 章 8/16 ビット PPG 15.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 コンバータ としても使用可能です。 MB90945 シリーズには 6 本の PPG があります。次節では PPG0/PPG1 の機能について のみ記述します。残りの PPG も同じ機能を持ち , レジスタアドレスについては I/O マッ プに記しています。 図 15.1-1 に , PPG モジュールと外部端子の接続を示します。 図 15.1-1 PPG モジュールと外部端子の関係 PPG0 / PPG1 PPG2 / PPG3 内部モジュール PPG4 / PPG5 PPG6 / PPG7 PPG8 / PPG9 PPGA / PPGB 218 PPG00 PPG10 PPG01 PPG11 PPG02 PPG12 PPG03 PPG13 PPG04 PPG14 PPG05 PPG15 外部端子 第 15 章 8/16 ビット PPG 15.2 8/16 ビット PPG のブロックダイヤグラム 図 15.2-1 に , 8/16 ビット PPG(ch.0) のブロックダイヤグラムを , 図 15.2-2 に , 8/16 ビット PPG(ch.1) のブロックダイヤグラムを示します。 ■ 8/16 ビット PPG のブロックダイヤグラム 図 15.2-1 8 ビット PPG(ch.0) のブロックダイヤグラム PPG00 出力許可 PPG00 周辺クロック 16 分周 周辺クロック 8 分周 周辺クロック 4 分周 周辺クロック 2 分周 周辺クロック PPG00 出力ラッチ 反転 クリア PEN0 カウント クロック選択 タイムベースカウンタの出力 メインクロックの 512 分周 "L"/"H" セレクト PCNT ( ダウンカウンタ ) S RQ MB90945 シリーズでは , この IRQ 信号は OR 論理によりチャネル 1 の IRQ 信号とマージされます。 IRQ リロード ch.1- ボロー "L"/"H" セレクタ PRLL0 PRLH0 PRLBH0 (テンポラリバッファ) PIE0 PUF0 "L" 側データバス "H" 側データバス PPGC0 ( 動作モード制御 ) 219 第 15 章 8/16 ビット PPG 図 15.2-2 8 ビット PPG(ch.1) のブロックダイヤグラム PPG10 出力許可 周辺クロック 16 分周 周辺クロック 8 分周 周辺クロック 4 分周 周辺クロック 2 分周 周辺クロック PPG10 PPG10 出力ラッチ カウント クロック 選択 クリア 反転 PEN1 S RQ PCNT ( ダウンカウンタ ) ch.1- ボロー タイムベースカウンタの出力 メインクロックの 512 分周 "L"/"H" セレクト MB90945 シリーズでは , この IRQ 信号は OR 論理によりチャネル 0 の IRQ 信号とマージされます。 IRQ リロード "L"/"H" セレクタ PRLL1 PRLBH0 (テンポラリバッファ) PIE1 PRLH1 PUF1 "L" 側データバス "H" 側データバス PPGC1 ( 動作モード制御 ) 220 第 15 章 8/16 ビット PPG ● ブロックダイヤグラム中の端子などの詳細 8/16 ビット PPG タイマの実際の端子名および割込み要求番号を表 15.2-1 に示します。 表 15.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 の設定値を有効にします。 221 第 15 章 8/16 ビット PPG ● リロードレジスタ L/H セレクタ "L" 側および "H" 側のリロードレジスタ (PRLL1, PRLH1) のどちらを PPG1 ダウンカウ ンタにリロードするか , 現在の端子出力レベルを検出して選択します。 ● カウントクロックセレクタ 5 種類のマシンクロックの分周クロック , またはタイムベースタイマの分周クロックか ら , PPG1 ダウンカウンタに入力するカウントクロックを選択します。 ● PPG 出力制御回路 端子出力レベル , およびアンダフロー発生による出力反転を行います。 222 第 15 章 8/16 ビット PPG 15.3 8/16 ビット PPG のレジスタ 8/16 ビット PPG のレジスタには , 次の 5 つがあります。 • PPG0 (2, 4, 6, 8, A) 動作モード制御レジスタ (PPGCn) • PPG1 (3, 5, 7, 9, B) 動作モード制御レジスタ (PPGCm) • PPG0/1 (23, 45, 67, 89, AB) クロック選択レジスタ • リロードレジスタ H • リロードレジスタ L ■ 8/16 ビット PPG のレジスタ 図 15.3-1 8/16 ビット PPG のレジスタ PPGn 動作モード制御レジスタ PPGCn アドレス ch.0 ch.2 ch.4 ch.6 ch.8 ch.A 000038H 00003CH 000040H 000044H 000048H 00004CH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PEN0 - PE00 PIE0 PUF0 - - 予約 0-000--1 R/W - R/W R/W R/W - - W PPGm 動作モード制御レジスタ PPGCm アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 ch.1 ch.3 ch.5 ch.7 ch.9 ch.B PEN1 - PE10 PIE1 PUF1 MD1 MD0 予約 0-000001 R/W - R/W R/W R/W R/W R/W W bit4 bit3 bit2 bit1 bit0 初期値 PCM0 - - 000000-- R/W - - 000039H 00003DH 000041H 000045H 000049H 00004DH PPGnm 動作モード選択レジスタ PPGCnm アドレス ch.01 ch.23 ch.45 ch.67 ch.89 ch.AB 00003AH 00003EH 000042H 000046H 00004AH 00004EH bit7 bit6 bit5 PCS2 PCS1 PCS0 R/W R/W R/W PCM2 PCM1 R/W R/W n=0, 2, 4, 6, 8, A m=1, 3, 5, 7, 9, B (続く) 223 第 15 章 8/16 ビット PPG (続き) リロードレジスタ (H) PRLHn PRLHm アドレス ch.0 ch.1 ch.2 ch.3 ch.4 ch.5 ch.6 ch.7 ch.8 ch.9 ch.A ch.B 003501H 003503H 003505H 003507H 003509H 00350BH 00350DH 00350FH 003511H 003513H 003515H 003517H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 XXXXXXXX R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 R/W R/W R/W R/W R/W R/W R/W R/W リロードレジスタ (L) PRLLn PRLLm アドレス ch.0 ch.1 ch.2 ch.3 ch.4 ch.5 ch.6 ch.7 ch.8 ch.9 ch.A ch.B R/W W X - 224 003500H 003502H 003504H 003506H 003508H 00350AH 00350CH 00350EH 003510H 003512H 003514H 003516H 初期値 XXXXXXXX :リード / ライト可能 :ライトオンリ :不定 :未定義 n=0, 2, 4, 6, 8, A m=1, 3, 5, 7, 9, B 第 15 章 8/16 ビット PPG 15.3.1 PPG0 動作モード制御レジスタ (PPGC0) PPG0 動作モード制御レジスタ (PPGC0) は , 8/16 ビット PPG の動作モードの選択 , 端子出力制御 , カウントクロック選択およびトリガの制御を行う 5 ビットの制御レ ジスタです。 ■ PPG0 動作モード制御レジスタ (PPGC0) 図 15.3-2 PPG0 動作モード制御レジスタ (PPGC0) の構成 PPG0 動作モード制御レジスタ アドレス: ch.0, 000038H Other ch.: ch.2 00003CH ch.4 000040H ch.6 000044H ch.8 000048H ch.A 00004CH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 PEN0 - PE00 PIE0 PUF0 - - 予約 R/W R/W - - W R/W - R/W PRGC0 初期値 0X000XX1 bit0 予約 1 予約ビット PPGC0 を設定したとき , 常にこのビット を "1" に設定 bit3 0 PPG カウンタアンダフローフラグ PPG カウンタアンダフローは検出されない 1 PPG カウンタアンダフローは検出される PUF0 bit4 PIE0 PPG 割込みイネーブル 0 割込みディセーブル 1 割込みイネーブル bit5 PE00 PPG 出力イネーブル 00 0 パルス出力ディセーブル ( 汎用ポート ) 1 パルス出力イネーブル bit7 PEN0 R/W W : リード / ライト可能 : ライトオンリ X 不定 : 未定義 : 初期値 - 0 1 PPG イネーブル ストップ ("L" レベル出力保持 ) PPG 動作イネーブル : 225 第 15 章 8/16 ビット PPG 表 15.3-1 PPG0 動作モード制御レジスタのビット機能説明 ビット名 機能 PEN0: 動作許可ビット "1" に設定されているとき , PPG カウンタ動作を許可します。"0" に設 定されているとき , 動作が禁止で , 出力が許可のとき (bit5)"L" レベル は出力に維持されます。 未定義ビット ライトした場合 : 影響しません。 リードした場合 : 値は不定です。 bit 5 PE00: PPG00 端子出力 許可ビット "1" に設定されているとき , パルス出力を許可します。MB90945 シ リーズでは , パルス信号は , "PPG00" 外部端子に出力されます。"0" に 設定されているとき , 汎用ポートとして使用できます。 bit 4 PIE0: PPG の割込み 許可ビット 本ビットが "1" のとき , PUF0 が "1" になると割込み要求を発生しま す。本ビットが "0" のときは割込み要求を発生しません。 PUF0: PPG カウンタ アンダフロー ビット 8 ビット PPG2 チャネルモードまたは 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 のカウンタの値が 00H ~ FFH となったと bit 7 bit 6 bit 3 きのアンダフローにより "1" にセットされます。16 ビット PPG モード のときには , ch.1/ch.0 のカウンタの値が 0000H から FFFFH となったと きのアンダフローにより "1" にセットされます。"0" の書込みにより "0" になります。このビットへの "1" 書込みは , 意味がありません。 リードモディファイライト系命令の読出し時には "1" が読まれます。 bit 2, bit 1 bit 0 226 未定義ビット ライトした場合 : 影響しません。 リードした場合 : 値は不定です。 予約ビット 予約ビットです。PPGC0 を設定するときは必ず "1" に設定してくださ い。 第 15 章 8/16 ビット PPG 15.3.2 PPG1 動作モード制御レジスタ (PPGC1) PPG1 動作モード制御レジスタ (PPGC1) は , 8/16 ビット PPG の動作モードの選択 , 端子出力制御 , カウントクロック選択およびトリガの制御を行う 7 ビットの制御レ ジスタです。 ■ PPG1 動作モード制御レジスタ (PPGC1) 図 15.3-3 PPG1 動作モード制御レジスタ (PPGC1) の構成 PPG1 動作モード制御レジスタ アドレス: ch.1 000039H Other ch.: ch.3 0003DH ch.5 00041H ch.7 00045H ch.9 00049H ch.B 0004DH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PEN1 - PE10 PIE1 PUF1 MD1 MD0 予約 R/W - R/W R/W R/W R/W R/W W PRGC1 初期値 0X000001 bit0 予約 1 予約ビット PPGC1 を設定したとき , 常にこのビット を "1" に設定 bit10 bit9 MD1 MD0 0 0 PPG カウントモード 8 ビット PPG 2 チャネル独立モード 0 1 8 ビットプリスケーラ +8 ビット PPG 1 チャネルモード 1 0 1 1 予約 16 ビット PPG 1 チャネルモード bit11 PUF1 0 1 PPG カウンタアンダフローフラグ PPG カウンタアンダフローは検出されない PPG カウンタアンダフローは検出される bit12 0 PPG 割込みイネーブル 割込みディセーブル 1 割込みイネーブル PIE1 bit13 PE10 0 PPG 出力イネーブル 10 パルス出力ディセーブル ( 汎用ポート ) 1 パルス出力イネーブル bit15 0 PPG イネーブル ストップ ("L" レベル出力保持 ) 1 PPG 動作イネーブル PEN1 R/W W : リード / ライト可能 : ライトオンリ X : 不定 - : 未定義 : 初期値 227 第 15 章 8/16 ビット PPG 表 15.3-2 PPG1 動作モード制御レジスタのビット機能説明 ビット名 機能 PEN1: 動作許可ビット "1" に設定されているとき , PPG カウンタ動作を許可します。"0" に設定されているとき , 動作が禁止で , 出力が許可のとき (bit13) "L" レベルは出力に維持されます。 未定義ビット ライトした場合 : 影響しません。 リードした場合 : 値は不定です。 bit 13 PE10: PPG10 端子出力 許可ビット "1" に設定されているとき , パルス出力を許可します。MB90945 シリーズでは , パルス信号は , "PPG10" 外部端子に出力されます。 "0" に設定されているとき , 汎用ポートとして使用できます。 bit 12 PIE1: PPG の割込み 許可ビット 本ビットが "1" のとき , PUF1 が "1" になると割込み要求を発生し ます。本ビットが "0" のときは割込み要求を発生しません。 PUF1: PPG カウンタ アンダフロー ビット 8 ビット PPG2 チャネルモードまたは 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 のカウンタの値が 00H から bit 15 bit 14 bit 11 FFH となったときのアンダフローにより "1" にセットされます。 16 ビット PPG モードのときには , ch.1/ch.0 のカウンタの値が 0000H から FFFFH となったときのアンダフローにより "1" にセッ トされます。"0" の書込みにより "0" になります。このビットへ の "1" 書込みは , 意味がありません。リードモディファイライト 系命令の読出し時には "1" が読まれます。 MD1, MD0: PPG カウント モード 図 15.3-3 で説明されているように , このビットは PPG タイマ動作 モードを選択します。 ビットを "10B" に設定しないでください。 ビットを "01B" に設定する場合には , PPGC0 の PEN0 ビット / bit 10, bit 9 PPGC1 の PEN1 ビットを "01B" に設定しないでください。また , PEN0 ビットおよび PEN1 ビットを同時に "11B" または "00B" に セットすることを推奨します。ビットを "11B" に設定する場合に は , PPGC0/PPGC1 をワード転送で書き換え , PEN0 ビットおよび PEN1 ビットを同時に "11B" または "00B" にセットしてください。 bit 8 228 予約ビット 予約ビットです。PPGC1 を設定するときは必ず "1" に設定してく ださい。 第 15 章 8/16 ビット PPG 15.3.3 PPG0/1 クロック選択レジスタ (PPG01) PPG0/1 クロック選択レジスタ (PPG01) は , 8/16 ビット PPG のカウンタクロック の制御を行う 8 ビットの制御レジスタです。 ■ PPG0, 1 クロック選択レジスタ (PPG01) 図 15.3-4 PPG0/1 クロック選択レジスタ (PPG01) の構成 PPG0/1 クロック選択レジスタ アドレス: ch.01 00003A H Other ch.: ch.23 00003E H ch.45 000042 H ch.67 000046 H ch.89 00004A H ch.AB 00004E H bit7 bit6 bit5 bit4 bit3 bit2 PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 bit1 bit0 - - PPG01 初期値 000000XX R/W R/W R/W R/W R/W R/W - bit4 bit3 bit2 PCM2 PCM1 PCM0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 bit7 bit6 bit5 PCS2 PCS1 PCS0 0 0 0 0 0 1 カウントクロック選択ビット (ch.0) 周辺クロック 周辺クロック /2 周辺クロック /4 周辺クロック /8 周辺クロック /16 タイムベースタイマからのクロック入力 カウントクロック選択ビット (ch.1) 0 1 0 R/W : リード / ライト可能 0 1 1 X : 不定 1 0 0 周辺クロック 周辺クロック /2 周辺クロック /4 周辺クロック /8 周辺クロック /16 - : 1 1 1 タイムベースタイマからのクロック入力 : 未定義 初期値 229 第 15 章 8/16 ビット PPG 表 15.3-3 クロック選択レジスタ (PPG01) のビット機能説明 ビット名 PCS2 ~ PCS0 : カウントクロック 選択ビット (ch.1) bit 7 ~ bit 5 機能 ch.1 のダウンカウンタの動作クロックを , 次のように選択します。 ( 注意事項 ) 8 ビットプリスケーラ +8 ビット PPG モードまたは 16 ビット PPG モードのときには , ch.1 の PPG は , ch.0 からカウンタクロッ クを受けて動作するため , PCS2 ~ PCS0 ビットの指定は , 無効に なります。 PCS2 PCS1 PCS0 PCM2 ~ PCM0 : カウントクロック 選択ビット (ch.0) 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 1 1 1 周辺クロック /16 (1 ms マシンクロック , 16 MHz) タイムベースタイマからのクロック入力 (128 ms, 4 MHz 原発振 ) ch.0 のダウンカウンタの動作クロックを , 次のように選択します。 PCM2 PCM1PCM0 0 bit 4 ~ bit 2 230 動作モード 0 動作モード 0 周辺クロック (62.5 ns マシンクロック , 16 MHz) 周辺クロック /2 (125 ns マシンクロック , 16 MHz) 0 0 1 0 1 0 周辺クロック /4 (250 ns マシンクロック , 16 MHz) 0 1 1 周辺クロック /8 (500 ns マシンクロック , 16 MHz) 1 0 0 1 1 1 周辺クロック /16 (1 ms マシンクロック , 16 MHz) タイムベースタイマからのクロック入力 (128 ms, 4 MHz 原発振 ) 第 15 章 8/16 ビット PPG 15.3.4 リロードレジスタ (PRLL, PRLH) リロードレジスタ (PRLL, PRLH) は , ダウンカウンタ PCNT へのリロード値を保持 する , 各 8 ビットのレジスタです。PRLL, PRLH レジスタは , どちらもリード / ライ トが可能です。 ■ リロードレジスタ (PRLL, PRLH) 図 15.3-5 リロードレジスタ (PRLL, PRLH) リロードレジスタ (H) PRLHn bit15 アドレス ch.0 ch.1 ch.2 ch.3 ch.4 ch.5 ch.6 ch.7 ch.8 ch.9 ch.A ch.B 003501H 003503H 003505H 003507H 003509H 00350BH 00350DH 00350FH 003511H 003513H 003515H 003517H bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 XXXXXXXX R/W R/W R/W R/W R/W R/W R/W R/W bit6 bit5 bit4 bit3 bit2 bit1 bit0 リロードレジスタ (L) PRLLn bit7 アドレス ch.0 ch.1 ch.2 ch.3 ch.4 ch.5 ch.6 ch.7 ch.8 ch.9 ch.A ch.B 003500H 003502H 003504H 003506H 003508H 00350AH 00350CH 00350EH 003510H 003512H 003514H 003516H 初期値 XXXXXXXX R/W R/W R/W R/W R/W R/W R/W R/W n=0, 1, ..., 9, A, B R/W :リード / ライト可能 X :不定 表 15.3-4 リロードレジスタの機能 レジスタ名 機能 PRLLn "L" 側リロード値保持 PRLHn "H" 側リロード値保持 <注意事項> 8 ビットプリスケーラ +8 ビット PPG モードで使用する場合には , ch.0 の PRLL と PRLH に異なる値を設定すると , ch.1 の PPG 波形がサイクルごとに異なる場合があるので , ch.0 の PRLL と PRLH は , 同じ値に設定することを推奨します。 231 第 15 章 8/16 ビット PPG 15.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" 側交互にリロードされてカウントクロックごとにダウ ンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力の値を反転させ ます。この動作により , 端子出力はリロードレジスタ値に対応した "L" 幅 /"H" 幅をも つパルス出力となります。 表 15.4-1 に , リロード動作とパルス出力の関係を示します。 表 15.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 出力が接続されます。 232 第 15 章 8/16 ビット PPG ● 16 ビット PPG1 チャネルモード 16 ビット PPG1 チャネルモードは , ch.0 と ch.1 を連結させて , 16 ビットの PPG として 動作させる動作モードです。PPG00 端子と PPG10 端子は , 両方とも 16 ビット PPG 出 力が接続されます。 ■ 8/16 ビット PPG の出力動作 8/16 ビット PPG は , ch.0 の PPG については , PPGC0 (PWM 動作モード制御レジスタ ) の bit7(PEN0) を "1" に , ch.1 の PPG については , PPGC1 レジスタの bit15(PEN1) を "1" にセットすることによって起動され , カウントを開始します。動作を開始した後は , PPGC0 の bit7(PEN0) または PPGC1 の bit15(PEN1) に "0" を書き込むことによってカウ ント動作を停止し , 停止した後 , パルス出力は "L" レベルを保持します。 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 を停止状態で , ch.1 を動 作状態に設定しないでください。 16 ビット PPG モードのときには PPGC0 レジスタの bit7 (PEN0) および PPGC1 レジス タの bit15 (PEN1) を同時に起動または停止する必要があります。下記の図に , PPG 出力 動作を示します。PPG 動作中に , パルス波を周波数およびデューティ比で ( パルス波の "H" レベルの比を "H" レベルに ) 連続して出力します。停止状態が明確に指定されるま で PPG は動作を続けます。 図 15.4-1 PPG 出力動作の出力波形 PEN0/1出力端子 PEN0/1 により動作開始 ("L" 側から ) PPG出力端子 T ( スタート ) (L+1) T (H+1) L : PRLL の値 H : PRLH の値 T : 周辺クロック (φ, φ/4, φ/16) またはタイマベースカウンタからの入 力 (PPG01 のクロックセレクトによる ) 233 第 15 章 8/16 ビット PPG ■ 8/16 ビット PPG のリロード値とパルス幅の関係 リロードレジスタに書かれた値に +1 した値に , カウントクロックの周期を掛けた値が , 出力されるパルスの幅となります。 8 ビット PPG 動作時のリロードレジスタ値が 00H のときまたは 16 ビット PPG 動作時 のリロードレジスタ値が 0000H のときは , カウントクロック 1 周期分のパルス幅をも つことになりますので注意してください。また , 8 ビット PPG 動作時のリロードレジ スタ値が FFH のとき , カウントクロック 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジスタ値が FFFFH のときは , カウントクロック 65536 周期分のパルス幅をもつことになりますので注意してください。 Pl=T x (L+1) Ph=T x (H+1) 234 { L H T Ph Pl : : : : : PRLL の値 PRLH の値 入力クロック周期 ハイパルスの幅 ローパルスの幅 第 15 章 8/16 ビット PPG 15.5 8/16 ビット PPG のカウントクロックの選択 8/16 ビット PPG の動作に使用するカウントクロックは , 周辺クロックまたはタイム ベースタイマの入力を使用しており , 6 種類のカウントクロック入力が選択できま す。 ■ 8/16 ビット PPG のカウントクロックの選択 PPG0/PPG1 クロック選択レジスタ (PPG01) の bit4 ~ bit2 (PCM2 ~ PCM0) で ch.0 のク ロックを , bit7 ~ bit5 (PCS2 ~ PCS0) で ch.1 のクロックを選択します。 クロックは , マシンクロックの 1/16 ~ 1 倍の周辺クロックとタイムベースタイマから の入力クロックより選択できます。 しかし , 8 ビットプリスケーラ +8 ビット PPG モードまたは 16 ビット PPG モードのと きには , PCS2 ~ PCS0 を設定しても意味はありません。 タイムベースタイマの入力を使用した場合 , トリガまたはストップの後の最初のカウ ント周期がずれる可能性がありますので注意してください。また , 本モジュール動作中 にタイムベースカウンタのクリアを行うと周期がずれることがあります。 8 ビットプリスケーラ +8 ビット PPG モード・ch.0 が動作状態 , ch.1 が停止状態である ときに ch.1 の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意 してください。 235 第 15 章 8/16 ビット PPG 15.6 8/16 ビット PPG のパルスの端子出力の制御 本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG00/PPG10 よ り出力されます。 ■ 8/16 ビット PPG のパルスの端子出力の制御 端子出力許可ビット (PPGC0:PE00, PPGC1:PE10) が "0" のとき ( 初期値 ) は , パルス出 力は外部端子より出力されずに , 汎用ポートとして機能します。本ビットに "1" を設定 すると , パルス出力が外部端子より出力されます。 16 ビット PPG モードでは , PPG00, PPG10 は同じ波形が出力されるので , どちらの外部 端子出力を許可しても同じ出力を得ることができます。 8 ビットプリスケーラ +8 ビット PPG モードでは , PPG00 は 8 ビットプリスケーラのト グル出力波形が出力され , PPG10 は 8 ビット PPG の波形が出力されます。このモード のときの出力波形の例を図 15.6-1 に示します。 図 15.6-1 8+8PPG 出力動作の出力波形 Ph0 Pl0 PPG00 PPG10 Ph1 Pl0 = T × (L0+1) Ph0 = T × (L0+1) Pl1 = T × (L0+1) × (L1+1) Ph1 = T × (L0+1) × (H1+1) Pl1 L0 L1 H1 T Ph0 Pl0 Ph1 Pl1 : ch.0 の PRLL の値および ch.0 の PRLH 値 : ch.1 の PRLL の値 : ch.1 の PRLH の値 : 入力クロック周期 : PPG00 の "H" パルスの幅 : PPG00 の "L" パルスの幅 : PPG10 の "H" パルスの幅 : PPG10 の "L" パルスの幅 <注意事項> ch.0 の PRLL と ch.0 の PRLH は , 同じ値を設定することを推奨します。 236 第 15 章 8/16 ビット PPG 15.7 8/16 ビット PPG の割込み 8/16 ビット PPG の割込みは , リロード値がカウントアウトし , ボローが発生したと きにアクティブになります。 ■ 8/16 ビット PPG の割込み 8 ビット PPG2 チャネルモードまたは 8 ビットプリスケーラ +8 ビット PPG モードのと きには, それぞれのカウンタのボローにより, それぞれの割込みの要求が行われますが, 16 ビット PPG モードでは , 16 ビットカウンタのボローにより , PUF0 と PUF1 が同時に セットされます。このため , 割込み要因を一本化するために , PIE0 または PIE1 のどち らか一方のみを許可にすることを推奨します。また , 割込みフラグのクリアも PUF0 と PUF1 を同時に行うことを推奨します。 237 第 15 章 8/16 ビット PPG 15.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" なお , 上記以外のハードウェアは初期化されません。 <注意事項> 16 ビット PPG モード以外のモードの場合には , リロードレジスタ (PRLL, PRLH) への書 込みはワード転送命令を使用することを推奨します。なお , バイト転送命令 2 回にて書き 込んだ場合 , タイミングによっては , 予想しないパルス幅の出力が発生する可能性があり ますので注意してください。 図 15.8-1 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミングチャート PPG端子 B A B A C ① B C C D D 図 15.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 への書込みは , 一時的に書き込まれ , その後 238 第 15 章 8/16 ビット PPG ch.1 の PRL に書込みを行った時点で , 実際に ch.0 の PRL への書込みが行われます。 なお , 16 ビット PPG モード以外では , ch.0 と ch.1 の PRL の書込みは独立して行うこと ができます。 図 15.8-2 PRL 書込み動作のブロックダイヤグラム ch.0 の PRL の書込みデータ テンポラリラッチ 16 ビット PPG モード以外の ときの ch.0 の書込み ch.1 の PRL の書込みデータ 16 ビット PPG モード時 ch.1 の書込みに同期し て転送 ch.1 の書込み ch.0 PRL ch.1 PRL 239 第 15 章 8/16 ビット PPG 240 第 16 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明しま す。 16.1 DTP/ 外部割込みの概要 16.2 DTP/ 外部割込みのレジスタ 16.3 DTP/ 外部割込みの動作 16.4 DTP 要求と外部割込み要求の切換え 16.5 DTP/ 外部割込みの使用上の注意 241 第 16 章 DTP/ 外部割込み 16.1 DTP/ 外部割込みの概要 DTP( データ転送周辺 ) はデバイス外部に存在する周辺と F2MC-16LX CPU との間に あって , 外部周辺が発生する DMA 要求または割込み要求を受け取り , これを F2MC16LX CPU に伝えてインテリジェント I/O サービスまたは割込み処理を起動させる ための周辺です。 ■ DTP/ 外部割込みの概要 インテリジェント I/O サービスに関しては "H" または "L" 要求レベルを使用できます。 外部割込み要求に対しては , "H", "L" のほか , 立上りエッジおよび立下りエッジの 4 種 類の要求レベルを使用できます。 MB90945 シリーズでは , 外部バスインタフェースはサポートされていません。このた め , DTP/ 外部割込みはデータ転送周辺としての機能ではなく , 外部割込みとしてのみ 使用できます。 ■ DTP/ 外部割込みのブロックダイヤグラム 図 16.1-1 DTP/ 外部割込みのブロックダイヤグラム 8 8 8 16 242 割込み /DTP 許可レジスタ ゲート 要因 F/F 割込み /DTP 要因レジスタ 要求レベル設定レジスタ エッジ検出回路 8 要求入力 第 16 章 DTP/ 外部割込み ■ DTP/ 外部割込みのレジスタ 割込み /DTP 許可レジスタ (ENIR) アドレス 000030H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EN7 R/W EN6 R/W EN5 R/W EN4 R/W EN3 R/W EN2 R/W EN1 R/W EN0 R/W 初期値 00000000B 外部割込み要求レジスタ (EIRR) アドレス 000031H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ER7 R/W ER6 R/W ER5 R/W ER4 R/W ER3 R/W ER2 R/W ER1 R/W ER0 R/W 初期値 00000000B 要求レベル設定レジスタ (ELVR) アドレス 000032H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LB3 R/W LA3 R/W LB2 R/W LA2 R/W LB1 R/W LA1 R/W LB0 R/W LA0 R/W 初期値 00000000B 要求レベル設定レジスタ (ELVR) アドレス 000033H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 LB7 R/W LA7 R/W LB6 R/W LA6 R/W LB5 R/W LA5 R/W LB4 R/W LA4 R/W 初期値 00000000B R/W :リード / ライト可能 243 第 16 章 DTP/ 外部割込み 16.2 DTP/ 外部割込みのレジスタ DTP/ 外部割込みのレジスタには , 次の 3 つがあります。 • 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) • 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) • 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ■ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ENIR bit14 bit13 bit12 bit11 bit10 bit9 bit8 EN7 EN6 R/W R/W R/W :リード / ライト可能 EN5 R/W EN4 R/W EN3 R/W EN2 R/W EN1 R/W EN0 R/W アドレス 000030H bit15 初期値 00000000B 割込み /DTP 許可レジスタ (ENIR) はデバイス端子を外部割込み /DTP 要求入力として 使用し , 割込みコントローラに対して要求を発生させる機能を動作させることを決定 するレジスタです。このレジスタの "1" を書かれたビットの対応する端子は外部割込 み /DTP 要求入力として使用され , 割込みコントローラに対して要求を発生する機能を 動作させます。"0" が書かれたビットの対応する端子は外部割込み /DTP 要求入力要因 は保持しますが , 割込みコントローラに対しては要求を発生しません。 <注意事項> DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビット (ENRR: ER) をクリアしてください。 ■ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) EIRR アドレス 000031H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ER7 R/W ER6 R/W ER5 R/W ER4 R/W ER3 R/W ER2 R/W ER1 R/W ER0 R/W 初期値 00000000B ( ただし R と W で 対象が異なる ) R/W :リード / ライト可能 EIRR は , このレジスタの "1" となっているビットに対応する端子において外部割込み / DTP 要求が存在することを表します。このレジスタのビットに "0" を書き込むと対応 する要求フラグがクリアされます。"1" を書き込んでも効果はありません。リードモ ディファイライト系命令によりこのレジスタからは常に "1" が読み出されます。 244 第 16 章 DTP/ 外部割込み <注意事項> • 複数の外部割込み出力要求が有効な場合 (ENIR: EN3 ~ EN0 = 1), CPU が割込みを受 けた (ER3 ~ ER0 に "1" が設定された ) ビットのみクリアされます。他のビットを無条 件でクリアしてはいけません。 • DTP/ 外部割込み要因ビット (EIRR: ER) の値は , 対応する DTP/ 外部割込み許可ビット (EIRR: EN) が "1" に設定されているときのみ有効です。DTP/ 外部割込みが許可されて いない状態 (EIRR: EN=0) では , DTP/ 外部割込み要因の有無にかかわらず DTP/ 外部割 込み要因ビットがセットされる可能性があります。 • DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビッ ト (EIRR: ER) をクリアしてください。 ■ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ENIR アドレス 000032H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LB3 R/W LA3 R/W LB2 R/W LA2 R/W LB1 R/W LA1 R/W LB0 R/W LA0 R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 LB7 R/W LA7 R/W LB6 R/W LA6 R/W LB5 R/W LA5 R/W LB4 R/W LA4 R/W 初期値 00000000B ENIR アドレス 000033H 初期値 00000000B R/W :リード / ライト可能 ELVR は外部端子における要求イベントを定義するものです。表 16.2-1 に示すように , 各端子には 2 ビットが割り当てられます。入力レベルにより要求が検出されたとすれ ば , フラグがソフトウェアによりリセットされた後でも入力が指定されたレベルにあ る限り割込みフラグはセットされます。 表 16.2-1 LBx と LAx 端子の割込み要求検出要因 LBx LAx 0 0 "L" レベルが端子に入力 0 1 "H" レベルが端子に入力 1 0 立上りエッジが端子に入力 1 1 立下りエッジが端子に入力 割込み要求検出要因 x: 0 ~ 7 245 第 16 章 DTP/ 外部割込み 16.3 DTP/ 外部割込みの動作 割込みフラグがセットされたときに , このブロックは割込みコントローラへ割込み 信号を送ります。割込みコントローラ内で同時発生した割込みの優先順位を識別し た結果 , 本リソースからの割込みが最も優先順位が高かったときに , 割込みコント ローラは F2MC-16LX CPU に対して割込み要求を発生します。F2MC-16LX CPU は 自分の内部にある PS レジスタ中の ILM ビットと割込み要求を比較し , 要求レベル が ILM ビットより高かったときに現在実行中の命令が終了し次第 , ハードウェア割 込み処理マイクロプログラムを起動します。 ■ 外部割込みの動作 図 16.3-1 に示すように , ハードウェア割込み処理マイクロプログラムにおいて , CPU は 割込みコントローラからISEビットの情報を読み出し, これにより当該要求が割込み処 理であることを識別し , 割込み処理マイクロプログラムへ分岐します。割込み処理マイ クロプログラムでは割込みべクタ領域の読出しと割込みコントローラへの割込みアク ノリッジを発生し , ベクタから生成したマクロ命令のジャンプ先アドレスをプログラ ムカウンタへ転送した上で , ユーザの割込み処理プログラムを実行します。 図 16.3-1 外部割込みの動作 外部割込み /DTP 割込みコントローラ F2MC-16LX CPU ほかの要求 ELVR ICRyy EIRR ENIR IL CMP ICRxx CMP ILM 要因 ■ DTP の動作 初期化としてユーザプログラム内ではインテリジェント I/O サービスを起動するにあ たって , インテリジェント I/O サービスディスクリプタ内の I/O アドレスポインタに 000000H から 0000FFH に割り付けられているレジスタのアドレスを設定し , バッファア ドレスポインタにメモリバッファの先頭アドレスを設定します。 DTP の動作シーケンスは外部割込みの場合とほぼ同じで , CPU がハードウェア割込み 処理マイクロプログラムを起動するまでは全く同じです。DTP の場合は CPU がハード ウェア割込み処理マイクロプログラム内で読み出す ISE ビットの内容が DTP を示して いるので , インテリジェント I/O サービス処理マイクロプログラムへ制御を移します。 インテリジェント I/O サービスが起動されると , アドレッシングされている外部周辺に リードまたはライト信号が送られ , 本チップとの転送が行われます。外部周辺はその転 送が行われてから 3 マシンサイクル以内に本チップに対する割込み要求を取り下げて ください。転送が終了するとディスクリプタの更新などが行われ , その後転送要因をク リアする信号を割込みコントローラに発生させます。転送要因をクリアする信号を受 け取った本リソースは要因を保持しているフリップフロップをクリアして端子からの 246 第 16 章 DTP/ 外部割込み 次の要求に備えます。インテリジェント I/O サービス処理の詳細については , 『F2MC16LX プログラミングマニュアル』を参照してください。 図 16.3-2 DTP 動作終了時の外部割込み取下げタイミング エッジ要求 , または "H" レベル要求 内部動作 ( 注意事項 ) インテリジェント I/O サービスが I/O レジスタ→メモリ転送のとき ディスクリプタ 選択 , 読出し 割込み要因 リードアドレス アドレスバス端子 データバス端子 ライトアドレス ライトデータ リードデータ リード信号 ライト信号 3 マシンサイクル以内に取り下げる 図 16.3-3 DTP と外部周辺とのインタフェース簡略例 外 部 ペ リ フ ェ ラ ル データ , アドレスバス 内部バス レ ジ ス タ INT IRQ DTP 転送終了後 , 3 マシンサイクル 以内に取り下げる コア メモリ MB90945 247 第 16 章 DTP/ 外部割込み 16.4 DTP 要求と外部割込み要求の切換え 外部割込み要求と DTP 要求の切換えは , 割込みコントローラの中にある , 本リソー スに対応する ICR レジスタ中の ISE ビットの設定によって行います。各端子に対応 して個々に ICR が割り当てられていますので , 対応する ICR の ISE ビットに "1" が 書かれた端子が DTP 要求として , また , "0" が書かれた場合には外部割込み要求と して , それぞれ動作します。 ■ DTP 要求と外部割込み要求の切換え 図 16.4-1 DTP 要求と外部割込み要求の切換え 割込みコントローラ 0 ICR xx ICR yy 1 F2MC-16LX CPU 端子 外部割込み /DTP DTP 外部割込み 248 第 16 章 DTP/ 外部割込み 16.5 DTP/ 外部割込みの使用上の注意 DTP/ 外部割込みを使用する際には , 次の点について特に注意が必要です。 • DTP を用いたときの外部に接続する周辺の条件 • DTP/ 外部割込みの動作手順 • 外部割込み要求レベル ■ DTP/ 外部割込みの使用上の注意 ● DTP を用いたときの外部に接続する周辺の条件 DTP がサポートできる外部周辺は , 転送が行われたことにより自動的に要求をクリア するものでなければなりません。また , 転送動作が開始してから 3 マシンサイクル以内 で転送要求を取り下げないと , 本リソースは次の転送要求が発生したものとして扱い ます。 ● DTP/ 外部割込みの動作手順 DTP/外部割込み内に存在するレジスタの設定を行う際, 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 許可レジスタの対象となるビットを不可状態にする。 3. 要求レベル設定レジスタの対象となるビットを設定する。 4. 要因レジスタの対象となるビットをクリアする。 5. 許可レジスタの対象となるビットを許可状態にする。 ( ただし , 4. と 5. はワード指定による同時書込み可能 ) 。 本リソース内のレジスタを設定するときには , 必ず許可レジスタを不可状態に設定し なければなりません。また , 許可レジスタを許可状態にする前に必ず要因レジスタをク リアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に誤って割 込み要因が起こってしまうことを避けるためです。 ● 外部割込み要求レベル エッジ要求レベルのエッジを検出するためには , データシートに記載されている最小 パルス幅以上の期間が必要です ( データシートを参照 )。 図 16.5-1 に示すように , 要求入力レベルがレベル設定のとき , 外部より要求入力が入っ てその後取り下げられても内部に要因保持回路が存在するので , 割込みコントローラ への要求はアクティブのままです。図 16.5-2 に示すように , 割込みコントローラへの 要求を取り下げるには要因保持回路をクリアする必要があります。 249 第 16 章 DTP/ 外部割込み 図 16.5-1 レベル設定時の要因保持回路のクリア レベル検出 割込み要因 要因 F/F ( 割込み /DTP 要因レジスタ ) 許可ゲート 割込み コントローラへ クリアしない限り要因を保持し続ける 図 16.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 割込み要因 割込みコントローラ への割込み要求 250 "H" レベル 要因 F/F のクリアによって解除される 第 17 章 8/10 ビット A/D コンバータ MB90945 シリーズの 8/10 ビット A/D コンバータ の機能と動作について説明します。 17.1 8/10 ビット A/D コンバータの概要 17.2 8/10 ビット A/D コンバータの構成 17.3 8/10 ビット A/D コンバータの端子 17.4 8/10 ビット A/D コンバータのレジスタ 17.5 8/10 ビット A/D コンバータの割込み 17.6 8/10 ビット A/D コンバータの動作 17.7 8/10 ビット A/D コンバータ使用上の注意 17.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) 17.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) 17.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) 251 第 17 章 8/10 ビット A/D コンバータ 17.1 8/10 ビット A/D コンバータの概要 8/10 ビット A/D コンバータは , RC タイプ逐次近似変換方式を使用するために , アナ ログ入力電圧を 10 ビットまたは 8 ビットのデジタル値に変換します。アナログ入力 端子の入力信号は 15 チャネルから選択します。ソフトウェア , 外部トリガで変換を 開始します。 ■ 8/10 ビット A/D コンバータの機能 以下に 8/10 ビット A/D コンバータの機能について示します。 • 変換時間は , 最小 4.9 μs ( ある一定のマシンクロック周波数のみが使用可能の場合 , サンプリング時間を含む ) です。 • サンプリング時間は , 最小 1.6 μs ( ある一定のマシンクロック周波数のみが使用可能 の場合 ) です。 • 変換方式は , サンプルホールド回路付 RC 逐次近似変換方式です。 • 10 ビット , または 8 ビットの分解能が設定できます。 • 入力信号は , 15 チャネルのアナログ入力端子からプログラムで設定可能です。 • A/D 変換終了時に割込み要求を出力し , EI2OS を起動できます。 • 割込み許可状態で , 連続変換モード中に , 変換データ保護機能のデータが一部消失 するのを防ぎます。 • 変換の起動要因は , ソフトウェア , 外部トリガから設定できます。 • MB90945 シリーズには 15 のアナログ入力チャネルがあります。0 ~ 7 または 8 ~ 14 チャネルのどちらかを A/D コンバータの入力として選択できます。 表 17.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 チャネルのどちらかを選択できます。一時 停止し , 次の起動がかかるまで待機。 252 第 17 章 8/10 ビット A/D コンバータ 表 17.1-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み番号 #31 (1FH) 割込み制御レジスタ ベクタテーブルアドレス レジスタ名 アドレス 下位 上位 バンク ICR10 0000BAH FFFF80H FFFF81H FFFF82H EI2OS ○ ○:使用可能 253 第 17 章 8/10 ビット A/D コンバータ 17.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 コンバータのブロックダイヤグラム 図 17.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 外部トリガ (ADTG) PB6/AN14 PB5/AN13 PB4/AN12 PB3/AN11 PB2/AN10 PB1/AN9 PB0/AN8 P67/AN7 P66/AN6 P65/AN5 P64/AN4 P63/AN3 P62/AN2 P61/AN1 P60/AN0 ADSEL A/D データレジスタ (ADCR0/ADCS1) 254 アナログ チャネル セレクタ S10 ST1 ST0 CT1 CT0 φ : マシンクロック - : 未定義ビット 2 クロックセレクタ デコーダ φ サンプル ホールド回路 AVRH/L AVcc AVss コンパレータ コントロール回路 2 D/A コンバータ 2 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 内 部 デ | タ バ ス 第 17 章 8/10 ビット A/D コンバータ ● A/D 制御ステータスレジスタ (ADCS0/ADCS1) A/D 制御ステータスレジスタ (ADCS0/ADCS1) は , ソフトウェアによる起動または他の 起動要因の選択 , A/D 変換モードの選択 , A/D 変換開始 / 終了チャネルの選択 , 割込み 要求の許可 / 禁止 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う機 能があります。 ● A/D データレジスタ (ADCR0, ADCR1) A/D 変換結果を格納するレジスタですが , A/D 変換の分解能の設定を行う機能もありま す。 ● クロックセレクタ A/D 変換起動クロックを設定するセレクタです。起動クロックには , 外部トリガ (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) に格納し , 割込み要求を出力します。 255 第 17 章 8/10 ビット A/D コンバータ 17.3 8/10 ビット A/D コンバータの端子 8/10 ビット A/D コンバータの端子 , および端子部のブロックダイヤグラムを示しま す。 ■ 8/10 ビット A/D コンバータの端子 A/D コンバータの端子は , 汎用ポートと兼用になっています。 表 17.3-1 8/10 ビット A/D コンバータの端子 機能 端子名 端子機能 入出力形式 チャネル 0 P60/AN0 チャネル 1 P61/AN1 ポート 6 入出力 / アナログ入力 チャネル 2 P62/AN2 チャネル 3 P63/AN3 チャネル 4 P64/AN4 CMOS 出力 / オートモーティブ または ヒステリシス 入力 または アナログ入力 チャネル 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 プルアップ 設定 スタンバイ制御 なし なし ポート B 入出力 / アナログ入力 ■ アナログ入力許可レジスタ 図 17.3-1 にアナログ入力許可レジスタを示します。 図 17.3-1 アナログ入力許可レジスタ (ADER1/ADER0) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 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 1 1 1 1 1 1 1 初期値→ 0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 ADER1/ R/W R/W R/W R/W R/W R/W R/W R/W ADER0 1 1 1 1 1 1 1 1 <注意事項> bit15 (ADSEL) を "0" にすると , AN0 ~ AN7 ( ポート P60 ~ P67) が A/D コンバータの入 力端子となります。bit15 (ADSEL) を "1" にすると , AN8 ~ AN14 ( ポート PB0 ~ PB6) が A/D コンバータの入力端子となります。 256 第 17 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータの端子部のブロックダイヤグラム 図 17.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" になります。 257 第 17 章 8/10 ビット A/D コンバータ 17.4 8/10 ビット A/D コンバータのレジスタ 8/10 ビット A/D コンバータのレジスタ一覧を示します。 ■ 8/10 ビット A/D コンバータのレジスタ一覧 図 17.4-1 8/10 ビット A/D コンバータのレジスタ一覧 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000DH / 000CH ADER1 ADER0 0035H / 0034H ADCS1 ADCS0 0037H / 0036H ADCR1 ADCR0 258 第 17 章 8/10 ビット A/D コンバータ 17.4.1 アナログ入力許可 /ADC 選択レジスタ MB90945 シリーズには , 15 のアナログ入力チャネルがあり , A/D コンバータ 1 つに つき 8 つの入力が使用されます。特別ビット ADSEL がアナログ入力チャネルを選 択します。 ■ アナログ入力許可 /ADC 選択レジスタの上位ビット (ADER1) 図 17.4-2 アナログ入力許可 /ADC 選択レジスタの上位ビット (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 ADE14~ADE8 0 1 ADSEL 0 1 R/W : リード / ライト可能 : 初期値 bit8 初期値 ADE8 01111111B R/W アナログ入力許可ビット ポート入力モード ( ポート B) アナログ入力モード ( 初期値 ) ADC 入力選択ビット ANIN0 ~ 7 ( ポート 6) が入力として選択 ANIN8 ~ 14 ( ポート B) が入力として選択 ■ アナログ入力許可 /ADC 選択レジスタの下位ビット (ADER0) 図 17.4-3 アナログ入力許可 /ADC 選択レジスタの下位ビット (ADER0) の構成 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 アドレス 00000C H 初期値 R/W : リード / ライト可能 : 初期値 ADEx 0 1 11111111B アナログ入力許可ビット ポート入力モード ( ポート 6) アナログ入力モード ( 初期値 ) 259 第 17 章 8/10 ビット A/D コンバータ 17.4.2 A/D 制御ステータスレジスタ 1(ADCS1) A/D 制御ステータスレジスタ 1 (ADCS1) は , ソフトウェアまたは起動要因による A/D 変換起動の設定 , 割込み要求の許可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換 の停止中 / 動作中の確認を行う機能があります。 ■ A/D 制御ステータスレジスタ 1(ADCS1) 図 17.4-4 A/D 制御ステータスレジスタ 1 (ADCS1) の構成 アドレス bit15 bit14 bit13 bit12 bit11 000035H BUSY INT INTE PAUS STS1 STS0 STRT 予約 R/W R/W R/W R/W R/W bit10 R/W bit9 W bit8 bit7 bit0 (ADCS1) 初期値 00000000B R/W 予約 予約ビット 必ず "0" を設定してください。 A/D 変換起動ビット ( ソフトウェア起動時 (ADC2:EXT=0) のみ有効 ) STRT 0 A/D 変換機能を起動しない 1 A/D 変換機能を起動する A/D 起動要因設定ビット STS1 STS0 ソフトウェア起動 0 0 0 1 外部トリガ起動またはソフトウェア起動 1 0 16 ビットリロードタイマ 1 出力起動または ソフトウェア起動 1 1 外部トリガ起動 , 16 ビットリロードタイマ 1 出力起動またはソフトウェア起動 一時停止フラグビット (EI2OS 使用時のみ有効 ) PAUS 0 A/D 変換動作中 1 A/D 変換動作が一時停止中 割込み要求許可ビット INTE 0 割込み要求出力の禁止 1 割込み要求出力の許可 割込み要求フラグビット INT 260 書込み時 A/D 変換未終了 このビットをクリア 1 A/D 変換終了 変化なし , 動作に影響しません BUSY R/W : リード / ライト可能 W : ライトオンリ - : 未定義 : 初期値 読出し時 0 変換中ビット 読出し時 書込み時 0 A/D 変換停止中 A/D 変換強制停止 1 A/D 変換動作中 変化なし , 動作に影響しません 第 17 章 8/10 ビット A/D コンバータ 表 17.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明 ( 1 / 2 ) ビット名 BUSY: 変換中ビット A/D コンバータの動作表示ビットです。 • "0" がセットされている場合は , A/D 変換停止中であることを示しま す。"1" がセットされている場合は , A/D 変換動作中であることを示 します。 • "0" を設定した場合は , A/D 変換動作を強制停止します。"1" を設定 した場合は , 動作に影響しません。 ( 注意事項 ) A/D 変換動作の強制停止とソフトウェア起動 (BUSY= 0, STRT= 1) は , 同時に設定しないでください。 INT: 割込み要求 フラグビット A/D 変換結果が A/D データレジスタに格納されると , "1" がセット されます。 • 割込み要求許可ビット (ADCS:INTE) に "1" を設定している場合に , "1" がセットされると , 割込み要求を出力します。EI2OS を起動す るとセットされます。 • "0" を設定した場合は , 割込み要求がクリアされます。 • "1" を設定した場合は , 動作に影響しません。 • EI2OS を使用すると , "0" にクリアされます。 ( 注意事項 ) "0" を設定してクリアすると , A/D 変換を停止します。 INTE: 割込み要求 許可 ビット CPU への割込み出力を許可 / 禁止するビットです。 • "1" を設定した場合は , 割込み要求フラグビット (ADCS:INT) に "1" がセットされると , 割込み要求を出力します。 • EI2OS を使用する場合は , "1" を設定してください。 PAUS: 一時停止 フラグ ビット A/D 変換動作が一時停止した場合に , "1" がセットされます。 • A/D コンバータには 1 つの A/D データレジスタがあります。連続 変換モードでは , 前の変換結果が CPU で読まれる前に , 変換結果 が書き込まれると , 前の結果が失われます。連続変換モードが選択 されると , 変換が終了するたびに EI2OS にて変換結果を自動的にメ モリに転送してプログラムを書き込まなければいけません。PAUS ビットは次の変換の前に変換データ転送の完了を防ぐ複数の割込 みに対して保護します。変換が終了すると , "1" にセットされます。 EI2OS がデータレジスタの内容を転送し終わるまでこの状態が保 持されます。その間 , A/D 変換が一時停止され , 変換データを格納 できません。EI2OS が転送を終了すると , A/D コンバータは自動的 に A/D 変換を再開します。 ( 注意事項 ) EI2OS を使用した場合に有効です。 bit 15 bit 14 bit 13 bit 12 機能 • • • • 261 第 17 章 8/10 ビット A/D コンバータ 表 17.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明 ( 2 / 2 ) ビット名 STS1, STS0: A/D 起動要因 設定ビット A/D 変換の起動要因の設定を行うビットです。 • 起動要因が兼用になっている場合は , 最初に発生した起動要因で起 動します。 • EI2OS を使用する場合は , "1" を設定してください。 ( 注意事項 ) 起動要因は , 設定と同時に変更されますので , A/D 変換動作中に設 定する場合は , 目的とする起動要因がない状態で切り換えてくださ い。 STRT: A/D 変換起動 ビット • • • • 予約: 予約ビット 必ず "0" を設定してください。 bit 11 bit 10 bit 9 bit 8 262 機能 • A/D 変換動作を起動するビットです。 "1" を設定した場合は , A/D 変換が起動します。 "0" を設定した場合は , A/D 変換は起動しません。 停止変換モード時は , STRT ビットによる再起動はかかりません。 ( 注意事項 ) A/D変換動作の強制停止 (BUSY= 0), ソフトウェア起動(STRT= 1) は 同時に行わないでください。 第 17 章 8/10 ビット A/D コンバータ 17.4.3 A/D 制御ステータスレジスタ 0 (ADCS0) A/D 制御ステータスレジスタ 0 (ADCS0) は , A/D 変換モードの設定と A/D 変換開 始 / 終了チャネルの設定を行う機能があります。 ■ A/D 制御ステータスレジスタ 0 (ADCS0) 図 17.4-5 A/D 制御ステータスレジスタ 0 (ADCS0) の構成 bit15 アドレス 000034H bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 (ADCS: H) MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 R/W R/W R/W R/W R/W R/W R/W 00000000B R/W A/D 変換終了チャネル設定ビット ANE2 ANE1 ANE0 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 R/W : リード / ライト可能 : 初期値 停止中 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 端子 変換中の読出し 停止変換モードで 一時停止中の読出し 変換中の チャネル番号 直前に変換した チャネル番号 MD1 MD0 0 0 単発変換モード 1 ( 動作中の再起動可能 ) 0 1 単発変換モード 2 ( 動作中の再起動不可 ) 1 0 連続変換モード ( 動作中の再起動不可 ) 1 1 停止変換モード ( 動作中の再起動不可 ) A/D 変換モード設定ビット 263 第 17 章 8/10 ビット A/D コンバータ 表 17.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 ビット名 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) で設定した起動要因の発生によって異なります。 ( 注意事項 ) 単発 , 連続 , 停止の各変換モードの再起動不可は外部トリガ , ソフトウェ アすべての起動に適用されます。 ANS2, ANS1, ANS0: A/D 変換開始 チャネル設定 ビット • A/D 変換の開始チャネルの設定 , および変換中チャネル番号の確認を行 うビットです。 • A/D 変換を起動した場合は , A/D 変換開始チャネル設定ビット (ANE2 ~ ANE0) で設定されたチャネルから A/D 変換を開始します。 • A/D 変換中は , 変換中のチャネル番号が読み出されます。停止変換モー ドでの一時停止中は , 直前に変換したチャネルの番号が読み出されま す。 bit7 bit6 bit5 bit4 bit3 264 機能 第 17 章 8/10 ビット A/D コンバータ 表 17.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 ビット名 ANE2, ANE1, ANE0: A/D 変換終了 チャネル設定 ビット bit2 bit1 bit0 機能 • A/D 変換の終了チャネルの設定を行うビットです。 • A/D 変換を起動した場合は , A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定されたチャネルまで A/D 変換を行います。 • ANS2 ~ ANS0 ビットでチャネルを設定することで , チャネルが変換さ れます。連続 / 停止変換モードでは , ANS2 ~ ANS0 で設定した開始 チャネルが最後に変換されます。開始チャネルが終了チャネルより大き い場合は , 開始チャネル→ AN7, AN0 →終了チャネルへと , ひと続きに 変換されます。 ( 注意事項 ) A/D 変換開始チャネル設定ビット (ANS2, ANS1, ANS0) に開始チャネルを 設定した後に , A/D 変換モード選択ビット (MD1, MD0) および A/D 変換終 了チャネル設定ビット (ANE2, ANE1, ANE0) をリードモディファイライト 系命令で設定しないでください。 ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換 チャネルが読み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネル を設定した後に , MD1, MD0 ビットおよび ANE2, ANE1, ANE0 ビットを リードモディファイライト系命令で設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。 265 第 17 章 8/10 ビット A/D コンバータ 17.4.4 A/D データレジスタ (ADCR0, ADCR1) A/D データレジスタ (ADCR0/ADCR1) は , A/D 変換結果を格納するレジスタですが , A/D 変換の分解能の設定を行う機能もあります。 ■ A/D データレジスタ (ADCR0, ADCR1) 図 17.4-6 A/D データレジスタ (ADCR0, ADCR1) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 6 H S10 000037h R/W W bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ST1 ST0 CT1 CT0 - D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 00000 -XX BB 00000XXX 0XXXXXXX W W W W - R R R R R R R R R R XXXXXXXXB A/D 変換終了チャネル選択ビット D9 ~ D0 変換データを格納 CT1 0 0 1 1 CT0 00 1 0 1 ST1 00 0 1 1 ST0 0 1 0 1 S10 0 1 R : リードオンリ W : ライトオンリ X : 不定 - : 未定義 コンペア時間設定ビット 44 マシンサイクル (8 MHz の場合 , 5.50 μs) 66 マシンサイクル (20 MHz の場合 , 3.3 μs) 88 マシンサイクル (24 MHz の場合 , 3.67 μs) 176 マシンサイクル (24 MHz の場合 , 7.33 μs) サンプリング時間設定ビット 20 マシンサイクル (8 MHz の場合 , 2.5 μs) 32 マシンサイクル (20 MHz の場合 , 1.6 μs) 48 マシンサイクル (24 MHz の場合 , 2.0 μs) 128 マシンサイクル (24 MHz の場合 , 5.33 μs) A/D 変換分解能設定ビット 10 ビット分解能モード (D9 ~ D0) 8 ビット分解能モード (D9 ~ D0) <注意事項> コンペア時間 , サンプリング時間を設定するとき , 最小限必要な値が尊重されなければな りません。例えば , ある周波数では 44 マシンサイクルは使用できません。 詳細については , データシートを参照してください。 266 第 17 章 8/10 ビット A/D コンバータ 表 17.4-3 A/D データレジスタ 0 (ADCR0) の各ビットの機能説明 ビット名 bit15 機能 S10: A/D 変換分解能 設定ビット A/D 変換の分解能を設定するビットです。 "0" を設定した場合は , 10 ビット分解能が設定されます。 "1" を設定した場合は , 8 ビット分解能が設定されます。 ( 注意事項 ) 分解能によって , 使用される A/D データビットが異なります。 ST1, ST0: サンプリング 時間設定ビット • • bit14 bit13 • • • A/D 変換のサンプリング時間を設定するビットです。 A/D 変換が起動されると , サンプリング時間設定ビット (ST1, ST0) で設定した時間 , アナログ入力が取り込まれます。 ( 注意事項 ) • マシンクロック周波数 16(20, 24)MHz の場合に , "00B" を設定す • ると , 正常なアナログ電圧が得られない場合があります。 "00B" を設定する場合は , マシンクロック周波数を 8MHz 以下 としてください。 CT1, CT0: コンペア時間 設定ビット bit12 bit11 • • A/D 変換時のコンペア時間を設定するビットです。 アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , コンペア時 間設定ビット (CT1, CT0) で設定した時間後に , A/D 変換結果が確定し , A/D データビット (D9 ~ D0) に格納されます。 ( 注意事項 ) • マシンクロック周波数 16(20, 24)MHz の場合に , "00B" を設定す • ると , 正常なアナログ変換値が得られない場合があります。 "00B" を設定する場合は , マシンクロック周波数を 8MHz 以下 としてください。 -: 未定義ビット bit10 D9 ~ D0: A/D 変換終了 チャネル選択 ビット bit9 ~ bit0 - A/D 変換結果が格納されるビットです。1 回の A/D 変換終了ご とに書き換えられます。 • 通常は , 最終変換値が格納されます。 • 初期値は不定です。 ( 注意事項 ) A/D 変換データ保護機能があります ( 詳細は ,「17.6 8/10 ビット A/D コンバータの動作」を参照してください ) 。 A/D 変換中に , A/D データビットにデータを書き込まないでくだ さい。 • <注意事項> ・A/D 変換分解能設定ビット (S10) を書き換える場合は , 必ず A/D 変換動作前に A/D 変換 動作を停止させてから書き換えてください。A/D 変換動作開始後に書き換えた場合は , A/D データレジスタ (ADCR0/ADCR1) の内容は不定となります。 ・A/D データレジスタ (ADCR) を読み出す場合 , 10 ビットモードを設定した場合は , 必ずワード転送命令 (MOVW A, 002EH など ) を使用してください。 267 第 17 章 8/10 ビット A/D コンバータ 17.5 8/10 ビット A/D コンバータの割込み 8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ れると , 割込み要求を出力します。拡張インテリジェント I/O サービス (EI2OS) にも 対応しています。 ■ 8/10 ビット A/D コンバータの割込み 表 17.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 制御ステータスレジスタ 1 (ADCS1) の割込み要求フラグビット (INT) に "1" が セットされ , 割込み要求許可ビット (ADCS1: INTE=1) に "1" が設定されていると , 割込 み要求を割込みコントローラに出力します。 ■ 8/10 ビット A/D コンバータの割込みと EI2OS 表 17.5-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルのアドレス 割込み番号 #31 (1FH) レジスタ名 アドレス 下位 上位 バンク ICR10 0000BAH FFFF80H FFFF81H FFFF82H EI2OS 使用可能 ■ 8/10 ビット A/D コンバータの EI2OS 機能 10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリに転送でき ます。EI2OS 機能を使用する場合は , 変換データ保護機能が働き , A/D 変換データがメ モリに転送され , A/D 制御ステータスレジスタ 1 (ADCS1) の割込み要求フラグビット (INT) が "0" にクリアされるまで , A/D 変換は一時停止されるので , データの欠落を防 止できます。 268 第 17 章 8/10 ビット A/D コンバータ 17.6 8/10 ビット A/D コンバータの動作 8/10 ビット A/D コンバータには , 単発変換 , 連続変換 , 停止変換の 3 つの変換モー ドがあります。ここでは , それぞれのモードでの動作を説明します。 ■ 単発変換モードでの動作 単発変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ れたチャネルの間でのアナログ入力は , 連続して変換されます。変換されるチャネルが ANE ビットで設定された終了チャネルに達すると , A/D 変換は停止します。開始と終 了チャネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルが変換される と停止します。 図 17.6-1 に単発変換モードで動作するために必要な設定を示します。 図 17.6-1 単発変換モードの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ADCS ADCR ADER BUSY INT bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 INTE PAUS STS1 STS0 STRT RESV MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 ◇ ◇ ◇ ◇ ◇ ◇ S10 ST1 ST0 CT1 CT0 - ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ ◇ 0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ 変換データを保管 ADSEL ◇ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◇ :変換中に使用 ◆ :端子に相当したビットを "1" に設定 0 :"0" に設定 <参考> 下記に単発変換モードでの変換シーケンス例を示す ( ここでは ADSEL = 0 とする )。 ANS = 000B, ANE = 011B: AN0 → AN1 → AN2 → AN3 → End ANS = 110B, ANE = 010B: AN6 → AN7 → AN0 → AN1 → AN2 → End ANS = 011B, ANE = 011B: AN3 → End 269 第 17 章 8/10 ビット A/D コンバータ ■ 停止変換モードでの動作 停止変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ れたチャネルの間でのアナログ入力は , 各チャネルの変換後に一時停止しながら連続 して変換されます。ANE ビットで設定された終了チャネルが実行されると , A/D 変換 は一時停止し, 再びANSビットで設定されたチャネルから実行します。開始と終了チャ ネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルの変換が繰り返され ます。一時停止中に変換を再起動するには , STS1 と STS0 ビットで設定された起動要 因を発生します。 図 17.6-2 に停止変換モードで動作するために必要な設定を示します。 図 17.6-2 停止変換モードの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ADCS ADCR ADER BUSY INT ◇ ◇ ◇ ◇ ◇ ◇ S10 ST1 ST0 CT1 CT0 - ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ START ◇ bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RESV MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 0 1 1 ◇ ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ 変換データを保管 ADSEL ◇ ◇ ◆ 0 1 INTE PAUS STS1 STS0 bit8 ◆ ◆ ◆ ◆ ◆ ◆ ◆ :変換中に使用 :端子に相当したビットを "1" に設定 :"0" に設定 :"1" を設定 <参考> 下記に停止変換モードでの変換シーケンス例を示す ( ここでは ADSEL = 0 とする )。 ANS = 000B, ANE = 011B: AN0 → Pause → AN1 → Pause → AN2 → Pause → AN3 → Pause → AN0 → Repeat ANS = 110B, ANE = 011B: AN6 → Pause → AN7 → Pause → AN0 → Pause → AN1 → Pause → AN2 → Pause → AN3 → Pause → AN6 → Repeat ANS = 011B, ANE = 011B: AN3 → Pause → AN3 → Pause → Repeat 270 第 17 章 8/10 ビット A/D コンバータ 17.6.1 A/D 変換の EI2OS 使用 8/10 ビット A/D コンバータは , A/D 変換結果をメモリに転送するために EI2OS 転送 を使用します。 ■ A/D 変換の EI2OS 使用 EI2OS を使用したときの動作フローを図 17.6-3 に示します。 図 17.6-3 EI2OS を使用したときのサンプル動作フローチャート A/D 変換開始 サンプル & ホールド EI2OS 開始 変換 変換終了 割込み発生 *: 回数は EI2OS の設定で規定されます。 データ転送 データ転送 の繰返しが規定された 回数 * に 達した ? YES 割込み処理 NO 割込みクリア EI2OSを使用することで, 変換データ保護機能は連続変換中であってもすべてのデータ を消失から保護します。安全に , 複数のデータ要素をメモリに転送できます。 271 第 17 章 8/10 ビット A/D コンバータ 17.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 変換は停止 され , 次の変換データは格納されません。メモリへのデータ転送が完了すると , PAUS ビットは "0" にクリアされ , 変換が再開されます。 図 17.6-4 に EI2OS 使用時のデータ保護機能の動作フローを示します。 272 第 17 章 8/10 ビット A/D コンバータ 図 17.6-4 EI2OS 使用時のデータ保護機能の動作フローチャート EI2OS を設定 連続 A/D 変換開始 最初の変換終了 データをデータレジスタに 保管 EI2OS を起動 2 番目のデータ変換完了 EI2OS は終了 ? NO A/D 変換を停止 YES データをデータレジスタに 保管 3 番目のデータ変換 EI2OS を起動 Continue 全データ変換完了 EI2OS を起動 Continue データをデータレジスタに 保管 割込み処理ルーチン A/D 変換を初期化または停止 終了 ( 注意事項 ) A/D コンバータが停止している間のステップは , 除外する。 <注意事項> • 変換データ保護機能は , 割込み許可状態 (ADCS1: INTE = 1) のときのみ動作します。 • EI2OS が動作中で A/D 変換が停止している間に割込みが禁止になった場合 , A/D 変換 は再開されます。これにより古いデータを転送する前に新しいデータの上書きが発生 します。停止中に再開を試みると古いデータが破壊されます。 • 停止中に再開を試みるとスタンバイデータが破壊されます。 273 第 17 章 8/10 ビット A/D コンバータ 17.7 8/10 ビット A/D コンバータ使用上の注意 8/10 ビット A/D コンバータを使用する場合の注意点を示します。 ■ 8/10 ビット A/D コンバータ使用上の注意 ● アナログ入力端子 A/D コンバータのアナログ入力端子はポート 6 およびポート B の入出力端子と兼用に なっており, ポート方向レジスタ(DDR6とDDRB)とアナログ入力許可レジスタ(ADER) を切り換えて使用します。A/D コンバータのアナログ入力端子として使用する場合は , ポート方向レジスタ (DDR6 と DDRB) の対応するビットに "0" を設定 ( 入力ポートに 設定 ) 後 , アナログ入力許可レジスタ (ADER) レジスタの対応するビットに "1" を設定 ( アナログ入力モードに設定 : ADEX=1) し , ポート側の入力ゲートを固定してくださ い。ポート入力モード (ADEX=0) では中間レベルの信号が入力されると , ゲートに入 力リーク電流が流れます。 ● A/D コンバータおよびアナログ入力の電源の投入および切断順序 A/D コンバータの電源 (AVcc, AVRH, AVRL) とアナログ入力 (AN0 ~ AN7) への電源印 加は , 必ずデジタル電源 (Vcc) の投入後に行ってください。A/D コンバータの電源 , お よびアナログ入力電源を切断した後に , デジタル電源 (Vcc) を切断してください。 ● A/D コンバータの電源電圧について ラッチアップ防止のため , A/D コンバータの電源電圧 (AVcc) は , デジタル電源 (Vcc) を 超えないようにしてください。 274 第 17 章 8/10 ビット A/D コンバータ 17.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) 単発変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。 ■ 単発変換モードの EI2OS 起動プログラム例 ● 処理仕様 • アナログ入力 AN1 ~ AN3 まで変換して終了します。 • 変換データは , 200H ~ 205H 番地に順に転送します。 • 分解能は , 10 ビットとします。 • 変換は , ソフトウェア起動で行います。 図 17.8-1 単発変換モードの EI2OS 起動プログラム例のフロー 変換開始 AN1 割込み EI2OS 転送 AN12 割込み EI2OS 転送 EI2OS 転送 AN13 割込み 終了 割込みシーケンス 並行処理 275 第 17 章 8/10 ビット A/D コンバータ ● コーディング例 BAPL EQU 000100H ; 下位バッファアドレスポインタ BAPM EQU 000101H ; 中間バッファアドレスポインタ BAPH EQU 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/DC 用割込み制御レジスタ ADCS0 EQU 000034H ;A/D 制御ステータスレジスタ ADCS1 EQU 000035H ; ADCR0 EQU 000036H ;A/D データレジスタ ADCR1 EQU 000037H ; ;----- メインプログラム --------------------------------------------------------------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 ;EI2OS 転送カウントを 3 に設定 , ; これは変換カウントと同じ値 MOV DDR6,#11110001B ;P61 ~ P63 を入力として設定 MOV ADER0,#00001110B ;P61/AN1 ~ P63/AN3 をアナログ入力として設定 MOV CTH,#00H ; MOV ADCS0,#0BH ; シングル起動 , AN1 ~ AN3 を変換 MOV ADCS1,#0A2H ; ソフトウェア起動 , A/D 変換開始 ; 割込み許可 MOV ILM,#07H ;PS の ILIM をレベル 7 に設定 OR CCR,#40H ; 割込み許可 LOOP: MOV A,#00H ; ループエンドレス MOV A,#01H BRA LOOP ;----- 割込みプログラム ---------------------------------------------------------ED_INT1: MOV I:ADCS1,#00H ;A/D 変換停止 , 割込みフラグをクリア , 不可 ; RETI ; 割込みから復帰 CODE ENDS 276 第 17 章 8/10 ビット A/D コンバータ ;----- ベクタ設定 ------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFB4H ; ベクタを割込み #18(12H) に設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモード設定 VECT ENDS END START 277 第 17 章 8/10 ビット A/D コンバータ 17.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) 連続変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。 ■ 連続変換モードの EI2OS 起動プログラム例 ● 処理仕様 • アナログ入力 AN3 ~ AN5 の変換を 2 度行い , 各チャネルの変換データを 2 個取得 します。 • 変換データは , 600H ~ 60BH 番地に順に転送します。 • 分解能は , 10 ビットとします。 • 変換は , 16 ビットリロードタイマ 1 で行います (MB90V390HA/HB でのみ使用可能 です )。 図 17.9-1 連続変換モードの EI2OS 起動プログラム例のフロー 変換開始 AN3 割込み EI2OS 転送 AN4 割込み EI2OS 転送 AN5 割込み EI2OS 転送 全 6 回転送後 割込みシーケンス 終了 278 第 17 章 8/10 ビット A/D コンバータ ● コーディング例 BAPL EQU 000100H ; 下位バッファアドレスポインタ BAPM EQU 000101H ; 中間バッファアドレスポインタ BAPH EQU 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 データレジスタ EQU 000037H ; TMCSR1LEQU 000068H ; 下位制御ステータスレジスタ 1 TMCSR1HEQU 000069H ; TMRL1L EQU 003902H ;16 ビットリロードレジスタ 1 TMRL1H EQU 003903H ; ADCR1 ;----- メインプログラム --------------------------------------------------------------CODE CSEG START: ; スタックポインタ (SP) が既に初期化済み ; であると想定 AND CCR,#0BFH ; 割込み不可 MOV ICR10,#08H ; 割込みレベル : 0 ( 最優先 ) ; 割込み時に E12OS を許可 ; MOV BAPL,#00H ; 変換データが保管されるアドレスを設定 MOV BAPM,#06H ;(600H ~ 60BH を使用 ) MOV BAPH,#00H ; MOV ISCS,#18H ; ワードデータを転送 , アドレスに 1 を加算 , ; そして I/O からメモリにデータを転送 MOV IOAL,#36H ; アナログデータレジスタのアドレスを MOV IOAH,#00H ; 転送ソースアドレスポインタとして設定 MOV DCTL,#06H ;EI2OS による 6 種類転送 ;(3 チャネルに対しそれぞれ 2 種類 ) MOV DDR6,#00000000B ; P60 ~ P67 を入力として設定 MOV ADER0,#00111000B ;P63/AN3 ~ P65/AN5 をアナログ入力として設定 MOV DCTH,#00H ; MOV ADCS0,#9DH ; 連続変換モード , AN3 ~ AN5 を変換 MOV ADCS1,#0A8H ;16 ビットタイマを起動 , A/D 変換を開始し ; 割込みを許可する 279 第 17 章 8/10 ビット A/D コンバータ MOVW TMRL1L,#0320H ; タイマ値を 800(320H), 100s に設定 MOV TMCSR1H,#00H ; クロックソースを 125ns に設定 ; 外部トリガを禁止 MOV TMCSR1L,#12H ; タイマ出力を禁止 , 割込みを禁止し ; リロードを許可 MOV TMCSR1L,#13H ;16 ビットタイマを起動 MOV ILM,#07H ;PS の ILM をレベル 7 に設定 OR CCR,#40H ; 割込みを許可 MOV A,#00H ; ループエンドレス MOV A,#01H BRA LOOP LOOP: ;----- 割込みプログラム ---------------------------------------------------------ED_INT1: MOV I:ADCS1,#80H ;A/D 変換停止不可 , 割込みフラグを ; クリア , 不可 RETI CODE ; 割込みから復帰 ENDS ;----- ベクタ設定 ------------------------------------------------------------VECT 280 CSEG ORG ABS=0FFH 0FFB4H DSL ED_INT1 ORG 0FFDCH DSL START DB 00H VECT ENDS END START ; ベクタを割込み #18(12H) に設定 ; リセットベクタ設定 ; シングルチップモード設定 第 17 章 8/10 ビット A/D コンバータ 17.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) 停止変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。 ■ 停止変換モードの EI2OS 起動プログラム例 ● 処理仕様 • アナログ入力 AN3 を一定期間で 12 回変換します。 • 変換データは , 600H ~ 617H 番地に順に転送します。 • 分解能は , 10 ビットとします。 • 変換は , 16 ビットリロードタイマ 1 で行います (MB90V390HA/HB でのみ使用可能 です )。 図 17.10-1 停止変換モードの EI2OS 起動プログラム例のフロー 変換開始 AN3 割込み EI2OS 転送 停止 16 ビットリロードタイマ 1 起動 12 回転送後 割込みシーケンス 終了 281 第 17 章 8/10 ビット A/D コンバータ ● コーディング例 BAPL EQU 000100H ; 下位バッファアドレスポインタ BAPM EQU 000101H ; 中間バッファアドレスポインタ BAPH EQU 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/DC 用割込み制御レジスタ ADCS0 EQU 000034H ;A/D 制御ステータスレジスタ ADCS1 EQU 000035H ; ADCR0 EQU 000036H ;A/D データレジスタ EQU 000037H ; TMCSR1LEQU 000068H ; 下位制御ステータスレジスタ 1 TMCSR1HEQU 000069H ; TMRL1L EQU 003902H ;16 ビットリロードレジスタ 1 TMRL1H EQU 003903H ; ADCR1 ;----- メインプログラム -------------------------------------------------------------CODE CSEG START: ; スタックポインタ (SP) が既に初期化済み ; であると想定 AND CCR,#0BFH ; 割込み不可 MOV ICR10,#08H ; 割込みレベル : 0 ( 最優先 )+ EI2OS. MOV BAPL,#00H ; 変換データが保管されるアドレスを設定 MOV BAPM,#06H ;(600H ~ 617H を使用 ) MOV BAPH,#00H ; MOV ISCS,#19H ; ワードデータを転送 , アドレスに 1 を加算 , ;I/O からメモリにデータを転送 ; そしてリソース要求により終了 MOV IOAL,#36H ; アナログデータレジスタのアドレスを MOV IOAH,#00H ; 転送ソースアドレスポインタとして設定 MOV DCTL,#0CH ;EI2OS によるチャネル 3 を 12 回転送 MOV DDR6,#00000000B ;P60 ~ P67 を入力として設定 MOV ADER0,#00001000B ; P63/AN3 をアナログ入力として設定 MOV ADCS0,#0DBH ; 変換モードを停止 , AN3CH を変換 MOV ADCS1,#0A8H ;16 ビットタイマを起動 , A/D 変換を開始し ; 割込みを許可する MOVW TMRL1L,#0320H ; タイマ値を 800(320H), 100s に設定 MOV TMCSR1H,#00H ; クロックソースを 125ns に設定 ; 外部トリガを禁止 282 第 17 章 8/10 ビット A/D コンバータ MOV TMCSR1L,#12H ; タイマ出力を禁止 , 割込みを禁止し ; リロードを許可 MOV TMCSR1L,#13H ;16 ビットタイマを起動 MOV ILM,#07H ;PS の ILM をレベル 7 に設定 OR CCR,#40H ; 割込みを許可 MOV A,#00H ; ループエンドレス MOV BRA A,#01H LOOP LOOP: ;----- 割込みプログラム ---------------------------------------------------------ED_INT1: MOV I:ADCS1,#80H ;A/D 変換停止不可 , 割込みフラグを ; クリア , 不可 RETI CODE ; 割込みから復帰 ENDS ;----- ベクタ設定 ------------------------------------------------------------VECT CSEG ORG ABS=0FFH 0FFB4H DSL ED_INT1 ORG 0FFDCH DSL START DB 00H VECT ENDS END START ; ベクタを割込み #18(12H) に設定 ; リセットベクタ設定 ; シングルチップモード設定 283 第 17 章 8/10 ビット A/D コンバータ 284 第 18 章 UART0 UART0 の機能と動作について説明します。 18.1 UART0 の特長 18.2 UART0 のブロックダイヤグラム 18.3 UART0 のレジスタ 18.4 UART0 の動作 18.5 ボーレート 18.6 内部クロックおよび外部クロック 18.7 転送データフォーマット 18.8 パリティビット 18.9 割込み生成とフラグのセットタイミング 18.10 UART0 の応用例 285 第 18 章 UART0 18.1 UART0 の特長 UART0 は , 非同期通信または CLK 同期通信を行うためのシリアル I/O ポートです。 MB90945 シリーズには UART0 と UART3 の 2 本の UART があります。UART3 に ついては「第 19 章 UART2/3」を参照してください。 ■ UART0 の特長 UART0 には以下の特長があります。 • 全二重ダブルバッファ • CLK 同期と CLK 非同期調歩式データ転送のサポート • マルチプロセッサモードのサポート ( モード 2) • 専用ボーレートジェネレータの内蔵 (12 種類 ) • 外部クロック入力または内部タイマによる自由なボーレート設定のサポート • 可変長データ (7 ~ 9 ビット [ パリティなし ], 6 ~ 8 ビット [ パリティあり ]) • エラー検出機能 ( フレーミング , オーバラン , パリティ ) • 割込み機能 ( 受信割込みと送信割込み ) • NRZ 形式の転送フォーマット 286 第 18 章 UART0 18.2 UART0 のブロックダイヤグラム 図 18.2-1 に , UART0 のブロックダイヤグラムを示します。 ■ UART0 のブロックダイヤグラム 図 18.2-1 UART0 のブロックダイヤグラム コントロールバス 受信割込み (CPU へ ) 専用ボーレートクロック SCK0 送信クロック 16 ビットリロードタイマ 0 クロック 選択回路 送信割込み (CPU へ ) 受信クロック SCK0 SIN0 受信制御回路 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ SOT0 送信用シフタ 受信用シフタ 受信状態判定回路 受信終了 送信開始 UIDR0 EI2OS 用 受信エラー発生信号 (CPU へ ) UODR0 データバス UMC0 レジスタ PEN SBL MC1 MC0 SMDE RFC SCKE SOE USR0 レジスタ RDRF ORFE PE TDRE RIE TIE RBF TBF UDR0 レジスタ BCH RC3 RC2 RC1 RC0 BCH0 P D8 コントロールバス ( 注意事項 ) このダイヤグラムは UART0 に有効です。 287 第 18 章 UART0 18.3 UART0 のレジスタ UART0 には , 次の 4 つのレジスタがあります。 • シリアルモード制御レジスタ (UMC0) • ステータスレジスタ (USR0) • インプットデータ / アウトプットデータレジスタ (UIDR0/UODR0) • レート / データレジスタ (URD0) ■ UART0 のレジスタ シリアルモード制御レジスタ UMC0 アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000020H PEN SBL MC1 MC0 SMDE RFC SCKE SOE 00000100 R/W R/W R/W R/W R/W W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 RDRF ORFE PE TDRE RIE TIE RBF TBF 00010000 R R R R R/W R/W R R ステータスレジスタ USR0 アドレス ch.0 000021H インプットデータレジスタ / アウトプットデータレジスタ UIDR0( リード ) UODR0( ライト ) アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000022H D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXX R/W R/W R/W R/W R/W R/W R/W R/W レート / データレジスタ URD0 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 ch.0 000023H BCH RC3 RC2 RC1 RC0 BCH0 P D8 0000000X R/W R/W R/W R/W R/W R/W R/W R/W R/W R W X 288 :リード / ライト可能 :リードオンリ :ライトオンリ :不定 第 18 章 UART0 18.3.1 シリアルモード制御レジスタ (UMC0) シリアルモード制御レジスタ (UMC0) は , UART0 の動作モードを指定します。動作 が停止中に動作モードを設定します。ただし , RFC ビットは動作中もアクセス可能 です。 ■ シリアルモード制御レジスタ (UMC0) 図 18.3-1 シリアルモード制御レジスタ (UMC0) の構成 UMC0 アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000020 H 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 SCLK 許可ビット SOE 0 SOT0 端子禁止 (High-Z) 1 SOT0 端子許可 (TxData) bit1 シリアルクロック出力イネーブルビット SCKE 0 外部シリアルクロック入力 1 内部シリアルクロック出力 bit2 RFC レシーバフラグクリアビット 書込み時 読出し時 0 RDRF, ORFE, PE をクリア 1 影響なし 常に "1" bit3 同期モード許可ビット SMDE 0 スタート・ストップ CLK 同期送信 1 非同期送信 bit4 bit5 MC0 MC1 0 0 モード 0:非同期 , 7(6) データビット 1 0 モード 1:非同期 , 8(7) データビット 0 1 モード 2:非同期 , マルチプロセッサ , 8+1 データビット 1 1 モード 3:非同期 , 9(8) データビット モード制御ビット bit6 ストップビット長ビット SBL 0 1 ビット 1 2 ビット bit7 パリティ許可ビット PEN R/W : リード / ライト可能 W : ライトオンリ ( リードは常に "0" を戻します ) : 初期値 0 パリティ使用禁止 1 パリティを使用 289 第 18 章 UART0 ■ シリアルモード制御レジスタ (UMC0) の内容 表 18.3-1 シリアルモード制御レジスタの各ビットの機能 ( 1 / 2 ) ビット名 bit 7 bit 6 機能 PEN: パリティ許可 シリアルデータ I/O でパリティビットの追加 ( 送信時 ) または検出 ( 受信 時 ) を指定します。モード 2 では "0" に設定します。 0: パリティなし 1: パリティあり SBL: ストップ ビット長 ビット 送信データのストップビット数を指定します。受信データについては , 最初のストップビットだけが認識され , それ以降のストップビットは無 視されます。 0:1 ビット長 1:2 ビット長 MC1, MC0: モード制御 ビット 転送データの長さを制御します。表 18.4-1 に , 本ビットで選択可能な 4 つの転送モード ( データ長 ) を示します。 bit 5, bit4 Mode 0 MC1 0 MC2 0 データ長 7(6) 1 2 0 1 1 0 8(7) 8+1 3 1 1 9(8) 括弧内の数字は , パリティ付のデータ長を示します。 "+1" はパリティの代わりにアドレス / データビットを意味します。 bit 3 bit 2 bit 1 SMDE: 同期モード 許可ビット SMDE は , 転送方法を選択します。 0: 調歩式 CLK 同期転送 ( 調歩ビットによるクロック選択の同期転送 ) 1: 調歩式 CLK 非同期転送 RFC: レシーバ フラグクリア ビット "0" を書き込むと , USR0 レジスタ中の RDRF, ORFE, PE フラグがクリア されます。"1" 書込みは無効であり , 読出し値は常に "1" になります。 ( 注意事項 ) 受信割込みが UART0 操作中許可されている場合 , RDRF, ORFE, PE の どれかが "1" になっていれば , RFC には "0" のみを書き込みます。 SCKE: SCLK 許可 ビット CLK 同期モードで本ビットに "1" を書き込むと , ポート端子が UART0 シリアルクロック出力端子に切り換わり , 同期クロックが出力されます。 CLK 非同期モードまたは外部クロックモードで "0" を設定してくださ い。 0: 汎用入出力ポートとして機能し , シリアルクロックを出力しません。 ポートが入力モード (DDR=0) に設定され , RC3 ~ RC0 が "1111B" に設 定されている場合 , 外部クロック入力端子として機能します。 1:UART0 シリアルクロック出力端子として機能します。 ( 注意事項 ) ポート端子をクロック出力として使用している場合 , ポート方向レジス タの対応するビットを "1" に設定する必要があります。 290 第 18 章 UART0 表 18.3-1 シリアルモード制御レジスタの各ビットの機能 ( 2 / 2 ) ビット名 SOE: シリアル出力 許可ビット bit 0 機能 "1" を書き込むと , ポート端子が UART0 シリアルデータ出力端子に切り 換わり , シリアル出力が可能になります。 0: ポート端子として機能し , シリアルデータを出力しません。 1:UART0 シリアルデータ出力端子 (SOT0) として機能します。 ( 注意事項 ) ポート端子をシリアル出力として使用している場合 , ポート方向レジス タの対応するビットを "1" に設定する必要があります。 291 第 18 章 UART0 18.3.2 ステータスレジスタ (USR0) ステータスレジスタ (USR0) は , UART0 ポートの現在の状態を示します。 ■ ステータスレジスタ (USR0) の構成 図 18.3-2 ステータスレジスタ (USR0) の構成 USR0 アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000021 H RDRF ORFE R R PE R TDRE RIE TIE RBF R R/W R/W R 初期値 TBF R 00010000B bit8 送信ビジーフラグビット TBF 0 送信アイドル 1 送信ビジー bit9 受信ビジーフラグビット RBF 0 受信アイドル 1 受信ビジー bit10 TIE 0 1 送信割込み許可ビット ディセーブル割込み イネーブル割込み bit11 RIE 受信割込み許可ビット 0 ディセーブル割込み 1 イネーブル割込み bit12 TDRE 送信データレジスタエンプティビット 0 UODR0 におけるデータあり 1 UODR0 におけるデータなし bit13 PE パリティエラービット 0 パリティエラー発生なし 1 パリティエラー発生 bit14 ORFE オーバラン / フレーミングエラービット 0 オーバラン / フレーミングエラー発生なし 1 受信中にオーバラン / フレーミングエラー発生 bit15 RDRF : リード / ライト可能 0 UIDR0 におけるデータなし R : フラグはリードオンリ , ライトは影響なし 1 UIDR0 におけるデータあり : 初期値 292 受信データレジスタフルビット R/W 第 18 章 UART0 ■ ステータスレジスタ (USR0) の内容 表 18.3-2 ステータスレジスタビットの機能 ( 1 / 2 ) ビット名 bit 15 機能 RDRF: 受信データ レジスタ フルビット UIDR0 ( インプットデータレジスタ ) の状態を示すフラグです。UIDR0 レジスタに受信データがロードされるとセットされ , UIDR0 レジスタを 読み出すか , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされ ます。RIE がアクティブな場合 , RDRF がセットされていれば受信割込 み要求が生成されます。 0:UIDR0 中にデータなし 1:UIDR0 中にデータあり ORFE: オーバラン / フレーミング エラービット 受信中にオーバランまたはフレーミングエラーが発生した場合にセッ トされるフラグです。UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。本フラグをセットすると , UIDR0 中のデータは無効に なり , 受信用シフタから UIDR0 へのロードが実行されません。RIE が アクティブな場合 , ORFE がセットされていれば受信割込み要求が生成 されます。 0: エラーなし 1: エラーあり ( 下の表を参照 ) bit 14 bit 11 ORFE 0 0 空 0 1 フレーミングエラー 1 0 有効データ 1 1 オーバランエラー UIDR0 の状態 PE: パリティ エラービット 受信パリティエラーが発生した場合にセットされるフラグです。UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。本フラグを セットすると , UIDR0 中のデータは無効になり , 受信用シフタから UIDR0 へのロードが実行されません。RIE がアクティブな場合 , PE が セットされていれば受信割込み要求が生成されます。 0: パリティエラーなし 1: パリティエラー発生 TDRE: 送信データ レジスタ エンプティ ビット UODR0 ( アウトプットデータレジスタ ) の状態を示すフラグです。 UODR0 レジスタに送信データを書き込むと , クリアされます。データ が送信用シフタにロードされ , 転送が開始されるとセットされます。 TIE がアクティブな場合 , TDRE がセットされていれば送信割込み要求 が生成されます。 0:UODR0 中にデータあり 1:UODR0 中にデータなし RIE: 受信割込み 許可ビット 受信割込み要求を許可します。 0: 割込みを禁止 1: 割込みを許可 bit 13 bit 12 RDRF 293 第 18 章 UART0 表 18.3-2 ステータスレジスタビットの機能 ( 2 / 2 ) ビット名 bit 10 bit 9 bit 8 294 機能 TIE: 送信割込み 許可ビット 送信割込み要求を許可します。TDRE が "1" のとき送信割込みが許可さ れると , 送信割込みが直ちに生成されます。 0: 割込みを禁止 1: 割込みを許可 RBF: 受信ビジー フラグビット UART0 がインプットデータを受信中であることを示すフラグです。ス タートビットが検出されるとセットされ , ストップビットが検出される とクリアされます。 0: 受信側がアイドル状態 1: 受信側がビジー状態 TBF: 送信ビジー フラグビット UART0 がインプットデータを送信中であることを示すフラグです。送 信データが UODR0 レジスタに書き込まれるとセットされ , 送信が完了 するとクリアされます。 0: 送信側がアイドル状態 1: 送信側がビジー状態 第 18 章 UART0 18.3.3 インプットデータレジスタ (UIDR0) とアウトプット データレジスタ (UODR0) インプットデータレジスタ (UIDR0) は , シリアル・データ・インプット・レジスタ であり , アウトプットデータレジスタ (UODR0) は , シリアル・データ・アウトプッ ト・レジスタです。 データ長が 6 ビットの場合最上位ビットの D7 と D6 が無視され , データ長が 7 ビッ トの場合最上位ビットの D7 が無視されます。USR0 レジスタ中の TDRE=1 のとき のみ UODR0 に書込みし , USR0 レジスタ中の RDRF=1 のときのみ UIDR0 を読出し できます。 ■ インプットデータレジスタ (UIDR0) とアウトプットデータレジスタ (UODR0) 図 18.3-3 インプットデータレジスタ (UIDR0) とアウトプットデータレジスタ (UODR0) アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000022 H R/W R/W R/W R/W R/W R/W R/W R/W 初期値 X X X X X X X XB bit7 ~ bit0 R/W R/W: リード / ライト可能 データレジスタ リード 入力データレジスタから読出し ライト 出力データレジスタへ書込み 295 第 18 章 UART0 18.3.4 レート・データレジスタ (URD0) レート・データレジスタ (URD0) は , UART0 用のデータ転送速度を選択するレジス タです。送信データ長が 9 ビットのとき , データの最上位ビット (bit8) を保持しま す。UART0 が停止中にボーレートとパリティを設定してください。 ■ レート・データレジスタ (URD0) 図 18.3-4 レート・データレジスタ (URD0) の構成 URD0 アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000023 H BCH RC3 RC2 RC1 RC0 BCH0 P 初期値 D8 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 XB bit8 UIDR0/UODR0 データビット 8 D8 X リード / ライト bit9 パリティビット P 0 偶数パリティ 1 奇数パリティ bit10 ボーレートクロック変換ビット BCH0 - 詳細については概要を参照してください。 bit14 ~ bit11 RC3 ~ RC0 - レート制御ビット 詳細については概要を参照してください。 bit15 BCH R/W 296 : リード / ライト可能 : 初期値 - ボーレートクロック変換ビット 詳細については概要を参照してください。 第 18 章 UART0 ■ レート・データレジスタ (URD0) の内容 表 18.3-3 レート・データレジスタビットの機能 ビット名 BCH, BCH0: ボーレート クロック変換 ビット bit 15, bit 10 bit 14 ~ bit11 bit 9 bit 8 RC3, RC2, RC1, RC0: レート制御 ビット 機能 ボーレートクロック用のマシンサイクルを指定します ( 詳細につ いては , 「18.4 UART0 の動作」を参照 ) 。 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 ポート用のクロック入力を選択します ( 詳細については , 「18.4 UART0 の動作」を参照 ) 。 RC3 ~ RC0 "0000" ~ "1011" クロック入力 専用ボーレートジェネレータ "1101" 16 ビットリロードタイマ 0 "1111" 外部クロック P: パリティビット パリティがアクティブのとき , 偶数 / 奇数パリティを設定します (PEN=1)。 0: 偶数パリティ 1: 奇数パリティ D8: UIDR0/UODR0 データビット 8 モード 2 または 3 (9 ビットデータ長 ) およびパリティなしでの転 送データの bit8 を保持します。読出し時には UIDR0 レジスタの bit8 として , 書込み時には UODR0 レジスタの bit8 として扱われま す。その他のモードでは意味を持ちません。USR0 レジスタ中で TDRE=1 のときのみ D8 に書込みます。 297 第 18 章 UART0 18.4 UART0 の動作 表 18.4-1 に , UART0 の動作モードを示します。モードを切り換えるには , UMC0 レ ジスタに値を設定します。 ■ UART0 の動作モード 表 18.4-1 UART0 の動作モード モード 0 1 2 3 パリティ データ長 On 6 Off 7 On 7 Off 8 Off 8+1 On 8 Off 9 クロックモード CLK 非同期または CLK 同期 ストップビット長 * 1 ビットまたは 2 ビット *: ストップビット長については , 送信動作のみ指定が可能です。受信動作については常に 1 ビット 長となります。UART0 は上記モード以外では動作しませんので , 設定しないでください。 <注意事項> UART0は , 調歩クロック同期転送を使用するため , クロック同期転送でもスタートビット とストップビットをデータに追加します。 298 第 18 章 UART0 18.5 ボーレート 専用ボーレートジェネレータ使用時には , 次の 2 種類があります。 • CLK 同期ボーレート • CLK 非同期ボーレート ■ CLK 同期ボーレート URD0 レジスタの中の BCH, BCH0, RC3, RC2, RC1 の 5 つのビットが CLK 同期転送用 のボーレートを選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 0 → 6 分周 [ 例えば , 24 MHz 時 24/6 = 4 MHz] 0 1 → 4 分周 [ 例えば , 16 MHz 時 16/4 = 4 MHz] 1 0 → 3 分周 [ 例えば , 12 MHz 時 12/3 = 4 MHz] 1 1 → 5 分周 [ 例えば , 20 MHz 時 20/5 = 4 MHz] 次に , 上記で選択したクロックの分周比を RC3, RC2, RC1, RC0 に設定します。CLK 同 期転送には , 以下の 3 つの設定が可能です。それ以外の設定は禁止されます。 RC3 RC2 RC1 RC0 0 1 0 1 → 2 分周 [ 例えば , 4 MHz 時 4/2 = 2.0 M (bps)] 0 1 1 1 → 4 分周 [ 例えば , 4 MHz 時 4/4 = 1.0 M (bps)] 1 0 0 1 → 8 分周 [ 例えば , 4 MHz 時 4/8 = 0.5 M (bps)] (2 MHz 時 , 上記の例の半分の速度になります。) ■ CLK 非同期ボーレート URD0 レジスタの中の BCH, BCH0, RC3, RC2, RC1, RC0 の 6 つのビットが CLK 非同期 転送用のボーレートを選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 0 → 6 分周 [ 例えば , 24 MHz 時 24/6 = 4 MHz] 0 1 → 4 分周 [ 例えば , 16 MHz 時 16/4 = 4 MHz] 1 0 → 3 分周 [ 例えば , 12 MHz 時 12/3 = 4 MHz] 1 1 → 5 分周 [ 例えば , 10 MHz 時 10/5 = 2 MHz] 299 第 18 章 UART0 次に , 上記で選択したクロックの非同期転送クロック分周比を RC3, RC2, RC1, RC0 に 設定します。CLK 非同期転送には , 以下の設定が可能です。 ボーレート = ボーレート = ボーレート = ボーレート = φ /6 2 m-1 φ /4 2 m-1 φ /3 2 m-1 φ /5 2 m-1 [bps] ( マシンサイクル= 24 MHz) [bps] ( マシンサイクル= 16 MHz) [bps] ( マシンサイクル= 12 MHz) [bps] ( マシンサイクル= 20 MHz) 上記の 12 個のボーレートが選択可能であり , CLK 同期ボーレートの計算方法の公式を 以下に示します。 ボーレート = ボーレート = ボーレート = ボーレート = φ /6 2 m-1 φ /4 2 m-1 φ /3 2 m-1 φ /5 2 m-1 [bps] ( マシンサイクル= 24 MHz) [bps] ( マシンサイクル= 16 MHz) [bps] ( マシンサイクル= 12 MHz) [bps] ( マシンサイクル= 20 (10) MHz) ここで , φ はマシンサイクルであり , m は RC3 ~ RC1 の 10 進数表記です。 <注意事項> m=0 または m=1 の場合 , 上記公式は計算不可です。 CLK 非同期ボーレートが -1% ~ +1% の範囲にある場合 , データ転送が可能です。ボー レートは , CLK 非同期ボーレートを 8 × 13, 8 × 12, 8 で割った値です。 表 18.5-1 に , マシンサイクルが 24MHz, 20MHz, 16MHz, 12MHz 時の例を示します。表中 の "-" でマークした設定は使用しないでください。 300 第 18 章 UART0 表 18.5-1 ボーレート CLK 非同期 (μs/Baud) CLK 同期 (μs/Baud) BCH/ 0=11 BCH/ 0=01 BCH/ 0=10 24 MHz 20 MHz 16 MHz 12 MHz BCH/ 0=00 BCH/ 0=11 BCH/ 0=01 BCH/ 0=10 RC0 12 MHz RC1 16 MHz RC2 20 MHz RC3 24 MHz CLK 非同 期分 周比 BCH/ 0=00 0 0 0 0 - - - - 8 x 12 - - - - 0 0 0 1 26/ 38460 26/ 38460 26/ 38460 26/ 38460 8 x 13 - - - - 0 0 1 0 - - 8 - - - - 0 0 1 1 2/ 500000 2/ 500000 2/ 500000 2/ 500000 8 - - - - 0 1 0 0 48/ 20833 48/ 20833 48/ 20833 48/ 20833 8 x 12 - - - - 0 1 0 1 52/ 19230 52/ 19230 52/ 19230 52/ 19230 8 x 13 0.5 / 2M 0.5 / 2M 0.5 / 2M 0.5 / 2M 0 1 1 0 96/ 10417 96/ 10417 96/ 10417 96/ 10417 8 x 12 - - - - 0 1 1 1 104/ 9615 104/ 9615 104/ 9615 104/ 9615 8 x 13 1 / 1M 1 / 1M 1 / 1M 1 / 1M 1 0 0 0 192/ 5208 192/ 5208 192/ 5208 192/ 5208 8 x 12 - - - - 1 0 0 1 208/ 4808 208/ 4808 208/ 4808 208/ 4808 8 x 13 2 / 500K 2/ 500K 2/ 500K 2/ 500K 1 0 1 0 - - - - 8 - - - - 1 0 1 1 16/ 62500 16/ 62500 16/ 62500 16/ 62500 8 - - - - 1 1 0 0 - - - - - - - - - 1 1 0 1 - - - - - - - - - 1 1 1 0 - - - - - - - - - 1 1 1 1 - - - - - - - - - 301 第 18 章 UART0 18.6 内部クロックおよび外部クロック RC3 ~ RC0 を "1101B" に設定すると , 16 ビットリロードタイマ 0 からのクロック 信号を選択することになります。RC3 ~ RC0 を "1111B" に設定すると , 外部ク ロックを選択することになります。なお , 外部クロックの最大周波数は 2MHz です。 ■ 内部クロックおよび外部クロック CLK 非同期ボーレートは , CLK 同期ボーレートを 8 で割ったものです。また , CLK 非 同期ボーレートが選択したボーレート -1% ~ +1% の範囲にある場合 , データ転送が可 能です。表 18.6-1 に , 内部タイマをクロックとして選択した場合のボーレートを示し ます。本表の値は , マシンサイクルを 7.3728MHz として計算しています。ただし , 表 中の "-" でマークした設定は使用しないでください。 ボーレート = φ/X 8 × 2 (n+1) [bps] φ: マシンサイクル X: 内部タイマのカウントクロックソースの 分周比 n: リロード値 (10 進数 ) 表 18.6-1 ボーレートとリロード値 リロード値 ボーレート 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 進数 ) です。 302 第 18 章 UART0 18.7 転送データフォーマット UART0 は , NRZ(non-return-to-zero) 形式のデータのみを扱います。図 18.7-1 に , 送受信クロックと CLK 同期モードのデータとの関係を示します。 ■ 転送データフォーマット 図 18.7-1 転送データフォーマット SCK0 SIN0, SOT0 0 1 0 起動 LSB 1 1 0 0 1 0 MSB 1 停止 D8 転送されたデータは 01001101B ( モード 1) または 101001101B ( モード 3)。 1 ⎫ 停止⎬⎭ モードに依存 図 18.7-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始 まり , LSB ファーストで指定されたデータビット長転送が行われ , ストップビット ("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロックを入 力してください。 内部クロック ( 専用ボーレートジェネレータまたは 16 ビットリロードタイマ ) を選択 している場合 , クロックは連続的に出力されます。CLK 同期転送を使用する場合 , 選択 したボーレートクロックが安定 (2 ボーレートクロックサイクル ) するまでデータ転送 を開始しないでください。 CLK 非同期転送を使用する場合 , UMC0 レジスタ中の SCKE ビットを "0" に設定し , ク ロック出力を無効にしてください。 SIN0 と SOT0 の転送データフォーマットは , 図 18.71 に示すものと同じです。 303 第 18 章 UART0 18.8 パリティビット URD0 レジスタ中の P ( パリティ ) ビットは , パリティが許可されている場合に偶数 / 奇数パリティのどちらを使用するかを指定します。UMC0 レジスタ中の PEN ( パリ ティ許可 ) ビットはパリティを許可します。 ■ パリティビット 偶数パリティ設定時に図 18.8-1に示すデータをSINに入力すると, 受信パリティエラー が発生します。図 18.8-1 には , 001101B を偶数 / 奇数パリティで送信時に送信される データも示しています。 図 18.8-1 パリティを許可したシリアルデータ SIN0 ( 受信パリティエラー発生 P=0) 0 起動 1 LSB 0 1 1 0 0 MSB 0 1 停止 ( パリティ ) SOT0 ( 偶数パリティ送信 P=0) 0 起動 1 LSB 0 1 1 0 0 MSB 1 1 停止 ( パリティ ) SOT0 ( 奇数パリティ送信 P=1) 0 起動 304 1 LSB 0 1 1 0 0 MSB 0 1 停止 ( パリティ ) 第 18 章 UART0 18.9 割込み生成とフラグのセットタイミング UART0 には , 2 つの割込み要因と 6 個のフラグがあります。2 つの割込み要因には , 受信割込みと送信割込みがあります。6 個のフラグとは , RDRF, ORFE, PE, TDRE, RBF, TBF です。受信については , RDRF, ORFE, PE フラグが割込みを要求します。 送信については , TDRE フラグが割込みを要求します。 ■ 6 つのフラグのセットタイミング ● RDRF フラグ RDRF フラグは UIDR0 レジスタに受信データがロードされるとセットされます。UMC0 レジスタ中のRFCに"0"を書き込むか, UIDR0レジスタを読み出すと, クリアされます。 ● ORFE フラグ ORFE フラグは , オーバランまたはフレーミングエラーフラグです。受信エラーが発生 した場合にセットされ , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。 ● PE フラグ PE フラグは , 受信パリティエラーフラグです。受信パリティエラーが発生した場合に セットされ , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。パリティ 検出機能はモード 2 では有効ではないので注意してください。 ● TDRE フラグ TDRE フラグは , UODR0 レジスタが空になり書込み可能になったときにセットされ , UODR0 レジスタに書込みを行うと , クリアされます。 上記の 4 個のフラグ (RDRF, ORFE, PE, TDRE) は , 送受信割込みを起動します。 ● RBF と TBF フラグ RBF と TBF フラグは , 受信または送信が進行中であることを示します。RBF フラグは 受信中にアクティブになります。TBF フラグは送信中にアクティブになります。 305 第 18 章 UART0 18.9.1 受信動作時 ( モード 0, モード 1, モード 3) のフラグの セットタイミング RDRF, ORFE, PE フラグは , 受信転送が終了し最後のストップビットを検出すると きにセットされ , CPU への割込み要求が発生します。ORFE, PE のどちらかのビッ トがアクティブ時には , UIDR0 中のデータは無効となります。 ■ 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング 図 18.9-1, 図 18.9-2, 図 18.9-3 に , RDRF, ORFE, PE フラグのセットタイミングを示しま す。 図 18.9-1 RDRF のセットタイミング ( モード 0, 1, 3) データ 停止 ( 停止 ) RDRF 受信割込み 図 18.9-2 ORFE のセットタイミング ( モード 0, 1, 3) データ 停止 データ RDRF = 1 RDRF = 0 ORFE ORFE 停止 受信割込み 受信割込み ( フレーミングエラー ) ( オーバランエラー ) 図 18.9-3 PE のセットタイミング ( モード 0, 1, 3) データ 停止 PE 受信割込み 306 ( 停止 ) 第 18 章 UART0 18.9.2 受信動作時 ( モード 2) のフラグのセットタイミング RDRF フラグは , 最後のストップビットを検出し , 最後のデータビット (D8) の値が "1" で受信転送が終了するときにセットされます。 ORFE フラグは , 最後のデータビット (D8) の値に無関係に , 最後のストップビット を検出するときにセットされます。ORFE ビットがアクティブ時には , UIDR0 中の データは無効となります。 どれかのフラグがセットされると , CPU への割込み要求が発生します ( モード 2 の 使用法の詳細については , 「18.10 UART0 の応用例」を参照 ) 。 ■ 受信動作時 ( モード 2) のフラグのセットタイミング 図 18.9-4 RDRF のセットタイミング ( モード 2) データ D6 D7 D8 停止 ( 停止 ) RDRF 受信割込み 図 18.9-5 ORFE のセットタイミング ( モード 2) データ D7 D8 停止 データ D7 RDRF = 1 RDRF = 0 ORFE ORFE D8 停止 受信割込み 受信割込み ( オーバランエラー ) ( フレーミングエラー ) 307 第 18 章 UART0 18.9.3 送信動作時のフラグのセットタイミング 送信動作時に UODR0 レジスタに書き込まれたデータは , 内部シフトレジスタに転 送されます。このとき , TDRE フラグがセットされ , CPU への割込み要求が発生し て , 次のデータを UODR0 フラグに書込みができるようになります。 ■ 送信動作時のフラグのセットタイミング 図 18.9-6 TDRE のセットタイミング ( モード 0) UODR ライト TDRE CPU へ割込みを要求 送信割込み SOT0 出力 ST D0 D1 ST: スタートビット 308 D2 D3 D4 D5 D6 D7 D0 ~ D7: データビット SP SP ST D0 D1 SP: ストップビット D2 D3 第 18 章 UART0 18.9.4 送受信動作時のステータスフラグ 送受信動作時に , RBF フラグは , スタートビットが検出されるとセットされ , ストッ プビットが検出されるとクリアされます。UIDR0 中の受信データは , RBF クリアタ イミングではまだ無効状態です。UIDR0 中のデータは , RDRF セットタイミングで 有効になります。 ■ 送受信動作時のステータスフラグ 図 18.9-7 に , RBF と受信割込みフラグのタイミングとの関係を示します。 図 18.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 がセットされ , 送信が完了するとクリアされ ます。 図 18.9-8 TBF のセットタイミング ( モード 0) UODR ライト ST D0 D1 SOT0 出力 D2 D3 D4 D5 D6 D7 SP SP TBF ST: スタートビット D0 ~ D7: データビット SP: ストップビット <注意事項> SIN0 入力端子が "1" に固定されていない限り , 受信動作はリセットのリリース後に開始し ます。このため , モードを設定する前に , UMC0 レジスタ中の RFC に "0" を書き込み , セッ トされているすべての受信フラグをクリアしてください。 USR0 レジスタ中の RBF と TBF フラグが "0" のとき , 通信モードをセットしてください。 モード設定中の送受信データは保証されません。 ■ EI2OS ( 拡張インテリジェント I/O サービス ) EI2OS の詳細については , 「3.7 拡張インテリジェント I/O サービス (EI2OS)」を参照 してください。 309 第 18 章 UART0 18.10 UART0 の応用例 モード 2 は , 1 台のホスト CPU と数台のスレーブ CPU が接続されるような場合に 使用されます ( 図 18.10-1 を参照 ) 。 ■ 応用例 図 18.10-1 RBF のセットタイミング ( モード 0) SIN0 入力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP RBF RDRF, PE, ORFE ST: スタートビット D0 ~ D7: データビット SP: ストップビット 図 18.10-2 に示すように , 通信は , ホスト CPU がアドレスデータを転送することによっ て始まります。アドレスデータは , 9 番目のビット (D8) が "1" にセットされています。 これにより通信先となるスレーブ CPU が選択され , ユーザが決定したプロトコルを使 用してホスト CPU との通信を行います。通常データは D8 が "0" にセットされていま す。非選択のスレーブ CPU は , 次の通信セッションが始まるまでスタンバイ状態で待 機します。図 18.10-3 に , 本モードでの動作フローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので , UMC0 レジスタ の PEN ビットは "0" としてください。 図 18.10-2 モード 2 使用時のシステム構築例 SOT0 SIN0 ホスト CPU SOT0 SIN0 スレーブ CPU#0 310 SOT0 SIN0 スレーブ CPU#1 第 18 章 UART0 図 18.10-3 モード 2 使用時の通信フローチャート ( ホスト CPU) ( スレーブ CPU) 起動 起動 転送モードを "3" とする 転送モードを "2" にセット D0 ~ D7 にスレーブ CPU 選択 , D8 に "1" をセット し , 1 バイト転送 1 バイト受信 選択 ? D8 に "0" をセットし , 通信 を実行 終了 NO YES 転送モードを "3" にセット し , SOT0 出力を許可 マスタ CPU で通信を 実行 ステータスフラグを使用し て転送の完了を確認 , 転送 モードを "2" にセットして SOT0 出力を禁止 311 第 18 章 UART0 312 第 19 章 UART2/3 UART2/3 の機能と動作について説明します。 19.1 UART2/3 の概要 19.2 UART2/3 の構成 19.3 UART2/3 の端子 19.4 UART2/3 のレジスタ 19.5 UART2/3 の割込み 19.6 UART2/3 のボーレート 19.7 UART2/3 の動作 19.8 UART2/3 使用上の注意 313 第 19 章 UART2/3 19.1 UART2/3 の概要 LIN(Local Interconnect Network) 機能を持つ UART2/3 は , 外部装置と同期通信も しくは非同期通信 ( 調歩同期 ) をするための , 汎用のシリアルデータ通信インタ フェースです。双方向通信機能 ( ノーマルモード ), マスタ / スレーブ型通信機能 ( マ ルチプロセッサモード : マスタ / スレーブ両方をサポート ) に加え LIN バスに対応す るための特別な機能 ( マスタまたはスレーブデバイスとして働く ) もサポートしてい ます。 UART2/3 は他の UART に準拠したソフトウェアではないということに注意してくだ さい。 ■ UART2/3 の機能 ● UART2/3 の機能 UART2/3 は , 他の CPU や周辺装置とシリアルデータの送受信をする汎用シリアルデー タ通信インタフェースで , 表 19.1-1 に示す機能をもっています。 表 19.1-1 UART2/3 の機能 ( 1 / 2 ) 項目 機能 データバッファ 全二重ダブルバッファ シリアル入力 5 回オーバサンプリングを行い , サンプリング値の多数決により受 信値を決定します ( 非同期モードのみ )。 転送モード • クロック同期 ( スタート / ストップ同期 , またはスタート / ストッ プビットオプション ) • クロック非同期 ( スタート / ストップビットが使用可能 ) ボーレート • 専用ボーレートジェネレータあり (15 ビットリロードカウンタか ら構成 ) • 外部クロック入力可能。また , リロードカウンタで調節可能 データ長 • 7 ビット ( 同期または LIN モード以外 ) • 8 ビット 信号方式 NRZ (Non Return to Zero) スタートビットタイミング 非同期モード時は , スタートビット立下りエッジに同期 受信エラー検出 • フレーミングエラー • オーバランエラー • パリティエラー ( 動作モード 1 では不可 ) 割込み要求 • • • • 314 受信割込み ( 受信完了 , 受信エラー検出 , LIN synch break 検出 ) 送信割込み ( 送信データエンプティ ) ICU への割込み要求 (LIN synch field 検出 : LSYN) 送受信とも拡張インテリジェント I/O サービス (EI2OS) と DMA 機能 第 19 章 UART2/3 表 19.1-1 UART2/3 の機能 ( 2 / 2 ) 項目 機能 マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) 1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能 ( マスタとスレーブシステムの両方をサポート ) 同期モード マスタまたはスレーブ UART 機能 端子アクセス 直接アクセス可能 LIN バスオプション • • • • • 同期シリアルクロック スタート / ストップビットで同期通信するために , SCK 端子に連続 出力可能 クロック遅延オプション クロックを遅らせるための特殊な同期クロックモード (SPI に有効 ) マスタデバイス動作 スレーブデバイス動作 LIN Synch break 生成 LIN Synch break 検出 ICU1 ~ ICU5 に接続された LIN Synch field のスタート / ストップ エッジ検出 315 第 19 章 UART2/3 ■ UART2/3 の動作モード UART2/3 は 4 つの異なるモードで動作します。動作モードは , シリアルモードレジス タ (SMR2/3) の MD0, MD1 ビットにより決定されます。モード 0 とモード 2 は双方向 シリアル通信 , モード 1 はマスタ / スレーブ通信 , モード 3 は LIN マスタ / スレーブ通 信に使用されます。 表 19.1-2 UART2/3 の動作モード データ長 動作モード 同期方式 パリティなし 0 ノーマルモード 1 マルチ プロセッサ モード パリティあり 7 ビットまたは 8 ビット 7 ビット または 8 ビット ― ストップ ビット長 L/M 非同期 非同期 データ ビット 方向 * 1 1 ビット または 2 ビット L/M +1 * 2 2 ノーマルモード 3 LIN モード 8 8 ― 同期 なし , 1 ビット , 2 ビット L/M 非同期 1 ビット L *1: データビット転送フォーマット:LSB ファーストまたは MSB ファースト *2: "+1" はパリティの代わりにマルチプロセッサモードで使用されるアドレス / データ選択指定 ビットです。 <注意事項> モード 1 は , マスタ / スレーブ接続時には UART2/3 のマスタとスレーブいずれの動作に も対応します。 モード 3 では , UART2/3 機能は 8N1 フォーマット , LSB ファーストに固定されます。 モードを変更すると UART2/3 は送受信を打ち切り , 次の通信開始を待ちます。 シリアルモードレジスタ (SMR3) の MD1 と MD0 ビットで , 下記に示す UART2/3 の動 作モードを決定します。 表 19.1-3 モードビット設定 316 MD1 MD0 モード 0 0 0 非同期 ( ノーマルモード ) 0 1 1 非同期 ( マルチプロセッサモード ) 1 0 2 同期 ( ノーマルモード ) 1 1 3 非同期 (LIN モード ) 種類 第 19 章 UART2/3 ■ UART2/3 の割込みと EI2OS 表 19.1-4 UART2/3 の割込みと 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 送信割込みと UART3 送受信割込みが不可の場合のみ , UART2 受信の EI2OS サービスが使 用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。 *2: UART2 受信割込みと UART3 送受信割込みが不可の場合のみ , UART2 送信の EI2OS サービスが使 用できます。 *3: UART3 送信割込みと UART2 送受信割込みが不可の場合のみ , UART3 受信の EI2OS サービスが使 用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。 *4: UART3 受信割込みと UART2 送受信割込みが不可の場合のみ , UART3 送信の EI2OS サービスが使 用できます。 317 第 19 章 UART2/3 19.2 UART2/3 の構成 UART2/3 の構成ブロックを簡単な概要で示します。 ■ UART2/3 のブロックダイヤグラム UART2/3 は次のブロックで構成されます。 • リロードカウンタ • 受信制御回路 • 受信シフトレジスタ • 受信データレジスタ (RDR2/3) • 送信制御回路 • 送信シフトレジスタ • 送信データレジスタ (TDR2/3) • エラー検出回路 • オーバサンプリングユニット • 割込み生成回路 • LIN Synch Break/Synch Field 検出 • バスアイドル検出回路 • LIN-UART2/3 シリアルモードレジスタ (SMR2/3) • シリアル制御レジスタ (SCR2/3) • シリアルステータスレジスタ (SSR2/3) • 拡張通信制御レジスタ (ECCR2/3) • 拡張ステータス制御レジスタ (ESCR2/3) 318 第 19 章 UART2/3 図 19.2-1 UART2/3 のブロックダイヤグラム (OTO, EXT, REST) マシンクロック PE ORE FRE TIE RIE LBIE LBD 送信クロック リロード カウンタ SCK2/3 受信クロック 割込み 生成回路 送信制御 回路 受信制御回路 RBI TBI 端子 再スタート受信 リロードカウンタ SIN2/3 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 端子 受信 IRQ 送信 IRQ TDRE SOT2/3 オーバ サンプリング 回路 送信パリティ カウンタ 受信パリティ カウンタ 受信完了 端子 RDRF SOT2/3 SIN2/3 キャプチャへ の内部信号 LIN break/ SynchField 検出回路 SIN2/3 受信シフト レジスタ 送信シフト レジスタ エラー 検出 バスアイドル 検出回路 RDR2/3 PE ORE FRE EI2OS へ LIN Synch break 生成 送信開始 LBR LBL1 LBL0 TDR2/3 RBI LBD TBI 内部データバス PE ORE FRE RDRF TDRE BDS RIE TIE SSR2/3 レジスタ MD1 MD0 OTO EXT REST UPCL SCKE SOE SMR2/3 レジスタ PEN P SBL CL A/D CRE RXE TXE SCR2/3 レジスタ LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS ESCR2/3 SCDE レジスタ SSM ECCR2/3 レジスタ RBI TBI ■ 各ブロックの説明 ● リロードカウンタ 専用ボーレートジェネレータとして機能します。 送受信クロックとして外部入力クロック , または内部クロックを選択できます。 リロードカウンタは , リロード値に対する 15 ビットレジスタから構成されています。 実際の送信リロードカウンタのカウントは , BGR02/BGR03/BGR12/BGR13 によって読 み出すことができます。 ● 受信制御回路 受信ビットカウンタ , スタートビット検出回路 , および受信パリティカウンタから構成 されています。受信ビットカウンタは , 受信データビットをカウントして , 設定した データ長に応じて 1 データの受信を完了すると , シリアルステータスレジスタに受信 データレジスタフルフラグをセットします。スタートビット検出回路は , シリアル入力 信号からスタートビットを検出する回路で , スタートビットの立下りエッジに同期し て , リロードカウンタに信号を送ります。受信パリティカウンタは , 受信データのパリ ティを計算します。 319 第 19 章 UART2/3 ● 受信シフトレジスタ SIN2/3 端子から入力された受信データを , ビットシフトしながら取り込みます。受信 が完了すると , RDR2/3 レジスタに受信データを転送します。 ● 受信データレジスタ 受信データを保持します。シリアル入力データは変換され , 受信データレジスタに格納 されます。 ● 送信制御回路 送信ビットカウンタ , 送信スタート回路 , および送信パリティカウンタから構成されて います。送信ビットカウンタは , 送信データビットをカウントします。設定したデータ 長に応じて 1 データを送信します。送信ビットカウンタが書き込まれたデータの送信開 始を示すと , シリアルステータスレジスタ内の送信データレジスタフルフラグが設定さ れます。このとき , 送信割込みが許可されていれば送信割込み要求を発生します。送信 スタート回路は , TDR2/3 のデータ書込みで送信動作を開始します。送信パリティカウ ンタは , パリティありの場合 , 送信するデータのパリティビットを生成します。 ● 送信シフトレジスタ TDR2/3 レジスタに書き込まれたデータを送信シフトレジスタに転送し , ビットシフト しながら SOT2/3 端子に出力します。 ● 送信データレジスタ (TDR2/3) 送信データを設定します。このレジスタに書き込まれたデータは , シリアルデータに変 換され出力されます。 ● エラー検出回路 最後の受信に , エラーがあったかどうかを検出します。エラーが発生すると , 対応する エラーフラグをセットします。 ● オーバサンプリングユニット SIN2/3 端子で発生するデータをマシンクロックで 5 回オーバサンプリングを行います。 同期モード動作では停止します。 ● 割込み生成回路 すべての受信・送信割込み要因を制御します。対応する許可フラグがセットされ , 割込 み要因が発生すると , 直ちに割込みが発生します。 ● LIN Synch Break/Synchronization Field 検出回路 LINマスタノードがメッセージヘッダを送信すると, LIN synch breakを検出します。LIN synch break が検出されると , 特有のフラグビットがセットされます。LIN synch field の 1 回目と 5 回目の立下りエッジを検出し , マスタノードが送信する実際のシリアルクロ ック同期を測定するために , インプットキャプチャへ内部信号 (LSYN) を出力します。 ● LIN Synch Break 生成回路 設定された長さの LIN synch break を生成します。 ● バスアイドル検出回路 送受信が行われていないことを識別します。この場合 , 特有の TBI, RBI フラグビット を生成します。 320 第 19 章 UART2/3 ● LIN-UART2/3 シリアルモードレジスタ (SMR2/3) 以下に動作機能を示します。 • LIN-UART2/3 動作モード選択 • クロック入力ソースの選択 • 外部クロックが 1 対 1 接続またはリロードカウンタ接続であるか選択 • 専用リロードタイマのリセット • LIN-UART2/3 リセット ( レジスタの設定は維持 ) • 対応する端子へのシリアルデータ出力の許可 / 禁止設定 • 対応する端子へのクロック出力の許可 / 禁止設定 ● シリアル制御レジスタ (SCR2/3) 以下に動作機能を示します。 • パリティビット有無の設定 • パリティビット選択 • ストップビット長の設定 • データ長の設定 • モード 1 でのフレームデータ形式の選択 • エラーフラグのクリア • 送信許可 / 禁止 • 受信許可 / 禁止 ● シリアルステータスレジスタ (SSR2/3) 以下に動作機能を示します。 • 送受信やエラーの状態確認 • 転送方向 LSB ファースト /MSB ファーストの選択 • 受信割込み許可 / 禁止 • 送信割込み許可 / 禁止 ● 拡張ステータス制御レジスタ (ESCR2/3) 以下に動作機能を示します。 • LIN synch break 割込み許可 / 禁止 • LIN synch break 検出の確認 • LIN synch break 長の設定 • SIN2/3, SOT2/3 端子への直接アクセス • 連続クロック出力設定 • サンプリングクロックエッジ選択 ● 拡張通信制御レジスタ (ECCR2/3) 以下に動作機能を示します。 • バスアイドルの状態確認 • 同期クロック設定 • LIN synch break 生成の設定 321 第 19 章 UART2/3 19.3 UART2/3 の端子 UART2/3 の端子 , および端子のブロックダイヤグラムを示します。 ■ UART2/3 の端子 UART2/3 の端子は , 汎用ポートと兼用になっています。表 19.3-1 に端子の機能 , 入出 力形式 , および UART2/3 使用時の設定などを示します。 表 19.3-1 UART2/3 の端子 端子名 P90/SIN2 P91/SCK2 P92/SOT2 P93/SIN3 P95/SOT3 P94/SCK3 322 端子機能 入出力形式 プルアップ 選択 スタンバイ 制御 端子の使用に 必要な設定 ポート入出力 / シリアルデータ 入力 入力ポートに設定 (DDR9:D90 = 0) ポート入出力 / シリアルデータ 出力 クロック入力時入力 ポートに設定 (DDR9:D91 = 0) クロック出力時出力 許可モードに設定 (SMR2:SCKE = 1) ポート入出力 / シリアルクロック 入出力 ポート入出力 / シリアルデータ 入力 ポート入出力 / シリアルデータ 出力 ポート入出力 / シリアルクロック 入出力 CMOS 出力 およびオートモー ティブ選択許可 / CMOS ヒステリシス 入力 出力許可モードに設定 (SMR2:SOE = 1) なし あり 入力ポートに設定 (DDR9:D93 = 0) 出力許可モードに設定 (SMR3:SOE = 1) クロック入力時入力 ポートに設定 (DDR9:D94 = 0) クロック出力時出力 許可モードに設定 (SMR3:SCKE = 1) 第 19 章 UART2/3 図 19.3-1 UART2/3 の端子のブロックダイヤグラム リソース入力 ポートデータレジスタ (PDR) リソース出力 内部データバス リソース出力許可 PDR リード 出力ラッチ P-ch PDR ライト 端子 ポート方向レジスタ (DDR) N-ch 方向ラッチ DDR ライト DDR リード 汎用入出力 /SIN2/3 汎用入出力 /SCK2/3 汎用入出力 /SOT2/3 スタンバイ制御 (SPL = 1) スタンバイ制御 : ストップモード , 時計モード , タイムベースタイマモード (SPL = 1) ( 注意事項 ) リソースはリソース機能を持つ端子から , またはその端子へ入出力される。 323 第 19 章 UART2/3 19.4 UART2/3 のレジスタ UART2/3 のレジスタを以下に示します。 ■ UART2/3 のレジスタ 図 19.4-1 UART2/3 のレジスタ 324 アドレス : bit 15 bit 8 bit 7 bit 0 003519H, 003518H SCR3 ( シリアル制御レジスタ ) SMR3 ( シリアルモードレジスタ ) 00351BH, 00351AH SSR3 ( シリアルステータスレジスタ ) RDR3/TDR3 ( 受信データレジスタ / 送信データレジスタ ) 00351DH, 00351CH ESCR3 ( 拡張ステータス制御レジスタ ) ECCR3 ( 拡張通信制御レジスタ ) 00351FH, 00351EH BGR13 ( ボーレートジェネレータレジスタ 13) BGR03 ( ボーレートジェネレータレジスタ 03) 0035D9H, 0035D8H SCR2 ( シリアル制御レジスタ ) SMR2 ( シリアルモードレジスタ ) 0035DBH, 0035DAH SSR2 ( シリアルステータスレジスタ ) RDR2/TDR2 ( 受信データレジスタ / 送信データレジスタ ) 0035DDH, 0035DCH ESCR2 ( 拡張ステータス制御レジスタ ) ECCR2 ( 拡張通信制御レジスタ ) 0035DFH, 0035DEH BGR12 ( ボーレートジェネレータレジスタ 12) BGR02 ( ボーレートジェネレータレジスタ 02) 第 19 章 UART2/3 19.4.1 シリアル制御レジスタ (SCR2/3) シリアル制御レジスタ (SCR2/3) は , パリティビットの設定 , ストップビット長や データ長の選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリ ア , 送受信動作の許可または禁止の設定を行います。 ■ シリアル制御レジスタ (SCR2/3) 図 19.4-2 シリアル制御レジスタ (SCR2/3) の構成 アドレス 初期値 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SCR2: 0035D9H SCR3: 003519H PEN P SBL CL 00000000B A/D CRE RXE TXE R/W R/W R/W R/W R/W W R/W R/W bit8 送信許可ビット TXE 0 1 送信禁止 送信許可 bit9 受信許可ビット RXE 0 1 受信禁止 受信許可 bit10 CRE 0 1 受信エラーフラグクリアビット 書込み時 読出し時 影響なし すべての受信エラー (PE, 常に "0" をリード FRE, ORE) クリア bit11 A/D 0 1 アドレス / データ形式選択ビット データビット アドレスビット bit12 データ長選択ビット CL 0 1 7 ビット 8 ビット bit13 ストップビット長選択ビット SBL 0 1 1 ビット 2 ビット bit14 P 0 1 パリティ選択ビット 偶数パリティ 奇数パリティ bit15 R/W : W : : リード / ライト可能 ライトオンリ 初期値 PEN 0 1 パリティ許可ビット パリティなし パリティあり 325 第 19 章 UART2/3 表 19.4-1 シリアル制御レジスタ (SCR2/3) の各ビットの機能説明 ビット名 bit15 bit14 bit13 bit12 bit11 bit10 機能 PEN: パリティ 許可ビット パリティビットの付加 ( 送信時 ) と検出 ( 受信時 ) を行うかどうかを設 定します。 パリティビットは動作モード 0 の場合 , または動作モード 2 でスタート / ストップあり (ECCR2/3:SSM=1) に設定した場合にのみ付加されます。 モード 1 およびモード 3 (LIN) のときには "0" ( パリティなし ) に固定さ れます。 P: パリティ 選択ビット パリティビットありに設定した場合に , 偶数パリティ (0) か奇数パリ ティ (1) のいずれかに設定します。 SBL: ストップ ビット長 選択ビット ECCR2/3 の SSM が選択されていると , 非同期データフレームまたは同 期フレームのストップビット長が選択されます。 本ビットは , モード 3(LIN) では "0" (1 ストップビット ) に固定されます。 ( 注意事項 ) 受信時は , 常にストップビットの 1 ビット目だけを検出し ます。 CL: データ長 選択ビット 送受信データのデータ長を指定します。本ビットは , モード 2, モード 3 では "1" (8 ビット ) に固定されます。 AD: アドレス / データ形式 選択ビット マルチプロセッサモード 1 で , データ形式を指定します。マスタ CPU 側は本ビットにライト , スレーブ CPU 側は本ビットをリードしてくだ さい。1 はアドレスフレームを示し , 0 は通常のフレームを示します。 ( 注意事項 ) 本ビットの使用にあたっては , 「19.3 UART2/3 の端子」を 参照してください。 CRE: 受信エラー フラグクリア ビット シリアルステータスレジスタ (SSR2/3) の FRE, ORE, PE フラグをクリア するビットです。 • "1" 書込みで , エラーフラグがクリアされます。 • "0" 書込みでは , 影響ありません。 読み出した場合 , 常に "0" を読み出します。 ( 注意事項 ) 受信動作停止後に受信エラーフラグをクリアしてください (RXE=0)。 RXE: 受信許可 ビット bit 9 LIN-UART2/3 の受信動作を許可または禁止します。 • "0" に設定した場合:データフレーム受信動作が禁止されます。 • "1" に設定した場合:データフレーム受信動作が許可されます。 モード 3 での LIN synch break 検出は影響されません。 ( 注意事項 ) 受信中に受信動作を禁止 (RXE=0) した場合には , 直ちに受 信動作が停止します。この場合データは保証されません。 bit 8 TXE: 送信許可 ビット LIN-UART2/3 の送信動作を許可または禁止します。 • "0" に設定した場合:データフレーム送信動作が禁止されます。 • "1" に設定した場合:データフレーム送信動作が許可されます。 ( 注意事項 ) 送信中に送信動作を禁止 (TXE=0) した場合には , 直ちに送 信動作が停止します。この場合データは保証されません。 326 第 19 章 UART2/3 19.4.2 シリアルモードレジスタ (SMR2/3) シリアルモードレジスタ (SMR2/3) は , 動作モードの選択 , ボーレートクロックの選 択 , シリアルデータとクロックの端子への出力許可または禁止の設定を行います。 ■ シリアルモードレジスタ (SMR2/3) 図 19.4-3 シリアルモードレジスタ (SMR2/3) の構成 初期値 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SMR2: 0035D8H SMR3: 003518H MD1 MD0 SOE EXT REST UPCL SCKE SOE R/W R/W R/W R/W W 00000000B bit0 SOE W R/W R/W シリアルデータ出力許可ビット 0 汎用入出力ポート 1 LIN-UART シリアルデータ出力端子 bit1 SCKE シリアルクロック出力許可ビット 0 汎用入出力ポートまたは LIN-UART クロック 入力端子 1 LIN-UART のシリアルクロック出力端子 bit2 UART2/3 プログラマブルクリアビット ( ソフトウェアリセット ) UPCL 書込み時 0 影響なし 1 UART リセット 読出し時 常に "0" をリード bit3 送信リロードカウンタ再スタートビット REST 書込み時 読出し時 0 影響なし 1 リロードカウンタの再スタート 常に "0" をリード bit4 EXT 外部クロック選択ビット 0 内部ボーレートジェネレータ ( リロードカウンタ ) 使用 1 外部シリアルクロックソース使用 bit5 OTO 1 対 1 外部クロック入力許可ビット 0 外部ボーレートジェネレータ ( リロードカウンタ ) 使用 1 外部クロック直接使用 bit7, bit6 R/W W MD1 MD0 0 0 モード 0: 非同期 ノーマル 動作モード選択ビット : リード / ライト可能 : ライトオンリ 0 1 モード 1: 非同期 マルチプロセッサ 1 0 モード 2: 同期 : 初期値 1 1 モード 3: 非同期 LIN 327 第 19 章 UART2/3 表 19.4-2 シリアルモードレジスタ (SMR2/3) の各ビットの機能説明 ビット名 機能 MD1, MD0 : 動作モード選択 ビット UART2/3 の動作モードを設定します。 OTO: 1 対 1 外部 クロック入力許可 ビット LIN-UART2/3 のシリアルクロックに外部クロックを直接使用す ることを許可します。 動作モード 2( 同期 ) スレーブモード動作時に使用されます。 OTO ビットは EXT ビット (bit4) に "1" が書き込まれている場合 に "1" を書き込めます。 bit4 EXT: 外部クロック選択 ビット リロードカウンタの内部または外部クロックソースを実行しま す。 bit3 REST: 送信リロード カウンタ 再スタートビット "1" を書き込んだ場合 , リロードカウンタは再スタートします。 "0" を書き込んだ場合は , 影響ありません。 常に "0" が読み出されます。 UPCL: UART2/3 プログラ マブルクリアビッ ト ( ソフトウェア リセット ) "1" を書き込んだ場合 , LIN-UART2/3 を即時リセットします。た だし , レジスタの設定は維持されます。その際 , 送受信は中断さ れます。 すべてのフラグ (TDRE, RDRF, LBD, PE, ORE, FRE) は解除され , 受信データレジスタ (RDR2/3) は "00H" を含みます。 bit7, bit6 bit5 bit2 "0" を書き込んだ場合は , 影響ありません。 常に "0" が読み出されます。 割込み許可ビット停止後に行われます。 SCKE: シリアルクロック 出力許可ビット ・シリアルクロックの入出力ポートを制御するビットです。 ・"0" の場合は SCK2/3 端子は汎用入出力ポート , またはシリアル クロック入力端子として機能します。"1" の場合はシリアルク ロック出力端子となり , 動作モード 2( 同期 ) でクロックを出力 します。MS=1 のとき , SCKE ビットは "0" に固定されます。 ( 注意事項 ) SCK2/3 端子をシリアルクロック入力端子 (SCKE=0) として使用する場合は , 対応する DDR ビットを入力 ポートに設定してください。また , 外部クロック選択 ビットによって外部クロックを選択 (EXT=1) してく ださい。 〔参考〕SCK2/3 端子がシリアルクロック出力 (SCKE=1) に設定さ れている場合は , 汎用入出力ポートの状態にかかわらず , シリアルクロック出力端子として機能します。 SOE: シリアルデータ 出力許可ビット ・シリアルデータの出力を許可 / 禁止するビットです。 ・"0" の場合 , SOT2/3 端子は汎用入出力ポートとして動作します。 "1" の場合はシリアルデータ出力端子 (SOT2/3) となります。 〔参考〕シリアルデータ出力 (SOE=1) の場合 , SOT2/3 端子は汎用 入出力ポートの状態にかかわらず , シリアルデータ出力 端子 (SOT2/3) として機能します。 bit1 bit0 328 第 19 章 UART2/3 19.4.3 シリアルステータスレジスタ (SSR2/3) シリアルステータスレジスタ (SSR2/3) は , 送受信やエラーの状態の確認 , 送受信割 込みの許可または禁止の設定を行います。 ■ シリアルステータスレジスタ (SSR2/3) 図 19.4-4 シリアルステータスレジスタ (SSR2/3) の構成 初期値 00001000B アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SSR2: 0035DBH RIE TIE PE ORE FRE RDRF TDRE BDS SSR3: 00351BH R R R R R R/W R/W R/W bit8 TIE 0 1 送信割込み要求許可ビット 送信割込み禁止 送信割込み許可 bit9 RIE 0 1 受信割込み要求許可ビット 受信割込み禁止 受信割込み許可 bit10 BDS 0 1 ビット方向選択ビット 送受信 LSB ファースト 送受信 MSB ファースト bit11 TDRE 0 1 送信データレジスタエンプティフラグビット 送信データレジスタにデータが存在する 送信データレジスタが空 bit12 RDRF 0 1 受信データレジスタフルフラグビット 受信データレジスタが空 受信データレジスタにデータが存在する bit13 FRE 0 1 フレーミングエラーフラグビット フレーミングエラーなし 受信中にフレーミングエラーあり bit14 ORE 0 1 オーバランエラーフラグビット オーバランエラーなし 受信中にオーバランエラーあり bit15 PE R/W R リード / ライト可能 : フラグはリードオンリ , ライトは影響なし : 0 1 パリティエラーフラグビット パリティエラーなし 受信中にパリティエラーあり : 初期値 329 第 19 章 UART2/3 表 19.4-3 シリアルステータスレジスタ (SSR2/3) の各ビットの機能説明 ( 1 / 2 ) ビット名 bit15 PE: パリティ エラーフラグ ビット 機能 • PEN=1で受信時にパリティエラーが発生すると"1"にセットされ, シリアル制御レジスタ (SCR2/3) の CRE ビットに "1" を書き込むと クリアされます。 • PEビットとRIEビットが"1"の場合,受信割込み要求を出力します。 • 本フラグがセットされた場合は , 受信データレジスタ (RDR2/3) の データは無効です。 bit14 ORE: オーバラン エラーフラグ ビット • 受信時にオーバランエラーが発生すると "1" にセットされ , シリア ル制御レジスタ (SCR2/3) の CRE ビットに "0" を書き込むとクリア されます。 • ORE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力し ます。 • 本フラグがセットされた場合は , 受信データレジスタ (RDR2/3) の データは無効です。 FRE: フレーミング エラーフラグ ビット • 受信時にフレーミングエラーが発生すると "1" にセットされ , シリ アル制御レジスタ (SCR2/3) の CRE ビットに "0" を書き込むとクリ アされます。 • FRE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力し ます。 • 本フラグがセットされた場合は , 受信データレジスタ (RDR2/3) の bit13 データは無効です。 ( 注意事項 ) SBL=1 でフレーミングエラーがストップビットの最初 のビットまたは 2 番目のビットで検出されると , どちら かのストップビットにより "1" にセットされます。 また , 受信データがストップビットの 2 番目のビットで 許可されるかどうか決定される必要があります。 bit12 RDRF: 受信データ レジスタフル フラグビット • 受信データレジスタ (RDR2/3) の状態を示すフラグです。 • RDR2/3 に受信データがロードされると , "1" にセットされ , 受信 データレジスタ (RDR2/3) を読み出すと "0" にクリアされます。 • RDRF ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力し ます。 330 第 19 章 UART2/3 表 19.4-3 シリアルステータスレジスタ (SSR2/3) の各ビットの機能説明 ( 2 / 2 ) ビット名 TDRE: 送信データ レジスタ エンプティ フラグビット bit11 機能 • 送信データレジスタ (TDR2/3) の状態を示すフラグです。 • TDR3 に送信データを書き込むと "0" となり , データが送信シフト レジスタにロードされて送信が開始されると "1" となります。 • TDRE ビットと TIE ビットが "1" の場合 , 送信割込み要求を出力し ます。 • TDRE ビットが "1" のとき , 拡張通信制御レジスタ (ECCR2/3) の LBR ビットに "1" をセットすると TDRE ビットは "0" となり , LIN synch break 生成後 "1" になります。 ( 注意事項 ) 初期状態では , TDRE = 1 になっています。 BDS: ビット方向 選択ビット bit10 • 転送シリアルデータを最下位ビット側から先に転送するか (LSB ファースト , BDS=0), 最上位ビット側から先に転送するか (MSB ファースト , BDS=1) を選択するビットです。モード 3 では "0" に 固定されます。 受信データを受信データレジスタ (RDR2/3) に書き込んだときに上 位側と下位側を入れ替えるため , 書込み後に BDS ビットを書換える と , RDR2/3 のデータは無効になります。 bit9 RIE: 受信割込み 要求許可 ビット • 受信割込み要求出力の許可 / 禁止をするビットです。 • RIE ビットと受信データフルフラグビット (RDRF) が "1" の場合 , または 1 つ以上のエラーフラグビット (PE, ORE, FRE) が "1" の場 合 , 受信割込み要求を割込みコントローラへ出力します。 bit8 TIE: 送信割込み 要求許可 ビット • 送信割込み要求出力の許可 / 禁止をするビットです。 • TIE ビットと TDRE ビットが "1" の場合 , 送信割込み要求を出力し ます。 331 第 19 章 UART2/3 19.4.4 受信データレジスタ / 送信データレジスタ (RDR2/3 / TDR2/3) 受信データレジスタ (RDR2/3) は受信データを保持します。送信データレジスタ (TDR2/3) は送信データを保持します。RDR2/TDR2 と RDR3/TDR3 は共に同一アド レスに配置されています。 ■ 受信データレジスタ / 送信データレジスタのビット構成 (RDR2/3 / TDR2/3) 図 19.4-5 受信データレジスタ / 送信データレジスタ (RDR2/3 / TDR2/3) アドレス 初期値 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 0 0 0 0 0 0 0 B [RDR2/3] RDR2/TDR2: 0035DAH RDR3/TDR3: 00351AH 1 1 1 1 1 1 1 1 B [TDR2/3] R/W R/W R/W R/W R/W R/W R/W R/W bit7 ~ bit0 R/W R/W:リード / ライト可能 データレジスタ リード 受信データレジスタからリード ライト 送信データレジスタへライト 受信データレジスタ (RDR2/3) 受信データレジスタ (RDR2/3) は , 受信データを含むレジスタです。 シリアル入力端子 (SIN2/3 端子 ) に送られてきたシリアルデータ信号がシフトレジスタ で変換されて , 受信データレジスタ (RDR2/3) に格納されます。 データ長が 7 ビットの場合は , 上位 1 ビット (D7) は "0" となります。 受信が完了すると , 受信データレジスタ (RDR2/3) に格納され , 受信データフルフラグ ビット (SSR2/3:RDRF) が "1" にセットされます。この時点で受信割込み要求が許可さ れている場合は , 受信割込みを発生します。 受信データレジスタ (RDR2/3) は , 受信データフルフラグビット (SSR2/3:RDRF) が "1" の状態で読み出してください。受信データフルフラグビット (SSR2/3:RDRF) は , 受信 データレジスタ (RDR2/3) を読み出すと自動的に "0" にクリアされます。 また , 受信割込みが許可されていて , エラーが生じていない場合には , 受信割込みもク リアされます。 受信エラーが発生 (SSR2/3:PE, ORE, FRE のいずれかが "1") した場合 , 受信データレジ スタ (RDR2/3) のデータは無効となります。 332 第 19 章 UART2/3 ■ 送信データレジスタ (TDR2/3) 送信動作が許可されている場合に (SCR2/3:TXE=1), 送信するデータを送信データレジ スタ (TDR2/3) に書き込むと , 送信データが送信用シフトレジスタに転送されシリアル データに変換されて , シリアルデータ出力端子 (SOT2/3 端子 ) から送出されます。 データ長が 7 ビットの場合 , 上位 1 ビット (D7) は無効データとなります。 送信データエンプティフラグビット (SSR2/3:TDRE) は , 送信データが送信データレジ スタ (TDR2/3) に書き込まれると , "0" にクリアされます。 送信データエンプティフラグビット (SSR2/3:TDRE) は , 送信用シフトレジスタへの転 送が終了し , 送信が開始されると , "1" にセットされます。送信データエンプティフラ グビット (SSR2/3:TDRE) が "1" の場合は , 次の送信用データを書き込むことができま す。出力送信割込み要求が許可されている場合には送信割込みが発生します。次の送 信データの書込みは , 送信割込みの発生によるか , 送信データエンプティフラグビット (TDRE) が "1" の状態で行ってください。 <注意事項> 送信データレジスタは書込み専用のレジスタで , 受信データレジスタは読込み専用のレジ スタです。2 つのレジスタは同一アドレスに配置されているため , 書込み値と読出し値が 異なります。したがって , INC/DEC 命令などリードモディファイライト (RMW) 動作をす る命令は使用できません。 333 第 19 章 UART2/3 19.4.5 拡張ステータス制御レジスタ (ESCR2/3) 拡張ステータス制御レジスタ (ESCR2/3) は , 各 LIN 機能 , SIN2/3, SOT2/3 端子への 直接アクセス , UART2/3 同期クロックモードの設定があります。 ■ 拡張ステータス制御レジスタ (ESCR2/3) 図 19.4-6 拡張ステータス制御レジスタ (ESCR2/3) の構成 アドレス : ESCR3: 00351DH 初期値 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 0 0 0 0 0 1 0 0B LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES R/W R/W R/W R/W R/W R/W R/W R/W bit8 SCES サンプリングクロックエッジ選択ビット ( モード 2) 0 クロックの立上りエッジでサンプリング ( ノーマル ) 1 クロックの立下りエッジでサンプリング ( 反転クロック ) bit9 CCO 0 1 連続クロック出力ビット ( モード 2) 連続クロック出力禁止 連続クロック出力許可 bit10 SIOP 0 1 シリアル入出力端子直接アクセスビット 読出し時 書込み時 (SOPE = 1) SOT 端子を "0" に固定 SOT 端子を "1" に固定 SIN 端子の値を読出し bit11 SOPE 0 1 シリアル出力端子直接アクセス許可ビット シリアル出力端子直接アクセス禁止 シリアル出力端子直接アクセス許可 bit13, bit12 LBL1 LBL0 0 0 0 1 1 0 1 1 LIN synch break 長選択ビット LIN break 長 13 ビット分 LIN break 長 14 ビット分 LIN break 長 15 ビット分 LIN break 長 16 ビット分 bit14 LBD 0 1 LIN synch break 検出フラグビット 書込み時 読出し時 LIN synch break 検出フラ グクリア 影響なし LIN synch break 検出なし LIN synch break 検出あり bit15 LBIE 334 LIN synch break 検出割込み許可ビット LIN synch break 割込み禁止 LIN synch break 割込み許可 R/W X :リード / ライト可能 :不定 :初期値 * :リードモディファイライト系命令については , 表 19.4-4 を参照してください。 0 1 第 19 章 UART2/3 表 19.4-4 拡張ステータス制御レジスタ (ESCR2/3) の各ビットの機能説明 ビット名 機能 LBIE: LIN synch break 検出割込み 許可ビット LIN synch break 割込みを許可 / 禁止するビットです。 LIN synch break 割込みは受信割込みに接続されます。LBD ビット が "1" に設定されると , 受信割込みは割込みコントローラに信号 を送ります。 モード 1, モード 2 では "0" に固定されます。 LBD: LIN synch break 検出フラグビット 動作モード 3 で LIN synch break が検出されると "1" にセットされ ます。"0" を書き込むと LBD ビットと対応する割込みはクリアさ れます。このビットを使用する前に SCR2/3 レジスタの RXE ビッ トに "0" を書き込むことを推奨します。リードモディファイライ ト (RMW) 系命令を実行すると常に "1" が読み出されますが LIN synch break の検出によるものではありませんのでご注意くださ い。 bit13, bit12 LBL1/LBL0: LIN synch break 長選択ビット これらのビットは , UART2/3 による LIN synch break の生成時間を 何ビット分とするか , 設定します。 受信 LIN synch break は常に 11 ビット分です。 bit11 SOPE: シリアル出力 端子直接アクセス 許可ビット * SOE=1(SMR2/3) のときに本ビットに "1" を設定すると , SOT2/3 端 子への直接書込みを許可します。* bit10 SIOP: シリアル入出力 端子直接 アクセス ビット * 通常の読出し命令は , 常に SIN2/3 端子の値を返します。 SOPE=1 のときに書込みを行うと本ビット値が , SOT2/3 端子に反 映されます。リードモディファイライト (RMW) 系命令の場合は 読出しサイクル内の SOT2/3 のビット値を返します。* bit9 CCO: 連続クロック 出力許可ビット マスタモード 2( 同期 ) で UART2/3 が動作していて , SCK2/3 端子 がクロック出力に設定されていれば , SCK2/3 端子からの連続シリ アルクロック出力を許可します。 ( 注意事項 ) CCO ビットが "1" のとき , ECCR2/3 の SSM ビットを "1" にして使用してください。 bit8 SCES: サンプリング クロックエッジ 選択ビット 動作モード 2( 同期通信 ) でシリアルクロック信号を反転します。 内部クロックの立下りエッジで受信データがサンプリングされま す。ECCR2/3 レジスタの MS ビットが "0" ( マスタモード ) で , SMR2/3 レジスタの SCKE ビットが "1" ( クロック出力許可 ) のと き , 出力クロック信号も反転されます。 動作モード 0, 1, 3 では必ず "0" に固定してください。 bit15 bit14 *:表 19.4-5 を参照してください。 表 19.4-5 SOPE と SIOP の相互作用説明 SOPE SIOP 0 R/W 影響なし ( ただし , 書込み値は保持される ) SIN2/3 の値を返す 1 R/W SOT2/3 へ "0" または "1" 書込み SIN2/3 の値を返す - RMW SIOP への書込み SIOP からの読出し SOT2/3 の値を読出し , "0" または "1" を書込み - : "0" または "1" 335 第 19 章 UART2/3 19.4.6 拡張通信制御レジスタ (ECCR2/3) 拡張通信制御レジスタ (ECCR2/3) は , バスアイドル検出 , 同期クロック設定 , およ び LIN synch break の生成を行います。 ■ 拡張通信制御レジスタ (ECCR2/3) 図 19.4-7 拡張通信制御レジスタ (ECCR2/3) の構成 アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 X 0 0 0 0 X X XB ECCR2: 0035DCH ECCR3: 00351CH LBR - MS SCDE SSM RBI W R/W R/W R/W R/W R TBI R bit0 TBI *1 0 1 送信バスアイドルフラグビット 送信中 送信動作なし bit1 RBI *2 0 1 受信バスアイドルフラグビット 受信中 受信動作なし bit2 未使用ビット 読出し値は不定です。 常に "0" を書き込んでください。 bit3 SSM 0 1 スタート / ストップビットモード許可ビット ( モード 2) スタート / ストップビットなし ( モード 2) スタート / ストップビットあり ( モード 2) bit4 SCDE 0 1 bit5 MS 0 1 シリアルクロック遅延許可ビット ( モード 2) クロック遅延禁止 クロック遅延許可 マスタ / スレーブモード選択ビット ( モード 2) マスタモード ( シリアルクロック発生 ) スレーブモード ( 外部シリアルクロック受信 ) bit6 LBR 0 1 LIN synch break 生成ビット 読出し時 書込み時 影響なし 常に "0" を読出し LIN synch break 生成 bit7 未使用ビット R/W R W X - : リード / ライト可能 : リードオンリ : ライトオンリ : 不定 : 未定義 : 初期値 *1:動作モード 2 で MS=1 のときには未使用 *2:動作モード 2 のときは未使用 336 0 読出し値は不定です。 常に "0" を書き込んでください。 第 19 章 UART2/3 表 19.4-6 拡張通信制御レジスタ (ECCR2/3) の各ビットの機能説明 ビット名 bit7 機能 - 不定です。常に "0" を書き込んでください。 LBR: LIN synch break 生成ビット 動作モード 3 において , 本ビットに "1" を設定すると ESCR2/3 の LBL0/LBL1 ビットで設定された長さの LIN synch break を生成し ます。動作モード 0 時は , "0" に設定してください。 MS: マスタ / スレーブ モード選択ビット モード 2 においてマスタまたはスレーブモードを選択できます。 マスタモード選択時は , 同期クロックを生成します。 スレーブモード選択時は , 外部シリアルクロックを受信します。 モード 0, 1, 3 のときは "0" に固定されます。 ( 注意事項 ) スレーブモード選択時は , クロックソースを外部ク ロックに設定し , "1 対 1" (SMR2/3:SCKE=0, EXT=1, OTO=1) にする必要があります。 bit4 SCDE: シリアルクロック 遅延許可ビット モード 2 のマスタモード動作時に , SCDE ビットを "1" に設定す ると図 19.7-4 に示すような遅延したシリアルクロックを出力しま す。 bit3 SSM: スタート / ストップ ビットモード 許可ビット 動作モード 2 でスタート / ストップビットを同期データフォー マットに付加します。 モード 0, 1, 3 のときは影響しません。 未使用ビット 未使用ビットです。 読出し値は不定です。 常に "0" を書き込んでください。 bit1 RBI: 受信バスアイドル フラグビット SIN2/3 端子で受信動作をしていないときに "1" になり , それを保 持します。動作モード 2 では本ビットを使用しないでください。 bit0 TBI: 送信バスアイドル フラグビット SOT2/3 端子に送信動作がない場合は "1" になります。動作モー ド 2 で MS=1 のときは本ビットを使用しないでください。 MS=0 のときは本ビットを使用できます。 bit6 bit5 bit2 337 第 19 章 UART2/3 19.4.7 ボーレートジェネレータレジスタ 0, 1 (BGR02/BGR03/BGR12/BGR13) ボーレートジェネレータレジスタ 0, 1(BGR02/BGR03/BGR12/BGR13) は , シリア ルクロックの分周比を設定します。また , 送信リロードカウンタのカウント値を読 み出すことができます。 ■ ボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13) のビット構成 図 19.4-8 にボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13) のビット 構成を示します。 図 19.4-8 ボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13) のビット構成 アドレス: BGR02: 0035DEH BGR12: 0035DFH BGR03: 00351EH BGR13: 00351FH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 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 bit 7 ~ bit 0 BGR0 ライト リード bit 14 ~ bit 8 BGR1 ライト リード ボーレートジェネレータレジスタ 03 カウンタのリロード値 0 ~ 7 に書込み 送信リロードカウンタ bit0 ~ bit7 の読出し ボーレートジェネレータレジスタ 13 カウンタのリロード値 8 ~ 14 に書込み 送信リロードカウンタ bit8 ~ bit14 の読出し bit 15 リード 未使用ビット "0" を読み出せます R/W :リード / ライト可能 R :リードオンリ ボーレートジェネレータレジスタはシリアルクロックの分周比を設定します。 BGR12/BGR13 は上位ビット , BGR02/BGR03 は下位ビットに対応し , カウンタのリロー ド値の書込みと送信リロードカウンタ値の読出しが可能です。また , バイト・ワードア クセスで読出しまたは書込みができます。 ボーレートジェネレータレジスタに "0" 以外のリロード値を書き込むとリロードカウ ンタはカウントを開始します。 338 第 19 章 UART2/3 19.5 UART2/3 の割込み UART2/3 には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を発生 させることができます。 • 受信データが受信データレジスタ (RDR2/3) にセットされた場合 , または受信エ ラーが発生した場合 • 送信データが送信データレジスタ (TDR2/3) から送信用シフトレジスタに転送され , 送信が開始された場合 • LIN synch break 検出された場合 それぞれの割込みは拡張インテリジェント I/O サービス (EI2OS) に対応しています。 ■ LIN-UART2/3 の割込み 表 19.5-1 LIN-UART2/3 の割込み制御ビットと割込み要因 割込み 動作モード 送受信 / フラグ 要求フラグ ICU レジスタ 0 1 2 3 ビット 割込み要因 割込み要因 許可ビット 割込み要求 フラグのクリア RDRF SSR2/3 ○ ○ ○ ○ 受信データの RDR2/3 書込み ORE SSR2/3 ○ ○ ○ ○ オーバラン エラー FRE SSR2/3 ○ ○ △ ○ フレーミング エラー PE SSR2/3 ○ × △ × パリティ エラー LBD ESCR2/3 × × × ○ LIN synch break ESCR2/3: LBIE 検出 ESCR2/3: LBD への "0" 書込み 送信 TDRE SSR2/3 送信データの 書込み LIN synch break 発生 ビットへの "1" 書込み (ECCR2/3: LBR) イン プット キャプ チャ ICP1/ICP5 ICS01/ ICS45 × × × ○ LIN synch field ICS01/ICS45: ICP1/ICP5 を一時的に の 1 回目の立下 ICE1/ICE5 禁止 りエッジ ICP1/ICP5 ICS01/ ICS45 × × × ○ LIN synch field ICS01/ICS45: ICP1/ICP5 を禁止 の 5 回目の立下 ICE1/ICE5 りエッジ 受信 ○ ○ ○ ○ TDR2/3 が空 SSR2/3: RIE 受信データの 読出し 受信エラークリア ビット (SCR2/3:CRE) への "1" の書込み SSR2/3: TIE ○ : 使用ビット × : 未使用ビット △ : ECCR2/3:SSM=1 のみ使用可能 339 第 19 章 UART2/3 ● 受信割込み 以下に示す動作が , 受信モードで発生するとシリアルステータスレジスタ (SSR2/3) の 各フラグビットは "1" に設定されます。 データ受信完了 受信データが受信シフトレジスタから受信データレジスタ (RDR2/3) へ転送され た場合 (RDRF=1)。 オーバランエラー RDRF=1 で , RDR2/3 が CPU によってリードされずに , 次の受信データが受信シ フトレジスタから , 受信データレジスタ (RDR2/3) へ転送された場合 (ORE=1)。 フレーミングエラー ストップビットではなく , 0 ビットが受信された場合 (FRE)。 パリティエラー 誤ったパリティビットが検出された場合 (PE)。 上記のフラグビットいずれかが "1" のとき , 受信割込みが許可 (SSR2/3:RIE=1) されてい ると , 受信割込み要求が発生します。 RDRF フラグは , 受信データレジスタ (RDR2/3) を読み出すと , 自動的に "0" にクリアされ ます。このことでのみ , RDRF フラグをクリアされるので注意してください (MB90V390 HA/HB では RDRF フラグは LIN synch break が検出されるとクリアされます )。エラーフ ラグはシリアル制御レジスタ (SCR2/3) の受信エラーフラグクリアビット (CRE) に "1" を 書き込むと , "0" にクリアされます。 MB90V390HA/HB は , LIN synch break が検出されると , エラーフラグもクリアされま す。RDRF フラグが "1" のとき , エラービットがセットされていなければ , RDR2/3 は有 効データのみになります。 CRE フラグは , 書込み専用で , "1" 書込みのとき , 1 マシンクロックサイクル間 "1" を保 持します。 ● 送信割込み 送信データが送信データレジスタ (TDR2/3) から送信シフトレジスタに転送され , 送信 が開始されると , シリアルステータスレジスタ (SSR2/3) の送信データレジスタエンプ ティフラグビット (TDRE) が "1" にセットされます。この場合 , 前もって送信割込みが 許可 (SSR2/3:TIE=1) されていると , 送信割込み要求が発生します。 ハードウェアリセット / ソフトウェアリセット後の TDRE の初期値が "1" であるため , TIE フラグが "1" に設定されると直ちに割込みが発生します。また TDRE は , 送信デー タレジスタ (TDR2/3) にデータをライトすることでのみリセットされます。 ● LIN synch break 割込み 動作モード 3 で , LIN スレーブ動作をする場合に機能します。バス ( シリアル入力 ) が 11 ビットの間以上 "0" になると , 拡張ステータス制御レジスタ (ESCR2/3) の LIN synch break 検出フラグビット (LBD) は "1" にセットされます。 この場合 , 9 ビットの間の後 , 受信エラーフラグは "1" にセットされるので , LIN synch break 検出が要求されるなら , RXE フラグを "0" に設定しなくてはいけないことに注意 してください。 割込みと LBD フラグは , LBD フラグへの "1" 書込みでクリアされます。LIN synch field で入力キャプチャ割込みが発生する前にクリアしてください。 340 第 19 章 UART2/3 ● LIN synch field エッジ検出割込み 動作モード 3 で , LIN スレーブ動作をする場合に機能します。 LIN synch break 検出後 , 次の受信バス立下りエッジが指定されます。同時に , ICU1/ICU5 に接続された内部信号が "1" に設定されます。内部信号は LIN synch field の 5 回目の立 下りエッジ後に "0" にリセットされます。両方のエッジを検出するように設定し , ICU1/ ICU5 割込みが許可のとき割込みが発生します。 ICU1/ICU5 で検出されたカウンタ値の差は , シリアルクロック 8 ビット分に相当しま す。新しいボーレートを計算することができます。 8 ビットで割ると , 専用のリロードカウンタ用に検出され , 計算された新しいボーレー トになります。この値から "1" を引いた値をボーレートジェネレータレジスタ (BGR02/ BGR03/BGR12/BGR13) に書き込みます。 スタートビットの立下りエッジを検出すると,リロードカウンタは自動的に再スタート します。 ■ LIN-UART2/3 の割込みと EI2OS 表 19.5-2 UART2/3 の割込みと 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 送信割込みと UART3 送受信割込みが不可の場合のみ , UART2 受信の EI2OS サービスが使 用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。 *2: UART2 受信割込みと UART3 送受信割込みが不可の場合のみ , UART2 送信の EI2OS サービスが使 用できます。 *3: UART3 送信割込みと UART2 送受信割込みが不可の場合のみ , UART3 受信の EI2OS サービスが使 用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。 *4: UART3 受信割込みと UART2 送受信割込みが不可の場合のみ , UART3 送信の EI2OS サービスが使 用できます。 341 第 19 章 UART2/3 ■ UART2/3 の EI2OS 機能 UART2/3 は EI2OS 対応の回路を有しています。このため , 受信 / 送信の各割込みで別々 に EI2OS を起動することができます。 ● UART2 受信時 UART2 は UART2 送信割込みや UART3 送受信割込みと割込みレジスタを共有してい ます。そのため , UART2 送信割込みや UART3 送受信割込みが使用されていない場合 のみ EI2OS を使用できます。 ● UART2 送信時 UART2 は UART2 受信割込みや UART3 送受信割込みと割込みレジスタを共有してい ます。そのため , UART2 受信割込みや UART3 送受信割込みが使用されていない場合 のみ EI2OS を使用できます。 ● UART3 受信時 UART3 は UART3 送信割込みや UART2 送受信割込みと割込みレジスタを共有してい ます。そのため , UART3 送信割込みや UART2 送受信割込みが使用されていない場合 のみ EI2OS を使用できます。 ● UART3 送信時 UART3 は UART3 受信割込みや UART2 送受信割込みと割込みレジスタを共有してい ます。そのため , UART3 受信割込みや UART2 送受信割込みが使用されていない場合 のみ EI2OS を使用できます。 342 第 19 章 UART2/3 19.5.1 受信割込み発生とフラグセットのタイミング 受信時の割込みとしては , 受信完了 (SSR2/3:RDRF), および受信エラーの発生 (SSR2/3:PE, ORE, FRE) があります。 ■ 受信割込み発生とフラグセットのタイミング 受信データが完了 (RDRF=1) し , シリアルステータスレジスタ (SSR2/3) の受信割込み 許可 (RIE) フラグビットが "1" に設定されると , 受信割込みが発生します。モード 0, モード 1, モード 2 (SSM=1 のとき ), モード 3 では 1 回目のストップビットが検出され ると , 割込みが発生し , モード 2 (SSM=0 のとき ) では最後のビットが読み出されます。 <注意事項> 受信エラーが発生したときは , 受信データレジスタ (RDR2/3) の各モードのデータは無効 となります。 図 19.5-1 受信動作とフラグセットのタイミング 受信データ ( モード 0/3) 受信データ ( モード 1) 受信データ ( モード 2) ST D0 D1 D2 .... D5 D6 D7/P SP ST ST D0 D1 D2 .... D6 D7 A/D SP ST D2 .... D5 D6 D7 D0 D0 D1 D4 PE * 1, FRE RDRF ORE * 2 (RDRF=1) 受信割込み発生 * 1: モード 1, 3 で PE フラグは常に "0" となります。 * 2: 受信データが CPU (RDRF = 1) によって読み出されず , ほかのデータフレームが読み出されると ORE のみ発生 します。 ST:スタートビット SP:ストップビット A/D:モード 1 ( マルチプロセッサ ) アドレスデータ選択ビット <注意事項> 図 19.5-1 はモード 0, モード 3 におけるすべての受信動作を表しているわけではありませ ん。"7p1" と "8N1" (p=" 偶数パリティ " または " 奇数パリティ ") の例のみ示されています。 343 第 19 章 UART2/3 図 19.5-2 ORE セットタイミング 受信データ RDRF ORE 344 第 19 章 UART2/3 19.5.2 送信割込み発生とフラグセットのタイミング 送信時の割込みは , 送信データが送信データレジスタ (TDR2/3) から送信用シフトレ ジスタに転送され , 送信が開始されると発生します。 ■ 送信割込み発生とフラグセットのタイミング 送信される次のデータが , 送信データレジスタ (TDR2/3) に書込み可能な状態 , つまり , TDR2/3 が空でシリアルステータスレジスタ (SSR2/3) の送信割込み許可ビット (TIE) を "1" に設定することにより , 送信割込みが許可されると送信割込みが発生します。SSR2/ 3 の送信データレジスタエンプティ(TDRE) フラグビットは空の TDR2/3 を指定します。 TDRE ビットはリードオンリビットなので , 送信データレジスタ (TDR2/3) へのデータ書 込みのみにより "0" にクリアされます。 図 19.5-3 に ,UART2/3 の各モードに設定したときの送信動作とフラグセットのタイミ ングについて示します。 図 19.5-3 送信動作とフラグセットのタイミング 送信割込み発生 送信割込み発生 モード 0, モード 1, モード 2 (SSM=1) ま たはモード 3: TDR2/3 書込み TDRE ST D0 D1 D2 D3 D4 D5 D6 D7 シリアル出力 送信割込み発生 P AD SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP AD 送信割込み発生 モード 2 (SSM = 0) : TDR2/3 書込み 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:ストップビット AD:アドレスデータ選択ビット ( モード 1) <注意事項> 図 19.5-3 はモード 0 におけるすべての送信動作については説明していません。"8p1" (p=" 偶数パリティ " または " 奇数パリティ ") についてのみ示されています。 パリティビットはモード3の場合, もしくはモード2でSSM=0の場合には送信されません。 345 第 19 章 UART2/3 ■ 送信割込み要求発生タイミング 送信割込みが許可されている場合に (SSR2/3:TIE=1), TDRE フラグが "1" にセットされ ると , 送信割込み要求が発生します。 <注意事項> 初期状態では, TDREビットが"1"になっていますので, 送信割込みを許可(SSR2/3:TIE=1) にすると直ちに送信完了割込みが発生します。TDRE ビットはリードオンリビットなので , 送信データレジスタ (TDR2/3) に新しいデータを書き込むことでしかクリアできません。 送信割込み許可のタイミングには注意してください。 346 第 19 章 UART2/3 19.6 UART2/3 のボーレート UART2/3 のシリアルクロックソースは , 次のいずれかを選択できます。 • 専用ボーレートジェネレータ ( リロードカウンタ ) • 外部クロック (SCK2/3 端子にクロック入力 ) • ボーレートジェネレータに接続された外部クロック ( リロードカウンタ ) ■ UART2/3 ボーレート選択 ボーレート選択回路は以下に示すように設計されています。 ボーレートは次の 3 種類の中から 1 種類を選択できます。 ● 専用ボーレートジェネレータ ( リロードカウンタ ) を用いて規定されるボーレート 2 つの独立した内部リロードカウンタがあり , それぞれ送受信シリアルクロックに対応 しています。ボーレートジェネレータレジスタ 1, 0 (BGR02/BGR03/BGR12/BGR13) で 15 ビットのリロード値を設定することにより , ボーレートを選択できます。 リロードカウンタは, ボーレートジェネレータレジスタ0, 1で設定された値でマシンク ロックを分周します。 ● 外部クロック (1 対 1 モード ) によるボーレート UART2/3 のクロック入力端子 (SCK2/3) から入力されたクロックを , そのままボーレー トとして使用します ( 同期 )。 マシンクロックの 4 分周以下のボーレートを外部で設定できます。 ● 外部クロックにより専用ボーレートジェネレータを用いて規定されるボーレート 外部クロックソースはリロードカウンタに内部接続することもできます。このモード では , 内部マシンクロックの代わりに使用されます。特殊な周波数の水晶発振子を分周 して使用するケースを想定して用意されています。 347 第 19 章 UART2/3 図 19.6-1 UART2/3 ボーレート選択回路 ( リロードカウンタ ) リセット リロード値:v 受信 15 ビット リロードカウンタ スタートビット 立下りエッジ検出 セット Rxc = 0? リロード FF リセット Rxc = v/2? 0 受信 クロック 1 リロード値:v マシンクロック 0 SCK2/3 ( 外部クロック 入力 ) 1 送信 15 ビット リロードカウンタ カウント値:TXC EXT セット Txc = 0? OTO リロード FF 0 リセット Txc = v/2? 1 送信クロック 内部データバス EXT REST OTO 348 SMR2/3 レジスタ BGR14 BGR13 BGR12 BGR11 BGR10 BGR9 BGR8 BGR12/ BGR13 レジスタ BGR7 BGR6 BGR5 BGR4 BGR3 BGR2 BGR1 BGR0 BGR02/ BGR03 レジスタ 第 19 章 UART2/3 19.6.1 ボーレート設定 ボーレートの設定を示します。また , シリアルクロック周波数の計算結果を示しま す。 ■ ボーレートの計算 2 つの 15 ビットリロードカウンタは , ボーレートジェネレータレジスタ 0, 1 (BGR02/ BGR03/BGR12/BGR13) で設定します。 ボーレートの計算式を以下に示します。 リロード値 : v = [φ / b] - 1, v: リロード値 b: ボーレート φ: マシンクロック , 外部クロック周波数 計算例 マシンクロック16MHz, 内部クロック使用, ボーレートを19200 bpsに設定する場合, 次のようになります。 リロード値 : v= ( 16 × 106 ) 19200 - 1 = 832 よって実際のボーレートは下記のように計算できます。 b= φ (v + 1) = 16 × 106 = 19207.6831 833 <注意事項> リロード値を "0" に設定するとリロードカウンタは停止します。そのため , 最低の分周比 は 2 になります。 非同期モードで送受信する際, 5回オーバサンプリングして受信値を決定するため, リロー ド値を最低でも 4 に設定する必要があります。 349 第 19 章 UART2/3 ■ 各クロック速度のリロード値とボーレート 各クロック速度のリロード値とボーレートを , 表 19.6-1 に示します。 表 19.6-1 リロード値とボーレート 8 MHz 10 MHz 16 MHz 20 MHz 24 MHz ボーレート 値 偏差 値 偏差 値 偏差 値 偏差 偏差 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 です。 350 値 第 19 章 UART2/3 ■ 外部クロック シリアルモードレジスタ (SMR2/3) の EXT ビットに "1" を書き込むと , SCK2/3 端子に 接続される外部クロックが選択されます。ボーレートリロードカウンタで外部クロッ クはマシンクロックと同じように使用できます。 同期モード 2 でスレーブ動作を使用する際に , 1 対 1 外部クロック入力モード (SMR2/ 3:OTO=1) を選択します。このモードでは, SCK2/3に入力された外部クロックをUART2/ 3 のシリアルクロックに直接入力します。 外部クロック信号は UART2/3 でマシンクロックに同期します。したがって , 分周不可 能な外部クロックの場合 , 不安定な信号状態になります。 ■ リロードカウンタの動作 リロード値を 832 としたときの 2 つのリロードカウンタの動作を図 19.6-2 に示します。 図 19.6-2 リロードカウンタの動作 送受信クロック リロード カウンタ 001 000 832 831 830 829 828 827 414 413 412 411 リロードカウンタ値 送受信クロック リロード カウンタ 418 417 416 415 <注意事項> シリアルクロック信号の立下りエッジは , リロード値を 2 で割った値 ( (v+1)/2 ) を立上り エッジの後に発生します。 351 第 19 章 UART2/3 19.6.2 リロードカウンタ リロードカウンタは下記の条件で再スタートされます。 送信 / 受信リロードカウンタ共通 • グローバル MCU リセット • UART2/3 プログラマブルクリア (SMR2/3:UPCL ビット ) • プログラマブル再スタート (SMR2/3: REST ビット ) 受信リロードカウンタ • 非同期モードでのスタートビット立下りエッジ検出 ■ プログラマブル再スタート シリアルモードレジスタ (SMR2/3) の REST ビットを "1" にセットすると , 次のクロッ クサイクルで 2 つのリロードカウンタは再スタートします。 この機能により送信リロードカウンタを簡易的なタイマとして利用できます。 本機能の使用例を図 19.6-3 に示します ( リロード値 100 の場合 )。 図 19.6-3 リロードカウンタの再スタート例 MCU クロック リロードカウンタ クロック出力 リセット リロード値 37 36 35 100 99 98 97 96 95 94 93 92 91 90 89 88 87 BGR02/BGR03/BGR12/BGR13 読出し データバス 90 : don’t care この例では , 再スタート後のマシンサイクル数 cyc は下式で求められます。 cyc = v - c + 1 = 100 - 90 + 1 = 11, v : リロード値 , c : リロードカウンタの値 <注意事項> SMR2/3:UPCL ビットに "1" をライトすることで UART2/3 をリセットした場合にも , リ ロードカウンタは再スタートします。 352 第 19 章 UART2/3 ● 自動再スタート 非同期モードでスタートビット立下りエッジが検出されると , 受信リロードカウン タが再スタートします。これは受信シフトレジスタを受信データに同期させるため の機能です。 ● カウンタのクリア ボーレートリロード / カウンタレジスタ (BGR12, BGR13, BGR02 および BGR03) とボー レートリロードカウンタは MCU グローバルリセットにより "0" にクリアされ , カウン タが停止します。UART2/3 のリセット (SMR2/3:UPCL への "1" 書込み ) でカウンタ値は 一時 "0" にクリアされますが , リロード値は保持されていますのでリロードカウンタは 再スタートします。再スタートの設定 (SMR2/3:REST への "0" 書込み ) ではカウンタ値 は "0" にクリアされずに再スタートします。 353 第 19 章 UART2/3 19.7 UART2/3 の動作 UART2/3 は , モード 0 の双方向シリアル通信 , モード 1 のマスタ / スレーブマルチ プロセッサ通信 , モード 2, モード 3 のマスタ / スレーブ双方向通信で動作します。 ■ UART2/3 の動作 ● 動作モード UART2/3 の動作モードにはモード 0 ~モード 3 の 4 種類があり , 表 19.7-1 に示すよう に通信方式によって選択することができます。 表 19.7-1 UART2/3 の動作モード データ長 動作モード 同期方式 パリティなし 0 ノーマルモード 1 マルチプロセッサ モード 7 ビットまたは 8 ビット 7 ビットまたは 8 ビット + 1* 2 ノーマルモード 3 LIN モード パリティあり - 8 8 - 非同期 非同期 ストップ ビット長 1 ビット または 2 ビット 同期 なし , 1 ビット , 2 ビット 非同期 1 ビット データビット方向 LSB ファースト MSB ファースト LSB ファースト ―: 設定不可 *: "+1" はマルチプロセッサモードでパリティの代わりに使用されるアドレス / データ選択ビット (A/D) です。 <注意事項> モード 1 でマスタ / スレーブ接続されたシステムにおいて , マスタとスレーブいずれの動 作にも対応しています。モード 3 では , 通信フォーマットが 8N1, LSB ファーストに固定 されます。 モード切換えを行った場合 , すべての送受信動作は打ち切られ , 次の動作待ち状態になり ます。 354 第 19 章 UART2/3 ■ CPU 間接続方式 外部クロック 1 対 1 接続 ( ノーマルモード ) とマスタ / スレーブ型接続 ( マルチプロ セッサモード ) のどちらかを選択できます。どちらの方式でも , データ長 , パリティ有 無 , 同期方式などは , すべての CPU で統一しておく必要があり , 動作モードを次のよう に選択します。 • 1 対 1 接続の場合:2 つの CPU で動作モード 0, 動作モード 2 のいずれかの同じ方式 を採用する必要があります。非同期方式では動作モード 0, 同期 方式では動作モード 2 を選択してください。また , 動作モード 2 では 1 つの CPU をマスタへ , もう 1 つの CPU をスレーブへ設 定してください。 • マスタ / スレーブ型接続の場合:動作モード 1 を選択します。マスタ / スレーブシ ステムとして使用してください。 ■ 同期方式 非同期方式において , 受信クロックは受信スタートビットの立下りエッジに同期しま す。 スタートビットはエッジにより検出されます。SCR2/3:RXE ビットが "1" に設定され たときに , SIN2/3 が "0" の場合 , スタートビットはシリアルデータ入力 SIN2/3 の次の 立下りエッジの前に検出されません。SCR2/3:RXE ビットが "0" に設定された後 , 受 信スタートビットを格納しません。SCR2/3:RXE ビットが再び "1" に設定されたとき に , スタートビットを検出すると受信を開始します。 同期方式では , マスタのクロック信号またはマスタとして動作したときのクロック信 号によって同期させることができます。 ■ 信号方式 NRZ(Non Return to Zero) 形式です。 ■ 送受信許可 UART2/3 は送信と受信の動作をそれぞれ SCR2/3:TXE ビットと SCR2/3:RXE ビットに よって制御します。送信または受信をディセーブルに設定する場合は , 下記のように 行ってください。 • 受信をディセーブルする場合 , 受信動作中 ( データを受信シフトレジスタに入力す る ) であれば , 受信が終了するのを待ち , 受信データレジスタ (RDR2/3) をリードし てから , 行ってください。 • 送信をディセーブルする場合 , 送信動作中 ( データが受信シフトレジスタから出力 する ) であれば , 送信動作が終了するのを待ってから行ってください。 355 第 19 章 UART2/3 19.7.1 非同期モード ( 動作モード 0, 1) の動作 UART2/3 を動作モード 0( ノーマルモード ), または動作モード 1( マルチプロセッサ モード ) で使用する場合 , 転送方式は非同期となります。 ■ 非同期モードの動作 ● 送受信データフォーマット 送受信データは必ずスタートビット ( バス上の "L" レベル ) から始まり , 指定された データビット長の送受信が行われ , 少なくとも 1 ビットのストップビット ("H" レベル ) で終了します。 ビット転送方向 (LSB ファーストまたは MSB ファースト ) はシリアルステータスレジ スタ (SSR2/3) の BDS ビットで決定されます。パリティありの場合 , パリティビットは 常に最終データビットと最初のストップビットの間に置かれます。 動作モード 0 では , データ長は 7 ビットまたは 8 ビットを選択します。パリティは , あ り / なしの選択ができます。また , ストップビット長 (1 または 2) が選択可能です。 動作モード 1 では , データ長は 7 または 8 ビットで , パリティは付加されず , アドレス / データ選択ビットが付加されます。ストップビット長 (1 または 2) を選択できます。 送受信フレームのビット長計算式は , 以下のようになります。 長さ = 1 + d + p + s (d= データビット数 [7 または 8], p= パリティ [0 または 1], s= ストップビットの数 [1 または 2]) 図 19.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 (bit7) パリ ティありでデータ長が 7 ビットのとき P ( パリティ ) * 2: SCR2/3 の SBL ビットが "1" に設定されているときのみ ST :スタートビット SP:ストップモード A/D: モード 1 でアドレス / データ選択ビット ( マルチプロセッサモード ) <注意事項> シリアルステータスレジスタ (SSR2/3) の BDS ビットを "1" (MSB ファースト ) に設定す る場合 , ビットは D7, D6, …D1, D0(P) の順序で処理されます。 受信中 , 2 つのストップビットを選択していれば , ストップビットを検出します。しか し , 受信データレジスタフルフラグ (RDRF) が最初のストップビットで "1" になります。 これ以降スタートビットが検出されなければ, 第2ストップビット後にバスアイドルフ 356 第 19 章 UART2/3 ラグ (ECCR2/3 の RBI) が "1" になります。( 第 2 ストップビットはマークレベルですが , " バスアクティビティ " に属します。) ● 送信動作 シリアルステータスレジスタ (SSR2/3) の送信データレジスタエンプティフラグビット (TDRE) が "1" であれば , 送信データレジスタ (TDR2/3) に送信データを書き込むことが できます。データを書き込むと TDRE フラグは "0" になります。このとき , 送信が許可 されていれば ( シリアル制御レジスタ (SCR2/3) の TXE=1), データは送信シフトレジス タに書き込まれ , シリアルクロックの次のサイクルで , スタートビットから順に送信が 開始されます。 送信割込みが許可されていれば (TIE=1), TDRE フラグがセットされると割込みが発生 します。TDRE の初期値は "1" であるため , その状態で TIE に "1" を書き込むと直ちに 割込みが発生しますので注意してください。データ長が 7 ビットに設定 (CL=0) されて いる場合 , 転送方向選択ビット (BDS) の設定 (LSB ファーストまたは MSB ファースト ) にかかわらず , TDR2/3 の MSB が不使用ビットになります。 <注意事項> 送信データエンプティフラグビット (SSR2/3:TDRE) の初期値が "1" になっているため , 送 信割込みが許可 (SSR2/3:TIE=1) されると直ちに割込みが発生します。 ● 受信動作 受信動作が許可 (SCR2/3:RXE=1) されていると , 受信動作を行います。スタートビット を検出すると , シリアル制御レジスタ (SCR2/3) で設定しているデータフォーマットに 従って 1 フレームデータの受信が行われます。エラーが発生した場合にはエラーフラ グ (SSR2/3:PE, ORE, FRE) がセットされます。1 フレームの受信が完了すると , 受信デー タは受信シフトレジスタから受信データレジスタ (RDR2/3) へ転送され , 受信データレ ジスタフルフラグビット (SSR2/3:RDRF) が "1" にセットされます。 受信データの読出しで , 受信データレジスタフルフラグビット (SSR2/3:RDRF) は "0" に クリアされます。 受信割込みが許可 (SSR2/3: RIE=1) されていると RDRF にて割込みが発生されます。 データ長が 7 ビットに設定 (CL=0) されている場合 , 転送方向選択ビット (BDS) の設定 (LSB ファーストまたは MSB ファースト ) にかかわらず , TDR2/3 の MSB が不使用ビッ トになります。 <注意事項> 受信データレジスタ (RDR2/3) のデータは , 受信データレジスタフルフラグビット (SSR2/ 3:RDRF) が "1" にセットされ , エラーが発生しなかった (SSR2/3:PE, ORE, FRE=0) 場合 に有効となります。 ● 使用クロック 内部クロックまたは外部クロックを使用します。ボーレートは , ボーレートジェネレー タを選択 (SMR2/3:EXT=0 または 1, OTO=0) してください。 357 第 19 章 UART2/3 ● ストップビット , エラー検出 , パリティ : SCR2/3 レジスタの SBL ビットで 1 ビットまたは 2 ビットのストップビットを選択でき ます。2 ビットのストップビットを選択したときは , 両方のストップビットが受信時に 検出されます。 2 番目のストップビットの後に RBI フラグ ( バスアイドル ) が設定されます。 しかし , 最初のストップビットが検出されると受信データレジスタフルフラグ (SSR2/ 3:RDRF) が "1" になります。モード 0 では , パリティエラー, オーバランエラー, フレー ミングエラーが検出できます。モード 1 では , オーバラン , フレーミングエラーが検出 できます。パリティエラーは検出できません。モード 0 では , パリティ許可ビット (SCR2/3:PEN) でパリティの有無を , パリティ選択ビット (SCR2/3:P) で偶数 / 奇数パリ ティを選択できます。 358 第 19 章 UART2/3 19.7.2 同期モード ( 動作モード 2) の動作 UART2/3 を動作モード 2( ノーマルモード ) で使用する場合 , 転送方式はクロック同 期となります。 ■ 同期モード ( 動作モード 2) の動作 ● 送受信データフォーマット 同期モードでは , 8 ビットデータを送受信し , スタートビット , ストップビットの有無 を選択 (ECCR2/3:SSM) できます。図 19.7-2 に同期モード使用時のデータフォーマット を示します。 図 19.7-2 送受信データフォーマット ( 動作モード 2) 送受信データ D0 D1 D2 D3 D4 D5 D6 D7 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3 D4 D5 D6 D7 P (ECCR2/3:SSM=0, SCR2/3:PEN=0) 送受信データ * (ECCR2/3:SSM=1, SCR2/3:PEN=0) 送受信データ * SP SP (ECCR2/3:SSM=1, SCR2/3:PEN=1) *:SCR2/3 の SBL ビットを設定した場合 ST:スタートビット SP:ストップビット P:パリティビット ● モード 2 のクロック反転機能とスタート / ストップビット 拡張ステータス制御レジスタ (ESCR2/3) の SCES ビットが "1" の場合 , シリアルクロック は反転します。スレーブモードでは UART2/3 は受信したシリアルクロックの立下りエッ ジでデータビットをサンプリングします。マスタモードでは SCES ビットが "1" のとき , マークレベルが "0" になることにご注意ください。拡張通信制御レジスタ (ECCR2/3) の SSM ビットが "1" の場合には , 非同期モードのようにスタートビットとストップビット が付加されます。 図 19.7-3 クロック反転時の送受信データフォーマット マークレベル 送受信クロック (SCES=0, CCO=0): 送受信クロック (SCES=1, CCO=0): データストリーム (SSM=1) ( パリティなし , 1 ストップビット ): ST:スタートビット SP:ストップビット マークレベル ST SP データフレーム 359 第 19 章 UART2/3 ● クロックの供給 動作モード 2 では , クロック信号のクロックサイクル数はスタート / ストップビットを 含むデータビット数と同じでなければなりません。ECCR2/3 レジスタの MS ビットが "0" ( マスタモード ) で SMR2/3 レジスタの SCKE ビットが "1" ( クロック出力許可 ) で あれば , 同期クロックサイクルが自動的に出力されます。ECCR2/3 レジスタの MS ビッ トが "1" ( スレーブモード ) であれば , 他の通信デバイスによって正しいクロックサイ クルが発生されるのを確認してください。通信がない場合は , クロック信号はマークレ ベルで "1" に保たれる必要があります。ECCR2/3 レジスタの SCDE ビットを "1" に設 定すると , クロック出力信号を遅延します。遅延は MB90V390HA/HB と MB90F947(A)/ MB90F949(A) では異なります。 ECCR2/3 レジスタの SCDE ビットを "1" に設定すると , 図 19.7-4 に示すように , クロッ ク出力信号をシリアルクロックサイクルの 1/2 分遅延します。動作は , データサンプリ ングのためのシリアルクロック信号の立下りエッジを使用する通信デバイスを備えていま す。 図 19.7-4 送信クロックの遅延 (SCDE=1) 送信データ書込み 受信データサンプルエッジ マークレベル 送受信クロック ( ノーマル ) マークレベル 送信クロック (SCDE=1) マークレベル 送受信データ 0 1 1 LSB 0 1 0 データ 0 1 MSB 拡張ステータス制御レジスタ (ESCR2/3) の SCES ビットが "1" の場合 , シリアルのク ロックは反転し , 受信データをシリアルクロックの立下りエッジでサンプリングしま す。 ECCR2/3 レジスタの MS ビットが "0" ( マスタモード ) で , SMR2/3 レジスタの SCKE ビットが "1" ( クロック出力許可 ) であれば , 出力クロックも反転します。 通信がない場合は , クロック信号をマークレベルで "0" に保持する必要があります。 ESCR2/3 レジスタの CCO ビットが "1" のとき , データ通信がない場合でもシリアルク ロックは出力されます。したがって , 図 19.7-5 で示すように , スタート / ストップビッ トを指定することを推奨します。 図 19.7-5 連続クロック供給 ( モード 2) 送受信クロック (SCES=0, CCO=1): 送受信クロック (SCES=1, CCO=1): データストリーム (SSM=1) ( パリティなし , 1 ストップビット ): ST:スタートビット SP:ストップビット 360 ST SP データフレーム 第 19 章 UART2/3 • エラー検出 スタート / ストップビットが有効でない場合 (ECCR2/3: SSM=0) は , オーバランエ ラーのみが検出されます。 • 同期モードの通信設定 同期モードで通信を行うためには下記の設定が必要です。 • ボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13) 専用ボーレートリロードカウンタを必要な値に設定してください。 • シリアルモードレジスタ (SMR2/3) MD1, MD0 : "10B" ( モード 2) SCKE : "1" ・・・専用ボーレートリロードカウンタを使用 "0" SOE : "1" "0" ・・・外部クロックを入力 ・・・送受信許可 ・・・受信のみ許可 • シリアル制御レジスタ (SCR2/3) RXE, TXE : どちらかまたは両方のビットを "1" に設定します。 A/D : アドレス / データ選択機能使用されないため , 本ビットの値は無効です。 CL : 自動的に 8 ビット長に設定されます。本ビットの値は無効です。 CRE : "1" ・・・エラーフラグはクリアされ , 受信は中断されます。 - SSM=0 ( デフォルト ) の場合 PEN, P, SBL : パリティビット , ストップビットは使用されないため , 無効です。 - SSM=1 の場合 PEN : "1"・・・パリティビット付加 / 検出 , "0"・・・パリティビット不使用 P "0"・・・偶数パリティ : "1"・・・奇数パリティ , SBL : "1"・・・ストップビット長 2, "0"・・・ストップビット長 1 • シリアルステータスレジスタ (SSR2/3) BDS : "0"・・・LSB ファースト , "1"・・・MSB ファースト RIE : "1"・・・受信割込み許可 , "0"・・・受信割込み禁止 TIE : "1"・・・送信割込み許可 , "0"・・・送信割込み禁止 361 第 19 章 UART2/3 • 拡張通信制御レジスタ (ECCR2/3) SSM : "0" ・・・スタートビット / ストップビット不使用 ( 通常 ), "1" ・・・スタートビット / ストップビット使用 ( 拡張機能 ) MS : "0" ・・・マスタモード (UART2/3 はシリアルクロックを出力 ), "1" ・・・スレーブモード (UART2/3 はマスタデバイスからシリアルクロッ クを受信 ) • 同期スレーブモード時の初期化 UART2/3 は下記条件で初期化されます。 RXE=0, TXE=0, その他すべてを設定 , UPCL=1, RXE=1, TXE=1 これにより , 内部の送受信限定のステートマシンを確実に適切な状態にできます。 362 第 19 章 UART2/3 19.7.3 LIN 機能 ( 動作モード 3) の動作 動作モード 3 において , UART2/3 は LIN マスタおよび LIN スレーブとして動作しま す。 動作モード 3 ではデータフォーマットは 8N1-LSB ファーストに設定されます。 ■ 非同期 LIN モード動作 ( 動作モード 3) ● LIN マスタとしての動作 LINマスタモードではマスタがサブバス全体のボーレートを決定し, スレーブはマスタ に同期します。初期設定後にマスタが動作することでボーレートが要求する値に固定 されます。 拡張通信制御レジスタ (ECCR2/3) の LBR ビットに "1" を書き込むと , SOT2/3 端子から "L" レベルが 13 ~ 16 ビット出力されます。これは LIN メッセージの開始を示す LIN synch break です。 シリアルステータスレジスタ (SSR2/3) の TDRE フラグビットは "0" になり , 有効なデー タが送信データレジスタ (TDR2/3) になければ , break の後に "1" ( 初期値 ) になります。 このとき SSR2/3 の TIE ビットが "1" であれば送信割込みを出力します。 送信される LIN synch break の長さは ESCR2/3 の LBL0/LBL1 ビットによって , 下表の ように設定されます。 表 19.7-2 LIN synch break 長 LBL1 LBL0 0 0 13 ビット 1 0 14 ビット 0 1 15 ビット 1 1 16 ビット Break 長 LIN Synch fieldはLIN synch breakの後にバイトデータ0x55H として送信されます。 TDRE フラグが "0" の状態であっても LBR ビットを "1" に設定した後に 0x55H を TDR2/3 に 書き込めます。 ● LIN スレーブとしての UART2/3 LIN スレーブモードでは UART2/3 はマスタのボーレートに同期する必要があります。 受信がディセーブル設定 (RXE=0) でも LIN synch break 割込みがイネーブル設定 (LBIE=1) であれば , UART2/3 は受信割込みを発生します。このとき LIN マスタモード から LIN synch break を検出すると , ESCR2/3 の LBD ビットが "1" になります。 LBD ビットに "0" を書き込むと受信割込み要求がクリアされます。 LIN synch field からのボーレートの計算について , 例を説明します。LIN synch field の 最初の立上りエッジから 5 番目の立下りエッジまでの時間はインプットキャプチャモ ジュールにて測定されます。このため , インプットキャプチャモジュールは内部信号に 363 第 19 章 UART2/3 て LIN-UART2/3 に接続されます。この内部信号は最初の立下りエッジで "0" から "1" に , 5 番目の立下りエッジで "1" から "0" に変わります。したがって , インプットキャ プチャモジュールは立上りエッジと立下りエッジの両方を検出することで設定される 必要があります。LIN-UART2/3 からの内部信号も選択する必要があります。インプッ トキャプチャモジュールで測定された時間はボーレートクロックサイクルの 8 倍の時 間になります。 ボーレート設定値は下式で算出できます。 フリーランタイマがオーバフローしていない場合 : BGR 値 ={( b - a ) x Fe/ (8 x φ)} - 1 フリーランタイマがオーバフローした場合 : BGR 値 ={( max + b - a ) x Fe/ (8 x φ)} - 1 max : フリーランタイマの最大値 a : 1 度目の割込み後の ICU カウンタレジスタ値 b : 2 度目の割込み後の ICU カウンタレジスタ値 φ: マシンクロック周波数 (MHz) Fe = 外部クロック周波数 (MHz) 内部ボーレートジェネレータを使用しているとき (EXT=0), Fe =φ として計算します。 UART と ICU の関係については , 「13.3 16 ビットフリーランタイマ」を参照してくだ さい。 ● LIN Synch Break 検出割込みとフラグ スレーブモードにおいて, LIN synch breakが検出されるとESCR2/3 のLIN shnch break 検 出フラグ (LBD) が "1" になります。LIN synch break 割込みがイネーブルの場合 (LBIE=1) は割込みが発生します。 図 19.7-6 LIN synch break 検出とフラグセットのタイミング シリアルクロック サイクル # 0 シリアル クロック 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 シリアル入力 (LIN バス ) MB90F947/ MB90F949 FRE (RXE=1) MB90V390H LBD (RXE=0) RXE = 1 の場合に受信割込み発生 RXE = 0 の場合に受信割込み発生 上図は LIN synch break 検出とフラグセットのタイミングを示しています。 受信が許可 (RXE=1) で , 受信割込みが許可 (RIE=1) されていれば , SSR2/3 のデータフ レーミングエラー (FRE) フラグビットは LIN synch break 割込みよりも 2 ビット早く受 信割込みを発生させますので (8N1 の場合 ), LIN synch break を使用する場合には RXE=0 に設定してください。 364 第 19 章 UART2/3 LBD は動作モード 3 でのみサポートします。LIN synch break 検出で , 受信エラーフラグ (SSR2/3:FRE, SSR2/3:ORE, SSR2/3:PE) と受信データレジスタフルフラグ (SSR2/3: RDRF) がクリアされません。 図 19.7-7 は , 標準的な LIN メッセージの開始と UART2/3 の動作を示しています。 図 19.7-7 LIN スレーブモードでの UART2/3 の動作 シリアル クロック シリアル入力 (LIN バス ) CPU による LBR クリア LBD ICU 入力 (LSYN) Synch break (14 ビット設定の場合 ) Synch field 365 第 19 章 UART2/3 ● LIN バスタイミング 図 19.7-8 LIN バスタイミングと UART2/3 信号 前回のシリアルクロック クロックなし ( 計算フレーム ) 新たに計算されたシリアルクロック ICU カウント LIN bus (SIN2/3) RXE LBD (IRQ0) LBIE ICU 入力 (LSYN) IRQ (ICU) RDRF (IRQ0) RIE CPU による RDR2/3 リード 受信割込み許可 LIN synch break 開始 LIN synch break 検出 , 割込み発生 CPU による IRQ クリア (LBD->0) LBIE ディセーブル IRQ (ICU) IRQ クリア:ICU スタート IRQ (ICU) IRQ クリア:ボーレートを計算して設定 受信イネーブル スタートビットの立下りエッジ 受信データ 1 バイト RDR2/3 に保存 CPU による RDR2/3 リード 366 第 19 章 UART2/3 19.7.4 シリアル端子直接アクセス 送信端子 (SOT2/3) または受信端子 (SIN2/3) へ , 直接アクセスすることができます。 ■ UART2/3 端子直接アクセス UART2/3 では , ソフトウェアがシリアル入出力端子に直接アクセスすることができま す。 シリアル入力端子 (SIN2/3) の状態をシリアル入出力端子直接アクセスビット (ESCR2/ 3: SIOP)で読み出せます。ESCR2/3のシリアル出力端子直接アクセス許可ビット(SOPE) を設定すると , SOT2/3 端子の値を任意に設定することができます。送信シフトレジス タが空 ( 送信アクティビティなし ) であれば , このアクセスが可能になります。 LIN モードの場合は , 送信したデータの読出し , または物理的に LIN バス線信号が間 違っていたときのエラー処理に使用できます。 <注意事項> 出力端子アクセスを許可する前にシリアル入出力端子直接アクセスビット (ESCR2/ 3:SIOP) へ値を書き込んでください。これは , SIOP ビットが以前の値を保持しているた め , 期待しないレベルの信号が出力されることを防ぐためです。 通常のリードで SIN2/3 端子の値が読み出されますが , リードモディファイライト (RMW) 系命令では SIOP ビットは SOT2/3 端子の値が読み出されます。 367 第 19 章 UART2/3 19.7.5 双方向通信機能 ( ノーマルモード ) 動作モード 0, 2 で , 通常のシリアル双方向通信をすることができます。動作モード 0 は非同期通信 , 動作モード 2 は同期通信の選択ができます。 ■ 双方向通信機能 UART2/3 をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 19.7-9 に示す 設定が必要です。 図 19.7-9 UART2/3 の動作モード 0, 2 の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SCR2/3, SMR2/3 モード 0 → モード 2 → SSR2/3, TDR2/3, RDR2/3 モード 0 → モード 2 → ESCR2/3, ECCR2/3 モード 0 → モード 2 → ◎ × 1 0 □ + 368 PEN P SBL CL A/D ◎ □ ◎ □ ◎ □ ◎ + × × PE ◎ □ ◎ □ ◎ ◎ ◎ ◎ 0 0 ◎ ◎ ◎ ◎ ◎ ◎ RIE TIE ◎ ◎ ◎ ◎ 0 1 LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES × × × × × × × × ◎ ◎ bit0 CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE ORE FRE RDRF TDRE BDS ◎ ◎ bit7 bit6 bit5 bit4 bit3 bit2 bit1 ◎ ◎ × □ 0 0 0 ◎ ◎ 0 0 0 0 0 ◎ ◎ ◎ RBI TBI ◎ □ ◎ □ 変換データを設定 ( 書込み時 ) 受信データを保持 ( 読出し時 ) LBR + 0 ◎ × :使用ビット :不使用ビット :"1" を設定 :"0" を設定 :SSM = 1 の場合使用 ( 同期スタート / ストップビットモード ) :自動的に正しく設定されるビット 0 MS SCDE SSM × ◎ × ◎ × ◎ 0 0 第 19 章 UART2/3 ● CPU 間接続 双方向通信では , 図 19.7-10 に示すように , 2 つの CPU を相互に接続します。 図 19.7-10 UART2/3 の動作モード 2 の双方向通信の接続例 SOT SOT SIN SIN SCK 出力 入力 CPU-1 ( マスタ ) SCK CPU-2 ( スレーブ ) 図 19.7-11 双方向通信フローチャートの例 ( 送信側 ) ( 受信側 ) スタート スタート 動作モード設定 (0, 2 いずれか ) 動作モード設定 ( 送信側と合わす ) TDR2/3 に 1 バイトデータ をセットして通信 受信データあり NO YES 受信データあり 受信データ読出しと 処理 NO YES 受信データ読出しと 処理 (ANS) 1 バイトデータ送信 369 第 19 章 UART2/3 19.7.6 マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) 動作モード 1 で , 複数 CPU のマスタ / スレーブモード接続による通信が可能です。 マスタまたはスレーブとして使用できます。 ■ マスタ / スレーブ型通信機能 UART2/3 をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 19.7-12 に示す設定が必要です。 図 19.7-12 UART2/3 の動作モード 1 の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SCR2/3, SMR2/3 モード 1 → SSR2/3, TDR2/3, RDR2/3 モード 1 → ESCR2/3, ECCR2/3 モード 1 → ◎ × 1 0 + PEN P SBL CL A/D + × ◎ ◎ ◎ PE × ◎ ◎ 0 ◎ ◎ ◎ ◎ RIE TIE ◎ ◎ LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES × × × × bit0 CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE ORE FRE RDRF TDRE BDS ◎ bit7 bit6 bit5 bit4 bit3 bit2 bit1 ◎ ◎ × + 0 1 0 0 0 0 0 ◎ RBI TBI ◎ ◎ 変換データを設定 ( 書込み時 ) 受信データを保持 ( 読出し時 ) LBR × MS SCDE SSM × × × 0 :使用ビット :不使用ビット :"1" を設定 :"0" を設定 :自動的に正しく設定されるビット ● CPU 間接続 マスタ / スレーブ型通信では , 図 19.7-13 に示すように 2 本の共通通信ラインに 1 つの マスタ CPU と複数のスレーブ CPU を接続して通信システムを構成します。UART2/3 はマスタまたはスレーブのどちらでも使用できます。 図 19.7-13 UART2/3 のマスタ / スレーブ型通信の接続例 SOT1 SIN1 マスタ CPU SOT SIN スレーブ CPU #0 370 SOT SIN スレーブ CPU #1 第 19 章 UART2/3 ● 機能選択 マスタ / スレーブ型通信では , 表 19.7-3 に示すように動作モードとデータ転送方式を選 択してください。 表 19.7-3 マスタ / スレーブ型通信機能の選択 動作モード データ マスタ CPU スレーブ CPU アドレス 送受信 データ 送受信 モード 1 モード 1 (A/D ビット (A/D ビット 送受信 ) 送受信 ) パリ ティ A/D=1 + 7 または 8 ビット アドレス A/D=0 + 7 または 8 ビット データ なし 同期 方式 ストップ ビット 1 ビット 非同期 または 2 ビット ビット 方向 LSB または MSB ファースト ● 通信手順 通信はマスタ CPU がアドレスデータを送信することによって始まります。アドレス データとは A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択しま す。各スレーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレ スと一致した場合にマスタ CPU との通信をします。 図 19.7-14 に , マスタ / スレーブ型通信 ( マルチプロセッサモード ) のフローチャート を示します。 371 第 19 章 UART2/3 図 19.7-14 マスタ / スレーブ型通信フローチャート ( マスタ CPU) ( スレーブ CPU) スタート スタート 動作モード 1 に設定 動作モード 1 に設定 SIN2/3 端子をシリアルデータ 入力に設定 SOT2/3 端子をシリアルデータ 出力に設定 SIN2/3 端子をシリアルデータ 入力に設定 SOT2/3 端子をシリアルデータ 出力に設定 7 または 8 データビット設定 1 または 2 ストップビット 設定 7 または 8 データビット設定 1 または 2 ストップビット 設定 A/D ビットに "1" をセット 送受信動作許可 送受信動作許可 受信バイト スレーブアドレスを送信 A/D ビット = 1 NO YES スレーブアドレス が一致 A/D ビットに "0" をセット NO YES スレーブ CPU と通信 通信終了 ? マスタ CPU と通信 NO YES 他のスレーブ CPU と通信 YES NO YES 送受信動作禁止 エンド 372 通信終了 ? NO 第 19 章 UART2/3 19.7.7 LIN 通信機能 UART2/3 通信で LIN デバイスは , LIN マスタシステムもしくは LIN スレーブシステ ムに使用できます。 ■ LIN マスタ / スレーブ型通信機能 UART2/3 の LIN 通信モード ( 動作モード 3) に必要な設定を図 19.7-15 に示します。 図 19.7-15 UART2/3 の動作モード 3(LIN) 設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SCR2/3, SMR2/3 モード 3 → SSR2/3, TDR2/3, RDR2/3 モード 3 → ESCR2/3, ECCR2/3 P SBL CL A/D + × + + × PE × 0 ORE FRE RDRF TDRE BDS ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ bit0 CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE + ◎ ◎ RIE TIE ◎ ◎ LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES モード 3 → ◎ × 1 0 + PEN bit7 bit6 bit5 bit4 bit3 bit2 bit1 ◎ × + 1 1 0 0 0 0 0 ◎ RBI TBI ◎ ◎ 変換データを設定 ( 書込み時 ) 受信データを保持 ( 読出し時 ) LBR ◎ MS SCDE SSM × × × 0 :使用ビット :不使用ビット :"1" を設定 :"0" を設定 :自動的に正しく設定されるビット ● LIN デバイス接続 1 つの LIN マスタと LIN スレーブの通信システムを図 19.7-16 で示します。 UART2/3 は , LIN マスタまたは LIN スレーブとして動作することができます。 図 19.7-16 LIN バスシステムの接続例 SOT SOT LIN バス SIN LIN マスタ SIN トランシーバ トランシーバ LIN スレーブ 373 第 19 章 UART2/3 19.7.8 UART2/3 の LIN 通信フローチャート例 ( 動作モード 3) UART2/3 の LIN 通信フローチャート例を示します。 ■ LIN マスタデバイス 図 19.7-17 LIN マスタフローチャート スタート 初期設定: 動作モードを "3" に設定 シリアルデータ出力許可 , ボーレート設定 LIN Synch break 長設定 TXE = 1, TIE = 0, RXE = 0, RIE = 1 メッセージ送信 ? NO YES YES Wake up ? (0x80 受信 ) NO YES RXE = 0 LIN Synch Break 割込み許可 LIN Synch Break 送信: ECCR2/3: LBR = 1 LIN Synch Field 送信: TDR2/3 = 0x55 ( 受信 ) RDRF = 1 受信割込み 送信 Data 1 セット TDR2/3 = Data 1 送信割込み許可 Data 1 受信* 1 RDRF = 1 受信割込み Data N 受信 NO ( 送信 ) Data Field 受信 ? TDRE = 1 送信割込み *1 送信 Data N セット TDR2/3 = Data N 送信割込み禁止 LBD = 1 LIN Synch Break 割込み RDRF = 1 受信割込み 受信許可 LBD = 0 LIN Synch Break 割込み禁止 Data 1 受信 * 1 Data 1 読出し RDRF = 1 受信割込み RDRF = 1 受信割込み LIN Synch Field 受信 * 1 Identify Field セット :TDR2/3 = lD Data 1 受信 * 1 Data 1 読出し RDRF = 1 受信割込み ID Field 受信* 1 NO エラーなし ? エラー処理* 2 YES *1 : エラーが発生すると , エラー処理が実行されます。 *2 : ・SSR2/3:FRE または ORE ビットが "1" に設定されている場合 , エラーフラグをクリアするために , SCR2/3:CRE ビットを "1" に設定してください。 ・ESCR2/3:LBD ビットが "1" に設定されている場合 , UART2/3 のリセットが実行されます。 ( 注意事項 ) それぞれの処理でエラーフラグと処理が適切かを確認してください。 374 第 19 章 UART2/3 ■ LIN スレーブデバイス 図 19.7-18 LIN スレーブフローチャート スタート 初期設定: 動作モードを "3" に設定 シリアルデータ出力許可 , ボーレート設定 LIN Synch break 長設定 TXE = 1, TIE = 0, RXE = 0, RIE = 1 UART と ICU の接続 受信禁止 ICU 割込み許可 LIN Synch Break 割込み許可 YES ( LBD = 1 LIN Synch Break 割込み LIN Synch Break 検出クリア ECCR2/3: LBD = 0 LIN Synch Break 割込み禁止 ICU 割込み NO ( Data Field 受信 ? 送信 ) RDRF = 1 受信割込み Data 1 受信* 1 送信 Data 1 セット TDR2/3 = Data 1 送信割込み許可 RDRF = 1 受信割込み ICU 割込み ICU データ読出し ICU 割込みフラグクリア 受信 ) TDRE = 1 送信割込み Data N 受信* 1 送信 Data N セット TDR2/3 = Data N 送信割込み禁止 受信禁止 RDRF = 1 受信割込み ICU データ読出し ボーレート調整 受信許可 ICU 割込みフラグクリア ICU 割込み禁止 Data 1 受信 * 1 Data 1 読出し RDRF = 1 受信割込み LBD = 1 LIN Synch break 割込み Data N 受信 * 1 Data N 読出し 受信禁止 Identify Field 受信 *1 エラーなし ? NO エラー処理* 2 YES スリープ モード ? NO YES ウェイクアップ 受信 ? NO YES ウェイクアップ 送信 ? NO YES ウェイクアップ コード送信 *1 : エラーが発生すると , エラー処理が実行されます。 *2 : ・SSR2/3:FRE または ORE ビットが "1" に設定されている場合 , エラーフラグをクリアするために , SCR2/3:CRE ビットを "1" に設定してください。 ・ESCR2/3:LBD ビットが "1" に設定されている場合 , UART2/3 リセットが実行されます。 ( 注意事項 ) それぞれの処理でエラーフラグと処理が適切かを確認してください。 375 第 19 章 UART2/3 19.8 UART2/3 使用上の注意 UART2/3 を使用する場合の注意点を示します。 ■ UART2/3 使用上の注意 ● 動作許可 UART2/3 には送信 , 受信のそれぞれに対してシリアル制御レジスタ (SCR2/3) に TXE ( 送信 ), RXE( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では , 送受信 とも動作禁止であるため , 通信前に動作を許可する必要があります。ビットを禁止にす ることで動作も解除できます。 ● 通信モードの設定 通信モードの設定は , UART2/3 の動作停止中にしてください。送受信中にモード設定 をした場合 , そのとき送受信されたデータは保証されません。 ● 送信割込み許可のタイミング 送信データエンプティフラグビット (SSR2/3:TDRE) はデフォルト ( 初期値 ) が "1" ( 送信 データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR2/3:TIE=1) すると , 直ちに 送信割込み要求が発生します。これを避けるため , 必ず送信データを設 定してから , TIE フラグを "1" にしてください。 ● スタートビット同期 非同期モードでは , スタートビットはエッジにより検出されます。SCR2/3: RXE ビット が "1" に設定されて , SIN2/3 が "0" の場合 , スタートビットはシリアルデータ入力 SIN2/ 3 の次の立下りエッジの前に検出されません。 非同期モードでは , SCR2/3: RXE ビットが "0" に設定後 , 受信スタートビットが格納さ れません。SCR2/3: RXE ビットが再び "1" に設定されたときにスタートビットを検出す ると受信を開始します。 ● LIN 動作モード 3 の使用 LIN 機能はモード 3 ( 送受信 LIN Synch break) で使用可能ですが , モード 3 では自動的 に LIN フォーマットの設定 (8N1, LSB ファースト ) になります。 LIN synch break の送信ビット長は可変ですが , 受信は 11 ビット長固定になっています。 <注意事項> LIN 動作中は , ESCR2/3 レジスタの SCES ビットを "0" に設定してください。 ● 動作設定の変更 スタート / ストップビットの付加またはデータフォーマットを変更した場合など , 設定 を変更した後には UART2/3 のリセットを推奨します。 376 第 19 章 UART2/3 <注意事項> シリ ア ルモ ー ドレ ジ スタ (SMR2/3) の 設定 と 同時 に UART2/3 の リ セ ット (SMR2/ 3:UPCL=1) を行っても , 正しい動作設定は保証されません。そのため , シリアルモードレ ジスタ (SMR2/3) のビット設定を行った後 , 再度 UART2/3 をリセット (SMR2/3:UPCL=1) することを推奨します。 ● LIN スレーブ設定 スレーブ動作の最初のLIN synch breakを受信する前にボーレートを設定してください。 さもないと , LIN synch break の期間は最小限必要な LIN 仕様 (13 マスタビットおよび 11 スレーブビット分 ) に対して正確に判断できません。 ● プログラムの互換性 UART2/3 が他の UART と類似していますが , プログラムの互換性はありません。プロ グラミングの型は同じときもありますが , レジスタの構造は異なります。さらに , ボー レートの設定はあらかじめ設定された値を選出する代わりにリロード値によって決定 されます。 ● バスアイドル機能 バスアイドル機能は同期モード 2 および SSM=0 では使用できません。 ● A/D ビット ( シリアル制御レジスタ (SCR2/3):アドレス / データ形式選択ビット ) • A/D ビットに書き込むことで送信を設定しますが , このビットの読出しで最後に受 信した A/D ビットを返すので , A/D ビットは制御とフラグの両方のビットとして使 用します。送受信 A/D ビット値を異なったレジスタの内部に格納します。RMW 系 命令を使用すると A/D ビットの送信が読み出され , 受信 A/D データはほかの読出し として読み出されます。 • TDRE ビットが "0" から "1" になり , 送信が開始すると , A/D ビットの送信が送信デー タレジスタ (TDR2/3) のデータとあわせて送信シフトレジスタにロードされます。し たがって , 送信データレジスタ (TDR2/3) に書き込む前に A/D ビットを送信に設定し てください。 ● UART2/3 ソフトウェアリセット シリアル制御レジスタ (SCR2/3) の TXE ビットが "0" のときに , LIN-UART ソフトウェ アリセット (SMR2/3: UPCL = 1) を実行してください。 ● LIN Synch Field 待ち状態 モード 3 では (LIN 動作 ), シリアル入力が 11 ビット以上 "0" に保たれていれば , ESCR2/ 3 レジスタの LBD ビットが "1" に設定されます。UART2/3 は次に受信される LIN synch field を待ちます。UART2/3 が LIN synch break 以外の理由でこの状態に設定されると , ソフトウェアリセット (SMR2/3: UPCL=1) で初期化される必要があります。 ● 同期スレーブモード時の初期化 UART2/3 は下記条件で初期化されます。 RXE=0, TXE=0, その他すべてを設定 , UPCL=1, RXE=1, TXE=1 これにより , 内部の送受信限定のステートマシンを確実に適切な状態にできます。 377 第 19 章 UART2/3 378 第 20 章 2 400 kHz I C インタフェース I2C インタフェースの機能と動作について説明しま す。 20.1 I2C インタフェースの概要 20.2 I2C インタフェースのレジスタ 20.3 I2C インタフェースの動作 20.4 プログラミングフローチャート 379 第 20 章 400 kHz I2C インタフェース 20.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" である間は , バイトレベルでのクロック伸長が実行されます。 380 第 20 章 400 kHz I2C インタフェース 図 20.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 381 第 20 章 400 kHz I2C インタフェース I2C インタフェースのレジスタ 20.2 I2C インタフェースで使用するレジスタの構成および機能について説明します。 ■ I2C インタフェースのレジスタ一覧 図 20.2-1 I2C インタフェースのレジスタ一覧 バスコントロールレジスタ (IBCR) アドレス 0035A1H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 BER R/W BEIE R/W SCC W MSS R/W ACK R/W GCAA R/W INTE R/W INT R/W 初期値 00000000B バスステータスレジスタ (IBSR) アドレス 0035A0H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BB R RSC R AL R LRB R TRX R AAS R GCA R ADT R bit11 bit10 bit9 bit8 TA8 R/W 初期値 00000000B 10 ビットスレーブアドレスレジスタ (ITBA) ITBA( 上位 ) アドレス 0035A3H bit15 bit14 bit13 bit12 - - - - - - - - - - - - TA9 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TA7 R/W TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W 初期値 00000000B ITBA( 下位 ) アドレス 0035A2H 初期値 00000000B 10 ビットスレーブアドレスマスクレジスタ (ITMK) ITMK( 上位 ) アドレス 0035A5H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ENTB R/W RAL R/W - - - - - - - - TM9 R/W TM8 R/W 初期値 00111111B ITMK( 下位 ) アドレス 0035A4H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TM7 R/W TM6 R/W TM5 R/W TM4 R/W TM3 R/W TM2 R/W TM1 R/W TM0 R/W 初期値 11111111B 7 ビットスレーブアドレスレジスタ (ISBA) アドレス 0035A6H R/W R W - bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - - SA6 R/W SA5 R/W SA4 R/W SA3 R/W SA2 R/W SA1 R/W SA0 R/W 初期値 00000000B :リード / ライト可能 :リードオンリ :ライトオンリ :不定 ( 続く ) 382 第 20 章 400 kHz I2C インタフェース ( 続き ) 7 ビットスレーブアドレスマスクレジスタ (ISMK) アドレス 0035A7H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ENSB R/W SM6 R/W SM5 R/W SM4 R/W SM3 R/W SM2 R/W SM1 R/W SM0 R/W 初期値 01111111B データレジスタ (IDAR) アドレス 0035A8H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W 初期値 00000000B クロックコントロールレジスタ (ICCR) アドレス 0035A5H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - - NSF R/W EN R/W CS4 R/W CS3 R/W CS2 R/W CS1 R/W CS0 R/W 初期値 00011111B R/W :リード / ライト可能 - :不定 383 第 20 章 400 kHz I2C インタフェース 20.2.1 バスステータスレジスタ (IBSR) バスステータスレジスタ (IBSR) の構成および機能について説明します。 • バスビジー検知 • 繰返し開始状態検知 • アービトレーションロスト検知 • アクノリッジ検知 • データ転送方向表示 • スレーブ検知のアドレッシング • 汎用コールアドレス検知 • アドレスデータ転送検知 ■ バスステータスレジスタ (IBSR) このレジスタはリードオンリです。全ビットはハードウェアで制御されています。イ ンタフェースが不可の場合 (ICCR 中の EN = 0), 全ビットはクリアされます。 図 20.2-2 バスステータスレジスタの構成 (IBSR) IBSR アドレス 0035A0H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BB RSC AL LRB TRX AAS R R R R R R GCA ADT R R 初期値 0 0 0 0 0 0 0 0B bit0 ADT アドレスデータ転送ビット 0 入力データはアドレスデータ以外 ( バス非使用 ) 1 入力データはアドレスデータ bit1 GCA 0 1 汎用コールアドレスビット スレーブ外として受信した汎用コールアドレス スレーブとして受信した汎用コールアドレス bit2 AAS 0 1 スレーブビットとしてのアドレッシング スレーブとしてアドレスされていない スレーブとしてアドレスされている bit3 転送データビット TRX 0 転送データなし 1 転送データ bit4 LRB 最終受信ビット 0 レシーバはアクノリッジしていない 1 レシーバはアクノリッジしている bit5 AL アービトレーションロストビット 0 アービトレーションロスト検知なし 1 アービトレーションロスト検知あり bit6 RSC 繰返しスタートコンディションビット 0 繰返しスタートコンディションの検知なし 1 バス使用中に繰返しスタートコンディションを検知 bit7 BB R 384 バスビジービット : リードオンリ 0 ストップコンディション検知 ( バスアイドル ) : 初期値 1 スタートコンディション検知 ( バス使用中 ) 第 20 章 400 kHz I2C インタフェース ■ バスステータスレジスタ (IBSR) の内容 表 20.2-1 バスステータスレジスタ (IBSR) の各ビットの機能 ( 1 / 3 ) ビット名 bit 7 bit 6 機能 BB: バスビジー ビット このビットは , I2C バスの状態を示すビットです。 "0": ストップコンディションを検出した ( バスは使用されていない ) 。 "1": スタートコンディションを検出した ( バスは使用されている ) 。 スタートコンディションが検知されると , このビットは "1" に設定され ます。ストップコンディションでリセットされます。 RSC: 繰返しスタート コンディション ビット このビットは , 繰返しスタートコンディション検出ビットです。 "0": 繰返しスタートコンディションは検出されていない。 "1": バス使用中に , 再びスタートコンディションを検出した。 このビットは , アドレスデータ転送の終了時 (ADT= 0) またはストップコ ンディション検出でクリアされます。 AL: アービトレー ションロスト ビット このビットは , アービトレーションロスト検出ビットです。 "0": アービトレーションロスト検出されていない。 "1": マスタ送信中にアービトレーションロストの発生を検出しました。 このビットは , INT ビットに "0" を書き込むか , IBCR レジスタ中の MSS ビットに "1" を書き込むことでクリアされます。 下記のような場合 , アービトレーションロストが発生します。 bit 5 • SCL 立上りエッジで , 送信データが SDA ラインの読込みデータと一致 しない場合 • 他のマスタにより , 繰返しスタートコンディションがデータバイトの 1 ビット目で発生された場合 • 他のスレーブが SCL ラインを "L" にするために , インタフェースがス タート / ストップコンディションを発生できない場合 bit 4 LRB: 最終受信 ビット このビットは , アクノリッジ格納ビットです。受信側からのアクノリッ ジメッセージを格納します。 "0": 受信側アクノリッジ可能 "1": 受信側アクノリッジ不可 このビットは , bit9 ( アクノリッジビット ) の受信中にハードウェアで変 更され , スタート / ストップコンディションでクリアされます。 385 第 20 章 400 kHz I2C インタフェース 表 20.2-1 バスステータスレジスタ (IBSR) の各ビットの機能 ( 2 / 3 ) ビット名 TRX: 転送データ ビット 機能 このビットは , データ転送の動作を示すビットです。 "0": データ転送されていない。 "1": データ転送された。 下記の場合に , このビットは "1" になります。 • マスタモード中にスタートコンディションが発生した場合 • 開始バイトの転送 , スレーブとしてのデータ読出しやマスタとしての データ送信が完了した場合 下記の場合に , このビットは "0" になります。 • バスがアイドル状態 (BB=0) の場合 bit 3 • アービトレーションロストが発生した場合 • マスタ割込み中 (MSS = 1, INT = 1) に SCC ビットに "1" が書き込まれ た場合 • マスタ割込み中 (MSS = 1, INT = 1) に MSS ビットがクリアされた場合 • インタフェースがスレーブモード中で , 最終転送バイトがアクノリッ ジされなかった場合 • インタフェースがスレーブモード中に , データを受信した場合 • インタフェースがマスタモード中に , スレーブからのデータを読み込 んだ場合 bit 2 bit 1 386 AAS: スレーブ ビットと してのアド レッシング このビットは , スレーブ時のアドレッシング検出ビットです。 "0": スレーブ時に , アドレッシングされていない。 "1": スレーブ時に , アドレッシングされた。 このビットは , 繰返しスタートコンディションまたはストップコンディ ションの検出でクリアされます。インタフェースが 7 ビットや 10 ビット のスレーブアドレスを検知したときに設定されます。 GCA: 汎用コール アドレス ビット このビットは , ジェネラルコールアドレス (0x00) 検出ビットです。 "0": スレーブ時に , ジェネラルコールアドレスは受信されていない。 "1": スレーブ時に , ジェネラルコールアドレスを受信した。 このビットは , 繰返しスタートコンディションまたはストップコンディ ションの検出でクリアされます。 第 20 章 400 kHz I2C インタフェース 表 20.2-1 バスステータスレジスタ (IBSR) の各ビットの機能 ( 3 / 3 ) ビット名 ADT: アドレスデー タ転送ビット 機能 このビットは , アドレスデータ転送の検出ビットです。 "0": 受信データがアドレスデータ以外である ( またはバスが使用されて いない ) 。 "1": 受信データがアドレスデータである。 bit 0 このビットは , スタートコンディションで "1" にセットされます。ライ トアクセスの 10 ビットスレーブアドレスヘッダが検知された場合 , 第 2 バイトの後にクリアされます。その他の場合は , 第 1 バイトの後にクリ アされます。 「第 1/ 第 2 バイトの後に」とは , 下記を意味します。 • マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , MSS ビットに "0" が書き込まれる。 • マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , SCC ビットに "1" が書き込まれる。 • INT ビットがクリアされる。 • インタフェースが , マスタ , スレーブのカレント転送と関係していない ときに , 全バイト転送が開始。 387 第 20 章 400 kHz I2C インタフェース 20.2.2 バス制御レジスタ (IBCR) バス制御レジスタ (IBCR) には下記の機能があります。 • 割込み許可フラグ • 割込み発生フラグ • バスエラー検知フラグ • 繰返しスタートコンディション発生 • マスタ / スレーブモード選択 • 汎用コールアクノリッジ発生許可 • データバイトアクノリッジ発生許可 ■ バス制御レジスタ (IBCR) このレジスタへの書込みアクセスは , INT = 1 の間か , 転送が開始された場合にのみ 行ってください。ACK や GCAA ビットの変更が結果としてバスエラーとなった場合 , ユーザはデータの転送中にこのレジスタに書込みしてはいけません。インタフェース が禁止の場合 (ICCR 中の EN = 0), このレジスタ中の全ビット (BER と BEIE ビットは 除く ) はクリアされます。 図 20.2-3 バス制御レジスタの構成 IBCR アドレス 0035A1H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 BER BEIE SCC MSS ACK GCAA INTE 初期値 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 388 W : ライトオンリ R/W : リード / ライト可能 : 初期値 バスエラー割込み許可ビット バスエラー割込み禁止 バスエラー割込み許可 bit 15 BER バスエラービット 書込み時 0 バスエラー割込みクリア 1 効果なし 読出し時 エラー検知なし エラー検知 第 20 章 400 kHz I2C インタフェース ■ バス制御レジスタ (IBCR) の内容 表 20.2-2 バス制御レジスタ (IBCR) の各ビットの機能 ( 1 / 3 ) ビット名 BER: バスエラー ビット bit 15 機能 このビットは , バスエラー割込みフラグです。ハードウェアで設定され , ユーザによりクリアされます。リードモディファイライトアクセス時 にはこのビットは常に "1" を読み出します。 ( 書込み時 ) "0": バスエラー割込みフラグをクリアする。 "1": 関係なし。 ( 読出し時 ) "0": バスエラーは検出されていない。 "1": 下記のいずれかのエラー状態が検出された。 このビットがセットされた場合 , ICCR レジスタの EN ビットはクリ アされて I2C インタフェースは停止状態になり , データ転送は中断さ れます。そして , IBSR と IBCR レジスタ中のすべてのビット (BER と BEIE 除く ) はクリアされます。BER ビットは , インタフェースが再 動作可能になる前に , クリアされなければなりません。 下記の場合 , このビットは "1" になります。 • スタート / ストップコンディションが間違った場所 ( アドレスデータ 転送中や bit2 ~ bit9( アクノリッジビット ) の転送中 ) で検知される。 • リードアクセスの 10 ビットアドレスヘッダが , 10 ビットライトア クセスの前に受信される。 bit 14 BEIE: バスエラー 割込み許可 ビット このビットは , バスエラー割込み許可ビットです。ユーザによっての み変更可能です。 "0": バスエラー割込み禁止。 "1": バスエラー割込み許可。 このビットが "1" のとき BER ビットが "1" ならば , MCU 割込みを発 生します。 bit 13 SCC: スタート コンディション 継続ビット このビットは , 繰返しスタートコンディション発生ビットです。書込 みのみです。このビットの読出し値は常に "0" です。 "0": 関係なし。 "1": マスタ転送時に繰返しスタートコンディションを発生させる。 マスタモード (MSS=1, INT=1) の割込み中にこのビットに "1" が書き 込まれた場合 , 繰返しスタートコンディションが発生し , INT ビット が自動的にクリアされます。 389 第 20 章 400 kHz I2C インタフェース 表 20.2-2 バス制御レジスタ (IBCR) の各ビットの機能 ( 2 / 3 ) ビット名 MSS: マスタ / スレーブ選択 ビット 機能 このビットは , マスタ / スレーブモードの選択ビットです。このビッ トはユーザによってのみ設定されますが , クリアはユーザおよびハー ドウェアで可能です。 "0": スレーブモードとなります。 "1": マスタモードとなり , スタートコンディションを発生し , IDAR レ ジスタにおけるアドレスデータの転送を開始します。 このビットは , マスタ送信中にアービトレーションロストが発生した 場合にクリアされます。 マスタモード (MSS=1, INT=1) の割込み中に "0" が書き込まれた場合 , INT ビットが自動的にクリアされ , ストップコンディションが発生し , データ転送が完了します。IBSR レジスタの BB ビットのポーリングで ストップコンディション発生をチェックできます。ただし , MSS ビッ トが即時にリセットされることに注意してください。 bit 12 バスがアイドル中 (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": データバイト受信時にアクノリッジ発生する。 このビットは , スレーブにおけるアドレスバイト受信時には , 無効と なります。 bit 11 インタフェースが 7 ビットか 10 ビットスレーブアドレスを検知した場 合 , 対応許可ビット (ITMK の ENTB, ISMK の ENSB) が設定されてい るかどうかアクノリッジします。 割込み中 (INT=1) またはバスがアイドル (IBSR レジスタの BB=0) のみ の場合に , このビットへの書込みアクセスが発生します。 bit 10 390 GCAA: 汎用コール アドレス アクノリッジ ビット このビットは , ジェネラルコールアドレスを受信した場合のアクノ リッジ発生許可ビットです。このビットはユーザによってのみ変更可 能です。 "0": 汎用コールアドレスバイト受信時にアクノリッジ発生しない。 "1": 汎用コールアドレスバイト受信時にアクノリッジ発生する。 割込み中 (INT=1) またはバスがアイドル中 (IBSR レジスタの BB=0), ま たはインタフェースが禁止 (ICCR レジスタの EN=0) のみの場合に , こ のビットへの書込みアクセスが発生します。 第 20 章 400 kHz I2C インタフェース 表 20.2-2 バス制御レジスタ (IBCR) の各ビットの機能 ( 3 / 3 ) ビット名 bit 9 bit 8 機能 INTE: 割込み許可 ビット このビットは , MCU 割込み許可ビットです。このビットはユーザに よってのみ変更可能です。 "0": 割込み禁止 "1": 割込み許可 このビットが "1" のとき INT ビットが "1" ならば , ハードウェアによ り MCU 割込みが発生されます。 INT: 割込みフラグ ビット このビットは , 転送終了割込み要求フラグビットです。このビットは ハードウェアによって変更され , ユーザによってクリアできます。 リードモディファイライトアクセス時は , このビットの読出し値は常 に 1 です。 ( 書込み時 ) "0": 転送終了割込み要求フラグをクリアする。 "1": 関係なし ( 読出し時 ) "0": 転送が終了していないか , カレント転送と関係していないか , バ スがアイドル状態。 "1": アクノリッジビットを含めた 1 バイト転送または受信が終了した ときに , 次の条件に該当する場合セットされます。 • バスマスタである • アドレスされたスレーブである • ジェネラルコールアドレスを受信した • アービトレーションロストが起こった デバイスがスレーブとしてアドレスされている場合 , アクノリッジ ビットを含めてアドレスデータ受信の終了 (7 ビットアドレス受信の場 合は第 1 バイトの後 , 10 ビットアドレス受信の場合は第 2 バイトの後 ) に設定してください。 このビットが 1 の間 , SCL ラインは "L" レベル信号を保持します。この ビットへ "0" を書き込むことで設定がクリアされ , SCL ラインが解放さ れ , 次バイトや繰返し発生したスタート / ストップコンディションが転 送されます。さらに , SCC ビットへの 1 の書込みや MSS ビットがクリ アされた場合に , このビットはクリアされます。 391 第 20 章 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 ビットのクリアが優先され , ストップコンディションが発生し , インタフェースがスレーブモードになります。 392 第 20 章 400 kHz I2C インタフェース 20.2.3 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) このレジスタ (ITBAH / ITBAL) は 10 ビットスレーブアドレスを示します。 ■ 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) インタフェースが禁止 (ICCR の EN = 0) の場合 , このレジスタへは書込みアクセスの みが有効です。 ITBAH( 上位 ) アドレス 0035A3H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - - - - - - - - - - - - TA9 R/W TA8 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TA7 R/W TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W 初期値 00000000B ITBAL( 下位 ) アドレス 0035A2H 初期値 00000000B R/W :リード / ライト可能 - :不定 ■ 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容 表 20.2-3 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の各ビットの機能 ビット名 bit15 ~ bit10 bit 9 ~ bit0 機能 不定 このビットは常に "0" を戻します。 TA9 ~ TA0: 10 ビット スレーブ アドレス スレーブモード時にアドレスデータが受信されると , 10 ビットアドレ スが有効 (ITMK レジスタの ENTB = 1) かどうか ITBA レジスタを比較 します。ライトアクセス 1 での 10 ビットアドレスヘッダの受信後に , アクノリッジはマスタへ送信されます。そして 2 番目に入ってくるバ イトが ITBAL レジスタと比較されます。一致が検知されると , アクノ リッジ信号がマスタデバイスに送信され , AAS ビットが設定されます。 さらに , 繰返しスタートコンディション後 , インタフェースはリードア クセス 2 での 10 ビットアドレスヘッダの受信でアクノリッジします。 スレーブアドレスの全ビットは ITMK レジスタでマスクされます。10 ビットスレーブアドレスの全ビットは , ITBA レジスタに書き戻され , IBSR レジスタの AAS ビットが 1 の間だけ有効です。 <注意事項> • 10 ビットヘッダ ( ライトアクセス ) は次のビットシーケンスで構成されます。: 11110, TA9, TA8, 0 • 10 ビットヘッダ ( リードアクセス ) は次のビットシーケンスで構成されます。: 11110, TA9, TA8, 1 393 第 20 章 400 kHz I2C インタフェース 20.2.4 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) このレジスタには , 10 ビットスレーブアドレスマスクと 10 ビットスレーブアドレス 許可ビットがあります。 ■ 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ITMKH( 上位 ) アドレス 0035A5H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ENTB R/W RAL R/W - - - - - - - - TM9 R/W TM8 R/W 初期値 00111111B ITMKL( 下位 ) アドレス 0035A4H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TM7 R/W TM6 R/W TM5 R/W TM4 R/W TM3 R/W TM2 R/W TM1 R/W TM0 R/W R/W :リード / ライト可能 - :不定 394 初期値 11111111B 第 20 章 400 kHz I2C インタフェース ■ 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の内容 表 20.2-4 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の各ビットの機能 ビット名 bit 15 ENTB: 10 ビットスレーブ アドレス許可 ビット このビットは , 10 ビットスレーブアドレスを許可します ( そしてそ の受信時にアクノリッジします )。インタフェースが禁止 (ICCR の EN=0) のとき にのみ , このビットへの書込みアクセスが可能です。 "0": 10 ビットアドレス禁止 "1": 10 ビットアドレス許可 RAL: 受信スレーブ アドレス長ビッ ト このビットは , インタフェースが 7 ビットまたは 10 ビットのどちら をスレーブとしてアドレスされているか示します。読出しのみです。 "0": 7 ビットスレーブとしてアドレス "1": 10 ビットスレーブとしてアドレス 7 ビット , 10 ビットスレーブアドレスが共に許可されているとき (ENTB=1 かつ ENSB=1), このビットでインタフェースがどちらを使 用しているか決められます。このビットは , IBSR レジスタの AAS ビットが 1 のとき有効です。このビットは , インタフェースが禁止 (ICCR の EN=0) のときにリセットされます。 未定義 これらのビットは , 読出し時に常に "1" を戻します。 TM9 ~ TM0: 10 ビットスレーブ アドレス マスクレジスタ これらのビットは , インタフェースの 10 ビットスレーブアドレスの マスクに使用します。インタフェースが禁止のとき (ICCR の EN=0) のみ , これらのビットに書込みアクセスできます。 "0": ビットはスレーブアドレスの比較に使用されない "1": ビットはスレーブアドレスの比較に使用される このビットは , 複合 10 ビットスレーブアドレス上でインタフェース をアクノリッジさせます。10 ビットスレーブアドレス比較をさせる レジスタ上でのみ , このビットを "1" にしてください。受信スレーブ アドレスは ITBA レジスタに書き戻されます。IBSR レジスタの AAS ビットが 1 の場合は , ITBA レジスタの読出しにより受信スレーブア ドレスが決定されます。 ( 注意事項 ) インタフェースを許可にした後でアドレスマスクを変更すると , 前の受信スレーブアドレスにより上書きされてから , 再びスレー ブアドレスがセットされます。 bit 14 bit 13 ~ bit10 bit 9 ~ bit0 機能 395 第 20 章 400 kHz I2C インタフェース 20.2.5 7 ビットスレーブアドレスレジスタ (ISBA) このレジスタは 7 ビットスレーブアドレスを定義します。 ■ 7 ビットスレーブアドレスレジスタ インタフェースが禁止 (ICCR の EN=0) のとき にのみ , このレジスタへの書込みアクセ スが可能です。 ISBA アドレス 0035A6H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - SA6 R/W SA5 R/W SA4 R/W SA3 R/W SA2 R/W SA1 R/W SA0 R/W 初期値 00000000B R/W :リード / ライト可能 - :不定 ■ 7 ビットスレーブアドレスレジスタの内容 表 20.2-5 7 ビットスレーブアドレスレジスタの各ビットの機能 ビット名 bit 7 bit 6 ~ bit0 機能 不定 このビットは , 読出し時に常に "1" を戻します。 SA6 ~ SA0: 7 ビット スレーブ アドレス ビット スレーブモード中にアドレスデータを受信すると , 7 ビットアドレスが 有効 (ISMK レジスタの ENSB = 1) のとき , ISBA レジスタと比較され ます。一致が検出されると , アクノリッジ信号がマスタデバイスに送信 され , AAS ビットがセットされます。 スレーブアドレスの全ビットが ISMK レジスタでマスクされます。 IBSR レジスタの AAS ビットが 1 のときのみ , 受信 7 ビットスレーブア ドレスの ISBA レジスタへの書き戻しが有効です。 10 ビットヘッダまたは汎用コールを受信した場合は , インタフェース はこのレジスタの内容と入力されたデータと比較しません。 ■ 7 ビットスレーブアドレスマスクレジスタ (ISMK) このレジスタには , 7 ビットスレーブアドレスマスクと 7 ビットモード許可ビットがあ ります。インタフェースが禁止 (ICCR の EN=0) のとき にのみ , このレジスタへの書込 みアクセスが可能です。 ISMK アドレス 0035A7H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ENSB R/W SM6 R/W SM5 R/W SM4 R/W SM3 R/W SM2 R/W SM1 R/W SM0 R/W R/W :リード / ライト可能 396 初期値 01111111B 第 20 章 400 kHz I2C インタフェース ■ 7 ビットスレーブアドレスマスクレジスタの内容 表 20.2-6 7 ビットスレーブアドレスマスクレジスタの各ビットの機能 ビット名 bit 15 bit 14 ~ bit8 機能 ENSB: 7 ビットスレーブ アドレス許可 ビット このビットは 7 ビットスレーブアドレスを許可します ( そしてそ の受信時にアクノリッジします )。 "0": 7 ビットスレーブアドレス禁止 "1": 7 ビットスレーブアドレス許可 SM6 ~ SM0: 7 ビットスレーブ アドレスマスク ビット このレジスタは , インタフェースの 7 ビットスレーブアドレスの マスクに使用します。 "0": ビットはスレーブアドレスの比較に使用されない "1": ビットはスレーブアドレスの比較に使用される このビットは , 複合 7 ビットスレーブアドレス上でインタフェー スをアクノリッジさせます。7 ビットスレーブアドレス比較をさ せるレジスタ上でのみ , このビットを "1" にしてください。受信 スレーブアドレスは ISBA レジスタに書き戻されます。IBSR レ ジスタの AAS ビットが 1 の場合は , ISBA レジスタの読出しによ り受信スレーブアドレスが決定されます。 ( 注意事項 ) インタフェースを許可にした後でアドレスマスクを変更する と , 前の受信スレーブアドレスにより上書きされてから , 再び スレーブアドレスがセットされます。 397 第 20 章 400 kHz I2C インタフェース 20.2.6 データレジスタ (IDAR) 400 kHz I2C インタフェース用データレジスタ (IDAR) の構成および機能について説 明します。 ■ データレジスタ (IDAR) IDAR アドレス 0035A8H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W 初期値 00000000B R/W :リード / ライト可能 ■ データレジスタの内容 表 20.2-7 データレジスタの各ビットの機能 ビット名 D7 ~ D0: データ ビット bit7 ~ bit0 398 機能 シリアルデータ転送に使用されるデータレジスタであり , MSB から転送さ れます。 このレジスタの書込み側はダブルバッファになっており , バスが使用中 (BB=1) である場合 , 書込みデータは各バイト転送時にシリアル転送用のレ ジスタにロードされます。IBCR レジスタの INT ビットがクリアされるか , バスがアイドル (IBSR の BB=0) のとき , このデータバイトは内部転送レジ スタにロードされます。読出しアクセス中 , 内部レジスタは直接読み込ま れます。このため IBCR レジスタの INT が 1 のときのみ , このレジスタの 受信データは有効です。 第 20 章 400 kHz I2C インタフェース 20.2.7 クロック制御レジスタ (ICCR) クロック制御レジスタ (ICCR) には , 次の機能があります。 • テストモード許可 • I/O パッドノイズフィルタ許可 • I2C インタフェース動作許可 • シリアルクロック周波数設定 ■ クロック制御レジスタ (ICCR) ICCR アドレス 0035BH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - - NSF R/W EN R/W CS4 R/W CS3 R/W CS2 R/W CS1 R/W CS0 R/W 初期値 00011111B R/W :リード / ライト可能 - :不定 399 第 20 章 400 kHz I2C インタフェース ■ クロック制御レジスタ (ICCR) の内容 表 20.2-8 クロック制御レジスタの各ビットの機能 ビット名 機能 bit 15 不定 このビットは , 読出し時に常に "0" を戻します。 bit 14 NSF: I/O パッド ノイズフィルタ 許可ビット このビットは SDA, SCL I/O パッドに内蔵したノイズフィルタを有効 にします。 ノイズフィルタは最小 0 ns のパルス幅の単発ノイズから最大 1 ~ 1.5 内部サイクルでのノイズを抑制します。最大値は , I2C 信号 (SDA, SCL) とマシンクロックとの間の位相関係に依存します。 インタフェースが 100K ビットを超えるデータレートで送受信する場 合 , このビットを "1" にすることを推奨します。 EN: 許可ビット このビットは , I2C インタフェース動作を許可します。設定はユーザ のみ可能ですが , クリアはユーザ / ハードウェアで可能です。 "0": インタフェース禁止 "1": インタフェース許可 このビットが 0 のとき , IBSR レジスタの全ビットと IBCR レジスタ (BER と BEIE ビットは除く ) はクリアされ , モジュールが不可になり , I2C ラインが開放のままになります。バスエラーが発生したとき (IBCR の BER = 1) は , ハードウェアでクリアできます。 ( 注意事項 ) これが禁止の場合は , 直ちにインタフェースが送受信を停止しま す。想定していない状態の間中 , I2C バスを放置します。 CS4 ~ CS0: クロック プリスケーラ ビット このビットはシリアルビットレートを選択します。インタフェースが 禁止 (EN=0) または EN ビットが同じ書込みアクセスでクリアされる 場合にのみ , このビットの変更が可能です。 bit 13 bit 12 ~ bit 8 n CS4 CS3 CS2 CS1 CS0 1 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 1 ビットレート:φ / 400(+1) ... 31 1 1 +1 は , ノイズフィルタが許可のとき , 除数に "1" を足すことを意味し ます。 400 第 20 章 400 kHz I2C インタフェース ■ クロックプリスケーラ設定 CS0 ~ CS4 の計算式は , 下記のようになります。 φ ビットレート= N>0 :マシンクロック , ノイズフィルタ無効 n × 12+16 φ ビットレート= N>0 :マシンクロック , ノイズフィルタ有効 n × 12+17 表 20.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 タイミングを阻害します。 ■ 共通マシンクロック周波数 プリスケーラ設定 , 送信結果ビットレートと共通マシンクロック周波数 表 20.2-10 共通マシンクロック周波数 マシンクロック [MHz] 100 K ビット ( ノイズフィルタ無効 ) n ビットレート [K ビット ] 400 K ビット ( ノイズフィルタ有効 ) 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 401 第 20 章 400 kHz I2C インタフェース 20.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" を書き込んでも , 意味があり ません。 ■ ストップコンディション マスタモード (IBCR の MSS=1, INT=1) 時に , MSS ビットに "0" を書き込むと , ストッ プコンディションを発生し , スレーブモードになります。これ以外での , MSS ビットへ の "0" の書込みは無視されます。 MSS ビットのクリア後 , 他のマスタがストップコンディションの発生の前に SCL ライ ンを "L" レベルにすると , インタフェースはストップコンディションを発生しようと試 みます。これは次のバイトが転送された後に発生します。 ■ スレーブアドレス検知 スレーブモード中 , スタートコンディションが発生した後 , BB は "1" に設定され , マス タデバイスからのデータ送信は IDAR レジスタに受信されます。 8 ビットの受信後 , ISMK レジスタの ENSB ビットが "1" のとき , IDAR レジスタの内容 はビットマスクを ISMK に保管するために使用する ISBA レジスタと比較されます。一 致の場合 , AAS ビットは "1" に設定され , アクノリッジ信号がマスタに送信されます。 受信データの bit0(IDAR レジスタの bit0) は反転され , TRX ビットに保管されます。 402 第 20 章 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 バイト目は , ビットシーケンス "11110A9A80" から成り立つ 10 ビットアドレス ヘッダです。2 バイト目は , 10 ビットスレーブアドレスの下位 8 ビット (A7 ~ A0) か ら成り立っています。 10 ビットスレーブアドレスは , 読出しアクセス (11110A9A81) での 10 ビットアドレス ヘッダに続く , 上記バイトシーケンスの送信と連続スタートコンディション (IBCR の SCC ビット ) により , 読出しアクセスされます。 403 第 20 章 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 ビットによって , スレーブによるアクノリッ ジをチェックできます。 404 第 20 章 400 kHz I2C インタフェース 20.4 プログラミングフローチャート 400 kHz I2C インタフェース用の各プログラミングフローチャートを示します。 ■ プログラミングフローチャート 図 20.4-1 スレーブアドレッシングとデータ送信例 7 ビットスレーブアドレッシング データ送信 開始 開始 BER ビットクリア ( 設定の場合 ) インタフェース許可 : EN = 1 書込み用スレーブアドレス IDAR := データバイト ; INT := 0 IDAR := sl.address<<1+RW; MSS := 1; INT := 0 NO INT=1? NO INT=1? YES YES YES YES バスエラー BER=1? BER=1? NO NO YES AL=1? YES 転送再開 AAS か どうか 確認 AL=1? 転送再開 AAS か どうか 確認 NO NO ACK? ACK? (LRB=0?) NO (LRB=0?) NO YES YES データ送信 準備完了 最終 バイト 転送 ? YES NO ACK なしスレーブ 連続スタートまたは ストップコンディ ション発生 転送完了 連続スタートまたは ストップコンディ ション発生 405 第 20 章 400 kHz I2C インタフェース 図 20.4-2 データ受信例 開始 読出し用スレーブアドレス IBCR の ACK ビットクリア ( スレーブ からの読出しが最終バイトのとき ): INT = 0 NO INT=1? YES YES BER=1? NO NO 最終 バイト 転送 ? YES 転送完了 連続スタートまたは ストップコンディ ション発生 406 バスエラー 再許可 IF 第 21 章 シリアル I/O シリアル I/O の機能と動作について説明します。 21.1 シリアル I/O の概要 21.2 シリアル I/O のレジスタ 21.3 シリアル I/O プリスケーラ (CDCR4) 21.4 シリアル I/O の動作 407 第 21 章 シリアル I/O 21.1 シリアル I/O の概要 シリアル I/O の動作モードには , 以下の 2 種類があります。 • 内部シフトクロックモード……内部クロックに同期してデータ転送を行います。 • 外部シフトクロックモード……外部端子 (SCK4) から入力されるクロックに同期 してデータ転送を行います。このモードで外部端 子 (SCK4) を共有している汎用ポートを操作する ことにより , CPU の命令による転送動作も可能で す。 ■ シリアル I/O のブロックダイヤグラム クロック同期によるデータ転送を可能にするシリアル I/O インタフェースのブロック ダイヤグラムを示します。このインタフェースは 8 ビット× 1 チャネル構成で , データ は LSB/MSB から転送できます。 図 21.1-1 拡張シリアル I/O インタフェースのブロックダイヤグラム 内部データバス (MSB ファースト )D0 ~ D7 D7 ~ D0 (LSB ファースト ) 転送方向選択 SIN3 SIN4 リード ライト SDR4 ( シリアルデータレジスタ ) SOT4 SOT3 SCK3 SCK4 シフトクロック カウンタ 制御回路 内部クロック 2 SMD2 1 0 SMD1 SMD0 SIE SIR BUSY STOP STRT MODE 割込み 要求 内部データバス 408 BDS SOE SCOE 第 21 章 シリアル I/O 21.2 シリアル I/O のレジスタ シリアル I/O のレジスタには , 次の 2 つがあります。 • シリアルモード制御ステータスレジスタ (SMCS4) • シリアルデータレジスタ (SDR4) ■ シリアル I/O のレジスタ 図 21.2-1 シリアル I/O のレジスタ シリアルモード制御 ステータスレジスタ (SMCS4) アドレス : 00002DH アドレス : 00002CH bit15 bit14 SMD2 SMD1 bit13 bit12 bit11 bit10 bit9 bit8 初期値 00000010B SMD0 SIE SIR BUSY STOP STRT R/W R/W R/W R/W R/W R R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 - - MODE R/W BDS R/W SOE R/W SCOE R/W XXXX0000B bit4 bit3 bit2 bit1 bit0 初期値 XXXXXXXXB - - - - - - シリアルデータレジスタ (SDR4) アドレス : 00002EH R/W R X − bit7 bit6 bit5 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 :リードオンリ :不定 :未定義 409 第 21 章 シリアル I/O 21.2.1 シリアルモード制御ステータスレジスタ (SMCS4) シリアルモード制御ステータスレジスタ (SMCS4) は , シリアル I/O 転送モードを制 御するレジスタです。 ■ シリアルモード制御ステータスレジスタの上位バイト (SMCS4) 図 21.2-2 シリアルモード制御ステータスレジスタ ( 上位バイト ) の構成 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 STRT 0 1 STOP 0 1 BUSY 0 1 SIR 0 1 SIE 0 1 S\MD2 ~ SMD0 R/W : リード / ライト可能 R : リードオンリ : 初期値 410 000 001 010 011 100 101 110 111 初期値 00000010 B スタートビット "0" 書込みは影響なし。"0" は常に読出し。 MODE=0 のとき , "1" 書込みはシリアル送信を起動。 ストップビット 通常動作 転送停止 転送ステータスビット 転送停止またはシリアルデータレジスタ R/W 待機状態 シリアル転送はアクティブ シリアル I/O 割込み要求ビット 割込みは要求されません SIE=1 のとき , 割込み要求は CPU へ出されます シリアル I/O 割込みイネーブルビット シリアル I/O 割込み禁止 シリアル I/O 割込み許可 シフトクロックモード選択ビット プリスケーラ出力は 2 分周 プリスケーラ出力は 4 分周 プリスケーラ出力は 16 分周 プリスケーラ出力は 32 分周 プリスケーラ出力は 64 分周 外部シフトクロックモード プリスケーラ出力は 8 分周 プリスケーラ出力は 128 分周 第 21 章 シリアル I/O ■ シリアルモード制御ステータスレジスタの下位バイト (SMCS4) 図 21.2-3 シリアルモード制御ステータスレジスタ ( 下位バイト ) の構成 アドレス: 00002C H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - - - MODE BDS SOE SCOE - - - - R/W R/W R/W R/W SCOE 0 1 SOE 0 1 BDS 0 1 R/W : リード / ライト可能 X : 不定 : 未定義 : 初期値 MODE 初期値 XXXX0000 B シフトクロック出力許可ビット 汎用ポート端子 , 各命令を転送 シフトクロック出力端子 シリアル出力許可ビット 汎用ポート端子 シリアルデータ出力 ビット方向選択ビット LSB ファースト MSB ファースト シリアルモード選択ビット 0 STRT = 1 のとき , 転送開始 1 シリアルデータレジスタが読出し / 書込みされる場合 転送開始 411 第 21 章 シリアル I/O ■ シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 表 21.2-1 シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ( 1 / 2 ) ビット名 bit15 機能 SMD0, SMD1, SMD2: シフトクロック モード選択 ビット 表 21.2-2 を参照してください。 SIE: シリアル I/O 割込み許可 ビット シリアル I/O の割込み要求を前図に示すとおりに制御します。リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能です。 SIR: シリアル I/O 割込み要求 ビット シリアル転送が終了すると "1" にセットされ , 割込み許可時 (SIE=1) にこのビット が "1" になると , CPU へ割込み要求を発生します。クリア条件は MODE ビットに よって異なります。MODE ビットが "0" のとき , SIR ビットへの "0" 書込みによ りクリアされます。MODE ビットが "1" のとき , SDR4 の読出しまたは書込み動 作によりクリアされます。MODE ビットの値にかかわらずリセットまたは STOP ビットへの "1" 書込み動作によりクリアされます。 本ビットに "1" を書き込んでも意味がありません。リードモディファイライト系 命令の読出し時は , 常に "1" が読み出されます。 BUSY: 転送状態ビット シリアル転送が実行中か否かを示すビットです。 リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。 STOP: ストップビット シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると STOP=1 による停止状態となります。リセットにより "1" に初期化されます。本 ビットは , 読出しおよび書込みが可能です。 STRT: スタートビット シリアル転送の起動を行うビットです。MODE ビットが 0 の状態で "1" を書くこ とによって転送が開始されます。MODE ビットに "1" を設定し , STRT ビットに も "1" を設定した場合 , シリアルデータレジスタにデータを書き込むことにより , 転送が開始します。 シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1" の書込みは 無視され , "0" の書込みは意味がありません。 読出し時には常に "0" が読み出されます。 bit3 MODE: シリアルモード 選択ビット このビットにより停止状態からの転送動作の起動条件の選択を行います。ただ し , 動作中の書換えは禁止します。 リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能 です。インテリジェント I/O サービスを起動する際には "1" にしておいてくださ い。 bit2 BDS: 転送方向選択 ビット シリアルデータの入出力時に , 最下位ビット側から先に転送するか (LSB ファー スト ), 最上位ビット側から先に転送するか (MSB ファースト ) を , 前図に示すと おりに選択します。転送方向選択ビットは , SDR4 にデータを書き込む前に , 設定 しておいてください。 SOE: シリアル出力 許可ビット シリアル I/O 用出力外部端子 (SOT4) の出力を制御します。 リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込み bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit1 412 が可能です。 第 21 章 シリアル I/O 表 21.2-1 シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ( 2 / 2 ) ビット名 bit0 機能 SCOE: シフトクロック 出力許可ビット シリアルクロック用入出力外部端子 (SCK4) の出力を図 21.2-3 に示すとおりに制 御します。 外部シフトクロックモードで命令ごとに転送を行うときは "0" に設定してくださ い。 リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能 です。 ■ シフトクロック選択 シフトクロックモード選択ビットはシリアルシフトクロックモードを表 21.2-2 に示す とおりに選択します。第 2 パートがシリアル I/O プリスケーラレジスタ (CDCR) に関連 付けられます。 詳細は , 「21.3 シリアル I/O プリスケーラ (CDCR4)」を参照してください。 表 21.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.5kHz 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 外部シフトクロックモード 表 21.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 端子を共有しているポートを操作することによっ て命令ごとにシフトさせることも可能です。 413 第 21 章 シリアル I/O 21.2.2 シリアルデータレジスタ (SDR4) シリアルシフトデータレジスタ (SDR4) は , シリアル I/O 転送データを格納するシリ アルデータレジスタで , 転送中は読み書き不可です。 ■ シリアルデータレジスタ (SDR4) 図 21.2-4 シリアルデータレジスタ (SDR4) SDR4 アドレス : bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00002EH D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W XXXXXXXXB R/W :リード / ライト可能 X :不定 414 第 21 章 シリアル I/O 21.3 シリアル I/O プリスケーラ (CDCR4) シリアル I/O プリスケーラ (CDCR4) は , シリアル I/O のシフトクロックを提供しま す。 シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。 シリアル I/O は , この通信プリスケーラによって種々のマシンクロックに対して一定 のボーレートが得られるように設計されています。CDCR4 レジスタは , マシンク ロックの分周を制御するレジスタです。 ■ シリアル I/O プリスケーラ (CDCR4) 図 21.3-1 シリアル I/O プリスケーラ (CDCR4) の構成 アドレス: 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 0000 0001 0010 0011 0100 0101 0110 0111 1xxx 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周期分の時間を置いてから通信を行っ てください。 415 第 21 章 シリアル I/O 21.4 シリアル I/O の動作 拡張シリアル I/O インタフェースは , シリアルモード制御ステータスレジスタ (SMCS), シフトレジスタ (SDR) により構成されます。8 ビットのシリアルデータの 入出力に使用します。 ■ シリアル I/O の動作 シリアルデータの入出力は, シフトレジスタの内容がシリアルシフトクロック (外部ク ロック , 内部クロック ) の立下りに同期してビット直列にシリアル出力端子 (SOT4 端 子 ) に出力され , 立上りに同期してシリアル入力端子 (SIN4 端子 ) からビット直列に SDR ( シリアルシフトデータレジスタ ) に入力されます。シフトの方向 (MSB からの転 送または LSB からの転送 ) は , SMCS ( シリアルモード制御ステータスレジスタ ) の方 向指定ビット (BDS) により指定できます。 転送が終了するとシリアルモード制御ステータスレジスタ (SMCS) の MODE ビットに よって停止状態またはデータレジスタ R/W 待機状態に入ります。各々の状態から転送 状態に移るには , それぞれ次のことを行います。 • 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書き込みま す (STOP と STRT は同時設定が可能です ) 。 • シリアルシフトデータレジスタR/W待機状態からの復帰時はデータレジスタを読出 しまたは書込みします。 416 第 21 章 シリアル I/O 21.4.1 シフトクロック シフトクロックには内部シフトクロックモード , 外部シフトクロックモードの 2 種 類があり , SMCS の設定で指定します。モードの切換えは , シリアル I/O が停止した 状態で行ってください。停止状態の確認は , BUSY ビットを読み出すことで可能で す。 ■ 内部シフトクロックモード 内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク ロックが SCK4 端子より出力可能です。データが 1 クロックごとに 1 ビット転送され ます。転送の周波数と速度 ( ボーレート ) は以下のようになります。 転送周波数 (Hz) 転送速度 (s) = = A div A div A は SMCS の SMD ビットで示す分周比で , 21, 22, 23, 24, 25, 26, 27 です。 φ はマシン周波数です。 ■ 外部シフトクロックモード 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 への書込みは禁止です。 417 第 21 章 シリアル I/O 21.4.2 シリアル I/O の動作状態 シリアル I/O の動作状態には , 次の 4 種類があります。 • STOP 状態 • 停止状態 • SDR の R/W 待機状態 • 転送状態 ■ シリアル I/O の動作状態 ● STOP 状態 STOP 状態はリセット時または SMCS の STOP ビットに "1" を書き込んだときに初期化 されます。シフトカウンタが初期化されると , SIR=0 となります。 STOP 状態からの復帰は , STOP=0, STRT=1 ( 同時設定可能 ) とすることによって行われ ます。STOP ビットは STRT ビットより優先ビットですので STOP=1 のとき STRT=1 と しても転送動作は行われません。 ● 停止状態 MODE ビットが "0" のとき , 転送が終了したことによって SMCS が BUSY=0, SIR=1 と なり , カウンタが初期化され停止状態に入ります。停止状態からの復帰は STRT=1 にす ると転送動作が再開されます。 ● シリアルデータレジスタ R/W 待機状態 SMCS の MODE ビットが "1" のとき , シリアル転送が終了すると , BUSY=0, SIR=1 と なりシリアルデータレジスタ R/W 待機状態に入ります。割込み許可フラグが設定され ると本ブロックより割込み信号を出します。 R/W 待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き込まれた りすると BUSY=1 となり転送動作が再開されます。 ● 転送状態 BUSY=1 でシリアル転送を行っている状態です。MODE ビットによりそれぞれ停止状 態および R/W 待機状態に遷移します。 図 21.4-1 に , 動作遷移を示します。 418 第 21 章 シリアル I/O 図 21.4-1 拡張シリアル I/O インタフェース動作遷移図 リセット STOP=0 & STRT=0 転送終了 STOP STRT=0, BUSY=0 MODE=0 STOP=0 & STRT=1 MODE=0 & STOP=0 & 終了 STRT=0, BUSY=0 STOP=1 STOP=1 転送動作 STOP=1 STOP=0 & STRT=1 MODE=1 & 終了 & ST OP=0 シリアルデータレジスタ R/W 待機 STRT=1, BUSY=1 STRT=1, BUSY=0 MODE=1 SDR R/W & MODE=1 図 21.4-2 シリアルデータレジスタへのリード , ライト概念図 シ リ ア ル デ | タ データバス SOT4 SOT3 SIN4 SIN3 データバス リード ライト 割込み出力 拡張 I/O シリアル インタフェース リード ライト ➁ ➀ 割込み入力 データバス CPU 割込みコントローラ ① MODE=1のとき, シフトクロックカウンタによって転送終了し, SIR=1となってリー ド / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生します。 ただし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送中断 のときは割込み信号は発生しません。 ② シリアルデータレジスタがリード / ライトされると , 割込み要求はクリアされシリ アル転送を開始します。 419 第 21 章 シリアル I/O 21.4.3 シフト動作のスタート / ストップタイミング シフト動作をスタートする場合は , SMCS の STOP ビットを "0", STRT ビットを "1" に設定します。 シフト動作のストップタイミングについては , STOP=1 によって停止する場合と , 転 送終了によって停止する場合があります。 • STOP=1 によって停止→ MODE ビットにかかわらず SIR=0 のまま停止 • 転送終了で停止→ MODE ビットにかかわらず SIR=1 となり停止 BUSY ビットは MODE ビットにかかわらずシリアル転送状態のとき "1" となり , 停 止状態または R/W 待機状態のとき "0" となります。転送状態を確認したいときはこ のビットを読み出してください。 ■ シフト動作のスタート / ストップタイミング ● 内部シフトクロックモード (LSB ファースト ) 図 21.4-3 シフト動作のスタート / ストップタイミング ( 内部クロック ) SCK4 "1" 出力 ( 転送スタート ) STRT ( 転送終了 ) MODE=0 のとき BUSY SOT4 DO0 DO7 ( データ保持 ) ● 外部シフトクロックモード (LSB ファースト ) 図 21.4-4 シフト動作のスタート / ストップタイミング ( 外部クロック ) SCK4 ( 転送スタート ) STRT ( 転送終了 ) MODE=0 のとき BUSY SOT4 420 DO0 DO7 ( データ保持 ) 第 21 章 シリアル I/O ● 外部シフトクロックモードで命令シフトを行ったとき (LSB ファースト ) 図 21.4-5 シフト動作のスタート / ストップタイミング ( 外部シフトクロックモードで命令シフトを実行時 ) SCK4 PDR の SCK ビット "0" STRT PDR の SCK ビット "1" ( 転送終了 ) PDR の SCK ビット "0" MODE=0 のとき BUSY DO7 ( データ保持 ) DO6 SOT4 *:命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が出力され , "0" が書き 込まれたとき "L" が出力されます ( ただし , 外部シフトクロックモード選択で , SCOE=0 のとき ) 。 ● STOP=1 による停止 (LSB ファースト , 内部クロック時 ) 図 21.4-6 STOP ビットを "1" としたときのストップタイミング "1" 出力 SCK4 ( 転送終了 ) ( 転送スタート ) MODE=0 のとき STRT BUSY STOP SOT4 DO3 DO4 DO5 ( データ保持 ) ( 注意事項 ) DO7 ~ DO0 は出力データを示します。 シリアルデータの転送中は , シフトクロックの立下りエッジでシリアル出力端子 (SOT4) からのデータが出力され , 立上りエッジでシリアル入力端子 (SIN4) のデータが 入力されます。 421 第 21 章 シリアル I/O 図 21.4-7 シリアルデータの入出力シフトタイミング ❍ LSB ファースト (BDS ビットが "0" のとき ) SCK4 SIN 入力 SIN4 DI0 DI1 DI2 DI3 SOT 出力 DI4 DI5 DI6 DI7 SOT4 DO0 DO1 DO2 DO4 DO5 DO6 DO7 DO3 ❍ LSB ファースト (BDS ビットが "1" のとき ) SCK4 SIN4 SIN 入力 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 DO4 DO3 DO2 DO1 DO0 SOT 出力 SOT4 422 DO7 DO6 DO5 第 21 章 シリアル I/O 21.4.4 拡張シリアル I/O インタフェースの割込み機能 拡張シリアル I/O インタフェースは , CPU に対し割込み要求を発生できます。デー タの転送終了時に割込みフラグである SIR ビットがセットされ , 割込みを許可する SMCS の SIE ビットが "1" のとき , CPU へ割込み要求を出力します。 ■ 拡張シリアル I/O インタフェースの割込み機能 図 21.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の場合 423 第 21 章 シリアル I/O 424 第 22 章 CAN コントローラ CAN コントローラの機能と動作について説明しま す。 ( 注意事項 )MB90F947, MB90F949 および MB90V390HA においては , クロック変 調と CAN を同時に使用しないでくださ い。 MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問題ありま せん。 22.1 CAN コントローラの特長 22.2 CAN コントローラのブロックダイヤグラム 22.3 全体制御レジスタの一覧 22.4 メッセージバッファ (ID レジスタ ) の一覧 22.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 22.6 CAN コントローラのレジスタ分類 22.7 CAN コントローラの送信 22.8 CAN コントローラの受信 22.9 CAN コントローラの受信フローチャート 22.10 CAN コントローラの使用方法 22.11 メッセージバッファ (x) による送信方法 22.12 メッセージバッファ (x) による受信方法 22.13 マルチレベルメッセージバッファの構成の決定 22.14 CAN ダイレクトモードレジスタ (CDMR) 22.15 CAN コントローラの使用上の注意 425 第 22 章 CAN コントローラ 22.1 CAN コントローラの特長 CAN コントローラは , 16 ビットマイクロコントローラ (F2MC-16LX) 内に一体化さ れたモジュールです。CAN ( コントローラエリアネットワーク ) は自動車用コント ローラ間のシリアル通信用の標準プロトコルであり工業分野で広く使用されている ものです。 ■ CAN コントローラの特長 CAN コントローラの特長は次のとおりです。 ● CAN 仕様バージョン 2.0 パート A および B に適合しています。 標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしています。 ● リモートフレームの受信によるデータフレームの送信をサポートしています。 ● 16 個の送信 / 受信メッセージバッファ 29 ビットの ID および 8 バイトデータ マルチ・レベル・メッセージ・バッファ構造 ● フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサポート しています。 標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンスマ スクレジスタを提供します。 ● ビット速度は10kbps~1Mbpsでプログラマブルです (1Mbpsでご使用の場合, マシンクロッ クは 8MHz 以上で動作する必要があります ) 。 426 第 22 章 CAN コントローラ 22.2 CAN コントローラのブロックダイヤグラム 図 22.2-1 に , CAN コントローラのブロックダイヤグラムを示します。 ■ CAN コントローラのブロックダイヤグラム 図 22.2-1 CAN コントローラのブロックダイヤグラム F2MC-16X バス クロック TQ( 動作クロック ) プリスケーラ 1 ~ 64 周波数分割 ビットタイミング発生 SYNC, TSEG1, TSEG2 PSC TS1 BTR TS2 RSJ TOE TS RS CSR HALT NIE NT NS1, NS0 IDLE, INT, SUSPND, 送信 , 受信 ERR, OVRLD バス ステート マシン ノード ステータス 変化割込み ノードステータス 変化割込み発生 エラー 制御 RTEC 送信 / 受信 シーケンサ BVALR TBFx, クリア 送信バッファ X 判定 TREQR TBFx TDLC RDLC TBFx エラーフ レーム発生 データ アクセプタンス カウンタ フィルタ制御 過負荷 フレーム 発生 IDSEL BITER, STFER, CRCER, FRMER, ACKER TCANR 出力ド ライバ ARBLOST TX1 TRTRR TCR TBFx, セット , クリア 送信完了 割込み発生 TIER RCR 送信完了 割込み RBFx, セット 受信完了 割込み RBFx, TBFx, セット , クリア RBFx, セット ACK 発生 CRC 発生 TDLC CRCER RDLC 受信完了 割込み発生 RIER RRTRR スタッ フィング 送信シフト レジスタ RFWTR CRC 発生 / エラー チェック STFER デスタッフィング / スタッフィングエ ラーチェック 受信シフト レジスタ IDSEL ROVRR ARBLOST AMSR AMR0 0 1 アクセプタンス フィルタ 受信バッファ x 判定 BITER ビットエラー チェック ACKER 確認エラー チェック AMR1 DTR0 ~ DTR15 DLCR0 ~ DLCR15 IDR0 ~ IDR15 RAM RBFx RAM アドレス 発生 アービトレー ションチェック FRMER フォームエラー チェック PH1 入力 ラッチ RX1 RBFx, TBFx, RDLC, TDLC, IDSEL LEIR IDER 427 第 22 章 CAN コントローラ 22.3 全体制御レジスタの一覧 表 22.3-1 に , 全体制御レジスタの一覧を示します。 ■ 全体制御レジスタの一覧 表 22.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 受信割込み許可レジスタ RIER R/W 00000000 00000000B 制御ステータスレジスタ CSR R/W 00XXX000 0XXXX0X1B ラストイベント 表示レジスタ LEIR R/W XXXXXXXX 000X0000B 受信および送信 エラーカウンタ RTEC R 00000000 00000000B ビットタイミング レジスタ BTR R/W X1111111 11111111B IDE レジスタ IDER R/W XXXXXXXX XXXXXXXXB TRTRR R/W 00000000 00000000B CAN1 000080H 000081H 000082H 000083H 000084H 000085H 000086H 000087H 000088H 000089H 00008AH 00008BH 00008CH 00008DH 00008EH 00008FH 003900H 003901H 003902H 003903H 003904H 003905H 003906H 003907H 003908H 003909H 00390AH 00390BH 428 送信 RTR レジスタ 第 22 章 CAN コントローラ 表 22.3-1 全体制御レジスタの一覧 ( 2 / 2 ) アドレス レジスタ 略号 アクセス 初期値 RFWTR R/W XXXXXXXX XXXXXXXXB TIER R/W 00000000 00000000B CAN1 00390CH 00390DH 00390EH 00390FH リモートフレーム 受信待機レジスタ 送信割込み許可レジスタ 003910H 003911H 003912H XXXXXXXX XXXXXXXXB アクセプタンスマスク 選択レジスタ AMSR R/W XXXXXXXX XXXXXXXXB 003913H 003914H 003915H 003916H XXXXXXXX XXXXXXXXB アクセプタンスマスク レジスタ 0 AMR0 R/W XXXXXXXX XXXXXXXXB 003917H 003918H 003919H 00391AH 00391BH XXXXXXXX XXXXXXXXB アクセプタンスマスク レジスタ 1 AMR1 R/W XXXXXXXX XXXXXXXXB 429 第 22 章 CAN コントローラ 22.4 メッセージバッファ (ID レジスタ ) の一覧 表 22.4-1 に , メッセージバッファ (ID レジスタ ) の一覧を示します。 ■ メッセージバッファ (ID レジスタ ) の一覧 表 22.4-1 メッセージバッファ (ID レジスタ ) の一覧 ( 1 / 2 ) アドレス CAN1 レジスタ 略号 アクセス -- R/W 初期値 003800H ~ 汎用 RAM XXXXXXXXB ~ XXXXXXXXB 00381FH 003820H 003821H 003822H XXXXXXXX XXXXXXXXB ID レジスタ 0 IDR0 R/W XXXXXXXX XXXXXXXXB 003823H 003824H 003825H 003826H XXXXXXXX XXXXXXXXB ID レジスタ 1 IDR1 R/W XXXXXXXX XXXXXXXXB 003827H 003828H 003829H 00382AH XXXXXXXX XXXXXXXXB ID レジスタ 2 IDR2 R/W XXXXXXXX XXXXXXXXB 00382BH 00382CH 00382DH 00382EH XXXXXXXX XXXXXXXXB ID レジスタ 3 IDR3 R/W XXXXXXXX XXXXXXXXB 00382FH 003830H 003831H 003832H XXXXXXXX XXXXXXXXB ID レジスタ 4 IDR4 R/W XXXXXXXX XXXXXXXXB 003833H 003834H 003835H 003836H 003837H 430 XXXXXXXX XXXXXXXXB ID レジスタ 5 IDR5 R/W XXXXXXXX XXXXXXXXB 第 22 章 CAN コントローラ 表 22.4-1 メッセージバッファ (ID レジスタ ) の一覧 ( 2 / 2 ) アドレス CAN1 レジスタ 略号 アクセス 003838H 003839H 00383AH XXXXXXXX XXXXXXXXB ID レジスタ 6 IDR6 R/W XXXXXXXX XXXXXXXXB 00383BH 00383CH 00383DH 00383EH XXXXXXXX XXXXXXXXB ID レジスタ 7 IDR7 R/W XXXXXXXX XXXXXXXXB 00383FH 003840H 003841H 003842H XXXXXXXX XXXXXXXXB ID レジスタ 8 IDR8 R/W XXXXXXXX XXXXXXXXB 003843H 003844H 003845H 003846H XXXXXXXX XXXXXXXXB ID レジスタ 9 IDR9 R/W XXXXXXXX XXXXXXXXB 003847H 003848H 003849H 00384AH XXXXXXXX XXXXXXXXB ID レジスタ 10 IDR10 R/W XXXXXXXX XXXXXXXXB 00384BH 00384CH 00384DH 00384EH XXXXXXXX XXXXXXXXB ID レジスタ 11 IDR11 R/W XXXXXXXX XXXXXXXXB 00384FH 003850H 003851H 003852H XXXXXXXX XXXXXXXXB ID レジスタ 12 IDR12 R/W XXXXXXXX XXXXXXXXB 003853H 003854H 003855H 003856H XXXXXXXX XXXXXXXXB ID レジスタ 13 IDR13 R/W XXXXXXXX XXXXXXXXB 003857H 003858H 003859H 00385AH XXXXXXXX XXXXXXXXB ID レジスタ 14 IDR14 R/W XXXXXXXX XXXXXXXXB 00385BH 00385CH 00385DH 00385EH 00385FH 初期値 XXXXXXXX XXXXXXXXB ID レジスタ 15 IDR15 R/W XXXXXXXX XXXXXXXXB 431 第 22 章 CAN コントローラ 22.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 表 22.5-1 に , メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧を示し ます。 ■ メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 表 22.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 ( 1 / 2 ) アドレス CAN1 003860H 003861H 003862H 003863H 003864H 003865H 003866H 003867H 003868H 003869H 00386AH 00386B H 00386C H 00386DH 00386EH 00386FH 003870H 003871H 003872H 003873H 003874H 003875H 003876H 003877H 003878H 003879H 00387AH 00387B H 00387C H 00387DH 432 レジスタ 略号 アクセス 初期値 DLC レジスタ 0 DLCR0 R/W XXXXXXXXB DLC レジスタ 1 DLCR1 R/W XXXXXXXXB DLC レジスタ 2 DLCR2 R/W XXXXXXXXB DLC レジスタ 3 DLCR3 R/W XXXXXXXXB DLC レジスタ 4 DLCR4 R/W XXXXXXXXB DLC レジスタ 5 DLCR5 R/W XXXXXXXXB DLC レジスタ 6 DLCR6 R/W XXXXXXXXB DLC レジスタ 7 DLCR7 R/W XXXXXXXXB DLC レジスタ 8 DLCR8 R/W XXXXXXXXB DLC レジスタ 9 DLCR9 R/W XXXXXXXXB DLC レジスタ 10 DLCR10 R/W XXXXXXXXB DLC レジスタ 11 DLCR11 R/W XXXXXXXXB DLC レジスタ 12 DLCR12 R/W XXXXXXXXB DLC レジスタ 13 DLCR13 R/W XXXXXXXXB DLC レジスタ 14 DLCR14 R/W XXXXXXXXB 第 22 章 CAN コントローラ 表 22.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 ( 2 / 2 ) アドレス CAN1 00387EH 00387FH 003880H ~ 003887H 003888H ~ 00388FH 003890H ~ 003897H 003898H ~ 00389FH 0038A0H ~ 0038A7H 0038A8H ~ 0038AFH 0038B0 H ~ 0038B7 H 0038B8 H ~ 0038BFH 0038C0 H ~ 0038C7 H 0038C8 H ~ 0038CFH 0038D0H ~ 0038D7H 0038D8H ~ 0038DFH 0038E0 H ~ 0038E7 H 0038E8 H ~ 0038EFH 0038F0H ~ 0038F7H 0038F8H ~ 0038FFH レジスタ 略号 アクセス 初期値 DLC レジスタ 15 DLCR15 R/W XXXXXXXXB データレジスタ 0 (8 バイト ) DTR0 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 1 (8 バイト ) DTR1 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 2 (8 バイト ) DTR2 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 3 (8 バイト ) DTR3 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 4 (8 バイト ) DTR4 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 5 (8 バイト ) DTR5 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 6 (8 バイト ) DTR6 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 7 (8 バイト ) DTR7 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 8 (8 バイト ) DTR8 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 9 (8 バイト ) DTR9 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 10 (8 バイト ) DTR10 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 11 (8 バイト ) DTR11 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 12 (8 バイト ) DTR12 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 13 (8 バイト ) DTR13 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 14 (8 バイト ) DTR14 R/W XXXXXXXXB ~ XXXXXXXXB データレジスタ 15 (8 バイト ) DTR15 R/W XXXXXXXXB ~ XXXXXXXXB 433 第 22 章 CAN コントローラ 22.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) 434 第 22 章 CAN コントローラ 22.6.1 制御ステータスレジスタ (CSR) 制御ステータスレジスタ (CSR) に対しては , ビット操作命令 ( リードモディファイ ライト ) を実行することは禁止されています。 ■ 制御ステータスレジスタ (CSR) ( 下位 ) 図 22.6-1 制御ステータスレジスタの構成 ( 下位バイト ) CSR(下位) アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CAN0: 003700 H TOE CAN1: 003900 H CAN2: 003B00 H CAN3: 003D00 H R/W CAN4: 003F00 H - - - - 予約 NIE HALT 初期値 0 X X X X 0 X 1B - - - - R/W W R/W bit0 HALT バス動作停止ビット 0 書込み : バス動作停止をキャンセル 読出し : ストップモード以外でのバス動作 1 書込み : バス動作停止 読出し : ストップモードでのバス動作 bit1 予約 0 予約ビット "1" を書き込まないでください bit2 NIE 0 1 ノードステータス遷移割込み許可ビット ノードステータス遷移割込み許可 ノードステータス遷移割込み禁止 bit7 R/W : W : X : - : : リード / ライト可能 ライトオンリ 不定値 未定義 初期値 TOE 0 1 送信出力許可ビット 汎用ポート端子 CAN コントローラ転送端子 435 第 22 章 CAN コントローラ ■ 制御ステータスレジスタ (CSR 下位 ) の内容 表 22.6-1 制御ステータスレジスタ ( 下位 ) の各ビット機能 ビット名 bit 7 bit 6 ~ bit 3 TOE: 送信出力許可 ビット 機能 本ビットに "1" を書き込むと汎用ポート端子を CAN コントローラ の送信端子に切り換えます。 0: 汎用ポート端子 1: CAN コントローラの送信端子 未定義 - bit 2 NIE: ノードステータス 遷移割込み許可 ビット 本ビットはノードステータス遷移割込み (NT = 1 の場合 ) を許可ま たは禁止します。 0: ノードステータス遷移割込みを禁止する 1: ノードステータス遷移割込みを許可する bit 1 予約ビット 予約ビットです。このビットには , "1" を書き込まないでください。 HALT: バス動作停止 ビット このビットはバス動作停止を制御します。バス停止状態はこのビッ トを読み出すことで確認できます。 このビットへの書込み 0: バス動作停止をキャンセル 1: バス動作停止 このビットの読出し 0: ストップモード外でのバス動作 1: ストップモードでのバス動作 ( 注意事項 ) ノードステータスがバスオフ中に HALT ビットに "0" を書き込む場 合は , 事前に HALT ビットが "1" であることを確認してから行って ください。 プログラム例 : switch ( IO_CANCT0.CSR.bit.NS ) bit 0 { 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" は , フェイルセーフとして使用しています。 436 第 22 章 CAN コントローラ ■ 制御ステータスレジスタ (CSR) ( 上位 ) 図 22.6-2 制御ステータスレジスタ ( 上位バイト ) の構成 CSR(上位) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN0: 003701 H CAN1: 003901 H CAN2: 003B01 H CAN3: 003D01 H CAN4: 003F01 H TS RS - - - R R - - - NT NS1 NS0 R/W R 初期値 00XXX000B R bit9 bit8 NS1 NS0 0 0 0 1 エラーがアクティブ 警告 ( エラーがアクティブ ) 1 0 エラーパッシブ 1 1 バスオフ ノードステータスビット bit10 NT 0 1 ノードステータス遷移フラグ 変化なし ステータス変化 bit14 RS 受信ステータスビット 0 メッセージ受信なし 1 メッセージ受信 bit15 TS R/W : リード / ライト可能 R : リードオンリ X : 不定 : 未定義 - 送信ステータスビット 0 メッセージ転送なし 1 メッセージ転送 : 初期値 437 第 22 章 CAN コントローラ ■ 制御ステータスレジスタ (CSR 上位 ) の内容 表 22.6-2 制御ステータスレジスタ ( 上位 ) の各ビット機能 ビット名 bit 15 TS: 送信ステータス ビット 本ビットはメッセージが送信中であるかどうかを示します。 0: メッセージは送信されていません。 1: メッセージが送信されています。 本ビットはエラーフレームおよびオーバロードフレームが送信さ れている間も "0" です。 RS: 受信ステータス ビット 本ビットはメッセージが受信されているかどうかを示します。 0: メッセージは受信されていません。 1: メッセージが受信されています。 メッセージがバス上にある間 , 本ビットは "1" になります。このた め本ビットはメッセージが送信されている間も "1" になります。本 ビットは必ずしも , 受信メッセージがアクセプタンスフィルタを通 過したかどうかを示すものではありません。 結果として , 本ビットが "0" であるときはバス動作は停止している (HALT = 0) か , バスはインターミッション / バスアイドルにある , またはエラー / オーバロードフレームがバス上にあることを意味し ます。 bit 14 bit 13 ~ bit11 未定義 - NT: ノードステータス 遷移フラグ もしノードステータスがインクリメントに変化し , またはバスオフ からエラーアクティブに変化しても , 本ビットは "1" になります。 すなわち , NT ビットは , ノードステータスがエラーアクティブ (00) からワーニング (01) に , ワーニング (01) からエラーパッシブ (10) に , エラーパッシブ (10) からバスオフ (11) に , バスオフ (11) からエ ラーアクティブ (00) に変化したときに "1" にセットされます。括 弧内の数字は NS1 ビットおよび NS0 ビットの値を示します。 ノードステータス遷移割込み許可ビット (NIE) が "1" であるときに 割込みが発生します。"0" を書き込むと NT ビットが "0" にセット されます。NT ビットに "1" を書き込んでも無視されます。リード モディファイライト系命令がリードされたときに "1" がリードされ ます。 NS1, NS0: ノードステータス ビット1 および0 本ビット群は現在のノードステータスを表します。 詳細については表 22.6-3 を参照してください。 bit 10 bit 9, bit8 438 機能 第 22 章 CAN コントローラ 表 22.6-3 NS1, NS0 およびノードステータスの間の対応 NS1 NS0 0 0 エラーアクティブ 0 1 ワーニング ( エラーアクティブ ) 1 0 エラーパッシブ 1 1 バスオフ ノードステータス <注意事項> ワーニング ( エラーアクティブ ) はノードステータスに対する CAN 仕様 2.0B におけるエ ラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウンタが 96 を 超えたことを表します。ノードステータスの変化図は図 22.6-3 に示されています。 図 22.6-3 ノードステータス遷移図 ハードウェアリセット REC: 受信エラーカウンタ TEC: 送信エラーカウンタ REC >= 96 または TEC >= 96 REC >= 128 または TEC >= 128 エラー パッシブ ワーニング ( エラー アクティブ ) エラー アクティブ レジスタ (CSR) の HALT ビットに "0" が 書き込まれた後 , 連続的な 11 ビット "H" レベル ( リセッシブビット ) が受信入力 端子 (RX) に 128 回入力。 REC < 96 および TEC < 96 REC < 128 および TEC < 128 TEC >= 256 バスオフ (HALT =1) 439 第 22 章 CAN コントローラ 22.6.2 バス動作停止ビット (HALT = 1) バス動作停止ビットは , バス動作停止をセットもしくは解除し , またはその状態を表 示します。 ■ バス動作停止をセットする条件 (HALT=1) バス動作停止をセットする条件 (HALT=1) として , 次の 3 つがあります。 • ハードウェアリセットの後 • ノードステータスがバスオフに変化したとき • HALT への "1" の書込み <注意事項> • バス動作は F2MC-16LX が低消費電力モード ( 停止モード , タイムベースタイマモード ) に遷移する前に HALT に "1" を書き込むことにより停止しなければなりません。HALT に "1" が書き込まれるときに , 送信が進行中であれば送信が終了した後にバス動作は停 止します (HALT=1)。HALT に "1" が書き込まれるときに , 受信が進行中であればバス 動作は直ちに停止します (HALT=1)。もし受信されたメッセージがメッセージバッファ (x) に格納中であればメッセージを格納した後に , バス動作は停止します (HALT=1)。 • バス動作が停止したかどうかは , 常に HALT ビットを読み出してチェックしてくださ い。 ■ バス動作停止を解除する条件 (HALT=0) HALT への "0" 書込み <注意事項> • 上記条件のハードウェアリセット後または HALT に "1" を書き込むことによるバス動作 停止の解除は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットの "H" レベル ( リセッシブビット ) が入力された後に行われます。 • 上記条件のノードステータスがバスオフに変化したときのバス動作停止の解除は , HALT に "0" が書き込まれ , 受信入力端子 (RX) に継続的な 11 ビットの "H" レベル ( リセッシブ ビット ) が 128 回入力された後に行われます。次に , 送信および受信エラーカウンタの両 者の値が "0" に達してノードステータスはエラーアクティブに変化します。 • ノードステータスがバスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビット が "1" になっていることを確認後 , "0" を書き込んでください。 ■ バス動作停止間の状態 (HALT=1) • バスは , 送信および受信などの動作を一切行いません。 • 送信出力端子 (TX) は , "H" レベル ( リセッシブビット ) を出力します。 • ほかのレジスタおよびエラーカウンタの値は変化しません。 440 第 22 章 CAN コントローラ <注意事項> ビットタイミングレジスタ (BTR) はバス動作停止 (HALT=1) の間にセットしなければなり ません。 441 第 22 章 CAN コントローラ 22.6.3 ラストイベント表示レジスタ (LEIR) 本レジスタはラストイベントを示します。 NTE, TCE および RCE ビットは排他的なものです。ラストイベントのビットが "1" にセットされたとき , ほかのビットは "0" にセットされます。 ■ ラストイベント表示レジスタ (LEIR) 図 22.6-4 ラストイベント表示レジスタ (LEIR) の構成 LEIR アドレス: CAN0: 003702 H CAN1: 003902 H CAN2: 003B02 H CAN3: 003D02 H CAN4: 003F02 H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 0 0 0 X 0 0 0 0B R/W R/W R/W - R/W R/W R/W R/W bit 3 bit 2 bit 1 bit 0 MBP3 MBP2 MBP1 MBP0 メッセージバッファ ポインタビット 0 ~ 15 ( 初期値 : 0000B) RCE 0 1 TCE 受信完了 書込み時 ビットクリア 無視 転送完了イベントビット 0 読出し時 - ビットクリア 1 転送完了 無視 NTE 書込み時 ノードステータス遷移イベントビット R/W : リード / ライト可能 0 読出し時 - ビットクリア X : 不定 1 転送イベント 無視 - : 未定義 : 初期値 442 受信完了イベントビット 読出し時 - 書込み時 第 22 章 CAN コントローラ ■ ラストイベント表示レジスタ (LEIR) の内容 表 22.6-4 ラストイベント表示レジスタ (LEIR) の各ビットの機能 ( 1 / 2 ) ビット名 NTE: ノード ステータス遷移 イベントビット 本ビットが "1" のときはノードステータス遷移がラストイベントで あることを表します。 本ビットは制御ステータスレジスタ (CSR) の NT ビットと同時に "1" にセットされます。 本ビットはまた CSR のノードステータス遷移割込み許可ビット (NIE) のセッティングに無関係に "1" にセットされます。 0: "0" を書き込むと NTE ビットは "0" にセットされます。 1: "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出 されます。 TCE: 送信完了 イベントビット 本ビットが 1 のときは送信完了がラストイベントであることを表し ます。 本ビットは送信完了レジスタ (TCR) のビットのいずれか 1 つと同 時に "1" にセットされます。また , 本ビットは送信割込み許可レジ スタ (TIER) のビットのセッティングに無関係に "1" にセットされ ます。 0: 書き込むと本ビットは "0" にセットされます。 1: 本ビットに "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" がリード されます。 本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは送信動 作を完了したメッセージバッファの番号を示すために使用されま す。 RCE: 受信完了 イベント ビット 本ビットが "1" であるときは受信完了がラストイベントであること を表します。 本ビットは受信完了レジスタ (RCR) のビットのいずれか 1 つと同 時に "1" にセットされます。また本ビットは受信割込み許可レジス タ (RIER) のビットのセッティングに無関係に "1" にセットされま す。 0: 書き込むと本ビットは "0" にセットされます。 1: 本ビットに "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" がリード されます。 本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは受信動 作を完了したメッセージバッファの番号を示すために使用されま す。 bit 7 bit 6 bit 5 bit 4 機能 未定義 - 443 第 22 章 CAN コントローラ 表 22.6-4 ラストイベント表示レジスタ (LEIR) の各ビットの機能 ( 2 / 2 ) ビット名 bit 3 ~ bit 0 444 MBP3, MBP2, MBP1, MBP0: メッセージ バッファ ポインタ ビット 機能 TCE または RCE ビットが "1" にセットされたときに本ビット群は 対応するメッセージバッファ (0 ~ 15) の番号を示します。 NTE ビットが "1" にセットされると本ビット群は意味を持ちませ ん。 0: 書き込むと本ビット群は "0" にセットされます。 1: 本ビット群に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出 されます。 もし LEIR が CAN 割込みハンドラ内でアクセスされたとしても割 込みを引き起こしたイベントは必ずしも LEIR により表されるもの と同じではありません。割込みハンドラ内で LEIR アクセスに対す る割込み要求の時点でほかの CAN イベントが生ずる可能性があり ます。 第 22 章 CAN コントローラ 22.6.4 受信および送信エラーカウンタ (RTEC) 受信および送信エラーカウンタは , CAN 仕様で定められる送信エラーカウントおよ び受信エラーカウントを示します。このレジスタは読出し専用です。 ■ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) 図 22.6-5 受信および送信エラーカウンタの構成 RTEC ( 上位 ) アドレス: CAN1: 003905H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 TEC7 R TEC6 R TEC5 R TEC4 R TEC3 R TEC2 R TEC1 R TEC0 R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 REC7 R REC6 R REC5 R REC4 R REC3 R REC2 R REC1 R REC0 R 初期値 00000000B RTEC ( 下位 ) アドレス: CAN1: 003904H R 初期値 00000000B :リードオンリ ■ 受信および送信エラーカウンタ (RTEC) の内容 表 22.6-5 受信および送信エラーカウンタ (RTEC) の各ビット機能 ビット名 機能 bit 15 ~ bit 8 TEC7 ~ TEC0: 送信エラー カウンタ ビット これらは送信エラーカウンタです。 TEC7 ~ TEC0 は , カウンタ値が 256 より大きい場合 0 ~ 7 を示します。 以降のインクリメントはカウンタ値にカウントされません。この場合 , バスオフがノードステータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=11) 。 bit 7 ~ bit0 REC7 ~ REC0: 受信エラー カウンタ ビット これらは受信エラーカウンタです。 REC7 ~ REC0 は , カウンタ値が 256 より大きい場合に 0 ~ 7 を示しま す。以降のインクリメントはカウンタ値にカウントされません。この場 合 , エラーパッシブがノードステータスで示されます ( 制御ステータス レジスタ CSR の NS1 および NS0=10) 。 445 第 22 章 CAN コントローラ 22.6.5 ビットタイミングレジスタ (BTR) ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングをセット するものです。 ■ ビットタイミングレジスタ (BTR) 図 22.6-6 ビットタイミングレジスタ (BTR) の構成 BTR ( 上位 ) アドレス: CAN1: 003907H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - - TS2.2 R/W TS2.1 R/W TS2.0 R/W TS1.3 R/W TS1.2 R/W TS1.1 R/W TS1.0 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RSJ1 R/W RSJ0 R/W PSC5 R/W PSC4 R/W PSC3 R/W PSC2 R/W PSC1 R/W PSC0 R/W 初期値 X1111111B BTR ( 下位 ) アドレス: CAN1: 003906H 初期値 11111111B R/W :リード / ライト可能 X :不定 − :未定義 <注意事項> 本レジスタはバス動作停止 (HALT=1) の間にセットしなければなりません。 ■ ビットタイミングレジスタ (BTR) の内容 表 22.6-6 ビットタイミングレジスタ (BTR) の各ビット機能 ビット名 機能 bit 15 未定義 bit 14 ~ bit 12 TS2.2 ~ TS2.0: タイムセグメント 2 セット bit2 ~ bit0 本ビット群は単位時間 (TQ) を [ (TS2.2 ~ TS2.0) +1] で分周してタ イムセグメント 2(TSEG2) を決定します。タイムセグメント 2 は CAN 仕様におけるフェーズバッファセグメント 2 (PHASE_SEG2) に等しいものです。 TS1.3 ~ TS1.0: タイムセグメント 1 設定ビット 3 ~ 0 本ビット群は単位時間 (TQ) を [ (TS1.3 ~ TS1.0) +1] で分周してタ イムセグメント 1(TSEG1) を決定します。タイムセグメント 1 は CAN 仕様におけるプロパゲーションセグメント (PROP_SEG) + フェーズバッファセグメント 1(PHASE_SEG1) に等しいものです。 RSJ1, RSJ0: 再同期ジャンプ幅 設定ビット 1 および 0 本ビット群は単位時間 (TQ) を [ (RSJ1 ~ RSJ0) +1] で分周して再 同期ジャンプ幅を決定させます。 PSC5 ~ PSC0: プリスケーラ設定 ビット 5 ~ 0 本ビット群は入力クロックを [ (PSC5 ~ PSC0) +1] の周波数で 分割して CAN コントローラの単位時間 (TQ) を決定します ( 詳 細については , ■ プリスケーラ設定を参照ください )。 bit 11 ~ bit 8 bit 7, bit6 bit 5 ~ bit 0 446 - 第 22 章 CAN コントローラ ■ プリスケーラ設定 CAN 仕様および CAN コントローラのそれぞれにおけるビット時間セグメントは図 22.6-7 および図 22.6-8 に示されています。 図 22.6-7 CAN 仕様におけるビット時間セグメント ノミナルビット時間 SYNC_SEG PROP_SEG PHASE_SEG1 PHASE_SEG2 サンプルポイント 図 22.6-8 CAN コントローラにおけるビット時間セグメント ノミナルビット時間 SYNC_SEG TSEG1 TSEG2 サンプルポイント 入力クロック (CLK), 単位時間 (TQ), ビットタイム (BT), 同期セグメント (SYNC_SEG), タ イム セ グメ ン ト 1 お よ び 2 (TSEG1 お よ び TSEG2) お よび 再 同期 ジ ャン プ 幅 [(RSJ1+RSJ0)+1] 周波数分割としたときの PSC=PSC5 ~ PSC0, TS1=TS1.3 ~ TS1.0, TS2=TS2.2 ~ TS1.0 および RSJ=RSJ1 および RSJ0 の間の関係は次に示すとおりです。 入力クロックはマシンクロックによって供給されます。 TQ = (PSC + 1) × CLK BT = SYNC_SEG + TSEG1 + TSEG2 = (1 + (TS1 + 1) + (TS2 +1)) × TQ = (3 + TS1 +TS2) × TQ RSJW = (RSJ + 1) × TQ 正しく動作を行うためには以下の条件を満足しなければなりません。 447 第 22 章 CAN コントローラ For 1 ≦ PSC ≦ 63: TSEG1 ≧ 2TQ TSEG1 ≧ RSJW TSEG2 ≧ 2TQ TSEG2 ≧ RSJW For PSC = 0: TSEG1 ≧ 5TQ TSEG2 ≧ 2TQ TSEG2 ≧ RSJW CAN 仕様に従ったビットタイミングの設定をするためには , 遅延時間などほかの条件 も考慮しなければなりません。 448 第 22 章 CAN コントローラ 22.6.6 メッセージバッファ有効レジスタ (BVALR) メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を セットし , またその状態を表示します。 ■ メッセージバッファ有効レジスタ (BVALR) 図 22.6-9 メッセージバッファ有効レジスタ (BVALR) の構成 BVALR ( 上位 ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN1: 000081H BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 BVAL9 BVAL8 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B BVALR ( 下位 ) アドレス: CAN1: 000080H 7 6 5 4 3 2 1 0 BVAL7 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W :リード / ライト可能 0: メッセージバッファ (x) 無効 1: メッセージバッファ (x) 有効 もしメッセージバッファ (x) が無効にセットされれば , それはメッセージを送信または 受信しません。 もしバッファが送信動作の間に無効にセットされれば , それは送信が完了し , またはエ ラーにより終了した後で無効 (BVALx=0) になります。 もしバッファが受信動作の間に無効にセットされれば , それは直ちに無効 (BVALx=0) になります。もし受信メッセージがメッセージバッファ (x) に格納されていればメッ セージバッファ (x) はメッセージを格納した後に無効となります。 <注意事項> • x はメッセージバッファ番号を示します (x : 0 ~ 15) 。 • ビット (BVALx) に "0" を書き込むことによりメッセージバッファ(x) を無効としたとき にビット操作命令の実行はそのビットが "0" にセットされるまで禁止されます。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッ セージバッファを無効 (BVALR:BVALx=0) にする場合は , 「22.15 CAN コントローラの 使用上の注意」に従ってください。 449 第 22 章 CAN コントローラ 22.6.7 IDE レジスタ (IDER) 本レジスタは送信 / 受信の間にメッセージバッファ (x) により使用されるフレーム フォーマットを設定します。 ■ IDE レジスタ (IDER) 図 22.6-10 IDE レジスタ (IDER) の構成 IDER ( 上位 ) アドレス: CAN1: 003909H bit15 bit14 IDE15 IDE14 R/W R/W bit13 bit12 bit11 bit10 bit9 bit8 IDE13 R/W IDE12 R/W IDE11 R/W IDE10 R/W IDE9 R/W IDE8 R/W 初期値 XXXXXXXXB IDER ( 下位 ) アドレス: CAN1: 003908H 7 6 5 4 3 2 1 0 IDE7 R/W IDE6 R/W IDE5 R/W IDE4 R/W IDE3 R/W IDE2 R/W IDE1 R/W IDE0 R/W 初期値 XXXXXXXXB R/W :リード / ライト可能 X :不定 0: メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用さ れます。 1: メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用さ れます。 <注意事項> • 本レジスタはメッセージバッファ (x) が無効であるとき ( メッセージバッファ有効レジ スタの BVALx(BVALR)=0) に設定しなければなりません。バッファが有効である (BVALx=1)ときに設定を行うと受信メッセージを不必要に格納する可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッ セージバッファを無効 (BVALR:BVAL=0) にする場合は , 「22.15 CAN コントローラの使 用上の注意」に従ってください。 450 第 22 章 CAN コントローラ 22.6.8 送信要求レジスタ (TREQR) 送信要求レジスタ (TREQR) は , メッセージバッファ(x) に対する送信要求を設定し , またその状態を表示します。 ■ 送信要求レジスタ (TREQR) 図 22.6-11 送信要求レジスタ (TREQR) の構成 TREQR ( 上位 ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN1: 000083H TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 TREQ9 TREQ8 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B TREQR ( 下位 ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス: CAN1: 000082H TREQ7 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W :リード / ライト可能 TREQx に "1" が書き込まれたときメッセージバッファ (x:0 ~ 15) に対する送信を開始 します。もしリモートフレーム受信待機レジスタ (RFWTR)*1 の RFWTx が "0" であれ ば送信は直ちに開始します。しかし RFWTx=1 であればリモートフレームが受信され る ( リモート要求受信レジスタ (RRTRR)*1 が "1" になる ) まで待機した後に送信が開始 します。 もし TREQx に "1" が書き込まれるときに RRTRx が既に "1" であれば , RFWTx=1 であっ ても送信は直ちに開始します *2。 *1:TRTRR および RFWTR に関しては図 22.6-12 および図 22.6-13 を参照してください。 *2: 送信の解除に関しては図 22.6-14 および図 22.6-15 を参照してください。 TREQx に "0" を書き込んでも無視されます。 リードモディファイライト系命令がリードされたときは "0" がリードされます。 もし送信動作の完了時における (0 への ) クリアおよび "1" の書込みによる設定が同時 に生じればクリア動作が優先されます。 もし 1 つ以上のビットに "1" が書き込まれれば下位番号のメッセージバッファ(x) から 開始して送信が行われます。 TREQx は送信が待ち状態中は "1" であり送信が完了または解除されたときに "0" にな ります。 451 第 22 章 CAN コントローラ 22.6.9 送信 RTR レジスタ (TRTRR) 本レジスタはメッセージバッファ (x) による送信 RTR ( リモート送信要求 ) ビットを 設定するものです。 ■ 送信 RTR レジスタ (TRTRR) 図 22.6-12 送信 RTR レジスタ (TRTRR) の構成 TRTRR ( 上位 ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN1: 00390BH TRTR15 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B TRTRR ( 下位 ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス: CAN1: 00390AH TRTR7 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 0: データフレームが送信されます。 1: リモートフレームが送信されます。 452 初期値 00000000B 第 22 章 CAN コントローラ 22.6.10 リモートフレーム受信待機レジスタ (RFWTR) リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求 が設定された ( 送信要求レジスタ (TREQR) の TREQx (x:0 ~ 15) が "1" であり送信 RTR レジスタ (TRTRR) の TRTRx が "0" である ) ときに送信を開始する条件を設定 します。 • 0: 送信は直ちに開始します。 • 1: リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) ま で待機した後に送信を開始します。 ■ リモートフレーム受信待機レジスタ (RFWTR) 図 22.6-13 リモートフレーム受信待機レジスタ (RFWTR) の構成 RFWTR ( 上位 ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN1: 00390DH RFWT15 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB RFWTR ( 下位 ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス: CAN1: 00390CH RFWT7 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB R/W :リード / ライト可能 X :不定 <注意事項> • 送信に対する要求が設定されたときに RRTRx が既に "1" であれば送信は直ちに開始し ます。 • リモートフレーム送信に対しては RFWTx を "1" にセットしないでください。 453 第 22 章 CAN コントローラ 22.6.11 送信解除レジスタ (TCANR) TCANx (x:0 ~ 15) に "1" が書き込まれたときに本レジスタはメッセージバッファ (x) への送信に対する待ち状態中の要求を解除します。 解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx に "0" を書き込んでも無視されます。 これは書込み専用レジスタでありそのリード値は常に "0" です。 ■ 送信解除レジスタ (TCANR) 図 22.6-14 送信解除レジスタ (TCANR) の構成 TCANR ( 上位 ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN1: 000085H TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 TCAN9 TCAN8 W W W W W W W W 初期値 00000000B TCANR ( 下位 ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス: CAN1: 000084H TCAN7 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0 W W W W W W W W W 454 :ライトオンリ 初期値 00000000B 第 22 章 CAN コントローラ 22.6.12 送信完了レジスタ (TCR) メッセージバッファ (x:0 ~ 15) により送信の完了時に対応する TCx は "1" になりま す。もし送信割込み許可レジスタ (TIER) の TIEx が "1" であれば割込みが生じます。 ■ 送信完了レジスタ (TCR) 図 22.6-15 送信完了レジスタ (TCR) の構成 TCR ( 上位 ) アドレス: CAN1: 000087H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 TC15 R/W TC14 R/W TC13 R/W TC12 R/W TC11 R/W TC10 R/W TC9 R/W TC8 R/W 初期値 00000000B TCR ( 下位 ) アドレス: CAN1: 000086H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TC7 R/W TC6 R/W TC5 R/W TC4 R/W TC3 R/W TC2 R/W TC1 R/W TC0 R/W 初期値 00000000B R/W :リード / ライト可能 ● TCx=0 となる条件 • TCx に "0" を書き込む。 • 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。 送信の完了の後で TCx に "0" を書き込むとそのビットを "0" にセットします。TCx に "1" を書き込んでも無視されます。リードモディファイライト系命令が実行されたとき は "1" がリードされます。 <注意事項> 送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは "1" への設定が優先します。 455 第 22 章 CAN コントローラ 22.6.13 送信割込み許可レジスタ (TIER) 本レジスタはメッセージバッファ (x : 0 ~ 15) による送信割込みを許可または禁止し ます。送信割込みは送信完了時 ( 送信完了レジスタ (TCR) の TCx が "1" になったと き ) に発生します。 ■ 送信割込み許可レジスタ (TIER) 図 22.6-16 送信割込み許可レジスタ (TIER) の構成 TIER ( 上位 ) アドレス: CAN1: 00390FH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 TIE15 R/W TIE14 R/W TIE13 R/W TIE12 R/W TIE11 R/W TIE10 R/W TIE9 R/W TIE8 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TIE7 R/W TIE6 R/W TIE5 R/W TIE4 R/W TIE3 R/W TIE2 R/W TIE1 R/W TIE0 R/W 初期値 00000000B TIER ( 下位 ) アドレス: CAN1: 00390EH R/W :リード / ライト可能 0: 送信割込みは禁止されます。 1: 送信割込みは許可されます。 456 初期値 00000000B 第 22 章 CAN コントローラ 22.6.14 受信完了レジスタ (RCR) メッセージバッファ (x:0 ~ 15) への受信メッセージの格納の完了時に RCx は "1" に なります。 もし受信割込み許可レジスタ (RIER) の RIEx が "1" であれば割込みが生じます。 ■ 受信完了レジスタ (RCR) 図 22.6-17 受信完了レジスタ (RCR) の構成 RCR ( 上位 ) アドレス: CAN1: 000089H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 RC15 R/W RC14 R/W RC13 R/W RC12 R/W RC11 R/W RC10 R/W RC9 R/W RC8 R/W 初期値 00000000B RCR ( 下位 ) アドレス: CAN1: 000088H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RC7 R/W RC6 R/W RC5 R/W RC4 R/W RC3 R/W RC2 R/W RC1 R/W RC0 R/W 初期値 00000000B R/W :リード / ライト可能 ● RCx=0 となる条件 RCx に "0" を書き込む。 受信メッセージの処理の完了の後で RCx に "0" を書き込んで "0" にセットしてくださ い。RCx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 <注意事項> 受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは "1" への設定が優先します。 457 第 22 章 CAN コントローラ 22.6.15 リモート要求受信レジスタ (RRTRR) 受信されたリモートフレームがメッセージバッファ (x:0 ~ 15) 内に格納されると RRTRx は (RCx 設定が "1" になると同時に ) "1" になります。 ■ リモート要求受信レジスタ (RRTRR) 図 22.6-18 リモート要求受信レジスタ (RRTRR) の構成 RRTRR ( 上位 ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN1: 00008BH RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 RRTR9 RRTR8 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B RRTRR ( 下位 ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス: CAN1: 00008AH RRTR7 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W :リード / ライト可能 ● RRTRx=0 となる条件 • RRTRx に "0" を書き込む。 • 受信されたデータフレームがメッセージバッファ (x) に格納された後 (RCx 設定が "1" になるのと同時 ) 。 • メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx は "1") 。 RRTRx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 <注意事項> 受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは "1" への設定が優先します。 458 第 22 章 CAN コントローラ 22.6.16 受信オーバランレジスタ (ROVRR) メッセージバッファ (x:0 ~ 15) 内への受信メッセージの格納完了時に受信完了レジ スタ (RCR) の RCx が既に "1" であれば ROVRx は "1" になり , 受信がオーバランし たことを表します。 ■ 受信オーバランレジスタ (ROVRR) 図 22.6-19 受信オーバランレジスタ (ROVRR) の構成 ROVRR ( 上位 ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス: CAN1: 00008DH ROVR15 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B ROVRR ( 下位 ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス: CAN1: 00008CH ROVR7 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W :リード / ライト可能 ROVRx に "0" を書き込むと ROVRx=0 になります。ROVRx に "1" を書込みしても無視 されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込むと , そのビットを "0" に設定します。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 <注意事項> 受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは "1" への設定が優先します。 459 第 22 章 CAN コントローラ 22.6.17 受信割込み許可レジスタ (RIER) 受信割込み許可レジスタ (RIER) は , メッセージバッファ (x : 0 ~ 15) による受信割 込みを許可または禁止します。 受信割込みは受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に発 生します。 ■ 受信割込み許可レジスタ (RIER) 図 22.6-20 受信割込み許可レジスタ (RIER) の構成 RIER ( 上位 ) アドレス: CAN1: 0000BFH bit15 bit14 RIE15 RIE14 R/W R/W bit13 bit12 bit11 bit10 bit9 bit8 RIE13 R/W RIE12 R/W RIE11 R/W RIE10 R/W RIE9 R/W RIE8 R/W 初期値 00000000B RIER ( 下位 ) アドレス: CAN1: 0000BEH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RIE7 R/W RIE6 R/W RIE5 R/W RIE4 R/W RIE3 R/W RIE2 R/W RIE1 R/W RIE0 R/W R/W :リード / ライト可能 0: 受信割込みは禁止されます。 1: 受信割込みは許可されます。 460 初期値 00000000B 第 22 章 CAN コントローラ 22.6.18 アクセプタンスマスク選択レジスタ (AMSR) 本レジスタは受信メッセージ ID とメッセージバッファ (x:0 ~ 15)ID の比較に対する マスク ( アクセプタンスマスク ) を選択します。 ■ アクセプタンスマスク選択レジスタ (AMSR) 図 22.6-21 アクセプタンスマスク選択レジスタ (AMSR) の構成 AMSR バイト 0 アドレス: CAN1: 003910H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 AMS 3.1 R/W AMS 3.0 R/W AMS 2.1 R/W AMS 2.0 R/W AMS 1.1 R/W AMS 1.0 R/W AMS 0.1 R/W AMS 0.0 R/W bit15 AMS 7.1 R/W bit14 AMS 7.0 R/W bit13 AMS 6.1 R/W bit12 AMS 6.0 R/W bit11 AMS 5.1 R/W bit10 AMS 5.0 R/W bit9 AMS 4.1 R/W bit8 AMS 4.0 R/W bit7 AMS 11.1 R/W bit6 AMS 11.0 R/W bit5 AMS 10.1 R/W bit4 AMS 10.0 R/W bit3 AMS 9.1 R/W bit2 AMS 9.0 R/W bit1 AMS 8.1 R/W bit0 AMS 8.0 R/W XXXXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 AMS 15.1 R/W AMS 15.0 R/W AMS 14.1 R/W AMS 14.0 R/W AMS 13.1 R/W AMS 13.0 R/W AMS 12.1 R/W AMS 12.0 R/W 初期値 XXXXXXXXB AMSR バイト 1 アドレス: CAN1: 003911H 初期値 XXXXXXXXB AMSR バイト 2 アドレス: CAN1: 003912H 初期値 AMSR バイト 3 アドレス: CAN1: 003913H XXXXXXXXB R/W :リード / ライト可能 X :不定 表 22.6-7 アクセプタンスマスクの選択 AMSx.1 AMSx.0 0 0 フルビット比較 0 1 フルビットマスク 1 0 アクセプタンスマスクレジスタ 0(AMR0) 1 1 アクセプタンスマスクレジスタ 1(AMR1) アクセプタンスマスク 461 第 22 章 CAN コントローラ <注意事項> • AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である ( メッセージバッファ 有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりません。 バッ ファが有効 (BVALx=1) なときに設定を行うと不要な受信メッセージが格納される可能 性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており , 送受信が可能な状態 ) で , メッ セージバッファを無効 (BVALR:BVAL=0) にする場合は , 「22.15 CAN コントローラの使 用上の注意」に従ってください。 462 第 22 章 CAN コントローラ 22.6.19 アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがありますが両者とも に標準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用で きます。 AM28 ~ AM18 (11 ビット ) は標準フレームフォーマットにおけるアクセプタンスマ スクに使用され AM28 ~ AM0 (29 ビット ) は拡張フレームフォーマットでアクセプ タンスマスクに使用されます。 ■ アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) 図 22.6-22 アクセプタンスマスクレジスタ 0 (AMR0) の構成 AMR0 バイト 0 アドレス: CAN1: 003914H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 XXXXXXXXB AM28 AM27 AM26 AM25 AM24 AM23 AM22 AM21 R/W R/W R/W R/W R/W R/W R/W R/W アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CAN1: 003915H AM20 AM19 AM18 AM17 AM16 AM15 AM14 AM13 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 AM12 AM11 AM10 AM9 AM8 AM7 AM6 AM5 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CAN1: 003917H AM4 AM3 AM2 AM1 AM0 - - - XXXXXXXXB R/W R/W R/W R/W R/W - - - AMR0 バイト 1 AMR0 バイト 2 アドレス: CAN1: 003916H AMR0 バイト 3 R/W :リード / ライト可能 X :不定 - :未定義 463 第 22 章 CAN コントローラ 図 22.6-23 アクセプタンスマスクレジスタ 1 (AMR1) の構成 AMR1 バイト 0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 AM28 AM27 AM26 AM25 AM24 AM23 AM22 AM21 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CAN1: 003919H AM20 AM19 AM18 AM17 AM16 AM15 AM14 AM13 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 AM12 AM11 AM10 AM9 AM8 AM7 AM6 AM5 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 XXXXXXXXB アドレス: CAN1: 003918H AMR1 バイト 1 AMR1 バイト 2 アドレス: CAN1: 00391AH AMR1 バイト 3 アドレス: CAN1: 00391BH AM5 AM4 AM3 AM2 AM0 - - - R/W R/W R/W R/W R/W - - - R/W :リード / ライト可能 X :不定 - :未定義 ● 0: コンペア 本ビットに対応するアクセプタンスコード ( 受信メッセージ ID と比較するための ID レジスタ IDRx) を受信メッセージ ID のビットと比較します。マッチしなければメッ セージは受信されません。 ● 1: マスク 本ビットに対応するアクセプタンスコード ID レジスタ (IDRx) をマスクします。受信 メッセージ ID のビットとのコンペアは行われません。 <注意事項> • AMR0 および AMR1 は AMR0 および AMR1 を選択するメッセージバッファ(x:0 ~ 15) のすべてが無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") である ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行 うと不必要な受信メッセージが格納される可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており , 送受信が可能な状態 ) で , メッ セージバッファを無効 (BVALR:BVALx=0) にする場合は , 「22.15 CAN コントローラの 使用上の注意」に従ってください。 464 第 22 章 CAN コントローラ 22.6.20 メッセージバッファ メッセージバッファは 16 個あり , 1 つのメッセージバッファ x (x:0 ~ 15) は ID レ ジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成され ています。 ■ メッセージバッファ ● メッセージバッファ (x) は送信および受信の両方に使用されます。 ● 下位番号のメッセージバッファの方が高い優先順位を割り当てられています。 • 送信時に送信要求が 1 つ以上のメッセージバッファに対してなされたときには最下 位番号のメッセージバッファから開始して送信が行われます (「22.7 CAN コント ローラの送信 」を参照してください ) 。 • 受信時に 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセー ジのアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッ セージ ID が通過するときに受信メッセージは最下位番号のメッセージバッファ内 に格納されます (「22.8 CAN コントローラの受信」を参照してください ) 。 ● 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたときに メッセージバッファはマルチレベルメッセージバッファとして使用できます。これにより 受信時間に対する余裕が与えられます (「22.12 メッセージバッファ (x) による受信方法」 を参照してください ) 。 <注意事項> • メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位でイーブンア ドレスに対して行わなければなりません。バイト単位で書込み動作を行うと下位バイ トへの書込み時に上位バイトに不定データを書き込んでしまいます。上位バイトへの 書込みは無視されます。 • メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0 "( 無効 ) であるときに メッセージバッファ x (IDRx, DLCRx および DTRx) は汎用 RAM として使用できます。た だし, CANコントローラが送受信動作中は, メッセージバッファを使用しますので, CPU のアクセスが最大で 64 マシンサイクル待たされることがあります。これは汎用 RAM 領 域についても同様です。 465 第 22 章 CAN コントローラ 22.6.21 ID レジスタ x (x:0 ~ 15) (IDRx) ID レジスタ x (x:0 ~ 15) (IDRx) は , メッセージバッファ (x) に対する ID レジスタで す。 ■ ID レジスタ x (x:0 ~ 15) (IDRx) 図 22.6-24 ID レジスタ x (IDRx) の構成 バイト 0 アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CAN1: 003820H+4*x ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID21 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CAN1: 003821H+4*x ID20 ID19 ID18 ID17 ID16 ID15 ID14 ID13 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 XXXXXXXXB バイト 1 バイト 2 アドレス: CAN1: 003822H+4*x ID12 ID11 ID10 ID9 ID8 ID7 ID6 ID5 R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 ID4 ID3 ID2 ID1 ID0 - - - XXXXX---B R/W R/W R/W R/W R/W - - - バイト 3 アドレス: CAN1: 003823H+4*x R/W :リード / ライト可能 X :不定 - :未定義 x=0, .... , 15 標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x) を使用しているときは ID28 ~ ID18 の 11 ビットを使用してください。拡張フレーム フォーマット (IDEx=1) でバッファを使用しているときは ID28 ~ ID0 の 29 ビットを使 用してください。 ID28 ~ ID0 の機能は次のとおりです。 • アクセプタンスコード設定 ( 受信メッセージ ID との比較用の ID) • 送信メッセージ ID の設定 ( 注意事項 ) 標準フレームフォーマットでは ID28 ~ ID22 のビットのすべてに "1" をセットするこ とは禁止されています。 • 受信メッセージ ID の格納 466 第 22 章 CAN コントローラ ( 注意事項 ) 受信メッセージ ID はアクセプタンスマスクでマスクされているビットにも格納されま す。標準フレームフォーマットでは ID17 ~ ID0 は不定値 ( 受信シフトレジスタの前回 受信したメッセージの一部 ) が格納されます。 <注意事項> • 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書 込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでし まいます。上位バイトへの書込みは無視されます。 • 本レジスタはメッセージバッファ (x) が無効である ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりません。バッファが有効 (BVALx = 1) なときに設定を行うと不要な受信メッセージが格納される可能性があり ます。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「22.15 CAN コントロー ラの使用上の注意」に従ってください。 467 第 22 章 CAN コントローラ 22.6.22 DLC レジスタ x (x:0 ~ 15) (DLCRx) DLC レジスタ x (x:0 ~ 15) (DLCRx) は , メッセージバッファ x に対する DLC レジ スタを格納します。 ■ DLC レジスタ x (x:0 ~ 15) (DLCRx) 図 22.6-25 DLC レジスタ x (x:0 ~ 15) (DLCRx) の構成 DLCRx ( 下位 ) アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 - - - - DLC3 DLC2 DLC1 DLC0 ----XXXXB - - - - R/W R/W R/W R/W CAN1: 003860H+2*x R/W :リード / ライト可能 X :不定 - :未定義 x=0, .... , 15 ● 送信 • データフレームが送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときに送 信メッセージのデータ長 ( バイト単位 ) を設定します。 • リモートフレームが送信する (TRTRx=1) ときに要求メッセージのデータ長 ( バイト 単位 ) を設定します。 <注意事項> 0000B ~ 1000B (0 ~ 8 バイト ) 以外の設定は禁止されています。 ● 受信 • データフレームが受信された ( リモート要求受信レジスタ (RRTRR) の RRTRx が "0") ときに受信メッセージのデータ長 ( バイト単位 ) を格納します。 • リモートフレームが受信された (RRTRx=1) ときに要求メッセージのデータ長 ( バイ ト単位 ) を格納します。 <注意事項> 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み 動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでいます。上 位バイトへの書込みは無視されます。 468 第 22 章 CAN コントローラ 22.6.23 データレジスタ x (x=0 ~ 15) (DTRx) データレジスタ x (x=0 ~ 15) (DTRx) は , メッセージバッファ (x) に対するデータレ ジスタです。 本レジスタはデータフレームの送信および受信のみ使用されるものでありリモート フレームの送信および受信には使用されません。 ■ データレジスタ x (x=0 ~ 15) (DTRx) 図 22.6-26 データレジスタ x (x=0 ~ 15) (DTRx) の構成 DTRxn バイト 0 アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CAN1: 003880H+8*x D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CAN1: 003882H+8*x D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CAN1: 003884H+8*x D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W DTRxn バイト 1 アドレス: CAN1: 003881H+8*x DTRxn バイト 2 DTRxn バイト 3 アドレス: CAN1: 003883H+8*x DTRxn バイト 4 DTRxn バイト 5 アドレス: CAN1: 003885H+8*x ( 続く ) 469 第 22 章 CAN コントローラ ( 続き ) DTRxn バイト 6 アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CAN1: 003886H+8*x D7 D6 D5 D4 D3 D2 D1 D0 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W DTRxn バイト 7 アドレス: CAN1: 003887H+8*x R/W :リード / ライト可能 X :不定 XXXXXXXXB x=0, .... , 15 ● 送信メッセージデータ (0 ~ 8 バイトのいずれか ) の設定。 データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。 ● 受信メッセージデータの格納 データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で格納されます。 受信メッセージデータが 8 バイトより少なくてもデータが格納されるデータレジスタ (DTRx) の残りのバイトは不定となります。 <注意事項> 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み 動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいま す。上位バイトへの書込みは無視されます。 470 第 22 章 CAN コントローラ 22.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)。 471 第 22 章 CAN コントローラ <注意事項> データフレームまたはリモートフレームのいずれを格納しても送信要求は解除されます。 ■ CAN コントローラの送信の完了 送信が成功したときは RRTRx が "0" に , TREQx が "0" に , 送信完了レジスタ (TCR) の TCx が "1" になります。もし送信完了割込みが許可されていれば ( 送信割込み許可レジ スタ (TIER) の TIEx は "1") 割込みが生じます。 472 第 22 章 CAN コントローラ ■ CAN コントローラの送信フローチャート 図 22.7-1 CAN コントローラの送信フローチャート 受信要求 (TREQx: = 1 ) TCx := 0 0 TREQx? 1 0 RFWTx? 1 0 RRTRx? 1 上記条件を満足する他のメッセージ バッファある場合 , その中で最下位番 号メッセージバッファを選択 NO バスは使用されて いないか。 YES 0 1 TRTRx? データフレームが送信される リモートフレームが送信される NO 送信成功したか。 YES TCANx? 1 RRTRx : = 0 TREQx : = 0 TCx :=1 TIEx ? 0 TREQx := 0 1 0 送信完了割込みが生ずる 送信の終了 473 第 22 章 CAN コントローラ 22.8 CAN コントローラの受信 CAN バス上でデータフレームまたはリモートフレームの開始 (SOF) が検出されたと きに受信は開始します。 ■ アクセプタンスフィルタリング 標準フレームフォーマットの受信メッセージは標準フレームフォーマットに設定され たメッセージバッファ (x) (IDE レジスタ (IDER) の IDEx は "0") と比較されます。拡張 フレームフォーマットの受信メッセージは拡張フレームフォーマットに設定された メッセージバッファ (x) (IDEx は "1") と比較されます。 もし受信メッセージ ID とアクセプタンスコード ( 受信メッセージ ID との比較のため の ID レジスタ (IDRx) との比較の後にアクセプタンスマスクにより比較すべきビット セットのすべてが一致すれば受信メッセージはメッセージバッファ(x) のアクセプタン スフィルタを通過します。 ■ 受信メッセージの格納 受信動作が成功したときに受信メッセージはアクセプタンスフィルタを通過した IDを 含めメッセージバッファ (x) に格納されます。 データフレームを受信したときに受信メッセージは ID レジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) に格納されます。 受信メッセージデータが 8 バイトより少なくてもデータは DTRx の残りのバイトに格 納され , その値は不定となります。 リモートフレームを受信したときに受信メッセージは IDRx および DLCRx のみに格納 されて DTRx はそのままです。 もしアクセプタンスフィルタを通過した ID を含む 1 つ以上のメッセージバッファがあ れば受信メッセージが格納されるべきメッセージバッファ x は次の規則により決定さ れます。 • メッセージバッファ x (x=0 ~ 15) の優先順位はその番号が低いほど高くなります。 すなわち , メッセージバッファ 0 が最高の優先度を与えられメッセージバッファ 15 は最低の優先度が与えられます。 • 受信メッセージを格納する上では基本的に受信完了レジスタ (RCR) の RCx ビット が "0" に設定されたメッセージバッファが優先されます。 • もしアクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較 (AMSx.1 および AMSx.0 ビットが "00" に設定されたメッセージバッファ ) に設定さ れていれば , RCR の RCx ビットの値にかかわらず受信メッセージは格納されます。 • もし RCR の RCx ビットが "0" のメッセージバッファと AMSR のビットが全ビット 比較に設定されているメッセージバッファが複数ある場合 , 受信メッセージは最下 位番号 ( 最優先 ) のメッセージバッファ x に格納されます。 • もし上記のメッセージバッファがなければ受信メッセージは下位番号メッセージ バッファ x に格納されます。 • メッセージバッファは昇順でソートし配置してください。最下位メッセージバッ ファは , 全ビットコンペア , そして AMR0 か AMR1 マスクとなります。最上位メッ セージバッファは全ビットマスクになります。 474 第 22 章 CAN コントローラ 図 22.8-1 には , 受信メッセージを格納すべきメッセージバッファ(x) を決定するための フローチャートが示されています。メッセージバッファはバッファ番号順に , AMSR の 各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1 を 使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセット されたメッセージバッファの順番に設定されることを推奨します。 図 22.8-1 受信メッセージを格納するメッセージバッファ (x) を決定するフローチャート 開始 RCx が "0" にセットされているか , AMSx.1 および AMSx.0 が "00" にセットされている メッセージバッファが見つかったか。 NO YES 最下位番号のメッセージバッ ファを選択 最下位番号のメッセージバッ ファを選択 終了 ■ 受信オーバラン 受信メッセージが格納されるべきメッセージバッファ x に対応する受信完了レジスタ (RCR) の RCx ビットが既に "1" にセットされていてメッセージバッファ x の受信メッ セージの格納が完了したときに受信オーバランレジスタ (ROVRR) の ROVRx ビットは "1" にセットされて受信オーバランを示します。 ■ データフレームおよびリモートフレームの受信に対する処理 ● データフレームの受信に対する処理 リモート要求受信レジスタ (RRTRR) の RRTRx は "0" になります。 送信要求レジスタ (TREQR) の TREQx は ( 受信メッセージを格納する直前に ) "0" にな ります。送信を実行しなかったメッセージバッファ (x) に対する送信要求は解除されま す。 <注意事項> データフレームまたはリモートフレームのいずれの送信に対する要求も解除されます。 ● リモートフレームの受信に対する処理 RRTRx は "1" になります。 もし送信 RTR レジスタ (TRTRR) の TRTRx が "1" であれば TREQx は "0" になります。 この結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に 対する要求は解除されます。 475 第 22 章 CAN コントローラ <注意事項> • データフレーム送信に対する要求は解除されません。 • 送信要求の解除に関しては図 22.7-1 を参照してください。 ■ 受信完了 受信完了レジスタ (RCR) の RCx は受信メッセージを格納した後に "1" になります。 もし受信割込みが許可されていれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1") 割込みが生じます。 <注意事項> この CAN コントローラはそれ自身が送信したメッセージを受信することはありません。 476 第 22 章 CAN コントローラ 22.9 CAN コントローラの受信フローチャート 図 22.9-1 に , CAN コントローラの受信フローチャートを示します。 ■ CAN コントローラの受信フローチャート 図 22.9-1 CAN コントローラの受信フローチャート データフレームまたはリモート フレームの開始 (SOF) の検出 NO アクセプタンスフィルタをパスする メッセージバッファ (x) はあるか。 YES NO 受信は成功したか。 YES 受信メッセージを格納するメッセージ バッファ (x) を決定 受信メッセージをメッセージ バッファ (x) に格納 1 RCx? 0 ROVRx := 1 データフレーム リモートフレーム 受信メッセージは ? RRTRx := 0 RRTRx := 1 1 TRTRx? 0 TREQx := 0 RCx := 1 RIEx ? 1 0 受信割込みが生じる 受信の終了 477 第 22 章 CAN コントローラ 22.10 CAN コントローラの使用方法 CAN コントローラでは , 次のような設定が必要です。 • ビットタイミングの設定 • フレームフォーマットの設定 • ID の設定 • アクセプタンスフィルタの設定 • 低消費電力モードの設定 <注意事項> MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に 使用しないでください。 MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問 題ありません。 ■ ビットタイミングの設定 ビットタイミングレジスタ (BTR) はバス動作停止 ( 制御ステータスレジスタ (CSR) の バス動作停止ビット (HALT) が "1") の間に設定しなければなりません。 設定完了の後に HALT に "0" を書き込んでバス動作停止を解除してください。 ■ フレームフォーマットの設定 メッセージバッファ (x) により使用されるフレームフォーマットを設定してください。 標準フレームフォーマットを使用するときには IDE レジスタ (IDER) の IDEx を "0" に 設定してください。拡張フレームフォーマットを使用するときには IDEx を "1" に設定 してください。 この設定はメッセージバッファ(x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに行わなければなりません。バッファが有効 (BVALx=1) のときに設定を行うと不必要な受信メッセージが格納される可能性があります。 ■ ID の設定 メッセージバッファ (x) の ID を ID レジスタ (IDRx) の ID28 ~ ID0 に設定してくださ い。メッセージバッファ (x) の ID は標準フレームフォーマットでは ID17 ~ ID0 に設 定する必要はありません。メッセージバッファ (x) の ID は送信では送信メッセージと して使用され受信ではアクセプタンスコードとして使用されます。 この設定はメッセージバッファ(x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに行わなければなりません。バッファが有効 (BVALx=1) のときに設定を行うと不必要な受信メッセージが格納される可能性があります。 478 第 22 章 CAN コントローラ ■ アクセプタンスフィルタの設定 メッセージバッファ(x) のアクセプタンスフィルタはアクセプタンスコードおよびアク セプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ ファ (x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") である ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行 うと不必要な受信メッセージが格納される可能性があります。 各メッセージバッファ(x) で使用されたアクセプタンスマスクをアクセプタンスマスク 選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ (AMR0 および AMR1) も使用するのであれば設定しなければなりません ( 設定の詳細 に関しては「22.6.18 アクセプタンスマスク選択レジスタ (AMSR)」および「22.6.19 ア クセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) 」を参照してください ) 。 アクセプタンスマスクは不必要な受信メッセージが格納されたときでも送信要求が解 除されないように設定しなければなりません。例えばそれは同一の ID のメッセージの みを送信するのであればフルビット比較に設定しなければなりません。 ■ 低消費電力モードの設定 F2MC-16LX を低消費電力モード ( 停止 , タイムベースタイマなど ) に設定するには制 御ステータスレジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込んでからバ ス動作が停止したか (HALT=1) をチェックしてください。 479 第 22 章 CAN コントローラ 22.11 メッセージバッファ (x) による送信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ ファ (x) を有効にしてください。 ■ メッセージバッファ (x) による送信方法 ● 送信データ長コードの設定 送信データ長コード ( バイト単位 ) を DLC レジスタ (DLCRx) の DLC3 ~ DLC0 に設定 してください。 データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して は送信メッセージのデータ長を設定してください。 リモートフレーム送信 (TRTRx=1 のとき ) に対しては要求メッセージのデータ長 ( バイ ト単位 ) を設定してください。 <注意事項> 0000B ~ 1000B (0 ~ 8 バイト ) 以外の設定は禁止されています。 ● 送信データの設定 ( データフレームの送信に対してのみ ) データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して はデータを送信バイト数分データレジスタ (DTRx) に設定してください。 <注意事項> 送信データは送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して再書込みし なければなりません。メッセージバッファ有効レジスタ (BVALR) の BVALx ビットを "0" に設定する必要はありません。BVALx ビットを "0" に設定するとリモートフレーム受信を 喪失する可能性があります。 ● 送信 RTR レジスタの設定 データフレーム送信に対しては送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定し てください。 リモートフレーム送信に対しては TRTRx を "1" に設定してください。 ● 送信開始条件の設定 ( データフレームの送信のみ ) データフレーム送信に対する要求が設定された直後に送信を開始するためには , リ モートフレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください ( 送 信要求レジスタ (TREQR) の TREQx は "1" であり送信 RTR レジスタ (TRTRR) の TRTRx は "0" です ) 。 データフレーム送信に対する要求が設定 (TREQx=1およびTRTRx=0)された後にリモー 480 第 22 章 CAN コントローラ トフレームを受信する ( リモート要求受信レジスタ (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 が受信したリ モートフレームの値になることに注意してください。 481 第 22 章 CAN コントローラ 22.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" に設定した後で受信メッセージを再処理しなければなりません。 図 22.12-1 に受信割込み処理の一例を示します。 482 第 22 章 CAN コントローラ 図 22.12-1 受信割込み処理の例 RCx = 1 で割込み 受信メッセージ読出し A: = ROVRx ROVRx := 0 A = 0? NO YES RCx := 0 終了 483 第 22 章 CAN コントローラ 22.13 マルチレベルメッセージバッファの構成の決定 受信が頻繁に行われる場合 , または不特定多数 ID のメッセージを受信するのであれ ば , すなわちメッセージを処理する時間が不十分であれば , 1 つ以上のメッセージ バッファを組み合わせてマルチレベルメッセージバッファとすることにより , CPU による受信メッセージの処理に対する余裕を与えてください。 ■ マルチレベルメッセージバッファの構成の決定 マルチレベルメッセージバッファを用意するには組み合わされた各メッセージバッ ファに同じアクセプタンスフィルタを設定しなければなりません。 もしアクセプタンスマスク選択レジスタ(AMSR)の各ビットが全ビット比較 ((AMSx.1, AMSx.0)=(0, 0)) に設定されていればメッセージバッファをマルチレベルメッセージ構 成とすることはできません。これは全ビット比較では受信完了レジスタ (RCR) の RCx ビットの値の如何にかかわらず受信メッセージが格納されることから , 1 つ以上のメッ セージバッファに対して全ビット比較および同一アクセプタンスコード (ID レジスタ (IDRx)) が指定されたとしても受信メッセージが常に下位番号の ( 優先度の低い ) メッ セージバッファに格納されるからです。このため , 全ビット比較および同一アクセプタ ンスコードを 1 つ以上のメッセージバッファに指定してはなりません。 図 22.13-1 は , マルチレベルメッセージバッファの動作例を示しています。 484 第 22 章 CAN コントローラ 図 22.13-1 マルチレベルメッセージバッファの動作例 初期化 AMS15, AMS14, AMS13 AMSR 10 10 10 .. . AM28 ~ AM18 AMR0 選択 AMS0 ID28 ~ ID18 メッセージバッファ 13 メッセージバッファ 14 メッセージバッファ 15 0000 1111 111 0101 0000 000 0101 0000 000 0101 0000 000 RC15, RC14, RC13 IDE .. . 0 .. . RCR 0 0 0 .. . 0 .. . ROVRR 0 0 0 .. . 0 .. . ROVR15, ROVR14, ROVR13 マスク メッセージ受信中:受信メッセージはメッセージバッファ 13 に格納されます。 ID28 ~ ID18 IDE メッセージ受信中 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 に格納されます。 メッセージ受信中 メッセージバッファ 13 メッセージバッファ 14 メッセージバッファ 15 0101 1111 001 0 .. . 0101 1111 000 0 .. . RCR 0 1 1 .. . 0 .. . ROVRR 0 0 0 .. . 0 .. . 0101 1111 001 0101 0000 000 メッセージ受信中:受信メッセージはメッセージバッファ 15 に格納されます。 メッセージ受信中 0101 1111 010 0 .. . メッセージバッファ 13 0101 1111 000 0 .. . RCR 1 1 1 .. . メッセージバッファ 14 0101 1111 001 0 .. . ROVRR 0 0 0 .. . 0 .. . メッセージバッファ 15 0101 1111 010 メッセージ受信中:オーバランが発生し (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 .. . メッセージバッファ 15 0101 1111 010 0 .. . <注意事項> 4 個のメッセージが同一のアクセプタンスフィルタ設定によりメッセージバッファ13, 14 および 15 に受信されます。 485 第 22 章 CAN コントローラ 22.14 CAN ダイレクトモードレジスタ (CDMR) MB90945 はシステムクロック用のクロックモジュレータを提供します。CAN コン トローラが変調クロックで動作できないため , 非変調クロックが , クロックモジュ レータ設定と無関係に CAN コントローラに提供されます。 ■ CAN ダイレクトモードレジスタ (CDMR) 図 22.14-1 CAN ダイレクトモードレジスタ (CDMR) の構成 CDMR アドレス: CAN0: 00356EH bit7 - - bit6 - - bit5 - - bit4 - - bit3 - - bit2 - - bit1 bit0 - - DIRECT R/W 初期値 XXXXXXX0B R/W :リード / ライト可能 X :不定 - :未定義 ■ CAN ダイレクトモードレジスタの内容 表 22.14-1 CAN ダイレクトモードレジスタの DIRECT ビット機能 ビット名 bit 7 ~ bit1 未定義ビット - DIRECT bit 0 486 機能 クロック変調が禁止のときは , このビットに "1" を書き込んでくださ い。これにより , CAN コントローラは変調クロックとの同期をス キップし , CAN と CPU 間での通信を可能な限りの速度で実施されま す。 変調システムクロックと非変調クロックを同期するためにクロック 変調を許可にする場合は , このビットに "0" を書き込まなければなり ません。 第 22 章 CAN コントローラ 22.15 CAN コントローラの使用上の注意 CAN コントローラの使用は , 下記の点に注意してください。 ■ BVAL ビットによるメッセージバッファ禁止時の注意 メッセージバッファが禁止状態で , 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 の注意事項 ) バッファの送信が既に開始されている時は , キャンセル要求は無視 され , バッファの禁止は送信が完了するまで遅延します。 <注意事項> MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に 使用しないでください。 MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問 題ありません。 487 第 22 章 CAN コントローラ 488 第 23 章 アドレス一致検出機能 アドレス一致検出の機能と動作について説明しま す。 23.1 アドレス一致検出機能の概要 23.2 アドレス一致検出機能のレジスタ 23.3 アドレス一致検出機能の動作 23.4 アドレス一致検出機能の使用例 489 第 23 章 アドレス一致検出機能 23.1 アドレス一致検出機能の概要 アドレスが , アドレス検出レジスタに設定された値と等しい場合に , CPU に読み込 まれる命令コードを強制的に INT9 命令のコード (01H) に置き換えます。その結果 , CPU が設定された命令を実行するときに , INT9 命令を実行します。INT9 割込み ルーチンで処理を行うことにより , アドレス一致検出機能を実現できます。 アドレス検出レジスタは 5 本用意されており , レジスタごとに割込み許可ビットが あります。アドレス検出レジスタに設定された値とアドレスが一致して , かつ割込 み許可ビットが "1" の場合 , CPU に読み込まれる命令コードを強制的に INT9 命令 のコードに置き換えます。 ■ アドレス一致検出機能のブロックダイヤグラム 図 23.1-1 アドレス一致検出機能のブロックダイヤグラム アドレスラッチ アドレス検出 レジスタ 許可ビット F2MC-16LX バス 490 比 較 INT9 命令 F2MC-16LX CPU コア 第 23 章 アドレス一致検出機能 23.2 アドレス一致検出機能のレジスタ アドレス一致検出機能には , 次の 2 種類のレジスタがあります。 • プログラムアドレス検出レジスタ (PADR0 ~ PADR2) • プログラムアドレス検出制御 / ステータスレジスタ (PACSR0) ■ プログラムアドレス検出レジスタ (PADR0 ~ PADR2) プログラムアドレス検出レジスタ (PADR0 ~ PADR2) は , 各レジスタに書き込まれた値 と , アドレスを比較します。一致した場合は , PACSR0 の対応する割込み許可ビットが "1" の場合 , CPU に対して INT9 命令の発生を要求します。 対応する割込み許可ビットが "0" の場合は , 一致していても何も行いません。 図 23.2-1 プログラムアドレス検出レジスタ (PADR0 ~ PADR2) プログラムアドレス検出レジスタ アドレス: PADR0 35E2H/35E1H/35E0H PADR1 35E5H/35E4H/35E3H PADR2 35E8H/35E7H/35E6H バイト バイト バイト アクセス R/W R/W R/W 初期値 不定 不定 不定 表 23.2-1 に , プログラムアドレス検出レジスタ (PADR0 ~ PADR2) と PACSR0 との対 応を示します。 表 23.2-1 PADR0 ~ PADR2 レジスタと PACSR0 レジスタとの対応 アドレス検出レジスタ 割込み許可ビット PADR0 AD0E (bit 1) PADR1 AD1E (bit 3) PADR2 AD2E (bit 5) 491 第 23 章 アドレス一致検出機能 ■ プログラムアドレス検出制御 / ステータスレジスタ (PACSR0) プログラムアドレス検出制御ステータスレジスタ (PACSR0: プログラムアドレス検知 制御ステータスレジスタ ) は , アドレス検出機能の動作を制御します。 図 23.2-2 プログラムアドレス検出制御 / ステータスレジスタ (PACSR0) PACSR0 アドレス: 00009EH bit7 予約 R/W bit6 bit5 予約 R/W AD2E R/W bit4 bit3 予約 R/W AD1E R/W bit2 bit1 bit0 予約 R/W AD0E R/W 予約 R/W 初期値 00000000B R/W :リード / ライト可能 表 23.2-2 PACSR0 の各ビットの機能 ビット名 bit 7, bit6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 492 機能 予約ビット bit7, bit6 は予約ビットです。PACSR0 を設定する前に , このビッ トを "0" に設定してください。 AD2E: アドレス検知 レジスタ 2 許可 ビット AD2E ビットは , PADR2 の動作許可ビットです。 予約ビット bit4 は予約です。PACSR0 を設定する前にこのビットを "0" に設 定してください。 AD1E: アドレス検知 レジスタ 1 許可 ビット AD1E ビットは , PADR1 の動作許可ビットです。 予約ビット bit2 は予約です。PACSR0 を設定する前にこのビットを "0" に設 定してください。 AD0E: アドレス検知 レジスタ 0 許可 ビット AD0E ビットは , PADR0 の動作許可ビットです。 予約ビット このビットが "1" のとき PADR2 レジスタとアドレスの比較を行 い , 一致した場合に CPU は INT9 命令を実行します。 このビットが "1" のとき PADR1 レジスタとアドレスの比較を行 い , 一致した場合に CPU は INT9 命令を実行します。 このビットが "1" のとき , アドレスは PADR0 レジスタで比較され ます。一致の場合 , INT9 命令が発行されます。 bit0 は予約です。PACSR0 を設定する前にこのビットを "0" に設 定してください。 第 23 章 アドレス一致検出機能 23.3 アドレス一致検出機能の動作 プログラムカウンタがアドレス一致検出レジスタと同じアドレスを指示している場 合は , INT9 命令を実行します。INT9 命令ルーチンを処理することによってアドレス 一致検出機能を実現できます。 ■ アドレス一致検出機能の動作 アドレス検出レジスタは5本用意されており, レジスタごとにコンペア許可ビットがあ ります。アドレス検出レジスタに設定された値とプログラムカウンタの値が一致して , かつコンペア許可ビットが "1" の場合 , CPU は INT9 命令を実行します。 <注意事項> アドレス検出レジスタとプログラムカウンタの値が一致した場合は , 内部データバスの内 容が強制的に "01H" に変更されるので , INT9 命令を実行することになります。アドレス検 出レジスタの内容を変更する前には , コンペア許可ビットを必ず "0" にしてください。コ ンペア許可ビットが "1" になっている間に変更すると , 誤動作を引き起こす可能性があり ます。 493 第 23 章 アドレス一致検出機能 23.4 アドレス一致検出機能の使用例 図 23.4-1 にアドレス一致検出機能のシステム構成例を表 23.4-1 に E2PROM メモリ マップを示します。 ■ アドレス一致検出機能のシステム構成例 図 23.4-1 アドレス一致検出機能のシステム構成例 E 2 PROM MCU F2MC-16LX プルアップ抵抗 SIN コネクタ (UARRT) 表 23.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 に書き込みます。 494 第 23 章 アドレス一致検出機能 ● リセットシーケンス MCU はリセット後 E2PROM の値を読み出します。パッチプログラムのバイト数が "0" でなかった場合は , パッチプログラムの本体が E2PROM から読み出され RAM に書き 込まれます。次に , MCU により PADR0 または PADR1 どちらか一方でパッチアドレス をセットし , コンペア許可ビットをセットします。再配置可能なパッチプログラムが望 まれる場合は , RAM 領域に対してパッチ済みプログラムの最初のアドレスを書き込む ことができます。この場合 , INT9 ルーチンがこのユーザ定義の RAM 領域を参照し , パッチ済みプログラムへ向けてジャンプします。 ● INT9 命令 割込みルーチンでは , スタックプログラムのカウンタの値を調べることにより , 割込み が発生するアドレスを知ることができます。割込みの最中にスタックへ押し込まれた 情報は破棄されます。 ■ プログラムパッチ処理例 図 23.4-2 プログラムパッチ処理例 000000H ③ 修正プログラム RAM プログラムアドレス検出レジスタ E2PROM ① プログラムアドレス検出設定 (リセットシーケンス) ・修正プログラムバイト数 ・割込み発生アドレス ・修正プログラム ROM ② ④ 異常プログラム FFFFFFH ①リセットシーケンスのプログラムアドレス検出設定と通常プログラムの実行 ②アドレス一致検出によるINT9割込み処理でRAMに展開した修正プログラムへ分岐 ③INT9処理の分岐による修正プログラムの実行 ④修正プログラムから分岐した元の通常プログラムの実行 495 第 23 章 アドレス一致検出機能 図 23.4-3 プログラムパッチ処理フロー図 リセット E2PROM の 00H を読み出す INT9 YES 0000H(E2PROM)=0 パッチプログラムへ NO JMP 000400H アドレスを読み出す 0003H (E2PROM) MOV PADR0 (MCU) パッチプログラム実行 000400H ~ 000480H パッチプログラムを読み出す パッチプログラム終了 0090H(E2PROM) MOV 000400H 000480H (MCU) JMP FF0050H 0001H 0010H コンペア許可 MOV PACSR, #02H 通常プログラム実行 NO PC=PADR0 YES INT9 FFFFFFH FF0050H E2PROM 異常プログラム ROM FF0000H FFFFH FE0000H 0090H パッチプログラム 0010H 001100H スタック領域 プログラムアドレス下位:00 RAM 領域 0003H プログラムアドレス中位:00 0002H 0001H 0000H 496 プログラムアドレス上位:FF パッチプログラムバイト数:80 000480H パッチプログラム RAM 000400H RAM/ レジスタ領域 000100H 000000H I/O 領域 第 24 章 ROM ミラー機能選択 モジュール ROM ミラー機能選択モジュールについて説明しま す。 24.1 ROM ミラー機能選択モジュールの概要 24.2 ROM ミラー機能選択レジスタ (ROMM) 497 第 24 章 ROM ミラー機能選択モジュール 24.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールは , ROM が配置されている FF バンクが 00 バンク でみるかどうかにより変更できます。 ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 24.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム F2MC-16LX BUS ROM ミラー機能選択レジスタ アドレス領域 FF バンク 00 バンク ROM 498 第 24 章 ROM ミラー機能選択モジュール 24.2 ROM ミラー機能選択レジスタ (ROMM) ROM ミラー機能選択レジスタ (ROMM) は , アドレス 004000H ~ 00FFFFH 番地の使 用中にアクセスしないでください。 ■ ROM ミラー機能選択レジスタ (ROMM) ROMM アドレス: 00006FH R/W W X - bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - - - - - - - - - - - - MS R/W (+) MI W : リード / ライト可能 : ライトオンリ : 不定 : 未定義 初期値 XXXXXX+1B (+):MB90V390HA/HB, MB90F946A: リードオンリ , "1" に固定 MB90F947(A), MB90F949(A) : 選択可能;初期値 0 表 24.2-1 ROM ミラー機能選択レジスタの各ビット機能 ビット名 bit 15 ~ bit9 機能 未定義ビット - MS: ミラーサイズ ビット "1": 32K バイト ROM ミラーサイズ (008000H ~ 00FFFFH) MI: ミラービット "1" を書込み時には FF バンクの ROM のデータが 00 バンクでも読 み出せるようになります。"0" を書込み時には 00 バンクはこの機 能は働きません。 本ビットは , 書込みのみ可能です。 bit 9 bit 8 "0": 48K バイト ROM ミラーサイズ (004000H ~ 00FFFFH) ( 注意事項 ) MB90V390HA/HB および MB90F946A ではこのビットは "1" に固 定され , 読出しのみ使用できます。 MB90F947(A), MB90F949(A) では選択可能です。 <注意事項> ROM ミラー機能を起動している場合 , FF4000H/FF8000H ~ FFFFFFH 番地のみ 004000H/ 008000H ~ 00FFFFH 番地にミラーされます。このため , FF0000H ~ FF3FFFH/FF7FFFH 番地は 00 バンクにミラーされません。 499 第 24 章 ROM ミラー機能選択モジュール 500 第 25 章 1M/2M/3M ビット フラッシュメモリ 1M/2M/3M ビットフラッシュメモリの機能や動作 について説明します。 フラッシュメモリへのデータ書込み / 消去の方法に は , 下記の 3 とおりの方法があります。 • パラレルライタ • シリアル専用ライタ • プログラム実行による書込み / 消去 ここでは , " プログラム実行による書込み / 消去 " について解説します。 25.1 1M/2M/3M ビットフラッシュメモリの概要 25.2 フラッシュメモリ全体のブロックダイヤグラムと フラッシュメモリのセクタ構成 25.3 書込み / 消去モード 25.4 フラッシュメモリ制御ステータスレジスタ (FMCS) 25.5 フラッシュメモリ自動アルゴリズム起動方法 25.6 自動アルゴリズム実行状態の確認 25.7 フラッシュメモリ書込み / 消去の詳細説明 25.8 1M/2M/3M ビットフラッシュメモリ使用上の注意 25.9 フラッシュメモリにおけるリセットベクタアドレス 25.10 1M/2M/3M ビットフラッシュメモリのプログラム例 501 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.1 1M/2M/3M ビットフラッシュメモリの概要 1M/2M/3M ビットフラッシュメモリは , CPU メモリマップ上の F9/FC/FE ~ FF バン クに配置され , フラッシュメモリインタフェース回路の機能により , マスク ROM と 同様に CPU からのリードアクセスおよびプログラムアクセスが可能です。フラッ シュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令動作で行えます。このため , 内蔵 CPU の制御による実装状態での書 換えが可能となり , プログラムおよびデータの改善が効率よく行えます。 ■ 1M/2M/3M ビットフラッシュメモリの特長 • 自動プログラムアルゴリズム (EmbeddedAlgorithmTM:MBM29LV200 と同様 ) • 消去一時停止 / 消去再開機能の搭載 • データポーリング , トグルビットによる書込み / 消去完了検出 • CPU 割込みによる書込み / 消去の完了検出 • セクタごとの消去が可能 ( セクタ組み合わせ自由 ) • 書込み / 消去回数 ( 最小 ) 10000 回 Embedded AlgorithmTM は Advanced Micro Devices 社の商標です。 <注意事項> マニュファクチャコードとデバイスコードの読出し機能はありません。また , これらの コードはコマンドによってもアクセスできません。 ■ フラッシュメモリ書込み / 消去の方法 フラッシュメモリは書込みと読出しを同時に行うことはできません。つまり , フラッ シュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上にあるプログ ラムを RAM に一度コピーし RAM 実行することで , フラッシュメモリからプログラム アクセスをせず書込み動作だけを行うことが可能となります。 ■ フラッシュメモリのレジスタ ● フラッシュメモリ制御ステータスレジスタ (FMCS) FMCS アドレス : 0000AEH bit7 bit6 INTE RDYINT R/W R/W R/W :リード / ライト可能 R :リードオンリ X :不定 502 bit5 bit4 bit3 bit2 bit1 bit0 WE R/W RDY R 予約 R/W 予約 R/W 予約 R/W 予約 R/W 初期値 000X0000B 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.2 フラッシュメモリ全体のブロックダイヤグラムとフ ラッシュメモリのセクタ構成 図 25.2-1 に , フラッシュメモリインタフェース回路付のフラッシュメモリ全体のブ ロックダイヤグラムを , 図 25.2-2 に , 1M ビットフラッシュメモリのセクタ構成を示 します。および図 25.2-3 に , 2M ビットフラッシュメモリのセクタ構成を示します。 さらに図 25.2-4 に , 3M ビットフラッシュメモリのセクタ構成を示します。 ■ フラッシュメモリ全体のブロックダイヤグラム 図 25.2-1 フラッシュメモリ全体のブロックダイヤグラム フラッシュメモリ インタフェース回路 ポート 0 ポート 1 ポート 2 ポート 3 ポート 4 ポート 5 F2MC-16LX バス BYTE INT 1M/2M/3M ビット フラッシュメモリ BYTE CE CE OE OE WE WE AQ0 to AQ18 AQ0 to AQ17 AQ-1 DQ0 to DQ15 DQ0 to DQ15 RY/BY RY/BY RESET ライトイネーブル割込み信号 (CPU へ ) 外部リセット信号 RY/BY ライト イネーブル信号 503 第 25 章 1M/2M/3M ビット フラッシュメモリ ■ 1M ビットフラッシュメモリのセクタ構成 図 25.2-2 に , 1M ビットフラッシュメモリのセクタ構成を示します。 図中アドレスには , 各セクタの上位アドレスと下位アドレスを示します。 図 25.2-2 1M ビットフラッシュメモリのセクタ構成 MB90F947(A) SA4 (16K バイト ) SA3 (8K バイト ) SA2 (8K バイト ) SA1 (32K バイト ) SA0 (64K バイト ) ライタアドレス * CPU アドレス 7FFFFH FFFFFFH 7C000H 7BFFFH FFC000H FFBFFFH 7A000H 79FFFH FFA000H FF9FFFH 78000H 77FFFH FF8000H FF7FFFH 70000H 6FFFFH FF0000H FEFFFFH 60000H FE0000H *:パラレルライタを使用してフラッシュメモリに書込み/消去を行う際は, 必 ずライタアドレスを使用してください。 504 第 25 章 1M/2M/3M ビット フラッシュメモリ ■ 2M ビットフラッシュメモリのセクタ構成 図 25.2-3 に , 2M ビットフラッシュメモリのセクタ構成を示します。 図中アドレスには , 各セクタの上位アドレスと下位アドレスを示します。 図 25.2-3 2M ビットフラッシュメモリのセクタ構成 MB90F949(A) SA6 (16K バイト ) SA5 (8K バイト ) SA4 (8K バイト ) SA3 (32K バイト ) SA2 (64K バイト ) SA1 (64K バイト ) SA0 (64K バイト ) ライタアドレス * CPU アドレス 7FFFFH FFFFFFH 7C000H 7BFFFH FFC000H FFBFFFH 7A000H 79FFFH FFA000H FF9FFFH 78000H 77FFFH FF8000H FF7FFFH 70000H 6FFFFH FF0000H FEFFFFH 60000H 5FFFFH FE0000H FDFFFFH 50000H 4FFFFH FD0000H FCFFFFH 40000H FC0000H *: パラレルライタを使用してフラッシュメモリに書込み / 消去を行う際は , 必 ずライタアドレスを使用してください。 505 第 25 章 1M/2M/3M ビット フラッシュメモリ ■ 3M ビットフラッシュメモリのセクタ構成 図 25.2-4 に , 3M ビットフラッシュメモリのセクタ構成を示します。 図中アドレスには , 各セクタの上位アドレスと下位アドレスを示します。 図 25.2-4 3M ビットフラッシュメモリのセクタ構成 MB90F946A SA8 (16K バイト ) SA7 (8K バイト ) SA6 (8K バイト ) SA5 (32K バイト ) SA4 (64K バイト ) SA3 (64K バイト ) 未使用 SA2 (64K バイト ) SA1 (64K バイト ) SA0 (64K バイト ) 未使用 ライタアドレス * CPU アドレス 7FFFFH FFFFFFH 7C000H 7BFFFH FFC000H FFBFFFH 7A000H 79FFFH FFA000H FF9FFFH 78000H 77FFFH FF8000H FF7FFFH 70000H 6FFFFH FF0000H FEFFFFH 60000H 5FFFFH FE0000H FDFFFFH 50000H 4FFFFH FD0000H FCFFFFH 40000H 3FFFFH FC0000H FBFFFFH 30000H 2FFFFH FB0000H FAFFFFH 20000H 1FFFFH FA0000H F9FFFFH 10000H 0FFFFH F90000H F8FFFFH 00000H F80000H *: パラレルライタを使用してフラッシュメモリに書込み / 消去を行う際は , 必 ずライタアドレスを使用してください。 506 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.3 書込み / 消去モード フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの 異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み / 消去が行え , その他モードでは , 内部バスを介して CPU から書込み / 消去が行えま す。モードの選択はモード外部端子で行います。 ■ フラッシュメモリモード リセット信号が発生中にモード端子を "111B" にセットすると , CPU が停止します。フ ラッシュメモリインタフェース回路は直接ポート0, 1, 2, 3, 4, 5に接続しているので, 外 部端子から直接制御できます。このモードでは , MCU が外部端子中の標準フラッシュ メモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去が行 えます。 フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる すべての動作を使用できます。 ■ その他モード フラッシュメモリは , CPU メモリ空間の F9/FC/FE ~ FF バンクに配置されており , 通 常のマスク ROM と同様にフラッシュメモリインタフェース回路を介して CPU から読 出しアクセスおよびプログラムアクセスできます。 フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん だ付けされていても再書込みが可能です。 これらのモードでは , セクタプロテクト動作を実行することはできません。 <注意事項> フラッシュメモリへの書込み / 消去はすべてのマシンクロック周波数で指定されません。 データシートの交流規格を参照してください。 ■ フラッシュメモリの制御信号 表 25.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。 フラッシュメモリ制御信号と MBM29LV200 の外部端子には , ほぼ 1 対 1 の対応関係が 存在します。セクタプロテクト動作で必要となる VID(12V) 端子は , MBM29LV200 にお ける A9, RESET, OE の代わりに , MD0, MD1, MD2 となります。 フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ トのアクセスしか許可されません。DQ15 ~ DQ8 はサポートされていません。BYTE 端子は常に "0" にセットしてください。 507 第 25 章 1M/2M/3M ビット フラッシュメモリ 表 25.3-1 フラッシュメモリ制御信号 MB90F947(A)/MB90F949(A)/MB90F946A MBM29LV200 端子番号 通常機能 フラッシュメモリモード 5 P30 AQ16 A15 6 P31 CE CE 7 P32 OE OE 8 P33 WE WE 9 P34 AQ17 A16 10 P35 AQ18 - 11 P36 BYTE BYTE 12 P37 RY/BY RY/BY 18 ~ 21 P40 ~ P43 AQ8 ~ AQ11 A7 ~ A10 22 , 23 P46 , P47 AQ12 , AQ13 A11 , A12 24 P50 AQ14 A13 25 PB0 AQ15 A14 51 MD2 MD2 OE (VID) 52 MD1 MD1 RESET (VID) 53 MD0 MD0 A9 (VID) 54 RST RESET RESET 77 ~ 84 P00 ~ P07 DQ0 ~ DQ7 DQ0 ~ DQ7 85 ~ 89 P10 ~ P14 DQ8 ~ DQ12 DQ8 ~ DQ12 94 ~ 96 P15 ~ P17 DQ13 ~ DQ15 DQ13 ~ DQ15 97 ~ 100 P20 ~ P23 AQ0 ~ AQ3 A-1, A0 ~ A2 1~4 P24 ~ P27 AQ4 ~ AQ7 A3 ~ A6 <注意事項> 上記で述べられていないすべてのポート端子はプルアップ抵抗を介してVccに接続してく ださい。 508 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.4 フラッシュメモリ制御ステータスレジスタ (FMCS) フラッシュメモリ制御ステータスレジスタ (FMCS) は , フラッシュメモリインタ フェース回路にあるレジスタで , フラッシュメモリの書込み / 消去の際に使用しま す。 ■ フラッシュメモリ制御ステータスレジスタ (FMCS) 図 25.4-1 フラッシュメモリ制御ステータスレジスタ (FMCS) FMCS bit7 アドレス : 0000AEH bit6 INTE RDYINT R/W R/W bit5 bit4 bit3 bit2 bit1 bit0 初期値 WE R/W RDY R 予約 R/W 予約 R/W 予約 R/W 予約 R/W 000X0000B R/W :リード / ライト可能 R :リードオンリ X :不定 ● ビット内容 【bit7】INTE( 割込み許可 ) フラッシュメモリの書込み / 消去の終了で CPU に割込みを発生させるビットです。 INTE ビットが "1" でかつ RDYINT ビットが "1" のときに CPU へ割込みが発生します。 INTE ビットが "0" であれば割込みは発生しません。 • 0: 書込み / 消去終了での割込み禁止 • 1: 書込み / 消去終了での割込み許可 【bit6】RDYINT( レディ割込み ) フラッシュメモリの動作状態を表すビットです。 フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書込み / 消去後このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。書込 み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み / 消去が可能になり ます。"0" 書込みによって "0" にクリアされ , "1" の書込みは無視されます。フラッシュ メモリ自動アルゴリズム (「25.5 フラッシュメモリ自動アルゴリズム起動方法」参照 ) 終 了タイミングで , "1" にセットされます。リードモディファイライト (RMW) 系命令使用 時は , 必ず "1" が読めます。 • 0: 書込み / 消去動作実行中 • 1: 書込み / 消去動作終了 ( 割込み要求発生 ) 509 第 25 章 1M/2M/3M ビット フラッシュメモリ 【bit5】WE( 書込み許可 ) フラッシュメモリ領域へのライト許可ビットです。 このビットが "1" のとき , F9/FC/FE ~ FF バンクへのコマンドシーケンス 「25.5 ( フラッ シュメモリ自動アルゴリズム起動方法」参照 ) 発行後の書き込みは , フラッシュメモリ 領域への書き込みになります。本ビットが "0" のとき , 書込み / 消去の信号は発生され ません。このビットはフラッシュメモリの書込み / 消去のコマンドを起動する際に使 用します。 書込み/消去を行わないときは, 誤ってフラッシュメモリにデータを書き込まないよう, 常に "0" に設定することを推奨します。 • 0: フラッシュメモリ書込み / 消去禁止 • 1: フラッシュメモリ書込み / 消去許可 【bit4】RDY( レディ ) フラッシュメモリの書込み / 消去ステータスビットです。 このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。なお , こ の状態でも読出し / リセットコマンド , セクタ消去一時停止等のサスペンドコマンドは 受け付けられます。 • 0: 書込み / 消去動作実行中 • 1: 書込み / 消去動作終了 ( 次データ書込み / 消去許可 ) 【bit3 ~ bit0】予約ビット 試験用予約ビットです。通常使用時は必ず "0" に設定してください。 <注意事項> RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで判定す るようプログラムを作成してください。 図 25.4-2 RDYINT, RDY ビットの遷移 自動アルゴリズム 終了タイミング RDYINT ビット RDY ビット 1 マシンサイクル 510 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.5 フラッシュメモリ自動アルゴリズム起動方法 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と 再開の制御が可能です。 ■ コマンドシーケンス表 表 25.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま す。コマンドレジスタにライトするデータはすべてバイトですが , ワードアクセスでラ イトするようにしてください。このときの上位バイト分のデータは無視されます。 表 25.5-1 コマンドシーケンス表 コマンド シーケンス バスラ イトア クセス 1st バスライト サイクル 2nd バスライト サイクル 3rd バスライト サイクル 4th バスライト サイクル 5th バスライト サイクル 6th バスライト サイクル アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ 読出し / リセット * 1 FxXXXX XXF0 - - - - - - - - - - 読出し / リセット * 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXF0 RA RD - - - - 書込み プログラム 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXA0 PA (even) PD (word) - - - - チップ 消去 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 FxAAAA XX10 セクタ 消去 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 SA (even) XX30 セクタ消去一時停止 アドレス "FxXXXX" データ (xxB0H) の入力で , セクタ消去中の消去一時停止 セクタ消去再開 アドレス "FxXXXX" データ (xx30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始 AutoSelect 3 FxAAA XXAA Fx5554 XX55 FxAAAA XX90 - - - - - - ( 注意事項 ) ・表中のアドレス Fx は , 1M ビットフラッシュメモリの FF, FE, 2M ビットフラッシュメモリの FF, FE, FD, FC および 3M ビットフ ラッシュメモリの FF, FE, FD, FB, FA, F9 を意味します。それぞれの操作時にはアクセス対象バンクの値としてください。 ・表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。ただし , "X" は任意の 値です。 ・RA: 読出しアドレス ・PA: 書込みアドレス , 偶数アドレスのみ指定可能 ・SA: セクタアドレス , 「25.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成」を参照してくださ い。 ・RD: 読出しデータ ・PD: 書込みデータ , ワードデータのみ指定可能 *:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットできます。 511 第 25 章 1M/2M/3M ビット フラッシュメモリ 表 25.5-1 における Autoselect はセクタ保護の状態を知るためのコマンドです。実際に は前期コマンドとともに下記のようにアドレスを設定する必要があります。 表 25.5-2 AutoSelect 時のアドレス設定 セクタ保護 AQ13 ~ AQ18 AQ7 AQ2 AQ1 AQ0 DQ7 ~ DQ0 セクタアドレス L H L L CODE* *: 保護されたセクタアドレスでの出力は "01H", 保護されていないセクタアドレスでの出力は "00H" 512 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.6 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内 蔵フラッシュメモリの動作状態の確認ができます。 ■ ハードウェア・シーケンス・フラグ ハードウェア・シーケンス・フラグは , DQ7, DQ6, DQ5, DQ3, DQ2 の 5 ビットの出力で 構成されます。それぞれがデータポーリングフラグ (DQ7), トグルビットフラグ (DQ6), タイミングリミット超過フラグ (DQ5), セクタ消去タイマフラグ (DQ3), トグルビット 2 フラグ (DQ2) の機能を持ちます。これにより , 書込み / チップ・セクタ消去終了 , 消去 コードライトが有効かどうか確認できます。ハードウェア・シーケンス・フラグを参 照するには , コマンドシーケンス (「25.5 フラッシュメモリ自動アルゴリズム起動方 法」の表 25.5-1 を参照 ) 設定後にフラッシュメモリ内部の対象セクタのアドレスにリー ドアクセスすることで参照できます。表 25.6-1 に , ハードウェア・シーケンス・フラ グのビット割当てを示します。 表 25.6-1 ハードウェア・シーケンス・フラグのビット割当て ビット No. ハードウェアシーケンスフラグ 7 6 5 4 3 2 1 0 DQ7 DQ6 DQ5 - DQ3 DQ2 - - 自動書込み / チップ・セクタ消去が実行中であるかの判断は , ハードウェア・シーケン ス・フラグを確認するか , フラッシュメモリ制御レジスタ (FMCS) の RDY ビットを確 認することで , 書込みが終了しているかを知ることができ , 書込み / 消去終了後は , 読 出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれかのフラ グで自動書込み / 消去終了を確認後に , データの読出し等の次処理を行ってください。 また , 2 回目以降のセクタ消去コードライトが有効であるかも , ハードウェア・シーケ ンス・フラグによって確認できます。次項に各ハードウェア・シーケンス・フラグの 説明を示します。表 25.6-2 に , ハードウェア・シーケンス・フラグ機能の一覧を示し ます。 513 第 25 章 1M/2M/3M ビット フラッシュメモリ 表 25.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 1* 状態 書込み動作→書込み完了 ( 書込みアドレス指定時 ) 正常動作 時の状態 変化 セクタ消去一時停止中 ( 消去中でないセクタ ) 書込み動作 異常動作 チップ / セクタ消去動作 *:DQ5 が "1" のとき ( タイミングリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対しては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。 514 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.6.1 データポーリングフラグ (DQ7) データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状 態であることをデータポーリング機能によって知らせるためのフラグです。 ■ データポーリングフラグ (DQ7) 表 25.6-3 と表 25.6-4 に , データポーリングフラグの状態遷移を示します。 表 25.6-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 ) 動作 状態 DQ7 書込み動作 →完了 チップ / セクタ消去 →完了 セクタ消去 待ち →開始 ( 消去中のセクタ ) 0→1 0 0→1 DQ7 → セクタ消去→ 消去一時停止 セクタ消去 一時停止→ 再開 セクタ消去 一時停止中 ( 消去中のセクタ ) ( 消去中でない セクタ ) 1→0 DATA:7 表 25.6-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ消去動作 DQ7 DQ7 0 ● 書込み動作時 自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはアドレ スの指し示す番地によらず , 最後に書き込まれたデータの bit7 の反転データを出力し ます。自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはア ドレスの指し示す番地の読出し値の bit7 を出力します。 ● チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク タから , チップ消去時はアドレスの指し示す番地に関係なく , リードアクセスするとフ ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス の指し示す番地の読出し値の bit7(DATA:7) を出力します。トグルビットフラグ (DQ6) とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であ るかの判定が可能です。 <注意事項> 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ の読出しは , データポーリングフラグ (DQ7) の終了を受けて他のビットの出力が可能とな ります。このため , 自動アルゴリズム終了後のデータの読出しは , データポーリング終了 を確認したリードアクセスの次に行うようにしてください。 515 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.6.2 トグルビットフラグ (DQ6) トグルビットフラグ (DQ6) は , データポーリングフラグと同様に , 主に自動アルゴ リズム実行が進行中または終了状態であることをトグルビット機能によって知らせ るためのフラグです。 ■ トグルビットフラグ (DQ6) 表 25.6-5 と表 25.6-6 に , トグルビットフラグの状態遷移を示します。 表 25.6-5 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 ) 動作 状態 DQ6 書込み動作 →完了 Toggle → DATA:6 チップ / セクタ消去 →完了 セクタ消去 待ち →開始 ( 消去中のセクタ ) Toggle → Stop Toggle Toggle → 1 セクタ消去→ 消去一時停止 セクタ消去 一時停止→ 再開 セクタ消去 一時停止中 ( 消去中のセクタ ) ( 消去中でない セクタ ) 1 → Toggle DATA:6 表 25.6-6 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ消去動作 DQ6 Toggle Toggle ● 書込み / チップ・セクタ消去時 自動書込みアルゴリズムおよびチップ・セクタ消去アルゴリズム実行中に , 連続した リードアクセスを行うと , フラッシュメモリはアドレスの指し示す番地によらず , リー ドごとに "1" と "0" を交互に出力するトグル状態を出力します。自動書込みアルゴリズ ムおよびチップ / セクタ消去アルゴリズム終了時に連続したリードアクセスを行うと フラッシュメモリは bit6 のトグル動作を止め , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタに属するならば , "1" を出力します。消去中のセクタに属さ ないのであれば , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 <注意事項> 書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約 2μs のトグル動作をした後 , データを書き換えることなくトグル動作を終わります。消去 の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビットは約 100μs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。 516 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.6.3 タイミングリミット超過フラグ (DQ5) タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ グです。 ■ タイミングリミット超過フラグ (DQ5) 表 25.6-7 と表 25.6-8 に , タイミングリミット超過フラグの状態遷移を示します。 表 25.6-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 ) チップ / 動作 書込み動作→ セクタ消去 状態 完了 →完了 DQ5 0 → DATA:5 セクタ消去 待ち →開始 ( 消去中のセクタ ) 0 0 0→1 セクタ消去 一時停止→ 再開 セクタ消去→ 消去一時停止 ( 消去中のセクタ ) 0 セクタ消去 一時停止中 ( 消去中でないセクタ ) DATA:5 表 25.6-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ消去動作 DQ5 1 1 ● 書込み / チップ・セクタ消去時 書込み , またはチップ・セクタ消去自動アルゴリズム起動後にリードアクセスすると , 規定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまって いる場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるか 無関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能に より自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断できます。 例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする とフェイルが発生します。この場合 , フラッシュメモリはロックされ , 自動アルゴリズ ムは終了しません。まれに "1" が書き込めたように正常終了する場合もあります。し たがって , データポーリングフラグ (DQ7) から有効なデータが出力されません。また , トグルビットフラグ (DQ6) はトグル動作を止めず , タイムリミットを超え , タイミング リミット超過フラグ (DQ5) は "1" を出力します。この状態はフラッシュメモリが不良 ではなく , 正しく使用されなかったということを表しています。この状態が発生したと きは , リセットコマンドを実行してください。 517 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.6.4 セクタ消去タイマフラグ (DQ3) セクタ消去タイマフラグ (DQ3) は , セクタ消去コマンド起動後 , セクタ消去待ち期 間中であるか否かを知らせるフラグです。 ■ セクタ消去タイマフラグ (DQ3) 表 25.6-9 と表 25.6-10 に , セクタ消去タイマフラグの状態遷移を示します。 表 25.6-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 ) 動作 状態 DQ3 チップ / 書込み動作→ セクタ消去 完了 →完了 1 0 → DATA:3 セクタ消去 待ち →開始 ( 消去中のセクタ ) 0→1 1→0 セクタ消去→ 消去一時停止 セクタ消去 一時停止→ 再開 ( 消去中のセクタ ) 0→1 セクタ消去 一時停止中 ( 消去中でないセクタ ) DATA:3 表 25.6-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ / セクタ消去動作 DQ3 0 1 ● セクタ消去動作時 セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマンドを 発行したセクタのアドレスの指し示す番地によらず , セクタ消去待ち期間中であれば "0" を , セクタ消去待ち期間を超えてしまっている場合は "1" を出力します。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて のセクタ消去コードの書込みまたはセクタ消去一時停止以外のコマンドは , 消去が終 了されるまで無視されます。このフラグが "0" であればフラッシュメモリは , 追加のセ クタ消去コードの書込みを受け付けます。このことを確認するために , 引き続くセクタ 消去コードの書込みに先立ち , このフラグの状態をチェックすることを推奨します。も し 2 回目の状態チェックで "1" であったなら , 追加セクタの消去コードは受け付けられ ていない可能性があります。 ● セクタ消去中のリードアクセス セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が , 消去中のセクタに属するならば "1" を出力します。このアドレスが消去さ れたセクタに属さない場合 , フラッシュメモリは対応するメモリ値の bit3(DATA: 3) を 出力します。 518 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.6.5 トグルビット 2 フラグ (DQ2) トグルビット 2 フラグ (DQ2) は , セクタ消去一時停止中であることをトグルビット 機能によって知らせるフラグです。 ■ トグルビット 2 フラグ (DQ2) 表 25.6-11 と表 25.6-12 に , トグルビット 2 フラグの状態遷移を示します。 表 25.6-11 トグルビット 2 フラグの状態遷移 ( 正常動作時の状態変化 ) 動作 書込み動作→ 状態 完了 DQ2 1 → DATA:2 チップセクタ セクタ消去 待ち→ 消去→ 完了 開始 Toggle → Stop セクタ消去→ 消去一時停止 ( 消去中のセクタ ) Toggle セクタ消去 一時停止→ 再開 ( 消去中のセクタ ) Toggle Toggle セクタ消去 一時停止中 ( 消去中でないセクタ ) DATA:2 表 25.6-12 トグルビット 2 フラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ・セクタ消去動作 DQ2 1 1* *: DQ5 が "1" のとき ( タイミングリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対し ては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。 ● セクタ消去動作時 チップ・セクタ消去アルゴリズム実行中に , 連続したリードアクセスを行うと , フラッ シュメモリはアドレスの指し示す番地によらず , リードごとに "1" と "0" を交互に出力 するトグル状態を出力します。チップ・セクタ消去アルゴリズム終了後に連続したリー ドアクセスを行うと , フラッシュメモリは bit2 のトグル動作を止め , アドレスの指し示 す番地の読出し値の bit2(DATA:2) を出力します。 519 第 25 章 1M/2M/3M ビット フラッシュメモリ ● セクタ消去一時停止時 セクタ消去一時停止中に連続したリードアクセスを行うと , フラッシュメモリはアド レスの指し示す番地が消去中のセクタに属するならば , "1" と "0" を交互に出力するト グル状態を出力します。消去中のセクタに属さないのであれば , アドレスの指し示す番 地の読出し値の bit2(DATA:2) を出力します。 また , セクタ消去一時停止書込み時 , 消去一時停止していないセクタから連続したリー ドアクセスを行うと , "1" を出力します。 DQ2 は DQ6 とともに使用し , 消去一時停止中のセクタであるかを検出するのに使用し ます (DQ2 はトグル動作するが , DQ6 はトグル動作しない ) 。 さらに , DQ2 は消去しているセクタの検出にも使用します。消去動作時には , DQ2 は 消去しているセクタからのリードアクセスならばトグル動作をします。 <参考> 消去の際 , 選択されたすべてのセクタが書き換え保護されている場合 , トグルビット 2 は 約 100μs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻り ます。 520 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.7 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止およびセクタ消去再開の それぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細説明 フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , セクタ消去再開の動作がコマンドシーケンス (「25.5 フラッシュメモリ自動 アルゴリズム起動方法」の表 25.5-1 を参照 ) のバスへのライトサイクルを行うことで 自動アルゴリズムを実行することが可能です。それぞれのバスへのライトサイクルは 必ず続けて行う必要があります。また , 自動アルゴリズムはデータ・ポーリング機能等 で終了時を知ることができます。正常終了後は読出し / リセット状態に戻ります。 フラッシュメモリの各動作について , 次項より下記の順に示します。 • 読出し / リセット状態にする • データを書き込む • 全データを消去する ( チップ消去 ) • 任意のデータを消去する ( セクタ消去 ) • セクタ消去を一時停止する • セクタ消去を再開する 521 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.7.1 読出し / リセット状態 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリの読出し / リセット状態 フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 (「25.5 フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) の読出し / リセット コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 読出し / リセットコマンドには , 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態は , ほかの コマンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。 マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません , なんらかの理由でコマンドが正常に終了しなかった ときなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。 522 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.7.2 データの書込み 書込みコマンドを発行し , フラッシュメモリにデータを書き込む手順について説明 します。 ■ フラッシュメモリへのデータの書込み フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表 (「25.5 フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) の書 込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動アルゴリズム が起動され自動書込みが開始します。 ● アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ スへのワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが , 1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。 ● データ書込み上の注意 書込みによって , データ 0 をデータ 1 に戻すことはできません。データ 0 にデータ 1 を 書き込むと , データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が終了せ ず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミングリミッ ト超過フラグ (DQ5) がエラーと判定するか , あるいは見かけ上データ 1 が書き込まれ たように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデータを読 み出すとデータは"0"のままです。 消去動作のみが0データを"1"にすることができます。 自動書込みアルゴリズム実行中はすべてのコマンドが無視されます。書込み中にハー ドウェアリセットが起動されると , 書き込んでいるアドレスのデータは保証されませ んので注意が必要です。 523 第 25 章 1M/2M/3M ビット フラッシュメモリ ■ フラッシュメモリの書込み手順 図 25.7-1 に , フラッシュメモリの書込み手順の例を示します。ハードウェア・シーケ ンス・フラグ (「25.6 自動アルゴリズム実行状態の確認」を参照 ) を用いることでフ ラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了 の確認にデータポーリングフラグ (DQ7) を用いています。 フラグチェックのために読み出すデータは最後に書込みを行ったアドレスからの読出 しとなります。 データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変 わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ ングフラグビット (DQ7) は再チェックする必要があります。 トグルビットフラグ (DQ6) でも同様に , タイミングリミット超過フラグビット (DQ5) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再 チェックする必要があります。 524 第 25 章 1M/2M/3M ビット フラッシュメモリ 図 25.7-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS: WE (bit 5) フラッシュメモリ書込み許可 書込みコマンドシーケンス (1) FxAAAAH → XXAAH → XX55H (2) Fx5554H (3) FxAAAAH → XXA0H (4) 書込みアドレス <-- 書込みデータ 内部アドレスリード データポーリング (DQ7) 次アドレス Data Data 0 タイミングリミット (DQ5) 1 内部アドレスリード Data データポーリング (DQ7) Data 書込みエラー 最終アドレス NO YES FMCS: WE (bit 5) フラッシュメモリ書込み禁止 書込み完了 ハードウェア・シーケンス・フラグ による確認 525 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.7.3 全データの消去 ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい て説明します。 ■ フラッシュメモリの全データを消去する ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 (「25.5 フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のチップ消去コマ ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます。6 サイクル目のライトが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。 526 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.7.4 任意のデータの消去 ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ 消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同 時に指定することも可能です。 ■ フラッシュメモリの任意のデータを消去する ( セクタ消去 ) フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表 (「25.5 フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のセクタ消去コマ ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 ● セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに より 50μs のセクタ消去待ちが開始します。複数のセクタ消去を行う場合は , 上記の処 理に引き続き消去する目的のセクタ内のアドレスに消去コード (30H) を書き込みます。 ● 複数のセクタを指定するときの注意 最後のセクタ消去コードの書込みから 50μs のセクタ消去待ち期間終了により消去が開 始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアドレス と消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50μs 以内に入力する必 要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去コード のライトが有効かどうかはセクタ消去タイマ ( ハードウェア・シーケンス・フラグ DQ3) によって調べることができます。このとき , セクタ消去タイマを読み出すアドレスは , 消去しようとしているセクタを指すようにします。 ■ フラッシュメモリのセクタ消去手順 ハードウェア・シーケンス・フラグ (「25.6 自動アルゴリズム実行状態の確認」参照 ) を用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図 25.7-2 に , フラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の 確認にトグルビットフラグ (DQ6) を用いています。 フラグチェックのために読み出すデータは , 消去しようとしているセクタからの読出 しとなりますので , 注意が必要です。 トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもトグルビットフラグ (DQ6) は再チェックする必要があります。 データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と 同時に変わるので , データポーリングフラグ (DQ7) を再チェックする必要があります。 527 第 25 章 1M/2M/3M ビット フラッシュメモリ 図 25.7-2 フラッシュメモリのセクタ消去手順の例 消去開始 FMCS: WE (bit 5) フラッシュメモリ消去許可 消去コマンドシーケンス (1) FxAAAAH → XXAAH (2) Fx5554H → XX55H (3) FxAAAAH → XX80H (4) FxAAAAH → XXAAH (5) Fx5554H → XX55H 1 セクタ消去タイマ (DQ3) 内部アドレスリード 0 (6) 消去セクタへコード入力 (30H) YES 消去セクタが ほかにあるか NO 内部アドレスリード 1 内部アドレスリード 2 トグルビット (DQ6) データ 1(DQ6) = データ 2(DQ6) 次セクタ YES NO 0 タイミングリミット (DQ5) 1 内部アドレスリード 1 内部アドレスリード 2 NO トグルビット (DQ6) データ 1(DQ6) = データ 2(DQ6) YES 消去エラー 最終セクタ NO YES FMCS: WE (bit5) フラッシュメモリ消去禁止 消去終了 528 ハードウェア・シーケンス・フラグ による確認 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.7.5 セクタ消去の一時停止 セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタから , データを読み出すことが 可能です。 ■ フラッシュメモリのセクタ消去を一時停止する フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 (「25.5 フ ラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のセクタ消去一時停 止コマンドを , フラッシュメモリ内の対象セクタに送ることで実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込 みはできません。このコマンドは消去待ち時間を含むセクタ消去中のみ有効で , チップ 消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) の書込みを行うことで実施されますが , このときアドレスは フラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の 消去一時停止コマンドは無視されます。 セクタ消去待ち期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセクタ 消去待ちを終了し , 消去動作を中断して消去停止状態になります。セクタ消去待ち期間 後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20μs の時間の後 , 消去一時停止状態後入ります。 セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマン ド発行後 , 20μs 以上後に行ってください。 529 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.7.6 セクタ消去の再開 セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリのセクタ消去を再開する 一時停止したフラッシュメモリセクタ消去を再開させるには , コマンドシーケンス表 (「25.5 フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のセクタ 消去再開コマンドを , フラッシュメモリ内の対象セクタに送ることで実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード (30H) のライトを行うことで実施されますが , このときのアドレスはフラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 530 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.8 1M/2M/3M ビットフラッシュメモリ使用上の注意 1M/2M/3M ビットフラッシュメモリに関する注意を以下に示します。 ■ フラッシュメモリ使用上の注意 ● ハードウェアリセット (RST) の入力 読出し中で自動アルゴリズムが起動していないときに , ハードウェアリセットを入力 するには , "L" レベル幅として最低 500ns をとる必要があります。 この場合 , ハードウェ アリセット起動後フラッシュメモリからデータを読み出すまでに , 最大 500ns が必要と なります。 同様に , 書込み / 消去中で自動アルゴリズムが起動しているときに , ハードウェアリ セットを入力するには , "L" レベル幅として最低 500ns をとる必要があります。この場 合 , フラッシュメモリを初期化するために実行中の動作を停止した後データを読み出 すまでに , 20μs が必要となります。 書込み中にハードウェアリセットすると , 書き込まれているデータは不定となります。 消去中のハードウェアリセットや電源切断により , 消去されているセクタは使用不可 となる可能性があります。 ● ソフトウェアリセット , ウォッチドッグタイマリセットの取消し CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ 状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。それは , これ らのリセット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリ ズムが続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメモリ ユニットが読出し状態になることが妨げられる可能性があるためです。これらのリ セット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。 ● フラッシュメモリへのプログラムアクセス 自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。 CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム 領域を RAM などの別の領域に切り換え後 , 書込み / 消去を開始する必要があります。 この場合 , 割込みベクタを含むセクタ (SA4/SA6) が書込み / 消去されると , 割込み処理 を実行できません。 同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込 みソースは無効にする必要があります。 ● 拡張インテリジェント I/O サービス (EI2OS) フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは , EI2OS には受付不可能であり , 使用できません。 ● VID の適用 セクタプロテクト動作に必要な VID の印加は , 電源がオンのとき開始し , 終了する必要 があります。 531 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.9 フラッシュメモリにおけるリセットベクタアドレス MB90F947(A), MB90F949(A)およびMB90F946Aは, ハードワイヤードリセットベク タをサポートします。 内部ベクタモードでのアドレス FFFFDCH ~ FFFFDFH へのすべての読出しアクセ スは , ハードワイヤードロジックにより事前に決められた値を読み出すことになり ます。しかし , フラッシュメモリモードでは , 前節で述べたようにこれらのアドレス のアクセスが可能です。 このため , これらのアドレスへの書込みは意味がありません。特に ( フラッシュメモ リモードではなく ) CPU アクセスでフラッシュメモリをプログラミングするとき , ソフトウェアポーリング用にこれらのアドレスを読み出さないように注意してくだ さい。さもなければ , フラッシュメモリはハードウェアシーケンスフラグ値の代わ りに固定リセットベクタ値を返します。 ■ フラッシュメモリにおけるリセットベクタアドレス 次の表に , リセットベクタとモードデータの事前に決められた値を示します。 表 25.9-1 リセットベクタとモードデータ値 リセットベクタ FFA000H モードデータ 00H <注意事項> リードワイヤードリセットベクタのため , ソフトウェアの中のリセットベクタを指定する 必要はありません。 同一のプログラムを使用する場合に , マスク ROM デバイスがフラッシュデバイスと異 なった動作をするのを防ぐために , プログラムの中のベクタとモードデータを同一の値に 設定することを推奨します。 532 第 25 章 1M/2M/3M ビット フラッシュメモリ 25.10 1M/2M/3M ビットフラッシュメモリのプログラム例 1M/2M/3M ビットフラッシュメモリのプログラム例を掲載します。 ■ 1M/2M/3M ビットフラッシュメモリのプログラム例 フラッシュメモリのプログラム例 NAME FLASHWE TITLE FLASHWE ;------------------------------------------------------------------------------;1M/2M/3M ビットフラッシュテストプログラム ; ;1: FLASH にあるプログラム ( アドレス : FF8000H, セクタ : SA6) を ; RAM ( アドレス : 001500H) に転送する . ;2: RAM 上でプログラムを実行する。 ;3: PDR1 の値を FLASH ( アドレス : F90000H, セクタ : SA1) に書き込む . ;4: 書き込んだ値 ( アドレス : F90000H, セクタ : SA1) を読み出し PDR2 に出力する。 ;5: 書き込んだセクタ (SA1) を消去する。 ;6: 消去データ確認の出力 ; 条件 ; - RAM 転送バイト数 : "100H" (256 バイト ) ; - 書込み , 消去の終了判定 ; DQ5 ( タイミングリミット超過フラグ ) での判定 ; DQ6 ( トグルビットフラグ ) での判定 ; RDY (FMCS) での判定 ; - エラー時の処理 ; P00 ~ P07 に "H" を出力する ; リセットコマンド発行 ;------------------------------------------------------------------; RESOUS PDR0 PDR1 PDR2 PDR3 DDR0 DDR1 DDR2 DDR3 CKSCR FMCS ROMM RESOUS ; SSTA STA_T SSTA ; DATA IOSEG ORG RB RB RB RB ORG RB RB RB RB ORG RB ORG RB ORG RB ENDS ABS=00 0000H 1 1 1 1 0010H 1 1 1 1 00A1H 1 00AEH 1 006FH 1 SSEG RW RW ENDS 0127H 1 DSEG ABS=0FFH ;"RESOUS" I/O セグメントの定義 ;FLASH コマンドアドレス 533 第 25 章 1M/2M/3M ビット フラッシュメモリ ORG COMADR2 RW ORG COMADR1 RW DATA ENDS 5554H 1 0AAAAH 1 NAME FLASHWE TITLE FLASHWE ;------------------------------------------------------------------------------;1M/2M/3M ビットフラッシュテストプログラム ; ;1: FLASH にあるプログラム ( アドレス : FF8000H, セクタ : SA6) を ; RAM( アドレス : 001500H) に転送する。 ;2: RAM 上でプログラムを実行する。 ;3: PDR1 の値を FLASH ( アドレス : F90000H, セクタ : SA1) に書き込む . ;4: 書き込んだ値 ( アドレス : F90000H, セクタ : SA1) を読み出し PDR2 に出力する。 ;5: 書き込んだセクタ (SA1) を消去する。 ;6: 消去データ確認の出力 ; 条件 ; - RAM 転送バイト数 : "100H" (256 バイト ) ; - 書込み , 消去の終了判定 ; DQ5 ( タイミングリミット超過フラグ ) での判定 ; DQ6 ( トグルビットフラグ ) での判定 ; RDY (FMCS) での判定 ; - エラー時の処理 ; P00 ~ P07 に "H" を出力する ; リセットコマンド発行 ;------------------------------------------------------------------; RESOUS PDR0 PDR1 PDR2 PDR3 DDR0 DDR1 DDR2 DDR3 CKSCR FMCS ROMM RESOUS ; SSTA STA_T SSTA ; IOSEG ORG RB RB RB RB ORG RB RB RB RB ORG RB ORG RB ORG RB ENDS SSEG RW RW ENDS ABS=00 0000H 1 1 1 1 0010H 1 1 1 1 00A1H 1 00AEH 1 006FH 1 ;"RESOUS" I/O セグメントの定義 0127H 1 DSEG ABS=0FFH ;FLASH コマンドアドレス ORG 5554H COMADR2 RW 1 ORG 0AAAAH COMADR1 RW 1 DATA ENDS ;//////////////////////////////////////////////// DATA ;(SA1) 書込み 534 第 25 章 1M/2M/3M ビット フラッシュメモリ ;//////////////////////////////////////////////// MOV A,PDR1 MOVW MOV MOVW MOVW MOVW @RW0+00,A FMCS,#20H ADB:COMADR1,#00AAH ADB:COMADR2,#0055H ADB:COMADR1,#00A0H ;PDR1 データを RAM に割り当てる ; 書込みモード設定 ;Flash 書込みコマンド 1 ;Flash 書込みコマンド 2 ;Flash 書込みコマンド 3 MOVW MOVW A,@RW0+00 @RW2+00,A ; 入力データ (RW0) をフラッシュメモリ (RW2) に書き込む ; WRITE ; ; 待ち時間チェック /////////////////////////////////////////////////////////////////// ; ; タイムリミット超過チェック - フラグが立ちトグル動作中である場合 ERROR /////////////////////////////////////////////////////////////////// MOVW A,@RW2+00 AND BZ MOVW MOVW A,#20H NTOW A,@RW2+00 A,@RW2+00 ;DQ5 タイムリミットチェック ; タイムリミットオーバ ;AH ;AL ; XORW A ;AH,AL の XOR ( 値が異なる場合 "1") は AND A,#40H ;DQ6 トグルビットと異なるか ? BNZ ERROR ;DQ6 トグルビットと異なる場合 ERROR へ /////////////////////////////////////// ; ; NTOW 書込み終了チェック (FMCS-RDY) /////////////////////////////////////// MOVW A,FMCS ; AND A,#10H ;FMCS RDY ビット (bit 4) 抽出 BZ WRITE ; 書込み終了か ? MOV FMCS,#00H ; 書込みモード解除 ///////////////////////////////////////////////////// ; ; 書込みデータ出力 ///////////////////////////////////////////////////// MOVW MOVW MOV RW2,#0000H A,@RW2+00 PDR2,A ; 書込みデータ出力 ; WAIT2 BBC PDR3:1,WAIT2 ;PDR3: 1("H" でセクタ消去スタート ) ; ;///////////////////////////////////////////// ; セクタ消去 (SA1) ;///////////////////////////////////////////// ELS ; ; ; 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 ; 書込み時間チェック /////////////////////////////////////////////////////////////////// タイムリミット超過チェック - フラグが立ちトグル動作中である場合 ERROR /////////////////////////////////////////////////////////////////// MOVW A,@RW2+00 AND BZ MOVW MOVW XORW ; A,#20H NTOE A,@RW2+00 A,@RW2+00 A ;DQ5 タイムリミットチェック ; タイムリミットオーバ ;AH 書込み動作中は , DQ6 から ;AL リードごとに "H"/"L" が交互出力される ;AH と AL の XOR (DQ6 の値が違えば "1" 書込み動作中である ) 535 第 25 章 1M/2M/3M ビット フラッシュメモリ ; AND A,#40H ;DQ6 トグルビットは "H" か ? BNZ ERROR ;DQ6 トグルビットが "H" なら ERROR へ /////////////////////////////////////// ; ; NTOE 消去終了チェック (FMCS-RDY) /////////////////////////////////////// MOVW A,FMCS ; AND A,#10H ;FMCS RDY ビット (bit 4) 抽出 BZ ELS ; セクタ消去終了か ? MOV FMCS,#00H ;FLASH 消去モード解除 RETP ; メインプログラムに戻る ;////////////////////////////////////////////// ; エラー ;////////////////////////////////////////////// MOV FMCS,#00H ;FLASH モード解除 MOV PDR0,#0FFH ; エラー処理の確認 MOV ADB:COMADR1,#0F0H ; リセットコマンド ( 書込み許可 ) RETP ; メインプログラムに戻る RAMPRG ENDS ;///////////////////////////////////////////// VECT CSEG ABS=0FFH ORG 0FFDCH DSL START DB 00H VECT ENDS ; ERROR 536 第 26 章 MB90F947 同期シリアル書込み接続例 F2MC-16LX MB90F947 フラッシュマイコンプログ ラマを用いた場合の , 同期シリアル書込み接続例に ついて説明します。 26.1 MB90F947 同期シリアル書込み接続の基本構成 26.2 同期シリアル書込み接続例 ( ユーザ電源使用時 ) 26.3 同期シリアル書込み接続例 ( ライタから電源供給時 ) 26.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 26.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 537 第 26 章 MB90F947 同期シリアル書込み接続例 26.1 MB90F947 同期シリアル書込み接続の基本構成 MB90F947 では , フラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサ ポートしています。その仕様について解説します。 ■ MB90F947 同期シリアル書込み接続の基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。 図 26.1-1 MB90F947 の富士通スタンダードシリアルオンボードプログラミング ホストインタフェースケーブル (AZ201) AF220/AF210/ AF120/AF110 フラッシュ マイコン プログラマ + メモリカード 汎用共通ケーブル (AZ210) CLK 同期シリアル MB90F947 スタンドアロンで動作可能 <注意事項> AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法および接続 用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株 式会社殿にお問い合わせください。 538 第 26 章 MB90F947 同期シリアル書込み接続例 表 26.1-1 富士通標準同期シリアルオンボード書込みに使用する端子 端子 MD2, MD1 MD0 機能 モード端子 フラッシュマイコンプログラマから , 書込みモードに制御し ます。 発振用端子 書込みモード時に , CPU 内部動作クロックは PLL クロック 1 逓倍となっています。したがって , 発振クロック周波数が , 内 部動作クロックとなりますので , シリアル書換えに使用する 発振子は 3 MHz ~ 20 MHz となります。 X0, X1 P00, P01 書込みプログラム 起動端子 RST リセット端子 SIN4 シリアルデータ 入力端子 SOT4 シリアルデータ 出力端子 SCK4 シリアルクロック入力 端子 C 補足説明 P00 に "L" レベルを , P01 に "H" レベルを入力してください。 - シリアル I/O を使用します。 C 端子 電源安定化の容量端子です。外部に 0.1 μF 程度のセラミック コンデンサを接続してください。 VCC 電源電圧供給端子 書込み電圧 (5V ± 10%) VSS GND 端子 フラッシュマイコンプログラマの GND と共通にします。 P00, P01, SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御 回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル 書込み中はユーザ回路を切り離すことができます。 「26.2 同期シリアル書込み接続例 ( ユーザ電源使用時 )」~「26.5 フラッシュマイコン プログラマとの最小限の接続例 ( ライタから電源供給時 )」に , 以下の同期シリアル書 込み接続例を示しますのでご参照ください。 • 同期シリアル書込み接続例 ( ユーザ電源使用時 ) • 同期シリアル書込み接続例 ( ライタから電源供給時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 539 第 26 章 MB90F947 同期シリアル書込み接続例 図 26.1-2 シリアルプログラミング用ユーザ回路接続 AF220/AF210/ AF120/AF110 書込み制御端子 MB90F947 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS 端子 ユーザ 表 26.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 2M バイト PC Card ( オプション ) FLASH メモリ容量~ 128K バイト対応 /P4 4M バイト PC Card ( オプション ) FLASH メモリ容量~ 512K バイト対応 問い合せ先 : 横河ディジタルコンピュータ株式会社 電話 :042-333-6224 <注意事項> AF200 フラッシュマイコンプログラマは終息製品ですが , 制御モジュール FF201 を用いる ことにより使用できます。同期シリアル書込み接続例を「26.2 同期シリアル書込み接続 例 ( ユーザ電源使用時 )」, 「26.3 同期シリアル書込み接続例 ( ライタから電源供給時 )」 に示します。 ■ 発振クロック周波数とシリアルクロック入力周波数 MB90F947の入力可能なシリアルクロック周波数は, 以下の計算式により求めることが できます。ご使用の発振クロック周波数に合わせて , シリアルクロック入力周波数をフ ラッシュマイコンプログラマに設定してください。 fSC = 0.125 × fOSC ここで fSC はシリアルクロック周波数を , fOSC は発振クロック周波数を示します。 540 第 26 章 MB90F947 同期シリアル書込み接続例 表 26.1-3 入力可能なシリアルクロック周波数の例 発振クロック 周波数 マイコンの入力可能な 最大シリアルクロック 周波数 AF220/AF210/AF120/ AF110 の設定可能な 最大シリアルクロック 周波数 AF200 の設定可能な 最大シリアルクロック 周波数 4 MHz 500 kHz 500 kHz 500 kHz 8 MHz * 1 MHz 850 kHz 500 kHz 16 MHz * 2 MHz 1.25 MHz 500 kHz *:外部クロックのみ 541 第 26 章 MB90F947 同期シリアル書込み接続例 26.2 同期シリアル書込み接続例 ( ユーザ電源使用時 ) 図 26.2-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , 内部ベクタ モード時 ( シングルチップモード ) の同期シリアル書込み接続例を示します。なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 プログラマの TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110 ■ 同期シリアル書込み接続例 ( ユーザ電源使用時 ) 図 26.2-1 内部ベクタモード時の MB90F947 同期シリアル書込み接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S または DX20-28S MB90F947 MD2 (19) 10kΩ 10kΩ MD1 10kΩ TMODE MD0 X0 (12) X1 TAUX P00 (23) 10kΩ /TICS (10) /TRES (5) ユーザ 10kΩ RST ユーザ 10kΩ P01 C 0.1 μF TTXD TRXD TCK (13) (27) (6) TVcc (2) SIN4 SOT4 SCK4 ユーザ電源 GND (7, 8, 14,15, 21, 22 1, 28) 3, 4, 9, 11, 16, 17, 18, 20, 24, 25, 26 ピンは OPEN DX10-28S: ライトアングルタイプ DX20-28S: ストレートタイプ Vcc Vss ピン 14 ピン 1 ピン 28 ピン 15 DX10-28S DX20-28S コネクタ ( ヒロセ電機製 ) のピン配列 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図 の制御回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路を切り離すことができます 。 • 542 AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 第 26 章 MB90F947 同期シリアル書込み接続例 図 26.2-2 ユーザ回路接続 ( 細部 ) AF220/AF210/ AF120/AF110 書込み制御端子 MB90F947 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS 端子 ユーザ 543 第 26 章 MB90F947 同期シリアル書込み接続例 26.3 同期シリアル書込み接続例 ( ライタから電源供給時 ) 図 26.3-1 に , マイコンの電源電圧をライタ電源より供給する場合の , 内部ベクタ モード時 ( シングルチップモード ) の同期シリアル書込み接続例を示します。なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 プログラマの TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110 ■ 同期シリアル書込み接続例 ( ライタから電源供給時 ) 図 26.3-1 内部ベクタモード時の MB90F947 同期シリアル書込み接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 ユーザシステム コネクタ DX10-28S または DX20-28S フラッシュマイコン プログラマ TAUX3 MB90F947 MD2 (19) 10kΩ 10kΩ MD1 10kΩ TMODE MD0 X0 (12) X1 TAUX P00 (23) 10kΩ /TICS (10) /TRES (5) ユーザ 10kΩ RST ユーザ 10kΩ 0.1 μF TTXD TRXD TCK TVcc GND (13) (27) (6) SIN4 SOT4 SCK4 (2) (7, 8, 14,15, 21, 22 1, 28) 3, 4, 9, 11, 16, 17, 18, 20, 24, 25, 26 ピンは OPEN DX10-28S: ライトアングルタイプ DX20-28S: ストレートタイプ P01 C Vcc ユーザ電源 Vss ピン 14 ピン 1 ピン 28 ピン 15 DX10-28S DX20-28S コネクタ ( ヒロセ電機製 ) のピン配列 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図 の制御回路が必要となります。 フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路を切り離すことができます 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF220/AF210/AF120/AF110 から供給するときはユーザ電源と短絡し ないでください。 544 第 26 章 MB90F947 同期シリアル書込み接続例 図 26.3-2 ユーザ回路接続 ( 細部 ) AF220/AF210/ AF120/AF110 書込み制御端子 MB90F947 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS 端子 ユーザ 545 第 26 章 MB90F947 同期シリアル書込み接続例 26.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 図 26.4-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書換えモード :MD2, MD1, MD0=110 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) フラッシュメモリ書込み時に , 各端子を下記のように設定することにより , MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 26.4-1 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン プログラマ MB90F947 シリアル書換え時 1 10kΩ MD2 シリアル 書換え時 1 10kΩ 10kΩ MD1 10kΩ 10kΩ MD0 シリアル書換え時 0 10kΩ X0 X1 P00 10kΩ シリアル書換え時 0 10kΩ ユーザ回路 P01 シリアル書換え時 1 ユーザ回路 コネクタ DX10-28S または DX20-28S C 0.1 μF 10kΩ /TRES TTXD TRXD TCK TVcc (5) (13) (27) (6) (2) GND (7, 8, 14,15, 21, 22, 1, 28) RST SIN4 SOT4 SCK4 Vcc ユーザ電源 Vss ピン 14 3, 4, 9, 10, 11, 12, 16, 17, 18, 19, 20, 23, 24, 25, 26 ピンは OPEN DX10-28S: ライトアングルタイプ DX20-28S: ストレートタイプ ピン 1 DX10-28S DX20-28S ピン 28 ピン 15 コネクタ ( ヒロセ電機製 ) のピン配列 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります 。フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます 。 • 546 AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 第 26 章 MB90F947 同期シリアル書込み接続例 図 26.4-2 ユーザ回路接続 ( 細部 ) AF220/AF210/ AF120/AF110 書込み制御端子 MB90F947 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS 端子 ユーザ 547 第 26 章 MB90F947 同期シリアル書込み接続例 26.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 図 26.5-1 に , マイコンの電源電圧をライタ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書換えモード :MD2, MD1, MD0=110 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) フラッシュメモリ書込み時に各端子を下記のように設定することにより , MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 26.5-1 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン プログラマ シリアル書換え時 1 MB90F947 MD2 シリアル 書換え時 1 MD1 MD0 シリアル書換え時 0 X0 X1 P00 シリアル書換え時 0 ユーザ回路 P01 シリアル書込み時 1 ユーザ回路 C コネクタ DX10-28S または DX20-28S /TRES TTXD TRXD TCK (5) (13) (27) (6) (2) (3) (16) RST SIN4 SOT4 SCK4 Vcc TVcc GND (7,8, 14,15, 21, 22, 1, 28) 3, 4, 9, 10, 11, 12, 16, 17, 18, 19, 20, 23, 24, 25, 26 ピンは OPEN DX10-28S: ライトアングルタイプ DX20-28S: ストレートタイプ Vss ピン 14 ピン 1 ピン 28 ピン 15 DX10-28S DX20-28S コネクタ ( ヒロセ電機製 ) のピン配列 • SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF220/AF210/AF120/AF110 から供給するときはユーザ電源と短絡し ないでください。 548 第 26 章 MB90F947 同期シリアル書込み接続例 図 26.5-2 ユーザ回路接続 ( 細部 ) AF220/AF210/ AF120/AF110 書込み制御端子 MB90F947 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS 端子 ユーザ 549 第 26 章 MB90F947 同期シリアル書込み接続例 550 付録 付録では , I/O マップ , F2MC-16LX の命令などを示 します。 付録 A I/O マップ 付録 B 命令 付録 C フラッシュメモリモードのタイミングダイヤグラム 付録 D MB90945 割込みベクタ一覧表 551 付録 付録 A I/O マップ 付表 A-1 に , 周辺ブロック中のレジスタに割り当てられるアドレスを示します。 ■ I/O マップ 付表 A-1 I/O マップ ( 1 / 4 ) アドレス レジスタ 略称 アクセス 周辺 初期値 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 予約 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/ A/D コンバータ選択 ADER1 R/W ポート B, A/D 01111111B ILSR R/W ポート 00000EH 入力レベル選択レジスタ 00000FH (MB90V390HA/HB) 00000000B 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 予約 000018H ポート 8 方向レジスタ DDR8 R/W ポート 8 XXXXXX00B 000019H ポート 9 方向レジスタ DDR9 R/W ポート 9 00000000B 00001AH ポート A 方向レジスタ DDRA R/W ポート A 00000000B 00001BH ポート B 方向レジスタ DDRB R/W ポート B 00000000B 00001CH ~ 00001FH 552 予約 付録 A I/O マップ 付表 A-1 I/O マップ ( 2 / 4 ) アドレス レジスタ 略称 アクセス 000020H シリアルモード制御 0 UMC0 R/W 000021H ステータス 0 USR0 R/W 000022H インプット / アウトプット UIDR0/ UODR0 データ 0 000023H レート , データ 0 URD0 000024H ~ 00002BH R/W 周辺 初期値 00000100B 00010000B UART0 XXXXXXXXB 0000000XB R/W 予約 00002CH シリアルモード制御 SMCS4 R/W XXXX0000B 00002DH シリアルモード制御 SMCS4 R/W 00000010B 00002EH シリアルデータ SDR4 R/W 00002FH シリアル IO プリスケーラ / CDCR4 エッジセレクタ 000030H 外部割込み許可 000031H シリアル I/O XXXXXXXXB R/W 0X0X0000B ENIR R/W 00000000B 外部割込み要求 EIRR R/W 000032H 外部割込みレベル ELVR R/W 000033H 外部割込みレベル ELVR R/W 00000000B 000034H A/D 制御ステータス 0 ADCS0 R/W 00000000B 000035H A/D 制御ステータス 1 ADCS1 R/W 000036H A/D データ 0 ADCR0 R 000037H A/D データ 1 ADCR1 R/W 000038H PPG0 動作モード制御 PPGC0 R/W 000039H PPG1 動作モード制御 PPGC1 R/W 00003AH PPG0, PPG1 クロック セレクトレジスタ PPG01 R/W レジスタ レジスタ 00003BH A/D コンバータ XXXXXXXXB 00000000B 00000000B XXXXXXXXB 00000XXXB 16 ビット プログラマブル パルス発生部 0/1 0X000XX1B 0X000001B 000000XXB 予約 00003CH PPG2 動作モード制御 00003DH PPG3 動作モード制御 00003EH PPG2, PPG3 クロック セレクトレジスタ レジスタ レジスタ PPGC2 R/W PPGC3 R/W PPG23 R/W 00003FH 16 ビット プログラマブル パルス発生部 2/3 0X000XX1B 0X000001B 000000XXB 予約 000040H PPG4 動作モード制御 レジスタ 000041H PPG5 動作モード制御 000042H PPG4, PPG5 クロック 000043H 外部割込み レジスタ セレクトレジスタ PPGC4 R/W PPGC5 R/W PPG45 R/W 16 ビット プログラマブル パルス発生部 4/5 0X000XX1B 0X000001B 000000XXB 予約 553 付録 付表 A-1 I/O マップ ( 3 / 4 ) アドレス レジスタ 000044H PPG6 動作モード制御 000045H PPG7 動作モード制御 レジスタ 000046H PPG6, PPG7 クロック レジスタ セレクトレジスタ 略称 PPGC6 R/W PPGC7 R/W PPG67 R/W 000047H 周辺 16 ビット プログラマブル パルス発生部 6/7 初期値 0X000XX1B 0X000001B 000000XXB 予約 000048H PPG8 動作モード制御 000049H PPG9 動作モード制御 00004AH PPG8, PPG9 クロック レジスタ レジスタ セレクトレジスタ PPGC8 R/W PPGC9 R/W PPG89 R/W 00004BH 16 ビット プログラマブル パルス発生部 8/9 0X000XX1B 0X000001B 000000XXB 予約 00004CH PPGA 動作モード制御 00004DH PPGB 動作モード制御 00004EH アクセス レジスタ レジスタ PPGA, PPGB クロック セレクトレジスタ PPGCA R/W PPGCB R/W PPGAB R/W 00004FH 16 ビット プログラマブル パルス発生部 A/B 0X000XX1B 0X000001B 000000XXB 予約 000050H タイマ制御ステータス 0 TMCSR0 R/W 000051H タイマ制御ステータス 0 TMCSR0 R/W 000052H, 000053H 16 ビット リロード タイマ 0 00000000B XXXX0000B 予約 000054H インプット・キャプチャ・ ICS01 制御・ステータス 0/1 R/W インプット・ キャプチャ 0/1 00000000B 000055H インプット・キャプチャ・ ICS23 制御・ステータス 2/3 R/W インプット・ キャプチャ 2/3 00000000B 000056H インプット・キャプチャ・ ICS45 制御・ステータス 4/5 R/W インプット・ キャプチャ 4/5 00000000B 000057H 予約 000058H アウトプット・コンペア・ OCS0 制御・ステータス 0 R/W 000059H アウトプット・コンペア・ OCS1 制御・ステータス 1 R/W 00005AH アウトプット・コンペア・ OCS2 制御・ステータス 2 R/W 00005BH アウトプット・コンペア・ OCS3 制御・ステータス 3 R/W 00005CH ~ 00006EH 00006FH 000070H ~ 00007FH 554 アウトプット・ コンペア 0/1 アウトプット・ コンペア 2/3 0000XX00B 0XX00000B 0000XX00B 0XX00000B 予約 ROM ミラー ROMM W 予約 ROM ミラー XXXXXXX1B 付録 A I/O マップ 付表 A-1 I/O マップ ( 4 / 4 ) アドレス 000080H ~ 00008FH レジスタ 略称 アクセス 周辺 初期値 CAN インタフェース 1 用に予約済。CAN コントローラの章を参照。 000090H ~ 00009DH 予約 00009EH プログラムアドレス検出制 PACSR0 御 / ステータスレジスタ 00009FH 遅延割込み / 解除 0000A0H 0000A1H R/W アドレス一致 検出機能 00000000B DIRR R/W 遅延割込み XXXXXXX0B 低消費電力モード LPMCR R/W 低消費電力 制御 00011000B クロック選択レジスタ CKSCR R/W 低消費電力 制御 11111100B 0000A2H ~ 0000A7H 予約 0000A8H ウォッチドッグ制御 WDTC R/W ウォッチ ドッグタイマ XXXXX111B 0000A9H タイムベースタイマ 制御 TBTC R/W タイムベース タイマ 1XX00100B フラッシュ メモリ 000X0000B 0000AAH ~ 0000ADH 0000AEH 予約 フラッシュ制御 ステータス ( フラッシュ品のみ。 他では予約 ) FMCS 0000AFH R/W 予約 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 0000B8H 割込み制御レジスタ 08 ICR08 R/W 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 割込み コントローラ 00000111B 00000111B 予約 555 付録 ■ I/O マップ (3XXX アドレス ) 付表 A-2 I/O マップ (3XXX アドレス ) ( 1 / 4 ) アドレス 556 レジスタ 略称 アクセス 周辺 初期値 XXXXXXXXB 003500H リロード L PRLL0 R/W 003501H リロード H PRLH0 R/W 003502H リロード L PRLL1 R/W 003503H リロード H PRLH1 R/W XXXXXXXXB 003504H リロード L PRLL2 R/W XXXXXXXXB 003505H リロード H PRLH2 R/W 003506H リロード L PRLL3 R/W 003507H リロード H PRLH3 R/W 003508H リロード L PRLL4 R/W 003509H リロード H PRLH4 R/W 00350AH リロード L PRLL5 R/W 00350BH リロード H PRLH5 R/W 00350CH リロード L PRLL6 R/W 16 ビット プログラマブル パルス発生部 0/1 16 ビット プログラマブル パルス発生部 2/3 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 16 ビット プログラマブル パルス発生部 4/5 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 16 ビット プログラマブル パルス発生部 6/7 00350DH リロード H PRLH6 R/W 00350EH リロード L PRLL7 R/W 00350FH リロード H PRLH7 R/W XXXXXXXXB 003510H リロード L PRLL8 R/W XXXXXXXXB 003511H リロード H PRLH8 R/W 003512H リロード L PRLL9 R/W 003513H リロード H PRLH9 R/W XXXXXXXXB 003514H リロード L PRLLA R/W XXXXXXXXB 003515H リロード H PRLHA R/W 003516H リロード L PRLLB R/W 003517H リロード H PRLHB R/W 16 ビット XXXXXXXXB プログラマブル XXXXXXXXB パルス発生部 A/B XXXXXXXXB 003518H シリアルモード レジスタ SMR3 R/W 00000000B 003519H シリアル制御レジスタ SCR3 R/W 00000000B RDR2, RDR3: 00000000B TDR2, TDR3: 11111111B 16 ビット プログラマブル パルス発生部 8/9 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 00351AH 受信データレジスタ / 送信データレジスタ RDR3/TDR3 R/W 00351BH シリアルステータス レジスタ SSR3 R/W 00351CH 拡張通信制御レジスタ ECCR3 R/W X0000XXXB 00351DH 拡張ステータス / 制御レジスタ ESCR3 R/W 00000100B 00351EH ボーレートレジスタ 0 BGR03 R/W 00000000B 00351FH ボーレートレジスタ 1 BGR13 R/W 00000000B UART2/3 00001000B 付録 A I/O マップ 付表 A-2 I/O マップ (3XXX アドレス ) ( 2 / 4 ) アドレス レジスタ 略称 アクセス 周辺 初期値 003520H インプットキャプチャ 0 IPCP0 R XXXXXXXXB 003521H インプットキャプチャ 0 IPCP0 R 003522H インプットキャプチャ 1 IPCP1 R インプットキャプ XXXXXXXXB チャ 0/1 XXXXXXXXB 003523H インプットキャプチャ 1 IPCP1 R XXXXXXXXB 003524H インプットキャプチャ 2 IPCP2 R XXXXXXXXB 003525H インプットキャプチャ 2 IPCP2 R 003526H インプットキャプチャ 3 IPCP3 R インプットキャプ XXXXXXXXB チャ 2/3 XXXXXXXXB 003527H インプットキャプチャ 3 IPCP3 R XXXXXXXXB 003528H インプットキャプチャ 4 IPCP4 R XXXXXXXXB 003529H インプットキャプチャ 4 IPCP4 R 00352AH インプットキャプチャ 5 IPCP5 R インプットキャプ XXXXXXXXB チャ 4/5 XXXXXXXXB 00352BH インプットキャプチャ 5 IPCP5 R XXXXXXXXB 00352CH タイマデータ 0 TCDT0 R/W 00352DH タイマデータ 0 TCDT0 R/W 00352EH タイマ制御 0 TCCS0 R/W 00352FH タイマ制御 0 TCCS0 R/W 0XXXXXXXB 003530H アウトプットコンペア 0 OCCP0 R/W XXXXXXXXB 003531H アウトプットコンペア 0 OCCP0 R/W 003532H アウトプットコンペア 1 OCCP1 R/W アウトプットコン XXXXXXXXB ペア 0/1 XXXXXXXXB 003533H アウトプットコンペア 1 OCCP1 R/W XXXXXXXXB 003534H アウトプットコンペア 2 OCCP2 R/W XXXXXXXXB 003535H アウトプットコンペア 2 OCCP2 R/W 003536H アウトプットコンペア 3 OCCP3 R/W アウトプットコン XXXXXXXXB ペア 2/3 XXXXXXXXB 003537H アウトプットコンペア 3 OCCP3 R/W XXXXXXXXB 003538H ~ 00353BH タイマデータ 1 TCDT1 R/W 00353DH タイマデータ 1 TCDT1 R/W 00353EH タイマ制御 1 TCCS1 R/W 00353FH タイマ制御 1 TCCS1 R/W 003540H タイマ 0/ リロード 0 TMR0/ TMRLR0 R/W 003541H タイマ 0/ リロード 0 TMR0/ TMRLR0 R/W 003542H ~ 00356DH 00356F ~ 00359FH I/O タイマ 0 00000000B 00000000B 予約 00353CH 00356EH 00000000B 00000000B I/O タイマ 1 00000000B 00000000B 0XXXXXXXB 16 ビット リロードタイマ 0 XXXXXXXXB XXXXXXXXB 予約 CAN ダイレクト モードレジスタ CDMR R/W CAN クロック 同期 XXXXXXX0B 予約 557 付録 付表 A-2 I/O マップ (3XXX アドレス ) ( 3 / 4 ) アドレス レジスタ 2 略称 周辺 初期値 0035A0H I C バスステータス レジスタ IBSR R 00000000B 0035A1H I2C バス制御レジスタ IBCR R/W 00000000B 0035A2H I2C 10 ビットスレーブ アドレスレジスタ ITBAL R/W 00000000B ITBAH R/W 00000000B I2C 10 ビットアドレス マスクレジスタ ITMKL R/W ITMKH R/W 0035A3H 0035A4H 0035A5H I2C インタ フェース 11111111B 00111111B 0035A6H I2C 7 ビットスレーブ アドレスレジスタ ISBA R/W 00000000B 0035A7H I2C 7 ビットアドレス マスクレジスタ ISMK R/W 01111111B 0035A8H I2C データレジスタ IDAR R/W 00000000B 0035A9H ~ 0035AAH 0035ABH 予約 I2C クロック制御 レジスタ ICCR 0035ACH ~ 0035C1H 0035C2H R/W I2C インタ フェース 00011111B 予約 クロックモジュレータ 制御レジスタ CMCR 0035C3H ~ 0035C8H R/W 位相モジュレータ 0XXXXXXXB 予約 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 XXXX0000 0035CCH ~ 0035CEH 0035CFH 0035D0H ~ 0035DFH 558 アクセス 予約 PLL および特殊構成 制御レジスタ PSCCR W 予約 付録 A I/O マップ 付表 A-2 I/O マップ (3XXX アドレス ) ( 4 / 4 ) アドレス レジスタ 略称 アクセス 周辺 初期値 0035E0H プログラムアドレス 検出レジスタ 0 PADR0 R/W XXXXXXXXB 0035E1H プログラムアドレス 検出レジスタ 0 PADR0 R/W XXXXXXXXB 0035E2H プログラムアドレス 検出レジスタ 0 PADR0 R/W XXXXXXXXB 0035E3H プログラムアドレス 検出レジスタ 1 PADR1 R/W アドレス一致検出 XXXXXXXX B 機能 0035E4H プログラムアドレス 検出レジスタ 1 PADR1 R/W XXXXXXXXB 0035E5H プログラムアドレス 検出レジスタ 1 PADR1 R/W XXXXXXXXB 0035E6H プログラムアドレス 検出レジスタ 2 PADR2 R/W XXXXXXXXB 0035E7H プログラムアドレス 検出レジスタ 2 PADR2 R/W 0035E8H プログラムアドレス 検出レジスタ 2 PADR2 R/W 0035E9H ~ 0037FFH アドレス一致検出 機能 XXXXXXXXB XXXXXXXXB 予約 003800H ~ 0038FFH CAN インタフェース 1 で予約。CAN コントローラの章を参照してください。 003900H ~ 0039FFH CAN インタフェース 1 で予約。CAN コントローラの章を参照してください。 003A00 ~ 003FFFH 予約 • "X" は値が不定であることを示します。 • 0000H ~ 00FFH と 3500H ~ 3FFFH の範囲のアドレスは , MCU の主要機能のために 予約されています。これらの予約済みアドレスへのリードアクセスの結果は "X" に なり , ライトアクセスは禁止です。 ○書込み / 読込みについての説明 R/W: リード / ライト可能 R: リードオンリ W: ライトオンリ ○初期値についての説明 0: このビットの初期値は "0" です。 1: このビットの初期値は "1" です。 X: このビットの初期値は不定です。 559 付録 付録 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 560 付録 B 命令 B.1 命令の種類 F2MC-16LX には , 以下に示す 351 種類の命令があります。 ■ 命令の種類 • 転送系命令 ( バイト ) 41 命令 • 転送系命令 ( ワード , ロングワード ) 38 命令 • 加減算命令 ( バイト , ワード , ロングワード ) 42 命令 • 増減算命令 ( バイト , ワード , ロングワード ) 12 命令 • 比較命令 ( バイト , ワード , ロングワード ) 11 命令 • 符号なし乗除算命令 ( ワード , ロングワード ) 11 命令 • 符号付き乗除算命令 ( ワード , ロングワード ) 11 命令 • 論理演算命令 ( バイト , ワード ) 39 命令 • 論理演算命令 ( ロングワード ) 6 命令 • 符号反転命令 ( バイト , ワード ) 6 命令 • ノーマライズ命令 ( ロングワード ) 1 命令 • シフト命令 ( バイト , ワード , ロングワード ) 18 命令 • 分岐命令 50 命令 ( 分岐命令 1: 31 命令 , 分岐命令 2: 19 命令 ) • アキュムレータ操作命令 ( バイト , ワード ) 6 命令 • その他制御命令 ( バイト , ワード , ロングワード ) 28 命令 • ビット操作命令 21 命令 • ストリング命令 10 命令 561 付録 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) 562 付録 B 命令 ■ 実効アドレスフィールド 実効アドレスフィールドで指定される , アドレス形式を表 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 レジスタ間接 0A @RW2 0B @RW3 SPB 0C @RW0+ DTB 0D @RW1+ 0E @RW2+ 0F @RW3+ SPB 10 @RW0+disp8 DTB 11 @RW1+disp8 DTB 12 @RW2+disp8 ADB 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 DTB 16 @RW6+disp8 ADB 17 @RW7+disp8 SPB 18 @RW0+disp16 DTB 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C @RW0+RW7 インデックス付レジスタ間接 DTB 1D @RW1+RW7 インデックス付レジスタ間接 DTB 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 PCB 1F addr16 直接アドレス DTB ポストインクリメント付 レジスタ間接 8 ビットディスプレースメント付 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 ADB DTB ADB SPB DTB DTB ADB SPB 563 付録 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 レジスタ直接 汎用レジスタ 専用レジスタ *: 564 バイト 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) は命令のオペランドには 記述されることなく指定されます。 付録 B 命令 図 B.3-2 に例を示します。 図 B.3-2 レジスタ直接例 MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 ) 実行前 A 0716 2534 メモリ空間 R0 実行後 A 0716 2564 ?? メモリ空間 R0 34 ● 直接分岐アドレス (addr16) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ~ bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 B.3-3 に例を示 します。 図 B.3-3 直接分岐アドレス (addr16) 例 JMP 3B20H ( バンク内で直接分岐アドレス指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F 4F3C20H 62 4F3C21H 20 4F3C22H 3B JMP 3B20H 565 付録 ● 物理直接分岐アドレス (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 に格納する命令 ) 実行前 実行後 566 A 0716 2534 A 2534 FFEE メモリ空間 0000C0H EE 0000C1H FF 付録 B 命令 ● 短縮直接アドレス (dir) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ~ bit8 はダイレクトページレジスタ (DPR) により指定されます。 アドレスの bit23 ~ bit16 はデータバンクレジスタ (DTB) により指定されます。図 B.3-6 に例を示します。 図 B.3-6 短縮直接アドレス (dir) 例 MOV S : 20H, A (A の下位 8 ビットの内容を短縮直接アドレス指定方式で書き込む命令 ) A 4455 実行前 DPR 6 6 DTB 7 7 A 4455 実行後 DPR 6 6 1212 メモリ空間 776620H 1212 DTB 7 7 ?? メモリ空間 776620H 12 ● 直接アドレス (addr16) オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ~ bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 B.3-7 に例を示 します。 図 B.3-7 直接アドレス (addr16) 例 MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 ) 実行前 実行後 A 2020 A AABB AABB 0123 DTB 5 5 メモリ空間 553B21H 01 553B20H 23 DTB 5 5 567 付録 ● 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 メモリ空間 実行後 568 DTB 5 5 DPR 6 6 556610H 01 付録 B 命令 ● 直接ビットアドレス (addr16: bp) 64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ~ bit16 はデー タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。 図 B.3-10 直接ビットアドレス (addr16: bp) 例 SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 DTB 5 5 実行前 552222H 00 メモリ空間 DTB 5 5 実行後 01 552222H ● ベクタアドレス (#vct) 分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には 4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込 み命令に使用します。図 B.3-11 に例を示します。 図 B.3-11 ベクタアドレス (#vct) 例 CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PC 0 0 0 0 PCB F F 実行後 メモリ空間 FFC000H EF FFFFE0H 00 FFFFE1H D0 CALLV #15 PC D 0 0 0 PCB F F 569 付録 表 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 を参照 してください ) 570 付録 B 命令 B.4 間接アドレッシング 間接アドレッシングでは , 記述したオペランドが示すアドレスのデータで , 間接的に アドレスを指定します。 ■ 間接アドレッシング ● レジスタ間接 (@RWj j=0 ~ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。アドレスの bit23 ~ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタックバンクレジスタ (SSB) またはユーザ スタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンク レジスタ (ADB) で示されます。図 B.4-1 に例を示します。 図 B.4-1 レジスタ間接 (@RWj j=0 ~ 3) 例 MOVW A, @RW1 ( レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 0 F DTB 7 8 ● ポストインクリメント付レジスタ間接 (@RWj+ j=0 ~ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。オペランド操作後RWjはオペランドデータ長 (バイトの場合は1, ワードの場合は2, ロングワードの場合は 4) 分だけ加算されます。アドレスの bit23 ~ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタッ クバンクレジスタ (SSB) またはユーザスタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンクレジスタ (ADB) で示されます。 ポストインクリメントした結果がインクリメント指定したレジスタ自身のアドレス だった場合は , 参照される値はインクリメントした値となり , 命令が書込みだった場合 は命令による書込みが優先されるので , インクリメントするはずだったレジスタは書 込みデータとなります。 図 B.4-2 に例を示します。 571 付録 図 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 実行後 A 2534 FFEE RW1 D 3 0 F 572 DTB 7 8 DTB 7 8 メモリ空間 78D31FH EE 78D320H FF 付録 B 命令 ● ディスプレースメント付ロングレジスタ間接 (RLi+disp8 i=0 ~ 3) 汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットをア ドレスとしたメモリをアクセスするアドレッシングです。ディスプレースメントは 8 ビットで符号付数値として加算されます。図 B.4-4 に例を示します。 図 B.4-4 ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ~ 3) 例 MOVW A, @RL2+25H (ディスプレースメント付ロングレジスタ間接で読出しを行い, Aに格納する命令) A 0716 実行前 2534 (+25H) RL2 F 3 8 2 4B02 メモリ空間 824B27H EE 824B28H FF A 2534 FFEE 実行後 RL2 F 3 8 2 4B02 ● ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) (命令のアドレス+4+disp16) で示されるアドレスのメモリをアクセスするアドレッシン グです。ディスプレースメントはワード長です。アドレスの bit23 ~ bit16 はプログラ ムカウンタバンクレジスタ (PCB) により指定されます。次に示す命令のオペランドア ドレスは , ( 次の命令のアドレス +disp16) とは , みなしませんので注意してください。 • DBNZ eam, rel • CBNE eam, #imm8, rel • MOV eam, #imm8 • DWBNZ eam, rel • CWBNE eam, #imm16, rel • MOVW eam, #imm16 図 B.4-5 に例を示します。 図 B.4-5 ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) 例 MOVW A, @PC+20H ( ディスプレースメント付 PC 間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 PCB C 5 PC 4 5 5 6 実行後 A 2534 FFEE PCB C 5 PC 4 5 5 A +4 C54556H 73 C54557H 9E C54558H 20 C54559H 00 MOVW A, @PC+20H C5455AH ・ ・ ・ +20H C5457AH EE C5457BH FF 573 付録 ● ベースインデックス付レジスタ間接 (@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 次の命令 実行後 574 PC 3 C 2 0 PCB 4 F 4F3C21H 10 4F3C20H 60 BRA 10H 付録 B 命令 ● レジスタリスト (rlst) スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 B.4-8 にレ ジスタリストの構成 , 図 B.4-9 に例を示します。 図 B.4-8 レジスタリストの構成 MSB LSB RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0 対応ビットが "1" の場合に設定 , "0" の場合に非設定 MSB: 最上位ビット LSB: 最下位ビット 図 B.4-9 レジスタリスト (rlst) 例 POPW, RW0, RW4 ( レジスタリストで示された複数のワードレジスタに , SP で示されるメモリの データを転送する命令 ) SP 3 4 F A SP 3 4 F E RW0 ×× ×× RW0 02 01 RW1 ×× ×× RW1 ×× ×× RW2 ×× ×× RW2 ×× ×× RW3 ×× ×× RW3 ×× ×× RW4 ×× ×× RW4 04 03 RW5 ×× ×× RW5 ×× ×× RW6 ×× ×× RW6 ×× ×× RW7 ×× ×× RW7 ×× ×× メモリ空間 SP 01 メモリ空間 34FAH 01 34FAH 02 34FBH 02 34FBH 03 34FCH 03 34FCH 04 34FDH 04 34FDH 34FEH 実行前 SP 34FEH 実行後 575 付録 ● アキュムレータ間接 (@A) アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを アクセスするアドレス方式です。アドレスの bit23 ~ bit16 はデータバンクレジスタ (DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。 図 B.4-10 アキュムレータ間接 (@A) 例 MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 ) A 実行前 0716 2534 DTB B B A 実行後 0716 メモリ空間 BB2534H EE BB2535H FF FFEE DTB B B ● アキュムレータ間接分岐アドレス (@A) 分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま す。バンク空間内での分岐先を示し , アドレスの bit23 ~ bit16 はプログラムカウンタ バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド レスの bit23 ~ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ 間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11 に例を示します。 図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例 JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 A 6677 PCB 4 F 3B20 メモリ空間 4F3B20H 次の命令 4F3C20H 実行後 PC 3 B 2 0 A 6677 576 PCB 4 F 3B20 61 JMP @A 付録 B 命令 ● 間接指定分岐アドレス (@ear) ear で示される番地のワードデータが分岐先アドレスとなります。図 B.4-12 に例を示し ます。 図 B.4-12 間接指定分岐アドレス (@ear) 例 JMP @@RW0 ( レジスタ間接の間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 メモリ空間 217F48H 20 217F49H 3B 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 4F3C20H 73 4F3C21H 08 JMP @@RW0 ● 間接指定分岐アドレス (@eam) eam で示される番地のワードデータが分岐先アドレスとなります。図 B.4-13 に例を示 します。 図 B.4-13 間接指定分岐アドレス (@eam) 例 JMP @RW0 ( レジスタ間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 3 B 2 0 実行後 PC 3 B 2 0 メモリ空間 4F3B20H 次の命令 PCB 4 F 4F3C20H 73 4F3C21H 00 JMP @RW0 RW0 3 B 2 0 577 付録 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 命令一覧表の読み方」を参照 してください。 578 付録 B 命令 表 B.5-2 実サイクル数算出用サイクル数の補正値 (b) バイト *1 オペランド (c) ワード *1 (d) ロング *1 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 内部レジスタ +0 1 +0 1 +0 2 内部メモリ 偶数アドレス +0 1 +0 1 +0 2 内部メモリ 奇数アドレス +0 1 +2 2 +4 4 外部データバス *2 16 ビット偶数アドレス +1 1 +1 1 +2 2 外部データバス *2 16 ビット奇数アドレス +1 1 +4 2 +8 4 外部データバス *2 8 ビット +1 1 +4 2 +8 4 *1: (b), (c), (d) は「B.8 F2MC-16LX 命令一覧表」の~ ( サイクル数 ) , B ( 補正値 ) で使用され ています。 *2: 外部データバスを使用した場合は , レディ入力および自動レディによりウェイトしたサ イクル数も加算する必要があります。 表 B.5-3 プログラムフェッチサイクル数算出用サイクル数の補正値 命令 バイト境界 ワード境界 内部メモリ - +2 外部データバス 16 ビット - +3 外部データバス 8 ビット +3 - ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 579 付録 B.6 実効アドレスフィールド 表 B.6-1 に実効アドレスフィールドを示します。 ■ 実効アドレスフィールド 表 B.6-1 実効アドレスフィールド (1 / 2) コード 580 表記 アドレス形式 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 付録 B 命令 表 B.6-1 実効アドレスフィールド (1 / 2) コード *: 表記 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 命令一覧表の読み方」を参照してください。 581 付録 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 582 リードモディファイライト命令 (1 命令でメモリなどからデータを読 み出し , メモリへ書き込む ) であるかどうか示します。 *: リードモディファイライト命令である。 - : リードモディファイライト命令ではない。 ( 注意事項 ) 読み書きで意味の異なるアドレスには使用できません。 付録 B 命令 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 A 意味 32 ビットアキュムレータ 命令により , 使用されるビット長が変わります。 バイト : AL の下位 8 ビット ワード : AL の 16 ビット ロング : AL: AH の 32 ビット AH A の上位 16 ビット AL A の下位 16 ビット SP スタックポインタ (USP or SSP) PC プログラムカウンタ PCB プログラムカウンタバンクレジスタ DTB データバンクレジスタ ADB アディショナルデータバンクレジスタ SSB システムスタックバンクレジスタ USB ユーザスタックバンクレジスタ SPB カレントスタックバンクレジスタ (SSB or USB) DPR ダイレクトページレジスタ brg1 DTB, ADB, SSB, USB, DPR, PCB, SPB brg2 DTB, ADB, SSB, USB, DPR, SPB Ri R0, R1, R2, R3, R4, R5, R6, R7 RWi RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 RWj RW0, RW1, RW2, RW3 RLi RL0, RL1, RL2, RL3 dir 短縮直接アドレス指定 addr16 直接アドレス指定 addr24 物理直接アドレス指定 ad24 0 ~ 15 addr24 の bit0 ~ bit15 ad24 16 ~ 23 addr24 の bit16 ~ bit23 io I/O 領域 (000000H ~ 0000FFH) #imm4 4 ビット即値データ #imm8 8 ビット即値データ #imm16 16 ビット即値データ #imm32 32 ビット即値データ ext (imm8) 8 ビット即値データを符号拡張した 16 ビットデータ 583 付録 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 584 意味 disp8 8 ビットディスプレースメント disp16 16 ビットディスプレースメント bp ビットオフセット値 vct4 ベクタ番号 (0 ~ 15) vct8 ベクタ番号 (0 ~ 255) ()b ビットアドレス rel PC 相対分岐指定 ear 実効アドレス指定 ( コード 00 ~ 07) eam 実効アドレス指定 ( コード 08 ~ 1F) rlst レジスタ並び 付録 B 命令 B.8 F2MC-16LX 命令一覧表 F2MC-16LX で使用している命令の一覧を示します。 ■ F2MC-16LX 命令一覧表 表 B.8-1 転送系命令 ( バイト ) 41 命令 # ~ RG B LH AH I S T N Z V C RMW 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) - - - - - * * - - - MOV io,A 2 3 0 (b) byte (io) ← (A) - - - - - * * - - - MOV @RLi+disp8,A 3 10 2 (b) byte ((RLi)+disp8) ← (A) - - - - - * * - - - MOV Ri,ear 2 3 2 0 byte (Ri) ← (ear) - - - - - * * - - - MOV Ri,eam 2+ 4 + (a) 1 (b) byte (Ri) ← (eam) - - - - - * * - - - MOV ear,Ri 2 4 2 0 byte (ear) ← (Ri) - - - - - * * - - - MOV eam,Ri 2+ 5 + (a) 1 (b) byte (eam) ← (Ri) - - - - - * * - - - MOV Ri,#imm8 2 2 1 0 byte (Ri) ← imm8 - - - - - * * - - - MOV io,#imm8 3 5 0 (b) byte (io) ← imm8 - - - - - - - - - - MOV dir,#imm8 3 5 0 (b) byte (dir) ← imm8 - - - - - - - - - - MOV ear,#imm8 3 2 1 0 byte (ear) ← imm8 - - - - - * * - - - MOV eam,#imm8 3+ 4 + (a) 0 (b) byte (eam) ← imm8 - - - - - - - - - - MOV @AL,AH 2 3 0 (b) byte ((A)) ← (AH) - - - - - * * - - - XCH A,ear 2 4 2 0 byte (A) ←→ (ear) Z - - - - - - - - - XCH A,eam 2+ 5 + (a) 0 Z - - - - - - - - - XCH Ri,ear 2 7 4 - - - - - - - - - - XCH Ri,eam 2+ 9 + (a) 2 - - - - - - - - - - 2 × (b) byte (A) ←→ (eam) 0 byte (Ri) ←→ (ear) 2 × (b) byte (Ri) ←→ (eam) ( 注意事項 ) 表中の (a), (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 585 付録 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW MOVW A,dir 2 3 0 (c) MOVW A,addr16 3 4 0 (c) word (A) ← (dir) - * - - - * * - - - 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) MOVW A,#imm16 3 2 0 0 MOVW A,@RWi+disp8 2 5 1 (c) word (A) ← ((A)) - - - - - * * - - - word (A) ← imm16 - * - - - * * - - - 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) - - - - - * * - - - word (RWi) ← imm16 - - - - - * * - - - word (io) ← imm16 - - - - - - - - - - - - - - * * - - - MOVW RWi,#imm16 3 2 1 0 MOVW io,#imm16 4 5 0 (c) 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 を参照してください。 586 付録 B 命令 表 B.8-3 加減算命令 ( バイト・ワード・ロングワード ) 42 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW ADD A,#imm8 2 2 0 0 byte (A) ← (A) + imm8 Z - - - - * * * * - ADD A,dir 2 5 0 (b) byte (A) ← (A) + (dir) Z - - - - * * * * - ADD A,ear 2 3 1 0 byte (A) ← (A) + (ear) Z - - - - * * * * - ADD A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam) Z - - - - * * * * - byte (ear) ← (ear) + (A) - - - - - * * * * - byte (eam) ← (eam) + (A) Z - - - - * * * * * ADD ear,A 2 3 2 0 ADD eam,A 2+ 5 + (a) 0 2 × (b) 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 - - - - * * * * - 1 3 0 0 byte (A) ← (AH) + (AL) + (C) (10 進数 ) Z - - - - * * * * - ADDDC A 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) - - - - - * * * * * word (A) ← (A) + (ear) + (C) - - - - - * * * * - ADDW ear,A 2 3 2 0 ADDW eam,A 2+ 5+(a) 0 2 × (c) ADDCW A,ear 2 3 1 0 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 - - - - - * * * * - SUBW ear,A 2 3 2 0 word (ear) ← (ear) - (A) - - - - - * * * * - SUBW eam,A 2+ 5+(a) 0 2 × (c) word (eam) ← (eam) - (A) - - - - - * * * * * 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 を参照してください。 587 付録 表 B.8-4 増減算命令 ( バイト・ワード・ロングワード ) 12 命令 ニーモニック # ~ RG B LH AH I S T N Z V C RMW byte (ear) <-- (ear) + 1 - - - - - * * * - - byte (eam) ← (eam) + 1 - - - - - * * * - * オペレーション INC ear 2 3 2 0 INC eam 2+ 5+(a) 0 2 × (b) DEC ear 2 3 2 0 byte (ear) ← (ear) - 1 - - - - - * * * - - DEC eam 2+ 5+(a) 0 2 × (b) 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 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) ( 注意事項 ) 表中の (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 を参照してください。 588 - 付録 B 命令 表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ~ RG B LH AH I S T N Z V C RMW DIVU A 1 *1 0 0 word (AH) / byte (AL) 商→ byte (AL) 余り→ byte (AH) - - - - - - - * * - DIVU A,ear 2 *2 1 0 word (A) / byte (ear) 商→ byte (A) 余り→ byte (ear) - - - - - - - * * - DIVU A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) - - - - - - - * * - DIVUW A,ear 2 *4 1 0 long (A) / word (ear) 商→ word (A) 余り→ word (ear) - - - - - - - * * - DIVUW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MULU MULU A 1 *8 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - A,ear 2 *9 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MULU MULUW A,eam 2+ *10 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - 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 を参照してください。 589 付録 表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ~ RG B LH AH I S T N Z V C RMW DIV A 2 *1 0 0 word (AH) / byte (AL) 商 --> byte (AL) 余り→ byte (AH) Z - - - - - - * * - DIV A,ear 2 *2 1 0 word (A) / byte (ear) 商 --> byte (A) 余り→ byte (ear) Z - - - - - - * * - DIV A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) Z - - - - - - * * - DIVW A,ear 2 *4 1 0 long (A) / word (ear) 商 --> word (A) 余り→ word (ear) - - - - - - - * * - DIVW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MUL MUL A 2 *8 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - A,ear 2 *9 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MUL A,eam 2+ *10 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - MULW A 2 *11 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - - MULW A,ear 2 *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - MULW A,eam 2+ *13 0 (c) word (A) * word (eam) → Long (A) - - - - - - - - - - オペレーション *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 8 or 18 正常の場合 , 18 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 11 or 22 正常の場合 , 23 *3:ゼロディバイトの場合 , 5+(a) オーバフローの場合 12+(a) or 23+(a) 正常の場合 , 24+(a) *4:被除数が正 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 30 正常の場合 , 31 被除数が負 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 31 正常の場合 , 32 *5:被除数が正 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 12+(a) or 31+(a) 正常の場合 , 32+(a) 被除数が負 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 13+(a) or 32+(a) 正常の場合 , 33+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 結果が正の場合 , 12 結果が負の場合 , 13 *9:byte(ear) がゼロの場合 , 4 結果が正の場合 , 13 結果が負の場合 , 14 *10:byte(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 14+(a) 結果が負の場合 , 15+(a) *11:word(AH) がゼロの場合 , 3 結果が正の場合 , 16 結果が負の場合 , 19 *12:word(ear) がゼロの場合 , 4 結果が正の場合 , 17 結果が負の場合 , 20 *13:word(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 18+(a) 結果が負の場合 , 21+(a) ( 注意事項 ) ・ DIV, DIVW 命令でオーバフロー発生時の実行サイクル数に 2 種類ありますが , 演算前と演算後に検出する場合が あるためです。 DIV, DIVW 命令でオーバフロー発生時には , AL の内容は破壊されます。 ・ 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 590 付録 B 命令 表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令 ニーモニック # ~ RG B AND A,#imm8 2 2 0 0 AND A,ear 2 3 1 0 LH AH I S T N Z V C RMW byte (A) ← (A) and imm8 - - - - - * * R - - byte (A) ← (A) and (ear) - - - - - * * R - - オペレーション AND A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) and (eam) - - - - - * * R - - AND ear,A 2 3 2 0 byte (ear) ← (ear) and (A) - - - - - * * R - - AND eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) and (A) - - - - - * * R - * OR A,#imm8 2 2 0 0 byte (A) ← (A) or imm8 - - - - - * * R - - OR A,ear 2 3 1 0 byte (A) ← (A) or (ear) - - - - - * * R - - OR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) or (eam) - - - - - * * R - - OR ear,A 2 3 2 0 byte (ear) ← (ear) or (A) - - - - - * * R - - OR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) or (A) - - - - - * * R - * XOR A,#imm8 2 2 0 0 byte (A) ← (A) xor imm8 - - - - - * * R - - XOR A,ear 2 3 1 0 byte (A) ← (A) xor (ear) - - - - - * * R - - XOR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) xor (eam) - - - - - * * R - - XOR ear,A 2 3 2 0 byte (ear) ← (ear) xor (A) - - - - - * * R - - XOR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) xor (A) - - - - - * * R - * NOT A 1 2 0 0 byte (A) ← not (A) - - - - - * * R - - NOT ear 2 3 2 0 byte (ear) ← not (ear) - - - - - * * R - - NOT eam 2+ 5+(a) 0 2 × (b) byte (eam) ← not (eam) - - - - - * * R - * ANDW A 1 2 0 0 word (A) ← (AH) and (A) - - - - - * * R - - ANDW A,#imm16 3 2 0 0 word (A) ← (A) and imm16 - - - - - * * R - - ANDW A,ear 2 3 1 0 word (A) ← (A) and (ear) - - - - - * * R - - ANDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) and (eam) - - - - - * * R - - ANDW ear,A 2 3 2 0 word (ear) ← (ear) and (A) - - - - - * * R - - ANDW eam,A 2+ 5+(a) 0 2 × (c) word (eam) ← (eam) and (A) - - - - - * * R - * ORW A 1 2 0 0 word (A) ← (AH) or (A) - - - - - * * R - - ORW A,#imm16 3 2 0 0 word (A) ← (A) or imm16 - - - - - * * R - - ORW A,ear 2 3 1 0 word (A) ← (A) or (ear) - - - - - * * R - - ORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) or (eam) - - - - - * * R - - ORW ear,A 2 3 2 0 ORW eam,A 2+ 5+(a) 0 2 × (c) word (ear) ← (ear) or (A) - - - - - * * R - - word (eam) ← (eam) or (A) - - - - - * * R - * XORW A 1 2 0 0 word (A) ← (AH) xor (A) - - - - - * * R - - XORW A,#imm16 3 2 0 XORW A,ear 2 3 1 0 word (A) ← (A) xor imm16 - - - - - * * R - - 0 word (A) ← (A) xor (ear) - - - - - * * R - XORW A,eam 2+ 4+(a) 0 - (c) word (A) ← (A) xor (eam) - - - - - * * R - - XORW ear,A 2 3 2 0 word (ear) ← (ear) xor (A) XORW eam,A 2+ - - - - - * * R - - 5+(a) 0 2 × (c) word (eam) ← (eam) xor (A) - - - - - * * R - * NOTW A NOTW ear 1 2 0 0 word (A) ← not (A) - - - - - * * R - - 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 を参照してください。 591 付録 表 B.8-9 論理 2 演算命令 ( ロングワード ) 6 命令 # ~ RG B ANDL A,ear 2 6 2 0 ANDL A,eam 2+ 7+(a) 0 (d) ニーモニック LH AH I S T N Z V C RMW long (A) ← (A) and (ear) - - - - - * * R - - long (A) ← (A) and (eam) - - - - - * * R - - オペレーション ORL A,ear 2 6 2 0 long (A) ← (A) or (ear) - - - - - * * R - - ORL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) or (eam) - - - - - * * R - - long (A) ← (A) xor (ear) - - - - - * * R - - long (A) ← (A) xor (eam) - - - - - * * R - - LH AH I S T N Z V C RMW XORL A,ear 2 6 2 0 XORL A,eam 2+ 7+(a) 0 (d) ( 注意事項 ) 表中の (a), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-10 符号反転命令 ( バイト・ワード ) 6 命令 ニーモニック NEG A # ~ RG B 1 2 0 0 byte (A) ← 0 - (A) X - - - - * * * * byte (ear) ← 0 - (ear) - - - - - * * * * - - - - - * * * * * - オペレーション - 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) - - - - - * * * * word (ear) ← 0 - (ear) - - - - - * * * * - word (eam) ← 0 - (eam) - - - - - * * * * * NEGW ear 2 3 2 0 NEGW eam 2+ 5+(a) 0 2 × (c) ( 注意事項 ) 表中の (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) 592 - 付録 B 命令 表 B.8-12 シフト命令 ( バイト・ワード・ロングワード ) 18 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW RORC A 2 2 0 0 byte (A) ← 右ローテートキャリー付 - - - - - * * - * - ROLC A 2 2 0 0 byte (A) ← 左ローテートキャリー付 - - - - - * * - * - 0 byte (ear) ← 右ローテートキャリー付 - - - - - * * - * - - - - - - * * - * * - - - - - * * - * - - - - - - * * - * * RORC ear 2 3 2 RORC eam 2+ 5+(a) 0 ROLC ear 2 3 2 ROLC eam 2+ 5+(a) 0 ASR A,R0 2 *1 1 0 byte (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - LSR A,R0 2 *1 1 0 byte (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - LSL A,R0 2 *1 1 0 byte (A) ← ロジカル左バレルシフト (A,R0) - - - - - * * - * - ASRW A 1 2 0 0 word (A) ← 算術右シフト (A,1 ビット ) - - - - * * * - * - LSRW A/SHRW A 1 2 0 0 word (A) ← ロジカル右シフト (A,1 ビット ) - - - - * R * - * - LSLW A/SHLW A 1 2 0 0 word (A) ← ロジカル左シフト (A,1 ビット ) - - - - - * * - * - ASRW A,R0 2 *1 1 0 word (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - 2 × (b) byte (eam) ← 右ローテートキャリー付 0 byte (ear) ← 左ローテートキャリー付 2 × (b) byte (eam) ← 左ローテートキャリー付 LSRW A,R0 2 *1 1 0 word (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - LSLW A,R0 2 *1 1 0 word (A) ←ロジカル左バレルシフト (A,R0) - - - - - * * - * - ASRL A,R0 2 *2 1 0 long (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - LSRL A,R0 2 *2 1 0 long (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - LSLL A,R0 2 *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 を参照してください。 593 付録 表 B.8-13 分岐命令 1 31 命令 # ニーモニック ~ RG B オペレーション LH AH I S T N Z V C RMW BZ/BEQ rel 2 *1 0 0 (Z) = 1 の場合分岐 - - - - - - - - - - BNZ/BNE rel 2 *1 0 0 (Z) = 0 の場合分岐 - - - - - - - - - - BC/BLO rel 2 *1 0 0 (C) = 1 の場合分岐 - - - - - - - - - - BNC/BHS rel 2 *1 0 0 (C) = 0 の場合分岐 - - - - - - - - - - BN rel 2 *1 0 0 (N) = 1 の場合分岐 - - - - - - - - - BP rel 2 *1 0 0 (N) = 0 の場合分岐 - - - - - - - - - - BV rel 2 *1 0 0 (V) = 1 の場合分岐 - - - - - - - - - - BNV rel 2 *1 0 0 (V) = 0 の場合分岐 - - - - - - - - - - BT rel 2 *1 0 0 (T) = 1 の場合分岐 - - - - - - - - - - BNT rel 2 *1 0 0 (T) = 0 の場合分岐 - - - - - - - - - - BLT rel 2 *1 0 0 (V) xor (N) = 1 の場合分岐 - - - - - - - - - - BGE rel 2 *1 0 0 (V) xor (N) = 0 の場合分岐 - - - - - - - - - - BLE rel 2 *1 0 0 ((V) xor (N)) or (Z) = 1 の場合分岐 - - - - - - - - - - BGT rel 2 *1 0 0 ((V) xor (N)) or (Z) = 0 の場合分岐 - - - - - - - - - - BLS rel 2 *1 0 0 (C) or (Z) = 1 の場合分岐 - - - - - - - - - - BHI rel 2 *1 0 0 (C) or (Z) = 0 の場合分岐 - - - - - - - - - - BRA rel 2 *1 0 0 無条件分岐 - - - - - - - - - - JMP @A 1 2 0 0 word (PC) ← (A) - - - - - - - - - - JMP addr16 3 3 0 0 word (PC) ← addr16 - - - - - - - - - - JMP @ear 2 3 1 0 word (PC) ← (ear) - - - - - - - - - - JMP @eam 2+ 4+(a) 0 (c) word (PC) ← (eam) - - - - - - - - - - JMPP @ear 注 1) 2 5 2 0 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - JMPP @eam 注 1) 2+ 6+(a) 0 (d) word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (PC) ← (ear) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JMPP addr24 4 4 0 0 CALL @ear 注 2) 2 6 1 (c) CALL @eam 2 × (c) word (PC) ← (eam) 注 2) 2+ 7+(a) 0 CALL addr16 注 3) 3 6 0 CALLV #vct4 注 3) 1 7 0 2 × (c) ベクタコール命令 CALLP @ear 注 4) 2 10 2 2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23 11+(a) 0 10 0 CALLP @eam 注 4) 2+ CALLP addr24 注 5) 4 (c) *2 word (PC) ← addr16 word (PC) ← (eam)0-15, (PCB) ← (eam)16-23 2 × (c) word (PC) ← addr0-15, (PCB) ← addr16-23 *1:分岐が行われる場合 , 4 行われない場合 , 3 *2:3 × (c)+(b) 注 1) 分岐先アドレスの読込み (word) 注 2) W:スタックへの退避 (word), R:分岐先アドレスの読込み (word) 注 3) スタックへの退避 (word) 注 4) W:スタックへの退避 (long), R:分岐先アドレスの読込み (long) 注 5) スタックへの退避 (long) ( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 594 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 付録 B 命令 表 B.8-14 分岐命令 2 19 命令 ニーモニック # ~ RG B CBNE A,#imm8,rel 3 *1 0 0 CWBNE A,#imm16,rel 4 *1 0 0 CBNE LH AH byte (A) ≠ imm8 で分岐 - - - - - * * * * - word (A) ≠ imm16 で分岐 - - - - - * * * * - オペレーション I S T N Z V C RMW ear,#imm8,rel 4 *2 1 0 byte (ear) ≠ imm8 で分岐 - - - - - * * * * - CBNE eam,#imm8,rel 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - - - - - - * * * - * CWBNE DBNZ ear,rel 3 *5 2 DBNZ eam,rel 3+ *6 2 0 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 DWBNZ ear,rel 3 *5 2 - - - - - * * * - - DWBNZ eam,rel 3+ *6 2 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 - - - - - - 1 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - 1 *8 0 *7 割込みからの復帰 - - * * * * * * * - 2 6 0 (c) 関数の入口で , 旧フレームポインタをスタッ クに保存し , 新フレームポインタの設定 , お よびローカルポインタの領域を確保する - - - - - - - - - - 1 5 0 (c) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - INT9 RETI LINK #imm8 UNLINK RET RETP 0 word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 *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 を参照してください。 595 付録 表 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 JCTX @A 1 14 0 6 × (c) (rlst) ← ((SP)), (SP) ← (SP) + 2n - - - - - - - - - - コンテキストスイッチ命令 - - * * * * * * * 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 MOV ILM,#imm8 2 2 0 0 byte (RP) ← imm8 - - - - - - - - - - 0 0 byte (ILM) ← imm8 - - - - - - - - - - MOVEA RWi,ear 2 3 MOVEA RWi,eam 2+ 2+(a) 1 0 word (RWi) ← ear - - - - - - - - - - 1 0 word (RWi) ← eam - - - - - - - - - MOVEA A,ear 2 1 - 0 0 word (A) ← ear - * - - - - - - - - MOVEA A,eam 2+ ADDSP #imm8 2 1+(a) 0 0 word (A) ← eam - * - - - - - - - - 3 0 0 word (SP) ← (SP) + ext(imm8) - - - - - - - - - - ADDSP #imm16 3 3 0 0 word (SP) ← (SP) + imm16 - - - - - - - - - - MOV MOV A,brg1 2 *1 0 0 byte (A) ← (brg1) Z * - - - * * - - - 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 を参照してください。 596 付録 B 命令 表 B.8-16 ビット操作命令 21 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW MOVB A,dir:bp 3 5 0 (b) byte (A) ← (dir:bp)b Z * - - - * * - - - MOVB A,addr16:bp 4 5 0 (b) byte (A) ← (addr16:bp)b Z * - - - * * - - - MOVB A,io:bp 3 4 0 (b) byte (A) ← (io:bp)b Z * - - - * * - - - MOVB dir:bp,A 3 7 0 2 × (b) bit (dir:bp)b ← (A) - - - - - * * - - * MOVB addr16:bp,A 4 7 0 2 × (b) bit (addr16:bp)b ← (A) - - - - - * * - - * MOVB io:bp,A 3 6 0 2 × (b) bit (io:bp)b ← (A) - - - - - * * - - * SETB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 1 - - - - - - - - - * SETB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 1 - - - - - - - - - * SETB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 1 - - - - - - - - - * CLRB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 0 - - - - - - - - - * CLRB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 0 - - - - - - - - - * CLRB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 0 - - - - - - - - - * BBC dir:bp,rel 4 *1 0 (b) (dir:bp) b = 0 の場合分岐 - - - - - - * - - - BBC addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 0 の場合分岐 - - - - - - * - - - BBC io:bp,rel 4 *2 0 (b) (io:bp) b = 0 の場合分岐 - - - - - - * - - - BBS dir:bp,rel 4 *1 0 (b) (dir:bp) b = 1 の場合分岐 - - - - - - * - - - BBS addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 1 の場合分岐 - - - - - - * - - - BBS io:bp,rel 4 *2 0 (b) (io:bp) b = 1 の場合分岐 - - - - - - * - - - SBBS addr16:bp,rel 5 *3 0 - - - - - - * - - * WBTS io:bp 3 *4 0 *5 WBTC io:bp 3 *4 0 *5 2 × (b) (addr16:bp) b = 1 で分岐 , bit (addr16:bp) b ← 1 (io:bp) b = 1 になるまで待つ - - - - - - - - - - (io:bp) b = 0 になるまで待つ - - - - - - - - - - LH AH I S T N Z V C RMW *1:分岐が行われる場合 , 8 分岐が行われない場合 , 7 *2:分岐が行われる場合 , 7 分岐が行われない場合 , 6 *3:条件成立の場合 , 10 未成立の場合 , 9 *4:不定回数 *5:条件が成立するまで ( 注意事項 ) 表中の (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 # ~ RG B SWAP 1 3 0 0 byte (A)0-7 ←→ (A)8-15 - - - - - - - - - SWAPW 1 2 0 0 word (AH) ←→ (AL) - * - - - - - - - - EXT 1 1 0 0 byte 符号拡張 X - - - - * * - - - EXTW 1 2 0 0 word 符号拡張 - X - - - * * - - - ZEXT 1 1 0 0 byte ゼロ拡張 Z - - - - R * - - - ZEXTW 1 1 0 0 word ゼロ拡張 - Z - - - R * - - - ニーモニック オペレーション - 597 付録 表 B.8-18 ストリング命令 10 命令 ニーモニック # ~ RG B LH AH I S T N Z V C RMW byte 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - byte 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - オペレーション MOVS / MOVSI 2 *2 *5 *3 MOVSD 2 *2 *5 *3 SCEQ / SCEQI 2 *1 *8 *4 byte 検索 @AH+ ← AL, カウンタ = RW0 - - - - - * * * * - SCEQD 2 *1 *8 *4 byte 検索 @AH- ← AL, カウンタ = RW0 - - - - - * * * * - FILS / FILSI 2 6m+6 *8 *3 byte 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - MOVSW / MOVSWI 2 *2 *5 *6 word 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - MOVSWD 2 *2 *5 *6 word 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - SCWEQ / SCWEQI 2 *1 *8 *7 word 検索 @AH+ - AL, カウンタ = RW0 - - - - - * * * * SCWEQD 2 *1 *8 *7 word 検索 @AH- - AL, カウンタ = RW0 - - - - - * * * * - FILSW / FILSWI 2 6m+6 *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 を参照してください。 598 付録 B 命令 B.9 命令マップ F2MC-16LX の命令コードは , 1 ~ 2 バイトで構成されていますので , 命令マップは 複数のページで構成されています。 F2MC-16LX の命令マップを示します。 ■ 命令マップの構造 図 B.9-1 命令マップの構造 :第 1 バイト 基本ページマップ ビット操作系命令 文字列操作系命令 2 バイト系命令 ea 系命令× 9 :第 2 バイト 1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命 令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。 実際の命令コードと命令マップの対応を図 B.9-2 に示します。 599 付録 図 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 命令 600 A SWAP ADDSP ADB SPB #8 CMP A, #8 A, #8 dir, A A, dir io, A A, io JMP BRA 60 @A rel MULU DIVU ea 系命令 その 2 B0 C0 D0 E0 ea 系命令 その 8 ea 系命令 その 7 #4 rel rel BNT BT BNV BV BP BN rel rel rel rel rel BNC/BHS rel BC/BLO BNZ/BNE rel BZ/BEQ F0 +F +E +D +C +B LSRW ASRW LSLW NEGW A A A A XORW ORW ANDW ANDW PUSHW POPW A, #16 A A A A PUSHW POPW rlst rlst XORW PUSHW POPW A, #16 PS PS MOVW RWi, ea 2 バイト XCHW RWi, ea 系命令 文字列操 XCH Ri, ea 作系命令 MOVW ea, RWi ビット操 MOV ea, Ri 作系命令 CMPW MOVL MOVW RETI A, #16 A, #32 addr16, A ORW PUSHW POPW A A, #16 AH AH A A ADDSP MULUW NOTW #16 A SWAPW ZEXTW EXTW CMPL CMPW A, #32 BHI BLS BGT BLE BGE BLT rel rel rel rel rel rel A MOVW MOVW RETP A, SP io, #16 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 MOVW MOVX RET A SP, A A, addr16 A, #8 A0 ADDW MOVW MOVW INT MOVW MOVW MOV A, MOVW ea 系命令 MOVW A, #16 A, dir A, io #vct8 A, RWi RWi, A RWi, #16 @RWi+d8 @RWi+d8,A その 9 NOT XOR A, #8 90 rel SUBL SUBW A, #32 A A A OR OR CCR, #8 80 MOV MOV MOV MOVX A, MOV CALL ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 その 1 70 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV 50 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 MOV MOV MOV 40 MOV MOV CBNE A, CWBNE A, MOVW MOVW INTP MOV +A RP, #8 ILM, #8 #8, rel #16, rel A, #16 A,addr16 addr24 Ri, ea +9 UNLINK A A A, #8 A, #8 SUBC SUB ADD 30 AND AND MOV MOV CALL ea 系命令 CCR, #8 A, #8 dir, #8 io, #8 addr16 その 5 CMP A A, dir A, dir ADDC SUB ADD 20 LINK ADDL ADDW #imm8 A, #32 ZEXT DTB @A EXT JCTX PCB A SUBDC ADDDC NEG NCC INT9 A CMR NOP 10 SUBW MOVW MOVW INT MOVEA A, #16 dir, A io, A addr16 RWi, ea +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-2 基本ページマップ 601 602 +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.9-3 ビット操作系命令マップ ( 第 1 バイト =6CH) MOVSI MOVSD PCB, PCB PCB, DTB PCB, ADB PCB, SPB DTB, PCB DTB, DTB DTB, ADB DTB, SPB ADB, PCB ADB, DTB ADB, ADB ADB, SPB SPB, PCB SPB, DTB SPB, ADB SPB, SPB +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 10 +0 00 MOVSWI 20 MOVSWD 30 40 50 60 70 90 A0 B0 C0 SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SCEQI SCEQD SCWEQI SCWEQD FILSI PCB PCB PCB PCB PCB 80 D0 FILSI SPB ADB DTB PCB E0 F0 付録 B 命令 表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH) 603 604 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.9-5 2 バイト系命令マップ ( 第 1 バイト =6FH) @PC+d16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 使用禁止 使用禁止 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3+ addr16 A,@RW3+ addr16 SUBL SUBL SUBL A, SUBL A, addr16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 @RW1+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 使用禁止 +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 +F 使用禁止 @RW0+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 使用禁止 +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDL A, @RW3, @RW3+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B ADDL 使用禁止 @RW2, @RW2+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ADDL ADDL A, SUBL SUBL A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A ADDL A, @RW1, @RW1+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ADDL ADDL A, SUBL SUBL A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDL @RW0+RW7 ,#8, rel 使用禁止 @RW0, @RW0+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ADDL ADDL A, SUBL SUBL A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 SUBL A, RW7, @RW7+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW7+d8 A, RL3 @RW7+d8 +7 SUBL RW6, @RW6+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW6+d8 A, RL3 @RW6+d8 +6 ADDL A, RW5, @RW5+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 ADDL ADDL A, SUBL SUBL A, A, RL2 @RW5+d8 A, RL2 @RW5+d8 +5 ADDL @RW3, @RW3+d16 #8, rel ,#8, rel RW4, @RW4+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 使用禁止 addr16, ,#8, rel @PC+d16, ,#8, rel @RW1+RW7 ,#8, rel @RW2, @RW2+d16 #8, rel ,#8, rel @RW1, @RW1+d16 #8, rel ,#8, rel @RW0, @RW0+d16 #8, rel ,#8, rel R7, @RW7+d8, #8, rel #8, rel R6, @RW6+d8, #8, rel #8, rel R5, @RW5+d8, #8, rel #8, rel R4, @RW4+d8, #8, rel #8, rel R3, @RW3+d8, #8, rel #8, rel R2, @RW2+d8, #8, rel #8, rel R1, @RW1+d8, #8, rel #8, rel ADDL ADDL A, SUBL SUBL A, A, RL2 @RW4+d8 A, RL2 @RW4+d8 CBNE↓ F0 R0, @RW0+d8, #8, rel #8, rel CBNE↓ E0 +4 D0 RW3, @RW3+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 C0 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW3+d8 A, RL1 @RW3+d8 B0 +3 A0 RW2, @RW2+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 90 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW2+d8 A, RL1 @RW2+d8 80 +2 70 RW1, @RW1+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 CWBNE↓ CWBNE↓ 60 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW1+d8 A, RL0 @RW1+d8 50 40 +1 30 +0 20 RW0, @RW0+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 10 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW0+d8 A, RL0 @RW0+d8 00 付録 B 命令 表 B.9-6 ea 系命令 その 1 ( 第 1 バイト =70H) 605 606 +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.9-7 ea 系命令 その 2 ( 第 1 バイト =71H) D0 E0 F0 MOVX MOVX A, XCH XCH A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MOVX MOVX A, XCH XCH A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A A,@RW3+ addr16 A,@RW3+ addr16 +D +E +F DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R7 @RW7+d8 A, R7 @RW7+d8 R7, A @RW7+d8,A A, R7 @RW7+d8 A, R7 @RW7+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R6 @RW6+d8 A, R6 @RW6+d8 R6, A @RW6+d8,A A, R6 @RW6+d8 A, R6 @RW6+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R5 @RW5+d8 A, R5 @RW5+d8 R5, A @RW5+d8,A A, R5 @RW5+d8 A, R5 @RW5+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R4 @RW4+d8 A, R4 @RW4+d8 R4, A @RW4+d8,A A, R4 @RW4+d8 A, R4 @RW4+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R3 @RW3+d8 A, R3 @RW3+d8 R3, A @RW3+d8,A A, R3 @RW3+d8 A, R3 @RW3+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R2 @RW2+d8 A, R2 @RW2+d8 R2, A @RW2+d8,A A, R2 @RW2+d8 A, R2 @RW2+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R1 @RW1+d8 A, R1 @RW1+d8 R1, A @RW1+d8,A A, R1 @RW1+d8 A, R1 @RW1+d8 +C INC DEC R7 @RW7+d8 C0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ROLC RORC RORC INC R7 @RW7+d8 R7 @RW7+d8 ROLC INC DEC R6 @RW6+d8 B0 +B ROLC RORC RORC INC R6 @RW6+d8 R6 @RW6+d8 ROLC INC DEC R5 @RW5+d8 A0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ROLC RORC RORC INC R5 @RW5+d8 R5 @RW5+d8 ROLC INC DEC R4 @RW4+d8 90 +A ROLC RORC RORC INC R4 @RW4+d8 R4 @RW4+d8 ROLC INC DEC R3 @RW3+d8 INC DEC R2 @RW2+d8 INC DEC R1 @RW1+d8 80 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R0 @RW0+d8 A, R0 @RW0+d8 R0, A @RW0+d8,A A, R0 @RW0+d8 A, R0 @RW0+d8 70 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ROLC RORC RORC INC R3 @RW3+d8 R3 @RW3+d8 ROLC 60 INC DEC R0 @RW0+d8 50 +9 ROLC RORC RORC INC R2 @RW2+d8 R2 @RW2+d8 ROLC 40 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, A @RW0+d16,A A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ROLC RORC RORC INC R1 @RW1+d8 R1 @RW1+d8 ROLC 30 ROLC RORC RORC INC R0 @RW0+d8 R0 @RW0+d8 20 ROLC 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-8 ea 系命令 その 3 ( 第 1 バイト =72H) 607 608 +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.9-9 ea 系命令 その 4 ( 第 1 バイト =73H) ADD ADD 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 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 @RW2+, r PC+d16, r +F 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 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A, SUB +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, SUB +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, r W3+d16, r +B A, SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, r W2+d16, r +A ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, r W1+d16, r +9 ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, r W0+d16, r ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 R7, r RW7+d8, r ADD F0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 R6, r RW6+d8, r E0 ADD D0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 R5, r RW5+d8, r C0 ADD B0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 R4, r RW4+d8, r A0 ADD 90 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 R3, r RW3+d8, r 80 ADD 70 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 R2, r RW2+d8, r 60 ADD 50 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 R1, r RW1+d8, r 40 ADD 30 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 R0, r RW0+d8, r 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H) 609 610 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.9-11 ea 系命令 その 6 ( 第 1 バイト =75H) CMPW CMPW A, ANDW ANDW A, ORW ORW A, 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 ADDCW A, ORW +F ADDCW ORW 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+ @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 SUBW A, ANDW A, +E SUBW ANDW XORW XORW A, DWBNZ DWBNZ A,@RW1+ @RW1+RW7 @RW1+, r @RW1+RW7,r ADDW A, ADDW CMPW A, +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 CMPW XORW XORW A, DWBNZ DWBNZ A,@RW0+ @RW0+RW7 @RW0+, r @RW0+RW7,r ADDCW A, +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDCW XORW XORW A, DWBNZ DWBNZ A,@RW3 @RW3+d16 @RW3, r @RW3+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B SUBW A, XORW XORW A, DWBNZ DWBNZ A,@RW2 @RW2+d16 @RW2, r @RW2+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A SUBW XORW XORW A, DWBNZ DWBNZ A,@RW1 @RW1+d16 @RW1, r @RW1+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDW A, XORW XORW A, DWBNZ DWBNZ A,@RW0 @RW0+d16 @RW0, r @RW0+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 ADDW ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, r @RW7+d8,r F0 +7 E0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, r @RW6+d8,r D0 +6 C0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, r @RW5+d8,r B0 +5 A0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, r @RW4+d8,r 90 +4 80 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, r @RW3+d8,r 70 +3 60 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, r @RW2+d8,r 50 +2 40 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, r @RW1+d8,r 30 +1 20 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, r @RW0+d8,r 10 +0 00 付録 B 命令 表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H) 611 612 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.9-13 ea 系命令 その 8 ( 第 1 バイト =77H) 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 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 A, @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, @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 A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 DIV DIV A, DIVW DIVW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 F0 +7 E0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 D0 +6 C0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 B0 +5 A0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 90 +4 80 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 70 +3 60 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 50 +2 40 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 30 +1 20 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H) 613 614 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 RW7@RW3+ RW7, addr16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2+ ,@PC+d16 RW6,@RW2+ ,@PC+d16 RW7,@RW2+ ,@PC+d16 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 RW0 RW0,@RW2+ ,@PC+d16 +E MOVEA MOVEA RW1 RW1,@RW2+ ,@PC+d16 MOVEA MOVEA RW7 RW7,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 MOVEA MOVEA RW5 MOVEA MOVEA RW6 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 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 RW7 RW7,@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 MOVEA MOVEA RW5 MOVEA MOVEA RW6 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 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.9-15 MOVEA RWi, ea 命令 ( 第 1 バイト =79H) MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 +C +D +E +F +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 MOV +A R0,@RW2 @RW2+d16 R1,@RW2 @RW2+d16 R2,@RW2 @RW2+d16 R3,@RW2 @RW2+d16 R4,@RW2 @RW2+d16 R5,@RW2 @RW2+d16 R6,@RW2 @RW2+d16 R7,@RW2 @RW2+d16 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 MOV R0, MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH) 615 616 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.9-17 MOVW RWi, ea 命令 ( 第 1 バイト =7BH) +F +E +D +C +B +A +9 +8 MOV MOV 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 @RW3+, R0 addr16, R0 MOV @RW3+, R1 addr16, R1 MOV MOV MOV MOV MOV @RW2+, R1 @PC+d16, R1 MOV @RW2+, R0 @PC+d16, R0 MOV MOV MOV @RW3+, R2 addr16, R2 MOV @RW2+, R2 @PC+d16, R2 MOV MOV MOV @RW3+, R3 addr16, R3 MOV @RW2+, R3 @PC+d16, R3 MOV MOV MOV @RW3+, R4 addr16, R4 MOV @RW2+, R4 @PC+d16, R4 MOV MOV MOV @RW3+, R5 addr16, R5 MOV @RW2+, R5 @PC+d16, R5 MOV MOV MOV @RW3+, R6 addr16, R6 MOV @RW2+, R6 @PC+d16, R6 MOV MOV MOV @RW3+, R7 addr16, R7 MOV @RW2+, R7 @PC+d16, R7 MOV @RW1+, R0 @RW1+RW7, R0 @RW1+, R1 @RW1+RW7, R1 @RW1+, R2 @RW1+RW7, R2 @RW1+, R3 @RW1+RW7, R3 @RW1+, R4 @RW1+RW7, R4 @RW1+, R5 @RW1+RW7, R5 @RW1+, R6 @RW1+RW7, R6 @RW1+, R7 @RW1+RW7, R7 MOV @RW0+, R0 @RW0+RW7, R0 @RW0+, R1 @RW0+RW7, R1 @RW0+, R2 @RW0+RW7, R2 @RW0+, R3 @RW0+RW7, R3 @RW0+, R4 @RW0+RW7, R4 @RW0+, R5 @RW0+RW7, R5 @RW0+, R6 @RW0+RW7, R6 @RW0+, R7 @RW0+RW7, R7 MOV @RW3, R0 @RW3+d16, R0 MOV @RW2, R0 @RW2+d16, R0 MOV @RW1, R0 @RW1+d16, R0 MOV @RW0, R0 @RW0+d16, R0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R7, R0 @RW7+d8, R0 R7, R1 @RW7+d8, R1 R7, R2 @RW7+d8, R2 R7, R3 @RW7+d8, R3 R7, R4 @RW7+d8, R4 R7, R5 @RW7+d8, R5 R7, R6 @RW7+d8, R6 R7, R7 @RW7+d8, R7 F0 +7 E0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R6, R0 @RW6+d8, R0 R6, R1 @RW6+d8, R1 R6, R2 @RW6+d8, R2 R6, R3 @RW6+d8, R3 R6, R4 @RW6+d8, R4 R6, R5 @RW6+d8, R5 R6, R6 @RW6+d8, R6 R6, R7 @RW6+d8, R7 D0 +6 C0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R5, R0 @RW5+d8, R0 R5, R1 @RW5+d8, R1 R5, R2 @RW5+d8, R2 R5, R3 @RW5+d8, R3 R5, R4 @RW5+d8, R4 R5, R5 @RW5+d8, R5 R5, R6 @RW5+d8, R6 R5, R7 @RW5+d8, R7 B0 +5 A0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R4, R0 @RW4+d8, R0 R4, R1 @RW4+d8, R1 R4, R2 @RW4+d8, R2 R4, R3 @RW4+d8, R3 R4, R4 @RW4+d8, R4 R4, R5 @RW4+d8, R5 R4, R6 @RW4+d8, R6 R4, R7 @RW4+d8, R7 90 +4 80 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R3, R0 @RW3+d8, R0 R3, R1 @RW3+d8, R1 R3, R2 @RW3+d8, R2 R3, R3 @RW3+d8, R3 R3, R4 @RW3+d8, R4 R3, R5 @RW3+d8, R5 R3, R6 @RW3+d8, R6 R3, R7 @RW3+d8, R7 70 +3 60 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R2, R0 @RW2+d8, R0 R2, R1 @RW2+d8, R1 R2, R2 @RW2+d8, R2 R2, R3 @RW2+d8, R3 R2, R4 @RW2+d8, R4 R2, R5 @RW2+d8, R5 R2, R6 @RW2+d8, R6 R2, R7 @RW2+d8, R7 50 +2 40 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R1, R0 @RW1+d8, R0 R1, R1 @RW1+d8, R1 R1, R2 @RW1+d8, R2 R1, R3 @RW1+d8, R3 R1, R4 @RW1+d8, R4 R1, R5 @RW1+d8, R5 R1, R6 @RW1+d8, R6 R1, R7 @RW1+d8, R7 30 +1 20 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R0, R0 @RW0+d8, R0 R0, R1 @RW0+d8, R1 R0, R2 @RW0+d8, R2 R0, R3 @RW0+d8, R3 R0, R4 @RW0+d8, R4 R0, R5 @RW0+d8, R5 R0, R6 @RW0+d8, R6 R0, R7 @RW0+d8, R7 10 +0 00 付録 B 命令 表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH) 617 618 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.9-19 MOVW RWi, ea 命令 ( 第 1 バイト =7DH) XCH R0, XCH XCH XCH R1, 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 +A R0,@RW2 W2+d16, A XCH XCH R1, R1,@RW2 W2+d16, 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,@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 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,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-20 XCH Ri, ea 命令 ( 第 1 バイト =7EH) 619 620 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.9-21 XCHW RWi, ea 命令 ( 第 1 バイト =7FH) 付録 C フラッシュメモリモードのタイミングダイヤグラム 付録 C フラッシュメモリモードのタイミングダイヤグラム フラッシュメモリモードにおける MB90945 シリーズでの外部端子の各タイミング ダイヤグラムを以下に示します。 ■ 読出しアクセスによるデータリード 付図 C-1 読出しアクセスのタイミングダイヤグラム tRC AQ16 ~ AQ0 アドレス安定 tACC CE tDF tOE OE tOEH WE tOH tCE DQ7 ~ DQ0 ハイインピーダンス 出力定義済 ハイ インピー ダンス 621 付録 ■ 書込み , データポーリング , 読出し (WE 制御 ) 付図 C-2 書込みアクセス (WE 制御 ) のタイミングダイヤグラム 3rd バスサイクル AQ18 ~ AQ0 データポーリング 7AAAAH PA tWC tAS PA tRC tAH CE tGHWL OE tWP tWHWH1 WE tCS DQ7 ~ DQ0 tOE tWPH tDF tDH A0H PD DQ7 DOUT tDS tOH 5.0 V PA: 書込みアドレス PD: 書込みデータ DQ7: 書込みデータの反転出力 DOUT: 書込みデータの出力 tCE ( 注意事項 ) 4 つのバスサイクルの内の後 , 最後の 2 つのバスサイクルシーケンスを 記述します。 622 付録 C フラッシュメモリモードのタイミングダイヤグラム ■ 書込み , データポーリング , 読出し (CE 制御 ) 付図 C-3 書込みアクセス (CE 制御 ) のタイミングダイヤグラム 3rd バスサイクル AQ18 ~ AQ0 データポーリング 7AAAAH PA tWC tAS PA tAH tWH WE tGHWL OE tCP tWHWH1 CE tCPH tWS DQ7 ~ DQ0 tDH A0H PD DQ7 DOUT tDS 5.0 V PA: 書込みアドレス PD: 書込みデータ DQ7: 書込みデータの反転出力 DOUT: 書込みデータの出力 ( 注意事項 ) 4 つのバスサイクルの内の後最後の 2 つのバスサイクルシーケンスを 記述します。 623 付録 ■ チップ消去 / セクタ消去コマンドシーケンス 付図 C-4 書込みアクセス ( チップ消去 / セクタ消去 ) のタイミングダイヤグラム tAS tAH AQ18 7AAAAH ~ AQ0 75555H 7AAAAH 7AAAAH 75555H SA* CE tGHWL OE tWP WE tWPH tCS tDH DQ7 AAH DQ0 55H 80H AAH 55H 10H/30H tDS ~ VCC tVCS *: SA はセクタ消去におけるセクタアドレスです。7AAAAH ( または 6AAAAH) はチップ 消去におけるアドレスです。 ■ データポーリング 付図 C-5 データポーリングのタイミングダイヤグラム tCH CE tOE tDF OE tOEH WE tCE tOH * DQ7 DQ7 DQ7 = 有効データ tWHWH1 or tWHWH2 DQ6 ~ DQ0 *: DQ7 は有効データです ( デバイスは自動動作を停止します ) 。 624 DQ6 ~ DQ0 = 有効データ DQ6 ~ DQ0 = 無効 tOE ハイ インピーダンス 付録 C フラッシュメモリモードのタイミングダイヤグラム ■ トグルビット 付図 C-6 トグルビットのタイミングダイヤグラム CE tOEH WE tOES OE * データ (DQ7 ~ DQ0) DQ6 = トグル DQ6 = トグル DQ6 = トグル停止 DQ7 ~ DQ0 = 有効 *: DQ6はトグルを停止します(デバイスは自動動作を停止します) 。 t OE ■ 書込み / 消去中の RY/BY タイミング 付図 C-7 書込み / 消去中の RY/BY 信号出力のタイミングダイヤグラム CE 最終書込みパルスの立上りエッジ WE 書込みまたは消去 RY/BY tBUSY ■ RST と RY/BY タイミング 付図 C-8 ハードウェアリセット時の RY/BY 信号出力のタイミングダイヤグラム CE RY/BY tRP RST tReady 625 付録 ■ セクタプロテクト許可 / セクタプロテクト検証 付図 C-9 セクタプロテクト許可 / セクタプロテクト検証 AQ18 ~ AQ9 SAx AQ8, AQ2, and AQ1 SAy (AQ8, AQ2, AQ1) = (0, 1, 0) MD0 12 V 5V MD2 12 V 5V tVLHT tVLHT OE WE tWPP tOESP CE tCSP DQ7 ~ DQ0 01H tOE SAx: 最初のセクタアドレス SAy: 次のセクタアドレス ■ セクタプロテクト一時取消 付図 C-10 セクタプロテクト一時取消 MD1 12 V 5V 5V CE WE tVLHT RY/BY 626 書込み / 消去コマンドシーケンス 付録 D MB90945 割込みベクタ一覧表 付録 D MB90945 割込みベクタ一覧表 割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の FFFC00H ~ FFFFFFH に割り当ててあり , ソフトウェア割込みと共通で使用しています。 ■ 割込みベクタ一覧表 付表 D-1 に , MB90945 シリーズの割込みベクタ一覧表を示します。 付表 D-1 割込みベクタ一覧表 ( 1 / 2 ) ソフトウェア 割込み命令 ベクタ アドレス L ベクタ アドレス M ベクタ アドレス H モード レジスタ 割込み No INT 0 FFFFECH FFFFEDH FFFFEEH 未使用 #0 . . . . . . . . . . . . . . . . . . INT 7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 なし INT 8 FFFFDCH FFFFDDH FFFFDEH FFFFDFH #8 (RESET ベクタ ) INT 9 FFFFD8H FFFFD9H FFFFDAH 未使用 #9 INT9 命令 INT 10 FFFFD4H FFFFD5H FFFFD6H 未使用 #10 < 例外 > INT 11 FFFFD0H FFFFD1H FFFFD2H 未使用 #11 タイムベースタイマ INT 12 FFFFCCH FFFFCDH FFFFCEH 未使用 #12 外部割込み (INT0 ~ INT7) INT 13 FFFFC8H FFFFC9H FFFFCAH 未使用 #13 - INT 14 FFFFC4H FFFFC5H FFFFC6H 未使用 #14 - INT 15 FFFFC0H FFFFC1H FFFFC2H 未使用 #15 CAN 1 RX INT 16 FFFFBCH FFFFBDH FFFFBEH 未使用 #16 CAN 1 TX/NS INT 17 FFFFB8H FFFFB9H FFFFBAH 未使用 #17 PPG 0/1 INT 18 FFFFB4H FFFFB5H FFFFB6H 未使用 #18 PPG 2/3 INT 19 FFFFB0H FFFFB1H FFFFB2H 未使用 #19 PPG 4/5 INT 20 FFFFACH FFFFADH FFFFAEH 未使用 #20 PPG 6/7 INT 21 FFFFA8H FFFFA9H FFFFAAH 未使用 #21 PPG 8/9 INT 22 FFFFA4H FFFFA5H FFFFA6H 未使用 #22 PPG A/B INT 23 FFFFA0H FFFFA1H FFFFA2H 未使用 #23 16 ビットリロードタイマ 0 INT 24 FFFF9CH FFFF9DH FFFF9EH 未使用 #24 - INT 25 FFFF98H FFFF99H FFFF9AH 未使用 #25 ハードウェア割込み なし . . . インプットキャプチャ 0/1 627 付録 付表 D-1 割込みベクタ一覧表 ( 2 / 2 ) ソフトウェア 割込み命令 ベクタ アドレス L ベクタ アドレス M ベクタ アドレス H モード レジスタ 割込み No INT 26 FFFF94H FFFF95H FFFF96H 未使用 #26 アウトプットコンペア 0/1 INT 27 FFFF90H FFFF91H FFFF92H 未使用 #27 インプットキャプチャ 2/3 INT 28 FFFF8CH FFFF8DH FFFF8EH 未使用 #28 アウトプットコンペア 2/3 INT 29 FFFF88H FFFF89H FFFF8AH 未使用 #29 インプットキャプチャ 4/5 INT 30 FFFF84H FFFF85H FFFF86H 未使用 #30 I2C INT 31 FFFF80H FFFF81H FFFF82H 未使用 #31 A/D コンバータ INT 32 FFFF7CH FFFF7DH FFFF7EH 未使用 #32 I/O タイマ 0/1 INT 33 FFFF78H FFFF79H FFFF7AH 未使用 #33 シリアル I/O INT 34 FFFF74H FFFF75H FFFF76H 未使用 #34 INT 35 FFFF70H FFFF71H FFFF72H 未使用 #35 UART 0 RX INT 36 FFFF6CH FFFF6DH FFFF6EH 未使用 #36 UART 0 TX INT 37 FFFF68H FFFF69H FFFF6AH 未使用 #37 - INT 38 FFFF64H FFFF65H FFFF66H 未使用 #38 - INT 39 FFFF60H FFFF61H FFFF62H 未使用 #39 UART 3 RX INT 40 FFFF5CH FFFF5DH FFFF5EH 未使用 #40 UART 3 TX INT 41 FFFF58H FFFF59H FFFF5AH 未使用 #41 フラッシュメモリ INT 42 FFFF54H FFFF55H FFFF56H 未使用 #42 遅延割込み INT 43 FFFF50H FFFF51H FFFF52H 未使用 #43 なし . . . . . . . . . . . . . . . . . . INT 254 FFFC04H FFFC05H FFFC06H 未使用 #254 なし INT 255 FFFC00H FFFC01H FFFC02H 未使用 #255 なし 628 ハードウェア割込み - . . . 付録 D MB90945 割込みベクタ一覧表 ■ 割込み要因と割込みベクタ・割込み制御レジスタ 付表 D-2 に , MB90945 シリーズにおける割込み要因と割込みベクタ・割込み制御レジ スタの関係を示します。 付表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ ( 1 / 2 ) 割込みベクタ 割込み要因 割込み制御レジスタ EI2OS クリア 番号 アドレス 番号 アドレス リセット N #08 FFFFDCH - - INT9 命令 N #09 FFFFD8H - - 例外 N #10 FFFFD4H - - タイムベースタイマ N #11 FFFFD0H Y1 #12 FFFFCCH ICR00 外部割込み (INT0 ~ INT7) 0000B0H - - #13 FFFFC8H - - #14 FFFFC4H ICR01 0000B1H CAN 1 RX N #15 FFFFC0H CAN 1 TX/NS N #16 FFFFBCH ICR02 0000B2H PPG 0/1 N #17 FFFFB8H PPG 2/3 N #18 FFFFB4H ICR03 0000B3H PPG 4/5 N #19 FFFFB0H PPG 6/7 N #20 FFFFACH ICR04 0000B4H PPG 8/9 N #21 FFFFA8H PPG A/B N #22 FFFFA4H ICR05 0000B5H 16 ビットリロードタイマ 0 Y1 #23 FFFFA0H - - #24 FFFF9CH ICR06 0000B6H インプットキャプチャ 0/1 Y1 #25 FFFF98H Y1 #26 FFFF94H ICR07 アウトプットコンペア 0/1 0000B7H インプットキャプチャ 2/3 Y1 #27 FFFF90H Y1 #28 FFFF8CH ICR08 アウトプットコンペア 2/3 0000B8H インプットキャプチャ 4/5 Y1 #29 FFFF88H I 2C Y1 #30 FFFF84H ICR09 0000B9H A/D コンバータ Y1 #31 FFFF80H N #32 FFFF7CH ICR10 I/O タイマ 0/1 0000BAH 629 付録 付表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ ( 2 / 2 ) 割込みベクタ 割込み要因 番号 アドレス Y1 #33 FFFF78H - 34 FFFF74H UART 0 RX Y2 35 FFFF70H UART 0 TX Y1 36 FFFF6CH - - 37 FFFF68H - - 38 FFFF64H UART 3 RX Y2 39 FFFF60H UART 3 TX Y1 40 FFFF5CH フラッシュメモリ N 41 FFFF58H 遅延割込み N 42 FFFF54H シリアル I/O - 割込み制御レジスタ EI2OS クリア 番号 アドレス ICR11 0000BBH ICR12 0000BCH ICR13 0000BDH ICR14 0000BEH ICR15 0000BFH Y1: EI2OS 割込みクリア信号または EI2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアされま す。 Y2: EI2OS 割込みクリア信号または EI2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアされま N: す。 ストップ要求はあります。 EI2OS 割込みクリア信号にて割込み要求フラグはクリアされません。 <注意事項> 1 つの割込み番号に対して 2 つの割込み要因を持つ周辺モジュールについては , EI2OS 割 込みクリア信号にて , 両方の割込み要求フラグがクリアされます。 EI2OS の終了時には , EI2OS クリア信号が同じ割込み番号に割り当てられている複数の割 込みフラグに送られます。 EI2OS が許可されていると , 同じ割込み制御レジスタ (ICR) に割り当てられている 2 つの 割込みの内のいずれか 1 つが発生すると , EI2OS を起動します。このことは , 本来各割込 み要因に固有であるべき EI2OS ディスクリプタが , 2 つの割込みで共有されていることを 意味し , したがって , 一方の割込みが許可されているときは , 他方の割込みを不許可にし なければなりません。 630 索引 Numerics 10 ビットアドレスマスクレジスタ 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ............................................394 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の内容 ...............................395 10 ビットスレーブアドレスレジスタ 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) ...............................................393 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容 ..................................393 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアの レジスタ一覧 ..................................................174 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの レジスタ一覧 ..................................................175 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 16 ビット入出力タイマ 16 ビット入出力タイマのブロック ダイヤグラム ..................................................173 16 ビットフリーランタイマ 16 ビットフリーランタイマ ................................172 16 ビットフリーランタイマ 0/1 のレジスタ一覧 ..........................................................................174 16 ビットフリーランタイマのタイミング ..........................................................................182 16 ビットフリーランタイマの動作 ....................181 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................176 16 ビットリロードタイマ 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 .............204 16 ビットリロードタイマのアンダフロー動作 ..........................................................................213 16 ビットリロードタイマの出力端子機能 ..........................................................................214 16 ビットリロードタイマの内部クロック動作 ..........................................................................211 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................211 16 ビットリロードタイマのブロック ダイヤグラム ..................................................205 16 ビットリロードタイマのレジスタ ................206 16 ビットリロードレジスタ 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 1M/2M/3M ビットフラッシュメモリ 1M/2M/3M ビットフラッシュメモリの特長 ..........................................................................502 1M/2M/3M ビットフラッシュメモリの プログラム例 ..................................................533 1M ビットフラッシュメモリ 1M ビットフラッシュメモリのセクタ構成 ..........................................................................504 24 ビットオペランド指定 24 ビットオペランド指定 .....................................30 2M ビットフラッシュメモリ 2M ビットフラッシュメモリのセクタ構成 ..........................................................................505 3M ビットフラッシュメモリ 3M ビットフラッシュメモリのセクタ構成 ..........................................................................506 7 ビットスレーブアドレスマスクレジスタ 7 ビットスレーブアドレスマスクレジスタ (ISMK) .............................................................396 7 ビットスレーブアドレスマスクレジスタの内容 ..........................................................................397 7 ビットスレーブアドレスレジスタ 7 ビットスレーブアドレスレジスタ .................396 7 ビットスレーブアドレスレジスタの内容 ..........................................................................396 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................274 8/10 ビット A/D コンバータの EI2OS 機能 ..........................................................................268 8/10 ビット A/D コンバータの機能 ...................252 8/10 ビット A/D コンバータの端子 ...................256 8/10 ビット A/D コンバータの端子部の ブロックダイヤグラム ..................................257 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................254 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................258 8/10 ビット A/D コンバータの割込み ...............268 8/10 ビット A/D コンバータの割込みと EI2OS ..........................................................................268 8/16 ビット PPG 8/16 ビット PPG のカウントクロックの選択 ..........................................................................235 8/16 ビット PPG の各ハードウェアの初期値 ..........................................................................238 8/16 ビット PPG の機能 .......................................218 8/16 ビット PPG の出力動作 ...............................233 8/16 ビット PPG の動作 .......................................232 8/16 ビット PPG の動作モード ...........................232 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................236 8/16 ビット PPG のブロックダイヤグラム ..........................................................................219 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................234 8/16 ビット PPG のレジスタ ...............................223 8/16 ビット PPG の割込み ...................................237 631 A C A CAN コントローラ CAN コントローラの受信フローチャート ..........................................................................477 CAN コントローラの送信の開始 .......................471 CAN コントローラの送信の完了 .......................472 CAN コントローラの送信フローチャート ..........................................................................473 CAN コントローラの送信要求の解除 ...............471 CAN コントローラの特長 ...................................426 CAN コントローラのブロックダイヤグラム ..........................................................................427 CAN ダイレクトモードレジスタ CAN ダイレクトモードレジスタ (CDMR) ..........................................................................486 CAN ダイレクトモードレジスタの内容 ...........486 CCR コンディションコードレジスタ (CCR) ...............40 CDCR シリアル I/O プリスケーラ (CDCR4) ................415 CDMR CAN ダイレクトモードレジスタ (CDMR) ..........................................................................486 CKSCR クロック選択レジスタ (CKSCR) の構成 .............89 CLK 同期ボーレート CLK 同期ボーレート ...........................................299 CLK 非同期ボーレート CLK 非同期ボーレート .......................................299 CMCR クロックモジュレータ制御レジスタ (CMCR) ..........................................................................101 CMOD CMOD1, CMOD0=00B のときの出力波形例 ..........................................................................190 CMOD1, CMOD0=01B のときの 2 コンペア レジスタでのサンプル出力波形 ..................190 CMOD1, CMOD0=10B のときのサンプル出力波形 ..........................................................................192 CMOD1, CMOD0=11B のときのサンプル出力波形 ..........................................................................193 CMR コモンレジスタバンクプリフィックス (CMR) ............................................................................ 47 CPU CPU 間欠動作モード ....................................119, 127 CPU 間接続方式 ....................................................355 CPU 動作モードと消費電流 ................................118 CPU の概要 ..............................................................24 CPU メモリ空間の概要 ..........................................25 CSR 制御ステータスレジスタ (CSR)( 下位 ) ............435 制御ステータスレジスタ (CSR)( 上位 ) ............437 制御ステータスレジスタ (CSR 下位 ) の内容 ..........................................................................436 制御ステータスレジスタ (CSR 上位 ) の内容 ..........................................................................438 アキュムレータ (A) ................................................37 A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................274 8/10 ビット A/D コンバータの EI2OS 機能 ..........................................................................268 8/10 ビット A/D コンバータの機能 ....................252 8/10 ビット A/D コンバータの端子 ....................256 8/10 ビット A/D コンバータの端子部の ブロックダイヤグラム ..................................257 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................254 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................258 8/10 ビット A/D コンバータの割込み ................268 8/10 ビット A/D コンバータの割込みと EI2OS ..........................................................................268 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ 0(ADCS0) ..........263 A/D 制御ステータスレジスタ 1(ADCS1) ..........260 A/D データレジスタ A/D データレジスタ (ADCR0, ADCR1) .............266 A/D 変換 A/D 変換データ保護機能 .....................................272 A/D 変換の EI2OS 使用 ........................................271 ADCR A/D データレジスタ (ADCR0, ADCR1) .............266 ADCS A/D 制御ステータスレジスタ 0(ADCS0) ..........263 A/D 制御ステータスレジスタ 1(ADCS1) ..........260 ADER アナログ入力許可 /ADC 選択レジスタの 下位ビット (ADER0) ......................................259 アナログ入力許可 /ADC 選択レジスタの 上位ビット (ADER1) ......................................259 AMR アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................463 AMSR アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................461 B BAP バッファアドレスポインタ (BAP) .......................72 BGR ボーレートジェネレータレジスタ (BGR02/ BGR03/BGR12/BGR13) のビット構成 .........338 BTR ビットタイミングレジスタ (BTR) .....................446 ビットタイミングレジスタ (BTR) の内容 ........446 BVAL BVAL ビットによるメッセージバッファ禁止時の 注意 ..................................................................487 BVALR メッセージバッファ有効レジスタ (BVALR) ..........................................................................449 632 D DCT データカウンタ (DCT) ...........................................71 DIRR 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 「DIV A, Ri」 「DIVW A, RWi」命令 「DIV A, Ri」「DIVW A, RWi」命令の使用上の 注意 ....................................................................50 DLC レジスタ DLC レジスタ x (x:0 ~ 15) (DLCRx) ..................468 メッセージバッファ (DLC レジスタと データレジスタ ) の一覧 ...............................432 DQ セクタ消去タイマフラグ (DQ3) .........................518 タイミングリミット超過フラグ (DQ5) .............517 データポーリングフラグ (DQ7) .........................515 トグルビット 2 フラグ (DQ2) .............................519 トグルビットフラグ (DQ6) .................................516 DTP DTP/ 外部割込みの概要 .......................................242 DTP/ 外部割込みの使用上の注意 .......................249 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................242 DTP/ 外部割込みのレジスタ ...............................243 DTP の動作 ............................................................246 DTP 要求と外部割込み要求の切換え ................248 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............244 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............244 DTP/ 外部割込み DTP/ 外部割込みの概要 .......................................242 DTP/ 外部割込みの使用上の注意 .......................249 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................242 DTP/ 外部割込みのレジスタ ...............................243 DTP 要求 DTP 要求と外部割込み要求の切換え ................248 E ECCR 拡張通信制御レジスタ (ECCR2/3) .....................336 EI2OS 8/10 ビット A/D コンバータの EI2OS 機能 .......................................................268 8/10 ビット A/D コンバータの割込みと EI2OS ..........................................................................268 A/D 変換の EI2OS 使用 ........................................271 EI2OS ( 拡張インテリジェント I/O サービス ) ..........................................................................309 EI2OS ステータスレジスタ (ISCS) .......................73 LIN-UART2/3 の割込みと EI2OS ........................341 UART2/3 の EI2OS 機能 .......................................342 UART2/3 の割込みと EI2OS ................................317 インテリジェント I/O サービス (EI2OS) 機能と 割込み ..............................................................204 拡張インテリジェント I/O サービス (EI2OS) ......................................................................54, 69 拡張インテリジェント I/O サービス (EI2OS) の 構造 ....................................................................70 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ........................................................75 単発変換モードの EI2OS 起動プログラム例 ..........................................................................275 停止変換モードの EI2OS 起動プログラム例 ..........................................................................281 連続変換モードの EI2OS 起動プログラム例 ..........................................................................278 EIRR 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............244 ELVR 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ......................245 ENIR 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............244 ESCR 拡張ステータス制御レジスタ (ESCR2/3) ..........334 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................585 FMCS フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................509 H HALT バス動作停止間の状態 (HALT=1) ......................440 バス動作停止を解除する条件 (HALT=0) ..........440 バス動作停止をセットする条件 (HALT=1) ..........................................................................440 I I/O EI2OS ( 拡張インテリジェント I/O サービス ) ..........................................................................309 I/O ポート ..............................................................148 I/O ポートのレジスタ ..........................................149 I/O マップ ..............................................................552 I/O マップ (3XXX アドレス ) ..............................556 I/O 領域 ....................................................................26 I/O レジスタアドレスポインタ (IOA) .................72 インテリジェント I/O サービス (EI2OS) 機能と 割込み ..............................................................204 拡張インテリジェント I/O サービス (EI2OS) ...................................................................... 54, 69 拡張インテリジェント I/O サービス (EI2OS) の 構造 ....................................................................70 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ........................................................75 拡張インテリジェント I/O サービス ディスクリプタ (ISD) ......................................71 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................423 633 シリアル I/O の動作 .............................................416 シリアル I/O の動作状態 .....................................418 シリアル I/O のブロックダイヤグラム .............408 シリアル I/O のレジスタ .....................................409 シリアル I/O プリスケーラ (CDCR4) .................415 I/O ポート I/O ポート ..............................................................148 I/O ポートのレジスタ ..........................................149 I/O マップ I/O マップ ..............................................................552 I/O マップ (3XXX アドレス ) ..............................556 I/O レジスタアドレスポインタ I/O レジスタアドレスポインタ (IOA) .................72 I2C I2C インタフェースの機能 ..................................380 I2C インタフェースのレジスタ一覧 ..................382 IBCR バス制御レジスタ (IBCR) ....................................388 バス制御レジスタ (IBCR) の内容 .......................389 IBSR バスステータスレジスタ (IBSR) ........................384 バスステータスレジスタ (IBSR) の内容 ...........385 ICCR クロック制御レジスタ (ICCR) ............................399 クロック制御レジスタ (ICCR) の内容 ...............400 ICE インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) ....................................199 ICR 割込み制御レジスタ (ICR) ....................................58 ID ID の設定 ...............................................................478 ID レジスタ x (x:0 ~ 15) (IDRx) .........................466 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................430 IDAR データレジスタ (IDAR) .......................................398 IDER IDE レジスタ (IDER) ............................................450 IDE レジスタ IDE レジスタ (IDER) ............................................450 ID レジスタ ID レジスタ x (x:0 ~ 15) (IDRx) .........................466 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................430 ILM インタラプトレベルマスクレジスタ (ILM) ............................................................................41 INT SCC, MSS, INT ビット競合 .................................392 IOA I/O レジスタアドレスポインタ (IOA) .................72 ISCS EI2OS ステータスレジスタ (ISCS) .......................73 ISD 拡張インテリジェント I/O サービス ディスクリプタ (ISD) ......................................71 ISMK 7 ビットスレーブアドレスマスクレジスタ (ISMK) ..............................................................396 ITBAH/ITBAL 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) ...............................................393 634 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容 .................................393 ITMKH, ITMKL 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ............................................394 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の内容 ...............................395 L LEIR ラストイベント表示レジスタ (LEIR) ................442 ラストイベント表示レジスタ (LEIR) の内容 ..........................................................................443 LIN LIN スレーブデバイス .........................................375 LIN マスタ / スレーブ型通信機能 ......................373 LIN マスタデバイス .............................................374 非同期 LIN モード動作 ( 動作モード 3) ............363 LIN-UART LIN-UART2/3 の割込み .......................................339 LIN-UART2/3 の割込みと EI2OS ........................341 LPMCR スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................138 低消費電力モード制御レジスタ (LPMCR) ..........................................................................123 M MB90945 MB90945 割込みベクタ一覧表 ............................. 67 MB90947A MB90F947(A) と MB90947A の ブロックダイヤグラム ...................................... 7 MB90947A/MB90F947(A)/MB90F949(A) MB90947A/MB90F947(A)/MB90F949(A) の 端子配列図 ........................................................11 MB90F946A MB90F946A の端子配列図 .................................... 10 MB90F946A のブロックダイヤグラム ..................6 MB90F947 MB90F947 同期シリアル書込み接続の基本構成 ..........................................................................538 MB90F947(A) MB90F947(A) と MB90947A の ブロックダイヤグラム ...................................... 7 MB90F949(A) MB90F949(A) のブロックダイヤグラム ...............8 MB90V390HA/HB MB90V390HA/HB の端子配列図 ............................9 MB90V390HA/HB のブロックダイヤグラム .............................................................................. 5 MSS SCC, MSS, INT ビット競合 .................................392 N NCC フラグ変化抑止プリフィックス (NCC) .............. 47 P PACSR プログラムアドレス検出制御 / ステータスレジスタ (PACSR0) ....................492 PADR プログラムアドレス検出レジスタ (PADR0 ~ PADR2) ........................................491 PC プログラムカウンタ (PC) ......................................43 PLL および特殊構成制御レジスタ PLL および特殊構成制御レジスタ (PSCCR) の 構成 ....................................................................92 PLL クロック PLL クロック逓倍率の選択 ..................................94 メインクロックモード , PLL クロックモード ............................................................................94 PPG 8/16 ビット PPG のカウントクロックの選択 ..........................................................................235 8/16 ビット PPG の各ハードウェアの初期値 ..........................................................................238 8/16 ビット PPG の機能 .......................................218 8/16 ビット PPG の出力動作 ...............................233 8/16 ビット PPG の動作 .......................................232 8/16 ビット PPG の動作モード ...........................232 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................236 8/16 ビット PPG のブロックダイヤグラム ..........................................................................219 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................234 8/16 ビット PPG のレジスタ ...............................223 8/16 ビット PPG の割込み ...................................237 PPG0,1 クロック選択レジスタ (PPG01) ............229 PPG0 動作モード制御レジスタ (PPGC0) ...........225 PPG1 動作モード制御レジスタ (PPGC1) ...........227 PPG0,1 クロック選択レジスタ PPG0,1 クロック選択レジスタ (PPG01) ............229 PPG0 動作モード制御レジスタ PPG0 動作モード制御レジスタ (PPGC0) ...........225 PPG1 動作モード制御レジスタ PPG1 動作モード制御レジスタ (PPGC1) ...........227 PPGC PPG0 動作モード制御レジスタ (PPGC0) ...........225 PPG1 動作モード制御レジスタ (PPGC1) ...........227 PRLL, PRLH リロードレジスタ (PRLL, PRLH) .......................231 PS プロセッサステータス (PS) ..................................40 PSCCR PLL および特殊構成制御レジスタ (PSCCR) の 構成 ....................................................................92 R RAM RAM 領域 .................................................................26 RCR 受信完了レジスタ (RCR) .....................................457 RDR 受信データレジスタ / 送信データレジスタの ビット構成 (RDR2/3 / TDR2/3) .....................332 RFWTR リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................453 RIER 受信割込み許可レジスタ (RIER) ........................460 ROM ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................498 ROM ミラー機能選択レジスタ (ROMM) ..........499 ROM 領域 ................................................................26 ROMM ROM ミラー機能選択レジスタ (ROMM) ..........499 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................498 ROM ミラー機能選択レジスタ ROM ミラー機能選択レジスタ (ROMM) ..........499 ROVRR 受信オーバランレジスタ (ROVRR) ...................459 RP レジスタバンクポインタ (RP) ..............................41 RRTRR リモート要求受信レジスタ (RRTRR) ................458 RST RST と RY/BY タイミング ..................................625 RTEC 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................445 受信および送信エラーカウンタ (RTEC) の内容 ..........................................................................445 RY/BY RST と RY/BY タイミング ..................................625 書込み / 消去中の RY/BY タイミング ...............625 S SCC SCC, MSS, INT ビット競合 .................................392 SCR シリアル制御レジスタ (SCR2/3) ........................325 SDR シリアルデータレジスタ (SDR4) .......................414 SLP STP, SLP, TMD ビットの優先順位 .....................125 SMCS シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ..................................412 シリアルモード制御ステータスレジスタの 下位バイト (SMCS4) ......................................411 シリアルモード制御ステータスレジスタの 上位バイト (SMCS4) ......................................410 SMR シリアルモードレジスタ (SMR2/3) ...................327 SSP ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) .................. 38 SSR シリアルステータスレジスタ (SSR2/3) ............329 635 STP STP, SLP, TMD ビットの優先順位 .....................125 T TBTC タイムベースタイマ制御レジスタ (TBTC) .............................................................159 TCANR 送信解除レジスタ (TCANR) ...............................454 TCR 送信完了レジスタ (TCR) .....................................455 TDR 受信データレジスタ / 送信データレジスタの ビット構成 (RDR2/3 / TDR2/3) .....................332 送信データレジスタ (TDR2/3) ............................333 TIER 送信割込み許可レジスタ (TIER) ........................456 TMCSR タイマ制御ステータスレジスタ (TMCSR0) の 内容 ..................................................................207 タイマ制御ステータスレジスタ (TMCSR0) の 配置 ..................................................................207 TMD STP, SLP, TMD ビットの優先順位 .....................125 TMR 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 TREQR 送信要求レジスタ (TREQR) ................................451 TRTRR 送信 RTR レジスタ (TRTRR) ..............................452 U UART LIN-UART2/3 の割込み ........................................339 LIN-UART2/3 の割込みと EI2OS ........................341 UART0 の動作モード ...........................................298 UART0 の特長 .......................................................286 UART0 のブロックダイヤグラム .......................287 UART0 のレジスタ ...............................................288 UART2/3 使用上の注意 ........................................376 UART2/3 端子直接アクセス ................................367 UART2/3 の EI2OS 機能 .......................................342 UART2/3 の機能 ....................................................314 UART2/3 の端子 ....................................................322 UART2/3 の動作 ....................................................354 UART2/3 の動作モード ........................................316 UART2/3 のブロックダイヤグラム ....................318 UART2/3 のレジスタ ............................................324 UART2/3 の割込みと EI2OS ................................317 UART2/3 ボーレート選択 ....................................347 UIDR インプットデータレジスタ (UIDR0) とアウト プットデータレジスタ (UODR0) .................295 UMC シリアルモード制御レジスタ (UMC0) ..............289 シリアルモード制御レジスタ (UMC0) の内容 ..........................................................................290 636 UODR インプットデータレジスタ (UIDR0) とアウト プットデータレジスタ (UODR0) .................295 URD レート・データレジスタ (URD0) ......................296 レート・データレジスタ (URD0) の内容 .........297 USP ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) .................. 38 USR ステータスレジスタ (USR0) の構成 ..................292 ステータスレジスタ (USR0) の内容 ..................293 W WDTC ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................165 WE 書込み , データポーリング , 読出し (WE 制御 ) ..........................................................................622 あ アービトレーション アービトレーション .............................................404 アウトプットコンペア 16 ビットアウトプットコンペアのレジスタ一覧 ..........................................................................174 アウトプットコンペア .........................................183 アウトプットコンペア ( モジュールごとに 2 チャネル ) ..................172 アウトプットコンペアの制御ステータスレジスタ ( 下位 ) ..............................................................185 アウトプットコンペアの制御ステータスレジスタ ( 上位 ) ..............................................................187 アウトプットコンペアのタイミング .................194 アウトプットコンペアのブロック ダイヤグラム ..................................................183 アウトプットコンペアレジスタ .........................184 アウトプットコンペアレジスタ 0 (4) 値と 一致したときのカウンタクリア ..................182 アウトプットコンペアレジスタ アウトプットコンペアレジスタ .........................184 アウトプットコンペアレジスタ 0 (4) 値と 一致したときのカウンタクリア ..................182 アウトプットデータレジスタ インプットデータレジスタ (UIDR0) とアウト プットデータレジスタ (UODR0) .................295 アキュムレータ アキュムレータ (A) ................................................37 アクセプタンスフィルタ アクセプタンスフィルタの設定 .........................479 アクセプタンスフィルタリング .........................474 アクセプタンスマスク選択レジスタ アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................461 アクセプタンスマスクレジスタ アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................463 アクノリッジ アクノリッジ .........................................................404 アドレス 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ............................................394 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の内容 ...............................395 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) ...............................................393 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容 ..................................393 7 ビットスレーブアドレスマスクレジスタ (ISMK) ..............................................................396 7 ビットスレーブアドレスマスクレジスタの内容 ..........................................................................397 7 ビットスレーブアドレスレジスタ ..................396 7 ビットスレーブアドレスレジスタの内容 ..........................................................................396 I/O マップ (3XXX アドレス ) ..............................556 I/O レジスタアドレスポインタ (IOA) .................72 アドレス一致検出機能のシステム構成例 ..........................................................................494 アドレス一致検出機能の動作 .............................493 アドレス一致検出機能のブロックダイヤグラム ..........................................................................490 アドレス指定の方式 ..............................................27 スレーブアドレス検知 ........................................402 スレーブアドレスマスク ....................................403 バッファアドレスポインタ (BAP) .......................72 バンク方式によるアドレス指定 ..........................31 フラッシュメモリにおけるリセットベクタ アドレス ..........................................................532 プログラムアドレス検出制御 / ステータスレジスタ (PACSR0) ....................492 プログラムアドレス検出レジスタ (PADR0 ~ PADR2) ........................................491 アドレス一致検出機能 アドレス一致検出機能のシステム構成例 ..........................................................................494 アドレス一致検出機能の動作 ............................493 アドレス一致検出機能のブロックダイヤグラム ..........................................................................490 アドレス指定 アドレス指定の方式 ..............................................27 バンク方式によるアドレス指定 ..........................31 アドレスマスクレジスタ 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ............................................394 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の内容 ...............................395 アドレッシング アドレッシング ............................................ 403, 562 間接アドレッシング ............................................571 直接アドレッシング ............................................564 アナログ入力許可 /ADC 選択レジスタ アナログ入力許可 /ADC 選択レジスタの 下位ビット (ADER0) ......................................259 アナログ入力許可 /ADC 選択レジスタの 上位ビット (ADER1) ......................................259 アナログ入力許可レジスタ アナログ入力許可レジスタ ........................154, 256 アンダフロー動作 16 ビットリロードタイマのアンダフロー動作 ..........................................................................213 い 移行 クロックモードの移行 ..........................................94 スタンバイモードへの移行と割込み ................137 ストップモードへの移行 ....................................133 スリープモードへの移行 ....................................129 タイムベースタイマモードへの移行 ................131 位相変調 位相変調モードの推奨起動手順 ........................103 イベントカウント 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ...............................................204 インターバル割込み インターバル割込み機能 ....................................161 インタフェース I2C インタフェースの機能 ..................................380 I2C インタフェースのレジスタ一覧 ..................382 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................423 637 インタラプトレベルマスク インタラプトレベルマスクレジスタ (ILM) ............................................................................41 インテリジェント I/O サービス インテリジェント I/O サービス (EI2OS) 機能と 割込み ..............................................................204 インプットキャプチャ 16 ビットインプットキャプチャのレジスタ一覧 ..........................................................................175 インプットキャプチャ .........................................195 インプットキャプチャ ( モジュールごとに 2 チャネル ) ..................173 インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) ....................................199 インプットキャプチャ制御ステータスレジスタ ..........................................................................197 インプットキャプチャデータレジスタ .............196 インプットキャプチャ入力タイミング .............202 インプットキャプチャの取込みタイミング例 ..........................................................................201 インプットキャプチャのブロックダイヤグラム ..........................................................................195 インプットキャプチャエッジレジスタ インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) ....................................199 インプットキャプチャ制御ステータスレジスタ インプットキャプチャ制御ステータスレジスタ ..........................................................................197 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ .............196 インプットデータレジスタ インプットデータレジスタ (UIDR0) とアウト プットデータレジスタ (UODR0) .................295 う ウォッチドッグ ウォッチドッグカウンタ .....................................168 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................165 ウォッチドッグタイマの起動方法 .....................168 ウォッチドッグタイマの状態遷移図 .................167 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................164 ウォッチドッグ停止 .............................................168 ウォッチドッグ不活性化 .....................................168 ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 リセット時のウォッチドッグタイマの動作 ..........................................................................168 ウォッチドッグタイマ ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................165 ウォッチドッグタイマの起動方法 .....................168 ウォッチドッグタイマの状態遷移図 .................167 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................164 リセット時のウォッチドッグタイマの動作 ..........................................................................168 638 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................165 え エラー 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................445 受信および送信エラーカウンタ (RTEC) の内容 ..........................................................................445 お 応用例 応用例 ....................................................................310 オーバフロー オーバフローによるカウンタクリア ................181 オペランド 24 ビットオペランド指定 .....................................30 か 外形寸法図 パッケージ外形寸法図 ..........................................12 解除 CAN コントローラの送信要求の解除 ...............471 スタンバイモードの割込みによる解除 ............137 ストップモードの解除 ........................................133 スリープモードの解除 ........................................129 タイムベースタイマモードの解除 ....................132 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 ハードウェア割込みの発生と解除 ......................65 バス動作停止を解除する条件 (HALT=0) ..........440 外部イベントカウンタ 外部イベントカウンタ ........................................212 外部クロック 外部クロック ........................................................351 振動子と外部クロックの接続 ..............................98 内部クロックおよび外部クロック ....................302 外部シフトクロックモード 外部シフトクロックモード ................................417 外部リセット 外部リセット端子のブロックダイヤグラム ..........................................................................110 外部リセット端子 外部リセット端子のブロックダイヤグラム ..........................................................................110 外部レベルレジスタ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ......................245 外部割込み DTP/ 外部割込みの概要 .......................................242 DTP/ 外部割込みの使用上の注意 .......................249 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................242 DTP/ 外部割込みのレジスタ ...............................243 DTP 要求と外部割込み要求の切換え ................248 外部割込みの動作 ................................................246 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............244 外部割込み要求レジスタ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............244 概要 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ...............................................204 CPU の概要 ..............................................................24 CPU メモリ空間の概要 ..........................................25 DTP/ 外部割込みの概要 .......................................242 クロックの概要 .......................................................84 クロックモジュレータの概要 .............................100 製品概要 .....................................................................2 タイムベースタイマの概要 .................................158 リセット動作の概要 .............................................111 カウンタ ウォッチドッグカウンタ .....................................168 カウンタの動作状態 .............................................215 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................445 受信および送信エラーカウンタ (RTEC) の内容 ..........................................................................445 リロードカウンタの動作 .....................................351 書込み MB90F947 同期シリアル書込み接続の基本構成 ..........................................................................538 書込み , データポーリング , 読出し (CE 制御 ) ..........................................................................623 書込み , データポーリング , 読出し (WE 制御 ) ..........................................................................622 書込み / 消去中の RY/BY タイミング ...............625 同期シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................542 同期シリアル書込み接続例 ( ライタから電源供給時 ) ..............................544 フラッシュメモリ書込み / 消去の詳細説明 ..........................................................................521 フラッシュメモリ書込み / 消去の方法 .............502 フラッシュメモリの書込み手順 .........................524 フラッシュメモリへのデータの書込み .............523 各クロック速度のリロード値とボーレート 各クロック速度のリロード値とボーレート ..........................................................................350 拡張インテリジェント I/O サービス EI2OS ( 拡張インテリジェント I/O サービス ) ..........................................................................309 拡張インテリジェント I/O サービス (EI2OS) ......................................................................54, 69 拡張インテリジェント I/O サービス (EI2OS) の 構造 ....................................................................70 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ........................................................75 拡張インテリジェント I/O サービス ディスクリプタ (ISD) ......................................71 拡張シリアル I/O インタフェース 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................423 拡張ステータス制御レジスタ 拡張ステータス制御レジスタ (ESCR2/3) ..........................................................................334 拡張通信制御レジスタ 拡張通信制御レジスタ (ECCR2/3) .....................336 各ブロックの説明 各ブロックの説明 ................................................319 間欠動作 CPU 間欠動作モード ....................................119, 127 間接アドレッシング 間接アドレッシング ............................................571 き 起動 単発変換モードの EI2OS 起動プログラム例 ..........................................................................275 停止変換モードの EI2OS 起動プログラム例 ..........................................................................281 連続変換モードの EI2OS 起動プログラム例 ..........................................................................278 基本構成 MB90F947 同期シリアル書込み接続の基本構成 ..........................................................................538 供給 クロック供給マップ ..............................................85 共通マシンクロック 共通マシンクロック周波数 ................................401 く クロック 16 ビットリロードタイマの内部クロック動作 ..........................................................................211 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) .............................211 8/16 ビット PPG のカウントクロックの選択 ..........................................................................235 PLL クロック逓倍率の選択 ..................................94 PPG0,1 クロック選択レジスタ (PPG01) ............229 外部クロック ........................................................351 外部シフトクロックモード ................................417 各クロック速度のリロード値とボーレート ..........................................................................350 共通マシンクロック周波数 ................................401 クロック供給マップ ..............................................85 クロック制御レジスタ (ICCR) ...........................399 クロック制御レジスタ (ICCR) の内容 ..............400 クロック選択レジスタ ..........................................88 クロック選択レジスタ (CKSCR) の構成 .............89 クロックの概要 ...................................................... 84 クロック発生部のブロックダイヤグラム ............................................................................ 86 クロックプリスケーラ設定 ................................401 クロックモード ....................................................119 クロックモードの移行 ..........................................94 クロックモードの切換え ....................................138 クロックモジュレータ ..........................................95 クロックモジュレータ制御レジスタ (CMCR) ..........................................................................101 クロックモジュレータ制御レジスタの機能 ..........................................................................102 クロックモジュレータの概要 ............................100 シフトクロック選択 ............................................413 振動子と外部クロックの接続 ..............................98 内部クロックおよび外部クロック ....................302 内部シフトクロックモード ................................417 639 発振クロック周波数とシリアルクロック 入力周波数 ......................................................540 マシンクロック .......................................................95 メインクロックモード , PLL クロックモード ............................................................................94 クロック供給マップ クロック供給マップ ...............................................85 クロック制御レジスタ クロック制御レジスタ (ICCR) ............................399 クロック制御レジスタ (ICCR) の内容 ...............400 クロック選択 クロック選択レジスタ ...........................................88 クロック選択レジスタ (CKSCR) の構成 .............89 シフトクロック選択 .............................................413 クロック選択レジスタ PPG0,1 クロック選択レジスタ (PPG01) ............229 クロック選択レジスタ ...........................................88 クロック選択レジスタ (CKSCR) の構成 .............89 クロック発生部 クロック発生部のブロックダイヤグラム ...........86 クロックモード 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................211 外部シフトクロックモード .................................417 クロックモード .....................................................119 クロックモードの移行 ...........................................94 クロックモードの切換え .....................................138 内部シフトクロックモード .................................417 メインクロックモード , PLL クロックモード ............................................................................94 クロックモジュレータ制御レジスタ クロックモジュレータ制御レジスタ (CMCR) ..........................................................................101 クロックモジュレータ制御レジスタの機能 ..........................................................................102 こ 構成例 アドレス一致検出機能のシステム構成例 ..........................................................................494 コマンド コマンドシーケンス表 .........................................511 チップ消去 / セクタ消去コマンドシーケンス ..........................................................................624 コモンレジスタバンクプリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................47 コンディションコードレジスタ コンディションコードレジスタ (CCR) ...............40 コンペアレジスタ CMOD1, CMOD0=01B のときの 2 コンペア レジスタでのサンプル出力波形 ..................190 さ 再スタート プログラマブル再スタート .................................352 640 し システム構成 アドレス一致検出機能のシステム構成例 ..........................................................................494 システムスタックポインタ ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) .................. 38 実効アドレス 実効アドレスフィールド ....................................580 実効アドレスフィールド 実効アドレスフィールド ....................................563 実行サイクル 実行サイクル数 ....................................................578 実行サイクル数計算方法 ....................................578 シフトクロック 外部シフトクロックモード ................................417 シフトクロック選択 ............................................413 内部シフトクロックモード ................................417 シフト動作 シフト動作のスタート / ストップタイミング ..........................................................................420 受信エラー 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................445 受信エラーカウンタ 受信および送信エラーカウンタ (RTEC) の内容 ..........................................................................445 受信オーバラン 受信オーバラン ....................................................475 受信オーバランレジスタ (ROVRR) ...................459 受信オーバランレジスタ 受信オーバランレジスタ (ROVRR) ...................459 受信完了 受信完了 ................................................................476 受信完了レジスタ (RCR) .....................................457 受信完了レジスタ 受信完了レジスタ (RCR) .....................................457 受信データレジスタ 受信データレジスタ / 送信データレジスタの ビット構成 (RDR2/3 / TDR2/3) .....................332 受信動作時 受信動作時 ( モード 0, モード 1, モード 3) の フラグのセットタイミング ..........................306 受信動作時 ( モード 2) のフラグの セットタイミング ..........................................307 受信メッセージ 受信メッセージの格納 ........................................474 受信割込み 受信割込み許可レジスタ (RIER) ........................460 受信割込み発生とフラグセットのタイミング ..........................................................................343 受信割込み許可レジスタ 受信割込み許可レジスタ (RIER) ........................460 出力端子機能 16 ビットリロードタイマの出力端子機能 ..........................................................................214 消去 書込み / 消去中の RY/BY タイミング ...............625 セクタ消去タイマフラグ (DQ3) .........................518 チップ消去 / セクタ消去コマンドシーケンス ..........................................................................624 フラッシュメモリ書込み / 消去の詳細説明 ..........................................................................521 フラッシュメモリ書込み / 消去の方法 .............502 フラッシュメモリのセクタ消去を一時停止する ..........................................................................529 フラッシュメモリのセクタ消去を再開する ..........................................................................530 フラッシュメモリの全データを消去する ( チップ消去 ) ..................................................526 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ..................................................527 状態遷移図 ウォッチドッグタイマの状態遷移図 .................167 状態遷移図 .............................................................135 初期値 8/16 ビット PPG の各ハードウェアの初期値 ..........................................................................238 シリアル I/O シリアル I/O の動作 .............................................416 シリアル I/O の動作状態 .....................................418 シリアル I/O のブロックダイヤグラム .............408 シリアル I/O のレジスタ .....................................409 シリアル I/O プリスケーラ (CDCR4) .................415 シリアル書込み接続 MB90F947 同期シリアル書込み接続の基本構成 ..........................................................................538 同期シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................542 同期シリアル書込み接続例 ( ライタから電源供給時 ) ..............................544 シリアルクロック入力周波数 発振クロック周波数とシリアルクロック 入力周波数 ......................................................540 シリアルステータスレジスタ シリアルステータスレジスタ (SSR2/3) .............329 シリアル制御レジスタ シリアル制御レジスタ (SCR2/3) ........................325 シリアルデータレジスタ シリアルデータレジスタ (SDR4) .......................414 シリアルモード制御ステータスレジスタ シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ..................................412 シリアルモード制御ステータスレジスタの 下位バイト (SMCS4) ......................................411 シリアルモード制御ステータスレジスタの 上位バイト (SMCS4) ......................................410 シリアルモード制御レジスタ シリアルモード制御レジスタ (UMC0) ..............289 シリアルモード制御レジスタ (UMC0) の内容 ..........................................................................290 シリアルモードレジスタ シリアルモードレジスタ (SMR2/3) ...................327 信号方式 信号方式 .................................................................355 振動子 振動子と外部クロックの接続 ...............................98 す 推奨設定例 推奨設定例 .............................................................146 スタート シフト動作のスタート / ストップタイミング ..........................................................................420 プログラマブル再スタート ................................352 スタートコンディション スタートコンディション ....................................402 スタンバイモード スタンバイモード ................................................119 スタンバイモード移行時の注意について ..........................................................................137 スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................138 スタンバイモードの動作状態 ............................128 スタンバイモードの割込みによる解除 ............137 スタンバイモードへの移行と割込み ................137 ステータスフラグ 送受信動作時のステータスフラグ ....................309 ステータスレジスタ EI2OS ステータスレジスタ (ISCS) .......................73 ステータスレジスタ (USR0) の構成 ..................292 ステータスレジスタ (USR0) の内容 ..................293 ストップ シフト動作のスタート / ストップタイミング ..........................................................................420 ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 ストップモード解除時 ........................................138 ストップモードの解除 ........................................133 ストップモードへの移行 ....................................133 ストップコンディション ストップコンディション ....................................402 ストップモード ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 ストップモード解除時 ........................................138 ストップモードの解除 ........................................133 ストップモードへの移行 ....................................133 スリープモード ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 スリープモードの解除 ........................................129 スリープモードへの移行 ....................................129 スレーブ 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) ..............................................393 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容 .................................393 7 ビットスレーブアドレスマスクレジスタ (ISMK) .............................................................396 7 ビットスレーブアドレスマスクレジスタの内容 ..........................................................................397 7 ビットスレーブアドレスレジスタ .................396 7 ビットスレーブアドレスレジスタの内容 ..........................................................................396 LIN スレーブデバイス .........................................375 LIN マスタ / スレーブ型通信機能 ......................373 スレーブアドレス検知 ........................................402 スレーブアドレスマスク ....................................403 マスタ / スレーブ型通信機能 .............................370 641 スレーブアドレスマスクレジスタ 7 ビットスレーブアドレスマスクレジスタ (ISMK) ..............................................................396 7 ビットスレーブアドレスマスクレジスタの内容 ..........................................................................397 スレーブアドレスレジスタ 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) ...............................................393 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容 ..................................393 7 ビットスレーブアドレスレジスタ ..................396 7 ビットスレーブアドレスレジスタの内容 ..........................................................................396 せ 制御信号 フラッシュメモリの制御信号 .............................507 制御ステータスレジスタ アウトプットコンペアの制御ステータスレジスタ ( 下位 ) ..............................................................185 アウトプットコンペアの制御ステータスレジスタ ( 上位 ) ..............................................................187 制御ステータスレジスタ (CSR)( 下位 ) .............435 制御ステータスレジスタ (CSR)( 上位 ) .............437 制御ステータスレジスタ (CSR 下位 ) の内容 ..........................................................................436 制御ステータスレジスタ (CSR 上位 ) の内容 ..........................................................................438 制御レジスタ メッセージバッファ制御レジスタ .....................434 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................629 製品概要 製品概要 .....................................................................2 セクタ構成 1M ビットフラッシュメモリのセクタ構成 ..........................................................................504 2M ビットフラッシュメモリのセクタ構成 ..........................................................................505 3M ビットフラッシュメモリのセクタ構成 ..........................................................................506 セクタ消去 セクタ消去タイマフラグ (DQ3) .........................518 チップ消去 / セクタ消去コマンドシーケンス ..........................................................................624 フラッシュメモリのセクタ消去を一時停止する ..........................................................................529 フラッシュメモリのセクタ消去を再開する ..........................................................................530 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ..................................................527 セクタ消去タイマフラグ セクタ消去タイマフラグ (DQ3) .........................518 セクタ消去手順 フラッシュメモリのセクタ消去手順 .................527 セクタプロテクト セクタプロテクト一時取消 .................................626 セクタプロテクト許可 / セクタプロテクト検証 ..........................................................................626 642 接続例 同期シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................542 同期シリアル書込み接続例 ( ライタから電源供給時 ) .............................544 フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源使用時 ) ........................546 フラッシュマイコンプログラマとの最小限の 接続例 ( ライタから電源供給時 ) ................548 設定例 推奨設定例 ............................................................146 セット バス動作停止をセットする条件 (HALT=1) ..........................................................................440 セットタイミング 6 つのフラグのセットタイミング .....................305 受信動作時 ( モード 0, モード 1, モード 3) の フラグのセットタイミング ..........................306 受信動作時 ( モード 2) のフラグの セットタイミング ..........................................307 送信動作時のフラグのセットタイミング ..........................................................................308 全体制御レジスタ 全体制御レジスタ ................................................434 全体制御レジスタの一覧 ....................................428 専用レジスタ 専用レジスタ .......................................................... 34 そ 送受信許可 送受信許可 ............................................................355 送受信動作時 送受信動作時のステータスフラグ ....................309 送信 RTR レジスタ 送信 RTR レジスタ (TRTRR) ..............................452 送信解除レジスタ 送信解除レジスタ (TCANR) ...............................454 送信完了レジスタ 送信完了レジスタ (TCR) .....................................455 送信データレジスタ 受信データレジスタ / 送信データレジスタの ビット構成 (RDR2/3 / TDR2/3) .....................332 送信データレジスタ (TDR2/3) ............................333 送信動作時 送信動作時のフラグのセットタイミング ..........................................................................308 送信要求レジスタ 送信要求レジスタ (TREQR) ................................451 送信割込み 送信割込み許可レジスタ (TIER) ........................456 送信割込み発生とフラグセットのタイミング ..........................................................................345 送信割込み要求発生タイミング ........................346 送信割込み許可レジスタ 送信割込み許可レジスタ (TIER) ........................456 双方向通信 双方向通信機能 ....................................................368 その他 その他 ......................................................................68 その他モード ........................................................507 ソフトウェア割込み ソフトウェア割込み .........................................54, 67 ソフトウェア割込みの構造 ...................................67 ソフトウェア割込みの動作 ...................................67 た タイマ 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................173 16 ビットフリーランタイマ ................................172 16 ビットフリーランタイマ 0/1 のレジスタ一覧 ..........................................................................174 16 ビットフリーランタイマのタイミング ..........................................................................182 16 ビットフリーランタイマの動作 ....................181 16 ビットフリーランタイマの ブロックダイヤグラム ..................................176 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ...............................................204 16 ビットリロードタイマのアンダフロー動作 ..........................................................................213 16 ビットリロードタイマの出力端子機能 ..........................................................................214 16 ビットリロードタイマの内部クロック動作 ..........................................................................211 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................211 16 ビットリロードタイマの ブロックダイヤグラム ..................................205 16 ビットリロードタイマのレジスタ ................206 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................165 ウォッチドッグタイマの起動方法 .....................168 ウォッチドッグタイマの状態遷移図 .................167 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................164 ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 セクタ消去タイマフラグ (DQ3) .........................518 タイマ制御ステータスレジスタ (TMCSR0) の 内容 ..................................................................207 タイマ制御ステータスレジスタ (TMCSR0) の 配置 ..................................................................207 タイムベースタイマ制御レジスタ (TBTC) ..........................................................................159 タイムベースタイマの概要 .................................158 タイムベースタイマのブロックダイヤグラム ..........................................................................158 タイムベースタイマモードの解除 .....................132 タイムベースタイマモードへの移行 .................131 フリーランタイマのタイマ制御ステータス レジスタ ( 下位 ) .............................................178 フリーランタイマのタイマ制御ステータス レジスタ ( 上位 ) .............................................180 フリーランタイマのタイマデータレジスタ ..........................................................................177 リセット時のウォッチドッグタイマの動作 ..........................................................................168 タイマ制御ステータスレジスタ タイマ制御ステータスレジスタ (TMCSR0) の 内容 ..................................................................207 タイマ制御ステータスレジスタ (TMCSR0) の 配置 ..................................................................207 フリーランタイマのタイマ制御ステータス レジスタ ( 下位 ) ............................................178 フリーランタイマのタイマ制御ステータス レジスタ ( 上位 ) ............................................180 タイマデータレジスタ フリーランタイマのタイマデータレジスタ ..........................................................................177 タイマレジスタ 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 タイミング 16 ビットフリーランタイマのタイミング ..........................................................................182 6 つのフラグのセットタイミング .....................305 RST と RY/BY タイミング ..................................625 アウトプットコンペアのタイミング ................194 インプットキャプチャ入力タイミング ............202 インプットキャプチャの取込みタイミング例 ..........................................................................201 書込み / 消去中の RY/BY タイミング ...............625 シフト動作のスタート / ストップタイミング ..........................................................................420 受信動作時 ( モード 0, モード 1, モード 3) の フラグのセットタイミング ..........................306 受信動作時 ( モード 2) のフラグの セットタイミング ..........................................307 受信割込み発生とフラグセットのタイミング ..........................................................................343 送信動作時のフラグのセットタイミング ..........................................................................308 送信割込み発生とフラグセットのタイミング ..........................................................................345 送信割込み要求発生タイミング ........................346 タイミングリミット超過フラグ (DQ5) .............517 ビットタイミングの設定 ....................................478 ビットタイミングレジスタ (BTR) .....................446 ビットタイミングレジスタ (BTR) の内容 ..........................................................................446 タイミングリミット超過フラグ タイミングリミット超過フラグ (DQ5) .............517 タイムベースカウンタ タイムベースカウンタ ........................................161 タイムベースタイマ ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 タイムベースタイマ制御レジスタ (TBTC) ..........................................................................159 タイムベースタイマの概要 ................................158 タイムベースタイマのブロックダイヤグラム ..........................................................................158 タイムベースタイマモードの解除 ....................132 タイムベースタイマモードへの移行 ................131 643 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタ (TBTC) ..........................................................................159 タイムベースタイマモード ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 タイムベースタイマモードの解除 .....................132 タイムベースタイマモードへの移行 .................131 多重割込み 多重割込み ...............................................................66 多バイト長データ 多バイト長データのアクセス ...............................33 メモリ空間における多バイト長データの配置 ............................................................................33 端子 16 ビットリロードタイマの出力端子機能 ..........................................................................214 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................211 8/10 ビット A/D コンバータの端子 ....................256 8/10 ビット A/D コンバータの端子部の ブロックダイヤグラム ..................................257 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................236 MB90947A/MB90F947(A)/MB90F949(A) の 端子配列図 ........................................................11 MB90F946A の端子配列図 ....................................10 MB90V390HA/HB の端子配列図 ............................9 UART2/3 端子直接アクセス ................................367 UART2/3 の端子 ....................................................322 外部リセット端子のブロックダイヤグラム ..........................................................................110 端子機能説明 ...........................................................13 モード端子 .....................................................111, 143 モードデータ読出し後の端子の状態 .................115 リセット中の端子の状態 .....................................115 単発変換モード 単発変換モードでの動作 .....................................269 単発変換モードの EI2OS 起動プログラム例 ..........................................................................275 ち 遅延割込み 遅延割込みのブロックダイヤグラム ...................80 遅延割込み発生 .......................................................82 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 遅延割込み要求ロックの使用上の注意 ...............80 遅延割込み要因発生 / 解除レジスタ 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 遅延割込み要求レジスタ 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 チップ消去 チップ消去 / セクタ消去コマンドシーケンス ..........................................................................624 フラッシュメモリの全データを消去する ( チップ消去 ) ..................................................526 644 注意 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................274 BVAL ビットによるメッセージバッファ禁止時の 注意 ..................................................................487 DTP/ 外部割込みの使用上の注意 .......................249 UART2/3 使用上の注意 .......................................376 スタンバイモード移行時の注意について ..........................................................................137 スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................138 遅延割込み要求ロックの使用上の注意 .............. 80 注意事項の回避について ......................................51 フラッシュメモリ使用上の注意 ........................531 リセット要因ビットの注意事項 ........................114 「DIV A, Ri」「DIVW A, RWi」命令の使用上の 注意 ....................................................................50 直接アドレッシング 直接アドレッシング ............................................564 て 停止 ウォッチドッグ停止 ............................................168 停止変換モードでの動作 ....................................270 停止変換モードの EI2OS 起動 プログラム例 ..................................................281 バス動作停止間の状態 (HALT=1) ......................440 バス動作停止を解除する条件 (HALT=0) ..........440 バス動作停止をセットする条件 (HALT=1) ..........................................................................440 フラッシュメモリのセクタ消去を一時停止する ..........................................................................529 停止変換モード 停止変換モードでの動作 ....................................270 停止変換モードの EI2OS 起動プログラム例 ..........................................................................281 低消費電力モード スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................138 低消費電力モード制御レジスタ (LPMCR) ..........................................................................123 低消費電力モード制御レジスタへのアクセス ..........................................................................125 低消費電力モードの設定 ....................................479 低消費電力モードの動作状態 ............................136 低消費電力モードのブロックダイヤグラム ..........................................................................121 低消費電力モード制御レジスタ スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................138 低消費電力モード制御レジスタ (LPMCR) ..........................................................................123 低消費電力モード制御レジスタへのアクセス ..........................................................................125 データ A/D データレジスタ (ADCR0, ADCR1) .............266 A/D 変換データ保護機能 ....................................272 インプットキャプチャデータレジスタ ............196 受信データレジスタ / 送信データレジスタの ビット構成 (RDR2/3 / TDR2/3) .....................332 送信データレジスタ (TDR2/3) ............................333 多バイト長データのアクセス ...............................33 データレジスタ (IDAR) .......................................398 データレジスタ x (x=0 ~ 15) (DTRx) ................469 データレジスタの内容 .........................................398 転送データフォーマット .....................................303 フラッシュメモリの全データを消去する ( チップ消去 ) ..................................................526 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ..................................................527 フラッシュメモリへのデータの書込み .............523 フリーランタイマのタイマデータレジスタ ..........................................................................177 ポートデータレジスタ .........................................150 ポートデータレジスタの読出し .........................151 メッセージバッファ (DLC レジスタと データレジスタ ) の一覧 ...............................432 メモリ空間における多バイト長データの配置 ............................................................................33 モードデータ .........................................................144 モードデータ読出し後の端子の状態 .................115 レート・データレジスタ (URD0) ......................296 レート・データレジスタ (URD0) の内容 .........297 データカウンタ データカウンタ (DCT) ...........................................71 データフレーム データフレームおよびリモートフレームの 受信に対する処理 ..........................................475 データポーリング 書込み , データポーリング , 読出し (CE 制御 ) ..........................................................................623 書込み , データポーリング , 読出し (WE 制御 ) ..........................................................................622 データポーリング .................................................624 データポーリングフラグ データポーリングフラグ (DQ7) .........................515 データ保護機能 A/D 変換データ保護機能 .....................................272 データリード 読出しアクセスによるデータリード .................621 データレジスタ データレジスタ (IDAR) .......................................398 データレジスタ x (x=0 ~ 15) (DTRx) ................469 データレジスタの内容 .........................................398 メッセージバッファ (DLC レジスタと データレジスタ ) の一覧 ...............................432 デバイス LIN スレーブデバイス .........................................375 デバイスの取扱い ...................................................20 転送データフォーマット 転送データフォーマット .....................................303 と 同期シリアル書込み接続例 同期シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................542 同期シリアル書込み接続例 ( ライタから電源供給時 ) ..............................544 同期方式 同期方式 ................................................................355 同期モード 同期モード ( 動作モード 2) の動作 ....................359 動作 16 ビットフリーランタイマの動作 ...................181 16 ビットリロードタイマのアンダフロー動作 ..........................................................................213 16 ビットリロードタイマの内部クロック動作 ..........................................................................211 8/16 ビット PPG の動作 .......................................232 8/16 ビット PPG の動作モード ...........................232 CPU 動作モードと消費電流 ................................118 DTP の動作 ............................................................246 PPG0 動作モード制御レジスタ (PPGC0) ..........................................................................225 PPG1 動作モード制御レジスタ (PPGC1) ..........................................................................227 UART0 の動作モード ..........................................298 UART2/3 の動作 ...................................................354 UART2/3 の動作モード .......................................316 アドレス一致検出機能の動作 ............................493 外部割込みの動作 ................................................246 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ........................................................75 シフト動作のスタート / ストップタイミング ..........................................................................420 シリアル I/O の動作 .............................................416 ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 ソフトウェア割込みの動作 ..................................67 単発変換モードでの動作 ....................................269 停止変換モードでの動作 ....................................270 同期モード ( 動作モード 2) の動作 ....................359 ハードウェア割込みの動作 ..................................64 バス動作停止間の状態 (HALT=1) ......................440 バス動作停止を解除する条件 (HALT=0) ..........................................................................440 バス動作停止をセットする条件 (HALT=1) .........................................................440 非同期 LIN モード動作 ( 動作モード 3) ............363 非同期モードの動作 ............................................356 リセット時のウォッチドッグタイマの動作 ..........................................................................168 リセット動作の概要 ............................................111 リロードカウンタの動作 ....................................351 動作モード 8/16 ビット PPG の動作モード ...........................232 CPU 動作モードと消費電流 ................................118 PPG0 動作モード制御レジスタ (PPGC0) ..........225 PPG1 動作モード制御レジスタ (PPGC1) ..........227 UART0 の動作モード ..........................................298 UART2/3 の動作モード .......................................316 同期モード ( 動作モード 2) の動作 ....................359 非同期 LIN モード動作 ( 動作モード 3) ............363 特長 1M/2M/3M ビットフラッシュメモリの特長 ..........................................................................502 CAN コントローラの特長 ...................................426 UART0 の特長 .......................................................286 特長 ............................................................................3 645 トグルビット トグルビット .........................................................625 トグルビット 2 フラグ (DQ2) .............................519 トグルビットフラグ (DQ6) .................................516 な 内部クロック 16 ビットリロードタイマの内部クロック動作 ..........................................................................211 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................211 内部クロックおよび外部クロック .....................302 内部シフトクロックモード 内部シフトクロックモード .................................417 に 入出力回路 入出力回路 ...............................................................17 入出力タイマ 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................173 入力端子機能 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................211 入力レベル選択レジスタ 入力レベル選択レジスタ (MB90V390HA/HB のみ ) ..............................155 は ハードウェア割込み ハードウェア割込み .........................................54, 63 ハードウェア割込みの構造 ...................................63 ハードウェア割込みの動作 ...................................64 ハードウェア割込みの発生と解除 .......................65 ハードウェア・シーケンス・フラグ ハードウェア・シーケンス・フラグ .................513 バスステータスレジスタ バスステータスレジスタ (IBSR) ........................384 バスステータスレジスタ (IBSR) の内容 ...........385 バス制御レジスタ バス制御レジスタ (IBCR) ....................................388 バス制御レジスタ (IBCR) の内容 .......................389 バス動作停止 バス動作停止間の状態 (HALT=1) ......................440 バス動作停止を解除する条件 (HALT=0) ..........440 バス動作停止をセットする条件 (HALT=1) .........................................................440 バスモード バスモード設定ビット .........................................144 パッケージ パッケージ外形寸法図 ...........................................12 発振安定待ち 発振安定待ち時間 ...........................................97, 138 発振安定待ちリセット状態 .................................109 発振クロック周波数 発振クロック周波数とシリアルクロック 入力周波数 ......................................................540 646 バッファアドレスポインタ バッファアドレスポインタ (BAP) .......................72 パリティビット パリティビット ....................................................304 パルス幅 8/16 ビット PPG のリロード値とパルス幅の 関係 ..................................................................234 バンクセレクト バンクセレクトプリフィックス ..........................46 バンク方式 バンク方式によるアドレス指定 ..........................31 汎用レジスタ 汎用レジスタ .......................................................... 36 ひ ビット構成 受信データレジスタ / 送信データレジスタの ビット構成 (RDR2/3 / TDR2/3) .....................332 ボーレートジェネレータレジスタ (BGR02/ BGR03/BGR12/BGR13) のビット構成 .........338 ビットタイミング ビットタイミングの設定 ....................................478 ビットタイミングレジスタ (BTR) .....................446 ビットタイミングレジスタ (BTR) の内容 ..........................................................................446 ビットタイミングレジスタ ビットタイミングレジスタ (BTR) .....................446 ビットタイミングレジスタ (BTR) の内容 ..........................................................................446 非同期 CLK 非同期ボーレート .......................................299 非同期 LIN モード動作 ( 動作モード 3) ............363 非同期モードの動作 ............................................356 ふ フォーマット 転送データフォーマット ....................................303 フレームフォーマットの設定 ............................478 フラグ 6 つのフラグのセットタイミング .....................305 受信動作時 ( モード 0, モード 1, モード 3) の フラグのセットタイミング ..........................306 受信動作時 ( モード 2) のフラグのセット タイミング ......................................................307 セクタ消去タイマフラグ (DQ3) .........................518 送信動作時のフラグのセットタイミング ..........................................................................308 タイミングリミット超過フラグ (DQ5) .............517 トグルビット 2 フラグ (DQ2) .............................519 トグルビットフラグ (DQ6) .................................516 ハードウェア・シーケンス・フラグ ................513 フラグ変化抑止プリフィックス (NCC) .............. 47 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............244 フラグセット 受信割込み発生とフラグセットの タイミング ......................................................343 送信割込み発生とフラグセットの タイミング ......................................................345 フラグ変化抑止プリフィックス フラグ変化抑止プリフィックス (NCC) ...............47 フラッシュマイコンプログラマ フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源使用時 ) .........................546 フラッシュマイコンプログラマとの最小限の 接続例 ( ライタから電源供給時 ) .................548 フラッシュメモリ 1M/2M/3M ビットフラッシュメモリの特長 ..........................................................................502 1M/2M/3M ビットフラッシュメモリの プログラム例 ..................................................533 1M ビットフラッシュメモリのセクタ構成 ..........................................................................504 2M ビットフラッシュメモリのセクタ構成 ..........................................................................505 3M ビットフラッシュメモリのセクタ構成 ..........................................................................506 フラッシュメモリ書込み / 消去の詳細説明 ..........................................................................521 フラッシュメモリ書込み / 消去の方法 .............502 フラッシュメモリ使用上の注意 .........................531 フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................509 フラッシュメモリ全体のブロックダイヤグラム ..........................................................................503 フラッシュメモリにおけるリセットベクタ アドレス ..........................................................532 フラッシュメモリの書込み手順 .........................524 フラッシュメモリの制御信号 .............................507 フラッシュメモリのセクタ消去手順 .................527 フラッシュメモリのセクタ消去を一時停止する ..........................................................................529 フラッシュメモリのセクタ消去を再開する ..........................................................................530 フラッシュメモリの全データを消去する ( チップ消去 ) ..................................................526 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ..................................................527 フラッシュメモリの読出し / リセット状態 ..........................................................................522 フラッシュメモリのレジスタ .............................502 フラッシュメモリへのデータの書込み .............523 フラッシュメモリモード .....................................507 フラッシュメモリ制御ステータスレジスタ フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................509 フリーランタイマ 16 ビットフリーランタイマ ................................172 16 ビットフリーランタイマ 0/1 のレジスタ一覧 ..........................................................................174 16 ビットフリーランタイマのタイミング ..........................................................................182 16 ビットフリーランタイマの動作 ....................181 16 ビットフリーランタイマの ブロックダイヤグラム ..................................176 フリーランタイマのタイマ制御ステータス レジスタ ( 下位 ) .............................................178 フリーランタイマのタイマ制御ステータス レジスタ ( 上位 ) .............................................180 フリーランタイマのタイマデータレジスタ ..........................................................................177 プリスケーラ プリスケーラ設定 ................................................447 プリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................ 47 バンクセレクトプリフィックス ..........................46 フラグ変化抑止プリフィックス (NCC) .............. 47 プリフィックスコードが連続している場合 ............................................................................ 48 割込み抑止命令とプリフィックス命令に関する 制約 ....................................................................48 フレーム フレームフォーマットの設定 ............................478 フローチャート CAN コントローラの受信フローチャート ..........................................................................477 CAN コントローラの送信フローチャート ..........................................................................473 プログラマブル プログラマブル再スタート ................................352 プログラミングフローチャート プログラミングフローチャート ........................405 プログラム 1M/2M/3M ビットフラッシュメモリの プログラム例 ..................................................533 単発変換モードの EI2OS 起動プログラム例 ..........................................................................275 停止変換モードの EI2OS 起動プログラム例 ..........................................................................281 プログラムアドレス検出制御 / ステータス レジスタ (PACSR0) ........................................492 プログラムアドレス検出レジスタ (PADR0 ~ PADR2) ........................................491 連続変換モードの EI2OS 起動 プログラム例 ..................................................278 プログラムアドレス検出制御 / ステータスレジスタ プログラムアドレス検出制御 / ステータス レジスタ (PACSR0) ........................................492 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0 ~ PADR2) ........................................491 プログラムカウンタ プログラムカウンタ (PC) ......................................43 プログラムパッチ プログラムパッチ処理例 ....................................495 プロセッサステータス プロセッサステータス (PS) ..................................40 ブロック 各ブロックの説明 ................................................319 ブロックダイヤグラム 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................173 16 ビットフリーランタイマの ブロックダイヤグラム ..................................176 16 ビットリロードタイマの ブロックダイヤグラム ..................................205 8/10 ビット A/D コンバータの端子部の ブロックダイヤグラム ..................................257 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................254 8/16 ビット PPG のブロックダイヤグラム ..........................................................................219 647 CAN コントローラのブロックダイヤグラム ..........................................................................427 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................242 MB90F946A のブロックダイヤグラム ..................6 MB90F947(A) と MB90947A の ブロックダイヤグラム ......................................7 MB90F949(A) のブロックダイヤグラム ................8 MB90V390HA/HB のブロックダイヤグラム ..............................................................................5 ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................498 UART0 のブロックダイヤグラム .......................287 UART2/3 のブロックダイヤグラム ....................318 アウトプットコンペアのブロックダイヤグラム ..........................................................................183 アドレス一致検出機能のブロックダイヤグラム ..........................................................................490 インプットキャプチャのブロックダイヤグラム ..........................................................................195 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................164 外部リセット端子のブロックダイヤグラム ..........................................................................110 クロック発生部のブロックダイヤグラム ...........86 シリアル I/O のブロックダイヤグラム .............408 タイムベースタイマのブロックダイヤグラム ..........................................................................158 遅延割込みのブロックダイヤグラム ...................80 低消費電力モードのブロックダイヤグラム ..........................................................................121 フラッシュメモリ全体のブロックダイヤグラム ..........................................................................503 ほ ポート I/O ポート ..............................................................148 I/O ポートのレジスタ ..........................................149 ポートデータレジスタ .........................................150 ポートデータレジスタの読出し .........................151 ポート方向レジスタ .............................................152 ポート方向レジスタの読出し .............................153 ポートデータレジスタ ポートデータレジスタ .........................................150 ポートデータレジスタの読出し .........................151 ポート方向レジスタ ポート方向レジスタ .............................................152 ポート方向レジスタの読出し .............................153 ボーレート CLK 同期ボーレート ............................................299 CLK 非同期ボーレート ........................................299 UART2/3 ボーレート選択 ....................................347 各クロック速度のリロード値と ボーレート ......................................................350 ボーレートの計算 .................................................349 ボーレートジェネレータレジスタ ボーレートジェネレータレジスタ (BGR02/ BGR03/BGR12/BGR13) のビット構成 ..........................................................................338 648 ま マシンクロック マシンクロック ...................................................... 95 マスタ LIN マスタ / スレーブ型通信機能 ......................373 マスタ / スレーブ型通信機能 .............................370 み 未定義命令 未定義命令の実行 ..................................................78 未定義命令の実行による例外発生 ......................78 め 命令 未定義命令の実行 ..................................................78 未定義命令の実行による例外発生 ......................78 命令の種類 ............................................................561 命令マップの構造 ................................................599 割込み抑止命令 ...................................................... 48 割込み抑止命令とプリフィックス命令に関する 制約 ....................................................................48 「DIV A, Ri」「DIVW A, RWi」命令の使用上の 注意 ....................................................................50 命令一覧表 F2MC-16LX 命令一覧表 .......................................585 メインクロックモード メインクロックモード , PLL クロックモード ............................................................................ 94 メッセージ 受信メッセージの格納 ........................................474 メッセージバッファ BVAL ビットによるメッセージバッファ禁止時の 注意 ..................................................................487 メッセージバッファ ....................................434, 465 メッセージバッファ (DLC レジスタと データレジスタ ) の一覧 ...............................432 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................430 メッセージバッファ (x) による受信方法 ..........................................................................482 メッセージバッファ (x) による送信方法 ..........................................................................480 メッセージバッファ制御レジスタ ....................434 メッセージバッファ有効レジスタ (BVALR) ..........................................................................449 メッセージバッファ制御レジスタ メッセージバッファ制御レジスタ ....................434 メッセージバッファ有効レジスタ メッセージバッファ有効レジスタ (BVALR) ..........................................................................449 メモリアクセスモード メモリアクセスモード ........................................142 メモリ空間 CPU メモリ空間の概要 ..........................................25 メモリ空間における多バイト長データの配置 ............................................................................ 33 メモリ空間マップ ..................................................28 メルチレベルメッセージバッファ メルチレベルメッセージバッファの構成の決定 ..........................................................................484 も モード 8/16 ビット PPG の動作モード ...........................232 CAN ダイレクトモードレジスタ (CDMR) ..........................................................................486 CAN ダイレクトモードレジスタの内容 ...........486 CPU 間欠動作モード ....................................119, 127 CPU 動作モードと消費電流 ................................118 PPG0 動作モード制御レジスタ (PPGC0) ...........225 PPG1 動作モード制御レジスタ (PPGC1) ...........227 UART0 の動作モード ...........................................298 UART2/3 の動作モード ........................................316 位相変調モードの推奨起動手順 .........................103 外部シフトクロックモード .................................417 クロックモード .....................................................119 クロックモードの移行 ...........................................94 クロックモードの切換え .....................................138 受信動作時 ( モード 0, モード 1, モード 3) の フラグのセットタイミング ..........................306 受信動作時 ( モード 2) のフラグの セットタイミング ..........................................307 シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ..................................412 シリアルモード制御ステータスレジスタの 下位バイト (SMCS4) ......................................411 シリアルモード制御ステータスレジスタの 上位バイト (SMCS4) ......................................410 シリアルモード制御レジスタ (UMC0) ..............289 シリアルモード制御レジスタ (UMC0) の内容 ..........................................................................290 シリアルモードレジスタ (SMR2/3) ...................327 スタンバイモード .................................................119 スタンバイモード移行時の注意について ..........................................................................137 スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................138 スタンバイモードの動作状態 .............................128 スタンバイモードの割込みによる解除 .............137 スタンバイモードへの移行と割込み .................137 ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグタイマの 動作 ..................................................................168 ストップモード解除時 .........................................138 ストップモードの解除 .........................................133 ストップモードへの移行 .....................................133 スリープモードの解除 .........................................129 スリープモードへの移行 .....................................129 その他モード .........................................................507 タイムベースタイマモードの解除 .....................132 タイムベースタイマモードへの移行 .................131 単発変換モードでの動作 .....................................269 単発変換モードの EI2OS 起動プログラム例 ..........................................................................275 停止変換モードでの動作 .....................................270 停止変換モードの EI2OS 起動プログラム例 ..........................................................................281 低消費電力モード制御レジスタ (LPMCR) ..........................................................................123 低消費電力モード制御レジスタへのアクセス ..........................................................................125 低消費電力モードの設定 ....................................479 低消費電力モードの動作状態 ............................136 低消費電力モードのブロックダイヤグラム ..........................................................................121 同期モード ( 動作モード 2) の動作 ....................359 内部シフトクロックモード ................................417 バスモード設定ビット ........................................144 非同期 LIN モード動作 ( 動作モード 3) ............363 非同期モードの動作 ............................................356 フラッシュメモリモード ....................................507 メインクロックモード , PLL クロックモード ............................................................................ 94 メモリアクセスモード ........................................142 モード端子 ....................................................111, 143 モードデータ ........................................................144 モードデータ読出し後の端子の状態 ................115 モードフェッチ ....................................................111 連続変換モードの EI2OS 起動プログラム例 ..........................................................................278 モード端子 モード端子 ....................................................111, 143 モードデータ モードデータ ........................................................144 モードデータ読出し後の端子の状態 ................115 モードフェッチ モードフェッチ ....................................................111 モジュール ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................498 アウトプットコンペア ( モジュールごとに 2 チャネル ) .................172 インプットキャプチャ ( モジュールごとに 2 チャネル ) .................173 ゆ ユーザスタックポインタ ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) .................. 38 優先順位 STP, SLP, TMD ビットの優先順位 .....................125 よ 要求レベル設定レジスタ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ......................245 読出し 書込み , データポーリング , 読出し (CE 制御 ) ..........................................................................623 書込み , データポーリング , 読出し (WE 制御 ) ..........................................................................622 フラッシュメモリの読出し / リセット状態 ..........................................................................522 ポートデータレジスタの読出し ........................151 ポート方向レジスタの読出し ............................153 モードデータ読出し後の端子の状態 ................115 読出しアクセスによるデータリード ................621 649 ら ラストイベント表示レジスタ ラストイベント表示レジスタ (LEIR) ................442 ラストイベント表示レジスタ (LEIR) の内容 ..........................................................................443 り リセット 外部リセット端子のブロックダイヤグラム ..........................................................................110 発振安定待ちリセット状態 .................................109 フラッシュメモリにおけるリセットベクタ アドレス ..........................................................532 フラッシュメモリの読出し / リセット状態 ..........................................................................522 リセット時のウォッチドッグタイマの動作 ..........................................................................168 リセット中の端子の状態 .....................................115 リセット動作の概要 .............................................111 リセット要因 .........................................................106 リセット要因と発振安定待ち時間 .....................108 リセット要因ビット .............................................113 リセット要因ビットとリセット要因の対応 ..........................................................................113 リセット要因ビットの注意事項 .........................114 リセット動作 リセット動作の概要 .............................................111 リセットベクタ フラッシュメモリにおけるリセットベクタ アドレス ..........................................................532 リセット要因 リセット要因 .........................................................106 リセット要因と発振安定待ち時間 .....................108 リセット要因ビット .............................................113 リセット要因ビットとリセット要因の対応 ..........................................................................113 リセット要因ビットの注意事項 .........................114 リモートフレーム データフレームおよびリモートフレームの 受信に対する処理 ..........................................475 リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................453 リモートフレーム受信待機レジスタ リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................453 リモート要求受信レジスタ リモート要求受信レジスタ (RRTRR) ................458 リロード 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ...............................................204 16 ビットリロードタイマのアンダフロー動作 ..........................................................................213 16 ビットリロードタイマの出力端子機能 ........214 16 ビットリロードタイマの内部クロック動作 ..........................................................................211 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................211 650 16 ビットリロードタイマの ブロックダイヤグラム ..................................205 16 ビットリロードタイマのレジスタ ...............206 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................234 各クロック速度のリロード値とボーレート ..........................................................................350 リロードカウンタの動作 ....................................351 リロードレジスタ (PRLL, PRLH) .......................231 リロードカウンタ リロードカウンタの動作 ....................................351 リロードタイマ 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ...............................................204 16 ビットリロードタイマのアンダフロー動作 ..........................................................................213 16 ビットリロードタイマの出力端子機能 ..........................................................................214 16 ビットリロードタイマの内部クロック動作 ..........................................................................211 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) .............................211 16 ビットリロードタイマの ブロックダイヤグラム ..................................205 16 ビットリロードタイマのレジスタ ...............206 リロード値 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................234 各クロック速度のリロード値とボーレート ..........................................................................350 リロードレジスタ 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 リロードレジスタ (PRLL, PRLH) .......................231 れ 例外 例外 ..........................................................................55 レート・データレジスタ レート・データレジスタ (URD0) ......................296 レート・データレジスタ (URD0) の内容 ..........................................................................297 レジスタ 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ............................................394 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の内容 ...............................395 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) ..............................................393 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容 .................................393 16 ビットアウトプットコンペアのレジスタ一覧 ..........................................................................174 16 ビットインプットキャプチャのレジスタ一覧 ..........................................................................175 16 ビットタイマレジスタ (TMR0)/ 16 ビットリロードレジスタ (TMRLR0) の レジスタ配置 ..................................................210 16 ビットフリーランタイマ 0/1 のレジスタ一覧 ..........................................................................174 16 ビットリロードタイマのレジスタ ................206 7 ビットスレーブアドレスマスクレジスタ (ISMK) ..............................................................396 7 ビットスレーブアドレスマスクレジスタの内容 ..........................................................................397 7 ビットスレーブアドレスレジスタ ..................396 7 ビットスレーブアドレスレジスタの内容 ..........................................................................396 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................258 8/16 ビット PPG のレジスタ ...............................223 A/D 制御ステータスレジスタ 0(ADCS0) ..........263 A/D 制御ステータスレジスタ 1(ADCS1) ..........260 A/D データレジスタ (ADCR0, ADCR1) .............266 CAN ダイレクトモードレジスタ (CDMR) ........486 CAN ダイレクトモードレジスタの内容 ...........486 CMOD1, CMOD0=01B のときの 2 コンペア レジスタでのサンプル出力波形 ..................190 DLC レジスタ x (x:0 ~ 15) (DLCRx) ..................468 DTP/ 外部割込みのレジスタ ...............................243 EI2OS ステータスレジスタ (ISCS) .......................73 I/O ポートのレジスタ ..........................................149 I/O レジスタアドレスポインタ (IOA) .................72 I2C インタフェースのレジスタ一覧 ..................382 IDE レジスタ (IDER) ............................................450 ID レジスタ x (x:0 ~ 15) (IDRx) .........................466 PLL および特殊構成制御レジスタ (PSCCR) の 構成 ....................................................................92 PPG0,1 クロック選択レジスタ (PPG01) ............229 PPG0 動作モード制御レジスタ (PPGC0) ...........225 PPG1 動作モード制御レジスタ (PPGC1) ...........227 ROM ミラー機能選択レジスタ (ROMM) ..........499 UART0 のレジスタ ...............................................288 UART2/3 のレジスタ ............................................324 アウトプットコンペアの制御ステータスレジスタ ( 下位 ) ..............................................................185 アウトプットコンペアの制御ステータスレジスタ ( 上位 ) ..............................................................187 アウトプットコンペアレジスタ .........................184 アウトプットコンペアレジスタ 0 (4) 値と 一致したときのカウンタクリア ..................182 アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................461 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................463 アナログ入力許可 /ADC 選択レジスタの 下位ビット (ADER0) ......................................259 アナログ入力許可 /ADC 選択レジスタの 上位ビット (ADER1) ......................................259 アナログ入力許可レジスタ .........................154, 256 インタラプトレベルマスクレジスタ (ILM) ............................................................................41 インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45) ....................................199 インプットキャプチャ制御ステータスレジスタ ..........................................................................197 インプットキャプチャデータレジスタ .............196 インプットデータレジスタ (UIDR0) とアウト プットデータレジスタ (UODR0) .................295 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................165 拡張ステータス制御レジスタ (ESCR2/3) ..........................................................................334 拡張通信制御レジスタ (ECCR2/3) .....................336 クロック制御レジスタ (ICCR) ...........................399 クロック制御レジスタ (ICCR) の内容 ..............400 クロック選択レジスタ ..........................................88 クロック選択レジスタ (CKSCR) の構成 .............89 クロックモジュレータ制御レジスタ (CMCR) ..........................................................................101 クロックモジュレータ制御レジスタの機能 ..........................................................................102 コモンレジスタバンクプリフィックス (CMR) ............................................................................ 47 コンディションコードレジスタ (CCR) ...............40 受信オーバランレジスタ (ROVRR) ...................459 受信完了レジスタ (RCR) .....................................457 受信データレジスタ / 送信データレジスタの ビット構成 (RDR2/3 / TDR2/3) .....................332 受信割込み許可レジスタ (RIER) ........................460 シリアル I/O のレジスタ .....................................409 シリアルステータスレジスタ (SSR2/3) ............329 シリアル制御レジスタ (SCR2/3) ........................325 シリアルデータレジスタ (SDR4) .......................414 シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ..................................412 シリアルモード制御ステータスレジスタの 下位バイト (SMCS4) ......................................411 シリアルモード制御ステータスレジスタの 上位バイト (SMCS4) ......................................410 シリアルモード制御レジスタ (UMC0) ..............289 シリアルモード制御レジスタ (UMC0) の内容 ..........................................................................290 シリアルモードレジスタ (SMR2/3) ...................327 スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................138 ステータスレジスタ (USR0) の構成 ..................292 ステータスレジスタ (USR0) の内容 ..................293 制御ステータスレジスタ (CSR)( 下位 ) ............435 制御ステータスレジスタ (CSR)( 上位 ) ............437 制御ステータスレジスタ (CSR 下位 ) の内容 ..........................................................................436 制御ステータスレジスタ (CSR 上位 ) の内容 ..........................................................................438 全体制御レジスタ ................................................434 全体制御レジスタの一覧 ....................................428 専用レジスタ .......................................................... 34 送信 RTR レジスタ (TRTRR) ..............................452 送信解除レジスタ (TCANR) ...............................454 送信完了レジスタ (TCR) .....................................455 送信データレジスタ (TDR2/3) ............................333 送信要求レジスタ (TREQR) ................................451 送信割込み許可レジスタ (TIER) ........................456 タイマ制御ステータスレジスタ (TMCSR0) の 内容 ..................................................................207 タイマ制御ステータスレジスタ (TMCSR0) の 配置 ..................................................................207 タイムベースタイマ制御レジスタ (TBTC) ..........................................................................159 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 低消費電力モード制御レジスタ (LPMCR) ..........................................................................123 低消費電力モード制御レジスタへのアクセス ..........................................................................125 651 データレジスタ (IDAR) .......................................398 データレジスタ x (x=0 ~ 15) (DTRx) ................469 データレジスタの内容 .........................................398 入力レベル選択レジスタ (MB90V390HA/HB のみ ) ..............................155 バスステータスレジスタ (IBSR) ........................384 バスステータスレジスタ (IBSR) の内容 ...........385 バス制御レジスタ (IBCR) ....................................388 バス制御レジスタ (IBCR) の内容 .......................389 汎用レジスタ ...........................................................36 ビットタイミングレジスタ (BTR) .....................446 ビットタイミングレジスタ (BTR) の内容 ..........................................................................446 フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................509 フラッシュメモリのレジスタ .............................502 フリーランタイマのタイマ制御ステータス レジスタ ( 下位 ) .............................................178 フリーランタイマのタイマ制御ステータス レジスタ ( 上位 ) .............................................180 フリーランタイマのタイマデータレジスタ ..........................................................................177 プログラムアドレス検出制御 / ステータス レジスタ (PACSR0) ........................................492 プログラムアドレス検出レジスタ (PADR0 ~ PADR2) ........................................491 ポートデータレジスタ .........................................150 ポートデータレジスタの読出し .........................151 ポート方向レジスタ .............................................152 ポート方向レジスタの読出し .............................153 ボーレートジェネレータレジスタ (BGR02/ BGR03/BGR12/BGR13) のビット構成 ..........................................................................338 メッセージバッファ (DLC レジスタと データレジスタ ) の一覧 ...............................432 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................430 メッセージバッファ制御レジスタ .....................434 メッセージバッファ有効レジスタ (BVALR) ..........................................................................449 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ ) ......................245 ラストイベント表示レジスタ (LEIR) ................442 ラストイベント表示レジスタ (LEIR) の内容 ..........................................................................443 リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................453 リモート要求受信レジスタ (RRTRR) ................458 リロードレジスタ (PRLL, PRLH) .......................231 レート・データレジスタ (URD0) ......................296 レート・データレジスタ (URD0) の内容 ..........................................................................297 レジスタバンク .......................................................44 レジスタバンクポインタ (RP) ..............................41 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............244 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............244 割込み制御レジスタ (ICR) ....................................58 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................629 652 レジスタ一覧 16 ビットアウトプットコンペアのレジスタ一覧 ..........................................................................174 16 ビットインプットキャプチャのレジスタ一覧 ..........................................................................175 16 ビットフリーランタイマ 0/1 のレジスタ一覧 ..........................................................................174 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................258 I2C インタフェースのレジスタ一覧 ..................382 レジスタバンク レジスタバンク ...................................................... 44 レジスタバンクポインタ レジスタバンクポインタ (RP) ..............................41 連続変換モード 連続変換モードの EI2OS 起動プログラム例 ..........................................................................278 わ 割込み 8/10 ビット A/D コンバータの割込み ...............268 8/10 ビット A/D コンバータの割込みと EI2OS ..........................................................................268 8/16 ビット PPG の割込み ...................................237 DTP/ 外部割込みの概要 .......................................242 DTP/ 外部割込みの使用上の注意 .......................249 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................242 DTP/ 外部割込みのレジスタ ...............................243 DTP 要求と外部割込み要求の切換え ................248 LIN-UART2/3 の割込み .......................................339 LIN-UART2/3 の割込みと EI2OS ........................341 MB90945 割込みベクタ一覧表 ............................. 67 UART2/3 の割込みと EI2OS ................................317 インターバル割込み機能 ....................................161 インテリジェント I/O サービス (EI2OS) 機能と 割込み ..............................................................204 外部割込みの動作 ................................................246 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................423 受信割込み許可レジスタ (RIER) ........................460 受信割込み発生とフラグセットのタイミング ..........................................................................343 スタンバイモードの割込みによる解除 ............137 スタンバイモードへの移行と割込み ................137 送信割込み許可レジスタ (TIER) ........................456 送信割込み発生とフラグセットのタイミング ..........................................................................345 送信割込み要求発生タイミング ........................346 ソフトウェア割込み ........................................54, 67 ソフトウェア割込みの構造 ..................................67 ソフトウェア割込みの動作 ..................................67 多重割込み ..............................................................66 遅延割込みのブロックダイヤグラム .................. 80 遅延割込み発生 ...................................................... 82 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 遅延割込み要求ロックの使用上の注意 .............. 80 ハードウェア割込み ........................................54, 63 ハードウェア割込みの構造 ..................................63 ハードウェア割込みの動作 ..................................64 ハードウェア割込みの発生と解除 .......................65 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............244 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ ) ...............244 割込み制御レジスタ (ICR) ....................................58 割込みフロー ...........................................................61 割込みベクタ ...........................................................56 割込みベクタ一覧表 .............................................627 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................629 割込み抑止命令 .......................................................48 割込み抑止命令とプリフィックス命令に関する 制約 ....................................................................48 割込み /DTP 許可レジスタ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............244 割込み制御レジスタ 割込み制御レジスタ (ICR) ....................................58 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................629 割込みベクタ MB90945 割込みベクタ一覧表 ............................. 67 割込みベクタ .......................................................... 56 割込みベクタ一覧表 ............................................627 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................629 割込み要因 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................629 割込み要求 DTP 要求と外部割込み要求の切換え ................248 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ ) .................81 遅延割込み要求ロックの使用上の注意 .............. 80 割込み要求許可レジスタ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ ) ...............244 割込み抑止命令 割込み抑止命令 ...................................................... 48 割込み抑止命令とプリフィックス命令に関する 制約 ....................................................................48 653 654 CM44-10134-2 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC-16LX 16 ビット・マイクロコントローラ MB90945 Series ハードウェアマニュアル 2008 年 7 月 第 2 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 ビジネス推進部