本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10113-4 F2MC-16LX 16 ビット・マイクロコントローラ MB90420G/425G Series ハードウェアマニュアル F2MC-16LX 16 ビット・マイクロコントローラ MB90420G/425G Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック 項目をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 MB90420G/425Gシリーズは , ASIC (Application Specific IC) 対応が可能な 16 ビットワン チップマイクロコントローラである F2MC-16LX ファミリの汎用品の一つとして開発 された製品です。 本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90420G/ 425G シリーズの機能や動作について記載しています。 製品をご使用になる前に , 本書をご一読ください。 ■ 商標 F2MC は FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株 式会社の商標です。 Embedded Algorithm は , Advanced Micro Devices, Inc. の商標です。 その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録 商標です。 i ■ 本書の全体構成 本書は,以下に示す 26 の章および付録から構成されています。 第 1 章 概要 この章では , MB90420G/425G シリーズの特長と基本的な仕様について説明します。 第 2 章 CPU この章では , F2MC-16LX CPU について説明します。 第 3 章 割込み この章では , 割込みと拡張インテリジェント I/O サービス (EI2OS) について説明し ます。 第 4 章 リセット この章では , リセットについて説明します。 第 5 章 クロック この章では , クロックについて説明します。 第 6 章 低消費電力モード この章では , 低消費電力モードについて説明します。 第 7 章 モード設定 この章では , 動作モードとメモリアクセスモードについて説明します。 第 8 章 I/O ポート この章では , I/O ポートの機能と動作について説明します。 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) この章では , ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロッ ク用 ) の機能と動作について説明します。 第 10 章 インプットキャプチャ この章では , インプットキャプチャの動作について説明します。 第 11 章 16 ビットリロードタイマ この章では , 16 ビットリロードタイマの機能と動作について説明します。 第 12 章 リアルタイム時計タイマ この章では , リアルタイム時計タイマの機能と動作について説明します。 第 13 章 PPG タイマ この章では , PPG タイマについて説明します。 第 14 章 遅延割込み発生モジュール この章では , 遅延割込み発生モジュールの機能と動作について説明します。 第 15 章 DTP/ 外部割込み回路 この章では , DTP/ 外部割込み回路の機能と動作について説明します。 第 16 章 8/10 ビット A/D コンバータ この章では , 8/10 ビット A/D コンバータの機能と動作について説明します。 第 17 章 UART この章では , UART の機能と動作について説明します。 ii 第 18 章 CAN コントローラ この章では , CAN コントローラの概要と機能について説明します。 第 19 章 LCD コントローラ / ドライバ この章では , LCD コントローラ / ドライバの機能と動作について説明します。 第 20 章 低電圧 /CPU 動作 検出リセット回路 この章では , 低電圧 /CPU 動作検出リセット回路の機能と動作について説明します。 第 21 章 ステッピングモータ コントローラ この章では , ステッピングモータコントローラの機能と動作について説明します。 第 22 章 サウンドジェネレータ この章では , サウンドジェネレータの機能と動作について説明します。 第 23 章 アドレス一致検出機能 この章では , アドレス一致検出機能の機能と動作について説明します。 第 24 章 ROM ミラー機能 選択モジュール この章では , ROM ミラー機能選択モジュールについて説明します。 第 25 章 1M ビットフラッシュメモリ この章では , 1M ビットフラッシュメモリの機能や動作について説明します。 フラッシュメモリへのデータ書込み / 消去の方法には , 下記の 3 とおりの方法があ ります。 ・パラレルライタ ・シリアル専用ライタ ・プログラム実行による書込み / 消去 ここでは , " プログラム実行による書込み / 消去 " について解説します。 第 26 章 シリアル書込み接続例 この章では , 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを用いた場合のシリアル書込みの接続例について 説明します。 付録 付録では , I/O マップおよび命令を示します。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2007-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 第2章 概要 ............................................................................................................ 1 製品概要 ................................................................................................................................. 2 特長 ........................................................................................................................................ 4 ブロックダイヤグラム............................................................................................................ 6 外形寸法図.............................................................................................................................. 7 端子配列図.............................................................................................................................. 9 端子機能説明 ........................................................................................................................ 11 入出力回路形式 .................................................................................................................... 14 デバイスの取扱いに関する注意事項 .................................................................................... 16 CPU.......................................................................................................... 19 2.1 CPU の概要 .......................................................................................................................... 20 2.2 メモリ空間............................................................................................................................ 21 2.3 メモリマップ ........................................................................................................................ 23 2.4 アドレッシング .................................................................................................................... 25 2.4.1 リニア方式によるアドレス指定 ................................................................................. 26 2.4.2 バンク方式によるアドレス指定 ................................................................................. 27 2.5 多バイト長データのメモリ上の配置 .................................................................................... 29 2.6 レジスタ ............................................................................................................................... 31 2.7 専用レジスタ ........................................................................................................................ 32 2.7.1 アキュムレータ (A)..................................................................................................... 34 2.7.2 スタックポインタ (USP, SSP)................................................................................... 37 2.7.3 プロセッサステータス (PS) ....................................................................................... 39 2.7.4 プログラムカウンタ (PC)........................................................................................... 43 2.7.5 ダイレクトページレジスタ (DPR) ............................................................................. 44 2.7.6 バンクレジスタ (PCB, DTB, USB, SSB, ADB) .......................................................... 45 2.8 汎用レジスタ ........................................................................................................................ 46 2.9 プリフィックスコード.......................................................................................................... 48 第3章 割込み ...................................................................................................... 53 3.1 割込みの概要 ........................................................................................................................ 54 3.2 割込み要因と割込みベクタ................................................................................................... 56 3.3 割込み制御レジスタと周辺機能 ........................................................................................... 58 3.3.1 割込み制御レジスタ (ICR00 ~ ICR15) ...................................................................... 59 3.3.2 割込み制御レジスタの機能 ........................................................................................ 61 3.4 ハードウェア割込み ............................................................................................................. 64 3.4.1 ハードウェア割込みの動作 ........................................................................................ 67 3.4.2 ハードウェア割込みの動作フロー.............................................................................. 69 3.4.3 ハードウェア割込み使用手順..................................................................................... 70 3.4.4 多重割込み ................................................................................................................. 71 3.4.5 ハードウェア割込み処理時間..................................................................................... 73 3.5 ソフトウェア割込み ............................................................................................................. 74 3.6 拡張インテリジェント I/O サービス (EI2OS) による割込み................................................. 76 3.6.1 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) ......................... 78 3.6.2 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の各レジスタ... 79 v 3.6.3 拡張インテリジェント I/O サービス (EI2OS) の動作 ................................................. 82 3.6.4 拡張インテリジェント I/O サービス (EI2OS) の使用手順 .......................................... 83 3.6.5 拡張インテリジェント I/O サービス (EI2OS) 処理時間.............................................. 84 3.7 未定義命令の実行による例外処理割込み ............................................................................. 86 3.8 割込み処理のスタック動作................................................................................................... 87 3.9 割込み処理のプログラム例................................................................................................... 89 第4章 4.1 4.2 4.3 4.4 4.5 4.6 第5章 5.1 5.2 5.3 5.4 5.5 5.6 第6章 リセット................................................................................................... 93 リセットの概要 .................................................................................................................... 94 リセット要因と発振安定待ち時間........................................................................................ 97 外部リセット端子 ................................................................................................................. 99 リセット動作 ...................................................................................................................... 100 リセット要因ビット ........................................................................................................... 102 リセットによる各端子の状態 ............................................................................................. 105 クロック................................................................................................. 107 クロックの概要 .................................................................................................................. 108 クロック発生部のブロックダイヤグラム ........................................................................... 110 クロック選択レジスタ (CKSCR)........................................................................................ 112 クロックモード .................................................................................................................. 115 発振安定待ち時間 ............................................................................................................... 119 振動子と外部クロックの接続 ............................................................................................. 120 低消費電力モード .................................................................................. 121 6.1 低消費電力モードの概要 .................................................................................................... 122 6.2 低消費電力制御回路のブロックダイヤグラム.................................................................... 125 6.3 低消費電力モード制御レジスタ (LPMCR) ......................................................................... 127 6.4 CPU 間欠動作モード .......................................................................................................... 130 6.5 スタンバイモード ............................................................................................................... 131 6.5.1 スリープモード ........................................................................................................ 132 6.5.2 タイムベースタイマモード ...................................................................................... 134 6.5.3 時計モード ............................................................................................................... 136 6.5.4 ストップモード ........................................................................................................ 138 6.6 状態遷移図.......................................................................................................................... 141 6.7 スタンバイモード , リセット時の端子状態 ........................................................................ 143 6.8 低消費電力モード使用上の注意 ......................................................................................... 145 第7章 7.1 7.2 7.3 第8章 モード設定 ............................................................................................. 149 モード設定.......................................................................................................................... 150 モード端子 (MD2 ~ MD0).................................................................................................. 151 モードデータ ...................................................................................................................... 152 I/O ポート............................................................................................... 155 8.1 I/O ポート ........................................................................................................................... 156 8.2 レジスタと外部兼用端子の割当て...................................................................................... 158 8.3 ポート 0 .............................................................................................................................. 159 8.3.1 ポート 0 のレジスタ (PDR0, DDR0) ........................................................................ 161 8.3.2 ポート 0 の動作説明 ................................................................................................. 162 8.4 ポート 1 .............................................................................................................................. 164 vi 8.4.1 ポート 1 のレジスタ (PDR1, DDR1) ........................................................................ 166 8.4.2 ポート 1 の動作説明 ................................................................................................. 167 8.5 ポート 3 .............................................................................................................................. 169 8.5.1 ポート 3 のレジスタ (PDR3, DDR3) ........................................................................ 171 8.5.2 ポート 3 の動作説明 ................................................................................................. 172 8.6 ポート 4 .............................................................................................................................. 174 8.6.1 ポート 4 のレジスタ (PDR4, DDR4) ........................................................................ 176 8.6.2 ポート 4 の動作説明 ................................................................................................. 177 8.7 ポート 5 .............................................................................................................................. 179 8.7.1 ポート 5 のレジスタ (PDR5, DDR5) ........................................................................ 181 8.7.2 ポート 5 の動作説明 ................................................................................................. 182 8.8 ポート 6 .............................................................................................................................. 184 8.8.1 ポート 6 のレジスタ (PDR6, DDR6, ADER) ............................................................ 186 8.8.2 ポート 6 の動作説明 ................................................................................................. 187 8.9 ポート 7 .............................................................................................................................. 189 8.9.1 ポート 7 のレジスタ (PDR7, DDR7) ........................................................................ 191 8.9.2 ポート 7 の動作説明 ................................................................................................. 192 8.10 ポート 8 .............................................................................................................................. 194 8.10.1 ポート 8 のレジスタ (PDR8, DDR8) ........................................................................ 196 8.10.2 ポート 8 の動作説明 ................................................................................................. 197 8.11 ポート 9 .............................................................................................................................. 199 8.11.1 ポート 9 のレジスタ (PDR9, DDR9) ........................................................................ 201 ポート 9 の動作説明 ................................................................................................. 202 8.11.2 8.12 I/O ポートのプログラム例 .................................................................................................. 204 第9章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ........................................................................ 205 9.1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの概要 ..................................... 206 9.2 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム ........ 207 9.3 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧....................... 208 9.3.1 ウォッチドッグタイマ制御レジスタ (WDTC).......................................................... 209 9.3.2 タイムベースタイマ制御レジスタ (TBTC)............................................................... 211 9.3.3 時計タイマ制御レジスタ (WTC) .............................................................................. 213 9.4 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの動作 ..................................... 215 9.4.1 ウォッチドッグタイマの動作................................................................................... 216 9.4.2 タイムベースタイマの動作 ...................................................................................... 218 9.4.3 時計タイマの動作..................................................................................................... 221 9.5 ウォッチドッグタイマ / タイムベースタイマの使用上の注意 ........................................... 222 9.6 ウォッチドッグタイマ / タイムベースタイマのプログラム例 ........................................... 225 第 10 章 インプットキャプチャ ........................................................................... 227 10.1 インプットキャプチャの概要 ............................................................................................. 228 10.2 インプットキャプチャのブロックダイヤグラム ................................................................ 229 10.3 インプットキャプチャのレジスタ一覧............................................................................... 230 10.3.1 インプットキャプチャのレジスタ詳細説明 ............................................................. 232 10.3.2 16 ビットフリーランタイマのレジスタ詳細説明..................................................... 234 10.4 動作説明 ............................................................................................................................. 238 10.4.1 16 ビットインプットキャプチャ.............................................................................. 239 10.4.2 16 ビットフリーランタイマ部 ................................................................................. 240 vii 第 11 章 16 ビットリロードタイマ ...................................................................... 243 11.1 16 ビットリロードタイマの概要 ........................................................................................ 244 11.2 16 ビットリロードタイマの構成 ........................................................................................ 246 11.3 16 ビットリロードタイマの端子 ........................................................................................ 248 11.4 16 ビットリロードタイマのレジスタ................................................................................. 249 11.4.1 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) .................. 250 11.4.2 タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L).................... 252 11.4.3 16 ビットタイマレジスタ (TMR0, TMR1)................................................................ 254 11.4.4 16 ビットリロードレジスタ (TMRLR0/TMRLR1) .................................................... 255 11.5 16 ビットリロードタイマの割込み .................................................................................... 256 11.6 16 ビットリロードタイマの動作説明................................................................................. 257 11.6.1 内部クロックモード ( リロードモード )................................................................... 259 11.6.2 内部クロックモード ( ワンショットモード )............................................................ 261 11.6.3 イベントカウントモード .......................................................................................... 263 11.7 16 ビットリロードタイマの使用上の注意.......................................................................... 265 11.8 16 ビットリロードタイマのプログラム例.......................................................................... 266 第 12 章 リアルタイム時計タイマ........................................................................ 269 12.1 リアルタイム時計タイマの概要 ......................................................................................... 270 12.2 リアルタイム時計タイマのレジスタ .................................................................................. 271 12.2.1 リアルタイム時計タイマ制御レジスタ .................................................................... 273 12.2.2 サブ秒データレジスタ ............................................................................................. 275 12.2.3 秒 / 分 / 時間データレジスタ .................................................................................... 276 第 13 章 PPG タイマ ............................................................................................ 277 13.1 PPG タイマの概要.............................................................................................................. 278 13.2 PPG タイマのブロックダイヤグラム................................................................................. 280 13.3 PPG タイマのレジスタ ...................................................................................................... 281 13.3.1 PPG タイマのレジスタ詳細説明 .............................................................................. 283 13.4 PPG タイマの動作説明 ...................................................................................................... 288 第 14 章 遅延割込み発生モジュール .................................................................... 291 14.1 遅延割込み発生モジュールの概要...................................................................................... 292 14.2 遅延割込み発生モジュールの動作...................................................................................... 293 第 15 章 DTP/ 外部割込み回路 ............................................................................. 295 15.1 DTP/ 外部割込み回路の概要............................................................................................... 296 15.2 DTP/ 外部割込み回路の構成............................................................................................... 298 15.3 DTP/ 外部割込み回路の端子............................................................................................... 300 15.4 DTP/ 外部割込み回路のレジスタ ....................................................................................... 301 15.4.1 DTP/ 割込み要因レジスタ (EIRR) ............................................................................ 302 15.4.2 DTP/ 割込み許可レジスタ (ENIR) ............................................................................ 303 15.4.3 要求レベル設定レジスタ (ELVRH/ELVRL) .............................................................. 304 15.5 DTP/ 外部割込み回路の動作説明 ....................................................................................... 306 15.5.1 外部割込み機能 ........................................................................................................ 309 15.5.2 DTP 機能 .................................................................................................................. 310 15.6 DTP/ 外部割込み回路の使用上の注意 ................................................................................ 311 15.7 DTP/ 外部割込み回路のプログラム例 ................................................................................ 313 viii 第 16 章 8/10 ビット A/D コンバータ................................................................... 317 16.1 8/10 ビット A/D コンバータの概要 .................................................................................... 318 16.2 8/10 ビット A/D コンバータの構成 .................................................................................... 319 16.3 8/10 ビット A/D コンバータの端子 .................................................................................... 321 16.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 323 16.4.1 A/D 制御ステータスレジスタ上位 (ADCSH)............................................................ 324 16.4.2 A/D 制御ステータスレジスタ下位 (ADCSL) ............................................................ 326 16.4.3 A/D データレジスタ (ADCRH/ADCRL) .................................................................... 328 16.5 8/10 ビット A/D コンバータの割込み................................................................................. 330 16.6 8/10 ビット A/D コンバータの動作 .................................................................................... 331 16.6.1 EI2OS を使用した変換動作 ...................................................................................... 334 16.6.2 A/D 変換データ保護機能 .......................................................................................... 335 16.7 8/10 ビット A/D コンバータ使用上の注意.......................................................................... 337 16.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発モードの EI2OS 起動例 ) ................ 338 16.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続モードの EI2OS 起動例 ) ................ 340 16.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止モードの EI2OS 起動例 ) ................ 342 第 17 章 UART ..................................................................................................... 345 17.1 UART の概要 ...................................................................................................................... 346 17.2 UART の構成 ...................................................................................................................... 348 17.3 UART の端子 ...................................................................................................................... 351 17.4 UART のレジスタ ............................................................................................................... 352 17.4.1 シリアル制御レジスタ (SCR0/SCR1) ...................................................................... 353 17.4.2 シリアルモードレジスタ (SMR0/SMR1).................................................................. 355 17.4.3 シリアルステータスレジスタ (SSR0/SSR1)............................................................ 357 17.4.4 シリアル入力データレジスタ (SIDR0/SIDR1) , シリアル出力データレジスタ (SODR0/SODR1)........................................................... 359 17.4.5 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) .................................................. 361 17.5 UART の割込み................................................................................................................... 363 17.5.1 受信割込み発生とフラグセットのタイミング.......................................................... 365 17.5.2 送信割込み発生とフラグセットのタイミング.......................................................... 366 17.6 UART のボーレート ........................................................................................................... 367 17.6.1 専用ボーレートジェネレータによるボーレート ...................................................... 369 17.6.2 内部タイマ (16 ビットリロードタイマ ) によるボーレート..................................... 371 17.6.3 外部クロックによるボーレート ............................................................................... 373 17.7 UART の動作 ...................................................................................................................... 374 17.7.1 非同期モード ( 動作モード 0, 1) の動作 ................................................................... 376 17.7.2 同期モード ( 動作モード 2) の動作........................................................................... 379 17.7.3 双方向通信機能 ( ノーマルモード ) .......................................................................... 381 17.7.4 マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 383 17.8 UART 使用上の注意 ........................................................................................................... 386 17.9 UART のプログラム例........................................................................................................ 387 第 18 章 CAN コントローラ ................................................................................. 389 18.1 CAN コントローラの特長................................................................................................... 390 18.2 CAN コントローラのブロックダイヤグラム ...................................................................... 391 18.3 CAN コントローラのレジスタ分類 .................................................................................... 392 18.3.1 制御ステータスレジスタ (CSR) ............................................................................... 398 18.3.2 ラストイベント表示レジスタ (LEIR) ....................................................................... 403 ix 18.3.3 受信および送信エラーカウンタ (RTEC) .................................................................. 405 18.3.4 ビットタイミングレジスタ (BTR)............................................................................ 406 18.3.5 メッセージバッファ有効レジスタ (BVALR) ............................................................ 409 18.3.6 IDE レジスタ (IDER) ................................................................................................ 410 18.3.7 送信要求レジスタ (TREQR)..................................................................................... 411 18.3.8 送信 RTR レジスタ (TRTRR) ................................................................................... 412 18.3.9 リモートフレーム受信待機レジスタ (RFWTR)........................................................ 413 18.3.10 送信解除レジスタ (TCANR) ..................................................................................... 414 18.3.11 送信完了レジスタ (TCR) .......................................................................................... 415 18.3.12 送信割込み許可レジスタ (TIER) .............................................................................. 416 18.3.13 受信完了レジスタ (RCR).......................................................................................... 417 18.3.14 リモート要求受信レジスタ (RRTRR) ...................................................................... 418 18.3.15 受信オーバランレジスタ (ROVRR).......................................................................... 419 18.3.16 受信割込み許可レジスタ (RIER) .............................................................................. 420 18.3.17 アクセプタンスマスク選択レジスタ (AMSR) .......................................................... 421 18.3.18 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ..................................... 423 18.3.19 メッセージバッファ ................................................................................................. 425 18.3.20 ID レジスタ x (x=0 ~ 15) (IDRx).............................................................................. 426 18.3.21 DLC レジスタ x (x=0 ~ 15) (DLCRx)....................................................................... 429 18.3.22 データレジスタ x (x=0 ~ 15) (DTRx) ...................................................................... 430 18.3.23 CAN ウェイクアップ制御レジスタ (CWUCR) ......................................................... 432 18.4 CAN コントローラの送信................................................................................................... 433 18.5 CAN コントローラの受信................................................................................................... 436 18.6 CAN コントローラの使用方法............................................................................................ 440 18.7 メッセージバッファ (x) による送信方法 ............................................................................ 442 18.8 メッセージバッファ (x) による受信方法 ............................................................................ 444 18.9 マルチレベルメッセージバッファの構成の決定 ................................................................ 445 18.10 CAN ウェイクアップ機能................................................................................................... 447 18.11 CAN コントローラの使用上の注意 .................................................................................... 448 18.12 CAN プログラム例.............................................................................................................. 450 第 19 章 LCD コントローラ / ドライバ ................................................................ 453 19.1 LCD コントローラ / ドライバの概要 .................................................................................. 454 19.2 LCD コントローラ / ドライバの構成 .................................................................................. 455 19.2.1 LCD コントローラ / ドライバの内部分割抵抗 ......................................................... 457 19.2.2 LCD コントローラ / ドライバの外部分割抵抗 ......................................................... 459 19.3 LCD コントローラ / ドライバの端子 .................................................................................. 461 19.4 LCD コントローラ / ドライバのレジスタ........................................................................... 463 19.4.1 LCD 制御レジスタ下位 (LCRL) ................................................................................ 464 19.4.2 LCD 制御レジスタ上位 (LCRH) ............................................................................... 466 19.5 LCD コントローラ / ドライバの表示用 RAM...................................................................... 468 19.6 LCD コントローラ / ドライバの動作 .................................................................................. 470 19.6.1 LCD コントローラ / ドライバ動作時の出力波形 (1/2 デューティ ).......................... 472 19.6.2 LCD コントローラ / ドライバ動作時の出力波形 (1/3 デューティ ).......................... 475 19.6.3 LCD コントローラ / ドライバ動作時の出力波形 (1/4 デューティ ).......................... 478 第 20 章 低電圧 /CPU 動作検出リセット回路 ...................................................... 481 20.1 低電圧 /CPU 動作検出リセット回路の概要........................................................................ 482 20.2 低電圧 /CPU 動作検出リセット回路の構成........................................................................ 484 x 20.3 20.4 20.5 20.6 低電圧 /CPU 動作検出リセット回路のレジスタ................................................................. 486 低電圧 /CPU 動作検出リセット回路の動作........................................................................ 488 低電圧 /CPU 動作検出リセット回路の使用上の注意 ......................................................... 489 低電圧 /CPU 動作検出リセット回路のプログラム例 ......................................................... 490 第 21 章 ステッピングモータコントローラ ......................................................... 491 21.1 ステッピングモータコントローラの概要 ........................................................................... 492 21.2 ステッピングモータコントローラのレジスタ.................................................................... 493 21.2.1 PWM 制御レジスタ (PWC0 ~ PWC3)..................................................................... 495 21.2.2 PWM1, PWM2 コンペアレジスタ (PWC10 ~ PWC13, PWC20 ~ PWC23)........... 496 21.2.3 PWM1, PWM2 選択レジスタ (PWS10 ~ PWS13, PWS20 ~ PWS23)................... 498 21.3 ステッピングモータコントローラの動作 ........................................................................... 500 21.4 ステッピングモータコントローラの使用上の注意............................................................. 502 第 22 章 サウンドジェネレータ ........................................................................... 503 22.1 サウンドジェネレータの概要 ............................................................................................. 504 22.2 サウンドジェネレータのレジスタ...................................................................................... 505 22.2.1 サウンド制御レジスタ (SGCRH, SGCRL)............................................................... 506 22.2.2 周波数データレジスタ (SGFR) ................................................................................ 508 22.2.3 振幅データレジスタ (SGAR).................................................................................... 509 22.2.4 デクリメントグレードレジスタ (SGDR) ................................................................. 510 22.2.5 トーンカウントレジスタ (SGTR)............................................................................. 511 第 23 章 アドレス一致検出機能 ........................................................................... 513 23.1 アドレス一致検出機能の概要 ............................................................................................. 514 23.2 アドレス一致検出機能の応用例 ......................................................................................... 517 23.2.1 プログラムミスの修正例 .......................................................................................... 518 23.2.2 修正処理例 ............................................................................................................... 519 第 24 章 ROM ミラー機能選択モジュール........................................................... 521 24.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 522 24.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 523 第 25 章 1M ビットフラッシュメモリ.................................................................. 525 25.1 1M ビットフラッシュメモリの概要 ................................................................................... 526 25.2 フラッシュメモリ全体のブロックダイヤグラムとセクタ構成........................................... 527 25.3 書込み / 消去モード ............................................................................................................ 529 25.4 フラッシュメモリコントロールステータスレジスタ (FMCS) ........................................... 531 25.5 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 533 25.6 自動アルゴリズム実行状態の確認...................................................................................... 534 25.6.1 データポーリングフラグ (DQ7) ............................................................................... 535 25.6.2 トグルビットフラグ (DQ6) ...................................................................................... 536 25.6.3 タイミングリミット超過フラグ (DQ5) .................................................................... 537 25.6.4 セクタ消去タイマフラグ (DQ3) ............................................................................... 538 25.7 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 539 25.7.1 フラッシュメモリを読出し / リセット状態にする ................................................... 540 25.7.2 フラッシュメモリへデータを書き込む .................................................................... 541 25.7.3 フラッシュメモリの全データを消去する ( チップ消去 ).......................................... 543 25.7.4 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) .................................. 544 xi 25.7.5 フラッシュメモリのセクタ消去を一時停止する ...................................................... 546 25.7.6 フラッシュメモリのセクタ消去を再開する ............................................................. 547 25.8 フラッシュメモリの使用上の注意...................................................................................... 548 25.9 1M ビットフラッシュメモリのプログラム例 ..................................................................... 549 第 26 章 26.1 26.2 26.3 26.4 基本構成 ............................................................................................................................. 556 発振クロック周波数とシリアルクロック入力周波数 ......................................................... 558 フラッシュマイコンプログラマのシステム構成 ................................................................ 559 シリアル書込み接続例........................................................................................................ 560 付録 付録 A 付録 B 索引 シリアル書込み接続例 ........................................................................... 555 ................................................................................................................569 I/O マップ ....................................................................................................................... 570 命令 ................................................................................................................................ 576 ................................................................................................................637 xii 本版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 576 ∼ 636 「付録 B 命令」全体を変更 変更箇所は , 本文中のページ左側の│によって示しています。 < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 型格を削除 (MB90F423GB, MB90F428GB, MB90423GB, MB90427GB, MB90428GB) ― 2 14, 15 用語を統一 (ELVR → ELVRH/ELVRL) (PCNTH0 − 2 → PCNTH0 ∼ PCNTH2) (PPG 制御ステータスレジスタ下位:PCNTH0-2 → PCNTL0 ∼ PCNTL2) (PPG ダウンカウンタレジスタ上位 / 下位:PDCRH0-2 → PDCR0 ∼ PDCR2) (PPG 周期設定レジスタ上位 / 下位:PCSRH0-2 → PCSR0 ∼ PCSR2) (PPG デューティ設定レジスタ上位:PDUTH0-2 → PDUT0 ∼ PDUT2) (PPG デューティ設定レジスタ下位:PDUTL0-2 → PDUT0 ∼ PDUT2) ( アディショナルバンクレジスタ→アディショナルデータバンクレジスタ ) ( プログラムバンクレジスタ (PCB) → プログラムカウンタバンクレジスタ (PCB)) (16 ビットタイマレジスタ (TMR0/1L,TMR0/1H) → 16 ビットタイマレジスタ (TMR0, TMR1)) (16 ビットリロードレジスタ (TMRLR0/1L,TMRLR0/1H) → 16 ビットリロードレジス タ (TMRLR0, TMRLR1)) ( タイマコントロールステータスレジスタ (TMCSR0/1L,TMCSR0/1H) →タイマコント ロールステータスレジスタ (TMCSR0L, TMCSR1L/TMCSR0H, TMCSR1H)) 表 1.1-1 MB90420G シリーズ製品概要 を変更 (*1:開発中 の記述を削除 ) 表 1.1-2 MB90425G シリーズ製品概要 を変更 (*1:開発中 の記述を削除 ) 表 1.7-1 端子機能説明の分類 E, F, G, H の図 を変更 18 ■ プルアップ / プルダウン抵抗 を変更 ( 内部プルアップ / プルダウン抵抗 → 内部プルアップ / プルダウン抵抗オプション ) ■ LCD 未使用時の端子処理について を追加 30 図 2.5-3 スタック上の多バイト長データの配置 を変更 (*:PUSHW 命令実行後のスタックの状態を削除 ) 61 図 3.3-3 割込み制御レジスタ (ICR) の構成 を変更 ( アクセスを追加 ) 80 図 3.6-5 EI2OS ステータスレジスタ (ISCS) の構成の IOA 更新 / 固定選択ビット を変更 ( バッファアドレスポインタ → I/O レジスタアドレスポインタ ) 94 表 4.1-1 リセット要因のウォッチドッグタイマの発振安定待ちの欄 を変更 ( あり → なし ) 97 表 4.2-1 リセット要因と発振安定待ち時間のウォッチドッグの発振安定待ち時間の欄 を変更 ( あり :WS1,WS0 ビットは "11" に初期化されます。→ なし : ただし WS1, WS0 ビット は "11B" に初期化されます。) xiii < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 111 ● 発振安定待ち時間セレクタ を変更 ( ストップモードの解除時およびウォッチドッグリセット時の,発振クロックの発振 安定待ち時間を選択する回路です。→ ストップモードの解除時の , 発振クロックの発 振安定待ち時間を選択する回路です。) 112 図 5.3-1 クロック選択レジスタ (CKSCR) の構成の bit14 のアクセスを変更 (R → R/W) 113 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明の bit11 の機能の欄 を 変更 (・メインクロックモード時に CKSCR レジスタの SCS ビットが "1" の場合に "0" を設 定した場合は , サブクロックに同期をとって ( 約 130µs), メインクロックモードからサ ブクロックモードに切り換わります。の記述を追加 ) 115 ● メインクロックモードからサブクロックモードへの移行 を変更 116, 124 <注意事項> を変更 ( 切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを 行った場合 , 切り換わらない場合があります。の記述を追加 ) 117 図 5.4-1 マシンクロック選択の状態遷移図 を変更 127 図 6.3-1 低消費電力モード制御レジスタ (LPMCR) の構成の bit7, bit6, bit4 のアクセスを 変更 (W → R/W) 129 ■ 低消費電力モード制御レジスタへのアクセス を変更 表 6.3-2 低消費電力モードへ遷移する場合に使用する命令一覧 を変更 141 図 6.6-1 状態遷移図 を変更 ( タイムベースタイマモード → メインタイムベースタイマモード ) ( タイムベースタイマモード → PLL タイムベースタイマモード ) ( メインクロック発振安定待ち → PLL クロック発振安定待ち ) 142 表 6.6-1 低消費電力モードの動作状態 を変更 ( タイムベースタイマ → PLL タイムベースタイマ ) ( タイムベースタイマ → メインタイムベースタイマ ) 143 表 6.7-1 シングルチップモード時の各端子状態 を変更 146 ■ クロックモードの切換え を変更 ( 切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを 行った場合 , 切り換わらない場合があります。の記述を追加 ) 147 ■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ スする際の注意事項 を追加 151 表 7.2-1 モード端子の設定 を変更 157 表 8.1-1 各ポートの機能一覧のポート 0, ポート 1 の行 を変更 173, 178, 183, 188, 193, 198, 203 208 ● ストップ , タイムベースタイマモード時の動作 を変更 ((LPMCSR の SPL) → (LPMCR の SPL)) 図 9.3-1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 を変更 ( 読出し / 書込みを変更 ) xiv < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 211 図 9.3-3 タイムベースタイマ制御レジスタ (TBTC) のビット構成の bit2 の読出し / 書込 みを変更 (W → R/W) 213 図 9.3-4 時計タイマ制御レジスタのビット構成の bit3 の読出し / 書込み を変更 (W → R/W) 213 【bit7】WDCS を変更 ( サブクロックモードの場合 , 必ず "0" に設定して , 時計タイマの出力を選択してくだ さい。"1" に設定した状態で , サブクロックモードへ移行した場合 , ウォッチドッグタ イマは停止します。の記述を追加 ) 221 ■ ウォッチドッグタイマの動作クロックの設定 を追加 223 ● タイムベースタイマのクリアによる影響 を変更 (• ウォッチドッグタイマを使用しているとき の記述を削除 ) 229 図 10.2-1 ブロックダイヤグラム を変更 (MSI3 ∼ 0 → MSI2 ∼ MSI0) 230 図 10.3-1 16 ビットフリーランタイマ部のレジスタ一覧 を変更 (TCCS → TCCSH) (TCCS → TCCSL) 235 ■ コンペアクリアレジスタ (CPCLR) を変更 236 【bit9】:ICLR を変更 ( コンペア一致し,カウンタクリアされた場合に → コンペア一致した場合に ) 237 ■ タイマコントロールステータスレジスタ (TCCSH, TCCSL) 【bit4】:MODE を変更 ((bit3:CLR) → (bit3:SCLR)) ( コンペアクリアレジスタ → コンペアクリアレジスタ (CPCLR)) 【bit3】:SCLR を変更 ( <注意事項> を追加 ) 239 図 10.4-2 入力信号に対するキャプチャタイミング を変更 (N-1 → N+1) 240 ■ 16 ビットフリーランタイマの動作説明 を変更 (・動作中に TCCS レジスタの SCLR ビットへの "1" 書込み → ・動作中に TCCSH, TCCSL レジスタの SCLR ビットへの "1" 書込み ) ( 割込みは,オーバフローが発生したとき,コンペアクリアレジスタ値とコンペア マッチしてカウンタがクリアされたとき発生することができます→ 割込みは , オーバ フローが発生したとき , コンペアクリアレジスタ値とフリーランタイマがコンペア マッチしたときに発生します ) 248 表 11.3-1 16 ビットリロードタイマの端子の端子名 P11/TOT0/WOT の端子の使用に必要 な設定 を変更 ( タイマ出力許可に設定 (TMCSR0L:OUTE=1) サウンドジェネレータ出力禁止 → TOT0 使用時にリアルタイム時計タイマ出力禁止 (WTCRL:OE=1)) 266 【コーディング例】を変更 (MOVW I:TMRLR, #30D4H → MOVW I:TMRLR, #30D3H) xv < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 271 12.2 リアルタイム時計タイマのレジスタの要約 を変更 (・リアルタイム時計タイマコントロールレジスタ (WTCR) →・リアルタイム時計タイ マ制御レジスタ (WTCRL, WTCRH)) 288 図 13.4-1 PWM 動作再起動禁止のタイミング を変更 ( ①= T( n - 1 ) µs → ①= T( n + 1 ) µs) ( ②= T( m - 1 ) µs → ②= T( m + 1 ) µs) 288, 289 図 13.4-2, 図 13.4-3, 図 13.4-4 を変更 ( ① , ② , T, m, n の意味についての記述を追加 ) 302 ( 注意事項 ) を変更 303 ( 注意事項 ) を変更 306 ■ DTP/ 外部割込み回路の設定 を変更 (1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに設 定する。の記述を追加 ) 325 表 16.4-1 A/D 制御ステータスレジスタ上位 (ADCSH) の各ビットの機能説明 bit9 の機能の欄 を変更 (・バイト / ワード命令では "1" が読み出されます。 ・リードモディファイライト系命令では "0" が読み出されます。の記述を追加 ) 327 表 16.4-2 A/D 制御ステータスレジスタ下位 (ADCSL) の各ビットの機能説明 bit5 ∼ bit3 の機能の欄 を変更 (・本ビットに値を設定した場合でも , A/D 変換が開始されるまでは , 設定した値では なく , 前回に A/D 変換したチャネル番号が読み出されます。リセット時は , "000B" に 初期化されます。の記述を追加 ) bit2 ∼ bit0 の機能の欄 を変更 (( 注意事項 ) を追加 ) 354 表 17.4-1 シリアル制御レジスタ (SCR0/SCR1) の各ビットの機能説明 bit10 の機能の欄の ( 注意事項 ) を変更 (FRE,DRE,PE → FRE, ORE, PE) bit9, bit8 の機能の欄 を変更 ( 動作モード 2 ( 同期 ) 時は , RXE または TXE のどちらか一方を "1" に設定すると送 信・受信動作共に許可されます。の記述を追加 ) 356 表 17.4-2 シリアルモードレジスタ (SMR0/SMR1) の各ビットの機能説明のbit5, bit4, bit3 を変更 (( 注意事項 ) を追加 ) 358 表 17.4-3 シリアルステータスレジスタ (SSR0/SSR1) の各ビットの機能説明 bit15, bit14, bit13 の機能の欄 を変更 ( シリアルモードレジスタ (SMR) → シリアル制御レジスタ (SCR)) bit10 の機能の欄の ( 注意事項 ) を変更 (SDR レジスタ → SIDR, SODR レジスタ ) 361 362 【bit15】MD (Machine clock Devide mode select) を変更 (MS ビット → MD ビット ) <注意事項> を変更 xvi < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 369 表 17.6-2 同期ボーレート分周比の選択 を変更 ( 表の内容を変更 ) ( ただし,φ はマシンサイクル,φ=16MHz,div=1 で算出しています。→ ただし , φ はマ シンサイクル , φ=16MHz, div=2 で算出しています。) 370 表 17.6-3 非同期ボーレート分周比の選択 を変更 (SCKI の列 を削除 ) ● 内部タイマ を変更 ( <注意事項> を変更 ) 372 <注意事項> を追加 379 図 17.7-5 転送データフォーマット ( 動作モード 2) を変更 380 <注意事項> を追加 386 ● クロック同期モード時のクロック設定 を追加 393 表 18.3-2 メッセージバッファコントロールレジスタの一覧の略称 TCR のアクセス を 変更 ((R/W) → (W)) 395 表 18.3-3 メッセージバッファ (ID レジスタ ) の一覧の略称 IDR8,IDR15 のアドレス を 変更 (003A43H, 003B43H のアドレスを追加 ) (003A5FH, 003B5FH のアドレスを追加 ) 398 18.3.1 制御ステータスレジスタ (CSR) の要約 を変更 400 <注意事項> を変更 (for(i=0;(i<=500)||(IO_CANCT0.CSR.bit.HALT==0);i++); → for(i=0;(i<=500)&&(IO_CANCT0.CSR.bit.HALT==0);i++);) 408 ● 設定例の④ を変更 424 図 18.3-21 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 を変更 (AMR0 → AMR1) 442 ● 送信データ長コードの設定 を変更 (DLC3 ∼ DLC0 → ID3 ∼ ID0) 446 図 18.9-1 マルチレベルメッセージバッファの動作例 を変更 (AMS0 → AMR0) 456 ● 表示用 RAM を変更 ( セグメント出力端子より → 表示用 RAM への書換えと同時に ) 463 図 19.4-1 LCD コントローラ / ドライバに関連するレジスタのビット構成の LCRH (LCD 制御レジスタ上位 ) を変更 464 ■ LCD 制御レジスタ下位 (LCRL) のビット構成 を変更 ( 図 19.4-2 LCD 制御レジスタ下位 (LCRL) のビット構成 を変更 ) 465 表 19.4-1 LCD 制御レジスタ下位 (LCRL) の各ビットの機能説明の bit6 のビット名およ び機能の欄 を変更 ( 時計モード時動作許可ビット → タイムベースタイマモード時動作許可ビット ) ( 時計モード時 → タイムベースタイマモード時 ) 466 図 19.4-3 LCD 制御レジスタ上位 (LCRH) のビット構成 を変更 xvii < 参考 > 2 版→ 3 版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 467 表 19.4-2 LCD 制御レジスタ上位 (LCRH) の各ビットの機能説明の bit12 のビット名お よび機能の欄 を変更 470 図 19.6-1 LCD コントローラ / ドライバの設定の LCRH のビット構成図を変更 (bit12: 予約 → DTCH) 482 ■ 低電圧検出リセット回路 を変更 ( 内部リセットが発生している期間は,本回路のリセット出力は抑止されます。の記述 を削除 ) 483 ■ CPU 動作検出リセット回路 を変更 (• パワーオンリセット の記述を追加 ) 526 図 25.1-1 フラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成の bit4 の読出し / 書込み を変更 (R/W → R) 533 ( 注意事項 ) を変更 (・PA: 書込みアドレス,偶数アドレスのみ指定可 → ・PA: 書込みアドレス ) 537 ● 書込み / チップセクタ消去時 を変更 ( まれに "1" が書き込めたように , 正常終了する場合もあります。の記述を追加 ) 541 ● アドレス指定方法 を変更 ( 書込みデータサイクルの中で指定する書込みアドレスは,偶数アドレスのみが使用 できます。奇数アドレスを指定すると,正しく書き込むことができません。すなわち, 偶数アドレスへのワードデータ単位での書込みが必要となります。の記述を削除 ) 545 図 25.7-2 フラッシュメモリのセクタ消去手順の例 を変更 546 ■ フラッシュメモリのセクタ消去を一時停止する を変更 ( 最大 15µs → 最大 20µs) ( セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマン ド発行後 , 20µs 以上後に行ってください。の記述を追加 ) 表 26.1-1 使用する端子の機能の VCC の補足欄 を変更 557 ( 書込み電圧 (VCC=5.0V ± 10%) をユーザシステムから供給する場合には,フラッシュ マイコンプログラマとの接続は必要ありません。→書込み電圧 (VCC=5.0V ± 10 %)) 570 ∼ 572 付表 A-1I/O マップ 下記レジスタ略称のレジスタ を変更 (WTCRL, WTCRH, SGDR, IPCP0, IPCP1, ROMM, LPMCR, WDTC, FMCS) 下記レジスタ略称のアクセス を変更 (ADCSH, ADCRL, ADCRH, SCR0, SIDR0/SODR0, SSR0, SCR1, SIDR1/SODR1, SSR1, TMR0/TMRLR0, TMR1/TMRLR1, SGCRH, LVRC, WDTC, WTC, FMCS) 601 表 B.8-1 転送系命令 ( バイト ) 41 命令 を変更 (MOV @AL,AH/MOV @A,T → MOV @AL,AH) 602 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 を変更 (MOVW @AL,AH/MOVW @A,T → MOVW @AL,AH) 613 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 を変更 (SWAPW/XCHW A,T → SWAPW) 変更箇所は , 本文中のページ左側の│によって示しています。 xviii 第1章 概要 この章では , MB90420G/425G シリーズの特長と基 本的な仕様について説明します。 1.1 製品概要 1.2 特長 1.3 ブロックダイヤグラム 1.4 外形寸法図 1.5 端子配列図 1.6 端子機能説明 1.7 入出力回路形式 1.8 デバイスの取扱いに関する注意事項 1 第 1 章 概要 製品概要 1.1 MB90420G/425G シリーズの製品概要を示します。 ■ 製品概要 表 1.1-1 に MB90420G シリーズの製品概要を , 表 1.1-2 に MB90425G シリーズの製品概 要を示します。 表 1.1-1 MB90420G シリーズ製品概要 特長 MB90V420G 品種構成 評価用品 MB90F423GA MB90F423GC MB90423GA MB90423GC マスク ROM 品 フラッシュメモリ品 F2MC-16LX CPU CPU 2 系統 クロック 1 系統 2 系統 1 系統 2 系統 オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, PLL 停止時 1/2) 最小命令実行時間 62.5ns (4MHz 原発振 4 逓倍 ) システム クロック 外部 ROM フラッシュ ROM 128K バイト RAM 6K バイト CAN インタ フェース 2 チャネル マスク ROM 128K バイト 低電圧 /CPU 動作 検出リセット なし パッケージ PGA-256 QFP100, LQFP100 エミュレータ 専用電源 * なし - あり なし あり なし *:エミュレーションポッド MB2145-507 を使用する際のディップスイッチ S2 の設定です。 詳細につきましては , 『MB2145-507 ハードウェアマニュアル (2.7 エミュレータ専用電源 )』を参照し てください。 表 1.1-2 MB90425G シリーズ製品概要 特長 品種構成 MB90F428GA MB90F428GC 1 系統 マスク ROM 品 2 系統 1 系統 2 系統 1 系統 2 系統 フラッシュ ROM 128K バイト マスク ROM 64K バイト マスク ROM 128K バイト 6K バイト 4K バイト 6K バイト CAN インタ フェース 2 MB90428GC オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, PLL 停止時 1/2) 最小命令実行時間 62.5ns (4MHz 原発振 4 逓倍 ) RAM 低電圧 /CPU 動作 検出リセット MB90428GA F2MC-16LX CPU システム クロック ROM MB90427GC フラッシュメモリ品 CPU クロック MB90427GA 1 チャネル あり なし あり なし パッケージ QFP100, LQFP100 エミュレータ 専用電源 - あり なし 第 1 章 概要 <注意事項> • 評価用品は , MB90420G/425G シリーズ共通で MB90V420G がご使用いただけます。 • MB90V420G を除く MB90420G/425G シリーズでは , リセット後の端子初期状態が P70 ~ P77, P80 ~ P87 で出力 "L" となります。MB90V420G のみ P70 ~ P77, P80 ~ P87 の リセット後の端子初期状態は , ハイインピーダンスになります。 3 第 1 章 概要 特長 1.2 MB90420G/425G シリーズの特長を示します。 ■ 特長 表 1.2-1 に MB90420G/425G シリーズの特長を示します。 表 1.2-1 MB90420G/425G シリーズの特長 (1 / 2) 機能 特長 16 ビットインプット キャプチャ (4 チャネル ) 立上りエッジ , 立下りエッジまたはその両方を検出します。 16 ビットキャプチャレジスタ× 4 本 端子入力のエッジ検出で , 16 ビットフリーランタイマのカウンタ値をラッチし , 割込み 要求を発生します。 16 ビットリロード タイマ (2 チャネル ) 16 ビットリロードタイマ動作 ( トグル出力 , ワンショット出力選択可 ) イベントカウント機能の選択が可能です。 時計タイマ ( メインクロック ) 発振クロックで直接動作します。 発振偏差の修正に対応しています。 読出し / 書込み可能な秒 / 分 / 時レジスタ 信号割込み 16 ビット PPG (3 チャネル ) 出力端子× 3 本 , 外部トリガ入力端子× 1 本 動作クロック周波数 :fcp, fcp/22, fcp/24, fcp/26 遅延割込み タスク切換え用の割込みを発生します。 ソフトウェアで CPU に対して割込み要求の発生 / 取消しが可能です。 外部割込み (8 チャネル ) 8 チャネル独立 割込み要因 :L → H エッジ /H → L エッジ /L レベル /H レベルの選択が可能です。 A/D コンバータ 10 ビットまたは 8 ビットの分解能× 8 チャネル ( 入力マルチプレックス ) 変換時間 :6.13 μs 以下 (fcp=16MHz 時 ) 外部トリガ起動可 (P50/INT0/ADTG) 内部タイマによる起動可 (16 ビットリロードタイマ 1) UART (2 チャネル ) 全二重ダブルバッファ方式 非同期 / 同期転送 ( スタート / ストップビット付き ) をサポートします。 内部タイマをクロックとして選択できます (16 ビットリロードタイマ 0)。 非同期 : 4808bps, 5208bps, 9615bps, 10417bps, 19230bps, 38460bps, 62500bps, 500000bps 同期 : 500Kbps, 1Mbps, 2Mbps (fcp=16MHz 時 ) CAN インタフェース *1 CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。 エラー時に自動再送します。 リモートフレームに応答して自動転送します。 データおよび ID 用の順位付けされた 16 個のメッセージバッファの複数メッセージを サポートします。 受入れフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマスク /2 個の部分ビットマスク 最高 1Mbps までサポートします。 CAN WAKEUP 機能 (RX をデバイス内部で INT0 に接続 ) LCD コントローラ / セグメントドライバおよびコモンドライバは , LCD パネル ( 液晶表示 ) を直接駆動する ドライバ (1 チャネル ) ことができます。 低電圧 /CPU 動作検出 リセット *2 低電圧検出時自動リセット CPU 動作検出機能 ステッピングモータ コントローラ (4 チャネル ) 各チャネルに対する高電流出力× 4 本 各チャネルに対する同期化済み 8/10 ビット PWM × 2 本 4 第 1 章 概要 表 1.2-1 MB90420G/425G シリーズの特長 (2 / 2) 機能 特長 サウンド ジェネレータ 8 ビット PWM 信号は , 8 ビットリロードカウンタからのトーン周波数とミックスされ ます。 PWM 周波数 :62.5kHz, 31.2kHz, 15.6kHz, 7.8kHz (fcp=16MHz 時 ) トーン周波数 :PWM 周波数 /2/ ( リロード値 +1) 入出力ポート プッシュプル出力とシュミットトリガ入力 入力 / 出力または周辺信号として , ビット単位でプログラム可能です。 フラッシュメモリ 自動プログラミング , Embedded AlgorithmTM, 書込み / 消去 / 消去一時停止 / 消去再開コ マンドをサポートします。 アルゴリズムの完了を示すフラグ ミナトエレクトロニクス製のフラッシュライタ ブートブロック構成 各ブロックで消去を実行可能です。 外部プログラミング電圧によるブロック保護 *1: MB90420G シリーズは , 2 チャネル搭載 , MB90425G シリーズは , 1 チャネル搭載しています。 *2: MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ搭載しています。MB90F423GC, MB90F428GC, MB90423GC, MB90427GC, MB90428GC, MB90V420G には , 搭載していません。 5 第 1 章 概要 1.3 ブロックダイヤグラム MB90420G/425G シリーズのブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.3-1 に MB90420G/425G シリーズのブロックダイヤグラムを示します。 図 1.3-1 ブロックダイヤグラム X0,X1 X0A,X1A RST クロック 制御回路 CPU 2 F MC-16LXコア 割込み コントローラ ROM P57/SGA P56/SGO/FRCK P55/RX0 P54/TX0 P53/INT3 P52/INT2(/TX1) P51/INT1(/RX1) P50/INT0/ADTG サウンド ジェネレータ CANコントローラ ポート5 外部割込み(8ch) P00/SIN0/INT4 P01/SOT0/INT5 P02/SCK0/INT6 P03/SIN1/INT7 P04/SOT1 P05/SCK1/TRG P06/PPG0/TOT1 P07/PPG1/TIN1 低電圧/CPU動作 検出リセット ポート 8 ステッピング モータ コントローラ 0/1/2/3 UART0/1 プリスケーラ0/1 ポート0 PPG0/1/2 P10/PPG2 P11/TOT0/WOT P12/TIN0/IN3 P13/IN2 P14/IN1 P15/IN0 F2MC-16LX BUS RAM ポート7 P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 P73/PWM2M0 P72/PWM2P0 P71/PWM1M0 P70/PWM1P0 ポート6 A/Dコンバータ (8ch) ポート1 P67~P60/ AN7~AN0 AVCC/AVSS AVRH ポート9 P91,P90/ SEG23,SEG22 ポート4 P47~P40/ SEG21~SEG14 ポート3 P37,P36/ SEG13,SEG12 リロードタイマ0/1 時計タイマ(メイン) ICU0/1/2/3 フリーランタイマ P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 LCDコントローラ/ ドライバ SEG11~SEG0 COM3~COM0 V3~V0 ※評価用デバイス(MB90V420G)の仕様 内蔵ROMはありません。 内蔵RAMは6Kバイトとなります。 <注意事項> CAN インタフェースは , MB90420G シリーズは , 2 チャネル搭載 , MB90425G シリーズ は , 1 チャネル搭載しています。 低 電 圧 /CPU 動 作 検 出 リ セ ッ ト は , MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA の み 搭 載 し て い ま す。MB90F423GC, MB90F428GC, MB90423GC, MB90427GC, MB90428GC, MB90V420G には , 搭載していません。 6 第 1 章 概要 外形寸法図 1.4 MB90420G/425G シリーズには , 2 種類のパッケージが用意されています。 なお , 本外形寸法図は参考用です。正式版については , 別途ご相談ください。 ■ パッケージ外形寸法図 (QFP100) 図 1.4-1 パッケージ外形寸法図 (QFP100) プラスチック・QFP, 100ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 14.00×20.00mm リード形状 ガルウィング 封止方法 プラスチックモールド 3.35mm MAX 取付け高さ コード(参考) P-QFP100-14×20-0.65 (FPT-100P-M06) プラスチック・QFP, 100ピン (FPT-100P-M06) 注1)*印寸法はレジン残りを含まず。 注2)端子幅および端子厚さはメッキ厚を含む。 注3)端子幅はタイバ切断残りを含まず。 23.90±0.40(.941±.016) * 20.00±0.20(.787±.008) 80 51 81 50 0.10(.004) 17.90±0.40 (.705±.016) *14.00±0.20 (.551±.008) INDEX Details of "A" part 100 0.25(.010) +0.35 3.00 -0.20 +.014 .118 -.008 (Mounting height) 0~8° 31 1 30 0.65(.026) 0.32±0.05 (.013±.002) 0.13(.005)M 0.17±0.06 (.007±.002) "A" C 2002 FUJITSU LIMITED F100008S-c-5-5 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) 0.25±0.20 (.010±.008) (Stand off) 単位:mm (inches) 注意:括弧内の値は参考値です。 最新の外形寸法図については、下記の URL にてご確認ください。 http://edevice.fujitsu.com/jp/dataseet/jf-ovpklv.html 7 第 1 章 概要 ■ パッケージ外形寸法図 (LQFP100) 図 1.4-2 パッケージ外形寸法図 (LQFP100) プラスチック・LQFP, 100ピン リードピッチ 0.50mm パッケージ幅× パッケージ長さ 14.0×14.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 1.70mm MAX 取付け高さ (FPT-100P-M05) 質量 0.65g コード(参考) P-LFQFP100-14×14-0.50 プラスチック・LQFP, 100ピン (FPT-100P-M05) 注1)*印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注3)端子幅はタイバ切断残りを含まず。 16.00±0.20(.630±.008)SQ * 14.00±0.10(.551±.004)SQ 75 51 76 50 0.08(.003) Details of "A" part +0.20 100 26 "A" 1 25 0.50(.020) C 0.20±0.05 (.008±.002) 0.08(.003)M 0.145±0.055 (.0057±.0022) 2003 FUJITSU LIMITED F100007S-c-4-6 最新の外形寸法図については、下記の URL にてご確認ください。 http://edevice.fujitsu.com/jp/dataseet/jf-ovpklv.html 8 +.008 1.50 -0.10 .059 -.004 (Mounting height) INDEX ~8° 0° 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) 0.10±0.10 (.004±.004) (Stand off) 0.25(.010) 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 1.5 端子配列図 MB90420G/425G シリーズの端子配列図を示します。 ■ 端子配列図 (QFP100) 図 1.5-1 にプラスチック QFP100 タイプの端子配列図を示します。 図 1.5-1 端子配列図 (QFP100) Vss X0 X1 Vcc P00/SIN0/INT4 P01/SOT0/INT5 P02/SCK0/INT6 P03/SIN1/INT7 P04/SOT1 P05/SCK1/TRG P06/PPG0/TOT1 P07/PPG1/TIN1 P10/PPG2 P11/TOT0/WOT P12/TIN0/IN3 P13/IN2 P14/IN1 P15/IN0 COM0 COM1 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 COM2 COM3 SEG0 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 Vss SEG8 SEG9 SEG10 SEG11 P36/SEG12 P37/SEG13 P40/SEG14 P41/SEG15 P42/SEG16 P43/SEG17 P44/SEG18 Vcc P45/SEG19 P46/SEG20 P47/SEG21 C P90/SEG22 P91/SEG23 V0 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 MB90420G/425Gシリーズ 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 X0A X1A P57/SGA RST P56/SGO/FRCK P55/RX0 P54/TX0 DVss P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 DVcc P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 DVss P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 DVcc P73/PWM2M0 P72/PWM2P0 P71/PWM1M0 P70/PWM1P0 DVss P53/INT3 MD2 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 MD1 MD0 P52/INT2(/TX1) P51/INT1(/RX1) P67/AN7 P66/AN6 P65/AN5 P64/AN4 Vss P63/AN3 P62/AN2 P61/AN1 P60/AN0 AVss P50/INT0/ADTG AVRH AVcc V3 V2 V1 9 第 1 章 概要 ■ 端子配列図 (LQFP100) 図 1.5-2 にプラスチック LQFP100 タイプの端子配列図を示します。 図 1.5-2 端子配列図 (LQFP100) P57/SGA X1A X0A Vss X0 X1 Vcc P00/SIN0/INT4 P01/SOT0/INT5 P02/SCK0/INT6 P03/SIN1/INT7 P04/SOT1 P05/SCK1/TRG P06/PPG0/TOT1 P07/PPG1/TIN1 P10/PPG2 P11/TOT0/WOT P12/TIN0/IN3 P13/IN2 P14/IN1 P15/IN0 COM0 COM1 COM2 COM3 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 SEG0 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 Vss SEG8 SEG9 SEG10 SEG11 P36/SEG12 P37/SEG13 P40/SEG14 P41/SEG15 P42/SEG16 P43/SEG17 P44/SEG18 Vcc P45/SEG19 P46/SEG20 P47/SEG21 C 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 MB90420G/425Gシリーズ TOP VIEW 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 P53/INT3 MD2 MD1 MD0 P52/INT2(/TX1) P51/INT1(/RX1) P67/AN7 P66/AN6 P65/AN5 P64/AN4 Vss P63/AN3 P62/AN2 P61/AN1 P60/AN0 AVss P50/INT0/ADTG AVRH AVcc V3 V2 V1 V0 P91/SEG23 P90/SEG22 10 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 RST P56/SGO/FRCK P55/RX0 P54/TX0 DVss P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 DVcc P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 DVss P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 DVcc P73/PWM2M0 P72/PWM2P0 P71/PWM1M0 P70/PWM1P0 DVss 第 1 章 概要 端子機能説明 1.6 MB90420G/425G シリーズの端子機能説明を示します。 ■ 端子機能説明 表 1.6-1 に MB90420G/425G シリーズの端子機能説明を示します。 表 1.6-1 端子機能説明 (1 / 3) 端子番号 端子名 入出力 回路形式 *5 機能 LQFP 80 81 78 77 75 QFP 82 83 80 79 77 83 85 84 86 85 87 86 88 87 89 88 90 89 91 90 92 91 93 92 94 93 95 94 ~ 96 96 ~ 98 97 ~ 100 99, 100, 1, 2 COM0 ~ COM3 I LCD コントローラ / ドライバのコモン出力端子です。 1 ~ 8, 10 ~ 13 3 ~ 10, 12 ~ 15 SEG0 ~ SEG11 I LCD コントローラ / ドライバのセグメント出力端子で す。 X0 X1 X0A X1A RST P00 SIN0 INT4 P01 SOT0 INT5 P02 SCK0 INT6 P03 SIN1 INT7 P04 SOT1 P05 SCK1 TRG P06 PPG0 TOT1 P07 PPG1 TIN1 P10 PPG2 P11 TOT0 WOT P12 TIN0 IN3 P13 ~ P15 IN2 ~ IN0 A A B G G G G G G G G G G G G 高速発振入力端子です。 高速発振出力端子です。 低速発振入力端子です。*1 低速発振出力端子です。*2 リセット入力端子です。 汎用入出力ポートです。 UART ch.0 のシリアルデータ入力端子です。 INT4 の外部割込み入力端子です。 汎用入出力ポートです。 UART ch.0 のシリアルデータ出力端子です。 INT5 の外部割込み入力端子です。 汎用入出力ポートです。 UART ch.0 のシリアルクロック入出力端子です。 INT6 の外部割込み入力端子です。 汎用入出力ポートです。 UART ch.1 のシリアルデータ入力端子です。 INT7 の外部割込み入力端子です。 汎用入出力ポートです。 UART ch.1 のシリアルデータ出力端子です。 汎用入出力ポートです。 UART ch.1 のシリアルクロック入出力端子です。 16 ビット PPG ch.0 ~ ch.2 の外部トリガ入力端子です。 汎用入出力ポートです。 16 ビット PPG ch.0 の出力端子です。 16 ビットリロードタイマ ch.1 の TOT 出力端子です。 汎用入出力ポートです。 16 ビット PPG ch.1 の出力端子です。 16 ビットリロードタイマ ch.1 の TIN 入力端子です。 汎用入出力ポートです。 16 ビット PPG ch.2 の出力端子です。 汎用入出力ポートです。 16 ビットリロードタイマ ch.0 の TOT 出力端子です。 時計タイマの WOT 出力端子です。 汎用入出力ポートです。 16 ビットリロードタイマ ch.0 の TIN 入力端子です。 インプットキャプチャ ch.3 のトリガ入力端子です。 汎用入出力ポートです。 インプットキャプチャ ch.0 ~ ch.2 のトリガ入力端子です。 11 第 1 章 概要 表 1.6-1 端子機能説明 (2 / 3) 端子番号 LQFP QFP 14, 15 16, 17 16 ~ 20, 22 ~ 24 18 ~ 22, 24 ~ 26 26, 27 28, 29 34 36 36 ~ 39, 41 ~ 44 38 ~ 41, 43 ~ 46 45 端子名 入出力 回路形式 *5 P36, P37 46 SEG12, SEG13 P40 ~ P47 SEG14 ~ SEG21 P909, P91 SEG22, SEG23 E E E 47 P50 INT0 ADTG P60 ~ P67 AN0 ~ AN7 P51 INT1 G 48 (RX1) *3 P52 INT2 G G F *3 67 ~ 70 69 ~ 72 72 74 73 75 74 76 76 78 28 ~ 31 30 ~ 33 (TX1) P53 INT3 P70 ~ P73 PWM1P0 PWM1M0 PWM2P0 PWM2M0 P74 ~ P77 PWM1P1 PWM1M1 PWM2P1 PWM2M1 P80 ~ P83 PWM1P2 PWM1M2 PWM2P2 PWM2M2 P84 ~ P87 PWM1P3 PWM1M3 PWM2P3 PWM2M3 P54 TX0 P55 RX0 P56 SGO FRCK P57 SGA V0 ~ V3 56, 66 58, 68 DVCC 50 52 52 ~ 55 54 ~ 57 57 ~ 60 62 ~ 65 12 59 ~ 62 64 ~ 67 G H 機能 汎用入出力ポートです。 LCD コントローラ / ドライバのセグメント出力端子で す。 汎用入出力ポートです。 LCD コントローラ / ドライバのセグメント出力端子で す。 汎用入出力ポートです。 LCD コントローラ / ドライバのセグメント出力端子で す。 汎用入出力ポートです。 INT0 の外部割込み入力端子です。 A/D コンバータの外部トリガ入力端子です。 汎用入出力ポートです。 A/D コンバータの入力端子です。 汎用入出力ポートです。 INT1 の外部割込み入力端子です。 CAN インタフェース 1 の RX 入力端子です。 汎用入出力ポートです。 INT2 の外部割込み入力端子です。 CAN インタフェース 1 の TX 出力端子です。 汎用入出力ポートです。 INT3 の外部割込み入力端子です。 汎用入出力ポートです。 ステッピングモータコントローラ ch.0 の出力端子です。 汎用入出力ポートです。 H ステッピングモータコントローラ ch.1 の出力端子です。 汎用入出力ポートです。 H ステッピングモータコントローラ ch.2 の出力端子です。 汎用入出力ポートです。 H G G G G - ステッピングモータコントローラ ch.3 の出力端子です。 汎用入出力ポートです。 CAN インタフェース 0 の TX 出力端子です。 汎用入出力ポートです。 CAN インタフェース 0 の RX 入力端子です。 汎用入出力ポートです。 サウンドジェネレータの SGO 出力端子です。 フリーランタイマのクロック入力端子です。 汎用入出力ポートです。 サウンドジェネレータの SGA 出力端子です。 LCD コントローラ / ドライバの基準電源端子です。 高電流出力バッファの専用電源入力端子です ( 端子番号 54 ~ 57, 59 ~ 62, 64 ~ 67, 69 ~ 72) 。 第 1 章 概要 表 1.6-1 端子機能説明 (3 / 3) 端子番号 端子名 入出力 回路形式 *5 53, 63, 73 DVSS - 32 35 34 37 AVCC AVSS - 33 35 AVRH - 47 48 49 50 MD0 MD1 C 49 51 MD2 C/D*4 25 27 C - VCC VSS - LQFP QFP 51, 61, 71 機能 高電流出力バッファの専用 GND 電源端子です ( 端子番 号 54 ~ 57, 59 ~ 62, 64 ~ 67, 69 ~ 72) 。 A/D コンバータの専用電源入力端子です。 A/D コンバータの専用 GND 電源端子です。 A/D コンバータの Vref+ 入力端子です。Vref- は AVSS 固 定です。 テストモード用入力端子です。VCC に接続してくださ い。 テストモード用入力端子です。VSS に接続してくださ い。 外部コンデンサ用の端子です。0.1μF のコンデンサを , この端子と VSS に接続してください。 電源入力端子です。 GND 電源端子です。 *1:MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA では , プルダウン処理してください。 *2:MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA では , 開放にしてください。 *3: MB90420G シリーズのみの機能です。 *4: MASK 品の場合は D に , フラッシュメモリ品の場合は C になります。 *5: 入出力回路形式については ,「1.7 入出力回路形式」を参照してください。 21, 82 9, 40, 79 23, 84 11, 42, 81 13 第 1 章 概要 入出力回路形式 1.7 各端子の入出力回路形式を示します。 ■ 入出力回路形式 表 1.7-1 に各端子の入出力回路形式を示します。 表 1.7-1 端子機能説明 (1 / 2) 分類 回路 備考 ・発振帰還抵抗 約 1MΩ (X0, X1: メイン ) ・発振帰還抵抗 約 10MΩ (X0A, X1A: サブ ) X1/X1A A X0/X0A スタンバイ制御信号 ・プルアップ抵抗付き 約 50kΩ ・ヒステリシス入力 B ヒステリシス入力 ・ヒステリシス入力 C ヒステリシス入力 ヒステリシス入力 ・プルダウン抵抗付き 約 50kΩ ・ヒステリシス入力 D ・CMOS 出力 ・LCDC 出力 ・ヒステリシス入力 E LCDC出力 ヒステリシス入力 スタンバイ制御信号 14 第 1 章 概要 表 1.7-1 端子機能説明 (2 / 2) 分類 回路 備考 ・CMOS 出力 ・ヒステリシス入力 ・アナログ入力 F アナログ入力 ヒステリシス入力 スタンバイ制御信号 ・CMOS 出力 ・ヒステリシス入力 G ヒステリシス入力 スタンバイ制御信号 ・CMOS 高電流出力 ・ヒステリシス入力 高電流 H ヒステリシス入力 スタンバイ制御信号 ・LCDC 出力 I LCDC出力 15 第 1 章 概要 1.8 デバイスの取扱いに関する注意事項 デバイスを取り扱う際には , 以下の項目に関して特に注意が必要です。 • 最大定格電圧の厳守 ( ラッチアップの防止 ) • 供給電圧の安定化 • 電源投入時 • 未使用端子の処理 • A/D コンバータの電源端子処理 • 外部クロック使用時 • 電源端子 • A/D コンバータの電源アナログ入力の投入順序 • 高電流出力バッファ端子用電源 (DVCC, DVSS) の取扱い • • • • プルアップ / プルダウン抵抗 サブクロックモードを使用しない場合の注意 PLL クロックモード動作中の注意について LCD 未使用時の端子処理について ■ 最大定格電圧の厳守 ( ラッチアップの防止 ) MB90420G/425G シリーズの入力端子と出力端子に VCC より高い電圧および VSS より 低い電圧を印加しないでください。また , VCC と VSS との間に定格を超える電圧を印 加しないでください。定格を超える電圧を印加すると , ラッチアップ現象が発生するこ とがあります。ラッチアップが起きると電源電流が激増し , 素子が熱破壊する恐れがあ ります。使用に際して , 最大定格を超えることのないよう十分注意してください。 また , アナログ電源 (AVCC, AVRH) とアナログ入力と , 高電流出力バッファ端子用電源 (DVCC) を電源投入する場合および切断をする場合は , デジタル電源 (VCC) を超えない ようにしてください。 デジタル電源 (VCC) 投入後のアナログ電源 (AVCC, AVRH) と高電流出力バッファ端子 用電源 (DVCC) の投入順序は問いません。 ■ 供給電圧の安定化 電源電圧の急激な変化があると誤動作することがありますので , VCC 電源電圧を安定 させてください。安定化の基準は , 商用周波数 (50 ~ 60Hz) での VCC リプル変動 (P-P 値 ) は , VCC 電源電圧値の 10 % 以下 , 電源の切換え変化は , 過渡変動率が 0.1V/ms 以下 になるように , 電圧変動を抑えてください。 ■ 電源投入時 内蔵している降圧回路の誤動作を防ぐために , 電源投入時の電圧立上げ時間は 50 μs (0.2V ~ 2.7V の間 ) 以上としてください。 ■ 未使用端子の処理 入力端子を使用しない場合に開放のままにしておくと , 外来ノイズにより誤動作の原 因となりますので, 2kΩ以上の抵抗を介して, プルアップまたはプルダウンの処置をし てください。 また , 使用していない出力端子がある場合は , 出力状態に設定して開放とするか , 入力 状態に設定して入力端子と同じ処理をしてください。 16 第 1 章 概要 ■ A/D コンバータの電源端子処理 A/D コンバータを使用しない場合は , AVCC=VCC, AVSS=AVRH=VSS となるよう接続し てください。 ■ 外部クロックを使用する場合 外部クロックを使用する場合においても , パワーオンリセット , サブクロックモードお よびストップモードから復帰する場合には , 発振安定待ち時間を確保します。外部ク ロックを使用する場合には , 図 1.8-1 に示すように , X0 端子のみを駆動し , X1 端子は 開放としてください。 図 1.8-1 外部クロック使用例 X0 ~ 開放 X1 MB90420G/425Gシリーズ ■ 電源端子 ラッチアップを防止するために , 複数ある VCC, VSS 電源端子はデバイス内部で接続し ています。しかし , 不要輻射の低減 , グランドレベルの上昇によるストローブ信号の誤 動作防止 , 総出力電流規格を守るなどのために , 必ず VCC, VSS 電源端子は , 外部で同一 電源へ接続してください ( 図 1.8-2 を参照 )。 図 1.8-2 電源入力端子 (VCC/VSS) Vcc Vss Vss Vcc Vss Vcc Vcc Vss Vss Vcc また , 電流供給源から低いインピーダンスで , デバイスの VCC, VSS 電源端子に接続し てください。 デバイスの VCC と VSS との間に 1.0 μF 程度のバイパスコンデンサを , VCC, VSS 電源端子近くで接続することで対処できます。 17 第 1 章 概要 ■ A/D コンバータの電源アナログ入力の投入順序 A/D コンバータの電源端子 (AVCC, AVRH) およびアナログ入力端子 (AN0 ~ AN7) への 電圧印加は , 必ずデジタル電源 (VCC) の投入後に行ってください。デバイス電源切断時 は A/D コンバータの電源およびアナログ入力電源を切断した後で , デジタル電源 (VCC) を切断してください。その際 , AVRH は AVCC を超えないようにしてください。アナ ログ入力と兼用している端子を入力ポートとして使用する場合は, 入力電圧がAVCC を 超えないようにしてください ( アナログ電源とデジタル電源に電源電圧を同時に印加・ 切断することは問題ありません ) 。 ■ 高電流出力バッファ端子用電源 (DVCC, DVSS) の取扱い 高電流出力バッファ端子用電源 (DVCC, DVSS) の印加は , 必ずデジタル電源 (VCC) の投 入後に行ってください。また , デジタル電源 (VCC) は高電流出力バッファ端子用電源切 断の後で切断してください ( 高電流出力バッファ端子用電源とデジタル電源を同時に 投入・切断をすることは問題ありません ) 。 高電流出力バッファ端子を汎用ポートとして使用する場合も , 高電流出力バッファ端 子用電源 (DVCC, DVSS) を印加してください。 ■ プルアップ / プルダウン抵抗 MB90420G/425G シリーズは , 内部プルアップ / プルダウン抵抗オプションをサポート していません。必要であれば , 外部構成部品を使用してください。 ■ サブクロックモードを使用しない場合の注意 X0A, X1A 端子に発振器を接続しない場合は , X0A 端子にプルダウンの処理をし , X1A 端子はオープンにしてください。 ■ PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を 継続し続ける場合があります。この動作は保証外の動作です。 ■ LCD 未使用時の端子処理について COM0 ~ COM3 端子と SEG0 ~ SEG11 端子は開放としてください。 V0 ~ V3 端子は 2kΩ 以上の抵抗を介してプルアップまたはプルダウンの処理をしてく ださい。 18 第2章 CPU この章では , F2MC-16LX CPU について説明しま す。 2.1 CPU の概要 2.2 メモリ空間 2.3 メモリマップ 2.4 アドレッシング 2.5 多バイト長データのメモリ上の配置 2.6 レジスタ 2.7 専用レジスタ 2.8 汎用レジスタ 2.9 プリフィックスコード 19 第 2 章 CPU 2.1 CPU の概要 F2MC-16LX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ れる用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコン トローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。 ■ CPU の特長 F2MC-16LX CPU コアは , 16 ビットデータは勿論 , 内部 32 ビットアキュムレータを搭 載しているため 32 ビット処理も可能です。メモリ空間は , 最大 16M バイト , リニア方 式およびバンク方式のいずれかにてアクセス可能です。また , 命令体系は F2MC-8L の A-T アーキテクチャをベースに , 高級言語対応命令の追加・アドレッシングモードの拡 張・乗除算命令の強化・ビット処理の充実化により命令が強化されています。次に , F2MC-16LX CPU の特長を示します。 ● 最小命令実行時間 62.5ns (4MHz 発振・4 逓倍 ) ● 最大メモリ空間 16M バイト , リニア / バンク方式にてアクセス ● コントローラ用途に最適化された命令体系 • 豊富なデータタイプ : ビット / バイト / ワード / ロングワード • 拡張されたアドレッシングモード :23 種類 • 32 ビットアキュムレータの採用による高精度演算 (32 ビット長 ) の強化符号付き乗 除算・拡張 RETI 命令 ● 強力な割込み機能 8 つのプライオリティレベル ( プログラマブル ) ● CPU に依存しない自動転送機能 最大 16 チャネルまでの拡張インテリジェント I/O サービス ● 高級言語 (C 言語 ) / マルチタスクに対応をとった命令体系 システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令 ● 実行速度の向上 4 バイトのキュー <注意事項> MB90420G/425G シリーズでは , シングルチップモードのみの使用となるため , 内蔵 ROM, 内蔵 RAM, 内蔵周辺の空間しかアクセスできません。 20 第 2 章 CPU 2.2 メモリ空間 F2MC-16LX CPU には 16M バイトのメモリ空間があります。F2MC-16LX CPU が管 理するデータ , プログラムおよび I/O は , すべてこの 16M バイトの中に配置されま す。メモリ空間の一部は , 拡張インテリジェント I/O サービス (EI2OS) ディスクリプ タ , 汎用レジスタおよびベクタテーブルなどの特定用途に使用されます。 ■ メモリ空間 データ , プログラムおよび I/O は , すべて F2MC-16LX CPU が持つ 16M バイトのメモリ 空間のいずれかに配置され , CPU は 24 ビットのアドレスバスでこれらのアドレスを示 し , 各周辺機能をアクセスすることができます。 図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。 図 2.2-1 F2MC-16LX システムとメモリマップの関係例 F2MC-16LX デバイス FFFFFFH ベクトルテーブル領域 ROM領域 FFFC00H プログラム FF0000H 内 100000H 部 010000H *1 プログラム領域 外部領域*4 F2MC-16LX CPU データ 004000H 002000H 000D00H EI2OS 000380H 000180H バ ス 000100H 割込み 周辺回路 汎用ポート 0000C0H 0000B0H 000020H 000000H *2 ROM領域 (FFバンクのイメージ) 外部領域*4 *3 データ領域 汎用レジスタ RAM領域 EI2OS ディスクリプタ領域 外部領域*4 割込み制御レジスタ領域 周辺機能制御レジスタ領域 I/O領域 I/Oポート制御レジスタ領域 *1:品種によって,内蔵ROMの容量が異なります。 *2:品種によって,イメージでアクセスできる領域が異なります。 *3:品種によって,内蔵RAMの容量が異なります。 *4:シングルチップモード時には,アクセスなしとなります。 21 第 2 章 CPU ■ ROM 領域 ● ベクタテーブル領域 ( アドレス :FFFC00H ~ FFFFFFH) • ベクタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルとして使 用します。 • ROM 領域の最上位に割り当てられており , それぞれのベクタテーブルのアドレス に , 対応する処理ルーチンの開始アドレスをデータとして設定します。 ● プログラム領域 ( アドレス : ~ FFFBFFH) • 内部プログラム領域として , ROM が内蔵されています。 • 内部 ROM 容量は , 品種によって異なります。 ■ RAM 領域 ● データ領域 ( アドレス : 000100H ~ ) • 内部データ領域として , スタティック RAM が内蔵されています。 • 内部 RAM 容量は , 品種によって異なります。 ● 汎用レジスタ領域 ( アドレス : 000180H ~ 00037FH) • 8 ビット , 16 ビット , 32 ビットの演算や転送に使用する , 補助的なレジスタを配置 します。 • RAM 領域の一部に割り当てられており , 通常の RAM として使用することもできま す。 • 汎用レジスタとして使用すると , 汎用レジスタアドレッシングによって , 短い命令 で高速にアクセスできます。 ● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ領域 ( アドレス : 000100H ~ 00017FH) • 転送モード , I/O のアドレス , 転送数およびバッファアドレスを保持します。 • RAM 領域の一部に割り当てられており , 通常の RAM として使用することもできま す。 ■ I/O 領域 ● 割込み制御レジスタ領域 ( アドレス :0000B0H ~ 0000BFH) 割込み制御レジスタ (ICR00~ICR15) は, 割込み機能を持つすべての周辺機能に対応し, 割込みレベルの設定および拡張インテリジェント I/O サービス (EI2OS) の制御をしま す。 ● 周辺機能制御レジスタ領域 ( アドレス :000020H ~ 0000AFH) 内蔵する周辺機能の制御およびデータの入出力をします。 ● I/O ポート制御レジスタ領域 ( アドレス :000000H ~ 00001FH) I/O ポートの制御およびデータの入出力をします。 22 第 2 章 CPU 2.3 メモリマップ MB90420G/425G シリーズの品種ごとのメモリマップを示します。 ■ メモリマップ 図 2.3-1 に , MB90420G/425G シリーズのメモリマップを示します。 図 2.3-1 メモリマップ シングルチップモード (ROMミラー機能あり) 000000H 周辺領域 0000C0H 000100H レジスタ RAM領域 アドレス#2 003900H 周辺領域 004000H ROM領域 (FFバンクの イメージ) 010000H アドレス#1 ROM領域 FFFFFFH : 内部アクセスメモリ : アクセス禁止 品 種 アドレス #1 アドレス #2 MB90423GA/GC FE0000H 001900H MB90427GA/GC FF0000H 001100H MB90428GA/GC FE0000H 001900H MB90F423GA/GC FE0000H 001900H MB90F428GA/GC FE0000H 001900H MB90V420G FE0000H* 001900H *: MB90V420G には ROM は内蔵されていません。ツール側での ROM デコード領域とお考え ください。 23 第 2 章 CPU <注意事項> • ROM ミラー機能なしを選択した場合は「第 24 章 ROM ミラー機能 選択モジュール」 を参照してください。 • 00 バンクの上位に FF バンクの ROM データがイメージで見えるようになっています が , これは C コンパイラのスモールモデルを有効に生かすためです。FF バンクの下位 16 ビットアドレスは同じになるようにしてありますので , ポインタで far 指定を宣言し なくとも ROM 内のテーブルを参照することができます。例えば , 00C000H をアクセ スした場合に , 実際には FFC000H の ROM の内容がアクセスされることになります。 ここで FF バンクの ROM 領域は 48KB を超えますので , 00 バンクのイメージにすべて の領域を見せることができません。したがって , FF4000H ~ FFFFFFH の ROM データ は 004000H ~ 00FFFFH にイメージとして見えますので , ROM データテーブルは FF4000H ~ FFFFFFH の領域に格納してください。 24 第 2 章 CPU 2.4 アドレッシング アドレス生成方式には , リニア方式とバンク方式があります。 リニア方式は , 24 ビットアドレスのすべてを命令により直接指定する方法です。 バンク方式は , 上位 8 ビットアドレスを用途に応じたバンクレジスタにより指定し , 下位 16 ビットアドレスを命令により指定する方法です。 F2MC-16LX シリーズは , 基本的にはバンクアドレッシングとなります。 ■ リニアアドレッシングとバンクアドレッシング リニア方式のアドレッシングは , 16M バイトの空間を連続したアドレス空間としてア クセスする方式です。バンク方式は , 16M バイトの空間を 64K バイトごとの 256 バン クに分割し , 管理する方式です。 リニア方式とバンク方式のメモリ管理の概要を , 図 2.4-1 に示します。 図 2.4-1 リニア方式とバンク方式のメモリ管理 リニア方式 FFFFFFH バンク方式 FFFFFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H 123456H FFバンク 64Kバイト FEバンク FDバンク 123456H 12バンク 04FFFFH 040000H 03FFFFH 030000H 02FFFFH 020000H 01FFFFH 010000H 00FFFFH 000000 H F 000000H 123456H すべて命令で指定 04バンク 03バンク 02バンク 01バンク 00バンク 123456H 命令で指定 用途に応じたバンクレジスタで指定 25 第 2 章 CPU 2.4.1 リニア方式によるアドレス指定 リニア方式によるアドレス指定には , オペランドで直接 24 ビットのアドレスを指定 する方法と , 32 ビットの汎用レジスタの下位 24 ビットをアドレスとして引用する方 法があります。 ■ 24 ビットオペランド指定 図 2.4-2 リニア方式 (24 ビットオペランド指定 ) の例 JMPP 123456H 旧プログラムカウンタ +プログラムバンク 17 452D 17452DH 新プログラムカウンタ +プログラムバンク 12 3456 123456H JMPP 123456H 次の命令 ■ 32 ビットレジスタ間接指定 図 2.4-3 リニア方式 (32 ビットレジスタ間接指定 ) の例 MOV A,@RL1+7 旧AL 090700H XXXX 3AH +7 新AL 003A RL1 (上位8ビットは無視) RL1:32ビット(ロングワード)汎用レジスタ 26 240906F9H 第 2 章 CPU 2.4.2 バンク方式によるアドレス指定 バンク方式は , 16M バイトのメモリ空間を 64K バイトごとの 256 バンクに分割し , バンクレジスタで各空間に対応するバンクアドレスを指定します。アドレスの上位 8 ビットをバンクアドレス指定により決定し , 下位 16 ビットは命令で指定します。 バンクレジスタには , 用途別に次の 5 種類があります。 • プログラムカウンタバンクレジスタ (PCB) • データバンクレジスタ (DTB) • ユーザスタックバンクレジスタ (USB) • システムスタックバンクレジスタ (SSB) • アディショナルデータバンクレジスタ (ADB) ■ バンクレジスタとアクセス空間 表 2.4-1 に , 各バンクレジスタのアクセス空間と主な用途を示します。 アクセス空間 プログラムカウンタバンク レジスタ (PCB) プログラム (PC) 空間 命令コード , ベクトルテーブル , 即値 データなどを格納します。 FFH データバンクレジスタ (DTB) データ (DT) 空間 読み書き可能なデータの格納や , 内外周 辺の制御レジスタ / データレジスタのア クセスを行います。 00H スタック (SP) 空間 PUSH/POP 命令や , 割込みのレジスタ退 避などのスタックアクセスに用いられる 領域です。コンディションレジスタ内の スタックフラグ (CCR の S) が , "1" のと き SSB を , "0" のとき USB を使用しま す。 アディショナル (AD) 空間 データ (DT) 空間に入りきらなかった データなどを格納します。 ユーザスタックバンクレジスタ (USB) システムスタックバンクレジスタ (SSB) * アディショナルデータバンク レジスタ (ADB) 主な用途 リセット時 初期値 バンクレジスタ名 00H 00H 00H *: 割込み時のスタックには , 必ず SSB が使用されます。 27 第 2 章 CPU 図 2.4-4 に , バンクに分割されたメモリ空間と各レジスタの関係を示します。詳細は , 「2.7.6 バンクレジスタ (PCB, DTB, USB, SSB, ADB)」を参照してください。 図 2.4-4 各バンクレジスタの物理アドレス FFFFFFH FF0000H プログラム 空間 FFH :PCB(プログラムカウンタバンクレジスタ) 0FFFFFH 物 0F0000H アディショナル 空間 理 0DFFFFH ア 0D0000H ド ユーザ スタック空間 0FH :ADB(アディショナルデータバンクレジスタ) 0DH :USB(ユーザスタックバンクレジスタ) 0BH :DTB(データバンクレジスタ) レ 0BFFFFH データ空間 ス 0B0000H 07FFFFH 070000H システム スタック空間 07H :SSB(システムスタックバンクレジスタ) 000000H ■ バンクアドレッシングとデフォルト空間 各命令には , 命令のコード効率を向上するため , アドレス指定方式ごとに , 表 2.4-2 に 示すようなデフォルト空間が決められています。デフォルト以外の空間を使用したい ときは , 各バンクに対応しているプリフィックスコードを命令に先行して指定するこ とで , そのプリフィックスコードに対応した任意のバンク空間をアクセスすることが できます。プリフィックスコードの詳細は , 「2.9 プリフィックスコード」を参照して ください。 デフォルト空間 アドレッシング プログラム空間 PC 間接 , プログラムアクセス , 分岐系 データ空間 @RW0, @RW1, @RW4, @RW5 を用いたアドレッシング , @A, addr16, dir スタック空間 PUSHW, POPW, @RW3, @RW7 を用いたアドレッシング アディショナル空間 @RW2, @RW6 を用いたアドレッシング 28 第 2 章 CPU 2.5 多バイト長データのメモリ上の配置 多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。32 ビット長 データであれば , 下位 16 ビットが先に転送され , 続いて上位 16 ビットが転送され ます。なお , 下位データの書込み直後にリセット信号を入力すると , 上位データが書 き込まれないことがあります。 ■ RAM 上の多バイト長データの配置 図 2.5-1 に, メモリ上における多バイト長データの構成を示します。 データは下位8ビッ トが n 番地に , 以下 n + 1 番地 , n + 2 番地 , n + 3 番地の順に配置されます。 図 2.5-1 RAM 上の多バイト長データの配置 MSB H 01010101B LSB 11001100B 11111111B 00010100B 01010101B 11001100B 11111111B n番地 00010100B L MSB:Most Significant Bit LSB:Least Significant Bit ■ 多バイト長オペランドの配置 図 2.5-2 に , メモリ上における多バイト長オペランドの構成を示します。 図 2.5-2 多バイト長オペランドの配置 JMPP 123456H H JMPP 1 2 3 4 5 6H 12H 34H 56H n番地 63H L 29 第 2 章 CPU ■ スタック上の多バイト長データの配置 図 2.5-3 に , スタック上における多バイト長データの構成を示します。 図 2.5-3 スタック上の多バイト長データの配置 PUSHW RW1,RW3 H PUSHW RW1 RW3 (35A4 H)(6DF0H) SP 6DH F0H 35H A4H n番地 L RW1:35A4H RW3:6DF0H ■ 多バイト長データのアクセス アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク セスする命令では , "FFFFH" 番地の次のアドレスは同じバンクの "0000H" 番地になり ます。図 2.5-4 に , 多バイト長データのアクセス命令の実行例を示します。 図 2.5-4 多バイト長データのアクセス命令実行例 H 実行前のAL 80FFFFH 01H 800000H ・ ・ ・ 23H L 30 ? ? ? ? MOVW A, 080FFFFH 実行後のAL 23H 01H 第 2 章 CPU 2.6 レジスタ F2MC-16LX のレジスタは大別して , CPU 内部の専用レジスタと , 内蔵 RAM 上の汎 用レジスタの 2 種類に分けられます。 ■ 専用レジスタと汎用レジスタ 専用レジスタは , CPU 内部の専用ハードウェアで , 使用する用途が CPU のアーキテク チャ上で限定されているものです。汎用レジスタは , CPU のアドレス空間上に RAM と 共存します。アドレス指定なしでアクセスできるという点では専用レジスタと同じで すが , 通常のメモリと同じく , 使用する用途をユーザが指定することができるもので す。デバイス内の専用レジスタと汎用レジスタの配置を , 図 2.6-1 に示します。 図 2.6-1 専用レジスタと汎用レジスタ CPU RAM 専用レジスタ RAM アキュムレータ 汎用レジスタ ユーザスタックポインタ システムスタックポインタ プロセッサステータス 内 プログラムカウンタ 部 ダイレクトページレジスタ バ プログラムカウンタバンクレジスタ ス データバンクレジスタ ユーザスタックバンクレジスタ システムスタックバンクレジスタ アディショナルデータバンクレジスタ 31 第 2 章 CPU 2.7 専用レジスタ CPU 内の専用レジスタは , 次の 11 種類のレジスタで構成されています。 • アキュムレータ (A) • ユーザスタックポインタ (USP) • システムスタックポインタ (SSP) • プロセッサステータス (PS) • プログラムカウンタ (PC) • ダイレクトページレジスタ (DPR) • プログラムカウンタバンクレジスタ (PCB) • データバンクレジスタ (DTB) • ユーザスタックバンクレジスタ (USB) • システムスタックバンクレジスタ (SSB) • アディショナルデータバンクレジスタ (ADB) ■ 専用レジスタの構成 図 2.7-1 に , 専用レジスタの構成を , 表 2.7-1 に , 専用レジスタの初期値を示します。 図 2.7-1 専用レジスタの構成 AH AL :アキュムレータ(A) 演算結果の格納などに使用される,16ビット×2本のレジスタです。 連続して32ビットレジスタとしても,使用可能です。 USP :ユーザスタックポインタ(USP) ユーザスタックアドレスを示す,16ビットのポインタです。 SSP :システムスタックポインタ(SSP) システムスタックアドレスを示す,16ビットのポインタです。 PS :プロセッサステータス(PS) システムの状態を示す,16ビットのレジスタです。 PC :プログラムカウンタ(PC) 現在の命令格納位置を示す,16ビットのレジスタです。 DPR :ダイレクトページレジスタ(DPR) 短縮直接アドレッシング時のオペランドアドレスのbit8~15を 指定します。8ビットのレジスタです。 PCB :プログラムカウンタバンクレジスタ(PCB) プログラム空間を示す,8ビットのレジスタです。 DTB :データバンクレジスタ(DTB) データ空間を示す,8ビットのレジスタです。 USB :ユーザスタックバンクレジスタ(USB) ユーザスタック空間を示す,8ビットのレジスタです。 SSB :システムスタックバンクレジスタ(SSB) システムスタック空間を示す,8ビットのレジスタです。 ADB 8ビット :アディショナルデータバンクレジスタ(ADB) アディショナル空間を示す,8ビットのレジスタです。 16ビット 32ビット 32 第 2 章 CPU 専用レジスタ 初期値 アキュムレータ (A) 不定 ユーザスタックポインタ (USP) 不定 システムスタックポインタ (SSP) 不定 bit15 ~ bit13 bit12 プロセッサステータス (PS) PS ILM 0 0 0 0 bit8 bit7 ~ RP 0 0 0 0 - 0 ~ bit0 CCR 1 x x x x x -: 未定義 X: 不定 プログラムカウンタ (PC) ダイレクトページレジスタ (DPR) プログラムカウンタバンク レジスタ (PCB) リセットベクトル中の値 (FFFFDCH, FFFFDDH の内容 ) 01H リセットベクトル中の値 (FFFFDEH の内容 ) データバンクレジスタ (DTB) 00H ユーザスタックバンクレジスタ (USB) 00H システムスタックバンクレジスタ (SSB) 00H アディショナルデータバンク レジスタ (ADB) 00H <注意事項> 上記の初期値は , デバイスの初期値であり , ICE ( エミュレータなど ) では異なります。 33 第 2 章 CPU 2.7.1 アキュムレータ (A) アキュムレータ (A) は , 2 つの 16 ビット長の演算用レジスタ (AH および AL) から構 成され , 演算結果やデータの一時記憶などに使用されるレジスタです。 A レジスタは , 32/16/8 ビットのレジスタとして使用でき , メモリやほかのレジスタ との間 , または AH-AL レジスタ間で , 各種の演算ができます。また , ワード長以下 のデータを AL レジスタへ転送すると , 転送前の AL レジスタ中のデータが自動的に AH レジスタに転送されるデータ保持機能があります ( 一部データ保持しない命令が あります ) 。 ■ アキュムレータ (A) ● アキュムレータへのデータ転送 アキュムレータは , 32 ビット ( ロングワード ) , 16 ビット ( ワード ) , 8 ビット ( バイト ) の各データを処理することができます。一部例外的に 4 ビットデータ転送命令 (MOVN) もありますが , 8 ビットデータと同様に説明します。 • 32ビットデータ処理のときは, AHレジスタとALレジスタが連結して使用されます。 • 16 ビットデータや 8 ビットデータのときは , AL レジスタだけが使用されます • ALレジスタへのバイト長以下のデータの転送時には, データは符号拡張またはゼロ 拡張され , 16 ビット長となり AL レジスタへ格納されます。また , AL レジスタ中の データは , ワード長としてもバイト長としても扱えます。 アキュムレータへのデータ転送の様子を図 2.7-2 に示します。また , 具体的な転送例を 図 2.7-3 ~図 2.7-6 に示します。 図 2.7-2 アキュムレータへのデータ転送 32ビット AH AL 32ビットデータ転送 データ転送 データ転送 AH 16ビットデータ転送 AL データ退避 データ転送 AH 8ビットデータ転送 AL データ退避 00HもしくはFFH* データ転送 (ゼロ拡張または符号拡張) *: 4ビット転送命令のときは000HまたはFFFHとなります。 34 第 2 章 CPU ● アキュムレータのバイト処理算術演算 バイト処理の算術演算命令を AL レジスタに対して実行すると , 演算前の AL レジスタ の上位 8 ビットは無視され , 演算結果の上位 8 ビットはすべて "0" になります。 ● アキュムレータの初期値 リセット後の初期値は不定です。 図 2.7-3 アキュムレータ (A) の AL-AH 間の転送例 (8 ビット即値 , ゼロ拡張 ) MOV A,3000H (3000H番地の内容をゼロ拡張し,ALレジスタに格納する命令) MSB 実行前 AH AL XXXXH 2456H 2456H LSB 88H 77H B5H DTB 実行後 B53000H メモリ空間 X MSB LSB DTB 0088H :不定 :Most Significant Bit :Least Significant Bi :データバンクレジスタ 図 2.7-4 アキュムレータ (A) の AL-AH 間の転送例 (8 ビット即値 , 符号拡張 ) MOVW A,3000H (3000H番地の内容をALレジスタに格納する命令) MSB 実行前 AH AL XXXXH 2456H DTB 実行後 2456H B53000H メモリ空間 LSB 88H 77H B5H X MSB LSB DTB 7788H :不定 :Most Significant Bit :Least Significant Bi :データバンクレジスタ 図 2.7-5 アキュムレータ (A) への 32 ビットデータ転送例 ( レジスタ間接 ) (RW1の内容+8ビット長オフセットの結果を番地としてロングワード 長読出しを行い,その内容をAレジスタに格納する命令) MOVL A,@RW1+6 実行前 AH XXXXH DTB 実行後 8F74H MSB AL XXXXH 2B52H A6153EH 8FH 2BH 74H 52H RW1 15H 38H A61540H A6H メモリ空間 LSB +6 X MSB LSB DTB :不定 :Most Significant Bit :Least Significant Bit :データバンクレジスタ 35 第 2 章 CPU 図 2.7-6 アキュムレータ (A) の AL-AH 間の転送例 (16 ビット , レジスタ間接 ) (RW1の内容+8ビット長オフセットの結果を番地としてワード長 読出しを行い,その内容をAレジスタに格納する命令) MOVW A,@RW1+6 AH 実行前 XXXXH 1234H DTB 実行後 1234H MSB AL 2B52H A6H A61540H A6153EH 8FH 2BH 74H 52H RW1 15H 38H LSB +6 X MSB LSB DTB 36 メモリ空間 :不定 :Most Significant Bit :Least Significant Bit :データバンクレジスタ 第 2 章 CPU スタックポインタ (USP, SSP) 2.7.2 スタックポインタには , ユーザスタックポインタ (USP) とシステムスタックポイン タ (SSP) があり , いずれも PUSH 命令 , POP 命令およびサブルーチンを実行すると きの , データの退避先や復帰先のメモリアドレスを示すレジスタです。スタックア ドレスの上位 8 ビットは , ユーザスタックバンクレジスタ (USB) またはシステムス タックバンクレジスタ (SSB) で指定されます。 コンディションコードレジスタ (CCR) の S フラグが "0" のときは , USP および USB レジスタが有効になります。S フラグが "1" のときは , SSP および SSB レジ スタが有効になります。 ■ スタックの選択 F2MC-16LX では , システムスタックとユーザスタックの 2 種類のスタックが使用でき ます。スタックのアドレスは , プロセッサステータス (PS:CCR) 内の S フラグによって , 表 2.7-2 のように決定されます。 スタックアドレス S フラグ 0 1 上位 8 ビット 下位 16 ビット ユーザスタックバンクレジスタ (USB) ユーザスタックポインタ (USP) システムスタックバンクレジスタ (SSB) システムスタックポインタ (SSP) : 初期値 リセットによって, Sフラグは"1"に初期化されるため, デフォルトではシステムスタッ クが使用されます。通常 , 割込みルーチンでのスタック操作には , システムスタックが 用いられ , 割込みルーチン以外のスタック操作にはユーザスタックが用いられます。特 にスタック空間を分ける必要がなければ , システムスタックだけを使用してください。 <注意事項> 割込みが受け付けられると S フラグが "1" にセットされるため , 割込み時は必ずシステム スタックが使用されます。 37 第 2 章 CPU 図 2.7-7 に , システムスタックを使ったスタック操作例について示します。 図 2.7-7 スタック操作命令とスタックポインタ Sフラグが"0"のときのPUSHW A 実行前 AL A624H Sフラグ 0 実行後 AL A624H Sフラグ 0 MSB USB C6H USP F328H SSB 56H SSP 1234H USB C6H USP F326H SSB 56H SSP 1234H C6F326H LSB XXH XXH Sフラグが"0"であるため ユーザスタックを使用 C6F326H A6H 24H Sフラグが"1"のときのPUSHW A MSB 実行前 AL A624H Sフラグ 1 実行後 AL A624H Sフラグ 1 X MSB LSB USB C6H USP F328H SSB 56H SSP 1234H USB C6H USP F328H SSB 56H SSP 1232H :不定 :Most Significant Bit :Least Significant Bit LSB 561232H XXH XXH 561232H A6H 24H Sフラグが"1"であるため システムスタックを使用 <注意事項> スタックポインタに設定する値は , 原則として偶数アドレスを使用してください。奇数ア ドレスを設定すると , ワードアクセスが 2 回に分割され効率が低下します。 USP レジスタおよび SSP レジスタのリセット後の初期値は不定です。 ■ システムスタックポインタ (SSP) システムスタックポインタ (SSP) を使用するときは , プロセッサステータス (PS) 中の コンディションコードレジスタ (CCR) 内の S フラグを "1" に設定します。この場合 , ス タック操作を行うときに使用されるアドレスの上位8ビットは, システムスタックバン クレジスタ (SSB) により示されます。 ■ ユーザスタックポインタ (USP) ユーザスタックポインタ (USP) を使用するときは , プロセッサステータス (PS) 中のコ ンディションコードレジスタ (CCR) 内の S フラグを "0" に設定します。この場合 , ス タック操作を行うときに使用されるアドレスの上位8ビットは, ユーザスタックバンク レジスタ (USB) により示されます。 38 第 2 章 CPU 2.7.3 プロセッサステータス (PS) プロセッサステータス (PS) は , CPU を制御するビットと CPU の状態を示す各種 ビットから構成されています。 ■ プロセッサステータス (PS) のビット構成 PS レジスタは , 次の 3 つのレジスタで構成されています。 • インタラプトレベルマスクレジスタ (ILM) • レジスタバンクポインタ (RP) • コンディションコードレジスタ (CCR) 図 2.7-8 に , プロセッサステータス (PS) のビット構成を示します。 図 2.7-8 プロセッサステータス (PS) のビット構成 ILM RP CCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 PS ILM2 ILM1 ILM0 B4 B3 B2 B1 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 B0 - I 0 S 1 T N Z V C X X X X X - :未定義 X :不定 ● インタラプトレベルマスクレジスタ (ILM) CPU が現在受け付けている割込みのレベルを示し , 各周辺機能の割込み要求に対応し て設定されている , 割込み制御レジスタの割込みレベル設定ビット (ICR:IL0 ~ IL2) の 値と比較されます。 ● レジスタバンクポインタ (RP) RAM 領域の中で , 汎用レジスタとして使用するメモリブロック ( レジスタバンク ) の 先頭アドレスを指定するポインタです。 汎用レジスタは全部で 32 バンクあり , RP に 0 ~ 31 の値をセットしてバンクを指定し ます。 ● コンディションコードレジスタ (CCR) 命令の実行結果や割込みの発生などによって , セット ("1") またはリセット ("0") され る , 各種フラグから構成されています。 39 第 2 章 CPU ■ コンディションコードレジスタ (PS:CCR) コンディションコードレジスタ (CCR) は , 演算結果や転送データの内容を示すビット と割込み要求の受付けを制御するビットによって構成されている 8 ビットレジスタで す。 図 2.7-9 に , CCR レジスタのビット構成を示します。命令実行時のコンディションコー ドレジスタ (CCR) の状態については , 『プログラミングマニュアル』を参照してくだ さい。 図 2.7-9 コンディションコードレジスタ (CCR) のビット構成 ILM RP CCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 PS ILM2 ILM1 ILM0 B4 - :未定義 X :不定 B3 B2 B1 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CCR 初期値 B0 - I S T N Z V C -01XXXXXB - 0 1 X X X X X 割込み許可フラグ スタックフラグ スティッキィフラグ ネガティブフラグ ゼロフラグ オーバフローフラグ キャリフラグ ● 割込み許可フラグ (I) ソフトウェア割込み以外のすべての割込み要求に対し , I フラグが "1" のときは割込み が許可され , "0" のときは割込みが禁止されます。リセットによりクリアされます。 ● スタックフラグ (S) スタック操作に用いられるポインタを示すフラグです。S フラグが "0" のときはユーザ スタックポインタ (USP) が有効になり , "1" のときはシステムスタックポインタ (SSP) が有効になります。割込み受付け時およびリセット時にセットされます。 ● スティッキィビットフラグ (T) 論理右シフト命令または算術右シフト命令を実行したときに , キャリからシフトアウ トされたデータに 1 つ以上 "1" があれば "1" となり , それ以外は "0" となります。シフ ト量がゼロの場合も "0" となります。 ● ネガティブフラグ (N) 演算結果の最上位ビットが"1"のとき"1"にセットされ, "0"のとき"0"にクリアされます。 ● ゼロフラグ (Z) 演算結果のビットがすべて "0" であれば "1" にセットされ , それ以外は "0" にクリアさ れます。 ● オーバフローフラグ (V) 演算の実行により , 符号付き数値としてオーバフローが生じると "1" にセットされ , 生 じないと "0" にクリアされます。 ● キャリフラグ (C) 演算の実行により , 最上位ビットからの桁上りまたは最上位ビットへの桁下りが生じ ると "1" にセットされ , 生じないと "0" にクリアされます。 40 第 2 章 CPU ■ レジスタバンクポインタ (PS:RP) レジスタバンクポインタ (RP) は , 現在使用している汎用レジスタバンクの先頭アドレ スを示すレジスタで , 汎用レジスタアドレッシング時の実アドレス変換に使用されま す。 図 2.7-10 に , レジスタバンクポインタ (RP) のレジスタのビット構成を示します。 図 2.7-10 レジスタバンクポインタ (RP) のビット構成 ILM RP CCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 PS ILM2 ILM1 ILM0 B4 B3 B2 B1 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 B0 - I S T N Z V C - 0 1 X X X X X RP 初期値 00000B - :未定義 X :不定 ■ 汎用レジスタ領域とレジスタバンクポインタ レジスタバンクポインタは , F2MC-16LX の持つ汎用レジスタと , それが存在する内部 RAM のアドレスとの関係を示すポインタです。RP の内容と実アドレスの関係は , 図 2.7-11 に示す変換規則になっています。 図 2.7-11 汎用レジスタ領域の物理アドレス変換規則 変換式 [ 000180H +(RP)× 10H ] RP=10H の場合 000370H レジスタバンク31 : : 000280H レジスタバンク16 : : 000180H レジスタバンク 0 • RP は , "00H ~ 1FH" までの値をとることができます。そのため , レジスタバンクの 先頭アドレスは , "000180H ~ 00037FH" の範囲に設定できます。 • アセンブラ命令では , RP に転送する 8 ビットの即値転送命令を使用できますが , 実 際に使用されるのはそのデータの下位 5 ビットだけです。 • リセット後の RP レジスタの初期値は "00H" になります。 41 第 2 章 CPU ■ インタラプトレベルマスクレジスタ (PS:ILM) インタラプトレベルマスクレジスタ (ILM) は , CPU が受け付ける割込みのレベルを示 す , 3 ビットのレジスタです。 図 2.7-12 に , インタラプトレベルマスクレジスタ (ILM) のビット構成を示します。割 込みの詳細は , 「第 3 章 割込み」を参照してください。 図 2.7-12 インタラプトレベルマスクレジスタ (ILM) のビット構成 ILM RP CCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 PS ILM2 ILM1 ILM0 B4 B3 B2 B1 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 B0 - I S T N Z V - 0 1 X X X X bit0 ILM 初期値 000B C X - :未定義 X :不定 インタラプトレベルマスクレジスタ (ILM) は , CPU が現在受け付けている割込みレベ ルを示し , 各周辺機能の割込み要求に対応して設定されている割込み制御レジスタ (ICR00 ~ ICR15) の IL0 ~ IL2 ビットの値と比較されます。割込み許可フラグが許可 (CCR:I=1) の状態で , このビットが示す値より小さい値 ( 割込みレベル ) の割込み要求 があった場合にのみ , CPU は割込み処理を行います。 • 割込みが受け付けられると , その割込みレベル値がインタラプトレベルマスクレジ スタ (ILM) にセットされ , これ以降の同じかそれより弱いレベルの割込みは受け付 けられなくなります。 • インタラプトレベルマスクレジスタ (ILM) は , リセットによりすべて "0" に初期化 されるため , 割込みレベルは最強に設定されており , 割込み禁止の状態になります。 • アセンブラ命令では , インタラプトレベルマスクレジスタ (ILM) に転送する 8 ビッ トの即値転送命令を使用できますが , 実際に使用されるのはそのデータの下位 3 ビットだけです。 42 ILM2 ILM1 ILM0 割込みレベル 割込みレベル高低 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 低 第 2 章 CPU プログラムカウンタ (PC) 2.7.4 プログラムカウンタ (PC) は , CPU が次に実行する命令コードのメモリアドレスの下 位 16 ビットを示す , 16 ビットカウンタです。 ■ プログラムカウンタ (PC) CPU が , 次に実行する命令コードを格納しているアドレスは , 上位 8 ビットをプログラ ムカウンタバンクレジスタ (PCB) で指定し , 下位 16 ビットをプログラムカウンタ (PC) で指定します。実際のアドレスは , 図 2.7-13 のように , 24 ビットに合成して使用しま す。PC は条件分岐命令 , サブルーチンコール命令 , 割込み , リセットなどで内容が更新 されます。また , オペランドを読み出すときのベースポインタとしても使用できます。 図 2.7-13 プログラムカウンタ (PC) 上位8ビット PCB FEH 下位16ビット PC ABCDH FEABCDH 次に実行する命令 <注意事項> PC, PCB ともにプログラム (MOV PC, #FF など ) で直接書き換えることはできません。 43 第 2 章 CPU 2.7.5 ダイレクトページレジスタ (DPR) ダイレクトページレジスタ (DPR) は , 短縮直接アドレス指定方式の命令実行時に , オペランドアドレスの bit8 ~ bit15 (addr8 ~ addr15) を指定する 8 ビットレジスタ です。 ■ ダイレクトページレジスタ (DPR) DPR は , 図 2.7-14 に示すように短縮直接アドレス指定方式の命令実行時に , オペラン ドアドレスの bit8 ~ bit15 (addr8 ~ addr15) を指定します。DPR は 8 ビット長であり , リセットで "01H" に初期化されます。また , 命令によって , 読出しと書込みができます。 図 2.7-14 ダイレクトページレジスタ (DPR) による物理アドレスの生成 DTBレジスタ A A A A A A A A DPRレジスタ B B B B B B B B 24ビット MSB 物理アドレス A A A A A A A A bit24 命令中の直接アドレス C C C C C C C C LSB B B B B B B B B bit16 bit15 C C C C C C C C bit8 bit7 bit0 MSB:Most Significant Bit LSB:Least Significant Bit ダイレクトページレジスタ (DPR) の設定とデータアクセスの例を図 2.7-15 に示しま す。 図 2.7-15 ダイレクトページレジスタ (DPR) の設定とデータアクセス例 MOV S:56H, #5AH 命令実行結果 上位8ビット 下位8ビット DTBレジスタ 12H 123458H 5AH 123456H DPRレジスタ 34H MSB : Most Significant Bit LSB : Least Significant Bit 44 123454H MSB LSB 第 2 章 CPU バンクレジスタ (PCB, DTB, USB, SSB, ADB) 2.7.6 バンクレジスタは , バンク方式アドレッシングの最上位 8 ビットアドレスを指定す るレジスタで , 次の 5 つのレジスタで構成されます。 • プログラムカウンタバンクレジスタ (PCB) • データバンクレジスタ (DTB) • ユーザスタックバンクレジスタ (USB) • システムスタックバンクレジスタ (SSB) • アディショナルデータバンクレジスタ (ADB) 各バンクレジスタは , それぞれプログラム空間 , データ空間 , ユーザスタック空間 , システムスタック空間およびアディショナル空間の配置される , メモリバンクを示 します。 ■ バンクレジスタ (PCB, DTB, USB, SSB, ADB) ● プログラムカウンタバンクレジスタ (PCB) PCB は , プログラム (PC) 空間を指定するバンクレジスタです。16M バイト全空間に分 岐する , JMPP, CALLP, RETP および RETI 命令実行時 , ソフトウェア割込み命令実行時 , ハードウェア割込み時および例外発生時に PCB は書き換わります。 ● データバンクレジスタ (DTB) DTB は , データ (DT) 空間を指定するバンクレジスタです。 ● ユーザスタックバンクレジスタ (USB) / システムスタックバンクレジスタ (SSB) USB および SSB は , スタック (SP) 空間を指定するバンクレジスタです。USB と SSB のどちらが使用されるかは , プロセッサステータス (PS:CCR) 内の S フラグの値に依存 します。詳細は , 「2.7.2 スタックポインタ (USP, SSP)」を参照してください。 ● アディショナルデータバンクレジスタ (ADB) ADB は , アディショナル (AD) 空間を指定するバンクレジスタです。 ● 各バンクの設定とデータアクセス すべてのバンクレジスタは , バイト長であり , リセットにより PCB は "FFH" に初期化 され , そのほかは "00H" に初期化されます。PCB は , 読出しはできますが書込みはでき ません。PCB 以外のバンクレジスタは , 読み書き可能です。 <注意事項> ただし , MB90420G/425G シリーズは , デバイスに内蔵されるメモリ空間までのサポート になります。 各レジスタの動作については , 「2.4.2 バンク方式によるアドレス指定」を参照してくだ さい。 45 第 2 章 CPU 2.8 汎用レジスタ 汎用レジスタは , "000180H" ~ "00037FH" の RAM 上に存在し , 16 ビット× 8 本を 1 バンクとして割り当てたメモリブロックです。汎用の 8 ビットレジスタ ( バイトレ ジスタ R0 ~ R7) , 16 ビットレジスタ ( ワードレジスタ RW0 ~ RW7) または 32 ビットレジスタ ( ロングワードレジスタ RL0 ~ RL7) として使用できます。 汎用レジスタは , 短い命令で高速に RAM をアクセスすることができます。レジスタ バンクでブロック化されているために , 内容の保護や機能単位の分割が容易です。 また , ロングワードレジスタとして使用するときは , 全空間を直接アクセスするリニ アポインタとしても使用できます。 ■ 汎用レジスタの構成 汎用レジスタは , "000180H" ~ "00037FH" の RAM 上に全部で 32 バンク存在し , レジス タバンクポインタ (RP) で使用するバンクを指定します。また , RP を読み出すと現在使 用中のバンクがわかります。RP は , 各バンクの先頭アドレスを次式のように決定しま す。 汎用レジスタの先頭アドレス =000180H + RP × 10H 図 2.8-1 に , 汎用レジスタバンクのメモリ空間内の配置と構成を示します。 図 2.8-1 汎用レジスタバンクのメモリ空間内の配置と構成 内蔵RAM 000380H 000370H 000360H 0002E0H 0002D0H 0002C0H 0002B0H 0001B0H 0001A0H 000190H 000180H : レジスタバンク31 バイト アドレス レジスタバンク30 02CEH : : : 02CCH レジスタバンク21 02C8H バイト アドレス R6 R4 R2 R0 02CAH R7 02CFH RW7 R5 R3 R1 02CDH RW6 02CBH RW5 RW4 02C9H レジスタバンク20 02C6H RW3 02C7H レジスタバンク19 02C4H 02C5H : : : : : 02C2H RW2 RW1 RW0 レジスタバンク 2 レジスタバンク 1 レジスタバンク 0 : RP 14H 02C0H LSB 16ビット 02C3H 02C1H MSB 変換式[000180H +RP × 10H] R0 RW0 RL0 MSB LSB ~ R7 :バイトレジスタ ~ RW7 :ワードレジスタ ~ RL3 :ロングワードレジスタ : Most Significant Bit : Least Significant Bit <注意事項> レジスタバンクポインタ (RP) は , リセット後 "00H" に初期化されます。 46 RL3 RL2 RL1 RL0 第 2 章 CPU ■ レジスタバンク レジスタバンクは汎用レジスタ ( バイトレジスタ R0 ~ R7, ワードレジスタ RW0 ~ RW7, ロングワードレジスタ RL0 ~ RL3) として , 各種演算やポインタに使用できます。 ロングワードレジスタは , メモリの全空間を直接アクセスするリニアポインタとして も使用できます。レジスタバンクのレジスタの内容は , 通常の RAM と同様に , リセッ トでは初期化されず , リセット前の状態が保持されます。ただし , パワーオン時は不定 となります。表 2.8-1 に , 汎用レジスタの代表的な機能を示します。 レジスタ名 機 能 R0 ~ R7 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ ( 正規化 ) 命 令のカウンタとしても使用 RW0 ~ RW7 ポインタとして使用 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 ~ RL3 ロングポインタとして使用 各種命令のオペランドとして使用 47 第 2 章 CPU 2.9 プリフィックスコード 命令の前にプリフィックスコードを置くことにより , その命令の動作の一部を変更 することができます。プリフィックスコードには次の 3 種類があります。 • バンクセレクトプリフィックス (PCB, DTB, ADB, SPB) • コモンレジスタバンクプリフィックス (CMR) • フラグ変化抑止プリフィックス (NCC) ■ プリフィックスコード ● バンクセレクトプリフィックス (PCB, DTB, ADB, SPB) 命令の前にバンクセレクトプリフィックスを置くと , その命令がアクセスするメモリ 空間を , アドレス指定方式と無関係に任意に選択できます。 ● コモンレジスタバンクプリフィックス (CMR) レジスタバンクをアクセスする命令の前に , コモンレジスタバンクプリフィックスを 置くと , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命令のレジスタア クセスをすべて "000180H" ~ "00018FH" にあるコモンバンク (RP=0 のときに選択され るレジスタバンク ) に変更できます。 ● フラグ変化抑止プリフィックス (NCC) フラグ変化を抑止したい命令の前に , フラグ変化抑止プリフィックスコードを置くと , 命令の実行に伴うフラグ変化を抑止できます。 ■ バンクセレクトプリフィックス (PCB, DTB, ADB, SPB) データアクセスの際に使用されるメモリ空間は , アドレス指定方式ごとに定められて います。命令の前にバンクセレクトプリフィックスを置くと , その命令がアクセスする メモリ空間を , アドレス指定方式と無関係に任意に選択できます。バンクセレクトプリ フィックスと , 対応するメモリ空間を表 2.9-1 に示します。 バンクセレクト プリフィックス 選択される空間 PCB プログラム空間 DTB データ空間 ADB アディショナル空間 SPB コンディションコードレジスタ (CCR) の S フラグの値が "0" のとき ユーザスタック空間が , "1" のときシステムスタック空間が用いられ ます。 バンクセレクトプリフィックスを使用した場合 , 一部の命令では例外的な動作を行い ます。表 2.9-2 に , バンクセレクトプリフィックスの影響を受けない命令を , 表 2.9-3 に バンクセレクトプリフィックス使用時に注意すべき命令を示します。 48 第 2 章 CPU 命令の種類 命令 MOVS SCEQ FILS ストリング命令 スタック操作 命令 PUSHW I/O アクセス命令 MOV MOVW MOV MOV MOVB SETB BBC WBTC 割込み復帰命令 RETI バンクセレクトプリフィックスの効果 MOVSW SCWEQ FILSW プリフィックスの有無にかかわらず , オ ペランドで指定されたバンクレジスタが 使用されます。 POPW プリフィックスの有無にかかわらず , S フ ラグが "0" のときはユーザスタックバン ク (USB) が , S フラグが "1" のときはシス テムスタックバンク (SSB) が使用されま す。 A, io A, io io, A io, #imm8 A, io:bp io:bp io:bp, rel io, bp 命令の種類 MOVX A, io MOVW MOVW MOVB CLRB BBS WBTS io, A io, #imm16 io:bp, A io:bp io:bp, rel io:bp プリフィックスの有無にかかわらず , I/O 空間 ("000000H" ~ "0000FFH") がアクセス されます。 プリフィックスの有無にかかわらず , シ ステムスタックバンク (SSB) が使用され ます。 命令 説明 フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの効果が次の命令までおよ びます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果が次の命令までおよ びます。 PS 復帰命令 POPW PS PS 復帰命令に対してはバンクセレクトプ リフィックスを付加しないでください。 ■ コモンレジスタバンクプリフィックス (CMR) 複数のタスク間でのデータ交換を容易にするためには , そのときのレジスタバンクポ インタ (RP) がどのような値でも , 比較的簡単に , ある定められた同一のレジスタバン クをアクセスする手段が必要です。そのために , F2MC -16LX では , 各タスクで共通に 使用できるレジスタバンクを用意しています。これをコモンバンクといいます。コモ ンバンクは , "000180H" ~ "00018FH" 番地にあります。 レジスタバンクをアクセスする命令の前に , コモンレジスタバンクプリフィックス (CMR) を置くと , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命令のレ ジスタアクセスを , すべて "000180H" ~ "00018FH" にあるコモンバンク (RP=0 のときに 選択されるレジスタバンク ) に変更できます。ただし , 表 2.9-4 に示す命令に対しては 注意が必要です。 49 第 2 章 CPU 命令の種類 命令 説明 ストリング命令 MOVS SCEQ FILS MOVSW SCWEQ FILSW フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの効果が , 次の命令までおよ びます。 PS 復帰命令 POPW PS プリフィックスの効果が , 次の命令までおよ びます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果が , 次の命令までおよ びます。 ストリング命令に対しては , CMR プリ フィックスを付加しないでください。 ■ フラグ変化抑止プリフィックス (NCC) 不要なフラグ変化を抑止するために , フラグ変化抑止プリフィックス (NCC) を用いま す。フラグ変化を抑止したい命令の前に , NCC プリフィックスを置くと , 命令の実行 に伴うフラグ変化を抑止できます。変化が抑止されるフラグには T, N, Z, V, C があり ます。ただし , 表 2.9-5 に示す命令に対しては注意が必要です。 命令の種類 命令 ストリング命令 MOVS SCEQ FILS フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ (CCR) は命令の仕様どおりに変化 します。プリフィックスの効果が , 次の命令までおよ びます。 PS 復帰命令 POPW PS プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ (CCR) は命令の仕様どおりに変化 します。プリフィックスの効果が , 次の命令までおよ びます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果が , 次の命令までおよびます。 割込み命令 割込み復帰命令 INT #vct8 INT adder16 RETI プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ (CCR) は命令の仕様どおりに変化 します。 コンテキスト スイッチ命令 JCTX @ A 50 MOVSW SCWEQ FILSW 説明 INT9 INTP addr24 ストリング命令に対しては , NCC プリフィックスを 付加しないでください。 プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ (CCR) は命令の仕様どおりに変化 します。 第 2 章 CPU ■ プリフィックスコードに関する制約 プリフィックスコードの使用には , 次の 3 つの制約があります。 • プリフィックスコードや割込み / ホールド抑止命令の実行中は , 割込み / ホールド要 求を受け付けない。 • 割込み / ホールド命令の前にプリフィックスコードを置いた場合 , プリフィックス コードの効果が遅延する。 • 競合するプリフィックスコードが連続した場合 , 最後のものが有効となる。 表 2.9-6 にプリフィックスコードと割込み / ホールド抑止命令を示します。 プリフィックス コード 割込みやホールド要求 を受け付けない命令 PCB DTB ADB SPB CMR NCC 割込み / ホールド抑止命令 ( プリフィックスコードの効果を遅延させる命令 ) MOV OR AND POPW LM, #imm8 CCR, #imm8 CCR, #imm8 PS ● 割込み / ホールドの抑止 図 2.9-1 に示すように , プリフィックスコードや割込み / ホールド命令の実行中は , 割 込みやホールド要求が発生しても , 受け付けません。この場合 , 割込み / ホールド処理 が行われるのは , プリフィックスコードや割込み / ホールド抑止命令以降 , 初めてこれ 以外の命令が実行された後になります。 図 2.9-1 割込み / ホールドの抑止 割込み/ホールド抑止命令 ・・・・・・・・・・・・・・・ (a) ・・・ (a) 普通の命令 割込み要求発生 割込み受付け 51 第 2 章 CPU ● プリフィックスコードの効果遅延 図 2.9-2 に示すように , 割込み / ホールド抑止命令の前にプリフィックスコードを置い た場合 , プリフィックスコードの効果は , 割込み / ホールド抑止命令後の最初の命令に 対して有効となります。 図 2.9-2 割込み / ホールド抑止命令とプリフィックスコード 割込み/ホールド抑止命令 MOV A,FFH NCC ・・・・ MOV ILM,#imm8 ADD A,01H CCR:XXX10XXB CCR:XXX10XXB NCCによりCCRは変化しません ● プリフィックスコードの連続 図 2.9-3 に示すように , 競合するプリフィックスコード (PCB, ADB, DTB, SPB) が連続 していた場合 , 最後のものが有効になります。 図 2.9-3 プリフィックスコードの連続 プリフィックスコード ・・・ ADB DTB PCB ADD A,01H ・・・ プリフィックスコードは PCBが有効になります。 52 第3章 割込み この章では , 割込みと拡張インテリジェント I/O サービス (EI2OS) について説明します。 3.1 割込みの概要 3.2 割込み要因と割込みベクタ 3.3 割込み制御レジスタと周辺機能 3.4 ハードウェア割込み 3.5 ソフトウェア割込み 3.6 拡張インテリジェント I/O サービス (EI2OS) による割込 み 3.7 未定義命令の実行による例外処理割込み 3.8 割込み処理のスタック動作 3.9 割込み処理のプログラム例 53 第 3 章 割込み 3.1 割込みの概要 F2MC-16LX にはイベントなどが発生した場合 , 現在実行中の処理を中断して , 別に 定義したプログラムへ制御を移す 4 つの割込み機能があります。 • ハードウェア割込み • ソフトウェア割込み • 拡張インテリジェント I/O サービス (EI2OS) による割込み • 例外処理 ■ 割込みの種類と機能 ● ハードウェア割込み 周辺機能からの割込み要求に対して , ユーザの定義した割込み処理用プログラムへ制 御を移行する機能です。 ● ソフトウェア割込み ソフトウェア割込み専用の命令 (INT 命令など ) の実行によって , ユーザの定義した割 込み処理用プログラムへ制御を移行する機能です。 ● 拡張インテリジェント I/O サービス (EI2OS) による割込み EI2OS は周辺機能とメモリ間の自動データ転送機能です。従来 , 割込み処理プログラム で行っていたデータ転送を DMA ( ダイレクトメモリアクセス ) のように行うことがで きます。指定回数のデータ転送処理が終了すると , 自動的に割込み処理プログラムを実 行します。 EI2OS による割込みは , ハードウェア割込みの一種です。 ● 例外処理 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項 ( 未定義命令 の実行 ) が発生したことを検出した段階で , 通常処理を中断して行われます。ソフト ウェア割込み命令の "INT10" と等価です。 54 第 3 章 割込み ■ 割込み動作 4 種類の割込み機能の , 起動および復帰処理を図 3.1-1 に示します。 図 3.1-1 割込み動作の概略フロー START メインプログラム YES 有効な ハードウェア割込み 要求あり ストリング系 * 命令実行中 NO 割込み起動/復帰処理 YES EI2OSか? 次の命令の取込みと デコード EI2OS NO YES INT命令か? NO EI2OS処理 ソフトウェア 割込み/ 例外処理 システムスタックへ 専用レジスタ退避 ハードウェア割込み 受付け禁止(I=0) ハードウェア 割込み YES システムスタックへ 専用レジスタ退避 指定回数終了か? または,周辺機能からの 終了要求があるか? NO CPU割込み処理レベル (ILM)更新 YES RETI命令か? NO 通常命令実行 NO 割込み 復帰処理 システムスタックから 専用レジスタが復帰し, 割込みルーチン呼出し 前のルーチンへ復帰 割込みベクタを 読み出してPC,PCB を更新し,割込み ルーチンへ分岐 ストリング系* 命令の繰返し完了 YES PC更新で次命令へ ポインタ移動 * :ストリング系命令の実行中は,1ステップごとに割込み判定を行います。 55 第 3 章 割込み 割込み要因と割込みベクタ 3.2 F2MC-16LX には , 256 種類の割込み要因に対応する機能があり , メモリの最上位ア ドレスに 256 組の割込みベクタテーブルを割り当てています。この割込みベクタは すべての割込みで共有します。 ソフトウェア割込みは , このすべての割込み (INT0 ~ INT256) を使用することがで きますが , 一部の割込みベクタはハードウェア割込みや例外処理割込みで共有され ています。また , ハードウェア割込みでは , 各周辺機能に対し , 割込みベクタと割込 み制御レジスタ (ICR) が固定されています。 ■ 割込みベクタ 割込み処理の際に参照する割込みベクタテーブルは , メモリ領域の最上位アドレス ("FFFC00H" ~ "FFFFFFH") に割り当てられています。また , 割込みベクタは , EI2OS, 例 外処理 , ハードウェア割込みおよびソフトウェア割込みで , 同じ領域を共有していま す。割込み番号と割込みベクタの割当てを表 3.2-1 に示します。 表 3.2-1 割込みベクタ一覧表 ソフトウェア 割込み命令 ベクタ アドレス L ベクタ アドレス M ベクタ アドレス H モードデータ 割込み No ハードウェア割込み INT0 FFFFFCH FFFFFDH FFFFFEH 未使用 #0 なし : : : : : : : INT7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 なし INT8 FFFFDCH FFFFDDH FFFFDEH FFFFDFH #8 (RESET ベクタ ) INT9 FFFFD8H FFFFD9H FFFFDAH 未使用 #9 なし INT10 FFFFD4H FFFFD5H FFFFD6H 未使用 #10 <例外処理> INT11 FFFFD0H FFFFD1H FFFFD2H 未使用 #11 ハードウェア割込み #0 INT12 FFFFCCH FFFFCDH FFFFCEH 未使用 #12 ハードウェア割込み #1 INT13 FFFFC8H FFFFC9H FFFFCAH 未使用 #13 ハードウェア割込み #2 INT14 FFFFC4H FFFFC5H FFFFC6H 未使用 #14 ハードウェア割込み #3 : : : : : : : INT254 FFFC04H FFFC05H FFFC06H 未使用 #254 なし INT255 FFFC00H FFFC01H FFFC02H 未使用 #255 なし <参考> 使われない割込みベクタも , 例外処理などのアドレスに設定することを推奨します。 56 第 3 章 割込み ■ 割込み要因と割込みベクタ・割込み制御レジスタ 表 3.2-2 に , ソフトウェア割込みを除く割込み要因と , 割込みベクタ , 割込み制御レジ スタの関係を示します。 表 3.2-2 割込み要因と割込みベクタ・割込み制御レジスタ 割込み要因 EI2OS 対応 割込みベクタ 割込み制御レジスタ ICR アドレス *2 高い × - - × #09 09H FFFFD8H - - 例外処理 CAN0 RX × #10 0AH FFFFD4H - - × #11 0BH FFFFD0H CAN0 TX/NS × #12 0CH FFFFCCH ICR00 0000B0H * 1 CAN1 RX × #13 0DH FFFFC8H CAN1 TX/NS × #14 0EH FFFFC4H ICR01 0000B1H * 1 インプットキャプチャ 0 △ #15 0FH FFFFC0H ICR02 0000B2H * 1 ICR03 0000B3H * 1 ICR04 0000B4H * 1 ICR05 0000B5H * 1 ICR06 0000B6H * 1 ICR07 0000B7H * 1 ICR08 0000B8H * 1 ICR09 0000B9H * 1 ICR10 0000BAH * 1 ICR11 0000BBH * 1 ICR12 0000BCH * 1 ICR13 0000BDH * 1 ICR14 0000BEH * 1 ICR15 0000BFH * 1 リセット INT9 命令 優先度 アドレス FFFFDCH 番号 08H #08 DTP/ 外部割込み・ch.0 検出時 △ #16 10H FFFFBCH リロードタイマ 0 △ #17 11H FFFFB8H FFFFB4H DTP/ 外部割込み・ch.1 検出時 △ #18 12H インプットキャプチャ 1 △ #19 13H FFFFB0H FFFFACH DTP/ 外部割込み・ch.2 検出時 △ #20 14H インプットキャプチャ 2 △ #21 15H FFFFA8H DTP/ 外部割込み・ch.3 検出時 △ #22 16H FFFFA4H インプットキャプチャ 3 △ #23 17H FFFFA0H DTP/ 外部割込み・ch.4/ch.5 検出時 △ #24 18H FFFF9CH PPG タイマ 0 △ #25 19H FFFF98H DTP/ 外部割込み・ch.6/ch.7 検出時 △ #26 1AH FFFF94H PPG タイマ 1 △ #27 1BH FFFF90H リロードタイマ 1 △ #28 1CH FFFF8CH PPG タイマ 2 ○ #29 1DH FFFF88H リアルタイム時計タイマ × #30 1EH FFFF84H フリーランタイマオーバフロー A/D コンバータ変換終了 × #31 1FH FFFF80H ○ #32 20H FFFF7CH フリーランタイマクリア × #33 21H FFFF78H FFFF74H サウンドジェネレータ × #34 22H タイムベースタイマ 時計タイマ ( サブクロック ) × #35 23H FFFF70H × #36 24H FFFF6CH UART1・受信 ◎ #37 25H FFFF68H UART1・送信 △ #38 26H FFFF64H UART0・受信 ◎ #39 27H FFFF60H UART0・送信 △ #40 28H FFFF5CH フラッシュメモリステータス × #41 29H FFFF58H 遅延割込み発生モジュール × #42 2AH FFFF54H 低い ◎ : 使用可能 , EI2OS 停止機能付き , ○ : 使用可能 , × : 使用不可 , △ : ICR を共有する割込み要因を使用しないとき使用可能 *1: ・ ICR レジスタを共用している周辺機能は , 割込みレベルが同一になります。 ・ ICR レジスタを共用している周辺機能で拡張インテリジェント I/O サービスを使用する場合は , どちらか 一方しか利用できません。 ・ ICR レジスタを共用している周辺機能の場合 , 片方で拡張インテリジェント I/O サービスを指定すると , もう一方での割込みの使用はできなくなります。 *2: 同時に同じレベルの割込みが発生した場合の優先度です。 57 第 3 章 割込み 3.3 割込み制御レジスタと周辺機能 割込み制御レジスタ (ICR00 ~ ICR15) は , 割込みコントローラ内にあり , 割込み機 能を持つすべての周辺機能に対応して存在します。このレジスタは , 割込みと拡張 インテリジェント I/O サービス (EI2OS) の制御を行います。 ■ 割込み制御レジスタ一覧 表 3.3-1 に , 割込み制御レジスタと対応する周辺機能の一覧を示します。 表 3.3-1 割込み制御レジスタ一覧 アドレス レジスタ 略称 対応する周辺機能 0000B0H 割込み制御レジスタ 00 ICR00 CAN0 0000B1H 割込み制御レジスタ 01 ICR01 CAN1 0000B2H 割込み制御レジスタ 02 ICR02 インプットキャプチャ 0, DTP/ 外部割込み 0 0000B3H 割込み制御レジスタ 03 ICR03 リロードタイマ 0, DTP/ 外部割込み 1 0000B4H 割込み制御レジスタ 04 ICR04 インプットキャプチャ 1, DTP/ 外部割込み 2 0000B5H 割込み制御レジスタ 05 ICR05 インプットキャプチャ 2, DTP/ 外部割込み 3 0000B6H 割込み制御レジスタ 06 ICR06 インプットキャプチャ 3, DTP/ 外部割込み 4/5 0000B7H 割込み制御レジスタ 07 ICR07 PPG タイマ 0, DTP/ 外部割込み 6/7 0000B8H 割込み制御レジスタ 08 ICR08 PPG タイマ 1, リロードタイマ 1 0000B9H 割込み制御レジスタ 09 ICR09 PPG タイマ 2, 時計タイマ ( メインクロック ) 0000BAH 割込み制御レジスタ 10 ICR10 フリーランタイマ , A/D コンバータ 0000BBH 割込み制御レジスタ 11 ICR11 フリーランタイマ , サウンドジェネレータ 0000BCH 割込み制御レジスタ 12 ICR12 タイムベースタイマ , 時計タイマ ( サブクロック ) 0000BDH 割込み制御レジスタ 13 ICR13 UART1 0000BEH 割込み制御レジスタ 14 ICR14 UART0 0000BFH 割込み制御レジスタ 15 ICR15 フラッシュメモリ , 遅延割込み発生モジュール ■ 割込み制御レジスタの機能 割込み制御レジスタ (ICR) には , それぞれ次に示す 4 つの機能があります。 • 対応する周辺機能の割込みレベルの設定 • 対応する周辺機能の割込みを通常割込みにするか , 拡張インテリジェント I/O サー ビスにするかの選択 • 拡張インテリジェント I/O サービス (EI2OS) のチャネルの選択 • 拡張インテリジェント I/O サービス (EI2OS) のステータスの表示 割込み制御レジスタ (ICR) は , 次項の図 3.3-1 と図 3.3-2 に示すように , 書込み時と読出 し時で一部機能が異なります。 <注意事項> 割込み制御レジスタ (ICR) に対するリードモディファイライト系命令でのアクセスは , 誤 動作を引き起こしますので行わないでください。 58 第 3 章 割込み 割込み制御レジスタ (ICR00 ~ ICR15) 3.3.1 割込み制御レジスタは , 割込み機能を持つすべての周辺機能に対応し , 割込み要求発 生時の処理を制御します。このレジスタは書込み時と読出し時では , 一部の機能が 異なります。 ■ 割込み制御レジスタ (ICR00 ~ ICR15) 図 3.3-1 割込み制御レジスタ (ICR00 ~ ICR15) 書込み時 書込み時 アドレス ~ 0000B0H 0000BFH MSB ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 LSB 初期値 IL0 00000111B IL2 IL1 IL0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 割込みレベル設定ビット 割込みレベル0(最強) 割込みレベル7(割込みなし) EI2OS許可ビット ISE 0 割込み発生時に割込みシーケンスを起動 1 割込み発生時にEI2OSを起動 ICS3 ICS2 ICS1 ICS0 MSB LSB :Most Singnificant Bit :Least Singnificant Bit :初期値 EI2OSチャネル選択ビット チャネル ディスクリプタアドレス 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 59 第 3 章 割込み 図 3.3-2 割込み制御レジスタ (ICR00 ~ ICR15) 読出し時 アドレス MSB ~ 読出し時 - 0000B0H 0000BFH - S1 S0 ISE IL2 IL1 LSB 初期値 IL0 --000111B 割込みレベル設定ビット IL2 IL1 IL0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 割込みレベル0(最強) 割込みレベル7(割込みなし) EI2OS許可ビット ISE 0 割込み発生時に割込みシーケンスを起動 1 割込み発生時にEI2OSを起動 S1 MSB :Most Singnificant Bit LSB :Least Singnificant Bit - :未定義 :初期値 60 EI2OSステータス S0 0 0 EI2 0 1 カウント終了による停止状態 1 0 リザーブ 1 1 周辺機能からの要求による停止状態 OS動作中あるいは非起動時 第 3 章 割込み 3.3.2 割込み制御レジスタの機能 割込み制御レジスタ (ICR00 ~ ICR15) は , 次に示す 4 つの機能を持つビットで構成 されています。 • 割込みレベル設定ビット (IL2 ~ IL0) • 拡張インテリジェント I/O サービス (EI2OS) 許可ビット (ISE) • 拡張インテリジェント I/O サービス (EI2OS) チャネル選択ビット (ICS3 ~ ICS0) • 拡張インテリジェント I/O サービス (EI2OS) ステータス (S1, S0) ■ 割込み制御レジスタ (ICR) の構成 図 3.3-3 に , 割込み制御レジスタ (ICR) のビット構成図を示します。 図 3.3-3 割込み制御レジスタ (ICR) の構成 割込み制御レジスタ (ICR) 書込み時 アドレス 0000B0H ~ 0000BFH bit7 bit6 bit5 bit4 bit bit2 bit1 bit0 ICS3 W ICS2 W ICS1 W ICS0 W ISE R/W IL2 R/W IL1 R/W IL0 R/W 初期値 00000111B 割込み制御レジスタ (ICR) 読出し時 アドレス bit7 bit6 bit5 bit4 bit bit2 bit1 bit0 0000B0H ~ 0000BFH - - S1 R S0 R ISE R/W IL2 R/W IL1 R/W IL0 R/W 初期値 --000111B R/W :リード / ライト可能 R :リードオンリ W :ライトオンリ :未使用 ICS3 ~ ICS0 ビットは , 拡張インテリジェント I/O サービス (EI2OS) を起動する場合だ け有効となります。EI2OS を起動する場合は ISE ビットを "1" に設定し , 起動しない場 合は ISE ビットを "0" に設定してください。EI2OS を起動しない場合は , ICS3 ~ ICS0 を設定しなくてもかまいません。 ICS1 と ICS0 は書込み時だけ , S1 と S0 は読出し時だけ , それぞれ有効です。 61 第 3 章 割込み ■ 割込み制御レジスタの機能 ● 割込みレベル設定ビット (IL2 ~ IL0) 対応する周辺機能の割込みレベルを指定します。リセットによりレベル 7 ( 割込みなし ) に初期化されます。割込みレベル設定ビットと各割込みレベルとの関係を , 表 3.3-2 に示 します。 表 3.3-2 割込みレベル設定ビットと割込みレベルの対応 IL2 IL1 IL0 割込みレベル 0 0 0 0 ( 最高割込み ) 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 6 ( 最低割込み ) 1 1 1 7 ( 割込みなし ) ● 拡張インテリジェント I/O サービス (EI2OS) 許可ビット (ISE) 割込み要求の発生時にこのビットが "1" であると EI2OS が起動され , "0" の場合は割込 みシーケンスが起動されます。また , EI2OS の終了条件が成立 (S1, S0 ビットが "00B" 以 外 ) した場合 , ISE ビットはクリアされます。対応する周辺機能に EI2OS の機能がない 場合には , ソフトウェアで ISE ビットを "0" にしておく必要があります。ISE ビットは リセットで "0" に初期化されます。 ● 拡張インテリジェント I/O サービス (EI2OS) チャネル選択ビット (ICS3 ~ ICS0) 書込み専用のビットで , EI2OS のチャネルを指定します。ここで設定された値によって , EI2OS ディスクリプタのアドレスが決定します。ICS ビットはリセットで , "0000B" に初 期化されます。表 3.3-3 に EI2OS チャネル選択ビットとディスクリプタアドレスの対応 を示します。 表 3.3-3 EI2OS チャネル選択ビットとディスクリプタアドレスの対応 62 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 第 3 章 割込み ● 拡張インテリジェント I/O サービス (EI2OS) ステータスビット (S1, S0) 読出し専用のビットです。EI2OS 終了時にこの値を調べると , 動作状態や終了状態を判 別することができます。リセットで "00B" に初期化されます。表 3.3-4 に , S0, S1 ビッ トと EI2OS ステータスの関係について示します。 表 3.3-4 EI2OS ステータスビットと EI2OS ステータスの関係 EI2OS ステータス S1 S0 0 0 EI2OS 動作中あるいは非起動時 0 1 カウント終了による停止状態 1 0 リザーブ 1 1 周辺機能からの要求による停止状態 63 第 3 章 割込み 3.4 ハードウェア割込み ハードウェア割込みは , 周辺機能からの割込み要求信号に対応して , CPU がそれま で実行していたプログラムの実行を一時中断し , ユーザの定義した割込み処理用プ ログラムに制御を移行する機能です。また , 拡張インテリジェント I/O サービス (EI2OS) や外部割込みなどもハードウェア割込みの一種として実行されます。 ■ ハードウェア割込みの機能 ● ハードウェア割込みの機能 ハードウェア割込みは , 周辺機能が出力する割込み要求信号の割込みレベルと , CPUの プロセッサステータス (PS) 内のインタラプトレベルマスクレジスタ (ILM) の比較お よびプロセッサステータス (PS) 内の I フラグの内容をハードウェアで参照し , 割込み が受け付けられるかどうかを判定します。 ハードウェア割込みが受け付けられると , 自動的に CPU 内部のレジスタ類をシステム スタックへ退避し , インタラプトレベルマスクレジスタ (ILM) に現在要求している割 込みレベルを格納した後 , 対応する割込みベクタへ分岐します。 ● 多重割込み ハードウェア割込みは多重に起動できます。 ● 拡張インテリジェント I/O サービス (EI2OS) EI2OS は , メモリ -I/O 間の自動転送機能ですが , 指定回数の転送完了時に , ハードウェ ア割込みが起動されます。なお , EI2OS は多重に起動されることはなく , ある EI2OS の 処理中は , ほかの割込み要求および EI2OS 要求はすべて保留されます。 ● 外部割込み 外部割込み ( ウェイクアップ割込みを含む ) は , 周辺機能 ( 割込み要求検出回路 ) を通 じて , ハードウェア割込みとして受け付けられます。 ● 割込みベクタ 割込み処理の際に参照する割込みベクタテーブルは, メモリの"FFFC00H"~"FFFFFFH" に割り当ててあり , ソフトウェア割込みと共用しています。 割込み番号と割込みベクタの割当てについては , 「3.2 割込み要因と割込みベクタ」を 参照してください。 64 第 3 章 割込み ■ ハードウェア割込みの構造 ハードウェア割込みに関連する機構は , 表 3.4-1 に示す 4 つの部分に分かれて存在しま す。ハードウェア割込みを使用する場合はあらかじめ , プログラムでこの 4 箇所を設定 する必要があります。 表 3.4-1 ハードウェア割込みに関連する機構 ハードウェア割込みに関する機構 周辺機能 割込み許可ビット , 割込み要求ビット メモリ上の FFFC00H ~ FFFFFFH 周辺機能からの割込み要求の制御 割込みレベルの設定および EI2OS の制御 割込みコントローラ 割込み制御レジスタ (ICR) CPU 機 能 割込み許可フラグ (I) 割込み許可状態の識別 インタラプトレベルマスクレジスタ (ILM) 要求割込みレベルと現割込みレベルの比較 マイクロコード 割込み処理ルーチンの実行 割込みベクタテーブル 割込み処理時の分岐先アドレスを格納 ■ ハードウェア割込み抑止 ハードウェア割込みは , 以下の条件の場合 , 割込み要求の受付けが抑止されます。 ● 周辺機能制御レジスタ領域への書込み中のハードウェア割込み抑止 周辺機能制御レジスタ領域への書込み中はハードウェア割込み要求を受け付けません。 これは各周辺機能の割込み制御レジスタ関係の書換えを行っている最中の割込み要求 に対して , CPU が割込み関係で誤動作を起こすことを避けるためです。周辺機能制御レ ジスタ領域とは , 000000H ~ 0000FFH の I/O アドレッシング領域のことではなく , 周辺 機能制御レジスタの制御レジスタおよびデータレジスタに割り当てられている領域の ことを示します。 図 3.4-1 に , 周辺機能制御レジスタ領域への書込み中のハードウェア割込み動作につい て示します。 図 3.4-1 周辺機能制御レジスタ領域への書込み中のハードウェア割込み要求 周辺機能制御レジスタ領域への書込み命令 ・・・・・ MOV A,#08 MOV io,A ここで割込み 要求発生 MOV A,2000H 割込みに 分岐しない 割込み処理 割込みに 分岐する 65 第 3 章 割込み ● 割込み抑止命令のハードウェア割込み抑止 表 3.4-2 に示す 10 種類のハードウェア割込み抑止命令は , ハードウェア割込み要求の 有無を検出せず , 割込み要求を無視します。これらの命令を実行中に有効なハードウェ ア割込み要求が発生しても , 割込み処理は , この命令以降 , 初めてこれ以外の種類の命 令が実行された後になります。 表 3.4-2 ハードウェア割込み抑止命令 プリフィックス コード 割込みやホールド要求 を受け付けない命令 PCB DTB ADB SPB CMR NCC 割込み / ホールド抑止命令 ( プリフィックスコードの効果を遅延させる命令 ) MOV OR AND POPW ILM, #imm8 CCR, #imm8 CCR, #imm8 PS ● ソフトウェア割込み実行中のハードウェア割込み抑止 ソフトウェア割込みを起動すると , I フラグを "0" にクリアするために , 他の割込み要 求は受け付けられません。 66 第 3 章 割込み 3.4.1 ハードウェア割込みの動作 ハードウェア割込み要求発生から , 割込み処理完了までの動作について説明します。 ■ ハードウェア割込みの起動 ● 周辺機能の動作 ( 割込み要求の発生 ) ハードウェア割込み要求の機能を持つ周辺機能は , 割込み要求のあり / なしを示す「割 込み要求フラグ」と , CPU への割込み要求の許可 / 禁止を選択する「割込み許可フラ グ」を持っています。割込み要求フラグは周辺機能固有のイベントの発生によりセッ トされ , 割込み許可フラグが「許可」であった場合に , 割込みコントローラへ割込み要 求を発生します。 ● 割込みコントローラの動作 ( 割込み要求の制御 ) 割込みコントローラは , 同時に受け取った割込み要求の割込みレベル (IL) どうしを比 較し , 最も高いレベルの要求 (IL の値の最も小さいもの ) を採択して CPU へ通知しま す。同一レベルの要求が複数あった場合には , 割込み番号が小さいものを優先します。 ● CPU の動作 ( 割込み要求の受付けと割込み処理 ) CPU は受け取った割込みレベル (ICR:IL2 ~ IL0) とインタラプトレベルマスクレジスタ (ILM) とを比較し , IL < ILM で , なおかつ割込みが許可 (PS レジスタ内の I ビットが "1") されている場合に , 現在実行中の命令が終了後 , 割込み処理マイクロコードを起動 します。割込み処理マイクロコードの先頭で , 割込み制御レジスタ (ICR) の ISE ビット を参照し , ISE が "0" であれば引き続き割込み処理を実行します (ISE が "1" の場合は EI2OS を起動 ) 。 割込み処理では , まず , システムスタック (SSB と SSP の示すシステムスタック空間 ) へ専用レジスタ (A, DPR, ADB, DTB, PCB, PC, PS の 12 バイト ) の内容を退避します。 次に , 割込みベクタのプログラムカウンタ (PCB, PC) へのロード , ILM の更新 , スタッ クフラグ (S) の設定 (CCR の S フラグを "1" とし , システムスタックを有効にする ) を 行います。 ■ ハードウェア割込みからの復帰 割込み処理プログラムの中で , 割込み要因となった周辺機能の割込み要求フラグをク リアして , RETI 命令を実行すると , システムスタックに退避している 12 バイトデータ を専用レジスタに戻し , 割込み分岐前に実行していた処理に復帰します。割込み要求フ ラグをクリアすることで , 周辺機能が割込みコントローラへ出力していた割込み要求 は自動的に取り下げられます。 67 第 3 章 割込み ■ ハードウェア割込みの動作 図 3.4-2 に , ハードウェア割込みの発生から割込み処理完了までの動作を示します。 図 3.4-2 ハードウェア割込みの動作 内部データバス PS PS,PC・・ マイクロコード (7) IR (6) F2 MC-16LX CPU I ILM チェック (5) 比較器 (4) (3) ほかの周辺機能 ・ ・ ・ 割込み要求を発生した周辺機能 許可FF (8) 要因FF (1) AND レベル 比較器 割込み レベルIL (2) 割込みコントローラ RAM IL PS I ILM IR FF :割込み制御レジスタ(ICR)の割込みレベル設定ビット :プロセッサステータス :割込み許可フラグ :インタラプトレベルマスクレジスタ :インストラクションレジスタ :フリップフロップ (1) 周辺機能の内部で割込み要因が発生します。 (2) 周辺機能内の割込み許可ビットを参照し , 割込み許可になっていれば , 周辺から割 込みコントローラへ割込み要求を発生します。 (3) 割込み要求を受け取った割込みコントローラは, 同時に要求のあった割込みの優先 順位を判定したうえで , 該当する割込み要求に対応する割込みレベル (IL) を CPU へ転送します。 (4) CPU は , 割込みコントローラから要求のあった割込みレベル (IL) を , インタラプト レベルマスクレジスタ (ILM) と比較します。 (5) 比較した結果が現在の割込み処理レベルより優先順位が高い場合, コンディション コードレジスタ (CCR) の I フラグの内容をチェックします。 (6) (5) のチェックの結果 , I フラグが割込み許可 (I ビットが "1") の場合 , 現在実行中の 命令の実行が終了するまで待ち , 終了し次第 ILM に要求されたレベル (IL) を設定 します。 (7) レジスタを退避し , 割込み処理ルーチンへ分岐します。 (8) ユーザの割込み処理ルーチン内のソフトウェアによって , (1) で発生した割込み要 因をクリアし , RETI 命令を実行することで割込み処理が終了します。 68 第 3 章 割込み 3.4.2 ハードウェア割込みの動作フロー 周辺機能から割込み要求が発生すると , 割込みコントローラは割込みレベルを CPU に伝達し , CPU が割込みを受け付けられる状態であれば , 現在実行中の命令を一時中 断して割込み処理ルーチンを実行または , 拡張インテリジェント I/O サービス (EI2OS) を起動します。また , INT 命令によるソフトウェア割込みが発生した場合は , CPU の 状態にかかわらず割込み処理ルーチンを実行します。INT 命令によるソフトウェア割 込みが発生した場合は , ハードウェア割込みは禁止されます。 ■ ハードウェア割込みの動作フロー 図 3.4-3 に , ハードウェア割込みの動作フローを示します。 図 3.4-3 ハードウェア割込みの動作フロー START メインプログラム I&IF&IE=1 AND ILM>IL ストリング系* 命令実行中 NO YES 割込み起動/復帰処理 YES ISE=1 次の命令の取込みと デコード EI2OS NO YES INT命令か? NO EI2OS処理 ソフトウェア 割込み/ 例外処理 システムスタックへ 専用レジスタ退避 I←0 (ハードウェア割込みの禁止) ハードウェア 割込み YES システムスタックへ 専用レジスタ退避 指定回数終了か? または,周辺機能からの 終了要求があるか? NO ILM←IL (受け付けられた割込み 要求の割込みレベルを ILMに転送) YES RETI命令か? NO 通常命令実行 (割込み処理を含む) NO 割込み 復帰処理 S←1 (システムスタックを 有効にする) システムスタックから 専用レジスタが復帰し, 割込みルーチン呼出し 前のルーチンへ復帰 PCB,PC←割込みベクタ (割込み処理ルーチンへ 分岐) ストリング系* 命令の繰返し完了 YES PC更新で次命令へ ポインタ移動 * :ストリング系命令の実行中は,1ステップごとに 割込み判定を行います。 I :コンディションコードレジスタ(CCR)の 割込み許可フラグ IF :周辺機能の割込み要求フラグ IE :周辺機能の割込み許可フラグ ILM :インタラプトレベルマスクレジスタ(PS中の) ISE :割込み制御レジスタ(ICR)のEI2OS許可フラグ IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット S :コンディションコードレジスタ(CCR)の スタックフラグ PCB :プログラムカウンタバンクレジスタ PC :プログラムカウンタ 69 第 3 章 割込み 3.4.3 ハードウェア割込み使用手順 ハードウェア割込みを使用するには , システムスタック領域 , 周辺機能および割込み 制御レジスタ (ICR) などの設定が必要です。 ■ ハードウェア割込み使用手順 ハードウェア割込み使用手順の一例を , 図 3.4-4 に示します。 図 3.4-4 ハードウェア割込み使用手順 スタート (1) システムスタック領域の設定 割込み処理プログラム (2) 周辺機能の初期設定 (3) 割込みコントローラ内の ICRの設定 (4) 周辺機能の動作開始設定 割込み許可ビットを許可 に設定 (5) スタック処理 (8) 周辺機能への割込み 割込みベクトルへ分岐 に対する処理(割込み処 理ルーチンの実行) (7) ハードウェア による処理 (9) 割込み要因のクリア PS内のILM,Iの設定 (10) 割込み復帰命令(RETI) メインプログラム (6) 割込み要求発生 メインプログラム (1) システムスタック領域を設定します。 (2) 割込み要求を発生可能な周辺機能の初期設定をします。 (3) 割込みコントローラ内の割込み制御レジスタ (ICR) を設定します。 (4) 周辺機能を動作開始状態にし , 割込み許可ビットを許可に設定します。 (5) 割込みレベルマスクレジスタ (ILM) および割込み許可フラグ (I) を割込み受付け可 能に設定します。 (6) 周辺機能の割込み発生で , ハードウェア割込み要求が発生します。 (7) 割込み処理ハードウェアで , レジスタの退避が行われ , 割込み処理プログラムに分 岐します。 (8) 割込み処理プログラムで , 割込み発生に対する周辺機能への処理を行います。 (9) 周辺機能の割込み要求を解除します。 (10) 割込み復帰命令を実行し , 分岐前のプログラムに復帰します。 70 第 3 章 割込み 多重割込み 3.4.4 ハードウェア割込みでは , 周辺機能からの複数の割込み要求に対して , 割込み制御レ ジスタ (ICR) の割込みレベル設定ビット (IL0, IL1, IL2) に異なる割込みレベルを設定 することで , 多重割込みを実現できます。ただし , 拡張インテリジェント I/O サービ スの多重起動はできません。 ■ 多重割込み動作 割込み処理ルーチン実行中, より高いレベルの割込み要求が発生すると, 現在の割込み処 理を中断し , より強い割込み要求を受け付けます。高いレベルの割込みが終了すると , 元 の割込み処理に戻ります。割込みレベルは 0 ~ 7 まで設定できますが , レベル 7 に設定 した場合は CPU は割込み要求を受け付けません。 割込み処理実行中に , その割込みと同等かより低いレベルの割込み処理が発生した場 合 , I フラグか ILM を変更しないかぎり現在の割込みが終了するまで新しい割込み要求 は保留されます。また , 割込み処理ルーチン内でコンディションコードレジスタ (CCR) の I フラグを割込み禁止 (CCR の I が "0") にするか , インタラプトレベルマスクレジス タ (ILM) を割込み禁止 (ILM が "000") に設定すると割込み中の多重割込みの起動を一 時的に禁止することができます。 <注意事項> 拡張インテリジェント I/O サービス (EI2OS) は多重起動できません。拡張インテリジェン ト I/O サービス (EI2OS) の処理中は , ほかの割込み要求および拡張インテリジェント I/ O サービス要求はすべて保留されます。 71 第 3 章 割込み ■ 多重割込みの例 多重割込み処理の例として, A/Dコンバータよりタイマ割込みを優先させる場合を想定 し , A/D コンバータの割込みレベルを 2 に , タイマ割込みレベルを "1" に設定します。 上記設定の場合 , A/D コンバータの割込み処理中にタイマ割込みが発生すると , 図 3.4-5 のような処理を行います。 図 3.4-5 多重割込みの例 メインプログラム A/D割込み処理 割込みレベル2 (ILM=010) 周辺初期化 (1) A/D 割込み発生(2) タイマ割込み処理 割込みレベル1 (ILM=001) (3) タイマ割込み発生 中断 (4)タイマ割込み処理 再開 メイン処理再開(8) (6)A/D割込み処理 (5)タイマ割込み復帰 (7)A/D割込み復帰 ● A/D 割込み発生 A/Dコンバータ割込み処理開始時に, インタラプトレベルマスクレジスタ (ILM) が自動 的に A/D コンバータの割込みレベル (ICR の IL2 ~ IL0) と同じ値 ( 例では 2) になりま す。この場合 , レベル 1 またはレベル 0 の割込み要求が発生すると , この割込み処理を 優先して行います。 ● 割込み処理の終了 割込み処理が終了して復帰命令 (RETI) を実行すると , スタック内に退避した専用レジ スタ (A, DPR, ADB, DTB, PCB, PC, PS) の値が復帰し , インタラプトレベルマスクレジ スタ (ILM) は中断前の値となります。 72 第 3 章 割込み 3.4.5 ハードウェア割込み処理時間 ハードウェア割込み要求が発生して割込み処理ルーチンが実行されるまでには , 現 在実行中の命令が終了するまでの時間と , 割込みハンドリング時間が必要です。 ■ ハードウェア割込み処理時間 割込み要求が発生してから割込みが受け付けられて , 割込み処理ルーチンが実行され るまでには, 割込み要求サンプル待ち時間と割込みハンドリング時間 (割込み処理準備 に要する時間 ) が必要です。図 3.4-6 に , 割込み処理時間を示します。 図 3.4-6 割込み処理時間 通常命令実行 CPUの動作 割込み要求 サンプル待ち時間 割込み待ち時間 割込みハンドリング 割込み処理ルーチン 割込みハンドリング時間 (θマシンサイクル)* 割込み要求発生 :命令最終サイクル,ここで割込み要求をサンプルする。 * :1マシンサイクルは,マシンクロック(φ)の1クロック周期に相当します。 ● 割込み要求サンプル待ち時間 割込み要求が発生してから現在実行中の命令が終了するまでの時間を指します。割込 み要求が発生しているかどうかは , 各命令の最後のサイクルで割込み要求をサンプリ ングして判断します。そのため , 各命令の実行中は CPU が割込み要求を認識すること ができず , 待ち時間が発生します。 なお , 割込み要求サンプル待ち時間は , 最も実行サイクルの長い POPW RW0, •••RW7 命 令 (45 マシンサイクル ) 開始直後に割込み要求が発生した場合 , 最大となります。 ● 割込みハンドリング時間 (θ マシンサイクル ) CPU は , 割込み要求を受け付けてから , 専用レジスタのシステムスタックへの退避およ び割込みベクタの取込みなどを行うため , θ マシンサイクルの割込みハンドリング時 間を必要とします。割込みハンドリング時間は , 以下の式によって求められます。 割込み起動時 : θ=24 + 6 × Z マシンサイクル 割込み復帰時 : θ=11 + 6 × Z マシンサイクル (RETI 命令 ) 割込みハンドリング時間は , スタックポインタの指しているアドレスによって異なり ます。表 3.4-3 に割込みハンドリング時間の補正値 (Z) を示します。 1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。 表 3.4-3 割込みハンドリング時間の補正値 (Z) スタックポインタが指しているアドレス 補正値 (Z) 外部 8 ビットの場合 +4 外部 偶数アドレスの場合 +1 外部 奇数アドレスの場合 +4 内部 偶数アドレスの場合 0 内部 奇数アドレスの場合 +2 73 第 3 章 割込み 3.5 ソフトウェア割込み ソフトウェア割込みは , ソフトウェア割込み命令 (INT 命令 ) を実行すると , CPU が それまで実行していたプログラムからユーザの定義した割込み処理用プログラムへ 制御を移行する機能です。ソフトウェア割込みの実行中はハードウェア割込みは停 止します。 ■ ソフトウェア割込みの起動 ● ソフトウェア割込みの起動 ソフトウェア割込みの起動には , INT 命令を使用します。ソフトウェア割込み要求には 割込み要求フラグおよび許可フラグはなく, INT命令を実行すると常に割込み要求が発 生します。 ● ハードウェア割込みの抑止 INT命令には割込みレベルがないので, インタラプトレベルマスクレジスタ (ILM) の更 新は行われません。INT 命令実行中は , コンディションコードレジスタ (CCR) の I フラ グを "0" に設定し , ハードウェア割込みをマスクします。ソフトウェア割込み処理中も ハードウェア割込みを許可する場合は , ソフトウェア割込み処理ルーチンの中で I フラ グを "1" に設定してください ● ソフトウェア割込みの動作 CPU が INT 命令を取り込み実行すると , ソフトウェア割込み処理用マイクロコードを 起動します。このマイクロコードにより , CPU 内部のレジスタ類をシステムスタック に退避し , ハードウェア割込みをマスク (CCR の I フラグを "0") した後 , 対応する割込 みベクタへ分岐します。 割込み番号と割込みベクタの割当てについては , 「3.2 割込み要因と割込みベクタ」を 参照してください。 ■ ソフトウェア割込みからの復帰 割込み処理プログラムの中で割込み復帰命令 (RETI 命令 ) を実行すると , システムス タックに退避している 12 バイトデータを専用レジスタに戻して , 割込み分岐前に実行 していた処理に復帰します。 74 第 3 章 割込み ■ ソフトウェア割込みの動作 図 3.5-1 に , ソフトウェア割込みの発生から割込み処理完了までの動作を示します。 図 3.5-1 ソフトウェア割込みの動作 内部データバス PS,PC… (2)マイクロコード (1) PS I S IR キュー フェッチ RAM PS :プロセッサステータス I :割込み許可フラグ S :スタックフラグ IR :インストラクションレジスタ (1) ソフトウェア割込み命令を実行します。 (2) ソフトウェア割込み命令に対応したマイクロコードに従って専用レジスタを退避 するなどの必要な処理を行った後 , 分岐処理を行います。 (3) ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。 ■ ソフトウェア割込みに関する注意事項 プログラムカウンタバンクレジスタ (PCB) が "FFH" である場合 , CALLV 命令のベクタ 領域は INT #vct8 命令のテーブルと重なります。ソフトウェアを作成する際に , CALLV 命令と INT #vct8 命令のアドレスの重複に注意してください。 75 第 3 章 割込み 3.6 拡張インテリジェント I/O サービス (EI2OS) による割 込み 拡張インテリジェント I/O サービス (EI2OS) は , 周辺機能 (I/O) とメモリとの間で自 動データ転送を行う機能で , データ転送終了時にハードウェア割込みが発生します。 ■ 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービスは , ハードウェア割込みの一種です。これは , 周辺 機能 (I/O) とメモリとの間で自動データ転送を行う機能です。従来は割込み処理プログ ラムで行っていた周辺機能 (I/O) とのデータのやりとりを DMA ( ダイレクトメモリア クセス) のように行い, 終了時に終了条件を設定した後自動的に割込み処理ルーチンへ 分岐します。ユーザは , EI2OS 起動時と終了時のみプログラムを作成することになり , 途中のデータ転送プログラムは不要となります。 ● 拡張インテリジェント I/O サービス (EI2OS) の利点 割込み処理ルーチンで行っていたデータ転送と比べると , 次のような利点があります。 • 転送プログラムを作成する必要がないため , プログラム全体のサイズを小さくでき る。 • 周辺機能 (I/O) の状態によって転送を停止できるので , 不要なデータを転送する必 要がない。 • バッファアドレスのインクリメントおよび更新なしを選択できます。 • I/O レジスタアドレスのインクリメントおよび更新なしを選択できます。 ● 拡張インテリジェント I/O サービス (EI2OS) の終了割込み EI2OS によるデータ転送が終了すると , 終了条件を割込み制御レジスタ (ICR) の S1, S0 ビットに設定し , 自動的に割込み処理ルーチンへ分岐します。 割込み処理プログラムで , EI2OS ステータス (ICR の S1, S0 ビット ) をチェックするこ とによって , EI2OS の終了要因を判断することができます。 割込み番号や割込みベクタは , 各周辺で固定されています。詳細は「3.2 割込み要因と 割込みベクタ」を参照ください。 ● 割込み制御レジスタ (ICR) 割込みコントローラ内にあり , EI2OS の起動 , EI2OS のチャネル指定および EI2OS 終了 時の状態表示を行います。 ● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) RAM 上の 000100H ~ 00017FH にあり , 転送モード , I/O のアドレスや転送数 , バッファ アドレスを保持する 8 バイトデータで , 16 チャネル分あります。割込み制御レジスタ (ICR) でチャネルを指定します。 <注意事項> 拡張インテリジェント I/O サービス (EI2OS) が動作している場合 , CPU のプログラム実行 は止まります。 76 第 3 章 割込み ■ 拡張インテリジェント I/O サービス (EI2OS) の動作 図 3.6-1 に , EI2OS の動作を示します。 図 3.6-1 拡張インテリジェント I/O サービス (EI2OS) の動作 メモリ空間 by IOA I/O レジスタ I/Oレジスタ 周辺機能(I/O) (5) CPU 割込み要求 (3) ISD by ICS (2) (3) (1) 割込み制御レジスタ(ICR) 割込みコントローラ by BAP (4) ISD IOA BAP ICS DCT バッファ by DCT :EI2OSディスクリプタ :I/Oアドレスポインタ :バッファアドレスポインタ :割込み制御レジスタ(ICR)のEI2OSチャネル選択ビット :データカウンタ (1) I/O が転送を要求します。 (2) 割込みコントローラがディスクリプタを選択します。 (3) 転送元や転送先をディスクリプタから読み出します。 (4) I/O とメモリ間で転送が行われます。 (5) 割込み要因は自動的にクリアされます。 77 第 3 章 割込み 3.6.1 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 内部 RAM の "000100H" ~ "00017FH" に存在し , 8 バイト× 16 チャネルで構成されています。 ■ 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 ISD は , 8 バイト× 16 チャネルで構成されており , 各 ISD は図 3.6-2 のような構造に なっています。チャネル番号と ISD のアドレスの対応は , 表 3.6-1 のとおりです。 図 3.6-2 EI2OS ディスクリプタ (ISD) の構成 MSB LSB データカウンタ上位8ビット(DCTH) H データカウンタ下位8ビット(DCTL) I/Oレジスタアドレスポインタ上位8ビット(IOAH) I/Oレジスタアドレスポインタ下位8ビット(IOAL) EI2OSステータスレジスタ(ISCS) バッファアドレスポインタ上位8ビット(BAPH) バッファアドレスポインタ中位8ビット(BAPM) ISD先頭アドレス (000100H+8×ICS) バッファアドレスポインタ下位8ビット(BAPL) 表 3.6-1 チャネル番号とディスクリプタアドレスの対応 チャネル 78 ディスクリプタアドレス 0 000100H 1 000108H 2 000110H 3 000118H 4 000120H 5 000128H 6 000130H 7 000138H 8 000140H 9 000148H 10 000150H 11 000158H 12 000160H 13 000168H 14 000170H 15 000178H L 第 3 章 割込み 3.6.2 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の各レジスタ 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 次のレジスタ から構成されています。 • データカウンタ (DCT) • I/O レジスタアドレスポインタ (IOA) • 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS) • バッファアドレスポインタ (BAP) 各レジスタの初期値は , リセット時には不定となるので注意してください。 ■ データカウンタ (DCT) データカウンタ (DCT) は , 16 ビット長のレジスタで , 転送データ数に対応したカウン タとなります。各データの転送後に , カウンタは 1 デクリメント ( 減値 ) します。この カウンタがゼロになると EI2OS の動作は終了します。データカウンタ (DCT) で指定で きる最大転送数は , 65,536 個 (64K バイト ) です。図 3.6-3 に , DCT の構成を示します。 図 3.6-3 データカウンタ (DCT) の構成 DCTH DCTL bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 DCT B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 XXXXXXXXXXXXXXXXB 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 :不定 ■ I/O レジスタアドレスポインタ (IOA) I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで , バッファとのデー タ転送を行う , I/O レジスタの下位アドレス (A15 ~ A0) を示します。上位アドレス (A23 ~ A16) はすべて "0" であり , 000000H から 00FFFFH 番地までの任意の I/O をアドレスで 指定できます。図 3.6-4 に , IOA の構成を示します。 図 3.6-4 I/O レジスタアドレスポインタ (IOA) の構成 IOAH IOAL 初期値 IOA A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 XXXXXXXXXXXXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 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 :不定 79 第 3 章 割込み ■ 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS) 拡張インテリジェント I/O サービス (ISCS) は , 8 ビット長で , バッファアドレスポイン タと I/O レジスタアドレスポインタの更新 / 固定 , 転送データ形式 ( バイト / ワード ) , 転送方向を示します。図 3.6-5 に , ISCS の構成を示します。 図 3.6-5 EI2OS ステータスレジスタ (ISCS) の構成 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RESV RESV RESV R/W R/W R/W IF BW BF DIR SE R/W R/W R/W R/W R/W 初期値 XXXXXXXXB EI2OS終了制御ビット SE 0 周辺機能からの要求で終了しない 1 周辺機能からの要求で終了する データ転送方向指定ビット DIR 0 I/Oレジスタアドレスポインタ→バッファアドレスポインタ 1 バッファアドレスポインタ→I/Oレジスタアドレスポインタ BAP更新/固定選択ビット BF 0 データ転送後バッファアドレスポインタは更新されます。*1 1 データ転送後バッファアドレスポインタは更新されません。 BW 転送データ長指定ビット 0 バイト 1 ワード IF IOA更新/固定選択ビット データ転送後I/Oレジスタアドレスポインタは更新されます。 1 データ転送後I/Oレジスタアドレスポインタは更新されません。 RESV 予約ビット これらのビットには必ず"0"を書き込んでください R/W:リード/ライト可能 X :不定 *1:バッファアドレスポインタは,下位16ビットだけ変化し,インクリメントだけ可能です。 *2:アドレスポインタは,インクリメントだけ可能です。 80 *2 0 第 3 章 割込み ■ バッファアドレスポインタ (BAP) バッファアドレスポインタ (BAP) は , 24 ビットのレジスタで , EI2OS による次回の転送 で使用するアドレスを保持します。BAP は , EI2OS の各チャネルに対してそれぞれ独 立に存在するので , EI2OS の各チャネルは , 16M バイトの任意のアドレスと I/O の間で データを転送できます。EI2OS ステータスレジスタ (ISCS) の BF ビット (EI2OS ステー タスレジスタの BAP 更新 / 固定選択ビット ) で " 更新あり " とした場合 , BAP は下位 16 ビット (BAPM, BAPL) だけ変化し , 上位 8 ビット (BAPH) は変化しません。 バッファアドレスポインタ (BAP) で指定できる領域は , 000000H ~ FFFFFFH です。 図 3.6-6 に , バッファアドレスポインタ (BAP) の構成を示します。 図 3.6-6 バッファアドレスポインタ (BAP) の構成 BAP bit23 ~ bit16 BAPH (R/W) bit15 ~ bit8 BAPM (R/W) bit7 ~ bit0 BAPL (R/W) 初期値 XXXXXXB R/W:リード / ライト可能 X :不定 81 第 3 章 割込み 3.6.3 拡張インテリジェント I/O サービス (EI2OS) の動作 周辺機能から割込み要求が発生し , 対応する割込み制御レジスタ (ICR) で EI2OS の 起動が設定されていると , CPU は EI2OS によるデータ転送を行います。指定回数の データ転送が終了すると , 自動的にハードウェア割込み処理を行います。 ■ 拡張インテリジェント I/O サービス (EI2OS) の処理手順 図 3.6-7 に , CPU 内部のマイクロコードによる , EI2OS の動作フローを示します。 図 3.6-7 拡張インテリジェント I/O サービス (EI2OS) の動作フロー 周辺機能より 割込み要求発生 ISE=1 NO YES 割込みシーケンス ISD/ISCSリード 周辺機能から の終了要求 YES DIR=1 YES NO IOAで示されるデータ (データ転送) BAPで示されるメモリ IF=0 BAPで示されるデータ (データ転送) IOAで示されるメモリ YES NO BF=0 DCT=00 NO YES 周辺機能割込み要求 のクリア CPU動作復帰 ISD :EI OSディスクリプタ ISCS :EI2OSステータスレジスタ IF :EI2OSステータスレジスタ(ISCS)の IOA更新/固定選択ビット BW :EI2OSステータスレジスタ(ISCS)の 転送データ長指定ビット BF :EI2OSステータスレジスタ(ISCS)の BAP更新/固定選択ビット DIR :EI2OSステータスレジスタ(ISCS)の データ転送方向指定ビット SE :EI2OSステータスレジスタ(ISCS)の EI2OS終了制御ビット 82 IOA更新 更新値は BWによる BAP更新 (-1) S1, S0に"00B"をセット 2 更新値は BWによる YES NO DCTデクリメント YES SE=1 NO NO EI2OS終了処理 S1, S0に"01B"をセット S1, S0に"11B"をセット ISEを"0"にクリア 割込みシーケンス DCT :データカウンタ IOA :I/Oレジスタアドレスポインタ BAP :バッファアドレスポインタ ISE :割込み制御レジスタ(ICR)のEI2OS許可ビット S1,S0:割込み制御レジスタ(ICR)のEI2OSステータス 第 3 章 割込み 拡張インテリジェント I/O サービス (EI2OS) の使用手順 3.6.4 拡張インテリジェント I/O サービス (EI2OS) を使用するには , システムスタック領域 , 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ , 周辺機能および割込み制 御レジスタ (ICR) などの設定が必要です。 ■ 拡張インテリジェント I/O サービス (EI2OS) の使用手順 図 3.6-8 に , 拡張インテリジェント I/O サービス (EI2OS) 使用手順を示します。 図 3.6-8 拡張インテリジェント I/O サービス (EI2OS) 使用手順 ソフトウェアによる処理 ハードウェアによる処理 開 始 システムスタック領域の設定 初 期 設 定 EI2OSディスクリプタの設定 周辺機能の初期設定 割込み制御レジスタ (ICR)の設定 内蔵リソースの動作開始 設定割込み許可ビットの 設定 PS内のILM, Iの設定 S1,S0="00" (割込み要求)and(ISE=1) ユーザプログラムの実行 データ転送 NO カウントアウトまたは リソースからの終了要求に よる割込みへ分岐の判定 (割込みベクトルへ分岐) 拡張インテリジェントI/O サービスの再設定 (チャネルの切換えなど) YES S1,S0="01"or S1,S0="11" バッファ中のデータの処理 RETI ISE :割込み制御レジスタ(ICR)のEI2OSの許可ビット S1,S0 :割込み制御レジスタ(ICR)のEI2OSステータス 83 第 3 章 割込み 3.6.5 拡張インテリジェント I/O サービス (EI2OS) 処理時間 拡張インテリジェント I/O サービス (EI2OS) の処理に必要な時間は次の要因によっ て変化します。 • EI2OS ステータスレジスタ (ISCS) の設定 • I/O レジスタアドレスポインタ (IOA) の示すアドレス ( 領域 ) • バッファアドレスポインタ (BAP) の示すアドレス ( 領域 ) • 外部アクセス時の外部データバス幅 • 転送データのデータ長 また , EI2OS によるデータ転送終了時には , ハードウェア割込みが起動するため , 割 込みハンドリング時間が加算されます。 ■ 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) ● データ転送継続時 データ転送継続時のEI2OS処理時間は, EI2OSステータスレジスタ (ISCS) の設定によっ て , 表 3.6-2 のようになります。 表 3.6-2 拡張インテリジェント I/O サービス実行時間 EI2OS 終了制御ビット (SE) の設定 周辺からの終了要求により終了 IOA 更新 / 固定選択ビット (IF) の設定 BAP アドレス更新 / 固定 選択ビット (BF) の設定 周辺からの終了要求を無視 固定 更新 固定 更新 固定 32 34 33 35 更新 34 36 35 37 単位 : マシンサイクル (1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。) さらに , 表 3.6-3 に示すように , EI2OS 実行時の条件によって補正が必要です。 表 3.6-3 EI2OS 実行時間のデータ転送の補正値 内部アクセス I/O レジスタアドレスポインタ 内部アクセス バッファアドレスポインタ 外部アクセス B : バイトデータ転送 8 : 外部バス幅 8 ビット・ワード転送 偶 : 偶数アドレス・ワード転送 奇 : 奇数アドレス・ワード転送 84 外部アクセス B/ 偶 奇 B/ 偶 8/ 奇 B/ 偶 0 +2 +1 +4 奇 +2 +4 +3 +6 B/ 偶 +1 +3 +2 +5 8/ 奇 +4 +6 +5 +8 第 3 章 割込み ● データカウンタ (DCT) のカウント終了時 ( 最終回のデータ転送時 ) EI2OS によるデータ転送終了時には , ハードウェア割込みが起動するため , 割込みハン ドリング時間が加算されます。カウント終了時の EI2OS の処理時間は , 次の式で算出 されます。 カウント終了時の EI2OS 処理時間 = データ転送時の EI2OS 処理時間+ (21+6 × Z) マシンサイクル ↑ 割込みハンドリング時間 1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。 割込みハンドリング時間は , スタックポインタの指しているアドレスによって異なり ます。表 3.6-4 に , 割込みハンドリング時間の補正値 (Z) を示します。 表 3.6-4 割込みハンドリング時間の補正値 (Z) スタックポインタが指しているアドレス 補正値 (Z) 外部 8 ビットの場合 +4 外部 偶数アドレスの場合 +1 外部 奇数アドレスの場合 +4 内部 偶数アドレスの場合 0 内部 奇数アドレスの場合 +2 ● 周辺機能 (I/O) からの終了要求による終了時 周辺機能 (I/O) からの終了要求で , EI2OS によるデータ転送を途中で終了した場合 (ICR:S1, S0=11) , データ転送は行わず , ハードウェア割込みを起動します。この場合の EI2OS 処理時間は次の式で算出されます。式中の Z は , 割込みハンドリング時間の補正 値 ( 表 3.6-4 を参照 ) です。 途中終了時の EI2OS 処理時間 =36 + 6 × Z マシンサイクル 1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。 85 第 3 章 割込み 3.7 未定義命令の実行による例外処理割込み F2MC-16LX では , 未定義命令の実行で例外処理が行われます。例外処理は , 基本的 には割込みと同じもので , 命令の境目で例外事項が発生したことを検出した段階で , 通常処理を中断して例外処理を行います。 一般的に , 例外処理は予想外の動作を行った結果によって発生するもので , デバッグ 時や緊急時の復旧ソフトウェアの起動などだけに使用することをお勧めします。 ■ 未定義命令の実行による例外処理割込み ● 例外処理の動作 F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い ます。未定義命令を実行すると , ソフトウェア割込み命令の "INT #10" と等価な処理を 行います。 例外処理では , 割込みルーチンへ分岐する前に , 次の処理が行われます。 • システムスタックへ A, DPR, ADB, DTB, PCB, PC, PS レジスタを退避します。 • コンディションコードレジスタ (CCR) の I フラグを "0" にクリアし , ハードウェア 割込みをマスクします。 • コンディションコードレジスタ (CCR) のSフラグを"1"にセットし, システムスタッ クを有効にします。 スタックへ退避したプログラムカウンタ (PC) の値は , 未定義命令を格納しているアド レスそのものです。2 バイト以上の命令コードでは , 未定義であることが識別できた コードを格納しているアドレスになります。例外処理ルーチン内で , 例外要因の種類を 判定する必要がある場合は , この PC 値を使用してください。 ● 例外処理からの復帰 例外処理から RETI 命令で復帰させると , PC が未定義命令を指しているために , 再度 , 例外処理に入ります。ソフトウェアリセットするなどの対策をしてください。 86 第 3 章 割込み 割込み処理のスタック動作 3.8 割込みが受け付けられると , 割込み処理に分岐する前に , 専用レジスタの内容をシス テムスタックに自動的に退避します。割込み処理終了時のスタックからの復帰も自 動的に行われます。 ■ 割込み処理開始時のスタック動作 割込みが受け付けられると , CPU は現在の専用レジスタ類の内容を , 次に示す順番で , 自動的にシステムスタックに退避させます。 1) アキュムレータ (A) 2) ダイレクトページレジスタ (DPR) 3) アディショナルデータバンクレジスタ (ADB) 4) データバンクレジスタ (DTB) 5) プログラムカウンタバンクレジスタ (PCB) 6) プログラムカウンタ (PC) 7) プロセッサステータス (PS) 図 3.8-1 に , 割込み処理開始時のスタック動作を示します。 図 3.8-1 割込み処理開始時のスタック動作 割込み直前 アドレス 00H 08FFH 08FEH SSB SSP 08FEH A 0000H 08FEH AH AL DPR 01H ADB 00H DTB 00H PCB FFH PC 803FH PS 20E0H 08F2H メモリ 割込み直後 アドレス 00H 08FFH 08FEH SSB SP XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH H SSP 08F2H A 0000H 08FEH AH AL DPR 01H ADB 00H DTB 00H PCB FFH L バイト PC 803FH PS 20E0H 08F2H メモリ SP 00H 00H 08H FEH 01H 00H 00H FFH 80H 3FH 20H E0H バイト AH AL DPR ADB DTB PCB PC PS 更新後 のSP ■ 割込み処理復帰時のスタック動作 割込み処理終了時に割込み復帰命令 (RETI) を実行すると , 割込み処理開始時と反対の 順番で PS, PC, PCB, DTB, ADB, DPR, A の値がスタックから復帰し , 専用レジスタは割 込み開始直前の状態に戻ります。 87 第 3 章 割込み ■ スタック領域 ● スタック領域の確保 スタック領域は , 割込み処理の他にサブルーチンコール命令 (CALL) やベクタコール 命令 (CALLV) を実行する場合のプログラムカウンタ (PC) の退避 / 復帰や , PUSHW, POPW 命令による一時的なレジスタ類の退避 / 復帰にも使われます。スタック領域は , データ領域とともに RAM 上に確保します。 図 3.8-2 にスタック領域を示します。 図 3.8-2 スタック領域 ベクタテーブル (リセット・割込み ベクタコール命令) FFFFFFH FFFC00H ROM領域 FF0000H *1 ~ ~ 000D00H ~ ~ *2 内蔵RAM領域 スタック領域 000380H 汎用レジスタ バンク領域 000180H 000100H 0000C0H 000000H 内蔵I/O領域 *1:品種によって,内蔵ROM容量が異なります。 *2:品種によって,内蔵RAM容量が異なります。 <注意事項> • スタックポインタ (SSP, USP) にアドレスを設定する場合, 原則として偶数アドレスを 設定してください。 • システムスタック領域 , ユーザスタック領域およびデータ領域は , お互いに重なり合わ ないように配置してください。 ● システムスタックとユーザスタック 割込み処理では , システムスタック領域を使用します。割込み発生時にユーザスタック 領域を使用していても , 強制的にシステムスタックに切り換えられます。このため , ユーザスタック領域を主に使用するシステムであっても , システムスタック領域を正 しく設定しておく必要があります。特に , スタック空間を分ける必要がなければ , シス テムスタックだけを使用してください。 88 第 3 章 割込み 3.9 割込み処理のプログラム例 割込み処理のプログラム例を示します。 ■ 割込み処理のプログラム例 外部割込み 0 (INT0) を利用した割込みプログラムの一例です。 以下にプログラムのコーディング例を示します。 【コーディング例】 DDR1 ENIR EIRR ELVR ICR00 STACK EQU 000011H ; ポート 1 方向レジスタ EQU 000030H ; DTP/ 割込み許可レジスタ EQU 000031H ; DTP/ 割込み要因レジスタ EQU 000032H ; 要求レベル設定レジスタ EQU 0000B0H ; 割込み制御レジスタ 00 SSEG ; スタック RW 100 STACK_T RW 1 STACK ENDS ;---------- メインプログラム --------------------------------------------------CODE CSEG START: MOV RP, #0 ; 汎用レジスタは先頭バンクを使用 MOV ILM, #07H ; PS 内 ILM をレベル 7 に設定 MOV A, #!STACK_T ; システムスタックの設定 MOV SSB, A MOVW A, #STACK_T ; スタックポインタの設定 , この場合は MOVW SP, A ; S フラグ= 1 のため SSP にセットされる MOV DDR1, #00000000B ; P10/INT0 端子を入力に設定 AND CCR, #0E0H ; PS 内 CCR のビット 0 ~ 4 をクリア OR CCR, #40H ; PS 内 CCR の I フラグをセットして割込み許可 MOV I:ICR00, #00H ; 割込みレベル 0( 最強 ) とする MOV I:ELVR, #00000001B ; INT0 を H レベル要求とする MOV I:EIRR, #00H ; INT0 の割込み要因をクリア MOV I:ENIR, #01H ; INT0 の入力許可 : LOOP: NOP ; ダミーループ NOP NOP NOP BRA LOOP ; 無条件ジャンプ ;---------- 割込みプログラム ------------------------------------------------ED_INT1: MOV I:EIRR, #00H ; INT0 の新規受付け禁止 NOP NOP NOP 89 第 3 章 割込み NOP NOP NOP RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFD0H ; 割込み #11(0BH) にベクタを設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 90 第 3 章 割込み ■ 拡張インテリジェント I/O サービス (EI2OS) のプログラム例処理仕様 1) INT0 端子に入力される信号の "H" レベルを検出して拡張インテリジェント I/O サー ビス (EI2OS) を起動します。 2) INT0 端子に "H" レベルが入力されると , EI2OS が起動されポート 0 のデータをメモ リの "3000H" 番地に転送します。 3) 転送データバイト数は 100 バイトで , 100 バイト転送後 , EI2OS 転送終了による割込 みが発生します。 以下にプログラムのコーディング例を示します。 【コーディング例】 BAPL BAPM BAPH .SECTION .ORG .RES.B .ORG .RES.B .RES.B .RES.B .ORG .RES.B .ORG .RES.B .RES.B .RES.B IO,IO, LOCATE=0x000000 0011H 01H ; ポート 1 方向レジスタ 0030H 01H ; DTP/ 割込み許可レジスタ 01H ; DTP/ 割込み要因レジスタ 01H ; 要求レベル設定レジスタ 00B0H 01H ; 割込み制御レジスタ 00 0100H 01H ; バッファアドレスポインタ下位 01H ; バッファアドレスポインタ中位 01H ; バッファアドレスポインタ上位 ISCS IOAL IOAH DCTL DCTH .RES.B .RES.B .RES.B .RES.B .RES.B 01H 01H 01H 01H 01H DDR1 ENIR EIRR ELVR ICR00 ; ; ; ; ; EI2OS ステータス I/O アドレスポインタ下位 I/O アドレスポインタ上位 データカウンタ下位 データカウンタ上位 .SECTION STACK,STACK ; スタック .RES.B 0FEH STACKT .RES.B 01H ;---------- メインプログラム ------------------------------------------------.SECTION PROG,CODE START: AND CCR, #0BFH ; PS 内 CCR の I フラグをクリアして割込み禁止 MOV RP, #00 ; レジスタバンクポインタを設定 MOV A, #bnksym STACKT ; システムスタックの設定 MOV SSB, A MOVW A, #STACKT ; スタックポインタの設定 , この場合は MOVW SP, A ; S フラグが "1" のため SSP にセットされる MOV I:DDR1, #00000000B ;P10/INT0 端子を入力に設定 MOV BAPL, #00H ; バッファアドレスをセット (003000H) MOV BAPM, #30H MOV BAPH, #00H MOV ISCS, #00010001B 91 第 3 章 割込み MOV MOV MOV MOV MOV ; ; ; ; ; I/O アドレス更新なし , バイト転送 , バッファ アドレス更新あり I/O →バッファへ転送 , 周辺機能 ( リソース ) による終了あり 転送元アドレスをセット ( ポート 0:000000H) IOAL, #00H IOAH, #00H DCTL, #064H ; 転送バイト数をセット (100 バイト ) DCTH, #00H I:ICR00, #00001000B ; EI2OS ch.0, EI2OS 許可 , ; 割込みレベル 0( 最高レベル ) I:ELVR, #00000001B; INT0 を "H" レベル要求とする I:EIRR, #00H ; INT0 の割込み要因クリア I:ENIR, #01H ; INT0 の割込み許可 ILM, #07H ; PS 内 ILM をレベル 7 に設定 CCR, #0E0H ; PS 内 CCR のビット 0 ~ 4 をクリア CCR, #040H ; PS 内 CCR の I フラグをセットして割込み許可 MOV MOV MOV MOV AND OR : LOOP: BRA LOOP ; 無限ループ ;---------- 割込みプログラム ------------------------------------------------WARI CLRB EIRR:0 ; DTP/ 割込み要求フラグのクリア : ユーザ処理 ; EI2OS の終了要因をチェック , : ; バッファ中のデータの処理 , EI2OS の ; 再設定など RETI ---------- ベクタ設定 -------------------------------------------------------.SECTION VECT,CODE, LOCATE=0xFFFF54 .ORG 0FFFFD0H ; 割込み #25(19H) にベクタを設定 .DATA.E WARI .ORG 0FFFFDCH ; リセットベクタ設定 .DATA.E START ; .DATA.B 00H ; モードデータ設定 .END 92 START 第4章 リセット この章では , リセットについて説明します。 4.1 リセットの概要 4.2 リセット要因と発振安定待ち時間 4.3 外部リセット端子 4.4 リセット動作 4.5 リセット要因ビット 4.6 リセットによる各端子の状態 93 第 4 章 リセット リセットの概要 4.1 リセット要因が発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解 除待ち状態になります。リセット解除後は , リセットベクタで示されたアドレスか ら処理を開始します。 リセットには , 次の 6 つの要因があります。 • 電源投入 ( パワーオン ) • RST 端子からの外部リセット要求 • ソフトウェアリセット要求 • ウォッチドッグタイマのオーバフロー • 電源電圧の低下検出 • CPU 動作検出機能カウンタのオーバフロー ■ リセット要因 リセット要因について表 4.1-1 に示します。 表 4.1-1 リセット要因 リセット 発生要因 マシンクロック ウォッチドッグ タイマ 発振安定 待ち パワーオン 電源投入時 メインクロック (MCLK) 停止 あり 外部端子 RST 端子への "L" レベル入力 メインクロック (MCLK) 停止 なし ソフトウェア 低消費電力モード制御レジスタ (LPMCR) の内部リセット信号発生 ビット (RST) に "0" を書き込む メインクロック (MCLK) 停止 なし ウォッチドッグタイマ ウォッチドッグタイマオーバフ ロー メインクロック (MCLK) 停止 なし 低電圧検出* 電源電圧の低電圧検出時 メインクロック (MCLK) 停止 あり CPU 動作検出機能* CPU 動作検出機能カウンタのオー バフロー メインクロック (MCLK) 停止 なし MCLK: メインクロック ( 発振クロックの 2 分周クロック ) *: MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ , 本要因でリセットがかかります。 ● パワーオンリセット パワーオンリセットは , 電源投入時に発生するリセットです。発振安定待ち時間は 218 発振クロックサイクル (218/HCLK) 固定です。発振安定待ち時間が経過した後 , リセッ ト動作を行います。 ● 外部リセット 外部リセットは , 外部リセット端子 (RST 端子 ) に "L" レベルを入力することでリセッ トを発生します。RST 端子への "L" レベル入力時間は , 16 マシンサイクル (16/φ) 以上 必要です。外部リセットでは , 発振安定待ち時間を確保しません。 94 第 4 章 リセット <注意事項> RST端子によるリセット要求の発生の場合に限り, 書込み動作中 (転送系命令実行中MOV など) にリセット要因が発生した場合, 命令の終了後にリセット解除待ち状態になります。 そのため , 書込み中にリセットが入力されても , 正常に書込みを終了します。 ただし , ストリング系命令 (MOVS など ) は , 指定したカウンタ分の転送が完了する前に リセットを受け付けるので , すべてのデータが転送されることは保証されません。 ● ソフトウェアリセット ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信 号発生ビット (RST) に "0" を書き込むことによって , 内部リセットを発生します。ソフ トウェアリセットでは , 発振安定待ち時間を取りません。 ● ウォッチドッグリセット ウォッチドッグリセットは , ウォッチドッグタイマの起動後 , 定められた時間内に ウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に "0" の書込みがない場合 , ウォッチドッグタイマのオーバフローによってリセットを発 生します。ウォッチドッグリセットは発振安定待ち時間を取りません。 ● 低電圧検出リセット 低電圧検出リセットは , 電源電圧が所定の値より低くなった場合に発生するリセット です。発振安定待ち時間は 218 発振クロックサイクル (218/HCLK) 固定です。発振安定 待ち時間が経過した後 , リセット動作を行います。 低 電圧 /CPU 動 作 検出 リ セッ ト 回路 搭 載品 で ある MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ該当し , 電源投入から常に機能します。 ● CPU 動作検出リセット CPU 動作検出リセットは , 電源投入後 , 定められた時間内に低電圧 /CPU 動作検出リ セット制御レジスタ (LVRC) の CPU 動作検出回路クリアビット (CL) に "0" の書込みが ない場合 , CPU 動作検出機能カウンタのオーバフローによってリセットを発生します。 低 電圧 /CPU 動 作 検出 リ セッ ト 回路 搭 載品 で ある MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ該当し , 電源投入から常に機能します。 クロックの定義 HCLK : 発振クロック周波数 MCLK : メインクロック周波数 SCLK φ 1/φ : サブクロック周波数 : マシンクロック周波数 (CPU 動作クロック ) : マシンサイクル (CPU 動作クロック周期 ) 詳細は , 「5.1 クロックの概要」を参照してください。 95 第 4 章 リセット <注意事項> ストップモードまたはサブクロックモードでリセットが発生した場合は , 217/HCLK ( 約 32.77ms, HCLK=4MHz 発振使用時 ) の発振安定待ち時間を確保します。 詳細は , 「5.1 クロックの概要」を参照してください。 96 第 4 章 リセット リセット要因と発振安定待ち時間 4.2 MB90420G/425G シリーズには , 6 種類のリセット要因があり , リセット時の発振安 定待ち時間がリセット要因によってそれぞれ異なります。 ■ リセット要因と発振安定待ち時間 表 4.2-1 にリセット要因と発振安定待ち時間について示します。 表 4.2-1 リセット要因と発振安定待ち時間 リセット 発振安定待ち時間 ( ) 内は発振クロック周波数 4MHz 時 リセット要因 パワーオン 電源立上げ 218/HCLK ( 約 65.536 ms) ( 注意事項 ) 降圧回路の安定時間を含む。 ウォッチドッグ ウォッチドッグタイマの オーバフロー なし : ただし WS1, WS0 ビットは "11B" に初期化されます。 外部 RST 端子からの "L" 入力 なし : ただし WS1, WS0 ビットは "11B" に初期化されます。 低電圧検出* 低電源電圧の検出 217/HCLK ( 約 32.768 ms) CPU 動作検出* CPU 動作検出タイマの オーバフロー なし : ただし WS1, WS0 ビットは "11B" に初期化されます。 ソフトウェア 低消費電力モード制御レジス タ (LPMCR) の RST ビットへ の "0" 書込み なし : ただし WS1, WS0 ビットは "11B" に初期化されます。 * HCLK WS1, WS0 : MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ , 本要因でリセットが かかります。 : 発振クロック周波数 : クロック選択レジスタ CKSCR の発振安定待ち時間選択ビット 図 4.2-1 に , パワーオンリセット時の発振安定待ち時間について示します。 図 4.2-1 パワーオンリセット時の発振安定待ち時間 Vcc 217/HCLK 217/HCLK CLK CPU動作 降圧回路の 安定待ち時間 発振安定 待ち時間 HCLK:発振クロック周波数 97 第 4 章 リセット 表 4.2-2 クロック選択レジスタ (CKSCR) の設定による発振安定待ち時間 WS1 WS0 発振安定待ち時間 ( ) 内は発振クロック周波数 4MHz 時 0 0 210/HCLK ( 約 0.256ms) 0 1 213/HCLK ( 約 2.05ms) 1 0 215/HCLK ( 約 8.19ms) 1 1 217/HCLK ( 約 32.77ms) HCLK: 発振クロック周波数 <注意事項> セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで , 一 般に数 ms から十数 ms の発振安定待ち時間が必要です。そのため , 使用する振動子に合 わせた値を設定してください。詳細は , 「5.1 クロックの概要」を参照してください。 ■ 発振安定待ちリセット状態 電源投入時のリセット , ストップモードおよびサブクロックモード中のリセットに対 するリセット動作は , タイムベースタイマによって作られる発振安定待ち時間が経過 してからとなります。このとき , 外部リセット入力が解除されていない場合は , 外部リ セット解除後にリセット動作を行います。 98 第 4 章 リセット 4.3 外部リセット端子 外部リセット端子 (RST 端子 ) は , リセット入力専用端子で , "L" レベルの入力に よって内部リセットを発生します。MB90420G/425G シリーズは , CPU 動作クロッ クに同期してリセットがかかりますが , 外部端子のみ非同期でリセットがかかりま す。 ■ 外部リセット端子のブロックダイヤグラム 図 4.3-1 内部リセットのブロックダイヤグラム CPU動作クロック (PLL逓倍回路,HCLKの2分周) RST P-ch 同期化回路 端子 N-ch 入力バッファ クロック同期 内部リセット信号 HCLK:発振クロック <注意事項> 書込み動作中のリセットによるメモリ破壊を防ぐため, RST端子入力の受付けをメモリが 破壊されないサイクルで行います。 また , 内部回路の初期化には , クロックが必要です。特に外部クロックで動作させる場合 は , リセット入力時にクロックを入力する必要があります。 99 第 4 章 リセット 4.4 リセット動作 リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読 出し先を選択し , モードフェッチを行います。このモードフェッチで , CPU の動作 モードとリセット動作終了後の実行開始アドレスが決定されます。電源投入時 , サ ブクロックモードおよびストップモードからのリセットによる復帰では , 発振安定 待ち時間が経過してからモードフェッチを行います。 ■ リセット動作の概要 図 4.4-1 に , リセット動作フローを示します。 図 4.4-1 リセット動作フロー パワーオンリセット ストップモード サブクロックモード 低電圧検出リセット 外部リセット ソフトウェアリセット ウォッチドッグタイマリセット CPU動作検出リセット リセット中 発振安定待ちリセット状態 モードフェッチ (リセット動作) モードデータ取込み リセットベクタ取込み 通常動作 (RUN状態) リセットベクタが示す アドレスから命令コードを 取り込み命令を実行 ■ モード端子 モード端子 (MD0 ~ MD2) は , リセットベクタとモードデータの取込み方法を指定しま す。リセットベクタとモードデータの取込みは , リセットシーケンスで行います。モー ド端子の詳細は , 「7.2 モード端子 (MD2 ~ MD0)」を参照してください。 ■ モードフェッチ リセットが解除されると , CPU は , リセットベクタとモードデータを CPU コア内の該 当 レジ ス タ内 に ハー ド ウェ ア 転送 し ます。リ セッ ト ベク タ とモ ー ドデ ー タは , "FFFFDCH" ~ "FFFFDFH" の 4 バイトに割り当てられています。CPU は , リセット解除 で直ちにこれらのアドレスをバスに出力し , リセットベクタとモードデータを取り込 みます。このモードフェッチで , CPU はリセットベクタが指すアドレスから処理を開 始します。 100 第 4 章 リセット 図 4.4-2 に , リセットベクタとモードデータの転送を示します。 図 4.4-2 リセットベクタとモードデータの転送 2 メモリ空間 F MC-16LX CPUコア モード レジスタ FFFFDFH モードデータ FFFFDEH リセットベクタビット23~16 FFFFDDH リセットベクタビット15~8 FFFFDCH リセットベクタビット7~0 マイクロ ROM リセット シーケンス PCB PC ● モードデータ ( アドレス :FFFFDFH) モードレジスタの内容を変更できるのはリセット動作だけで , モードレジスタの設定 はリセット動作以降に有効となります。モードデータの詳細は , 「7.3 モードデータ」 を参照してください。 ● リセットベクタ ( アドレス :FFFFDCH ~ FFFFDEH) リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容のアドレス から実行を開始します。 101 第 4 章 リセット リセット要因ビット 4.5 リセット発生要因は , ウォッチドッグタイマ制御レジスタ (WDTC) および低電圧 / CPU 動作検出リセット制御レジスタ (LVRC) を読み出すことで識別することができ ます。 ■ リセット要因ビット 図 4.5-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すと得 られます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッ チドッグタイマ制御レジスタ (WDTC) の読出し値をソフトウェアで処理した上で , 適 切なプログラムへ分岐するようにしてください。 図 4.5-1 リセット要因ビットブロックダイヤグラム CPU動作検出 リセット 要求検出回路 RST端子 HSTX=内部"H"固定 (ハードウェアスタンバイモードなし) RST 電源電圧低下 電源投入 パワーオン 発生検出回路 ハードウェア スタンバイ 解除検出回路 低電圧 検出回路 定期的なクリアなし ビットセット RSTX=L LPMCR,RST ビット書込み 検出回路 ウォッチドッグ タイマリセット 発生検出回路 外部リセット 要求検出回路 クリア ウォッチドッグ タイマ制御 レジスタ (WDTC) S R F/F Q S F/F Q R S R F/F Q S F/F Q R S F/F Q R 遅延回路 ウォッチドッグ タイマ 制御レジスタ (WDTC)読出し 内部データバス S :Set R :Reset Q :Out put F/F:Flip Flop 102 第 4 章 リセット ■ リセット要因ビットとリセット要因の対応 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ ) の構成を , 図 4.5-2 に , リセット要因ビットの内容とリセット要因の対応を表 4.5-1 に示します。詳細は , 「9.3.1 ウォッチドッグタイマ制御レジスタ (WDTC)」を参照してください。 図 4.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ ) ウォッチドッグタイマ制御レジスタ (WDTC) アドレス 0000A8H bit15 - - - - bit8 (TBTC) bit7 PONR R bit6 - bit5 bit4 WRST EAST R R bit3 SRST R bit2 WTE W bit1 WT1 W 初期値 X-XXX111B bit0 WT0 W R :リードオンリ W:ライトオンリ X :不定 表 4.5-1 リセット要因ビットの内容とリセット要因の対応 リセット要因 PONR WRST ERST SRST 1 X X X △ 1 △ △ CPU 動作検出リセット要求の発生* 2 △ △ 1 △ ソフトウェアリセット要求の発生 △ △ △ 1 パワーオンリセット要求の発生 , 低電圧検出リセット要求の発生* 1 ウォッチドッグタイマオーバフローによるリセッ ト要求の発生 RST 端子からの外部リセット要求 , △ : 前の状態を保持 X : 不定 *1 : 低電圧検出リセット要求の発生の場合は , 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) の LVRF ビットも "1" になります。 *2 : CPU 動作検出リセット要求の発生の場合は , 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) の CPUF ビットも "1" になります。 103 第 4 章 リセット ■ リセット要因ビットの状態 図 4.5-3 リセット要因ビットの状態 (3) (4) (2) ビットのクリア 低電圧が検出されたとき ビットのクリア (1) 電源投入時 Vcc=4V Vcc (1) (2) (3) (4) PONR ビット ( 電源投入または LVRF = 1) 1 → 0 → 1 → 0 ERST ビット ( 外部リセット入力 , CPU 動作検 出) 0 → 0 → 0 → 0 1 または 0 → 0 → 1 → 0 LVRF ビット * ( 低電圧検出 , 4V ± 0.3V) *:LVRF ビットは低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) 内にあります。 1) 電源投入時 電源が投入されると , パワーオンリセットビット (PONR) と LVRF ビットは "1" に セットされます。しかし , 通常のスタートアップによらないで電源が投入された場 合は , LVRF ビットが "0" にセットされることがあります。 2) ビットのクリア (WDTC レジスタの読出しと , LVRF ビットへの "0" 書込みにより , ビットがクリアされます。) 3) 低電圧 (4V ± 0.3V) が検出されたとき 低電圧 (4V ± 0.3V) が検出されたとき , LVRF ビットと PONR ビットは "1" にセット されます。 4) ビットのクリア (WDTC レジスタの読出しと , LVRF ビットへの "0" 書込みにより , ビットがクリアされます。) ■ リセット要因ビットの注意事項 ● 複数のリセット要因が発生した場合 リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の 対応するそれぞれのリセット要因ビットが "1" にセットされます。例えば , RST 端子か らの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生し た場合 , ERST ビットと WRST ビットの両方が "1" になります。 ● リセット要因ビットのクリア リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出したと きのみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは , その後ほかの要因でリセットが発生してもクリアされず , "1" のままとなります。 104 第 4 章 リセット 4.6 リセットによる各端子の状態 リセットによる各端子の状態について説明します。 ■ リセット中の端子の状態 リセット中の端子の状態は , モード端子 (MD2 ~ MD0="011") の設定によって決定され ます。 リセット中の各端子の状態は , 「6.7 スタンバイモード , リセット時の端子状態」を参 照してください。 ● 内部ベクタモード設定時 I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 ■ モードデータ読出し後の端子の状態 モードデータ読出し後の端子の状態は , モードデータ (M1, M0="00") によって決定さ れます。 ● シングルチップモード選択時 (M1, M0=00B) I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 <注意事項> リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器 が誤動作しないように配慮してください。 105 第 4 章 リセット 106 第5章 クロック この章では , クロックについて説明します。 5.1 クロックの概要 5.2 クロック発生部のブロックダイヤグラム 5.3 クロック選択レジスタ (CKSCR) 5.4 クロックモード 5.5 発振安定待ち時間 5.6 振動子と外部クロックの接続 107 第 5 章 クロック 5.1 クロックの概要 クロック発生部は , CPU や周辺機能の動作クロックである内部クロックの動作を制 御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の PLL 発振によるクロックを PLL クロックといいます。 ■ クロックの概要 クロック発生部は発振回路を内蔵しており , 外部に振動子を接続することによって , 発 振クロックを発生します。外部で生成したクロックを入力して , 発振クロックにするこ ともできます。また , PLL クロック逓倍回路を内蔵しており , 発振クロックの逓倍ク ロックを 4 種類発生できます。クロック発生部では , 発振安定待ち時間の制御 , PLL ク ロック逓倍制御およびクロックセレクタでのクロックの切換えによる , 内部クロック の動作制御を行います。 ● 発振クロック (HCLK) X0, X1 端子に振動子を取り付けて発生させるか , または外部から入力したクロックの ことです。 ● サブクロック (SCLK) X0A, X1A 端子に振動子を取り付けて発生させるか , または外部から入力したクロック の 4 分周クロックをいいます。 サブクロックは , 時計タイマの入力クロックおよびサブクロックモード時の低速マシ ンクロックとなります。 ● メインクロック (MCLK) 発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入 力クロックとなります。 ● PLL クロック (PCLK) 発振クロックを , 内蔵の PLL クロック逓倍回路により逓倍したクロックです。4 種類 の逓倍クロックを選択できるようになっています。 ● マシンクロック (φ) CPU と周辺機能の動作クロックです。このクロックの 1 周期を , マシンサイクル (1/φ) としています。メインクロック ( 発振クロックの 2 分周クロック ) と , 4 種類の逓倍ク ロックの中から 1 種類を選択できるようになっています。 <注意事項> 動作電圧が 5V のとき , 発振クロックは 4MHz の発振が可能ですが , CPU および周辺機能 は最大動作周波数が 16MHz です。最大動作周波数を超える逓倍率を指定した場合 , デバ イスは正常に動作しません。例えば , 原発振が 16MHz で発振している場合には , 1 逓倍だ け指定が可能です。 PLL クロック逓倍回路の発振範囲は 3 ~ 16MHz ですが , この範囲は動作電圧および逓倍 数の選択によって変化します。詳細は『データシート』を参照してください。 108 第 5 章 クロック ■ クロック供給マップ CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを 供給しています。このため CPU と周辺機能の動作は , メインクロックと PLL クロック の切換え ( クロックモード ) や PLL クロック逓倍率切換えの影響を受けます。一部の 周辺機能へは , タイムベースタイマの分周出力が供給されており , 各周辺で , その動作 クロックを選択できるようになっています。図 5.1-1 に , クロック供給マップを示しま す。 図 5.1-1 クロック供給マップ 周辺機能 低電圧検出回路/ CPU動作検出回路 4 ウォッチドッグ タイマ 16ビット PPGタイマ0/1/2 クロック発生部 X0A 端子 X1A 端子 サウンド ジェネレータ 1 2 3 4 クロック 発生回路 PLL逓倍回路 X0 4分周 端子 X1 端子 CANコントローラ 0(/1) タイムベースタイマ クロック 発生回路 SCLK (サブ クロック) (発振 クロック) PCLK (PLLクロック) クロックセレクタ 2分周 HCLK MCLK (メイン クロック) LCDコントローラ/ ドライバ φ (マシン クロック) UART0/1 CPU TRG 端子 PPG0~PPG2 端子 RX0(,1) 端子 TX0(,1) 端子 SGA,SGO 端子 V0~V3 端子 COM0~COM3 SEG0~SEG23 端子 SCK0,SCK1 端子 SIN0,SIN1 端子 SOT0,SOT1 端子 プリスケーラ0,1 TIN0,TIN1 端子 16ビット リロードタイマ0/1 TOT0,TOT1 端子 リアルタイム時計 タイマ 外部割込み WOT 端子 INT0~INT7 端子 16ビット フリーランタイマ 16ビット インプット キャプチャ0/1/2/3 10ビット A/Dコンバータ HCLK:発振クロック SCLK:サブクロック MCLK:メインクロック PCLK:PLLクロック φ :マシンクロック ステッピングモータ コントローラ 0/1/2/3 4 発振安定待ち制御 IN0~IN3 端子 AN0~AN7 端子 ADTG 端子 PWM1P0~PWM1P3 端子 PWM1M0~PWM1M3 端子 PWM2P0~PWM2P3 端子 PWM2M0~PWM2M3 端子 109 第 5 章 クロック 5.2 クロック発生部のブロックダイヤグラム クロック発生部は , 次の 5 つのブロックで構成されています。 • システムクロック発生回路 • PLL 逓倍回路 • クロックセレクタ • クロック選択レジスタ (CKSCR) • 発振安定待ち時間セレクタ ■ クロック発生部のブロックダイヤグラム 図 5.2-1 に , クロック発生部のブロックダイヤグラムを示します。 なお , 図 5.2-1 には スタンバイ制御回路 , タイムベースタイマの回路も含まれていま す。 図 5.2-1 クロック発生部のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP RST SLP SPL RST TMD CG1 CG0 予約 端子 端子ハイイン ピーダンス 制御回路 端子ハイ インピーダンス制御 内部リセット 発生回路 内部リセット CPU間欠動作 セレクタ 間欠サイクル選択 CPUクロック 制御回路 2 ストップ,スリープ信号 スタンバイ 制御回路 割込み解除 CPUクロック ストップ信号 周辺クロック 制御回路 マシンクロック 周辺クロック 発振安定待ち解除 クロック 発生部 発振安定 待ち時間 セレクタ クロックセレクタ 4分周 SCLK 2 2 サブ クロック 発生回路 PLL逓倍回路 システム クロック 発生回路 X0A 端子 X1A 端子 X0 端子 SCM MCM WS1 WS0 SCS MCS CS1 CS0 クロック選択レジスタ(CKSCR) HCLK 2分周 MCLK 1024分周 2分周 4分周 4分周 4分周 2分周 タイムベースタイマ X1 端子 ウォッチドッグタイマへ HCLK: 発振クロック MCLK: メインクロック SCLK: サブクロック 110 第 5 章 クロック ● システムクロック発生回路 外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを 入力することもできます。 ● サブクロック発生回路 外部に接続した振動子によってサブクロック (SCLK) を発生します。外部クロックを入 力することもできます。 ● PLL 逓倍回路 PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。 ● クロックセレクタ メインクロックと 4 種類の PLL クロックとから , CPU 系クロック制御回路および周辺 系クロック制御回路へ供給されるクロックを選択します。 ● クロック選択レジスタ (CKSCR) 発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック の逓倍率の選択などを行います。 ● 発振安定待ち時間セレクタ ストップモードの解除時の , 発振クロックの発振安定待ち時間を選択する回路です。 4 種類のタイムベースタイマ出力を選択します。 111 第 5 章 クロック 5.3 クロック選択レジスタ (CKSCR) クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振 安定待ち時間の選択および PLL クロックの逓倍率の選択などを行うレジスタです。 ■ クロック選択レジスタ (CKSCR) の構成 図 5.3-1 に , クロック選択レジスタ (CKSCR) の構成を , 表 5.3-1 に , クロック選択レジ スタ (CKSCR) の各ビットの機能について説明します。 図 5.3-1 クロック選択レジスタ (CKSCR) の構成 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 0000A1H SCM MCM WS1 WS0 SCS MCS CS1 CS0 R/W R/W R/W R/W R/W R/W R/W R/W CS1 CS0 0 1×HCLK( 4MHz) 1 2×HCLK( 8MHz) 1 0 3×HCLK(12MHz) 1 1 4×HCLK(16MHz) 11111100B マシンクロック選択ビット 0 PLLクロック選択 1 メインクロック選択 0 マシンクロック選択ビット (サブクロックまたはメインクロック) サブクロック選択 *2 1 メインクロック選択 WS1 WS0 発振安定待ち時間選択ビット ( )内は発振クロック4MHz時 0 0 210/HCLK(約256μs) 0 1 213/HCLK(約 2.05ms) 1 0 1 1 215/HCLK(約 8.19ms) 217/HCLK(約32.77ms)*1 マシンクロック表示ビット MCM 0 PLLクロックで動作中 1 メインクロックで動作中 0 マシンクロック表示ビット (サブクロックまたはメインクロック) サブクロックで動作中 *2 1 メインクロックで動作中 SCM :発振クロック :リード/ライト可能 :リードオンリ :初期値 初期値 逓倍率選択ビット ( )内は発振クロック4MHz時 0 SCS HCLK R/W R (LPMCR) 0 MCS bit0 *1:パワーオンリセット時は218/HCLK(約65.54ms)になります。 *2:MB90420G/425Gシリーズでは,サブクロックは選択できません。 SCSビットに"0"を設定した場合,リセットを発生し ます。 <注意事項> マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。 112 第 5 章 クロック 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2) ビット名 bit15 bit14 機 能 SCM: マシンクロック 表示ビット ( サブクロックまたは メインクロック ) ・マシンクロックとして , メインクロックまたはサブクロックのどちらが 選択されているかを表示するビットです。 ・このビットが "0" のときサブクロックが選択されていることを示し , "1" のときメインクロックが選択されていることを示します。 ・SCS=0 で , かつ SCM=1 ならば , メインクロックからサブクロックへの移 行期間中であることを表します。また , SCS=1 で , かつ SCM=0 ならば , サブクロックからメインクロックへの移行期間中であることを表しま す。 MCM: マシンクロック 表示ビット ・マシンクロックとして , メインクロックまたは PLL クロックのどちらが 選択されているかを表示するビットです。 ・このビットが "0" のとき PLL クロックが選択されていることを示し , "1" のときメインクロックが選択されていることを示します。 ・MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待ち時間 中であることを示します。 ・ストップモード解除時 , サブクロックモードからメインクロックモード への移行時およびサブクロックから PLL クロックモードへの移行時の発 振クロックの発振安定待ち時間を選択します。 ・すべてのリセット要因で "11B" に初期化されます。 ( 注意事項 ) 発振安定待ち時間は , 使用する振動子に合わせて適切な値を設 定する必要があります。「4.2 リセット要因と発振安定待ち時 間」を参照してください。"00B" の設定は , メインクロック bit13, bit12 bit11 WS1, WS0: 発振安定待ち 時間選択ビット SCS: マシンクロック 選択ビット ( サブクロックまたは メインクロック ) モード時のみ設定してください。 メインクロックモードから PLL クロックモードに切り換えた 場合の発振安定待ち時間は , 214/HCLK で固定です。 サブクロックモードから PLL クロックモードに切り換えた場 合および PLL ストップモードから PLL クロックモードに復帰 する場合の発振安定待ち時間は , 本ビットに設定された値に従 います。PLL クロック発振安定待ち時間は 214/HCLK 以上必 要ですので , サブクロックモードから PLL クロックモードに 切り換える場合および PLL ストップモードに移行する場合 , 本ビットには , "10B" または "11B" を設定してください。 ・マシンクロックとして , メインクロックまたはサブクロックのどちらを 選択するかを指定するビットです。 ・このビットが "0" のときに "1" を書き込むと , メインクロックの発振安定 待ち時間が発生するために , 自動的にタイムベースタイマがクリアされ ます。 ・サブクロック選択時の動作クロックは , サブクロックの 4 分周を使用し ます ( サブ発振 32kHz 時 , マシンクロックは 8kHz になります ) 。 ・SCS, MCS がともに "0" のときは , SCS が優先され , サブクロックが選択 されます。 すべてのリセット要因で "1" に初期化されます。 ・メインクロックモード時に CKSCR レジスタの SCS ビットが "1" の場合 に "0" を設定した場合は , サブクロックに同期をとって ( 約 130μs), メイ ンクロックモードからサブクロックモードに切り換わります。 113 第 5 章 クロック 表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2) ビット名 bit10 bit9, bit8 MCS: マシンクロック 選択ビット CS1, CS0: 逓倍率選択 ビット HCLK:発振クロック周波数 114 機 能 ・マシンクロックとして , メインクロックまたは PLL クロックのどちらを 選択するかを指定するビットです。 ・このビットが "0" のとき PLL クロックを選択し , "1" のときメインクロッ クを選択します。 ・このビットが "1" のときに "0" を書き込むと , PLL クロックの発振安定待 ち時間が発生するために , 自動的にタイムベースタイマがクリアされ , さらにタイムベースタイマ制御レジスタ (TBTC) の TBOF ビットもクリ アされます。 ・メインクロックモードから PLL クロックモードに切り換えた場合の発振 安定待ち時間は , 214/HCLK で固定です ( 発振クロック周波数 4MHz 時 , 発振安定待ち時間は約 4.1ms になります ) 。サブクロックモードから PLL クロックモードに切り換えた場合の発振安定待ち時間は , 発振安定 待ち時間選択ビット (CKSCR:WS1, WS0) に設定された値に従います。 ・メインクロック選択時の動作クロックは , 発振クロックを 2 分周したク ロックとなります ( 発振クロック周波数 4MHz 時 , 動作クロックは 2MHz になります ) 。 ・すべてのリセット要因で "1" に初期化されます。 ( 注意事項 ) MCS ビットが "1" のときに "0" を書き込む場合には , タイム ベースタイマ制御レジスタ (TBTC) の TBIE ビットまたはイン タラプトレベルレジスタ (ILM) によりタイムベースタイマ割 込みがマスクされている状態で行うようにしてください。 ・PLL クロックの逓倍率を選択するビットです。 ・4 種類の逓倍率から選択できます。 ・すべてのリセット要因で "00B" に初期化されます。 ( 注意事項 ) MCS ビットまたは MCM ビットが "0" のときには , 書込みが 抑止されます。いったん , MCS ビットを "1" にした ( メインク ロックモード ) 後に , CS1, CS0 ビットを書き換えてください。 第 5 章 クロック 5.4 クロックモード クロックモードには , メインクロックモードと PLL クロックモード , サブクロック モードがあります。 ■ メインクロックモード , PLL クロックモード , サブクロックモード ● メインクロックモード メインクロックモードは , CPU および周辺機能の動作クロックとして発振クロックを 2 分周したクロックを使用し , PLL クロックを停止させます。 ● PLL クロックモード PLL クロックモードは , CPU および周辺機能の動作クロックとして PLL クロックを使 用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) によ り選択できます。 ● サブクロックモード サブクロックモードは , CPU および周辺機能の動作クロックとしてサブクロックを 4 分周したクロックを使用し , メインクロックおよび PLL クロックを停止させます。 <注意事項> サブ ク ロッ ク モー ド は , MB90F423GC, MB90F428GC, MB90423GC, MB90427GC, MB90428GC のみ使用できます。 ■ クロックモードの移行 クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットへの書込み動作により , ク ロックモードは , メインクロックモード , PLL クロックモード , サブクロックモードに 移行します。 ● メインクロックモードから PLL クロックモードへの移行 メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1" から "0" に書き換えた場合には , PLL クロックの発振安定待ち時間 (214/HCLK) 後に , メ インクロックから PLL クロックに切り換わります。 ● PLL クロックモードからメインクロックモードへの移行 PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" か ら "1" に書き換えた場合には , PLL クロックとメインクロックのエッジが一致するタイ ミング (1 ~ 8PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。 ● メインクロックモードからサブクロックモードへの移行 メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1" から"0"に書き換えた場合には, サブクロックに同期をとって (約130μs) , メインクロッ クからサブクロックに切り換わります。 115 第 5 章 クロック ● サブクロックモードからメインクロックモードへの移行 サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック からメインクロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットにより選択します。 ● PLL クロックモードからサブクロックモードへの移行 PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1" か ら "0" に書き換えた場合には , PLL クロックからサブクロックに切り換わります。 ● サブクロックモードから PLL クロックモードへの移行 サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック から PLL クロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットにより選択します。 <注意事項> • クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットを書き換えても即座にマ シンクロックの切換えが行われません。マシンクロックに依存する周辺機能を操作す る場合には , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参 照してマシンクロックの切換えが行われたことを確認した後に , 周辺機能の操作を 行ってください。 SCS ビット , MCS ビットがともに "0" の場合は , SCS が優先され , サブクロックモー ドになります。 • クロックモードを切り換えた場合 , 切換えが完了するまでは , ほかのクロックモードお よび低消費電力モードへの切換えを行わないでください。切換えの完了はクロック選 択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照して確認してください。 切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを 行った場合 , 切り換わらない場合があります。 ■ PLL クロック逓倍率の選択 クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ~ "11B" を書き込むことに より , 1 ~ 4 逓倍の 4 種類の PLL クロック逓倍率を選択できます。 ■ マシンクロック PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロック , サブクロック の 4 分周クロックが , マシンクロックとなります。このマシンクロックが CPU および 周辺機能に供給されます。メインクロック , PLL クロック , サブクロックは , クロック 選択レジスタ (CKSCR) の MCS ビットまたは SCS ビットへの書込みにより , いずれか を選択できます。 図 5.4-1 に , マシンクロックの切換えによる状態遷移を示します。 116 第 5 章 クロック 図 5.4-1 マシンクロック選択の状態遷移図 メイン MCS = 1 MCM = 1 SCS = 1 SCM = 1 CS1,CS0 = xx (11) (16) (1) (8) メイン→サブ MCS = 1 MCM = 1 SCS = 0 SCM = 1 CS1,CS0 = xx (3) (4) (7) (10) (7) メイン→PLLx MCS = 0 MCM = 1 SCS = 1 SCM = 1 CS1,CS0 = xx (8) サブ→メイン MCS = 1 MCM = 1 SCS = 1 SCM = 0 CS1,CS0 = xx (4) (3) サブ→PLLx MCS = 0 MCM = 1 SCS = 1 SCM = 0 CS1,CS0 = xx (9) サブ MCS = 1 MCM = 1 SCS = 0 SCM = 0 CS1,CS0 = xx (17) (5) (6) (2) PLLx→メイン MCS = 1 MCM = 0 (1) SCS = 1 SCM = 1 CS1,CS0 = xx (12) PLL1逓倍 MCS = 0 MCM = 0 SCS = 1 SCM = 1 CS1,CS0 = 00 (2) (13) (14) (15) (12) (9) PLLx→サブ MCS = 1 (5) MCM = 0 SCS = 0 SCM = 1 CS1,CS0 = xx (6) PLL2逓倍 (13) MCS = 0 MCM = 0 SCS = 1 SCM = 1 CS1,CS0 = 01 PLL3逓倍 (14) MCS = 0 MCM = 0 SCS = 1 SCM = 1 CS1,CS0 = 10 PLL4逓倍 (15) MCS = 0 MCM = 0 SCS = 1 SCM = 1 CS1,CS0 = 11 (1) MCSビット"0"ライト (2) MCSビット"1"ライト(すべてのリセットを含む) (3) SCSビット"0"ライト (4) SCSビット"1"ライト (5) MCSビット"0"ライト,SCSビット"1"ライト (6) MCSビット"1"ライト,SCSビット"0"ライト (7) メインクロックとサブクロックの同期タイミング (8) メインクロックとPLLクロックの同期タイミング (9) PLLクロックとサブクロックの同期タイミング (10)メインクロックからサブクロックへの移行期間終了 (11)サブクロックからメインクロックへの移行期間終了 (12)PLLクロック発振安定待ち終了,CS1,CS0=00 (13)PLLクロック発振安定待ち終了,CS1,CS0=01 (14)PLLクロック発振安定待ち終了,CS1,CS0=10 (15)PLLクロック発振安定待ち終了,CS1,CS0=11 (16)PLLクロックからメインクロックへの移行期間終了 (17)PLLクロックからサブクロックへの移行期間終了 MCS :クロック選択レジスタ(CKSCR)のマシンクロック選択ビット MCM :クロック選択レジスタ(CKSCR)のマシンクロック表示ビット SCS :クロック選択レジスタ(CKSCR)のマシンクロック選択ビット SCM :クロック選択レジスタ(CKSCR)のマシンクロック表示ビット CS1,CS0:クロック選択レジスタ(CKSCR)の逓倍率選択ビット (サブ) (サブ) 117 第 5 章 クロック <注意事項> マシンクロックの初期値はメインクロック (CKSCR:MCS=1, SCS=1) です。 SCS, MCS ともに "0" のときは SCS が優先され , サブクロックが選択されます。 サブクロックモードから PLL クロックモードに切り換える場合は , CKSCR レジスタの発 振安定待ち時間選択ビット (WS1, WS0) は "10B" または "11B" を設定してください。 118 第 5 章 クロック 発振安定待ち時間 5.5 電源投入時 , ストップモード解除時 , サブクロックからメインクロック , サブクロッ クから PLL クロックへ切り換える場合は , 発振クロックの発振が停止しているため , 発振開始後 , 発振安定待ち時間をとる必要があります。また , メインクロックから PLL クロック , メインクロックからサブクロックへ切換え時も , 発振安定待ち時間が 必要となります。 ■ 発振安定待ち時間 セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で 安定して発振するまでに , 一般的に数 ms から数十 ms の時間が必要です。このため , 発 振開始直後は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振が安定した 時点で CPU にクロックを供給するようにします。振動子の種類 ( 水晶 , セラミックな ど) によって発振が安定するまでの時間が異なるため, 使用する振動子に合わせて適切 な発振安定待ち時間を選択する必要があります。発振安定待ち時間は , クロック選択レ ジスタ (CKSCR) の設定で選択できます。 メインクロックから PLL クロック , メインクロックからサブクロック , サブクロック からメインクロック , サブクロックから PLL クロックに切り換えた場合 , 発振安定待 ち時間の間 , CPU は切換え前のクロックで動作しています。発振安定待ち時間が経過 すると , 各クロックモードに切り換わります。 図 5.5-1 に , 発振開始直後の動作を示します。 図 5.5-1 発振開始直後の動作 振動子の発振時間 発振安定待ち時間 通常動作開始または PLLクロック/サブクロック への切換え X1 発振開始 発振安定 119 第 5 章 クロック 5.6 振動子と外部クロックの接続 MB90420G/425G シリーズは , システムクロック発生回路を内蔵しており , 外部に振 動子を接続してクロック発生させます。また , 外部で生成したクロックを入力する こともできます。 ■ 振動子と外部クロックの接続 ● 水晶振動子またはセラミック振動子の接続例 水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。 図 5.6-1 水晶振動子またはセラミック振動子の接続例 X0(X0A) MB90420G/425G シリーズ X1(X1A) ● 外部クロックの接続例 図 5.6-2 の例で示すように , 外部クロックは , X0 (X0A) 端子に接続し , X1 (X1A) 端子は 開放にしてください。 図 5.6-2 外部クロックの接続例 X0(X0A) MB90420G/425G シリーズ ~ 開放 120 X1(X1A) 第6章 低消費電力モード この章では , 低消費電力モードについて説明しま す。 6.1 低消費電力モードの概要 6.2 低消費電力制御回路のブロックダイヤグラム 6.3 低消費電力モード制御レジスタ (LPMCR) 6.4 CPU 間欠動作モード 6.5 スタンバイモード 6.6 状態遷移図 6.7 スタンバイモード , リセット時の端子状態 6.8 低消費電力モード使用上の注意 121 第 6 章 低消費電力モード 低消費電力モードの概要 6.1 動作クロックの選択とクロックの動作制御による , 次のような CPU 動作モードを備 えています。 • クロックモード (PLL クロック , メインクロック , サブクロックの各モード ) • CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作 , サブク ロック間欠動作の各モード ) • スタンバイモード ( スリープ , タイムベースタイマ , 時計 , ストップの各モード ) ■ CPU 動作モードと消費電流 CPU 動作モードと消費電流の関係を図 6.1-1 に示します。 図 6.1-1 CPU 動作モードと消費電流 消費電流 数10mA CPU 動作モード PLLクロックモード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック PLLクロック間欠動作モード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック メインクロックモード(1/2クロックモード) メインクロック間欠動作モード サブクロックモード サブクロック間欠動作モード 数mA スタンバイモード スリープモード タイムベースタイマモード 時計モード 数mA 低消費電力モード ストップモード 図は,各種モードのイメージを示したもので,実際の消費電流とは異なる部分があります。 122 第 6 章 低消費電力モード ■ クロックモード ● PLL クロックモード 発振クロック (HCLK) の PLL 逓倍クロックで CPU および周辺機能を動作させるモード です。 ● メインクロックモード 発振クロック (HCLK) の 2 分周クロックで CPU および周辺機能を動作させるモードで す。メインクロックモードでは , PLL 逓倍回路が停止します。 ● サブクロックモード サブクロック (SCLK) の 4 分周クロックで CPU および周辺機能を動作させるモードで す。サブクロックモードでは , メインクロックおよび PLL 逓倍回路が停止します。 <参考> クロックモードについては , 「5.4 クロックモード」を参照してください。 ■ CPU 間欠動作モード 周辺機能には高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリ , 周辺機能および外 部アクセスを行う場合 , CPU にだけ間欠クロックを入力するモードです。 123 第 6 章 低消費電力モード ■ スタンバイモード スタンバイモードは, 低消費電力制御回路によるCPUへのクロックの供給停止 (スリー プモード ) や , CPU と周辺機能へのクロックの供給停止 ( タイムベースタイマモード ) または発振クロックの停止 ( ストップモード ) によって消費電力を低減します。 ● PLL スリープモード PLL スリープモードは , PLL クロックモードにおいて CPU の動作クロックを停止させ るモードで , CPU 以外は PLL クロックで動作します。 ● メインスリープモード メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止 させるモードで , CPU 以外はメインクロックで動作します。 ● サブスリープモード サブスリープモードは , サブクロックモードにおいて CPU の動作クロックを停止させ るモードで , CPU 以外はサブクロックの 4 分周クロックで動作します。 ● タイムベースタイマモード タイムベースタイマモードは発振クロックとタイムベースタイマ以外の動作を停止さ せるモードで , タイムベースタイマと時計タイマ以外の機能が停止します。 ● 時計モード 時計タイマのみを動作させるモードです。サブクロックのみ動作し , メインクロックお よび PLL 逓倍回路が停止します。 ● ストップモード ストップモードは原発振を停止させるモードで , すべての機能が停止します。 <注意事項> ストップモードでは発振クロックが停止するため , 最も低消費電力でデータを保持するこ とができます。 クロックモードを切り換えた場合, 切換えが完了するまでは, ほかのクロッ クモードおよび低消費電力モードへの切換えを行わないでください。切換えの完了はク ロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照して確認してく ださい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換 えを行った場合 , 切り換わらない場合があります。 124 第 6 章 低消費電力モード 6.2 低消費電力制御回路のブロックダイヤグラム 低消費電力制御回路は , 次の 7 つのブロックで構成されています。 • CPU 間欠動作セレクタ • スタンバイ制御回路 • CPU クロック制御回路 • 周辺クロック制御回路 • 端子ハイインピーダンス制御回路 • 内部リセット発生回路 • 低消費電力モード制御レジスタ (LPMCR) ■ 低消費電力制御回路のブロックダイヤグラム 図 6.2-1 に , 低消費電力制御回路のブロックダイヤグラムを示します。 図 6.2-1 低消費電力制御回路のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP RST SLP SPL RST TMD CG1 CG0 予約 端子 端子ハイ インピーダンス 制御回路 端子Hi-Z制御 内部リセット 発生回路 内部リセット CPU間欠動作 セレクタ 間欠サイクル選択 CPUクロック 制御回路 2 ストップ,スリープ信号 スタンバイ 制御回路 割込み解除 CPUクロック ストップ信号 マシンクロック 周辺クロック 制御回路 周辺クロック 発振安定待ち解除 クロック発生部 クロックセレクタ 発振安定 待ち時間 セレクタ 2 2 PLL逓倍回路 SCM MCM WS1 WS0 SCS MCS CS1 CS0 クロック選択レジスタ(CKSCR) X0 端子 X1 端子 HCLK 2分周 4分周 4分周 4分周 2分周 タイムベースタイマ 4分周 サブ クロック 発生回路 1024分周 MCLK システム クロック 発生回路 X0A 端子 X1A 端子 2分周 ウォッチドッグタイマへ SCLK HCLK: 発振クロック MCLK: メインクロック SCLK: サブクロック 125 第 6 章 低消費電力モード ● CPU 間欠動作セレクタ CPU 間欠動作モードにおける , 一時停止クロック数を選択します。 ● スタンバイ制御回路 CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの 移行および解除を行います。 ● CPU クロック制御回路 CPU および周辺クロック制御回路周辺機能に供給するクロックを制御する回路です。 ● 周辺クロック制御回路 周辺機能に供給するクロックを制御する回路です。 ● 端子ハイインピーダンス制御回路 タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー ダンスにする回路です。プルアップオプションの選択された端子に対しては , ストップ モードではプルアップ抵抗を切り離します。 ● 内部リセット発生回路 内部リセット信号を発生させる回路です。 ● 低消費電力モード制御レジスタ (LPMCR) スタンバイモードへの移行 / 解除および CPU 間欠動作機能の設定などを行うレジスタ です。 126 第 6 章 低消費電力モード 低消費電力モード制御レジスタ (LPMCR) 6.3 低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除およ び CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを行 うレジスタです。 ■ 低消費電力モード制御レジスタ (LPMCR) 図 6.3-1 に 低消費電力モード制御レジスタ (LPMCR) の構成を , 表 6.3-1 に各ビットの 機能を示します。 図 6.3-1 低消費電力モード制御レジスタ (LPMCR) の構成 アドレス bit15 0000A0H bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 (CKSCR) STP R/W SLP SPL RST TMD CG1 CG0 R/W R/W R/W R/W R/W R/W 初期値 予約 00011000B R/W 予約ビット 予約 書込み/読出しは動作に影響しません。 CG1 CG0 CPUクロック一時停止サイクル数選択ビット 0 0 0 1 8クロック(CPUクロック:周辺クロック=1:約3,4) 1 0 16クロック(CPUクロック:周辺クロック=1:約5,6) 1 1 32クロック(CPUクロック:周辺クロック=1:約9,10) TMD タイムベースタイマモードに移行 1 変化なし,ほかへの影響なし RST 内部リセット信号発生ビット 0 3マシンサイクルの内部リセット信号を発生 1 変化なし,ほかへの影響なし 端子状態指定ビット (時計・タイムベースタイマ・ストップモード時) 0 保持 1 ハイインピーダンス SLP :リード/ライト可能 :初期値 時計・タイムベースタイマモードビット 0 SPL R/W 0クロック(CPUクロック=周辺クロック) スリープモードビット 0 変化なし,ほかへの影響なし 1 スリープモードに移行 STP 0 1 ストップモードビット 変化なし,ほかへの影響なし ストップモードに移行 127 第 6 章 低消費電力モード 表 6.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明 ビット名 機 能 STP: ストップモードビット ・ストップモードへの移行を指示するビットです。 ・このビットに "1" を書き込むと , ストップモードへ移行します。 ・このビットに "0" を書き込んでも意味を持ちません。 ・リセット , タイムベースタイマ解除またはストップ解除で "0" にクリア されます。 ・このビットを読み出すと , 常に "0" が読み出されます。 bit6 SLP: スリープモードビット ・スリープモードへの移行を指示するビットです。 ・このビットに "1" を書き込むとスリープモードに移行します。 ・このビットに "0" を書き込んでも意味を持ちません。 ・リセット , スリープ解除またはストップ解除で "0" にクリアされます。 STP ビットと SLP ビットに同時に "1" を書き込んだ場合 , ストップモー ドに移行します。 ・このビットを読み出すと , 常に "0" が読み出されます。 bit5 SPL: 端子状態指定 ビット ( 時計・ タイムベースタイマ・ ストップモード時 ) ・このビットはタイムベースタイマモードまたはストップモードの場合だ け有効です。 ・このビットが "0" の場合 , 外部端子のレベルを保持します。 ・このビットが "1" の場合 , 外部端子をハイインピーダンスにします。 ・リセットで "0" に初期化されます。 bit4 RST: 内部リセット 信号発生ビット ・このビットに "0" を書き込むと 3 マシンサイクルの内部リセット信号を 発生します。 ・このビットに "1" を書き込んでも意味を持ちません。 ・このビットを読み出すと , 常に "1" が読み出されます。 bit3 ・時計モード , タイムベースタイマモードへの移行を指示するビットです。 ・メインクロックモードまたは PLL クロックモードにおいて , このビット に "0" を書き込むことにより , タイムベースタイマモードに移行します。 TMD: 時計・タイムベースタイマ ・サブクロック時に , このビットに "0" を書き込むことにより時計モード モードビット に移行します。 ・リセットまたは割込み要求発生で "1" に初期化させます。 ・このビットを読み出すと , 常に "1" が読み出されます。 bit7 bit2, bit1 CG1, CG0: CPU クロック一時停止 サイクル数選択ビット ・CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設定する ビットです。 ・一命令ごとに指定サイクル数 CPU クロック供給を停止します。 ・4 種類のクロック数から選択できます。 ・リセットで "00B" に初期化されます。 bit0 予約: 予約ビット 書込み / 読出しは意味を持ちません。 <注意事項> ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用 している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した 後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを "0" に設定してください。対象となる端子を以下に示します。 対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/ TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT 128 第 6 章 低消費電力モード ■ 低消費電力モード制御レジスタへのアクセス 低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス リープモード , タイムベースタイマモード , 時計モード ) へ遷移しますが , 低消費電力 モードへの遷移に使用する命令は表 6.3-2 の命令を使用してください。 表 6.3-2 の命令による低消費電力モード遷移命令の直後には , 必ず下記 内の命 令列を配置してください。 ; 表 6.3-2 の低消費電力モード遷移命令 MOV LPMCR, #H’xx NOP NOP JMP $+3 ; 次の命令へのジャンプ MOV A, #H’10 ; 任意の命令 内の命令列以外が配置されるとスタンバイモード解除後の動作は保証されま せん。 C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は ,「6.8 低消費 電力モード使用上の注意」 「■ スタンバイモード遷移のための低消費電力モード制御レ ジスタ (LPMCR) へアクセスする際の注意事項」を参照してください。 低消費電力モード制御レジスタ (LPMCR) にワード単位で書込みを行う場合は , 偶数ア ドレスで書込みを行ってください。奇数アドレスで書込みを行うと , 誤動作の原因とな ることがあります。 表 6.3-1 に示す以外の機能を制御する場合には , どの命令を使用してもかまいません。 ● STP, SLP, TMD ビットの優先順位 ストップモード要求とスリープモード要求およびタイムベースタイマモード要求を同 時に行った場合は , 次の優先順位で要求を処理します。 ストップモード要求>タイムベースタイマモード要求>スリープモード要求 表 6.3-2 低消費電力モードへ遷移する場合に使用する命令一覧 MOV io,#imm8 MOV io,A MOV @RLi+disp8,A MOVW io,#imm16 MOVW io,A MOVW @RLi+disp8,A SETB io:bp CLRB io:bp MOV dir,#imm8 MOV dir,A MOV eam,#imm8 MOV addr16,A MOV eam,Ri MOV eam,A MOVW dir,#imm16 MOVW dir,A MOVW eam,#imm16 MOVW addr16,A MOVW eam,RWi MOVW eam,A SETB dir:bp CLRB dir:bp SETB addr16:bp CLRB addr16:bp 129 第 6 章 低消費電力モード 6.4 CPU 間欠動作モード CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作 させることで , 消費電力を低減するモードです。 ■ CPU 間欠動作モード CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM) , I/O, 周辺機能および外部 バスアクセスを行う場合 , CPU に供給するクロックを一命令実行ごとに一定期間停止 させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック を供給したまま , CPU の実行速度を下げると , 低消費電力で処理できます。 低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの 一時停止サイクル数を選択します。 外部バス動作そのものは , 周辺機能と同じクロックを使用します。 CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ , 内蔵周辺機能および外部バスアクセスを行う場合の命令実行回数に , 一時停止サイク ル数をかけた補正値を通常の実行時間に加えることで 求めることができます。図 6.4-1 に CPU 間欠動作時のクロックを示します。 図 6.4-1 CPU 間欠動作時のクロック 周辺クロック CPUクロック 一時停止サイクル 1命令実行 サイクル 内部バス起動 130 第 6 章 低消費電力モード スタンバイモード 6.5 スタンバイモードには , スリープ (PLL スリープ , メインスリープ , サブスリープ ) , 時計 , ストップの各モードがあります。 ■ スタンバイモードの動作状態 表 6.5-1 に , スタンバイモードの動作状態を示します。 表 6.5-1 スタンバイモードの動作状態 スタンバイモード PLL スリープモード スリープ モード メイン スリープモード 移行 メイン サブ マシン 条件 クロック クロック クロック SCS="1" MCS="0" SLP="1" 動作 SCS="1" 動作 MCS="0" SLP="1" SCS="0" 停止 SLP="1" CPU 周辺 端子 動作 動作 サブ スリープモード タイムベース SCS="1" 動作 タイマモード タイム TMD="0" (SPL="0") ベース *1 動作 停止 タイマ タイムベース 停止 SCS="1" モード タイマモード TMD="0" (SPL="1") SCS="0" 時計モード 停止 (SPL="0") TMD="0" *2 時計 停止 SCS="0" モード 時計モード (SPL="1") TMD="0" 停止 ストップモード STP="1" ストップ (SPL="0") 停止 停止 モード ストップモード STP="1" (SPL="1") *1 : タイムベースタイマ , 時計タイマは動作します。 *2 : 時計タイマは動作します。 SPL : 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット SLP : 低消費電力モード制御レジスタ (LPMCR) のスリープビット STP : 低消費電力モード制御レジスタ (LPMCR) の時計ストップビット TMD : 低消費電力モード制御レジスタ (LPMCR) の時計・タイムベースタイマモードビット MCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット SCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット ( サブ ) Hi-Z : ハイインピーダンス 解除方法 保持 リセット 割込み Hi-Z 保持 Hi-Z 保持 Hi-Z <注意事項> ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用 している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した 後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを "0" に設定してください。対象となる端子を以下に示します。 対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/ TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT 131 第 6 章 低消費電力モード スリープモード 6.5.1 スリープモードは , CPU の動作クロックを停止させるモードで , CPU 以外は動作を 続行します。低消費電力モード制御レジスタ (LPMCR) でスリープモードへの移行を 指示すると , PLL クロックモードを設定している場合は PLL スリープモードへ移行 し , メインクロックモードを設定している場合はメインスリープモードへ , サブク ロックモードを設定している場合はサブスリープモードへ移行します。 ■ スリープモードへの移行 低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1", TMD ビットに "1", STP ビットに "0" を書き込むと , スリープモードに移行します。スリープモードに移行する 場合 , クロック選択レジスタ (CKSCR) が MCS=0, SCS=1 であれば PLL スリープモード に , MCS=1, SCS=1 であればメインスリープモードに , SCS=0 であればサブスリープ モードに移行します。 <注意事項> SLP ビットと STP ビットに同時に "1" を書き込むと , STP ビットを優先し , ストップモー ドへ移行します。SLP ビットに "1", TMD ビットに "0" を同時に書き込むと , TMD ビット を優先し , タイムベースタイマモードまたは時計モードに移行します。 ● データ保持機能 スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を書き込んだ場合に , 割 込み要求が発生している場合はスリープモードに移行しません。そのため , CPU は割 込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込 み処理ルーチンへ分岐します。 ● 端子状態 スリープモード中は , 直前の状態を保持します。 ■ スリープモードの解除 低消費電力制御回路は , リセット入力または割込みの発生によってスリープモードを 解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 132 第 6 章 低消費電力モード ● 割込みによる復帰 スリープモード中に, 周辺回路などから割込みレベルが7より高い割込み要求が発生す るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同 じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ ベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設定によって , 割込み が受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられな い場合は , スリープモードを指定した命令の次の命令から処理を続行します。 図 6.5-1 に , 割込み発生によるスリープモードの解除を示します。 図 6.5-1 割込み発生によるスリープモードの解除 周辺機能の割込み イネーブルフラグ設定 INT発生(IL<7) スリープ解除しない NO スリープ解除しない YES YES I=0 次の命令実行 スリープ解除する NO YES ILM<IL 次の命令実行 NO 割込み実行 <注意事項> 割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した 後に , 割込み処理に移行します。 図 6.5-2 に , スリープモードの解除 ( 外部リセット ) を示します。 図 6.5-2 スリープモードの解除 ( 外部リセット ) RST端子 スリープモード メインクロック 発振中 PLLクロック 発振中 CPUクロック CPU動作 PLLクロック 停止中 スリープモード解除 リセットシーケンス 処理 リセット解除 133 第 6 章 低消費電力モード タイムベースタイマモード 6.5.2 タイムベースタイマモードは , 原発振とタイムベースタイマ , 時計タイマ以外の動作 を停止させるモードで , タイムベースタイマと時計タイマ以外すべての機能が停止 します。 ■ タイムベースタイマモードへの移行 PLL クロックモードまたはメインクロックモードの場合 (CKSCR の SCS=1) に , 低消費 電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベース タイマモードに移行します。 ● データ保持機能 タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内 容を保持します。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割 込み要求が発生しているときはタイムベースタイマモードに移行しません。 ● 端子状態 タイムベースタイマモード中の外部端子を , 直前の状態に保持するか , ハイインピーダ ンス状態にするかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で きます。 <注意事項> タイムベースタイマモード時に , 周辺機能とポートを兼用している端子をハイインピーダ ンスに設定する場合は , 周辺機能の出力を禁止に設定した後 , 低消費電力モード制御レジ スタ(LPMCR)のTMDビットを"0"に設定してください。 対象となる端子を以下に示します。 対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/ TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT 134 第 6 章 低消費電力モード ■ タイムベースタイマモードの解除 低消費電力制御回路は , リセット入力または割込みの発生でタイムベースタイマモー ドを解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 ● 割込みによる復帰 タイムベースタイマモード中に周辺回路などから割込みレベルが "7" より高い割込み 要求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電 力制御回路はタイムベースタイマモードを解除します。タイムベースタイマモードの 解除後は , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジス タ (ICR) の設定により割込みが受け付けられる場合は , 割込み処理を実行します。割込 みが受け付けられない場合は , タイムベースタイマモードに入る前の次の命令から処 理を続行します。 <注意事項> 割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令 を実行した後に , 割込み処理に移行します。ただし , タイムベースタイマモードへの移行 と外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処 理に移行することがあります。 図 6.5-3 に , タイムベースタイマモードからの復帰動作を示します。 図 6.5-3 タイムベースタイマモードの解除 ( 外部リセット ) RST端子 タイムベース タイマモード メインクロック 発振中 PLLクロック 発振安定待ち CPUクロック メインクロック CPU動作 停止中 リセットシーケンス 発振中 PLLクロック 処理 リセット解除 タイムベースタイマモード解除 135 第 6 章 低消費電力モード 時計モード 6.5.3 時計モードは , サブクロックと時計タイマ以外の動作を停止させるモードで , チップ のほぼ全機能が停止します。 MB90F423GC, MB90F428GC, MB90423GC, MB90427GC, MB90428GC のみで使 用可能なモードです。 ■ 時計モードへの移行 サブクロックモード時 (CKSCR:SCS=0) に , 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むことにより , 時計モードに移行します。 ● データ保持機能 時計モードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持しま す。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を設定した場合に , 割 込み要求が発生している場合は時計モードに移行しません。 ● 端子状態 時計モード中の外部端子を , 直前の状態に保持するか , ハイインピーダンス状態にする かを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。 <注意事項> 時計モード時に , 周辺機能とポートを兼用している端子をハイインピーダンスに設定する 場合は , 周辺機能の出力を禁止に設定した後 , 低消費電力モード制御レジスタ (LPMCR) の TMD ビットを "0" に設定してください。対象となる端子を以下に示します。 対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/ TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT 136 第 6 章 低消費電力モード ■ 時計モードの解除 低消費電力制御回路は , リセット入力または割込みの発生で時計モードを解除します。 ● リセットによる復帰 リセット要因による時計モードの解除の場合は , 時計モードを解除した上で , 発振安定 待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後実行さ れます。 ● 割込みによる復帰 時計モード中に周辺回路などから割込みレベルが "7" より高い割込み要求が発生する と ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電力制御回路は時 計モードを解除し , 即座にサブクロックモードに移行します。サブクロックモードに移 行後は , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジス タ (ICR) を設定して割込みが受け付けられる場合は , 割込み処理を実行します。割込み が受け付けられない場合は , 時計モードに入る前の次の命令から処理を続行します。 <注意事項> 割込み処理を実行する場合 , 通常は時計モードを指定した命令の次の命令を実行した後に , 割込み処理に移行します。 図 6.5-4 に , 時計モードの解除 ( 外部リセット ) を示します。 図 6.5-4 時計モードの解除 ( 外部リセット ) RST端子 時計モード メインクロック 発振安定待ち PLLクロック 停止中 サブクロック 発振中 CPUクロック CPU動作 発振中 メインクロック 停止中 リセット シーケンス 処理 リセット解除 時計モード解除 137 第 6 章 低消費電力モード ストップモード 6.5.4 ストップモードは , 原発振を停止させるモードで , すべての機能が停止します。した がって , 最も低消費電力でデータを保持することができます。 ■ ストップモードへの移行 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むと , ストップ モードに移行します。 ● データ保持機能 ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込 み要求が発生しているときはストップモードに移行しません。 ● 端子状態の設定 ストップモード中の外部端子を , 直前の状態に保持するか , ハイインピーダンス状態に するかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。 <注意事項> ストップモード時に , 周辺機能とポートを兼用している端子をハイインピーダンスに設定 する場合は , 周辺機能の出力を禁止に設定した後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" に設定してください。対象となる端子を以下に示します。 対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/ TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT 138 第 6 章 低消費電力モード ■ ストップモードの解除 低消費電力制御回路は , リセット入力または割込みの発生によりストップモードを解 除します。ストップモードから復帰する場合は , 発振クロック (HCLK) およびサブク ロック (SCLK) が停止しているため, メインクロック発振安定時間またはサブクロック 発振安定待ち時間を経て , ストップモードが解除されます。 ● リセットによる復帰 リセット要因によるストップモード解除の場合は , ストップモードを解除した上で , 発 振安定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後 実行されます。 ● 割込みによる復帰 ストップモード中に周辺回路などから割込みレベルが "7" より高い割込み要求が発生 すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電力制御回路 はストップモードを解除します。ストップモードの解除後は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで指定されたメインクロックの発振安定待ち時間を経過 した後で , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジス タ (ICR) を設定して割込みが受け付けられる場合は割込み処理を実行します。割込み が受け付けられない場合は , ストップモードに入る前の次の命令から処理を続行しま す。 <注意事項> • 割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行 した後に , 割込み処理に移行します。ただし , ストップモードへの移行と外部バスホー ルド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行す ることがあります。 • PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため , PLLストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間 は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設 定された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待 ち時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時 間の長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間 は 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を 設定してください。 139 第 6 章 低消費電力モード 図 6.5-5 に , ストップモードの解除 ( 外部リセット ) を示します。 図 6.5-5 ストップモードの解除 ( 外部リセット ) RST端子 ストップモード メインクロック PLLクロック 発振安定待ち 停止中 CPUクロック CPU動作 メインクロック 停止中 リセット解除 ストップモード解除 140 発振中 リセット シーケンス 処理 第 6 章 低消費電力モード 状態遷移図 6.6 図 6.6-1 に , MB90420G/425G シリーズの動作状態の遷移図と , 遷移条件を示しま す。 ■ 状態遷移図 図 6.6-1 状態遷移図 電源投入 パワーオンリセット 電源電圧低下 外部リセット,ウォッチドッグタイマリセット, CPU動作検出リセット,ソフトウェアリセット 低電圧検出リセット * リセット SCS=1 発振安定待ち終了 SCS=0 発振安定待ち終了 MCS=0 メインクロック モード SCS=0 MCS=1 SLP=1 割込み メインスリープモード TMD=0 サブクロックモード PLLクロックモード 割込み SCS=1 SLP=1 割込み PLLスリープモード 割込み TMD=0 メインストップモード 割込み 発振安定待ち終了 メインクロック発振安定待ち 割込み TMD=0 時計モード タイマモード STP=1 STP=1 STP=1 サブスリープモード PLLタイムベース メインタイムベース タイマモード 割込み SLP=1 PLLストップモード 割込み 発振安定待ち終了 PLLクロック発振安定待ち サブストップモード 割込み 発振安定待ち終了 サブクロック発振安定待ち *:MB90F423GC,MB90F428GC,MB90423GC,MB90427GC,MB90428GCのみで使用できるモードです。 141 第 6 章 低消費電力モード ■ 低消費電力モードの動作状態 表 6.6-1 に , 低消費電力モードの動作状態を示します。 表 6.6-1 低消費電力モードの動作状態 動作状態 PLL メイン サブ クロック クロック クロック 動作 PLL PLL スリープ PLL タイムベース タイマ *1 動作 動作 停止 停止 停止 停止 PLL 発振安定待ち 動作 動作 動作 メイン メインタイムベース タイマ *2 動作 動作 メインストップ 停止 停止 メイン発振安定待ち 動作 動作 動作 サブ 時計 動作 停止 停止 サブストップ 停止 サブ発振安定待ち 動作 パワーオンリセット リセット 動作 *1:PLL クロックモード時 *2: メインクロックモード時 142 停止 動作 停止 時計 タイム ベース タイマ 動作 動作 クロック ソース 動作 PLL クロック 停止 停止 停止 動作 動作 動作 動作 停止 停止 動作 動作 動作 動作 停止 サブスリープ 周辺 動作 PLL ストップ メインスリープ CPU 停止 動作 停止 動作 メイン クロック 停止 サブ クロック 動作 メイン クロック 停止 動作 停止 動作 停止 停止 動作 第 6 章 低消費電力モード 6.7 スタンバイモード , リセット時の端子状態 スタンバイモード , リセット時の端子の状態を , メモリアクセスモードごとに示しま す。 ■ シングルチップモード時の端子状態 表 6.7-1 に , シングルチップモード時の各端子状態について示します。 表 6.7-1 シングルチップモード時の各端子状態 スタンバイモード時 品種名 端子名 スリープ時 ストップ / 時計 / タイムベースタイマ時 SPL=0 SPL=1 P00 ~ P07 P10 ~ P15 P36, P37 MB90V420G P40 ~ P47 P50 ~ P57 P60 ~ P67 P70 ~ P77 P80 ~ P87 P90 ~ P91 入力不可 *4/ 出力 Hi-Z 直前の状態を 保持 *2 P00 ~ P03 P50 ~ P53 直前の状態を 保持 *2 入力遮断 *3 出力 Hi-Z 入力不可 *3/ 出力 Hi-Z 入力可 *1 ( 外部割込み許可時 ) P00 ~ P07 P10 ~ P15 P36, P37 MB90V420G 以外の品種 P40 ~ P47 P50 ~ P57 P60 ~ P67 P70 ~ P77 P80 ~ P87 入力不可 *4/ 出力 Hi-Z 入力不可 *4/ 出力 Hi-Z 直前の状態を 保持 *2 直前の状態を 保持 *2 入力遮断*3/ 出力 Hi-Z 入力遮断 *3/ 出力 Hi-Z 入力遮断 *3 出力 "L" 入力遮断 *3/ 出力 Hi-Z P90, P91 P00 ~ P03 P50 ~ P53 リセット時 入力可 *1 ( 外部割込み許可時 ) 入力不可 *4/ 出力 Hi-Z *1:入力可とは , 入力機能が可能な状態であることを意味するので , プルアップ , プルダウンオプションを選択 するかまたは外部からの入力が必要です。出力ポートとして使用している場合にはほかのポートと同じで す。 *2:" 直前の状態を保持 " とは , このモードになる直前に出力していた状態をそのまま保持することを意味しま す。ただし , 入力状態であった場合は入力不可となるので注意してください。 " 出力していた状態をそのまま保持 " とは , 出力のある内蔵周辺が動作中であればその値を , ポートなどと して出力している場合にはその値をそれぞれ保持することを意味します。 *3:" 入力遮断状態では , 入力はマスクされ "L" レベルが内部に伝わります。" 出力 Hi-Z" とは端子駆動用トラ ンジスタを駆動禁止状態にして端子をハイインピーダンスにすることを意味します。 *4:" 入力不可 " とは , 端子からすぐの入力ゲート動作は許可状態にあるが , 内部回路が動作していないので , 端子への入力値が内部で受け付けられない状態を意味します。 143 第 6 章 低消費電力モード <注意事項> ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用 している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した 後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを "0" に設定してください。対象となる端子を以下に示します。 対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/ TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT 144 第 6 章 低消費電力モード 6.8 低消費電力モード使用上の注意 低消費電力モードを使用する場合には , 次に示す内容に関して注意が必要です。 • スタンバイモードへの移行と割込み • スタンバイモードへ移行する場合の注意 • スタンバイモードの割込みによる解除 • ストップモード解除時 • 発振安定待ち時間 • クロックモードの切換え • スタンバイモード遷移のための低消費電力モード制御レジスタ (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) されている場合は , 割込み処理ルーチンへ分岐します。 割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から 動作を再開します。 割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実 行した後に , 割込み処理に移行します。 ただし , スタンバイモードに移行した場合の条件によっては , 次の命令を実行する前に 割込み処理に移行することがあります。 復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前に 割込み禁止をするなどの対策が必要です。 145 第 6 章 低消費電力モード ■ ストップモード解除時 ストップモードに入る前に , 外部割込みの割込み入力要因の設定に従った入力により , 解除することができます。入力要因として "H" レベル , "L" レベル , 立上りエッジ , 立 下りエッジが選択できます。 ■ 発振安定待ち時間 ● 発振クロック発振安定待ち時間 ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間をとる 必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで選択された時間をとります。WS1, WS0 ビットに "00B" を設定するのは , メインクロックモードの場合のみにしてください。 ● PLL クロック発振安定待ち時間 メインクロックモード中は , PLL 逓倍回路が停止しているため , PLL クロックモードに 移行する場合は , PLL クロック発振安定待ち時間を確保する必要があります。PLL ク ロック発振安定待ち時間中はメインクロックで動作します。 メインクロックモードから PLL クロックモードに切り換えた場合の PLL クロック発振 安定待ち時間は , 214/HCLK (HCLK:発振クロック ) 固定されています。 サブクロックモード中は , メインクロックおよび PLL 逓倍回路が停止しているため , PLL クロックモードに移行する場合は , メインクロック発振安定待ち時間および PLL クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間 は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定 された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち 時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時間 の長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間 は 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を 設定してください。 PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため , PLLストップモードから復帰する場合は, メインクロック発振安定待ち時間およびPLL クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間 は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定 された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち 時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時間 の長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間 は 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を 設定してください。 ■ クロックモードの切換え クロックモードを切り換えた場合 , 切換えが完了するまでは , 低消費電力モードへの切 換えおよびほかのクロックモードへの切換えを行わないようにしてください。切換え の完了はクロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照し て確認してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力 モードへの切換えを行った場合 , 切り換わらない場合があります。 146 第 6 章 低消費電力モード ■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ スする際の注意事項 ● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合 • 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設 定を行う場合は , 表 6.3-2 の命令を使用してください。 • 表 6.3-2 の命令による低消費電力モード遷移命令の直後には , 必ず下記 の命令列を配置してください。 MOV LPMCR, #H’xx 内 ; 表 6.3-2 の低消費電力モード遷移命令 NOP NOP JMP $+3 ; 次の命令へのジャンプ MOV A, #H’10 ; 任意の命令 内の命令列以外が配置されるとスタンバイモード解除後の動作は保証されま せん。 ● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定 を行う場合は , 以下の (1) から (3) のいずれかの方法でアクセスしてください。 (1) スタンバイモードに遷移させる命令を関数化し, スタンバイモード遷移命令の後に __wait_nop() のビルトイン関数を 2 個挿入してください。関数内で , スタンバイ復 帰の割込み以外の割込みが発生する可能性がある場合は, コンパイル時に最適化を 実施し ,LINK/UNLINK 命令の発生を抑止してください。 例 時計モードまたはタイムベースタイマモード遷移関数の場合 void enter_watch(){ IO_LPMCR.byte = 0x10; /* LPMCR の TMD ビットに 0 をセット */ __wait_nop(); __wait_nop(); } (2) スタンバイモードに遷移させる命令を __asm 文で記述し , スタンバイモード遷移命 令の後に 2 個の NOP と JMP 命令を挿入してください。 例 スリープモード遷移の場合 __asm("MOV I:_IO_LPMCR, #H’58); /* LPMCR の SLP ビットに 1 をセット */ __asm("NOP"); __asm("NOP"); __asm("JMP $+3"); /* 次の命令へのジャンプ */ (3) スタンバイモードに遷移させる命令を #pragma asm ~ #pragma endasm 間に記述し , スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。 例 ストップモード遷移の場合 #pragma asm MOV I:_IO_LPMCR, #H’98 NOP /* LPMCR の STP ビットに 1 をセット */ NOP JMP $+3 #pragma endasm /* 次の命令へのジャンプ */ 147 第 6 章 低消費電力モード 148 第7章 モード設定 この章では , 動作モードとメモリアクセスモードに ついて説明します。 7.1 モード設定 7.2 モード端子 (MD2 ~ MD0) 7.3 モードデータ 149 第 7 章 モード設定 7.1 モード設定 F2MC-16LX には , アクセス方式 , アクセス領域において , 各種のモードがあります。 リセット時のモード端子の設定と , モードフェッチされたモードデータによって各 モードが設定されます。 ■ モード設定 F2MC-16LX では , アクセス方式 , アクセス領域において , 各種のモードがあり , 本モ ジュールでは図 7.1-1 に示すような分類になっています。 図 7.1-1 モードの分類 動作モード RUNモード バスモード シングルチップモード Flash書込みモード ■ 動作モード 動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端 子 (MDx) とモードデータ内の Mx ビットの内容で指定します。動作モードを選択する ことで , 通常動作を起動することができます。 ■ バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す もので , モード設定用端子 (MDx) とモードデータ内の Mx ビットの内容で指定します。 モード設定用端子 (MDx) は , リセットベクタおよびモードデータを読み出すときのバ スモードを指定するもので , モードデータ内の Mx ビットは , 通常動作時のバスモード を指定するものです。 ■ RUN モード RUN モードは , CPU 動作モードのことをいいます。RUN モードには , メインクロック モードや PLL クロックモードのほかに , 各種の低消費電力モードがあります。詳細は , 「第 6 章 低消費電力モード」を参照してください。 150 第 7 章 モード設定 モード端子 (MD2 ~ MD0) 7.2 モード端子は MD2 ~ MD0 の 3 つの外部端子で , リセットベクタとモードデータの 取込み方法を指定します。 ■ モード端子 (MD2 ~ MD0) モード端子で , リセットベクタの読出しを外部データバスとするか , 内部データバスと するかの選択および外部データバス選択時のバス幅の選択を行います。Flash ROM 内 蔵品の場合は , 内蔵 ROM にプログラムなどを書き込むための Flash ROM 書込みモード の指定もモード端子で行います。モード端子の設定を表 7.2-1 に示します。 表 7.2-1 モード端子の設定 モード名 リセットベクタ アクセス領域 外部データ バス幅 備 考 MD2 MD1 MD0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 フラッシュシリアル 書込みモード - - - 1 1 1 フラッシュライタ 書込みモード - - - 設定禁止 内部ベクタモード 内部 モード データ リセットシーケンス以降は モードデータで制御 設定禁止 MD2 ~ MD0:0=Vss, 1=Vcc としてください。 <注意事項> MB90420G/425G シリーズでは , シングルチップモードのみでの使用となりますので , MD2, MD1, MD0 は "011" に設定してください。 151 第 7 章 モード設定 7.3 モードデータ モードデータは , "FFFFDFH" 番地のメモリ上にあり , リセットシーケンス後の動作 を指定します。モードデータは , モードフェッチで CPU に自動的に取り込まれま す。 ■ モードデータ リセットシーケンス実行中に , "FFFFDFH" 番地のモードデータを CPU コア内のモード レジスタに取り込みます。CPU は , このモードデータでメモリアクセスモードを設定し ます。モードレジスタの内容を変更できるのは , リセットシーケンスだけです。また , モードデータの設定は , リセットシーケンス以降に有効となります。図 7.3-1 にモード データの構成を示します。 図 7.3-1 モードデータの構成 bit 7 6 5 4 3 2 1 0 M1 M0 0 0 0 0 0 0 モードデータ 機能拡張ビット(予約領域) バスモード設定ビット ■ バスモード設定ビット リセットシーケンス終了後の動作モードの指定を行うビットです。各ビットと機能の 関係は , 表 7.3-1 のようになっています。 表 7.3-1 バスモード設定ビットとその機能 M1 M0 0 0 0 1 1 0 1 1 機 能 シングルチップモード ( 設定禁止 ) <注意事項> MB90420G/425Gシリーズでは, シングルチップモードのみでの使用となりますので, M1, M0 は "00" に設定してください。 152 第 7 章 モード設定 シングルチップモード時のアクセス領域と物理アドレスの対応を図 7.3-2 に示します。 図 7.3-2 シングルチップモードによるアクセス領域と物理アドレスの関係 ROM ROM ← ROMミラー機能を選択した場合 RAM :アクセスなし :内部アクセス アドレスは各品種に依存します。 ■ モード端子とモードデータの関係 表 7.3-2 に , モード端子とモードデータの関係を示します。 表 7.3-2 モード端子とモードデータの関係 モード MD2 MD1 MD0 M1 M0 シングルチップモード 0 1 1 0 0 <注意事項> MB90420G/425G シリーズはシングルチップモードのみでの使用となります。 153 第 7 章 モード設定 154 第8章 I/O ポート この章では , I/O ポートの機能と動作について説明 します。 8.1 I/O ポート 8.2 レジスタと外部兼用端子の割当て 8.3 ポート 0 8.4 ポート 1 8.5 ポート 3 8.6 ポート 4 8.7 ポート 5 8.8 ポート 6 8.9 ポート 7 8.10 ポート 8 8.11 ポート 9 8.12 I/O ポートのプログラム例 155 第 8 章 I/O ポート 8.1 I/O ポート I/O ポートは , 汎用入出力ポート ( パラレル I/O ポート ) として使用できます。ポー ト数は , MB90420G/425G シリーズでは 9 ポート (58 本 ) あります。各ポートは周辺 機能入出力端子と兼用になっています。 ■ I/O ポートの機能 I/O ポートは , ポートデータレジスタ (PDR) によって , CPU からのデータを I/O 端子に 出力したり , I/O 端子に入力された信号を CPU に取り込んだりする機能があります。ま た , ポートはポート方向レジスタ (DDR) によって , I/O 端子の入出力の方向をビット単 位で任意に設定することができます。以下に各ポートの機能と , 兼用される周辺機能を 示します。 • ポート 0: 汎用入出力ポート / 周辺機能 ( 外部割込み入力端子 /UART/PPG) 兼用 • ポート 1: 汎用入出力ポート / 周辺機能 (PPG/ リロードタイマ / 時計タイマ /ICU) 兼用 • ポート 3: 汎用入出力ポート / 周辺機能 (LCD) 兼用 • ポート 4: 汎用入出力ポート / 周辺機能 (LCD) 兼用 • ポート 5: 汎用入出力ポート / 周辺機能 ( 外部割込み入力端子 /CAN/ サウンドジェネレータ ) 兼 用 • ポート 6: 汎用入出力ポート / 周辺機能 ( アナログ入力端子 ) 兼用 • ポート 7: 汎用入出力ポート / 周辺機能 ( ステッピングモータコントローラ ) 兼用 • ポート 8: 汎用入出力ポート / 周辺機能 ( ステッピングモータコントローラ ) 兼用 • ポート 9: 汎用入出力ポート / 周辺機能 (LCD) 兼用 表 8.1-1 に各ポートの機能一覧を示します。 156 第 8 章 I/O ポート 表 8.1-1 各ポートの機能一覧 ポート名 端子名 入力形式 P00/SIN0/INT4 ~ ポート 0 P07/PPG1/TIN1 ポート 1 ポート 3 ポート 4 ポート 5 ポート 6 ポート 7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 汎用入出力 ポート P07 P06 P05 P04 P03 P02 P01 P00 PPG1 PPG0 SCK1 SOT1 SIN1 SCK0 SOT0 SIN0 TIN1 TOT1 TRG - INT7 INT6 INT5 INT4 - - P15 P14 P13 P12 P11 P10 - - IN0 IN1 IN2 IN3 WOT PPG2 - - - - - TIN0 TOT0 - 汎用入出力 ポート P37 P36 - - - - - - 周辺機能 CMOS ( ヒステリシス ) (Automotive レベル *) 周辺機能 SEG13 SEG12 - - - - - - 汎用入出力 ポート P47 P46 P45 P44 P43 P42 P41 P40 周辺機能 SEG21 SEG20 SEG19 SEG18 SEG17 SEG16 SEG15 SEG14 P57 P56 P55 P54 P53 P52 P51 P50 SGA SG0 RX0 TX0 INT3 INT2 INT1 INT0 - - - - - TX1 RX1 - 汎用入出力 ポート P67 P66 P65 P64 P63 P62 P61 P60 周辺機能 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 汎用入出力 ポート P77 P76 P75 P74 P73 P72 P71 P70 汎用入出力 CMOS ポート P50/INT0 ~ P57/SGA 周辺機能 アナログ・CMOS ( ヒステリシス ) (Automotive レベル *) P70/PWM1P0 ~ P77/PWM2M1 CMOS P80/PWM1P2 ~ ( ヒステリシス ) ポート 8 (Automotive P87/PWM2M3 レベル *) ポート 9 bit7 汎用入出力 ポート P40/SEG14 ~ P47/SEG21 P60/AN0 ~ P67/AN7 機能 周辺機能 P10/PPG2 ~ P15/IN0 P36/SEG12 ~ P37/SG13 出力形 式 P90/SEG22 ~ P91/SEG23 周辺機能 汎用入出力 ポート 周辺機能 PWM2M1 PWM2P1 PWM1M1 PWM1P1 PWM2M0 PWM2P0 PWM1M0 PWM1P0 P87 P86 P85 P84 P83 P82 P81 P80 PWM2M3 PWM2P3 PWM1M3 PWM1P3 PWM2M2 PWM2P2 PWM1M2 PWM1P2 汎用入出力 ポート - - - - - - P91 P90 周辺機能 - - - - - - SEG23 SEG22 *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> ポート 6 は , アナログ入力端子と兼用になっています。汎用ポートとして使用する場合は , 必ず対応するアナログ入力許可レジスタ (ADER) のビットに "0" を書き込んでください。リ セットで ADER のビットは "1" に初期化されます。 157 第 8 章 I/O ポート 8.2 レジスタと外部兼用端子の割当て I/O ポートの設定に関連するレジスタの一覧を示します。 ■ I/O ポートのレジスタ一覧 表 8.2-1 に , 各ポートのレジスタ一覧を示します。 表 8.2-1 各ポートのレジスタ一覧 リード / ライト アドレス 初期値 ポート 0 データレジスタ (PDR0) R/W 000000H XXXXXXXXB ポート 1 データレジスタ (PDR1) R/W 000001H --XXXXXXB ポート 3 データレジスタ (PDR3) R/W 000003H XX------B ポート 4 データレジスタ (PDR4) R/W 000004H XXXXXXXXB ポート 5 データレジスタ (PDR5) R/W 000005H XXXXXXXXB ポート 6 データレジスタ (PDR6) R/W 000006H XXXXXXXXB ポート 7 データレジスタ (PDR7) R/W 000007H XXXXXXXXB ポート 8 データレジスタ (PDR8) R/W 000008H XXXXXXXXB ポート 9 データレジスタ (PDR9) R/W 000009H ------XXB ポート 0 方向レジスタ (DDR0) R/W 000010H 00000000B ポート 1 方向レジスタ (DDR1) R/W 000011H --000000B ポート 3 方向レジスタ (DDR3) R/W 000013H 00------B ポート 4 方向レジスタ (DDR4) R/W 000014H 00000000B ポート 5 方向レジスタ (DDR5) R/W 000015H 00000000B ポート 6 方向レジスタ (DDR6) R/W 000016H 00000000B ポート 7 方向レジスタ (DDR7) R/W 000017H 00000000B ポート 8 方向レジスタ (DDR8) R/W 000018H 00000000B ポート 9 方向レジスタ (DDR9) R/W 000019H ------00B アナログ入力許可レジスタ (ADER) R/W 00001AH 11111111B レジスタ名 R/W:リード / ライト可能 X :不定値 - :未定義 158 第 8 章 I/O ポート 8.3 ポート 0 ポート 0 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして の機能を中心に説明します。ポート 0 の構成 , 端子 , 端子のブロックダイヤグラム , レジスタを示します。 ■ ポート 0 の構成 ポート 0 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 周辺機能入出力端子 (P00/SIN0/INT4 ~ P07/PPG1/TIN1) • ポート 0 データレジスタ (PDR0) • ポート 0 方向レジスタ (DDR0) ■ ポート 0 の端子 ポート 0 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.3-1 に , ポート 0 の端子を示します。 表 8.3-1 ポート 0 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 入力 ポート 0 P00/SIN0/INT4 P00 SIN0 P01/SOT0/INT5 P01 SOT0 P02/SCK0/INT6 P02 SCK0 INT6 P03/SIN1/INT7 P03 SIN1 INT7 P04/SOT1 P04 汎用 入出力 SOT1 出力 回路 形式 INT4 UART0 UART1 INT5 外部 割込み 入力 - PPG P05/SCK1/TRG P05 SCK1 TRG P06/PPG0/TOT1 P06 PPG0 P07/PPG1/TIN1 P07 PPG1 TOT1 リロード TIN1 タイマ PPG CMOS ( ヒステリシス ) CMOS (Automotive * レベル ) G *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 159 第 8 章 I/O ポート ■ ポート 0 の端子のブロックダイヤグラム 図 8.3-1 に , ポート 0 の端子のブロックダイヤグラムを示します。 図 8.3-1 ポート 0 の端子のブロックダイヤグラム 周辺機能入力 PDR (ポートデータレジスタ) 周辺機能出力 周辺機能出力許可 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) ■ ポート 0 のレジスタ ポート 0 のレジスタには , PDR0 および DDR0 があります。各レジスタを構成するビッ トは , ポート 0 の端子に 1 対 1 で対応しています。表 8.3-2 に , ポート 0 のレジスタと 端子の対応を示します。 表 8.3-2 ポート 0 のレジスタと端子の対応 ポート名 ポート 0 160 関連するレジスタのビットと対応する端子 PDR0, DDR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P07 P06 P05 P04 P03 P02 P01 P00 第 8 章 I/O ポート ポート 0 のレジスタ (PDR0, DDR0) 8.3.1 ポート 0 のレジスタについて説明します。 ■ ポート 0 のレジスタの機能 ● ポート 0 データレジスタ (PDR0) PDR0 レジスタは , 端子の状態を示します。 ● ポート 0 方向レジスタ (DDR0) DDR0 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> • 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビッ トが許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子と なります。 • 入力端子を持つ周辺機能を使用する場合 , 各周辺機能の入力端子に対応する DDR0 レ ジスタのビットに "0" を書き込んで , 入力ポートとしてください。 表 8.3-3 ポート 0 のレジスタの機能 レジスタ名 データ 書込み時 0 端子状態が "L" レベル 出力ラッチに "0" を設定し , 出力ポート時は端子に "L" レベルを出力する 1 端子状態が "H" レベル 出力ラッチに "1" を設定し , 出力ポート時は端子に "H" レベルを出力する 0 方向ラッチが "0" 出力バッファを "OFF" し , 入力ポートにする 1 方向ラッチが "1" 出力バッファを "ON" し , 出力ポートにする ポート 0 データ レジスタ (PDR0) ポート 0 方向 レジスタ (DDR0) 読出し時 R/W アドレス 初期値 R/W 000000H XXXXXXXXB R/W 000010H 00000000B R/W:リード / ライト可能 X :不定値 161 第 8 章 I/O ポート ポート 0 の動作説明 8.3.2 ポート 0 の動作を説明します。 ■ ポート 0 の動作 ● 出力ポート時の動作 対応する DDR0 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR0 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR0 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタに "1" を書き込んでください。 ● 入力ポート時の動作 対応する DDR0 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR0 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR0 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力 の切換えは周辺機能の出力許可ビットが優先されるので , DDR0 レジスタが "0" に設定 されているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になりま す。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力値 を知ることができます。 ● 周辺機能入力時の動作 周辺機能入力と兼用のポートでは , 周辺機能の入力には , 常に端子の値が入力されてい ます。外部からの信号を周辺機能で使用するときは , DDR0 レジスタに "0" を設定し , 入力ポートとしてください。 162 第 8 章 I/O ポート ● リセット時の動作 CPU がリセットされると , DDR0 レジスタの値は "0" に初期化されます。このため , 出 力バッファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになりま す。 PDR0 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR0 レジスタに出力データをセットしてから , 対応する DDR0 レジスタを 出力に設定する必要があります。 ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) が "1" にセットされていると , 端子はハイインピーダンスになります。これは , DDR0 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.3-4 にポート 0 の端子状態を示します。 表 8.3-4 ポート 0 の端子状態 ストップモード , タイムベース タイマモード (SPL=1) 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P00/SIN0/INT4 ~ P07/PPG1/TIN1 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート 入力遮断 / 出力 Hi-Z P00/SIN0/INT4 ~ P03/SIN1/INT7 ( 外部割込み設定時 ) 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート 入力可能 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z:ハイインピーダンス <注意事項> ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用 している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した 後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを "0" に設定してください。対象となる端子を以下に示します。 対 象 端 子:P01/SOT0/INT5,P02/SCK0/INT6,P04/SOT1,P05/SCK1/TRG,P06/PPG0/ TOT1,P07/PPG1/TIN1 163 第 8 章 I/O ポート 8.4 ポート 1 ポート 1 は , 周辺機能入力兼用の汎用入出力ポートです。各端子は , 周辺機能とポー トをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとしての 機能を中心に説明します。ポート 1 の構成 , 端子 , 端子のブロックダイヤグラム , レ ジスタを示します。 ■ ポート 1 の構成 ポート 1 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 外部割込み入力端子 (P10/PPG2 ~ P15/IN0) • ポート 1 データレジスタ (PDR1) • ポート 1 方向レジスタ (DDR1) ■ ポート 1 の端子 ポート 1 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.4-1 にポート 1 の 端子を示します。 表 8.4-1 ポート 1 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 入力 P10/PPG2 P10 PPG2 PPG P11/TOT0/WOT P11 ポート 1 P12/TIN0/IN3 P12 P13/IN2 P13 P14/IN1 P14 P15/IN0 P15 汎用 入出力 - 出力 回路 形式 - TOT0 リロード WOT 時計 タイマ タイマ TIN0 IN3 イン IN2 - - プット IN1 - - キャプチャ IN0 - - CMOS ( ヒステリシス ) CMOS (Automotive * レベル ) G *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 164 第 8 章 I/O ポート ■ ポート 1 の端子のブロックダイヤグラム 図 8.4-1 に , ポート 1 の端子のブロックダイヤグラムを示します。 図 8.4-1 ポート 1 の端子のブロックダイヤグラム 周辺機能入力 PDR (ポートデータレジスタ) 周辺機能出力 周辺機能出力許可 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) ■ ポート 1 のレジスタ ポート 1 のレジスタには , PDR1 および DDR1 があります。各レジスタを構成するビッ トは , ポート 1 の端子に 1 対 1 で対応しています。表 8.4-2 にポート 1 のレジスタと端 子の対応を示します。 表 8.4-2 ポート 1 のレジスタと端子の対応 ポート名 ポート 1 関連するレジスタのビットと対応する端子 PDR1, DDR1 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 - - P15 P14 P13 P12 P11 P10 165 第 8 章 I/O ポート ポート 1 のレジスタ (PDR1, DDR1) 8.4.1 ポート 1 のレジスタについて説明します。 ■ ポート 1 のレジスタの機能 ● ポート 1 データレジスタ (PDR1) PDR1 レジスタは , 端子の状態を示します。 ● ポート 1 方向レジスタ (DDR1) DDR1 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> • 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビッ トが許可されている場合は , DDR1 レジスタの設定値に関係なく , 周辺機能出力端子と なります。 • 入力端子を持つ周辺機能を使用する場合 , 各周辺機能の入力端子に対応する DDR1 レ ジスタのビットに "0" を書き込んで , 入力ポートとしてください。 表 8.4-3 ポート 1 のレジスタの機能 レジスタ名 データ R/W:リード / ライト可能 X :不定値 - :未定義 166 書込み時 0 端子状態が "L" レベル 出力ラッチに "0" を設定し , 出力ポート時は端子に "L" レベルを出力する 1 端子状態が "H" レベル 出力ラッチに "1" を設定し , 出力ポート時は端子に "H" レベルを出力する 0 方向ラッチが "0" 出力バッファを "OFF" し , 入力ポートにする 1 方向ラッチが "1" 出力バッファを "ON" し , 出力ポートにする ポート 1 データ レジスタ (PDR1) ポート 1 方向 レジスタ (DDR1) 読出し時 R/W アドレス 初期値 R/W 000001H --XXXXXXB R/W 000011H --000000B 第 8 章 I/O ポート ポート 1 の動作説明 8.4.2 ポート 1 の動作を説明します。 ■ ポート 1 の動作 ● 出力ポート時の動作 対応する DDR1 レジスタのビットを "1" にすると , 出力ポートになります。 出力ポート時に PDR1 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR1 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタを出力にセットしてください。 ● 入力ポート時の動作 対応する DDR1 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR1 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR1 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定を行います。入 出力の切換えは周辺機能の出力許可ビットが優先されるので , DDR1 レジスタに "0" が 書き込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力に なります。周辺機能の出力を許可したときでも端子の値の読出しは可能なため , 周辺機 能の出力値を読み出すことができます。 ● 周辺機能入力時の動作 周辺機能入力と兼用のポートでは , 周辺機能の入力には , 常に端子の値が入力されてい ます。外部からの信号を周辺機能で使用するときは , DDR1 レジスタに "0" を書き込ん で , 入力ポートとしてください。 167 第 8 章 I/O ポート ● リセット時の動作 CPU がリセットされると , DDR1 レジスタの値はクリアされます。このため , 出力バッ ファはすべて "OFF" ( 入力ポート ) となり , また , プルアップ抵抗もカットされるため , 端 子はハイインピーダンスになります。 PDR1 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR1 レジスタに出力データを書き込んでから , 対応する DDR1 レジスタに "1" を書き込んでください。 ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , DDR1 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.4-4 に , ポート 1 の端子状態を示します。 表 8.4-4 ポート 1 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P10/PPG2 ~ P15/IN0 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート ストップモード , タイムベース タイマモード (SPL=1) 入力遮断 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z:ハイインピーダンス <注意事項> ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用 している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した 後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを "0" に設定してください。対象となる端子を以下に示します。 対象端子:P10/PPG2,P11/TOT0/WOT 168 第 8 章 I/O ポート 8.5 ポート 3 ポート 3 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして の機能を中心に説明します。ポート 3 の構成 , 端子 , 端子のブロックダイヤグラム , レジスタを示します。 ■ ポート 3 の構成 ポート 3 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 周辺機能入出力端子 (P36/SEG12, P37/SEG13) • ポート 3 データレジスタ (PDR3) • ポート 3 方向レジスタ (DDR3) ■ ポート 3 の端子 ポート 3 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.5-1 に , ポート 3 の端子を示します。 表 8.5-1 ポート 3 の端子 入出力形式 ポート名 端子名 ポート 3 ポート機能 P36/SEG12 P36 P37/SEG13 P37 汎用 入出力 入力 出力 回路 形式 CMOS ( ヒステリシス ) (Automotive レベル *) CMOS E 周辺機能 SEG12 SEG13 LCDC *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 169 第 8 章 I/O ポート ■ ポート 3 の端子のブロックダイヤグラム 図 8.5-1 に , ポート 3 の端子のブロックダイヤグラムを示します。 図 8.5-1 ポート 3 の端子のブロックダイヤグラム 周辺機能出力 PDR (ポートデータレジスタ) 周辺機能出力許可 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) またはLCD出力許可 ■ ポート 3 のレジスタ ポート 3 のレジスタには , PDR3 および DDR3 があります。各レジスタを構成するビッ トは , ポート 3 の端子に 1 対 1 で対応しています。表 8.5-2 にポート 3 のレジスタと端 子の対応を示します。 表 8.5-2 ポート 3 のレジスタと端子の対応 ポート名 ポート 3 170 関連するレジスタのビットと対応する端子 PDR3, DDR3 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P37 P36 - - - - - - 第 8 章 I/O ポート ポート 3 のレジスタ (PDR3, DDR3) 8.5.1 ポート 3 のレジスタについて説明します。 ■ ポート 3 のレジスタの機能 ● ポート 3 データレジスタ (PDR3) PDR3 レジスタは , 端子の状態を示します。 ● ポート 3 方向レジスタ (DDR3) DDR3 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが 許可されている場合は , DDR3 レジスタの設定値に関係なく , 周辺機能出力端子となりま す。 表 8.5-3 ポート 3 のレジスタの機能 レジスタ名 データ 書込み時 端子状態が "L" レベル 出力ラッチに "0" を設定し , 出力ポート時は端子に "L" レベルを出力する 1 端子状態が "H" レベル 出力ラッチに "1" を設定し , 出力ポート時は端子に "H" レベルを出力する 0 方向ラッチ が "0" 出力バッファを "OFF" し , 入力ポートにする 1 方向ラッチ が "1" 出力バッファを "ON" し , 出 力ポートにする 0 ポート 3 データ レジスタ (PDR3) ポート 3 方向 レジスタ (DDR3) 読出し時 R/W アドレス 初期値 R/W 000003H XX------B R/W 000013H 00------B R/W:リード / ライト 可能 X :不定値 - :未定義 171 第 8 章 I/O ポート ポート 3 の動作説明 8.5.2 ポート 3 の動作を説明します。 ■ ポート 3 の動作 ● 出力ポート時の動作 対応する DDR3 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR3 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR3 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタを出力にセットしてください。 ● 入力ポート時の動作 対応する DDR3 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR3 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR3 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力 の切換えは周辺機能の出力許可ビットが優先されるので , DDR3 レジスタに "0" が書き 込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になり ます。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力 値を知ることができます。 ● リセット時の動作 CPU がリセットされると , DDR3 レジスタの値はクリアされます。このため , 出力バッ ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。 PDR3 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR3 レジスタに出力データを書き込んでから , 対応する DDR3 レジスタに "1" を書き込んでください。 172 第 8 章 I/O ポート ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , DDR3 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.5-4 に , ポート 3 の端子状態を示します。 表 8.5-4 ポート 3 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P36/SEG12 , P37/SEG13 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート ストップモード , タイムベース タイマモード (SPL=1) 入力遮断 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z:ハイインピーダンス 173 第 8 章 I/O ポート 8.6 ポート 4 ポート 4 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして の機能を中心に説明します。ポート 4 の構成 , 端子 , 端子のブロックダイヤグラム , レ ジスタを示します。 ■ ポート 4 の構成 ポート 4 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 周辺機能入出力端子 (P40/SEG14 ~ P47/SEG21) • ポート 4 データレジスタ (PDR4) • ポート 4 方向レジスタ (DDR4) ■ ポート 4 の端子 ポート 4 の入出力端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力 端子として使用する場合 , 汎用入出力ポートとして使用できません。表 8.6-1 にポート 4 の端子を示します。 表 8.6-1 ポート 4 の端子 入出力形式 ポート名 端子名 ポート機能 入力 ポート 4 P40/SEG14 P40 SEG14 P41/SEG15 P41 SEG15 P42/SEG16 P42 SEG16 P43/SEG17 P43 SEG17 P44/SEG18 P44 P45/SEG19 P45 SEG19 P46/SEG20 P46 SEG20 P47/SEG21 P47 SEG21 汎用 入出力 出力 回路 形式 CMOS E 周辺機能 SEG18 LCDC CMOS ( ヒステリシス ) (Automotive レベル *) *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 174 第 8 章 I/O ポート ■ ポート 4 の端子のブロックダイヤグラム 図 8.6-1 に , ポート 4 の端子のブロックダイヤグラムを示します。 図 8.6-1 ポート 4 の端子のブロックダイヤグラム 周辺機能出力 PDR (ポートデータレジスタ) 周辺機能出力許可 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) またはLCD出力許可 <注意事項> 周辺機能の出力許可ビットを許可すると , DDR4 レジスタの値にかかわらず強制的に周辺 機能の出力端子となります。 ■ ポート 4 のレジスタ ポート 4 のレジスタには , PDR4 および DDR4 があります。各レジスタを構成するビッ トは , ポート 4 の端子に 1 対 1 で対応しています。表 8.6-2 にポート 4 のレジスタと端 子の対応を示します。 表 8.6-2 ポート 4 のレジスタと端子の対応 ポート名 ポート 4 関連するレジスタのビットと対応する端子 PDR4, DDR4 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P47 P46 P45 P44 P43 P42 P41 P40 175 第 8 章 I/O ポート ポート 4 のレジスタ (PDR4, DDR4) 8.6.1 ポート 4 のレジスタについて説明します。 ■ ポート 4 のレジスタの機能 ● ポート 4 データレジスタ (PDR4) PDR4 レジスタは , 端子の状態を示します。 ● ポート 4 方向レジスタ (DDR4) DDR4 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが 許可されている場合は , DDR4 レジスタの設定値に関係なく , 周辺機能出力端子となりま す。 表 8.6-3 ポート 4 のレジスタの機能 レジスタ名 データ R/W:リード / ライト 可能 X :不定値 176 書込み時 0 出力ラッチに "0" を設定し , 端子状態が 出力ポート時は端子に "L" "L" レベル レベルを出力する 1 出力ラッチに "1" を設定し , 端子状態が 出力ポート時は端子に "H" "H" レベル レベルを出力する 0 方向ラッチ 出力バッファを "OFF" し , が "0" 入力ポートにする 1 方向ラッチ 出力バッファを "ON" し , が "1" 出力ポートにする ポート 4 データ レジスタ (PDR4) ポート 4 方向 レジスタ (DDR4) 読出し時 R/W アドレス 初期値 R/W 000004H XXXXXXXXB R/W 000014H 00000000B 第 8 章 I/O ポート ポート 4 の動作説明 8.6.2 ポート 4 の動作を説明します。 ■ ポート 4 の動作 ● 出力ポート時の動作 対応する DDR4 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR4 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR4 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタを出力にセットしてください。 ● 入力ポート時の動作 対応する DDR4 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR4 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR4 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定を行います。入 出力の切換えは周辺機能の出力許可ビットが優先されるので , DDR4 レジスタに "0" が 書き込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力に なります。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の 出力値を知ることができます。 ● リセット時の動作 CPU がリセットされると , DDR4 レジスタの値はクリアされます。このため , 出力バッ ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。 PDR4 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR4 レジスタに出力データを書き込んでから , 対応する DDR4 レジスタに "1" を書き込んでください。 177 第 8 章 I/O ポート ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , DDR4 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.6-4 に , ポート 4 の端子状態を示します。 表 8.6-4 ポート 4 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P40/SEG14 ~ P47/SEG21 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート ストップモード , タイムベース タイマモード (SPL=1) 入力遮断 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z:ハイインピーダンス 178 第 8 章 I/O ポート 8.7 ポート 5 ポート 5 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして の機能を中心に説明します。ポート 5 の構成 , 端子 , 端子のブロックダイヤグラム , レ ジスタを示します。 ■ ポート 5 の構成 ポート 5 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 周辺機能入力端子 (P50/INT0/ADTG ~ P57/SGA) • ポート 5 データレジスタ (PDR5) • ポート 5 方向レジスタ (DDR5) ■ ポート 5 の端子 ポート 5 の入出力端子は , 周辺機能入力端子と兼用になっていますので , 周辺機能入出 力端子として使用する場合 , 汎用入出力ポートとして使用できません。表 8.7-1 にポー ト 5 の端子を示します。 表 8.7-1 ポート 5 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 入力 ポート 5 P50/INT0/ADTG P50 INT0 P51/INT1/RX1 P51 INT1 P52/INT2/TX1 P52 INT2 P53/INT3 P53 P54/TX0 P54 P55/RX0 P55 RX0 P56/SGO/FRCK P56 SGO P57/SGA P57 SGA 汎用 入出力 ADTG 外部 割込み 入力 RX1 TX1 A/D コン バータ CAN1 INT3 TX0 CAN0 サウン ドジェ ネレー タ - 出力 回路 形式 - CMOS ( ヒステリシス ) CMOS (Automotive レ ベル *) G フリー FRCK ラン タイマ - *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 179 第 8 章 I/O ポート ■ ポート 5 の端子のブロックダイヤグラム 図 8.7-1 に , ポート 5 の端子のブロックダイヤグラムを示します。 図 8.7-1 ポート 5 の端子のブロックダイヤグラム 周辺機能入力 PDR (ポートデータレジスタ) 周辺機能出力 周辺機能出力許可 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) ■ ポート 5 のレジスタ ポート 5 のレジスタには , PDR5 および DDR5 があります。各レジスタを構成するビッ トは , ポート 5 の端子に 1 対 1 で対応しています。表 8.7-2 に , ポート 5 のレジスタと 端子の対応を示します。 表 8.7-2 ポート 5 のレジスタと端子の対応 ポート名 ポート 5 180 関連するレジスタのビットと対応する端子 PDR5, DDR5 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P57 P56 P55 P54 P53 P52 P51 P50 第 8 章 I/O ポート ポート 5 のレジスタ (PDR5, DDR5) 8.7.1 ポート 5 のレジスタについて説明します。 ■ ポート 5 のレジスタの機能 ● ポート 5 データレジスタ (PDR5) PDR5 レジスタは , 端子の状態を示します。 ● ポート 5 方向レジスタ (DDR5) DDR5 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> • 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビッ トが許可されている場合は , DDR5 レジスタの設定値に関係なく , 周辺機能出力端子と なります。 • 入力端子を持つ周辺機能を使用する場合 , 各周辺機能の入力端子に対応する DDR5 レ ジスタのビットに "0" を書き込んで , 入力ポートとしてください。 表 8.7-3 ポート 5 のレジスタの機能 レジスタ名 データ 書込み時 0 端子状態が "L" レベル 出力ラッチに "0" を設定し , 出力ポート時は端子に "L" レベルを出力する 1 端子状態が "H" レベル 出力ラッチに "1" を設定し , 出力ポート時は端子に "H" レベルを出力する 0 方向ラッチが 出力バッファを "OFF" し , "0" 入力ポートにする 1 方向ラッチが 出力バッファを "ON" し , "1" 出力ポートにする ポート 5 データ レジスタ (PDR5) ポート 5 方向 レジスタ (DDR5) 読出し時 R/W アドレス 初期値 R/W 000005H XXXXXXXXB R/W 000015H 00000000B R/W:リード / ライト 可能 X :不定値 181 第 8 章 I/O ポート ポート 5 の動作説明 8.7.2 ポート 5 の動作を説明します。 ■ ポート 5 の動作 ● 出力ポート時の動作 対応する DDR5 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR5 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR5 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタを出力にセットしてください。 ● 入力ポート時の動作 対応する DDR5 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR5 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR5 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定を行います。入 出力の切換えは周辺機能の出力許可ビットが優先されるので , DDR5 レジスタに "0" が 書き込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力に なります。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の 出力値を知ることができます。 ● 周辺機能入力時の動作 周辺機能入力と兼用のポートでは , 周辺機能の入力には , 常に端子の値が入力されてい ます。外部からの信号を周辺機能で使用するときは , DDR5 レジスタに "0" を設定し , 入力ポートとしてください。 182 第 8 章 I/O ポート ● リセット時の動作 CPU がリセットされると , DDR5 レジスタの値はクリアされます。このため , 出力バッ ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。 PDR5 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR5 レジスタに出力データを書き込んでから , 対応する DDR5 レジスタに "1" を書き込んでください。 ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , DDR5 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.7-4 に , ポート 5 の端子状態を示します。 表 8.7-4 ポート 5 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P50/INT0/ADTG ~ P57/SGA 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート 入力遮断 / 出力 Hi-Z P50/INT0 ~ P53/INT3 ( 外部割込み設定時 ) 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート 入力可能 / 出力 Hi-Z ストップモード , タイムベース タイマモード (SPL=1) SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z:ハイインピーダンス 183 第 8 章 I/O ポート 8.8 ポート 6 ポート 6 は , A/D コンバータのアナログ入力兼用の汎用入出力ポートです。各端子 は , アナログ入力とポートをビット単位で切り換えて使用できます。ここでは , 汎用 入出力ポートとしての機能を中心に説明します。ポート 6 の構成 , 端子 , 端子のブ ロックダイヤグラム , レジスタを示します。 ■ ポート 6 の構成 ポート 6 は , 次の 4 つの要素から構成されます。 • 汎用入出力端子 / アナログ入力端子 (P60/AN0 ~ P67/AN7) • ポート 6 データレジスタ (PDR6) • ポート 6 方向レジスタ (DDR6) • アナログ入力許可レジスタ (ADER) ■ ポート 6 の端子 ポート 6 の入出力端子は , アナログ入力端子と兼用になっています。アナログ入力を使 用する場合 , 汎用入出力ポートとしては使用できません。また , 汎用ポートとして使用 するときは , アナログ入力端子として使用しないでください。表 8.8-1 に , ポート 6 の 端子を示します。 表 8.8-1 ポート 6 の端子 入出力形式 ポート名 端子名 ポート機能 入力 ポート 6 P60/AN0 P60 AN0 アナログ入力 0 P61/AN1 P61 AN1 アナログ入力 1 P62/AN2 P62 AN2 アナログ入力 2 P63/AN3 P63 AN3 アナログ入力 3 P64/AN4 P64 AN4 アナログ入力 4 P65/AN5 P65 AN5 アナログ入力 5 P66/AN6 P66 AN6 アナログ入力 6 P67/AN7 P67 AN7 アナログ入力 7 汎用 入出力 出力 回路 形式 CMOS F 周辺機能 CMOS ( ヒステリシス ) (Automotive レベル *) *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 184 第 8 章 I/O ポート ■ ポート 6 の端子のブロックダイヤグラム 図 8.8-1 に , ポート 6 の端子のブロックダイヤグラムを示します。 図 8.8-1 ポート 6 の端子のブロックダイヤグラム ADER PDR (ポートデータレジスタ) アナログ入力 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) <注意事項> 入力ポートとして使用する端子は , 対応する DDR6 レジスタのビットに "0" を書き込んで , かつ , ADER レジスタの対応するビットに "0" を書き込んでください。 アナログ入力端子として使用する端子は , 対応する DDR6 レジスタのビットに "0" を書き 込んで , かつ , ADER レジスタのビットに "1" を書き込んでください。このときの PDR6 レジスタの読出し値は "0" になります。 ■ ポート 6 のレジスタ ポート 6 のレジスタには , PDR6, DDR6 および ADER があります。各レジスタを構成 するビットは , ポート 6 の端子に 1 対 1 で対応しています。表 8.8-2 に , ポート 6 のレ ジスタと端子の対応を示します。 表 8.8-2 ポート 6 のレジスタと端子の対応 ポート名 ポート 6 関連するレジスタのビットと対応する端子 PDR6, DDR6, ADER bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P67 P66 P65 P64 P63 P62 P61 P60 185 第 8 章 I/O ポート ポート 6 のレジスタ (PDR6, DDR6, ADER) 8.8.1 ポート 6 のレジスタについて説明します。 ■ ポート 6 のレジスタの機能 ● ポート 6 データレジスタ (PDR6) PDR6 レジスタは , 端子の状態を示します。 ● ポート 6 方向レジスタ (DDR6) DDR6 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります ● ADER レジスタ (ADER) ADER レジスタは , ビットごとにポートとして使用するか , アナログ入力として使用す るかを設定します。 端子に対応するビットに "1" を書き込むとアナログ入力になり , "0" を書き込むと入出力ポートになります。 <注意事項> • ポート入出力時に , 中間レベルの信号が入力されると入力リーク電流が流れますので , アナログ入力を行う端子は, 必ずADERの対応するビットに"1"を書き込んでください。 • リセットにより DDR6 レジスタはクリアされ , ADER レジスタはセットされて , アナロ グ入力となります。 表 8.8-3 ポート 6 のレジスタの機能 レジスタ名 データ 読出し時 端子状態が "L" レベル DDR6 が "0" でハイイン ピーダンス状態になる DDR6 が "1" で "L" レベ ルを出力する 1 端子状態が "H" レベル DDR6 が "0" でハイイン ピーダンス状態になる DDR6 が "1" で "H" レベ ルを出力する 0 方向ラッチが "0" 出力バッファを "OFF" し , 入力ポートにする 1 方向ラッチが 出力バッファを "ON" し , "1" 出力ポートにする 0 ポート入出力モード 1 アナログ入力モード 0 ポート 6 データ レジスタ (PDR6) ポート 6 方向 レジスタ (DDR6) アナログ入力許可 レジスタ (ADER) R/W:リード / ライト 可能 X :不定値 186 書込み時 R/W アドレス 初期値 R/W 000006H XXXXXXXXB R/W 000016H 00000000B R/W 00001AH 11111111B 第 8 章 I/O ポート ポート 6 の動作説明 8.8.2 ポート 6 の動作を説明します。 ■ ポート 6 の動作 ● 出力ポート時の動作 対応する DDR6 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR6 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR6 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタに "1" を書き込んでください。 ● 入力ポート時の動作 対応する DDR6 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR6 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR6 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● アナログ入力時の動作 アナログ入力として使用するには, アナログ入力端子に対応するADERレジスタのビッ トに "1" を書き込んでください。これによって , 汎用ポートとしての動作が禁止され , アナログ入力端子として使用できるようになります。この状態で PDR6 をリードする と , 読出し値は "0" となります。 ● リセット時の動作 CPU がリセットされると , DDR6 レジスタの値はクリア , ADER レジスタの値はセット され , アナログ入力モードとなります。汎用ポートとして使用する場合には , 事前に ADER レジスタに "0" を書き込んでポート入出力モードにしてください。 187 第 8 章 I/O ポート ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , 強制的に出力バッファが "OFF" とな るためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。表 8.8-4 にポート 6 の端子状態を示します。 表 8.8-4 ポート 6 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P60/AN0 ~ P67/AN7 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート ストップモード , タイムベース タイマモード (SPL=1) 入力遮断 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z:ハイインピーダンス 188 第 8 章 I/O ポート 8.9 ポート 7 ポート 7 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして の機能を中心に説明します。ポート 7 の構成 , 端子 , 端子のブロックダイヤグラム , レ ジスタを示します。 ■ ポート 7 の構成 ポート 7 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 周辺機能入出力端子 (P70/PWM1P0 ~ P77/PWM2M1) • ポート 7 データレジスタ (PDR7) • ポート 7 方向レジスタ (DDR7) ■ ポート 7 の端子 ポート 7 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.9-1 にポート 7 の 端子を示します。 表 8.9-1 ポート 7 の端子 入出力形式 ポート名 端子名 ポート機能 入力 P70/ PWM1P0 ポート 7 P71/ PWM1M0 P71 PWM1M0 P72/ PWM2P0 PWM2P0 P72 P75/ PWM1M1 P75 PWM2M0 ステッピング モータコント PWM1P1 ローラ PWM1M1 P76/ PWM2P1 PWM2P1 P74/ PWM1P1 P74 P76 P77/ PWM2M1 P77 CMOS H PWM1P0 P70 P73/ PWM2M0 P73 出力 回路 形式 周辺機能 汎用 入出力 CMOS ( ヒステリシス ) (Automotive レベル *) PWM2M1 *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 189 第 8 章 I/O ポート ■ ポート 7 の端子のブロックダイヤグラム 図 8.9-1 に , ポート 7 の端子のブロックダイヤグラムを示します。 図 8.9-1 ポート 7 の端子のブロックダイヤグラム 周辺機能出力 PDR (ポートデータレジスタ) 周辺機能出力許可 PDRリード 内部データバ ス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) RST 周辺機能の出力許可ビットを許可すると, DDR7レジスタの値にかかわらず強制的に周 辺機能の出力端子となります。 ■ ポート 7 のレジスタ ポート 7 のレジスタには , PDR7 および DDR7 があります。各レジスタを構成するビッ トは , ポート 7 の端子に 1 対 1 で対応しています。表 8.9-2 に , ポート 7 のレジスタと 端子の対応を示します。 表 8.9-2 ポート 7 のレジスタと端子の対応 ポート名 ポート 7 190 関連するレジスタのビットと対応する端子 PDR7, DDR7 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P77 P76 P75 P74 P73 P72 P71 P70 第 8 章 I/O ポート ポート 7 のレジスタ (PDR7, DDR7) 8.9.1 ポート 7 のレジスタについて説明します。 ■ ポート 7 のレジスタの機能 ● ポート 7 データレジスタ (PDR7) PDR7 レジスタは , 端子の状態を示します。 ● ポート 7 方向レジスタ (DDR7) DDR7 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが 許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子となりま す。 表 8.9-3 ポート 7 のレジスタの機能 レジスタ名 ポート 7 データ レジスタ (PDR7) ポート 7 方向 レジスタ (DDR7) データ 読出し時 書込み時 0 端子状態が "L" レベル 出力ラッチに "0" を設定 し , 出力ポート時は端子に "L" レベルを出力する 1 端子状態が "H" レベル 出力ラッチに "1" を設定 し , 出力ポート時は端子に "H" レベルを出力する 0 方向ラッチ が "0" 出力バッファを "OFF" し , 入力ポートにする 1 方向ラッチ が "1" 出力バッファを "ON" し , 出力ポートにする R/W アドレス 初期値 R/W 000007H XXXXXXXXB R/W 000017H 00000000B R/W:リード / ライト 可能 X :不定値 191 第 8 章 I/O ポート ポート 7 の動作説明 8.9.2 ポート 7 の動作を説明します。 ■ ポート 7 の動作 ● 出力ポート時の動作 対応する DDR7 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR7 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR7 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタを出力にセットしてください。 ● 入力ポート時の動作 対応する DDR7 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR7 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR7 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力 の切換えは周辺機能の出力許可ビットが優先されるので , DDR7 レジスタが "0" に設定 されているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になりま す。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力値 を知ることができます。 ● リセット時の動作 CPU がリセットされると , DDR7 レジスタの値はクリアされます。このとき , DDR7 レ ジスタの初期値は "0" ですが , 端子の初期値は "L" 出力になります。 PDR7 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR7 レジスタに出力データを書き込んでから , 対応する DDR7 レジスタに "1" を書き込んでください。 192 第 8 章 I/O ポート <注意事項> • 端子状態は , リセットにより "L" 出力に初期化されますが , この出力は PDR7/DDR7 レ ジスタに関係なく出力されます。この "L" 出力をクリアしなければ , リソース出力もし くは汎用ポートとして使用できません。リソース出力もしくは汎用ポートとして使用 する場合 , 事前に必ず DDR7 レジスタ (P70 ~ P77) へ "0" もしくは "1" を書き込んでく ださい。 • MB90V420G の場合 , CPU がリセットされると端子はハイインピーダンスになります。 ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , DDR7 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.9-4 に , ポート 7 の端子状態を示します。 表 8.9-4 ポート 7 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P70/PWM1P0 ~ P77/PWM2M1 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート ストップモード , タイムベース タイマモード (SPL=1) 入力遮断 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z:ハイインピーダンス 193 第 8 章 I/O ポート 8.10 ポート 8 ポート 8 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして の機能を中心に説明します。ポート 8 の構成 , 端子 , 端子のブロックダイヤグラム , レ ジスタを示します。 ■ ポート 8 の構成 ポート 8 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 周辺機能入出力端子 (P80/PWM1P2 ~ P87/PWM2M3) • ポート 8 データレジスタ (PDR8) • ポート 8 方向レジスタ (DDR8) ■ ポート 8 の端子 ポート 8 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし て使用する場合は , 汎用入出力ポートとしては使用できません。 表 8.10-1 にポート 8 の 端子を示します。 表 8.10-1 ポート 8 の端子 入出力形式 ポート名 ポート 8 端子名 ポート機能 P80/PWM1P2 P80 PWM1P2 P81/PWM1M2 P81 PWM1M2 P82/PWM2P2 P82 PWM2P2 P83/PWM2M2 P83 PWM2M2 P84/PWM1P3 P84 P85/PWM1M3 P85 PWM1M3 P86/PWM2P3 P86 PWM2P3 P87/PWM2M3 P87 PWM2M3 汎用 入出力 入力 出力 回路 形式 CMOS ( ヒステリシス ) (Automotive レベル *) CMOS H 周辺機能 PWM1P3 ステッピング モータコント ローラ *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 194 第 8 章 I/O ポート ■ ポート 8 の端子のブロックダイヤグラム 図 8.10-1 に , ポート 8 の端子のブロックダイヤグラムを示します。 図 8.10-1 ポート 8 の端子のブロックダイヤグラム 周辺機能出力 PDR (ポートデータレジスタ) 周辺機能出力許可 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) RST 周辺機能の出力許可ビットを許可すると, DDR8レジスタの値にかかわらず強制的に周 辺機能の出力端子となります。 ■ ポート 8 のレジスタ ポート 8 のレジスタには , PDR8 および DDR8 があります。各レジスタを構成するビッ トは , ポート 8 の端子に 1 対 1 で対応しています。表 8.10-2 に , ポート 8 のレジスタと 端子の対応を示します。 表 8.10-2 ポート 8 のレジスタと端子の対応 ポート名 ポート 8 関連するレジスタのビットと対応する端子 PDR8, DDR8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P87 P86 P85 P84 P83 P82 P81 P80 195 第 8 章 I/O ポート ポート 8 のレジスタ (PDR8, DDR8) 8.10.1 ポート 8 のレジスタについて説明します。 ■ ポート 8 のレジスタの機能 ● ポート 8 データレジスタ (PDR8) PDR8 レジスタは , 端子の状態を示します。 ● ポート 8 方向レジスタ (DDR8) DDR8 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが 許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子となりま す。 表 8.10-3 ポート 8 のレジスタの機能 レジスタ名 ポート 8 データ レジスタ (PDR8) ポート 8 方向 レジスタ (DDR8) データ 読出し時 書込み時 0 端子状態が "L" レベル 出力ラッチに "0" を設定 し , 出力ポート時は端子に "L" レベルを出力する 1 端子状態が "H" レベル 出力ラッチに "1" を設定 し , 出力ポート時は端子に "H" レベルを出力する 0 方向ラッチ が "0" 出力バッファを "OFF" し , 入力ポートにする 1 方向ラッチ が "1" 出力バッファを "ON" し , 出力ポートにする R/W:リード / ライト 可能 X :不定値 196 R/W アドレス 初期値 R/W 000008H XXXXXXXXB R/W 000018H 00000000B 第 8 章 I/O ポート ポート 8 の動作説明 8.10.2 ポート 8 の動作を説明します。 ■ ポート 8 の動作 ● 出力ポート時の動作 対応する DDR8 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR8 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR8 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタを出力にセットしてください。 ● 入力ポート時の動作 対応する DDR8 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR8 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR8 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力 の切換えは周辺機能の出力許可ビットが優先されるので , DDR8 レジスタに "0" が書き 込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になり ます。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力 値を知ることができます。 ● リセット時の動作 CPU がリセットされると , DDR8 レジスタの値はクリアされます。このとき , DDR8 レ ジスタの初期値は "0" ですが , 端子の初期値は "L" 出力になります。 PDR8 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR8 レジスタに出力データを書き込んでから , 対応する DDR8 レジスタに "1" を書き込んでください。 197 第 8 章 I/O ポート <注意事項> • 端子状態は , リセットにより "L" 出力に初期化されますが , この出力は PDR8/DDR8 レ ジスタに関係なく出力されます。この "L" 出力をクリアしなければ , リソース出力もし くは汎用ポートとして使用できません。リソース出力もしくは汎用ポートとして使用 する場合 , 事前に必ず DDR8 レジスタ (P80 ~ P87) へ "0" もしくは "1" を書き込んでく ださい。 • MB90V420G の場合 , CPU がリセットされると端子はハイインピーダンスになります。 ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , DDR8 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.10-4 に , ポート 8 の端子状態を示します。 表 8.10-4 ポート 8 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P80/PWM1P2 ~ P87/PWM2M3 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート ストップモード , タイムベース タイマモード (SPL=1) 入力遮断 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z :ハイインピーダンス 198 第 8 章 I/O ポート 8.11 ポート 9 ポート 9 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして の機能を中心に説明します。ポート 9 の構成 , 端子 , 端子のブロックダイヤグラム , レ ジスタを示します。 ■ ポート 9 の構成 ポート 9 は , 次の 3 つの要素から構成されます。 • 汎用入出力端子 / 周辺機能入出力端子 (P90/SEG22, P91/SEG23) • ポート 9 データレジスタ (PDR9) • ポート 9 方向レジスタ (DDR9) ■ ポート 9 の端子 ポート 9 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし て使用する場合は , 汎用入出力ポートとしては使用できません。 表 8.11-1 にポート 9 の 端子を示します。 表 8.11-1 ポート 9 の端子 入出力形式 ポート名 端子名 ポート機能 入力 ポート 9 P90/SEG22 P90 P91/SEG23 P91 汎用 入出力 出力 回路 形式 CMOS E 周辺機能 SEG22 SEG23 LCD コント ローラ CMOS ( ヒステリシス ) (Automotive レベル *) *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 <注意事項> 回路形式については「1.7 入出力回路形式」を参照してください。 199 第 8 章 I/O ポート ■ ポート 9 の端子のブロックダイヤグラム 図 8.11-1 に , ポート 9 の端子のブロックダイヤグラムを示します。 図 8.11-1 ポート 9 の端子のブロックダイヤグラム 周辺機能出力 PDR (ポートデータレジスタ) 周辺機能出力許可 PDRリード 内部データバス 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御(SPL=1) またはLCD出力許可 周辺機能の出力許可ビットを許可すると, DDR9レジスタの値にかかわらず強制的に周 辺機能の出力端子となります。 ■ ポート 9 のレジスタ ポート 9 のレジスタには , PDR9 および DDR9 があります。各レジスタを構成するビッ トは , ポート 9 の端子に 1 対 1 で対応しています。表 8.11-2 に , ポート 9 のレジスタと 端子の対応を示します。 表 8.11-2 ポート 9 のレジスタと端子の対応 ポート名 ポート 9 200 関連するレジスタのビットと対応する端子 PDR9, DDR9 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 - - - - - - P91 P90 第 8 章 I/O ポート ポート 9 のレジスタ (PDR9, DDR9) 8.11.1 ポート 9 のレジスタについて説明します。 ■ ポート 9 のレジスタの機能 ● ポート 9 データレジスタ (PDR9) PDR9 レジスタは , 端子の状態を示します。 ● ポート 9 方向レジスタ (DDR9) DDR9 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対 応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな ります。 <注意事項> 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが 許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子となりま す。 表 8.11-3 に , ポート 9 のレジスタの機能を示します。 表 8.11-3 ポート 9 のレジスタの機能 レジスタ名 ポート 9 データ レジスタ (PDR9) ポート 9 方向 レジスタ (DDR9) データ 読出し時 書込み時 端子状態が "L" レベル 出力ラッチに "0" を設定し , 出力ポート時は端子に "L" レベルを出力する 1 端子状態が "H" レベル 出力ラッチに "1" を設定し , 出力ポート時は端子に "H" レベルを出力する 0 方向ラッチ が "0" 出力バッファを "OFF" し , 入力ポートにする 1 方向ラッチ が "1" 出力バッファを "ON" し , 出力ポートにする 0 R/W アドレス 初期値 R/W 000009H ------XXB R/W 000019H ------00B R/W:リード / ライト 可能 X :不定値 - :未定義 201 第 8 章 I/O ポート ポート 9 の動作説明 8.11.2 ポート 9 の動作を説明します。 ■ ポート 9 の動作 ● 出力ポート時の動作 対応する DDR9 レジスタのビットに "1" を書き込むと , 出力ポートになります。 出力ポート時に PDR9 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ が保持され , そのまま端子に出力されます。 PDR9 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま す。 <注意事項> ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使 用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入 力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから DDR レジスタに "1" を書き込んでください。 ● 入力ポート時の動作 対応する DDR9 レジスタのビットに "0" を書き込むと , 入力ポートになります。 入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。 PDR9 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが , 端子には出力されません。 PDR9 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。 ● 周辺機能出力時の動作 周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力 の切換えは周辺機能の出力許可ビットが優先されるので , DDR9 レジスタに "0" が書き 込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になり ます。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力 値を知ることができます。 ● リセット時の動作 CPU がリセットされると , DDR9 レジスタの値はクリアされます。このため , 出力バッ ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。 PDR9 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用 する場合 , PDR9 レジスタに出力データを書き込んでから , 対応する DDR9 レジスタに "1" を書き込んでください。 202 第 8 章 I/O ポート ● ストップ , タイムベースタイマモード時の動作 ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると , 端子はハイインピーダンスになります。これは , DDR9 レジスタの値に関係なく , 強制 的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。 表 8.11-4 に , ポート 9 の端子状態を示します。 表 8.11-4 ポート 9 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベース タイマモード (SPL=0) P90/SEG22, P91/SEG23 汎用入出力 ポート 汎用入出力 ポート 汎用入出力 ポート ストップモード , タイムベース タイマモード (SPL=1) 入力遮断 / 出力 Hi-Z SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL) Hi-Z :ハイインピーダンス 203 第 8 章 I/O ポート 8.12 I/O ポートのプログラム例 I/O ポートを使ったプログラム例を示します。 ■ I/O ポートのプログラム例 ● 処理仕様 ポート 0, 1 で , 7 セグメント (Dp を含めると 8 セグメント ) LED をすべて点灯します。 P00 端子が LED のアノードコモン端子に , P10 ~ P17 端子がセグメント端子に対応し ます。 図 8.12-1 に , 8 セグメント LED 接続例を示します。 図 8.12-1 8 セグメント LED 接続例 MB90420G/MB90425Gシリーズ P10 P07 P06 P05 P04 P03 P02 P01 P00 【コーディング例】 PDR0 EQU 000000H PDR1 EQU 000001H DDR0 EQU 000010H DDR1 EQU 000011H ;---------- メインプログラム ------------------------------------------------CODE CSEG START: ; 初期設定済み MOV I:PDR1, #00000000B ; P10 を "L" レベルに設定 , #XXXXXXX0B MOV I:DDR1, #11111111B ; ポート 1 を全ビット出力に設定 MOV I:PDR0, #11111111B ; ポート 0 は全ビット "1" とする MOV I:DDR0, #11111111B ; ポート 0 を全ビット出力に設定 CODE ENDS ;--------------------------------------------------------------------------END START 204 第9章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) この章では , ウォッチドッグタイマ / タイムベース タイマ / 時計タイマ ( サブクロック用 ) の機能と動 作について説明します。 9.1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの概要 9.2 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム 9.3 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 9.4 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの動作 9.5 ウォッチドッグタイマ / タイムベースタイマの 使用上の注意 9.6 ウォッチドッグタイマ / タイムベースタイマの プログラム例 205 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 9.1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの概要 ウォッチドッグタイマ , タイムベースタイマ , 時計タイマの回路構成は , それぞれ以 下のとおりです。 • ウォッチドッグタイマ:ウォッチドッグカウンタ , コントロールレジスタ , ウォッチドッグリセット回路 • タイムベースタイマ:18 ビットのタイマ , インターバルな割込みを制御する回路 • 時計タイマ:15 ビットのタイマ , インターバルな割込みを制御する回路 ■ ウォッチドッグタイマ機能 ウォッチドッグタイマは , 18 ビットのタイムベースタイマまたは 15 ビットの時計タイ マの桁上り信号をクロックソースとする 2 ビットのウォッチドッグカウンタ , コント ロールレジスタ , ウォッチドッグリセット制御部から構成されています。起動後 , 一定 時間内にクリアされないと , CPU をリセットします。 ■ タイムベースタイマ機能 タイムベースタイマは , メインクロック ( 発振クロックの 2 分周 ) に同期してカウント アップする 18 ビットのフリーランカウンタ ( タイムベースカウンタ ) で , 4 種類のイン ターバル時間を選択できるインターバルタイマ機能があります。また , 発振安定待ち時 間のタイマ出力やウォッチドッグタイマなどの動作クロックを供給する機能もありま す。なお , タイムベースタイマは , CKSCR 中の MCS ビットおよび SCS ビットと関係 なく , メインクロックを使用します。 ■ 時計タイマ機能 時計タイマは , ウォッチドッグタイマのクロックソース , サブクロックの発振安定待ち 時間のためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり ます。なお , 時計タイマは , CKSCR 中の MCS ビットおよび SCS ビットと関係なく , サ ブクロックを使用します。 206 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム 9.2 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラムを 示します。 ■ ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム 図 9.2-1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム メインクロック TBTC TBC1 セレクタ TBC0 TBR TBIE AND Q TBOF 2 11 クロック入力 2 13 15 2 タイムベースタイマ 2 18 TBTRES 211 2 13 2 15 2 18 S R タイムベース 割込み WDTC 2ビットカウンタ WT1 セレクタ WT0 CLR OF ウォッチドッグ リセット CLR 発生回路 WTE WDGRST 内部リセット 発生回路へ WTC 2 SCE AND Q SCM パワーオンリセット, サブクロック停止 S R WTC2 ~ F MC-16LXバス WDCS セレクタ WTC0 WTR WTIE WTOF 時計 割込み AND Q S R 28 9 210 2 11 2 212 13 214 2 15 2 WTRES 210 2 13 214 215 時計タイマ クロック入力 サブクロック WDTC PONR パワーオン発生から - WRST ERST RST端子 SRST LPMCRレジスタの RSTビットから 207 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 9.3 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧について説 明します。 ■ ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 図 9.3-1 にウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧を 示します。 図 9.3-1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 ウォッチドッグタイマ制御レジスタ アドレス: 0000A8H 7 6 PONR - 読出し / 書込み→ (R) (-) (R) 初期値→ (X) (-) (X) 5 4 3 2 1 0 SRST WTE WT1 WT0 (R) (R) (W) (W) (W) (X) (X) (1) (1) (1) WRST EAST ←ビット番号 WDTC タイムベースタイマ制御レジスタ アドレス: 0000A9H 7 6 5 4 3 2 1 0 予約 - - TBIE TBOF TBR TBC1 TBC0 読出し / 書込み→ (-) (-) (-) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値→ (1) (-) (-) (0) (0) (1) (0) (0) 2 1 0 ←ビット番号 TBTC ウォッチドッグタイマ制御レジスタ アドレス: 0000AAH 208 7 6 5 4 3 WDCS SCE WTIE WTOF WTR WTC2 WTC1 WTC0 読出し / 書込み→ (R/W) (R) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値→ (0) (0) (0) (1) (0) (0) (0) (1) ←ビット番号 WTC 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ウォッチドッグタイマ制御レジスタ (WDTC) 9.3.1 ウォッチドッグタイマ制御レジスタ (WDTC) は , ウォッチドッグタイマ起動 , クリ アおよびリセット要因の表示を行うレジスタです。 ■ ウォッチドッグタイマ制御レジスタ (WDTC) のビット構成 図 9.3-2 にウォッチドッグタイマ制御レジスタ (WDTC) のビット構成を示します。 図 9.3-2 ウォッチドッグタイマ制御レジスタ (WDTC) のビット構成 アドレス: 0000A8H 7 6 PONR - 読出し / 書込み→ (R) (-) (R) 初期値→ (X) (-) (X) 5 4 3 2 1 0 SRST WTE WT1 WT0 (R) (R) (W) (W) (W) (X) (X) (1) (1) (1) WRST EAST ←ビット番号 WDTC <注意事項> リードモディファイライト系命令によるアクセスは誤動作を引き起こしますので , これら の命令でアクセスしないでください。 【bit7 ,bit5 ~ bit3】PONR, WRST, ERST, SRST PONR, WRST, ERST, SRST は , リセットの要因を示すフラグです。各リセットにより 表 9.3-1 に示すように設定されます。WDTC レジスタのリード動作後に , 全ビットがク リアされます。 これらのビットは , 読出し専用のレジスタです。 表 9.3-1 PONR, WRST, ERST, SRST ( リセットの要因ビット ) リセット要因 PONR WRST ERST SRST パワーオン 1 - - ウォッチドッグタイマ △ - 1 △ △ 外部端子 (RST 入力 ) △ △ 1 △ RST ビット ( ソフトウェアリセット ) △ △ △ 1 △:前の値を保持します。 【bit2】WTE WTE は , ウォッチドッグタイマが停止状態のときに "0" を書き込むことによりウォッ チドッグタイマを動作状態にします。2 回目以降の "0" の書込みではウォッチドッグタ イマのカウンタをクリアします。"1" の書込みは何の操作もしません。 ウォッチドッグタイマは , 各種リセット要因が発生すると停止状態となります。読出し 時は "1" が読み出されます。 209 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 【bit1, bit0】WT1, WT0 WT1, WT0 は , ウォッチドッグタイマのインターバル時間を選択するビットです。 ウォッチドッグタイマ起動時に書き込まれたデータのみが有効です。ウォッチドッグ 起動時以外の書込みデータは無視されます。書込みのみが可能なビットです。 時計タイマ制御レジスタ WTC の WDCS ビットと低消費電力制御回路のクロック選択 レジスタ LPMCR の SCM ビットの論理積 (AND) の結果と , WT1, WT0 の 3 ビットで ウォッチドッグタイマに入力するクロックを選択します。 すなわち , WDCS を "1" に設定した場合 , マシンクロックとしてメインクロックおよび PLL クロックを選択しているときにはタイムベースタイマの出力を , サブクロックを 選択しているときには時計タイマの出力を , それぞれウォッチドッグタイマの入力ク ロックとして選択することができます。 WT1, WT0 ビットによるインターバル時間の設定を , 表 9.3-2 に示します。 表 9.3-2 WT1, WT0 ( インターバル時間選択ビット ) インターバル時間 ( 原発振 4MHz) WDCS・SCM WT1 WT0 最小 最大 * 1 0 0 約 3.58ms 約 4.61ms 1 0 1 約 14.33ms 約 18.43ms 1 1 0 約 57.23ms 約 73.73ms 1 1 1 約 458.75ms 約 589.82ms 0 0 0 約 436ms 約 563ms 0 0 1 約 3.50s 約 4.50s 0 1 0 約 7.0s 約 9.0s 0 1 1 約 14.0s 約 18.0s *:インターバルの最大値は , ウォッチドッグ動作中にタイムベースタイマまたは時計タイマ がリセットされない場合の値です。 210 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) タイムベースタイマ制御レジスタ (TBTC) 9.3.2 タイムベースタイマ制御レジスタ (TBTC) では , タイムベースタイマの割込みを制御 し , タイムベースカウンタをクリアすることができます。 ■ タイムベースタイマ制御レジスタのビット構成 (TBTC) 図 9.3-3 にタイムベースタイマ制御レジスタ (TBTC) のビット構成を示します。 図 9.3-3 タイムベースタイマ制御レジスタ (TBTC) のビット構成 アドレス: 0000A9H 予約 - 読出し / 書込み→ (-) (-) 初期値→ (1) (-) (-) 7 6 5 4 3 2 1 0 - TBIE TBOF TBR TBC1 TBC0 (-) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (1) (0) (0) ←ビット番号 TBTC 【bit15】予約 (Reserved) bit15 は , 予約ビットです。必ず "1" に設定してください。 【bit12】TBIE TBIE は , タイムベースタイマによるインターバル割込みを許可するビットです。"1" の とき割込み許可 , "0" のとき割込みを禁止します。リセットでクリアされます。読み書 き可能なビットです。 【bit11】TBOF TBOF は , タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のときに TBOF が "1" になると , 割込み要求を発生します。TBC1, TBC0 ビットで設定されたイ ンターバルごとに "1" にセットされます。 TBOF ビットは , 以下の条件でクリアされます。 • "0" の書込み • メインストップモードへの遷移 • PLL ストップモードへの遷移 • サブクロックモードからメインクロックモードへの遷移 • サブクロックモードから PLL クロックモードへの遷移 • メインクロックモードから PLL クロックモードへの遷移 • TBR ビットへの "0" 書込み • リセット "1" の書込みは意味がありません。 リードモディファイライト系命令における読出しの場合には , "1" が読み出されます。 <注意事項> TBOF ビットをクリアする場合は , TBIE ビットまたはプロセッサステータス (PS) のイン タラプトレベルマスクレジスタ (ILM) で , タイムベースタイマ割込みを禁止してから行っ てください。 211 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 【bit10】TBR TBR は , タイムベースタイマのカウンタを全ビット "0" にクリアするビットです。"0" を書き込むことによりタイムベースカウンタをクリアします。"1" の書込みは意味があ りません。読出しの場合には "1" が読み出されます。 【bit9, bit8】TBC1, TBC0 TBC1, TBC0 は , タイムベースタイマのインターバルを設定するビットです。 リセットにより "00B" に初期化されます。読み書き可能なビットです。 表 9.3-3 TBC1, TBC0 のインターバル時間とサイクル数 TBC1 TBC0 原発振 4MHz の場合のインターバル時間 212 1.024 ms 発振クロック ( 原発振 ) サイクル数 212 サイクル 0 0 0 1 4.096 ms 214 サイクル 1 0 16.384 ms 216 サイクル 1 1 131.072 ms 219 サイクル 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 時計タイマ制御レジスタ (WTC) 9.3.3 時計タイマ制御レジスタ (WTC) は , クロック信号の選択 , 割込みやインターバルの 制御 , カウンタのクリアを行います。 時計タイマは , MB90F423GC, MB90F428GC, MB90423GC, MB90427GC, MB90428GC のみで使用できる機能です。 ■ 時計タイマ制御レジスタ (WTC) 図 9.3-4 に時計タイマ制御レジスタ (WTC) のビット構成を示します。 図 9.3-4 時計タイマ制御レジスタのビット構成 アドレス: 0000AAH 7 6 5 4 3 WDCS SCE WTIE WTOF WTR WTC2 WTC1 WTC0 読出し / 書込み→ (R/W) (R) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値→ (0) (0) (0) (1) (0) (0) (0) (1) 2 1 0 ←ビット番号 WTC 【bit7】WDCS WDCS ビットは , ウォッチドッグタイマのクロックソースを選択するビットです。"0" の 場合 , 時計タイマのクロック出力 , "1" の場合タイムベースタイマのクロック出力を , ウォッチドッグタイマのクロックソースとして選択します。 サブクロックモードの場合 , 必ず "0" に設定して , 時計タイマの出力を選択してくださ い。"1" に設定した状態で , サブクロックモードへ移行した場合 , ウォッチドッグタイ マは停止します。リセットにより "1" に初期化されます。 <注意事項> WDCS を変更した場合は , タイムベースタイマと時計タイマが非同期で動作しているため , ウォッチドッグカウントが "1" カウント短くなる可能性があります。このため , WDCS を変 更する場合は , クロックモードを変更する直前でウォッチドッグタイマをいったんクリア してください。 【bit6】SCE サブクロックの発振安定待ち時間が経過したことを示すビットです。このビットが "0" のとき , 発振安定時間が現在進行中であることを示しています。発振安定時間は , 214 サイクル ( サブクロック ) 固定です。パワーオンリセット時およびストップ時は "0" に 初期化されます。 【bit5】WTIE WTIE ビットは , 時計タイマによるインターバル割込みを許可するビットです。この ビットが "1" のとき割込み許可 , "0" のとき割込みを禁止します。リセットにより "0" に初期化されます。読み書き可能なビットです。 213 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 【bit4】WTOF WTOF ビットは , 時計タイマの割込み要求フラグです。WTIE ビットが "1" のとき , WTOF を "1" に設定すると割込み要求が発生します。WTOF ビットは , WTC2 ~ WTC0 ビットで設定したインターバルごとに "1" にセットされます。 WTOF ビットは , 以下の条件でクリアされます。 • "0" の書込み • ストップモードへの遷移 • リセット "1" の書込みは何の意味も持ちません。 リードモディファイライト系命令による読出しの場合には , 常に "1" が読み出されま す。 【bit3】WTR WTR ビットは , 時計タイマのカウンタを全ビット "0" クリアするビットです。WTR ビットに "0" を書き込むと , クロックカウンタをクリアします。"1" の書込みは何の意 味も持ちません。常に "1" が読み出されます。 【bit2, bit1, bit0】WTC2, WTC1, WTC0 WTC2, WTC1, WTC0 は , 時計タイマのインターバルを設定するビットです。インター バルの設定を表 9.3-4 に示します。リセットにより WTC2 ~ WTC0 ビットは "000B" に 初期化されます。読み書き可能なビットです。 WTC2 ~ WTC0 ビットを設定する場合は , WTOF ビットも同時に "0" を設定してくだ さい。 表 9.3-4 時計タイマインターバルの選択 WTC2 WTC1 WTC0 インターバル時間* 0 0 0 31.25 ms 0 0 1 62.5 ms 0 1 0 125 ms 0 1 1 250 ms 1 0 0 500 ms 1 0 1 1.00 s 1 1 0 2.00 s 1 1 1 4.00 s *:インターバル時間は , サブクロックが 32.768kHz の場合の値です。 214 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの動作 9.4 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの動作について説明しま す。 ■ 動作 ● ウォッチドッグタイマ ウォッチドッグタイマは , プログラムの暴走などにより , WDTC レジスタの WTE ビッ トへ "0" の書込みが定められた時間内に行われなかった場合 , ウォッチドッグタイマか らリセット要求が発生します。 ● タイムベースタイマ タイムベースタイマは , ウォッチドッグタイマのクロックソース , メインクロックおよ び PLL クロックの発振安定時間待ちのためのタイマ機能のほか , 一定周期で割込みを 発生するインターバル割込み機能があります。 ● 時計タイマ 時計タイマには , ウォッチドッグタイマのクロックソース , サブクロックの発振安定時 間待ちのためのタイマ , 一定周期で割込みを発生するインターバル割込み機能があり ます。 215 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 9.4.1 ウォッチドッグタイマの動作 ウォッチドッグタイマは , プログラムの暴走などにより , WDTC レジスタの WTE ビットへの "0" の書込みが定められた時間内に行われなかった場合 , ウォッチドッ グタイマよりリセット要求が発生します。 ■ ウォッチドッグタイマの起動方法 ウォッチドッグタイマの起動は , ウォッチドッグタイマの停止中に WDTC レジスタの WTE ビットに "0" を書き込むことによって行われます。このとき , 同時にウォッチドッ グタイマのリセット発生のインターバルを WT1, WT0 ビットにより設定します。イン ターバルの設定は , この起動時のデータのみが有効となります。 ■ ウォッチドッグタイマリセットの阻止 ウォッチドッグタイマが起動されると , プログラム中で定期的に 2 ビットのウォッチ ドッグカウンタをクリアする必要があります。具体的には , WDTC レジスタの WTE ビットに定期的に "0" を書き込む必要があります。ウォッチドッグカウンタは , タイム ベースタイマの桁上り信号をクロックソースとする 2 ビットのカウンタにより構成さ れています。したがって , タイムベースタイマがクリアされると , ウォッチドッグリ セットの発生時間が設定より長くなることがあります。 図 9.4-1 ウォッチドッグタイマの動作 タイムベース ウォッチドッグ 00 01 10 00 01 10 11 00 WTEライト ウォッチドッグ起動 ウォッチドッグクリア ウォッチドッグリセット 発生 ■ ウォッチドッグ停止 ウォッチドッグタイマは , 各種リセット要因により停止します。 ■ ウォッチドッグタイマのクリア ウォッチドッグタイマは , WTE ビットへの書込みによるクリアのほかに , リセットの 発生 , スリープモード / ストップモード / 時計モードへの遷移によってクリアされます。 時計モード中は , ウォッチドッグタイマのカウンタはクリアされ , カウントを停止しま す。 ■ リセット要因の確認 リセット後ウォッチドッグタイマ制御レジスタ (WDTC) の PONR, WRST, ERST, SRST ビットをチェックすることで , リセット要因を知ることができます。 216 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ■ ウォッチドッグタイマのインターバル時間 図 9.4-2 に , ウォッチドッグタイマのクリアのタイミングとインターバル時間の関係を 示します。インターバル時間は , ウォッチドッグタイマをクリアするタイミングによっ て変化し , カウントクロック周期の 3.5 ~ 4.5 倍の時間を要します。 図 9.4-2 ウォッチドッグタイマのクリアタイミングとインターバル時間 [WDGタイマブロック図] 2ビットカウンタ クロック セレクタ a 2分周回路 b 2分周回路 c リセット回路 d リセット 信号 カウント許可とクリア WTEビット カウント許可 出力回路 [最小インターバル時間]カウントクロックの立上り直前にWTEビットをクリアした場合 カウントスタート カウンタクリア カウントクロックa 2分周値b 2分周値c カウント許可 リセット信号d 7 ×(カウントクロック周期/2) WTEビットクリア ウォッチドッグリセット発生 [最大インターバル時間]カウントクロックの立上り直後にWTEビットをクリアした場合 カウンタクリア カウントスタート カウントクロックa 2分周値b 2分周値c カウント許可 リセット信号 9 ×(カウントクロック周期/2) WTEビットクリア ウォッチドッグリセット発生 217 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 9.4.2 タイムベースタイマの動作 タイムベースタイマは , ウォッチドッグタイマのクロックソース , メインクロックお よび PLL クロックの発振安定時間待ちのためのタイマ機能のほか , 一定周期で割込 みを発生するインターバル割込み機能をもっています。 ■ タイムベースタイマの動作 タイムベースタイマは , メインクロックをカウントする 18 ビットのカウンタにより構 成され , メインクロックが入力されている間 , 常にカウント動作を続けます。 タイムベースカウンタは , 以下の条件によってクリアされます。 • パワーオンリセット • メインストップモードへの遷移 • PLL ストップモードへの遷移 • メインクロックモードから PLL クロックモードへの遷移 • サブクロックモードからメインクロックモードへの遷移 • サブクロックモードから PLL クロックモードへの遷移 • TBTC レジスタの TBR ビットへの "0" 書込み タイムベースタイマの出力を使用している , ウォッチドッグタイマとインターバル割 込み機能は , タイムベースタイマのクリアに影響されます。 ■ インターバル割込み機能 タイムベースカウンタの桁上り信号により一定周期で割込みを発生します。TBTC レ ジスタのTBC1, TBC0ビットで設定されるインターバル時間ごとにTBOFフラグをセッ トします。このフラグのセットは , 最後にタイムベースタイマがクリアされた時間を基 準にして行われます。 メインクロックモードから PLL クロックモードに遷移した場合は , タイムベースタイ マは PLL クロックの発振安定待ちのタイマとして使用されるため , いったんタイム ベースタイマのクリアが行われます。 ストップモードへ遷移すると , タイムベースタイマは復帰時の発振安定時間待ちのタ イマとして使用されるので TBOF フラグは , モード遷移と同時にクリアされます。 ■ タイムベースタイマの割込み タイムベースタイマカウンタが内部カウントクロックでカウントアップし , 選択され たインターバルタイマ用のビットがオーバフローすると , 割込み要求フラグビット (TBTC レジスタの TBOF ビット ) が "1" にセットされます。そのとき , 割込み要求許可 ビットを許可していると (TBTC レジスタの TBIE=1) , CPU に割込み要求 (#35) が発生 します。割込み処理ルーチンで TBOF ビットに "0" を書き込み , 割込み要求をクリアし てください。なお , TBOF ビットは , TBIE ビットの値に関係なく , 指定したビットが オーバフローするとセットされます。 TBOF ビットが "1" のとき , TBIE ビットを禁止から許可 ("0" → "1") にすると , 直ちに 割込み要求が発生します。 218 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) <注意事項> 割込み要求フラグビット (TBTC:TBOF) をクリアするときには , TBIE ビットまたはプロ セッサステータス (PS) のインタラプトレベルマスクレジスタ (ILM) で , タイムベースタ イマ割込みを禁止してから行ってください。 ■ タイムベースタイマの割込みと EI2OS 表 9.4-1 に , タイムベースタイマの割込みと EI2OS を示します。 表 9.4-1 タイムベースタイマの割込みと EI2OS 割込みレベル設定レジスタ ベクタテーブルのアドレス 割込み番号 #35 (23H) レジスタ名 アドレス 下位 上位 バンク ICR12 0000BCH FFFF70H FFFF71H FFFF72H EI2OS × ×:使用不可 <注意事項> • ICR12 はタイムベースタイマ割込みと時計タイマ ( サブクロック用 ) 割込みで共通して います。 割込みは 2 つの用途に使用できますが , 割込みレベルは同一になります。 • タイムベースタイマでは , 拡張インテリジェント I/O サービス (EI2OS) は使用できませ ん。 219 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ■ 発振安定待ち時間用タイマ機能 タイムベースタイマは , メインクロックおよび PLL クロックの発振安定待ち時間用のタ イマとしても使用されます。発振安定待ち時間は , カウンタが "0" ( カウントクリア ) か らカウントアップし , 発振安定待ち時間用のビットがオーバフローするまでの時間とな ります。ただし , タイムベースタイマモードから PLL クロックモードへ復帰したときに は, タイムベースタイマカウンタがクリアされないため, カウント途中からの時間になり ます。 表 9.4-2 に, タイムベースカウンタのクリアと発振安定待ち時間について示します。 表 9.4-2 タイムベースタイマカウンタのクリア動作と発振安定待ち時間 カウンタ クリア TBOF クリア TBTC の TBR へ "0" 書込み ○ ○ パワーオンリセット ○ ○ メインクロック発振安定待ち時間 ○ ○ メインクロック発振安定待ち時間 サブストップモードの解除 × × サブクロック発振安定待ち時間 メインクロックモードから PLL クロック モードへの移行 (MCS=1 → 0) ○ ○ PLL クロック発振安定待ち時間 サブクロックモードからメインクロックモードへ の移行 (SCS=0 → 1) ○ ○ メインクロック発振安定待ち時間 サブクロックモードから PLL クロックモードへの 移行 (MCS=0, SCS=0 → 1) ○ ○ メインクロック発振安定待ち時間 タイムベースタイマモードの解除 × × なし スリープモードの解除 × × なし 動 作 メインストップモードの解除 PLL ストップモードの解除 ○:あり ×:なし 220 発振安定待ち時間 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 時計タイマの動作 9.4.3 時計タイマには , ウォッチドッグタイマのクロックソース , サブクロックの発振安定 時間待ちのためのタイマ , 一定周期で割込みを発生するインターバル割込み機能が あります。 ■ 時計タイマの動作 時計タイマは , サブクロックをカウントクロックとする 15 ビットのカウンタにより構 成されています。サブ原発振クロックが入力されている間 , 常にカウント動作を続けま す。時計タイマのクリアは , パワーオンリセット , ストップモードへの遷移および WTC レジスタ中の WTR ビットへの "0" の書込みにより行われます。 <注意事項> 時計タイマカウンタの出力を使用しているウォッチドッグタイマとインターバルタイマ には , 時計タイマカウンタのクリアの影響があります。 時計タイマ制御レジスタ (WTC) の時計タイマクリアビット (WTR) に "0" を設定して時計 タイマをクリアする場合は , WTC のオーバフロー割込み許可ビット (WTIE) に "0" を設定 し , 時計タイマの割込みを禁止した状態で行ってください。 また , 割込みを許可する前に , WTC のオーバフローフラグビット (WTOF) への "0" 設定に よる割込み要求のクリアを行ってください。 ■ 時計タイマのインターバル割込み機能 インターバル割込み機能は , 時計タイマの桁上り信号により一定周期で割込みを発生 します。WTC レジスタ中の WTC2 ~ WTC0 ビットで設定される通常のインターバル ごとに WTOF フラグをセットします。このフラグ設定のタイミングは , 最後に時計タ イマがクリアされた時間を基準にします。 ストップモードに遷移すると , 時計タイマは復帰時の発振安定時間待ちのタイマとし て使用されるので , WTOF フラグはモード遷移と同時にクリアされます。 ■ 時計タイマの割込みと EI2OS 表 9.4-3 に , 時計タイマの割込みと EI2OS を示します。 表 9.4-3 時計タイマの割込みと EI2OS 割込みレベル設定レジスタ ベクタテーブルのアドレス 割込み番号 #36 (24H) レジスタ名 アドレス 下位 上位 バンク ICR12 0000BCH FFFF6CH FFFF6DH FFFF6EH EI2OS × ×:使用不可 ■ ウォッチドッグタイマの動作クロックの設定 時計タイマ制御レジスタ (WTC) のウォッチドッグクロック選択ビット (WDCS) に よって , ウォッチドッグタイマのクロックソースを設定できます。 マシンクロックとしてサブクロックを使用する場合は , 必ず WDCS ビットを "0" に設定 して , 時計タイマの出力を選択してください。WDCS ビットを "1" に設定した状態で , サ ブクロックモードへ移行した場合は , ウォッチドッグタイマは停止します。 221 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 9.5 ウォッチドッグタイマ / タイムベースタイマの 使用上の注意 ウォッチドッグタイマ使用時の注意点 , タイムベースタイマ使用時の割込み要求の クリアおよびタイムベースタイマのクリアによる , 周辺機能への影響などの注意点 を示します。 ■ ウォッチドッグタイマの使用上の注意 ● ウォッチドッグタイマの停止 ウォッチドッグタイマはすべてのリセット要因で停止します。 ● インターバル時間 インターバル時間は , タイムベースタイマまたは時計タイマの桁上り信号をカウント クロックとしているため , タイムベースタイマまたは時計タイマをクリアすることに よって , ウォッチドッグタイマのインターバル時間が設定より長くなることがありま す。タイムベースタイマは , タイムベースタイマ制御レジスタ (TBTC) のタイムベース タイマカウンタクリアビット (TBR) への "0" 書込みのほか , メインクロックモードから PLL クロックモードへの遷移 , サブクロックモードからメインクロックモードへの遷 移 , サブクロックモードから PLL クロックモードへの遷移時にもクリアされますので ご注意ください。 ● インターバル時間の選択 インターバル時間は , ウォッチドッグタイマの起動時に設定が可能です。起動時以外の 書込みデータは無視されます。 ● プログラム作成上の注意 メインループの中で , ウォッチドッグタイマを繰り返しクリアするようなプログラム を作成する場合 , 割込み処理を含めたメインループの処理時間が , ウォッチドッグタイ マのインターバル時間の最小時間以下となる必要があります。 ● タイムベースタイマモード中のウォッチドッグタイマ動作 タイムベースタイマモード中 , タイムベースタイマは動作していますが , ウォッチドッ グタイマは停止します。 222 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ■ タイムベースタイマの使用上の注意 ● 割込み要求のクリア タイムベースタイマ制御レジスタの TBOF ビットをクリアするときには , TBIE ビット またはプロセッサステータス (PS) のインタラプトレベルマスクレジスタ (ILM) でタ イムベースタイマ割込みがマスクされている状態で行うようにしてください。 ● タイムベースタイマのクリアによる影響 タイムベースタイマのカウンタのクリアで , 次の動作は影響を受けます。 • タイムベースタイマでインターバルタイマ機能 ( インターバル割込み ) を使用して いるとき ● 発振安定待ち時間用タイマとしての使用 電源投入時 , メインストップモード中では , メインクロックの原発振が停止しているた め , 発振器が動作を開始した後タイムベースタイマが供給する動作クロックを使用し てメインクロックの発振安定待ち時間をとります。メインクロックの発振器 ( クロッ ク発生部) に接続する振動子の種類によって , 適切な発振安定待ち時間を選択する必要 があります。詳細については , 「5.5 発振安定待ち時間」を参照してください。 ● タイムベースタイマからクロックを供給される周辺機能に対する注意 メインクロック原発振が停止するモードでは , カウンタはクリアされ , タイムベースタ イマは動作を停止します。また , タイムベースタイマから供給されるクロックは , タイ ムベースタイマのカウンタがクリアされると , 初期状態からの供給となるため , "H" レ ベルが短くまたは "L" レベルが最大で 1/2 周期長くなることがあります。ウォッチドッ グタイマ用のクロックも初期状態からの供給となりますが , ウォッチドッグタイマの カウンタが同時にクリアされるためウォッチドッグタイマは正常な周期で動作しま す。 223 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ■ タイムベースタイマの動作 次の状態の動作を図 9.5-1 に示します。 • パワーオンリセットが発生したとき • インターバルタイマ機能の動作中にスリープモードへ移行したとき • ストップモードへ移行したとき • カウンタクリアの要求があったとき ストップモードへの移行でタイムベースタイマはクリアされ , 動作を停止します。ス トップモードからの復帰時にタイムベースタイマで発振安定待ち時間をカウントしま す。 図 9.5-1 タイムベースタイマの動作 カウンタ値 3FFFFH ストップモードへの 移行によるクリア 発振安定待ち オーバフロー 00000H CPU動作開始 パワーオンリセット (オプション) インターバル周期 (TBTC:TBC1, TBC0=11H) カウンタクリア (TBTC:TBR=0) 割込み処理ルーチンでクリア TBOFビット TBIEビット SLPビット (LPMCRレジスタ) スリープ インターバル割込みスリープ解除 ストップ STPビット (LPMCRレジスタ) 外部割込みによるストップ解除 タイムベースタイマ制御レジスタのインターバル時間選択ビット(TBTC:TBC1, TBC0)に "11B"を設定した場合(219/HCLK)。 :発振安定待ち時間を示します。 224 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) 9.6 ウォッチドッグタイマ / タイムベースタイマの プログラム例 ウォッチドッグタイマ / タイムベースタイマのプログラム例を示します。 ■ ウォッチドッグタイマのプログラム例 ● 処理仕様 メインプログラムのループの中で毎回ウォッチドッグタイマをクリアします。 メインループは, ウォッチドッグタイマの最小インターバル時間内に1周する必要があ ります。 【コーディング例】 WDTC EQU 0000A8H ; ウォッチドッグタイマ制御レジスタ WTE EQU WDTC:2 ; ウォッチドッグ制御ビット ;---------- メインプログラム ------------------------------------------------CODE CSEG START: ; : ;スタックポインタ(SP)などは初期化済みとする WDG_START: MOV WDTC, #00000011B ; ウォッチドッグタイマの起動 ; インターバル時間 221 ± 218 サイクルを選択 ;---------- メインループ ----------------------------------------------------MAIN: CLRB I:WTE ; ウォッチドッグタイマのクリア ; : 定期的に 2 ビットのクリア ; ユーザ処理 ; : JMP MAIN ; ウォッチドッグタイマのインターバル時間 ; より短い時間でループする CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 225 第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 ) ■ タイムベースタイマのプログラム例 ● 処理仕様 212/HCLK (HCLK:発振クロック ) のインターバル割込みを繰り返し発生します。この ときのインターバル時間は , 約 1.0ms (4MHz 動作時 ) となります。 【コーディング例】 ICR12 EQU 0000BCH ; タイムベースタイマ用割込み制御レジスタ TBTC EQU 0000A9H ; タイマベースタイマ制御レジスタ TBOF EQU TBTC:3 ; 割込み要求フラグビット ;---------- メインプログラム ------------------------------------------------CODE CSEG START: ; : ; スタックポインタ (SP) などは初期化済みとする AND CCR, #0BFH ; 割込みディセーブル MOV I:ICR12, #00H ; 割込みレベル 0( 最強 ) MOV I:TBTC, #10010000B ; 上位 3 ビットは固定 ; 割込み許可 , TBOF クリア ; カウンタクリア ; インターバル時間 212/HCLK 選択 ;PS 内 ILM をレベル 7 に設定 ; 割込みイネーブル ; 無限ループ MOV ILM, #07H OR CCR, #40H LOOP: MOV A, #00H MOV A, #01H BRA LOOP ;---------- 割込みプログラム ------------------------------------------------WARI: CLRB I:TBOF ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FF70H ; 割込み #35(23H) にベクタを設定 DSL WARI ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 226 第 10 章 インプットキャプチャ この章では , インプットキャプチャの動作について 説明します。 10.1 インプットキャプチャの概要 10.2 インプットキャプチャのブロックダイヤグラム 10.3 インプットキャプチャのレジスタ一覧 10.4 動作説明 227 第 10 章 インプットキャプチャ インプットキャプチャの概要 10.1 インプットキャプチャユニットは , 16 ビットフリーランタイマ 1 本 , 16 ビットイン プットキャプチャ 4 本から構成されています。 ■ 構成 ● インプットキャプチャ ( × 4) インプットキャプチャは独立した 4 本の外部入力端子と対応したキャプチャレジスタ , コントロールレジスタにより構成されています。外部入力端子から入力された信号の 任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ に保持し , 同時に割込みを発生することができます。 外部入力信号の有効エッジ ( 立上りエッジ , 立下りエッジ , 両エッジ ) を選択できます。 4 本のインプットキャプチャは独立して動作ができます。 割込みは , 外部入力信号の有効エッジにより発生させることができます。 ● 16 ビットフリーランタイマ ( × 1) 16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールレジスタ , 16 ビットコンペアクリアレジスタ , プリスケーラから構成されています。本カウンタの出 力値はインプットキャプチャの基本時間 ( ベースタイマ ) として使用されます。 カウンタ動作クロックは 8 種類から選択できます。内部クロックは , φ, φ/2, φ/4, φ/8, φ/ 16, φ/32, φ/64, φ/128 の 8 種です (φ:マシンクロック ) 。 割込みはカウンタ値のオーバフロー , コンペアクリアレジスタとのコンペアマッチに より発生することができます ( コンペアマッチはモード設定が必要です ) 。 カウンタ値は , リセット , ソフトクリア , コンペアクリアレジスタとのコンペアマッチ により "0000H" に初期化することができます。 228 第 10 章 インプットキャプチャ 10.2 インプットキャプチャのブロックダイヤグラム インプットキャプチャのブロックダイヤグラムを記載します。 ■ ブロックダイヤグラム 図 10.2-1 ブロックダイヤグラム 割込み φ #31(1FH) IVF IVFE STOP MODE SCLR CLK2 CLK1 CLK0 分周器 クロック 16ビットフリーランタイマ 16ビットコンペアクリアレジスタ 割込み コンペア回路 #33(21H) MSI2~MSI0 ICLR ICRE A/D起動 F2MC-16LXバス キャプチャデータレジスタ0/2 エッジ検出 EG11 EG10 EG01 エッジ検出 キャプチャデータレジスタ1/3 ICP0 ICP1 ICE0 IN0/IN2 EG00 IN1/IN3 ICE1 割込み #19, #23 #15, #21 229 第 10 章 インプットキャプチャ 10.3 インプットキャプチャのレジスタ一覧 インプットキャプチャのレジスタ一覧について説明します。 ■ 16 ビットフリーランタイマ部レジスタ一覧 図 10.3-1 に 16 ビットフリーランタイマ部のレジスタ一覧を示します。 図 10.3-1 16 ビットフリーランタイマ部のレジスタ一覧 コンペアクリアレジスタ上位 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス : 000025H CL15 CL14 CL13 CL12 CL11 CL10 CL09 CL08 読出し / 書込み→ 初期値→ R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000024H CL07 CL06 CL05 CL04 CL03 CL02 CL01 CL00 読出し / 書込み→ 初期値→ R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 T15 R/W (0) T14 R/W (0) T13 R/W (0) T12 R/W (0) T11 R/W (0) T10 R/W (0) T09 R/W (0) T08 R/W (0) CPCLR コンペアクリアレジスタ下位 CPCLR タイマデータレジスタ上位 アドレス : 000027H 読出し / 書込み→ 初期値→ TCDT タイマデータレジスタ下位 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000026H T07 T06 T05 T04 T03 T02 T01 T00 読出し / 書込み→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit13 bit12 bit11 bit10 bit9 bit8 TCDT タイマコントロールステータスレジスタ上位 bit15 アドレス : 000029H 読出し / 書込み→ 初期値→ bit14 ECKE - - MSI2 MSI1 MSI0 ICLR ICRE R/W (0) (-) (-) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit4 bit3 bit2 bit1 bit0 CLK2 R/W (0) CLK1 R/W (0) CLK0 R/W (0) TCCSH タイマコントロールステータスレジスタ下位 アドレス : 000028H 読出し / 書込み→ 初期値→ 230 bit7 bit6 IVF R/W (0) IVFE R/W (0) bit5 STOP MODE SCLR R/W R/W R/W (0) (0) (0) TCCSL 第 10 章 インプットキャプチャ ■ インプットキャプチャ部レジスタ一覧 図 10.3-2 にインプットキャプチャ部のレジスタ一覧を示します。 図 10.3-2 インプットキャプチャ部のレジスタ一覧 インプットキャプチャデータレジスタ上位 アドレス:ch.0 アドレス:ch.1 アドレス:ch.2 アドレス:ch.3 000061 H 000063 H 000065 H 000067 H bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 CP15 CP13 CP12 CP11 CP10 CP09 IPCP0~ IPCP3 CP08 R R R R R R R R ← 読出し/書込み (X) (X) (X) (X) (X) (X) (X) (X) ← 初期値 インプットキャプチャデータレジスタ下位 アドレス:ch.0 アドレス:ch.1 アドレス:ch.2 アドレス:ch.3 CP14 bit 8 000060 H 000062 H 000064 H 000066 H bit 7 bit 6 CP07 CP06 bit 5 CP05 CP04 bit 4 CP03 bit 3 bit 2 CP02 bit 1 CP01 CP00 bit 0 IPCP0~ IPCP3 R R R R R R R R ← 読出し/書込み (X) (X) (X) (X) (X) (X) (X) (X) ← 初期値 インプットキャプチャコントロールステータスレジスタ上位 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 00006AH ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20 読出し / 書込み→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ICS23 インプットキャプチャコントロールステータスレジスタ下位 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000068H ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 読出し / 書込み→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ICS01 231 第 10 章 インプットキャプチャ 10.3.1 インプットキャプチャのレジスタ詳細説明 インプットキャプチャレジスタには次の 2 種類のレジスタがあります。 • インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3) • インプットキャプチャコントロールステータスレジスタ (ICS01/ICS23) ■ インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3) IPCP レジスタは , 対応した外部端子入力波形の有効エッジを検出した場合 , 16 ビット フリーランタイマ値を保持するレジスタです ( ワードアクセスしてください。書込み はできません ) 。 図 10.3-3 インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3) の構成 インプットキャプチャデータレジスタ上位 アドレス:ch.0 アドレス:ch.1 アドレス:ch.2 アドレス:ch.3 000061H 000063H 000065H 000067H CP15 CP14 CP13 CP12 CP11 CP10 CP09 bit 8 IPCP0~ IPCP3 CP08 R R R R R R R R ← 読出し/書込み (X) (X) (X) (X) (X) (X) (X) (X) ← 初期値 インプットキャプチャデータレジスタ下位 アドレス:ch.0 アドレス:ch.1 アドレス:ch.2 アドレス:ch.3 bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 000060H 000062H 000064H 000066H bit 7 CP07 CP06 bit 6 CP05 bit 5 bit 4 CP04 CP03 bit 3 bit 2 CP02 CP01 bit 1 bit 0 CP00 IPCP0~ IPCP3 R R R R R R R R ← 読出し/書込み (X) (X) (X) (X) (X) (X) (X) (X) ← 初期値 ■ インプットキャプチャコントロールステータスレジスタ (ICS01, ICS23) 図 10.3-4 インプットキャプチャコントロールステータスレジスタ (ICS01, ICS23) の構成 インプットキャプチャコントロールステータスレジスタ上位 アドレス : 00006AH 読出し / 書込み→ 初期値→ bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ICP3 R/W (0) ICP2 R/W (0) ICE3 R/W (0) ICE2 R/W (0) EG31 R/W (0) EG30 R/W (0) EG21 R/W (0) EG20 R/W (0) ICS23 インプットキャプチャコントロールステータスレジスタ下位 232 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000068H ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 読出し / 書込み→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ICS01 第 10 章 インプットキャプチャ 【bit7, bit6】: ICP3, ICP2, ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると本 ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセットさ れていると有効エッジを検出することにより割込みを発生することができます。本 ビットは , "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リード モディファイライト系命令では "1" が読み出されます。 0 有効エッジ検出なし ( 初期値 ) 1 有効エッジ検出あり ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。 【bit5, bit4】: ICE3, ICE2, ICE1, ICE0 インプットキャプチャ割込み許可ビットです。ICE ビットが "1" の場合 , 割込みフラグ (ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生し ます。 0 割込み禁止 ( 初期値 ) 1 割込み許可 ICEn:n の番号がインプットキャプチャのチャネル番号に対応します 【bit3-bit0】: EG31/EG30, EG21/EG20, EG11/EG10, EG01/EG00 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可も 兼用しています。 エ ッ ジ 検 出 極 性 EG31 EG30 0 0 エッジ検出なし ( 停止状態 ) ( 初期値 ) 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑&↓ EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。 233 第 10 章 インプットキャプチャ 10.3.2 16 ビットフリーランタイマのレジスタ詳細説明 16 ビットフリーランタイマのレジスタには , 次の 3 つのレジスタがあります。 • タイマデータレジスタ (TCDT) • コンペアクリアレジスタ (CPCLR) • タイマコントロールステータスレジスタ (TCCSH, TCCSL) ■ タイマデータレジスタ (TCDT) 図 10.3-5 タイマデータレジスタ (TCDT) の構成 タイマデータレジスタ上位 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス : 000027H T15 T14 T13 T12 T11 T10 T09 T08 読出し / 書込み→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 T07 R/W (0) T06 R/W (0) T05 R/W (0) T04 R/W (0) T03 R/W (0) T02 R/W (0) T01 R/W (0) T00 R/W (0) TCDT タイマデータレジスタ下位 アドレス : 000026H 読出し / 書込み→ 初期値→ TCDT 16 ビットフリーランタイマのカウント値を読み出すことのできるレジスタです。カウ ンタ値は , リセット時に "0000H" にクリアされます。このレジスタに書き込むことでタ イマ値を設定できますが , 必ず停止 (STOP=1) 状態で書き込んでください。このレジス タは , ワードアクセスしてください。16 ビットフリーランタイマの初期化は次の要因 で行われます。 • リセットによる初期化 • タイマコントロール・ステータスレジスタのクリア (CLR) による初期化 • コンペアクリアレジスタ値とタイマカウンタ値の一致による初期化 ( モード設定が 必要です ) ■ コンペアクリアレジスタ (CPCLR) 図 10.3-6 コンペアクリアレジスタ (CPCLR) の構成 コンペアクリアレジスタ上位 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 アドレス : 000025H CL15 CL14 CL13 CL12 CL11 CL10 CL09 CL08 読出し / 書込み→ 初期値→ R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス : 000024H CL07 CL06 CL05 CL04 CL03 CL02 CL01 CL00 読出し / 書込み→ 初期値→ R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) CPCLR コンペアクリアレジスタ下位 234 CPCLR 第 10 章 インプットキャプチャ 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス タ値は , 初期値不定ですので動作許可する場合は , 値を設定してから動作を許可してく ださい。本レジスタはワードアクセスしてください。タイマコントロールステータス レジスタ (TCCSH, TCCSL) の MODE ビットに "1" を設定している場合は , 本レジスタ 値と 16 ビットフリーランタイマ値が一致したとき , 16 ビットフリーランタイマ値を "0000H" にクリアします。また , 本レジスタ値と 16 ビットフリーランタイマ値が一致 したとき , コンペアクリア割込みフラグをセットします。コンペアクリア割込みフラグ が "1" のとき , 割込み動作を許可している場合は, CPUに対して割込み要求を行います。 ■ タイマコントロールステータスレジスタ (TCCSH, TCCSL) 図 10.3-7 タイマコントロールステータスレジスタ (TCCSH, TCCSL) の構成 タイマコントロールステータスレジスタ上位 アドレス : 000029H 読出し / 書込み→ 初期値→ bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ECKE R/W (0) (-) (-) MSI2 R/W (0) MSI1 R/W (0) MSI0 R/W (0) ICLR R/W (0) ICRE R/W (0) bit4 bit3 bit2 bit1 bit0 CLK2 CLK1 CLK0 R/W (0) R/W (0) R/W (0) TCCS タイマコントロールステータスレジスタ下位 bit7 bit6 アドレス : 000028H IVF IVFE 読出し / 書込み→ 初期値→ R/W (0) R/W (0) bit5 STOP MODE SCLR R/W (0) R/W (0) R/W (0) TCCS 【bit15】:ECKE 16 ビットフリーランタイマのカウントクロックソースを内部にするか , 外部にするか を選択するビットです。ECKE ビットに書込み後すぐにクロックは変更されますので アウトプットコンペア , インプットキャプチャが停止状態で変更してください。 0 内部クロックソースを選択 ( 初期値 ) 1 外部端子 (FRCK) よりクロックを入力 <注意事項> 内部クロックを選択した場合は , bit2 ~ bit0 (CLK2 ~ CLK0) にカウントクロックを設定 してください。このカウントクロックがベースクロックとなります。また , FRCK よりク ロックを入力する場合は , DDR1 の bit7="0" に設定してください。 【bit14, bit13】: 未定義ビットです。 リードした場合は不定値 , ライトした場合は動作に影響しません。 【bit12, bit11, bit10】: MSI2, MSI1, MSI0 コンペアクリア割込みをマスクする回数を設定するビットです。3 ビットのリロードカ ウンタで構成され , カウンタの値が "000B" になるたびにカウント値をリロードします。 また , 本レジスタ書込み時にもカウンタ値をロードします。マスク回数 = 設定回数とな ります ( 例:2 回マスクし 3 回目で割込み処理をする場合の設定値 "010B") 。ただし , "000B" を設定すると割込み要因はマスクされません。 235 第 10 章 インプットキャプチャ 【bit9】:ICLR コンペアクリアの割込み要求フラグです。コンペアクリアレジスタ値と 16 ビットフ リーランタイマ値がコンペア一致した場合に ICLR ビットは "1" にセットされます。割 込み要求許可ビット (bit8:ICRE) がセットされていると割込みが発生します。ICLR ビッ トは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リードモディ ファイライト系命令では , 常に "1" が読み出されます。 0 割込み要求なし ( 初期値 ) 1 割込み要求あり 【bit8】:ICRE コンペアクリアの割込み許可ビットです。ICRE ビットが "1" の場合 , 割込みフラグ (bit9:ICLR) が "1" にセットされると割込みが発生します。 0 割込み禁止 ( 初期値 ) 1 割込み許可 【bit7】:IVF 16 ビットフリーランタイマの割込み要求フラグです。16 ビットフリーランタイマが オーバフローを起こした場合に IVF ビットは "1" にセットされます。割込み要求許可 ビット (bit6:IVFE) がセットされていると割込みが発生します。IVF ビットは "1" 書込 みによりクリアされます。"1" 書込みは意味を持ちません。リードモディファイライト 系命令では , 常に "1" が読み出されます。 0 割込み要求なし ( 初期値 ) 1 割込み要求あり 【bit6】:IVFE 16 ビットフリーランタイマの割込み許可ビットです。IVFE ビットが "1" の場合 , 割込 みフラグ (bit7:IVF) が "1" セットされると割込みが発生します。 0 割込み禁止 ( 初期値 ) 1 割込み許可 【bit5】:STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。"1" 書込み時に はタイマのカウントは停止します。"0" 書込み時にタイマのカウントを開始します。 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 236 0 カウント許可 ( 動作 ) ( 初期値 ) 1 カウント禁止 ( 停止 ) 第 10 章 インプットキャプチャ 【bit4】:MODE 16 ビットフリーランタイマの初期化条件を設定します。"0" の場合は , リセットとクリ アビット (bit3:SCLR) でカウンタ値を初期化できます。"1" の場合は , リセットとクリ アビット (bit3:SCLR) の他にコンペアクリアレジスタ (CPCLR) の値との一致によりカ ウンタ値を初期化することができます。 カウンタ値の初期化は , カウント値の変化点で行われます。 0 リセット , クリアビットによる初期化 ( 初期値 ) 1 リセット , クリアビット , コンペアクリアレジスタによる初期化 【bit3】:SCLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。"1" 書込み時にカウンタを "0000H" に初期化します。"0" を書き込んでも意味を持ちません。 リード値は , 常に "0" です。 カウンタ値の初期化は , カウント値の変化点で行われます。 タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。 フ ラ グ の 意 味 SCLR 0 意味を持ちません ( 初期値 ) 1 カウンタ値を "0000H" に初期化します <注意事項> "1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書込みを行うと , カ ウンタ値の初期化は行われません。 【bit2 ~ bit0】: CLK2, CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択するビットです。CLK ビットに 書込み後すぐにクロックは変更されますので , アウトプットコンペア , インプットキャ プチャが停止状態で変更してください。 カウントクロック φ=16MHz φ= 8MHz φ= 4MHz φ= 1MHz CLK2 CLK1 CLK0 0 0 0 φ 62.5 ns 125 ns 0 0 1 φ/ 2 125 ns 0.25 μs 0.5 μs 2 μs 0 1 0 φ/ 4 0.25 μs 0.5 μs 1 μs 4 μs 0 1 1 φ/ 8 0.5 μs 1 μs 2 μs 8 μs 0.25 μs 1 μs 1 0 0 φ/ 16 1 μs 2 μs 4 μs 16 μs 1 0 1 φ/ 32 2 μs 4 μs 8 μs 32 μs 1 1 0 φ/ 64 4 μs 8 μs 16 μs 64 μs 1 1 1 φ/128 8 μs 16 μs 32 μs 128 μs φ = マシンクロック 237 第 10 章 インプットキャプチャ 動作説明 10.4 インプットキャプチャの動作について説明します。 ■ 動作説明 ● 16 ビットフリーランタイマ 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを 開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプッ トキャプチャの基準時間となります。 ● 16 ビットインプットキャプチャ 16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することができ ます。 ■ インプットキャプチャの割込みと EI2OS 表 10.4-1 に , インプットキャプチャの割込みと EI2OS を示します。 表 10.4-1 インプットキャプチャの割込みと EI2OS 割込みレベル設定レジスタ チャネル ベクタテーブルのアドレス 割込み番号 レジスタ名 アドレス 下位 上位 バンク EI2OS インプット キャプチャ 0 #15 (0FH) ICR02 0000B2H FFFFC0H FFFFC1H FFFFC2H △ インプット キャプチャ 1 #19 (13H) ICR04 0000B4H FFFFB0H FFFFB1H FFFFB2H △ インプット キャプチャ 2 #21 (15H) ICR05 0000B5H FFFFA8H FFFFA9H FFFFAAH △ インプット キャプチャ 3 #23 (17H) ICR06 0000B6H FFFFA0H FFFFA1H FFFFA2H △ フリーラン タイマ オーバフロー #31 (1FH) ICR10 0000BAH FFFF80H FFFF81H FFFF82H × フリーラン タイマクリア #33 (21H) ICR11 0000BBH FFFF78H FFFF79H FFFF7AH × ×:使用不可 △:ICR02, ICR04, ICR05, ICR06 または割込みベクタを共有する割込み要因を使用しない場合 , 使用可能 238 第 10 章 インプットキャプチャ 10.4.1 16 ビットインプットキャプチャ 16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することが できます。 ■ 16 ビットインプットキャプチャの動作 図 10.4-1 インプットキャプチャの取込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット IN0 IN1 IN例 不定 データレジスタ0 3FFFH 不定 データレジスタ1 不定 データレジスタ例 キャプチャ0割込み BFFFH BFFFH 7FFFH キャプチャ1割込み キャプチャ例割込み キャプチャ0=立上りエッジ キャプチャ1=立下りエッジ キャプチャ例=両エッジ(例として) 再度有効エッジにより割込み ソフトウェアにより割込み ■ 16 ビットインプットキャプチャの入力タイミング 図 10.4-2 入力信号に対するキャプチャタイミング カウンタ値 インプット キャプチャ入力 N N+1 有効エッジ キャプチャ信号 キャプチャ レジスタ値 N+1 割込み 239 第 10 章 インプットキャプチャ 10.4.2 16 ビットフリーランタイマ部 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作説明 カウンタ値は , 次の条件でクリアされます。 • オーバフロー発生時 • コンペアクリアレジスタ値とのコンペアマッチ時 ( モード設定が必要 ) • 動作中に TCCSH, TCCSL レジスタの SCLR ビットへの "1" 書込み • タイマ停止中の TCDT への "0000H" 書込み 割込みは , オーバフローが発生したとき , コンペアクリアレジスタ値とフリーランタイ マがコンペアマッチしたときに発生します (コンペアマッチ割込みは , モード設定が必 要です ) 。 図 10.4-3 オーバフローによるカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット 割込み 図 10.4-4 コンペアクリアレジスタ値とコンペアマッチした場合のカウンタクリア カウンタ値 FFFFH 一致 BFFFH 一致 7FFFH 3FFFH 時間 0000H リセット コンペア レジスタ値 割込み 240 BFFFH 第 10 章 インプットキャプチャ ■ 16 ビットフリーランタイマのクリアタイミング カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行 われます。リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われ ますが , コンペアクリアレジスタとの一致によるカウンタクリアはカウントタイミン グに同期して行われます。 図 10.4-5 フリーランタイマのクリアタイミング コンペアクリア レジスタ値 コンペアラッチ N N カウンタ値 0000 H ■ 16 ビットフリーランタイマのカウントタイミング 16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により カウントアップされます。外部クロック選択時は , 立上りエッジ↑でカウントされま す。 図 10.4-6 16 ビットフリーランタイマのカウントタイミング 外部クロック入力 カウントクロック カウンタ値 N N+1 241 第 10 章 インプットキャプチャ 242 第 11 章 16 ビットリロードタイマ この章では , 16 ビットリロードタイマの機能と動 作について説明します。 11.1 16 ビットリロードタイマの概要 11.2 16 ビットリロードタイマの構成 11.3 16 ビットリロードタイマの端子 11.4 16 ビットリロードタイマのレジスタ 11.5 16 ビットリロードタイマの割込み 11.6 16 ビットリロードタイマの動作説明 11.7 16 ビットリロードタイマの使用上の注意 11.8 16 ビットリロードタイマのプログラム例 243 第 11 章 16 ビットリロードタイマ 11.1 16 ビットリロードタイマの概要 16 ビットリロードタイマは , 3 種類の内部クロックに同期してカウントダウンする 内部クロックモードと , 外部端子に入力されたパルスの任意エッジを検出してカウ ントダウンするイベントカウントモードがあり , どちらかの機能を選択できます。 このタイマは , カウンタの値が 0000H から FFFFH になる場合をアンダフローと定義 しています。したがって , 〔リロードレジスタの設定値+ 1〕カウントでアンダフ ローが発生します。 カウンタ動作としては , アンダフローで , カウント設定値を再ロードしてカウントを 繰り返すリロードモードと , アンダフローでカウントを停止するワンショットモー ドを選択できます。カウンタのアンダフローで割込みを発生させることができ , 拡 張インテリジェント I/O サービス (EI2OS) にも対応しています。 ■ 16 ビットリロードタイマの動作モード 16 ビットリロードタイマの動作モードは , 表 11.1-1 に示すとおりです。 表 11.1-1 16 ビットリロードタイマの動作モード クロックモード カウンタ動作 リロードモード 内部クロックモード イベントカウントモード ( 外部クロックモード ) ワンショットモード リロードモード ワンショットモード 16 ビットリロードタイマの動作 ソフトトリガ動作 外部トリガ動作 外部ゲート入力動作 ソフトトリガ動作 ■ 内部クロックモード カウントクロックとして , 3 種類の内部クロックから 1 種類を選択し , 次のいずれかの 動作を選択できます。 ● ソフトトリガ動作 タイマコントロールステータスレジスタ (TMCSR0/TMCSR1) の TRG ビットに "1" を書 き込むと , カウント動作を開始します。TRG ビットによるトリガ入力は , 外部トリガ入 力時および外部ゲート入力時にも常に有効です。 ● 外部トリガ動作 選択されたエッジ ( 立上り , 立下り , 両エッジ ) が TIN0/TIN1 端子に入力された場合に カウント動作を開始します。 ● 外部ゲート入力動作 選択された信号レベル ("L" または "H") が TIN0/TIN1 端子に入力されている間 , カウン ト動作を続行します。 244 第 11 章 16 ビットリロードタイマ ■ イベントカウントモード ( 外部クロックモード ) 選択された有効エッジ ( 立上り , 立下り , 両エッジ ) が TIN0/TIN1 端子に入力されると , そのエッジでカウントダウンする機能です。一定周期の外部クロックを使用した場合 は , インターバルタイマとしても使用できます。 ■ カウンタ動作 ● リロードモード カウントダウンで , アンダフロー (0000H → FFFFH) が発生すると , カウント設定値が再 ロードされてカウント動作を継続します。アンダフローで , 割込み要求を発生させるこ とができるので , インターバルタイマとして使用できます。また , アンダフローごとに 反転するトグル波形を , TOT0/TOT1 端子から出力できます。表 11.1-2 に 16 ビットリ ロードタイマのインターバル時間を示します。 表 11.1-2 16 ビットリロードタイマのインターバル時間 カウントクロック カウントクロック周期 内部クロック 外部クロック インターバル時間 21/φ (0.125 μs) 0.125 μs ~ 8.192 ms 23/φ (0.5 μs) 0.5 μs ~ 32.768 ms 25/φ (2.0 μs) 2.0 μs ~ 131.1 ms 23/φ 以上 (0.5 μs) 0.5 μs 以上 φ:マシンクロック ( ) 内は , マシンクロック 16MHz 動作時の値です。 ● ワンショットモード カウントダウンで , アンダフロー (0000H → FFFFH) が発生すると , カウント動作を停止 します。アンダフローで割込みを発生させることができます。また , カウンタの動作中 は , カウント中を示す矩形波を TOT0, TOT1 端子から出力できます。 <参考> • 16 ビットリロードタイマは , UART のボーレート作成に使用できます。 • 16 ビットリロードタイマは , A/D コンバータの起動トリガに使用できます。 ■ 16 ビットリロードタイマの割込みと EI2OS 表 11.1-3 に , 16 ビットリロードタイマの割込みと EI2OS について示します。 表 11.1-3 16 ビットリロードタイマの割込みと EI2OS 割込み制御レジスタ チャネル ベクタテーブルのアドレス 割込み番号 レジスタ名 アドレス 下位 上位 バンク EI2OS 16 ビットリロード タイマ 0 #17 (11H) ICR03 0000B3H FFFFB8H FFFFB9H FFFFBAH △ 16 ビットリロード タイマ 1 #28 (1CH) ICR08 0000B8H FFFF8CH FFFF8DH FFFF8EH △ △:ICR03, ICR08, または割込みベクタを共有する割込み要因を使用しない場合使用可能 245 第 11 章 16 ビットリロードタイマ 11.2 16 ビットリロードタイマの構成 16 ビットリロードタイマは , 次の 7 つのブロックで構成されています。 • カウントクロック生成回路 • リロード制御回路 • 出力制御回路 • 動作制御回路 • 16 ビットタイマレジスタ (TMR0, TMR1) • 16 ビットリロードレジスタ (TMRLR0, TMRLR1) • タイマコントロールステータスレジスタ (TMCSR0L, TMCSR1L/TMCSR0H, TMCSR1H) ■ 16 ビットリロードタイマのブロックダイヤグラム 図 11.2-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 図 11.2-1 16 ビットリロードタイマのブロックダイヤグラム 内部データバス TMRLR0*1 <TMRLR1> 16ビットリロードレジスタ リロード信号 TMR0*1 <TMR1> リロード 制御回路 UF 16ビットタイマレジスタ(ダウンカウンタ) カウントクロック生成回路 プリ 3 スケーラ CLK ゲート 入力 有効 クロック 判定回路 クリア 出力制御回路 クロック セレクタ 入力制御 回路 P12/TIN0*1 <P07/TIN1> UART0,UART1へ*1 <A/Dコンバータへ> CLK 内部 クロック 端子 ウェイト信号 出力信号 反転 生成回路 端子 3 2 セレクト 信号 動作 制御回路 機能選択 - - - - CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE タイマコントロールステータスレジスタ(TMCSR0)*1 <TMCSR1> *1:ch.0とch.1があり,< >内はch.1について示します。 *2:割込み番号 246 P11/TOT0*1 <P06/TOT1> EN 外部クロック UF CNTE TRG 割込み要求信号 #17(11H)*2 <#28(1CH)> 第 11 章 16 ビットリロードタイマ ● カウントクロック生成回路 マシンクロックまたは外部入力クロックから , 16 ビットリロードタイマのカウントク ロックを生成します。 ● リロード制御回路 タイマ起動時とアンダフロー発生時のリロード動作を制御します。 ● 出力制御回路 16 ビットタイマレジスタのアンダフローによる TOT 端子出力の反転制御と , TOT 端子 出力を許可 / 禁止を制御します。 ● 動作制御回路 16 ビットリロードタイマの起動 / 停止を制御します。 16 ビットタイマレジスタ (TMR0, TMR1) 16 ビットのダウンカウンタです。読出しをすると , 現在のカウンタ値が読み出されま す。 ● 16 ビットリロードレジスタ (TMRLR0, TMRLR1) 16 ビットリロードタイマのインターバル時間を設定するレジスタです。このレジスタ の設定値が 16 ビットタイマレジスタにロードされ , カウントダウンされます。 ● タイマコントロールステータスレジスタ (TMCSR0L, TMCSR1L/TMCSR0H, TMCSR1H) 16ビットリロードタイマのカウントクロックの選択, 動作モードの選択, 動作条件の設 定 , ソフトウェアによるトリガ起動 , カウント動作の許可 / 禁止 , リロード / ワンショッ トのモード選択 , 端子出力レベルの選択 , タイマ出力の許可 / 禁止 , 割込み制御および 状態の確認をします。 247 第 11 章 16 ビットリロードタイマ 16 ビットリロードタイマの端子 11.3 16 ビットリロードタイマの端子および端子のブロックダイヤグラムを示します。 ■ 16 ビットリロードタイマの端子 16 ビットリロードタイマの端子は , 汎用ポートと兼用になっています。表 11.3-1 に端 子の機能 , 入出力形式および 16 ビットリロードタイマ使用時の設定などを示します。 表 11.3-1 16 ビットリロードタイマの端子 スタンバイ 制御 端子の使用に 必要な設定 端子機能 P12/TIN0/IN3 ポート 1 入出力 / タイマ入力 入力ポートに設定 (DDR1:bit2=0) P11/TOT0/WOT ポート 1 入出力 / タイマ出力 TOT0 使用時にリアルタ イム時計タイマ出力禁 止 (WTCRL:OE=1) P07/PPG1/TIN1 P06/PPG0/TOT1 入出力形式 プルアップ 選択 端子名 CMOS 出力 / CMOS ヒステリシス ポート 0 入出力 / 入力 タイマ入力 なし あり 入力ポートに設定 (DDR0:bit7=0) PPG1 出力禁止 タイマ出力許可に設定 (TMCSR1L:OUTE=1) PPG0 出力禁止 ポート 0 入出力 / タイマ出力 ■ 16 ビットリロードタイマの端子のブロックダイヤグラム 図 11.3-1 に , 16 ビットリロードタイマの端子のブロックダイヤグラムを示します。 図 11.3-1 16 ビットリロードタイマの端子のブロックダイヤグラム 周辺機能入力 * PDR (ポートデータレジスタ) 周辺機能出力 * 周辺機能出力許可 * 内部データバス PDRリード 出力ラッチ P-ch PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ N-ch DDRライト スタンバイ制御(SPL=1) DDRリード スタンバイ制御:ストップ,時計モードかつSPL=1 * :周辺機能入出力は周辺機能がある端子だけです。 248 第 11 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタ 11.4 16 ビットリロードタイマのレジスタ一覧を示します。 ■ 16 ビットリロードタイマのレジスタ一覧 図 11.4-1 に , 16 ビットリロードタイマのレジスタ一覧を示します。 図 11.4-1 16 ビットリロードタイマのレジスタ一覧 アドレス bit15 bit8 bit7 bit0 16ビットリロード タイマ0 000051H,000050H TMCSR0L,TMCSR0H(タイマコントロールステータスレジスタ) 000053H,000052H TMR0/TMRLR0(16ビットタイマレジスタ/16ビットリロードレジスタ)* 16ビットリロード タイマ1 000055H,000054H TMCSR1L,TMCSR1H(タイマコントロールステータスレジスタ) 000057H,000056H TMR1/TMRLR1(16ビットタイマレジスタ/16ビットリロードレジスタ)* * :読出し時は16ビットタイマレジスタ(TMR)として機能し,書込み時は16ビットリロードレジスタ(TMRLR) として機能します。 249 第 11 章 16 ビットリロードタイマ タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) 11.4.1 タイマコントロールステータスレジスタ (TMCSR0/TMCSR1) の上位 bit11 ~ bit8 と下位 bit7 は , 16 ビットリロードタイマの動作モードの選択 , 動作条件の設定をす る機能があります。下位 bit7 の MOD0 ビットはここで説明します。 ■ タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) 図 11.4-2 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit0 初期値 TMCSR0 (TMCSR:L) ----0000 B MOD1 MOD0 - - - - CSL1 CSL0 MOD2 000051H TMCSR1 000055H - - - - R/W R/W R/W R/W MOD2 MOD1 MOD0 0 0 0 0 0 1 0 1 0 0 1 1 1 X 0 1 X 1 MOD2 MOD1 MOD0 X 0 0 X 0 1 X 1 0 X 1 1 R/W 動作モード選択ビット (内部クロックモード時) 入力端子機能 R/W - X φ 250 0 0 0 1 ― 立上りエッジ トリガ入力 立下りエッジ 両エッジ ゲート入力 "L"レベル "H"レベル 動作モード選択ビット (イベントカウントモード時) 入力端子機能 CSL1 CSL0 有効エッジ,レベル トリガ禁止 有効エッジ ― ― 立上りエッジ トリガ入力 立下りエッジ 両エッジ カウントクロック選択ビット 機能 カウントクロック 21/φ(0.125μs) 内部クロックモード 1 0 :リード/ライト可能 :未定義 イベントカウントモード 1 1 :不定 :初期値 :マシンクロック,( )内はマシンクロック16MHz動作時の値です。 23/φ( 0.5μs) 25/φ( 2.0μs) 外部イベント入力 第 11 章 16 ビットリロードタイマ 表 11.4-1 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) の各ビットの 機能説明 ビット名 bit15 ~ bit12 未定義ビット bit11 bit10 CSL1, CSL0: カウントクロック 選択ビット 機 能 ・読出し時の値は不定です。 ・書込みは意味を持ちません。 ・カウントクロックの選択をします。 ・これらのビットが "11B" 以外の場合は , 内部クロックモードとなり , 内部ク ロックをカウントするモードになります。 ・これらのビットが "11B" の場合は , イベントカウントモードとなり , 外部ク ロックのエッジをカウントするモードになります。 bit9 ~ bit7 MOD2, MOD1, MOD0: 動作モード選択 ビット <内部クロックモード時> ・MOD2 ビットは , 入力端子の機能を選択するビットです。 ・MOD2 ビットが "0" の場合 , 入力端子はトリガ入力端子となり , 有効エッジが 入力されると , リロードレジスタの内容をカウンタへロードし , カウント動 作を継続します。MOD1, MOD0 ビットで有効エッジの種類を選択します。 ・MOD2 ビットが "1" の場合 , 入力端子はゲート入力となり , 有効レベルが入力 されている間だけカウントをします。 ・MOD1 ビットの設定には影響を受けませんので任意の値 ("0" または "1") を設 定してください。 ・MOD0 ビットで有効レベルを選択します。 <イベントカウントモード時> ・MOD2 ビットの設定には影響を受けませんので , 任意の値 ("0" または "1") を 設定してください。 ・入力端子は , イベント入力のトリガ入力端子として使用され , MOD1, MOD0 ビットで有効エッジを選択します。 251 第 11 章 16 ビットリロードタイマ タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) 11.4.2 タイマコントロールステータスレジスタ (TMCSR0/TMCSR1) の下位 7 ビットは , 16 ビットリロードタイマの動作条件の設定 , 動作の許可と禁止 , 割込み制御および状態 の確認をする機能があります。 ■ タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) 図 11.4-3 タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) * アドレス bit15 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TMCSR0 00000000B MOD0 OUTE OUTL RELD INTE UF CNTE TRG (TMCSR:H) 000050H TMCSR1 000054H R/W R/W R/W TRG R/W R/W R/W R/W R/W ソフトウェアトリガビット 0 変化なし,ほかへの影響なし 1 リロード後,カウント動作開始 カウント許可ビット CNTE 0 カウント停止 1 カウント許可(起動トリガ待ち) UF アンダフロー割込み要求フラグビット 書込み時 読出し時 0 カウンタのアンダフローなし このビットのクリア 1 カウンタのアンダフローあり 変化なし,ほかへの影響なし 割込み要求許可ビット INTE 0 割込み要求出力禁止 1 割込み要求出力許可 リロード選択ビット RELD 0 ワンショットモード 1 リロードモード 端子出力レベル選択ビット OUTL ワンショットモード時 (RELD=0) 0 カウント中"H"の矩形波 カウント開始時"L"のトグル出力 1 カウント中"L"の矩形波 カウント開始時"H"のトグル出力 OUTE 0 端子機能 汎用ポート リロードモード時 (RELD=1) タイマ出力許可ビット 各チャネルに対応するレジスタと端子 TMCSR0 P11 TMCSR1 P06 R/W :リード/ライト可能 TOT0 タイマ出力 TOT1 1 :初期値 * :MOD0(bit7)については「11.4.1 タイマコントロールステータスレジスタ上位(TMCSR0/1H)」 を参照してください。 252 第 11 章 16 ビットリロードタイマ 表 11.4-2 タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) の各ビットの機能説明 ビット名 機 能 bit6 OUTE: タイマ出力許可 ビット ・タイマ出力端子の出力の許可 / 禁止をするビットです。 ・このビットが "0" の場合 , 端子は汎用ポートになり , "1" の場合 , 端子はタイ マ出力端子になります。 ・タイマ出力端子の出力波形はリロードモード時トグル出力となり , ワン ショットモード時はカウント中を示す矩形波出力になります。 bit5 OUTL: 端子出力レベル 選択ビット ・タイマ出力端子の出力レベルを選択するレジスタです。 ・このビットが "0" の場合と "1" の場合では , 端子レベルが逆になります。 bit4 RELD: リロード選択 ビット ・リロード動作を許可するビットです。 ・このビットが "1" の場合はリロードモードになり , アンダフローの発生と同 時にリロードレジスタの内容をカウンタにロードして , カウント動作を続け ます。 ・このビットが "0" の場合はワンショットモードとなり , アンダフローの発生 でカウント動作を停止します。 bit3 INTE: 割込み要求許可 ビット ・CPU への割込み要求出力の許可 / 禁止をするビットです。 ・このビットと割込み要求フラグビット (UF) が "1" の場合 , 割込み要求を出力 します。 bit2 UF: アンダフロー 割込み要求 フラグビット ・カウンタのアンダフローの発生で "1" に設定されます。 ・書込み時は "0" でクリアされ , "1" では変化せずほかへの影響はありません。 ・このビットは EI2OS の発生でもクリアされます。 bit1 CNTE: カウント許可 ビット ・カウント動作の許可 / 禁止をするビットです。 ・このビットに "1" を設定すると , 起動トリガ待ち状態になります。起動トリ ガの発生で , 実際のカウントを開始します。 TRG: ソフトウェア トリガビット ・インターバルタイマ機能またはカウンタ機能をソフトウェアで起動するビッ トです。 ・このビットへの "1" の書込みでソフトウェアトリガがかかり , リロードレジ スタの値をカウンタにロードしてカウント動作を開始します。"0" の書込み は意味を持ちません。 ・このビットによるトリガ入力は , CNTE=1 の場合 , 動作モードにかかわらず常 に有効です。 bit0 253 第 11 章 16 ビットリロードタイマ 16 ビットタイマレジスタ (TMR0, TMR1) 11.4.3 16 ビットタイマレジスタ (TMR0, TMR1) は , 16 ビットダウンカウンタのカウント値 を常時読み出すことができるレジスタです。 ■ 16 ビットタイマレジスタ (TMR0, TMR1) 図 11.4-4 に , 16 ビットタイマレジスタ (TMR0, TMR1) のビット構成を示します。 図 11.4-4 16 ビットタイマレジスタ (TMR0, TMR1) のビット構成 TMR0: 000053H TMR1: 000057H TMR0: 000052H TMR1: 000056H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 D15 R D14 R D13 R D12 R D11 R D10 R D9 R D8 R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 R D6 R D5 R D4 R D3 R D2 R D1 R D0 R 初期値 XXXXXXXXB 初期値 XXXXXXXXB R :リードオンリ X :不定 16 ビットダウンカウンタのカウンタ値を読み出すことができるレジスタです。カウン タ動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , カウントを開始すると , 16 ビットリ ロードレジスタに書き込まれた値が , このレジスタにロードされ , カウントダウンを開 始します。カウンタ停止状態 (TMCSR0/TMCSR1 の CNTE=0) では , このレジスタの値 が保持されます。 <注意事項> • このレジスタの読出しは , カウンタ動作中でもできますが , 必ずワード転送命令 (MOVW A, 003AH など ) を使用してください。 • 必ずワードアクセスしてください。 • 16 ビットタイマレジスタ (TMR0, TMR1) は , 読出し専用のレジスタですが , 書込み専 用の 16 ビットリロードレジスタ (TMRLR0/TMRLR1) と同一アドレスに配置されてい ます。 したがって, 書込みを行うとTMRの値は影響を受けませんが, TMRLR0/TMRLR1 に対して書込みが行われます。 254 第 11 章 16 ビットリロードタイマ 16 ビットリロードレジスタ (TMRLR0/TMRLR1) 11.4.4 16 ビットリロードレジスタ (TMRLR0/TMRLR1) は , 16 ビットダウンカウンタへの リロード値を設定するレジスタです。このレジスタに書き込まれた値がダウンカウ ンタにロードされ , カウントダウンされます。 ■ 16 ビットリロードレジスタ (TMRLR0/TMRLR1) 図 11.4-5 に , 16 ビットリロードレジスタ (TMRLR0/TMRLR1) のビット構成を示しま す。 図 11.4-5 16 ビットリロードレジスタ (TMRLR0/TMRLR1) のビット構成 TMRLR0H: 000053H TMRLR1H: 000057H TMRLR0L: 000052H TMRLR1L: 000056H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 D15 R D14 R D13 R D12 R D11 R D10 R D9 R D8 R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 R D6 R D5 R D4 R D3 R D2 R D1 R D0 R 初期値 XXXXXXXXB 初期値 XXXXXXXXB R :リードオンリ X :不定 16 ビットリロードタイマの動作モードに関係なく , カウンタ動作を禁止 (TMCSR0/ TMCSR1のCNTE=0) している状態で, このレジスタにカウンタの初期値を設定します。 カウンタ動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , カウンタを起動すると , この レジスタに書き込まれた値からカウントダウンを開始します。 16 ビットリロードレジスタ (TMRLR0/TMRLR1) に設定した値は , リロードモードの場 合 , アンダフローの発生でカウンタにリロードされ , カウントダウンを続行します。ワ ンショットモードの場合 , アンダフローの発生でカウンタは "FFFFH" で停止します。 <注意事項> • このレジスタへの書込みは , カウンタ停止 (TMCSR0/TMCSR1 の CNTE=0) の状態で 行ってください。また , 必ずワード転送命令 (MOVW 003AH, A など ) で書き込んでく ださい。 • 必ずワードアクセスしてください。 • 16 ビットリロードレジスタ (TMRLR0/TMRLR1) は , 機能的には書込み専用のレジスタ ですが , 読出し専用の 16 ビットタイマレジスタ (TMR0, TMR1) と同一アドレスに配置 されています。したがって , 読出し値は TMR0, TMR1 の値となるため , INC/DEC 命令 などリードモディファイライト (RMW) 動作をする命令は使用できません。 255 第 11 章 16 ビットリロードタイマ 11.5 16 ビットリロードタイマの割込み 16 ビットリロードタイマは , カウンタのアンダフローで割込み要求を発生させるこ とができます。また , 拡張インテリジェント I/O サービス (EI2OS) にも対応していま す。 ■ 16 ビットリロードタイマの割込み 16 ビットリロードタイマの割込み制御ビットと割込み要因は , 表 11.5-1 のようになっ ています。 表 11.5-1 16 ビットリロードタイマの割込み制御ビットと割込み要因 16 ビットリロードタイマ 割込み要求フラグビット TMCSR0/TMCSR1:UF 割込み要求許可ビット TMCSR0/TMCSR1:INTE 割込み要因 16 ビットダウンカウンタ (TMR0, TMR1) のアンダフロー 16 ビットリロードタイマでは , ダウンカウンタのアンダフロー (0000H → FFFFH) で , タ イマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H) の UF ビットが "1" にセットされます。割込み要求が許可 (TMCSR0/TMCSR1 の INTE=1) されていると , 割込みコントローラに割込み要求を出力します。 ■ 16 ビットリロードタイマの割込みと EI2OS 表 11.5-2 に , 16 ビットリロードタイマの割込みと EI2OS を示します。 表 11.5-2 16 ビットリロードタイマの割込みと EI2OS チャネル 割込み番号 割込み制御レジスタ ベクタテーブルのアドレス レジスタ名 アドレス 下位 上位 バンク EI2OS 16 ビットリロード タイマ 0 #17 (11H) ICR03 0000B3H FFFFB8H FFFFB9H FFFFBAH △ 16 ビットリロード タイマ 1 #28 (1CH) ICR08 0000B8H FFFF8CH FFFF8DH FFFF8EH △ △:ICR03, ICR08 または , 割込みベクタを共有する割込み要因を使用しない場合使用可能 ■ 16 ビットリロードタイマの EI2OS 機能 16 ビットリロードタイマは EI2OS 対応の回路を持っています。このためカウンタのア ンダフローで EI2OS を起動させることができます。ただし , EI2OS は , 割込み制御レジ スタ (ICR) を共有するほかの周辺機能が割込みを使用しない場合にだけ使用可能で す。16 ビットリロードタイマ 0 で EI2OS を使用する場合には , DTP/ 外部割込み 1 を , 16 ビットリロードタイマ 1 で EI2OS を使用する場合には , PPG タイマ 1 の割込みを禁 止する必要があります。 256 第 11 章 16 ビットリロードタイマ 16 ビットリロードタイマの動作説明 11.6 16 ビットリロードタイマの設定とカウンタの動作状態について説明します。 ■ 16 ビットリロードタイマの設定 ● 内部クロックモードの設定 インターバルタイマとして動作させるには , 図 11.6-1 の設定が必要です。 図 11.6-1 内部クロックモードの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 TMCSR - - - - bit3 bit2 CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF "11B" 以外 ◎ bit8 ◎ bit7 ◎ bit6 ◎ bit5 bit4 ◎ ◎ ◎ ◎ bit1 bit0 CNTE TRG 1 ◎ bit1 bit0 カウンタの初期値 ( リロード値 ) を設定 TMRLR ◎:使用ビット 1 :"1" を設定 ● イベントカウントモードの設定 イベントカウンタとして動作させるには , 図 11.6-2 の設定が必要です。 図 11.6-2 イベントカウンタモードの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 TMCSR - - - - bit3 bit2 CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF 1 TMRLR 1 ◎ bit8 ◎ bit7 ◎ bit6 ◎ bit5 bit4 ◎ ◎ ◎ ◎ CNTE TRG 1 ◎ カウンタの初期値 ( リロード値 ) を設定 DDR1 △ DDR0 △ ◎:使用ビット 1 :"1" を設定 △ :使用する端子に対応するビットに "0" を設定 257 第 11 章 16 ビットリロードタイマ ■ カウンタの動作状態 カウンタの状態は , タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H) の CNTE ビットと内部信号の WAIT 信号で決まります。設定可 能な状態として , 停止状態 (STOP 状態 ) , 起動トリガ待ち状態 (WAIT 状態 ) , 動作状態 (RUN 状態 ) があります。カウンタ状態遷移図を , 図 11.6-3 に示します。 図 11.6-3 カウンタ状態遷移図 STOP状態 CNTE=0, WAIT=1 TIN端子 :入力禁止 TO端子 :汎用ポート リセット カウンタ :停止時の値を保持 リセット直後は不定 CNTE=0 CNTE=0 CNTE=1 TRG=0 WAIT状態 CNTE=1, WAIT=1 TIN端子:トリガ入力のみ有効 TO端子 :初期値出力 カウンタ:停止時の値を保持 リセット直後ロードするまでは不定 TRG=1 (ソフトトリガ) TINから外部トリガ CNTE=1 TRG=1 UF=1& RELD=0 (ワンショット モード) LOAD RUN状態 CNTE=1, WAIT=0 TIN端子 :TIN端子として機能 TO端子 :TO端子として機能 カウンタ UF=1& RELD=1 (リロードモード) CNTE=1, WAIT=0 リロードレジスタの内容をカウンタへロード :動作 TRG=1 (ソフトトリガ) ロード終了 :ハードウェアによる状態遷移 WAIT TRG CNTE UF RELD 258 :レジスタアクセスによる状態遷移 :WAIT信号(内部信号) :タイマコントロールステータスレジスタ(TMCSR)のソフトウェアトリガビット :タイマコントロールステータスレジスタ(TMCSR)のカウント許可ビット :タイマコントロールステータスレジスタ(TMCSR)のアンダフロー割込み要求フラグビット :タイマコントロールステータスレジスタ(TMCSR)のリロード選択ビット 第 11 章 16 ビットリロードタイマ 内部クロックモード ( リロードモード ) 11.6.1 内部カウントクロックに同期して , 16 ビットカウンタをカウントダウンし , カウン タのアンダフローで CPU に割込み要求を発生します。また , タイマ出力端子からト グル波形を出力できます。 ■ 内部クロックモード ( リロードモード ) の動作 カウント動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , ソフトウェアトリガビット (TMCSR の TRG) または外部トリガでタイマ起動すると , 16 ビットリロードレジスタ (TMRLR0/TMRLR1) の値をカウンタにロードして , カウント動作を開始します。カウ ント許可ビットとソフトウェアトリガビットを同時に "1" にセットすると , カウント許 可と同時にカウントを開始します。 カウンタ値がアンダフロー (0000H → FFFFH) すると , 16 ビットリロードレジスタ (TMRLR0/TMRLR1) の値をカウンタにロードして , カウント動作を継続します。この とき , アンダフロー割込み要求フラグビット (UF) を "1" にセットし , 割込み要求許可 ビット (INTE) が "1" であれば割込み要求を発生します。 また , TOT 端子からはアンダフローごとに反転するトグル波形を出力できます。 ● ソフトウェアトリガ動作 タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H) の TRG ビットに "1" を書き込むとカウンタを起動します。図 11.6-4 に , リロードモー ド時のソフトウェアトリガ動作を示します。 図 11.6-4 リロードモード時のソフトウェアトリガ動作 カウント クロック カウンタ リロード データ -1 0000H リロード データ -1 0000H リロード データ -1 0000H リロード データ -1 データロード信号 UFビット CNTEビット TRGビット * T TO端子 * T :マシンサイクル :トリガ入力からリロードデータロードまで1Tの時間がかかります。 259 第 11 章 16 ビットリロードタイマ ● 外部トリガ動作 有効エッジ ( 立上り , 立下り , 両エッジ選択可能 ) が TIN 端子に入力されると , カウン タを起動します。図 11.6-5 に , リロードモード時の外部トリガ動作を示します。 図 11.6-5 リロードモード時の外部トリガ動作 カウント クロック リロード データ カウンタ -1 0000H リロード データ -1 0000H リロード データ -1 0000H リロード データ -1 データロード信号 UFビット CNTEビット TIN端子 2T~2.5T TO端子 * T :マシンサイクル :外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。 * <注意事項> TIN 端子へ入力するトリガパルス幅は , 2/φ 以上としてください。 ● ゲート入力動作 有効レベル ("H" レベル , "L" レベル選択可能 ) が TIN 端子に入力されている間 , カウン ト動作をします。図 11.6-6 に , リロードモード時のゲート入力動作を示します。 図 11.6-6 リロードモード時のゲート入力動作 カウント クロック カウンタ リロードデータ -1 -1 -1 0000H リロード データ -1 -1 データロード信号 UFビット CNTEビット TRGビット * T TIN端子 TO端子 * T :マシンサイクル :トリガ入力からリロードデータロードまで1Tの時間がかかります。 <注意事項> TIN0/TIN1 端子へ入力するゲート入力のパルス幅は , 2/φ 以上としてください。 260 第 11 章 16 ビットリロードタイマ 内部クロックモード ( ワンショットモード ) 11.6.2 内部カウントクロックに同期して , 16 ビットカウンタをカウントダウンし , カウン タのアンダフローで CPU に割込み要求を発生します。また , TOT0/TOT1 端子から カウント中を示す矩形波を出力できます。 ■ 内部クロックモード ( ワンショットモード ) の動作 カウント動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , ソフトウェアトリガビット (TMCSR0/TMCSR1 の TRG) または外部トリガでタイマ起動すると , カウント動作を開 始します。カウント許可ビットとソフトウェアトリガビットを同時に "1" にセットす ると , カウント許可と同時にカウントを開始します。カウンタ値がアンダフロー (0000H → FFFFH) すると , "FFFFH" の状態でカウンタを停止します。このとき , アンダフロー 割込み要求フラグビット (UF) を "1" にセットし , 割込み要求許可ビット (INTE) が "1" であれば割込み要求を発生します。 また , TOT 端子からはカウント中を示す矩形波を出力できます。 ● ソフトウェアトリガ動作 タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H) の TRG ビットに "1" を書き込むことで , カウンタを起動します。図 11.6-7 に , ワン ショットモード時のソフトウェアトリガ動作を示します。 図 11.6-7 ワンショットモード時のソフトウェアトリガ動作 カウント クロック リロード データ カウンタ -1 0000H FFFFH リロード データ リロード データ -1 0000H FFFFH データロード信号 UFビット CNTEビット TRGビット * T TO端子 * 起動トリガ入力待ち T :マシンサイクル :トリガ入力からリロードデータロードまで1Tの時間がかかります。 261 第 11 章 16 ビットリロードタイマ ● 外部トリガ動作 有効エッジ ( 立上り , 立下り , 両エッジ選択可能 ) が TIN0/TIN1 端子に入力されると , カ ウンタを起動します。図 11.6-8 に , ワンショットモード時の外部トリガ動作を示します。 図 11.6-8 ワンショットモード時の外部トリガ動作 カウント クロック カウンタ リロード データ -1 0000H FFFFH リロード データ -1 0000H FFFFH データロード信号 UFビット CNTEビット TIN端子 * 2T~2.5T TO端子 起動トリガ入力待ち T :マシンサイクル :外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。 * <注意事項> TIN 端子へ入力するトリガパルス幅は , 2/φ 以上としてください。 ● ゲート入力動作 有効レベル ("H" レベル , "L" レベル選択可能 ) が TIN 端子に入力されている間 , カウン ト動作を行います。図 11.6-9 に , ワンショットモード時のゲート入力動作を示します。 図 11.6-9 ワンショットモード時のゲート入力動作 カウント クロック リロード データ カウンタ -1 0000H FFFFH リロード データ -1 0000H FFFFH データロード信号 UFビット CNTEビット TRGビット T * TO端子 起動トリガ入力待ち * T :マシンサイクル :トリガ入力からリロードデータロードまで1Tの時間がかかります。 <注意事項> TIN 端子へ入力するゲート入力のパルス幅は , 2/φ 以上としてください。 262 第 11 章 16 ビットリロードタイマ イベントカウントモード 11.6.3 TIN 端子からの入力エッジをカウントして , 16 ビットカウンタをカウントダウンし , カウンタのアンダフローで CPU に割込み要求を発生します。また , TOT0/TOT1 端 子からトグル波形または矩形波を出力できます。 ■ イベントカウントモード カウント動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , カウンタを起動 (TMCSR0/ TMCSR1 の TRG=1) すると , 16 ビットリロードレジスタ (TMRLR0/TMRLR1) の値がカ ウンタにロードされ , TIN0/TIN1 端子に入力されたパルス ( 外部カウントクロック ) の 有効エッジ ( 立上り , 立下り , 両エッジ選択可能 ) を検出するたびにカウントダウンし ます。カウント許可ビットとソフトウェアトリガビットを同時に "1" にセットすると , カウント許可と同時にカウントを開始します。 ● リロードモード時の動作 カウンタ値がアンダフロー (0000H → FFFFH) すると , 16 ビットリロードレジスタ (TMRLR0/TMRLR1) の値をカウンタにロードして , カウント動作を継続します。この とき , アンダフロー割込み要求フラグビット (UF) を "1" にセットし , 割込み要求許可 ビット (TMCSR0/TMCSR1 の INTE) が "1" であれば割込み要求を発生します。また , TOT0/TOT1 端子からは , アンダフローごとに反転するトグル波形を出力できます。リ ロードモード時のカウント動作を図 11.6-10 に示します。 図 11.6-10 リロードモード時のカウント動作 TIN端子 リロード データ カウンタ -1 0000H リロード データ -1 0000H リロード データ -1 0000H リロード データ -1 データロード信号 UFビット CNTEビット TRGビット T * TO端子 * T :マシンサイクル :トリガ入力からリロードデータロードまで1Tの時間がかかります。 <注意事項> TIN0/TIN1 端子へ入力されるクロックの "H" 幅および "L" 幅は , 4/φ 以上としてください。 263 第 11 章 16 ビットリロードタイマ ● ワンショットモード時の動作 カウンタ値がアンダフロー (0000H → FFFFH) すると , "FFFFH" の状態でカウンタを停止 します。このとき , アンダフロー要求フラグビット (UF) が "1" にセットされ , 割込み要 求出力許可ビット (INTE) が "1" であれば割込み要求を発生します。また , TOT0/TOT1 端子からは , カウント中を示す矩形波を出力できます。ワンショットモード時のカウン タ動作を , 図 11.6-11 に示します。 図 11.6-11 ワンショットモード時のカウンタ動作 TIN端子 リロード データ カウンタ -1 0000H FFFFH リロード データ -1 0000H FFFFH データロード信号 UFビット CNTEビット TRGビット * T TO端子 * 起動トリガ入力待ち T :マシンサイクル :トリガ入力からリロードデータロードまで1Tの時間がかかります。 <注意事項> TIN0/TIN1 端子へ入力されるクロックの "H" 幅および "L" 幅は , 4/φ 以上としてください。 264 第 11 章 16 ビットリロードタイマ 11.7 16 ビットリロードタイマの使用上の注意 16 ビットリロードタイマを使用する場合の注意点を示します。 ■ 16 ビットリロードタイマの使用上の注意 ● プログラムで設定する場合の注意 16 ビットリロードレジスタ (TMRLR0/TMRLR1) への書込みは , カウンタ動作停止 (TMCSR0/TMCSR1 の CNTE=0) の状態で行ってください。また , 16 ビットタイマレジ スタ (TMR0, TMR1) の読出しは , カウンタ動作中でもできますが , 必ずワード転送命令 (MOVW A, dir など ) を使用してください。 タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H) の CSL1, CSL0 ビットの変更は , カウンタ停止 (TMCSR0/TMCSR1 の CNTE=0) の状態 で行ってください。 ● 割込みに関連する注意 タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H) の UF ビットが "1" で , 割込み要求許可 (TMCSR0/TMCSR1 の INTE=1) された状態では , 割込み処理から復帰できません。UF ビットは必ずクリアしてください。 16ビットリロードタイマは , 時計タイマと割込みベクタを共有しているため, 割込みを 使用する場合には , 割込み処理ルーチンで , 割込み要因をチェックするなどの注意が必 要です。 また , 16 ビットリロードタイマで EI2OS を使用する場合 , 時計タイマは , 割込みを禁止 する必要があります。 265 第 11 章 16 ビットリロードタイマ 11.8 16 ビットリロードタイマのプログラム例 16 ビットリロードタイマの内部クロックモードとイベントカウントモードのプログ ラム例を示します。 ■ 内部クロックモードのプログラム例 ● 処理仕様 16 ビットリロードタイマで , 25ms のインターバルタイマ割込みを発生します。 リロードモードで使用し , 繰り返し割込みを発生させます。 外部トリガ入力は使用せず , ソフトウェアトリガで , タイマを起動します。 EI2OS は使用しません。 マシンクロック 16MHz, カウントクロック 2 μs とします。 【コーディング例】 ICR03 EQU 0000B3H ; 割込み制御レジスタ 03 TMCSR EQU 000050H ; タイマコントロールステータスレジスタ TMR EQU 000052H ;16 ビットタイマレジスタ TMRLR EQU 000052H ;16 ビットリロードレジスタ UF EQU TMCSR:2 ; 割込み要求フラグビット CNTE EQU TMCSR:1 ; カウンタ動作許可ビット TRG EQU TMCSR:0 ; ソフトウェアトリガビット ;---------- メインプログラム ------------------------------------------------CODE CSEG START: ; : ; スタックポインタ (SP) などは初期化済みとする AND CCR, #0BFH ; 割込みディセーブル MOV I:ICR03, #00H ; 割込みレベル 0( 最強 ) CLRB I:CNTE ; カウンタを一時停止 MOVW I:TMRLR, #30D3H ;25ms タイマのデータを設定 MOVW I:TMCSR, #00001000000011011B ; インターバルタイマ動作 , クロック 2 μs ; 外部トリガ禁止 , 外部出力禁止 , ; リロードモード選択 , 割込み許可 ; 割込みフラグクリア , カウンタスタート MOV ILM, #07H ;PS 内 ILM をレベル 7 に設定 OR CCR, #40H ; 割込みイネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H ; BRA LOOP ; ;---------- 割込みプログラム ------------------------------------------------WARI: CLRB I:UF ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 266 第 11 章 16 ビットリロードタイマ CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFB8H ; 割込み #17(11H) にベクタを設定 DSL ORG VECT WARI 0FFDCH DSL START DB 00H ENDS END START ; リセットベクタ設定 ; シングルチップモードに設定 ■ イベントカウントモードのプログラム例 ● 処理仕様 16 ビットリロードタイマ / カウンタで , 外部イベント入力端子に入力される , パルスの 立上りエッジを 10000 回カウントすると割込みを発生します。 ワンショットモードで動作させます。 外部トリガ入力は , 立上りエッジを選択します。 EI2OS は使用しません。 【コーディング例】 ICR03 EQU 0000B3H ;16 ビットリロードタイマ用割込み制御レジスタ TMCSR EQU 000050H ; タイマコントロールステータスレジスタ TMR EQU 000052H ;16 ビットタイマレジスタ TMRLR EQU 000052H ;16 ビットリロードレジスタ DDR1 EQU 000011H ; ポートデータレジスタ UF EQU TMCSR:2 ; 割込み要求フラグビット CNTE EQU TMCSR:1 ; カウンタ動作許可ビット TRG EQU TMCSR:0 ; ソフトウェアトリガビット ;---------- メインプログラム ------------------------------------------------CSEG START: ; : ; スタックポインタ (SP) などは初期化済みとする AND CCR, #0BFH ; 割込みディセーブル MOV I:ICR09, #00H ; 割込みレベル 0( 最強 ) MOV I:DDR1, #00H ;P12/TIN0 端子を入力に設定 CLRB I:CNTE ; カウンタを一時停止 MOVW I:TMRLR, #2710H ; リロード値 10000 回の設定 MOVW I:TMCSR, #0000110010001011B ; カウンタ動作 , 外部トリガ , 立上りエッジ , ; 外部出力禁止 ; ワンショットモード選択 , 割込み許可 ; 割込みフラグクリア , カウンタスタート MOV ILM, #07H ;PS 内 ILM をレベル 7 に設定 OR CCR, #40H ; 割込みイネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H ; BRA LOOP ; 267 第 11 章 16 ビットリロードタイマ ;---------- 割込みプログラム ------------------------------------------------WARI: CLRB I:UF ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FF84H ; 割込み #30(1EH) にベクタを設定 DSL ORG DSL DB VECT END 268 WARI 0FFDCH START 00H ENDS START ; リセットベクタ設定 ; シングルチップモードに設定 第 12 章 リアルタイム時計タイマ この章では , リアルタイム時計タイマの機能と動作 について説明します。 12.1 リアルタイム時計タイマの概要 12.2 リアルタイム時計タイマのレジスタ 269 第 12 章 リアルタイム時計タイマ 12.1 リアルタイム時計タイマの概要 リアルタイム時計タイマは , リアルタイム時計タイマ制御レジスタ , サブ秒データレ ジスタ , 秒 / 分 / 時間データレジスタ , 1/2 クロック分周器 , 21 ビットプリスケーラ および秒 / 分 / 時間カウンタから構成されています。MCU の発振周波数は , 所定の リアルタイム時計タイマの動作を行うために , 4MHz であることが前提になっていま す。リアルタイム時計タイマは , リアルワールドタイマとして動作してリアルワー ルド時間情報を提供します。 ■ リアルタイム時計タイマのブロックダイヤグラム 図 12.1-1 に , リアルタイム時計タイマのブロックダイヤグラムを示します。 図 12.1-1 リアルタイム時計タイマのブロックダイヤグラム 発振クロック OE 21ビット プリスケーラ 1/2クロック 分周器 OE WOT CO EN サブ秒 レジスタ UPDT ST CI EN LOAD 秒カウンタ 分カウンタ CO 時間カウンタ CO 6ビット 6ビット CO 5ビット 秒/分/時間 レジスタ INTE0 INT0 INTE1 INT1 INTE2 INT2 INTE3 INT3 IRQ #30 270 第 12 章 リアルタイム時計タイマ 12.2 リアルタイム時計タイマのレジスタ リアルタイム時計タイマのレジスタには , 次の 5 種類があります。 • リアルタイム時計タイマ制御レジスタ (WTCRL, WTCRH) • サブ秒データレジスタ (WTBR) • 秒データレジスタ (WTSR) • 分データレジスタ (WTMR) • 時間データレジスタ (WTHR) ■ リアルタイム時計タイマのレジスタ一覧 図 12.2-1 にリアルタイム時計タイマのレジスタ一覧を示します。 図 12.2-1 リアルタイム時計タイマのレジスタ一覧 リアルタイム時計タイマ制御レジスタ上位 15 14 13 INTE3 INT3 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) アドレス : 000059H 12 11 INTE2 INT2 (R/W) (0) (R/W) (0) 8 ←ビット番号 INTE0 INT0 WTCRH (R/W) (0) (R/W) (0) 10 9 INTE1 INT1 (R/W) (0) (R/W) (0) リアルタイム時計タイマ制御レジスタ下位 7 アドレス : 000058H TST2 読出し / 書込み→ (R/W) (0) 初期値→ 6 5 4 3 2 1 0 ←ビット番号 TST1 (R/W) (0) TST0 (R/W) (0) - - UPDT (R/W) (0) OE (R/W) (0) ST (R/W) (0) WTCRL サブ秒データレジスタ 7 6 5 4 3 2 1 0 ←ビット番号 アドレス : 00395CH - - - D20 D19 D18 D17 D16 WTBR 読出し / 書込み→ 初期値→ - - - (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 ←ビット番号 WTBR サブ秒データレジスタ アドレス : 00395BH D15 読出し / 書込み→ (R/W) (X) 初期値→ D14 D13 D12 D11 D10 D9 D8 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 5 4 3 2 1 0 ←ビット番号 D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) WTBR サブ秒データレジスタ 7 アドレス : 00395AH D7 読出し / 書込み→ (R/W) (X) 初期値→ ( 続く ) 271 第 12 章 リアルタイム時計タイマ ( 続き ) 秒データレジスタ アドレス : 00395DH 読出し / 書込み→ 初期値→ 15 14 13 12 11 10 9 8 ←ビット番号 - - S5 (R/W) (X) S4 (R/W) (X) S3 (R/W) (X) S2 (R/W) (X) S1 (R/W) (X) S0 (R/W) (X) WTSR 分データレジスタ 7 6 5 4 3 2 1 0 ←ビット番号 アドレス : 00395EH - - M5 M4 M3 M2 M1 M0 WTMR 読出し / 書込み→ 初期値→ - - (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 時間データレジスタ 272 15 14 13 12 11 10 9 8 ←ビット番号 アドレス : 00395FH - - - H4 H3 H2 H1 H0 WTHR 読出し / 書込み→ 初期値→ - - - (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 第 12 章 リアルタイム時計タイマ 12.2.1 リアルタイム時計タイマ制御レジスタ リアルタイム時計タイマ制御レジスタは , リアルタイム時計タイマの起動・停止 , 割 込みの制御や外部出力端子の設定などを行います。 ■ リアルタイム時計タイマ制御レジスタのビット構成 図 12.2-2 にリアルタイム時計タイマ制御レジスタのビット構成を示します。 図 12.2-2 リアルタイム時計タイマ制御レジスタのビット構成 リアルタイム時計タイマ制御レジスタ上位 15 14 13 INTE3 INT3 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) アドレス : 000059H 12 11 INTE2 INT2 (R/W) (0) (R/W) (0) 8 ←ビット番号 INTE0 INT0 WTCRH (R/W) (0) (R/W) (0) 10 9 INTE1 INT1 (R/W) (0) (R/W) (0) リアルタイム時計タイマ制御レジスタ下位 7 アドレス : 000058H TST2 読出し / 書込み→ (R/W) (0) 初期値→ 6 5 4 3 2 1 0 ←ビット番号 TST1 (R/W) (0) TST0 (R/W) (0) - - UPDT (R/W) (0) OE (R/W) (0) ST (R/W) (0) WTCRL 【bit15~bit8】 INT3~INT0, INTE3~INTE0:割込みフラグおよび割込みイネーブルフラグ INT3 ~ INT0 は割込みフラグです。これらのフラグはサブ秒カウンタ , 秒カウンタ , 分 カウンタおよび時間カウンタがそれぞれオーバフローしたときにセットされます。も し対応する INTE ビットが "1" であるときに INT ビットがセットされたとすれば , リア ルタイム時計タイマは割込みの信号を発生します。これらのフラグは秒 / 分 / 時間 / 日 ごとに割込みの信号を発生するようになっています。 INT ビットに "0" を書き込むと各フラグはクリアされますが , "1" を書き込んでも効果 はありません。INT ビットに対して何らかのリードモディファイライト系命令を実行 すると "1" が読み出されることになります。 【bit7 ~ bit5】TST2 ~ TST0:テストビット このビット群はデバイステストのために用意されたものです。ユーザアプリケーショ ンにおいて , それらは "000B" にセットされなければなりません。 【bit2】UPDT:書換えビット UPDT ビットは , 秒 / 分 / 時間カウンタ値を変更するために用意されたものです。 カウンタ値を変更するためには変更データを秒 / 分 / 時間レジスタに書き込んでくださ い。次に UPDT ビットを "1" にセットしてください。レジスタ値は 21 ビットプリス ケーラからの次の CO 信号時にカウンタにロードされます。UPDT ビットは , カウンタ 値が書き換えられたときに , ハードウェアによりリセットされます。ただし , ソフト ウェアによるセット動作とハードウェアによるリセット動作が同時に生じた場合には, UPDT ビットはリセットされません。 UPDT ビットに "0" を書き込んでも効果はなく , リードモディファイライト系命令は "0" を読み出す結果となります。 273 第 12 章 リアルタイム時計タイマ <注意事項> 秒カウンタが 59 秒を示しているとき , UPDT ビットをセットしてもカウンタ値は変更さ れず , このビットはクリアされます。このため , ST ビットによりカウンタ値を変更してく ださい。 【bit1】OE:出力許可ビット OE ビットが "1" にセットされたとき , WOT 外部端子はリアルタイム時計タイマ用の出 力として機能します。その他の場合には , 汎用 I/O または他のペリフェラルブロックと して使用することができます。 【bit0】ST:開始ビット ST ビットが "1" にセットされたとき , リアルタイム時計タイマは秒 / 分 / 時間値を各レ ジスタからロードして , その動作を開始します。ST ビットが "0" にリセットされたと きに , すべてのカウンタおよびプリスケーラは "0" にリセットされて停止します。 274 第 12 章 リアルタイム時計タイマ 12.2.2 サブ秒データレジスタ サブ秒データレジスタは , 発振クロックを分周する 21 ビットプリスケーラのリロー ド値を格納します。リロード値は , 通常 21 ビットプリスケーラの出力が正確に 1 秒 周期となるように設定されます。 ■ サブ秒データレジスタのビット構成 図 12.2-3 にサブ秒データレジスタのビット構成を示します。 図 12.2-3 サブ秒データレジスタのビット構成 サブ秒データレジスタ 7 6 5 4 3 2 1 0 ←ビット番号 アドレス : 00395CH - - - D20 D19 D18 D17 D16 WTBR 読出し / 書込み→ 初期値→ - - - (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) サブ秒データレジスタ アドレス : 00395BH 15 14 13 12 11 10 9 8 ←ビット番号 D15 D14 D13 D12 D11 D10 D9 D8 WTBR (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 5 4 3 2 1 0 ←ビット番号 D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) WTBR 読出し / 書込み→ (R/W) (X) 初期値→ サブ秒データレジスタ 7 アドレス : 00395AH D7 読出し / 書込み→ (R/W) (X) 初期値→ 【bit20 ~ bit0】D20 ~ D0 サブ秒データレジスタは , 21 ビットプリスケーラに対するリロード値を記憶するもの です。この値は , リロードカウンタが "0" に達した後にリロードされます。すべての 3 バイトを変更するときには , リロード動作が書込み命令どうしの間に実行されないよ うに注意してください。そうしないと , 21 ビットプリスケーラは新たなデータバイト と古いデータバイトを組み合せた , 誤った値をロードしてしまいます。通常は , 開始 ビットが "0" の間に , サブ秒レジスタを書き換えることを推奨します。もし , サブ秒レ ジスタが "0" にセットされると , 21 ビットプリスケーラは全く動作しません。 入力クロック周波数は , 常に発振クロック周波数と等しくなるように設計されており , 4MHz が意図されています。21 ビットプリスケーラのリロード値は , 典型的には 16 進 数で 1E847F であり , これは "27 × 56-1" に等しくなります。このため , これらの 2 つの プリスケーラの組合せにより , 厳密に 1 秒のクロック信号が与えられることになりま す。 275 第 12 章 リアルタイム時計タイマ 12.2.3 秒 / 分 / 時間データレジスタ 秒 / 分 / 時間データレジスタは時間情報を記憶します。それは秒 , 分および時間をバ イナリで表示します。 これらのレジスタを読み取ると , カウンタ値が単純に戻されます。しかし , これらの レジスタは書込みを伴うものであり , UPDT ビットが "1" にセットされた後は , 書込 みデータが各カウンタ内にロードされます。 ■ 秒 / 分 / 時間データレジスタのビット構成 図 12.2-4 に秒 / 分 / 時間データレジスタのビット構成を示します。 図 12.2-4 秒 / 分 / 時間データレジスタのビット構成 秒データレジスタ アドレス : 00395DH 読出し / 書込み→ 初期値→ 15 14 13 12 11 10 9 8 ←ビット番号 - - S5 (R/W) (X) S4 (R/W) (X) S3 (R/W) (X) S2 (R/W) (X) S1 (R/W) (X) S0 (R/W) (X) WTSR 分データレジスタ 7 6 5 4 3 2 1 0 ←ビット番号 アドレス : 00395EH - - M5 M4 M3 M2 M1 M0 WTMR 読出し / 書込み→ 初期値→ - - (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 ←ビット番号 WTHR 時間データレジスタ アドレス : 00395FH - - - H4 H3 H2 H1 H0 読出し / 書込み→ 初期値→ R/W: リード / ライト可 X: 不定値 - - (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 秒 / 分 / 時間データレジスタには , 3 つのバイトレジスタがあります。レジスタから得 られる値が一貫していることを確認してください。 すなわち , "1 時間 59 分 59 秒 " という値が得られたとすると , それは "0 時間 59 分 59 秒 ", "1 時間 0 分 0 秒 " または "2 時間 0 分 0 秒 " かもしれません。 同様に , MCU の動作クロックが発振クロックの半分の場合 (PLL が停止したとき ) , こ れらのレジスタからのリード値は誤っている可能性があります。これは , 読出し動作と カウント動作の同期によるものです。このため , 使用する上では秒割込みで読出し命令 をトリガすることを推奨いたします。 276 第 13 章 PPG タイマ この章では , PPG タイマについて説明します。 13.1 PPG タイマの概要 13.2 PPG タイマのブロックダイヤグラム 13.3 PPG タイマのレジスタ 13.4 PPG タイマの動作説明 277 第 13 章 PPG タイマ PPG タイマの概要 13.1 PPG タイマは , プリスケーラ , 16 ビットダウンカウンタ 1 本 , 周期設定用バッファ 付き 16 ビットデータレジスタ , デューティ設定用バッファ付き 16 ビットコンペア レジスタおよび端子制御部から構成されています。 外部またはソフトウェアトリガに同期させたパルスを出力することができます。出 力するパルスは , 16 ビット 2 個のレジスタ値を書き換えることで , 周期とデュー ティを任意に変えることができます。 ■ 概要 ● PWM 機能 トリガに同期させ , 上記レジスタの値を書き換えながらプログラマブルにパルスを出 力することができます。 外付け回路により , D/A コンバータとしても使用できます。 ● ワンショット機能 トリガ入力のエッジを検出し , 単一パルスを出力することができます。 ● 端子制御 PPG タイマは , 以下の端子制御を行います。 • デューティ一致で , "1" にセット ( 優先 ) • カウンタボローで , "0" にリセット • 出力値固定モードがあり , オール "L" ( またはオール "H") を簡単に出力可能 • 極性指定可能 ● 16 ビットダウンカウンタ カウンタ動作クロックは , 4 種類から選択できます。内部クロックは , 4 種類あります (φ, φ/4, φ/16, φ/64)。 φ:マシンクロック カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化することができます。 ● 割込み要求 PPG タイマは , 以下の条件で割込み要求を発生します。 • タイマ起動 • カウンタボロー発生 ( 周期一致 ) • デューティ一致発生 • カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生 • 外部トリガで複数チャネルの同時起動が設定できます。また , 動作中の再起動も設 定可能です。 278 第 13 章 PPG タイマ ■ PPG タイマの割込みと EI2OS 表 13.1-1 に , PPG タイマの割込みと EI2OS を示します。 表 13.1-1 PPG タイマの割込みと EI2OS 割込みレベル設定レジスタ チャネル ベクタテーブルのアドレス 割込み番号 レジスタ名 アドレス 下位 上位 バンク EI2OS PPG タイマ 0 #25 (19H) ICR07 0000B7H FFFF98H FFFF99H FFFF9AH △ PPG タイマ 1 #27 (1BH) ICR08 0000B8H FFFF90H FFFF91H FFFF92H △ PPG タイマ 2 #29 (1DH) ICR09 0000B9H FFFF88H FFFF89H FFFF8AH ○ ○ : 使用可能 △ : ICR07, ICR08 または割込みベクタを共有する割込み要因を使用しない場合 , 使用可能 279 第 13 章 PPG タイマ 13.2 PPG タイマのブロックダイヤグラム PPG タイマのブロックダイヤグラムを記載します。 ■ PPG タイマのブロックダイヤグラム 図 13.2-1 に , PPG タイマのブロックダイヤグラムを示します。 図 13.2-1 PPG タイマのブロックダイヤグラム PDUT PCSR プリスケーラ 1/1 1/4 ロード CK 1/16 CMP PCNT 1/64 16ビットダウンカウンタ スタート ボロー PPGマスク マシンクロック S Q PPG出力 R 反転ビット トリガ入力 P05/SCK1/TRG エッジ検出 ソフトトリガ 280 割込み選択 イネーブル 割込み IRQ #25,#27,#29 第 13 章 PPG タイマ 13.3 PPG タイマのレジスタ PPG タイマのレジスタ一覧について記載します。 ■ PPG タイマのレジスタ一覧 図 13.3-1 に , PPG タイマのレジスタ一覧を示します。 図 13.3-1 PPG タイマのレジスタ一覧 bit15 bit14 bit13 bit12 bit11 bit10 PPG制御ステータスレジスタ上位 アドレス: ch.0 00002B H CNTE アドレス: ch.1 00002D H アドレス: ch.2 00002F H R/W (0) STGR MDSE R/W (0) R/W (0) bit7 PPG制御ステータスレジスタ下位 アドレス: ch.0 00002A H EGS1 アドレス: ch.1 00002C H アドレス: ch.2 00002E H R/W (0) EGS0 ]R/W (0) bit6 RTRG R/W (0) bit5 CKS1 CKS0 PGMS R/W (0) R/W (0) R/W (0) bit4 bit3 bit2 IRS0 POEN OSEL R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R (1) R (1) bit7 PPGダウンカウンタレジスタ下位 アドレス:ch.0 003920 H DC07 アドレス:ch.1 003928 H アドレス:ch.2 003930 H R (1) DC06 ] R (1) bit6 DC12 2 R (1) bit5 DC10 DC09 DC08 R (1) R (1) R (1) R (1) bit4 bit3 bit2 DC05 DC04 DC03 DC02 DC01 R (1) R (1) R (1) R (1) R (1) CS15 CS14 CS13 W (X) W (X) W (X) bit7 PPG 周期設定レジスタ下位 アドレス:ch.0 003922 H アドレス:ch.1 00392A H アドレス:ch.2 003932 H CS07 W (X) CS06 ] W (X) bit6 CS05 W (X) CS12 2 W (X) bit5 CS04 W (X) bit9 DC11 bit15 bit14 bit13 bit12 bit11 bit10 PPG 周期設定レジスタ上位 アドレス:ch.0 003923 H アドレス:ch.1 00392B H アドレス:ch.2 003933 H bit1 IRS1 DC13 CS11 CS10 CS09 W (X) W (X) W (X) bit4 CS03 W (X) bit3 CS02 W (X) bit2 CS01 W (X) PCNTH0~ PCNTH2 - ← 読出し/書込み (-) ← 初期値 IRQF DC14 bit8 - IREN bit15 bit14 bit13 bit12 bit11 bit10 PPGダウンカウンタレジスタ上位 アドレス: ch.0 003921 H DC15 アドレス: ch.1 003929 H アドレス: ch.2 003931 H R (1) bit9 bit1 bit0 PCNTL0~ PCNTL2 ← 読出し/書込み ← 初期値 bit8 PDCR0~ PDCR2 ← 読出し/書込み ← 初期値 bit0 PDCR0~ PDCR2 DC00 R ← 読出し/書込み (1) ← 初期値 bit9 bit8 PCSR0~ PCSR2 CS08 W ← 読出し/書込み (X) ← 初期値 bit1 CS00 bit0 PCSR0~ PCSR 2 W ← 読出し/書込み (X) ← 初期値 (続く) 281 第 13 章 PPG タイマ ( 続き ) bit15 bit14 bit13 bit12 bit11 bit10 PPGデューティ設定レジスタ上位 アドレス: ch.0 003925 H DU15 アドレス: ch.1 00392D H アドレス: ch.2 003935 H W (X ) DU14 DU13 DU12 DU11 DU10 DU09 DU08 W (X ) W (X ) W (X ) W (X ) W (X ) W (X ) W (X ) bit7 PPGデューティ設定レジスタ下位 アドレス: ch.0 003924 H DU07 アドレス: ch.1 00392C H アドレス: ch.2 003934 H W (X ) 282 bit9 bit6 bit5 bit4 bit3 bit2 DU06 DU05 DU04 DU03 DU02 DU01 W (X ) W (X ) W (X ) W (X ) W (X ) W (X) bit1 DU00 bit8 PDUT0~ PDUT2 ← 読出し/書込み ← 初期値 bit0 PDUT0~ PDUT2 W ← 読出し/書込み (X ) ← 初期値 第 13 章 PPG タイマ 13.3.1 PPG タイマのレジスタ詳細説明 PPG タイマには , 次の 4 つのレジスタがあります。 • PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2, PCNTL0 ~ PCNTL2) • PPG ダウンカウンタレジスタ (PDCR0 ~ PDCR2) • PPG 周期設定レジスタ (PCSR0 ~ PCSR2) • PPG デューティ設定レジスタ (PDUT0 ~ PDUT2) ■ PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2, PCNTL0 ~ PCNTL2) 図 13.3-2 に PPG 制御ステータスレジスタ (PCNT ~ 2) のビット構成を示します。 図 13.3-2 PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2, PCNTL0 ~ PCNTL2) のビット構成 bit15 bit14 bit13 bit12 bit11 bit10 PPG制御ステータスレジスタ上位 アドレス: ch.0 00002B H CNTE アドレス: ch.1 00002D H アドレス: ch.2 00002F H R/W (0) STGR MDSE R/W (0) R/W (0) bit7 PPG制御ステータスレジスタ下位 アドレス: ch.0 00002A H EGS1 アドレス: ch.1 00002C H アドレス: ch.2 00002E H R/W (0) bit6 RTRG CKS1 CKS0 PGMS R/W (0) R/W (0) R/W (0) R/W (0) bit5 bit4 bit3 bit2 bit9 bit8 PCNTH0~ PCNTH2 - - ← 読出し/書込み (-) ← 初期値 bit1 EGS0 IREN IRQF IRS1 IRS0 POEN OSEL R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit0 PCNTL0~ PCNTL2 ← 読出し/書込み ← 初期値 【bit15】CNTE: タイマ許可ビット 16 ビットダウンカウンタの動作を許可するビットです。 タイマ許可 CNTE 0 停止 ( 初期値 ) 1 許可 【bit14】STGR: ソフトウェアトリガビット このビットに "1" を書き込むことにより , ソフトウェアトリガがかかります。 STGR ビットの読出し値は常に "0" です。 【bit13】MDSE: モード選択ビット 連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択しま す。動作中の書換えはできません。 モード選択 MDSE 0 PWM 動作 ( 初期値 ) 1 ワンショット動作 283 第 13 章 PPG タイマ 【bit12】RTRG: 再起動許可ビット ソフトウェアトリガによる再起動を許可するビットです。動作中の書換えはできませ ん。 再起動許可 RTRG 0 再起動禁止 ( 初期値 ) 1 再起動許可 【bit11, bit10】CKS1, CKS0: カウンタクロック選択ビット 16 ビットダウンカウンタのカウントクロックを選択します。動作中の書換えはできま せん。 周期 CKS1 CKS0 0 0 φ ( 初期値 ) 0 1 φ/4 1 0 φ/16 1 1 φ/64 φ:マシンクロック 【bit9】PGMS:PPG 出力マスク選択ビット このビットに "1" を書き込むことにより , モード設定 , 周期設定値 , デューティ設定値 にかかわらず , PPG 出力を "0" または "1" にマスクすることができます。 PGMS に "1" を書き込んだときの PPG タイマの出力レベルを下表に示します。 PPG 出力 極性 通常極性 "L" 極性反転 "H" 通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期設定 レジスタとデューティ設定レジスタに同値を書き込むと , 上記マスク値の反転を出力 することができます。 【bit8】未定義ビットです。 リードした場合は不定値 , ライトした場合は動作に影響しません。 【bit7, bit6】EGS1, EGS0: トリガ入力エッジ選択ビット どのモードを選択していても , ソフトウェアトリガのビットに "1" を書き込むと , ソフ トウェアトリガは有効になります。 284 エッジ選択 EGS1 EGS0 0 0 無効 ( 初期値 ) 0 1 立上りエッジ 1 0 立下りエッジ 1 1 両エッジ 第 13 章 PPG タイマ 【bit5】IREN: 割込み要求許可ビット PPG タイマの割込み許可ビットです。IREN ビットが "1" の場合 , 割込みフラグ (bit4 の IRQF) が "1" にセットされると割込みが発生します。 割込み要求許可 IREN 0 割込み禁止 ( 初期値 ) 1 割込み許可 【bit4】IRQF: 割込み要求フラグ bit5 の IREN が許可されていて bit3, bit2 の IRS1, IRS0 で選択した割込み要因が発生す ると IRQF ビットがセットされ , CPU に割込み要求を発生します。 IRQF ビットは読出し / 書込みが可能です。クリアは , "0" 書込みのみで行われ , "1" を 書き込んでもビット値は変化しません。リードモディファイライト系命令における読 出し値は , ビット値にかかわらず "1" です。 【bit3, bit2】IRS1, IRS0: 割込み要因選択ビット bit4 IRQF をセットする要因を選択します。 IRS1 エッジ選択 IRS0 0 0 ソフトウェアトリガまたは有効トリガ入力あり ( 初期値 ) 0 1 カウンタボロー ( 周期一致 ) 1 0 通常極性 PPG ↑または反転極性 PPG ↓ ( デューティ一致 ) 1 1 カウンタボローまたは通常極性 PPG ↑または反転極性 PPG ↓ 【bit1】POEN:PPG 出力許可ビット "1" に設定することにより , PPG 出力が端子から出力されます。 PPG 出力許可 POEN 0 汎用ポート ( 初期値 ) 1 PPG 出力端子 【bit0】OSEL:PPG 出力極性指定ビット PPG 出力の極性を設定します。 PPG 出力極性 OSEL 0 通常極性 ( 初期値 ) 1 反転極性 bit9 PGMS との組合せで , 以下のようになります。 PPG 出力 PGMS OSEL 0 0 通常極性 ( 初期値 ) 0 1 反転極性 1 0 出力 "L" 固定 1 1 出力 "H" 固定 285 第 13 章 PPG タイマ 極性 リセット後 通常極性 "L" 出力 反転極性 "H" 出力 デューティ一致 カウンタ一致 ■ PPG ダウンカウンタレジスタ (PDCR) PDCR レジスタは , 16 ビットダウンカウンタの値を読み出すことができます。 PDCR レジスタは , ワードでアクセスしてください。 図 13.3-3 に PPG ダウンカウンタレジスタ (PDCR) のビット構成を示します。 図 13.3-3 PPG ダウンカウンタレジスタ (PDCR) のビット構成 bit15 bit14 bit13 bit12 bit11 bit10 PPGダウンカウンタレジスタ上位 アドレス: ch.0 003921 H DC15 アドレス: ch.1 003929 H アドレス: ch.2 003931 H R (1) DC14 DC13 DC12 DC11 DC10 DC09 DC08 R (1) R (1) R (1) R (1) R (1) R (1) R (1) bit7 PPGダウンカウンタレジスタ下位 アドレス:ch.0 003920 H DC07 アドレス:ch.1 003928 H アドレス:ch.2 003930 H R (1) bit9 bit6 bit5 bit4 bit3 bit2 DC06 DC05 DC04 DC03 DC02 DC01 R (1) R (1) R (1) R (1) R (1) R (1) bit1 bit8 PDCR0~ PDCR2 ← 読出し/書込み ← 初期値 bit0 PDCR0~ PDCR2 DC00 R ← 読出し/書込み (1) ← 初期値 ■ PPG 周期設定レジスタ (PCSR) PCSR レジスタは , 周期を設定するためのバッファ付きレジスタです。バッファからの 転送は , カウンタボローで行われます。 周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタへ書込み後 , 必ず デューティ設定レジスタへの書込み動作を行ってください。 PCSR レジスタは , ワードでアクセスしてください。 図 13.3-4 に PPG 周期設定レジスタ (PCSR) のビット構成を示します。 図 13.3-4 PPG 周期設定レジスタ (PCSR) のビット構成 bit15 bit14 bit13 bit12 bit11 bit10 PPG 周期設定レジスタ上位 アドレス:ch.0 003923 H アドレス:ch.1 00392B H アドレス:ch.2 003933 H CS15 CS14 CS13 CS12 CS11 CS10 CS09 W (X) W (X) W (X) W (X) W (X) W (X) W (X) bit7 PPG 周期設定レジスタ下位 アドレス:ch.0 003922 H アドレス:ch.1 00392A H アドレス:ch.2 003932 H 286 bit6 CS07 CS06 CS05 W (X) W (X) W (X) bit5 CS04 W (X) bit4 CS03 W (X) bit3 CS02 W (X) bit2 CS01 W (X) bit9 bit8 PCSR0~ PCSR2 CS08 W ← 読出し/書込み (X) ← 初期値 bit1 CS00 bit0 PCSR0~ PCSR2 W ← 読出し/書込み (X) ← 初期値 第 13 章 PPG タイマ ■ PPG デューティ設定レジスタ (PDUT) PDUT レジスタは , デューティを設定するためのバッファ付きレジスタです。バッファ からの転送は , カウンタボローで行われます。 周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に オール "H" を , 反転極性時にオール "L" を出力します。 PCSR < PDUT となるような値を設定しないでください。PPG 出力が不定となります。 PDUT レジスタは , ワードでアクセスしてください。 図 13.3-5 に PPG デューティ設定レジスタ (PDUT) のビット構成を示します。 図 13.3-5 PPG デューティ設定レジスタ (PDUT) のビット構成 bit15 bit14 bit13 bit12 bit11 bit10 PPGデューティ設定レジスタ上位 アドレス: ch.0 003925 H アドレス: ch.1 00392D H アドレス: ch.2 003935 H DU15 DU14 DU13 DU12 DU11 DU10 DU09 DU08 W (X ) W (X ) W (X ) W (X ) W (X ) W (X ) W (X ) W (X ) bit7 PPGデューティ設定レジスタ下位 アドレス: ch.0 003924 H アドレス: ch.1 00392C H アドレス: ch.2 003934 H bit9 bit6 bit5 bit4 bit3 bit2 DU07 DU06 DU05 DU04 DU03 DU02 DU01 W (X ) W (X ) W (X ) W (X ) W (X ) W (X ) W (X) bit1 DU00 bit8 PDUT0~ PDUT2 ← 読出し/書込み ← 初期値 bit0 PDUT0~ PDUT2 W ← 読出し/書込み (X ) ← 初期値 287 第 13 章 PPG タイマ PPG タイマの動作説明 13.4 PPG タイマの動作について説明します。 ■ PWM 動作 PWM 動作では , 起動トリガの検出時より連続してパルスを出力することができます。 出力パルスの周期は , PCSR 値を変えることにより制御することができます。また , デューティ比は , PDUT 値を変えることにより制御できます。 ● 再起動禁止の場合 図 13.4-1 PWM 動作再起動禁止のタイミング 立上りエッジ検出 トリガは無視されます。 起動 トリガ m n o PPG ① ② ①= T( n + 1 )μs T:カウントクロック周期 ②= T( m + 1 )μs m:PCSR値 n:PDUT値 ● 再起動許可の場合 図 13.4-2 PWM 動作再起動許可のタイミング 立上りエッジ検出 トリガにより再起動します。 起動 トリガ m n o PPG ① ② 288 ①= T( n + 1 )μs T:カウントクロック周期 ②= T( m + 1 )μs m:PCSR値 n:PDUT値 第 13 章 PPG タイマ <注意事項> • PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。 • 起動トリガとして外部 TRG 入力を選択した場合は , 以下の最小パルス幅以上のパルス を入力してください。 最小パルス幅:2 マシンサイクル以上 ただし, 上記に満たないパルスが入力された場合でも, 有効パルスとして認識する場合 があります。また , MB90420G/425G シリーズは , 外部 TRG 入力にフィルタ機能があ りませんので , 必要ならば外部にフィルタなどを追加してください。 ■ ワンショット動作 ワンショット動作では , トリガにより任意の幅の単一パルスを出力することができま す。再起動許可の場合は , 動作中に起動トリガを検出するとカウンタをリロードします。 ● 再起動禁止の場合 図 13.4-3 ワンショット動作再起動禁止のタイミング 立上りエッジ検出 トリガは無視されます。 起動 トリガ m n o PPG ① ② ①= T( n + 1 )μs T:カウントクロック周期 ②= T( m + 1 )μs m:PCSR値 n:PDUT値 ● 再起動許可の場合 図 13.4-4 ワンショット動作再起動許可のタイミング 立上りエッジ検出 トリガにより再起動します。 起動 トリガ m n o PPG ① ② ①= T( n + 1 )μs T:カウントクロック周期 ②= T( m + 1 )μs m:PCSR値 n:PDUT値 289 第 13 章 PPG タイマ ■ 割込み要因とタイミング 起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T (T: カウントク ロック周期 ) を必要とします。 図 13.4-5 割込み出力要因とタイミング 起動 トリガ →最大2.5T← ロード クロック カウント値 PPG XXXXH 0003H 0002H 0001H 0000H 0003H 割込み ソフトウェアトリガ コンペア一致 ボロー ● PWM 出力オール "L" またはオール "H" の出力方法例 図 13.4-6 PWM 出力オール "L", オール "H" の出力方法例 PPG デューティ値 を小さくして いく ⇒ ⇒ ↑ ボローによる割込みでPGMS(マスク ⇒ ビット)に"1"を書き込みます。 また、ボローによる割込みでPGMS (マスクビット)に"0"を書き込めば, 出力することなくPPG波形を出力で きます。 PPG デューティ値 を大きくして いく ⇒ ⇒ 290 ↑ コンペア一致による割込みでデュー ティ設定レジスタに周期設定レジス ⇒ タ値と同じ値を書き込みます。 第 14 章 遅延割込み発生モジュール この章では , 遅延割込み発生モジュールの機能と動 作について説明します。 14.1 遅延割込み発生モジュールの概要 14.2 遅延割込み発生モジュールの動作 291 第 14 章 遅延割込み発生モジュール 14.1 遅延割込み発生モジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー ルです。遅延割込み発生モジュールを使用することで , ソフトウェアで F2MC-16LX CPU に対して割込み要求の発生 / 取消しを行うことができます。 ■ 遅延割込み発生モジュールのブロックダイヤグラム 図 14.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。 図 14.1-1 遅延割込み発生モジュールのブロックダイヤグラム 内部データバス 遅延割込み要因発生/解除 要因ラッチ ■ 遅延割込み発生モジュールのレジスタ一覧 遅延割込み発生モジュール 〔遅延割込み要因発生/解除レジスタ (DIRR:Delayed Interrupt Request Register) 〕のレジスタ構成は以下のとおりです。 図 14.1-2 遅延割込み発生モジュールのレジスタ構成 bit DIRR アドレス:0000009FH 15 14 13 12 11 10 9 8 - - - - - - - R0 R/W 初期値 -------0B リセット時には要因解除状態になります。 DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して "1" を書き込んだときには遅延割込みの要求を発生させ , "0" を書き込んだときには遅延割 込みの要求を解除します。リセット時には要因解除状態になります。未定義ビット領 域は "0", "1" どちらの書込みも結構ですが , 将来の拡張を考慮してこのレジスタにアク セスする際にはセットビット , クリアビット命令を使用することをお勧めします。 ■ 遅延割込み発生モジュールの割込みと EI2OS 表 14.1-1 に , 遅延割込み発生モジュールの割込みと EI2OS を示します。 表 14.1-1 遅延割込み発生モジュールの割込みと EI2OS 割込み番号 #42 (2AH) ×:使用不可 292 割込みレベル設定レジスタ ベクタテーブルのアドレス レジスタ名 アドレス 下位 上位 バンク ICR15 0000BFH FFFF54H FFFF55H FFFF56H EI2OS × 第 14 章 遅延割込み発生モジュール 14.2 遅延割込み発生モジュールの動作 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生 モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求 を発生します。 ■ 遅延割込み発生モジュールの動作 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生モ ジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求を発 生します。ほかの割込み要求が遅延割込み発生モジュールの割込みより優先順位が低 い , またはほかの割込み要求がない場合に , 割込みコントローラは F2MC-16LX CPU に 対して割込み要求を発生します。F2MC-16LX CPU は自分の内部にある CCR レジスタ 中の ILM ビットと割込み要求を比較し , 要求レベルが ILM ビットより高かった場合に 現在実行中の命令が終了し次第 , ハードウェア割込み処理マイクロプログラムを起動 します。この結果 , 遅延割込み発生モジュールの割込みに対する割込み処理ルーチンが 実行されます。割込み処理ルーチン内で DIRR の該当ビットの "0" を書き込むことで遅 延割込み発生モジュールの割込み要因をクリアし , 合わせてタスクの切換えを行いま す。 図 14.2-1 に , 遅延割込み発生モジュールの動作を示します。 図 14.2-1 遅延割込み発生モジュールの動作 遅延割込み発生モジュール 遅延割込みコントローラ WRITE F2MC-16LX ほかの要求 ICR yy ICR yy CMP DIRR CMP ICR xx ICR xx NTA ■ 遅延割込み発生モジュールの使用上の注意 ● 遅延割込み要求ラッチ このラッチは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット に "0" を書き込むことでクリアされます。したがって , ソフトウェアを割込み処理ルー チン内で要因をクリアするように作成しておかないと , 割込み処理から復帰した途端 に再割込み処理を起動しますので注意してください。 293 第 14 章 遅延割込み発生モジュール 294 第 15 章 DTP/ 外部割込み回路 この章では , DTP/ 外部割込み回路の機能と動作に ついて説明します。 15.1 DTP/ 外部割込み回路の概要 15.2 DTP/ 外部割込み回路の構成 15.3 DTP/ 外部割込み回路の端子 15.4 DTP/ 外部割込み回路のレジスタ 15.5 DTP/ 外部割込み回路の動作説明 15.6 DTP/ 外部割込み回路の使用上の注意 15.7 DTP/ 外部割込み回路のプログラム例 295 第 15 章 DTP/ 外部割込み回路 15.1 DTP/ 外部割込み回路の概要 DTP (Data Transfer Peripheral) / 外部割込み回路は , 外部接続の周辺装置と F2MC16LX CPU との間にあって , 周辺装置が発生する割込み要求またはデータ転送要求 を CPU に伝達し , 外部割込み要求の発生または拡張インテリジェント I/O サービス (EI2OS) を起動します。 ■ DTP/ 外部割込み機能 DTP/ 外部割込み機能は , DTP/ 外部割込み端子に入力された信号を起動要因とし , 通常 のハードウェア割込みと同じ手順で CPU に受け付けられ , 外部割込みを発生したり , 拡張インテリジェント I/O サービス (EI2OS) を起動することができます。 割込み要求が CPU に受け付けられた場合 , 対応する拡張インテリジェント I/O サービ ス (EI2OS) が禁止されていると外部割込み機能として動作し , 割込みルーチンに分岐 します。また , EI2OS が許可されていると DTP 機能として動作し , EI2OS による自動 データ転送をして , 指定回数のデータ転送終了時に割込み処理ルーチンに分岐します。 表 15.1-1 に DTP/ 外部割込みの概要を示します。 表 15.1-1 DTP/ 外部割込みの概要 外部割込み 入力端子 割込み要因 8 本 (P50/INT0/ADTG ~ P53/INT3, P00/SIN0/INT4 ~ P03/SIN1/INT7) 要求レベル設定レジスタ (ELVRH/ELVRL) で検出レベルまたはエッジを端子 ごとに選択 "H" レベル /"L" レベル / 立上り エッジ / 立下りエッジの入力 "H" レベル /"L" レベルの入力 割込み番号 #16 (10H) , #18 (12H) , #20 (14H) , #22 (16H) , #24 (18H) , #26 (1AH) 割込み制御 DTP/ 割込み許可レジスタ (ENIR) による , 割込み要求出力の許可と禁止 割込みフラグ DTP/ 割込み要因レジスタ (EIRR) による , 割込み要因の保持 処理選択 EI2OS を禁止に設定 (ICR の ISE=0) EI2OS を許可に設定 (ICR の ISE=1) 処理 外部割込み処理ルーチンへ分岐 EI2OS によるデータ自動転送 , 指定回数 処理後 , 割込みルーチンへ分岐 ICR:割込み制御レジスタ 296 DTP 機能 第 15 章 DTP/ 外部割込み回路 ■ DTP/ 外部割込み回路の割込みと EI2OS 表 15.1-2 に DTP/ 外部割込み回路の割込みと EI2OS を示します。 表 15.1-2 DTP/ 外部割込み回路の割込みと EI2OS 割込み制御レジスタ チャネル ベクタテーブルアドレス 割込み番号 レジスタ名 アドレス 下位 上位 バンク INT0 #16 (10H) ICR02 0000B2H INT1 #18 (12H) ICR03 0000B3H INT2 #20 (14H) ICR04 0000B4H FFFFAC FFFFAD H H INT3 #22 (16H) ICR05 0000B5H FFFFA4H FFFFA5H FFFFA6H #24 (18H) ICR06 0000B6H FFFF9CH FFFF9DH FFFF9EH #26 (1AH) ICR07 0000B7H FFFF94H INT4 INT5 INT6 INT7 EI2OS FFFFC0H FFFFC1H FFFFC2H FFFFB4H FFFFB5H FFFFB6H FFFF95H FFFFAEH △ FFFF96H △:ICR02 ~ ICR07 レジスタを共有する割込み要求を使用しない場合使用可能 297 第 15 章 DTP/ 外部割込み回路 15.2 DTP/ 外部割込み回路の構成 DTP/ 外部割込み回路は , 次の 4 つのブロックで構成されています。 • DTP/ 割込み入力検出回路 • 外部割込みレベルレジスタ (ELVRH/ELVRL) • 外部割込み要求レジスタ (EIRR) • 外部割込み許可レジスタ (ENIR) ■ DTP/ 外部割込み回路のブロックダイヤグラム 図 15.2-1 に DTP/ 外部割込み回路のブロックダイヤグラムを示します。 図 15.2-1 DTP/ 外部割込み回路のブロックダイヤグラム 要求レベル設定レジスタ(ELVR) LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 端子 セレクタ セレクタ P03/INT7 P50/INT0 端子 セレクタ セレクタ P02/INT6 内 端子 端子 P51/INT1 端子 セレクタ セレクタ 部 P01/INT5 端子 P52/INT2 デ ー 端子 セレクタ 端子 セレクタ P53/INT3 P00/INT4 タ バ ス ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 割込み要求番号 #16(10H) #18(12H) #20(14H) #22(16H) #24(18H) #26(1AH) EN7 298 EN6 EN5 EN4 EN3 EN2 EN1 EN0 第 15 章 DTP/ 外部割込み回路 ● DTP/ 外部割込み入力検出回路 端子入力信号から , 端子ごとに割込み要求レベル設定レジスタ (ELVRH/ELVRL) で選 択されたレベルまたはエッジの検出をして , 有効な信号を検出するとその端子に対応 する DTP/ 外部割込み要因レジスタ (EIRR) の IR ビットを "1" にセットします。 ● 要求レベル設定レジスタ (ELVRH/ELVRL) 端子ごとに有効レベルまたはエッジを選択するレジスタです。 ● DTP/ 割込み要因レジスタ (EIRR) DTP/ 外部割込み要因の保持レジスタです。各端子に対応する外部割込み要求フラグ ビットがあり , 端子に有効な信号の入力があると "1" にセットされます。 ● DTP/ 割込み許可レジスタ (ENIR) 端子ごとに , 外部割込みを許可 / 禁止するレジスタです。 299 第 15 章 DTP/ 外部割込み回路 15.3 DTP/ 外部割込み回路の端子 DTP/ 外部割込み回路の端子および端子のブロックダイヤグラムを示します。 ■ DTP/ 外部割込み回路の端子 DTP/外部割込み回路の端子は, 汎用ポートおよび他の周辺機能と兼用になっています。 表 15.3-1 に端子の機能 , 入出力形式および DTP/ 外部割込み回路使用時の設定などを示 します。 表 15.3-1 DTP/ 外部割込み回路の端子 端子名 端子機能 入出力形式 プルアップ 抵抗 スタンバイ 制御 端子の使用に 必要な設定 なし 入力ポートに設定 (DDR5 の bit0=0) 入力ポートに設定 (DDR5 の bit1=0) 入力ポートに設定 (DDR5 の bit2=0) 入力ポートに設定 (DDR5 の bit3=0) 入力ポートに設定 (DDR0 の bit0=0) 入力ポートに設定 (DDR0 の bit1=0) UART0 データ出力禁止 入力ポートに設定 (DDR0 の bit2=0) UART0 クロック出力禁止 入力ポートに設定 (DDR0 の bit3=0) P50/INT0/ ADTG P51/INT1 P52/INT2 ポート 5 入出力 / 外部割込み入力 P53/INT3 CMOS 出力 / CMOS ヒステ リシス入力 P00/SIN0/ INT4 P01/SOT0/ INT5 P02/SCK0/ INT6 なし ポート 0 入出力 / 外部割込み入力 P03/SIN1/ INT7 ■ DTP/ 外部割込み回路の端子のブロックダイヤグラム 図 15.3-1 に DTP/ 外部割込み回路の端子のブロックダイヤグラムを示します。 図 15.3-1 DTP/ 外部割込み回路の端子のブロックダイヤグラム PDR(ポートデータレジスタ) ー 内 部 デ タ バ ス PDRリード 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード 300 リソース入力(INT) スタンバイ制御(SPL=1) 第 15 章 DTP/ 外部割込み回路 15.4 DTP/ 外部割込み回路のレジスタ DTP/ 外部割込み回路のレジスタ一覧を示します。 ■ DTP/ 外部割込み回路のレジスタ DTP/ 外部割込み回路は以下の 3 つのレジスタから構成されます。 • DTP/ 割込み要因レジスタ (EIRR) • DTP/ 割込み許可レジスタ (ENIR) • 要求レベル設定レジスタ (ELVRH/ELVRL) 図 15.4-1 に DTP/ 外部割込み回路のレジスタ一覧を示します。 図 15.4-1 DTP/ 外部割込み回路のレジスタ一覧 アドレス 000031H,000030H 000033H,000032H bit15 bit8 DTP/割込み要因レジスタ(EIRR) bit7 bit0 DTP/割込み許可レジスタ(ENIR) 要求レベル設定レジスタ(ELVRH/ELVRL) 301 第 15 章 DTP/ 外部割込み回路 DTP/ 割込み要因レジスタ (EIRR) 15.4.1 DTP/ 割込み要因レジスタ (EIRR) は , 割込み要因の保持とクリアをします。 ■ DTP/ 割込み要因レジスタ (EIRR) 図 15.4-2 に DTP/ 割込み要因レジスタの構成を , 表 15.4-1 に各ビットの機能を示しま す。 図 15.4-2 DTP/ 割込み要因レジスタ (EIRR) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 000031H ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 R/W R/W R/W R/W R/W R/W R/W R/W ER7 ~ ER0 R/W :リード/ライト可能 :初期値 0 1 bit0 ENIR 初期値 00000000 B 外部割込み要求フラグビット 読出し時 書込み時 DTP/外部割込み入力なし このビットのクリア DTP/外部割込み入力あり 変化なし,ほかへの影響なし 表 15.4-1 DTP/ 割込み要因レジスタ (EIRR) の各ビットの機能説明 ビット名 bit15 ~ bit8 ER7 ~ ER0: 外部割込み要求 フラグビット 機 能 ・DTP/ 外部割込み端子に , 要求レベル設定レジスタ (ELVRH/ELVRL) の LB7, LA7 ~ LB0, LA0 ビットで選択されたエッジまたはレベル信号が入力された場合 "1" に セットされます ( 割込み要因の保持 ) 。 ・このビットと対応する DTP/ 割込み許可レジスタ (ENIR) の EN7 ~ EN0 ビットが "1" の場合 CPU へ割込み要求を出力します。 ・書込み時は "0" でクリアされ , "1" ではこのビットに影響を与えず変化しません。 ・拡張インテリジェント I/O サービス (EI2OS) が起動された場合 , 1 データの転送が 終了した時点で , 対応する外部割込み要求フラグビットは自動的にクリアされま す。 ( 注意事項 )・リードモディファイライト系命令の読出し時には "1" が読み出されます。 複数の外部割込み要求出力が許可 (ENIR:EN7 ~ EN0=1) されている場合 , CPU が割込みを受け付 けたビット (ER7 ~ ER0 の "1" にセットされているビット ) だけをクリアするようにしてくださ い。それ以外のビットを無条件にクリアすることは避けてください。初期値は "00H" ですが , DTP/ 外部割込み端子の状態によってリセット解除後の値は変化します。 ・DTP/ 外部割込み要求フラグビット (EIRR:ER) の値は , 対応する DTP/ 外部割込み許可ビット (ENIR:EN) が "1" に設定されている時のみ有効です。DTP/ 外部割込みが許可されていない状態 (ENIR:EN=0) では ,DTP/ 外部割込み要因の有無にかかわらず DTP/ 外部割込み要求フラグビットが リセットされる可能性があります。 ・DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要求フラグビット (EIRR:ER) をクリアしてください。 302 第 15 章 DTP/ 外部割込み回路 15.4.2 DTP/ 割込み許可レジスタ (ENIR) DTP/ 割込み許可レジスタ (ENIR) は , 割込み要求の CPU への出力許可 / 禁止をしま す。 ■ DTP/ 割込み許可レジスタ (ENIR) 図 15.4-3 に DTP/ 割込み許可レジスタ (ENIR) の構成を , 表 15.4-2 に各ビットの機能を 示します。 また , 表 15.4-3 に DTP/ 割込み要因レジスタ (EIRR) および DTP/ 割込み許可レジスタ (ENIR) と各チャネルの対応を示します。 図 15.4-3 DTP/ 割込み許可レジスタ (ENIR) アドレス bit15 000030 H bit8 EI R R R/W :リード/ライト可能 bit7 bit6 bit6 bit4 bit3 bit2 bit1 bit0 EN 7 EN 6 EN 5 EN 4 EN 3 EN 2 EN 1 EN 0 R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W EN7~EN0 外部割込み要求許可ビット 0 1 外部割込み要求禁止 外部割込み要求許可 : 初期値 表 15.4-2 DTP/ 割込み許可レジスタ (ENIR) の各ビットの機能説明 ビット名 bit7 ~ bit0 機 能 EN7 ~ EN0; 外部割込み要求 許可ビット CPU への割込み要求出力の許可 / 禁止をするビットです。このビットと , 対応する DTP/ 割込み要因レジスタ (EIRR) の ER7 ~ ER0 のビットが "1" の場合 , CPU へ割込 み要求を出力します。 ・外部割込み要求許可ビットの状態にかかわらず , DTP/ 外部割込み端子の状態は ポートデータレジスタで , 直接読み出せます。 ・DTP/ 割込み要因レジスタ (EIRR) の ER7 ~ ER0 のビットは外部割込み要求許可 ビットの値に関係なく , 割込み要因を検出すると "1" にセットされます。 ( 注意事項 )・DTP/ 外部割込み端子を使用する場合 , ポート方向レジスタの対応するビットに "0" を書き込み , 端子を入力に設定してください。 ・DTP/ 外部割込みを許可 (ENIR:EN=1) する前に , 対応する DTP/ 外部割込み要求フラグビット (EIRR:ER) をクリアしてください。 表 15.4-3 DTP/ 割込み制御レジスタ (EIRR, ENIR) と各チャネルの対応 DTP/ 外部割込み端子 割込み番号 外部割込み要求フラグ ビット 外部割込み要求許可ビット P03/INT7 #26 (1AH) ER7 EN7 P02/INT6 #26 (1AH) ER6 EN6 P01/INT5 #24 (18H) ER5 EN5 P00/INT4 #24 (18H) ER4 EN4 P53/INT3 #22 (16H) ER3 EN3 P52/INT2 #20 (14H) ER2 EN2 P51/INT1 #18 (12H) ER1 EN1 P50/INT0 #16 (10H) ER0 EN0 303 第 15 章 DTP/ 外部割込み回路 15.4.3 要求レベル設定レジスタ (ELVRH/ELVRL) 要求レベル設定レジスタ (ELVRH/ELVRL) は , DTP/ 外部割込み端子に入力される信 号が DTP/ 外部割込み要因であることを検出するための信号のレベルまたはエッジの 種類を端子ごとに選択します。 ■ 要求レベル設定レジスタ (ELVRH/ELVRL) 図 15.4-4 に要求レベル設定レジスタ (ELVRH/ELVRL) の構成を , 表 15.4-4 に各ビット の機能を示します。 また, 表 15.4-5 に要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットと , 各チャネル の対応を示します。 図 15.4-4 要求レベル設定レジスタ (ELVRH/ELVRL) の構成 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000033H 000032H 初期値 LB1 LA1 LB0 LA0 00000000B 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 00000000B LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 LB3 LA3 LB2 LA2 LB7~ LB0 LA7~ LA0 0 0 1 1 0 1 0 1 R/W :リード/ライト可能 :初期値 外部割込み要求検出設定ビット "L"レベル検出 "H"レベル検出 立上りエッジ検出 立下りエッジ検出 表 15.4-4 要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットの機能説明 ビット名 bit15 ~ bit0 LB7 ~ LB0, LA7 ~ LA0: 要求検出 選択ビット 機 能 ・DTP/ 外部割込み端子に入力される , DTP/ 外部割込み要因となる信 号のレベルまたはエッジの種類を選択するビットです。 ・1 つの端子に , それぞれ 2 ビットずつ割り当てられています。 ( 注意事項 ) DTP/ 外部割込み端子に , 選択された検出信号が入力されると , DTP/ 割込み許可レ ジスタ (ENIR) の設定などに関係なく , 外部割込み要求フラグビットに "1" がセッ トされます。 表 15.4-5 要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットと各チャネルの対応 DTP/ 外部割込み端子 304 割込み番号 ビット名 P03/INT7 #26 (1AH) LB7, LA7 P02/INT6 #26 (1AH) LB6, LA6 P01/INT5 #24 (18H) LB5, LA5 P00/INT4 #24 (18H) LB4, LA4 P53/INT3 #22 (16H) LB3, LA3 第 15 章 DTP/ 外部割込み回路 表 15.4-5 要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットと各チャネルの対応 P52/INT2 #20 (14H) LB2, LA2 P51/INT1 #18 (12H) LB1, LA1 P50/INT0 #16 (10H) LB0, LA0 305 第 15 章 DTP/ 外部割込み回路 15.5 DTP/ 外部割込み回路の動作説明 DTP/ 外部割込み回路には , 外部割込み機能と DTP 機能があります。各機能の設定 と動作について説明します。 ■ DTP/ 外部割込み回路の設定 DTP/ 外部割込み回路を動作させるには , 図 15.5-1 の設定が必要です。 図 15.5-1 DTP/ 外部割込み回路 ICR13/ bit15 bit14 bit13 bit12 bit11 bit10 bit9 ICR10/ ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 ICR80/ 0 ◆ ◆ ICR07/ 1 ◆ ◆ ◆ ◆ ◆ ◆ ICR06/ ICR03 bit8 IL0 ◆ ◆ bit3 bit2 bit1 bit0 ICS3 ICS2 ICS1 ICS0 ISE bit7 IL2 IL1 IL0 ◆ ◆ ◆ ◆ ◆ ◆ ◆ bit6 ◆ bit5 ◆ bit4 ◆ 0 1 外部割込み時 DTP 時 EIRR/ ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 ENIR ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ELVR DDR5/0 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ P53 P52 P51 P50 P03 P02 P01 P00 △ △ △ △ △ △ △ △ ◆ :使用ビット ◇ :使用する端子の対応数ビットに "1" を設定 △ :使用する端子の対応数ビットに "0" を設定 0 :"0" を設定 1 :"1" を設定 DTP/ 外部割込み回路のレジスタは , 次の手順で設定してください。 1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポート に設定する。 2) DTP/ 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。 3) 要求レベル設定レジスタ (ELVRH/ELVRL) の対象となるビットを設定する。 4) DTP/ 割込み要因レジスタ (EIRR) の対象となるビットをクリアする。 5) DTP/ 割込み許可レジスタ (ENIR) の対象となるビットを許可する。 DTP/ 外部割込み回路のレジスタの設定は , 最初に外部割込み要求出力を禁止 (ENIR の EN7 ~ EN0=0) してから行います。また , 外部割込み要求出力を許可 (ENIR の EN7 ~ EN0=1) する場合 , 先に対応する割込み要求フラグビットをクリア (EIRR の ER7 ~ ER0=0) する必要があります。 これは , レジスタ設定時に誤って割込み要求が発生するのを避けるためです。 306 第 15 章 DTP/ 外部割込み回路 ● 外部割込み機能と DTP 機能の切換え 外部割込み機能と DTP 機能の切換えは , 対応する割込み制御レジスタ (ICR) の ISE ビッ トの設定で行います。ISE ビットが "1" の場合 , 拡張インテリジェント I/O サービス (EI2OS) が許可され , DTP 機能として動作します。また , "0" の場合 EI2OS は禁止され , 外部割込み機能だけの動作となります。 <注意事項> 複数の割込み要求が 1 つの ICR レジスタに割り当てられている場合 , 割込みレベル (IL2 ~ IL0) はすべての割込み要求に共通となります。また , 1 つの割込み要求で EI2OS を使用す ると , 他の割込み要求は原則として使用できません。 ■ DTP/ 外部割込み動作 DTP/ 外部割込み回路の制御ビットと割込み要因は , 表 15.5-1 のようになっています。 表 15.5-1 DTP/ 外部割込み回路の制御ビットと割込み要因 DTP/ 外部割込み回路 割込み要求フラグビット EIRR:ER7 ~ ER0 割込み要求許可ビット ENIR:EN7 ~ EN0 割込み要因 INT7 ~ INT0 端子への , 有効エッジ / レベルの入力 DTP/ 外部割込み要求の設定の後 , 対応する端子に要求レベル設定レジスタ (ELVRH/ ELVRL) で設定された要因が入力されると , このリソースは割込みコントローラに対 して , 割込み要求信号を発生します。ISE ビットが "0" の場合は , 割込み処理マイクロ プログラムを実行し , "1" の場合は , 拡張インテリジェント I/O サービス処理 (DTP 処理 ) マイクロプログラムを実行します。図 15.5-2 に , DTP/ 外部割込み回路の動作フロー チャートを示します。 307 第 15 章 DTP/ 外部割込み回路 図 15.5-2 DTP/ 外部割込み回路の動作フローチャート DTP/外部割込み回路 ELVRH/ ELVRL ほかの要求 割込みコントローラ ICR EIRR CPU IL YY CMP CMP ICR ENIR ILM XX 割込み処理 マイクロ プログラム 要因 DTP処理ルーチン (EI2OS起動) DTP/外部割込み 要求発生 メモリ 周辺データ転送 ディスクリプタ更新 割込みコントローラ 受付け判定 ディスクリプタ データカウンタ CPU割込み 受付け判定 ≠0 0 割込み処理ルーチン 再設定 または 停止 DTP処理からの復帰 割込み処理 マイクロプログラム 起動 ICR:ISE 0 外部割込みルーチンを起動 処理と割込みフラグクリア 外部割込みから復帰 308 CPU処理復帰 1 第 15 章 DTP/ 外部割込み回路 外部割込み機能 15.5.1 DTP/ 外部割込み回路には , 選択した信号レベルの DTP/ 外部割込み端子への入力で 割込み要求を発生させる外部割込み機能があります。 ■ 外部割込み機能 DTP/ 外部割込み端子に , 要求レベル設定レジスタ (ELVRH/ELVRL) で選択した信号 ( エッジまたはレベル ) が検出されると , DTP/ 割込み要因レジスタ (EIRR) の ER7 ~ ER0 ビットに "1" がセットされます。この場合 , DTP/ 割込み許可レジスタの割込み要 求許可ビットが許可 (ENIR の EN7 ~ EN0=1) されていると , 割込みコントローラに対 して , 割込み要因の発生を通知します。割込みコントローラで , ほかの周辺機能からの 割込み要求に対する割込みレベル (ICR の IL2 ~ IL0) の強弱 , 同時発生時の割込み優先 順位などが判定され, CPUで, インタラプトレベルマスクレジスタ (PS のILM2~ILM0) と割込みレベルの強弱 , 割込み許可ビット (PS の CCR=1) などが判定されます。割込み 要求が CPU に受け付けられた時点で , CPU の内部動作による割込み処理 ( マイクロプ ログラム ) を実行し , 割込み処理ルーチンに分岐します。割込み処理ルーチンで対応す る割込み要求フラグビットに "0" を書き込み , 割込み要求をクリアしてください。 <注意事項> ER ビットは , 対応する EN ビットの状態に関係なく , DTP/ 外部割込み起動要因が発生す ると "1" にセットされます。 割込みルーチンが起動された場合は, 起動要因となったERビットをクリアしてください。 ER ビットが "1" のままでは割込みから復帰できません。この場合 , 割込み要因以外のフ ラグビットを無条件でクリアしないように注意してください。 309 第 15 章 DTP/ 外部割込み回路 DTP 機能 15.5.2 DTP/ 外部割込み回路には , 外部の周辺装置からの信号を DTP/ 外部割込み端子から 検出し , 拡張インテリジェント I/O サービスを起動する DTP 機能があります。 ■ DTP 機能の動作説明 DTP 機能は , 外部の周辺装置からのデータ転送要求信号を検出し , メモリと周辺装置の 間で , データを自動転送する機能です。レベル検出の外部割込み機能で拡張インテリ ジェント I/O サービス (EI2OS) を起動します。CPU に割込み要求が受け付けられるま では , 外部割込み機能と同様の動作をしますが , EI2OS の動作が許可 (ICR の ISE=1) さ れていれば , 割込み要求が受け付けられた時点で , EI2OS を起動し , データ転送を開始 します。1 データの転送が終了するとディスクリプタの更新などが行われ , 割込み要求 フラグビットをクリアして , 端子からの次の要求に備えます。EI2OS による転送がすべ て終了すると , 割込み処理ルーチンに分岐します。 図 15.5-3 にメモリと外部周辺装置とのインタフェース例を示します。 図 15.5-3 外部周辺装置とのインタフェース例 "H"レベル要求(ELVR:LB0,LA0=01B) INT0端子への入力 (DTP要因) CPU内部動作 (マイクロプログラム) ディスクリプタ 選択,読出し ディスクリプタ 更新 リードアドレス アドレスバス端子 ライトアドレス ライトデータ リードデータ データバス端子 リード信号 ライト信号 *1 外部接続の 周辺装置 内部データバス ライト動作*2 レジスタ データ転送 要求 *1 リード動作 DTP要因*1 INT DTP/ 外部割込み 回路 割込み 要求 CPU (EI2OS) 内部メモリ *1 :転送開始後,3マシンクロック以内に取り下げる *2 :拡張インテリジェントI/Oサービスが「周辺→メモリ転送」のとき <注意事項> 外部周辺装置は , 最初の転送が開始されてから 3 マシンクロック以内に , データ転送要求 信号 (DTP 要因 ) のレベルだけを取り下げてください。 310 第 15 章 DTP/ 外部割込み回路 15.6 DTP/ 外部割込み回路の使用上の注意 DTP/ 外部割込み回路の入力信号 , スタンバイモードの解除および割込みに関連する 注意を示します。 ■ DTP/ 外部割込み回路の使用上の注意 ● DTP 機能を用いた場合の外部に接続する周辺装置の条件 DTP 機能がサポートできる外部接続の周辺装置は , 転送が行われると自動的にデータ 転送要求をクリアするものでなければなりません。また , 転送動作を開始してから 3 マ シンクロック以内に転送要求を取り下げないと , DTP/ 外部割込み回路は次の転送要求 が発生したものとして扱ってしまいます。 ● 外部割込み入力極性 要求レベル設定レジスタ (ELVRH/ELVRL) の設定がエッジ検出の場合 , エッジが入力 されたことを検出するためには , パルス幅は最小 3 マシンクロック必要です。 設定がレベル検出の場合 , 割込み要因となるレベルが入力されると , DTP/ 割込み要因 レジスタ (EIRR) 内部の要因 F/F が "1" にセットされ , 図 15.6-1 に示すように , 要因が保 持されます。このため , 要因が取り下げられても , 割込み要求出力許可状態であれば , 割込みコントローラへの要求はアクティブのままです。割込みコントローラへの要求 を取り下げるには, 外部割込み要求フラグビットをクリアして, 図 15.6-2 に示すように 要因 F/F をクリアする必要があります。 図 15.6-1 レベル設定時の要因保持回路のクリア DTP/ 外部割込み要因 DTP/割込み入力 検出回路 要因FF (EIRRレジスタ) 許可ゲート 割込み コントローラへ (割込み要求) クリアしない限り要因を保持し続ける 図 15.6-2 割込み要求出力許可時の DTP/ 外部割込み要因と割込み要求の関係 DTP/外部割込み要因 ("H"レベル検出時) 割込み要因の取下げ 割込みコントローラ への割込み要求 要因F/Fのクリアによってインアクティブとなる 311 第 15 章 DTP/ 外部割込み回路 ● 割込みに関する注意 外部割込み機能時に外部割込み要求フラグビットが"1"で, 割込み要求出力が許可された 状態では , 割込み処理から復帰できません。割込み処理ルーチン内で外部割込み要求フ ラグビットのクリアを必ず行ってください。DTP 機能時は , EI2OS で自動的にクリアさ れます。また , レベル検出時は , 割込み要因となるレベルが入力されたままであれば , 外 部割込み要求フラグビットをクリアしても , すぐに再セットされます。必要に応じて割 込み要求出力を禁止するか , 割込み要因そのものを解消してください。 ● CAN WAKEUP 機能 CAN WAKEUP 機能は , INT0 端子を RX 端子と内部で接続を切り換えているため CAN WAKEUP 機能を使用する場合は , INT0 の機能は使用できません。 312 第 15 章 DTP/ 外部割込み回路 15.7 DTP/ 外部割込み回路のプログラム例 外部割込み機能と DTP 機能のプログラム例を示します。 ■ 外部割込み機能のプログラム例 ● 処理仕様 INT0 端子に入力されるパルスの立上りエッジを検出して , 外部割込みを発生します。 【コーディング例】 ICR02 EQU 0000B2H ; DTP/ 外部割込み回路用割込み制御レジスタ DDR5 EQU 000015H ; ポート 5 方向レジスタ ENIR EQU 000030H ; DTP/ 割込み許可レジスタ EIRR EQU 000031H ; DTP/ 割込み要因レジスタ ELVRL EQU 000032H ; 要求レベル設定レジスタ ELVRH EQU 000033H ; 要求レベル設定レジスタ ER0 EQU EIRR:0 ; INT0 割込みフラグビット EN0 EQU ENIR:0 ; INT0 割込み許可ビット ;---------- メインプログラム ------------------------------------------------CODE CSEG START: ; : ; スタックポインタ(SP)などは初期化済みとする MOV I:DDR5, #00000000B ; DDR5 を入力に設定 AND CCR, #0BFH ; 割込みディセーブル MOV I:ICR02, #00H ; 割込みレベル 0( 最強 ), EI2OS はディセーブル CLRB EN0 ; ENIR で INT0 を禁止 MOV I:ELVR, #00000010B ; INT0 は立上りエッジ選択 CLRB I:ER0 ; EIRR で INT0 の要因クリア SETB I:EN0 ; ENIR で INT0 を許可 MOV ILM, #07H ; PS 内 ILM をレベル 7 に設定 OR CCR, #40H ; 割込み許可イネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H BRA LOOP ;---------- 割込みプログラム ------------------------------------------------WARI: CLRB ER0 ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 --------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFC0H ; 割込み #16(10H) にベクタを設定 DSL ORG WARI 0FFDCH ; リセットベクタ設定 313 第 15 章 DTP/ 外部割込み回路 VECT DSL DB ENDS END START 00H ; シングルチップモードに設定 START ■ DTP 機能のプログラム例 ● 処理仕様 INT0 端子に入力される信号の "H" レベルを検出して , 拡張インテリジェント I/O サー ビス (EI2OS) の ch.0 を起動します。 DTP 処理 (EI2OS) で RAM 上のデータをポート 0 に出力します。 【コーディング例】 ICR02 EQU 0000B2H ; DTP/ 外部割込み回路用割込み制御レジスタ DDR0 EQU 000010H ; ポート 0 方向レジスタ DDR5 EQU 000015H ; ポート 5 方向レジスタ ENIR EQU 000030H ; DTP/ 割込み許可レジスタ EIRR EQU 000031H ; DTP/ 割込み要因レジスタ ELVRL EQU 000032H ; 要求レベル設定レジスタ ELVRH EQU 000033H ; 要求レベル設定レジスタ ER0 EQU EIRR:0 ; INT0 割込みフラグビット EN0 EQU ENIR:0 ; INT0 割込み許可ビット 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 ; データカウンタ上位 ;---------- メインプログラム ------------------------------------------------CODE CSEG START: ; : ; スタックポインタ (SP) などは初期化済みとする MOV I:DDR0, #11111111B ; DDR0 を出力に設定 MOV I:DDR5, #00000000B ; DDR5 を入力に設定 AND CCR, #0BFH ; 割込みディセーブル MOV I:ICR02, #08H ; 割込みレベル 0( 最強 ) ; EI2OS イネーブル , ch.0 MOV BAPL, #00H ; 出力データのアドレスを設定 MOV BAPM, #06H ; MOV BAPH, #00H ; MOV ISCS, #12H ; バイト転送 , I/O アドレス固定 , ; バッファアドレス +1, メモリ→ I/O へ転送 MOV IOAL, #00H ; 転送先アドレスポインタとして MOV IOAH, #00H ; ポート 0(PDR0) を指定 MOV DCTL, #0AH ; 転送回数 10 回 MOV DCTH, #00H ; CLRB I:EN0 ; ENIR で INT0 を禁止 314 第 15 章 DTP/ 外部割込み回路 MOV I:ELVR, #00000001B ; INT0 は "H" レベル選択 CLRB I:ER0 ; EIRR で INT0 の要因クリア SETB I:EN0 ; ENIR で INT0 を許可 MOV ILM, #07H ; PS 内 ILM をレベル 7 に設定 OR CCR, #40H ; 割込みイネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H ; BRA LOOP ; ;---------- 割込みプログラム ------------------------------------------------WARI: CLRB I:ER0 ; 割込み要求フラグをクリア ; : ; 必要に応じてチャネル切換え, 転送アドレスの ; 変更 ; ユーザ処理 ; EI2OS の終了などの再設定を行う , 終了させる ; 場合は ; : ; 割込みも禁止すること RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFC0H ; 割込み #16(10H) にベクタを設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H ; リセットベクタ設定 ; シングルチップモードに設定 START 315 第 15 章 DTP/ 外部割込み回路 316 第 16 章 8/10 ビット A/D コンバータ この章では , 8/10 ビット A/D コンバータの機能と 動作について説明します。 16.1 8/10 ビット A/D コンバータの概要 16.2 8/10 ビット A/D コンバータの構成 16.3 8/10 ビット A/D コンバータの端子 16.4 8/10 ビット A/D コンバータのレジスタ 16.5 8/10 ビット A/D コンバータの割込み 16.6 8/10 ビット A/D コンバータの動作 16.7 8/10 ビット A/D コンバータ使用上の注意 16.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発モードの EI2OS 起動例 ) 16.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続モードの EI2OS 起動例 ) 16.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止モードの EI2OS 起動例 ) 317 第 16 章 8/10 ビット A/D コンバータ 16.1 8/10 ビット A/D コンバータの概要 8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10 ビットまたは 8 ビットのデジタル値に変換する機能があります。入力信号は , 8 チャ ネルのアナログ入力端子から選択し , 変換起動は , ソフトウェア , 16 ビットリロード タイマ 1 および外部端子からのトリガ入力起動の 3 種類から選択できます。 ■ 8/10 ビット A/D コンバータの機能 アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) をデジタル値に A/D 変換す る機能があり , 次の特長をもっています。 • 変換時間は , 最少 6.13 μs ( マシンクロック 16MHz の場合 , サンプリング時間を含む ) です。 • サンプリング時間は , 最小 3.75 μs ( マシンクロック 16MHz の場合 ) です。 • 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。 • 10 ビットまたは 8 ビットの分解能が選択できます。 • アナログ入力端子は 8 チャネルからプログラムで選択可能です。 • A/D 変換終了時に割込み要求を発生でき , EI2OS を起動することもできます。 • 割込み許可の状態では変換データ保護機能が働くため連続変換してもデータの欠 落がありません。 • 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 ( 立上りエッジ ) , 外 部からのトリガ入力 ( 立下りエッジ ) から選択できます。 変換モードは , 表 16.1-1 に示すように 3 種類あります。 表 16.1-1 8/10 ビット A/D コンバータの変換モード 変換モード シングル変換動作 スキャン変換動作 単発変換モード 連続した複数のチャネル ( 最大 8 指定したチャネル (1 チャネルのみ ) チャネルまで指定可能 ) を 1 回変換 を 1 回変換して終了 して終了 連続変換モード 連続した複数のチャネル ( 最大 8 指定したチャネル (1 チャネルのみ ) チャネルまで指定可能 ) を繰り返し を繰り返し変換 変換 停止変換モード 連続した複数のチャネル ( 最大 8 指定したチャネル (1 チャネルのみ ) チャネルまで指定可能 ) を変換 を 1 回変換したら一時停止し , 次の ただし , 1 チャネル変換ごとに一時停 起動がかかるまで待機 止し , 次の起動がかかるまで待機 ■ 8/10 ビット A/D コンバータの割込みと EI2OS 表 16.1-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルアドレス 割込み番号 #32 (20H) ○ : 使用可能 318 レジスタ名 アドレス 下位 上位 バンク ICR10 0000BAH FFFF7CH FFFF7DH FFFF7EH EI2OS ○ 第 16 章 8/10 ビット A/D コンバータ 16.2 8/10 ビット A/D コンバータの構成 8/10 ビット A/D コンバータは , 次の 8 つの回路ブロックで構成されています。 • A/D 制御ステータスレジスタ (ADCS) • A/D データレジスタ (ADCR) • デコーダ • アナログチャネルセレクタ • サンプルホールド回路 • D/A コンバータ • コンパレータ • コントロール回路 ■ 8/10 ビット A/D コンバータのブロックダイヤグラム 図 16.2-1 に 8/10 ビット A/D コンバータのブロックダイヤグラムを示し , 各回路ブロッ クの概略を説明します。 図 16.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム AVcc AVRH Avss MPX 入 力 回 路 逐次比較レジスタ F MC-16LXバス 比較器 サンプル& ホールド回路 2 AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 D/Aコンバータ デコーダ A/Dデータレジスタ ADCRH,L A/D制御ステータスレジスタ上位 A/D制御ステータスレジスタ下位 16ビット リロードタイマ1 タイマ起動 P50/ADTG トリガ起動 ADCSH,L 動作クロック プリスケーラ 319 第 16 章 8/10 ビット A/D コンバータ ● A/D 制御ステータスレジスタ (ADCS) ソフトウェアによる起動 , 起動トリガの選択 , 変換モードの選択 , A/D 変換チャネルの 選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換中の 表示をします。 ● A/D データレジスタ (ADCR) A/D 変換結果を格納するレジスタで , A/D 変換の分解能を選択する機能もあります。 ● デコーダ A/D 制御ステータスレジスタ (ADCS) の ANE0 ~ ANE2, ANS0 ~ ANS2 ビットの設定 から , 使用するアナログ入力端子を選択する回路です。 ● アナログチャネルセレクタ 8 本のアナログ入力端子の中から , 使用する端子を選択する回路です。 ● サンプルホールド回路 アナログチャネルセレクタで選択された入力電圧を保持する回路です。A/D 変換を起 動した直後の入力電圧をサンプルホールドすることによって , A/D 変換中 ( 比較中 ) の 入力電圧の変動の影響を受けずに変換できます。 ● D/A コンバータ サンプルホールドされた入力電圧と比較するための基準電圧を発生します。 ● コンパレータ サンプルホールドされた入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定 します。 ● コントロール回路 コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了すると , 変 換結果を A/D データレジスタ (ADCR) に格納し , 割込み要求を発生します。 320 第 16 章 8/10 ビット A/D コンバータ 16.3 8/10 ビット A/D コンバータの端子 8/10 ビット A/D コンバータの端子および端子のブロックダイヤグラムを示します。 ■ 8/10 ビット A/D コンバータの端子 A/D コンバータの端子は , 汎用ポートと兼用になっています。表 16.3-1 に端子の機能 , 入出力形式 , 8/10 ビット A/D コンバータ使用時の設定などを示します。 表 16.3-1 8/10 ビット A/D コンバータの端子 機 能 端子名 ch.0 P60/AN0 ch.1 P61/AN1 ch.2 P62/AN2 端子機能 入出力形式 ch.6 CMOS 出力 / P63/AN3 ポート 6 入出力 / CMOS ヒステ リシス入力 , P64/AN4 アナログ入力 または P65/AN5 アナログ入力 P66/AN6 ch.7 P67/AN7 ch.3 ch.4 ch.5 プルアップ 設定 なし スタンバイ 制御 端子の使用に必要な I/O ポートの設定 なし ポート 6 を入力設定 (DDR6 の bit0 ~ bit7=0) アナログ入力に設定 (ADER の bit0 ~ bit7=1) 321 第 16 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム 図 16.3-1 に A/D コンバータの端子のブロックダイヤグラムを示します。 図 16.3-1 P60/AN0 ~ P67/AN7 端子のブロックダイヤグラム ADER PDR(ポートデータレジスタ) アナログ入力 内 PDRリード 部 出力ラッチ デ - PDRライト タ 端子 DDR(ポート方向レジスタ) バ 方向ラッチ DDRライト ス DDRリード スタンバイ制御(SPL=1) <注意事項> • 入力ポートとして使用する端子は , 対応する DDR6 レジスタのビットを "0" に設定し , かつ外部端子にプルアップ抵抗を付加してください。 また , ADER レジスタの対応するビットを "0" に設定してください。 • アナログ入力端子として使用する端子は , 対応する ADER レジスタのビットを "1" に設 定してください。この場合の PDR6 レジスタの読出し値は "0" になります。 322 第 16 章 8/10 ビット A/D コンバータ 16.4 8/10 ビット A/D コンバータのレジスタ 8/10 ビット A/D コンバータのレジスタ一覧を示します。 ■ 8/10 ビット A/D コンバータのレジスタ一覧 図 16.4-1 に 8/10 ビット A/D コンバータのレジスタ一覧を示します。 図 16.4-1 8/10 ビット A/D コンバータのレジスタ一覧 15 14 14 13 13 12 12 11 11 10 10 bit bit 15 00001A 00001AH H 99 88 77 66 55 44 33 22 11 00 ADER ADER 000021 000021H/000020 H/000020 HH ADCSH ADCSH ADCSL ADCSL 000023 000023H/000022 H/000022 HH ADCRH ADCRH ADCRL ADCRL 323 第 16 章 8/10 ビット A/D コンバータ 16.4.1 A/D 制御ステータスレジスタ上位 (ADCSH) A/D 制御ステータスレジスタ上位 (ADCSH) には , ソフトウェアによる起動 , 起動ト リガの選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および 変換中の確認をする機能があります。 ■ A/D 制御ステータスレジスタ上位 (ADCSH) 図 16.4-2 に A/D 制御ステータスレジスタ上位 (ADCSH) のビット構成を , 表 16.4-1 に各 ビットの機能を示します。 図 16.4-2 A/D 制御ステータスレジスタ上位 (ADCSH) のビット構成 bit0 初期値 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 000021H (ADCSL) 00000000B BUSY INT INTE PAUS STS1 STS0 STRT RESV R/W R/W R/W R/W R/W R/W W R/W 予約ビット RESV このビットへは必ず"0"を書き込んでください。 A/D変換起動ビット (ソフトウェア起動時のみ有効) STRT 0 A/D変換機能を起動しない 1 A/D変換機能を起動する STS1 STS0 0 ソフトウェア起動 0 1 トリガ起動またはソフトウェア起動 1 0 タイマ起動またはソフトウェア起動 1 1 ゼロ検出起動,タイマ起動または ソフトウェア起動 PAUS A/D変換動作の一時停止は発生していない 1 A/D変換動作が一時停止中 割込み要求許可ビット 0 割込み要求出力の禁止 1 割込み要求出力の許可 INT 割込み要求フラグビット 読出し時 書込み時 0 A/D変換未終了 このビットのクリア 1 A/D変換終了 変化なし,ほかへの影響なし BUSY 324 一時停止フラグビット (EI2OS使用時のみ有効) 0 INTE R/W :リード/ライト可能 W :ライトオンリ - :未定義 :初期値 A/D起動要因選択ビット 0 変換中ビット 読出し時 書込み時 0 A/D変換停止中 A/D変換強制停止 1 A/D変換動作中 変化なし,ほかへの影響なし 第 16 章 8/10 ビット A/D コンバータ 表 16.4-1 A/D 制御ステータスレジスタ上位 (ADCSH) の各ビットの機能説明 ビット名 機 能 BUSY: 変換中ビット ・A/D コンバータの動作表示ビットです。 ・読出し時 , このビットが "0" であれば A/D 変換停止中であることを示し , "1" であ れば A/D 変換動作中であることを示します。 ・書込み時 , このビットへの "0" の書込みによって A/D 変換動作は強制的に停止さ れます。"1" の書込みでは , 変化せず他への影響はありません。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでください。 bit14 INT: 割込み要求 フラグビット ・A/D 変換によって A/D データレジスタにデータがセットされると , このビットは "1" にセットされます。 ・このビットと割込み要求許可ビット (ADCSH の INTE) が "1" の場合 , 割込み要求 を発生します。EI2OS が許可されていれば EI2OS が起動されます。 ・書込み時は , "0" でこのビットがクリアされ , "1" では変化せず他への影響はあり ません。 ・EI2OS の起動でこのビットはクリアされます。 ( 注意事項 ) このビットの "0" 書込みによるクリアは , A/D 停止中に行ってください。 bit13 INTE: 割込み要求許可 ビット ・CPU への割込み出力の許可 / 禁止をするビットです。 ・このビットと , 割込み要求フラグビット (ADCSH の INT) が "1" の場合 , 割込み要 求を発生します。 ・EI2OS 使用時は "1" にセットしてください。 bit12 PAUS: 一時停止フラグ ビット ・A/D 変換動作が一時停止した場合に "1" にセットされます。 ・この A/D コンバータには , A/D データレジスタが 1 つしかないため , 連続変換 モードを使用した場合に旧変換結果の CPU による読出しが完了していなければ , 新しい変換結果の書込みにより旧変換データは失われてしまいます。したがって , 連続変換モードを使用する場合は , 基本的には EI2OS を用いて変換終了ごとに変 換結果をメモリに自動的に転送するように設定しておくことが必要です。ただし , 多重割込みなどで変換データの転送が次の変換に間に合わない場合が想定されま す。このビットは , その場合の対処として考えられた機能で , 変換終了後にデータ レジスタの内容を EI2OS で転送するまでの間 , このビットを "1" にセットしてそ の間は A/D 変換は停止し , 次の変換データを格納しないようになっています。そ の後 , EI2OS で転送を終了すると A/D コンバータは変換を自動的に再開します。 ( 注意事項 ) このビットは , EI2OS を使用した場合だけ有効です。 bit11, bit10 STS1, STS0: A/D 起動要因 選択ビット ・A/D 変換の起動要因を選択します。 ・起動要因が兼用になっている場合には , 最初に発生した起動要因で起動します。 ( 注意事項 ) 起動要因は , 書換えと同時に変更されるので , A/D 変換動作中に書き換える場合に は , 目的とする起動要因がない状態で切り換えてください。 bit9 STRT: A/D 変換起動 ビット ・A/D 変換動作をソフトウェア的に起動するビットです。 ・このビットに "1" を書き込むと A/D 変換が起動します。 ・停止変換モードの場合には , このビットによる再起動はかかりません。 ・バイト / ワード命令では "1" が読み出されます。 ・リードモディファイライト系命令では "0" が読み出されます。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでください。 bit8 RESV: 予約ビット ( 注意事項 ) このビットへは必ず "0" を書き込んでください。 bit15 325 第 16 章 8/10 ビット A/D コンバータ A/D 制御ステータスレジスタ下位 (ADCSL) 16.4.2 A/D 制御ステータスレジスタ下位 (ADCSL) には , 変換モードの選択と A/D 変換チャ ネルの選択をする機能があります。 ■ A/D 制御ステータスレジスタ下位 (ADCSL) 図 16.4-3 に A/D 制御ステータスレジスタ下位 (ADCSL) のビット構成を , 表 16.4-2 に各 ビットの機能を示します。 図 16.4-3 A/D 制御ステータスレジスタ下位 (ADCSL) のビット構成 アドレス bit15 000020H (ADCSH) bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 00000000B R/W R/W R/W R/W R/W R/W ANE2 ANE1 ANE0 R/W R/W A/D変換終了チャネル選択ビット 0 0 0 AN0端子 0 0 1 AN1端子 0 1 0 AN2端子 0 1 1 AN3端子 1 0 0 AN4端子 1 0 1 AN5端子 1 1 0 AN6端子 1 1 1 AN7端子 A/D変換開始チャネル選択ビット ANS2 ANS1 ANS0 0 0 0 AN0端子 0 0 1 AN1端子 0 1 0 AN2端子 0 1 1 AN3端子 1 0 0 AN4端子 1 0 1 AN5端子 1 1 0 AN6端子 1 1 1 AN7端子 MD1 MD0 R/W 326 :リード/ライト可能 :初期値 停止中 変換中の 読出し 停止変換モード で一時停止中 の読出し 変換中の チャネル 番号 直前に 変換した チャネル 番号 A/D変換モード選択ビット 0 0 単発変換モード1(動作中の再起動可能) 0 1 単発変換モード2(動作中の再起動不可) 1 0 連続変換モード(動作中の再起動不可) 1 1 停止変換モード(動作中の再起動不可) 第 16 章 8/10 ビット A/D コンバータ 表 16.4-2 A/D 制御ステータスレジスタ下位 (ADCSL) の各ビットの機能説明 ビット名 bit7 bit6 bit5 ~ bit3 機 能 ・A/D 変換機能時の変換モードを選択するビットです。 ・MD1, MD0 の 2 ビット値によって , 単発変換モード 1, 単発変換モード 2, 連続変換 モード , 停止変換モードのいずれかが選択されます。 ・それぞれのモードの意味は , 以下のとおりです。 単発変換モード 1:ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル までの A/D 変換を連続して , 1 度だけします。 動作中の再起動が可能です。 単発変換モード 2:ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル までの A/D 変換を連続して , 1 度だけします。 MD1, 動作中の再起動はできません。 MD0: 連続変換モード :ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル A/D 変換モード までの A/D 変換を連続して , BUSY ビットで強制停止するまで繰り 選択ビット 返し行います。 動作中の再起動はできません。 停止変換モード :ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル までの A/D 変換を 1 チャネルごとに一時停止しながら , BUSY ビッ トで強制停止するまで繰り返します。動作中の再起動はできません。 一時停止中の再起動は , STS1, STS0 ビットで選択した起動要因の発 生によります。 ( 注意事項 ) 単発 , 連続 , 停止の各変換モードの再起動不可は外部トリガ , ソフトウェアの起動に適 用されます。 ANS2, ANS1, ANS0: A/D 変換開始 チャネル選択 ビット ・A/D 変換の開始チャネルの設定および変換中チャネル番号を確認するビットです。 ・A/D 変換を起動するとこれらのビットに書き込まれたチャネルから A/D 変換を開始 します。 ・A/D 変換中は , 変換中のチャネル番号が読めます。停止変換モードにおける一時停 止中は , 直前に変換したチャネルの番号が読めます。 ・本ビットに値を設定した場合でも , A/D 変換が開始されるまでは , 設定した値ではな く , 前回に A/D 変換したチャネル番号が読み出されます。リセット時は , "000B" に 初期化されます。 bit2 ~ bit0 ANE2, ANE1, ANE0: A/D 変換終了 チャネル選択 ビット ・A/D 変換の終了チャネルを設定するビットです。 ・A/D 変換を起動すると , これらのビットに書き込まれたチャネルまで A/D 変換を行 います。 ・ANS2 ~ ANS0 と同じチャネルを設定すると , そのチャネルのみ変換を行います。 また , 連続変換モードまたは停止変換モードを設定している場合は , これらのビッ トで設定されたチャネルまでの変換が終わると , ANS2 ~ ANS0 で設定された開始 チャネルに戻ります。設定チャネルが開始チャネル>終了チャネルの場合は , 開始 チャネルから AN7 まで変換し , さらに AN0 から終了チャネルまでを変換し , 1 度目 の変換動作を終了します。 ( 注意事項 ) 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 ビットの値が書き換わる可能性があります。 327 第 16 章 8/10 ビット A/D コンバータ A/D データレジスタ (ADCRH/ADCRL) 16.4.3 A/D データレジスタ (ADCRH/ADCRL) は , A/D 変換結果を格納するレジスタで , A/D 変換の分解能を選択する機能もあります。 ■ A/D データレジスタ (ADCRH/ADCRL) 図 16.4-4 に A/D データレジスタ (ADCRH/ADCRL) のビット構成を , 表 16.4-3 に各ビッ トの機能を示します。 図 16.4-4 A/D データレジスタ (ADCRH/ADCRL) のビット構成 bit15 bit14 bit13 bit12 bit11 bit10 bit9 000023H/ 000022H bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 S10 ST1 ST0 CT1 CT0 - D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 00101XXXB W W W W W - R R R R R R R R R R XXXXXXXXB D0~D9 A/D データビット 変換データ CT1 CT0 0 0 44 マシンサイクル 0 1 66 マシンサイクル 1 1 0 1 88 マシンサイクル ST1 ST0 0 0 20 マシンサイクル 0 1 32 マシンサイクル 1 1 0 1 48 マシンサイクル S10 R W - 328 :リードオンリ :ライトオンリ :未定義 :初期値 コンペア時間設定ビット 176 マシンサイクル サンプリング時間設定ビット 128 マシンサイクル A/D変換分解能選択ビット 0 10ビット分解能モード(D9~D0) 1 8ビット分解能モード(D7~D0) 第 16 章 8/10 ビット A/D コンバータ 表 16.4-3 A/D データレジスタ (ADCRH/ADCRL) の各ビットの機能説明 ビット名 機 能 bit15 ・A/D 変換の分解能を選択するビットです。 S10: ・このビットに "0" を書き込むと 10 ビット分解能が選択され , "1" を書き込むと 8 A/D 変換分解能 ビット分解能が選択されます。 ( 注意事項 ) 選択ビット 分解能によって , 使用されるデータビットが異なります。 bit14 bit13 ・A/D 変換時のサンプリング時間を選択するビットです。 ・A/D が起動されると , このビットに設定された時間 , アナログ入力が取り込まれま ST1, ST0: す。 サンプリング ( 注意事項 ) 時間設定ビット 16MHz 動作時に "00"8MHz 用の設定を行うと , 正常なアナログ電圧を取り込めない場 合があります。 bit12 bit11 CT1, CT0: コンペア時間 設定ビット bit10 空きビット bit9 ~ bit0 D9 ~ D0: A/D データ ビット ・A/D 変換時のコンペア時間を選択するビットです。 ・アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , このビットに設定された 時間後に変換結果のデータが確定し , このレジスタの bit9 ~ bit0 に格納されます。 ( 注意事項 ) 16MHz 動作時に "00"8MHz 用の設定を行うと , 正常なアナログ変換値が得られない場 合があります。 ・A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに書き換えられます。 ・通常は , 最終変換値が格納されます。 本レジスタの初期値は不定です。 ( 注意事項 ) 変換データ保護機能があります (「16.6 8/10 ビット A/D コンバータの動作」を参照 )。 A/D 変換中に本ビットにデータを書き込まないようにしてください。 <注意事項> • S10 ビットの書換えは , 必ず変換動作前に A/D 動作が停止した状態で行ってください。 変換後の書換えをした場合 , ADCR の内容は不定となります。 • 10 ビットモードを指定した場合 , ADCR レジスタを読み出すときは , 必ずワード転送 命令 (MOVW A, 0022H など ) を使用してください。 329 第 16 章 8/10 ビット A/D コンバータ 16.5 8/10 ビット A/D コンバータの割込み 8/10 ビット A/D コンバータは , A/D 変換動作で , A/D データレジスタにデータが セットされることで , 割込み要求を発生させることができます。拡張インテリジェ ント I/O サービス (EI2OS) にも対応しています。 ■ 8/10 ビット A/D コンバータの割込み 8/10ビットA/Dコンバータの割込み制御ビットと割込み要因は, 表 16.5-1 のようになっ ています。 表 16.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因 8/10 ビット A/D コンバータ 割込み要求フラグビット ADCSH の INT ビット 割込み要求許可ビット ADCSH の INTE ビット 割込み要因 A/D 変換結果の A/D データレジスタへの書込み A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR) にセットされ ると , A/D 制御ステータスレジスタ上位 (ADCSH) の INT ビットが "1" にセットされま す。この場合 , 割込み要求が許可 (ADCSH の INTE=1) されていると , 割込みコントロー ラに割込み要求を出力します。 ■ 8/10 ビット A/D コンバータの割込みと EI2OS 表 16.5-2 に 8/10 ビット A/D コンバータの割込みと , EI2OS が使用可能となる割込み制 御レジスタおよびベクタテーブルのアドレスとの対応を示します。 表 16.5-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルのアドレス 割込み番号 #32 (20H) レジスタ名 アドレス 下位 上位 バンク ICR10 0000BAH FFFF7CH FFFF7DH FFFF7EH EI2OS ○ ○ : 使用可能 ■ 8/10 ビット A/D コンバータの EI2OS 機能 8/10 ビット A/D コンバータでは , EI2OS 機能を使用して , A/D 変換結果をメモリに転送 することができます。この場合は変換データ保護機能が働き , A/D 変換データがメモリ に転送されて INT ビットがクリアされるまで , A/D 変換は一時停止されるので , データ の欠落を防止することができます。 330 第 16 章 8/10 ビット A/D コンバータ 16.6 8/10 ビット A/D コンバータの動作 8/10 ビット A/D コンバータには , 単発変換モード , 連続変換モード , 停止変換モー ドの 3 種類のモードがあります。各モードでの動作説明をします。 ■ 単発変換モードの動作 単発変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し ていき , ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換は停止し ます。開始チャネルと終了チャネルが同じ (ANS=ANE) 場合は ANS ビットで指定した 1 チャネルだけの変換となります。単発変換モードで動作させるには , 図 16.6-1 に示す 設定が必要です。 図 16.6-1 単発変換モードでの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADCS BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ADCR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ 変換データを格納 - ADER ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◇ :使用ビット ◆ :使用する端子の対応数ビットに "1" を設定 0 :"0" を設定 単発変換モードでの変換順序の例を以下に示します。 ANS=000B, ANE=011B の場合 :AN0 → AN1 → AN2 → AN3 →終了 ANS=110B, ANE=010B の場合 :AN6 → AN7 → AN0 → AN1 → AN2 →終了 ANS=011B, ANE=011B の場合 :AN3 →終了 331 第 16 章 8/10 ビット A/D コンバータ ■ 連続変換モードの動作 連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定 されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが 同じ場合 (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変 換モードで動作させるには , 図 16.6-2 に示す設定が必要です。 図 16.6-2 連続変換モードでの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADCS BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 1 0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ADCR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ 変換データを格納 - ADER ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◇:使用ビット ◆:使用する端子の対応数ビットに "1" を設定 1 :"1" を設定 0 :"0" を設定 連続変換モードでの変換順序の例を以下に示します。 ANS=000B, ANE=011B の場合 :AN0 → AN1 → AN2 → AN3 → AN0 →繰返し ANS=110B, ANE=010B の場合 :AN6 → AN7 → AN0 → AN1 → AN2 → AN6 →繰返し ANS=011B, ANE=011B の場合 :AN3 → AN3 →繰返し 332 第 16 章 8/10 ビット A/D コンバータ ■ 停止変換モードの動作 停止変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を 1 チャネル ごとに一時停止しながら変換していき , ANE ビットで設定された終了チャネルまで変 換が終わると ANS ビットで設定されたアナログ入力に戻り , A/D 変換と一時停止の動 作を続けます。開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は ANS ビットで 指定したチャネルだけの変換を繰り返します。一時停止時の変換の再起動は , STS1, STS0 ビットで指定した起動要因を発生します。停止変換モードで動作させるには , 図 16.6-3 に示す設定が必要です。 図 16.6-3 停止変換モードでの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ADCS BUSY INT INTE ◇ ◇ ◇ PAUS STS1 STS0 STRT ◇ ◇ ADCR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 0 1 1 ◇ ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ 変換データを格納 - ADER ◆ ◆ ◆ ◆ ◆ ◇:使用ビット ◆:使用する端子の対応数ビットに "1" を設定 1 :"1" を設定 0 :"0" を設定 停止変換モードでの変換順序の例を以下に示します。 ANS=000B, ANE=011B の場合 :AN0 →一時停止→ AN1 →一時停止→ AN2 → 一時停止→ AN0 →繰返し ANS=110B, ANE=001B の場合 :AN6 →一時停止→ AN7 →一時停止→ AN0 → 一時停止→ AN1 →一時停止→ AN6 →繰返し ANS=011B, ANE=011B の場合 :AN3 →一時停止→ AN3 →一時停止→繰返し 333 第 16 章 8/10 ビット A/D コンバータ 16.6.1 EI2OS を使用した変換動作 8/10 ビット A/D コンバータは , EI2OS を使用して A/D 変換結果をメモリに転送する ことができます。 ■ EI2OS を使用した変換動作 EI2OS 使用時の動作フローチャートを図 16.6-4 に示します。 図 16.6-4 EI2OS 使用時の動作フローチャート例 A/D変換起動 サンプルホールド EI2OS起動 変換 データ転送 変換終了 指定回数終了か* YES 割込み処理 NO 割込み発生 割込みクリア *:EI2OSの設定で決まります。 EI2OSを利用すると変換データ保護機能で, 連続変換時にもデータ欠落を起こすことな く , 複数のデータを確実にメモリに転送することができます。 334 第 16 章 8/10 ビット A/D コンバータ 16.6.2 A/D 変換データ保護機能 割込み許可状態で A/D 変換を実行すると , 変換データ保護機能が働きます。 ■ A/D 変換データ保護機能 この A/D コンバータでは , 変換データ格納用のデータレジスタが 1 つしかないので , A/D 変換をすると変換終了時に , データレジスタ内の格納データを書き換えます。そのため , 変換データのメモリへの転送が間に合わないと , 前回のデータが一部欠落します。この対 策として , 割込み許可 (INTE=1) の場合は , 以下のようにデータ保護機能が働くように なっています。 ● EI2OS を使用しない場合のデータ保護機能 変換データが A/D データレジスタ (ADCR) に格納されると A/D 制御ステータスレジス タ上位 (ADCSH) の INT ビットが "1" にセットされます。この INT ビットが "1" の間 , A/D変換は一時停止状態になります。 割込みルーチン内で, A/Dデータレジスタ (ADCR) をメモリなどに転送した後 , INT ビットをクリアすると停止状態が解除されます。 ● EI2OS を使用する場合のデータ保護機能 EI2OS を使って連続変換を指示すると , 変換終了から EI2OS でデータレジスタの変換 データをメモリに転送完了するまで , A/D 制御ステータスレジスタ上位 (ADCSH) の PAUS ビットを "1" にセットします。この間 , A/D 変換動作は停止し , 次の変換データ を格納しないようになっています。メモリへのデータ転送が完了すると , PAUS ビット は "0" にクリアされ , 変換動作が再開します。図 16.6-5 に EI2OS 使用時のデータ保護機 能フローチャートを示します。 335 第 16 章 8/10 ビット A/D コンバータ 図 16.6-5 EI2OS 使用時のデータ保護機能フローチャート EI2OS設定 A/D連続変換起動 1回変換終了 データレジスタに格納 EI2OS起動 2回変換終了 EI2OS終了 NO A/D一時停止 YES データレジスタに格納 3回目変換 EI2OS起動 続く すべて変換終了 EI2OS起動 割込み処理ルーチン 続く データレジスタに格納 A/D初期化または停止 終了 (注意事項)A/Dコンバータ動作停止時のフローは省略 <注意事項> • 変換データ保護機能は , 割込み許可 (ADCSH の INTE=1) 状態でしか動作しません。 • EI2OS 動作中で , A/D 変換が一時停止している場合に , 割込みを禁止すると A/D 変換が 動作し , 旧データの転送前に新データが書き込まれる場合があります。また , 一時停止 中に再起動がかかった場合も , 旧データは破壊されます。 • 一時停止中に再起動をかけると待機データが壊れます。 336 第 16 章 8/10 ビット A/D コンバータ 16.7 8/10 ビット A/D コンバータ使用上の注意 8/10 ビット A/D コンバータを使用する場合の注意点を示します。 ■ 8/10 ビット A/D コンバータ使用上の注意 ● アナログ入力端子 A/D入力端子はポート6の入出力端子と兼用になっており, ポート6方向レジスタ (DDR6) とアナログ入力許可レジスタ (ADER) で切り換えて使用するようになっています。アナ ログ入力として使用する端子では , DDR6 の対応するビットに "0" を書き込んでポート設 定を入力にした上で , ADER レジスタでアナログ入力モード (ADEx=1) に設定して , ポー ト側の入力ゲートを固定してください。ポート入力モード (ADEx=0) の状態では中間レ ベルの信号が入力されると , ゲートに入力リーク電流が流れます。 ● 内部タイマ (16 ビットリロードタイマ 1) で使用する場合の注意 A/D コンバータを内部タイマで起動する場合 , A/D 制御ステータスレジスタ上位 (ADCSH) の STS1, STS0 ビットで設定しますが , このとき内部タイマの入力値は , イン アクティブ側 ( 内部タイマの場合は "L") にしておいてください。アクティブ側にして おくと , ADCSH レジスタへの書込みと同時に動作し始める場合があります。 ● A/D コンバータの電源 , アナログ入力の投入順序 A/D コンバータの電源 (AVCC, AVRH) およびアナログ入力 (AN0 ~ AN7) への印加は , 必ずデジタル電源 (VCC) の投入後かまたは同時に投入してください。また , 電源切断時 は, A/Dコンバータの電源およびアナログ入力の切断後にデジタル電源 (VCC) を切断す るかまたは同時に切断してください。 ● A/D コンバータの電源電圧について ラッチアップ防止のため , A/D コンバータの電源 (AVCC) は , デジタル電源 (VCC) の電 圧を超えないようにしてください。 337 第 16 章 8/10 ビット A/D コンバータ 16.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発モードの EI2OS 起動例 ) 単発モードの EI2OS 起動による A/D 変換処理のプログラム例を示します。 ■ 単発モードの EI2OS 起動プログラム例 ● 処理仕様 アナログ入力 AN1 ~ AN3 まで変換して終了します。 変換データは 200H ~ 205H 番地に順に転送します。 分解能は 10 ビットとします。 起動はソフトウェアで行います。 図 16.8-1 に , EI2OS 起動プログラム ( 単発モード ) のフローチャートを示します。 図 16.8-1 EI2OS 起動プログラム ( 単発モード ) のフローチャート AN1 割込み AN2 割込み EI2OS転送 AN3 割込み EI2OS転送 終了 割込みシーケンス 起動開始 EI2OS転送 並行処理 【コーディング例】 BAPL BAPM BAPH ISCS IOAL IOAH DCTL DCTH DDR6 ADER ICR10 ADCSL ADCSH ADCRL ADCRH 338 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 000100H 000101H 000102H 000103H 000104H 000105H 000106H 000107H 000016H 00001AH 0000BAH 000020H 000021H 000022H 000023H ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; バッファアドレスポインタ下位 バッファアドレスポインタ中位 バッファアドレスポインタ上位 EI2OS ステータスレジスタ I/O アドレスレジスタ下位 I/O アドレスレジスタ上位 データカウンタ下位 データカウンタ上位 ポート 6 方向レジスタ アナログ入力許可レジスタ A/D コンバータ用割込み制御レジスタ A/D 制御ステータスレジスタ A/D データレジスタ 第 16 章 8/10 ビット A/D コンバータ ;---------- メインプログラム ------------------------------------------------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, #22H ; 転送元アドレスポインタとして MOV IOAH, #00H ; アナログデータレジスタのアドレスをセット MOV DCTL, #03H ; EI2OS 転送を 3 回 , 変換回数と同じにする MOV DDR6, #11110001B; P61 ~ P63 を入力に設定 MOV ADER, #00001110B; P61/AN1 ~ P63/AN3 をアナログ入力に設定 MOV DCTH, #00H ; MOV ADCSL, #0BH ; 単発起動 , AN1 ~ AN3 チャネルを変換 MOV ADCSH, #0A2H ; ソフト起動 , A/D 変換開始 , 割込み許可 MOV ILM, #07H ; PS 内 ILM をレベル 7 に設定 OR CCR, #40H ; 割込みイネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H BRA LOOP ;---------- 割込みプログラム ------------------------------------------------ED_INT1: MOV I:ADCSH, #00H ; A/D 停止 , 割込みのフラグクリアと禁止 RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS = 0FFH ORG 0FF7CH ; 割込み #32(20H) にベクタを設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 339 第 16 章 8/10 ビット A/D コンバータ 16.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続モードの EI2OS 起動例 ) 連続モードの EI2OS 起動による A/D 変換処理のプログラム例を示します。 ■ 連続モードの EI2OS 起動プログラム例 ● 処理仕様 アナログ入力AN3~AN5の変換を2度行い, 各チャネルの変換データを2つ取得します。 変換データは 600H ~ 60BH 番地に順に転送します。 分解能は 10 ビットとします。 起動は 16 ビットリロードタイマ 1 で行います。 図 16.9-1 に , EI2OS 起動プログラム ( 連続モード ) のフローチャートを示します。 図 16.9-1 EI2OS 起動プログラム ( 連続モード ) のフローチャート 起動開始 AN3 割込み EI2OS転送 12回転送後 停止 割込みシーケンス 外部エッジ起動 終了 【コーディング例】 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 方向レジスタ ADER EQU 00001AH ; アナログ入力許可レジスタ ICR10 EQU 0000BAH ; A/D コンバータ用割込み制御レジスタ ADCSL EQU 000020H ; A/D 制御ステータスレジスタ ADCSH EQU 000021H ; ADCRL EQU 000022H ; A/D データレジスタ ADCRH EQU 000023H ; TMCSR1L EQU 000054H ; タイマコントロールステータスレジスタ 1 下位 TMCSR1H EQU 000055H ; TMRLR1L EQU 000056H ; リロードレジスタ 1 TMRLR1H EQU 000057H ; ;---------- メインプログラム ------------------------------------------------340 第 16 章 8/10 ビット A/D コンバータ CODE CSEG START: AND MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVW CCR, #0BFH ICR10, #08H BAPL, #00H BAPM, #06H BAPH, #00H ISCS, #18H ; ; ; ; ; ; ; ; IOAL, #22H ; IOAH, #00H ; DCTL, #06H ; DDR6, #00000000B ; ADER, #00111000B ; DCTH, #00H ; ADCSL, #9DH ; ADCSH, #0A8H ; TMRLR1L, #0320H ; スタックポインタ (SP) などは初期化済みとする 割込みディセーブル 割込みレベル 0( 最強 ), 割込み許可 変換データの格納先アドレスの設定 (600H ~ 60BH を使用 ) ワードデータ転送 , 転送後アドレス+ 1, I/O →メモリに転送 転送元アドレスポインタとして アナログデータレジスタのアドレスをセット EI2OS 転送を 6 回 , 3 チャネル× 2 回分の転送 P60 ~ P67 を入力に設定 P63/AN3 ~ P65/AN5 をアナログ入力に設定 連続モード , AN3 ~ AN5 チャネルを変換 16 ビットタイマ起動 , A/D 変換開始 , 割込み許可 タイマ値を設定 800(320H) 100 μs MOV TMCSR1H, #00H ; クロックソースを 125ns に設定 , 外部トリガ禁止 MOV TMCSR1L, #12H ; タイマ出力禁止 , 割込み禁止 , リロード許可 MOV TMSCR1L, #13H ; 16 ビットタイマ起動 MOV ILM, #07H ; PS 内 ILM をレベル 7 に設定 OR CCR, #40H ; 割込みイネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H BRA LOOP ;---------- 割込みプログラム ------------------------------------------------ED_INT1: MOV I:ADCSH, #80H ; A/D は停止しない , 割込みのフラグクリアと禁止 RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FF7CH ; 割込み #32(20H) にベクタを設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 341 第 16 章 8/10 ビット A/D コンバータ 16.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止モードの EI2OS 起動例 ) 停止モードの EI2OS 起動による A/D 変換処理のプログラム例を示します。 ■ 停止モードの EI2OS 起動プログラム例 ● 処理仕様 アナログ入力 AN3 を一定期間で 12 回変換します。 変換データは 600H ~ 617H 番地に順に転送します。 分解能は 10 ビットとします。 起動は 16 ビットリロードタイマ 1 で行います。 図 16.10-1 に , EI2OS 起動プログラム ( 停止モード ) のフローチャートを示します。 図 16.10-1 EI2OS 起動プログラム ( 停止モード ) のフローチャート 起動開始 AN3 割込み EI2OS転送 12回転送後 停止 割込みシーケンス 外部エッジ起動 終了 【コーディング例】 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 方向レジスタ ADER EQU 00001AH ; アナログ入力許可レジスタ ICR10 EQU 0000B0H ; A/D コンバータ用割込み制御レジスタ ADCSL EQU 000020H ; A/D 制御ステータスレジスタ ADCSH EQU 000021H ; ADCRL EQU 000022H ; A/D データレジスタ ADCRH EQU 000023H ; TMCSR1L EQU 000054H ; タイマコントロールステータスレジスタ 1 下位 TMCSR1H EQU 000055H ; TMRLR1L EQU 000056H ; リロードレジスタ 1 TMRLR1H EQU 000057H ; ;---------- メインプログラム ------------------------------------------------342 第 16 章 8/10 ビット A/D コンバータ CODE START: CSEG AND MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVW ; スタックポインタ (SP) などは初期化済みとする ; 割込みディセーブル ; 割込みレベル 0( 最強 ) ; 変換データの格納先アドレスの設定 ; (600H ~ 617H を使用 ) ; ; ワードデータ転送 , 転送後アドレス+ 1, ; I/O →メモリに転送 , リソースの要求で終了 IOAL, #22H ; 転送元アドレスポインタとして IOAH, #00H ; アナログデータレジスタのアドレスをセット DCTL, #0CH ; EI2OS 転送を 12 回 , 3 チャネルのみ DCTH, #00H ; DDR6, #00000000B ; P60 ~ P67 を入力に設定 ADER, #00001000B ; P63/AN3 をアナログ入力に設定 ADCSL, #0DBH ; 停止モード , AN3 チャネルを変換 ADCSH, #0A8H ; 16 ビットタイマ起動 , A/D 変換開始 , 割込み許可 TMRLR1L, #0320H ; タイマ値を設定 800(320H) 100 μs CCR, #0BFH ICR10, #08H BAPL, #00H BAPM, #06H BAPH, #00H ISCS, #19H MOV TMCSR1H, #00H ; クロックソースを 125ns に設定 , 外部トリガ禁止 MOV TMCSR1L, #12H ; タイマ出力禁止 , 割込み禁止 , リロード許可 MOV TMSCR1L, #13H ; 16 ビットタイマ起動 MOV ILM, #07H ; PS 内 ILM をレベル 7 に設定 OR CCR, #40H ; 割込みイネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H BRA LOOP ;---------- 割込みプログラム ------------------------------------------------ED_INT1: MOV I:ADCSH, #80H ; A/D は停止しない , 割込みのフラグクリアと禁止 RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS = 0FFH ORG 0FF7CH ; 割込み #32(20H) にベクタを設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 343 第 16 章 8/10 ビット A/D コンバータ 344 第 17 章 UART この章では , UART の機能と動作について説明しま す。 17.1 UART の概要 17.2 UART の構成 17.3 UART の端子 17.4 UART のレジスタ 17.5 UART の割込み 17.6 UART のボーレート 17.7 UART の動作 17.8 UART 使用上の注意 17.9 UART のプログラム例 345 第 17 章 UART 17.1 UART の概要 UART は , 外部装置と同期通信または非同期通信 ( 調歩同期 ) をするための , 汎用の シリアルデータ通信インタフェースです。通常の双方向通信機能 ( ノーマルモード ) だけではなく , マスタ / スレーブ型通信機能 ( マルチプロセッサモード : マスタ側だ けサポート ) があります。 ■ UART の機能 ● UART の機能 UART は , ほかの CPU や周辺装置とシリアルデータを送受信する汎用シリアルデータ 通信インタフェースで , 表 17.1-1 に示す機能をもっています。 表 17.1-1 UART の機能 機 能 データバッファ 全二重ダブルバッファ 転送モード ・クロック同期 ( スタート / ストップビットなし ) ・クロック非同期 ( 調歩周期 ) ボーレート ・専用ボーレートジェネレータあり , 8 種類から選択可能 ・外部クロック入力可能 ・内部クロック (16 ビットリロードタイマから供給される内部クロック ) を利用可能 データ長 ・7 ビット ( 非同期ノーマルモードの場合のみ ) ・8 ビット 信号方式 NRZ (Non Return to Zero) 方式 受信エラー検出 ・フレーミングエラー ・オーバランエラー ・パリティエラー ( マルチプロセッサモードの場合は不可 ) 割込み要求 ・受信割込み ( 受信完了 , 受信エラー検出 ) ・送信割込み ( 送信完了 ) ・送受信とも拡張インテリジェント I/O サービス (EI2OS) の対応あり マスタ / スレーブ型 通信機能 ( マルチプ ロセッサモード ) 1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能 ( マスタ側だけサポート ) <注意事項> UART は , クロック同期転送の場合にはスタートビット / ストップビットは付加されず , データだけ転送されます。 346 第 17 章 UART ■ UART の動作モード 表 17.1-2 に UART の動作モードを示します。 表 17.1-2 UART の動作モード データ長 動作モード ストップ ビット長 同期方式 パリティなし パリティあり 7 ビットまたは 8 ビット 0 ノーマルモード 1 マルチプロセッサモード 8 ビット+ 1 * 1 2 ノーマルモード 8 ビット 1 ビット または 2 ビット* 2 非同期 - 非同期 - 同 期 なし - : 設定不可 *1: " + 1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。 *2: 受信時のストップビットは , 1 ビットのみ検出可能 ■ UART に関連する割込みと EI2OS 表 17.3-1 に UART に関する割込みと EI2OS との関係を示します。 表 17.1-3 UART に関連する割込みと EI2OS 割込み制御レジスタ 割込み要因 ベクタテーブルアドレス 割込み番号 レジスタ名 アドレス 下位 上位 バンク EI2OS UART1 受信割込み #37 (25H) ICR13 0000BDH FFFF68H FFFF69H FFFF6AH ◎ UART1 送信割込み #38 (26H) ICR13 0000BDH FFFF64H FFFF65H FFFF66H △ UART0 受信割込み #39 (27H) ICR14 0000BEH FFFF60H FFFF61H FFFF62H ◎ UART0 送信割込み #40 (28H) ICR14 0000BEH FFFF5CH FFFF5DH FFFF5EH △ の受信エラー検出による EI2OS ◎ : UART 停止機能付き △ : ICR13, ICR14 または割込みベクトルを共有する割込み要因を使用しない場合に使用可能 347 第 17 章 UART 17.2 UART の構成 UART は , 次の 12 の回路ブロックから構成されています。 • クロックセレクタ • シリアルモードレジスタ (SMR0/SMR1) • 受信制御回路 • シリアル制御レジスタ (SCR0/SCR1) • 送信制御回路 • シリアルステータスレジスタ (SSR0/SSR1) • 受信状態判定回路 • シリアル入力データレジスタ (SIDR0/SIDR1) • 受信用シフトレジスタ • シリアル出力データレジスタ (SODR0/SODR1) • 送信用シフトレジスタ • 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) ■ UART のブロックダイヤグラム 図 17.2-1 に UART のブロックダイヤグラムを示します。 図 17.2-1 UART のブロックダイヤグラム コントロールバス 専用ボーレート ジェネレータ マシンク ロック 通信プリスケーラ 制御レジスタ (CDCR0/1) 受信割込み信号 #39 (27H) * <#37 (25H)>* 送信クロック 16ビット リロードタイマ 送信割込み信号 #40 (28H) * <#38 (26H)>* クロック セレクタ 受信 クロック 受信制御回路 端子 P02/SCK0 <P05/SCK1> 端子 P00/SIN0 <P03/SIN1> 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ 受信用 シフトレジスタ 送信用 シフトレジスタ SIDR0/1 受信 終了 SODR0/1 受信状態判定回路 端子 P01/SOT0 <P04/SOT1> 送信開始 EI2OS用受信エラー 発生信号 (CPUへ) 内部データバス SMR0/1 レジスタ MD1 MD0 CS2 CS1 CS0 SCKE SOE *:割込み番号 348 SCR0/1 レジスタ PEN P SBL CL A/D REC RXE TXE SSR0/1 レジスタ PE ORE FRE RDRF TDRE BDS RIE TIE 第 17 章 UART ● クロックセレクタ クロックセレクタは , 専用ボーレートジェネレータ , 外部入力クロック , 内部クロック (16 ビットリロードタイマから供給されるクロック ) から送受信クロックを選択しま す。 ● 受信制御回路 受信制御回路は , 受信ビットカウンタ , スタートビット検出回路および受信パリティカ ウンタから構成されています。受信ビットカウンタは , 受信データをカウントして , 設 定したデータ長に応じて 1 データの受信を完了すると , 受信割込み要求を発生します。 スタートビット検出回路は , シリアル入力信号からスタートビットを検出する回路で , スタートビットを検出すると設定された転送速度に応じてシフトしながら SIDR レジ スタにデータを書き込みます。受信パリティカウンタは , 受信データのパリティを計算 します。 ● 送信制御回路 送信制御回路は , 送信ビットカウンタ , 送信スタート回路および送信パリティカウンタ から構成されています。送信ビットカウンタは , 送信データをカウントして , 設定した データ長に応じて 1 データの送信を完了すると , 送信割込み要求を発生します。送信ス タート回路は , SODR レジスタの書込みで送信動作を開始します。送信パリティカウン タは , パリティありの場合 , 送信するデータのパリティビットを生成します。 ● 受信用シフトレジスタ 受信用シフトレジスタは , SIN0 端子から入力された受信データを , 1 ビットずつビット シフトしながら取り込み , 受信を終了すると , SIDR レジスタに受信データを転送しま す。 ● 送信用シフトレジスタ 送信用シフトレジスタは, SODRレジスタに書き込まれたデータを送信用シフトレジス タに転送し , 1 ビットずつシフトしながら SOT0 端子に出力します。 ● シリアルモードレジスタ (SMR0/SMR1) シリアルモードレジスタは , 動作モードの選択 , クロック入力ソースの選択 , 専用ボー レートジェネレータの設定, 専用ボーレートジェネレータ使用時のクロックレート (ク ロック分周値 ) の選択 , シリアルデータの端子への出力許可 / 禁止 , クロックの端子へ の出力許可 / 禁止を設定します。 ● シリアル制御レジスタ (SCR0/SCR1) シリアル制御レジスタは , パリティの有無の設定 , パリティの選択 , ストップビット長 の設定 , データ長の設定 , モード 1 でのフレームデータ形式の選択 , フラグのクリア , 送信の許可 / 禁止 , 受信の許可 / 禁止の設定をします。 ● シリアルステータスレジスタ (SSR0/SSR1) シリアルステータスレジスタは , 送受信やエラーの状態の確認と送受信割込み要求の 許可 / 禁止の設定をします。 ● シリアル入力データレジスタ (SIDR0/SIDR1) シリアル入力データレジスタは , 受信データを保持するレジスタです。シリアル入力が 変換されて , このレジスタに格納されます。 349 第 17 章 UART ● シリアル出力データレジスタ (SODR0/SODR1) シリアル出力データレジスタは , 送信データを設定するレジスタです。このレジスタに 書き込まれたデータが , シリアル変換されて出力されます。 ● 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) 専用ボーレートジェネレータのボーレートを設定するレジスタです。通信プリスケー ラの起動 / 停止 , マシンクロックの分周比を設定します。 350 第 17 章 UART UART の端子 17.3 UART の端子および端子のブロックダイヤグラムを示します。 ■ UART の端子 UART の端子は , 汎用ポートと兼用になっています。表 17.3-1 に端子の機能 , 入出力形 式および UART 使用時の設定などを示します。 表 17.3-1 UART の端子 端子名 端子機能 P00/SIN0/ INT4 P03/SIN1/ INT7 ポート 0 入出力 / シリアルデータ入力 P01/SOT0/ INT5 P04/SOT1 ポート 0 入出力 / シリアルデータ出力 P02/SCK0/ INT6 P05/SCK1/ TRG ポート 0 入出力 / シリアルクロック 入出力 入出力形式 プルアップ 選択 スタンバイ 制御 端子の使用に 必要な設定 入力ポートに設定 (DDR0 の bit0=0) (DDR0 の bit3=0) CMOS 出力 / CMOS ヒステリ シス入力 (Automotive レベル *) なし あり 出力許可に設定 (SMR の SOE=1) クロック入力時入力ポート に設定 (DDR0 の bit2=0) (DDR0 の bit5=0) クロック出力時出力許可に 設定 (SMR の SCKE=1) *: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」 を参照してください。 ■ UART の端子のブロックダイヤグラム 図 17.3-1 に UART の端子のブロックダイヤグラムを示します。 図 17.3-1 UART の端子のブロックダイヤグラム リソース入力* PDR (ポートデータレジスタ) リソース出力* リソース出力許可* 内部データバス PDRリード 出力ラッチ P-ch P00/SIN0 P01/SOT0 P02/SCK0 PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト N-ch P03/SIN1 P04/SOT1 P05/SCK1 スタンバイ制御(SPL=1) DDRリード スタンバイ制御:ストップ,タイムベースタイマモードかつSPL=1, *:リソース入出力は周辺機能がある端子のみ 351 第 17 章 UART 17.4 UART のレジスタ UART の各レジスタについて説明します。 ■ UART のレジスタ一覧 図 17.4-1 に UART のレジスタ一覧を示します。 図 17.4-1 UART のレジスタ一覧 アドレス bit15 bit8 bit7 bit0 ch.0:000035 H,34H SMR(シリアルモードレジスタ) SCR(シリアル制御レジスタ) ch.1:000039 H,38H ch.0:000037 H,36H SIDR/SODR ch.1:00003B H,3AH SSR(シリアルステータスレジスタ) (シリアル入力/シリアル出力データレジスタ) ch.0:00003D H CDCR(通信プリスケーラ制御レジスタ) 空き ch.1:00003F H 352 第 17 章 UART 17.4.1 シリアル制御レジスタ (SCR0/SCR1) シリアル制御レジスタ (SCR0/SCR1) は , パリティの設定 , ストップビット長やデー タ長の選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリア , 送受信動作の許可 / 禁止を設定するレジスタです。 ■ シリアル制御レジスタ (SCR0/SCR1) のビット構成 図 17.4-2 にシリアル制御レジスタ (SCR0/SCR1) のビット構成を , 表 17.4-1 に各ビット の機能を示します。 図 17.4-2 シリアル制御レジスタ (SCR0/SCR1) のビット構成 アドレス ch.0:000035 H ch.1:000039 H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 PEN P SBL CL A/D REC RXE TXE R/W R/W R/W R/W R/W W R/W R/W (SMR) TXE 送信動作を禁止 1 送信動作を許可 受信動作許可ビット 0 受信動作を禁止 1 受信動作を許可 REC 受信エラーフラグクリアビット 0 FRE, ORE, PEフラグをクリア 1 変化なし,ほかへの影響なし A/D アドレス/データ選択ビット 0 データフレーム 1 アドレスフレーム CL データ長選択ビット 0 7ビット 1 8ビット SBL ストップビット長選択ビット 0 1ビット長 1 2ビット長 P パリティ選択ビット パリティありのとき(PEN=1)のみ有効 0 偶数パリティ 1 奇数パリティ PEN 00000100B 送信動作許可ビット 0 RXE R/W :リード/ライト可能 W :ライトオンリ :初期値 bit0 初期値 パリティ許可ビット 0 パリティなし 1 パリティあり 353 第 17 章 UART 表 17.4-1 シリアル制御レジスタ (SCR0/SCR1) の各ビットの機能説明 ビット名 機 能 シリアルデータの入出力時のパリティビットの付加 ( 送信時 ) および検出 ( 受信時 ) をするかどうかを選択します。 ( 注意事項 ) 動作モード 1, 2 ではパリティは使用できませんので , このビットは常に "0" に設定 してください。 bit15 PEN: パリティ許可 ビット bit14 P: パリティ選択 ビット bit13 非同期転送モード時の送信データのフレームエンドマークである , ストップビット SBL: のビット長を選択します。 ストップビット長 ( 注意事項 ) 選択ビット 受信時は , 常にストップビットの 1 ビット目だけを検出します。 bit12 CL: データ長選択 ビット 送受信データのデータ長を指定します。 ( 注意事項 ) 7 ビットを選択できるのは , 動作モード 0 ( 非同期 ) だけです。動作モード 1 ( マル チプロセッサモード ) , 動作モード 2 ( 同期 ) では , 必ず 8 ビット (CL=1) を選択して ください。 bit11 A/D: アドレス / データ選択 ビット ・マルチプロセッサモード ( モード 1) で , 送受信するフレームのデータ形式を指定 します。 ・このビットが "0" の場合通常データとなり , "1" の場合アドレスデータとなりま す。 REC: 受信エラー フラグクリア ビット ・シリアルステータスレジスタ (SSR) の FRE, ORE, PE フラグをクリアするビットで す。 ・このビットに "0" を書き込むと , FRE, ORE, PE フラグがクリアされ , "1" の書込み では , 変化せずほかへの影響はありません。 ( 注意事項 ) UART 動作中の受信割込み許可状態では , FRE, ORE, PE フラグのいずれかが "1" で ある場合のみ , REC ビットをクリアしてください。 RXE: 受信動作許可 ビット ・UART の受信動作を制御します。 ・このビットが "0" の場合に受信動作は禁止となり , "1" の場合は受信動作が許可と なります。 ( 注意事項 ) 受信中に受信動作を禁止した場合にはそのフレームの受信を完了し , 受信データ バッファ (SIDR1) に受信データを格納した時点で受信動作を停止します。 動作モード 2 ( 同期 ) 時は , RXE または TXE のどちらか一方を "1" に設定すると送 信・受信動作共に許可されます。 TXE: 送信動作許可 ビット ・UART の送信動作を制御します。 ・このビットが "0" の場合に送信動作は禁止となり , "1" の場合は送信動作が許可と なります。 ( 注意事項 ) 送信中に送信動作を禁止した場合は , シリアル出力データレジスタ (SODR1) のデー タの送信が完了した後に送信動作を停止します。 "0" を設定する場合は , シリアル出力データレジスタ (SODR1) にデータを書き込ん だ後 , 非同期モードの場合 , ボーレートの 1/16 時間 , 同期モードの場合 , ボーレート と同じ時間以上待ってから設定してください。 動作モード 2 ( 同期 ) 時は , RXE または TXE のどちらか一方を "1" に設定すると送 信・受信動作共に許可されます。 bit10 bit9 bit8 354 パリティあり (PEN=1) の場合 , 奇数パリティ / 偶数パリティを選択します。 第 17 章 UART 17.4.2 シリアルモードレジスタ (SMR0/SMR1) シリアルモードレジスタ (SMR0/SMR1) は , 動作モードの選択 , ボーレートクロック の選択 , シリアルデータとクロックの端子への出力許可 / 禁止を設定するレジスタで す。 ■ シリアルモードレジスタ (SMR0/SMR1) のビット構成 図 17.4-3 にシリアルモードレジスタ (SMR0/SMR1) のビット構成を , 表 17.4-2 に各 ビットの機能を示します。 図 17.4-3 シリアルモードレジスタ (SMR0/SMR1) のビット構成 アドレス bit15 ch.0:000034H ch.1:000038H bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 (SCR) MD1 MD0 CS2 CS1 CS0 - SCKE SOE R/W R/W R/W R/W R/W - R/W R/W 初期値 00000-00B SOE シリアルデータ出力許可ビット(P37/SOT0,P61/SOT1端子) 0 汎用入出力ポートとする 1 UART0/1のシリアルデータ出力端子とする SCKE シリアルクロック出力許可ビット(P40/SCK0,P62/SCK1端子) 0 汎用入出力ポートまたはUART0/1のクロック入力端子とする 1 UART0/1のクロック出力端子とする クロック選択ビット CS2~CS0 "000B"~"101B" 専用ボーレートジェネレータによるボーレート 内部タイマ(16ビットリロードタイマ0) "110B" によるボーレート 外部クロックによるボーレート "111B" 動作モード選択ビット MD1 MD0 R/W :リード/ライト可能 :初期値 動作モード 0 0 0 非同期(ノーマルモード) 0 1 1 非同期(マルチプロセッサモード) 1 0 2 同期(ノーマルモード) 1 1 - 設定禁止 355 第 17 章 UART 表 17.4-2 シリアルモードレジスタ (SMR0/SMR1) の各ビットの機能説明 ビット名 bit7 bit6 bit5 bit4 bit3 MD1, MD0: 動作モード選択 ビット CS2 ~ CS0: クロック選択 ビット 機 能 これらのビットにより動作モードを選択します。 ( 注意事項 ) 動作モード 1 ( マルチプロセッサモード ) は , マスタスレーブ型通信のマスタとして のみ使用できます。UART は , 受信時にアドレス / データ判別機能がないためス レーブとしては使用できません。 ・ボーレートのクロックソースを選択します。専用ボーレートジェネレータを選択 した場合には , 同時にボーレートも決定されます。 ・専用ボーレートジェネレータを選択した場合には , 非同期転送モードでは 5 種類 , 同期転送モードでは 3 種類の計 8 種類のボーレートが選択できます。 ・クロック入力は , 外部クロック (SCK0 端子 ) , 16 ビットリロードタイマ , 専用ボー レートジェネレータから選択できます。 ( 注意事項 ) 同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。 1) CS2 ~ CS0 =000B 2) CS2 ~ CS0 =001B かつ , DIV3 ~ DIV0 =0000B bit2 未定義ビット 読出し時は不定値 , 書込みは意味を持ちません。 ・シリアルクロックの入出力を制御するビットです。 ・このビットが "0" の場合は P02/SCK0 端子は汎用入出力ポート (P02) またはシリア ルクロック入力端子となり , "1" の場合はシリアルクロック出力端子となります。 ( 注意事項 ) SCKE: ・P02/SCK0 端子をシリアルクロック入力 (SCKE=0) として使用する場合は , P02 を シリアル 入力ポートに設定してください。また , クロック選択ビットによって外部クロッ クロック出力 bit1 許可ビット クを選択 (SMR の CS2 ~ CS0=111B) してください。 (P40/SCK0, ・シリアルクロック出力 (SCKE=1) として使用する場合は , 外部クロック以外 (SMR P62/SCK1 端子) の CS2 ~ CS0=111B 以外 ) を選択してください。 ( 参考 ) SCK0 端子がシリアルクロック出力 (SCKE=1) の場合は , 汎用入出力ポートの状態に かかわらず , シリアルクロック出力端子として機能します。 ・シリアルデータの出力を許可 / 禁止するビットです。 SOE: ・このビットが "0" の場合 , P01/SOT0 端子は汎用入出力ポートとなり (P01) , "1" の シリアルデータ 場合はシリアルデータ出力端子 (SOT0) となります。 bit0 出力許可ビット ( 参考 ) (P37/SOT0, シリアルデータ出力 (SOE=1) の場合は , 汎用入出力ポート (P01) の状態にかかわら P61/SOT1 端子) ず , SOT0 端子として機能します。 356 第 17 章 UART 17.4.3 シリアルステータスレジスタ (SSR0/SSR1) シリアルステータスレジスタ (SSR0/SSR1) は , 送受信やエラーの状態の確認 , 割込 みの許可 / 禁止を設定するレジスタです。 ■ シリアルステータスレジスタ (SSR0/SSR1) のビット構成 図 17.4-4 にシリアルステータスレジスタ (SSR0/SSR1) のビット構成を , 表 17.4-3 に各 ビットの機能を示します。 図 17.4-4 シリアルステータスレジスタ (SSR0/SSR1) のビット構成 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 ch.0:000037 H ch.1:00003B H PE ORE R R FRE RDRF TDRE R R R BDS RIE TIE R/W R/W R/W TIE bit0 (SIDR/SODR) 00001000B 送信割込み要求許可ビット 0 送信割込み要求出力を禁止 1 送信割込み要求出力を許可 RIE 初期値 受信割込み要求許可ビット 0 受信割込み要求出力を禁止 1 受信割込み要求出力を許可 BDS 転送方向選択ビット 0 LSB ファースト(最下位ビットから転送) 1 MSB ファースト(最上位ビットから転送) TDRE 送信データエンプティフラグビット 0 送信データあり(送信データの書込み禁止) 1 送信データなし(送信データの書込み許可) RDRF 受信データフルフラグビット 0 受信データなし 1 受信データあり フレーミングエラーフラグビット FRE 0 フレーミングエラーなし 1 ORE フレーミングエラーあり オーバランエラーフラグビット 0 オーバランエラーなし 1 オーバランエラーあり PE パリティエラーフラグビット 0 パリティエラーなし 1 パリティエラーあり R/W :リード/ライト可能 R :リードオンリ :初期値 357 第 17 章 UART 表 17.4-3 シリアルステータスレジスタ (SSR0/SSR1) の各ビットの機能説明 ビット名 機 能 bit15 PE: パリティエラー フラグビット ・受信時にパリティエラーが発生すると "1" にセットされ , シリアル制御レジスタ (SCR) の REC ビットに "0" を書き込むとクリアされます。 ・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 ・このフラグがセットされた場合は , シリアル入力データレジスタ (SIDR) のデータ は無効です。 bit14 ORE: オーバラン エラーフラグ ビット ・受信時にオーバランが発生すると "1" にセットされ , シリアル制御レジスタ (SCR) の REC ビットに "0" を書き込むと "0" にクリアされます。 ・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 ・このフラグがセットされた場合は , シリアル入力データレジスタ (SIDR) のデータ は無効です。 bit13 FRE: フレーミング エラーフラグ ビット ・受信時にフレーミングエラーが発生すると "1" にセットされ , シリアル制御レジス タ (SCR) の REC ビットに "0" を書き込むと "0" にクリアされます。 ・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 ・このフラグがセットされた場合は , シリアル入力データレジスタ (SIDR) のデータ は無効です。 bit12 ・シリアル入力データレジスタ (SIDR) の状態を示すフラグです。 RDRF: ・SIDR に受信データがロードされると , このビットは "1" にセットされ , SIDR を読 受信データ み出すと "0" にクリアされます。 フルフラグビット ・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。 TDRE: 送信データ エンプティ フラグビット ・シリアル出力データレジスタ (SODR) の状態を示すフラグです。 ・SODR に送信データを書き込むと , このビットは "0" にクリアされます。データが 送信用シフトレジスタにロードされて送信が開始されると "1" にセットされます。 ・このビットと TIE ビットが "1" の場合 , 送信割込み要求を出力します。 ( 注意事項 ) 初期状態では , このビットは "1" (SODR が空 ) にセットされています。 bit10 BDS: 転送方向選択 ビット ・シリアルデータを最下位ビット側から先に転送するか (LSB ファースト , BDS=0) , 最上位ビット側から先に転送するか (MSB ファースト , BDS=1) を選択するビット です。 ( 注意事項 ) シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ換 えるため SIDR, SODR レジスタへデータを書き込んだ後 , このビットを書き換える と , そのデータは無効になります。 bit9 RIE: 受信割込み要求 許可ビット ・CPU への受信割込み要求出力の許可 / 禁止をするビットです。 ・このビットと受信データフラグビット (RDRF) が "1" の場合またはこのビットとい ずれか 1 つ以上のエラーフラグビット (PE, ORE, FRE) が "1" の場合 , 受信割込み要 求を出力します。 bit8 TIE: 送信割込み要求 許可ビット ・CPU への送信割込み要求出力の許可 / 禁止をするビットです。 ・このビットと TDRE ビットが "1" の場合 , 送信割込み要求を出力します。 bit11 358 第 17 章 UART 17.4.4 シリアル入力データレジスタ (SIDR0/SIDR1) , シリアル出力データレジスタ (SODR0/SODR1) シリアル入力データレジスタ (SIDR0/SIDR1) はシリアルデータ受信用レジスタ , シ リアル出力データレジスタ (SODR0/SODR1) はシリアルデータ送信用レジスタで す。SIDR0/SIDR1 レジスタと SODR0/SODR1 レジスタは , 同一アドレスに配置さ れています。 ■ シリアル入力データレジスタ (SIDR0/SIDR1) のビット構成 図 17.4-5 に , シリアル入力データレジスタのビット構成を示します。 図 17.4-5 シリアル入力データレジスタ (SIDR0/SIDR1) のビット構成 ch.0: 000036H ch.1: 00003AH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 R D6 R D5 R D4 R D3 R D2 R D1 R D0 R 初期値 XXXXXXXXB R :リードオンリ X :不定 シリアル入力データレジスタ (SIDR0/SIDR1) は , 受信したデータが格納されるレジス タです。SIN0 端子に送られてきたシリアルデータ信号がシフトレジスタで変換されて , このレジスタに格納されます。データ長が 7 ビットの場合 , 上位 1 ビット (D7) は無効 データとなります。受信データがこのレジスタに格納されると , 受信データフルフラグ ビット (SSR の RDRF) が "1" にセットされます。この場合 , 受信割込み要求が許可され ていれば受信割込みが発生します。 SIDR0/SIDR1 は , シリアルステータスレジスタ (SSR0/SSR1) の RDRF ビットが "1" の場 合に読み出してください。RDRF ビットは , SIDR0/SIDR1 を読み出すと , 自動的に "0" にクリアされます。なお , 受信エラーが発生 (SSR の PE, ORE, FRE のいずれかが "1") した場合 , SIDR0/SIDR1 のデータは無効となります。 359 第 17 章 UART ■ シリアル出力データレジスタ (SODR0/SODR1) のビット構成 図 17.4-6 に , シリアル出力データレジスタのビット構成を示します。 図 17.4-6 シリアル出力データレジスタ (SODR0/SODR1) のビット構成 ch.0: 000036H ch.1: 00003AH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 W D6 W D5 W D4 W D3 W D2 W D1 W D0 W 初期値 XXXXXXXXB W:ライトオンリ X :不定 送信許可状態の場合 , 送信するデータをこのレジスタに書き込むと , 送信データが送信 用シフトレジスタに転送され , シリアルデータに変換されて , シリアルデータ出力端子 (SOT0 端子 ) から送出されます。データ長が 7 ビットの場合 , 上位 1 ビット (D7) は無 効データとなります。 送信データがこのレジスタに書き込まれると , 送信データエンプティフラグ (SSR の TDRE) が "0" にクリアされ , 送信用シフトレジスタへの転送が終了すると "1" にセット されます。TDRE ビットが "1" のときは , 次の送信用データを書き込むことができます。 この場合 , 送信割込み要求出力が許可されていると , 送信割込みが発生します。次の送 信データの書込みは , 送信割込みの発生によるかまたは TDRE ビットが "1" の場合にし てください。 <注意事項> SODR0/SODR1 は書込みのみのレジスタで, SIDR0/SIDR1 は読出しのみのレジスタです。 この 2 種類のレジスタは同一アドレスに配置されているため , 書込み値と読出し値は異な ります。そのため , INC/DEC 命令などのリードモディファイライト (RMW) 動作をする命 令は使用できません。 360 第 17 章 UART 17.4.5 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) は , マシンクロックの分周を制御 するレジスタです。 ■ 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成 UART の動作クロックは , マシンクロックを分周することにより得られます。この通信 プリスケーラによって , 種々のマシンサイクルに対して一定のボーレートが得られる ように設計されています。本通信プリスケーラ出力は , 拡張 I/O シリアルインタフェー スの動作クロックにも使われています。CDCR0/CDCR1 のビット構成を図 17.4-7 に示 します。 図 17.4-7 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成 ch.0: 00003DH ch.1: 00003FH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 MD R/W - - - DIV3 R/W DIV2 R/W DIV1 R/W DIV0 R/W 初期値 0---0000B R/W :リード / ライト可能 - :未定義 【bit15】MD (Machine clock Devide mode select) MD ビットは , 通信プリスケーラの動作許可ビットです。 0: 通信プリスケーラは停止します。 1: 通信プリスケーラは動作します。 【bit14, bit13, bit12】 未定義ビット 読出し時は不定値 , 書込みは意味を持ちません。 【bit11, bit10, bit9, bit8】DIV3 ~ DIV0 (DIVide 3 ~ 0) 表 17.4-4 に従って , マシンクロックの分周比を決定します。 表 17.4-4 通信プリスケーラ ( マシンクロックの分周比 ) MD DIV3 DIV2 DIV1 DIV0 Div 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 停止 1 2 3 4 5 6 7 8 361 第 17 章 UART <注意事項> 分周比を変えた場合は , クロックの安定時間として 2 周期分の時間を置いてから通信を開 始してください。 同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。 1) CS2 ~ CS0 =000B 2) CS2 ~ CS0 =001B かつ , DIV3 ~ DIV0 =0000B 362 第 17 章 UART 17.5 UART の割込み UART には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を発生させ ることができます。 • 受信データがシリアル入力データレジスタ (SIDR0/SIDR1) にセットされた場合ま たは受信エラーが発生した場合。 • 送信データがシリアル出力データレジスタ (SODR0/SODR1) から送信用シフトレ ジスタに転送された場合。 また , それぞれ拡張インテリジェント I/O サービス (EI2OS) にも対応しています。 ■ UART の割込み UART の割込み制御ビットと割込み要因の関係は , 表 17.5-1 のようになっています。 表 17.5-1 UART の割込み制御ビットと割込み要因の関係 送受信 受信 送信 動作モード 割込み要求 フラグビット 0 1 2 RDRF ○ ○ ○ 受信データをバッファ (SIDR) へロード ORE ○ ○ ○ オーバランエラー発生 FRE ○ ○ × フレーミングエラー発生 PE ○ × × パリティエラー発生 TDRE ○ ○ ○ 送信バッファ (SODR) が空 割込み要因 許可ビット 割込み要因 割込み要求フラグの クリア 受信データの読出し SSR0/SSR1 の RIE SSR0/SSR1 の TIE 受信エラーフラグ クリアビット (SCR0/SCR1:REC) へ の "0" の書込み 送信データの書込み ○ : 使用ビット × : 未使用ビット ● 受信割込み 受信モードの場合は , データ受信完了 (SSR0/SSR1 の RDRF) , オーバランエラー発生 (SSR0/SSR1 の ORE) , フレーミングエラー発生 (SSR0/SSR1 の FRE) , パリティエラー発 生 (SSR0/SSR1 の PE) によって , シリアルステータスレジスタ中のそれぞれに対応する フラグビットが "1" にセットされます。これらのフラグビットのいずれかが "1" のとき , 受信割込みが許可 (SSR0/SSR1 の RIE=1) されていると , 受信割込み要求を割込みコン トローラに出力します。 受信データフルフラグ (SSR0/SSR1 の RDRF) は , シリアル入力データレジスタ (SIDR0/ SIDR1) を読み出すと , 自動的に "0" にクリアされます。受信エラーフラグ (SSR0/SSR1 の PE, ORE, FRE) は , シリアル制御レジスタ (SCR0/SCR1) の REC ビットに "0" を書き 込むと , すべて "0" にクリアされます。 ● 送信割込み 送信データがシリアル出力データレジスタ (SODR0/SODR1) から転送用シフトレジス タに転送されると , シリアルステータスレジスタ (SSR0/SSR1) の TDRE ビットが "1" に セットされます。この場合 , 送信割込みが許可 (SSR0/SSR1 の TIE=1) されていると , 送 信割込み要求を割込みコントローラに出力します。 363 第 17 章 UART ■ UART の割込みと EI2OS 表 17.5-2 に UART に関する割込みと EI2OS との関係を示します。 表 17.5-2 UART の割込みと EI2OS 割込み制御レジスタ 割込み要因 ベクタテーブルアドレス 割込み番号 レジスタ名 アドレス 下位 上位 バンク EI2OS UART1 受信割込み #37 (25H) ICR13 0000BDH FFFF68H FFFF69H FFFF6AH ◎ UART1 送信割込み #38 (26H) ICR13 0000BDH FFFF64H FFFF65H FFFF66H △ UART0 受信割込み #39 (27H) ICR14 0000BEH FFFF60H FFFF61H FFFF62H ◎ UART0 送信割込み #40 (28H) ICR14 0000BEH FFFF5CH FFFF5DH FFFF5EH △ EI2 ◎ : UART の受信エラー検出による OS 停止機能付き △ : ICR13, ICR14 または割込みベクトルを共有する割込み要因を使用しない場合に使用可能 ■ UART の EI2OS 機能 UART は EI2OS 対応の回路を有しています。このため受信 / 送信の各割込みで別々に EI2OS を起動することができます。 ● 受信時 ほかのリソースの状態に関係なく , EI2OS を使用することができます。 ● 送信時 UART は , 割込み制御レジスタ (ICR13, ICR14) を UART の受信割込みと共有している ので , UART の受信で割込みを使用しない場合だけ , EI2OS を起動できます。 364 第 17 章 UART 受信割込み発生とフラグセットのタイミング 17.5.1 受信時の割込みとしては , 受信完了 (SSR0/SSR1 の RDRF) および受信エラーの発 生 (SSR0/SSR1 の PE, ORE, FRE) があります。 ■ 受信割込み発生とフラグセットのタイミング 受信時は , ストップビットの検出 ( 動作モード 0, 1 の場合 ) または , データの最終ビッ ト (D7) の検出 ( 動作モード 2 の場合 ) によって , 受信データがシリアル入力データレ ジスタ (SIDR0/SIDR1) に格納されます。この場合 , 受信エラーが発生するとエラーフラ グ (SSR0/SSR1 の PE, ORE, FRE) がセットされ , その後 , 受信データフルフラグ (SSR0/ SSR1 の RDRF) が "1" にセットされます。各モードともいずれかのエラーフラグが "1" の場合 , SIDR0/SIDR1 の値は無効データとなります。 ● 動作モード 0 ( 非同期 , ノーマルモード ) ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあると , エラーフラ グ (PE, ORE, FRE) がセットされます。 ● 動作モード 1 ( 非同期 , マルチプロセッサモード ) ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあると , エラーフラ グ (ORE, FRE) がセットされます。パリティエラーの検出はできません。 ● 動作モード 2 ( 同期 , ノーマルモード ) 受信データの最終ビット (D7) 検出時に RDRF がセットされ , 受信エラーがあると , エ ラーフラグ (ORE) がセットされます。パリティエラーおよびフレーミングエラーの検 出はできません。図 17.5-1 に , 受信動作とフラグセットのタイミングについて示しま す。 図 17.5-1 受信動作とフラグセットのタイミング 受信データ (動作モード0) ST D0 D1 D5 D6 D7 SP 受信データ (動作モード1) ST D0 D1 D6 D7 A/D SP D0 D1 D4 D5 D6 D7 受信データ (動作モード2) PE, ORE, FRE* RDRF 受信割込み発生 * :PEフラグはモード1では使用できません PE, FREフラグはモード2では使用できません ST :スタートビット SP :ストップビット A/D :モード2(マルチプロセッサモード)のアドレス/データ選択ビット ● 受信割込み発生のタイミング 受信割込みが許可 (SSR0/SSR1 の RIE=1) されているときに , RDRF, PE, ORE, FRE のい ずれかのフラグが "1" にセットされると , その直後に受信割込み要求 (#37, #39) が発生 します。 365 第 17 章 UART 送信割込み発生とフラグセットのタイミング 17.5.2 送信時の割込みは , シリアル出力データレジスタ (SODR0/SODR1) に , 次のデータ の書込みが可能な状態になると発生します。 ■ 送信割込み発生とフラグセットのタイミング 送信データエンプティフラグビット (SSR0/SSR1 の TDRE) は , シリアル出力データレ ジスタ (SODR0/SODR1) に書き込まれたデータが , 送信用シフトレジスタに転送され , 次のデータ書込みが可能な状態になると "1" にセットされます。SODR0/SODR1 に送信 データを書き込むと , TDRE は "0" にクリアされます。図 17.5-2 に送信動作とフラグ セットのタイミングについて示します。 図 17.5-2 送信動作とフラグセットのタイミング [動作モード0, 1] 送信割込み発生 送信割込み発生 SODR書込み TDRE SOT0/1出力 [動作モード2] ST D0 D1 D2 D3 D4 送信割込み発生 D5 D6 D7 SP A/D SP ST D0 D1 D2 D3 D3 D4 D5 D6 D7 送信割込み発生 SODR書込み TDRE SOT0/1出力 ST D0~D7 SP A/D D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 :スタートビット :データビット :ストップビット :アドレス/データ選択ビット ● 送信割込み要求発生のタイミング 送信割込みが許可 (SSR0/SSR1 の TIE=1) され , TDRE フラグが "1" にセットされると , その直後に送信割込み要求 (#38, #40) が発生します。 <注意事項> 初期状態において TDRE ビットが "1" となり , 送信割込みを許可 (TIE=1) すると直ちに送 信完了割込みが発生します。TDRE ビットは読出し専用ビットで , クリアする方法はシリ アル出力データレジスタ (SODR0/SODR1) に新規データを書き込むしかありませんので, 送信割込み許可のタイミングには注意してください。 送信動作中に送信動作を禁止 (SCR:TXE=0, 動作モード 1 での場合 , 受信動作禁止 (SCR:RXE=0) も 含 む ) す る と , 送信 デ ータ エ ンプ テ ィフ ラ グビ ッ トが セ ット さ れ (SSR:TDRE=1) , 送信用シフトレジスタのシフト動作が停止してから UART の通信動作が 禁止されます。送信が停止する前にシリアル出力データレジスタ (SODR) に書き込まれて いた送信データは送信されます。 366 第 17 章 UART 17.6 UART のボーレート UART の送受信クロックは , 次のいずれかを選択できます。 • 専用ボーレートジェネレータ • 内部クロック (16 ビットリロードタイマ ) • 外部クロック (SCK 端子入力のクロック ) ■ UART ボーレート選択 ボーレートは次の 3 種類の中から 1 種類を選択できます。ボーレートの選択回路を図 17.6-1 に示します。 ● 専用ボーレートジェネレータによるボーレートの選択 UART は専用ボーレートジェネレータを内蔵しており , シリアルモードレジスタ (SMR0/SMR1) によって 8 種類のボーレートから 1 種類を選択できます。マシンクロッ クの周波数とシリアルモードレジスタ (SMR0/SMR1) の BCH, CS2 ~ CS0 ビットによっ て , 非同期またはクロック同期ボーレートを選択します。 ● 内部タイマによるボーレート 16 ビットリロードタイマから供給される内部クロックを , そのまま ( 同期の場合 ) また は 16 分周 ( 非同期の場合 ) して , ボーレートとして使用します。リロード値の設定で 自由にボーレートを設定できます。 ● 外部クロックによるボーレート UART のクロック入力端子 (SCK0/P02, SCK1/P05) から入力されたクロックを , そのま ま ( 同期の場合 ) または 16 分周 ( 非同期の場合 ) して , ボーレートとして使用します。 外部で自由にボーレートを設定できます。 367 第 17 章 UART 図 17.6-1 UART ボーレート選択回路 SMR0/1:CS2~0 (クロック選択ビット) [専用ボーレートジェネレータ] クロックセレクタ 4 マシンクロック 分周比 プリスケーラ "000B"~ "101B"のとき 分周回路 (同期) 1~32分周のいずれか を選択 (非同期) 内部固定分周比を選択 [内部タイマ] TMCSR0/1:CSL1, CSL0 2 クロックセレクタ UF ダウン カウンタ "110B"のとき 1/1(同期) 1/16(非同期) φ/21 φ/23 φ/25 プリスケーラ 16ビットリロードタイマ0 [外部クロック] "111B"のとき SCK0,SCK1 端子 1/1(同期) 1/16(非同期) SMR0/1:MD1 (クロック同期/非同期の選択) 368 ボーレート 第 17 章 UART 17.6.1 専用ボーレートジェネレータによるボーレート UART の転送クロックとして , 専用ボーレートジェネレータの出力クロックを選択 した場合の設定可能なボーレートを示します。 ■ 専用ボーレートジェネレータによるボーレート 専用ボーレートジェネレータで転送クロックを生成する場合は , マシンクロックがマ シンクロックプリスケーラで分周された後 , クロックセレクタで選択される転送ク ロック分周比で分周されます。マシンクロック分周比は , 非同期 / 同期共通ですが , 転 送クロック分周比は非同期と同期で , 別々に内部設定された値を選択するようになっ ています。 したがって , 実際の転送レートは次式で与えられます。 非同期ボーレート =φ × ( プリスケーラ分周比 ) × ( 非同期転送クロック分周比 ) 同期ボーレート =φ × ( プリスケーラ分周比 ) × ( 同期転送クロック分周比 ) φ: マシンクロック周波数 ● プリスケーラによる分周比 ( 非同期 / 同期共通 ) マシンクロックの分周比は , 表 17.6-1 に示すように CDCR0/CDCR1 レジスタの DIV3 ~ DIV0 ビットで指定します。 表 17.6-1 マシンクロックプリスケーラによる分周比の選択 MD DIV3 DIV2 DIV1 DIV0 div 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 停止 1 2 3 4 5 6 7 8 ● 同期転送クロック分周比 同期ボーレートの分周比は , 表 17.6-2 に示すようにシリアルモードレジスタ (SMR) の CS2 ~ CS0 ビットで指定します。 表 17.6-2 同期ボーレート分周比の選択 CL2 CS1 CS0 CLK 同期時 算出式 0 0 1 4M (φ ÷ div) /2 0 1 0 2M (φ ÷ div) /4 0 1 1 1M (φ ÷ div) /8 1 0 0 500K (φ ÷ div) /16 1 0 1 250K (φ ÷ div) /32 ただし , φ はマシンサイクル , φ=16MHz, div=2 で算出しています。 369 第 17 章 UART ● 非同期転送クロック分周比 非同期ボーレートの分周比は , 表 17.6-3 に示すようにシリアルモードレジスタ (SMR0/SMR1) の CS2 ~ CS0 ビットで指定します。 表 17.6-3 非同期ボーレート分周比の選択 CL2 CS1 CS0 非同期 ( 調歩同期 ) 0 0 0 76923 (φ ÷ div) / (8 × 13 × 2) (φ ÷ div) / (8 × 13 × 4) 算出式 0 0 1 38461 0 1 0 19230 (φ ÷ div) / (8 × 13 × 8) 0 1 1 9615 (φ ÷ div) / (8 × 13 × 16) 1 0 0 500K (φ ÷ div) / (8 × 2 × 2) 1 0 1 250K (φ ÷ div) / (8 × 2 × 4) ただし , φ はマシンサイクル , φ= 16MHz, div=1 で算出しています。 ● 内部タイマ CS2 ~ CS0 を 110 に設定して内部タイマを選択した場合のボーレートの算出式 ( リロー ドタイマを使用した場合の例 ) は次式のようになります。 非同期 ( 調歩同期 ) CLK 同期 (φ ÷ N) / (16 × 2 × (n+1) ) (φ ÷ N) / (2 × (n+1) ) N: タイマのカウントクロックソース n: タイマのリロード値 <注意事項> モード 2 (CLK 同期モード ) の場合は , 同期ボーレートをマシンクロック周波数の 1/4 以下 としてください。 ● 外部クロック CS2 ~ CS0 を 111 に設定して外部クロックを選択した場合のボーレートは , 外部クロッ クの周波数を f とすると次のようになります。 非同期 ( 調歩同期 ) f/16 CLK 同期 f’ ただし, fの最大はマシンクロックの1/2まで, f’の最大はマシンクロックの1/8までです。 370 第 17 章 UART 17.6.2 内部タイマ (16 ビットリロードタイマ ) による ボーレート UART の転送クロックとして , 16 ビットリロードタイマから供給される内部クロッ クを選択する場合の設定とボーレートの計算式を示します。 ■ 内部タイマ (16 ビットリロードタイマ ) によるボーレート シリアルモードレジスタ (SMR0/SMR1) の CS2 ~ CS0 ビットに "110B" を書き込むと , 内部タイマによるボーレートが選択されます。ボーレートは , 16 ビットリロードタイ マのプリスケーラ分周比とリロード値の選択で自由に設定できます。図 17.6-2 に内部 タイマ (16 ビットリロードタイマ ) によるボーレート選択回路を示します。 図 17.6-2 内部タイマ (16 ビットリロードタイマ ) によるボーレート選択回路 SMR0/1:CS2~0=110B (内部タイマ選択) クロックセレクタ 1/1(同期) 1/16(非同期) 16ビットリロードタイマ出力 (プリスケーラ分周値と リロード値によって周波数指定) ボーレート SMR0/1:MD1 (クロック同期/非同期の選択) ● ボーレート計算式 非同期ボーレート = φ X (n + 1) × 2 × 16 同期ボーレート = φ X (n + 1) × 2 bps bps φ: マシンクロック周波数 X:16 ビットリロードタイマのプリスケーラによる分周比 (21, 23, 25) n:16 ビットリロードタイマのリロード値 (0 ~ 65535) 371 第 17 章 UART ● リロード値の設定例 ( マシンクロック :7.3728MHz の場合 ) 表 17.6-4 にボーレートとリロード値の関係を示します。 表 17.6-4 ボーレートとリロード値 リロード値 クロック非同期 ( 調歩同期 ) ボーレート X=21 ( マシンサイクルの 2 分周 ) X=23 ( マシンサイクルの 8 分周 ) X=21 ( マシンサイクルの 2 分周 ) X=23 ( マシンサイクルの 8 分周 ) 38400 2 - 47 11 19200 5 95 23 9600 11 - 2 191 47 4800 23 5 383 95 2400 47 11 767 191 1200 95 23 1535 383 600 191 47 3071 767 300 383 95 6143 1535 X : 16 ビットリロードタイマのプリスケーラによる分周比 - : 設定禁止 <注意事項> クロック同期時 , 以下の設定は禁止です。 X=1, n=0 372 クロック同期 第 17 章 UART 17.6.3 外部クロックによるボーレート UART の転送クロックとして , 外部クロックを選択する場合の設定とボーレートの 計算式を示します。 ■ 外部クロックによるボーレート ● ボーレートの選択 外部クロックによるボーレートを選択するには , 次の 3 つの設定が必要です。 シリアルモードレジスタ (SMR0/SMR1) の CS2 ~ CS0 ビットに "111B" を書き込んで , 外部クロック入力によるボーレートを選択します。 SCK0/P02, SCK1/P05 端子を入力に設定します (DDR0 の bit2=0, bit5=0) 。 モードレジスタ (SMR0/SMR1) の SCKE ビットに "0" を書き込んで , 端子を外部クロッ ク入力端子とします。 図 17.6-3 に示すように , SCK0 端子から入力された外部クロックを基に , ボーレートを 選択します。内部の分周比は固定されているので , ボーレートを変更するには外部の入 力クロックの周期を変更する必要があります。 図 17.6-3 外部クロックによるボーレート選択回路 SMR0/1:CS2~0=111B (外部クロック選択) クロックセレクタ SCK0 SCK1 端子 1/1(同期) 1/16(非同期) ボーレート SMR0/1:MD1 (クロック同期/非同期選択) ● ボーレート計算式 非同期ボーレート = f/16 同期ボーレート = f f: 外部クロック周波数 (f は最大で 2MHz) 373 第 17 章 UART 17.7 UART の動作 UART には , 通常の双方向シリアル通信機能 ( 動作モード 0, 2) の他に , マスタ / ス レーブ型接続の通信機能 ( 動作モード 1) があります。 ■ UART の動作 ● 動作モード UART の動作モードにはモード 0 ~ 2 の 3 種類があり , 表 17.7-1 に示すように CPU 間 の接続方式やデータ転送方式で選択することができます。 表 17.7-1 UART の動作モード データ長 動作モード パリティなし 0 ノーマルモード 1 マルチプロセッサ モード 2 ノーマルモード 同期方式 ストップビット長 非同期 1 ビット または 2 ビット* 2 パリティあり 7 ビットまたは 8 ビット 8 ビット+ 1 * 1 - 非同期 8 ビット - 同期 なし -: 設定不可 *1: " + 1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。 *2: 受信時のストップビットは 1 ビットのみ検出可 <注意事項> UART の動作モード 1 は , マスタ / スレーブ型接続におけるマスタの場合だけに使用され ます。 ● CPU 間接続方式 1 対 1 接続 ( ノーマルモード ) とマスタ / スレーブ型接続 ( マルチプロセッサモード ) の どちらかを選択できます。どちらの方式でも , データ長 , パリティ有無 , 同期方式など は , すべての CPU で統一しておく必要があり , 動作モードを次のように選択します。 1 対 1 接続では , 2 つの CPU で動作モード 0, 2 のいずれかの同じ方式を採用する必要が あります。非同期方式では動作モード 0 を , 同期方式では動作モード 2 を選択してくだ さい。 マスタ / スレーブ型接続では , 動作モード 1 を使用します。動作モード 1 を選択し , マ スタとして使用してください。なお , この接続ではパリティなしを選択してください。 ● 同期方式 動作モードにおいて , 非同期方式 ( 調歩同期 ) またはクロック同期方式のどちらかを選 択できます。 ● 信号方式 UART は , NRZ (Non Return to Zero) 形式のデータだけを扱えます。 374 第 17 章 UART ● 動作許可 UART は , 送信 , 受信のそれぞれに対して , TXE ( 送信 ) , RXE ( 受信 ) の動作許可ビッ トがあり , 送受信動作を制御することができます。動作中に , 動作禁止した場合は , 次 のようになります。 受信中 (受信用シフトレジスタにデータが入力されているとき) に受信動作を禁止した 場合には , そのフレームの受信を完了し , シリアル入力データレジスタ (SIDR0/SIDR1) に受信データを格納したところで受信動作を停止します。 送信中 (送信用シフトレジスタからデータが出力されている場合) に送信動作を禁止し た場合は , シリアル出力データレジスタ (SODR0/SODR1) にデータがなくなった後に 送信動作を停止します。 375 第 17 章 UART 17.7.1 非同期モード ( 動作モード 0, 1) の動作 UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ モード ) で使用する場合 , 転送方式は非同期となります。 ■ 非同期モード ( 動作モード 0, 1) の動作 ● 転送データフォーマット 転送データは必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット 長の転送が行われ , ストップビット ("H" レベル ) で終了します。 動作モード 1 では , データは 8 ビット長固定で , パリティは付加されず , そのかわりに A/D ( アドレス / データ選択ビット ) が付加されています。 図 17.7-1 に , 転送データフォーマット ( 動作モード 0, 1) を示します。 図 17.7-1 転送データフォーマット ( 動作モード 0, 1) * [動作モード0] ST D0 D1 D2 D3 D4 D5 D6 D7/P SP [動作モード1] ST D0 D1 D2 D3 D4 D5 D6 D7 A/D SP * :D7(ビット7)……パリティなしのとき P(パリティ)……パリティありのとき ST :スタートビット SP :ストップビット A/D :動作モード1(マルチプロセッサモード)のアドレス/データ選択ビット ● 送信動作 送信データエンプティフラグビット (SSR0/SSR1 の TDRE) が "1" のとき , シリアル出力 データレジスタ (SODR) に送信データを書き込みます。ここで , 送信動作が許可 (SCR0/ SCR1 の TXE=1) されていると , 送信します。 送信データが送信用シフトレジスタに転送されて送信が開始されると, TDREフラグが 再び "1" にセットされ , 次の送信データをセットできるようになります。このとき , 送 信割込み要求が許可 (SSR0/SSR1 の TIE=1) されていれば , 送信割込み要求を出力して SODR0/SODR1 に送信データをセットするように要求します。TDRE フラグは , SODR0/ SODR1 に送信データを書き込むと , "0" にクリアされます。 ● 受信動作 受信動作が許可 (SCR0/SCR1 の RXE=1) されていると , 常に受信動作が行われていま す。スタートビットを検出すると , シリアル制御レジスタ (SCR0/SCR1) で決められた データフォーマットに従って 1 フレームデータの受信が行われます。1 フレームの受信 が終わると , エラーが発生した場合にはエラーフラグがセットされた後 , 受信データフ ルフラグビット (SSR0/SSR1 の RDRF) が "1" にセットされます。このとき , 受信割込み 要求が許可 (SSR0/SSR1 の RIE=1) されていると受信割込み要求を出力します。シリア ルステータスレジスタ (SSR0/SSR1) の各フラグを調べ , 正常受信ならシリアル入力 データレジスタ (SIDR0/SIDR1) をリードして , エラーが発生していたらエラー処理を するようにしてください。RDRF フラグは , SIDR0/SIDR1 から受信データをリードする と "0" にクリアされます。 376 第 17 章 UART ● スタートビット検出方法 スタートビットを検出するには , 以下のように設定してください。 • 通信期間直前は通信線を必ず "H"( マークレベルを付加 ) にしてください。 • 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE="H") にしてください。 • 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE="H") にしないでください。 正しいデータが受信できません。 • ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H"( マー クレベル ) の間に受信禁止 (RXE="L") にしてください。 図 17.7-2 正常動作例 通信期間 非通信期間 マークレベル SIN スタート ビット ST 非通信期間 ストップ ビット データ D0 D1 D2 D3 D4 D5 D6 D7 SP D7 SP (01010101B送信) RXE 受信クロック サンプリングクロック ●受信クロック(8パルス) マイコン側の認識 (01010101B受信) ST ●受信クロックを16分周してサンプリングクロックを生成 D0 D1 D2 D3 D4 D5 D6 以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ (SIN) が正しく認識されませんので注意してください。 • 通信線が "L" の期間に , 受信許可 (RXE="H") に設定した場合の動作例 図 17.7-3 異常動作例 通信期間 非通信期間 スタート マークレベル ビット SIN (01010101B送信) RXE 非通信期間 ストップ ビット データ ST D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 SP SP 受信クロック サンプリングクロック マイコン側の認識 (10101010B受信) ST認識 PE,ORE,FRE ●受信エラー発生 ● ストップビット 送信時には 1 ビットまたは 2 ビットを選択できます。ただし , 受信側では , 常に最初の 1 ビットだけを判別します。 ● エラー検出 モード 0 では , パリティエラー , オーバランエラー , フレームエラーが検出できます。 モード 1 では , オーバラン , フレームエラーが検出でき , パリティエラーは検出できま せん。 377 第 17 章 UART ● パリティ 0 パリティは , 動作モード 0 ( 非同期 , ノーマルモード ) の場合にだけ使用できます。シリア ル制御レジスタ (SCR0/SCR1) のPENビットでパリティの有無を, Pビットで偶数パリティ/ 奇数パリティを設定できます。動作モード 1 ( 非同期 , マルチプロセッサモード ) および 動作モード 2 ( 同期 , ノーマルモード ) では , パリティの使用はできません。パリティ有効 時の送受信データを図 17.7-4 に示します。 図 17.7-4 パリティ有効時の送受信データ SIN0/1 ST SP 1 SOT0/1 1 1 0 0 0 0 ST 1 SOT0/1 0 0 1 1 0 0 0 0 1 1 データ 0 0 0 SP 偶数パリティの送信 (SCR0/1のP=0) SP 奇数パリティの送信 (SCR0/1のP=1) 1 ST 1 0 パリティ ST :スタートビット SP :ストップビット (注意事項)動作モード1, 2では,パリティは使用できません。 378 偶数パリティにて受信時 パリティエラー発生 (SCR0/1のP=0) 第 17 章 UART 17.7.2 同期モード ( 動作モード 2) の動作 UART 動作モード 2 ( ノーマルモード ) で使用する場合 , 転送方式はクロック同期と なります。 ■ 同期モード ( 動作モード 2) の動作 ● 転送データフォーマット 同期モードでは , 8 ビットデータを転送し , スタートビット , ストップビットは付加さ れません。図 17.7-5 に転送データフォーマット ( 動作モード 2) を示します。 図 17.7-5 転送データフォーマット ( 動作モード 2) シリアルクロックを出力して送信する場合 マークレベル SCK0出力 SOT0, 1 (LSB) 1 0 1 1 0 0 1 (MSB) 送信データ 送信データ書込み TDRE TXE シリアルクロックを入力して受信する場合 マークレベル SCK0入力 SIN0, 1 (LSB) 1 0 1 1 0 0 1 (MSB) 受信データ RDRF RXE 受信データ 読出し ● クロック供給 クロック同期 (I/O拡張シリアル) 方式では, 送受信ビット数に等しい数のクロックの供 給が必要になります。 内部クロック ( 専用ボーレートジェネレータまたは内部タイマ ) を選択している場合は , データを送信するとデータ受信用同期クロックが自動的に生成されます。 外部クロックを選択している場合は , 送信側 UART のシリアル出力データレジスタ (SODR0/SODR1) にデータがあること (SSR0/SSR1 の TDRE=0) を確かめた後 , 正確に 1 バイト分のクロックを外部から供給する必要があります。また , 送信開始前と終了後は , 必ずマークレベル ("H") にする必要があります。 379 第 17 章 UART ● エラー検出 オーバランエラーだけ検出可能で , パリティエラー, フレーミングエラーは検出できま せん。 ● 初期化 同期モードを使用する場合の , 各制御レジスタの設定値を示します。 • シリアルモードレジスタ (SMR0/SMR1) - MD1, MD0:"10B" - CS2, CS1, CS0: クロックセレクタのクロック入力を指定 - SCKE: 専用ボーレートジェネレータまたは内部タイマの場合 "1", クロック出力 , 外部クロック ( クロック入力 ) の場合 "0" - SOE: 送信する場合 "1", 受信だけの場合 "0" • シリアル制御レジスタ (SCR0/SCR1) - PEN:"0" - P, SBL, A/D: これらのビットは意味を持ちません - CL:"1" (8 ビットデータ ) - REC:"0" ( 初期化するため , エラーフラグクリア ) - RXE, TXE: 少なくとも , どちらか一方を "1" • シリアルステータスレジスタ (SSR0/SSR1) - RIE: 割込みを使用する場合 "1", 割込みを使用しない場合 "0" - TIE: 割込みを使用する場合 "1", 割込みを使用しない場合 "0" ● 通信開始 シリアル出力データレジスタ (SODR0/SODR1) への書込みで通信を開始します。受信 する場合でも通信を開始する場合は , 必ず仮のデータを SODR に書き込む必要があり ますので , 注意してください。 ● 通信終了 1 フレームのデータ送受信が終了すると , シリアルステータスレジスタ (SSR0/SSR1) の RDRFフラグが"1"にセットされます。受信時は, オーバランエラーフラグビット (SSR0/ SSR1 の ORE) をチェックし , 通信が正常に行われたかどうかを判断してください。 <注意事項> 動作モード 2 ( 同期 ) 時は , SCR:RXE ビットまたは SCR:TXE ビットのどちらか一方を "1" に設定すると , 送信・受信動作が共に許可されます。そのため , 送信と受信が同時に動作 します。 380 第 17 章 UART 17.7.3 双方向通信機能 ( ノーマルモード ) 動作モード 0, 2 で , 1 対 1 接続の通常のシリアル双方向通信をすることができます。 同期方式は , 動作モード 0 の場合は非同期 , 動作モード 2 の場合は同期となります。 ■ 双方向通信機能 UART をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 17.7-6 に示す UART1 の動作モード 0 の設定が必要です。 図 17.7-6 UART1 の動作モード 0 の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCR1, SMR1 PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 - SCKE COE 0 0 0 モード 0 → ◎ ◎ ◎ ◎ × ◎ ◎ ◎ ◎ ◎ ◎ ◎ 0 1 0 1 0 モード 2 → × × × ◎ ◎ ◎ ◎ ◎ ◎ ◎ SSR1, SIDR1/SODR1 PE ORE FRE RDRF TDRE BDS RIE モード 0 → ◎ モード 2 → ◎ ◎ × ◎ ◎ ◎ × ◎ ◎ ◎ ◎ ◎ ◎ TIE 変換データを設定 ( 書込み時 ) / 受信データを保持 ( 読出し時 ) ◎ ◎ DDR0 △ △ ◎:使用ビット ×:未使用ビット 1 :"1" を設定 0 :"0" を設定 △:端子の入力を使用する場合 "0" を設定 ● CPU 間接続 双方向通信では , 図 17.7-7 に示すように , 2 つの CPU を相互に接続します。 図 17.7-7 UART1 の双方向通信の接続例 SOT1 SOT1 SIN1 SCK1 CPU-1 SIN1 出力 入力 SCK1 CPU-2 381 第 17 章 UART ● 通信手順 通信は , 任意なタイミングで , 送信データが準備できたときに送信側から開始します。 受信側で送信データを受け取ると定期的に , ANS ( 本例では 1 バイトごと ) を返します。 図 17.7-8 に双方向通信フローチャートの例を示します。 図 17.7-8 双方向通信フローチャートの例 (送信側) (受信側) スタート スタート 動作モード設定 ("0", "2"いずれか) 動作モード設定 (送信側と合わす) SODRに1バイトデータを セットして通信 データ送信 受信データあり NO YES NO 受信データあり 受信データ読出しと処理 YES データ送信 受信データ読出しと処理 382 (ANS) 1バイトデータ送信 第 17 章 UART 17.7.4 マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) UART は , 複数 CPU のマスタ / スレーブ型接続による通信が可能であり , 動作モー ド 1 を使用します。ただし , UART はマスタとしてだけ使用可能です。 ■ マスタ / スレーブ型通信機能 UART をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 17.7-9 に 示す設定が必要です。 図 17.7-9 UART の動作モード 1 の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCR1, SMR1 PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 - SCKE COE 0 1 0 0 1 0 × ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ SSR1, SIDR1/SODR1 PE ORE FRE RDRF TDRE BDS RIE × ◎ ◎ ◎ ◎ ◎ TIE ◎ 送信データを設定 ( 書込み時 ) / 受信データを保持 ( 読出し時 ) ◎ DDR0 △ △ ◎:使用ビット ×:未使用ビット 1 :"1" を設定 0 :"0" を設定 △:端子の入力を使用する場合 "0" を設定 ● CPU 間接続 マスタ / スレーブ型通信では , 図 17.7-10 に示すように , 2 本の共通通信ラインに 1 つの マスタ CPU と , 複数のスレーブ CPU を接続して , 通信システムを構成します。UART1 は , マスタ CPU としてだけ使用可能です。 図 17.7-10 UART のマスタ / スレーブ型通信の接続例 SOT1 SIN1 マスタCPU SOT SIN スレーブCPU #0 SOT SIN スレーブCPU #1 383 第 17 章 UART ● 機能選択 マスタ / スレーブ型通信では , 表 17.7-2 に示すように , 動作モードとデータ転送方式を 選択してください。 表 17.7-2 マスタ / スレーブ型通信機能の選択 動作モード マスタ CPU スレーブ CPU アドレス 送受信 モード 1 データ 送受信 - データ A/D=1 + 8 ビットアドレス A/D=0 + 8 ビットデータ パリティ 同期方式 ストップビット なし 非同期 1 ビット または 2 ビット ● 通信手順 通信はマスタ CPU がアドレスデータを送信することによって始まります。アドレス データとは A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択しま す。各スレーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレ スと一致した場合に , マスタ CPU との通信 ( 通常データ ) をします。 図 17.7-11 に , マスタ / スレーブ型通信フローチャートを示します。 384 第 17 章 UART 図 17.7-11 マスタ / スレーブ型通信フローチャート (マスタCPU) スタート 動作モードを"1"とする SIN端子をシリアルデータ 入力に設定 D0~D7にスレーブ CPUを選択する1バイト データ(アドレスデータ) をセットして送信 (A/D=1) A/Dに"0"をセット 受信動作許可 スレーブCPUと通信 通信終了? NO YES ほかの スレーブCPU と通信 NO YES 受信動作禁止 エンド 385 第 17 章 UART 17.8 UART 使用上の注意 UART を使用する場合の注意点を示します。 ■ UART 使用上の注意 ● 動作許可 UARTには , 送信, 受信のそれぞれに対してシリアル制御レジスタ (SCR0/SCR1) にTXE ( 送信 ) , RXE ( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では , 送受 信とも動作禁止であるため , 転送前に動作を許可する必要があります。また , 必要に応 じて動作禁止にして , 転送を中止することもできます。 ● 通信モードの設定 通信モードの設定は , UART の動作停止中にしてください。送受信中にモード設定をし た場合 , そのとき送受信されたデータは保証されません。 ● 同期モード UART のクロック同期モード ( 動作モード 2) は , クロック制御 (I/O 拡張シリアル ) 方 式を採用しており , スタートビット , ストップビットはデータに付加されません。 ● 送信割込み許可のタイミング 送信データエンプティフラグビット (SSR0/SSR1のTDRE) はデフォルト (初期値) が"1" ( 送信データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR0/ SSR1 の TIE=1) すると直ちに , 送信割込み要求が発生します。必ず , 送信データを準備 してから , TIE フラグを "1" にしてください。 ● マルチプロセッサモードの受信 UARTのマルチプロセッサモードにおいては, 9ビット受信での受信動作はできません。 ● クロック同期モード時のクロック設定 クロック同期モード時に専用ボーレートジェネレータを使用する場合 , 以下の設定は 禁止です。 1)CS2 ~ CS0 =000B 2)CS2 ~ CS0 =001B かつ , DIV3 ~ DIV0 =0000B 386 第 17 章 UART 17.9 UART のプログラム例 UART のプログラム例を示します。 ■ UART のプログラム例 ● 処理仕様 以下に示す仕様を想定したプログラム例を示します。 • UART の双方向通信機能 ( ノーマルモード ) を使用して , シリアル送受信をします。 • 動作モード 0, 非同期 , データ長 8 ビット , ストップビット長 2 ビット , パリティな しとします。 • 通信には , P00/SIN0, P01/SOT0 端子を使用します。 • 専用ボーレートジェネレータを使用し , ボーレートの設定は , 約 9600bps にします。 • SOT0 端子からキャラクタ "13H" を送出し , 割込みで受信します。 • マシンクロック (φ) は , 16MHz とします。 【コーディング例】 ICR14 EQU 0000BEH ; UART 送受信割込み用制御レジスタ DDR0 EQU 000010H ; ポート 0 方向レジスタ SMR EQU 000034H ; シリアルモードレジスタ SCR EQU 000035H ; シリアル制御レジスタ SIDR EQU 000036H ; シリアル入力データレジスタ SODR EQU 000036H ; シリアル出力データレジスタ SSR EQU 000037H ; シリアルステータスレジスタ REC EQU SCR:2 ; 受信エラーフラグクリアビット ;---------- メインプログラム ------------------------------------------------CODE CSEG ABS = 0FFH START: ; : ; スタックポインタ (SP) などは初期化済みとする AND CCR, #0BFH ; 割込みディセーブル MOV I:ICR14, #00H ; 割込みレベル 0( 最強 ) MOV I:DDR0, #00000000B ; SIN0 端子を入力に設定 MOV I:SMR, #00010001B ; 動作モード 0( 非同期 ) ; 専用ボーレートジェネレータ使用 ; (9615bps 選択 ) ; クロック出力禁止 , データ出力許可 MOV I:SCR, #00010011B ; パリティなし , ストップビット 2 ビット ; データ長 8 ビット , 受信エラーフラグクリア ; 送受信動作許可 MOV I:SSR, #00000010B ; 送信割込み禁止 , 受信割込み許可 MOV I:SODR, #13H ; 送信データ書込み MOV ILM, #07H ; PS 内 ILM をレベル 7 に設定 ORCCR, #40H ; 割込みイネーブル LOOP: MOV A, #00H ; 無限ループ MOV A, #01H BRA LOOP 387 第 17 章 UART ;---------- 割込みプログラム ------------------------------------------------WARI: MOV A, SIDR ; 受信データの読出し CLRB I:REC ; 受信割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FF60H ; 割込み #39(27H) にベクタを設定 DSL WARI ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS 388 第 18 章 CAN コントローラ この章では , CAN コントローラの概要と機能につ いて説明します。 18.1 CAN コントローラの特長 18.2 CAN コントローラのブロックダイヤグラム 18.3 CAN コントローラのレジスタ分類 18.4 CAN コントローラの送信 18.5 CAN コントローラの受信 18.6 CAN コントローラの使用方法 18.7 メッセージバッファ (x) による送信方法 18.8 メッセージバッファ (x) による受信方法 18.9 マルチレベルメッセージバッファの構成の決定 18.10 CAN ウェイクアップ機能 18.11 CAN コントローラの使用上の注意 18.12 CAN プログラム例 389 第 18 章 CAN コントローラ 18.1 CAN コントローラの特長 CAN コントローラは , 16 ビットマイクロコンピュータ (F2MC-16LX) 内に一体化さ れたモジュールです。CAN ( コントローラエリアネットワーク ) は自動車用コント ローラ間のシリアル通信用の標準プロトコルで , 工業分野で広く使用されているも のです。 ■ CAN コントローラの特長 CAN コントローラの特長は次のとおりです。 • CAN 仕様バージョン 2.0 パート A および B に適合しています。 標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしていま す。 • リモートフレームの受信によるデータフレームの送信をサポートしています。 • 16 個の送信 / 受信メッセージバッファ 29 ビットの ID および 8 バイトデータ マルチレベルメッセージバッファ構造 • フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサ ポートしています。 標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンス マスクレジスタを提供します。 • ビット速度は , 10kbps ~ 1Mbps でプログラマブルです (1Mbps でご使用の場合 , マ シンクロックは 8MHz 以上で動作する必要があります ) 。 • CAN ウェイクアップ機能 • MB90420G シリーズは , CAN コントローラを 2 チャネル搭載しています。 MB90425G シリーズは , CAN コントローラを 1 チャネル搭載しています。 390 第 18 章 CAN コントローラ 18.2 CAN コントローラのブロックダイヤグラム 図 18.2-1 に , CAN コントローラのブロックダイヤグラムを示します。 ■ CAN コントローラのブロックダイヤグラム 図 18.2-1 CAN コントローラのブロックダイヤグラム 内部データバス TQ (動作クロック) プリスケーラ 1~64周波数分割 クロック ビットタイミング発生 SYNC, TSEG1, TSEG2 PSC TS1 BTR TS2 RSJ TOE TS RS HALT CSR NIE NT バスステート マシン ノードステータス 変化割込み ノードステータス 変化割込み発生 IDLE, INT, SUSPND, 送信,送信,ERR,OVRLD NS1,0 エラー 制御 RTEC 送信/受信シーケンサ BVALR TREQR TBFx,クリア 送信バッファx判定 TBFx TDLC RDLC TBFx エラー フレーム発生 データ アクセプタンス カウンタ フィルタ制御 過負荷 フレーム 発生 IDSEL BITER, STFER, CRCER, FRMER, ACKER TCANR 出力 ドライバ ARBLOST TX TRTRR TCR TBFx, セット, クリア ACK発生 CRCER RBFx, セット RDLC 受信完了 割込み 受信完了 割込み発生 RIER RRTRR CRC発生 TDLC 送信完了 割込み 送信完了 割込み発生 TIER RCR スタッ フィング 送信シフト レジスタ RFWTR STFER デスタッフィング/ スタッフィング エラーチェック 受信シフト レジスタ RBFx, TBFx, セット, クリア RBFx,セット CRC発生/エラーチェック IDSEL ROVRR ARBLOST AMSR AMR0 0 1 アクセプタンス フィルタ 受信バッファx 判定 BITER ビットエラー チェック ACKER 確認エラー チェック FRMER フォームエラー チェック AMR1 IDR0~15 DLCR0~15 DTR0~15 RAM RBFx RAMアドレス 発生 アービトレーション チェック PH1 入力 ラッチ RX RBFx, TBFx, RDLC, TDLC, IDSEL LEIR IDER 391 第 18 章 CAN コントローラ CAN コントローラのレジスタ分類 18.3 CAN コントローラのレジスタは , 次の 4 つから構成されます。 • 全体コントロールレジスタ • メッセージバッファコントロールレジスタ • メッセージバッファ • CAN ウェイクアップ制御レジスタ ■ 全体コントロールレジスタ 全体コントロールレジスタには , 次の 4 つがあります。 • 制御ステータスレジスタ (CSR) • ラストイベント表示レジスタ (LEIR) • 受信および送信エラーカウンタ (RTEC) • ビットタイミングレジスタ (BTR) 表 18.3-1 に全体コントロールレジスタの一覧を示します。 表 18.3-1 全体コントロールレジスタの一覧 アドレス CAN0 CAN1 003C00H 003D00H 003C01H 003D01H 003C02H 003D02H 003C03H 003D03H 003C04H 003D04H 003C05H 003D05H 003C06H 003D06H 003C07H 003D07H レジスタ 略称 アクセス 初期値 制御ステータスレジスタ CSR (R/W, R) 00---000 0----0-1B ラストイベント表示レジスタ LEIR (R/W) -------- 000-0000B 受信および送信エラーカウンタ RTEC (R) 00000000 00000000B ビットタイミングレジスタ BTR (R/W) -1111111 11111111B ■ メッセージバッファコントロールレジスタ メッセージバッファコントロールレジスタには , 次の 14 種類のレジスタがあります。 • メッセージバッファ有効レジスタ (BVALR) • IDE レジスタ (IDER) • 送信要求レジスタ (TREQR) • 送信 RTR レジスタ (TRTRR) • リモートフレーム受信待機レジスタ (RFWTR) • 送信解除レジスタ (TCANR) • 送信完了レジスタ (TCR) • 送信割込み許可レジスタ (TIER) • 受信完了レジスタ (RCR) • リモート要求受信レジスタ (RRTRR) • 受信オーバランレジスタ (ROVRR) 392 第 18 章 CAN コントローラ • 受信割込み許可レジスタ (RIER) • アクセプタンスマスク選択レジスタ (AMSR) • アクセプタンスマスクレジスタ 0 および 1 (AMR0, AMR1) 表 18.3-2 にメッセージバッファコントロールレジスタの一覧を示します。 表 18.3-2 メッセージバッファコントロールレジスタの一覧 アドレス CAN0 CAN1 000040H 000070H 000041H 000071H 000042H 000072H 000043H 000073H 000044H 000074H 000045H 000075H 000046H 000076H 000047H 000077H 000048H 000078H 000049H 000079H 00004AH 00007AH 00004BH 00007BH 00004CH 00007CH 00004DH 00007DH 00004EH 00007EH 00004FH 00007FH 003C08H 003D08H 003C09H 003D09H 003C0AH 003D0AH 003C0BH 003D0BH 003C0CH 003D0CH 003C0DH 003D0DH 003C0EH 003D0EH 003C0FH 003D0FH 003C10H 003D10H 003C11H 003D11H 003C12H 003D12H 003C13H 003D13H 003C14H 003D14H 003C15H 003D15H 003C16H 003D16H 003C17H 003D17H 003C18H 003D18H 003C19H 003D19H 003C1AH 003D1AH 003C1BH 003D1BH レジスタ 略称 アクセス 初期値 メッセージバッファ 有効レジスタ BVALR (R/W) 00000000 00000000B 送信要求レジスタ TREQR (R/W) 00000000 00000000B 送信解除レジスタ TCANR (W) 00000000 00000000B 送信完了レジスタ TCR (W) 00000000 00000000B 受信完了レジスタ RCR (R/W) 00000000 00000000B リモート要求受信レジスタ RRTRR (R/W) 00000000 00000000B 受信オーバランレジスタ ROVRR (R/W) 00000000 00000000B 受信割込み許可レジスタ RIER (R/W) 00000000 00000000B IDE レジスタ IDER (R/W) XXXXXXXX XXXXXXXXB 送信 RTR レジスタ TRTRR (R/W) 00000000 00000000B リモートフレーム 受信待機レジスタ RFWTR (R/W) XXXXXXXX XXXXXXXXB TIER (R/W) 00000000 00000000B AMSR (R/W) 送信割込み許可レジスタ アクセプタンスマスク選択 レジスタ XXXXXXXX XXXXXXXXB XXXXXXXX XXXXXXXXB XXXXXXXX XXXXXXXXB アクセプタンスマスク レジスタ 0 AMR0 アクセプタンスマスク レジスタ 1 AMR1 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB (R/W) XXXXX--- XXXXXXXXB 393 第 18 章 CAN コントローラ ■ メッセージバッファ メッセージバッファには , 次の 3 つがあります。 • ID レジスタ x (x=0 ~ 15) (IDRx) • DLC レジスタ x (x=0 ~ 15) (DLCRx) • データレジスタ x (x=0 ~ 15) (DTRx) 表 18.3-3 にメッセージバッファ (ID レジスタ ) の一覧を , 表 18.3-4 にメッセージバッ ファ (DLC レジスタ ) の一覧を , 表 18.3-5 にメッセージバッファ (DT レジスタ ) の一覧 を示します。 表 18.3-3 メッセージバッファ (ID レジスタ ) の一覧 (1 / 2) アドレス CAN0 CAN1 003A00H ~ 003A1FH 003B00H ~ 003B1FH 003A20H 003B20H 003A21H 003B21H 003A22H 003B22H 003A23H 003B23H 003A24H 003B24H 003A25H 003B25H 003A26H 003B26H 003A27H 003B27H 003A28H 003B28H 003A29H 003B29H 003A2AH 003B2AH 003A2BH 003B2BH 003A2CH 003B2CH 003A2DH 003B2DH 003A2EH 003B2EH 003A2FH 003B2FH 003A30H 003B30H 003A31H 003B31H 003A32H 003B32H 003A33H 003B33H 003A34H 003B34H 003A35H 003B35H 003A36H 003B36H 003A37H 003B37H 003A38H 003B38H 003A39H 003B39H 003A3AH 003B3AH 003A3BH 003B3BH 003A3CH 003B3CH 003A3DH 003B3DH 003A3EH 003B3EH 003A3FH 003B3FH 394 レジスタ 汎用 RAM 略称 アクセス 初期値 -- (R/W) XXXXXXXXB ~ XXXXXXXXB IDR0 (R/W) XXXXXXXX XXXXXXXXB ID レジスタ 0 XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 1 IDR1 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 2 IDR2 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 3 IDR3 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 4 IDR4 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 5 IDR5 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 6 IDR6 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 7 IDR7 (R/W) XXXXX--- XXXXXXXXB 第 18 章 CAN コントローラ 表 18.3-3 メッセージバッファ (ID レジスタ ) の一覧 (2 / 2) アドレス CAN0 CAN1 003A40H 003B40H 003A41H 003B41H 003A42H 003B42H 003A43H 003B43H 003A44H 003B44H 003A45H 003B45H 003A46H 003B46H 003A47H 003B47H 003A48H 003B48H 003A49H 003B49H 003A4AH 003B4AH 003A4BH 003B4BH 003A4CH 003B4CH 003A4DH 003B4DH 003A4EH 003B4EH 003A4FH 003B4FH 003A50H 003B50H 003A51H 003B51H 003A52H 003B52H 003A53H 003B53H 003A54H 003B54H 003A55H 003B55H 003A56H 003B56H 003A57H 003B57H 003A58H 003B58H 003A59H 003B59H 003A5AH 003B5AH 003A5BH 003B5BH 003A5CH 003B5CH 003A5DH 003B5DH 003A5EH 003B5EH 003A5FH 003B5FH レジスタ 略称 アクセス IDR8 (R/W) 初期値 XXXXXXXX XXXXXXXXB ID レジスタ 8 XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 9 IDR9 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 10 IDR10 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 11 IDR11 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 12 IDR12 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 13 IDR13 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 14 IDR14 (R/W) XXXXX--- XXXXXXXXB XXXXXXXX XXXXXXXXB ID レジスタ 15 IDR15 (R/W) XXXXX--- XXXXXXXXB 395 第 18 章 CAN コントローラ 表 18.3-4 メッセージバッファ (DLC レジスタ ) の一覧 アドレス CAN0 CAN1 003A60H 003B60H 003A61H 003B61H 003A62H 003B62H 003A63H 003B63H 003A64H 003B64H 003A65H 003B65H 003A66H 003B66H 003A67H 003B67H 003A68H 003B68H 003A69H 003B69H 003A6AH 003B6AH 003A6BH 003B6BH 003A6CH 003B6CH 003A6DH 003B6DH 003A6EH 003B6EH 003A6FH 003B6FH 003A70H 003B70H 003A71H 003B71H 003A72H 003B72H 003A73H 003B73H 003A74H 003B74H 003A75H 003B75H 003A76H 003B76H 003A77H 003B77H 003A78H 003B78H 003A79H 003B79H 003A7AH 003B7AH 003A7BH 003B7BH 003A7CH 003B7CH 003A7DH 003B7DH 003A7EH 003B7EH 003A7FH 003B7FH 396 レジスタ 略称 アクセス 初期値 DLC レジスタ 0 DLCR0 (R/W) ---- XXXXB DLC レジスタ 1 DLCR1 (R/W) ---- XXXXB DLC レジスタ 2 DLCR2 (R/W) ---- XXXXB DLC レジスタ 3 DLCR3 (R/W) ---- XXXXB DLC レジスタ 4 DLCR4 (R/W) ---- XXXXB DLC レジスタ 5 DLCR5 (R/W) ---- XXXXB DLC レジスタ 6 DLCR6 (R/W) ---- XXXXB DLC レジスタ 7 DLCR7 (R/W) ---- XXXXB DLC レジスタ 8 DLCR8 (R/W) ---- XXXXB DLC レジスタ 9 DLCR9 (R/W) ---- XXXXB DLC レジスタ 10 DLCR10 (R/W) ---- XXXXB DLC レジスタ 11 DLCR11 (R/W) ---- XXXXB DLC レジスタ 12 DLCR12 (R/W) ---- XXXXB DLC レジスタ 13 DLCR13 (R/W) ---- XXXXB DLC レジスタ 14 DLCR14 (R/W) ---- XXXXB DLC レジスタ 15 DLCR15 (R/W) ---- XXXXB 第 18 章 CAN コントローラ 表 18.3-5 メッセージバッファ (DT レジスタ ) の一覧 アドレス レジスタ 略称 アクセス 初期値 003B80H ~ 003B87H データレジスタ 0 DTR0 (R/W) XXXXXXXXB ~ XXXXXXXXB 003A88H ~ 003A8FH 003B88H ~ 003B8FH データレジスタ 1 DTR1 (R/W) XXXXXXXXB ~ XXXXXXXXB 003A90H ~ 003A97H 003B90H ~ 003B97H データレジスタ 2 DTR2 (R/W) XXXXXXXXB ~ XXXXXXXXB 003A98H ~ 003A9FH 003B98H ~ 003B9FH データレジスタ 3 DTR3 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AA0H ~ 003AA7H 003BA0H ~ 003BA7H データレジスタ 4 DTR4 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AA8H ~ 003AAFH 003BA8H ~ 003BAFH データレジスタ 5 DTR5 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AB0H ~ 003AB7H 003BB0H ~ 003BB7H データレジスタ 6 DTR6 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AB8H ~ 003ABFH 003BB8H ~ 003BBFH データレジスタ 7 DTR7 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AC0H ~ 003AC7H 003BC0H ~ 003BC7H データレジスタ 8 DTR8 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AC8H ~ 003ACFH 003BC8H ~ 003BCFH データレジスタ 9 DTR9 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AD0H ~ 003AD7H 003BD0H ~ 003BD7H データレジスタ 10 DTR10 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AD8H ~ 003ADFH 003BD8H ~ 003BDFH データレジスタ 11 DTR11 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AE0H ~ 003AE7H 003BE0H ~ 003BE7H データレジスタ 12 DTR12 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AE8H ~ 003AEFH 003BE8H ~ 003BEFH データレジスタ 13 DTR13 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AF0H ~ 003AF7H 003BF0H ~ 003BF7H データレジスタ 14 DTR14 (R/W) XXXXXXXXB ~ XXXXXXXXB 003AF8H ~ 003AFFH 003BF8H ~ 003BFFH データレジスタ 15 DTR15 (R/W) XXXXXXXXB ~ XXXXXXXXB CAN0 CAN1 003A80H ~ 003A87H ■ CAN ウェイクアップ制御レジスタ CAN ウェイクアップ制御レジスタは , 以下のとおりです。 • CAN ウェイクアップ制御レジスタ (CWUCR) 表 18.3-6 に CAN ウェイクアップ制御レジスタ (CWUCR) の内容を示します。 表 18.3-6 CAN ウェイクアップ制御レジスタ一覧 アドレス レジスタ CAN0 CAN1 00003EH - CAN ウェイクアップ制御 レジスタ 略号 アクセス 初期値 CWUCR (R/W) -------0B 397 第 18 章 CAN コントローラ 18.3.1 制御ステータスレジスタ (CSR) 制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リー ドモディファイライト系命令 ) を実行することは禁止されています。ただし , HALT ビットが変化しないタイミング ( マクロの初期化など ) では , ビット操作命令 を使用しても問題ありません。 ■ 制御ステータスレジスタ (CSR) のビット構成 図 18.3-1 に制御ステータスレジスタ (CSR) のビット構成を示します。 図 18.3-1 制御ステータスレジスタ (CSR) のビット構成 アドレス:003C01H(CAN0) bit 15 14 TS RS - - 読出し / 書込み→ 初期値→ (R) (0) (R) (0) (-) (-) (-) (-) 7 6 5 4 (-) (-) (-) (-) (-) (-) アドレス:003D01H(CAN1) アドレス:003C00H(CAN0) アドレス:003D00H(CAN1) bit TOE 読出し / 書込み→ (R/W) (0) 初期値→ 13 12 11 10 9 8 - NT NS1 NS0 (-) (-) (R/W) (0) (R) (0) (R) (0) 3 2 1 0 (-) (-) NIE (R/W) (0) (-) (-) HALT (R/W) (1) 【bit15】TS: 送信ステータスビット このビットは , メッセージが送信中であるかどうかを示します。 • 0: メッセージは送信されていません。 • 1: メッセージが送信されています。 このビットは , エラーフレームおよびオーバロードフレームが送信されている間も "0" です。 【bit14】RS: 受信ステータスビット このビットは , メッセージが受信されているかどうかを示します。 • 0: メッセージは受信されていません。 • 1: メッセージが受信されています。 メッセージがバス上にある間 , このビットは "1" になります。このため , このビットは メッセージが送信されている間も "1" になります。このビットは必ずしも , 受信メッ セージがアクセプタンスフィルタを通って通過したかどうかを示すものではありませ ん。 結果として , このビットが "0" のときはバス動作は停止している (HALT=0) か , バスは インターミッション / バスアイドルにあるまたはエラー/ オーバロードフレームがバス 上にあることを意味します。 【bit10】NT: ノードステータス遷移フラグ もし , ノードステータスがインクリメントに変化しまたはバスオフからエラーアク ティブに変化してもこのビットは "1" になります。 すなわち NT ビットは , ノードステータスが以下のように変化したときに "1" にセット されます。括弧内の数字は NS1 ビットおよび NS0 ビットの値を示します。 • エラーアクティブ ("00") からワーニング ("01") に 398 第 18 章 CAN コントローラ • ワーニング ("01") からエラーパッシブ ("10") に • エラーパッシブ ("10") からバスオフ ("11") に • バスオフ ("11") からエラーアクティブ ("00") に ノードステータス遷移割込み許可ビット (NIE) が "1" のときに , 割込みが発生します。 "0" を書き込むと , NT ビットが "0" にセットされます。NT ビットに "1" を書き込んで も無視されます。リードモディファイライト系命令が実行されたときに "1" が読み出 されます。 【bit9, bit8】NS1, NS0: ノードステータスの bit1 および bit0 NS1, NS0 ビットは , 現在のノードステータスを表します。 この関係を表 18.3-7 に示します。 表 18.3-7 NS1 および NS0 とノードステータスの対応 ノードステータス NS1 NS0 0 0 エラーアクティブ 0 1 ワーニング ( エラーアクティブ ) 1 0 エラーパッシブ 1 1 バスオフ <注意事項> ワーニング ( エラーアクティブ ) は , ノードステータスに対する CAN 仕様 2.0B における エラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウンタが 96 を超えたことを表します。ノードステータスの変化図を図 18.3-2 に示します。 図 18.3-2 ノードステータス遷移図 ハードウェアリセット REC≧96 または TEC≧96 REC≧128 または TEC≧128 エラー パッシブ ワーニング エラー アクティブ REC<96 または TEC<96 REC: 受信エラーカウンタ TEC: 送信エラーカウンタ レジスタ(CSR)のHALTビットに"0"が 書き込まれた後,連続的な11ビット "H"レベル(リセッシブビット)が 受信入力端子(RX)に128回入力。 REC<128 または TEC<128 バスオフ TEC>=256 399 第 18 章 CAN コントローラ 【bit7】TOE: 送信出力許可ビット TOE ビットに "1" を書き込むと , 汎用ポート端子を CAN コントローラの送信端子に切 り換えます。 • 0: 汎用ポート端子 • 1:CAN コントローラの送信端子 【bit2】NIE: ノードステータス遷移割込み許可ビット NIE ビットは , ノードステータス遷移割込み (NT=1 の場合 ) を許可または禁止します。 • 0: ノードステータス遷移割込みを禁止する • 1: ノードステータス遷移割込みを許可する 【bit0】HALT: バス動作停止ビット HALT ビットはバス動作停止をセットまたは解除し , またはそのステートを表示しま す。 バスの停止状態はこのビットを読み出すことによって確認できます。 書込み時 0: バス動作中 1: バス動作停止 読出し時 0: バス動作停止を解除 1: バス動作停止をセット <注意事項> バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になっているこ とを確認後 , "0" を書き込んでください。 プログラム例 : switch(IO_CANCT0.CSR.bit.NS) { case0:/*error active*/ break; case1:/*warning*/ break; case2:/*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 はフェイルセーフのために使用しています。 400 第 18 章 CAN コントローラ ■ バス動作停止ビット (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" を書き込んでください。 401 第 18 章 CAN コントローラ ■ バス動作停止間の状態 (HALT=1) バス動作が停止している間の状態は以下のとおりです。 • バスは , 送信および受信などの動作を一切行いません。 • 送信出力端子 (TX) は , "H" レベル ( リセッシブビット ) を出力します。 • ほかのレジスタおよびエラーカウンタの値は変化しません。 <注意事項> ビットタイミングレジスタ (BTR) は , バス動作停止 (HALT=1) の間にセットしなければ なりません。 402 第 18 章 CAN コントローラ 18.3.2 ラストイベント表示レジスタ (LEIR) ラストイベント表示レジスタ (LEIR) は , ラストイベントを示します。 NTE, TCE および RCE は排他的なものです。ラストイベントのビットが "1" にセッ トされたとき , ほかのビットは "0" にセットされます。 ■ ラストイベント表示レジスタ (LEIR) のビット構成 図 18.3-3 にラストイベント表示レジスタ (LEIR) のビット構成を示します。 図 18.3-3 ラストイベント表示レジスタ (LEIR) のビット構成 アドレス:003C02H(CAN0) bit アドレス:003D02H(CAN1) 7 NTE 読出し / 書込み→ (R/W) (0) 初期値→ アドレス:003C03H(CAN0) アドレス:003D03H(CAN1) bit 6 5 4 TCE RCE - (R/W) (0) (R/W) (0) (-) (-) 7 6 5 4 NTE TCE RCE - (R/W) (0) (R/W) (0) (-) (-) 読出し / 書込み→ (R/W) (0) 初期値→ 3 2 1 0 MBP3 MBP2 MBP1 MBP0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 3 2 1 0 MBP3 MBP2 MBP1 MBP0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 【bit7】NTE: ノードステータス遷移イベントビット NTE ビットが "1" のときは , ノードステータス遷移がラストイベントであることを 表します。 NTE ビットは , 制御ステータスレジスタ (CSR) の NT ビットと同時に "1" にセット されます。 NTE ビットは , CSR のノードステータス遷移割込み許可ビット (NIE) のセッティン グとは無関係に "1" にセットされます。 NTE ビットに "0" を書き込むと , NTE ビットは "0" にセットされます。NTE ビット に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは , "1" が読み出されます。 【bit6】TCE: 送信完了イベントビット TCE ビットが "1" のときは , 送信完了がラストイベントであることを表します。 TCE ビットは, 送信完了レジスタ (TCR) のビットのいずれか1 つと同時に"1"にセッ トされます。また , TCE ビットは送信割込み許可レジスタ (TIER) のビットのセッ ティングとは無関係に "1" にセットされます。 TCE ビットに "0" を書き込むと , TCE ビットは "0" にセットされます。TCE ビット に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは , "1" が読み出されます。 このビットが "1" にセットされたとき , MBP3 ~ MBP0 ビットは , 送信動作を完了し たメッセージバッファの番号を示すために使用されます。 403 第 18 章 CAN コントローラ 【bit5】RCE: 受信完了イベントビット RCE ビットが "1" のときは , 受信完了がラストイベントであることを表します。 RCE ビットは , 受信完了レジスタ (RCR) のビットのいずれか 1 つと同時に "1" に セットされます。また , RCE ビットは受信割込み許可レジスタ (RIER) のビットの セッティングとは無関係に "1" にセットされます。 RCE ビットに "0" を書き込むと , RCE ビットは "0" にセットされます。RCE ビット に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは , "1" が読み出されます。 RCE ビットが "1" にセットされたとき , MBP3 ~ MBP0 ビットは , 受信動作を完了 したメッセージバッファの番号を示すために使用されます。 【bit3 ~ bit0】MBP3 ~ MBP0: メッセージバッファポインタビット TCE または RCE ビットが "1" にセットされたときに , MBP3 ~ MBP0 ビットは対応 するメッセージバッファ (0 ~ 15) の番号を示します。 NTE ビットが "1" にセットされると , MBP3 ~ MBP0 ビットは意味を持ちません。 MBP3 ~ MBP0 ビットに "0" を書き込むと , MBP3 ~ MBP0 ビットは "0" にセットさ れます。MBP3 ~ MBP0 ビットに "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは , "1" が読み出されます。 もし , LEIR が CAN 割込みハンドラ内でアクセスされたとしても , 割込みを引き起 こしたイベントは , 必ずしも LEIR により表されるものと同じではありません。割 込みハンドラ内で , LEIR アクセスに対する割込みが要求された時点でほかの CAN イベントが発生する可能性があります。 404 第 18 章 CAN コントローラ 18.3.3 受信および送信エラーカウンタ (RTEC) 受信および送信エラーカウンタ (RTEC) は , CAN 仕様で定められる送信エラーカウ ントおよび受信エラーカウントを示します。このレジスタは読出し専用です。 ■ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成 図 18.3-4 に受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成を示 します。 図 18.3-4 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成 アドレス:003C05H(CAN0) bit アドレス:003D05H(CAN1) 読出し / 書込み→ 初期値→ アドレス:003C04H(CAN0) bit アドレス:003D04H(CAN1) 読出し / 書込み→ 初期値→ 15 14 13 12 11 10 9 8 TEC7 (R) (0) TEC6 (R) (0) TEC5 (R) (0) TEC4 (R) (0) TEC3 (R) (0) TEC2 (R) (0) TEC1 (R) (0) TEC0 (R) (0) 7 6 5 4 3 2 1 0 REC7 REC6 REC5 REC4 REC3 REC2 REC1 REC0 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 【bit15 ~ bit8】TEC7 ~ TEC0: 送信エラーカウンタ TEC7 ~ TEC0 は送信エラーカウンタです。 TEC7 ~ TEC0 は , カウンタ値が 256 より大きい場合 0 ~ 7 を示します。以降のイン クリメントは , カウンタ値にカウントされません。この場合 , バスオフがノードス テータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=11) 。 【bit7 ~ bit0】REC7 ~ REC0: 受信エラーカウンタ REC7 ~ REC0 は受信エラーカウンタです。 REC7 ~ REC0 は , カウンタ値が 256 より大きい場合に 0 ~ 7 を示します。以降の インクリメントは , カウンタ値にカウントされません。この場合 , エラーパッシブ がノードステータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=10) 。 405 第 18 章 CAN コントローラ ビットタイミングレジスタ (BTR) 18.3.4 ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングを設定す るレジスタです。 ■ ビットタイミングレジスタ (BTR) のビット構成 図 18.3-5 にビットタイミングレジスタ (BTR) のビット構成を示します。 図 18.3-5 ビットタイミングレジスタ (BTR) のビット構成 アドレス:003C07H(CAN0) bit 15 14 13 12 11 10 9 8 - TS2.2 TS2.1 TS2.0 TS1.3 TS1.2 TS1.1 TS1.0 (-) (-) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) 7 6 5 4 3 2 1 0 RSJ1 RSJ0 PSC5 PSC4 PSC3 PSC2 PSC1 PSC0 読出し / 書込み→ (R/W) (1) 初期値→ (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) アドレス:003D07H(CAN1) 読出し / 書込み→ 初期値→ アドレス:003C06H(CAN0) アドレス:003D06H(CAN1) bit <注意事項> BTR レジスタは , バス動作停止 (HALT=1) の間にセットしなければなりません。 【bit14 ~ bit12】TS2.2 ~ TS2.0: タイムセグメント 2 設定ビット 2 ~ 0 TS2.2 ~ TS2.0 ビットは , 単位時間 (TQ) を [ (TS2.2 ~ TS2.0) +1] で分周して , タイム セグメント 2 (TSEG2) を決定します。タイムセグメント 2 は , CAN 仕様における フェーズバッファセグメント 2 (PHASE_SEG2) に等しいものです。 【bit11 ~ bit8】TS1.3 ~ TS1.0: タイムセグメント 1 設定ビット 3 ~ 0 TS1.3 ~ TS1.0 ビットは , 単位時間 (TQ) を [ (TS1.3 ~ TS1.0) +1] で分周して , タイム セグメント 1 (TSEG1) を決定します。タイムセグメント 1 は , CAN 仕様におけるプ ロ パゲ ー ショ ン セグ メ ント (PROP_SEG) +フ ェ ーズ バ ッフ ァ セグ メ ント 1 (PHASE_SEG1) に等しいものです。 【bit7, bit6】RSJ1, RSJ0: 再同期ジャンプ幅設定ビット 1, 0 RSJ1, RSJ0 ビットは , 単位時間 (TQ) を [ (RSJ1, RSJ0) +1] で分周して , 再同期ジャン プ幅を決定させます。 【bit5 ~ bit0】PSC5 ~ PSC0: プリスケーラ設定ビット 5 ~ 0 PSC5 ~ PSC0 ビットは , 入力クロックを [ (PSC5 ~ PSC0) +1] で分周して , CAN コ ントローラの単位時間 (TQ) を決定します。 CAN 仕様および CAN コントローラのそれぞれにおけるビット時間セグメントは , 図 18.3-6 および図 18.3-7 に示されています。 406 第 18 章 CAN コントローラ 図 18.3-6 CAN 仕様におけるビット時間セグメント ノミナルビット時間 SYNC_SEG PROP_SEG PHASE_SEG1 PHASE_SEG2 サンプルポイント 図 18.3-7 CAN コントローラにおけるビット時間セグメント ノミナルビット時間 SYNC_SEG TSEG1 PHASE_SEG2 サンプルポイント 入 力ク ロ ック (CLK) , 単 位 時間 (TQ) , ビ ッ トタ イ ム (BT) , 同期 セ グメ ン ト (SYNC_SEG) , タイムセグメント 1, 2 (TSEG1, TSEG2) および再同期ジャンプ幅 [ (RSJ1+RSJ0) +1] 周波数分割としたときの PSC=PSC5 ~ PSC0, TSI=TS1.3 ~ TS1.0, TS2=TS2.2 ~ TS1.0, RSJ=RSJ1 および RSJ0 の間の関係は次に示すとおりです。 TQ = (PSC+1) × CLK BT =SYNC_SEG + TSEG1 + TSEG2 = (1 + (TS1+1) + (TS2+1) ) × TQ = (3 + TS1+TS2) × TQ RSJW = (RSJ + 1) × TQ 正しく動作を行うためには , 以下の条件を満足しなければなりません。 BT ≧ 8TQ TSEG2 ≧ RSJW TSEG2 ≧ 2TQ PSC=0 の場合 TSEG1 ≧ 5TQ PSC ≧ 1 の場合 TSEG1 ≧ 2TQ TSEG1 ≧ RSJW ビットタイミングレジスタの設定例を以下に示します。 407 第 18 章 CAN コントローラ ■ ビットタイミングレジスタの設定例 以下にビットタイミングレジスタの設定例を示します。 ● 使用条件 • 通信速度 (BT) :100kbps (10 μs) • 1TQ:0.5 μs (1BT の 1/20 とする ) • 再同期ジャンプ幅 (RSJW) :4TQ • 遅延時間 :50ns • 内部動作周波数 :16MHz (0.0625 μs) ● 設定例 以下の手順によって , 各ビットの設定値を決定します。 ① TQ= (PSC+1) × CLK 0.5= (PSC+1) × 0.0625 PSC=0.5/0.0625-1=7 したがって , PSC5 ~ PSC0 の設定値は , 次のようになります。 PSC5 ~ PSC0=000111B ② RSJW= (RSJ+1) × TQ 4TQ= (RSJ+1) × TQ RSJ=4-1=3 したがって , RSJ1, RSJ0 の設定値は , 次のようになります。 RSJ1, RSJ0=11B ③ TSEG2 ≧ RSJW (TS2+1) × TQ ≧ 4TQ TS2 ≧ 4-1 ≧ 3 したがって , TS2.2 ~ TS2.0 の設定値は , 次のようになります。 TS2.2 ~ TS2.0 ≧ 011B ④ TSEG1 ≧ Delay time + RSJW (TS1+1) × TQ ≧ 50ns × 2 + 4TQ TS1 ≧ 100ns / 0.5μs +3 したがって , TS1.3 ~ TS1.0 の設定値は , 次のようになります。 TS1.3 ~ TS1.0 ≧ 0100B 通信速度 100Kbps という条件から③ , ④は , 以下の組合せとなります。 - TS1.3 ~ TS1.0=1010B TS2.2 ~ TS2.0=111B - TS1.3 ~ TS1.0=1011B TS2.2 ~ TS2.0=110B - TS1.3 ~ TS1.0=1100B TS2.2 ~ TS2.0=101B - TS1.3 ~ TS1.0=1101B TS2.2 ~ TS2.0=100B - TS1.3 ~ TS1.0=1110B TS2.2 ~ TS2.0=011B 408 第 18 章 CAN コントローラ 18.3.5 メッセージバッファ有効レジスタ (BVALR) メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を 設定し , そのステートを表示するレジスタです。 ■ メッセージバッファ有効レジスタ (BVALR) のビット構成 図 18.3-8 にメッセージバッファ有効レジスタ (BVALR) のビット構成を示します。 図 18.3-8 メッセージバッファ有効レジスタ (BVALR) のビット構成 アドレス:000041H(CAN0) bit アドレス:000071H(CAN1) 15 13 12 11 10 BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 読出し / 書込み→ (R/W) (0) 初期値→ アドレス:000040H(CAN0) 14 bit 7 9 8 BVAL9 BVAL8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 5 4 3 2 1 0 アドレス:000070H(CAN1) BVAL7 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0 読出し / 書込み→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ メッセージバッファ有効レジスタ (BVALR) は 16 ビットから構成され , 各ビットは 16 箇所あるメッセージバッファの有効 / 無効を設定します。 • 0: メッセージバッファ (x) 無効 • 1: メッセージバッファ (x) 有効 メッセージバッファ (x) が無効 ("0") に設定されると , メッセージを送信または受信し ません。 もし , バッファが送信動作中に無効 ("0") に設定されると , 送信が完了またはエラーに より終了した後で無効 (BVALx=0) になります。 また , バッファが受信動作中に無効 ("0") に設定された場合は , 直ちに無効 (BVALx=0) に なります。 このとき, 受信メッセージがメッセージバッファ (x) に格納されていると, メッ セージバッファ (x) はメッセージを格納した後に無効となります。 <注意事項> • x はメッセージバッファの番号を示します (x=0 ~ 15) 。 • ビット (BVALx) に"0"を書き込むことによってメッセージバッファ (x) を無効とした場 合は , ビット操作命令の実行はそのビットが "0" にセットされるまで禁止されます。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11 , CAN コントローラの使用上の注意」に従ってください。 409 第 18 章 CAN コントローラ IDE レジスタ (IDER) 18.3.6 IDE レジスタは , 送信 / 受信の間にメッセージバッファ (x) により使用されるフレー ムフォーマットを設定します。 ■ IDE レジスタ (IDER) のビット構成 図 18.3-9 に IDE レジスタ (IDER) のビット構成を示します。 図 18.3-9 IDE レジスタ (IDER) のビット構成 アドレス:003C09H(CAN0) bit アドレス:003D09H(CAN1) 15 アドレス:003D08H(CAN1) 13 12 11 10 IDE15 IDE14 IDE13 IDE12 IDE11 IDE10 読出し / 書込み→ (R/W) (X) 初期値→ アドレス:003C08H(CAN0) 14 bit 7 9 8 IDE9 IDE8 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 5 4 3 2 1 0 IDE7 IDE6 IDE5 IDE4 IDE3 IDE2 IDE1 IDE0 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) IDEレジスタ (IDER) は16 ビットから構成され , 各ビットは16 箇所あるメッセージバッ ファが使用するフレームフォーマットを設定します。 • 0: メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用 されます。 • 1: メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用 されます。 <注意事項> • このレジスタは , メッセージバッファ (x) が無効のときに ( メッセージバッファ有効レ ジ スタ の BVALx (BVALR) =0) に 設 定し な けれ ば なり ま せん。バ ッフ ァ が有 効 の (BVALx=1) ときに設定すると受信メッセージを不必要に格納する可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11 , CAN コントローラの使用上の注意」に従ってください。 410 第 18 章 CAN コントローラ 18.3.7 送信要求レジスタ (TREQR) 送信要求レジスタ (TREQR) は , メッセージバッファ (x) に対する送信要求を設定し , その状態を表示します。 ■ 送信要求レジスタ (TREQR) のビット構成 図 18.3-10 に送信要求レジスタ (TREQR) のビット構成を示します。 図 18.3-10 送信要求レジスタ (TREQR) のビット構成 アドレス:000043H(CAN0) bit アドレス:000073H(CAN1) 15 14 13 12 11 10 TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 9 8 TREQ9 TREQ8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 TREQ7 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 読出し / 書込み→ (R/W) (0) 初期値→ アドレス:000042H(CAN0) アドレス:000072H(CAN1) bit TREQx に "1" が書き込まれたとき , メッセージバッファ (x) に対する送信を開始しま す。リモートフレーム受信待機レジスタ (RFWTR) *1 の RFWTx が "0" のときは , 送信 を直ちに開始します。RFWTx=1 のときは , リモートフレームが受信される ( リモート 要求受信レジスタ (RRTRR) *1 が "1" になる ) まで待機した後に , 送信を開始します。も し, TREQxに"1"が書き込まれるときにRRTRxが既に"1"になっていた場合は, RFWTx=1 であっても送信を直ちに開始します。*2 *1: TRTRR および RFWTR に関しては「18.3.8 送信 RTR レジスタ (TRTRR)」および 「18.3.9 リモートフレーム受信待機レジスタ (RFWTR)」を参照してください。 *2: 送信の解除に関しては「18.3.10 送信解除レジスタ (TCANR)」および「18.3.11 送 信完了レジスタ (TCR)」を参照してください。 TREQx に "0" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "0" が読み出されます。 送信動作の完了時における ("0" への ) クリアおよび "1" の書込みによる設定が同時に 生じた場合は , クリア動作が優先されます。 1 つ以上のビットに "1" が書き込まれた場合は , 下位番号のメッセージバッファ (x) か ら開始して送信が行われます。 TREQx は , 送信が待ち状態中は "1" で , 送信が完了または解除されたときに "0" になり ます。 411 第 18 章 CAN コントローラ 18.3.8 送信 RTR レジスタ (TRTRR) 送信 RTR レジスタ (TRTRR) は , メッセージバッファ (x) による送信 RTR ( リモー ト送信要求 ) ビットを設定するレジスタです。 ■ 送信 RTR レジスタ (TRTRR) のビット構成 図 18.3-11 に送信 RTR レジスタ (TRTRR) のビット構成を示します。 図 18.3-11 送信 RTR レジスタ (TRTRR) のビット構成 アドレス:003C0BH(CAN0) bit 15 14 13 12 11 10 TRTR15 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) アドレス:003D0BH(CAN1) アドレス:003C0AH(CAN0) 8 7 6 5 4 3 2 1 0 TRTR7 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) アドレス:003D0AH(CAN1) bit 9 送信 RTR レジスタ (TRTRR) は 16 ビットから構成され , 各ビットは 16 箇所あるメッ セージバッファのリモート送信要求を設定します。 • 0: データフレームが送信されます。 • 1: リモートフレームが送信されます。 412 第 18 章 CAN コントローラ リモートフレーム受信待機レジスタ (RFWTR) 18.3.9 リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求 が設定された ( 送信要求レジスタ (TREQR) の TREQx が "1" で , 送信 RTR レジスタ (TRTRR) の TRTRx が "0" である ) ときに , 送信を開始する条件を設定します。 ■ リモートフレーム受信待機レジスタ (RFWTR) のビット構成 図 18.3-12 にリモートフレーム受信待機レジスタ (RFWTR) のビット構成を示します。 図 18.3-12 リモートフレーム受信待機レジスタ (RFWTR) のビット構成 アドレス:003C0DH(CAN0) bit 15 14 13 12 11 10 9 8 RFWT15 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 RFWT7 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) アドレス:003D0DH(CAN1) アドレス:003C0CH(CAN0) アドレス:003D0CH(CAN1) bit リモートフレーム受信待機レジスタ (RFWTR) は , 16 ビットから構成され , 各ビットは メッセージバッファがデータフレーム送信に設定されているときの , 送信開始条件を 設定します。 • 0: 直ちに送信を開始します。 • 1: リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) まで 待機した後に , 送信を開始します。 <注意事項> • 送信に対する要求が設定されたときに , RRTRx が既に "1" の場合は送信を直ちに開始 します。 • リモートフレーム送信に対しては , RFWTx を "1" にセットしないでください。 413 第 18 章 CAN コントローラ 18.3.10 送信解除レジスタ (TCANR) 送信解除レジスタ (TCANR) は , TCANx に "1" が書き込まれたときに , メッセージ バッファ (x) への送信に対する待ち状態中の要求を解除します。 解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx に "0" を書き込んでも無視されます。 送信解除レジスタ (TCANR) は書込み専用レジスタで , その読出し値は常に "0" で す。 ■ 送信解除レジスタ (TCANR) のビット構成 図 18.3-13 に送信解除レジスタ (TCANR) のビット構成を示します。 図 18.3-13 送信解除レジスタ (TCANR) のビット構成 アドレス:000045H(CAN0) bit アドレス:000075H(CAN1) 読出し / 書込み→ 初期値→ アドレス:000044H(CAN0) bit アドレス:000074H(CAN1) 読出し / 書込み→ 初期値→ 414 15 14 13 12 11 10 TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 9 8 TCAN9 TCAN8 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) 7 6 5 4 3 2 1 0 TCAN7 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) 第 18 章 CAN コントローラ 送信完了レジスタ (TCR) 18.3.11 メッセージバッファ (x) による送信が完了すると , 対応する TCx が "1" になります。 送信完了割込み許可レジスタ (TIER) の TIEx が "1" の場合は , 割込みが発生します。 ■ 送信完了レジスタ (TCR) のビット構成 図 18.3-14 に送信完了レジスタ (TCR) のビット構成を示します。 図 18.3-14 送信完了レジスタ (TCR) のビット構成 アドレス:000047H(CAN0) bit アドレス:000077H(CAN1) 読出し / 書込み→ 初期値→ アドレス:000046H(CAN0) bit アドレス:000076H(CAN1) 読出し / 書込み→ 初期値→ 15 14 13 12 11 10 9 8 TC15 TC14 TC13 TC12 TC11 TC10 TC9 TC8 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) 7 6 5 4 3 2 1 0 TC7 (W) (0) TC6 (W) (0) TC5 (W) (0) TC4 (W) (0) TC3 (W) (0) TC2 (W) (0) TC1 (W) (0) TC0 (W) (0) TCx=0 となる条件は以下のとおりです。 • TCx に "0" を書き込む。 • 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。 送信完了の後で TCx に "0" を書き込むと , それを "0" にセットします。TCx に "1" を 書き込んでも無視されます。リードモディファイライト系命令が実行されたときは , "1" が読み出されます。 <注意事項> 送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じた場合は , "1" への設定が優先します。 415 第 18 章 CAN コントローラ 18.3.12 送信割込み許可レジスタ (TIER) 送信割込み許可レジスタ (TIER) は , メッセージバッファ (x) による送信割込みを許 可または禁止します。送信割込みは , 送信完了時 ( 送信完了レジスタ (TCR) の TCx が "1" になったとき ) に発生します。 ■ 送信割込み許可レジスタ (TIER) のビット構成 図 18.3-15 に送信割込み許可レジスタ (TIER) のビット構成を示します。 図 18.3-15 送信割込み許可レジスタ (TIER) のビット構成 アドレス:003C0FH(CAN0) bit 15 14 13 12 11 10 9 8 TIE15 TIE14 TIE13 TIE12 TIE11 TIE10 TIE9 TIE8 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 5 4 3 2 1 0 アドレス:003D0FH(CAN1) アドレス:003C0EH(CAN0) アドレス:003D0EH(CAN1) bit 7 TIE7 TIE6 TIE5 TIE4 TIE3 TIE2 TIE1 TIE0 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 送信割込み許可レジスタ (TIER) は16ビットから構成され, 各ビットは16箇所あるメッ セージバッファの送信割込みの禁止 / 許可を設定します。 • 0: 送信割込みは禁止されます。 • 1: 送信割込みは許可されます。 416 第 18 章 CAN コントローラ 受信完了レジスタ (RCR) 18.3.13 受信メッセージのメッセージバッファ (x) への格納が完了すると , RCx が "1" にな ります。 受信完了割込み許可レジスタの RIEx が "1" の場合は , 割込みが発生します。 ■ 受信完了レジスタ (RCR) のビット構成 図 18.3-16 に受信完了レジスタ (RCR) のビット構成を示します。 図 18.3-16 受信完了レジスタ (RCR) のビット構成 アドレス:000049H(CAN0) bit 15 アドレス:000079H(CAN1) RC15 (R/W) 読出し / 書込み→ (0) 初期値→ アドレス:000048H(CAN0) アドレス:000078H(CAN1) bit 14 13 12 11 10 9 8 RC14 (R/W) (0) RC13 (R/W) (0) RC12 (R/W) (0) RC11 (R/W) (0) RC10 (R/W) (0) RC9 (R/W) (0) RC8 (R/W) (0) 7 6 5 4 3 2 1 0 RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 読出し / 書込み→ (R/W) (0) 初期値→ RCx=0 となる条件は以下のとおりです。 • RCx に "0" を書き込んでください。 • 受信メッセージの処理完了後に , RCx に "1" を書き込んでください。RCx に "1" を 書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは , "1" が読み出されます。 <注意事項> 受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じた場合は , "1" への設定が優先します。 417 第 18 章 CAN コントローラ リモート要求受信レジスタ (RRTRR) 18.3.14 受信されたリモートフレームがメッセージバッファ (x) 内に格納されると , RRTRx は (RCx 設定が "1" になると同時に ) "1" になります。 ■ リモート要求受信レジスタ (RRTRR) のビット構成 図 18.3-17 にリモート要求受信レジスタ (RRTRR) のビット構成を示します。 図 18.3-17 リモート要求受信レジスタ (RRTRR) のビット構成 アドレス:00004BH(CAN0) bit アドレス:00007BH(CAN1) 15 13 12 11 10 RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 読出し / 書込み→ (R/W) (0) 初期値→ アドレス:00004AH(CAN0) 14 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 8 RRTR9 RRTR8 (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 RRTR7 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) アドレス:00007AH(CAN1) bit (R/W) (0) 9 RRTRx=0 となる条件は以下のとおりです。 • RRTRx に "0" を書き込んでください。 • 受信されたデータフレームがメッセージバッファ (x) に格納された後 (RCx 設定が "1" になるのと同時 ) 。 • メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx は "1") 。 RRTRx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは , "1" が読み出されます。 <注意事項> "1" への設定と "0" の書込みによるクリアが同時に生じたときは , "1" への設定が優先しま す。 418 第 18 章 CAN コントローラ 18.3.15 受信オーバランレジスタ (ROVRR) メッセージバッファ (x) 内への受信メッセージの格納完了時に受信完了レジスタ (RCR) が既に "1" の場合 , ROVRx は "1" になり受信がオーバランしたことを表しま す。 ■ 受信オーバランレジスタ (ROVRR) のビット構成 図 18.3-18 に受信オーバランレジスタ (ROVRR) のビット構成を示します。 図 18.3-18 受信オーバランレジスタ (ROVRR) のビット構成 アドレス:00004DH(CAN0) bit 15 14 13 12 11 10 9 8 ROVR15 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) アドレス:00007DH(CAN1) アドレス:00004CH(CAN0) 7 6 5 4 3 2 1 0 ROVR7 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) アドレス:00007CH(CAN1) bit ROVRx に "0" を書き込むと , ROVRx=0 になります。ROVRx に "1" を書き込んでも無 視されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込む と , それを "0" に設定します。 リードモディファイライト系命令が実行されたときは "1" がリードされます。 <注意事項> "1" への設定と "0" の書込みによるクリアが同時に生じたときは , "1" への設定が優先しま す。 419 第 18 章 CAN コントローラ 18.3.16 受信割込み許可レジスタ (RIER) 受信割込み許可レジスタ (RIER) は , メッセージバッファ (x) による受信割込みを許 可または禁止します。 受信割込みは , 受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に 発生します。 ■ 受信割込み許可レジスタ (RIER) のビット構成 図 18.3-19 に受信割込み許可レジスタ (RIER) のビット構成を示します。 図 18.3-19 受信割込み許可レジスタ (RIER) のビット構成 アドレス:00004FH(CAN0) bit アドレス:00007FH(CAN1) 15 13 12 11 10 RIE15 RIE14 RIE13 RIE12 RIE11 RIE10 読出し / 書込み→ (R/W) (0) 初期値→ アドレス:00004EH(CAN0) 14 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 8 RIE9 RIE8 (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 RIE7 RIE6 RIE5 RIE4 RIE3 RIE2 RIE1 RIE0 読出し / 書込み→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) アドレス:00007EH(CAN1) bit (R/W) (0) 9 受信割込み許可レジスタ (RIER) は16ビットから構成され, 各ビットは16箇所あるメッ セージバッファの受信割込みの禁止 / 許可を設定します。 • 0: 受信割込みは禁止されます。 • 1: 受信割込みは許可されます。 420 第 18 章 CAN コントローラ 18.3.17 アクセプタンスマスク選択レジスタ (AMSR) アクセプタンスマスク選択レジスタ (AMSR) は , 受信メッセージ ID とメッセージ バッファ (x) ID の比較に対するマスク ( アクセプタンスマスク ) を選択します。 ■ アクセプタンスマスク選択レジスタ (AMSR) のビット構成 図 18.3-20 にアクセプタンスマスク選択レジスタ (AMSR) のビット構成を示します。 表 18.3-8 に示すように, 2 ビットの組合せによって対応するメッセージバッファのアク セプタンスマスクを選択します。 図 18.3-20 アクセプタンスマスク選択レジスタ (AMSR) のビット構成 アドレス:003C10H(CAN0) bit 7 6 5 4 3 2 1 0 AMS3.1 AMS3.1 AMS2.1 AMS2.0 AMS1.1 AMS1.0 AMS0.1 AMS0.0 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AMS7.1 AMS7.1 AMS6.1 AMS6.0 AMS5.1 AMS5.0 AMS4.1 AMS4.0 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) アドレス:003D10H(CAN1) アドレス:003C11H(CAN0) bit アドレス:003D11H(CAN1) アドレス:003C12H(CAN0) bit 7 6 5 4 3 2 1 0 AMS11.1 AMS11.1 AMS10.1 AMS10.0 AMS1.1 AMS9.0 AMS9.1 AMS9.0 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AMS15.1 AMS15.1 AMS14.1 AMS14.0 AMS13.1 AMS13.0 AMS12.1 AMS12.0 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) アドレス:003D12H(CAN1) アドレス:003C13H(CAN0) bit アドレス:003D13H(CAN1) 表 18.3-8 アクセプタンスマスクの選択 アクセプタンスマスク AMSx.1 AMSx.0 0 0 フルビット比較 0 1 フルビットマスク 1 0 アクセプタンスマスクレジスタ 0 (AMR0) 1 1 アクセプタンスマスクレジスタ 1 (AMR1) 421 第 18 章 CAN コントローラ <注意事項> • AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である ( メッセージバッファ 有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりません。 バッファが有効 (BVALx=1) なときに設定すると , 不要な受信メッセージが格納される 可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11 , CAN コントローラの使用上の注意」に従ってください。 422 第 18 章 CAN コントローラ 18.3.18 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがあり , 両者ともに標 準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用できま す。 AM28 ~ AM18 (11 ビット ) は , 標準フレームフォーマットにおけるアクセプタンス マスクに使用され , AM28 ~ AM0 (29 ビット ) は拡張フォーマットでアクセプタン スマスクに使用されます。 ■ アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 図 18.3-21 にアクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成を 示します。 図 18.3-21 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 AMR0 BYTE0 bit 7 6 5 4 3 2 1 0 AM28 AM27 AM26 AM25 AM24 AM23 AM22 AM22 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AM20 AM19 AM18 AM17 AM16 AM15 AM14 AM13 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 AM12 AM11 AM10 AM9 AM8 AM7 AM6 AM5 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AM4 AM3 AM2 AM1 AM0 - - - 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (-) (R/W) (-) (R/W) (-) アドレス:003C14H(CAN0) アドレス:003D14H(CAN1) AMR0 BYTE1 bit アドレス:003C15H(CAN0) アドレス:003D15H(CAN1) AMR0 BYTE2 bit アドレス:003C16H(CAN0) アドレス:003D16H(CAN1) AMR0 BYTE3 bit アドレス:003C17H(CAN0) アドレス:003D17H(CAN1) ( 続く ) 423 第 18 章 CAN コントローラ ( 続き ) AMR1 BYTE0 bit 7 6 5 4 3 2 1 0 AM28 AM27 AM26 AM25 AM24 AM23 AM22 AM22 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AM20 AM19 AM18 AM17 AM16 AM15 AM14 AM13 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 AM12 AM11 AM10 AM9 AM8 AM7 AM6 AM5 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AM4 AM3 AM2 AM1 AM0 - - - 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (-) (R/W) (-) (R/W) (-) アドレス:003C18H(CAN0) アドレス:003D18H(CAN1) AMR1 BYTE1 bit アドレス:003C19H(CAN0) アドレス:003D19H(CAN1) AMR1 BYTE2 bit アドレス:003C1AH(CAN0) アドレス:003D1AH(CAN1) AMR1 BYTE3 bit アドレス:003C1BH(CAN0) アドレス:003D1BH(CAN1) ● 0: 比較 このビットに対応するアクセプタンスコード ( 受信メッセージ ID と比較するための ID レジスタ IDRx) を受信メッセージ ID のビットと比較します。一致しなければメッセー ジは受信されません。 ● 1: マスク このビットに対応するアクセプタンスコード ID レジスタ (IDRx) をマスクします。受 信メッセージ ID のビットとの比較は行われません。 <注意事項> • AMR0 および AMR1 は , AMR0 および AMR1 を選択するメッセージバッファ (x) のす べてが無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるとき に , 設定しなければなりません。メッセージバッファが有効 (BVALx=1) であるときに 設定すると , 不必要な受信メッセージが格納される可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11 , CAN コントローラの使用上の注意」に従ってください。 424 第 18 章 CAN コントローラ メッセージバッファ 18.3.19 メッセージバッファは 16 個あり , 1 つのメッセージバッファ x (x=0 ~ 15) は ID レ ジスタ (IDRx) , DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成され ています。 ■ メッセージバッファ メッセージバッファ (x) は , 送信および受信の両方に使用されます。 下位番号のメッセージバッファの方が高い優先順位を割り当てられています。 送信時に送信要求が1つ以上のメッセージバッファに対して出されたときには, 最下位 番号のメッセージバッファから開始して送信が行われます (「18.4 CAN コントローラ の送信」を参照 ) 。 受信時に , 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセージ のアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッセー ジ ID が通過するときに , 受信メッセージは最下位番号のメッセージバッファ内に格納 されます (「18.5 CAN コントローラの受信」を参照 ) 。 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたとき に , メッセージバッファはマルチレベルメッセージバッファとして使用することがで きます。これにより , 受信時間に対する余裕が与えられます (「18.8 メッセージバッ ファ (x) による受信方法」を参照 ) 。 <注意事項> • メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位で偶数アドレ スに対して行わなければなりません。バイト単位で書込み動作を行うと , 下位バイトへ の書込み時に上位バイトに不定データを書き込んでしまいます。 • メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0" ( 無効 ) であるとき に , メッセージバッファ x (IDRx, DLCRx および DTRx) は汎用 RAM として使用するこ とができます。ただし , CAN コントローラが送受信動作中は , メッセージバッファを 使用するので , CPU のアクセスが最大で 64 マシンサイクル待たされることがありま す。これは , 汎用 RAM 領域 (CAN0: アドレス 003A00H ~ 003A1FH およびアドレス 003B00H ~ 003B1FH) についても同様です。 425 第 18 章 CAN コントローラ 18.3.20 ID レジスタ x (x=0 ~ 15) (IDRx) ID レジスタ x (x=0 ~ 15) (IDRx) は , メッセージバッファ (x) に対する ID レジスタ です。 ■ ID レジスタ x (x=0 ~ 15) (IDRx) のビット構成 図 18.3-22 に ID レジスタ x (x=0 ~ 15) (IDRx) のビット構成を示します。 図 18.3-22 ID レジスタ x (x=0 ~ 15) (IDRx) のビット構成 BYTE0 bit 7 6 5 4 3 2 1 0 ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID22 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 ID20 ID19 ID18 ID17 ID16 ID15 ID14 ID13 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 ID12 ID11 ID10 ID9 ID8 ID7 ID6 ID5 読出し / 書込み→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 ID4 ID3 ID2 ID1 ID0 - - - (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (-) (R/W) (-) (R/W) (-) アドレス:003A20H+4x(CAN0) アドレス:003B20H+4x(CAN1) BYTE1 bit アドレス:003A21H+4x(CAN0) アドレス:003B21H+4x(CAN1) BYTE2 bit アドレス:003A22H+4x(CAN0) アドレス:003B22H+4x(CAN1) BYTE3 bit アドレス:003A23H+4x(CAN0) アドレス:003B23H+4x(CAN1) 読出し / 書込み→ (R/W) (X) 初期値→ 標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ (x) を使用しているときは , ID28 ~ ID18 の 11 ビットを使用してください。拡張フレーム フォーマット (IDEx=1) でバッファを使用しているときは , ID28 ~ ID0 の 29 ビットを 使用してください。 ID28 ~ ID0 の機能は次のとおりです。 • アクセプタンスコード設定 ( 受信メッセージ ID との比較用の ID) • 送信メッセージ ID の設定 標準フレームフォーマットでは , ID28 ~ ID22 のビットのすべてに "1" をセットする ことは禁止されています。 • 受信メッセージ ID の格納 受信メッセージ ID は , アクセプタンスマスクでマスクされているビットにも格納さ れます。標準フレームフォーマットでは , ID17 ~ ID0 は不定値 ( 前回受信したメッ セージの一部 ) が格納されます。 426 第 18 章 CAN コントローラ <注意事項> • ID レジスタへの書込み動作は , ワード単位で行わなければなりません。バイト単位で 書込み動作を行うと , 下位バイトへの書込み時に上位バイトに不定データを書き込ん でしまいます。上位バイトへの書込みは無視されます。 • ID レジスタは , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が 0) であるときに設定されなければなりません。バッファが有効 (BVALx=1) であるときに設定すると , 不必要な受信メッセージが格納されてしまいま す。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11 , CAN コントローラの使用上の注意」に従ってください。 ■ ID レジスタの設定例 標準フレームフォーマットおよび拡張フレームフォーマットにおける ID レジスタの設 定例を表 18.3-9 および表 18.3-10 に示します。 表 18.3-9 標準フレームフォーマットにおける ID レジスタの設定例 ID (Dec) ID (Hex) BYTE0 BYTE1 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 A 00 00 00 00 00 00 00 01 01 01 20 40 60 80 A0 C0 E0 00 20 40 ・ ・ 30 31 32 ・ ・ 1E 1F 20 03 03 03 ・ ・ 100 101 ・ ・ 064 065 0C 0C ・ ・ 200 80 A0 ・ ・ 0C8 19 ・ ・ 2043 2044 2045 2046 2047 C0 C1 C2 00 ・ ・ 7FB 7FC 7FD 7FE 7FF FF FF FF FF FF 06 80 A0 C0 E0 427 第 18 章 CAN コントローラ 表 18.3-10 拡張フレームフォーマットにおける ID レジスタの設定例 ID (Dec) ID (Hex) BYTE0 BYTE1 BYTE0 BYTE1 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 10 18 20 28 30 38 40 48 50 00 00 01 F0 F8 00 03 03 20 28 06 40 ・ ・ 30 31 32 ・ ・ 1E 1F 20 00 00 00 00 00 00 ・ ・ 100 101 ・ ・ 064 065 00 00 00 00 ・ ・ 200 ・ ・ 0C8 00 00 ・ ・ ・ ・ 2043 2044 2045 2046 2047 7FB 7FC 7FD 7FE 7FF 00 00 00 00 00 00 00 00 00 00 3F 3F 3F 3F 3F D8 E0 E8 F0 F8 8190 8191 8192 1FFE 1FFF 2000 00 00 00 00 00 01 FF FF 00 F0 F8 00 FC FD FD FE FE FF FF 80 00 80 00 80 00 80 ・ ・ 536870905 536870906 536870907 536870908 536870909 536870910 536870911 428 ・ ・ 1FFFFFF9 1FFFFFFA 1FFFFFFB 1FFFFFFC 1FFFFFFD 1FFFFFFE 1FFFFFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 第 18 章 CAN コントローラ DLC レジスタ x (x=0 ~ 15) (DLCRx) 18.3.21 DLC レジスタ x (x=0 ~ 15) (DLCRx) は , メッセージバッファ x に対する DLC を格 納します。 ■ DLC レジスタ x (x=0 ~ 15) (DLCRx) のビット構成 図 18.3-23 に DLC レジスタ x (x=0 ~ 15) (DLCRx) のビット構成を示します。 図 18.3-23 DLC レジスタ x (x=0 ~ 15) (DLCRx) のビット構成 アドレス:003A60H+2x(CAN0) bit 7 6 5 4 3 2 1 0 読出し / 書込み→ 初期値→ (-) (-) (-) (-) (-) (-) (-) (-) ID3 (R/W) (X) ID2 (R/W) (X) ID1 (R/W) (X) ID0 (R/W) (X) アドレス:003B60H+2x(CAN1) ● 送信 • データフレームが送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときに , 送信メッセージのデータ長 ( バイト単位 ) を設定します。 • リモートフレームが送信する (TRTRx=1) ときに , 要求メッセージのデータ長 ( バイ ト単位 ) を設定します。 <注意事項> 0000 ~ 1000 (0 ~ 8 バイト ) 以外の設定は禁止されています。 ● 受信 • データフレームが受信された ( リモートフレーム要求受信レジスタ (RRTRR) の RRTRx が "0") ときに , 受信メッセージのデータ長 ( バイト単位 ) を格納します。 • リモートフレームが受信された (RRTRx=1) ときに , 要求メッセージのデータ長 ( バ イト単位 ) を格納します。 <注意事項> DLC レジスタへの書込み動作は , ワード単位で行わなければなりません。バイト単位で書 込み動作をすると , 下位バイトへの書込み時に上位バイトに不定データを書き込んでいま す。上位バイトへの書込みは無視されます。 429 第 18 章 CAN コントローラ 18.3.22 データレジスタ x (x=0 ~ 15) (DTRx) データレジスタ x (x=0 ~ 15) (DTRx) は , メッセージバッファ (x) に対するデータレ ジスタです。 データレジスタ x (x=0 ~ 15) (DTRx) はデータフレームの送信および受信のみ使用 されるレジスタで , リモートフレームの送信および受信には使用されません。 ■ データレジスタ x (x=0 ~ 15) (DTRx) のビット構成 図 18.3-24 にデータレジスタ x (x=0 ~ 15) (DTRx) のビット構成を示します。 図 18.3-24 データレジスタ x (x=0 ~ 15) (DTRx) のビット構成 BYTE0 bit アドレス:003A80H+8x(CAN0) アドレス:003B80H+8x(CAN1) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 読出し / 書込み→ (R/W) (X) 初期値→ BYTE1 bit アドレス:003A81H+8x(CAN0) アドレス:003B81H+8x(CAN1) 読出し / 書込み→ (R/W) (X) 初期値→ BYTE2 bit アドレス:003A82H+8x(CAN0) アドレス:003B82H+8x(CAN1) 読出し / 書込み→ (R/W) (X) 初期値→ BYTE3 bit アドレス:003A83H+8x(CAN0) アドレス:003B83H+8x(CAN1) 読出し / 書込み→ (R/W) (X) 初期値→ BYTE4 bit アドレス:003A84H+8x(CAN0) アドレス:003B84H+8x(CAN1) 読出し / 書込み→ (R/W) (X) 初期値→ BYTE5 bit アドレス:003A85H+8x(CAN0) アドレス:003B85H+8x(CAN1) 読出し / 書込み→ (R/W) (X) 初期値→ ( 続く ) 430 第 18 章 CAN コントローラ ( 続き ) BYTE6 bit アドレス:003A86H+8x(CAN0) アドレス:003B86H+8x(CAN1) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (-) (R/W) (-) (R/W) (-) 読出し / 書込み→ (R/W) (X) 初期値→ BYTE7 bit アドレス:003A87H+8x(CAN0) アドレス:003B87H+8x(CAN1) 読出し / 書込み→ (R/W) (X) 初期値→ ● 送信メッセージデータ (0 ~ 8 バイトのいずれか ) の設定。 データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。 ● 受信メッセージデータ データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で格納されます。 受信メッセージデータが8バイトより少なくても, データが格納されるデータレジスタ (DTRx) の残りのバイトは不定となります。 <注意事項> データレジスタへの書込み動作は , ワード単位で行わなければなりません。バイト単位で 書込み動作をすると , 下位バイトへの書込み時に上位バイトに不定データを書き込んでし まいます。上位バイトへの書込みは無視されます。 431 第 18 章 CAN コントローラ 18.3.23 CAN ウェイクアップ制御レジスタ (CWUCR) CAN ウェイクアップ制御レジスタ (CWUCR) は , RX 端子の INT 端子への内部接続 を制御するレジスタです。 ■ CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成 図 18.3-25 に CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成を示します。 図 18.3-25 CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成 CWUCR bit 7 6 5 4 3 2 1 0 アドレス:003EH - - - - - - - CWU 読出し / 書込み→ 初期値→ (R/W) (-) (R/W) (-) (R/W) (-) (R/W) (-) (R/W) (-) (R/W) (-) (R/W) (-) (R/W) (0) 【bit0】CWU:CAN ウェイクアップ制御ビット CWU ビットは , RX 端子の INT 端子への内部接続を制御します。 • 0:RX 端子と INT 端子は , 内部接続されません。INT 端子は , 通常の外部割込み端子 として機能します。 • 1:RX 端子と INT 端子を内部接続します。INT 端子は , 外部割込み機能が使用できな くなります。 432 第 18 章 CAN コントローラ 18.4 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) 。データフレームまたはリモートフレームのいずれを格納しても送信要求 は解除されます。 ■ CAN コントローラの送信の完了 送信が成功したときに RRTRx および TREQx は "0" になり , 送信完了レジスタ (TCR) の TCx は "1" になります。送信完了割込みが許可されている場合には ( 送信完了割込 み許可レジスタ (TIER) の TIEx は "1" の場合 ) , 割込みが発生します。 433 第 18 章 CAN コントローラ ■ CAN 送信設定フローチャート 図 18.4-1 に CAN 送信設定のフローチャートを示します。 図 18.4-1 CAN 送信設定のフローチャート START ビットタイミングの設定 フレームフォーマットの設定 IDの設定 アクセプタンスフィルタの設定 ビットタイミングレジスタ(BTR) IDEレジスタ(IDER) IDレジスタ(IDR) アクセプタンスマスク選択レジスタ(AMSR) アクセプタンスマスクレジスタ(AMR0,1) 使用するメッセージバッファを選択する メッセージバッファ有効レジスタ(BVALR) 送信完了割込みの設定 送信完了割込み許可レジスタTIER データフレーム リモートフレーム フレームタイプ の選択 フレームタイプの設定 送信RTRレジスタ(TRTRR=0) フレームタイプの設定送信 RTRレジスタ(TRTRR=1) 送信データ長の設定 DLCレジスタ(DLCR) 要求データ長の設定 DLCレジスタ(DLCR) データレジスタに送信データを格納 データレジスタ(DTR) する リモートフレーム 受信待ち しない リモートフレーム受信待ち RFWTR=0 リモートフレーム受信待ち RFWTR=1 バス動作停止の解除HALT=1 メッセージ送信 データフレームの送信要求の設定 データフレーム送信TREQR N:0 リモートフレーム受信待ち 送信成功? 通信エラー TCR N 送信キャンセル? Y:1 Y 送信要求のキャンセル 送信TCANRレジスタ TREQR 1 0 1 TCR 0 送信完了 END 434 送信キャンセル 第 18 章 CAN コントローラ ■ CAN コントローラの送信フローチャート 図 18.4-2 に , CAN コントローラの送信フローチャートを示します。 図 18.4-2 CAN コントローラの送信フローチャート 送信要求 (TREQx := 1) TCx := 0 0 TREQx? 1 0 RFWTx? 1 0 RRTRx? 1 上記条件を満足するほかのメッセージ バッファがある場合,その中で最下 位番号メッセージバッファを選択 NO バスは使用され ていないか? YES 0 1 TRTRx? データフレームが送信される リモートフレームが送信される NO 送信は成功したか? YES TCANx? RRTRx := 0 TREQx := 0 TCx := 1 TIEx ? 0 1 TREQx := 0 1 0 送信完了割込みが発生 送信の終了 435 第 18 章 CAN コントローラ 18.5 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 に格納されます。 図 18.5-1 には , 受信メッセージを格納すべきメッセージバッファ x を決定するための フローチャートが示されています。メッセージバッファは , バッファ番号順に , AMSR の各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1 を使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセッ トされたメッセージバッファの順番に設定されることを推奨します。 436 第 18 章 CAN コントローラ 図 18.5-1 受信メッセージを格納するメッセージバッファ (x) を決定するフローチャート 開始 RCxが0にセットされているか,AMSx.1 およびAMSx.0が00にセットされている メッセージバッファが見つかったか。 メッセージバッファの中から 最下位番号のメッセージバッファ を選択 RCxに0が設定されている,または AMSx.1およびAMSx.0に00が 設定されているメッセージバッファ の中から最下位番号の メッセージバッファを選択 終了 ■ 受信オーバラン 受信メッセージが格納されるべきメッセージバッファ x に対応する受信完了レジスタ (RCR) の RCx ビットが , 既に "1" にセットされていてメッセージバッファ x への受信 メッセージの格納が完了したときに , 受信オーバランレジスタ (ROVRR) の ROVRx ビットが "1" にセットされて受信オーバランが表示されます。 ■ データフレームおよびリモートフレームの受信に対する処理 ● データフレームの受信に対する処理 データフレームを受信すると , リモート要求受信レジスタ (RRTRR) の RRTRx が "0" に なります。 送信要求レジスタ (TREQR) の TREQx は , 受信メッセージを格納する直前に "0" になり ます。送信を実行しなかったメッセージバッファ (x) に対する送信要求は , 解除されま す。データフレームまたはリモートフレームのいずれの送信に対する要求も解除され ます。 ● リモートフレームの受信に対する処理 リモートフレームを受信すると , RRTRx が "1" になります。 送信 RTR レジスタ (TRTRR) の TRTRx が "1" の場合に , TREQx は "0" になります。こ の結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に対 する要求は解除されます。 <注意事項> • データフレーム送信に対する要求は解除されません。 • 送信要求の解除に関しては「18.4 CAN コントローラの送信」を参照してください。 437 第 18 章 CAN コントローラ ■ 受信完了 受信完了レジスタ (RCR) の RCx は , 受信メッセージを格納した後に "1" になります。 受信割込みが許可されていると ( 受信割込み許可レジスタ (RIER) の RIEx が "1") , 割込 みが発生します。 <注意事項> この CAN コントローラは , それ自身が送信したメッセージを受信することはありません。 ■ CAN 受信設定のフローチャート 図 18.5-2 に CAN 受信設定のフローチャートを示します。 図 18.5-2 CAN 受信設定のフローチャート START ビットタイミングの設定 フレームフォーマットの設定 IDの設定 アクセプタンスフィルタの設定 ビットタイミングレジスタ(BTR) IDEレジスタ(IDER) IDレジスタ(IDR) アクセプタンスマスク選択レジスタ(AMSR) アクセプタンスマスクレジスタ(AMR0,1) 使用するメッセージバッファを選択する メッセージバッファ有効レジスタ(BVALR) 受信完了割込みの設定 受信完了割込み許可レジスタ(RIE) バス動作停止の解除HALT=1 N メッセージが受信されたか RCR=1 ? Y メッセージ格納処理 受信完了割込みなどにて処理 受信バイト数読出し 受信オーバーランフラグクリア ROVRR=0 受信メッセージの読出し 受信オーバーラン? ROVRR=0 ? N Y 受信完了割込みフラグクリア RCR=0 END 438 第 18 章 CAN コントローラ ■ CAN コントローラの受信フローチャート 図 18.5-3 に , CAN コントローラの受信フローチャートを示します。 図 18.5-3 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 ? 0 1 受信割込みが発生 受信の終了 439 第 18 章 CAN コントローラ 18.6 CAN コントローラの使用方法 CAN コントローラでは , 次のような設定が必要です。 • ビットタイミングの設定 • フレームフォーマットの設定 • ID の設定 • アクセプタンスフィルタの設定 • 低電力消費モードの設定 ■ ビットタイミングの設定 ビットタイミングレジスタ (BTR) は, バス動作停止 (制御ステータスレジスタ (CSR) の バス動作停止ビット (HALT) が "1") の間に設定しなければなりません。 設定完了の後に , HALT に "0" を書き込んでバス動作停止を解除してください。 ■ フレームフォーマットの設定 メッセージバッファ (x) により , 使用されるフレームフォーマットを設定してくださ い。標準フレームフォーマットを使用するときには , IDE レジスタ (IDER) の IDEx を "0" に設定してください。拡張フレームフォーマットを使用するときには , IDEx を "1" に設定してください。 この設定は , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") のと き に行 わ なけ れ ばな り ませ ん。バッ フ ァが 有 効 (BVALx=1) のときに設定すると , 不必要な受信メッセージが格納される可能性があり ます。 ■ ID の設定 メッセージバッファ (x) の ID を , ID レジスタ (IDRx) の ID28 ~ ID0 に設定してくださ い。メッセージバッファ (x) の ID は , 標準フレームフォーマットでは ID17 ~ ID0 に設 定する必要はありません。 メッセージバッファ (x) の ID は , 送信の場合は送信メッセー ジとして使用され , 受信の場合はアクセプタンスコードとして使用されます。 この設定は , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") のと き に行 わ なけ れ ばな り ませ ん。バッ フ ァが 有 効 (BVALx=1) のときに設定すると , 不必要な受信メッセージが格納される可能性があり ます。 440 第 18 章 CAN コントローラ ■ アクセプタンスフィルタの設定 メッセージバッファ (x) のアクセプタンスフィルタは, アクセプタンスコードおよびア クセプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ ファ (x) が無効 ( メッセージバッファ許可レジスタ (BVALR) の BVALx が "0") のとき に設定しなければなりません。バッファが有効 (BVALx=1) のときに設定すると , 不必 要な受信メッセージが格納される可能性があります。 各メッセージバッファ (x) で使用されたアクセプタンスマスクを , アクセプタンスマス ク選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ (AMR0 および AMR1) も , 使用する場合には , 設定しなければなりません ( 設定の詳細 に関しては「18.3.17 アクセプタンスマスク選択レジスタ (AMSR)」および「18.3.18 ア クセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1)」を参照 ) 。 アクセプタンスマスクは , 不必要な受信メッセージが格納されたときでも送信要求が 解除されないように , 設定しなければなりません。例えば , それは同一の ID のメッセー ジのみを送信する場合であれば , フルビット比較に設定しなければなりません。 ■ 低電力消費モードの設定 F2MC-16LX を低電力消費モード ( 停止 , 時計など ) に設定するには , 制御ステータスレ ジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込んでから , バス動作が停止 したか (HALT=1) をチェックしてください。 441 第 18 章 CAN コントローラ 18.7 メッセージバッファ (x) による送信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ ファ (x) を有効にしてください。 ■ メッセージバッファ (x) による送信方法 ● 送信データ長コードの設定 送信データ長コード ( バイト単位 ) を DLC レジスタ (DLCRx) の ID3 ~ ID0 に設定して ください。 データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して は , 送信メッセージのデータ長を設定してください。 リモートフレーム送信 (TRTRx=1 のとき ) に対しては , 要求メッセージのデータ長 ( バ イト単位 ) を設定してください。 0000 ~ 1000 (0 ~ 8 バイト ) 以外の設定は禁止されています。 ● 送信データの設定 ( データフレームの送信に対してのみ ) データフレーム送信 ( 送信レジスタ (TRTRR) の TRTRx が "0" のとき ) に対しては , デー タを送信バイト数分データレジスタ (DTRx) に設定してください。 送信データは , 送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して , 再書込 みしなければなりません。 メッセージバッファ有効レジスタ (BVALR) の BVALx ビットを "0" に設定する必要は ありません。BVALx ビットを "0" に設定すると , リモートフレーム受信を喪失する可 能性があります。 ● 送信 RTR レジスタの設定 データフレーム送信に対しては , 送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定 してください。 リモートフレーム送信に対しては , TRTRx を "1" に設定してください。 ● 送信開始条件の設定 ( データフレームの送信のみ ) データフレーム送信に対する要求が設定された直後に送信を開始するためには , リ モートフレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください ( 送 信要求レジスタ (TREQR) の TREQx は "1" で , 送信 RTR レジスタ (TRTRR) の TRTRx は "0" です ) 。 データフレーム送信に対する要求が設定され (TREQx=1 および TRTRx=0) た後にリ モートフレームを受信する ( リモート要求受信レジスタ (RRTRR) の RRTRx が "1" にな る ) まで待機した後に送信を開始するには , RFWTx を "1" に設定してください。 RFWTx が "1" に設定されると , リモートフレーム送信を行うことはできません。 442 第 18 章 CAN コントローラ ● 送信完了割込みの設定 送信完了割込みを発生する場合には , 送信完了割込み許可レジスタ (TIER) の TIEx を "1" に設定してください。 送信完了割込みを発生させない場合には , TIEx を "0" に設定してください。 ● 送信要求の設定 送信要求を行うには, 送信要求レジスタ (TREQR) のTREQxを"1"に設定してください。 ● 送信要求の解除 メッセージバッファ (x) に対する送信の要求を解除するときには , 送信キャンセルレジ スタ (TCANR) の TCANx に "1" を書き込んでください。 TREQx をチェックしてください。TREQx=0 のときには , 送信解除が終了したか , 送信 が完了しています。送信完了レジスタ (TCR) の TCx をチェックしてください。TCx=0 のときには送信解除は終了しています。TCx=1 ならば , 送信が完了しています。 ● 送信完了の処理 送信が成功すると , 送信完了レジスタ (TCR) の TCx は "1" になります。 もし , 送信完了割込みが許可されていれば ( 送信完了割込み許可レジスタ (TIER) の TIEx が "1") , 割込みが発生します。 送信完了をチェックした後に , TCx に "0" を書き込んでそれを "0" に設定してください。 これにより , 送信完了割込みが解除されます。 次の場合には , 待ち状態中の送信要求はメッセージの受信および格納により解除され ます。 • データフレームの受信によるデータフレーム送信の要求 • データフレームの受信によるリモートフレーム送信の要求 • リモートフレームの受信によるリモートフレーム送信の要求 データフレーム送信に対する要求は , リモートフレームの受信および格納によっては 解除されません。ただし , ID および DLC は , 受信したリモートフレームの ID および DLC により変更されます。送信されるべきデータフレームの ID および DLC は , 受信 したリモートフレームの値になることに注意してください。 443 第 18 章 CAN コントローラ 18.8 メッセージバッファ (x) による受信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定の後で , 以下の設定をしてください。 ■ メッセージバッファ (x) による受信方法 ● 受信割込み設定 受信割込みを許可するには , 受信割込み許可レジスタ (RIER) の RIEx を "1" に設定して ください。 受信割込みを禁止するには , RIEx を "0" に設定してください。 ● 受信開始 設定の後で受信を開始するときには , メッセージバッファ有効レジスタ (BVALR) の BVALx を "1" に設定して , メッセージバッファ (x) を有効にしてください。 ● 受信完了の処理 アクセプタンスフィルタへの通過の後に受信が成功すると , 受信メッセージはメッ セージバッファ (x) に格納されて , 受信完了レジスタ (RCR) の RCx が "1" になります。 データフレーム受信に関しては , リモート要求受信レジスタ (RRTRR) の RRTRx が "0" になります。リモートフレーム受信に関しては , RRTRx が "1" になります。 受信割込みが許可されると ( 受信割込み許可レジスタ (RIER) の RIEx が "1") , 割込みが 発生します。 受信完了をチェックした後 (RCx=1) で , 受信メッセージを処理してください。 受信メッセージの処理を完了した後は , 受信オーバランレジスタ (ROVRR) の ROVRx をチェックしてください。 ROVRx=0 なら処理された受信メッセージは有効です。CRx に "0" を書き込んで , それ を "0" に設定し ( 受信完了割込みも解除されます ) 受信を終了します。 ROVRx=1 なら受信オーバランが生じ , 処理された受信メッセージに新たな受信メッ セージが上書きされている可能性があります。この場合には , ROVRx ビットに "0" を 書き込んで , それを "0" に設定した後で受信メッセージを再処理しなければなりませ ん。 図 18.8-1 に , 受信割込み処理の例を示します。 図 18.8-1 受信割込み処理の例 RCx=1で割込み 受信メッセージ読取り A := ROVRx ROVRx := 0 A = 0? YES RCx := 0 終了 444 NO 第 18 章 CAN コントローラ 18.9 マルチレベルメッセージバッファの構成の決定 受信が頻繁に行われる場合または不特定多数のメッセージを受信する場合 , すなわ ちメッセージを処理する時間が不十分なときは , 1 つ以上のメッセージバッファを組 み合せてマルチレベルメッセージバッファとすることにより , CPU による受信メッ セージの処理に対して余裕を与えてください。 ■ マルチレベルメッセージバッファの構成の決定 マルチレベルメッセージバッファを用意するには , 組み合せられた各メッセージバッ ファに同じアクセプタンスフィルタを設定しなければなりません。 アクセプタンスマスク選択レジスタ (AMSR) の各ビットが , 全ビット比較 ( (AMSx.1, AMSx.0) = (0, 0) ) に設定されている場合には, メッセージバッファをマルチレベルメッ セージ構成とすることはできません。これは , 全ビット比較では , 受信完了レジスタ (RCR) のRCxビットの値のいかんにかかわらず受信メッセージが格納されることから, 1 つ以上のメッセージバッファに対して全ビット比較および同一アクセプタンスコー ド (ID レジスタ (IDRx) ) が指定されたとしても , 受信メッセージが常に下位番号の ( 優 先度の低い ) メッセージバッファに格納されるからです。このため , 全ビット比較およ び同一アクセプタンスコードを1つ以上のメッセージバッファに指定してはなりません。 図 18.9-1 は , マルチレベルメッセージバッファの動作例を示します。 445 第 18 章 CAN コントローラ 図 18.9-1 マルチレベルメッセージバッファの動作例 :初期化 AMS15, AMS14, AMS13 AMSR 10 10 10 ... AM28~AM18 AMR0選択 AMR0 ID28~ID18 0000 1111 1111 111 111 0000 RC15, RC14, RC13 IDE ... メッセージバッファ 13 0101 0000 000 0 ... メッセージバッファ 14 0101 0000 000 0 ... メッセージバッファ 15 0101 0000 000 0 RCR ROVRR 0 0 0 ... 0 0 0 ... ROVR15, ROVR14, ROVR13 マスク メッセージ受信中:受信メッセージはメッセージバッファ13に記憶されます。 IDE ID28~ID18 メッセージ受信中 0101 1111 000 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 0 0 1 ... メッセージバッファ 14 0101 0000 000 0 ... ROVRR 0 0 0 ... 0 ... メッセージバッファ 15 0101 0000 000 メッセージ受信中:受信メッセージはメッセージバッファ14に記憶されます。 メッセージ受信中 0101 1111 001 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 0 1 1 ... メッセージバッファ 14 0101 1111 001 0 ... ROVRR 0 0 0 ... 0 ... メッセージバッファ 15 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 ... メッセージバッファ 15 0101 1111 010 0 ... メッセージ受信中:オーバランが発生した場合(ROVR=13),受信メッセージはメッセージバッファ13に 記憶されます。 メッセージ受信中 0101 1111 011 0 ... メッセージバッファ 13 0101 1111 011 0 ... メッセージバッファ 14 0101 1111 001 0 ... メッセージバッファ 15 0101 1111 010 0 ... RCR 1 1 1 ... ROVRR 0 0 1 ... <注意事項> 4 個のメッセージが , 同一のアクセプタンスフィルタ設定によりメッセージバッファ 13, 14 および 15 に受信されます。 446 第 18 章 CAN コントローラ 18.10 CAN ウェイクアップ機能 CAN の RX 端子と外部割込み端子を接続することによって , CAN の受信動作でウェ イクアップすることができます。 ■ CAN ウェイクアップ機能で使用する端子について RX0 端子と INT0 端子を内部で接続することにより , ウェイクアップ機能を提供しま す。この場合 , INT 端子の外部割込み機能は使用できなくなります。 RX1 端子と INT1 端子は端子を共有しているので , 端子の切換えを行うことなくウェイ クアップ機能を使用することができます。 表 18.10-1 に CAN ウェイクアップ機能と RX 端子および INT 端子の関係を示します。 表 18.10-1 CAN ウェイクアップ機能と RX 端子および INT 端子 RX 端子 割込み機能 CAN0 RX0 INT0 CAN1 RX1 INT1 ■ CAN ウェイクアップ機能について CAN の受信データによりスリープモード , タイムベースタイマモード , 時計モード , ス トップモードの各モードから復帰することができます。 <注意事項> CAN0 側でウェイクアップ機能を使用する場合は , スリープモード , タイムベースタイマ モード , 時計モード , ストップモードの各モードに移行する前に CAN ウェイクアップ制 御レジスタの設定と , 外部割込みの設定を行っておく必要があります。 CAN1 側でウェイクアップ機能を使用する場合も , スリープモード , タイムベースタイマ モード , 時計モード , ストップモードの各モードに移行する前に外部割込みの設定は行っ ておく必要がありますが , CAN ウェイクアップ制御レジスタの設定は必要ありません。 ■ CAN ウェイクアップ機能 端子切換え回路のブロックダイヤグラム 図 18.10-1 CAN ウェイクアップ機能 端子切換え回路のブロックダイヤグラム P55/RX 1 セレクタ 端子 P50/INT0/ADTG INT0 端子 003EH - 0 - - - - - - CWU CAN WAKE UP 制御レジスタ (CWUCR) 447 第 18 章 CAN コントローラ 18.11 CAN コントローラの使用上の注意 CAN コントローラを使用する場合は , 以下の点に注意してください。 ■ BVAL ビットによるメッセージバッファ禁止時の注意 メッセージバッファの内容の読出しや書込みの処理を行うために BVAL ビットを用い てメッセージバッファを禁止する , CAN コントローラの送受信が正常に行われない可 能性があります。本注意事項は , この現象を回避する方法を説明しています。 ● 発生条件 以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送受信が正常に行われ ない可能性があります。 • CAN コントローラが CAN 通信に参加している状態 , つまり HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な 状態。 • BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容 へ読出しや書込みの処理を行う。 ● 処置 受信メッセージバッファの構成を変更する場合の操作 CAN 通信が確立されている間 (HALT ビットの読出し値が "0" で , CAN コントロー ラが CAN バスの通信に参加しており送受信が可能な状態 ) で , ID レジスタや AMS レジスタ , AMR0/AMR1 レジスタの設定変更により , メッセージバッファの構成の 変更を行う場合は , 以下のいずれかの手段を使用してください。 • HALT ビットの使用 HALT ビットに "1" を書込み , その後このビットが "1" になったことを確認してから ID/AMS/AMR0/AMR1 レジスタの設定を変更してください。 • メッセージバッファ 0 を使用しない メッセージバッファ 0 を送信にも受信にも使用しないでください。すなわち , メッ セージバッファを禁止し (BVAL0=0), 受信割込みを禁止 (RIE0=0), 送信要求を行わな い (TREQ0=0) でください。 受信メッセージの処理を行う場合の操作 次に来るメッセージによる上書き動作の防止のために , BVAL ビットによる受信禁 止を行わないでください。メッセージの上書き有無の確認は , ROVR ビットを用い てください。詳細は , 「18.3.15 受信オーバランレジスタ (ROVRR)」および「18.8 メッセージバッファ (x) による受信方法」を参照してください。 送信要求の抑止をする場合の操作 送信要求を抑止ないし中止する場合は , BVAL ビットを使用せず , TCAN ビットを 用いてください。 448 第 18 章 CAN コントローラ 送信メッセージを構成する場合の操作 送信メッセージの構成を行うために , ID レジスタや IDE レジスタの設定を行う場合 , BVAL ビットを使用してメッセージバッファを禁止してください。この際 , 送信要求 ビットを読み出して "0" であること (TREQ=0) を確認するか , 送信完了ビットにより 送信が完了したこと (TC=1) を確認した後で , BVAL ビットによる禁止処理 (BVAL=0) を行ってください。 449 第 18 章 CAN コントローラ 18.12 CAN プログラム例 CAN のプログラム例を示します。 ■ CAN 送受信のプログラム例 ● 処理仕様 CAN0 のバッファ 5 をデータフレーム送信 , バッファ 0 を受信に設定します。 • フレームフォーマットの設定を標準フレームフォーマットにします。 • ID の設定 : バッファ 0 ID=0, バッファ 5 ID=5 • ビットレートを 100Kbps ( 内部動作周波数 f=16MHz) • アクセプタンスマスク ( フルビット比較 ) • バスにエントリした後 (HALT=0) , データ A0A0H を送信します。 • 送信完了割込みルーチン内で送信要求 (TREQx=1) を出し , 同じデータを送信します (TREQx を送信開始に設定すると , 送信完了割込みフラグはクリアされます ) 。 • 受信割込みルーチンでは , 受信割込みフラグをクリアします。 【コーディング例】 : : : // データフォーマット設定 (CAN 初期化 ) MOVW IDER0, #0000H ; フレームフォーマット設定 (0: 標準 , 1: 拡張 ) MOVW BTR0, #05CC7H ; ビットレート設定 100Kbps( 内部動作周波数 f=16MHz) MOVW BVALR0, #21H ; メッセージバッファ 5, 0 有効 MOVW IDR51, #0A000H ; データフレーム 5ID 設定 (ID=0005) MOVW IDR01, #2000H ; データフレーム 0ID 設定 (ID=0001) MOVW AMSR00, #0000H ; アクセプタンスマスク選択レジスタ ( フルビット比較 ) // 送信設定 MOVW DLCR5, #02H MOVW RFWTR0, #0000H MOVW TRTRR0, #0000H MOVW TIER0, #0020H // 受信設定 MOVW RIER0, #0001H ; 転送データ長設定 (00H 0 バイト長 08H 8 バイト長 ) ; リモートフレーム受信待機レジスタ ; リモート送信要求 (0: データ送信 , 1: リモートフレーム 送信 ) ; 送信割込み許可レジスタ ; 受信割込み許可レジスタ // バス動作開始 MOV CSR00, #80H ; sthlt BBS CSR00:0,sthlt; // 送信データセット MOVW DTR50, #0A0A0H ; MOVW TREQR0, #0020H ; : 450 制御ステータスレジスタ (HALT=0) HALT=0 待ち メッセージバッファ 5 のデータレジスタに A0A0H を書く 送信要求レジスタ (1: 送信開始 0: 送信停止 ) 第 18 章 CAN コントローラ : : // 受信完了割込み CAN0RX MOVW RCR0, #0000H RETI ; 受信完了レジスタ // 送信完了割込み CAN0TX MOVW TREQR0, #0020H ; 送信要求レジスタ (1: 送信開始 , 0: 送信停止 ) RETI : : : 451 第 18 章 CAN コントローラ 452 第 19 章 LCD コントローラ / ドライバ この章では , LCD コントローラ / ドライバの機能と 動作について説明します。 19.1 LCD コントローラ / ドライバの概要 19.2 LCD コントローラ / ドライバの構成 19.3 LCD コントローラ / ドライバの端子 19.4 LCD コントローラ / ドライバのレジスタ 19.5 LCD コントローラ / ドライバの表示用 RAM 19.6 LCD コントローラ / ドライバの動作 453 第 19 章 LCD コントローラ / ドライバ 19.1 LCD コントローラ / ドライバの概要 LCD コントローラ / ドライバは , 16 × 8 ビットの表示データメモリを内蔵し , 4 本 のコモン出力と 24 本のセグメント出力によって LCD 表示の制御を行います。3 種 類のデューティ出力が選択でき , LCD パネル ( 液晶表示器 ) を直接駆動できます。 ■ LCD コントローラ / ドライバの機能 LCD コントローラ / ドライバは , 表示データメモリ ( 表示用 RAM) の内容をセグメント 出力とコモン出力によって LCD パネル ( 液晶表示器 ) を直接表示する機能があります。 • LCD 駆動電圧分割抵抗を内蔵しています。また , 外部分割抵抗を接続できます。 • 最大で4本のコモン出力 (COM0~COM3) と24本のセグメント出力 (SEG0~SEG23) が使用できます。 • 16 バイトの表示データメモリ ( 表示用 RAM) を内蔵しています。 • デューティは, 1/2, 1/3, 1/4を選択できます (バイアスの設定によって制限されます) 。 • LCD を直接駆動できます。 表 19.1-1 に , 使用できるバイアスデューティの組合せを示します。 表 19.1-1 バイアスデューティの組合せ表 バイアス 1/2 デューティ 1/3 デューティ 1/4 デューティ 1/2 バイアス ○ × × 1/3 バイアス × ○ ○ ○ : 推奨モード × : 使用禁止 <注意事項> SEG12 ~ SEG23 端子は , LCRH の設定で汎用ポートを選択した場合 , セグメント出力と しては使用できません。 454 第 19 章 LCD コントローラ / ドライバ LCD コントローラ / ドライバの構成 19.2 LCD コントローラ / ドライバは , 次の 8 つのブロックで構成されており , 機能的には 表示用 RAM の内容に従って , セグメント信号とコモン信号を発生するコントローラ 部と , LCD を駆動するためのドライバ部に分けられます。 • LCD 制御レジスタ (LCRL/LCRH) • 表示用 RAM • プリスケーラ • タイミングコントローラ • 交流化回路 • コモンドライバ • セグメントドライバ • 分割抵抗 ■ LCD コントローラ / ドライバのブロックダイヤグラム 図 19.2-1 に LCD コントローラ / ドライバのブロックダイヤグラムを示します。 図 19.2-1 LCD コントローラ / ドライバのブロックダイヤグラム V0 V1 V2 V3 LCD制御レジスタ下位 (LCRL) 分割抵抗 部 デ ー タ バ ス 内 4 タイムベース タイマ出力 プリス タイミング ケーラ コントローラ 交 流 化 コ モ ン ド ラ イ バ COM0 COM1 COM2 COM3 セ グ メ ン ト ド ラ イ バ SEG0 SEG1 SEG2 SEG3 SEG4 ~ SEG18 SEG19 SEG20 SEG21 SEG22 SEG23 回 路 表示用RAM 24 16×8ビット LCD制御レジスタ上位 (LCRH) コントローラ ドライバ 455 第 19 章 LCD コントローラ / ドライバ ● LCD 制御レジスタ下位 (LCRL) LCD 駆動電源制御 , 表示 / 表示ブランキングの選択 , 表示モードの選択 , LCD クロック の周期選択を行います。 ● LCD 制御レジスタ上位 (LCRH) セグメント出力と汎用ポートとの切り換え行うレジスタです。 ● 表示用 RAM セグメント出力信号発生用の 16 × 8 ビットの RAM です。この RAM の内容は , コモ ン信号の選択タイミングに同期して自動的に読み出され , 表示用 RAM への書換えと同 時に出力されます。 ● プリスケーラ 4 種類の周波数から選択された設定によって , フレーム周波数を発生します。 ● タイミングコントローラ フレーム周波数と LCRL レジスタの設定を基に , コモン信号 , セグメント信号の制御を 行います。 ● 交流化回路 タイミングコントローラの信号から , LCD を駆動するための交流波形を生成します。 ● コモンドライバ LCD のコモン端子のドライバです。 ● セグメントドライバ LCD のセグメント端子のドライバです。 ● 分割抵抗 LCD 駆動電圧を分割して発生させるための抵抗です。分割抵抗は , 外付けすることも できます。 ■ LCD コントローラ / ドライバの電源電圧 LCD ドライバの電源電圧は , 内蔵の分割抵抗を使用するか , または V0 ~ V3 端子に分 割抵抗を接続することにより設定します。 456 第 19 章 LCD コントローラ / ドライバ 19.2.1 LCD コントローラ / ドライバの内部分割抵抗 LCD ドライバの電源電圧は , V0 ~ V3 端子に接続された外部分割抵抗または内部分 割抵抗によってつくられます。 ■ LCD コントローラ / ドライバの内部分割抵抗 LCD コントローラ / ドライバには , 内部分割抵抗が内蔵されています。また , LCD 駆 動用電源端子 (V0 ~ V3) に外部分割抵抗を接続することもできます。 内部分割抵抗と外部分割抵抗の選択は , LCD 制御レジスタの駆動電源制御ビット (LCRL の VSEL) で行います。VSEL ビットを "1" にすることにより内部分割抵抗が通 電状態になるので , 外部分割抵抗を接続せずに , 内部分割抵抗を使用する場合は "1" に 設定してください。 LCD コントローラ許可は , LCD 動作停止 (LCRL の MS1, MS0=00B) のときに非アクティ ブになります。 図 19.2-2 に内部分割抵抗の等価回路を示します。 図 19.2-2 内部分割抵抗の等価回路 Vcc V3 V3 R P-ch Nch V2 V2 P-ch N-ch V1 V1 P-ch V0 R R N-ch LCDコント ローラ許可 V0 N-ch VSEL V 0~V 3:V0~V3端子の電圧値 457 第 19 章 LCD コントローラ / ドライバ ■ 内部分割抵抗の使用 内部分割抵抗を使用した場合でも , VCC 端子と V3 端子との間には , 外部に抵抗を接続 してください。図 19.2-3 に内部分割抵抗を使用する時の状態を示します。 1/2 バイアス設定を行う場合は , V2 端子と V1 端子を短絡してください。 図 19.2-3 内部分割抵抗を使用時の状態 Vcc Vcc VR VR V3 V3 V3 V2 R V2 V3 R V2 V2 短絡する R V1 V1 V1 R V0 LCDコントローラ 許可 V0 V0 LCDコントローラ 許可 Q1 1/2バイアス R V1 R V0 Q1 1/3バイアス V0~V3:V0~V3端子の電圧値 ■ 内部分割抵抗使用時の輝度調整 内部分割抵抗を使用して輝度があがらない場合には , 図 19.2-4 に示すように , 外部 (VCC ~ V3 端子間 ) に VR ( 可変抵抗 ) を接続して V3 の電圧を調節してください。 図 19.2-4 内部分割抵抗を使用時の輝度調節 Vcc V3 V3 V2 V1 V0 LCDコントローラ 許可 R V2 R V1 R V0 Q1 輝度調整をしたい場合 V0~V3:V0~V3端子の電圧値 458 VR 第 19 章 LCD コントローラ / ドライバ 19.2.2 LCD コントローラ / ドライバの外部分割抵抗 外部分割抵抗または内部分割抵抗を使用して , LCD 駆動電圧を発生します。 VCC 端子と V3 端子との間に可変抵抗を接続することで , 輝度を調節することができ ます。 ■ LCD コントローラ / ドライバの外部分割抵抗 LCD 駆動電源端子 (V0 ~ V3) に外部分割抵抗を接続して使用することができます。バ イアス方式に対応した外部分割抵抗の接続および LCD 駆動電圧を図 19.2-5 , 表 19.2-1 に 示します。 図 19.2-5 外部分割抵抗の接続例 Vcc Vcc VR V3 V3 R R V2 V2 VLCD V1 V1 R V0 VR V0 R VLCD R V0=Vss V0=Vss 1/3バイアス 1/2バイアス 表 19.2-1 LCD 駆動電圧の設定 V3 V2 V1 V0 1/2 バイアス VLCD 1/2VLCD 1/2VLCD VSS 1/3 バイアス VLCD 2/3VLCD 1/3VLCD VSS V0 ~ V3:V0 ~ V3 端子の電圧 VLCD:LCD の動作電圧 459 第 19 章 LCD コントローラ / ドライバ ■ 外部分割抵抗の使用 V0 端子は内部でトランジスタを通して VSS (GND) へ接続されているので , 外部分割抵 抗を使用する場合 , 分割抵抗の VSS 側を V0 端子のみに接続することにより , LCD コン トローラ停止時に抵抗へ流れる電流を遮断することができます。 図 19.2-6 に外部分割抵抗使用時の状態を示します。 図 19.2-6 外部分割抵抗使用時の状態 Vcc VR V3 V3 V2 R V2 V1 R V1 V0 R V0 RX RX RX V0=Vss LCDコントローラ許可 Q1 • 内部分割抵抗の影響を受けずに外部抵抗を接続するには , LCD 制御レジスタの駆動 電圧制御ビット (LCRL の VSEL) に "0" を書き込み , 内部分割抵抗全体を切り離す必 要があります。 • 内部分割抵抗を切り離した状態で, LCD制御レジスタの表示モード選択ビット (LCRL の MS1, MS0) に "00B" 以外を書き込むと , LCDC 許可トランジスタ (Q1) が "ON" となっ て外部分割抵抗に電流が流れます。 • 表示モード選択ビット (MS1, MS0) に "00B" を書き込むと , LCDC 許可トランジスタ (Q1) が "OFF" となって外部分割抵抗に電流が流れなくなります。 <注意事項> 外部に接続する RX は , 使用する LCD により異なるので , 適切な値を選択してください。 460 第 19 章 LCD コントローラ / ドライバ 19.3 LCD コントローラ / ドライバの端子 LCD コントローラ / ドライバに関連する端子 , 端子のブロックダイヤグラムを示し ます。 ■ LCD コントローラ / ドライバに関連する端子 LCDコントローラ/ドライバに関連する端子は, 4本のコモン出力端子 (COM0~COM3), 24 本のセグメント出力端子 (SEG0 ~ SEG23) , 4 本の LCD 駆動用電源端子 (V0 ~ V3) です。 ● COM0 ~ COM3 端子 COM0 ~ COM3 端子は , LCD コモン出力端子です。 ● SEG0 ~ SEG11, P36/SEG12, P37/SEG13, P40/SEG14 ~ P47/SEG21, P90/SEG22, P91/ SEG23 端子 SEG0 ~ SEG11 端子は , LCD セグメント出力端子です。 P36/SEG12 ~ P37/SEG13, P40/SEG14 ~ P47/SEG21, P90/SEG22 ~ P91/SEG23 端子は , 汎 用入出力ポート (P36, P37, P40 ~ P47, P90, P91) と LCD セグメント出力端子 (SEG12, SEG13, SEG14 ~ SEG21, SEG22, SEG23) としての機能を兼用しています。切換えは , LCRH レジスタの設定によって行います。 ● V0 ~ V3 端子 V0 ~ V3 端子は , LCD 駆動用電源端子 (V0 ~ V3) です。 461 第 19 章 LCD コントローラ / ドライバ ■ LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム 図 19.3-1 に LCD コントローラ / ドライバに関連する端子のブロックダイヤグラムを示 します。 図 19.3-1 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム セグメント出力兼用端子の場合 コモン・セグメント制御信号 P-ch LCD駆動電圧(V3またはV2) N-ch LCRH 設定 リセット・動作停止信号 P-ch LCD駆動電圧(V1またはV0) N-ch コモンセグメント制御信号 ストップモード(SPL=1) またはLCD許可 PDR(ポートデータレジスタ) 内部データバス PDRリード PDRリード(ビット操作命令時) 出力ラッチ P-ch PDRライト 端子 DDR DDRライト (ポート方向レジスタ) ストップモード(SPL=1)またはLCD許可 SP:低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビットです。 V0~V3:V0~V3端子の電圧値 462 N-ch P36/SEG12~P37/SEG13 P40/SEG14~P47/SEG21 P90/SEG22~P91/SEG23 第 19 章 LCD コントローラ / ドライバ 19.4 LCD コントローラ / ドライバのレジスタ LCD コントローラ / ドライバに関連するレジスタを示します。 ■ LCD コントローラ / ドライバに関連するレジスタのビット構成 図 19.4-1 に LCD コントローラ/ ドライバに関連するレジスタのビット構成を示します。 図 19.4-1 LCD コントローラ / ドライバに関連するレジスタのビット構成 LCRL (LCD 制御レジスタ下位 ) アドレス 00006CH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CSS R/W LCEN R/W VSEL R/W BK R/W MS1 R/W MS0 R/W FP1 R/W FP0 R/W bit12 bit11 bit10 bit9 bit8 DTCH SEG3 R/W R/W SEG2 R/W SEG1 R/W SEG0 R/W 初期値 00010000B LCRH (LCD 制御レジスタ上位 ) アドレス 00006DH bit15 bit14 bit13 予約 R/W SEG5 R/W SEG4 R/W 初期値 00000000B 463 第 19 章 LCD コントローラ / ドライバ LCD 制御レジスタ下位 (LCRL) 19.4.1 LCD 制御レジスタ下位 (LCRL) は , 駆動電源の制御 , 表示ブランキング , 表示モード の選択を行うレジスタです。 ■ LCD 制御レジスタ下位 (LCRL) のビット構成 図 19.4-2 に LCD 制御レジスタ下位 (LCRL) のビット構成を示します。 図 19.4-2 LCD 制御レジスタ下位 (LCRL) のビット構成 アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00006C CSS LCEN VSEL BK MS1 MS0 FP1 FP0 00010000 R/W R/W R/W R/W R/W R/W R/W H R/W FP1 FP0 0 0 B フレーム周期選択ビット F C/(2 13× N) 0 1 F C/(2 14× N) 1 0 1 1 F C/(2 F C/(2 15× N) N) 16× N:時分割数 F C:原発振 MS1 MS0 0 LCD動作停止 0 1 1/2デューティ出力モード(時分割数N=2) 1 0 1/3デューティ出力モード(時分割数N=3) 1 1 1/4デューティ出力モード(時分割数N=4) 表示ブランキング選択ビット BK 0 表示 1 表示ブランキング VSEL 外部分割抵抗を使用する 1 内部分割抵抗を使用する タイムベースタイマモード時動作許可ビット 0 タイムベースタイマモード時動作を停止します 1 タイムベースタイマモード時動作を停止しません CSS 464 LCD駆動電源制御ビット 0 LCEN R/W :リード/ライト可能 :初期値 表示モード選択ビット 0 クロック選択ビット 0 メインクロックを選択します 1 サブクロックを選択します 第 19 章 LCD コントローラ / ドライバ 表 19.4-1 LCD 制御レジスタ下位 (LCRL) の各ビットの機能説明 ビット名 bit7 bit6 bit5 bit4 CSS: クロック 選択ビット LCEN: タイムベース タイマモード 時動作許可 ビット VSEL: LCD 駆動電源 制御ビット BK: 表示ブランキ ング選択 ビット 機 能 フレーム周期発生用クロックの選択ビットです。 このビットが "0" のときメインクロックが選択され , "1" のときサブクロックが選択さ れます。 タイムベースタイマモード時の動作許可ビットです。 タイムベースタイマモード時 , このビットが "0" のとき停止し , "1" のとき動作します。 内部分割抵抗に通電するかどうかを選択するビットです。 このビットが "0" のとき内部分割抵抗は遮断され , "1" のとき導通します。外部分割抵 抗を接続する場合は , このビットを "0" にする必要があります。 LCD の表示 / 非表示を選択します。 表示部ブランキング ( 非表示 , BK=1) では , セグメント出力は非選択波形 ( 表示条件と ならない波形 ) となります。 出力波形のデューティを 3 種類の中から選択します。 選択したデューティ出力モードに対応して , 使用するコモン端子が決まります。 これらのビットが "0" のときは , LCD コントローラ / ドライバは表示動作を停止しま す。 ( 注意事項 ) 選択したフレーム周期発生用クロックがストップモードへの移行などで停止する場合 は , あらかじめ表示動作を停止してください。 bit3 bit2 MS1, MS0: 表示モード 選択ビット bit1 bit0 LCD 表示のフレーム周期を 4 種類の中から選択します。 FP1, FP0: ( 注意事項 ) フレーム周期 使用する LCD モジュールに応じて最適フレーム周波数を計算して , レジスタの設定を 選択ビット してください。 フレーム周波数は , 原発振の周波数の影響を受けます。 465 第 19 章 LCD コントローラ / ドライバ 19.4.2 LCD 制御レジスタ上位 (LCRH) セグメント出力と汎用ポートとの切換えを行うレジスタです。 ■ LCD 制御レジスタ上位 (LCRH) のビット構成 図 19.4-3 に LCD 制御のレジスタ上位 (LCRH) のビット構成を示します。 図 19.4-3 LCD 制御レジスタ上位 (LCRH) のビット構成 アドレス 006D H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 予約 SEG5 SEG4 R/W R/W R/W DTCH SEG3 SEG2 SEG1 SEG0 R/W R/W R/W R/W 初期値 00000000 B R/W DTCH バイアス切換えビット 0 1/3バイアス 1 1/2バイアス セグメント出力 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 0 0 0 0 0 0 SEG0~SEG11 P36,P37,P40~P47,P90,P91 0 0 0 0 0 1 SEG0~SEG15 P42~P47,P90,P91 0 0 0 0 1 1 SEG0~SEG19 P46,P47,P90,P91 0 0 0 1 1 1 SEG0~SEG20 P47,P90,P91 0 0 1 1 1 1 SEG0~SEG21 P90,P91 0 1 1 1 1 1 SEG0~SEG22 P91 1 1 1 1 1 1 SEG0~SEG23 セグメント出力 予約 必ず"0"を設定してください。 R/W :リード/ライト可能 :初期値 466 予約ビット 汎用ポート なし 第 19 章 LCD コントローラ / ドライバ 表 19.4-2 LCD 制御レジスタ上位 (LCRH) の各ビットの機能説明 ビット名 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 機 能 予約 : 予約ビット 必ず "0" を設定してください。 SEG5: セグメント 端子切換え ビット SEG4: セグメント 端子切換え ビット P91/SEG23 端子をセグメント出力として使用するか , 汎用ポートとして使用するか を切り換えます。 P90/SEG22 端子をセグメント出力として使用するか , 汎用ポートとして使用するか を切り換えます。 DTCH: バイアス 切換えビット バイアス切換えビットです。 1/3 バイアスを使用する場合は , "0" を設定してください。 1/2 バイアスを使用する場合は , "1" を設定してください。 SEG3: セグメント 端子切換え ビット SEG2: セグメント 端子切換え ビット SEG1: セグメント 端子切換え ビット SEG0: セグメント 端子切換え ビット P47/SEG21 端子をセグメント出力として使用するか , 汎用ポートとして使用するか を切り換えます。 P46/SEG20 端子をセグメント出力として使用するか , 汎用ポートとして使用するか を切り換えます。 P42/SEG16 ~ P45/SEG19 端子をセグメント出力として使用するか , 汎用ポートとし て使用するかを切り換えます。 P36/SEG12, P37/SEG13, P40/SEG14, P41/SEG15 端子をセグメント出力として使用す るか , 汎用ポートとして使用するかを切り換えます。 467 第 19 章 LCD コントローラ / ドライバ 19.5 LCD コントローラ / ドライバの表示用 RAM 表示用 RAM は , セグメント出力信号発生用の 16 × 8 ビットの表示用データメモリ です。 ■ 表示用 RAM と出力端子 この RAM の内容は , コモン信号の選択タイミングに同期して自動的に読み出され , セ グメント出力端子より出力されます。 各ビットの内容が "1" であれば選択電圧に変換 (LCD は表示 ) され , "0" であれば非選 択電圧に変換 (LCD は非表示 ) されて出力されます。 LCD 表示動作は CPU の動作とは無関係に行われるので , 表示用 RAM に対しては任意 のタイミングで読出し / 書込みができます。 SEG0 ~ SEG23 端子のうち , LCRH レジスタでセグメント出力に指定されなかった端子 は汎用ポートとして , また対応する RAM は通常の RAM として使用することができま す ( 表 19.5-1 ) 。 表 19.5-2 にデューティとコモン出力および表示用 RAM の使用ビットの関係を示しま す。 図 19.5-1 に表示用 RAM とコモン出力端子およびセグメント出力端子の対応を示しま す。 図 19.5-1 表示用 RAM とコモン出力端子およびセグメント出力端子の対応 アドレス 3960H 3961H 3962H 3963H 3964H 3965H 3966H 3967H 3968H 3969H 396AH 396BH 468 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 COM3 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 COM2 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 COM1 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 COM0 SEG0 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 SEG8 SEG9 SEG10 SEG11 SEG12 SEG13 SEG14 SEG15 SEG16 SEG17 SEG18 SEG19 SEG20 SEG21 SEG22 SEG23 第 19 章 LCD コントローラ / ドライバ 表 19.5-1 セグメント出力端子と表示用 RAM の関係および兼用端子 LCRH レジスタの SEG5 ~ SEG0 ビット値 使用するセグメント 表示用として 使用される RAM 領域 00_0000B SEG0 ~ SEG11 (12 本 ) 3960H ~ 3965H P36, P37, P40 ~ P47, P90, P91 00_0001B SEG0 ~ SEG15 (16 本 ) 3960H ~ 3967H P42 ~ P47, P90, P91 00_0011B SEG0 ~ SEG19 (20 本 ) 3960H ~ 3969H P46, P47, P90, P91 00_0111B SEG0 ~ SEG20 (21 本 ) 3960H ~ 396AH P47, P90, P91 00_1111B SEG0 ~ SEG21 (22 本 ) 3960H ~ 396AH P90, P91 01_1111B SEG0 ~ SEG22 (23 本 ) 3960H ~ 396BH P91 11_1111B SEG0 ~ SEG23 (24 本 ) 3960H ~ 396BH なし 汎用ポートに 使用できる端子 ( 注意事項 ) 表示用として使用されない RAM 領域は , 通常の RAM として使用できます。バイトアクセスのみ可 能です。 表 19.5-2 デューティとコモン出力および表示用 RAM の使用ビットの関係 使用される各表示用データのビット デューティ 設定値 使用されるコモン出力 1/2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 COM0, COM1 (2 本 ) - - ○ ○ - - ○ ○ 1/3 COM0 ~ COM2 (3 本 ) - ○ ○ ○ - ○ ○ ○ 1/4 COM0 ~ COM3 (4 本 ) ○ ○ ○ ○ ○ ○ ○ ○ ○ : 使われる - : 使われない 469 第 19 章 LCD コントローラ / ドライバ 19.6 LCD コントローラ / ドライバの動作 LCD コントローラ / ドライバは , LCD 表示に必要な制御および駆動を行います。 ■ LCD コントローラ / ドライバの動作 LCD 表示をするためには , 図 19.6-1 に示す設定が必要です。 図 19.6-1 LCD コントローラ / ドライバの設定 LCRL LCRH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CSS ◎ LCEN ◎ VSEL ◎ BK ◎ MS1 MS0 FP1 ◎ FP0 ◎ 予約 0 SEG5 ◎ SEG4 ◎ SEG1 ◎ SEG0 ◎ 表示用 RAM 3960H ~ 396BH 00 以外 DTCH SEG3 ◎ ◎ 表示データ SEG2 ◎ ◎:使用ビット 0 :"0" を設定 以上の設定が行われ , 選択したフレーム周期発生用クロックが発振していれば , 表示用 RAM の内容に従って , コモン / セグメント出力端子 (COM0 ~ COM3, SEG0 ~ SEG23) に LCD パネルの駆動波形を出力します。 LCD 表示動作中であっても , フレーム周期発生用クロックは切り換えることができま す。ただし , 切換え時に表示がちらつく可能性がありますので , ブランキング (LCRL の BK=1) などで表示を一時的に停止させてから , クロックを切り換えるようにしてくだ さい。 表示駆動出力はバイアスおよびデューティの設定によって選択される 2 フレーム交流 化波形です。 1/2 デューティの場合の COM2, COM3 端子の出力は , 非選択レベルの出力波形となり ます。同様に , 1/3 デューティの場合の COM3 端子の出力は , 非選択レベルの出力波形 となります。 LCD 表示動作を停止 (LCRL の MS1, MS0=00B) した場合およびリセット中は , コモン / セグメント出力端子は , 共に "L" レベルになります。 <注意事項> LCD 表示動作中に , 選択したフレーム周期発生用クロックが停止すると , 交流化回路が停 止するため液晶素子に直接電流が印加されます。この場合 , あらかじめ LCD 表示動作を 停止させておく必要があります。原発振クロックが停止する条件は , スタンバイモードの 選択によります。 470 第 19 章 LCD コントローラ / ドライバ ■ LCD の駆動波形 LCDはその性質上, 直流駆動を行うと液晶表示素子に化学変化が生じ, 素子が劣化して しまいます。このため , LCD コントローラ / ドライバは交流化回路を内蔵し , 2 フレー ム交流化波形で , LCD を駆動します。出力波形には次の 3 種類があります。 • 1/2 バイアス , 1/2 デューティ出力波形 • 1/3 バイアス , 1/3 デューティ出力波形 • 1/3 バイアス , 1/4 デューティ出力波形 471 第 19 章 LCD コントローラ / ドライバ 19.6.1 LCD コントローラ / ドライバ動作時の出力波形 (1/2 デューティ ) 表示駆動出力は , マルチプレックス駆動方式の 2 フレーム交流化波形です。 1/2 デューティのとき表示に使用されるのは , COM0, COM1 のみです。COM2, COM3 は使用されません。 ■ 1/2 バイアス・1/2 デューティ出力波形 表示は , コモン出力とセグメント出力の電位差が最大となる液晶素子が "ON" となりま す。 表示用 RAM の内容が表 19.6-1 のときの出力波形を図 19.6-2 に示します。 表 19.6-1 表示用 RAM の内容例 表示用 RAM の内容 セグメント COM3 COM2 COM1 COM0 SEGn - - 0 0 SEGn+1 - - 0 1 -: 使用されない 472 第 19 章 LCD コントローラ / ドライバ 図 19.6-2 1/2 バイアス , 1/2 デューティ出力波形例 COM0 V3 V2=V1 V0=Vss COM1 V3 V2=V1 V0=Vss COM2 V3 V2=V1 V0=Vss COM3 V3 V2=V1 V0=Vss SEGn V3 V2=V1 V0=Vss SEGn+1 V3 V2=V1 V0=Vss V3(ON) V2 Vss -V2 -V3(ON) COM0とSEGn の電位差 V3(ON) V2 Vss -V2 -V3(ON) COM1とSEGn の電位差 V3(ON) V2 Vss -V2 -V3(ON) COM0とSEGn+1 の電位差 V3(ON) V2 Vss -V2 -V3(ON) COM1とSEGn+1 の電位差 1フレーム 1周期 V0~V3:V0~V3端子の電圧値 473 第 19 章 LCD コントローラ / ドライバ ■ LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) 図 19.6-3 LCD パネルの表示データ例 *6 *0 SEGn+3 COM1 *1 SEGn+1 *5 *2 *3 *4 SEGn+2 COM0 アドレス COM3 n H bit3 bit7 n+1H 例)5を表示する場合 *7 SEGn COM2 COM1 bit2 bit1 *1 COM0 bit0 *0 SEGn bit6 bit5*3 bit4*2 SEGn+1 bit3 bit2 bit1*5 bit0*4 SEGn+2 bit7 bit6 bit5*7 bit4*6 SEGn+3 3961H COM2 COM1 COM0 ― 1 1 SEG0 ― ― 1 0 SEG1 ― ― 1 0 SEG2 ― ― 0 1 SEG3 0:OFF 1:ON COM1 0 1 1 1 0 0 1 1 1 1 0 1 ― ― 1 ― ― 1 1 ― ― 1 1 ― ― 0 0 ― ― 1 ― ― 1 0 ― ― 1 1 ― ― 1 0 ― ― 0 ― ― 1 0 ― ― 1 0 ― ― 1 1 ― ― 1 ― ― 0 0 ― ― 1 1 ― ― 1 1 ― ― 1 ― ― 0 ― ― 0 1 ― ― 1 1 ― ― 1 1 0 ― ― 0 1 ― ― 1 1 1 ― ― 1 1 ― ― 1 1 0 ― ― 1 1 ― ― 1 1 SEG0 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 SEG8 SEG9 SEG10 SEG11 ― ― ― ― ― ― ― ― ― ― ― ― 3965H 0 3964H 0 ― ― 0 0 ― ― 1 3963H COM0 1 1 1 1 0 0 1 0 0 1 1 1 ― ― 0 ― ― 1 3962H 1 3961H 1 ― ― 0 1 ― ― 1 3960H ― ― 1 ― ― 1 COM2 ― ― ― ― ― ― ― ― ― ― ― ― 0~9までのデータ対応例 LCD の表示 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 〔セグメントNo.〕 COM3 〔表示用RAM〕 〔アドレス〕 *0~*7:表示用RAMとの対応を示します。 bit2, 3, 6, 7は未使用 〔LCDパネル〕 アドレス COM3 3960H ― ― ― 1 ― ― 1 ― ― 1 ― ― 1 ― ― 1 474 1 1 1 1 1 1 1 1 1 1 第 19 章 LCD コントローラ / ドライバ 19.6.2 LCD コントローラ / ドライバ動作時の出力波形 (1/3 デューティ ) 1/3 デューティのとき表示に使用されるのは , COM0, COM1 および COM2 です。 COM3 は使用されません。 ■ 1/3 バイアス , 1/3 デューティ出力波形 表示は , コモン出力とセグメント出力の電位差が最大となる液晶素子が "ON" となりま す。 表示用 RAM の内容が表 19.6-2 に示すときの出力波形を図 19.6-4 に示します。 表 19.6-2 表示用 RAM の内容例 表示用 RAM の内容 セグメント COM3 COM2 COM1 COM0 SEGn - 1 0 0 SEGn+1 - 1 0 1 -: 使用されない 475 第 19 章 LCD コントローラ / ドライバ 図 19.6-4 1/3 バイアス , 1/3 デューティ出力波形例 COM0 V3 V2 V1 V0=Vss COM1 V3 V2 V1 V0=Vss COM2 V3 V2 V1 V0=Vss COM3 V3 V2 V1 V0=Vss SEGn V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) SEGn+1 COM0とSEGnの 電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM1とSEGnの 電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM2とSEGnの 電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM0とSEGn+1 の電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM1とSEGn+1 の電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM2とSEGn+1 の電位差 1フレーム V0~V3:V0~V3端子の電圧値 476 1周期 第 19 章 LCD コントローラ / ドライバ ■ LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) 図 19.6-5 LCD パネルの表示データ例 例)5を表示する場合 *3 *0 *6 COM0 *4 *7 SEGn COM1 *1 COM2 n+1H COM1 *8 アドレス COM3 3960H ― SEGn+2 SEGn+1 COM2 アドレス COM3 n H bit3 *5 COM0 bit2*2 bit1*1 bit0*0 SEGn bit7 bit6 *5 bit3 bit2 *8 bit5 *4 bit1 *7 3961H bit4 *3 SEGn+1 bit0 *6 SEGn+2 3962H 3964H 1 0 ― SEG8 1 3963H 1 1 1 ― SEG7 0 1 ― SEG6 0 3962H 1 1 1 ― SEG5 0 0 ― SEG4 0 3961H 0 0 0 ― SEG3 1 1 ― 1 SEG2 1 0 1 ― SEG1 1 1 ― 0 〔アドレス〕 COM1 COM0 0 0 1 SEG0 ― 1 1 1 SEG1 ― 0 1 0 SEG2 ― 0 0 1 SEG3 ― 1 1 1 SEG4 ― 0 1 0 SEG5 bit0から の場合 bit4から の場合 0:OFF 1:ON SEG0 COM0 COM1 COM2 〔セグメントNo.〕 COM3 〔表示用RAM〕 〔LCDパネル〕 3960H *0~*8:表示用RAMとの対応を示します。 bit3, bit7および*2は未使用 COM2 0~9までの表示データ例 LCD の表示 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ― 1 0 1 ― 0 1 1 ― 0 1 1 ― 1 1 1 ― 1 1 1 ― 1 0 1 ― 0 0 0 ― 0 0 0 ― 0 0 0 ― 1 1 1 ― 1 1 1 ― 0 0 0 ― 1 1 1 ― 0 1 0 ― 0 1 0 ― 1 0 1 ― 1 0 1 ― 1 1 1 ― 1 1 1 ― 0 0 0 ― 0 0 0 ― 1 1 1 ― 1 1 1 ― 1 1 1 ― 0 1 0 ― 0 0 1 ― 0 0 1 ― 1 1 1 ― 1 1 1 ― 0 1 0 ― 1 1 1 ― 0 0 1 ― 0 0 1 ― 1 1 0 ― 1 1 0 ― 1 1 1 ― 1 1 1 ― 0 1 1 ― 0 1 1 ― 1 1 0 ― 1 1 0 ― 1 1 1 ― 0 0 1 ― 0 0 1 ― 0 0 1 ― 1 1 1 ― 1 1 1 ― 0 0 1 ― 1 1 1 ― 0 1 1 ― 0 1 1 ― 1 1 1 ― 1 1 1 ― 1 1 1 ― 1 1 1 ― 0 0 1 ― 0 0 1 ― 1 1 1 ― 1 1 1 ― 1 1 1 :bit4から始まる場合のデータ :bit0から始まる場合のデータ 1/3デューティは3バイトで2桁の表示を行う ため,データの配列は第1バイトbit0からと 第2バイトbit4からの2とおりのデータがあります。 477 第 19 章 LCD コントローラ / ドライバ 19.6.3 LCD コントローラ / ドライバ動作時の出力波形 (1/4 デューティ ) 1/4 デューティのときは表示用に , COM0, COM1, COM2 および COM3 のすべてが 使用されます。 ■ 1/3 バイアス , 1/4 デューティ出力波形 表示は , コモン出力とセグメント出力の電位差が最大となる液晶素子が "ON" となりま す。 表示用 RAM の内容が表 19.6-3 に示すときの出力波形を図 19.6-6 に示します。 表 19.6-3 表示用 RAM の内容例 表示用 RAM の内容 セグメント COM3 478 COM2 COM1 COM0 SEGn 0 1 0 0 SEGn+1 0 1 0 1 第 19 章 LCD コントローラ / ドライバ 図 19.6-6 1/3 バイアス , 1/4 デューティ出力波形例 COM0 V3 V2 V1 V0=Vss COM1 V3 V2 V1 V0=Vss COM2 V3 V2 V1 V0=Vss COM3 V3 V2 V1 V0=Vss SEGn V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) SEGn+1 COM0とSEGnの 電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM1とSEGnの 電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM2とSEGnの 電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM3とSEGnの 電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM0とSEGn+1 の電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM1とSEGn+1 の電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM2とSEGn+1 の電位差 V3(ON) V2 V1 Vss -V1 -V2 -V3(ON) COM3とSEGn+1 の電位差 1フレーム V0~V3:V0~V3端子の電圧値 1周期 479 第 19 章 LCD コントローラ / ドライバ ■ LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) 図 19.6-7 LCD パネルの表示データ例 例)5を表示する場合 *0 COM3 COM0 *4 *7 SEGn *5 COM1 *1 *3 *2 *6 COM2 SEGn+1 アドレス COM3 COM2 COM1 COM0 n H bit3*3 bit2*2 bit1*1 bit0*0 SEGn アドレス COM3 3960H 1 COM0 0 1 SEG0 0 1 1 SEG1 0:OFF 1:ON 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 3963H 0~9までの表示データ例 LCD の表示 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SEG7 0 0 1 1 SEG6 3962H 1 1 1 1 SEG5 0 1 1 0 SEG4 3961H 0 0 1 1 SEG3 0 0 0 1 SEG2 3960H 1 0 1 1 SEG1 1 1 〔アドレス〕 1 1 SEG0 COM0 COM1 COM2 COM3 〔セグメントNo.〕 〔表示用RAM〕 〔LCDパネル〕 480 COM1 1 0 bit7*7 bit6*6 bit5*5 bit4*4 SEGn+1 *0~*7:表示用RAMとの対応を示します。 COM2 第 20 章 低電圧 /CPU 動作 検出リセット回路 この章では , 低電圧 /CPU 動作検出リセット回路の 機能と動作について説明します。 20.1 低電圧 /CPU 動作検出リセット回路の概要 20.2 低電圧 /CPU 動作検出リセット回路の構成 20.3 低電圧 /CPU 動作検出リセット回路のレジスタ 20.4 低電圧 /CPU 動作検出リセット回路の動作 20.5 低電圧 /CPU 動作検出リセット回路の使用上の注意 20.6 低電圧 /CPU 動作検出リセット回路のプログラム例 481 第 20 章 低電圧 /CPU 動作 検出リセット回路 20.1 低電圧 /CPU 動作検出リセット回路の概要 低電圧検出リセット回路は , 電源電圧を監視し , 検出電圧値より電源電圧が下がった ことを検出する機能をもっています。低電圧を検出したときに , 内部リセットを発 生します。 CPU 動作検出リセット回路は , 原発振をカウントクロックとする 20 ビットのカウン タで , 起動後 , 一定時間内にクリアされない場合 , 内部リセットを発生します。 ■ 低電圧検出リセット回路 表 20.1-1 に低電圧 /CPU 動作検出リセット回路の検出電圧を示します。 表 20.1-1 低電圧 /CPU 動作検出リセット回路の検出電圧 検出電圧 4.0V ± 0.3V 低電圧を検出すると , 低電圧検出フラグ (LVRC の LVRF) が "1" にセットされ , 内部リ セットが出力されます。 STOP モード時も動作を続けるので , 低電圧を検出すると内部リセットを発生し , STOP モードを解除します。 内部 RAM 書込み期間は , 書込み終了後に低電圧リセットが発生します。 482 第 20 章 低電圧 /CPU 動作 検出リセット回路 ■ CPU 動作検出リセット回路 CPU 動作検出リセット回路は , プログラム暴走対策用のカウンタです。電源投入後自 動で起動します。起動後は , 一定時間内で定期的にクリアし続ける必要があります。プ ログラムが無限ループに陥るなどして , 一定時間以上クリアされない場合 , 内部リセッ トを発生します。CPU 動作検出回路で発生する内部リセットは , 5 マシンサイクル分の 幅です。 表 20.1-2 CPU 動作検出リセット回路のインターバル時間 インターバル時間 220/Fc ( 約 262ms) ( 注意事項 ) ( ) 内は , 発振クロック 4MHz 動作時のインターバル時間です。 CPU が動作を停止するモードでは , 本回路は停止します。 本回路のカウンタのクリア条件を以下に示します。 • LVRC レジスタの CL ビットへの "0" 書込み • 内部リセット • 発振クロック停止 • スリープモードへの遷移 • タイムベースタイマモード , 時計モードへの遷移 • パワーオンリセット 483 第 20 章 低電圧 /CPU 動作 検出リセット回路 20.2 低電圧 /CPU 動作検出リセット回路の構成 低電圧 /CPU 動作検出リセット回路は , 次の 3 つのブロックで構成されています。 • CPU 動作検出回路 • 電圧比較回路 • 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) ■ 低電圧 /CPU 動作検出リセット回路のブロックダイヤグラム 図 20.2-1 に低電圧 /CPU 動作検出リセット回路のブロックダイヤグラムを示します。 図 20.2-1 低電圧 /CPU 動作検出リセット回路のブロックダイヤグラム VCC 電圧比較回路 + VSS 定電圧源 CPU動作検出回路 内部リセット 発振 クロック F/F カウンタ オーバフロー クリア ノイズキャンセラ 予約 予約 予約 予約 CL LVRF 予約 CPUF 低電圧/CPU動作検出リセット制御レジスタ(LVRC) 内部データバス 484 第 20 章 低電圧 /CPU 動作 検出リセット回路 ● CPU 動作検出回路 プログラム暴走対策用のカウンタです。起動後は , 一定時間内で定期的にクリアし続け る必要があります。 ● 電圧比較回路 検出電圧と電源電圧を比較して , 低電圧を検出すると出力を "H" にします。 電源投入後は , 常に動作しています。 ● 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) 低電圧/CPU動作検出リセットフラグ, CPU動作検出機能のカウンタクリアを行います。 ● 低電圧 /CPU 動作検出リセット回路のリセット要因 電源電圧が検出電圧よりも低下したときに , 内部リセットを発生します。 CPU 動作検出回路のカウンタが , 一定時間以内にクリアされなかった場合に , 内部リ セットを発生します。 485 第 20 章 低電圧 /CPU 動作 検出リセット回路 20.3 低電圧 /CPU 動作検出リセット回路のレジスタ 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) は , 低電圧 /CPU 動作検出リ セットフラグ , CPU 動作検出回路のカウンタクリアなどを行うレジスタです。 ■ 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成 図 20.3-1 に低電圧/CPU動作検出リセット制御レジスタ (LVRC) のビット構成を示しま す。 図 20.3-1 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成 アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 00006E 予約 予約 予約 予約 CL LVRF 予約 CPUF R/W W R/W H R/W R/W R/W CPUF 0 1 LVRF 0 1 R/W 初期値 00111000 B R/W CPU動作検出フラグビット 書込み時 読出し時 このビットのクリア オーバフローしていない オーバフローした 変化なし,ほかへの影響なし 低電圧検出フラグビット 書込み時 読出し時 電圧低下を検出していない このビットのクリア 変化なし,ほかへの影響なし 電圧低下を検出した CPU動作検出クリアビット CL 0 カウンタをクリアします 1 変化なし,ほかへの影響なし 予約 予約ビット このビットへは必ず"1"を書き込んでください 予約 予約ビット このビットへは必ず"0"を書き込んでください R/W :リード/ライト可能 W :ライトオンリ :初期値 486 第 20 章 低電圧 /CPU 動作 検出リセット回路 表 20.3-1 低電圧 /CPU 動作検出リセット制御レジスタの各ビットの機能説明 ビット名 機 能 bit7 bit6 予約: 予約ビット このビットへは , 必ず "0" を書き込んでください。 bit5 bit4 予約: 予約ビット このビットへは , 必ず "1" を書き込んでください。 bit3 CL: CPU 動作検出 クリアビット CPU 動作検出回路のカウンタをクリアするビットです。 このビットに "0" を書き込むと , CPU 動作検出回路のカウンタがクリアされます。 bit2 LVRF: 低電圧検出 フラグビット 電源電圧の低下が検出されると , このビットが "1" にセットされます。 書込み時は "0" でクリアされ , "1" ではこのビットに影響を与えず , 変化しません。 内部リセットでは初期化されず , 外部リセット入力で初期化されます。 bit1 予約: 予約ビット このビットへは , 必ず "0" を書き込んでください。 bit0 CPUF: CPU 動作検出 フラグビット CPU 動作検出機能のカウンタがオーバフローすると , このビットが "1" にセットされ ます。 書込み時は "0" でクリアされ , "1" ではこのビットに影響を与えず , 変化しません。 内部リセットでは初期化されず , 外部リセット入力で初期化されます。 487 第 20 章 低電圧 /CPU 動作 検出リセット回路 20.4 低電圧 /CPU 動作検出リセット回路の動作 電源電圧を監視し , 設定値よりも電源電圧が低下したときに内部リセットを発生し ます。CPU 動作検出機能では , 一定間隔でカウンタがクリアされないと , 内部リ セットを発生します。低電圧または CPU の暴走を検出して内部リセットが発生した 場合 , レジスタの内容は保証できません。低電圧リセット解除後は , 動作安定待ち時 間経過後 , リセットシーケンスを実行した後にリセットベクタで指定されたアドレ スからプログラムが再スタートします。 ■ 低電圧検出リセット回路の動作 低電圧検出リセット回路は , リセット解除後 , 動作安定待ち時間を取らずに低電圧検出 動作を開始します。 ■ CPU 動作検出リセット回路の動作 CPU 動作検出リセット回路は , リセット解除後 , 動作安定待ち時間を取らずに , CPU 動 作検出動作を開始します。 <注意事項> 低電圧リセット回路は常に動作していますので , スリープ , ストップモード時においても , 電流を消費します。 488 第 20 章 低電圧 /CPU 動作 検出リセット回路 20.5 低電圧 /CPU 動作検出リセット回路の使用上の注意 低電圧 /CPU 動作検出リセット回路を使用するにあたっての注意点を示します。 ■ 低電圧検出リセット回路の使用上の注意 ● プログラムでの動作停止不可 低電圧検出リセット回路は , 電源投入後 , 動作安定待ち時間を経過すると連続で動作し ます。ソフトウェアでの動作停止はできません。 ● STOP モード時の動作 低電圧検出リセットは , STOP モード時も動作を続けます。STOP モード中に低電圧を 検出するとリセットが発生し , STOP モードは解除されます。 ■ CPU 動作検出リセット回路の使用上の注意 ● プログラムでの動作停止不可 CPU 動作検出リセット回路は , 電源投入後 , 連続で動作します。ソフトウェアでの動作 停止はできません。 ● CPU 動作検出機能のリセット発生抑止 CPU 動作検出機能は , 一定時間ごとにカウンタをクリアする必要があります。 LVRC レ ジスタの CL ビットに "0" を書き込むことによってカウンタをクリアし , リセット発生 を抑止することができます。 ● カウンタの停止とクリア CPU 動作検出機能は , CPU が動作を停止するモードではカウンタをクリアし , 動作を 停止します。 ● サブ発振モード時の動作 CPU 動作検出機能は , サブ発振モードでは動作を停止しますので , ウォッチドッグリ セット機能を併用してください。 489 第 20 章 低電圧 /CPU 動作 検出リセット回路 20.6 低電圧 /CPU 動作検出リセット回路のプログラム例 低電圧 /CPU 動作検出リセット回路のプログラム例を示します。 ■ 低電圧 /CPU 動作検出リセット回路のプログラム例 ● 処理仕様 CPU 動作検出機能のカウンタをクリアします。 【コーディング例】 LVRC ; 低電圧 /CPU 動作検出リセット制御レジスタの アドレス ;---------- メインプログラム ----------------------------------------------------CSEG ;【CODE SEGMENT】 : MOV LVRC, #00110101B ; CPU 動作検出機能のカウンタをクリア : END 490 EQU 006EH 第 21 章 ステッピングモータ コントローラ この章では , ステッピングモータコントローラの機 能と動作について説明します。 21.1 ステッピングモータコントローラの概要 21.2 ステッピングモータコントローラのレジスタ 21.3 ステッピングモータコントローラの動作 21.4 ステッピングモータコントローラの使用上の注意 491 第 21 章 ステッピングモータ コントローラ 21.1 ステッピングモータコントローラの概要 ステッピングモータコントローラは , 2 個の PWM パルス発生器 , 4 個のモータドライ バおよびセレクタロジックから構成されています。 4 個のモータドライバは高出力駆動能力があり , 2 個のモータコイルの端部 4 個に直接 に接続することができます。PWM パルス発生器とセレクタロジックを組み合せて , モータの回転を制御するように設計されています。同期機構により , 2 個の PWM の同 期作動が確かなものとなります。 ■ ステッピングモータコントローラのブロックダイヤグラム 図 21.1-1 に , ステッピングモータコントローラのブロックダイヤグラムを示します。 図 21.1-1 ステッピングモータコントローラのブロックダイヤグラム マシンクロック OE1 プリスケーラ CK PWM1Pn PWM1パルス発生器 EN P1 出力許可 セレクタ PWM1Mn PWM P0 PWM1コンペアレジスタ PWM1選択レジスタ OE2 SC CK CE EN 出力許可 PWM2Pn PWM2パルス発生器 セレクタ PWM2Mn PWM ロード PWM2コンペアレジスタ 492 BS PWM2選択レジスタ n : 0~3 第 21 章 ステッピングモータ コントローラ 21.2 ステッピングモータコントローラのレジスタ ステッピングモータコントローラのレジスタには , 次の 5 種類があります。 • PWM 制御レジスタ • PWM1 コンペアレジスタ • PWM2 コンペアレジスタ • PWM1 選択レジスタ • PWM2 選択レジスタ ■ ステッピングモータコントローラのレジスタ 図 21.2-1 にステッピングモータコントローラのレジスタを示します。 図 21.2-1 ステッピングモータコントローラのレジスタ PWM 制御レジスタ (PWC0, PWC1, PWC2, PWC3) アドレス 000080H, 000082H 000084H, 000086H bit 7 OE2 R/W 0 6 OE1 R/W 0 5 P1 R/W 0 4 P0 R/W 0 3 CE R/W 0 2 SC R/W 0 1 - 0 TST R/W 0 PWM1 コンペアレジスタ (PWC10, PWC11, PWC12, PWC13) アドレス 003980H, 003988H 003990H, 003998H bit 7 D7 R/W X 6 D6 R/W X 5 D5 R/W X 4 D4 R/W X 3 D3 R/W X 2 D2 R/W X 1 D1 R/W X 0 D0 R/W X アドレス 003981H, 003989H 003991H, 003999H bit 15 14 13 12 11 10 9 8 - - - - - - D9 R/W X D8 R/W X PWM2 コンペアレジスタ (PWC20, PWC21, PWC22, PWC23) bit アドレス 003982H, 00398AH 003992H, 00399AH bit アドレス 003983H, 00398BH 003993H, 00399BH 7 6 5 4 3 2 1 0 D7 R/W X D6 R/W X D5 R/W X D4 R/W X D3 R/W X D2 R/W X D1 R/W X D0 R/W X 15 14 13 12 11 10 9 8 - - - - - - D9 R/W X D8 R/W X ( 続く ) 493 第 21 章 ステッピングモータ コントローラ ( 続き ) PWM1 選択レジスタ (PWS10, PWS11, PWS12, PWS13) アドレス 003984H, 00398CH 003994H, 00399CH bit 7 - 6 - 5 P2 R/W 0 4 P1 R/W 0 3 P0 R/W 0 2 M2 R/W 0 1 M1 R/W 0 0 M0 R/W 0 3 P0 R/W 0 2 M2 R/W 0 1 M1 R/W 0 0 M0 R/W 0 PWM2 選択レジスタ (PWS20, PWS21, PWS22, PWS23) アドレス 003985H, 00398DH 003995H, 00399DH 494 bit 7 - 6 BS R/W 0 5 P2 R/W 0 4 P1 R/W 0 第 21 章 ステッピングモータ コントローラ 21.2.1 PWM 制御レジスタ (PWC0 ~ PWC3) PWM 制御レジスタは , ステッピングモータコントローラの起動・停止 , 割込みの制 御や外部出力端子などの設定を行います。 ■ PWM 制御レジスタ (PWC0 ~ PWC3) のビット構成 図 21.2-2 に PWM 制御レジスタのビット構成を示します。 図 21.2-2 PWM 制御レジスタのビット構成 アドレス 000080H, 000082H 000084H, 000086H bit 7 6 5 4 3 2 1 0 OE2 R/W 0 OE1 R/W 0 P1 R/W 0 P0 R/W 0 CE R/W 0 SC R/W 0 - TST R/W 0 【bit7】OE2:出力許可ビット OE2 ビットが "1" にセットされた場合 , 外部端子は PWM2P0, PWM2P1, PWM2P2, PWM2P3 および PWM2M0, PWM2M1, PWM2M2, PWM2M3 として割り当てられま す。"0" の場合には , 汎用 I/O として使用することができます。 【bit6】OE1:出力許可ビット OE1 ビットが "1" にセットされた場合 , 外部端子は PWM1P0, PWM1P1, PWM1P2, PWM1P3 および PWM1M0, PWM1M1, PWM1M2, PWM1M3 として割り当てられま す。"0" の場合には , 汎用 I/O として使用することができます。 【bit5, bit4】P1, P0:動作クロック選択ビット P1, P0 ビットは , PWM パルス発生器に対するクロック入力信号を指定します。 クロック入力 P1 P0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック 【bit3】CE:カウント許可ビット CE ビットは , PWM パルス発生器の動作を許可します。CE ビットが "1" にセットさ れたとき , PWM パルス発生器はそれらの動作を開始します。PWM2 パルス発生器 は , PWM1 パルス発生器の 1 マシンクロックサイクル後にスタートすることに注意 してください。これは出力ドライバからのスイッチングノイズを減少させるのを助 けるものです。 CE ビットに "0" を設定すると , PWM パルス発生器は , 初期化されて停止します。 【bit2】SC:8/10 ビット切換えビット SC ビットが "1" にセットされたとき , PWM は 10 ビットで動作します。"0" にセッ トされたとき , PWM は 8 ビットで動作します。 【bit0】TST:テストビット TST ビットはデバイステスト用のものです。ユーザアプリケーションにおいて , TST ビットは常に "0" にセットしなければなりません。 495 第 21 章 ステッピングモータ コントローラ 21.2.2 PWM1, PWM2 コンペアレジスタ (PWC10 ~ PWC13, PWC20 ~ PWC23) PWM1, PWM2 の 2 つの 8 (10) ビットコンペアレジスタの内容は , PWM パルスの幅 を決定するものです。記憶された "00H" ("000H") の値は PWM のデューティが 0% であることを表し , "FFH" ("3FFH") は 99.6% (99.9%) のデューティを表します。 ■ PWM1, PWM2コンペアレジスタ(PWC10~PWC13, PWC20~PWC23)のビット構成 PWM1, PWM2 コンペアレジスタは , 任意の時点でアクセスすることができます。変更 された値は PWM2 選択レジスタの BS ビットが "1" にセットされた後 , 現在の PWM サ イクルの終わりにパルス幅に反映されます。 本レジスタは , 必ずワードアクセスしてください。 図 21.2-3 に PWM1, PWM2 コンペアレジスタのビット構成を , 図 21.2-4 に PWM パルス 幅の設定を示します。 図 21.2-3 PWM1, PWM2 コンペアレジスタのビット構成 PWM1 コンペアレジスタ アドレス bit 003980H 003981H 003988H 003989H 003990H 003991H 003998H 003999H 7 D7 R/W X 6 D6 R/W X 5 D5 R/W X 4 D4 R/W X 3 D3 R/W X 2 D2 R/W X bit 15 14 13 12 11 10 9 8 - - - - - - D9 R/W X D8 R/W X bit 7 D7 R/W X 6 D6 R/W X 5 D5 R/W X 4 D4 R/W X 3 D3 R/W X 2 D2 R/W X 1 D1 R/W X 0 D0 R/W X bit 15 14 13 12 11 10 9 8 - - - - - - D9 R/W X D8 R/W X 1 D1 R/W X 0 D0 R/W X PWM2 コンペアレジスタ アドレス 003982H 003983H 00398AH 00398BH 003992H 003993H 00399AH 00399BH 496 第 21 章 ステッピングモータ コントローラ 図 21.2-4 PWM パルス幅の設定 レジスタ値 1つのPWMサイクル 256(1024)入力サイクル 000H 80H(200H) FFH(3FFH) 128(512)入力サイクル 255(1023)入力サイクル 497 第 21 章 ステッピングモータ コントローラ 21.2.3 PWM1, PWM2 選択レジスタ (PWS10 ~ PWS13, PWS20 ~ PWS23) PWM1, PWM2 選択レジスタは , ステッピングモータコントローラの外部端子の出力 が "L", "H", PWM パルス , ハイインピーダンスかを選択します。 ■ PWM1, PWM2 選択レジスタ (PWS10 ~ PWS13, PWS20 ~ PWS23) のビット構成 図 21.2-5 に PWM1, PWM2 選択レジスタのビット構成を示します。 図 21.2-5 PWM1, PWM2 選択レジスタのビット構成 PWM1 選択レジスタ bit アドレス 003984H, 00398CH 003994H, 00399CH 7 - 6 - 5 P2 R/W 0 4 P1 R/W 0 3 P0 R/W 0 2 M2 R/W 0 1 M1 R/W 0 0 M0 R/W 0 PWM2 選択レジスタ bit アドレス 003985H, 00398DH 003995H, 00399DH 7 6 5 4 3 2 1 0 - BS R/W 0 P2 R/W 0 P1 R/W 0 P0 R/W 0 M2 R/W 0 M1 R/W 0 M0 R/W 0 【bit14】BS:書換えビット BS ビットは , PWM 出力に対する設定を同期するために用意されています。BS ビッ トがセットされるまで , 2 個のコンペアレジスタおよび 2 個の選択レジスタに対し て行われた変更は , 出力信号には反映されません。 BS ビットが "1" にセットされたとき , PWM パルス発生器およびセレクタはレジス タ内容を現在の PWM サイクルの終わりでロードします。BS ビットは , 次の PWM サイクルの始めに自動的に "0" にリセットされます。もし , BS ビットがこの自動リ セットと同時にソフトウェアにより "1" にセットされると , BS ビットは "1" にセッ トされ , ( すなわち変更されないままであり ) 自動リセットは解除されます。 【bit13 ~ bit11】P2 ~ P0:出力選択ビット P2 ~ P0 ビットは , PWM2P0 における出力信号を選択するものです。 【bit10 ~ bit8】M2 ~ M0:出力選択ビット M2 ~ M0 ビットは , PWM2M0 における出力信号を選択するものです。 【bit5 ~ bit3】P2 ~ P0:出力選択ビット P2 ~ P0 ビットは , PWM1P0 における出力信号を選択するものです。 498 第 21 章 ステッピングモータ コントローラ 【bit2 ~ bit0】M2 ~ M0:出力選択ビット M2 ~ M0 ビットは , PWM1M0 における出力信号を選択するものです。次の表は , 出力レベルと選択ビットの間の関係を示すものです。 P2 P1 P0 PWMnP0 M2 M1 M0 0 0 0 0 0 1 PWMnM0 0 "L" 0 0 0 "L" 1 "H" 0 0 1 "H" 1 X PWM パルス 0 1 X PWM パルス X X ハイインピーダンス 1 X X ハイインピーダンス 499 第 21 章 ステッピングモータ コントローラ ステッピングモータコントローラの動作 21.3 ステッピングモータコントローラの動作について説明します。 ■ ステッピングモータコントローラの動作設定 ステッピングモータコントローラを動作させるには , 図 21.3-1 に示す設定が必要です。 図 21.3-1 ステッピングモータコントローラの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PWCn PWC1n PWC2n - - - - - - × × × × × × - - - - - - × × × × × × bit6 bit5 bit4 bit3 bit2 bit1 bit0 OE2 OE1 ◎ ◎ P1 ◎ P0 ◎ CE 1 SC ◎ × TST 0 M1 ◎ M0 ◎ PWM1 の "H" 幅 ( コンペア値 ) を設定 PWM2 の "H" 幅 ( コンペア値 ) を設定 PWS1n PWS2n bit7 × - × BS ◎ P2 ◎ P1 ◎ P0 ◎ M2 ◎ M1 ◎ M0 ◎ × P2 ◎ P1 ◎ P0 ◎ ◎:使用ビット 1 :"1" を設定 n :チャネル No. M2 ◎ ×:未使用ビット 0 :"0" を設定 ● PWM パルス発生回路の動作 カウンタを起動 (PWCn の CE=1) すると , 選択したカウントクロックの立上りで , "00H" からカウントアップを始めます。PWM 出力波形は , カウンタ値が PWM コンペアレジ スタに設定した値と一致するまで "H" で , その後カウンタ値がオーバフロー (FFH → 00H) するまで "L" となります。 図 21.3-2 に PWM 発生回路が生成する PWM 波形を示します。 図 21.3-2 PWM1, PWM2 波形出力例 コンペアレジスタ値"00H"/"000H"のとき(デューティ比0%) 000H カウンタ値00H PWM波形 3FFH 000H FFH 00H H L コンペアレジスタ値"80H"/"200H"のとき(デューティ比50%) 200H 000H 3FFH 000H カウンタ値00H 80H FFH 00H PWM波形 H L コンペアレジスタ値"FFH"/"3FFH"のとき(デューティ比99.6%/99.9%) 000H 3FFH 000H カウンタ値00H FFH 00H H PWM波形 L 1カウント分 500 第 21 章 ステッピングモータ コントローラ ● モータドライブ信号の選択 ステッピングモータコントローラ関連の各端子に出力するモータドライブ信号は , PWM 選択レジスタの設定により , 端子ごとに 4 種類の信号から選択することができま す。 表 21.3-1 にモータドライブ信号の選択と PWM 選択レジスタ 1, PWM 選択レジスタ 2 の 設定について示します。 これらの設定を行った後 , PWM 選択レジスタ 2 の BS ビットに "1" を書き込むと , 現在 の PWM サイクルの終了時に設定値が有効となります。この BS ビットは , 次の PWM サイクルの先頭で自動的にクリアされます。BS ビットへの書込みと PWM サイクルの 先頭で BS ビットクリアが同時のときは , BS ビットへの書込みが優先され , BS ビット クリアは取り消されます。 表 21.3-1 モータドライブ信号の選択と PWM 選択レジスタ 1, PWM 選択レジスタ 2 の設定 P2, P1, P0 ビット PWM1P 出力 PWM2P 出力 M2, M1, M0 ビット PWM1M 出力 PWM2M 出力 000B "L" 000B "L" 001B "H" 001B "H" 01XB PWM パルス 01XB PWM パルス 1XXB ハイインピーダンス 1XXB ハイインピーダンス 501 第 21 章 ステッピングモータ コントローラ 21.4 ステッピングモータコントローラの使用上の注意 ステッピングモータコントローラを使用するにあたっての注意点を示します。 ■ PWM 設定値変更時の注意 PWM コンペアレジスタ 1 (PWC1n) , PWM コンペアレジスタ 2 (PWC2n) , PWM 選択レ ジスタ 1 (PWS1n) および PWM 選択レジスタ 2 (PWS2n) は常時アクセス可能ですが , PWM の "H" 幅設定を変更するまたは PWM 出力を変更するためには , これらのレジス タに設定値を書き込んだ後 ( または同時に ) , PWM 選択レジスタ 2 の BS ビットに "1" を書き込む必要があります。 BS ビットが "1" にセットされると , 現在の PWM サイクルの終了時に新しい設定値が 有効になり , BS ビットは自動的にクリアされます。 また , BS ビットへの "1" 書込みと , PWM サイクル終了時の BS ビットのリセットが同 時に行われた場合は , "1" 書込みが優先され , BS ビットのリセットはキャンセルされま す。 ■ PWM 出力許可時の注意 PWM 出力を許可する前には , 必ず使用する端子の DDR7/DDR8 レジスタへの書込みを 行ってください。MB90V420G 以外の品種では , DDR7/DDR8 レジスタへの書込みを行 わない場合 , 端子出力は "L" になります。 詳細は「8.9.2 ポート 7 の動作説明」および「8.10.2 ポート 8 の動作説明」を参照して ください。 502 第 22 章 サウンドジェネレータ この章では , サウンドジェネレータの機能と動作に ついて説明します。 22.1 サウンドジェネレータの概要 22.2 サウンドジェネレータのレジスタ 503 第 22 章 サウンドジェネレータ 22.1 サウンドジェネレータの概要 サウンドジェネレータは , サウンド制御レジスタ , 周波数データレジスタ , 振幅デー タレジスタ , デクリメントグレードレジスタ , トーンカウントレジスタ , PWM パル ス発生器 , 周波数カウンタ , デクリメントカウンタおよびトーンパルスカウンタから 構成されています。 ■ サウンドジェネレータのブロックダイヤグラム 図 22.1-1 に , サウンドジェネレータのブロックダイヤグラムを示します。 図 22.1-1 サウンドジェネレータのブロックダイヤグラム クロック入力 プリスケーラ S1 S0 8ビットPWM CO パルス発生器 EN PWM CI リロード 振幅データ レジスタ トグル フリップフロップ Q D EN 周波数 カウンタ CO EN リロード 1/d 周波数データ レジスタ DEC DEC デクリメント CI カウンタ CO EN SGA OE1 デクリメント グレードレジスタ 混合 TONE OE1 SGO OE2 OE2 トーンパルス CI カウンタ CO EN トーンカウント レジスタ INTE INT ST IRQ #34 504 第 22 章 サウンドジェネレータ 22.2 サウンドジェネレータのレジスタ サウンドジェネレータのレジスタには , 次の種類があります。 • サウンド制御レジスタ (SGCR) • 周波数データレジスタ (SGFR) • 振幅データレジスタ (SGAR) • デクリメントグレードレジスタ (SGDR) • トーンカウントレジスタ (SGTR) ■ サウンドジェネレータのレジスタ 図 22.2-1 にサウンドジェネレータのレジスタを示します。 図 22.2-1 サウンドジェネレータのレジスタ サウンド制御レジスタ上位 bit 15 アドレス : 00005BH TST 読出し / 書込み→ (R/W) (0) 初期値→ 14 13 12 11 10 9 8 - - - - - BUSY (R) (0) DEC (R/W) (0) SGCRH サウンド制御レジスタ下位 bit アドレス : 00005AH 7 6 5 4 3 2 1 0 S1 S0 TONE OE2 OE1 INTE INT ST (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 14 13 12 11 10 9 8 読出し / 書込み→ (R/W) (0) 初期値→ SGCRL 振幅データレジスタ bit 15 アドレス : 00005DH D7 読出し / 書込み→ (R/W) (0) 初期値→ D6 D5 D4 D3 D2 D1 D0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) SGAR 周波数データレジスタ bit 7 アドレス : 00005CH D7 読出し / 書込み→ (R/W) (X) 初期値→ 6 5 4 3 2 1 0 D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) 14 13 12 11 10 9 8 SGFR トーンカウントレジスタ bit 15 アドレス : 00005FH D7 読出し / 書込み→ (R/W) (X) 初期値→ D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) SGTR デクリメントグレードレジスタ bit アドレス : 00005EH 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 読出し / 書込み→ (R/W) (X) 初期値→ SGDR 505 第 22 章 サウンドジェネレータ 22.2.1 サウンド制御レジスタ (SGCRH, SGCRL) サウンド制御レジスタは , サウンドジェネレータの割込み制御や外部出力端子など の設定を行い , 動作状態の制御を行います。 ■ サウンド制御レジスタ (SGCRH, SGCRL) のビット構成 図 22.2-2 にサウンド制御レジスタのビット構成を示します。 図 22.2-2 サウンド制御レジスタのビット構成 サウンド制御レジスタ上位 bit アドレス : 00005BH 15 14 13 12 11 10 9 8 TST - - - - - BUSY DEC - - - - - (R) (0) (R/W) (0) 6 5 4 3 2 1 0 S0 TONE OE2 OE1 INTE INT ST (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 読出し / 書込み→ (R/W) (0) 初期値→ SGCRH サウンド制御レジスタ下位 bit アドレス : 00005AH 7 S1 読出し / 書込み→ (R/W) (0) 初期値→ SGCRL 【bit15】TST:テストビット このビットは , デバイステストのために用意されたものです。ユーザアプリケー ションにおいては , "0" にセットしてください。 【bit9】BUSY:ビジービット このビットは , サウンドジェネレータが動作しているかどうかを表示するもので す。このビットは , ST ビットが "1" にセットされると同時に "1" にセットされます。 また , ST ビットが "0" にリセットされ , 1 つのトーンサイクルの終わりに動作が完 了したときに , "0" にリセットされます。このビットに書込み命令を実行しても効果 はありません。 【bit8】DEC:自動デクリメント許可ビット DEC ビットは , デクリメントグレードレジスタと組み合わされたサウンドの自動デ グラデーションのために用意されたものです。 このビットが "1" にセットされると , デクリメントグレードレジスタによって指定 されたトグルフリップフロップからのトーンパルスの個数が , デクリメントカウン タのカウントごとに , 振幅データレジスタに記憶された値は 1 だけデクリメントさ れます。 506 第 22 章 サウンドジェネレータ 【bit7, bit6】S1, S0:動作クロック選択ビット このビット群はサウンドジェネレータに対するクロック入力信号を指定するもの です。 クロック入力 S1 S0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック 【bit5】TONE:トーン出力ビット このビットが "1" にセットされたとき , SGO 信号はトグルフリップフロップから単 純な矩形波形 (トーンパルス) になります。その他の場合には, トーンパルスとPWM パルスとの混合 (AND ロジック ) 信号となります。 【bit4】OE2:サウンド出力許可ビット このビットが "1" にセットされたとき , 外部端子は SGO 出力として割り当てられま す。その他の場合には , 端子は汎用に使用することができます。 【bit3】OE1:振幅出力許可ビット このビットが "1" にセットされたとき , 外部端子は SGA 出力として割り当てられま す。その他の場合には , 端子は汎用に使用することができます。 SGA 信号は PWM パルス発生器からの PWM パルスで , サウンドの振幅を表してい ます。 【bit2】INTE:割込み許可ビット このビットは , サウンドジェネレータの割込み信号を許可するものです。このビッ トが "1" で , INT ビットが "1" にセットされたとき , サウンドジェネレータは割込み を信号で知らせます。 【bit1】INT:割込みビット トーンカウントレジスタおよびデクリメントグレードレジスタにより指定された トーンパルスの個数が , トーンパルスカウンタによってカウントされたときに , こ のビットが "1" にセットされます。 このビットは "0" を書き込むことによって , "0" にリセットされます。"1" を書き込 んでも効果はなく , リードモディファイライト系命令では常に "1" を読み取る結果 となります。 【bit0】ST:開始ビット このビットは , サウンドジェネレータの動作を開始させるためのものです。この ビットが "1" の間 , サウンドジェネレータはその動作を行います。 このビットが "0" にリセットされたとき , サウンドジェネレータは現在のトーンサ イクルの終わりにその動作を停止します。BUSY ビットは , サウンドジェネレータ が完全に停止したかどうかを表示します。 507 第 22 章 サウンドジェネレータ 周波数データレジスタ (SGFR) 22.2.2 周波数データレジスタは , 周波数カウンタに対するリロード値を記憶します。記憶 された値はサウンド ( またはトグルフリップフロップからのトーン信号 ) の周波数を 表します。レジスタ値は , トグル信号の推移ごとにカウンタ内にリロードされます。 ■ 周波数データレジスタ (SGFR) 図 22.2-3 に周波数データレジスタのビット構成を, 図 22.2-4 に, レジスタ値とトーン信 号との関係を示します。 図 22.2-3 周波数データレジスタのビット構成 周波数データレジスタ bit アドレス : 00005CH 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 読出し / 書込み→ (R/W) (X) 初期値→ SGFR 図 22.2-4 レジスタ値とトーン信号との間の関係 1つのトーンサイクル トーン信号 (レジスタ値+1)× (レジスタ値+1)× 1PMWサイクル 1PMWサイクル <注意事項> 動作中にレジスタ値を変更すると , 変更のタイミングによっては 50% のデューティサイ クルが変わることがあります。 508 第 22 章 サウンドジェネレータ 22.2.3 振幅データレジスタ (SGAR) 振幅データレジスタは , PWM パルス発生器に対するリロード値を記憶します。レジ スタ値はサウンドの振幅を表し , トーンサイクルが終わるごとに PWM パルス発生器 にリロードされます。 ■ 振幅データレジスタ (SGAR) 図 22.2-5 に振幅データレジスタのビット構成を示します。x 図 22.2-5 振幅データレジスタのビット構成 振幅データレジスタ bit 15 14 13 12 11 10 9 8 アドレス : 00005DH D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 読出し / 書込み→ (R/W) (0) 初期値→ SGAR DEC ビットが "1" で , デクリメントカウンタがそのリロード値に達したとき , このレジ スタ値は 1 だけデクリメントされますが , レジスタ値が "00" に達したときには , さら なるデクリメントは行われません。ただし , サウンドジェネレータは , ST ビットがク リアされるまでその動作を継続します。 図 22.2-6 は , レジスタ値と PWM パルスとの間の関係を示しています。 図 22.2-6 レジスタ値と PWM パルスとの間の関係 レジスタ値 1つのPMWサイクル 256入力クロックサイクル 00H 1つの入力クロックサイクル 80H 129入力クロックサイクル FEH 256入力クロックサイクル FFH 256入力クロックサイクル レジスタ値が "FF" にセットされたときに , PWM 信号は常に "1" となります。 509 第 22 章 サウンドジェネレータ 22.2.4 デクリメントグレードレジスタ (SGDR) デクリメントグレードレジスタは , デクリメントカウンタに対するリロード値を記 憶するものです。これらは振幅データレジスタ内の記憶値を , 自動的にデクリメン トするために用意されたものです。 ■ デクリメントグレードレジスタ (SGDR) 図 22.2-7 にデクリメントグレードレジスタのビット構成を示します。 図 22.2-7 デクリメントグレードレジスタのビット構成 デクリメントグレードレジスタ bit アドレス : 00005EH 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 読出し / 書込み→ (R/W) (X) 初期値→ SGDR DEC ビットが "1" で , デクリメントカウンタがトーンパルスをリロード値までカウン トしたとき, 振幅データレジスタはトーンサイクルの終わりに1だけデクリメントされ ます。 この動作により CPU の介在の回数を少なくして , サウンドの自動的なデグラデーショ ンが実現されます。 このレジスタによって指定されたトーンパルスの数は , " レジスタ値+ 1" であること に注意してください。デクリメントグレードレジスタが "00" にセットされたときに , デクリメント動作がトーンサイクルごとに行われます。 510 第 22 章 サウンドジェネレータ 22.2.5 トーンカウントレジスタ (SGTR) トーンカウントレジスタは , トーンパルスカウンタに対するリロード値を記憶する ものです。トーンパルスカウンタは , トーンパルスの数 ( またはデクリメント動作の 回数 ) を蓄積してそれがリロード値に達したときに , INT ビットをセットします。そ れらは割込みの頻度を減少することを目的としています。 ■ トーンカウントレジスタ (SGTR) 図 22.2-8 にトーンカウントレジスタのビット構成を示します。 図 22.2-8 トーンカウントレジスタのビット構成 トーンカウントレジスタ bit 15 アドレス : 00005FH D7 読出し / 書込み→ (R/W) (X) 初期値→ 14 13 12 11 10 9 8 D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) SGTR トーンパルスカウンタのカウント入力は , デクリメントカウンタからのキャリアウト 信号に接続されています。 トーンカウントレジスタが "00" にセットされたときに , トー ンパルスカウンタはデクリメントカウンタからのキャリアウトごとに INT ビットを セットします。このため , 蓄積されたトーンパルスの数は , ( ( デクリメントグレードレジスタ ) + 1) × ( ( トーンカウントレジスタ ) + 1) となります。 すなわち , 両レジスタが "00" にセットされたときに , INT ビットはトーンサイクルごと にセットされます。 511 第 22 章 サウンドジェネレータ 512 第 23 章 アドレス一致検出機能 この章では , アドレス一致検出機能の機能と動作に ついて説明します。 23.1 アドレス一致検出機能の概要 23.2 アドレス一致検出機能の応用例 513 第 23 章 アドレス一致検出機能 23.1 アドレス一致検出機能の概要 アドレスの設定がアドレス検出レジスタと同じであれば , INT9 命令が実行されます。 INT9 割込みサービスルーチンを処理すると , アドレス一致検出機能を実現できます。 それぞれに比較許可ビットを持つ 2 つのアドレス検出レジスタがあり , アドレス検 出レジスタとプログラムカウンタが一致し , 比較許可ビットが "1" である場合に , CPU により INT9 命令の実行が強制されます。 ■ アドレス一致検出機能のブロックダイヤグラム 図 23.1-1 に , アドレス一致検出機能のブロックダイヤグラムを示します。 図 23.1-1 アドレス一致検出機能のブロックダイヤグラム 比較 アドレス ラッチ アドレス検出レジスタ F2MC-16LX 許可ビット CPUコア F2MC-16LXバス ■ アドレス一致検出機能のレジスタ構成 図 23.1-2 にアドレス一致検出機能のレジスタ構成を示します。 図 23.1-2 アドレス一致検出機能のレジスタ構成 byte byte PADR0 アドレス : 001FF2H/001FF1H/001FF0H - - PADR1 アドレス : 001FF5H/001FF4H/001FF3H - - bit PACSR アドレス : 00009EH 514 byte アクセス 初期値 XXXXXXXXB R/W R/W XXXXXXXXB 7 6 5 4 3 2 1 0 - - 予約 R/W 予約 R/W AD0E - 予約 R/W AD1E 予約 R/W R/W R/W 初期値 --000000B 第 23 章 アドレス一致検出機能 ■ プログラムアドレス検出レジスタ (PADR0/PADR1) プログラムカウンタと比較するアドレスを保持するレジスタです。一致し , 対応する PACSR の割込み許可ビットが "1" のとき , このモジュールから CPU に INT9 命令の実 行が要請されます。 対応する割込み許可ビットが "0" のときは , 何も行いません。 図 23.1-3 にプログラムアドレス検出レジスタの構成を示します。 図 23.1-3 プログラムアドレス検出レジスタの構成 byte byte PADR0 アドレス : 001FF2H/001FF1H/001FF0H - - PADR1 アドレス : 001FF5H/001FF4H/001FF3H - - byte アクセス 初期値 XXXXXXXXB R/W XXXXXXXXB R/W PACSR との対応は以下のとおりとなります。 プログラムアドレス検出レジスタ 割込み許可ビット PADR0 AD0E PADR1 AD1E ■ プログラムアドレス検出コントロールレジスタ (PACSR) プログラムアドレス検出コントロールレジスタ (PACSR) は , アドレス検出機能の動作 を制御し , その状態を示します。 図 23.1-4 にプログラムアドレス検出コントロールレジスタ (PACSR) のビット構成を示 します。 図 23.1-4 プログラムアドレス検出コントロールレジスタ (PACSR) のビット構成 bit 7 6 5 4 3 2 1 0 読出し / 書込み→ 初期値→ (-) (-) (-) (-) 予約 (R/W) (0) 予約 (R/W) (0) AD1E (R/W) (0) 予約 (R/W) (0) AD0E (R/W) (0) 予約 (R/W) (0) PACSR アドレス : 00009EH 【bit7, bit6】 未定義ビット 読出し時は不定値 , 書込みは意味を持ちません。 【bit5, bit4】 予約ビット 必ず "0" を書き込んでください。 【bit3】AD1E(Compare Enable 1) PADR1 の動作許可ビットです。 このビットが "1" のとき , PADR1 レジスタとアドレスを比較し , 一致した場合に INT9 命令を CPU に送ります。 【bit2】 予約ビット 必ず "0" を書き込んでください。 515 第 23 章 アドレス一致検出機能 【bit1】AD0E (Compare Enable 0) PADR0 の動作許可ビットです。 このビットが "1" のとき , PADR0 レジスタとプログラムカウンタを比較し , 一致し た場合に INT9 命令を CPU に送ります。 【bit0】 予約ビット 必ず "0" を書き込んでください。 ■ アドレス一致検出機能の動作 プログラムカウンタがプログラムアドレス検出レジスタと同じアドレスであれば , INT9 命令が実行されます。INT9 割込みサービスルーチンを処理すると , アドレス一致 検出機能を実現できます。 それぞれに比較許可ビットを持つ2本のアドレス検出レジスタがあり, アドレス検出レ ジスタとプログラムカウンタが一致し , 比較許可ビットが "1" のときに , CPU により INT9 命令の実行が強制されます。 <注意事項> アドレス検出レジスタとプログラムカウンタが一致した場合 , 内部データバスの内容が "01H" に換えられ , INT9 命令が実行されます。アドレス検出レジスタの内容の変更は , 比 較許可ビットを "0" にした状態で行ってください。比較許可ビットが "0" の状態で変更す ると , エラーが発生する可能性があります。 アドレス一致検出機能は , 内蔵 ROM のアドレスに対してのみ有効です。外部メモリ領域 のアドレスを設定しても , INT9 命令は実行されません。 516 第 23 章 アドレス一致検出機能 23.2 アドレス一致検出機能の応用例 アドレス一致検出機能は , 外部に E2PROM を設け修正に関する情報とパッチプログ ラムを格納することにより実現できます。CPU はアドレス一致検出機能に E2PROM に格納された修正の情報を元に修正が必要なアドレスを設定しパッチプログラムを RAM に転送します。アドレスの一致検出による INT9 命令の実行でパッチプログラ ムに処理を移すことが可能です。 ■ システム構成 図 23.2-1 にシステム構成例を示します。 図 23.2-1 システム構成例 E2PROM MCU F2MC-16LX R プルアップ抵抗 コネクタ(UART) SIN ■ E2PROM メモリマップ E2PROM メモリマップを表 23.2-1 に示します。 表 23.2-1 E2PROM メモリマップ アドレス 意味 0000H 修正プログラム No.0 バイト数 ("0" のとき ROM 修正なし ) 0001H プログラムアドレス No.0 bit7 ~ bit0 0002H プログラムアドレス No.0 bit15 ~ bit8 0003H プログラムアドレス No.0 bit24 ~ bit16 0004H 修正プログラム No.1 バイト数 ("0" のとき ROM 修正なし ) 0005H プログラムアドレス No.1 bit7 ~ bit0 0006H プログラムアドレス No.1 bit15 ~ bit8 0007H プログラムアドレス No.1 bit24 ~ bit16 0010H ~ 修正プログラム No.0/1 本体 <注意事項> E2PROM の初期状態は , すべて "0" とします。 517 第 23 章 アドレス一致検出機能 23.2.1 プログラムミスの修正例 コネクタ (UART) を通して , MCU にパッチプログラムの本体 , およびプログラムア ドレスを転送します。MCU は , その情報を E2PROM に書き込みます。 ■ プログラムミスが発生した場合 図 23.2-2 に , プログラムミスが発生した場合のアドレス一致検出機能処理例を示しま す。 図 23.2-2 アドレス一致検出機能処理例 MB90420G/425Gシリーズ FFFFFFH ③ 異常プログラム ROM 外付けE2PROM PC ① 発生アドレス ∥ アドレス一致 検出機能用 レジスタ設定 ○プログラムバイト数 ○割込み発生アドレス ○修正プログラム UARTを使用してデータ転送 ② RAM 000000H 518 修正プログラム 第 23 章 アドレス一致検出機能 23.2.2 修正処理例 MCU は , リセット後 E2PROM の値を読み出し , パッチプログラムのバイト数が "0" でないときは , パッチプログラムの本体を読み出して RAM に書き出します。プログ ラムアドレスを PADR0/PADR1 のいずれかに設定して , 動作を許可します。RAM に 書かれたプログラムの先頭番地は , 各アドレス検出レジスタに定められた RAM に保 存します。 この場合 , INT9 サービスルーチンは , このユーザ定義の番地を探して修正プログラ ムにジャンプします。 ■ アドレス一致検出機能処理のフローチャート 図 23.2-3 にアドレス一致検出機能処理のフローチャートを示します。 図 23.2-3 アドレス一致検出機能処理フローチャート リセット INT 9 E2PROMの00Hを読み出す YES 0000H(E2PROM)=0 NO 修正プログラムへ JMP 000400H アドレスを読み出す 0001H~0003H(E2PROM) ↓MOV PADR0(MCU) 修正プログラム実行 000400H~000480H 修正プログラムを読み出す 0010H~0090H(E2PROM) ↓MOV 000400H~000480H(MCU) 修正プログラム終了 JMP FF0050H コンペア処理をイネーブル MOV PACSR,#02H 通常プログラム実行 PC=PADR0 NO YES INT 9 519 第 23 章 アドレス一致検出機能 図 23.2-4 アドレス一致検出機能処理図 FFFFFFH ROM FF0050H FF0000H E2PROM FFFFH MB90420G/425Gシリーズ 異常プログラム FE0000H 0090H 修正プログラム 0010H 001100H スタック領域 0003H 0002H 0001H 0000H プログラムアドレス下位:00 プログラムアドレス中位:00 プログラムアドレス上位:00 修正プログラムバイト数:80 000480H RAM 000400H 000100H 000000H RAM領域 パッチプログラム RAM/レジスタ領域 I/O領域 ■ INT9 割込み 割込みルーチン中では , どのアドレス検出で割込みがかかったかをスタックに退避さ れた PC の値より判断し , 対応するプログラムへ分岐します。割込みでスタックされた 情報は廃棄します。 520 第 24 章 ROM ミラー機能 選択モジュール この章では , ROM ミラー機能選択モジュールにつ いて説明します。 24.1 ROM ミラー機能選択モジュールの概要 24.2 ROM ミラー機能選択レジスタ (ROMM) 521 第 24 章 ROM ミラー機能 選択モジュール 24.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールは , ROM が配置されている FF バンクが 00 バンク でみることを , レジスタの設定で選択することができます。 ■ ROM ミラー機能選択モジュールのレジスタ 図 24.1-1 に ROM ミラー機能選択モジュールのレジスタのビット構成を示します。 図 24.1-1 ROM ミラー機能選択モジュールのレジスタのビット構成 bit アドレス : 00006FH 読出し / 書込み→ 初期値→ 15 14 13 12 11 10 9 8 - - - - - - - MI (W) (1) ROMM ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 24.1-2 に ROM ミラー機能選択モジュールのブロックダイヤグラムを示します。 図 24.1-2 ROM ミラー機能選択モジュールのブロックダイヤグラム 内部データバス ROMミラー機能選択レジスタ アドレス領域 FFバンク ROM 522 00バンク 第 24 章 ROM ミラー機能 選択モジュール 24.2 ROM ミラー機能選択レジスタ (ROMM) ROM ミラー機能選択レジスタ (ROMM) は , アドレス 004000H ~ 00FFFFH 番地の 使用中にアクセスしないでください。 ■ ROM ミラー機能選択レジスタ (ROMM) 図 24.2-1 に ROM ミラー機能選択レジスタ (ROMM) のビット構成を示します。 図 24.2-1 ROM ミラー機能選択レジスタ (ROMM) のビット構成 bit アドレス : 00006FH 読出し / 書込み→ 初期値→ 15 14 13 12 11 10 9 8 - - - - - - - MI (W) (1) ROMM 【bit8】MI "1" を書込み時には , FF バンクの ROM のデータが 00 バンクでも読み出せるように なります。"0" を書込み時には , 00 バンクではこの機能は働きません。 このビットは , 書込みのみ可能です。 <注意事項> ROM ミラー機能を起動している場合 , 00 バンクの "004000H ~ 00FFFFH" 番地へ , "FF4000H ~ FFFFFFH" 番地がミラーされますので , "FF3FFFH" 番地以下の ROM アドレスでは , ROM のミラー機能を設定しても 00 バンクにミラーされません。 ■ メモリ空間 図 24.2-2 にメモリ空間を示します。 図 24.2-2 メモリ空間 ROM領域 ROM領域 ROM領域 RAM領域 RAM領域 I/O領域 I/O領域 内部領域 523 第 24 章 ROM ミラー機能 選択モジュール 524 第 25 章 1M ビットフラッシュメモリ この章では , 1M ビットフラッシュメモリの機能や 動作について説明します。 フラッシュメモリへのデータ書込み / 消去の方法に は , 下記の 3 とおりの方法があります。 • パラレルライタ • シリアル専用ライタ • プログラム実行による書込み / 消去 ここでは , " プログラム実行による書込み / 消去 " について解説します。 25.1 1M ビットフラッシュメモリの概要 25.2 フラッシュメモリ全体のブロックダイヤグラムとセク タ構成 25.3 書込み / 消去モード 25.4 フラッシュメモリコントロールステータスレジスタ (FMCS) 25.5 フラッシュメモリ自動アルゴリズム起動方法 25.6 自動アルゴリズム実行状態の確認 25.7 フラッシュメモリ書込み / 消去の詳細説明 25.8 フラッシュメモリの使用上の注意 25.9 1M ビットフラッシュメモリのプログラム例 525 第 25 章 1M ビットフラッシュメモリ 25.1 1M ビットフラッシュメモリの概要 1M ビットフラッシュメモリは , CPU メモリマップ上の FE ~ FF バンクに配置され , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU から の読出しアクセスおよびプログラムアクセスが可能です。フラッシュメモリへの書込 み / 消去は , フラッシュメモリインタフェース回路を介して , CPU からの命令実行に より行えます。このため , 内蔵 CPU の制御による実装状態での書換えが可能となり , プログラムおよびデータの改善が効率よく行えます。 なお , イネーブルセクタプロテクトなどのセレクタオペレーションは使用できません。 ■ 1M ビットフラッシュメモリの特長 • 128K ワード× 8 ビット /64K ワード× 16 ビット (16K+8K+8K+32K+64K) セクタ構成 • 自動プログラムアルゴリズム (Embedded AlgorithmTM*:MBM29F400TA と同様 ) • 消去一時停止 / 消去再開機能の搭載 • データポーリング , トグルビットによる書込み / 消去完了検出 • CPU 割込みによる書込み / 消去の完了検出 • 書込み / 消去回数 ( 最小 ) 10,000 回 • JEDEC 標準型コマンドと互換 • セクタごとの消去が可能 ( セクタ組合せ自由 ) • セクタ保護機能 • 一時的セクタ保護解除機能 • オートマチックスリープモード機能 • フラッシュメモリインタフェース回路搭載により , フラッシュメモリの書込み / 消 去がライタによる外部端子からの制御およびCPUによる内部バスからの制御のいず れかを選択可能 * : Embedded Algorithm は Advanced Micro Devices 社の商標です。 ■ フラッシュメモリ書込み / 消去の方法 フラッシュメモリは , 書込み / 消去と読出しを同時に行うことはできません。すなわち , フラッシュメモリにデータ書込み/消去動作を行う際には, フラッシュメモリ上にあるプ ログラムを RAM にいったんコピーし , RAM 実行することによってフラッシュメモリか らプログラムアクセスをせず , 書込み動作だけを行うことが可能となります。 ■ フラッシュメモリのレジスタ 図 25.1-1 にフラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成 を示します。 図 25.1-1 フラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成 bit アドレス : 0000AEH 読出し / 書込み→ 初期値→ 526 7 6 5 4 3 2 1 0 INTE RDYINT WE RDY LPM1 (R/W) (0) (R/W) (0) (R) (1) 予約 (W) (0) LPM0 (R/W) (0) 予約 (R/W) (0) (W) (0) (W) (0) 第 25 章 1M ビットフラッシュメモリ 25.2 フラッシュメモリ全体のブロックダイヤグラムとセク タ構成 フラッシュメモリインタフェース回路付きのフラッシュメモリの全体ブロックダイ ヤグラム , フラッシュメモリのセクタ構成について説明します。 ■ フラッシュメモリ全体のブロックダイヤグラム 図 25.2-1 にフラッシュメモリ全体のブロックダイヤグラムを示します。 図 25.2-1 フラッシュメモリ全体のブロックダイヤグラム フラッシュメモリ インタフェース回路 ポート0 ポート3 ポート4 COM2~COM3 SEG0~SEG11 BYTE F2MC-16LX バス INT 1Mビットフラッシュメモリ BYTE CE CE OE OE WE WE AQ0~AQ18 AQ0~AQ17 AQ-1 DQ0~AQ15 DQ0~DQ15 RY/BY RY/BY RESET ライトイネーブル 割込み信号(対CPU) 外部リセット信号 RY/BY ライト イネーブル信号 527 第 25 章 1M ビットフラッシュメモリ ■ 1M ビットフラッシュメモリのセクタ構成 図 25.2-2 に , 1M ビットフラッシュメモリのセクタ構成を示します。図中アドレスには , 各セクタの上位アドレスと下位アドレスを示します。 CPU からアクセスする場合 , FE バンクレジスタに SA0, FF バンクレジスタに SA1 ~ SA6 が配置されています。 図 25.2-2 1M ビットフラッシュメモリのセクタ構成 フラッシュメモリ CPUアドレス ライタアドレス* FFFFFFH 7FFFFH FFC000H FFBFFFH 7C000H 7BFFFH SA4(16Kバイト) SA3( 8Kバイト) FFA000H 7A000H FF9FFFH 79FFFH FF8000H FF7FFFH 78000H 77FFFH FF0000H FEFFFFH 70000H 6FFFFH FE0000H 60000H SA2( 8Kバイト) SA1(32Kバイト) SA0(64Kバイト) *:ライタアドレスとは,フラッシュメモリにパラレルライタで データ書込みを行う際,CPUアドレスに対して相当するアドレ スです。汎用ライタを使用して書込み/消去を行う際は,この アドレスで書込み/消去を実行します。 528 第 25 章 1M ビットフラッシュメモリ 25.3 書込み / 消去モード フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの 異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み / 消去ができ , その他モードでは , 内部バスを介して CPU から書込み / 消去ができま す。モードの選択は , モード外部端子で行います。 ■ フラッシュメモリモード リセット信号が発生中にモード端子を "111" にセットすると , CPU が停止します。フ ラッシュメモリインタフェース回路は直接ポート0, 2, 3, 4に接続されているので, 外部 端子から直接制御することができます。このモードでは , MCU が外部端子中の標準フ ラッシュメモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去ができます。 フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる すべての動作を使用できます。 ■ その他モード フラッシュメモリは , CPU メモリ空間の FE, FF バンクに配置されており , 通常のマス ク ROM と同様にフラッシュメモリインタフェース回路を介して , CPU から読出しアク セスおよびプログラムアクセスすることができます。 フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して , CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん だ付けされていても再書込みが可能です。 これらのモードでは , セクタプロテクト動作を実行することはできません。 529 第 25 章 1M ビットフラッシュメモリ ■ フラッシュメモリの制御信号 表 25.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。 フラッシュメモリ制御信号と MBM29F400TA の外部端子にはほぼ 1 対 1 の対応関係が 存在します。セクタプロテクト動作で必要となる VID (12V) 端子は , MBM29F400TA に おける A9, RESET, OE の代わりに , MD0, MD1, MD2 となります。 MB90F428G/MB90F423Gのメモリ容量はMBM29F400TAの4分の1ですので, MBM29F400TA のアドレス信号 A17 と A16 に対応する AQ18 と AQ17 端子は冗長となります。これら は常に "1" にセットしてください。 フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ トのアクセスしか許可されません。DQ15 ~ DQ8 はサポートされていません。BYTE 端子は常に "0" にセットしてください。 表 25.3-1 フラッシュ制御信号 MB90F428G/MB90F423G 通常機能 フラッシュメモリ モード MBM29F400TA 端子番号 1~8 COM2, COM3, SEG0 ~ SEG5 AQ0 ~ AQ7 A-1, A0 ~ A6 9 SEG6 AQ16 A15 10 SEG7 CE CE 12 SEG8 OE OE 13 SEG9 WE WE 14, 15 SEG10, SEG11 AQ17, AQ18 A16, A17 16 P36 BYTE BYTE 17 P37 RY/BY RY/BY 18 ~ 22 P40 ~ P44 AQ8 ~ AQ12 A7 ~ A11 24 ~ 26 P45 ~ P47 AQ13 ~ AQ15 A12 ~ A14 49 MD0 MD0 A9 (VID) 50 MD1 MD1 RESET (VID) 51 MD2 MD2 OE (VID) 85 ~ 92 P00 ~ P07 DQ0 ~ DQ7 DQ0 ~ DQ7 77 RST RESET RESET 未サポート 530 DQ8 ~ DQ15 第 25 章 1M ビットフラッシュメモリ 25.4 フラッシュメモリコントロールステータスレジスタ (FMCS) フラッシュメモリコントロールステータスレジスタ (FMCS) は , フラッシュメモリ インタフェース回路にあるレジスタで , フラッシュメモリの書込み / 消去の際に使用 します。 ■ フラッシュメモリコントロールステータスレジスタ (FMCS) 図 25.4-1 にフラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成 を示します。 図 25.4-1 フラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成 bit アドレス : 0000AEH 読出し / 書込み→ 初期値→ 7 6 5 4 3 2 1 0 INTE (R/W) (0) RDYINT WE (R/W) (0) RDY (R) (1) 予約 (W) (0) LPM1 (W) (0) 予約 (W) (0) LPM0 (R/W) (0) (R/W) (0) 【bit7】INTE (INTerrupt Enable) フラッシュメモリの書込み / 消去の終了で , CPU に割込みを発生させるビットです。 INTE ビットが "1" でかつ RDYINT ビットが "1" のときに , CPU へ割込みが発生し ます。INTE ビットが "0" であれば , 割込みは発生しません。 • 0: 書込み / 消去終了での割込み禁止 • 1: 書込み / 消去終了での割込み許可 【bit6】RDYINT (ReaDY INTerrupt) フラッシュメモリの動作状態を表すビットです。 フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書 込み / 消去後 , このビットが "0" の間は , フラッシュメモリへの書込み / 消去はでき ません。書込み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み / 消去が可能になります。 "0" 書込みによって "0" にクリアされ , "1" の書込みは無視されます。フラッシュメ モリ自動アルゴリズム (「25.5 フラッシュメモリ自動アルゴリズム起動方法」を参 照 ) 終了タイミングで , "1" にセットされます。リードモディファイライト (RMW) 命令使用時は , 必ず "1" が読めます。 • 0: 書込み / 消去動作実行中 • 1: 書込み / 消去動作終了 ( 割込み要求発生 ) 【bit5】WE (Write Enable) フラッシュメモリ領域への書込みイネーブルビットです。 このビットが "1" のとき , FE ~ FF バンクへのコマンドシーケンス (「25.5 フラッ シュメモリ自動アルゴリズム起動方法」を参照 ) 発行後の書込みは , フラッシュメ モリ領域への書込みになります。本ビットが "0" のとき , 書込み / 消去の信号は発生 されません。このビットは , フラッシュメモリの書込み / 消去のコマンドを起動す る際に使用します。 書込み / 消去をしないときは , 誤ってフラッシュメモリにデータを書き込まないよ 531 第 25 章 1M ビットフラッシュメモリ う , 常に "0" に設定することを推奨します。 • 0: フラッシュメモリ書込み / 消去禁止 • 1: フラッシュメモリ書込み / 消去許可 【bit4】RDY (ReadDY) フラッシュメモリの書込み / 消去許可ビットです。 このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。なお , この状態でも読出し / リセットコマンド , セクタ消去一時停止は受け付けられます。 • 0: 書込み / 消去動作実行中 • 1: 書込み / 消去動作終了 ( 次データ書込み / 消去許可 ) 【bit3, bit1】予約ビット 試験用予約ビットです。通常使用時は , 必ず "0" に設定してください。 【bit2, bit0】LPM1, LPM0 (Low Power Mode) フラッシュメモリアクセス時のフラッシュメモリ本体の消費電流を制御します。た だし , CPU からフラッシュメモリへのアクセスタイムが設定により大きく異なりま すので , CPU の動作周波数により設定値を選択してください。 • 01: 低電力消費モード ( 内部動作周波数 4MHz 以下で動作 ) • 10: 低電力消費モード ( 内部動作周波数 8MHz 以下で動作 ) • 11: 低電力消費モード ( 内部動作周波数 10MHz 以下で動作 ) • 00: 通常消費電力モード ( 内部動作周波数 16MHz 以下で動作 ) <注意事項> RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで判定す るよう , プログラムを作成してください。 ■ 自動アルゴリズム終了タイミング 図 25.4-2 に自動アルゴリズム終了タイミングと RDYINT および RDY ビットの関係を 示します。 図 25.4-2 自動アルゴリズム終了タイミングと RDYINT および RDY ビットの関係 自動アルゴリズム 終了タイミング RDYINTビット RDYビット 1マシンサイクル 532 第 25 章 1M ビットフラッシュメモリ フラッシュメモリ自動アルゴリズム起動方法 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 - - - - PD (word) - - - - XXAA Fx5554 XX55 FxAAAA XX10 XX55 SA (even) XX30 書込み プログラム 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXA0 PA (even) チップ消去 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA セクタ消去 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 セクタ消去一時停止 Address"FxXXXX"Data (xxB0H) の入力で , セクタ消去中の消去一時停 止 セクタ消去再開 Address"FxXXXX"Data (xx30H) の入力で , セクタ消去中の消去一時停 止後 , 消去開始 ( 注意事項 ) ・表中のアドレス Fx は , FF, FE を意味します。それぞれの操作時にはアクセス対象バンクの値としてください。 ・表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。ただし , "X" は任意の値です。 ・RA: 読出しアドレス ・PA: 書込みアドレス ・SA: セクタアドレス , 「25.2 フラッシュメモリ全体のブロックダイヤグラムとセクタ構成」「■ 1M ビットフラッシュメモリのセクタ構成」を 参照してください。 ・RD: 読出しデータ ・PD: 書込みデータ , ワードデータのみ指定可 *:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットすることができます。 533 第 25 章 1M ビットフラッシュメモリ 25.6 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内 蔵フラッシュメモリの動作状態の確認ができます。 ■ ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは , DQ7, DQ6, DQ5, DQ3 の 4 ビットの出力で構成され ます。それぞれがデータポーリングフラグ (DQ7) , トグルビットフラグ (DQ6) , タイミ ングリミット超過フラグ (DQ5) , セクタ消去タイマフラグ (DQ3) の機能を持ちます。こ れにより , 書込み / チップセクタ消去終了 , 消去コード書込みが有効かの確認をするこ とができます。 ハードウェアシーケンスフラグを参照するには , コマンドシーケンス ( 表 25.5-1 を参照 ) 設定後にフラッシュメモリ内部の対象セクタのアドレスに読出しアクセスすることで参 照できます。表 25.6-1 にハードウェアシーケンスフラグのビット割当てを示します。 表 25.6-1 ハードウェアシーケンスフラグのビット割当て ビット No. ハードウェア シーケンスフラグ 7 6 5 4 3 2 1 0 DQ7 DQ6 DQ5 - DQ3 - - - 自動書込み / チップセクタ消去が実行中であるかの判断は , ハードウェアシーケンスフ ラグを確認するか , フラッシュメモリコントロールステータスレジスタ (FMCS) の RDY ビットを確認することで , 書込みが終了しているかを知ることができ , 書込み / 消 去終了後は , 読出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれかのフラグで自動書込み / 消去終了を確認後に , データの読出しなどの次処理を 行ってください。また , 2 回目以降のセクタ消去コード書込みが有効であるかも , ハー ドウェアシーケンスフラグによって確認することができます。次項に各ハードウェア シーケンスフラグについて説明します。表 25.6-2 に , ハードウェアシーケンスフラグ 機能の一覧を示します。 表 25.6-2 ハードウェアシーケンスフラグ機能一覧 状態 書込み動作→書込み完了 ( 書込みアドレス指定時 ) 正常動作時 の状態変化 異常動作 534 チップセクタ消去動作 →消去完了 セクタ消去ウェイト→消去開始 消去動作→セクタ消去一時停止 ( 消去中のセクタ ) セクタ消去一時停止→消去再開 ( 消去中のセクタ ) セクタ消去一時停止中 ( 消去中でないセクタ ) 書込み動作 チップセクタ消去動作 DQ7 DQ6 DQ5 DQ3 DQ7 → DATA:7 Toggle → DATA:6 Toggle → Stop Toggle Toggle →1 1 → Toggle 0 → DATA:5 0 → DATA:3 0→1 1 0 0→1 0 1→0 0 0→1 DATA:7 DATA:6 DATA:5 DATA:3 DQ7 0 Toggle 1 0 Toggle 1 1 0→1 0 0→1 1→0 第 25 章 1M ビットフラッシュメモリ データポーリングフラグ (DQ7) 25.6.1 データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中または終了状態 であることをデータポーリング機能によって知らせるためのフラグです。 ■ データポーリングフラグ (DQ7) 表 25.6-3 , 表 25.6-4 に , データポーリングフラグの状態遷移を示します。 表 25.6-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 書込み動作 →完了 チップセク タ消去 →完了 DQ7 DQ7 → DATA:7 0→1 セクタ消去 セクタ消去 セクタ消去 セクタ消去一時停止 一時停止中 ウェイト →消去一時停止消 →再開 消去中でない →開始 去中のセクタ 消去中のセクタ セクタ 0 0→1 1→0 DATA:7 表 25.6-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップセクタ 消去動作 DQ7 DQ7 0 ● 書込み動作時 自動書込みアルゴリズム実行中に読出しアクセスすると , フラッシュメモリはアドレ スの指し示す番地によらず, 最後に書き込まれたデータのビット7の反転データを出力 します。自動書込みアルゴリズム終了時に読出しアクセスすると , フラッシュメモリは アドレスの指し示す番地の読出し値のビット 7 を出力します。 ● チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク タから , チップ消去時はアドレスの指し示す番地に関係なく読出しアクセスすると , フ ラッシュメモリは "0" を出力します。同様に , 終了時には "1" を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス の指し示す番地の読出し値のビット 7 (DATA:7) を出力します。トグルビットフラグ (DQ6) とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去 中であるかの判定が可能です。 <注意事項> 自動アルゴリズム起動時は , 指定したアドレスへの読出しアクセスは無視されます。デー タの読出しは , データポーリングフラグ (DQ7) の終了を受けて , ほかのビットの出力が可 能となります。このため , 自動アルゴリズム終了後のデータの読出しは , データポーリン グ終了を確認した読出しアクセスの次に行うようにしてください。 535 第 25 章 1M ビットフラッシュメモリ 25.6.2 トグルビットフラグ (DQ6) トグルビットフラグ (DQ6) は , データポーリングフラグ (DQ7) と同様に , 主に自動 アルゴリズム実行が進行中または終了状態であることをトグルビット機能によって 知らせるためのフラグです。 ■ トグルビットフラグ (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" を交互に出力するトグル状態を出力します。自動書込みアルゴリズム およびチップ / セクタ消去アルゴリズム終了時に連続した読出しアクセスを行うとフ ラッシュメモリはビット6のトグル動作を止め, アドレスの指し示す番地の読出し値の ビット 6 (DATA:6) を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタに属するならば , "1" を出力します。消去中のセクタに属さ なければ , アドレスの指し示す番地の読出し値のビット 6 (DATA:6) を出力します。 <参考> 書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約 2 μs のトグル動作をした後 , データを書き換えることなくトグル動作を終わります。 消去の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビットは約 100 μs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻りま す。 536 第 25 章 1M ビットフラッシュメモリ 25.6.3 タイミングリミット超過フラグ (DQ5) タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ グです。 ■ タイミングリミット超過フラグ (DQ5) 表 25.6-7 と表 25.6-8 に , タイミングリミット超過フラグの状態遷移を示します。 表 25.6-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 書込み動作 →完了 チップセク タ消去 →完了 セクタ消去 ウェイト →開始 セクタ消去 →消去一時停止 消去中のセクタ セクタ消去一時 停止 →再開 消去中のセクタ セクタ消去 一時停止中 消去中でない セクタ DQ5 0 → DATA:5 0→1 0 0 0 DATA:5 表 25.6-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップセクタ 消去動作 DQ5 1 1 ● 書込み / チップセクタ消去時 書込みまたはチップセクタ消去自動アルゴリズム起動後に読出しアクセスすると , 規 定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい る場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるかと は無関係なので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが "1" を出力したとき , データポーリング機能またはトグルビット機能によ り自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断することが できます。 例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする と , フェイルが発生します。この場合フラッシュメモリはロックされ , 自動アルゴリズ ムは終了しません。まれに "1" が書き込めたように , 正常終了する場合もあります。し たがって , データポーリングフラグ (DQ7) から有効なデータが出力されません。また , トグルビットフラグ (DQ6) はトグル動作を止めずタイムリミットを超え , タイミング リミット超過フラグ (DQ5) は "1" を出力します。この状態は , フラッシュメモリが不良 なのではなく , 正しく使用されなかったということを表しています。この状態が発生し たときは , リセットコマンドを実行してください。 537 第 25 章 1M ビットフラッシュメモリ 25.6.4 セクタ消去タイマフラグ (DQ3) セクタ消去タイマフラグは , セクタ消去コマンド起動後 , セクタ消去ウェイト期間中 であるか否かを知らせるフラグです。 ■ セクタ消去タイマフラグ (DQ3) 表 25.6-9 と表 25.6-10 に , セクタ消去タイマフラグの状態遷移を示します。 表 25.6-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 書込み動作 →完了 チップセク タ消去 →完了 セクタ消去 ウェイト →開始 セクタ消去 →消去一時停止 消去中のセクタ セクタ消去一時 停止 →再開 消去中のセクタ セクタ消去 一時停止中 消去中でない セクタ DQ3 0 → DATA:3 1 0→1 1→0 0→1 DATA:3 表 25.6-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップセクタ 消去動作 DQ3 0 1 ● セクタ消去動作時 セクタ消去コマンド起動後に読出しアクセスすると , フラッシュメモリはコマンドを 発行したセクタのアドレス信号の指し示す番地によらず , セクタ消去ウェイト期間中 であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合は "1" を出力しま す。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて のセクタ消去コードの書込みまたは消去一時停止以外のコマンドは , 消去が終了され るまで無視されます。 このフラグが "0" であれば , フラッシュメモリは追加のセクタ消去コードの書込みを 受け付けます。このことを確認するために , 引き続くセクタ消去コードの書込みに先 立ち , このフラグの状態をチェックすることを推奨します。もし , 2 回目の状態チェッ クで "1" であったなら , 追加セクタの消去コードは受け付けられていない可能性があ ります。 ● セクタ消去一時停止時 セクタ消去一時停止中に読出しアクセスすると , フラッシュメモリはアドレスの指し 示す番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さ ないのであれば , アドレスの指し示す番地の読出し値のビット 3 (DATA:3) を出力しま す。 538 第 25 章 1M ビットフラッシュメモリ 25.7 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止およびセクタ消去再開の それぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細 フラッシュメモリは , 読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止およびセクタ消去再開の動作がコマンドシーケンス (表 25.5-1 を参照) のバス への書込みサイクルを行うことで自動アルゴリズムを実行することができます。それ ぞれのバスへの書込みサイクルは必ず続けて行う必要があります。また , 自動アルゴリ ズムはデータポーリング機能などで終了時を知ることができます。正常終了後は , 読出 し / リセット状態に戻ります。 各動作について , 次項より下記の順に示します。 • 読出し / リセット状態にする • データを書き込む • 全データを消去する ( チップ全消去 ) • 任意のデータを消去する ( セクタ消去 ) • セクタ消去を一時停止する • セクタ消去を再開する 539 第 25 章 1M ビットフラッシュメモリ 25.7.1 フラッシュメモリを読出し / リセット状態にする 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリを読出し / リセット状態にする フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 ( 表 25.51 を参照 ) の読出し / リセットコマンドを , フラッシュメモリ内の対象セクタに続けて 送ることで実行できます。 読出し / リセットコマンドには , 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し / リセット状態では , 通常の読出しアクセスでデータを読み出すことができま す。マスク ROM と同様に , CPU からのプログラムアクセスが可能です。通常読出しで のデータ読出しに , このコマンドは必要ありません , 何らかの理由でコマンドが正常に 終了しなかったときなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを 使用します。 540 第 25 章 1M ビットフラッシュメモリ 25.7.2 フラッシュメモリへデータを書き込む 書込みコマンドを発行し , フラッシュメモリへデータを書き込む手順について説明 します。 ■ フラッシュメモリへデータを書き込む フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表 ( 表 25.5-1 を参照 ) の書込みコマンドを , フラッシュメモリ内の対象セクタに続 けて送ることで実行できます。4 サイクル目に目的のアドレスへのデータ書込みが終了 した時点で , 自動アルゴリズムが起動され , 自動書込みが開始します。 ● アドレス指定方法 書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが , 1 回の書込みコマンドによって書き込まれるデータは , 1 ワードのみです。 ● データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ"1"を書き込むと, データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が 終了せず , フラッシュメモリ素子が不良と判定されて , 書込み規定時間を超えタイミン グリミット超過フラグ (DQ5) がエラーと判定するかまたは見かけ上データ "1" が書き 込まれたように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデー タを読み出すと , データは "0" のままです。消去動作のみが "0" データを "1" にするこ とができます。 自動書込み実行中は , すべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意 が必要です。 ■ フラッシュメモリ書込み手順 図 25.7-1 にフラッシュメモリ書込みの手順の例を示します。ハードウェアシーケンス フラグ (「25.6 自動アルゴリズム実行状態の確認」を参照 ) を用いることでフラッシュ メモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了の確認に データポーリングフラグ (DQ7) を用いています。 フラグチェックのために読み出すデータは , 最後に書込みを行ったアドレスからの読 出しとなります。 データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変 わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であっても , データポー リングフラグビット (DQ7) は再チェックする必要があります。 トグルビットフラグ (DQ6) でも同様に , タイミングリミット超過フラグビット (DQ5) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再 チェックする必要があります。 541 第 25 章 1M ビットフラッシュメモリ 図 25.7-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS:WE(bit5) フラッシュメモリ 書込み許可 書込みコマンドシーケンス ① FxAAAA←XXAA ② Fx5554←XX55 ③ FxAAAA←XXA0 ④ 書込みアドレス←書込みデータ 内部アドレスリード データポーリング (DQ7) 次アドレス Data Data 0 タイミングリミット (DQ5) 1 内部アドレスリード Data データポーリング (DQ7) Data 書込みエラー 最終アドレス N Y FMCS:WE(bit5) フラッシュメモリ 書込み禁止 ハードウェアシーケンス フラグによる確認 書込み完了 542 第 25 章 1M ビットフラッシュメモリ 25.7.3 フラッシュメモリの全データを消去する ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい て説明します。 ■ フラッシュメモリのデータを消去する ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 ( 表 25.5-1 を参照 ) のチップ消去コマンドを , フラッシュメモリ内の対象セクタに送ること で実行できます。 チップ消去コマンドは , 6 回のバス動作で行われます。6 サイクル目の書込みが完了し た時点で , チップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッ シュメモリに書き込む必要はありません。自動消去アルゴリズム実行中には , フラッ シュメモリはすべてのセルを消去する前に自動的に "0" を書き込んで検証します。 543 第 25 章 1M ビットフラッシュメモリ 25.7.4 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ 消去 ) 手順について説明します。セクタごとの消去ができ , 複数のセクタを同時に指 定することもできます。 ■ フラッシュメモリの任意のデータを消去する ( セクタ消去 ) フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表 ( 表 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) と 同時に変わるので , データポーリングフラグを再チェックする必要があります。 544 第 25 章 1M ビットフラッシュメモリ 図 25.7-2 フラッシュメモリのセクタ消去手順の例 消去開始 FMCS:WE(bit5) フラッシュメモリ消去許可 消去コマンドシーケンス ① FxAAAA←XXAA ② Fx5554←XX55 ③ FxAAAA←XX80 ④ FxAAAA←XXAA ⑤ Fx5554←XX55 ⑥消去セクタへコード入力(30H) YES 消去セクタがほかにあるか NO 内部アドレスリード1 内部アドレスリード2 次セクタ NO YES トグルビット(DQ6) データ1(DQ6)=データ2(DQ6) セクタ消去終了 YES NO 0 タイミングリミット (DQ5) 1 内部アドレスリード1 内部アドレスリード2 NO トグルビット(DQ6) データ1(DQ6)=データ2(DQ6) YES 消去エラー 最終セクタ NO YES FMCS:WE(bit5) フラッシュメモリ消去禁止 消去完了 ハードウェアシーケンス フラグによる確認 545 第 25 章 1M ビットフラッシュメモリ 25.7.5 フラッシュメモリのセクタ消去を一時停止する セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタから , データを読み出すことが 可能です。 ■ フラッシュメモリのセクタ消去を一時停止する フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 ( 表 25.5-1 を参照) のセクタ消去一時停止コマンドを, フラッシュメモリ内に送ることで実行でき ます。 セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で , 書込 みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 セクタ消去の一時停止は , 消去一時停止コード (B0H) を書き込むことで実施されます が , このときアドレスはフラッシュメモリ内の任意のアドレスを指すようにします。消 去一時停止での再度の消去一時停止コマンドは無視されます。 セクタ消去ウェイト期間中に, セクタ消去一時停止コマンドが入力されると, 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消 去ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20 μs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セ クタ消去コマンドあるいはセクタ消去再開コマンド発行後 , 20 μs 以上後に行ってくだ さい。 546 第 25 章 1M ビットフラッシュメモリ 25.7.6 フラッシュメモリのセクタ消去を再開する セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリのセクタ消去を 再開する手順について説明します。 ■ フラッシュメモリのセクタ消去を再開する 一時停止したセクタ消去を再開させるには , コマンドシーケンス表 ( 表 25.5-1 を参照 ) のセクタ消去再開コマンドを , フラッシュメモリ内に送ることで実行できます。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態から , セクタ消去を再開するためのコマンドです。このコマンドは , 消去再開コー ド (30H) を書き込むことで実施されますが , このときのアドレスは , フラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 547 第 25 章 1M ビットフラッシュメモリ 25.8 フラッシュメモリの使用上の注意 フラッシュメモリの使用上に関する注意を以下に示します。 ■ フラッシュメモリの使用上の注意 ● ハードウェアリセット (RST) の入力 読出し中で自動アルゴリズムが起動していないときに , ハードウェアリセットを入力 するには , "L" レベル幅として最低 500ns をとる必要があります。 この場合 , ハードウェ アリセット起動後フラッシュメモリからデータを読み出すまでに , 最低 500ns が必要と なります。同様に , 書込み / 消去中で自動アルゴリズムが起動しているときに , ハード ウェアリセットを入力するには , "L" レベル幅として最低 50ns をとる必要があります。 この場合 , フラッシュメモリを初期化するために実行中の動作を停止した後データを 読み出すまでに , 20 μs が必要となります。 書込み中にハードウェアリセットすると , 書き込まれているデータは不定となります。 消去中にハードウェアリセットすると , 消去されているセクタは使用不可となる可能 性があります。 ● ソフトウェアリセット , ウォッチドッグタイマリセット , ハードウェアスタンバイの取消し CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ 状態のときリセット条件が発生した場合 , CPU が暴走する可能性があります。それは , これらのリセット条件により , フラッシュメモリユニットが初期化されずに自動アル ゴリズムが続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメ モリユニットが読出し状態になることが妨げられる可能性があるためです。これらの リセット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要がありま す。 ● フラッシュメモリへのプログラムアクセス 自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。 CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム 領域を RAM などの別の領域に切り換えた後 , 書込み / 消去を開始する必要があります。 この場合 , 割込みベクタを含むセクタ (SA6) が消去されると , 書込み / 消去割込み処理 を実行できません。 同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込 みソースは無効となります。 ● ホールド機能 CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求 の受付けが許可 (EPCR の HDE ビットが "1" をセット ) されたとき , コントロールス テータスレジスタ (FMCS) の WE ビットが必ず "0" になっているようにしてください。 ● 拡張インテリジェント I/O サービス (EI2OS) フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは , EI2OS には受付け不可であり , 使用できません。 ● VID の適用 セクタプロテクト動作に必要な VID の適用は , 供給電圧が "ON" のとき常に開始し , 終 了する必要があります。 548 第 25 章 1M ビットフラッシュメモリ 25.9 1M ビットフラッシュメモリのプログラム例 ここでは , 1M ビットフラッシュメモリのプログラム例を掲載します。 ■ 1M ビットフラッシュメモリのプログラム例 NAME FLASHWE TITLE FLASHWE ;--------------------------------------------------------------------------;1Mbit-FLASH サンプルプログラム ; ;1: FLASH にあるプログラム ( アドレス FFBC00H セクタ SA3) を RAM( アドレス 000700H) に ; 転送する。 ;2: RAM 上でプログラムを実行する。 ;3: PDR1 の値を FLASH( アドレス FE0000H セクタ SA0) に書き込む。 ;4: 書き込んだ値 ( アドレス FE0000H セクタ SA0) を読み出し PDR2 に出力する。 ;5: 書き込んだセクタ (SA0) を消去する。 ;6: 消去データ確認の出力条件 ; ・RAM 転送バイト数 : 100H(256B) ; ・書込み , 消去の終了判定 ; DQ5( タイミングリミット超過フラグ ) での判定 ; DQ6( トグルビットフラグ ) での判定 ; RDY(FMCS) での判定 ; ・エラー時の処理 ; P00 ~ P07 に Hi を出力する。 ; リセットコマンド発行 ;------------------------------------------------------------------------------; RESOUS IOSEG ABS=00 ;"RESOUS"I/O セグメントの定義 ORG 0000H PDR0 RB 1 PDR1 RB 1 PDR2 RB 1 PDR3 RB 1 ORG 0010H DDR0 RB 1 DDR1 RB 1 DDR2 RB 1 DDR3 RB 1 ORG 00A1H CKSCR RB 1 ORG 00AEH FMCS RB 1 ORG 006FH ROMM RB 1 RESOUS ENDS ; SSTA SSEG 549 第 25 章 1M ビットフラッシュメモリ STA_T SSTA ; DATA RW RW ENDS 0127H 1 DSEG ABS=0FFH ;FLASH コマンドアドレス ORG 5554H COMADR2 RW 1 ORG 0AAAAH COMADR1 RW 1 DATA ENDS ;///////////////////////////////////////////////////////////// ; メインプログラム (FFA000H) ;///////////////////////////////////////////////////////////// CODE CSEG START: ;///////////////////////////////////////////////////// ; 初期化 ;///////////////////////////////////////////////////// MOV CKSCR, #0BAH ;3 逓倍に設定 MOV RP, #0 MOV A, #!STA_T MOV SSB, A MOVW A, #STA_T MOVW SP, A MOV ROMM, #00H ; ミラー OFF MOV PDR0, #00H ; エラー確認用 MOV DDR0, #0FFH MOV PDR1, #00H ; データ入力用ポート MOV DDR1, #00H MOV PDR2, #00H ; データ出力用ポート MOV DDR2, #0FFH ;////////////////////////////////////////////////////////////// ;RAM(700H 番地 ) に "FLASH 書込み消去プログラム (FFBCOOH)" を転送する ;////////////////////////////////////////////////////////////// MOVW A, #0700H ; 転送先 RAM 領域 MOVW A, #0BC00H ; 転送元アドレス ( プログラムのある位置 ) MOVW RW0, #100H ; 転送するバイト数 MOVS ADB, PCB ;FFBC00H から 000700H へ 100H 転送 CALLP 000700H ; 転送したプログラムのあるアドレスへジャンプ ;///////////////////////////////////////////////////// ; データ出力 ;///////////////////////////////////////////////////// OUT MOV A, #0FEH MOV ADB, A MOVW RW2, #0000H MOVW A, @RW2+00 MOV PDR2, A END JMP * CODE ENDS 550 第 25 章 1M ビットフラッシュメモリ RAMPRG ;//////////////////////////////////////////////////////////// ;FLASH 書込み消去プログラム (SA3) ;//////////////////////////////////////////////////////////// CSEG ABS=0FFH ORG 0BC00H ;//////////////////////////////////////////// ; 初期化 ;//////////////////////////////////////////// MOVW RW0, #0500H ;RW0:入力データ確保用RAM空間 00:0500~ MOVW RW2, #0000H ;RW2:フラッシュメモリ書込みアドレス FD:0000~ MOV A, #00H ;DTB 変更 MOV DTB, A ;@RW0 用バンク指定 MOV A, #0FEH ;ADB 変更 1 MOV ADB, A ; 書込みモード指定アドレス用バンク指定 MOV PDR3, #00H ; スイッチ初期化 MOV DDR3, #00H ; WAIT1 BBC PDR3:0, WAIT1 ;PDR3:0 Hi で書込みスタート ; ;//////////////////////////////////////////////// ; 書込み (SA0) ;//////////////////////////////////////////////// MOV A, PDR1 MOVW @RW0+00, A ;RAM に PDR1 データを確保 MOV FMCS, #20H ; 書込みモード設定 MOVW ADB:COMADR1, #00AAH ; フラッシュ書込みコマンド 1 MOVW ADB:COMADR2, #0055H ; フラッシュ書込みコマンド 2 MOVW ADB:COMADR1, #00A0H ; フラッシュ書込みコマンド 3 ; MOVW A, @RW0+00 ; 入力データ (RW0) をフラッシュメモリ (RW2) MOVW @RW2+00, A WRITE ; 待ち時間チェック ;/////////////////////////////////////////////////////////////////// ; タイムリミット超過チェック - フラグが立ちトグル動作中であるとき ERROR ;/////////////////////////////////////////////////////////////////// MOVW A, @RW2+00 AND A, #20H ;DQ5 タイムリミットチェック BZ NTOW ; タイムリミットオーバー MOVW A, @RW2+00 ;AH MOVW A, @RW2+00 ;AL XORW A ;AH AL の XOR( 値が違えば 1) AND A, #40H ;DQ6 トグルビットは違っているか BNZ ERROR ; 違えば ERROR へ ;/////////////////////////////////////// ; 書込み終了チェック (FMCS-RDY) ;/////////////////////////////////////// NTOW MOVW A, FMCS AND A, #10H ;FMCS RDY ビット (4bit) 抽出 BZ WRITE ; 書込み終了か ? 551 第 25 章 1M ビットフラッシュメモリ MOV FMCS, #00H ; 書込みモード解除 ;///////////////////////////////////////////////////// ; 書込みデータ出力 ;///////////////////////////////////////////////////// MOVW RW2, #0000H ; 書込みデータ出力 MOVW A, @RW2+00 MOV PDR2, A ; WAIT2 BBC PDR3:1, WAIT2 ;PDR3:1 Hi でセクタ消去スタート ; ;///////////////////////////////////////////// ; セクタ消去 (SA0) ;///////////////////////////////////////////// MOV @RW2+00, #0000H ; アドレス初期化 MOV FMCS, #20H ; 消去モード設定 MOVW ADB:COMADR1, #00AAH ; フラッシュ消去コマンド 1 MOVW ADB:COMADR2, #0055H ; フラッシュ消去コマンド 2 MOVW ADB:COMADR1, #0080H ; フラッシュ消去コマンド 3 MOVW ADB:COMADR1, #00AAH ; フラッシュ消去コマンド 4 MOVW ADB:COMADR2, #0055H ; フラッシュ消去コマンド 5 MOV @RW2+00, #0030H ; 消すセクタに消去コマンド発行 6 ELS ; 待ち時間チェック ;/////////////////////////////////////////////////////////////////// ; タイムリミット超過チェック - フラグが立ちトグル動作中であるとき ERROR ;/////////////////////////////////////////////////////////////////// MOVW A, @RW2+00 AND A, #20H ;DQ5 タイムリミットチェック BZ NTOE ; タイムリミットオーバー MOVW A, @RW2+00 ;AH 書込み動作中は , DQ6 から MOVW A, @RW2+00 ;AL 読出しごと Hi Low が交互出力される XORW A ;AH と AL の XOR(DQ6 の値が違えば 1 書込み動作 ; 中である ) AND A, #40H ;DQ6 トグルビットは Hi か BNZ ERROR ;Hi なら ERROR へ ;/////////////////////////////////////// ; 消去終了チェック (FMCS-RDY) ;/////////////////////////////////////// NTOE MOVW A, FMCS ; AND A, #10H ;FMCS RDY ビット (4bit) 抽出 BZ ELS ; セクタ消去終了か ? MOV FMCS, #00H ;FLASH 消去モード解除 RETP ; メインプログラムに戻る ;////////////////////////////////////////////// ; エラー ;////////////////////////////////////////////// ERROR MOV FMCS, #00H ;FLASH モード解除 MOV PDR0, #0FFH ; エラー処理の確認 MOV ADB:COMADR1, #0F0H ; リセットコマンド ( 読出しが可能になる ) RETP ; メインプログラムに戻る 552 第 25 章 1M ビットフラッシュメモリ RAMPRG ENDS ;///////////////////////////////////////////// VECT CSEG ABS=0FFH ORG 0FFDCH DSL START DB 00H VECT ENDS ; END START 553 第 25 章 1M ビットフラッシュメモリ 554 第 26 章 シリアル書込み接続例 この章では , 横河ディジタルコンピュータ株式会社 製 AF220/AF210/AF120/AF110 フラッシュマイコ ンプログラマを用いた場合のシリアル書込みの接 続例について説明します。 26.1 基本構成 26.2 発振クロック周波数とシリアルクロック入力周波数 26.3 フラッシュマイコンプログラマのシステム構成 26.4 シリアル書込み接続例 555 第 26 章 シリアル書込み接続例 26.1 基本構成 MB90F428G/MB90F423G では , フラッシュ ROM のシリアルオンボード書込み ( 富 士通標準 ) をサポートしています。その仕様について以下に説明します。 ■ 基本構成 図 26.1-1 にシリアル書込み接続例の基本構成を示します。 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 フラッシュマイコンプログラマを使用します。 図 26.1-1 シリアル書込み接続例の基本構成 ホストインタフェースケーブル(AZ221) 汎用共通ケーブル(AZ210) RS232C フラッシュ マイコン プログラマ + メモリカード CLK同期シリアル MB90F428G/ MB90F423G ユーザシステム スタンドアロンで動作可能 フラッシュマイコンプログラマ (AF220/AF210/AF120/AF110) の機能・操作方法 , およ び接続用汎用共通ケーブル (AZ210), コネクタについては , 横河ディジタルコンピュー タ株式会社にお問い合わせください。 556 第 26 章 シリアル書込み接続例 ■ 富士通標準シリアルオンボード書込みに使用する端子 表 26.1-1 に使用する端子の機能を示します。 表 26.1-1 使用する端子の機能 端 子 機 能 補足説明 モード端子 MD2=1, MD1=1, MD0=0 に設定することで , シリアル書込みモー ドになります。 X0, X1 発振用端子 シリアル書込みモード時に , CPU 内部動作クロックは PLL ク ロック 1 逓倍になりますので , 内部動作クロック周波数は , 発振 クロック周波数と同様になります。したがって , シリアル書込み をする場合 , 高速発振入力端子に入力可能な周波数は 1MHz ~ 16MHz となります。 P00, P01 書込みプログラム起動端子 P00 に "L" レベル , P01 に "H" レベルを入力してください。 MD2, MD1, MD0 RST リセット端子 SIN1 シリアルデータ入力端子 - SOT1 シリアルデータ出力端子 SCK1 シリアルクロック入力端子 VCC 電源電圧供給端子 書込み電圧 (VCC=5.0V ± 10 %) VSS GND 端子 フラッシュマイコンプログラマの GND と共通にします。 UART1 を CLK 同期モードとして使用します。 図 26.1-2 端子制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F428G/MB90F423G 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ回路 <注意事項> • P00, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 26.1-2 の端 子制御回路が必要となります。 • フラッシュマイコンプログラマの/TICS信号により , シリアル書込み中はユーザ回路を 切り離すことができます。接続例を参照してください。 557 第 26 章 シリアル書込み接続例 26.2 発振クロック周波数とシリアルクロック入力周波数 MB90F428G/MB90F423G の入力可能なシリアルクロック周波数は , 以下の計算式に よって求められます。したがって , ご使用の発振クロック周波数によって , シリアル クロック入力周波数をフラッシュマイコンプログラマの設定によって変更してくだ さい。 ■ 入力可能なシリアルクロック周波数 入力可能なシリアルクロック周波数は , 次式によって計算されます。 表 26.2-1 に計算例を示します。 入力可能なシリアルクロック周波数= 0.125 ×発振クロック周波数 表 26.2-1 シリアルクロック周波数計算例 発振クロック 周波数 マイコンの入力可能な最大 シリアルクロック周波数 AF220/AF210/AF120/AF110 の設定可能な最大シリアル クロック周波数 AF200 の設定可能な最大 シリアルクロック周波数 4MHz 500kHz 500kHz 500kHz 558 第 26 章 シリアル書込み接続例 26.3 フラッシュマイコンプログラマのシステム構成 横河ディジタルコンピュータ株式会社製のフラッシュマイコンプログラマのシステ ム構成を示します。 ■ フラッシュマイコンプログラマのシステム構成 表 26.3-1 にフラッシュマイコンプログラマのシステム構成を示します。 表 26.3-1 フラッシュマイコンプログラマのシステム構成 型 格 AF220/AC4P 本 AF210/AC4P 体 AF120/AC4P AF110/AC4P 機 能 イーサネットインタフェース内蔵モデル /100V ~ 220V 電源アダプタ スタンダードモデル /100V ~ 220V 電源アダプタ 単キー イーサネットインタフェース内蔵モデル /100V ~ 220V 電源アダプタ 単キーモデル /100V ~ 220V 電源アダプタ AZ221 ライタ専用 PC/AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ:1 m FF201 富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P2 2MB PC Card (Option) フラッシュメモリ容量 ~ 128KB 対応 /P4 4MB PC Card (Option) フラッシュメモリ容量 ~ 512KB 対応 問い合わせ先:横河ディジタルコンピュータ株式会社 電話:042-333-6224 <注意事項> AF200フラッシュマイコンプログラマについては終息製品ですが, コントロールモジュー ル FF201 を用いることで対応できます。シリアル書込み接続例に関しても , 「26.4 シリ アル書込み接続例」に示す接続例で対応できます。 559 第 26 章 シリアル書込み接続例 26.4 シリアル書込み接続例 各種モードにおけるシリアル書込み接続例を示します。 ■ シリアル書込み接続例 以下の 4 つの接続例を示します。 • シングルチップモード時の接続例 ( ユーザ電源使用時 ) • シングルチップモード時の接続例 ( フラッシュマイコンプログラマから電源供給時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( フラッシュマイコンプログラマから電源供給時 ) 560 第 26 章 シリアル書込み接続例 ■ シングルチップモード時の接続例 ( ユーザ電源使用時 ) ユーザシステムにおいて , シングルチップモードに設定されているモード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE より MD2=1, MD0=0 が入力 さ れ , シリ ア ル書 込 みモ ー ド にな り ます ( シ リア ル 書込 み モー ド:MD2, MD1, MD0=110)。 図 26.4-1 MB90F428G/MB90F423G シングルチップモード時シリアル書込み接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S (19) MB90F428G/MB90F423G MD2 MD1 TMODE MD0 X0 (12) 4MHz X1 TAUX (23) /TICS (10) P00 ユーザ /TRES (5) RST ユーザ TTXD TRXD TCK (13) (27) (6) TVcc (2) GND P01 SIN1 SOT1 SCK1 Vcc ユーザ電源 (7,8, 14,15, 21,22, 1,28) 3,4,9,11,16,17,18, 20,24,25,26ピン はOPEN DX10-28S:ライトアングルタイプ 14ピン Vss 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 561 第 26 章 シリアル書込み接続例 図 26.4-2 端子制御回路 AF220/AF210/AF120/AF110 書込み制御端子 AF220/AF210/AF120/AF110 /TICS端子 MB90F428G/MB90F423G 書込み制御端子 10kΩ ユーザ回路 <注意事項> • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , P00 と同様 , 図 26.4-2 の端子制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信 号により , シリアル書込み中はユーザ回路を切り離すことができます )。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。 562 第 26 章 シリアル書込み接続例 ■ シングルチップモード時の接続例(フラッシュマイコンプログラマから電源供給時) ユーザシステムにおいて , シングルチップモードに設定されているモード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE より MD2=1, MD0=0 が入力 さ れ , シリ ア ル書 込 みモ ー ド にな り ます ( シ リア ル 書込 み モー ド:MD2, MD1, MD0=110)。 図 26.4-3 MB90F428G/MB90F423G シングルチップモード時シリアル書込み接続例 ( フラッシュマイコンプログラマから電源供給時 ) AF2 20/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S MB90F428G/MB90F423G (19) MD2 MD1 TMODE MD0 X0 (12) 4MHz X1 TAUX (23) /TICS (10) P00 ユーザ /TRES (5) RST P01 ユーザ TTXD TRXD TCK TVcc Vcc TVPP1 GND SIN1 SOT1 SCK1 (13) (27) (6) (2) (3) (16) (7,8, 14,15, 21,22, 1,28) 4,9,11,17,18, 20,24,25,26ピン はOPEN Vcc ユーザ電源 14ピン 1ピン DX10 -28S 28ピン DX10-28S:ライトアングルタイプ Vss 15ピン コネクタ(ヒロセ電機製)のピン配列 563 第 26 章 シリアル書込み接続例 図 26.4-4 端子制御回路 AF220/AF210/AF120/AF110 書込み制御端子 AF220/AF210/AF120/AF110 /TICS端子 MB90F428G/MB90F423G 書込み制御端子 10kΩ ユーザ回路 <注意事項> • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , P00 と同様 , 図 26.4-4 の端子制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信 号により , シリアル書込み中はユーザ回路を切り離すことができます )。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF220/AF210/AF120/AF110 から供給するときは , ユーザ電源と短絡し ないでください。 564 第 26 章 シリアル書込み接続例 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) シリアル書込み時に , 各端子 (MD2, MD0, P00) を下記のように設定すると , MD2, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 26.4-5 MB90F428G/MB90F423G フラッシュマイコンプログラマとの最小限の接 続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュ マイコン プログラマ MB90F428G/MB90F423G ユーザシステム シリアル書換え時 1 MD2 シリアル書換え時 1 MD1 MD0 シリアル書換え時 0 X0 4MHz X1 シリアル書換え時 0 P00 ユーザ回路 P01 シリアル書換え時 1 ユーザ回路 コネクタ DX10-28S /TRES (5) RST TTXD (13) SIN1 TRXD (27) SOT1 TCK TVcc (6) SCK1 (2) Vcc GND (7,8, 14,15, 21,22, 1,28) ユーザ電源 14ピン 3,4,9,10,11,12,16,17, 18,19,20,23,24,25,26 ピンはOPEN 1ピン DX10-28S 28ピン DX10-28S:ライトアングルタイプ Vss 15ピン コネクタ(ヒロセ電機製)のピン配列 565 第 26 章 シリアル書込み接続例 図 26.4-6 端子制御回路 AF220/AF210/AF120/AF110 書込み制御端子 AF220/AF210/AF120/AF110 /TICS端子 MB90F428G/MB90F423G 書込み制御端子 10kΩ ユーザ回路 <注意事項> • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 26.4-6 の端子制 御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア ル書込み中はユーザ回路を切り離すことができます )。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。 566 第 26 章 シリアル書込み接続例 ■ フラッシュマイコンプログラマとの最小限の接続例 ( フラッシュマイコンプログラ マから電源供給時 ) シリアル書込み時に , 各端子 (MD2, MD0, P00) を下記のように設定すると , MD2, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 26.4-7 MB90F428G/MB90F423G フラッシュマイコンプログラマとの最小限の接 続例 ( フラッシュマイコンプログラマから電源供給時 ) AF220/AF210/AF120/AF110 フラッシュマイコン ユーザシステム プログラマ MB90F428G/MB90F423G シリアル書換え時1 MD2 シリアル書換え時1 MD1 MD0 シリアル書換え時 0 X0 4MHz X1 P00 シリアル書換え時 0 ユーザ回路 P01 シリアル書換え時 1 ユーザ回路 コネクタ DX10-28S /TRES TTXD TRXD TCK TVcc Vcc TVPP1 GND (5) (13) (27) (6) (2) (3) (16) RST SIN1 SOT1 SCK1 Vcc (7,8, 14,15, 21,22, 1,28) ユーザ電源 Vss 4,9,10,11,12,17,18, 19,20,23,24,25,26ピン はOPEN 14ピン DX10-28S 28ピン DX10-28S:ライトアングルタイプ 1ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 567 第 26 章 シリアル書込み接続例 図 26.4-8 端子制御回路 AF220/AF210/AF120/AF110 書込み制御端子 AF220/AF210/AF120/AF110 /TICS端子 MB90F428G/MB90F423G 書込み制御端子 10kΩ ユーザ回路 <注意事項> • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 26.4-8 の端子制 御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア ル書込み中はユーザ回路を切り離すことができます )。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF220/AF210/AF120/AF110 から供給するときは , ユーザ電源と短絡し ないでください。 568 付録 付録では , I/O マップおよび命令を示します。 付録 A I/O マップ 付録 B 命令 569 付録 付録 A I/O マップ 各周辺機能のレジスタに割り当てられるアドレスを記載します。 ■ I/O マップ 付表 A-1 に , 各周辺機能のレジスタに割り当てられるアドレスを示します。 付表 A-1I/O マップ (1 / 6) アドレス 000000H 000001H 000002H 000003H 000004H 000005H 000006H 000007H 000008H 000009H 00000AH ~ 00000FH 000010H 000011H 000012H 000013H 000014H 000015H 000016H 000017H 000018H 000019H 00001AH 00001BH ~ 00001FH 000020H 000021H 000022H 000023H 000024H 000025H 000026H 000027H 000028H 000029H 00002AH 00002BH 570 レジスタ ポート 0 データレジスタ ポート 1 データレジスタ ポート 3 データレジスタ ポート 4 データレジスタ ポート 5 データレジスタ ポート 6 データレジスタ ポート 7 データレジスタ ポート 8 データレジスタ ポート 9 データレジスタ 略称 PDR0 PDR1 アクセス 周辺 R/W ポート 0 R/W ポート 1 使用禁止 PDR3 R/W ポート 3 PDR4 R/W ポート 4 PDR5 R/W ポート 5 PDR6 R/W ポート 6 PDR7 R/W ポート 7 PDR8 R/W ポート 8 PDR9 R/W ポート 9 初期値 XXXXXXXXB --XXXXXXB XX------B XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB ------XXB 使用禁止 ポート 0 方向レジスタ ポート 1 方向レジスタ 使用禁止 ポート 3 方向レジスタ ポート 4 方向レジスタ ポート 5 方向レジスタ ポート 6 方向レジスタ ポート 7 方向レジスタ ポート 8 方向レジスタ ポート 9 方向レジスタ アナログ入力許可 DDR0 DDR1 R/W R/W ポート 0 ポート 1 00000000B --000000B DDR3 DDR4 DDR5 DDR6 DDR7 DDR8 DDR9 ADER R/W R/W R/W R/W R/W R/W R/W R/W ポート 3 ポート 4 ポート 5 ポート 6 ポート 7 ポート 8 ポート 9 ポート 6, A/D 00------B 00000000B 00000000B 00000000B 00000000B 00000000B ------00B 11111111B 使用禁止 A/D 制御ステータスレジスタ下位 A/D 制御ステータスレジスタ上位 A/D データレジスタ下位 A/D データレジスタ上位 ADCSL ADCSH ADCRL ADCRH R/W W, R/W R, W R コンペアクリアレジスタ CPCLR R/W タイマデータレジスタ TCDT R/W TCCSL R/W TCCSH R/W PCNTL0 PCNTH0 R/W R/W タイマコントロールステータス レジスタ下位 タイマコントロールステータス レジスタ上位 PPG0 制御ステータスレジスタ下位 PPG0 制御ステータスレジスタ上位 A/D コンバータ 16 ビット フリーランタイマ 00000000B 00000000B XXXXXXXXB 00101XXXB XXXXXXXXB XXXXXXXXB 00000000B 00000000B 00000000B 0--00000B 16 ビット PPG0 00000000B 0000000-B 付録 A I/O マップ 付表 A-1I/O マップ (2 / 6) アドレス 00002CH 00002DH 00002EH 00002FH 000030H 000031H 000032H 000033H 000034H 000035H 000036H 000037H 000038H 000039H 00003AH 00003BH 00003CH 00003DH 00003EH 00003FH 000040H レジスタ PPG1 制御ステータスレジスタ下位 PPG1 制御ステータスレジスタ上位 PPG2 制御ステータスレジスタ下位 PPG2 制御ステータスレジスタ上位 外部割込み許可 外部割込み要求 外部割込みレベル下位 外部割込みレベル上位 シリアルモードレジスタ 0 シリアル制御レジスタ 0 シリアル入力データレジスタ 0/ シリアル出力データレジスタ 0 シリアルステータスレジスタ 0 シリアルモードレジスタ 1 シリアル制御レジスタ 1 シリアル入力データレジスタ 1/ シリアル出力データレジスタ 1 シリアルステータスレジスタ 1 使用禁止 通信プリスケーラ制御レジスタ 0 CAN ウェイクアップ制御レジスタ 通信プリスケーラ制御レジスタ 1 略称 PCNTL1 PCNTH1 PCNTL2 PCNTH2 ENIR EIRR ELVRL ELVRH SMR0 SCR0 SIDR0/ SODR0 SSR0 SMR1 SCR1 SIDR1/ SODR1 SSR1 CDCR0 CWUCR CDCR1 アクセス 周辺 R/W 16 ビット PPG1 R/W R/W 16 ビット PPG2 R/W R/W R/W DTP/ 外部割込み R/W R/W R/W W, R/W UART0 R R, R/W R/W W, R/W R XXXXXXXXB 00001000B 00000-00B 00000100B UART1 R, R/W R/W R/W R/W 初期値 00000000B 0000000-B 00000000B 0000000-B 00000000B 00000000B 00000000B 00000000B 00000-00B 00000100B XXXXXXXXB 00001000B プリスケーラ CAN プリスケーラ 0---0000B -------0B 0---0000B CAN インタフェース 0 用に予約済。 『CAN コントローラハードウェアマニュアル』を参照。 ~ 00004FH TMCSR0 000050H タイマコントロールステータス R/W 00000000B L レジスタ 0 下位 TMCSR0 16 ビット 000051H タイマコントロールステータス R/W ----0000B H レジスタ 0 上位 リロードタイマ 0 000052H 16 ビットタイマレジスタ 0/ XXXXXXXXB TMR0/ R TMRLR0 000053H リロードレジスタ 0 XXXXXXXXB TMCSR1 000054H タイマコントロールステータス R/W 00000000B L レジスタ 1 下位 TMCSR1 16 ビット 000055H タイマコントロールステータス R/W ----0000B H レジスタ 1 上位 リロードタイマ 1 000056H 16 ビットタイマレジスタ 1/ XXXXXXXXB TMR1/ R 000057H リロードレジスタ 1 TMRLR1 XXXXXXXXB 000058H リアルタイム時計タイマ制御レジスタ WTCRL R/W 000--000B 時計タイマ 下位 ( メインクロック ) 000059H リアルタイム時計タイマ制御レジスタ WTCRH R/W 00000000B 上位 00005AH サウンド制御レジスタ下位 SGCRL R/W 00000000B 00005BH サウンド制御レジスタ上位 SGCRH R, R/W 0-----00B 00005CH 周波数データレジスタ SGFR R/W XXXXXXXXB サウンド 00005DH 振幅データレジスタ SGAR R/W 00000000B ジェネレータ 00005EH デクリメントグレードレジスタ SGDR R/W XXXXXXXXB 00005FH トーンカウントレジスタ SGTR R/W XXXXXXXXB 000060H インプットキャプチャデータ XXXXXXXXB IPCP0 R 000061H レジスタ 0 XXXXXXXXB インプット 000062H インプットキャプチャデータ キャプチャ 0/1 XXXXXXXXB IPCP1 R 000063H レジスタ 1 XXXXXXXXB 571 付録 付表 A-1I/O マップ (3 / 6) アドレス 000064H 000065H 000066H 000067H レジスタ インプットキャプチャデータ レジスタ 2 インプットキャプチャデータ レジスタ 3 000068H インプットキャプチャコントロール ステータス 0/1 000069H 00006AH インプットキャプチャコントロール ステータス 2/3 00006BH 00006CH LCD 制御レジスタ下位 00006DH LCD 制御レジスタ上位 略称 アクセス IPCP2 R IPCP3 R ICS01 R/W 周辺 インプット キャプチャ 2/3 初期値 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB インプットキャプ チャ 0/1 00000000B インプットキャプ チャ 2/3 00000000B 使用禁止 ICS23 R/W 使用禁止 LCRL R/W LCRH R/W LCD コント ローラ / ドライバ 低電圧 /CPU 動作 検出リセット ROM ミラー 00010000B 00000000B 00006EH 低電圧 /CPU 動作検出リセット制御 LVRC W, R/W 00111000B レジスタ 00006FH ROM ミラー機能選択レジスタ ROMM W -------1B 000070H CAN インタフェース 1 用に予約済。 『CAN コントローラハードウェアマニュアル』を参照。 ~ 00007FH 000080H PWM 制御レジスタ 0 PWC0 R/W ステッピングモー タコントローラ 0 000000-0B PWC1 R/W ステッピングモー タコントローラ 1 000000-0B PWC2 R/W ステッピングモー タコントローラ 2 000000-0B PWC3 R/W ステッピングモー タコントローラ 3 000000-0B 000081H 使用禁止 000082H PWM 制御レジスタ 1 000083H 使用禁止 000084H PWM 制御 ⁄ レジスタ 2 000085H 使用禁止 000086H PWM 制御レジスタ 3 000087H ~ 00009DH 00009EH プログラムアドレス検出コントールレ ジスタ 00009FH 遅延割込み / リリース 0000A0H 低消費電力モード制御レジスタ 0000A1H クロック選択 0000A2H ~ 0000A7H 使用禁止 PACSR R/W DIRR LPMCR CKSCR R/W R/W R/W アドレス一致検出 機能 遅延割込み 低消費電力制御回 路 --000000B -------0B 00011000B 11111100B 使用禁止 0000A8H ウォッチドッグタイマ制御レジスタ WDTC 0000A9H タイムベースタイマ制御レジスタ TBTC 0000AAH 時計タイマ制御レジスタ WTC ウォッチドッグタ イマ タイムベースタイ R/W マ 時計タイマ R, W, R/W ( サブクロック ) R, W X-XXX111B 1--00100B 10001000B 0000ABH ~ 0000ADH 0000AEH フラッシュメモリコントロール ステータスレジスタ 0000AFH 572 使用禁止 FMCS R, W, R/W フラッシュ I/F 使用禁止 00010000B 付録 A I/O マップ 付表 A-1I/O マップ (4 / 6) アドレス 0000B0H 0000B1H 0000B2H 0000B3H 0000B4H 0000B5H 0000B6H 0000B7H 0000B8H 0000B9H 0000BAH 0000BBH 0000BCH 0000BDH 0000BEH 0000BFH 0000C0H レジスタ 割込み制御レジスタ 00 割込み制御レジスタ 01 割込み制御レジスタ 02 割込み制御レジスタ 03 割込み制御レジスタ 04 割込み制御レジスタ 05 割込み制御レジスタ 06 割込み制御レジスタ 07 割込み制御レジスタ 08 割込み制御レジスタ 09 割込み制御レジスタ 10 割込み制御レジスタ 11 割込み制御レジスタ 12 割込み制御レジスタ 13 割込み制御レジスタ 14 割込み制御レジスタ 15 ~ 0000FFH アクセス 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 周辺 割込み コントローラ 割込み コントローラ 初期値 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 00000111B 使用禁止 001FF0H プログラムアドレス検出レジスタ 0 下 位 001FF1H プログラムアドレス検出レジスタ 0 中 位 001FF2H プログラムアドレス検出レジスタ 0 上 位 001FF3H プログラムアドレス検出レジスタ 1 下 位 001FF4H プログラムアドレス検出レジスタ 1 中 位 001FF5H プログラムアドレス検出レジスタ 1 上 位 003900H ~ 00391FH 003920H 003921H 003922H 003923H 003924H 003925H 003926H, 003927H 003928H 003929H 00392AH 00392BH 00392CH 00392DH 00392EH, 00392FH 略称 ICR00 ICR01 ICR02 ICR03 ICR04 ICR05 ICR06 ICR07 ICR08 ICR09 ICR10 ICR11 ICR12 ICR13 ICR14 ICR15 PADR0 R/W XXXXXXXXB PADR0 R/W XXXXXXXXB PADR0 R/W PADR1 R/W PADR1 R/W XXXXXXXXB PADR1 R/W XXXXXXXXB アドレス一致検出 機能 XXXXXXXXB XXXXXXXXB 使用禁止 PPG0 ダウンカウンタレジスタ PDCR0 R PPG0 周期設定レジスタ PCSR0 W PPG0 デューティ設定レジスタ PDUT0 W 16 ビット PPG0 11111111B 11111111B XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 16 ビット PPG1 11111111B 11111111B XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 使用禁止 PPG1 ダウンカウンタレジスタ PDCR1 R PPG1 周期設定レジスタ PCSR1 W PPG1 デューティ設定レジスタ PDUT1 W 使用禁止 573 付録 付表 A-1I/O マップ (5 / 6) アドレス レジスタ 003930H PPG2 ダウンカウンタレジスタ 003931H 003932H PPG2 周期設定レジスタ 003933H 003934H PPG2 デューティ設定レジスタ 003935H 003936H ~ 003959H 00395AH 00395BH 00395CH 00395DH 00395EH 00395FH 003960H 574 アクセス PDCR2 R PCSR2 W PDUT2 W 周辺 16 ビット PPG2 初期値 11111111B 11111111B XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 使用禁止 サブ秒データレジスタ WTBR R/W 秒データレジスタ 分データレジスタ 時間データレジスタ WTSR WTMR WTHR R/W R/W R/W VRAM R/W LCD 表示用 RAM ~ 00396BH 00396CH ~ 00397FH 003980H 003981H 003982H 003983H 003984H 003985H 003986H, 003987H 003988H 003989H 00398AH 00398BH 00398CH 00398DH 00398EH, 00398FH 003990H 003991H 003992H 003993H 003994H 003995H 003996H, 003997H 003998H 003999H 00399AH 00399BH 00399CH 00399DH 略称 時計タイマ ( メインクロック ) XXXXXXXXB XXXXXXXXB ---XXXXXB --XXXXXXB --XXXXXXB ---XXXXXB LCD コントローラ / ドライバ XXXXXXXXB ステッピングモー タコントローラ 0 XXXXXXXXB ------XXB XXXXXXXXB ------XXB --000000B -0000000B ステッピングモー タコントローラ 1 XXXXXXXXB ------XXB XXXXXXXXB ------XXB --000000B -0000000B ステッピングモー タコントローラ 2 XXXXXXXXB ------XXB XXXXXXXXB ------XXB --000000B -0000000B ステッピングモー タコントローラ 3 XXXXXXXXB ------XXB XXXXXXXXB ------XXB --000000B -0000000B 使用禁止 PWM1 コンペアレジスタ 0 PWC10 R/W PWM2 コンペアレジスタ 0 PWC20 R/W PWM1 選択レジスタ 0 PWM2 選択レジスタ 0 PWS10 PWS20 R/W R/W 使用禁止 PWM1 コンペアレジスタ 1 PWC11 R/W PWM2 コンペアレジスタ 1 PWC21 R/W PWM1 選択レジスタ 1 PWM2 選択レジスタ 1 PWS11 PWS21 R/W R/W 使用禁止 PWM1 コンペアレジスタ 2 PWC12 R/W PWM2 コンペアレジスタ 2 PWC22 R/W PWM1 選択レジスタ 2 PWM2 選択レジスタ 2 PWS12 PWS22 R/W R/W 使用禁止 PWM1 コンペアレジスタ 3 PWC13 R/W PWM2 コンペアレジスタ 3 PWC23 PWM1 選択レジスタ 3 PWM2 選択レジスタ 3 PWS13 PWS23 R/W R/W R/W 付録 A I/O マップ 付表 A-1I/O マップ (6 / 6) アドレス 00399EH レジスタ ~ 0039FFH 003A00H 略称 アクセス 周辺 初期値 使用禁止 CAN インタフェース 0 用に予約済。 『CAN コントローラハードウェアマニュアル』参照。 ~ 003AFFH 003B00H CAN インタフェース 1 用に予約済。 『CAN コントローラハードウェアマニュアル』参照。 ~ 003BFFH 003C00H CAN インタフェース 0 用に予約済。 『CAN コントローラハードウェアマニュアル』参照。 ~ 003CFFH 003D00H CAN インタフェース 1 用に予約済。 『CAN コントローラハードウェアマニュアル』参照。 ~ 003DFFH 003E00H ~ 003EFFH 使用禁止 ・初期値 "-" は未定義ビットを表し , "X" は値が不定であることを示します。 ・表にリストされていない 0000H ~ 00FFH の範囲のアドレスは , MCU の主要機能のために予約されています。 これらの予約済アドレスへの読出しアクセスの結果は "X" になり , 書込みアクセスは禁止です。 ● 書込み / 読出しについての説明 R/W :リード / ライト可能 R :リードオンリ W :ライトオンリ ● 初期値についての説明 0 :このビットの初期値は "0" です。 1 :このビットの初期値は "1" です。 X :このビットの初期値は不定です。 575 付録 付録 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 576 付録 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 命令 577 付録 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) 578 付録 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 ADB 0B @RW3 SPB 0C @RW0+ DTB 0D @RW1+ 0E @RW2+ 0F @RW3+ SPB 10 @RW0+disp8 DTB 11 @RW1+disp8 DTB 12 @RW2+disp8 ADB 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 DTB 16 @RW6+disp8 ADB 17 @RW7+disp8 SPB 18 @RW0+disp16 DTB 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C @RW0+RW7 インデックス付レジスタ間接 DTB 1D @RW1+RW7 インデックス付レジスタ間接 DTB 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 PCB 1F addr16 直接アドレス DTB ポストインクリメント付 レジスタ間接 8 ビットディスプレースメント付 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 DTB ADB SPB DTB DTB ADB SPB 579 付録 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 レジスタ直接 汎用レジスタ 専用レジスタ *: 580 バイト 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 581 付録 ● 物理直接分岐アドレス (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 に格納する命令 ) 実行前 実行後 582 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 583 付録 ● 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 メモリ空間 実行後 584 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 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PCB F F 実行後 メモリ空間 PC 0 0 0 0 FFC000H EF FFFFE0H 00 FFFFE1H D0 CALLV #15 PC D 0 0 0 PCB F F 585 付録 表 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 を参照 してください ) 586 付録 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 に例を示します。 587 付録 図 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 588 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 589 付録 ● ベースインデックス付レジスタ間接 (@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 次の命令 実行後 590 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 実行後 591 付録 ● アキュムレータ間接 (@A) アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを アクセスするアドレス方式です。アドレスの bit23 ~ bit16 はデータバンクレジスタ (DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。 図 B.4-10 アキュムレータ間接 (@A) 例 MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 DTB B B 実行後 A 0716 メモリ空間 2534 BB2534H EE BB2535H FF FFEE DTB B B ● アキュムレータ間接分岐アドレス (@A) 分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま す。バンク空間内での分岐先を示し , アドレスの bit23 ~ bit16 はプログラムカウンタ バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド レスの bit23 ~ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ 間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11 に例を示します。 図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例 JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 A 6677 PCB 4 F 3B20 メモリ空間 4F3B20H 次の命令 4F3C20H 実行後 PC 3 B 2 0 A 6677 592 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 593 付録 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 命令一覧表の読み方」を参照 してください。 594 付録 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 - ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 595 付録 B.6 実効アドレスフィールド 表 B.6-1 に実効アドレスフィールドを示します。 ■ 実効アドレスフィールド 表 B.6-1 実効アドレスフィールド (1 / 2) コード 596 表記 アドレス形式 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 命令一覧表の読み方」を参照してください。 597 付録 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 598 リードモディファイライト命令 (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 ビットデータ 599 付録 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 600 意味 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) - XCH A,eam 2+ 5 + (a) 0 XCH Ri,ear 2 7 4 XCH Ri,eam 2+ 9 + (a) 2 Z - - - - - - - - 2 × (b) byte (A) ←→ (eam) Z - - - - - - - - - byte (Ri) ←→ (ear) - - - - - - - - - - - - - - - - - - - - 0 2 × (b) byte (Ri) ←→ (eam) ( 注意事項 ) 表中の (a), (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 601 付録 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW MOVW A,dir 2 3 0 (c) word (A) ← (dir) - * - - - * * - - - MOVW A,addr16 3 4 0 (c) word (A) ← (addr16) - * - - - * * - - - MOVW A,SP 1 1 0 0 word (A) ← (SP) - * - - - * * - - - MOVW A,RWi 1 2 1 0 word (A) ← (RWi) - * - - - * * - - - MOVW A,ear 2 2 1 0 word (A) ← (ear) - * - - - * * - - MOVW A,eam 2+ 3 + (a) 0 (c) word (A) ← (eam) - * - - - * * - - - MOVW A,io 2 3 0 (c) word (A) ← (io) - * - - - * * - - - word (A) ← ((A)) - - - - - * * - - word (A) ← imm16 - * - - - * * - - - (c) word (A) ← ((RWi)+disp8) - * - - - * * - - - 2 (c) word (A) ← ((RLi)+disp8) - * - - - * * - - - 3 0 (c) word (dir) ← (A) - - - - - * * - - - 4 0 (c) word (addr16) ← (A) - - - - - * * - - - MOVW A,@A 2 3 0 (c) MOVW A,#imm16 3 2 0 0 MOVW A,@RWi+disp8 2 5 1 MOVW A,@RLi+disp8 3 10 MOVW dir,A 2 MOVW addr16,A 3 MOVW SP,A 1 1 0 0 word (SP) ← (A) - - - - - * * - - - MOVW RWi,A 1 2 1 0 word (RWi) ← (A) - - - - - * * - - - MOVW ear,A 2 2 1 0 word (ear) ← (A) - - - - - * * - - - MOVW eam,A 2+ 3 + (a) 0 (c) word (eam) ← (A) - - - - - * * - - - MOVW io,A 2 3 0 (c) word (io) ← (A) - - - - - * * - - - MOVW @RWi+disp8,A 2 5 1 (c) word ((RWi)+disp8) ← (A) - - - - - * * - - - MOVW @RLi+disp8,A 3 10 2 (c) word ((RLi)+disp8) ← (A) - - - - - * * - - - MOVW RWi,ear 2 3 2 0 word (RWi) ← (ear) - - - - - * * - - - MOVW RWi,eam 2+ 4 + (a) 1 (c) word (RWi) ← (eam) - - - - - * * - - - MOVW ear,RWi 2 4 2 0 word (ear) ← (RWi) - - - - - * * - - - MOVW eam,RWi 2+ 5 + (a) 1 (c) word (eam) ← (RWi) - - - - - * * - - - MOVW RWi,#imm16 3 2 1 0 word (RWi) ← imm16 - - - - - * * - - MOVW io,#imm16 4 5 0 (c) word (io) ← imm16 - - - - - - - - - - MOVW ear,#imm16 4 2 1 0 word (ear) ← imm16 - - - - - * * - - - MOVW eam,#imm16 4+ 4 + (a) 0 (c) word (eam) ← imm16 - - - - - - - - - - MOVW @AL,AH 2 3 0 (c) word ((A)) ← (AH) - - - - - * * - - - XCHW A,ear 2 4 2 0 word (A) ←→ (ear) - - - - - - - - - - XCHW A,eam 2+ 5 + (a) 0 2 × (c) XCHW RWi, ear 2 7 4 0 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) - - - - - * * - - - word (A) ←→ (eam) - - - - - - - - - - word (RWi) ←→ (ear) - - - - - - - - - - ( 注意事項 ) 表中の (a), (c), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 602 付録 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 を参照してください。 603 付録 表 B.8-4 増減算命令 ( バイト・ワード・ロングワード ) 12 命令 ニーモニック # ~ RG B INC ear 2 3 2 0 INC eam 2+ 5+(a) 0 2 × (b) DEC ear 2 3 2 0 DEC eam 2+ 5+(a) 0 2 × (b) INCW ear 2 3 2 0 INCW eam 2+ 5+(a) 0 2 × (c) DECW ear 2 3 2 0 DECW eam 2+ 5+(a) 0 2 × (c) INCL ear 2 7 4 0 INCL eam 2+ 9+(a) 0 2 × (d) DECL ear 2 7 4 0 DECL eam 2+ 9+(a) 0 2 × (d) オペレーション LH AH I S T N Z V C RMW byte (ear) <-- (ear) + 1 - - - - - * * * - - byte (eam) ← (eam) + 1 - - - - - * * * - * byte (ear) ← (ear) - 1 - - - - - * * * - - byte (eam) ← (eam) - 1 - - - - - * * * - * word (ear) ← (ear) + 1 - - - - - * * * - - word (eam) ← (eam) + 1 - - - - - * * * - * word (ear) ← (ear) - 1 - - - - - * * * - - word (eam) ← (eam) - 1 - - - - - * * * - * long (ear) ← (ear) + 1 - - - - - * * * - - long (eam) ← (eam) + 1 - - - - - * * * - * long (ear) ← (ear) - 1 - - - - - * * * - - long (eam) ← (eam) - 1 - - - - - * * * - * LH AH I S T N Z V C RMW ( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-5 比較命令 ( バイト・ワード・ロングワード ) 11 命令 ニーモニック # ~ RG B オペレーション CMP A 1 1 0 0 byte (AH) - (AL) - - - - - * * * * - CMP A,ear 2 2 1 0 byte (A) - (ear) - - - - - * * * * - CMP A,eam 2+ 3+(a) 0 (b) byte (A) - (eam) - - - - - * * * * - CMP A,#imm8 2 2 0 0 byte (A) - imm8 - - - - - * * * * - CMPW A 1 1 0 0 word (AH) - (AL) - - - - - * * * * - CMPW A,ear 2 2 1 0 word (A) - (ear) - - - - - * * * * - CMPW A,eam 2+ 3+(a) 0 (c) word (A) - (eam) - - - - - * * * * - CMPW A,#imm16 3 2 0 0 word (A) - imm16 - - - - - * * * * - CMPL A,ear 2 6 2 0 long (A) - (ear) - - - - - * * * * - CMPL A,eam 2+ 7+(a) 0 (d) long (A) - (eam) - - - - - * * * * - CMPL A,#imm32 5 3 0 0 long (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 604 付録 B 命令 表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ~ RG B DIVU A 1 *1 0 0 DIVU A,ear 2 *2 1 DIVU A,eam 2+ *3 DIVUW A,ear 2 DIVUW A,eam MULU MULU MULU MULUW オペレーション LH AH I S T N Z V C RMW word (AH) / byte (AL) 商→ byte (AL) 余り→ byte (AH) - - - - - - - * * - 0 word (A) / byte (ear) 商→ byte (A) 余り→ byte (ear) - - - - - - - * * - 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) - - - - - - - * * - *4 1 0 long (A) / word (ear) 商→ word (A) 余り→ word (ear) - - - - - - - * * - 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - A 1 *8 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - A,ear 2 *9 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - 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 を参照してください。 605 付録 表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ~ RG B DIV A 2 *1 0 0 DIV A,ear 2 *2 1 DIV A,eam 2+ *3 DIVW A,ear 2 DIVW A,eam 2+ MUL A 2 *8 MUL A,ear 2 *9 MUL A,eam 2+ *10 MULW A 2 *11 MULW A,ear 2 MULW A,eam 2+ オペレーション LH AH I S T N Z V C RMW word (AH) / byte (AL) 商 --> byte (AL) 余り→ byte (AH) Z - - - - - - * * - 0 word (A) / byte (ear) 商 --> byte (A) 余り→ byte (ear) Z - - - - - - * * - 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) Z - - - - - - * * - *4 1 0 long (A) / word (ear) 商 --> word (A) 余り→ word (ear) - - - - - - - * * - *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - - *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - *13 0 (c) word (A) * word (eam) → Long (A) - - - - - - - - - - *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 8 or 18 正常の場合 , 18 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 11 or 22 正常の場合 , 23 *3:ゼロディバイトの場合 , 5+(a) オーバフローの場合 12+(a) or 23+(a) 正常の場合 , 24+(a) *4:被除数が正 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 30 正常の場合 , 31 被除数が負 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 31 正常の場合 , 32 *5:被除数が正 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 12+(a) or 31+(a) 正常の場合 , 32+(a) 被除数が負 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 13+(a) or 32+(a) 正常の場合 , 33+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 結果が正の場合 , 12 結果が負の場合 , 13 *9:byte(ear) がゼロの場合 , 4 結果が正の場合 , 13 結果が負の場合 , 14 *10:byte(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 14+(a) 結果が負の場合 , 15+(a) *11:word(AH) がゼロの場合 , 3 結果が正の場合 , 16 結果が負の場合 , 19 *12:word(ear) がゼロの場合 , 4 結果が正の場合 , 17 結果が負の場合 , 20 *13:word(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 18+(a) 結果が負の場合 , 21+(a) ( 注意事項 ) ・ DIV, DIVW 命令でオーバフロー発生時の実行サイクル数に 2 種類ありますが , 演算前と演算後に検出する場合が あるためです。 DIV, DIVW 命令でオーバフロー発生時には , AL の内容は破壊されます。 ・ 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 606 付録 B 命令 表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW AND A,#imm8 2 2 0 0 byte (A) ← (A) and imm8 - - - - - * * R - - AND A,ear 2 3 1 0 byte (A) ← (A) and (ear) - - - - - * * R - - AND A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) and (eam) - - - - - * * R - - AND ear,A 2 3 2 0 byte (ear) ← (ear) and (A) - - - - - * * R - - AND eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) and (A) - - - - - * * R - * OR A,#imm8 2 2 0 0 byte (A) ← (A) or imm8 - - - - - * * R - - OR A,ear 2 3 1 0 byte (A) ← (A) or (ear) - - - - - * * R - - OR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) or (eam) - - - - - * * R - - OR ear,A 2 3 2 0 byte (ear) ← (ear) or (A) - - - - - * * R - - OR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) or (A) - - - - - * * R - * XOR A,#imm8 2 2 0 0 byte (A) ← (A) xor imm8 - - - - - * * R - - XOR A,ear 2 3 1 0 byte (A) ← (A) xor (ear) - - - - - * * R - - XOR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) xor (eam) - - - - - * * R - - XOR ear,A 2 3 2 0 byte (ear) ← (ear) xor (A) - - - - - * * R - - XOR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) xor (A) - - - - - * * R - * NOT A 1 2 0 0 byte (A) ← not (A) - - - - - * * R - - NOT ear 2 3 2 0 byte (ear) ← not (ear) - - - - - * * R - - NOT eam 2+ 5+(a) 0 2 × (b) byte (eam) ← not (eam) - - - - - * * R - * ANDW A 1 2 0 0 word (A) ← (AH) and (A) - - - - - * * R - - ANDW A,#imm16 3 2 0 0 word (A) ← (A) and imm16 - - - - - * * R - - ANDW A,ear 2 3 1 0 word (A) ← (A) and (ear) - - - - - * * R - - ANDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) and (eam) - - - - - * * R - - ANDW ear,A 2 3 2 0 word (ear) ← (ear) and (A) - - - - - * * R - - ANDW eam,A 2+ 5+(a) 0 2 × (c) word (eam) ← (eam) and (A) - - - - - * * R - * ORW A 1 2 0 0 word (A) ← (AH) or (A) - - - - - * * R - - ORW A,#imm16 3 2 0 0 word (A) ← (A) or imm16 - - - - - * * R - - ORW A,ear 2 3 1 0 word (A) ← (A) or (ear) - - - - - * * R - - ORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) or (eam) - - - - - * * R - - ORW ear,A 2 3 2 0 ORW eam,A 2+ 5+(a) 0 2 × (c) XORW A 1 2 0 0 word (ear) ← (ear) or (A) - - - - - * * R - - word (eam) ← (eam) or (A) - - - - - * * R - * word (A) ← (AH) xor (A) - - - - - * * R - - XORW A,#imm16 3 2 0 0 word (A) ← (A) xor imm16 - - - - - * * R - - XORW A,ear 2 3 1 0 word (A) ← (A) xor (ear) - - - - - * * R - - XORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) xor (eam) - - - - - * * R - - word (ear) ← (ear) xor (A) - - - - - * * R - - word (eam) ← (eam) xor (A) - - - - - * * R - * XORW ear,A 2 3 2 0 XORW eam,A 2+ 5+(a) 0 2 × (c) NOTW A 1 2 0 0 word (A) ← not (A) - - - - - * * R - - NOTW ear 2 3 2 0 word (ear) ← not (ear) - - - - - * * R - - NOTW eam 2+ 5+(a) 0 2 × (c) word (eam) ← not (eam) - - - - - * * R - * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 607 付録 表 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 - - XORL A,ear 2 6 2 0 long (A) ← (A) xor (ear) - - - - - * * R - - XORL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) xor (eam) - - - - - * * R - - LH AH I S T N Z V C RMW ( 注意事項 ) 表中の (a), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-10 符号反転命令 ( バイト・ワード ) 6 命令 ニーモニック 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) - - - - - * * * * NEGW ear 2 3 2 0 word (ear) ← 0 - (ear) - - - - - * * * * - NEGW eam 2+ 5+(a) 0 2 × (c) word (eam) ← 0 - (eam) - - - - - * * * * * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-11 ノーマライズ命令 ( ロングワード ) 1 命令 ニーモニック NRML A,R0 # ~ RG B オペレーション LH AH I S T N Z V C RMW 2 *1 1 0 long (A) ← 最初に "1" が立っていた所まで左 シフトする byte (R0) ← その場合のシフト回数 - - - - - - * - - *1:アキュムレータがすべて "0" であった場合は , 4 "0" 以外であった場合は , 6+(R0) 608 - 付録 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 LSR A,R0 2 *1 1 LSL A,R0 2 *1 1 2 × (b) byte (eam) ← 右ローテートキャリー付 0 byte (ear) ← 左ローテートキャリー付 - - - - - * * - * - 2 × (b) byte (eam) ← 左ローテートキャリー付 - - - - - * * - * * 0 byte (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - 0 byte (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 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) - - - - * * * - * - 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 を参照してください。 609 付録 表 B.8-13 分岐命令 1 31 命令 ニーモニック # ~ RG オペレーション B LH AH I S T N Z V C RMW BZ/BEQ rel 2 *1 0 0 (Z) = 1 の場合分岐 - - - - - - - - - - BNZ/BNE rel 2 *1 0 0 (Z) = 0 の場合分岐 - - - - - - - - - - BC/BLO rel 2 *1 0 0 (C) = 1 の場合分岐 - - - - - - - - - - BNC/BHS rel 2 *1 0 0 (C) = 0 の場合分岐 - - - - - - - - - - BN rel 2 *1 0 0 (N) = 1 の場合分岐 - - - - - - - - - BP rel 2 *1 0 0 (N) = 0 の場合分岐 - - - - - - - - - - BV rel 2 *1 0 0 (V) = 1 の場合分岐 - - - - - - - - - - BNV rel 2 *1 0 0 (V) = 0 の場合分岐 - - - - - - - - - - BT rel 2 *1 0 0 (T) = 1 の場合分岐 - - - - - - - - - - BNT rel 2 *1 0 0 (T) = 0 の場合分岐 - - - - - - - - - - BLT rel 2 *1 0 0 (V) xor (N) = 1 の場合分岐 - - - - - - - - - - BGE rel 2 *1 0 0 (V) xor (N) = 0 の場合分岐 - - - - - - - - - - BLE rel 2 *1 0 0 ((V) xor (N)) or (Z) = 1 の場合分岐 - - - - - - - - - - BGT rel 2 *1 0 0 ((V) xor (N)) or (Z) = 0 の場合分岐 - - - - - - - - - - BLS rel 2 *1 0 0 (C) or (Z) = 1 の場合分岐 - - - - - - - - - - BHI rel 2 *1 0 0 (C) or (Z) = 0 の場合分岐 - - - - - - - - - - BRA rel 2 *1 0 0 無条件分岐 - - - - - - - - - - JMP @A 1 2 0 0 word (PC) ← (A) - - - - - - - - - - JMP addr16 3 3 0 0 word (PC) ← addr16 - - - - - - - - - - JMP @ear 2 3 1 0 word (PC) ← (ear) - - - - - - - - - - JMP @eam 2+ 4+(a) 0 (c) word (PC) ← (eam) - - - - - - - - - - 5 2 0 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - (d) word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (PC) ← (ear) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JMPP @ear 注 1) 2 JMPP @eam 注 1) 2+ 6+(a) 0 JMPP addr24 4 4 0 0 CALL @ear 注 2) 2 6 1 (c) 2 × (c) word (PC) ← (eam) CALL @eam 注 2) 2+ 7+(a) 0 CALL addr16 注 3) 3 6 0 CALLV #vct4 注 3) 1 7 0 2 × (c) ベクタコール命令 CALLP 2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23 @ear 注 4) 2 10 2 CALLP @eam 注 4) 2+ 11+(a) 0 CALLP addr24 注 5) 4 10 0 (c) *2 word (PC) ← addr16 word (PC) ← (eam)0-15, (PCB) ← (eam)16-23 2 × (c) word (PC) ← addr0-15, (PCB) ← addr16-23 *1:分岐が行われる場合 , 4 行われない場合 , 3 *2:3 × (c)+(b) 注 1) 分岐先アドレスの読込み (word) 注 2) W:スタックへの退避 (word), R:分岐先アドレスの読込み (word) 注 3) スタックへの退避 (word) 注 4) W:スタックへの退避 (long), R:分岐先アドレスの読込み (long) 注 5) スタックへの退避 (long) ( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 610 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 付録 B 命令 表 B.8-14 分岐命令 2 19 命令 ニーモニック # ~ RG B オペレーション CBNE A,#imm8,rel 3 *1 0 0 byte (A) ≠ imm8 で分岐 - - - - - * * * * - CWBNE A,#imm16,rel 4 *1 0 0 word (A) ≠ imm16 で分岐 - - - - - * * * * - CBNE ear,#imm8,rel 4 *2 1 0 byte (ear) ≠ imm8 で分岐 - - - - - * * * * - 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - DBNZ DBNZ LH AH I S T N Z V C RMW CBNE eam,#imm8,rel CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - CWBNE eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - ear,rel 3 *5 2 byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - eam,rel 3+ *6 2 - - - - - * * * - * 0 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 ear,rel 3 *5 2 - - - - - * * * - - 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) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - INT9 RETI LINK #imm8 UNLINK 0 word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 DWBNZ DWBNZ RET 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - RETP 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - *1:分岐が行われる場合 , 5 行われない場合 , 4 *2:分岐が行われる場合 , 13 行われない場合 , 12 *3:分岐が行われる場合 , 7+(a) 行われない場合 , 6+(a) *4:分岐が行われる場合 , 8 行われない場合 , 7 *5:分岐が行われる場合 , 7 行われない場合 , 6 *6:分岐が行われる場合 , 8+(a) 行われない場合 , 7+(a) *7:次の割込み要求へ分岐する場合 , 3 × (b)+2 × (c) 今の割込みから復帰の場合 , 6 × (c) *8:次の割込みへ分岐する場合 , 15 今の割込みから復帰する場合 , 17 注 1) CBNE / CWBNE 命令では , RWj+ のアドレッシングモードは , 使用しないでください。 注 2) スタックからの復帰 (word) 注 3) スタックからの復帰 (long) ( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 611 付録 表 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 - - * * * * * * * - (rlst) ← ((SP)), (SP) ← (SP) + 2n - - - - - - - - - コンテキストスイッチ命令 - - * * * * * * * - 0 byte (CCR) ← (CCR) and imm8 - - * * * * * * * - 0 0 byte (CCR) ← (CCR) or imm8 - - * * * * * * * - 2 0 0 byte (RP) ← imm8 - - - - - - - - - - 2 0 0 byte (ILM) ← imm8 - - - - - - - - - - 1 0 word (RWi) ← ear - - - - - - - - - - 1 0 word (RWi) ← eam - - - - - - - - - - 0 word (A) ← ear - * - - - - - - - - 0 word (A) ← eam - * - - - - - - - - 0 word (SP) ← (SP) + ext(imm8) - - - - - - - - - - 0 word (SP) ← (SP) + imm16 - - - - - - - - - - 0 0 byte (A) ← (brg1) Z * - - - * * - - - 0 0 byte (brg2) ← (A) - - - - - * * - - - 1 0 0 ノーオペレーション - - - - - - - - - - 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 コモンレジスタバンク用プリフィッ クス - - - - - - - - - - POPW rlst 2 *2 *5 *4 JCTX @A 1 14 0 6 × (c) AND CCR,#imm8 2 3 0 OR CCR,#imm8 2 3 MOV RP,#imm8 2 MOV ILM,#imm8 2 MOVEA RWi,ear 2 3 MOVEA RWi,eam 2+ 2+(a) MOVEA A,ear 2 1 0 MOVEA A,eam 2+ 1+(a) 0 ADDSP #imm8 2 3 0 ADDSP #imm16 3 3 0 MOV A,brg1 2 *1 MOV brg2,A 2 1 NOP 1 ADB *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 を参照してください。 612 付録 B 命令 表 B.8-16 ビット操作命令 21 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW MOVB A,dir:bp 3 5 0 (b) byte (A) ← (dir:bp)b Z * - - - * * - - - MOVB A,addr16:bp 4 5 0 (b) byte (A) ← (addr16:bp)b Z * - - - * * - - - MOVB A,io:bp 3 4 0 (b) byte (A) ← (io:bp)b Z * - - - * * - - - MOVB dir:bp,A 3 7 0 2 × (b) bit (dir:bp)b ← (A) - - - - - * * - - * MOVB addr16:bp,A 4 7 0 2 × (b) bit (addr16:bp)b ← (A) - - - - - * * - - * MOVB io:bp,A 3 6 0 2 × (b) bit (io:bp)b ← (A) - - - - - * * - - * SETB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 1 - - - - - - - - - * SETB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 1 - - - - - - - - - * SETB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 1 - - - - - - - - - * CLRB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 0 - - - - - - - - - * CLRB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 0 - - - - - - - - - * CLRB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 0 - - - - - - - - - * BBC dir:bp,rel 4 *1 0 (b) (dir:bp) b = 0 の場合分岐 - - - - - - * - - - BBC addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 0 の場合分岐 - - - - - - * - - - BBC io:bp,rel 4 *2 0 (b) (io:bp) b = 0 の場合分岐 - - - - - - * - - - BBS dir:bp,rel 4 *1 0 (b) (dir:bp) b = 1 の場合分岐 - - - - - - * - - - BBS addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 1 の場合分岐 - - - - - - * - - - BBS io:bp,rel 4 *2 0 (b) (io:bp) b = 1 の場合分岐 - - - - - - * - - - SBBS addr16:bp,rel 5 *3 0 - - - - - - * - - * 2 × (b) (addr16:bp) b = 1 で分岐 , bit (addr16:bp) b ← 1 WBTS io:bp 3 *4 0 *5 (io:bp) b = 1 になるまで待つ - - - - - - - - - - WBTC io:bp 3 *4 0 *5 (io:bp) b = 0 になるまで待つ - - - - - - - - - - LH AH I S T N Z V C RMW *1:分岐が行われる場合 , 8 分岐が行われない場合 , 7 *2:分岐が行われる場合 , 7 分岐が行われない場合 , 6 *3:条件成立の場合 , 10 未成立の場合 , 9 *4:不定回数 *5:条件が成立するまで ( 注意事項 ) 表中の (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 ニーモニック # ~ RG B オペレーション SWAP 1 3 0 0 byte (A)0-7 ←→ (A)8-15 - - - - - - - - - - SWAPW 1 2 0 0 word (AH) ←→ (AL) - * - - - - - - - - EXT 1 1 0 0 byte 符号拡張 X - - - - * * - - - EXTW 1 2 0 0 word 符号拡張 - X - - - * * - - - ZEXT 1 1 0 0 byte ゼロ拡張 Z - - - - R * - - - ZEXTW 1 1 0 0 word ゼロ拡張 - Z - - - R * - - - 613 付録 表 B.8-18 ストリング命令 10 命令 ニーモニック # ~ RG B オペレーション LH AH I S T N Z V C RMW MOVS / MOVSI 2 *2 *5 *3 byte 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - MOVSD 2 *2 *5 *3 byte 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - 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 を参照してください。 614 付録 B 命令 B.9 命令マップ F2MC-16LX の命令コードは , 1 ~ 2 バイトで構成されていますので , 命令マップは 複数のページで構成されています。 F2MC-16LX の命令マップを示します。 ■ 命令マップの構造 図 B.9-1 命令マップの構造 基本ページマップ ビット操作系命令 文字列操作系命令 2 バイト系命令 :第 1 バイト ea 系命令× 9 :第 2 バイト 1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命 令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。 実際の命令コードと命令マップの対応を図 B.9-2 に示します。 615 付録 図 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 命令 616 A SWAP ADDSP ADB SPB #8 C0 D0 E0 ea 系命令 その 2 #4 rel BNT BT +F +E +D +C +B LSRW ASRW LSLW NEGW A A A A XORW ORW ANDW ANDW PUSHW POPW A, #16 A A A A PUSHW POPW rlst rlst XORW PUSHW POPW A, #16 PS PS rel ビット操 MOV ea, Ri 作系命令 rel rel BLS 文字列操 XCH Ri, ea 作系命令 2 バイト XCHW RWi, ea 系命令 BHI rel BGT MOVW ea, RWi BLE rel BGE MOVW RWi, ea CMPW MOVL MOVW RETI A, #16 A, #32 addr16, A ORW PUSHW POPW A A, #16 AH AH A A ADDSP MULUW NOTW #16 A SWAPW ZEXTW EXTW CMPL CMPW A, #32 BLT rel A ADDW MOVW MOVW INT MOVW MOVW MOV A, MOVW ea 系命令 MOVW A, #16 A, dir A, io #vct8 A, RWi RWi, A RWi, #16 @RWi+d8 @RWi+d8,A その 9 BNV rel SUBL SUBW A, #32 A MOVW MOVX RET A SP, A A, addr16 A, #8 rel rel ea 系命令 その 8 A NOT XOR BV rel MULU A MOVW MOVW RETP A, SP io, #16 ea 系命令 その 7 DIVU A, #8 rel OR OR CCR, #8 BP A, #8 BC/BLO BNZ/BNE rel BZ/BEQ F0 MOV MOV CBNE A, CWBNE A, MOVW MOVW INTP MOV +A RP, #8 ILM, #8 #8, rel #16, rel A, #16 A,addr16 addr24 Ri, ea +9 UNLINK B0 MOV MOV MOV MOVX A, MOV CALL ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 その 1 A0 BNC/BHS rel @A rel 90 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 JMP BRA 80 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 A, #8 io, A A, io 70 rel CMP MOV MOV 60 rel dir, A A, dir 50 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV MOV 40 BN A A A, #8 A, #8 SUBC SUB ADD 30 AND AND MOV MOV CALL ea 系命令 CCR, #8 A, #8 dir, #8 io, #8 addr16 その 5 CMP A A, dir A, dir ADDC SUB ADD 20 LINK ADDL ADDW #imm8 A, #32 ZEXT DTB @A EXT JCTX PCB A SUBDC ADDDC NEG NCC INT9 A CMR NOP 10 SUBW MOVW MOVW INT MOVEA A, #16 dir, A io, A addr16 RWi, ea +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-2 基本ページマップ 617 618 +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) 619 620 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) 621 622 +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) 623 624 +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) 625 626 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) 627 628 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) A, MULU +F DIV DIV A, DIVW DIVW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 DIV DIV A, DIVW DIVW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 DIV DIV A, DIVW DIVW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 DIV DIV A, DIVW DIVW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 DIV DIV A, DIVW DIVW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, @RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ A, DIVW DIVW A, addr16 A,@RW3+ addr16 MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, MULUW @RW1+RW7 MULU @RW0+RW7 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULU +D A,@RW1+ MULU +C A,@RW0+ MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 MULU MULU A, MULUW MULUW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 MULU MULU A, MULUW MULUW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 DIV DIV A, DIVW DIVW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 F0 +7 E0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 D0 +6 C0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 B0 +5 A0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 90 +4 80 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 70 +3 60 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 50 +2 40 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 30 +1 20 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H) 629 630 MOVEA MOVEA RW1 RW1,RW2 ,@RW2+d8 MOVEA MOVEA RW1 RW1,RW3 ,@RW3+d8 MOVEA MOVEA RW1 RW1,RW4 ,@RW4+d8 MOVEA MOVEA RW1 RW1,RW5 ,@RW5+d8 MOVEA MOVEA RW1 RW1,RW6 ,@RW6+d8 MOVEA MOVEA RW1 RW1,RW7 ,@RW7+d8 MOVEA MOVEA RW1 RW1,@RW0 ,@RW0+d16 MOVEA MOVEA RW1 RW1,@RW1 ,@RW1+d16 MOVEA MOVEA RW1 RW1,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,@RW3 ,@RW3+d16 MOVEA MOVEA RW0 RW0,RW2 ,@RW2+d8 MOVEA MOVEA RW0 RW0,RW3 ,@RW3+d8 MOVEA MOVEA RW0 RW0,RW4 ,@RW4+d8 MOVEA MOVEA RW0 RW0,RW5 ,@RW5+d8 MOVEA MOVEA RW0 RW0,RW6 ,@RW6+d8 MOVEA MOVEA RW0 RW0,RW7 ,@RW7+d8 MOVEA MOVEA RW0 RW0,@RW0 ,@RW0+d16 MOVEA MOVEA RW0 RW0,@RW1 ,@RW1+d16 MOVEA RW0 MOVEA RW0 MOVEA MOVEA +2 +3 +4 +5 +6 +7 +8 +9 50 70 90 B0 C0 D0 E0 F0 MOVEA MOVEA RW4 RW4,@RW2+ ,@PC+d16 MOVEA MOVEA RW6,@RW3+ RW6, addr16 MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA RW0,@RW3+ RW0, addr16 RW1,@RW3+ RW1, addr16 RW2,@RW3+ RW2, addr16 RW3,@RW3+ RW3, addr16 RW4,@RW3+ RW4, addr16 RW5,@RW3+ RW5, addr16 MOVEA MOVEA RW3 RW3,@RW2+ ,@PC+d16 +F MOVEA MOVEA RW2 RW2,@RW2+ ,@PC+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2+ ,@PC+d16 RW6,@RW2+ ,@PC+d16 RW7,@RW2+ ,@PC+d16 MOVEA MOVEA RW1 RW1,@RW2+ ,@PC+d16 MOVEA MOVEA RW0 RW0,@RW2+ ,@PC+d16 +E MOVEA MOVEA RW7@RW3+ RW7, addr16 MOVEA MOVEA RW7 RW7,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW1+ ,@RW1+RW7 RW6,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW1+ ,@RW1+RW7 RW1,@RW1+ ,@RW1+RW7 RW2,@RW1+ ,@RW1+RW7 RW3,@RW1+ ,@RW1+RW7 RW4,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW7 RW7,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW3 ,@RW3+d16 RW6,@RW3 ,@RW3+d16 RW7,@RW3 ,@RW3+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2 ,@RW2+d16 RW6,@RW2 ,@RW2+d16 RW7,@RW2 ,@RW2+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW1 ,@RW1+d16 RW6,@RW1 ,@RW1+d16 RW7,@RW1 ,@RW1+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW0 ,@RW0+d16 RW6,@RW0 ,@RW0+d16 RW7,@RW0 ,@RW0+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW7 ,@RW7+d8 RW6,RW7 ,@RW7+d8 RW7,RW7 ,@RW7+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW6 ,@RW6+d8 RW6,RW6 ,@RW6+d8 RW7,RW6 ,@RW6+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW5 ,@RW5+d8 RW6,RW5 ,@RW5+d8 RW7,RW5 ,@RW5+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW4 ,@RW4+d8 RW6,RW4 ,@RW4+d8 RW7,RW4 ,@RW4+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW3 ,@RW3+d8 RW6,RW3 ,@RW3+d8 RW7,RW3 ,@RW3+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW2 ,@RW2+d8 RW6,RW2 ,@RW2+d8 RW7,RW2 ,@RW2+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW1 ,@RW1+d8 RW6,RW1 ,@RW1+d8 RW7,RW1 ,@RW1+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW0 ,@RW0+d8 RW6,RW0 ,@RW0+d8 RW7,RW0 ,@RW0+d8 A0 +D MOVEA MOVEA RW4 RW4,@RW3 ,@RW3+d16 MOVEA MOVEA RW4 RW4,@RW2 ,@RW2+d16 MOVEA MOVEA RW4 RW4,@RW1 ,@RW1+d16 MOVEA MOVEA RW4 RW4,@RW0 ,@RW0+d16 MOVEA MOVEA RW4 RW4,RW7 ,@RW7+d8 MOVEA MOVEA RW4 RW4,RW6 ,@RW6+d8 MOVEA MOVEA RW4 RW4,RW5 ,@RW5+d8 MOVEA MOVEA RW4 RW4,RW4 ,@RW4+d8 MOVEA MOVEA RW4 RW4,RW3 ,@RW3+d8 MOVEA MOVEA RW4 RW4,RW2 ,@RW2+d8 MOVEA MOVEA RW4 RW4,RW1 ,@RW1+d8 MOVEA MOVEA RW4 RW4,RW0 ,@RW0+d8 80 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW0+ ,@RW0+RW7 RW6,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW3 RW3,@RW3 ,@RW3+d16 MOVEA MOVEA RW3 RW3,@RW2 ,@RW2+d16 MOVEA MOVEA RW3 RW3,@RW1 ,@RW1+d16 MOVEA MOVEA RW3 RW3,@RW0 ,@RW0+d16 MOVEA MOVEA RW3 RW3,RW7 ,@RW7+d8 MOVEA MOVEA RW3 RW3,RW6 ,@RW6+d8 MOVEA MOVEA RW3 RW3,RW5 ,@RW5+d8 MOVEA MOVEA RW3 RW3,RW4 ,@RW4+d8 MOVEA MOVEA RW3 RW3,RW3 ,@RW3+d8 MOVEA MOVEA RW3 RW3,RW2 ,@RW2+d8 MOVEA MOVEA RW3 RW3,RW1 ,@RW1+d8 MOVEA MOVEA RW3 RW3,RW0 ,@RW0+d8 60 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW0+ ,@RW0+RW7 RW1,@RW0+ ,@RW0+RW7 RW2,@RW0+ ,@RW0+RW7 RW3,@RW0+ ,@RW0+RW7 RW4,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW2 RW2,@RW3 ,@RW3+d16 MOVEA MOVEA RW2 RW2,@RW2 ,@RW2+d16 MOVEA MOVEA RW2 RW2,@RW1 ,@RW1+d16 MOVEA MOVEA RW2 RW2,@RW0 ,@RW0+d16 MOVEA MOVEA RW2 RW2,RW7 ,@RW7+d8 MOVEA MOVEA RW2 RW2,RW6 ,@RW6+d8 MOVEA MOVEA RW2 RW2,RW5 ,@RW5+d8 MOVEA MOVEA RW2 RW2,RW4 ,@RW4+d8 MOVEA MOVEA RW2 RW2,RW3 ,@RW3+d8 MOVEA MOVEA RW2 RW2,RW2 ,@RW2+d8 MOVEA MOVEA RW2 RW2,RW1 ,@RW1+d8 MOVEA MOVEA RW2 RW2,RW0 ,@RW0+d8 40 +C +B RW0,@RW3 ,@RW3+d16 +A RW0,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,RW1 ,@RW1+d8 MOVEA MOVEA RW0 RW0,RW1 ,@RW1+d8 +1 30 MOVEA MOVEA RW1 RW1,RW0 ,@RW0+d8 20 MOVEA MOVEA RW0 RW0,RW0 ,@RW0+d8 10 +0 00 付録 表 B.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) 631 632 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 @RW3, R1 @RW3+d16, R1 MOV @RW2, R1 @RW2+d16, R1 MOV @RW1, R1 @RW1+d16, R1 MOV @RW0, R1 @RW0+d16, R1 MOV MOV MOV MOV MOV MOV MOV @RW3, R2 @RW3+d16, R2 MOV @RW2, R2 @RW2+d16, R2 MOV @RW1, R2 @RW1+d16, R2 MOV @RW0, R2 @RW0+d16, R2 MOV MOV MOV MOV MOV MOV MOV @RW3, R3 @RW3+d16, R3 MOV @RW2, R3 @RW2+d16, R3 MOV @RW1, R3 @RW1+d16, R3 MOV @RW0, R3 @RW0+d16, R3 MOV MOV MOV MOV MOV MOV MOV @RW3, R4 @RW3+d16, R4 MOV @RW2, R4 @RW2+d16, R4 MOV @RW1, R4 @RW1+d16, R4 MOV @RW0, R4 @RW0+d16, R4 MOV MOV MOV MOV MOV MOV MOV @RW3, R5 @RW3+d16, R5 MOV @RW2, R5 @RW2+d16, R5 MOV @RW1, R5 @RW1+d16, R5 MOV @RW0, R5 @RW0+d16, R5 MOV MOV MOV MOV MOV MOV MOV @RW3, R6 @RW3+d16, R6 MOV @RW2, R6 @RW2+d16, R6 MOV @RW1, R6 @RW1+d16, R6 MOV @RW0, R6 @RW0+d16, R6 MOV MOV MOV MOV MOV MOV MOV @RW3, R7 @RW3+d16, R7 MOV @RW2, R7 @RW2+d16, R7 MOV @RW1, R7 @RW1+d16, R7 MOV @RW0, R7 @RW0+d16, R7 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3+, R0 addr16, R0 MOV @RW3+, R1 addr16, R1 MOV MOV MOV MOV MOV @RW2+, R1 @PC+d16, R1 MOV @RW2+, R0 @PC+d16, R0 MOV MOV MOV @RW3+, R2 addr16, R2 MOV @RW2+, R2 @PC+d16, R2 MOV MOV MOV @RW3+, R3 addr16, R3 MOV @RW2+, R3 @PC+d16, R3 MOV MOV MOV @RW3+, R4 addr16, R4 MOV @RW2+, R4 @PC+d16, R4 MOV MOV MOV @RW3+, R5 addr16, R5 MOV @RW2+, R5 @PC+d16, R5 MOV MOV MOV @RW3+, R6 addr16, R6 MOV @RW2+, R6 @PC+d16, R6 MOV MOV MOV @RW3+, R7 addr16, R7 MOV @RW2+, R7 @PC+d16, R7 MOV @RW1+, R0 @RW1+RW7, R0 @RW1+, R1 @RW1+RW7, R1 @RW1+, R2 @RW1+RW7, R2 @RW1+, R3 @RW1+RW7, R3 @RW1+, R4 @RW1+RW7, R4 @RW1+, R5 @RW1+RW7, R5 @RW1+, R6 @RW1+RW7, R6 @RW1+, R7 @RW1+RW7, R7 MOV @RW0+, R0 @RW0+RW7, R0 @RW0+, R1 @RW0+RW7, R1 @RW0+, R2 @RW0+RW7, R2 @RW0+, R3 @RW0+RW7, R3 @RW0+, R4 @RW0+RW7, R4 @RW0+, R5 @RW0+RW7, R5 @RW0+, R6 @RW0+RW7, R6 @RW0+, R7 @RW0+RW7, R7 MOV @RW3, R0 @RW3+d16, R0 MOV @RW2, R0 @RW2+d16, R0 MOV @RW1, R0 @RW1+d16, R0 MOV @RW0, R0 @RW0+d16, R0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R7, R0 @RW7+d8, R0 R7, R1 @RW7+d8, R1 R7, R2 @RW7+d8, R2 R7, R3 @RW7+d8, R3 R7, R4 @RW7+d8, R4 R7, R5 @RW7+d8, R5 R7, R6 @RW7+d8, R6 R7, R7 @RW7+d8, R7 F0 +7 E0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R6, R0 @RW6+d8, R0 R6, R1 @RW6+d8, R1 R6, R2 @RW6+d8, R2 R6, R3 @RW6+d8, R3 R6, R4 @RW6+d8, R4 R6, R5 @RW6+d8, R5 R6, R6 @RW6+d8, R6 R6, R7 @RW6+d8, R7 D0 +6 C0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R5, R0 @RW5+d8, R0 R5, R1 @RW5+d8, R1 R5, R2 @RW5+d8, R2 R5, R3 @RW5+d8, R3 R5, R4 @RW5+d8, R4 R5, R5 @RW5+d8, R5 R5, R6 @RW5+d8, R6 R5, R7 @RW5+d8, R7 B0 +5 A0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R4, R0 @RW4+d8, R0 R4, R1 @RW4+d8, R1 R4, R2 @RW4+d8, R2 R4, R3 @RW4+d8, R3 R4, R4 @RW4+d8, R4 R4, R5 @RW4+d8, R5 R4, R6 @RW4+d8, R6 R4, R7 @RW4+d8, R7 90 +4 80 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R3, R0 @RW3+d8, R0 R3, R1 @RW3+d8, R1 R3, R2 @RW3+d8, R2 R3, R3 @RW3+d8, R3 R3, R4 @RW3+d8, R4 R3, R5 @RW3+d8, R5 R3, R6 @RW3+d8, R6 R3, R7 @RW3+d8, R7 70 +3 60 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R2, R0 @RW2+d8, R0 R2, R1 @RW2+d8, R1 R2, R2 @RW2+d8, R2 R2, R3 @RW2+d8, R3 R2, R4 @RW2+d8, R4 R2, R5 @RW2+d8, R5 R2, R6 @RW2+d8, R6 R2, R7 @RW2+d8, R7 50 +2 40 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R1, R0 @RW1+d8, R0 R1, R1 @RW1+d8, R1 R1, R2 @RW1+d8, R2 R1, R3 @RW1+d8, R3 R1, R4 @RW1+d8, R4 R1, R5 @RW1+d8, R5 R1, R6 @RW1+d8, R6 R1, R7 @RW1+d8, R7 30 +1 20 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R0, R0 @RW0+d8, R0 R0, R1 @RW0+d8, R1 R0, R2 @RW0+d8, R2 R0, R3 @RW0+d8, R3 R0, R4 @RW0+d8, R4 R0, R5 @RW0+d8, R5 R0, R6 @RW0+d8, R6 R0, R7 @RW0+d8, R7 10 +0 00 付録 B 命令 表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH) 633 634 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 XCH XCH XCH R1, XCH XCH R1, R1,@RW2 W2+d16, A XCH XCH R2, XCH XCH R2, R2,@RW2 W2+d16, A XCH XCH R3, XCH XCH R3, R3,@RW2 W2+d16, A XCH XCH R4, XCH XCH R4, R4,@RW2 W2+d16, A XCH XCH R5, XCH XCH R5, R5,@RW2 W2+d16, A XCH XCH R6, XCH XCH R6, R6,@RW2 W2+d16, A XCH XCH R7, XCH XCH R7, R7,@RW2 W2+d16, A XCH XCH XCH XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, +F R0,@RW3+ R0, addr16 XCH XCH R1,@RW3+ R1, addr16 XCH XCH R2,@RW3+ R2, addr16 XCH XCH R3,@RW3+ R3, addr16 XCH XCH R4,@RW3+ R4, addr16 XCH XCH R5,@RW3+ R5, addr16 XCH XCH R6,@RW3+ R6, addr16 XCH XCH R7,@RW3+ R7, addr16 +E R0,@RW2+ @PC+d16 R1,@RW2+ @PC+d16 R2,@RW2+ @PC+d16 R3,@RW2+ @PC+d16 R4,@RW2+ @PC+d16 R5,@RW2+ @PC+d16 R6,@RW2+ @PC+d16 R7,@RW2+ @PC+d16 R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW1+RW7 R1,@RW1+ @RW1+RW7 R2,@RW1+ @RW1+RW7 R3,@RW1+ @RW1+RW7 R4,@RW1+ @RW1+RW7 R5,@RW1+ @RW1+RW7 R6,@RW1+ @RW1+RW7 R7,@RW1+ @RW1+RW7 +D R0,@RW1+ XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW0+RW7 R1,@RW0+ @RW0+RW7 R2,@RW0+ @RW0+RW7 R3,@RW0+ @RW0+RW7 R4,@RW0+ @RW0+RW7 R5,@RW0+ @RW0+RW7 R6,@RW0+ @RW0+RW7 R7,@RW0+ @RW0+RW7 XCH +C R0,@RW0+ +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 R0, +A R0,@RW2 W2+d16, A R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-20 XCH Ri, ea 命令 ( 第 1 バイト =7EH) 635 636 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) 索引 Numerics 1/2 デューティ 1/2 バイアス・1/2 デューティ出力波形 ............472 LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) ............................474 1/2 バイアス 1/2 バイアス・1/2 デューティ出力波形 ............472 1/3 デューティ 1/3 バイアス ,1/3 デューティ出力波形 ..............475 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) ............................477 1/3 バイアス 1/3 バイアス ,1/3 デューティ出力波形 ..............475 1/3 バイアス ,1/4 デューティ出力波形 ..............478 1/4 デューティ 1/3 バイアス ,1/4 デューティ出力波形 ..............478 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) ............................480 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの動作 ............239 16 ビットインプットキャプチャの入力 タイミング ......................................................239 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR0,TMR1) ..........254 16 ビットフリーランタイマ 16 ビットフリーランタイマのカウント タイミング ......................................................241 16 ビットフリーランタイマのクリア タイミング ......................................................241 16 ビットフリーランタイマの動作説明 ............240 16 ビットフリーランタイマ部 レジスタ一覧 ..................................................230 16 ビットリロードタイマ 16 ビットリロードタイマの EI2OS 機能 ...........256 16 ビットリロードタイマの使用上の注意 ........265 16 ビットリロードタイマの設定 ........................257 16 ビットリロードタイマの端子 ........................248 16 ビットリロードタイマの端子のブロック ダイヤグラム ..................................................248 16 ビットリロードタイマの動作モード ............244 16 ビットリロードタイマのブロックダイヤ グラム ..............................................................246 16 ビットリロードタイマのレジスタ一覧 ........249 16 ビットリロードタイマの割込み ....................256 16 ビットリロードタイマの割込みと EI2OS ........................................................245, 256 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................371 16 ビットリロードレジスタ 16 ビットリロードレジスタ (TMRLR0/TMRLR1) ......................................255 1M ビットフラッシュメモリ 1M ビットフラッシュメモリのセクタ構成 ......528 1M ビットフラッシュメモリの特長 ..................526 1M ビットフラッシュメモリの プログラム例 ..................................................549 24 ビットオペランド指定 24 ビットオペランド指定 .....................................26 32 ビットレジスタ間接指定 32 ビットレジスタ間接指定 .................................26 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 .......337 8/10 ビット A/D コンバータの EI2OS 機能 ......330 8/10 ビット A/D コンバータの機能 ...................318 8/10 ビット A/D コンバータの端子 ...................321 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..................................322 8/10 ビット A/D コンバータのブロック ダイヤグラム ..................................................319 8/10 ビット A/D コンバータの レジスタ一覧 ..................................................323 8/10 ビット A/D コンバータの割込み ...............330 8/10 ビット A/D コンバータの割込みと EI2OS ........................................................318, 330 A A アキュムレータ (A) ................................................34 A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 .......337 8/10 ビット A/D コンバータの EI2OS 機能 ......330 8/10 ビット A/D コンバータの機能 ...................318 8/10 ビット A/D コンバータの端子 ...................321 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..................................322 8/10 ビット A/D コンバータのブロック ダイヤグラム ..................................................319 8/10 ビット A/D コンバータの レジスタ一覧 ..................................................323 8/10 ビット A/D コンバータの割込み ...............330 8/10 ビット A/D コンバータの割込みと EI2OS ........................................................318, 330 A/D コンバータの電源アナログ入力の 投入順序 ............................................................18 A/D コンバータの電源端子処理 ..........................17 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ下位 (ADCSL) ..........................................................326 A/D 制御ステータスレジスタ上位 (ADCSH) ..........................................................324 A/D データレジスタ A/D データレジスタ (ADCRH/ADCRL) ............328 A/D 変換 A/D 変換データ保護機能 ....................................335 A/D 変換データ保護機能 A/D 変換データ保護機能 ....................................335 ADB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) .......................................48 バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........45 ADCRH A/D データレジスタ (ADCRH/ADCRL) ............328 637 ADCRL A/D データレジスタ (ADCRH/ADCRL) ............328 ADCSH A/D 制御ステータスレジスタ上位 (ADCSH) .........................................................324 ADCSL A/D 制御ステータスレジスタ下位 (ADCSL) ...........................................................326 AMR アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 .......................423 AMSR アクセプタンスマスク選択レジスタ (AMSR) の ビット構成 ......................................................421 B BAP バッファアドレスポインタ (BAP) .......................81 BTR ビットタイミングレジスタ (BTR) の ビット構成 ......................................................406 BVAL BVAL ビットによるメッセージバッファ 禁止時の注意 ..................................................448 BVALR メッセージバッファ有効レジスタ (BVALR) の ビット構成 ......................................................409 C CAN CAN ウェイクアップ機能 端子切換え回路の ブロックダイヤグラム ..................................447 CAN ウェイクアップ機能で使用する 端子について ..................................................447 CAN ウェイクアップ機能について ...................447 CAN 受信設定のフローチャート .......................438 CAN 送受信のプログラム例 ...............................450 CAN 送信設定フローチャート ...........................434 CAN ウェイクアップ CAN ウェイクアップ機能 端子切換え回路の ブロックダイヤグラム ..................................447 CAN ウェイクアップ機能で使用する 端子について ..................................................447 CAN ウェイクアップ機能について ...................447 CAN ウェイクアップ制御レジスタ CAN ウェイクアップ制御レジスタ ...................397 CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成 ...............................432 CAN コントローラ CAN コントローラの受信フローチャート .......439 CAN コントローラの送信の開始 .......................433 CAN コントローラの送信の完了 .......................433 CAN コントローラの送信フローチャート .......435 CAN コントローラの送信要求の解除 ...............433 CAN コントローラの特長 ...................................390 CAN コントローラのブロックダイヤグラム ...391 CAN 送受信 CAN 送受信のプログラム例 ...............................450 CCR コンディションコードレジスタ (PS:CCR) .........40 638 CDCR 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成 ..................................................361 CKSCR クロック選択レジスタ (CKSCR) の構成 ...........112 CMR コモンレジスタバンクプリフィックス (CMR) ................................................................49 CPCLR コンペアクリアレジスタ (CPCLR) ....................234 CPU CPU 間欠動作モード ....................................123, 130 CPU 動作モードと消費電流 ................................122 CPU の特長 ..............................................................20 CPU 間欠動作モード CPU 間欠動作モード ....................................123, 130 CPU 動作検出 CPU 動作検出リセット回路 ................................483 CPU 動作検出リセット回路の使用上の 注意 ..................................................................489 CPU 動作検出リセット回路の動作 ....................488 低電圧 /CPU 動作検出リセット回路の プログラム例 ..................................................490 低電圧 /CPU 動作検出リセット回路の ブロックダイヤグラム ..................................484 CPU 動作検出リセット回路 CPU 動作検出リセット回路 ................................483 CPU 動作検出リセット回路の使用上の 注意 ..................................................................489 CPU 動作検出リセット回路の動作 ....................488 CPU 動作モード CPU 動作モードと消費電流 ................................122 CSR 制御ステータスレジスタ (CSR) の ビット構成 ......................................................398 CWUCR CAN ウェイクアップ制御レジスタ (CWUCR) の ビット構成 ......................................................432 D DCT データカウンタ (DCT) ........................................... 79 DLCRx DLC レジスタ x (x=0 ~ 15) (DLCRx) の ビット構成 ......................................................429 DLC レジスタ DLC レジスタ x (x=0 ~ 15) (DLCRx) の ビット構成 ......................................................429 DPR ダイレクトページレジスタ (DPR) .......................44 DQ3 セクタ消去タイマフラグ (DQ3) .........................538 DQ5 タイミングリミット超過フラグ (DQ5) .............537 DQ6 トグルビットフラグ (DQ6) .................................536 DQ7 データポーリングフラグ (DQ7) .........................535 DTB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) .......................................48 バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........45 DTP DTP/ 外部割込み回路の使用上の注意 ...............311 DTP/ 外部割込み回路の設定 ...............................306 DTP/ 外部割込み回路の端子 ...............................300 DTP/ 外部割込み回路の端子のブロック ダイヤグラム ..................................................300 DTP/ 外部割込み回路のブロックダイヤ グラム ..............................................................298 DTP/ 外部割込み回路のレジスタ .......................301 DTP/ 外部割込み回路の割込みと EI2OS ...........297 DTP/ 外部割込み機能 ...........................................296 DTP/ 外部割込み動作 ...........................................307 DTP 機能の動作説明 ............................................310 DTP 機能のプログラム例 ....................................314 DTP/ 外部割込み DTP/ 外部割込み機能 ...........................................296 DTP/ 外部割込み動作 ...........................................307 DTP/ 外部割込み回路 DTP/ 外部割込み回路の使用上の注意 ...............311 DTP/ 外部割込み回路の設定 ...............................306 DTP/ 外部割込み回路の端子 ...............................300 DTP/ 外部割込み回路の端子のブロック ダイヤグラム ..................................................300 DTP/ 外部割込み回路のブロックダイヤ グラム ..............................................................298 DTP/ 外部割込み回路のレジスタ .......................301 DTP/ 外部割込み回路の割込みと EI2OS ...........297 DTP/ 割込み許可レジスタ DTP/ 割込み許可レジスタ (ENIR) ......................303 DTP/ 割込み要因レジスタ DTP/ 割込み要因レジスタ (EIRR) ......................302 DTRx データレジスタ x (x=0 ~ 15) (DTRx) の ビット構成 ......................................................430 DVCC 高電流出力バッファ端子用電源 (DVCC,DVSS) の取扱い .................................18 DVSS 高電流出力バッファ端子用電源 (DVCC,DVSS) の取扱い .................................18 E E2PROM E2PROM メモリマップ ........................................517 EI2OS 16 ビットリロードタイマの EI2OS 機能 ...........256 16 ビットリロードタイマの割込みと EI2OS ........................................................245, 256 8/10 ビット A/D コンバータの EI2OS 機能 .......330 8/10 ビット A/D コンバータの割込みと EI2OS ........................................................318, 330 DTP/ 外部割込み回路の割込みと EI2OS ...........297 EI2OS を使用した変換動作 .................................334 PPG タイマの割込みと EI2OS .............................279 UART に関連する割込みと EI2OS .....................347 UART の EI2OS 機能 ............................................364 UART の割込みと EI2OS .....................................364 インプットキャプチャの割込みと EI2OS .........238 拡張インテリジェント I/O サービス (EI2OS) ..............................................................76 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) .............84 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS) ............................80 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 ......................... 78 拡張インテリジェント I/O サービス (EI2OS) の 使用手順 ............................................................83 拡張インテリジェント I/O サービス (EI2OS) の 処理手順 ............................................................82 拡張インテリジェント I/O サービス (EI2OS) の 動作 ....................................................................77 拡張インテリジェント I/O サービス (EI2OS) の プログラム例処理仕様 .................................... 91 タイムベースタイマの割込みと EI2OS .............219 単発モードの EI2OS 起動プログラム例 ............338 遅延割込み発生モジュールの割込みと EI2OS ................................................................292 停止モードの EI2OS 起動プログラム例 ............342 時計タイマの割込みと EI2OS .............................221 連続モードの EI2OS 起動プログラム例 ............340 EIRR DTP/ 割込み要因レジスタ (EIRR) ......................302 ELVRH 要求レベル設定レジスタ (ELVRH/ELVRL) .....304 ELVRL 要求レベル設定レジスタ (ELVRH/ELVRL) .....304 ENIR DTP/ 割込み許可レジスタ (ENIR) ......................303 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................601 FMCS フラッシュメモリコントロールステータス レジスタ (FMCS) ............................................531 H HALT バス動作停止間の状態 (HALT=1) ......................402 バス動作停止ビット (HALT=1) ..........................401 I I/O I/O 領域 ....................................................................22 I/O ポート I/O ポートの機能 ..................................................156 I/O ポートのプログラム例 ..................................204 I/O ポートのレジスタ一覧 ..................................158 I/O マップ I/O マップ ..............................................................570 I/O レジスタアドレスポインタ I/O レジスタアドレスポインタ (IOA) .................79 ICR 割込み制御レジスタ (ICR) の構成 .......................61 割込み制御レジスタ (ICR00 ~ ICR15) ...............59 639 ICS インプットキャプチャコントロールステータス レジスタ (ICS01,ICS23) .................................232 ID ID の設定 ...............................................................440 IDER IDE レジスタ (IDER) のビット構成 ...................410 IDE レジスタ IDE レジスタ (IDER) のビット構成 ...................410 IDRx ID レジスタ x (x=0 ~ 15) (IDRx) の ビット構成 ......................................................426 ID レジスタ ID レジスタ x (x=0 ~ 15) (IDRx) の ビット構成 ......................................................426 ID レジスタの設定例 ...........................................427 ILM インタラプトレベルマスクレジスタ (PS:ILM) ............................................................42 INT9 INT9 割込み ...........................................................520 IOA I/O レジスタアドレスポインタ (IOA) .................79 IPCP インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3) ............................................232 ISCS 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS) ............................80 ISD 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 .........................78 L LCD LCD の駆動波形 ....................................................471 LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) ............................474 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) .............................477 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) ............................480 LCD 未使用時の端子処理について ......................18 LCD コントローラ / ドライバ LCD コントローラ / ドライバに関連する 端子 ..................................................................461 LCD コントローラ / ドライバに関連する 端子のブロックダイヤグラム ......................462 LCD コントローラ / ドライバに関連する レジスタのビット構成 ..................................463 LCD コントローラ / ドライバの外部分割 抵抗 ..................................................................459 LCD コントローラ / ドライバの機能 ................454 LCD コントローラ / ドライバの電源電圧 ........456 LCD コントローラ / ドライバの動作 ................470 LCD コントローラ / ドライバの内部分割 抵抗 ..................................................................457 LCD コントローラ / ドライバのブロック ダイヤグラム ..................................................455 640 LCD 制御レジスタ LCD 制御レジスタ下位 (LCRL) のビット 構成 ..................................................................464 LCD 制御レジスタ上位 (LCRH) のビット 構成 ..................................................................466 LCRH LCD 制御レジスタ上位 (LCRH) のビット 構成 ..................................................................466 LCRL LCD 制御レジスタ下位 (LCRL) のビット 構成 ..................................................................464 LEIR ラストイベント表示レジスタ (LEIR) の ビット構成 ......................................................403 LPMCR スタンバイモード遷移のための低消費電力 モード制御レジスタ (LPMCR) へアクセス する際の注意事項 ..........................................147 低消費電力モード制御レジスタ (LPMCR) .......127 LQFP100 端子配列図 (LQFP100) ........................................... 10 パッケージ外形寸法図 (LQFP100) .........................8 LVRC 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成 ....................................486 M MD モード端子 (MD2 ~ MD0) ..................................151 N NCC フラグ変化抑止プリフィックス (NCC) .............. 50 P PACSR プログラムアドレス検出コントロール レジスタ (PACSR) ..........................................515 PADR プログラムアドレス検出レジスタ (PADR0/PADR1) .............................................515 PC プログラムカウンタ (PC) ......................................43 PCB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) .......................................48 バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........45 PCNTH PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2,PCNTL0 ~ PCNTL2) .....................283 PCNTL PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2,PCNTL0 ~ PCNTL2) .....................283 PCSR PPG 周期設定レジスタ (PCSR) ...........................286 PDCR PPG ダウンカウンタレジスタ (PDCR) ..............286 PDUT PPG デューティ設定レジスタ (PDUT) ..............287 PLL PLL クロック逓倍率の選択 ................................116 PLL クロック PLL クロック逓倍率の選択 ................................116 PLL クロックモード PLL クロックモード動作中の注意について ......18 メインクロックモード ,PLL クロックモード , サブクロックモード ......................................115 PPG 周期設定レジスタ PPG 周期設定レジスタ (PCSR) ...........................286 PPG 制御ステータスレジスタ PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2,PCNTL0 ~ PCNTL2) ......................283 PPG タイマ PPG タイマのブロックダイヤグラム ................280 PPG タイマのレジスタ一覧 ................................281 PPG タイマの割込みと EI2OS .............................279 PPG ダウンカウンタレジスタ PPG ダウンカウンタレジスタ (PDCR) ..............286 PPG デューティ設定レジスタ PPG デューティ設定レジスタ (PDUT) ..............287 PS インタラプトレベルマスクレジスタ (PS:ILM) ............................................................42 コンディションコードレジスタ (PS:CCR) .........40 プロセッサステータス (PS) のビット構成 .........39 レジスタバンクポインタ (PS:RP) ........................41 PWC PWM1,PWM2 コンペアレジスタ (PWC10 ~ PWC13,PWC20 ~ PWC23) の ビット構成 ......................................................496 PWM 制御レジスタ (PWC0 ~ PWC3) の ビット構成 ......................................................495 PWM PWM1,PWM2 コンペアレジスタ (PWC10 ~ PWC13,PWC20 ~ PWC23) の ビット構成 ......................................................496 PWM1,PWM2 選択レジスタ (PWS10 ~ PWS13, PWS20 ~ PWS23) のビット構成 ..................498 PWM 出力許可時の注意 ......................................502 PWM 設定値変更時の注意 ..................................502 PWM 動作 ..............................................................288 PWM 制御レジスタ PWM 制御レジスタ (PWC0 ~ PWC3) の ビット構成 ......................................................495 PWS PWM1,PWM2 選択レジスタ (PWS10 ~ PWS13,PWS20 ~ PWS23) の ビット構成 ......................................................498 Q QFP100 端子配列図 (QFP100) ................................................9 パッケージ外形寸法図 (QFP100) ............................7 R RAM 領域 ................................................................22 表示用 RAM と出力端子 .....................................468 RCR 受信完了レジスタ (RCR) のビット構成 ............417 RFWTR リモートフレーム受信待機レジスタ (RFWTR) のビット構成 ................................413 RIER 受信割込み許可レジスタ (RIER) の ビット構成 ......................................................420 ROM ROM 領域 ................................................................22 ROMM ROM ミラー機能選択レジスタ (ROMM) ..........523 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................522 ROM ミラー機能選択モジュールの レジスタ ..........................................................522 ROM ミラー機能選択レジスタ ROM ミラー機能選択レジスタ (ROMM) ..........523 ROVRR 受信オーバランレジスタ (ROVRR) の ビット構成 ......................................................419 RP レジスタバンクポインタ (PS:RP) ........................41 RRTRR リモート要求受信レジスタ (RRTRR) の ビット構成 ......................................................418 RTEC 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成 ....................................405 RUN モード RUN モード ...........................................................150 S SCR シリアル制御レジスタ (SCR0/SCR1) の ビット構成 ......................................................353 SGAR 振幅データレジスタ (SGAR) ..............................509 SGCRH サウンド制御レジスタ (SGCRH,SGCRL) の ビット構成 ......................................................506 SGCRL サウンド制御レジスタ (SGCRH,SGCRL) の ビット構成 ......................................................506 SGDR デクリメントグレードレジスタ (SGDR) ..........510 SGFR 周波数データレジスタ (SGFR) ...........................508 SGTR トーンカウントレジスタ (SGTR) ......................511 SIDR シリアル入力データレジスタ (SIDR0/SIDR1) の ビット構成 ......................................................359 SMR シリアルモードレジスタ (SMR0/SMR1) の ビット構成 ......................................................355 RAM RAM 上の多バイト長データの配置 ....................29 641 SODR シリアル出力データレジスタ (SODR0/SODR1) の ビット構成 ......................................................360 SPB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) ........................................48 SSB バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........45 SSP システムスタックポインタ (SSP) ........................38 SSR シリアルステータスレジスタ (SSR0/SSR1) の ビット構成 ......................................................357 T TBTC タイムベースタイマ制御レジスタのビット 構成 (TBTC) ....................................................211 TCANR 送信解除レジスタ (TCANR) のビット構成 ......414 TCCSH タイマコントロールステータスレジスタ (TCCSH,TCCSL) .............................................235 TCCSL タイマコントロールステータスレジスタ (TCCSH,TCCSL) .............................................235 TCDT タイマデータレジスタ (TCDT) ..........................234 TCR 送信完了レジスタ (TCR) のビット構成 ............415 TIER 送信割込み許可レジスタ (TIER) のビット 構成 ..................................................................416 TMCSR タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) ...................................252 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) ..................................250 TMR 16 ビットタイマレジスタ (TMR0,TMR1) ..........254 TMRLR 16 ビットリロードレジスタ (TMRLR0/TMRLR1) .......................................255 TREQR 送信要求レジスタ (TREQR) のビット構成 .......411 TRTRR 送信 RTR レジスタ (TRTRR) のビット構成 .....412 U UART UART 使用上の注意 .............................................386 UART に関連する割込みと EI2OS .....................347 UART の EI2OS 機能 ............................................364 UART の機能 .........................................................346 UART の端子 .........................................................351 UART の端子のブロックダイヤグラム .............351 UART の動作 .........................................................374 UART の動作モード .............................................347 UART のプログラム例 .........................................387 UART のブロックダイヤグラム .........................348 642 UART のレジスタ一覧 ........................................352 UART の割込み .....................................................363 UART の割込みと EI2OS .....................................364 UART ボーレート選択 ........................................367 USB バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........45 USP ユーザスタックポインタ (USP) ...........................38 W WDTC ウォッチドッグタイマ制御レジスタ (WDTC) のビット構成 ..................................209 WTC 時計タイマ制御レジスタ (WTC) ........................213 あ アキュムレータ アキュムレータ (A) ................................................34 アクセス空間 バンクレジスタとアクセス空間 ..........................27 アクセプタンスフィルタ アクセプタンスフィルタの設定 ........................441 アクセプタンスフィルタリング アクセプタンスフィルタリング ........................436 アクセプタンスマスク選択レジスタ アクセプタンスマスク選択レジスタ (AMSR) のビット構成 ...................................421 アクセプタンスマスクレジスタ アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 .......................423 アドレス一致検出機能 アドレス一致検出機能処理の フローチャート ..............................................519 アドレス一致検出機能の動作 ............................516 アドレス一致検出機能のブロック ダイヤグラム ..................................................514 アドレス一致検出機能のレジスタ構成 ............514 アドレッシング バンクアドレッシングとデフォルト空間 ..........28 リニアアドレッシングとバンク アドレッシング ................................................25 アドレッシング ....................................................578 間接アドレッシング ............................................587 直接アドレッシング ............................................580 アルゴリズム 自動アルゴリズム終了タイミング ....................532 い 一時停止 フラッシュメモリのセクタ消去を 一時停止する ..................................................546 イベントカウントモード イベントカウントモード ....................................263 イベントカウントモード ( 外部クロックモード ) .................................245 イベントカウントモードのプログラム例 ........267 インターバル時間 ウォッチドッグタイマのインターバル時間 ..........................................................................217 インターバル割込み インターバル割込み機能 .....................................218 時計タイマのインターバル割込み機能 .............221 インタラプトレベルマスクレジスタ インタラプトレベルマスクレジスタ (PS:ILM) .............................................................42 インプットキャプチャ 16 ビットインプットキャプチャの動作 ............239 16 ビットインプットキャプチャの入力 タイミング ......................................................239 インプットキャプチャの割込みと EI2OS .........238 インプットキャプチャ部レジスタ一覧 .............231 インプットキャプチャコントロールステータスレジ スタ インプットキャプチャコントロール ステータスレジスタ (ICS01,ICS23) .............232 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3) .............................................232 う ウェイクアップ CAN ウェイクアップ機能 端子切換え回路の ブロックダイヤグラム ..................................447 CAN ウェイクアップ機能で使用する 端子について ..................................................447 CAN ウェイクアップ機能について ...................447 ウォッチドッグタイマ ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム ..........207 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 ..........................208 ウォッチドッグタイマ機能 .................................206 ウォッチドッグタイマのインターバル時間 .....217 ウォッチドッグタイマの起動方法 .....................216 ウォッチドッグタイマのクリア .........................216 ウォッチドッグタイマの使用上の注意 .............222 ウォッチドッグタイマの動作クロックの 設定 ..................................................................221 ウォッチドッグタイマのプログラム例 .............225 ウォッチドッグタイマリセットの阻止 .............216 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) のビット構成 ...................................209 ウォッチドッグ停止 ウォッチドッグ停止 .............................................216 え エラー 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成 ....................................405 お オーバラン 受信オーバラン .....................................................437 オペランド指定 24 ビットオペランド指定 .....................................26 か 外形寸法図 パッケージ外形寸法図 (LQFP100) .........................8 パッケージ外形寸法図 (QFP100) ........................... 7 外部クロック 外部クロックによるボーレート ........................373 外部クロックを使用する場合 ..............................17 振動子と外部クロックの接続 ............................120 外部クロックモード イベントカウントモード ( 外部クロックモード ) .................................245 外部分割抵抗 LCD コントローラ / ドライバの 外部分割抵抗 ..................................................459 外部分割抵抗の使用 ............................................460 外部リセット 外部リセット端子のブロックダイヤグラム ............................................................................ 99 外部割込み DTP/ 外部割込み回路の使用上の注意 ...............311 DTP/ 外部割込み回路の設定 ...............................306 DTP/ 外部割込み回路の端子 ...............................300 DTP/ 外部割込み回路の端子のブロック ダイヤグラム ..................................................300 DTP/ 外部割込み回路のブロック ダイヤグラム ..................................................298 DTP/ 外部割込み回路のレジスタ .......................301 DTP/ 外部割込み回路の割込みと EI2OS ...........297 DTP/ 外部割込み機能 ...........................................296 DTP/ 外部割込み動作 ...........................................307 外部割込み機能 ....................................................309 外部割込み機能のプログラム例 ........................313 書込み シリアル書込み接続例 ........................................560 富士通標準シリアルオンボード書込みに 使用する端子 ..................................................557 フラッシュメモリ書込み / 消去の詳細 .............539 フラッシュメモリ書込み / 消去の方法 .............526 フラッシュメモリ書込み手順 ............................541 拡張インテリジェント I/O サービス 拡張インテリジェント I/O サービス (EI2OS) ...............................................................76 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) .............. 84 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS) .............. 80 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 ...........78 拡張インテリジェント I/O サービス (EI2OS) の使用手順 ..........................................83 拡張インテリジェント I/O サービス (EI2OS) の処理手順 ..........................................82 拡張インテリジェント I/O サービス (EI2OS) の動作 ..................................................77 拡張インテリジェント I/O サービス (EI2OS) のプログラム例処理仕様 .................. 91 間欠動作モード CPU 間欠動作モード ............................................123 643 間接アドレッシング 間接アドレッシング .............................................587 き 起動プログラム 単発モードの EI2OS 起動プログラム例 ............338 停止モードの EI2OS 起動プログラム例 ............342 連続モードの EI2OS 起動プログラム例 ............340 輝度調整 内部分割抵抗使用時の輝度調整 .........................458 供給電圧 供給電圧の安定化 ...................................................16 く 駆動波形 LCD の駆動波形 ....................................................471 駆動方式 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) .............................477 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) .............................480 クロック PLL クロック逓倍率の選択 ................................116 PLL クロックモード動作中の注意について ......18 イベントカウントモード ( 外部クロックモード ) ..................................245 ウォッチドッグタイマの動作クロックの 設定 ..................................................................221 外部クロックによるボーレート .........................373 クロック供給マップ .............................................109 クロックの概要 .....................................................108 クロックモード .....................................................123 クロックモードの切換え .....................................146 サブクロックモードを使用しない場合の 注意 ....................................................................18 振動子と外部クロックの接続 .............................120 内部クロックモード .............................................244 内部クロックモード ( リロードモード ) の 動作 ..................................................................259 内部クロックモード ( ワンショットモード ) の 動作 ..................................................................261 内部クロックモードのプログラム例 .................266 入力可能なシリアルクロック周波数 .................558 マシンクロック .....................................................116 クロック供給マップ クロック供給マップ .............................................109 クロック選択レジスタ クロック選択レジスタ (CKSCR) の構成 ...........112 クロック発生部 クロック発生部のブロックダイヤグラム .........110 クロックモード イベントカウントモード ( 外部クロックモード ) ..................................245 クロックモード .....................................................123 クロックモードの移行 .........................................115 クロックモードの切換え .....................................146 内部クロックモード .............................................244 メインクロックモード ,PLL クロックモード , サブクロックモード ......................................115 644 け 検出 CPU 動作検出リセット回路 ................................483 CPU 動作検出リセット回路の 使用上の注意 ..................................................489 CPU 動作検出リセット回路の動作 ....................488 低電圧 /CPU 動作検出リセット回路の プログラム例 ..................................................490 低電圧 /CPU 動作検出リセット回路の ブロックダイヤグラム ..................................484 低電圧検出リセット回路 ....................................482 低電圧検出リセット回路の使用上の注意 ........489 低電圧検出リセット回路の動作 ........................488 こ 高電流出力バッファ端子 高電流出力バッファ端子用電源 (DVCC,DVSS) の取扱い ..................................18 コマンドシーケンス コマンドシーケンス表 ........................................533 コモンレジスタバンクプリフィックス コモンレジスタバンクプリフィックス (CMR) ................................................................. 49 コンディションコードレジスタ コンディションコードレジスタ (PS:CCR) .........40 コンペアクリアレジスタ コンペアクリアレジスタ (CPCLR) ....................234 コンペアレジスタ PWM1,PWM2 コンペアレジスタ (PWC10 ~ PWC13,PWC20 ~ PWC23) の ビット構成 ......................................................496 さ 最小限 フラッシュマイコンプログラマとの最小限の 接続例 ( フラッシュマイコンプログラマから 電源供給時 ) ....................................................567 最大定格電圧 最大定格電圧の厳守 ( ラッチアップの防止 ) .....16 サウンドジェネレータ サウンドジェネレータのブロック ダイヤグラム ..................................................504 サウンドジェネレータのレジスタ ....................505 サウンド制御レジスタ サウンド制御レジスタ (SGCRH,SGCRL) の ビット構成 ......................................................506 サブクロックモード サブクロックモードを使用しない場合の 注意 ....................................................................18 メインクロックモード ,PLL クロックモード , サブクロックモード ......................................115 サブ秒データレジスタ サブ秒データレジスタのビット構成 ................275 し システムスタックポインタ システムスタックポインタ (SSP) ........................38 実効アドレス 実効アドレスフィールド .....................................596 実効アドレスフィールド 実効アドレスフィールド .....................................579 実行サイクル 実行サイクル数 .....................................................594 実行サイクル数計算方法 .....................................594 自動アルゴリズム 自動アルゴリズム終了タイミング .....................532 周波数データレジスタ 周波数データレジスタ (SGFR) ...........................508 受信 CAN 受信設定のフローチャート .......................438 受信オーバラン .....................................................437 受信メッセージの格納 .........................................436 データフレームおよびリモートフレームの 受信に対する処理 ..........................................437 受信エラー 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成 ....................................405 受信オーバラン 受信オーバラン .....................................................437 受信オーバランレジスタ 受信オーバランレジスタ (ROVRR) の ビット構成 ......................................................419 受信完了 受信完了 .................................................................438 受信完了レジスタ 受信完了レジスタ (RCR) のビット構成 ............417 受信フローチャート CAN コントローラの受信フローチャート .......439 受信方法 メッセージバッファ (x) による受信方法 ..........444 受信メッセージ 受信メッセージの格納 .........................................436 受信割込み 受信割込み発生とフラグセットの タイミング ......................................................365 受信割込み許可レジスタ 受信割込み許可レジスタ (RIER) の ビット構成 ......................................................420 出力波形 1/2 バイアス・1/2 デューティ出力波形 ............472 1/3 バイアス ,1/3 デューティ出力波形 ..............475 1/3 バイアス ,1/4 デューティ出力波形 ..............478 消去 フラッシュメモリ書込み / 消去の詳細 .............539 フラッシュメモリ書込み / 消去の方法 .............526 フラッシュメモリのセクタ消去を 一時停止する ..................................................546 フラッシュメモリのセクタ消去を再開する ..........................................................................547 フラッシュメモリのデータを消去する ( チップ消去 ) ..................................................543 フラッシュメモリの任意のデータを 消去する ( セクタ消去 ) .................................544 状態遷移図 状態遷移図 .............................................................141 消費電流 CPU 動作モードと消費電流 ................................122 シリアルオンボード書込み 富士通標準シリアルオンボード書込みに 使用する端子 ..................................................557 シリアル書込み シリアル書込み接続例 ........................................560 シリアルクロック 入力可能なシリアルクロック周波数 ................558 シリアル出力データレジスタ シリアル出力データレジスタ (SODR0/SODR1) のビット構成 ....................360 シリアルステータスレジスタ シリアルステータスレジスタ (SSR0/SSR1) のビット構成 ...........................357 シリアル制御レジスタ シリアル制御レジスタ (SCR0/SCR1) の ビット構成 ......................................................353 シリアル入力データレジスタ シリアル入力データレジスタ (SIDR0/SIDR1) のビット構成 .......................359 シリアルモードレジスタ シリアルモードレジスタ (SMR0/SMR1) の ビット構成 ......................................................355 シングルチップモード シングルチップモード時の接続例 ( フラッシュマイコンプログラマから 電源供給時 ) ....................................................563 シングルチップモード時の接続例 ( ユーザ電源使用時 ) .....................................561 シングルチップモード時の端子状態 ................143 振動子 振動子と外部クロックの接続 ............................120 振幅データレジスタ 振幅データレジスタ (SGAR) ..............................509 す スタック スタック上の多バイト長データの配置 .............. 30 スタックの選択 ...................................................... 37 スタック領域 .......................................................... 88 割込み処理開始時のスタック動作 ......................87 割込み処理復帰時のスタック動作 ......................87 スタンバイモード スタンバイモード ................................................124 スタンバイモード遷移のための低消費電力 モード制御レジスタ (LPMCR) へ アクセスする際の注意事項 ..........................147 スタンバイモードの動作状態 ............................131 スタンバイモードの割込みによる解除 ............145 スタンバイモードへ移行する場合の注意 ........145 スタンバイモードへの移行と割込み ................145 ステータスレジスタ 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS) .............. 80 ステッピングモータコントローラ ステッピングモータコントローラの 動作設定 ..........................................................500 ステッピングモータコントローラの ブロックダイヤグラム ..................................492 ステッピングモータコントローラの レジスタ ..........................................................493 ストップモード ストップモード解除時 ........................................146 ストップモードの解除 ........................................139 ストップモードへの移行 ....................................138 645 スリープモード スリープモードの解除 .........................................132 スリープモードへの移行 .....................................132 せ 制御ステータスレジスタ 制御ステータスレジスタ (CSR) の ビット構成 ......................................................398 製品概要 製品概要 .....................................................................2 セクタ 1M ビットフラッシュメモリのセクタ構成 ......528 フラッシュメモリのセクタ消去手順 .................544 フラッシュメモリのセクタ消去を 一時停止する ..................................................546 フラッシュメモリのセクタ消去を再開する .....547 フラッシュメモリの任意のデータを 消去する ( セクタ消去 ) .................................544 セクタ消去 フラッシュメモリのセクタ消去を 一時停止する ..................................................546 フラッシュメモリのセクタ消去を再開する .....547 フラッシュメモリの任意のデータを 消去する ( セクタ消去 ) .................................544 セクタ消去タイマフラグ セクタ消去タイマフラグ (DQ3) .........................538 接続例 シリアル書込み接続例 .........................................560 シングルチップモード時の接続例 ( フラッシュマイコンプログラマから 電源供給時 ) ....................................................563 シングルチップモード時の接続例 ( ユーザ電源使用時 ) ......................................561 フラッシュマイコンプログラマとの 最小限の接続例 ( フラッシュマイコン プログラマから電源供給時 ) ........................567 フラッシュマイコンプログラマとの 最小限の接続例 ( ユーザ電源使用時 ) .........565 全体 フラッシュメモリ全体のブロック ダイヤグラム ..................................................527 全体コントロールレジスタ 全体コントロールレジスタ .................................392 選択レジスタ PWM1,PWM2 選択レジスタ (PWS10 ~ PWS13,PWS20 ~ PWS23) の ビット構成 ......................................................498 専用ボーレートジェネレータ 専用ボーレートジェネレータによる ボーレート ......................................................369 専用レジスタ 専用レジスタと汎用レジスタ ...............................31 専用レジスタの構成 ...............................................32 そ 送受信 CAN 送受信のプログラム例 ...............................450 送信 CAN コントローラの送信の開始 .......................433 CAN コントローラの送信の完了 .......................433 646 CAN 送信設定フローチャート ...........................434 送信 RTR レジスタ 送信 RTR レジスタ (TRTRR) のビット構成 ..........................................................................412 送信エラー 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成 ....................................405 送信解除レジスタ 送信解除レジスタ (TCANR) のビット構成 ......414 送信完了レジスタ 送信完了レジスタ (TCR) のビット構成 ............415 送信フローチャート CAN コントローラの送信フローチャート .......435 送信方法 メッセージバッファ (x) による送信方法 ..........442 送信要求 CAN コントローラの送信要求の解除 ...............433 送信要求レジスタ 送信要求レジスタ (TREQR) のビット構成 .......411 送信割込み 送信割込み発生とフラグセットの タイミング ......................................................366 送信割込み許可レジスタ 送信割込み許可レジスタ (TIER) の ビット構成 ......................................................416 双方向通信 双方向通信機能 ....................................................381 ソフトウェア割込み ソフトウェア割込みからの復帰 ..........................74 ソフトウェア割込みに関する注意事項 .............. 75 ソフトウェア割込みの起動 ..................................74 ソフトウェア割込みの動作 ..................................75 た タイマ 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................371 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ (TCCSH,TCCSL) .............................................235 タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) ..................................252 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) .................................250 タイマデータレジスタ タイマデータレジスタ (TCDT) ..........................234 タイマレジスタ 16 ビットタイマレジスタ (TMR0,TMR1) .........254 タイミングリミット超過フラグ タイミングリミット超過フラグ (DQ5) .............537 タイムベースタイマ ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム ..........207 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 ..........................208 タイムベースタイマ機能 ....................................206 タイムベースタイマの使用上の注意 ................223 タイムベースタイマの動作 ........................218, 224 タイムベースタイマのプログラム例 ................226 タイムベースタイマの割込み ............................218 タイムベースタイマの割込みと EI2OS ............219 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタのビット構成 (TBTC) .............................................................211 タイムベースタイマモード タイムベースタイマモードの解除 .....................135 タイムベースタイマモードへの移行 .................134 ダイレクトページレジスタ ダイレクトページレジスタ (DPR) .......................44 多重割込み 多重割込み動作 .......................................................71 多重割込みの例 .......................................................72 多バイト長オペランド 多バイト長オペランドの配置 ...............................29 多バイト長データ RAM 上の多バイト長データの配置 ....................29 スタック上の多バイト長データの配置 ...............30 多バイト長データのアクセス ...............................30 端子機能 端子機能説明 ...........................................................11 端子切換え回路 CAN ウェイクアップ機能 端子切換え回路の ブロックダイヤグラム ..................................447 端子配列図 端子配列図 (LQFP100) ...........................................10 端子配列図 (QFP100) ................................................9 単発変換モード 単発変換モードの動作 .........................................331 単発モード 単発モードの EI2OS 起動プログラム例 ............338 ち 遅延割込み発生モジュール 遅延割込み発生モジュールの使用上の注意 .....293 遅延割込み発生モジュールの動作 .....................293 遅延割込み発生モジュールのブロック ダイヤグラム ..................................................292 遅延割込み発生モジュールのレジスタ一覧 .....292 遅延割込み発生モジュールの割込みと EI2OS ................................................................292 チップ消去 フラッシュメモリのデータを消去する ( チップ消去 ) ..................................................543 直接アドレッシング 直接アドレッシング .............................................580 つ 通信プリスケーラ制御レジスタ 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成 ....................361 て 停止変換モード 停止変換モードの動作 .........................................333 停止モード 停止モードの EI2OS 起動プログラム例 ............342 低消費電力制御回路 低消費電力制御回路のブロックダイヤグラム ..........................................................................125 低消費電力モード 低消費電力モードの動作状態 ............................142 低消費電力モード制御レジスタ スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPMCR) へアクセスする際の 注意事項 ..........................................................147 低消費電力モード制御レジスタ (LPMCR) .......127 低消費電力モード制御レジスタへの アクセス ..........................................................129 ディスクリプタ 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 ........................78 低電圧 低電圧 /CPU 動作検出リセット回路の プログラム例 ..................................................490 低電圧 /CPU 動作検出リセット回路の ブロックダイヤグラム ..................................484 低電圧 /CPU 動作検出リセット回路 低電圧 /CPU 動作検出リセット回路の プログラム例 ..................................................490 低電圧 /CPU 動作検出リセット回路の ブロックダイヤグラム ..................................484 低電圧 /CPU 動作検出リセット制御レジスタ 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成 ....................................486 低電圧検出 低電圧検出リセット回路 ....................................482 低電圧検出リセット回路の使用上の注意 ........489 低電圧検出リセット回路の動作 ........................488 低電圧検出リセット回路 低電圧検出リセット回路 ....................................482 低電圧検出リセット回路の使用上の注意 ........489 低電圧検出リセット回路の動作 ........................488 低電力消費モード 低電力消費モードの設定 ....................................441 逓倍率 PLL クロック逓倍率の選択 ................................116 データカウンタ データカウンタ (DCT) ........................................... 79 データフレーム データフレームおよびリモートフレームの 受信に対する処理 ..........................................437 データポーリングフラグ データポーリングフラグ (DQ7) .........................535 データレジスタ データレジスタ x (x=0 ~ 15) (DTRx) の ビット構成 ......................................................430 デクリメントグレードレジスタ デクリメントグレードレジスタ (SGDR) ..........510 デフォルト空間 バンクアドレッシングとデフォルト空間 ..........28 デューティ 1/2 バイアス・1/2 デューティ出力波形 ............472 1/3 バイアス ,1/3 デューティ出力波形 ..............475 1/3 バイアス ,1/4 デューティ出力波形 ..............478 LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) ............................474 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) ............................477 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) ............................480 電源端子 電源端子 ..................................................................17 647 電源投入時 電源投入時 ...............................................................16 と 同期モード 同期モード ( 動作モード 2) の動作 ....................379 動作モード UART の動作モード .............................................347 同期モード ( 動作モード 2) の動作 ....................379 動作モード .............................................................150 非同期モード ( 動作モード 0,1) の動作 .............376 トーンカウントレジスタ トーンカウントレジスタ (SGTR) .......................511 トグルビットフラグ トグルビットフラグ (DQ6) .................................536 時計タイマ ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム ..........207 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 ..........................208 時計タイマ機能 .....................................................206 時計タイマのインターバル割込み機能 .............221 時計タイマの動作 .................................................221 時計タイマの割込みと EI2OS .............................221 時計タイマ制御レジスタ 時計タイマ制御レジスタ (WTC) ........................213 時計モード 時計モードの解除 .................................................137 時計モードへの移行 .............................................136 な 内部クロックモード 内部クロックモード .............................................244 内部クロックモード ( リロードモード ) の 動作 ..................................................................259 内部クロックモード ( ワンショットモード ) の 動作 ..................................................................261 内部クロックモードのプログラム例 .................266 内部タイマ 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................371 内部分割抵抗 LCD コントローラ / ドライバの 内部分割抵抗 ..................................................457 内部分割抵抗の使用 .............................................458 に 入出力回路形式 入出力回路形式 .......................................................14 は ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ .........................534 ハードウェア割込み ハードウェア割込みからの復帰 ...........................67 ハードウェア割込み使用手順 ...............................70 ハードウェア割込み処理時間 ...............................73 648 ハードウェア割込みの起動 ..................................67 ハードウェア割込みの機能 ..................................64 ハードウェア割込みの構造 ..................................65 ハードウェア割込みの動作 ..................................68 ハードウェア割込みの動作フロー ......................69 ハードウェア割込み抑止 ......................................65 バイアス 1/2 バイアス・1/2 デューティ出力波形 ............472 1/3 バイアス ,1/3 デューティ出力波形 ..............475 1/3 バイアス ,1/4 デューティ出力波形 ..............478 バス動作停止 バス動作停止間の状態 (HALT=1) ......................402 バス動作停止ビット (HALT=1) ..........................401 バスモード バスモード ............................................................150 バスモード設定ビット ........................................152 パッケージ外形寸法図 パッケージ外形寸法図 (LQFP100) .........................8 パッケージ外形寸法図 (QFP100) ........................... 7 発振安定待ち 発振安定待ち時間用タイマ機能 ........................220 発振安定待ちリセット状態 ..................................98 発振安定待ち時間 発振安定待ち時間 ........................................119, 146 リセット要因と発振安定待ち時間 ......................97 発振安定待ち時間用タイマ 発振安定待ち時間用タイマ機能 ........................220 バッファアドレスポインタ バッファアドレスポインタ (BAP) .......................81 バンクアドレッシング バンクアドレッシングとデフォルト空間 ..........28 リニアアドレッシングとバンク アドレッシング ................................................25 バンクセレクトプリフィックス バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) .......................................48 バンクレジスタ バンクレジスタ (PCB,DTB,USB,SSB,ADB) ............................................................................ 45 バンクレジスタとアクセス空間 ..........................27 汎用レジスタ 専用レジスタと汎用レジスタ ..............................31 汎用レジスタの構成 ..............................................46 汎用レジスタ領域とレジスタ バンクポインタ ................................................41 ひ ビット構成 CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成 ................................432 DLC レジスタ x (x=0 ~ 15) (DLCRx) の ビット構成 ......................................................429 IDE レジスタ (IDER) のビット構成 ...................410 ID レジスタ x (x=0 ~ 15) (IDRx) の ビット構成 ......................................................426 LCD コントローラ / ドライバに関連する レジスタのビット構成 ..................................463 LCD 制御レジスタ下位 (LCRL) の ビット構成 ......................................................464 LCD 制御レジスタ上位 (LCRH) の ビット構成 ......................................................466 PWM 制御レジスタ (PWC0 ~ PWC3) の ビット構成 ......................................................495 アクセプタンスマスク選択レジスタ (AMSR) のビット構成 ...................................421 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 .......................423 ウォッチドッグタイマ制御レジスタ (WDTC) のビット構成 ...................................209 サウンド制御レジスタ (SGCRH,SGCRL) の ビット構成 ......................................................506 サブ秒データレジスタのビット構成 .................275 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成 ....................................405 受信オーバランレジスタ (ROVRR) の ビット構成 ......................................................419 受信完了レジスタ (RCR) のビット構成 ............417 受信割込み許可レジスタ (RIER) の ビット構成 ......................................................420 シリアル出力データレジスタ (SODR0/SODR1) のビット構成 ....................360 シリアルステータスレジスタ (SSR0/SSR1) のビット構成 ...........................357 シリアル制御レジスタ (SCR0/SCR1) の ビット構成 ......................................................353 シリアル入力データレジスタ (SIDR0/SIDR1) のビット構成 .......................359 シリアルモードレジスタ (SMR0/SMR1) の ビット構成 ......................................................355 制御ステータスレジスタ (CSR) の ビット構成 ......................................................398 送信 RTR レジスタ (TRTRR) のビット構成 .....412 送信解除レジスタ (TCANR) のビット構成 ......414 送信完了レジスタ (TCR) のビット構成 ............415 送信要求レジスタ (TREQR) のビット構成 .......411 送信割込み許可レジスタ (TIER) の ビット構成 ......................................................416 タイムベースタイマ制御レジスタの ビット構成 (TBTC) ........................................211 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成 ....................361 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成 ....................................486 データレジスタ x (x=0 ~ 15) (DTRx) の ビット構成 ......................................................430 ビットタイミングレジスタ (BTR) の ビット構成 ......................................................406 秒 / 分 / 時間データレジスタのビット構成 ......276 プロセッサステータス (PS) のビット構成 .........39 メッセージバッファ有効レジスタ (BVALR) の ビット構成 ......................................................409 ラストイベント表示レジスタ (LEIR) の ビット構成 ......................................................403 リアルタイム時計タイマ制御レジスタの ビット構成 ......................................................273 リモートフレーム受信待機レジスタ (RFWTR) のビット構成 .................................413 リモート要求受信レジスタ (RRTRR) の ビット構成 ......................................................418 ビットタイミングレジスタ ビットタイミングレジスタ (BTR) の ビット構成 ......................................................406 ビットタイミングレジスタの設定例 .................408 非同期モード 非同期モード ( 動作モード 0,1) の動作 .............376 秒 / 分 / 時間データレジスタ 秒 / 分 / 時間データレジスタのビット構成 ......276 表示用 RAM 表示用 RAM と出力端子 .....................................468 ふ フェッチ モードフェッチ ....................................................100 フォーマット フレームフォーマットの設定 ............................440 富士通標準 富士通標準シリアルオンボード書込みに 使用する端子 ..................................................557 フラグ変化抑止プリフィックス フラグ変化抑止プリフィックス (NCC) .............. 50 フラッシュマイコンプログラマ シングルチップモード時の接続例 ( フラッシュマイコンプログラマから 電源供給時 ) ....................................................563 フラッシュマイコンプログラマとの 最小限の接続例 ( フラッシュマイコン プログラマから電源供給時 ) ........................567 フラッシュマイコンプログラマとの 最小限の接続例 ( ユーザ電源使用時 ) ..........................................................................565 フラッシュマイコンプログラマの システム構成 ..................................................559 フラッシュメモリ 1M ビットフラッシュメモリのセクタ構成 ......528 1M ビットフラッシュメモリの特長 ..................526 1M ビットフラッシュメモリの プログラム例 ..................................................549 フラッシュメモリ書込み / 消去の詳細 .............539 フラッシュメモリ書込み / 消去の方法 .............526 フラッシュメモリ書込み手順 ............................541 フラッシュメモリ全体のブロック ダイヤグラム ..................................................527 フラッシュメモリの使用上の注意 ....................548 フラッシュメモリの制御信号 ............................530 フラッシュメモリのセクタ消去手順 ................544 フラッシュメモリのセクタ消去を 一時停止する ..................................................546 フラッシュメモリのセクタ消去を再開する ....547 フラッシュメモリのデータを消去する ( チップ消去 ) .................................................543 フラッシュメモリの任意のデータを 消去する ( セクタ消去 ) ................................544 フラッシュメモリのレジスタ ............................526 フラッシュメモリへデータを書き込む ............541 フラッシュメモリを読出し / リセット 状態にする ......................................................540 フラッシュメモリコントロールステータスレジスタ フラッシュメモリコントロール ステータスレジスタ (FMCS) ........................531 フラッシュメモリモード フラッシュメモリモード ....................................529 フリーランタイマ 16 ビットフリーランタイマのカウント タイミング ......................................................241 649 16 ビットフリーランタイマのクリア タイミング ......................................................241 16 ビットフリーランタイマの動作説明 ............240 16 ビットフリーランタイマ部 レジスタ一覧 ..................................................230 プリフィックス コモンレジスタバンクプリフィックス (CMR) .................................................................49 バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) ........................................48 フラグ変化抑止プリフィックス (NCC) ...............50 プリフィックスコードに関する制約 ...................51 プリフィックスコード プリフィックスコード ...........................................48 プリフィックスコードに関する制約 ...................51 プルアップ / プルダウン抵抗 プルアップ / プルダウン抵抗 ...............................18 フレームフォーマット フレームフォーマットの設定 .............................440 フローチャート CAN コントローラの受信フローチャート .......439 CAN コントローラの送信フローチャート .......435 CAN 受信設定のフローチャート .......................438 CAN 送信設定フローチャート ...........................434 アドレス一致検出機能処理の フローチャート ..............................................519 プログラムアドレス検出コントロールレジスタ プログラムアドレス検出コントロール レジスタ (PACSR) ..........................................515 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0/PADR1) .............................................515 プログラムカウンタ プログラムカウンタ (PC) ......................................43 プログラムミス プログラムミスが発生した場合 .........................518 プログラム例 1M ビットフラッシュメモリの プログラム例 ..................................................549 CAN 送受信のプログラム例 ...............................450 DTP 機能のプログラム例 ....................................314 I/O ポートのプログラム例 ..................................204 UART のプログラム例 .........................................387 イベントカウントモードのプログラム例 .........267 ウォッチドッグタイマのプログラム例 .............225 外部割込み機能のプログラム例 .........................313 タイムベースタイマのプログラム例 .................226 単発モードの EI2OS 起動プログラム例 ............338 停止モードの EI2OS 起動プログラム例 ............342 低電圧 /CPU 動作検出リセット回路の プログラム例 ..................................................490 内部クロックモードのプログラム例 .................266 連続モードの EI2OS 起動プログラム例 ............340 割込み処理のプログラム例 ...................................89 プロセッサステータス プロセッサステータス (PS) のビット構成 .........39 ブロックダイヤグラム 16 ビットリロードタイマの端子の ブロックダイヤグラム ..................................248 16 ビットリロードタイマのブロック ダイヤグラム ..................................................246 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..................................322 650 8/10 ビット A/D コンバータのブロック ダイヤグラム ..................................................319 CAN ウェイクアップ機能 端子切換え回路の ブロックダイヤグラム ..................................447 CAN コントローラのブロック ダイヤグラム ..................................................391 DTP/ 外部割込み回路の端子のブロック ダイヤグラム ..................................................300 DTP/ 外部割込み回路のブロック ダイヤグラム ..................................................298 LCD コントローラ / ドライバに関連する 端子のブロックダイヤグラム ......................462 LCD コントローラ / ドライバのブロック ダイヤグラム ..................................................455 PPG タイマのブロックダイヤグラム ................280 ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................522 UART の端子のブロックダイヤグラム ............351 UART のブロックダイヤグラム ........................348 アドレス一致検出機能のブロック ダイヤグラム ..................................................514 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム ..........207 外部リセット端子のブロックダイヤグラム ......99 クロック発生部のブロックダイヤグラム ........110 サウンドジェネレータのブロック ダイヤグラム ..................................................504 ステッピングモータコントローラの ブロックダイヤグラム ..................................492 遅延割込み発生モジュールのブロック ダイヤグラム ..................................................292 低消費電力制御回路のブロック ダイヤグラム ..................................................125 低電圧 /CPU 動作検出リセット回路の ブロックダイヤグラム ..................................484 フラッシュメモリ全体のブロック ダイヤグラム ..................................................527 ブロックダイヤグラム ....................................6, 229 ポート 0 の端子のブロックダイヤグラム ........160 ポート 1 の端子のブロックダイヤグラム ........165 ポート 3 の端子のブロックダイヤグラム ........170 ポート 4 の端子のブロックダイヤグラム ........175 ポート 5 の端子のブロックダイヤグラム ........180 ポート 6 の端子のブロックダイヤグラム ........185 ポート 7 の端子のブロックダイヤグラム ........190 ポート 8 の端子のブロックダイヤグラム ........195 ポート 9 の端子のブロックダイヤグラム ........200 リアルタイム時計タイマのブロック ダイヤグラム ..................................................270 へ 変換データ A/D 変換データ保護機能 ....................................335 変換モード 単発変換モードの動作 ........................................331 停止変換モードの動作 ........................................333 連続変換モードの動作 ........................................332 ほ ポート 0 ポート 0 の構成 .....................................................159 ポート 0 の端子 .....................................................159 ポート 0 の端子のブロックダイヤグラム .........160 ポート 0 の動作 .....................................................162 ポート 0 のレジスタ .............................................160 ポート 0 のレジスタの機能 .................................161 ポート 1 ポート 1 の構成 .....................................................164 ポート 1 の端子 .....................................................164 ポート 1 の端子のブロックダイヤグラム .........165 ポート 1 の動作 .....................................................167 ポート 1 のレジスタ .............................................165 ポート 1 のレジスタの機能 .................................166 ポート 3 ポート 3 の構成 .....................................................169 ポート 3 の端子 .....................................................169 ポート 3 の端子のブロックダイヤグラム .........170 ポート 3 の動作 .....................................................172 ポート 3 のレジスタ .............................................170 ポート 3 のレジスタの機能 .................................171 ポート 4 ポート 4 の構成 .....................................................174 ポート 4 の端子 .....................................................174 ポート 4 の端子のブロックダイヤグラム .........175 ポート 4 の動作 .....................................................177 ポート 4 のレジスタ .............................................175 ポート 4 のレジスタの機能 .................................176 ポート 5 ポート 5 の構成 .....................................................179 ポート 5 の端子 .....................................................179 ポート 5 の端子のブロックダイヤグラム .........180 ポート 5 の動作 .....................................................182 ポート 5 のレジスタ .............................................180 ポート 5 のレジスタの機能 .................................181 ポート 6 ポート 6 の構成 .....................................................184 ポート 6 の端子 .....................................................184 ポート 6 の端子のブロックダイヤグラム .........185 ポート 6 の動作 .....................................................187 ポート 6 のレジスタ .............................................185 ポート 6 のレジスタの機能 .................................186 ポート 7 ポート 7 の構成 .....................................................189 ポート 7 の端子 .....................................................189 ポート 7 の端子のブロックダイヤグラム .........190 ポート 7 の動作 .....................................................192 ポート 7 のレジスタ .............................................190 ポート 7 のレジスタの機能 .................................191 ポート 8 ポート 8 の構成 .....................................................194 ポート 8 の端子 .....................................................194 ポート 8 の端子のブロックダイヤグラム .........195 ポート 8 の動作 .....................................................197 ポート 8 のレジスタ .............................................195 ポート 8 のレジスタの機能 .................................196 ポート 9 ポート 9 の構成 .....................................................199 ポート 9 の端子 .....................................................199 ポート 9 の端子のブロックダイヤグラム .........200 ポート 9 の動作 ....................................................202 ポート 9 のレジスタ ............................................200 ポート 9 のレジスタの機能 ................................201 ボーレート UART ボーレート選択 ........................................367 外部クロックによるボーレート ........................373 専用ボーレートジェネレータによる ボーレート ......................................................369 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................371 ボーレートジェネレータ 専用ボーレートジェネレータによる ボーレート ......................................................369 保護機能 A/D 変換データ保護機能 ....................................335 ま マシンクロック マシンクロック ....................................................116 マスタ / スレーブ型通信 マスタ / スレーブ型通信機能 .............................383 マルチレベルメッセージバッファ マルチレベルメッセージバッファの 構成の決定 ......................................................445 み 未使用端子 未使用端子の処理 ..................................................16 未定義命令 未定義命令の実行による例外処理割込み ..........86 め 命令 命令の種類 ............................................................577 命令マップの構造 ................................................615 命令一覧表 F2MC-16LX 命令一覧表 .......................................601 メインクロックモード メインクロックモード ,PLL クロックモード , サブクロックモード ......................................115 メッセージ 受信メッセージの格納 ........................................436 メッセージバッファ BVAL ビットによるメッセージバッファ 禁止時の注意 ..................................................448 メッセージバッファ ....................................394, 425 メッセージバッファ (x) による受信方法 ..........444 メッセージバッファ (x) による送信方法 ..........442 メッセージバッファコントロールレジスタ メッセージバッファコントロールレジスタ ....392 メッセージバッファ有効レジスタ メッセージバッファ有効レジスタ (BVALR) のビット構成 .................................409 メモリ空間 メモリ空間 ......................................................21, 523 メモリマップ E2PROM メモリマップ ........................................517 メモリマップ .......................................................... 23 651 も モード CPU 間欠動作モード ....................................123, 130 CPU 動作モードと消費電流 ................................122 PLL クロックモード動作中の注意について ......18 RUN モード ...........................................................150 UART の動作モード .............................................347 イベントカウントモード .....................................263 イベントカウントモード ( 外部クロックモード ) ..................................245 イベントカウントモードのプログラム例 .........267 クロックモード .....................................................123 クロックモードの移行 .........................................115 クロックモードの切換え .....................................146 サブクロックモードを使用しない場合の 注意 ....................................................................18 シングルチップモード時の接続例 ( フラッシュマイコンプログラマから 電源供給時 ) ....................................................563 シングルチップモード時の接続例 ( ユーザ電源使用時 ) ......................................561 シングルチップモード時の端子状態 .................143 スタンバイモード .................................................124 スタンバイモード遷移のための低消費電力 モード制御レジスタ (LPMCR) へ アクセスする際の注意事項 ..........................147 スタンバイモードの動作状態 .............................131 スタンバイモードの割込みによる解除 .............145 スタンバイモードへ移行する場合の注意 .........145 スタンバイモードへの移行と割込み .................145 ストップモード解除時 .........................................146 ストップモードの解除 .........................................139 ストップモードへの移行 .....................................138 スリープモードの解除 .........................................132 スリープモードへの移行 .....................................132 その他モード .........................................................529 タイムベースタイマモードの解除 .....................135 タイムベースタイマモードへの移行 .................134 単発変換モードの動作 .........................................331 単発モードの EI2OS 起動プログラム例 ............338 停止変換モードの動作 .........................................333 停止モードの EI2OS 起動プログラム例 ............342 低消費電力モードの動作状態 .............................142 低電力消費モードの設定 .....................................441 同期モード ( 動作モード 2) の動作 ....................379 動作モード .............................................................150 時計モードの解除 .................................................137 時計モードへの移行 .............................................136 内部クロックモード .............................................244 内部クロックモード ( リロードモード ) の 動作 ..................................................................259 内部クロックモード ( ワンショットモード ) の 動作 ..................................................................261 内部クロックモードのプログラム例 .................266 バスモード .............................................................150 バスモード設定ビット .........................................152 非同期モード ( 動作モード 0,1) の動作 .............376 フラッシュメモリモード .....................................529 メインクロックモード ,PLL クロックモード , サブクロックモード ......................................115 モード設定 .............................................................150 652 モード端子 ............................................................100 モード端子 (MD2 ~ MD0) ..................................151 モード端子とモードデータの関係 ....................153 モードデータ ........................................................152 モードデータ読出し後の端子の状態 ................105 モードフェッチ ....................................................100 連続変換モードの動作 ........................................332 連続モードの EI2OS 起動プログラム例 ............340 モード端子 モード端子 ............................................................100 モード端子 (MD2 ~ MD0) ..................................151 モード端子とモードデータの関係 ....................153 モードデータ モードデータ読出し後の端子の状態 ................105 モードフェッチ モードフェッチ ....................................................100 ゆ ユーザスタックポインタ ユーザスタックポインタ (USP) ...........................38 ユーザ電源使用時 シングルチップモード時の接続例 ( ユーザ電源使用時 ) .....................................561 フラッシュマイコンプログラマとの 最小限の接続例 ( ユーザ電源使用時 ) ........565 よ 要求レベル設定レジスタ 要求レベル設定レジスタ (ELVRH/ELVRL) .....304 読出し フラッシュメモリを読出し / リセット 状態にする ......................................................540 ら ラストイベント表示レジスタ ラストイベント表示レジスタ (LEIR) の ビット構成 ......................................................403 ラッチアップ 最大定格電圧の厳守 ( ラッチアップの防止 ) .....16 り リアルタイム時計タイマ リアルタイム時計タイマのブロック ダイヤグラム ..................................................270 リアルタイム時計タイマのレジスタ一覧 ........271 リアルタイム時計タイマ制御レジスタ リアルタイム時計タイマ制御レジスタの ビット構成 ......................................................273 リセット CPU 動作検出リセット回路 ................................483 CPU 動作検出リセット回路の 使用上の注意 ..................................................489 CPU 動作検出リセット回路の動作 ....................488 ウォッチドッグタイマリセットの阻止 ............216 外部リセット端子のブロックダイヤグラム ......99 低電圧 /CPU 動作検出リセット回路の プログラム例 ..................................................490 低電圧 /CPU 動作検出リセット回路の ブロックダイヤグラム ..................................484 低電圧検出リセット回路 .....................................482 低電圧検出リセット回路の使用上の注意 .........489 低電圧検出リセット回路の動作 .........................488 発振安定待ちリセット状態 ...................................98 フラッシュメモリを読出し / リセット 状態にする ......................................................540 リセット中の端子の状態 .....................................105 リセット動作の概要 .............................................100 リセット要因 ...........................................................94 リセット要因と発振安定待ち時間 .......................97 リセット要因の確認 .............................................216 リセット要因ビット .............................................102 リセット要因ビットとリセット要因の 対応 ..................................................................103 リセット要因ビットの状態 .................................104 リセット要因ビットの注意事項 .........................104 リセット回路 CPU 動作検出リセット回路 ................................483 CPU 動作検出リセット回路の使用上の 注意 ..................................................................489 CPU 動作検出リセット回路の動作 ....................488 低電圧 /CPU 動作検出リセット回路の プログラム例 ..................................................490 低電圧 /CPU 動作検出リセット回路の ブロックダイヤグラム ..................................484 低電圧検出リセット回路 .....................................482 低電圧検出リセット回路の使用上の注意 .........489 低電圧検出リセット回路の動作 .........................488 リセット要因 リセット要因 ...........................................................94 リセット要因と発振安定待ち時間 .......................97 リセット要因の確認 .............................................216 リセット要因ビット .............................................102 リセット要因ビットとリセット要因の対応 ..........................................................................103 リセット要因ビットの状態 .................................104 リセット要因ビットの注意事項 .........................104 リニアアドレッシング リニアアドレッシングとバンク アドレッシング ................................................25 リモートフレーム データフレームおよびリモート フレームの受信に対する処理 ......................437 リモートフレーム受信待機レジスタ リモートフレーム受信待機レジスタ (RFWTR) のビット構成 .................................413 リモート要求受信レジスタ リモート要求受信レジスタ (RRTRR) の ビット構成 ......................................................418 リロードタイマ 16 ビットリロードタイマの EI2OS 機能 ...........256 16 ビットリロードタイマの使用上の注意 ........265 16 ビットリロードタイマの設定 ........................257 16 ビットリロードタイマの端子 ........................248 16 ビットリロードタイマの端子の ブロックダイヤグラム ..................................248 16 ビットリロードタイマの動作モード ............244 16 ビットリロードタイマのブロック ダイヤグラム ..................................................246 16 ビットリロードタイマのレジスタ一覧 ........249 16 ビットリロードタイマの割込み ....................256 16 ビットリロードタイマの割込みと EI2OS ........................................................245, 256 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................371 リロードモード 内部クロックモード ( リロードモード ) の 動作 ..................................................................259 リロードレジスタ 16 ビットリロードレジスタ (TMRLR0/TMRLR1) .......................................255 れ 例外処理 未定義命令の実行による例外処理割込み ..........86 レジスタ 16 ビットタイマレジスタ (TMR0,TMR1) .........254 16 ビットリロードレジスタ (TMRLR0/TMRLR1) .......................................255 A/D 制御ステータスレジスタ下位 (ADCSL) ....326 A/D 制御ステータスレジスタ上位 (ADCSH) ...324 A/D データレジスタ (ADCRH/ADCRL) ............328 CAN ウェイクアップ制御レジスタ ...................397 CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成 ................................432 DLC レジスタ x (x=0 ~ 15) (DLCRx) の ビット構成 ......................................................429 DTP/ 割込み許可レジスタ (ENIR) ......................303 DTP/ 割込み要因レジスタ (EIRR) ......................302 IDE レジスタ (IDER) のビット構成 ...................410 ID レジスタ x (x=0 ~ 15) (IDRx) の ビット構成 ......................................................426 ID レジスタの設定例 ...........................................427 LCD 制御レジスタ下位 (LCRL) の ビット構成 ......................................................464 LCD 制御レジスタ上位 (LCRH) の ビット構成 ......................................................466 PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2,PCNTL0 ~ PCNTL2) .....................283 PWM1,PWM2 コンペアレジスタ (PWC10 ~ PWC13,PWC20 ~ PWC23) の ビット構成 ......................................................496 PWM1,PWM2 選択レジスタ (PWS10 ~ PWS13,PWS20 ~ PWS23) の ビット構成 ......................................................498 PWM 制御レジスタ (PWC0 ~ PWC3) の ビット構成 ......................................................495 ROM ミラー機能選択モジュールの レジスタ ..........................................................522 アクセプタンスマスク選択レジスタ (AMSR) のビット構成 ...................................421 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 .......................423 インタラプトレベルマスクレジスタ (PS:ILM) .............................................................42 インプットキャプチャコントロール ステータスレジスタ (ICS01,ICS23) .............232 クロック選択レジスタ (CKSCR) の構成 ...........112 コンペアクリアレジスタ (CPCLR) ....................234 サウンド制御レジスタ (SGCRH,SGCRL) の ビット構成 ......................................................506 サブ秒データレジスタのビット構成 ................275 653 周波数データレジスタ (SGFR) ...........................508 受信オーバランレジスタ (ROVRR) の ビット構成 ......................................................419 受信完了レジスタ (RCR) のビット構成 ............417 受信割込み許可レジスタ (RIER) の ビット構成 ......................................................420 シリアル出力データレジスタ (SODR0/SODR1) のビット構成 ....................360 シリアルステータスレジスタ (SSR0/SSR1) のビット構成 ...........................357 シリアル制御レジスタ (SCR0/SCR1) の ビット構成 ......................................................353 シリアル入力データレジスタ (SIDR0/SIDR1) のビット構成 .......................359 シリアルモードレジスタ (SMR0/SMR1) の ビット構成 ......................................................355 振幅データレジスタ (SGAR) ..............................509 スタンバイモード遷移のための低消費電力 モード制御レジスタ (LPMCR) へ アクセスする際の注意事項 ..........................147 制御ステータスレジスタ (CSR) の ビット構成 ......................................................398 全体コントロールレジスタ .................................392 送信 RTR レジスタ (TRTRR) のビット構成 ..........................................................................412 送信要求レジスタ (TREQR) のビット構成 .......411 送信割込み許可レジスタ (TIER) の ビット構成 ......................................................416 タイマコントロールステータスレジスタ (TCCSH,TCCSL) .............................................235 タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) ...................................252 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) ..................................250 タイマデータレジスタ (TCDT) ..........................234 ダイレクトページレジスタ (DPR) .......................44 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成 ....................361 低消費電力モード制御レジスタ (LPMCR) .......127 低消費電力モード制御レジスタへの アクセス ..........................................................129 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成 ....................................486 データレジスタ x (x=0 ~ 15) (DTRx) の ビット構成 ......................................................430 ビットタイミングレジスタ (BTR) の ビット構成 ......................................................406 ビットタイミングレジスタの設定例 .................408 秒 / 分 / 時間データレジスタのビット構成 ......276 フラッシュメモリコントロール ステータスレジスタ (FMCS) ........................531 プログラムアドレス検出コントロール レジスタ (PACSR) ..........................................515 プログラムアドレス検出レジスタ (PADR0/PADR1) .............................................515 メッセージバッファコントロールレジスタ .....392 メッセージバッファ有効レジスタ (BVALR) のビット構成 .................................409 要求レベル設定レジスタ (ELVRH/ELVRL) ......304 ラストイベント表示レジスタ (LEIR) の ビット構成 ......................................................403 リアルタイム時計タイマ制御レジスタの ビット構成 ......................................................273 654 リモートフレーム受信待機レジスタ (RFWTR) のビット構成 .................................413 リモート要求受信レジスタ (RRTRR) の ビット構成 ......................................................418 割込み制御レジスタ (ICR) の構成 .......................61 割込み制御レジスタ (ICR00 ~ ICR15) ...............59 割込み制御レジスタ一覧 ......................................58 割込み制御レジスタの機能 ............................58, 62 割込み要因と割込みベクタ・割込み制御 レジスタ ............................................................57 レジスタ間接指定 32 ビットレジスタ間接指定 .................................26 レジスタバンク レジスタバンク ...................................................... 47 レジスタバンクポインタ 汎用レジスタ領域とレジスタバンク ポインタ ............................................................41 レジスタバンクポインタ (PS:RP) ........................41 連続変換モード 連続変換モードの動作 ........................................332 連続モード 連続モードの EI2OS 起動プログラム例 ............340 わ 割込み 16 ビットリロードタイマの割込み ...................256 16 ビットリロードタイマの割込みと EI2OS ........................................................245, 256 8/10 ビット A/D コンバータの割込み ...............330 8/10 ビット A/D コンバータの割込みと EI2OS ........................................................318, 330 DTP/ 外部割込み回路の使用上の注意 ...............311 DTP/ 外部割込み回路の設定 ...............................306 DTP/ 外部割込み回路の端子 ...............................300 DTP/ 外部割込み回路の端子のブロック ダイヤグラム ..................................................300 DTP/ 外部割込み回路のブロックダイヤ グラム ..............................................................298 DTP/ 外部割込み回路のレジスタ .......................301 DTP/ 外部割込み回路の割込みと EI2OS ...........297 DTP/ 外部割込み機能 ...........................................296 DTP/ 外部割込み動作 ...........................................307 INT9 割込み ...........................................................520 PPG タイマの割込みと EI2OS .............................279 UART に関連する割込みと EI2OS .....................347 UART の割込み .....................................................363 UART の割込みと EI2OS .....................................364 インターバル割込み機能 ....................................218 インプットキャプチャの割込みと EI2OS .........238 外部割込み機能 ....................................................309 外部割込み機能のプログラム例 ........................313 受信割込み発生とフラグセットの タイミング ......................................................365 スタンバイモードの割込みによる解除 ............145 スタンバイモードへの移行と割込み ................145 送信割込み発生とフラグセットの タイミング ......................................................366 ソフトウェア割込みからの復帰 ..........................74 ソフトウェア割込みに関する注意事項 .............. 75 ソフトウェア割込みの起動 ..................................74 ソフトウェア割込みの動作 ..................................75 タイムベースタイマの割込み .............................218 タイムベースタイマの割込みと EI2OS .............219 多重割込み動作 .......................................................71 多重割込みの例 .......................................................72 遅延割込み発生モジュールの割込みと EI2OS ................................................................292 時計タイマのインターバル割込み機能 .............221 時計タイマの割込みと EI2OS .............................221 ハードウェア割込みからの復帰 ...........................67 ハードウェア割込み使用手順 ...............................70 ハードウェア割込み処理時間 ...............................73 ハードウェア割込みの起動 ...................................67 ハードウェア割込みの機能 ...................................64 ハードウェア割込みの構造 ...................................65 ハードウェア割込みの動作 ...................................68 ハードウェア割込みの動作フロー .......................69 ハードウェア割込み抑止 .......................................65 未定義命令の実行による例外処理割込み ...........86 割込み処理開始時のスタック動作 .......................87 割込み処理のプログラム例 ...................................89 割込み処理復帰時のスタック動作 .......................87 割込み制御レジスタ (ICR) の構成 .......................61 割込み制御レジスタ (ICR00 ~ ICR15) ................59 割込み制御レジスタ一覧 .......................................58 割込み制御レジスタの機能 .............................58, 62 割込み動作 ...............................................................55 割込みの種類と機能 ...............................................54 割込みベクタ ...........................................................56 割込み要因とタイミング .....................................290 割込み要因と割込みベクタ・割込み制御 レジスタ ............................................................57 割込み制御レジスタ 割込み制御レジスタ (ICR) の構成 .......................61 割込み制御レジスタ (ICR00 ~ ICR15) ................59 割込み制御レジスタ一覧 .......................................58 割込み制御レジスタの機能 .............................58, 62 割込み要因と割込みベクタ・割込み制御 レジスタ ............................................................57 割込みベクタ 割込みベクタ ...........................................................56 割込み要因と割込みベクタ・割込み制御 レジスタ ............................................................57 割込み要因 割込み要因とタイミング .....................................290 割込み要因と割込みベクタ・割込み制御 レジスタ ............................................................57 ワンショット動作 ワンショット動作 .................................................289 ワンショットモード 内部クロックモード ( ワンショットモード ) の 動作 ..................................................................261 655 656 CM44-10113-4 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC-16LX 16 ビット・マイクロコントローラ MB90420G/425G Series ハードウェアマニュアル 2008 年 7 月 第 4 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 ビジネス推進部