本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10128-5 F2MC®-16LX 16 ビット・マイクロコントローラ MB90800 Series ハードウェアマニュアル F2MC®-16LX 16 ビット・マイクロコントローラ MB90800 Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 「デザインレビューシート」を参照してください。 「デザインレビューシート」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思わ れるチェック項目をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛顧を賜り厚 くお礼申し上げます。 MB90800 シリーズは , 48 セグメント 4 コモンの LCD 制御回路を内蔵した , 汎用の 16 ビットマイクロコントローラです。 本書は , 実際に MB90800 シリーズを使用して製品を開発される技術者を対象に , MB90800 シリーズの機能や動作について解説したものです。本書をご一読ください。 ■ 商標 F2MC は , FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株 式会社の登録商標です。 その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録 商標です。 i ■ 本書の全体構成 本書は , 以下に示す 26 の章 , および付録から構成されています。 第1章 概 要 この章では , MB90800 シリーズの特長 , 基本的な仕様について説明します。 第 2 章 CPU この章では , MB90800 シリーズの CPU とメモリ空間について説明します。 第 3 章 リセット この章では , MB90800 シリーズのリセットについて説明します。 第 4 章 クロック この章では , MB90800 シリーズのクロックについて説明します。 第 5 章 低消費電力モード この章では , MB90800 シリーズの低消費電力モードについて説明します。 第 6 章 割込み この章では , MB90800 シリーズの割込みと拡張インテリジェント I/O サービス (EI2OS) について説明します。 第 7 章 モード設定 この章では , MB90800 シリーズの動作モードとメモリアクセスモードについて説明 します。 第 8 章 入出力ポート この章では , MB90800 シリーズの入出力ポートの機能と動作について説明します。 第 9 章 シリアル I/O この章では , MB90800 シリーズのシリアル I/O の機能と動作について説明します。 第 10 章 タイムベースタイマ この章では , MB90800 シリーズのタイムベースタイマの機能と動作について説明し ます。 第 11 章 ウォッチドッグタイマ この章では , MB90800 シリーズのウォッチドッグタイマの機能と動作について説明 します。 第 12 章 時計タイマ この章では , MB90800 シリーズの時計タイマの機能と動作について説明します。 第 13 章 16 ビットリロードタイマ この章では , MB90800 シリーズの 16 ビットリロードタイマの機能と動作について 説明します。 第 14 章 入出力タイマ この章では , MB90800 シリーズの 16 ビット入出力タイマの機能と動作について説 明します。 第 15 章 PPG タイマ この章では , MB90800 シリーズの PPG タイマについて説明します。 第 16 章 UART この章では , MB90800 シリーズの UART の機能と動作について説明します。 第 17 章 DTP/ 外部割込み回路 この章では , MB90800 シリーズの DTP/ 外部割込み回路の機能と動作について説明 ii します。 第 18 章 I2C インタフェース この章では , MB90800 シリーズの I2C インタフェースの機能と動作について説明し ます。 第 19 章 8/10 ビット A/D コンバータ この章では , MB90800 シリーズの 8/10 ビット A/D コンバータの機能と動作につい て説明します。 第 20 章 LCD コントローラ / ドライバ この章では , MB90800 シリーズの LCD 制御回路の機能と動作について説明します。 第 21 章 時計クロック出力 この章では , MB90800 シリーズの時計クロック出力の機能と動作について説明しま す。 第 22 章 遅延割込み発生モジュール この章では , MB90800 シリーズの遅延割込み発生モジュールの機能と動作について 説明します。 第 23 章 アドレス一致検出機能 この章では , MB90800 シリーズのアドレス検出機能と動作について説明します。 第 24 章 ROM ミラー機能選択モジュール この章では , MB90800 シリーズの ROM ミラー機能選択モジュールの機能と動作に ついて説明します。 第 25 章 2M ビットフラッシュメモリ この章では , MB90800 シリーズの 2 M ビットフラッシュメモリの機能や動作につい て説明します。 第 26 章 シリアル書込み接続例 この章では , 横河ディジタルコンピュータ製 AF220 フラッシュマイコンプログラマ を用いた場合の , シリアル書込み接続例について説明します。 付録 付録として , I/O マップおよび命令一覧について記載しています。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ), ならびに極めて高い信頼性 が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2006-2010 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 第2章 2.1 概要 ............................................................................................................ 1 特長 ........................................................................................................................................ 2 品種構成 ................................................................................................................................. 5 ブロックダイヤグラム............................................................................................................ 7 外形寸法図.............................................................................................................................. 8 端子配列図.............................................................................................................................. 9 端子機能説明 ........................................................................................................................ 10 入出力回路形式 .................................................................................................................... 17 デバイスの取扱いに関する注意事項 .................................................................................... 20 クロック供給マップ ............................................................................................................. 23 低消費電力モードについて................................................................................................... 24 CPU.......................................................................................................... 25 CPU ...................................................................................................................................... 26 2.2 メモリ空間............................................................................................................................ 27 2.3 メモリマップ ........................................................................................................................ 29 2.4 アドレッシング .................................................................................................................... 31 2.4.1 リニア方式によるアドレス指定 ................................................................................. 32 2.4.2 バンク方式によるアドレス指定 ................................................................................. 33 2.5 多バイト長データのメモリ上の配置 .................................................................................... 35 2.6 レジスタ ............................................................................................................................... 37 2.7 専用レジスタ ........................................................................................................................ 38 2.7.1 アキュムレータ (A)..................................................................................................... 40 2.7.2 スタックポインタ (USP, SSP)................................................................................... 43 2.7.3 プロセッサステータス (PS) ....................................................................................... 46 2.7.4 コンディションコードレジスタ (PS:CCR) ................................................................ 47 2.7.5 レジスタバンクポインタ (PS:RP).............................................................................. 49 2.7.6 インタラプトレベルマスクレジスタ (PS:ILM)........................................................... 50 2.7.7 プログラムカウンタ (PC)........................................................................................... 51 2.7.8 ダイレクトページレジスタ (DPR) ............................................................................. 52 2.7.9 バンクレジスタ (PCB, DTB, USB, SSB, ADB) .......................................................... 53 2.8 汎用レジスタ ........................................................................................................................ 54 2.9 プリフィックスコード.......................................................................................................... 56 2.9.1 バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)........................................... 57 2.9.2 コモンレジスタバンクプリフィックス (CMR)........................................................... 59 2.9.3 フラグ変化抑止プリフィックス (NCC) ...................................................................... 60 2.9.4 プリフィックスコードに関する制約 .......................................................................... 61 第3章 3.1 3.2 3.3 3.4 3.5 3.6 リセット................................................................................................... 63 リセットの概要 .................................................................................................................... 64 リセット要因と発振安定待ち時間........................................................................................ 66 外部リセット端子 ................................................................................................................. 67 リセット動作 ........................................................................................................................ 68 リセット要因ビット ............................................................................................................. 70 リセットによる各端子の状態 ............................................................................................... 72 v 第4章 4.1 4.2 4.3 4.4 4.5 4.6 第5章 クロック................................................................................................... 73 クロックの概要 .................................................................................................................... 74 クロック発生部のブロックダイヤグラム ............................................................................. 75 クロック選択レジスタ (CKSCR).......................................................................................... 77 クロックモード .................................................................................................................... 80 発振安定待ち時間 ................................................................................................................. 84 振動子と外部クロックの接続 ............................................................................................... 85 低消費電力モード .................................................................................... 87 5.1 低消費電力モードの概要 ...................................................................................................... 88 5.2 低消費電力制御回路のブロックダイヤグラム...................................................................... 91 5.3 低消費電力モード制御レジスタ (LPMCR) ........................................................................... 93 5.4 CPU 間欠動作モード ............................................................................................................ 96 5.5 スタンバイモード ................................................................................................................. 97 5.5.1 スリープモード .......................................................................................................... 98 5.5.2 タイムベースタイマモード ...................................................................................... 100 5.5.3 時計モード ............................................................................................................... 102 5.5.4 ストップモード ........................................................................................................ 104 5.6 状態遷移図.......................................................................................................................... 106 5.7 スタンバイモード , リセット時の端子状態 ........................................................................ 108 5.8 低消費電力モード使用上の注意 ......................................................................................... 109 第6章 割込み .................................................................................................... 113 6.1 割込みの概要 ...................................................................................................................... 114 6.2 割込み要因と割込みベクタ................................................................................................. 116 6.3 割込み制御レジスタと周辺機能 ......................................................................................... 119 6.3.1 割込み制御レジスタ (ICR00 ∼ ICR15) .................................................................... 121 6.3.2 割込み制御レジスタの機能 ...................................................................................... 123 6.4 ハードウェア割込み ........................................................................................................... 126 6.4.1 ハードウェア割込みの動作 ...................................................................................... 129 6.4.2 割込み動作時の処理 ................................................................................................. 131 6.4.3 ハードウェア割込み使用手順................................................................................... 132 6.4.4 多重割込み ............................................................................................................... 133 6.4.5 ハードウェア割込み処理時間................................................................................... 135 6.5 ソフトウェア割込み ........................................................................................................... 137 6.6 拡張インテリジェント I/O サービス (EI2OS) による割込み............................................... 139 6.6.1 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD)........................ 141 6.6.2 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の各レジスタ ................................................................................................................................. 142 6.6.3 拡張インテリジェント I/O サービス (EI2OS) の動作 ............................................... 144 6.6.4 拡張インテリジェント I/O サービス (EI2OS) 使用手順............................................ 145 6.6.5 拡張インテリジェント I/O サービス (EI2OS) 処理時間............................................ 146 6.7 例外処理割込み .................................................................................................................. 149 6.8 割込み処理のスタック動作................................................................................................. 150 6.9 割込み処理のプログラム例................................................................................................. 152 第7章 7.1 7.2 モード設定 ............................................................................................. 155 モード設定の概要 ............................................................................................................... 156 モード端子 (MD2 ∼ MD0).................................................................................................. 157 vi 7.3 第8章 モードデータ ...................................................................................................................... 158 入出力ポート.......................................................................................... 161 8.1 入出力ポートの概要 ........................................................................................................... 162 8.2 入出力ポートのレジスタ説明 ............................................................................................. 164 8.3 ポート 0 .............................................................................................................................. 166 8.3.1 ポート 0 のレジスタ (PDR0, DDR0) ........................................................................ 167 8.3.2 ポート 0 の動作説明 ................................................................................................. 168 8.4 ポート 1 .............................................................................................................................. 170 8.4.1 ポート 1 のレジスタ (PDR1, DDR1) ........................................................................ 171 8.4.2 ポート 1 の動作説明 ................................................................................................. 172 8.5 ポート 2 .............................................................................................................................. 174 8.5.1 ポート 2 のレジスタ (PDR2, DDR2) ........................................................................ 175 8.5.2 ポート 2 の動作説明 ................................................................................................. 176 8.6 ポート 3 .............................................................................................................................. 178 8.6.1 ポート 3 のレジスタ (PDR3, DDR3) ........................................................................ 180 8.6.2 ポート 3 の動作説明 ................................................................................................. 181 8.7 ポート 4 .............................................................................................................................. 183 8.7.1 ポート 4 のレジスタ (PDR4, DDR4) ........................................................................ 184 8.7.2 ポート 4 の動作説明 ................................................................................................. 185 8.8 ポート 5 .............................................................................................................................. 187 8.8.1 ポート 5 のレジスタ (PDR5, DDR5) ........................................................................ 189 8.8.2 ポート 5 の動作説明 ................................................................................................. 190 8.9 ポート 6 .............................................................................................................................. 192 8.9.1 ポート 6 のレジスタ (PDR6, DDR6) ........................................................................ 194 8.9.2 ポート 6 の動作説明 ................................................................................................. 196 8.10 ポート 7 .............................................................................................................................. 198 8.10.1 ポート 7 のレジスタ (PDR7, DDR7) ........................................................................ 200 8.10.2 ポート 7 の動作説明 ................................................................................................. 202 8.11 ポート 8 .............................................................................................................................. 204 8.11.1 ポート 8 のレジスタ (PDR8, DDR8) ........................................................................ 206 8.11.2 ポート 8 の動作説明 ................................................................................................. 207 8.12 ポート 9 .............................................................................................................................. 209 8.12.1 ポート 9 のレジスタ (PDR9, DDR9) ........................................................................ 210 8.12.2 ポート 9 の動作説明 ................................................................................................. 211 8.13 入出力ポートのプログラム例 ............................................................................................. 212 第9章 シリアル I/O ........................................................................................... 213 9.1 シリアル I/O の概要 ............................................................................................................ 214 9.2 シリアル I/O のレジスタ..................................................................................................... 215 9.2.1 シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) .................... 216 9.2.2 シリアルシフトデータレジスタ (SDR0, SDR1)....................................................... 220 9.3 シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) ..................................................... 221 9.4 シリアル I/O の動作 ............................................................................................................ 223 9.4.1 シフトクロック ........................................................................................................ 224 9.4.2 シリアル I/O の動作状態 .......................................................................................... 225 9.4.3 シフト動作のスタート / ストップタイミング .......................................................... 227 9.4.4 シリアル I/O の割込み機能 ....................................................................................... 229 vii 第 10 章 10.1 10.2 10.3 10.4 10.5 10.6 第 11 章 11.1 11.2 11.3 11.4 11.5 11.6 ウォッチドッグタイマ ........................................................................... 243 ウォッチドッグタイマの概要 ............................................................................................. 244 ウォッチドッグタイマ制御レジスタ (WDTC) .................................................................... 246 ウォッチドッグタイマの構成 ............................................................................................. 248 ウォッチドッグタイマの動作 ............................................................................................. 249 ウォッチドッグタイマ使用上の注意 .................................................................................. 251 ウォッチドッグタイマのプログラム例............................................................................... 252 第 12 章 12.1 12.2 12.3 12.4 タイムベースタイマ............................................................................... 231 タイムベースタイマの概要................................................................................................. 232 タイムベースタイマの構成................................................................................................. 234 タイムベースタイマ制御レジスタ (TBTC) ......................................................................... 235 タイムベースタイマの割込み ............................................................................................. 237 タイムベースタイマの動作説明 ......................................................................................... 238 タイムベースタイマ使用上の注意...................................................................................... 241 時計タイマ ............................................................................................. 253 時計タイマの概要 ............................................................................................................... 254 時計タイマの構成 ............................................................................................................... 255 時計タイマ制御レジスタ (WTC)......................................................................................... 256 時計タイマの動作 ............................................................................................................... 258 第 13 章 16 ビットリロードタイマ ...................................................................... 259 13.1 16 ビットリロードタイマの概要 ........................................................................................ 260 13.2 16 ビットリロードタイマの構成 ........................................................................................ 263 13.3 16 ビットリロードタイマの端子 ........................................................................................ 265 13.4 16 ビットリロードタイマのレジスタ................................................................................. 266 13.4.1 タイマコントロールステータスレジスタ上位 (TMCSR) ......................................... 267 13.4.2 タイマコントロールステータスレジスタ下位 (TMCSR) ......................................... 269 13.4.3 16 ビットタイマレジスタ (TMR).............................................................................. 271 13.4.4 16 ビットリロードレジスタ (TMRLR) ..................................................................... 272 13.5 16 ビットリロードタイマの割込み .................................................................................... 273 13.6 16 ビットリロードタイマの動作説明................................................................................. 274 13.6.1 内部クロックモード ( リロードモード )................................................................... 276 13.6.2 内部クロックモード ( ワンショットモード )............................................................ 279 13.6.3 イベントカウントモード .......................................................................................... 282 13.7 16 ビットリロードタイマ使用上の注意 ............................................................................. 284 第 14 章 入出力タイマ.......................................................................................... 285 14.1 入出力タイマの概要 ........................................................................................................... 286 14.2 入出力タイマのブロックダイヤグラム............................................................................... 287 14.3 入出力タイマのレジスタ一覧 ............................................................................................. 288 14.3.1 16 ビットフリーランタイマのレジスタ詳細説明..................................................... 290 14.3.2 インプットキャプチャのレジスタ詳細説明 ............................................................. 295 14.3.3 アウトプットコンペアのレジスタ詳細説明 ............................................................. 297 14.4 入出力タイマの割込み........................................................................................................ 301 14.4.1 16 ビットフリーランタイマの割込み....................................................................... 302 14.4.2 インプットキャプチャの割込み ............................................................................... 303 14.4.3 アウトプットコンペアの割込み ............................................................................... 304 viii 14.5 入出力タイマの動作説明 .................................................................................................... 305 14.5.1 16 ビットフリーランタイマ部 ................................................................................. 306 14.5.2 インプットキャプチャ ............................................................................................. 308 14.5.3 アウトプットコンペア ............................................................................................. 309 第 15 章 PPG タイマ ............................................................................................ 311 15.1 PPG タイマの概要.............................................................................................................. 312 15.2 PPG タイマのブロックダイヤグラム................................................................................. 313 15.3 PPG タイマのレジスタ ...................................................................................................... 314 15.3.1 PPG タイマのレジスタ詳細説明.............................................................................. 316 15.4 PPG タイマの動作説明 ...................................................................................................... 321 15.5 PPG タイマの使用上の注意 ............................................................................................... 324 15.6 PPG タイマの使用例 .......................................................................................................... 325 第 16 章 UART ..................................................................................................... 327 16.1 UART の概要 ...................................................................................................................... 328 16.2 UART の構成 ...................................................................................................................... 330 16.3 UART の端子 ...................................................................................................................... 332 16.4 UART のレジスタ ............................................................................................................... 333 16.4.1 制御レジスタ (SCR0/SCR1) .................................................................................... 334 16.4.2 モードレジスタ (SMR0/SMR1) ................................................................................ 337 16.4.3 ステータスレジスタ (SSR0/SSR1) .......................................................................... 339 16.4.4 インプットデータレジスタ (SIDR0/SIDR1), アウトプットデータレジスタ (SODR0/SODR1) ..................................................................................................... 342 16.4.5 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) .................................................. 344 16.5 UART の割込み................................................................................................................... 346 16.5.1 受信割込み発生とフラグセットのタイミング.......................................................... 348 16.5.2 送信割込み出力とフラグセットのタイミング.......................................................... 349 16.6 UART のボーレート ........................................................................................................... 350 16.6.1 専用ボーレートジェネレータによるボーレート ...................................................... 352 16.6.2 内部タイマによるボーレート................................................................................... 354 16.6.3 外部クロックによるボーレート ............................................................................... 356 16.7 UART の動作説明 ............................................................................................................... 357 16.7.1 非同期モード ( 動作モード 0, 1) 時の動作................................................................ 359 16.7.2 同期モード ( 動作モード 2) 時の動作 ....................................................................... 362 16.7.3 双方向通信機能 ( ノーマルモード ) .......................................................................... 364 16.7.4 マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 366 16.8 UART 使用上の注意 ........................................................................................................... 369 第 17 章 DTP/ 外部割込み回路 ............................................................................. 371 17.1 DTP/ 外部割込み回路の概要............................................................................................... 372 17.2 DTP/ 外部割込み回路の構成............................................................................................... 373 17.3 DTP/ 外部割込み回路の端子............................................................................................... 375 17.4 DTP/ 外部割込み回路のレジスタ ....................................................................................... 376 17.4.1 DTP/ 外部割込み要因レジスタ (EIRR) ..................................................................... 377 17.4.2 DTP/ 外部割込み許可レジスタ (ENIR) ..................................................................... 380 17.4.3 要求レベル設定レジスタ (ELVR) ............................................................................. 382 17.5 DTP/ 外部割込み回路の動作説明 ....................................................................................... 384 17.5.1 外部割込み機能 ........................................................................................................ 387 ix 17.5.2 DTP 機能 .................................................................................................................. 388 17.6 DTP/ 外部割込み回路使用上の注意.................................................................................... 389 第 18 章 I2C インタフェース ................................................................................ 391 18.1 I2C インタフェースの概要.................................................................................................. 392 18.2 I2C インタフェースのブロックダイヤグラムと構成図 ...................................................... 393 18.3 I2C インタフェースのレジスタ .......................................................................................... 395 18.3.1 I2C ステータスレジスタ (IBSR) ............................................................................... 396 18.3.2 I2C コントロールレジスタ (IBCR)............................................................................ 398 18.3.3 I2C クロックコントロールレジスタ (ICCR) ............................................................. 403 18.3.4 I2C アドレスレジスタ (IADR)................................................................................... 406 18.3.5 I2C データレジスタ (IDAR) ...................................................................................... 407 18.4 I2C インタフェースの動作.................................................................................................. 408 18.4.1 I2C インタフェースの転送フロー............................................................................. 411 18.4.2 I2C インタフェースのモードフロー ......................................................................... 413 18.4.3 I2C インタフェースの動作フロー............................................................................. 414 第 19 章 8/10 ビット A/D コンバータ................................................................... 417 19.1 8/10 ビット A/D コンバータの概要 .................................................................................... 418 19.2 8/10 ビット A/D コンバータの構成 .................................................................................... 419 19.3 8/10 ビット A/D コンバータの端子 .................................................................................... 421 19.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 423 19.4.1 A/D 制御ステータスレジスタ 1(ADCS1).................................................................. 424 19.4.2 A/D 制御ステータスレジスタ 0(ADCS0).................................................................. 426 19.4.3 A/D データレジスタ (ADCR0/ADCR1)..................................................................... 428 19.4.4 A/D 変換チャネル設定レジスタ (ADMR).................................................................. 430 19.5 8/10 ビット A/D コンバータの割込み................................................................................. 432 19.6 8/10 ビット A/D コンバータの動作説明 ............................................................................. 433 19.6.1 EI2OS を使用した変換動作 ...................................................................................... 436 19.6.2 A/D 変換データ保護機能 .......................................................................................... 437 第 20 章 LCD コントローラ / ドライバ ................................................................ 439 20.1 LCD コントローラ / ドライバの概要 .................................................................................. 440 20.2 LCD コントローラ / ドライバの構成 .................................................................................. 441 20.2.1 LCD コントローラ / ドライバの内部分割抵抗 ......................................................... 443 20.2.2 LCD コントローラ / ドライバの外部分割抵抗 ......................................................... 445 20.3 LCD コントローラ / ドライバの端子 .................................................................................. 447 20.4 LCD コントローラ / ドライバのレジスタ........................................................................... 451 20.4.1 LCDC 制御レジスタ下位 (LCRL).............................................................................. 452 20.4.2 LCDC 制御レジスタ上位 (LCRH) ............................................................................. 454 20.4.3 LCDC 範囲レジスタ (LCRR) .................................................................................... 456 20.5 LCD コントローラ / ドライバの表示用 RAM...................................................................... 457 20.6 LCD コントローラ / ドライバの動作説明........................................................................... 461 20.6.1 LCD コントローラ / ドライバ動作時の出力波形 (1/2 デューティ ).......................... 463 20.6.2 LCD コントローラ / ドライバ動作時の出力波形 (1/3 デューティ ).......................... 466 20.6.3 LCD コントローラ / ドライバ動作時の出力波形 (1/4 デューティ ).......................... 469 第 21 章 時計クロック出力 .................................................................................. 473 21.1 時計クロック出力回路の概要 ............................................................................................. 474 x 21.2 時計クロック出力回路の構成 ............................................................................................. 475 21.3 時計クロック出力制御レジスタ (TMCS)............................................................................ 476 第 22 章 22.1 22.2 22.3 22.4 遅延割込み発生モジュール .................................................................... 479 遅延割込み発生モジュールの概要...................................................................................... 480 遅延割込み要因発生 / 解除レジスタ (DIRR)....................................................................... 481 遅延割込み発生モジュールの動作...................................................................................... 482 遅延割込み発生モジュールの使用上の注意 ....................................................................... 483 第 23 章 アドレス一致検出機能 ........................................................................... 485 23.1 アドレス一致検出機能の概要 ............................................................................................. 486 23.2 アドレス一致検出機能のレジスタ...................................................................................... 487 23.2.1 プログラムアドレス検出レジスタ (PADR0/PADR1) ............................................... 488 23.2.2 プログラムアドレス検出コントロールステータスレジスタ (PACSR) .................... 489 23.3 アドレス一致検出機能の動作説明...................................................................................... 490 23.4 アドレス一致検出機能の使用例 ......................................................................................... 491 第 24 章 ROM ミラー機能選択モジュール........................................................... 495 24.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 496 24.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 497 第 25 章 2 M ビットフラッシュメモリ................................................................. 499 25.1 2 M ビットフラッシュメモリの概要 .................................................................................. 500 25.2 フラッシュメモリのレジスタとセクタ構成 ....................................................................... 501 25.3 フラッシュメモリ制御ステータスレジスタ (FMCS).......................................................... 502 25.4 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 505 25.5 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 506 25.5.1 フラッシュメモリを読出し / リセット状態にする ................................................... 507 25.5.2 フラッシュメモリへデータを書き込む .................................................................... 508 25.5.3 フラッシュメモリの全データを消去する ( チップ消去 ).......................................... 509 25.5.4 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) .................................. 510 25.5.5 フラッシュメモリのセクタ消去を一時停止する ...................................................... 512 25.5.6 フラッシュメモリのセクタ消去を再開する ............................................................. 513 第 26 章 シリアル書込み接続例 ........................................................................... 515 26.1 シリアル書込み接続の基本構成 ......................................................................................... 516 26.2 シリアル書込み接続例........................................................................................................ 519 付録 付録 A 付録 B B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 ............................................................................................................... 525 I/O マップ ...................................................................................................................... 526 命令 ............................................................................................................................... 532 命令の種類 .................................................................................................................. 533 アドレッシング ........................................................................................................... 534 直接アドレッシング.................................................................................................... 536 間接アドレッシング.................................................................................................... 543 実行サイクル数 ........................................................................................................... 550 実効アドレスフィールド ............................................................................................ 552 命令一覧表の読み方.................................................................................................... 554 F2MC-16LX 命令一覧表.............................................................................................. 557 xi B.9 索引 命令マップ .................................................................................................................. 571 ............................................................................................................... 593 xii 本版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) - - 品種名を訂正 MB90802/S を削除 MB90F809/S を追加 5 第1章概要 1.2 品種構成 ■ 品種構成 表 1.2-1 を 訂正。 7 1.3 ブロックダイヤグラム ■ ブロックダイヤグラム 図 1.3-1 を訂正。 MB90802S/803S, MB90F804-101: P90, P91 → X0A, X1A: サブクロックあり 型格に S サフィックスなし /201 オプション MB90802/803, MB90F804-201: X0A, X1A → P90, P91: サブクロックなし 型格に S サフィックスあり /101 オプション 29 第 2 章 CPU 2.3 メモリマップ ■ メモリマップ 表を訂正。 MB90802/802S → MB90803/S, MB90F803/S MB90803/803S → MB90F809/S MB90V800 → MB90V800-101/201 0008FFH → 0010FFH 0010FFH → 0028FFH FC0000H → FD0000H 30 <注意事項>を訂正。 ("FF8000H" ∼ "FFFFFFH") → ("FF4000H" ∼ "FFFFFFH") 428 第 19 章 8/10 ビット A/D コ ンバータ 19.4.3 A/D データレジスタ (ADCR0/ADCR1) ■ A/D データレジスタ (ADCR0/ADCR1) 532 付録 B 命令 538 B.3 直接アドレッシング ● I/O 直接 (io) 図 19.4-4 を訂正。 (φ=8MHz の場合 ,5.50μs) → (1.76μs@25MHz) (φ=16MHz の場合 ,4.12μs) → (2.64μs@25MHz) (φ=16MHz の場合 ,5.50μs) → (3.52μs@25MHz) (φ=25MHz の場合 ,7.040μs) → (7.04μs@25MHz) (φ=8MHz の場合 ,2.5μs) → (0.8μs@25MHz) (φ=16MHz の場合 ,2.0μs) → (1.28μs@25MHz) (φ=16MHz の場合 ,3.0μs) → (1.92μs@25MHz) (φ=25MHz の場合 ,5.12μs) → (5.12μs@25MHz) 「付録 B 命令」全体を変更 図 B.3-5 を変更。 MOVW A, i : 0C0H → MOVW A, I:0C0H 図 B.3-5 に ( 注意事項 ) を追加。 539 B.3 直接アドレッシング ● 短縮直接アドレス (dir) 図 B.3-6 に ( 注意事項 ) を追加。 xiii ページ 540 546 547 変更内容 ( 詳細は本文を参照してください。) B.3 直接アドレッシング ● I/O 直接ビットアドレス (io: bp) 図 B.3-8 を変更。 SETB i : 0C1H : 0 → SETB I:0C1H:0 図 B.3-8 に ( 注意事項 ) を追加。 B.3 直接アドレッシング ● 短縮直接ビットアドレス (dir: bp) 図 B.3-9 に ( 注意事項 ) を追加。 B.4 間接アドレッシング ● プログラムカウンタ相対 分岐アドレス (rel) 説明を変更。 ディスプレースメント → オフセット B.4 間接アドレッシング ● レジスタリスト (rlst) 図 B.4-9 を変更。 POPW, RW0, RW4 → POPW RW0, RW4 図 B.4-7 を変更。 BRA 10H → BRA 3C32H 実行後 PC : 3C20 → 3C32 xiv ページ 572 573 変更内容 ( 詳細は本文を参照してください。) B.9 命令マップ ■ 命令マップの構造 表 B.9-1 の命令欄を変更。 @RW2+d8, #8, rel → CBNE @RW2+d8, #8, rel 表 B.9-2 の E0 列 , +0 行 のオペランドを変更。 #4 → #vct4 表 B.9-2 の D0 列 , +0 行 のニーモニックを変更。 MOV → MOVN 表 B.9-2 の B0 列 , +0 行 のニーモニックを変更。 MOV → MOVX 表 B.9-2 の B0 列 , +8 行 のニーモニックを変更。 MOV → MOVW 575 表 B.9-4 の E0 列 , +0 行 のニーモニックを変更。 FILSI → FILSWI 576 表 B.9-5 の 70 列 , +A 行 のニーモニックを変更。 DIVU → DIV 577 表 B.9-6 の F0 列 , +E, +F 行 のオペランドを変更。 ,#8, rel → #8, rel 580 表 B.9-9 の 20 列 , +0 ∼ +7 行 のオペランドを変更。 RWi → @RWi 581 表 B.9-10 の E0 列 , F0 列 のオペランドを変更。 ,r → ,rel 582 表 B.9-11 の 70 列 のオペランドを変更。 NEG A, → NEG 583 表 B.9-12 の E0 列 , F0 列 のオペランドを変更。 ,r → ,rel 591 表 B.9-20 を変更。 列「A」を「A0」に変更。 表 B.9-20 の+ A 行のオペランドを変更。 W2+d16,A → @RW2+d16 変更箇所は , 本文中のページ左側の│によって示しています。 xv xvi 第1章 概要 MB90800 シリーズの特長と基本的な仕様について 説明します。 1.1 特長 1.2 品種構成 1.3 ブロックダイヤグラム 1.4 外形寸法図 1.5 端子配列図 1.6 端子機能説明 1.7 入出力回路形式 1.8 デバイスの取扱いに関する注意事項 1.9 クロック供給マップ 1.10 低消費電力モードについて 1 第 1 章 概要 1.1 特長 MB90800 シリーズは , 各種産業用 , OA 機器用 , プロセス制御などに適した高速リア ルタイム処理が要求される用途向けに開発された汎用の 16 ビットマイクロコント ローラです。48 セグメント 4 コモンの LCD コントローラを内蔵しています。 命令体系は , F2MC-8L, F2MC16L と同じく AT アーキテクチャを継承し , 高級言語対 応・アドレッシングモードの拡張・符号付き乗除算命令の強化・ビット処理の充実 化を図っています。さらに , 32 ビットアキュムレータの搭載により , ロングワード 処理が可能です。 ■ MB90800 シリーズの特長 ● クロック • PLL クロック逓倍回路内蔵 • 原発振の 2 分周もしくは原発振の 1 逓倍∼ 4 逓倍 ( 原発振 6.25 MHz 時 , 6.25 MHz ∼ 25 MHz) の動作クロック (PLL クロック ) を選択可能 • 最小命令実行時間, 40.0 ns(原発振6.25 MHz, PLLクロック4逓倍, VCC=3.3 V動作時) ● 最大メモリ空間 :16 M バイト • 内部は 24 ビットアドレッシング • バンクアドレッシング ● コントローラ用途に最適な命令体系 • 豊富なデータタイプ ( ビット , バイト , ワード , ロングワード ) • 豊富なアドレッシングモード (23 種類 ) • 高いコード効率 • 32 ビットアキュムレータの採用による高精度演算の強化 • 符号付き乗除算命令 , RETI 命令機能強化 ● 高級言語 (C 言語 )/ マルチタスクに対応する命令体系 • システムスタックポインタの採用 • 命令セットの対称性とバレルシフト命令 ● プログラムパッチ機能 (2 アドレスポインタ ) ● 実行速度の向上 4 バイトの命令キュー ● 強力な割込み機能 ( プライオリティレベルがプログラマブルに 8 レベル設定可能 ) 32 要因の強力な割込み機能 2 第 1 章 概要 ■ MB90800 シリーズの内部周辺機能 ( リソース ) ● データ転送機能 ( 拡張インテリジェント I/O サービス機能 : 最大 16 チャネル ) ● 低消費電力 ( スタンバイモード ) • スリープモード (CPU 動作クロックを停止するモード ) • タイムベースタイマモード ( 発振クロックとサブクロック , タイムベースタイマと 時計タイマのみ動作させるモード ) • 時計タイマモード ( サブクロックと時計タイマのみ動作させるモード ) • ストップモード ( 発振クロックとサブクロックを停止するモード ) • CPU 間欠動作モード ● パッケージ QFP-100(FPT-100P-M06:0.65 mm ピンピッチ ) ● プロセス :CMOS テクノロジ ● I/O ポート : 最大 68 本 ( サブクロック未使用時は 70 本 ) ● タイムベースタイマ ● ウォッチドッグタイマ ● 時計タイマ ● LCD コントローラ 48 セグメント 4 コモン ● 8/10 ビット A/D コンバータ (12 チャネル ) 8 ビット 分解能または 10 ビット分解能が設定できます。 ● 多機能タイマ • 16 ビット フリーランタイマ :1 チャネル • 16 ビットアウトプットコンペア :2 チャネル • 16 ビットフリーランタイマのカウント値とアウトプットコンペアレジスタへの設定 値が一致した場合 , 割込み要求を出力させることができます。 • 16 ビット インプットキャプチャ :2 チャネル • 外部入力端子から入力された信号の有効エッジを検出することにより , 16 ビットフ リーランタイマのカウント値をインプットキャプチャデータレジスタに取り込み , 割込み要求を出力させることができます。 • 16 ビット PPG タイマ :2 チャネル • 16 ビット リロードタイマ :3 チャネル ● UART:2 チャネル ● I/O 拡張シリアルインタフェース :2 チャネル 3 第 1 章 概要 ● DTP/ 外部割込み回路 (4 チャネル ) • 外部割込み入力による拡張インテリジェント I/O サービスの起動 • 外部割込み入力による割込み出力 ● 時計クロック出力回路 ● 遅延割込み出力モジュール タスク切換え用の割込み要求を出力 ● I2C インタフェース :1 チャネル 4 第 1 章 概要 1.2 品種構成 表 1.2-1 に , MB90800 シリーズ品種構成一覧を示します。 ■ 品種構成 表 1.2-1 MB90800 シリーズ品種構成一覧 (1 / 2) 品種名 特長 MB90V800- MB90F804101/201 101/201 評価用品 フラッシュ メモリ品 MB90803/ MB90803S マスク ROM 品 MB90F803/ MB90F803S MB90F809/ MB90F809S フラッシュメモリ品 システムクロック オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, PLL 停止時 1/2), 最小命令実行時間 40.0 ns (6.25 MHz 原発振 4 逓倍 ) サブクロック サブクロックあり: 201 オプション サブクロックなし: 101 オプション ROM 搭載なし 256 K バイト サブクロックあり: 型格に S サフィックスがない製品 サブクロックなし: 型格に S サフィックスがある製品 128 K バイト 128 K バイト 192 K バイト デュアル オペレーション RAM 28 K バイト 16 K バイト CPU 機能 基本命令 :351 命令 最小命令実行時間 :40.0 ns/6.25 MHz 発振 (4 逓倍使用時:マシンクロック 25 MHz) アドレッシング種類 :23 種類 プログラムパッチ機能:2 アドレスポインタ分 最大メモリ空間 :16 M バイト ポート 入出力ポート (CMOS):68 本 ( リソース兼用 ) , ( サブクロック未使用時は 70 本 ) LCD コントローラ / ドライバ LCD パネル ( 液晶表示 ) を直接駆動可能なセグメントドライバ , および コモンドライバ 48 セグメント× 4 コモン 16 ビット フリーラン タイマ 入出力 タイマ 4 K バイト 4 K バイト 10 K バイト 1 チャネル オーバフロー割込み アウトプット 2 チャネル コンペア 端子入力要因:アウトプットコンペアレジスタの一致信号による インプット キャプチャ 16 ビット リロードタイマ 2 チャネル 端子入力 ( 立上り / 立下り / 両エッジ ) によるレジスタの書換え 16 ビットリロードタイマ動作 ( トグル出力 , ワンショット出力選択可能 ) イベントカウント機能選択可能 3 チャネル内蔵 5 第 1 章 概要 表 1.2-1 MB90800 シリーズ品種構成一覧 (2 / 2) 品種名 MB90V800- MB90F804101/201 101/201 MB90803/ MB90803S MB90F803/ MB90F803S 16 ビット PPG タイマ 出力端子× 2 本 動作クロック周波数:fcp ∼ fcp/27(8 種類 ) 2 チャネル内蔵 時計クロック 出力回路 外部入力クロックの 16/32/64/128 分周を外部出力可能 I2C バス I2C インタフェース 1 チャネル内蔵 MB90F809/ MB90F809S 12 チャネル ( 入力マルチプレックス ) 8/10 ビット A/D コンバータ 8 ビット分解能または 10 ビット分解能が設定可能 変換時間:5.9 μs ( マシンクロック 16.8 MHz 動作している場合 ) UART 全二重ダブルバッファ方式 非同期 / 同期転送 ( スタート / ストップビット付き ) をサポート 2 チャネル内蔵 I/O 拡張シリアル インタフェース 2 チャネル内蔵 遅延割込み 1 チャネル DTP/ 外部割込み 4 チャネル 割込み要因:"L" → "H" エッジ /"H" → "L" エッジ /"L" レベル / "H" レベル選択可能 低消費電力モード スリープモード / タイムベースタイマモード / 時計モード / ストップモード /CPU 間欠モード プロセス CMOS 動作電圧 3.3 V ± 0.3 V エミュレータ専用電源 * あり − *:エミュレータ (MB2147-01) をご使用いただく際のジャンパスイッチ (TOOL VCC) の設定です。 詳細につきましては , MB2147-01 または MB2147-20 ハードウェアマニュアル (「3.3 エミュレータ専 用電源切換え」) を参照してください。 6 第 1 章 概要 1.3 ブロックダイヤグラム 図 1.3-1 に , ブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.3-1 ブロックダイヤグラム X0, X1 X0A*, X1A* RST クロック 制御回路 ポート 12 割込みコントローラ 10ビット A/Dコンバータ 0 ポート P10~P17/SEG20~SEG27 8 外部割込み (4チャネル) ポート 8 ポート P00~P07/SEG12~SEG19 ROM/Flash (128/256 Kバイト) 8 SEG0~SEG11 RAM (2/4/16/28 Kバイト) LCDコントローラ/ ドライバ F2MC-16LX バス V0/P80 V1/P81 V2/P82 V3 COM0 COM1 P83/COM2 P84/COM3 CPU F2MC-16LXコア 6 P60/AN0 P61/AN1 P62/AN2 P63/AN3 P64/AN4 P65/AN5/INT0 P66/AN6/INT1 P67/AN7/INT2 1 I2C 7 2 シリアルI/O 2/3 3 プリスケーラ2/3 OCU0/1 フリーランタイマ 4 ICU0/1 時計クロック出力 P90* P91* 9 *: X0A, X1AとP90, P91はオプション による切換え式となります。 X0A, X1A:サブクロックあり 型格にSサフィックスなし/201オプション P90, P91:サブクロックなし 型格にSサフィックスあり/101オプション リロードタイマ 0/1/2 ポート P50/SEG44/TIN0 P51/SEG45/TIN1 P52/SEG46/TIN2/PPG0 P53/SEG47/PPG1 P54/SI0 P55/SC0 P56/SO0 P57/SI1 ポート P40/LED0 P41/LED1 P42/LED2 P43/LED3 P44/LED4 P45/LED5/TOT0 P46/LED6/TOT1 P47/LED7/TOT2 ポート ポート P30/SEG36/SO3 P31/SEG37/SC3 P32/SEG38/SI3 P33/SEG39/TMCK P34/SEG40/IC0 P35/SEG41/IC1 P36/SEG42/OCU0 P37/SEG43/OCU1 ポート 8 ポート P20~P27/SEG28~SEG35 P70/AN8/INT3 P71/AN9/SC1 P72/AN10/SO1 P73/AN11/SI2 P74/SDA/SC2 P75/SCL/SO2 P76 PPG0/1 (注意)評価用デバイス(MB90V800)の仕様 内蔵ROMはありません。 内蔵RAMは28Kバイトとなります。 UART0/1 5 プリスケーラ0/1 7 第 1 章 概要 外形寸法図 1.4 MB90800 シリーズのパッケージ外形寸法図を示します。 ■ FPT-100P-M06 の外形寸法図 プラスチック・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" ©2002-2008 FUJITSU MICROELECTRONICS LIMITED F100008S-c-5-6 C 2002 FUJITSU LIMITED F100008S-c-5-5 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/package/jp-search/ 8 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) 0.25±0.20 (.010±.008) (Stand off) 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 1.5 端子配列図 図 1.5-1 に , 端子配列図を示します。 ■ 端子配列図 図 1.5-1 端子配列図 P04/SEG16 81 P05/SEG17 82 P06/SEG18 83 P07/SEG19 84 P10/SEG20 85 P11/SEG21 86 P12/SEG22 87 P13/SEG23 88 P14/SEG24 89 90 VCC 91 VSS X1 92 X0 93 P15/SEG25 94 P16/SEG26 95 P17/SEG27 96 P20/SEG28 97 P21/SEG29 98 P22/SEG30 99 P23/SEG31 100 P24/SEG32 P25/SEG33 P26/SEG34 P27/SEG35 P30/SEG36/SO3 P31/SEG37/SC3 P32/SEG38/SI3 P33/SEG39/TMCK P34/SEG40/IC0 P35/SEG41/IC1 P36/SEG42/OCU0 P37/SEG43/OCU1 X0A/P90 * X1A/P91 * VCC VSS P40/LED0 P41/LED1 P42/LED2 P43/LED3 P44/LED4 P45/LED5/TOT0 P46/LED6/TOT1 P47/LED7/TOT2 P50/SEG44/TIN0 P51/SEG45/TIN1 P52/SEG46/TIN2/PPG0 P53/SEG47/PPG1 P54/SI0 P55/SC0 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 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 P03/SEG15 P02/SEG14 P01/SEG13 P00/SEG12 SEG11 SEG10 SEG9 SEG8 SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 VSS VCC SEG1 SEG0 P84/COM3 P83/COM2 COM1 COM0 V3 V2/P82 V1/P81 V0/P80 RST MD0 MD1 MD2 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 P75/SCL/SO2 P74/SDA/SC2 P73/AN11/SI2 P72/AN10/SO1 P71/AN9/SC1 P70/AN8/INT3 VSS P67/AN7/INT2 P66/AN6/INT1 P65/AN5/INT0 P64/AN4 P63/AN3 P62/AN2 P61/AN1 P60/AN0 AVSS P76 P57/SI1 AVCC P56/SO0 *: X0A, X1A と P90, P91 はオプションによる切換え式となります。 X0A, X1A:サブクロックあり 型格に S サフィックスなし /201 オプション P90, P91:サブクロックなし 型格に S サフィックスあり /101 オプション 9 第 1 章 概要 1.6 端子機能説明 表 1.6-1 に , 端子機能説明を示します。 ■ 端子機能説明 表 1.6-1 端子機能説明 (1 / 7) 端子番号 端子名 回路形式 QFP 92, 93 リセット時の 状態 / 機能 機能説明 X0, X1 A 発振状態 振動子を接続する端子です。 外部クロックを接続する場合は X1 端子側を 開放してください。 X0A, X1A B 発振状態 サブクロック用発振端子です (32 kHz)。 (2 系統クロック品の場合 ) P90, P91 G ポート入力 (Hi-Z) 汎用入出力ポートです。 (1 系統クロック品の場合 ) MD2 M モード端子 動作モード指定用の入力端子です。 VSS に直結してください。 MD1, MD0 L モード端子 動作モード指定用の入力端子です。 VCC に直結してください。 RST K リセット入力 外部リセット入力端子です。 SEG0 ∼ SEG11 D LCD SEG 出力 LCD コントローラ / ドライバのセグメント 出力端子です。 13, 14 51 52, 53 54 63, 64, 67 ∼ 72, 73 ∼ 76 77 ∼ 84 SEG12 ∼ SEG19 LCD コントローラ / ドライバのセグメント 出力端子です。 E P00 ∼ P07 85 ∼ 89, 94 ∼ 96 97 ∼ 100, 1∼4 SEG20 ∼ SEG27 E ポート入力 (Hi-Z) LCD コントローラ / ドライバのセグメント 出力端子です。 P10 ∼ P17 汎用入出力ポートです。 SEG28 ∼ SEG35 LCD コントローラ / ドライバのセグメント 出力端子です。 P20 ∼ P27 10 汎用入出力ポートです。 E 汎用入出力ポートです。 第 1 章 概要 表 1.6-1 端子機能説明 (2 / 7) 端子番号 端子名 回路形式 QFP リセット時の 状態 / 機能 LCD コントローラ / ドライバのセグメント 出力端子です。 SEG36 P30 5 汎用入出力ポートです。 E SO3 シリアル I/O ch.3 のシリアルデータ出力端子 です。 シリアル I/O ch.3 のシリアルデータ出力許可 の場合に有効です。 SEG37 LCD コントローラ / ドライバのセグメント 出力端子です。 P31 6 汎用入出力ポートです。 E SC3 シリアル I/O ch.3 のシリアルクロック入出力 端子です。 シリアル I/O ch.3 のシリアルクロック出力許 可の場合に有効です。 SEG38 LCD コントローラ / ドライバのセグメント 出力端子です。 ポート入力 (Hi-Z) P32 7 8 9, 10 機能説明 E 汎用入出力ポートです。 SI3 シリアル I/O ch.3 のシリアルデータ入力端子 です。 シリアル I/O ch.3 が入力動作中には 随時使 用していますので , ほかの端子として使用 しないでください。 SEG39 LCD コントローラ / ドライバのセグメント 出力端子です。 P33 E 汎用入出力ポートです。 TMCK 時計クロック出力端子です。 出力許可の場合に有効です。 SEG40, SEG41 LCD コントローラ / ドライバのセグメント 出力端子です。 P34, P35 IC0, IC1 E 汎用入出力ポートです。 インプットキャプチャ ch.0/ch.1 の外部トリ ガ入力端子です。 11 第 1 章 概要 表 1.6-1 端子機能説明 (3 / 7) 端子番号 端子名 回路形式 QFP リセット時の 状態 / 機能 SEG42, SEG43 11, 12 P36, P37 LCD コントローラ / ドライバのセグメント 出力端子です。 E 汎用入出力ポートです。 OCU0, OCU1 17 ∼ 21 22 ∼ 24 LED0 ∼ LED4 アウトプットコンペアの出力端子です。 LED 用 出力端子です (IOL=15 mA)。 F P40 ∼ P44 汎用入出力ポートです。 LED5 ∼ LED7 LED 用 出力端子です (IOL=15 mA)。 P45 ∼ P47 汎用入出力ポートです。 F TOT0 ∼ TOT2 ポート入力 (Hi-Z) SEG44, SEG45 25, 26 P50, P51 E リロードタイマ ch.0 ∼ ch.2 の外部イベント 出力端子です。 外部イベント出力許可の場合に有効です。 LCD コントローラ / ドライバのセグメント 出力端子です。 汎用入出力ポートです。 TIN0, TIN1 リロードタイマ ch.0, ch.1 の外部クロック入 力端子です。 外部クロック入力許可の場合に有効です。 SEG46 LCD コントローラ / ドライバのセグメント 出力端子です。 P52 汎用入出力ポートです。 27 12 機能説明 E TIN2 リロードタイマ ch.2 の外部クロック入力端 子です。 外部クロック入力許可の場合に有効です。 PPG0 PPG タイマ ch.0 出力端子です。 第 1 章 概要 表 1.6-1 端子機能説明 (4 / 7) 端子番号 端子名 回路形式 QFP リセット時の 状態 / 機能 LCD コントローラ / ドライバのセグメント 出力端子です。 SEG47 28 P53 E 汎用入出力ポートです。 PPG1 PPG タイマ ch.1 出力端子です。 SI0 UART ch.0 のシリアルデータ入力端子です。 UART ch.0 が入力動作中には随時使用して いますので , ほかの端子として使用しない でください。 29 G P54 汎用入出力ポートです。 SC0 UART ch.0 のシリアルクロック入出力端子 です。 UART ch.0 のシリアルクロック出力許可の 場合に有効です。 30 G ポート入力 (Hi-Z) P55 汎用入出力ポートです。 SO0 UART ch.0 のシリアルデータ出力端子です。 UART ch.0 のシリアルデータ出力許可の場 合に有効です。 31 G P56 汎用入出力ポートです。 SI1 UART ch.1 のシリアルデータ入力端子です。 UART ch.1 が入力動作中には随時使用して いますので , ほかの端子として使用しない でください。 33 G P57 34 機能説明 P76 汎用入出力ポートです。 G 汎用入出力ポートです。 13 第 1 章 概要 表 1.6-1 端子機能説明 (5 / 7) 端子番号 端子名 回路形式 QFP リセット時の 状態 / 機能 A/D コンバータのアナログ入力端子 ch.0 ∼ ch.4 です。アナログ入力設定が許可の場合に 有効です (ADER で設定 ) 。 AN0 ∼ AN4 I 36 ∼ 40 41 ∼ 43 P60 ∼ P64 汎用入出力ポートです。 AN5 ∼ AN7 A/D コンバータのアナログ入力端子 ch.5 ∼ ch.7 です。アナログ入力設定が許可の場合に 有効です (ADER で設定 ) 。 P65 ∼ P67 I 汎用入出力ポートです。 INT0 ∼ INT2 外部割込み ch.0 ∼ ch.2 入力端子として機能 します。 AN8 A/D コンバータのアナログ入力端子 ch.8 で す。アナログ入力設定が許可の場合に有効 です (ADER で設定 ) 。 45 I P70 汎用入出力ポートです。 アナログ入力 (Hi-Z) INT3 47 P71 I 汎用入出力ポートです。 SC1 UART ch.1 のシリアルクロック入出力端子 です。 UART ch.1 のシリアルクロック出力許可の 場合に有効です。 AN10 A/D コンバータのアナログ入力端子 ch.10 で す。アナログ入力設定が許可の場合に有効 です (ADER で設定 ) 。 P72 SO1 14 外部割込み ch.3入力端子として機能します。 A/D コンバータのアナログ入力端子 ch.9 で す。アナログ入力設定が許可の場合に有効 です (ADER で設定 ) 。 AN9 46 機能説明 I 汎用入出力ポートです。 UART ch.1 のシリアルデータ出力端子です。 UART ch.1 のシリアルデータ出力許可の場 合に有効です。 第 1 章 概要 表 1.6-1 端子機能説明 (6 / 7) 端子番号 端子名 回路形式 QFP リセット時の 状態 / 機能 A/D コンバータのアナログ入力端子 ch.11 で す。アナログ入力設定が許可の場合に有効 です (ADER で設定 ) 。 AN11 P73 48 49 I アナログ入力 (Hi-Z) SI2 SDA I2C インタフェースのデータ入出力端子で す。この機能は , I2C インタフェースが動作 許可の場合に有効となります。I2C インタ フェースが動作している間はポートを入力 設定としてください。 P74 H 汎用入出力ポートです ( ただし , N-ch オープン ドレイン ) 。 ポート入力 (Hi-Z) SCL P75 H J LCD 駆動 電源入力 P80 ∼ P82 COM0, COM1 COM2, COM3 LCD コントローラ / ドライバの基準電源端 子です。 汎用入出力ポートです。 D LCD COM 出力 E ポート入力 (Hi-Z) P83, P84 61, 62 I2Cインタフェースのクロック入出力端子で す。この機能は I2C インタフェースが動作許 可の場合に有効となります。I2C が動作して いる間はポートを入力設定としてくださ い。 シリアル I/O ch.2 のシリアルデータ出力端子 です。 シリアル I/O ch.2 のシリアルデータ出力許可 の場合に有効です。 V0 ∼ V2 55 ∼ 57 シリアル I/O ch.2 のシリアルクロック入出力 端子です。 シリアル I/O ch.2 のシリアルクロック出力許 可の場合に有効です。 汎用入出力ポートです ( ただし , N-ch オープン ドレイン ) 。 SO2 59, 60 汎用入出力ポートです。 シリアル I/O ch.2 のシリアルデータ入力端子 です。 シリアル I/O ch.2 が入力動作中には 随時使 用していますので , ほかの端子として使用 しないでください。 SC2 50 機能説明 LCD コントローラ / ドライバのコモン出力 端子です。 汎用入出力ポートです。 LCD コントローラ / ドライバのコモン出力 端子です。 15 第 1 章 概要 表 1.6-1 端子機能説明 (7 / 7) 端子番号 端子名 回路形式 QFP リセット時の 状態 / 機能 機能説明 32 AVCC C A/D コンバータの専用電源入力端子です。 35 AVSS C A/D コンバータの専用 GND 電源端子です。 58 V3 J 15, 65, 90 VCC ― 電源入力端子です。 16, 44, 66, 91 VSS ― GND 電源端子です。 16 電源入力 LCD コントローラ / ドライバの基準電源端 子です。 第 1 章 概要 入出力回路形式 1.7 表 1.7-1 に , 入出力回路形式について示します。 ■ 入出力回路形式 表 1.7-1 入出力回路形式 (1 / 3) 分類 A 回路 備考 ・発振帰還抵抗 約 1 MΩ X1 P-ch N-ch クロック入力 X0 スタンバイ制御信号 B ・低速用発振帰還抵抗 約 10 MΩ X1A P-ch N-ch クロック入力 X0A スタンバイ制御信号 C ・アナログ電源入力保護回路 P-ch アナログ入力 N-ch D ・LCDC 出力 P-ch R LCDC出力 N-ch 17 第 1 章 概要 表 1.7-1 入出力回路形式 (2 / 3) 分類 回路 備考 E P-ch Pout N-ch Nout ・CMOS 出力 ・LCDC 出力 ・ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) R LCDC出力 R 入力信号 スタンバイ制御 信号 F P-ch Pout N-ch Nout ・CMOS 出力 (LED 駆動用大電流 IOL=15 mA) ・ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) R 入力信号 スタンバイ制御 信号 G P-ch Pout N-ch Nout R 入力信号 ・CMOS 出力 ・ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) ( 注意事項 ) 入出力ポートの出力と内蔵リソースの 出力は , 1 つの出力バッファを共有して います。 入出力ポートの入力と , 内蔵リソースの 入力は , 1 つの入力バッファを共有して います。 スタンバイ制御 信号 H P-ch Nout R ヒステリシス入力 スタンバイ制御 18 ・ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) ・N-ch オープンドレイン出力 第 1 章 概要 表 1.7-1 入出力回路形式 (3 / 3) 分類 回路 備考 I P-ch Pout N-ch Nout R 入力信号 スタンバイ制御信号 A/Dコンバータ アナログ入力 J P-ch Pout N-ch Nout CMOS 出力 CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) ・アナログ入力 (アナログ入力許可レジスタ(ADER)の対 応するビットが "1" の場合は , A/D コン バータのアナログ入力が有効になりま す。) ( 注意事項 ) 入出力ポートの出力と , 内蔵リソースの 出力は , 1 つの出力バッファを共有し て います。 入出力ポートの入力と , 内蔵リソースの 入力は , 1 つの入力バッファを共有して います。 CMOS 出力 CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) ・LCD 駆動電源入力 R 入力信号 スタンバイ制御信号 LCD駆動電源 K プルアップ抵抗付き CMOS ヒステリシス 入力 ・抵抗値 約 50 kΩ R R リセット入力 L CMOS ヒステリシス入力端子 R 入力 M R 入力 CMOS ヒステリシス入力端子 ・プルダウン抵抗 約 50 kΩ ( フラッシュメモリ品を除く ) R 19 第 1 章 概要 1.8 デバイスの取扱いに関する注意事項 デバイスを取り扱う際には , 以下の項目に関して注意が必要です。 ・最大定格電圧の厳守 ( ラッチアップの防止 ) ・供給電圧の安定化 ・未使用入力端子の処理 ・外部クロックを使用する場合の注意について ・電源端子について ・水晶発振回路について ・A/D コンバータの電源アナログ入力の投入順序について ・A/D コンバータを使用しない場合の端子処理 ・LCD 未使用時の端子処理について ■ 最大定格電圧の厳守 ( ラッチアップの防止 ) • CMOS IC では , 中・高耐圧以外の入力端子や出力端子に VCC より高い電圧や VSS よ り低い電圧が印加された場合 , または VCC と VSS との間に定格を超える電圧が印加 された場合 , ラッチアップ現象を発生することがあります。 • ラッチアップが起きた場合 , 電源電流が激増し , 素子の熱破壊に至る場合がありま すので , 使用に際しては最大定格を超えないように注意してください。 • アナログ電源投入または切断する場合は , アナログ電源 (AVCC) とアナログ入力電圧 は , デジタル電源電圧 (VCC) を超えないように注意してください。 ■ 供給電圧の安定化 VCC 電源電圧の動作保証範囲内においても , 電源電圧が急激に変化した場合は , 誤動作 を起こしますので , VCC 電源電圧を安定させてください。 安定化の基準としては , 商用周波数 (50 Hz ∼ 60 Hz) での VCC リプル変動 (Peak to Peak 値 ) を標準 VCC 電源電圧値の 10% 以下に , また , 電源の切換えを行う場合の瞬時変化におい ては , 過渡変動率が 0.1 V/ms 以下になるように電源電圧を安定させてください。 ■ 未使用入力端子の処理 使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる 永久破壊の原因となることがありますので , 2 kΩ 以上の抵抗を介してプルアップ また はプルダウンの処置をしてください。また , 使用していない入出力端子がある場合は , 出 力状態に設定して開放するか , 入力状態に設定して入力端子と同じ処置をしてくださ い。 20 第 1 章 概要 ■ 外部クロックを使用する場合の注意について 外部クロックを使用する場合は , X0 端子のみを駆動し , X1 端子は開放してください。 外部クロック使用例を下図に示します。 X0 MB90800シリーズ 開放 X1 サブクロックモードを使用しない場合は , X0A=GND, X1A= 開放としてください。 使用例を下図に示します。 X0A MB90800シリーズ 開放 X1A ■ 電源端子について • VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止する ために , 同電位にすべき端子はデバイス内部で接続してありますが , 不要輻射の低 減 , グランドレベルの上昇によるストローブ信号の誤動作防止 , 総出力電流規格を 守るために , 必ず VCC, VSS 端子を電源およびグランドへ接続してください。 • 電流供給源から低いインピーダンスで MB90800 シリーズのデバイスに VCC, VSS を 接続するようにしてください。 • MB90800 シリーズのデバイスに電源ノイズ対策として , VCC と VSS 端子付近で VCC と VSS との間に 0.1μF 程度のコンデンサをバイパスコンデンサとして接続してくだ さい。 ■ 水晶発振回路について X0, X1 端子へのノイズは , MB90800 シリーズのデバイスに対して誤動作の原因となり ます。X0, X1 端子および水晶振動子 ( あるいはセラミック振動子 ), グランドへのバイ パスコンデンサは , X0, X1 端子の近くに , また , X0, X1 端子の配線は , ほかの配線と交 差しないようにプリント基板を設計してください。 X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定した動 作が期待できます。 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 ■ A/D コンバータの電源アナログ入力の投入順序について • A/D コンバータの電源端子 (AVCC), およびアナログ入力端子 (AN0 ∼ AN11) への電 圧印加は , 必ずデジタル電源端子 (VCC) へ電圧を印加した後に行ってください。 • 電源を切断する場合は , A/D コンバータの電源およびアナログ入力を切断した後に , デジタル電源 (VCC) の切断を行ってください。 • アナログ入力と兼用しているポート端子を入力ポートとして使用する場合は , アナ ログ入力電圧が AVCC を超えないようにしてください。 21 第 1 章 概要 ■ A/D コンバータを使用しない場合の端子処理について A/D コンバータを使用しない場合は , AVCC=VCC, AVSS=VSS となるよう接続してくだ さい。 ■ LCD 未使用時の端子処理について COM0 ∼ COM3 端子と SEG0 ∼ SEG11 端子は開放してください。 V0 ∼ V3 端子は 2 kΩ 以上の抵抗を介してプルアップまたはプルダウンの処理をしてく ださい。 22 第 1 章 概要 1.9 クロック供給マップ 図 1.9-1 に , クロック供給マップを示します。 ■ クロック供給マップ 図 1.9-1 クロック供給マップ クロック生成回路 時計クロック分周器 X0 X1 時計タイマ 発振回路 ウォッチドッグタイマ セレクタ X0A X1A 発振回路 タイムベース タイマ 1 2 3 4 逓倍回路 内蔵リソース群 LCD制御部 16ビット リロードタイマ 8/10ビット A/Dコンバータ シリアルI/O フリーランタイマ インプットキャプチャ アウトプットコンペア PCLK 2分周回路 セレクタ MCLK HCLK 2分周回路 CPU(F2MC-16LX) ROM/RAM( メモリ ) SCLK HCLK MCLK PCLK SCLK : : : : 発振クロック周波数 メインクロック周波数 PLLクロック周波数 サブクロック周波数 23 第 1 章 概要 1.10 低消費電力モードについて 低消費電力モードの概要について説明します。MB90800 シリーズでは , 以下のよう なモードがあり , それぞれの状態で停止する機能 / クロックが異なります。詳しくは , 「第 4 章 クロック」を参照してください。 ■ 低消費電力モードの動作状態 表 1.10-1 低消費電力モードの動作状態 メイン クロック サブ クロック PLL クロック PLL CPU 周辺 時計 タイム ベース タイマ 動作 動作 クロック ソース 動作 動作 PLL スリープ 動作 動作 動作 PLL クロック PLL タイムベースタイマ 停止 PLL ストップ 停止 停止 停止 PLL 発振安定待ち 動作 動作 動作 メイン 停止 停止 停止 動作 動作 動作 動作 動作 動作 メインスリープ 動作 動作 メインタイムベースタイマ メイン クロック 停止 停止 メインストップ 停止 停止 メイン発振安定待ち 動作 動作 停止 サブ 停止 停止 動作 動作 動作 動作 サブスリープ 時計 モード 動作 停止 動作 停止 停止 サブ クロック 動作 メイン クロック 停止 サブストップ 停止 サブ発振安定待ち 動作 パワーオンリセット 24 停止 動作 停止 動作 リセット 停止 動作 停止 動作 停止 動作 第2章 CPU MB90800 シリーズの CPU とメモリ空間について 説明します。 2.1 CPU 2.2 メモリ空間 2.3 メモリマップ 2.4 アドレッシング 2.5 多バイト長データのメモリ上の配置 2.6 レジスタ 2.7 専用レジスタ 2.8 汎用レジスタ 2.9 プリフィックスコード 25 第 2 章 CPU 2.1 CPU F2MC-16LX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ れる用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコン トローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。 F2MC-16LX CPU コアは , 内部 32 ビットアキュムレータを搭載していますので 32 ビット処理も可能です。メモリ空間は , 最大 16 M バイト , リニア方式およびバンク 方式のいずれかにてアクセス可能です。また , 命令体系は F2MC-8L の AT アーキテ クチャをベースに , C 言語対応命令の追加・アドレッシングモードの拡張・乗除算命 令の強化・ビット処理の充実化により命令が強化されています。次に , F2MC-16LX CPU の特長を示します。 ■ CPU ● 最小命令実行時間 :40.0 ns (6.25MHz:4 逓倍 ) ● 最大メモリ空間 :16 M バイト , リニア / バンク方式にてアクセスが可能です。 ● 命令体系 データタイプ : ビット / バイト / ワード / ロングワード アドレッシングモード :23 種類 32 ビットアキュムレータの採用による演算精度の強化 符号付き乗除算・拡張 RETI 命令 ● 割込み機能 8 つのプライオリティレベル ( プログラマブル ) ● CPU に依存しない自動転送機能 最大 16 チャネルまでの拡張インテリジェント I/O サービス ● C 言語 / マルチタスクに対応をとった命令体系 システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令 ● 実行速度の向上 :4 バイトのキュー 26 第 2 章 CPU 2.2 メモリ空間 F2MC-16LX の I/O, プログラムおよびデータは , 16 M バイトのメモリ空間に配置し ます。RAM 領域は , 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ , 汎用レジスタおよびベクタテーブルなどに使用されます。 ■ メモリ空間 I/O, プログラムおよびデータは , F2MC-16LX CPU が持つ 16 M バイトのメモリ空間に 配置され , CPU は 24 ビットのアドレスバスでメモリ空間のアドレスを示し , 各内蔵周 辺機能 ( リソース ) をアクセスできます。 図 2.2-1 F2MC-16LX システムとメモリマップの関係例 F2MC-16LX デバイス FFFFFFH ベクタテーブル領域 ROM領域 FFFC00H プログラム FF0000H *1 プログラム領域 内 部 100000H デ 010000H 外部領域*4 2 F MC-16LX CPU | タ データ バ 2 ス EI OS 004000H 002000H 000D00H 000380H 000180H 000100H 割込み 周辺回路 汎用ポート 0000C0H 0000B0H 000020H 000000H *2 ROM領域 (FFバンクのイメージ) 外部領域*4 *3 データ領域 汎用レジスタ EI2OSディスクリプタ 領域 外部領域*4 割込み制御レジスタ領域 周辺機能制御レジスタ領域 RAM領域 I/O領域 I/Oポート制御レジスタ領域 *1:品種によって,内蔵ROMの容量が異なります。 *2:品種によって,イメージでアクセスできる領域が異なります。 *3:品種によって,内蔵RAMの容量が異なります。 *4:シングルチップモード時には,アクセスなしとなります。 27 第 2 章 CPU ■ ROM 領域 ● ベクタテーブル領域 ( アドレス :"FFFC00H ∼ FFFFFFH") • ベクタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルとして使 用します。 • ROM 領域の最上位に割り当てられており , ベクタコール命令 , 割込みベクタおよび リセットベクタのベクタテーブルのアドレスに対応する処理ルーチンの開始アド レスをデータとして設定します。 ● プログラム領域 ( アドレス :" ∼ FFFBFFH") • 内部プログラム領域として , ROM が内蔵されています。 • 内部 ROM 容量は , 品種によって異なります。 ■ RAM 領域 ● データ領域 ( アドレス :"000100H ∼ ") • 内部データ領域として , スタティック RAM が内蔵されています。 • 内部 RAM 容量は , 品種によって異なります。 ● 汎用レジスタ領域 ( アドレス :"000180H ∼ 00037FH") • 8 ビット , 16 ビット , 32 ビットの演算や転送に使用する汎用レジスタが配置されて います。 • 汎用レジスタとして使用しない場合 , 通常の RAM として使用できます。 • 汎用レジスタとして使用した場合 , 汎用レジスタアドレッシングを使用できますの で , 短い命令サイクル数でアクセスできます。 ● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ領域 ( アドレス :"000100H ∼ 00017FH") • 拡張インテリジェント I/O サービス (EI2OS) の転送モード , I/O のアドレス , 転送数 およびバッファアドレスを設定します。 • 拡張インテリジェント I/O サービス (EI2OS) を使用しない場合は , 通常の RAM とし て使用することもできます。 ■ I/O 領域 ● 割込み制御レジスタ領域 ( アドレス :"0000B0H ∼ 0000BFH") 割込み制御レジスタ (ICR00 ∼ ICR15) は , 割込み機能を持つ内蔵周辺機能 ( リソース ) に対応しています。割込みレベルの設定 , および拡張インテリジェント I/O サービス (EI2OS) の設定ができます。 ● 周辺機能制御レジスタ領域 ( アドレス :"000020H ∼ 0000AFH") 内蔵周辺機能 ( リソース ) の設定ができます。 ● 入出力ポート制御レジスタ領域 ( アドレス :"000000H ∼ 00001FH") 入出力ポートの設定ができます。 28 第 2 章 CPU 2.3 メモリマップ MB90800 シリーズの品種ごとのメモリマップを示します。 ■ メモリマップ 図 2.3-1 メモリマップ (ROM ミラー機能あり) FFFFFFH ROM領域 アドレス#2 00FFFFH 008000H 007917H 007900H ROMミラー領域 32Kバイト 拡張I/O領域2 アドレス#1 レジスタ RAM 領域 000100H 0000CFH 0000C0H 0000BFH 000000H 品種 拡張I/O領域1 I/O領域 アドレス #1 アドレス #2 MB90803/S, MB90F803/S 0010FFH FE0000H MB90F809/S 0028FFH FD0000H MB90F804-101/201 0040FFH FC0000H MB90V800-101/201 0070FFH F80000H* *: MB90V800 に ROM は内蔵されていません。ツール側での ROM デコード領域とお考えください。 ROM ミラー機能は , C コンパイラのスモールモデルを使用するためのものです。 FF バンクの下位 16 ビットアドレスは , 00 バンクの下位 16 ビットアドレスと同じにな ります。ただし , FF バンクの ROM 領域は 32 K バイトを超えますので , 00 バンクには , ROM 領域の全データをミラーイメージで見せることはできません。 C コンパイラのスモールモデルをご使用の場合は , データテーブルを "FF8000H" ∼ "FFFFFFH" に格納しておくことで , "008000H" ∼ "00FFFFH" にミラーイメージでデータ テーブルを見せることができます。したがって , ポインタで far 指定を宣言することな く , ROM 領域内のデータテーブルを参照できます。 29 第 2 章 CPU <注意事項> ・ROM ミラー機能レジスタの設定を行った場合 , 00 バンクの上位側 ("008000H" ∼ "00FFFFH") に FF バンクの上位側 ("FF4000H" ∼ "FFFFFFH") のデータがミラーイメージ で見えるようになります。 ・ROM ミラー機能の設定は , 「第 24 章 ROM ミラー機能選択 モジュール」を参照してく ださい。 30 第 2 章 CPU 2.4 アドレッシング アドレス生成方式には , リニア方式とバンク方式があります。 リニア方式は , 16 M バイトの空間を連続した 24 ビットアドレスにより直接指定す る方法です。 バンク方式は , 16 M バイトの空間を 64 K バイトごとの 256 バンクに分割し , 上位 8 ビットアドレスをバンクレジスタにより指定し , 下位 16 ビットアドレスを命令で直 接指定する方法です。 F2MC-16LX ファミリは , 基本的にはバンクアドレッシングとなります。 ■ リニアアドレッシングとバンクアドレッシング 図 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 000000H 123456H すべて命令で指定 04バンク 03バンク 02バンク 01バンク 00バンク 123456H 命令で指定 用途に応じたバンクレジスタで指定 31 第 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ビット(ロングワード)汎用レジスタ 32 240906F9H 第 2 章 CPU 2.4.2 バンク方式によるアドレス指定 バンク方式によるアドレス指定は , 16 M バイトのメモリ空間を 64 K バイトごとの 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 を使用します。* ユーザスタック バンクレジスタ (USB) システムスタック バンクレジスタ (SSB)* アディショナル データバンク レジスタ (ADB) アディショナ ル (AD) 空間 データ (DT) 空間に入りきらないデータな どを格納します。 00H 00H 00H *: 割込み時のスタックには , 必ず SSB が使用されます。 バンクレジスタの詳細は , 「2.7.9 バンクレジスタ (PCB, DTB, USB, SSB, ADB)」を参 照してください。 33 第 2 章 CPU 図 2.4-4 バンク方式によるアドレッシング例 FFFFFFH FF0000H プログラム空間 FFH :PCB(プログラムカウンタバンクレジスタ) 0FFFFFH 物 アディショナル空間 0F0000H 0FH :ADB(アディショナルデータバンクレジスタ) 理 ア ド 0DFFFFH 0D0000H ユーザスタック空間 0DH :USB(ユーザスタックバンクレジスタ) 0BH :DTB(データバンクレジスタ) レ 0BFFFFH データ空間 ス 0B0000H 07FFFFH 070000H システムスタック空間 07H :SSB(システムスタックバンクレジスタ) 000000H ■ バンクアドレッシングとデフォルト空間 命令のコード効率向上のため , 各命令には アドレス指定方式ごとに , 表 2.4-2 に示すよ うなデフォルト空間が決められています。デフォルト以外の空間を使用したい場合は , 各バンクに対応しているプリフィックスコードを命令に先行して設定することで , プ リフィックスコードに対応したバンク空間をアクセスできます。プリフィックスコー ドの詳細は , 「2.9 プリフィックスコード」を参照してください。 表 2.4-2 アドレッシングとデフォルト空間 デフォルト空間 34 アドレッシング プログラム空間 PC 間接 , プログラムアクセス , 分岐系 データ空間 @RW0, @RW1, @RW4, @RW5 を用いたアドレッシング , @A, addr16, dir スタック空間 PUSHW, POPW, @RW3, @RW7 を用いたアドレッシング アディショナル空間 @RW2, @RW6 を用いたアドレッシング 第 2 章 CPU 2.5 多バイト長データのメモリ上の配置 多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。32 ビット長 データの場合は , 下位 16 ビット , 上位 16 ビットの順に転送されます。ただし , 下位 データを書き込んだ直後に外部リセット信号が入力された場合 , 上位データが書き 込まれない場合があります。 ■ RAM 上の多バイトデータの格納状態 データは下位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:最上位ビット LSB:最下位ビット ■ 多バイト長オペランドの場合の格納状態 図 2.5-2 オペランドが多バイトの場合の格納状態 JMPP 123456H "H" JMPP 12 34 56H 12H 34H 56H n番地 63H "L" 35 第 2 章 CPU ■ スタック上の多バイトデータの格納状態 図 2.5-3 スタック上の多バイトデータの格納状態 PUSHW RW1,RW3 "H" PUSHW RW1, RW3 (35A4H)(6DF0H) SP 6DH F0H 35H A4H n番地 "L" RW1:35A4H RW3:6DF0H (注意事項) PUSHW命令実行後のスタックの状態 ■ 多バイト長データのアクセス 多バイト長データのアクセスは , バンク内を基本にして行われます。多バイト長のデー タをアクセスする命令では , "FFFFH" 番地の次のアドレスは同じバンクの "0000H" 番地 になります。 図 2.5-4 バンク境界での多バイト長データのアクセス "H" 実行前のAL 80FFFFH 01H 800000H ・ ・ ・ 23H "L" 36 ? ? ? ? MOVW A, 080FFFFH 実行後のAL 23H 01H 第 2 章 CPU 2.6 レジスタ F2MC-16LX のレジスタには , CPU に内蔵される専用レジスタと , 内蔵 RAM 上に内 蔵される汎用レジスタがあります。 ■ 専用レジスタと汎用レジスタ 専用レジスタは, CPU内に内蔵されているハードウェアで, 使用する用途がCPUのアー キテクチャ上で限定されているものです。 汎用レジスタは , CPU のアドレス空間上に RAM と共存します。アドレス指定なしでア クセスできるという点では専用レジスタと同じですが , 通常のメモリと同じく , 使用す る用途をユーザが指定できるものです。 図 2.6-1 専用レジスタと汎用レジスタ CPU RAM 専用レジスタ RAM アキュムレータ 汎用レジスタ ユーザスタックポインタ システムスタックポインタ プロセッサステータス 内 部 プログラムカウンタ デ ダイレクトページレジスタ プログラムカウンタバンクレジスタ | データバンクレジスタ タ ユーザスタックバンクレジスタ バ システムスタックバンクレジスタ ス アディショナルデータバンクレジスタ 37 第 2 章 CPU 2.7 専用レジスタ CPU 内の専用レジスタは , 以下に示す 11 種類のレジスタで構成されています。 ・アキュムレータ (A) ・ユーザスタックポインタ (USP) ・システムスタックポインタ (SSP) ・プロセッサステータス (PS) ・プログラムカウンタ (PC) ・ダイレクトページレジスタ (DPR) ・プログラムカウンタバンクレジスタ (PCB)・データバンクレジスタ (DPP) ・ユーザスタックバンクレジスタ (USB) ・システムスタックバンクレジスタ (SSB) ・アディショナルデータバンクレジスタ (ADB) ■ 専用レジスタの構成 図 2.7-1 専用レジスタの構成 AH AL :アキュムレータ(A) 演算結果の格納などに使用される16ビット×2本のレジスタです。 連続して32ビットレジスタとしても使用可能です。 USP :ユーザスタックポインタ(USP) ユーザスタックアドレスを示す16ビットのポインタです。 SSP :システムスタックポインタ(SSP) システムスタックアドレスを示す16ビットのポインタです。 PS :プロセッサステータス(PS) システムの状態を示す16ビットのレジスタです。 PC :プログラムカウンタ(PC) プログラムアドレスを示す16ビットのカウントレジスタです。 DPR :ダイレクトページレジスタ(DPR) 短縮直接アドレッシングを実行した場合に,オペランドアドレスの ビット8~15を指定します。8ビットのページレジスタです。 PCB :プログラムカウンタバンクレジスタ(PCB) プログラム空間を示す8ビットのバンクレジスタです。 DTB :データバンクレジスタ(DTB) データ空間を示す8ビットのバンクレジスタです。 USB :ユーザスタックバンクレジスタ(USB) ユーザスタック空間を示す8ビットのバンクレジスタです。 SSB :システムスタックバンクレジスタ(SSB) システムスタック空間を示す8ビットのバンクレジスタです。 ADB 8ビット :アディショナルデータバンクレジスタ(ADB) アディショナル空間を示す8ビットのバンクレジスタです。 16ビット 32ビット 38 第 2 章 CPU 表 2.7-1 専用レジスタの初期値 専用レジスタ 初期値 アキュムレータ (A) 不定 ユーザスタックポインタ (USP) 不定 システムスタックポインタ (SSP) 不定 bit15 ~ bit13 bit12 プログラムカウンタ (PC) 0 ダイレクトページレジスタ (DPR) プログラムカウンタバンクレジスタ (PCB) データバンクレジスタ (DTB) ~ ILM PS 0 bit8 bit7 ~ 0 0 0 0 bit0 CCR RP 0 0 - 0 1 x x x x x リセットベクタ中の値 (FFFFDCH, FFFFDDH の内容 ) 01H リセットベクタ中の値 (FFFFDEH の内容 ) ユーザスタックバンクレジスタ (USB) 00H システムスタックバンクレジスタ (SSB) 00H アディショナルデータバンクレジスタ (ADB) 00H プロセッサステータス (PS) 00H <注意事項> 上記の初期値は , デバイスの初期値であり , ICE( エミュレータなど ) では異なります。 39 第 2 章 CPU 2.7.1 アキュムレータ (A) アキュムレータ (A) は , 2 つの 16 ビット長演算用レジスタ (AH/AL) から構成されて います。演算結果やデータの一時記憶に使用されるレジスタです。 アキュムレータ (A) は , 32/16/8 ビットのレジスタとして使用できます。メモリとほ かのレジスタ間 , あるいは上位側の 16 ビット長演算レジスタ (AH) と下位側の 16 ビット長演算レジスタ (AL) 間で , 演算ができます。また , ワード長以下のデータを 下位側の 16 ビット長演算レジスタ (AL) へ転送した場合 , 転送前の下位側の 16 ビッ ト長演算レジスタ (AL) に格納されているデータが , 上位側の 16 ビット長演算レジ スタ (AH) に転送されるデータ保持機能があります ( 一部の命令ではデータ保持を行 いません ) 。 ■ アキュムレータ (A) ● アキュムレータへのデータ転送 アキュムレータは , 32 ビット長 ( ロングワード ), 16 ビット長 ( ワード ), 8 ビット長 ( バ イト ) のデータを処理できます。例外として , 4 ビットデータ転送命令 (MOVN) もあり ますが , 8 ビットデータと同様に処理されます。 • 32ビットデータ処理の場合は, 上位演算用レジスタ(AH)と下位演算用レジスタ(AL) が連結して使用されます。 • 16 ビットデータや 8 ビットデータの場合は , 下位演算用レジスタ (AL) が使用され , 上位演算用レジスタ (AH) は , 下位演算用レジスタ (AL) のデータを保持します。 • 下位演算用レジスタ (AL) へバイト長以下のデータが転送された場合は , 符号拡張ま たはゼロ拡張され , 16 ビット長となり下位演算用レジスタ (AL) へ格納されます。ま た , 下位演算用レジスタ (AL) の格納されたデータは , 16 ビットデータまたは 8 ビッ トデータとして扱うことができます。 具体的な転送例を図 2.7-3 ∼図 2.7-6 に示します。 図 2.7-2 アキュムレータへのデータ転送 32ビット AH AL 32ビットデータ転送 データ転送 データ転送 16ビットデータ転送 AH データ退避 AL データ転送 8ビットデータ転送 AH データ退避 AL "00H"もしくは"FFH"* データ転送 (ゼロ拡張もしくは符号拡張) *:4ビット転送命令のときは"000H"もしくは"FFFH"となります。 40 第 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 88H 77H B5H DTB 実行後 B53000H LSB X :不定 MSB:最上位ビット LSB:最下位ビット DTB:データバンクレジスタ 0088H 図 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 図 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:データバンクレジスタ 41 第 2 章 CPU 図 2.7-6 アキュムレータ (A) の AL-AH 間の転送例 (16 ビット , レジスタ間接 ) (RW1の内容+8ビット長オフセットの結果を番地としてワード長 リードを行い,その内容をAレジスタに格納する命令) MOVW A,@RW1+6 AH 実行前 XXXXH 1234H DTB 実行後 1234H MSB AL 2B52H A6153EH 8FH 2BH 74H 52H RW1 15H 38H A61540H A6H メモリ空間 LSB +6 X :不定 MSB:最上位ビット LSB:最下位ビット DTB:データバンクレジスタ 42 第 2 章 CPU 2.7.2 スタックポインタ (USP, SSP) スタックポインタには , ユーザスタックポインタ (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 のように決定されます。 表 2.7-2 スタックアドレスの指定 スタックアドレス S フラグ 上位 8 ビット 下位 16 ビット 0 ユーザスタックバンクレジスタ (USB) ユーザスタックポインタ (USP) 1 システムスタックバンク レジスタ (SSB) システムスタックポインタ(SSP) : 初期値 リセットによって, Sフラグは"1"に初期化されますので, 初期設定ではシステムスタッ クが使用されます。また , 割込みが受け付けられた場合 , スタックフラグ (CCR:S) が "1" にセットされ , 必ずシステムスタックポインタが使用され , 割込みルーチン以外の スタック操作ではユーザスタックが使用されます。スタック空間を分けない場合はシ ステムスタックを使用してください。 43 第 2 章 CPU 図 2.7-7 スタック操作命令とスタックポインタ Sフラグが"0"のときのPUSHW A 実行前 AL A624H Sフラグ 実行後 AL 0 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フラグ 実行後 AL 1 A624H Sフラグ 1 USB C6H USP F328H SSB 56H SSP 1234H USB C6H USP F328H SSB 56H SSP 1232H LSB 561232H XXH XXH 561232H A6H 24H Sフラグが"1"であるため システムスタックを使用 X :不定 MSB:最上位ビット LSB:最下位ビット <注意事項> ・ スタックポインタに , スタックアドレスを設定する場合は , 偶数アドレスを設定してく ださい。奇数アドレスを設定した場合は , ワードアクセスが 2 回に分割されアクセス効 率が低下します。 ・ USP レジスタおよび SSP レジスタの初期値は不定です。 ・ システムスタック領域 , ユーザスタック領域およびデータ領域は , お互いに重なり合わ ないように配置してください。 ■ システムスタックポインタ (SSP) システムスタックポインタ (SSP) を設定する場合は , コンディションコードレジスタ (CCR) 内の S フラグに "1" を設定します。S フラグに "1" を設定した場合 , スタック操 作を行う際に使用されるアドレスの上位8ビットは, システムスタックバンクレジスタ (SSB) により示されます。 コンディションコードレジスタ (CCR) の詳細は , 「2.7.4 コンディションコードレジス タ (PS:CCR)」を , システムスタックバンクレジスタ (SSB) の詳細は , 「2.7.9 バンクレ ジスタ (PCB, DTB, USB, SSB, ADB)」を参照してください。 44 第 2 章 CPU ■ ユーザスタックポインタ (USP) ユーザスタックポインタ (USP) を設定する場合は , コンディションコードレジスタ (CCR) 内の S フラグに "0" を設定します。S フラグに "0" を設定した場合 , スタック操 作を行う際に使用されるアドレスの上位 8 ビットは , ユーザスタックバンクレジスタ (USB) により示されます。 コンディションコードレジスタ (CCR) の詳細は , 「2.7.4 コンディションコードレジス タ (PS:CCR)」を , システムスタックバンクレジスタ (SSB) の詳細は ,「2.7.9 バンクレ ジスタ (PCB, DTB, USB, SSB, ADB)」を参照してください。 45 第 2 章 CPU 2.7.3 プロセッサステータス (PS) プロセッサステータス (PS) は , CPU の制御を行うビットと CPU の状態を示す各種 ビットから構成されています。PS レジスタは以下に示す 3 つのレジスタで構成され ています。 ・インタラプトレベルマスクレジスタ (ILM) ・レジスタバンクポインタ (RP) ・コンディションコードレジスタ (CCR) ■ プロセッサステータス (PS) の構成 プロセッサステータス (PS) は , CPU の制御を行うビットと , CPU の状態を示す各種ビッ トから構成されています。 図 2.7-8 プロセッサステータス (PS) の構成 RP ILM bit 15 PS ILM2 ILM1 ILM0 B4 14 13 12 11 10 B3 CCR 9 8 7 6 5 4 3 2 1 0 B2 B1 B0 - I S T N Z V C ● コンディションコードレジスタ (CCR) 命令実行結果や割込み出力によって , "1" がセットまたは "0" にクリアされる各種フラ グから構成されています。 各種フラグの詳細は , 「2.7.4 コンディションコードレジスタ (PS:CCR)」を参照してく ださい。 ● レジスタバンクポインタ (RP) RAM 領域の中で , 汎用レジスタとして使用するメモリブロック ( レジスタバンク ) の 先頭アドレスを設定するポインタです。 汎用レジスタは , 32 バンクあり , レジスタバンクポインタ (RP) に "00H" ∼ "1FH" の値 をセットしてバンクを指定します。 設定方法および詳細は ,「2.7.5 レジスタバンクポインタ (PS:RP)」を参照してください。 ● インタラプトレベルマスクレジスタ (ILM) CPU が現在受け付けている割込みのレベルを示し , 周辺機能 ( リソース ) ごとの割込み 要求に対応して設定されている割込み制御レジスタ (ICR00 ∼ ICR15) の割込みレベル 設定ビット (ICR:IL0 ∼ IL2) 値と比較します。 設定方法および詳細は , 「2.7.6 インタラプトレベルマスクレジスタ (PS:ILM)」を参照 してください。 46 第 2 章 CPU コンディションコードレジスタ (PS:CCR) 2.7.4 コンディションコードレジスタ (CCR) は , 以下に示すビットで構成されている 8 ビットレジスタです。 ・演算結果や転送データの内容を示すビット ・割込み要求の受付けを制御するビット ■ コンディションコードレジスタ (CCR) の構成 命令実行時のコンディションコードレジスタ (CCR) の状態については , 『F2MC-16LX プログラミングマニュアル』を参照してください。 図 2.7-9 コンディションコードレジスタ (CCR) の構成 RP ILM bit 15 PS ILM2 ILM1 ILM0 B4 14 13 12 11 CCR 10 9 8 7 6 5 4 3 2 1 0 B3 B2 B1 B0 - I S T N Z V C CCR初期値 X01XXXXXB 割込み許可フラグ スタックフラグ スティッキィビットフラグ ネガティブフラグ ゼロフラグ オーバフローフラグ キャリフラグ X :不定 -:未定義 ● 割込み許可フラグ (I) ソフトウェア割込み以外の割込み要求に対し , 割込み許可フラグ (I) に "1" がセットさ れた場合は割込み要求が許可され , 割込み許可フラグ (I) が "0" にクリアされた場合は 割込み要求が禁止されます。外部リセットおよびソフトウェアリセットにより "0" に クリアされます。 ● スタックフラグ (S) スタック操作に用いられるポインタを示すフラグです。スタックフラグ (S) が "0" にク リアされた場合はユーザスタックポインタ (USP) が有効になり , スタックフラグ (S) に "1" がセットされた場合はシステムスタックポインタ (SSP) が有効になります。割込み が受け付けられた場合 , または外部リセットおよびソフトウェアリセットがアサート された場合は "1" がセットされます。 スタックポインタの詳細は,「2.7.2 スタックポインタ(USP, SSP)」 を参照してください。 ● スティッキィビットフラグ (T) 論理右シフト命令 , または算術右シフト命令を実行した場合に , キャリからシフトアウ トされたデータに "1" があればスティッキィビットフラグ (T) に "1" がセットされ , "1" がなければスティッキィビットフラグ (T) は "0" にクリアされます。また , シフト量が ゼロの場合でも "0" にクリアされます。 47 第 2 章 CPU ● ネガティブフラグ (N) 演算結果が格納される汎用レジスタ (RL0 ∼ RL3) の最上位ビット (MSB) が "1" の場合 は , ネガティブフラグ (N) に "1" がセットされ , 演算結果が格納される汎用レジスタ (RL0 ∼ RL3) の最上位ビット (MSB) が "0" の場合は , ネガティブフラグ (N) が "0" にク リアされます。 汎用レジスタの詳細は , 「2.8 汎用レジスタ」を参照してください。 ● ゼロフラグ (Z) 演算結果が格納される汎用レジスタ (RL0 ∼ RL3) の値が "0000H" の場合は , ゼロフラ グ (Z) に "1" がセットされ , 演算結果が格納される汎用レジスタ (RL0 ∼ RL3) の値が "0000H" でない場合は , ゼロフラグ (Z) は "0" にクリアされます。 ● オーバフローフラグ (V) 演算の実行で符号付き数値としてオーバフローが発生した場合はオーバフローフラグ (V) に "1" がセットされ , オーバフローが発生しなかった場合はオーバフローフラグ (V) が "0" にクリアされます。 ● キャリフラグ (C) 演算の実行で最上位ビットからの桁上りまたは最上位ビットへの桁下りが発生した場 合はキャリフラグ (C) に "1" がセットされ , 発生しなかった場合はキャリフラグ (C) は "0" にクリアされます。 48 第 2 章 CPU レジスタバンクポインタ (PS:RP) 2.7.5 レジスタバンクポインタ (RP) は , 現在使用している汎用レジスタバンクの先頭アド レスを示す 5 ビットのレジスタです。 ■ レジスタバンクポインタ (RP) 図 2.7-10 レジスタバンクポインタ (RP) の構成 RP ILM bit 15 14 13 12 PS ILM2 ILM1 ILM0 B4 11 CCR 10 9 8 7 6 5 4 3 2 1 0 RP初期値 B3 B2 B1 B0 - I S T N Z V C 00000B ■ 汎用レジスタ領域とレジスタバンクポインタ レジスタバンクポインタ (RP) は , 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) は , リセットにより "00000B" に初期化されます。 49 第 2 章 CPU インタラプトレベルマスクレジスタ (PS:ILM) 2.7.6 インタラプトレベルマスクレジスタ (ILM) は , CPU が受け付ける割込みのレベルを 示す 3 ビットのレジスタです。 ■ インタラプトレベルマスクレジスタ (ILM) 割込みの詳細は , 「第 6 章 割込み」を参照してください。 図 2.7-12 インタラプトレベルマスクレジスタ (ILM) の構成 RP ILM bit 15 PS ILM2 ILM1 ILM0 B4 14 13 12 11 CCR 10 9 8 7 6 5 4 3 2 1 0 ILM初期値 B3 B2 B1 B0 - I S T N Z V C 000B インタラプトレベルマスクレジスタ (ILM) は , 現在の割込みレベルを示します。 インタラプトレベルマスクレジスタ(ILM)には, 受付け可能な割込みレベルを設定でき ます。インタラプトレベルマスクレジスタ (ILM) に設定された割込みレベル値より弱 い割込みレベル値のものは , 割込みを受け付けません。 • インタラプトレベルマスクレジスタ (ILM) は , リセットにより割込みレベルが最強 に設定され , 割込みが受け付けられなくなります。 • アセンブラ命令では , インタラプトレベルマスクレジスタ (ILM) に転送する 8 ビッ トの即値転送命令が使用できます。ただし , 下位 3 ビットが有効となります。 表 2.7-3 インタラプトレベルマスクレジスタ (ILM) と割込みレベルの強弱 50 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.7 プログラムカウンタ (PC) は , CPU が次に実行する命令アドレスの下位 16 ビットを 示す 16 ビットカウンタです。 ■ プログラムカウンタ (PC) CPU が , 次に実行する命令アドレスの上位 8 ビットをプログラムカウンタバンクレジ スタ (PCB) で設定し , 下位 16 ビットをプログラムカウンタ (PC) で設定します。次に実 行する命令アドレスは , 図 2.7-13 のようになります。プログラムカウンタ (PC) は条件 分岐命令 , サブルーチンコール命令 , 割込み , リセットでも内容が更新されます。また , オペランドを読み出す場合のベースポインタとしても使用できます。 プログラムカウンタバンクレジスタ (PCB) の詳細は , 「2.7.9 バンクレジスタ (PCB, DTB, USB, SSB, ADB)」を参照してください。 図 2.7-13 プログラムカウンタ (PC) 上位8ビット PCB FEH 下位16ビット PC ABCDH FEABCDH 次に実行する命令 <注意事項> プログラムカウンタ (PC), プログラムカウンタバンクレジスタ (PCB) ともにプログラム (MOV PC, #0FFH などの命令 ) で直接書き換えることはできません。 51 第 2 章 CPU 2.7.8 ダイレクトページレジスタ (DPR) ダイレクトページレジスタ (DPR) は , 短縮直接アドレス指定方式の命令実行時に , オペランドアドレスのビット 8 ∼ビット 15(addr8 ∼ addr15) を指定する 8 ビット レジスタです。リセットで "01H" に初期化されます。 ■ ダイレクトページレジスタ (DPR) 図 2.7-14 ダイレクトページレジスタ (DPR) による物理アドレスの生成 DTBレジスタ A A A A A A A A DPRレジスタ B B B B B B B B 命令中の直接アドレス C C C C C C C C MSB LSB 24bit bit24 bit16 bit15 bit8 bit7 bit0 物理アドレス A A A A A A A A B B B B B B B B C C C C C C C C MSB:最上位ビット LSB:最下位ビット 図 2.7-15 ダイレクトページレジスタ (DPR) の設定とデータアクセス例 MOV S:56H,#5AH 命令実行結果 上位8ビット 下位8ビット DTBレジスタ 12H DPRレジスタ 34H 123458H 123456H MSB:最上位ビット LSB:最下位ビット 52 5AH 123454H MSB LSB 第 2 章 CPU バンクレジスタ (PCB, DTB, USB, SSB, ADB) 2.7.9 バンクレジスタは , バンク方式アドレッシングの最上位 8 ビットアドレスを指定す るレジスタで , 以下に示す 5 つのレジスタで構成されます。 ・プログラムカウンタバンクレジスタ (PCB) ・データバンクレジスタ (DTB) ・ユーザスタックバンクレジスタ (USB) ・システムスタックバンクレジスタ (SSB) ・アディショナルデータバンクレジスタ (ADB) 各バンクレジスタは , プログラム空間 , データ空間 , ユーザスタック空間 , システム スタック空間 , およびアディショナル空間に配置されるメモリバンクを示します。 ■ バンクレジスタ (PCB, DTB, USB, SSB, ADB) ● プログラムカウンタバンクレジスタ (PCB) プログラム (PC) 空間を指定するバンクレジスタです。16 M バイト全空間に分岐する JMPP, CALLP, RETP および RETI 命令実行時 , ソフトウェア割込み命令実行時 , ハード ウェア割込み時 , および例外発生時に PCB は書き換わります。 ● データバンクレジスタ (DTB) データ (DT) 空間を指定するバンクレジスタです。 ● ユーザスタックバンクレジスタ (USB)/ システムスタックバンクレジスタ (SSB) スタック (SP) 空間を指定するバンクレジスタです。USB と SSB のどちらが使用される かは , プロセッサステータス (PS:CCR) 内の S フラグの値に依存します。詳細は ,「2.7.2 スタックポインタ (USP, SSP)」を参照してください。 ● アディショナルデータバンクレジスタ (ADB) アディショナル (AD) 空間を指定するバンクレジスタです。 ● 各バンクの設定とデータアクセス バンクレジスタは8ビット長であり, リセットによりプログラムカウンタバンクレジス タ (PCB) は "FFH" に初期化され , データバンクレジスタ (DTB), ユーザスタックバンク レジスタ (USB), システムスタックバンクレジスタ (SSB), アディショナルデータバンク レジスタ (ADB) は "00H" に初期化されます。プログラムカウンタバンクレジスタ (PCB) は , 読出しはできますが書込みはできません。プログラムカウンタバンクレジスタ (PCB) 以外のバンクレジスタは , 読み書き可能です。 <注意事項> MB90800 シリーズは , デバイスに内蔵されるメモリ空間までのサポートになります。 各レジスタの動作の詳細は , 「2.4.2 バンク方式によるアドレス指定」を参照してくだ さい。 53 第 2 章 CPU 2.8 汎用レジスタ 汎用レジスタは , "000180H" ∼ "00037FH" の RAM 上に , 16 ビット× 8 本を 1 レジ スタバンクとして割り当てたメモリブロックです。汎用の 8 ビットレジスタ ( バイ トレジスタ R0 ∼ R7), 16 ビットレジスタ ( ワードレジスタ RW0 ∼ RW7), もしくは 32 ビットレジスタ ( ロングワードレジスタ RL0 ∼ RL3) として使用できます。 汎用レジスタは , 短い命令で高速に RAM にアクセスできます。レジスタバンクでブ ロック化されているために , 内容の保護や機能単位の分割が容易です。また , ロング ワードレジスタとして使用する場合は , 全空間を直接アクセスするリニアポインタ としても使用できます。 ■ 汎用レジスタの構成 汎用レジスタは , "000180H" ∼ "00037FH" の RAM 上に全部で 32 バンク存在し , レジス タバンクポインタ (RP) でバンクを指定します。レジスタバンクポインタ (RP) で設定 するバンクの先頭アドレスは , 下式のようになります。16 ビット× 8 本を 1 レジスタ バンクとして定義します。 汎用レジスタの先頭アドレス= 000180H +レジスタバンクポインタ (RP) × 10H レジスタバンクポインタ (RP) の詳細は , 「2.7.5 レジスタバンクポインタ (PS:RP)」を 参照してください。 54 第 2 章 CPU 図 2.8-1 汎用レジスタバンクのメモリ空間内の配置と構成 内蔵RAM 000380H 000370H 000360H 0002E0H 0002D0H 0002C0H 0002B0H : バイト アドレス レジスタバンク31 レジスタバンク30 02CEH : : : 02CCH 02CAH R7 02CFH RW7 R4 R5 02CDH RW6 R2 R3 02CBH RW5 R1 02C9H RW4 R6 02C8H レジスタバンク21 レジスタバンク20 バイト アドレス R0 02C6H RW3 02C7H レジスタバンク19 02C4H RW2 02C5H : : : : : 02C2H RW1 02C3H 02C0H RW0 02C1H 0001B0H 0001A0H レジスタバンク 2 000190H 000180H レジスタバンク 1 レジスタバンク 0 RP 14H : LSB RL3 RL2 RL1 RL0 MSB 16ビット 変換式[000180H+RP×10H] R0 ~ R7 :バイトレジスタ RW0 ~ RW7:ワードレジスタ RL0 ~ RL3:ロングワードレジスタ MSB :最上位ビット LSB :最下位ビット <注意事項> レジスタバンクポインタ (RP) は , リセット後 "00H" に初期化されます。 ■ レジスタバンク レジスタバンクは汎用レジスタ ( バイトレジスタ R0 ∼ R7, ワードレジスタ RW0 ∼ RW7, ロングワードレジスタ RL0 ∼ RL3) として , 各種演算やポインタに使用できます。 ロングワードレジスタは , メモリの全空間を直接アクセスするリニアポインタとして も使用できます。 レジスタバンクのレジスタの内容は , RAM と同様にリセットでは初期化されず , リ セット前の状態が保持されます。ただし , パワーオン時は不定となります。 表 2.8-1 汎用レジスタの代表的な機能 レジスタ名 機能 R0 ∼ R7 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ ( 正規化 ) 命令のカ ウンタとしても使用 RW0 ∼ RW7 ポインタとして使用 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 ∼ RL3 ロングポインタとして使用 各種命令のオペランドとして使用 55 第 2 章 CPU 2.9 プリフィックスコード 命令の前にプリフィックスコードを設定した場合は , プリフィックスコード直後の 命令動作を変更できます。プリフィックスコードには , 以下に示す 3 種類がありま す。 ・バンクセレクトプリフィックス (PCB, DTB, ADB, SPB) ・コモンレジスタバンクプリフィックス (CMR) ・フラグ変化抑止プリフィックス (NCC) ■ プリフィックスコード ● バンクセレクトプリフィックス (PCB, DTB, ADB, SPB) バンクセレクトプリフィックスを命令の前に設定した場合は , 命令がアクセスするメ モリ空間をアドレス指定方式とは無関係に設定できます。 詳細は , 「2.9.1 バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)」を参照してく ださい。 ● コモンレジスタバンクプリフィックス (CMR) レジスタバンクをアクセスする命令の前にコモンレジスタバンクプリフィックスを設 定した場合は , レジスタバンクポインタ (RP) の値に関係なく , レジスタアクセスを "000180H" ∼ "00018FH" にあるコモンバンク (RP=00H の場合に設定されるレジスタバ ンク ) へ変更できます。 詳細は , 「2.9.2 コモンレジスタバンクプリフィックス (CMR)」を参照してください。 ● フラグ変化抑止プリフィックス (NCC) フラグ変化を抑止したい命令の前に , フラグ変化抑止プリフィックスコードを設定し た場合は , 命令の実行に伴うフラグ変化を抑止できます。 詳細は , 「2.9.3 フラグ変化抑止プリフィックス (NCC)」を参照してください。 56 第 2 章 CPU 2.9.1 バンクセレクトプリフィックス (PCB, DTB, ADB, SPB) データアクセスを行う場合のメモリ空間は , アドレス指定方式ごとに定められてい ますが , バンクセレクトプリフィックスを命令の前に設定した場合は , アクセスする メモリ空間をアドレス指定方式とは無関係に設定できます。 ■ バンクセレクトプリフィックス (PCB, DTB, ADB, SPB) 表 2.9-1 バンクセレクトプリフィックス バンクセレクトプリフィックス 選択される空間 PCB プログラム空間 DTB データ空間 ADB アディショナル空間 SPB コンディションコードレジスタ (CCR) の S フラグの値が "0" の場 合にユーザスタック空間が , "1" の場合にシステムスタック空間が 用いられます。 <注意事項> バンクセレクトプリフィックスを使用した場合 , 例外的な動作を行う命令があります。 表 2.9-2 バンクセレクトプリフィックスの影響を受けない命令 命令の種類 MOVS ス ト リ ン グ SCEQ 命令 FILS PUSHW 命令 バンクセレクトプリフィックスの効果 MOVSW SCWEQ FILSW プリフィックスの有無にかかわらず , オペラン ドで指定されたバンクレジスタが使用されま す。 POPW プリフィックスの有無にかかわらず , S フラグ が "0"の場合はユーザスタックバンクレジスタ (USB) が , S フラグが "1" の場合はシステムス タックバンクレジスタ (SSB) が使用されます。 スタック 操作命令 MOV MOVW MOV I/O アクセス MOV MOVB 命令 SETB BBC WBTC 割 込 み 復 帰 RETI 命令 A, io MOVX A, io io, A MOVW io, #imm8 MOVW A, io:bp MOVB o:bp CLRB io:bp, rel BBS io, bp WBTS A, io io, A io, #imm16 io:bp, A io:bp io:bp, rel io:bp プリフィックスの有無にかかわらず , I/O 空間 ( "000000H"∼ "0000FFH")がアクセスされます。 プリフィックスの有無にかかわらず , システム スタックバンク (SSB) が使用されます。 57 第 2 章 CPU 表 2.9-3 バンクセレクトプリフィックス使用時に注意すべき命令 命令の種類 命令 説明 フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの効果が次の命令まで及びます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果が次の命令まで及びます。 POPW PS PS 復帰命令に対してはバンクセレクトプリフィックスを 付加しないでください。 PS 復帰命令 58 第 2 章 CPU 2.9.2 コモンレジスタバンクプリフィックス (CMR) コモンレジスタバンクプリフィックス (CMR) をレジスタバンクをアクセスする命令 の前に設定した場合は , レジスタバンクポインタ (RP) の値に関係なく , レジスタア クセスを "000180H" ∼ "00018FH" にあるコモンバンク (RP=00H の場合に設定され るレジスタバンク ) へ変更できます。 ■ コモンレジスタバンクプリフィックス (CMR) 複数のタスク間でのデータ交換を容易にするために F2MC-16LX では , 各タスクで共通 に使用できるコモンバンクを用意しています。コモンバンクは , "000180H" ∼ "00018FH" 番地にあります。ただし , 表 2.9-4 に示した命令を使用する場合は , 注意してください。 表 2.9-4 コモンレジスタバンクプリフィックス (CMR) 使用時に注意すべき命令 命令の種類 命令 ストリング 命令 MOVS SCEQ FILS フラグ変更 命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの効果が , 次の命令まで 及びます。 POPW PS プリフィックスの効果が , 次の命令まで 及びます。 MOV ILM, #imm8 プリフィックスの効果が , 次の命令まで 及びます。 PS 復帰命令 ILM設定命令 MOVSW SCWEQ FILSW 説明 ストリング命令に対しては , CMR プリ フィックスを付加しないでください。 59 第 2 章 CPU 2.9.3 フラグ変化抑止プリフィックス (NCC) フラグ変化を抑止したい命令の前に , NCC プリフィックスを設定した場合は , 命令 の実行に伴うフラグ変化を抑止できます。 ■ フラグ変化抑止プリフィックス (NCC) 不要なフラグ変化を抑止するために , フラグ変化抑止プリフィックス (NCC) を用いま す。フラグ変化が抑止されるフラグには T, N, Z, V, C があります。ただし , 表 2.9-5 に 示した命令を使用する場合は注意してください。 T, N, Z, V, C の各フラグの詳細は , 「2.7.4 コンディションコードレジスタ (PS:CCR)」 を参照してください。 表 2.9-5 フラグ変化抑止プリフィックス (NCC) の使用時に注意すべき命令 命令の種類 命令 説明 ストリング命令 MOVS SCEQ FILS MOVSW SCWEQ FILSW ストリング命令に対しては , NCC プリフィック スを付加しないでください。 フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの有無にかかわらず , コンディ ションコードレジスタ (CCR) は命令の仕様どお りに変化します。プリフィックスの効果が , 次 の命令まで及びます。 PS 復帰命令 POPW PS プリフィックスの有無にかかわらず , コンディ ションコードレジスタ (CCR) は命令の仕様どお りに変化します。プリフィックスの効果が , 次 の命令まで及びます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果が , 次の命令まで及びま す。 割込み命令 割込み復帰命令 INT #vct8 INT9 INT adder16 INTP addr24 RETI プリフィックスの有無にかかわらず , コンディ ションコードレジスタ (CCR) は命令の仕様どお りに変化します。 コンテキスト スイッチ命令 JCTX @A プリフィックスの有無にかかわらず , コンディ ションコードレジスタ (CCR) は命令の仕様どお りに変化します。 60 第 2 章 CPU 2.9.4 プリフィックスコードに関する制約 プリフィックスコードの使用には , 以下のような制約があります。 ・プリフィックスコードや割込み / ホールド抑止命令の実行中は , 割込み / ホールド 要求を受け付けません。 ・割込み / ホールド命令の前にプリフィックスコードを置いた場合 , プリフィック スコードの効果が遅延します。 ・競合するプリフィックスコードが連続した場合 , 最後のプリフィックスコードが 有効となります。 ■ プリフィックスコードと割込み / ホールド抑止命令 表 2.9-6 プリフィックスコードと割込み / ホールド抑止命令 プリフィッ クスコード 割込み / ホールド抑止命令 ( プリフィックスコードの効果を遅延させる命令 ) PCB DTB ADB SPB CMR NCC 割込みやホールド要求を 受け付けない命令 MOV ILM, #imm8 OR CCR, #imm8 AND CCR, #imm8 POPW PS ● 割込み / ホールドの抑止 図 2.9-1 に示すように , プリフィックスコードや割込み / ホールド命令の実行中は , 割 込みやホールド要求が発生しても , 受け付けられません。受け付けられない場合 , 割込 み / ホールド処理が行われるのは , プリフィックスコードや割込み / ホールド抑止命令 以降 , 初めてプリフィックスコードや割込み / ホールド命令以外の命令が実行された後 になります。 図 2.9-1 割込み / ホールドの抑止 割込み/ホールド抑止命令 ・・・・・・・・・・・・・・・ (a) ・・・ (a) 普通の命令 割込み要求発生 割込み受付け ● プリフィックスコードの効果遅延 図 2.9-2 に示すように , 割込み / ホールド抑止命令の前にプリフィックスコードを設定 した場合 , プリフィックスコードの効果は割込み / ホールド抑止命令後の最初の命令に 対して有効となります。 61 第 2 章 CPU 図 2.9-2 割込み / ホールド抑止命令とプリフィックスコード 割込み/ホールド抑止命令 MOV A,FFH NCC ・・・・ MOV ILM,#imm8 ADD A,01H CCR:XXX10XXB CCR:XXX10XXB NCCによりCCRは変化しません。 ■ プリフィックスコードの連続 競合するプリフィックスコード (PCB, ADB, DTB, SPB) が連続していた場合 , 最後の PCB に設定された値が有効になります。 図 2.9-3 プリフィックスコードの連続 プリフィックスコード ・・・ ADB DTB PCB ADD A,01H ・・・ プリフィックスコードは PCBが有効になります。 62 第3章 リセット MB90800 シリーズのリセットについて説明しま す。 3.1 リセットの概要 3.2 リセット要因と発振安定待ち時間 3.3 外部リセット端子 3.4 リセット動作 3.5 リセット要因ビット 3.6 リセットによる各端子の状態 63 第 3 章 リセット リセットの概要 3.1 リセット要因が発生した場合 , CPU は現在実行中の処理を中断し , リセット解除待 ち状態になります。リセット解除後は , リセットベクタで示されたアドレスから処 理を開始します。 リセットには , 以下に示す 4 種類の要因があります。 ・パワーオンリセットの発生 ( 電源投入時 ) ・ウォッチドッグタイマのオーバフロー ( ウォッチドッグタイマ使用の場合 ) ・RST 端子から外部リセット入力を行った場合 ・低消費電力モード制御レジスタの内部リセット信号発生ビット (RST) を "0" に 設定した場合 ( ソフトウェアリセット ) ■ リセット要因 表 3.1-1 リセット要因 リセット 発生要因 マシンクロック ウォッチ ドッグタイマ 発振安定 待ち 外部端子 RST 端子への "L" レベル 入力設定 メインクロック (MCLK) 停止 なし ソフトウェア 低消費電力モード制御レジスタ (LPMCR) の内部リセット信号発 生ビット (RST) に "0" を設定 メインクロック (MCLK) 停止 なし ウォッチ ドッグタイマ ウォッチドッグタイマオーバ フロー メインクロック (MCLK) 停止 なし パワーオン 電源立上げ時 メインクロック (MCLK) 停止 あり MCLK: メインクロック周波数 ( 発振クロックの 2 分周クロック :2/HCLK) ● 外部リセット 外部リセットは , 外部リセット端子 (RST 端子 ) を "L" レベルに設定した場合にリセッ トを発生します。"L" レベル入力時間は , 16 マシンサイクル (16/ φ) 以上必要です。マ シンクロックで動作している場合には , 外部リセット端子を "L" レベルに設定してリ セットを発生しても , 発振安定待ち時間を確保しません。 <参考> 外部リセット端子を命令実行中 ( 転送系命令実行中 MOV 命令など ) に "L" レベルに設定 した場合 , 実行中の命令が終了した後に , 外部リセット入力が有効になります。ただし , ストリング系命令 (MOVS 命令など ) は設定したカウンタ値による転送が完了する前に , 外部リセット入力が有効になる場合があります。 外部リセット端子に "L" レベルを設定した場合 , ポート端子は命令実行サイクルに関係な くリセット状態になります ("L" レベルを設定した場合は非同期です ) 。 64 第 3 章 リセット ● ソフトウェアリセット ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信 号発生ビット (RST) に "0" を設定することにより , 3 マシンサイクル (3/ φ ) のリセット を発生します。ソフトウェアリセットでは , 発振安定待ち時間を確保しません。 ● ウォッチドッグリセット ウォッチドッグリセットは , ウォッチドッグタイマ起動後 , ウォッチドッグタイマ制御 レジスタ (WDTC) のインターバル時間設定ビット (WT1, WT0) で設定した時間内に , ウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に "0" を設定しなかった場合は , リセットを発生します。 ● パワーオンリセット パワーオンリセットは , 電源投入時に発生するリセットです。 発振安定待ち時間は , 217/HCLK( 約 20.97 ms: 発振クロック 6.25 MHz 時 ) 固定です。発 振安定待ち時間が経過した後 , リセット動作を行います。 <参考> クロックの定義 HCLK: 発振クロック周波数 ( 発振端子から供給されるクロック ) MCLK: メインクロック周波数 ( 発振クロックの 2 分周クロック ) φ : マシンクロック周波数 (CPU 動作クロック ) 1/φ : マシンサイクル (CPU 動作クロック周期 ) クロックの詳細は , 「4.1 クロックの概要」を参照してください。 65 第 3 章 リセット 3.2 リセット要因と発振安定待ち時間 F2MC-16LX には , 4 種類のリセット要因があり , リセット時の発振安定待ち時間が リセット要因によって異なります。 ■ リセット要因と発振安定待ち時間 表 3.2-1 にリセット要因と発振安定待ち時間を , 表 3.2-2 にクロック選択レジスタ (CKSCR) の設定による発振安定待ち時間を示します。 表 3.2-1 リセット要因と発振安定待ち時間 発振安定待ち時間 ( ) 内は発振クロック周波数 6.25 MHz 時 リセット要因 パワーオンリセット 217/HCLK ( 約 20.97 ms) ウォッチドッグタイマ なし (WS1, WS0 ビットは "11B" に初期化されます。) RST 端子からの外部リセット なし (WS1, WS0 ビットは "11B" に初期化されます。) ソフトウェアリセット なし (WS1, WS0 ビットは "11B" に初期化されます。) HCLK: 発振クロック周波数 (MHz) 表 3.2-2 クロック選択レジスタ (CKSCR) の設定による発振安定待ち時間 発振安定待ち時間 ( ) 内は発振クロック周波数 6.25 MHz 時 WS1 WS0 0 0 210/HCLK ( 約 164 μs) 0 1 213/HCLK ( 約 1.31 ms) 1 0 215/HCLK ( 約 5.24 ms) 1 1 217/HCLK ( 約 20.97 ms) HCLK : 発振クロック周波数 (MHz) <注意事項> 発振クロック振動子は , 発振を開始してから固有振動数で安定するまでに , 振動子固有の 発振安定待ち時間が必要ですので , 使用する振動子に合わせた発振安定待ち時間を設定し てください。 ■ 発振安定待ちリセット状態 電源投入時のリセット , およびストップモード中の外部リセットに対するリセット動 作は , タイムベースタイマによって作られる発振安定待ち時間を経過してから行いま す。外部リセット入力が解除されていなければ , 外部リセット解除後にリセット動作を 行います。 66 第 3 章 リセット 3.3 外部リセット端子 外部リセット端子 (RST 端子 ) へ , "L" レベル入力を設定することにより , 内部リ セットが発生します。MB90800 シリーズは , CPU 動作クロックに同期してリセット がかかりますが , 外部端子 (I/O ポート ) のみ非同期でリセットがかかります。 ■ 外部リセット端子部のブロックダイヤグラム ● 内部リセットのブロックダイヤグラム 図 3.3-1 内部リセットのブロックダイヤグラム Rp RST P-ch 端子 N-ch CPU動作クロック (PLL逓倍回路,HCLKの2分周) 同期化回路 HCLK:発振クロック周波数 内部リセット信号 入力バッファ <注意事項> 内部回路の初期化には , クロックが必要です。リセットを入力した場合は , 発振端子から クロックが供給されている必要があります。 ● 外部端子 (I/O ポート ) 用の内部リセットのブロックダイヤグラム 図 3.3-2 外部端子用の内部リセットのブロックダイヤグラム Rp RST P-ch 端子 N-ch 外部端子へのリセット信号 HCLK:発振クロック周波数 入力バッファ 67 第 3 章 リセット 3.4 リセット動作 リセットが解除された場合 , モード端子の設定により , 内部メモリまたは外部メモリ に設定されたモードデータとリセットベクタを取り込みます。モードデータレジス タにより CPU の動作モードが設定され , リセットベクタによりリセットシーケンス 終了後の実行開始アドレスが設定されます。 ■ リセット動作の概要 図 3.4-1 リセット動作フロー パワーオンリセット ストップモード 外部リセット ソフトウェアリセット ウォッチドッグタイマリセット リセット中 発振安定待ちリセット状態 モードデータ取込み (バスモードのレジスタ設定) リセットシーケンス リセットベクタ取込み プログラム動作 リセットベクタが示す アドレスから命令コードを 取り込み,命令を実行 ■ モード端子 モード端子 (MD2 ∼ MD0) は , モードデータとリセットベクタの取込み方法を事前に設 定します。モードデータとリセットベクタを取り込む場合は , リセットシーケンスを実 行します。詳細は , 「7.2 モード端子 (MD2 ∼ MD0)」を参照してください。 ■ モードフェッチ リセットが解除された場合 , CPU はモードデータをモードデータレジスタに取り込み ます。モードデータを取り込んだ後に , リセットベクタをプログラムカウンタ (PC) と プログラムカウンタバンクレジスタ (PCB) に取り込みます。 モードデータレジスタは , バスモードの設定およびバス幅の設定を行うことができま す。また , リセットベクタでは , プログラムの開始アドレスを指定できます。 モードデータ取込みの詳細は , 「第 7 章 モード設定」を参照してください。 68 第 3 章 リセット 図 3.4-2 リセットベクタとモードデータの転送 2 メモリ空間 F MC-16LX CPUコア モードレジスタ FFFFDFH モードデータ FFFFDEH リセットベクタ・ビット23~16 FFFFDDH リセットベクタ・ビット15~8 FFFFDCH リセットベクタ・ビット7~0 マイクロ ROM リセットシーケンス PCB PC ● モードデータレジスタ ( アドレス :"FFFFDFH") モードデータレジスタは , リセットシーケンス実行中に設定を変更できます。モード データレジスタの設定は , リセットベクタ取込み後から有効になります。また , 命令を 使用して , "FFFFDFH" にモードデータを設定しても , モードデータレジスタを書き換え ることはできません。 詳細は , 「7.3 モードデータ」を参照してください。 ● リセットベクタ ( アドレス :"FFFFDCH" ∼ "FFFFDEH") リセット解除後のプログラム開始アドレスを設定します。リセットベクタで設定され たアドレスからプログラムを実行します。 69 第 3 章 リセット 3.5 リセット要因ビット リセット発生要因は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すこと で判別できます。 ■ リセット要因ビット ウォッチドッグタイマ制御レジスタ (WDTC) のリセット要因フラグビット (PONR, WRST, ERST, SRST) でリセット要因の確認ができます。リセット解除後に , リセット 発生要因を判別する必要がある場合には, ウォッチドッグタイマ制御レジスタ(WDTC) のリセット要因フラグビット (PONR, WRST, ERST, SRST) を読み出してください。 リセット要因フラグビット (PONR, WRST, ERST, SRST) は , ウォッチドッグタイマ制御 レジスタ (WDTC) を読み出した場合 , "0" にクリアされます。 図 3.5-1 リセット要因ビットブロックダイヤグラム RST端子 パワーオン 発生検出回路 ウォッチドッグ タイマ制御 レジスタ (WDTC) 定期的なクリアなし RST="L" 電源投入 ウォッチドッグ タイマリセット 発生検出回路 外部リセット 要求検出回路 RSTビットセット LPMCR:RSTビット 書込み検出回路 クリア S R S F/F Q R R S F/F Q PONR S F/F Q ERST R F/F 遅延回路 Q WRST SRST ウォッチドッグタイマ 制御レジスタ (WDTC)読出し 内部データバス S :セット R :リセット Q :出力 F/F:フリップフロップ 70 第 3 章 リセット ■ リセット要因ビットとリセット要因の対応 図 3.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ ) ウォッチドッグタイマ制御レジスタ(WDTC) アドレス bit 0000A8H 7 6 PONR - R/W - 2 1 0 WRST ERST SRST WTE WT1 WT0 R/W R/W R/W R/W 5 4 R/W 3 R/W 初期値 X-XXX111B リセット要因フラグビット R/W :リード/ライト可能 X :不定 - :未定義ビット 表 3.5-1 リセット要因ビットとリセット要因の対応 PONR WRST ERST SRST パワーオンリセット 1 X X X ウォッチドッグタイマリセット * 1 * * 外部リセット (RST 端子 ) * * 1 * ソフトウェアリセット (LPMCR:RST) * * * 1 リセット要因 *: 前の状態を保持 X: 不定 ■ リセット要因ビットの注意事項 ● 複数のリセット要因が発生した場合 リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の 対応するそれぞれのリセット要因ビットに "1" がセットされます。例えば , 外部リセッ トとウォッチドッグタイマリセットが同時に発生した場合は , ウォッチドッグタイマ 制御レジスタ (WDTC) のリセット要因フラグビット (ERST, WRST) に "1" がセットさ れます。 ● パワーオンリセットの場合 パワーオンリセットが発生した場合は, ウォッチドッグタイマ制御レジスタ(WDTC)の リセット要因フラグビット (PONR) に "1" がセットされますが , リセット要因フラグ ビット (WRST, ERST, SRST) は不定値となります。 リセット要因フラグビット (PONR) に "1" がセットされている場合は , リセット要因フ ラグビット (WRST, ERST, SRST) の内容を無視してください。 ● リセット要因ビットのクリア リセット要因フラグビット (PONR, WRST, ERST, SRST) は , ウォッチドッグタイマ制御 レジスタ (WDTC) を読み出した場合 , "0" にクリアされます。リセットが発生しても ウォッチドッグタイマ制御レジスタ (WDTC) を読み出さなければ , リセット要因フラ グビットは "0" にクリアされません。 <注意事項> パワーオンリセットが発生しない条件で電源を立ち上げた場合は, WDTCレジスタの値は 保証されません。 71 第 3 章 リセット 3.6 リセットによる各端子の状態 リセットによる各端子の状態について説明します。 ■ リセット中の端子の状態 リセット中の端子の状態は , モード端子 (MD2 ∼ MD0=011B) の設定によって決定され ます。 ● 内部ベクタモード設定時 入出力端子は , すべてハイインピーダンスになり , モードデータの読出し先は内部 ROM になります。 ■ モードデータ読出し後の端子の状態 モードデータ読出し後の端子の状態は , モードデータ (M1, M0=00B) によって決定され ます。 ● シングルチップモード設定時 (M1, M0=00B) 入出力端子は , すべてハイインピーダンスになり , モードデータの読出し先は内部 ROM になります。 <注意事項> 外部回路が外部端子レベルを動作しないように設定してください。 72 第4章 クロック クロックについて説明します。 4.1 クロックの概要 4.2 クロック発生部のブロックダイヤグラム 4.3 クロック選択レジスタ (CKSCR) 4.4 クロックモード 4.5 発振安定待ち時間 4.6 振動子と外部クロックの接続 73 第 4 章 クロック 4.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 種類を選択できるようになっています。 <注意事項> CPU および周辺機能の最大動作周波数が 25 MHz です。最大動作周波数を超える逓倍率 を指定した場合 , デバイスは正常に動作しません。 例えば , 発振クロック周波数が 25 MHz で発振している場合には , 1 逓倍と 2 分周動作の 設定が可能です。 74 第 4 章 クロック クロック発生部のブロックダイヤグラム 4.2 クロック発生部は , 次の 6 つのブロックで構成されています。 ・システムクロック発生回路 ・サブクロック発生回路 ・PLL 逓倍回路 ・クロックセレクタ ・クロック選択レジスタ (CKSCR) ・発振安定待ち時間セレクタ ■ クロック発生部のブロックダイヤグラム 図 4.2-1 に , クロック発生部のブロックダイヤグラムを示します。 なお , 図 4.2-1 には , スタンバイ制御回路 , タイムベースタイマの回路も含まれていま す。 図 4.2-1 クロック発生部のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP SLP SPL RST TMD CG1 CG0 予約 RST 端子 CPU間欠動作 セレクタ 端子ハイ インピーダンス 制御 内部リセット 発生回路 内部リセット 間欠サイクル選択 CPUクロック CPUクロック 制御回路 ストップ,スリープ信号 スタンバイ 制御回路 2 端子ハイインピー ダンス制御回路 割込み解除 ストップ信号 マシンクロック 発振安定待ち解除 周辺クロック 制御回路 発振安定 待ち時間 セレクタ 2 SCLK 4分周 サブ クロック 発生回路 2 PLL逓倍回路 X0A 端子 システム クロック 発生回路 X1A 端子 X0 端子 周辺 クロック HCLK SCM MCM WS1 WS0 SCS MCS CS1 CS0 クロック選択レジスタ (CKSCR) 2分周 1024分周 MCLK 2分周 4分周 4分周 4分周 2分周 タイムベースタイマ X1 端子 HCLK : 発信クロック MCLK : メインクロック SCLK : サブクロック ウォッチドッグタイマへ 75 第 4 章 クロック ● システムクロック発生回路 外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを 入力することもできます。 ● サブクロック発生回路 外部に接続した振動子によってサブクロック (SCLK) を発生します。外部クロックを入 力することもできます。 ● PLL 逓倍回路 PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。 ● クロックセレクタ メインクロックと 4 種類の PLL クロックから , CPU 系クロック制御回路および周辺系 クロック制御回路へ供給されるクロックを選択します。 ● クロック選択レジスタ (CKSCR) 発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック の逓倍率の選択などを行います。 ● 発振安定待ち時間セレクタ ストップモード解除時 , サブクロックモードからメインクロックモードへの移行時 , お よびサブクロックから PLL クロックモードへの移行時の発振クロックの発振安定待ち 時間を選択する回路です。4 種類のタイムベースタイマ出力を選択します。 76 第 4 章 クロック 4.3 クロック選択レジスタ (CKSCR) クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振 安定待ち時間の選択 , および PLL クロックの逓倍率の選択などを行うレジスタです。 ■ クロック選択レジスタ (CKSCR) の構成 図 4.3-1 に , クロック選択レジスタ (CKSCR) の構成を , 表 4.3-1 に , クロック選択レジ スタ (CKSCR) の各ビットの機能説明を示します。 図 4.3-1 クロック選択レジスタ (CKSCR) の構成 アドレス 0000A1H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit0 初期値 SCM MCM WS1 WS0 SCS MCS CS1 CS0 (LPMCR) 11111100B R/W R/W R/W R/W R/W R/W R/W R/W 逓倍率設定ビット ( )内は発振クロック6.25MHz時 0 1×HCLK (6.25MHz) 1 2×HCLK (12.5MHz) 0 3×HCLK (18.75MHz) 1 4×HCLK (25MHz) マシンクロック設定ビット PLLクロック設定 メインクロック設定 CS1 CS0 0 0 1 1 MCS 0 1 SCS 0 1 マシンクロック選択ビット(サブ) サブクロック選択*2 メインクロック選択 WS1 WS0 0 0 1 1 発振安定待ち時間設定ビット ( )内は発振クロック6.25MHz時 0 1 0 1 MCM 0 1 213/HCLK(1.31ms) 215/HCLK(5.24ms) 217/HCLK(20.97ms)*1 マシンクロック表示ビット PLLクロックで動作中 メインクロックで動作中 SCM 0 1 マシンクロック表示ビット サブクロックで動作中*2 メインクロックで動作中 HCLK:発振クロック R/W :リード/ライト可能 :初期値 *1: パワーオンリセット時は218/HCLK(約41.94ms)になります。 *2: 1系統品では,サブクロックは選択できません。 SCSビットに"0"を設定した場合,リセットを発生します。 <注意事項> マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。 77 第 4 章 クロック 表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2) ビット名 bit15 bit14 bit13, bit12 機能 SCM: マシンクロック 表示ビット ・マシンクロックとして , メインクロックまたはサブクロックのどち らが選択されているかを表示するビットです。 ・このビットが "0"のときサブクロックが選択されていることを示し, "1" のときメインクロックが選択されていることを示します。 ・SCS が "1" で , かつ SCM が "0" ならば , メインクロック発振安定待 ち時間中であることを示します。 ・書込みは , 動作に影響しません。 MCM: マシンクロック 表示ビット ・マシンクロックとして , メインクロックまたは PLL クロックのどち らが選択されているかを表示するビットです。 ・このビットが "0"のときPLLクロックが選択されていることを示し, "1" のときメインクロックが選択されていることを示します。 ・MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待 ち時間中であることを示します。 ・書込みは , 動作に影響しません。 WS1, WS0: 発振安定待ち 時間選択ビット ・ストップモード解除時 , サブクロックモードからメインクロック モードへの移行時 , およびサブクロックから PLL クロックモードへ の移行時の発振クロックの発振安定待ち時間を選択します。 ・すべてのリセット要因で "11B " に初期化されます。 ( 注意事項 ) 発振安定待ち時間は , 使用する振動子に合わせて適切な 値を設定する必要があります。 「4.2 クロック発生部のブ ロックダイヤグラム」を参照してください。"00B " の設 定は , メインクロックモード時のみ設定してください。 PLL クロック時の発振安定待ち時間は , 214/HCLK で固定 です。 bit11 78 SCS: マシンクロック 選択ビット ・マシンクロックとして , メインクロック , またはサブクロックのど ちらを選択するかを指定するビットです。 ・このビットが "0" のときに "1" を書き込むと , メインクロックの発 振安定待ち時間が発生するために , 自動的にタイムベースタイマが クリアされます。 ・サブクロック選択時の動作クロックは , サブ発振クロックの 4 分周 を使用します ( サブ発振クロック 32 kHz 時 , マシンクロックは 8 kHz になります )。 ・SCS, MCS がともに "0" のときは , SCS が優先され , サブクロックが 選択されます。すべてのリセット要因で "1" に初期化されます。 第 4 章 クロック 表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2) ビット名 bit10 bit9, bit8 MCS: マシンクロック 選択ビット CS1, CS0: 逓倍率選択 ビット 機能 ・マシンクロックとして , メインクロック , または PLL クロックのど ちらを選択するかを指定するビットです。 ・このビットが "0" のとき PLL クロックを選択し , "1" のときメイン クロックを選択します。 ・このビットが "1" のときに "0" を書き込むと , PLL クロックの発振 安定待ち時間が発生するために , 自動的にタイムベースタイマがク リアされ, さらにタイムベースタイマ制御レジスタ(TBTC)の TBOF ビットもクリアされます。 ・PLL クロックの発振安定待ち時間は , 214/HCLK で固定です ( 発振 クロック周波数 4 MHz 時 , 発振安定待ち時間は約 4.1 ms になりま す )。 ・メインクロック選択時の動作クロックは , 発振クロックを 2 分周し たクロックとなります ( 発振クロック周波数 4 MHz 時 , 動作クロッ クは 2 MHz になります )。 ・すべてのリセット要因で "1" に初期化されます。 ( 注意事項 ) MCS ビットが "1" のときに "0" を書き込む場合には , タ イムベースタイマ制御レジスタ (TBTC) の TBIE ビット またはインタラプトレベルマスクレジスタ (ILM) により , タイムベースタイマ割込みがマスクされている状態で 行うようにしてください。 ・PLL クロックの逓倍率を選択するビットです。 ・4 種類の逓倍率から選択できます。 ・すべてのリセット要因で "00B " に初期化されます。 ( 注意事項 ) MCS ビットまたは MCM ビットが "0" のときには , 書込 みが抑止されます。いったん , MCS ビットを "1" にした ( メインクロックモード ) 後に , CS1, CS0 ビットを書き換 えてください。 HCLK:発振クロック周波数 79 第 4 章 クロック 4.4 クロックモード クロックモードには , メインクロックモードと PLL クロックモード , サブクロック モードがあります。 ■ メインクロックモード , PLL クロックモード , サブクロックモード ● メインクロックモード メインクロックモードは , CPU および周辺機能の動作クロックとして発振クロックを 2 分周したクロックを使用し , PLL クロックを停止させます。 ● PLL クロックモード PLL クロックモードは , CPU および周辺機能の動作クロックとして PLL クロックを使 用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) により 選択できます。 ● サブクロックモード サブクロックモードは , CPU および周辺機能の動作クロックとしてサブ発振クロック を 4 分周したクロックを使用し , メインクロックおよび PLL クロックを停止させます。 ■ クロックモードの移行 クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットへの書込み動作により , ク ロックモードは , メインクロックモード , PLL クロックモード , サブクロックモードに 移行します。 ● メインクロックモードから PLL クロックモードへの移行 メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1" から "0" に書き換えた場合には , PLL クロックの発振安定待ち時間 (214/HCLK) 後に , メ インクロックから PLL クロックに切り換わります。 ● PLL クロックモードからメインクロックモードへの移行 PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" か ら "1" に書き換えた場合には , PLL クロックとメインクロックのエッジが一致するタイ ミング (1 ∼ 8 PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。 ● メインクロックモードからサブクロックモードへの移行 メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1" から "0" に書き換えた場合には , メインクロックからサブクロックに切り換わります。 ● サブクロックモードからメインクロックモードへの移行 サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック からメインクロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットにより選択します。 80 第 4 章 クロック ● 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 が優先され , サブクロックモード になります。 ■ PLL クロック逓倍率の選択 クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ∼ "11B" を書き込むことに より , 1 ∼ 4 逓倍の 4 種類の PLL クロック逓倍率を選択できます。 ■ マシンクロック PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロック , サブ発振クロッ クの 4 分周クロックが , マシンクロックとなります。このマシンクロックが CPU およ び周辺機能に供給されます。メインクロック , PLL クロック , サブクロックは , クロッ ク選択レジスタ (CKSCR) の MCS ビットまたは SCS ビットへの書込みにより , いずれ かを選択できます。 図 4.4-1 に , マシンクロック選択の状態遷移図を示します。 81 第 4 章 クロック 図 4.4-1 マシンクロック選択の状態遷移図 (8) メイン MCS=1 MCM=1 (1) SCS=1 SCM=1 CS1,CS0=XXB (10) メイン→サブ MCS=1 MCM=1 (9) SCS=0 SCM=1 CS1,CS0=XXB (16) (10) (11) サブ→メイン (8) MCS=1 MCM=1 SCS=1 (8) (6) SCM=0 メイン→PLLx (2) CS1,CS0=XXB (12) サブ→PLL MCS=0 (3) (13) MCS=0 MCM=1 (4) (14) MCM=1 SCS=1 (5) (15) SCS=1 SCM=0 SCM=1 CS1,CS0=XXB CS1,CS0=XXB 82 PLL1→メイン (7) MCS=1 MCM=0 SCS=1 SCM=1 CS1,CS0=00B PLL1逓倍 MCS=0 MCM=0 (6) SCS=1 SCM=1 CS1,CS0=00B PLL2→メイン MCS=1 (7) MCM=0 SCS=1 SCM=1 CS1,CS0=01B PLL2逓倍 MCS=0 MCM=0 (6) SCS=1 SCM=1 CS1,CS0=01B PLL3→メイン (7) MCS=1 MCM=0 SCS=1 SCM=1 CS1,CS0=10B PLL3逓倍 MCS=0 MCM=0 (6) SCS=1 SCM=1 CS1,CS0=10B PLL4→メイン (7) MCS=1 MCM=0 SCS=1 SCM=1 CS1,CS0=11B PLL4逓倍 MCS=0 MCM=0 (6) SCS=1 SCM=1 CS1,CS0=11B (8) (8) (8) (8) PLL1→サブ MCS=1 MCM=0 SCS=0 SCM=1 CS1,CS=00B サブ MCS=1 MCM=1 SCS=0 SCM=0 CS1,CS0=XXB (17) PLL2→サブ MCS=1 MCM=0 (17) SCS=0 SCM=1 CS1,CS0=01B PLL3→サブ MCS=1 (17) MCM=0 SCS=0 SCM=1 CS1,CS0=10B PLL4→サブ MCS=1 (17) MCM=0 SCS=0 SCM=1 CS1,CS0=11B 第 4 章 クロック (1) MCS ビット "0" 書込み (2) PLL クロック発振安定待ち終了 &CS1,CS0=00B (3) PLL クロック発振安定待ち終了 &CS1,CS0=01B (4) PLL クロック発振安定待ち終了 &CS1,CS0=10B (5) PLL クロック発振安定待ち終了 &CS1,CS0=11B (6) MCS ビット "1" 書込み ( ハードウェアスタンバイ , ウォッチドッグリセット を含む ) (7) PLL クロックとメインクロックの同期タイミング (8) SCS ビット "0" 書込み (9) サブクロック発振安定待ち時間終了 (10) SCS ビット "1" 書込み (11) メインクロック発振安定待ち終了 (12) メインクロック発振安定待ち終了 &CS1,CS0=00B (13) メインクロック発振安定待ち終了 &CS1,CS0=01B (14) メインクロック発振安定待ち終了 &CS1,CS0=10B (15) メインクロック発振安定待ち終了 &CS1,CS0=11B (16) SCS ビット "1" 書込み , MCS ビット "0" 書込み (17) PLL クロックとサブクロックの同期タイミング MCS: クロック選択レジスタ (CKSCR) のマシンクロック選択ビット MCM: クロック選択レジスタ (CKSCR) のマシンクロック表示ビット SCS: クロック選択レジスタ (CKSCR) のマシンクロック選択ビット ( サブ ) SCM: クロック選択レジスタ (CKSCR) のマシンクロック表示ビット ( サブ ) CS1,CS0: クロック選択レジスタ (CKSCR) の逓倍率選択ビット <注意事項> マシンクロックの初期値はメインクロック (MCS=1, SCS=1) です。 SCS, MCS ともに "0" のときは SCS が優先され , サブクロックが選択されます。 サブクロックモードから PLL クロックモードへの切換え時は , CKSCR レジスタの発振安 定待ち時間選択ビット (WS1, WS0) は "01B", "10B", "11B" に設定してください。 83 第 4 章 クロック 4.5 発振安定待ち時間 電源投入時 , ストップモード解除時 , サブクロックからメインクロックまたは PLL クロックへ切り換える場合は , 発振クロックの発振が停止しているため , 発振開始 後 , 発振安定待ち時間をとる必要があります。また , メインクロックから PLL ク ロックへ切換え時も , PLL 発振開始後の発振安定待ち時間が必要となります。 ■ 発振安定待ち時間 セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で 安定して発振するまでに , 一般的に数 ms から数十 ms の時間が必要です。このため , 発 振開始直後は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振が安定した 時点で CPU にクロックを供給するようにします。振動子の種類 ( 水晶 , セラミックな ど ) によって発振が安定するまでの時間が異なるため , 使用する振動子に合わせて適切 な発振安定待ち時間を選択する必要があります。発振安定待ち時間は , クロック選択レ ジスタ (CKSCR) の設定で選択できます。 メインクロックから PLL クロックへ切り換える場合は , PLL 発振安定待ち時間の間 , CPU はメインクロックで動作し , その後 , PLL クロックに切り換わります。 図 4.5-1 に , 発振開始直後の動作を示します。 図 4.5-1 発振開始直後の動作 振動子の発振時間 発振安定待ち時間 X1 発振開始 84 発振安定 通常動作開始または PLLクロックへの切換え 第 4 章 クロック 4.6 振動子と外部クロックの接続 MB90800 シリーズは , システムクロック発生回路を内蔵しており , 外部に振動子を 接続してクロックを発生させます。また , 外部で生成したクロックを入力すること もできます。 ■ 振動子と外部クロックの接続 ● 水晶振動子またはセラミック振動子の接続例 水晶振動子またはセラミック振動子は , 図 4.6-1 の例で示すように接続してください。 図 4.6-1 水晶振動子またはセラミック振動子の接続例 X0(X0A) MB90800シリーズ X1(X1A) ● 外部クロックの接続例 図 4.6-2 の例で示すように , 外部クロックは , X0(X0A) 端子に接続し , X1(X1A) 端子は 開放にしてください。 図 4.6-2 外部クロックの接続例 X0(X0A) MB90800シリーズ ~ 開放 X1(X1A) 85 第 4 章 クロック 86 第5章 低消費電力モード 低消費電力モードについて説明します。 5.1 低消費電力モードの概要 5.2 低消費電力制御回路のブロックダイヤグラム 5.3 低消費電力モード制御レジスタ (LPMCR) 5.4 CPU 間欠動作モード 5.5 スタンバイモード 5.6 状態遷移図 5.7 スタンバイモード , リセット時の端子状態 5.8 低消費電力モード使用上の注意 87 第 5 章 低消費電力モード 低消費電力モードの概要 5.1 動作クロックの選択とクロックの動作制御による , 次のような CPU 動作モードを備 えています。 ・クロックモード (PLL クロック , メインクロック , サブクロックの各モード ) ・CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作 , サブク ロ ック間欠動作の各モード ) ・スタンバイモード ( スリープ , タイムベースタイマ , 時計 , ストップの各モード ) ■ CPU 動作モードと消費電流 図 5.1-1 に , CPU 動作モードと消費電流を示します。 図 5.1-1 CPU 動作モードと消費電流 消費電流 数十mA CPU 動作モード PLLクロックモード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック PLLクロック間欠動作モード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック メインクロックモード(1/2クロックモード) メインクロック間欠動作モード 数mA サブクロックモード サブクロック間欠動作モード スタンバイモード スリープモード タイムベースタイマモード 時計モード 数μA 低消費電力モード ストップモード (注意事項):この図は,各種モードのイメージを示したもので,実際の消費電流とは異なる部分があります。 88 第 5 章 低消費電力モード ■ クロックモード ● PLL クロックモード 発振クロック (HCLK) の PLL 逓倍クロックで CPU, および周辺機能を動作させるモー ドです。 ● メインクロックモード 発振クロック (HCLK) の 2 分周クロックで CPU, および周辺機能を動作させるモードで す。メインクロックモードでは , PLL 逓倍回路が停止します。 ● サブクロックモード サブ発振クロックで CPU および周辺機能を動作させるモードです。サブクロックモー ドでは , メインクロックおよび PLL 逓倍回路が停止します。 <注意事項> クロックモードについては , 「5.4 CPU 間欠動作モード」を参照してください。 ■ CPU 間欠動作モード 周辺機能に高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリ , 周辺機能および外 部アクセスを行う場合 , CPU にだけ間欠クロックを入力するモードです。 ■ スタンバイモード スタンバイモードは , 低消費電力制御回路による CPUへのクロックの供給停止 ( スリー プモード ) や , CPU と周辺機能へのクロックの供給停止 ( タイムベースタイマモード ), または発振クロックの停止 ( ストップモード ) によって消費電力を低減します。 ● PLL スリープモード PLL スリープモードは , PLL クロックモードにおいて CPU の動作クロックを停止させ るモードで , CPU 以外は PLL クロックで動作します。 ● メインスリープモード メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止 させるモードで , CPU 以外はメインクロックで動作します。 ● サブスリープモード サブスリープモードは , サブクロックモードにおいて CPU の動作クロックを停止させ るモードで , CPU 以外はサブクロックで動作します。 ● タイムベースタイマモード タイムベースタイマモードは発振クロックとタイムベースタイマ以外の動作を停止さ せるモードで , タイムベースタイマと時計タイマ以外の機能が停止します。 ● 時計モード 時計タイマのみを動作させるモードです。サブクロックのみ動作し , メインクロック および PLL 逓倍回路が停止します。 ● ストップモード ストップモードは原発振を停止させるモードで , すべての機能が停止します。 89 第 5 章 低消費電力モード <注意事項> ストップモードでは発振クロックが停止するため , 最も低消費電力でデータを保持できま す。 90 第 5 章 低消費電力モード 5.2 低消費電力制御回路のブロックダイヤグラム 低消費電力制御回路は , 次の 7 つのブロックで構成されています。 ・CPU 間欠動作セレクタ ・スタンバイ制御回路 ・CPU クロック制御回路 ・周辺クロック制御回路 ・端子ハイインピーダンス制御回路 ・内部リセット発生回路 ・低消費電力モード制御レジスタ (LPMCR) ■ 低消費電力制御回路のブロックダイヤグラム 図 5.2-1 に , 低消費電力制御回路のブロックダイヤグラムを示します。 図 5.2-1 低消費電力制御回路のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP SLP SPL RST TMD CG1 CG0 予約 端子ハイインピーダンス 制御回路 内部リセット 発生回路 RST 端子 CPU間欠動作 セレクタ 内部リセット 間欠サイクル選択 CPUクロック 制御回路 2 CPUクロック ストップ,スリープ信号 スタンバイ 制御回路 割込み解除 端子ハイイン ピーダンス制御 ストップ信号 マシンクロック 周辺クロック 制御回路 周辺クロック 発振安定待ち解除 クロック発生部 クロックセレクタ 発振安定 待ち時間 セレクタ 2 2 PLL逓倍回路 SCM MCM WS1 WS0 SCS MCS CS1 CS0 クロック選択レジスタ(CKSCR) 2分周 X0 端子 X1 端子 システム クロック 発生回路 2048分周 4分周 4分周 8分周 タイムベースタイマ 4分周 X0A 端子 X1A 端子 メインクロック サブ クロック 発生回路 91 第 5 章 低消費電力モード ● CPU 間欠動作セレクタ CPU 間欠動作モードにおける一時停止クロック数を選択します。 ● スタンバイ制御回路 CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの 移行 , および解除を行います。 ● CPU クロック制御回路 CPU および周辺クロック制御回路周辺機能に供給するクロックを制御する回路です。 ● 周辺クロック制御回路 周辺機能に供給するクロックを制御する回路です。 ● 端子ハイインピーダンス制御回路 タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー ダンスにする回路です。プルアップオプションが選択された端子に対しては , ストップ モードではプルアップ抵抗を切り離します。 ● 内部リセット発生回路 内部リセット信号を発生させる回路です。 ● 低消費電力モード制御レジスタ (LPMCR) スタンバイモードへの移行 / 解除 , および CPU 間欠動作機能の設定などを行うレジス タです。 92 第 5 章 低消費電力モード 低消費電力モード制御レジスタ (LPMCR) 5.3 低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除 , お よび CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを 行うレジスタです。 ■ 低消費電力モード制御レジスタ (LPMCR) 図 5.3-1 に , 低消費電力モード制御レジスタ (LPMCR) の構成を , 表 5.3-1 に各ビットの 機能説明を示します。 図 5.3-1 低消費電力モード制御レジスタ (LPMCR) の構成 アドレス bit15 0000A0H bit8 bit7 (CKSCR) bit6 bit5 bit4 bit3 bit2 bit1 bit0 STP SLP SPL RST TMD CG1 CG0 予約 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00011000B 予約ビット 予約 このビットへは必ず"1"を書き込んでください。 CG1 CG0 CPU一時停止サイクル数選択ビット 0 0 0 1 8サイクル (CPUクロック: 周辺クロック=1 :約3~4) 1 0 16サイクル (CPUクロック: 周辺クロック=1 :約5~6) 1 1 32サイクル (CPUクロック: 周辺クロック=1 :約9~10) 0サイクル (CPUクロック=周辺クロック) TMD 時計・タイムベースタイマモードビット 0 時計モードまたはタイムベースタイマモードに移行 1 変化なし,ほかへの影響なし 内部リセット信号発生ビット RST 0 3マシンサイクルの内部リセット信号を発生 1 変化なし,ほかへの影響なし SPL 0 保持 1 ハイインピーダンス SLP スリープモードビット 0 変化なし,ほかへの影響なし 1 スリープモードに移行 STP R/W :リード/ライト可能 :初期値 端子状態設定ビット (タイムベースタイマ・時計・ストップモード時) ストップモードビット 0 変化なし,ほかへの影響なし 1 ストップモードに移行 93 第 5 章 低消費電力モード 表 5.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明 ビット名 機能 bit7 ・ストップモードへの移行を指示するビットです。 ・このビットに "1"を書き込むと , ストップモードへ移行します。 STP: ・このビットに "0" を書き込んでも動作に影響しません。 ストップモードビット ・リセット , またはストップ解除で "0" にクリアされます。 ・このビットを読み出すと , 常に "0" が読み出されます。 bit6 ・スリープモードへの移行を指示するビットです。 ・このビットに "1" を書き込むと , スリープモードに移行します。 ・このビットに "0" を書き込んでも動作に影響しません。 SLP: ・リセット , スリープ解除 , またはストップ解除で "0" にクリア スリープモードビット されます。STP ビットと SLP ビットに同時に "1" を書き込ん だ場合 , ストップモードに移行します。 ・このビットを読み出すと , 常に "0" が読み出されます。 bit5 ・このビットは時計モード , タイムベースタイマモード , または SPL: ストップモードの場合だけ有効です。 端子状態設定 ・このビットが "0" の場合 , 外部端子のレベルを保持します。 ビット ( タイムベース ・このビットが "1" の場合 , 外部端子をハイインピーダンスにし タイマ・時計・ ます。 ストップモード時 ) ・リセットで "0" に初期化されます。 bit4 RST: 内部リセット 信号発生ビット ・このビットに "0"を書き込むと, 3マシンサイクルの内部リセッ ト信号を発生します。 ・このビットに "1" を書き込んでも動作に影響しません。 ・このビットを読み出すと , 常に "1" が読み出されます。 bit3 TMD: 時計・タイムベース タイマモードビット ・時計モード , タイムベースタイマモードへの移行を指示する ビットです。 ・メインクロックモード , または PLL クロックモードにおいて , このビットに "0" を書き込むことにより , タイムベースタイマ モードに移行します。 ・サブクロック時に , このビットに "0" を書き込むことにより時 計モードに移行します。 ・リセットまたは割込み要求発生で "1" に初期化させます。 ・このビットを読み出すと , 常に "1" が読み出されます。 bit2, bit1 CG1, CG0: CPU一時停止サイクル 数選択ビット ・CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設 定するビットです。 ・1 命令ごとに指定サイクル数 CPU クロック供給を停止します。 ・4 種類のクロック数から選択できます。 ・リセットで "00B " に初期化されます。 bit0 予約: 予約ビット このビットには必ず "1" を書き込んでください。 94 第 5 章 低消費電力モード ■ 低消費電力モード制御レジスタへのアクセス 低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス リープモード , タイムベースタイマモード , 時計モード ) へ遷移しますが , 低消費電力 モードへの遷移に使用する命令は表 5.3-2 の命令を使用してください。 表 5.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記 内の命令 列を配置してください。 MOV LPMCR,#H’xx NOP NOP JMP $+3 MOV A,#H’10 ; 表 5.3-2 の低消費電力モード遷移命令 ; 次の命令へのジャンプ ; 任意の命令 内の命令以外が配置されると低消費電力モード解除後の動作は保証されません。 C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は , 「5.8 低消費 電力モード使用上の注意 ■スタンバイモード遷移のための低消費電力モード制御レジ スタ (LPMCR) へアクセスする際の注意事項」を参照してください。 ワード長で低消費電力モード制御レジスタ (LPMCR) へ書き込む場合には , 偶数アドレ スで書き込むようにしてください。奇数アドレスの書込みで低消費電力モードへ遷移 した場合には , 誤動作の原因となる場合があります。 表 5.3-1 に示す以外の機能を制御する場合には , どの命令を使用しても構いません。 ● STP, SLP, TMD ビットの優先順位 ストップモード要求とスリープモード要求 , およびタイムベースタイマモード要求を 同時に行った場合は , 次の優先順位で要求を処理します。 ストップモード要求 > タイムベースタイマモード要求 > スリープモード要求 表 5.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 95 第 5 章 低消費電力モード 5.4 CPU 間欠動作モード CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作 させることで , 消費電力を低減するモードです。 ■ CPU 間欠動作モード CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM), I/O, 周辺機能 , および外部 バスアクセスを行う場合 , CPU に供給するクロックを 1 命令実行ごとに一定期間停止 させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック を供給したまま , CPU の実行速度を下げると低消費電力で処理できます。 低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの 一時停止サイクル数を選択します。 外部バス動作そのものは , 周辺機能と同じクロックを使用します。 CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ , 内蔵周辺機能 , および外部バスアクセスを行う場合の命令実行回数に , 一時停止サイク ル数をかけた補正値を通常の実行時間に加えることで求めることができます。図 5.4-1 に , CPU 間欠動作時のクロックを示します。 図 5.4-1 CPU 間欠動作時のクロック 周辺クロック CPUクロック 一時停止サイクル 1命令実行 サイクル 内部バス起動 96 第 5 章 低消費電力モード スタンバイモード 5.5 スタンバイモードには , スリープモード (PLL スリープ , メインスリープ , サブス リープ ), タイムベースタイマモード , 時計モード , ストップモードがあります。 ■ スタンバイモードの動作状態 表 5.5-1 に , スタンバイモードの動作状態を示します。 表 5.5-1 スタンバイモードの動作状態 スタンバイモード スリープ モード タイム ベース タイマ モード 時計 モード ストップ モード *1 *2 SPL SLP STP TMD MCS SCS Hi-Z 移行条件 PLL スリープ モード SCS=1 MCS=0 SLP=1 メイン スリープ モード SCS=1 MCS=0 SLP=1 サブ スリープ モード SCS=0 SLP=1 タイムベー スタイマ モード (SPL=0) SCS=1 TMD=0 メイン クロック サブ クロック マシン クロック 周辺 端子 動作 動作 解除方法 動作 動作 停止 動作 保持 動作 タイムベー スタイマ モード (SPL=1) SCS=1 TMD=0 時計モード (SPL=0) SCS=0 TMD=0 時計モード (SPL=1) SCS=0 TMD=0 ストップ モード (SPL=0) STP=1 停止 停止 *1 リセット 割込み Hi-Z 保持 停止 停止 *2 Hi-Z 停止 保持 停止 ストップ モード (SPL=1) CPU 停止 STP=1 Hi-Z : タイムベースタイマ , 時計タイマは動作します。 : 時計タイマは動作します。 : 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット : 低消費電力モード制御レジスタ (LPMCR) のスリープビット : 低消費電力モード制御レジスタ (LPMCR) の時計ストップビット : 低消費電力モード制御レジスタ (LPMCR) の時計・タイムベースタイマモードビット : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット ( サブ ) : ハイインピーダンス 97 第 5 章 低消費電力モード スリープモード 5.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 は割 込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込 み処理ルーチンへ分岐します。 ● 端子状態 スリープモード中は , 直前の状態を保持します。 ■ スリープモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生によってスリープモードを 解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 98 第 5 章 低消費電力モード ● 割込みによる復帰 スリープモード中に, 周辺回路などから割込みレベルが7より高い割込み要求が発生す るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同 じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ ベルマスクレジスタ (ILM), および割込み制御レジスタ (ICR) の設定によって , 割込み が受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられな い場合は , スリープモードを指定した命令の次の命令から処理を続行します。 図 5.5-1 に , 割込み発生によるスリープモードの解除を示します。 図 5.5-1 割込み発生によるスリープモードの解除 周辺機能の割込み イネーブルフラグ設定 INT発生(IL<7) NO スリープ解除しない スリープ解除しない YES YES I=0 次の命令実行 スリープ解除する NO YES ILM<IL 次の命令実行 NO 割込み実行 <注意事項> 割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した 後に , 割込み処理に移行します。 図 5.5-2 に , スリープモードの解除 ( 外部リセット ) を示します。 図 5.5-2 スリープモードの解除 ( 外部リセット ) RST端子 スリープモード メインクロック 発振中 PLLクロック 発振中 CPUクロック PLLクロック CPU動作 停止中 スリープモード解除 リセットシーケンス 処理 リセット解除 99 第 5 章 低消費電力モード 5.5.2 タイムベースタイマモード タイムベースタイマモードは , 原発振とタイムベースタイマ , 時計タイマ以外の動作 を停止させるモードで , タイムベースタイマと時計タイマ以外すべての機能が停止 します。 ■ タイムベースタイマモードへの移行 PLL クロックモード , またはメインクロックモードの場合 (CKSCR:SCS=1) に , 低消費 電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベース タイマモードに移行します。 ● データ保持機能 タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内 容を保持します。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割 込み要求が発生しているときはタイムベースタイマモードに移行しません。 ● 端子状態 タイムベースタイマモード中の外部端子を直前の状態に保持するか , ハイインピーダ ンス状態にするかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で きます。 ■ タイムベースタイマモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生でタイムベースタイマモー ドを解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 ● 割込みによる復帰 タイムベースタイマモード中に周辺回路などから割込みレベルが 7 より高い割込み要 求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制 御回路はタイムベースタイマモードを解除します。タイムベースタイマモードの解除 後は , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) のIフラグ, インタラプトレベルマスクレジスタ(ILM), および割込み制御レジスタ(ICR) の設定により割込みが受け付けられる場合は , 割込み処理を実行します。割込みが受け 付けられない場合は , タイムベースタイマモードに入る前の次の命令から処理を続行 します。 100 第 5 章 低消費電力モード <注意事項> 割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令 を実行した後に割込み処理に移行します。ただし , タイムベースタイマモードへの移行と 外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理 に移行することがあります。 図 5.5-3 に , タイムベースタイマモードの解除 ( 外部リセット ) を示します。 図 5.5-3 タイムベースタイマモードの解除 ( 外部リセット ) RST端子 タイムベース タイマモード メインクロック 発振中 PLLクロック 発振安定待ち メインクロック CPUクロック CPU動作 停止中 時計モード解除 リセットシーケンス 発振中 PLLクロック 処理 リセット解除 101 第 5 章 低消費電力モード 時計モード 5.5.3 時計モードは , サブクロックと時計タイマ以外の動作を停止させるモードで , チップ のほぼ全機能が停止します。 ■ 時計モードへの移行 サブクロックモード時 (CKSCR:SCS=0) に , 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むことにより , 時計モードに移行します。 ● データ保持機能 時計モードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持しま す。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を設定した場合に , 割 込み要求が発生している場合は時計モードに移行しません。 ● 端子状態 時計モード中の外部端子を直前の状態に保持するか , ハイインピーダンス状態にする かを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。 ■ 時計モードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生で時計モードを解除しま す。 ● リセットによる復帰 リセット要因による時計モードの解除の場合は , 時計モードを解除したうえで , 発振安 定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後 , 実行 されます。 ● 割込みによる復帰 時計モード中に周辺回路などから割込みレベルが 7 より高い割込み要求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制御回路は時計モー ドを解除し, 即座にサブクロックモードに移行します。サブクロックモードに移行後は, 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM), および割込み制御レジスタ (ICR) を 設定して割込みが受け付けられる場合は , 割込み処理を実行します。割込みが受け付け られない場合は , 時計モードに入る前の次の命令から処理を続行します。 <注意事項> 割込み処理を実行する場合 , 通常は時計モードを指定した命令の次の命令を実行した後 , 割込み処理に移行します。 図 5.5-4 に , 時計モードの解除 ( 外部リセット ) を示します。 102 第 5 章 低消費電力モード 図 5.5-4 時計モードの解除 ( 外部リセット ) RST端子 時計モード メインクロック 発振安定待ち PLLクロック 停止中 サブクロック 発振中 発振中 メインクロック CPUクロック 停止中 CPU動作 時計モード解除 リセットシーケンス 処理 リセット解除 103 第 5 章 低消費電力モード 5.5.4 ストップモード ストップモードは , 原発振を停止させるモードで , すべての機能が停止します。した がって , 最も低消費電力でデータを保持できます。 ■ ストップモードへの移行 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むと , ストップ モードに移行します。 ● データ保持機能 ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込 み要求が発生しているときはストップモードに移行しません。 ● 端子状態の設定 ストップモード中の外部端子を直前の状態に保持するか , ハイインピーダンス状態に するかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。 ■ ストップモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生によりストップモードを解 除します。 ストップモードからの復帰の場合, 動作クロックの発振が停止しているため, 低消費電力制御回路はまず発振安定待ち状態に移行し , その後ストップモードを解除 します。 ● リセットによる復帰 リセット要因によるストップモード解除の場合は , ストップモードを解除したうえで 発振安定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過 後 , 実行されます。 ● 割込みによる復帰 ストップモード中に周辺回路などから割込みレベルが 7 より高い割込み要求が発生す ると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制御回路はス トップモードを解除します。ストップモードの解除後は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで指定されたメインクロックの発振安定待ち時間を経過 した後で , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM), および割込み制御レジス タ (ICR) を設定して割込みが受け付けられる場合は割込み処理を実行します。割込み が受け付けられない場合は , ストップモードに入る前の次の命令から処理を続行しま す。 104 第 5 章 低消費電力モード <注意事項> 割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行した 後 , 割込み処理に移行します。ただし , ストップモードへの移行と外部バスホールド要求 の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあり ます。 図 5.5-5 に , ストップモードの解除 ( 外部リセット ) を示します。 図 5.5-5 ストップモードの解除 ( 外部リセット ) RST端子 ストップモード 発振クロック メインクロック PLLクロック 発振 発振安定待ち 停止中 CPUクロック CPU動作 発振 メインクロック 停止中 リセットシーケンス 命令実行 リセット解除 ストップモード解除 105 第 5 章 低消費電力モード 状態遷移図 5.6 図 5.6-1 に , 状態遷移図を示します。 ■ 状態遷移図 図 5.6-1 状態遷移図 外部リセット, ウォッチドッグタイマリセット, ソフトウェアリセット 電源投入 リセット パワーオンリセット SCS = 1 発振安定待ち終了 SCS = 0 SCS = 0 MCS = 0 メインクロック モード SLP = 1 割込み メインスリープ モード 割込み TMD = 0 メインタイムベース タイマモード STP= 1 SLP = 1 SCS = 1 割込み PLLスリープモード TMD = 0 割込み 割込み メインクロック発振 安定待ち SLP = 1 割込み サブスリープモード TMD = 0 割込み 時計モード STP = 1 PLLストップモード 割込み 発振安定待ち 終了 サブクロック モード PLLタイムベース タイマモード STP = 1 メインストップ モード 106 MCS = 1 PLLクロック モード サブストップモード 割込み 発振安定待ち 終了 PLLクロック発振 安定待ち 発振安定待ち 終了 サブクロック発振 安定待ち 第 5 章 低消費電力モード ■ 低消費電力モードの動作状態 表 5.6-1 に , 低消費電力モードの動作状態を示します。 表 5.6-1 低消費電力モードの動作状態 動作状態 メイン クロック サブ クロック PLL クロック PLL CPU 周辺 時計 タイム ベース タイマ 動作 動作 クロック ソース 動作 動作 PLL スリープ 動作 動作 動作 PLL クロック PLL タイムベースタイマ 停止 PLL ストップ 停止 停止 停止 PLL 発振安定待ち 動作 動作 動作 メイン 停止 停止 停止 動作 動作 動作 動作 動作 動作 メインスリープ 動作 動作 メインタイムベースタイマ メイン クロック 停止 停止 メインストップ 停止 停止 メイン発振安定待ち 動作 動作 停止 サブ 停止 停止 動作 動作 動作 動作 動作 サブスリープ 時計モード 停止 動作 停止 停止 サブ クロック 動作 メイン クロック 停止 サブストップ 停止 サブ発振安定待ち 動作 パワーオンリセット 停止 動作 停止 動作 リセット 停止 動作 停止 動作 停止 動作 107 第 5 章 低消費電力モード スタンバイモード , リセット時の端子状態 5.7 スタンバイモード , リセット時の端子の状態をメモリアクセスモードごとに示しま す。 ■ シングルチップモード時の端子状態 表 5.7-1 に , シングルチップモード時の各端子状態について示します。 表 5.7-1 シングルチップモード時の各端子状態 スタンバイモード時 端子名 リセット時 ストップ時 スリープ時 SPL = 0 P00 ∼ P07 P10 ∼ P17 P20 ∼ P27 P30 ∼ P37 P40 ∼ P47 P50 ∼ P57 P60 ∼ P67 P70 ∼ P76 P80 ∼ P84 P90, P91*5 直前の状態を 保持 *2 入力遮断 *3/ 出力 Hi-Z 入力不可 *4/ 出力 Hi-Z 入力可能 *1 ( 外部割込み許可時 ) P65 ∼ P67 P70 P00 ∼ P07 P10 ∼ P17 P20 ∼ P27 P30 ∼ P37 P50 ∼ P53 P83, P84 直前の状態を 保持 *2 SPL = 1 LCD 出力状態保持 (LCDC 動作時 ) *1:入力可能とは , 入力機能が可能な状態であることを意味するので , プルアップ , プルダウンオプ ションを選択するか , または外部からの入力が必要です。出力ポートとして使用している場合 にはほかのポートと同じです。 *2:" 直前の状態を保持 " とは , このモードになる直前に出力していた状態をそのまま保持すること を意味します。ただし , 入力状態であった場合は入力不可となるので注意してください。" 出力 していた状態をそのまま保持する " とは , 出力のある内部周辺が動作中であればその値を , ポー トなどとして出力している場合にはその値をそれぞれ保持することを意味します。 *3: " 入力遮断 " 状態では , 入力はマスクされ "L" レベルが内部に伝わります。" 出力 Hi-Z " とは端 子駆動用トランジスタを駆動禁止状態にして端子をハイインピーダンスにすることを意味しま す。 *4:" 入力不可 " とは , 端子からすぐの入力ゲート動作は許可状態にあるが , 内部回路が動作してい ないので , 端子への入力値が内部で受け付けられない状態を意味します。 *5:P90, P91 は , 1 系統クロック品のみに存在します。 108 第 5 章 低消費電力モード 5.8 低消費電力モード使用上の注意 低消費電力モードを使用する場合には , 次の 4 つの内容に関して注意が必要です。 ・スタンバイモードへの移行と割込み ・スタンバイモードの割込みによる解除 ・ストップモードを解除するとき ・発振安定待ち時間 ■ スタンバイモードへの移行と割込み 周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ スタ (LPMCR:STP=1, SLP=1) または , (LPMCR:TMD=0) としても無視されるため , 各ス タンバイモードへは移行しません ( 割込み処理後にも , スタンバイモードへの移行はし ません )。この場合 , 割込みレベルが 7 より高ければ , 割込み要求が CPU に受け付けら れるかどうかには関係しません。また , CPU が割込み処理中であっても , その割込み要 求フラグビットがクリアされており , ほかに割込み要求がなければ , スタンバイモード へ移行できます。 ■ スタンバイモードの割込みによる解除 スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ ベルが 7 より高い割込み要求が発生すると , スタンバイモードは解除されます。これは CPU が割込みを受け付けるかどうかには関係しません。 スタンバイモード解除後は , 通常の割込み動作として , 割込み要求に対応する割込みレ ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ (ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1) されている場合は , 割込み処理ルーチンへ分岐します。 割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から 動作を再開します。 割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実 行した後に , 割込み処理に移行します。ただし , スタンバイモードに移行した場合の条 件によっては , 次の命令を実行する前に割込み処理に移行することがあります。 復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前に 割込み禁止をするなどの対策が必要です。 ■ ストップモード解除時 ストップモードに入る前に , 外部割込みの割込み入力要因の設定に従った入力により , 解除できます。入力要因として "H" レベル , "L" レベル , 立上りエッジ , 立下りエッジ が選択できます。 109 第 5 章 低消費電力モード ■ 発振安定待ち時間 ● 発振クロック発振安定待ち時間 ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間を確保 する必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで選択された時間を確保します。WS1, WS0 ビットに "00B" を設定す るのは , メインクロックモードの場合のみにしてください。 ● PLL クロック発振安定待ち時間 CPU がメインクロックで動作し , PLL クロックが停止している状態から CPU または周 辺を PLL クロックで動作するモードに移行する場合 , PLL クロック発振安定待ち状態 へ移行し , 発振安定待ち中はメインクロックで動作します。 PLL クロック発振安定待ち時間は , 214/HCLK(HCLK: 発振クロック ) 固定です。 ■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ スする際の注意事項 ● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) へアクセスする場合 • 低消費電力モード制御レジスタ (LPMCR) において低消費電力モードに移行する設定 を行う場合は , 表 5.3-2 の命令を使用してください。 表 5.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記 内の命 令列を配置してください。 MOV LPMCR,#H’xx NOP NOP JMP $+3 MOV A,#H’10 ; 表 5.3-2 の低消費電力モード遷移命令 ; 次の命令へのジャンプ ; 任意の命令 内の命令以外が配置されると低消費電力モード解除後の動作は保証されません。 ● C 言語を使用して低消費電力モード制御レジスタにアクセスする場合 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を 行う場合は , 以下の (1) から (3) のいずれかの方法でアクセスしてください。 (1) スタンバイモードに遷移させる命令を関数化し , スタンバイモード遷移命令の後 に _wait_nop0 のビルトイン関数を 2 個挿入してください。関数内で , スタンバイ 復帰の割込みが発生する可能性がある場合は , コンパイル時に最適化を実施し , LINK/UNLINK 命令の発生を抑止してください。 例 ( 時計モードまたはタイムベースタイマモード遷移関数の場合 ) void enter_watch(){ IO_L.PMCR.byte = 0x10: _wait_nop0; _wait_nop0; } 110 /* LPMCR の TMD ビットに "0" をセット */ 第 5 章 低消費電力モード (2) スタンバイモードに遷移させる命令を _asm 文で記述し , スタンバイモード遷移命 令の後に 2 個の NOP と JMP 命令を挿入してください。 例 ( スリープモード遷移の場合 ) _asm(" _asm(" _asm(" _asm(" MOV I:_IO_LPMCR, #H’58"); /* LPMCR の SLP ビットに "1" をセット */ NOP"); NOP"); JMP $+3"); /* 次の命令へのジャンプ */ (3) スタンバイモードに遷移させる命令を #pragma asm ∼ #pragma endasm 間に記述し , スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。 例 ( ストップモード遷移の場合 ) #pragma asm MOV I:_IO_LPMCR, #H’98 NOP NOP JMP $+3 #pragma endasm /* LPMCR の STP ビットに "1" をセット */ /* 次の命令へのジャンプ */ 111 第 5 章 低消費電力モード 112 第6章 割込み MB90800 シリーズの割込みと拡張インテリジェン ト I/O サービス (EI2OS) について説明します。 6.1 割込みの概要 6.2 割込み要因と割込みベクタ 6.3 割込み制御レジスタと周辺機能 6.4 ハードウェア割込み 6.5 ソフトウェア割込み 6.6 拡張インテリジェント I/O サービス (EI2OS) による 割込み 6.7 例外処理割込み 6.8 割込み処理のスタック動作 6.9 割込み処理のプログラム例 113 第 6 章 割込み 6.1 割込みの概要 MB90800 シリーズには , 以下の割込み機能と例外処理があります。 ・ハードウェア割込み ・ソフトウェア割込み ・拡張インテリジェント I/O サービス (EI2OS) による割込み ・例外処理 ■ 割込みの種類と機能 ● ハードウェア割込み 周辺機能 ( リソース ) の割込み要求に対して , 割込み処理プログラムへ遷移します。詳 細は , 「6.4 ハードウェア割込み」を参照してください。 ● ソフトウェア割込み ソフトウェア割込み命令 (INT 命令 ) をプログラム上にて実行した場合 , 割込み処理プ ログラムへ遷移します。詳細は , 「6.5 ソフトウェア割込み」を参照してください。 ● 拡張インテリジェント I/O サービス (EI2OS) による割込み 拡張インテリジェント I/O サービス (EI2OS) では , 事前に割込み制御レジスタ (ICR00 ∼ ICR15) と拡張インテリジェント I/O サービスディスクリプタ (ISD) を設定することに より , 周辺機能 ( リソース ) に内蔵されているレジスタと内蔵されているメモリの間で データを転送できます。 データ転送処理が終了した場合 , 割込み処理プログラムへ遷移します。詳細は , 「6.6 拡張インテリジェント I/O サービス (EI2OS) による割込み」を参照してください。 ● 例外処理 定義されていない命令コードを実行した場合に例外処理を行います。 例外処理を行った場合は , 現在処理中のレジスタ値をシステムスタックに退避させた 後に例外処理ルーチンへ分岐します。詳細は , 「6.7 例外処理割込み」を参照してくだ さい。 114 第 6 章 割込み ■ 割込み動作 図 6.1-1 割込み動作の概略フロー スタート 有効な ハードウェア割込み 要求あり ストリング系* 命令実行中 NO メインプログラム YES 割込み起動/復帰処理 YES EI2OSか? 次の命令の取込みと デコード EI2OS NO YES INT命令か? NO EI2OS処理 ソフトウェア 割込み/ 例外処理 システムスタックへ 専用レジスタ退避 ハードウェア 割込み 指定回数終了か? YES または,周辺機能からの 終了要求があるか? ハードウェア割込み 受付け禁止(I=0) システムスタックへ 専用レジスタ退避 NO CPU割込み処理レベル (ILM)更新 YES RETI命令か? NO 通常命令実行 NO 割込み 復帰処理 システムスタックから 専用レジスタが復帰し, 割込みルーチン呼出し 前のルーチンへ復帰 割込みベクタを 読み出してPC,PCB を更新し,割込み ルーチンへ分岐 ストリング系* 命令の繰返し完了 YES PC更新で次命令へ ポインタ移動 *:ストリング系命令の実行中は,1ステップごとに割込み判定を行います。 115 第 6 章 割込み 割込み要因と割込みベクタ 6.2 MB90800 シリーズには , 256 種類の割込み要因に対応する機能があり , メモリの最 上位アドレスに 256 組の割込みベクタテーブルが割り当てられています。 ソフトウェア割込みは , 256 種類の割込み命令 (INT0 ∼ INT255) を設定できます。 ただし , INT8 はリセットベクタ割込みと , INT10 は例外処理と共有されています。 また , INT11 ∼ INT42 までは , 周辺機能 ( リソース ) の割込みと共有されています。 ■ 割込みベクタ 割込み処理を実行する場合に , 参照する割込みベクタテーブルは , メモリ領域の最上位 アドレス ("FFFC00H" ∼ "FFFFFEH") に割り当てられています。割込みベクタは , 拡張 インテリジェント I/O サービス , 例外処理 , ハードウェア割込み , およびソフトウェア 割込みを共有しています。表 6.2-1 に , 割込みベクタ一覧表を示します。 表 6.2-1 割込みベクタ一覧表 ソフトウェア 割込み命令 ベクタ アドレス L ベクタ アドレス M ベクタ アドレス H モードデータ 割込み No ハードウェア割込み INT0 FFFFFCH FFFFFDH FFFFFEH 未使用 #0 なし : : : : : : : INT7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 なし INT8 FFFFDCH FFFFDDH FFFFDEH FFFFDFH #8 リセットベクタ 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 なし <注意事項> ソフトウェア設計時に設定されない割込みベクタは , 例外処理アドレスに設定してくださ い。 116 第 6 章 割込み ■ 割込み要因と割込みベクタ・割込み制御レジスタ 表 6.2-2 割込み要因と割込みベクタ・割込み制御レジスタ 割込み要因 割込み制御レジスタ EI2OS 対応 割込みベクタ 番号 割込み制御レジスタ * アドレス ICR アドレス リセット × #08 08H FFFFDCH ― ― INT9 命令 × #09 09H FFFFD8H ― ― 例外処理 × #10 0AH FFFFD4H ― ― DTP/ 外部割込み ch.0 ○ #11 0BH FFFFD0H ICR00 0000B0H DTP/ 外部割込み ch.1 ○ #13 0DH FFFFC8H ICR01 0000B1H シリアル I/O ch.2 × #15 0FH FFFFC0H ○ #16 10H FFFFBCH ICR02 DTP/ 外部割込み ch.2/ch.3 0000B2H シリアル I/O ch.3 × #17 11H FFFFB8H ○ #18 12H FFFFB4H ICR03 16 ビットフリーランタイマ 0000B3H 時計タイマ × #19 13H FFFFB0H ICR04 0000B4H 16 ビットリロードタイマ ch.2 ○ #21 15H FFFFA8H ICR05 0000B5H 16 ビットリロードタイマ ch.0 △ #23 17H FFFFA0H △ #24 18H FFFF9CH ICR06 16 ビットリロードタイマ ch.1 0000B6H インプットキャプチャ ch.0 △ #25 19H FFFF98H △ #26 1AH FFFF94H ICR07 インプットキャプチャ ch.1 0000B7H PPG タイマ ch.0 カウンタボロー ○ #27 1BH FFFF90H ICR08 0000B8H アウトプットコンペア一致 ○ #29 1DH FFFF88H ICR09 0000B9H PPG タイマ ch.1 カウンタボロー ○ #31 1FH FFFF80H ICR10 0000BAH タイムベースタイマ × #33 21H FFFF78H ICR11 0000BBH UART0 受信終了 ◎ #35 23H FFFF70H △ #36 24H FFFF6CH ICR12 UART0 送信終了 0000BCH A/D コンバータ変換終了 ○ #37 25H FFFF68H I2C インタフェース #38 26H FFFF64H ICR13 × 0000BDH UART1 受信終了 ◎ #39 27H FFFF60H △ #40 28H FFFF5CH ICR14 UART1 送信終了 0000BEH フラッシュメモリステータス × #41 29H FFFF58H × #42 2AH FFFF54H ICR15 遅延割込み出力モジュール 0000BFH 優先 度 高い 低い ○ : 使用可能 × : 使用不可 ◎ : 使用可能 , EI2OS 停止機能付き △ :ICR を共有する割込み要因を使用しない場合に使用可能 * : 同時に同じレベルの割込みを出力した場合は , 割込みベクタ番号の小さい割込み要因を優先します。 117 第 6 章 割込み <注意事項> ・同一の割込み制御レジスタ (ICR) に 2 つの割込み要因がある場合は EI2OS の使用を許可 した場合 , どちらかの割込み要因を検出すると EI2OS が起動されます。EI2OS 起動中は 起動要因以外の割込みはマスクされますので , EI2OS 使用時はどちらかの割込み要求を マスクして使用されることを推奨致します。 ・同一の割込み制御レジスタ (ICR) に 2 つの割込み要因があるリソースは , 割込みフラグ が EI2OS 割込みクリア信号でクリアされます。 118 第 6 章 割込み 6.3 割込み制御レジスタと周辺機能 割込み制御レジスタ (ICR00 ∼ ICR15) は , 割込み機能を持つすべての周辺機能 ( リ ソース ) に対応します。割込み制御レジスタは , 割込みと拡張インテリジェント I/O サービス (EI2OS) の制御を行います。 ■ 割込み制御レジスタ一覧 表 6.3-1 割込み制御レジスタ一覧 アドレス レジスタ 略称 対応する周辺機能 0000B0H 割込み制御レジスタ 00 ICR00 DTP/ 外部割込み ch.0 0000B1H 割込み制御レジスタ 01 ICR01 DTP/ 外部割込み ch.1 0000B2H 割込み制御レジスタ 02 ICR02 シリアル I/O ch.2, DTP/ 外部割込み ch.2/ch.3 0000B3H 割込み制御レジスタ 03 ICR03 シリアル I/O ch.3, 16 ビットフリーランタイマ 0000B4H 割込み制御レジスタ 04 ICR04 時計タイマ 0000B5H 割込み制御レジスタ 05 ICR05 16 ビットリロードタイマ ch.2 0000B6H 割込み制御レジスタ 06 ICR06 16 ビットリロードタイマ ch.0/ch.1 0000B7H 割込み制御レジスタ 07 ICR07 インプットキャプチャ ch.0/ch.1 0000B8H 割込み制御レジスタ 08 ICR08 PPG タイマ ch.0 カウンタボロー 0000B9H 割込み制御レジスタ 09 ICR09 アウトプットコンペア 0000BAH 割込み制御レジスタ 10 ICR10 PPG タイマ ch.1 カウンタボロー 0000BBH 割込み制御レジスタ 11 ICR11 タイムベースタイマ 0000BCH 割込み制御レジスタ 12 ICR12 UART0 受信終了 , UART0 送信終了 0000BDH 割込み制御レジスタ 13 ICR13 A/D コンバータ , I2C バスインタフェース 0000BEH 割込み制御レジスタ 14 ICR14 UART1 受信終了 , UART1 送信終了 0000BFH 割込み制御レジスタ 15 ICR15 フラッシュメモリ , 遅延割込み発生モジュール 119 第 6 章 割込み 割込み制御レジスタ (ICR) では , 4 種類の設定を行うことができます。 • 周辺機能 ( リソース ) の割込みレベルを設定できます。 • 周辺機能 ( リソース ) の割込み要因を割込み処理に設定するか , または拡張インテリ ジェント I/O サービスに設定するかを設定できます。 • 拡張インテリジェント I/O サービス (EI2OS) のディスクリプタアドレスを設定でき ます。 • 拡張インテリジェント I/O サービス (EI2OS) 処理ステータスを表示できます。 割込み制御レジスタ (ICR) は書込みを行う場合と , 読出しを行う場合では機能が異なり ます。 <注意事項> 割込み制御レジスタ (ICR) を設定する場合は , SETB, CLRB 命令のような , リードモディ ファイライト (RMW) 系命令でのアクセスはできません。 120 第 6 章 割込み 割込み制御レジスタ (ICR00 ∼ ICR15) 6.3.1 割込み制御レジスタは , 割込み要求を出力した場合に , 割込み処理または拡張インテ リジェント I/O サービス処理を設定できます。割込み制御レジスタは書込みを行う 場合と読出しを行う場合では , ビット機能が異なります。 ■ 割込み制御レジスタ (ICR00 ∼ ICR15) 図 6.3-1 割込み制御レジスタ (ICR00 ∼ ICR15)〔書込みを行う場合〕 ライト時 bit 7 6 ICR00~ICR15 ICS3 ICS2 アドレス 0000B0H~0000BFH R/W 5 4 3 2 1 0 ICS1 ICS0 ISE IL2 IL1 IL0 R/W R/W R/W R/W R/W R/W R/W 初期値 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 00000111B 割込みレベル設定ビット 割込みレベル 0(最強) 割込みレベル 7(割込みなし) 2 EI OS 許可ビット ISE 0 割込み出力時に割込みシーケンスを起動 1 割込み出力時に EI2 OS を起動 ICS3 ICS2 ICS1 ICS0 R/W :リード/ライト可能 :初期値 EI 2 OS チャネル設定ビット チャネル ディスクリプタアドレス 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 121 第 6 章 割込み 図 6.3-2 割込み制御レジスタ (ICR00 ∼ ICR15)〔読出しを行う場合〕 リード時 4 3 2 1 0 S1 S0 ISE IL2 IL1 IL0 アドレス 0000B0H~0000BFH R/W R/W R/W R/W R/W R/W bit 7 6 初期値 5 ICR00~ICR15 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 00000111B 割込みレベル 7(割込みなし) 0 割込み出力時に割込みシーケンスを起動 1 割込み出力時に EI2OS を起動 S1 122 割込みレベル 0(最強) EI2 OS 許可ビット ISE R/W :リード/ライト可能 - :未定義ビット X :不定 :初期値 割込みレベル設定ビット EI2 OS ステータス S0 0 0 EI2OS 0 1 カウント終了による停止状態 1 0 予約 1 1 周辺機能からの要求による停止状態 動作中あるいは起動していない場合 第 6 章 割込み 6.3.2 割込み制御レジスタの機能 割込み制御レジスタ (ICR00 ∼ ICR15) は , 以下に示す設定を行うことができます。 ・割込みレベル設定 ・拡張インテリジェント I/O サービス (EI2OS) 許可設定 ・拡張インテリジェント I/O サービス (EI2OS) ディスクリプタアドレス設定 ・拡張インテリジェント I/O サービス (EI2OS) 動作ステータス表示 ■ 割込み制御レジスタ (ICR) の構成 図 6.3-3 割込み制御レジスタ (ICR) の構成 割込み制御レジスタ (ICR) 書込み時 bit ICR00 ∼ ICR15 アドレス: 0000B0H ∼ 0000BFH 7 ICS3 R/W 6 ICS2 R/W 5 ICS1 R/W 4 ICS0 R/W 3 ISE R/W 2 IL2 R/W 1 IL1 R/W 0 IL0 R/W 初期値 00000111B 13 S1 R/W 12 S0 R/W 11 ISE R/W 10 IL2 R/W 9 IL1 R/W 8 IL0 R/W 初期値 00000111B 割込み制御レジスタ (ICR) 読出し時 bit ICR00 ∼ ICR15 アドレス: 0000B0H ∼ 0000BFH 15 14 − R/W − R/W R/W:リード / ライト可能 <参考> EI2OS ディスクリプタアドレス設定ビット (ICS3 ∼ ICS0) への設定は , 拡張インテリジェ ント I/O サービス (EI2OS) を起動する場合に設定します。EI2OS を起動させる場合は , EI2OS 許可ビット (ISE) に "1" を設定し , 起動しない場合は EI2OS 許可ビット (ISE) に "0" を設定してください。EI2OS を起動しない場合は , EI2OS ディスクリプタアドレス設定 ビット (ICS3 ∼ ICS0) を設定する必要はありません。 ■ 割込み制御レジスタの機能 ● 割込みレベル設定ビット (IL2 ∼ IL0) 周辺機能 ( リソース ) の割込みレベルが設定できます。リセットによりレベル 7( 割込 みなし ) に初期化されます ( レベル 7 では割込みを発生させることはできません ) 。 123 第 6 章 割込み 表 6.3-2 割込みレベル設定ビットと割込みレベルの対応 IL2 IL1 IL0 割込みレベル 0 0 0 0( 最強割込み ) 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 6( 最弱割込み ) 1 1 1 7( 割込みなし ) ● 拡張インテリジェント I/O サービス (EI2OS) 許可ビット (ISE) 割込み要求を出力した場合 , EI2OS 許可ビット (ISE) にあらかじめ "1" を設定している 場合は , EI2OS が起動されます。また , EI2OS 許可ビット (ISE) にあらかじめ "0" を設定 している場合は , 割込みシーケンスが起動されます。EI2OS の処理が終了した場合は , EI2OS 許可ビット (ISE) は "0" にクリアされます。周辺機能 ( リソース ) に EI2OS 機能 がない場合には , ソフトウェアにより EI2OS 許可ビット (ISE) を "0" に設定してくださ い。EI2OS 許可ビット (ISE) はリセットで "0" にクリアされます。 ● 拡張インテリジェント I/O サービス (EI2OS) チャネル設定ビット (ICS3 ∼ ICS0) EI2OS ディスクリプタアドレス設定ビット (ICS3 ∼ ICS0) は , ディスクリプタの設定を 行う場合に有効なビットです。EI2OS のディスクリプタアドレスを設定します。 EI2OS ディスクリプタアドレス設定ビット (ICS3 ∼ ICS0) に値を設定することにより , EI2OS ディスクリプタのアドレスを設定します。EI2OS ディスクリプタアドレス設定 ビット (ICS3 ∼ ICS0) はリセットで , "0000B" に初期化されます。 124 第 6 章 割込み 表 6.3-3 EI2OS チャネル設定ビットとディスクリプタアドレスの対応 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 ● 拡張インテリジェント I/O サービス (EI2OS) ステータスビット (S1, S0) EI2OS ステータスビット (S1, S0) は読出しを行う場合に有効なビットです。EI2OS を起動 した場合に EI2OS ステータスビット (S1, S0) を読み出すと , EI2OS が動作中であるか , EI2OS が終了しているかを判定できます。リセットで "00B" に初期化されます。 表 6.3-4 EI2OS ステータスビットと EI2OS ステータスの関係 EI2OS ステータス S1 S0 0 0 EI2OS 動作中あるいは起動していない場合 0 1 カウント終了による停止状態 1 0 予約 1 1 周辺機能からの要求による停止状態 125 第 6 章 割込み ハードウェア割込み 6.4 ハードウェア割込みは , 周辺機能 ( リソース ) にて出力された割込み要求により , CPU が実行していたプログラム処理を中断し , 事前に設定された割込み処理プログ ラムに遷移します。拡張インテリジェント I/O サービス (EI2OS) もハードウェア割 込みとして処理されます。 ■ ハードウェア割込み ● ハードウェア割込みの機能 ハードウェア割込みは , 周辺機能 ( リソース ) から出力された割込み要求の割込みレベ ルとインタラプトレベルマスクレジスタ (PS:ILM) を比較し , I フラグ (PS:I) の内容を参 照して , 割込みを受け付けるか受け付けないかを判定します。 ハードウェア割込みが受け付けられた場合は , ダイレクトページレジスタ (DPR), ア キュムレータ (A), プログラムカウンタ (PC), プロセッサステータスレジスタ (PS) およ び各バンクレジスタ (ADB, DTB, PCB) をシステムスタックへ退避させ , インタラプト レベルマスクレジスタ (ILM) に ICR レジスタで設定されている割込みレベルを格納し , 割込みベクタへ分岐して割込み処理プログラムを実行します。 ● 多重割込み ハードウェア割込みは割込み処理プログラム実行中でも起動できます。 ● 拡張インテリジェント I/O サービス (EI2OS) EI2OS は , メモリ− I/O レジスタ間のデータ転送機能です。拡張インテリジェント I/O サービスディスクリプタに転送を終了した場合に , ハードウェア割込みを起動します。 EI2OS は多重に起動されません。EI2OS を処理している場合は , 割込み要求 , EI2OS 要 求を受け付けません。EI2OS の処理が終了した場合に , 割込み要求 , EI2OS 要求が受け 付けられます。 ● 外部割込み 外部割込みは, 外部端子から割込み要求を出力させることのできる回路(DTP/外部割込 み回路 ) にて割込み要求を検出した場合に , ハードウェア割込みとして受け付けられま す。 ● 割込みベクタ 割込み処理を実行する場合に参照する割込みベクタは , メモリの "FFFC00H" ∼ "FFFFFFH" に割り当てられています。 <参考> 割込み番号と割込みベクタの割当てについては , 「6.2 割込み要因と割込みベクタ」を参 照してください。 126 第 6 章 割込み ■ ハードウェア割込みの構造 ハードウェア割込みに関連する構造は , 表 6.4-1 に示すように分かれています。ハード ウェア割込みを使用する場合は , 事前にユーザプログラムにて以下の機能を設定する 必要があります。 表 6.4-1 ハードウェア割込みに関連する構造 ハードウェア割込みに関する構造 機能 周辺機能 ( リソース ) 割込み許可ビット 割込み要求フラグビット 周辺機能 ( リソース ) の割込み要求 制御 割込みコントローラ 割込み制御レジスタ (ICR) 割込みレベルの設定と EI2OS の制御 割込み許可フラグ (I) 割込み許可 / 禁止の判定制御 インタラプトレベルマスク レジスタ (ILM) 割込み要求レベルの設定値と 出力要因の比較 マイクロコード 割込み処理ルーチンの実行 割込みベクタテーブル 割込み処理時の分岐先アドレスを 格納 CPU メモリ上の "FFFC00H" ∼ "FFFFFFH" ■ ハードウェア割込み抑止 ハードウェア割込みは , 下記条件の場合 , 割込み要求の受付けを禁止します。 ● 周辺機能 ( リソース ) 制御レジスタへ書込み中のハードウェア割込み受付け禁止 周辺機能 ( リソース ) 制御レジスタへ書込み中はハードウェア割込み要求を受け付けま せん。 図 6.4-1 周辺機能制御レジスタ領域への書込み中のハードウェア割込み要求 周辺機能制御レジスタ領域への書込み命令 ・・・・・ MOV A,#08 MOV io,A ここで割込み 要求発生 MOV A,2000H 割込みに 分岐しない 割込み処理 割込みに 分岐する ● 割込み抑止命令のハードウェア割込み受付け禁止 表 6.4-2 に示すハードウェア割込み抑止命令は , ハードウェア割込み要求の有無の検出 をせず , 割込み要求を無視します。ハードウェア割込み抑止命令を実行中にハードウェ ア割込み要求が発生した場合 , 割込み処理が行われるのは , この命令以降にこの種類以 外の命令が実行された後になります。 127 第 6 章 割込み 表 6.4-2 ハードウェア割込み抑止命令 プリフィックス コード 割込みやホールド要求を 受け付けない命令 割込み / ホールド抑止命令 ( プリフィックスコードの効果を遅延させる命令 ) PCB DTB ADB SPB CMR NCC MOV OR AND POPW ILM, #imm8 CCR, #imm8 CCR, #imm8 PS ● ソフトウェア割込み実行中のハードウェア割込み受付け禁止 ソフトウェア割込みを起動した場合 , I フラグを "0" にクリアするため , ハードウェア 割込み要求は受け付けられません。 128 第 6 章 割込み 6.4.1 ハードウェア割込みの動作 割込み要求出力から割込み処理完了までの動作について説明します。 ■ ハードウェア割込みの起動 ● 周辺機能 ( リソース ) の動作 ( 割込み要求の出力 ) ハードウェア割込み要求の機能を持つ周辺機能 ( リソース ) は , 割込み要求の有無を示 す「割込み要求フラグビット」と , CPU への割込み要求許可 / 禁止を設定する「割込み 許可ビット」が各周辺機能 ( リソース ) 制御レジスタに定義されています。周辺機能 ( リソース ) にて事前に設定された割込み要因を検出した場合 , 割込み要求フラグビッ トに "1" がセットされ , 割込み出力許可ビットの設定が , CPU への割込み要求を許可し ている場合は , 割込みコントローラへ割込み要求を出力します。 ● 割込みコントローラの動作 ( 割込み要求の制御 ) 割込みコントローラは , 割込み要求レベル (IL) を比較し , 最も強いレベルの割込み要求 を受け付けます。同じレベルの割込み要求が出力された場合は , 割込み番号が小さいも のを優先して受け付けます ( 表 6.2-1 を参照 )。 ● CPU の動作 ( 割込み要求の受付けと割込み処理 ) CPU は受け取った割込みレベル値 (ICR:IL2 ∼ IL0) とインタラプトレベルマスクレジス タ値 (ILM) を比較し , IL2 ∼ IL0<ILM で , 割込みが許可 (PS:CCR:I=1) されている場合は , 実行中の命令を終了した後に割込み処理を行います。また , 割込み制御レジスタ (ICR) の EI2OS 許可ビット (ISE) に "0" が設定されている場合は割込み処理を実行し , "1" に設定されている場合は EI2OS を起動した後に割込み処理を実行します。 割込み処理では , システムスタック (SSB と SSP の示すシステムスタック空間 ) へ専用 レジスタ (A, DPR, ADB, DTB, PCB, PC, PS の 12 バイト ) の内容を退避させた後に , 割 込みベクタのプログラムカウンタ値 (PCB, PC) と ILM の更新を行ってから , スタック フラグ (S) に "1" をセットし , システムスタックを有効にします。 ■ ハードウェア割込みからの復帰 割込み処理プログラムで , 割込み要因となった周辺機能 ( リソース ) の割込み要求フラ グビットに "0" を設定し , RETI 命令を実行させた場合 , システムスタックに退避させ ているデータを専用レジスタに戻し , 割込み分岐前に実行していたプログラム処理へ 復帰します。 129 第 6 章 割込み ■ ハードウェア割込みの動作 図 6.4-2 ハードウェア割込みの動作 内部バス (7) F2MC-16LX CPU PS,PC・・ マイクロコード I PS IR (6) チェック (5) ILM 比較器 (4) (3) ほかの周辺機能 割込み要求を発生した周辺機能 (8) 許可ビット 要因フラグ (1) AND レベル 比較器 割込み レベルIL (2) 割込みコントローラ RAM IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット PS :プロセッサステータス I :割込み許可フラグ ILM:インタラプトレベルマスクレジスタ IR :インストラクションレジスタ (1) 周辺機能 ( リソース ) の内部で割込み要因を出力します。 (2) 周辺機能(リソース)内の割込み許可ビットの設定が割込みを許可している場合に, 周辺機能 ( リソース ) から割込みコントローラへ割込み要求を出力します。 (3) 割込み要求を周辺機能 ( リソース ) から受け取った割込みコントローラは , 割込み の優先順位を判定した後 , 優先順位の最も高い割込み要求の割込みレベル (IL) を CPU へ転送します。 (4) CPU は , 割込みコントローラから要求のあった割込みレベル (IL) をインタラプトレ ベルマスクレジスタ (ILM) と比較します。 (5) 比較結果が設定されている割込み処理レベルより優先順位が高い場合,コンディショ ンコードレジスタ (CCR) の I フラグの内容をチェックします。 (6) コンディションコードレジスタの I フラグの内容をチェックした結果 , 割込み許可 (CCR:I=1) の場合 , 現在実行中の命令が終了するまで待ち , 終了した場合 , ILM に要 求されたレベル (IL2 ∼ IL0) を設定します。 (7) システムスタックへ専用レジスタの値を退避させ, 割込み処理ルーチンへ分岐しま す。 (8) 割込み処理ルーチン内のプログラムによって , 周辺機能 ( リソース ) の割込み要求 フラグビットに "0" を設定して , RETI 命令を実行させた場合に , システムスタック から専用レジスタへ退避させた値を戻して , 割込み処理を終了します。 130 第 6 章 割込み 割込み動作時の処理 6.4.2 周辺機能 ( リソース ) から割込み要求を出力し , CPU が割込み要求を受け付けた場 合は , 現在実行中の命令が終了した後 , 割込み処理を行います。割込み制御レジスタ (ICR) の EI2OS 許可ビット (ISE) に "0" が設定されている場合は , 割込み処理ルーチ ンを実行し , EI2OS 許可ビット (ISE) に "1" が設定されている場合は , 拡張インテリ ジェント I/O サービス (EI2OS) を起動します。INT 命令によるソフトウェア割込みを 出力した場合は , 現在実行中の命令を一時中断して , 割込み処理ルーチンを実行し , ハードウェア割込みを禁止します。 ■ 割込み動作時の処理 図 6.4-3 割込み処理のフロー スタート ストリング系* 命令実行中 メインプログラム I&IF&IE=1 AND ILM>IL YES 割込み起動/復帰処理 NO YES ISE=1 次の命令の取込みと デコード EI2OS NO YES INT命令か? NO EI2OS処理 ソフトウェア 割込み/ 例外処理 システムスタックへ 専用レジスタ退避 I←O (ハードウェア割込みの禁止) ハードウェア 割込み 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 :プログラムカウンタ 131 第 6 章 割込み ハードウェア割込み使用手順 6.4.3 ハードウェア割込みを使用する場合は , システムスタック領域 , 周辺機能 ( リソー ス ), および割込み制御レジスタ (ICR) を設定してください。 ■ ハードウェア割込み使用手順 図 6.4-4 ハードウェア割込み使用手順 スタート (1) システムスタック領域の設定 割込み処理プログラム (2) (3) (4) (5) 周辺機能の初期設定 スタック処理 割込みベクタへ分岐 割込みコントローラ内の ICRの設定 周辺機能の動作開始設定 割込み許可ビットを許可 に設定 (7) ハードウェア による処理 PS内のILM,Iの設定 (8) 周辺機能への割込み に対する処理(割込み処 理ルーチンの実行) (9) 割込み要因のクリア (10) 割込み復帰命令(RETI) メインプログラム (6) 割込み要求発生 メインプログラム (1) システムスタック領域を設定します。 (2) 周辺機能 ( リソース ) の動作を設定します。 (3) 割込み制御レジスタ (ICR) の設定を行います。 (4) 周辺機能 ( リソース ) の割込み許可ビットを 割込み要求が出力できるように設定 します。 (5) 割込みレベルマスクレジスタ (ILM), および割込み許可フラグ (I) を割込み受付け 可能に設定します。 (6) 周辺機能 ( リソース ) の割込み要求を検出した場合 , ハードウェア割込み要求を出 力します。 (7) 割込み処理ハードウェアで, 専用レジスタ値をシステムスタックへ退避させ, 割込 み処理プログラムに分岐します。 (8) 割込み処理プログラムで , 割込み要求出力に対する周辺機能 ( リソース ) への処理 を行います。 (9) 周辺機能 ( リソース ) の割込み要求を解除します。 (10)割込み復帰命令 (RETI 命令 ) を実行し , 分岐前のプログラムに復帰します。 132 第 6 章 割込み 多重割込み 6.4.4 ハードウェア割込みでは , 周辺機能 ( リソース ) からの複数の割込み要求に対して , 多重割込みを設定できますが , 拡張インテリジェント I/O サービスの多重起動はでき ません。 ■ 多重割込み ● 多重割込み動作 現在実行中の割込み要求より強い割込みレベルの割込み要求が出力された場合は , 現 在実行中の割込み処理を中断し , 強い割込み要求を実行します。現在実行中の割込み要 求より強いレベルの割込み処理が終了した場合 , 最初に実行していた割込み処理を行 います。 割込み処理実行中に , 現在実行中の割込みと同等か , より弱いレベルの割込み要求が出 力された場合は , コンディションコードレジスタ (CCR) の I フラグか , またはインタラ プトレベルマスクレジスタ (ILM) を変更しないかぎり現在の割込み処理が終了するま で新しい割込み要求は保留され , 現在の割込み処理が終了した場合 , 保留されている割 込み要求を実行します。 割込み処理ルーチン内でコンディションコードレジスタ (CCR) の I フラグを割込み禁 止 (CCR:I=0) に設定した場合 , また , インタラプトレベルマスクレジスタ (ILM) を割込 み禁止 (ILM=000B) に設定した場合は , 割込みの多重起動を禁止できます。 <注意事項> ・割込みレベルは 0 ∼ 7 まで設定できますが , レベル 7 に設定した場合 , CPU は割込み要 求を受け付けません。 ・拡張インテリジェント I/O サービス (EI2OS) は多重起動できません。拡張インテリジェ ント I/O サービス (EI2OS) の処理中に出力された割込み要求 , および拡張インテリジェ ント I/O サービス要求はすべて保留されます。 ● 多重割込みの例 多重割込み処理の例として, A/Dコンバータよりタイマ割込みを優先させる場合を想定 し , A/D コンバータの割込みレベルを 2 に , タイマ割込みレベルを 1 に設定します。A/D コンバータの割込み処理中にタイマ割込みを出力した場合は , 図 6.4-5 に示すような手 順で割込み処理を行います。 133 第 6 章 割込み 図 6.4-5 多重割込みの例 メインプログラム A/D 割込み処理 割込みレベル2 (ILM= 010 B ) 割込みレベル1 (ILM= 001 B ) 周辺初期化 (1) A/D 割込み発生(2) タイマ割込み処理 (3) タイマ割込み発生 中断 (4)タイマ割込み処理 再開 メイン処理再開(8) (6)A/D 割込み処理 (5)タイマ割込み復帰 (7)A/D 割込み復帰 • A/D コンバータ割込み処理開始時に , インタラプトレベルマスクレジスタ (ILM) が A/D コンバータの割込みレベル (ICR:IL2 ∼ IL0) と同じ値 ( 例では (2)) になります。 レベル 1 あるいはレベル 0 の割込み要求が発生すると , レベル 1 あるいはレベル 0 の割込み処理を優先して行います。 • 割込み処理が終了して復帰命令 (RETI) を実行すると , スタック内に退避した専用レ ジスタ (A, DPR, ADB, DTB, PCB, PC, PS) の値が復帰し , インタラプトレベルマスク レジスタ (ILM) は中断前の値となります。 134 第 6 章 割込み ハードウェア割込み処理時間 6.4.5 ハードウェア割込み要求が発生し , 割込み処理ルーチンが実行されるまでには , 現在 実行中の命令が終了するまでの時間と割込みハンドリング時間が必要です。 ■ ハードウェア割込み処理時間 周辺機能 ( リソース ) から割込み要求を出力し , 割込み処理ルーチンが実行されるまで には , 割込み要求サンプル待ち時間と割込みハンドリング時間 ( 割込み処理準備に要す る時間 ) が必要です。 図 6.4-6 割込み処理時間 通常命令実行 CPUの動作 割込み待ち時間 割込み要求 サンプル待ち時間 割込みハンドリング 割込み処理ルーチン 割込みハンドリング時間 (θマシンサイクル)* 割込み要求出力 :命令最終サイクル,ここで割込み要求をサンプリングします。 *:1マシンサイクルは,マシンクロック(φ)の1クロック周期に相当します。 ● 割込み要求サンプル待ち時間 周辺機能 ( リソース ) から割込み要求を出力し , 現在実行中の命令が終了するまでの時 間を示します。割込み要求は , 実行している命令の最終サイクルで割込み要求を出力し ているか出力していないかをサンプリングします。命令の実行中は , 割込み要求を認識 できず , 割込み要求サンプル待ち時間が発生します。 <参考> 割込み要求サンプル待ち時間は , 最も実行サイクルの長い POPW RW0, …RW7 命令 (45 マシンサイクル ) 開始直後に割込み要求を出力した場合 , 最大となります。 ● 割込みハンドリング時間 ( φ マシンサイクル ) CPUは, 割込み要求を受け付けた後, 専用レジスタの値をシステムスタックへ退避させ, 割込みベクタの取込みを行うため , 割込みハンドリング時間を必要とします。割込みハ ンドリング時間は , 以下の式によって求められます。 割込み起動の場合 : φ = 24 + 6 × Z マシンサイクル 割込み復帰の場合 : φ = 11 + 6 × Z マシンサイクル (RETI 命令 ) 割込みハンドリング時間は , スタックポインタのアドレスによって異なります。 135 第 6 章 割込み 表 6.4-3 割込みハンドリング時間の補正値 (Z) スタックポインタが指しているアドレス 補正値 (Z) 外部割込みが 8 ビットの場合 +4 外部割込みが偶数アドレスの場合 +1 外部割込みが奇数アドレスの場合 +4 内部割込みが偶数アドレスの場合 0 内部割込みが奇数アドレスの場合 +2 <参考> 1 マシンサイクルは , マシンクロック ( φ ) の 1 クロック周期に相当します。 136 第 6 章 割込み ソフトウェア割込み 6.5 ソフトウェア割込み命令を実行した場合 , メインプログラムから割込み処理用プロ グラムへ遷移します。ソフトウェア割込みの実行中は , ハードウェア割込みを受け 付けません。 ■ ソフトウェア割込みの起動 ● ソフトウェア割込みの起動 ソフトウェア割込みの起動には , INT 命令を使用します。ソフトウェア割込み要求には ハードウェア割込みのような割込み要求フラグビット , および許可ビットはありませ んので , INT 命令を実行した場合に割込み要求を出力します。 ● ハードウェア割込みの抑止 INT 命令には割込みレベルがありませんので , インタラプトレベルマスクレジスタ (ILM) は更新されません。INT 命令実行中は , コンディションコードレジスタ (CCR) の I フラグを "0" に設定し , ハードウェア割込みをマスクします。ソフトウェア割込み処 理中にハードウェア割込みを許可する場合は , ソフトウェア割込み処理ルーチンでコ ンディションコードレジスタ (CCR) の I フラグに "1" を設定してください。 ● ソフトウェア割込みの動作 CPU が INT 命令を取り込んだ場合 , ソフトウェア割込み処理用マイクロコードを起動 します。ソフトウェア割込み処理用マイクロコードにより , CPU 内部のレジスタ類を システムスタックに退避させ , ハードウェア割込みをマスク (CCR:I=0) した後に対応す る割込みベクタへ分岐します。 <参考> 割込み番号と割込みベクタの割当てについては , 「6.2 割込み要因と割込みベクタ」を参 照してください。 ■ ソフトウェア割込みからの復帰 割込み処理プログラムの中で割込み復帰命令 (RETI 命令 ) を実行した場合は , システム スタックに退避させているデータを専用レジスタに戻して , 割込み分岐前に実行して いた処理に復帰します。 137 第 6 章 割込み ■ ソフトウェア割込みの動作 図 6.5-1 ソフトウェア割込みの動作 内部バス PS,PC… (1) PS (2)マイクロコード I S IR キュー フェッチ RAM PS:プロセッサステータス I :割込み許可フラグ S :スタックフラグ IR:インストラクションレジスタ (1) ソフトウェア割込み命令 (INT 命令 ) を実行させます。 (2) 専用レジスタをシステムスタックに退避させ , ハードウェア割込みをマスクして割 込みベクタへ分岐します。 <注意事項> プログラムカウンタバンクレジスタ (PCB) が "FFH" に設定されている場合 , CALLV 命令 のベクタ領域は INT #vct8 命令のテーブルと重複しますので , ソフトウェアは CALLV 命 令と INT #vct8 命令のアドレスの重複を解消するように設計してください。 138 第 6 章 割込み 拡張インテリジェント I/O サービス (EI2OS) による割込み 6.6 拡張インテリジェント I/O サービス (EI2OS) は , 周辺機能 ( リソース ) とメモリの間 でデータ転送を行う機能です。データ転送が終了した場合 , ハードウェア割込み処 理を行います。 ■ 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービスは , ハードウェア割込みの一種です。周辺機能 ( リ ソース ) とメモリの間でデータ転送を行う機能です。ユーザは , EI2OS を起動する場合 と終了する場合にプログラムを作成し , データ転送プログラムは不要です。 ● 拡張インテリジェント I/O サービス (EI2OS) の利点 割込み処理ルーチンで行っていたデータ転送と比べた場合 , 以下の利点があります。 • 転送プログラムを記述する必要がないので , プログラムサイズを小さくできる。 • 周辺機能 ( リソース ) の割込み要因によって転送を起動できるので , データの転送要 因をポーリングする必要がない。 • 転送アドレスのインクリメントを設定可能 • I/O レジスタアドレスのインクリメント , および更新なしを設定可能 ● 拡張インテリジェント I/O サービス (EI2OS) の終了割込み EI2OS によるデータ転送が終了した場合 , 割込み処理ルーチンへ分岐します。 割込み処理プログラムで , 割込み制御レジスタ (ICR) の EI2OS ステータスビット (S1, S0) をチェックすることにより , EI2OS の終了要因を判断できます。 <参考> 割込み番号や割込みベクタは , 各周辺で固定されています。詳細は「6.2 割込み要因と割 込みベクタ」を参照してください。 ● 割込み制御レジスタ (ICR) EI2OS の起動 , EI2OS のチャネルを設定できます。また , EI2OS 終了時の EI2OS ステー タス表示を行います。 139 第 6 章 割込み ● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) EI2OS ディスクリプタは , RAM 上の "000100H" ∼ "00017FH" に配置されており , 転送 モード , 周辺機能 ( リソース ) のアドレスや転送バイト数 , 転送先アドレスを設定する 8 バイト× 16 チャネル分のレジスタです。割込み制御レジスタ (ICR) でチャネル設定 を行います。 <注意事項> 拡張インテリジェント I/O サービス (EI2OS) が動作している場合 , CPU のプログラムは実 行されません。 ■ 拡張インテリジェント I/O サービス (EI2OS) の動作 図 6.6-1 拡張インテリジェント I/O サービス (EI2OS) の動作 メモリ空間 周辺機能(リソース) by IOA リソース レジスタ リソースレジスタ (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) 周辺機能 ( リソース ) から , 割込み要求を出力します。 (2) 割込みコントローラが EI2OS ディスクリプタを割込み制御レジスタ (ICR) の設定に 従って設定します。 (3) 転送元や転送先が EI2OS ディスクリプタから読み出されます。 (4) 周辺機能 ( リソース ) とメモリ間でデータの転送が行われます。 (5) データ転送終了後に周辺機能 ( リソース ) の割込み要求フラグビットは "0" にクリ アされます。 140 第 6 章 割込み 6.6.1 拡張インテリジェント I/O サービス (EI2OS) ディスク リプタ (ISD) 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , RAM の "000100H" ∼ "00017FH" に存在し , 8 バイト× 16 チャネルで構成されています。 ■ 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 ISD は , 8 バイト× 16 チャネルで構成されています。 図 6.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先頭アドレス (000100 H +8×ICS ) バッファアドレスポインタ下位8ビット(BAPL) "L" MSB:最上位ビット LSB:最下位ビット 表 6.6-1 EI2OS ディスクリプタ領域 チャネル ディスクリプタアドレス 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 141 第 6 章 割込み 拡張インテリジェント I/O サービス (EI2OS) ディスク リプタ (ISD) の各レジスタ 6.6.2 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 以下に示す 8 バイトのレジスタで構成されています。 ・データカウンタ (DCT:2 バイト ) ・I/O アドレスポインタ (IOA:2 バイト ) ・EI2OS ステータスレジスタ (ISCS:1 バイト ) ・バッファアドレスポインタレジスタ (BAP:3 バイト ) 各レジスタの初期値は不定です。 ■ データカウンタ (DCT) データカウンタ (DCT) は , 16 ビット長のレジスタです。転送データバイト数を設定し ます。データを 1 バイト転送するごとに , カウンタ値は -1( デクリメント ) されます。 データカウンタ値が "0000H" になった場合 , EI2OS が終了します。 図 6.6-3 データカウンタ (DCT) の構成 DCTL DCTH bit DCT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 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 初期値 XXXXXXXXXXXXXXXXB R/W R/W:リード/ライト可能 X :不定 ■ I/O アドレスポインタ (IOA) I/O アドレスポインタ (IOA) は , 16 ビット長のレジスタです。データ転送を行うための I/O レジスタ下位アドレス (A15 ∼ A00) を設定します。上位アドレス (A23 ∼ A16) は "00H" であり , "0000H" から "FFFFH" 番地までの I/O をアドレスで設定できます。 図 6.6-4 I/O アドレスポインタ (IOA) の構成 IOAH bit IOA 15 14 13 12 11 IOAL 10 9 8 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 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 初期値 XXXXXXXXXXXXXXXXB R/W R/W:リード/ライト可能 X :不定 ■ EI2OS ステータスレジスタ (ISCS) EI2OS ステータスレジスタ (ISCS) は , 8 ビット長で , バッファアドレスポインタと I/O アドレスポインタの更新 / 固定 , 転送データ形式 ( バイト / ワード ) および転送方向を 設定します。 142 第 6 章 割込み 図 6.6-5 EI2OS ステータスレジスタ (ISCS) の構成 bit 7 6 5 予約 予約 予約 IF R/W R/W R/W R/W 2 1 0 初期値 BW BF DIR SE XXXXXXXXB R/W R/W R/W R/W 4 3 EI2 OS 終了制御ビット SE 0 周辺機能からの要求で終了しません。 1 周辺機能からの要求で終了します。 データ転送方向設定ビット DIR 0 I/Oアドレスポインタ→バッファアドレスポインタ 1 バッファアドレスポインタ→I/Oアドレスポインタ BAP 更新/固定設定ビット BF 0 データ転送後バッファアドレスポインタは更新されます。*1 1 データ転送後バッファアドレスポインタは更新されません。 BW 転送データ長設定ビット 0 バイト 1 ワード IOA 更新/固定設定ビット IF *2 0 データ転送後I/Oアドレスポインタは更新されます。 1 データ転送後I/Oアドレスポインタは更新されません。 予約ビット 予約 必ず"0"を設定してください。 R/W :リード/ライト可能 X :不定 *1 :バッファアドレスポインタは,下位16ビットだけ変化し,インクリメントだけ可能です。 *2 :アドレスポインタは,インクリメントだけ可能です。 ■ バッファアドレスポインタ (BAP) バッファアドレスポインタ (BAP) は , 24 ビットのレジスタです。EI2OS 動作で , データ 転送元のメモリアドレスを設定します。バッファアドレスポインタ (BAP) は , EI2OS の 各チャネルに存在しますので , 16M バイトのメモリアドレスと周辺機能 ( リソース ) ア ドレスとの間でデータを転送できます。EI2OS ステータスレジスタ (ISCS) の BAP 更新 / 固定設定ビット (BF) に "0" を設定した場合は , 下位 16 ビット (BAPM, BAPL) がインクリ メントされ , 上位 8 ビット (BAPH) はインクリメントされません。 図 6.6-6 バッファアドレスポインタ (BAP) の構成 bit23 ∼ bit16 BAPH (R/W) R/W :リード / ライト可能 X :不定 BAP bit15 ∼ bit8 BAPM (R/W) bit7 ∼ bit0 BAPL (R/W) 初期値 XXXXXXH <注意事項> ・データカウンタ (DCT) で設定できる最大転送回数は , 65, 536 回 (64 K バイト ) です。 ・I/O アドレスポインタ (IOA) で設定できる領域は , "000000H" ∼ "00FFFFH" です。 ・バッファアドレスポインタ (BAP) で設定できる領域は , "000000H" ∼ "FFFFFFH" です。 143 第 6 章 割込み 6.6.3 拡張インテリジェント I/O サービス (EI2OS) の動作 周辺機能 ( リソース ) から割込み要求を出力し , 割込み制御レジスタ (ICR) に EI2OS の起動を事前に設定している場合 , CPU は EI2OS によるデータ転送を行います。 EI2OS 処理が終了した場合 , ハードウェア割込み処理を行います。 ■ 拡張インテリジェント I/O サービス (EI2OS) の処理手順 図 6.6-7 拡張インテリジェント I/O サービス (EI2OS) の動作フロー 周辺機能より 割込み要求発生 ISE=1 NO YES 割込みシーケンス ISD/ISCS リード 周辺機能から の終了要求 YES DIR=1 YES NO IOAで示されるデータ (データ転送) BAPで示されるメモリ BAPで示されるデータ (データ転送) IOAで示されるメモリ YES IF=0 NO 更新値は BW による IOA 更新 更新値は BW による BAP 更新 YES BF=0 NO DCTデクリメント DCT=00 B NO (-1) YES S1,S0に00 Bをセット 周辺機能割込み要求の クリア CPU 動作復帰 ISD :EI2OS ディスクリプタ ISCS :EI2OS ステータスレジスタ IF :EI2OS ステータスレジスタ(ISCS )の IOA更新/固定設定ビット BW :EI2OS ステータスレジスタ(ISCS )の 転送データ長設定ビット BF :EI2OS ステータスレジスタ(ISCS )の BAP 更新/固定設定ビット DIR :EI2OS ステータスレジスタ(ISCS )の データ転送方向設定ビット SE :EI2OS ステータスレジスタ(ISCS )の EI2OS 終了制御ビット 144 YES SE=1 NO NO EI2 OS 終了処理 S1,S0 に" 01B"をセット S1 ,S0 に" 11B"をセット ISE を" 0"にクリア 割込みシーケンス DCT :データカウンタ IOA :I/O アドレスポインタ BAP :バッファアドレスポインタ ISE :割込み制御レジスタ(ICR )のEI2OS 許可ビット S1,S0 :割込み制御レジスタ(ICR )のEI2OS ステータス 第 6 章 割込み 6.6.4 拡張インテリジェント I/O サービス (EI2OS) 使用手順 拡張インテリジェント I/O サービス (EI2OS) の設定は , システムスタック領域 , 拡張 インテリジェント I/O サービス (EI2OS) ディスクリプタ , 周辺機能 ( リソース ), およ び割込み制御レジスタ (ICR) で設定します。 ■ 拡張インテリジェント I/O サービス (EI2OS) の使用手順 図 6.6-8 拡張インテリジェント I/O サービス (EI2OS) 使用手順 ソフトウェアによる処理 ハードウェアによる処理 開 始 システムスタック領域の設定 初期設定 EI2 OS ディスクリプタの設定 周辺機能の初期設定 割込み制御レジスタ (ICR)の設定 内蔵リソースの動作開始 設定割込み許可ビットの 設定 PS内のILM,Iの設定 S1,S0=00 B ユーザプログラムの実行 (割込み要求)と(ISE=1) データ転送 NO カウントアウトまたは リソースからの終了要求 による割込みへ分岐の判定 (割込みベクタへ分岐) 拡張インテリジェントI/O サービスの再設定 (チャネルの切換えなど) YES S1,S0=01 Bまたは S1,S0=11 B バッファ中のデータの処理 RETI ISE :割込み制御レジスタ(ICR)のEI2OSの許可ビット S1,S0 :割込み制御レジスタ(ICR)のEI2OSステータス 145 第 6 章 割込み 6.6.5 拡張インテリジェント I/O サービス (EI2OS) 処理時間 拡張インテリジェント I/O サービス (EI2OS) の処理に必要な時間は拡張インテリ ジェント I/O サービスディスクリプタ (ISD) の設定により異なります。 ・EI2OS ステータスレジスタ (ISCS) の設定 ・I/O アドレスポインタ (IOA) の示すアドレス設定 ・バッファアドレスポインタ (BAP) の示すアドレス設定 ・外部アクセス時の外部データバス幅 ・転送データのデータ長 EI2OS によるデータ転送が終了した場合は , ハードウェア割込みが起動されるた め , 割込みハンドリング時間が加算されます。 ■ 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) ● データ転送継続時 データ転送を継続する場合の EI2OS 処理時間は , EI2OS ステータスレジスタ (ISCS) の 設定によって , 表 6.6-2 のようになります。 表 6.6-2 拡張インテリジェント I/O サービス実行時間 EI2OS 終了制御ビット (SE) の設定 IOA 更新 / 固定設定ビット (IF) の設定 BAP アドレス更新 / 固定 設定ビット (BF) の設定 周辺からの終了要求により終了 周辺からの終了要求を無視 固定 更新 固定 更新 固定 32 34 33 35 更新 34 36 35 37 単位 : マシンサイクル (1 マシンサイクルは , マシンクロック ( φ ) の 1 クロック周期に相当します。) 146 第 6 章 割込み データ転送を継続する場合の EI2OS 処理時間は , 表 6.6-3 に示すように , EI2OS 実行条 件によって補正が必要です。 表 6.6-3 EI2OS 実行時間のデータ転送の補正値 内部アクセス 外部アクセス I/O アドレスポインタ バッファ アドレス ポインタ B/ 偶 奇 B/ 偶 8/ 奇 B/ 偶 0 +2 +1 +4 奇 +2 +4 +3 +6 B/ 偶 +1 +3 +2 +5 8/ 奇 +4 +6 +5 +8 内部アクセス 外部アクセス B : バイトデータ転送 8: 外部バス幅 8 ビット・ワード転送 偶 : 偶数アドレス・ワード転送 奇 : 奇数アドレス・ワード転送 ● データカウンタ (DCT) のカウント終了時 ( 最終回のデータ転送時 ) EI2OSによるデータ転送が終了した場合, ハードウェア割込みが起動されるため割込み ハンドリング時間が加算されます。カウント終了時の EI2OS の処理時間は , 下式で算 出されます。式中の Z は , 割込みハンドリング時間の補正値です。 カウント終了時の EI2OS 処理時間=データ転送時の EI2OS 処理時間+ (21+6 × Z) マシンサイクル ↑ 割込みハンドリング時間 割込みハンドリング時間は , スタックポインタが格納しているアドレスによって異な ります。 表 6.6-4 割込みハンドリング時間の補正値 (Z) スタックポインタが指しているアドレス 補正値 (Z) 外部 8 ビットの場合 +4 外部偶数アドレスの場合 +1 外部奇数アドレスの場合 +4 内部偶数アドレスの場合 0 内部奇数アドレスの場合 +2 147 第 6 章 割込み ● 周辺機能 ( リソース ) からの終了要求により終了した場合 周辺機能 ( リソース ) からの終了要求では , EI2OS によるデータ転送を途中で終了した 場合 (ICR:S1, S0=11B) は , データ転送は行わず , ハードウェア割込みを起動します。 EI2OS 処理時間は , 下式で算出されます。式中の Z は , 割込みハンドリング時間の補正 値です ( 表 6.6-4 を参照 )。 途中終了した場合の EI2OS 処理時間= 36 + 6 × Z マシンサイクル <参考> 1 マシンサイクルは , マシンクロック ( φ ) の 1 クロック周期に相当します。 148 第 6 章 割込み 6.7 例外処理割込み MB90800 シリーズでは , 定義されていない命令を実行した場合 , 例外処理を行いま す。例外処理は , 割込みと同じものであり命令と命令の間で例外事項が発生した場 合は , プログラム処理を中断して例外処理ルーチンへ分岐します。 例外処理は , 予想外の動作を行った結果によって発生するものであり , デバッグ時や 未定義命令の実行 , CPU 暴走状態検出の起動に使用できます。 ■ 例外処理 ● 例外処理の動作 MB90800 シリーズでは , 命令マップで定義されていない命令を実行した場合 , ソフト ウェア割込み命令の例外処理ルーチンへ分岐します。 例外処理では , 割込みルーチンへ分岐する前に , 以下に示す処理を行います。 • システムスタックへ専用レジスタ (A, DPR, ADB, DTB, PCB, PC, PS) の内容を退避さ せます。 • コンディションコードレジスタ (CCR) の I フラグを "0" にクリアし , ハードウェア 割込みをマスクします。 • コンディションコードレジスタ (CCR) の S フラグに "1" をセットし , システムスタッ クを有効にします。 システムスタックへ退避させたプログラムカウンタ (PC) の値は , 未定義命令のプログ ラムアドレスを格納しています。2 バイト以上の命令コードの場合は , 未定義命令であ ることが識別できたコードを格納しているプログラムアドレスになります。例外処理 ルーチン内で , 例外要因の種類を判定する必要がある場合は , システムスタックへ退避 させた PC 値を使用してください。 ● 例外処理からの復帰 例外処理からRETI命令で復帰させた場合, PCが未定義命令を指しているために, 再度, 例外処理ルーチンへ分岐します。ソフトウェアリセットまたは RST 端子から "L" レベ ルを入力 ( 外部リセット ) してください。 149 第 6 章 割込み 割込み処理のスタック動作 6.8 割込みが受け付けられた場合 , 割込み処理に分岐する前に , 専用レジスタの内容をシ ステムスタックに退避させます。割込み処理が終了した後に , 割込み復帰命令を実 行することにより , システムスタックから専用レジスタへ退避させた値を復帰でき ます。 ■ 割込み処理開始時のスタック動作 割込みが受け付けられた場合は , CPU は専用レジスタの内容を以下に示す順番で , シス テムスタックに退避させます。 1. アキュムレータ (A) 2. ダイレクトページレジスタ (DPR) 3. アディショナルデータバンクレジスタ (ADB) 4. データバンクレジスタ (DTB) 5. プログラムカウンタバンクレジスタ (PCB) 6. プログラムカウンタ (PC) 7. プロセッサステータス (PS) 図 6.8-1 割込み処理開始時のスタック動作 割込み直前 SSB アドレス 08FFH 08FEH 00H SSP 08FEH A 0000H 08FEH AH AL DPR 01H ADB 00H DTB 00H PCB FFH PC 803FH PS 20E0H 08F2H 割込み直後 メモリ XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH "H" SP SSB アドレス 08FFH 08FEH 00H SSP 08F2H A 0000H 08FEH AH "L" バイト AL DPR 01H ADB 00H DTB 00H PCB FFH 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) の値がスタックから 復帰し , 専用レジスタは割込み処理へ分岐する前の状態に戻ります。 ■ スタック領域 ● スタック領域の確保 スタック領域は , 割込み処理 , サブルーチンコール命令 (CALL), ベクタコール命令 (CALLV) を実行する場合に , プログラムカウンタ (PC) の退避 / 復帰や , PUSHW, POPW 命令によるレジスタ値の退避 / 復帰にも使用します。スタック領域は , データ領域とと もに RAM 上に設定します。 150 第 6 章 割込み 図 6.8-2 スタック領域 ベクタテーブル (リセット・割込み ベクタコール命令) FFFFFFH FFFC00H ROM領域 FF0000H *1 ~ ~ ~ ~ 000D00H *2 内蔵RAM領域 スタック領域 000380H 汎用レジスタ バンク領域 000180H 000100H 0000C0H 000000H 内蔵I/O領域 *1:品種によって,内蔵ROM容量が異なります。 *2:品種によって,内蔵RAM容量が異なります。 <注意事項> ・スタックポインタ (SSP, USP) にアドレスを設定する場合 , 偶数アドレスを設定してく ださい。奇数アドレスを設定した場合は , スタックに退避 / 復帰処理時間が 1 サイクル 多くかかります。 ・システムスタック領域 , ユーザスタック領域 , およびデータ領域は , 重なり合わないよう に配置してください。 ● システムスタックとユーザスタック 割込み処理では , システムスタック領域を使用します。割込み出力時にユーザスタック 領域を使用していても , システムスタックに切り換わります。スタック空間を分ける必 要がない場合は , システムスタックを使用してください。 151 第 6 章 割込み 6.9 割込み処理のプログラム例 割込み処理のプログラム例を示します。 ■ 割込み処理のプログラム例 ● 処理仕様 外部割込み 0(INT0) を利用した割込みプログラムの一例です。 ● コーディング例 EQU 000011H ; ポート 1 方向レジスタ EQU 028H ; 割込み /DTP 許可レジスタ EQU 029H ; 割込み /DTP フラグ EQU 02AH ; 要求レベル設定レジスタ EQU 0B0H ; 割込み制御レジスタ 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 端子を入力に設定 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 NOP NOP NOP DDR1 ENIR EIRR ELVR ICR00 STACK 152 第 6 章 割込み ■ RETI ; 割込みから復帰 CODE ENDS ;---------- ベクタ設定 -----------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFD0H ; 割込み #11(0BH) にベクタを設定 DSL ED_INT1 ORG 0FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 拡張インテリジェント I/O サービス (EI2OS) のプログラム例 ● 処理仕様 • INT0 端子に入力される信号の "H" レベルを検出して拡張インテリジェント I/O サー ビス (EI2OS) を起動 • INT0 端子に "H" レベルが入力されると , EI2OS が起動されポート 0 のデータをメモ リの "3000H" 番地に転送 • 転送データバイト数は 100 バイトで , 100 バイト転送後 , EI2OS 転送終了による割込 みを出力 ● コーディング例 EQU 000011H ; ポート 1 方向レジスタ EQU 000028H ; 割込み /DTP 許可レジスタ EQU 000029H ; 割込み /DTP 要因レジスタ EQU 00002AH ; 要求レベル設定レジスタ EQU 0000B0H ; 割込み制御レジスタ EQU 000100H ; バッファアドレスポインタ下位 EQU 000101H ; バッファアドレスポインタ中位 EQU 000102H ; バッファアドレスポインタ上位 EQU 000103H ; EI2OS ステータス EQU 000104H ; I/O アドレスポインタ下位 EQU 000105H ; I/O アドレスポインタ上位 EQU 000106H ; データカウンタ下位 EQU 000107H ; データカウンタ上位 EQU EIRR:0 ; 外部割込み要求フラグビットの定義 SSEG ; スタック RW 100 STACK_T RW 1 STACK ENDS ;---------- メインプログラム -----------------------------------------------------CODE CSEG START: AND CCR, #0BFH ; PS内CCRのIフラグをクリアして割込み 禁止 MOV RP, #00 ; レジスタバンクポインタを設定 MOV A, #!STACK_T ; システムスタックの設定 MOV SSB, A MOVW A, #STACK_T ; スタックポインタの設定 , このときは MOVW SP, A ; S フラグ =1 のため SSP にセットされる MOV I:DDR1, #00000000B ; P10/INT0 端子を入力に設定 DDR1 ENIR EIRR ELVR ICR00 BAPL BAPM BAPH ISCS IOAL IOAH DCTL DCTH ER0 STACK 153 第 6 章 割込み BAPL, #00H MOV MOV MOV BAPM, #30H BAPH, #00H ISCS, #00010001B MOV IOAL, #00H MOV MOV MOV MOV IOAH, #00H DCTL, #64H ; 転送バイト数をセット (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, #40H ; PS 内 CCR の I フラグをセットして割込 み許可 MOV MOV MOV MOV OR LOOP: ; バッファアドレスをセット (003000H) MOV : BRA LOOP ; I/O アドレス更新なし , バイト転送 , ; バッファアドレス更新あり ; I/O →バッファへ転送 , 周辺機能による ; 終了あり ; 転送元アドレスをセット ( ポート 0:000000H) ; 無限ループ ;---------- 割込みプログラム -----------------------------------------------------WARI CLRB ER0 ; 割込み /DTP 要求フラグのクリア : ユーザ処理 ; EI2OS の終了要因をチェック , : ; バッファ中のデータの処理 , EI2OS の 再設定など RETI CODE ENDS ---------- ベクタ設定 ------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFD0H ; 割込み #11(0BH) にベクタを設定 VECT 154 DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H START ; リセットベクタ設定 ; シングルチップモードに設定 第7章 モード設定 MB90800 シリーズの動作モードとメモリアクセス モードについて説明します。 7.1 モード設定の概要 7.2 モード端子 (MD2 ∼ MD0) 7.3 モードデータ 155 第 7 章 モード設定 7.1 モード設定の概要 リセット入力時のモード端子レベルの設定と , モードデータレジスタにモードデー タを設定することにより , 動作モードを設定できます。 ■ モード設定 動作モード バスモード ・RUNモード シングルチップ ・フラッシュメモリ書込みモード ■ 動作モード 動作モードは , モード端子 (MD2 ∼ MD0) とモードデータレジスタのバスモード設定 ビット (M1, M0) で設定します。設定した動作モードで , 通常動作の起動 / フラッシュ メモリの書込みを行います。 <注意事項> MB90800 シリーズでは , シングルチップモードを設定してください。 シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ ジスタのバスモード設定ビット (M1, M0) は "00B" に 設定してください。 ■ バスモード バスモードは , リセットベクタを読み出すメモリが外部にあるか内部にあるかにより異 なります。 モード設定端子 (MD2 ∼ MD0) とモードデータレジスタのバスモード設定ビッ ト (M1, M0) を設定することでバスモードを設定できます。 モード設定端子 (MD2 ∼ MD0) で , リセットベクタおよびモードデータを読み出す場合のバスモードを設定します。ま た , モードデータレジスタのバスモード設定ビット (M1, M0) で , バスモードを設定しま す。 <参考> RUN モードは , CPU が動作しているモードのことをいいます。RUN モードには , メイン クロックで動作するメインクロックモード , PLL クロックで動作する PLL クロックモード , 低消費電力モードがあります。詳細は ,「第 5 章 低消費電力モード」を参照してください。 <注意事項> MB90800 シリーズでは , シングルチップモードを設定してください。 シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。 156 第 7 章 モード設定 モード端子 (MD2 ∼ MD0) 7.2 モード端子は , MD2 ∼ MD0 の 3 本の外部端子で , リセットベクタとモードデータの 取込み方法を設定します。 ■ モード端子 (MD2 ∼ MD0) モード端子で , リセットベクタの読出しを外部メモリとするか , 内部メモリとするかを 設定します。リセットベクタを外部メモリに設定した場合は , 外部データバス幅をモー ドデータレジスタで設定します。 フラッシュメモリ内蔵品の場合は , 内蔵フラッシュメモリにプログラムを書き込むた めに , フラッシュメモリ書込みモードの設定をモード端子で行います。 表 7.2-1 モード端子の設定 リセットベクタ アクセス領域 外部データ バス幅 MD2 MD1 MD0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 フラッシュメモリ シリアル書込み モード * − − − 1 1 1 フラッシュメモリ モード − − − モード名 備考 設定禁止 内部ベクタモード 内部メモリ モードデータ レジスタで 設定 リセットシーケンス 以降はモードデータ で制御 設定禁止 MD2 ∼ MD0: "0"=VSS, "1"=VCC としてください。 *: フラッシュメモリのシリアル書込みは , モード端子の設定を行うだけでは書込みできません。ほか の箇所も設定する必要があります。詳細は , 「第 26 章 シリアル書込み接続例」を参照してくだ さい。 <注意事項> MB90800 シリーズでは , シングルチップモードを設定してください。 シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。 157 第 7 章 モード設定 7.3 モードデータ モードデータレジスタは , "FFFFDFH" 番地のメモリ上にあり , リセットシーケンス 後のメモリアクセス動作を設定します。 ■ モードデータ リセットシーケンス実行中に , "FFFFDFH" 番地のモードデータをモードデータレジス タに取り込みます。モードデータレジスタの内容は , リセットシーケンス実行中に変更 できます。命令では変更できません。モードデータの設定は , リセットシーケンス後に 有効となります。 図 7.3-1 モードデータの構成 bit モードデータレジスタ 7 M1 5 0 6 M0 4 0 3 0 2 0 1 0 0 0 機能拡張ビット(予約領域) バスモード設定ビット ■ バスモード設定ビット リセットシーケンス終了後のバスモードを設定するビットです。 表 7.3-1 バスモード設定ビットとその機能 M1 M0 0 0 0 1 1 0 1 1 機 能 シングルチップモード ( 設定禁止 ) <注意事項> MB90800 シリーズでは , シングルチップモードを設定してください。 シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。 158 第 7 章 モード設定 図 7.3-2 シングルチップモードによるアクセス領域と物理アドレスの関係 FFFFFFH ROM 品種ごと#1 FE0000H 00FFFFH ROMミラー ← ROMミラー機能を設定した場合 品種ごと#2 品種ごと#3 RAM : アクセスなし I/O : 内部アクセス 000100H 0000C0H 000000H 注意事項:「品種ごと#x」は各品種に依存して決まるアドレスとなります。 詳細は,「2.3 メモリマップ」を参照してください。 ■ モード端子とモードデータの関係 表 7.3-2 モード端子とモードデータの関係 モード シングルチップモード MD2 MD1 MD0 M1 M0 0 1 1 0 0 <注意事項> MB90800 シリーズでは , シングルチップモードを設定してください。 シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。 159 第 7 章 モード設定 160 第8章 入出力ポート MB90800 シリーズの入出力ポートの機能と動作に ついて説明します。 8.1 入出力ポートの概要 8.2 入出力ポートのレジスタ説明 8.3 ポート 0 8.4 ポート 1 8.5 ポート 2 8.6 ポート 3 8.7 ポート 4 8.8 ポート 5 8.9 ポート 6 8.10 ポート 7 8.11 ポート 8 8.12 ポート 9 8.13 入出力ポートのプログラム例 161 第 8 章 入出力ポート 8.1 入出力ポートの概要 入出力ポート ( パラレル I/O ポート ) は最大 70 本あり , リソース入出力端子 ( 周辺機 能の入出力端子 ) と兼用しています。 ■ 入出力ポート機能 入出力ポートには , ポート方向レジスタ (DDR) とポートデータレジスタ (PDR) があり ます。ポート方向レジスタ (DDR) では , ポート端子の入出力をビット単位で設定しま す。ポートデータレジスタ (PDR) では , ポート端子への出力データを設定します。ポー ト方向レジスタ (DDR) で入出力ポート端子を入力に設定した場合は , ポートデータレ ジスタ (PDR) をリードすることにより , ポート端子のレベル値を読むことができます。 ポート方向レジスタ (DDR) で入出力ポート端子を出力に設定した場合は , ポートデー タレジスタ (PDR) の値をポート端子に出力します。以下に各入出力ポートの機能と兼 用するリソースを示します。 表 8.1-1 各ポートの機能一覧 入出力 ポート名 端子名 ポート 0 P00 ∼ P07 ポート 1 ポート 2 入力形式 出力 形式 機能 入出力ポート P07 P06 P05 P04 P03 P02 P01 P00 リソース SEG19 SEG18 SEG17 SEG16 SEG15 SEG14 SEG13 SEG12 入出力ポート P17 P16 P15 P14 P13 P12 P11 P10 リソース SEG27 SEG26 SEG25 SEG24 SEG23 SEG22 SEG21 SEG20 P10 ∼ P17 入出力ポート P27 P26 P25 P24 P23 P22 P21 P20 リソース SEG35 SEG34 SEG33 SEG32 SEG31 SEG30 SEG29 SEG28 P20 ∼ P27 入出力ポート ポート 3 P30 ∼ P37 リソース ポート 4 ポート 5 P37 P36 P35 P34 P33 P32 P31 P30 SEG43 SEG42 SEG41 SEG40 SEG39 SEG38 SEG37 SEG36 OCU1 OCU0 IC1 IC0 TMCK SI3 SC3 SO3 入出力ポート P47 P46 P45 P44 P43 P42 P41 P40 リソース TOT2 TOT1 TOT0 − − − − − 入出力ポート P57 P56 P55 P54 P40 ∼ P47 P50 ∼ P57 CMOS ( ヒステ リシス ) CMOS リソース SI1 SO0 SC0 P53 P52 P51 P50 SEG47 SEG46 SEG45 SEG44 TIN1 TIN0 SI0 TIN2 PPG1 PPG0 入出力ポート ポート 6 P60 ∼ P67 リソース 入出力ポート ポート 7 ポート 8 ポート 9 P66 P65 AN6 AN5 INT2 INT1 INT0 − P76 P75* P74* P73 P72 P71 P70 SCL SDA AN11 AN10 AN9 AN8 SO2 SC2 SI2 SO1 SC1 INT3 P70 ∼ P76 P64 P63 P62 P61 P60 AN4 AN3 AN2 AN1 AN0 リソース − − 入出力ポート − − − P84 P83 P82 P81 P80 リソース − − − COM3 COM2 V2 V1 V0 入出力ポート − − − − − − P91 P90 リソース − − − − − − − − P80 ∼ P84 P90, P91 *: P75, P74 は N-ch オープンドレイン 162 P67 AN7 第 8 章 入出力ポート <注意事項> ポート 6 とポート 7 は , アナログ入力端子と兼用になっており , 入出力ポートとして使用 する場合は , ポート 6, ポート 7 方向レジスタ (DDR6/DDR7) とポート 6, ポート 7 データ レジスタ (PDR6/PDR7) のほかに , アナログ入力許可レジスタ 0, 1(ADER0/ADER1) にそ れぞれ "00H" を設定してください。リセットでアナログ入力許可レジスタ 0, 1(ADER0/ ADER1) は "FFH" に初期化されます。 ポート 9 は , 1 系統クロック品のみに存在します。 ■ DDR レジスタにてポート出力に設定した場合のリソース兼用ポートの動作に ついて 図 8.1-1 リソース動作許可 / 禁止時におけるリソース兼用ポートの端子状態 リソース動作 許可/禁止設定 リソース兼用ポート 端子状態 リソース動作許可 リソース動作禁止 リソース動作に依存 PDR レジスタ設定値を出力 163 第 8 章 入出力ポート 8.2 入出力ポートのレジスタ説明 入出力ポートの設定に関連するレジスタの一覧を示します。 ■ 入出力ポートのレジスタ一覧 表 8.2-1 各ポートのレジスタ一覧 レジスタ名 リードライト アドレス 初期値 ポート 0 データレジスタ (PDR0) R/W 000000H XXXXXXXXB ポート 1 データレジスタ (PDR1) R/W 000001H XXXXXXXXB ポート 2 データレジスタ (PDR2) R/W 000002H XXXXXXXXB ポート 3 データレジスタ (PDR3) R/W 000003H XXXXXXXXB ポート 4 データレジスタ (PDR4) R/W 000004H XXXXXXXXB ポート 5 データレジスタ (PDR5) R/W 000005H XXXXXXXXB ポート 6 データレジスタ (PDR6) R/W 000006H XXXXXXXXB ポート 7 データレジスタ (PDR7) R/W 000007H - XXXXXXXB ポート 8 データレジスタ (PDR8) R/W 000008H - - - XXXXXB ポート 9 データレジスタ (PDR9) R/W 000009H - - - - - - XXB ポート 0 方向レジスタ (DDR0) R/W 000010H 0 0 0 0 0 0 0 0B ポート 1 方向レジスタ (DDR1) R/W 000011H 0 0 0 0 0 0 0 0B ポート 2 方向レジスタ (DDR2) R/W 000012H 0 0 0 0 0 0 0 0B ポート 3 方向レジスタ (DDR3) R/W 000013H 0 0 0 0 0 0 0 0B ポート 4 方向レジスタ (DDR4) R/W 000014H 0 0 0 0 0 0 0 0B ポート 5 方向レジスタ (DDR5) R/W 000015H 0 0 0 0 0 0 0 0B ポート 6 方向レジスタ (DDR6) R/W 000016H 0 0 0 0 0 0 0 0B ポート 7 方向レジスタ (DDR7) R/W 000017H - 0 0 0 0 0 0 0B ポート 8 方向レジスタ (DDR8) R/W 000018H - - - 0 0 0 0 0B ポート 9 方向レジスタ (DDR9) R/W 000019H - - - - - - 0 0B アナログ入力許可レジスタ 0(ADER0) R/W 00001EH 1 1 1 1 1 1 1 1B アナログ入力許可レジスタ 1(ADER1) R/W 00001FH - - - - 1 1 1 1B R/W: リード / ライト可能 X : 不定 − : 未定義ビット 164 第 8 章 入出力ポート <注意事項> ・ ポート入力モード時に , ポートデータレジスタ (PDR) へリードモディファイライト (RMW) 系命令を実行するとリード時に端子レベルが読み出されます。ビット操作した 以外の同系列の入力ポートとして使用しているビット値が変化してしまう場合があり ますので注意が必要です。 ・ リソース動作時に , リソースと兼用しているポートデータレジスタ (PDR) へリードモ ディファイライト (RMW) 系命令を実行すると , リソースとして動作している端子につ いては , リード時に端子レベルが読み出されます。ビット操作した以外の同系列の入力 ポートとして使用しているビット値が変化してしまう場合がありますので注意が必要 です。 表 8.2-2 PDR レジスタへリードモディファイライト (RMW) 系命令を実行した場合のリード対象 リソース動作許可時 リソース動作禁止時 ポート入力設定時 DDR=00H 端子レベル 端子レベル ポート出力設定時 DDR=FFH 端子レベル PDR レジスタ値 リソース動作 許可/禁止設定 リソース動作許可 リソース兼用ポート 端子状態 リソース動作に依存 リソース動作禁止 入力設定の場合(DDR=00H):Hi-Z 出力設定の場合(DDR=FFH):変化したPDR値を出力 PDRレジスタに対する リードモディファイライト(RMW)系命令実行 リードモディファイ ライト(RMW)系命令 実行タイミング PDRレジスタ値 前データ リードモディファイライト(RMW)系命令実行時の端子レベルにより変化 165 第 8 章 入出力ポート 8.3 ポート 0 ポート 0 は入出力ポートです。ポート 0 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 0 の構成 ポート 0 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P00/SEG12 ∼ P07/SEG19) • ポート 0 データレジスタ (PDR0) • ポート 0 方向レジスタ (DDR0) ■ ポート 0 の端子 表 8.3-1 ポート 0 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 P00/SEG12 P00 SEG12 P01/SEG13 P01 SEG13 P02/SEG14 P02 SEG14 P03/SEG15 P03 P04/SEG16 P04 P05/SEG17 P05 SEG17 P06/SEG18 P06 SEG18 P07/SEG19 P07 SEG19 ポート 0 入出力 ポート SEG15 SEG16 LCD セグメント 出力 回路形式 入力 出力 CMOS ( ヒステ リシス ) CMOS E <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 ■ ポート 0 のレジスタ ポート 0 のレジスタには , ポート 0 データレジスタ (PDR0) およびポート 0 方向レジス タ (DDR0) があります。各レジスタを構成するビットは , ポート 0 の端子に 1 対 1 で対 応しています。 表 8.3-2 ポート 0 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR0, DDR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P07 P06 P05 P04 P03 P02 P01 P00 ポート 0 166 第 8 章 入出力ポート 8.3.1 ポート 0 のレジスタ (PDR0, DDR0) ポート 0 のレジスタについて説明します。 ■ ポート 0 のレジスタの機能 ● ポート 0 データレジスタ (PDR0) ポート 0 の端子ごとの出力値を設定します。 ● ポート 0 方向レジスタ (DDR0) ポート 0 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.3-3 ポート 0 のレジスタの機能 リードした場合 レジスタ名 ビット値 入力ポート 出力ポート 入力ポート アドレス 初期値 000000H XXXXXXXXB 000010H 0 0 0 0 0 0 0 0B 出力ポート 0 PDR0 レジス PDR0 レジス 端子状態が タのビット 端子より "L" タのビットに "L" レベルで に "0"が設定 レベルを出力 "0" を設定し します。 されていま す。 ます。 す。 1 PDR0 レジス 端子状態が タのビット "H"レベルで に "1"が設定 されていま す。 す。 0 DDR0 レジスタのビットに 入力ポートになります。 "0" が設定されています。 1 DDR0 レジスタのビットに 出力ポートになります。 "1" が設定されています。 ポート 0 データ レジスタ (PDR0) ポート 0 方向 レジスタ (DDR0) ライトした場合 PDR0 レジス 端子より "H" タのビットに レベルを出力 "1" を設定し します。 ます。 X: 不定 167 第 8 章 入出力ポート ポート 0 の動作説明 8.3.2 ポート 0 の動作を説明します。 ■ ポート 0 の動作 ● ポート 0 方向レジスタ (DDR0) で , 出力ポートに設定した場合 • ポート 0 データレジスタ (PDR0) に設定した値が , ポート 0 端子へ出力されます。 • ポート 0 データレジスタ (PDR0) を読み出した場合は , ポート 0 データレジスタ (PDR0) に設定されている値が読み出されます。 ● ポート 0 方向レジスタ (DDR0) で , 入力ポートに設定した場合 • ポート 0 端子はハイインピーダンスになります。 • ポート 0 データレジスタ (PDR0) に値を設定した場合は , ポート 0 データレジスタ (PDR0) に設定した値が保持されますが , 端子には出力されません。 • ポート 0 データレジスタ (PDR0) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 0 データレジスタ (PDR0) をアクセスする場合は , ポート 0 方向レジスタ (DDR0) で出力に 設定されているビットは影響を受けませんが , ポート 0 方向レジスタ (DDR0) で入力に設 定されているビットは , 端子の入力レベル値がポート 0 データレジスタ (PDR0) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 0 データレジスタ (PDR0) に出力値を設定した後に , ポート 0 方向レジスタ (DDR0) を出 力に設定してください。 ● セグメント出力の動作 セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに "1" を設定してください。汎用入出力ポートとしての機能が禁止され , セグメント出力 端子として機能します。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 0 方向レジスタ (DDR0) の値が "00H" に初期 化され , ポート 0 端子はハイインピーダンスになります。 • ポート 0 データレジスタ (PDR0) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート0データレジスタ(PDR0)に出力値を設定した後に, ポート 0 方向レジスタ (DDR0) を出力に設定する必要があります。 168 第 8 章 入出力ポート ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 0 方向レジスタ (DDR0) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 セグメント出力端子として機能している場合は , セグメント出力状態を保持します。 表 8.3-4 ポート 0 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベースタイマモード, 時計モード (SPL=0) ストップモード , タイムベースタイマモード, 時計モード (SPL=1, RDRF=0) P00 ∼ P07 入出力ポート 入出力ポート 入力遮断 / レベル保持 入力遮断 / 出力 Hi-Z SEG12 ∼ SEG19 セグメント出力 セグメント出力 セグメント出力 セグメント出力 SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 169 第 8 章 入出力ポート 8.4 ポート 1 ポート 1 は入出力ポートです。ポート 1 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 1 の構成 ポート 1 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P10/SEG20 ∼ P17/SEG27) • ポート 1 データレジスタ (PDR1) • ポート 1 方向レジスタ (DDR1) ■ ポート 1 の端子 表 8.4-1 ポート 1 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 P10/SEG20 P10 SEG20 P11/SEG21 P11 SEG21 P12/SEG22 P12 SEG22 P13/SEG23 P13 P14/SEG24 P14 P15/SEG25 P15 SEG25 P16/SEG26 P16 SEG26 P17/SEG27 P17 SEG27 ポート 1 入出力 ポート SEG23 SEG24 LCD セグ メント出力 入力 出力 CMOS ( ヒステ リシス ) CMOS 回路 形式 E <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 ■ ポート 1 のレジスタ ポート 1 のレジスタには , ポート 1 データレジスタ (PDR1) およびポート 1 方向レジス タ (DDR1) があります。各レジスタを構成するビットは , ポート 1 の端子に 1 対 1 で対 応しています。 表 8.4-2 ポート 1 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR1, DDR1 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P17 P16 P15 P14 P13 P12 P11 P10 ポート 1 170 第 8 章 入出力ポート 8.4.1 ポート 1 のレジスタ (PDR1, DDR1) ポート 1 のレジスタについて説明します。 ■ ポート 1 のレジスタの機能 ● ポート 1 データレジスタ (PDR1) ポート 1 の端子ごとの出力値を設定します。 ● ポート 1 方向レジスタ (DDR1) ポート 1 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.4-3 ポート 1 のレジスタの機能 リードした場合 ライトした場合 レジスタ名 ビット値 入力ポート 入力ポート アドレス 初期値 000001H XXXXXXXXB 000011H 0 0 0 0 0 0 0 0B 出力ポート 0 端 子 状 態 が PDR1 レジス "L" レベルで タのビットに す。 "0" が設定さ れています。 PDR1 レジス 端子より "L" タのビット レベルを出 に "0" を設定 力します。 します。 1 端 子 状 態 が PDR1 レジス "H" レベルで タのビットに "1" が設定さ す。 れています。 PDR1 レジス 端子より "H" タのビット レベルを出 に "1" を設定 力します。 します。 0 DDR1レジスタのビットに"0" 入力ポートになります。 が設定されています。 1 DDR1レジスタのビットに"1" 出力ポートになります。 が設定されています。 ポート 1 データ レジスタ (PDR1) ポート 1 方向 レジスタ (DDR1) 出力ポート X: 不定 171 第 8 章 入出力ポート ポート 1 の動作説明 8.4.2 ポート 1 の動作を説明します。 ■ ポート 1 の動作 ● ポート 1 方向レジスタ (DDR1) で , 出力ポートに設定した場合 • ポート 1 データレジスタ (PDR1) に設定した値が , ポート 1 端子へ出力されます。 • ポート 1 データレジスタ (PDR1) を読み出した場合は , ポート 1 データレジスタ (PDR1) に設定されている値が読み出されます。 ● ポート 1 方向レジスタ (DDR1) で , 入力ポートに設定した場合 • ポート 1 端子はハイインピーダンスになります。 • ポート 1 データレジスタ (PDR1) に値を設定した場合は , ポート 1 データレジスタ (PDR1) に設定した値が保持されますが , 端子には出力されません。 • ポート 1 データレジスタ (PDR1) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 1 データレジスタ (PDR1) をアクセスする場合は , ポート 1 方向レジスタ (DDR1) で出力に 設定されているビットは影響を受けませんが , ポート 1 方向レジスタ (DDR1) で入力に設 定されているビットは , 端子の入力レベル値がポート 1 データレジスタ (PDR1) に書き込 まれますので , 入力に設定していたビットを出力に設定変更する場合は , ポート 1 データ レジスタ (PDR1) に出力値を設定した後に , ポート 1 方向レジスタ (DDR1) を出力に設定 してください。 ● セグメント出力の動作 セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに "1" を設定してください。汎用入出力ポートとしての機能が禁止され , セグメント出力 端子として機能します。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 1 方向レジスタ (DDR1) の値が "00H" に初期 化され , ポート 1 端子はハイインピーダンスになります。 • ポート 1 データレジスタ (PDR1) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート1データレジスタ(PDR1)に出力値を設定した後に, ポート 1 方向レジスタ (DDR1) を出力に設定する必要があります。 172 第 8 章 入出力ポート ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 1 方向レジスタ (DDR1) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 セグメント出力端子として機能している場合は , セグメント出力状態を保持します。 表 8.4-4 ポート 1 の端子状態 端子名 P10 ∼ P17 通常動作 入出力ポート ストップモード , タイムベースタイマモード, スリープモード 時計モード (SPL=0) ストップモード , タイムベースタイマモード, 時計モード (SPL=1) 入出力ポート 入力遮断 / 出力 Hi-Z 入力遮断 / レベル保持 SEG20∼SEG27 セグメント出力 セグメント出力 セグメント出力 セグメント出力 SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 173 第 8 章 入出力ポート 8.5 ポート 2 ポート 2 は入出力ポートです。ポート 2 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 2 の構成 ポート 2 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P20/SEG28 ∼ P27/SEG35) • ポート 2 データレジスタ (PDR2) • ポート 2 方向レジスタ (DDR2) ■ ポート 2 の端子 表 8.5-1 ポート 2 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 入力 P20/SEG28 P20 SEG28 P21/SEG29 P21 SEG29 P22/SEG30 P22 SEG30 P23/SEG31 P23 P24/SEG32 P24 P25/SEG33 P25 SEG33 P26/SEG34 P26 SEG34 P27/SEG35 P27 SEG35 ポート 2 入出力 ポート 出力 LCD CMOS セグメント ( ヒステリシス ) SEG32 出力 回路 形式 SEG31 CMOS E <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 ■ ポート 2 のレジスタ ポート 2 のレジスタには , ポート 2 データレジスタ (PDR2) およびポート 2 方向レジス タ (DDR2) があります。各レジスタを構成するビットは , ポート 2 の端子に 1 対 1 で対 応しています。 表 8.5-2 ポート 2 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR2, DDR2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P27 P26 P25 P24 P23 P22 P21 P20 ポート 2 174 第 8 章 入出力ポート 8.5.1 ポート 2 のレジスタ (PDR2, DDR2) ポート 2 のレジスタについて説明します。 ■ ポート 2 のレジスタの機能 ● ポート 2 データレジスタ (PDR2) ポート 2 の端子ごとの出力値を設定します。 ● ポート 2 方向レジスタ (DDR2) ポート 2 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.5-3 ポート 2 のレジスタの機能 リードした場合 ライトした場合 レジスタ名 ビット値 入力ポート 入力ポート アドレス 初期値 000002H XXXXXXXXB 000012H 00000000B 出力ポート 0 端 子 状 態 が PDR2 レジス "L" レ ベ ル で タのビットに す。 "0"が設定され ています。 PDR2 レジス 端子より "L" タのビットに レベルを出力 "0" を設定し します。 ます。 1 端 子 状 態 が PDR2 レジス "H" レベルで タのビットに す。 "1"が設定され ています。 PDR2 レジス 端子より "H" タのビットに レベルを出力 "1" を設定し します。 ます。 0 DDR2 レジスタのビットに "0" 入力ポートになります。 が設定されています。 1 DDR2 レジスタのビットに "1" 出力ポートになります。 が設定されています。 ポート 2 データ レジスタ (PDR2) ポート 2 方向 レジスタ (DDR2) 出力ポート X: 不定 175 第 8 章 入出力ポート ポート 2 の動作説明 8.5.2 ポート 2 の動作を説明します。 ■ ポート 2 の動作 ● ポート 2 方向レジスタ (DDR2) で , 出力ポートに設定した場合 • ポート 2 データレジスタ (PDR2) に設定した値が , ポート 2 端子へ出力されます。 • ポート 2 データレジスタ (PDR2) を読み出した場合は , ポート 2 データレジスタ (PDR2) に設定されている値が読み出されます。 ● ポート 2 方向レジスタ (DDR2) で , 入力ポートに設定した場合 • ポート 2 端子はハイインピーダンスになります。 • ポート 2 データレジスタ (PDR2) に値を設定した場合は , ポート 2 データレジスタ (PDR2) に設定した値が保持されますが , 端子には出力されません。 • ポート 2 データレジスタ (PDR2) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 2 データレジスタ (PDR2) をアクセスする場合は , ポート 2 方向レジスタ (DDR2) で出力に 設定されているビットは影響を受けませんが , ポート 2 方向レジスタ (DDR2) で入力に設 定されているビットは , 端子の入力レベル値がポート 2 データレジスタ (PDR2) に書き込 まれますので , 入力に設定していたビットを出力に設定変更する場合は , ポート 2 データ レジスタ (PDR2) に出力値を設定した後に , ポート 2 方向レジスタ (DDR2) を出力に設定 してください。 ● セグメント出力の動作 セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに "1" を設定してください。汎用入出力ポートとしての機能が禁止され , セグメント出力 端子として機能します。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 2 方向レジスタ (DDR2) の値が "00H" に初期 化され , ポート 2 端子はハイインピーダンスになります。 • ポート 2 データレジスタ (PDR2) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート2データレジスタ(PDR2)に出力値を設定した後に, ポート 2 方向レジスタ (DDR2) を出力に設定する必要があります。 176 第 8 章 入出力ポート ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 2 方向レジスタ (DDR2) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 セグメント出力端子として機能している場合は , セグメント出力状態を保持します。 表 8.5-4 ポート 2 の端子状態 端子名 P20 ∼ P27 通常動作 入出力ポート ストップモード , タイムベースタイマモード , スリープモード 時計モード (SPL=0) ストップモード , タイムベースタイマモード , 時計モード (SPL=1) 入出力ポート 入力遮断 / 出力 Hi-Z 入力遮断 / レベル保持 SEG28 ∼ SEG35 セグメント出力 セグメント出力 セグメント出力 セグメント出力 SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 177 第 8 章 入出力ポート 8.6 ポート 3 ポート 3 は入出力ポートです。ポート 3 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 3 の構成 ポート 3 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P30/SEG36/SO3 ∼ P37/SEG43/OCU1) • ポート 3 データレジスタ (PDR3) • ポート 3 方向レジスタ (DDR3) ■ ポート 3 の端子 表 8.6-1 ポート 3 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 SEG36 P30/SEG36/ SO3 P30 SO3 SEG37 P31/SEG37/ SC3 P31 SC3 SEG38 ポート 3 P32/SEG38/ SI3 P32 P33/SEG39/ TMCK P33 P34/SEG40/ IC0 P34 P35/SEG41/ IC1 P35 P36/SEG42/ OCU0 P36 P37/SEG43/ OCU1 P37 SI3 入出力 ポート CMOS LCD セグメント出力 シリアル I/O ch.3 クロック入出力 LCD セグメント出力 シリアル I/O ch.3 データ入力 TMCK 時計クロック出力 SEG40 LCD セグメント出力 IC1 CMOS ( ヒステリ シス ) シリアル I/O ch.3 データ出力 LCD セグメント出力 SEG41 出力 LCD セグメント出力 SEG39 IC0 入力 インプットキャプチャ0 入力 LCD セグメント出力 インプットキャプチャ1 入力 SEG42 LCD セグメント出力 OCU0 アウトプットコンペア0出力 SEG43 LCD セグメント出力 OCU1 アウトプットコンペア1出力 <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 178 回路 形式 E 第 8 章 入出力ポート ■ ポート 3 のレジスタ ポート 3 のレジスタには , ポート 3 データレジスタ (PDR3) およびポート 3 方向レジス タ (DDR3) があります。各レジスタを構成するビットは , ポート 3 の端子に 1 対 1 で対 応しています。 表 8.6-2 ポート 3 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR3, DDR3 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P37 P36 P35 P34 P33 P32 P31 P30 ポート 3 179 第 8 章 入出力ポート 8.6.1 ポート 3 のレジスタ (PDR3, DDR3) ポート 3 のレジスタについて説明します。 ■ ポート 3 のレジスタの機能 ● ポート 3 データレジスタ (PDR3) ポート 3 の端子ごとの出力値を設定します。 ● ポート 3 方向レジスタ (DDR3) ポート 3 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.6-3 ポート 3 のレジスタの機能 リードした場合 レジスタ名 入力ポート X: 不定 180 出力ポート 入力ポート アドレス 初期値 000003H XXXXXXXXB 000013H 0 0 0 0 0 0 0 0B 出力ポート 0 端子状態が "L" PDR3 レジスタ レベルです。 のビットに "0" が設定されて います。 PDR3 レジスタ 端子より "L" レ のビットに "0" ベ ル を 出 力 し を設定します。 ます。 1 端子状態が "H" PDR3 レジスタ レベルです。 のビットに "1" が設定されて います。 PDR3 レジスタ 端子より "H" レ のビットに "1" ベ ル を 出 力 し を設定します。 ます。 0 DDR3 レジスタのビットに "0" が 設定されています。 1 DDR3 レジスタのビットに "1" が 出力ポートになります。 設定されています。 ポート 3 データ レジスタ (PDR3) ポート 3 方向 レジスタ (DDR3) ライトした場合 ビット値 入力ポートになります。 第 8 章 入出力ポート ポート 3 の動作説明 8.6.2 ポート 3 の動作を説明します。 ■ ポート 3 の動作 ● ポート 3 方向レジスタ (DDR3) で , 出力ポートに設定した場合 • ポート 3 データレジスタ (PDR3) に設定した値が , ポート 3 端子へ出力されます。 • ポート 3 データレジスタ (PDR3) を読み出した場合は , ポート 3 データレジスタ (PDR3) に設定されている値が読み出されます。 ● ポート 3 方向レジスタ (DDR3) で , 入力ポートに設定した場合 • ポート 3 端子はハイインピーダンスになります。 • ポート 3 データレジスタ (PDR3) に値を設定した場合は , ポート 3 データレジスタ (PDR3) に設定した値が保持されますが , 端子には出力されません。 • ポート 3 データレジスタ (PDR3) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 3 データレジスタ (PDR3) をアクセスする場合は , ポート 3 方向レジスタ (DDR3) で出力に 設定されているビットは影響を受けませんが , ポート 3 方向レジスタ (DDR3) で入力に設 定されているビットは , 端子の入力レベル値がポート 3 データレジスタ (PDR3) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 3 データレジスタ (PDR3) に出力値を設定した後に , ポート 3 方向レジスタ (DDR3) を出 力に設定してください。 ● セグメント出力の動作 セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに "1" を設定してください。汎用入出力ポートおよび周辺入出力端子としての機能が禁止 され , セグメント出力端子として機能します。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 3 方向レジスタ (DDR3) の値が "00H" に初期 化され , ポート 3 端子はハイインピーダンスになります。 • ポート 3 データレジスタ (PDR3) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート3データレジスタ(PDR3)に出力値を設定した後に, ポート 3 方向レジスタ (DDR3) を出力に設定する必要があります。 181 第 8 章 入出力ポート ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 3 方向レジスタ (DDR3) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 セグメント出力端子として機能している場合は , セグメント出力状態を保持します。 表 8.6-4 ポート 3 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベースタイマモード , 時計モード (SPL=0) ストップモード , タイムベースタイマモード , 時計モード (SPL=1) P30 ∼ P37 入出力ポート 入出力ポート 入力遮断 / レベル保持 入力遮断 / 出力 Hi-Z SEG36 ∼ SEG43 セグメント出力 セグメント出力 セグメント出力 セグメント出力 SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 182 第 8 章 入出力ポート 8.7 ポート 4 ポート 4 は入出力ポートです。ポート 4 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 4 の構成 ポート 4 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P40/LED0 ∼ P47/LED7/TOT2) • ポート 4 データレジスタ (PDR4) • ポート 4 方向レジスタ (DDR4) ■ ポート 4 の端子 表 8.7-1 ポート 4 の端子 入出力形式 ポート名 ポート 4 端子名 ポート機能 P40/LED0 P40 P41/LED1 P41 P42/LED2 P42 P43/LED3 P43 P44/LED4 P44 P45/LED5/ P45 TOT0 周辺機能 - 入出力 ポート 回路形式 入力 出力 CMOS ( ヒステ リシス ) CMOS - TOT0 リロードタイマ 0 イベント出力 P46/LED6/ P46 TOT1 TOT1 リロードタイマ 1 イベント出力 P47/LED7/ P47 TOT2 TOT2 リロードタイマ 2 イベント出力 F <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 ■ ポート 4 のレジスタ ポート 4 のレジスタには , ポート 4 データレジスタ (PDR4) およびポート 4 方向レジス タ (DDR4) があります。各レジスタを構成するビットは , ポート 4 の端子に 1 対 1 で対 応しています。 表 8.7-2 ポート 4 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR4, DDR4 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P47 P46 P45 P44 P43 P42 P41 P40 ポート 4 183 第 8 章 入出力ポート 8.7.1 ポート 4 のレジスタ (PDR4, DDR4) ポート 4 のレジスタについて説明します。 ■ ポート 4 のレジスタの機能 ● ポート 4 データレジスタ (PDR4) ポート 4 の端子ごとの出力値を設定します。 ● ポート 4 方向レジスタ (DDR4) ポート 4 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.7-3 ポート 4 のレジスタの機能 リードした場合 レジスタ名 ポート4データ レジスタ (PDR4) ポート 4 方向 レジスタ (DDR4) X: 不定 184 ライトした場合 ビット値 入力ポート 出力ポート 端子状態が "L" レベルです。 PDR4 レジスタ のビットに "0" が設定されて います。 PDR4 レジスタ 端子より "L" レ のビットに "0" ベ ル を 出 力 し を設定します。 ます。 1 端子状態が "H" PDR4 レジスタ レベルです。 のビットに "1" が設定されて います。 PDR4 レジスタ 端子より "H" レ のビットに "1" ベ ル を 出 力 し を設定します。 ます。 0 DDR4 レジスタのビットに "0" が 設定されています。 入力ポートになります。 1 DDR4 レジスタのビットに "1" が 設定されています。 出力ポートになります。 0 入力ポート アドレス 初期値 000004H XXXXXXXXB 000014H 0 0 0 0 0 0 0 0B 出力ポート 第 8 章 入出力ポート ポート 4 の動作説明 8.7.2 ポート 4 の動作を説明します。 ■ ポート 4 の動作 ● ポート 4 方向レジスタ (DDR4) で , 出力ポートに設定した場合 • ポート 4 データレジスタ (PDR4) に設定した値が , ポート 4 端子へ出力されます。 • ポート 4 データレジスタ (PDR4) を読み出した場合は , ポート 4 データレジスタ (PDR4) に設定されている値が読み出されます。 ● ポート 4 方向レジスタ (DDR4) で , 入力ポートに設定した場合 • ポート 4 端子はハイインピーダンスになります。 • ポート 4 データレジスタ (PDR4) に値を設定した場合は , ポート 4 データレジスタ (PDR4) に設定した値が保持されますが , 端子には出力されません。 • ポート 4 データレジスタ (PDR4) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 4 データレジスタ (PDR4) をアクセスする場合は , ポート 4 方向レジスタ (DDR4) で出力に 設定されているビットは影響を受けませんが , ポート 4 方向レジスタ (DDR4) で入力に設 定されているビットは , 端子の入力レベル値がポート 4 データレジスタ (PDR4) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 4 データレジスタ (PDR4) に出力値を設定した後に , ポート 4 方向レジスタ (DDR4) を出 力に設定してください。 ● LED 出力の動作 • LED 出力端子として使用する場合は , ポート 4 方向レジスタ (DDR4) で , 出力ポート に設定してください。 • ポート 4 データレジスタ (PDR4) に設定した値が , ポート 4 端子へ出力され , LED の ON/OFF を制御できます。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 4 方向レジスタ (DDR4) の値が "00H" に初期 化され , ポート 4 端子はハイインピーダンスになります。 • ポート 4 データレジスタ (PDR4) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート4データレジスタ(PDR4)に出力値を設定した後に, ポート 4 方向レジスタ (DDR4) を出力に設定する必要があります。 185 第 8 章 入出力ポート ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 4 方向レジスタ (DDR4) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 表 8.7-4 ポート 4 の端子状態 端子名 P40 ∼ P47 通常動作 入出力ポート スリープモード 入出力ポート ストップモード , タイムベースタイマモード , 時計モード (SPL=0) 入力遮断 / レベル保持 SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 186 ストップモード , タイムベースタイマモード , 時計モード (SPL=1) 入力遮断 / 出力 Hi-Z 第 8 章 入出力ポート 8.8 ポート 5 ポート 5 は入出力ポートです。ポート 5 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 5 の構成 ポート 5 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P50/SEG44/TIN0 ∼ P57/SI1) • ポート 5 データレジスタ (PDR5) • ポート 5 方向レジスタ (DDR5) ■ ポート 5 の端子 表 8.8-1 ポート 5 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 入力 P50/SEG44/ TIN0 P50 P51/SEG45/ TIN1 P51 P52/SEG46/ TIN2/PPG0 P52 入出力 ポート ポート 5 SEG44 LCDセグメント出力 TIN0 リロードタイマ 0 イベント入力 SEG45 LCDセグメント出力 TIN1 リロードタイマ 1 イベント入力 SEG46 LCDセグメント出力 TIN2 リロードタイマ 2 イベント入力 PPG0 PPG タイマ 0 出力 SEG47 LCDセグメント出力 PPG1 PPG タイマ 1 出力 P53/SEG47/ PPG1 P53 P54/SI0 P54 SI0 UART ch.0 データ入力 P55/SC0 P55 SC0 UART ch.0 クロック入出力 P56/SO0 P56 SO0 UART ch.0 データ出力 P57/SI1 P57 SI1 UART ch.1 データ入力 出力 回路 形式 E CMOS ( ヒステリシ ス) CMOS G <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 187 第 8 章 入出力ポート ■ ポート 5 のレジスタ ポート 5 のレジスタには , ポート 5 データレジスタ (PDR5) およびポート 5 方向レジス タ (DDR5) があります。各レジスタを構成するビットは , ポート 5 の端子に 1 対 1 で対 応しています。 表 8.8-2 ポート 5 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR5, DDR5 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P57 P56 P55 P54 P53 P52 P51 P50 ポート 5 188 第 8 章 入出力ポート 8.8.1 ポート 5 のレジスタ (PDR5, DDR5) ポート 5 のレジスタについて説明します。 ■ ポート 5 のレジスタの機能 ● ポート 5 データレジスタ (PDR5) ポート 5 の端子ごとの出力値を設定します。 ● ポート 5 方向レジスタ (DDR5) ポート 5 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.8-3 ポート 5 のレジスタの機能 リードした場合 レジスタ名 入力ポート 出力ポート 入力ポート アドレス 初期値 000005H XXXXXXXXB 000015H 0 0 0 0 0 0 0 0B 出力ポート PDR5 レジスタ PDR5 レジスタ 端 子よ り "L" のビットに "0" のビットに "0" レ ベ ル を 出 力 が設定されて を設定します。 します。 います。 0 端子状態が "L" レベルです。 1 PDR5 レジスタ PDR5 レジスタ 端 子よ り "H" 端子状態が"H" のビットに "1" のビットに "1" レ ベ ル を 出 力 レベルです。 が設定されて を設定します。 します。 います。 0 DDR5 レジスタのビットに "0" 入力ポートになります。 が設定されています。 1 DDR5 レジスタのビットに "1" 出力ポートになります。 が設定されています。 ポート5データ レジスタ (PDR5) ポート 5 方向 レジスタ (DDR5) ライトした場合 ビット値 X: 不定 189 第 8 章 入出力ポート ポート 5 の動作説明 8.8.2 ポート 5 の動作を説明します。 ■ ポート 5 の動作 ● ポート 5 方向レジスタ (DDR5) で , 出力ポートに設定した場合 • ポート 5 データレジスタ (PDR5) に設定した値が , ポート 5 端子へ出力されます。 • ポート 5 データレジスタ (PDR5) を読み出した場合は , ポート 5 データレジスタ (PDR5) に設定されている値が読み出されます。 ● ポート 5 方向レジスタ (DDR5) で , 入力ポートに設定した場合 • ポート 5 端子はハイインピーダンスになります。 • ポート 5 データレジスタ (PDR5) に値を設定した場合は , ポート 5 データレジスタ (PDR5) に設定した値が保持されますが , 端子には出力されません。 • ポート 5 データレジスタ (PDR5) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 5 データレジスタ (PDR5) をアクセスする場合は , ポート 5 方向レジスタ (DDR5) で出力に 設定されているビットは影響を受けませんが , ポート 5 方向レジスタ (DDR5) で入力に設 定されているビットは , 端子の入力レベル値がポート 5 データレジスタ (PDR5) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 5 データレジスタ (PDR5) に出力値を設定した後に , ポート 5 方向レジスタ (DDR5) を出 力に設定してください。 ● セグメント出力の動作 セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに "1" を設定してください。汎用入出力ポートおよび周辺入出力端子としての機能が禁止 され , セグメント出力端子として機能します。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 5 方向レジスタ (DDR5) の値が "00H" に初期 化され , ポート 5 端子はハイインピーダンスになります。 • ポート 5 データレジスタ (PDR5) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート5データレジスタ(PDR5)に出力値を設定した後に, ポート 5 方向レジスタ (DDR5) を出力に設定する必要があります。 190 第 8 章 入出力ポート ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 5 方向レジスタ (DDR5) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 セグメント出力端子として機能している場合は , セグメント出力状態を保持します。 表 8.8-4 ポート 5 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベースタイマモード , 時計モード (SPL=0) ストップモード , タイムベースタイマモード , 時計モード (SPL=1) P50 ∼ P57 入出力ポート 入出力ポート 入力遮断 / レベル保持 入力遮断 / 出力 Hi-Z SEG44 ∼ SEG47 セグメント出力 セグメント出力 セグメント出力 セグメント出力 SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 191 第 8 章 入出力ポート 8.9 ポート 6 ポート 6 は入出力ポートです。ポート 6 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 6 の構成 ポート 6 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P60/AN0 ∼ P67/AN7/INT2) • ポート 6 データレジスタ (PDR6) • ポート 6 方向レジスタ (DDR6) • アナログ入力許可レジスタ 0(ADER0) ■ ポート 6 の端子 表 8.9-1 ポート 6 の端子 入出力形式 ポート名 ポート 6 端子名 ポート機能 周辺機能 P60/AN0 P60 AN0 アナログ入力 P61/AN1 P61 AN1 アナログ入力 P62/AN2 P62 AN2 アナログ入力 P63/AN3 P63 AN3 アナログ入力 P64/AN4 P64 AN4 アナログ入力 AN5 アナログ入力 INT0 DTP/ 外部割込み 入力 AN6 アナログ入力 INT1 DTP/ 外部割込み 入力 AN7 アナログ入力 INT2 DTP/ 外部割込み 入力 P65/AN5/ INT0 P66/AN6/ INT1 P67/AN7/ INT2 P65 入出力 ポート P66 P67 回路形式 入力 出力 CMOS ( ヒステリ シス ) CMOS <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 192 I 第 8 章 入出力ポート <注意事項> 入力ポートとして使用する場合は , 対応するポート 6 方向レジスタ (DDR6) のビットに "0" を設定し , さらにアナログ入力許可レジスタ 0(ADER0) の対応するビットに "0" を設定し てください。 アナログ入力端子として使用する場合は , 対応するポート 6 方向レジスタ (DDR6) のビッ トに "0" を設定し , さらに , アナログ入力許可レジスタ 0(ADER0) の対応するビットに "1" を設定してください。 ■ ポート 6 のレジスタ ポート 6 のレジスタには , ポート 6 データレジスタ (PDR6) およびポート 6 方向レジス タ (DDR6) があります。各レジスタを構成するビットは , ポート 6 の端子に 1 対 1 で対 応しています。 表 8.9-2 ポート 6 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR6, DDR6 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P67 P66 P65 P64 P63 P62 P61 P60 ポート 6 193 第 8 章 入出力ポート ポート 6 のレジスタ (PDR6, DDR6) 8.9.1 ポート 6 のレジスタについて説明します。 ■ ポート 6 のレジスタの機能 ● ポート 6 データレジスタ (PDR6) ポート 6 の端子ごとの出力値を設定します。 ● ポート 6 方向レジスタ (DDR6) ポート 6 の端子ごとの入出力方向を設定します。 ● 端子に対応するビットに"1"を設定した場合は端子は出力ポートになり, "0"を設定した場合 は端子は入力ポートになります。 ● アナログ入力許可レジスタ 0(ADER0) 端子ごとに入出力ポートと , A/D コンバータのアナログ入力を設定できます。ポート ( 端子 ) に対応するビットに "1" を設定した場合は A/D コンバータのアナログ入力にな り , "0" を設定した場合は入出力ポートになります。 <注意事項> 入出力ポートに設定されている場合は , 中間レベルの信号が入力されると , 入力リーク電 流が流れますので , A/D コンバータのアナログ入力を行う場合は , 必ずアナログ入力許可 レジスタ 0(ADER0) の対応するビットを A/D コンバータのアナログ入力に設定してくだ さい。 <参考> リセットによりポート 6 方向レジスタ (DDR6) は "00H", アナログ入力許可レジスタ 0(ADER0) は "FFH" に初期化され , A/D コンバータのアナログ入力設定になります。 194 第 8 章 入出力ポート 表 8.9-3 ポート 6 のレジスタの機能 リードした場合 レジスタ名 入力ポート 出力ポート 入力ポート 0 1 端子状態が "H" PDR6 レジスタ PDR6 レジスタ 端子より"H"レ レベルです。 のビットに "1" のビットに "1" ベ ル を 出 力 し が 設 定 さ れ て を設定します。 ます。 います。 0 DDR6レジスタのビットに"0"が 入力ポートになります。 設定されています。 1 DDR6レジスタのビットに"1"が 出力ポートになります。 設定されています。 0 ADER0 レジスタのビットに "0" 入出力ポート が設定されています。 1 ADER0 レジスタのビットに "1" A/D コンバータのアナログ が設定されています。 入力 0 ∼ 7 ポート 6 方向 レジスタ (DDR6) アドレス 初期値 000006H XXXXXXXXB 000016H 0 0 0 0 0 0 0 0B 00001EH 1 1 1 1 1 1 1 1B 出力ポート 端子状態が "L" PDR6 レジスタ PDR6 レジスタ 端子より "L" レ レベルです。 のビットに "0" のビットに "0" ベ ル を 出 力 し が 設 定 さ れ て を設定します。 ます。 います。 ポート 6 データ レジスタ (PDR6) アナログ入力許可 レジスタ 0 (ADER0) ライトした場合 ビット値 X: 不定 195 第 8 章 入出力ポート ポート 6 の動作説明 8.9.2 ポート 6 の動作を説明します。 ■ ポート 6 の動作 ● ポート6方向レジスタ(DDR6) とアナログ入力許可レジスタ0(ADER0)で, 出力ポートに設定 した場合 • ポート 6 データレジスタ (PDR6) に設定した値が , ポート 6 端子へ出力されます。 • ポート 6 データレジスタ (PDR6) を読み出した場合は , ポート 6 データレジスタ (PDR6) に設定されている値が読み出されます。 ● ポート6方向レジスタ(DDR6) とアナログ入力許可レジスタ0(ADER0)で, 入力ポートに設定 した場合 • ポート 6 端子はハイインピーダンスになります。 • ポート 6 データレジスタ (PDR6) に値を設定した場合は , ポート 6 データレジスタ (PDR6) に設定した値が保持されますが , 端子には出力されません。 • ポート 6 データレジスタ (PDR6) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 6 データレジスタ (PDR6) をアクセスする場合は , ポート 6 方向レジスタ (DDR6) で出力に 設定されているビットは影響を受けませんが , ポート 6 方向レジスタ (DDR6) で入力に設 定されているビットは , 端子の入力レベル値がポート 6 データレジスタ (PDR6) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 6 データレジスタ (PDR6) に出力値を設定した後に , ポート 6 方向レジスタ (DDR6) を出 力に設定してください。 ● A/D コンバータのアナログ入力に設定する場合 A/D コンバータのアナログ入力として使用する場合は , A/D コンバータのアナログ入力 端子に対応するアナログ入力許可レジスタ 0(ADER0) のビットに "1" を設定してくださ い。A/D コンバータのアナログ入力に設定されている場合は , PDR の対応するビット をリードすると , 読出し値は "0" になります。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 6 方向レジスタ (DDR6) の値が "00H" に , アナ ログ入力許可レジスタ 0(ADER0) の値が "FFH" に初期化され , A/D コンバータのア ナログ入力に設定されます。入出力ポートとして使用する場合は , アナログ入力許 可レジスタ 0(ADER0) に "00H" を設定し , ポート入出力モードに設定してください。 196 第 8 章 入出力ポート • ポート 6 データレジスタ (PDR6) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート6データレジスタ(PDR6)に出力値を設定した後に, ポート 6 方向レジスタ (DDR6) を出力に設定する必要があります。 ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 6 方向レジスタ (DDR6) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 表 8.9-4 ポート 6 の端子状態 端子名 通常動作 スリープモード P60 ∼ P67 入出力ポート 入出力ポート AN0 ∼ AN7 A/D コンバータ アナログ入力 A/D コンバータ アナログ入力 INT0 ∼ INT2 外部割込み要求 外部割込み要求 ストップモード , タイムベースタイマモード , 時計モード (SPL=0) ストップモード , タイムベースタイマモード , 時計モード (SPL=1) 入力遮断 / レベル保持 入力遮断 / 出力 Hi-Z 入力遮断 / 出力保持 [ 外部割込み許可の場合は入力可能 ] 入力遮断 / 出力 Hi-Z [ 外部割込み許可の場合は入力可能 ] SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 197 第 8 章 入出力ポート 8.10 ポート 7 ポート 7 は入出力ポートです。ポート 7 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 7 の構成 ポート 7 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P70/AN8/INT3 ∼ P76) • ポート 7 データレジスタ (PDR7) • ポート 7 方向レジスタ (DDR7) • アナログ入力許可レジスタ 1 (ADER1) ■ ポート 7 の端子 表 8.10-1 ポート 7 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 入力 P70/AN8/ INT3 P70 P71/AN9/ SC1 P71 P72/AN10/ SO1 ポート 7 P73/AN11/ SI2 P74/SDA/ SC2 AN8 アナログ入力 INT3 DTP/ 外部割込み入力 AN9 アナログ入力 SC1 UART ch.1 クロック入出力 AN10 アナログ入力 SO1 UART ch.1 データ出力 AN11 アナログ入力 SI2 シリアル I/O ch.2 データ入力 SDA I2 C SC2 シリアル I/O ch.2 クロック入出力 SCL I2C SO2 シリアル I/O ch.2 データ出力 P72 P73 入出力 ポート P74 P75/SCL/ SO2 P75 P76 P76 - CMOS I N-ch オープン ドレイン H CMOS G CMOS ( ヒステリ シス ) - <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 198 出力 回路 形式 第 8 章 入出力ポート <注意事項> 入力ポートとして使用する場合は , 対応するポート 7 方向レジスタ (DDR7) のビットに "0" を設定し , さらにアナログ入力許可レジスタ 1(ADER1) の対応するビットに "0" を設定し てください。 アナログ入力端子として使用する場合は , 対応するポート 7 方向レジスタ (DDR7) のビッ トに "0" を設定し , さらに , アナログ入力許可レジスタ 1(ADER1) の対応するビットに "1" を設定してください。 ■ ポート 7 のレジスタ ポート 7 のレジスタには , ポート 7 データレジスタ (PDR7) およびポート 7 方向レジス タ (DDR7) があります。各レジスタを構成するビットは , ポート 7 の端子に 1 対 1 で対 応しています。 表 8.10-2 ポート 7 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR7, DDR7 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 − P76 P75 P74 P73 P72 P71 P70 ポート 7 199 第 8 章 入出力ポート ポート 7 のレジスタ (PDR7, DDR7) 8.10.1 ポート 7 のレジスタについて説明します。 ■ ポート 7 のレジスタの機能 ● ポート 7 データレジスタ (PDR7) ポート 7 の端子ごとの出力値を設定します。 ● ポート 7 方向レジスタ (DDR7) ポート 7 の端子ごとの入出力方向を設定します。 ● 端子に対応するビットに"1"を設定した場合は端子は出力ポートになり, "0"を設定した場合 は端子は入力ポートになります。 ● アナログ入力許可レジスタ 1(ADER1) 端子ごとに入出力ポートと , A/D コンバータのアナログ入力を設定できます。ポート ( 端 子 ) に対応するビットに "1" を設定した場合は A/D コンバータのアナログ入力になり , "0" を設定した場合は入出力ポートになります。 <注意事項> 入出力ポートに設定されている場合は , 中間レベルの信号が入力されると入力リーク電流 が流れますので , A/D コンバータのアナログ入力を行う場合は , 必ずアナログ入力許可レ ジスタ 1(ADER1) の対応するビットを A/D コンバータのアナログ入力に設定してくださ い。 <参考> リセットによりポート 7 方向レジスタ (DDR7) は "00H", アナログ入力許可レジスタ 1(ADER1) は "FFH" に初期化され , A/D コンバータのアナログ入力設定になります。 200 第 8 章 入出力ポート 表 8.10-3 ポート 7 のレジスタの機能 リードした場合 レジスタ名 入力ポート ポート 7 データ レジスタ (PDR7) ポート 7 方向 レジスタ (DDR7) アナログ入力許可 レジスタ 1 (ADER1) ライトした場合 ビット値 出力ポート 入力ポート アドレス 初期値 000007H -XXXXXXXB 000017H - 0 0 0 0 0 0 0B 00001FH - - - - 1 1 1 1B 出力ポート 0 端子状態が "L" PDR7 レジスタ PDR7 レジスタ 端子より "L" レ レベルです。 のビットに "0" のビットに "0" ベ ル を 出 力 し が 設 定 さ れ て を設定します。 ます。 います。 1 端子状態が "H" PDR7 レジスタ PDR7 レジスタ 端子より "H" レ レベルです。 のビットに "1" のビットに "1" ベ ル を 出 力 し が 設 定 さ れ て を設定します。 ます。 います。 0 DDR7 レジスタのビットに "0" が 入力ポートになります。 設定されています。 1 DDR7 レジスタのビットに "1" が 出力ポートになります。 設定されています。 0 ADER1 レジスタのビットに "0" 入出力ポート が設定されています。 1 ADER1 レジスタのビットに "1" が設定されています。 A/D コンバータ のアナログ 入力 8 ∼ 11 X: 不定 201 第 8 章 入出力ポート ポート 7 の動作説明 8.10.2 ポート 7 の動作を説明します。 ■ ポート 7 の動作 ● ポート7方向レジスタ(DDR7) とアナログ入力許可レジスタ1(ADER1)で, 出力ポートに設定 した場合 • ポート 7 データレジスタ (PDR7) に設定した値が , ポート 7 端子へ出力されます。 • ポート 7 データレジスタ (PDR7) を読み出した場合は , ポート 7 データレジスタ (PDR7) に設定されている値が読み出されます。 ● ポート7方向レジスタ(DDR7) とアナログ入力許可レジスタ1(ADER1)で, 入力ポートに設定 した場合 • ポート 7 端子はハイインピーダンスになります。 • ポート 7 データレジスタ (PDR7) に値を設定した場合は , ポート 7 データレジスタ (PDR7) に設定した値が保持されますが , 端子には出力されません。 • ポート 7 データレジスタ (PDR7) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 7 データレジスタ (PDR7) をアクセスする場合は , ポート 7 方向レジスタ (DDR7) で出力に 設定されているビットは影響を受けませんが , ポート 7 方向レジスタ (DDR7) で入力に設 定されているビットは , 端子の入力レベル値がポート 7 データレジスタ (PDR7) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 7 データレジスタ (PDR7) に出力値を設定した後に , ポート 7 方向レジスタ (DDR7) を出 力に設定してください。 ● A/D コンバータのアナログ入力に設定する場合 A/D コンバータのアナログ入力として使用する場合は , A/D コンバータのアナログ入力 端子に対応するアナログ入力許可レジスタ 1(ADER1) のビットに "1" を設定してくださ い。A/D コンバータのアナログ入力に設定されている場合は , DDR の対応するビット をリードすると , 読出し値は "0" になります。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 7 方向レジスタ (DDR7) の値が "00H" に , アナ ログ入力許可レジスタ 1(ADER1) の値が "FFH" に初期化され , A/D コンバータのア ナログ入力に設定されます。P70 ∼ P73 を入出力ポートとして使用する場合は , ア ナログ入力許可レジスタ 1(ADER1) に "00H" を設定し , ポート入出力モードに設定 してください。 202 第 8 章 入出力ポート • ポート 7 データレジスタ (PDR7) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート7データレジスタ(PDR7)に出力値を設定した後に, ポート 7 方向レジスタ (DDR7) を出力に設定する必要があります。 ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 7 方向レジスタ (DDR7) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 表 8.10-4 ポート 7 の端子状態 端子名 通常動作 スリープモード P70 ∼ P76 入出力ポート 入出力ポート AN8 ∼ AN11 A/D コンバータ アナログ入力 A/D コンバータ アナログ入力 INT3 外部割込み要求 外部割込み要求 ストップモード , タイムベースタイマモード , 時計モード (SPL=0) ストップモード , タイムベースタイマモード , 時計モード (SPL=1) 入力遮断 / レベル保持 入力遮断 / 出力 Hi-Z 入力遮断 / 出力保持 [外部割込み許可の場合は入力可能] 入力遮断 / 出力 Hi-Z [外部割込み許可の場合は入力可能] SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 203 第 8 章 入出力ポート 8.11 ポート 8 ポート 8 は入出力ポートです。ポート 8 の構成 , 端子のブロックダイヤグラム , レジ スタを示します。 ■ ポート 8 の構成 ポート 8 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P80/V0 ∼ P84/COM3) • ポート 8 データレジスタ (PDR8) • ポート 8 方向レジスタ (DDR8) ■ ポート 8 の端子 表 8.11-1 ポート 8 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 回路形式 入力 ポート 8 P80/V0 P80 P81/V1 P81 出力 V0 V1 入出力 ポート P82/V2 P82 P83/COM2 P83 COM2 P84/COM3 P84 COM3 J LCD 電圧入力 CMOS (ヒステリシス) V2 LCDコモン出力 CMOS E <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 <注意事項> P80 ∼ P82 を入出力ポートとして使用する場合は , LCDC 制御レジスタ (LCRH) の VS0 ビットに "1" を設定してください。 P83, P84 を入出力ポートとして使用する場合は , LCDC 制御レジスタ (LCRH) の CS1:CS0 ビットに "00B" を設定してください。 CPU がリセットされた場合は , ポート 8 方向レジスタ (DDR8) の値が "00H" に初期化され , P80 ∼ P82 端子は LCD 電源入力になります。 204 第 8 章 入出力ポート ■ ポート 8 のレジスタ ポート 8 のレジスタには , ポート 8 データレジスタ (PDR8) およびポート 8 方向レジス タ (DDR8) があります。各レジスタを構成するビットは , ポート 8 の端子に 1 対 1 で対 応しています。 表 8.11-2 ポート 8 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR8, DDR8 - - - bit4 bit3 bit2 bit1 bit0 対応する端子 - - - P84 P83 P82 P81 P80 ポート 8 205 第 8 章 入出力ポート 8.11.1 ポート 8 のレジスタ (PDR8, DDR8) ポート 8 のレジスタについて説明します。 ■ ポート 8 のレジスタの機能 ● ポート 8 データレジスタ (PDR8) ポート 8 の端子ごとの出力値を設定します。 ● ポート 8 方向レジスタ (DDR8) ポート 8 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.11-3 ポート 8 のレジスタの機能 リードした場合 レジスタ名 入力ポート X: 不定 206 出力ポート 入力ポート アドレス 初期値 000008H ---XXXXXB 000018H ---0 0 0 0 0B 出力ポート PDR8 レジスタ PDR8 レジスタ 端子より "L" レ の ビ ット に "0" のビ ッ トに "0" ベルを出力しま が設定されてい を設定します。 す。 ます。 0 端 子状 態 が "L" レベルです。 1 PDR8 レジスタ PDR8 レジスタ 端子より "H" レ 端子状態が "H" の ビ ット に "1" のビ ッ トに "1" ベルを出力しま レベルです。 が設定されてい を設定します。 す。 ます。 0 DDR8レジスタのビットに "0"が設 定されています。 入力ポートになります。 1 DDR8レジスタのビットに "1"が設 定されています。 出力ポートになります。 ポート8データ レジスタ (PDR8) ポート 8 方向 レジスタ (DDR8) ライトした場合 ビット値 第 8 章 入出力ポート ポート 8 の動作説明 8.11.2 ポート 8 の動作を説明します。 ■ ポート 8 の動作 ● ポート 8 方向レジスタ (DDR8) で , 出力ポートに設定した場合 • ポート 8 データレジスタ (PDR8) に設定した値が , ポート 8 端子へ出力されます。 • ポート 8 データレジスタ (PDR8) を読み出した場合は , ポート 8 データレジスタ (PDR8) に設定されている値が読み出されます。 ● ポート 8 方向レジスタ (DDR8) で , 入力ポートに設定した場合 • ポート 8 端子はハイインピーダンスになります。 • ポート 8 データレジスタ (PDR8) に値を設定した場合は , ポート 8 データレジスタ (PDR8) に設定した値が保持されますが , 端子には出力されません。 • ポート 8 データレジスタ (PDR8) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 8 データレジスタ (PDR8) をアクセスする場合は , ポート 8 方向レジスタ (DDR8) で出力に 設定されているビットは影響を受けませんが , ポート 8 方向レジスタ (DDR8) で入力に設 定されているビットは , 端子の入力レベル値がポート 8 データレジスタ (PDR8) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 8 データレジスタ (PDR8) に出力値を設定した後に , ポート 8 方向レジスタ (DDR8) を出 力に設定してください。 ● LCD 電源入力の動作 P80 ∼ P82 を LCD 電源入力端子として使用する場合は , LCDC 制御レジスタ (LCRH) の VS0 ビットに "0" を設定してください。汎用入出力ポートおよび周辺入出力端子とし ての機能が禁止され , コモン出力端子として機能します。 ● コモン出力の動作 P83, P84 をコモン出力として使用する場合は , LCDC 制御レジスタ (LCRH) の CS1 およ び CS0 ビットに "00B" 以外の値を設定してください。汎用入出力ポートおよび周辺入 出力端子としての機能が禁止され , コモン出力端子として機能します。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 8 方向レジスタ (DDR8) の値が "00H" に初期 化され , P80 ∼ P82 端子は LCD 電源入力になります。 • P83, P84 端子はハイインピーダンスになります。 207 第 8 章 入出力ポート • ポート 8 データレジスタ (PDR8) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート8データレジスタ(PDR8)に出力値を設定した後に, ポート 8 方向レジスタ (DDR8) を出力に設定する必要があります。 ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 8 方向レジスタ (DDR8) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 LCD 電源入力端子として機能している場合は , LCD 電源入力状態を保持します。 コモン出力端子として機能している場合は , コモン出力状態を保持します。 表 8.11-4 ポート 8 の端子状態 端子名 通常動作 スリープモード ストップモード , タイムベースタイマモード , 時計モード (SPL=0) ストップモード , タイムベースタイマモード , 時計モード (SPL=1) P80 ∼ P84 入出力ポート 入出力ポート 入力遮断 / レベル保持 入力遮断 / 出力 Hi-Z V0 ∼ V2 LCDC 電圧入力 LCDC 電圧入力 LCDC 電圧入力 LCDC 電圧入力 COM2, COM3 コモン出力 コモン出力 コモン出力 コモン出力 SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 208 第 8 章 入出力ポート 8.12 ポート 9 ポート 9 は入出力ポートで , 1 系統クロック品のみに存在します。ポート 9 の構成 , 端子のブロックダイヤグラム , レジスタを示します。 ■ ポート 9 の構成 ポート 9 は , 以下のように構成されています。 • 入出力ポート端子 / リソース入出力端子 (P90, P91) • ポート 9 データレジスタ (PDR9) • ポート 9 方向レジスタ (DDR9) ■ ポート 9 の端子 表 8.12-1 ポート 9 の端子 入出力形式 ポート名 端子名 ポート機能 周辺機能 入力 P90 P90 P91 P91 ポート 9 入出力 ポート - 出力 CMOS ( ヒステリ シス ) - CMOS 回路 形式 G <参考> 回路形式については , 「1.7 入出力回路形式」を参照してください。 ■ ポート 9 のレジスタ ポート 9 のレジスタには , ポート 9 データレジスタ (PDR9) およびポート 9 方向レジス タ (DDR9) があります。各レジスタを構成するビットは , ポート 9 の端子に 1 対 1 で対 応しています。 表 8.12-2 ポート 9 のレジスタと端子の対応 ポート名 関連するレジスタのビットと対応する端子 PDR9, DDR9 - - - - - - bit1 bit0 対応する端子 - - - - - - P91 P90 ポート 9 209 第 8 章 入出力ポート 8.12.1 ポート 9 のレジスタ (PDR9, DDR9) ポート 9 のレジスタについて説明します。 ■ ポート 9 のレジスタの機能 ● ポート 9 データレジスタ (PDR9) ポート 9 の端子ごとの出力値を設定します。 ● ポート 9 方向レジスタ (DDR9) ポート 9 の端子ごとの入出力方向を設定します。 端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し た場合は端子は入力ポートになります。 表 8.12-3 ポート 9 のレジスタの機能 リードした場合 レジスタ名 入力ポート 210 入力ポート アドレス 初期値 000009H ------XXB 000019H ------0 0B 出力ポート PDR9 レジスタの PDR9 レジスタ 端子より "L" レ ビットに "0" が設 のビットに "0" ベ ル を 出 力 し 定されています。 を設定します。 ます。 1 端子状態が "H" レ ベルです。 PDR9 レジスタの PDR9 レジスタ 端子より "H"レ ビットに "1" が設 のビットに "1" ベ ル を 出 力 し 定されています。 を設定します。 ます。 0 DDR9 レジスタのビットに "0" が設定 されています。 入力ポートになります。 1 DDR9 レジスタのビットに "1" が設定 されています。 出力ポートになります。 ポート 9 データ レジスタ (PDR9) X: 不定 出力ポート 端子状態が "L" レ ベルです。 0 ポート 9 方向 レジスタ (DDR9) ライトした場合 ビット値 第 8 章 入出力ポート ポート 9 の動作説明 8.12.2 ポート 9 の動作を説明します。 ■ ポート 9 の動作 ● ポート 9 方向レジスタ (DDR9) で , 出力ポートに設定した場合 • ポート 9 データレジスタ (PDR9) に設定した値が , ポート 9 端子へ出力されます。 • ポート 9 データレジスタ (PDR9) を読み出した場合は , ポート 9 データレジスタ (PDR9) に設定されている値が読み出されます。 ● ポート 9 方向レジスタ (DDR9) で , 入力ポートに設定した場合 • ポート 9 端子はハイインピーダンスになります。 • ポート 9 データレジスタ (PDR9) に値を設定した場合は , ポート 9 データレジスタ (PDR9) に設定した値が保持されますが , 端子には出力されません。 • ポート 9 データレジスタ (PDR9) を読み出した場合は , 端子の入力レベル値 ("L" の 場合は "0", "H" の場合は "1") が読み出されます。 <注意事項> リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 9 データレジスタ (PDR9) をアクセスする場合は , ポート 9 方向レジスタ (DDR9) で出力に 設定されているビットは影響を受けませんが , ポート 9 方向レジスタ (DDR9) で入力に設 定されているビットは , 端子の入力レベル値がポート 9 データレジスタ (PDR9) に書き込 まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート 9 データレジスタ (PDR9) に出力値を設定した後に , ポート 9 方向レジスタ (DDR9) を出 力に設定してください。 ● リセット時の動作 • CPU がリセットされた場合は , ポート 9 方向レジスタ (DDR9) の値が "00B" に初期 化され , ポート 9 端子はハイインピーダンスになります。 • ポート 9 データレジスタ (PDR9) は , リセットでは初期化されませんので , 出力ポー トとして使用する場合は, ポート9データレジスタ(PDR9)に出力値を設定した後に, ポート 9 方向レジスタ (DDR9) を出力に設定する必要があります。 ● ストップ , タイムベースタイマモード時 , 時計モード時の動作 ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電 力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている と , 端子はポート 9 方向レジスタ (DDR9) の値に関係なくハイインピーダンスになりま す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。 表 8.12-4 ポート 9 の端子状態 端子名 P90, P91 通常動作 入出力ポート スリープモード 入出力ポート ストップモード , タイムベースタイマモード , 時計モード (SPL=0) 入力遮断 / レベル保持 ストップモード , タイムベースタイマモード , 時計モード (SPL=1) 入力遮断 / 出力 Hi-Z SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) Hi-Z: ハイインピーダンス 211 第 8 章 入出力ポート 8.13 入出力ポートのプログラム例 入出力ポートを使ったプログラム例を示します。 ■ 入出力ポートのプログラム例 ● 処理仕様 • ポート 4, 5 で , 7 セグメント (Dp を含めると 8 セグメント )LED をすべて点灯します。 • P50 端子が LED のアノードコモン端子に , P40 ∼ P47 端子がセグメント端子に対応 します。 MB90800シリーズ P50 P47 P46 P45 P44 P43 P42 P41 P40 ● コーディング例 PDR4 EQU 000004H PDR5 EQU 000005H DDR4 EQU 000014H DDR5 EQU 000015H ;---------- メインプログラム -----------------------------------------------------CODE CSEG START: ; 初期設定済み MOV I:PDR5, #00000000B ; P50 を "L" レベルに設定 , #xxxxxxx0B MOV I:DDR5, #11111111B ; ポート 5 を全ビット出力に設定 MOV I:PDR4, #11111111B ; ポート 4 は全ビット "1" とする MOV I:DDR4, #11111111B ; ポート 4 を全ビット出力に設定 CODE ENDS ;-------------------------------------------------------------------------------END 212 START 第9章 シリアル I/O MB90800 シリーズのシリアル I/O の機能と動作に ついて説明します。 9.1 シリアル I/O の概要 9.2 シリアル I/O のレジスタ 9.3 シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) 9.4 シリアル I/O の動作 213 第 9 章 シリアル I/O 9.1 シリアル I/O の概要 シリアル I/O は , 8 ビット× 2 チャネル構成のクロック同期式によるデータ転送可能 なシリアル I/O です。また , データ転送において LSB ファースト /MSB ファースト の選択が可能です。 ■ シリアル I/O の概要 シリアル I/O の動作モードには , 以下の 2 種類があります。 ● 内部シフトクロックモード 内部クロック ( 通信プリスケーラ ) に同期してデータを転送します。 ● 外部シフトクロックモード 外部端子 (SC) から入力されるクロックに同期してデータを転送します。このモードで 外部端子 (SC) を共有している汎用ポートを操作することにより , CPU の命令 ( ポート 反転命令実行タイミング ) による転送動作も可能です。 ■ シリアル I/O のブロックダイヤグラム 図 9.1-1 シリアル I/O のブロックダイヤグラム 内部データバス (MSBファースト)D0~D7 D7~D0(LSBファースト) 転送方向選択 SI2,SI3 読出し 書込み SDR(シリアルシフトデータレジスタ) SO2,SO3 SC2,SC3 シフトクロック 制御回路 カウンタ 内部クロック (シリアルI/Oプリスケーラ(SDCR)) 2 (シリアルモードコント SMD2 ロールレジスタ(SMCS)) 1 0 SMD1 SMD0 SIE SIR BUSY STOP STRT MODE BDS SOE SCOE 割込み 要求 内部データバス <注意事項> シリアル I/O ch.2(SI2, SO2, SC2) には SMCS0, SDR0, SDCR0 が , ch.3(SI3, SO3, SC3) には SMCS1, SDR1, SDCR1 がそれぞれ対応します。 214 第 9 章 シリアル I/O 9.2 シリアル I/O のレジスタ シリアル I/O は , 以下のレジスタにて動作設定を行うことができます。 ・シリアルモードコントロールステータスレジスタ (SMCS0/SMCS1) 上位 ・シリアルモードコントロールステータスレジスタ (SMCS0/SMCS1) 下位 ・シリアルシフトデータレジスタ (SDR0/SDR1) ・シリアル I/O プリスケーラレジスタ (SDCR0/SDCR1) ■ シリアル I/O のレジスタ 図 9.2-1 シリアル I/O のレジスタ bit15.................................................bit8 bit7.................................................bit0 シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) シリアルシフトデータレジスタ (SDR0, SDR1) 215 第 9 章 シリアル I/O 9.2.1 シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) は , シリアル I/O の転送動作モードを制御するレジスタです。 ■ シリアルモードコントロールステータスレジスタ上位 (SMCS) 図 9.2-2 シリアルモードコントロールステータスレジスタ上位 (SMCS) bit 15 14 13 アドレス SMD2 SMD1 SMD0 000061H, 000065H R/W R/W R/W 12 11 SIE SIR R/W R/W 10 9 8 BUSY STOP STRT R/W R/W 初期値 00000010B R/W STRT スタートビット 0 シリアル転送停止 1 シリアル転送起動 ストップビット STOP 0 通常動作 1 転送停止 転送状態ビット BUSY 0 停止またはシリアルデータレジスタ R/W 待機状態 1 シリアル転送状態 シリアルI/O割込み要求フラグビット SIR 読出し時 割込み要求なし 割込み要求をクリア 1 割込み要求あり 動作に影響しません シリアルI/O割込み要求許可ビット SIE 0 割込み要求禁止 1 割込み要求許可 SMD2 SMD1 SMD0 0 216 0 シリアルシフトクロックモード設定ビット A 0 1.56MHz 1MHz 1MHz 2分周 0 0 1 0.78MHz 1 0 195kHz 500kHz 125kHz 500kHz 12.5kHz 4分周 0 0 1 1 97.5kHz 62.5kHz 62.5kHz 48.75kHz 31.25kHz 31.25kHz 16分周 32分周 1 0 0 1 0 1 1 0 1 1 1 1 R/W :リード/ライト可能 :初期値 書込み時 0 外部シフトクロックモード 予約 予約 8分周 第 9 章 シリアル I/O 表 9.2-1 シリアルモードコントロールステータスレジスタ上位 (SMCS) の各ビットの機能説明 ビット名 bit15 ∼ bit13 SMD2, SMD1, SMD0: シリアルシフト クロックモード 設定ビット 機能 ・シリアルシフトクロックモードを設定します。 ・SMD2, SMD1, SMD0 ビットと SDCR の設定によりシフトクロックの通 信速度を決めます。 ・シリアルシフトクロックモード設定ビットと SDCR の設定によりシフ トクロックの通信速度を決めます。 ・リセットにより "000B" に初期化されます。 ・転送中の書換えは禁止します ( 書き換えないでください ) 。 ・シフトクロックは内部シフトクロック 5 種類と , 外部シフトクロックが 設定できます。SMD2 ∼ SMD0=110B, 111B は予約領域ですので設定し ないでください。 ・クロック設定で SCOE=0 とし , SC 端子を共有しているポートを操作す ることによって命令ごとにシフト動作させることも可能です。 SIE: シリアル I/O 割込み要求許可 ビット ・シリアル I/O の割込み要求を許可するビットです。 ・"1" を設定した場合は , シリアル I/O 割込み要求フラグビット (SIR) に "1" がセットされると , 割込み要求を出力します。 ・リセットにより , "0" に初期化されます。 bit11 SIR: シリアル I/O 割込み要求 フラグビット ・シリアル I/O の割込み要求のフラグビットです。 ・シリアルデータの転送が終了した場合 , "1" にセットされます。 ・シリアル I/O 割込み要求許可ビット (SIE) を "1" に設定している場合は , "1" がセットされると , 割込み要求を CPU へ出力します。 ・MODE ビットに "0" が設定されている場合 , シリアル I/O 割込み要求フ ラグビット (SIR) に "0" を設定すると , 割込み要求がクリアされます。 ・MODE ビットに "1" が設定されている場合 , SDR レジスタの読出しまた は書込み動作により割込み要求フラグビットが "0" にクリアされます。 ・MODE ビットの値にかかわらずリセット , または STOP ビットへ "1" を 設定した場合は , 割込み要求フラグビットが "0" にクリアされます。 ・"0"を設定した場合は , 割込み要求フラグビットが "0"にクリアされます。 ・"1" を設定した場合は , 動作に影響しません。 ・リードした場合は , "1" が読み出されます。 bit10 BUSY: 転送状態ビット ・シリアル転送が実行中である場合 , "1" にセットされます。 ・リセットにより "0" に初期化されます。 bit9 STOP: ストップビット ・シリアル転送を強制的に中断させます。 ・"1" を設定した場合は , STOP=1 による停止状態となります。 ・リセットにより , "1" に初期化されます。 STRT: スタートビット ・シリアル転送の起動を行います。 ・停止状態で "1" を設定した場合は , 転送動作を開始します。 ・シリアル転送動作中およびシリアルシフトレジスタリード / ライト待機 中に "1" を設定した場合は , 書込み値を無視します。 ・"0" を設定した場合は , 動作に影響しません。 ・リードした場合は "0" が読み出されます。 bit12 bit8 217 第 9 章 シリアル I/O ■ シリアルモードコントロールステータスレジスタ下位 (SMCS0, SMCS1) 図 9.2-3 シリアルモードコントロールステータスレジスタ下位 (SMCS) bit アドレス 000060H, 000064H 7 6 5 4 3 2 1 0 初期値 - - - - MODE BDS SOE SC0E ----0000B - - - - R/W R/W R/W R/W SC0E 0 シフトクロック出力許可ビット 入出力ポート端子 1 シリアルデータ出力 SOE 0 シリアル出力許可ビット 入出力ポート端子 1 シフトクロック出力端子 BDS 0 転送方向設定ビット LSB ファースト(最下位ビットから転送) 1 MSB ファースト(最上位ビットから転送) MODE R/W 218 :リード/ライト可能 :初期値 0 シリアルモード設定ビット STRT=1で起動 1 シリアルデータレジスタ(SDR)の読出し/書込みで起動 第 9 章 シリアル I/O 表 9.2-2 シリアルモードコントロールステータスレジスタ下位 (SMCS) の各ビットの機能説明 ビット名 bit7 ∼ bit4 −: 未定義ビット 機能 ・読出しを行った場合は , 不定値となります。 ・設定した値は , 転送動作に影響しません。 MODE: シリアルモード 設定ビット ・停止状態から起動を行う場合の条件設定を行います。 ・"0" を設定した場合は , STRT=1 で起動します。 ・"1" を設定した場合は , シリアルデータレジスタ (SDR) のリード / ライ トを行うことにより転送動作を起動します。 ・転送動作中の書換えは禁止です。 ・リセットにより "0" に初期化されます。 ・拡張インテリジェント I/O サービスを起動する場合は "1" を設定して ください。 bit2 BDS: 転送方向設定 ビット ・シリアルデータの転送方向を設定します。 ・"0"を設定した場合は, 最下位ビット側から転送します(LSBファースト)。 ・"1" を設定した場合は , 最上位ビット側から転送します (MSB ファース ト )。 ・転送方向設定ビット (BDS) は , SDR レジスタにデータを書き込む前に 設定してください。 bit1 SOE: シリアル出力 許可ビット ・シリアル I/O 用出力外部端子 (SO2, SO3) の出力を制御します。 ・"0" を設定した場合は , 入出力ポート端子になります。 ・"1" を設定した場合は , シリアルデータ出力端子になります。 ・リセットにより "0" に初期化されます。 SC0E: シフトクロック 出力許可ビット ・シフトクロック用入出力外部端子 (SC2, SC3) の出力を制御します。 ・"0" を設定した場合は , 入出力ポート端子になります。 ・"1" を設定した場合は , シリアルデータ出力端子になります。 ・外部シフトクロックモードで命令ごとに転送を行う場合は , "0" を設定 してください。 ・リセットにより "0" に初期化されます。 bit3 bit0 219 第 9 章 シリアル I/O シリアルシフトデータレジスタ (SDR0, SDR1) 9.2.2 シリアルシフトデータレジスタ (SDR0, SDR1) は , シリアル I/O 転送データを格納す るレジスタです。転送動作中に SDR0, SDR1 レジスタへの書込みおよび読出しを行 わないでください。 ■ シリアルシフトデータレジスタ (SDR0, SDR1) 図 9.2-4 シリアルシフトデータレジスタ (SDR) bit アドレス 000062H, 000066H 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W:リード / ライト可能 220 初期値 XXXXXXXXB 第 9 章 シリアル I/O シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) 9.3 シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) は , シリアル I/O のシフトク ロックを提供します。 シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。 シリアル I/O は , この通信プリスケーラによって , システムによる個別のマシンク ロックに対して一定のボーレートが得られるように設計されています。SDCR0, SDCR1 レジスタ , マシンクロックの分周を制御するレジスタです。 ■ シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) 図 9.3-1 シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) bit アドレス 000063H, 000067H 15 MD 14 13 12 11 予約 10 DIV2 9 DIV1 8 DIV0 − − − R/W − − − R/W R/W R/W R/W 初期値 0---0000B R/W :リード / ライト可能 − :未定義ビット 表 9.3-1 シリアル I/O プリスケーラレジスタ (SDCR) の各ビットの機能説明 ビット名 機能 bit15 MD: 通信プリスケーラ 動作許可ビット ・通信プリスケーラの動作を許可するビットです。 ・"1" を設定した場合は , 通信プリスケーラは動作します。 ・"0" を設定した場合は , 通信プリスケーラは停止します。 bit14 ∼ bit12 −: 未定義ビット ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 bit11 予約: 予約ビット 必ず "0" を設定してください。 bit10 ∼ bit8 DIV2 ∼ DIV0: 分周比設定ビット ・マシンクロックの分周比を設定するビットです。 ・設定値については表 9.3-2 を参照してください。 221 第 9 章 シリアル I/O 表 9.3-2 通信プリスケーラ MD DIV2 DIV1 DIV0 div 0 - - - 停止 1 0 0 0 1 1 0 0 1 2 1 0 1 0 3 1 0 1 1 4 1 1 0 0 5 1 1 0 1 6 1 1 1 0 7 1 1 1 1 8 <注意事項> 分周比を変えた場合は , クロックの安定時間として , マシンクロックの 2 分周の時間待っ てから通信を行ってください。 222 第 9 章 シリアル I/O 9.4 シリアル I/O の動作 シリアル I/O は , シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1), シフトデータレジスタ (SDR0, SDR1) により構成されています。8 ビット のシリアルデータの入出力に使用します。 ■ シリアル I/O の動作 シリアルデータの入出力は , シフトデータレジスタの内容がシリアルシフトクロック ( 外部クロック , 内部クロック ) の立下りに同期して , ビット直列にシリアル出力端子 (SO 端子 ) に出力され , 立上りに同期してシリアル入力端子 (SI 端子 ) からビット直列 に SDR0, SDR1 レジスタに入力されます。シフトの方向 (MSB または LSB) は , シリア ルモードコントロールステータスレジスタ下位 (SMCS0, SMCS1) の転送方向設定ビッ ト (BDS) により設定できます。 転送が終了すると , シリアルモードコントロールステータスレジスタ下位 (SMCS0, SMCS1) のシリアルモード設定ビット (MODE) によって , 停止状態またはデータレジス タ R/W 待機状態に入ります。各々の状態から転送状態に移るには , 以下の設定を行い ます。 • 停止状態から復帰させる場合は , ストップビット (STOP) に "0", スタートビット (STRT) に "0" を設定します (STOP と STRT は同時設定が可能です )。 • シリアルデータレジスタ (SDR0, SDR1)R/W 待機状態からの復帰時は , データレジス タをリードまたはライトします。 223 第 9 章 シリアル I/O シフトクロック 9.4.1 シフトクロックは内部シフトクロックモード , 外部シフトクロックモードの 2 種類 があり , シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) で設定 します。モードの切換えは , シリアル I/O が停止した状態で行ってください。停止状 態の確認は , 転送状態ビット (BUSY) を読み出すことで可能です。 ■ 内部シフトクロックモード 内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク ロックを SC 端子から出力可能です。データが 1 クロックごとに 1 ビット転送されま す。転送の速度は , 次の式で表せます。 転送速度(s) = div × A マシンクロック周波数(Hz) A はシリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) のシリアルシ フトクロックモード設定ビット(SMD0∼SMD2)で示す分周比で, 2分周, 4分周, 16分周, 32 分周です。 div はシリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) の分周比設定ビット (DIV2 ∼ DIV0) で設定します。表 9.3-2 を参照してください。 ■ 外部シフトクロックモード 外部シフトクロックモードでは , SC 端子から入力される外部シフトクロックに同期し て , データが 1 クロックごとに 1 ビット 転送されます。転送速度は 1/5 マシンサイク ル以下まで可能です。 例えば , "1 マシンサイクル =0.1μs" の場合 , 2 MHz まで可能です。 命令ごとに転送することもでき , 次のような設定をすることによって実現します。 • 外部シフトクロックモードを設定し , シリアルモードコントロールステータスレジ スタ(SMCS0, SMCS1)のシフトクロック出力許可ビット(SCOE)に"0"を設定します。 • SC 端子を共有しているポートの方向レジスタに "1" を設定して , ポートを出力モー ドに設定します。 以上の設定をした後 , ポートデータレジスタ (PDR) に "1", "0" を設定すると , SC 端子に 出力されるポートの値を外部クロックとして取り込み , 転送動作を行います。シフトク ロックの開始は "H" レベルからスタートさせてください。 <注意事項> シ リア ル I/O 動作 中 の シリ ア ル モー ド コ ント ロ ー ルス テ ー タ スレ ジ ス タ (SMCS0, SMCS1), シリアルシフトデータレジスタ (SDR0, SDR1) への書込みは禁止です。 224 第 9 章 シリアル I/O 9.4.2 シリアル I/O の動作状態 シリアル I/O の動作状態として , 以下の状態があります。 ・STOP 状態 ・停止状態 ・SDR0, SDR1 レジスタの R/W 待機状態 ・転送状態 ■ STOP 状態 リセット時 , またはシリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) のストップビット (STOP) に "1" を設定した場合の状態で , シフトカウンタは初期化さ れ , SIR =0 となります。STOP 状態からの復帰は , STOP=0, STRT=1( 同時設定可能 ) と することによって行われます。ストップビット (STOP) はスタートビット (STRT) より 優先ビットですので STOP=1 の場合 , STRT=1 としても転送動作は行われません。 ■ 停止状態 シリアルモード設定ビット (MODE) が "0" の場合 , 転送が終了したことによってシリア ルモードコントロールステータスレジスタ (SMCS0, SMCS1) が BUSY=0, SIR =1 となり , カウンタが初期化され停止状態に入ります。停止状態からの復帰は STRT=1 にすると 転送動作が再開されます。 ■ シリアルデータレジスタリード / ライト待機状態 シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) のシリアルモード 設定ビット (MODE) が "1" の場合 , シリアル転送が終了すると , BUSY=0, SIR =1 とな り SDR0, SDR1 レジスタリード / ライト待機状態に入ります。割込み許可レジスタが許 可状態ならば , 本ブロックより割込み信号を出力します。 リード / ライト待機状態からの復帰は SDR0, SDR1 レジスタが読み出されたり , 書き込 まれたりすると BUSY=1 となり転送動作が再開されます。 ■ 転送状態 BUSY=1 でシリアル転送を行っている状態です。シリアルモード設定ビット (MODE) によりそれぞれ停止状態およびリード / ライト待機状態に遷移します。 225 第 9 章 シリアル I/O 図 9.4-1 シリアル I/O 動作遷移図 リセット STOP=0 & STRT=0 転送終了 STRT=0,BUSY=0 MODE=0 STOP=0 & STRT=1 MODE=0 & STOP=0 & 終了 STOP STOP=1 STOP=1 転送動作 STRT=1,BUSY=1 STRT=0,BUSY=0 STOP=1 STOP=0 & STRT=1 シリアルデータレジスタ R/W 待機 MODE=1&終了&STOP=0 STRT=1,BUSY=0 MODE=1 SDR の R/W & MODE=1 図 9.4-2 シリアルデータレジスタへのリード , ライト概念図 シ リ ア ル デ | タ データバス SO0,SO1 データバス リード ライト SI0,SI1 割込み出力 リード ライト (2) シリアルI/Oインタフェース (1) 割込み入力 データバス CPU 割込みコントローラ (1) MODE=1 の場合 , シフトクロックカウンタによって転送終了し , SIR =1 となって リード / ライト待機状態に入ります。シリアル I/O 割込み許可ビット (SIE) が "1" な らば割込み信号を発生します。ただし , シリアル I/O 割込み許可ビット (SIE) がイ ンアクティブの場合やストップビット (STOP) へ "1" を設定することによる転送中 断の場合は , 割込み信号は発生しません。 (2) シリアルシフトデータレジスタ (SDR0, SDR1) がリード / ライトされると , 割込み 要求はクリアされシリアル転送を開始します。 226 第 9 章 シリアル I/O 9.4.3 シフト動作のスタート / ストップタイミング シフト動作をスタートする場合には , シリアルモードコントロールステータスレジ スタ (SMCS0, SMCS1) のストップビット (STOP) に "0", スタートビット (STRT) に "1" を設定します。シフト動作のストップタイミングについては , STOP=1 によって 停止する場合と , 転送終了によって停止する場合があります。 ・STOP=1 により , 停止→シリアルモード設定ビット (MODE) に関係なく SIR=0 の まま停止します。 ・転送終了により , 停止→シリアルモード設定ビット (MODE) に関係なく SIR=1 と なり停止します。 転送状態設定ビット (BUSY) はシリアルモード設定ビット (MODE) に関係なくシリ アル転送状態の場合 "1" となり , 停止状態または R/W 待機状態の場合は "0" となり ます。転送状態を確認したい場合は , 転送状態設定ビット (BUSY) をリードしてくだ さい。 ■ シフト動作のスタート / ストップタイミング ● 内部シフトクロックモード (LSB ファースト ) 図 9.4-3 シフト動作のタイミング ( 内部クロック ) SC0,SC1 STRT "1"出力 (転送スタート) (転送終了) MODE=0の場合 BUSY SO0,SO1 DO0 ・・・ DO7(データ保持) ● 外部シフトクロックモード (LSB ファースト ) 図 9.4-4 シフト動作のタイミング ( 外部クロック ) SC0,SC1 STRT (転送スタート) (転送終了) MODE=0の場合 BUSY SO0,SO1 DO0 ・・・ DO7(データ保持) 227 第 9 章 シリアル I/O ● 外部シフトクロックモードで命令シフトを行った場合 (LSB ファースト ) 図 9.4-5 シフト動作のタイミング ( 外部シフトクロックモードで命令ごとにシフトさせた場合 ) SC0,1端子に対応する PDRレジスタのビット=0 SC0,SC1 SC0,1端子に対応する PDRレジスタのビット=0 SC0,1端子に対応するPDRレジスタのビット=1 STRT MODE=0の場合 BUSY SO0,SO1 ・・・ DO6 DO7(データ保持) ● STOP=1 による停止 (LSB ファースト , 内部クロック時 ) 図 9.4-6 ストップビット (STOP) を "1" とした場合のストップタイミング SC0,SC1 "1"出力 (転送スタート) STRT (転送停止) MODE=0の場合 BUSY STOP SO0,SO1 ・・・ DO3 DO4 DO5(データ保持) ( 注意事項 ) DO7 ∼ DO0 は出力データを示します。 ■ シリアルデータの入出力のタイミング シリアルデータの転送中は , シフトクロックの立下りエッジでシリアル出力端子 (SO) からデータが出力され , 立上りまたは立下りどちらかあらかじめ設定されたエッジに より , シリアル入力端子 (SI) からデータが入力されます。 図 9.4-7 シリアルデータの入出力のシフトタイミング ○ LSBファースト(BDSビットが"0"の場合) SC0,SC1 SI0,SI1 SI入力 DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7 DO3 DO4 DO5 DO6 DO7 SO出力 SO0,SO1 DO0 DO1 DO2 ○ MSBファースト(BDSビットが"1"の場合) SC0,SC1 SI0,SI1 SI入力 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 DO4 DO3 DO2 DO1 DO0 SO出力 SO0,SO1 228 DO7 DO6 DO5 第 9 章 シリアル I/O 9.4.4 シリアル I/O の割込み機能 シリアル I/O は , CPU に対し割込み要求を出力できます。データの転送が終了した 場合 , 割込みフラグであるシリアル I/O 割込み要求フラグビット (SIR) が "1" にセッ トされ , 割込みを許可するシリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) のシリアル I/O 割込み許可ビット (SIE) が "1" の場合 , CPU へ割 込み要求を出力します。 ■ シリアル I/O の割込み機能 図 9.4-8 シリアル I/O の割込み信号出力タイミング SC0,SC1 (転送終了) BUSY (注意事項) MODE=1の場合 SIE=1 SIR SDRの リード/ライト SO0,SO1 DO6 DO7(データ保持) 229 第 9 章 シリアル I/O 230 第 10 章 タイムベースタイマ MB90800 シリーズのタイムベースタイマの機能と 動作について説明します。 10.1 タイムベースタイマの概要 10.2 タイムベースタイマの構成 10.3 タイムベースタイマ制御レジスタ (TBTC) 10.4 タイムベースタイマの割込み 10.5 タイムベースタイマの動作説明 10.6 タイムベースタイマ使用上の注意 231 第 10 章 タイムベースタイマ 10.1 タイムベースタイマの概要 タイムベースタイマは , メインクロックに同期してカウントアップする 18 ビットの フリーランカウンタです。4 種類のインターバル時間を設定できるインターバルタ イマ機能と , 発振安定待ち時間用のタイマ , ウォッチドッグタイマ , および時計ク ロック出力回路にクロックを供給する機能があります。 ■ インターバルタイマ機能 インターバルタイマ機能は , 一定の時間間隔で割込み要求を出力する機能です。 • タイムベースタイマカウンタのインターバルタイマカウンタがオーバフローした 場合に割込み要求を出力します。 • インターバルタイマのインターバル時間は , 4 種類の中から設定できます。 表 10.1-1 タイムベースタイマのインターバル時間 メインクロック周期 インターバル時間 212/HCLK( 約 0.65 ms) 2/HCLK(0.32 μs) 214/HCLK( 約 2.62 ms) 216/HCLK( 約 10.48 ms) 219/HCLK( 約 83.88 ms) HCLK: 発振クロック周波数 ( ) 内の値は , 発振クロック周波数 6.25 MHz の場合です。 232 第 10 章 タイムベースタイマ ■ クロック供給機能 クロック供給機能は , 発振安定待ち時間用のタイマや , 一部の周辺機能に対する動作ク ロックを供給する機能です。 表 10.1-2 タイムベースタイマから供給されるクロック周期 クロック 供給先 クロック周期 213/HCLK( 約 1.31 ms) 発振安定待ち 時間 備考 セラミック振動子用発振安定待ち時間 215/HCLK( 約 5.24 ms) 水晶振動子用発振安定待ち時間 218/HCLK( 約 41.94 ms) 212/HCLK( 約 0.65 ms) ウォッチ ドッグタイマ 214/HCLK( 約 2.62 ms) 216/HCLK( 約 10.48 ms) ウォッチドッグタイマ のカウントアップクロック 219/HCLK( 約 83.88 ms) HCLK: 発振クロック周波数 ( ) 内の値は , 発振クロック周波数 6.25 MHz の場合です。 <参考> 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安となります。 233 第 10 章 タイムベースタイマ 10.2 タイムベースタイマの構成 タイムベースタイマは , 以下のブロックで構成されています。 ・タイムベースタイマカウンタ ・カウンタクリア回路 ・インターバルタイマセレクタ ・タイムベースタイマ制御レジスタ (TBTC) ■ タイムベースタイマのブロックダイヤグラム 図 10.2-1 タイムベースタイマのブロックダイヤグラム ウォッチドッグ タイマへ タイムベース PPGタイマへ タイマカウンタ HCLKの2分周 ×21 ×22 … ×28 ×29 ×210 ×211×212×213 ×214×215 ×216 ×217×218 OF パワーオンリセット ストップモード開始 ホールド状態開始 CKSCR:MCS=1→0*1 CKSCR:SCS=0→1*2 OF OF OF クロック制御部 発振安定待ち 時間セレクタへ カウンタ クリア 制御回路 インターバル タイマセレクタ TBOF セット TBOFクリア タイムベースタイマ制御レジスタ 予約 (TBTC) タイムベースタイマ割込み信号 - - TBIE TBOF TBR TBC1 TBC0 :未定義ビット OF :オーバフロー HCLK :発振クロック *1 :マシンクロックをメインクロック,またはサブクロックからPLLクロックへ切換え *2 :マシンクロックをサブクロックからメインクロックへ切換え ● タイムベースタイマカウンタ メインクロックをカウントクロックとする 18 ビットのアップカウンタです。 ● カウンタクリア回路 タイムベースタイマ制御レジスタ (TBTC) のタイムベースタイマ初期化ビット (TBR) へ の "0" 設定 , パワーオンリセット , ストップモードへの遷移 (LPMCR:STP=1), およびマ シンクロックをメインクロックから PLL クロックへ切換え (CKSCR:MCS=1 → 0) でタ イムベースタイマカウンタをクリアする回路です。 ● インターバルタイマセレクタ タイムベースタイマカウンタの 4 つのインターバルタイマ用ビットの出力から 1 つを 設定します。設定したインターバルタイマ用ビットのオーバフローが割込み要因とな ります。 ● タイムベースタイマ制御レジスタ (TBTC) インターバル時間の設定 , タイムベースタイマカウンタのクリア , 割込み要求の制御お よび状態を確認します。 234 第 10 章 タイムベースタイマ タイムベースタイマ制御レジスタ (TBTC) 10.3 タイムベースタイマ制御レジスタ (TBTC) は , インターバル時間の設定 , タイムベース タイマカウンタのクリア , 割込み要求の制御および状態の確認をするレジスタです。 ■ タイムベースタイマ制御レジスタ (TBTC) 図 10.3-1 タイムベースタイマ制御レジスタ (TBTC) bit アドレス 0000A9H 15 14 13 12 11 予約 - - TBIE TBOF TBR TBC1 TBC0 R/W - - R/W R/W R/W R/W 10 9 8 初期値 1--00100 B R/W インターバル時間設定ビット TBC1 TBC0 12 0 0 2 /HCLK(約 0.65ms) 0 1 1 ( 1 214/HCLK(約 2.62ms) 0 216/HCLK(約 10.48ms) 1 219/HCLK(約 83.88ms) )内の値は,発振クロック周波数6.25MHzの場合です。 TBR タイムベースタイマ初期化ビット 0 1 タイムベースタイマカウンタ,割込み要求をクリア 動作に影響しません。 TBOF 割込み要求フラグビット リード時 ライト時 0 1 TBIE 0 1 割込み要求なし 割込み要求あり 割込み要求をクリア 動作に影響しません。 割込み要求許可ビット 割込み要求禁止 割込み要求許可 予約ビット 必ず"1"を設定してください。 予約 R/W :リード/ライト可能 :未定義ビット :初期値 HCLK :発振クロック周波数 235 第 10 章 タイムベースタイマ 表 10.3-1 タイムベースタイマ制御レジスタ (TBTC) の各ビットの機能説明 ビット名 機能 bit15 予約 : 予約ビット 必ず "1" を設定してください。 bit14, bit13 −: 未定義ビット ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 bit12 TBIE: 割込み要求 許可ビット ・割込み要求を許可するビットです。 ・ "1" を設定した場合は割込み要求フラグビット (TBOF) に , "1" が セットされた場合は CPU へ割込み要求を出 力します。 TBOF: 割込み要求 フラグビット ・割込み要求のフラグビットです。 ・タイムベースタイマカウンタに設定したインターバルタ イマ用ビットのオーバフローで , "1" がセットされます。 割込み要求許可ビット (TBIE) に "1" を設定している場 合は , CPU へ割込み要求を出力します。 ・"0" を設定した場合は , 割込み要求フラグを "0" にクリア します。 ・"1" を設定した場合は , 動作に影響しません。 ( 注意事項 ) ・ "0" を設定する場合は , 割込み要求許可ビット (TBIE), ま たはプロセッサステータス (PS) のインタラプトレベルマ スクレジスタ (ILM) を割込み禁止に設定してください。 ・ストップモードへの遷移 , タイムベースタイマ初期化 ビット (TBR)によるタイムベースタイマのクリアおよび リセットにより , "0" にクリアされます。 bit11 ・タイムベースタイマカウンタをクリアするビットです。 ・ "0" を設定した場合は , タイムベースタイマカウンタが "00000H" にクリアされ , 割込み要求フラグビット (TBOF) bit10 TBR: タイムベース タイマ初期化 ビット bit9, bit8 TBC1, TBC0: ・インターバルタイマの周期を設定するビットです。 イ ン タ ー バ ル ・タイムベースタイマカウンタのインターバルタイマ用の ビットを指定します。 時間設定 ・4 種類のインターバル時間から設定できます。 ビット 236 も "0" にクリアされます。 ・"1" を設定した場合は , 動作に影響しません。 [ 参考 ] 読出し値は , "1" です。 第 10 章 タイムベースタイマ 10.4 タイムベースタイマの割込み インターバル時間設定ビットにて選択されたインターバルタイマカウンタがオーバ フローすることにより , 割込み要求を出力させることができます ( インターバルタイ マ機能 )。 ■ タイムベースタイマの割込み タイムベースタイマカウンタがメインクロックでカウントアップし , 設定されたイン ターバルタイマがオーバフローした場合に , タイムベースタイマ制御レジスタ (TBTC) の割込み要求フラグビット (TBOF) が "1" にセットされます。割込み要求許可ビットを 許可 (TBTC:TBIE=1) している状態で , 割込み要求フラグビットが "1" にセットされた 場合 , CPU へ割込み要求 ( 割込み番号 #34) を出力し , 割込み処理ルーチンを実行しま す。割込み処理ルーチンでは , 割込み要求フラグビット (TBOF) に "0" を設定し , 割込 み要求をクリアしてください。割込み要求フラグビット (TBOF) は , 割込み要求許可 ビット (TBIE) の値に関係なく , 設定したインターバルタイマ用ビットがオーバフロー した場合に , "1" がセットされます。 <参考> タイムベースタイマでは , 拡張インテリジェント I/O サービス (EI2OS) は使用できません。 ■ タイムベースタイマの割込みと EI2OS 表 10.4-1 タイムベースタイマの割込みと EI2OS 割込みレベル設定レジスタ ベクタテーブルのアドレス EI2OS 割込み番号 #33(21H) レジスタ名 アドレス 下位 上位 バンク ICR11 0000BBH FFFF78H FFFF79H FFFF7AH × × : 使用不可 237 第 10 章 タイムベースタイマ 10.5 タイムベースタイマの動作説明 インターバルタイマ機能の動作 , 発振安定待ち時間用のタイマ機能 , およびクロック 供給機能について示します。 ■ インターバルタイマ機能 ( タイムベースタイマ ) の動作 インターバルタイマ機能は , 設定されたインターバル時間ごとに割込み要求を出力し ます。インターバルタイマとして動作させるには , 図 10.5-1 に示すような設定が必要 です。 図 10.5-1 タイムベースタイマの設定 bit TBTC 15 14 13 予約 1 − − − − 12 TBIE ◎ 11 TBOF 0 10 TBR 0 9 TBC1 ◎ 8 TBC0 ◎ ◎:使用ビット 0 :"0" を設定 1 :"1" を設定 - :未定義ビット • タイムベースタイマカウンタは , クロックが発振していればカウントアップを継続 します。 • タイムベースタイマカウンタがクリア (TBTC:TBR=0) された場合は , "000000000000000000B"からカウントアップを行い, 設定されたインターバルタイマ 用ビットがオーバフローした場合に, タイムベースタイマ制御レジスタ(TBTC)の割 込み要求フラグビット (TBOF) に "1" がセットされます。オーバフローした場合に , 割込み要求許可ビットを許可 (TBIE=1) している場合は , カウンタがクリアされた時 間を基準にして , 設定されたインターバル時間ごとに割込み要求を出力します。 • インターバル時間は , タイムベースタイマカウンタのクリア動作により , 設定時間 よりも長くなる場合があります。 ■ 発振安定待ち時間用タイマ機能 タイムベースタイマは , 発振クロックの発振安定待ち時間 , および PLL クロックの発 振安定待ち時間用のタイマとしても使用されます。発振安定待ち時間は , タイムベース タイマカウンタ値が "000000000000000000B"( カウンタクリア ) からカウントアップし , 発振安定待ち時間を検出するまでの時間となります。タイムベースタイマモードから PLL クロックモードへ復帰する場合は , タイムベースタイマカウンタがクリアされな いため , 発振安定待ち時間はカウント途中からの時間となります。 238 第 10 章 タイムベースタイマ 表 10.5-1 タイムベースタイマカウンタのクリア動作と発振安定待ち時間 動作 カウンタ クリア 割込み要求 フラグビット (TBOF) クリア 発振安定待ち時間 TBTC:TBR に "0" を設定する ○ ○ − ○ ○ 発振クロック発振安定待ち時間 ストップモードの解除 ○ ○ 発振クロック発振安定待ち時間 ( メインクロックモード復帰時 ) 発振クロックモードから PLLクロックモードへの遷移 (MCS = 1 → 0) ○ ○ PLL クロック発振安定待ち時間 タイムベースタイマモードの 解除 × × PLL クロック発振安定待ち時間 (PLL クロックモード復帰時 ) スリープモードの解除 × × − パワーオンリセット ウォッチドッグリセット ○ : クリアを行う。 × : クリアを行わない。 ■ クロック供給機能 タイムベースタイマは , ウォッチドッグタイマにクロックを供給しています。タイム ベースタイマカウンタをクリアした場合は , ウォッチドッグタイマの動作に影響を与 えます。詳細は , 「10.6 タイムベースタイマ使用上の注意」を参照してください。 ■ タイムベースタイマの動作 次の状態の動作を図 10.5-2 に示します。 • パワーオンリセットが発生した場合 • インターバルタイマ機能の動作中にスリープモードへ遷移した場合 • ストップモードへ遷移した場合 • タイムベースタイマカウンタクリアの要求があった場合 ストップモードへ遷移した場合 , タイムベースタイマカウンタはクリアされ , タイム ベースタイマカウンタは停止します。ストップモードからの復帰を行う場合は , タイム ベースタイマカウンタで発振安定待ち時間をカウントします。 239 第 10 章 タイムベースタイマ 図 10.5-2 タイムベースタイマの動作 カウンタ値 3FFFFH ストップモードへの 遷移によるクリア 発振安定待ち オーバフロー 00000H CPU動作開始 パワーオンリセット (オプション) インターバル周期 (TBTC:TBC1,TBC0=11 B ) カウンタクリア (TBTC:TBR=0) 割込み処理ルーチンでクリア TBOFビット TBIEビット SLPビット (LPMCRレジスタ) スリープ インターバル割込みスリープ解除 ストップ STPビット (LPMCRレジスタ) 外部割込みによるストップ解除 タイムベースタイマ制御レジスタのインターバル時間設定ビット(TBC:TBC1,TBC0)に"11B"(219/HCLK) を設定した場合。 :発振安定待ち時間 HCLK :発振クロック周波数 240 第 10 章 タイムベースタイマ 10.6 タイムベースタイマ使用上の注意 割込み要求のクリアおよびタイムベースタイマカウンタのクリアによる機能への影 響などの注意点を示します。 ■ タイムベースタイマ使用上の注意 ● 割込み要求のクリア タイムベースタイマ制御レジスタ (TBTC) の割込み要求フラグビット (TBOF) を "0" に クリアする場合は , 割込み要求許可ビット (TBIE), またはプロセッサステータス (PS) の インタラプトレベルマスクレジスタ (ILM) を割込み禁止に設定してください。 ● タイムベースタイマカウンタのクリアにより影響を受ける機能 • インターバルタイマ機能 ( インターバル割込み ) • ウォッチドッグタイマ • 時計クロック出力回路 ● タイムベースタイマカウンタより , クロックを供給される機能への注意 動作クロックが停止するストップモードでは , タイムベースタイマカウンタはクリア され , タイムベースタイマカウンタは停止します。タイムベースタイマカウンタより供 給されていたクロックは , タイムベースタイマカウンタがクリアされた場合に , 初期状 態からの供給となるため , "H" レベルが短く , あるいは "L" レベルが最大で 1/2 周期長 くなる場合があります。ウォッチドッグタイマ用のクロックも同様に , 初期状態からの 供給となりますが , ウォッチドッグタイマのカウンタが同時にクリアされるため , ウォッチドッグタイマは正常な周期で動作します。 ● 発振安定待ち時間用タイマとして使用する場合 電源投入およびストップモードの場合は , 発振クロックが停止しているため , 振動子が 動作を開始した後 , タイムベースタイマカウンタが発振子から供給されるクロックを 使用して動作クロックの発振安定待ち時間を確保します。振動子の種類によって , 適切 な発振安定待ち時間を設定する必要があります。 詳細は , 「4.5 発振安定待ち時間」を参照してください。 241 第 10 章 タイムベースタイマ 242 第 11 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明 します。 11.1 ウォッチドッグタイマの概要 11.2 ウォッチドッグタイマ制御レジスタ (WDTC) 11.3 ウォッチドッグタイマの構成 11.4 ウォッチドッグタイマの動作 11.5 ウォッチドッグタイマ使用上の注意 11.6 ウォッチドッグタイマのプログラム例 243 第 11 章 ウォッチドッグタイマ 11.1 ウォッチドッグタイマの概要 ウォッチドッグタイマは , タイムベースタイマまたは時計タイマの出力をカウント クロックとする 2 ビットのカウンタで , 起動後 , 一定時間内にクリアされない場合 , CPU をリセットします。 ■ ウォッチドッグタイマ機能 ウォッチドッグタイマは , プログラム暴走対策用のカウンタです。一度起動すると一定 時間内で定期的にクリアし続ける必要があります。プログラムが無限ループに陥るな どして , 一定時間以上クリアされない場合 , CPU に対してウォッチドッグリセットを発 生します。ウォッチドッグタイマのインターバル時間は , 表 11.1-1 に示すように , ウォッチドッグタイマ制御レジスタ (WDTC) の WT1, WT0 ビットで設定できます。 ウォッチドッグタイマがクリアされない場合 , 最小時間から最大時間の間にウォッチ ドッグリセットが発生します。この表の最小時間内にカウンタをクリアしてください。 表 11.1-1 ウォッチドッグタイマのインターバル時間 WT1 WDCS & SCM WT0 インターバル時間 クロックサイクル数 最小 * 最大 * 0 0 1 約 2.29 ms 約 2.94 ms 214 ± 211 HCLK サイクル 0 1 1 約 9.17 ms 約 11.79 ms 216 ± 213 HCLK サイクル 1 0 1 約 36.7 ms 約 47.18 ms 218 ± 21 5HCLK サイクル 1 1 1 約 293.6 ms 約 377.48 ms 221 ± 21 8HCLK サイクル 0 0 0 約 0.448 s 約 0.576 s 212 ± 29 SCLK サイクル 0 1 0 約 3.584 s 約 4.608 s 215 ± 212 SCLK サイクル 1 0 0 約 7.168 s 約 9.216 s 216 ± 213 SCLK サイクル 1 1 0 約 14.336 s 約 18.432 s 217 ± 21 4SCLK サイクル * : 発振クロック (HCLK) 6.25 MHz, サブクロック (SCLK) 32 kHz の 4 分周 (=8 kHz) 動作時の値です。 ウォッチドッグタイマインターバル時間の最大, 最小および発振クロックサイクル数は, クリアの タイミングで決まります。インターバル時間は , カウントクロック ( タイムベースタイマの供給 クロック ) 周期の 3.5 ∼ 4.5 倍になります。ウォッチドッグタイマインターバル時間については , 「11.4 ウォッチドッグタイマの動作」を参照してください。 244 第 11 章 ウォッチドッグタイマ <注意事項> ウォッチドッグカウンタは , タイムベースタイマの桁上り信号をカウントする 2 ビットカ ウンタによって構成されています。したがって , タイムベースタイマがクリアされると , ウォッチドッグリセットの発生時間が設定した時間より長くなることがあります。 <参考> ウォッチドッグタイマは起動されると , パワーオン , ウォッチドッグによるリセットで初 期化され , 停止状態になります。また , 外部端子によるリセット , ソフトウェアリセット , ウォッチドッグタイマ制御レジスタのウォッチドッグ制御ビット (WTE) への書込み , ス リープモードへの遷移 , ストップモードへの遷移および時計モードへの遷移でウォッチ ドッグカウンタはクリアされますが , ウォッチドッグタイマは起動したままです。 245 第 11 章 ウォッチドッグタイマ 11.2 ウォッチドッグタイマ制御レジスタ (WDTC) ウォッチドッグタイマ制御レジスタ (WDTC) は , ウォッチドッグタイマの起動 , クリ ア , およびリセット要因の表示を行うレジスタです。 ■ ウォッチドッグタイマ制御レジスタ (WDTC) 図 11.2-1 にウォッチドッグタイマ制御レジスタ (WDTC) を , 表 11.2-1 にウォッチドッ グタイマ制御レジスタ (WDTC) の各ビットの機能を示します。 図 11.2-1 ウォッチドッグタイマ制御レジスタ (WDTC) アドレス 0000A8H bit15 bit8 (TBTC) bit7 bit6 PONR - R/W - bit5 bit4 bit3 bit2 bit1 WRST ERST SRST WTE WT1 WT0 R/W R/W R/W R/W 初期値 bit0 X-XXX1111B R/W R/W インターバル時間選択ビット(HCLK: 6.25 MHz SCLK: 8 kHz動作時) インターバル時間 WT1 WT0 WDCS & SCM 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 最小 発振クロックサイクル数 最大 約2.29 ms 約2.94 ms 214 ± 211 HCLKサイクル 約9.17 ms 約11.79 ms 216 ± 213 HCLKサイクル 約36.7 ms 約47.18 ms 約293.6 ms 約377.48 ms 218 ± 215 HCLKサイクル 221 ± 218 HCLKサイクル 約0.448s 約0.576s 212 ± 29 SCLKサイクル 約3.584s 約4.608s 約7.168s 約9.216s 215 ± 212 SCLKサイクル 216 ± 213 SCLKサイクル 約14.336s 約18.432s 217 ± 214 SCLKサイクル HXLK: 発振クロック SCLK: サブクロック(32 kHzの4分周) ウォッチドッグ制御ビット WTE 0 ・ウォッチドッグタイマを起動 (リセット後1回目の書込みのとき) ・ウォッチドッグタイマをクリア (リセット後2回目以降の書込みのとき) 1 動作なし リセット要因ビット PONR WRST ERST SRST 1 R/W :リード/ライト可能 :不定 :未定義ビット X X X リセット要因ビット パワーオン ウォッチドッグタイマ 1 外部端子(RST = "L"入力) 1 1 RSTビット(ソフトウェアリセット) :前の状態を保持 :初期値 インターバル時間はカウントクロック ( タイムベースタイマの出力値 ) 周期の 3.5 ∼ 4.5 倍となります。詳細は「11.4 ウォッチドッグタイマの動作」を参照してください。 246 第 11 章 ウォッチドッグタイマ 表 11.2-1 ウォッチドッグタイマ制御レジスタ (WDTC) の各ビットの機能 ビット名 機能 bit7, bit5, bit4, bit3 PONR WRST ERST SRST リセット要因 ビット ・リセット要因を示す読出し専用ビットです。各リセット 要因が発生すると , これらのビットが "1" にセットされま す。 ・PONR, WRST, ERST, SRST ビットは , WDTC レジスタの 読出し動作後に , すべて "0" にクリアされます。 ・パワーオン時は , PONR ビット以外のビットの内容は保証 されません。したがって , PONR ビットが "1" の場合はこ れ以外のビットの内容を無視するようにしてください。 bit6 未定義 未定義ビット ・読出し値は不定です。 ・書込みは , 動作に影響ありません。 ウォッチ ドッグ制御 ビット ・"0" を書き込むと , ウォッチドッグタイマを起動 ( リセッ ト後 1 回目の書込み ) または 2 ビットカウンタをクリア ( リセット後 2 回目以降の書込み ) します。 ・"1" の書込みでは , 動作に影響はありません。 インターバル 時間選択 ビット ・ウォッチドッグタイマのインターバル時間を選択する ビットです。 ・クロックモードとしてサブクロックモードが選択されて いる ( クロック選択レジスタ (CKSCR) のサブクロック表 示ビット (SCM) が "0") または時計タイマ制御レジスタ (WTC) により , ウォッチドッグタイマのクロックソース が時計タイマになっている場合 ( ウォッチドッグタイマ クロックソース選択ビット (WDCS) が "0") と , クロック モードとしてメインクロックモードまたは PLL クロック モードが選択されていて , かつ WTC の WDCS ビットが "1" の場合で , インターバル時間は図 11.2-1 のように異な ります。 ・ウォッチドッグタイマの起動時のデータのみが有効で す。ウォッチドッグタイマ起動後の書込みデータは無視 されます。 ・WT1, WT0 ビットは , 書込み専用です。 bit2 bit1, bit0 WTE WT1 WT0 247 第 11 章 ウォッチドッグタイマ 11.3 ウォッチドッグタイマの構成 ウォッチドッグタイマは , 次の 5 種類のブロックで構成されています。 ・カウントクロックセレクタ ・ウォッチドッグカウンタ (2 ビットカウンタ ) ・ウォッチドッグリセット発生回路 ・カウンタクリア制御回路 ・ウォッチドッグタイマ制御レジスタ (WDTC) ■ ウォッチドッグタイマのブロックダイヤグラム 図 11.3-1 に , ウォッチドッグタイマのブロックダイヤグラムを示します。 図 11.3-1 ウォッチドッグタイマのブロックダイヤグラム ウォッチドッグタイマ制御レジスタ(WDTC) PONR 時計モード開始 タイムベースタイマモード開始 スリープモード開始 ホールド状態開始 ストップモード開始 - WRST ERST SRST WTE ウォッチドッグタイマ WT0 時計タイマ制御レジスタ(WTC)のWDCSビット クロック選択レジスタ(CKSCR)のSCMビット 2 CLR と起動 カウンタ クリア 制御回路 WT1 カウント クロック セレクタ CLR オーバ 2ビット フロー ウォッチドッグ リセット 発生回路 カウンタ 内部リセット 発生回路 CLR クリア 4 4 (タイムベースタイマカウンタ) HCLKの2分周 × 21 × 22 ・・・ × 28 × 29 × 210 × 211 × 212 × 213 × 214 × 215 × 216 × 217 × 218 SCLK × 21 × 22 ・・・ × 28 × 29 × 210 × 211 × 212 × 213 × 214 × 215 × 216 × 217 × 218 HCLK : 発振クロック SCLK : サブクロック ● カウントクロックセレクタ ウォッチドッグタイマのカウントクロックを 4 種類のタイムベースタイマ出力と 4 種 類の時計タイマ出力から選択する回路です。これにより , ウォッチドッグリセットの発 生時間が決まります。 ● ウォッチドッグカウンタ (2 ビットカウンタ ) タイムベースタイマ出力をカウントクロックとする 2 ビットのアップカウンタです。 ● ウォッチドッグリセット発生回路 ウォッチドッグカウンタのオーバフローによってリセット信号を発生します。 ● カウンタクリア回路 ウォッチドッグカウンタのクリアとカウンタの動作 / 停止を制御します。 ● ウォッチドッグタイマ制御レジスタ (WDTC) ウォッチドッグタイマの起動 , クリアおよびリセット発生要因の保持を行います。 248 第 11 章 ウォッチドッグタイマ ウォッチドッグタイマの動作 11.4 ウォッチドッグタイマは , ウォッチドッグカウンタのオーバフローでウォッチドッ グリセットを発生します。 ■ ウォッチドッグタイマの動作 図 11.4-1 に , ウォッチドッグタイマの設定を示します。 図 11.4-1 ウォッチドッグタイマの設定 アドレス 0000A8H WDTC bit15...........bit8 bit7 bit6 (TBTC) PONR − bit5 bit4 WRST ERST bit3 bit2 bit1 bit0 SRST WTE 0 WT1 WT0 ◎ ◎ ◎:使用ビット −:未定義ビット 0 :"0" を設定 ● ウォッチドッグタイマの起動 • ウォッチドッグタイマ制御レジスタ(WDTC)のウォッチドッグ制御ビット(WTE)に, リセット後1回目の"0"を書き込むとウォッチドッグタイマは起動します。この場合, WDTC レジスタのインターバル時間選択ビット (WT1, WT0) でインターバル時間を 同時に指定します。 • ウォッチドッグタイマは起動を開始すると , パワーオン , ウォッチドッグによるリ セット以外に止める方法はありません。 ● ウォッチドッグタイマのクリア • WTE ビットへの 2 回目以降の "0" の書込みで , ウォッチドッグタイマの 2 ビットカ ウンタをクリアします。インターバル時間内にカウンタがクリアされない場合 , カ ウンタがオーバフローし , ウォッチドッグリセットが発生します。 • リセットの発生 , スリープモード , ストップモード , タイムベースタイマモードへの 遷移によって , ウォッチドッグカウンタはクリアされます。 • タイムベースタイマモードおよび時計モードへ遷移したときに , 一度ウォッチドッ グカウンタをクリアしますが , クリア後ウォッチドッグカウンタは停止しませんの で注意してください。 • 時計モード使用時 ( サブクロック ) は , ウォッチドッグタイマは使用しないようにし てください。 ● ウォッチドッグタイマのインターバル時間 図 11.4-2 に , ウォッチドッグタイマのクリアのタイミングとインターバル時間の関係 を示します。インターバル時間は , ウォッチドッグタイマをクリアするタイミングに よって変化し , カウントクロック周期の 3.5 ∼ 4.5 倍の時間を要します。 249 第 11 章 ウォッチドッグタイマ ● リセット要因の確認 リセット後 WDTC レジスタのリセット要因ビット (PONR, WRST, ERST, SRST) を チェックすることで , リセット要因を知ることができます。 図 11.4-2 ウォッチドッグタイマのクリアタイミングとインターバル時間 [ウォッチドッグタイマブロックダイヤグラム] 2ビットカウンタ クロック セレクタ a 2分周回路 b 2分周回路 c リセット回路 d リセット 信号 カウント許可とクリア WTEビット カウント許可 出力回路 [最小インターバル時間]カウントクロックの立上り直前にWTEビットをクリアした場合 カウントスタート カウンタクリア カウントクロックa 2分周値b 2分周値c カウント許可 リセット信号d 7×(カウントクロック周期/2) WTEビットクリア ウォッチドッグリセット発生 [最大インターバル時間]カウントクロックの立上り直後にWTEビットをクリアした場合 カウンタクリア カウントスタート カウントクロックa 2分周値b 2分周値c カウント許可 リセット信号d 9×(カウントクロック周期/2) WTEビットクリア 250 ウォッチドッグリセット発生 第 11 章 ウォッチドッグタイマ 11.5 ウォッチドッグタイマ使用上の注意 ウォッチドッグタイマ使用時の注意点を示します。 ■ ウォッチドッグタイマ使用上の注意 ● ウォッチドッグタイマの停止 ウォッチドッグタイマは一度起動すると , パワーオン , ウォッチドッグ外部リセットが 発生するまで停止できません。 ● インターバル時間 インターバル時間は , タイムベースタイマの桁上り信号をカウントクロックとしてい るため , タイムベースタイマのクリアによって , ウォッチドッグタイマのインターバル 時間が設定より長くなることがあります。 ● インターバル時間の選択 インターバル時間は , ウォッチドッグタイマの起動時に設定が可能です。起動時以外の 書込みデータは無視されます。 ● プログラム作成上の注意 メインループの中で , 繰り返しウォッチドッグタイマをクリアするようなプログラム を作成する場合 , 割込み処理を含めたメインループの処理時間が , ウォッチドッグタイ マのインターバル時間の最小時間以下となる必要があります。 251 第 11 章 ウォッチドッグタイマ 11.6 ウォッチドッグタイマのプログラム例 ウォッチドッグタイマのプログラム例を示します。 ■ ウォッチドッグタイマのプログラム例 ● 処理仕様 • メインプログラムのループの中で毎回ウォッチドッグタイマをクリアします。 • メインループは , ウォッチドッグタイマの最小インターバル時間内に 1 周する必要 があります。 ● コーディング例 WDTC EQU 0000A8H ; ウォッチドッグタイマ制御レジスタ WTE EQU WDTC:2 ; ウォッチドッグ制御ビット ;---------- メインプログラム --------------------------------------------------CODE CSEG START: ; ; スタックポインタ (SP) などは初期化済み : ; とする WDG_START: MOV WDTC, #00000011B ; ウォッチドッグタイマの起動 ; インターバル時間 221 ± 218 サイクルを選択 ;---------- メインループ ------------------------------------------------------MAIN: CLRB ; : ; ユーザ処理 ; : JMP I:WTE ; ウォッチドッグタイマのクリア 定期的に 2 ビットのクリア MAIN ; ウォッチドッグタイマのインターバル時間 ; より短い時間でループする CODE ENDS ;---------- ベクタ設定 --------------------------------------------------------VECT VECT CSEG ABS=0FFH ORG 0FFDCH DSL START DB 00H ENDS END 252 START ; リセットベクタ設定 ; シングルチップモードに設定 第 12 章 時計タイマ MB90800 シリーズの時計タイマの機能と動作につ いて説明します。 12.1 時計タイマの概要 12.2 時計タイマの構成 12.3 時計タイマ制御レジスタ (WTC) 12.4 時計タイマの動作 253 第 12 章 時計タイマ 12.1 時計タイマの概要 時計タイマは , サブクロックを使用した 15 ビットのタイマです。インターバル割込 みを発生させることができます。また , 設定により , ウォッチドッグタイマのクロッ クソースとしても使用できます。 ■ 時計タイマ機能 時計タイマは , 15 ビットのタイマとインターバルな割込みを制御する回路から構成さ れています。 時計タイマは , クロック選択レジスタ (CKSCR) の PLL クロック選択ビット (MCS) およ びサブクロック選択ビット (SCS) と関係なくサブクロックを使用します。 表 12.1-1 に , 時計タイマのインターバル時間を示します。 表 12.1-1 時計タイマのインターバル時間 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.000 s 1 1 0 2.000 s 1 1 1 設定禁止 *: サブクロック 32 kHz の 4 分周 (=8 kHz) 254 第 12 章 時計タイマ 12.2 時計タイマの構成 時計タイマは , 次の 4 つのブロックで構成されています。 ・インターバルセレクタ ・時計カウンタ ・時計タイマ割込み発生回路 ・時計タイマ制御レジスタ (WTC) ■ 時計タイマのブロックダイヤグラム 図 12.2-1 時計タイマのブロックダイヤグラム 時計タイマ制御レジスタ(WTC) WDCS SCE WTIE WTOF WTR WTC2 WTC1 WTC0 クリア 28 29 サブクロック 時計カウンタ 210 211 インターバル セレクタ 割込み 発生回路 時計タイマ 割込み 212 213 210 213 214 215 214 ウォッチドッグ タイマへ ● 時計カウンタ サブクロックをクロックソースとする 15 ビットのアップカウンタです。 ● インターバルセレクタ 時計タイマ割込みのインターバルを 7 種類から選択するセレクタです。 ● 割込み発生回路 時計タイマのインターバル割込みを発生させます。 ● 時計タイマ制御レジスタ (WTC) 時計タイマの動作 , 時計タイマの割込みの制御 , およびウォッチドッグタイマのクロッ クソース指定します。 255 第 12 章 時計タイマ 12.3 時計タイマ制御レジスタ (WTC) 時計タイマ制御レジスタ (WTC) は , 時計タイマの動作を制御します。また , イン ターバル割込みの時間を制御します。 ■ 時計タイマ制御レジスタ (WTC) 図 12.3-1 タイムベースタイマ制御レジスタ (WTC) アドレス bit15 bit8 0000AAH bit7 bit6 WDCS SCE bit5 bit4 WTIE WTOF R/W R/W R/W R/W bit3 bit2 WTR WTC2 WTC1 WTC0 R/W R/W R/W WTC2 WTC1 WTC0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 1 WTR 0 1 WTIE 0 1 SCE 0 1 WDCS R/W :リード/ライト可能 :初期値 256 0 1 初期値 bit0 10011000B R/W 時計タイマインターバル選択ビット インターバル時間 (サブクロック32kHz時) 31.25ms 62.5ms 125ms 250ms 500ms 1.000s 2.000s 設定禁止 時計カウンタクリアビット 時計タイマのカウンタを全ビット"0"にクリアします。 何もしません。リード時は必ずこのビットが読めます。 時計タイマ割込み要求フラグビット WTOF 0 1 bit1 割込み要求は発生していません。 割込み要求が発生しています。 時計タイマインターバル割込み許可ビット 割込み禁止 割込み許可 サブクロック発振安定待ち時間終了ビット 発振安定待ち状態です。 発振安定待ち時間が終了しています。 ウォッチドッグタイマクロックソース選択ビット 時計タイマのクロックを選択します。 タイムベースタイマのクロックを選択します。 第 12 章 時計タイマ 表 12.3-1 時計タイマ制御レジスタ (WTC) の各ビットの機能説明 ビット名 機能 WDCS: ウォッチドッグタイマ クロックソース選択 ビット ・ウォッチドッグタイマのクロックソースを選択するビットです。 ・このビットが "0" のとき , 時計タイマのクロックを選択し , "1" のと き , タイムベースタイマのクロックを選択します。 ・リセットにより "1" に初期化します。 bit6 SCE: サブクロック発振安定 待ち時間終了ビット ・サブクロックの発振安定待ち時間が終了したことを示すビットで す。 ・このビットが "0" のとき , 発振安定待ち状態であることを示します。 ・サブクロックの発振安定待ち時間は , 214 サブクロックサイクル固定 です。 ・パワーオンリセットおよびストップ時に "0" に初期化します。 bit5 WTIE: 時計タイマ インターバル割込み 許可ビット ・時計タイマによるインターバル割込みを許可するビットです。 ・このビットが "1" のとき割込みを許可し , "0" のとき割込みを禁止し ます。 ・リセットにより "0" に初期化します。 bit4 WTOF: 時計タイマ割込み要求 フラグビット ・時計タイマの割込み要求が発生していることを示すビットです。 ・WTIE ビットが "1" のとき , このビットが "1" になると , 割込み要求 を発生します。 ・WTC2 ∼ WTC0 ビットで設定されたインターバルごとに "1" にセッ トされます。 ・"0" の書込み , ストップモードへの遷移 , ハードウェアスタンバイ モードへの遷移 , およびリセットにより "0" にクリアされます。 ・このビットへの "1" の書込みは意味をもちません。 bit3 WTR: 時計カウンタ クリアビット ・時計タイマのカウンタを全ビット "0" にクリアするビットです。 ・このビットに "0" を書き込むことにより , 時計タイマカウンタを "0" にクリアします。 ・このビットへの "1" 書込みは意味をもちません。 ・読出し時は , 常に "1" が読み出されます。 bit2 ∼ bit0 WTC2, WTC1, WTC0: 時計タイマ インターバル選択 ビット bit7 ・時計タイマのインターバルを設定するビットです。 ・リセットにより "00B" に初期化されます。 ・このビットを変更するときは , WTOF ビットも同時にクリアしてく ださい。 257 第 12 章 時計タイマ 12.4 時計タイマの動作 時計タイマは , ウォッチドッグタイマのクロックソース , サブクロックの発振安定待 ちのためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり ます。 ■ 時計カウンタ 時計カウンタはサブクロックをカウントする 15 ビットのカウンタにより構成され , サ ブクロックが入力されている間 , 常にカウント動作を続けます。 時計カウンタのクリア 時計カウンタのクリアは , パワーオンリセット , ストップモードへの遷移 , および時計 タイマ制御レジスタ (WTC) の時計カウンタクリアビット (WTR) への "0" 書込みにより 行われます。 <注意事項> 時計タイマの出力を使用しているウォッチドッグタイマとインターバル割込みは , 時計カ ウンタのクリアにより動作に影響を与えます。 ■ 時計タイマのインターバル割込み機能 時計カウンタの桁上り信号により一定周期で割込みを発生します。 • インターバル時間の指定 • WTC レジスタの (WTC2, WTC1, WTC0) ビットにより , インターバル時間を指定で きます。 • 時計タイマ割込みの発生 • WTC2, WTC1, WTC0 ビットで設定されるインターバル時間ごとに時計タイマ割込 み要求フラグビット (WTOF) をセットします。このとき , 時計タイマインターバル 割込み許可ビット (WTIE) が "1" に設定されていて , 割込みが許可されていれば , 時 計タイマ割込みを発生します。 • WTOF ビットのセットは , 最後に時計タイマがクリアされた時間を基準にして行わ れます。 • ストップモードに遷移すると , 時計タイマは , サブクロックの発振安定待ち時間の タイマとして使用されるため, WTOFビットはモード遷移と同時にクリアされます。 ■ ウォッチドッグタイマのクロックソースの指定機能 WTCレジスタのウォッチドッグタイマクロックソース選択ビット(WDCS)により, ウォッ チドッグタイマのクロックソースを指定できます。ただし , クロックモードがサブクロッ クモードの場合は , WDCS ビットによらず , 時計タイマのカウンタ値が使用されます。 ■ サブクロックの発振安定待ち時間機能 パワーオンリセット , ストップモードからの復帰時の時計タイマは , サブクロックの発 振安定待ち時間タイマとして機能します。サブクロックの発振安定待ち時間はサブク ロックの 214 サイクル固定です。 258 第 13 章 16 ビットリロードタイマ MB90800 シリーズの 16 ビットリロードタイマの 機能と動作について説明します。 13.1 16 ビットリロードタイマの概要 13.2 16 ビットリロードタイマの構成 13.3 16 ビットリロードタイマの端子 13.4 16 ビットリロードタイマのレジスタ 13.5 16 ビットリロードタイマの割込み 13.6 16 ビットリロードタイマの動作説明 13.7 16 ビットリロードタイマ使用上の注意 259 第 13 章 16 ビットリロードタイマ 13.1 16 ビットリロードタイマの概要 MB90800 シリーズは , 16 ビットリロードタイマを 3 チャネル内蔵しており , 以下の クロックモードと , カウンタ動作モードを設定できます。 クロックモード ・内部クロックモード : 内部クロックに同期してカウントダウンを行うモード ・イベントカウントモード : 外部入力パルスにてカウントダウンを行うモード カウンタ動作モード ・リロードモード : カウント設定値をリロードしてカウントを繰り返すモード ・ワンショットモード : アンダフローでカウントを停止するモード ■ 16 ビットリロードタイマの動作モード 表 13.1-1 16 ビットリロードタイマの動作モード クロックモード 内部クロックモード カウンタ動作モード リロードモード ワンショットモード イベントカウントモード ( 外部クロックモード ) リロードモード 動作モード ソフトトリガ動作 外部トリガ入力動作 外部ゲート入力動作 ソフトトリガ動作 ワンショットモード ■ 内部クロックモード タイマコントロールステータスレジスタ (TMCSR) のカウントクロック設定ビット (CSL1, CSL0) に "00B", "01B", "10B"を設定した場合は , 内部クロックモードになります。 内部クロックモードは , 以下の動作モードを設定できます。 ● ソフトトリガ動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定した場合に , ソフトウェアトリガビット (TRG) に "1" を設定すると , カウント動 作を開始できます。 ● 外部トリガ入力動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合 , 動作モード設定ビット (MOD2, MOD1, MOD0) にて , あらかじめ 設定しているトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力された場合 , カウント動作を開始します。 ● 外部ゲート入力動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合 , 動作モード設定ビット (MOD2, MOD1, MOD0) にて , あらかじめ 設定しているゲート入力の有効レベル ("L", "H" から設定可能 ) が TIN 端子に入力され ている間 , カウント動作を行います。 260 第 13 章 16 ビットリロードタイマ ■ イベントカウントモード ( 外部クロックモード ) タイマコントロールステータスレジスタ (TMCSR) のカウントクロック設定ビット (CSL1, CSL0) を "11B" に設定した場合は , イベントカウントモード ( 外部クロック ) に なります。カウント許可ビット (CNTE) を "1" に設定している場合は , 動作モード設定 ビット(MOD2, MOD1, MOD0)で設定しているトリガ入力の有効エッジ(立上り, 立下り, 両エッジから設定可能 ) が TIN 端子に入力された場合 , カウント動作を開始します。一 定周期の外部クロックを入力する場合は , インターバルタイマとしても使用できます。 ■ カウンタ動作 ● リロードモード 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") で , 16 ビットリロード レジスタ (TMRLR) の値を 16 ビットダウンカウンタにロードし , カウント動作を行い ます。また , アンダフローで , 割込み要求を出力しますので , インターバルタイマとし て使用できます。アンダフローごとに , 反転するトグル波形を TOT 端子から出力でき ます。 表 13.1-2 16 ビットリロードタイマのインターバル時間 カウントクロック 内部カウントクロック 外部カウントクロック カウントクロック周期 インターバル時間 21/ φ (0.08 μs) 0.08 μs ∼ 5.24 ms 23/ φ (0.32 μs) 0.32 μs ∼ 20.97 ms 25/ φ (1.28 μs) 1.28 μs ∼ 83.88 ms 23/ φ 以上 (0.32 μs) 0.32 μs 以上 φ : マシンクロック周波数 ( ) 内はマシンクロック周波数 25 MHz の場合です。 ● ワンショットモード 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") で , カウント動作を停止 します。 <参考> • 16 ビットリロードタイマ 1/2 は , UART のボーレート作成に使用できます。 • 16 ビットリロードタイマ 1 は , A/D コンバータの起動トリガに使用できます。 261 第 13 章 16 ビットリロードタイマ ■ 16 ビットリロードタイマの割込みと EI2OS 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") で , 割込み要求を出力し ます。 表 13.1-3 16 ビットリロードタイマの割込みと EI2OS 割込み制御レジスタ チャネル EI2OS レジスタ名 16 ビットリロード タイマ 0 アドレス #23(17H) ICR06 16 ビットリロード タイマ 1 #24(18H) 16 ビットリロード タイマ 2 #21(15H) ICR05 下位 上位 バンク FFFFA0H FFFFA1H FFFFA2H FFFF9CH FFFF9DH FFFF9EH FFFFA8H FFFFA9H FFFFAAH 0000B6H 0000B5H △ :ICR を共有する割込み要因を使用しない場合に使用可能 262 ベクタテーブルのアドレス 割込み番号 △ ○ 第 13 章 16 ビットリロードタイマ 13.2 16 ビットリロードタイマの構成 16 ビットリロードタイマ 0 ∼ 2 は , それぞれ以下のブロックで構成されています。 ・カウントクロック生成回路 ・リロード制御回路 ・出力制御回路 ・動作制御回路 ・16 ビットタイマレジスタ (TMR) ・16 ビットリロードレジスタ (TMRLR) ・タイマコントロールステータスレジスタ (TMCSR) ■ 16 ビットリロードタイマのブロックダイヤグラム 図 13.2-1 16 ビットリロードタイマのブロックダイヤグラム 内部データバス TMRLR 16ビットリロードレジスタ リロード信号 TMR リロード 制御回路 16ビットタイマレジスタ(ダウンカウンタ) UF カウントクロック生成回路 プリ 3 スケーラ CLK ゲート 入力 有効クロック 判定回路 クリア ウェイト信号 UART* A/Dコンバータへ CLK 出力制御回路 内部 クロック 端子 クロック セレクタ 入力制御 回路 外部クロック 3 2 反転 出力信号 生成回路 端子 EN セレクト 信号 機能選択 - - - - CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE 動作 制御回路 UF CNTE TRG タイマコントロールステータスレジスタ(TMCSR) 割込み要求信号 *: ch.1/ch.2 263 第 13 章 16 ビットリロードタイマ ● カウントクロック生成回路 マシンクロックまたは外部入力クロックを 16 ビットリロードタイマのカウントクロッ クとして使用します。 ● リロード制御回路 16 ビットダウンカウンタの起動と , アンダフロー ("0000H" → "FFFFH") を検出した場合 , 16 ビットダウンカウンタへのロード動作を制御します。 ● 出力制御回路 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") による TOT 端子出力の 反転制御と , TOT 端子出力の許可 / 禁止を制御します。 ● 動作制御回路 16 ビットダウンカウンタの起動 / 停止を制御します。 ● 16 ビットタイマレジスタ (TMR) 16 ビットダウンカウンタです。読出しを行った場合は , カウンタの値が読み出せます。 ● 16 ビットリロードレジスタ (TMRLR) 16 ビットダウンカウンタへのロード値を設定するレジスタです。16 ビットリロードレ ジスタの設定値を 16 ビットダウンカウンタにロードし , ダウンカウントを行います。 ● タイマコントロールステータスレジスタ (TMCSR) 16ビットリロードタイマの動作モードの設定, カウントクロックの設定, 動作条件の設 定 , カウント動作の許可 / 禁止の設定 , 割込み制御および割込み要求の状態を確認する 機能があります 。 264 第 13 章 16 ビットリロードタイマ 16 ビットリロードタイマの端子 13.3 16 ビットリロードタイマの端子および端子部のブロックダイヤグラムを示します。 ■ 16 ビットリロードタイマの端子 16 ビットリロードタイマの端子は , 入出力ポートと兼用になっています。 表 13.3-1 16 ビットリロードタイマの端子 プルアップ 選択 スタンバイ 制御 端子の使用に 必要な設定 端子名 端子機能 入出力形式 P50/TIN0 ポート 5 入出力 / タイマ入力 CMOS 出力 /SEG 出力 / CMOSヒステリシス入力 P45/TOT0 ポート 4 入出力 / タイマ出力 CMOS 出力 / CMOSヒステリシス入力 タイマ出力許可に設定 (TMCSR0:OUTE = 1) P51/TIN1 ポート 5 入出力 / タイマ入力 CMOS 出力 /SEG 出力 / CMOSヒステリシス入力 入力ポートに設定 (DDR5:bit1 = 0) P46/TOT1 ポート 4 入出力 / タイマ出力 CMOS 出力 / CMOSヒステリシス入力 タイマ出力許可に設定 (TMCSR1:OUTE = 1) P52/TIN2 ポート 5 入出力 / タイマ入力 CMOS 出力 /SEG 出力 / CMOSヒステリシス入力 入力ポートに設定 (DDR5:bit2 = 0) P47/TOT2 ポート 4 入出力 / タイマ出力 CMOS 出力 / CMOSヒステリシス入力 入力ポートに設定 (DDR5:bit0 = 0) なし なし なし あり あり あり タイマ出力許可に設定 (TMCSR2:OUTE = 1) ■ 16 ビットリロードタイマの端子のブロックダイヤグラム 図 13.3-1 16 ビットリロードタイマの端子のブロックダイヤグラム リソース入力 内 部 デ ー タ バ ス PDR読出し PDR 入出力 判定回路 PDR書込み DDR 入力バッファ 出力バッファ ポート 端子 スタンバイ制御(LPMCR:SPL=1) 入出力制御回路 リソース出力 265 第 13 章 16 ビットリロードタイマ 13.4 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタ一覧を示します。 ■ 16 ビットリロードタイマのレジスタ一覧 図 13.4-1 16 ビットリロードタイマのレジスタ一覧 bit15.................................................bit8 bit7.................................................bit0 TMCSR ( タイマコントロールステータスレジスタ ) TMR/TMRLR (16 ビットタイマレジスタ /16 ビットリロードレジスタ ) * *:読出し時は 16 ビットタイマレジスタ (TMR) として機能し , 書込み時は 16 ビットリロードレジスタ (TMRLR) として機能します。 266 第 13 章 16 ビットリロードタイマ タイマコントロールステータスレジスタ上位 (TMCSR) 13.4.1 タイマコントロールステータスレジスタ (TMCSR) により , 16 ビットリロードタイ マの動作モードの設定 , カウントクロックの設定を行います。 ■ タイマコントロールステータスレジスタ上位 (TMCSR) 図 13.4-2 タイマコントロールステータスレジスタ上位 (TMCSR) bit アドレス ch.0 000051 H ch.1 000055 H ch.2 000059 H 15 14 13 12 - - - - - - - - 11 10 9 8 CSL1 CSL0 MOD2 MOD1 7 * MOD0 R/W R/W R/W R/W R/W 初期値 ----0000 B 動作モード設定ビット (内部クロックモード時) MOD2 MOD1 MOD0 0 0 0 0 0 1 0 1 0 0 1 1 両エッジ 1 X 0 "L"レベル 1 X 1 MOD2 MOD1 MOD0 入力端子機能 R/W φ * : : : : : 0 0 X 0 1 X 1 0 X 1 1 CSL1 CSL0 0 0 0 1 1 0 ― 立上りエッジ トリガ入力 ゲート入力 立下りエッジ "H"レベル 動作モード設定ビット (イベントカウントモード時) 入力端子機能 X 有効エッジ,レベル トリガ禁止 有効エッジ ― ― 立上りエッジ トリガ入力 立下りエッジ 両エッジ カウントクロック選択ビット 機能 カウントクロック 内部クロックモード イベントカウントモード 1 1 リード/ライト可能 未定義ビット 初期値 マシンクロック, ( )内はマシンクロック25MHz動作時の値です。 MOD0 (bit7) については「13.4.2.タイマコントロールステータスレジスタ下位 (TMCSR)」を 参照してください。 267 第 13 章 16 ビットリロードタイマ 表 13.4-1 タイマコントロールステータスレジスタ上位 (TMCSR) の各ビットの機能説明 ビット名 機能 bit15 ∼ bit12 −: 未定義ビット bit11, bit10 CSL1, CSL0: カウント クロック選択 ビット bit9 ∼ bit7 ・動作モードを設定するビットです。 <内部クロックモード時> ・MOD2 ビットは , 入力端子の機能を設定するビットです。 ・MOD2 ビットに "0" を設定した場合は , 入力端子はトリガ入力 端子となり , 設定した有効エッジが入力された場合は , 16 ビッ トリロードレジスタ (TMRLR) の値を 16 ビットダウンカウンタ にロードし , カウント動作を開始します。MOD1, MOD0 ビット MOD2, MOD1, にて , 有効エッジの方向を設定することができます。 MOD0: ・MOD2 ビットに "1" を設定した場合は , 入力端子はゲート入力 動作モード設定 となり , MOD0 ビットで設定した有効レベルが入力されている ビット 間 , カウント動作を行います。 ・MOD1 ビットに設定した値は , 動作に影響しません。 <イベントカウントモード時> ・MOD2 ビットに設定した値は , 動作に影響しません。 ・イベントカウントモードを設定した場合 , 入力端子はトリガ入 力となり, MOD1, MOD0ビットで設定した有効エッジが入力さ れると , カウント動作を開始します。 268 ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 ・16 ビットリロードタイマのカウントクロックを設定するビッ トです。 ・ "00B ", "01B", "10B" を設定した場合は , 内部クロックモードと なります。 ・"11B" を設定した場合は , イベントカウントモードとなります。 第 13 章 16 ビットリロードタイマ タイマコントロールステータスレジスタ下位 (TMCSR) 13.4.2 タイマコントロールステータスレジスタ (TMCSR) にて , 16 ビットリロードタイマ の動作条件の設定 , カウント動作の許可 / 禁止の設定 , 割込み制御および割込み要求 の状態を確認する機能があります。 ■ タイマコントロールステータスレジスタ下位 (TMCSR) 図 13.4-3 タイマコントロールステータスレジスタ下位 (TMCSR) bit アドレス ch.0 000050 H ch.1 000054 H ch.2 000058 H 7 * MOD0 6 5 4 3 2 1 0 初期値 OUTE OUTL RELD INTE UF CNTE TRG 00000000B R/W R/W R/W R/W R/W R/W R/W R/W TRG ソフトウェアトリガビット 0 動作に影響しません 1 データリロード後,カウント動作開始 カウント許可ビット CNTE 0 カウント停止 1 カウント許可(起動トリガ待ち) UF アンダフロー割込み要求フラグビット ライト時 リード時 0 割込み要求なし 割込み要求をクリア 1 割込み要求あり 動作に影響しません INTE アンダフロー割込み要求許可ビット 0 割込み要求出力禁止 1 割込み要求出力許可 RELD リロード許可ビット 0 ワンショットモード(リロード禁止) 1 リロードモード(リロード許可) 端子出力レベル設定ビット OUTL ワンショットモード時 (RELD=0) リロードモード時 (RELD=1) 0 カウント中"H"の矩形波 カウント開始時"L"のトグル波形 1 カウント中"L"の矩形波 カウント開始時"H"のトグル波形 OUTE 0 端子機能 入出力ポート タイマ出力許可ビット 各チャネルに対応するレジスタと端子 TMCR P45,P46,P47 タイマ出力端子 TOT0,TOT1,TOT2 1 R/W :リード/ライト可能 :初期値 * :MOD0(bit7)については「13.4.1 タイマコントロールステータスレジスタ上位(TMCSR)」 を参照してください。 269 第 13 章 16 ビットリロードタイマ 表 13.4-2 タイマコントロールステータスレジスタ下位 (TMCSR) の各ビットの機能説明 ビット名 機能 bit6 OUTE: ・タイマ出力端子への出力を許可するビットです。 タイマ出力許可 ・ "0" を設定した場合は端子は入出力ポートとなり , "1" を設定した場 ビット 合は端子はタイマ出力端子となります。 bit5 ・タイマ出力端子への出力レベルを設定するビットです。 ・タイマ出力端子の出力波形は , リロードモードを設定した場合はト OUTL: グル波形を出力し , ワンショットモードを設定した場合はカウント 端子出力レベル 動作中を示す矩形波を出力します。 設定ビット ・"0" を設定した場合と "1" を設定した場合では , 端子出力レベルが逆 になります。 bit4 RELD: リロード許可 ビット ・リロード動作を許可するビットです。 ・ "1" を設定した場合は , リロードモードとなり , 16 ビットダウンカウン タのアンダフローで16ビットリロードレジスタに設定した値が, 16ビッ トダウンカウンタにロードされ , カウント動作を継続します。 ・"0" を設定した場合は , ワンショットモードとなり , 16 ビットダウン カウンタのアンダフローでカウント動作を停止します。 bit3 INTE: アンダフロー 割込み要求 許可ビット ・割込み要求を許可するビットです。 ・ "1" を設定した場合は , アンダフロー割込み要求フラグビット (UF) に "1" がセットされると , 割込み要求を出力します。 UF: アンダフロー 割込み要求 フラグビット ・割込み要求のフラグビットです。 ・16 ビットダウンカウンタのアンダフローで , "1" がセットされます。 ・アンダフロー割込み要求許可ビット (INTE) を "1" に設定している場 合に , "1" がセットされますと , 割込み要求を出力します。 ・"0" を設定した場合は , 割込み要求がクリアされます。 ・"1" を設定した場合は , 動作に影響しません。 ・EI2OS の起動で , "0" にクリアされます。 CNTE: カウント許可 ビット ・カウント動作を許可するビットです。 ・"1" を設定した場合は , 起動トリガ待ち状態となり , ソフトウェアト リガビット (TRG) に "1" を設定 , または動作モード設定ビット (MOD2, MOD1, MOD0) で設定しているトリガ入力の有効エッジ ( 立 上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力されると , カウント動作を開始します。 ・"0" を設定した場合は , カウント動作を停止します。 TRG: ソフトウェア トリガビット ・インターバルタイマ機能またはカウンタ機能をソフトウェアで起 動するビットです。 ・カウント許可ビット (CNTE) に "1" を設定している場合に , "1" を設 定すると , 16 ビットリロードレジスタに設定した値が 16 ビットダウ ンカウンタにロードされ , カウント動作を開始します。 ・"0" を設定した場合は , 動作に影響しません。 ・読出し値は , "0" です。 bit2 bit1 bit0 270 第 13 章 16 ビットリロードタイマ 16 ビットタイマレジスタ (TMR) 13.4.3 16 ビットタイマレジスタ (TMR) は , 16 ビットダウンカウンタのカウント値を読み 出すことができます。 ■ 16 ビットタイマレジスタ (TMR) 図 13.4-4 16 ビットタイマレジスタ (TMR) アドレス ch.0 00052H 00053H ch.1 00056H 00057H ch.2 0005AH 0005BH bit 15 D15 14 D14 13 D13 12 D12 11 D11 10 D10 9 D9 8 D8 R/W R/W R/W R/W R/W R/W R/W R/W 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 R/W R/W R/W R/W R/W R/W R/W R/W bit 初期値 XXXXXXXXB 初期値 XXXXXXXXB R/W:リード / ライト可能 X :不定 16 ビットダウンカウンタです。 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作 モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力されると , 16 ビットリロー ドレジスタ (TMRLR) に設定されている値が , 16 ビットダウンカウンタにロードされ , ダウンカウントを開始します。カウント停止状態 (TMCSR:CNTE=0) では , 16 ビットタ イマレジスタ (TMR) の値を保持します。 <注意事項> ・16 ビットタイマレジスタ (TMR) を読み出す場合は , 必ずワード転送命令 (MOVW A, 003AH) を使用してください。 ・16 ビットタイマレジスタ (TMR) は , 読出し専用のレジスタで , 16 ビットリロードレジ スタ (TMRLR) は , 書込み専用のレジスタですが , 同一アドレスに配置されているため , 16 ビットタイマレジスタに対して値を設定した場合は , 16 ビットリロードレジスタに 値が設定され , 16 ビットタイマレジスタは , 影響を受けません。 271 第 13 章 16 ビットリロードタイマ 16 ビットリロードレジスタ (TMRLR) 13.4.4 16 ビットリロードレジスタ (TMRLR) は , 16 ビットダウンカウンタへのロード値を 設定するレジスタです。16 ビットリロードレジスタに設定された値が , 16 ビットダ ウンカウンタにロードされ , ダウンカウント動作を行います。 ■ 16 ビットリロードレジスタ (TMRLR) 図 13.4-5 16 ビットリロードレジスタ (TMRLR) アドレス ch.0 00052H 00053H ch.1 00056H 00057H ch.2 0005AH 0005BH bit bit 15 D15 14 D14 13 D13 12 D12 11 D11 10 D10 9 D9 8 D8 R/W R/W R/W R/W R/W R/W R/W R/W 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB 初期値 XXXXXXXXB R/W :リード / ライト可能 X :不定 16 ビットリロードレジスタ (TMRLR) に値を設定する場合は , 16 ビットリロードタイ マの動作モードに関係なく , カウント動作を停止 (TMCSR:CNTE=0) させてください。 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作 モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力された場合 , 16 ビットリ ロードレジスタに設定した値が 16 ビットダウンカウンタにロードされ , ダウンカウン トを開始します。 16 ビットリロードレジスタ (TMRLR) に設定した値は , リロードモードの場合 , 16 ビッ トダウンカウンタのアンダフロー("0000H" → "FFFFH") にて , 16 ビットリロードレジス タの値を 16 ビットダウンカウンタにロードし , ダウンカウントを継続します。また , ワンショットモードの場合は , 16 ビットダウンカウンタのアンダフローにて , 16 ビッ トダウンカウンタは "FFFFH" で停止します。 <注意事項> ・16 ビットリロードレジスタ (TMRLR) へ値を設定する場合は , カウント動作を停止 (TMCSR:CNTE=0) させてください。 ・16 ビットリロードレジスタ (TMRLR) への設定は , ワード転送命令 (MOVW 003AH, A) を使用してください。 ・16 ビットリロードレジスタ (TMRLR) は , 書込み専用のレジスタで , 16 ビットタイマレ ジスタ (TMR) は読出し専用のレジスタですが , 同一アドレスに配置されているため , 書 込み値と読出し値は異なり , INC/DEC 命令などのリードモディファイライト (RMW) 系 命令は使用できません。 272 第 13 章 16 ビットリロードタイマ 13.5 16 ビットリロードタイマの割込み 16 ビットリロードタイマは , 16 ビットダウンカウンタのアンダフローで割込み要求 を出力します。拡張インテリジェント I/O サービス (EI2OS) に対応しています。 ■ 16 ビットリロードタイマの割込み 表 13.5-1 16 ビットリロードタイマの割込み制御ビットと割込み要因 16ビットリロードタイマ 0 16ビットリロードタイマ1 16ビットリロードタイマ 2 割込み要求フラグビット TMCSR0:UF TMCSR1:UF TMCSR2:UF 割込み要求許可ビット TMCSR0:INTE TMCSR1:INTE TMCSR2:INTE 割込み要因 16 ビットダウンカウンタ (TMR0) のアンダフロー 16 ビットダウンカウンタ (TMR1) のアンダフロー 16 ビットダウンカウンタ (TMR2) のアンダフロー 16 ビットリロードタイマでは , 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") で , タイマコントロールステータスレジスタ (TMCSR) のアンダフロー割込み 要求フラグビット (UF) に "1" がセットされます。アンダフロー割込み要求許可ビット が割込み要求を許可 (TMCSR:INTE=1) している場合に , 割込み要求を出力します。 ■ 16 ビットリロードタイマの割込みと EI2OS 表 13.5-2 16 ビットリロードタイマの割込みと EI2OS 割込み制御レジスタ チャネル ベクタテーブルのアドレス EI2OS 割込み番号 レジスタ名 アドレス 16 ビットリロード タイマ 0 #23(17H) ICR06 16 ビットリロード タイマ 1 #24(18H) 16 ビットリロード タイマ 2 #21(15H) ICR05 下位 上位 バンク FFFFA0H FFFFA1H FFFFA2H 0000B6H 0000B5H △ FFFF9CH FFFF9DH FFFF9EH FFFFA8H FFFFA9H FFFFAAH ○ △ :ICR を共有する割込み要因を使用しない場合に使用可能 ■ 16 ビットリロードタイマの EI2OS 機能 16 ビットリロードタイマは , 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") で , 拡張インテリジェント I/O サービス (EI2OS) を使用できます。 273 第 13 章 16 ビットリロードタイマ 16 ビットリロードタイマの動作説明 13.6 16 ビットリロードタイマの設定とカウンタの動作状態について説明します。 ■ 16 ビットリロードタイマの設定 ● 内部クロックモードの設定 インターバルタイマとして動作させるには , 図 13.6-1 のように設定します。 図 13.6-1 内部クロックモードの設定 bit TMCSR 15 14 13 12 − − − − 11 10 9 8 7 6 5 4 3 CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE "11B" 以外 TMRLR ◎ ◎ ◎ ◎ ◎ ◎ ◎ 2 UF 1 0 CNTE TRG ◎ 1 ◎ 1 0 カウンタの初期値 ( リロード値 ) を設定 ◎:使用ビット 1:"1" を設定 ● イベントカウントモードの設定 イベントカウンタとして動作させるには , 図 13.6-2 のように設定します。 図 13.6-2 イベントカウントモードの設定 bit TMCSR 15 14 13 12 − − − − 11 1 TMRLR 10 9 8 7 6 5 4 3 CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE 1 ◎ ◎ ◎ ◎ ◎ ◎ ◎ 2 UF ◎ CNTE TRG 1 ◎ カウンタの初期値 ( リロード値 ) を設定 DDR5 △ △ ◎ :使用ビット 1 :"1" を設定 △ :使用する端子に対応するビットに "0" を設定 △ ■ カウンタの動作状態 16 ビットダウンカウンタの状態は , タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) 値と内部信号の起動トリガ待ち信号値 (WAIT) で決まり ます。STOP 状態 ( 停止状態 ), WAIT 状態 ( 起動トリガ待ち状態 ), および RUN 状態 ( 動 作状態 ) のカウント許可ビット (CNTE) 値と内部信号の起動トリガ待ち信号値 (WAIT) の関係を図 13.6-3 に示します。 274 第 13 章 16 ビットリロードタイマ 図 13.6-3 カウンタ状態遷移図 STOP状態 CNTE=0,WAIT=1 TIN端子 :入力禁止 TOT端子 :汎用ポート リセット カウンタ:停止時の値を保持 リセット直後は不定 CNTE=0 CNTE=0 CNTE=1 TRG=0 WAIT状態 CNTE=1,WAIT=1 TIN端子:トリガ入力のみ有効 TOT端子:初期値出力 CNTE=1 TRG=1 RUN状態 CNTE=1,WAIT=0 TIN端子 :TIN端子として機能 TOT端子 :TOT端子として機能 UF=1 カウンタ :停止時の値を保持 カウンタ:動作 RELD=0 リセット直後ロードするまでは不定 (ワンショットモード) UF=1 RELD=1 TRG=1 (リロードモード) TRG=1 (ソフトトリガ) (ソフトトリガ) LOAD CNTE=1, WAIT=0 TIN端子から外部トリガ 16ビットリロードレジスタの値を16ビット ダウンカウンタへロード ロード終了 :ハードウェアによる状態遷移 :レジスタアクセスによる状態遷移 WAIT :内部信号の起動トリガ待ち信号値 TRG :タイマコントロールステータスレジスタ(TMCSR)のソフトウェアトリガビット CNTE :タイマコントロールステータスレジスタ(TMCSR)のカウント許可ビット UF :タイマコントロールステータスレジスタ(TMCSR)のアンダフロー割込み要求フラグビット RELD :タイマコントロールステータスレジスタ(TMCSR)のリロード許可ビット 275 第 13 章 16 ビットリロードタイマ 13.6.1 内部クロックモード ( リロードモード ) 内部カウントクロックに同期して , 16 ビットダウンカウンタをダウンカウントし , アンダフロー ("0000H" → "FFFFH") で割込み要求を出力します。また , タイマ出力 端子からトグル波形を出力できます。 ■ 内部クロックモード ( リロードモード ) の動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作 モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力された場合 , 16 ビットリ ロードレジスタ (TMRLR) に設定されている値が 16 ビットダウンカウンタにロードさ れ , ダウンカウントを開始します。カウント許可ビット (CNTE) とソフトウェアトリガ ビットが同時に "1" へ設定された場合は , カウント動作を許可すると同時にダウンカウ ントを開始します。 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") にて , 16 ビットリロー ドレジスタ (TMRLR) に設定されている値が 16 ビットダウンカウンタにロードされ , ダ ウンカウントを継続します。16 ビットダウンカウンタのアンダフローにて , タイマコ ントロールステータスレジスタ(TMCSR)のアンダフロー割込み要求フラグビット(UF) に "1" がセットされ , アンダフロー割込み要求許可ビット (INTE) を "1" に設定してい る場合は , CPU へ割込み要求を出力します。 TOT 端子からは , アンダフローごとに反転するトグル波形が出力されます。 ● ソフトトリガ動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , ソフトウェアトリガビット (TRG) が "1" に設定されていると , カウント動作を開始します。 図 13.6-4 リロードモード時のカウント動作 ( ソフトトリガ動作 ) カウントクロック カウンタ リロード データ -1 0000H リロード データ -1 0000H リロード データ データロード信号 UFビット CNTEビット TRGビット T* TOT端子 T :マシンサイクル(マシンクロックの1周期) *:トリガ入力からリロードデータロードまで1Tの時間がかかります。 276 -1 0000H リロード データ -1 第 13 章 16 ビットリロードタイマ ● 外部トリガ入力動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , 動作モード設定ビット (MOD2, MOD1, MOD0) にて設定されて いるトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に 入力された場合 , カウント動作を開始します。 図 13.6-5 リロードモード時のカウント動作 ( 外部トリガ動作 ) カウントクロック カウンタ リロード データ -1 0000H リロード データ -1 0000H リロード データ -1 0000H リロード データ -1 データロード信号 UFビット CNTEビット TIN端子 TOT端子 2T~2.5T* T :マシンサイクル(マシンクロックの1周期) * :外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。 <注意事項> TIN 端子へ入力するトリガパルス幅は , 2/ φ ( φ : マシンクロック周波数 ) 以上としてくだ さい。 277 第 13 章 16 ビットリロードタイマ ● 外部ゲート入力動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定すると , カウン ト動作を開始します。 動作モード設定ビット(MOD2, MOD1, MOD0)にて設定されているゲート入力の有効レ ベル("L", "H"から設定可能)がTIN端子に入力されている間, カウント動作を行います。 図 13.6-6 リロードモード時のカウント動作 ( ソフトトリガ , ゲート入力動作 ) カウントクロック カウンタ リロードデータ -1 -1 -1 0000H リロード データ -1 -1 データロード信号 UFビット CNTEビット TRGビット T* TIN端子 TOT端子 T :マシンサイクル(マシンクロックの1周期) * :トリガ入力からリロードデータロードまで1Tの時間がかかります。 <注意事項> TIN 端子へ入力するゲート入力のパルス幅は , 2/ φ ( φ : マシンクロック周波数 ) 以上とし てください。 278 第 13 章 16 ビットリロードタイマ 13.6.2 内部クロックモード ( ワンショットモード ) 内部カウントクロックに同期して , 16 ビットダウンカウンタをダウンカウントし , アンダフロー ("0000H" → "FFFFH") で割込み要求を出力します。また , TOT 端子か らカウント中を示す矩形波を出力できます。 ■ 内部クロックモード ( ワンショットモード ) タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作 モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力された場合 , 16 ビットリ ロードレジスタ (TMRLR) にて設定されている値が 16 ビットダウンカウンタにロード され , ダウンカウントを開始します。カウント許可ビット (CNTE) とソフトウェアトリ ガビット (TMCSR:TRG) へ同時に "1" を設定した場合は , カウント動作を許可すると同 時にダウンカウントを開始します。 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") にて , 16 ビットダウン カウンタは "FFFFH" の状態で , カウント動作を停止します。 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") にて , タイマコントロー ルステータスレジスタ (TMCSR) のアンダフロー割込み要求フラグビット (UF) に "1" が セットされ , アンダフロー割込み要求許可ビット (INTE) に "1" を設定している場合は , 割込み要求を出力します。 TOT 端子からは , カウント中を示す矩形波が出力できます。 ● ソフトトリガ動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定すると , カウン ト動作を開始します。 279 第 13 章 16 ビットリロードタイマ 図 13.6-7 ワンショットモード時のカウント動作 ( ソフトトリガ動作 ) カウントクロック リロード データ カウンタ -1 0000H FFFFH リロード データ -1 0000H FFFFH データロード信号 UFビット CNTEビット TRGビット T* TOT端子 起動トリガ入力待ち T :マシンサイクル(マシンクロックの1周期) * :トリガ入力からリロードデータロードまで1Tの時間がかかります。 ● 外部トリガ入力動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合は , 動作モード設定ビット (MOD2, MOD1, MOD0) にて設定されて いるトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に 入力された場合 , カウント動作を開始します。 図 13.6-8 ワンショットモード時のカウント動作 ( 外部トリガ動作 ) カウントクロック カウンタ リロード データ -1 0000H FFFFH リロード データ -1 0000H FFFFH データロード信号 UFビット CNTEビット TIN端子 2T~2.5T* TOT端子 起動トリガ入力待ち T :マシンサイクル(マシンクロックの1周期) * :外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。 <注意事項> TIN 端子へ入力するトリガパルス幅は , 2/φ ( φ : マシンクロック周波数 ) 以上としてくださ い。 280 第 13 章 16 ビットリロードタイマ ● 外部ゲート入力動作 タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1" に設定している場合 , ソフトウェアトリガビット (TRG) が "1" に設定されると , カウン ト動作を開始します。 動作モード設定ビット(MOD2, MOD1, MOD0)で設定しているトリガ入力の有効レベル ("L", "H" から設定可能 ) が TIN 端子に入力されている間 , カウント動作を行います。 図 13.6-9 ワンショットモード時のカウント動作 ( ソフトトリガゲート入力動作 ) 内部カウントクロック リロードデータ カウンタ -1 0000H FFFFH -1 -1 リロードデータ データロード信号 UFビット CNTEビット TRGビット T* TIN端子 TOT端子 起動トリガ入力待ち T :マシンサイクル(マシンクロックの1周期) * :トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。 <注意事項> TIN 端子へ入力するゲート入力のパルス幅は , 2/ φ ( φ : マシンクロック周波数 ) 以上とし てください。 281 第 13 章 16 ビットリロードタイマ イベントカウントモード 13.6.3 TIN 端子に入力されたパルスの有効エッジを検出するごとに , 16 ビットダウンカウ ンタをダウンカウントし , アンダフロー ("0000H" → "FFFFH") で割込み要求を出力 します。また , TOT 端子からトグル波形 , 矩形波を出力できます。 ■ イベントカウントモード タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) が "1" に設定されている場合は , ソフトウェアトリガビット (TRG) を "1" に設定すると , 16 ビットリロードレジスタ (TMRLR) に設定されている値が , 16 ビットダウンカウンタに ロードされ , TIN 端子に入力されたパルス ( 外部カウントクロック ) の有効エッジ ( 立 上り , 立下り , 両エッジから設定可能 ) を検出するごとに , ダウンカウントします。カ ウント許可ビット (CNTE) とソフトウェアトリガビット (TRG) に同時に "1" を設定した 場合 , カウント動作を許可すると同時にダウンカウントを開始します。 ● リロードモードの動作 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") によって , 16 ビットリ ロードレジスタ (TMRLR) に設定されている値が 16 ビットダウンカウンタにロードさ れ , ダウンカウント動作を継続します。 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") によって , タイマコント ロールステータスレジスタ (TMCSR) のアンダフロー割込み要求フラグビット (UF) が "1" にセットされ , アンダフロー割込み要求許可ビット (INTE) が "1" に設定されている 場合は , CPU へ割込み要求を出力します。 TOT 端子からは , アンダフローごとに反転するトグル波形を出力できます。 図 13.6-10 リロードモード時のカウント動作 ( イベントカウントモード ) TIN端子 リロード データ カウンタ -1 0000H リロード データ -1 0000H リロード データ -1 0000H リロード データ -1 データロード信号 UFビット CNTEビット TRGビット T* TOT端子 T :マシンサイクル(マシンクロックの1周期) * :トリガ入力からリロードデータロードまで1Tの時間がかかります。 <注意事項> TIN 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/ φ ( φ : マシンクロック周波数 ) 以 上としてください。 282 第 13 章 16 ビットリロードタイマ ● ワンショットモード時の動作 16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") によって , 16 ビットダ ウンカウンタの値は , "FFFFH" の状態でカウント動作を停止します。 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") によって , タイマコント ロールステータスレジスタ (TMCSR) のアンダフロー要求フラグビット (UF) が "1" に セットされると , 割込み要求許可ビット (INTE) を "1" に設定している場合は , CPU へ 割込み要求を出力します。 TOT 端子からは , カウント中を示す矩形波が出力できます。 図 13.6-11 ワンショットモード時のカウンタ動作 ( イベントカウントモード ) TIN端子 リロード データ カウンタ -1 0000H FFFFH リロード データ -1 0000H FFFFH データロード信号 UFビット CNTEビット TRGビット T* TOT端子 起動トリガ入力待ち T :マシンサイクル(マシンクロックの1周期) * :トリガ入力からリロードデータロードまで1Tの時間がかかります。 <注意事項> TIN 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/ φ ( φ : マシンクロック周波数 ) 以 上としてください。 283 第 13 章 16 ビットリロードタイマ 13.7 16 ビットリロードタイマ使用上の注意 16 ビットリロードタイマを使用する場合の注意点を示します。 ■ 16 ビットリロードタイマ使用上の注意 ● プログラムで設定する場合の注意 • 16 ビットリロードレジスタ (TMRLR) に値を設定する場合は , カウント動作を停止 (TMCSR:CNTE=0) させてください。16 ビットタイマレジスタ (TMR) を読み出す場 合は , 必ずワード転送命令 (MOVW A, dir) を使用してください。 • タイマコントロールステータスレジスタ (TMCSR) のカウントクロック設定ビット (CSL1, CSL0) を変更する場合は , カウント動作を停止 (TMCSR:CNTE=0) させてくだ さい。 ● 割込みに関連する注意 タイマコントロールステータスレジスタ (TMCSR) のアンダフロー割込み要求フラグ ビット (UF) が "1" にセットされ , アンダフロー割込み要求許可ビット (INTE) が "1" に 設定されている場合は , 割込み処理から復帰できません。アンダフロー割込み要求フラ グビット (UF) は , 必ず "0" にクリアしてください。 284 第 14 章 入出力タイマ 入出力タイマの動作について説明します。 14.1 入出力タイマの概要 14.2 入出力タイマのブロックダイヤグラム 14.3 入出力タイマのレジスタ一覧 14.4 入出力タイマの割込み 14.5 入出力タイマの動作説明 285 第 14 章 入出力タイマ 入出力タイマの概要 14.1 入出力タイマは , 16 ビットフリーランタイマ 1 本 , インプットキャプチャ 2 本 , ア ウトプットコンペア 2 本から構成されています。 ■ 構成 ● 16 ビットフリーランタイマ ( × 1) 16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールレジスタ , 16 ビットコンペアクリアレジスタ , プリスケーラより構成されています。カウンタの出力 値はインプットキャプチャの基本時間 ( ベースタイマ ) として使用されます。 カウンタ動作クロックは 8 種類から選択可能です。 内部クロック 8 種類 ( φ , φ/2, φ/4, φ/8, φ/16, φ/32, φ /64, φ/128) φ : マシンクロック 割込みはカウンタ値のオーバフロー , コンペアクリアレジスタとのコンペア一致によ り発生できます ( コンペア一致はモード設定が必要です ) 。 カウンタ値は , リセット , ソフトクリア , コンペアクリアレジスタとのコンペア一致に より "0000H" に初期化できます。 ● インプットキャプチャ ( × 2) インプットキャプチャは独立した 6 本の外部入力端子と対応したキャプチャレジスタ , コントロールレジスタにより構成されています。外部入力端子から入力された信号の 任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ に保持し , 同時に割込みを発生できます。 • 外部入力信号の有効エッジ ( 立上りエッジ , 立下りエッジ , 両エッジ ) を選択可能 • 2 本のインプットキャプチャは独立して動作が可能 • 割込みは外部入力信号の有効エッジにより発生が可能 ●アウトプットコンペア ( × 2) アウトプットコンペアは 2 本の 16 ビットアウトプットコンペアレジスタ , コンペア出 力用ラッチ , コントロールレジスタより構成されています。16 ビットフリーランタイ マ値とアウトプットコンペアレジスタ値が一致したとき出力レベルを反転すると共に 割込みを発生できます。 2 本のアウトプットコンペアレジスタを独立して動作が可能です。各アウトプットコン ペアレジスタに対応した割込みフラグ割込みはコンペア一致により発生可能です。 286 第 14 章 入出力タイマ 入出力タイマのブロックダイヤグラム 14.2 入出力タイマのブロックダイヤグラムを記載します。 ■ ブロックダイヤグラム 図 14.2-1 入出力タイマブロックダイヤグラム 割込み #18 IVF IVFE STOP MODE SCLR CLK2 CLK1 分周器 CLK0 クロック 16ビットフリーランタイマ 16ビット コンペアクリアレジスタ MSI2 ~ MSI0 16ビットフリーランタイマ F2MC-16LX バス 16ビットフリーランタイマ 16ビットフリーランタイマ 割込み #18 コンペア制御 ICLR ICRE TQ OTE0 TQ OTE1 CMO 16ビットフリーランタイマ IOP1 IOP0 IOE1 IOE0 割込み #25 #26 エッジ検出 キャプチャデータレジスタ0 EG11 EG10 EG01 エッジ検出 キャプチャデータレジスタ1 ICP0 ICP1 ICE0 IC0 EG00 IC1 ICE1 割込み #25 #26 287 第 14 章 入出力タイマ 14.3 入出力タイマのレジスタ一覧 入出力タイマのレジスタ一覧について説明します。 ■ 16 ビットフリーランタイマ部レジスタ一覧 コンペアクリアレジスタ上位 アドレス 00003BH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 CL15 R/W (X) CL14 R/W (X) CL13 R/W (X) CL12 R/W (X) CL11 R/W (X) CL10 R/W (X) CL09 R/W (X) CL08 R/W (X) CPCLR ←リード / ライト ←初期値 コンペアクリアレジスタ下位 アドレス 00003AH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CL07 R/W (X) CL06 R/W (X) CL05 R/W (X) CL04 R/W (X) CL03 R/W (X) CL02 R/W (X) CL01 R/W (X) CL00 R/W (X) CPCLR ←リード / ライト ←初期値 タイマデータレジスタ上位 アドレス 00003DH 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) TCDT ←リード / ライト ←初期値 タイマデータレジスタ下位 アドレス 00003CH 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 ←リード / ライト ←初期値 タイマコントロールステータスレジスタ上位 アドレス 00003FH bit15 ECKE R/W (0) bit14 − − (−) bit13 bit12 bit11 bit10 bit9 bit8 − − (−) MSI2 R/W (0) MSI1 R/W (0) MSI0 R/W (0) ICLR R/W (0) ICRE R/W (0) TCCSH ←リード / ライト ←初期値 タイマコントロールステータスレジスタ下位 アドレス 00003EH 288 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 IVF R/W (0) IVFE R/W (0) STOP R/W (0) MODE R/W (0) SCLR R/W (0) CLK2 R/W (0) CLK1 R/W (0) CLK0 R/W (0) TCCSL ←リード / ライト ←初期値 第 14 章 入出力タイマ ■ インプットキャプチャ部レジスタ一覧 インプットキャプチャ データレジスタ上位 アドレス:ch.0 000045 H アドレス:ch.1 000047 H インプットキャプチャ データレジスタ下位 アドレス:ch.0 000044 H アドレス:ch.1 000046 H インプットキャプチャ コントロールステータス レジスタ0/1 アドレス:000048H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 IPCP0,IPCP1 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 IPCP0,IPCP1 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 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 ← リード/ライト ← 初期値 ■ アウトプットコンペア部レジスタ一覧 アウトプットコンペアレジスタ上位 アドレス:ch.0 00004B H アドレス:ch.1 00004D H アウトプットコンペアレジスタ下位 アドレス:ch.0 00004A H アドレス:ch.1 00004C H アウトプットコンペアコントロール ステータスレジスタ上位 アドレス:ch.1 00004F H bit15 bit14 bit13 bit12 bit11 bit10 bit9 OCCP0,OCCP1 OP15 OP14 OP13 OP12 OP11 OP10 OP09 OP08 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 OCCP0,OCCP1 OP07 OP06 OP05 OP04 OP03 OP02 OP01 OP00 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 OCSH - - - - - - (-) (-) (-) アウトプットコンペアコントロール ステータスレジスタ下位 アドレス:ch.1 00004E H bit8 bit7 bit6 CMOD OTE1 OTE0 OTD1 OTD0 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 OCSL IOP1 IOP0 IOE1 IOE0 R/W (0) R/W (0) R/W (0) R/W (0) - - - - (-) (-) CST1 CST0 R/W (0) R/W (0) ← リード/ライト ← 初期値 289 第 14 章 入出力タイマ 14.3.1 16 ビットフリーランタイマのレジスタ詳細説明 16 ビットフリーランタイマのレジスタには , 次の 3 つのレジスタがあります。 ・タイマデータレジスタ (TCDT) ・コンペアクリアレジスタ (CPCLR) ・タイマコントロールステータスレジスタ (TCCSL, TCCSH) ■ タイマデータレジスタ (TCDT) タイマデータレジスタ上位 アドレス 00003DH 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) TCDT ←リード / ライト ←初期値 タイマデータレジスタ下位 アドレス 00003CH 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 ←リード / ライト ←初期値 16 ビットフリーランタイマのカウント値を読み出すことのできるレジスタです。カウ ンタ値は , リセット時に "0000H" にクリアされます。このレジスタに書き込むことでタ イマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってください。このレジスタは , ワードアクセスしてください。16 ビットフリーランタイマの初期化は次の要因で行わ れます。 • リセットによる初期化 • コントロール・ステータスレジスタのクリア (CLR) による初期化 • コンペアクリアレジスタ値とタイマカウンタ値の一致による初期化 ( モード設定が 必要です ) 290 第 14 章 入出力タイマ ■ コンペアクリアレジスタ (CPCLR) コンペアクリアレジスタ上位 アドレス 00003BH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 CL15 R/W (X) CL14 R/W (X) CL13 R/W (X) CL12 R/W (X) CL11 R/W (X) CL10 R/W (X) CL09 R/W (X) CL08 R/W (X) CPCLR ←リード / ライト ←初期値 コンペアクリアレジスタ下位 アドレス 00003AH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CL07 R/W (X) CL06 R/W (X) CL05 R/W (X) CL04 R/W (X) CL03 R/W (X) CL02 R/W (X) CL01 R/W (X) CL00 R/W (X) CPCLR ←リード / ライト ←初期値 16ビットフリーランタイマと比較する16ビット長のアウトプットコンペアレジスタで す。レジスタ値は初期値不定ですので , 動作許可する場合は値を設定してから動作を許 可してください。レジスタはワードアクセスしてください。タイマコントロールステー タスレジスタ (TCCS) の MODE ビットに "1" を設定している場合は , 本レジスタ値と 16 ビットフリーランタイマ値が一致したとき, 16 ビットフリーランタイマ値を"0000H" にクリアします。また , 本レジスタ値と 16 ビットフリーランタイマ値が一致したとき , コンペアクリア割込みフラグをセットします。コンペア割込みフラグが "1" のとき割 込み動作を許可している場合は , CPU に対して割込み要求を行います。 ■ タイマコントロールステータスレジスタ (TCCSH, TCCSL) タイマコントロールステータスレジスタ上位 アドレス 00003FH 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) TCCSH ←リード / ライト ←初期値 タイマコントロールステータスレジスタ下位 アドレス 00003EH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 IVF R/W (0) IVFE R/W (0) STOP R/W (0) MODE R/W (0) SCLR R/W (0) CLK2 R/W (0) CLK1 R/W (0) CLK0 R/W (0) TCCSL ←リード / ライト ←初期値 【bit15】:ECKE 16 ビットフリーランタイマのカウントクロックソースを内部か外部かを選択する ビットです。ECKE ビットに書込み後すぐにクロックは変更されますのでアウト プットコンペア , インプットキャプチャが停止状態で変更してください。 ECKE フラグの意味 0 内部クロックソースを選択 ( 初期値 ) 1 外部端子 (P74) よりクロック入力 291 第 14 章 入出力タイマ <注意事項> 内部クロックを選択した場合は , bit2 ∼ bit0(CLK2 ∼ CLK0) にカウントクロックの設定を 行ってください。このカウントクロックがベースクロックとなります。また , P74 からク ロックを入力する場合は , DDR5:bit6 = 0 に設定してください。 【bit14, bit13】: − 未定義ビットです ( リードした場合は不定値 , ライトした場合は動作に影響しませ ん)。 【bit12 ∼ bit10】: MSI2 ∼ MSI0 コンペアクリア割込みをマスクする回数を設定するビットです。3 ビットのリロー ドカウンタで構成され , カウンタの値が "000B" になるたびにカウント値をリロード します。また , レジスタ書込み時にもカウンタ値をロードします。マスク回数 = 設 定回数となります ( 例 :2 回マスクし 3 回目で割込み処理をする場合 , 設定値 "010B")。 ただし , "000B" を設定すると割込み要因のマスクは行われません。 【bit9】:ICLR コンペアクリアの割込み要求フラグです。コンペアクリアレジスタ値と 16 ビット フリーランタイマ値がコンペア一致した場合に ICLR ビットは "1" にセットされま す。割込み要求許可ビット (bit8:ICRE) がセットされていると割込みが発生します。 ICLR ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。 リードモディファイライト (RMW) 系命令では , 常に "1" が読み出せます。 ICLR フラグの意味 0 割込み要求なし ( 初期値 ) 1 割込み要求あり <注意事項> "1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書込みを行うと , カ ウンタ値の初期化は行われません。 【bit8】:ICRE コンペアクリアの割込み許可ビットです。ICRE ビットが "1" の場合 , 割込みフラグ (bit9:ICLR) が "1" にセットされると割込みが発生します。 ICRE 292 フラグの意味 0 割込み禁止 ( 初期値 ) 1 割込み許可 第 14 章 入出力タイマ 【bit7】:IVF 16 ビットフリーランタイマの割込み要求フラグです。16 ビットフリーランタイマ がオーバフローを起こした場合に IVF ビットは "1" にセットされます。割込み要求 許可ビット (bit6:IVFE) がセットされていると割込みが発生します。IVF ビットは "1" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リードモディ ファイライト (RMW) 系命令では , 常に "1" が読めます。 IVF フラグの意味 0 割込み要求なし ( 初期値 ) 1 割込み要求あり 【bit6】:IVFE 16 ビットフリーランタイマの割込み許可ビットです。IVFE ビットが "1" の場合 , 割 込みフラグ (bit7:IVF) が "1" にセットされると割込みが発生します。 IVFE フラグの意味 0 割込み禁止 ( 初期値 ) 1 割込み許可 【bit5】:STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。"1" 書込み時 にタイマのカウントが停止します。"0" 書込み時にタイマのカウントを開始します。 STOP フラグの意味 0 カウント許可 ( 動作 ) ( 初期値 ) 1 カウント禁止 ( 停止 ) <注意事項> 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 【bit4】:MODE 16 ビットフリーランタイマの初期化条件を設定します。"0" の場合は , リセットと クリアビット (bit3:SCLR) でカウンタ値を初期化可能です。"1" の場合は , リセット とクリアビット (bit3:SCLR) のほかにコンペアクリアレジスタの値との一致により カウンタ値を初期化できます。 MODE フラグの意味 0 リセット , クリアビットによる初期化 ( 初期値 ) 1 リセット , クリアビット , コンペアクリアレジスタによる初期化 293 第 14 章 入出力タイマ <注意事項> カウンタ値の初期化はカウント値の変化点で行われます。 【bit3】: SCLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。 "1" 書込み時にカウンタを "0000H" に初期化します。"0" を書き込んでも意味を持ち ません。読出し値は , 常に "0" です。カウンタ値の初期化は , カウント値の変化点で 行われます。 SCLR フラグの意味 0 意味を持ちません ( 初期値 ) 1 カウンタ値を "0000H" に初期化 <注意事項> タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。 【bit2 ∼ bit0】: CLK2 ∼ CLK0 16 ビットフリーランタイマのカウントクロックを選択するビットです。CLK ビッ トに書込み後すぐにクロックは変更されますのでアウトプットコンペア , インプッ トキャプチャが停止状態で変更してください。 CLK2 CLK1 CLK0 カウント クロック φ =25 MHz φ =16 MHz φ = 8 MHz φ = 4 MHz φ = 1 MHz 0 0 0 φ 40 ns 62.5 ns 125 ns 0.25 μs 1 μs 0 0 1 φ / 2 80 ns 125 ns 0.25 μs 0.5 μs 2 μs 0 1 0 φ/ 4 160 ns 0.25 μs 0.5 μs 1 μs 4 μs 0 1 1 φ/ 8 320 ns 0.5 μs 1 μs 2 μs 8 μs 1 0 0 φ / 16 0.64 μs 1 μs 2 μs 4 μs 16 μs 1 0 1 φ / 32 1.28 μs 2 μs 4 μs 8 μs 32 μs 1 1 0 φ / 64 2.56 μs 4 μs 8 μs 16 μs 64 μs 1 1 1 φ /128 5.12 μs 8 μs 16 μs 32 μs 128 μs φ =マシンクロック 294 第 14 章 入出力タイマ 14.3.2 インプットキャプチャのレジスタ詳細説明 インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。 ・インプットキャプチャデータレジスタ (IPCP0, IPCP1) ・インプットキャプチャコントロールステータスレジスタ (ICS01) ■ インプットキャプチャデータレジスタ (IPCP0, IPCP1) IPCP レジスタは , 対応した外部端子入力波形の有効エッジを検出した場合 , 16 ビット フリーランタイマ値を保持するレジスタです ( ワードアクセスしてください。書込み はできません )。 インプットキャプチャ データレジスタ上位 アドレス:ch.0 000045 H アドレス:ch.1 000047 H インプットキャプチャ データレジスタ下位 アドレス:ch.0 000044 H アドレス:ch.1 000046 H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 IPCP0,IPCP1 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 IPCP0,IPCP1 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) ← リード/ライト ← 初期値 ■ インプットキャプチャコントロールステータスレジスタ (ICS01) インプットキャプチャコントロールステータスレジスタ 0/1 アドレス 000048H bit7 bit6 bit5 bit4 bit3 bit2 bit1 ICP1 R/W (0) ICP0 R/W (0) ICE1 R/W (0) ICE0 R/W (0) EG11 R/W (0) EG10 R/W (0) EG01 R/W (0) bit0 EG00 ICS01 R/W ←リード / ライト (0) ←初期値 295 第 14 章 入出力タイマ 【bit7, bit6】: ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると ICP1, ICP0 ビットを "1" にセットします。割込み許可ビット (ICE1, ICE0) がセット されていると有効エッジを検出することにより割込みを発生できます。 ICP1, ICP0 ビットは , "0" 書込みによりクリアされます。"1" 書込みは意味を持ちま せん。リードモディファイライト (RMW) 系命令では "1" が読み出せます。 ICP1,ICP0 フラグの意味 0 有効エッジ検出なし ( 初期値 ) 1 有効エッジ検出あり ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。 【bit5, bit4】: ICE1, ICE0 インプットキャプチャ割込み許可ビットです。ICE ビットが "1" の場合 , 割込みフ ラグ (ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生しま す。 ICE1,ICE0 フラグの意味 0 割込み禁止 ( 初期値 ) 1 割込み許可 ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。 【bit3 ∼ bit0】: EG11, EG10, EG01, EG00 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可 も兼用しています。 EGn1 EGn0 0 0 エッジ検出なし ( 停止状態 ) ( 初期値 ) 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑ & ↓ エッジ検出極性 EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。 296 第 14 章 入出力タイマ アウトプットコンペアのレジスタ詳細説明 14.3.3 アウトプットコンペアのレジスタには , 次の 2 つのレジスタがあります。 ・アウトプットコンペアレジスタ (OCCP0, OCCP1) ・アウトプットコンペアコントロールステータスレジスタ (OCSL, OCSH) ■ アウトプットコンペアレジスタ (OCCP0, OCCP1) アウトプット コンペアレジスタ上位 アドレス:ch.0 00004B H アドレス:ch.1 00004D H アウトプット コンペアレジスタ下位 アドレス:ch.0 00004A H アドレス:ch.1 00004C H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 OCCP0/OCCP1 OP15 OP14 OP13 OP12 OP11 OP10 OP09 OP08 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 OCCP0/OCCP1 OP07 OP06 OP05 OP04 OP03 OP02 OP01 OP00 R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) ← リード/ライト ← 初期値 16ビットフリーランタイマと比較する16ビット長のアウトプットコンペアレジスタで す。レジスタ値は , 初期値不定ですので設定してから起動を許可してください。レジス タはワードアクセスしてください。レジスタ値と 16 ビットフリーランタイマ値が一致 したとき , コンペア信号が発生してアウトプットコンペア割込みフラグをセットしま す。 <注意事項> アウトプットコンペアレジスタを書き換える場合はコンペア割込みのルーチン内で行う か , コンペアを禁止の状態で行い , コンペア一致と書込みが同時に発生しないようにして ください。 ■ アウトプットコンペアコントロールステータスレジスタ (OCSL, OCSH) bit15 bit14 bit13 bit12 bit11 bit10 bit9 アウトプット コンペアコントロール ステータスレジスタ上位 アドレス: 00004FH OCSH - - - CMOD OTE1 OTE0 OTD1 OTD0 - (-) - (-) - (-) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit7 アウトプット コンペアコントロール ステータスレジスタ下位 アドレス: 00004E H bit8 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 OCSL IOP1 IOP0 IOE1 IOE0 - - CST1 CST0 R/W (0) R/W (0) R/W (0) R/W (0) - (-) - (-) R/W (0) R/W (0) ← リード/ライト ← 初期値 297 第 14 章 入出力タイマ 【bit15 ∼ bit13】: − 未定義ビットです ( リードした場合は不定値 , ライトした場合は動作に影響しませ ん)。 【bit12】:CMOD 端子出力を許可した場合 (OTE1=0 または OTE0=1) のコンペア一致における端子出 力レベル反転動作モードを切り換えます。 CMOD=0 のとき ( 初期値 ) はアウトプットコンペアレジスタに対応した端子の出力 レベルを反転します。 • OUT0: アウトプットコンペアレジスタ 0 の一致によりレベルを反転します。 • OUT1: アウトプットコンペアレジスタ 1 の一致によりレベルを反転します。 CMOD=1 のときアウトプットコンペアレジスタ 0 は , CMOD=0 と同じく出力レベル を反転しますが , アウトプットコンペアレジスタ 1 に対応した端子 (OUT1) の出力レ ベルは , アウトプットコンペアレジスタ 0 の一致とアウトプットコンペアレジスタ 1 の一致の両方で出力レベルを反転します。アウトプットコンペアレジスタ 0 と 1 が同 じ値のときは , アウトプットコンペアレジスタ 1 本のときと同じ動作をします。 • OUT0: アウトプットコンペアレジスタ 0 の一致によりレベルを反転します。 • OUT1: アウトプットコンペアレジスタ 0 と 1 の一致によりレベルを反転します。 【bit11, bit10】:OTE1, OTE0 アウトプットコンペアの端子出力を許可するビットです。 OTE1,OTE0 フラグの意味 0 汎用ポートとして動作します ( 初期値 ) 1 アウトプットコンペア端子出力になります OTE1: アウトプットコンペア 1 に対応 OTE0: アウトプットコンペア 0 に対応 【bit9, bit8】:OTD1, OTD0 アウトプットコンペアステータスレジスタの端子出力を許可した場合の端子出力 レベルを変更するときに使用します。コンペア端子出力の初期値は "0" となります。 書込み時はコンペア動作を停止してから行ってください。読出し時は , アウトプッ トコンペア端子出力値が読み出せます。 OTD1,OTD0 フラグの意味 0 コンペア端子出力を "0" にします ( 初期値 ) 1 コンペア端子出力を "1" にします OTD1: アウトプットコンペア 1 に対応 OTD0: アウトプットコンペア 0 に対応 298 第 14 章 入出力タイマ 【bit7, bit6】:IOP1, IOP0 アウトプットコンペアの割込みフラグです。アウトプットコンペアレジスタと 16 ビットフリーランタイマ値が一致した場合に"1"にセットされます。割込み要求ビッ ト (IOE1, IOE0) が許可されているときに , IOP1, IOP0 ビットが "1" にセットされる とアウトプットコンペア割込みが発生します。IOP1, IOP0 ビットは "0" 書込みによ りクリアされ "1" 書込みでは意味を持ちません。リードモディファイライト (RMW) 系命令では "1" が読み出せます。 IOP1,IOP0 フラグの意味 0 アウトプットコンペア一致なし ( 初期値 ) 1 アウトプットコンペア一致あり IOP1:アウトプットコンペア 1 に対応 IOP0:アウトプットコンペア 0 に対応 【bit5, bit4】: IOE1, IOE0 アウトプットコンペアの割込みを許可するビットです。IOE1, IOE0 ビットが "1" の とき , 割込みフラグ (IOP1, IOP0) が "1" にセットされるとアウトプットコンペア割 込みが発生します。 IOE1,IOE0 フラグの意味 0 アウトプットコンペア割込み禁止 ( 初期値 ) 1 アウトプットコンペア割込み許可 IOE1:アウトプットコンペア 1 に対応 IOE0:アウトプットコンペア 0 に対応 【bit3, bit2】: − 未定義ビットです(リードした場合は不定値, ライトした場合は動作に影響しません)。 【bit1, bit0】: CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許 可する前に必ずアウトプットコンペアレジスタ値およびアウトプットデータレジ スタ値を設定してください。 CST1,CST0 フラグの意味 0 コンペア動作禁止 ( 初期値 ) 1 コンペア動作許可 CST1: アウトプットコンペア 1 に対応 CST0: アウトプットコンペア 0 に対応 299 第 14 章 入出力タイマ <注意事項> アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビット フリーランタイマを停止させるとコンペア動作も停止します。 300 第 14 章 入出力タイマ 14.4 入出力タイマの割込み 次の入出力タイマの割込みについて説明します。 ・16 ビットフリーランタイマの割込み ・インプットキャプチャの割込み ・アウトプットコンペアの割込み ■ 入出力タイマの割込み ● 16 ビットフリーランタイマの割込み 16 ビットフリーランタイマは , 16 ビットフリーランタイマがクリアまたはオーバフ ローを起こすことで割込み要求を発生させることができます。 ● インプットキャプチャの割込み インプットキャプチャは , 外部入力端子の有効エッジを検出することで割込み要求を 発生させることができます。また , 拡張インテリジェント I/O サービス (EI2OS) にも対 応しています。 ● アウトプットコンペアの割込み アウトプットコンペアは , アウトプットコンペアレジスタ値と 16 ビットフリーランタ イマが一致することで割込み要求を発生させることができます。また , 拡張インテリ ジェント I/O サービス (EI2OS) にも対応しています。 301 第 14 章 入出力タイマ 14.4.1 16 ビットフリーランタイマの割込み 16 ビットフリーランタイマは , 16 ビットフリーランタイマがクリアまたはオーバフ ローを起こすことで割込み要求を発生させることができます。 ■ 16 ビットフリーランタイマの割込み 16 ビットフリーランタイマの割込み制御ビットと割込み要因は , 表 14.4-1 のように なっています。 表 14.4-1 16 ビットフリーランタイマの割込み制御ビットと割込み要因 割込み要因 割込みフラグビット 割込み許可ビット 割込みフラグのクリア タイマコントロールステータスレジスタ上位 (TCCSH) 16 ビット フリーランタイマ クリア コンペアクリア 割込み要求フラグ ビット (ICLR) コンペアクリア 割込み許可ビット (ICRE) ・コンペアクリア割込み 要求フラグビット (ICLR) への "0" 書込み ・リセット タイマコントロールステータスレジスタ下位 (TCCSL) 16 ビット フリーランタイマ オーバフロー 16 ビット フリーランタイマ 割込み要求フラグ ビット (IVF) 16 ビット フリーランタイマ 割込み許可ビット (IVFE) ・16 ビットフリーランタ イマ割込み要求フラグ ビット (IVF) への "0" 書 込み ・リセット 16 ビットフリーランタイマでは , 表 14.4-1 の割込み要因で割込みフラグビットが "1" にセットされます。このとき , 割込み許可ビットが "1" にセットされていると , 割込み コントローラに割込み要求を出力します。 ■ 16 ビットフリーランタイマの割込みと EI2OS 表 14.4-2 に , 16 ビットフリーランタイマの割込みと EI2OS を示します。 表 14.4-2 16 ビットフリーランタイマの割込みと EI2OS チャネル 割込み 番号 割込み制御レジスタ EI2OS レジスタ名 アドレス 下位 上位 バンク ICR03 0000B3H FFFFB4H FFFFB5H FFFFB6H フリーランタイマ ( オーバフロー ) #18 フリーランタイマ ( クリア ) ○:使用可能 302 ベクタテーブルのアドレス ○ 第 14 章 入出力タイマ 14.4.2 インプットキャプチャの割込み インプットキャプチャは , 外部入力端子の有効エッジを検出することで割込み要求 を発生させることができます。また , 拡張インテリジェント I/O サービス (EI2OS) に も対応しています。 ■ インプットキャプチャの割込み インプットキャプチャの割込み制御ビットと割込み要因は , 表 14.4-3 のようになって います。 表 14.4-3 インプットキャプチャの割込み制御ビットと割込み要因 割込み要因 割込みフラグビット 割込み許可ビット 割込みフラグのクリア インプットキャプチャコントロールステータスレジスタ (ICS01) 外部入力端子の 有効エッジ ICP0 ICE0 ICP1 ICE1 ・ICP0, ICP1 ビットへの "0" 書込み ・リセット インプットキャプチャでは , 表 14.4-3 の割込み要因で割込みフラグビットが "1" にセッ トされます。このとき , 割込み許可ビットが "1" にセットされていると , 割込みコント ローラに割込み要求を出力します。 ■ インプットキャプチャの割込みと EI2OS 表 14.4-4 に , インプットキャプチャの割込みと EI2OS を示します。 表 14.4-4 インプットキャプチャの割込みと EI2OS 割込み制御レジスタ チャネル EI2OS レジスタ名 インプット キャプチャ 0 アドレス #25 ICR07 インプット キャプチャ 1 ベクタテーブルのアドレス 割込み番号 下位 上位 バンク FFFF98H FFFF99H FFFF9AH △ FFFF94H FFFF95H FFFF96H △ 0000B7H #26 △:割込みベクタを共有する割込み要因を使用しない場合に使用可能 ■ インプットキャプチャの EI2OS 機能 インプットキャプチャは EI2OS 対応の回路を持っています。このため , 外部入力端子 の有効エッジで EI2OS を起動させることができます。 303 第 14 章 入出力タイマ 14.4.3 アウトプットコンペアの割込み アウトプットコンペアは , アウトプットコンペアレジスタ値と 16 ビットフリーラン タイマ値が一致することで割込み要求を発生させることができます。また , 拡張イン テリジェント I/O サービス (EI2OS) にも対応しています。 ■ アウトプットコンペアの割込み アウトプットコンペアの割込み制御ビットと割込み要因は , 表 14.4-5 のようになって います。 表 14.4-5 アウトプットコンペアの割込み制御ビットと割込み要因 アウトプットコンペアコントロールステータスレジスタ下位 (OCSL) 割込み要因 アウトプットコンペア レジスタ値と 16 ビット フリーランタイマ値の一致 割込みフラグ ビット 割込み許可ビット IOP0 IOE0 IOP1 IOE1 割込みフラグのクリア ・IOP0, IOP1 ビットへの "0" 書込み ・リセット アウトプットコンペアでは , 表 14.4-5 の割込み要因で割込みフラグビットが "1" にセッ トされます。このとき , 割込み許可ビットが "1" にセットされていると , 割込みコント ローラに割込み要求を出力します。 ■ アウトプットコンペアの割込みと EI2OS 表 14.4-6 に , アウトプットコンペアの割込みと EI2OS を示します。 表 14.4-6 アウトプットコンペアの割込みと EI2OS 割込み制御レジスタ チャネル アウトプット コンペア 0, 1 ベクタテーブルのアドレス EI2OS 割込み番号 #29 レジスタ名 アドレス 下位 上位 バンク ICR09 0000B9H FFFF88H FFFF89H FFFF8AH ○ ○:使用可能 ■ アウトプットコンペアの EI2OS 機能 アウトプットコンペアは EI2OS 対応の回路を持っています。このため , アウトプット コンペアレジスタ値と 16 ビットフリーランタイマ値の一致で EI2OS を起動させること ができます。 304 第 14 章 入出力タイマ 14.5 入出力タイマの動作説明 入出力タイマの動作について説明します。 ■ 動作説明 ● 16 ビットフリーランタイマ 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを 開始します。このカウンタ値が , アウトプットコンペアとインプットキャプチャの基準 時間となります。 ● インプットキャプチャ インプットキャプチャは, 設定された有効エッジを検出すると, 16ビットフリーランタ イマの値をキャプチャレジスタに取り込んで割込みを発生できます。 ● アウトプットコンペア アウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と 16 ビットフ リーランタイマ値との値を比較して , 一致したら割込みフラグをセットするとともに , 割込みを発生できます。 305 第 14 章 入出力タイマ 16 ビットフリーランタイマ部 14.5.1 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が , アウトプットコンペアとインプットキャプチャ の基準時間となります。 ■ 16 ビットフリーランタイマの動作説明 カウンタ値は , 次の条件でクリアされます。 • オーバフロー発生時 • コンペアクリアレジスタ値とのコンペア一致時 ( モード設定が必要 ) • 動作中に TCCS レジスタの SCLR ビットへの "1" 書込み • タイマ停止中の TCDT への "0000H" 書込み 割込みは , オーバフローが発生したとき , コンペアクリアレジスタ値とフリーランタイ マがコンペア一致したときに発生します ( コンペア一致割込みは , モード設定が必要で す)。 図 14.5-1 オーバフローによるカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み 図 14.5-2 コンペアクリアレジスタ値とコンペア一致した場合のカウンタクリア カウンタ値 FFFFH BFFFH 一致 一致 7FFFH 3FFFH 0000H 時間 リセット アウトプットコンペア レジスタ値 割込み 306 BFFFH 第 14 章 入出力タイマ ● 16 ビットフリーランタイマのクリアタイミング カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行 われます。リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われ ますが , コンペアクリアレジスタとの一致によるカウンタクリアはカウントタイミン グに同期して行われます。 図 14.5-3 フリーランタイマのクリアタイミング コンペアクリアレジスタ値 N コンペア一致 N カウンタ値 0000H ● 16 ビットフリーランタイマのカウントタイミング 16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により カウントアップされます。外部クロック選択時は , 立上りエッジ↑でカウントされま す。 図 14.5-4 16 ビットフリーランタイマのカウントタイミング 外部クロック入力 カウントクロック カウンタ値 N N+1 307 第 14 章 入出力タイマ 14.5.2 インプットキャプチャ インプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフリーラ ンタイマの値をキャプチャレジスタに取り込んで割込みを発生できます。 ■ インプットキャプチャの動作 図 14.5-5 インプットキャプチャの取込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット IC0 IC1 IC例 不定 データレジスタ0 データレジスタ1 不定 データレジスタ例 不定 3FFFH BFFFH BFFFH 7FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ例割込み 再度有効エッジにより割込み キャプチャ 0=立上りエッジ キャプチャ 1=立下りエッジ キャプチャ例=両エッジ(例として) ソフトウェアにより割込み ● インプットキャプチャの入力タイミング 図 14.5-6 入力信号の対するキャプチャタイミング カウンタ値 インプットキャプチャ 入力 N N+1 有効エッジ キャプチャ信号 キャプチャレジスタ値 割込み 308 N+1 第 14 章 入出力タイマ アウトプットコンペア 14.5.3 アウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と 16 ビット フリーランタイマ値との値を比較して一致したら割込みフラグをセットするととも に , 割込みを発生できます。 ■ アウトプットコンペアの動作説明 図 14.5-7 アウトプットコンペアレジスタ 0, 1 を使用したときの動作波形例 ( 出力の初期値は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H リセット アウトプットコンペア レジスタ0値 アウトプットコンペア レジスタ1値 コンペア0割込み 時間 BFFFH 7FFFH コンペア1割込み <注意事項> アウトプットコンペアレジスタを書き換える場合はコンペア割込みのルーチン内で行う かコンペアを禁止の状態で行い , コンペア一致と書込みが同時に発生しないようにしてく ださい。 ● アウトプットコンペアのタイミング アウトプットコンペアは , フリーランタイマと設定したアウトプットコンペアレジス タの値が一致したときにコンペア一致信号が発生して出力を反転するとともに割込み を発生できます。コンペア一致時の出力反転タイミングは , カウンタのカウントタイミ ングに同期して行われます。 図 14.5-8 コンペア割込みタイミング φ カウンタ値 アウトプットコンペア レジスタ値 N N+1 N コンペアマッチ 割込み 309 第 14 章 入出力タイマ 310 第 15 章 PPG タイマ PPG タイマについて説明します。 15.1 PPG タイマの概要 15.2 PPG タイマのブロックダイヤグラム 15.3 PPG タイマのレジスタ 15.4 PPG タイマの動作説明 15.5 PPG タイマの使用上の注意 15.6 PPG タイマの使用例 311 第 15 章 PPG タイマ 15.1 PPG タイマの概要 PPG タイマは , プリスケーラ , 16 ビットダウンカウンタ 1 本 , 周期設定用バッファ 付き 16 ビットデータレジスタ , デューティ設定用バッファ付き 16 ビットアウト プットコンペアレジスタ , および端子制御部から構成されています。 外部またはソフトウェアトリガに同期させたパルスを出力できます。出力するパル スは , 16 ビット 2 個のレジスタ値を書き換えることで , 周期とデューティを任意に 変えることができます。 ■ PPG タイマの機能 ● PWM 機能 ■ トリガに同期させ , 上記レジスタの値を書き換えながらプログラマブルにパルスを出 力できます。 外付け回路により , D/A コンバータとしても使用できます。 ● ワンショット機能 トリガ入力のエッジを検出し , 単一パルスを出力できます。 ● 端子制御 PPG タイマは , 以下の端子制御を行います。 • デューティ一致で , "1" にセット ( 優先 ) • カウンタボローで , "0" にリセット • 出力値固定モードがあり , オール "L"( またはオール "H") を簡単に出力可能 • 極性指定可能 ● 16 ビットダウンカウンタ カウンタ動作クロックは , 8 種類から選択可能です。内部クロックは , 8 種類あります ( φ , φ /2, φ /4, φ /8, φ /16, φ /32, φ /64, φ/ 128) 。 φ : マシンクロック カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化されます。 ● 割込み要求 PPG タイマは , 以下の条件で割込み要求を発生します。 • タイマ起動 • カウンタボロー発生 ( 周期一致 ) • デューティ一致発生 • カウンタボロー発生 ( 周期一致 ), またはデューティ一致発生 外部トリガで複数チャネルの同時起動が設定できます。また , 動作中の再起動も設定可 能です。 PPG タイマの割込みと EI2OS PPG タイマの割込みと EI2OS を表 15.1-1 に示します。 表 15.1-1 PPG タイマの割込みと EI2OS 割込みレベル設定レジスタ チャネル ベクタテーブルのアドレス EI2OS 割込み番号 レジスタ名 アドレス 下位 上位 バンク PPG タイマ 0 #27(1BH) ICR08 0000B8H FFFF90H FFFF91H FFFF92H ○ PPG タイマ 1 #31(1FH) ICR10 0000BAH FFFF80H FFFF81H FFFF82H ○ ○:使用可能 312 第 15 章 PPG タイマ PPG タイマのブロックダイヤグラム 15.2 PPG タイマのブロックダイヤグラムを示します。 ■ PPG タイマのブロックダイヤグラム 図 15.2-1 に PPG タイマのブロックダイヤグラムを示します。 図 15.2-1 PPG タイマのブロックダイヤグラム プリスケーラ 1/1 PCSR 1/2 PDUT 1/4 1/8 1/16 ロード CK 1/32 CMP PCNT 16ビット ダウンカウンタ 1/64 1/128 スタート ボロー PPGマスク マシンクロック S Q PPG出力 R 反転ビット 割込み選択 イネーブル 割込み ソフトトリガ 313 第 15 章 PPG タイマ 15.3 PPG タイマのレジスタ PPG タイマのレジスタ一覧を示します。 ■ PPG タイマのレジスタ一覧 図 15.3-1 に PPG タイマのレジスタ一覧を示します。 図 15.3-1 PPG タイマレジスタ一覧 PPG制御ステータスレジスタ上位 アドレス:ch.0 000077 H アドレス:ch.1 00007F H bit15 bit14 bit13 bit12 bit11 bit10 bit9 PCNTH0,PCNTH1 CNTE STGR MDSE RTRG CKS2 CKS1 CKS0 PGMS R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W ← リード/ライト 初期値 (×) ← PPG制御ステータスレジスタ下位 アドレス:ch.0 000076 H アドレス:ch.1 00007E H bit7 bit5 bit4 bit3 bit2 bit1 bit0 PCNTL0,PCNTL1 - IREN IRQF IRS1 IRS0 POEN OSEL - (-) - (-) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) PPGダウンカウンタレジスタ下位 アドレス:ch.0 000070 H アドレス:ch.1 000078 H PPG周期設定レジスタ下位 アドレス:ch.0 000072 H アドレス:ch.1 00007A H bit6 - PPGダウンカウンタレジスタ上位 アドレス:ch.0 000071 H アドレス:ch.1 000079 H PPG周期設定レジスタ上位 アドレス:ch.0 000073 H アドレス:ch.1 00007B H bit8 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ← リード/ライト ← 初期値 bit8 PDCRH0,PDCRH1 DC15 DC14 DC13 DC12 DC11 DC10 DC09 DC08 R (1) R (1) R (1) R (1) R (1) R (1) R (1) R (1) bit7 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 PDCRL0,PDCRL1 DC07 DC06 DC05 DC04 DC03 DC02 DC01 DC00 R (1) R (1) R (1) R (1) R (1) R (1) R (1) R (1) bit15 bit14 bit13 bit12 bit11 bit10 bit9 ← リード/ライト ← 初期値 bit8 PCSRH0,PCSRH1 CS15 CS14 CS13 CS12 CS11 CS10 CS09 CS08 W (X) W (X) W (X) W (X) W (X) W (X) W (X) W (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 PCSRL0,PCSRL1 CS07 CS06 CS05 CS04 CS03 CS02 CS01 CS00 W (X) W (X) W (X) W (X) W (X) W (X) W (X) W (X) ← リード/ライト ← 初期値 ( 続く ) 314 第 15 章 PPG タイマ ( 続き ) PPGデューティ設定レジスタ上位 アドレス:ch.0 000075 H アドレス:ch.1 00007D H PPGデューティ設定レジスタ下位 アドレス:ch.0 000074 H アドレス:ch.1 00007C H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PDUTH0,PDUTH1 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 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 PDUTL0,PDUTL1 DU07 DU06 DU05 DU04 DU03 DU02 DU01 DU00 W (X) W (X) W (X) W (X) W (X) W (X) W (X) W (X) ← リード/ライト ← 初期値 315 第 15 章 PPG タイマ 15.3.1 PPG タイマのレジスタ詳細説明 PPG タイマには , 次の 4 つのレジスタがあります。 ・PPG 制御ステータスレジスタ (PCNT0, PCNT1) ・PPG ダウンカウンタレジスタ (PDCR0, PDCR1) ・PPG 周期設定レジスタ (PCSR0, PCSR1) ・PPG デューティ設定レジスタ (PDUT0, PDUT1) ■ PPG 制御ステータスレジスタ (PCNT) 図 15.3-2 に PPG 制御ステータスレジスタ (PCNT0, PCNT1) のビット構成を示します。 図 15.3-2 PPG 制御ステータスレジスタ (PCNT0, PCNT1) のビット構成 PPG制御ステータスレジスタ上位 アドレス:ch.0 000077 H アドレス:ch.1 00007F H PPG制御ステータスレジスタ下位 アドレス:ch.0 000076 H アドレス:ch.1 00007E H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PCNTH0,PCNTH1 CNTE STGR MDSE RTRG CKS2 CKS1 CKS0 PGMS R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W ← リード/ライト 初期値 (×) ← bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 PCNTL0,PCNTL1 - - IREN IRQF IRS1 IRS0 POEN OSEL - (-) - (-) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ← リード/ライト ← 初期値 【bit15】CNTE: タイマ許可ビット 16 ビットダウンカウンタの動作を許可するビットです。 CNTE タイマ許可 0 停止 ( 初期値 ) 1 許可 【bit14】STGR: ソフトウェアトリガビット このビットに "1" を書き込むことにより , ソフトウェアトリガがかかります。 STGR ビットの読出し値は , 常に "0" です。 【bit13】MDSE: モード選択ビット 連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択 します。動作中の書換えはできません。 MDSE 316 モード選択 0 PWM 動作 ( 初期値 ) 1 ワンショット動作 第 15 章 PPG タイマ 【bit12】RTRG: 再起動許可ビット ソフトウェアトリガによる再起動を許可するビットです。動作中の書換えはできま せん。 RTRG 再起動許可 0 再起動禁止 ( 初期値 ) 1 再起動許可 【bit11 ∼ bit9】CKS2 ∼ CKS0: カウンタクロック選択ビット 16 ビットダウンカウンタのカウントクロックを選択します。動作中の書換えはでき ません。 CKS2 CKS1 CKS0 0 0 0 φ ( 初期値 ) 0 0 1 φ /2 0 1 0 φ /4 0 1 1 φ /8 1 0 0 φ /16 1 0 1 φ /32 1 0 1 φ /64 1 1 1 φ /128 周期 φ :マシンクロック 【bit8】PGMS:PPG 出力マスク選択ビット このビットに "1" を書き込むことにより , モード設定 , 周期設定値 , デューティ設定 値にかかわらず , PPG 出力を "0" または "1" にマスクできます。 PGMS に "1" を書き込んだときの PPG タイマの出力レベルを下表に示します。 極性 PPG 出力 通常極性 "L" 極性反転 "H" 通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期設定 レジスタとデューティ設定レジスタに同値を書き込むと , 上記マスク値の反転を出力 できます。 【bit7, bit6】未定義ビット このビットに値を書き込んでも , 動作には影響を与えません。 317 第 15 章 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" を書き込んでもビット値は変化しません。リードモディファイライト (RMW) 系命 令における読出し値は , ビット値にかかわらず "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 出力が端子から出力されます。 POEN 318 PPG 出力許可 0 汎用ポート ( 初期値 ) 1 PPG 出力端子 第 15 章 PPG タイマ 【bit0】OSEL:PPG 出力極性指定ビット PPG 出力の極性を設定します。 OSEL PPG 出力極性 0 通常極性 ( 初期値 ) 1 反転極性 bit9 の PGMS との組合せで , 以下のようになります。 PGMS OSEL 0 0 通常極性 ( 初期値 ) 0 1 反転極性 1 0 出力 "L" 固定 1 1 出力 "H" 固定 PPG 出力 極性 リセット後 通常極性 "L" 出力 反転極性 "H" 出力 デューティ一致 カウンタ一致 ■ PPG ダウンカウンタレジスタ (PDCR) PDCR レジスタは , 16 ビットダウンカウンタの値を読み出すことができます。 PDCR レジスタは , 16 ビットデータでアクセスしてください。 PPG ダウンカウンタレジスタ (PDCR) のビット構成を図 15.3-3 に示します。 図 15.3-3 PPG ダウンカウンタレジスタ (PDCR) のビット構成 PPGダウンカウンタレジスタ上位 アドレス:ch.0 000071 H アドレス:ch.1 000079 H PPGダウンカウンタレジスタ上位 アドレス:ch.0 000070 H アドレス:ch.1 000078 H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PDCRH0,PDCRH1 DC15 DC14 DC13 DC12 DC11 DC10 DC09 DC08 R (1) R (1) R (1) R (1) R (1) R (1) R (1) R (1) bit7 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 PDCRL0,PDCRL1 DC07 DC06 DC05 DC04 DC03 DC02 DC01 DC00 R (1) R (1) R (1) R (1) R (1) R (1) R (1) R (1) ← リード/ライト ← 初期値 319 第 15 章 PPG タイマ ■ PPG 周期設定レジスタ (PCSR) PCSR レジスタは , 周期を設定するためのバッファ付きレジスタです。バッファからの 転送は , カウンタボローで行われます。 周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタへ書込み後 , 必ず デューティ設定レジスタへの書込み動作を行ってください。 PCSR レジスタは , 16 ビットデータでアクセスしてください。 PPG 周期設定レジスタ (PCSR) のビット構成を図 15.3-4 に示します。 図 15.3-4 PPG 周期設定レジスタ (PCSR) のビット構成 PPG周期設定レジスタ上位 アドレス:ch.0 000073 H アドレス:ch.1 00007B H PPG周期設定レジスタ下位 アドレス:ch.0 000072 H アドレス:ch.1 00007A H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PCSRH0,PCSRH1 CS15 CS14 CS13 CS12 CS11 CS10 CS09 CS08 W (X) W (X) W (X) W (X) W (X) W (X) W (X) W (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 PCSRL0,PCSRL1 CS07 CS06 CS05 CS04 CS03 CS02 CS01 CS00 W (X) W (X) W (X) W (X) W (X) W (X) W (X) W (X) ← リード/ライト ← 初期値 ■ PPG デューティ設定レジスタ (PDUT) PDUT レジスタは , デューティを設定するためのバッファ付きレジスタです。バッファ からの転送は , カウンタボローで行われます。 周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に オール "H" を , 反転極性時にオール "L" を出力します。 PCSR <PDUT となるような値を設定しないでください。PPG 出力が不定となります。 PDUT レジスタは , 16 ビットデータでアクセスしてください。 PPG デューティ設定レジスタ (PDUT) のビット構成を図 15.3-5 に示します。 図 15.3-5 PPG デューティ設定レジスタ (PDUT) のビット構成 PPGデューティ設定レジスタ上位 アドレス:ch.0 000075 H アドレス:ch.1 00007D H PPGデューティ設定レジスタ下位 アドレス:ch.0 000074 H アドレス:ch.1 00007C H 320 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PDUTH0,PDUTH1 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 bit6 bit5 bit4 bit3 bit2 bit1 ← リード/ライト ← 初期値 bit0 PDUTL0,PDUTL1 DU07 DU06 DU05 DU04 DU03 DU02 DU01 DU00 W (X) W (X) W (X) W (X) W (X) W (X) W (X) W (X) ← リード/ライト ← 初期値 第 15 章 PPG タイマ 15.4 PPG タイマの動作説明 PPG タイマの動作について説明します。 ■ PWM 動作 PWM 動作では , 起動トリガの検出時から連続してパルスを出力できます。出力パルス の周期は , PCSR 値を変えることにより制御できます。また , デューティ比は , PDUT 値 を変えることにより制御できます。 ● 再起動禁止の場合 図 15.4-1 PWM 動作再起動禁止のタイミング 立上りエッジ検出 トリガは,無視されます。 起動 トリガ m n 0 PPG ① ② T: カウントクロック周期 m: PCSR値 n: PDUT値 ● 再起動許可の場合 図 15.4-2 PWM 動作再起動許可のタイミング 立上りエッジ検出 トリガにより,再起動します。 起動 トリガ m n 0 PPG ① ② T: カウントクロック周期 m: PCSR値 n: PDUT値 <注意事項> PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。 321 第 15 章 PPG タイマ ■ ワンショット動作 ワンショット動作では , トリガにより任意の幅の単一パルスを出力できます。再起動許 可の場合は , 動作中に起動トリガを検出するとカウンタをリロードします。 ● 再起動禁止の場合 図 15.4-3 ワンショット動作再起動禁止のタイミング 立上りエッジ検出 トリガは,無視されます。 起動 トリガ m n 0 PPG ① ② T: カウントクロック周期 m: PCSR値 n: PDUT値 ● 再起動許可の場合 図 15.4-4 ワンショット動作再起動許可のタイミング 立上りエッジ検出 トリガにより,再起動します。 起動 トリガ m n 0 PPG ① ② T: カウントクロック周期 m: PCSR値 n: PDUT値 322 第 15 章 PPG タイマ ■ 割込み要因とタイミング 起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5 T(T: カウントク ロック周期 ) を必要とします。 ● 割込み出力要因とタイミング 図 15.4-5 割込み出力要因とタイミング 起動トリガ 最大2.5T ロード クロック カウント値 XXXXH 0003H 0002H 0001H 0000H 0003H PPG 割込み ソフトウェアトリガ コンペア一致 ボロー ● PWM 出力オール "L" またはオール "H" の出力方法例 図 15.4-6 PWM 出力オール "L" またはオール "H" の出力方法例 PPG デューティ値 を小さくして いく ボローによる割込みでPGMS(マスク ビット)に”1”を書き込みます。 また,ボローによる割込みでPGMS (マスクビット)に"0"を書き込めば、 出力することなくPPG波形を 出力できます。 PPG デューティ値 を大きくして いく コンペア一致による割込みで デューティ設定レジスタに 周期設定レジスタ値と同じ値を 書き込みます。 323 第 15 章 PPG タイマ 15.5 PPG タイマの使用上の注意 PPG タイマの使用上の注意事項について説明します。 ■ 設定時の注意事項 • PPG 周期設定レジスタ (PCSR) への書込み後は , PPG デューティ設定レジスタ (PDUT) への書込みも行ってください。PCSR レジスタのみの更新はできません。また , PCSR レジスタと PDUT レジスタへのアクセスにはワード転送命令 (MOVW A, dir など ) を 使用してください。 • PPG デューティ設定レジスタ (PDUT) に書き込む値は , PPG 周期設定レジスタ (PCSR) の値より小さいものにしてください。PPG 出力の誤動作の原因となります。 • PPG 制御ステータスレジスタ (PCNT) の CKS2, CKS1, CKS0 ビットの書換えは PPG ス トップ時 (PCNT: CNTE=0) に行ってください。 324 第 15 章 PPG タイマ 15.6 PPG タイマの使用例 PPG タイマの使用例について説明します。 ■ PPG タイマのサンプルプログラム ● 動作概要 • PPG タイマ 0 出力から 160 kHz, デューティ 60% の波形を出力します。 • タイマは割込みを繰り返し発生させるために PWM モードで使用します。 • タイマはソフトウェアトリガで起動します。 • EI2OS は使用していません。 • マシンクロックは 16 MHz , カウントクロックは 62.5 ns を使用しています。 ● サンプルプログラム ICR08 EQU 0000B8H ; 16 ビット PPG タイマ割込み制御レジスタ PCSR0 EQU 000072H ; PPG 周期設定レジスタ PDUT0 EQU 000074H ; PPG デューティ設定 レジスタ PCNT0 EQU 000070H ; PPG コントロールステータスレジスタ IRQF EQU PCNT0:4 ; 割込み要求フラグビット ;------- メインプログラム ----------------------------------------------------------CODE CSEG START: ; : ; スタックポインタ (SP) は既に初期化されたとする。 AND CCR, #0BFH ; 割込み許可 MOV I:ICR08, #00H ; 割込みレベル 0 ( 最強 ) MOVW I:PCSR0, #0063H ; PPG 出力の周期を設定 MOVW I:PDUT0, #003BH ; PPG 出力のデューティ比を設定 MOVW I:PCNT0, #01100000000100110B ; 通常極性での PPG を許可 ; 16 ビット PPG タイマ , 62.5 ns クロック PPG ; ソフトウェアトリガ を許可 ; PWM モードを選択し , 割込みを許可 ; 割込みフラグのクリアとカウンタ開始 LOOP: MOV ILM, #07H ; PS 内の ILM をレベル 7 に設定 OR CCR, #40H ; 割込み許可 MOV A, #00H ; 無限ループ MOV A, #01H ; BRA LOOP ; ;------- 割込みプログラム ------------------------------------------------------325 第 15 章 PPG タイマ WARI: CLRB I:IRQF ; : ; ユーザプロセス ; : ; 割込み要求フラグのクリア ; 割込みからの復帰 RETI CODE ENDS ;------- ベクタ設定 ---------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FF90H DSL WARI ORG 0FFDCH DSL START DB 00H VECT ENDS END 326 START ; 割込み #27(1BH) にベクタを設定 ; リセットベクタを設定 ; シングルチップモードに設定 第 16 章 UART MB90800 シリーズの UART の機能と動作について 説明します。 16.1 UART の概要 16.2 UART の構成 16.3 UART の端子 16.4 UART のレジスタ 16.5 UART の割込み 16.6 UART のボーレート 16.7 UART の動作説明 16.8 UART 使用上の注意 327 第 16 章 UART UART の概要 16.1 UART は , 外部装置と同期通信もしくは非同期通信 ( 調歩同期 ) をするための汎用の シリアルデータ通信インタフェースです。双方向通信機能 ( ノーマルモード ), マス タ / スレーブ型通信機能 ( マルチプロセッサモード : マスタ側だけサポート ) があり ます。 ■ UART の機能 ● UART の機能 UART は , ほかの CPU や周辺装置とシリアルデータの送受信をする汎用シリアルデー タ通信インタフェースで , 表 16.1-1 に示す機能があります。 表 16.1-1 UART の機能 機能 内容 データバッファ 全二重ダブルバッファ 転送モード ・クロック同期 ( スタート / ストップビットなし ) ・クロック非同期 ( 調歩周期 ) ボーレート ・専用ボーレートジェネレータによるボーレート ・外部クロック (SC 端子入力のクロック ) によるボーレート ・内部クロック (16 ビットリロードタイマから供給されるクロック ) による ボーレート ・ボーレートは全 8 種類から設定可能 データ長 ・7 ビット ( 非同期ノーマルモード時のみ ) ・8 ビット 信号方式 NRZ(Non Return to Zero) 方式 受信エラー検出 ・フレーミングエラー ・オーバランエラー ・パリティエラー ( マルチプロセッサモード時は検出不可 ) 割込み要求 ・受信割込み ( 受信完了 , 受信エラー検出 ) ・送信割込み ( 送信完了 ) ・送受信とも拡張インテリジェント I/O サービス (EI2OS) の対応あり マスタ / スレーブ型 通信機能 ( マルチ プロセッサモード ) 1( マスタ ) 対 n( スレーブ ) 間の通信が可能 ( マスタ側だけサポート ) <注意事項> UART は , クロック同期転送時にスタートビット / ストップビットは付加されません。デー タだけが転送されます。 328 第 16 章 UART 表 16.1-2 UART の動作モード データ長 動作モード ストップ ビット長 同期方式 パリティなし パリティあり 0 ノーマルモード 7 ビットまたは 8 ビット 非同期 1 マルチプロセッサモード 8 + 1 *1 ― 非同期 2 ノーマルモード 8 ― 同期 1 ビット または 2 ビット *2 なし ― :設定不可 *1 :" + 1" は通信制御用に使用されるアドレス / データ設定ビット (A/D) です。 *2 :受信時のストップビット長は 1 ビットのみ検出可能 ■ UART に関連する割込みと EI2OS 表 16.1-3 UART に関連する割込みと EI2OS 割込み番号 割込み制御レジスタ ベクタテーブルアドレス EI2OS 割込み要因 レジスタ名 UART0受信割込み アドレス #35(23H) ICR12 UART0送信割込み #36(24H) UART1受信割込み #39(27H) ICR14 UART1送信割込み 下位 #40(28H) 上位 バンク レジスタ名 FFFF70H FFFF71H FFFF72H ◎ FFFF6CH FFFF6DH FFFF6EH △ FFFF60H FFFF61H FFFF62H ◎ FFFF5CH FFFF5DH FFFF5EH △ 0000BCH 0000BEH ◎:UART の受信エラー検出による EI2OS 停止機能付き △:ICR12, ICR14 を共有する割込み要因を使用しない場合に使用可能 329 第 16 章 UART UART の構成 16.2 UART は , 以下の 11 種類のブロックで構成されています。 ・クロックセレクタ ・モードレジスタ (SMR0/SMR1) ・受信制御回路 ・制御レジスタ (SCR0/SCR1) ・送信制御回路 ・ステータスレジスタ (SSR0/SSR1) ・受信状態判定回路 ・インプットデータレジスタ (SIDR0/SIDR1) ・受信用シフトレジスタ ・アウトプットデータレジスタ (SODR0/SODR1) ・送信用シフトレジスタ ■ UART のブロックダイヤグラム 図 16.2-1 UART のブロックダイヤグラム コントロールバス 受信割込み信号 専用ボーレート ジェネレータ 16ビット リロードタイマ1/2 送信クロック クロック セレクタ 送信割込み信号 受信クロック 受信制御回路 端子 端子 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ 受信用 シフトレジスタ 送信用 シフトレジスタ 受信終了 SIDR0/SIDR1 SODR0/SODR1 受信状態判定回路 端子 送信開始 EI2OS用受信エラー 発生信号 (CPUへ) 内部データバス SMR0/SMR1 レジスタ MD1 MD0 CS2 CS1 CS0 SCKE SOE 330 SCR0/SCR1 レジスタ PEN P SBL CL A/D REC RXE TXE SSR0/SSR1 レジスタ PE ORE FRE RDRF TDRE BDS RIE TIE 第 16 章 UART ● クロックセレクタ 専用ボーレートジェネレータ , 外部入力クロック (SC0/SC1 端子入力のクロック ), 内部 クロック (16 ビットリロードタイマから供給されるクロック ) から送受信クロックを設 定します。 ● 受信制御回路 受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , および受信パリティ カウンタで構成されています。受信ビットカウンタは受信データをカウントし , 設定し たデータ長に応じたデータの受信を完了すると , 受信割込み要求を出力します。スター トビット検出回路は , シリアル入力信号からスタートビットを検出する回路で , スター トビットを検出した場合に , 設定された転送速度に応じてシフトしながらインプット データレジスタ (SIDR0/SIDR1) に受信データを格納します。受信パリティカウンタは , パリティありのデータを受信する場合に受信データのパリティを計算します。 ● 送信制御回路 送信制御回路は , 送信ビットカウンタ , 送信スタート回路 , および送信パリティカウン タで構成されています。送信ビットカウンタは送信データをカウントし , 設定したデー タ長に応じたデータの送信を完了すると , 送信割込み要求を出力します。送信スタート 回路は , アウトプットデータレジスタ(SODR0/SIDR1) に送信データが格納されると , 送 信動作を開始します。送信パリティカウンタは , パリティありの場合のデータを送信す る場合に送信するデータのパリティビットを生成します。 ● 受信用シフトレジスタ SI0/SI1 端子から入力された受信データを 1 ビットずつシフトしながら取り込み , 受信 が終了すると , インプットデータレジスタ (SIDR0/SIDR1) に受信データを転送します。 ● 送信用シフトレジスタ アウトプットデータレジスタ (SODR0/SODR1) にセットされた送信データを送信用シ フトレジスタに転送し , 1 ビットずつシフトしながら SO0/SO1 端子に出力します。 ● モードレジスタ (SMR0/SMR1) 動作モードの設定 , ボーレートクロックの設定 , シリアルクロック入出力制御 , および シリアルデータの端子への出力許可を設定します。 ● 制御レジスタ (SCR0/SCR1) パリティ有無の設定 , パリティの設定 , ストップビット長やデータ長の設定 , 動作モー ド 1 でのフレームデータ形式の設定 , 受信エラーフラグビットのクリア , および送受信 動作の許可 / 禁止の設定をします。 ● ステータスレジスタ (SSR0/SSR1) 送受信やエラーの状態の確認 , シリアルデータの転送方向の設定 , および送受信割込み 要求の許可 / 禁止の設定をします。 ● インプットデータレジスタ (SIDR0/SIDR1) 受信したデータを格納するレジスタです。 ● アウトプットデータレジスタ (SODR0/SODR1) 送信するデータを設定するレジスタです。アウトプットデータレジスタにセットされ たデータがシリアル変換されて出力されます。 331 第 16 章 UART UART の端子 16.3 UART の端子および端子部のブロックダイヤグラムを示します。 ■ UART の端子 UART の端子は , 入出力ポートと兼用になっています。 表 16.3-1 UART の端子 端子名 端子機能 入出力形式 プルアップ 選択 スタンバイ 制御 端子の使用に 必要な設定 P54/SI0 入出力ポート / シリアルデータ入力 入力ポートに設定 (DDR5:bit12= 0) P56/SO0 入出力ポート / シリアルデータ出力 シリアルデータ出力許 可に設定 (SMR0:SOE=1) P55/SC0 入出力ポート / シリアルクロック 入出力 P57/SI1 入出力ポート / シリアルデータ入力 P72/ AN10/ SO1 入出力ポート / A/D アナログ入力 / シリアルデータ出力 入力ポートに設定 (DDR5:bit13=0) CMOS 出力 / CMOS ヒステリシス 入力 シリアルクロック出力 許可に設定 (SMR0:SCKE=1) なし あり 入力ポートに設定 (DDR5:bit15=0) シリアルデータ出力許 可に設定 (SMR1:SOE=1) 入力ポートに設定 (DDR7:bit1=0) 入出力ポート / A/D アナログ入力 / シリアルクロック 入出力 P71/ AN9/ SC1 アナログ入力禁止 (ADER1:bit1=0) シリアルクロック出力 許可に設定 (SMR1:SCKE=1) ■ UART の端子のブロックダイヤグラム 図 16.3-1 UART の端子のブロックダイヤグラム リソース入力 内 部 デ ー タ バ ス PDR読出し PDR 入出力 判定回路 PDR書込み DDR 出力バッファ スタンバイ制御(LPMCR:SPL=1) 入出力制御回路 リソース出力 332 入力バッファ ポート 端子 第 16 章 UART 16.4 UART のレジスタ UART のレジスタ一覧を示します。 ■ UART のレジスタ一覧 図 16.4-1 UART のレジスタ一覧 bit15..............................................bit8 bit7..........................................................bit0 制御レジスタ (SCR) モードレジスタ (SMR) ステータスレジスタ (SSR) インプット / アウトプットデータレジスタ (SIDR/SODR) 通信プリスケーラ制御レジスタ (CDCR) <注意事項> UART のレジスタは , INC/DEC 命令などリードモディファイライト (RMW) 系命令は使用 できません。 333 第 16 章 UART 制御レジスタ (SCR0/SCR1) 16.4.1 制御レジスタ (SCR0/SCR1) は , パリティ有無の設定 , パリティの設定 , ストップビッ ト長やデータ長の設定 , 動作モード 1 でのフレームデータ形式の設定 , 受信エラーフ ラグビットのクリア , および送受信動作の許可 / 禁止を設定するレジスタです。 ■ 制御レジスタ (SCR0/SCR1) 図 16.4-2 制御レジスタ (SCR0/SCR1) bit アドレス ch.1 000021 H ch.2 000029 H 15 14 13 12 11 10 9 8 PEN P SBL CL A/D REC RXE TXE R/W R/W R/W R/W R/W R/W R/W R/W TXE 送信動作を禁止 1 送信動作を許可 受信動作を禁止 1 受信動作を許可 受信エラーフラグクリアビット 0 FRE,ORE,PEフラグを"0"にクリア 1 動作に影響しません A/D アドレス/データ設定ビット 0 データフレーム 1 アドレスフレーム CL データ長設定ビット 0 7ビットを設定 1 8ビットを設定 SBL ストップビット長設定ビット 0 1ビット長を設定 1 2ビット長を設定 P パリティ設定ビット パリティありのとき(PEN=1)のみ有効 0 偶数パリティ 1 奇数パリティ PEN 334 受信動作許可ビット 0 REC :リード/ライト可能 :初期値 送信動作許可ビット 0 RXE R/W 初期値 00000100B パリティイネーブルビット 0 パリティなし 1 パリティあり 第 16 章 UART 表 16.4-1 制御レジスタ (SCR0/SCR1) の各ビットの機能説明 (1 / 2) ビット名 機能 シリアルデータに対して , パリティビットの付加 ( 送信時 ) およ び検出 ( 受信時 ) をする , または検出しないを設定するビットで す。 ( 注意事項 ) 動作モード 1, 2 を設定した場合は , パリティは使用 できませんので , "0" を設定してください。 bit15 PEN: パリティ イネーブル ビット bit14 P: パリティ設定 ビット bit13 SBL: ストップビット 長設定ビット 非同期転送モード時の送信データのフレームエンドマークであ るストップビットのビット長を設定するビットです。 ( 注意事項 ) 受信時は , ストップビットの 1 ビット目を検出しま す。 bit12 CL: データ長設定 ビット 送受信データのデータ長を設定するビットです。 ( 注意事項 ) 7 ビットを設定できるのは , 動作モード 0( 非同期 ) の場合です。動作 モード 1( マルチプロセッサモー ド ), 動作モード 2( 同期 ) の場合では , 必ず 8 ビット (CL=1) を設定してください。 bit11 ・マルチプロセッサモード ( 動作モード 1) で送受信するフレー A/D: ムのデータ形式を設定するビットです。 アドレス / データ ・"0" を設定した場合は , 通常データとなります。 設定ビット ・"1" を設定した場合は , アドレスデータとなります。 bit10 REC: 受信エラー フラグクリア ビット ・ステータスレジスタ (SSR0/SSR1) の受信エラーフラグビット (FRE, ORE, PE) を "0" にクリアするビットです。 ・"0"を設定した場合は, 受信エラーフラグビット(FRE, ORE, PE) が "0" にクリアされます。 ・"1" を設定した場合は , 動作に影響しません。 ( 注意事項 ) UART 動作中の受信割込み許可状態で "0" に設定す る場合は , 受信エラーフラグビット (FRE, ORE, PE) のいずれかに "1" を設定してください。 RXE: 受信動作許可 ビット ・UART の受信動作を制御するビットです。 ・"0" を設定している場合は , 受信動作が禁止となります。 ・"1" を設定している場合は , 受信動作が許可となります。 ( 注意事項 )受信中に受信動作を禁止した場合は , 現在受信中の データの受信を完了し , インプットデータレジスタ (SIDR0/SIDR1) に受信データを格納した時点で受信 動作を停止します。 bit9 奇数パリティ / 偶数パリティを設定するビットです。 ( 注意事項 ) パリティあり (PEN=1) の場合のみ有効です。 335 第 16 章 UART 表 16.4-1 制御レジスタ (SCR0/SCR1) の各ビットの機能説明 (2 / 2) ビット名 TXE: 送信動作許可 ビット bit8 機能 ・UART の送信動作を制御するビットです。 ・"0" を設定している場合は , 送信動作が禁止となります。 ・"1" を設定している場合は , 送信動作が許可となります。 ( 注意事項 ) 送信中に送信動作を禁止した場合は , アウトプットデータレ ジスタ (SODR0/SODR1) にデータがなくなった後で送信動作 を停止します。 "0" を設定する場合は , アウトプットデータレジスタ (SODR0/ SODR1) にデータを書き込んだ後に , クロック非同期転送 モードの場合であればボーレートの 1/16 時間 , クロック同期 転送モードの場合であればボーレートと同じ時間以上待って から設定してください。 <注意事項> 制御レジスタ (SCR0/SCR1) は , INC/DEC 命令などリードモディファイライト (RMW) 系 命令は使用できません。 336 第 16 章 UART 16.4.2 モードレジスタ (SMR0/SMR1) モードレジスタ (SMR0/SMR1) は , 動作モードの設定 , ボーレートクロックの設定 , シリアルクロック入出力制御 , およびシリアルデータの端子への出力許可を設定す るレジスタです。 ■ モードレジスタ (SMR0/SMR1) 図 16.4-3 モードレジスタ (SMR0/SMR1) bit アドレス ch.0 000020 H ch.1 000028 H 7 6 5 4 3 2 1 0 初期値 MD1 MD0 CS2 CS1 CS0 - SCKE SOE 00000-00B R/W R/W R/W R/W R/W - R/W R/W SOE シリアルデータ出力許可ビット(P37/SO0,P61/SO1端子) 0 入出力ポートとする 1 シリアルデータ出力端子とする SCKE シリアルクロック出力許可ビット(P40/SC0,P62/SC1端子) 0 入出力ポートまたはシリアルクロック入力端子とする 1 シリアルクロック出力端子とする ch.0 クロック設定ビット CS2~CS0 "000B"~"101B" 専用ボーレートジェネレータによるボーレート 内部クロック(16ビットリロードタイマ) "110B" によるボーレート 外部クロック(SC0/SC1端子)によるボーレート "111B" R/W :リード/ライト可能 - :未定義ビット :初期値 動作モード設定ビット MD1 MD0 0 0 0 非同期(ノーマルモード) 0 1 1 非同期(マルチプロセッサモード) 1 0 2 同期(ノーマルモード) 1 1 - 設定禁止 動作モード 337 第 16 章 UART 表 16.4-2 モードレジスタ (SMR0/SMR1) の各ビットの機能説明 ビット名 bit7, bit6 MD1, MD0: 動作モード設定 ビット bit5 ∼ bit3 CS2 ∼ CS0: クロック設定 ビット 機能 動作モードを設定するビットです。 ( 注意事項 ) 動作モード 1( マルチプロセッサモード ) は , マスタ / スレーブ型通 信のマスタとしてのみ使用できます。UART は , 受信時にアドレス / データ判別機能がないためスレーブとしては使用できません。 ・ボーレートのクロックソースを設定するビットです。 ・専用ボーレートジェネレータを設定した場合は , ボーレートも決定 されます。 ・専用ボーレートジェネレータ 6 種類 , 内部クロックによるボーレー ト 1 種類 , 外部クロックによるボーレート 1 種類の計 8 種類のボー レートから設定できます。 ・クロック入力は , 外部クロック (SC0/SC1 端子入力 ), 内部クロック (16 ビットリロードタイマ ), 専用ボーレートジェネレータより設定 できます。 ( 注意事項 ) 同期転送時に専用ボーレートを使用する場合 , 以下の設定をしない でください。 ・CS2 ∼ CS0 = 000B のとき , DIV2 ∼ DIV0 = 000B, 001B, 010B ・CS2 ∼ CS0 = 001B のとき , DIV2 ∼ DIV0 = 000B bit2 −: 未定義ビット bit1 SCKE: シリアル クロック出力 許可ビット (P40/SC0, P62/SC1 端子 ) bit0 SOE: シリアルデータ 出力許可ビット (P37/SO0, P61/SO1 端子 ) ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 ・シリアルクロックの入出力を制御するビットです。 ・ "0" を設定した場合は , SC 端子は入出力ポート , またはシリアルク ロック入力端子となります。 ・"1" を設定した場合は , シリアルクロック出力端子となります。 ( 注意事項 ) ・SC 端子をシリアルクロック入力 (SCKE=0) として使用する場合は , 入力ポートに設定してください。クロック設定ビットによって外 部クロックを設定 (SMR0/SMR1:CS2 ∼ CS0=111B) してください。 ・シリアルクロック出力 (SCKE=1) として使用する場合は , 専用ボーレートジェネレータ (SMR0/SMR1:CS2 ∼ CS0=000B ∼ 101B), または内部クロック (SMR0/SMR1:CS2 ∼ CS0=110B) を設 定してください。 〔参考〕 シリアルクロック出力 (SCKE=1) の場合は , 入出力ポートの状態に かかわらずシリアルクロック出力端子として機能します。 ・シリアルデータの出力を許可するビットです。 ・"0" を設定した場合は , SO 端子は入出力ポートとなります。 ・"1" を設定した場合は , シリアルデータ出力端子となります。 〔参考〕 シリアルデータ出力 (SOE=1) の場合は , 入出力ポートの状態にか か わらずシリアルデータ出力端子として機能します。 <注意事項> モードレジスタ (SMR0/SMR1) は , INC/DEC 命令などリードモディファイライト (RMW) 系命令は使用できません。 338 第 16 章 UART 16.4.3 ステータスレジスタ (SSR0/SSR1) ステータスレジスタ (SSR0/SSR1) は , 送受信やエラーの状態の確認 , シリアルデー タの転送方向の設定 , および割込みの許可 / 禁止を設定するレジスタです。 ■ ステータスレジスタ (SSR0/SSR1) 図 16.4-4 ステータスレジスタ (SSR0/SSR1) bit アドレス ch.0 000023H ch.1 00002BH 15 14 13 12 11 10 9 8 初期値 PE ORE FRE RDRF TDRE BDS RIE TIE 00001000B R/W R/W R/W R/W R/W R/W R/W R/W TIE 0 送信割込み要求許可ビット 送信割込み要求出力を禁止 1 送信割込み要求出力を許可 RIE 0 受信割込み要求許可ビット 受信割込み要求出力を禁止 1 受信割込み要求出力を許可 BDS 0 転送方向設定ビット LSB ファースト(最下位ビットから転送) 1 MSB ファースト(最上位ビットから転送) TDRE 0 送信データエンプティフラグビット 送信データあり(送信データの書込み禁止) 1 送信データなし(送信データの書込み許可) RDRF 0 受信データフルフラグビット 受信データなし 1 受信データあり FRE 0 1 ORE フレーミングエラーあり オーバランエラーフラグビット 0 オーバランエラーなし 1 オーバランエラーあり PE R/W フレーミングエラーフラグビット フレーミングエラーなし パリティエラーフラグビット 0 パリティエラーなし 1 パリティエラーあり :リード/ライト可能 :初期値 339 第 16 章 UART 表 16.4-3 ステータスレジスタ (SSR0/SSR1) の各ビットの機能説明 (1 / 2) ビット名 bit15 bit14 bit13 bit12 bit11 340 機能 PE: パリティ エラーフラグ ビット ・受信時にパリティエラーが発生した場合は, "1"がセットされます。 ・制御レジスタ(SCR0/SCR1)の受信エラーフラグクリアビット(REC) に "0" を設定した場合は , "0" にクリアされます。 ・"1" がセットされた場合に , 受信割込み要求許可ビット (RIE) に "1" が設定されていると , 受信割込み要求を出力します。 ・ "1" がセットされた場合は , インプットデータレジスタ (SIDR0/ SIDR1) のデータは無効になります。 ORE: オーバラン エラーフラグ ビット ・受信時にオーバランエラーが発生した場合は , "1" がセットされま す。 ・制御レジスタ(SCR0/SCR1)の受信エラーフラグクリアビット(REC) に "0" を設定した場合は , "0" にクリアされます。 ・"1" がセットされた場合に , 受信割込み要求許可ビット (RIE) に "1" が設定されていると , 受信割込み要求を出力します。 ・ "1" がセットされた場合は , インプットデータレジスタ (SIDR0/ SIDR1) のデータは無効になります。 FRE: フレーミング エラーフラグ ビット ・受信時にフレーミングエラーが発生した場合は , "1" がセットされ ます。 ・制御レジスタ(SCR0/SCR1)の受信エラーフラグクリアビット(REC) に "0" を設定した場合は , "0" にクリアされます。 ・"1" がセットされた場合に , 受信割込み要求許可ビット (RIE) に "1" が設定されていると , 受信割込み要求を出力します。 ・ "1" がセットされた場合は , インプットデータレジスタ (SIDR0/ SIDR1) のデータは無効になります。 RDRF: 受信データ フルフラグ ビット ・インプットデータレジスタ (SIDR0/SIDR1) の状態を示すビットで す。 ・インプットデータレジスタ (SIDR0/SIDR1) に受信データが格納さ れた場合は , "1" がセットされます。 ・インプットデータレジスタ (SIDR0/SIDR1) を読み出した場合は , "0" にクリアされます。 ・"1" がセットされた場合は , 受信割込み要求許可ビット (RIE) に "1" が設定されると , 受信割込み要求を出力します。 TDRE: 送信データ エンプティ フラグビット ・アウトプットデータレジスタ (SODR0/SODR1) の状態を示すビッ トです。 ・アウトプットデータレジスタ (SODR0/SODR1) に送信データを書 き込んだ場合は , "0" にクリアされます。 ・データが送信用シフトレジスタに読み出され , 送信を開始した場 合は , "1" がセットされます。 ・"1" がセットされた場合は , 送信割込み要求許可ビット (TIE) に "1" が設定されると , 送信割込み要求を出力します。 ( 注意事項 ) 初期状態では "1" がセットされています。 第 16 章 UART 表 16.4-3 ステータスレジスタ (SSR0/SSR1) の各ビットの機能説明 (2 / 2) ビット名 機能 bit10 BDS: 転送方向設定 ビット ・シリアルデータの転送方向を設定します。 ・"0"を設定した場合は, 最下位ビット側から転送します(LSBファー スト )。 ・"1"を設定した場合は, 最上位ビット側から転送します(MSBファー スト )。 ( 注意事項 ) シリアルデータレジスタへの読出し , 書込み時にデータの上位側 と下位側を入れ替えるため,アウトプットデータレジスタ(SODR0/ SODR1) にデータを書き込んだ後に , 転送方向設定ビット (BDS) を 書き換えた場合は , 書き込まれたデータは無効になります。 bit9 RIE: 受信割込み 要求許可 ビット ・受信割込み要求を許可するビットです。 ・"1"が設定されている場合に, 受信データフルフラグビット(RDRF) に "1" がセットされるか , もしくは受信エラーフラグビット (PE, ORE, FRE) のいずれかに "1" がセットされると , 受信割込み要求を 出力します。 bit8 TIE: 送信割込み 要求 許可 ビット ・送信割込み要求を許可するビットです。 ・"1" が設定されている場合に , 送信データエンプティフラグビット (TDRE) に "1" がセットされると , 送信割込み要求を出力します。 <注意事項> ステータスレジスタ (SSR0/SSR1) には , INC/DEC 命令などのリードモディファイライト (RMW) 系命令は使用できません。 341 第 16 章 UART 16.4.4 インプットデータレジスタ (SIDR0/SIDR1), アウトプットデータレジスタ (SODR0/SODR1) インプットデータレジスタ (SIDR0/SIDR1) はシリアルデータ受信用レジスタで , アウ トプットデータレジスタ (SODR0/SODR1) はシリアルデータ送信用レジスタです。 ■ インプットデータレジスタ (SIDR0/SIDR1) 図 16.4-5 インプットデータレジスタ (SIDR0/SIDR1) bit 7 6 5 4 3 2 1 0 アドレス D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W ch.0 000022H ch.1 00002AH 初期値 XXXXXXXXB R/W :リード / ライト可能 受信したデータを格納するレジスタです。SI0/SI1 端子に送られてきたシリアルデータ 信号をシフトレジスタで変換し, インプットデータレジスタ(SIDR0/SIDR1)に格納しま す。動作モード 0 でデータ長が 7 ビットに設定されている場合は , bit7(D7) は無効デー タとなります。受信データがインプットデータレジスタ (SIDR0/SIDR1) に格納される と , ステータスレジスタ (SSR0/SSR1) の受信データフルフラグビット (RDRF) に "1" が セットされ , 受信割込み要求出力が許可 (SSR0/SSR1:RIE=1) に設定されていると受信割 込みを出力します。 インプットデータレジスタ (SIDR0/SIDR1) は , ステータスレジスタ (SSR0/SSR1) の受信 データフルフラグビット (RDRF) に "1" がセットされている場合に読み出してくださ い。受信データフルフラグビット (RDRF) はインプットデータレジスタ (SIDR0/SIDR1) を読み出すと , "0" にクリアされます。受信エラーが発生 (SSR0/SSR1:PE, ORE, FRE の いずれかが "1") した場合は , インプットデータレジスタ (SIDR0/SIDR1) のデータは無 効になります。 342 第 16 章 UART ■ アウトプットデータレジスタ (SODR0/SODR1) 図 16.4-6 アウトプットデータレジスタ (SODR0/SODR1) bit 7 6 5 4 3 2 1 0 初期値 アドレス D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W XXXXXXXXB ch.0 000022H ch.1 00002AH R/W:リード / ライト可能 送信許可状態の場合 , 送信するデータをアウトプットデータレジスタ (SODR0/SODR1) に書き込むと , 送信データを送信用シフトレジスタに転送し , シリアルデータに変換さ れて , シリアルデータ出力端子 (SO0/SO1 端子 ) から送出されます。動作モード 0 でデー タ長が 7 ビットに設定されている場合は , bit7(D7) は無効データとなります。 送信データがアウトプットデータレジスタに書き込まれると , ステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) が "0" にクリアされ , 送信 用シフトレジスタへの転送が終了すると "1" がセットされます。送信データエンプティ フラグビット (TDRE) に "1" が設定されている場合は , 次の送信用データを書き込むこ とができます。送信データエンプティフラグビット (TDRE) が "1" にセットされた場合 に送信割込み要求出力が許可 (SSR0/SSR1:TIE=1) されていると , 送信割込みを出力しま す。次の送信データの書込みは , 送信割込みを出力した場合 , または送信データエンプ ティフラグビット (TDRE) に "1" がセットされてから行ってください。 <注意事項> アウトプットデータレジスタ (SODR0/SODR1) は書込み専用のレジスタで , インプット データレジスタ (SIDR0/SIDR1) は読出し専用のレジスタですが , 同一アドレスに配置され ているため , 書込み値と読出し値は異なります。したがって , INC/DEC 命令などのリード モディファイライト (RMW) 系命令は使用できません。 343 第 16 章 UART 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) 16.4.5 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) は , マシンクロックの分周を制御 するレジスタです。 ■ 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) UART の動作クロックは , マシンクロックを分周して生成します。通信プリスケーラ制 御レジスタによって , さまざまなマシンサイクルに対して一定のボーレートが得られ るように設計されています。通信プリスケーラ制御レジスタの出力は , 拡張 I/O シリア ルインタフェースの動作クロックにも使われています。 図 16.4-7 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) の各ビットの機能説明 bit 15 14 13 12 11 10 9 8 アドレス MD R/W URST R/W − − − − 予約 R/W DIV2 R/W DIV1 R/W DIV0 R/W ch.0 000025H ch.1 00002DH 初期値 0X--0000B R/W:リード / ライト可能 −:未定義ビット 表 16.4-4 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) の各ビットの機能説明 ビット名 機能 bit15 MD: 通信プリスケーラ 動作許可ビット ・通信プリスケーラの動作を許可するビットです。 ・"1" を設定した場合は , 通信プリスケーラは動作します。 ・"0" を設定した場合は , 通信プリスケーラは停止します。 bit14 URST: UART リセット ビット ・UART に対してリセットを発生するビットです。 ・"1" を設定した場合は , UART をリセットします。 ・"0" を設定した場合は , UART のリセットを解除します。 bit13, bit12 −: 未定義ビット ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 bit11 予約: 予約ビット 必ず "0" を設定してください。 bit10 ∼ bit8 DIV2 ∼ DIV0: 分周比設定ビット ・マシンクロックの分周比を設定するビットです。 ・設定値については表 16.4-5 を参照してください。 344 第 16 章 UART 表 16.4-5 マシンクロック分周比 MD DIV2 DIV1 DIV0 div 0 − − − 停止 1 0 0 0 1 1 0 0 1 2 1 0 1 0 3 1 0 1 1 4 1 1 0 0 5 1 1 0 1 6 1 1 1 0 7 1 1 1 1 8 div : マシンクロック分周比 <注意事項> • 分周比を変えた場合は , クロックの安定時間として2 周期分の時間を待ってから通信を 行ってください。 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) には , INC/DEC 命令などのリードモ ディファイライト (RMW) 系命令は使用できません。 • 同期転送時に専用ボーレートを使用する場合 , 以下の設定をしないでください。 • CS2 ∼ CS0 = 000B のとき , DIV2 ∼ DIV0 = 000B, 001B, 010B • CS2 ∼ CS0 = 001B のとき , DIV2 ∼ DIV0 = 000B 345 第 16 章 UART 16.5 UART の割込み UART には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を出力しま す。 ・受信データがインプットデータレジスタ (SIDR0/SIDR1) に格納された場合 , また は受信エラーが発生した場合に受信割込みを出力します。 ・送信データがアウトプットデータレジスタ (SODR0/SODR1) から送信用シフト レジスタに転送された場合 , 送信割込みを出力します。 受信割込み , 送信割込みは拡張インテリジェント I/O サービス (EI2OS) にも対応して います。 ■ UART の割込み 表 16.5-1 UART の割込み制御ビットと割込み要因 送受信 受信 送信 割込み要求 フラグビット 割込み要因 0 1 2 RDRF ○ ○ ○ 受信データがイン プットデータレジス タ (SIDR0/ SIDR1) へ格納 ORE ○ ○ ○ オーバランエラー 発生 FRE ○ ○ × フレーミングエラー 発生 PE ○ × × パリティエラー発生 ○ アウトプットデータ レジスタ (SODR0/ SODR1) から送信 データ転送終了 TDRE ○:使用ビット ×:未使用ビット 346 動作モード ○ ○ 割込み要因 許可ビット 割込み要求フ ラグのクリア 受信データの 読出し SSR0/SSR1: 受信エラー RIE フラグ クリアビット (SCR0/SCR1: REC) に "0" を 設定 SSR0/SSR1: 送信データの TIE 書込み 第 16 章 UART ● 受信割込み 受信モード時は , データ受信完了 , オーバランエラー発生 , フレーミングエラー発生 , パリティエラー発生によってステータスレジスタ (SSR0/SSR1) 中の受信データフルフ ラグビット (RDRF), 受信エラーフラグビット (ORE, FRE, PE) のいずれかに "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) され ている場合に送信割込み要求を出力します。 ■ UART の割込みと EI2OS 表 16.5-2 UART の割込みと EI2OS 割込み制御レジスタ 割込み要因 ベクタテーブルアドレス EI2OS 割込み番号 UART0 受信割込み レジスタ名 アドレス ICR12 0000BCH #35(23H) UART0 送信割込み #36(24H) UART1 受信割込み #39(27H) ICR14 UART1 送信割込み #40(28H) 下位 上位 バンク FFFF70H FFFF71H FFFF72H ◎ FFFF6CH FFFF6DH FFFF6EH △ FFFF60H FFFF61H FFFF62H ◎ FFFF5CH FFFF5DH FFFF5EH △ 0000BEH ◎:UART の受信エラー検出による EI2OS 停止機能付き △:ICR12, ICR14 を共有する割込み要因を使用しない場合に使用可能 ■ UART の EI2OS 機能 UART は EI2OS 対応の回路を有していますので受信 / 送信割込みで別々に EI2OS を起 動できます。 ● 受信時 ほかのリソースの状態に関係なく , EI2OS を使用できます。 ● 送信時 割込み制御レジスタ (ICR14) は , UART の受信割込みと共有していますので , UART の 受信で割込みを使用しない場合に EI2OS を起動できます。 347 第 16 章 UART 受信割込み発生とフラグセットのタイミング 16.5.1 受信時の割込み要因として , 受信完了 (SSR0/SSR1:RDRF=1) および受信エラーの発 生 (SSR0/SSR1:PE, ORE, FRE のいずれかが "1") があります。 ■ 受信割込み発生とフラグセットのタイミング ● 動作モード 0, 1 の場合はストップビットの検出 , 動作モード 2 の場合はデータの最終 ビット (D7) の検出で , 受信データがインプットデータレジスタ (SIDR0/SIDR1) に格納 され , ステータスレジスタ (SSR0/SSR1) の受信データフルフラグビット (RDRF) に "1" がセットされます。受信エラーが発生していれば , 受信エラーフラグビット (PE, ORE, FRE) のいずれかに "1" がセットされます。各動作モードともいずれかの受信エラーフ ラグビットに "1" がセットされた場合は , インプットデータレジスタ (SIDR0/SIDR1) の 値は無効データになります。 動作モード 0( 非同期 , ノーマルモード ) ● ストップビット検出時にステータスレジスタ (SSR0/SSR1) の受信データフルフラグ ビット (RDRF) に "1" がセットされ , 受信エラーがあれば , 受信エラーフラグビット (PE, ORE, FRE) のいずれかに "1" がセットされます。 動作モード 1( 非同期 , マルチプロセッサモード ) ストップビット検出時にステータスレジスタ (SSR0/SSR1) の受信データフルフラグ ビット (RDRF) に "1" がセットされ , 受信エラーがあれば , 受信エラーフラグビット (ORE, FRE) のいずれかに "1" がセットされます。パリティエラーの検出はできません。 ● 動作モード 2( 同期 , ノーマルモード ) 受信データの最終ビット (D7) 検出時にステータスレジスタ (SSR0/SSR1) の受信データ フルフラグビット (RDRF) に "1" がセットされ , 受信エラーがあれば , 受信エラーフラ グビット (ORE) に "1" がセットされます。パリティエラー, およびフレーミングエラー の検出はできません。 図 16.5-1 受信動作とフラグセットのタイミング 受信データ (動作モード0) ST D0 D1 D5 D6 D7/P 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) されている場合に , ステータスレジスタ (SSR0/ SSR1)の受信データフルフラグビット(RDRF), 受信エラーフラグビット(PE, ORE, FRE) のいずれかに "1" がセットされると , 受信割込み要求を出力します。 348 第 16 章 UART 送信割込み出力とフラグセットのタイミング 16.5.2 送信時の割込みは , アウトプットデータレジスタ (SODR0/SODR1) に次のデータの 書込みが可能な状態になると発生します。 ■ 送信割込み発生とフラグセットのタイミング ステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) は , ア ウトプットデータレジスタ (SODR0/SODR1) に書き込まれたデータが送信用シフトレ ジスタに転送され , 次のデータ書込みが可能になると "1" がセットされます。アウト プットデータレジスタ (SODR0/SODR1) に送信データを書き込んだ場合は , 送信データ エンプティフラグビット (TDRE) が "0" にクリアされます。 図 16.5-2 送信動作とフラグセットのタイミング [動作モード0,1] 送信割込み発生 送信割込み発生 SODR書込み TDRE SO0/SO1出力 [動作モード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 SO0/SO1出力 ST D0~D7 SP A/D D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 :スタートビット :データビット :ストップビット :アドレス/データ設定ビット ● 送信割込み要求出力のタイミング 送信割込みが許可 (SSR0/SSR1:TIE=1) されている場合に , ステータスレジスタ (SSR0/ SSR1) の送信データエンプティフラグビット (TDRE) に "1" がセットされると , 送信割 込み要求を出力します。 <注意事項> 初期状態でステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) は "1" がセットされているため , 送信割込みを許可 (SSR0/SSR1:TIE=1) した場合 は , 送信割込みを出力します。送信データエンプティフラグビット (TDRE) は読出し専用 ですので , アウトプットデータレジスタ (SODR0/SODR1)に新規データを書き込む以外に "0" にクリアする方法がありません。送信割込み許可のタイミングに注意してください。 349 第 16 章 UART 16.6 UART のボーレート UART の送受信クロックは , 次のいずれかを設定できます。 ・専用ボーレートジェネレータ ・内部クロック (16 ビットリロードタイマ ) ・外部クロック (SC 端子入力のクロック ) ■ UART ボーレート設定 ボーレートの選択回路は図 16.6-1 のようになっており , ボーレートは次の 3 種類の中 から 1 種類を設定できます。 ● 専用ボーレートジェネレータによるボーレートの設定 UART は専用ボーレートジェネレータを内蔵しており , モードレジスタ (SMR0/SMR1) で , 6 種類のボーレートから 1 種類を設定できます。マシンクロックとモードレジスタ (SMR0/SMR1) のクロック設定ビット (CS2 ∼ CS0) によって , 非同期もしくは , 同期ボー レートを設定します。 ● 内部クロックによるボーレートの設定 16 ビットリロードタイマから供給される内部クロックを同期の場合はそのまま , 非同 期の場合は 16 分周してボーレートとして使用します。リロードタイマ値の設定によっ てボーレートを設定できます。 ● 外部クロックによるボーレートの設定 UART のクロック入力端子 (SCK) より入力されたクロックは , 同期モードの場合 , 入力 したクロックの周波数を , 非同期モードの場合 , 入力したクロックの周波数を 16 分周 した周波数をボーレートとして設定できます。 350 第 16 章 UART 図 16.6-1 UART ボーレート選択回路 SMR0/SMR1:CS2~CS0 (クロック設定ビット) [専用ボーレートジェネレータ] クロックセレクタ 4 "000B"~ "100B"の場合 分周回路 (同期) 1/2,1/4,1/8分周の いずれか設定 (非同期) 内部固定分周比を設定 プリスケーラ [内部タイマ] TMCR:CSL1, CSL0 2 クロックセレクタ "110B"の場合 ダウン カウンタ UF 1/1(同期) 1/16(非同期) ボーレート プリスケーラ 16ビットリロードタイマ [外部クロック] "111B"の場合 端子 1/1(同期) 1/16(非同期) SMR0/SMR1:MD1 (クロック同期/非同期の設定) 351 第 16 章 UART 16.6.1 専用ボーレートジェネレータによるボーレート UART の転送クロックとして , 専用ボーレートジェネレータの出力クロックを設定 した場合の設定可能なボーレートを示します。 ■ 専用ボーレートジェネレータによるボーレート モードレジスタ (SMR0/SMR1) のクロック設定ビットに "000B ∼ 101B" を設定した場合 は , 専用ボーレートジェネレータによるボーレートが設定されます。 専用ボーレートジェネレータで転送クロックを生成する場合 , マシンクロックはマシ ンクロックプリスケーラで分周された後 , クロックセレクタで設定される転送クロッ ク分周比で分周されます。マシンクロック分周比は , 非同期 / 同期共通ですが , 転送ク ロック分周比は , 非同期と同期で , 別々にモードレジスタ (SMR0/SMR1) のクロック設 定ビット (CS2 ∼ CS0) で設定された値となります。 実際の転送レートは , 次式で求められます。 非同期ボーレート = φ ÷ ( マシンクロック分周比 )/( 非同期転送クロック分周比 ) 同期ボーレート = φ ÷ ( マシンクロック分周比 )/( 同期転送クロック分周比 ) φ : マシンクロック周波数 ● プリスケーラによる分周比 ( 非同期 / 同期共通 ) マシンクロックの分周比は , 表 16.6-1 に示すように通信プリスケーラ制御レジスタ (CDCR0/CDCR1) の分周比設定ビット (DIV2 ∼ DIV0) で設定します。 表 16.6-1 マシンクロックプリスケーラによる分周比の設定 MD DIV2 DIV1 DIV0 div 0 − − − 停止 1 0 0 0 1 1 0 0 1 2 1 0 1 0 3 1 0 1 1 4 1 1 0 0 5 1 1 0 1 6 1 1 1 0 7 1 1 1 1 8 div : マシンクロック分周比 352 第 16 章 UART ● 同期転送クロック分周比 同期ボーレートは , 表 16.6-2 に示すようにモードレジスタ (SMR0/SMR1) のクロック設 定ビット (CS2 ∼ CS0) で設定します。 表 16.6-2 同期ボーレート分周比の設定 CS2 CS1 CS0 CLK 同期時 0 0 0 3.125 Mbps ( φ ÷ div)/1 ( φ ÷ div)/1 0 0 1 1.6 Mbps ( φ ÷ div)/2 ( φ ÷ div)/2 0 1 0 781.25 kbps ( φ ÷ div)/4 ( φ ÷ div)/4 0 1 1 390.63 kbps ( φ ÷ div)/8 ( φ ÷ div)/8 1 0 0 195.34 kbps ( φ ÷ div)/16 ( φ ÷ div)/16 1 0 1 97.66 kbps ( φ ÷ div)/32 ( φ ÷ div)/32 算出式 SC0/SC1 ただし , φ はマシンサイクル , div はマシンクロック分周比 , φ =25 MHz, div=8 で算出しています。 また , CS2 ∼ CS0=000B は div=8 より小さく設定することはできません。φ /8, または同期ボーレー トより小さくなるように設定してください。 <注意事項> 同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定をしないでくださ い。 • CS2 ∼ CS0 = 000B のとき , DIV2 ∼ DIV0 = 000B, 001B, 010B • CS2 ∼ CS0 = 001B のとき , DIV2 ∼ DIV0 = 000B ● 非同期転送クロック分周比 非同期ボーレートの分周比は , 表 16.6-3 に示すようにモードレジスタ (SMR0/SMR1) の CS2 ∼ CS0 ビットで設定します。 表 16.6-3 非同期ボーレート分周比の設定 CS2 CS1 CS0 非同期 ( 調歩同期 ) 算出式 SC0/SC1 0 0 0 120, 192 bps ( φ ÷div)/(8×13× 2) ( φ ÷div)/(13×1) 0 0 1 60, 096 bps ( φ ÷div)/(8×13× 4) ( φ ÷div)/(13×2) 0 1 0 30, 048 bps ( φ ÷div)/(8×13× 8) ( φ ÷div)/(13×4) 0 1 1 15, 024 bps ( φ ÷div)/(8×13×16) ( φ ÷div)/(13×8) 1 0 0 781.25 kbps ( φ ÷ div)/(8 × 2 × 2) ( φ ÷ div)/2 1 0 1 390.625 kbps ( φ ÷ div)/(8 × 2 × 4) ( φ ÷ div)/4 ただし , φ はマシンサイクル , div はマシンクロック分周比 , φ =25 MHz, div=1 で算出しています。 353 第 16 章 UART 内部タイマによるボーレート 16.6.2 UART の転送クロックとして , 16 ビットリロードタイマから供給される内部クロッ クを設定した場合の設定とボーレートの計算式を示します。 ■ 内部タイマ (16 ビットリロードタイマ ) によるボーレート モードレジスタ (SMR0/SMR1) のクロック設定ビット (CS2 ∼ CS0) に "110B" を設定し た場合は , 内部クロックによるボーレートが設定されます。ボーレートは , 16 ビットリ ロードタイマのプリスケーラ分周比とリロード値の設定により設定できます。 図 16.6-2 内部タイマ (16 ビットリロードタイマ ) によるボーレート選択回路 SMR0/SMR1:CS2~CS0=110 B (内部タイマ設定) クロックセレクタ 16ビットリロードタイマ出力 (プリスケーラ分周値と リロード値によって周波数設定) 1/1(同期) 1/16(非同期) ボーレート SMR0/SMR1:MD1 (クロック同期/非同期の設定) ● ボーレート計算式 非同期ボーレート =( φ ÷ N)/(16 × 2 × (n+1)) bps 同期ボーレート =( φ ÷ N)/(2 × (n+1)) bps φ : マシンクロック周波数 N:16 ビットリロードタイマ 0 のプリスケーラによる分周比 (21, 23, 25) n:16 ビットリロードタイマ 0 のリロード値 (0 ∼ 65, 535) <注意事項> UART0 は 16 ビットリロードタイマ 1, UART1 は 16 ビットリロードタイマ 2 でボーレー トの設定を行ってください。 354 第 16 章 UART ● リロード値の設定例 ( マシンクロック :7.3728 MHz のとき ) 表 16.6-4 ボーレートとリロード値 リロード値 (n) クロック非同期 ( 調歩同期 ) クロック同期 ボーレート N=21 (マシンサイクルの 2 分周 ) N=23 (マシンサイクルの 8 分周 ) N=21 (マシンサイクルの 2 分周 ) N=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 N :16 ビットリロードタイマ 0 のプリスケーラによる分周比 −:設定禁止 <注意事項> クロック同期時 , 以下の設定は禁止です。 N = 1, n = 0 355 第 16 章 UART 16.6.3 外部クロックによるボーレート UART の転送クロックとして , 外部クロックを設定した場合の設定とボーレートの 計算式を示します。 ■ 外部クロックによるボーレート 外部クロックによるボーレートを設定するには , 次に示す設定が必要です。 • モードレジスタ (SMR0/SMR1) のクロック設定ビット (CS2 ∼ CS0) に "111B" を設定 した後 , 外部クロック入力によるボーレートを設定します。 • SC 端子を入力ポートに設定します。 • モードレジスタ (SMR0/SMR1) のシリアルクロック出力許可ビット (SCKE) に "0" を 設定して端子をシリアルクロック入力端子とします。 図 16.6-3 に示すように , SC 端子から入力された外部クロックを基にボーレートを設定 します。内部の分周比は固定されていますので , ボーレートを変更するには外部の入力 クロックの周期を変更する必要があります。 図 16.6-3 外部クロックによるボーレート選択回路 SMR0/SMR1:CS2~CS0=111B (外部クロック設定) クロックセレクタ SC 1/1(同期) 1/16(非同期) 端子 ボーレート SMR0/SMR1:MD1 (クロック同期/非同期設定) ● ボーレート計算式 非同期ボーレート = φ/16 bps 同期ボーレート = φ' bps ただし , φ の最大はマシンクロックの 1/2 まで , φ' の最大はマシンクロックの 1/8 まで です。 356 第 16 章 UART UART の動作説明 16.7 UART には , 双方向シリアル通信機能 ( 動作モード 0, 2), マスタ / スレーブ型通信機 能 ( 動作モード 1) があります。 ■ UART の動作 ● 動作モード UART の動作モードは動作モード 0 ∼ 2 の 3 種類があり , 表 16.7-1 に示すように CPU 間の接続方式やデータ転送方式で設定できます。 表 16.7-1 UART の動作モード データ長 動作モード 同期方式 パリティなし パリティあり 0 ノーマルモード 7 ビットまたは 8 ビット 非同期 1 マルチプロセッサ モード 8 + 1*1 ― 非同期 2 ノーマルモード 8 ― 同期 ストップ ビット長 1 ビット または 2 ビット *2 なし ―:設定不可 *1:" + 1" は通信制御用に使用されるアドレス / データ設定ビット (A/D) です。 *2:受信時のストップビットは 1 ビットのみ検出可能 <注意事項> UART の動作モード 1 は , マスタ・スレーブ型接続時のマスタ時に使用されます。 ● CPU 間接続方式 1 対 1 接続 ( ノーマルモード ) かマスタ / スレーブ型接続 ( マルチプロセッサモード ) を 設定できます。ノーマルモード , マルチプロセッサモードともにデータ長 , パリティの 有無 , 同期方式などは , すべての CPU で統一しておく必要があります。動作モードは 次のように設定します。 • 1 対 1 接続では , 双方の CPU で動作モード 0, 2 のいずれか同じ方式を採用する必要 があります。非同期方式では動作モード 0 を , 同期方式では動作モード 2 を設定し てください。 • マスタ / スレーブ型接続では , 動作モード 1 を使用します。動作モード 1 を設定し , マスタとして使用してください。マスタ / スレーブ型接続ではパリティなしを設定 してください。 ● 同期方式 動作モードで , 非同期方式 ( 調歩同期 ) かクロック同期方式を設定できます。 357 第 16 章 UART ● 信号方式 UART は , NRZ(Non Return to Zero) 形式のデータを扱えます。 ● 動作許可 UART は , 制御レジスタ (SCR0/SCR1) に送信動作許可ビット (TXE), 受信動作許可ビッ ト (RXE) があり , 送受信動作を制御できます。動作中に動作禁止した場合は , 次のよう になります。 • 受信中 ( 受信用シフトレジスタにデータが入力されている場合 ) に受信動作を禁止 した場合は , 現在受信しているデータの受信を終了し , インプットデータレジスタ (SIDR0/SIDR1) に受信データを格納して受信動作を停止します。 • 送信中 ( 送信用シフトレジスタからデータが出力されている場合 ) に送信動作を禁 止した場合は , アウトプットデータレジスタ (SODR0/SODR1) にデータがなくなっ た後に送信動作を停止します。 • UART において動作モード 1 の場合 , 受信データの 9 ビット目は無視されます。 358 第 16 章 UART 16.7.1 非同期モード ( 動作モード 0, 1) 時の動作 UART を動作モード 0( ノーマルモード ), 動作モード 1( マルチプロセッサモード ) で 使用する場合 , 転送方式は非同期となります。 ■ 非同期モード時の動作 ● 送受信データフォーマット 送受信は , 必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット長の 送受信が行われ , ストップビット ("H" レベル ) で終了します。 • 動作モード 0 では , データ長は 7 ビットまたは 8 ビットを選択します。パリティビッ トは , あり / なしの選択ができます。 • 動作モード 1 では , データ長は 8 ビットに固定されます。パリティビットは付加さ れません。9ビット目に, アドレス/データビット(SMR0/SMR1: A/D)が付加されます。 図 16.7-1 に , 送受信データフォーマット ( 動作モード 0, 1) を示します。 図 16.7-1 送受信データフォーマット ( 動作モード 0, 1) [動作モード0] ST D0 D1 D2 D3 D4 D5 D6 D7 SP ST D0 D1 D2 D3 D4 D5 D6 D7 SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP Pなし データ8ビット SP SP Pあり ST D0 D1 D2 D3 D4 D5 D6 D7 P ST D0 D1 D2 D3 D4 D5 D6 SP SP SP Pなし ST D0 D1 D2 D3 D4 D5 D6 SP データ7ビット ST D0 D1 D2 D3 D4 D5 D6 P SP SP Pあり ST D0 D1 D2 D3 D4 D5 D6 P SP D2 D3 D4 D5 D6 D7 A/D [動作モード1] ST D0 D1 SP SP データ8ビット ST D0 D1 D2 D3 D4 D5 D6 D7 A/D SP ST :スタートビット SP :ストップビット P :パリティビット A/D :アドレス/データビット 359 第 16 章 UART ● 送信動作 ステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) に "1" が設定されている場合は , アウトプットデータレジスタ (SODR0/SODR1) に送信データ を書き込みます。送信動作が許可 (SCR0/SCR1:TXE=1) されていると , 送信が行われま す。 送信データが送信用シフトレジスタに転送され , 送信が開始されるとステータスレジ スタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) に再び "1" がセットさ れ , 次の送信データをセットできるようになります。送信割込み要求出力が許可 (SSR0/ SSR1:TIE=1) されていると , 送信割込み要求を出力してアウトプットデータレジスタ (SODR0/SODR1) に送信データをセットするように要求します。送信データエンプティ フラグビット (TDRE) は , アウトプットデータレジスタ (SODR0/SODR1) に送信データ を書き込むと "0" にクリアされます。 ● 受信動作 受信動作が許可 (SCR0/SCR1:RXE=1) されていると , 常に受信動作が行われます。ス タートビットを検出した場合は, 制御レジスタ(SCR0/SCR1)で設定されたデータフォー マットに従って 1 フレームデータの受信が行われます。1 フレームの受信が終わると , 受信エラーが発生した場合はステータスレジスタ (SSR0/SSR1) の受信エラーフラグ ビット (PE, ORE, FRE) のいずれかに "1" がセットされた後 , 受信データフルフラグビッ ト (RDRF) に "1" がセットされます。受信割込み要求出力が許可 (SSR0/SSR1:RIE=1) さ れていると , 受信割込み要求を出力します。ステータスレジスタ (SSR0/SSR1) の各受信 エラーフラグビット (PE, ORE, FRE) を調べ , 正常受信ならインプットデータレジスタ (SIDR0/SIDR1) を読み出し , エラーが発生していればエラー処理をするようにしてくだ さい。受信データフルフラグビット (RDRF) は , インプットデータレジスタ (SIDR0/ SIDR1) から受信データを読み出すと "0" にクリアされます。 ● ストップビット 送信時には 1 ビットまたは 2 ビットを設定できます。受信側では , 常に最初の 1 ビット を判別します。 ● エラー検出 • 動作モード 0 では , パリティエラー , オーバランエラー , フレーミングエラーが検出 できます。 • 動作モード 1 では , オーバランエラー, フレーミングエラーが検出でき , パリティエ ラーは検出できません。 ● パリティ パリティは , 動作モード 0 の場合に使用できます。制御レジスタ (SCR0/SCR1) のパリ ティイネーブルビット (PEN) でパリティの有無をパリティ設定ビット (P) で偶数パリ ティ / 奇数パリティを設定できます。動作モード 1 ではパリティは使用できません。 360 第 16 章 UART 図 16.7-2 パリティ有効時の送信データ SI1 ST SP 1 SO1 1 1 0 0 0 ST 1 SO1 0 0 1 1 0 0 0 1 1 データ 0 0 SP 偶数パリティの送信 (SCR1:P=0) SP 奇数パリティの送信 (SCR1:P=1) 1 ST 1 偶数パリティにて受信時 パリティエラー発生 (SCR1:P=0) 0 パリティ ST:スタートビット SP:ストップビット <注意事項>動作モード1,2では,パリティは使用できません。 361 第 16 章 UART 16.7.2 同期モード ( 動作モード 2) 時の動作 UART 動作モード 2( ノーマルモード ) で使用する場合 , 転送方式はクロック同期と なります。 ■ 同期モード ( 動作モード 2) 時の動作 ● 転送データフォーマット 同期モードでは , 8 ビットデータを LSB ファーストで転送します。 図 16.7-3 転送データフォーマット ( 動作モード 2) 送信データ書込み マークレベル 送受信クロック RXE,TXE 送受信データ 1 0 LSB 1 1 0 0 1 データ 0 MSB ● クロック供給 クロック同期 (I/O 拡張シリアル ) 方式では , 送受信ビット数に等しい数のクロックの供 給が必要になります。 • 内部クロックを設定している場合は , データを送信した場合にデータ受信用同期ク ロックが生成されます。 • 外部クロックを設定している場合は , 送信側 UART のアウトプットデータレジスタ (SODR0/SODR1) にデータがあること (SSR0/SSR1:TDRE=0) を確認した後 , 正確に 1 バイト分のクロックを外部から供給する必要があります。送信開始前と終了後は , 必ずマークレベル "H" にする必要があります。 ● エラー検出 オーバランエラーが検出可能で , パリティエラー, フレーミングエラーは検出できませ ん。 362 第 16 章 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) へのデータ書込みで通信を開始します。 受信する場合でも通信を開始する場合は , 必ず送信データをアウトプットデータレジ スタ (SODR0/SODR1) に書き込む必要がありますので注意してください。 ● 通信終了 1 フレームのデータ送受信が終了した場合は , ステータスレジスタ (SSR0/SSR1) の受信 データフルフラグビット (RDRF) に "1" がセットされます。受信時は , オーバランエ ラーフラグビット (ORE) をチェックし , 通信が正常に行われたかどうかを判断してく ださい。 363 第 16 章 UART 16.7.3 双方向通信機能 ( ノーマルモード ) 動作モード 0, 2 で , 1 対 1 接続のシリアル双方向通信ができます。同期方式は , 動作 モード 0 の場合は非同期 , 動作モード 2 の場合は同期となります。 ■ 双方向通信機能 UART をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 16.7-4 の設定が 必要です。 図 16.7-4 UART1 の動作モード 0 の設定 ビット 15 SCR1, SMR1 モード 0 → モード 2 → SSR1, SIDR1/SODR1 モード 0 → モード 2 → 14 13 12 11 PEN P SBL CL A/D ◎ 0 ◎ × ◎ × ◎ 1 × × PE ◎ × 10 ◎ × ◎ ◎ ◎ ◎ 8 7 6 5 4 3 CRE RXE TXE MD1 MD0 OTO EXT REST 0 0 ORE FRE RDRF TDRE BDS ◎ ◎ 9 ◎ ◎ ◎ ◎ ◎ ◎ RIE TIE ◎ ◎ ◎ ◎ 0 1 0 0 ◎ ◎ ◎ ◎ ◎ ◎ 2 1 0 − SCKE SOE − − ◎ ◎ ◎ ◎ 変換データを設定 ( 書込み時 ) / 受信データを保持 ( 読出し時 ) DDR △ ◎ × 1 0 △ :使用ビット :未使用ビット :"1" を設定 :"0" を設定 :端子の入力を使用する場合 "0" を設定 ● CPU 間接続 図 16.7-5 に示すように , 2 つの CPU を相互に接続します。 図 16.7-5 UART1 の双方向通信の接続例 SO SO SI SC CPU-1 364 SI 出力 入力 SC CPU-2 △ 第 16 章 UART ● 通信手順 通信は , 送信データが準備できた場合に送信側から開始します。受信側で送信データを 受け取ると , 定期的に ANS( 本例では 1 バイトごと ) を返します。 図 16.7-6 双方向通信フローの例 (送信側) (受信側) スタート スタート 動作モード設定 (0,2いずれか) 動作モード設定 (送信側と合わす) SODRに1バイトデータを セットして通信 データ送信 受信データあり NO YES NO 受信データあり 受信データ読出しと処理 YES データ送信 受信データ読出しと処理 (ANS) 1バイトデータ送信 365 第 16 章 UART マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) 16.7.4 UART は , 複数 CPU のマスタ / スレーブ型接続による通信が可能であり , 動作モー ド 1 を使用します。UART はマスタとして使用可能です。 ■ マスタ / スレーブ型通信機能 UART をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 16.7-7 の 設定が必要です。 図 16.7-7 UART1 の動作モード 1 の設定 ビット 15 SCR1, SMR1 SSR1, SIDR1/SODR1 14 13 12 11 PEN P SBL CL A/D 0 × ◎ 1 ◎ PE × 10 ◎ ◎ 8 7 6 5 4 3 CRE RXE TXE MD1 MD0 OTO EXT REST 0 ORE FRE RDRF TDRE BDS ◎ 9 ◎ ◎ ◎ ◎ RIE TIE ◎ ◎ 0 1 ◎ ◎ ◎ 2 1 0 − SCKE SOE − ◎ ◎ 変換データを設定 ( 書込み時 ) / 受信データを保持 ( 読出し時 ) DDR △ ◎ × 1 0 △ △ :使用ビット :未使用ビット :"1" を設定 :"0" を設定 :端子の入力を使用する場合 "0" を設定 ● CPU 間接続 図 16.7-8 に示すように , 2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレー ブ CPU を接続して , 通信システムを構成します。UART1 は , マスタ CPU として使用 可能です。 図 16.7-8 UART1 のマスタ・スレーブ型通信の接続例 SO SI マスタCPU SO SI スレーブCPU #0 366 SO SI スレーブCPU #1 第 16 章 UART ● 機能設定 マスタ / スレーブ型通信では , 表 16.7-2 のように動作モードとデータ転送方式を設定し てください。 表 16.7-2 マスタ / スレーブ型通信機能の設定 動作モード データ マスタ CPU 同期方式 ストップ ビット なし 非同期 1 ビット または 2 ビット スレーブCPU A/D=1 + 8ビットアドレス アドレス 送受信 動作モード 1 データ 送受信 パリティ ― A/D = 0 + 8 ビットデータ 367 第 16 章 UART ● 通信手順 通信はマスタ CPU がアドレスデータを送信することで始まります。アドレスデータと は , A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を設定します。各ス レーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレスと一致 した場合に , マスタ CPU との通信 ( 通常データ ) を開始します。 図 16.7-9 マスタ / スレーブ型通信フローチャート (マスタCPU) スタート 動作モードを"1"とする SIN端子をシリアルデータ 入力に設定 D0~D7にスレーブ CPUを選択する1バイト データ(アドレスデータ) をセットして送信 (A/D=1) A/Dに"0"をセット 受信動作許可 スレーブCPUと通信 通信終了? NO YES ほかの スレーブCPU と通信 NO YES 受信動作禁止 エンド 368 第 16 章 UART 16.8 UART 使用上の注意 UART を使用するときの注意点を示します。 ■ UART 使用上の注意 ● 動作許可 UART には , 制御レジスタ (SCR0/SCR1) に送信動作許可ビット (TXE), 受信動作許可 ビット (RXE) があります。初期値では , 送受信動作許可ビット (TXE, RXE) は , ともに "0" が設定されていて動作禁止であるため , 転送前に "1" を設定して送受信動作を許可 してください。必要に応じて送受信動作を禁止にして , 転送を中止することもできま す。 ● 通信モードの設定 通信モードの設定は, 停止中にしてください。送受信中に通信モードの設定をした場合, 送受信されたデータは保証されません。 ● 同期モード UART のクロック同期モード ( 動作モード 2) は , クロック制御 (I/O 拡張シリアル ) 方 式を採用しており , スタートビット , ストップビットはデータに付加されません。 ● 送信割込み許可のタイミング ステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) は初 期値が "1"( 送信データなし , 送信データ書込み許可 ) に設定されているため , 送信割込 み要求出力を許可 (SSR0/SSR1:TIE=1) した直後 , 送信割込み要求を出力します。必ず , 送信データを準備してから , 送信割込み要求許可ビット (TIE) に "1" を設定してくださ い。 ● 動作モード 1( マルチプロセッサモード ) の受信 UART の動作モード 1( マルチプロセッサモード ) においては , 9 ビット受信での受信動 作はできません。 ● クロック同期モード時のクロック設定 クロック同期モード時に専用ボーレートジェネレータを使用する場合 , 以下の設定を しないでください。 • CS2 ∼ CS0 = 000B • CS2 ∼ CS0 = 001B, DIV2 ∼ DIV0 = 000B 369 第 16 章 UART 370 第 17 章 DTP/ 外部割込み回路 MB90800 シリーズの DTP/ 外部割込み回路の機能 と動作について説明します。 17.1 DTP/ 外部割込み回路の概要 17.2 DTP/ 外部割込み回路の構成 17.3 DTP/ 外部割込み回路の端子 17.4 DTP/ 外部割込み回路のレジスタ 17.5 DTP/ 外部割込み回路の動作説明 17.6 DTP/ 外部割込み回路使用上の注意 371 第 17 章 DTP/ 外部割込み回路 17.1 DTP/ 外部割込み回路の概要 DTP(Data Transfer Peripheral)/ 外部割込み回路は , 外部割込み入力端子から入力さ れた割込み要求を検出し , 割込み要求を出力します。 ■ DTP/ 外部割込み機能 DTP/ 外部割込み回路の機能は , 外部割込み入力端子に入力されるエッジ , またはレベ ル信号を検出した場合に割込み要求を出力します。 割込み要求が CPU に受け付けられ , 拡張インテリジェント I/O サービス (EI2OS) が許 可に設定されている場合は , EI2OS による自動データ転送 (DTP 機能 ) を行った後 , 割 込み処理ルーチンへ分岐します。また , EI2OS が禁止に設定されている場合は , EI2OS による自動データ転送 (DTP 機能 ) を起動せず , 割込み処理ルーチンへ分岐します。 表 17.1-1 DTP/ 外部割込みの概要 外部割込み機能 DTP 機能 入力端子 4 チャネル (P65/INT0, P66/INT1, P67/INT2, P70/INT3) 割込み要因 要求レベル設定レジスタ (ELVR) にて検出レベル , またはエッジの 種類を端子ごとに設定可能 "L" レベル / "H" レベルの入力 立上りエッジ/立下りエッジの入力 割込み番号 #11(0BH), #13(0DH), #16(10H) 割込み制御 DTP/ 外部割込み許可レジスタ (ENIR) による割込み要求出力の許可 と禁止 割込みフラグ DTP/ 外部割込み要因レジスタ (EIRR) による割込み要因の保持 処理設定 EI2OS を禁止に設定 (ICR:ISE=0) EI2OS を許可に設定 (ICR:ISE=1) 処理 割込み処理ルーチンへ分岐 EI2OS による自動データ転送後 , 割込み処理ルーチンへ分岐 ICR: 割込み制御レジスタ ■ DTP/ 外部割込み回路の割込みと EI2OS 表 17.1-2 DTP/ 外部割込み回路の割込みと EI2OS 割込み制御レジスタ チャネル ベクタテーブルアドレス EI2OS 割込み番号 レジスタ名 アドレス 下位 上位 バンク INT0 #11(0BH) ICR00 0000B0H FFFFD0H FFFFD1H FFFFD2H INT1 #13(0DH) ICR01 0000B1H FFFFC8H FFFFC9H FFFFCAH #16(10H) ICR02 0000B2H FFFFBCH FFFFBDH FFFFBEH INT2 INT3 ○:使用可能 372 ○ 第 17 章 DTP/ 外部割込み回路 17.2 DTP/ 外部割込み回路の構成 DTP/ 外部割込み回路は以下のブロックで構成されています。 ・DTP/ 外部割込み入力検出回路 ・DTP/ 外部割込み要因レジスタ (EIRR) ・DTP/ 外部割込み許可レジスタ (ENIR) ・要求レベル設定レジスタ (ELVR) ■ DTP/ 外部割込み回路のブロックダイヤグラム 図 17.2-1 DTP/ 外部割込み回路のブロックダイヤグラム 要求レベル設定レジスタ(ELVR) LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 セレクタ DTP/外部割込み入力 検出回路 端子 INT0 セレクタ 端子 INT1 内部データバス セレクタ 端子 INT2 端子 セレクタ INT3 DTP/外部割込み要因レジスタ(EIRR) - - - - ER3 ER2 ER1 ER0 割込み要求 DTP/外部割込み許可レジスタ(ENIR) - - - - EN3 EN2 EN1 EN0 373 第 17 章 DTP/ 外部割込み回路 ● DTP/ 外部割込み入力検出回路 外部割込み入力端子に入力された信号と , 要求レベル設定レジスタ (ELVR) で設定した レベル , またはエッジが一致した場合は , 外部割込み入力端子に対応する DTP/ 外部割 込み要因フラグビット (EIRR:ER3 ∼ ER0) が "1" にセットされます。 ● 要求レベル設定レジスタ (ELVR) 外部割込み入力端子ごとに , 割込み要求の検出条件 ( レベルまたはエッジ ) を設定しま す。 ● DTP/ 外部割込み要因レジスタ (EIRR) 割込み要因の保持とクリアを行います。 ● DTP/ 外部割込み許可レジスタ (ENIR) 外部割込み入力端子ごとに , 割込み要求の許可 / 禁止を設定します。 374 第 17 章 DTP/ 外部割込み回路 DTP/ 外部割込み回路の端子 17.3 DTP/ 外部割込み回路の端子 , および端子部のブロックダイヤグラムを示します。 ■ DTP/ 外部割込み回路の端子 DTP/ 外部割込み回路の端子は , 入出力ポートと兼用になっています。 表 17.3-1 DTP/ 外部割込み回路の端子 端子名 端子機能 入出力形式 プルアップ抵抗 スタンバイ制御 端子の使用に必要な設定 入力ポートに設定 (DDR6:bit5=0) アナログ入力禁止 (ADER0:bit5=0) P65/ AN5/ INT0 ポート 6 入出力 / A/D アナログ入力 / 外部割込み入力 CMOS 出力 / CMOSヒステ リシス入力 P66/ AN6/ INT1 P67/ AN7/ INT2 入力ポートに設定 (DDR6:bit6=0) アナログ入力禁止 (ADER0:bit6=0) なし なし 入力ポートに設定 (DDR6:bit7=0) アナログ入力禁止 (ADER0:bit7=0) 入力ポートに設定 (DDR7:bit0=0) アナログ入力禁止 (ADER1:bit0=0) ポート 7 入出力 / A/D アナログ入力 / 外部割込み入力 P70/ AN8/ INT3 ■ DTP/ 外部割込み回路の端子部のブロックダイヤグラム 図 17.3-1 DTP/ 外部割込み回路の端子部のブロックダイヤグラム 内 部 デ ー タ バ ス PDR読出し PDR PDR書込み DDR 入出力 判定回路 入力バッファ 出力バッファ ポート 端子 スタンバイ制御(LPMCR:SPL=1) 375 第 17 章 DTP/ 外部割込み回路 17.4 DTP/ 外部割込み回路のレジスタ DTP/ 外部割込み回路のレジスタ一覧を示します。 ■ DTP/ 外部割込み回路のレジスタ 図 17.4-1 DTP/ 外部割込み回路のレジスタ一覧 bit15.................................................bit8 bit7.................................................bit0 DTP/ 外部割込み要因レジスタ (EIRR) DTP/ 外部割込み許可レジスタ (ENIR) 要求レベル設定レジスタ (ELVR) 376 第 17 章 DTP/ 外部割込み回路 DTP/ 外部割込み要因レジスタ (EIRR) 17.4.1 DTP/ 外部割込み要因レジスタ (EIRR) は , 割込み要因の保持とクリアをします。 ■ DTP/ 外部割込み要因レジスタ (EIRR) 図 17.4-2 DTP/ 外部割込み要因レジスタ (EIRR) bit アドレス 000031H 15 14 13 12 11 10 9 8 - - - - ER3 ER2 ER1 ER0 - - - - R/W R/W R/W R/W R/W :リード/ライト可能 - : 未定義ビット 初期値 ----XXXXB ER3 ~ ER0 0 割込み要求なし 割込み要求クリア 1 割込み要求あり 動作に影響しません。 外部割込み要求フラグビット 読出し時 書込み時 X : 不定 377 第 17 章 DTP/ 外部割込み回路 表 17.4-1 DTP/ 外部割込み要因レジスタ (EIRR) の各ビットの機能説明 ビット名 機能 bit15 ∼ bit12 未定義ビット 設定は無効となります。 bit11 ・ 割込み要求のフラグビットです。 ・ 外部割込み入力端子 (INT3) に , 要求レベル設定レジスタ (ELVR) の外部 割込み要求検出条件設定ビット (LB3, LA3) で 設定したレベル , または ER3: エッジ信号を検出した場合に "1" がセットされます。 外部 ・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット 割込み要求 (EN3) を "1" に設定している場合は , "1" がセットされると CPU へ割込 フラグビット み要求を出力します。 ・ "0" を設定した場合は , 割込み要求がクリアされます。 ・ "1" を設定した場合は , 動作に影響しません。 bit10 ・ 割込み要求のフラグビットです。 ・ 外部割込み入力端子 (INT2) に , 要求レベル設定レジスタ (ELVR) の外部 割込み要求検出条件設定ビット (LB2, LA2) で 設定したレベル , または ER2: エッジ信号を検出した場合に "1" がセットされます。 外部 ・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット 割込み要求 (EN2) を "1" に設定している場合は , "1" がセットされると CPU へ割込 フラグビット み要求を出力します。 ・ "0" を設定した場合は , 割込み要求がクリアされます。 ・ "1" を設定した場合は , 動作に影響しません。 bit9 ・ 割込み要求のフラグビットです。 ・ 外部割込み入力端子 (INT1) に , 要求レベル設定レジスタ (ELVR) の外部 割込み要求検出条件設定ビット (LB1, LA1) で 設定したレベル , または ER1: エッジ信号を検出した場合に "1" がセットされます。 外部 ・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット 割込み要求 (EN1) を "1" に設定している場合は , "1" がセットされると CPU へ割込 フラグビット み要求を出力します。 ・ "0" を設定した場合は , 割込み要求がクリアされます。 ・ "1" を設定した場合は , 動作に影響しません。 bit8 ・ 割込み要求のフラグビットです。 ・ 外部割込み入力端子 (INT0) に , 要求レベル設定レジスタ (ELVR) の外部 割込み要求検出条件設定ビット (LB0, LA0) で設定したレベル , または ER0: エッジ信号を検出した場合に "1" がセットされます。 外部 ・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット 割込み要求 (EN0) を "1" に設定している場合は , "1" がセットされると CPU へ割込 フラグビット み要求を出力します。 ・ "0" を設定した場合は , 割込み要求がクリアされます。 ・ "1" を設定した場合は , 動作に影響しません。 378 第 17 章 DTP/ 外部割込み回路 <参考> DTP 機能として拡張インテリジェント I/O サービス (EI2OS) を起動した場合は , 1 回の データ転送が終了した時点で , 対応する外部割込み要求フラグビット (ER3 ∼ ER0) は "0" にクリアされます。 <注意事項> • 外部割込み要求フラグビット (ER3 ∼ ER0) を "0" に設定する場合は , 必ずソフトウェ アで "1" をリードしたビットに "0" を設定してください。"0" を設定する場合に , ハード ウェアにて , 外部割込み要求フラグビット (ER3 ∼ ER0) が "1" にセットされた場合は , 外部割込み要求フラグビット (ER3 ∼ ER0) を "0" にクリアしてしまい割込み動作がう まくいかない場合があります。 • DTP/ 外部割込み要因ビット (EIRR: ER) の値は , 対応する DTP/ 外部割込み許可ビット (ENIR: EN) が "1" に設定されている時のみ有効です。 DTP/ 外部割込みが許可されていない状態 (ENIR: EN=0) では , DTP/ 外部割込み要因の 有無にかかわらず DTP/ 外部割込み要因ビットがセットされる可能性があります。 • DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビッ ト (EIRR: ER) をクリアしてください。 379 第 17 章 DTP/ 外部割込み回路 DTP/ 外部割込み許可レジスタ (ENIR) 17.4.2 DTP/ 外部割込み許可レジスタ (ENIR) は , 外部割込み端子ごとに外部割込み要求の 許可 / 禁止を設定します。 ■ DTP/ 外部割込み許可レジスタ (ENIR) 図 17.4-3 DTP/ 外部割込み許可レジスタ (ENIR) bit アドレス 000030H 7 6 5 4 3 2 1 0 - - - - EN3 EN2 EN1 EN0 - - - - R/W R/W R/W R/W R/W :リード/ライト可能 :初期値 - : 未定義ビット 初期値 ----0000B EN3 ~ EN0 0 割込み要求禁止 1 割込み要求許可 外部割込み要求許可ビット 表 17.4-2 DTP/ 外部割込み許可レジスタ (ENIR) の各ビットの機能説明 ビット名 bit7 ∼ bit4 未定義ビット 機能 設定は無効となります。 bit3 EN3: 外部割込み要求許可 ビット ・割込み要求を許可するビットです。 ・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ (EIRR) の外部割込み要求フラグビット (ER3) が "1" に セットされた場合 , CPU へ割込み要求を出力します。 bit2 EN2: 外部割込み要求許可 ビット ・割込み要求を許可するビットです。 ・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ (EIRR) の外部割込み要求フラグビット (ER2) が "1" に セットされた場合 , CPU へ割込み要求を出力します。 bit1 EN1: 外部割込み要求許可 ビット ・割込み要求を許可するビットです。 ・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ (EIRR) の外部割込み要求フラグビット (ER1) が "1" に セットされた場合 , CPU へ割込み要求を出力します。 bit0 EN0: 外部割込み要求許可 ビット ・割込み要求を許可するビットです。 ・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ (EIRR) の外部割込み要求フラグビット (ER0) が "1" に セットされた場合 , CPU へ割込み要求を出力します。 <注意事項> DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビット (EIRR: ER) をクリアしてください。 380 第 17 章 DTP/ 外部割込み回路 <参考> 入出力ポートと兼用する外部割込み入力端子を使用する場合は , ポート方向レジスタ (DDR) の対応する入出力ポートと兼用するビットを "0" に設定し , 端子を入力ポートとし てください。 外部割込み要求許可ビット (ENIR:EN3 ∼ EN0) の状態にかかわらず , 外部割込み入力端子 の状態は , ポートデータレジスタ (PDR) で直接読み出すことができます。DTP/ 外部割込 み要因レジスタ (EIRR) の外部割込み要求フラグビット (ER3 ∼ ER0) は , 外部割込み要求 許可ビット (ENIR:EN3 ∼ EN0) の値に関係なく , DTP/ 外部割込み要求の信号を検出した 場合は "1" がセットされます。 表 17.4-3 DTP/ 外部割込み制御レジスタ (EIRR, ENIR) と各チャネルの対応 DTP/外部割込み端子 割込み番号 INT3 INT2 #16(10H) 外部割込み要求フラグビット 外部割込み要求許可ビット ER3 EN3 ER2 EN2 INT1 #13(0DH) ER1 EN1 INT0 #11(0BH) ER0 EN0 381 第 17 章 DTP/ 外部割込み回路 要求レベル設定レジスタ (ELVR) 17.4.3 要求レベル設定レジスタ (ELVR) は , 外部割込み入力端子ごとに , 割込み要求の検出 条件 ( レベルまたはエッジ ) を設定します。 ■ 要求レベル設定レジスタ (ELVR) 図 17.4-4 要求レベル設定レジスタ (ELVR) bit アドレス 000032H 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード/ライト可能 :初期値 LB3 ~ LB0 0 LA3 ~ LA0 0 "L"レベル検出 0 1 "H"レベル検出 1 0 立上りエッジ検出 1 1 立下りエッジ検出 初期値 00000000B 外部割込み要求検出条件設定ビット 表 17.4-4 要求レベル設定レジスタ (ELVR) の各ビットの機能説明 ビット名 機能 bit7, bit6 LB3, LA3: 外部割込み要求検出 条件設定ビット 外部割込み入力端子 (INT3) に入力される信号から , 割込み要 求の検出条件 ( レベルまたはエッジ ) を設定するビットです。 bit5, bit4 LB2, LA2: 外部割込み要求検出 条件設定ビット 外部割込み入力端子 (INT2) に入力される信号から , 割込み要 求の検出条件 ( レベルまたはエッジ ) を設定するビットです。 bit3, bit2 LB1, LA1: 外部割込み要求検出 条件設定ビット 外部割込み入力端子 (INT1) に入力される信号から , 割込み要 求の検出条件 ( レベルまたはエッジ ) を設定するビットです。 bit1, bit0 LB0, LA0: 外部割込み要求検出 条件設定ビット 外部割込み入力端子 (INT0) に入力される信号から , 割込み要 求の検出条件 ( レベルまたはエッジ ) を設定するビットです。 <参考> 外部割込み入力端子に要求レベル設定レジスタ (ELVR) で設定した検出信号が入力される と , DTP/ 外部割込み許可レジスタ (ENIR) の設定に関係なく , 対応する端子の外部割込み 要求フラグビット (EIRR:ER3 ∼ ER0) に "1" がセットされます。 382 第 17 章 DTP/ 外部割込み回路 表 17.4-5 要求レベル設定レジスタ (ELVR) と各チャネルの対応 DTP/ 外部割込み入力端子 割込み番号 INT3 INT2 ビット名 LB3, LA3 #16(10H) LB2, LA2 INT1 #13(0DH) LB1, LA1 INT0 #11(0BH) LB0, LA0 383 第 17 章 DTP/ 外部割込み回路 DTP/ 外部割込み回路の動作説明 17.5 DTP/ 外部割込み回路には , 外部割込み機能と DTP 機能があります。各機能の設定 と動作について説明します。 ■ DTP/ 外部割込み回路の設定 DTP/ 外部割込み回路を動作させるには , 図 17.5-1 の設定が必要です。 図 17.5-1 DTP/ 外部割込み回路 bit ICR 15 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0 ◆ EIRR/ ENIR 14 ◆ ◆ ◆ 0 ◆ ◆ ◆ 1 ◆ ◆ ◆ ◆ ◆ ◆ ◆ 0 ◆ ◆ ◆ 外部割込み時 1 ◆ ◆ ◆ DTP時 ER3 ER2 ER1 ER0 EN3 EN2 EN1 EN0 ◆ ◇ ◆ ◆ ◆ ELVR ◇ ◇ ◇ LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ P70 P67 P66 P65 DDR △ △ △ △ ◆:使用ビット ◇:使用する端子に対応するビットに"1"を設定 △:使用する端子に対応するビットに"0"を設定 0 :"0"を設定 1 :"1"を設定 DTP/ 外部割込み回路のレジスタは , レジスタを設定する場合に , 誤って割込み要求を 出力することを避けるため , 以下に示す手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定します。 2. DTP/ 外部割込み許可レジスタ (ENIR) に "00H" を設定し , 割込み要求禁止にします。 3. 要求レベル設定レジスタ (ELVR) の外部割込み入力端子に対応する外部割込み要求 検出条件設定ビット (LB3 ∼ LB0, LA3 ∼ LA0) に , 割込み検出条件を設定します。 4. DTP/ 外部割込み要因レジスタ (EIRR) の外部割込み入力端子に対応する外部割込み 要求フラグビット (ER3 ∼ ER0) に "0" を設定し , 割込み要求クリアをします。 5. DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み入力端子に対応する外部割込み 要求許可ビット (EN3 ∼ EN0) に "1" を設定し , 割込み要求を許可します。 ● 外部割込み機能と DTP 機能の切換え 外部割込み機能と DTP 機能の切換えは , 使用する割込み要因に対応する割込み制御レ ジスタ (ICR) の EI2OS 許可ビット (ISE) で設定します。EI2OS 許可ビット (ISE) に "1" を設定した場合は , 拡張インテリジェント I/O サービス (EI2OS) が許可され , DTP 機能 として動作します。また , EI2OS 許可ビット (ISE) に "0" を設定した場合は , EI2OS が禁 止され , 外部割込み機能として動作します。 384 第 17 章 DTP/ 外部割込み回路 ■ DTP/ 外部割込み動作 表 17.5-1 DTP/ 外部割込み回路の制御ビットと割込み要因 DTP/ 外部割込み回路 割込み要求フラグビット EIRR:ER3 ∼ ER0 割込み要求許可ビット ENIR:EN3 ∼ EN0 割込み要因 INT3 ∼ INT0 端子への有効エッジ / レベルの入力 DTP/ 外部割込み回路は , 要求レベル設定レジスタ (ELVR), DTP/ 外部割込み要因レジス タ (EIRR), DTP/ 外部割込み許可レジスタ (ENIR) への動作設定を行った後 , 対応する外 部割込み入力端子に要求レベル設定レジスタ (ELVR) で設定した検出条件が入力され ると , 割込みコントローラに対して割込み要求を出力します。割込み制御レジスタ の EI2OS 許可ビット (ICR:ISE) に "0" を設定した場合は割込み処理を実行し , "1" を設 定した場合は拡張インテリジェント I/O サービス処理 (DTP 処理 ) を実行した後に , 割 込み処理を実行します。 385 第 17 章 DTP/ 外部割込み回路 図 17.5-2 DTP/ 外部割込み回路の動作 DTP/外部割込み回路 ELVR ほかの要求 割込みコントローラ ICR EIRR ICR ENIR CPU IL YY CMP CMP ILM XX 割込み処理 マイクロプログラム 要因 DTP処理ルーチン (EI2OS起動) DTP/外部割込み 要求出力 メモリ 周辺データ転送 ディスクリプタ更新 割込みコントローラ 受付け判定 ディスクリプタ データカウンタ CPU割込み 受付け判定 ≠0 DTP処理からの復帰 割込み処理 マイクロプログラム 起動 ICR:ISE 0 外部割込みルーチンを起動 処理と割込みフラグクリア 外部割込みから復帰 386 0 割込み処理ルーチン 再設定 または 停止 CPU処理復帰 1 第 17 章 DTP/ 外部割込み回路 外部割込み機能 17.5.1 DTP/ 外部割込み回路には , 外部割込み入力端子への入力信号で割込み要求を出力さ せる外部割込み機能があります。 ■ 外部割込み機能 外部割込み入力端子に要求レベル設定レジスタ (ELVR) で設定した検出条件 ( レベルま たはエッジ ) が入力されると , DTP/ 外部割込み要因レジスタ (EIRR) の端子に対応する 外部割込み要求フラグビット (ER3 ∼ ER0) に "1" がセットされます。 DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み入力端子に対応する外部割込み要 求許可ビット (EN3 ∼ EN0) に "1" を設定している場合 , 端子に対応する外部割込み要 求フラグビット (ER3 ∼ ER0) に "1" がセットされると , 割込みコントローラに対して 割込み要求を出力します。 割込みコントローラは , 周辺機能 ( リソース ) からの割込み要求の割込みレベル (ICR:IL2 ∼ IL0), 割込みの同時出力による優先順位を判定し , CPU はインタラプトレベルマスクレジス タ (PS:ILM) および割込み許可フラグ (PS:CCR:I) により , 割込み要求を受け付けるか判定し ます。CPU が割込み要求を受け付けると , 割込み処理を実行し , 割込み処理ルーチンに分 岐します。 割込み処理プログラムでは , 対応する外部割込み要求フラグビット (ER3 ∼ ER0) に "0" を設定し , 割込み要求をクリアした後 , 割込み復帰命令で割込みから復帰させてくだ さい。 <注意事項> 割込み処理プログラムが起動された場合は , 必ず起動要因となった外部割込み要求フラグ ビット (EIRR:EN3 ∼ EN0) に "0" を設定してください。外部割込み要求フラグビット (EIRR:EN3 ∼ EN0) に "1" がセットされた状態では , 割込みから復帰できません。 387 第 17 章 DTP/ 外部割込み回路 17.5.2 DTP 機能 DTP/ 外部割込み回路には , 外部接続の周辺装置から外部割込み入力端子へ入力され るデータ転送要求信号を検出し , 拡張インテリジェント I/O サービスを起動する DTP(Data Transfer Peripheral) 機能があります。 ■ DTP 機能の動作説明 DTP 機能は , 外部接続の周辺装置から外部割込み入力端子へ入力されるデータ転送要 求信号を検出し , メモリと周辺装置の間でデータの自動転送を行う機能です。 外部割込み機能で拡張インテリジェント I/O サービス (EI2OS) を起動します。CPU に割 込み要求が受け付けられるまでは , 外部割込み機能と同様の動作をしますが , EI2OS の 動作が許可 (ICR:ISE=1) されていれば , 割込み要求が受け付けられると EI2OS を起動し , データ転送を開始します。データの転送が終了するとディスクリプタの更新などが行 われ , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) を "0" にクリアし , 再び外部割 込み機能として動作します。EI2OS による転送がすべて終了すると , 外部割込みのベク タアドレスが指し示す割込み処理ルーチンに分岐します。外部接続の周辺装置は , 最初 の転送が開始されてから 3 マシンサイクル以内にデータ転送要求信号 (DTP 要因 ) の要 因入力を取り下げてください。 図 17.5-3 外部周辺装置とのインタフェース例 "H"レベル要求(ELVR:LB0,LA0=01B) INT0端子への入力 (DTP要因) CPU内部動作 (マイクロプログラム) ディスクリプタ 選択,読出し アドレスバス端子 ディスクリプタ 更新 読出しアドレス 書込みアドレス 読出しデータ データバス端子 書込みデータ 読出し信号 書込み信号 *1 外部接続の 周辺装置 内部データバス *1 読出し動作 レジスタ データ転送要求 DTP要因*2 INT 割込み要求 CPU DTP/ (EI2OS) 外部割込み回路 *1 :3マシンサイクル *2 :転送開始後,3マシンサイクル以内に取り下げる *3 :拡張インテリジェントI/Oサービスが「周辺→メモリ転送」の場合 388 書込み動作*3 内部メモリ 第 17 章 DTP/ 外部割込み回路 17.6 DTP/ 外部割込み回路使用上の注意 DTP/ 外部割込み回路の入力信号 , スタンバイモードの解除 , および割込みに関連す る注意を示します。 ■ DTP/ 外部割込み回路使用上の注意 ● DTP 機能を用いた場合の外部に接続する周辺装置の条件について DTP 機能がサポートできる外部接続の周辺装置は , 転送が行われたことで自動的に データ転送要求をクリアできるものでなければなりません。外部接続の周辺装置は , CPU が転送動作を開始してから 3 マシンサイクル以上転送要求を出力し続けた場合 , DTP/ 外部割込み回路は次の転送要求が発生したものとして , 再度データ転送動作を行 います。 ● 外部割込み入力極性について • 要求レベル設定レジスタ (ELVR) の設定がエッジ検出の場合は , 割込み要求となる エッジが入力されたことを検出するために , 入力レベルの変化ポイントから最小 3 マシンサイクル以上のパルス幅が必要です。 • 要求レベル設定レジスタ (ELVR) の設定がレベル検出の場合は , 割込み要求となる レベルが入力されると, 図 17.6-1 に示すようにDTP/外部割込み要因レジスタ(EIRR) 内部の要因フリップフロップに "1" がセットされ , 要因を保持し続けますので , 割込 み要因を取下げ後も , 割込みコントローラへの要求は出力されたままとなります。 割込みコントローラへの要求を解除するには , 図 17.6-2 に示すように , 外部割込み 要求フラグビット (EIRR:ER3 ∼ ER0) を "0" に設定し , 要因フリップフロップを "0" にクリアしてください。 図 17.6-1 レベル設定時の要因保持回路のクリア DTP/外部割込み 要因 DTP/外部割込み入力 検出回路 要因フリップフロップ (EIRRレジスタ) 許可ゲート 割込み コントローラへ (割込み要求) クリアしない限り要因を保持し続ける 図 17.6-2 割込み要求出力許可時の DTP/ 外部割込み要因と割込み要求 DTP/外部割込み要因 ("H"レベル検出時) 割込み要因の取下げ 割込みコントローラ への割込み要求 要因フリップフロップのクリアによって無効となる 389 第 17 章 DTP/ 外部割込み回路 ● 割込みに関する注意 外部割込み機能により , 割込み処理ルーチンに分岐した場合 , 外部割込み要求フラグ ビット (EIRR:ER3 ∼ ER0) が "1", 外部割込み要求許可ビット (ENIR:EN3 ∼ EN0) が "1" の状態では , 割込み処理プログラムから復帰できません。必ず割込み処理プログラム内 で , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) を "0" にクリアしてください (DTP 機能を使用した場合は , EI2OS により外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) は "0" にクリアされます ) 。 レベル検出設定を行っている場合は , 外部割込み入力端子 (INT3 ∼ INT0) に割込み要求 のレベル信号が入力されていると , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) に "0" を設定しても , 再度 , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) に "1" がセッ トされ , 割込み処理プログラムから復帰できませんので , 割込み要求を禁止にするか割 込み要求のレベル信号を取り下げてください。 390 第 18 章 I2C インタフェース MB90800 シリーズの I2C インタフェースの機能と 動作について説明します。 18.1 I2C インタフェースの概要 18.2 I2C インタフェースのブロックダイヤグラムと構成図 18.3 I2C インタフェースのレジスタ 18.4 I2C インタフェースの動作 391 第 18 章 I2C インタフェース 18.1 I2C インタフェースの概要 I2C インタフェースは , Inter IC BUS をサポートするシリアル入出力ポートで , I2C バス上のマスタ / スレーブデバイスとして動作します。 ■ I2C インタフェースの特長 MB90800 シリーズでは , I2C インタフェースを 1 チャネル内蔵しています。 以下に , I2C インタフェースの特長を示します。 • マスタ / スレーブ送受信 • アービトレーション機能 • クロック同期化機能 • スレーブアドレス / ゼネラルコールアドレス検出機能 • 転送方向検出機能 • スタートコンディションの繰返し発生および検出機能 • バスエラー検出機能 • 転送レートは , 100 kbps までサポート可能 392 第 18 章 I2C インタフェース 18.2 I2C インタフェースのブロックダイヤグラムと構成図 図 18.2-1 に , I2C インタフェースのブロックダイヤグラムを , 図 18.2-2 に , I2C イン タフェースの構成図を示します。 ■ I2C インタフェースのブロックダイヤグラム 図 18.2-1 I2C インタフェースのブロックダイヤグラム ICCR EN I2Cイネーブル ICCR クロック分周1 5 6 7 8 CS4 クロック選択1 CS3 クロック分周2 2 4 8 16 32 64 128 256 CS2 CS1 内 部 デ | タ バ ス CS0 IBSR BB RSC LRB TRX マシンクロック クロック選択2 Sync シフトクロック発生 シフトクロック エッジ変化タイミング バスビジー リピートスタート ラストビット 送信/受信 FBT スタートストップ コンディション検出 エラー ファーストバイト AL アービトレーションロスト検出 IBCR BER SCL BEIE 割込み要求 INTE IRQ SDA INT IBCR SCC MSS ACK GCAA IBSR AAS GCA 終了 スタート マスタ ACK許可 GC-ACK許可 スタート・ストップ コンディション発生 IDAR スレーブ グローバルコール スレーブアドレス比較 IADR 393 第 18 章 I2C インタフェース ■ I2C インタフェースの構成図 図 18.2-2 インタフェースの構成図 SCL R SDA R N-ch 2 I Cインタフェース N-ch 394 外付け I2Cインタ フェース 第 18 章 I2C インタフェース 18.3 I2C インタフェースのレジスタ I2C インタフェースのレジスタには , 以下の 5 種類があります。 ・I2C ステータスレジスタ (IBSR) ・I2C コントロールレジスタ (IBCR) ・I2C クロックコントロールレジスタ (ICCR) ・I2C アドレスレジスタ (IADR) ・I2C データレジスタ (IDAR) ■ I2C インタフェースのレジスタ 図 18.3-1 I2C インタフェースのレジスタ bit15.................................................bit8 I2C bit7.................................................bit0 コントロールレジスタ (IBCR) I2C アドレスレジスタ (IADR) I2C ステータスレジスタ (IBSR) I2C クロックコントロールレジスタ (ICCR) I2C データレジスタ (IDAR) 395 第 18 章 I2C インタフェース 18.3.1 I2C ステータスレジスタ (IBSR) I2C ステータスレジスタ (IBSR) には , 以下の機能があります。 ・繰返しスタートコンディション検出 ・スレーブアドレッシング検出 ・アービトレーションロスト検出 ・ゼネラルコールアドレス検出 ・アクノリッジ格納 ・データ転送 ・第 1 バイト検出 ■ I2C ステータスレジスタ (IBSR) 図 18.3-2 I2C ステータスレジスタ (IBSR) bit アドレス 00006AH 7 6 5 4 3 2 1 0 初期値 BB RSC AL LRB TRX AAS GCA FBT 00000000B R R R R R R R R FBT 0 第1バイト検出ビット 受信データが第1バイト以外 1 受信データが第1バイト GCA 0 ゼネラルコールアドレス検出ビット スレーブ時に,ゼネラルコールアドレスは受信されていない 1 スレーブ時に,ゼネラルコールアドレスを受信した AAS 0 スレーブアドレッシング検出ビット スレーブ時にアドレッシングされていない 1 スレーブ時にアドレッシングされた TRX 転送状態ビット 0 受信状態 1 送信状態 LRB アクノリッジ格納ビット 0 受信を確認した 1 受信を確認していない AL 0 アービトレーションロスト検出ビット アービトレーションロストを検出していない マスタ送信中にアービトレーションロストが 1 発生した,またはほかのシステムがバスを使用 中であるときにMSSビットに"1"を設定した RSC 繰返しスタートコンディション検出なし 1 繰返しスタートコンディション検出あり BB R 396 :リードオンリ :初期値 繰返しスタートコンディション検出ビット 0 バス状態ビット 0 ストップコンディションを検出 1 スタートコンディションを検出(バス使用時) 第 18 章 I2C インタフェース 表 18.3-1 I2C ステータスレジスタ (IBSR) の各ビットの機能説明 ビット名 機能 bit7 BB: バス状態ビット ・I2C バス状態を示します。 ・ストップコンディションを検出した場合 , "0" が読み出されます。 ・スタートコンディションを検出した場合 , "1" が読み出されます。 bit6 RSC: 繰返しスタート コンディション 検出ビット ・繰返しスタートコンディションを検出します。 ・バス使用中に再びスタートコンディションを検出した場合 , "1" が 読み出されます。 ・INT ビットへ "0" を設定 , スレーブ時にアドレスされなかった場合 , バス停止中のスタートコンディション検出 , またはストップコン ディション検出で "0" にクリアされます。 bit5 AL: アービトレー ションロスト 検出ビット ・アービトレーションロストを検出します。 ・マスタ送信中にアービトレーションロストが発生した , またはほか のシステムがバスを使用中に MSS ビットに "1" を設定した場合 , "1" が読み出されます。 ・INT ビットへ "0" を設定すると "0" にクリアされます。 bit4 LRB: アクノリッジ 格納ビット ・受信側からのアクノリッジを格納します。 "0" : 受信を確認した "1" : 受信が確認されない ・スタートコンディションまたはストップコンディションの検出で クリアされます。 bit3 TRX: 転送状態ビット ・データ転送の送受信を示します。 ・受信状態には , "0" が読み出されます。 ・送信状態には , "1" が読み出されます。 bit2 AAS: スレーブ アドレッシング 検出ビット ・アドレッシングを検出します。 ・スレーブ時にアドレッシングされた場合に , "1" が読み出されます。 ・スタートコンディションまたはストップコンディションの検出で "0" にクリアされます。 bit1 GCA: ゼネラルコール アドレス 検出ビット bit0 FBT: 第 1 バイト 検出ビット ・ゼネラルコールアドレス (00H) を検出します。 ・スレーブ時にゼネラルコールアドレスを受信した場合に "1" が読み 出されます。 ・スタートコンディションまたはストップコンディションの検出で "0" にクリアされます ・第 1 バイトを検出します。 ・受信データが第 1 バイト ( アドレスデータ ) である場合 , "1" が読 み出されます。 ・スタートコンディションの検出で "1" がセットされても , INT ビッ トに "0" を設定 , またはスレーブ時にアドレスされなかった場合 "0" にクリアされます。 397 第 18 章 I2C インタフェース 18.3.2 I2C コントロールレジスタ (IBCR) I2C コントロールレジスタ (IBCR) には , 以下の機能があります。 ・割込み要求 / 割込み許可 ・スタートコンディション発生 ・マスタ / スレーブの設定 ・アクノリッジ発生許可 ■ I2C コントロールレジスタ (IBCR) 図 18.3-3 I2C コントロールレジスタ (IBCR) bit 15 14 13 12 11 アドレス 00006BH BER BEIE SCC MSS ACK GCAA INTE INT R/W R/W R/W R/W R/W R/W R/W INT 10 9 8 R/W 転送終了割込み要求フラグビット 書込み時 0 転送が終了していません 割込み要求をクリア 1 転送終了時,別表条件でセット 動作に影響しません 割込み要求許可ビット 0 割込み要求禁止 1 割込み要求許可 アクノリッジ発生許可ビット GCAA 0 アクノリッジを発生しない 1 アクノリッジを発生する アクノリッジ発生許可ビット ACK 0 アクノリッジを発生しない 1 アクノリッジを発生する マスタ/スレーブ設定ビット MSS 0 ストップコンディションを発生し,転送終了スレーブモードになります 1 マスタモードとなりスタートコンディションを発生しアドレスデータ転送開始 SCC スタートコンディション発生ビット 0 動作に影響しません 1 マスタ転送時に再びスタートコンディションを発生しアドレスデータ転送を再開 バスエラー割込み許可ビット BEIE 0 バスエラー割込み要求禁止 1 バスエラー割込み要求許可 BER 398 00000000B 読出し時 INTE R/W :リード/ライト可能 :初期値 初期値 バスエラー割込み要求フラグビット リード時 ライト時 0 割込み要求なし 割込み要求をクリア 1 割込み要求あり 動作に影響しません 第 18 章 I2C インタフェース 表 18.3-2 I2C コントロールレジスタ (IBCR) の各ビットの機能説明 ビット名 機能 ・バスエラーの割込み要求のフラグビットです。 ・バスエラー割込み要求許可ビット (BEIE) に "1" を設定している場 合に "1" がセットされると , 割込み要求を出力します。 ・"1" が設定された場合 , ICCR レジスタの EN ビットはクリアされ , I2Cインタフェースは停止状態になり, データ転送は中断されます。 ・"0" を設定した場合は , 割込み要求がクリアされます。 ・"1" を設定した場合は , 動作に影響しません。 bit15 BER: バスエラー 割込み要求 フラグビット bit14 BEIE: バスエラー 割込み要求 許可ビット bit13 ・スタートコンディション発生ビットです。 SCC: ・ "1" を設定すると , マスタ転送時に再びスタートコンディションを スタート コンディション 発生し , アドレスデータ転送を開始します。 発生ビット ・読み出した場合は , "0" が読み出されます。 bit12 MSS: マスタ / スレーブ 設定ビット ・マスタ / スレーブの設定を行います。 ・ "0" を設定した場合は , ストップコンディションを発生し転送終了 後スレーブモードとなります。 ・ "1" を設定した場合は , マスタモードとなりスタートコンディショ ンを発生しアドレスデータ転送を開始します。 ・マスタ送信中にアービトレーションロストが発生した場合 , "0" に クリアされ , スレーブモードになります。 bit11 ACK: ・データを受信した場合のアクノリッジ発生許可ビットです。 アクノリッジ ・"1" を設定した場合は , アクノリッジを発生します。 発生許可ビット ・スレーブ時のアドレスデータ受信時には無効となります。 bit10 GCAA: ・ゼネラルコールアドレスを受信した場合のアクノリッジ発生許可 アクノリッジ ビットです。 発生許可ビット ・"1" を設定した場合は , アクノリッジを発生します。 bit9 INTE: 割込み要求 許可ビット bit8 ・転送終了割込み要求フラグビットです。 INT: ・"1" が設定されている場合 , SCL ラインは "L" レベルに保たれます。 転送終了割込み ・ "0" を設定した場合は , 割込み要求がクリアされ , SCL ラインを開 要求フラグ 放し , 次バイトの転送を行います。 ビット ・マスタ時にスタートコンディションまたはストップコンディショ ンの発生により "0" にリセットされます。 ・バスエラー割込み許可ビットです。 ・ "1" が設定されている場合 , バスエラーの割込み要求フラグビット (BER) に "1" がセットされると割込みを発生します。 ・INTE は , 割込み許可ビットです。 ・ "1" を設定した場合に , 転送終了割込み要求フラグビット (INT) に "1" がセットされると割込みを発生します。 399 第 18 章 I2C インタフェース ■ SCC, MSS, INT ビットの競合についての注意 SCC, MSS , INT ビットの同時書込みにより , 次バイト転送 , スタートコンディション発 生 , ストップコンディション発生の競合が起こります。このときの優先度は次のように なります。 1. 次バイト転送とストップコンディション発生 INTビットに"0", MSSビットに"0"を設定すると, MSSビットの"0"設定が優先され, ストップコンディションが発生します。 2. 次バイト転送とスタートコンディション発生 INT ビットに "0", SCC ビットに "1" を設定すると , SCC ビットの "1" 設定が優先され , スタートコンディションが発生します。 3. スタートコンディション発生とストップコンディション発生 SCC ビットに "1", MSS ビットに "0" の同時設定は禁止します。 <注意事項> 下記条件で使用する場合 , スレーブとして受信できませんのでゼネラルコールアドレ スの送信は禁止です。 • 本 LSI のほかにマスタモードとなるほかの LSI がバス上に存在し , 本 LSI がマスタ としてゼネラルコールアドレスを送信し , 第 2 バイト目以降でアービトレーション ロスト が発生する場合 • 図 18.3-4 と図 18.3-5 に示したタイミングで , スタートコンディションを発生させ る命令を実行 (MSS ビットに "1" を設定 ) すると , アービトレーションロスト検出 (AL ビット= 1) による割込み (INT ビット= 1) が発生しません。 • AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 1 スタートコンディション未検出 (BB ビット= 0) 状態で , SDA 端子または SCL 端子 レベルが "L" のときに , スタートコンディションを発生させる命令を実行 (IBCR レ ジスタの MSS ビットに "1" を設定 ) した場合 図 18.3-4 AL ビット= 1 検出による割込みが発生しないタイミング図 SCL 端子または SDA 端子が "L" レベル SCL 端子 "L" SDA 端子 "L" I2C 動作許可状態 (EN ビット= 1) 1 マスタモード設定 (MSS ビット= 1) アービトレーションロスト検出 (AL ビット= 1) バスビジー (BB ビット ) 割込み (INT ビット ) 400 0 0 第 18 章 I2C インタフェース • AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 2 ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット= 1) し てスタートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビット に "1" を設定 ) した場合。 図 18.3-5 に示したとおり , I2C が動作禁止 (EN ビット= 0) の状態で , I2C バス上の ほかのマスタが通信を開始すると , スタートコンディション未検出 (BB ビット= 0) で I2C バスが占有されている状態になるためです。 図 18.3-5 AL ビット= 1 検出による割込みが発生しないタイミング図 スタートコンディション 9 クロック目で INT ビット 割込みが発生しない ストップコンディション ACK ACK SCL 端子 SDA 端子 SLAVE ADDRESS DAT EN ビット MSS ビット AL ビット BB ビット 0 INT ビット 0 上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願 いします。 1) スタートコンディションを発生させる命令を実行 (MSS ビットに "1" を設定 ) 。 2) タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3 ビットデータ送信時間ウェイトする。* 例: I2C 転送周波数 100 kHz の場合 3 ビットデータ送信時間 {1/(100 × 103)} × 3 = 30 μs *:アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 , I2C 転送周 波数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。 3) IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット = 1, BB ビット = 0 の 場合には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。AL ビット と BB ビットがそのほかの状態のときは通常処理を行う。 401 第 18 章 I2C インタフェース 以下にフロー例を示します。 マスタモード設定 バス制御レジスタ (IBCR) の MSS ビットに "1" を設定 クロック制御レジスタ (ICCR) に設定されている I2C 転送周波数での 3 ビットデータ送信時間ウェイト * BB ビット= 0 でかつ AL ビット= 1 NO YES EN ビットを "0" にして I2C の初期化 通常処理へ *:アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 , I2C 転送周 波数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。 • AL ビット= 1 検出による割込み (INT ビット= 1) が発生する例 バスビジー検出 (BB ビット= 1) されている状態で , スタートコンディションを発生 させる命令を実行し (MSS ビットに "1" を設定 ) して , アービトレーションロストし た場合には , AL ビット= 1 検出時に INT ビット割込みが発生します。 図 18.3-6 AL ビット= 1 時に割込みが発生するタイミング図 スタートコンディション 9 クロック目で割込み SCL 端子 SDA 端子 SLAVE ADDRESS ACK DAT EN ビット MSS ビット ソフトでの AL ビットクリア AL ビット BB ビット INT ビット 402 ソフトでの INT ビットクリア で SCL 開放 第 18 章 I2C インタフェース I2C クロックコントロールレジスタ (ICCR) 18.3.3 I2C クロックコントロールレジスタ (ICCR) には , 以下の機能があります。 ・I2C インタフェース動作許可 ・シリアルクロックの周波数の設定 ■ I2C クロックコントロールレジスタ (ICCR) 図 18.3-7 クロックコントロールレジスタ (ICCR) bit アドレス 00006CH 7 6 5 4 3 2 1 0 初期値 - - EN CS4 CS3 CS2 CS1 CS0 --0XXXXXB - - R/W R/W R/W R/W R/W R/W EN I2Cインタフェース動作許可ビット 0 動作禁止 1 動作許可 R/W :リード/ライト可能 X :不定 :初期値 表 18.3-3 I2C クロックコントロールレジスタ (ICCR) の各ビットの機能説明 NO. ビット名 機能 bit7, bit6 −: 未定義ビット ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 bit5 ・I2C インタフェース動作許可ビットです。 EN: ・"0" が設定されている場合 , I2C バスステータスレジスタ (IBSR), 2 I C インタフェース I2C バスコントロールレジスタ (IBCR)(BER, BEIE ビットを除く ) 動作許可ビット の各ビットはクリアされます。 ・BER ビットに "1" がセットされた場合は "0" にクリアされます。 bit4 ∼ bit0 ・シリアルクロックの周波数を設定するビットです。 ・シフトクロックの周波数 fsck は次式のように設定されます。 CS4 ∼ CS0: φsck = m × φn + 4 シリアルクロック φ : マシンクロック 周波数設定ビット ・シリアルクロック周波数設定値については , 表 18.3-5 を参照して ください。 表 18.3-4 シリアルクロック周波数設定 (CS4, CS3) m CS4 CS3 5 0 0 6 0 1 7 1 0 8 1 1 403 第 18 章 I2C インタフェース 表 18.3-5 シリアルクロック周波数設定 (CS2 ∼ CS0) n CS2 CS1 CS0 4 0 0 0 8 0 0 1 16 0 1 0 32 0 1 1 64 1 0 0 128 1 0 1 256 1 1 0 512 1 1 1 例えば , φ = 25 MHz のとき , m=5, n=32 を選択した場合 , シリアルクロック周波数は 152.43 kHz になります。 <注意事項> ・ +4 のサイクルは , SCL 端子の出力レベルが変化したことをチェックしているための最 小のオーバヘッドです。SCL 端子の立上りのディレイが大きい場合やスレーブデバイス でクロックを引き延ばしている場合には , この値より大きくなります。 ・ I2C 動作許可ビット (EN ビットの設定 ) によって , 以下のように I2C 兼用ポート端子の 出力は変化します。 ・ EN ビット =1( 動作許可 ) の場合は , DDR7:bit12, DDR7:bit13 の設定値 ( 入力設定 , 出力 設定 ) にかかわらず SDA/P74, SCL/P75 端子には I2C 出力信号が出力されます。 ・EN ビット =0 ( 動作禁止 ) の場合は , DDR7:bit12=1, DDR7:bit13=1 ( 出力設定 ) の 場合 , SDA/P74, SCL/P75 端子には PDR7 レジスタの P74, P75 の設定値が出力されます。 ・I2C 動作中に I2C 端子と同系列のポートデータレジスタ (PDR7) に対してリードモディ ファイライト (RMW) 系命令を実行すると , リード時に PDR7 の bit12, bit13 には端子レ ベルが読み出されます。よって , P75/SCL, P74/SDA 端子レベルによって , PDR7 の bit12, bit13 値が変化してしまう場合がありますので注意が必要です。 404 第 18 章 I2C インタフェース 図 18.3-8 I2C 兼用ポートの変化タイミング I2C動作許可/禁止 I2C動作許可:EN ビット=1 SCL/P75 I2C動作禁止:EN ビット=0 DDR9:ビット9=0のとき:入力設定のためHi-Z DDR9:ビット9=1のとき:変化したPDRの値を出力 SDA/P74 DDR9:ビット8=0のとき:入力設定のためHi-Z DDR9:ビット8=1のとき:変化したPDRの値を出力 PDRレジスタに対する リードモディファイ ライト(RMW)系命令実行タイミング PDRレジスタ値 リードモディファイライト(RMW)系命令実行 前データ リードモディファイライト(RMW)系命令実行時の端子レベルにより変化 405 第 18 章 I2C インタフェース 18.3.4 I2C アドレスレジスタ (IADR) I2C アドレスレジスタ (IADR) は , スレーブアドレスを指定します。 ■ I2C アドレスレジスタ (IADR) 図 18.3-9 I2C アドレスレジスタ (IADR) bit 15 アドレス − 14 A6 13 A5 12 A4 11 A3 10 A2 9 A1 8 A0 00006DH − R/W R/W R/W R/W R/W R/W R/W 初期値 -XXXXXXXB R/W :リード / ライト可能 X :不定 − :未定義ビット スレーブアドレスを指定するレジスタです。スレーブ時 , アドレスデータ受信後に IADR レジスタとの比較が行われ , 一致している場合はマスタに対してアクノリッジを 送信します。 406 第 18 章 I2C インタフェース 18.3.5 I2C データレジスタ (IDAR) I2C データレジスタ (IDAR) は , シリアル転送に使用されるデータレジスタです。 ■ I2C データレジスタ (IDAR) 図 18.3-10 I2C データレジスタ (IDAR) bit アドレス 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 00006EH R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB R/W :リード / ライト可能 X :不定 シリアル転送に使用されるデータレジスタであり , MSB から転送されます。データ受 信時 (TRX=0) のデータ出力値は "1" になります。 I2C データレジスタの書込み側はダブルバッファになっており , バスが使用中 (BB=1) である場合 , 書込みデータは各バイト転送時にシリアル転送用のレジスタにロードさ れます。読出し時はシリアル転送用のレジスタを直接読み出すため , 受信データは INT ビットがセットされている場合のみ有効です。 407 第 18 章 I2C インタフェース 18.4 I2C インタフェースの動作 I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL) により , 双方向バスラインとして通信を行います。I2C インタフェースでは , SDA と SCL をオープンドレイン入出力端子 (SDA, SCL) として使用できます。これ により , ワイヤード論理を可能にします。また , 入力耐圧は 5 V (Typ) まで可能です。 ■ スタートコンディション バスが開放されている状態 (BB=0, MSS=1) にて , MSS ビットを "1" に設定した場合 , I2C インタフェースはマスタモードとなり , 同時にスタートコンディションを発生しま す。マスタモードでは , バスラインが使用されている状態 (BB=1) である場合でも SCC ビットを "1" に設定することにより , 再びスタートコンディションを発生させることが できます。 スタートコンディションを発生させる条件として , 以下の 2 とおりがあります。 • バスが使用されていない状態 (MSS=0, BB=0, INT=0, AL=0) にて , MSS ビットを "1" に設定した場合 • バスマスタの場合に , 割込み状態 (MSS=1, BB=1, INT=1, AL=0) にて , SCC ビットを "1" に設定した場合 ほかのシステム ( アイドル状態中 ) がバスを使用中に , MSS ビットを "1" に設定した場 合は , AL ビットが "1" にセットされます。上記の条件以外にて MSS ビット , SCC ビッ トを "1" に設定した場合は , 設定値を無視します。 ■ ストップコンディション マスタモード (MSS=1) の場合に , MSS ビットを "0" に設定すると , ストップコンディ ションが発生し , スレーブモードへ遷移します。 ストップコンディションを発生させる条件は , 以下のようになります。 バスマスタにて割込み状態 (MSS=1, BB=1, INT=1, AL=0) となった場合 , MSS ビットを "0" に設定します。 上記以外での MSS ビットに "0" を設定した場合は , 無視されます。 ■ アドレッシング マスタモードでは , スタートコンディション発生後 , BB=1, TRX=1 にセットされ , IDAR レジスタの内容を MSB から出力します。アドレスデータ送信後に , スレーブか らアクノリッジを受信した場合は , 送信データのビット 0( 送信後 :IDAR, ビット 0) を 反転して TRX ビットへ格納します。 スレーブモードでは , スタートコンディション発生後 , BB=1, TRX=0 にセットまたはク リアされ , マスタからの送信データを IDAR レジスタへ受信できます。アドレスデータ を受信した後に , IDAR レジスタと IADR レジスタとの比較が行われます。レジスタ値 が一致している場合は , AAS を "1" にセットし , マスタに対してアクノリッジを送信し ます。その後 , 受信データの bit0( 受信後 :IDAR, bit0) を TRX ビットへ格納します。 408 第 18 章 I2C インタフェース ■ アービトレーション マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ ンが起こります。自分の送信データが "1", SDA ライン上のデータが "L" レベルの場合 , 自分はアービトレーションを失ったとみなし , AL ビットを "1" にセットします。また , バスが使用状態の場合に , スタートコンディションを発生させようとした場合も AL ビットは "1" にセットされます。 AL ビットが "1" にセットされた場合 , MSS=0, TRX=0 となり , スレーブ受信モードと なります。 ■ アクノリッジ アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット によってアクノリッジの有無を設定できます。データ送信時は , 受信側からのアクノ リッジが LRB ビットに格納されます。 スレーブ送信時に , マスタ受信側からアクノリッジを受信しなかった場合 , TRX=0 と なりスレーブ受信モードになります。これにより , マスタはスレーブが SCL ラインを 開放した場合に , ストップコンディションを発生できます。 ■ バスエラー 以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に なります。 • データ転送中 (ACK ビットを含む ) に I2C バス上の基本規定違反を検出した場合 • マスタの場合にストップコンディション検出を検出した場合 • バスがアイドル状態の場合に I2C バス上の基本規定違反を検出した場合 ■ SDA="L", SCL="L" 時におけるスタートコンディション発生命令の実行 SDA="L", SCL="L" 時に , スタートコンディション発生命令を実行 (MSS ビットへの "1" 書込み ) した場合 , BB=0, AL=1 の状態になります。この場合 , 転送が終了していない ため , 転送終了割込み要求フラグ (INT ビット ) は立ちません。よって , 本状態の検出 は , プログラム上で BB ビットと AL ビットを監視して行う必要があります。 409 第 18 章 I2C インタフェース 図 18.4-1 SDA="L", SCL="L" 時におけるスタートコンディション発生命令実行時の各フラグの 変化タイミング SCL "L" "L" SDA スタートコンディション アービトレーション 割込み バスビジー 410 MSSビットへ"1"をセット IBSRのALビット IBCRのINTビット "L" IBSRのBBビット "L" 第 18 章 I2C インタフェース 18.4.1 I2C インタフェースの転送フロー 図 18.4-2 に , マスタからスレーブへの 1 バイト転送フローを , 図 18.4-3 に , スレー ブからマスタへの 1 バイト転送フローを示します。 ■ I2C インタフェースの転送フロー 図 18.4-2 マスタからスレーブへの 1 バイト転送フロー マスタ スレーブ スタート DAR:書込み MSS:"1"書込み スタートコンディション BB set, TRX set BB set, TRX set アドレスデータ転送 AAS set アクノリッジ LBR reset INT set,TRX set DAR:書込み INT:"0"書込み 割 込 み INT set,TRX set ACK:"1"書込み INT:"0"書込み データ転送 アクノリッジ LBR rest INT set 割 込 み MSS:"0"書込み INT reset BB reset,TRX reset ストップコンディション INT set DAR:読出し INT:"0"書込み BB reset,TRX reset AAS reset 終了 411 第 18 章 I2C インタフェース 図 18.4-3 スレーブからマスタへの 1 バイト転送フロー マスタ スレーブ スタート DAR:書込み MSS:"1"書込み スタートコンディション BB set,TRX set BB set,TRX set アドレスデータ転送 AAS reset アクノリッジ LBR reset INT set,TRX reset 割 込 み INT:"0"書込み INT set,TRX set DAR:書込み INT:"0"書込み データ転送 ネガティブアクノリッジ INT set DAR:読出し LBR set,TRX set INT set 割 込 み INT:"0"書込み MSS:"0"書込み INT reset BB reset,TRX reset ストップコンディション 終了 412 BB reset,TRX reset AAS reset 第 18 章 I2C インタフェース 18.4.2 I2C インタフェースのモードフロー 図 18.4-4 に , I2C モードフローを示します。 ■ I2C インタフェースのモードフロー 図 18.4-4 I2C モードフロー スレーブ受信モード STC NO YES TRX,AAS,LRB:reset FBT:set YES STC&BB=1 RSC:set NO BB:set 8ビット受信 アドレス比較 RSC,FBT:reset 一致 AAS:set 確認応答出力 INT:set SCLライン "L"へ保持 NO TRX=1 スレーブ受信モード YES YES SPC AAS,LRB,BB,RSC: reset スレーブ送信モード NO INT:"0" write FBT:reset SCLライン開放 送信/受信 YES 確認応答あり NO TRX:reset 413 第 18 章 I2C インタフェース I2C インタフェースの動作フロー 18.4.3 図 18.4-5 に , I2C マスタ送受信プログラムフローチャート ( 割込み使用 ) を示しま す。また , 図 18.4-6 に I2C スレーブプログラムフローチャート ( 割込み使用 ) を示 します。 ■ I2C インタフェースの動作フロー 図 18.4-5 I2C マスタ送受信プログラムフローチャート ( 割込み使用 ) メインルーチン 割込みルーチン 開始 開始 スレーブアドレス を設定 バスエラー は生じたか? I2Cの動作許可 ALは 発生したか? YES NO スレーブアドレスセット 送信 (データ方向ビット=0) 1回のデータ書込みで 送信するバイト数のセット マスタか? スレーブアドレスセット 受信 (データ方向ビット=1) ACKは 返ってきたか? YES BBビット=1? NO 一定時間 WAIT 一定時間 WAIT LOOP I2C動作禁止 I2Cの初期設定 ③ RETI アクノリッジ発生許可 NO ③ NO スレーブプログラム の割込みルーチン へ ① BBビット=0で かつALビット=1? NO LOOP NO データ方向ビット TRXビット=1? スレーブアドレス送信 スタートコンディション発生 NO ③ YES BBビット=1? NO YES YES YES スレーブアドレス送信 スタートコンディション発生 BBビット=0で かつALビット=1? RETI I2Cの動作許可 NO マスタ受信 1回のデータ書込みで 送信するバイト数のセット YES ② ② バスエラー割込み 要因クリア NO マスタ受信動作? マスタ送信 YES ① STOPコンディション発生 I2C動作禁止 YES YES 送信バイト数デクリメント ① YES 残り受信 バイト数=1? NO アクノリッジ発生許可 アクノリッジ発生許可 送信データのセット 終了割込み要因クリア RETI 第1バイト の受信か? YES NO 受信バイト数デクリメント 受信データをRAMへ格納 終了割込み要因クリア RETI 414 ① NO YES 残り送信 バイト数=0? NO YES 残り受信 バイト数=0? 第 18 章 I2C インタフェース 図 18.4-6 I2C スレーブプログラムフローチャート ( 割込み使用 ) 割込みルーチン メインルーチン 開始 開始 スレーブアドレス を設定 I2Cの動作許可 スレーブモードに設定 バスエラー は生じたか? YES ② NO アドレッシング されているか? LOOP ① ② 転送終了割込み 要因クリア バスエラー割込み 要因クリア RETI I2Cの動作許可 I2Cの初期設定 NO ① RETI YES データ方向ビット TRXビット=1? NO 受信データは アドレスか? NO 受信データを RAMへ格納 NO YES ACKは 返ってきたか? YES 送信データセット 転送終了割込み 要因クリア YES ① 転送終了割込み 要因クリア RETI RETI 415 第 18 章 I2C インタフェース 416 第 19 章 8/10 ビット A/D コンバータ MB90800 シリーズの 8/10 ビット A/D コンバータ の機能と動作について説明します。 19.1 8/10 ビット A/D コンバータの概要 19.2 8/10 ビット A/D コンバータの構成 19.3 8/10 ビット A/D コンバータの端子 19.4 8/10 ビット A/D コンバータのレジスタ 19.5 8/10 ビット A/D コンバータの割込み 19.6 8/10 ビット A/D コンバータの動作説明 417 第 19 章 8/10 ビット A/D コンバータ 19.1 8/10 ビット A/D コンバータの概要 8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10 ビットもしくは 8 ビットの値に変換する機能があります。 ■ 8/10 ビット A/D コンバータの機能 以下に 8/10 ビット A/D コンバータの機能について示します。 • 変換時間は , 最小 3.1 μs( サンプリング時間を含む ) です。 • サンプリング時間は , 最小 2.0 μs です。 • 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。 • 10 ビット , または 8 ビットの分解能が設定できます。 • 入力信号は , 12 チャネルのアナログ入力端子からプログラムで設定可能です。 • A/D 変換が終了した場合に割込み要求を出力し , EI2OS を起動できます。 • 割込み許可に設定した状態にて A/D 変換を実行した場合 , 変換データ保護機能が働 きます。 • 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 出力 ( 立上りエッジ ) から設定できます。 変換モードは , 表 19.1-1 に示すように 4 種類あります。 表 19.1-1 8/10 ビット A/D コンバータの変換モード 変換モード シングル変換動作 スキャン変換動作 単発変換モード 1 単発変換モード 2 設定したチャネル (1 チャネル ) を 1 回変換後 , 終了 連続した複数のチャネル ( 最大 12 チャネル まで設定可能 ) を 1 回変換後 , 終了 連続変換モード 設定したチャネル (1 チャネル ) を繰り返し変換 連続した複数のチャネル ( 最大 12 チャネル まで設定可能 ) を繰り返し変換 停止変換モード 設定したチャネル (1 チャネル ) を 1 回変換実行後 , 一時停止し , 次の起動がかかるまで待機 連続した複数のチャネル ( 最大 12 チャネル まで設定可能 ) を 1 回変換実行後 , 一時停止 し , 次の起動がかかるまで待機 ■ 8/10 ビット A/D コンバータの割込みと EI2OS 表 19.1-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルアドレス EI2OS 割込み番号 #37(25H) ○:使用可能 418 レジスタ名 アドレス 下位 上位 バンク ICR13 0000BDH FFFF68H FFFF69H FFFF6AH ○ 第 19 章 8/10 ビット A/D コンバータ 19.2 8/10 ビット A/D コンバータの構成 8/10 ビット A/D コンバータは , 以下のブロックで構成されています。 ・A/D 制御ステータスレジスタ 0/1(ADCS0/ADCS1) ・A/D データレジスタ (ADCR0/ADCR1) ・クロックセレクタ (A/D 変換起動用入力クロックセレクタ ) ・デコーダ ・アナログチャネルセレクタ ・サンプルホールド回路 ・D/A コンバータ ・コンパレータ ・コントロール回路 ■ 8/10 ビット A/D コンバータのブロックダイヤグラム 図 19.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム 割込み要求信号#37(25H)* A/D制御ステータス レジスタ0/1 A/D変換チャネル BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0 レジスタ (ADCS0/ADCS1/ 8 ADMR) 16ビットリロードタイマ1出力 2 クロックセレクタ サンプル ホールド回路 P73/AN11 ~ P60/AN0 アナログ チャネル セレクタ A/Dデータレジスタ S10 ST1 ST0 CT1 CT0 - (ADCR0/ADCR1) AVR AVcc AVss D9 D8 デコーダ コンパレータ コントロール回路 2 D/Aコンバータ D7 D6 D5 D4 2 D3 D2 D1 D0 :マシンクロック *:割込み信号 419 第 19 章 8/10 ビット A/D コンバータ ● A/D 制御ステータスレジスタ 0/1(ADCS0/ADCS1) A/D 制御ステータスレジスタ 0(ADCS0) は , A/D 変換モードの設定と A/D 変換開始 / 終 了チャネルの設定を行う機能があります。 A/D 制御ステータスレジスタ 1(ADCS1) は , A/D 変換起動要因の設定 , 割込み要求の許 可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う機能 があります。 ● A/D データレジスタ (ADCR0/ADCR1) A/D 変換結果を格納するレジスタですが , A/D 変換の分解能の設定 , A/D 変換時のサン プリング時間の設定 , および A/D 変換時のコンペア時間の設定を行う機能もあります。 ● クロックセレクタ A/D 変換起動クロックを設定するセレクタです。起動クロックには , 16 ビットリロー ドタイマ 1 出力が設定できます。 ● デコーダ A/D 制御ステータスレジスタ (ADCS0) の A/D 変換終了チャネル設定ビット (ANE0 ∼ ANE3), A/D 変換開始チャネル設定ビット (ANS0 ∼ ANS3) の設定値から使用するアナ ログ入力端子を設定する回路です。 ● アナログチャネルセレクタ 12 チャネルのアナログ入力端子の中から使用する端子を設定する回路です。 ● サンプルホールド回路 アナログチャネルセレクタで設定された端子からの入力電圧を保持する回路です。 A/D 変換を起動した直後の入力電圧を保持することで , A/D 変換中 ( 比較中 ) は , A/D 変換における入力電圧変動の影響を受けません。 ● D/A コンバータ 保持された入力電圧と比較するための基準電圧を発生します。 ● コンパレータ 保持された入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定します。 ● コントロール回路 コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了した場合 , 変換結果を A/D データレジスタ (ADCR0/ADCR1) に格納し , 割込み要求を出力します。 420 第 19 章 8/10 ビット A/D コンバータ 19.3 8/10 ビット A/D コンバータの端子 8/10 ビット A/D コンバータの端子および端子部のブロックダイヤグラムを示します。 ■ 8/10 ビット A/D コンバータの端子 A/D コンバータの端子は , 入出力ポートと兼用になっています。 表 19.3-1 8/10 ビット A/D コンバータの端子 機能 端子名 チャネル 0 P60/AN0 チャネル 1 P61/AN1 チャネル 2 P62/AN2 チャネル 3 P63/AN3 チャネル 4 P64/AN4 チャネル 5 P65/AN5/ INT0 チャネル 6 P66/AN6/ INT1 チャネル 7 P67/AN7/ INT2 チャネル 8 P70/AN8/ INT3 端子機能 入出力形式 ポート 6 入出力 / アナログ 入力 CMOS 出力 / CMOS ヒステ リシス入力 または アナログ入力 ポート 7 入出力 / P72/AN10/ アナログ チャネル 10 入力 SO1 CMOS 出力 / CMOS ヒステ リシス入力 または アナログ入力 チャネル 9 チャネル 11 P71/AN9/ SC1 P73/AN11/ SI2 プルアップ 設定 なし なし スタンバイ 制御 端子の使用に 必要な設定 なし ポート 6 を入力 設定 (DDR6:bit0 ∼ bit7=0) アナログ入力に 設定 (ADER0: bit0 ∼ bit7=1) なし ポート 7 を入力 設定 (DDR7:bit0 ∼ bit3=0) アナログ入力に 設定 (ADER1: bit0 ∼ bit3=1) 421 第 19 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム 図 19.3-1 P60/AN0 ∼ P73/AN11 端子のブロックダイヤグラム A/Dコンバータ アナログ入力信号 ADER PDR読出し PDR 入出力 判定回路 PDR書込み DDR 入力バッファ 出力バッファ ポート 端子 スタンバイ制御(LPMCR:SPL=1) スタンバイ制御:ストップモード,およびLPMCR:SPL=1 <注意事項> ・ 入力ポートとして使用する端子は, ポート方向レジスタ(DDR6, DDR7)の対応するビッ ト (bit7 ∼ bit0) に "0" を設定し , アナログ入力許可レジスタ (ADER0, ADER1) の対応 するビット (bit11 ∼ bit0) に "0" を設定してください。 ・ アナログ入力端子として使用する端子は,アナログ入力許可レジスタ(ADER0, ADER1) の対応するビット (bit11 ∼ bit0) に "1" を設定してください。ポートデータレジスタ (PDR6, PDR7) の読出し値はそれぞれ "00H" になります。 422 第 19 章 8/10 ビット A/D コンバータ 19.4 8/10 ビット A/D コンバータのレジスタ 8/10 ビット A/D コンバータのレジスタ一覧を示します。 ■ 8/10 ビット A/D コンバータのレジスタ一覧 図 19.4-1 8/10 ビット A/D コンバータのレジスタ一覧 bit15...................................................................bit8 bit7...................................................................bit0 A/D 制御ステータスレジスタ 1(ADCS1) A/D 制御ステータスレジスタ 0(ADCS0) A/D データレジスタ (ADCR1) A/D データレジスタ (ADCR0) A/D 変換チャネル設定レジスタ (ADMR) 423 第 19 章 8/10 ビット A/D コンバータ 19.4.1 A/D 制御ステータスレジスタ 1(ADCS1) A/D 制御ステータスレジスタ (ADCS1) は , A/D 変換起動要因の設定 , 割込み要求の 許可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う 機能があります。 ■ A/D 制御ステータスレジスタ 1(ADCS1) 図 19.4-2 A/D 制御ステータスレジスタ 1(ADCS1) bit アドレス 000035H 15 14 13 12 11 10 BUSY INT INTE PAUS STS1 STS0 R/W R/W R/W R/W R/W R/W 9 8 初期値 STRT 予約 00000000B W R/W 予約 予約ビット 必ず"0"を設定してください。 STRT A/D変換起動ビット (ソフトウェア起動時(ADC2:EXT=0)のみ有効) 0 A/D変換機能を起動しない 1 A/D変換機能を起動する A/D起動要因設定ビット STS1 STS0 0 0 0 1 1 0 1 1 ソフトウェア起動 16ビットリロードタイマ1の起動 またはソフトウェア起動 一時停止フラグビット (EI2OS使用時のみ有効) PAUS 0 A/D変換動作中 1 A/D変換動作が一時停止中 INTE 割込み要求許可ビット 0 割込み要求出力の禁止 1 割込み要求出力の許可 INT 424 リード時 ライト時 0 A/D変換未終了 割込み要求をクリア 1 A/D変換終了 動作に影響しません BUSY R/W :リード/ライト可能 W :ライトオンリ :初期値 割込み要求フラグビット 変換中ビット リード時 ライト時 0 A/D変換停止中 A/D変換強制停止 1 A/D変換動作中 動作に影響しません 第 19 章 8/10 ビット A/D コンバータ 表 19.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明 ビット名 機能 bit15 ・ A/D コンバータの動作表示ビットです。 ・ "0" がセットされている場合は , A/D 変換停止中であることを示します。 ・ "1" がセットされている場合は , A/D 変換動作中であることを示します。 BUSY: ・ "0" を設定した場合は , A/D 変換動作を強制停止します。 変換中ビット ・ "1" を設定した場合は , 動作に影響しません。 ( 注意事項 )A/D 変換動作の強制停止と起動 (BUSY= 0, STRT= 1) は , 同時に 設定しないでください。 bit14 ・ 割込み要求のフラグビットです。 ・ A/D 変換結果が A/D データレジスタ (ADCR0/ADCR1) に格納されると , "1" が セットされます。 ・ 割込み要求許可ビット (INTE) に "1" を設定している場合に "1" がセット INT: されると , 割込み要求を出力します。 割込み要求 フラグビット ・ "0" を設定した場合は , 割込み要求がクリアされます。 ・ "1" を設定した場合は , 動作に影響しません。 ・ EI2OS を使用すると , "0" にクリアされます。 (注意事項 ) 割込み要求をクリアする場合は , A/D変換を停止してください。 bit13 INTE: 割込み要求 許可ビット bit12 ・ A/D 変換動作が一時停止した場合に , "1" がセットされます。 ・ 連続変換モードで EI2OS を使用した場合 , A/D 変換が終了しても前デー タのメモリへの転送が完了していないと "1" がセットされ , A/D 変換動 PAUS: 作を一時停止し , 変換データを A/D データレジスタ (ADCR0/ADCR1) に 一時停止 格納しません。 フラグビット ・ 前データのメモリへのデータ転送が完了した場合 , "0" にクリアされ , A/D 変換動作を再開します。 ( 注意事項 )EI2OS を使用した場合に有効です。 bit11, bit10 ・ A/D 変換の起動要因の設定を行うビットです。 ・ 起動要因が兼用になっている場合は , 最初に発生した起動要因で起動し STS1, STS0: ます。 A/D 起動要因 ( 注意事項 ) 起動要因は設定と同時に変更されますので , A/D 変換動作中に 設定ビット 設定する場合は, 目的とする起動要因がない状態で切り換えて ください。 bit9 ・ A/D 変換動作を起動するビットです。 STRT: ・ "1" を設定した場合は , A/D 変換が起動します。 A/D 変換起動 ・ 停止変換モード時は , STRT ビットによる再起動はかかりません。 ビット ( 注意事項 )A/D 変換動作の強制停止と起動 (BUSY= 0, STRT= 1) は同時に 行わないでください。 bit8 予約: 予約ビット ・ 割込み要求を許可するビットです。 ・ "1" を設定した場合は , 割込み要求フラグビット (INT) に "1" がセットさ れると割込み要求を出力します。 ・ EI2OS を使用する場合は , "1" を設定してください。 必ず "0" を設定してください。 425 第 19 章 8/10 ビット A/D コンバータ 19.4.2 A/D 制御ステータスレジスタ 0(ADCS0) A/D 制御ステータスレジスタ 0 (ADCS0) は , A/D 変換モードの設定と A/D 変換開始 / 終了チャネルの設定を行う機能があります。 ■ A/D 制御ステータスレジスタ 0(ADCS0) 図 19.4-3 A/D 制御ステータスレジスタ 0(ADCS0) bit アドレス 000034H 7 6 5 4 3 2 1 0 初期値 MD1 MD0 - - - - - - 00------B R/W R/W - - - - - - MD1 MD0 R/W :リード/ライト可能 - :未定義ビット :初期値 426 A/D変換モード設定ビット 0 0 単発変換モード1(動作中の再起動可能) 0 1 単発変換モード2(動作中の再起動不可) 1 0 連続変換モード (動作中の再起動不可) 1 1 停止変換モード (動作中の再起動不可) 第 19 章 8/10 ビット A/D コンバータ 表 19.4-2 A/D 制御ステータスレジスタ 0(ADCS0) の各ビットの機能説明 ビット名 bit7, bit6 MD1, MD0: A/D 変換モード 設定ビット 機能 ・A/D 変換モードを設定するビットです。 ・単発変換モード 1, 単発変換モード 2, 連続変換モード , 停止変換 モード が設定できます。 ・単発変換モード 1:A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したチャネルから A/D 変換終了 チャネル設定ビット (ANE3 ∼ ANE0) で設定 したチャネルまで A/D 変換後 , 終了します。 動 作中の再起動ができます。 ・単発変換モード 2:A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したチャネルから A/D 変換終了 チャネル設定ビット (ANE3 ∼ ANE0) で設定 したチャネルまで A/D 変換後 , 終了します。 動 作中の再起動はできません。 ・連続変換モード : A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したチャネルから A/D 変換終了 チャネル設定ビット (ANE3 ∼ ANE0) で設定し たチャネルまでの A/D 変換を変換中ビット (BUSY) で強制停止するまで繰り返します。動 作中の再起動はできません。 ・停止変換モード : A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したチャネルから A/D 変換終了 チャネル設定ビット (ANE3 ∼ ANE0) で設定し たチャネルまでの A/D 変換を 1 チャネルごと に一時停止しながら , 変換中ビット (BUSY) で 強制停止するまで繰り返します。動作中の再 起動はできません。一時停止中の再起動は , A/ D 起動要因設定ビット (STS1, STS0) で設定し た起動要因の発生によって異なります。 ( 注意事項 ) 単発 , 連続 , 停止の各変換モードの再起動不可は 16 ビッ トフリーランタイマ 0 検出 , 16 ビットリロードタイマ 1, ソフトウェアすべての起動に適用されます。 427 第 19 章 8/10 ビット A/D コンバータ A/D データレジスタ (ADCR0/ADCR1) 19.4.3 A/D データレジスタ (ADCR0/ADCR1) は , A/D 変換結果を格納するレジスタですが , A/D 変換の分解能を設定 , A/D 変換時のサンプリング時間の設定 , および A/D 変換時 のコンペア時間設定を行う機能もあります。 ■ A/D データレジスタ (ADCR0/ADCR1) 図 19.4-4 A/D データレジスタ (ADCR0/ADCR1) bit アドレス 000037H 000036H 15 14 13 12 11 10 S10 ST1 ST0 CT1 CT0 - W W W W W 9 8 7 6 5 4 3 2 1 0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 R R R R R R R R R R D9~D0 初期値 00101-XXB(上位) XXXXXXXXB(下位) A/Dデータビット 変換データを格納 CT1 CT0 0 0 44マシンサイクル(1.76μs@25MHz) 0 1 66マシンサイクル(2.64μs@25MHz) 1 0 1 1 88マシンサイクル(3.52μs@25MHz) 176マシンサイクル(7.04μs@25MHz) ST1 ST0 428 サンプリング時間設定ビット 0 0 20マシンサイクル(0.8μs@25MHz) 0 1 32マシンサイクル(1.28μs@25MHz) 1 0 48マシンサイクル(1.92μs@25MHz) 1 1 128マシンサイクル(5.12μs@25MHz) S10 R :リードオンリ W :ライトオンリ - :未定義ビット :初期値 :マシンクロック周波数 コンペア時間設定ビット A/D変換分解能設定ビット 0 10ビット分解能モード(D9~D0) 1 8ビット分解能モード(D7~D0) 第 19 章 8/10 ビット A/D コンバータ 表 19.4-3 A/D データレジスタ (ADCR0/ADCR1) の各ビットの機能説明 ビット名 bit15 bit14, bit13 S10: A/D 変換分解能 設定ビット 機能 ・A/D 変換の分解能を設定するビットです。 ・"0" を設定した場合は , 10 ビット分解能が設定されます。 ・"1" を設定した場合は , 8 ビット分解能が設定されます。 ( 注意事項 ) ・分解能によって使用される A/D データビットが異なります。 ・10 ビット分解能モードでは , D9 ∼ D0 ビットが使用されます。 ・8 ビット分解能モードでは , D7 ∼ D0 ビットが使用されます。 ・A/D 変換のサンプリング時間を設定するビットです。 ・A/D 変換が起動されると , サンプリング時間設定ビット (ST1, ST0) で設定した時間 , アナログ入力が取り込まれます。 ST1, ST0: ( 注意事項 ) サンプリング時間 ・"00B" を設定する場合は , マシンクロック周波数を 8MHz 以下とし 設定ビット てください。 ・マシンクロック周波数 16 MHz 以上の場合に "00B" を設定すると , 正常なアナログ変換値が得られない場合があります。 bit12, bit11 ・A/D 変換時のコンペア時間を設定するビットです。 ・アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , コンペア 時間設定ビット (CT1, CT0) で設定した時間後に , A/D 変換結果が確 定し , 10 ビット分解能モードでは A/D データビット (D9 ∼ D0) に格 納され , 8 ビット分解能モードでは A/D データビット (D7 ∼ D0) に格 CT1, CT0: コンペア時間設定 納されます。 ( 注意事項 ) ビット ・"00B" を設定する場合は , マシンクロック周波数を 8 MHz 以下として ください。 ・マシンクロック周波数 16 MHz 以上の場合に "00B" を設定すると , 正 常なアナログ変換値が得られない場合があります。 bit10 −: 未定義ビット ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 bit9 ∼ bit0 ・A/D 変換結果が格納されるビットです。1 回の A/D 変換終了ごとに 書き換えられます。 ・通常は , 最終変換値が格納されます。 ・初期値は不定です。 D9 ∼ D0: A/D データビット ( 注意事項 ) ・A/D 変換データ保護機能があります ( 詳細は , 「19.6 8/10 ビット A/ D コンバータの動作説明」を参照 )。 ・A/D変換中に, A/Dデータビットにデータを書き込まないでください。 <注意事項> ・A/D 変換分解能設定ビット (S10) を書き換える場合は , 必ず A/D 変換動作前に A/D 変換 動作を停止させてから書き換えてください。A/D 変換動作開始後に書き換えた場合は , A/D データレジスタ (ADCR0/ADCR1) の内容は不定となります。 ・A/D データレジスタ (ADCR0/ADCR1) を読み出す場合に , 10 ビット分解能モードを設定 した場合は , 必ずワード転送命令 (MOVW A, 002EH など ) を使用してください。 429 第 19 章 8/10 ビット A/D コンバータ 19.4.4 A/D 変換チャネル設定レジスタ (ADMR) A/D 変換チャネル設定レジスタ (ADMR) は , A/D 変換チャネルの設定をする機能が あります。 ■ A/D 変換チャネル設定レジスタ (ADMR) 図 19.4-5 A/D 変換チャネル設定レジスタ (ADMR) bit 15 14 13 12 11 10 9 8 初期値 0000000B アドレス ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0 000039H R/W R/W R/W R/W R/W R/W R/W R/W ANE3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 R/W :リード/ライト可能 :初期値 430 ANE2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 ANE1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 ANE0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ANS3 ANS2 ANS1 ANS0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 A/D変換終了チャネル設定ビット AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 AN10 AN11 設定禁止 A/D変換開始チャネル設定ビット 停止変換モード 変換中の 停止中 で一時停止中の 読出し 読出し AN0 AN1 AN2 AN3 AN4 変換中の 直前に変換した AN5 チャネル チャネル番号 番号 AN6 AN7 AN8 AN9 AN10 AN11 設定禁止 第 19 章 8/10 ビット A/D コンバータ 表 19.4-4 A/D 変換チャネル設定レジスタ (ADMR) の各ビットの機能説明 ビット名 bit7 ∼ bit4 bit3 ∼ bit0 機能 ANS3, ANS2, ANS1, ANS0: A/D 変換開始 チャネル設定 ビット ・A/D 変換の開始チャネルの設定および変換中チャネル番号の確認 を行うビットです。 ・A/D 変換を起動した場合は , A/D 変換開始チャネル設定ビット (ANS3∼ANS0)で設定されたチャネルからA/D変換を開始します。 ・A/D 変換中は , 変換中のチャネル番号が読み出されます。停止変 換モードでの一時停止中は , 直前に変換したチャネルの番号が読 み出されます。 ANE3, ANE2, ANE1, ANE0: A/D 変換終了 チャネル設定 ビット ・A/D 変換の終了チャネルの設定を行うビットです。 ・A/D 変換を起動した場合は , A/D 変換終了チャネル設定ビット (ANE3 ∼ ANE0) で設定されたチャネルまで A/D 変換を行います。 ・A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したチャ ネルと同じチャネルを設定した場合は , 設定したチャネルが A/D 変換されます。 ・連続変換モードまたは停止変換モードを設定した場合は , A/D 変 換終了チャネル設定ビット (ANE3 ∼ ANE0) で設定したチャネル までの A/D 変換が終了すると , A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定した開始チャネルに戻り , A/D 変換を繰り 返します。 ・開始チャネルの設定値は , 終了チャネルの設定値より大きい値に 設定しないでください。 ( 注意事項 ) A/D 変換開始チャネル選択ビット (ANS3, ANS2, ANS1, ANS0) に開 始チャネルを設定した後は , A/D 変換モード設定ビット (MD1, MD0) および A/D 変換終了チャネル選択ビット (ANE3, ANE2, ANE1, ANE0) をリードモディファイライト系命令で設定しないで ください。 ANS3, ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまで 前回の変換チャネルが読み出されるため , ANS3, ANS2, ANS1, ANS0 ビットに開始チャネルを設定した後に , MD1, MD0 ビットお よび ANE3, ANE2, ANE1, ANE0 ビットをリードモディファイライ ト系命令で設定した場合, ANE3, ANE2, ANE1, ANE0ビットの値が 書き換わる可能性があります。 <注意事項> ・開始チャネル , 終了チャネルは "1100B" ∼ "1111B" の値には設定しないでください。 ・開始チャネルの設定値は , 終了チャネルの設定値より大きい値に設定しないでください。 431 第 19 章 8/10 ビット A/D コンバータ 19.5 8/10 ビット A/D コンバータの割込み 8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ れた場合 , CPU へ割込み要求を出力します。拡張インテリジェント I/O サービス (EI2OS) にも対応しています。 ■ 8/10 ビット A/D コンバータの割込み 表 19.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因 8/10 ビット A/D コンバータ 割込み要求フラグビット ADCS1:INT=1 割込み要求許可ビット ADCS1:INTE=1 割込み要因 A/D 変換結果の A/D データレジスタへ格納 A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR0/ADCR1) に格 納された場合 , A/D 制御ステータスレジスタ (ADCS1) の割込み要求フラグビット (INT) が "1" にセットされ , 割込み要求許可ビット (INTE) が "1" にあらかじめ設定されてい ると , CPU へ割込み要求を出力します。 ■ 8/10 ビット A/D コンバータの割込みと EI2OS 表 19.5-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルアドレス EI2OS 割込み番号 #37(25H) レジスタ名 アドレス 下位 上位 バンク ICR13 0000BDH FFFF68H FFFF69H FFFF6AH ○ ○:使用可能 ■ 8/10 ビット A/D コンバータの EI2OS 機能 10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリに転送でき ます。EI2OS 機能を使用する場合は , 変換データ保護機能が働き , A/D データレジスタ の値がメモリへ転送され , A/D 制御ステータスレジスタ 1(ADCS1) の割込み要求フラグ ビット (INT) が "0" にクリアされるまで , A/D 変換を一時停止しますので , データの欠 落を防止できます。 432 第 19 章 8/10 ビット A/D コンバータ 19.6 8/10 ビット A/D コンバータの動作説明 8/10 ビット A/D コンバータには , 単発変換モード 1, 単発変換モード 2, 連続変換 モード , 停止変換モードの 4 種類のモードがあります。各モードの動作説明をしま す。 ■ 単発変換モードの動作 単発変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し ていき , ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換は停止し ます。開始チャネルと終了チャネルが同じ (ANS=ANE) ときは ANS ビットで指定した 1 チャネルだけの変換となります。単発変換モードで動作させるには , 図 19.6-1 の設定 が必要です。 図 19.6-1 単発変換モードでの設定 bit 15 14 13 12 11 10 ADCS0/ BUSY INT INTE PAUS STS1 STS0 ADCS1 ◇ ◇ ◇ ◇ ◇ ◇ ADCR0/ ADCR1 ADMR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ 9 STRT ◇ 8 7 6 予約 MD1 MD0 0 ◇ 5 4 3 2 1 0 − − − − − − ◇ − 変換データを保管 ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ :使用ビット 0 :"0" に設定 単発変換モードでの変換順序の例を以下に示します。 ANS=000B, ANE=011B の場合 :AN0 → AN1 → AN2 → AN3 →終了 ANS=110B, ANE=010B の場合 :AN6 → AN7 → AN0 → AN1 → AN2 →終了 ANS=011B, ANE=011B の場合 :AN3 →終了 ■ 連続変換モードの動作 連続変換モードは , A/D 制御ステータスレジスタ 0(ADCS0) の A/D 変換開始チャネル 設定ビット (ANS3 ∼ ANS0) で設定した開始チャネルから A/D 変換終了チャネル設定 ビット (ANE3 ∼ ANE0) で設定した終了チャネルまでのアナログ入力を A/D 変換後 , A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したアナログ入力に戻り , A/D 変 換を繰り返します。 開始チャネルと終了チャネルが同じ場合は, A/D変換開始チャネル設定ビット(ANS3∼ ANS0) で設定したチャネルの A/D 変換を繰り返します。 A/D 制御ステータスレジスタ 1(ADCS1) の変換中ビット (BUSY) に "0" を設定するまで , A/D 変換は停止しません。また , 動作中の再起動はできません。連続変換モードで動作 させるには , 図 19.6-2 に示す設定が必要です。 433 第 19 章 8/10 ビット A/D コンバータ 図 19.6-2 連続変換モードでの設定 bit 15 14 13 12 11 10 ADCS0/ BUSY INT INTE PAUS STS1 STS0 ADCS1 ◇ ◇ ◇ ◇ ◇ ◇ ADCR0/ ADCR1 ADMR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ STRT ◇ 8 7 6 予約 MD1 MD0 0 − 1 5 4 3 2 1 0 − − − − − − 0 変換データを保管 ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0 ◇ ◇ ◆ 1 0 9 ◆ ◆ ◆ ◆ ◆ ◆ ◆ :使用ビット :使用する端子に対応するビットを "1" に設定 :"1" に設定 :"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 →繰返し ■ 停止変換モードの動作 停止変換モードは , A/D 制御ステータスレジスタ 0(ADCS0) の A/D 変換開始チャネル 設定ビット (ANS3 ∼ ANS0) で設定した開始チャネルから A/D 変換終了チャネル設定 ビット (ANE3 ∼ ANE0) で設定した終了チャネルまでのアナログ入力を 1 チャネルご とに一時停止しながら A/D 変換後 , A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したアナログ入力に戻り , A/D 変換と一時停止の動作を繰り返します。 開始チャネルと終了チャネルが同じ場合は, A/D変換開始チャネル設定ビット(ANS3∼ ANS0) で設定したチャネルの A/D 変換を繰り返します。 一時停止を設定した場合の A/D 変換の再起動は , A/D 制御ステータスレジスタ 1(ADCS1) の A/D 起動要因設定ビット (STS1, STS0) で設定された起動要因によって異 なります。 A/D 制御ステータスレジスタ 1(ADCS1) の変換中ビット (BUSY) に "0" を設定するまで , A/D 変換は停止しません。また , 動作中の再起動はできません。停止変換モードで動作 させるには , 図 19.6-3 に示す設定が必要です。 434 第 19 章 8/10 ビット A/D コンバータ 図 19.6-3 停止変換モードでの設定 bit 15 14 13 12 11 10 ADCS0/ BUSY INT INTE PAUS STS1 STS0 ADCS1 ◇ ◇ ◇ ◇ ◇ ◇ ADCR0/ ADCR1 ADMR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ STRT ◇ 8 7 6 予約 MD1 MD0 0 − 1 5 4 3 2 1 0 − − − − − − 1 変換データを保管 ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0 ◇ ◇ ◆ 1 0 9 ◆ ◆ ◆ ◆ ◆ ◆ ◆ :使用ビット :使用する端子に対応するビットを "1" に設定 :"1" に設定 :"0" に設定 停止変換モードでの変換順序の例を以下に示します。 ANS=000B, ANE=011B の場合 :AN0 → 一時停止→ AN1 →一時停止→ AN2 → 一時停止→ AN3 →一時停止→ AN0 →繰返し ANS=110B, ANE=001B の場合 :AN6 → 一時停止→ AN7 →一時停止→ AN0 → 一時停止→ AN1 →一時停止→ AN6 →繰返し ANS=011B, ANE=011B の場合 :AN3 → 一時停止→ AN3 →一時停止→繰返し 435 第 19 章 8/10 ビット A/D コンバータ 19.6.1 EI2OS を使用した変換動作 8/10 ビット A/D コンバータは , EI2OS を使用して , A/D 変換結果をメモリに転送で きます。 ■ EI2OS を使用した変換動作 図 19.6-4 EI2OS 使用時の動作フローチャート例 A/D変換起動 サンプルホールド EI2OS起動 変換 データ転送 変換終了 指定回数終了か* YES 割込み処理 NO 割込み出力 割込みクリア *:EI2OSの設定で決まります。 EI2OS を使用した場合 , 変換データ保護機能が働き , 連続変換時にもデータ欠落を起こ すことなく複数のデータを確実にメモリに転送できます。 436 第 19 章 8/10 ビット A/D コンバータ 19.6.2 A/D 変換データ保護機能 割込み許可状態で A/D 変換を実行した場合 , 変換データ保護機能が働きます。 ■ A/D 変換データ保護機能 8/10 ビット A/D コンバータでは , 変換データ格納用のデータレジスタが 1 個ですので , A/D 変換を行った場合には変換終了時にデータレジスタ内の格納データが書き換えら れます。連続変換モードで変換データのメモリへの転送が間に合わなかった場合には , 格納されているデータが一部欠落します。 データ欠落の対策として割込み要求許可 (ADCS1:INTE=1) の場合は , 以下のようにデー タ保護機能が働きます。 ● EI2OS を使用しない場合のデータ保護機能 変換データが A/D データレジスタ (ADCR0/ADCR1) に格納されると A/D 制御ステータ スレジスタ 1(ADCS1) の割込み要求フラグビット (INT) に "1" がセットされ , A/D 変換 を一時停止します。割込みルーチン内で , A/D データレジスタ (ADCR0/ADCR1) をメモ リなどに転送した後 , 割込み要求フラグビット (INT) を "0" にクリアした場合 , A/D 変 換が再開します。 ● EI2OS を使用する場合のデータ保護機能 連続変換モードで EI2OS を使用した場合 , A/D 変換が終了しても , 前データのメモリへ の転送が完了していないと , A/D 制御ステータスレジスタ 1(ADCS1) の一時停止フラグ ビット (PAUS) に "1" がセットされ , A/D 変換動作を一時停止し , 変換データを A/D デー タレジスタ (ADCR0/ADCR1) に格納しません。前データのメモリへのデータ転送が完 了した場合 , 一時停止フラグビット (PAUS) は "0" にクリアされ , A/D 変換動作を再開 します。 437 第 19 章 8/10 ビット A/D コンバータ 図 19.6-5 EI2OS 使用時のデータ保護機能フロー EI2OS設定 A/D連続変換起動 1回変換終了 データレジスタに格納 EI2OS起動 2回変換終了 EI2OS終了 NO A/D一時停止 YES データレジスタに格納 3回目変換 EI2OS起動 続く すべて変換終了 EI2OS起動 続く データレジスタに格納 割込み処理ルーチン A/D初期化または停止 終了 <注意事項>A/Dコンバータ動作停止時のフローは省略 <注意事項> ・ 変換データ保護機能は , 割込みが許可されている場合 (ADCS1:INTE=1) に動作します。 ・ EI2OS 使用中で A/D 変換が一時停止している場合に , 割込みを禁止すると A/D 変換が 動作し , 旧データの転送前に新データが書き込まれる場合があります。 ・ 一時停止中に再起動をかけると , 待機データは破壊されます。 438 第 20 章 LCD コントローラ / ドライバ LCD コントローラ / ドライバの機能と動作につい て説明します。 20.1 LCD コントローラ / ドライバの概要 20.2 LCD コントローラ / ドライバの構成 20.3 LCD コントローラ / ドライバの端子 20.4 LCD コントローラ / ドライバのレジスタ 20.5 LCD コントローラ / ドライバの表示用 RAM 20.6 LCD コントローラ / ドライバの動作説明 439 第 20 章 LCD コントローラ / ドライバ 20.1 LCD コントローラ / ドライバの概要 LCD コントローラ / ドライバは , 24 × 8 ビットの表示データメモリを内蔵し , 4 本 のコモン出力と 48 本のセグメント出力によって LCD 表示の制御を行います。3 種 類のデューティ出力が選択でき , LCD パネル ( 液晶表示器 ) を直接駆動できます。 ■ LCD コントローラ / ドライバの機能 LCD コントローラ / ドライバは , 表示データ・メモリ ( 表示用 RAM) の内容をセグメン ト出力とコモン出力によってLCDパネル(液晶表示器)を直接表示する機能があります。 • • LCD 駆動電圧分割抵抗を内蔵しています。また , 外部分割抵抗を接続できます。 最大で4本のコモン出力(COM0∼COM3)と48本のセグメント出力(SEG0∼SEG47)を 使用できます。 • 24 バイトの表示データメモリ ( 表示用 RAM) を内蔵しています。 • デューティは , 1/2, 1/3, 1/4 を選択できます ( バイアスの設定によって制限されます )。 • LCD を直接駆動できます。 表 20.1-1 に使用できるバイアス・デューティの組合せを示します。 表 20.1-1 バイアス・デューティの組合せ表 バイアス 1/2 デューティ 1/3 デューティ 1/4 デューティ 1/2 バイアス ○ × × 1/3 バイアス × ○ ○ ○ : 推奨モード × : 使用禁止 <注意事項> SEG12 ∼ SEG47 端子は , LCRH/LCRR の設定で汎用ポートを選択した場合 , セグメント 出力としては使用できません。 440 第 20 章 LCD コントローラ / ドライバ 20.2 LCD コントローラ / ドライバの構成 LCD コントローラ / ドライバは , 次の 9 つのブロックで構成されており , 機能的には 表示用 RAM の内容に従って , セグメント信号とコモン信号を発生するコントローラ 部と , LCD を駆動するためのドライバ部に分けられます。 ・LCDC 制御レジスタ (LCRL/LCRH) ・LCDC 範囲レジスタ (LCRR) ・表示用 RAM ・プリスケーラ ・タイミングコントローラ ・交流化回路 ・コモンドライバ ・セグメントドライバ ・分割抵抗 ■ LCD コントローラ / ドライバの構成 図 20.2-1 LCD コントローラ / ドライバのブロックダイヤグラム LCDC範囲レジスタ (LCRR) V0 V1 V2 V3 LCDC制御レジスタL (LCRL) メイン クロック 分割抵抗 4 タイミング コントローラ 交流化回路 プリス ケーラ サブクロック (32 kHz) コ モ ン ド ラ イ バ セグメントドライバ 48 表示用RAM 24×8ビット COM0 COM1 COM2 COM3 SEG0 SEG1 SEG2 SEG3 SEG4 ~ SEG42 SEG43 SEG44 SEG45 SEG46 SEG47 LCDC制御レジスタH (LCRH) コントローラ ドライバ 441 第 20 章 LCD コントローラ / ドライバ ● LCDC 制御レジスタ下位 (LCRL) LCD 駆動電源制御 , 表示 / 表示ブランキングの選択 , 表示モードの選択 , LCD クロック の周期選択を行います。 ● LCDC 制御レジスタ上位 (LCRH) セグメント出力 , V 端子 , COM 端子と汎用ポートとの切換えを行うレジスタです。 ● LCDC 範囲レジスタ (LCRR) セグメント出力と汎用ポートとの切換え , LCD 駆動電圧用分割抵抗の選択を行います。 内部分割抵抗は 2 種類搭載されています。 ● 表示用 RAM セグメント出力信号発生用の 24 × 8 ビットの RAM です。この RAM の内容は , コモ ン信号の選択タイミングに同期して自動的に読み出され , 表示用 RAM の書き換えと同 時にセグメント出力端子より出力されます。 ● プリスケーラ 4 種類の周波数から選択された設定によって , フレーム周波数を発生します。 ● タイミングコントローラ フレーム周波数と LCRL レジスタの設定を基に , コモン信号 , セグメント信号の制御を 行います。 ● 交流化回路 タイミングコントローラの信号から , LCD を駆動するための交流波形を生成します。 ● コモンドライバ LCD のコモン端子のドライバです。 ● セグメントドライバ LCD のセグメント端子のドライバです。 ● 分割抵抗 LCD 駆動電圧を分割して発生させるための抵抗です。LCDC 制御レジスタ下位 (LCRL:VSEL) により選択可能です。また , 2 種類の分割抵抗を搭載しており LCDC 抵 抗レジスタ (LCRR:LCR) で選択可能です。分割抵抗は , 外付けすることもできます。 ■ LCD コントローラ / ドライバの電源電圧 LCD ドライバの電源電圧は , 内蔵の分割抵抗を使用するか , または V0 ∼ V3 端子に分 割抵抗を接続することにより設定します。 442 第 20 章 LCD コントローラ / ドライバ 20.2.1 LCD コントローラ / ドライバの内部分割抵抗 LCD ドライバの電源電圧は , V0 ∼ V3 端子に接続された外部分割抵抗または内部分 割抵抗によってつくられます。内部分割抵抗は 2 種類の抵抗から選択できます。 ■ LCD コントローラ / ドライバの内部分割抵抗 LCD コントローラ / ドライバには , 内部分割抵抗が内蔵されています。また , LCD 駆 動用電源端子 (V0 ∼ V3) に外部分割抵抗を接続することもできます。 内部分割抵抗と外部分割抵抗の選択は , LCDC 制御レジスタの駆動電源制御ビット (LCRL:VSEL) で行います。VSEL ビットを "1" にすることにより内部分割抵抗が通電 状態になります。外部分割抵抗を接続せず内部分割抵抗を使用する場合は VSEL ビッ トを "1" に設定してください。 外部分割抵抗を接続する場合は , VSEL ビットを "0" に設定して内部抵抗を切り離して ください。 内部分割抵抗 (R) は , 約 100 kΩ / 約 12.5 kΩ (VCC 端子と V3 端子との間は約 200 kΩ / 約 25 kΩ ) の 2 種類から LCDC 抵抗レジスタにより (LCRR:LCR) 選択できます。 LCD コントローラ許可は , LCD 動作停止 (LCRL:MS1, MS0=00B) のときに非アクティブ になります。 図 20.2-2 に内部分割抵抗の等価回路を示します。 図 20.2-2 内部分割抵抗の等価回路 VCC P-ch 2R N-ch V3 V3 P-ch R N-ch P-ch V2 V2 VSHT SW P-ch N-ch R N-ch P-ch V1 V1 P-ch N-ch R P-ch N-ch V0 V0 LCDコント ローラ許可 N-ch N-ch VSEL VS0 V0~V3: V0~V3端子の電圧値 443 第 20 章 LCD コントローラ / ドライバ ■ 内部分割抵抗の使用 内部分割抵抗を使用した場合でも , VCC 端子と V3 端子との間には , 外部に抵抗を接続 してください。 図 20.2-3 に内部分割抵抗を使用時の状態を示します。 1/2 バイアス設定を行う場合は , 内部スイッチ ( 制御信号 :VSHT) により V2 端子と V1 端子は短絡されます。外部分割抵抗を使用する場合は , 1/2 バイアス設定時はスイッチ が OFF しますので外部抵抗により短絡してください。 図 20.2-3 内部分割抵抗を使用時の状態 VCC VCC VR V3 2R V2 R V1 R V0 R VR V3 2R V2 V2 R V1 V1 R V0 V0 R V3 LCDコント ローラ許可 V3 LCDコント ローラ許可 Q1 1/2 バイアス V2 V1 V0 Q1 1/3 バイアス V0~V3: V0~V3端子の電圧値 ■ V 端子の切換え 内部抵抗使用時 , LCDC 制御レジスタ上位 (LCRH:VS0) により , V2 ∼ V0 の 3 端子を ポートに切り換えることが可能です。 ■ 内部分割抵抗使用時の輝度調整 内部分割抵抗を使用して輝度があがらない場合には , 外部 (VCC 端子と V3 端子との間 ) に VR ( 可変抵抗 ) を接続して V3 端子の電圧を調節してください。 図 20.2-4 内部分割抵抗を使用時の輝度調節 VCC VR V3 2R V2 R V1 R V0 R V3 LCDコント ローラ許可 V2 V1 V0 Q1 輝度調整をしたい場合 V0~V3: V0~V3端子の電圧値 444 第 20 章 LCD コントローラ / ドライバ 20.2.2 LCD コントローラ / ドライバの外部分割抵抗 外部分割抵抗または内部分割抵抗を使用して , LCD 駆動電圧を発生します。 VCC と V3 端子との間に可変抵抗を接続することで , 輝度を調節できます。 ■ LCD コントローラ / ドライバの外部分割抵抗 LCD 駆動電源端子 (V0 ∼ V3) に外部分割抵抗を接続して使用できます。バイアス方式 に対応した外部分割抵抗の接続およびLCD駆動電圧を図 20.2-5 , 表 20.2-1 に示します。 図 20.2-5 外部分割抵抗の接続例 VCC VCC V3 V2 VR VR V3 R R V2 VLCD R V1 V0 VLCD V1 R R V0 V0=VSS V0=VSS 1/2 バイアス 1/3 バイアス 表 20.2-1 LCD 駆動電圧の設定 V3 V2 V1 V0 1/2 バイアス VLCD 1/2 VLCD 1/2 VLCD VSS 1/3 バイアス VLCD 2/3 VLCD 1/3 VLCD VSS V0 ∼ V3:V0 ∼ V3 端子の電圧 VLCD:LCD の動作電圧 445 第 20 章 LCD コントローラ / ドライバ ■ 外部分割抵抗の使用 V0 端子は内部でトランジスタを通して VSS(GND) へ接続されていますので外部分割抵 抗を使用する場合 , 分割抵抗の VSS 側を V0 端子のみに接続することにより LCD コン トローラ停止時に抵抗へ流れる電流を遮断できます。 図 20.2-6 に外部分割抵抗使用時の状態を示します。 図 20.2-6 外部分割抵抗使用時の状態 VCC V3 V2 V1 V0 LCDコント ローラ許可 • 2R V3 R V2 R V1 R V0 VR RX RX RX V0=VSS Q1 内部分割抵抗の影響を受けずに外部抵抗を接続するには , LCDC 制御レジスタの駆動 電圧制御ビット (LCRL:VSEL) に "0" を書き込み , 内部分割抵抗全体を切り離す必要 があります。外部分割抵抗を使用する場合は , 必ず V 端子切換えビット (LCRH:VS0) は "0" に設定してください。 • 内部分割抵抗を切り離された状態で , LCDC 制御レジスタの表示モード選択ビット (LCRL:MS1, MS0) に "00B" 以外を書き込むと LCDC 許可トランジスタ (Q1) が ON と なって外部分割抵抗に電流が流れます。 • 表示モード選択ビット(MS1, MS0)に"00B"を書き込むとLCDC許可トランジスタ(Q1) が OFF となって外部分割抵抗に電流が流れなくなります。 外部に接続する RX は , 使用する LCD により異なりますので適切な値を選択してく ださい。 446 第 20 章 LCD コントローラ / ドライバ 20.3 LCD コントローラ / ドライバの端子 LCD コントローラ / ドライバに関連する端子 , 端子のブロックダイヤグラムを示し ます。 ■ LCD コントローラ / ドライバに関連する端子 LCDコントローラ/ドライバに関連する端子は, 4本のコモン出力端子(COM0∼COM3), 48本のセグメント出力端子(SEG0∼SEG47), 4本のLCD駆動用電源端子(V0∼V3)です。 表 20.3-1 LCD コントローラ / ドライバ端子機能 (1 / 2) 端子名 機能 SEG0 ∼ SEG11 LCD セグメント出力専用端子です。 P00/SEG12 ∼ P07/SEG19 汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。 切換えは LCRR レジスタの設定により行います。 P10/SEG20 ∼ P17/SEG27 汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。 切換えは LCRR レジスタの設定により行います。 P20/SEG28 ∼ P23/SEG31 汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。 切換えは LCRR レジスタの設定により行います。 P24/SEG32 ∼ P27/SEG35 汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 P30/SEG36/ SO3 汎用入出力ポート , LCD セグメント出力端子 , シリアル I/O データ出力端子としての 機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 P31/SEG37/ SC3 汎用入出力ポート , LCD セグメント出力端子 , シリアルクロック入出力端子として の機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 P32/SEG38/ SI3 汎用入出力ポート , LCD セグメント出力端子 , シリアル I/O データ入力端子としての 機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 P33/SEG39/ TMCK 汎用入出力ポート , LCD セグメント出力端子 , 時計クロック出力端子としての機能 を兼用しています。 切換えは LCRH レジスタの設定により行います。 P34/SEG40/ IC0, P35/SEG41/ IC1 汎用入出力ポート , LCD セグメント出力端子 , インプットキャプチャの外部トリガ 入力端子としての機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 P36/SEG42/ OCU0, P37/SEG43/ OCU1 汎用入出力ポート , LCD セグメント出力端子 , アウトプットコンペアの出力端子と しての機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 447 第 20 章 LCD コントローラ / ドライバ 表 20.3-1 LCD コントローラ / ドライバ端子機能 (2 / 2) 端子名 機能 P50/SEG44/ TIN0, P51/SEG45/ TIN1 汎用入出力ポート , LCD セグメント出力端子 , リロードタイマの外部クロック入力 端子としての機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 P52/SEG46/ TIN2/PPG0 汎用入出力ポート , LCD セグメント出力端子 , リロードタイマの外部クロック入力 端子 , PPG タイマ出力端子としての機能を兼用しています。 切換えは LCRH レジスタの設定により行います。 P53/SEG47/ PPG1 汎用入出力ポート , LCD セグメント出力端子 , PPG タイマ出力端子としての機能を 兼用しています。 切換えは LCRH レジスタの設定により行います。 COM0, COM1 LCD コモン出力専用端子です。 P83/COM2, P84/COM3 汎用入出力ポートと COM 出力端子としての機能を兼用しています。切換えは LCRH レジスタの設定により行います。 V3 LCD 駆動用電源専用端子です。 V2/P82 ∼ V0/P80 LCD 駆動用電源端子と汎用入出力ポートとしての機能を兼用しています。切換えは LCRH レジスタの設定により行います。 448 第 20 章 LCD コントローラ / ドライバ ■ LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム 図 20.3-1 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム ポートデータレジスタ(PDR) 内部データバス PDR リード 出力ラッチ PDR ライト 端子 ポート方向レジスタ(PDR) DDR DDR ライト DDR リード スタンバイ制御 (SPL = 1) LCD出力 端子: P00/SEG12 ~ P07/SEG19 P10/SEG20 ~ P17/SEG27 P20/SEG28 ~ P27/SEG35 P83/COM2, P84/COM3 LCD出力イネーブル 図 20.3-2 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム リソース出力 リソース入力 リソース出力イネーブル 内部データバス ポートデータレジスタ (PDR) PDR リード 出力ラッチ PDR ライト 端子 ポート方向レジスタ (PDR) DDR DDR ライト DDR リード 端子: P30/SEG36/SO3, P31/SEG37/SC3 P32/SEG38/SI3, P33/SEG39/TMCK P34/SEG40/IC0, P35/SEG41/IC1 P36/SEG42/OCU0, P37/SEG43/OCU1 P50/SEG44/TIN0, P51/SEG45/TIN1 P52/SEG46/TIN2/PPG0 P53/SEG47/PPG1 スタンバイ制御 (SPL = 1) LCD 出力 LCD 出力イネーブル 449 第 20 章 LCD コントローラ / ドライバ 図 20.3-3 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム LCRH VS 内部データバス ポートデータレジスタ (PDR) LCD入力 (V0~V3) PDR リード 出力ラッチ PDR ライト 端子 ポート方向レジスタ (PDR) DDR DDR ライト DDR リード 端子: V2/P82 ~ V0/P80 450 スタンバイ制御 (SPL = 1) 第 20 章 LCD コントローラ / ドライバ 20.4 LCD コントローラ / ドライバのレジスタ LCD コントローラ / ドライバに関連するレジスタを示します。 ■ LCD コントローラ / ドライバに関連するレジスタ 図 20.4-1 LCD コントローラ / ドライバに関連するレジスタ LCRL(LCDC 制御レジスタ下位 ) アドレス 00005CH bit7 CSS R/W bit6 LCEN R/W bit5 VSEL R/W bit4 BK R/W bit3 MS1 R/W bit2 MS0 R/W bit1 FP1 R/W bit0 FP0 R/W 初期値 00010000B 初期値 00000000B LCRH(LCDC 制御レジスタ上位 ) アドレス 00005DH bit15 bit14 bit13 bit12 bit11 bit11 bit9 bit8 SS4 R/W VS0 R/W CS1 R/W CS0 R/W SS3 R/W SS2 R/W SS1 R/W SS0 R/W LCRR(LCDC 範囲レジスタ ) アドレス 00005EH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 R/W 予約 R/W SE4 R/W SE3 R/W SE2 R/W SE1 R/W SE0 R/W LCR R/W 初期値 00000000B R/W: リード / ライト可能 451 第 20 章 LCD コントローラ / ドライバ LCDC 制御レジスタ下位 (LCRL) 20.4.1 LCDC 制御レジスタ下位 (LCRL) は , 駆動電源の制御 , 表示ブランキング , 表示モー ドの選択を行うレジスタです。 ■ LCDC 制御レジスタ下位 (LCRL) 図 20.4-2 LCDC レジスタ下位 (LCRL) アドレス 00005CH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CSS LCEN VSEL BK MS1 MS0 FP1 FP0 R/W R/W R/W R/W R/W R/W R/W R/W FP1 FP0 0 0 1 1 0 1 0 1 初期値 00010000B フレーム周期選択ビット CSS=0 CSS=1 Fc/213xN Fc/25xN Fc/214xN Fc/26xN 15 Fc/2 xN Fc/27xN Fc/216xN Fc/28xN N:時分割数 Fc:原発振 表示モード選択ビット MS1 MS0 0 0 LCD動作停止 0 1 1/2デューティ出力モード(時分割数 N=2) 1 0 1/3デューティ出力モード(時分割数 N=3) 1 1 1/4デューティ出力モード(時分割数 N=4) 表示ブランキング選択ビット BK 0 表示 1 表示ブランキング LCD駆動電源制御ビット VSEL 0 外部分割抵抗を使用する 1 内部分割抵抗を使用する タイムベースタイマモード時/時計モード時 LCEN 動作許可ビット タイムベースタイマモード時/時計モード時 0 動作を停止します。 1 R/W :リード/ライト可能 :初期値 452 タイムベースタイマモード時/時計モード時 動作を停止しません。 時計モード時は,必ずクロック選択ビット (CSS)を"1"に設定してください。 クロック選択ビット CSS 0 メインクロック 1 サブクロック 第 20 章 LCD コントローラ / ドライバ 表 20.4-1 LCDC 制御レジスタ下位 (LCRL) の各ビットの機能説明 ビット名 機能 bit7 CSS: クロック選択 ビット プリスケーラ用クロック選択ビットです。 0: メインクロックを選択します。 1: サブクロックを選択します。 bit6 LCEN: タイムベースタイマ モード時 / 時計 モード時動作許可 ビット タイムベースタイマモード時 / 時計モード時の動作許可ビッ トです。 タイムベースタイマモード時 / 時計モード時では , このビッ トが "0" のとき LCD 表示が停止し , "1" のとき動作します。 時計モード時は , 必ずクロック選択ビット (CSS) に "1" を設 定してサブクロックを選択してください。 bit5 VSEL: LCD 駆動電源 制御ビット 内部分割抵抗に通電するかどうかの選択を行うビットです。 VSEL ビットが "0" のとき内部分割抵抗は遮断され , "1" のと き導通します。外部分割抵抗を接続する場合は , VSEL ビッ トを "0" にする必要があります。 bit4 BK: 表示ブランキング 選択ビット LCD の表示 / 非表示を選択します。 表示部ブランキング ( 非表示 , BK=1) では , セグメント出力 は非選択波形 ( 表示条件とならない波形 ) となります。 bit3, bit2 MS1, MS0: 表示モード 選択ビット 出力波形のデューティを 3 種類の中から選択します。 選択したデューティ出力モードに対応して , 使用するコモン 端子が決まります。 これらのビットが "0" のときは , LCD コントローラ / ドライ バは表示動作を停止します。 ( 注意事項 ) 選択したフレーム周期発生用クロックがストッ プモードへの移行などで停止する場合は , あら かじめ表示動作を停止してください。 bit1, bit0 FP1, FP0: フレーム周期 選択ビット LCD 表示のフレーム周期を 4 種類の中から選択します。 ( 注意事項 ) 使用する LCD モジュールに応じて最適フレーム 周波数を計算して , レジスタの設定を行ってく ださい。フレーム周波数は原発振の周波数の影 響を受けます。 453 第 20 章 LCD コントローラ / ドライバ LCDC 制御レジスタ上位 (LCRH) 20.4.2 LCDC 制御レジスタ上位 (LCRL) は , セグメント出力 (SEG32 ∼ SEG47), V 端子入 力 (V0 ∼ V2), COM 端子出力 (COM2, COM3) と汎用ポートとの切換えを行うレジス タです。 ■ LCDC 制御レジスタ上位 (LCRH) 図 20.4-3 LCDC 制御レジスタ上位 (LCRH) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 00005DH SS4 VS0 CS1 CS0 SS3 SS2 SS1 SS0 R/W R/W R/W R/W R/W R/W R/W R/W SS4 SS3 SS2 SS1 SS0 :初期値 454 00000000B SEG32~SEG47出力切換えビット セグメント出力 汎用ポート 0 X X X X - P24~P27,P30~P37,P50~P53 1 0 0 0 0 SEG32 P25~P27,P30~P37,P50~P53 1 0 0 0 1 SEG32,SEG33 P26,P27,P30~P37,P50~P53 1 0 0 1 0 SEG32~SEG34 P27,P30~P37,P50~P53 1 0 0 1 1 SEG32~SEG35 P30~P37,P50~P53 1 0 1 0 0 SEG32~SEG36 P31~P37,P50~P53 1 0 1 0 1 SEG32~SEG37 P32~P37,P50~P53 1 0 1 1 0 SEG32~SEG38 P33~P37,P50~P53 1 0 1 1 1 SEG32~SEG39 P34~P37,P50~P53 1 1 0 0 0 SEG32~SEG40 P35~P37,P50~P53 1 1 0 0 1 SEG32~SEG41 P36,P37,P50~P53 1 1 0 1 0 SEG32~SEG42 P37,P50~P53 1 1 0 1 1 SEG32~SEG43 P50~P53 1 1 1 0 0 SEG32~SEG44 P51~P53 1 1 1 0 1 SEG32~SEG45 P52,P53 1 1 1 1 0 SEG32~SEG46 P53 1 1 1 1 1 SEG32~SEG47 - VS0 0 1 R/W :リード/ライト可能 初期値 SEG32~SEG47出力切換えビット V0~V2 P80~P82 CS1 CS0 COM端子切換えビット 0 0 COM0, COM1 0 1 COM0~COM2 1 X COM0~COM3 第 20 章 LCD コントローラ / ドライバ 表 20.4-2 LCDC 制御レジスタ上位 (LCRH) の各ビットの機能説明 ビット名 機能 SS4: SEG32 ∼ SEG47 出力 切換えビット P24 ∼ P27, P30 ∼ P37, P50 ∼ P53/SEG32 ∼ SEG47 端子をセグメント出力として使用するか , 汎用ポー トとして使用するかを切り換えます。 bit 14 VS0: SEG32 ∼ SEG47 出力 切換えビット P80 ∼ P82/V0 ∼ V2 端子を V0 ∼ V2 として使用す るか, 汎用ポートとして使用するかを切り換えます。 ( 注意事項 )V 端子を汎用ポートとして使用する場 合 , 必ず内部分割抵抗を有効にする必要 があります。あらかじめ LCD 駆動電源 制御ビット (VSEL) を "1" に設定してく ださい。 bit 13, bit 12 CS1, CS0: COM端子切換えビット P83/COM2, P84/COM3 端子を COM として使用する か , 汎用ポートとして使用するかを切り換えます。 bit 11 ∼ bit 8 SS3 ∼ SS0: SEG32 ∼ SEG47 出力 切換えビット P47/SEG21, P90/SEG22, P91/SEG23 端子をセグメン ト出力として使用するか , 汎用ポートとして使用す るかを切り換えます。 bit 15 455 第 20 章 LCD コントローラ / ドライバ LCDC 範囲レジスタ (LCRR) 20.4.3 LCDC 範囲レジスタ (LCRR) は , セグメント出力 (SEG12 ∼ SEG31) と汎用ポート との切換え , LCD 駆動電圧発生用の内部分割抵抗の選択を行うレジスタです。 ■ LCDC 範囲レジスタ (LCRR) 図 20.4-4 LCDC 範囲レジスタ (LCRR) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス 00005EH 予約 予約 SE4 SE3 SE2 SE1 SE0 LCR R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B 内部分割抵抗選択ビット LCR 0 内部分割抵抗 約100kΩ(Vcc-V3間は,約200kΩ)が選択されます。 1 外部分割抵抗 約12.5kΩ(Vcc-V3間は,約25kΩ)が選択されます。 SEG12~SEG31出力切換えビット SE4 SE3 SE2 SE1 SE0 汎用ポート セグメント出力 0 0 0 0 0 - P00~P07,P10~P17,P20~P23 0 0 0 0 1 SEG12~SEG15 P04~P07,P10~P17,P20~P23 0 0 0 1 1 SEG12~SEG19 P10~P17,P20~P23 0 0 1 1 1 SEG12~SEG23 P14~P17,P20~P23 0 1 1 1 1 SEG12~SEG27 P20~P23 1 1 1 1 1 SEG12~SEG31 - 予約 0 R/W 予約ビット 必ず"0"を設定してください。 :リード/ライト可能 :初期値 表 20.4-3 LCDC 制御レジスタ上位 (LCRH) の各ビットの機能説明 ビット名 bit 7, bit6 bit 5 ∼ bit1 bit 0 456 機能 予約: 予約ビット 予約ビットです。 必ず "0" を設定してください。 SE4 ∼ SE0: SEG12 ∼ SEG31 出力 切換えビット P00/SEG12 ∼ P07/SEG19, P10/SEG20 ∼ P17/SEG27, P20/ SEG28 ∼ P23/SEG31 端子をセグメント出力として使用 するか , 汎用ポートとして使用するかを切り換えます。 LCR: 内部分割抵抗選択ビット LCD 駆動電源発生用 , 内部分割抵抗の選択を行います。 第 20 章 LCD コントローラ / ドライバ 20.5 LCD コントローラ / ドライバの表示用 RAM 表示用 RAM は , セグメント出力信号発生用の 24 × 8 ビットの表示用データメモリ です。 ■ 表示用 RAM と出力端子 この RAM の内容は , コモン信号の選択タイミングに同期して自動的に読み出され , セ グメント出力端子より出力されます。 各ビットの内容が "1" であれば選択電圧に変換 (LCD は表示 ) され , "0" であれば非選 択電圧に変換 (LCD は非表示 ) されて出力されます。 LCD 表示動作は CPU の動作とは無関係に行われるので , 表示用 RAM に対しては任意 のタイミングでリード・ライトができます。 SEG0 ∼ SEG47 端子のうち , LCRH レジスタでセグメント出力に指定されなかった端子 は汎用ポートとして , また , 対応する RAM は通常の RAM として使用できます ( 表 20.51 を参照 )。 表 20.5-2 にデューティ , コモン出力と表示用 RAM の関係を示します。 図 20.5-1 に表示用 RAM とコモン出力端子・セグメント出力端子の対応図を示します。 図 20.5-1 表示用 RAM とコモン出力端子・セグメント出力端子の対応 (1 / 2) アドレス bit3 bit2 bit1 bit0 SEG0 7900H bit7 bit6 bit5 bit4 SEG1 bit11 bit10 bit9 bit8 SEG2 bit15 bit14 bit13 bit12 SEG3 bit3 bit2 bit1 bit0 SEG4 bit7 bit6 bit5 bit4 SEG5 bit11 bit10 bit9 bit8 SEG6 bit15 bit14 bit13 bit12 SEG7 bit3 bit2 bit1 bit0 SEG8 bit7 bit6 bit5 bit4 SEG9 bit11 bit10 bit9 bit8 SEG10 bit15 bit14 bit13 bit12 SEG11 bit3 bit2 bit1 bit0 SEG12 bit7 bit6 bit5 bit4 SEG13 bit11 bit10 bit9 bit8 SEG14 bit15 bit14 bit13 bit12 SEG15 bit3 bit2 bit1 bit0 SEG16 7901H 7902H 7903H 7904H 7905H 7906H 7907H 457 第 20 章 LCD コントローラ / ドライバ 図 20.5-1 表示用 RAM とコモン出力端子・セグメント出力端子の対応 (2 / 2) 7908H 7909H 790AH 790BH 790CH 790DH 790EH 790FH 7910H 7911H 7912H 7913H 7914H 7915H 7916H 7917H 458 bit7 bit6 bit5 bit4 SEG17 bit11 bit10 bit9 bit8 SEG18 bit15 bit14 bit13 bit12 SEG19 bit3 bit2 bit1 bit0 SEG20 bit7 bit6 bit5 bit4 SEG21 bit11 bit10 bit9 bit8 SEG22 bit15 bit14 bit13 bit12 SEG23 bit3 bit2 bit1 bit0 SEG24 bit7 bit6 bit5 bit4 SEG25 bit11 bit10 bit9 bit8 SEG26 bit15 bit14 bit13 bit12 SEG27 bit3 bit2 bit1 bit0 SEG28 bit7 bit6 bit5 bit4 SEG29 bit11 bit10 bit9 bit8 SEG30 bit15 bit14 bit13 bit12 SEG31 bit3 bit2 bit1 bit0 SEG32 bit7 bit6 bit5 bit4 SEG33 bit11 bit10 bit9 bit8 SEG34 bit15 bit14 bit13 bit12 SEG35 bit3 bit2 bit1 bit0 SEG36 bit7 bit6 bit5 bit4 SEG37 bit11 bit10 bit9 bit8 SEG38 bit15 bit14 bit13 bit12 SEG39 bit3 bit2 bit1 bit0 SEG40 bit7 bit6 bit5 bit4 SEG41 bit11 bit10 bit9 bit8 SEG42 bit15 bit14 bit13 bit12 SEG43 bit3 bit2 bit1 bit0 SEG44 bit7 bit6 bit5 bit4 SEG45 bit11 bit10 bit9 bit8 SEG46 bit15 bit14 bit13 bit12 SEG47 COM3 COM2 COM1 COM0 第 20 章 LCD コントローラ / ドライバ 表 20.5-1 コモン・セグメントと表示用 RAM の関係および兼用端子 LCRH/LCRR レジスタの SS4 ∼ SS0, SE4 ∼ SE0 ビット値 使用するセグメント 表示用として 使用される RAM 領域 汎用ポートに 使用できる端子 SE4 ∼ SE0 SS4 ∼ SS0 00000B 0XXXX B SEG0∼SEG11 (12本) 7900H ∼ 7905H P00 ∼P07, P10 ∼P17, P20 ∼P27, P30 ∼ P37, P50 ∼ P53 00001B 0XXXX B SEG0∼SEG15 (16本) 7900H ∼ 7907H P04 ∼P07, P10 ∼P17, P20 ∼P27, P30 ∼ P37, P50 ∼ P53 00011B 0XXXX B SEG0∼SEG19 (20本) 7900H ∼ 7909H P10 ∼P17, P20 ∼P27, P30 ∼P37, P50 ∼ P53 00111B 0XXXX B SEG0∼SEG23 (24本) 7900H ∼ 790BH P14 ∼P17, P20 ∼P27, P30 ∼P37, P50 ∼ P53 01111B 0XXXX B SEG0∼SEG27 (28本) 7900H ∼ 790DH P20 ∼ P27, P30 ∼ P37, P50 ∼ P53 11111B 0XXXX B SEG0∼SEG31 (32本) 7900H ∼ 790FH P24 ∼ P27, P30 ∼ P37, P50 ∼ P53 11111B 10000B SEG0∼SEG32 (33本) 7900H ∼ 7910H P25 ∼ P27, P30 ∼ P37, P50 ∼ P53 11111B 10001B SEG0∼SEG33 (34本) 7900H ∼ 7910H P26, P27, P30 ∼ P37, P50 ∼ P53 11111B 10010B SEG0∼SEG34 (35本) 7900H ∼ 7911H P27, P30 ∼ P37, P50 ∼ P53 11111B 10011B SEG0∼SEG35 (36本) 7900H ∼ 7911H P30 ∼ P37, P50 ∼ P53 11111B 10100B SEG0 ∼ SEG36(37 本 ) 7900H ∼ 7912H P31 ∼ P37, P50 ∼ P53 11111B 10101B SEG0∼SEG37 (38本) 7900H ∼ 7912H P32 ∼ P37, P50 ∼ P53 11111B 10110B SEG0 ∼ SEG38(39 本 ) 7900H ∼ 7913H P33 ∼ P37, P50 ∼ P53 11111B 10111B SEG0∼SEG39 (40本) 7900H ∼ 7913H P34 ∼ P37, P50 ∼ P53 11111B 11000B SEG0 ∼ SEG40(41 本 ) 7900H ∼ 7914H P35 ∼ P37, P50 ∼ P53 11111B 11001B SEG0 ∼ SEG41(42 本 ) 7900H ∼ 7914H P36, P37, P50 ∼ P53 11111B 11010B SEG0∼SEG42 (43本) 7900H ∼ 7915H P37, P50 ∼ P53 11111B 11011B SEG0∼SEG43 (44本) 7900H ∼ 7915H P50 ∼ P53 11111B 11100B SEG0∼SEG44 (45本) 7900H ∼ 7916H P51 ∼ P53 11111B 11101B SEG0∼SEG45 (46本) 7900H ∼ 7916H P52, P53 11111B 11110B SEG0∼SEG46 (47本) 7900H ∼ 7917H P53 11111B 11111B SEG0∼SEG47 (48本) 7900H ∼ 7917H なし <参考> 表示用として使用されない RAM 領域は , 通常の RAM として使用できます。 ただし , バイトアクセスのみ可能です。 459 第 20 章 LCD コントローラ / ドライバ 表 20.5-2 デューティとコモン出力および表示用 RAM の使用ビットの関係 使用される各表示用データのビット デューティ 設定値 使用される コモン出力 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 1/2 COM0, COM1(2 本 ) − − ○ ○ − − ○ ○ 1/3 COM0 ∼ COM2(3 本 ) − ○ ○ ○ − ○ ○ ○ 1/4 COM0 ∼ COM3(4 本 ) ○ ○ ○ ○ ○ ○ ○ ○ ○ : 使われる − : 使われない 460 bit15 第 20 章 LCD コントローラ / ドライバ 20.6 LCD コントローラ / ドライバの動作説明 LCD コントローラ / ドライバは , LCD 表示に必要な制御および駆動を行います。 ■ LCD コントローラ / ドライバの動作説明 LCD 表示を行うためには , 以下の設定が必要です。 図 20.6-1 LCD コントローラ / ドライバの設定 LCRL LCRL LCRL 表示用 RAM 7900H ∼ 7917H bit7 CSS ◎ bit6 LCEN ◎ bit5 VSEL ◎ bit4 BK ◎ bit3 MS1 bit15 SS4 ◎ bit14 VS0 ◎ bit13 CS1 ◎ bit12 CS0 ◎ bit11 SS3 ◎ bit7 bit6 − 0 − 0 bit5 SE4 ◎ bit4 SE3 ◎ bit3 SE2 ◎ bit2 MS0 bit1 FP1 ◎ bit0 FP0 ◎ bit10 SS2 ◎ bit9 SS1 ◎ bit8 SS0 ◎ bit2 SE1 ◎ bit1 SE0 ◎ bit0 LCR ◎ 00B 以外 表示データ ◎:使用ビット 0 :"0" を設定 以上の設定が行われ , 選択したフレーム周期発生用クロックが発振していれば , 表示用 RAM の内容に従って , コモン・セグメント出力端子 (COM0 ∼ COM3, SEG0 ∼ SEG47) に LCD パネルの駆動波形を出力します。 LCD 表示動作中であっても , フレーム周期発生用クロックは切り換えることができま す。た だ し , 切 換 え 時 に 表 示 が ち ら つ く 可 能 性 が あ り ま す の で , ブ ラ ン キ ン グ (LCRL:BK=1) などで表示を一時的に停止させてから , クロックの切換えを行うように してください。 表示駆動出力はバイアスおよびデューティの設定によって選択される 2 フレーム交流 化波形です。 1/2 デューティの場合 , COM2, COM3 端子の出力は , 非選択レベルの出力波形となりま す。同様に , 1/3 デューティの場合 , COM3 端子の出力は , 非選択レベルの出力波形と なります。 LCD 表示動作を停止 (LCRL:MS1, MS0=00B) した場合 , およびリセット中は , コモン・ セグメント出力端子はともに "L" レベルになります。 <注意事項> LCD 表示動作中に , 選択したフレーム周期発生用クロックが停止すると , 交流化回路が停 止するため液晶素子に直接電流が印加されます。この場合 , あらかじめ LCD 表示動作を 停止しておく必要があります。原発振クロックが停止する条件は , スタンバイモードの選 択によります。 461 第 20 章 LCD コントローラ / ドライバ ■ LCD の駆動波形 LCDはその性質上, 直流駆動を行うと液晶表示素子に化学変化が生じ, 素子が劣化して しまいます。このため , LCD コントローラ / ドライバは交流化回路を内蔵し , 2 フレー ム交流化波形で , LCD を駆動します。出力波形には次の 3 種類があります。 • 1/2 バイアス・1/2 デューティ出力波形 • 1/3 バイアス・1/3 デューティ出力波形 • 1/3 バイアス・1/4 デューティ出力波形 462 第 20 章 LCD コントローラ / ドライバ 20.6.1 LCD コントローラ / ドライバ動作時の出力波形 (1/2 デューティ ) 表示駆動出力はマルチプレックス駆動方式の 2 フレーム交流化波形です。 1/2 デューティのとき表示に使用されるのは , COM0, COM1 のみです。COM2, COM3 は使用されません。 ■ 1/2 バイアス・1/2 デューティ出力波形 表示はコモン出力とセグメント出力の電位差が最大となる液晶素子が ON となります。 表示用 RAM の内容が表 20.6-1 のときの出力波形を図 20.6-2 に示します。 表 20.6-1 表示用 RAM の内容例 表示用 RAM の内容 セグメント COM3 COM2 COM1 COM0 SEGn − − 0 0 SEGn+1 − − 0 1 − : 使用されない 463 第 20 章 LCD コントローラ / ドライバ 図 20.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 COM0とSEGn の電位差 V3(ON) V2 V0=Vss -V2 -V3(ON) COM1とSEGn の電位差 V3(ON) V2 V0=Vss -V2 -V3(ON) COM0とSEGn+1 の電位差 V3(ON) V2 V0=Vss -V2 -V3(ON) COM1とSEGn+1 の電位差 V3(ON) V2 V0=Vss -V2 -V3(ON) 1フレーム 1周期 V0~V3:V0~V3端子の電圧値 464 第 20 章 LCD コントローラ / ドライバ ■ LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) 図 20.6-3 LCD パネル表示データ例 7900 7901 7905 7904 7903 7902 7901 7900 bit2, bit3, bit6, bit7は未使用 465 第 20 章 LCD コントローラ / ドライバ 20.6.2 LCD コントローラ / ドライバ動作時の出力波形 (1/3 デューティ ) 1/3 デューティのとき表示に使用されるのは , COM0, COM1 および COM2 です。 COM3 は使用されません。 ■ 1/3 バイアス・1/3 デューティ出力波形例 表示はコモン出力とセグメント出力の電位差が最大となる液晶素子が ON となります。 表示用 RAM の内容が表 20.6-2 のときの出力波形を図 20.6-4 に示します。 表 20.6-2 表示用 RAM の内容例 表示用 RAM の内容 セグメント COM3 COM2 COM1 COM0 SEGn − 1 0 0 SEGn+1 − 1 0 1 − : 使用されない 466 第 20 章 LCD コントローラ / ドライバ 図 20.6-4 1/3 バイアス・1/3 デューティ出力波形例 COM0 V3 V2 V1 V0=Vss COM1 V3 V2 V1 V0=Vss COM2 V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss COM3 SEGn SEGn+1 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM0とSEGn の電位差 COM1とSEGn の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM2とSEGn の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM0とSEGn+1 の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM1とSEGn+1 の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM2とSEGn+1 の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) 1フレーム 1周期 V0~V3:V0~V3端子の電圧値 467 第 20 章 LCD コントローラ / ドライバ ■ LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) 図 20.6-5 LCD パネルの表示データ例 7900 7901 7904 7903 7902 7901 7900 7902 1/3デューティは3バイトで2桁の表示を行う ため,データの配列は第1バイトbit0からと第2 バイトbit4からの2とおりのデータがあります。 468 第 20 章 LCD コントローラ / ドライバ 20.6.3 LCD コントローラ / ドライバ動作時の出力波形 (1/4 デューティ ) 1/4 デューティのときは表示用に , COM0, COM1, COM2 および COM3 のすべてが 使用されます。 ■ 1/3 バイアス・1/4 デューティ出力波形例 表示はコモン出力とセグメント出力の電位差が最大となる液晶素子が ON となります。 表示用 RAM の内容が表 20.6-3 のときの出力波形を図 20.6-6 に示します。 表 20.6-3 表示用 RAM の内容例 表示用 RAM の内容 セグメント COM3 COM2 COM1 COM0 SEGn 0 1 0 0 SEGn+1 0 1 0 1 469 第 20 章 LCD コントローラ / ドライバ 図 20.6-6 1/3 バイアス・1/4 デューティ出力波形例 V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss COM0 COM1 COM2 V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss V3 V2 V1 V0=Vss COM3 SEGn SEGn+1 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM0とSEGn の電位差 COM1とSEGn の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM2とSEGn の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM3とSEGn の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM0とSEGn+1 の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM1とSEGn+1 の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM2とSEGn+1 の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) COM3とSEGn+1 の電位差 V3(ON) V2 V1 V0=Vss -V1 -V2 -V3(ON) 1フレーム 1周期 V0~V3:V0~V3端子の電圧値 470 第 20 章 LCD コントローラ / ドライバ ■ LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) 図 20.6-7 LCD パネルの表示データ例 7903 7902 7901 7900 7900 471 第 20 章 LCD コントローラ / ドライバ 472 第 21 章 時計クロック出力 MB90800 シリーズの時計クロック出力の機能と動 作について説明します。 21.1 時計クロック出力回路の概要 21.2 時計クロック出力回路の構成 21.3 時計クロック出力制御レジスタ (TMCS) 473 第 21 章 時計クロック出力 21.1 時計クロック出力回路の概要 時計クロック出力回路は , 発振クロックをタイムベースタイマにて分周し , 設定され た分周クロックを外部へ出力するものです。 発振クロックの 32/64/128/256 分周より設定できます。 ■ 時計クロック出力回路 時計クロック出力回路は , リセットおよびストップモードにおいては無効となります。 PLL クロックモード , メインクロックモード , スリープモード , サブクロックモード時 に有効です。 表 21.1-1 時計クロック出力可能モード PLL クロック メインクロック モード モード 動作状態 ○ ○ スリープ モード サブクロック モード ストップ モード リセット ○ ○ × × <注意事項> 時計クロック出力回路を使用中にタイムベースタイマがクリアされた場合は , クロック出 力が正常に行えません。 タイムベースタイマのクリア条件は , 「第 10 章 タイムベースタイマ」を参照してくださ い。 474 第 21 章 時計クロック出力 時計クロック出力回路の構成 21.2 時計クロック出力回路は , 以下のブロックで構成されています。 ・時計クロック選択回路 ・時計クロック出力制御レジスタ (TMCS) ■ 時計クロック出力回路のブロックダイヤグラム 図 21.2-1 時計クロック出力回路のブロックダイヤグラム 時計 クロック選択回路 X0 セレクタ 時計クロック出力 発振回路 X1 タイムベース タイマ 2 分周回路 475 第 21 章 時計クロック出力 21.3 時計クロック出力制御レジスタ (TMCS) 時計クロック出力制御レジスタ (TMCS) は , 時計クロック分周比の設定を行うレジ スタです。 ■ 時計クロック出力制御レジスタ (TMCS) 図 21.3-1 時計クロック出力制御レジスタ (TMCS) bit アドレス 0000AFH 15 14 13 12 11 10 9 8 初期値 - - - - - TEN TS1 TS0 XXXXX000B - - - - - R/W R/W R/W TS1 TS0 0 0 1 1 0 1 0 1 時計クロック分周比設定 ビット 32 分周 64 分周 128 分周 256 分周 HCLK=6.25MHz 時の出力 周期 5.12 s 10.24 s 20.48 s 40.96 s TEN 時計クロック出力許可ビット 0 出力禁止 1 出力許可 R/W:リード/ライト可能 -:未定義ビット :初期値 HCLK:発振クロック周波数 表 21.3-1 時計クロック出力制御レジスタ (TMCS) の各ビットの機能説明 ビット名 476 機能 bit15 ∼ bit11 −: 未定義ビット ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 bit10 TEN:時計クロック 出力許可ビット 時計クロック出力許可ビットです。本機能を使用する場合は , 必ず ADER0 でポートとし , DDR でポートを出力設定としてく ださい。 bit9, bit8 TS1, TS0: 時計クロック 分周比設定ビット TS1, TS0 を設定し , ポートを出力とすることで時計クロック用 のクロックを出力できます。 第 21 章 時計クロック出力 <注意事項> TEN 出力許可時の 1 サイクル目の出力波形は , 起動がタイムベースタイマと非同期で行わ れるため , 実設定出力波形と異なる可能性があります。 時計クロック出力制御レジスタ (TMCS) は , INC/DEC 命令などリードモディファイライト (RMW) 系命令は使用できません。 477 第 21 章 時計クロック出力 478 第 22 章 遅延割込み発生モジュール MB90800 シリーズの遅延割込み発生モジュールの 機能と動作について説明します。 22.1 遅延割込み発生モジュールの概要 22.2 遅延割込み要因発生 / 解除レジスタ (DIRR) 22.3 遅延割込み発生モジュールの動作 22.4 遅延割込み発生モジュールの使用上の注意 479 第 22 章 遅延割込み発生モジュール 22.1 遅延割込み発生モジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込み要求を出力します。遅延割 込み発生モジュールを使用すると , ソフトウェアで MB90800 シリーズ CPU に対し , タスク切換えのための割込み要求の出力および解除を行うことができます。 ■ 遅延割込み発生モジュールのブロックダイヤグラム 図 22.1-1 遅延割込み発生モジュールのブロックダイヤグラム 内部データバス 遅延割込み要因発生/解除デコーダ 要因ラッチ 480 第 22 章 遅延割込み発生モジュール 遅延割込み要因発生 / 解除レジスタ (DIRR) 22.2 遅延割込み要因発生 / 解除レジスタ (DIRR) について説明します。 ■ 遅延割込み要因発生 / 解除レジスタ (DIRR) 図 22.2-1 遅延割込み要因発生 / 解除レジスタ (DIRR) bit 15 14 13 12 11 10 9 アドレス − − − − − − − 8 R0 00009FH − − − − − − − R/W 初期値 -------0B R/W :リード / ライト可能 − :未定義ビット 表 22.2-1 遅延割込み要因 / 解除レジスタ (DIRR) の各ビットの機能説明 ビット名 機能 bit15 ∼ bit9 −: 未定義ビット ・読出しを行った場合は , 不定値となります。 ・設定した値は , 動作に影響しません。 bit8 R0: 遅延割込み 要求出力ビット ・遅延割込み要求の発生 / 解除を設定します。 ・"1" を設定した場合は , 遅延割込みの要求を出力します。 ・"0" を設定した場合は , 遅延割込み要求をクリアします。 ・リセットを設定した場合は , 割込み要因解除状態 ( "0" にクリア ) になります。 481 第 22 章 遅延割込み発生モジュール 22.3 遅延割込み発生モジュールの動作 ソフトウェアにて , 遅延割込み要因 / 解除レジスタ (DIRR) の遅延割込み要求出力 ビット (R0) に "1" を設定した場合は , 割込みコントローラに遅延割込み要求を出力 します。 ■ 遅延割込み発生モジュールの動作 ソフトウェアにて , 遅延割込み要因 / 解除レジスタ (DIRR) の遅延割込み要求出力ビッ ト (R0) に "1" を設定した場合は , 割込みコントローラに割込み要求を出力します。遅 延割込み以外の割込み要求が遅延割込みより優先順位が低い , あるいは遅延割込み以 外の割込み要求がない場合に , 割込みコントローラは CPU に対して割込み要求を出力 します。CPU はプロセッサステータスレジスタ (PS) 内のインタラプトレベルマスクレ ジスタ (ILM)と割込み要求レベルを比較し, 割込み要求レベルがインタラプトレベルマ スクレジスタ (ILM) より強い場合には , 現在実行中の命令が終了すると , ハードウェア 割込み処理マイクロプログラムを起動し , 遅延割込み処理ルーチンを実行します。割込 み処理ルーチン内で遅延割込み要因 / 解除レジスタ (DIRR) の遅延割込み要求出力ビッ ト (R0) に "0"を設定した場合 , 遅延割込み要因をクリアし , タスクの切換えを行います。 図 22.3-1 遅延割込み発生モジュールの動作 遅延割込み発生モジュール 割込みコントローラ 書込み ほかの要求 IL ICRyy CMP DIRR ICRxx CMP ILM INTA DIRR:遅延割込み要因発生/解除レジスタ IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット ILM :PS内のインタラプトレベルマスクレジスタ CMP :比較器 ICR :割込み制御レジスタ 482 第 22 章 遅延割込み発生モジュール 22.4 遅延割込み発生モジュールの使用上の注意 遅延割込み発生モジュールを使用する場合の注意点を示します。 ■ 遅延割込み発生モジュール使用上の注意 ● 遅延割込み要求 割込み処理ルーチンで割込み処理を終了した後 , または割込み処理ルーチンを実行し ている間に遅延割込み発生要因 / 解除レジスタ (DIRR) の遅延割込み要求出力ビット (R0) に "0" を設定していない場合は , 割込み処理から復帰できません。 483 第 22 章 遅延割込み発生モジュール 484 第 23 章 アドレス一致検出機能 MB90800 シリーズのアドレス一致検出機能と動作 について説明します。 23.1 アドレス一致検出機能の概要 23.2 アドレス一致検出機能のレジスタ 23.3 アドレス一致検出機能の動作説明 23.4 アドレス一致検出機能の使用例 485 第 23 章 アドレス一致検出機能 23.1 アドレス一致検出機能の概要 プログラムアドレスが , アドレス一致検出レジスタに設定された値と一致した場合 に , CPU に読み出される命令コードを INT9 命令のコードに置き換えます。INT #9 割込みルーチンで処理を行うことにより , プログラムのパッチ当て機能を実現でき ます。 ■ アドレス一致検出機能のブロックダイヤグラム 図 23.1-1 アドレス一致検出機能のブロックダイヤグラム 内部データバス 486 比較 アドレスラッチ アドレス検出レジスタ 許可ビット 検出ビット セット リセット MB90800 シリーズ CPUコア 第 23 章 アドレス一致検出機能 23.2 アドレス一致検出機能のレジスタ アドレス一致検出機能のレジスタ一覧を示します。 ■ アドレス一致検出機能のレジスタ一覧 図 23.2-1 アドレス一致検出機能のレジスタ一覧 bit23...........................................................................................................................................................bit0 PADR0( プログラムアドレス検出レジスタ 上位 / 中位 / 下位 ) PADR1( プログラムアドレス検出レジスタ 上位 / 中位 / 下位 ) PACSR( プログラムアドレス検出 コントロールステータスレジスタ ) 487 第 23 章 アドレス一致検出機能 23.2.1 プログラムアドレス検出レジスタ (PADR0/PADR1) プログラムアドレス検出レジスタ (PADR0/PADR1) は , 比較対象となるアドレスを 設定するレジスタです。 ■ プログラムアドレス検出レジスタ (PADR0/PADR1) 図 23.2-2 プログラムアドレス検出レジスタ (PADR0/PADR1) bit23 PADR0 bit16 bit15 上位 R/W アドレス bit8 bit7 中位 R/W bit0 初期値 XXXXXXH bit0 初期値 XXXXXXH 下位 R/W 001FF0H ∼ 001FF2H bit23 PADR1 bit16 bit15 上位 R/W アドレス bit8 bit7 中位 R/W 下位 R/W 001FF3H ∼ 001FF5H R/W:リード / ライト可能 X :不定 プログラムアドレス検出コントロールステータスレジスタ (PACSR) の対応する割込み 許可ビットに "1" が設定されている場合は , プログラムアドレス検出レジスタ (PADR0/ PADR1) に設定された値とプログラムアドレスを比較します。プログラムアドレス検出 レジスタ (PADR0/PADR1) 値とプログラムアドレス値 (PC 値 ) が一致した場合は , 対応 する割込みフラグビットに "1" がセットされ , INT9 命令を出力します。割込み許可ビッ トに "0" が設定されている場合は , INT9 命令を出力しません。 プログラムアドレス検出コントロールステータスレジスタ (PACSR) との対応は以下の とおりとなります。 488 アドレス検出レジスタ 割込み要求許可ビット 割込み要求フラグビット PADR0 AD0E AD0D PADR1 AD1E AD1D 第 23 章 アドレス一致検出機能 プログラムアドレス検出コントロールステータス レジスタ (PACSR) 23.2.2 プログラムアドレス検出コントロールステータスレジスタ (PACSR) は , アドレス一 致検出機能の割込み制御を行うレジスタです。 ■ プログラムアドレス検出コントロールステータスレジスタ (PACSR) 図 23.2-3 プログラムアドレス検出コントロールステータスレジスタ (PACSR) bit 7 6 5 4 アドレス 予約 予約 予約 予約 3 AD1E 2 AD1D 1 AD0E 0 AD0D 00009EH − − − − R/W R/W R/W R/W 初期値 00000000B R/W:リード / ライト可能 − :未定義ビット 表 23.2-1 プログラムアドレス検出コントロールステータスレジスタ (PACSR) の各ビットの機能説明 ビット名 bit7 ∼ bit4 bit3 bit2 bit1 bit0 機能 予約 : 予約ビット 必ず "0" を設定してください。 AD1E: PADR1 の割込み 要求許可ビット PADR1 の割込みを許可するビットです。 "1" を設定した場合は , プログラムアドレス検出レジスタ (PADR1) とプログラムアドレスの比較を行い , プログラムアドレス検出レ ジスタ (PADR1) とプログラムアドレスが一致すると , PADR1 の割 込みフラグビット (AD1D) に "1" がセットされ , INT9 命令を出力 します。 AD1D: PADR1 の割込み 要求フラグビット PADR1 の割込み要求のフラグビットです。 プログラムアドレス検出レジスタ (PADR1) とプログラムアドレス の比較で 一致を検出すると , "1" がセットされます。 PADR1 の要求許可ビット (AD1E) に "1" を設定している場合に , "1" がセットされると , INT9 命令を出力します。 "0" を設定した場合は , "0" にクリアされます。 "1" を設定した場合は , 動作に影響しません。 AD0E: PADR0 の割込み 要求許可ビット PADR0 の割込みを許可するビットです。 "1" を設定した場合は , プログラムアドレス検出レジスタ (PADR0) とプログラムアドレスの比較を行い , プログラムアドレス検出レ ジスタ (PADR0) とプログラムアドレスが一致すると , PADR0 の割 込みフラグビット (AD0D) に "1" がセットされ , INT9 命令を出力 します。 AD0D: PADR0 の割込み 要求フラグビット PADR0 の割込み要求のフラグビットです。 プログラムアドレス検出レジスタ (PADR1) とプログラムアドレス の比較で一致を検出すると , "1" がセットされます。 PAD0 の要求許可ビット (AD0E) に "1" を設定している場合に , "1" がセットされると , INT9 命令を出力します。 "0" を設定した場合は , "0" にクリアされます。 "1" を設定した場合は , 動作に影響しません。 489 第 23 章 アドレス一致検出機能 23.3 アドレス一致検出機能の動作説明 アドレス一致検出機能の動作について説明します。 ■ アドレス一致検出機能の動作 プログラムアドレスがアドレス検出レジスタに設定された値と一致した場合 , CPU に 読み出される命令コードを INT9 命令のコード ("01H") に置き換えますので , CPU が設 定されたプログラムアドレスの命令を実行すると , INT9 命令を実行します。INT #9 割 込みルーチンで処理を行うことにより , プログラムのパッチ当て機能を実現できます。 プログラムアドレス検出レジスタ (PADR0/PADR1) は 2 本あり , レジスタごとに割込み 許可ビット (AD1E, AD0E) と割込みフラグビット (AD1D, AD0D) があります。割込み許 可ビット (AD1E, AD0E) に "1" が設定されている場合は , アドレス検出レジスタに設定 された値とプログラムアドレスを比較し, 一致した場合は, 割込みフラグビット(AD1D, AD0D) に "1" がセットされ , CPU に読み出される命令コードを INT9 命令のコードに置 き換えます。割込みフラグビット (AD1D, AD0D) は "0" を設定することにより "0" にク リアされます。 <注意事項> アドレス検出レジスタに, 命令の1バイト目以降のプログラムアドレスを設定した場合は, アドレス一致検出機能が正しく動作しません。また , アドレス検出レジスタの変更は , 割 込み許可ビットに "0" を設定してから行ってください。割込み許可ビットに "1" が設定さ れている場合にアドレス検出レジスタの設定を行うと , 設定中に誤ってアドレス検出を 行ってしまうことがあります。 490 第 23 章 アドレス一致検出機能 23.4 アドレス一致検出機能の使用例 アドレス一致検出機能の使用例を示します。 ■ システム構成図 図 23.4-1 システム構成例 MCU MB90800 シリーズ E2PROM SIN ■ E2PROM メモリマップ 表 23.4-1 E2PROM メモリマップ アドレス 意味 0000H パッチプログラム No.0 バイト数 (0 の場合プログラムミスなし ) 0001H プログラムアドレス No.0 bit7 ∼ bit0 0002H プログラムアドレス No.0 bit15 ∼ bit8 0003H プログラムアドレス No.0 bit24 ∼ bit16 0004H パッチプログラム No.1 バイト数 (0 の場合プログラムミスなし ) 0005H プログラムアドレス No.1 bit7 ∼ bit0 0006H プログラムアドレス No.1 bit15 ∼ bit8 0007H プログラムアドレス No.1 bit24 ∼ bit16 0010H ∼ パッチプログラム No.0 本体 ■ 初期状態 E2PROM の全ビットは "0" です。 491 第 23 章 アドレス一致検出機能 ■ INT9 割込み 割込みルーチンでは , どのアドレス検出要因で割込み要求出力があったかをプログラ ムアドレス検出コントロールステータスレジスタ (PACSR) の割込みフラグビット (AD1D, AD0D) で参照し , 割込み要求が出力されたプログラムへ分岐します。プログラ ムへ分岐した場合は , 割込みでスタックされた情報は無効となり , 割込みフラグビット (AD1D, AD0D) を "0" にクリアします。 図 23.4-2 プログラムパッチ処理例 FFFFFFH ③ ROM ① PC=発生アドレス 異常プログラム 外付けE2PROM プログラムパッチ用 レジスタセット ○ プログラムバイト数 ○ 割込み発生アドレス ○ 修正プログラム UARTを使用してデータ転送 RAM ② 修正プログラム 000000H 492 第 23 章 アドレス一致検出機能 図 23.4-3 プログラムパッチ処理フロー リセット INT9 E2PROMの"0000 "0000H"="00H" H"を読み出す "0000H"(E2PROM) パッチプログラムへ JPM 000400H "0000H"≠ "00H" アドレスを読み出す "0001H"~ "0003H"(E2PROM) ↓MOV PADR0(MCU) パッチプログラム実行 "000400H"~"000480H" パッチプログラムを読み出す パッチプログラム終了 JMP FF0050H "0010H"~ "0090H"(E2PROM) ↓MOV "000400H"~"000480H"(MCU) パッチ処理を許可 MOV PACSR,#02H 通常プログラム実行 NO PC=PADR0 YES INT9 FFFFH 0090H 0010H 0003H 0002H 0001H 0000H E2PROM FFFFFFH ROM FF8050H FF8000H 異常プログラム FF0000H パッチプログラム 001100H RAM領域 プログラムアドレス下位:50H プログラムアドレス中位:80H プログラムアドレス下位:FFH パッチプログラムバイト数:80H スタック領域 RAM 000480H 000400H 000100H パッチプログラム RAM/レジスタ領域 I/O領域 000000H 493 第 23 章 アドレス一致検出機能 494 第 24 章 ROM ミラー機能選択 モジュール MB90800 シリーズの ROM ミラー機能選択モ ジュールの機能と動作について説明します。 24.1 ROM ミラー機能選択モジュールの概要 24.2 ROM ミラー機能選択レジスタ (ROMM) 495 第 24 章 ROM ミラー機能選択 モジュール 24.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールは , FF バンクの ROM データを ROM 機能選択モ ジュールのレジスタを設定することにより 00 バンクから参照できます。 ROM ミラー機能を使用すると , 対象領域 ("FF8000H" ∼ "FFFFFFH") から I/O 領域 , RAM 領域へのアクセスがバンクをまたがずにできます。 ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 24.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム ROMミラー機能選択レジスタ 内部データバス アドレス アドレス領域 FFバンク 00バンク データ ROM 496 第 24 章 ROM ミラー機能選択 モジュール ROM ミラー機能選択レジスタ (ROMM) 24.2 ROM ミラー機能選択モジュールのレジスタについて説明します。 ■ ROM ミラー機能選択レジスタ (ROMM) 図 24.2-1 ROM ミラー機能選択レジスタ (ROMM) bit 15 14 13 12 11 10 9 アドレス − − − − − − − 8 MI 00006FH − − − − − − − W 初期値 XXXXXXX1B W :ライトオンリ X :不定 − :未定義ビット <注意事項> ROM ミラー機能選択レジスタはアドレス "008000H" ∼ "00FFFFH" 番地をアクセスしてい る場合には設定しないでください。 表 24.2-1 ROM ミラー機能選択レジスタ (ROMM) の機能説明 ビット名 機能 bit15 ∼ bit9 −: 未定義ビット 読出しを行った場合は , 不定値となります。 設定した値は , 動作に影響しません。 bit8 MI: ROM ミラー 機能設定 ビット ROM ミラー機能を設定するビットです。 "1" を設定した場合は , FF バンクの ROM のデータを 00 バンクか ら読み出すことができます。 "0" を設定した場合は , FF バンクの ROM のデータを 00 バンクか ら読み出すことはできません。 <注意事項> ROM ミラー機能では , "008000H" ∼ "00FFFFH" 番地を "FF8000H" ∼ "FFFFFH" 番地から 参照しますので , "FF0000H" ∼ "FF7FFFH" 番地は ROM のミラー機能を設定しても参照で きません。 MB90803/S MB90F803/S MB90F809/S MB90F804-101/201 MB90V800-101/ 201 アドレス 1 FE0000H FD0000H FC0000H FC0000H アドレス 2 001100H F002900H 004100H 007100H 497 第 24 章 ROM ミラー機能選択 モジュール 図 24.2-2 メモリ空間 アドレス FFFFFFH FF4000H ROM領域 ROM領域 アドレス1 010000H 004000H アドレス2 000100H 0000C0H 000000H 498 ROMミラー領域 参照 可能 RAM領域 :内部領域 I/O領域 I/O領域 :外部領域 MI=1の場合 MI=0の場合 RAM領域 第 25 章 2 M ビットフラッシュメモリ MB90800 シリーズの 2 M ビットフラッシュメモリ の機能や動作について説明します。 25.1 2 M ビットフラッシュメモリの概要 25.2 フラッシュメモリのレジスタとセクタ構成 25.3 フラッシュメモリ制御ステータスレジスタ (FMCS) 25.4 フラッシュメモリ自動アルゴリズム起動方法 25.5 フラッシュメモリ書込み / 消去の詳細説明 499 第 25 章 2 M ビットフラッシュメモリ 25.1 2 M ビットフラッシュメモリの概要 2 M ビットフラッシュメモリは , CPU メモリマップ上の "FCH" ∼ "FFH" バンクに配 置され , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU からのリードアクセスおよびプログラムアクセスが可能です。フラッシュメモ リへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの 命令動作で行えます。このため , 内蔵 CPU の制御による実装状態での書換えが可能 となり , プログラムおよびデータの変更を効率よく行えます。 ■ フラッシュメモリへのデータ書込み / 消去の方法 フラッシュメモリへのデータ書込み / 消去の方法には , 下記の 3 とおりの方法がありま す。 • パラレルライタ ( 株式会社ミナトエレクトロニクス製 MODEL 1890A) • シリアル専用ライタ ( 横河ディジタルコンピュータ株式会社製 AF220) • プログラム実行による書込み / 消去 ここでは , 「プログラム実行による書込み / 消去」について説明します。 ■ 2 M ビットフラッシュメモリの特長 • 256 K ワード× 8/128K ワード× 16 ビット • (64 K × 3 +32 K × 2 +8 K × 2 +1 K) セクタ構成 • 自動プログラムアルゴリズム (Embedded Algorithm:MBM29F400TA と同様 ) • 消去一時停止 / 消去再開機能の搭載 • CPU 割込みによる書込み / 消去の完了検出 • JEDEC 標準型コマンドと互換 • セクタごとの消去が可能 ( セクタ組合せ自由 ) • 書込み / 消去回数 1 万回保証 ■ フラッシュメモリ書込み / 消去の方法 フラッシュメモリは , 書込みと読出しを同時に行うことはできません。フラッシュメモ リにデータ書込み / 消去動作を行う場合は , フラッシュメモリ上にあるプログラムを いったん RAM にコピーし , RAM にコピーされたプログラムを実行することにより , フ ラッシュメモリへの書込み動作を行うことが可能となります。 詳細は , 「25.5.2 フラッシュメモリへデータを書き込む」を参照してください。 500 第 25 章 2 M ビットフラッシュメモリ フラッシュメモリのレジスタとセクタ構成 25.2 図 25.2-1 に , フラッシュメモリ制御ステータスレジスタ (FMCS) を示します。 ■ フラッシュメモリのレジスタ ● フラッシュメモリ制御ステータスレジスタ (FMCS) 図 25.2-1 フラッシュメモリ制御ステータスレジスタ (FMCS) bit 7 6 5 4 3 2 1 0 アドレス 0000AEH INTE R/W RDYINT WE R/W RDY R 予約 W 予約 R/W 予約 W 予約 R/W R/W 初期値 00000000B R/W :リード / ライト可能 R :リードオンリ W :ライトオンリ ■ セクタ構成 図 25.2-2 に , 2 M ビットフラッシュメモリのセクタ構成を示します。図中アドレスは , 各セクタの上位アドレスと下位アドレスを示します。 図 25.2-2 2 M ビットフラッシュメモリのセクタ構成 フラッシュメモリ CPUアドレス 上位 SA6(16Kバイト) 下位 上位 SA5(8Kバイト) 下位 上位 SA4(8Kバイト) 下位 上位 SA3(32Kバイト) 下位 上位 SA2(64Kバイト) 下位 上位 SA1(64Kバイト) 下位 上位 SA0(64Kバイト) 下位 FFFFFFH FFC000H FFBFFFH FFA000H FF9FFFH FF8000H FF7FFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H FCFFFFH FC0000H 501 第 25 章 2 M ビットフラッシュメモリ 25.3 フラッシュメモリ制御ステータスレジスタ (FMCS) フラッシュメモリ制御ステータスレジスタ (FMCS) の機能を以下に示します。 ■ フラッシュメモリ制御ステータスレジスタ (FMCS) 図 25.3-1 フラッシュメモリ制御ステータスレジスタ (FMCS) bit アドレス 0000AEH 7 6 5 4 3 2 1 0 初期値 INTE RDYINT WE RDY 予約 予約 予約 予約 00000000B R/W R/W R/W R W R/W W R/W 予約ビット 予約 必ず"0"を設定してください。 RDY 書込み/消去動作実行中 1 書込み/消去動作終了(書込み/消去動作許可) WE 書込み/消去動作禁止 1 書込み/消去動作許可 書込み/消去動作終了フラグビット 0 書込み/消去動作実行中 1 書込み/消去動作終了(割込み要求発生) INTE 502 書込み/消去動作許可ビット 0 RDYINT R/W :リード/ライト可能 R :リードオンリ W :ライトオンリ :初期値 書込み/消去ステータスビット 0 割込み要求許可ビット 0 書込み/消去終了での割込み禁止 1 書込み/消去終了での割込み許可 第 25 章 2 M ビットフラッシュメモリ 表 25.3-1 フラッシュメモリ制御ステータスレジスタ (FMCS) の各ビットの機能説明 ビット名 機能 INTE: 割込み要求 許可ビット ・フラッシュメモリの書込み / 消去動作の終了により , CPU への割 込み要求出力を許可するビットです。 ・"1" を設定した場合に , RDYINT ビットに "1" がセットされると , 割込み要求が出力されます。 ・"0" を設定した場合に , RDYINT ビットに "1" がセットされても , 割込み要求は出力されません。 RDYINT: 書込み / 消去 動作終了 フラグビット ・フラッシュメモリの書込み / 消去動作が終了すると , "1" がセット され , フラッシュメモリへの書込み / 消去動作が可能になります。 ・"0" を設定した場合は , "0" にクリアされ , フラッシュメモリへの書 込み / 消去動作はできません。 ・"1" を設定した場合は , 動作に影響しません。 ・フラッシュメモリ自動アルゴリズム ( 詳細は , 「25.4 フラッシュ メモリ自動アルゴリズム起動方法」を参照 ) 終了タイミングでも , "1" がセットされます。 ・リードモディファイライト (RMW) 系命令使用時は , 必ず "1" が読 み出されます。 bit5 WE: 書込み / 消去 動作許可 ビット ・"1" を設定した場合は , FF バンクへの書込み / 消去コマンドシーケ ンス ( 詳細は , 「25.4 フラッシュメモリ自動アルゴリズム起動方 法」を参照 ) を実行した後 , フラッシュメモリへの書込み / 消去が できます。 ・"0" を設定した場合は , FF バンクへの書込み / 消去コマンドシーケ ンスを実行しても , 書込み / 消去の信号は発生されません。 ・初期値は "0" が設定され , 動作が禁止されていますので , フラッ シュメモリの書込み / 消去のコマンドを起動する前に必ず "1" を設 定して動作を許可してください。 ( 注意事項 ) 書込み / 消去動作を行わない場合は , "0" を設定してく ださい。 bit4 RDY: 書込み / 消去 ステータス ビット ・"0" にクリアされている間は , フラッシュメモリへの書込み / 消去 動作はできません。 ・"0" にクリアされている場合でも , 読出し / リセットコマンド , セ クタ消去一時停止コマンドは受け付けられます。 ・書込み / 消去動作を終了すると , "1" がセットされます。 bit3 ∼ bit0 予約: 予約ビット 必ず "0" を設定してください。 bit7 bit6 503 第 25 章 2 M ビットフラッシュメモリ <注意事項> 動作終了フラグビット (RDYINT) と書込み / 消去ステータスビット (RDY) は同時に変化し ませんので , 動作終了フラグビット (RDYINT) か書込み / 消去ステータスビット (RDY) の いずれかで書込み / 消去終了判定をするようプログラムを作成してください。 自動アルゴリズム 終了タイミング RDYINTビット RDYビット 1マシンサイクル 504 第 25 章 2 M ビットフラッシュメモリ 25.4 フラッシュメモリ自動アルゴリズム起動方法 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込み , チップ消去およびセクタ消去の 4 種類があり , セクタ消去については一時停 止と再開の制御が可能です。 ■ コマンドシーケンス表 表 25.4-1 に , コマンドシーケンス表を示します。コマンドレジスタに書き込むデータ は , すべてバイト長ですが , ワードアクセスで設定してください。ワードアクセスで設 定した場合の上位バイトのデータは無視されます。 表 25.4-1 コマンドシーケンス表 コマンド シーケンス バス ライト アクセス 1st バスライト サイクル アドレス 2nd バスライト サイクル 3rd バスライト サイクル データ アドレス データ アドレス 4th バスライト サイクル 5th バスライト サイクル データ アドレス データ 6th バスライト サイクル データ アドレス アドレス データ − − − − − − − XXF0H RA RD − − − − PA (even) PD (word) − − − − 1 FxXXXXH XXF0H 4 FxAAAAH XXAAH Fx5554H XX55H FxAAAAH 書込み プログラム 4 FxAAAAH XXAAH Fx5554H XX55H FxAAAAH XXA0H チップ消去 6 FxAAAAH XXAAH Fx5554H XX55H FxAAAAH XX80H FxAAAAH XXAAH Fx5554H XX55H FxAAAAH XX10H セクタ消去 6 FxAAAAH XXAAH Fx5554H XX55H FxAAAAH XX80H FxAAAAH XXAAH Fx5554H XX55H 読出し / リセット * − − − SA (even) セクタ消去一時停止 アドレス "FXXXXXH" データ (XXB0H) の入力で , セクタ消去中の消去一時停止 セクタ消去再開 アドレス "FXXXXXH" データ (XX30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始 XX30H *:2 種類の読出し / リセットコマンドは , フラッシュメモリを読出しモードにリセットできます。 <注意事項> • 表中のアドレス Fx は , FC ∼ FF を意味します。アドレスを操作する場合はアクセス対 象バンクの値としてください • 表中のアドレスは , CPU メモリマップ上の値です。"X" は任意の値です。 • RA: 読出しアドレス • PA: 書込みアドレス , 偶数アドレスが指定可能です。 • SA: セクタアドレス , 詳細は , 「25.2 フラッシュメモリのレジスタとセクタ構成」を参 照してください。偶数アドレスが指定可能です。 • RD: 読出しデータ • PD: 書込みデータ , ワードデータが指定可能です。 505 第 25 章 2 M ビットフラッシュメモリ 25.5 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを設定し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開の動作 を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムは , 読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , 消去再開の動作がコマンドシーケンス ( 詳細は ,「23.4 アドレス一致検出機 能の使用例」を参照 ) を CPU からフラッシュメモリへ書き込むことにより起動できま す。CPU からフラッシュメモリへの書込みは , 必ず続けて行ってください。正常終了 した後は , 読出し / リセット状態に戻ります。 読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去 再開の動作の詳細については , 下記の順に説明します。 • 読出し / リセット状態にする • データを書き込む • 全データを消去する ( チップ全消去 ) • 任意のデータを消去する ( セクタ消去 ) • セクタ消去を一時停止する • セクタ消去を再開する 506 第 25 章 2 M ビットフラッシュメモリ 25.5.1 フラッシュメモリを読出し / リセット状態にする 読出し / リセットコマンドを実行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリを読出し / リセット状態にする フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 ( 表 25.41 を参照)の読出し/リセットコマンドをCPUからフラッシュメモリへ続けて送ります。 読出し / リセットコマンドには , 2 とおりのコマンドシーケンスがありますが違いはあ りません。 読出し / リセット状態は , フラッシュメモリの初期状態ですので , 電源投入直後 , コマ ンドが正常終了した場合は常に読出し / リセット状態になります。読出し / リセット状 態は , コマンドの入力待ち状態となります。 読出し / リセット状態では , フラッシュメモリへリードアクセスを行うことにより , データを読み出すことができます。マスク ROM と同様に , CPU からのプログラムアク セスが可能です。フラッシュメモリへリードアクセスを行う場合は , 読出し / リセット コマンドは必要ありません コマンドが正常に終了しなかった場合は , 自動アルゴリズムを初期化するために , 読出 し / リセットコマンドを使用してください。 507 第 25 章 2 M ビットフラッシュメモリ 25.5.2 フラッシュメモリへデータを書き込む 書込みコマンドを実行し , フラッシュメモリにデータ書込みを行う手順について説 明します。図 25.5-1 にフラッシュメモリ書込み手順の例を示します。 ■ フラッシュメモリへデータを書き込む フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表 ( 表 25.4-1 を参照 ) の書込みコマンドを CPU からフラッシュメモリへ続けて送 ります。4 サイクル後に目的のアドレスへのデータライトが終了すると , 自動アルゴリ ズムが起動され自動書込みを開始します。 ■ アドレス指定方法 書込みは , アドレスの順番に関係なく , また , セクタの境界を超えても可能ですが , 1 回 の書込みコマンドにて書き込まれるデータは 1 ワードです。 ■ データ書込み上の注意 書込みによって , ビットデータを "0" から "1" に戻すことはできません。ビットデータ "0" にビットデータ "1" を書き込んだ場合は , データポーリングアルゴリズム , トグル 動作が終了せず , フラッシュメモリ素子が不良と判定され , 見かけ上ビットデータに "1" が書き込まれたようになります。読出し / リセット状態でデータを読み出すとビッ トデータは "0" です。ビットデータを "0" から "1" に戻すには消去動作を行います。 自動書込み実行中は , すべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書込みアドレスのデータは保証されません。 図 25.5-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS:WE(ビット5) フラッシュメモリ書込み許可 書込みコマンドシーケンス ①FXAAAAH←XXAAH ②FX5554H←XX55H ③FXAAAAH←XXA0H ④書込みアドレス←書込みデータ 次アドレス 書込み/消去動作終了 フラグビット "0" "0"出力が長い 書込みエラー RDYINT "1" 最終アドレス YES FMCS:WE(ビット5) フラッシュメモリ書込み禁止 書込み開始 508 NO 第 25 章 2 M ビットフラッシュメモリ 25.5.3 フラッシュメモリの全データを消去する ( チップ消去 ) チップ消去コマンドを実行し , フラッシュメモリの全データ消去を行う手順につい て説明します。 ■ フラッシュメモリのデータを消去する ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには, コマンドシーケンス表(表 25.41 を参照 ) のチップ消去コマンドを CPU からフラッシュメモリへ送ります。 チップ消去コマンドは , 6 サイクル目の書込みが完了した時点でチップ消去動作を開始 します。チップ消去では , 消去を行う前にフラッシュメモリへ書込みを行う必要はあり ません。自動消去機能処理中に , フラッシュメモリはすべてのビットデータを消去する 前に "0" を書き込んで検証を行います。 509 第 25 章 2 M ビットフラッシュメモリ 25.5.4 フラッシュメモリの任意のデータを消去する ( セクタ 消去 ) セクタ消去コマンドを実行し , フラッシュメモリの任意のデータを消去する ( セクタ 消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同 時に指定することも可能です。図 25.5-2 に , フラッシュメモリのセクタ消去手順の 例を示します。 ■ フラッシュメモリの任意のデータを消去する ( セクタ消去 ) フラッシュメモリの任意のセクタを消去するためには, コマンドシーケンス表(表 25.41 を参照 ) のセクタ消去コマンドを CPU からフラッシュメモリへ送ります。 ■ セクタ指定方法 セクタ消去コマンドは , 6 サイクル目に目的のセクタ内のアクセス可能な任意の偶数ア ドレスへセクタ消去コード ("30H") を書き込むことにより , 50 μs のセクタ消去ウェイ トを開始します。複数のセクタ消去を行う場合は , 引き続き消去する目的のセクタアド レスに消去コード ("30H") を書き込みます。 ■ 複数のセクタを指定する場合の注意 最後のセクタ消去コードの書込みから 50 μs のセクタ消去ウェイト期間終了後に , 消去 を開始します。複数のセクタを同時に消去する場合は , 消去セクタのアドレスと消去 コード ( コマンドシーケンス 6 サイクル目 ) を 50 μs 以内に入力してください。50 μs 以 上では受け付けられません。 510 第 25 章 2 M ビットフラッシュメモリ 図 25.5-2 フラッシュメモリのセクタ消去手順の例 消去開始 FMCS:WE(ビット5) フラッシュメモリ消去許可 消去コマンドシーケンス ①FXAAAAH←XXAAH ②FX5554H←XX55H ③FXAAAAH←XX80H ④FXAAAAH←XXAAH ⑤FX5554H←XX55H ⑥消去セクタコード入力(30H) NO 0 書込み/消去動作終了 フラグビット RDYINT "0"出力が長い 消去エラー 1 最終セクタ 次セクタ NO YES FMCS:WE(ビット5) フラッシュメモリ消去禁止 消去完了 511 第 25 章 2 M ビットフラッシュメモリ 25.5.5 フラッシュメモリのセクタ消去を一時停止する セクタ消去一時停止コマンドを設定し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタからデータを読み出すことが可 能です。 ■ セクタ消去を一時停止する フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 ( 表 25.4-1 を参照 ) のセクタ消去一時停止コマンドを CPU からフラッシュメモリに送ります。 セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク タからデータを読み出すことができます。セクタ消去一時停止状態では読出しが可能 で書込みはできません。セクタ消去一時停止コマンドは , 消去ウェイト時間を含むセク タ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 セクタ消去一時停止コマンドは , 消去一時停止コード ("B0H") を書き込むことで実行さ れます。アドレスはフラッシュメモリ内の任意のアドレスを設定します。消去一時停 止中は消去一時停止コマンドを実行しても無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , セクタ消 去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去ウェイ ト期間後のセクタ消去動作中に , 消去一時停止コマンドが入力されると , 最大 20 μs の 時間の後 , 消去一時停止状態に入ります。 セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマン ド発行後 , 20 μs 以上後に行ってください。 512 第 25 章 2 M ビットフラッシュメモリ 25.5.6 フラッシュメモリのセクタ消去を再開する セクタ消去再開コマンドを設定し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリのセクタ消去を再開する 一時停止したセクタ消去を再開させるには , コマンドシーケンス表 ( 表 25.4-1 を参照 ) のセクタ消去再開コマンドを CPU からフラッシュメモリへ送ります。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態からセクタ消去を再開するためのコマンドです。セクタ消去再開コマンドは , 消去 再開コード ("30H") の書込みを行うことで実施されますが , アドレスはフラッシュメモ リ内の任意のアドレスを設定します。 セクタ消去中のセクタ消去再開コマンドの実行は無視されます。 513 第 25 章 2 M ビットフラッシュメモリ 514 第 26 章 シリアル書込み接続例 横河ディジタルコンピュータ製 AF220 フラッシュ マイコンプログラマを用いた場合のシリアル書込 み接続例について説明します。 26.1 シリアル書込み接続の基本構成 26.2 シリアル書込み接続例 515 第 26 章 シリアル書込み接続例 26.1 シリアル書込み接続の基本構成 MB90F80x では , フラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサ ポートしています。MB90F80x 仕様について , 以下に解説します。 ■ シリアル書込み接続の基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220 フ ラッシュマイコンプログラマを使用します。 ホストインタフェースケーブル(AZ201) 汎用共通ケーブル(AZ210) RS232C AF220 フラッシュマイ コンプログラマ + メモリカード CLK 同期シリアル MB90F80x ユーザシステム スタンドアロンで動作可能 <注意事項> AF220フラッシュマイコンプログラマの機能,操作方法,接続用汎用共通ケーブル(AZ210), および コネクタにつきましては , 横河ディジタルコンピュータ株式会社へお問い合わせ ください。 516 第 26 章 シリアル書込み接続例 表 26.1-1 富士通標準シリアルオンボード書込みに使用する端子 端子 MD2, MD1, MD0 X0, X1 P65, P66 機能 機能説明 モード端子 フラッシュマイコンプログラマから書込みモードに切り換えます。 発振用端子 CPU 内部動作クロックの設定は , PLL クロック 1 逓倍となっており ますので , 発振クロック周波数が内部動作クロックとなります。シ リアルオンボード書換えを行う場合に使用する発振クロックは 1 MHz ∼ 25 MHz となります。 書込みプログラム 起動端子 P65 に "L" レベル , P66 に "H" レベルを入力してください。 ただし P66 については、MB90F803/S では使用しません。 RST リセット端子 − SI0 シリアルデータ 入力端子 SO0 シリアルデータ 出力端子 SC0 シリアルクロック 入力端子 VSS 電源電圧供給端子 書込み電圧 (3 V ± 10%) をユーザシステムから供給する場合は , フラッシュマイコンプログラマとの接続は必要ありません。 接続時にはユーザ側の電源と短絡しないようにしてください。 VCC GND 端子 フラッシュマイコンプログラマの GND と共通にしてください。 UART を CLK 同期モードとして使用します。 P65, SI0, SO0, SC0 端子をユーザシステムで使用される場合は , 図 26.1-1 に示す制御回 路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアルオ ンボード書込み中は , ユーザ回路を切り離してください。 図 26.1-1 制御回路 MB90F80x 書込み制御端子 AF220書込み制御端子 10k AF220 /TICS端子 ユーザ回路 「26.2 シリアル書込み接続例」に , 以下の 4 種類のシリアル書込み接続例を示します。 • シリアル書込み接続例 ( ユーザ電源を使用する場合 ) • シリアル書込み接続例 ( ライタから電源を供給する場合 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源を供給する場 合) 517 第 26 章 シリアル書込み接続例 表 26.1-2 AF220 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ製 ) 型格 機能 AF220 アドバンスドフラッシュマイコンプログラマ AF200 ACP AC アダプタ ( センタ ) + ( オプション ) AZ201 ホストインタフェースケーブル (PCAT 用 RS232C ケーブル ) AZ210 標準ターゲットプローブ (Type A) 長さ:1 m FF001 富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール FF001 P2 2 M バイト PC Card ( オプション ) FF001 P4 4 M バイト PC Card ( オプション ) 問い合わせ先:横河ディジタルコンピュータ株式会社 電話:042-333-6224 518 第 26 章 シリアル書込み接続例 26.2 シリアル書込み接続例 4 種類のシリアル書込み接続例を示します。 • シリアル書込み接続例 ( ユーザ電源を使用する場合 ) • シリアル書込み接続例 ( ライタから電源を供給する場合 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源を供給する場 合) ■ シリアル書込み接続例 ( ユーザ電源を使用する場合 ) 図 26.2-1 に , MB90F80x シリアル書込み接続例 ( ユーザ電源を使用する場合 ) を示しま す。モード端子はシングルチップモード (MD0=1, MD1=1, MD2=0) に設定します。 図 26.2-1 MB90F80x シリアル書込み接続例 ( ユーザ電源を使用する場合 ) ユーザシステム AF220 フラッシュマイコン コネクタ プログラマ DX10-28S TAUX3 MB90F80x (19) MD2 10k 10k MD1 10k TMODE MD0 X0 (12) 1MHz ~16MHz X1 TAUX (23) P65 10k /TICS (10) ユーザ 回路 10k /TRES (5) RST ユーザ 回路 TTXD TRXD TCK 10k (13) (27) (6) TVcc (2) GND (1,7, 8,14, 15,21, 22,28) P66(MB90F803/Sは対象外) SI0 SO0 SC0 VCC ユーザ電源 VSS 14ピン 3,4,9,11,16,17,18,20,24,25,26 ピンは開放 DX10-28:ライトアングルタイプ 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 519 第 26 章 シリアル書込み接続例 • P65, SI0, SO0, SC0 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離してください。 図 26.2-2 制御回路 MB90F80x 書込み制御端子 AF220書込み制御端子 10k AF220 /TICS端子 ユーザ回路 • AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。 520 第 26 章 シリアル書込み接続例 ■ シリアル書込み接続例 ( ライタから電源を供給する場合 ) 図 26.2-3 に , MB90F80x シリアル書込み接続例 ( ライタ電源を使用する場合 ) を示しま す。モード端子シングルチップモード (MD0=1, MD1=1, MD2=0) に設定します。 図 26.2-3 MB90F80x シリアル書込み接続例 ( ライタ電源を使用する場合 ) ユーザシステム AF220 フラッシュマイコン コネクタ プログラマ DX10-28S TAUX3 MB90F80x (19) MD2 10k 10k MD1 10k TMODE MD0 X0 (12) 1MHz ~16MHz X1 TAUX (23) P65 10k /TICS (10) ユーザ 回路 10k /TRES (5) RST ユーザ 回路 TTXD TRXD TCK TVcc Vcc TVPP1 GND 10k (13) (27) (6) SI0 SO0 SC0 (16) (1,7, 8,14, 15,21, 22,28) P66(MB90F803/Sは対象外) VCC ユーザ電源 VSS 14ピン 4,9,11,17,18,20,24,25,26 ピンは開放 DX10-28:ライトアングルタイプ 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 521 第 26 章 シリアル書込み接続例 • P65, SI0, SO0, SC0 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離してください。 図 26.2-4 制御回路 MB90F80x 書込み制御端子 AF220書込み制御端子 10k AF220 /TICS端子 ユーザ回路 • AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。 • 書込み電源を AF220 から供給する場合は , ユーザ電源と短絡しないでください。 522 第 26 章 シリアル書込み接続例 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 ) 図 26.2-5 に , フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) を示します。 フラッシュメモリへの書込みでは , 各端子を図 26.2-5 に示すように設定した場合 , MD2, MD1, MD0, P65, P66 とフラッシュマイコンプログラマとの接続の必要はありません。 図 26.2-5 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) AF220 フラッシュマイコン プログラマ ユーザシステム MB90F80x シリアル書換え時 MD2に"1"を設定 MD2 シリアル書換え時 MD1に"1"を設定 MD1 MD0 シリアル書換え時 MD0に"0"を設定 X0 1MHz~16MHz X1 P65 シリアル書換え時 P65に"0"を設定 ユーザ回路 シリアル書換え時 P66に"1"を設定 ユーザ回路 P66(MB90F803/Sは対象外) コネクタ DX10-28S /TRES TTXD TRXD TCK TVcc GND (5) RST (13) SI0 SO0 SC0 VCC (27) (6) (2) (1,7, 8,14, 15,21, 22,28) ユーザ電源 VSS 14ピン 3,4,9,10,11,12,16,17,18,19,20,23, 24,25,26ピンは開放 DX10-28S:ライトアングル 1ピン DX10-28S 15ピン 28ピン コネクタ(ヒロセ電機製)のピン配列 • AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。 523 第 26 章 シリアル書込み接続例 ■ フラッシュマイコンプログラマとの最小限の接続例(ライタから電源を供給する場合) 図 26.2-6 に , フラッシュマイコンプログラマとの最小限の接続例 ( ライタ電源から供給 時 ) を示します。 フラッシュメモリへの書込みでは , 各端子を図 26.2-6 に示すように設定した場合 , MD2, MD1, MD0, P65, P66 とフラッシュマイコンプログラマとの接続の必要はありません。 図 26.2-6 フラッシュマイコンプログラマとの最小限の接続例 ( ライタ電源から供給時 ) AF220 フラッシュマイコン プログラマ ユーザシステム MB90F80x シリアル書換え時 MD2に"1"を設定 シリアル書換え時 MD1に"1"を設定 10k MD2 10k 10k MD1 10k 10k MD0 シリアル書換え時 MD0に"0"を設定 10k X0 1MHz~16MHz X1 P65 10k シリアル書換え時 P65に"0"を設定 10k ユーザ回路 シリアル書換え時 P66に"1"を設定 ユーザ回路 コネクタ DX10-28S /TRES TTXD TRXD TCK TTXD TRXD TVcc GND (5) (13) (27) (6) P66(MB90F803/Sは対象外) 10k RST SI0 SO0 SC0 (2) (3) (16) (1,7, 8,14, 15,21, 22,28) VCC ユーザ電源 VSS 14ピン 4,9,10,11,12,17,18,19,20,23, 24,25,26ピンは開放 DX10-28S:ライトアングル 1ピン DX10-28S 15ピン 28ピン コネクタ(ヒロセ電機製)のピン配列 • AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。 • 書込み電源を AF220 から供給する場合は , ユーザ電源と短絡しないでください。 524 付録 メモリマップおよび F2MC-16LX に使用している命 令について説明します。 付録 A I/O マップ 付録 B 命令 525 付録 付録 A I/O マップ MB90800 シリーズに内蔵された周辺機能の各レジスタには , 付表 A-1 で示すような アドレスが割り当てられています。 ■ I/O マップ 付表 A-1 I/O マップ (1 / 6) 初期値 周辺機能名 リード/ ライト ポート 0 データレジスタ X XX XX XX XB ポート 0 R/W PDR1 ポート 1 データレジスタ X XX XX XX XB ポート 1 R/W 000002H PDR2 ポート 2 データレジスタ X XX XX XX XB ポート 2 R/W 000003H PDR3 ポート 3 データレジスタ X XX XX XX XB ポート 3 R/W 000004H PDR4 ポート 4 データレジスタ X XX XX XX XB ポート 4 R/W アドレス レジスタ 略称 000000H PDR0 000001H レジスタ名称 000005H PDR5 ポート 5 データレジスタ X XX XX XX XB ポート 5 R/W 000006H PDR6 ポート 6 データレジスタ X XX XX XX XB ポート 6 R/W 000007H PDR7 ポート 7 データレジスタ - X XX XX XXB ポート 7 R/W 000008H PDR8 ポート 8 データレジスタ - - - XX XX XB ポート 8 R/W 000009H PDR9 ポート 9 データレジスタ - - - - - - XXB ポート 9 R/W 00000AH 00000BH 00000CH 使用禁止 00000DH 00000EH 00000FH 000010H DDR0 ポート 0 方向レジスタ 0 0 0 0 0 0 0 0B ポート 0 R/W 000011H DDR1 ポート 1 方向レジスタ 0 0 0 0 0 0 0 0B ポート 1 R/W 000012H DDR2 ポート 2 方向レジスタ 0 0 0 0 0 0 0 0B ポート 2 R/W 000013H DDR3 ポート 3 方向レジスタ 0 0 0 0 0 0 0 0B ポート 3 R/W 000014H DDR4 ポート 4 方向レジスタ 0 0 0 0 0 0 0 0B ポート 4 R/W 000015H DDR5 ポート 5 方向レジスタ 0 0 0 0 0 0 0 0B ポート 5 R/W 000016H DDR6 ポート 6 方向レジスタ 0 0 0 0 0 0 0 0B ポート 6 R/W 000017H DDR7 ポート 7 方向レジスタ - 0 0 0 0 0 0 0B ポート 7 R/W 000018H DDR8 ポート 8 方向レジスタ - - - 0 0 0 0 0B ポート 8 R/W 000019H DDR9 ポート 9 方向レジスタ - - - - - - 0 0B ポート 9 R/W アナログ入力許可 0 1 1 1 1 1 1 1 1B ポート 6, A/D R/W アナログ入力許可 1 - - - - 1 1 1 1B ポート 7, A/D R/W 00001AH 00001BH 使用禁止 00001CH 00001DH 00001EH 00001FH 526 ADER0 ADER1 付録 A I/O マップ 付表 A-1 I/O マップ (2 / 6) アドレス レジスタ 略称 000020H SMR0 00021H SCR0 000022H SIDR0/ SODR0 000023H SSR0 レジスタ名称 モードレジスタ ch.0 0 0 0 0 0 - 0 0B 制御レジスタ ch.0 0 0 0 0 0 1 0 0B インプット / アウトプットデータレジスタ ch.0 X XX XX XX XB ステータスレジスタ ch.0 0 0 0 0 1 0 0 0B 000024H 000025H 初期値 リード/ ライト R/W R/W UART0 R/W R/W 使用禁止 CDCR0 0 X - - 0 0 0 0B 通信プリスケーラ制御レジスタ ch.0 000026H プリスケーラ 0 R/W 使用禁止 000027H 000028H SMR1 モードレジスタ ch.1 0 0 0 0 0 - 0 0B 000029H SCR1 制御レジスタ ch.1 0 0 0 0 0 1 0 0B 00002AH SIDR1/ SODR1 00002BH SSR1 インプット / アウトプットデータレジスタ ch.1 X XX X XX XX B ステータスレジスタ ch.1 0 0 0 0 1 0 0 0B 00002CH 00002DH 周辺機能名 R/W R/W UART1 R/W R/W 使用禁止 CDCR1 0 X - - 0 0 0 0B 通信プリスケーラ制御レジスタ ch.1 00002EH プリスケーラ 1 R/W 外部割込み 使用禁止 00002FH 000030H ENIR DTP/ 割込み許可レジスタ - - - - 0 0 0 0B R/W 000031H EIRR DTP/ 割込み要因レジスタ - - - - X X XXB R/W 000032H ELVR 要求レベル設定レジスタ 0 0 0 0 0 0 0 0B R/W 00- - - - - -B R/W 000033H 000034H 使用禁止 ADCS0 A/D 制御ステータスレジスタ 0 000035H ADCS1 A/D 制御ステータスレジスタ 1 0 0 0 0 0 0 0 0B 000036H ADCR0 A/D データレジスタ下位 X XX X XX XX B 000037H ADCR1 A/D データレジスタ上位 00101-XXB ADMR A/D 変換チャネル設定レジスタ CPCLR コンペアクリアレジスタ TCDT タイマデータレジスタ 00003EH TCCSL タイマコントロールステータスレジスタ下位 0 0 0 0 0 0 0 0B R/W 00003FH TCCSH タイマコントロールステータスレジスタ上位 0 - - 0 0 0 0 0B R/W 000038H 000039H 00003AH 00003BH 00003CH 00003DH R/W, W A/D コンバータ R R, W 使用禁止 0 0 0 0 0 0 0 0B A/D コンバータ X XX X XX XX B R/W X XX X XX XX B 0 0 0 0 0 0 0 0B 0 0 0 0 0 0 0 0B R/W 16 ビット フリーラン タイマ R/W 000040H 000041H 使用禁止 000042H 000043H 000044H 000045H 000046H 000047H 000048H 000049H IPCP0 インプットキャプチャデータレジスタ 0 IPCP1 インプットキャプチャデータレジスタ 1 ICS01 インプットキャプチャコントロール ステータス 0/1 X XX X XX XX B X XX X XX XX B X XX X XX XX B X XX X XX XX B 0 0 0 0 0 0 0 0B インプット キャプチャ 0/1 R R/W 使用禁止 527 付録 付表 A-1 I/O マップ (3 / 6) アドレス 00004AH レジスタ 略称 レジスタ名称 初期値 周辺機能名 リード/ ライト X XX X XX XX B アウトプット コンペア 0 R/W アウトプット コンペア 1 R/W アウトプット コンペア 0/1 R/W OCCP0 アウトプットコンペアレジスタ 0 OCCP1 アウトプットコンペアレジスタ 1 00004EH OCSL アウトプットコンペア コントロールステータスレジスタ下位 00004FH OCSH アウトプットコンペア コントロールステータスレジスタ上位 000050H TMCSR0L タイマコントロールステータスレジスタ0下位 000051H TMCSR0H タイマコントロールステータスレジスタ0上位 - - - - 0 0 0 0B X XX X XX XX B 00004BH 00004CH 00004DH 000052H X XX X XX XX B X XX X XX XX B XXXXXXXX B 0 0 0 0 - - 0 0B - - 0 0 0 0 0 R/W B 0 0 0 0 0 0 0 0B 000053H TMR0/ TMRLR0 タイマレジスタ 0/ リロードレジスタ 0 000054H TMCSR1L タイマコントロールステータスレジスタ 1 下位 00000000 000055H TMCSR1H タイマコントロールステータスレジスタ 1 上位 - - - - 0 0 0 0B 000056H 000057H TMR1/ TMRLR1 タイマレジスタ 1/ リロードレジスタ 1 000058H TMCSR2L タイマコントロールステータスレジスタ 2 下位 00000000 000059H TMCSR2H タイマコントロールステータスレジスタ 2 上位 - - - - 0 0 0 0B 00005AH 00005BH TMR2/ TMRLR2 タイマレジスタ 1/ リロードレジスタ 2 X XX X XX XX B 00005CH LCRL LCDC 制御レジスタ下位 00010000 B 00005DH LCRH LCDC 制御レジスタ上位 00000000 B 00005EH LCRR LCDC 範囲レジスタ 00000000 B 00005FH 000060H 000061H SMCS0 - - - - 0 0 0 0B シリアルモードコントロールステータスレ ジスタ (ch.0) 00000010 シリアルデータレジスタ (ch.0) X XX X XX XX B B シリアルモードコントロールステータスレ ジスタ (ch.1) - - - - 0 0 0 0B シリアルシフトデータレジスタ (ch.1) X XX X XX XX B SDR1 SDCR1 0 0 0 0 0 0 1 0B 0 - - - 0 0 0 0B クロック分周制御レジスタ (ch.1) 000068H R/W R/W LCD コントローラ / ドライバ R/W SIO ( 拡張シリアル I/O) R/W R/W R/W 通信プリスケーラ (SIO) SIO ( 拡張シリアル I/O) 通信プリスケーラ (SIO) R/W R/W R/W R/W R/W 使用禁止 000069H IBSR I2C ステータスレジスタ 0 0 0 0 0 0 0 0B R 2 0 0 0 0 0 0 0 0B 2 I C クロック選択レジスタ - - 0 XX XX X B IADR I2C アドレスレジスタ - X XX XX XX B R/W IDAR I2C X XX X XX XX B R/W 00006BH IBCR 00006CH ICCR 00006DH 528 16 ビットリロード タイマ 2 使用禁止 SMCS1 00006FH R/W X XX X XX XX B 0 - - - 0 0 0 0B 00006EH R/W R/W B クロック分周制御レジスタ (ch.0) 00006AH 16 ビットリロード タイマ 1 X XX X XX XX B SDCR0 000067H R/W X XX X XX XX B 000063H 000066H R/W R/W B SDR0 000065H 16 ビットリロード タイマ 0 X XX X XX XX B 000062H 000064H R/W ROMM I C コントロールレジスタ データレジスタ ROM ミラー機能 選択レジスタ XX XX X XX 1B R/W 2 IC ROM ミラー R/W W 付録 A I/O マップ 付表 A-1 I/O マップ (4 / 6) アドレス レジスタ 略称 000070H PDCRL0 000071H PDCRH0 000072H PCSRL0 000073H PCSRH0 000074H PDUTL0 000075H PDUTH0 000076H PCNTL0 000077H PCNTH0 000078H PDCRL1 000079H PDCRH1 00007AH PCSRL1 00007BH PCSRH1 00007CH PDUTL1 00007DH PDUTH1 00007EH PCNTL1 00007FH PCNTH1 レジスタ名称 初期値 周辺機能名 1 1 1 1 1 1 1 1B PPG0 ダウンカウンタレジスタ R 1 1 1 1 1 1 1 1B X XX X XX XX B PPG0 周期設定レジスタ X XX X XX XX B X XX X XX XX B PPG0 デューティ設定レジスタ W 16 ビット PPG0 W X XX X XX XX B - - 0 0 0 0 0 0B PPG0 制御ステータスレジスタ R/W 0 0 0 0 0 0 0 XB 1 1 1 1 1 1 1 1B PPG1 ダウンカウンタレジスタ R 1 1 1 1 1 1 1 1B X XX XX XX XB PPG1 周期設定レジスタ X XX X XX XX B X XX X XX XX B PPG1 デューティ設定レジスタ XXXXXXXXB - - 0 0 0 0 0 0B PPG1 制御ステータスレジスタ 0 0 0 0 0 0 0 XB リード/ ライト W 16 ビット PPG1 W R/W 000080H 000081H 000082H 000083H 000084H 000085H 000086H 000087H 000088H 000089H 00008AH 00008BH ( 予約領域 ) 00008CH 00008DH 00008EH 00008FH 000090H 000091H 000092H 000093H 000094H 000095H 000096H 使用禁止 000097H ( 予約領域 ) 529 付録 付表 A-1 I/O マップ (5 / 6) アドレス レジスタ 略称 初期値 周辺機能名 リード/ ライト プログラムアドレス検出コントロール ステータスレジスタ 0 0 0 0 0 0 0 0B アドレス一致 検出機能 R/W 遅延割込み R/W 低消費電力制御 回路 R/W レジスタ名称 000098H 000099H 00009AH 使用禁止 00009BH 00009CH 00009DH 00009EH PACSR 00009FH DIRR 遅延割込み要因発生 / 解除レジスタ - - - - - - - 0B 0000A0H LPMCR 低消費電力モードレジスタ 0 0 0 1 1 0 0 0B 0000A1H CKSCR クロック選択レジスタ 1 1 1 1 1 1 0 0B R/W 0000A2H 0000A3H 0000A4H 使用禁止 0000A5H 0000A6H 0000A7H 0000A8H WDTC ウォッチドッグタイマ制御 レジスタ X - X XX1 1 1B ウォッチドッグ タイマ R/W 0000A9H TBTC タイムベースタイマ制御 レジスタ 1 - - 0 0 1 0 0B タイムベース タイマ R/W 0000AAH WTC 時計タイマ制御レジスタ 1 0 0 1 1 0 0 0B 時計タイマ ( サブクロック ) R/W 0000ABH 0000ACH 使用禁止 0000ADH 0000AEH FMCS フラッシュメモリ制御ステータスレジスタ 0 0 0 0 0 0 0 0B フラッシュ I/F R/W, R,W 0000AFH TMCS 時計クロック出力制御レジスタ X XX X X0 0 0B 時計用クロック 分周 R/W 0000B0H ICR00 割込み制御レジスタ 00 0 0 0 0 0 1 1 1B R/W 0000B1H ICR01 割込み制御レジスタ 01 0 0 0 0 0 1 1 1B R/W 0000B2H ICR02 割込み制御レジスタ 02 0 0 0 0 0 1 1 1B R/W 0000B3H ICR03 割込み制御レジスタ 03 0 0 0 0 0 1 1 1B R/W 0000B4H ICR04 割込み制御レジスタ 04 0 0 0 0 0 1 1 1B R/W R/W R/W 0000B5H ICR05 割込み制御レジスタ 05 0 0 0 0 0 1 1 1B 0000B6H ICR06 割込み制御レジスタ 06 0 0 0 0 0 1 1 1B 0000B7H ICR07 割込み制御レジスタ 07 0 0 0 0 0 1 1 1B 0000B8H ICR08 割込み制御レジスタ 08 0 0 0 0 0 1 1 1B 0000B9H ICR09 割込み制御レジスタ 09 0 0 0 0 0 1 1 1B R/W 0000BAH ICR10 割込み制御レジスタ 10 0 0 0 0 0 1 1 1B R/W 0000BBH ICR11 割込み制御レジスタ 11 0 0 0 0 0 1 1 1B R/W 0000BCH ICR12 割込み制御レジスタ 12 0 0 0 0 0 1 1 1B R/W R/W 割込み コントローラ R/W R/W 0000BDH ICR13 割込み制御レジスタ 13 0 0 0 0 0 1 1 1B 0000BEH ICR14 割込み制御レジスタ 14 0 0 0 0 0 1 1 1B R/W 0000BFH ICR15 割込み制御レジスタ 15 0 0 0 0 0 1 1 1B R/W 530 付録 A I/O マップ 付表 A-1 I/O マップ (6 / 6) アドレス レジスタ 略称 レジスタ名称 初期値 001FF0H 001FF1H PADR0 プログラムアドレス 検出レジスタ 0 001FF3H 001FF4H R/W X XX X XX XX B R/W X XX XX XX XB PADR1 プログラムアドレス 検出レジスタ 1 001FF5H リード/ ライト X XX X XX XX B X XX XX XX XB 001FF2H 周辺機能名 アドレス一致 検出機能 R/W R/W X XX XX XX XB R/W X XX XX XX XB R/W - - - - - 007900H 007901H 007902H 007903H 007904H 007905H 007906H 007907H 007908H 007909H 00790AH 00790BH 00790CH VRAM LCD 表示用 RAM X XX X XX XX B LCD コントローラ / ドライバ R/W 00790DH 00790EH 00790FH 007910H 007911H 007912H 007913H 007914H 007915H 007916H 007917H ● リード / ライトについての説明 R/W: リード / ライト可能 R : リードオンリ W : ライトオンリ ● 初期値についての説明 0 : 初期値は "0" です。 1 : 初期値は "1" です。 X : 初期値は不定です。 531 付録 付録 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-3 532 付録 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 命令 533 付録 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) 534 付録 B 命令 ■ 実効アドレスフィールド 実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。 表 B.2-1 実効アドレスフィールド コード 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 デフォルトバンク なし DTB DTB レジスタ間接 0A @RW2 0B @RW3 SPB 0C @RW0+ DTB 0D @RW1+ 0E @RW2+ 0F @RW3+ SPB 10 @RW0+disp8 DTB 11 @RW1+disp8 DTB 12 @RW2+disp8 ADB 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 DTB 16 @RW6+disp8 ADB 17 @RW7+disp8 SPB 18 @RW0+disp16 DTB 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C @RW0+RW7 インデックス付レジスタ間接 DTB 1D @RW1+RW7 インデックス付レジスタ間接 DTB 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 PCB 1F addr16 直接アドレス DTB ポストインクリメント付 レジスタ間接 8 ビットディスプレースメント付 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 ADB DTB ADB SPB DTB DTB ADB SPB 535 付録 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 レジスタ直接 汎用レジスタ 専用レジスタ *: 536 バイト 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 537 付録 ● 物理直接分岐アドレス (addr24) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 24 ビットです。無条件分岐命令 , サブルーチンコール命令およびソフト ウェア割込み命令に使用します。図 B.3-4 に例を示します。 図 B.3-4 物理直接分岐アドレス (addr24) 例 JMPP 333B20H ( 直接分岐アドレス 24 ビット指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 333B20H 次の命令 実行後 PC 3 B 2 0 PCB 3 3 4F3C20H 63 4F3C21H 20 4F3C22H 3B 4F3C23H 33 JMPP 333B20H ● I/O 直接 (io) オペランドのメモリアドレスを 8 ビットのディスプレースメントで直接指定します。 データバンクレジスタ (DTB) , ダイレクトページレジスタ (DPR) の値にかかわらず , 物理アドレス "000000H" ∼ "0000FFH" の空間の I/O 空間がアクセスされます。I/O 直接 アドレス指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを 記述しても無効です。図 B.3-5 に例を示します。 図 B.3-5 I/O 直接 (io) 例 MOVW A, I:0C0H (I/O 直接で読出しを行い , A に格納する命令 ) 実行前 実行後 A 0716 2534 メモリ空間 0000C0H EE 0000C1H FF A 2534 FFEE ( 注意事項 ) I: は , I/O 直接アドレスを示すアドレス規定子です。 538 付録 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 ( 注意事項 ) S: は , 短縮直接アドレスを示すアドレス規定子です。 ● 直接アドレス (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 539 付録 ● 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 ( 注意事項 ) I: は , I/O 直接ビットアドレスを示すアドレス規定子です。 ● 短縮直接ビットアドレス (dir: bp) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) で指定されます。アドレスの bit23 ∼ bit16 は データバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の 大きい方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-9 に例を示しま す。 図 B.3-9 短縮直接ビットアドレス (dir: bp) 例 SETB S:10H:0 ( 短縮直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 実行前 DTB 5 5 DPR 6 6 556610H 00 メモリ空間 実行後 DTB 5 5 DPR 6 6 556610H ( 注意事項 ) S: は , 短縮直接ビットアドレスを示すアドレス規定子です。 540 01 付録 B 命令 ● 直接ビットアドレス (addr16: bp) 64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ∼ bit16 はデー タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。 図 B.3-10 直接ビットアドレス (addr16: bp) 例 SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 DTB 5 5 実行前 00 552222H メモリ空間 DTB 5 5 実行後 01 552222H ● ベクタアドレス (#vct) 分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には 4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込 み命令に使用します。図 B.3-11 に例を示します。 図 B.3-11 ベクタアドレス (#vct) 例 CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PC 0 0 0 0 PCB F F 実行後 メモリ空間 FFC000H EF FFFFE0H 00 FFFFE1H D0 CALLV #15 PC D 0 0 0 PCB F F 541 付録 表 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 を参照 してください ) 542 付録 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 に例を示します。 543 付録 図 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 544 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 545 付録 ● ベースインデックス付レジスタ間接 (@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 3C32H ( 無条件相対分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3C32H 次の命令 実行後 546 PC 3 C 32 PCB 4 F 4F3C21H 10 4F3C20H 60 BRA 3C32H 付録 B 命令 ● レジスタリスト (rlst) スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 B.4-8 にレ ジスタリストの構成 , 図 B.4-9 に例を示します。 図 B.4-8 レジスタリストの構成 MSB LSB RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0 対応ビットが "1" の場合に設定 , "0" の場合に非設定 MSB: 最上位ビット LSB: 最下位ビット 図 B.4-9 レジスタリスト (rlst) 例 POPW RW0, RW4 ( レジスタリストで示された複数のワードレジスタに , SP で示されるメモリの データを転送する命令 ) SP 3 4 F A SP 3 4 F E RW0 ×× ×× RW0 02 01 RW1 ×× ×× RW1 ×× ×× RW2 ×× ×× RW2 ×× ×× RW3 ×× ×× RW3 ×× ×× RW4 ×× ×× RW4 04 03 RW5 ×× ×× RW5 ×× ×× RW6 ×× ×× RW6 ×× ×× RW7 ×× ×× RW7 ×× ×× メモリ空間 SP 01 メモリ空間 34FAH 01 34FAH 02 34FBH 02 34FBH 03 34FCH 03 34FCH 34FDH 04 04 34FEH 実行前 SP 34FDH 34FEH 実行後 547 付録 ● アキュムレータ間接 (@A) アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを アクセスするアドレス方式です。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。 図 B.4-10 アキュムレータ間接 (@A) 例 MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 ) A 実行前 0716 2534 DTB B B A 実行後 0716 メモリ空間 BB2534H EE BB2535H FF FFEE DTB B B ● アキュムレータ間接分岐アドレス (@A) 分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま す。バンク空間内での分岐先を示し , アドレスの bit23 ∼ bit16 はプログラムカウンタ バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド レスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ 間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11 に例を示します。 図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例 JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 A 6677 PCB 4 F 3B20 メモリ空間 4F3B20H 次の命令 4F3C20H 実行後 PC 3 B 2 0 A 6677 548 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 549 付録 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 命令一覧表の読み方」を参照 してください。 550 付録 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 − ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 551 付録 B.6 実効アドレスフィールド 表 B.6-1 に実効アドレスフィールドを示します。 ■ 実効アドレスフィールド 表 B.6-1 実効アドレスフィールド (1 / 2) コード 552 表記 アドレス形式 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 命令一覧表の読み方」を参照してください。 553 付録 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 554 リードモディファイライト命令 (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 ビットデータ 555 付録 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 556 意味 disp8 8 ビットディスプレースメント disp16 16 ビットディスプレースメント bp ビットオフセット値 vct4 ベクタ番号 (0 ∼ 15) vct8 ベクタ番号 (0 ∼ 255) ()b ビットアドレス rel PC 相対分岐指定 ear 実効アドレス指定 ( コード 00H ∼ 07H) eam 実効アドレス指定 ( コード 08H ∼ 1FH) 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 MOV A,dir 2 3 0 (b) byte (A) ← (dir) Z * - - - * * - - - MOV A,addr16 3 4 0 (b) byte (A) ← (addr16) Z * - - - * * - - - MOV A,Ri 1 2 1 0 byte (A) ← (Ri) Z * - - - * * - - - MOV A,ear 2 2 1 0 byte (A) ← (ear) Z * - - - * * - - - MOV A,eam 2+ 3 + (a) 0 (b) byte (A) ← (eam) Z * - - - * * - - - MOV A,io 2 3 0 (b) byte (A) ← (io) Z * - - - * * - - - MOV A,#imm8 2 2 0 0 byte (A) ← imm8 Z * - - - * * - - - MOV A,@A 2 3 0 (b) byte (A) ← ((A)) Z - - - - * * - - - MOV A,@RLi+disp8 3 10 2 (b) byte (A) ← ((RLi)+disp8) Z * - - - * * - - - MOVN A,#imm4 1 1 0 0 byte (A) ← imm4 Z * - - - R * - - - MOVX A,dir 2 3 0 (b) byte (A) ← (dir) X * - - - * * - - - MOVX A,addr16 3 4 0 (b) byte (A) ← (addr16) X * - - - * * - - - MOVX A,Ri 2 2 1 0 byte (A) ← (Ri) X * - - - * * - - - MOVX A,ear 2 2 1 0 byte (A) ← (ear) X * - - - * * - - - MOVX A,eam 2+ 3 + (a) 0 (b) byte (A) ← (eam) X * - - - * * - - - MOVX A,io 2 3 0 (b) byte (A) ← (io) X * - - - * * - - - MOVX A,#imm8 2 2 0 0 byte (A) ← imm8 X * - - - * * - - - MOVX A,@A 2 3 0 (b) byte (A) ← ((A)) X - - - - * * - - - MOVX A,@RWi+disp8 2 5 1 (b) byte (A) ← ((RWi)+disp8) X * - - - * * - - - MOVX A,@RLi+disp8 3 10 2 (b) byte (A) ← ((RLi)+disp8) X * - - - * * - - - MOV dir,A 2 3 0 (b) byte (dir) ← (A) - - - - - * * - - - MOV addr16,A 3 4 0 (b) byte (addr16) ← (A) - - - - - * * - - - MOV Ri,A 1 2 1 0 byte (Ri) ← (A) - - - - - * * - - - MOV ear,A 2 2 1 0 byte (ear) ← (A) - - - - - * * - - - MOV eam,A 2+ 3 + (a) 0 (b) byte (eam) ← (A) - - - - - * * - - - ニーモニック オペレーション RMW MOV io,A 2 3 0 (b) byte (io) ← (A) - - - - - * * - - - MOV @RLi+disp8,A 3 10 2 (b) byte ((RLi)+disp8) ← (A) - - - - - * * - - - MOV Ri,ear 2 3 2 0 byte (Ri) ← (ear) - - - - - * * - - - MOV Ri,eam 2+ 4 + (a) 1 (b) byte (Ri) ← (eam) - - - - - * * - - - MOV ear,Ri 2 4 2 0 byte (ear) ← (Ri) - - - - - * * - - - MOV eam,Ri 2+ 5 + (a) 1 (b) byte (eam) ← (Ri) - - - - - * * - - - MOV Ri,#imm8 2 2 1 0 byte (Ri) ← imm8 - - - - - * * - - - MOV io,#imm8 3 5 0 (b) byte (io) ← imm8 - - - - - - - - - - MOV dir,#imm8 3 5 0 (b) byte (dir) ← imm8 - - - - - - - - - - MOV ear,#imm8 3 2 1 0 byte (ear) ← imm8 - - - - - * * - - - MOV eam,#imm8 3+ 4 + (a) 0 (b) byte (eam) ← imm8 - - - - - - - - - - MOV @AL,AH 2 3 0 (b) byte ((A)) ← (AH) - - - - - * * - - - XCH A,ear 2 4 2 0 byte (A) ←→ (ear) Z - - - - - - - - - XCH A,eam 2+ 5 + (a) 0 Z - - - - - - - - - XCH Ri,ear 2 7 4 - - - - - - - - - - XCH Ri,eam 2+ 9 + (a) 2 - - - - - - - - - - 2 × (b) byte (A) ←→ (eam) 0 byte (Ri) ←→ (ear) 2 × (b) byte (Ri) ←→ (eam) ( 注意事項 ) 表中の (a), (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 557 付録 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVW A,dir 2 3 0 (c) word (A) ← (dir) - * - - - * * - - - MOVW A,addr16 3 4 0 (c) word (A) ← (addr16) - * - - - * * - - - MOVW A,SP 1 1 0 0 word (A) ← (SP) - * - - - * * - - - MOVW A,RWi 1 2 1 0 word (A) ← (RWi) - * - - - * * - - - MOVW A,ear 2 2 1 0 word (A) ← (ear) - * - - - * * - - - MOVW A,eam 2+ 3 + (a) 0 (c) word (A) ← (eam) - * - - - * * - - - MOVW A,io 2 3 0 (c) word (A) ← (io) - * - - - * * - - - MOVW A,@A 2 3 0 (c) word (A) ← ((A)) - - - - - * * - - MOVW A,#imm16 3 2 0 0 word (A) ← imm16 - * - - - * * - - - MOVW A,@RWi+disp8 2 5 1 (c) word (A) ← ((RWi)+disp8) - * - - - * * - - - MOVW A,@RLi+disp8 3 10 2 (c) word (A) ← ((RLi)+disp8) - * - - - * * - - - MOVW dir,A 2 3 0 (c) word (dir) ← (A) - - - - - * * - - - MOVW addr16,A 3 4 0 (c) word (addr16) ← (A) - - - - - * * - - - MOVW SP,A 1 1 0 0 word (SP) ← (A) - - - - - * * - - - MOVW RWi,A 1 2 1 0 word (RWi) ← (A) - - - - - * * - - - MOVW ear,A 2 2 1 0 word (ear) ← (A) - - - - - * * - - - MOVW eam,A 2+ 3 + (a) 0 (c) word (eam) ← (A) - - - - - * * - - - MOVW io,A 2 3 0 (c) word (io) ← (A) - - - - - * * - - - MOVW @RWi+disp8,A 2 5 1 (c) word ((RWi)+disp8) ← (A) - - - - - * * - - MOVW @RLi+disp8,A 3 10 2 (c) word ((RLi)+disp8) ← (A) - - - - - * * - - - MOVW RWi,ear 2 3 2 0 word (RWi) ← (ear) - - - - - * * - - - MOVW RWi,eam 2+ 4 + (a) 1 (c) word (RWi) ← (eam) - - - - - * * - - - MOVW ear,RWi 2 4 2 0 word (ear) ← (RWi) - - - - - * * - - - MOVW eam,RWi 2+ 5 + (a) 1 (c) word (eam) ← (RWi) - - - - - * * - - - MOVW RWi,#imm16 3 2 1 0 word (RWi) ← imm16 - - - - - * * - - MOVW io,#imm16 4 5 0 (c) word (io) ← imm16 - - - - - - - - - - MOVW ear,#imm16 4 2 1 0 word (ear) ← imm16 - - - - - * * - - - MOVW eam,#imm16 4+ 4 + (a) 0 (c) word (eam) ← imm16 - - - - - - - - - - MOVW @AL,AH 2 3 0 (c) word ((A)) ← (AH) - - - - - * * - - - XCHW A,ear 2 4 2 0 word (A) ←→ (ear) - - - - - - - - - - XCHW A,eam 2+ 5 + (a) 0 2 × (c) word (A) ←→ (eam) - - - - - - - - - - XCHW RWi, ear 2 7 4 0 word (RWi) ←→ (ear) - - - - - - - - - - XCHW RWi, eam 2+ 9 + (a) 2 2 × (c) word (RWi) ←→ (eam) - - - - - - - - - - MOVL A,ear 2 4 2 0 long (A) ← (ear) - - - - - * * - - - MOVL A,eam 2+ 5 + (a) 0 (d) long (A) ← (eam) - - - - - * * - - - MOVL A,#imm32 5 3 0 0 long (A) ← imm32 - - - - - * * - - - MOVL ear,A 2 4 2 0 long (ear) ← (A) - - - - - * * - - - MOVL eam,A 2+ 5 + (a) 0 (d) long(eam) ← (A) - - - - - * * - - - ( 注意事項 ) 表中の (a), (c), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 558 付録 B 命令 表 B.8-3 加減算命令 ( バイト・ワード・ロングワード ) 42 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW ADD A,#imm8 2 2 0 0 byte (A) ← (A) + imm8 Z - - - - * * * * - ADD A,dir 2 5 0 (b) byte (A) ← (A) + (dir) Z - - - - * * * * - ADD A,ear 2 3 1 0 byte (A) ← (A) + (ear) Z - - - - * * * * - ADD A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam) Z - - - - * * * * - ADD ear,A 2 3 2 0 byte (ear) ← (ear) + (A) - - - - - * * * * - ADD eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) + (A) Z - - - - * * * * * ADDC A 1 2 0 0 byte (A) ← (AH) + (AL) + (C) Z - - - - * * * * - ADDC A,ear 2 3 1 0 byte (A) ← (A) + (ear)+ (C) Z - - - - * * * * - ADDC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam)+ (C) Z - - - - * * * * - ADDDC A 1 3 0 0 byte (A) ← (AH) + (AL) + (C) (10 進数 ) Z - - - - * * * * - SUB A,#imm8 2 2 0 0 byte (A) ← (A) - imm8 Z - - - - * * * * - SUB A,dir 2 5 0 (b) byte (A) ← (A) - (dir) Z - - - - * * * * - SUB A,ear 2 3 1 0 byte (A) ← (A) - (ear) Z - - - - * * * * - SUB A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) Z - - - - * * * * - SUB ear,A 2 3 2 0 byte (ear) ← (ear) - (A) - - - - - * * * * - SUB eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) - (A) - - - - - * * * * * SUBC A 1 2 0 0 byte (A) ← (AH) - (AL) - (C) Z - - - - * * * * - SUBC A,ear 2 3 1 0 byte (A) ← (A) - (ear) - (C) Z - - - - * * * * - SUBC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) - (C) Z - - - - * * * * - SUBDC A 1 3 0 0 byte (A) ← (AH) - (AL) - (C) (10 進数 ) Z - - - - * * * * - ADDW A 1 2 0 0 word (A) ← (AH) + (AL) - - - - - * * * * - ADDW A,ear 2 3 1 0 word (A) ← (A) + (ear) - - - - - * * * * - ADDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) - - - - - * * * * - ADDW A,#imm16 3 2 0 0 word (A) ← (A) + imm16 - - - - - * * * * - word (ear) ← (ear) + (A) - - - - - * * * * - word (eam) ← (eam) + (A) - - - - - * * * * * ADDW ear,A 2 3 2 0 ADDW eam,A 2+ 5+(a) 0 2 × (c) ADDCW A,ear 2 3 1 0 word (A) ← (A) + (ear) + (C) - - - - - * * * * - ADDCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) + (C) - - - - - * * * * - SUBW A 1 2 0 0 word (A) ← (AH) - (AL) - - - - - * * * * - SUBW A,ear 2 3 1 0 word (A) ← (A) - (ear) - - - - - * * * * - SUBW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - - - - - * * * * - SUBW A,#imm16 3 2 0 0 word (A) ← (A) - imm16 - - - - - * * * * - word (ear) ← (ear) - (A) - - - - - * * * * - word (eam) ← (eam) - (A) - - - - - * * * * * SUBW ear,A 2 3 2 0 SUBW eam,A 2+ 5+(a) 0 2 × (c) SUBCW A,ear 2 3 1 0 word (A) ← (A) - (ear) - (C) - - - - - * * * * - SUBCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - (C) - - - - - * * * * - ADDL A,ear 2 6 2 0 long (A) ← (A) + (ear) - - - - - * * * * - ADDL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) + (eam) - - - - - * * * * - ADDL A,#imm32 5 4 0 0 long (A) ← (A) + imm32 - - - - - * * * * - SUBL A,ear 2 6 2 0 long (A) ← (A) - (ear) - - - - - * * * * - SUBL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) - (eam) - - - - - * * * * - SUBL A,#imm32 5 4 0 0 long (A) ← (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 559 付録 表 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 を参照してください。 560 付録 B 命令 表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIVU A 1 *1 0 0 word (AH) / byte (AL) 商→ byte (AL) 余り→ byte (AH) - - - - - - - * * - DIVU A,ear 2 *2 1 0 word (A) / byte (ear) 商→ byte (A) 余り→ byte (ear) - - - - - - - * * - DIVU A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) - - - - - - - * * - DIVUW A,ear 2 *4 1 0 long (A) / word (ear) 商→ word (A) 余り→ word (ear) - - - - - - - * * - DIVUW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MULU MULU A 1 *8 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - A,ear 2 *9 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MULU A,eam 2+ *10 0 (b) MULUW A 1 *11 0 0 MULUW A,ear 2 *12 1 MULUW A,eam 2+ *13 0 オペレーション byte (A) * byte (eam) → word (A) - - - - - - - - - - word (AH) * word (AL) → Long (A) - - - - - - - - - - 0 word (A) * word (ear) → Long (A) - - - - - - - - - - (c) word (A) * word (eam) → Long (A) - - - - - - - - - - *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 7 正常の場合 , 15 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 8 正常の場合 , 16 *3:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 9+(a) 正常の場合 , 19+(a) *4:ゼロディバイトの場合 , 4 オーバフローの場合 , 7 正常の場合 , 22 *5:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 8+(a) 正常の場合 , 26+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 byte(AH) がゼロでない場合 , 7 *9:byte(ear) がゼロの場合 , 4 byte(ear) がゼロでない場合 , 8 *10:byte(eam) がゼロの場合 , 5+(a) byte(eam) がゼロでない場合 , 9+(a) *11:word(AH) がゼロの場合 , 3 word(AH) がゼロでない場合 , 11 *12:word(ear) がゼロの場合 , 4 word(ear) がゼロでない場合 , 12 *13:word(eam) がゼロの場合 , 5+(a) word(eam) がゼロでない場合 , 13+(a) ( 注意事項 ) 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 561 付録 表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIV A 2 *1 0 0 word (AH) / byte (AL) 商 --> byte (AL) 余り→ byte (AH) Z - - - - - - * * - DIV A,ear 2 *2 1 0 word (A) / byte (ear) 商 --> byte (A) 余り→ byte (ear) Z - - - - - - * * - DIV A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) Z - - - - - - * * - DIVW A,ear 2 *4 1 0 long (A) / word (ear) 商 --> word (A) 余り→ word (ear) - - - - - - - * * - DIVW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MUL A 2 *8 MUL A,ear 2 *9 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MUL A,eam 2+ *10 MULW A 2 *11 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - MULW A,ear 2 - *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - MULW A,eam 2+ *13 0 (c) word (A) * word (eam) → Long (A) - - - - - - - - - - オペレーション *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 8 or 18 正常の場合 , 18 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 11 or 22 正常の場合 , 23 *3:ゼロディバイトの場合 , 5+(a) オーバフローの場合 12+(a) or 23+(a) 正常の場合 , 24+(a) *4:被除数が正 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 30 正常の場合 , 31 被除数が負 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 31 正常の場合 , 32 *5:被除数が正 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 12+(a) or 31+(a) 正常の場合 , 32+(a) 被除数が負 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 13+(a) or 32+(a) 正常の場合 , 33+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 結果が正の場合 , 12 結果が負の場合 , 13 *9:byte(ear) がゼロの場合 , 4 結果が正の場合 , 13 結果が負の場合 , 14 *10:byte(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 14+(a) 結果が負の場合 , 15+(a) *11:word(AH) がゼロの場合 , 3 結果が正の場合 , 16 結果が負の場合 , 19 *12:word(ear) がゼロの場合 , 4 結果が正の場合 , 17 結果が負の場合 , 20 *13:word(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 18+(a) 結果が負の場合 , 21+(a) ( 注意事項 ) ・ DIV, DIVW 命令でオーバフロー発生時の実行サイクル数に 2 種類ありますが , 演算前と演算後に検出する場合が あるためです。 DIV, DIVW 命令でオーバフロー発生時には , AL の内容は破壊されます。 ・ 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 562 付録 B 命令 表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令 ニーモニック # ∼ RG B AND A,#imm8 2 2 0 0 AND A,ear 2 3 1 0 LH AH I S T N Z V C RMW byte (A) ← (A) and imm8 - - - - - * * R - - byte (A) ← (A) and (ear) - - - - - * * R - - オペレーション AND A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) and (eam) - - - - - * * R - - AND ear,A 2 3 2 0 byte (ear) ← (ear) and (A) - - - - - * * R - - AND eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) and (A) - - - - - * * R - * OR A,#imm8 2 2 0 0 byte (A) ← (A) or imm8 - - - - - * * R - - OR A,ear 2 3 1 0 byte (A) ← (A) or (ear) - - - - - * * R - - OR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) or (eam) - - - - - * * R - - OR ear,A 2 3 2 0 byte (ear) ← (ear) or (A) - - - - - * * R - - OR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) or (A) - - - - - * * R - * XOR A,#imm8 2 2 0 0 byte (A) ← (A) xor imm8 - - - - - * * R - - XOR A,ear 2 3 1 0 byte (A) ← (A) xor (ear) - - - - - * * R - - XOR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) xor (eam) - - - - - * * R - - XOR ear,A 2 3 2 0 byte (ear) ← (ear) xor (A) - - - - - * * R - - XOR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) xor (A) - - - - - * * R - * NOT A 1 2 0 0 byte (A) ← not (A) - - - - - * * R - - NOT ear 2 3 2 0 byte (ear) ← not (ear) - - - - - * * R - - NOT eam 2+ 5+(a) 0 2 × (b) byte (eam) ← not (eam) - - - - - * * R - * ANDW A 1 2 0 0 word (A) ← (AH) and (A) - - - - - * * R - - ANDW A,#imm16 3 2 0 0 word (A) ← (A) and imm16 - - - - - * * R - - ANDW A,ear 2 3 1 0 word (A) ← (A) and (ear) - - - - - * * R - - ANDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) and (eam) - - - - - * * R - - ANDW ear,A 2 3 2 0 word (ear) ← (ear) and (A) - - - - - * * R - - ANDW eam,A 2+ 5+(a) 0 2 × (c) word (eam) ← (eam) and (A) - - - - - * * R - * ORW A 1 2 0 0 word (A) ← (AH) or (A) - - - - - * * R - - ORW A,#imm16 3 2 0 0 word (A) ← (A) or imm16 - - - - - * * R - - ORW A,ear 2 3 1 0 word (A) ← (A) or (ear) - - - - - * * R - - ORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) or (eam) - - - - - * * R - - word (ear) ← (ear) or (A) - - - - - * * R - - word (eam) ← (eam) or (A) - - - - - * * R - * ORW ear,A 2 3 2 0 ORW eam,A 2+ 5+(a) 0 2 × (c) XORW A 1 2 0 0 word (A) ← (AH) xor (A) - - - - - * * R - - XORW A,#imm16 3 2 0 0 word (A) ← (A) xor imm16 - - - - - * * R - - XORW A,ear 2 3 1 0 word (A) ← (A) xor (ear) - - - - - * * R - - XORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) xor (eam) - - - - - * * R - - word (ear) ← (ear) xor (A) - - - - - * * R - - word (eam) ← (eam) xor (A) - - - - - * * R - * - XORW ear,A 2 3 2 0 XORW eam,A 2+ 5+(a) 0 2 × (c) NOTW A 1 2 0 0 word (A) ← not (A) - - - - - * * R - NOTW ear 2 3 2 0 word (ear) ← not (ear) - - - - - * * R - - NOTW eam 2+ 5+(a) 0 2 × (c) word (eam) ← not (eam) - - - - - * * R - * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 563 付録 表 B.8-9 論理 2 演算命令 ( ロングワード ) 6 命令 # ∼ RG B ANDL A,ear 2 6 2 0 ANDL A,eam 2+ 7+(a) 0 (d) ORL A,ear 2 6 2 0 long (A) ← (A) or (ear) - - - - - * * R - - ORL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) or (eam) - - - - - * * R - - long (A) ← (A) xor (ear) - - - - - * * R - - long (A) ← (A) xor (eam) - - - - - * * R - - LH AH I S T N Z V C RMW ニーモニック XORL A,ear 2 6 2 0 XORL A,eam 2+ 7+(a) 0 (d) LH AH I S T N Z V C RMW long (A) ← (A) and (ear) - - - - - * * R - - long (A) ← (A) and (eam) - - - - - * * R - - オペレーション ( 注意事項 ) 表中の (a), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-10 符号反転命令 ( バイト・ワード ) 6 命令 ニーモニック # ∼ RG B 1 2 0 0 byte (A) ← 0 - (A) X - - - - * * * * byte (ear) ← 0 - (ear) - - - - - * * * * - - - - - * * * * * - オペレーション NEG A - NEG ear 2 3 2 0 NEG eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 0 - (eam) - NEGW A 1 2 0 0 word (A) ← 0 - (A) - - - - - * * * * NEGW ear 2 3 2 0 word (ear) ← 0 - (ear) - - - - - * * * * - NEGW eam 2+ 5+(a) 0 2 × (c) word (eam) ← 0 - (eam) - - - - - * * * * * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-11 ノーマライズ命令 ( ロングワード ) 1 命令 ニーモニック NRML A,R0 # ∼ RG B オペレーション LH AH I S T N Z V C RMW 2 *1 1 0 long (A) ← 最初に "1" が立っていた所まで左 シフトする byte (R0) ← その場合のシフト回数 - - - - - - * - - *1:アキュムレータがすべて "0" であった場合は , 4 "0" 以外であった場合は , 6+(R0) 564 - 付録 B 命令 表 B.8-12 シフト命令 ( バイト・ワード・ロングワード ) 18 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW RORC A 2 2 0 0 byte (A) ← 右ローテートキャリー付 - - - - - * * - * - ROLC A 2 2 0 0 byte (A) ← 左ローテートキャリー付 - - - - - * * - * - RORC ear 2 3 2 0 byte (ear) ← 右ローテートキャリー付 RORC eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 右ローテートキャリー付 ROLC ear 2 3 2 ROLC eam 2+ 5+(a) 0 0 ASR A,R0 2 *1 1 0 LSR A,R0 2 *1 1 0 LSL A,R0 2 *1 1 ASRW A 1 2 LSRW A/SHRW A 1 LSLW A/SHLW A 1 ASRW A,R0 2 *1 LSRW A,R0 2 *1 LSLW A,R0 2 *1 ASRL A,R0 2 *2 LSRL A,R0 2 LSLL A,R0 2 - - - - - * * - * - - - - - - * * - * * - - - - - * * - * - - - - - - * * - * * byte (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - byte (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 0 byte (A) ← ロジカル左バレルシフト (A,R0) - - - - - * * - * - 0 0 word (A) ← 算術右シフト (A,1 ビット ) - - - - * * * - * - 2 0 0 word (A) ← ロジカル右シフト (A,1 ビット ) - - - - * R * - * - 2 0 0 word (A) ← ロジカル左シフト (A,1 ビット ) - - - - - * * - * - 1 0 word (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ←ロジカル左バレルシフト (A,R0) - - - - - * * - * - 1 0 long (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) <-- ロジカル左バレルシフト (A,R0) - - - - - * * - * - byte (ear) ← 左ローテートキャリー付 2 × (b) byte (eam) ← 左ローテートキャリー付 *1:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 5+(R0) *2:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 6+(R0) ( 注意事項 ) 表中の (a),(b) は , 表 B.5-1 および表 B.5-2 を参照してください。 565 付録 表 B.8-13 分岐命令 1 31 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW BZ/BEQ rel 2 *1 0 0 (Z) = 1 の場合分岐 - - - - - - - - - - BNZ/BNE rel 2 *1 0 0 (Z) = 0 の場合分岐 - - - - - - - - - - BC/BLO rel 2 *1 0 0 (C) = 1 の場合分岐 - - - - - - - - - - BNC/BHS rel 2 *1 0 0 (C) = 0 の場合分岐 - - - - - - - - - - BN rel 2 *1 0 0 (N) = 1 の場合分岐 - - - - - - - - - - BP rel 2 *1 0 0 (N) = 0 の場合分岐 - - - - - - - - - - BV rel 2 *1 0 0 (V) = 1 の場合分岐 - - - - - - - - - - BNV rel 2 *1 0 0 (V) = 0 の場合分岐 - - - - - - - - - - BT rel 2 *1 0 0 (T) = 1 の場合分岐 - - - - - - - - - - BNT rel 2 *1 0 0 (T) = 0 の場合分岐 - - - - - - - - - - BLT rel 2 *1 0 0 (V) xor (N) = 1 の場合分岐 - - - - - - - - - - BGE rel 2 *1 0 0 (V) xor (N) = 0 の場合分岐 - - - - - - - - - - BLE rel 2 *1 0 0 ((V) xor (N)) or (Z) = 1 の場合分岐 - - - - - - - - - - BGT rel 2 *1 0 0 ((V) xor (N)) or (Z) = 0 の場合分岐 - - - - - - - - - - BLS rel 2 *1 0 0 (C) or (Z) = 1 の場合分岐 - - - - - - - - - - BHI rel 2 *1 0 0 (C) or (Z) = 0 の場合分岐 - - - - - - - - - - BRA rel 2 *1 0 0 無条件分岐 - - - - - - - - - - JMP @A 1 2 0 0 word (PC) ← (A) - - - - - - - - - - JMP addr16 3 3 0 0 word (PC) ← addr16 - - - - - - - - - - JMP @ear 2 3 1 0 word (PC) ← (ear) - - - - - - - - - - JMP @eam 2+ 4+(a) 0 (c) word (PC) ← (eam) - - - - - - - - - - JMPP @ear 注 1) 2 5 2 0 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - JMPP @eam 注 1) 2+ 6+(a) 0 (d) word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - JMPP addr24 4 4 0 0 CALL @ear 注 2) 2 6 1 (c) CALL @eam word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (PC) ← (ear) - - - - - - - - - - 2 × (c) word (PC) ← (eam) 注 2) 2+ 7+(a) 0 CALL addr16 注 3) 3 6 0 CALLV #vct4 注 3) 1 7 0 2 × (c) ベクタコール命令 CALLP @ear 注 4) 2 10 2 2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23 11+(a) 0 10 0 CALLP @eam 注 4) 2+ CALLP addr24 注 5) 4 (c) *2 word (PC) ← addr16 word (PC) ← (eam)0-15, (PCB) ← (eam)16-23 2 × (c) word (PC) ← addr0-15, (PCB) ← addr16-23 *1:分岐が行われる場合 , 4 行われない場合 , 3 *2:3 × (c)+(b) 注 1) 分岐先アドレスの読込み (word) 注 2) W:スタックへの退避 (word), R:分岐先アドレスの読込み (word) 注 3) スタックへの退避 (word) 注 4) W:スタックへの退避 (long), R:分岐先アドレスの読込み (long) 注 5) スタックへの退避 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 566 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 付録 B 命令 表 B.8-14 分岐命令 2 19 命令 ニーモニック # ∼ RG B CBNE A,#imm8,rel 3 *1 0 0 byte (A) ≠ imm8 で分岐 - - - - - * * * * - CWBNE A,#imm16,rel 4 *1 0 0 word (A) ≠ imm16 で分岐 - - - - - * * * * - CBNE ear,#imm8,rel 4 *2 1 0 byte (ear) ≠ imm8 で分岐 - - - - - * * * * - CBNE eam,#imm8,rel 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - CWBNE eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - DBNZ ear,rel 3 *5 2 byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - DBNZ eam,rel 3+ *6 2 - - - - - * * * - * DWBNZ ear,rel 3 *5 2 DWBNZ eam,rel 3+ *6 2 0 オペレーション 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 0 LH AH I S T N Z V C RMW - - - - - * * * - - 2 × (c) word (eam) = (eam) - 1, (eam) ≠ 0 で分岐 - - - - - * * * - * word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 INT #vct8 2 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - INT addr16 3 16 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INTP addr24 4 17 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INT9 1 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - RETI 1 *8 0 *7 割込みからの復帰 - - * * * * * * * - 2 6 0 (c) 関数の入口で , 旧フレームポインタをスタッ クに保存し , 新フレームポインタの設定 , お よびローカルポインタの領域を確保する - - - - - - - - - - 1 5 0 (c) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - LINK #imm8 UNLINK RET RETP *1:分岐が行われる場合 , 5 行われない場合 , 4 *2:分岐が行われる場合 , 13 行われない場合 , 12 *3:分岐が行われる場合 , 7+(a) 行われない場合 , 6+(a) *4:分岐が行われる場合 , 8 行われない場合 , 7 *5:分岐が行われる場合 , 7 行われない場合 , 6 *6:分岐が行われる場合 , 8+(a) 行われない場合 , 7+(a) *7:次の割込み要求へ分岐する場合 , 3 × (b)+2 × (c) 今の割込みから復帰の場合 , 6 × (c) *8:次の割込みへ分岐する場合 , 15 今の割込みから復帰する場合 , 17 注 1) CBNE / CWBNE 命令では , RWj+ のアドレッシングモードは , 使用しないでください。 注 2) スタックからの復帰 (word) 注 3) スタックからの復帰 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 567 付録 表 B.8-15 その他制御命令 ( バイト・ワード・ロングワード ) 28 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW PUSHW A 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (A) - - - - - - - - - - PUSHW AH 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (AH) - - - - - - - - - - PUSHW PS 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (PS) - - - - - - - - - - PUSHW rlst 2 *3 *5 *4 (SP) ← (SP) - 2n, ((SP)) ← (rlst) - - - - - - - - - - POPW A 1 3 0 (c) word (A) ← ((SP)), (SP) ← (SP) + 2 - * - - - - - - - - POPW AH 1 3 0 (c) word (AH) ← ((SP)), (SP) ← (SP) + 2 - - - - - - - - - - POPW PS 1 4 0 (c) word (PS) ← ((SP)), (SP) ← (SP) + 2 - - * * * * * * * - POPW rlst 2 *2 *5 *4 (rlst) ← ((SP)), (SP) ← (SP) + 2n - - - - - - - - - - JCTX @A 1 14 0 6 × (c) コンテキストスイッチ命令 - - * * * * * * * - AND CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) and imm8 - - * * * * * * * - OR CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) or imm8 - - * * * * * * * - MOV RP,#imm8 2 2 0 0 byte (RP) ← imm8 - - - - - - - - - - MOV ILM,#imm8 2 2 0 0 byte (ILM) ← imm8 - - - - - - - - - - MOVEA RWi,ear 2 3 1 0 word (RWi) ← ear - - - - - - - - - - MOVEA RWi,eam 2+ 2+(a) 1 0 word (RWi) ← eam - - - - - - - - - - MOVEA A,ear 2 1 0 0 word (A) ← ear - * - - - - - - - - MOVEA A,eam 2+ 1+(a) 0 0 word (A) ← eam - * - - - - - - - - ADDSP #imm8 2 3 0 0 word (SP) ← (SP) + ext(imm8) - - - - - - - - - - ADDSP #imm16 3 3 0 0 word (SP) ← (SP) + imm16 - - - - - - - - - - MOV A,brg1 2 *1 0 0 byte (A) ← (brg1) Z * - - - * * - - - MOV brg2,A 2 1 0 0 byte (brg2) ← (A) - - - - - * * - - - NOP 1 1 0 0 ノーオペレーション - - - - - - - - - - ADB 1 1 0 0 AD 空間アクセス用プリフィックス コード - - - - - - - - - - DTB 1 1 0 0 DT 空間アクセス用プリフィックス コード - - - - - - - - - - PCB 1 1 0 0 PC 空間アクセス用プリフィックス コード - - - - - - - - - - SPB 1 1 0 0 SP 空間アクセス用プリフィックス コード - - - - - - - - - - NCC 1 1 0 0 フラグ無変化用プリフィックスコー ド - - - - - - - - - - CMR 1 1 0 0 コモンレジスタバンク用プリフィッ クス - - - - - - - - - - *1:PCB,ADB,SSB,USB・・・・・・1 ステート DTB,DPR ・・・・・・・・・・2 ステート *2:7+3 × (POP する回数 )+2 × (POP する最後のレジスタ番号 ), RLST=0( 転送レジスタ無し ) の場合 7 *3:29+3 × (PUSH する回数 )-3 × (PUSH する最後のレジスタ番号 ), RLST=0 ( 転送レジスタ無し ) の場合 8 *4:(POP する回数 ) × (c), または (PUSH する回数 ) × (c) *5:(POP する回数 ), または (PUSH する回数 ) ( 注意事項 ) 表中の (a),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 568 付録 B 命令 表 B.8-16 ビット操作命令 21 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVB A,dir:bp 3 5 0 (b) byte (A) ← (dir:bp)b Z * - - - * * - - - MOVB A,addr16:bp 4 5 0 (b) byte (A) ← (addr16:bp)b Z * - - - * * - - - MOVB A,io:bp 3 4 0 (b) byte (A) ← (io:bp)b Z * - - - * * - - - MOVB dir:bp,A 3 7 0 2 × (b) bit (dir:bp)b ← (A) - - - - - * * - - * MOVB addr16:bp,A 4 7 0 2 × (b) bit (addr16:bp)b ← (A) - - - - - * * - - * MOVB io:bp,A 3 6 0 2 × (b) bit (io:bp)b ← (A) - - - - - * * - - * SETB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 1 - - - - - - - - - * SETB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 1 - - - - - - - - - * SETB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 1 - - - - - - - - - * CLRB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 0 - - - - - - - - - * CLRB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 0 - - - - - - - - - * CLRB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 0 - - - - - - - - - * BBC dir:bp,rel 4 *1 0 (b) (dir:bp) b = 0 の場合分岐 - - - - - - * - - - BBC addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 0 の場合分岐 - - - - - - * - - - BBC io:bp,rel 4 *2 0 (b) (io:bp) b = 0 の場合分岐 - - - - - - * - - - BBS dir:bp,rel 4 *1 0 (b) (dir:bp) b = 1 の場合分岐 - - - - - - * - - - BBS addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 1 の場合分岐 - - - - - - * - - - BBS io:bp,rel 4 *2 0 (b) (io:bp) b = 1 の場合分岐 - - - - - - * - - - SBBS addr16:bp,rel 5 *3 0 - - - - - - * - - * 2 × (b) (addr16:bp) b = 1 で分岐 , bit (addr16:bp) b ← 1 WBTS io:bp 3 *4 0 *5 WBTC io:bp 3 *4 0 *5 (io:bp) b = 1 になるまで待つ - - - - - - - - - - (io:bp) b = 0 になるまで待つ - - - - - - - - - - LH AH I S T N Z V C RMW *1:分岐が行われる場合 , 8 分岐が行われない場合 , 7 *2:分岐が行われる場合 , 7 分岐が行われない場合 , 6 *3:条件成立の場合 , 10 未成立の場合 , 9 *4:不定回数 *5:条件が成立するまで ( 注意事項 ) 表中の (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 # ∼ RG B SWAP 1 3 0 0 byte (A)0-7 ←→ (A)8-15 - - - - - - - - - - SWAPW 1 2 0 0 word (AH) ←→ (AL) - * - - - - - - - - EXT 1 1 0 0 byte 符号拡張 X - - - - * * - - - ニーモニック オペレーション EXTW 1 2 0 0 word 符号拡張 - X - - - * * - - - ZEXT 1 1 0 0 byte ゼロ拡張 Z - - - - R * - - - ZEXTW 1 1 0 0 word ゼロ拡張 - Z - - - R * - - - 569 付録 表 B.8-18 ストリング命令 10 命令 # ∼ RG B MOVS / MOVSI 2 *2 *5 *3 MOVSD 2 *2 *5 *3 SCEQ / SCEQI 2 *1 *8 SCEQD 2 *1 *8 FILS / FILSI 2 6m+6 MOVSW / MOVSWI 2 *2 MOVSWD 2 *2 *5 SCWEQ / SCWEQI 2 *1 SCWEQD 2 *1 FILSW / FILSWI 2 6m+6 ニーモニック LH AH I S T N Z V C RMW byte 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - byte 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *4 byte 検索 @AH+ ← AL, カウンタ = RW0 - - - - - * * * * - *4 byte 検索 @AH- ← AL, カウンタ = RW0 - - - - - * * * * - *8 *3 byte 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - *5 *6 word 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - *6 word 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *8 *7 word 検索 @AH+ - AL, カウンタ = RW0 - - - - - * * * * - *8 *7 word 検索 @AH- - AL, カウンタ = RW0 - - - - - * * * * - *8 *6 word 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - オペレーション *1:RW0 が "0" の場合 , 5 カウントアウトの場合 , 4+7 × (RW0) 一致した場合 , 7n+5 *2:RW0 が "0" の場合 , 5 "0" 以外の場合 , 4+8 × (RW0) *3:(b) × (RW0)+(b) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (b) の項目 を算出してください。 *4:(b)+n *5:2 × (b) × (RW0) *6:(c) × (RW0)+(c) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (c) の項目 を算出してください。 *7:(c) × n *8:(b) × (RW0) ( 注意事項 ) ・ m:RW0 値 ( カウンタ値 ) n:ループした回数 ・ 表中の (b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 570 付録 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 に示します。 571 付録 図 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 CBNE @RW2+d8, #8, rel 70 + 0=70 F0 + 2=F2 命令 572 A SWAP ADDSP ADB SPB #8 CMP A, #8 A, #8 dir, A A, dir io, A A, io JMP BRA 60 @A rel MULU DIVU ea 系命令 その 2 B0 C0 D0 E0 F0 ea 系命令 その 8 ea 系命令 その 7 rel BNT BT BNV BV BP BN rel rel rel rel rel BNC/BHS rel BC/BLO BNZ/BNE rel +F +E +D +C +B LSRW ASRW LSLW NEGW A A A A XORW ORW ANDW ANDW PUSHW POPW A, #16 A A A A PUSHW POPW rlst rlst XORW PUSHW POPW A, #16 PS PS MOVW RWi, ea 2 バイト XCHW RWi, ea 系命令 文字列操 XCH Ri, ea 作系命令 MOVW ea, RWi ビット操 MOV ea, Ri 作系命令 CMPW MOVL MOVW RETI A, #16 A, #32 addr16, A ORW PUSHW POPW A A, #16 AH AH A A ADDSP MULUW NOTW #16 A SWAPW ZEXTW EXTW CMPL CMPW A, #32 BHI BLS BGT BLE BGE BLT rel rel rel rel rel rel A MOVW MOVW RETP A, SP io, #16 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 MOVW MOVX RET A SP, A A, addr16 A, #8 A0 ADDW MOVW MOVW INT MOVW MOVW MOVW A, MOVW ea 系命令 MOVW A, #16 A, dir A, io #vct8 A, RWi RWi, A RWi, #16 @RWi+d8 @RWi+d8,A その 9 NOT XOR A, #8 90 rel SUBL SUBW A, #32 A A A OR OR CCR, #8 80 MOV MOV MOVX MOVX A, MOVN CALL BZ/BEQ ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 #vct4 rel その 1 70 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV 50 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 MOV MOV MOV 40 MOV MOV CBNE A, CWBNE A, MOVW MOVW INTP MOV +A RP, #8 ILM, #8 #8, rel #16, rel A, #16 A,addr16 addr24 Ri, ea +9 UNLINK A A A, #8 A, #8 SUBC SUB ADD 30 AND AND MOV MOV CALL ea 系命令 CCR, #8 A, #8 dir, #8 io, #8 addr16 その 5 CMP A A, dir A, dir ADDC SUB ADD 20 LINK ADDL ADDW #imm8 A, #32 ZEXT DTB @A EXT JCTX PCB A SUBDC ADDDC NEG NCC INT9 A CMR NOP 10 SUBW MOVW MOVW INT MOVEA A, #16 dir, A io, A addr16 RWi, ea +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-2 基本ページマップ 573 574 +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 SPB ADB DTB FILSWI PCB E0 F0 付録 B 命令 表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH) 575 576 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 DIV 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) 577 578 +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) 579 580 +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 A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @RW0 +RW7, rel A,@RW0+ @RW0+RW7 @RW0+, rel SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @RW1 +RW7, rel A,@RW1+ @RW1+RW7 @RW1+, rel ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @PC 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+, rel +d16, rel 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+, rel addr16, rel +E +F +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, SUB +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @RW3 +d16, rel 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, rel +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 @RW2 +d16, rel 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, rel +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 @RW1 +d16, rel 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, rel +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 @RW0 +d16, rel 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, rel ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @RW7 +d8, rel 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, rel ADD F0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @RW6 +d8, rel 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, rel 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 @RW5 +d8, rel 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, rel 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 @RW4 +d8, rel 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, rel 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 @RW3 +d8, rel 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, rel 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 @RW2 +d8, rel 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, rel 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 @RW1 +d8, rel 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, rel 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 @RW0 +d8, rel 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, rel 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H) 581 582 NOT NOT @RW1+ @RW1+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG 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 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 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 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 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 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 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 AND AND OR OR R6 @RW6+d8 R6, A @RW6+d8, A R6, A @RW6+d8, A NEG AND AND OR OR R5 @RW5+d8 R5, A @RW5+d8, A R5, A @RW5+d8, A NEG AND AND OR OR R4 @RW4+d8 R4, A @RW4+d8, A R4, A @RW4+d8, A NEG AND AND OR OR R3 @RW3+d8 R3, A @RW3+d8, A R3, A @RW3+d8, A NEG AND AND OR OR R2 @RW2+d8 R2, A @RW2+d8,A R2, A @RW2+d8,A NEG 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 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 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 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) ADDW A, SUBW ADDW ADDCW +F CMPW CMPW A, ANDW ANDW A, ANDW A, ORW ORW ORW ORW A, A, ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, rel @PC+d16,rel ADDCW A, ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 @RW3+, rel addr16, rel +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 SUBW A, ADDCW SUBW A, ANDW XORW XORW A, DWBNZ DWBNZ A,@RW1+ @RW1+RW7 @RW1+, rel @RW1+RW7,rel SUBW ADDW A, ADDW CMPW A, +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 CMPW XORW XORW A, DWBNZ DWBNZ A,@RW0+ @RW0+RW7 @RW0+, rel @RW0+RW7,rel 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, rel @RW3+d16,rel 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, rel @RW2+d16,rel 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, rel @RW1+d16,rel 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, rel @RW0+d16,rel 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, rel @RW7+d8,rel 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, rel @RW6+d8,rel 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, rel @RW5+d8,rel 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, rel @RW4+d8,rel 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, rel @RW3+d8,rel 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, rel @RW2+d8,rel 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, rel @RW1+d8,rel 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, rel @RW0+d8,rel 10 +0 00 付録 B 命令 表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H) 583 584 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) 585 586 MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA RW7, 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 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 +E +F MOVEA MOVEA RW7@RW3+ RW7, addr16 MOVEA MOVEA RW7, RW7,@RW1+ @RW1+RW7 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, RW0,@RW1+ @RW1+RW7 RW1,@RW1+ @RW1+RW7 RW2,@RW1+ @RW1+RW7 RW3,@RW1+ @RW1+RW7 RW4,@RW1+ @RW1+RW7 RW5,@RW1+ @RW1+RW7 RW6,@RW1+ @RW1+RW7 +D MOVEA MOVEA RW6,@RW3+ RW6, addr16 MOVEA MOVEA RW7, RW7,@RW0+ @RW0+RW7 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 +C +B RW0,@RW3 @RW3+d16 +A RW0,@RW2 @RW2+d16 MOVEA MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA RW7, 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5 MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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 MOVEA MOVEA RW0, MOVEA MOVEA RW1, MOVEA MOVEA RW2, MOVEA MOVEA RW3, MOVEA MOVEA RW4, MOVEA MOVEA RW5, MOVEA MOVEA RW6, MOVEA MOVEA 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-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) 587 588 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) 589 590 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 R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, 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 @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 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 A0 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) 591 592 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 デューティ駆動方式 LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) .............................465 1/2 バイアス・1/2 デューティ 1/2 バイアス・1/2 デューティ出力波形 ............463 1/3 デューティ駆動方式 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) .............................468 1/3 バイアス・1/3 デューティ 1/3 バイアス・1/3 デューティ出力波形例 ........466 1/3 バイアス・1/4 デューティ 1/3 バイアス・1/4 デューティ出力波形例 ........469 1/4 デューティ駆動方式 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) .............................471 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR) .......................271 16 ビットフリーランタイマ 16 ビットフリーランタイマの動作説明 ............306 16 ビットフリーランタイマの割込み ................302 16 ビットフリーランタイマの割込みと EI2OS ..........................................................................302 16 ビットフリーランタイマ部レジスタ一覧 ..........................................................................288 16 ビットリロードタイマ 16 ビットリロードタイマ使用上の注意 ............284 16 ビットリロードタイマの EI2OS 機能 ...........273 16 ビットリロードタイマの設定 ........................274 16 ビットリロードタイマの端子 ........................265 16 ビットリロードタイマの端子のブロック ダイヤグラム ..................................................265 16 ビットリロードタイマの動作モード ............260 16 ビットリロードタイマのブロック ダイヤグラム ..................................................263 16 ビットリロードタイマのレジスタ一覧 ........266 16 ビットリロードタイマの割込み ....................273 16 ビットリロードタイマの割込みと EI2OS ..................................................................262, 273 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................354 16 ビットリロードレジスタ 16 ビットリロードレジスタ (TMRLR) ..............272 24 ビットオペランド 24 ビットオペランド指定によるリニア アドレッシング ................................................32 2M ビット 2M ビットフラッシュメモリの特長 ..................500 32 ビットレジスタ 32 ビットレジスタ間接指定による アドレッシング ................................................32 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータの EI2OS 機能 .......432 8/10 ビット A/D コンバータの機能 ....................418 8/10 ビット A/D コンバータの端子 ....................421 8/10 ビット A/D コンバータの端子のブロック ダイヤグラム ..................................................422 8/10 ビット A/D コンバータのブロック ダイヤグラム ..................................................419 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................423 8/10 ビット A/D コンバータの割込み ............... 432 8/10 ビット A/D コンバータの割込みと EI2OS ..................................................................418, 432 593 A D A DCT データカウンタ (DCT) .........................................142 DDR レジスタ DDR レジスタにてポート出力に設定した場合の リソース兼用ポートの動作について ..........163 DPR ダイレクトページレジスタ (DPR) .......................52 DTB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) .......................................57 バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........ 53 DTP DTP/ 外部割込み回路使用上の注意 ...................389 DTP/ 外部割込み回路の設定 ............................... 384 DTP/ 外部割込み回路の端子 ............................... 375 DTP/ 外部割込み回路の端子部のブロック ダイヤグラム ..................................................375 DTP/ 外部割込み回路のブロックダイヤグラム ..........................................................................373 DTP/ 外部割込み回路のレジスタ .......................376 DTP/ 外部割込み回路の割込みと EI2OS ........... 372 DTP/ 外部割込み機能 ...........................................372 DTP/ 外部割込み許可レジスタ (ENIR) ..............380 DTP/ 外部割込み動作 ...........................................385 DTP/ 外部割込み要因レジスタ (EIRR) ..............377 DTP 機能の動作説明 ............................................ 388 アキュムレータ (A) ................................................40 A/D コンバータ A/D コンバータの電源アナログ入力の投入順序に ついて ................................................................21 A/D コンバータを使用しない場合の端子処理に ついて ................................................................22 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ 0(ADCS0) ..........426 A/D 制御ステータスレジスタ 1(ADCS1) ..........424 A/D データレジスタ A/D データレジスタ (ADCR0/ADCR1) ..............428 A/D 変換チャネル設定レジスタ A/D 変換チャネル設定レジスタ (ADMR) .........430 A/D 変換データ保護機能 A/D 変換データ保護機能 .....................................437 ADB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) ........................................57 バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........53 ADCR0/ADCR1 A/D データレジスタ (ADCR0/ADCR1) ..............428 ADCS0 A/D 制御ステータスレジスタ 0(ADCS0) ..........426 ADCS1 A/D 制御ステータスレジスタ 1(ADCS1) ..........424 ADMR A/D 変換チャネル設定レジスタ (ADMR) .........430 B BAP バッファアドレスポインタ (BAP) .....................143 C CCR コンディションコードレジスタ (CCR) の構成 ............................................................................47 CDCR0/CDCR1 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) ..........................................................................344 CKSCR クロック選択レジスタ (CKSCR) の構成 .............77 CMR コモンレジスタバンクプリフィックス (CMR) ............................................................................59 CPCLR コンペアクリアレジスタ (CPCLR) ....................291 CPU CPU ...........................................................................26 CPU 間欠動作モード CPU 間欠動作モード ........................................89, 96 CPU 動作モード CPU 動作モードと消費電流 ..................................88 594 E E2PROM E2PROM メモリマップ ........................................ 491 2OS EI 16 ビットフリーランタイマの割込みと EI2OS ..........................................................................302 16 ビットリロードタイマの EI2OS 機能 ........... 273 16 ビットリロードタイマの割込みと EI2OS ..................................................................262, 273 8/10 ビット A/D コンバータの EI2OS 機能 ....... 432 8/10 ビット A/D コンバータの割込みと EI2OS ..................................................................418, 432 DTP/ 外部割込み回路の割込みと EI2OS ........... 372 EI2OS を使用した変換動作 ................................. 436 PPG タイマの割込みと EI2OS ............................. 312 UART に関連する割込みと EI2OS .....................329 UART の EI2OS 機能 ............................................ 347 UART の割込みと EI2OS .....................................347 アウトプットコンペアの EI2OS 機能 ................ 304 アウトプットコンペアの割込みと EI2OS ......... 304 インプットキャプチャの EI2OS 機能 ................ 303 インプットキャプチャの割込みと EI2OS ......... 303 拡張インテリジェント I/O サービス (EI2OS) ..........................................................................139 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) .......................... 146 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 .......................141 拡張インテリジェント I/O サービス (EI2OS) の 使用手順 .......................................................... 145 拡張インテリジェント I/O サービス (EI2OS) の 処理手順 .......................................................... 144 拡張インテリジェント I/O サービス (EI2OS) の 動作 ..................................................................140 拡張インテリジェント I/O サービス (EI2OS) の プログラム例 ..................................................153 タイムベースタイマの割込みと EI2OS .............237 EI2OS ステータスレジスタ EI2OS ステータスレジスタ (ISCS) .....................142 EIRR DTP/ 外部割込み要因レジスタ (EIRR) ..............377 ELVR 要求レベル設定レジスタ (ELVR) ......................382 ENIR DTP/ 外部割込み許可レジスタ (ENIR) ..............380 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................557 FMCS フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................502 FPT-100P-M06 FPT-100P-M06 の外形寸法図 ..................................8 I I/O I/O マップ ..............................................................526 I/O 領域 ....................................................................28 I/O アドレスポインタ I/O アドレスポインタ (IOA) ................................142 I2C アドレスレジスタ I2C アドレスレジスタ (IADR) .............................406 I2C インタフェース I2C インタフェースの構成図 ..............................394 I2C インタフェースの転送フロー ......................411 I2C インタフェースの動作フロー ......................414 I2C インタフェースの特長 ..................................392 I2C インタフェースのブロックダイヤグラム ..........................................................................393 I2C インタフェースのモードフロー ..................413 I2C インタフェースのレジスタ ..........................395 2 I C クロックコントロールレジスタ I2C クロックコントロールレジスタ (ICCR) .....403 I2C コントロールレジスタ I2C コントロールレジスタ (IBCR) .....................398 2 I C ステータスレジスタ I2C ステータスレジスタ (IBSR) .........................396 I2C データレジスタ I2C データレジスタ (IDAR) .................................407 IADR I2C アドレスレジスタ (IADR) .............................406 IBCR I2C コントロールレジスタ (IBCR) .....................398 IBSR I2C ステータスレジスタ (IBSR) .........................396 ICCR I2C クロックコントロールレジスタ (ICCR) .....403 ICR 割込み制御レジスタ (ICR) の構成 .....................123 ICR00 ∼ ICR15 割込み制御レジスタ (ICR00 ∼ ICR15) ..............121 ICS01 インプットキャプチャコントロールステータスレ ジスタ (ICS01) ................................................295 IDAR I2C データレジスタ (IDAR) ................................407 ILM インタラプトレベルマスクレジスタ (ILM) .......50 INT SCC,MSS,INT ビットの競合についての注意 ...400 INT9 INT9 割込み ...........................................................492 IOA I/O アドレスポインタ (IOA) ............................... 142 IPCP0,IPCP1 インプットキャプチャデータレジスタ (IPCP0,IPCP1) ..................................................295 ISCS EI2OS ステータスレジスタ (ISCS) .....................142 ISD 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 .......................141 L LCD LCD 未使用時の端子処理について .....................22 LCDC 制御レジスタ LCDC 制御レジスタ下位 (LCRL) .......................452 LCDC 制御レジスタ上位 (LCRH) ...................... 454 LCDC 範囲レジスタ LCDC 範囲レジスタ (LCRR) ............................... 456 LCD コントローラ LCD コントローラ / ドライバに関連する端子 ..........................................................................447 LCD コントローラ / ドライバに関連する端子の ブロックダイヤグラム ..................................449 LCD コントローラ / ドライバに関連するレジスタ ..........................................................................451 LCD コントローラ / ドライバの外部分割抵抗 445 LCD コントローラ / ドライバの機能 ................ 440 LCD コントローラ / ドライバの構成 ................ 441 LCD コントローラ / ドライバの電源電圧 ........442 LCD コントローラ / ドライバの動作説明 ........461 LCD コントローラ / ドライバの内部分割抵抗 ..........................................................................443 LCD パネル LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) ............................465 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) ............................468 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) ............................471 LCRH LCDC 制御レジスタ上位 (LCRH) ...................... 454 LCRL LCDC 制御レジスタ下位 (LCRL) .......................452 LCRR LCDC 範囲レジスタ (LCRR) ............................... 456 LPMCR 低消費電力モード制御レジスタ (LPMCR) ......... 93 595 M MB90800 シリーズ MB90800 シリーズの特長 .......................................2 MB90800 シリーズの内部周辺機能 ( リソース ) ..............................................................................3 MD2 ∼ MD0 モード端子 (MD2 ∼ MD0) ..................................157 MSS SCC,MSS,INT ビットの競合についての注意 ..........................................................................400 PPG タイマのレジスタ一覧 ................................314 PPG タイマの割込みと EI2OS ............................. 312 PPG ダウンカウンタレジスタ PPG ダウンカウンタレジスタ (PDCR) ..............319 PPG デューティ設定レジスタ PPG デューティ設定レジスタ (PDUT) ..............320 PS プロセッサステータス (PS) の構成 .....................46 PWM PWM 動作 .............................................................. 321 R N NCC フラグ変化抑止プリフィックス (NCC) ...............60 O OCCP0,OCCP1 アウトプットコンペアレジスタ (OCCP0,OCCP1) ..........................................................................297 OCSL,OCSH アウトプットコンペアコントロールステータス レジスタ (OCSL,OCSH) .................................297 P PACSR プログラムアドレス検出コントロールステータス レジスタ (PACSR) ..........................................489 PADR0/PADR1 プログラムアドレス検出レジスタ (PADR0/ PADR1) ............................................................488 PC プログラムカウンタ (PC) ......................................51 PCB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) ........................................57 バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........53 PCNT PPG 制御ステータスレジスタ (PCNT) ..............316 PCSR PPG 周期設定レジスタ (PCSR) ...........................320 PDCR PPG ダウンカウンタレジスタ (PDCR) ..............319 PDUT PPG デューティ設定レジスタ (PDUT) ..............320 PLL クロック逓倍率 PLL クロック逓倍率の選択 ..................................81 PLL クロックモード メインクロックモード ,PLL クロックモード , サブクロックモード ........................................80 PPG 周期設定レジスタ PPG 周期設定レジスタ (PCSR) ...........................320 PPG 制御ステータスレジスタ PPG 制御ステータスレジスタ (PCNT) ..............316 PPG タイマ PPG タイマの機能 ................................................312 PPG タイマのサンプルプログラム ....................325 PPG タイマのブロックダイヤグラム ................313 596 RAM RAM 上の多バイトデータの格納状態 ................35 表示用 RAM と出力端子 .....................................457 RAM 領域 RAM 領域 ................................................................ 28 ROMM ROM ミラー機能選択レジスタ (ROMM) ..........497 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールのブロック ダイヤグラム ..................................................496 ROM ミラー機能選択レジスタ ROM ミラー機能選択レジスタ (ROMM) ..........497 ROM 領域 ROM 領域 ................................................................ 28 RP レジスタバンクポインタ (RP) ..............................49 S SCC SCC,MSS,INT ビットの競合についての注意 ..........................................................................400 SCL SDA="L", SCL="L" 時におけるスタート コンディション発生命令の実行 .................. 409 SCR0/SCR1 制御レジスタ (SCR0/SCR1) ................................334 SDA SDA="L", SCL="L" 時におけるスタート コンディション発生命令の実行 .................. 409 SDCR0,SDCR1 シリアル I/O プリスケーラレジスタ (SDCR0,SDCR1) .............................................. 221 SDR0,SDR1 シリアルシフトデータレジスタ (SDR0,SDR1) ..........................................................................220 SIDR0/SIDR1 インプットデータレジスタ (SIDR0/SIDR1) .....342 SMCS シリアルモードコントロールステータスレジスタ 下位 (SMCS0,SMCS1) .................................... 218 シリアルモードコントロールステータスレジスタ 上位 (SMCS) ....................................................216 SMR0/SMR1 モードレジスタ (SMR0/SMR1) ........................... 337 SODR0/SODR1 アウトプットデータレジスタ (SODR0/SODR1) ..........................................................................343 SPB バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) ........................................57 SSB バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........53 SSP システムスタックポインタ (SSP) ........................44 SSR0/SSR1 ステータスレジスタ (SSR0/SSR1) ......................339 STOP 状態 STOP 状態 ..............................................................225 W WDTC ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................246 WTC 時計タイマ制御レジスタ (WTC) ........................ 256 T TBTC タイムベースタイマ制御レジスタ (TBTC) .......235 TCCSH,TCCSL タイマコントロールステータスレジスタ (TCCSH,TCCSL) .............................................291 TCDT タイマデータレジスタ (TCDT) ..........................290 TMCS 時計クロック出力制御レジスタ (TMCS) ..........476 TMCSR タイマコントロールステータスレジスタ下位 (TMCSR) ..........................................................269 タイマコントロールステータスレジスタ上位 (TMCSR) ..........................................................267 TMR 16 ビットタイマレジスタ (TMR) .......................271 TMRLR 16 ビットリロードレジスタ (TMRLR) ..............272 U UART UART 使用上の注意 .............................................369 UART に関連する割込みと EI2OS .....................329 UART の EI2OS 機能 ............................................347 UART の機能 .........................................................328 UART の端子 .........................................................332 UART の端子のブロックダイヤグラム .............332 UART の動作 .........................................................357 UART のブロックダイヤグラム .........................330 UART のレジスタ一覧 .........................................333 UART の割込み .....................................................346 UART の割込みと EI2OS .....................................347 UART ボーレート設定 .........................................350 USB バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........53 USP ユーザスタックポインタ (USP) ............................45 V V 端子 V 端子の切換え .....................................................444 597 あ アービトレーション アービトレーション .............................................409 アウトプットコンペア アウトプットコンペアの EI2OS 機能 ................304 アウトプットコンペアの動作説明 .....................309 アウトプットコンペアの割込み .........................304 アウトプットコンペアの割込みと EI2OS .........304 アウトプットコンペア部レジスタ一覧 .............289 アウトプットコンペアコントロールステータスレジ スタ アウトプットコンペアコントロールステータス レジスタ (OCSL,OCSH) .................................297 アウトプットコンペアレジスタ アウトプットコンペアレジスタ (OCCP0,OCCP1) ..........................................................................297 アウトプットデータレジスタ アウトプットデータレジスタ (SODR0/SODR1) ..........................................................................343 アキュムレータ アキュムレータ (A) ................................................40 アクセス 多バイト長データのアクセス ...............................36 低消費電力モード制御レジスタへのアクセス ............................................................................95 アクセス空間 バンクレジスタとアクセス空間 ...........................33 アクノリッジ アクノリッジ .........................................................409 アドレス一致検出機能 アドレス一致検出機能の動作 .............................490 アドレス一致検出機能のブロックダイヤグラム ..........................................................................486 アドレス一致検出機能のレジスタ一覧 .............487 アドレス指定方法 アドレス指定方法 .................................................508 アドレッシング 24 ビットオペランド指定によるリニア アドレッシング ................................................32 32 ビットレジスタ間接指定によるアドレッシン グ ........................................................................32 アドレッシング .............................................408, 534 間接アドレッシング .............................................543 直接アドレッシング .............................................536 い 移行 クロックモードの移行 ...........................................80 スタンバイモードへの移行と割込み .................109 ストップモードへの移行 .....................................104 スリープモードへの移行 .......................................98 タイムベースタイマモードへの移行 .................100 時計モードへの移行 .............................................102 一時停止 セクタ消去を一時停止する .................................512 イベントカウントモード イベントカウントモード .....................................282 イベントカウントモード ( 外部クロックモード ) ..........................................................................261 598 インターバル 時計タイマのインターバル割込み機能 ............258 インターバルタイマ インターバルタイマ機能 .................................... 232 インターバルタイマ機能 ( タイムベースタイマ ) の動作 .............................................................. 238 インタラプトレベルマスクレジスタ インタラプトレベルマスクレジスタ (ILM) .......50 インプットキャプチャ インプットキャプチャの EI2OS 機能 ................ 303 インプットキャプチャの動作 ............................308 インプットキャプチャの割込み ........................ 303 インプットキャプチャの割込みと EI2OS ......... 303 インプットキャプチャ部レジスタ一覧 ............289 インプットキャプチャコントロールステータスレジ スタ インプットキャプチャコントロールステータス レジスタ (ICS01) ............................................ 295 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCP0,IPCP1) ..................................................295 インプットデータレジスタ インプットデータレジスタ (SIDR0/SIDR1) .....342 う ウォッチドッグタイマ ウォッチドッグタイマ機能 ................................244 ウォッチドッグタイマ使用上の注意 ................ 251 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................246 ウォッチドッグタイマのクロックソースの 指定機能 .......................................................... 258 ウォッチドッグタイマの動作 ............................249 ウォッチドッグタイマのプログラム例 ............252 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................248 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................246 お オペランド 多バイト長オペランドの場合の格納状態 ..........35 か 外形寸法図 FPT-100P-M06 の外形寸法図 ..................................8 解除 スタンバイモードの割込みによる解除 ............109 ストップモードの解除 ........................................ 104 スリープモードの解除 .......................................... 98 タイムベースタイマモードの解除 .................... 100 遅延割込み要因発生 / 解除レジスタ (DIRR) .... 481 時計モードの解除 ................................................102 解除時 ストップモード解除時 ........................................ 109 外部クロック 外部クロックによるボーレート ........................ 356 外部クロックを使用する場合の注意について ............................................................................21 振動子と外部クロックの接続 ...............................85 外部クロックモード イベントカウントモード ( 外部クロックモード ) ..........................................................................261 外部シフトクロックモード 外部シフトクロックモード .................................224 外部分割抵抗 LCD コントローラ / ドライバの外部分割抵抗 ..........................................................................445 外部分割抵抗の使用 .............................................446 外部リセット 外部リセット端子部のブロックダイヤグラム ............................................................................67 外部割込み DTP/ 外部割込み回路使用上の注意 ...................389 DTP/ 外部割込み回路の設定 ...............................384 DTP/ 外部割込み回路の端子 ...............................375 DTP/ 外部割込み回路の端子部のブロック ダイヤグラム ..................................................375 DTP/ 外部割込み回路のブロックダイヤグラム ..........................................................................373 DTP/ 外部割込み回路のレジスタ .......................376 DTP/ 外部割込み回路の割込みと EI2OS ...........372 DTP/ 外部割込み機能 ...........................................372 DTP/ 外部割込み動作 ...........................................385 外部割込み機能 .....................................................387 外部割込み許可レジスタ DTP/ 割込み許可レジスタ (ENIR) ......................380 外部割込み要因レジスタ DTP/ 外部割込み要因レジスタ (EIRR) ..............377 カウンタ カウンタ動作 .........................................................261 カウンタの動作状態 .............................................274 書込み データ書込み上の注意 .........................................508 フラッシュメモリ書込み / 消去の詳細説明 .....506 フラッシュメモリ書込み / 消去の方法 .............500 フラッシュメモリへのデータ書込み / 消去の方法 ..........................................................................500 拡張インテリジェント I/O サービス 拡張インテリジェント I/O サービス (EI2OS) ..........................................................................139 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) ...........................146 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 .......................141 拡張インテリジェント I/O サービス (EI2OS) の 使用手順 ..........................................................145 拡張インテリジェント I/O サービス (EI2OS) の 処理手順 ..........................................................144 拡張インテリジェント I/O サービス (EI2OS) の 動作 ..................................................................140 拡張インテリジェント I/O サービス (EI2OS) の プログラム例 ..................................................153 格納状態 RAM 上の多バイトデータの格納状態 ................35 スタック上の多バイトデータの格納状態 ...........36 多バイト長オペランドの場合の格納状態 ...........35 間接アドレッシング 間接アドレッシング .............................................543 き 起動 ソフトウェア割込みの起動 ................................137 ハードウェア割込みの起動 ................................129 輝度調整 内部分割抵抗使用時の輝度調整 ........................ 444 基本構成 シリアル書込み接続の基本構成 ........................ 516 供給電圧 供給電圧の安定化 ..................................................20 競合 SCC,MSS,INT ビットの競合についての注意 ..........................................................................400 切換え V 端子の切換え ....................................................444 く クロック クロック供給機能 ........................................233, 239 クロック供給マップ .............................................. 23 クロックの概要 ......................................................74 クロック選択レジスタ クロック選択レジスタ (CKSCR) の構成 ............. 77 クロックソース ウォッチドッグタイマのクロックソースの 指定機能 .......................................................... 258 クロック発生部 クロック発生部のブロックダイヤグラム ..........75 クロックモード クロックモード ......................................................89 クロックモードの移行 .......................................... 80 け 結線例 LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) ............................465 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) ............................468 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) ............................471 こ 構成 LCD コントローラ / ドライバの構成 ................ 441 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成 .......................141 クロック選択レジスタ (CKSCR) の構成 ............. 77 構成 ........................................................................286 コンディションコードレジスタ (CCR) の構成 ............................................................................47 専用レジスタの構成 .............................................. 38 汎用レジスタの構成 .............................................. 54 プロセッサステータス (PS) の構成 .....................46 ポート 0 の構成 ....................................................166 ポート 1 の構成 ....................................................170 ポート 2 の構成 ....................................................174 ポート 3 の構成 ....................................................178 599 ポート 4 の構成 .....................................................183 ポート 5 の構成 .....................................................187 ポート 6 の構成 .....................................................192 ポート 7 の構成 .....................................................198 ポート 8 の構成 .....................................................204 ポート 9 の構成 .....................................................209 割込み制御レジスタ (ICR) の構成 .....................123 構成図 I2C インタフェースの構成図 ..............................394 構造 ハードウェア割込みの構造 .................................127 コマンドシーケンス コマンドシーケンス表 .........................................505 コモンレジスタバンクプリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................59 コンディションコードレジスタ コンディションコードレジスタ (CCR) の構成 ............................................................................47 コントローラ LCD コントローラ / ドライバに関連する端子 ..........................................................................447 LCD コントローラ / ドライバに関連する端子の ブロックダイヤグラム ..................................449 LCD コントローラ / ドライバに関連するレジスタ ..........................................................................451 LCD コントローラ / ドライバの外部分割抵抗 445 LCD コントローラ / ドライバの機能 ................440 LCD コントローラ / ドライバの構成 ................441 LCD コントローラ / ドライバの電源電圧 ........442 LCD コントローラ / ドライバの動作説明 ........461 LCD コントローラ / ドライバの内部分割抵抗 443 コンペアクリアレジスタ コンペアクリアレジスタ (CPCLR) ....................291 さ 再開 フラッシュメモリのセクタ消去を再開する .....513 最大定格電圧 最大定格電圧の厳守 ( ラッチアップの防止 ) .....20 サブクロック サブクロックの発振安定待ち時間機能 .............258 サブクロックモード メインクロックモード ,PLL クロックモード , サブクロックモード ........................................80 サンプルプログラム PPG タイマのサンプルプログラム ....................325 し システム構成図 システム構成図 .....................................................491 システムスタックポインタ システムスタックポインタ (SSP) ........................44 実効アドレス 実効アドレスフィールド .....................................552 実効アドレスフィールド 実効アドレスフィールド .....................................535 実行サイクル 実行サイクル数 .....................................................550 実行サイクル数計算方法 .....................................550 600 シフト動作 シフト動作のスタート / ストップタイミング ..........................................................................227 受信割込み 受信割込み発生とフラグセットのタイミング ..........................................................................348 出力回路 時計クロック出力回路 ........................................ 474 時計クロック出力回路のブロックダイヤグラム ..........................................................................475 出力端子 表示用 RAM と出力端子 .....................................457 出力波形 1/2 バイアス・1/2 デューティ出力波形 ............463 出力波形例 1/3 バイアス・1/3 デューティ出力波形例 ........466 1/3 バイアス・1/4 デューティ出力波形例 ........469 消去 フラッシュメモリ書込み / 消去の詳細説明 .....506 フラッシュメモリ書込み / 消去の方法 ............. 500 フラッシュメモリのデータを消去する ( チップ消去 ) ................................................. 509 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ................................................. 510 フラッシュメモリへのデータ書込み / 消去の方法 ..........................................................................500 状態遷移図 状態遷移図 ............................................................ 106 使用手順 拡張インテリジェント I/O サービス (EI2OS) の 使用手順 .......................................................... 145 消費電流 CPU 動作モードと消費電流 ..................................88 初期状態 初期状態 ................................................................ 491 処理時間 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) .......................... 146 ハードウェア割込み処理時間 ............................135 処理手順 拡張インテリジェント I/O サービス (EI2OS) の 処理手順 .......................................................... 144 シリアル I/O シリアル I/O の概要 .............................................214 シリアル I/O の動作 .............................................223 シリアル I/O のブロックダイヤグラム ............. 214 シリアル I/O のレジスタ .....................................215 シリアル I/O の割込み機能 ................................. 229 シリアル I/O プリスケーラレジスタ シリアル I/O プリスケーラレジスタ (SDCR0,SDCR1) .............................................. 221 シリアル書込み シリアル書込み接続の基本構成 ........................ 516 シリアル書込み接続例 ( ユーザ電源を 使用する場合 ) ................................................519 シリアル書込み接続例 ( ライタから電源を 供給する場合 ) ................................................521 シリアルシフトデータレジスタ シリアルシフトデータレジスタ (SDR0,SDR1) ..........................................................................220 シリアルデータ シリアルデータの入出力のタイミング ............228 シリアルデータレジスタ シリアルデータレジスタリード / ライト待機状態 ..........................................................................225 シリアルモードコントロールステータスレジスタ シリアルモードコントロールステータスレジスタ 下位 (SMCS0,SMCS1) ....................................218 シリアルモードコントロールステータスレジスタ 上位 (SMCS) ....................................................216 シングルチップモード シングルチップモード時の端子状態 .................108 振動子 振動子と外部クロックの接続 ...............................85 す 水晶発振回路 水晶発振回路について ...........................................21 スタート / ストップタイミング シフト動作のスタート / ストップタイミング ..........................................................................227 スタートコンディション SDA="L", SCL="L" 時におけるスタート コンディション発生命令の実行 ..................409 スタートコンディション .....................................408 スタック スタック上の多バイトデータの格納状態 ...........36 スタックの設定 .......................................................43 スタック動作 割込み処理開始時のスタック動作 .....................150 割込み処理復帰時のスタック動作 .....................150 スタック領域 スタック領域 .........................................................150 スタンバイモード スタンバイモード ...................................................89 スタンバイモードの動作状態 ...............................97 スタンバイモードの割込みによる解除 .............109 スタンバイモードへの移行と割込み .................109 ステータスレジスタ ステータスレジスタ (SSR0/SSR1) ......................339 ストップコンディション ストップコンディション .....................................408 ストップモード ストップモード解除時 .........................................109 ストップモードの解除 .........................................104 ストップモードへの移行 .....................................104 スリープモード スリープモードの解除 ...........................................98 スリープモードへの移行 .......................................98 スレーブ マスタ / スレーブ型通信機能 .............................366 せ 制御レジスタ 制御レジスタ (SCR0/SCR1) .................................334 セクタ 複数のセクタを指定する場合の注意 .................510 セクタ構成 セクタ構成 .............................................................501 セクタ指定方法 セクタ指定方法 .....................................................510 セクタ消去 セクタ消去を一時停止する ................................512 フラッシュメモリのセクタ消去を再開する .... 513 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ................................................. 510 設定 スタックの設定 ......................................................43 設定時 設定時の注意事項 ................................................324 選択 PLL クロック逓倍率の選択 ..................................81 専用ボーレートジェネレータ 専用ボーレートジェネレータによるボーレート ..........................................................................352 専用レジスタ 専用レジスタと汎用レジスタ ..............................37 専用レジスタの構成 .............................................. 38 そ 送信割込み 送信割込み発生とフラグセットのタイミング 349 双方向通信機能 双方向通信機能 ....................................................364 ソフトウェア割込み ソフトウェア割込みからの復帰 ........................ 137 ソフトウェア割込みの起動 ................................137 ソフトウェア割込みの動作 ................................138 た 待機状態 シリアルデータレジスタリード / ライト待機状態 ..........................................................................225 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ (TCCSH,TCCSL) .............................................291 タイマコントロールステータスレジスタ下位 (TMCSR) .......................................................... 269 タイマコントロールステータスレジスタ上位 (TMCSR) .......................................................... 267 タイマデータレジスタ タイマデータレジスタ (TCDT) .......................... 290 タイミング 受信割込み発生とフラグセットのタイミング ..........................................................................348 シリアルデータの入出力のタイミング ............228 送信割込み発生とフラグセットのタイミング ..........................................................................349 割込み要因とタイミング .................................... 323 タイムベースタイマ インターバルタイマ機能 ( タイムベースタイマ ) の動作 .............................................................. 238 タイムベースタイマ使用上の注意 .................... 241 タイムベースタイマの動作 ................................239 タイムベースタイマのブロックダイヤグラム ..........................................................................234 タイムベースタイマの割込み ............................237 タイムベースタイマの割込みと EI2OS ............. 237 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタ (TBTC) ...... 235 601 タイムベースタイマモード タイムベースタイマモードの解除 .....................100 タイムベースタイマモードへの移行 .................100 ダイレクトページレジスタ ダイレクトページレジスタ (DPR) .......................52 多重割込み 多重割込み .............................................................133 多バイト長 多バイト長データのアクセス ...............................36 多バイト長オペランド 多バイト長オペランドの場合の格納状態 ...........35 多バイトデータ RAM 上の多バイトデータの格納状態 ................35 スタック上の多バイトデータの格納状態 ...........36 端子 16 ビットリロードタイマの端子 ........................265 16 ビットリロードタイマの端子のブロック ダイヤグラム ..................................................265 8/10 ビット A/D コンバータの端子 ....................421 8/10 ビット A/D コンバータの端子のブロック ダイヤグラム ..................................................422 DTP/ 外部割込み回路の端子 ...............................375 LCD コントローラ / ドライバに関連する端子 ..........................................................................447 LCD コントローラ / ドライバに関連する端子の ブロックダイヤグラム ..................................449 UART の端子 .........................................................332 UART の端子のブロックダイヤグラム .............332 ポート 0 の端子 .....................................................166 ポート 1 の端子 .....................................................170 ポート 2 の端子 .....................................................174 ポート 3 の端子 .....................................................178 ポート 4 の端子 .....................................................183 ポート 5 の端子 .....................................................187 ポート 6 の端子 .....................................................192 ポート 7 の端子 .....................................................198 ポート 8 の端子 .....................................................204 ポート 9 の端子 .....................................................209 モード端子 ...............................................................68 モードデータ読出し後の端子の状態 ...................72 リセット中の端子の状態 .......................................72 端子機能説明 端子機能説明 ...........................................................10 端子状態 シングルチップモード時の端子状態 .................108 端子処理 A/D コンバータを使用しない場合の端子処理に ついて ................................................................22 LCD 未使用時の端子処理について ......................22 端子配列図 端子配列図 .................................................................9 端子部 外部リセット端子部のブロックダイヤグラム ............................................................................67 単発変換モード 単発変換モードの動作 .........................................433 ち 遅延割込み 遅延割込み発生モジュールの動作 .....................482 602 遅延割込み発生モジュール 遅延割込み発生モジュール使用上の注意 ........483 遅延割込み発生モジュールの動作 .................... 482 遅延割込み発生モジュールのブロックダイヤ グラム .............................................................. 480 遅延割込み要因発生 / 解除レジスタ 遅延割込み要因発生 / 解除レジスタ (DIRR) .... 481 チップ消去 フラッシュメモリのデータを消去する ( チップ消去 ) ................................................. 509 注意 16 ビットリロードタイマ使用上の注意 ........... 284 DTP/ 外部割込み回路使用上の注意 ...................389 SCC,MSS,INT ビットの競合についての注意 ..........................................................................400 UART 使用上の注意 ............................................ 369 ウォッチドッグタイマ使用上の注意 ................ 251 外部クロックを使用する場合の注意について ............................................................................21 遅延割込み発生モジュール使用上の注意 ........483 データ書込み上の注意 ........................................ 508 複数のセクタを指定する場合の注意 ................ 510 注意事項 スタンバイモード遷移のための低消費電力モード 制御レジスタ (LPCMR) へアクセスする際の 注意事項 .......................................................... 110 設定時の注意事項 ................................................324 リセット要因ビットの注意事項 .......................... 71 直接アドレッシング 直接アドレッシング ............................................ 536 つ 通信プリスケーラ制御レジスタ 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) ..........................................................................344 て 停止状態 停止状態 ................................................................ 225 停止変換モード 停止変換モードの動作 ........................................ 434 低消費電力制御回路 低消費電力制御回路のブロックダイヤグラム ............................................................................91 低消費電力モード 低消費電力モードの動作状態 ......................24, 107 低消費電力モード制御レジスタ 低消費電力モード制御レジスタ (LPMCR) ......... 93 低消費電力モード制御レジスタへのアクセス ............................................................................95 ディスクリプタ 拡張インテリジェント I/O サービス (EI2OS) ディ スクリプタ (ISD) の構成 ............................... 141 データ 多バイト長データのアクセス ..............................36 データ書込み上の注意 ........................................ 508 フラッシュメモリのデータを消去する ( チップ消去 ) ................................................. 509 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ................................................. 510 フラッシュメモリへのデータ書込み / 消去の方法 ..........................................................................500 モード端子とモードデータの関係 .....................159 モードデータ .........................................................158 モードデータ読出し後の端子の状態 ...................72 データカウンタ データカウンタ (DCT) .........................................142 データを書き込む フラッシュメモリへデータを書き込む .............508 デフォルト空間 バンクアドレッシングとデフォルト空間 ...........34 電源アナログ入力 A/D コンバータの電源アナログ入力の投入順序に ついて ................................................................21 電源端子 電源端子について ...................................................21 電源電圧 LCD コントローラ / ドライバの電源電圧 ........442 転送時間 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 ) ...........................146 転送状態 転送状態 .................................................................225 転送フロー I2C インタフェースの転送フロー ......................411 と 同期モード 同期モード ( 動作モード 2) 時の動作 ................362 動作 DDR レジスタにてポート出力に設定した場合の リソース兼用ポートの動作について ..........163 DTP/ 外部割込み動作 ...........................................385 PWM 動作 ..............................................................321 UART の動作 .........................................................357 アドレス一致検出機能の動作 .............................490 インターバルタイマ機能 ( タイムベースタイマ ) の動作 ..............................................................238 インプットキャプチャの動作 .............................308 ウォッチドッグタイマの動作 .............................249 カウンタ動作 .........................................................261 拡張インテリジェント I/O サービス (EI2OS) の 動作 ..................................................................140 シフト動作のスタート / ストップタイミング ..........................................................................227 シリアル I/O の動作 .............................................223 ソフトウェア割込みの動作 .................................138 タイムベースタイマの動作 .................................239 単発変換モードの動作 .........................................433 遅延割込み発生モジュールの動作 .....................482 停止変換モードの動作 .........................................434 同期モード ( 動作モード 2) 時の動作 ................362 内部クロックモード ( リロードモード ) の動作 ..........................................................................276 ハードウェア割込みの動作 .................................130 非同期モード時の動作 .........................................359 ポート 0 の動作 .....................................................168 ポート 1 の動作 .....................................................172 ポート 2 の動作 .....................................................176 ポート 3 の動作 .....................................................181 ポート 4 の動作 .....................................................185 ポート 5 の動作 ....................................................190 ポート 6 の動作 ....................................................196 ポート 7 の動作 ....................................................202 ポート 8 の動作 ....................................................207 ポート 9 の動作 ....................................................211 リセット動作の概要 .............................................. 68 連続変換モードの動作 ........................................ 433 ワンショット動作 ................................................322 動作状態 スタンバイモードの動作状態 ..............................97 低消費電力モードの動作状態 ............................107 動作説明 16 ビットフリーランタイマの動作説明 ........... 306 DTP 機能の動作説明 ............................................ 388 LCD コントローラ / ドライバの動作説明 ........461 アウトプットコンペアの動作説明 .................... 309 動作説明 ................................................................ 305 動作フロー I2C インタフェースの動作フロー ...................... 414 動作モード 16 ビットリロードタイマの動作モード ........... 260 動作モード ............................................................ 156 動作モード 2 同期モード ( 動作モード 2) 時の動作 ................ 362 投入順序 A/D コンバータの電源アナログ入力の投入順序に ついて ................................................................ 21 特長 2M ビットフラッシュメモリの特長 .................. 500 I2C インタフェースの特長 ..................................392 MB90800 シリーズの特長 ....................................... 2 時計カウンタ 時計カウンタ ........................................................ 258 時計クロック 時計クロック出力回路 ........................................ 474 時計クロック出力回路のブロックダイヤグラム ..........................................................................475 時計クロック出力制御レジスタ 時計クロック出力制御レジスタ (TMCS) ..........476 時計タイマ 時計タイマ機能 ....................................................254 時計タイマ制御レジスタ (WTC) ........................ 256 時計タイマのインターバル割込み機能 ............258 時計タイマのブロックダイヤグラム ................ 255 時計タイマ制御レジスタ 時計タイマ制御レジスタ (WTC) ........................ 256 時計モード 時計モードの解除 ................................................102 時計モードへの移行 ............................................ 102 ドライバ LCD コントローラ / ドライバに関連する端子 ..........................................................................447 LCD コントローラ / ドライバに関連する端子の ブロックダイヤグラム ..................................449 LCD コントローラ / ドライバに関連するレジスタ ..........................................................................451 LCD コントローラ / ドライバの外部分割抵抗 445 LCD コントローラ / ドライバの機能 ................ 440 LCD コントローラ / ドライバの構成 ................ 441 LCD コントローラ / ドライバの電源電圧 ........442 LCD コントローラ / ドライバの動作説明 ........461 LCD コントローラ / ドライバの内部分割抵抗 ..........................................................................443 603 な 内部クロックモード 内部クロックモード .............................................260 内部クロックモード ( リロードモード ) の動作 ..........................................................................276 内部クロックモード ( ワンショットモード ) ..........................................................................279 内部シフトクロックモード 内部シフトクロックモード .................................224 内部周辺機能 MB90800 シリーズの内部周辺機能 ( リソース ) ..............................................................................3 内部タイマ 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................354 内部分割抵抗 LCD コントローラ / ドライバの内部分割抵抗 443 内部分割抵抗の使用 .............................................444 内部分割抵抗使用時 内部分割抵抗使用時の輝度調整 .........................444 に 入出力 シリアルデータの入出力のタイミング .............228 入出力回路形式 入出力回路形式 .......................................................17 入出力タイマ 入出力タイマの割込み .........................................301 入出力ポート 入出力ポート機能 .................................................162 入出力ポートのプログラム例 .............................212 入出力ポートのレジスタ一覧 .............................164 は ハードウェア割込み ハードウェア割込み .............................................126 ハードウェア割込みからの復帰 .........................129 ハードウェア割込み使用手順 .............................132 ハードウェア割込み処理時間 .............................135 ハードウェア割込みの起動 .................................129 ハードウェア割込みの構造 .................................127 ハードウェア割込みの動作 .................................130 ハードウェア割込み抑止 .....................................127 バスエラー バスエラー .............................................................409 バスモード バスモード .............................................................156 バスモード設定ビット .........................................158 発振安定待ち サブクロックの発振安定待ち時間機能 .............258 発振安定待ち時間 ...........................................84, 110 発振安定待ち時間用タイマ機能 .........................238 発振安定待ちリセット状態 ...................................66 リセット要因と発振安定待ち時間 .......................66 バッファアドレスポインタ バッファアドレスポインタ (BAP) .....................143 バンクアドレッシング バンクアドレッシングとデフォルト空間 ...........34 604 リニアアドレッシングとバンクアドレッシング ............................................................................31 バンクセレクトプリフィックス バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) .......................................57 バンクレジスタ バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........ 53 バンクレジスタとアクセス空間 .......................... 33 汎用レジスタ 専用レジスタと汎用レジスタ ..............................37 汎用レジスタの構成 .............................................. 54 汎用レジスタ領域とレジスタバンクポインタ ............................................................................49 ひ 非同期モード 非同期モード時の動作 ........................................ 359 表示データ例 LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 ) ............................465 LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 ) ............................468 LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 ) ............................471 表示用 RAM 表示用 RAM と出力端子 .....................................457 品種構成 品種構成 .................................................................... 5 ふ 複数のセクタ 複数のセクタを指定する場合の注意 ................ 510 復帰 ソフトウェア割込みからの復帰 ........................ 137 ハードウェア割込みからの復帰 ........................ 129 フラグセット 受信割込み発生とフラグセットのタイミング ..........................................................................348 送信割込み発生とフラグセットのタイミング ..........................................................................349 フラグ変化抑止プリフィックス フラグ変化抑止プリフィックス (NCC) ..............60 フラッシュマイコンプログラマとの最小限の接続例 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源を供給する場合 ) ........524 フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源を使用する場合 ) ................ 523 フラッシュメモリ 2M ビットフラッシュメモリの特長 .................. 500 フラッシュメモリ書込み / 消去の詳細説明 .....506 フラッシュメモリ書込み / 消去の方法 ............. 500 フラッシュメモリのセクタ消去を再開する .... 513 フラッシュメモリのデータを消去する ( チップ消去 ) ................................................. 509 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ................................................. 510 フラッシュメモリのレジスタ ............................501 フラッシュメモリへデータを書き込む ............508 フラッシュメモリへのデータ書込み / 消去の方法 ..........................................................................500 フラッシュメモリを読出し / リセット状態にする ..........................................................................507 フラッシュメモリ制御ステータスレジスタ フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................502 プリフィックスコード プリフィックスコード ...........................................56 プリフィックスコードと割込み / ホールド抑止 命令 ....................................................................61 プリフィックスコードの連続 ...............................62 プログラムアドレス検出コントロールステータス レジスタ プログラムアドレス検出コントロールステータス レジスタ (PACSR) ..........................................489 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0/ PADR1) ............................................................488 プログラムカウンタ プログラムカウンタ (PC) ......................................51 プログラム例 ウォッチドッグタイマのプログラム例 .............252 拡張インテリジェント I/O サービス (EI2OS) の プログラム例 ..................................................153 入出力ポートのプログラム例 .............................212 割込み処理のプログラム例 .................................152 プロセッサステータス プロセッサステータス (PS) の構成 .....................46 ブロックダイヤグラム 16 ビットリロードタイマの端子のブロック ダイヤグラム ..................................................265 16 ビットリロードタイマのブロック ダイヤグラム ..................................................263 8/10 ビット A/D コンバータの端子のブロック ダイヤグラム ..................................................422 8/10 ビット A/D コンバータのブロック ダイヤグラム ..................................................419 DTP/ 外部割込み回路の端子部のブロック ダイヤグラム ..................................................375 DTP/ 外部割込み回路のブロックダイヤグラム ..........................................................................373 I2C インタフェースのブロックダイヤグラム ..........................................................................393 LCD コントローラ / ドライバに関連する端子の ブロックダイヤグラム ..................................449 PPG タイマのブロックダイヤグラム ................313 ROM ミラー機能選択モジュールのブロック ダイヤグラム ..................................................496 UART の端子のブロックダイヤグラム .............332 UART のブロックダイヤグラム .........................330 アドレス一致検出機能のブロックダイヤグラム ..........................................................................486 ウォッチドッグタイマのブロックダイヤグラム ... 248 外部リセット端子部のブロックダイヤグラム ............................................................................67 クロック発生部のブロックダイヤグラム ...........75 シリアル I/O のブロックダイヤグラム .............214 タイムベースタイマのブロックダイヤグラム ..........................................................................234 遅延割込み発生モジュールのブロックダイヤ グラム ..............................................................480 低消費電力制御回路のブロックダイヤグラム ............................................................................91 時計クロック出力回路のブロックダイヤグラム ..........................................................................475 時計タイマのブロックダイヤグラム ................ 255 ブロックダイヤグラム .................................... 7, 287 へ 変換動作 EI2OS を使用した変換動作 ................................. 436 ほ ポート 0 ポート 0 の構成 ....................................................166 ポート 0 の端子 ....................................................166 ポート 0 の動作 ....................................................168 ポート 0 のレジスタ ............................................ 166 ポート 0 のレジスタの機能 ................................167 ポート 1 ポート 1 の構成 ....................................................170 ポート 1 の端子 ....................................................170 ポート 1 の動作 ....................................................172 ポート 1 のレジスタ ............................................ 170 ポート 1 のレジスタの機能 ................................171 ポート 2 ポート 2 の構成 ....................................................174 ポート 2 の端子 ....................................................174 ポート 2 の動作 ....................................................176 ポート 2 のレジスタ ............................................ 174 ポート 2 のレジスタの機能 ................................175 ポート 3 ポート 3 の構成 ....................................................178 ポート 3 の端子 ....................................................178 ポート 3 の動作 ....................................................181 ポート 3 のレジスタ ............................................ 179 ポート 3 のレジスタの機能 ................................180 ポート 4 ポート 4 の構成 ....................................................183 ポート 4 の端子 ....................................................183 ポート 4 の動作 ....................................................185 ポート 4 のレジスタ ............................................ 183 ポート 4 のレジスタの機能 ................................184 ポート 5 ポート 5 の構成 ....................................................187 ポート 5 の端子 ....................................................187 ポート 5 の動作 ....................................................190 ポート 5 のレジスタ ............................................ 188 ポート 5 のレジスタの機能 ................................189 ポート 6 ポート 6 の構成 ....................................................192 ポート 6 の端子 ....................................................192 ポート 6 の動作 ....................................................196 ポート 6 のレジスタ ............................................ 193 ポート 6 のレジスタの機能 ................................194 ポート 7 ポート 7 の構成 ....................................................198 ポート 7 の端子 ....................................................198 ポート 7 の動作 ....................................................202 ポート 7 のレジスタ ............................................ 199 ポート 7 のレジスタの機能 ................................200 ポート 8 ポート 8 の構成 ....................................................204 605 ポート 8 の端子 .....................................................204 ポート 8 の動作 .....................................................207 ポート 8 のレジスタ .............................................205 ポート 8 のレジスタの機能 .................................206 ポート 9 ポート 9 の構成 .....................................................209 ポート 9 の端子 .....................................................209 ポート 9 の動作 .....................................................211 ポート 9 のレジスタ .............................................209 ポート 9 のレジスタの機能 .................................210 ポート出力 DDR レジスタにてポート出力に設定した場合の リソース兼用ポートの動作について ..........163 ホールド プリフィックスコードと割込み / ホールド抑止 命令 ....................................................................61 ボーレート UART ボーレート設定 .........................................350 外部クロックによるボーレート .........................356 専用ボーレートジェネレータによるボーレート ..........................................................................352 内部タイマ (16 ビットリロードタイマ ) による ボーレート ......................................................354 モード端子 モード端子 .............................................................. 68 モード端子 (MD2 ∼ MD0) ..................................157 モード端子とモードデータの関係 .................... 159 モードデータ モードデータ ........................................................ 158 モードデータ読出し後の端子の状態 .................. 72 モードフェッチ モードフェッチ ......................................................68 モードフロー I2C インタフェースのモードフロー .................. 413 モードレジスタ モードレジスタ (SMR0/SMR1) ........................... 337 モジュール ROM ミラー機能選択モジュールのブロック ダイヤグラム ..................................................496 遅延割込み発生モジュール使用上の注意 ........483 遅延割込み発生モジュールの動作 .................... 482 遅延割込み発生モジュールのブロックダイヤ グラム .............................................................. 480 ゆ マシンクロック マシンクロック .......................................................81 マスタ マスタ / スレーブ型通信機能 .............................366 ユーザスタックポインタ ユーザスタックポインタ (USP) ...........................45 ユーザ電源 シリアル書込み接続例 ( ユーザ電源を使用する場 合 ) ....................................................................519 フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源を使用する場合 ) ........523 み よ 未使用入力端子 未使用入力端子の処理 ...........................................20 要因発生 遅延割込み要因発生 / 解除レジスタ (DIRR) ..........................................................................481 要求レベル設定レジスタ 要求レベル設定レジスタ (ELVR) ...................... 382 抑止 ハードウェア割込み抑止 .................................... 127 抑止命令 プリフィックスコードと割込み / ホールド抑止 命令 .................................................................... 61 読出し フラッシュメモリを読出し / リセット状態にする ..........................................................................507 モードデータ読出し後の端子の状態 .................. 72 ま め 命令 SDA="L", SCL="L" 時におけるスタートコンディ ション発生命令の実行 ..................................409 プリフィックスコードと割込み / ホールド抑止 命令 ....................................................................61 命令の種類 .............................................................533 命令マップの構造 .................................................571 命令一覧表 F2MC-16LX 命令一覧表 .......................................557 メインクロックモード メインクロックモード ,PLL クロックモード , サブクロックモード ........................................80 メモリ空間 メモリ空間 ...............................................................27 メモリマップ E2PROM メモリマップ ........................................491 メモリマップ ...........................................................29 も モード設定 モード設定 .............................................................156 606 ら ライタ シリアル書込み接続例 ( ライタから電源を供給 する場合 ) ........................................................ 521 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源を供給する場合 ) ........524 ラッチアップ 最大定格電圧の厳守 ( ラッチアップの防止 ) .....20 り リセット 外部リセット端子部のブロックダイヤグラム ............................................................................67 発振安定待ちリセット状態 ...................................66 フラッシュメモリを読出し / リセット状態にする ..........................................................................507 リセット中の端子の状態 .......................................72 リセット動作の概要 ...............................................68 リセット要因 リセット要因 ...........................................................64 リセット要因と発振安定待ち時間 .......................66 リセット要因ビット リセット要因ビット ...............................................70 リセット要因ビットとリセット要因の対応 .......71 リセット要因ビットの注意事項 ...........................71 リソース MB90800 シリーズの内部周辺機能 ( リソース ) ..............................................................................3 リソース兼用ポート DDR レジスタにてポート出力に設定した場合の リソース兼用ポートの動作について ..........163 リニアアドレッシング 24 ビットオペランド指定によるリニア アドレッシング ................................................32 リニアアドレッシングとバンクアドレッシング ............................................................................31 リロードモード 内部クロックモード ( リロードモード ) の動作 ..........................................................................276 れ 例外処理 例外処理 .................................................................149 レジスタ 16 ビットフリーランタイマ部レジスタ一覧 ..........................................................................288 16 ビットリロードタイマのレジスタ一覧 ........266 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................423 DDR レジスタにてポート出力に設定した場合の リソース兼用ポートの動作について ..........163 DTP/ 外部割込み回路のレジスタ .......................376 EI2OS ステータスレジスタ (ISCS) .....................142 I2C インタフェースのレジスタ ..........................395 LCD コントローラ / ドライバに関連するレジスタ ..........................................................................451 PPG タイマのレジスタ一覧 ................................314 ROM ミラー機能選択レジスタ (ROMM) ..........497 UART のレジスタ一覧 .........................................333 アウトプットコンペア部レジスタ一覧 .............289 アドレス一致検出機能のレジスタ一覧 .............487 インプットキャプチャ部レジスタ一覧 .............289 クロック選択レジスタ (CKSCR) の構成 .............77 シリアル I/O のレジスタ .....................................215 シリアル I/O プリスケーラレジスタ (SDCR0,SDCR1) ..............................................221 シリアルシフトデータレジスタ (SDR0,SDR1) 220 シリアルデータレジスタリード / ライト待機状態 ..........................................................................225 シリアルモードコントロールステータスレジスタ 下位 (SMCS0,SMCS1) .................................... 218 シリアルモードコントロールステータスレジスタ 上位 (SMCS) ....................................................216 低消費電力モード制御レジスタ (LPMCR) ......... 93 低消費電力モード制御レジスタへのアクセス ............................................................................95 入出力ポートのレジスタ一覧 ............................164 フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................502 フラッシュメモリのレジスタ ............................501 ポート 0 のレジスタ ............................................ 166 ポート 0 のレジスタの機能 ................................167 ポート 1 のレジスタ ............................................ 170 ポート 1 のレジスタの機能 ................................171 ポート 2 のレジスタ ............................................ 174 ポート 2 のレジスタの機能 ................................175 ポート 3 のレジスタ ............................................ 179 ポート 3 のレジスタの機能 ................................180 ポート 4 のレジスタ ............................................ 183 ポート 4 のレジスタの機能 ................................184 ポート 5 のレジスタ ............................................ 188 ポート 5 のレジスタの機能 ................................189 ポート 6 のレジスタ ............................................ 193 ポート 6 のレジスタの機能 ................................194 ポート 7 のレジスタ ............................................ 199 ポート 7 のレジスタの機能 ................................200 ポート 8 のレジスタ ............................................ 205 ポート 8 のレジスタの機能 ................................206 ポート 9 のレジスタ ............................................ 209 ポート 9 のレジスタの機能 ................................210 割込み制御レジスタ (ICR) の構成 .....................123 割込み制御レジスタ (ICR00 ∼ ICR15) ............. 121 割込み制御レジスタ一覧 .................................... 119 割込み制御レジスタの機能 ................................123 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................117 レジスタバンク レジスタバンク ......................................................55 レジスタバンクポインタ 汎用レジスタ領域とレジスタバンクポインタ ............................................................................49 レジスタバンクポインタ (RP) ..............................49 連続 プリフィックスコードの連続 ..............................62 連続変換モード 連続変換モードの動作 ........................................ 433 わ 割込み 16 ビットフリーランタイマの割込み ............... 302 16 ビットフリーランタイマの割込みと EI2OS ..........................................................................302 16 ビットリロードタイマの割込み ...................273 16 ビットリロードタイマの割込みと EI2OS ..................................................................262, 273 8/10 ビット A/D コンバータの割込み ............... 432 8/10 ビット A/D コンバータの割込みと EI2OS ..................................................................418, 432 DTP/ 外部割込み回路の割込みと EI2OS ........... 372 INT9 割込み ...........................................................492 607 PPG タイマの割込みと EI2OS .............................312 UART に関連する割込みと EI2OS .....................329 UART の割込み .....................................................346 UART の割込みと EI2OS .....................................347 アウトプットコンペアの割込み .........................304 アウトプットコンペアの割込みと EI2OS .........304 インプットキャプチャの割込み .........................303 インプットキャプチャの割込みと EI2OS .........303 シリアル I/O の割込み機能 .................................229 スタンバイモードの割込みによる解除 .............109 スタンバイモードへの移行と割込み .................109 ソフトウェア割込みの起動 .................................137 タイムベースタイマの割込み .............................237 タイムベースタイマの割込みと EI2OS .............237 多重割込み .............................................................133 遅延割込み発生モジュール使用上の注意 .........483 遅延割込み発生モジュールのブロック ダイヤグラム ..................................................480 遅延割込み要因発生 / 解除レジスタ (DIRR) ....481 時計タイマのインターバル割込み機能 .............258 入出力タイマの割込み .........................................301 ハードウェア割込み .............................................126 プリフィックスコードと割込み / ホールド抑止 命令 ....................................................................61 割込み処理開始時のスタック動作 .....................150 割込み処理のプログラム例 .................................152 割込み処理復帰時のスタック動作 .....................150 割込み動作時の処理 .............................................131 割込みの種類と機能 .............................................114 割込み制御 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................117 割込み制御レジスタ 割込み制御レジスタ (ICR) の構成 .....................123 割込み制御レジスタ (ICR00 ∼ ICR15) ..............121 割込み制御レジスタ一覧 .....................................119 割込み制御レジスタの機能 .................................123 割込み動作 割込み動作 .............................................................115 割込みベクタ 割込みベクタ .........................................................116 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................117 割込み要因 割込み要因とタイミング .....................................323 割込み要因と割込みベクタ・割込み制御レジスタ ..........................................................................117 ワンショット ワンショット動作 .................................................322 ワンショットモード 内部クロックモード ( ワンショットモード ) ...279 608 CM44-10128-5 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC®-16LX 16 ビット・マイクロコントローラ MB90800 Series ハードウェアマニュアル 2010 年 2 月 第 5 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 プロモーション推進部