本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10105-6 F2MC-16LX 16 ビット・マイクロコントローラ MB90590 Series ハードウェアマニュアル F2MC-16LX 16 ビット・マイクロコントローラ MB90590 Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目 をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛 読を賜り厚くお例申し上げます。 MB90590 シリーズは , ASIC(Application Specific IC) 対応が可能なオリジナ ル 16 ビット・ワンチップマイクロコントローラである F2MC®-16LX ファ ミリの汎用品の 1 つとして開発された製品です。 本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90590 シリーズの機能や動作について記載しています。本書をご一読 ください。 ■ 商標 F2MC は FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクト ロニクス株式会社の商標です。 Embedded Algorithm は Advanced Micro Devices Inc. の商標です。 そのほか , 本書で登場するシステム名 , 製品名はそれぞれの会社もしくは 組織の商標です。 i ■ 本書の全体構成 本書は , 以下に示す 25 の章および付録から構成されています。 第 1 章 概要 この章では , MB90590 シリーズの特長や基本的な仕様について説明し ます。 第 2 章 CPU この章では , CPU の機能と動作について説明します。 第 3 章 割込み この章では , MB90590 シリーズの割込みと拡張インテリジェント I/O サービス (EI2OS) の機能と動作について説明します。 第 4 章 遅延割込み この章では , 遅延割込みの機能と動作について説明します。 第 5 章 クロックとリセット この章では , クロックとリセットの機能と動作について説明します。 第 6 章 低消費電力制御回路 この章では , 低消費電力回路の機能と動作について説明します。 第 7 章 メモリアクセスモード この章では , メモリアクセスモードの機能と動作について説明します。 第 8 章 I/O ポート この章では , I/O ポートの機能と動作について説明します。 第 9 章 タイムベースタイマ この章では , タイムベースタイマの機能と動作について説明します。 第 10 章 ウォッチドッグタイマ この章では , ウォッチドッグタイマの機能と動作について説明します。 第 11 章 16 ビット入出力タイマ この章では , 16 ビット入出力タイマの機能と動作について説明します。 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) この章では , 16 ビットリロードタイマ ( イベントカウント機能付 ) の機 能と動作について説明します。 第 13 章 時計タイマ この章では , 時計タイマの機能と動作について説明します。 第 14 章 8/16 ビット PPG タイマ この章では , 8/16 ビット PPG の機能と概要について説明します。 第 15 章 DTP/ 外部割込み この章では , DTP/ 外部割込みの機能と動作について説明します。 第 16 章 A/D コンバータ この章では , A/D コンバータの機能と動作について説明します。 ii 第 17 章 UART0 この章では , UART0 の機能と動作について説明します。 第 18 章 シリアル I/O この章では , シリアル I/O の機能と動作について説明します。 第 19 章 CAN コントローラ この章では , CAN コントローラの機能と概要について説明します。 第 20 章 ステッピングモータコントローラ この章では , ステッピングモータコントローラの機能と動作について 説明します。 第 21 章 サウンドジェネレータ この章では , サウンドジェネレータの機能と動作について説明します。 第 22 章 アドレス一致検出機能 この章は , アドレス一致検出の機能と動作について説明します。 第 23 章 ROM ミラー機能選択モジュール この章では , ROM ミラー機能選択モジュールについて説明します。 第 24 章 2M/3M ビットフラッシュメモリ この章では , 2M/3M ビットフラッシュメモリの機能や動作について説 明します。 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込 み接続例 この章では , 横河ディジタルコンピュータ株式会社製 AF220/AF210/ AF120/AF110フラッシュマイコンプログラマを用いた場合の, シリアル 書込み接続例について説明します。 付録 付録では , I/O マップ , 命令 , フラッシュメモリモードのタイミングダイ ヤグラム , MB90590 シリーズ割込みベクタ一覧表を示します。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2006-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 第2章 概要 ............................................................................................................ 1 製品概要 ................................................................................................................................. 2 特長 ........................................................................................................................................ 3 ブロックダイヤグラム............................................................................................................ 5 パッケージ外形寸法図............................................................................................................ 6 端子配列図.............................................................................................................................. 7 端子機能説明 .......................................................................................................................... 8 入出力回路............................................................................................................................ 12 デバイスの取扱い ................................................................................................................. 14 CPU.......................................................................................................... 19 2.1 CPU の概要 .......................................................................................................................... 20 2.2 メモリ空間............................................................................................................................ 21 2.3 メモリ空間マップ ................................................................................................................. 22 2.4 リニア方式によるアドレス指定 ........................................................................................... 23 2.5 バンク方式によるアドレス指定 ........................................................................................... 24 2.6 メモリ空間における多バイト長データ................................................................................. 26 2.7 レジスタ ............................................................................................................................... 27 2.7.1 アキュムレータ (A)..................................................................................................... 30 2.7.2 ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) ....................... 31 2.7.3 プロセッサステータス (PS) ....................................................................................... 32 2.7.4 プログラムカウンタ (PC)........................................................................................... 35 2.8 レジスタバンク .................................................................................................................... 36 2.9 プリフィックスコード.......................................................................................................... 38 2.10 割込み抑止命令 .................................................................................................................... 40 2.11 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 ............................................................ 41 第3章 割込み ...................................................................................................... 43 3.1 割込みの概要 ........................................................................................................................ 44 3.2 割込みベクタ ........................................................................................................................ 47 3.3 割込み制御レジスタ (ICR).................................................................................................... 48 3.4 割込みフロー ........................................................................................................................ 52 3.5 ハードウェア割込み ............................................................................................................. 54 3.5.1 ハードウェア割込みの動作 ........................................................................................ 55 3.5.2 ハードウェア割込みの発生と解除.............................................................................. 56 3.5.3 多重割込み ................................................................................................................. 58 3.6 ソフトウェア割込み ............................................................................................................. 59 3.7 拡張インテリジェント I/O サービス (EI2OS) ....................................................................... 61 3.7.1 拡張インテリジェント I/O サービスディスクリプタ (ISD) ........................................ 63 3.7.2 EI2OS ステータスレジスタ (ISCS) ............................................................................ 65 3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フローと使用手順............................... 67 3.9 例外 ...................................................................................................................................... 70 v 第4章 4.1 4.2 4.3 遅延割込み ............................................................................................... 71 遅延割込みモジュールの概要 ............................................................................................... 72 遅延割込みのレジスタ.......................................................................................................... 73 遅延割込みの動作 ................................................................................................................. 74 第5章 5.1 5.2 5.3 クロックとリセット................................................................................. 75 クロック発生部 .................................................................................................................... 76 リセット要因の発生 ............................................................................................................. 77 リセット要因 ........................................................................................................................ 80 第6章 低消費電力制御回路................................................................................. 83 6.1 低消費電力制御回路の概要................................................................................................... 84 6.2 低消費電力制御回路のレジスタ ........................................................................................... 86 6.2.1 低消費電力モード制御レジスタ (LPMCR) ................................................................. 87 6.2.2 クロック選択レジスタ (CKSCR)................................................................................ 89 6.3 低消費電力モードの動作 ...................................................................................................... 91 6.3.1 スリープモード .......................................................................................................... 93 6.3.2 時計モード ................................................................................................................. 94 6.3.3 ストップモード .......................................................................................................... 96 6.3.4 ハードウェアスタンバイモード ................................................................................. 98 6.4 CPU 間欠動作....................................................................................................................... 99 6.5 マシンクロック切換え........................................................................................................ 100 6.6 クロック選択の状態遷移 .................................................................................................... 101 第7章 7.1 7.2 7.3 メモリアクセスモード ........................................................................... 103 メモリアクセスモードの概要 ............................................................................................. 104 モード端子.......................................................................................................................... 105 モードデータ ...................................................................................................................... 106 第8章 I/O ポート............................................................................................... 109 8.1 I/O ポート ........................................................................................................................... 110 8.2 I/O ポートのレジスタ ......................................................................................................... 111 8.2.1 ポートデータレジスタ (PDR0 ∼ PDR9).................................................................. 112 8.2.2 ポート方向レジスタ (DDR0 ∼ DDR9)..................................................................... 113 8.2.3 アナログ入力許可レジスタ (ADER) ......................................................................... 114 第9章 9.1 9.2 9.3 タイムベースタイマ............................................................................... 115 タイムベースタイマの概要................................................................................................. 116 タイムベースタイマ制御レジスタ (TBTC) ......................................................................... 117 タイムベースタイマの動作................................................................................................. 118 第 10 章 ウォッチドッグタイマ ........................................................................... 119 10.1 ウォッチドッグタイマの概要 ............................................................................................. 120 10.2 ウォッチドッグタイマの動作 ............................................................................................. 123 vi 第 11 章 16 ビット入出力タイマ .......................................................................... 125 11.1 16 ビット入出力タイマの概要............................................................................................ 126 11.2 16 ビット入出力タイマのレジスタ .................................................................................... 128 11.3 16 ビットフリーランタイマ ............................................................................................... 129 11.3.1 タイマカウンタデータレジスタ (TCDT) .................................................................. 130 11.3.2 タイマカウンタ制御ステータスレジスタ (TCCS).................................................... 131 11.3.3 16 ビットフリーランタイマの動作 .......................................................................... 133 11.4 アウトプットコンペア........................................................................................................ 135 11.4.1 アウトプットコンペアのレジスタ............................................................................ 136 11.4.2 アウトプットコンペアの制御ステータスレジスタ (OCS0/1) .................................. 137 11.4.3 16 ビットアウトプットコンペアの動作 ................................................................... 140 11.5 インプットキャプチャ........................................................................................................ 142 11.5.1 インプットキャプチャのレジスタ............................................................................ 143 11.5.2 16 ビットインプットキャプチャの動作 ................................................................... 145 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ).......................... 147 12.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 .......................................... 148 12.2 16 ビットリロードタイマのレジスタ................................................................................. 150 12.2.1 タイマ制御ステータスレジスタ (TMCSR) ............................................................... 151 12.2.2 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) の レジスタ配置 ................................................................................................................. 154 12.3 16 ビットリロードタイマの内部クロック動作と外部クロック動作 .................................. 155 12.4 16 ビットリロードタイマのアンダフロー動作 .................................................................. 157 12.5 16 ビットリロードタイマの出力端子機能.......................................................................... 158 12.6 カウンタの動作状態 ........................................................................................................... 159 第 13 章 時計タイマ ............................................................................................. 161 13.1 時計タイマの概要 ............................................................................................................... 162 13.2 時計タイマのレジスタ........................................................................................................ 163 13.2.1 タイマ制御レジスタ (WTCR) ................................................................................... 165 13.2.2 サブ秒レジスタ (WTBR) .......................................................................................... 167 13.2.3 秒 / 分 / 時間レジスタ (WTSR/WTMR/WTHR) ......................................................... 168 第 14 章 8/16 ビット PPG .................................................................................... 169 14.1 8/16 ビット PPG の概要..................................................................................................... 170 14.2 8/16 ビット PPG のブロックダイヤグラム ........................................................................ 171 14.3 8/16 ビット PPG のレジスタ.............................................................................................. 173 14.3.1 PPG0 動作モード制御レジスタ (PPGC0) ................................................................ 174 14.3.2 PPG1 動作モード制御レジスタ (PPGC1) ................................................................ 176 14.3.3 PPG0/1 クロック選択レジスタ (PPG01) ................................................................. 178 14.3.4 リロードレジスタ (PRLL, PRLH)............................................................................. 180 14.4 8/16 ビット PPG の動作..................................................................................................... 181 14.5 8/16 ビット PPG のカウントクロックの選択 .................................................................... 184 14.6 8/16 ビット PPG のパルスの端子出力の制御 .................................................................... 185 14.7 8/16 ビット PPG の割込み ................................................................................................. 186 14.8 8/16 ビット PPG の各ハードウェアの初期値 .................................................................... 187 vii 第 15 章 15.1 15.2 15.3 15.4 15.5 DTP/ 外部割込み .................................................................................... 189 DTP/ 外部割込みの概要...................................................................................................... 190 DTP/ 外部割込みのレジスタ............................................................................................... 192 DTP/ 外部割込みの動作...................................................................................................... 194 DTP 要求と外部割込み要求の切換え ................................................................................. 196 DTP/ 外部割込みの使用上の注意 ....................................................................................... 197 第 16 章 A/D コンバータ ...................................................................................... 199 16.1 A/D コンバータの特長 ........................................................................................................ 200 16.2 A/D コンバータのブロックダイヤグラム ........................................................................... 202 16.3 A/D コンバータのレジスタ一覧.......................................................................................... 203 16.3.1 A/D 制御ステータスレジスタ 0 (ADCS0)................................................................. 204 16.3.2 A/D 制御ステータスレジスタ 1 (ADCS1)................................................................. 207 16.3.3 A/D データレジスタ 0/1 (ADCR0, ADCR1).............................................................. 210 16.4 A/D コンバータの動作 ........................................................................................................ 212 16.5 EI2OS を使った変換動作.................................................................................................... 214 16.5.1 単発モード時の EI2OS の起動例 .............................................................................. 215 16.5.2 連続モード時の EI2OS の起動例 .............................................................................. 217 16.5.3 停止モード時の EI2OS の起動例 .............................................................................. 219 16.6 変換データ保護機能 ........................................................................................................... 221 第 17 章 UART0 ................................................................................................... 223 17.1 UART0 の特長 .................................................................................................................... 224 17.2 UART0 のブロックダイヤグラム ....................................................................................... 225 17.3 UART0 のレジスタ ............................................................................................................. 226 17.3.1 シリアルモード制御レジスタ 0 (UMC0) .................................................................. 227 17.3.2 シリアルステータスレジスタ 0 (USR0)................................................................... 229 17.3.3 シリアルインプットデータレジスタ 0 (UIDR0) とシリアルアウトプットレジスタ 0 (UODR0)........................................................................................................................ 231 17.3.4 レート・データレジスタ 0 (URD0).......................................................................... 232 17.4 UART0 の動作 .................................................................................................................... 234 17.5 ボーレート.......................................................................................................................... 235 17.6 内部クロックおよび外部クロック...................................................................................... 238 17.7 転送データフォーマット .................................................................................................... 239 17.8 パリティビット .................................................................................................................. 240 17.9 割込み生成とフラグのセットタイミング ........................................................................... 241 17.9.1 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング .............. 242 17.9.2 受信動作時 ( モード 2) のフラグのセットタイミング.............................................. 243 17.9.3 送信動作時のフラグのセットタイミング................................................................. 244 17.9.4 送受信動作時のステータスフラグ............................................................................ 245 17.10 UART0 の応用例................................................................................................................. 246 第 18 章 シリアル I/O ........................................................................................... 249 18.1 シリアル I/O の概要 ............................................................................................................ 250 18.2 シリアル I/O のレジスタ..................................................................................................... 251 18.2.1 シリアルモード制御ステータスレジスタ (SMCS) ................................................... 252 18.2.2 シリアルシフトデータレジスタ (SDR) .................................................................... 256 18.3 シリアル I/O プリスケーラ (CDCR) ................................................................................... 257 18.4 シリアル I/O の動作 ............................................................................................................ 258 viii 18.4.1 シフトクロック ........................................................................................................ 259 18.4.2 シリアル I/O の動作状態 .......................................................................................... 260 18.4.3 シフト動作のスタート / ストップタイミング .......................................................... 262 18.4.4 拡張シリアル I/O インタフェースの割込み機能....................................................... 265 18.5 ネガティブクロック動作 .................................................................................................... 266 第 19 章 CAN コントローラ ................................................................................. 267 19.1 CAN コントローラの特長................................................................................................... 268 19.2 CAN コントローラのブロックダイヤグラム ...................................................................... 269 19.3 全体制御レジスタの一覧 .................................................................................................... 270 19.4 メッセージバッファ (ID レジスタ ) の一覧 ........................................................................ 272 19.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧......................................... 275 19.6 CAN コントローラのレジスタ分類 .................................................................................... 278 19.6.1 CAN 制御ステータスレジスタ (CSR)....................................................................... 279 19.6.2 バス動作停止ビット (HALT=1)................................................................................. 282 19.6.3 ラストイベント表示レジスタ (LEIR) ....................................................................... 283 19.6.4 受信および送信エラーカウンタ (RTEC) .................................................................. 285 19.6.5 ビットタイミングレジスタ (BTR)............................................................................ 286 19.6.6 メッセージバッファ有効レジスタ (BVALR) ............................................................ 288 19.6.7 IDE レジスタ (IDER) ................................................................................................ 289 19.6.8 送信要求レジスタ (TREQR)..................................................................................... 290 19.6.9 送信 RTR レジスタ (TRTRR) ................................................................................... 291 19.6.10 リモートフレーム受信待機レジスタ (RFWTR)........................................................ 292 19.6.11 送信解除レジスタ (TCANR) ..................................................................................... 293 19.6.12 送信完了レジスタ (TCR) .......................................................................................... 294 19.6.13 送信割込み許可レジスタ (TIER) .............................................................................. 295 19.6.14 受信完了レジスタ (RCR).......................................................................................... 296 19.6.15 リモート要求受信レジスタ (RRTRR) ...................................................................... 297 19.6.16 受信オーバランレジスタ (ROVRR).......................................................................... 298 19.6.17 受信割込み許可レジスタ (RIER) .............................................................................. 299 19.6.18 アクセプタンスマスク選択レジスタ (AMSR) .......................................................... 300 19.6.19 アクセプタンスマスクレジスタ 0/1 (AMR0/AMR1)................................................. 302 19.6.20 メッセージバッファ ................................................................................................. 304 19.6.21 ID レジスタ x (x=0 ∼ 15) (IDRx).............................................................................. 305 19.6.22 DLC レジスタ x (x=0 ∼ 15) (DLCRx)....................................................................... 307 19.6.23 データレジスタ x (x=0 ∼ 15) (DTRx) ...................................................................... 308 19.7 CAN コントローラの送信................................................................................................... 310 19.8 CAN コントローラの受信................................................................................................... 312 19.9 CAN コントローラの受信フローチャート.......................................................................... 315 19.10 CAN コントローラの使用方法............................................................................................ 316 19.11 メッセージバッファ (x) による送信方法 ............................................................................ 318 19.12 メッセージバッファ (x) による受信方法 ............................................................................ 320 19.13 マルチレベルメッセージバッファの構成の決定 ................................................................ 322 19.14 CAN コントローラの使用上の注意 .................................................................................... 324 ix 第 20 章 ステッピングモータコントローラ ......................................................... 327 20.1 ステッピングモータコントローラの概要 ........................................................................... 328 20.2 ステッピングモータコントローラのレジスタ.................................................................... 329 20.2.1 PWM 制御 0 レジスタ (PWC0)................................................................................. 330 20.2.2 PWM1&PWM2 コンペアレジスタ (PWC10/PWC20)............................................... 331 20.2.3 PWM1&PWM2 選択レジスタ (PWS10/PWS20) ...................................................... 332 20.3 ステッピングモータコントローラの使用上の注意............................................................. 334 第 21 章 サウンドジェネレータ ........................................................................... 335 21.1 サウンドジェネレータの概要 ............................................................................................. 336 21.2 サウンドジェネレータのレジスタ...................................................................................... 337 21.2.1 サウンド制御レジスタ (SGCR)................................................................................ 338 21.2.2 周波数データレジスタ (SGFR) ................................................................................ 340 21.2.3 振幅データレジスタ (SGAR).................................................................................... 341 21.2.4 デクリメントグレードレジスタ (SGDR) ................................................................. 342 21.2.5 トーンカウントレジスタ (SGTR)............................................................................. 343 第 22 章 22.1 22.2 22.3 22.4 アドレス一致検出機能 ........................................................................... 345 アドレス一致検出機能の概要 ............................................................................................. 346 アドレス一致検出機能のレジスタ...................................................................................... 347 アドレス一致検出機能の動作 ............................................................................................. 349 アドレス一致検出機能の使用例 ......................................................................................... 350 第 23 章 ROM ミラー機能選択モジュール........................................................... 353 23.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 354 23.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 355 第 24 章 2M/3M ビットフラッシュメモリ............................................................ 357 24.1 2M/3M ビットフラッシュメモリの概要 ............................................................................. 358 24.2 ブロックダイヤグラム (2M ビットフラッシュメモリの例 ) とセクタ構成 ........................ 359 24.3 書込み / 消去モード ............................................................................................................ 361 24.4 フラッシュメモリ制御ステータスレジスタ (FMCS).......................................................... 363 24.5 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 365 24.6 自動アルゴリズム実行状態の確認...................................................................................... 367 24.6.1 データポーリングフラグ (DQ7) ............................................................................... 369 24.6.2 トグルビットフラグ (DQ6) ...................................................................................... 370 24.6.3 タイミングリミット超過フラグ (DQ5) .................................................................... 371 24.6.4 セクタ消去タイマフラグ (DQ3) ............................................................................... 372 24.6.5 トグルビット 2 フラグ (DQ2)................................................................................... 373 24.7 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 375 24.7.1 読出し / リセット状態にする.................................................................................... 376 24.7.2 データを書込む ........................................................................................................ 377 24.7.3 全データを消去する ( チップ消去 ) .......................................................................... 380 24.7.4 任意のデータを消去する ( セクタ消去 )................................................................... 381 24.7.5 セクタ消去を一時停止する ...................................................................................... 383 24.7.6 セクタ消去を再開する ............................................................................................. 384 24.8 2M/3M ビットフラッシュメモリ使用上の注意................................................................... 385 24.9 フラッシュメモリにおけるリセットベクタアドレス ......................................................... 386 24.10 2M ビットフラッシュメモリのプログラム例 ..................................................................... 387 x 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 ........................................................................... 393 25.1 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続の基本構成 ......................................................................................... 394 25.2 シリアル書込み接続例 ( ユーザ電源使用時 )...................................................................... 397 25.3 シリアル書込み接続例 ( ライタから電源供給時 )............................................................... 399 25.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ....................... 401 25.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )................ 403 付録 付録 A 付録 B B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 付録 C 付録 D 索引 ............................................................................................................... 405 I/O マップ ...................................................................................................................... 406 命令 ............................................................................................................................... 417 命令の種類 .................................................................................................................. 418 アドレッシング ........................................................................................................... 419 直接アドレッシング.................................................................................................... 421 間接アドレッシング.................................................................................................... 428 実行サイクル数 ........................................................................................................... 435 実効アドレスフィールド ............................................................................................ 437 命令一覧表の読み方.................................................................................................... 439 F2MC-16LX 命令一覧表.............................................................................................. 442 命令マップ .................................................................................................................. 456 フラッシュメモリモードのタイミングダイヤグラム.................................................... 478 MB90590 シリーズ割込みベクタ一覧表........................................................................ 483 ............................................................................................................... 487 xi xii 本版での主な変更内容 ページ 417 ∼ 477 変更内容(詳細は本文を参照してください。) 「付録 B 命令」全体を変更 変更箇所は , 本文中のページ左側の│によって示しています。 < 参考 > 4 版→ 5 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) − レジスタ名を変更 ( 制御ステータスレジスタ (CSR) → CAN 制御ステータスレジスタ (CSR)) (PWM 制御 0 レジスタ (PWMC0) → PWM 制御 0 レジスタ (PWC0)) 3 表 1.2-1 MB90590 の特長 (1 / 2) の 時計タイマ を変更 ( 発振偏差の修正に対応の記述を削除 ) 14 ■ デバイスの取り扱い を変更 ( ● 供給電圧の安定化 を追加 ) 16 ● 水晶発振回路について を変更 ( 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。の 文を追加 ) 59 ■ ソフトウェア割込み を変更 (・PS レジスタに "I" を設定。→ ・PS: I フラグに "0" を設定。) 60 図 3.6-1 ソフトウェア割込みの発生と解除まで を変更 ( ③ を追加 ) 68 ● データ転送継続時 ( 停止条件が成立しない場合 ) を変更 (「図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の動作フロー」+「表 3.8-2 EI2OS の実行時間のデータ転送の補正値」)→ ( 表 3.8-1+ 表 3.8-2)) 78 表 5.2-2 リセット入力によって初期化されないレジスタ の MCS を変更 (×→○) 84 ■ 低消費電力制御回路の概要 を変更 (PLL クロックの逓倍率は,CS1,CS0 ビットの設定により,1,2,3,4 逓倍の中から選択 することができます。の文を削除 ) < 注意事項 > を変更 ( 切換えが完了する前に , 他のクロックモードおよび低消費電力モードへの切換えを 行った場合 , 切り換わらない場合があります。の文を追加 ) 92 表 6.3-2 低消費電力モードへの遷移に使用される命令の一覧 を変更 100 < 注意事項 > を変更 ( 切換えが完了する前に , 他のクロックモードおよび低消費電力モードへの切換えを 行った場合 , 切り換わらない場合があります。の文を追加 ) 102 < 注意事項 > を変更 ( 切換えが完了する前に , 他のクロックモードおよび低消費電力モードへの切換えを 行った場合 , 切り換わらない場合があります。の文を追加 ) xiii < 参考 > 4 版→ 5 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 171 14.2 8/16 ビット PPG のブロックダイヤグラム の要約を変更 (8/16 ビット → 8 ビット ) 図 14.2-1 8 ビット PPG(ch.0) のブロックダイヤグラム を変更 ( 図 を変更 ) (ch.0 の PPG 出力信号は外部端子に接続していません。の文を追加 ) 172 図 14.2-2 8 ビット PPG(ch.1) のブロックダイヤグラム を変更 ( 図 を変更 ) 図 14.2-3 PPG モジュールとユニット番号 , および外部端子の関係 を追加 174 【bit5】PE00 を予約ビットに変更 187 ●パルス出力 を変更 ●割込み要求 を変更 197 ● DTP/ 外部割込みの動作手順 を変更 (1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。の文を追加 ) 198 図 15.5-1 レベル設定時の割込み要求フラグビット (EIRR:ER) のクリア および 図 15.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 を変更 205 【bit5, bit4, bit3】ANS2, ANS1, ANS0(Analog start channel set) を変更 ( ただし , 本ビットに値を設定した場合でも , A/D 変換が開始されるまでは , 設定し た値ではなく , 前回に A/D 変換した変換チャネルが読み込まれます。の文を追加 ) 206 209 < 注意事項 > を変更 (・A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) に開始チャネルを設定し たあとに , A/D 変換モード選択ビット (MD1, MD0) および A/D 変換終了チャネル選 択ビット (ANE2, ANE1, ANE0) をリードモディファイライト系命令で設定しないで ください。 ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換チャネルが 読み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネルを設定したあとに , MD1, MD0 ビットおよび ANE2, ANE1, ANE0 ビットをリードモディファイライト系 命令で設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き替わる可能性がありま す。の文を追加 ) 【bit9】STRT(Start) を変更 ( バイト / ワード命令では "1" が読み出されます。 リードモディファイライト系命令では "0" が読み出されます。の文を追加 ) 239 ■ 転送データフォーマット を変更 (SIN0 と SOUT0 の転送データフォーマットは,→ SIN0 と SOT0 の転送データ フォーマットは,) 279 19.6.1 CAN 制御ステータスレジスタ (CSR) の要約を変更 ( 制御ステータスレジスタ (CSR) に対しては,ビット操作命令(リードモディファイ ライト)を実行することは禁止されています。→ CAN 制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リードモディファイライト ) を 実行することは禁止されています。ただし , HALT ビットが変化しないタイミング ( マクロの初期化時など ) では , ビット操作命令を使用しても問題ありません。) 281 【bit0】HALT: バス動作停止ビット を変更 xiv < 参考 > 4 版→ 5 版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 282 ■バス動作停止を解除する条件 (HALT=0 ) の < 注意事項 > を変更 (・バスオフ時に HALT ビットに "0" を書き込む場合は , HALT が "1" になっているこ とを確認後 , "0" を書き込んでください。の文を追加 ) 334 20.3 ステッピングモータコントローラの使用上の注意 を追加 362 表 24.3-1 フラッシュ制御信号 を変更 (RY/B → RY/BY) 371 ●書込み / チップ・セクタ消去時 を変更 ( まれに "1" が書込めたように , 正常終了する場合もあります。の文を追加 ) 382 図 24.7-2 フラッシュメモリのセクタ消去手順の例 を変更 383 ■フラッシュメモリのセクタ消去を一時停止する を変更 ( セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマ ンド発行後 , 20μs 以上後に行ってください。の文を追加 ) 385 ●ハードウェアリセット (RST) の入力 を変更 (50ns → 500ns) ( 消去中にハードウェアリセットすると,→ 消去中のハードウェアリセットや電源切 断により ,) ● VID の適用 を変更 ( セクタプロテクト動作に必要な VID の適用は,供給電圧がオンのとき常に開始し, → セクタプロテクト動作に必要な VID の印加は , 電源がオンのとき開始し ,) 395 397, 399 表 25.1-1 富士通標準シリアルオンボード書込みに使用する端子 を変更 (- → P00 に "L" レベル , P01 に "H" レベルを入力してください。) 図 25.2-1 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 ( ユーザ電源使用時 ) および 図 25.3-1 MB90F594A/MB90F594G/MB90F591A/ MB90F591G シリアル書込み接続例 ( ライタから電源供給時 ) を変更 ((5) の右側に 抵抗の図 を追加 ) 406 ∼ 411 表 A-1 I/O マップ を変更 412 ∼ 416 表 A-2 I/O マップ (19XX アドレス ) を変更 454 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 を変更 (SWAPW / XCHW A, T → SWAPW ) xv xvi 第1章 概要 この章では , MB90590 シリーズの特長や基本的な 仕様について説明します。 1.1 製品概要 1.2 特長 1.3 ブロックダイヤグラム 1.4 パッケージ外形寸法図 1.5 端子配列図 1.6 端子機能説明 1.7 入出力回路 1.8 デバイスの取扱い 1 第 1 章 概要 1.1 製品概要 表 1.1-1 に , MB90590 シリーズの製品概要を示します。 ■ 製品概要 表 1.1-1 製品概要 特長 MB90V590G MB90F594A/F594G/ F591A/F591G MB90594G/591/591G 品種構成 評価用品 フラッシュメモリ品 マスク ROM 品 F2MC-16LX CPU CPU システムクロック オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, PLL 停止時 1/2) 最小命令実行時間 62.5ns (4MHz 原発振 4 逓倍 ) ROM/ フラッシュメモリ 外部 ハード・ワイヤード・リ セット・ベクタ付きブー トブロックフラッシュメ モリ 256K バイト /384K バイト RAM 8K バイト 6K バイト /8K バイト パッケージ PGA-256 QFP100 エミュレータ専用電源 * 無 - MASK ROM 256K バイト / 384K バイト *: エミュレーションポッド MB2145-507 をご使用いただく際のディップスイッチ S2 の設定です。 詳細につきましては , 『MB2145-507 ハードウェアマニュアル (2.7 エミュレータ専用電源 ) 』を参 照ください。 < 注意事項 > 2 型格に G サフィックスの付いた製品については , CAN コントローラの機能が拡張 されています。CAN の章の「19.6.5 ビットタイミングレジスタ (BTR)」の記述を 参照してください。 第 1 章 概要 特長 1.2 表 1.2-1 に , MB90590 シリーズの特長を示します。 ■ 特長 表 1.2-1 MB90590 の特長 (1 / 2) 機能 特長 UART (3 チャネル ) 全二重ダブルバッファ方式 非同期 / 同期転送 ( スタート / ストップビット付 ) をサポートします。 ボーレート 4808/5208/9615/10417/19230/38460/62500/500000bps ( 非同期 ) システムクロック =16MHz 時 500K/1M/2Mbps ( 同期 ) シリアル I/O MSB または LSB から転送開始可能です。 内部クロック同期転送および外部クロック同期転送をサポートします。 ポジティブエッジとネガティブエッジクロック同期をサポートします。 ボーレートシステムクロック =16MHz 時 31.25K/62.5K/125K/500K/1M/ 2Mbps A/D コンバータ 10 ビットまたは 8 ビットの分解能 8 本の入力チャネル 変換時間 :26.3µs 16 ビットリロードタイ マ (2 チャネル ) 動作クロック周波数 fsys/21, fsys/23, fsys/25 (fsys= システムクロック 周波数 ) 外部イベントカウント機能をサポートします。 時計タイマ 発振クロックで直接動作します。 リード / ライト可能な秒 / 分 / 時レジスタ 信号割込み 16 ビット入出力タイマ オーバフロー時に割込み信号を出力します。 アウトプットコンペア (ch.0) との照合時に , タイマクリアをサポートしま す。 動作クロック周波数 fsys/22, fsys/24, fsys/26, fsys/28 (fsys= システムクロック 周波数 ) 16 ビットアウトプット コンペア (6 チャネル ) 16 ビット入出力タイマとの照合時に , 割込み信号を出力します。 16 ビットキャプチャレジスタ× 6 本 1 対のコンペアレジスタを出力信号生成に使用可能です。 16 ビットインプット キャプチャ (6チャネル ) 立上りエッジ , 立下りエッジまたはその両方を検出します。 16 ビットキャプチャレジスタ× 6 本 外部イベント時に割込み信号を出力します。 3 第 1 章 概要 表 1.2-1 MB90590 の特長 (2 / 2) 機能 特長 8/16 ビット PPG ( プロ グラマブルパルス発生 部 ) (6 チャネル ) 8 ビットと 16 ビットの動作モードをサポートします。 8 ビットリロードカウンタ 2 本× 6 ユニット "L" パルス幅用の 8 ビットリロードレジスタ 2 本× 6 ユニット "H" パルス幅用の 8 ビットリロードレジスタ 2 本× 6 ユニット 1 対の 8 ビットリロードカウンタを 1 本の 16 ビットリロードカウンタとし てまたは 8 ビットプリスケーラと 8 ビットリロードカウンタとして構成可 能です。 出力端子× 6 本 動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24 または 128µs@fosc=4MHz (fsys= システムクロック周波数 , fosc= 発振クロック周 波数 ) CAN インタフェース (2 チャネル ) CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。 エラー時に自動再送します。 リモートフレームに応答して自動伝送します。 データおよび ID 用の順位付けされた 16 個のメッセージバッファ複数メッ セージをサポートします。 アクセプタンスフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマス ク /2 個の部分ビットマスク 最高 1Mbps までサポートします。 ステッピングモータコ ントローラ (4 チャネル ) 各チャネルに対する高電流出力× 4 本 各チャネルに対する同期化済み 8 ビット PWM* × 2 本 MB89940 設計リソースを継承します。 外部割込み (8 チャネル ) エッジ検出とレベル検出が設定可能です。 MB90V590G は , 8 本の入力チャネルのうち 4 本だけをサポートします。 サウンド発生部 8 ビット PWM 信号は , 8 ビットリロードカウンタからのトーン周波数と ミックスされます。 PWM 周波数システムクロック =16MHz 時 62.5K, 31.2K, 15.6K, 7.8K トーン周波数 PWM 周波数 /2/ ( リロード値 +1) 入出力ポート ほとんど , 全外部端子を汎用入出力として使用可能です。 すべてのプッシュプル出力とシュミットトリガ入力 入力 / 出力または周辺信号として , ビット単位でプログラム可能です。 フラッシュメモリ 自動プログラミング , Embedded AlgorithmTM*, 書込み / 消去 / 消去一時停止 / 消去再開コマンドをサポートします。 アルゴリズムの完了を示すフラグ フラッシュメモリ中の固定ブートセクタを示すために , ハード・ワイヤー ド・リセット・ベクタが使用可能です。 ブートブロック構成 各ブロックで消去を実行可能です。 外部プログラミング電圧によるブロック保護 *: Embedded Algorithm は Advanced Micro Devices Inc. の商標です。 4 第 1 章 概要 1.3 ブロックダイヤグラム 図 1.3-1 に , MB90590 シリーズのブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.3-1 ブロックダイヤグラム X0,X1 RST クロック 制御回路 F2MC-16LX CPU HST 入出力タイマ RAM 6K/8K ROM/ フラッシュ インプット キャプチャ× 6 チャネル IN[5:0] アウトプット コンペア× 6 チャネル OUT[5:0] 8/16ビット PPG x 6チャネル PPG[5:0] 256K/384K プリスケーラ× 3 SOT[2:0] SCK[2:0] SIN[2:0] UART 3チャネル SOT3 SCK3 シリアル I/O SIN3 AVCC AVRH AVRL TOT/WOT RX[1:0] TX[1:0] PWM1M[3:0] PWM1P[3:0] 10ビット ADC x 8チャネル ADTG TIN CAN 2チャネル SMC 4チャネル AVSS AN[7:0] F2MC-16LX バス プリスケーラ PWM2M[3:0] PWM2P[3:0] DVCC DVSS 外部割込み 8 チャネル INT[7:0] 16 ビット リロードタイマ × 2 チャネル サウンド 発生部 SGO SGA 時計タイマ 5 第 1 章 概要 パッケージ外形寸法図 1.4 図 1.4-1 に , MB90590 シリーズのパッケージ外形寸法図を示します。なお , 本外形 寸法は参考用です。正式版については , 別途ご相談ください。 ■ パッケージ外形寸法図 図 1.4-1 パッケージ外形寸法図 プラスチック・ QFP, 100 ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 14.00 × 20.00mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 3.35mm MAX コード (参考) P-QFP100-14×20-0.65 (FPT-100P-M06) プラスチック・QFP, 100 ピン (FPT-100P-M06) 注 1) * 印寸法はレジン残りを含まず。 注 2) 端子幅および端子厚さはメッキ厚を含む。 注 3) 端子幅はタイバ切断残りを含まず。 23.90±0.40(.941±.016) * 20.00±0.20(.787±.008) 80 51 81 50 0.10(.004) 17.90±0.40 (.705±.016) *14.00±0.20 (.551±.008) INDEX Details of "A" part 100 1 30 0.65(.026) "A" C 6 0.25(.010) +0.35 3.00 –0.20 +.014 .118 –.008 (Mounting height) 0~8° 31 2002 FUJITSU LIMITED F100008S-c-5-5 0.32±0.05 (.013±.002) 0.13(.005) M 0.17±0.06 (.007±.002) 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) 0.25±0.20 (.010±.008) (Stand off) 単位: mm (inches) 注意:括弧内の値は参考値です。 VSS X0 X1 VCC P00/IN0 P01/IN1 P02/IN2 P03/IN3 P04/IN4 P05/IN5 P06/OUT0 P07/OUT1 P10/OUT2 P11/OUT3 P12/OUT4 P13/OUT5 P14/RX1 P15/TX1 P16/SGO P17/SGA 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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 80 P95/INT3 P94/INT2 P93/INT1 RST P92/INT0 P91/RX0 P90/TX0 DVSS P87/PWM2M3 P86/PWM2P3 P85/PWM1M3 P84/PWM1P3 DVCC P83/PWM2M2 P82/PWM2P2 P81/PWM1M2 P80/PWM1P2 DVSS P77/PWM2M1 P76/PWM2P1 P75/PWM1M1 P74/PWM1P1 DVCC P73/PWM2M0 P72/PWM2P0 P71/PWM1M0 P70/PWM1P0 DVSS HST MD2 1.5 P20 P21 P22 P23 P24/INT4 P25/INT5 P26/INT6 P27/INT7 P30 P31 VSS P32 P33 P34/SOT0 P35/SCK0 P36/SIN0 P37/SIN1 P40/SCK1 P41/SOT1 P42/SOT2 P43/SCK2 P44/SIN2 VCC P45/SIN3 P46/SCK3 P47/SOT3 C P50/PPG0 P51/PPG1 P52/PPG2 第 1 章 概要 端子配列図 図 1.5-1 に , MB90590 シリーズの端子配列図を示します。 ■ 端子配列図 図 1.5-1 端子配列図 QFP-100 パッケージコード ( モールド ) FPT-100P-M06 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 MD1 MD0 P57/TOT/WOT P56/TIN P67/AN7 P66/AN6 P65/AN5 P64/AN4 VSS P63/AN3 P62/AN2 P61/AN1 P60/AN0 AVSS AVRL AVRH AVCC P55/PPG5/ADTG P54/PPG4 P53/PPG3 7 第 1 章 概要 端子機能説明 1.6 表 1.6-1 に , MB90590 シリーズの端子機能説明を示します。 ■ 端子機能説明 表 1.6-1 端子機能説明 (1 / 4) 端子番号 端子名 82 X0 回路形式 A 発振入力端子です。 83 X1 77 RST B リセット入力端子です。 52 HST C ハードウェアスタンバイ入力端子です。 発振出力端子です。 P00 ∼ P05 汎用入出力ポートです。 D 85 ∼ 90 IN0 ∼ IN5 インプットキャプチャの入力端子です。 P06 ∼ P07 P10 ∼ P13 汎用入出力ポートです。 D 91 ∼ 96 OUT0 ∼ OUT5 P14 97 汎用入出力ポートです。 RX1 CAN インタフェース 1 の RX 入力端子です。 P15 汎用入出力ポートです。 TX1 CAN インタフェース 1 の TX 出力端子です。 信号出力を許可にするには , ポート方向レジスタの 対応するビットを "1" に設定します。 P16 汎用入出力ポートです。 D SGO サウンド発生部の SGO 出力端子です。 信号出力を許可にするには , ポート方向レジスタの 対応するビットを "1" に設定します。 P17 汎用入出力ポートです。 99 D 100 D サウンド発生部の SGA 出力端子です。 信号出力を許可にするには , ポート方向レジスタの 対応するビットを "1" に設定します。 D 汎用入出力ポートです。 SGA 1∼4 P20 ∼ P23 P24 ∼ P27 5∼8 汎用入出力ポートです。 D INT4 ∼ INT7 の外部割込み入力端子です。 MB90V590Gは, これらの端子機能をサポートしてい ません。 D 汎用入出力ポートです。 INT4 ∼ INT7 9, 10 アウトプットコンペアの出力端子です。 信号出力を許可にするには , ポート方向レジスタの 対応するビットを "1" に設定します。 D 98 8 機能説明 P30, P31 第 1 章 概要 表 1.6-1 端子機能説明 (2 / 4) 端子番号 端子名 回路形式 12, 13 P32, P33 D P34 14 D P35 D P36 UART0 の SCK 入出力端子です。 信号出力を許可にするには , ポート方向レジスタの 対応するビットを "1" に設定します。 汎用入出力ポートです。 D SIN0 UART0 の SIN 入力端子です。 P37 17 汎用入出力ポートです。 D SIN1 UART1 の SIN 入力端子です。 P40 18 汎用入出力ポートです。 D SCK1 UART1 の SCK 入出力端子です。 P41 19 汎用入出力ポートです。 D SOT1 UART1 の SOT 出力端子です。 P42 20 汎用入出力ポートです。 D SOT2 UART2 の SOT 出力端子です。 P43 21 汎用入出力ポートです。 D SCK2 UART2 の SCK 入出力端子です。 P44 22 汎用入出力ポートです。 D SIN2 UART2 の SIN 入力端子です。 P45 24 汎用入出力ポートです。 D SIN3 シリアル I/O の SIN 入力端子です。 P46 25 汎用入出力ポートです。 D SCK3 シリアル I/O の SCK 入出力端子です。 P47 26 汎用入出力ポートです。 D SOT3 シリアル I/O の SOT 出力端子です。 P50 ∼ P55 28 ∼ 33 UART0 の SOT 出力端子です。 信号出力を許可にするには , ポート方向レジスタの 対応するビットを "1" に設定します。 汎用入出力ポートです。 SCK0 16 汎用入出力ポートです。 汎用入出力ポートです。 SOT0 15 機能説明 PPG0 ∼ PPG5, ADTG 汎用入出力ポートです。 D P60 ∼ P63 プログラマブルパルス発生部の出力端子です。 端子番号33は, A/Dコンバータの外部トリガのADTG 入力端子とも共用されています。 汎用入出力ポートです。 E 38 ∼ 41 AN0 ∼ AN3 A/D コンバータの入力端子です。 9 第 1 章 概要 表 1.6-1 端子機能説明 (3 / 4) 端子番号 端子名 回路形式 P64 ∼ P67 汎用入出力ポートです。 E 43 ∼ 46 AN4 ∼ AN7 A/D コンバータの入力端子です。 P56 47 汎用入出力ポートです。 D TIN 16 ビットリロードタイマの TIN 入力端子です。 P57 汎用入出力ポートです。 TOT/WOT 16ビットリロードタイマのTOT出力端子と時計タイ マの WOT 出力端子です。これら周辺ブロック中の 3 つの出力許可フラグのうち, 一度に設定できるのは1 つだけです。そうでなければ , 出力信号は意味があ りません。 P70 ∼ P73 汎用入出力ポートです。 48 54 ∼ 57 D PWM1P0, PWM1M0, PWM2P0, PWM2M0 F P74 ∼ P77 59 ∼ 62 PWM1P1, PWM1M1, PWM2P1, PWM2M1 PWM1P2, PWM1M2, PWM2P2, PWM2M2 F PWM1P3, PWM1M3, PWM2P3, PWM2M3 F 汎用入出力ポートです。 CAN インタフェース 0 の TX 出力端子です。 P91 75 汎用入出力ポートです。 D RX0 CAN インタフェース 0 の RX 入力端子です。 P92 76 汎用入出力ポートです。 D INT0 INT0 の外部割込み入力端子です。 P93 78 汎用入出力ポートです。 D INT1 INT1 の外部割込み入力端子です。 P94 79 汎用入出力ポートです。 D INT2 INT2 の外部割込み入力端子です。 P95 80 汎用入出力ポートです。 D INT3 10 ステッピングモータコントローラ ch.3 の出力端子で す。 D TX0 58, 68 ステッピングモータコントローラ ch.2 の出力端子で す。 汎用入出力ポートです。 F P90 74 ステッピングモータコントローラ ch.1 の出力端子で す。 汎用入出力ポートです。 P84 ∼ P87 69 ∼ 72 ステッピングモータコントローラ ch.0 の出力端子で す。 汎用入出力ポートです。 P80 ∼ P83 64 ∼ 67 機能説明 DVCC INT3 の外部割込み入力端子です。 - 高電流出力バッファの専用電源入力端子です ( 端子 番号 54 ∼ 72) 。 第 1 章 概要 表 1.6-1 端子機能説明 (4 / 4) 端子番号 端子名 回路形式 機能説明 53, 63, 73 DVSS - 高電流出力バッファの専用 GND 電源端子です ( 端子 番号 54 ∼ 72) 。 34 AVCC - A/D コンバータの専用電源入力端子です。 37 AVSS - A/D コンバータの専用 GND 電源端子です。 35 AVRH - A/D コンバータの VrefH 入力端子です。 36 AVRL - A/D コンバータの VrefL 入力端子です。 49, 50 MD0, MD1 C テストモード用入力端子です。VCC に接続してくだ 51 MD2 G テストモード用入力端子です。VSS に接続してくだ 27 C - 外部コンデンサ用の端子です。0.1µF のコンデンサ を , この端子と VSS に接続してください。 23, 84 VCC - 電源入力端子です。 11, 42, 81 VSS - GND 電源端子です。 さい。 さい。 11 第 1 章 概要 1.7 入出力回路 表 1.7-1 に , 入出力回路を示します。 ■ 入出力回路 表 1.7-1 入出力回路 (1 / 2) 分類 回路 備考 A • 発振帰還抵抗約 1MΩ X1 クロック 入力 発振帰還抵抗 X0 HARD,SOFT STANBY CONTROL B • プルアップ抵抗付きヒステリ シス入力 • プルアップ抵抗 : 約 50kΩ R( プルアップ ) R ヒステリシス 入力 C • ヒステリシス入力端子 R ヒステリシス 入力 D • CMOS 出力 • ヒステリシス入力 P-ch N-ch R 12 ヒステリシス 入力 第 1 章 概要 表 1.7-1 入出力回路 (2 / 2) 分類 回路 備考 E P-ch • CMOS 出力 • ヒステリシス入力 • アナログ入力 N-ch P-ch アナログ入力 N-ch R ヒステリシス 入力 F • CMOS 高電流出力 • ヒステリシス入力 高電流 R ヒステリシス 入力 G R R( プルダウン ) ヒステリシス 入力 • プルダウン抵抗付きヒステリ シス入力 • プルダウン抵抗 : 約 50kΩ • フラッシュメモリ品にはプル ダウン抵抗はありません。 13 第 1 章 概要 1.8 デバイスの取扱い デバイスを取り扱う際には , 以下の項目について特にご注意ください。 • ラッチアップの防止 • 供給電圧の安定化 • 未使用端子の処理 • 外部クロックの使用 • 電源入力端子 (VCC/VSS) • プルアップ / プルダウン抵抗 • 水晶発振回路について • A/D コンバータの電源 , アナログ入力の投入順序について • A/D コンバータ未使用時の端子処理について • N.C. 端子の処理について • 電源投入時の注意点 • 初期化について • ポート 0, 1 からの出力が不定になる場合 • 「DIV A,Ri」, 「DIVW A,RWi」命令を使用する場合 • REALOS を使用する場合 • PLL クロックモード動作中の注意について ■ デバイスの取り扱い ● ラッチアップの防止 CMOSIC は , 以下の条件でラッチアップ現象を生じることがあります。 • VCC を超えるか VSS に満たない電圧が , 入力または出力端子に適用された場合。 • 定格電圧を超える電圧が VCC と VSS の間に適用された場合。 • AVCC 電源入力が VCC 電圧の前に適用された場合。 ラッチアップ現象は , 電流を急激に増加させ , デバイスを傷つけることがあります。 ● 供給電圧の安定化 VCC 電源電圧の動作保証内においても , 電源電圧の急激な変化があると誤動作を起こ す場合がありますので , VCC 電源電圧を安定させてください。 安定化の基準としては , 商用周波数 (50Hz ∼ 60Hz) での VCC リプル変動 (peak to peak 値 ) は , 標準 VCC 電源電圧値の 10% 以下に , また電源の切換え時などの瞬時変化にお いては , 過渡変動率が 0.1V/ms 以下になるように電源電圧を抑えてください。 14 第 1 章 概要 ● 未使用端子の処理 使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる 永久破壊の原因となることがありますので , 2kΩ 以上の抵抗を介して , プルアップまた はプルダウンの処置をしてください。 また , 使用していない入出力端子がある場合は , 出力状態に設定して開放するか , 入力 状態に設定して入力端子と同じ処置をしてください。 ● 外部クロックの使用 外部クロックを使用するには , X0 端子を駆動して X1 端子は開放してください。 図 1.8-1 に , 外部クロックの使用方法を示します。 図 1.8-1 外部クロックの使用 MB90590 シリーズ X0 X1 ● 電源入力端子 (VCC/VSS) 図 1.8-2 に示すように , すべての VCC 電源端子は , 必ず同電位にしてください。また , すべての VSS 電源端子も同様に扱ってください。複数の VCC または VSS システムがあ る場合 , デバイスは保証された動作範囲内でも正しく動作しません。 図 1.8-2 電源入力端子 (VCC/VSS) Vcc Vss Vcc Vss Vss Vcc MB90590 シリーズ Vcc Vss Vss Vcc ● プルアップ / プルダウン抵抗 MB90590 シリーズは , 内部プルアップ / プルダウン抵抗オプションをサポートしてい ません。必要であれば , 外部構成部品を使用してください。 15 第 1 章 概要 ● 水晶発振回路について X0, X1 端子の近辺のノイズはこのデバイスの誤動作の元となります。X0, X1 端子およ び水晶振動子 (またはセラミック振動子) さらにグランドへのバイパスコンデンサはで きる限り近くになるように , またその配線は , ほかの配線とできる限り交差しないよう にプリント基板を設計してください。 また , X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定し た動作を期待できますので , 強くお薦めします。 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 ● A/D コンバータの電源 , アナログ入力の投入順序について A/Dコンバータ, D/Aコンバータの電源 (AVCC, AVRH, AVRL, DVCC, DVSS) およびアナ ログ入力 (AN0 ∼AN7) の印加は, 必ずデジタル電源 (VCC) の投入後に行ってください。 また , 電源切断時は A/D コンバータの電源およびアナログ入力の遮断の後で , デジタル 電源の遮断を行ってください。その際 , AVRH, DVCC は AVCC を超えないように投入・ 切断を行ってください。( アナログ電源とデジタル電源を同時に投入 , 遮断することは 問題ありません。) ● A/D コンバータ未使用時の端子処理について A/D コンバータを使用しないときは , AVCC=VCC, AVSS=AVRH=VSS に接続してくださ い。 ● N.C. 端子の処理について N.C. ( 内部接続 ) 端子は , 必ず開放にして使用してください。 ● 電源投入時の注意点 内部に内蔵している降圧回路の誤動作を防ぐために , 電源投入時における電圧の立上 り時間は , 50µs (0.2V ∼ 2.7V の間 ) 以上を確保してください。 ● 初期化について デバイス内には , パワーオンリセットによってのみ初期化される内蔵レジスタ類があ ります。これらの初期化を期待する場合は電源の再投入を行ってください。 ● ポート 0, 1 からの出力が不定になる場合 (MB90F594G/MB90F591G/MB90591G 以外 ) 電源を投入後 , 降圧回路の発振安定待ち時間 ( パワーオンリセット中 ) に RST 端子が "H" の場合 , ポート 0, 1 から不定を出力します。RST 端子が "L" の場合 , ポート 0, 1 は ハイインピーダンス状態 * になります。タイミングは , 図 1.8-3, 図 1.8-4 のようになり ますので注意してください。 *: P06, P07, P10 ∼ P13, P16, P17 を除く ( 不定出力のみ ) 16 第 1 章 概要 図 1.8-3 ポート 0, 1 が不定出力になるタイミングチャート (RST 端子が "H" の場合 ) 発振安定待ち時間 *2 降圧回路の安定待ち時間 *1 Vcc ( 電源端子 ) PONR( パワーオンリセット ) 信号 RST( 外部非同期リセット ) 信号 RST( 内部リセット ) 信号 発振クロック信号 KA( 内部動作クロック A) 信号 KB( 内部動作クロック B) 信号 PORT( ポート出力 ) 信号 出力不定期間 *1:降圧回路の発振安定待ち時間 217/ 発振クロック周波数 ( 発振クロック周波数 16MHz の場合 , 約 8.19ms) *2:発振安定待ち時間 218/ 発振クロック周波数 ( 発振クロック周波数 16MHz の場合 , 約 16.38ms) 図 1.8-4 ポート 0, 1 がハイインピーダンス状態になるタイミングチャート (RST 端子が "L" の場合 ) 発振安定待ち時間 *2 降圧回路の安定待ち時間 *1 Vcc ( 電源端子 ) PONR( パワーオンリセット ) 信号 RST( 外部非同期リセット ) 信号 RST( 内部リセット ) 信号 発振クロック信号 KA( 内部動作クロック A) 信号 KB( 内部動作クロック B) 信号 PORT( ポート出力 ) 信号 ハイ・インピーダンス *1:降圧回路の発振安定待ち時間 217/ 発振クロック周波数 ( 発振クロック周波数 16MHz の場合 , 約 8.19ms) *2:発振安定待ち時間 218/ 発振クロック周波数 ( 発振クロック周波数 16MHz の場合 , 約 16.38ms) ●「DIV A,Ri」, 「DIVW A,RWi」命令を使用する場合 符号付乗除算命令「DIV A,Ri」, 「DIVW A,RWi」命令は , 対応するバンクレジスタ (DTB, ADB, USB, SSB) の値を "00H" に設定し使用してください。対応するバンクレジ スタ (DTB, ADB, USB, SSB) の値を "00H" 以外に設定した場合 , 命令実行結果により得 られる余りは , 命令オペランドのレジスタに格納されません。 詳細は ,「2.11 「DIV A,Ri」,「DIVW A,RWi」命令の使用上の注意」を参照してください。 ● REALOS を使用する場合 REALOS を使用する場合は , 拡張インテリジェント I/O サービス (EI2OS) は使用できま せん。 17 第 1 章 概要 ● PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたりまたはクロック入 力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を継続 し続ける場合があります。この動作は , 保証外です。 18 第2章 CPU この章では , CPU の機能と動作について説明しま す。 2.1 CPU の概要 2.2 メモリ空間 2.3 メモリ空間マップ 2.4 リニア方式によるアドレス指定 2.5 バンク方式によるアドレス指定 2.6 メモリ空間における多バイト長データ 2.7 レジスタ 2.8 レジスタバンク 2.9 プリフィックスコード 2.10 割込み抑止命令 2.11 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 19 第 2 章 CPU 2.1 CPU の概要 F2MC-16LX CPU コアは , 民生用・車載用機器等の高速リアルタイム処理が要求され る用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコント ローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。 ■ CPU の概要 F2MC-16LX CPU コアは 16 ビットデータ処理は勿論 , 内部に 32 ビットアキュムレータ を塔載しているため 32 ビットデータ処理も可能です。メモリ空間は最大 16M バイト ( 拡張可能 ) , リニア方式およびバンク方式のいずれかにてアクセス可能です。また , 命 令体系は F2MC-8L の A-T アーキテクチャをベースに , 高級言語対応命令の追加・アド レッシングモードの拡張・乗除算命令の強化・ビット処理の充実化により命令が強化 されています。 以下に , F2MC-16LX CPU の特長を示します。 ● 最小命令実行時間 62.5ns (4MHz 発振 , 4 逓倍 ) ● 最大メモリ空間 16M バイト , リニア / バンク方式にてアクセス ● コントローラ用途に最適化された命令体系 • 豊富なデータタイプビット / バイト / ワード / ロングワード • 拡張されたアドレッシングモード 23 種類 • 32 ビットアキュムレータの採用による高精度演算 (32 ビット長 ) の強化 ● 強力な割込み機能 8 つのプライオリティレベル ( プログラマブル ) ● CPU に依存しない自動転送機能 最大 16 チャネルまでの拡張インテリジェント I/O サービス ● 高級言語 (C 言語 ) / マルチタスクに対応した命令体系 システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令 ● 実行速度の向上 4 バイトのキュー 20 第 2 章 CPU 2.2 メモリ空間 F2MC-16LX CPU が管理するデータ・プログラム・I/O はすべて F2MC-16LX CPU が 持つ 16M バイトのメモリ空間のいずれかに配置されます。CPU は 24 ビットのアド レスバスでこれらのアドレスを示すことにより , 各リソースをアクセスすることが できます。 ■ CPU メモリ空間の概要 図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。 図 2.2-1 F2MC-16LX システムとメモリマップの関係例 FFFFFFH プログラム F2MC-16LX データ 810000H 割込み 800000H CPU プログラム領域 FF8000H データ領域 0000C0H 周辺回路 0000B0H 割込みコントローラ 周辺回路 [ デバイス ] 汎用ポート 000020H 汎用ポート 000000H ■ アドレス作成の方式 F2MC-16LX のアドレス指定には , 以下に示す 2 つの方式があります。 ● リニア方式 24 ビットアドレスすべてを命令により指定する方式 ● バンク方式 アドレス上位 8 ビットを用途に応じたバンクレジスタで , アドレス下位 16 ビットを命 令により指定する方式 21 第 2 章 CPU 2.3 メモリ空間マップ 図 2.3-1 に , MB90590 シリーズのメモリ空間マップを示します。 ■ メモリ空間マップ 図 2.3-1 に示すように , バンク 00 の上位部分は FF バンク ROM のイメージであり , C コ ンパイラのスモールモデルを有効にします。下位 16 ビットも同様なため , ポインタ宣 言内の far 仕様を使用せずに ROM 内のテーブルを参照できます。例えば , 00C000H に アクセスしようとすると , ROM 内の FFC000H の値にアクセスすることになります。バ ンク FF 内の ROM 領域は 48K バイトを超え , バンク 00 内にその全体イメージを表示 することはできません。 FF4000H ∼ FFFFFFH の間のイメージはバンク 00 内で可視ですが , FF0000H ∼ FF3FFFH の間のイメージはバンク FF 内でしか可視でありません。 図 2.3-1 メモリ空間マップ MB90V590G FFFFFFH ROM (FF バンク ) FF0000H FEFFFFH FE0000H FDFFFFH MB90F594A/MB90594G/ MB90F594G FFFFFFH FF0000H FEFFFFH ROM (FE バンク ) FE0000H FDFFFFH FC0000H FBFFFFH ROM (FC バンク ) FD0000H FCFFFFH ROM (FE バンク ) ROM (FC バンク ) FC0000H ROM (FB バンク ) ROM (F9 バンク ) ROM(FF バンク のイメージ ) 00FFFFH 004000H ROM(FF バンク のイメージ ) 00FFFFH 004000H 周辺 002100H 0020FFH 001FFFH 周辺 001900H 0018FFH RAM 6Kバイト 000100H 22 ROM (FA バンク ) ROM (F9 バンク ) ROM(FF バンク のイメージ ) 0028FFH RAM 2Kバイト 001900H 0018FFH 0000BFH 000000H ROM (FB バンク ) F90000H 0028FFH 001FFFH ROM (FD バンク ) FA0000H F9FFFFH F90000H ROM (FE バンク ) FD0000H FCFFFFH FB0000H FAFFFFH ROM (FA バンク ) 002100H 0020FFH FE0000H FDFFFFH FC0000H FBFFFFH FA0000H F9FFFFH 004000H ROM (FF バンク ) FF0000H FEFFFFH FB0000H FAFFFFH 00FFFFH FFFFFFH ROM (FD バンク ) ROM (FD バンク ) FD0000H FCFFFFH ROM (FF バンク ) MB90F591A/MB90591 MB90F591G/MB90591G RAM 6Kバイト 0000BFH 000000H 周辺 001900H 0018FFH 000100H 周辺 001FFFH RAM 2Kバイト RAM 6Kバイト 000100H 周辺 0000BFH 000000H 周辺 第 2 章 CPU 2.4 リニア方式によるアドレス指定 リニア方式には以下に示す 2 つの方式があります。 • 24 ビットオペランド指定……オペランドにて直接 24 ビットのアドレスを指定す る方式 • 32 ビットレジスタ間接指定……32 ビットの汎用レジスタの内容の下位 24 ビット をアドレスとして引用する方式 ■ 24 ビットオペランド指定 図 2.4-1 に , 24 ビットオペランド指定の例を , 図 2.4-2 に , 32 ビットレジスタ間接指定 の例を示します。 図 2.4-1 リニア方式 (24 ビットオペランド指定 ) の例 JMPP 123456H 旧プログラムカウンタ +プログラムバンク 17452DH 17 452D JMPP 123456H 123456H 新プログラムカウンタ +プログラムバンク 12 次の命令 3456 図 2.4-2 リニア方式 (32 ビットレジスタ間接指定 ) の例 MOV A, @RL1+7 旧 AL 090700H XXXX 3A +7 RL1 240906F9 ( 上位 8 ビットは無視 新 AL 003A 23 第 2 章 CPU 2.5 バンク方式によるアドレス指定 バンク方式は 16M バイトの空間を 64K バイトごとの 256 個のバンクに分割し , 以下 に示す 5 つのバンクレジスタで各空間に対応するバンクを指定します。 • プログラムバンクレジスタ (PCB) • データバンクレジスタ (DTB) • ユーザスタックバンクレジスタ (USB) • システムスタックバンクレジスタ (SSB) • アディショナルバンクレジスタ (ADB) ■ バンク方式によるアドレス指定 ● プログラムバンクレジスタ (PCB) による指定 プログラムバンクレジスタ (PCB) によって指定される 64K バイトのバンクをプログラ ム (PC) 空間とよび , 主として命令コードやベクタテーブル , 即値データなどが存在し ます。 ● データバンクレジスタ (DTB) による指定 データバンクレジスタ (DTB) によって指定される 64K バイトのバンクをデータ (DT) 空 間とよび , 主として読み書き可能なデータや内外リソースの制御 / データレジスタなど が存在します。 ● ユーザスタックバンクレジスタ (USB)・システムスタックバンクレジスタ (SSB) による指定 ユーザスタックバンクレジスタ (USB) またはシステムスタックバンクレジスタ (SSB) によって指定される 64K バイトのバンクをスタック (SP) 空間とよび , プッシュ / ポッ プ命令や割込みのレジスタ退避などの際にスタックアクセスが生じたときにアクセス される領域です。どちらの空間が使用されるかはコンディションコードレジスタ中の S フラグの値に依存します。 ● アディショナルバンクレジスタ (ADB) による指定 アディショナルバンクレジスタ (ADB) によって指定される 64K バイトのバンクをア ディショナル (AD) 空間とよび , 主として DT 空間に入りきらなかったデータなどが存 在します。 表 2.5-1 に示すように , 各アドレッシングモードで使用されるデフォルト空間が , 命令 のコード効率を向上するために事前に決められています。また , あるアドレッシングを 用いたときにデフォルト以外の空間を使用したいときは , 各バンクに対応しているプ リフィックスコードを命令に先行して指定することにより , そのプリフィックスコー ドに対応した任意のバンク空間をアクセスすることができます。 DTB, USB, SSB, ADB はリセットにより "00H" に初期化され , PCB はリセットベクタに より指定された値に初期化されます。リセット後 , DT, SP, AD の各空間はバンク "00H" (000000H ∼ 00FFFFH) に配置され , PC 空間はリセットベクタにより指定されたバンク に配置されます。 24 第 2 章 CPU 表 2.5-1 デフォルト空間 デフォルト空間 アドレッシング プログラム空間 PC 間接 , プログラムアクセス , 分岐系 データ空間 @RW0,@RW1,@RW4,@RW5 を用いたアドレッシング , @A,addr16,dir スタック空間 PUSHW, POPW,@RW3,@RW7 を用いたアドレッシング アディショナル空間 @RW2,@RW6 を用いたアドレッシング 図 2.5-1 に , レジスタバンクに分割されたメモリ空間の例を示します。 図 2.5-1 各空間の物理アドレス FFFFFFH FF0000H プログラム空間 FFH : PCB ( プログラムバンクレジスタ ) B3H : ADB ( アディショナルバンクレジスタ ) 92H : USB ( ユーザスタックバンクレジスタ ) 68H : DTB ( データバンクレジスタ ) 4BH : SSB ( システムスタックバンクレジスタ ) B3FFFFH B30000H 物 理 92FFFFH ア ド 920000H レ 68FFFFH ス 680000H アディショナル空間 ユーザスタック空間 データ空間 4BFFFFH システムスタック空間 4B0000H 000000H 25 第 2 章 CPU メモリ空間における多バイト長データ 2.6 メモリへの書込みはアドレスの低い方から順に行われます。したがって 32 ビット長 データであれば下位 16 ビットが先に転送され , 続いて上位 16 ビットが転送されま す。 なお , 下位データの書込み直後にリセット信号を入力すると上位データが書き込ま れないことがあります。 ■ メモリ空間における多バイト長データの配置 図 2.6-1 に , メモリにおける多バイト長データの構成を示します。データは下位 8 ビッ トが n 番地に , 以下 n+1 番地 , n+2 番地 , n+3 番地・・・の順に配置されます。 図 2.6-1 メモリにおける多バイト長データの配置の例 MSB H 01010101 LSB 11001100 11111111 00010100 01010101 11001100 11111111 n 番地 00010100 L ■ 多バイト長データのアクセス アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク セスする命令では , FFFFH 番地の次のアドレスは同じバンクの 0000H 番地になります。 図 2.6-2 に , 多バイト長データのアクセス命令の例を示します。 図 2.6-2 MOVWA,080FFFFH の実行 H 80FFFFH 実行前の AL ?? ?? 実行後の AL 23H 01H 01H · · · 800000H 23H L 26 第 2 章 CPU 2.7 レジスタ F2MC-16LX のレジスタは大別して , 専用レジスタと , 汎用レジスタの 2 種類に分け ることができます。 専用レジスタは , CPU の内部に専用ハードウェアとして存在し , 使用する用途が CPU のアーキテクチャ上で限定されています。 汎用レジスタは , 通常のメモリと同じく , 使用する用途をユーザが指定することがで きるものです。CPU のアドレス空間上に RAM と共存し , アドレスを指定しないで アクセスできるという点では専用レジスタと同じです。 ■ 専用レジスタ F2MC-16LX CPU コアの専用レジスタは以下に示す 11 本があります。 • アキュムレータ (A=AH:AL) :16 ビット× 2 本のアキュムレータ ( 合計 32 ビットのアキュムレータとして も使用可能 ) • ユーザスタックポインタ (USP) : ユーザスタック領域を示す 16 ビットの ポインタ • システムスタックポインタ (SSP) : システムスタック領域を示す 16 ビットの ポインタ • プロセッサステータス (PS) : システムの状態を示す 16 ビットの レジスタ • プログラムカウンタ (PC) : プログラムが格納されているアドレスを 持つ 16 ビットのレジスタ • プログラムバンクレジスタ (PCB) : PC 空間を示す 8 ビットのレジスタ • データバンクレジスタ (DTB) : DT 空間を示す 8 ビットのレジスタ • ユーザスタックバンクレジスタ (USB) : ユーザスタック空間を示す 8 ビットの レジスタ • システムスタックバンクレジスタ (SSB) : システムスタック空間を示す 8 ビットの レジスタ • アディショナルバンクレジスタ (ADB) : AD 空間を示す 8 ビットのレジスタ • ダイレクトページレジスタ (DPR) : ダイレクトページを示す 8 ビットの レジスタ 図 2.7-1 に , 専用レジスタの構成を示します。 27 第 2 章 CPU 図 2.7-1 専用レジスタ AH AL アキュムレータ USP ユーザスタックポインタ SSP システムスタックポインタ PS プロセッサステータス PC プログラムカウンタ DPR ダイレクトページレジスタ PCB プログラムバンクレジスタ DTB データバンクレジスタ USB ユーザスタックバンクレジスタ SSB システムスタックバンクレジスタ ADB アディショナルデータバンクレジスタ 8ビット 16ビット 32ビット ■ 汎用レジスタ 図 2.7-2 に示すように , F2MC-16LX の汎用レジスタは主記憶の 000180H ∼ 00037FH ( 最大の 場合 ) に存在し , レジスタバンクポインタ (RP) によって先に述べたアドレスのどの部分が 現在使用中のレジスタバンクであるかを指定します。各バンクには以下に示す 3 種のレジ スタが存在します。これらは独立ではなく , 以下に示すような関係があります。 • R0 ∼ R7:8 ビットの汎用レジスタ • RW0 ∼ RW7:16 ビットの汎用レジスタ • RL0 ∼ RL3:32 ビットの汎用レジスタ 図 2.7-2 汎用レジスタ MSB LSB 16 ビット 000180H +RP × 10H 汎用レジスタの先頭アドレス RW0 下位 RL0 RW1 RW2 RL1 RW3 R1 R0 RW4 R3 R2 RW5 R5 R4 RW6 R7 R6 RW7 RL2 RL3 上位 28 第 2 章 CPU バイトレジスタとワードレジスタの上位 / 下位バイトの関係は , RW(i+4)=R(i × 2+1) × 256+R(i × 2)[i=0 ∼ 3] という式で表すことができ , RLi の上位・下位と RW の関係は RL(i)=RW(i × 2+1) × 65536+RW(i × 2)[i=0 ∼ 3] という式で表すことができます。 29 第 2 章 CPU 2.7.1 アキュムレータ (A) アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL で構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されま す。 ■ アキュムレータ (A) アキュムレータ (A) レジスタでは , 図 2.7-3 に示すように , 32 ビットデータ処理時は AH と AL を連結して使用します。また , 図 2.7-4 に示すように , 16 ビットデータ処理のワー ド処理や 8 ビットデータ処理のバイト処理のときは AL のみが使用されます。A レジ スタ中のデータはメモリ / レジスタ (Ri, RWi, RLi) 中のデータと各種演算ができ , F2MC8のときと同様, F2MC-16LXでも基本的にワード長以下のデータをALへ転送しますと, 転送前の AL 中のデータが自動的に AH に転送されます ( データ保持機能 ) ので , デー タ保持機能と AL-AH 間演算にて各種処理効率を上げることが可能になります。 AL へのバイト長以下のデータの転送時は , データは符号拡張またはゼロ拡張され 16 ビット長となり AL へ格納されます。AL 中のデータは , ワード長としてもバイト長と しても扱えます。AL にバイト処理の算術演算命令を実行すると , 演算前の AL の上位 8 ビットは無視され演算結果の上位 8 ビットはすべて "0" になります。A レジスタは , リセットでは初期化されず , リセット直後は不定値になります。 図 2.7-3 32 ビットデータ転送例 MOVL A,@RW1+6 実行前の A XXXXH MSB XXXXH 8F74H 8FH 74H A6153EH 2BH 52H 15H 38H +6 2B52H AH A61540H A6H DTB 実行後の A LSB RW1 AL 図 2.7-4 AL-AH 転送例 MSB MOVW A,@RW1+6 実行前の A XXXXH 1234H DTB A6H LSB A61540H 8FH 74H A6153EH 2BH 52H 15H 38H +6 実行後の A 30 1234H 1234H RW1 第 2 章 CPU ユーザスタックポインタ (USP) とシステムスタック ポインタ (SSP) 2.7.2 ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は , 16 ビッ トのレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復帰のメモリアドレスを示します。 ■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) 図 2.7-5 および図 2.7-6 に示すように , ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) は , スタック系の命令により使用されますが , プロセッサステータス 中の S フラグが "0" のときは , USP レジスタが有効になり , S フラグが "1" のときは SSP レジスタが有効になります。また , 割込みが受け付けられると S フラグがセットされ るため , 割込み時のレジスタ退避は必ず SSP の示すメモリ中に行われます。割込みルー チンでのスタック処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いら れます。スタック空間を分ける必要のない場合は SSP だけをお使いください。 スタック時のアドレスの上位 8 ビットは , SSP → SSB, USP → USB により示されます。 また USP および SSP は , リセットでは初期化されず , 不定値になります。 図 2.7-5 スタック操作命令とスタックポインタ (S フラグが "0" のときの PUSHW A の例 ) MSB 実行前 AL A624H USB C6H USP F328H S フラグ 0 SSB 56H SSP 1234H AL A624H USB C6H USP F326H 0 SSB 56H SSP 1234H 実行後 C6F326H LSB XX XX S フラグが "0" であるためシ ステムスタックを使用 C6F326H A6H 24H 図 2.7-6 スタック操作命令とスタックポインタ (S フラグが "1" のときの PUSHW A の例 ) MSB 実行前 AL A624H USB C6H USP F328H S フラグ 1 SSB 56H SSP 1234H AL A624H USB C6H USP F328H 1 SSB 56H SSP 1232H 実行後 < 注意事項 > LSB 561232H XX XX 561232H A6H 24H S フラグが "1" であるため システムスタックを使用 スタックポインタに設定すべき値は , 原則として偶数アドレスを使用してくださ い。 31 第 2 章 CPU 2.7.3 プロセッサステータス (PS) プロセッサステータス (PS) は , CPU の動作制御を行うビットと CPU の状態を示す ビットより構成されています。 ■ プロセッサステータス (PS) 図 2.7-7 に示すように , プロセッサステータス (PS) の上位バイトはレジスタバンクの先 頭アドレスを示すインタラプトレベルマスクレジスタ (ILM) およびレジスタバンクポ インタ (RP) より構成され , PS の下位バイトは命令実行結果および割込み発生などによ りセット / リセットされる各種フラグより構成されているコンディションコードレジ スタ (CCR) より構成されています。 図 2.7-7 プロッセサステータス (PS) の構造 bit 15 13 12 PS 8 7 ILM 0 RP CCR ■ コンディションコードレジスタ (CCR) 図 2.7-8 に , コンディションコードレジスタ (CCR) の構成を示します。 図 2.7-8 コンディションコードレジスタ (CCR) の構成 bit 7 初期値→ − − 6 I 0 5 S 1 3 T * 4 N * 2 Z * 1 V * 0 C * : CCR *: 不定値 ● 割込み許可フラグ (I) ソフトウェアインタラプト以外のすべての割込み要求に対し I が "1" のときは割込みが 許可 , "1" のときは割込みはマスク。リセット時クリア。 ● スタックフラグ (S) S が "0" のときはスタック操作用ポインタとして USP が有効 , "1" のときは SSP が有効 になります。割込み受付時およびリセット時にセット。 ● スティッキィビットフラグ (T) 論理右 / 算術右シフト命令を実行後にキャリよりシフトアウトされたデータに 1 つ以 上 "1" があったら "1", それ以外は "0"。シフト量がゼロの場合も "0"。 ● ネガティブフラグ (N) 演算結果の MSB が "1" なら N フラグはセット , それ以外はクリア。 ● ゼロフラグ (Z) 演算結果がすべて "0" ならセット , それ以外はクリア。 32 第 2 章 CPU ● オーバフローフラグ (V) 演算の実行により符号付き数値としてオーバフローが生じるとセット , 生じないとク リア。 ● キャリーフラグ (C) 演算の実行により MSB より桁上がり / 桁下がりが生じるとセット , 生じないとクリア。 ■ レジスタバンクポインタ (RP) 図 2.7-9 に示すように , レジスタバンクポインタ (RP) は , F2MC-16LX の持つ汎用レジ スタとそれが存在する内部 RAM のアドレスとの関係を示すレジスタで , 現在使用中の レジスタバンクの先頭のメモリアドレスを [000180H+(RP)*10H] という変換式で示しま す。 RP は 5ビットにより構成されており00H ∼1FH までの値をとることができ , 000180H ∼ 00037FH のメモリ中にレジスタバンクを配置できます。 ただし , この範囲内であっても内部 RAM でなければ汎用レジスタとして使用すること はできません。RP はリセットによりすべて "0" に初期化されます。命令上では RP に 8 ビットの即値が転送できますが , 実際に使用されるのはそのデータの下位 5 ビットの みです。 図 2.7-9 レジスタバンクポインタ (RP) 初期値→ B4 0 B3 0 B2 0 B1 0 B0 0 : RP ■ インタラプトレベルマスクレジスタ (ILM) 図 2.7-10 に示すように , インタラプトレベルマスクレジスタ (ILM) は 3 ビットから構 成されており , CPU の割込みマスクのレベルを示します。この 3 ビットにより示され るレベルより強いレベルの割込み要求のみが受け付けられます。表 2.7-1 に示すように , レベルの強弱は "0" が最強で , "7" が最弱と定義されています。したがって割込みが受 け付けられるには , 現状の ILM の保持値より小さい値の要求でなければなりません。 割込みが受け付けられるとその割込みのレベル値が ILM にセットされ , これ以降の同 じかそれより低い優先順位の割込みは受け付けられなくなります。ILM はリセットに よりすべて "0" に初期化されます。命令上では ILM に 8 ビットの即値が転送できます が , 実際に使用されるのはそのデータの下位 3 ビットのみです。 図 2.7-10 インタラプトレベルマスクレジスタ (ILM) 初期値→ ILM2 0 ILM1 0 ILM0 0 : ILM 33 第 2 章 CPU 表 2.7-1 インタラプトレベルマスクレジスタ (ILM) で示されるレベルの強弱 34 ILM2 ILM1 ILM0 レベル値 0 0 0 0 割込み禁止 0 0 1 1 0 のみ 0 1 0 2 1 より小さい値のレベル 0 1 1 3 2 より小さい値のレベル 1 0 0 4 3 より小さい値のレベル 1 0 1 5 4 より小さい値のレベル 1 1 0 6 5 より小さい値のレベル 1 1 1 7 6 より小さい値のレベル 許可される割込みレベル 第 2 章 CPU 2.7.4 プログラムカウンタ (PC) プログラムカウンタ (PC) は , 16 ビットのカウンタであり , CPU が実行すべき命令 コードのメモリアドレスの下位 16 ビットを示します。上位 8 ビットアドレスは PCB により示されます。PC は条件分岐命令 , サブルーチンコール命令 , 割込み , リ セットなどにより内容が更新されます。 また , オペランドアクセス時のベースポインタとして使用することもできます。 ■ プログラムカウンタ (PC) 図 2.7-11 に , プログラムカウンタを示します。 図 2.7-11 プログラムカウンタ PCB FEH PC ABCDH 次に実行する命令 FEABCDH 35 第 2 章 CPU 2.8 レジスタバンク レジスタバンクは 8 ワードで構成され , バイトレジスタ R0 ∼ R7, ワードレジスタ RW0 ∼ RW7, ロングワードレジスタ RL0 ∼ RL3 の汎用レジスタとして各種演算 , ポインタとして各種命令に使用でき , RL0 ∼ RL3 は全空間を直接アクセスするリニ アポインタとしても使用できます。 ■ レジスタバンク 表 2.8-1 に , 各レジスタの機能を , 図 2.8-1 に各レジスタの関係を示します。 レジスタバンクの内容は , 通常の RAM 同様に , リセットでは初期化されず , リセット 前の状態が保持されます。ただし , パワーオン時は不定値になります。 表 2.8-1 各レジスタの機能 R0 ∼ R7 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ命 令のカウンタとしても使用 RW0 ∼ RW7 ポインタ , 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 ∼ RL3 ロングポインタ , 各種命令のオペランドとして使用 図 2.8-1 各レジスタの関係 RW0 RL0 RW1 RW2 RL1 RW3 R0 RW4 R1 RL2 R2 RW5 R3 R4 RW6 R5 RL3 R6 RW7 R7 36 第 2 章 CPU ● ダイレクトページレジスタ (DPR) <初期値 :01H > ダイレクトページレジスタ (DPR) は , ダイレクトアドレッシングの命令時のオペラン ドの addr8 ∼ addr15 を指定します。図 2.8-2 に示すように , DPR は 8 ビット長であり , リセットにより "01H" に初期化されます。 図 2.8-2 ダイレクトアドレッシングによる物理アドレスの生成 DTB レジスタ DPR レジスタ 命令中のダイレクトアドレス αααααααα ββββββββ γγγγγγγγ MSB 24 ビット 物理アドレス LSB ααααααααββββββββγγγγγγγγ ● プログラムカウンタバンクレジスタ (PCB) <初期値 : リセットベクタ中の値> ● データバンクレジスタ (DTB) <初期値 :00H > ● ユーザスタックバンクレジスタ (USB) <初期値 :00H > ● システムスタックバンクレジスタ (SSB) <初期値 :00H > ● アディショナルデータバンクレジスタ (ADB) <初期値 :00H > 各々のバンクレジスタはそれぞれ PC 空間 , DT 空間 , SP 空間 ( ユーザ ) , SP 空間 ( シス テム ) AD 空間の配置されるメモリバンクを示します。すべてのバンクレジスタはバイ ト長であり , リセットにより PCB はリセットベクタの値に初期化されます。PCB 以外 のバンクレジスタは読出し / 書込みができます。PCB は読出しは可能ですが書き込む ことはできません。 16M バイト全空間に分岐する JMPP, CALLP, RETP, RETIQ, RETF 命令実行時および割 込み時に PCB は書き換わります。各レジスタの動作は , 「2.2 メモリ空間」を参照し てください。 37 第 2 章 CPU 2.9 プリフィックスコード 命令の前にプリフィックスコードを置くことで , 命令動作の一部を変更することが 可能です。プリフィックスコードには , バンクセレクトプリフィックス , コモンレジ スタバンクプリフィックス , フラグ変化抑止プリフィックスの 3 種類があります。 ■ バンクセレクトプリフィックス データアクセスの際に使用されるメモリ空間はアドレッシングごとに定められていま す。バンクセレクトプリフィックスを命令前に置くことで , 命令によるデータアクセス のメモリ空間をアドレッシングモードと無関係に任意に選択することが可能となりま す。 表 2.9-1 に , バンクセレクトプリフィックスと対応するメモリ空間を示します。 表 2.9-1 バンクセレクトプリフィックス バンクセレクトプリ フィックス 選択される空間 PCB PC 空間 DTB データ空間 ADB AD 空間 SPB そのときのスタックフラグの内容により SSP 空間 , USP 空間のどちらかが用いられます。 ただし , 以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕 プリフィックス有無に関わらず , オペランド指定されたバンクレジスタを使用する。 ● スタック操作命令〔PUSHW, POPW〕 プリフィックス有無に関わらず , S フラグに応じて SSB または USB を使用する。 ● I/O アクセス命令 MOVA,io/MOVio,A/MOVXA,io/MOVWA,io/MOVWio,A/MOVio,#imm8 MOVWio,#imm16/MOVBA,io:bp/MOVBio:bp,A/SETBio:bp/CLRBio:bp BBCio:bp,rel/BBSio:bp,rel/WBTC,WBTS プリフィックス有無に関わらず , バンクの IO 空間が使用されます。 ● フラグ変更命令〔AND CCR,#imm8/OR CCR,#imm8〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● POPW PS プリフィックス有無に関わらず , S フラグに応じて SSB または USB が使用されます。 プリフィックスの効果が次の命令まで及びます。 38 第 2 章 CPU ● MOVILM,#imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● RETI プリフィックス有無に関わらず , SSB が使用されます。 ■ コモンレジスタバンクプリフィックス (CMR) 複数のタスク間でのデータ交換を容易にするためには , そのときの RP がどのような値 でも比較的簡単に定められた同一のレジスタバンクをアクセスする手段が必要です。 コモンレジスタバンクプリフィックス (CMR) をレジスタバンクをアクセスする命令の 前に置くことで , 現在の RP の値に関係なくその命令のレジスタアクセスをすべて 000180H ∼ 00018FH にあるコモンバンク (RP=0 のときに選択されるレジスタバンク ) に変更することができます。ただし , 以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕 プリフィックスコードを付加したストリング命令実行中に割込み要求が発生すると , 割込み復帰後のストリング命令に対しては , プリフィックスが無効であるため誤動作 となります。上記のストリング命令に対しては CMR プリフィックスを付加しないでく ださい。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● MOVILM,#imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ■ フラグ変化抑止プリフィックス (NCC) フラグ変化を抑止するためには , フラグ変化抑止プリフィックスコード (NCC) を用い ます。不要フラグ変化を抑止する命令の前に置くことで , 命令実行に伴うフラグ変化を 抑止可能です。ただし以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕 プリフィックスコードを付加したストリング命令の実行中に割込み要求が発生すると 割込み復帰後のストリング命令に対してはプリフィックスが無効であるために誤動作 となります。上記のストリング命令には NCC プリフィックスを付加しないでください。 ● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● 割込み命令〔INT #vct8, INT9, INT addr16, INTP addr24, RETI〕 プリフィックスの有無にかかわらず CCR は命令の仕様通り変化します。 ● JCTX@A プリフィックスの有無にかかわらず CCR は命令の仕様通り変化します。 ● MOVILM,imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 39 第 2 章 CPU 2.10 割込み抑止命令 以下に示す 10 種類の命令については , 割込み要求はサンプリングされません。 • MOV ILM, #imm8 • PCB • AND CCR, #imm8 • ADB • SPB • CMR • OR CCR, #imm8 • NCC • POPW PS • DTB ■ 割込み抑止命令 図 2.10-1 に示すように , この命令実行中に有効なハードウェア割込み要求が発生して も , 割込み処理が行われるのは , この命令以降にこの種類以外の命令が実行された後に なります。 図 2.10-1 割込み抑止命令 割込み抑止命令 (a) (a) 普通の命令 割込み要求発生 割込み受け付け ■ 割込み抑止命令とプリフィックス命令に関する制約 図 2.10-2 に示すように , 割込み抑止命令の前にプリフィックスコードを付加した場合 , プリフィックスコードの効果は , プリフィックスコード後の最初の〔割込み抑止命令以 外の命令〕まで及びます。 図 2.10-2 割込み抑止命令とプリフィックスコード 割込み抑止命令 MOV A, FFH NCC ADD A,01H MOV ILM,#imm8 CCR:XXX10XX CCR:XXX10XX NCC により CCR は変化しません。 ■ プリフィックスコードが連続している場合 図 2.10-3 に示すように , 競合するプリフィックスコードが連続していた場合 , 後方のも のが有効になります。なお , 競合するプリフィックスコードとはここでいう PCB, ADB, DTB, SPB のことを意味します。 図 2.10-3 プリフィックスコードの連続 プリフィックスコード ADB DTB PCB ADD A,01H プリフィックスコードは PCB が有効になります。 40 第 2 章 CPU 2.11 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 「DIV A,Ri」, 「DIVW A,RWi」命令を使用する場合 , バンクレジスタを "00H" に設定 してください。 ■「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 表 2.11-1 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意 命令 左記命令事項時に影響を 受けるバンクレジスタ名 余りが格納されるアドレス DIV A,R0 (DTB: 上位 8 ビット ) + (0180H+RP × 10H+8H 下位 16 ビット ) DIV A,R1 (DTB: 上位 8 ビット ) + (0180H+RP × 10H+9H 下位 16 ビット ) DIV A,R4 (DTB: 上位 8 ビット ) + (0180H+RP × 10H+CH 下位 16 ビット ) (DTB: 上位 8 ビット ) + (0180H+RP × 10H+DH 下位 16 ビット ) DIV A,R5 DTB DIVW A,RW0 (DTB: 上位 8 ビット ) + (0180H+RP × 10H+0H 下位 16 ビット ) DIVW A,RW1 (DTB: 上位 8 ビット ) + (0180H+RP × 10H+2H 下位 16 ビット ) DIVW A,RW4 (DTB: 上位 8 ビット ) + (0180H+RP × 10H+8H 下位 16 ビット ) DIVW A,RW5 (DTB: 上位 8 ビット ) + (0180H+RP × 10H+AH 下位 16 ビット ) DIV A,R2 (ADB: 上位 8 ビット ) + (0180H+RP × 10H+AH 下位 16 ビット ) (ADB: 上位 8 ビット ) + (0180H+RP × 10H+EH 下位 16 ビット ) DIV A,R6 ADB DIVW A,RW2 (ADB: 上位 8 ビット ) + (0180H+RP × 10H+4H 下位 16 ビット ) DIVW A,RW6 (ADB: 上位 8 ビット ) + (0180H+RP × 10H+EH 下位 16 ビット ) DIV A,R3 (USB*2: 上位 8 ビット ) + (0180H+RP × 10H+BH 下位 16 ビット ) (USB*2: 上位 8 ビット ) + (0180H+RP × 10H+FH 下位 16 ビット ) DIV A,R7 USBSSB*1 DIVW A,RW3 (USB*2: 上位 8 ビット ) + (0180H+RP × 10H+6H 下位 16 ビット ) DIVW A,RW7 (USB*2: 上位 8 ビット ) + (0180H+RP × 10H+EH 下位 16 ビット ) *1:CCR レジスタの S ビットによる *2:CCR レジスタの S ビットが "0" の場合 バンクレジスタ (DTB, ADB, USB, SSB) の値が "00H" の場合は , 除算結果の余りが命令 オペランドのレジスタに格納されます。バンクレジスタの値が "00H" 以外の場合は , 上 位 8 ビットアドレスは命令オペランドのレジスタに対応したバンクレジスタにより指 定され , 下位 16 ビットアドレスは命令オペランドのレジスタのアドレスと同じアドレ スとなり , 上位 8 ビットで指定されたバンクのレジスタに余りが格納されます。 41 第 2 章 CPU ●例 DTB="053H", RP="03H" の場合に「DIV A,R0」を実行した場合は , R0 のアドレスが "0180H"+RP("03H") × "10H"+"08H" (R0 相当アドレス ) ="0001B8H" となります。 ここで , 「DIV A,R0」で指定されるバンクレジスタはデータバンクレジスタ (DTB) で すので, バンクアドレス"053H"を付加したアドレス"05301B8H"に余りが格納されます。 < 参考 > バンクレジスタおよび Ri, RWi のレジスタについては , 「2.7 レジスタ」を参照し てください。 ■ 注意事項の回避について 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意事項を回避してプログラムを開発 していただくために , コンパイラでは表 2.11-1 の命令を生成しないように変更し , アセ ンブラでは表 2.11-1 の命令を同等の命令列に置き換える機能を追加したものが用意さ れています。MB90590 シリーズのコンパイラおよびアセンブラは , 以下のものを使用 してください。 ● コンパイラ cc907 の V02L06 以降のバージョンおよび fcc907s の V30L02 以降のバージョン ● アセンブラ asm907a の V03L04 以降のバージョンおよび fasm907s の V03L04(Rev.300004) 以降の バージョン 42 第3章 割込み この章では , MB90590 シリーズの割込みと拡張イ ンテリジェント I/O サービス (EI2OS) の機能と動作 について説明しています。 3.1 割込みの概要 3.2 割込みベクタ 3.3 割込み制御レジスタ (ICR) 3.4 割込みフロー 3.5 ハードウェア割込み 3.6 ソフトウェア割込み 3.7 拡張インテリジェント I/O サービス (EI2OS) 3.8 拡張インテリジェント I/O サービス (EI2OS) の 動作フローと使用手順 3.9 例外 43 第 3 章 割込み 割込みの概要 3.1 F2MC-16LX は , イベントなどの発生により現在実行中の処理を中断して , 別に定義 したプログラムへ制御を移す割込み機能があります。 ■ 割込みの概要 割込み機能は以下の 4 つに分けることができます。 • ハードウェア割込み……内蔵リソースのイベント発生による割込み処理 • ソフトウェア割込み……ソフトウェアのイベント発生命令による割込み処理 • 拡張インテリジェント I/O サービス (EI2OS)……内蔵リソースのイベント発生による 転送処理 • 例外……動作例外事項の発生による中断処理 この章では , これら 4 種類の割込みについて説明します。 ■ ハードウェア割込み ハードウェア割込みは , 内部リソースからの割込み要求によって起動します。ハード ウェア割込み要求は , 内部リソース内の割込み要求フラグと割込み許可フラグがセッ トされた場合に発生します。したがって , ハードウェア要求を発生させるためには , 内 部リソース内に , 割込み要求フラグと割り込み許可フラグを持っていなければなりま せん。 ● 割込みレベルの指定 ハードウェア割込みは , 割込みレベルを指定することができます。割込みレベルを指定 するには , 割込みコントローラのレベル設定ビット (IL0, IL1, IL2) を使用します。 ● ハードウェア割込み要求マスク ハードウェア割込み要求は , CPU 内のプロセッサステータスレジスタ (PS) 中の I フラ グおよび ILM ビット (IL0, IL1, IL2) を使用してマスクすることができます。マスクの かかっていない割込み要求が発生すると , CPU は , PS, PC, PCB, DTB, ADB, DPR, A の 各レジスタからなる 12 バイトのデータを SSB と SSP レジスタが示すメモリ領域に退 避します。 図 3.1-1 ハードウェア割込みの概要 レジスタファイル F2MC-16LX バス マイクロコード PS IR ⑥ F2MC-16LX・CPU ILM チェック ⑤ 比較器 ④ ③ 周辺 許可 FF AND 要因 FF ⑦ 44 I ① ② レ ベ ル 比 較 器 割 込 み レ ベ ル 割込み IL コントローラ PS : プロセッサステータス I : 割込み許可フラグ ILM : 割込みレベルマスク レジスタ IR : インストラクション レジスタ 第 3 章 割込み ■ ソフトウェア割込み ソフトウェア割込みは , CPU がそれまで実行していたプログラムの実行から , ユーザの 定義した割込み処理用プログラムへ制御を移行する機能です。 ソフトウェア割込みは , INT 命令実行により要求されます。INT 命令により要求される 割込みには , 割込み要求フラグと割込み許可フラグはありません。INT 命令の実行によ り常に割込み要求が発生します。 INT 命令には , 割込みレベルの割当てもありません。このため , INT 命令使用時には ILM の更新は行われません。代わりに , I フラグをクリアして , 継続する割込み要求を 保留状態にします。 図 3.1-2 ソフトウェア割り込みの概要 ① F2MC-16LX バス レジスタ ファイル I PS ② マイクロ S B ユニット コード IR F2MC-16LX・CPU キュー フェッチ : プロセッサステータス : 割込み許可フラグ : 割込みレベルマスク レジスタ IR : インストラクション レジスタ B ユニット: バスインタフェース ユニット PS I ILM 退避 命令系バス RAM ■ 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービスは , 内蔵リソースとメモリの間でデータを自動的に 転送します。この種の処理には , 従来割込み処理プログラムが使用されていましたが , EI2OS はデータ転送を DMA ( ダイレクトメモリアクセス ) 的に実行できます。 拡張インテリジェント I/O サービス機能を内部リソースより発生させるためには , 割込 みコントローラの割込み制御レジスタ (ICR) 中に拡張インテリジェント I/O サービス許 可フラグ (ISE) を持っていなければなりません。 拡張インテリジェント I/O サービスは ISE フラグが "1" で割込み要求が発生した場合に 起動されます。 なお, ハードウェア割込み要求によって通常の割込みを発生させるには, ISE フラグを "0" にセットします。 45 第 3 章 割込み 図 3.1-3 拡張インテリジェント I/O サービス (EI2OS) の概要 メモリ空間 IOA I/O レジスタ I/O レジスタ 周辺 割込み要求 CPU ③ ISD ICS ① ② 割込み制御レジスタ ③ 割込みコントローラ BAP ④ バッファ DCT ① I/O が転送を要求します。 ② 割込みコントローラが ディスクリプタを選択します。 ③ 転送元 / 先をディスクリプタから 読み出します。 ④ I/O とメモリ間で転送が行われます。 ■ 例外 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は 予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時 の復旧ソフトウェアの起動などのみに使用することをお勧め致します。 46 第 3 章 割込み 割込みベクタ 3.2 割込みベクタは , ハードウェア割込みとソフトウェア割込みについて同じ領域を使 用します。例えば , 割込み要求番号 INT42 が , 遅延ハードウェア割込みとソフト ウェア割込み INT#42 に使用されます。したがって , 遅延割込みと INT#42 が同じ割 込み処理ルーチンを呼び出します。割込みベクタは , 表 3.2-1 に示すようにアドレス FFFC00H と FFFFFFH の間に配置されます。 ■ 割込みベクタ 表 3.2-1 割込みベクタ 割込み要求 ベクタアドレス L ベクタアドレス H ベクタアドレス バンク モードレジスタ INT0*1 FFFFFCH FFFFFDH FFFFFEH 未使用 INT1*1 FFFFF8H FFFFF9H FFFFFAH 未使用 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT7*1 FFFFE0H FFFFE1H FFFFE2H 未使用 INT8*2 FFFFDCH FFFFDDH FFFFDEH FFFFDFH INT9 FFFFD8H FFFFD9H FFFFDAH 未使用 INT10*3 FFFFD4H FFFFD5H FFFFD6H 未使用 INT11 FFFFD0H FFFFD1H FFFFD2H 未使用 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT254 FFFC04H FFFC05H FFFC06H 未使用 INT255 FFFC00H FFFC01H FFFC02H 未使用 *1:PCB が FFH の場合 , CALLV 命令のベクタ領域は , INT #vct8 (#0 ∼ #7) と同じです。 *2: このベクタは , リセットベクタです。 *3: このベクタは , 例外処理ベクタです。 ■ 割込みベクタ一覧表 付録に「表 D-1 MB90590 シリーズ割込みベクタ一覧表」を示していますので , 参照し てください。 47 第 3 章 割込み 割込み制御レジスタ (ICR) 3.3 割込み制御レジスタは割込みコントローラ内にあり , 割込み機能を持つすべての I/O に対応して存在します。このレジスタには以下に示す 3 つの機能があります。 • 対応する周辺の割込みレベルの設定 • 対応する周辺の割込みを通常割込みにするか , 拡張インテリジェント I/O サービス にするかの選択 • 拡張インテリジェント I/O サービスのチャネルの選択 このレジスタに対するリードモディファイライト系の命令でのアクセスは誤動作を 引き起こしますので行わないでください。 ■ 割込み制御レジスタ (ICR) 図 3.3-1 に , 割込み制御レジスタのビット構成の図を示します。 図 3.3-1 割込み制御レジスタ (ICR) bit 15/7 14/6 ICS3 ICS2 W W < 注意事項 > 13/5 ICS1 or S1 * 12/4 ICS0 or S0 * 11/3 10/2 9/1 8/0 ISE IL2 IL1 IL0 R/W R/W R/W R/W 割込み制御レジスタ リセット時 00000111B • ICS3 ∼ ICS0 は EI2OS を起動する場合のみ有効となります。EI2OS を起動する 場合は ISE を "1" に設定し , 起動しない場合は "0" に設定してください。EI2OS を起動しない場合 , ICS3 ∼ ICS0 は何を設定してもかまいません。 • *"1" は常に読出しです。ICS1 と ICS0 は書込みのみ , S1 と S0 は読出しのみ , それぞれ有効です。 【bit10 ∼ bit8, bit2 ∼ bit0】IL0, IL1, IL2 ( 割込みレベル設定ビット ) 割込みレベル設定ビットです。対応する内蔵リソースの割込みレベルを指定します。読 み書きができます。リセットによりレベル 7 ( 割込みなし ) に初期化されます。 表 3.3-1 に , 割込みレベル設定ビットと割込みレベルとの関係を示します。 48 第 3 章 割込み 表 3.3-1 割込みレベル設定ビットと割込みレベル 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 ( 割込みなし ) 割込みレベル値 【bit11, bit3】ISE ( 拡張インテリジェント I/O サービスイネーブルビット ) EI2OS 許可ビットです。割込み要求の発生時にこのビットが "1" であると EI2OS が起 動され , "0" のときは割込みシーケンスが起動されます。また , EI2OS が終了 ( カウン ト終了による場合と内蔵リソースからの要求による場合 ) したとき , ISE ビットは "0" になります。対応する内蔵リソースに EI2OS の機能がないときには , ソフトウェアで ISE を "0" にしておく必要があります。読み書き可能なビットです。 リセットにより "0" に初期化されます。 49 第 3 章 割込み 【bit15 ∼ bit12, bit7 ∼ bit4】ICS3 ∼ ICS0 ( 拡張インテリジェント I/O サービスチャネル セレクトビット ) EI2OS チャネル選択ビットです。書込み専用のビットで , このビットにより EI2OS の チャネルを指定します。ここで設定された値によりメモリ上の拡張インテリジェント I/O サービスディスクリプタのアドレスが決定します。ICS はリセットにより "0000" に 初期化されます。 表 3.3-2 に , ICS, チャネル番号 , ディスクリプタアドレスの対応関係を示します。 表 3.3-2 ICS ビット , チャネル番号 , ディスクリプタアドレス 50 ICS3 ICS2 ICS1 ICS0 0 0 0 0 0 000100H 0 0 0 1 1 000108H 0 0 1 0 2 000110H 0 0 1 1 3 000118H 0 1 0 0 4 000120H 0 1 0 1 5 000128H 0 1 1 0 6 000130H 0 1 1 1 7 000138H 1 0 0 0 8 000140H 1 0 0 1 9 000148H 1 0 1 0 10 000150H 1 0 1 1 11 000158H 1 1 0 0 12 000160H 1 1 0 1 13 000168H 1 1 1 0 14 000170H 1 1 1 1 15 000178H セレクトされるチャネル ディスクリプタアドレス 第 3 章 割込み 【bit13, bit12, bit5, bit4】S0, S1 ( 拡張インテリジェント I/O サービスステータス ) EI2OS 終了ステータスビットです。読出し専用のビットで , EI2OS 終了時にこのビット の値を調べることにより , 終了条件が何であったかを判別することができます。 リセットにより "00" に初期化されます。 表 3.3-3 に , S ビットと終了条件との関係を示します。 表 3.3-3 S ビットと終了条件 S1 S0 0 0 EI2OS 動作中または非起動時 0 1 カウント終了による停止状態 1 0 リザーブ 1 1 内蔵リソースからの要求による停止状態 終了条件 51 第 3 章 割込み 3.4 割込みフロー 図 3.4-1 に , 割込みフローを示します。 ■ 割込みフロー 図 3.4-1 割込みフロー I ILM IF IE ISE IL S I & IF & IE = 1 AND ILM > IL : CCR 中のフラグ : CPU のレベルレジスタ : 内蔵リソースの割込み要求 : 内蔵リソースの割込みイネーブルフラグ : EI2OS のイネーブルフラグ : 内蔵リソースの割込み要求レベル : CCR 中のフラグ YES NO NO YES ISE = 1 次の命令の取り込みと デコード PS, PC, PCB, DTB, ADB, DPR, A を SSP のスタックへ退避 そののち , ILM = IL 拡張インテリジェント I/O サービス処理 YES INT 命令 NO 通常命令実行 NO ストリング系 命令の繰り返し 完了 YES PC の更新 52 PS, PC, PCB, DTB, ADB, DPR, A を SSP のスタックへ退避 そののち , I = 0, ILM = IL S←1 割込みベクタ取り込み 第 3 章 割込み 図 3.4-2 割込み処理中のレジスタ退避 ワード (16 ビット ) H MSB LSB SSP( 割込み発生前の SSP の値 ) AH AL DPR ADB DPB PCB PC PS L SSP( 割込み発生後の SSP の値 ) 53 第 3 章 割込み 3.5 ハードウェア割込み ハードウェア割込みは , 内蔵リソースからの割込み要求信号に対応して , CPU がそ れまで実行していたプログラムの実行を一時中断し , ユーザの定義した割込み処理 用プログラムへ制御を移行する機能です。 ■ ハードウェア割込み ハードウェア割込みの起動は , 割込み要求がもつ割込みレベルと , CPU の PS がもつイ ンタラプトレベルマスクレジスタ (ILM) の比較および PS 内の I フラグの内容をハード ウェアで参照したのち , 発生条件に合致すれば発生します。 ハードウェア割込みが発生するときに CPU が行う処理には , 以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの 退避 • PS レジスタ内の ILM の設定。自動的に現在要求している割込みレベルと同じになる • 対応する割込みベクタの内容の取り込みとそこへの分岐 ■ ハードウェア割込みの構造 ハードウェア割込みに関連する機構は , 以下の 3 つの部分に分かれて存在します。 ● 内蔵リソース 割込み許可ビット , 割込み要求ビット : リソースからの割込み要求の制御 ● 割込みコントローラ ICR: 割込みのレベル付け , 同時要求割込みの優先度判定 ● CPU I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別 マイクロコード : 割込み処理用ステップ 各機構は , 内蔵リソースではリソースの制御レジスタに , 割込みコントローラでは ICR に , CPU では CCR の内容などとして現れます。ハードウェア割込みを使用する場合に は , あらかじめソフトウェアでこの 3ヵ所の設定を行う必要があります。 割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の FFFC00H ∼ FFFFFFH に割り当ててあり , ソフトウェア割込みと共通で使用しています。付録 D の 「表 D-2 割込み要因と割込みベクタ・割込制御レジスタ」に , MB90590 シリーズの割当 てを示します。 54 第 3 章 割込み 3.5.1 ハードウェア割込みの動作 ハードウェア割込み要求の機能を持つ内蔵リソースは , 割込みの要求のありなしを 示す「割込み要求フラグ」と , CPU への自分の割込み要求のするしないを選択する 「割込み許可フラグ」を持っています。割込み要求フラグは内蔵リソース固有のイベ ントの発生によりセットされ , 割込み許可フラグが「許可」であったときに , リソー スは割込みコントローラへ割込み要求を発生します。 ■ ハードウェア割込みの動作 割込みコントローラは , 同時に受け取った各割込み要求に対する ICR 内の割込みレベ ル (IL) 同士を比較し , もっとも高いレベルの要求 (IL の値の最も小さいもの ) を採択し て CPU へ通知します。同一レベルの要求が複数あった場合には , 割込み番号が少ない ものを優先します。各割込み要求と各 ICR の関係はハードウェアで決まっています。 CPU は受け取った割込みレベル (IL) と PS レジスタ内の ILM とを比較し , 割込みレベ ル (IL)<(ILM) であり , PS レジスタ内の I ビットが "1" であるときに , 現在実行中の命令 が終了したあとで , 割込み処理用マイクロコードを起動します。割込み処理マイクロ コードの先頭で割込みコントローラの ICR 中の ISE ビットを参照し , "0" ( 割込み ) で あることを確認して割込み処理の本体を起動します。 割込み処理の本体では SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込みベクタを 3 バイトリードし PC と PCB へロード , PS 中の ILM を , 受け付けた割込み要求のレベル値に更新 , S フラグを "1" に設定して分岐 処理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プログラ ムになります。 55 第 3 章 割込み ハードウェア割込みの発生と解除 3.5.2 図 3.5-1 に , ハードウェア割込みの発生から割込み処理プログラムに割込み要求がな くなるまでのフローを示します。 ■ ハードウェア割込みの発生と解除 図 3.5-1 ハードウェア割込みの発生と解除まで PS レジスタファイル F2MC-16LX バス マイクロコード IR ⑥ F2MC-16LX・CPU I ILM チェック ⑤ 比較器 ④ PS : プロセッサステータス I : 割込み許可フラグ ILM : 割込みレベルマスク レジスタ IR : インストラクション レジスタ ③ 周辺 許可 FF AND ② 要因 FF ⑦ レ ベ ル 比 較 器 ① 割 込 み レ ベ ル IL 割込み コントローラ ①周辺の内部で割込み要因が発生します。 ②周辺内の割込み許可ビットを参照し割込み許可になっていれば , 周辺から割込みコ ントローラへ割込み要求を発生します。 ③割込み要求を受けとった割込みコントローラは , 同時に要求のあった割込みの優先 順位を判定した上で該当する割込みに対応する割込みレベルを CPU へ転送します。 ④ CPU は割込みコントローラから要求のあった割込みレベルをプロセッサステータス レジスタ内の ILM ビットと比較します。 ⑤比較の結果が現在の割込み処理レベルより優先順位が高い場合のみ , 同じプロセッ サステータスレジスタ内の I フラグの内容をチェックします。 ⑥⑤のチェックの結果 I フラグが割込み許可状態である場合のみ , ILM ビットの内容を 要求されたレベルに設定し , 現在実行中の命令の実行が終了し次第割込み処理を行 い , 制御を割込み処理ルーチンへ移します。 ⑦ユーザの割込み処理ルーチン内のソフトウェアで①で発生した割込み要因をクリア することで割込み要求が終了します。 ⑥および⑦で , CPU が行う割込み処理の実行時間の計算式を以下に示します。なお , サ イクル数の補正値は , 表 3.5-1 を参照してください。 割込み起動 :24+6 ×サイクル数の補正値 割込み復帰 :15+6 ×サイクル数の補正値 (RETI 命令 ) 56 第 3 章 割込み 表 3.5-1 割込み処理時のサイクル数の補正値 スタックポインタが示しているアドレス サイクル数の補正値 内部領域偶数アドレスの場合 0 内部領域奇数アドレスの場合 +2 57 第 3 章 割込み 多重割込み 3.5.3 特殊な場合として , データの入出力領域への書込み中はハードウェア割込み要求を 受け付けません。これは各リソースの割込み制御レジスタ関係の書換えを行ってい る最中の割込み要求に対して , CPU が割込み関係で誤動作を起こすことを避けるた めです。 また , 割込み処理の実行中に割込みが発生した場合は , 割込みレベルの強い方の処理 が優先されます。 ■ 多重割込み F2MC-16LX CPU は多重割込みをサポートしています。そのため , 割込み処理の実行中 にその割込みのもつ割込みレベルより強いレベルの割込みが発生すると , 現在実行中 の命令を終了したあとでそちらに制御が移ります。強いレベルでの割込みが終了する と , もとの割込み処理に戻ります。割込み処理実行中に , その割込みと同等かより弱い レベルの割込み処理が発生した場合は , ILM の内容や I フラグの命令による変更をしな いかぎり現在の割込み処理の終了まで , 新しい割込み要求は保留されます。なお , 拡張 インテリジェント I/O サービスは多重に起動されることはなく , 1 つの拡張インテリ ジェント I/O サービスの処理中は , ほかの割込み要求および拡張インテリジェント I/O サービス要求はすべて保留されます。 図 3.5-2 に , スタック内に退避されるレジスタの順番を示します。 割込みに退避されるレジスタ 図 3.5-2 スタック内に退避されたレジスタ ワード (16 ビット ) MSB LSB H SSP( 割込み発生前の SSP の値 ) AH AL DPR ADB DPB PCB PC PS L 58 SSP( 割込み発生後の SSP の値 ) 第 3 章 割込み 3.6 ソフトウェア割込み ソフトウェア割込みは , 専用の命令の実行に対応して , CPU がそれまで実行してい たプログラムの実行から , ユーザの定義した割込み処理用プログラムへ制御を移行 する機能です。ソフトウェア割込みの起動は , ソフトウェア割込み命令の実行で常 に発生します。 ■ ソフトウェア割込み ソフトウェア割込みが発生するときに CPU が行う処理は以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの 退避 • PS: I フラグに "0" を設定。自動的に割込み禁止になる • 対応する割込みベクタの内容の取り込みとそこへの分岐 ソフトウェア割込みである INT 命令の実行による割込み要求には割込み要求フラグお よび許可フラグはなく , INT 命令の実行により常に割込み要求が発生します。 INT 命令には割込みレベルはありません。したがって , INT 命令では ILM の更新は行 われず , I フラグに "0" を設定して継続する割込み要求を保留状態にします。 ■ ソフトウェア割込みの構造 ソフトウェア割込みに関連する機構は , すべて CPU の内部に存在します。 CPU…………………マイクロコード : 割込み処理用ステップ ■ MB90590 シリーズ割込みベクタ一覧表 「表 D-1 MB90590 シリーズ割込みベクタ一覧表」に , MB90590 シリーズの割込みベク タ一覧表を示します。 「表 D-1 MB90590 シリーズ割込みベクタ一覧表」に示すように , ソフトウェア割込み はハードウェア割込みと同じ割込みベクタ領域を共有しています。例えば , 割込み要求 番号の INT12 は , ソフトウェア割込みの INT#12 で使用されると同時にハードウェア割 込みの外部割込みでも使用されます。したがって , 外部割込みと INT#12 は同じ割込み 処理ルーチンを呼び出します。 ■ ソフトウェア割込みの動作 CPU がソフトウェア割込み命令を取り込み実行すると , ソフトウェア割込み処理用マ イクロコードを起動します。ソフトウェア割込み処理マイクロコードでは SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込み ベクタを 3 バイトリードし PC と PCB へ格納 , I フラグを "0" に , S フラグを "1" にして 分岐処理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プロ グラムになります。 図 3.6-1 に , ソフトウェア割込みの発生から割込み処理プログラムに割込み要求がなく なるまでのフローを示します。 59 第 3 章 割込み 図 3.6-1 ソフトウェア割込みの発生と解除まで ① レジスタ ファイル PS I F2MC-16LX バス ② マイクロ コード S B ユニット IR キュー フェッチ F2MC-16LX・CPU ③ 退避 命令系バス RAM PS : プロセッサステータス I : 割込み許可フラグ ILM : 割込みレベルマスクレジスタ IR : インストラクションレジスタ B ユニット: バスインタフェースユニット ①ソフトウェア割込み命令を実行します。 ②ソフトウェア割込み命令に対応したマイクロコードにしたがってレジスタファイル 中の CPU 内専用レジスタの退避を行います。 ③ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。 ■ その他 プログラムバンクレジスタ (PCB) が FFH であるとき , CALLV 命令のベクタ領域は INT #vct8 命令のテーブルと重なります。ソフトウェアを作成する際に同一アドレスを使用するよう な CALLV 命令と INT #vct8 命令を使用しないように注意してください。 「表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ」に , MB90590 シリーズの割 込み要因 , 割込みベクタ , 割込み制御レジスタの関係を示します。 60 第 3 章 割込み 3.7 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービス (EI2OS) とはハードウェア割込み動作の一種で , I/O とメモリとの間での自動データ転送機能を持っています。従来割込み処理プログ ラムで行っていた I/O とのデータのやりとりを DMA 的に行えます。 ■ 拡張インテリジェント I/O サービス (EI2OS) 従来の割込み処理で行っていた方式と比べると以下に示すような利点があります。 • 転送のためのプログラムを記述する必要がないため , プログラムサイズを小さくす ることができる • 転送の際に内部レジスタを使用しないので , レジスタの退避が不要になり転送速度 が速い • I/O が都合により転送を停止することができ , 不要データの転送がない • バッファアドレスのインクリメント , 更新なしの選択ができる • I/O レジスタアドレスのインクリメント , 更新なしの選択ができる ( バッファアドレ ス更新ありの場合 ) また , EI2OS が終了したときには , 終了条件を設定した後に自動的に割込み処理ルーチ ンへ分岐しますので , ユーザは終了条件の種類を判別することができます。 EI2OS を実現するために , 2 箇所の部分にハードウェアが分散して存在し , それぞれの ブロックの中に以下に示すようなレジスタやディスクリプタがあります。 ● 割込み制御レジスタ 割込みコントローラ内にあり , IDS のアドレスを示します。 ● 拡張インテリジェント I/O サービスディスクリプタ RAM 上にあり転送モード , I/O のアドレスや転送数 , バッファアドレスを保持します。 < 注意事項 > REALOS を使用する場合 , 拡張インテリジェント I/O サービス (EI2OS) は使用でき ません。 図 3.7-1 に , EI2OS の概要を示します。 61 第 3 章 割込み 図 3.7-1 拡張インテリジェント I/O サービスの概要 メモリ空間 by IOA I/O レジスタ I/O レジスタ 周辺 CPU 割込み要求 ③ by ICS ② ISD ③ ① 割込み制御レジスタ 割込みコントローラ by BAP ④ バッファ < 注意事項 > by DCT ① I/O が転送を要求します。 ② 割込みコントローラが ディスクリプタを選択します。 ③ 転送元 / 先をディスクリプタから 読み出します。 ④ I/O とメモリ間で転送が行われます。 • IOA で指定できる領域は , 000000H ∼ 00FFFFH です。 • BAP で指定できる領域は , 000000H ∼ FFFFFFH です。 • DCT で指定できる最大転送数は , 65536 個です。 ■ 拡張インテリジェント I/O サービス (EI2OS) の構造 EI2OS に関連する機構は , 以下の 4 つの部分に分かれて存在します。 • 内蔵リソース…………割込み許可ビット , 割込み要求ビット : リソースからの割込 み要求の制御 • 割込みコントローラ…………ICR: 割込みのレベル付け , 同時要求割込みの優先度判 定 , EI2OS 動作の選択 • CPU…………I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別 マイクロコード :EI2OS 処理用ステップ • RAM…………ディスクリプタ :EI2OS の転送情報を記述する 62 第 3 章 割込み 拡張インテリジェント I/O サービスディスクリプタ (ISD) 3.7.1 拡張インテリジェント I/O サービスディスクリプタは , 内部 RAM 中の 000100H ∼ 00017FH に存在し , 以下に示すものから構成されます。 • データ転送の各種制御データ • ステータスデータ • バッファアドレスポインタ ■ 拡張インテリジェント I/O サービスディスクリプタ (ISD) 図 3.7-2 に , 拡張インテリジェント I/O サービスディスクリプタの構成を示します。 図 3.7-2 拡張インテリジェント I/O サービスディスクリプタの構成 H データカウンタ上位8ビット(DCTH) データカウンタ下位8ビット (DCTL) I/Oアドレスポインタ上位8ビット (IOAH) I/Oアドレスポインタ下位8ビット (IOAL) EI2OS ステータス (ISCS) バッファアドレスポインタ上位8ビット (BAPH) 000100H+8×ICS バッファアドレスポインタ中位8ビット (BAPM) ISD先頭アドレス バッファアドレスポインタ下位8ビットBAPL) L ■ データカウンタ (DCT) データカウンタ (DCT) は , 16 ビット長のレジスタで , 転送データ数に対応したカウン タとなります。データ転送後 , カウンタは 1 個デクリメントされます。このカウンタが ゼロになると EI2OS は終了します。 図 3.7-3 に , データカウンタの構成を示します。 図 3.7-3 データカウンタの構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 DCT ( リセット時不定 ) 63 第 3 章 割込み ■ I/O レジスタアドレスポインタ (IOA) I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで , I/O レジスタアド レスポインタの 16 ビットによりバッファとデータ転送する I/O レジスタの下位アドレ ス (A15 ∼ A0) を示します。上位アドレス (A23 ∼ A16) はすべて "0" であり , 000000H から 00FFFFH 番地までの任意の I/O を指定できます。図 3.7-4 に , IOA の構成の図を示 します。 図 3.7-4 I/O レジスタアドレスポインタの構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 IOA ( リセット時不定 ) ■ バッファアドレスポインタ (BAP) 24 ビットのレジスタで次に EI2OS による転送で使用するアドレスを保持します。BAP は EI2OS の各チャネルに対してそれぞれ独立に存在しますので , EI2OS の各チャネルは 16M バイトの任意の空間と転送することができます。ISCS の BF ビットが "0" にセッ トされている場合 ( 更新可能 ) , BAP の下位 16 ビットのみ変化し , BAPH は変化しませ ん。 64 第 3 章 割込み EI2OS ステータスレジスタ (ISCS) 3.7.2 EI2OS ステータスレジスタ (ISCS) は , 8 ビット長のレジスタで , バッファアドレス ポインタ , I/O レジスタアドレスポインタの更新 / 固定 , 転送データ長 ( バイト / ワー ド ) , 転送方向を示します。 ■ EI2OS ステータスレジスタ (ISCS) 図 3.7-5 に , ISCS の構成を示します。 < 注意事項 > ISCS の bit7 ∼ bit5 には必ず "0" を書き込んでください。 図 3.7-5 ISCS の構成 bit 7 6 5 4 3 2 1 0 予約 予約 予約 IF BW BF DIR SE ISCS ( リセット時不定 ) 以下に各ビットの説明を示します。 【bit4】IF I/O レジスタアドレスポインタの更新 / 固定を指定します。 0: データ転送後 I/O レジスタアドレスポインタは更新 ( インクリメント ) される。 1: データ転送後 I/O レジスタアドレスポインタは固定される。 < 注意事項 > インクリメントのみ許可されます。 【bit3】BW 転送データ長を指定します。 0: バイト 1: ワード 【bit2】BF バッファアドレスポインタの更新 / 固定を指定します。 0: データ転送後バッファアドレスポインタは更新 ( インクリメント ) される。 1: データ転送後バッファアドレスポインタは固定される。 < 注意事項 > 更新する場合 , バッファアドレスポインタは下位 16 ビットのみ変化します。 【bit1】DIR データの転送方向を指定します。 0:I/O アドレスポインタ→バッファアドレスポインタ 1: バッファアドレスポインタ→ I/O アドレスポインタ 65 第 3 章 割込み 【bit0】SE 内蔵リソースからの要求での拡張インテリジェント I/O サービスの終了を制御します。 0: 内蔵リソースからの要求により終了しない。 1: 内蔵リソースからの要求により終了する。 66 第 3 章 割込み 3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フ ローと使用手順 図 3.8-1 に , 拡張インテリジェント I/O サービス (EI2OS) の動作フローの図を , 図 3.8-2 に , 使用手順の図を示します。 ■ 拡張インテリジェント I/O サービス (EI2OS) の動作フロー 図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の動作フロー 内部リソースより 割込み要求発生 ISE = 1 BAP I/OA : バッファアドレスポインタ : I/O アドレスポインタ ISD : EI2OS ディスクリプタ ISCS DCT : EI2OS ステータス : データカウンタ ISE : EI2OS イネーブルビット S1, S0 : EI2OS 終了ステータス NO YES 割込みシーケンス ISD/ISCS リード リソースからの終了要求 YES NO DIR = 1 SE = 1 YES NO IOA で示されるデータ ↓ ( データ転送 ) BAP で示されるメモリ IF = 0 BAP で示されるデータ ↓ ( データ転送 ) IOA で示されるメモリ YES NO BF = 0 更新値は , BW による IOA 更新 更新値は , BW による BAP 更新 YES NO DCT デクリメント DCT = 00 NO S1, S0 に "00" を セット YES S1, S0 に "01" を セット S1, S0 に "11" を セット リソース割込み要求 のクリア ISE を "0" にクリア CPU 動作復帰 割込みシーケンス 67 第 3 章 割込み 図 3.8-2 拡張インテリジェント I/O サービス (EI2OS) の使用手順フロー EI2OS による処理 CPU による処理 EI2OS の初期化 正常終了 ジョブ実行 AND(ISE=1) ( 割込み要求 ) データ転送 カウントアウトまたは リソースからの終了要 求による割込みの発生 拡張インテリジェント I/O サービスの設定 ( チャネルの切換え ) バッファ中のデータの処理 各フローでの拡張 EI2OS の実行時間を以下に示します。 ● データ転送継続時 ( 停止条件が成立しない場合 ) ( 表 3.8-1+ 表 3.8-2) マシンサイクル ● リソースからの停止要求時 (36+6 ×表 3.5-1) マシンサイクル ● カウント終了時 ( 表 3.8-1+ 表 3.8-2+ (21+6 ×表 3.5-1) ) マシンサイクル 表 3.8-1 EI2OS の継続時の実行時間 ISCS・SE ビット "0" に設定 I/O アドレスポインタ 固定 更新 固定 更新 固定 32 34 33 35 更新 34 36 35 37 バッファアドレスポインタ 68 "1" に設定 第 3 章 割込み 表 3.8-2 EI2OS の実行時間のデータ転送の補正値 内部アクセス I/O アドレスポインタ バッファアドレス ポインタ 内部 アクセス B/ 偶 奇 B/ 偶 0 +2 奇 +2 +4 B: バイトデータ転送 偶 : 偶数アドレス・ワード転送 奇 : 奇数アドレス・ワード転送 69 第 3 章 割込み 3.9 例外 F2MC-16LX では , 以下の要因により例外が発生し , 例外処理が行われます。 ■ 未定義命令の実行 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は 予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時 の復旧ソフトウェアの起動などのみに使用することをお勧め致します。 ■ 未定義命令の実行による例外発生 F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い ます。未定義命令を実行すると , ソフトウェア割込み命令の「INT10」と等価な処理を 行います。すなわち , AL, AH, DPR, DTB, ADB, PCB, PC, PS の内容をシステムスタック に退避した後に , I フラグを "0" に設定し , S フラグを "1" に設定し , 割込み番号 10 の ベクタで示されるルーチンへ分岐します。スタックへ退避した PC の値は未定義命令を 格納しているアドレスそのものです。2 バイト以上の命令コードでは , 未定義であるこ とが識別できたコードを格納しているアドレスになります。このため , RETI 命令で復 帰させることは可能ですが , 再び例外を発生するため , 意味がありません。 70 第4章 遅延割込み この章では , 遅延割込みの機能と動作について説明 しています。 4.1 遅延割込みモジュールの概要 4.2 遅延割込みのレジスタ 4.3 遅延割込みの動作 71 第 4 章 遅延割込み 4.1 遅延割込みモジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー ルです。本モジュールを使用することで , ソフトウェアで F2MC-16LX CPU に対し て割込み要求の発生 / 取消しを行うことができます。 ■ 遅延割込みのブロックダイヤグラム 図 4.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。 図 4.1-1 遅延割込みのブロックダイヤグラム F2MC-16LX バス 遅延割込み要因発生 / 解除デコーダ 要因ラッチ ■ 遅延割込み要求ロックの使用上の注意 このロックは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット に "0" を書き込むことでクリアされます。したがって , 割込み処理ルーチン内で要因を クリアするようにソフトウェアを作成しておかないと割込み処理から復帰した途端に 再割込み処理を起動することになりますので注意してください。 72 第 4 章 遅延割込み 4.2 遅延割込みのレジスタ DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して "1" を書込み時には遅延割込みの要求を発生させ , "0" を書込み時には遅延割込みの 要求を解除します。リセット時には要因解除状態になります。 ■ 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) 遅延割込み要因発生 / 解除レジスタ (DIRR) では , 予約ビット領域は 0, 1 どちらの書き 込みも結構ですが , 将来の拡張を考慮してこのレジスタをアクセスする際にはセット ビット , クリアビット命令を使用することをお勧めします。 図 4.2-1 遅延割込み要因発生 / 解除レジスタ (DIRR) bit 15 14 13 12 11 10 9 アドレス:00009FH − − − − − − − 8 R0 (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (R/W) (0) リード / ライト→ 初期値→ DIRR リセット時には要因解除状態になります。 73 第 4 章 遅延割込み 4.3 遅延割込みの動作 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生 モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求 を発生します。 ■ 遅延割込み発生 ほかの割込み要求が本割込みより優先順位が低い , またはほかの割込み要求がない場 合に , 割込みコントローラは F2MC-16LX CPU に対して割込み要求を発生します。図 4.3-1 に示すように , F2MC-16LX CPU は自分の内部にある CCR レジスタ中の ILM ビッ トと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の 命令が終了し次第 , ハードウェア割込み処理マイクロプログラムを起動します。この結 果 , 本割込みに対する割込み処理ルーチンが実行されます。 図 4.3-1 遅延割込み発生 遅延割込み発生モジュール F2MC-16LX CPU 割込みコントローラ WRITE ほかの要求 ICRyy IL CMP CMP DIRR ICRxx ILM INTA 74 第5章 クロックとリセット この章では , クロックとリセットの機能と動作につ いて説明しています。 5.1 クロック発生部 5.2 リセット要因の発生 5.3 リセット要因 75 第 5 章 クロックとリセット 5.1 クロック発生部 クロック発生部により , スリープ , 時計 , ストップおよび PLL クロック逓倍機能な ど内部クロックの動作制御を行います。この内部クロックのことをマシンクロック とよび , その 1 周期をマシンサイクルとしています。また , 原発振によるクロックを メインクロックとよび , 内部の VCO 発振によるクロックを PLL クロックとしてい ます。 ■ クロック発生部の注意 動作電圧が 5V のとき , OSC 原発振は 3MHz ∼ 5MHz の発振が可能です。外部クロッ クの供給の場合は 3MHz ∼ 16MHz の発振が可能です。しかし , CPU および周辺リソー ス回路の最大動作周波数が 16MHz なので , 16MHz を超える逓倍係数を指定した場合に は , 正常な動作は保証されません。例えば , 外部クロックが 16MHz で発振している場 合 , 逓倍係数として "1" しか指定できません。 また , VCO 発振の最低動作周波数は 4MHz であり , この周波数以下の発振も指定する こともできません。 図 5.1-1 に , クロック発生回路ブロックダイヤグラムを示します。 図 5.1-1 クロック発生回路ブロックダイヤグラム S Q リセット S Q 割込み HST ストップ モード遷移 R マシンクロック 時計モード スリープ R モード遷移 マシンクロック選択 S Q 1 R 2 3 4 PLL 逓倍 発振安定時 時間選択 タイムベースタイマ 1/2 X0 1/2048 1/4 1/4 1/8 XL ウォッチドッグ インターバル選択 監視タイマ ウォッチドッグリセット 76 第 5 章 クロックとリセット 5.2 リセット要因の発生 リセット要因が発生すると , F2MC-16LX は直ちに現在実行中の処理を中断し , リ セット解除待ち状態になります。 ■ リセット要因の発生 リセットは以下の要因で発生します。 • パワーオンリセットの発生 • ハードウェアスタンバイ状態の解除 • ウォッチドッグタイマのオーバフロー • RST 端子による外部リセット要求の発生 • ソフトウェアによるリセット要求の発生 ■ リセット解除後の動作 リセット要因が取り除かれると , F2MC-16LX は直ちにリセットベクタを格納してある アドレスを出力し , リセットベクタとモードデータの取り込みを行います。リセットベ クタとモードデータは FFFFDCH ∼ FFFFDFH の 4 バイトに割り当てられています。リ セットベクタとモードデータは , 図 5.2-1 で示すように , リセット解除後にレジスタに ハードウェアで転送されます。 リセットベクタとモードデータを読み出した後のバスモードは , モードデータにより 指定します。 図 5.2-1 リセットベクタとモードデータの格納場所と格納先 F2MC-16LX CPU モード メモリ空間 レジスタ FFFFDFH モードデータ FFFFDEH リセットベクタ・ビット 23 ∼ 16 FFFFDDH リセットベクタ・ビット 15 ∼ 8 FFFFDCH リセットベクタ・ビット 7 ∼ 0 マイクロ ROM リセットシーケンス PCB PC < 注意事項 > MB90F594A, MB90F594G, MB90F591A および MB90F591G については , ハードワ イヤードロジックによりリセットベクタとモードデータにあらかじめ決められた値 が設定されています。詳細については , 「24.9 フラッシュメモリにおけるリセッ トベクタアドレス」を参照してください。 77 第 5 章 クロックとリセット ■ リセット入力によって初期化されないレジスタ 本製品には , パワーオンリセットでしか初期化されないレジスタがあります。 表 5.2-1 に各リセット要因によって初期化されないレジスタを示します。 表 5.2-1 リセット入力によって初期化されないレジスタ CKSCR LPMCR リセットの種類 WS1 WS0 MCS CS1 CS0 CG1 CG0 RST のみ 使 用 ソフ ト ウェ ア リ セット × × × × × × × ウォッチドッグリセット × × ○ × × ○ ○ パワーオンリセット ○ ○ ○ ○ ○ ○ ○ ハードウェアスタンバイ × × ○ × × ○ ○ • • • • WS1, WS0: メインクロック発振安定待ち時間設定 MCS: マシンクロック設定 ("0"=PLL クロック , "1"= メインクロック ) CS1, CS0:PLL クロック逓倍設定 CG1, CG0:CPU 間欠動作の設定○ : 初期化する× : 初期化しない ( 前の状態を保持 ) MCS ビットについては , マシンクロック設定ビットですので , 特に注意が必要です。例 えば , 電源投入がパワーオンリセット規格を満足しないときは , パワーオンリセットが 発生しません。そのため , MCS が初期化されないことにより , 内部動作周波数が動作 保証範囲外になり , 正常動作しなくなることが考えられます。 また , 何らかの原因により CPU が暴走し , MCS, CS1, CS0 が書換わった際にも内部動作 周波数が動作保証範囲外になり , その状態から RST 入力のみでは正常復帰しなくなる ことが考えられます ( ただし , 内部ウォッチドッグが発生した場合には , MCS が初期化 され正常動作します ) 。 上記のようなケースが考えられる場合には , HST+RST (HST と RST をショート ) とし て使用することを推奨します。 表 5.2-2 に , HST+RST を行った場合のリセット入力による初期化されないレジスタに ついて示します。 また , 図 5.2-2 に示すように , リセット解除時の動作状態が , HST+RST のリセット入力と , RST のみの入力とで異なるので , 注意が必要です。 表 5.2-2 リセット入力によって初期化されないレジスタ CKSCR LPMCR リセットの種類 RST+HST WS1 WS0 MCS CS1 CS0 CG1 CG0 × × ○ × × ○ ○ ○ : 初期化する × : 初期化しない ( 前の状態を保持 ) 78 第 5 章 クロックとリセット 図 5.2-2 リセット入力による動作遷移 [ リセット入力による動作遷移 ] リセット入力 (RST, HST+RST) A. 発振状態 状態 RST のみ使用 発振 (HST="H") HST+RST を使用 発振 停止 メイン発振 安定待ち メインラン実行可能 B. 命令実行タイミング ("L" 停止 , "H" 開始 ) • RST のみを使用 (HST="H") リセット入力前に設定 した発振安定時間 • HST+RST を使用 • パワーオンリセット時 VCC( 電源 ) 状態 パワーオン リセット 発振 停止 メイン発振 安定待ち メインラン実行可能 メイン発振の 218 カウント 発振安定時間 79 第 5 章 クロックとリセット 5.3 リセット要因 表 5.3-1 に , 5 種類のリセット要因を示します。リセット要因によりマシンクロック とウォッチドッグ機能の初期化状態が異なります。 リセット要因レジスタはリセット要因を表示します。 ■ リセット要因 表 5.3-1 リセット要因 リセット 発生要因 マシンクロック ウォッチドッグ タイマ 発振安定待ち パワーオン 電源立上げ時 メインクロック 停止 あり ハードウェア スタンバイ HST端子への"L"レベル入 力 メインクロック 停止 あり ウォッチドッ グタイマ ウォッチドッグタイマ オーバフロー メインクロック 停止 あり 外部端子 RST端子への "L"レベル入 力 前の状態を保持 前の状態を保持 なし ソフトウェア LPMCR 中の RST ビットに "0" 書込み 前の状態を保持 前の状態を保持 なし ( 注意事項 ) • ストップ , ハードウェアスタンバイモード時のリセット入力は , リセット要因に関係なく発振安 定待ち時間を取ります。 • パワーオンリセットの発振安定待ち時間は , 原発振 218 サイクル固定です。それ以外の発振安定 待ち時間は , クロック選択レジスタの CS1/CS0 により決定されます。 図 5.3-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり ます。それぞれのリセット要因には対応したフリップフロップがあります。これらの 内容はウォッチドッグタイマ制御レジスタを読み出すことで得ることができますので, リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッチドッグ タイマ制御レジスタを読み出した値をソフトウェアで処理した上で , 適切なプログラ ムへ分岐するようにしてください。図 5.3-2 に , ウォッチドッグタイマ制御レジスタの 構成を示します。 80 第 5 章 クロックとリセット 図 5.3-1 リセット要因ビットブロックダイヤグラム HST 端子 ハードウェア スタンバイ 解除検出回路 パワーオン発生 検出回路 F/F Q R S F/F R 外部リセット要求 検出回路 S F/F Q 定期的なクリアなし RST=L HST=L→H 電源投入 S RST 端子 R S F/F Q RST ビットセット ウォッチドッグタイマ リセット発生検出回路 R S F/F Q LPMCR, RST ビット 書込み検出回路 WTC レジスタ R 遅延 回路 Q WTC レジスタ読出し F2MC-16LX 内部バス 図 5.3-2 ウォッチドッグタイマ制御レジスタ bit 7 6 5 4 アドレス : 0000A8H PONR STBR WRST ERST (R) (R) (R) (R) リード / ライト→ (X) (X) (X) (X) 初期値→ 3 2 1 0 SRST (R) (X) WTE (W) (1) WT1 (W) (1) WT0 (W) (1) WDTC リセット要因が複数発生する場合でも , ウォッチドッグタイマ制御レジスタの対応す るそれぞれのリセット要因ビットを立てるようになっています。したがって , 外部リ セット要求とウォッチドッグリセットが同時に発生した場合でもERSTビットとWRST ビットの両方が "1" になります。 ただし , パワーオンリセットの場合だけは別で , PONR ビットが "1" であるときはそれ 以外のビットの内容は正常なリセット要因を示しておりません。このため , PONR ビッ トが "1" の場合はそれ以外のリセット要因ビットの内容は無視するようにソフトウェ アを作成してください。 表 5.3-2 リセット要因ビット PONR STBR WRST ERST SRST パワーオン 1 - - - - ハードウェアスタンバイ * 1 * * * ウォッチドッグタイマ * * 1 * * 外部端子 * * * 1 * RST ビット * * * * 1 リセット要因 *: 前の値を保持 81 第 5 章 クロックとリセット 82 第6章 低消費電力制御回路 この章では , 低消費電力制御回路の機能と動作につ いて説明します。 6.1 低消費電力制御回路の概要 6.2 低消費電力制御回路のレジスタ 6.3 低消費電力モードの動作 6.4 CPU 間欠動作 6.5 マシンクロック切換え 6.6 クロック選択の状態遷移 83 第 6 章 低消費電力制御回路 6.1 低消費電力制御回路の概要 MB90590 シリーズは , 電力消費の削減を支援する各種動作モードをサポートしてい ます。 動作モードとして , PLL クロックモード・PLL スリープモード・時計モード・メイ ンクロックモード・メインスリープモード・メインストップモード・ハードウェア スタンバイモードがあり , PLL クロックモード以外の動作モードが低消費電力モー ドに分類しています。 ■ 低消費電力制御回路の概要 メインクロックモードまたはメインスリープモードでは , メインクロック (OSC 発振ク ロック ) が使用されます。これらのモードでは , メインクロックを 2 分周したクロック を動作クロックとして発生させ , PLL クロック (VCO 発振クロック ) を停止させます。 PLL スリープモードまたはメインスリープモードでは , CPU の動作クロックだけが停 止します。その他のクロックはすべて動作します。 時計モードでは , タイムベースタイマだけが動作します。ストップモードまたはハード ウェアスタンバイモードでは , 発振が停止し , 最も低い消費電力でデータを保持できま す。 CPU 間欠動作機能は , レジスタ , 内蔵メモリまたは内蔵リソースのアクセスを行うとき に , CPU に供給するクロックを間欠動作させる機能であり , 内蔵リソースに高速クロッ クを供給したまま CPU の実行速度を下げることにより , 低消費電力で処理が行えます。 WS1, WS0 ビットを使用して , ストップモードまたはハードウェアスタンバイモードの 解除時のメインクロックの発振安定待ち時間を設定することができます。 < 注意事項 > 84 クロックモードを切り換えた場合 , 切換えが完了するまでに , ほかのクロックモー ドおよび低消費電力モードへの切換えを行わないようにしてください。切換えの完 了はクロック選択レジスタ (CKSCR) の MCM ビットを参照してください。切換え が完了する前に , 他のクロックモードおよび低消費電力モードへの切換えを行った 場合 , 切り換わらない場合があります。 第 6 章 低消費電力制御回路 ■ 低消費電力回路のブロックダイヤグラム 図 6.1-1 低消費電力制御回路とクロック生成部 CKSCR MCS メインクロック (OSC 発振 ) PLL 逓倍回路 MCM 1 2 3 4 1/2 CPU クロック発生 CKSCR CS1 CPU クロックセレクタ CPU クロック 0/9/17/33 間欠サイクル選択 CS0 LPMCR CG1 CG0 CPU 間欠動作機能 サイクル数選択回路 LPMCR F2MC-16LX バス SLP 周辺系クロック発生 周辺クロック スタンバイ制御回路 STP RST 解除 HST 起動 HST 端子 割込み要求 または RST CKSCR WS1 WS0 発振安定 待ち時間 セレクタ 210 213 215 217* クロック入力 タイムベースタイマ タイムベース クロック 212 214 216 219 LPMCR SPL LPMCR RST 端子ハイインピーダンス制御回路 端子 HI-Z RST 端子 内部リセット発生回路 内部 RST ウォッチドッグ タイマへ WDGRST *: 電源投入時は , 218 となります。 85 第 6 章 低消費電力制御回路 6.2 低消費電力制御回路のレジスタ 低消費電力制御回路には , 次の 2 つのレジスタがあります。 • 低消費電力モード制御レジスタ (LPMCR) • クロック選択レジスタ (CKSCR) ■ 低消費電力制御回路のレジスタ 図 6.2-1 低消費電力制御回路のレジスタ 低消費電力モード制御レジスタ bit アドレス:0000A0H リード / ライト→ 初期値→ 7 6 5 4 STP SLP SPL RST 3 2 1 0 CG0 (W) (1) 予約 (−) (1) CG1 (R/W) (0) (R/W) (0) 予約 (−) (0) (W) (0) (W) (0) (R/W) (0) 15 14 13 12 11 10 9 8 予約 (−) (1) MCM (R) (1) WS1 (R/W) (1) WS0 (R/W) (1) 予約 (−) (1) MCS (R/W) (1) CS1 (R/W) (0) CS0 (R/W) (0) LPMCR クロック選択レジスタ bit アドレス:0000A1H リード / ライト→ 初期値→ 86 CKSCR 第 6 章 低消費電力制御回路 6.2.1 低消費電力モード制御レジスタ (LPMCR) 低消費電力モード制御レジスタはクロック選択レジスタと共に消費電力の削減に関 する各種動作モードの設定を行います。 ■ 低消費電力モード制御レジスタ (LPMCR) 図 6.2-2 低消費電力モード制御レジスタ (LPMCR) bit アドレス:0000A0H リード / ライト→ 初期値→ 7 STP 6 SLP 5 SPL 4 RST 予約 3 2 CG1 1 CG0 予約 0 (W) (0) (W) (0) (R/W) (0) (W) (1) (−) (1) (R/W) (0) (R/W) (0) (−) (0) LPMCR 【bit7】STP "1" を 書 き 込 む こ と に よ り 時 計 モ ー ド (CKSCR.MCS=0) ま た は ス ト ッ プ モ ー ド (CKSCR.MCS=1) に遷移します。"0" の書込みでは何の操作もしません。リセット , 時 計解除またはストップ解除で "0" にクリアされます。書込みのみ可能なビットです。読 出し値は , 常に "0" です。 【bit6】SLP "1" を書き込むことによりスリープモードに遷移します。"0" の書込みでは何の操作も しません。リセット , またはスリープ解除 , またはストップ解除で "0" にクリアされま す。 STP ビットと SLP ビットに同時に "1" を書き込んだ場合 , 時計モードまたはストップ モードに遷移します。書込みのみ可能なビットです。読出し値は , 常に "0" です。 【bit5】SPL "0" のとき , 時計モードおよびストップモード時の外部端子のレベルを保持します。"1" のとき , 時計モードおよびストップモード時の外部端子をハイインピーダンスにしま す。リセットで "0" にクリアされます。読み書き可能なビットです。 SPL を "0" にセットし , マイクロコントローラがストップモードまたは時計モードに なっている場合 (STP=1), すべての入力は安定したデジタル値が供給されなければなら ないことに注意してください。そうでなければ , 入力バッファで電流が消費されます (A/D アナログ入力は例外 ) 。 マイクロコントローラがストップモードまたは時計モードになっているときには , す べての入力バッファを停止させるために SPL ビットを "1" にセットすることを推奨し ます。 【bit4】RST "0" を書き込むことにより 3 マシンサイクルの内部リセット信号を発生します。"1" の 書込みでは何の操作もしません。リード時は "1" が , 読み出されます。 【bit3】予約 必ず "1" を設定してください。 87 第 6 章 低消費電力制御回路 【bit2, bit1】CG1, CG0 CPU 間欠動作機能のクロック一時停止サイクル数を設定します。 パワーオン , ハードウェアスタンバイ , ウォッチドッグによるリセットにより "00" に 初期化されます。その他のリセット要因によるリセットでは初期化されません。読み 書き可能なビットです。 CPU 間欠動作機能は , レジスタ , 内蔵メモリまたは内蔵リソースのアクセスを行うとき に, CPUへのクロック供給を一時停止し, 内部バスサイクルの起動を遅延させる機能で, 内蔵リソースに高速クロックを供給したまま CPU の実行速度を下げることにより , 低 消費電力で処理が行えます。 表 6.2-1 CG ビット設定 CG1 CG0 0 0 0 サイクル (CPU クロック = リソースクロック ) 0 1 9 サイクル (CPU クロック = リソースクロック =1: 約 3 ∼ 4) 1 0 17サイクル (CPUクロック=リソースクロック=1:約5∼6) 1 1 33サイクル (CPUクロック=リソースクロック=1:約9∼10) CPU クロック一時停止サイクル数 【bit0】予約 必ず "0" を設定してください。 < 注意事項 > 88 ストップモード , 時計モード時に周辺機能とポートを兼用している端子をハイイン ピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定してください。 対象となる端子を以下に示します 対象端子 : P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/OUT4, P13/OUT5, P15/TX1, P16/SG0, P17/SGA, P34/SOT0, P35/SCK0 第 6 章 低消費電力制御回路 クロック選択レジスタ (CKSCR) 6.2.2 クロック選択レジスタは , CPU のマシンクロックの設定・制御を行い , 電源立上げ 時や発振復帰時の発振安定待ち時間の設定を行います。 ■ クロック選択レジスタ (CKSCR) 図 6.2-3 クロック選択レジスタ (CKSCR) bit アドレス:0000A1H リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 予約 (−) (1) MCM (R) (1) WS1 (R/W) (1) WS0 (R/W) (1) 予約 (−) (1) MCS (R/W) (1) CS1 (R/W) (0) CS0 (R/W) (0) CKSCR 【bit14】MCM マシンクロックとして , メインクロックまたは PLL クロックのどちらが選択されてい るかを表示するビットです。"0" のとき , PLL クロックが選択されていることが示され , "1" のとき , メインクロックが選択されていることが示されます。MCS=0 で , かつ MCM=1 ならば , PLL クロック発振安定待ち期間中であることになります。なお , PLL クロックの発振安定待ち期間は , 213 メインクロックサイクル固定です。 書込みは , 動作に影響しません。 【bit13, bit12】WS1, WS0 ストップモード , ハードウェアスタンバイモード解除時のメインクロックの発振安定 待ち時間を設定します。 パワーオンリセットにより "11" に初期化され , その他のリセット要因によるリセット では初期化されません。読み書き可能なビットです。 表 6.2-2 WS ビット設定 < 注意事項 > WS1 WS0 0 0 約 256µs ( 原振 210 カウント ) 0 1 約 2.05ms ( 原振 213 カウント ) 1 0 約 8.19ms ( 原振 215 カウント ) 1 1 約 32.77ms ( 原振 217 * カウント ) 発振安定待ち時間 ( 原発振 4MHz 時 ) パワーオンリセット時は , 約 65.54ms ( 原振 218 カウント ) となります。 【bit11】予約 必ず "1" を設定してください。 89 第 6 章 低消費電力制御回路 【bit10】MCS マシンクロックとして , メインクロックまたは PLL クロックのどちらを選択するかを 指示するビットです。"0" を書き込むことにより , PLL クロックを選択します。"1" を 書き込むことにより , メインクロックを選択します。"1" のときに , "0" を書き込むと , PLL クロックの発振安定待ち期間を発生するために , 自動的にタイムベースタイマが クリアされます。なお , PLL クロックの発振安定待ち期間は , 213 メインクロックサイ クル固定です。( 原発振 4MHz 時 , 発振安定待ち時間は約 2ms になります ) 。 また , メインクロック選択時の動作クロックは , メインクロックを 2 分周したクロック となります ( 原発振 4MHz 時 , 動作クロックは 2MHz になります ) 。 パワーオン , ハードウェアスタンバイ , ウォッチドッグによるリセットにより "1" に初 期化されます。しかし , RST 端子からの外部リセットまたはソフトウェアリセット (LPMCR レジスタ中の RST ビット ) により初期化されることはありません。 < 注意事項 > MCS ビットを "1" から "0" に更新するとき , タイムベースタイマ割込みを TBIE ビットまたは CPU の ILM ビットで必ずマスクしてください。 【bit9, bit8】CS1, CS0 PLL クロックの逓倍率を選択するビットです。 本ビットはパワーオンリセットにより "00" に初期化されます。その他のリセットでは 初期化されません。 MCS ビットが "0" のときには書込みが抑止されます。一度 , MCS ビットを "1" にした ( メインクロックモード ) 後に , CS ビットを書き換えてください。読み書き可能なビッ トです。 表 6.2-3 CS ビット設定 < 注意事項 > 90 CS1 CS0 0 0 4MHz ( 動作周波数 =OSC 発振周波数 ) 0 1 8MHz ( 動作周波数 =OSC 発振周波数× 2) 1 0 12MHz ( 動作周波数 =OSC 発振周波数× 3) 1 1 16MHz ( 動作周波数 =OSC 発振周波数× 4) マシンクロック ( 原発振 4MHz 時 ) 動作電圧が 5V のとき , OSC 原発振は 3MHz ∼ 5MHz の発振が可能です。外部ク ロックの供給の場合は , 3MHz ∼ 16MHz の発振が可能です。しかし , CPU および 周辺リソース回路の最大動作周波数が 16MHz なので , 16MHz を超える逓倍係数を 指定した場合には , 正常な動作は保証されません。例えば , 外部クロックが 16MHz で発振している場合 , 逓倍係数として "1" しか指定できません。 また , VCO 発振の最低動作周波数は 4MHz であり , この周波数以下の発振も指定で きません。 第 6 章 低消費電力制御回路 6.3 低消費電力モードの動作 表 6.3-1 に , 各動作モードにおけるチップの状態を示します。 ■ 低消費電力モードの動作 表 6.3-1 低消費電力モード動作状態 発振 &T.B.T PLL CPU MCS=1 SLP=1 動作 停止 停止 MCS=0 SLP=1 動作 動作 MCS=0 STP=1 動作 MCS=0 STP=1 遷移条件 時計 周辺 端子 動作 動作 動作 停止 動作 動作 動作 停止 停止 動作 停止 保持 * 動作 停止 停止 動作 停止 HI-Z MCS=1 STP=1 停止 停止 停止 停止 停止 保持 * (SPL=1) MCS=1 STP=1 停止 停止 停止 停止 停止 HI-Z ハードウェア HST=L 停止 停止 停止 停止 停止 HI-Z メイン スリープ PLL スリープ 時計 (SPL=0) 時計 (SPL=1) ストップ (SPL=0) ストップ スタンバイ タイマ 解除方法 外部リセット 割込み 外部リセット 割込み 外部リセット 外部割込み 外部リセット 外部割込み 外部リセット 外部割込み 外部リセット 外部割込み HST=H *: ストップモードまたは時計モードで SPL を "0" にセットしている場合 , すべての入力は安定したデジタル値 を入力しなければなりません。そうでなければ , 入力バッファで電流が消費されます (A/D アナログ入力は例 外)。 < 注意事項 > ストップモード , 時計モード時に周辺機能とポートを兼用している端子をハイイン ピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定してください。 対象となる端子を以下に示します 対象端子 : P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/OUT4, P13/OUT5, P15/TX1, P16/SG0, P17/SGA, P34/SOT0, P35/SCK0 91 第 6 章 低消費電力制御回路 ■ 低消費電力モード制御レジスタアクセスの注意 低消費電力モード制御レジスタにデータを書き込むと, 低消費電力モード (ストップま たはスリープモード ) が起動します。この場合 , 表 6.3-2 に示す命令を使用してくださ い。低消費電力モードを起動するのにその他の命令を使用した場合 , 誤動作が起こる可 能性があります。低消費電力モード制御レジスタの低消費電力モードへの遷移を除く 機能の制御については , 任意の命令を使用できます。 ワード長で低消費電力モード制御レジスタにデータを書き込むには , 必ずデータを偶 数番地のアドレスに書き込むようにします。奇数番地にデータを書き込んで低消費電 力モードを起動した場合 , 誤動作が起こる可能性があります。 表 6.3-2 低消費電力モードへの遷移に使用される命令の一覧 MOV io,#imm8 MOV dir,#imm8 MOV eam,#imm8 MOV eam,Ri MOV io,A MOV dir,A MOV addr16,A MOV eam,A MOVW io,#imm16 MOVW dir,#imm16 MOVW eam,#imm16 MOVW eam,RWi MOVW io,A MOVW dir,A MOVW addr16,A MOVW eam,A SETB io:bp SETB dir:bp SETB addr16:bp CLRB io:bp CLRB dir:bp CLRB addr16:bp MOV RLi+dip8,A MOVW RLi+dip8,A ■ 低消費電力モードへ移行する場合の注意 ストップモード , 時計モード時に周辺機能とポートを兼用している端子をハイイン ピーダンスに設定する場合は , 以下の手順に従ってください。 1. 周辺機能の出力を禁止します。 2. 低消費電力モード制御レジスタ (LPMCR) の SPL ビットに "1", STP ビットに "1" を 設定します。 92 第 6 章 低消費電力制御回路 6.3.1 スリープモード スリープモードとは , CPU に供給するクロックのみを停止するモードで , CPU は停 止し , 周辺回路は動作を続けます。 ■ スリープモードへの遷移 低消費電力モード制御レジスタ中の SLP ビットに "1", STP ビットに "0" を書き込むこ とによりスタンバイ制御回路をスリープモードに設定します。 SLP ビットに "1" を書き込んだときに割込み要求が発生していると , スタンバイ制御回 路はスリープモードへ遷移しません。そのため , CPU は割込みを受け付けない状態で は次の命令の実行 , 受け付ける状態であれば即座に割込み処理ルーチンの分岐を行い ます。 スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ■ スリープモードの解除 スタンバイ制御回路は , リセット入力または割込みの発生によりスリープモードを解 除します。リセット要因によりスリープモードを解除した場合は , スリープモードを解 除した上でリセット状態になります。 スリープモード中に周辺回路および内蔵リソースから割込みレベルが 7 より強い割込 み要求が発生すると , スタンバイ制御回路はスリープモードを解除します。スリープ モードの解除後は , 通常の割込み処理と同じ扱いとなり , I フラグ , ILM と割込み制御 レジスタ (ICR) の設定により割込みが受け付けられるときは , CPU はスタンバイ書込 み命令の次の割込み保留でない命令を実行後に , 割込み処理を実行し , 割込みが受け付 けられないときはスリープモードに入れた命令の次の命令から処理を続行します。 < 注意事項 > 通常 , 割込み処理はスリープモードへの遷移中に実行された命令の次の命令を実行 後に開始されます。 93 第 6 章 低消費電力制御回路 6.3.2 時計モード 時計モードとは , 原発振 , タイムベースタイマ , 時計タイマ以外の動作を止めるモー ドであり , チップのほぼ全機能が停止します。 ■ 時計モードへの遷移 スタンバイ制御回路は , クロック選択レジスタの MCS ビットが "0" で , 低消費電力モー ド制御レジスタの STP ビットに "1" が書き込まれたときに , 時計モードにセットされ ます。 時計モード中の I/O 端子を , 直前の状態に保持するか , ハイインピーダンス状態にする かを , 低消費電力モード制御レジスタ中の SPL ビットにより制御できます。STP ビッ トに "1" を書き込んだときに割込み要求が発生している場合は , スタンバイ制御回は時 計モードに遷移しません。 時計モードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持しま す。 < 注意事項 > 時計モード時に周辺機能とポートを兼用している端子をハイインピーダンスに設定 する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定してく ださい。 対象となる端子を以下に示します 対象端子 : P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/OUT4, P13/OUT5, P15/TX1, P16/SG0, P17/SGA, P34/SOT0, P35/SCK0 ■ 時計モードの解除 スタンバイ制御回路は , リセット入力または割込みの発生により時計モードを解除し ます。リセット要因により時計モードを解除した場合は , 時計モードを解除した上で , リセット状態になります。 時計モードからの復帰の場合 , まずスタンバイ制御回路が時計モードを解除し , PLL ク ロック発振安定待ち状態に遷移します。MCS ビットは外部リセットによりクリアされ ないので , リセット時間が PLL クロック発振安定待ち時間より短い場合 , リセットシー ケンスはメインクロックを使用して行われます。PLL クロック発振安定待ち時間は , タ イムベースタイマがクリアされていないので , その状態に応じて 213 ∼ 3 × 213 になり ます。 時計モード中に周辺回路などから割込みレベルが 7 より強い割込み要求が発生すると , スタンバイ制御回路は時計モードを解除します。時計モードの解除後は , 通常の割込み 処理と同じ扱いとなり , I フラグ , ILM と割込み制御レジスタ (ICR) の設定により割込 みが受け付けられるときは , CPU はスタンバイ書込み命令の次の割込み保留でない命 令を実行後に , 割込み処理を実行し , 割込みが受け付けられないときは時計モードに入 る前の次の命令から処理を続行します。 94 第 6 章 低消費電力制御回路 < 注意事項 > • 通常 , 割込み処理は時計モードへの遷移中に実行された命令の次の命令を実行 後に開始されます。 • スタンバイ制御回路は , 時計モードが解除されると PLL クロック発振安定待ち 状態に遷移します。PLL クロックを使用していない場合 , リセットまたは割込 みの直後の命令により MCS ビットに "1" を書き込んでください。 95 第 6 章 低消費電力制御回路 6.3.3 ストップモード ストップモードとは , 原発振を止めるモードであり , チップの全機能が停止します。 したがって , もっとも低消費電力でデータを保持することができます。 ■ ストップモードへの遷移 クロック選択レジスタの MCS ビットが "1" で , 低消費電力モード制御レジスタ中の STP ビットに "1" を書き込むことによりスタンバイ制御回路をストップモードに設定しま す。 ストップモード中の I/O 端子を , 直前の状態に保持するか , ハイインピーダンス状態に するかを , LPMCR 中の SPL ビットにより制御できます。SPL ビットが "0" にセットさ れている場合 , すべての入力は安定したデジタル値で提供しなければなりません。そう でなければ , 入力バッファで電流が消費されます (A/D アナログ入力は例外 ) 。 STP ビットに "1" を書き込んだときに割込み要求が発生している場合は , スタンバイ制 御回路はストップモードに遷移しません。 ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 < 注意事項 > ストップモード時に周辺機能とポートを兼用している端子をハイインピーダンスに 設定する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定し てください。 対象となる端子を以下に示します 対象端子 : P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/OUT4, P13/OUT5, P15/TX1, P16/SG0, P17/SGA, P34/SOT0, P35/SCK0 ■ ストップモードの解除 スタンバイ制御回路は , リセット入力または割込みの発生によりストップモードを解 除します。リセット要因によりストップモードを解除した場合は , ストップモードを解 除した上で , リセット状態になります。 ストップモード中に周辺回路などから割込みレベルが 7 より強い割込み要求が発生す ると, スタンバイ制御回路はストップモードを解除します。ストップモードの解除後は, CKSCR 中の WS1, WS0 ビットで指定されたメインクロックの発振安定待ち時間を経過 したあとで , 通常の割込み処理と同じ扱いとなり , I フラグ , ILM と割込み制御レジス タ (ICR) の設定により割込みが受け付けられるときは , CPU はスタンバイ書込み命令 の次の割込み保留でない命令を実行後に , 割込み処理を実行し , 割込みが受け付けられ ないときはストップモードに入る前の次の命令から処理を続行します。 96 第 6 章 低消費電力制御回路 ■ 発振安定待ち時間設定 WS1, WS0 ビットを使用して , ストップモードまたはハードウェアスタンバイモードの 解除時の発振安定待ち時間の設定を行います。X0, X1 端子に接続する発振回路 , 発振 素子の種類や特性に応じて発振安定待ち時間を設定します。 パワーオンリセット以外のリセットでは , 本ビットは初期化されません。パワーオンリ セット時は "11" に初期化されるので , 電源を最初に投入したときに , 発振安定待ち時 間は原発振の約 217 パルスカウントに設定されます。 < 注意事項 > 通常 , 割込み処理はストップモードへの遷移中に実行された命令の次の命令実行後 に開始されます。 97 第 6 章 低消費電力制御回路 6.3.4 ハードウェアスタンバイモード ハードウェアスタンバイモードとは , リセットを含むほかの状態に関係なく HST 端 子が "L" レベルの間 , 発振を停止させ I/O 端子をすべてハイインピーダンス状態にす るモードです。 ■ ハードウェアスタンバイモードへの遷移 HST 端子を "L" レベルにすることにより , どんな状態からでもスタンバイ制御回路を ハードウェアスタンバイモードに設定することができます。ハードウェアスタンバイ モードでは内部 RAM の内容は保持されますが , アキュムレータなどの専用レジスタは 初期状態になります。 ■ ハードウェアスタンバイモードの解除 ハードウェアスタンバイモードの解除は , HST 端子によってのみ解除することができ ます。HST 端子を "H" レベルとなるとスタンバイ制御回路はハードウェアスタンバイ モードを解除し , 内部リセット信号を有効にしたのち発振安定待ち状態に遷移します。 さらに , メインクロック発振安定待ち時間の経過後 , スタンバイ制御回路は内部リセッ トを解除し , その結果は CPU はリセットシーケンスから実行を開始します。 ■ 発振安定待ち時間設定 WS1, WS0 ビットを使用して , ストップモードまたはハードウェアスタンバイモードの 解除時の発振安定待ち時間の設定を行います。X0, X1 端子に接続する発振回路 , 発振 素子の種類や特性に応じて発振安定待ち時間を設定します。 パワーオンリセット以外のリセットでは , 本ビットは初期化されません。パワーオンリ セット時は "11" に初期化されるので , 電源を最初に投入したときに , 発振安定待ち時 間は原発振の約 217 パルスカウントに設定されます。 98 第 6 章 低消費電力制御回路 6.4 CPU 間欠動作 CPU 間欠動作機能は , レジスタまたは内蔵メモリ (ROM, RAM, I/O, リソース ) アク セスを行うときに CPU に供給するクロックを一定期間停止させ , 内部バスサイクル の起動を遅らせます。内蔵リソースに高速クロックを供給したまま CPU の実行速度 を下げることにより , 低消費電力で処理が行えます。 ■ CPU 間欠動作 図 6.4-1 に , CPU 間欠動作を示します。CPU 間欠動作は , CG1, CG0 ビットにより , ク ロック一時停止のサイクル数の選択を行います。 なお , 外部バス動作そのものは , リソースと同じクロックを使用して行われます。 また , CPU 間欠動作機能を使用した場合の命令実行時間の算出は , 通常の実行時間に補 正係数 ( レジスタ , 内蔵メモリまたは内蔵リソースアクセスを行う回数に , 一時停止サ イクル数をかけた値 ) を加えることで , 求めることができます。 図 6.4-1 CPU 間欠動作 周辺クロック CPU クロック 一時停止サイクル 1 命令実行 サイクル 内部バス起動 99 第 6 章 低消費電力制御回路 6.5 マシンクロック切換え CKSCR レジスタ中の MCS ビットへの書込みにより , マシンクロックは , メインク ロックから PLL クロックに切り換わります。 ■ メインクロックと PLL クロックの切換え MCS ビットを "1" から "0" に書き換えた場合には , PLL クロックの発振安定待ち時間 (213 マシンクロックサイクル ) 経過後に , マシンクロックはメインクロックから PLL ク ロックに切り換わります。 MCS ビットを "0" から "1" に書き換えた場合には , PLL クロックとメインクロックの エッジが一致する時点 (1 ∼ 8PLL クロックサイクル後 ) で , マシンクロックは PLL ク ロックからメインクロックに切り換わります。 MCS ビットを書き換えても即座にマシンクロックの切換えが行われないので , マシン クロックに依存するリソースを操作する場合には , MCM ビットを常に参照してマシン クロックの切換えが行われたことを確認した後 , リソースの操作を行います。 < 注意事項 > クロックモードを切り換えた場合 , 切換えが完了するまでに , ほかのクロックモー ドおよび低消費電力モードへの切換えを行わないようにしてください。切換えの完 了はクロック選択レジスタ (CKSCR) の MCM ビットを参照してください。切換え が完了する前に , 他のクロックモードおよび低消費電力モードへの切換えを行った 場合 , 切り換わらない場合があります。 ■ マシンクロック初期化 MCS ビットは , 外部端子 RST によるリセット , RST ビットによるリセットでは初期化 されません。その他のリセットでは , "1" に初期化されます。 100 第 6 章 低消費電力制御回路 6.6 クロック選択の状態遷移 PLL クロックの発振安定待ち時間は , 213 メインクロックサイクル固定です ( 原発振 4MHz 時 , 発振安定待ち時間は約 2ms になります ) 。 ■ クロック選択の状態遷移 図 6.6-1 に , クロック選択の状態遷移を示します。 図 6.6-1 クロック選択の状態遷移 パワーオン メイン メイン→ PLLx ① MCS = 1 MCM = 1 CS1/0=XXB ② MCS = 0 MCM = 1 CS1/0=XXB ⑦ ③ ④ PLL1 →メイン PLL1 逓倍 MCS = 1 MCM = 0 CS1/0=00B ⑥ MCS = 0 MCM = 0 CS1/0=00B ⑦ PLL2 逓倍 PLL2 →メイン MCS = 1 ⑦ MCM = 0 CS1/0=01B ⑥ PLL3 →メイン ⑤ MCS = 1 ⑦ MCM = 0 CS1/0=10B ⑥ PLL4 →メイン MCS = 1 MCM = 0 CS1/0=11B MCS = 0 MCM = 0 CS1/0=01B PLL3 逓倍 MCS = 0 MCM = 0 CS1/0=10B PLL4 逓倍 ⑥ MCS = 0 MCM = 0 CS1/0=11B 101 第 6 章 低消費電力制御回路 ① MCS ビットクリア ② PLL クロック発振安定待ち終了 &CS1/CS0=00B ③ PLL クロック発振安定待ち終了 &CS1/CS0=01B ④ PLL クロック発振安定待ち終了 &CS1/CS0=10B ⑤ PLL クロック発振安定待ち終了 &CS1/CS0=11B ⑥ MCS ビットセット ( ハードウェアスタンバイ , ウォッチドッグリセットを含む ) ⑦ PLL クロックとメインクロック同期タイミング < 注意事項 > 102 クロックモードを切り換えた場合 , 切換えが完了するまでに , ほかのクロックモー ドおよび低消費電力モードへの切換えを行わないようにしてください。切換えの 完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照してください。切換 えが完了する前に , 他のクロックモードおよび低消費電力モードへの切換えを行っ た場合 , 切り換わらない場合があります。 第7章 メモリアクセスモード この章では , メモリアクセスモードの機能と動作に ついて示します。 7.1 メモリアクセスモードの概要 7.2 モード端子 7.3 モードデータ 103 第 7 章 メモリアクセスモード 7.1 メモリアクセスモードの概要 F2MC-16LX では , アクセス方式 , アクセス領域のそれぞれについて , 次の 2 種類の メモリアクセスモードがあります。 ・動作モード ・バスモード ■ メモリアクセスモード 図 7.1-1 メモリアクセスモード 動作モード ○ RUN ○ フラッシュメモリモード バスモード シングルチップ MB90590 シリーズについては , 外部バス機能はサポートされていません。このため , 本 マニュアルの以下の部分は完全にはサポートされていません。お客様がご使用の際に は , MB90590 シリーズをシングルチップモードで使用してください。 MB90590 シリーズをシングルチップモードに設定するには , モード入力 (MD2 ∼ MD0) を"011"にし, モードデータの最大有効2ビット(M1, M0)を"00"にする必要があります。 ● 動作モード 動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端 子 (MDx) の内容で指定します。動作モードを選択することで , 通常動作 / 内部試験プ ログラムの起動 / 特殊試験機能の起動を行うことができます。 ● バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す もので , モード設定用端子 (MDx) とモードデータ内の Mx ビットの内容で指定します。 モード設定用端子 (MDx) は , リセットベクタおよびモードデータを読み出すときのバ スモードを指定するもので , モードデータ内の Mx ビットは , 通常動作時のバスモード を指定するものです。 104 第 7 章 メモリアクセスモード モード端子 7.2 MD2 ∼ MD0 の 3 本の外部端子の設定の組合せによって , モードの指定ができます。 ■ モード端子 表 7.2-1 モード端子と設定モードの関係 モード端子設定 モード名 リセット ベクタアク セス領域 外部データ バス幅 備考 MD2 MD1 MD0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 フラッシュメモリ シリアル書込み * ― ― ― 1 1 1 フラッシュメモリ モード ― ― パラレルライタ使用時の モード ( 設定禁止 ) 内部ベクタモード 内部 ( モード データ ) リセットシーケンス以降 はモードデータで制御 ( 指定禁止 ) *: フラッシュメモリのシリアル書込みは , モード端子の設定だけでは書込みができません。ほかの端 子設定も必要です。 詳細は「第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例」を参 照してください。 105 第 7 章 メモリアクセスモード 7.3 モードデータ 主記憶 FFFFDFH に置く , CPU の動作制御用のデータです。リセットシーケンス実 行中にこのデータを取り込み , デバイス内部のモードレジスタに格納します。モー ドレジスタの内容を変更できるのはリセットシーケンスだけです。 本レジスタによる設定はリセットシーケンス以降に有効となります。 予約ビットは , 必ず "0" を設定してください。 ■ モードデータ 図 7.3-1 に , ビットの設定を示します。 図 7.3-1 モードデータ構成 モードデータ 7 6 5 4 M1 M0 0 0 3 0 2 1 0 0 0 0 機能拡張ビット ( 予約領域 ) バスモード設定ビット ■ バスモード設定ビット リセットシーケンス終了後の動作モードの指定を行うビットです。表 7.3-1 に , ビット と機能との関係を示します。 表 7.3-1 バスモード設定ビットと機能 106 M1 M0 0 0 0 1 1 0 1 1 機能 シングルチップモード ( 設定禁止 ) 第 7 章 メモリアクセスモード 図 7.3-2 に , 各バスモードのアクセス領域と物理アドレスとの対応関係を示します。 図 7.3-2 各バスモードのアクセス領域と物理アドレス FFFFFFH ROM デバイス依存 #1 FF0000H 010000H ROM 004000H デバイス依存 #2 RAM 002100H 001100H I/O RAM 000100H 0000C0H 000000H :アクセスなし :内部アクセス I/O シングルチップ < 注意事項 > 「デバイス依存」とは , デバイスにより決定されるアドレスのことです。 ■ 推奨設定例 表 7.3-2 に , モード端子とモードデータの推奨設定例を示します。 表 7.3-2 モード端子とモードデータの推奨設定例 設定例 シングルチップ < 注意事項 > MD2 MD1 MD0 M1 M0 0 1 1 0 0 フラッシュ品については , ハードワイヤードロジックによりモードデータにあらか じめ決められた値が設定されています。詳細については , 「24.9 フラッシュメモ リにおけるリセットベクタアドレス」を参照してください。 107 第 7 章 メモリアクセスモード 108 第8章 I/O ポート この章では , I/O ポートの機能と動作について説明 します。 8.1 I/O ポート 8.2 I/O ポートのレジスタ 109 第 8 章 I/O ポート 8.1 I/O ポート それぞれのポートの各端子は , 対応する周辺が端子を用いない設定となっていると き , 1 端子ごとに方向レジスタを設定することにより , 入力 , 出力の指定を行うこと ができます。入力端子として指定した場合 , 端子の論理レベルが読み出され , 出力端 子として指定した場合 , データレジスタ値が読み出されます。これは , リードモディ ファイライトのリード操作にも適用されます。 ■ I/O ポート I/O ポートでは , ポート 0 ∼ポート 3 についてのみは , 周辺信号の出力を許可する場合 , ポート方向レジスタの対応するビットを "1" に設定する必要があります。 周辺回路の出力として使用している場合にデータレジスタを読み出したときは , 方向 レジスタの値に関係なく , 制御出力として出力しているものが , 読み出されます。 一般的には , ポートを出力に設定する前に , データレジスタの設定にリードモディファ イライト系の命令を使用しないことが推奨されます。それは , リードモディファイライ ト系の命令によってレジスタ値ではなくポートの論理レベルが読み出されるからで す。 図 8.1-1 に , I/O ポートのブロックダイヤグラムを示します。 図 8.1-1 I/O ポートのブロックダイヤグラム 内部データバス データレジスタリード データレジスタ データレジスタライト 方向レジスタ 方向レジスタライト 方向レジスタリード 110 端子 第 8 章 I/O ポート I/O ポートのレジスタ 8.2 I/O ポートのレジスタには , 次の 3 種類があります。 • ポートデータレジスタ • ポート方向レジスタ • ポートアナログ入力許可レジスタ ■ I/O ポートのレジスタ 図 8.2-1 に , I/O ポートのレジスタを示します。 図 8.2-1 I/O ポートのレジスタ アドレス bit : 000000H : 000001H : 000002H : 000003H : 000004H : 000005H : 000006H : 000007H : 000008H : 000009H アドレス bit : 000010H : 000011H : 000012H : 000013H : 000014H : 000015H : 000016H : 000017H : 000018H : 000019H アドレス bit : 00001BH 7 6 5 4 3 2 1 0 P07 P17 P27 P37 P47 P57 P67 P77 P87 P06 P16 P26 P36 P46 P56 P66 P76 P86 − − P05 P15 P25 P35 P45 P55 P65 P75 P85 P95 P04 P14 P24 P34 P44 P54 P64 P74 P84 P94 P03 P13 P23 P33 P43 P53 P63 P73 P83 P93 P02 P12 P22 P32 P42 P52 P62 P72 P82 P92 P01 P11 P21 P31 P41 P51 P61 P71 P81 P91 P00 P10 P20 P30 P40 P50 P60 P70 P80 P90 7 6 5 4 3 2 1 0 D07 D17 D27 D37 D47 D57 D67 D77 D87 D06 D16 D26 D36 D46 D56 D66 D76 D86 − − D05 D15 D25 D35 D45 D55 D65 D75 D85 D95 D04 D14 D24 D34 D44 D54 D64 D74 D84 D94 D03 D13 D23 D33 D43 D53 D63 D73 D83 D93 D02 D12 D22 D32 D42 D52 D62 D72 D82 D92 D01 D11 D21 D31 D41 D51 D61 D71 D81 D91 D00 D10 D20 D30 D40 D50 D60 D70 D80 D90 7 6 5 4 3 2 1 0 ポートデータレジスタ (PDR0) ポートデータレジスタ (PDR1) ポートデータレジスタ (DDR2) ポートデータレジスタ (PDR3) ポートデータレジスタ (PDR4) ポートデータレジスタ (PDR5) ポートデータレジスタ (PDR6) ポートデータレジスタ (PDR7) ポートデータレジスタ (PDR8) ポートデータレジスタ (PDR9) ポート方向レジスタ (DDR0) ポート方向レジスタ (DDR1) ポート方向レジスタ (DDR2) ポート方向レジスタ (DDR3) ポート方向レジスタ (DDR4) ポート方向レジスタ (DDR5) ポート方向レジスタ (DDR6) ポート方向レジスタ (DDR7) ポート方向レジスタ (DDR8) ポート方向レジスタ (DDR9) ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 アナログ入力許可レジスタ (ADER) 111 第 8 章 I/O ポート 8.2.1 ポートデータレジスタ (PDR0 ∼ PDR9) I/O ポートの R/W は , メモリへの R/W とは多少動作が異なりますので注意してくだ さい。 [ 入力モード ] リード時 : 対応する端子のレベルが読み出されます。 ライト時 : 出力用のラッチに書き込まれます。 [ 出力モード ] リード時 : データレジスタラッチの値が読み出されます。 ライト時 : 出力ラッチに書き込まれ , 対応する端子に出力されます。 ■ ポートデータレジスタ (PDR0 ∼ PDR9) 図 8.2-2 に , ポートデータレジスタ (PDR0 ∼ PDR9) を示します。 図 8.2-2 ポートデータレジスタ (PDR0 ∼ PDR9) PDR0 bit アドレス : 000000H 7 P07 6 P06 5 P05 4 P04 3 P03 2 P02 1 P01 0 P00 初期値 アクセス XXXXXXXXB R/W PDR1 bit アドレス : 000001H 7 P17 6 P16 5 P15 4 P14 3 P13 2 P12 1 P11 0 P10 XXXXXXXXB R/W PDR2 bit アドレス : 000002H 7 6 5 4 3 2 1 0 P27 P26 P25 P24 P23 P22 P21 P20 XXXXXXXXB R/W PDR3 bit アドレス : 000003H 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 XXXXXXXXB R/W PDR4 bit アドレス : 000004H 7 6 5 4 3 2 1 0 P47 P46 P45 P44 P43 P42 P41 P40 XXXXXXXXB R/W PDR5 bit アドレス : 000005H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 XXXXXXXXB R/W PDR6 bit アドレス : 000006H 7 6 5 4 3 2 1 0 P67 P66 P65 P64 P63 P62 P61 P60 XXXXXXXXB R/W XXXXXXXXB R/W XXXXXXXXB R/W --XXXXXXB R/W PDR7 bit アドレス : 000007H 7 6 5 4 3 2 1 0 P77 P76 P75 P74 P73 P72 P71 P70 PDR8 bit アドレス : 000008H 7 6 5 4 3 2 1 0 P87 P86 P85 P84 P83 P82 P81 P80 7 6 5 4 3 2 1 0 − − P95 P94 P93 P92 P91 P90 PDR9 bit アドレス : 000009H 112 第 8 章 I/O ポート 8.2.2 ポート方向レジスタ (DDR0 ∼ DDR9) ポート方向レジスタ (DDR0 ∼ DDR9) は , 各端子がポートとして機能しているとき は , 対応する各端子を以下のように制御します。 0: 入力モード 1: 出力モード ■ ポート方向レジスタ (DDR0 ∼ DDR9) 図 8.2-3 に , ポート方向レジスタ (DDR0 ∼ DDR9) を示します。 図 8.2-3 ポート方向レジスタ (DDR0 ∼ DDR9) DDR0 bit アドレス : 000010H 7 D07 6 D06 5 D05 4 D04 3 D03 2 D02 1 D01 0 D00 初期値 アクセス 00000000B R/W DDR1 bit アドレス : 000011H 7 D17 6 D16 5 D15 4 D14 3 D13 2 D12 1 D11 0 D10 00000000B R/W DDR2 bit アドレス : 000012H 7 D27 6 D26 5 D25 4 D24 3 D23 2 D22 1 D21 0 D20 00000000B R/W DDR3 bit アドレス : 000013H 7 D37 6 D36 5 D35 4 D34 3 D33 2 D32 1 D31 0 D30 00000000B R/W DDR4 bit アドレス : 000014H 7 D47 6 D46 5 D45 4 D44 3 D43 2 D42 1 D41 0 D40 00000000B R/W DDR5 bit アドレス : 000015H 7 D57 6 D56 5 D55 4 D54 3 D53 2 D52 1 D51 0 D50 00000000B R/W DDR6 bit アドレス : 000016H 7 D67 6 D66 5 D65 4 D64 3 D63 2 D62 1 D61 0 D60 00000000B R/W DDR7 bit アドレス : 000017H 7 D77 6 D76 5 D75 4 D74 3 D73 2 D72 1 D71 0 D70 00000000B R/W DDR8 bit アドレス : 000018H 7 D87 6 D86 5 D85 4 D84 3 D83 2 D82 1 D81 0 D80 00000000B R/W DDR9 bit アドレス : 000019H 7 − 6 − 5 D95 4 D94 3 D93 2 D92 1 D91 0 D90 --000000B R/W < 注意事項 > ポート方向レジスタのポート 0, 1 は , パワーオンリセット中は不定であり , パワー オンリセット後は "00H" に初期化されます。したがって , ポート 0, 1 の出力も , パ ワーオンリセット中は不定となります。 113 第 8 章 I/O ポート 8.2.3 アナログ入力許可レジスタ (ADER) アナログ入力許可レジスタ (ADER) は , ポート 6 の各端子を以下のように制御しま す。 0: ポート入出力モード 1: アナログ入力モード 外部端子を A/D コンバータのアナログ入力として使用している場合 , 対応するビッ トを "1" に設定する必要があります。 ■ アナログ入力許可レジスタ (ADER) 図 8.2-4 に , アナログ入力許可レジスタ (ADER) を示します。 図 8.2-4 アナログ入力許可レジスタ (ADER) bit 7 6 5 4 3 2 1 0 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 リード / ライト→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) アドレス : 00001BH 初期値→ 114 (1) ADER 第9章 タイムベースタイマ この章では , タイムベースタイマの機能と動作につ いて説明します。 9.1 タイムベースタイマの概要 9.2 タイムベースタイマ制御レジスタ (TBTC) 9.3 タイムベースタイマの動作 115 第 9 章 タイムベースタイマ 9.1 タイムベースタイマの概要 タイムベースタイマは , システムクロックを分周する 18 ビットのタイムベースカウ ンタと制御レジスタにより構成されます。タイムベースタイマは , タイムベースカ ウンタの桁上がり信号により指定したインターバルで割込みを発生します。 ■ タイムベースタイマの概要 パワーオン時 , タイムベースカウンタは , ストップモードを設定するかまたはソフト ウェア (TBR ビットへの "0" の書込み ) によりすべて "0" にクリアされます。原振が入 力されている間 , タイムベースカウンタはインクリメントされます。 タイムベースカウンタは , ウォッチドッグタイマのクロック供給 , 発振安定時間待ちの ためのタイマとして使用できます。 ■ タイムベースタイマのブロックダイヤグラム 図 9.1-1 に , タイムベースタイマのブロックダイヤグラムを示します。 図 9.1-1 タイムベースタイマのブロックダイヤグラム WTE 出力許可 WT1 WT0 2 ビット カウンタ セレクタ リセット コントロール タイムベースカウンタ f/2 パワーオン リセット STOP モード 1 1 1 1 1 1 1 1 1 2 211 212 213 214 215 216 217 218 クリア コントロール TBOF セレクタ TBOF TBR クリア TBC1 TBC0 WS1 WS0 116 1/210 ~ 1/217 セレクタ EI2OS タイムベース分周出力 発振安定待ち完了信号 IRQ リセット 第 9 章 タイムベースタイマ 9.2 タイムベースタイマ制御レジスタ (TBTC) タイムベースタイマ制御レジスタ (TBTC) はタイムベースタイマの割込みの制御を 行い , タイムベースカウンタのクリアを行うことができます。 ■ タイムベースタイマ制御レジスタ (TBTC) 図 9.2-1 タイムベースタイマ制御レジスタ (TBTC) bit アドレス : 0000A9H リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 予約 (W) (1) − (−) (−) − (−) (−) TBIE TBOF TBR TBC1 TBC0 (R/W) (0) (R/W) (0) (W) (1) (R/W) (0) (R/W) (0) TBTC 【bit15】予約 予約済みビットです。このレジスタにデータを書込むときは , 必ず "1" を書き込んでく ださい。 【bit12】TBIE タイムベースタイマによるインターバル割込みを許可するビットです。"1" のとき割込 み許可 , "0" のとき割込みを禁止します。リセットにより "0" に初期化します。読み書 き可能なビットです。 【bit11】TBOF タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のとき TBOF が , "1" になると割込み要求を発生します。TBC1, TBC0 ビットで設定されたインターバルごと に "1" にセットされます。"0" の書込み , ストップモード , ハードウェアスタンバイモー ドでの変遷およびリセットによりクリアされます。"1" の書込みは , 意味がありません。 リードモディファイライト系命令におけるリード時には "1" が読めます。 【bit10】TBR タイムベースカウンタを全ビット "0" にクリアするビットです。"0" を書き込むことに よりタイムベースカウンタをクリアします。"1" の書込みは意味がありません。 リード時は "1" が読めます。 【bit9, bit8】TBC1, TBC0 タイムベースタイマのインターバルを設定するビットです。表 9.2-1 に , インターバル の設定を示します。 表 9.2-1 タイムベースタイマインターバルの選択 TBC1 TBC0 0 0 1.024ms 0 1 4.096ms 1 0 16.384ms 1 1 131.072ms 原振 4MHz 時のインターバル時間 117 第 9 章 タイムベースタイマ 9.3 タイムベースタイマの動作 タイムベースタイマには , ウォッチドッグタイマのクロックソース , 発振安定時間待 ちのためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり ます。 ■ タイムベースカウンタ タイムベースカウンタは , 原振入力を 2 分周して発生させたクロック用の 18 ビットの カウンタにより構成されます。このクロックは , マシンクロックを発生するのに使用さ れます。原振が入力されている間 , タイムベースカウンタはカウント動作を続けます。 タイムベースカウンタのクリアは , パワーオンリセット , ストップモードかハードウェ アスタンバイモードへの遷移または TBTC レジスタ中の TBR ビットへの "0" の書込み により行われます。 ■ インターバル割込み機能 タイムベースカウンタの桁上がり信号により一定周期で割込みを発生します。TBTC レ ジスタ中の TBC1, TBC0 ビットで設定されるインターバル時間ごとに TBOF フラグを セットします。このフラグの書込みは , 最後にタイムベースタイマがクリアされた時間 を基準にして行われます。 ストップモードまたはハードウェアスタンバイモードに遷移すると , タイムベースタ イマは復帰時の発振安定時間待ちのタイマとして使用されるので , TBOF フラグはモー ド遷移と同時にクリアされます。 118 第 10 章 ウォッチドッグタイマ この章では , ウォッチドッグタイマの機能と動作に ついて説明します。 10.1 ウォッチドッグタイマの概要 10.2 ウォッチドッグタイマの動作 119 第 10 章 ウォッチドッグタイマ ウォッチドッグタイマの概要 10.1 ウォッチドッグタイマは , 18 ビットのタイムベースタイマの桁上がり信号をクロッ クソースとする 2 ビットのウォッチドッグカウンタ , 制御レジスタ , ウォッチドッグ リセット制御部により構成されています。 ■ ウォッチドッグタイマのブロックダイヤグラム 図 10.1-1 に , ウォッチドッグタイマのブロックダイヤグラムを示します。 図 10.1-1 ウォッチドッグタイマのブロックダイヤグラム WTE 出力許可 WT1 WT0 2 ビット カウンタ セレクタ リセット制御 タイムベースカウンタ f/2 パワーオン リセット STOP モード 1 1 1 1 1 1 1 1 1 2 211 212 213 214 215 216 217 218 クリア コントロール TBOF セレクタ TBOF TBR クリア TBC1 TBC0 WS1 WS0 120 EI2OS 1/210 ~ 1/217 セレクタ タイムベース分周出力 発振安定待ち完了信号 IRQ リセット 第 10 章 ウォッチドッグタイマ ■ ウォッチドッグタイマ制御レジスタ (WDTC) 図 10.1-2 ウォッチドッグタイマ制御レジスタ (WDTC) bit 7 6 5 4 アドレス : 0000A8H PONR STBR WRST ERST (R) (R) (R) (R) リード / ライト→ (X) (X) (X) (X) 初期値→ 3 2 1 0 SRST (R) (X) WTE (W) (1) WT1 (W) (1) WT0 (W) (1) WDTC 【bit7 ∼ bit3】PONR, STBR, WRST, ERST, SRST リセットの要因を示すフラグです。各種リセット要因が発生すると , 本ビットは表 10.1-1 のように設定されます。これらのビットはすべて WDTC のリード動作後に "0" にクリアされます。読出し専用のレジスタです。詳細については , 「5.2 リセット要因 の発生」を参照してください。 表 10.1-1 リセット要因レジスタ PONR STBR WRST ERST SRST パワーオン 1 ― ― ― ― ハードウェアスタンバイ * 1 * * * ウォッチドッグタイマ * * 1 * * 外部端子 * * * 1 * RST ビット * * * * 1 リセット要因 *: 前の値の保持を示します。 【bit2】WTE ウォッチドッグタイマが停止状態のときに本ビットに "0" を書き込むことにより , ウォッチドッグタイマを動作状態にします。"1" の書込みは何の操作もしません。 ウォッチドッグタイマは , パワーオン , ハードウェアスタンバイ , ウォッチドッグタイ マによるリセットにより停止状態となります。読出し時は "1" が読み出されます。 【bit1, bit0】WT1, WT0 ウォッチドッグタイマのインターバル時間を選択するビットです。ウォッチドッグタ イマ起動時に書き込まれたデータのみが有効です。ウォッチドッグ起動時以外の書込 みデータは無視します。 表 10.1-2 に , インターバル時間の設定を示します。 書込み可能なビットです。 121 第 10 章 ウォッチドッグタイマ 表 10.1-2 ウォッチドッグタイマインターバル選択ビット WT1 WT0 インターバル時間 ( 原振 :4MHz) 最小 最大 * メイン・クロック・ サイクル・カウント 0 0 約 3.58ms 約 4.61ms 214 ± 211 サイクル 0 1 約 14.33ms 約 18.43ms 216 ± 213 サイクル 1 0 約 57.23ms 約 73.73ms 218 ± 215 サイクル 1 1 約 458.7ms 約 589.82ms 221 ± 218 サイクル *: インターバルの最大値は , ウォッチドッグ動作中にタイムベースカウンタまたは 時計カウンタがリセットされない場合の値です。 122 第 10 章 ウォッチドッグタイマ 10.2 ウォッチドッグタイマの動作 ウォッチドッグタイマの機能により , プログラムの暴走を検出することができます。 プログラムの暴走などにより , 定められた時間内にウォッチドッグタイマのアクセ スが行われない場合 , ウォッチドッグタイマはシステムをリセットします。 ■ ウォッチドッグタイマの起動方法 ウォッチドッグタイマの起動は , ウォッチドッグタイマの停止中に WDTC レジスタの WTE ビットに "0" を書き込むことによって行われます。このとき , 同時にウォッチドッ グタイマのリセット発生のインターバルを WT1, WT0 ビットにより設定します。イン ターバルの設定は , この起動のときのデータのみが有効となります。 ■ ウォッチドッグカウンタ 一度 , ウォッチドッグタイマが起動されると , ウォッチドッグタイマカウンタをプログ ラム内で定期的にクリアする必要があります。WDTC レジスタの WTE ビットに "0" を 書き込むと , ウォッチドッグカウンタがクリアされます。ウォッチドッグカウンタは , タイムベースカウンタの桁上がり信号をクロックソースとする 2 ビットのカウンタに より構成されています。したがって , タイムベースカウンタがクリアされると , ウォッ チドッグリセットの発生時間が設定より短くなることがあります。 ウォッチドッグのカウンタは , WTE ビットへの書込みによるクリアのほかに , リセッ トの発生 , スリープモード , ストップモードへの変遷によってクリアされます。( なお , 時計モードへの変遷では , クリアされません。) 図 10.2-1 に , ウォッチドッグタイマの動作を示します。 図 10.2-1 ウォッチドッグタイマの動作 タイムベース ウォッチドッグ 00 01 10 00 01 10 11 00 WTE ライト ウォッチドッグ起動 ウォッチドッグクリア ウォッチドッグリセット ■ ウォッチドッグ停止 ウォッチドッグタイマは , 一度起動すると , パワーオン , ハードウェアスタンバイ , ウォッチドッグによるリセットでのみ初期化され停止状態となります。外部端子 , ソフ トウェアによるリセットではウォッチドッグのカウンタはクリアしますがウォッチ ドッグ機能は , 停止されません。 123 第 10 章 ウォッチドッグタイマ 124 第 11 章 16 ビット入出力タイマ この章では , 16 ビット入出力タイマの機能と動作 について説明します。 11.1 16 ビット入出力タイマの概要 11.2 16 ビット入出力タイマのレジスタ 11.3 16 ビットフリーランタイマ 11.4 アウトプットコンペア 11.5 インプットキャプチャ 125 第 11 章 16 ビット入出力タイマ 11.1 16 ビット入出力タイマの概要 MB90590 シリーズは , 16 ビットフリーランタイマ 1 本 , アウトプットコンペアモ ジュール 3 本およびインプットキャプチャ 3 本のモジュールから構成され , 6 個の入 力チャネルおよび 6 個の出力チャネルをサポートしています。ここでは , 16 ビット 入出力タイマの機能のうち , 16 ビットフリーランタイマ , アウトプットコンペア 0/1 およびインプットキャプチャ 0/1 について説明します。残りのモジュールの機能も 同様であり , レジスタアドレスに関しては , 「付録 A I/O マップ」を参照してくださ い。 ■ 16 ビットフリーランタイマ 16 ビットフリーランタイマは 16 ビットのアップカウンタ , 制御レジスタ , プリスケー ラより構成されています。本タイマカウンタの出力値はインプットキャプチャ, アウト プットコンペアの基本時間 ( ベースタイマ ) として使用されます。 ● カウンタ動作クロックは 4 種類から選択可能 内部クロック 4 種類 (φ/4,φ/16,φ/64,φ/256) ● 割込みはカウンタ値のオーバフロー, コンペアレジスタ 0 とのコンペア一致により発生可能 ● カウンタ値はリセット, ソフトクリア, コンペアレジスタ0とのコンペア一致により"0000H" に初期化可能 ■ アウトプットコンペア ( モジュールごとに 2 チャネル ) アウトプットコンペアは 2 本の 16 ビットコンペアレジスタ , コンペア出力用ラッチ , 制御レジスタより構成されています。16 ビットフリーランタイマ値とコンペアレジス タ値が一致したとき出力レベルを反転すると共に割込みを発生することができます。 ● 2 本のコンペアレジスタを独立して動作 各コンペアレジスタに対応した出力端子と割込みフラグ ● 2 本のコンペアレジスタをペアにして出力端子を制御可能 コンペアレジスタ 2 本を使用して出力端子を反転する。 ● 出力端子の初期値を設定することが可能 ● 割込みはコンペア一致により発生可能 126 第 11 章 16 ビット入出力タイマ ■ インプットキャプチャ ( モジュールごとに 2 チャネル ) インプットキャプチャは独立した 2 本の外部入力端子と対応したキャプチャレジスタ , 制御レジスタにより構成されています。外部入力端子より入力された信号の任意エッ ジを検出することにより16ビットフリーランタイマ値をキャプチャレジスタに保持し, 同時に割込みを発生することができます。 ● 外部入力信号のエッジを選択可能 立上りエッジ , 立下りエッジ , 両エッジから選択可能 ● 2 本のインプットキャプチャは独立して動作可能 ● 割込みは外部入力信号の有効エッジにより発生可能 インプットキャプチャの割込みによりインテリジェント I/O サービスを起動できます。 ■ 16 ビット入出力タイマのブロックダイヤグラム 図 11.1-1 に , 16 ビット入出力タイマのブロックダイヤグラムを示します。 図 11.1-1 16 ビット入出力タイマのブロックダイヤグラム 制御ロジック 各 ブ ロ ッ ク へ 割込み 16 ビットフリ−ランタイマ 16 ビットタイマ クリア アウトプットコンペア 0 バ ス コンペアレジスタ 0 T Q OUT0 T Q OUT1 エッジ選択 IN0 エッジ選択 IN1 アウトプットコンペア 1 コンペアレジスタ 1 インプットキャプチャ 0 キャプチャレジスタ 0 インプットキャプチャ 1 キャプチャレジスタ 1 127 第 11 章 16 ビット入出力タイマ 11.2 16 ビット入出力タイマのレジスタ 16 ビット入出力タイマのレジスタには , 次の 3 つがあります。 • 16 ビットフリーランタイマのレジスタ • 16 ビットアウトプットコンペアのレジスタ • 16 ビットインプットキャプチャのレジスタ ■ 16 ビットフリーランタイマのレジスタ一覧 15 0 TCDT 001944H タイマデータレジスタ 00006EH TCCS 制御ステータスレジスタ ■ 16 ビットアウトプットコンペアのレジスタ一覧 15 0 001930H 001932H OCCP0/OCCP1 000058H OCS1 コンペアレジスタ OCS0 制御ステータスレジスタ ■ 16 ビットインプットキャプチャのレジスタ一覧 15 001920H 001922H 000054H 128 0 IPCP0/IPCP1 ICS0/ICS1 チャプタレジスタ 制御ステータスレジスタ 第 11 章 16 ビット入出力タイマ 16 ビットフリーランタイマ 11.3 16 ビットフリーランタイマのカウント値はアウトプットコンペア , インプットキャ プチャの基本時間 ( ベースタイマ ) として使用されます。 • カウントクロックは 4 種類から選択可能です。 • カウンタオーバフロー割込みを発生することができます。 • モード設定によりアウトプットコンペアのコンペアレジスタ 0 の値との一致によ るカウンタの初期化が可能です。 ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 11.3-1 16 ビットフリーランタイマのブロックダイヤグラム 割込み要求 IVF バ ス IVFE STOP MODE CLR CLK1 CLK0 φ 分周器 コンパレータ 0 16 ビットフリーランタイマ クロック T15 ~ T00 カウント値出力 129 第 11 章 16 ビット入出力タイマ 11.3.1 タイマカウンタデータレジスタ (TCDT) タイマカウンタデータレジスタ (TCDT) は , 16 ビットフリーランタイマのカウント 値を読み出すことができるレジスタです。カウンタ値はリセット時に "0000" にクリ アされます。このレジスタに書き込むことで , タイマ値を設定できますが必ず停止 (STOP=1) 状態で行ってください。このレジスタはワードアクセスしてください。 ■ タイマカウンタデータレジスタ (TCDT) 図 11.3-2 タイマカウンタデータレジスタ (TCDT) bit 15 アドレス : 001945H T15 リード / ライト→ (R/W) (0) 初期値→ bit アドレス : 001944H 14 13 12 11 10 9 8 T14 (R/W) (0) T13 (R/W) (0) T12 (R/W) (0) T11 (R/W) (0) T10 (R/W) (0) T9 (R/W) (0) T8 (R/W) (0) 7 6 5 4 3 2 1 0 T07 T06 T05 T04 T03 T02 T01 T00 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) リード / ライト→ (R/W) (0) 初期値→ TCDT TCDT 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • 制御ステータスレジスタのクリアビット (CLR) による初期化 • アウトプットコンペアのコンペアレジスタ 0 とタイマカウンタ値の一致による初期 化 ( モードの設定が必要です ) 130 第 11 章 16 ビット入出力タイマ 11.3.2 タイマカウンタ制御ステータスレジスタ (TCCS) タイマカウンタ制御ステータスレジスタ (TCCS) は , 16 ビットフリーランタイマの 動作モードの設定 , 起動・停止や割込みの制御を行います。 ■ タイマカウンタ制御ステータスレジスタ (TCCS) 図 11.3-3 タイマカウンタ制御ステータスレジスタ (TCCS) bit アドレス : 00006EH 7 予約 (R/W) リード / ライト→ (0) 初期値→ 6 5 IVF (R/W) (0) IVFE (R/W) (0) 4 3 2 STOP MODE CLR (R/W) (R/W) (R/W) (0) (0) (0) 1 0 CLK1 (R/W) (0) CLK0 (R/W) (0) TCCS 【bit7】予約ビット 本ビットには必ず "0" を書き込んでください。 【bit6】IVF 16 ビットフリーランタイマの割込み要求フラグです。 16 ビットフリーランタイマがオーバフローを起こしたときまたはモード設定によりコ ンペアレジスタ 0 とコンペア一致したときに本ビットは "1" にセットされます。 割込み要求許可ビット (bit5:IVFE) がセットされていると割込みが発生します。 本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。 リードモディファイ系命令では "1" が読めます。 0 割込み要求なし ( 初期値 ) 1 割込み要求あり 【bit5】IVFE 16 ビットフリーランタイマの割込み許可ビットです。本ビットが "1" のとき , 割込み フラグ (bit6:IVF) が "1" にセットされると割込みが発生します。 0 割込み禁止 ( 初期値 ) 1 割込み許可 【bit4】STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。 "1" 書込み時に 16 ビットフリーランタイマのカウント停止。"0" 書込み時に 16 ビット フリーランタイマのカウントを開始。 0 カウント許可 ( 動作 ) ( 初期値 ) 1 カウント禁止 ( 停止 ) 131 第 11 章 16 ビット入出力タイマ < 注意事項 > 16 ビットフリーランタイマのカウントが停止すると , アウトプットコンペア動作 も停止します。 【bit3】MODE 16 ビットフリーランタイマの初期化条件を設定します。 "0" のときはリセットとクリアビット (bit2:CLR) でカウンタ値を初期化可能。 "1" のときはリセットとクリアビット (bit2:CLR) のほかにアウトプットコンペアのコン ペアレジスタ 0 の値との一致によりカウンタ値を初期化することができます。 < 注意事項 > 0 リセット , クリアビットによる初期化 ( 初期値 ) 1 リセット , クリアビット , コンペアレジスタ 0 による初期化 カウンタ値の初期化はカウント値の変化点で行われます。 【bit2】CLR 動作中の 16 ビットフリーランタイマ値を "0000" に初期化するビットです。 "1" 書込み時にカウンタ値を "0000" に初期化。"0" を書込んでも意味を持ちません。リー ド値は常に "0" です。カウンタ値の初期化はカウント値の変化点で行われます。 < 注意事項 > 0 意味を持ちません ( 初期値 ) 1 カウンタ値を "0000" に初期化します 16 ビットフリーランタイマ停止中に初期化する場合はデータレジスタに "0000" を 書き込んでください。 【bit1, bit0】CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択します。本ビットに書込み後す ぐにクロックは変更されますのでアウトプットコンペア , インプットキャプチャが停 止状態のときに変更してください。 表 11.3-1 CLK1, CLK0 の設定 カウントクロック分周比 φ =16MHz φ =8MHz φ =4MHz φ =1MHz 0.25µs 0.5µs 1µs 4µs φ/16 1µs 2µs 4µs 16µs 0 φ/64 4µs 8µs 16µs 64µs 1 φ/256 16µs 32µs 64µs 256µs CLK1 CLK0 0 0 φ /4 0 1 1 1 ( 注意事項 ) φ: マシンクロック 132 第 11 章 16 ビット入出力タイマ 11.3.3 16 ビットフリーランタイマの動作 16 ビットフリーランタイマはリセット解除後にカウンタ値 "0000" よりカウントを 開始します。このカウンタ値が 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作 カウンタ値は , 次の 5 つの条件でクリアされます。 • オーバフローが発生したとき。 • アウトプットコンペアレジスタ 0 値とコンペア一致したとき ( モード設定が必要 ) 。 • 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき。 • 停止中に TCDC レジスタに "0000" を書き込んだとき。 • リセット時 割込みはオーバフローが発生したときと, アウトプットコンペアレジスタ0値とコンペ ア一致したときに発生します ( コンペア一致割込みはモード設定が必要です ) 。 ■ オーバフローによるカウンタクリア 図 11.3-4 オーバフローによるカウンタクリア カウンタ値 FFFFH オーバフロー BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み 133 第 11 章 16 ビット入出力タイマ ■ アウトプットコンペアレジスタ 0 値とコンペア一致したときのカウンタクリア 図 11.3-5 アウトプットコンペアレジスタ 0 値とコンペア一致したときのカウンタクリア カウンタ値 FFFFH 一致 一致 BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペア レジスタ値 BFFFH 割込み ■ 16 ビットフリーランタイマのタイミング ● 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0 との一致 ) カウンタのクリアはリセット , ソフト , コンペアレジスタ 0 との一致で行うことができ ます。リセットとプログラムでのカウンタクリアはクリア発生とともに行われますが , コンペアレジスタ 0 との一致によるカウンタクリアはカウントタイミングに同期して 行われます。 図 11.3-6 16 ビットフリーランタイマのタイミング φ コンペア レジスタ値 N コンペア一致 カウンタ値 N 134 0000 第 11 章 16 ビット入出力タイマ 11.4 アウトプットコンペア アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 本のコ ンペア出力端子および制御レジスタから構成されています。コンペアレジスタに設 定された値と 16 ビットフリーランタイマ値が一致したら , 端子の出力レベルを反転 すると共に割込みを発生することができます。 ■ アウトプットコンペア • コンペアレジスタは全部で 2 本あり , 独立して動作させることができます。また設 定により 2 本のコンペアレジスタを使い端子の出力を制御可能です。 • 端子の出力初期値を設定することができます。 • 割込みはコンペア一致により発生可能です。 ■ アウトプットコンペアのブロックダイヤグラム 図 11.4-1 に , アウトプットコンペアのブロックダイヤグラムを示します。 図 11.4-1 アウトプットコンペアのブロックダイヤグラム 16 ビットタイマカウンタ値 (T15 ∼ T00) T コンペア制御 Q OTE0 OUT0 OTE1 OUT1 コンペアレジスタ 0 CMOD 16 ビットタイマカウンタ値 (T15 ∼ T00) バ ス T コンペア制御 Q コンペアレジスタ 1 ICP1 コントローラ ICP0 ICE1 ICE0 コンペア 1 割込み コンペア 0 割込み 制御ブロック 135 第 11 章 16 ビット入出力タイマ 11.4.1 アウトプットコンペアのレジスタ 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。レジ スタ値は初期値不定ですので設定してから起動許可してください。本レジスタは ワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致 した時コンペア信号が発生してアウトプットコンペア割込みフラグをセットします。 また , 出力許可をしている場合はコンペアレジスタに対応した出力レベルを反転し ます。 ■ アウトプットコンペアのコンペアレジスタ 図 11.4-2 アウトプットコンペアのコンペアレジスタ bit アドレス:001931H 001933H 15 C15 リード / ライト→ (R/W) (X) 初期値→ bit アドレス:001930H 001932H 7 C07 リード / ライト→ (R/W) (X) 初期値→ 136 14 C14 13 C13 12 C12 11 C11 10 C10 9 C09 8 C08 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 C06 5 C05 4 C04 3 C03 2 C02 1 C01 0 C00 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) OCCP0/ OCCP1 OCCP0/ OCCP1 第 11 章 16 ビット入出力タイマ 11.4.2 アウトプットコンペアの制御ステータスレジスタ (OCS0/1) 制御ステータスレジスタ (OCS0/1) は , アウトプットコンペアの動作モードの設定 , 起動・停止や割込みの制御 , 外部出力端子の設定を行います。 ■ アウトプットコンペアの制御ステータスレジスタ (OCS0/1) 図 11.4-3 アウトプットコンペアの制御ステータスレジスタ (OCS0/1) bit 15 14 13 アドレス:000059H − − − リード / ライト→ 初期値→ (−) (−) (−) (−) bit 7 ICP1 リード / ライト→ (R/W) (0) 初期値→ アドレス:000058H 10 9 8 CMOD OTE1 12 11 OTE0 OTD1 OTD0 (−) (−) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 ICP0 5 ICE1 4 ICE0 3 2 − − 1 CST1 0 CST0 (R/W) (0) (R/W) (0) (R/W) (0) (−) (−) (R/W) (0) (R/W) (0) (−) (−) OCS1 OCS0 【bit15, bit14, bit13】未使用ビット 【bit12】CMOD 端子出力を許可した場合 (OTE1=1or 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 の一致によりレベルを反転します。 137 第 11 章 16 ビット入出力タイマ 【bit11, bit10】OTE1, OTE0 アウトプットコンペアの端子出力を許可するビットです。本ビットは初期値 "0" です。 < 注意事項 > 0 汎用ポートとして動作します。( 初期値 ) 1 アウトプットコンペア端子出力になります。 OTE1: アウトプットコンペア 1(OUT1) に対応 OTE0: アウトプットコンペア 0(OUT0) に対応 それらを出力として指定するときにはポート方向レジスタの対応ビットも "1" に セットしなければなりません。 【bit9, bit8】OTD1, OTD0 アウトプットコンペアの端子出力を許可した場合の端子出力レベルを変更するときに 使用します。コンペア端子出力の初期値は "0" となります。書込み時はコンペア動作 を停止してから行ってください。読出し時はアウトプットコンペア端子出力値が読め ます。 < 注意事項 > 0 コンペア端子出力を "0" にします ( 初期値 ) 1 コンペア端子出力を "1" にします OTD1: アウトプットコンペア 1 に対応 OTD0: アウトプットコンペア 0 に対応 【bit7, bit6】ICP1, ICP0 アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリーラン タイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1, ICE0) が許 可されているときに本ビットがセットされるとアウトプットコンペア割込みが発生し ます。本ビットは "0" 書込みによりクリアされ , "1" 書込みでは意味をもちません。リー ドモディファイ系命令では "1" が読めます。 < 注意事項 > 138 0 コンペア一致なし ( 初期値 ) 1 コンペア一致あり ICP1: アウトプットコンペア 1 に対応 ICP0: アウトプットコンペア 0 に対応 第 11 章 16 ビット入出力タイマ 【bit5, bit4】ICE1, ICE0 アウトプットコンペアの割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP0, ICP1) がセットされるとアウトプットコンペア割込みが発生します。 < 注意事項 > 0 アウトプットコンペア割込み禁止 ( 初期値 ) 1 アウトプットコンペア割込み許可 ICE1: アウトプットコンペア 1 に対応 ICE0: アウトプットコンペア 0 に対応 【bit3, bit2】未使用ビット 【bit1, bit0】CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。 0 コンペア動作禁止 ( 初期値 ) 1 コンペア動作許可 コンペア動作許可をする前にコンペアレジスタ値を設定してください。 < 注意事項 > CST1: アウトプットコンペア 1 に対応 CST0: アウトプットコンペア 0 に対応 アウトプットコンペアは 16 ビットフリーランタイマのクロックと同期させている ため 16 ビットフリーランタイマを停止させるとコンペア動作も停止します。 139 第 11 章 16 ビット入出力タイマ 16 ビットアウトプットコンペアの動作 11.4.3 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ リーランタイマとの値を比較して一致したら割込み要求フラグをセットするととも に , 出力レベルを反転することができます。 ■ コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は 0 とする ) 図 11.4-4 コンペアレジスタ 0, 1 を使用したときの出力波形例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペア レジスタ 0 値 コンペア レジスタ 1 値 BFFFH 7FFFH OUT0 OUT1 コンペア 0 割込み コンペア 1 割込み ■ 2 組のコンペアレジスタによる出力波形例 ( 出力の初期値は 0 とする ) 2 組のコンペアレジスタを使い , 出力レベルを変えることができます (CMOD=1 のとき ) 。 図 11.4-5 2 組のコンペアレジスタによる出力波形例 ( 出力の初期値は 0 とする ) カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペア レジスタ 0 値 コンペア レジスタ 1 値 OUT0 OUT1 コンペア 0 割込み コンペア 1 割込み 140 BFFFH 7FFFH コンペア 0 と 1 に対応 第 11 章 16 ビット入出力タイマ ■ アウトプットコンペアのタイミング アウトプットコンペアは , 16 ビットフリーランタイマと設定したコンペアレジスタの 値が一致したときにコンペア一致信号が発生して出力値を反転するとともに割込みを 発生することができます。コンペア一致時の出力反転タイミングはカウンタのカウン トタイミングに同期して行われます。 ● コンペアレジスタ書換え時のコンペア動作 コンペアレジスタ書換え時のカウンタ値とはコンペアしません。 図 11.4-6 コンペアレジスタ書換え時のコンペア動作 カウンタ値 N コンペアレジスタ 0 値 N+1N+2N+3 一致信号は発生しない。 M N+1 コンペアレジスタ 0 ライト コンペアレジスタ 1 値 N+3 M コンペアレジスタ 1 ライト コンペア 0 停止 コンペア 1 停止 ● アウトプットコンペアの割込みタイミング 図 11.4-7 アウトプットコンペアの割込みタイミング φ N カウンタ値 N+1 コンペア レジスタ値 N コンペア一致 割込み ● アウトプットコンペアの出力端子変化タイミング 図 11.4-8 アウトプットコンペアの出力端子変化タイミング カウンタ値 コンペア レジスタ値 NN+1 N+1 N N コンペア一致 信号 端子出力 141 第 11 章 16 ビット入出力タイマ インプットキャプチャ 11.5 インプットキャプチャは外部から入力された信号の立上りエッジ , 立下りエッジま たは両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保 持する機能を持っています。また , エッジ検出時に割込みを発生することができま す。インプットキャプチャは , インプットキャプチャデータレジスタ , 制御ステータ スレジスタで構成されています。 ■ インプットキャプチャ 各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。 ● 外部入力の有効エッジを 3 種類から選択可能です。 • 立上りエッジ ( ↑ ) • 立下りエッジ ( ↓ ) • 両エッジ ( ↑↓ ) ● 外部入力の有効エッジを検出したときに割込みを発生することができます。 ■ インプットキャプチャのブロックダイヤグラム 図 11.5-1 に , インプットキャプチャのブロックダイヤグラムを示します。 図 11.5-1 インプットキャプチャの全体ブロックダイヤグラム キャプチャデータレジスタ 0 EG11 EG10 EG01 16 ビットタイマカウンタ値 (T15 ∼ T00) バ ス IN0 エッジ検出 エッジ検出 キャプチャデータレジスタ 1 ICP1 ICP0 ICE1 EG00 IN1 ICE0 割込み 割込み 142 第 11 章 16 ビット入出力タイマ 11.5.1 インプットキャプチャのレジスタ インプットキャプチャのレジスタは , 次の 2 つがあり , 対応した外部端子入力波形の 有効エッジを検出したとき 16 ビットフリーランタイマ値を保持するレジスタです ( ワードアクセスしてください。書込みはできません ) 。 • インプットキャプチャデータレジスタ (IPCP0/1) • インプットキャプチャ制御ステータスレジスタ (ICS0/1) ■ インプットキャプチャデータレジスタ (IPCP0/1) 図 11.5-2 インプットキャプチャデータレジスタ (IPCP0/1) bit アドレス:001921H 001923H リード / ライト→ 初期値→ bit アドレス:001920H 001922H リード / ライト→ 初期値→ 15 CP15 14 CP14 13 CP13 12 CP12 11 CP11 10 CP10 9 CP09 8 CP08 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) 7 CP07 6 CP06 5 CP05 4 CP04 3 CP03 2 CP02 1 CP01 0 CP00 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) IPCP0/ IPCP1 IPCP0/ IPCP1 ■ インプットキャプチャ制御ステータスレジスタ (ICS0/1) 図 11.5-3 インプットキャプチャ制御ステータスレジスタ (ICS0/1) bit 7 ICP1 6 ICP0 5 ICE1 4 ICE0 3 EG11 2 EG10 1 EG01 0 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) アドレス:000054H ICS0/ICS1 【bit7, bit6】ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると本 ビットを "1" にセットします。割込み許可ビット (ICE0, ICE1) がセットされていると有 効エッジを検出することにより割込みを発生することができます。 本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リード モディファイライト系命令では "1" が読めます。 < 注意事項 > 0 有効エッジ検出なし ( 初期値 ) 1 有効エッジ検出あり ICP0: インプットキャプチャ 0 に対応 ICP1: インプットキャプチャ 1 に対応 143 第 11 章 16 ビット入出力タイマ 【bit5, bit4】ICE1, ICE0 インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP0, ICP1) がセットされるとインプットキャプチャ割込みが発生します。 < 注意事項 > 0 割込み禁止 ( 初期値 ) 1 割込み許可 ICE0: インプットキャプチャ 0 に対応 ICE1: インプットキャプチャ 1 に対応 【bit3, bit2, bit1, bit0】EG11, EG10, EG01, EG00 外部入力の有効エッジ極性を指定します。インプットキャプチャ動作許可も兼用して います。 < 注意事項 > 144 EG11 EG01 EG10 EG00 0 0 エッジ検出なし ( 停止状態 ) ( 初期値 ) 0 1 立上りエッジ検出↑ 1 0 立下りエッジ検出↓ 1 1 両エッジ検出↑↓ エッジ検出極性 EG01, EG00: インプットキャプチャ 0 に対応 EG11, EG10: インプットキャプチャ 1 に対応 第 11 章 16 ビット入出力タイマ 11.5.2 16 ビットインプットキャプチャの動作 16 ビットインプットキャプチャは設定された有効エッジを検出すると 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することとが できます。 ■ インプットキャプチャの取り込みタイミング例 • キャプチャ 0= 立上りエッジ • キャプチャ 1= 立下りエッジ • キャプチャ例 = 両エッジ ( 例として ) 図 11.5-4 インプットキャプチャの取り込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット IN0 IN1 IN 例 キャプチャ 0 不定 キャプチャ 1 不定 キャプチャ 例 不定 3FFFH 7FFFH BFFFH 3FFFH キャプチャ 0 割込み キャプチャ 1 割込み キャプチャ割込み 145 第 11 章 16 ビット入出力タイマ ■ インプットキャプチャ入力タイミング ● 入力信号に対するキャプチャタイミング 図 11.5-5 入力信号に対するキャプチャタイミング φ カウンタ値 インプット キャプチャ入力 N N+1 有効エッジ キャプチャ信号 キャプチャ レジスタ 割込み 146 N+1 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) この章では , 16 ビットリロードタイマ ( イベント カウント機能付 ) の機能と動作について説明しま す。 12.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 12.2 16 ビットリロードタイマのレジスタ 12.3 16 ビットリロードタイマの内部クロック動作と外部ク ロック動作 12.4 16 ビットリロードタイマのアンダフロー動作 12.5 16 ビットリロードタイマの出力端子機能 12.6 カウンタの動作状態 147 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 12.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 16 ビットリロードタイマ 1 は , 16 ビットのダウンカウンタ , 16 ビットのリロードレ ジスタ , 入力端子 1 本 (TIN), 出力端子 1 本 (TOT), 制御レジスタで構成されていま す。入力クロックとして内部クロック 3 種類と外部クロックを選択できます。 ■ 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 出力端子 (TOT) には , リロードモード時にはトグル出力波形を出力し , ワンショット モード時にはカウント中を示す矩形波を出力します。入力端子 (TIN) は , イベントカウ ントモード時にイベント入力となり , 内部クロックモード時にはトリガ入力または ゲート入力に使用することができます。 MB90590 シリーズの 16 ビットリロードタイマは 2 つですが , TIN 入力および TOT 出 力外部端子はこれらの 2 つのタイマ間で共有されています。 ■ インテリジェント I/O サービス (EI2OS) 機能と割込み 本タイマは EI2OS 対応の回路を有しています。このため , 本タイマのアンダフローに より EI2OS を起動させることができます。本製品では , 2 つのタイマすべてが EI2OS で 使用することができますが , 割込みコントローラ内の割込み制御レジスタ (ICRx) 1 つ に対して 2 つのタイマ (ch.0+ch.1) を接続してありますので , ch.0 と ch.1 を別の用途の EI2OS に割り当てることはできません。また , 2 つのタイマはそれぞれ別の割込みベク タを持っていますので , 割込みは同時に 2 つの用途に使用できますが , ch.0 と ch.1 の割 込み制御レジスタが上記共有関係にありますので , 割込みレベルは組合せのチャネル で同一のレベルとなります。 148 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) ■ 16 ビットリロードタイマのブロックダイヤグラム 図 12.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 図 12.1-1 16 ビットリロードタイマのブロックダイヤグラム 16 16 ビットリロードレジスタ 8 リロード RELD UF 16 ビットダウンカウンタ OUTE 16 F2MC-16LX バス OUTL 2 OUT CTL. GATE INTE UF CSL1 クロックセレクタ CNTE CSL0 TRG リトリガ IRQ クリア EI2OSCLR 2 出力許可 IN CTL EXCK φ 21 φ 23 φ 25 3 プリスケーラ クリア MOD2 MOD1 周辺クロック ポート (TIN) MOD0 ポート (TOT) UART ボーレート (ch.0) A/DC (ch.1) 3 149 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 16 ビットリロードタイマのレジスタ 12.2 16 ビットリロードタイマのレジスタには , 次の 2 種類があります。 • タイマ制御レジスタ • 16 ビットタイマレジスタ /16 ビットリロードレジスタ ■ 16 ビットリロードタイマのレジスタ 図 12.2-1 16 ビットリロードタイマのレジスタ タイマ制御ステータスレジスタ上位 15 bit 14 13 12 アドレス:ch.0 000051 H ch.1 000053 H リード / ライト 初期値 ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) 11 10 9 8 CSL1 CSL0 MOD2 MOD1 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) タイマ制御ステータスレジスタ下位 7 6 5 4 MOD0 OUTE OUTL RELD INTE UF CNTE TRG (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 10 9 8 bit アドレス: ch.0 000050 H ch.1 000052 H リード / ライト 初期値 3 2 1 0 TMCSR 16 ビットタイマレジスタ上位 /16 ビットリロードレジスタ上位 bit 15 14 13 (R/W) (X) (R/W) (X) 12 11 アドレス: ch.0 001941 H ch.1 001943 H リード / ライト 初期値 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 16 ビットタイマレジスタ下位 /16 ビットリロードレジスタ下位 bit アドレス: 6 5 4 3 2 1 ch.0 001940 H ch.1 001942 H リード / ライト 初期値 150 7 0 TMR/ TMRLR (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 12.2.1 タイマ制御ステータスレジスタ (TMCSR) 16 ビットタイマの動作モードおよび割込みの制御をします。UF, CNTE, TRG ビット 以外のビットの書換えは , CNTE=0 のときに行うようにしてください。 ■ タイマ制御ステータスレジスタ (TMCSR) の配置 図 12.2-2 タイマ制御ステータスレジスタ (TMCSR) の配置 タイマ制御ステータスレジスタ上位 15 bit 14 13 12 11 10 9 8 ch.0 000051 H アドレス:ch.1 000053 H リード / ライト 初期値 ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) CSL1 CSL0 MOD2 MOD1 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) タイマ制御ステータスレジスタ下位 7 6 5 MOD0 OUTE OUTL RELD INTE UF CNTE TRG (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit アドレス:ch.0 000050 H ch.1 000052 H リード / ライト 初期値 4 3 2 1 0 TMCSR ■ タイマ制御ステータスレジスタ (TMCSR) の内容 【bit11, bit10】CSL1, CSL0(ClockSeLect1, 0) カウントクロックセレクトビットです。選択されるクロックソースを , 表 12.2-1 に示 します。 表 12.2-1 CSL ビット設定クロックソース クロックソース ( マシンサイクル φ =16MHz) CSL1 CSL0 0 0 φ/21(0.125µs) 0 1 φ/23(0.5µs) 1 0 φ/25(2.0µs) 1 1 外部イベントカウントモード 【bit9, bit8, bit7】MOD2, MOD1, MOD0 動作モードおよび入出力端子の機能を設定するビットです。 MOD2 ビットは , 入出力の機能を選択するビットです。"0" の場合 , 入力端子はトリガ 入力端子となり , 有効エッジが入力されるとリロードレジスタの内容をカウンタへ ロードし , カウント動作を継続します。"1" の場合 , ゲートカウンタモードになり , 入 力端子はゲート入力となり , 有効レベルが入力されている間のみカウントをします。 MOD1, MOD0 ビットは , 各モードにおける端子の機能の設定を行います。MOD2, MOD1, MOD0 ビットの設定を表 12.2-2 および表 12.2-3 に示します。 151 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 表 12.2-2 MOD2, MOD1, MOD0 ビットの設定方法 (1) MOD2 MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 0 トリガ禁止 ― 0 0 1 トリガ入力 立上りエッジ 0 1 0 ↑ 立下りエッジ 0 1 1 ↑ 両エッジ 1 × 0 ゲート入力 "L" レベル 1 × 1 ↑ "H" レベル 内部クロックモード時 (CSL0, CSL1=00, 01, 10) 表 12.2-3 MOD2, MOD1, MOD0 ビットの設定方法 (2) MOD2 × MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 ― ― 0 1 トリガ入力 立上りエッジ 1 0 ↑ 立下りエッジ 1 1 ↑ 両エッジ • イベントカウントモード時 (CSL0, CSL1=11) • 表中の×は , 任意の値 【bit6】OUTE 出力許可ビットです。"0" のとき TOT 端子は汎用ポートになり , "1" のとき TOT 端子は タイマ出力端子になります。出力波形はリロードモード時トグル出力となり , ワン ショットモード時はカウンタ中を示す矩形波出力になります。 【bit5】OUTL TOT 端子の出力レベルを設定するビットです。 表 12.2-4 OUTE, RELD, OUTL の設定方法 152 OUTE RELD OUTL 0 × × 汎用ポート 1 0 0 カウント中 "H" の矩形波 1 0 1 カウント中 "L" の矩形波 1 1 0 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 【bit4】RELD(REloaD) リロード動作を許可するビットです。"1" のときはリロードモードになり , カウンタの 値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへ ロードしてカウント動作を続けます。"0" のときは単発動作モードとなり , カウンタの 値が 0000H → FFFFH へのアンダフローによりカウント動作を停止します。 【bit3】INTE(Interrupt Enable) タイマ割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を 発生します。"0" のときは UF ビットが "1" であっても割込み要求を発生しません。 【bit2】UF(Underflow) タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフローに より "1" にセットされます。"0" の書込みまたはインテリジェント I/O サービスによっ てクリアされます。このビットへの "1" 書込みは , 意味がありません。リードモディ ファイライト系命令における読出し時には , "1" が読み出されます。 【bit1】CNTE(CouNT enable) タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動トリガ 待ち状態になります。"0" 書込みによりカウント動作は停止します。 【bit0】TRG(Trigger) ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。"0" 書込み 動作は , 意味を持ちません。読出し値は , 常に "0" です。このレジスタによるトリガ入 力は , CNTE="1" のときのみ有効となります。CNTE="0" のときには , なにもおこりま せん。 153 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 12.2.2 16 ビットタイマレジスタ (TMR)/16 ビットリロード レジスタ (TMRLR) のレジスタ配置 16 ビットタイマレジスタ (TMR) ( 書込み時 ) は , 16 ビットタイマのカウント値を読 み出すことができるレジスタです。初期値は不定です。このレジスタの読出しは , 必ずワード転送命令で行ってください。 16 ビットリロードレジスタ (TMRLR) ( 読出し時 ) は , カウントの初期値を保持して おくレジスタです。初期値は不定です。このレジスタへの書込みは , 必ずワード転 送命令で行ってください。 ■ 16ビットタイマレジスタ(TMR)/16ビットリロードレジスタ(TMRLR)のレジスタ配 置 図 12.2-3 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) のレジスタ配置 16 ビットタイマレジスタ上位 /16 ビットリロードレジスタ上位 bit 15 14 13 (R/W) (X) (R/W) (X) 12 11 10 9 8 アドレス:ch.0 001941 H ch.1 001943 H リード / ライト 初期値 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 16 ビットタイマレジスタ下位 /16 ビットリロードレジスタ下位 bit 7 6 5 4 3 2 1 アドレス:ch.0 001940 H TMR/ TMRLR ch.1 001942 H リード / ライト 初期値 154 0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 12.3 16 ビットリロードタイマの内部クロック動作と外部ク ロック動作 内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマ シンクロックの 21, 23, 25 分周のクロックから選択することができます。外部入力端 子は , レジスタの設定により , トリガ入力またはゲート入力にすることができます。 外部クロックをセレクトすると TIN 端子は , 外部イベント入力端子となりレジスタ で設定された有効エッジをカウントします。 ■ 16 ビットリロードタイマの内部クロック動作 カウント許可と同時にカウント動作を開始したい場合は , 制御レジスタの CNTE ビッ トと TRG ビットの両方に "1" を書き込んでください。 TRG ビットによるトリガ入力は , 16 ビットリロードタイマが起動状態のとき (CNTE="1") 動作モードにかかわらず常に 有効です。 図 12.3-1 に , カウンタの起動およびカウンタの動作について示します。カウンタスター トのトリガが入力されてからリロードレジスタのデータがカウンタへロードされるま でに , T (T: マシンサイクル ) の時間がかかります。 図 12.3-1 16 ビットリロードタイマのカウンタの起動および動作 カウント クロック カウンタ リロードデータ -1-1 -1 データロード CNTE( ビット ) TRG( ビット ) T ■ 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) クロックソースとして , 内部クロックを選択した場合 , TIN 端子はトリガ入力または ゲート入力として使用することができます。トリガ入力として使用した場合 , 有効エッ ジが入力されるとリロードレジスタの内容をカウンタにロードして , 内部プリスケー ラをクリアした後 , カウント動作を開始します。 TIN は , 2・T (T はマシンサイクル ) 以上のパルスを入力してください。図 12.3-2 に , ト リガ入力の動作を示します。 155 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 図 12.3-2 16 ビットリロードタイマのトリガ入力の動作 カウント クロック 立上りエッジ検出時 TIN プリスケーラ クリア カウンタ リロードデータ 0000H -1-1 -1 ロード 2T~ 2.5T ゲート入力として使用する場合 , 制御レジスタの MOD0 ビットにより設定される有効 レベルが , TIN 端子から入力されている間のみカウントをします。このときカウントク ロックは , 止まらずに動き続けます。ゲートモード時のソフトウェアトリガは , ゲート レベルにかかわらず可能です。TIN 端子のパルス幅は , 2・T (T はマシンサイクル ) 以 上にしてください。図 12.3-3 に , ゲート入力の動作を示します。 図 12.3-3 16 ビットリロードタイマのゲート入力の動作 カウント クロック TIN MOD0=:"1" とした場合 ( 入力 "H" の間カウント ) -1-1 カウンタ -1 ■ 外部イベントカウント 外部クロックをセレクトすると TIN 端子は , 外部イベント入力端子となりレジスタで 設定された有効エッジをカウントします。TIN 端子のパルス幅は , 4・T (T はマシンサ イクル ) 以上にしてください。 156 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 12.4 16 ビットリロードタイマのアンダフロー動作 16 ビットリロードタイマにより , カウンタ値が 0000H から FFFFH に変化したとき にアンダフローが定義されますので , ( リロードレジスタ設定 +1) カウントの後でア ンダフローが生じます。 ■ 16 ビットリロードタイマのアンダフロー動作 アンダフロー発生時 , 制御レジスタの RELD ビットが "1" のときリロードレジスタの内 容をカウンタへロードしてカウント動作を継続し , "0" のときカウンタを FFFFH で停止 させます。 アンダフローが発生すると , 制御レジスタの UF ビットをセットし , このときに INTE ビットが "1" であると割込み要求を発生します。 図 12.4-1 に , アンダフロー発生時の動作を示します。 図 12.4-1 16 ビットリロードタイマのアンダフロー動作 カウント クロック カウンタ 0000H リロードデータ -1-1 -1 データロード アンダフロー セット [RELD=1] カウント クロック カウンタ 0000H FFFFH アンダフロー セット [RELD=0] 157 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 12.5 16 ビットリロードタイマの出力端子機能 TOT 端子はリロードモード時には , アンダフローにより反転するトグル出力として , ワンショットモード時には , カウント中を示すパルス出力として機能します。 ■ 16 ビットリロードタイマの出力端子機能 16 ビットリロードタイマの出力極性は , レジスタの OUTL ビットにより設定でき OUTL="0" のときトグル出力は , 初期値が "0" で , ワンショットパルス出力は , カウン ト中 "1" を出力します。OUTL="1" にすると出力波形は , 反転します。図 12.5-1 と図 12.5-2 に出力端子機能を示します。 図 12.5-1 16 ビットリロードタイマの出力端子機能 (1) カウント開始 アンダフロー TOT OUTL=1 のときは反転 汎用ポート CNTE 起動トリガ [RELD=1, OUTL=0] 図 12.5-2 16 ビットリロードタイマの出力端子機能 (2) アンダフロー TOT 汎用ポート OUTL=1 のとき は反転 CNTE 起動トリガ 起動トリガ待ち状態 [RELD=0, OUTL=0] 158 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 12.6 カウンタの動作状態 カウンタの状態は , 制御レジスタの CNTE ビットと内部信号の WAIT 信号によって 決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ) , CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1, WAIT=0 の動作状態 (RUN 状態 ) があります。 ■ カウンタの動作状態 図 12.6-1 に , 各状態の遷移を示します。 図 12.6-1 カウンタの状態遷移 リセット ハードウェアによる状態遷移 STOP CNTE=0, WAIT=1 レジスタアクセスによる状態遷移 TIN:入力禁止 TOT:汎用ポート カウンタ:停止時の値を保持 リセット直後は不定 CNTE=0 CNTE=0 CNTE=1 TRG=1 CNTE=1 TRG=0 WAIT RUN CNTE=1, WAIT=1 CNTE=1, WAIT=0 TIN :トリガ入力のみ有効 TIN :TIN として機能 TOT:初期値出力 TOT:TOT として機能 カウンタ:停止時の値を保持 リセット直後ロード するまでは不定 RELD·UF カウンタ:動作 TRG=1 TRG=1 RELD·UF LOAD CNTE=1, WAIT=0 リロードレジスタの内容を カウンタへロード ロード終了 159 第 12 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 160 第 13 章 時計タイマ この章では , 時計タイマの機能と動作について説明 します。 13.1 時計タイマの概要 13.2 時計タイマのレジスタ 161 第 13 章 時計タイマ 13.1 時計タイマの概要 時計タイマは , タイマ制御レジスタ , サブ秒レジスタ , 秒 / 分 / 時間レジスタ , 1/2 ク ロック分周器 , 21 ビットプリスケーラおよび秒 / 分 / 時間カウンタから構成されてい ます。MCU の発振周波数は , 所定の時計タイマの動作を行うために , 4MHz である ことが前提になっています。時計タイマはリアルワールドタイマとして動作してリ アルワールド時間情報を提供します。 ■ 時計タイマのブロックダイヤグラム 図 13.1-1 に , 時計タイマのブロックダイヤグラムを示します。 図 13.1-1 時計タイマのブロックダイヤグラム 発振クロック 1/2 クロック 分周器 OE 21 ビットプリスケーラ OE WOT CO EN サブ秒レジスタ UPDT ST 秒カウンタ CI EN LOAD CO 6 ビット INTE0 INT0 分カウンタ INTE1 時間カウンタ CO 6 ビット 秒 / 分 / 時間レジスタ INT1 INTE2 INT2 CO 5 ビット INT3 INT3 IRQ 162 第 13 章 時計タイマ 13.2 時計タイマのレジスタ 時計タイマのレジスタには , 次の 5 種類があります。 • タイマ制御レジスタ • サブ秒レジスタ • 秒レジスタ • 分レジスタ • 時間レジスタ ■ 時計タイマのレジスタ 図 13.2-1 時計タイマのレジスタ (1/2) タイマ制御レジスタ bit アドレス : 000060H リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 予約 (R/W) (0) 予約 (R/W) (0) 予約 (R/W) (0) − (−) (−) − (−) (−) UPDT (R/W) (0) OE (R/W) (0) ST (R/W) (0) 15 14 13 12 11 10 9 8 WTCR タイマ制御レジスタ bit アドレス : 000061H リード / ライト→ 初期値→ INTE3 (R/W) (0) INT3 INTE2 (R/W) (R/W) (0) (0) INT2 INTE1 (R/W) (R/W) (0) (0) INT1 INTE0 (R/W) (R/W) (0) (0) INT0 (R/W) (0) WTCR サブ秒レジスタ bit アドレス : 00194AH リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 D15 (R/W) (X) D14 (R/W) (X) D13 (R/W) (X) D12 (R/W) (X) D11 (R/W) (X) D10 (R/W) (X) D9 (R/W) (X) D8 (R/W) (X) 7 6 5 4 3 2 1 0 − (−) (−) D20 (R/W) (X) D19 (R/W) (X) D18 (R/W) (X) D17 (R/W) (X) D16 (R/W) (X) WTBR サブ秒レジスタ bit アドレス : 00194BH リード / ライト→ 初期値→ WTBR サブ秒レジスタ bit アドレス : 00194CH リード / ライト→ 初期値→ − (−) (−) − (−) (−) WTBR 163 第 13 章 時計タイマ 図 13.2-1 時計タイマのレジスタ (2/2) 秒レジスタ bit アドレス : 00194DH リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 − (−) (−) − (−) (−) S5 (R/W) (0) S4 (R/W) (0) S3 (R/W) (0) S2 (R/W) (0) S1 (R/W) (0) S0 (R/W) (0) 7 6 5 4 3 2 1 0 − (−) (−) − (−) (−) M5 (R/W) (0) M4 (R/W) (0) M3 (R/W) (0) M2 (R/W) (0) M1 (R/W) (0) M0 (R/W) (0) 15 14 13 12 11 10 9 8 − (−) (−) − (−) (−) − (−) (−) H4 H3 H2 H1 H0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) WTSR 分レジスタ bit アドレス : 00194EH リード / ライト→ 初期値→ WTMR 時間レジスタ bit アドレス : 00194FH リード / ライト→ 初期値→ 164 WTHR 第 13 章 時計タイマ 13.2.1 タイマ制御レジスタ (WTCR) タイマ制御レジスタ (WTCR) は時計タイマの起動・停止 , 割込みの制御や外部出力 端子の設定などを行います。 ■ タイマ制御レジスタ (WTCR) 図 13.2-2 タイマ制御レジスタ (WTCR) タイマ制御レジスタ bit アドレス : 000060H リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 OE (R/W) (0) ST (R/W) (0) 9 8 INTE0 (R/W) (0) INT0 (R/W) (0) 予約 (R/W) (0) 予約 (R/W) (0) 予約 (R/W) (0) − (−) (−) − (−) (−) UPDT (R/W) (0) 15 14 13 12 11 10 INTE3 (R/W) (0) INT3 (R/W) (0) WTCR タイマ制御レジスタ bit アドレス : 000061H リード / ライト→ 初期値→ INTE2 INT2 (R/W) (R/W) (0) (0) INTE1 INT1 (R/W) (R/W) (0) (0) WTCR 【bit15 ∼ bit8】INT3 ∼ INT0, INTE3 ∼ INTE0: 割込みフラグおよび割込みイネーブル フラグ INT0 ∼ INT3 は割込みフラグです。これらのフラグは秒カウンタ , 分カウンタおよび 時間カウンタがそれぞれオーバフローしたときにセットされます。もし対応する INTE ビットが "1" であるときに INT ビットがセットされたとすれば , 時計タイマは割込みの 信号を発します。これらのフラグは秒 / 分 / 時間 / 日ごとに割込みの信号を発するよう にされています。 INT ビットに "0" を書込むと各フラグはクリアされますが , "1" を書込んでも効果はあ りません。INT ビットに対して何らかのリードモディファイライト系命令を実行する と "1" がリードされることになります。 【bit7 ∼ bit5】予約ビット 予約ビットです。本ビットには必ず "0" を書き込んでください。 【bit2】UPDT: 書換えビット UPDT ビットは秒 / 分 / 時間カウンタ値を変更するために用意されたものです。 カウンタ値を変更するためには変更データを秒 / 分 / 時間レジスタに書き込んでくださ い。次に UPDT ビットを "1" にセットしてください。レジスタ値は 21 ビットプリス ケーラからの次の CO 信号時にカウンタにロードされます。UPDT ビットはカウンタ値 が書換えられたときにハードウェアによりリセットされます。ただし , ソフトウェアに よるセット動作と上記ハードウェアによるリセット動作が同時に生じた場合には UPDT ビットはリセットされません。 UPDT ビットに "0" を書き込んでも効果はなく , リードモディファイライト系命令は "0" をリードする結果となります。 < 注意事項 > 秒カウンタが , 59 秒を示しているとき , UPDT ビットをセットしてもカウンタ値 は , 変更されず , このビットはクリアされます。このため , ST ビットによりカウン タ値を変更することをおすすめします。 165 第 13 章 時計タイマ 【bit1】OE: 出力許可ビット OE ビットが "1" にセットされたとき WOT 外部端子は時計タイマ用の出力として機能 します。その他の場合にそれは汎用 I/O またはほかのペリフェラルブロックとして使 用することができます。 【bit0】ST: 開始ビット ST ビットが "1" にセットされたときに時計タイマは秒 / 分 / 時間値を各レジスタから ロードしてその動作を開始します。それが "0" にリセットされたときにすべてのカウ ンタおよびプリスケーラは "0" にリセットされて停止します。 166 第 13 章 時計タイマ サブ秒レジスタ (WTBR) 13.2.2 サブ秒レジスタ (WTBR) は , 発振クロックを分周する 21 ビットプリスケーラのリ ロード値を格納します。リロード値は通常 21 ビットプリスケーラの出力が正確に 1 秒周期となるように設定されます。サブ秒レジスタはリセットで初期化されません が , プリスケーラは初期化されます。 ■ サブ秒レジスタ (WTBR) 図 13.2-3 サブ秒レジスタ (WTBR) サブ秒レジスタ bit アドレス : 00194AH リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 D7 (R/W) (X) D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) 15 14 13 12 11 10 9 8 D15 (R/W) (X) D14 (R/W) (X) D13 (R/W) (X) D12 (R/W) (X) D11 (R/W) (X) D10 (R/W) (X) D9 (R/W) (X) D8 (R/W) (X) 7 6 5 4 3 2 1 0 − (−) (−) − (−) (−) − (−) (−) D20 D19 D18 D17 D16 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) WTBR サブ秒レジスタ bit アドレス : 00194BH リード / ライト→ 初期値→ WTBR サブ秒レジスタ bit アドレス : 00194CH リード / ライト→ 初期値→ WTBR 【bit20 ∼ bit0】D20 ∼ D0 サブ秒レジスタは 21 ビットプリスケーラに対するリロード値を記憶するものです。こ の値はリロードカウンタが "0" に達した後にリロードされます。すべての 3 バイトを 変更するときにはリロード動作が書込み命令同士の間に実行されないように注意して ください。そうしないと 21 ビットプリスケーラは新たなデータバイトと古いデータバ イトを組み合せた誤った値をロードしてしまいます。普通はサブ秒レジスタを開始 ビットが "0" の間に書き換えることを推奨します。もしサブ秒レジスタが "0" にセット されれば 21 ビットプリスケーラは全く動作しません。 入力クロック周波数は常に発振クロック周波数と等しくなるようにされており , 4MHz が意図されています。21 ビットプリスケーラのリロード値は典型的には 16 進数で 1E847F であり , これは "27*56-1" に等しくなります。このためこれらの 2 つのプリス ケーラの組合せにより厳密に 1 秒のクロック信号が与えられることになります。 167 第 13 章 時計タイマ 13.2.3 秒 / 分 / 時間レジスタ (WTSR/WTMR/WTHR) 秒 / 分 / 時間レジスタ (WTSR/WTMR/WTHR) は時間情報を記憶します。それは秒 , 分および時間をバイナリで表示します。 これらのレジスタを読み取るとそれぞれのカウンタ値が読み出されます。しかしこ れらのレジスタは書込みを伴うものであり , UPDT ビットが "1" にセットされた後は 書込みデータが各カウンタ内にロードされます。これらのレジスタおよびカウンタ はリセットにて初期化されます。 ■ 秒 / 分 / 時間レジスタ (WTSR/WTMR/WTHR) 図 13.2-4 秒 / 分 / 時間レジスタ (WTSR/WTMR/WTHR) 秒レジスタ bit アドレス : 00194DH リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 − (−) (−) − (−) (−) S5 (R/W) (0) S4 (R/W) (0) S3 (R/W) (0) S2 (R/W) (0) S1 (R/W) (0) S0 (R/W) (0) 7 6 5 4 3 2 1 0 − (−) (−) − (−) (−) M5 M4 M3 M2 M1 M0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 15 14 13 12 11 10 9 8 − (−) (−) − (−) (−) − (−) (−) H4 (R/W) (0) H3 (R/W) (0) H2 (R/W) (0) H1 (R/W) (0) H0 (R/W) (0) WTSR 分レジスタ bit アドレス : 00194EH リード / ライト→ 初期値→ WTMR 時間レジスタ bit アドレス : 00194FH リード / ライト→ 初期値→ WTHR 秒 / 分 / 時間レジスタには , 3 つのバイトレジスタがありますので , レジスタから得ら れる値が一貫していることを確認してください。 すなわち "1 時間 59 分 59 秒 " という値が得られたとすると , それは "0 時間 59 分 59 秒 " または "1 時間 0 分 0 秒 " または "2 時間 0 分 0 秒 " かも知れません。 同様に , MCU の動作クロックが発振クロックの半分の場合 (PLL が停止したとき ) , こ れらのレジスタからのリード値は誤っている可能性があります。これは , 読出し動作と カウンタ動作の同期によるものです。このため , 使用する上では秒割込みで読出し命令 をトリガすることを推奨いたします。 168 第 14 章 8/16 ビット PPG この章では , 8/16 ビット PPG の機能と概要につい て説明します。 14.1 8/16 ビット PPG の概要 14.2 8/16 ビット PPG のブロックダイヤグラム 14.3 8/16 ビット PPG のレジスタ 14.4 8/16 ビット PPG の動作 14.5 8/16 ビット PPG のカウントクロックの選択 14.6 8/16 ビット PPG のパルスの端子出力の制御 14.7 8/16 ビット PPG の割込み 14.8 8/16 ビット PPG の各ハードウェアの初期値 169 第 14 章 8/16 ビット PPG 14.1 8/16 ビット PPG の概要 8/16 ビット PPG は , ハードウェアとして , 8 ビットダウンカウンタ 2 個 , 8 ビット リロードレジスタ 4 個 , 16 ビット制御レジスタ 1 個 , 外部パルス出力端子 2 本およ び割込み出力 2 本を有し , これらにより以下の機能を実現します。 ■ 8/16 ビット PPG の機能 ● 8 ビット PPG 出力 2 チャネル独立動作モード 2 チャネルの独立した PPG 出力動作が可能です。 ● 16 ビット PPG 出力動作モード 1 チャネルの 16 ビットの PPG 出力動作が可能です。 ● 8 ビットプリスケーラ +8 ビット PPG 出力動作モード ch.0 の出力を ch.1 のクロック入力とすることにより , 任意周期の 8 ビット PPG 出力動 作が可能です。 ● PPG 出力動作 任意周期・デューティ比のパルス波を出力します。外付け回路により D/A コンバータ としても使用可能です。 PPG の ch.0 と ch.1 を合わせて 1 ユニットとよびます。 MB90590 シリーズには PPG が 6 ユニットあります。次節では PPG の ch.0 と ch.1 の機 能についてのみ記述します。残りの PPG も同じ機能を持ち , レジスタアドレスについ ては I/O マップに記しています。 PPG の ch.0 を PPG (ch.0), と ch.1 を PPG (ch.1) と表します。 170 第 14 章 8/16 ビット PPG 14.2 8/16 ビット PPG のブロックダイヤグラム 図 14.2-1 に , 8 ビット PPG(ch.0) のブロックダイヤグラムを , 図 14.2-2 に , 8 ビッ ト PPG(ch.1) のブロックダイヤグラムを示します。 ■ 8/16 ビット PPG のブロックダイヤグラム 図 14.2-1 8 ビット PPG(ch.0) のブロックダイヤグラム 周辺クロック 16 分周 周辺クロック 8 分周 周辺クロック 4 分周 周辺クロック 2 分周 周辺クロック PPG00 出力ラッチ 反転 クリア PEN0 カウント クロック選択 タイムベースカウンタ の出力メインクロック の 512 分周 L/H セレクト PCNT ( ダウンカウンタ ) MB90590 シリーズでは , この IRQ 信号は OR 論理により PPG (ch.1) の IRQ 信号とマージされます。 S RQ IRQ リロード ch.1- ボロー L/H セレクタ P RLL0 PRLBH0 PIE0 PRLH0 PUF0 "L" 側データバス "H" 側データバス PPGC0 ( 動作モード制御 ) ch.0 の PPG 出力信号は外部端子に接続していません。 171 第 14 章 8/16 ビット PPG 図 14.2-2 8 ビット PPG(ch.1) のブロックダイヤグラム PPG0 端子出力許可 PPG0 端子 周辺クロック 16 分周 周辺クロック 8 分周 周辺クロック 4 分周 周辺クロック 2 分周 周辺クロック MB90590 シリーズでは , この端子は 「PPG0」外部端子に接続しています。 PPG1 出力ラッチ 反転 カウント クロック選択 ch.0- ボロー クリア PEN1 S RQ PCNT ( ダウンカウンタ ) タイムベースカ ウンタの出力メ インクロックの 512 分周 L/H セレクト MB90590 シリーズでは , この IRQ 信号は OR 論理により PPG (ch.0) の IRQ 信号とマージされます。 IRQ リロード L/H セレクタ PRLL1 PRLBH1 PIE1 PRLH1 PUF1 L 側データバス H 側データバス PPGC1 ( 動作モード制御 ) 図 14.2-3 PPG モジュールとユニット番号 , および外部端子の関係 PPG ユニット 0 PPG (ch.0), PPG (ch.1) PPG0 PPG ユニット 1 PPG (ch.2), PPG (ch.3) PPG1 PPG ユニット 2 PPG (ch.4), PPG (ch.5) PPG2 PPG ユニット 3 PPG (ch.6), PPG (ch.7) PPG3 PPG ユニット 4 PPG (ch.8), PPG (ch.9) PPG4 PPG ユニット 5 PPG (ch.A), PPG (ch.B) PPG5 外部端子 172 第 14 章 8/16 ビット PPG 14.3 8/16 ビット PPG のレジスタ 8/16 ビット PPG のレジスタには , 次の 5 つがあります。 • PPG0 動作モード制御レジスタ • PPG1 動作モード制御レジスタ • PPG0/1 クロック選択レジスタ • リロードレジスタ H • リロードレジスタ L ■ 8/16 ビット PPG のレジスタ 図 14.3-1 8/16 ビット PPG のレジスタ PPG0 動作モード制御レジスタ 7 6 5 4 3 2 1 0 PEN0 − PE00 PIE0 PUF0 − − 予約 (−) (−) (R/W) (0) (R/W) (0) (R/W) (0) (−) (−) (−) (−) (W) (1) 15 14 13 12 11 10 9 8 PEN1 − PE10 PIE1 PUF1 MD1 MD0 予約 (−) (−) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) 7 6 5 4 3 2 1 0 PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 − − リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (−) (−) (−) (−) アドレス : bit ch.0 000038H リード / ライト→ (R/W) (0) 初期値→ PPGC0 PPG1 動作モード制御レジスタ アドレス : bit ch.1 000039H リード / ライト→ (R/W) (0) 初期値→ PPGC1 PPG0/1 クロック選択レジスタ アドレス : bit ch.0, 1 003AH リロードレジスタ H アドレス : bit 15 14 13 (R/W) (0) 12 11 (R/W) (0) 10 9 8 ch.0 001901H ch.1 001903H リード / ライト→ 初期値→ リロードレジスタ L アドレス : ch.0 001900H ch.1 001902H リード / ライト→ 初期値→ PPG01 PRLH (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) bit 7 6 5 4 (R/W) (R/W) (X) (X) 3 2 (R/W) (X) 1 0 PRLL (R/W) (R/W) (X) (X) (R/W) (R/W) (R/W) (X) (X) (X) (R/W) (R/W) (X) (X) (R/W) (X) 173 第 14 章 8/16 ビット PPG 14.3.1 PPG0 動作モード制御レジスタ (PPGC0) 動作モード制御レジスタ (PPGC0) は , 8/16 ビット PPG の動作モードの選択 , 端子 出力制御 , カウントクロック選択およびトリガの制御を行う 5 ビットの制御レジス タです。PPG (ch.0) を制御します。 ■ PPG0 動作モード制御レジスタ (PPGC0) 図 14.3-2 PPG0 動作モード制御レジスタ (PPGC0) 7 6 5 4 3 2 1 0 PEN0 − PE00 PIE0 PUF0 − − 予約 (−) (−) (R/W) (0) (R/W) (0) (R/W) (0) (−) (−) (−) (−) (W) (1) アドレス : bit ch.0 000038H リード / ライト→ (R/W) (0) 初期値→ PPGC0 【bit7】PEN0(Ppg ENable): 動作許可ビット PPG (ch.0) の動作開始および動作モードを以下のように選択します。 PEN0 動作状態 0 動作停止 ("L" レベル出力保持 ) 1 PPG (ch.0) 動作許可 本ビットに 1 を書き込むことで , PPG (ch.0) はカウントを開始します。 リセットにより , 本ビットは "0" に初期化されます。読出し / 書込みが可能です。 【bit5】PE00 予約ビットです。本ビットは常に "0" に設定してくだい。 【bit4】PIE0(Ppg Interrupt Enable):PPG の割込み許可ビット PPG (ch.0) の割込み許可を以下のように制御します。 0 割込み禁止 1 割込み許可 本ビットが "1" のとき , PUF0 が "1" になると割込み要求を発生します。本ビットが "0" のときは割込み要求を発生しません。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 174 第 14 章 8/16 ビット PPG 【bit3】PUF0(Ppg Underflow Flag):PPG カウンタアンダフロービット PPG (ch.0) のカウンタアンダフロービットを以下のように制御します。 0 PPG (ch.0) のカウンタアンダフローが検出していません 1 PPG (ch.0) のカウンタアンダフローを検出しました 8 ビット PPG2 チャネルモードおよび 8 ビットプリスケーラ +8 ビット PPG モードのと きには , ch.0 のカウンタの値が 00H ∼ FFH へなったときのアンダフローにより "1" に セットされます。16 ビット PPG1 チャネルモードのときには , ch.0 のカウンタの値が 0000H ∼ FFFFH へなったときのアンダフローにより "1" にセットされます。"0" の書込 みにより "0" になります。このビットへの "1" 書込みは , 意味がありません。リードモ ディファイライトのリード時には "1" が読まれます。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 【bit0】 予約ビットです。必ず "1" に設定してください。本ビットは常に "1" が読まれます。 175 第 14 章 8/16 ビット PPG 14.3.2 PPG1 動作モード制御レジスタ (PPGC1) PPG1 動作モード制御レジスタ (PPGC1) は , 8/16 ビット PPG の動作モードの選択 , 端子出力制御 , カウントクロック選択およびトリガの制御を行う 7 ビットの制御レ ジスタです。PPG (ch.1) の制御と PPG ユニット 0 の動作モードを選択します。 ■ PPG1 動作モード制御レジスタ (PPGC1) 図 14.3-3 PPG1 動作モード制御レジスタ (PPGC1) 15 14 13 12 11 10 9 8 PEN1 − PE10 PIE1 PUF1 MD1 MD0 予約 (−) (−) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) アドレス : bit ch.0 000039H リード / ライト→ (R/W) (0) 初期値→ PPGC1 【bit15】PEN1(PPG ENable): 動作許可ビット PPG (ch.1) の動作開始および動作モードを以下のように選択します。 PEN1 動作状態 0 動作停止 ("L" レベル出力保持 ) 1 PPG (ch.1) 動作許可 本ビットに 1 を書き込むことで PWM はカウントを開始します。 リセットにより , 本ビットは "0" に初期化されます。読出し / 書込みが可能です。 【bit13】PE10 (PPG output Enable 10):PPG0 端子出力許可ビット パルス出力外部端子 PPG0 を以下のように制御します。 0 汎用ポート端子 ( パルス出力禁止 ) 1 PPG0= パルス出力端子 ( パルス出力許可 ) リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 【bit12】PIE1(PPG Interrupt Enable):PPG の割込み許可ビット PPG (ch.1) の割込み許可を以下のように制御します。 0 割込み禁止 1 割込み許可 本ビットが "1" のとき , PUF1 が "1" になると割込み要求を発生します。本ビットが "0" のときは割込み要求を発生しません。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 176 第 14 章 8/16 ビット PPG 【bit11】PUF1(Ppg Underflow Flag):PPG カウンタアンダフロービット PPG (ch.1) のカウンタアンダフロービットを以下のように制御します。 0 PPG (ch.1) のカウンタアンダフローを検出していません 1 PPG (ch.1) のカウンタアンダフローを検出しました 8 ビット PPG2 チャネルモードおよび 8 ビットプリスケーラ +8 ビット PPG モードのと きには , ch.1 のカウンタの値が 00H ∼ FFH へなったときのアンダフローにより "1" に セットされます。16 ビット PPG1 チャネルモードのときには , ch.1/ch.0 のカウンタの値 が 0000H ∼ FFFFH へなったときのアンダフローにより "1" にセットされます。"0" の書 込みにより "0" になります。このビットへの "1" 書込みは , 意味がありません。リード モディファイライトのリード時には "1" が読まれます。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 【bit10, bit9】MD1, MD0 (PPG count MoDe): 動作モード選択ビット PPG ユニットの動作モードを以下のように選択します。 MD1 MD0 0 0 8 ビット PPG2 チャネル独立モード 0 1 8 ビットプリスケーラ +8 ビット PPG1 チャネルモード 1 0 予約 ( 設定禁止 ) 1 1 16 ビット PPG1 チャネルモード 動作モード リセットにより , 本ビットは "00" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 < 注意事項 > • ビットを "10" に設定しないでください。 • ビットを "01" に設定する場合には , PPGC0 の PEN0 ビット /PPGC1 の PEN1 ビットを "01" に設定しないでください。また , PEN0 ビットおよび PEN1 ビット を同時に "11" または "00" にセットすることを推奨します。 • ビットを "11" に設定する場合には , PPGC0/PPGC1 をワード転送で書換え , PEN0 ビットおよび PEN1 ビットを同時に "11" または "00" にセットしてくださ い。 【bit8】予約ビット 予約ビットです。PPGC1 を設定するときは必ず "1" に設定してください。 177 第 14 章 8/16 ビット PPG 14.3.3 PPG0/1 クロック選択レジスタ (PPG01) PPG0/1 クロック選択レジスタ (PPG01) は , 8/16 ビット PPG の端子出力の制御を行 う 8 ビットの制御レジスタです。 ■ PPG0/1 クロック選択レジスタ (PPG01) 図 14.3-4 PPG0/1 クロック選択レジスタ (PPG01) 7 6 5 PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) アドレス : bit ch.0, ch.1 00003AH 4 3 (R/W) (0) 2 (R/W) (0) 1 0 − − (−) (−) (−) (−) PPG01 【bit7 ∼ bit5】PCS2 ∼ PCS0 (PPG Count Select): カウントクロック選択ビット ch.1 のダウンカウンタの動作クロックを , 次のように選択します。 表 14.3-1 動作モード PCS2 PCS1 PCS0 0 0 0 周辺クロック (62.5ns マシンクロック 16MHz 時 ) 0 0 1 周辺クロック /2 (125ns マシンクロック 16MHz 時 ) 0 1 0 周辺クロック /4 (250ns マシンクロック 16MHz 時 ) 0 1 1 周辺クロック /8 (500ns マシンクロック 16MHz 時 ) 1 0 0 周辺クロック /16 (1µs マシンクロック 16MHz 時 ) 1 1 1 タイムベースカウンタからの入力クロック (128µs 原発振 4MHz 時 ) 動作モード リセットにより本ビットは "000" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 < 注意事項 > 178 8 ビットプリスケーラ +8 ビット PPG モードおよび 16 ビット PPG モードのときに は , ch.1 の PPG は , ch.0 からカウントクロックを受けて動作するため , PCS2 ∼ PCS0 ビットの指定は , 無効になります。 第 14 章 8/16 ビット PPG 【bit4 ∼ bit2】PCM2 ∼ PCM0 (PPG Count Mode): カウントクロック選択ビット ch.0 のダウンカウンタの動作クロックを , 次のように選択します。 表 14.3-2 動作モード PCM2 PCM1 PCM0 0 0 0 周辺クロック (62.5ns マシンクロック 16MHz 時 ) 0 0 1 周辺クロック /2 (125ns マシンクロック 16MHz 時 ) 0 1 0 周辺クロック /4 (250ns マシンクロック 16MHz 時 ) 0 1 1 周辺クロック /8 (500ns マシンクロック 16MHz 時 ) 1 0 0 周辺クロック /16 (1µs マシンクロック 16MHz 時 ) 1 1 1 タイムベースカウンタからの入力クロック (128µs 原発 振 4MHz 時 ) 動作モード リセットにより本ビットは "000" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 179 第 14 章 8/16 ビット PPG 14.3.4 リロードレジスタ (PRLL, PRLH) リロードレジスタ (PRLL, PRLH) は , ダウンカウンタ PCNT へのリロード値を保持 する , 各 8 ビットのレジスタです。PRLL, PRLH レジスタは , どちらも読出し / 書込 みが可能です。 ■ リロードレジスタ (PRLL, PRLH) 図 14.3-5 リロードレジスタ (PRLL, PRLH) リロードレジスタ H アドレス : bit 15 14 13 12 11 10 9 8 ch.0 001901H ch.1 001903H PRLH リード / ライト→ 初期値→ リロードレジスタ L アドレス : (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) bit 7 6 5 4 (R/W) (R/W) (X) (X) 3 2 (R/W) (X) 1 ch.0 001900H ch.1 001902H PRLL リード / ライト→ 初期値→ (R/W) (R/W) (X) (X) レジスタ名 < 注意事項 > 180 0 (R/W) (R/W) (R/W) (X) (X) (X) (R/W) (R/W) (X) (X) (R/W) (X) 機能 PRLL "L" 側リロード値保持 "L" のパルス幅を設定します PRLH "H" 側リロード値保持 "H" のパルス幅を設定します 8 ビットプリスケーラ +8 ビット PPG モードで使用する場合には , ch.0 の PRLL と PRLH に異なる値を設定すると , ch.1 の PPG 波形がサイクルごとに異なる場合が あるので , ch.0 の PRLL と PRLH は , 同じ値に設定することを推奨します。 第 14 章 8/16 ビット PPG 14.4 8/16 ビット PPG の動作 8/16 ビット PPG には , 8 ビット長の PPG ユニットが 2 チャネルあり , 2 チャネル独 立モード以外に , 連結動作させることにより , 8 ビットプリスケーラ +8 ビット PPG モードと , 16 ビット PPG1 チャネルモードの計 3 種類の動作を行うことができま す。 ■ 8/16 ビット PPG の動作 8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが "L" 側と "H" 側の 2 本あります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダウン カウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとにダウ ンカウントされ , カウンタのボロー発生によるリロード時に , PPG0 出力端子の値を反 転させます。この動作により , PPG0 出力端子はリロードレジスタ値に対応した "L" 幅 / "H" 幅をもつパルスを出力します。 表 14.4-1 に , リロード動作とパルス出力の関係を示します。 表 14.4-1 リロード動作とパルス出力の関係 リロード動作 端子出力変化 PRLH → PCNT PPG0 出力端子 [0 → 1] 立上り PRLL → PCNT PPG0 出力端子 [1 → 0] 立下り また , PPGC0 中のビット 4(PIE0) が "1" のときおよび PPGC1 中の bit12(PIE1) が "1" の とき , それぞれのカウンタの 00 ∼ FF へのボロー (16 ビット PPG モードの場合には , 0000 ∼ FFFF へのボロー ) によって割込み要求が出力されます。 ■ 8/16 ビット PPG の動作モード 8/16 ビット PPG の動作モードには , 2 チャネル独立モードと , 8 ビットプリスケーラ +8 ビットPPGモードと, 16ビットPPG1チャネルモードの計3種類の動作モードがあります。 ● 2 チャネル独立モード 2 チャネル独立モードは , 8 ビット PPG として 2 チャネル独立に動作させる動作モード です。 ● 8 ビットプリスケーラ +8 ビット PPG モード 8 ビットプリスケーラ +8 ビット PPG モードは , ch.0 を 8 ビットプリスケーラとして動 作させ , ch.1 を ch.0 のボロー出力でカウントすることにより , 任意周期の 8 ビット PPG 波形を出力できるようにする動作モードです。 ● 16 ビット PPG1 チャネルモード 16 ビット PPG1 チャネルモードは , ch.0 と ch.1 を連結させて , 16 ビットの PPG として 動作させる動作モードです。 181 第 14 章 8/16 ビット PPG ■ 8/16 ビット PPG の出力動作 8/16 ビット PPG は , ch.0 の PPG については , PPGC0 レジスタの bit7(PEN0) を , ch.1 の PPG については , PPGC1 レジスタの bit15(PEN1) を "1" にセットすることによって起動 され , カウントを開始します。MB90590 シリーズについては , ch.0 の PPG からの出力 信号は外部端子には接続していません。 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 を停止状態で , ch.1 を動 作状態に設定しないでください。 8/16 ビット PPG は , ch.0 の PPG については , PPGC0 (PWM 動作モード制御レジスタ ) の bit7(PEN0) を , ch.1 の PPG については , PPGC1 レジスタの bit15(PEN1) を "1" にセッ トすることによって起動され , カウントを開始します。動作を開始した後は , PPGC0 の bit7(PEN0) または PPGC1 の bit15(PEN1) に "0" を書き込むことによってカウント動作 を停止し , 停止した後 , パルス出力は "L" レベルを保持します。 図 14.4-1 PPG 出力動作の出力波形 PEN PEN により動作開始 ("L" 側から ) PPG0 出力端子 T×(L+1) ( スタート ) 182 T×(H+1) L: PRLL の値 H: PRLH の値 T: 周辺クロック (φ, φ/4, φ/16) またはタイマベースカウンタから の入力 (PPGC のクロックセレク トによる ) 第 14 章 8/16 ビット PPG ■ 8/16 ビット PPG のリロード値とパルス幅の関係 リロードレジスタに書かれた値に +1 した値に , カウントクロックの周期を掛けた値が , 出力されるパルスの幅となります。 8 ビット PPG 動作時のリロードレジスタ値が 00H のときおよび 16 ビット PPG 動作時 のリロードレジスタ値が 0000H のときは , カウントクロック 1 周期分のパルス幅をも つことになりますので注意してください。また , 8 ビット PPG 動作時のリロードレジ スタ値が FFH のとき , カウントクロック 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジスタ値が FFFFH のときは , カウントクロック 65536 周期分のパルス幅をもつことになりますので注意してください。 Pl=T × (L+1) Ph=T × (H+1) L H T Ph Pl : PRLL の値 : PRLH の値 : 入力クロック周期 : ハイパルスの幅 : ローパルスの幅 183 第 14 章 8/16 ビット PPG 14.5 8/16 ビット PPG のカウントクロックの選択 8/16 ビット PPG の動作に使用するカウントクロックは , 周辺クロックおよびタイム ベースカウンタの入力を使用しており , 6 種類のカウントクロック入力が選択できま す。 ■ 8/16 ビット PPG のカウントクロックの選択 PPG0/1 クロック選択レジスタ (PPG01) の bit4 ∼ bit2 (PCM2 ∼ PCM0) で ch.0 のクロッ クを , bit7 ∼ bit5 (PCS2 ∼ PCS0) で ch.1 のクロックを選択します。 クロックは , マシンクロックの 1/16 ∼ 1 倍の周辺クロックとタイムベースカウンタか らの入力クロックより選択できます。 しかし , 8 ビットプリスケーラ +8 ビット PPG モードまたは 16 ビット PPG モードのと きには , PCS2 ∼ PCS0 を設定しても意味はありません。 タイムベースカウンタの入力を使用した場合 , トリガにより起動がかかる最初および ストップの後の最初のカウント周期がずれる可能性がありますので注意してくださ い。また , 本モジュール動作中にタイムベースカウンタのクリアを行うと周期がずれる ことがあります。 8 ビットプリスケーラ +8 ビット PPG モード・ch.0 が動作状態 , ch.1 が停止状態である ときに ch.1 の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意 してください。 184 第 14 章 8/16 ビット PPG 14.6 8/16 ビット PPG のパルスの端子出力の制御 本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG0 より出力さ せることができます。 ■ 8/16 ビット PPG のパルスの端子出力の制御 PPG1 動作モード制御レジスタ (PPGC1) の bit13 (PE10) が "0" のとき ( 初期値 ) は , パル ス出力は外部端子より出力されずに , 汎用ポートとして機能します。本ビットに "1" を 設定すると , パルス出力が外部端子より出力されます。 8 ビットプリスケーラ +8 ビット PPG モードでは , PPG (ch.0) の 8 ビットプリスケーラ のトグル波形が出力され , PPG (ch.1) の 8 ビット PPG の波形が出力されます。このモー ドのときの出力波形の例を図 14.6-1 に示します。 MB90590 シリーズについては , ch.0 の PPG からの出力信号は外部端子には接続してい ません。 図 14.6-1 8 ビットプリスケーラ +8 ビット PPG 出力動作の出力波形 Ph0 Pl0 PPG (ch.0) の出力 ( 内部信号 ) PPG (ch.1) の出力 (PPG0 端子波形 ) Ph1 Pl0 = T x (L0+1) Ph0 = T x (L0+1) Pl1 = T x (L0+1) x (L1+1) Ph1 = T x (L0+1) x (H1+1) < 注意事項 > Pl1 L0 L1 H1 T Ph0 Pl0 Ph1 Pl1 : : : : : : : : ch.0 の PRLL の値および ch.0 の PRLH 値 ch.1 の PRLL の値 ch.1 の PRLH の値 入力クロック周期 PPG00 のハイパルスの幅 PPG00 のローパルスの幅 PPG10 のハイパルスの幅 PPG10 のローパルスの幅 ch.0 の PRLL と ch.0 の PRLH は , 同じ値を設定することを推奨します。 185 第 14 章 8/16 ビット PPG 14.7 8/16 ビット PPG の割込み 8/16 ビット PPG は , リロード値がカウントアウトし , ボローが発生したときに割込 み要求を出力します。 ■ 8/16 ビット PPG の割込み 8 ビット PPG2 チャネルモードおよび 8 ビットプリスケーラ +8 ビット PPG モードのと きには, それぞれのカウンタのボローにより, それぞれの割込みの要求が行われますが, 16 ビット PPG モードでは , 16 ビットカウンタのボローにより , PUF0 と PUF1 が同時に セットされます。このため , 割込み要因を一本化するために , PIE0 または PIE1 のどち らか一方のみを許可にすることを推奨します。また , 割込み要因のクリアも PUF0 と PUF1 を同時に行うことを推奨します。 186 第 14 章 8/16 ビット PPG 14.8 8/16 ビット PPG の各ハードウェアの初期値 8/16 ビット PPG の各ハードウェアは , リセット時に以下のように初期化されます。 ■ 8/16 ビット PPG の各ハードウェアの初期値 ● レジスタ • PPGC0 → 0-000--1B • PPGC1 → 0-000001B • PPG01 → 000000--B ● パルス出力 PPG0 端子は出力禁止となります。 出力を許可した場合は "L" 出力となります。 ● 割込み要求 割込み禁止となります。 なお , リロード値は保持されます。 < 注意事項 > 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミング 16 ビット PPG モード以外のモードの場合には , リロードレジスタ (PRLL, PRLH) への書込みはワード転送命令を使用することを推奨します。なお , バイト転送命令 2 回にて書き込んだ場合 , タイミングによっては , 予想しないパルス幅の出力が発 生する可能性がありますので注意してください。 187 第 14 章 8/16 ビット PPG 図 14.8-1 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミングチャート PPG0 B A B C A B C C D D ① 図 14.8-1 のタイムチャートにおいて , ①のタイミングの前で PRLL を A から C に書き 換えて , ①の後 PRLH の値を B から D に書き換えた場合 , ①のタイミングでの PRL の 値は PRLL=C, PRLH=B のため 1 回だけ "L" 側のカウント数 C, "H" 側のカウント数 B の パルスが発生されます。 同様に , 16 ビット PPG モードで使用する場合には , ch.0 と ch.1 の PRL はロングワード 転送で書き込むかまたは ch.0 → ch.1 の順にワード転送で書き込んでください。この モードのときには , ch.0 の PRL への書込みは , 一時的にテンポラリに書き込まれ , その 後 ch.1 の PRL に書込みを行った時点で , 実際に ch.0 の PRL への書込みが行われます。 なお , 16 ビット PPG モード以外では , ch.0 と ch.1 の PRL の書込みは独立して行うこと ができます。 図 14.8-2 PRL 書込み動作のブロックダイヤグラム ch.0 の PRL の書込みデー テンポラリラッチ 16 ビット PPG モード以外の ときの ch.0 の書込み 16 ビット PPG モード時 ch.1 の書込みに同期し て転送 ch.1 の書込み ch.0 PRL 188 ch.1 の PRL の書込みデータ ch.1 PRL 第 15 章 DTP/ 外部割込み この章では , DTP/ 外部割込みの機能と動作につい て説明します。 15.1 DTP/ 外部割込みの概要 15.2 DTP/ 外部割込みのレジスタ 15.3 DTP/ 外部割込みの動作 15.4 DTP 要求と外部割込み要求の切換え 15.5 DTP/ 外部割込みの使用上の注意 189 第 15 章 DTP/ 外部割込み DTP/ 外部割込みの概要 15.1 DTP(Data Transfer Peripheral) はデバイス外部に存在するペリフェラルと F2MC16LX CPU との間にあって , 外部ペリフェラルが発生する DMA 要求または割込み 要求を受け取り , これを F2MC-16LX CPU に伝えてインテリジェント I/O サービス または割込み処理を起動させるための周辺です。 ■ DTP/ 外部割込みの概要 インテリジェント I/O 機能に関しては "H" または "L" 要求レベルを使用することがで きます。外部割込み要求に対しては , "H", "L" のほか立上りエッジおよび立下りエッジ の 4 種類の要求レベルを使用することができます。 MB90590 シリーズでは , 外部バスインタフェースはサポートされていません。このた め DTP/ 外部割込みはデータ転送ペリフェラルの役割を果たすことはできません。それ は外部割込みとしてのみ使用することができます。 MB90V590G では , このブロックに 4 本の端子のみが割り当てられています。このため 外部割込み ch.4 ∼ ch.7 はサポートされていません。これらの外部割込みは禁止してく ださい。 ■ DTP/ 外部割込みのブロックダイヤグラム 図 15.1-1 DTP/ 外部割込みのブロックダイヤグラム 8 8 8 16 190 DTP/ 割込み許可レジスタ ゲート 要因 F/F DTP/ 割込み要因レジスタ 要求レベル設定レジスタ エッジ検出回路 8 要求入力 第 15 章 DTP/ 外部割込み ■ DTP/ 外部割込みのレジスタ 図 15.1-2 DTP/ 外部割込みのレジスタ bit アドレス : 000030H bit アドレス : 000031H bit アドレス : 000032H bit アドレス : 000033H 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 DTP/ 割込み許可レジスタ (ENIR) DTP/ 割込み要因レジスタ (EIRR) 要求レベル設定レジスタ (ELVR) 要求レベル設定レジスタ (ELVR) 191 第 15 章 DTP/ 外部割込み 15.2 DTP/ 外部割込みのレジスタ DTP/ 外部割込みのレジスタには , 次の 3 つがあります。 • DTP/ 割込み許可レジスタ (ENIR: Interrupt request enable register) • DTP/ 割込み要因レジスタ (EIRR: External interrupt request register) • 要求レベル設定レジスタ (ELVR: External level register) ■ DTP/ 割込み許可レジスタ (ENIR: Interrupt request enable register) DTP/ 割込み許可レジスタ (ENIR) はデバイス端子を DTP/ 外部割込み要求入力として使 用し , 割込みコントローラに対して要求を発生させる機能を動作させることを決定す るレジスタです。このレジスタの "1" を書かれたビットの対応する端子は DTP/ 外部割 込み要求入力として使用され , 割込みコントローラに対して要求を発生する機能を動 作させます。"0" が書かれたビットの対応する端子は DTP/ 外部割込み要求入力要因は 保持しますが , 割込みコントローラに対しては要求を発生しません。 図 15.2-1 DTP/ 割込み許可レジスタ (ENIR) bit 7 アドレス : 000030H EN7 リード / ライト→ (R/W) (0) 初期値→ 6 5 4 3 2 1 0 EN6 (R/W) (0) EN5 (R/W) (0) EN4 (R/W) (0) EN3 (R/W) (0) EN2 (R/W) (0) EN1 (R/W) (0) EN0 (R/W) (0) ENIR ■ DTP/ 割込み要因レジスタ (EIRR: External interrupt request register) EIRR は , このレジスタの "1" となっているビットに対応する端子において DTP/ 外部割 込み要求が存在することを表します。このレジスタのビットに "0" を書き込むと対応 する要求フラグがクリアされます。"1" を書込んでも効果はありません。リードモディ ファイライト系命令によりこのレジスタからは常に "1" が読み出されます。 図 15.2-2 DTP/ 割込み要因レジスタ (EIRR) bit 15 アドレス : 000031H ER7 リード / ライト→ (R/W) 初期値→ < 注意事項 > 192 (X) 14 13 12 11 10 9 8 ER6 (R/W) ER5 (R/W) ER4 (R/W) ER3 (R/W) ER2 (R/W) ER1 (R/W) ER0 (R/W) (X) (X) (X) (X) (X) (X) (X) EIRR ( ただし両者で 対象が異なる ) 複数の外部割込み要求が許可 (ENIR:EN7 ∼ EN0=1) されている場合 , CPU が割込 みを受け付けたビット (ER7 ∼ ER0 の "1" にセットされているビット ) だけを "0" にクリアするようにしてください。それ以外のビットを無条件にクリアすることは 避けてください。 第 15 章 DTP/ 外部割込み ■ 要求レベル設定レジスタ (ELVR:External level register) 図 15.2-3 要求レベル設定レジスタ (ELVR) bit アドレス : 000032H 7 6 5 4 3 2 1 0 LB3 (R/W) LA3 (R/W) LB2 (R/W) LA2 (R/W) LB1 (R/W) LA1 (R/W) LB0 (R/W) LA0 (R/W) 7 6 5 4 3 2 1 0 LB7 (R/W) LA7 (R/W) LB6 (R/W) LA6 (R/W) LB5 (R/W) LA5 (R/W) LB4 (R/W) LA4 (R/W) bit アドレス : 000033H 初期値 00000000B 初期値 00000000B ELVR は外部端子における要求イベントを定義するものです。表 15.2-1 に示すように , 各端子には 2 ビットが割り当てられます。入力レベルにより要求が検出された場合 , フ ラグがソフトウェアによりリセットされた後でも入力が指定されたレベルを保持して いれば割込みフラグはセットされます。 表 15.2-1 LBx と Lax 端子の割込み要求検出要因 LBx LAx 0 0 "L" レベルが端子に入力 0 1 "H" レベルが端子に入力 1 0 立上りエッジが端子に入力 1 1 立下りエッジが端子に入力 割込み要求検出要因 193 第 15 章 DTP/ 外部割込み 15.3 DTP/ 外部割込みの動作 割込みフラグがセットされたときにこのブロックは割込みコントローラへ割込み信 号を送ります。割込みコントローラ内で同時発生した割込みの優先順位を識別した 結果 , 本リソースからの割込みが最も優先順位が高かったときに , 割込みコントロー ラは F2MC-16LX CPU に対して割込み要求を発生します。F2MC-16LX CPU は自分 の内部にある CCR レジスタ中の ILM ビットと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の命令が終了し次第 , ハードウェア割込み 処理マイクロプログラムを起動します。 ■ 外部割込みの動作 図 15.3-1 に示すように , ハードウェア割込み処理マイクロプログラムにおいて , CPU は 割込みコントローラからISEビットの情報を読み出し, これにより当該要求が割込み処 理であることを識別し , 割込み処理マイクロプログラムへ分岐します。割込み処理マイ クロプログラムでは割込みべクタ領域の読出しと割込みコントローラへの割込みアク ノリッジを発生し , ベクタから生成したマクロ命令のジャンプ先アドレスをプログラ ムカウンタへ転送した上で , ユーザの割込み処理プログラムを実行します。 図 15.3-1 外部割込みの動作 DTP/ 外部割込み 割込みコントローラ F2MC-16LX CPU ICRyy IL ほかの要求 ELVR EIRR ENIR 要因 194 CMP ICRxx CMP ILM INTA 第 15 章 DTP/ 外部割込み ■ DTP の動作 初期化としてユーザプログラム内ではインテリジェント I/O サービスを起動するに当 たって , インテリジェント I/O サービスディスクリプタ内の I/O アドレスポインタに 000000H から 0000FFH に割りつけられているレジスタのアドレスを設定し , バッファア ドレスポインタにメモリバッファの先頭アドレスを設定します。 DTP の動作シーケンスは外部割込みの場合とほぼ同じで , CPU がハードウェア割込み 処理マイクロプログラムを起動するまでは全く同じです。DTP の場合は CPU がハード ウェア割込み処理マイクロプログラム内で読み出す ISE ビットの内容が DTP を示して いるので , インテリジェント I/O サービス処理マイクロプログラムへ制御を移します。 インテリジェント I/O サービスが起動されると , アドレッシングされている外部ペリ フェラルにリードまたはライト信号が送られ本チップとの転送が行われます。外部ペ リフェラルはその転送が行われてから 3 マシンサイクル以内に本チップに対する割込 み要求を取り下げてください。転送が終了するとディスクリプタの更新などが行われ , その後転送要因をクリアする信号を割込みコントローラに発生させます。転送要因を クリアする信号を受けとった本リソースは要因を保持しているフリップフロップをク リアして端子からの次の要求に備えます。インテリジェント I/O 機能処理の詳細につ いては , 『F2MC-16LX プログラミングマニュアル』を参照してください。 図 15.3-2 DTP 動作終了時の外部割込み取下げタイミング 内部動作 エッジ要求 , または "H" レベル要求 * インテリジェント I/O サービスが I/O レジスタ→メモリ転送のとき ディスクリプタ 選択 , 読出し 割込み要因 アドレスバス端子 リードアドレス ライトアドレス ライトデータ リードデータ データバス端子 ① リード信号 ② ライト信号 3 マシンサイクル以内に取り下げる 図 15.3-3 DTP と外部ペリフェラルとのインタフェース簡略例 外 部 ペ リ フ ェ ラ ル データ , アドレスバス 内部バス レ ジ ス タ ① INT IRQ 転送終了後 , 3 マシンサイクル 以内に取り下げる ② DTP CORE MEMORY MB90590 195 第 15 章 DTP/ 外部割込み 15.4 DTP 要求と外部割込み要求の切換え 外部割込み要求と DTP 要求の切換えは , 割込みコントローラの中にある , 本リソー スに対応する ICR レジスタ中の ISE ビットの設定によって行います。各端子に対応 して個々に ICR が割り当てられていますので , 対応する ICR の ISE ビットに "1" が 書かれた端子が DTP 要求として , また , "0" が書かれた場合には外部割込み要求と して , それぞれ動作することになります。 ■ DTP 要求と外部割込み要求の切換え 図 15.4-1 DTP 要求と外部割込み要求の切換え 割込みコントローラ 0 ICRxx ICRyy 1 F2MC-16LX CPU 端子 外部割込み /DTP DTP 外部割込み 196 第 15 章 DTP/ 外部割込み 15.5 DTP/ 外部割込みの使用上の注意 DTP/ 外部割込みを使用する際には , 次の点について特に注意が必要です。 • DTP を用いたときの外部に接続するペリフェラルの条件 • スタンバイからの復帰 • DTP/ 外部割込みの動作手順 • 外部割込み要求レベル ■ DTP/ 外部割込みの使用上の注意 ● DTP を用いたときの外部に接続するペリフェラルの条件 DTP がサポートできる外部ペリフェラルは , 転送が行われたことにより自動的に要求 をクリアするものでなければなりません。また , 転送動作が開始してから 3 マシンサイ クル以内 ( 暫定値 ) で転送要求を取り下げるようになっていないと , 本リソースは次の 転送要求が発生したものとして扱ってしまいます。 ● スタンバイからの復帰 ストップモードまたは時計モードのスタンバイ状態からの復帰に外部割込みを使う場 合は , 入力要求を "H" レベルまたは "L" レベル要求としてください。エッジ要求ではス トップモードまたは時計モードのスタンバイ状態からの復帰は行われません。 ● DTP/ 外部割込みの動作手順 DTP/外部割込み内に存在するレジスタの設定を行う際, 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 許可レジスタの対象となるビットを禁止状態にする。 3. 要求レベル設定レジスタの対象となるビットを設定する。 4. 要因レジスタの対象となるビットをクリアする。 5. 許可レジスタの対象となるビットを許可状態にする。 ( ただし , 4. と 5. はワード指定による同時書込み可 ) 。 本リソース内のレジスタを設定するときには必ず許可レジスタを禁止状態に設定して おかなくてはなりません。また , 許可レジスタを許可状態にする前に必ず要因レジスタ をクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に誤っ て割込み要因が起こってしまうことを避けるためです。 ● 外部割込み要求レベル 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は 最小 3 マシンサイクル必要とします。 図 15.5-1 に示すように , 要求入力レベルがレベル設定のとき , 外部より要求入力が入っ てその後取り下げられても , 割込み要求許可状態 (ENIR:EN=1) であれば , 割込みコント ローラへの要求は動作中のままです。図 15.5-2 に示すように , 割込みコントローラへ の要求を取り下げるには割込み要求フラグビット (EIRR:ER) をクリアする必要があり ます。 197 第 15 章 DTP/ 外部割込み 図 15.5-1 レベル設定時の割込み要求フラグビット (EIRR:ER) のクリア レベル検出 割込み要因 割込み要求フラグビット (EIRR:ER) 許可ゲート 割込み コントローラへ クリアしない限り要因を保持し続ける 図 15.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 割込み要因 ("H" レベル検出の場合 ) 割込みコントローラ への割込み要求 198 割込み要因の取り下げ 割込み要求フラグビット (EIRR:ER) のクリアによってインアクティブとなる 第 16 章 A/D コンバータ この章では , A/D コンバータの機能と動作について 説明します。 16.1 A/D コンバータの特長 16.2 A/D コンバータのブロックダイヤグラム 16.3 A/D コンバータのレジスタ一覧 16.4 A/D コンバータの動作 16.5 EI2OS を使った変換動作 16.6 変換データ保護機能 199 第 16 章 A/D コンバータ 16.1 A/D コンバータの特長 A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。A/D コン バータの特徴は次のとおりです。 ■ A/D コンバータの特長 ● 変換時間 1 チャネル当たり最小 26.3µs (16MHz のマシンクロック ) ● サンプル & ホールド回路付 RC 型逐次比較変換方式を採用 ● 10 ビットまたは 8 ビットの分解能 ● アナログ入力は 8 チャネルからプログラムで選択 • シングル変換モード :1 チャネルを選択変換 • スキャン変換モード : 連続した複数のチャネルを変換。最大 8 チャネルプログラム 可能 • 連続変換モード : 指定チャネルを繰り返し変換 • 停止変換モード :1 チャネルを変換したら一時停止して次の起動が掛かるまで待機 ( 変換開始の同期が可能 ) 。 ● 割込み要求 A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることがで きます。この割込み発生で EI2OS を起動することができ A/D 変換結果データをメモリ に転送できますので連続処理に適しています。 ● 起動要因を選択可能 起動要因は , ソフト , 外部トリガ ( 立下りエッジ ) , タイマ ( 立上りエッジ ) の選択。 ■ アナログ入力許可レジスタ アナログ入力に使用される端子に対応する ADER ビットに常に "1" を書き込んでくだ さい。 ポート 6 端子は次のように制御されます。 図 16.1-1 アナログ入力許可レジスタ bit 7 ADE7 6 ADE6 5 ADE5 4 ADE4 3 ADE3 2 ADE2 1 ADE1 0 ADE0 リード / ライト→ (R/W) (1) 初期値→ (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) アドレス : 00001BH • 0: ポート入力 / 出力モード • 1: アナログ入力モード • リセット時には "1" がセットされます。 200 第 16 章 A/D コンバータ ■ 入力インピーダンス A/D コンバータのサンプリング回路は次の等価回路で表されます。 サンプリング時間が 4µs (16MHz のマシンクロックで ST1=0 および ST0=0) にセットさ れたとき, アナログ入力への駆動インピーダンスは15.5kΩ以下でなければなりません。 そうしなければ変換の精度は低下します。もしそうであれば , サンプリング時間をさら に長く設定する (ST1=1 および ST0=1) か , 外部コンデンサを付加して駆動インピーダ ンスを補償してください。 図 16.1-2 入力インピーダンス 最大 3.2kΩ アナログ入力 ADC 最大 30pF 201 第 16 章 A/D コンバータ A/D コンバータのブロックダイヤグラム 16.2 図 16.2-1 に , A/D コンバータのブロックダイヤグラムを示します ■ A/D コンバータのブロックダイヤグラム 図 16.2-1 A/D コンバータのブロックダイヤグラム AVCC AVR H/L AV SS D/A コンバータ MPX AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 入 力 回 路 逐次比較レジスタ デ | タ バ ス 比較器 サンプル & ホールド回路 デ コ | ダ A/D データレジスタ ADCR0, ADCR1 A/D 制御レジスタ 0 A/D 制御レジスタ 1 トリガ起動 ADCS0, ADCS1 ADTG タイマ起動 16 ビット リロードタイマ 1 φ 202 動作クロック プリスケーラ 第 16 章 A/D コンバータ A/D コンバータのレジスタ一覧 16.3 A/D コンバータのレジスタには次の 2 つがあります。 • A/D 制御ステータスレジスタ • A/D データレジスタ ■ A/D コンバータのレジスタ一覧 図 16.3-1 A/D コンバータのレジスタ配置 15 8 bit アドレス : 000034H bit アドレス : 000035H bit アドレス : 000036H bit アドレス : 000037H 7 0 ADCS1 ADCS0 ADCR1 ADCR0 8 ビット 8 ビット 7 6 5 4 3 2 1 0 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 15 14 13 12 11 10 9 8 BUSY INT INTE PAUS STS1 STS0 STRT 予約 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 15 14 13 12 11 10 9 8 S10 ST1 ST0 CT1 CT0 − D9 D8 A/D 制御ステータス レジスタ (ADCS0 および ADCS1) A/D データレジスタ (ADCR0 および ADCR1) 203 第 16 章 A/D コンバータ 16.3.1 A/D 制御ステータスレジスタ 0 (ADCS0) A/D 制御ステータスレジスタ 0 (ADCS0) は , A/D コンバータの制御およびステータ ス表示を行います。ADCS0 は A/D 変換動作中に書換えないようにしてください。 ■ A/D 制御ステータスレジスタ 0 (ADCS0) 図 16.3-2 A/D 制御ステータスレジスタ 0 (ADCS0) bit 7 6 5 4 3 2 1 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 ADCS0 リード / ライト→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) アドレス : 000034H (0) 初期値→ 0 【bit7, bit6】MD1, MD0 (A/D converter mode set) 表 16.3-1 動作モードの設定 MD1 MD0 0 0 単発モード , 動作中の再起動はすべて可能 0 1 単発モード , 動作中の再起動不可能 1 0 連続モード , 動作中の再起動不可能 1 1 停止モード , 動作中の再起動不可能 動作モード ● 単発モード ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまで A/D 変換を連 続して行い 1 回変換が終了したら停止する。 ● 連続モード ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまで A/D 変換を繰 り返し行います。 ● 停止モード ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまで 1 チャネルご とに A/D 変換を行い一時停止する。変換再開は起動要因発生によって行われます。 リセット時には本ビット群は "00" に初期化されます。 < 注意事項 > 204 • 連続モード , 停止モードで A/D 変換を起動すると BUSY ビットで停止するまで 変換動作を続けます。 • 停止は BUSY ビットに "0" を書き込むことにより行われます。 • 単発 , 連続 , 停止の各モードの再起動の不可能はタイマ , 外部トリガ , ソフト ウェアすべての起動に適用されます。 第 16 章 A/D コンバータ 【bit5, bit4, bit3】ANS2, ANS1, ANS0 (Analog start channels et) 本ビット群より A/D 変換の開始チャネルを設定します。 A/D コンバータを起動すると , このビットで選択されたチャネルから A/D 変換を開始 します。 表 16.3-2 開始チャネルの設定 ANS2 ANS1 ANS0 開始チャネル 0 0 0 AN0 0 0 1 AN1 0 1 0 AN2 0 1 1 AN3 1 0 0 AN4 1 0 1 AN5 1 1 0 AN6 1 1 1 AN7 • リード A/D 変換の間 , 現在の変換チャネルが本ビット群から読み込まれます。 もしシステムが停止モードで停止すれば最後の変換チャネルが読み込まれます。 ただし , 本ビットに値を設定した場合でも , A/D 変換が開始されるまでは , 設定 した値ではなく , 前回に A/D 変換した変換チャネルが読み込まれます。 • リセット時には本ビット群は "000" に初期化されます。 【bit2, bit1, bit0】ANE2, ANE1, ANE0 (Analog end channel set) 本ビット群より A/D 変換の終了チャネルを設定します。 表 16.3-3 終了チャネルの設定 ANE2 ANE1 ANE0 終了チャネル 0 0 0 AN0 0 0 1 AN1 0 1 0 AN2 0 1 1 AN3 1 0 0 AN4 1 0 1 AN5 1 1 0 AN6 1 1 1 AN7 205 第 16 章 A/D コンバータ < 注意事項 > • A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) に開始チャネルを設定し たあとに , A/D 変換モード選択ビット (MD1, MD0) および A/D 変換終了チャネル 選択ビット (ANE2, ANE1, ANE0) をリードモディファイライト系命令で設定しな いでください。 ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換チャネ ルが読み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネルを設定したあ とに , MD1, MD0 ビットおよび ANE2, ANE1, ANE0 ビットをリードモディファ イライト系命令で設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き替わる可 能性があります。 • 同一のチャネルが ANE2 ∼ ANE0 および ANS2 ∼ ANS0 に書込まれると , 変換 は 1 つのチャネルに対してのみ行われます ( シングル変換 ) 。 • 連続モード , 停止モードを設定している場合は本ビット群で設定されたチャネル の変換が終わると ANS2 ∼ ANS0 で設定された開始チャネルに戻ります。 • 設定チャネルが ANS>ANE の場合は , ANS より変換が始まり AN7 まで変換した ら AN0 に戻り ANE まで変換します。 例:チャネル設定 ANS = 6, ANE = 3 で単発モードのとき 動作 変換チャネル AN6 → AN7 → AN0 → AN1 → AN2 → AN3 • リセット時には本ビット群は "000" に初期化されます。 206 第 16 章 A/D コンバータ 16.3.2 A/D 制御ステータスレジスタ 1 (ADCS1) A/D 制御ステータスレジスタ 1 (ADCS1) は , A/D コンバータの制御およびステータ ス表示を行います。 ■ A/D 制御ステータスレジスタ 1 (ADCS1) 図 16.3-3 A/D 制御ステータスレジスタ 1 (ADCS1) bit アドレス : 000035H 15 14 13 12 11 10 9 8 BUSY INT INTE PAUS STS1 STS0 STRT 予約 (R/W) (R/W) (R/W) (R/W) (R/W) (W) (R/W) (0) (0) (0) (0) (0) (0) (0) リード / ライト→ (R/W) 初期値→ (0) ADCS1 【bit15】BUSY (busy flag and stop) • リード時 - A/D コンバータ動作表示用のビットです。 - A/D 変換起動でセットされ終了でクリアされます。 • ライト時 - A/D 動作中に本ビットに "0" を書き込むと強制的に動作を停止します。 - 連続 , 停止モード時の強制停止に利用します。 - 動作表示用のビットに "1" を書き込むことはできません。RMW 系命令では "1" が 読まれます。単発モードでは A/D 変換終了でクリアされます。 - 連発 , 停止モードでは "0" 書込みで停止するまでクリアされません。 - リセット時に本ビットは "0" に初期化されます。 - 強制停止とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 【bit14】INT(interrupt) 変換データが ADCR に書き込まれるとセットされます。 ビット 5(INTE) が "1" のときに本ビットがセットされると割込み要求が発生します , ま た EI2OS 起動を許可している場合 EI2OS が起動されます。"1" 書込みは意味を持ちま せん。 クリアは "0" 書込みと EI2OS 割込みクリア信号で行われます。 < 注意事項 > 本ビットの "0" 書込みクリアは A/D 停止中に行ってください。 リセット時に本ビットは "0" に初期化されます。 【bit13】INTE (Interrupt enable) 本ビットは変換終了による割込みの許可・不許可を指定します。 • 0: 割込みの禁止 • 1: 割込みの許可 EI2OS を使用するときは本ビットをセットしてください。EI2OS は割込み要求発生で起 動するようになっています。 リセット時に本ビットは "0" に初期化されます。 207 第 16 章 A/D コンバータ 【bit12】PAUS (A/D converter pause) A/D 変換動作が一時的に停止した場合にセットされます。 A/D 変換結果を格納するレジスタが 1 つのため連続で変換した場合 , 変換結果を EI2OS で転送しなければ前データが壊れてしまいます。 これを保護するためデータレジスタの内容を EI2OS で転送しなければ次の変換データ が格納されないようになっています。この間 A/D 変換動作は停止します。EI2OS で転 送を終了すると A/D は変換を再開します。 このビットは EI2OS を使用したときのみ有効です。 < 注意事項 > • 変換データの保護機能に関しては , 「16.6 変換データ保護機能」を参照してく ださい。 • リセット時に本ビットは "0" に初期化されます。 【bit11, bit10】STS1, STS0 (Start source select) リセット時に本ビット群は "00" に初期化されます。 本ビットの設定により A/D 起動要因を選択します。 STS1 STS0 0 0 ソフト起動。 0 1 外部端子トリガでの起動とソフト起動。 1 0 16 ビットリロードタイマでの起動とソフト起動。 1 1 外部端子トリガ , 16 ビットリロードタイマでの起動 とソフト起動 機能 2 つ以上の起動要因が許されているモードでは最初に生じた原因により A/D 変換が起 動されます。 起動源の設定は書き換えられると直ちに変わりますので, A/D変換中に書き換えるとき には注意してください。 < 注意事項 > 208 • 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のと きに本ビットを書き換えて外部端子トリガ起動に設定すると A/D が起動する場 合があります。 • 16 ビットリロードタイマ選択時は , 16 ビットリロードタイマ 1 の出力が選択さ れます。 第 16 章 A/D コンバータ 【bit9】STRT(Start) 本ビットに "1" を書き込むことにより A/D を起動します。 再起動をかけるときは , 再び書き込んでください。 リセット時に本ビットは "0" に初期化されます。 停止モード時は動作機能上再起動はかかりません。"1" を書き込む前に BUSY ビットを チェックしてください。 強制停止とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 バイト / ワード命令では "1" が読み出されます。 リードモディファイライト系命令では "0" が読み出されます。 【bit8】予約 これは予約ビットです。本ビットには常に "0" を書き込んでください。 209 第 16 章 A/D コンバータ 16.3.3 A/D データレジスタ 0/1 (ADCR0, ADCR1) A/D データレジスタ 0/1 (ADCR0, ADCR1) は , 変換の結果として生成されたデジタ ル値を記憶するために使用されるものです。ADCR0 は下位 8 ビットを記憶し , ADCR1 は変換結果の最上位の 2 ビットを記憶します。これらのレジスタ値は変換が 完了するたびに書き換えられます。通常は最後の変換値が本ビット群に記憶されま す。 ■ A/D データレジスタ 0/1 (ADCR0, ADCR1) ADCR1 の bit10 ∼ bit15 からは常に "0" が読み込まれます。 変換データの保護機能を利用することができます。詳しくは , 「16.6 変換データ保護 機能」を参照してください。 A/D 変換の間はこれらのレジスタにデータを絶対に書込まないでください。 図 16.3-4 A/D データレジスタ 0/1 (ADCR0, ADCR1) bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト→ (R) (R) (R) (R) (R) (R) (R) (R) 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 S10 ST1 ST0 CT1 CT0 − D9 D8 リード / ライト→ (W) (W) (W) (W) (W) (−) (W) (W) 初期値→ (0) (0) (0) (0) (1) (0) (X) (X) アドレス : 000036H アドレス : 000037H ADCR0 ADCR1 【bit15】S10 本ビットは変換の分解能を指定します。"0" にセットされると 10 ビットの A/D 変換が 行われます。その他の場合には 8 ビットの A/D 変換が行われてその結果は D7 ∼ D0 に 記憶されます。 本ビットを読み込むと常に "0" が読み出されます。 【bit14, bit13】ST1, ST0 (Sampling time) 表 16.3-4 ST1, ST0 の機能 ST1 ST0 0 0 64 マシンサイクル (16MHz で 4µs) 0 1 予約 1 0 予約 1 1 4096 マシンサイクル (16MHz で 256µs) 機能 本ビット群は入力時における電圧サンプリング時間の持続時間を決定するものです。 本ビット群を読み込むと常に "00" が読み出されます。 210 第 16 章 A/D コンバータ 【bit12, bit11】CT1, CT0 (Compare time) 表 16.3-5 CT1, CT0 の機能 CT1 CT0 0 0 176 マシンサイクル (8MHz で 22µs) 0 1 352 マシンサイクル (16MHz で 22µs) 1 0 予約 1 1 予約 機能 本ビット群は比較操作時間の持続期間を決定するものです。 本ビットを "00" に設定するときはマシンクロックが 8MHz 以下のときにしてください。 8MHz より高速の場合には変換精度が保証されません。 本ビット群を読み込むと常に "00" が読み出されます。 211 第 16 章 A/D コンバータ 16.4 A/D コンバータの動作 A/D コンバータは逐次比較方式で作動し , 分解能は 10 ビットまたは 8 ビットから選 択することができます。 この A/D コンバータは変換結果記憶用のレジスタが 1 つ (16 ビット ) であるため , A/D データレジスタ 0/1 (ADCR0 および ADCR1) は変換が完了するたびに書き換え られます。このため , A/D コンバータ単独では連続変換処理には適しませんので拡張 インテリジェント I/O 機能 (EI2OS) を使って変換データをメモリに転送しながら変 換することを推奨いたします。 ■ 単発モード 単発モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい き ANE ビットで設定された終了チャネルまで変換が終わると A/D は動作を停止しま す。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS で指定したチャネル のみの変換動作になります。 例: ANS=000, ANE=011 開始→ AN0 → AN1 → AN2 → AN3 →終了 ANS=010, ANE=010 開始→ AN2 →終了 ■ 連続モード 連続モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい き ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に 戻り A/D 変換動作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS で指定したチャネルのみの変換を続けます。 例: ANS=000, ANE=011 開始→ AN0 → AN1 → AN2 → AN3 → AN0-- →繰返し ANS=010, ANE=010 開始→ AN2 → AN2 → AN2-- →繰返し 連続モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し続けま す (BUSY ビットに "0" を書き込む→強制動作停止 ) 。強制動作停止を行うと変換中の ものは途中で止まってしまうため , 注意してください (強制動作停止した場合は変換レ ジスタは変換完了した前データが格納されています ) 。 212 第 16 章 A/D コンバータ ■ 停止モード 停止モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい きますが 1 チャネル変換するたびに変換動作を一時停止します。一時停止を解除する にはもう一度起動をかけることにより行われます。 ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に戻 り A/D 変換動作を続けます。開始チャネルと終了チャネルが同じ (ANS=ANE) であれ ば変換は 1 つのチャネルに対してのみ実行されます。 例: ANS=000, ANE=011 開始→ AN0 →停止→起動→ AN1 →停止→起動→ AN2 →停止→起動→ AN3 →停止→起動→ AN0-- →繰返し ANS=010, ANE=010 開始→ AN2 →停止→起動→ AN2 →停止→起動→ AN2-- →繰返し このときの起動要因は STS1, STS0 で設定されたものだけです。 このモードを使用することにより変換開始の同期をかけることが可能です。 213 第 16 章 A/D コンバータ 16.5 EI2OS を使った変換動作 図 16.5-1 に , A/D 変換起動から変換データ転送までのフロー例 ( 連続モード ) を示 します。 ■ EI2OS を使った変換動作 図 16.5-1 A/D 変換起動から変換データ転送までのフロー例 ( 連続モード ) A/D 変換起動 サンプル & ホールド EI2OS 起動 変換 データ転送 変換終了 割込み発生 ☆は EI2OS の設定で決まります。 214 割込み処理 割込みクリア 第 16 章 A/D コンバータ 16.5.1 単発モード時の EI2OS の起動例 単発モード時の EI2OS は次の手順で起動します。 • アナログ入力 AN1 ∼ AN3 の変換をして終了する。 • 変換データは 200H ∼ 205H 番地に順に転送する。 • ソフトウェアで変換を開始する。 • 最高の割込みレベルを使用する。 ■ 単発モード時の EI2OS の起動例 表 16.5-1 単発モード時の EI2OS の起動例 設定項目 プログラム例 MOV ICR10,#08H 動作説明 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリ プタアドレスの設定。 MOV BAPL,#00H MOV BAPM,#02H EI2OS の設定 変換データの転送先番地。 MOV BAPH,#00H MOV ISCS,#18H ワードデータ転送 , 転送後転送先番地をインクリメ ントする。I/O からメモリへ転送。リソースからの 要求で終了しない。 MOV IOA,#36H 転送元アドレス MOV DCT,#03H EI2OS 転送を 3 回行う。変換回数と同じにする。 MOV ADCS0#0BH 単発モード , 開始チャネル AN1, 終了チャネル AN3 MOV ADCS1#A2H ソフト起動 , A/D 変換開始 RET 割込みからの復帰 A/Dコンバータ設定 割込みシーケンス ICR10: 割込み制御レジスタ BAPL: バッファアドレスポインタ下位 BAPM: バッファアドレスポインタ中位 BAPH: バッファアドレスポインタ上位 ISCS:EI2OS ステータスレジスタ IOA:I/O アドレスカウンタ DCT: データカウンタ 215 第 16 章 A/D コンバータ 図 16.5-2 単発変換モードの EI2OS 起動プログラム例のフロー 起動開始 AN1 割込み → EI2OS 転送 AN2 割込み → EI2OS 転送 AN3 割込み → EI2OS 転送 終了 割込みシーケンス 並行処理 216 第 16 章 A/D コンバータ 16.5.2 連続モード時の EI2OS の起動例 連続モード時の EI2OS の起動例は次のとおりです。 • アナログ入力 AN3 ∼ AN5 の変換をして各チャネルの変換データを 2 つ取得する。 • 変換データは 600H ∼ 60BH 番地に順に転送する。 • 起動は外部エッジ入力で行う。 • 割込みレベル最強 ■ 連続モード時の EI2OS の起動例 表 16.5-2 連続モード時の EI2OS の起動例 設定項目 プログラム例 MOV ICR10#08H 動作説明 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリ プタアドレスの設定。 MOV BAPL,#00H MOV BAPM,#06H 変換データの転送先番地 MOV BAPH,#00H EI2OS の設定 MOV ISCS,#18H ワードデータ転送 , 転送後転送先番地をインクリメ ントする。I/O からメモリへ転送。リソースからの 要求で終了しない。 MOV IOA,#36H 転送元アドレス MOV DCT,#06H EI2OS 転送を 6 回行う。3 チャネル× 2 分のデータ 転送を行う。 MOV ADCS0#9DH 連続モード , 開始チャネル AN3, 終了チャネル AN5 MOV ADCS1#A4H 外部エッジ起動 , A/D 変換開始 A/Dコンバータ設定 EI2OS 終 了 割 込 み シーケンス MOV ADCS1#00H 割込みからの復帰 RET ICR10: 割込み制御レジスタ BAPL: バッファアドレスポインタ下位 BAPM: バッファアドレスポインタ中位 BAPH: バッファアドレスポインタ上位 ISCS:EI2OS ステータスレジスタ IOA:I/O アドレスカウンタ DCT: データカウンタ 217 第 16 章 A/D コンバータ 図 16.5-3 連続変換モードの EI2OS 起動プログラム例のフロー 起動開始 AN3 割込み → EI2OS 転送 AN4 割込み → EI2OS 転送 AN5 割込み → EI2OS 転送 全 6 回転送後 割込みシーケンス 終了 218 第 16 章 A/D コンバータ 16.5.3 停止モード時の EI2OS の起動例 停止モード時の EI2OS の起動例は , 次のとおりです。 • アナログ入力 AN3 を一定期間おいて 12 回変換する。 • 変換データは 600H ∼ 617H 番地に順に転送する。 • 起動は外部エッジ入力で行う。 • 割込みレベル最強 ■ 停止モード時の EI2OS の起動例 表 16.5-3 停止モード時の EI2OS の起動例 設定項目 プログラム例 MOV ICR10#08H 動作説明 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリ プタアドレスの設定。 MOV BAPL,#00H MOV BAPM,#06H EI2OS の設定 MOV BAPH,#00H MOV ISCS,#18H ワードデータ転送 , 転送後転送先番地をインクリメ ントする。I/O からメモリへ転送。リソースからの 要求で終了しない。 MOV IOA,#36H 転送元アドレス MOV DCT,#0CH EI2OS 転送を 12 回行う。 MOV ADCS0#DBH 停止モード , 開始チャネル AN3, 終了チャネル AN3 (1 チャネル変換 ) MOV ADCS1#A4H 外部エッジ起動 , A/D 変換開始 A/Dコンバータ設定 EI2OS 終 了 割 込 み シーケンス 変換データの転送先番地。 MOV ADCS1#00H 割込みからの復帰 RET ICR10: 割込み制御レジスタ BAPL: バッファアドレスポインタ下位 BAPM: バッファアドレスポインタ中位 BAPH: バッファアドレスポインタ上位 ISCS:EI2OS ステータスレジスタ IOA:I/O アドレスカウンタ DCT: データカウンタ 219 第 16 章 A/D コンバータ 図 16.5-4 停止モードの EI2OS 起動プログラム例のフロー 起動開始 AN3 割込み → EI2OS 転送 12 回転送後 停止 外部エッジ起動 割込みシーケンス 終了 220 第 16 章 A/D コンバータ 16.6 変換データ保護機能 A/D コンバータは , 変換データ保護機能を持ち EI2OS を使って連続変換と複数の データを確保できることを特長としています。 A/D データレジスタは 1 つですので連続で A/D 変換をすると 1 回の変換終了と共に 変換データが格納されて前データが失われます。これを保護するために , 本 A/D コ ンバータは変換が終了しても前データが EI2OS を使ってメモリへ転送されていない と変換データはレジスタに格納されず A/D は一時停止する機能を持っています。 ■ 変換データ保護機能 一時停止の解除は EI2OS でメモリへ転送された後 , 行われます。 前データが転送されていれば一時停止することなく A/D は連続して変換します。 < 注意事項 > この機能は ADCS1 の INT, INTE ビットに関係しています。 変換データ保護機能は割込み許可 (INTE=1) 状態でしか動作しないようになってい ます。 割込み禁止 (INTE=0) の場合は本機能は動作せず連続で A/D 変換を行った場合は 次々に変換データはレジスタに格納されて旧データは失われます。 また , 割込み許可 (INTE=1) 状態で EI2OS を使わない場合は INT ビットはクリアさ れないため , 変換データ保護機能が働き A/D は変換を一時停止状態にします。この 場合は割込みシーケンスで INT ビットをクリアすると停止状態が解除されます。 EI2OS 動作中で A/D が一時停止をしているときに割込みを禁止にすると A/D が動 作し転送する前に A/D データレジスタの内容が変わることがあります。 また , 一時停止中に再起動をかけると待機データが壊れます。 221 第 16 章 A/D コンバータ ■ 変換データ保護機能のフロー例 (EI2OS の場合 ) 図 16.6-1 変換データ保護機能のフロー例 (EI2OS の場合 ) EI2OS 設定 A/D 連続変換起動 1 回変換終了 A/D データレジスタに格納 EI2OS 起動 2 回変換終了 EI2OS 終了 NO A/D 一時停止 YES YES A/D データレジスタに格納 EI2OS 終了 NO EI2OS 起動 3 回変換終了 続く EI2OS 起動 すべて変換終了 割込みルーチン 終了 A/D 停止 ■ 変換データ保護機能の使用上の注意 A/D コンバータを外部トリガまたは内部タイマを使って起動する場合 ADCS1 レジスタ の A/D 起動要因ビット STS1, STS0 で設定しますが , このときに外部トリガおよび内部 タイマの入力値はインアクティブ側の状態で設定してください。アクティブ側にして おくと動作しはじめる場合があります。 STS1 および STS0 をセットする場合には必ず , ADTG に対して "1" ( 入力 ) を指定し内 部タイマ ( タイマ 2) に対しては "0" ( 出力 ) を指定してください。 222 第 17 章 UART0 この章では , UART0 の機能と動作について説明し ます。 17.1 UART0 の特長 17.2 UART0 のブロックダイヤグラム 17.3 UART0 のレジスタ 17.4 UART0 の動作 17.5 ボーレート 17.6 内部クロックおよび外部クロック 17.7 転送データフォーマット 17.8 パリティビット 17.9 割込み生成とフラグのセットタイミング 17.10 UART0 の応用例 223 第 17 章 UART0 17.1 UART0 の特長 UART は , 非同期 ( 調歩同期 ) 通信または CLK 同期通信を行うためのシリアル I/O ポートです。MB90590 シリーズには 3 本の UART があります。次節では UART0 の 機能についてのみ記述します。残りの UART も同じ機能を持ち , レジスタアドレス については「付録 A I/O マップ」に記しています。 ■ UART0 の特長 UART0 には以下の特長があります。 • 全二重ダブルバッファ • CLK 同期と CLK 非同期調歩式データ転送のサポート • マルチプロセッサモードのサポート • 専用ボーレートジェネレータの内蔵 (12 種類 ) • 外部クロック入力または内部タイマによる自由なボーレート設定のサポート • 可変長データ (7 ∼ 9 ビット [ パリティなし ], 6 ∼ 8 ビット [ パリティあり ]) • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 割込み機能 ( 受信割込みと送信割込み ) • NRZ 形式の転送フォーマット 224 第 17 章 UART0 17.2 UART0 のブロックダイヤグラム 図 17.2-1 に , UART0 のブロックダイヤグラムを示します。 ■ UART0 のブロックダイヤグラム 図 17.2-1 UART0 のブロックダイヤグラム 制御バス 受信割込み (CPU へ ) 専用ボーレートクロック SCK0 送信クロック 16 ビットリロードタイマ 0 クロック 選択回路 送信割込み (CPU へ ) 受信クロック SCK0 SIN0 受信制御回路 送信制御回路 スタートビット 検出回路 送信スタート回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ SOT0 送信用シフタ 受信用シフタ 受信状態判定回路 受信終了 送信開始 UIDR UODR EI2OS 用 受信エラー発生信号 (CPU へ ) データバス UMC レジスタ PEN SBL MC1 MC0 SMDE RFC SCKE SOE USR レジスタ RDRF ORFE PE TDRE RIE TIE RBF TBF URD レジスタ BCH RC3 RC2 RC1 RC0 BCH0 P D8 制御バス 225 第 17 章 UART0 17.3 UART0 のレジスタ UART0 には , 次の 4 つのレジスタがあります。 • シリアルモード制御レジスタ 0 • シリアルステータスレジスタ 0 • シリアルインプットデータ / シリアルアウトプットデータレジスタ 0 • レート・データレジスタ 0 ■ UART0 のレジスタ 図 17.3-1 UART0 のレジスタ シリアルモード制御レジスタ 0 bit アドレス : 000020H 7 6 5 4 3 2 1 0 PEN SBL MC1 MC0 SMDE RFC SCKE SOE (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) (R/W) (0) (R/W) (0) 14 13 12 11 10 9 8 PE TDRE RIE TIE RBF TBF (R) (0) (R) (1) (R/W) (0) (R/W) (0) (R) (0) (R) (0) リード / ライト→ (R/W) (0) 初期値→ UMC0 シリアルステータスレジスタ 0 bit 15 アドレス : ch.0 000021H RDRF ORFE リード / ライト→ 初期値→ (R) (0) (R) (0) USR0 シリアルインプットデータレジスタ 0/ シリアルアウトプットデータレジスタ 0 bit アドレス : 000022H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 BCH RC3 RC2 RC1 RC0 BCH0 P D8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ UIDR0( リード ) UODR0( ライト ) レート・データレジスタ 0 bit アドレス : ch.0 000023H リード / ライト→ (R/W) (0) 初期値→ 226 URD0 第 17 章 UART0 17.3.1 シリアルモード制御レジスタ 0 (UMC0) シリアルモード制御レジスタ 0 (UMC0) は , UART0 の動作モードを指定します。動 作が停止中に動作モードを設定します。ただし , RFC ビットは動作中もアクセス可 能です。 ■ シリアルモード制御レジスタ 0 (UMC0) の構成 図 17.3-2 シリアルモード制御レジスタ 0 (UMC0) bit アドレス : ch.0 000020H 7 6 5 4 3 2 1 0 PEN SBL MC1 MC0 SMDE RFC SCKE SOE (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (W) (1) (R/W) (0) (R/W) (0) リード / ライト→ (R/W) (0) 初期値→ UMC0 ■ シリアルモード制御レジスタ 0 (UMC0) の内容 【bit7】PEN(Parity Enable) シリアルデータ I/O でパリティビットの追加 ( 送信時 ) または検出 ( 受信時 ) を指定し ます。モード 2 では "0" に設定します。 0: パリティなし 1: パリティあり 【bit6】SBL(Stop Bit Length) 送信データのストップビット数を指定します。受信データについては , 最初のストップ ビットだけが認識され , それ以降のストップビットは無視されます。 0:1 ビット長 1:2 ビット長 【bit5, bit4】MC1, MC0 (Mode control) 転送データの長さを制御します。表 17.3-1 に , 本ビットで選択可能な 4 つの転送モー ド ( データ長 ) を示します。 表 17.3-1 UART 動作モード モード MC1 MC0 データ長 *1 0 0 0 7(6) 1 0 1 8(7) 2*2 1 0 8+1 3 1 1 9(8) *1: 括弧内の数字は , パリティ付きのデータ長を示します。 *2: いくつものスレーブ CPU が単一ホスト CPU に接続している場合 , モード 2 が使 用されます。受信パリティチェック機能は使用不可のため , UMC レジスタ中の PEN を "0" に設定してください ( 詳細については , 「17.4 UART0 の動作」を参 照 ) 。送信データ長は 9 ビットで , パリティビットは追加できません。 227 第 17 章 UART0 【bit3】SMDE(Synchro mode enable) SMDE は , 転送方法を選択します。 0: 調歩式 CLK 同期転送 ( 調歩ビットによるクロック選択の同期転送 ) 1: 調歩式 CLK 非同期転送 【bit2】RFC(Receiver flag clear) "0" を書き込むと , USR レジスタ中の RDRF, ORFE, PE フラグがクリアされます。"1" 書込みは無効であり , 読出し値は常に "1" になります。 < 注意事項 > 受信割込みが UART0 操作中許可されている場合 , RDRF, ORFE, PE のどれかが "1" になっていれば , RFC には "0" のみを書き込みます。 【bit1】SCKE(SCLK Enable) CLK 同期モードで本ビットに "1" を書き込むと , ポート端子が UART0 シリアルクロッ ク出力端子に切り換わり , 同期クロックが出力されます。CLK 同期モードまたは外部 クロックモードで "0" を設定してください。 0: 汎用入出力ポートとして機能し , シリアルクロックを出力しません。ポートが入力 モード (DDR=0) に設定され , RC3 ∼ RC0 が "1111" に設定されている場合 , 外部ク ロック入力端子として機能します。 1:UART0 シリアルクロック出力端子として機能します。 < 注意事項 > ポート端子をクロック出力として使用している場合 , ポート方向レジスタの対応す るビットを "1" に設定する必要があります。これは UART0 専用です。 【bit0】SOE(Serial Output Enable) "1" を書き込むと , ポート端子が UART0 シリアルデータ出力端子に切り換わり , シリ アル出力が可能になります。 0: ポート端子として機能し , シリアルデータを出力しません。 1:UART0 シリアルデータ出力端子として機能します。 < 注意事項 > 228 ポート端子をシリアル出力として使用している場合 , ポート方向レジスタの対応す るビットを "1" に設定する必要があります。これは UART0 専用です。 第 17 章 UART0 17.3.2 シリアルステータスレジスタ 0 (USR0) シリアルステータスレジスタ 0 (USR0) は , UART0 ポートの現在の状態を示します。 ■ シリアルステータスレジスタ 0 (USR0) の構成 図 17.3-3 シリアルステータスレジスタ 0 (USR0) bit 15 14 アドレス : ch.0 000021H RDRF ORFE リード / ライト→ 初期値→ (R) (0) (R) (0) 13 12 11 10 9 8 PE TDRE RIE TIE RBF TBF (R) (0) (R) (1) (R/W) (0) (R/W) (0) (R) (0) (R) (0) USR0 ■ シリアルステータスレジスタ 0 (USR0) の内容 【bit15】RDRF(Receiver Data Register Full) UIDR0 ( インプットデータレジスタ ) の状態を示すフラグです。UIDR0 レジスタに受 信データがロードされるとセットされ , UIDR0 レジスタを読み出すか , UMC0 レジスタ 中の RFC に "0" を書き込むと , クリアされます。RIE がアクティブな場合 , RDRF が セットされていれば受信割込み要求が生成されます。 0:UIDR0 中にデータなし 1:UIDR0 中にデータあり 【bit14】ORFE(Over-run/framing error) 受信中にオーバランまたはフレーミングエラーが発生した場合にセットされるフラグ です。UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。本フラグをセッ トすると , UIDR0 中のデータは無効になり , 受信用シフタから UIDR0 へのロードが実 行されません。RIE がアクティブな場合 , ORFE がセットされていれば受信割込み要求 が生成されます。 0: エラーなし 1: エラーあり 表 17.3-2 に , RDRF または ORFE による受信完了後の UIDR0 の状態を示します。 表 17.3-2 受信完了後の UIDR0 の状態 RDRF ORFE 0 0 空 0 1 フレーミングエラー 1 0 有効データ 1 1 オーバランエラー UIDR0 データの状態 オーバランまたはフレーミングエラーが発生した場合 , UIDR 中のデータは無効です。 次のデータはフラグクリア後に受信できます。 229 第 17 章 UART0 【bit13】PE(Parity Error) 受信パリティエラーが発生した場合にセットされるフラグです。UMC レジスタ中の RFC に "0" を書き込むと , クリアされます。本フラグをセットすると , UIDR0 中のデー タは無効になり , 受信用シフタから UIDR0 へのロードが実行されません。RIE がアク ティブな場合 , PE がセットされていれば受信割込み要求が生成されます。 0: パリティエラーなし 1: パリティエラー発生 【bit12】TDRE(Transmitter Data Register Empty) UODR0 ( アウトプットデータレジスタ ) の状態を示すフラグです。UODR0 レジスタに 送信データを書き込むと , クリアされます。データが送信用シフタにロードされ , 転送 が開始されるとセットされます。TIE がアクティブな場合 , TDRE がセットされていれ ば受信割込み要求が生成されます。 0:UODR0 中にデータあり 1:UODR0 中にデータなし 【bit11】RIE(Receiver Interrupt Enable) 受信割込み要求を許可します。 0: 割込みを禁止します。 1: 割込みを許可します。 【bit10】TIE(Transmitter Interrupt Enable) 送信割込み要求を許可します。TDRE が "1" のとき送信割込みが許可されると , 送信割 込みが直ちに生成されます。 0: 割込みを禁止します。 1: 割込みを許可します。 【bit9】RBF(Receiver Busy Flag) UART0 がインプットデータを受信中であることを示すフラグです。スタートビットが 検出されるとセットされ , ストップビットが検出されるとクリアされます。 0: 受信側がアイドル状態 1: 受信側がビジー状態 【bit8】TBF(Transmitter Busy Flag) UART0 がインプットデータを送信中であることを示すフラグです。送信データが UODR0 レジスタに書き込まれるとセットされ , 送信が完了するとクリアされます。 0: 送信側がアイドル状態 1: 送信側がビジー状態 230 第 17 章 UART0 17.3.3 シリアルインプットデータレジスタ 0 (UIDR0) とシ リアルアウトプットレジスタ 0 (UODR0) シリアルインプットデータレジスタ 0 (UIDR0) は , シリアルデータの入力 ( 受信 ) 用 レジスタであり , シリアルアウトプットレジスタ 0 (UODR0) は , データの出力 ( 送 信 ) 用レジスタです。 ■ シリアルインプットデータレジスタ 0 (UIDR0) とシリアルアウトプットレジスタ 0 (UODR0) 図 17.3-4 シリアルインプットデータレジスタ 0 (UIDR0) と シリアルアウトプットレジスタ 0 (UODR0) bit アドレス : ch.0 000022H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ UIDR0( リード ) UODR0( ライト ) データ長が 6 ビットの場合 , 最大有効ビットの D7 と D6 が無視され , データ長が 7 ビッ トの場合 , 最大有効ビットの D7 が無視されます。USR レジスタ中の TDRE="1" のとき のみUODRに書き込みし, USRレジスタ中のRDRF="1"のときのみUIDRを読出します。 231 第 17 章 UART0 17.3.4 レート・データレジスタ 0 (URD0) レート・データレジスタ 0 (URD0) は , UART0 用のデータ転送速度を選択するレジ スタです。送信データ長が 9 ビットのとき , データの最大有効ビット ( ビット 8) を 保持します。UART0 が停止中にボーレートとパリティを設定してください。 ■ レート・データレジスタ 0 (URD0) の構成 図 17.3-5 レート・データレジスタ 0 (URD0) bit アドレス : ch.0 000023H 15 14 13 12 11 10 9 8 BCH RC3 RC2 RC1 RC0 BCH0 P D8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (X) リード / ライト→ (R/W) (0) 初期値→ URD0 ■ レート・データレジスタ 0 (URD0) の内容 【bit15, bit10】BCH, BCH0 (Baud rate clock change) ボーレートクロック用のマシンサイクルを指定します ( 詳細については , 「17.5 ボー レート」を参照 ) 。 表 17.3-3 マシンサイクルの設定例 < 注意事項 > BCH BCH0 分周比 0 0 - 0 1 4 分周 16MHz マシンサイクル 16/4=4MHz 1 0 3 分周 12MHz マシンサイクル 12/3=4MHz 1 1 5 分周 10MHz マシンサイクル 10/5=2MHz 各マシンサイクルの設定例 設定禁止 BCH と BCH0 を "00" に設定しないでください。 【bit14 ∼ bit11】RC3, RC2, RC1, RC0 (Rate control) UART0 ポート用のクロック入力を選択します ( 詳細については , 「17.5 ボーレート」 を参照 ) 。 表 17.3-4 クロック入力選択 RC3 ∼ RC0 "0000" ∼ "1011" < 注意事項 > 232 クロック入力 専用ボーレートジェネレータ "1101" 16 ビット リロードタイマ 0 "1111" 外部クロック レートコントロールビットを "1100""1110" に設定しないでください。 第 17 章 UART0 【bit9】P(Parity) パリティがアクティブのとき , 偶数 / 奇数パリティを設定します (PEN="1")。 0: 偶数パリティ 1: 奇数パリティ 【bit8】D8 モード 2 または 3 (9 ビットデータ長 ) およびパリティなしでの転送データの bit8 を保 持します。読出し時には UIDR0 レジスタの bit8 として , 書込み時には UODR0 レジス タの bit8 として扱われます。その他のモードでは意味を持ちません。USR0 レジスタ中 で TDRE="1" のときのみ D8 に書き込みます。 233 第 17 章 UART0 17.4 UART0 の動作 表 17.4-1 に , UART0 の動作モードを示します。モードを切り換えるには , UMC レ ジスタに値を設定します。 ■ UART0 の動作モード 表 17.4-1 UART0 の動作モード モード パリティ データ長 On 6 Off 7 On 7 Off 8 Off 8+1 On 8 Off 9 クロックモード ストップビット長 * 0 1 2 CLK 非 同 期 ま た は CLK 同期 1 ビットまたは 2 ビット 3 *: ストップビット長については , 送信動作のみ指定が可能です。受信動作について は常に 1 ビット長となります。UART0 は上記モード以外では動作しませんので , 設定しないでください。 < 注意事項 > 234 UART0 は , 調歩クロック同期転送を使用するので , クロック同期転送でもスタート ビットとストップビットをデータに追加します。 第 17 章 UART0 17.5 ボーレート 専用ボーレートジェネレータ使用時には , 次の 2 種類があります。 • CLK 同期ボーレート • CLK 非同期ボーレート ■ CLK 同期ボーレート BCH, BCH0, RC3, RC2, RC1 の 5 つの URD レジスタが CLK 同期転送用のボーレートを 選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 1 → 4 分周 [ 例 : 16 MHz 時 16/4 = 4 MHz] 1 0 → 3 分周 [ 例 : 12 MHz 時 12/3 = 4 MHz] 1 1 → 5 分周 [ 例 : 10 MHz 時 10/5 = 2 MHz] 次に , 上記で選択したクロックの分周比を RC3, RC2, RC1 に設定します。CLK 同期転 送には , 以下の 3 つの設定が可能です。それ以外の設定は禁止されます。 RC3 RC2 RC1 0 1 0 → 2 分周 [ 例 : 4 MHz 時 4/2 = 2.0 M (bps)] 0 1 1 → 4 分周 [ 例 : 4 MHz 時 4/4 = 1.0 M (bps)] 1 0 0 → 8 分周 [ 例 : 4 MHz 時 4/8 = 0.5 M (bps)] (2 MHz 時 , 上記の例の半分の速度になります。) ■ CLK 非同期ボーレート BCH, BCH0, RC3, RC2, RC1, RC0 の 6 つの URD レジスタが CLK 非同期転送用のボー レートを選択します。 最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。 BCH BCH0 0 1 → 4 分周 [ 例 : 16 MHz 時 16/4 = 4 MHz] 1 0 → 3 分周 [ 例 : 12 MHz 時 12/3 = 4 MHz] 1 1 → 5 分周 [ 例 : 10 MHz 時 10/5 = 2 MHz] 次に , 上記で選択したクロックの非同期転送クロック分周比を RC3, RC2, RC1, RC0 に 設定します。CLK 同期転送には , 以下の設定が可能です。 235 第 17 章 UART0 RC3 RC2 RC1 RC0 0 0 0 → 8 × 1 分周 0 1 0 → 8 × 2 分周 0 1 1 → 8 × 4 分周 1 0 0 → 8 × 8 分周 0 0 1 → 分周なし 1 0 1 → 8 分周 × × 0 → 12 分周 1 → 13 分周 0 → 設定禁止 1 → 8 分周 上記の 12 個のボーレートが選択可能であり , CLK 同期ボーレートの計算方法の公式を 以下に示します。 ここで , はマシンサイクルであり , m は RC3 ∼ RC1 の 10 進数表記です。 < 注意事項 > 236 ボーレート = ボーレート = ボーレート = φ/4 2m-1 φ/3 2m-1 φ/5 2m-1 [bps] ( マシンサイクル= 16 MHz) [bps] ( マシンサイクル= 12 MHz) [bps] ( マシンサイクル= 10 MHz) m=0 または m=1 の場合 , 上記公式は計算不可です。 CLK 非同期ボーレートが -1% ∼ +1% の範囲にある場合 , データ転送が可能です。 ボーレートは , CLK 非同期ボーレートを 8 × 13, 8 × 12, 8 で割った値です。 表 17.5-1 に , マシンサイクルが 16MHz, 12MHz, 10MHz 時の例を示します。表中の "_" でマークした設定は使用しないでください。 第 17 章 UART0 表 17.5-1 ボーレート CLK 非同期 (µs/ ボー ) RC3 RC2 RC1 RC0 16MHz 12MHz 10MHz BCH/ 0=01 BCH/ 0=10 BCH/ 0=11 - - 48/20833 26/38460 26/38460 52/19230 CLK 同期 (µs/ ボー ) 16MHz 12MHz 10MHz BCH/ 0=01 BCH/ 0=10 BCH/ 0=11 8 × 12 - - - 8 × 13 - - - 8 - - - CLK 非同期分周比 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 2/500000 2/500000 4/250000 8 - - - 0 1 0 0 48/20833 48/20833 96/10417 8 × 12 - - - 0 1 0 1 52/19230 52/19230 104/9615 8 × 13 0.5/2M 0.5/2M 1/1M 0 1 1 0 96/10417 96/10417 192/5208 8 × 12 - - - 0 1 1 1 104/9615 104/9615 208/4808 8 × 13 1/1M 1/1M 2/500K 1 0 0 0 192/5208 192/5208 8 × 12 - - - 1 0 0 1 208/4808 208/4808 416/2404 8 × 13 2/500K 2/500K 4/250K 1 0 1 0 8 - - - 1 0 1 1 8 - - - - - - - - - - 16/62500 16/62500 32/31250 237 第 17 章 UART0 17.6 内部クロックおよび外部クロック RC3 ∼ RC0 を "1101" に設定すると , 16 ビット リロードタイマからのクロック信 号を選択することになります。RC3 ∼ RC0 を "1111" に設定すると , 外部クロック を選択することになります。なお , 外部クロックの最大周波数は 2MHz です。 ■ 内部クロックおよび外部クロック CLK 非同期ボーレートは , CLK 同期ボーレートを 8 で割ったものです。また , CLK 非 同期ボーレートが選択したボーレート -1% ∼ +1% の範囲にある場合 , データ転送が可 能です。表 17.6-1 に , 内部タイマをクロックとして選択した場合のボーレートを示し ます。本表の値は , マシンサイクルを 7.3728MHz として計算しています。ただし , 表 中の "_" でマークした設定は使用しないでください。 ボーレート = φ/X 8 × 2 (n+1) [bps] φ :マシンサイクル X :内部タイマのカウントクロックソースの分周比 n :リロード値 (10 進数 ) 表 17.6-1 ボーレートとリロード値 ボーレート リロード値 X=21 ( マシンクロックの 2 分周 ) X=23 ( マシンクロックの 8 分周 ) 76800 2 ― 38400 5 ― 19200 11 2 9600 23 5 4800 47 11 2400 95 23 1200 191 47 600 383 95 300 767 191 表中の値は , 16 ビット リロードタイマのリロードカウント動作のリロード値 (10 進数 ) です。 238 第 17 章 UART0 転送データフォーマット 17.7 UART0 は , NRZ(non-return-to-zero) 形式のデータのみを扱います。図 17.7-1 に , 送受信クロックと CLK 同期モードのデータとの関係を示します。 ■ 転送データフォーマット 図 17.7-1 転送データフォーマット SCK0 SIN0, SOT0 0 1 0 起動 LSB 1 1 0 0 1 0 1 1 ⎫ MSB 停止 D8 停止 ⎬ モードに依存 ⎭ 転送されたデータは 01001101B ( モード 1) または 101001101B ( モード 3) 。 図 17.7-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始 まり , LSB ファーストで指定されたデータビット長転送が行われ , ストップビット ("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロックを入 力してください。 内部クロック ( 専用ボーレートジェネレータまたは 16 ビット リロードタイマ ) を選択 している場合 , クロックは連続的に出力されます。CLK 同期転送を使用する場合 , 選択 したボーレートクロックが安定 (2 ボーレートクロックサイクル ) するまでデータ転送 を開始しないでください。 CLK 非同期転送を使用する場合 , UMC0レジスタ中の SCKE ビットを "0" に設定し , クロッ ク出力を無効にしてください。SIN0 と SOT0 の転送データフォーマットは , 図 17.7-1 に示 すものと同じです。 239 第 17 章 UART0 17.8 パリティビット URD0 レジスタ中の P ( パリティ ) ビットは , パリティが許可されている場合に 偶数 / 奇数パリティのどちらを使用するかを指定します。UMC レジスタ中の PEN ( パリティイネーブル ) ビットはパリティを許可します。 ■ パリティビット 偶数パリティ設定時に図 17.8-1に示すデータをSINに入力すると, 受信パリティエラー が発生します。図 17.8-1 には , 001101B を偶数 / 奇数パリティで送信時に送信される データも示しています。 図 17.8-1 パリティを許可したシリアルデータ SIN0 ( 受信パリティエラー発生 P=0) 0 1 0 1 1 0 起動 LSB 0 MSB 0 1 停止 ( パリティ ) SOT0 ( 偶数パリティ送信 P=0) 0 1 0 1 1 0 0 MSB 1 1 停止 ( パリティ ) 起動 LSB SOT0 ( 奇数パリティ送信 P=1) 0 1 起動 LSB 240 0 1 1 0 0 MSB 0 1 停止 ( パリティ ) 第 17 章 UART0 17.9 割込み生成とフラグのセットタイミング UART0 には , 2 つの割込み要因と 6 個のフラグがあります。2 つの割込み要因には , 受信割込みと送信割込みがあります。6 個のフラグとは , RDRF, ORFE, PE, TDRE, RBF, TBF です。受信については , RDRF, ORFE, PE フラグが割込みを要求します。 送信については , TDRE フラグが割込みを要求します。 ■ フラグのセットタイミング ● RDRF フラグ RDRF は UIDR レジスタに受信データがロードされるとセットされます。UMC レジス タ中の RFC に "0" を書き込むか , UIDR0 レジスタを読み出すと , クリアされます。 ● ORFE フラグ ORFE フラグは , オーバランまたはフレーミングエラーフラグです。受信エラーが発生 した場合にセットされ , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。 ● PE フラグ PE フラグは , 受信パリティエラーフラグです。受信パリティエラーが発生した場合に セットされ , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。パリティ 検出機能はモード 2 では有効ではないので注意してください。 ● TDRE フラグ TDRE フラグは , UODR0 レジスタが空になり書込み可能になったときにセットされ , UODR0 レジスタに書込みを行うと , クリアされます。上記の 4 個のフラグ (RDRF, ORFE, PE, TDRE) は , 送受信割込みを起動します。 ● RBF と TBF フラグ RBF と TBF フラグは , 受信または送信が進行中であることを示します。RBF は受信中 にアクティブになります。TBF は送信中にアクティブになります。 241 第 17 章 UART0 受信動作時 ( モード 0, モード 1, モード 3) のフラグの セットタイミング 17.9.1 RDRF, ORFE, PE フラグは , 受信転送が終了し最後のストップビットを検出すると きにセットされ , CPU への割込み要求が発生します。ORFE, PE のどちらかのビッ トがアクティブ時には , UIDR0 中のデータは無効となります。 ■ 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング 図 17.9-1, 図 17.9-2, 図 17.9-3 に , RDRF, ORFE, PE フラグのセットタイミングを示しま す。 図 17.9-1 RDRF のセットタイミング ( モード 0, 1, 3) 停止 データ ( 停止 ) RDRF 受信割込み 図 17.9-2 ORFE のセットタイミング ( モード 0, 1, 3) データ 停止 RDRF = 1 データ 停止 RDRF = 0 ORFE ORFE 受信割込み 受信割込み ( フレーミングエラー ) ( オーバランエラー ) 図 17.9-3 PE のセットタイミング ( モード 0, 1, 3) データ PE 受信割込み 242 停止 ( 停止 ) 第 17 章 UART0 17.9.2 受信動作時 ( モード 2) のフラグのセットタイミング RDRF フラグは , 最後のストップビットを検出し , 最後のデータビット (D8) の値が "1" で受信転送が終了するときにセットされます。 ORFE フラグは , 最後のデータビット (D8) の値に無関係に , 最後のストップビット を検出するときにセットされます。ORFE ビットがアクティブ時には , UIDR0 中の データは無効となります。 どれかのフラグがセットされると , CPU への割込み要求が発生します ( モード 2 の 使用法の詳細については , 「17.10 UART0 の応用例」を参照 ) 。 ■ 受信動作時 ( モード 2) のフラグのセットタイミング 図 17.9-4 RDRF のセットタイミング ( モード 2) データ D6D7D8 停止 ( 停止 ) RDRF 受信割込み 図 17.9-5 ORFE のセットタイミング ( モード 2) データ D7D8 停止 データ D7D8 RDRF=1 RDRF=0 ORFE ORFE 受信割込み 受信割込み ( オーバランエラー ) 停止 ( フレーミングエラー ) 243 第 17 章 UART0 送信動作時のフラグのセットタイミング 17.9.3 送信動作時に UODR フラグに書き込まれたデータは , 内部シフトレジスタに転送さ れます。このとき , TDRE フラグがセットされ , CPU への割込み要求が発生して , 次 のデータを UODR フラグに書込みができるようになります。 ■ 送信動作時のフラグのセットタイミング 図 17.9-6 TDRE のセットタイミング ( モード 0) UODR ライト TDRE CPU へ割込みを要求する。 送信割込み SOT0 出力 ST D0 ST: スタートビット 244 D1 D2 D3 D4 D5 D6 D0 ∼ D7: データビット D7 SP SP ST D0 SP: ストップビット D1 D2 D3 第 17 章 UART0 送受信動作時のステータスフラグ 17.9.4 送受信動作時に , RBF フラグは , スタートビットが検出されるとセットされ , ストッ プビットが検出されるとクリアされます。UIDR0 中の受信データは , RBF クリアタ イミングではまだ無効状態です。UIDR0 中のデータは , RDRF セットタイミングで 有効になります。 ■ 送受信動作時のステータスフラグ 図 17.9-7 に , RBF と受信割込みフラグのタイミングとの関係を示します。 図 17.9-7 RBF のセットタイミング ( モード 0) SIN0 入力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP RBF RDRF, PE, ORFE ST: スタートビット D0 ∼ D7: データビット SP: ストップビット UODR0 に送信データを書き込むと , TBF がセットされ , 送信が完了するとクリアされ ます。 図 17.9-8 TBF のセットタイミング ( モード 0) UODR ライト ST D0 SOT0 出力 D1 D2 D3 D4 D5 D6 D7 SP SP TBF ST: スタートビット < 注意事項 > D0 ∼ D7: データビット SP: ストップビット SIN0 入力端子が "1" に固定されていない限り , 受信動作はリセットのリリース後に 開始します。このため , モードを設定する前に , UMC0 レジスタ中の RFC に "0" を 書き込み , セットされているすべての受信フラグをクリアしてください。 USR0 レジスタ中の RBF と TBF フラグが "0" のとき , 通信モードをセットしてくだ さい。モード設定中の送受信データは保証されません。 ■ EI2OS ( 拡張インテリジェント I/O サービス ) EI2OS の詳細については ,「3.7 拡張インテリジェント I/O サービス (EI2OS)」を参照し てください。 245 第 17 章 UART0 17.10 UART0 の応用例 モード 2 は , 1 台のホスト CPU の数台のスレーブ CPU が接続されるような場合に 使用されます ( 図 17.10-1 を参照 ) 。 ■ UART0 の応用例 図 17.10-1 RBF のセットタイミング ( モード 0) SIN0 入力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP RBF RDRF, PE, ORFE ST: スタートビット D0 ∼ D7: データビット SP: ストップビット 図 17.10-2 に示すように , 通信は , ホスト CPU がアドレスデータを転送することによっ て始まります。アドレスデータは , 9 番目のビット (D8) が "1" にセットされています。 これにより通信先となるスレーブ CPU が選択され , ユーザが決定したプロトコルを使 用してホスト CPU との通信を行います。通常データは D8 が "0" にセットされていま す。非選択のスレーブ CPU は , 次の通信セッションが始まるまでスタンバイ状態で待 機します。図 17.10-3 に , 本モードでの動作フローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので , UMC0 レジスタ の PEN ビットは "0" としてください。 図 17.10-2 モード 2 使用時のシステム構築例 SOT0 SIN0 ホスト CPU 246 SOT0 SIN0 SOT0 SIN0 スレーブ CPU#0 スレーブ CPU#1 第 17 章 UART0 図 17.10-3 モード 2 使用時の通信フローチャート ( ホスト CPU) ( スレーブ CPU) 起動 起動 転送モードを "3" とする 転送モードを "2" にセット D0 ∼ D7 にスレーブ CPU 選択 , D8 に "1" をセットし , 1 バイト転送 1 バイト受信 NO 選択 ? D8 に "0" をセットし , 通信を実行 終了 YES 転送モードを "3" にセット し , SOT0 出力を許可 マスタ CPU で通信を実行 ステータスフラグを使用し て転送の完了を確認 , 転送 モードを "2" にセットして SOT0 出力を禁止 247 第 17 章 UART0 248 第 18 章 シリアル I/O この章では , シリアル I/O の機能と動作について説 明します。 18.1 シリアル I/O の概要 18.2 シリアル I/O のレジスタ 18.3 シリアル I/O プリスケーラ (CDCR) 18.4 シリアル I/O の動作 18.5 ネガティブクロック動作 249 第 18 章 シリアル I/O 18.1 シリアル I/O の概要 シリアル I/O の動作モードには , 以下の 2 種類があります。 • 内部シフトクロックモード……内部クロックに同期してデータ転送を行います。 • 外部シフトクロックモード……外部端子 (SCK3) から入力されるクロックに同期し てデータ転送を行います。このモードで外部端子 (SCK3) を共有している汎用ポートを操作すること により , CPU の命令による転送動作も可能です。 ■ シリアル I/O のブロックダイヤグラム クロック同期によるデータ転送を可能にするシリアル I/O インタフェースのブロック ダイヤグラムを示します。このインタフェースは 8 ビット× 1 チャネル構成で , データ は LSB/MSB から転送できます。 図 18.1-1 拡張シリアル I/O インタフェースのブロックダイヤグラム 内部データバス (MSB ファースト ) D0 ∼ D7 D7 ∼ D0 (LSB ファースト ) 転送方向選択 SIN3 リード ライト SDR ( シリアルデータレジスタ ) SOT3 SCK3 シフトクロック カウンタ 制御回路 内部クロック 2 1 0 SMD2 SMD1 SMD0 SIE SIR BUSY STOP STRT MODE 割込み要求 内部データバス 250 BDS SOE SCOE 第 18 章 シリアル I/O シリアル I/O のレジスタ 18.2 シリアル I/O のレジスタには , 次の 2 つがあります。 • シリアルモード制御ステータスレジスタ (SMCS) • シリアルシフトデータレジスタ (SDR) ■ シリアル I/O のレジスタ 図 18.2-1 シリアル I/O のレジスタ bit アドレス : 00002DH 15 14 13 SMD2 SMD1 SMD0 12 11 10 9 8 SIE SIR BUSY STOP STRT bit 7 6 5 4 3 2 1 0 アドレス : 00002CH − − − − MODE BDS SOE SCOE bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 アドレス : 00002EH シリアルモード制御 ステータスレジスタ (SMCS) シリアルデータレジスタ (SDR) 251 第 18 章 シリアル I/O 18.2.1 シリアルモード制御ステータスレジスタ (SMCS) シリアルモード制御ステータスレジスタ (SMCS) は , シリアル I/O 転送モードを制御 するレジスタです。 ■ シリアルモード制御ステータスレジスタ (SMCS) 図 18.2-2 シリアルモード制御ステータスレジスタ (SMCS) SMCS bit アドレス :00002DH 15 14 13 SMD2 SMD1 SMD0 R/W R/W R/W 12 11 10 9 8 初期値 SIE SIR BUSY STOP STRT 00000010B R/W R/W R R/W R/W ↑ *1 SMCS bit アドレス :00002CH ↑ *2 7 6 5 4 3 2 1 0 初期値 − − − − MODE BDS SOE SCOE ----0000B R/W R/W R/W R/W (−) (−) (−) (−) *1:Write 動作は "0" のみ可。 *2:Write 動作は "1" のみ可 , Read 動作は常に "0"。 ■ シリアルモード制御ステータスレジスタ (SMCS) の各ビット機能 【bit3】シリアルモード選択ビット (MODE) このビットにより停止状態からの起動条件の選択を行います。ただし , 動作中の書換え は禁止します。 表 18.2-1 シリアルモード選択ビットの設定 MODE 動作 0 STRT=1 にすることにより起動します。[ 初期値 ] 1 シリアルデータレジスタのリード / ライトにより起動します。 リセットにより "0" に初期化されます。本ビットは , 読出し / 書込みが可能です。イン テリジェント I/O サービスを起動する際には "1" にしておいてください。 【bit2】転送方向選択ビット (BDS:Bit DirectionS elect) シリアルデータの入出力時に , 最下位ビット側から先に転送するか (LSB ファースト ) , 最上位ビット側から先に転送するか (MSB ファースト ) を , 表 18.2-2 に示すとおりに選 択します。 表 18.2-2 転送方向選択ビットの設定 252 0 LSB ファースト [ 初期値 ] 1 MSB ファースト 第 18 章 シリアル I/O < 注意事項 > 転送方向選択ビットは , SDR にデータを書き込む前に , 設定しておいてください。 【bit1】シリアル出力許可ビット (SOE:Serial Out Enable) シリアル I/O 用出力外部端子 (SOT3) の出力を表 18.2-3 に示すとおりに制御します。 表 18.2-3 シリアル出力許可ビットの設定 0 汎用ポート端子 [ 初期値 ] 1 シリアルデータ出力 リセットにより "0" に初期化されます。本ビットは , 読出し / 書込みが可能です。 【bit0】シフトクロック出力許可ビット (SCOE:SCK3 Output Enable) シフトクロック用入出力外部端子 (SCK3) の出力を表 18.2-4 に示すとおりに制御しま す。 表 18.2-4 シフトクロック出力許可ビットの設定 0 汎用ポート端子 , 命令毎転送時 [ 初期値 ] 1 シフトクロック出力端子 外部シフトクロックモードで命令ごとに転送を行うときは "0" に設定してください。リ セットにより "0" に初期化されます。本ビットは , 読出し / 書込みが可能です。 【bit15, bit14, bit13】シフトクロック選択ビット (SMD2, SMD1, SMD0: SerialShiftClockMode) シリアルシフトクロックモードを表 18.2-5 に示すとおりに選択します。 表 18.2-5 シリアルシフトクロックモードの設定 SMD SMD SMD φ=16MHz 2 1 0 div=4 φ=8MHz φ=4MHz div=4 div=4 div M1 DIV3 DIV2 DIV1 DIV0 推奨マシン サイクル 0 0 0 2MHz 1MHz 500kHz 3 1 1 1 0 1 6MHz 0 0 1 1MHz 500kHz 250kHz 4 1 1 1 0 0 8MHz 0 1 0 250kHz 125kHz 62.5kHz 5 1 1 0 1 1 10MHz 0 1 1 125kHz 62.5kHz 31.25kHz 6 1 1 0 1 0 12MHz 1 0 0 62.5kHz 31.25kHz 15.625kHz 7 1 1 0 0 1 14MHz 1 0 1 外部シフトクロックモード 8 1 1 0 0 0 16MHz 1 1 0 予約 1 1 1 予約 ( 注意事項 ) 詳細については , 「18.3 シリアル I/O プリスケーラ (CDCR)」を参照してください。 253 第 18 章 シリアル I/O リセットにより "000" に初期化されます。本ビットの転送中の書換えは禁止します。シ フトクロックは内部シフトクロック 5 種類と , 外部シフトクロックが選択できます。 SMD2, SMD1, SMD0="110", "111" はリザーブですので設定しないでください。 クロック選択で SCOE=0 とし , SCK3 端子を共有しているポートを操作することによっ て命令ごとにシフト動作させることも可能です。 【bit12】シリアル I/O 割込み許可ビット (SIE:Serial I/O Interrupt Enable) シリアル I/O の割込み要求を表 18.2-6 に示すとおりに制御します。 表 18.2-6 割込み要求許可ビットの設定 0 シリアル I/O 割込み禁止 [ 初期値 ] 1 シリアル I/O 割込み許可 リセットにより "0" に初期化されます。本ビットは , 読出し / 書込みが可能です。 【bit11】シリアル I/O 割込み要求ビット (SIR:Serial I/O Interrupt Request) シリアルデータの転送が終了すると "1" にセットされ , 割込み許可時 (SIE="1") にこの ビットが "1" になると , CPU へ割込み要求を発生します。クリア条件は MODE ビット によって異なります。MODE ビットが "0" のとき , SIR ビットへの "0" 書込みによりク リアされます。MODE ビットが "1" のとき , SDR の読出しまたは書込み動作によりク リアされます。MODE ビットの値にかかわらずリセットまたは STOP ビットへの "1" 書込み動作によりクリアされます。 本ビットに "1" を書き込んでも意味がありません。リードモディファイライト系命令 のリード時は , 常に "1" が読み出されます。 【bit10】転送状態ビット (BUSY) シリアル転送が実行中か否かを示すビットです。 表 18.2-7 転送状態ビットの設定 BUSY 動作 0 停止またはシリアルデータシフトレジスタ R/W 待機状態 [ 初期値 ] 1 シリアル転送状態 リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。 254 第 18 章 シリアル I/O 【bit9】ストップビット (STOP) シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると STOP=1 に よる停止状態となります。 表 18.2-8 ストップビットの設定 STOP 動作 0 動作 1 STOP=1 による転送停止 [ 初期値 ] リセットにより "1" に初期化されます。本ビットは , 読出し / 書込みが可能です。 【bit8】スタートビット (STRT: Start) シリアル転送の起動を行うビットです。停止状態で "1" を書くことによって転送が開 始されます。シリアル転送動作中およびシリアルシフトデータレジスタ R/W 待機中の "1" の書込みは無視され , "0" の書込みは意味がありません。 リード時には常に "0" が読み出されます。 255 第 18 章 シリアル I/O 18.2.2 シリアルシフトデータレジスタ (SDR) シリアルシフトデータレジスタ (SDR) は , シリアル I/O 転送データを格納するシリ アルデータレジスタで , 転送中は読み書き不可です。 ■ シリアルシフトデータレジスタ (SDR) 図 18.2-3 シリアルシフトデータレジスタ (SDR) bit アドレス :00002EH 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 SDR (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) ( 不定 ) リード / ライト→ (R/W) (X) 初期値→ 256 第 18 章 シリアル I/O 18.3 シリアル I/O プリスケーラ (CDCR) シリアル I/O プリスケーラ (CDCR) は , シリアル I/O のシフトクロックを提供しま す。 シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。 シリアル I/O は , この通信プリスケーラによって種々のマシンクロックに対して一定 のボーレートが得られるように設計されています。CDCR レジスタは , マシンク ロックの分周を制御するレジスタです。 ■ シリアル I/O プリスケーラ (CDCR) 図 18.3-1 シリアル I/O プリスケーラ (CDCR) bit アドレス :00006DH 15 14 13 12 11 10 9 8 MD − − − DIV3 DIV2 DIV1 DIV0 (−) (−) (−) (−) (−) (−) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) リード / ライト→ (R/W) (0) 初期値→ CDCR 【bit15】MD(Machine clock devide moDe select) 通信プリスケーラの動作許可ビットです。 0: シリアル I/O プリスケーラは停止します。 1: シリアル I/O プリスケーラは動作します。 【bit11, bit10, bit9, bit8】DIV3 ∼ DIV0 (DIVide3 ∼ 0) マシンクロックの分周比を決定するビットです。 表 18.3-1 マシンクロックの分周比 < 注意事項 > DIV3 ∼ DIV0 分周比 1101B 3 1100B 4 1011B 5 1010B 6 1001B 7 1000B 8 分周比を変えた場合はクロックの安定時間として 2 周期分の時間を置いてから通信 を行ってください。 257 第 18 章 シリアル I/O 18.4 シリアル I/O の動作 拡張シリアル I/O インタフェースは , シリアルモード制御ステータスレジスタ (SMCS), シリアルシフトデータレジスタ (SDR) により構成されます。8 ビットのシ リアルデータの入出力に使用します。 ■ シリアル I/O の動作 シリアルデータの入出力は , シフトレジスタの内容がシリアルシフトクロック ( 外部ク ロック , 内部クロック ) の立下りに同期してビット直列にシリアル出力端子 (SOT3 端 子 ) に出力され , 立上りに同期してシリアル入力端子 (SIN3 端子 ) からビット直列に SDR ( シリアルシフトデータレジスタ ) に入力されます。シフトの方向 (MSB からの転 送または LSB からの転送 ) は , SMCS ( シリアルモード制御ステータスレジスタ ) の方 向指定ビット (BDS) により指定することができます。 転送が終了するとシリアルモード制御ステータスレジスタ (SMCS) の MODE ビットに よって停止状態またはデータレジスタリード / ライト待機状態に入ります。各々の状 態から転送状態に移るには , それぞれ次のことを行います。 • 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書き込みま す (STOP と STRT は同時設定が可能です ) 。 • シリアルシフトデータレジスタリード / ライト待機状態からの復帰時はデータレジ スタをリードまたはライトします。 258 第 18 章 シリアル I/O シフトクロック 18.4.1 シフトクロックには内部シフトクロックモード , 外部シフトクロックモードの 2 種 類があり , SMCS の設定で指定します。モードの切換えは , シリアル I/O が停止した 状態で行ってください。停止状態の確認は , BUSY ビットを読み出すことで可能で す。 ■ 内部シフトクロックモード 内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク ロックが SCK3 端子より出力可能です。データが 1 クロックごとに 1 ビット転送され ます。転送の速度 ( ボーレート ) は以下のようになります。 A は SMCS の SMD ビットで示す分周比で , 21, 22, 24, 25, 26 です。 A × div 転送速度 (s) = 内部クロックのマシンサイクル (Hz) 表 18.4-1 内部シフトクロックモードのボーレート算出式 SMD2 SMD1 SMD0 φ / div=4MHz φ / div=2MHz φ / div=1MHz ボーレート算出式 0 0 0 2MHz 1MHz 500kHz (φ ÷ div) /21 0 0 1 1MHz 500kHz 250kHz (φ ÷ div) /22 0 1 0 250kHz 125kHz 62.5kHz (φ ÷ div) /24 0 1 1 125kHz 62.5kHz 31.25kHz (φ ÷ div) /25 1 0 0 62.5kHz 31.2kHz 15.625kHz (φ ÷ div) /26 ■ 外部シフトクロックモード SCK3 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに 1 ビット転送されます。転送速度は DC から 1/ (8 マシンサイクル ) まで可能です。例 えば , "1 マシンサイクル =62.5ns" のとき , 2MHz まで可能です。 命令ごとに転送することもでき , 次のような設定をすることによって実現します。 外部シフトクロックモードを選択し , SMCS の SCOE ビットを "0" に設定します。さら に , SCK3 端子を共有しているポートの方向レジスタに "1" を書き込み , ポートを出力 モードに設定します。以上の設定をした後 , ポートのデータレジスタ (PDR) に "1", "0" を書き込むと , SCK3 端子に出力されるポートの値を外部クロックとして取り込み , 転 送動作を行います。シフトクロックの開始は "H" からスタートさせてください。 < 注意事項 > シリアル I/O 動作中の SMCS, SDR への書込みは禁止です。 259 第 18 章 シリアル I/O 18.4.2 シリアル I/O の動作状態 シリアル I/O の動作状態には , 次の 4 種類があります。 • STOP 状態 • 停止状態 • SDR のリード / ライト待機状態 • 転送状態 ■ シリアル I/O の動作状態 ● STOP 状態 RESET 時または SMCS の STOP ビットに "1" を書き込んだときの状態でシフトカウン タは初期化され , SIR=0 となります。 STOP 状態からの復帰は , STOP=0, STRT=1 ( 同時設定可 ) とすることによって行われま す。STOP ビットは STRT ビットより優先ビットですので STOP=1 のとき STRT=1 とし ても転送動作は行われません。 ● 停止状態 MODE ビットが "0" のとき , 転送が終了したことによって SMCS が BUSY=0, SIR=1 と なり , カウンタが初期化され停止状態に入ります。停止状態からの復帰は STRT=1 にす ると転送動作が再開されます。 ● シリアルシフトデータレジスタリード / ライト待機状態 SMCS の MODE ビットが "1" のとき , シリアル転送が終了すると , BUSY=0, SIR=1 と なりシリアルシフトデータレジスタリード / ライト待機状態に入ります。割込み許可 レジスタが許可状態ならば本ブロックより割込み信号を出します。 リード / ライト待機状態からの復帰はシリアルシフトデータレジスタが読み出された り , 書き込まれたりすると BUSY=1 となり転送動作が再開されます。 ● 転送状態 BUSY=1 でシリアル転送を行っている状態です。MODE ビットによりそれぞれ停止状 態およびリード / ライト待機状態に遷移します。 図 18.4-1 に , 動作遷移を示します。 260 第 18 章 シリアル I/O 図 18.4-1 拡張シリアル I/O インタフェース動作遷移図 リセット STOP=0 & STRT=0 STOP 転送終了 STRT=0, BUSY=0 MODE=0 MODE=0 & STOP=0 & 終了 STOP=0 & STRT=1 STRT=0, BUSY=0 STOP=1 STOP=1 転送動作 STRT=1, BUSY=1 STOP=1 STOP=0 & STRT=1 シリアルシフトデータレジスタ リード / ライト待機 MODE=1 & 終了& STOP=0 STRT=1, BUSY=0 MODE=1 SDR の R/W & MODE=1 図 18.4-2 シリアルシフトデータレジスタへのリード , ライト概念図 シ リ ア ル デ | タ データバス SOT3 SIN3 データバス リード ライト 割込み出力 拡張シリアル I/O インタフェース リード ライト CPU ① ② 割込み入力 データバス 割込みコントローラ ① MODE=1のとき, シフトクロックカウンタによって転送終了し, SIR=1となってリー ド / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生します。 ただし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送中断 のときは割込み信号は発生しません。 ② シリアルシフトデータレジスタがリード / ライトされると , 割込み要求はクリアさ れシリアル転送を開始します。 261 第 18 章 シリアル I/O 18.4.3 シフト動作のスタート / ストップタイミング シフト動作をスタートする場合は , SMCS の STOP ビットを "0", STRT ビットを "1" に設定します。 シフト動作のストップタイミングについては , STOP=1 によって停止する場合と , 転 送終了によって停止する場合があります。 • STOP=1 によって停止→ MODE ビットにかかわらず SIR=0 のまま停止 • 転送終了で停止→ MODE ビットにかかわらず SIR=1 となり停止 BUSY ビットは MODE ビットにかかわらずシリアル転送状態の時 "1" となり , 停止 状態またはリード / ライト待機状態のとき "0" となります。転送状態を確認したいと きはこのビットをリードしてください。 ■ シフト動作のスタート / ストップタイミング ● 内部シフトクロックモード (LSB ファースト ) 図 18.4-3 シフト動作のスタート / ストップタイミング ( 内部クロック ) "1" 出力 SCK3 ( 転送スタート ) STRT ( 転送終了 ) MODE=0 のとき BUSY SOT3 D00 D07 ( データ保持 ) ● 外部シフトクロックモード (LSB ファースト ) 図 18.4-4 シフト動作のスタート / ストップタイミング ( 外部クロック ) SCK3 ( 転送スタート ) STRT ( 転送終了 ) MODE=0 のとき BUSY SOT3 262 DO0 D07 ( データ保持 ) 第 18 章 シリアル I/O ● 外部シフトクロックモードで命令シフトを行ったとき (LSB ファースト ) 図 18.4-5 シフト動作のスタート / ストップタイミング ( 外部シフトクロックモードで命令シフトを実行時 ) PDR の SCK3 ビット "0" SCK3 STRT PDR の SCK3 ビット "1" ( 転送終了 ) PDR の SCK3 ビット "0" MODE=0 のとき BUSY SOT3 < 注意事項 > D07 ( データ保持 ) D06 命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が 出力され "0" が書き込まれたとき "L" が出力されます ( ただし , 外部シフトクロック モード選択で , SCOE=0 のとき ) 。 ● STOP=1 による停止 (LSB ファースト , 内部クロック時 ) 図 18.4-6 STOP ビットを "1" としたときのストップタイミング "1" 出力 SCK3 ( 転送スタート ) STRT ( 転送終了 ) MODE=0 のとき BUSY STOP SOT3 < 注意事項 > D03D04 D05 ( データ保持 ) DO7 ∼ DO0 は出力データを示します。 263 第 18 章 シリアル I/O シリアルデータの転送中は , シフトクロックの立下りでシリアル出力端子 (SOT3) から のデータが出力され , 立上りでシリアル入力端子 (SIN3) のデータが入力されます。 図 18.4-7 シリアルデータの入出力シフトタイミング ○ LSB ファースト (BDS ビットが "0" のとき ) SCK3 SIN3 SIN 入力 D10 D11 D12 D13 D14 D15 D16 D17 DO3 DO4 DO5 DO6 DO7 D14 D13 D12 D11 D10 DO4 DO3 DO2 DO1 DO0 SOT 出力 SOT3 DO0 DO1 DO2 ○ MBS ファースト (BDS ビットが "1" のとき ) SCK3 SIN3 SIN 入力 D17 D16 D15 SOT 出力 SOT3 264 DO7 DO6 DO5 第 18 章 シリアル I/O 18.4.4 拡張シリアル I/O インタフェースの割込み機能 拡張シリアル I/O インタフェースは , CPU に対し割込み要求を発生することができ ます。データの転送終了時に割込みフラグである SIR ビットがセットされ , 割込み を許可する SMCS の SIE ビットが "1" のとき , CPU へ割込み要求を出力します。 ■ 拡張シリアル I/O インタフェースの割込み機能 図 18.4-8 拡張シリアル I/O インタフェースの割込み信号出力タイミング SCK3 ( 転送終了 ) BUSY ( 注意事項 ) MODE=1 の場合 SIE=1 SIR SDR RD/WR SOT3 D06 D07 ( データ保持 ) 265 第 18 章 シリアル I/O 18.5 ネガティブクロック動作 MB90590 シリーズは , シリアル I/O のネガティブクロック動作をサポートします。 この動作では , シフトクロック信号はインバータにより単純に反転にされます。こ のため , 「18.4.1 シフトクロック」のシリアル I/O のシフトクロック信号の定義は , ロジック "L" レベルからロジック "H" レベルへ , ネガティブエッジからポジティブ エッジへまたはこの逆に反転されます。このことは , シリアルクロックの入力およ び出力ともに同じです。 ■ ネガティブクロック動作 図 18.5-1 ネガティブクロック動作 シリアルエッジセレクトレジスタ bit アドレス :00002FH リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 − − − − − − − NEG (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (−) (R/W) (0) 表 18.5-1 NEG ビットの設定 NEG 266 動作 0 通常動作 ( 初期値 ) 1 シフトクロック信号反転 SES 第 19 章 CAN コントローラ この章では , CAN コントローラの機能と概要につ いて説明します。 19.1 CAN コントローラの特長 19.2 CAN コントローラのブロックダイヤグラム 19.3 全体制御レジスタの一覧 19.4 メッセージバッファ (ID レジスタ ) の一覧 19.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 19.6 CAN コントローラのレジスタ分類 19.7 CAN コントローラの送信 19.8 CAN コントローラの受信 19.9 CAN コントローラの受信フローチャート 19.10 CAN コントローラの使用方法 19.11 メッセージバッファ (x) による送信方法 19.12 メッセージバッファ (x) による受信方法 19.13 マルチレベルメッセージバッファの構成の決定 19.14 CAN コントローラの使用上の注意 267 第 19 章 CAN コントローラ 19.1 CAN コントローラの特長 CAN コントローラは , 16 ビットマイクロコンピュータ (F2MC-16LX) 内に一体化さ れたモジュールです。CAN ( コントローラエリアネットワーク ) は自動車用コント ローラ間のシリアル通信用の標準プロトコルであり工業分野で広く使用されている ものです。 ■ CAN コントローラの特長 CAN コントローラの特長は次のとおりです。 ● CAN 仕様バージョン 2.0 パート A および B に適合しています。 標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしています。 ● リモートフレームの受信によるデータフレームの送信をサポートしています。 ● 16 個の送信 / 受信メッセージバッファ 29 ビットの ID および 8 バイトデータ マルチ・レベル・メッセージ・バッファ構造 ● フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサポート しています。 標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンスマ スクレジスタを提供します。 ● ビット速度は10Kビット/s∼1Mビット/sでプログラマブルです (1Mビット/sでご使用の場 合 , マシンクロックは 8MHz 以上で動作する必要があります ) 。 268 第 19 章 CAN コントローラ CAN コントローラのブロックダイヤグラム 19.2 図 19.2-1 に , CAN コントローラのブロックダイヤグラムを示します。 ■ CAN コントローラのブロックダイヤグラム 図 19.2-1 CAN コントローラのブロックダイヤグラム F2MC-16X バス クロック TQ( 動作クロック ) プリスケーラ 1 ∼ 64 周波数分割 ビットタイミング発生 SYNC, TSEG1, TSEG2 PSC TS1 BTR TS2 RSJ TOE TS RS CSR HALT NIE NT ノードステータス 変化割込み発生 NS1, 0 エラー 制御 RTEC 送信 / 受信 シーケンサ BVALR TREQR IDLE, INT, SUSPND, 送信 , 受信 , ERR, OVRLD バス ステート マシン ノード ステータス 変化割込み TBFx クリア 送信バッファ x 判定 TBFx TDLC RDLC TBFx 過負荷 フレーム 発生 IDSEL BITER, STFER, CRCER, FRMER, ACKER TCANR エラーフ レーム発生 データ アクセプタンス カウンタ フィルタ制御 出力ド ライバ ARBLOST TX TRTRR TCR 送信完了 割込み TIER ACK 発生 CRC 発生 TBFx, セット , クリア 送信完了 割込み発生 TDLC CRCER RBFx, セット RDLC RCR 受信完了 割込み 受信完了 割込み発生 RIER RRTRR スタッ フィング 送信シフト レジスタ RFWTR RBFx, TBFx, セット , クリア CRC 発生 / エラー チェック STFER デスタッフィング / スタッフィングエ ラーチェック 受信シフト レジスタ RBFx, セットIDSEL ROVRR ARBLOST AMSR AMR0 0 1 アクセプタンス フィルタ BITER ビットエラー チェック 受信バッファ x 判定 ACKER 確認エラー チェック RBFx FRMER フォームエラー チェック AMR1 IDR0 ~ 15, DLCR0 ~ 15, DTR0 ~ 15, RAM RAM アドレス 発生 アービトレー ションチェック PH1 入力 ラッチ RX RBFx, TBFx, RDLC, TDLC, IDSEL LEIR IDER 269 第 19 章 CAN コントローラ 全体制御レジスタの一覧 19.3 表 19.3-1 に , 全体制御レジスタの一覧を示します。 ■ 全体制御レジスタの一覧 表 19.3-1 全体制御レジスタの一覧 (1 / 2) アドレス CAN0 CAN1 000070H 000080H 000071H 000081H 000072H 000082H 000073H 000083H 000074H 000084H 000075H 000085H 000076H 000086H 000077H 000087H 000078H 000088H 000079H 000089H 00007AH 00008AH 00007BH 00008BH 00007CH 00008CH 00007DH 00008DH 00007EH 00008EH 00007FH 00008FH 001C00H 001D00H 001C01H 001D01H 001C02H 001D02H 001C03H 001D03H 001C04H 001D04H 001C05H 001D05H 001C06H 001D06H 001C07H 001D07H 270 レジスタ 略号 アクセス 初期値 メッセージバッファ有効 レジスタ BVALR R/W 00000000 00000000 送信要求レジスタ TREQR R/W 00000000 00000000 送信解除レジスタ TCANR W 00000000 00000000 送信完了レジスタ TCR R/W 00000000 00000000 受信完了レジスタ RCR R/W 00000000 00000000 リモート要求受信 レジスタ RRTRR R/W 00000000 00000000 受信オーバランレジスタ ROVRR R/W 00000000 00000000 受信割込み許可レジスタ RIER R/W 00000000 00000000 CAN 制御ステータス レジスタ CSR R/W, R 00---000 0----001 ラストイベント表示レジ スタ LEIR R/W -------- 000-0000 受信および送信エラー カウンタ RTEC R 00000000 00000000 ビットタイミング レジスタ BTR R/W -1111111 11111111 第 19 章 CAN コントローラ 表 19.3-1 全体制御レジスタの一覧 (2 / 2) アドレス レジスタ CAN0 CAN1 001C08H 001D08H 001C09H 001D09H 001C0AH 001D0AH 001C0BH 001D0BH 001C0CH 001D0CH 001C0DH 001D0DH 001C0EH 001D0EH 001C0FH 001D0FH 001C10H 001D10H 001C11H 001D11H 001C12H 001D12H 001C13H 001D13H 001C14H 001D14H 001C15H 001D15H 001C16H 001D16H 001C17H 001D17H 001C18H 001D18H 001C19H 001D19H 001C1AH 001D1AH 001C1BH 001D1BH 略号 アクセス 初期値 IDER R/W XXXXXXXX XXXXXXXX 送信 RTR レジスタ TRTRR R/W 00000000 00000000 リモートフレーム受信待 機レジスタ RFWTR R/W XXXXXXXX XXXXXXXX 送信割込み許可レジスタ TIER R/W 00000000 00000000 IDE レジスタ XXXXXXXX XXXXXXXX アクセプタンスマスク 選択レジスタ AMSR R/W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX アクセプタンスマスク レジスタ 0 AMR0 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX アクセプタンスマスク レジスタ 1 AMR1 R/W XXXXX--- XXXXXXXX 271 第 19 章 CAN コントローラ メッセージバッファ (ID レジスタ ) の一覧 19.4 表 19.4-1 に , メッセージバッファ (ID レジスタ ) の一覧を示します。 ■ メッセージバッファ (ID レジスタ ) の一覧 表 19.4-1 メッセージバッファ (ID レジスタ ) の一覧 (1 / 3) アドレス レジスタ CAN0 CAN1 001A00H 001B00H ∼ 001A1FH ∼ 001B1FH 001A20H 001B20H 001A21H 001B21H 001A22H 001B22H 001A23H 001B23H 001A24H 001B24H 001A25H 001B25H 001A26H 001B26H 001A27H 001B27H 001A28H 001B28H 001A29H 001B29H 001A2AH 001B2AH 001A2BH 001B2BH 001A2CH 001B2CH 001A2DH 001B2DH 001A2EH 001B2EH 001A2FH 001B2FH 001A30H 001B30H 001A31H 001B31H 001A32H 001B32H 001A33H 001B33H 汎用 RAM 略号 アクセス 初期値 -- R/W XXXXXXXX ∼ XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 0 IDR0 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 1 IDR1 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 2 IDR2 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 3 IDR3 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 4 IDR4 R/W XXXXX--- XXXXXXXX 272 第 19 章 CAN コントローラ 表 19.4-1 メッセージバッファ (ID レジスタ ) の一覧 (2 / 3) アドレス レジスタ CAN0 CAN1 001A34H 001B34H 001A35H 001B35H 001A36H 001B36H 001A37H 001B37H 001A38H 001B38H 001A39H 001B39H 001A3AH 001B3AH 001A3BH 001B3BH 001A3CH 001B3CH 001A3DH 001B3DH 001A3EH 001B3EH 001A3FH 001B3FH 001A40H 001B40H 001A41H 001B41H 001A42H 001B42H 001A43H 001B43H 001A44H 001B44H 001A45H 001B45H 001A46H 001B46H 001A47H 001B47H 001A48H 001B48H 001A49H 001B49H 001A4AH 001B4AH 001A4BH 001B4BH 001A4CH 001B4CH 001A4DH 001B4DH 001A4EH 001B4EH 001A4FH 001B4FH 略号 アクセス 初期値 XXXXXXXX XXXXXXXX ID レジスタ 5 IDR5 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 6 IDR6 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 7 IDR7 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 8 IDR8 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 9 IDR9 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 10 IDR10 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 11 IDR11 R/W XXXXX--- XXXXXXXX 273 第 19 章 CAN コントローラ 表 19.4-1 メッセージバッファ (ID レジスタ ) の一覧 (3 / 3) アドレス レジスタ CAN0 CAN1 001A50H 001B50H 001A51H 001B51H 001A52H 001B52H 001A53H 001B53H 001A54H 001B54H 001A55H 001B55H 001A56H 001B56H 001A57H 001B57H 001A58H 001B58H 001A59H 001B59H 001A5AH 001B5AH 001A5BH 001B5BH 001A5CH 001B5CH 001A5DH 001B5DH 001A5EH 001B5EH 001A5FH 001B5FH 略号 アクセス 初期値 XXXXXXXX XXXXXXXX ID レジスタ 12 IDR12 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 13 IDR13 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 14 IDR14 R/W XXXXX--- XXXXXXXX XXXXXXXX XXXXXXXX ID レジスタ 15 IDR15 R/W XXXXX--- XXXXXXXX 274 第 19 章 CAN コントローラ メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 19.5 表 19.5-1 に , メッセージバッファ (DLC レジスタ ) の一覧を , 表 19.5-2 に , メッ セージバッファ ( データレジスタ ) の一覧を示します。 ■ メッセージバッファ (DLC レジスタ ) の一覧 表 19.5-1 メッセージバッファ (DLC レジスタ ) の一覧 (1 / 2) アドレス レジスタ CAN0 CAN1 001A60H 001B60H 001A61H 001B61H 001A62H 001B62H 001A63H 001B63H 001A64H 001B64H 001A65H 001B65H 001A66H 001B66H 001A67H 001B67H 001A68H 001B68H 001A69H 001B69H 001A6AH 001B6AH 001A6BH 001B6BH 001A6CH 001B6CH 001A6DH 001B6DH 001A6EH 001B6EH 001A6FH 001B6FH 001A70H 001B70H 001A71H 001B71H 001A72H 001B72H 001A73H 001B73H 001A74H 001B74H 001A75H 001B75H 略号 アクセス 初期値 DLC レジスタ 0 DLCR0 R/W ---- XXXX DLC レジスタ 1 DLCR1 R/W ---- XXXX DLC レジスタ 2 DLCR2 R/W ---- XXXX DLC レジスタ 3 DLCR3 R/W ---- XXXX DLC レジスタ 4 DLCR4 R/W ---- XXXX DLC レジスタ 5 DLCR5 R/W ---- XXXX DLC レジスタ 6 DLCR6 R/W ---- XXXX DLC レジスタ 7 DLCR7 R/W ---- XXXX DLC レジスタ 8 DLCR8 R/W ---- XXXX DLC レジスタ 9 DLCR9 R/W ---- XXXX DLC レジスタ 10 DLCR10 R/W ---- XXXX 275 第 19 章 CAN コントローラ 表 19.5-1 メッセージバッファ (DLC レジスタ ) の一覧 (2 / 2) アドレス レジスタ CAN0 CAN1 001A76H 001B76H 001A77H 001B77H 001A78H 001B78H 001A79H 001B79H 001A7AH 001B7AH 001A7BH 001B7BH 001A7CH 001B7CH 001A7DH 001B7DH 001A7EH 001B7EH 001A7FH 001B7FH 276 略号 アクセス 初期値 DLC レジスタ 11 DLCR11 R/W ---- XXXX DLC レジスタ 12 DLCR12 R/W ---- XXXX DLC レジスタ 13 DLCR13 R/W ---- XXXX DLC レジスタ 14 DLCR14 R/W ---- XXXX DLC レジスタ 15 DLCR15 R/W ---- XXXX 第 19 章 CAN コントローラ ■ メッセージバッファ ( データレジスタ ) の一覧 表 19.5-2 メッセージバッファ ( データレジスタ ) の一覧 アドレス レジスタ 略号 アクセス 初期値 001B80H ∼ 001B87H データレジスタ 0 (8 バイト ) DTR0 R/W XXXXXXXX ∼ XXXXXXXX 001A88H ∼ 001A8FH 001B88H ∼ 001B8FH データレジスタ 1 (8 バイト ) DTR1 R/W XXXXXXXX ∼ XXXXXXXX 001A90H ∼ 001A97H 001B90H ∼ 001B97H データレジスタ 2 (8 バイト ) DTR2 R/W XXXXXXXX ∼ XXXXXXXX 001A98H ∼ 001A9FH 001B98H ∼ 001B9FH データレジスタ 3 (8 バイト ) DTR3 R/W XXXXXXXX ∼ XXXXXXXX 001AA0H ∼ 001AA7H 001BA0H ∼ 001BA7H データレジスタ 4 (8 バイト ) DTR4 R/W XXXXXXXX ∼ XXXXXXXX 001AA8H ∼ 001AAFH 001BA8H ∼ 001BAFH データレジスタ 5 (8 バイト ) DTR5 R/W XXXXXXXX ∼ XXXXXXXX 001AB0H ∼ 001AB7H 001BB0H ∼ 001BB7H データレジスタ 6 (8 バイト ) DTR6 R/W XXXXXXXX ∼ XXXXXXXX 001AB8H ∼ 001ABFH 001BB8H ∼ 001BBFH データレジスタ 7 (8 バイト ) DTR7 R/W XXXXXXXX ∼ XXXXXXXX 001AC0H ∼ 001AC7H 001BC0H ∼ 001BC7H データレジスタ 8 (8 バイト ) DTR8 R/W XXXXXXXX ∼ XXXXXXXX 001AC8H ∼ 001ACFH 001BC8H ∼ 001BCFH データレジスタ 9 (8 バイト ) DTR9 R/W XXXXXXXX ∼ XXXXXXXX 001AD0H ∼ 001AD7H 001BD0H ∼ 001BD7H データレジスタ 10 (8 バイト ) DTR10 R/W XXXXXXXX ∼ XXXXXXXX 001AD8H ∼ 001ADFH 001BD8H ∼ 001BDFH データレジスタ 11 (8 バイト ) DTR11 R/W XXXXXXXX ∼ XXXXXXXX 001AE0H ∼ 001AE7H 001BE0H ∼ 001BE7H データレジスタ 12 (8 バイト ) DTR12 R/W XXXXXXXX ∼ XXXXXXXX 001AE8H ∼ 001AEFH 001BE8H ∼ 001BEFH データレジスタ 13 (8 バイト ) DTR13 R/W XXXXXXXX ∼ XXXXXXXX 001AF0H ∼ 001AF7H 001BF0H ∼ 001BF7H データレジスタ 14 (8 バイト ) DTR14 R/W XXXXXXXX ∼ XXXXXXXX 001AF8H ∼ 001AFFH 001BF8H ∼ 001BFFH データレジスタ 15 (8 バイト ) DTR15 R/W XXXXXXXX ∼ XXXXXXXX CAN0 CAN1 001A80H ∼ 001A87H 277 第 19 章 CAN コントローラ 19.6 CAN コントローラのレジスタ分類 CAN コントローラのレジスタは , 次の 3 つに分類されます。 • 全体制御レジスタ • メッセージバッファ制御レジスタ • メッセージバッファ ■ 全体制御レジスタ 全体制御レジスタには , 次の 4 つがあります。 • CAN 制御ステータスレジスタ (CSR) • ラストイベント表示レジスタ (LEIR) • 受信および送信エラーカウンタ (RTEC) • ビットタイミングレジスタ (BTR) ■ メッセージバッファ制御レジスタ メッセージバッファ制御レジスタには , 次の 14 のレジスタがあります。 • メッセージバッファ有効レジスタ (BVALR) • IDE レジスタ (IDER) • 送信要求レジスタ (TREQR) • 送信 RTR レジスタ (TRTRR) • リモートフレーム受信待機レジスタ (RFWTR) • 送信解除レジスタ (TCANR) • 送信完了レジスタ (TCR) • 送信割込み許可レジスタ (TIER) • 受信完了レジスタ (RCR) • リモート要求受信レジスタ (RRTRR) • 受信オーバランレジスタ (ROVRR) • 受信割込み許可レジスタ (RIER) • アクセプタンスマスク選択レジスタ (AMSR) • アクセプタンスマスクレジスタ 0 および 1(AMR0, AMR1) ■ メッセージバッファ メッセージバッファは , 次の 3 つがあります。 • ID レジスタ x (x=0 ∼ 15) (IDRx) • DLC レジスタ x (x=0 ∼ 15) (DLCRx) • データレジスタ x (x=0 ∼ 15) (DTRx) 278 第 19 章 CAN コントローラ 19.6.1 CAN 制御ステータスレジスタ (CSR) CAN 制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リードモディファイライト ) を実行することは禁止されています。ただし , HALT ビットが変化しないタイミング ( マクロの初期化時など ) では , ビット操作命令を使 用しても問題ありません。 ■ CAN 制御ステータスレジスタ (CSR) 図 19.6-1 CAN 制御ステータスレジスタ (CSR) bit 15 14 13 12 11 10 9 8 アドレス:001C01H (CAN0) 001D01H (CAN1) TS RS − − − NT NS1 NS0 リード / ライト→ 初期値→ (R) (0) (R) (0) (−) (−) (−) (−) (−) (−) (R/W) (0) (R) (0) (R) (0) 7 6 5 4 3 2 1 0 TOE − − − − NIE 予約 HALT (−) (−) (−) (−) (−) (−) (−) (−) (R/W) (0) (W) (0) (R/W) (1) bit アドレス:001C00H (CAN0) 001D00H (CAN1) リード / ライト→ (R/W) (0) 初期値→ 【bit15】TS: 送信ステータスビット 本ビットはメッセージが送信中であるかどうかを示します。 0: メッセージは送信されていません。 1: メッセージが送信されています。 本ビットはエラーフレームおよびオーバロードフレームが送信されている間も "0" で す。 【bit14】RS: 受信ステータスビット 本ビットはメッセージが受信されているかどうかを示します。 0: メッセージは受信されていません。 1: メッセージが受信されています。 メッセージがバス上に在る間 , 本ビットは "1" になります。このため本ビットはメッ セージが送信されている間も "1" になります。本ビットは必ずしも , 受信メッセージが アクセプタンスフィルタを通って通過したかどうかを示すものではありません。 結果として , 本ビットが "0" であるときはバス動作は停止している (HALT=0) か , バス はインターミッション / バスアイドルにある , またはエラー / オーバロードフレームが バス上にあることを意味します。 【bit10】NT: ノードステータス遷移フラグ もしノードステータスがインクリメントに変化しまたはバスオフからエラーアクティ ブに変化しても本ビットは "1" になります。 すなわち NT ビットは , ノードステータスがエラーアクティブ (00) からワーニング (01) 279 第 19 章 CAN コントローラ に , ワーニング (01) からエラーパッシブ (10) に , エラーパッシブ (10) からバスオフ (11) に , バスオフ (11) からエラーアクティブ (00) に変化したときに "1" にセットされます。 括弧内の数字は NS1 ビットおよび NS0 ビットの値を示します。 ノードステータス遷移割込み許可ビット (NIE) が "1" であるときに割込みが発生しま す。"0" を書き込むと NT ビットが "0" にセットされます。NT ビットに "1" を書き込ん でも無視されます。リードモディファイライト系命令がリードされたときに "1" がリー ドされます。 【bit9, bit8】NS1, NS0: ノードステータスビット 1, 0 本ビット群は現在のノードステータスを表します。 表 19.6-1 NS1, NS0 およびノードステータスの間の対応 < 注意事項 > NS1 NS0 0 0 エラーアクティブ 0 1 ワーニング ( エラーアクティブ ) 1 0 エラーパッシブ 1 1 バスオフ ノードステータス ワーニング ( エラーアクティブ ) はノードステータスに対する CAN 仕様 2.0B にお けるエラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウ ンタが "96" を超えたことを表します。ノードステータスの変化図は図 19.6-2 に示 されています。 図 19.6-2 ノードステータス遷移図 ハードウェアリセット REC:受信エラーカウンタ TEC:送信エラーカウンタ REC ≧ 96 または TEC ≧ 96 ワーニング エラー アクティブ レジスタ (CSR) の HALT ビットに "0" が書き込まれた後 , 連続的な 11 ビット ハイレベル ( リセッシブビット ) が受 信入力端子 (RX) に 128 回入力。 REC < 96 および TEC < 96 REC ≧ 128 または TEC ≧ 128 エラー パッシブ 280 REC < 128 および TEC < 128 TEC ≧ 256 バスオフ 第 19 章 CAN コントローラ 【bit7】TOE: 送信出力許可ビット 本ビットに "1" を書き込むと汎用ポート端子を CAN コントローラの送信端子に切り換 えます。 0: 汎用ポート端子 1:CAN コントローラの送信端子 【bit2】NIE: ノードステータス遷移割込み許可ビット 本ビットはノードステータス遷移割込み (NT=1 の場合 ) を許可または禁止します。 0: ノードステータス遷移割込みを禁止する 1: ノードステータス遷移割込みを許可する 【bit1】予約ビット 予約ビットです。このビットには , "1" を書き込まないでください。 【bit0】HALT: バス動作停止ビット 本ビットはバス動作停止をセットもしくは解除し , またはそのステートを表示します。 読込み時 0 : バス動作中 1 : バス動作停止 書込み時 0 : バス動作停止を解除 1 : バス動作停止をセット < 注意事項 > バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になってい ることを確認後 , "0" を書き込んでください。 参考プログラム例 : switch (IO_CANCT0. CSR. bit. NS) { case 0 : /* error active */ break; case 1 : /*warning */ break; case 2 : /* error passive */ break; default : /* bus off */ for (i = 0; (i <=500) || (IO_CANCT0. CSR. bit. HALT == 0); i++); IO_CANCT0.CSR. word = 0x0084; /* HALT = 0 */ break; } * 変数 i はフェイルセーフのために使用しています。 281 第 19 章 CAN コントローラ 19.6.2 バス動作停止ビット (HALT=1) バス動作停止ビットは , バス動作停止をセットもしくは解除し , またはそのステート を表示します。 ■ バス動作停止をセットする条件 (HALT=1) バス動作停止をセットする条件 (HALT=1) として , 次の 3 つがあります。 • ハードウェアリセットの後 • ノードステータスがバスオフに変化したとき • HALT への 1 の書込み < 注意事項 > • バス動作は F2MC-16LX が低消費電力消費モード ( 停止モード , クロックモード およびハードウェアスタンバイモード ) に遷移する前に HALT に "1" を書き込む ことにより停止しなければなりません。HALT に "1" が書き込まれるときに , 送 信が進行中であれば送信が終了した後にバス動作は停止します (HALT=1)。HALT に "1" が書き込まれるときに , 受信が進行中であればバス動作は直ちに停止しま す (HALT=1)。もし受信されたメッセージがメッセージバッファ (x) に格納中で あればメッセージを格納した後に , バス動作は停止します (HALT=1)。 • バス動作が停止したかどうかは , 常に HALT ビットを読み込んでチェックしてく ださい。 ■ バス動作停止を解除する条件 (HALT=0) HALT への "0" の書込み < 注意事項 > • 上記条件のハードウェアリセット後または HALT に "1" を書き込むことによるバ ス動作停止の解除は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットのハイレベル ( リセッシブビット ) が入力された後に行われます。 • 上記条件のノードステータスがバスオフに変化したときのバス動作停止の解除 は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットのハイレ ベル ( リセッシブビット ) が 128 回入力された後に行われます。次に送信および 受信エラーカウンタの両者の値が "0" に達してノードステータスはエラーアク ティブに変化します。 • バスオフ時に HALT ビットに "0" を書き込む場合は , HALT が "1" になっているこ とを確認後 , "0" を書き込んでください。 ■ バス動作停止間の状態 (HALT=1) • バスは , 送信および受信などの動作を一切行いません。 • 送信出力端子 (TX) は , ハイレベル ( リセッシブビット ) を出力します。 • ほかのレジスタおよびエラーカウンタの値は変化しません。 < 注意事項 > 282 ビットタイミングレジスタ (BTR) はバス動作停止 (HALT=1) の間にセットしなけれ ばなりません。 第 19 章 CAN コントローラ 19.6.3 ラストイベント表示レジスタ (LEIR) 本レジスタはラストイベントを示します。 NTE, TCE および RCE は排他的なものです。ラストイベントのビットが "1" にセッ トされたとき , ほかのビットは "0" にセットされます。 ■ ラストイベント表示レジスタ (LEIR) 図 19.6-3 ラストイベント表示レジスタ (LEIR) bit アドレス:001C02H (CAN0) 001D02H (CAN1) 7 6 5 4 NTE TCE RCE − (R/W) (0) (R/W) (0) (−) (−) リード / ライト→ (R/W) (0) 初期値→ 3 2 1 0 MBP3 MBP2 MBP1 MBP0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 【bit7】NTE: ノードステータス遷移イベントビット • 本ビットが "1" のときはノードステータス遷移がラストイベントであることを表し ます。 • 本ビットは制御ステータスレジスタ (CSR) の NT ビットと同時に "1" にセットされ ます。 • 本ビットはまた CSR のノードステータス遷移割込み許可ビット (NIE) のセッティン グに無関係に "1" にセットされます。 • 本ビットに "0" を書き込むと NTE ビットは "0" にセットされます。本ビットに "1" を書き込んでも無視されます。 • リードモディファイライト系命令が実行されたときは "1" がリードされます。 【bit6】TCE: 送信完了イベントビット 本ビットが "1" のときは送信完了がラストイベントであることを表します。 本ビットは送信完了レジスタ (TCR) のビットのいずれか 1 つと同時に "1" にセットさ れます。また本ビットは送信割込み許可レジスタ (TIER) のビットのセッティングに無 関係に "1" にセットされます。 "0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも無 視されます。 リードモディファイライト系命令が実行されたときは "1" がリードされます。 本ビットが "1" にセットされたとき MBP3 ∼ MBP0 ビットは送信動作を完了したメッ セージバッファの番号を示すために使用されます。 283 第 19 章 CAN コントローラ 【bit5】RCE: 受信完了イベントビット 本ビットが "1" であるときは受信完了がラストイベントであることを表します。 本ビットは受信完了レジスタ (RCR) のビットのいずれか 1 つと同時に "1" にセットさ れます。また本ビットは受信割込み許可レジスタ (RIER) のビットのセッティングに無 関係に "1" にセットされます。 "0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも無 視されます。 リードモディファイライト系命令が実行されたときは "1" がリードされます。 本ビットが "1" にセットされたとき MBP3 ∼ MBP0 ビットは受信動作を完了したメッ セージバッファの番号を示すために使用されます。 【bit3 ∼ bit0】MBP3 ∼ MBP0: メッセージバッファポインタビット TCE または RCE ビットが "1" にセットされたときに本ビット群は対応するメッセージ バッファ (0 ∼ 15) の番号を示します。 NTE ビットが "1" にセットされると本ビット群は意味を持ちません。 "0" を書き込むと本ビット群は "0" にセットされます。本ビット群に "1" を書き込んで も無視されます。 リードモディファイライト系命令が実行されたときは "1" がリードされます。 もし LEIR が CAN 割込みハンドラ内でアクセスされたとしても割込みを引き起こした イベントは必ずしも LEIR により表されるものと同じではありません。割込みハンドラ 内で LEIR アクセスに対する割込み要求の時点でほかの CAN イベントが生ずる可能性 があります。 284 第 19 章 CAN コントローラ 19.6.4 受信および送信エラーカウンタ (RTEC) 受信および送信エラーカウンタは , CAN 仕様で定められる送信エラーカウントおよ び受信エラーカウントを示します。このレジスタは読出し専用です。 ■ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) 図 19.6-4 受信エラーカウンタおよび送信エラーカウンタ (RTEC) bit 15 14 13 12 11 10 9 8 TEC6 TEC5 TEC4 TEC3 TEC2 TEC1 TEC0 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 7 6 5 4 3 2 1 0 REC6 REC5 REC4 REC3 REC2 REC1 REC0 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) アドレス:001C05H (CAN0) TEC7 001D05H (CAN1) リード / ライト→ 初期値→ bit アドレス:001C04H (CAN0) REC7 001D04H (CAN1) リード / ライト→ 初期値→ (R) (0) 【bit15 ∼ bit8】TEC7 ∼ TEC0: 送信エラーカウンタ これらは送信エラーカウンタです。 TEC7 ∼ TEC0 は , カウンタ値が 256 より大きい場合 0 ∼ 7 を示します。以降のインク リメントはカウンタ値にカウントされません。この場合バスオフがノードステータス で示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=11) 。 【bit7 ∼ bit0】REC7 ∼ REC0: 受信エラーカウンタ これらは受信エラーカウンタです。 REC7 ∼ REC0 は , カウンタ値が 256 より大きい場合に 0 ∼ 7 を示します。以降のイン クリメントはカウンタ値にカウントされません。この場合エラーパッシブがノードス テータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=10) 。 285 第 19 章 CAN コントローラ 19.6.5 ビットタイミングレジスタ (BTR) ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングをセット するものです。 ■ ビットタイミングレジスタ (BTR) 図 19.6-5 ビットタイミングレジスタ (BTR) bit 15 14 13 12 11 10 9 8 アドレス:001C07H (CAN0) 001D07H (CAN1) − TS2.2 TS2.1 TS2.0 TS1.3 TS1.2 TS1.1 TS1.0 (−) (−) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) 7 6 5 4 3 2 1 0 アドレス:001C06H (CAN0) RSJ1 001D06H (CAN1) RSJ0 PSC5 PSC4 PSC3 PSC2 PSC1 PSC0 リード / ライト→ (R/W) (1) 初期値→ (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) (R/W) (1) リード / ライト→ 初期値→ bit < 注意事項 > 本レジスタはバス動作停止 (HALT=1) の間にセットしなければなりません。 【bit14 ∼ bit12】TS2.2 ∼ TS2.0: タイムセグメント 2 セットビット 2 ∼ 0 本ビット群は単位時間 (TQ) を [ (TS2.2 ∼ TS2.0) +1] で分周してタイムセグメント 2(TSEG2) を決定します。タイムセグメント 2 は CAN 仕様におけるフェーズバッファ セグメント 2(PHASE_SEG2) に等しいものです。 【bit11 ∼ bit8】TS1.3 ∼ TS1.0: タイムセグメント 1 設定ビット 3 ∼ 0 本ビット群は単位時間 (TQ) を [ (TS1.3 ∼ TS1.0) +1] で分周してタイムセグメント 1(TSEG1) を決定します。タイムセグメント 1 は CAN 仕様におけるプロパゲーション セグメント (PROP_SEG)+ フェーズバッファセグメント 1(PHASE_SEG1) に等しいもの です。 【bit7, bit6】RSJ1, RSJ0: 再同期ジャンプ幅設定ビット 1 および 0 本ビット群は単位時間 (TQ) を [ (RSJ1, RSJ0) +1] で分周して再同期ジャンプ幅を決定さ せます。 【bit5 ∼ bit0】PSC5 ∼ PSC0: プリスケーラ設定ビット 5 ∼ 0 本ビット群は入力クロックを [ (PSC5 ∼ PSC0) +1] の周波数で分割して CAN コントロー ラの単位時間 (TQ) を決定します。 CAN 仕様および CAN コントローラのそれぞれにおけるビット時間セグメントは図 19.6-6 および図 19.6-7 に示されています。 286 第 19 章 CAN コントローラ 図 19.6-6 CAN 仕様におけるビット時間セグメント ノミナルビット時間 SYNC_SEG PROP_SEG PHASE_SEG1 PHASE_SEG2 サンプルポイント 図 19.6-7 CAN コントローラにおけるビット時間セグメント ノミナルビット時間 SYNC_SEG TSEG1 TSEG2 サンプルポイント 入力クロック (CLK), 単位時間 (TQ), ビットタイム (BT), 同期セグメント (SYNC_SEG), タ イ ム セ グ メ ン ト 1 お よ び 2 (TSEG1 お よ び TSEG2) お よ び 再 同 期 ジ ャ ン プ 幅 [(RSJ1+RSJ0)+1] 周波数分割としたときの PSC=PSC5 ∼ PSC0, TSI=TS1.3 ∼ TS1.0, TS2= TS2.2 ∼ TS1.0 および RSJ=RSJ1 および RSJ0 の間の関係は次に示すとおりです。 TQ = (PSC + 1) × CLK BT = SYNC_SEG + TSEG1 + TSEG2 = (1 + (TS1 + 1) + (TS2 + 1)) × TQ = (3 + TS1 + TS2) RSJW TQ = (RSJ + 1) × TQ 正しく動作を行うためには以下の条件を満足しなければなりません。 G サフィックス付きの製品 G サフィックス無しの製品 ・1 ≦ PSC ≦ 63 の場合 TSEG1 ≧ 2TQ TSEG1 ≧ RSJW TSEG2 ≧ 2TQ TSEG2 ≧ RSJW ・PSC=0 の場合 TSEG1 ≧ 5TQ TSEG2 ≧ 2TQ TSEG2 ≧ RSJW ・1 ≦ PSC ≦ 63 の場合 TSEG1 ≧ RSJW TSEG2 ≧ RSJW+2TQ ・PSC=0 の場合 TSEG1 ≧ 5TQ TSEG2 ≧ RSJW+2TQ CAN 仕様に従ったビットタイミングの設定をするためには , 遅延時間などほかの条件 も考慮されなければなりません。 287 第 19 章 CAN コントローラ 19.6.6 メッセージバッファ有効レジスタ (BVALR) メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を セットし , またはそのステートを表示するものです。 ■ メッセージバッファ有効レジスタ (BVALR) 図 19.6-8 メッセージバッファ有効レジスタ (BVALR) bit 15 14 13 12 11 10 9 8 アドレス:000071H (CAN0) BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 BVAL9 BVAL8 000081H (CAN1) リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 5 4 3 2 1 0 アドレス:000070H (CAN0) BVAL 7 000080H (CAN1) BVAL 6 BVAL 5 BVAL 4 BVAL 3 BVAL 2 BVAL 1 BVAL 0 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit 7 0: メッセージバッファ (x) 無効 1: メッセージバッファ (x) 有効 もしメッセージバッファ(x) が無効にセットされればそれはメッセージを送信または受 信しません。 もしバッファが送信動作の間に無効にセットされればそれは送信が完了しまたはエ ラーにより終了した後で無効 (BVALx=0) になります。 もしバッファが受信動作の間に無効にセットされればそれは直ちに無効 (BVALx=0) に なります。もし受信メッセージがメッセージバッファ (x) に格納されていればメッセー ジバッファ (x) はメッセージを格納した後に無効となります。 < 注意事項 > 288 • x はメッセージバッファ番号を示します (x=0 ∼ 15) 。 • ビット (BVALx) に "0" を書き込むことによりメッセージバッファ (x) を無効とし たときにビット操作命令の実行はそのビットが "0" にセットされるまで禁止され ます。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能 な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 第 19 章 CAN コントローラ 19.6.7 IDE レジスタ (IDER) 本レジスタは送信 / 受信の間にメッセージバッファ (x) により使用されるフレーム フォーマットを設定します。 ■ IDE レジスタ (IDER) 図 19.6-9 IDE レジスタ (IDER) bit 14 13 12 11 10 9 8 アドレス:001C09H (CAN0) IDE15 001D09H (CAN1) IDE14 IDE13 IDE12 IDE11 IDE10 IDE9 IDE8 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 IDE7 IDE6 IDE5 IDE4 IDE3 IDE2 IDE1 IDE0 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) bit アドレス:001C08H (CAN0) 001D08H (CAN1) 15 0: メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用さ れます。 1: メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用さ れます。 < 注意事項 > • 本レジスタはメッセージバッファ (x) が無効であるとき ( メッセージバッファ有 効レジスタの BVALx(BVALR)=0) に設定しなければなりません。バッファが有効 である (BVALx=1) ときに設定を行うと受信メッセージを不必要に格納する可能 性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能 な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 289 第 19 章 CAN コントローラ 19.6.8 送信要求レジスタ (TREQR) 送信要求レジスタ (TREQR) は , メッセージバッファ (x) に対する送信要求を設定し , またはその状態を表示します。 ■ 送信要求レジスタ (TREQR) 図 19.6-10 送信要求レジスタ (TREQR) bit 15 14 13 12 11 10 9 8 アドレス:000073H (CAN0) TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 TREQ9 TREQ8 000083H (CAN1) リード / ライト→ (R/W) (0) 初期値→ bit 7 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 5 4 3 2 1 0 アドレス:000072H (CAN0) TREQ7 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0 000082H (CAN1) リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) TREQx に "1" が書き込まれたときメッセージバッファ (x) に対する送信を開始します。 もしリモートフレーム受信待機レジスタ (RFWTR)*1 の RFWTx が "0" であれば送信は 直ちに開始します。しかし RFWTx=1 であればリモートフレームが受信される ( リモー ト要求受信レジスタ (RRTRR)*1 が "1" になる ) まで待機した後に送信が開始します。 もし TREQx に "1" が書き込まれるときに RRTRx が既に "1" であれば , RFWTx=1 であっ ても送信は直ちに開始します *2。 *1:TRTRR および RFWTR に関しては「19.6.9 送信 RTR レジスタ (TRTRR)」および 「19.6.10 リモートフレーム受信待機レジスタ (RFWTR)」を参照してください。 *2: 送信の解除に関しては「19.6.11 送信解除レジスタ (TCANR)」および「19.6.12 送 信完了レジスタ (TCR)」を参照してください。 TREQx に "0" を書き込んでも無視されます。 リードモディファイライト系命令がリードされたときは "0" が読み出されます。 もし送信動作の完了時における ("0" への ) クリアおよび "1" の書込みによる設定が同 時に生じればクリア動作が優先されます。 もし 1 つ以上のビットに "1" が書き込まれれば下位番号のメッセージバッファ(x) から 開始して送信が行われます。 TREQx は送信が待ち状態中は "1" であり送信が完了または解除されたときに "0" にな ります。 290 第 19 章 CAN コントローラ 19.6.9 送信 RTR レジスタ (TRTRR) 本レジスタはメッセージバッファ (x) による送信 RTR ( リモート送信要求 ) ビットを 設定するものです。 ■ 送信 RTR レジスタ (TRTRR) 図 19.6-11 送信 RTR レジスタ (TRTRR) bit 15 14 13 12 11 10 9 8 アドレス:001C0BH (CAN0) TRTR15 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8 001D0BH (CAN1) リード / ライト→ (R/W) (0) 初期値→ bit 7 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 5 4 3 2 1 0 アドレス:001C0AH (CAN0) TRTR7 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0 001D0AH (CAN1) リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 0: データフレームが送信されます。 1: リモートフレームが送信されます。 291 第 19 章 CAN コントローラ 19.6.10 リモートフレーム受信待機レジスタ (RFWTR) リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求 が設定された ( 送信要求レジスタ (TREQR) の TREQx が "1" であり送信 RTR レジ スタ (TRTRR) の TRTRx が "0" である ) ときに送信を開始する条件を設定します。 0: 送信は直ちに開始します。 1: リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) まで 待機した後に送信を開始します。 ■ リモートフレーム受信待機レジスタ (RFWTR) 図 19.6-12 リモートフレーム受信待機レジスタ (RFWTR) bit 15 14 13 12 11 10 9 8 アドレス:001C0DH (CAN0) RFWT15 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8 001D0DH (CAN1) リード / ライト→ (R/W) (X) 初期値→ bit 7 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 5 4 3 2 1 0 アドレス:001C0CH (CAN0) RFWT7 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0 001D0CH (CAN1) リード / ライト→ (R/W) (X) 初期値→ < 注意事項 > 292 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) • 送信に対する要求が設定されたときに RRTRx が既に "1" であれば送信は直ちに 開始します。 • リモートフレーム送信に対しては RFWTx を "1" にセットしないでください。 第 19 章 CAN コントローラ 19.6.11 送信解除レジスタ (TCANR) TCANx に "1" が書き込まれたときに本レジスタはメッセージバッファ (x) への送信 に対する待ち状態中の要求を解除します。 解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx に "0" を書き込んでも無視されます。 これは書込み専用レジスタでありその読出し値は常に "0" です。 ■ 送信解除レジスタ (TCANR) 図 19.6-13 送信解除レジスタ (TCANR) bit 15 14 13 12 11 10 9 8 アドレス:000075H (CAN0) TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 TCAN9 TCAN8 000085H (CAN1) リード / ライト→ 初期値→ bit (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) 7 6 5 4 3 2 1 0 アドレス:000074H (CAN0) TCAN7 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0 000084H (CAN1) リード / ライト→ 初期値→ (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) 293 第 19 章 CAN コントローラ 19.6.12 送信完了レジスタ (TCR) メッセージバッファ (x) により送信の完了時に対応する TCx は "1" になります。 もし送信完了割込み許可レジスタ (TIER) の TIEx が "1" であれば割込みが生じます。 ■ 送信完了レジスタ (TCR) 図 19.6-14 送信完了レジスタ (TCR) bit 15 14 13 12 11 10 9 8 アドレス:000077H (CAN0) TC15 000087H (CAN1) TC14 TC13 TC12 TC11 TC10 TC9 TC8 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 TC7 TC6 TC5 TC4 TC3 TC2 TC1 TC0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit アドレス:000076H (CAN0) 000086H (CAN1) リード / ライト→ (R/W) (0) 初期値→ ● TCx=0 となる条件 • TCx に "0" を書き込む。 • 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。 送信の完了の後で TCx に "0" を書き込むとそれを "0" にセットします。TCx に "1" を書 込んでも無視されます。リードモディファイライト系命令が実行されたときは "1" が 読み出されます。 < 注意事項 > 294 もし送信動作の完了時の "1" への設定および 0 の書込みによるクリアが同時に生じ たときは "1" への設定が優先します。 第 19 章 CAN コントローラ 19.6.13 送信割込み許可レジスタ (TIER) 本レジスタはメッセージバッファ (x) による送信割込みを許可または禁止します。送 信割込みは送信完了時 ( 送信完了レジスタ (TCR) の TCx が "1" になったとき ) に発 生します。 ■ 送信割込み許可レジスタ (TIER) 図 19.6-15 送信割込み許可レジスタ (TIER) bit 14 13 12 11 10 9 8 アドレス:001C0FH (CAN0) TIE15 001D0FH (CAN1) TIE14 TIE13 TIE12 TIE11 TIE10 TIE9 TIE8 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 TIE7 TIE6 TIE5 TIE4 TIE3 TIE2 TIE1 TIE0 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit アドレス:001C0EH (CAN0) 001D0EH (CAN1) 15 0: 送信割込みは禁止されます。 1: 送信割込みは許可されます。 295 第 19 章 CAN コントローラ 19.6.14 受信完了レジスタ (RCR) メッセージバッファ (x) への受信メッセージの格納の完了時に RCx は "1" になりま す。 もし受信完了割込み許可レジスタの RIEx が "1" であれば割込みが生じます。 ■ 受信完了レジスタ (RCR) 図 19.6-16 受信完了レジスタ (RCR) bit 14 13 12 11 10 9 8 アドレス:000079H (CAN0) RC15 000089H (CAN1) RC14 RC13 RC12 RC11 RC10 RC9 RC8 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit アドレス:000078H (CAN0) 000088H (CAN1) 15 リード / ライト→ (R/W) (0) 初期値→ ● RCx=0 となる条件 RCx に "0" を書き込む。 受信メッセージの処理を完了した後 , RCx に "0" を書き込んで "0" にセットしてくださ い。RCx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > 296 もし受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生 じたときは , "1" への設定が優先します。 第 19 章 CAN コントローラ 19.6.15 リモート要求受信レジスタ (RRTRR) 受信されたリモートフレームがメッセージバッファ (x) 内に格納されると RRTRx は (RCx 設定が "1" になると同時に ) "1" になります。 ■ リモート要求受信レジスタ (RRTRR) 図 19.6-17 リモート要求受信レジスタ (RRTRR) bit 15 14 13 12 11 10 9 8 アドレス:00007BH (CAN0) RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 RRTR9 RRTR8 00008BH (CAN1) リード / ライト→ (R/W) (0) 初期値→ bit 7 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 5 4 3 2 1 0 アドレス:00007AH (CAN0) RRTR7 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0 00008AH (CAN1) リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) ● RRTRx=0 となる条件 • RRTRx に "0" を書き込む。 • 受信されたデータフレームがメッセージバッファ (x) に格納された後 (RCx 設定が "1" になるのと同時 ) 。 • メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx は "1") 。 RRTRx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > もし "1" への設定と "0" の書込みによるクリアが同時に生じたときは "1" への設定が 優先します。 297 第 19 章 CAN コントローラ 19.6.16 受信オーバランレジスタ (ROVRR) もしメッセージバッファ (x) 内への受信メッセージの格納完了時に受信完了レジスタ (RCR) がすでに "1" であれば ROVRx は "1" になり受信がオーバランしたことを表 します。 ■ 受信オーバランレジスタ (ROVRR) 図 19.6-18 受信オーバランレジスタ (ROVRR) bit 15 14 13 12 11 10 9 8 アドレス:00007DH (CAN0) ROVR15 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8 00008DH (CAN1) リード / ライト→ (R/W) (0) 初期値→ bit 7 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 6 5 4 3 2 1 0 アドレス:00007CH (CAN0) ROVR7 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0 00008CH (CAN1) リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) ROVRx に "0" を書き込むと ROVRx=0 になります。ROVRx に "1" を書込みしても無視 されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込むと それを "0" に設定します。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > 298 もし "1" への設定と "0" の書込みによるクリアが同時に生じたときは "1" への設定が 優先します。 第 19 章 CAN コントローラ 19.6.17 受信割込み許可レジスタ (RIER) 受信割込み許可レジスタ (RIER) は , メッセージバッファ (x) による受信割込みを許 可または禁止します。 受信割込みは受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に発 生します。 ■ 受信割込み許可レジスタ (RIER) 図 19.6-19 受信割込み許可レジスタ (RIER) bit 15 14 13 12 11 10 アドレス:00007FH (CAN0) RIE15 RIE14 RIE13 RIE12 RIE11 RIE10 00008FH (CAN1) リード / ライト→ (R/W) (0) 初期値→ 9 8 RIE9 RIE8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 RIE7 RIE6 RIE5 RIE4 RIE3 RIE2 RIE1 RIE0 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) bit アドレス:00007EH (CAN0) 00008EH (CAN1) 0: 受信割込みは禁止されます。 1: 受信割込みは許可されます。 299 第 19 章 CAN コントローラ 19.6.18 アクセプタンスマスク選択レジスタ (AMSR) 本レジスタは受信メッセージ ID とメッセージバッファ (x) ID の比較に対するマスク ( アクセプタンスマスク ) を選択します。 ■ アクセプタンスマスク選択レジスタ (AMSR) 図 19.6-20 アクセプタンスマスク選択レジスタ (AMSR) BYTE0 bit 7 6 5 4 3 2 1 0 AMS 3.1 AMS 3.0 AMS 2.1 AMS 2.0 AMS 1.1 AMS 1.0 AMS 0.1 AMS 0.0 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AMS 7.1 AMS 7.0 AMS 6.1 AMS 6.0 AMS 5.1 AMS 5.0 AMS 4.1 AMS 4.0 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 AMS 11.1 AMS 11.0 AMS 10.1 AMS 10.0 AMS 9.1 AMS 9.0 AMS 8.1 AMS 8.0 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AMS 15.1 AMS 15.0 AMS 14.1 AMS 14.0 AMS 13.1 AMS 13.0 AMS 12.1 AMS 12.0 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) アドレス:001C10H (CAN0) 001D10H (CAN1) BYTE1 bit アドレス:001C11H (CAN0) 001D11H (CAN1) BYTE2 bit アドレス:001C12H (CAN0) 001D12H (CAN1) BYTE3 bit アドレス:001C13H (CAN0) 001D13H (CAN1) 表 19.6-2 アクセプタンスマスクの選択 300 AMSx.1 AMSx.0 0 0 フルビット比較 0 1 フルビットマスク 1 0 アクセプタンスマスクレジスタ 0(AMR0) 1 1 アクセプタンスマスクレジスタ 1(AMR1) アクセプタンスマスク 第 19 章 CAN コントローラ < 注意事項 > • AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である ( メッセージ バッファ有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければ なりません。バッファが有効 (BVALx=1) なときに設定を行うと不要な受信メッ セージが格納される可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能 な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 301 第 19 章 CAN コントローラ 19.6.19 アクセプタンスマスクレジスタ 0/1 (AMR0/AMR1) AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがありますが両者とも に標準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用で きます。 AM28 ∼ AM18 (11 ビット ) は標準フレームフォーマットにおけるアクセプタンスマ スクに使用され AM28 ∼ AM0 (29 ビット ) は拡張フォーマットでアクセプタンスマ スクに使用されます。 ■ アクセプタンスマスクレジスタ 0/1(AMR0/AMR1) 図 19.6-21 アクセプタンスマスクレジスタ 0/1(AMR0/AMR1) AMR0 BYTE0 6 5 4 3 2 1 0 アドレス:001C14H (CAN0) AM28 001D14H (CAN1) AM27 AM26 AM25 AM24 AM23 AM22 AM21 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 14 13 12 11 10 9 8 アドレス:001C15H (CAN0) AM20 001D15H (CAN1) AM19 AM18 AM17 AM16 AM15 AM14 AM13 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 5 4 3 2 1 0 アドレス:001C16H (CAN0) AM12 001D16H (CAN1) AM11 AM10 AM9 AM8 AM7 AM6 AM5 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AM4 AM3 AM2 AM1 AM0 − − − リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (−) (−) (−) (−) (−) (−) AMR0 BYTE1 AMR0 BYTE2 AMR0 BYTE3 bit bit bit bit アドレス:001C17H (CAN0) 001D17H (CAN1) 7 15 7 ( 続く ) 302 第 19 章 CAN コントローラ ( 続き ) AMR1 BYTE0 bit 6 5 4 3 2 1 0 アドレス:001C18H (CAN0) AM28 001D18H (CAN1) AM27 AM26 AM25 AM24 AM23 AM22 AM21 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) AMR1 BYTE1 bit 7 14 13 12 11 10 9 8 アドレス:001C19H (CAN0) AM20 001D19H (CAN1) AM19 AM18 AM17 AM16 AM15 AM14 AM13 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 6 5 4 3 2 1 0 アドレス:001C1AH (CAN0) AM12 001D1AH (CAN1) AM11 AM10 AM9 AM8 AM7 AM6 AM5 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 AM5 AM4 AM3 AM2 AM0 − − − リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (−) (−) (−) (−) (−) (−) AMR1 BYTE2 bit AMR1 BYTE3 bit アドレス:001C1BH (CAN0) 001D1BH (CAN1) 15 7 ● 0: コンペア 本ビットに対応するアクセプタンスコード ( 受信メッセージ ID と比較するための ID レジスタ IDRx) を受信メッセージ ID のビットと比較します。マッチしなければメッ セージは受信されません。 ● 1: マスク 本ビットに対応するアクセプタンスコード ID レジスタ (IDRx) をマスクします。受信 メッセージ ID のビットとのコンペアは行われません。 < 注意事項 > • AMR0 および AMR1 は AMR0 および AMR1 を選択するメッセージバッファ (x) のすべてが無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") で あるときに設定しなければなりません。バッファが有効 (BVALx=1) であるとき に設定を行うと不必要な受信メッセージが格納される可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能 な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 303 第 19 章 CAN コントローラ 19.6.20 メッセージバッファ メッセージバッファは 16 個あり , 1 つのメッセージバッファ x (x=0 ∼ 15) は ID レ ジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成され ています。 ■ メッセージバッファ ● メッセージバッファ (x) は送信および受信の両方に使用されます。 ● 下位番号のメッセージバッファの方が高い優先順位を割り当てられています。 • 送信時に送信要求が 1 つ以上のメッセージバッファに対してなされたときには最下 位番号のメッセージバッファから開始して送信が行われます (「19.7 CAN コント ローラの送信」を参照してください ) 。 • 受信時に 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセー ジのアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッ セージ ID が通過するときに受信メッセージは最下位番号のメッセージバッファ内 に格納されます (「19.8 CAN コントローラの受信」を参照してください ) 。 ● 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたときに メッセージバッファはマルチレベルメッセージバッファとして使用することができます。 これにより受信時間に対する余裕が与えられます。 (「19.12 メッセージバッファ (x) による受信方法」を参照してください ) 。 < 注意事項 > • メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位でイー ブンアドレスに対して行わなければなりません。バイト単位で書込み動作を行う と下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいます。 • メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが 0 ( 無効 ) である ときにメッセージバッファ x (IDRx, DLCRx および DTRx) は汎用 RAM として使 用することができます。ただし , CAN コントローラが送受信動作中は , メッセー ジバッファを使用しますので , CPU のアクセスが最大で 64 マシンサイクル待た されることがあります。これは汎用 RAM 領域 ( アドレス 001A00H ∼ 001A1FH およびアドレス 001B00H ∼ 001B1FH) についても同様です。 304 第 19 章 CAN コントローラ 19.6.21 ID レジスタ x (x=0 ∼ 15) (IDRx) ID レジスタ x (x=0 ∼ 15) (IDRx) は , メッセージバッファ (x) に対する ID レジスタ です。 ■ ID レジスタ x (x=0 ∼ 15) (IDRx) 図 19.6-22 ID レジスタ x (x=0 ∼ 15) (IDRx) BYTE0 bit 7 6 5 4 3 2 1 0 ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID21 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 15 14 13 12 11 10 9 8 ID20 ID19 ID18 ID17 ID16 ID15 ID14 ID13 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 ID12 ID11 ID10 ID9 ID8 ID7 ID6 ID5 リード / ライト→ (R/W) (X) 初期値→ (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) アドレス:001A20H+4x (CAN0) 001B20H+4x (CAN1) BYTE1 bit アドレス:001A21H+4x (CAN0) 001B21H+4x (CAN1) BYTE2 bit アドレス:001A22H+4x (CAN0) 001B22H+4x (CAN1) BYTE3 bit 15 14 13 12 11 10 9 8 アドレス:001A23H+4x (CAN0) 001B23H+4x (CAN1) ID4 ID3 ID2 ID1 ID0 − − − (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (−) (−) (−) (−) (−) (−) リード / ライト→ (R/W) (X) 初期値→ 標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x) を使用しているときは ID28 ∼ ID18 の 11 ビットを使用してください。拡張フレーム フォーマット (IDEx=1) でバッファを使用しているときは ID28 ∼ ID0 の 29 ビットを使 用してください。 ID28 ∼ ID0 の機能は次のとおりです。 • アクセプタンスコード設定 ( 受信メッセージ ID との比較用の ID) • 送信メッセージ ID の設定 < 注意事項 > 標準フレームフォーマットでは ID28 ∼ ID22 のビットのすべてに "1" をセットする ことは禁止されています。 305 第 19 章 CAN コントローラ • 受信メッセージ ID の格納 < 注意事項 > 受信メッセージ ID はアクセプタンスマスクでマスクされているビットにも格納さ れます。標準フレームフォーマットでは ID17 ∼ ID0 は不定値 ( 前回受信したメッ セージの一部 ) が格納されます。 < 注意事項 > • 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位 で書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き 込んでしまいます。上位バイトへの書込みは無視されます。 • 本レジスタはメッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに設定されなければなりません。バッファ が有効 (BVALx=1) であるときに設定を行うと不必要な受信メッセージが格納さ れてしまいます。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し 値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能 な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「19.14 CAN コントローラの使用上の注意」に従ってください。 306 第 19 章 CAN コントローラ 19.6.22 DLC レジスタ x (x=0 ∼ 15) (DLCRx) DLC レジスタ x (x=0 ∼ 15) (DLCRx) は , メッセージバッファ x に対する DLC を格 納します。 ■ DLC レジスタ x (x=0 ∼ 15) (DLCRx) 図 19.6-23 DLC レジスタ x (x=0 ∼ 15) (DLCRx) bit 7 6 5 4 3 2 1 0 アドレス:001A60H+2x (CAN0) 001B60H+2x (CAN1) − − − − DLC3 DLC2 DLC1 DLC0 (−) (−) (−) (−) (−) (−) (−) (−) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ 初期値→ ● 送信 • データフレームが送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときに送 信メッセージのデータ長 ( バイト単位 ) を設定します。 • リモートフレームが送信する (TRTRx=1) ときに要求メッセージのデータ長 ( バイト 単位 ) を設定します。 < 注意事項 > 0000 ∼ 1000 (0 ∼ 8 バイト ) 以外の設定は禁止されています。 ● 受信 • データフレームが受信された ( リモートフレーム要求受信レジスタ (RRTRR) の RRTRx が "0") ときに受信メッセージのデータ長 ( バイト単位 ) を格納します。 • リモートフレームが受信された (RRTRx=1) ときに要求メッセージのデータ長 ( バイ ト単位 ) を格納します。 < 注意事項 > 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で 書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込ん でいます。上位バイトへの書込みは無視されます。 307 第 19 章 CAN コントローラ 19.6.23 データレジスタ x (x=0 ∼ 15) (DTRx) データレジスタ x (x=0 ∼ 15) (DTRx) は , メッセージバッファ (x) に対するデータレ ジスタです。 本レジスタはデータフレームの送信および受信のみ使用されるものでありリモート フレームの送信および受信には使用されません。 ■ データレジスタ x (x=0 ∼ 15) (DTRx) 図 19.6-24 データレジスタ x (x=0 ∼ 15) (DTRx) BYTE0 bit アドレス:001A80H+8x (CAN0) 001B80H+8x (CAN1) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ BYTE1 bit 15 14 13 12 11 10 9 8 アドレス:001A81H+8x (CAN0) 001B81H+8x (CAN1) D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ BYTE2 bit アドレス:001A82H+8x (CAN0) 001B82H+8x (CAN1) リード / ライト→ (R/W) (X) 初期値→ BYTE3 bit 15 14 13 12 11 10 9 8 アドレス:001A83H+8x (CAN0) 001B83H+8x (CAN1) D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ ( 続く ) 308 第 19 章 CAN コントローラ ( 続き ) BYTE4 bit アドレス:001A84H+8x (CAN0) 001B84H+8x (CAN1) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ BYTE5 bit 15 14 13 12 11 10 9 8 アドレス:001A85H+8x (CAN0) 001B85H+8x (CAN1) D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ BYTE6 bit アドレス:001A86H+8x (CAN0) 001B86H+8x (CAN1) リード / ライト→ (R/W) (X) 初期値→ BYTE7 bit 15 14 13 12 11 10 9 8 アドレス:001A87H+8x (CAN0) 001B87H+8x (CAN1) D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) リード / ライト→ (R/W) (X) 初期値→ ● 送信メッセージデータ (0 ∼ 8 バイトのいずれか ) の設定。 データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。 ● 受信メッセージデータ データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で格納されます。 受信メッセージデータが 8 バイトより少なくてもデータが格納されるデータレジスタ (DTRx) の残りのバイトは不定となります。 < 注意事項 > 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で 書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込ん でしまいます。上位バイトへの書込みは無視されます。 309 第 19 章 CAN コントローラ 19.7 CAN コントローラの送信 CAN コントローラでは , 送信要求レジスタ (TREQR) の TREQx に "1" が書き込まれ たときにメッセージバッファ (x) による送信が開始します。このときに TREQx は "1" になり送信完了レジスタ (TCR) の TCx は "0" になります。 ■ CAN コントローラの送信の開始 リモートフレーム受信待機レジスタ (RFWTR) の RFWTx が "0" であれば送信は直ちに 開始します。もし RFWTx が "1" であれば , リモートフレームが受信される ( リモート 要求受信レジスタ (RRTRR) の RRTRx が "1" になる ) まで待機した後に送信が開始しま す。 もし送信に対する要求が 1 つ以上のメッセージバッファに対して試された (1 つ以上の TREQx が "1") ときには最下位番号のメッセージバッファから開始して送信が行われま す。 CAN バスに対するメッセージ送信 ( 送信出力端子 TX によるもの ) はバスがアイドル のときに開始します。 送信 RTR レジスタ (TRTRR) の TRTRx が "0" であればデータフレームが送信されます。 もし TRTRx が "1" であればリモートフレームが送信されます。 送信に関してメッセージバッファが CAN バス上のほかの CAN コントローラと競合し てアービトレーションが不調に終わった場合または送信中にエラーが生じた場合 , メッセージバッファはバスがアイドルとなるまで待機しそれが成功するまで再送信を 反復します。 ■ CAN コントローラの送信要求の解除 ● 送信解除レジスタ (TCANR) による解除 送信待ち状態中に送信を実行しなかったメッセージバッファ(x) に対する送信要求は送 信解除レジスタ (TCANR) の TCANx に "1" を書き込むことにより解除することができ ます。解除の完了時に TREQx は "0" になります。 ● 受信メッセージの格納による解除 送信要求にも関わらず送信を実行しなかったメッセージバッファ (x) も受信を行いま す。 データフレームの送信に対する要求にもかかわらずメッセージバッファ(x) が送信を実 行していなかった場合でも (TRTRx=0 または TREQx=1) , アクセプタンスフィルタを通 過した受信データフレームを格納した後には送信要求が解除されます (TREQx=0)。 < 注意事項 > リモートフレームを格納することでは送信要求は解除されません (TREQx=1 はその ままです ) 。 リモートフレームの送信に対する要求にもかかわらずメッセージバッファ(x) が送信を 実行していなかった場合でも (TRTRx=1 または TREQx=1) , アクセプタンスフィルタを 通過した受信リモートフレームを格納した後には送信要求が解除されます (TREQx=0)。 310 第 19 章 CAN コントローラ < 注意事項 > データフレームまたはリモートフレームのいずれを格納しても送信要求は解除され ます。 ■ CAN コントローラの送信の完了 送信が成功したときに RRTRx は "0" になり TREQx は "0" になり送信完了レジスタ (TCR) の TCx は "1" になります。もし送信完了割込みが許可されていれば ( 送信完了 割込み許可レジスタ (TIER) の TIEx は "1") 割込みが生じます。 ■ CAN コントローラの送信フローチャート 図 19.7-1 に , CAN コントローラの送信フローチャートを示します。 図 19.7-1 CAN コントローラの送信フローチャート 送信要求 (TREQx:=1) TCx:=0 0 TREQx? 1 0 RFWTx? 1 0 RRTRx? 1 上記条件を満足する他のメッセージ バッファがある場合 , その中で最下 位番号メッセージバッファを選択 NO バスは使用されて いないか。 YES 0 1 TRTRx? データフレームが送信される リモートフレームが送信される NO 送信は成功したか。 YES TCANx? 1 RRTRx:= 0 TREQx:= 0 TCx := 1 TIEx? 0 TREQx:=0 1 0 送信完了割込みが生ずる 送信の終了 311 第 19 章 CAN コントローラ 19.8 CAN コントローラの受信 CAN バス上でデータフレームまたはリモートフレームの開始 (SOF) が検出されたと きに受信は開始します。 ■ アクセプタンスフィルタリング 標準フレームフォーマットの受信メッセージは標準フレームフォーマットに設定され たメッセージバッファ (x) (IDE レジスタ (IDER) の IDEx は "0") と比較されます。拡張 フレームフォーマットの受信メッセージは拡張フレームフォーマットに設定された メッセージバッファ (x) (IDEx は "1") と比較されます。 もし受信メッセージ ID とアクセプタンスコード ( 受信メッセージ ID との比較のため の ID レジスタ (IDRx) との比較の後にアクセプタンスマスクにより比較すべきビット セットのすべてが一致すれば受信メッセージはメッセージバッファ(x) のアクセプタン スフィルタを通過します。 ■ 受信メッセージの格納 受信動作が成功したときに受信メッセージはアクセプタンスフィルタを通過した ID を 含めメッセージバッファ (x) に格納されます。 データフレームを受信したときに受信メッセージは ID レジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) に格納されます。 受信メッセージデータが 8 バイトより少なくてもデータは DTRx の残りのバイトに格 納されその値は不定となります。 リモートフレームを受信したときに受信メッセージは IDRx および DLCRx のみに格納 されて DTRx はそのままです。 もしアクセプタンスフィルタを通過した ID を含む 1 つ以上のメッセージバッファがあ れば受信メッセージが格納されるべきメッセージバッファ x は次の規則により決定さ れます。 • メッセージバッファ x (x=0 ∼ 15) の優先順位はその番号が低いほど高くなります。 すなわちメッセージバッファ0 が最高の優先度を与えられメッセージバッファ15 は 最低の優先度が与えられます。 • 受信メッセージを格納する上では基本的に受信完了レジスタ (RCR) の RCx ビット が "0" に設定されたメッセージバッファが優先されます。 • もしアクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較 (AMSx.1 および AMSx.0 ビットが "00" に設定されたメッセージバッファに設定され ていれば RCR の RCx ビットの値にかかわらず受信メッセージは格納されます。 • もし RCR の RCx ビットが "0" のバッファと AMSR のビットが全ビット比較に設定 されているバッファが複数ある場合 , 受信メッセージは最下位番号 ( 最優先 ) のメッ セージバッファ x に格納されます。 • もし上記のメッセージバッファが無ければ受信メッセージは下位番号メッセージ バッファ x に格納されます。 312 第 19 章 CAN コントローラ 図 19.8-1 には , 受信メッセージを格納すべきメッセージバッファ x を決定するための フローチャートが示されています。メッセージバッファはバッファ番号順に , AMSR の 各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1 を 使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセット されたメッセージバッファの順番に設定されることを推奨します。 図 19.8-1 受信メッセージを格納するメッセージバッファ (x) を決定するフローチャート 開始 RCx が "0" にセットされているか , AMSx.1 および AMSx.0 が "00" にセットされてい るメッセージバッファが見つかったか。 NO YES 最下位番号のメッセージ バッファを選択 最下位番号のメッセージ バッファを選択 終了 ■ 受信オーバラン 受信メッセージが格納されるべきメッセージバッファ x に対応する受信完了レジスタ (RCR) の RCx ビットがすでに "1" にセットされていてメッセージバッファx の受信メッ セージの格納が完了したときに受信オーバランレジスタ (ROVRR) の ROVRx ビットは "1" にセットされて受信オーバランを示します。 ■ データフレームおよびリモートフレームの受信に対する処理 ● データフレームの受信に対する処理 リモート要求受信レジスタ (RRTRR) の RRTRx は "0" になります。 送信要求レジスタ (TREQR) の TREQx は ( 受信メッセージを格納する直前に ) "0" にな ります。送信を実行しなかったメッセージバッファ (x) に対する送信要求は解除されま す。 < 注意事項 > データフレームまたはリモートフレームのいずれの送信に対する要求も解除されま す。 ● リモートフレームの受信に対する処理 RRTRx は "1" になります。 もし送信 RTR レジスタ (TRTRR) の TRTRx が "1" であれば TREQx は "0" になります。 この結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に 対する要求は解除されます。 < 注意事項 > • データフレーム送信に対する要求は解除されません。 • 送信要求の解除に関しては「19.7 CAN コントローラの送信」を参照してくださ い。 313 第 19 章 CAN コントローラ ■ 受信完了 受信完了レジスタ (RCR) の RCx は受信メッセージを格納した後に "1" になります。 もし受信割込みが許可されていれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1") 割込みが生じます。 < 注意事項 > 314 この CAN コントローラはそれ自身が送信したメッセージを受信することはありま せん。 第 19 章 CAN コントローラ 19.9 CAN コントローラの受信フローチャート 図 19.9-1 に , CAN コントローラの受信フローチャートを示します。 ■ CAN コントローラの受信フローチャート 図 19.9-1 CAN コントローラの受信フローチャート データフレームまたはリモート フレームの開始 (SOF) の検出 NO アクセプタンスフィルタをパスする メッセージバッファ (x) はあるか。 YES NO 受信は成功したか。 YES 受信メッセージを記憶するメッセージ バッファ (x) を決定 受信メッセージをメッセージ バッファ (x) に記憶 1 RCx? 0 ROVRx:=1 データフレーム リモートフレーム 受信メッセージは ? RRTRx:=0 RRTRx:=1 1 TRTRx? 0 TREQx:=0 RCx:=1 RIEx? 1 0 受信割込みが生じる 受信の終了 315 第 19 章 CAN コントローラ 19.10 CAN コントローラの使用方法 CAN コントローラでは , 次のような設定が必要です。 • ビットタイミングの設定 • フレームフォーマットの設定 • ID の設定 • アクセプタンスフィルタの設定 • 低電力消費モードの設定 ■ ビットタイミングの設定 ビットタイミングレジスタ (BTR) はバス動作停止 ( 制御ステータスレジスタ (CSR) の バス動作停止ビット (HALT) が "1") の間に設定しなければなりません。 設定完了の後に HALT に "0" を書き込んでバス動作停止を解除してください。 ■ フレームフォーマットの設定 メッセージバッファ (x) により使用されるフレームフォーマットを設定してください。 標準フレームフォーマットを使用するときには IDE レジスタ (IDER) の IDEx を "0" に 設定してください。拡張フレームフォーマットを使用するときには IDEx を "1" に設定 してください。 この設定はメッセージバッファ(x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに行わなければなりません。バッファが有効 (BVALx=1) のときに設定を行うと不必要な受信メッセージが格納される可能性があります。 ■ ID の設定 メッセージバッファ (x) の ID を ID レジスタ (IDRx) の ID28 ∼ ID0 に設定してくださ い。メッセージバッファ (x) の ID は標準フレームフォーマットでは ID17 ∼ ID0 に設 定する必要はありません。メッセージバッファ (x) の ID は送信では送信メッセージと して使用され受信ではアクセプタンスコードとして使用されます。 この設定はメッセージバッファ(x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるときに行わなければなりません。バッファが有効 (BVALx=1) のときに設定を行うと不必要な受信メッセージが格納される可能性があります。 316 第 19 章 CAN コントローラ ■ アクセプタンスフィルタの設定 メッセージバッファ(x) のアクセプタンスフィルタはアクセプタンスコードおよびアク セプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ ファ (x) が無効 ( メッセージバッファ許可レジスタ (BVALR) の BVALx が "0") である ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行 うと不必要な受信メッセージが格納される可能性があります。 各メッセージバッファ(x) で使用されたアクセプタンスマスクをアクセプタンスマスク 選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ (AMR0 および AMR1) も使用するのであれば設定しなければなりません ( 設定の詳細 に関しては「19.6.18 アクセプタンスマスク選択レジスタ (AMSR)」および「19.6.19 ア クセプタンスマスクレジスタ 0/1 (AMR0/AMR1)」を参照してください ) 。 アクセプタンスマスクは不必要な受信メッセージが格納されたときでも送信要求が解 除されないように設定しなければなりません。例えば , それは同一の ID のメッセージ のみを送信するのであればフルビット比較に設定しなければなりません。 ■ 低電力消費モードの設定 F2MC-16LX を低電力消費モード ( 停止 , 時計 , ハードウェアスタンバイなど ) に設定す るには制御ステータスレジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込ん でからバス動作が停止したか (HALT=1) をチェックしてください。 317 第 19 章 CAN コントローラ 19.11 メッセージバッファ (x) による送信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ ファ (x) を有効にしてください。 ■ メッセージバッファ (x) による送信方法 ● 送信データ長コードの設定 送信データ長コード ( バイト単位 ) を DLC レジスタ (DLCRx) の DLC3 ∼ DLC0 に設定 してください。 データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して は送信メッセージのデータ長を設定してください。 リモートフレーム送信 (TRTRx=1 のとき ) に対しては要求メッセージのデータ長 ( バイ ト単位 ) を設定してください。 < 注意事項 > 0000 ∼ 1000 (0 ∼ 8 バイト ) 以外の設定は禁止されています。 ● 送信データの設定 ( データフレームの送信に対してのみ ) データフレーム送信 ( 送信レジスタ (TRTRR) の TRTRx が "0" のとき ) に対してはデー タを送信バイト数分データレジスタ (DTRx) に設定してください。 < 注意事項 > 送信データは送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して再書込 みしなければなりません。メッセージバッファ有効レジスタ (BVALR) の BVALx ビットを "0" に設定する必要はありません。BVALx ビットを "0" に設定するとリ モートフレーム受信を喪失する可能性があります。 ● 送信 RTR レジスタの設定 データフレーム送信に対しては送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定し てください。 リモートフレーム送信に対しては TRTRx を "1" に設定してください。 ● 送信開始条件の設定 ( データフレームの送信のみ ) データフレーム送信に対する要求が設定された直後に送信を開始するためには , リ モートフレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください ( 送 信要求レジスタ (TREQR) の TREQx は "1" であり送信 RTR レジスタ (TRTRR) の TRTRx は "0" です ) 。 データフレーム送信に対する要求が設定され (TREQx=1およびTRTRx=0)た後にリモー トフレームを受信する ( リモート要求受信レジスタ (RRTRR) の RRTRx が "1" になる ) まで待機した後に送信を開始するためには , RFWTx を "1" に設定してください。 < 注意事項 > 318 もし RFWTx が "1" に設定されるとリモートフレーム送信を行うことはできません。 第 19 章 CAN コントローラ ● 送信完了割込みの設定 送信完了割込みを発生する場合には送信完了割込み許可レジスタ (TIER) の TIEx を "1" に設定してください。 送信完了割込みを発生しない場合には TIEx を "0" に設定してください。 ● 送信要求の設定 送信要求を行うには送信要求レジスタ (TREQR) の TREQx を "1" に設定してください。 ● 送信要求の解除 メッセージバッファ (x) に対する送信の要求を解除するときには送信解除レジスタ (TCANR) の TCANx に "1" を書き込んでください。 TREQx をチェックしてください。TREQx=0 の場合には送信解除が終了したか送信が 完了しています。送信完了レジスタ (TCR) の TCx をチェックしてください。TCx=0 の 場合には送信解除は終了しています。TCx=1 ならば送信が完了しています。 ● 送信完了の処理 送信が成功すれば送信完了レジスタ (TCR) の TCx は "1" になります。 もし送信完了割込みが許可されていれば ( 送信完了割込み許可レジスタ (TIER) の TIEx が "1") 割込みが生じます。 送信完了をチェックした後に TCx に "0" を書き込んでそれを "0" に設定してください。 これにより送信完了割込みが解除されます。 次の場合には待ち状態中の送信要求はメッセージの受信および格納により解除されま す。 • データフレームの受信によるデータフレーム送信の要求 • データフレームの受信によるリモートフレーム送信の要求 • リモートフレームの受信によるリモートフレーム送信の要求 データフレーム送信に対する要求はリモートフレームの受信および格納によっては解 除されません。ただし ID および DLC は受信したリモートフレームの ID および DLC により変更されます。送信されるべきデータフレームの ID および DLC が受信したリ モートフレームの値になることに注意してください。 319 第 19 章 CAN コントローラ 19.12 メッセージバッファ (x) による受信方法 ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ タンスフィルタの設定の後で , 以下の設定をしてください。 ■ メッセージバッファ (x) による受信方法 ● 受信割込み設定 受信割込みを許可するには受信割込み許可レジスタ (RIER) の RIEx を "1" に設定して ください。 受信割込みを禁止するには RIEx を "0" に設定してください。 ● 受信開始 設定の後で受信を開始するときにはメッセージバッファ有効レジスタ (BVALR) の BVALx を "1" に設定してメッセージバッファ (x) を有効にしてください。 ● 受信完了の処理 アクセプタンスフィルタへの通過の後に受信が成功すれば受信メッセージはメッセー ジバッファ (x) に格納されて受信完了レジスタ (RCR) の RCx は "1" になります。デー タフレーム受信に関してはリモート要求受信レジスタ (RRTRR) の RRTRx は "0" にな ります。リモートフレーム受信に関しては RRTRx は "1" になります。 もし受信割込みが許可されれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1") 割込 みが生じます。 受信完了をチェックした後 (RCx=1) で受信メッセージを処理してください。 受信メッセージの処理を完了した後は受信オーバランレジスタ (ROVRR) の ROVRx を チェックしてください。 ROVRx=0 ならば処理された受信メッセージは有効です。RCx に "0" を書き込んでそれ を "0" に設定し ( 受信完了割込みも解除されます ) て受信を終了します。 ROVRx=1 ならば受信オーバランが生じ , 処理された受信メッセージに新たな受信メッ セージが上書きされている可能性があります。この場合には ROVRx ビットに "0" を書 き込んでそれを "0" に設定した後で受信メッセージを再処理しなければなりません。 図 19.12-1 に , 受信割込み処理の一例を示します。 320 第 19 章 CAN コントローラ 図 19.12-1 受信割込み処理の例 RCx=1 で割込み 受信メッセージ読取り A:=ROVRx ROVRx:=0 A = 0? NO YES RCx:=0 終了 321 第 19 章 CAN コントローラ 19.13 マルチレベルメッセージバッファの構成の決定 受信が頻繁に行われる場合または不特定多数のメッセージを受信する場合は , 1 つ以 上のメッセージバッファを組み合せてマルチレベルメッセージバッファとすること により CPU による受信メッセージの処理に対する余裕を与えてください。 ■ マルチレベルメッセージバッファの構成の決定 マルチレベルメッセージバッファを用意するには , 組み合せた各メッセージバッファ に同じアクセプタンスフィルタを設定しなければなりません。 アクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較 ((AMSx.1, AMSx.0)= (0, 0)) に設定されていれば , メッセージバッファをマルチレベルメッセージ 構成とすることはできません。これは , 全ビット比較では受信完了レジスタ (RCR) の RCx ビットの値のいかんにかかわらず , 受信メッセージが格納されることから , 1 つ以 上のメッセージバッファに対して全ビット比較および同一アクセプタンスコード (ID レジスタ (IDRx)) が指定されたとしても , 受信メッセージが常に下位番号の ( 優先度の 低い ) メッセージバッファに格納されるからです。このため , 全ビット比較および同一 アクセプタンスコードを 1 つ以上のメッセージバッファに指定してはなりません。 図 19.13-1 は , マルチレベルメッセージバッファの動作例を示しています。 322 第 19 章 CAN コントローラ 図 19.13-1 マルチレベルメッセージバッファの動作例 初期化 AMS15, AMS14, AMS13 AMSR 10 10 10 AMR0 選択 ... AM28 ~ AM18 AMS0 ID28 ~ ID18 0000 1111 111 RC15, RC14, RC13 IDE ... メッセージバッファ 13 0101 0000 000 0 ... RCR 0 0 0 ... メッセージバッファ 14 0101 0000 000 0 ... ROVRR 0 0 0 ... メッセージバッファ 15 0101 0000 000 0 ... ROVR15, ROVR14, ROVR13 マスク メッセージ受信中:受信メッセージはメッセージバッファ 13 に記憶されます。 IDE ID28 ~ ID18 メッセージ受信中 0101 1111 000 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 0 0 1 ... メッセージバッファ 14 0101 0000 000 0 ... ROVRR 0 0 0 ... メッセージバッファ 15 0101 0000 000 0 ... メッセージ受信中:受信メッセージはメッセージバッファ 14 に記憶されます。 メッセージ受信中 0101 1111 001 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 0 1 1 ... メッセージバッファ 14 0101 1111 001 0 ... ROVRR 0 0 0 ... メッセージバッファ 15 0101 0000 000 0 ... メッセージ受信中:受信メッセージはメッセージバッファ 15 に記憶されます。 メッセージ受信中 0101 1111 010 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 1 1 1 ... メッセージバッファ 14 0101 1111 001 0 ... ROVRR 0 0 0 ... メッセージバッファ 15 0101 1111 010 0 ... メッセージ受信中:受信メッセージはメッセージバッファ 13 に記憶されます。 < 注意事項 > メッセージ受信中 0101 1111 011 0 ... メッセージバッファ 13 0101 1111 011 0 ... RCR 1 1 1 ... メッセージバッファ 14 0101 1111 001 0 ... ROVRR 0 0 1 ... メッセージバッファ 15 0101 1111 010 0 ... 4 個のメッセージが同一のアクセプタンスフィルタ設定によりメッセージバッファ 13, 14 および 15 に受信されます。 323 第 19 章 CAN コントローラ 19.14 CAN コントローラの使用上の注意 CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値 が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状 態 ) で , メッセージバッファの内容の読出しや書込み中にメッセージバッファ有効レ ジスタの BVAL ビットを無効 (BVALR:BVAL=0) にした場合 , CAN コントローラの 動作に異常をもたらす可能性があります。これは , 以下の操作により回避すること ができます。 ■ CAN コントローラの使用上の注意 ● 受信メッセージバッファの構成を変更する場合の操作 CAN のアプリケーションによっては , CAN 通信後に得られる情報を元にメッセージ バッファの構成を変更する場合があります。CAN 通信が確立されている間 (CSR:HALT ビットの読出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受 信が可能な状態 ) で , ID レジスタ (IDR) やアクセプタンスマスク選択レジスタ (AMSR), アクセプタンスマスクレジスタ 0/1(AMR0/AMR1) の設定変更によりメッセージバッ ファの構成を変更する場合は , 以下のいずれかによる操作を行ってください。 【HALT ビットの使用】 制御ステータスレジスタ (CSR) の HALT ビットに "1" を書き込み , HALT ビットの読出 し値が "1" になったことを確認してから ID レジスタ (IDR) やアクセプタンスマスク選 択レジスタ (AMSR), アクセプタンスマスクレジスタ 0/1(AMR0/AMR1) の設定を変更し てください。 【メッセージバッファ 0 を使用しない】 メッセージバッファ0を送信にも受信にも使用しないでください ( メッセージバッファ を無効 (BVALR:BVAL0=0), 受信完了時の割り込みを禁止 (RIER:RIE0=0), 送信要求しな い (TREQR:TREQ=0) に設定してください ) 。 ● 受信メッセージの処理を行う場合の操作 受信メッセージをメッセージバッファから読み出す場合は , 次のメッセージが上書き される可能性があります。これを回避するために , メッセージバッファ有効レジスタの BVAL ビットによる受信禁止 (BVALR:BVAL=0) を行わないでください。受信メッセー ジをメッセージバッファから確実に読み出す場合は , メッセージの読出し前後で , メッ セージの上書き有無を受信オーバランレジスタ (ROVRR) の ROVR ビットにより確認 してください。詳細は「19.6.16 受信オーバランレジスタ (ROVRR)」および「19.12 メッ セージバッファ (x) による受信方法」を参照してください。 ● 送信要求の抑止をする場合の操作 送信要求を解除する場合は , メッセージバッファ有効レジスタの BVAL ビットによる 送信禁止 (BVALR:BVAL=0) を行わないでください。送信要求を解除する場合は , 受信 キャンセルレジスタ (TCANR) の TCAN ビットを "1" に設定してください。 324 第 19 章 CAN コントローラ ● 送信メッセージを構成する場合の操作 送信メッセージの構成を行うために , ID レジスタ (IDR) や IDE レジスタ (IDER) の設定 を行う場合は, メッセージバッファ有効レジスタのBVALビットによりメッセージバッ ファを無効 (BVALR:BVAL=0) にする必要があります。 送信要求レジスタ (TREQR) の TREQ ビットが "0" であることを確認するか , 送信完了 レジスタ (TCR) の TC ビットが "1" であることを確認してから BVAL ビットを無効 (BVALR:BVAL=0) にしてください。 325 第 19 章 CAN コントローラ 326 第 20 章 ステッピングモータ コントローラ この章では , ステッピングモータコントローラの機 能と動作について説明します。 20.1 ステッピングモータコントローラの概要 20.2 ステッピングモータコントローラのレジスタ 20.3 ステッピングモータコントローラの使用上の注意 327 第 20 章 ステッピングモータ コントローラ ステッピングモータコントローラの概要 20.1 ステッピングモータコントローラは 2 個の PWM パルス発生器 , 4 個のモータドライ バおよびセレクタロジックから構成されています。 4 個のモータドライバは , 高出力駆動能力があり , 2 個のモータコイルの 4 個の端部 に直接接続することができます。PWM パルス発生器とセレクタロジックを組み合わ せて , モータの回転を制御するように設計されています。同期機構により 2 個の PWM の同期動作が確かなものとなります。 次項ではステッピングモータコントローラ 0 のみを説明しています。ほかのコント ローラの機能も同様です。レジスタアドレスは I/O マップに見られます。 ■ ステッピングモータコントローラのブロックダイヤグラム 図 20.1-1 に , ステッピングモータコントローラのブロックダイヤグラムを示します。 図 20.1-1 ステッピングモータコントローラのブロックダイヤグラム マシンクロック OE1 プリスケーラ CK PWM1P0 PWM1 パルス発生器 EN P1 セレクタ PWM1M0 PWM P0 PWM1 選択レジスタ PWM1 コンペアレジスタ OE2 CK CE EN 出力許可 PWM2P0 セレクタ PWM2 パルス発生器 PWM2M0 PWM ロード PWM2 コンペアレジスタ 328 出力許可 BS PWM2 選択レジスタ 第 20 章 ステッピングモータ コントローラ 20.2 ステッピングモータコントローラのレジスタ ステッピングモータコントローラのレジスタには次の 5 種類があります。 • PWM 制御 0 レジスタ (PWC0) • PWM1 コンペア 0 レジスタ (PWC10) • PWM2 コンペア 0 レジスタ (PWC20) • PWM1 選択レジスタ (PWS10) • PWM2 選択レジスタ (PWS20) ■ ステッピングモータコントローラのレジスタ 図 20.2-1 ステッピングモータコントローラのレジスタ PWM 制御 0 レジスタ bit 7 アドレス : 000062H OE2 (R/W) リード / ライト→ (0) 初期値→ 6 5 4 3 2 1 0 OE1 (R/W) (0) P1 (R/W) (0) P0 (R/W) (0) CE (R/W) (0) − (−) (−) − (−) (−) 予約 (R/W) (0) 6 5 4 3 2 1 0 D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) PWC0 PWM1 コンペア 0 レジスタ bit 7 アドレス : 001950H D7 リード / ライト→ (R/W) (X) 初期値→ PWC10 PWM2 コンペア 0 レジスタ bit アドレス : 001951H 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 7 6 5 4 3 2 1 0 − (−) (−) − (−) (−) P2 (R/W) (0) P1 (R/W) (0) P0 (R/W) (0) M2 (R/W) (0) M1 (R/W) (0) M0 (R/W) (0) 15 14 13 12 11 10 9 8 − (−) (−) BS (R/W) (0) P2 (R/W) (0) P1 (R/W) (0) P0 (R/W) (0) M2 (R/W) (0) M1 (R/W) (0) M0 (R/W) (0) リード / ライト→ (R/W) (X) 初期値→ PWC20 PWM1 選択レジスタ bit アドレス : 001952H リード / ライト→ 初期値→ PWS10 PWM2 選択レジスタ bit アドレス : 001953H リード / ライト→ 初期値→ PWS20 329 第 20 章 ステッピングモータ コントローラ 20.2.1 PWM 制御 0 レジスタ (PWC0) PWM 制御 0 レジスタ (PWC0) は , ステッピングモータコントローラの起動・停止 , 割込みの制御や外部出力端子などの設定を行います。 ■ PWM 制御 0 レジスタ (PWC0) 図 20.2-2 PWM 制御 0 レジスタ (PWC0) PWM 制御 0 レジスタ bit アドレス : 000062H 7 6 5 4 3 OE2 OE1 P1 P0 CE (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) リード / ライト→ (R/W) (0) 初期値→ 2 − (−) (−) 1 0 − (−) (−) 予約 PWC0 (R/W) (0) 【bit7】OE2: 出力許可ビット 本ビットが "1" にセットされたとき外部端子は PWM2P0 および PWM2M0 として割り 当てられます。その他の場合にはそれらは汎用 I/O として使用することができます。 【bit6】OE1: 出力許可ビット 本ビットが "1" にセットされたとき外部端子は PWM1P0 および PWM1M0 として割り 当てられます。その他の場合にはそれらは汎用 I/O として使用することができます。 【bit5, bit4】P1, P0: 動作クロック選択ビット 本ビット群は PWM パルス発生器に対するクロック入力信号を指定します。 表 20.2-1 P1, P0 のクロック入力 P1 P0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック クロック入力 【bit3】CE: カウント許可ビット 本ビットは PWM パルス発生器の動作を許可します。本ビットが "1" にセットされたと き PWM パルス発生器はそれらの動作を開始します。PWM2 パルス発生器は PWM1 パ ルス発生器の 1 マシンクロックサイクル後にスタートすることに注意してください。こ れは出力ドライバからのスイッチングノイズを減少させるのを助けるものです。 【bit0】予約ビット 予約ビットです。本ビットには必ず "0" を書き込んでください。 330 第 20 章 ステッピングモータ コントローラ 20.2.2 PWM1&PWM2 コンペアレジスタ (PWC10/PWC20) PWM1&PWM2 の 2 つの 8 ビットコンペアレジスタ (PWC10/PWC20) の内容は , PWM パルスの幅を決定するものです。記憶された "00H" の値は PWM のデューティ が 0% であることを表し , "FFH" は 99.6% のデューティを表します。 ■ PWM1&PWM2 コンペアレジスタ (PWC10/PWC20) PWM1&PWM2 コンペアレジスタは , 任意の時点でアクセスすることができますが , 変 更された値は PWM2 選択レジスタの BS ビットが "1" にセットされた後における現在 の PWM サイクルの終わりにパルス幅に反映されます。 図 20.2-3 PWM1&PWM2 コンペアレジスタ (PWC10/PWC20) PWM1 コンペア 0 レジスタ bit 7 D7 アドレス : 001950H リード / ライト→ (R/W) (X) 初期値→ 6 5 4 3 2 1 0 D6 D5 D4 D3 D2 D1 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) (R/W) (X) PWC10 PWM2 コンペア 0 レジスタ bit アドレス : 001951H 15 D7 リード / ライト→ (R/W) (X) 初期値→ PWC20 1 つの PWM サイクル 256 入力クロックサイクル レジスタ値 00H 80H 128 入力クロックサイクル FFH 255 入力クロックサイクル 331 第 20 章 ステッピングモータ コントローラ 20.2.3 PWM1&PWM2 選択レジスタ (PWS10/PWS20) PWM1&PWM2 選択レジスタ (PWS10/PWS20) は , ステッピングモータコントロー ラの外部端子の出力が "0", "1", PWM パルスおよびハイインピーダンスかを選択し ます。 ■ PWM1&PWM2 選択レジスタ (PWS10/PWS20) 図 20.2-4 PWM1&PWM2 選択レジスタ (PWS10/PWS20) PWM1 選択レジスタ bit アドレス : 001952H リード / ライト→ 初期値→ 7 6 − − 5 P2 4 P1 3 P0 2 M2 1 M1 0 M0 (−) (−) (−) (−) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 15 − 14 BS 13 P2 12 P1 11 P0 10 M2 9 M1 8 M0 (−) (−) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) PWS10 PWM2 選択レジスタ bit アドレス : 001953H リード / ライト→ 初期値→ PWS20 【bit14】BS: 書換えビット 本ビットは PWM 出力に対する設定を同期するために用意されています。本ビットが セットされるまで , 2 個のコンペアレジスタおよび 2 個の選択レジスタに対して行われ た変更は出力信号には反映されません。 本ビットが "1" にセットされたとき , PWM パルス発生器およびセレクタはレジスタ内 容を現在の PWM サイクルの終わりでロードします。BS ビットは次の PWM サイクル の始めに自動的に "0" にリセットされます。もし BS ビットがこの自動リセットと同時 にソフトウェアにより "1" にセットされると , BS ビットは "1" にセットされ , ( すなわ ち変更されないままであり ) 自動リセットは解除されます。 【bit13 ∼ bit11】P2 ∼ P0: 出力選択ビット 本ビット群は PWM2P0 における出力信号を選択するものです。 【bit10 ∼ bit8】M2 ∼ M0: 出力選択ビット 本ビット群は PWM2M0 における出力信号を選択するものです。 【bit5 ∼ bit3】P2 ∼ P0: 出力選択ビット 本ビット群は PWM1P0 における出力信号を選択するものです。 332 第 20 章 ステッピングモータ コントローラ 【bit2 ∼ bit0】M2 ∼ M0: 出力選択ビット 本ビット群は PWM1M0 における出力信号を選択するものです。 次の表は出力レベルと選択ビットの間の関係を示すものです。 表 20.2-2 出力選択ビットの設定 P2 P1 P0 PWMnP0 M2 M1 M0 PWMnM0 0 0 0 "L" 0 0 0 "L" 0 0 1 "H" 0 0 1 "H" 0 1 X PWM パルス 0 1 X PWM パルス 1 X X 高インピーダンス 1 X X 高インピーダンス 333 第 20 章 ステッピングモータ コントローラ 20.3 ステッピングモータコントローラの使用上の注意 ステッピングモータコントローラを使用するにあたっての注意点を示します。 ■ PWM 設定値変更時の注意 PWM コンペアレジスタ 1(PWC10), PWM コンペアレジスタ 2(PWC20), PWM 選択レジ スタ 1(PWS10) および PWM 選択レジスタ 2(PWS20) は常時アクセス可能ですが , PWM の "H" 幅設定を変更する , または PWM 出力を変更するためには , これらのレジスタに 設定値を書き込んだあと ( または同時に ), PWM 選択レジスタ 2 の BS ビットに "1" を 書き込む必要があります。 BS ビットが "1" にセットされると , 現在の PWM サイクルの終了時に新しい設定値が 有効になり , BS ビットは自動的にクリアされます。 また , BS ビットへの "1" 書込みと , PWM サイクル終了時の BS ビットのリセットが同 時に行われた場合は , "1" 書込みが優先され , BS ビットのリセットはキャンセルされま す。 334 第 21 章 サウンドジェネレータ この章では , サウンドジェネレータの機能と動作に ついて説明します。 21.1 サウンドジェネレータの概要 21.2 サウンドジェネレータのレジスタ 335 第 21 章 サウンドジェネレータ 21.1 サウンドジェネレータの概要 サウンドジェネレータは , サウンド制御レジスタ , 周波数データレジスタ , 振幅デー タレジスタ , デクリメントグレードレジスタ , トーンカウントレジスタ , PWM パル ス発生器 , 周波数カウンタ , デクリメントカウンタおよびトーンパルスカウンタから 構成されています。 ■ サウンドジェネレータのブロックダイヤグラム 図 21.1-1 に , サウンドジェネレータのブロックダイヤグラムを示します。 図 21.1-1 サウンドジェネレータのブロックダイヤグラム クロック入力 プリスケーラ S1 S0 8 ビット PWM パルス発生器 CO EN PWM CI トグル フリップ - フロップ 周波数 カウンタ リロード 振幅データ レジスタ D EN CO EN リロード Q 1/d 周波数データ レジスタ DEC DEC デクリメント カウンタ CI CO EN SGA OE1 デクリメント グレードレジスタ OE1 混合 SGO トーンパルス カウンタ TONE OE2 OE2 CI CO EN トーンカウント レジスタ INTE INT ST IRQ 336 第 21 章 サウンドジェネレータ 21.2 サウンドジェネレータのレジスタ サウンドジェネレータのレジスタには , 次の種類があります。 • サウンド制御レジスタ • 周波数データレジスタ • 振幅データレジスタ • デクリメントグレードレジスタ • トーンカウントレジスタ ■ サウンドジェネレータのレジスタ 図 21.2-1 サウンドジェネレータのレジスタ サウンド制御レジスタ bit アドレス:00005EH リード / ライト→ 初期値→ bit アドレス:00005FH リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 S1 (R/W) (0) S0 (R/W) (0) TONE (R/W) (0) OE2 (R/W) (0) OE1 (R/W) (0) INTE (R/W) (0) INT (R/W) (0) ST (R/W) (0) 15 14 13 12 11 10 9 8 予約 (R/W) (0) − (−) (−) − (−) (−) − (−) (−) − (−) (−) − (−) (−) BUSY (R) (0) DEC (R/W) (0) 7 6 5 4 3 2 1 0 D7 (R/W) (X) D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) 15 14 13 12 11 10 9 8 SGCR SGCR 周波数データレジスタ bit アドレス:001946H リード / ライト→ 初期値→ SGFR 振幅データレジスタ bit アドレス:001947H リード / ライト→ 初期値→ D7 D6 D5 D4 D3 D2 D1 D0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) SGAR デクリメントグレードレジスタ bit アドレス:001948H リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 D7 (R/W) (X) D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) 15 14 13 12 11 10 9 8 D7 (R/W) (X) D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) SGDR トーンカウントレジスタ bit アドレス:001949H リード / ライト→ 初期値→ SGTR 337 第 21 章 サウンドジェネレータ 21.2.1 サウンド制御レジスタ (SGCR) サウンド制御レジスタ (SGCR) は , サウンドジェネレータの割込みの制御や外部出 力端子などの設定を行い , 動作状態の制御を行います。 ■ サウンド制御レジスタ (SGCR) 図 21.2-2 サウンド制御レジスタ (SGCR) bit 7 アドレス:00005EH リード / ライト→ 初期値→ bit アドレス:00005FH リード / ライト→ 初期値→ 6 5 4 3 2 1 0 S1 S0 TONE OE2 OE1 INTE INT ST (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 15 14 13 12 11 10 9 8 予約 (R/W) (0) − (−) (−) − (−) (−) − (−) (−) − (−) (−) − (−) (−) BUSY (R) (0) DEC (R/W) (0) SGCR SGCR 【bit15】予約ビット 予約ビットです。本ビットには必ず "0" を書き込んでください。 【bit9】BUSY: ビジービット 本ビットはサウンドジェネレータが動作しているかどうかを示すものです。本ビット は ST ビットが "1" にセットされると同時に "1" にセットされます。また , 本ビットは ST ビットが "0" にリセットされて 1 つのトーンサイクルの終わりに動作が完了したと きに "0" にリセットされます。本ビットに書込み命令を行っても効果はありません。 【bit8】DEC: 自動デクリメント許可ビット DEC ビットはデクリメントグレードレジスタと組み合わされたサウンドの自動デグラ デーションのために用意されたものです。 もし本ビットが "1" にセットされると , デクリメントグレードレジスタにより指定され たトグルフリップ - フロップからのトーンパルスの個数がデクリメントカウンタによ りカウントされるごとに, 振幅データレジスタに記憶された値は1だけデクリメントさ れます。 【bit7, bit6】S1, S0: 動作クロック選択ビット 本ビット群はサウンドジェネレータに対するクロック入力信号を指定するものです。 表 21.2-1 S1, S0 のクロック入力 338 S1 S0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック クロック入力 第 21 章 サウンドジェネレータ 【bit5】TONE: トーン出力ビット 本ビットが "1" にセットされたとき SGO 信号はトグルフリップ - フロップから単純な 矩形波形 ( トーンパルス ) になります。その他の場合にそれはトーンパルスと PWM パ ルスとの混合 (AND ロジック ) 信号となります。 【bit4】OE2: サウンド出力許可ビット 本ビットが "1" にセットされたとき外部端子は SGO 出力として割り当てられます。そ の他の場合には端子は汎用に使用することができます。SGO 出力を許可するにはポー ト方向レジスタの対応ビットも "1" にセットしなければなりません。 【bit3】OE1: 振幅出力許可ビット 本ビットが "1" にセットされたとき外部端子は SGA 出力として割り当てられます。そ の他の場合には端子は汎用に使用することができます。SGA 出力を許可するには , ポー ト方向レジスタの対応ビットも "1" にセットしなければなりません。 SGA 信号は PWM パルス発生器からの PWM パルスでありサウンドの振幅を表してい ます。 【bit2】INTE: 割込み許可ビット 本ビットはサウンドジェネレータの割込み信号を許可するものです。本ビットが "1" で あり INT ビットが "1" にセットされたとき , サウンドジェネレータは割込みを信号で知 らせます。 【bit1】INT: 割込みビット トーンカウントレジスタおよびデクリメントグレードレジスタにより指定されたトー ンパルスの個数がトーンパルスカウンタによりカウントされたときに本ビットは "1" にセットされます。 本ビットは "0" を書込むことにより "0" にリセットされます。"1" を書き込んでも効果 はなく , リードモディファイライト系命令は常に "1" を読み取る結果となります。 【bit0】ST: 開始ビット 本ビットはサウンドジェネレータの動作を開始させるためのものです。本ビットが "1" の間にサウンドジェネレータはその動作を行います。 本ビットが "0" にリセットされたときサウンドジェネレータは現在のトーンサイクル の終わりにその動作を停止します。BUSY ビットはサウンドジェネレータが完全に停 止したかどうかを示します。 本ビットが "0" のとき "1" を書き込むと , 周波数データレジスタ , 振幅データレジスタ , デクリメントグレードレジスタ , トーンカウントレジスタの値は , それぞれカウンタに ロードされます。 339 第 21 章 サウンドジェネレータ 21.2.2 周波数データレジスタ (SGFR) 周波数データレジスタ (SGFR) は周波数カウンタに対するリロード値を記憶します。 記憶された値はサウンド ( またはトグルフリップ - フロップからのトーン信号 ) の周 波数を表します。レジスタ値は周波数カウンタのアンダフローかつ PWM パレス生 成カウンタのアンダフローでカウンタ内にリロードされます。 ■ 周波数データレジスタ (SGFR) 図 21.2-3 周波数データレジスタ (SGFR) bit アドレス:001946H リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 D7 (R/W) (X) D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) SGFR 図 21.2-4 に , トーン信号とレジスタ値との間の関係を示しています。 図 21.2-4 トーン信号とレジスタ値との間の関係 1 つのトーンサイクル トーン信号 ( レジスタ値 +1) × 1PWM サイクル ( レジスタ値 +1) × 1PWM サイクル 動作中にレジスタ値を変更すると変更のタイミングによっては 50% のデューティサイ クルが変わることもあり得ます。 340 第 21 章 サウンドジェネレータ 21.2.3 振幅データレジスタ (SGAR) 振幅データレジスタ (SGAR) は PWM パルス発生器に対するリロード値を記憶しま す。レジスタ値はサウンドの振幅を表します。レジスタ値はトーン信号の立下りで PWM パルス発生器にリロードされます。 ■ 振幅データレジスタ (SGAR) 図 21.2-5 振幅データレジスタ (SGAR) bit 15 アドレス:001947H D7 リード / ライト→ (R/W) (0) 初期値→ 14 13 12 11 10 9 8 D6 (R/W) (0) D5 (R/W) (0) D4 (R/W) (0) D3 (R/W) (0) D2 (R/W) (0) D1 (R/W) (0) D0 (R/W) (0) SGAR DEC ビットが "1" でありデクリメントカウンタがそのリロード値に達したとき , この レジスタ値は 1 だけデクリメントされますが , レジスタ値が "00" に達したときには以 後のデクリメントは行われません。ただし , サウンドジェネレータは ST ビットがクリ アされるまでその動作を継続します。 図 21.2-6 は , レジスタ値と PWM パルスとの間の関係を示しています。 図 21.2-6 レジスタ値と PWM パルスとの間の関係 1 つの PWM サイクル 256 入力クロックサイクル レジスタ値 00H 1 つの入力クロックサイクル 80H 129 入力クロックサイクル FEH 255 入力クロックサイクル FFH 256 入力クロックサイクル レジスタ値が "FF" にセットされたときに PWM 信号は常に "1" となります。 341 第 21 章 サウンドジェネレータ 21.2.4 デクリメントグレードレジスタ (SGDR) デクリメントグレードレジスタ (SGDR) はデクリメントカウンタに対するリロード 値を記憶するものです。これらは振幅データレジスタ内の記憶値を自動的にデクリ メントするために用意されたものです。レジスタ値はデクリメントカウンタのアン ダフローかつトーン信号の立下りでカウンタ内にリロードされます。 ■ デクリメントグレードレジスタ (SGDR) 図 21.2-7 デクリメントグレードレジスタ (SGDR) bit アドレス:001948H リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 D7 (R/W) (X) D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) SGDR DEC ビットが "1" でありデクリメントカウンタがトーンパルスをリロード値までカウ ントしたとき, 振幅データレジスタはトーンサイクルの終わりに1だけデクリメントさ れます。 この動作により CPU の介在の回数を少なくしてサウンドの自動的なデグラデーション が実現されます。 このレジスタにより指定されたトーンパルスの数は " レジスタ値 +1" であることに注 意してください。デクリメントグレードレジスタが "00" にセットされたときにデクリ メント動作がトーンサイクルごとに行われます。 342 第 21 章 サウンドジェネレータ 21.2.5 トーンカウントレジスタ (SGTR) トーンカウントレジスタ (SGTR) はトーンパルスカウンタに対するリロード値を記 憶するものです。トーンパルスカウンタはトーンパルスの数 ( またはデクリメント 動作の回数 ) を蓄積してそれがリロード値に達したときに INT ビットをセットしま す。それらは割込みの頻度を減少することを目的としています。レジスタ値はトー ンパレスカウンタのアンダフローかつデクリメントカウンタのアンダフローかつ トーン信号の立下りでカウンタ内にリロードされます。 ■ トーンカウントレジスタ (SGTR) 図 21.2-8 トーンカウントレジスタ (SGTR) bit 15 アドレス:001949H D7 リード / ライト→ (R/W) (X) 初期値→ 14 13 12 11 10 9 8 D6 (R/W) (X) D5 (R/W) (X) D4 (R/W) (X) D3 (R/W) (X) D2 (R/W) (X) D1 (R/W) (X) D0 (R/W) (X) SGTR トーンパルスカウンタのカウント入力はデクリメントカウンタからのキャリーアウト 信号に接続されています。トーンカウントレジスタが "00" にセットされたときにトー ンパルスカウンタはデクリメントカウンタからのキャリーアウトごとに INT ビットを セットします。このため蓄積されたトーンパルスの数は , ( ( デクリメントグレードレジスタ ) +1) × ( ( トーンカウントレジスタ ) +1) となります。 すなわち , 両レジスタが "00" にセットされたときに INT ビットはトーンサイクルごと にセットされます。 343 第 21 章 サウンドジェネレータ 344 第 22 章 アドレス一致検出機能 この章は , アドレス一致検出の機能と動作について 説明します。 22.1 アドレス一致検出機能の概要 22.2 アドレス一致検出機能のレジスタ 22.3 アドレス一致検出機能の動作 22.4 アドレス一致検出機能の使用例 345 第 22 章 アドレス一致検出機能 22.1 アドレス一致検出機能の概要 アドレスが , アドレス検出レジスタに設定された値と等しい場合に , CPU に読み込 まれる命令コードを強制的に INT9 命令のコード (01H) に置き換えます。その結果 , CPU が設定された命令を実行するときに , INT9 命令を実行します。INT9 割込み ルーチンで処理を行うことにより , アドレス一致検出機能を実現することができま す。 アドレス検出レジスタは 2 本用意されており , 各レジスタにコンペア許可ビットが あります。アドレス検出レジスタに設定された値とアドレスが一致して , かつ割込 み許可ビットが "1" の場合 , CPU に読み込まれる命令コードを強制的に INT9 命令 のコードに置き換えます。 ■ アドレス一致検出機能のブロックダイヤグラム 図 22.1-1 アドレス一致検出機能のブロックダイヤグラム アドレスラッチ 比較 アドレス検出レジスタ INT9 命令 許可ビット F2MC-16LX CPU コア F2MC-16LX バス 346 第 22 章 アドレス一致検出機能 22.2 アドレス一致検出機能のレジスタ アドレス一致検出機能には , 次の 2 種類のレジスタがあります。 • プログラムアドレス検出レジスタ (PADR0/PADR1) • プログラムアドレス検出制御ステータスレジスタ (PACSR) ■ プログラムアドレス検出レジスタ (PADR0/PADR1) プログラムアドレス検出レジスタ (PADR0/PADR1:Program Address Detect Register0/1) は , 各レジスタに書き込まれた値と , アドレスを比較します。一致した場合は , ADCSR の対応する割込み許可ビットが "1" の場合 , CPU に対して INT9 命令の発生を要求しま す。 対応する割込み許可ビットが "0" の場合は , 一致していても何も行いません。 図 22.2-1 プログラムアドレス検出レジスタ (PADR0/PADR1) アドレス: PADR0 1FF2H/1FF1H/1FF0H PADR1 1FF5H/1FF4H/1FF3H バイト バイト バイト アクセス R/W R/W 初期値 不定 不定 表 22.2-1 に , プログラムアドレス検出レジスタ (PADR0/PADR1) と PACSR との対応を 示します。 表 22.2-1 PADR0/PADR1 レジスタと PACSR との対応 アドレス検出レジスタ 割り込み許可ビット PADR0 AD0E PADR1 AD1E 347 第 22 章 アドレス一致検出機能 ■ プログラムアドレス検出制御ステータスレジスタ (PACSR) プ ロ グ ラ ム ア ド レ ス 検 出 制 御 ス テ ー タ ス レ ジ ス タ (PACSR: Program Address detect Control Status Register) は , アドレス検出機能の動作を制御します。 図 22.2-2 プログラムアドレス検出制御ステータスレジスタ (PACSR) bit アドレス:009EH 7 予約 リード / ライト→ (R/W) (0) 初期値→ 6 5 4 3 2 1 0 予約 予約 予約 AD1E 予約 AD0E 予約 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) PACSR 【bit7 ∼ bit4】予約ビット bit7 ∼ bit4 は , 予約ビットです。PACSR を設定する時は , 必ず "0" を設定してください。 【bit3】AD1E(Address Detect register1 Enable) AD1E は , ADR1 の動作許可ビットです。 このビットが "1" のとき PADR1 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 【bit2】予約ビット bit2 は , 予約ビットです。PACSR を設定する時は , 必ず "0" を設定してください。 【bit1】AD0E(Address Detect register0 Enable) AD0E ビットは , PADR0 の動作許可ビットです。 このビットが "1" のとき PADR0 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 【bit0】予約ビット bit0 は , 予約ビットです。PACSR を設定する時は , 必ず "0" を設定してください。 348 第 22 章 アドレス一致検出機能 22.3 アドレス一致検出機能の動作 プログラムカウンタがアドレス一致検出レジスタと同じアドレスを指示している場 合は , INT9 命令を実行します。INT9 命令ルーチンを処理することによってアドレス 一致検出機能を実現することができます。 ■ アドレス一致検出機能の動作 アドレス検出レジスタは2本用意されており, 各レジスタにコンペア許可ビットがあり ます。アドレス検出レジスタに設定された値とプログラムカウンタの値が一致して , か つコンペア許可ビットが "1" の場合 , CPU は INT9 命令を実行します。 < 注意事項 > アドレス検出レジスタとプログラムカウンタの値が一致した場合は , 内部データバ スの内容が強制的に "01H" に変更されるので , INT9 命令を実行することになりま す。アドレス検出レジスタの内容を変更する前には , コンペア許可ビットを必ず "0" にしてください。コンペア許可ビットが "1" になっている間に変更すると , 誤動作 を引き起こす可能性があります。 349 第 22 章 アドレス一致検出機能 22.4 アドレス一致検出機能の使用例 図 22.4-1 にアドレス一致検出機能のシステム構成例を , 表 22.4-1 に E2PROM メモ リマップを示します。 ■ アドレス一致検出機能のシステム構成例 図 22.4-1 アドレス一致検出機能のシステム構成例 E2PROM MCU F2MC-16LX プルアップ抵抗 コネクタ (UART) SIN ■ E2PROM メモリマップ 表 22.4-1 E2PROM メモリマップ アドレス 意味 0000H パッチプログラム No.0 バイト数 ("0" の時プログラムミスなし ) 0001H プログラムアドレス No.0 bit7 ∼ bit0 0002H プログラムアドレス No.0 bit15 ∼ bit8 0003H プログラムアドレス No.0 bit24 ∼ bit16 0004H パッチプログラム No.1 バイト数 ("0" の時プログラムミスなし ) 0005H プログラムアドレス No.1 bit7 ∼ bit0 0006H プログラムアドレス No.1 bit15 ∼ bit8 0007H プログラムアドレス No.1 bit24 ∼ bit16 0010H ∼ パッチプログラム No.0/1 本体 ● 初期状態 E2PROM はすべて "0" とします。 ● パッチが必要となる場合 コネクタ (UART) を通して , MCU にパッチプログラムの本体およびプログラムアドレ スを転送します。MCU はその情報を E2PROM に書き込みます。 350 第 22 章 アドレス一致検出機能 ● リセットシーケンス MCU はリセット後 E2PROM の値を読み出します。パッチプログラムのバイト数が "0" でなかった場合は , パッチプログラムの本体が E2PROM から読み出され RAM に書き 込まれます。次に , MCU により PADR0 または PADR1 どちらか一方でパッチアドレス をセットし , コンペア許可ビットをセットします。再配置可能はパッチプログラムが望 まれる場合は , RAM 領域に対してパッチ済みプログラムの最初のアドレスを書き込む ことができます。この場合 , INT9 ルーチンがこのユーザ定義の RAM 領域を参照し , パッチ済みプログラムへ向けてジャンプします。 ● INT9 命令 割込みルーチンでは , スタックプログラムのカウンタの値を調べることにより , 割込み が発生するアドレスを知ることができます。割込みの最中にスタックへ格納された情 報は破棄されます。 ■ プログラムパッチ処理例 図 22.4-2 プログラムパッチ処理例 FFFFFFH ③ 異常プログラム ROM ① P C 発 生 ア ド レ ス RAM 外付け E2PROM プログラムパッチ用 レジスタセット 修正プログラム ② ○プログラムバイト数 ○割込み発生アドレス ○修正プログラム UART を使用してデータ転送 000000H 351 第 22 章 アドレス一致検出機能 ■ プログラムパッチ処理フロー図 図 22.4-3 プログラムパッチ処理フロー図 リセット E2PROM の 0000H を読み込む INT9 YES 0000H(E2PROM)=0 パッチプログラムへ JMP 000400H NO アドレスを読み込む 0001H ~ 0003H (E2PROM) MOV PADR0 (MCU) パッチプログラム実行 000400H ∼ 000480H パッチプログラムを読み込む 0010H ~ 0090H (E2PROM) MOV 000400H ~ 000480H (MCU) パッチプログラム終了 JMP FF0050H コンペア許可 MOV PACSR, #02H 通常プログラム実行 NO PC=PADR0 YES INT9 FFFFFFH FF0050H ROM EEPROM 異常プログラム FF0000H FFFFH FE0000H 0090H パッチプログラム 0010H 001100H スタック領域 RAM 領域 プログラムアドレス下位:00 0003H 000480H プログラムアドレス中位:00 0002H パッチプログラム RAM 000400H RAM/ レジスタ領域 プログラムアドレス上位:FF 0001H 000100H パッチプログラムバイト数:80 0000H 352 000000H I/O 領域 第 23 章 ROM ミラー機能選択 モジュール この章では , ROM ミラー機能選択モジュールにつ いて説明します。 23.1 ROM ミラー機能選択モジュールの概要 23.2 ROM ミラー機能選択レジスタ (ROMM) 353 第 23 章 ROM ミラー機能選択 モジュール 23.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールは , ROM が配置されている FF バンクが 00 バンク でみることを , レジスタの設定で選択することができます。 ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 23.1-1 ROM ミラー機能選択モジュールのブロック ROM ミラー機能選択レジスタ アドレス領域 FF バンク 00 バンク ROM 354 第 23 章 ROM ミラー機能選択 モジュール 23.2 ROM ミラー機能選択レジスタ (ROMM) ROM ミラー機能選択レジスタ (ROMM) は , アドレス 004000H ∼ 00FFFFH 番地の使 用中にアクセスしないでください。 ■ ROM ミラー機能選択レジスタ (ROMM) 図 23.2-1 ROM ミラー機能選択レジスタ (ROMM) bit アドレス:0006FH リード / ライト→ 初期値→ 15 − (−) (−) 14 − (−) (−) 13 − (−) (−) 12 − (−) (−) 11 − (−) (−) 10 − (−) (−) 9 8 − (−) (−) MI (W) (1) ROMM 【bit8】MI "1" を書込み時には FF バンクの ROM のデータが 00 バンクでも読みだせるようになり ます。"0" を書込み時には 00 バンクはこの機能ははたらきません。 本ビットは , 書込みのみ可能です。 < 注意事項 > ROM ミラー機能を起動している場合 , FF4000 ∼ FFFFFF 番地のみ 004000 ∼ 00FFFF 番地にミラーされます。このため , FF0000 ∼ FF3FFF 番地は 00 バンクに ミラーされません。 355 第 23 章 ROM ミラー機能選択 モジュール 356 第 24 章 2M/3M ビット フラッシュメモリ この章では , 2M/3M ビットフラッシュメモリの機 能や動作について説明します。 フラッシュメモリへのデータ書込み / 消去の方法に は , 下記の 3 とおりの方法があります。 • パラレルライタ • シリアル専用ライタ • プログラム実行による書込み / 消去 ここでは , " プログラム実行による書込み / 消去 " について解説します。 24.1 2M/3M ビットフラッシュメモリの概要 24.2 ブロックダイヤグラム (2M ビットフラッシュメモリの 例 ) とセクタ構成 24.3 書込み / 消去モード 24.4 フラッシュメモリ制御ステータスレジスタ (FMCS) 24.5 フラッシュメモリ自動アルゴリズム起動方法 24.6 自動アルゴリズム実行状態の確認 24.7 フラッシュメモリ書込み / 消去の詳細説明 24.8 2M/3M ビットフラッシュメモリ使用上の注意 24.9 フラッシュメモリにおけるリセットベクタアドレス 24.10 2M ビットフラッシュメモリのプログラム例 357 第 24 章 2M/3M ビット フラッシュメモリ 24.1 2M/3M ビットフラッシュメモリの概要 2M/3M ビットフラッシュメモリは , CPU メモリマップ上の FC ∼ FF バンクに配置 され , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU からのリードアクセスおよびプログラムアクセスが可能です。フラッシュメモ リへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの 命令動作で行えます。このため , 内蔵 CPU の制御による実装状態での書き換えが可 能となり , プログラムおよびデータの改善が効率よく行えます。 ■ 2M/3M ビットフラッシュメモリの特長 • セクタ構成 : 複数のセクタに分割 • 自動プログラムアルゴリズム (Embedded Algorithm * :MBM29LV200 と同様 ) • 消去一時停止 / 消去再開機能の搭載 • データポーリング , トグルビットによる書込み / 消去完了検出 • CPU 割込みによる書込み / 消去の完了検出 • セクタごとの消去が可能 ( セクタ組み合わせ自由 ) • 書込み / 消去回数 ( 最小 ) 10,000 回 • フラッシュ読出しサイクルタイム ( 最小 ) 2 マシンサイクル * : Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。 < 注意事項 > マニュファクチャコードとデバイスコードの読出し機能はありません。また , これ らのコードはコマンドによってもアクセスできません。 ■ フラッシュメモリ書込み / 消去の方法 フラッシュメモリは書込みと読出しを同時に行うことはできません。つまり , フラッ シュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上にあるプログ ラムを RAM に一度コピーし RAM 実行することで , フラッシュメモリからプログラム アクセスをせず書込み動作だけを行うことが可能となります。 ■ フラッシュメモリのレジスタ 図 24.1-1 フラッシュメモリ制御ステータスレジスタ (FMCS) bit アドレス : 0000AEH 7 358 5 4 3 2 1 0 WE RDY 予約 LPM1 予約 LPM0 (R/W) (R/W) (R) (R/W) (R/W) (R/W) (R/W) (0) (0) (X) (0) (0) (0) (0) INTE RDYINT リード / ライト→ (R/W) 初期値→ 6 (0) FMCS 第 24 章 2M/3M ビット フラッシュメモリ 24.2 ブロックダイヤグラム (2M ビットフラッシュメモリの 例 ) とセクタ構成 図 24.2-1 に , フラッシュメモリインタフェース回路付のフラッシュメモリ全体のブ ロックダイヤグラム (2M ビットフラッシュメモリの例 ) を , 図 24.2-2 に , フラッ シュメモリのセクタ構成を示します。 ■ フラッシュメモリ全体のブロックダイヤグラム (2Mビットフラッシュメモリの例) 図 24.2-1 フラッシュメモリ全体のブロックダイヤグラム (2M ビットフラッシュメモリの例 ) フラッシュメモリ インタフェース回路 BYTE F2MC-16LX バス ポート 2 ポート 3 ポート 4 INT 2M ビットフラッシュメモリ BYTE CE CE OE OE WE WE AQ0 ~ AQ17 AQ0 ~ AQ16 AQ-1 DQ0 ~ DQ15 DQ0 ~ DQ15 RY/BY RY/BY RESET ライトイネーブル割込み 信号 ( 対 CPU) 外部リセット信号 RY/BY ライト イネーブル信号 359 第 24 章 2M/3M ビット フラッシュメモリ ■ 2M/3M ビットフラッシュメモリのセクタ構成 図 24.2-2 に , 2M/3M ビットフラッシュメモリのセクタ構成を示します。図中アドレス には , 各セクタの上位アドレスと下位アドレスを示します。 図 24.2-2 2M/3M ビットフラッシュメモリのセクタ構成 MB90F594A/MB90F594G (2M ビットフラッシュメモリ ) ライタアドレス * SA6 (16K バイト) SA5 (8K バイト) SA4 (8K バイト) SA3 (32K バイト) SA2 (64K バイト) MB90F591A/MB90F591G (3M ビットフラッシュメモリ ) CPU アドレス 7FFFFH FFFFFFH 7BFFFH FFBFFFH 79FFFH FF9FFFH 77FFFH FF7FFFH 6FFFFH FEFFFFH 5FFFFH FDFFFFH SA1 (64K バイト) ライタアドレス * SA11 (16K バイト) SA10 (8K バイト) SA8 (8K バイト) SA8 (32K バイト) SA7 (64K バイト) CPU アドレス 7FFFFH FFFFFFH 7BFFFH FFBFFFH 79FFFH FF9FFFH 77FFFH FF7FFFH 6FFFFH FEFFFFH 5FFFFH FDFFFFH 4FFFFH FCFFFFH 3FFFFH FBFFFFH 3BFFFH FBBFFFH 39FFFH FB9FFFH 37FFFH FB7FFFH 2FFFFH FAFFFFH 1FFFFH F9FFFFH 0FFFFH F8FFFFH 00000H F80000H SA6 (64K バイト) 4FFFFH FCFFFFH SA0 (64K バイト) 未使用 40000H FC0000H SA5 (16K バイト) SA4 (8K バイト) SA3 (8K バイト) SA2 (32K バイト) SA1(64K バイト) SA0 (64K バイト) 未使用 *: ライタアドレスとは , フラッシュメモリにパラレルライタでデータ書込みを行う際 , CPU アドレス に対して相当するアドレスです。 汎用ライタを使用し書込み / 消去を行う際は , このアドレスで書 込み / 消去を実行します。 360 第 24 章 2M/3M ビット フラッシュメモリ 24.3 書込み / 消去モード フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの 異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み / 消去が行え , その他モードでは , 内部バスを介して CPU から書込み / 消去が行えま す。モードの選択はモード外部端子で行います。 ■ フラッシュメモリモード リセット信号が発生中にモード端子を "111" にセットすると , CPU が停止します。フ ラッシュメモリインタフェース回路は直接ポート0, 2, 3, 4に接続しているので, 外部端 子から直接制御することができます。このモードでは , MCU が外部端子中の標準フ ラッシュメモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去が行えます。 フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる すべての動作を使用できます。 ■ その他モード フラッシュメモリは , CPU メモリ空間の FC/F9 ∼ FF バンクに配置されており , 通常の マスク ROM と同様にフラッシュメモリインタフェース回路を介して CPU から読出し アクセスおよびプログラムアクセスすることができます。 フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん だ付けされていても再書込みが可能です。 これらのモードでは , セクタプロテクト動作を実行することはできません。 ■ フラッシュメモリの制御信号 表 24.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。 フラッシュメモリ制御信号と MBM29LV200 の外部端子にはほぼ 1 対 1 の対応関係が 存在します。セクタプロテクト動作で必要となる VID(12V) 端子は , MBM29LV200 にお ける A9, RESET, OE の代わりに , MD0, MD1, MD2 となります。 フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ トのアクセスしか許可されません。DQ15 ∼ DQ8 はサポートされていません。BYTE 端子は常に "0" にセットしてください。 361 第 24 章 2M/3M ビット フラッシュメモリ 表 24.3-1 フラッシュ制御信号 MB90F594A/MB90F594G/MB90F591A/MB90F591G 端子番号 通常機能 1∼8 P20 ∼ P27 AQ0 ∼ AQ7 A-1, A0 ∼ A6 9 P30 AQ16 A15 10 P31 CE CE 12 P32 OE OE 13 P33 WE WE 14(15) P34(P35) AQ17(AQ18) A16 16 P36 BYTE BYTE 17 P37 RY/BY RY/BY 18 ∼ 22 P40 ∼ P44 AQ8 ∼ AQ12 A7 ∼ A11 24 ∼ 26 P45 ∼ P47 AQ13 ∼ AQ15 A12 ∼ A14 49 MD0 MD0 A9(VID) 50 MD1 MD1 RESET(VID) 51 MD2 MD2 OE(VID) 85 ∼ 92 P00 ∼ P07 DQ0 ∼ DQ7 DQ0 ∼ DQ7 77 RST RESET RESET 使用不可 362 MBM29LV200 フラッシュメモリ モード DQ8 ∼ DQ15 第 24 章 2M/3M ビット フラッシュメモリ 24.4 フラッシュメモリ制御ステータスレジスタ (FMCS) 制御ステータスレジスタ (FMCS) は , フラッシュメモリインタフェース回路にある レジスタで , フラッシュメモリの書込み / 消去の際に使用します。 ■ 制御ステータスレジスタ (FMCS) 図 24.4-1 制御ステータスレジスタ (FMCS) bit 7 6 5 アドレス : 0000AEH INTE RDYINT WE リード / ライト→ (R/W) (R/W) (R/W) (0) (0) (0) 初期値→ 4 3 2 1 0 RDY (R) (X) 予約 LPM1 (R/W) (0) 予約 LPM0 (R/W) (0) (R/W) (0) (R/W) (0) FMCS ● ビット内容 【bit7】INTE(INTerrupt Enable) フラッシュメモリの書込み / 消去の終了で CPU に割込みを発生させるビットです。 INTE ビットが "1" でかつ RDYINT ビットが "1" のときに CPU へ割込みが発生します。 INTE ビットが "0" であれば割込みは発生しません。 • 0: 書込み / 消去終了での割込み禁止 • 1: 書込み / 消去終了での割込み許可 【bit6】RDYINT(ReaDY INTerrupt) フラッシュメモリの動作状態を表すビットです。 フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書込み / 消去後このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。書 込み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み / 消去が可能に なります。"0" 書込みによって "0" にクリアされ , "1" の書込みは無視されます。フラッ シュメモリ自動アルゴリズム (「24.5 フラッシュメモリ自動アルゴリズム起動方法」参 照 ) 終了タイミングで , "1" にセットされます。リードモディファイライト (RMW) 命 令使用時は , 必ず "1" が読めます。 • 0: 書込み / 消去動作実行中 • 1: 書込み / 消去動作終了 ( 割込み要求発生 ) 363 第 24 章 2M/3M ビット フラッシュメモリ 【bit5】WE(Write Enable) フラッシュメモリ領域へのライトイネーブルビットです。 このビットが "1" の時 , FC/F9 ∼ FF バンクへのコマンドシーケンス 「24.5 ( フラッシュ メモリ自動アルゴリズム起動方法」参照 ) 発行後のライトは , フラッシュメモリ領域へ のライトになります。本ビットが "0" のとき , 書込み / 消去の信号は発生されません。 このビットはフラッシュメモリの書込み / 消去のコマンドを起動する際に使用します。 書込み / 消去を行わないときは , 誤ってフラッシュメモリにデータを書込まないよう , 常に "0" に設定することを推奨します。 • 0: フラッシュメモリ書込み / 消去禁止 • 1: フラッシュメモリ書込み / 消去許可 【bit4】RDY(ReaDY) フラッシュメモリの書込み / 消去許可ビットです。 このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。なお , こ の状態でも読出し / リセットコマンド , セクタ消去一時停止コマンドは受け付けられま す。 • 0: 書込み / 消去動作実行中 • 1: 書込み / 消去動作終了 ( 次データ書込み / 消去許可 ) 【bit3, bit1】予約ビット 試験用予約ビットです。通常使用時は必ず "0" に設定してください。 【bit2, bit0】LPM1, LPM0(Low Power Mode) フラッシュメモリアクセス時のフラッシュメモリ本体の消費電流を制御します。ただ し , CPU からフラッシュメモリへのアクセスタイムが設定により大きく異なりますの で , CPU の動作周波数により設定値を選択してください。 • 01: 低電力消費モード ( 内部動作周波数 4MHz 以下で動作 ) • 10: 低電力消費モード ( 内部動作周波数 8MHz 以下で動作 ) • 11: 低電力消費モード ( 内部動作周波数 10MHz 以下で動作 ) • 00: 通常消費電力モード ( 内部動作周波数 16MHz 以下で動作 ) MB90F591A/MB90F591G については , 通常使用時は "00" に設定してください。"00" 以 外を設定した場合 , フラッシュメモリアクセスできません。 < 注意事項 > RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで 判定するようプログラムを作成してください。 自動アルゴリズム 終了タイミング RDYINT ビット RDY ビット 1 マシンサイクル 364 第 24 章 2M/3M ビット フラッシュメモリ 24.5 フラッシュメモリ自動アルゴリズム起動方法 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込み , セクタ消去 , チップ消去の 4 種類があり , セクタ消去については一時停止と 再開の制御が可能です。 ■ コマンドシーケンス表 表 24.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま す。コマンドレジスタにライトするデータはすべてバイトですが , ワードアクセスで書 き込むようにしてください。このときの上位バイト分のデータは無視されます。 表 24.5-1 コマンドシーケンス表 コマンド バスライト シーケンス アクセス 1st バスライト 2nd バスライ 3th バスライト 4th バスライト 5th バスライト 6th バスライト サイクル トサイクル サイクル サイクル サイクル サイクル アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ 読出し / リセット * 1 FxXXXX XXF0 - 読出し / リセット * 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXF0 書込みプロ グラム 4 FxAAAA XXAA Fx5554 チップ消去 6 FxAAAA XXAA セクタ消去 6 FxAAAA XXAA - - - - - - - - - RA RD - - - - XX55 FxAAAA XXA0 PA(even) PD(word) - - - - Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 FxAAAA XX10 Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 SA(even) XX30 セクタ消去一時停止 Address"FxXXXX"Data(xxB0H) の入力で , セクタ消去中の消去一時停止 セクタ消去再開 Address"FxXXXX"Data(xx30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始 AutoSelect 3 FxAAAA XXAA Fx5554 XX55 FxAAAA XX90 - - - - - - *:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットすることができます。 ( 注意事項 ) ・表中のアドレス Fx は , 2M ビットフラッシュメモリの場合は , FF, FE, FD, FC を , 3M ビットフラッシュメモリの場合は , F9, FA, FB, FD, FE, FF を意味します。それぞれの操作時にはアクセス対象バンクの値としてください。 ・表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。ただし "X" は任意の値で す。 ・RA: 読出しアドレス ・PA: 書込みアドレス , 偶数アドレスのみ指定可 ・SA: セクタアドレス , 「24.2 ブロックダイヤグラム (2M ビットフラッシュメモリの例 ) とセクタ構成」を参照願います。 ・RD: 読出しデータ ・PD: 書込みデータ , ワードデータのみ指定可 365 第 24 章 2M/3M ビット フラッシュメモリ 表 24.5-1 における AutoSelect はセクタ保護の状態を知るためのコマンドです。実際に は前期コマンドとともに下記のようにアドレスを設定する必要があります。 表 24.5-2 AutoSelect 時のアドレス設定 セクタ保護 AQ13 ∼ AQ17(AQ18) AQ7 AQ2 AQ1 AQ0 DQ7 ∼ DQ0 セクタアドレス "L" "H" "L" "L" CODE* *: 保護されたセクタアドレスでの出力は "01H", 保護されていないセクタアドレスでの出力は "00H" 366 第 24 章 2M/3M ビット フラッシュメモリ 24.6 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内 蔵フラッシュメモリの動作状態の確認ができます。 ■ ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは , DQ7, DQ6, DQ5, DQ3, DQ2 の 5 ビットの出力で構成 されます。それぞれがデータポーリングフラグ (DQ7), トグルビットフラグ (DQ6), タイ ミングリミット超過フラグ (DQ5), セクタ消去タイマフラグ (DQ3), トグルビット 2 フラ グ (DQ2) の機能を持ちます。これにより , 書込み / チップ・セクタ消去終了 , 消去コー ドライトが有効かの確認をすることができます。ハードウェアシーケンスフラグを参 照するには , コマンドシーケンス (「24.5 フラッシュメモリ自動アルゴリズム起動方 法」 の表 24.5-1 を参照 ) 設定後にフラッシュメモリ内部の対象セクタのアドレスにリー ドアクセスすることで参照できます。表 24.6-1 に , ハードウェアシーケンスフラグの ビット割当てを示します。 表 24.6-1 ハードウェア・シーケンス・フラグのビット割当て bit ハードウェア シーケンスフラグ 7 6 5 4 3 2 1 0 DQ7 DQ6 DQ5 - DQ3 DQ2 - - 自動書込み / チップ・セクタ消去が実行中であるかの判断は , ハードウェアシーケンス フラグを確認するか , フラッシュメモリ制御レジスタ (FMCS) の RDY ビットを確認す ることで , 書込みが終了しているかを知ることができ , 書込み / 消去終了後は , 読出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれかのフラグで自 動書込み / 消去終了を確認後に , データの読出し等の次処理を行ってください。また , 2 回目以降のセクタ消去コードライトが有効であるかも , ハードウェアシーケンスフラ グによって確認することができます。事項に各ハードウェアシーケンスフラグの説明 を示します。表 24.6-2 に , ハードウェアシーケンスフラグ機能の一覧を示します。 367 第 24 章 2M/3M ビット フラッシュメモリ 表 24.6-2 ハードウェアシーケンスフラグ機能一覧 DQ7 DQ6 DQ5 DQ3 DQ2 書込み動作→書込 み完了 ( 書込みアド レス指定時 ) DQ7 → DATA:7 Toggle → DATA:6 0→ DATA:5 0→ DATA:3 1→ DATA:2 チップ・セクタ消去 動作→消去完了 0→1 Toggle → Stop 0→1 1 Toggle → Stop セクタ消去ウェイ ト→消去開始 0 Toggle 0 0→1 Toggle 消去動作→セクタ 消去一時停止 ( 消去 中のセクタ ) 0→1 Toggle → 1 0 1→0 Toggle セクタ消去一時停 止→消去再開 ( 消去 中のセクタ ) 1→0 1→ Toggle 0 0→1 Toggle セクタ消去一時停 止中 ( 消去中でない セクタ ) DATA:7 DATA:6 DATA:5 DATA:3 DATA:2 DQ7 Toggle 1 0 1 0 Toggle 1 1 * 状態 正常動作時 の状態変化 書込み動作 異常動作 チップ・セクタ消去 動作 *: DQ5 が "1" のとき ( タイミングリミット超過 ) , 書込み / 消去中セクタへの連続的な読 出しに対し ては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。 368 第 24 章 2M/3M ビット フラッシュメモリ データポーリングフラグ (DQ7) 24.6.1 データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状 態であることをデータポーリング機能によって知らせるためのフラグです。 ■ データポーリングフラグ (DQ7) 表 24.6-3 と表 24.6-4 に , データポーリングフラグの状態遷移を示します。 表 24.6-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 書込み動作 →完了 DQ7 チップセク セクタ消去 タ消去 ウェイト →完了 →開始 DQ7 → DATA:7 0 0→1 セクタ消去→ 消去一時停止 セクタ消去一 時停止→再開 セクタ消去 一時停止中 消去中のセクタ 消去中のセクタ 消去中でないセクタ 0→1 1→0 DATA:7 表 24.6-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ・セクタ 消去動作 DQ7 DQ7 0 ● 書込み動作時 自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはアドレ スの指し示す番地によらず , 最後に書込まれたデータの bit7 の反転データを出力しま す。自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはアド レスの指し示す番地の読出し値の bit7 を出力します。 ● チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク タから , チップ消去時はアドレスの指し示す番地に関係なく , リードアクセスするとフ ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス の指し示す番地の読出し値の bit7(DATA:7) を出力します。トグルビットフラグ (DQ6) とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であ るかの判定が可能です。 < 注意事項 > 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。 データの読出しは , データポーリングフラグ (DQ7) の終了を受けて他のビットの出 力が可能となります。このため自動アルゴリズム終了後のデータの読出しは , デー タポーリング終了を確認したリードアクセスの次に行うようにしてください。 369 第 24 章 2M/3M ビット フラッシュメモリ 24.6.2 トグルビットフラグ (DQ6) トグルビットフラグ (DQ6) は , データポーリングフラグと同様に , 主に自動アルゴ リズム実行が進行中または終了状態であることをトグルビット機能によって知らせ るためのフラグです。 ■ トグルビットフラグ (DQ6) 表 24.6-5 と表 24.6-6 に , トグルビットフラグの状態遷移を示します。 表 24.6-5 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 DQ6 書込み動作 →完了 Toggle → DATA:6 チップセク セクタ消去 タ消去→ ウェイト→ 完了 開始 Toggle → Stop Toggle セクタ消去→ 消去一時停止 セクタ消去一 時停止→再開 セクタ消去 一時停止中 消去中のセクタ 消去中のセクタ 消去中でないセクタ Toggle → 1 1 → Toggle DATA:6 表 24.6-6 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ・セクタ 消去動作 DQ6 Toggle Toggle ● 書込み / チップ・セクタ消去時 自動書込みアルゴリズムおよびチップ / セクタ消去アルゴリズム実行中に , 連続した リードアクセスを行うと , フラッシュメモリはアドレスの指し示す番地によらず , リー ドごとに "1" と "0" を交互に出力するトグル状態を出力します。自動書込みアルゴリズ ムおよびチップ / セクタ消去アルゴリズム終了時に連続したリードアクセスを行うと フラッシュメモリは bit6 のトグル動作を止め , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が消去中のセクタに属するならば , "1" を出力します。消去中のセクタに属さ ないのであれば , アドレスの指し示す番地の読出し値の bit6 (DATA:6) を出力します。 < 参考 > 370 書込みの際 , 書込もうとしているセクタが書き換え保護されているセクタの場合は , 約 2µs のトグル動作をした後 , データを書き換えることなくトグル動作を終わりま す。消去の際 , 選択されたすべてのセクタが書き換え保護されている場合トグル ビットは約 100µs のトグル動作をし , その後データを書き換えないで読出し / リ セット状態に戻ります。 第 24 章 2M/3M ビット フラッシュメモリ 24.6.3 タイミングリミット超過フラグ (DQ5) タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ グです。 ■ タイミングリミット超過フラグ (DQ5) 表 24.6-7 と表 24.6-8 に , タイミングリミット超過フラグの状態遷移を示します。 表 24.6-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 DQ5 書込み動作 →完了 チップセク セクタ消去 タ消去 ウェイト →完了 →開始 0→ DATA:5 0 0→1 セクタ消去→ 消去一時停止 セクタ消去一 時停止→再開 セクタ消去 一時停止中 消去中のセクタ 消去中のセクタ 消去中でないセクタ 0 0 DATA:5 表 24.6-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ・セクタ 消去動作 DQ5 1 1 ● 書込み / チップ・セクタ消去時 書込みまたはチップ・セクタ消去自動アルゴリズム起動後にリードアクセスすると , 規 定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい る場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるか無 関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , こ のフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能によ り自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断することが できます。 例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする とフェイルが発生します。この場合 , フラッシュメモリはロックされ , 自動アルゴリズ ムは終了しません。まれに "1" が書き込めたように正常終了する場合もあります。し たがって , データポーリングフラグ (DQ7) から有効なデータが出力されません。また , トグルビットフラグ (DQ6) はトグル動作を止めず , タイムリミットを超え , タイミング リミット超過フラグ (DQ5) は "1" を出力します。この状態はフラッシュメモリが不良 ではなく , 正しく使用されなかったということを表しています。この状態が発生したと きは , リセットコマンドを実行してください。 371 第 24 章 2M/3M ビット フラッシュメモリ 24.6.4 セクタ消去タイマフラグ (DQ3) セクタ消去タイマフラグ (DQ3) は , セクタ消去コマンド起動後セクタ消去ウェイト 期間中であるか否かを知らせるフラグです。 ■ セクタ消去タイマフラグ (DQ3) 表 24.6-9 と表 24.6-10 に , セクタ消去タイマフラグの状態遷移を示します。 表 24.6-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 DQ3 書込み動作 →完了 チップセク セクタ消去 タ消去 ウェイト →完了 →開始 0→ DATA:3 1 0→1 セクタ消去→ 消去一時停止 セクタ消去一 時停止→再開 セクタ消去 一時停止中 消去中のセクタ 消去中のセクタ 消去中でないセクタ 1→0 0→1 DATA:3 表 24.6-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ・セクタ 消去動作 DQ3 0 1 ● セクタ消去動作時 セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマンドを 発行したセクタのアドレス信号の指し示す番地によらず , セクタ消去ウェイト期間中 であれば "0" を , セクタ消去ウェイト期間を越えてしまっている場合は "1" を出力しま す。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて のセクタ消去コードのライトまたは消去一時停止以外のコマンドは , 消去が終了され るまで無視されます。このフラグが "0" であればフラッシュメモリは , 追加のセクタ消 去コードのライトを受け付けます。このことを確認するために , 引き続くセクタ消去 コードのライトに先立ち , このフラグの状態をチェックすることを推奨します。もし 2 回目の状態チェックで "1" であったなら追加セクタの消去コードは受け付けられてい ない可能性があります。 ● セクタ消去動作時 セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの指し 示す番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さ ないのであれば , アドレスの指し示す番地の読出し値の bit3 (DATA:3) を出力します。 372 第 24 章 2M/3M ビット フラッシュメモリ 24.6.5 トグルビット 2 フラグ (DQ2) トグルビット 2 フラグ (DQ2) は , セクタ消去一時停止中であることをトグルビット 機能によって知らせるフラグです。 ■ トグルビット 2 フラグ (DQ2) 表 24.6-11 と表 24.6-12 に , トグルビット 2 フラグの状態遷移を示します。 表 24.6-11 トグルビット 2 フラグの状態遷移 ( 正常動作時の状態変化 ) 動作状態 DQ2 書込み動作 →完了 1→ DATA:2 チップセク セクタ消去 タ消去→ ウェイト→ 開始 完了 Toggle → Stop Toggle セクタ消去→ 消去一時停止 セクタ消去一 時停止→再開 セクタ消去 一時停止中 消去中のセクタ 消去中のセクタ 消去中でないセクタ Toggle Toggle DATA:2 表 24.6-12 トグルビット 2 フラグの状態遷移 ( 異常動作時の状態変化 ) 動作状態 書込み動作 チップ・セクタ 消去動作 DQ2 1 * *:DQ5 が "1" のとき ( タイミングリミット超過 ) , 書込み / 消去中セクタへの連続的な読 出しに対しては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグル しません。 ● セクタ消去動作時 チップ・セクタ消去アルゴリズム実行中に , 連続したリードアクセスを行うと , フラッ シュメモリはアドレスの指し示す番地によらず , リードごとに "1" と "0" を交互に出力 するトグル状態を出力します。チップ・セクタ消去アルゴリズム終了後に連続したリー ドアクセスを行うと , フラッシュメモリは bit2 のトグル動作を止め , アドレスの指し示 す番地の読出し値の bit2 (DATA:2) を出力します。 373 第 24 章 2M/3M ビット フラッシュメモリ ● セクタ消去一時停止時 セクタ消去一時停止中に連続したリードアクセスを行うと , フラッシュメモリはアド レスの指し示す番地が消去中のセクタに属するならば , "1" と "0" を交互に出力するト グル状態を出力します。消去中のセクタに属さないのであれば , アドレスの指し示す番 地の読出し値の bit2 (DATA:2) を出力します。 また , セクタ消去一時停止書込み時 , 消去一時停止していないセクタから連続したリー ドアクセスを行うと , "1" を出力します。 DQ2はDQ6とともに使用し, 消去一時停止中であるかを検出するのに使用します (DQ2 はトグル動作するが , DQ6 はトグル動作しない ) 。 さらに , DQ2 は消去しているセクタの検出にも使用します。消去動作時には , DQ2 は 消去しているセクタからのリードアクセスならばトグル動作をします。 < 参考 > 374 消去の際 , 選択されたすべてのセクタが書き換え保護されている場合トグルビット 2 は約 100µs のトグル動作をし , その後データを書き換えないで読出し / リセット 状態に戻ります。 第 24 章 2M/3M ビット フラッシュメモリ 24.7 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止およびセクタ消去再開の それぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細説明 フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , 消去再開の動作がコマンドシーケンス (「24.5 フラッシュメモリ自動アルゴ リズム起動方法」の表 24.5-1 を参照 ) のバスへのライトサイクルを行うことで自動ア ルゴリズムを実行することが可能です。それぞれのバスへのライトサイクルは必ず続 けて行う必要があります。また , 自動アルゴリズムはデータポーリング機能等で終了時 を知ることができます。正常終了後は読出し / リセット状態に戻ります。 フラッシュメモリの各動作について , 次項より下記の順に示します。 • 読出し / リセット状態にする • データを書込む • データを消去する ( チップ全消去 ) • 全データを消去する ( セクタ消去 ) • セクタ消去を一時停止する • セクタ消去を再開する 375 第 24 章 2M/3M ビット フラッシュメモリ 24.7.1 読出し / リセット状態にする 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリを読出し / リセット状態にする フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 (「24.5 フラッシュメモリ自動アルゴリズム起動方法」の表 24.5-1 を参照 ) の読出し / リセット コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 読出し / リセットコマンドには , 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません , 何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。 376 第 24 章 2M/3M ビット フラッシュメモリ 24.7.2 データを書込む 書込みコマンドを発行し , フラッシュメモリにデータを書込む手順について説明し ます。 ■ フラッシュメモリにデータを書込む フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表 (「24.5 フラッシュメモリ自動アルゴリズム起動方法」の表 24.5-1 を参照 ) の書 込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動アルゴリズム が起動され自動書込みが開始します。 ● アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ スへのワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが , 1 回の書込みコマンドによって書込まれるデータは 1 ワードのみです。 ● データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ "1" を書込むと , データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が 終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミング リミット超過フラグ (DQ5) がエラーと判定するか , あるいは見かけ上データ "1" が書込 まれたように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデータ を読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすることが できます。 自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書込んでいるアドレスのデータは保証されませんので注意が 必要です。 377 第 24 章 2M/3M ビット フラッシュメモリ ■ フラッシュメモリの書込み手順 図 24.7-1 に , フラッシュメモリの書込み手順の例を示します。ハードウェア・シーケ ンス・フラグ (「24.6 自動アルゴリズム実行状態の確認」を参照 ) を用いることでフ ラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了 の確認にデータポーリングフラグ (DQ7) を用いています。 フラグチェックのために読み込むデータは , 最後に書込みを行ったアドレスからの読 込みとなります。 データポーリングフラグ (DQ7) は , タイミングリミット超過フラグフラグ (DQ5) と同 時に変わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータ ポーリングフラグビット (DQ7) は再チェックする必要があります。 トグルビットフラグ (DQ6) でも同様にタイミングリミット超過フラグビット (DQ5) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再 チェックする必要があります。 378 第 24 章 2M/3M ビット フラッシュメモリ 図 24.7-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS:WE (bit5) フラッシュメモリ書込み許可 書込みコマンドシーケンス (1) FxAAAA ← XXAA (2) Fx5554 ← XX55 (3) FxAAAA ← XXA0 (4) 書込みアドレス←書込みデータ 内部アドレスリード データポーリング (DQ7) 次アドレス Data Data 0 タイミングリミット (DQ5) 1 内部アドレスリード Data データポーリング (DQ7) Data 書込みエラー 最終アドレス NO YES FMCS:WE ( ビット 5) フラッシュメモリ書込み禁止 書込み完了 ハードウェア・シーケンス・ フラグによる確認 379 第 24 章 2M/3M ビット フラッシュメモリ 24.7.3 全データを消去する ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい て説明します。 ■ フラッシュメモリの全データを消去する ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 (「24.5 フラッシュメモリ自動アルゴリズム起動方法」の表 24.5-1 を参照 ) のチップ消去コマ ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます , 6 サイクル目の書込みが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。 380 第 24 章 2M/3M ビット フラッシュメモリ 24.7.4 任意のデータを消去する ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ 消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同 時に指定することも可能です。 ■ フラッシュメモリの任意のデータを消去する ( セクタ消去 ) フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表 (「24.5 フラッシュメモリ自動アルゴリズム起動方法」の表 24.5-1 を参照 ) のセクタ消去コマ ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 ● セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに より 50µs のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上記 の処理に引き続き消去する目的のセクタ内のアドレスに消去コード(30H)を書き込みま す。 ● 複数のセクタを指定するときの注意 最後のセクタ消去コードのライトから 50µs のセクタ消去ウェイト期間終了により消去 が開始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアド レスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50µs 以内に入力す る必要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去 コードのライトが有効かどうかはセクタ消去タイマ ( ハードウェア・シーケンス・フ ラグ DQ3) によって調べることができます。なおこのとき , セクタ消去タイマをリード するアドレスは , 消去しようとしているセクタを指すようにします。 ■ フラッシュメモリのセクタ消去手順 ハードウェア・シーケンス・フラグ (「24.6 自動アルゴリズム実行状態の確認」参照 ) を用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図 24.7-2 に , フラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の 確認にトグルビットフラグ (DQ6) を用いています。 フラグチェックのために読み込むデータは , 消去しようとしているセクタからの読込 みとなりますので , 注意が必要です。 トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもトグルビットフラグ (DQ6) は再チェックする必要があります。 データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と 同時に変わるので , データポーリングフラグ (DQ7) を再チェックする必要があります。 381 第 24 章 2M/3M ビット フラッシュメモリ 図 24.7-2 フラッシュメモリのセクタ消去手順の例 消去開始 FMCS:WE (bit5) フラッシュメモリ消去許可 消去コマンドシーケンス (1) FxAAAA ← XXAA (2) Fx5554 ← XX55 (3) FxAAAA ← XX80 (4) FxAAAA ← XXAA (5) Fx5554 ← XX55 (6) 消去セクタへコード入力 (30H) YES 消去セクタが他にあるか NO 内部アドレスリード 1 次セクタ 内部アドレスリード 2 No Yes トグルビット (DQ6) データ 1(DQ6) = データ 2(DQ6) セクタ消去終了 YES NO 0 タイミングリミット (DQ5) 1 内部アドレスリード 1 内部アドレスリード 2 NO トグルビット (DQ6) データ 1(DQ6) = データ 2(DQ6) YES 消去エラー 最終セクタ NO YES FMCS:WE (bit5) フラッシュメモリ消去禁止 消去完了 382 ハードウェア・シーケンス・ フラグによる確認 第 24 章 2M/3M ビット フラッシュメモリ 24.7.5 セクタ消去を一時停止する セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタから , データを読み出すことが 可能です。 ■ フラッシュメモリのセクタ消去を一時停止する フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 (「24.5 フ ラッシュメモリ自動アルゴリズム起動方法」の表 24.5-1 を参照 ) のセクタ消去一時停 止コマンドを , フラッシュメモリ内に送ることで実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込 みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) のライトを行うことで実施されますが , このときアドレスは フラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の 消去一時停止コマンドは無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去 ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20µs の時間の後 , 消去一時停止状態に入ります。 セクタ消去一時停止コマンドは , セクタ消去 コマンドあるいはセクタ消去再開コマンド発行後 , 20µs 以上後に行ってください。 383 第 24 章 2M/3M ビット フラッシュメモリ 24.7.6 セクタ消去を再開する セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリのセクタ消去を再開する 一時停止したセクタ消去を再開させるには , コマンドシーケンス表 (「24.5 フラッシュ メモリ自動アルゴリズム起動方法」の表 24.5-1 を参照 ) のセクタ消去再開コマンドを , フラッシュメモリ内に続けて送ることで実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード (30H) のライトを行うことで実施されますが , このときのアドレスはフラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 384 第 24 章 2M/3M ビット フラッシュメモリ 24.8 2M/3M ビットフラッシュメモリ使用上の注意 2M/3M ビットフラッシュメモリに関する注意を以下に示します。 ■ フラッシュメモリ使用上の注意 ● ハードウェアリセット (RST) の入力 読出し中で自動アルゴリズムが起動していないときに , ハードウェアリセットを入力 するには , "L" レベル幅として最低 500ns をとる必要があります。この場合 , ハードウェ アリセット起動後フラッシュメモリからデータを読み出すまでに , 最低 500ns が必要と なります。 同様に , 書込み / 消去中で自動アルゴリズムが起動しているときに , ハードウェアリ セットを入力するには , "L" レベル幅として最低 500ns をとる必要があります。この場 合 , フラッシュメモリを初期化するために実行中の動作を停止した後データを読み出 すまでに , 20µs が必要となります。 書込み中にハードウェアリセットすると , 書き込まれているデータは不定となります。 消去中のハードウェアリセットや電源切断により , 消去されているセクタは使用不可 となる可能性があります。 ● ソフトウェアリセット , ウォッチドッグタイマリセット , ハードウェアスタンバイの取消し CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ 状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。それは , これ らのリセット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリ ズムが続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメモリ ユニットが読出し状態になることが妨げられる可能性があるためです。これらのリ セット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。 ● フラッシュメモリへのプログラムアクセス 自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。 CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム 領域を RAM などの別の領域に切換え後 , 書込み / 消去を開始する必要があります。こ の場合 , 割込みベクタを含むセクタ (SA6/SA11) が消去されると , 書込み / 消去割込み 処理を実行できません。 同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込 みソースは無効となります。 ● 拡張インテリジェント I/O サービス (EI2OS) フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは , EI2OS には受付不可能であり , 使用できません。 ● VID の適用 セクタプロテクト動作に必要な VID の印加は , 電源がオンのとき開始し , 終了する必要 があります。 385 第 24 章 2M/3M ビット フラッシュメモリ 24.9 フラッシュメモリにおけるリセットベクタアドレス MB90F594A, MB90F594G, MB90F591A および MB90F951G は , ハードワイヤード リセットベクタをサポートします。 内部ベクタモードでのアドレス FFFFDCH ∼ FFFFDFH へのすべての読出しアクセ スは , ハードワイヤードロジックにより事前に決められた値を読み出すことになり ます。しかし , フラッシュメモリモードでは , 前節で述べたようにこれらのアドレス のアクセスが可能です。 このため , これらのアドレスへの書込みは意味がありません。特に ( フラッシュメモ リモードではなく ) CPU アクセスでフラッシュメモリをプログラミングするとき , ソフトウェアポーリング用にこれらのアドレスを読み出さないように注意してくだ さい。さもなければ , フラッシュメモリはハードウェアシーケンスフラグ値の代わ りに固定リセットベクタ値を返します。 ■ フラッシュメモリにおけるリセットベクタアドレス 次の表に , リセットベクタとモードデータの事前に決められた値を示します。 < 注意事項 > 386 リセットベクタ FFA000H モードデータ 00H リセットベクタとモードデータは事前に決められた値が設定されていますので , フ ラッシュメモリに書き込むプログラムの中のリセットベクタ値とモードデータ値は 動作に影響を与えませんが , 同一のプログラムをマスク ROM 品で使用した場合 , 異なる動作をする可能性がありますので , フラッシュメモリにも同一の値を書き込 むことを推奨します。 第 24 章 2M/3M ビット フラッシュメモリ 24.10 2M ビットフラッシュメモリのプログラム例 ここでは , 2M ビットフラッシュメモリのプログラム例を掲載します。 ■ 2M ビットフラッシュメモリのプログラム例 NAME FLASHWE TITLE FLASHWE ;------------------------------------------------------------------------;2M ビット -FLASH サンプルプログラム ; ;1: FLASH にあるプログラム ( アドレス FFBC00H セクタ SA5) を RAM( アドレス 001500H) に ; 転送する。 ;2: RAM 上でプログラムを実行する。 ;3: PDR1 の値を FLASH( アドレス FD0000H セクタ SA1) に書込む。 ;4: 書込んだ値 ( アドレス FD0000H セクタ SA1) を読出し PDR2 に出力する。 ;5: 書込んだセクタ (SA1) を消去する。 ;6: 消去データ確認の出力 ; 条件 ; ; ・RAM 転送バイト数 : 100H(256B) ・書込み , 消去の終了判定 ; DQ5( タイミングリミット超過フラグ ) での判定 ; DQ6( トグルビットフラグ ) での判定 ; RDY(FMCS) での判定 ; ・エラー時の処理 P00 ∼ P07 に "H" を出力する ; ; リセットコマンド発行 ;-------------------------------------------------------------------------; RESOUS IOSEG ABS=00 PDR0 PDR1 PDR2 PDR3 ORG RB RB RB RB 0000H 1 1 1 1 DDR0 DDR1 DDR2 DDR3 ORG RB RB RB RB 0010H 1 1 1 1 CKSCR ORG RB 00A1H 1 ;"RESOUS"I/O セグメントの定義 387 第 24 章 2M/3M ビット フラッシュメモリ FMCS ORG RB 00AEH 1 ORG ROMM RB RESOUS ENDS ; SSTA SSEG 006FH 1 RW RW ENDS 0127H 1 DSEG ABS=0FFH STA_T SSTA ; DATA ORG COMADR2 RW ;FLASH コマンドアドレス 5554H 1 ORG 0AAAAH COMADR1 RW 1 DATA ENDS ;///////////////////////////////////////////////////////////// ; メインプログラム (FFA000H) ;///////////////////////////////////////////////////////////// CODE CSEG START: ; ///////////////////////////////////////////////////// ; ; 初期化 ///////////////////////////////////////////////////// MOV CKSCR,#0BAH ;3 逓倍に設定 MOV RP,#0 MOV A,#!STA_T MOV SSB,A MOVW A,#STA_T MOVW SP,A MOV ROMM,#00H ; ミラー OFF MOV PDR0,#00H ; エラー確認用 MOV DDR0,#0FFH MOV PDR1,#00H MOV DDR1,#00H MOV PDR2,#00H ; データ入力用ポート ; データ出力用ポート ; MOV DDR2,#0FFH ////////////////////////////////////////////////////////////// ; RAM(1500H 番地 ) に "FLASH 書込み消去プログラム (FFBCOOH)" を転送する ; ////////////////////////////////////////////////////////////// ; 388 MOVW A,#1500H ; 転送先 RAM 領域 MOVW A,#0BC00H ; 転送元アドレス ( プログラムのある位置 ) MOVW RW0,#100H ; 転送するバイト数 MOVS ADB,PCB ;FFBC00H から 001500H へ 100H 転送 CALLP 001500H ; 転送したプログラムのあるアドレスへジャンプ ///////////////////////////////////////////////////// 第 24 章 2M/3M ビット フラッシュメモリ ; ; OUT データ出力 ///////////////////////////////////////////////////// MOV A,#0FDH MOV ADB,A MOVW RW2,#0000H MOVW A,@RW2+00 MOV PDR2,A END JMP * CODE ENDS ;//////////////////////////////////////////////////////////// ;FLASH 書込み消去プログラム (SA5) ;//////////////////////////////////////////////////////////// RAMPRG CSEG ABS=0FFH ORG 0BC00H ; //////////////////////////////////////////// ; ; 初期化 //////////////////////////////////////////// MOVW RW0,#0500H ;RW0: 入力データ確保用 RAM 空間 00:0500 ∼ MOVW RW2,#0000H ;RW2: フラッシュメモリ書込みアドレス FD:0000 ∼ MOV A,#00H ;DTB 変更 MOV DTB,A ;@RW0 用バンク指定 MOV A,#0FDH ;ADB 変更 1 MOV ADB,A ; 書込みモード指定アドレス用バンク指定 MOV PDR3,#00H ; スイッチ初期化 MOV DDR3,#00H ; WAIT1 BBC PDR3:0,WAIT1 ;PDR3:0 "H" で書込みスタート ; ;//////////////////////////////////////////////// ; 書込み (SA1) ;//////////////////////////////////////////////// MOV A,PDR1 MOVW @RW0+00,A ;RAM に PDR1 データを確保 MOV FMCS,#20H ; 書込みモード設定 MOVW ADB:COMADR1,#00AAH ; フラッシュ書込みコマンド 1 MOVW ADB:COMADR2,#0055H ; フラッシュ書込みコマンド 2 MOVW ADB:COMADR1,#00A0H ; フラッシュ書込みコマンド 3 MOVW A,@RW0+00 ; 入力データ (RW0) をフラッシュメモリ (RW2) ; に書き込む ; MOVW @RW2+00,A ; WRITE ; 待ち時間チェック /////////////////////////////////////////////////////////////////// ; ; タイムリミット超過チェック - フラグが立ちトグル動作中であるとき ERROR /////////////////////////////////////////////////////////////////// MOVW A,@RW2+00 AND A,#20H ;DQ5 タイムリミットチェック 389 第 24 章 2M/3M ビット フラッシュメモリ BZ NTOW ; タイムリミットオーバ MOVW A,@RW2+00 ;AH MOVW A,@RW2+00 ;AL XORW A ;AH AL の XOR( 値が違えば 1) AND A,#40H ;DQ6 トグルビットは違っているか ; BNZ ERROR ; 違えば ERROR へ /////////////////////////////////////// ; ; NTOW 書込み終了チェック (FMCS-RDY) /////////////////////////////////////// MOVW A,FMCS AND A,#10H ;FMCS RDY ビット (4 ビット ) 抽出 BZ WRITE ; 書込み終了か ? ; MOV FMCS,#00H ; 書込みモード解除 ///////////////////////////////////////////////////// ; ; 書込みデータ出力 ///////////////////////////////////////////////////// MOVW RW2,#0000H MOVW A,@RW2+00 MOV PDR2,A ; 書込みデータ出力 ; WAIT2 BBC PDR3:1,WAIT2 ;PDR3:1 "H" でセクタ消去スタート ; ;///////////////////////////////////////////// ; セクタ消去 (SA1) ;///////////////////////////////////////////// MOV @RW2+00,#0000H ; アドレス初期化 MOV FMCS,#20H ; 消去モード設定 MOVW ADB:COMADR1,#00AAH ; フラッシュ消去コマンド 1 MOVW ADB:COMADR2,#0055H ; フラッシュ消去コマンド 2 MOVW ADB:COMADR1,#0080H ; フラッシュ消去コマンド 3 MOVW ADB:COMADR1,#00AAH ; フラッシュ消去コマンド 4 MOVW ADB:COMADR2,#0055H ; フラッシュ消去コマンド 5 MOV @RW2+00,#0030H ; 消すセクタに消去コマンド発行 6 ELS ; ; 待ち時間チェック /////////////////////////////////////////////////////////////////// ; ; タイムリミット超過チェック - フラグが立ちトグル動作中であるとき ERROR /////////////////////////////////////////////////////////////////// MOVW A,@RW2+00 AND A,#20H ;DQ5 タイムリミットチェック BZ NTOE ; タイムリミットオーバ MOVW A,@RW2+00 ;AH 書込み動作中は , DQ6 から MOVW A,@RW2+00 ;AL リードごと "H" "L" が交互出力される XORW A ;AH と AL の XOR(DQ6 の値が違えば "1" 書込み動作 中である ) ; 390 AND A,#40H ;DQ6 トグルビットは "H" か BNZ ERROR ;"H" なら ERROR へ 第 24 章 2M/3M ビット フラッシュメモリ ; /////////////////////////////////////// ; ; NTOE 消去終了チェック (FMCS-RDY) /////////////////////////////////////// MOVW A,FMCS ; AND A,#10H ;FMCS RDY ビット (4 ビット ) 抽出 BZ ELS ; セクタ消去終了か ? MOV FMCS,#00H ;FLASH 消去モード解除 RETP ; メインプログラムに戻る ;////////////////////////////////////////////// ; エラー ;////////////////////////////////////////////// ERROR MOV ADB:COMADR1,#0F0H ; リセットコマンド ( 読出しが可能になる ) MOV FMCS,#00H ;FLASH モード解除 MOV PDR0,#0FFH ; エラー処理の確認 RETP ; メインプログラムに戻る RAMPRG ENDS ;///////////////////////////////////////////// VECT CSEG ABS=0FFH VECT ; ORG 0FFDCH DSL START DB ENDS 00H 391 第 24 章 2M/3M ビット フラッシュメモリ 392 第 25 章 MB90F594A/MB90F594G/ MB90F591A/MB90F591G シリアル書込み接続例 横河ディジタルコンピュータ株式会社製 AF220/ AF210/AF120/AF110 フラッシュマイコンプログラ マを用いた場合のシリアル書込み接続例について 説明します。 25.1 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続の基本構成 25.2 シリアル書込み接続例 ( ユーザ電源使用時 ) 25.3 シリアル書込み接続例 ( ライタから電源供給時 ) 25.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 25.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 393 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 25.1 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続の基本構成 MB90F594A/MB90F594G/MB90F591A/MB90F591G では , フラッシュ ROM のシリ アルオンボード書込み ( 富士通標準 ) をサポートしています。その仕様について以下 に説明します。 ■ MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続の基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。 図 25.1-1 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続の基本構成 ホストインタフェースケーブル (AZ201) 汎用共通ケーブル (AZ210) RS232C AF220/AF210/ AF120/AF110 MB90F594A/ CLK 同期シリアル MB90F594G/ フラッシュ MB90F591A/ マイコン MB90F591G プログラマ + ユーザシステム メモリカード スタンドアロンで動作可能 < 注意事項 > 394 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法およ び接続用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコン ピュータ株式会社にお問い合わせください。 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 表 25.1-1 富士通標準シリアルオンボード書込みに使用する端子 端子 機能 補足説明 モード端子 フラッシュマイコンプログラマから , 書込み モードに制御します。 X0, X1 発振用端子 書込みモード時に, CPU内部動作クロックはPLL クロック 1 逓倍となっています。したがって , 発 振クロック周波数が , 内部動作クロックとなり ます。 P00, P01 書込みプログラム起動端子 P00 に "L" レベル , P01 に "H" レベルを入力して ください。 RST リセット端子 SIN3 シリアルデータ入力端子 SOT3 シリアルデータ出力端子 SCK3 シリアルクロック入力端子 C C 端子 電源安定化の容量端子です。外部に 0.1µF 程度 のセラミックコンデンサを接続してください。 VCC 電源電圧供給端子 書込み電圧 (5V±10%) をユーザシステムから供 給する場合にはフラッシュマイコンプログラマ との接続は必要ありません。接続時にはユーザ 側の電源と短絡しないようにしてください。 VSS GND 端子 フラッシュマイコンプログラマのGNDと共通に します。 HST ハードウェアスタンバイ端子 シリアル書込みモード中は "H" レベルを入力し てください。 MD2, MD1, MD0 - シリアル I/O を使用します。 P00, SIN3, SOT3, SCK3 端子をユーザシステムでも使用する場合には , 下図の制御回路 が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書込 み中はユーザ回路を切り離すことができます。 「25.2 シリアル書込み接続例 ( ユーザ電源使用時 )」∼「25.5 フラッシュマイコンプロ グラマとの最小限の接続例 ( ライタから電源供給時 )」に , 以下のシリアル書込み接続 例を示しますので参照してください。 図 25.1-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F594A/ MB90F594G/ MB90F591G 書込み制御端子 10kΩ AF220/AF210/AF120/ AF110 /TICS 端子 ユーザ回路 • シリアル書込み接続例 ( ユーザ電源使用時 ) • シリアル書込み接続例 ( ライタから電源供給時 ) • フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 395 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 • フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 表 25.1-2 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) 型格 機能 AF220/ACAP AF210/ACAP 本 体 AF120/ACAP AF110/ACAP イーサネットインタフェース内蔵モデル /100V ∼ 220V 電源アダプタ スタンダードモデル /100V ∼ 220V 電源アダプタ 単キーイーサネットインタフェース内蔵モデル /100V ∼ 220V 電源アダプタ 単キーモデル /100V ∼ 220V 電源アダプタ AZ221 ライタ専用 PC/AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ :1m FF201 富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P2 2M バイト PC Card ( オプション ) フラッシュメモリ容量∼ 128K バイト対応 /P4 4M バイト PC Card ( オプション ) フラッシュメモリ容量∼ 512K バイト対応 問い合せ先 : 横河ディジタルコンピュータ株式会社 電話 :042-333-6224 < 注意事項 > AF200 フラッシュマイコンプログラマは終息製品ですが , コントロールモジュール FF201 を用いることにより使用できます。シリアル書込み接続例を「25.2 シリア ル書込み接続例 ( ユーザ電源使用時 )」以降に示します。 ■ 発振クロック周波数とシリアルクロック入力周波数 MB90F594A/MB90F594G/MB90F591A/MB90F591G の入力可能なシリアルクロック周波 数は , 以下の計算式により求めることができます。ご使用の発振クロック周波数に合わ せて , シリアルクロック入力周波数をフラッシュマイコンプログラマに設定してくだ さい。 入力可能なシリアルクロック周波数 =0.125 ×発振クロック周波数 表 25.1-3 入力可能なシリアルクロック周波数の例 発振クロック マイコンの入力可能な最大 周波数 シリアルクロック周波数 AF220/AF210/AF120/ AF110 の設定可能な最大 シリアルクロック周波数 AF200 の設定可能な最大 シリアルクロック周波数 4MHz 時 500kHz 500kHz 500kHz 8MHz 時 1MHz 850kHz 500kHz 16MHz 時 2MHz 1.25MHz 500kHz 396 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 25.2 シリアル書込み接続例 ( ユーザ電源使用時 ) 図 25.2-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , シリアル書込 み接続例を示します。なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/ AF110 の TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110B ■ シリアル書込み接続例 ( ユーザ電源使用時 ) 図 25.2-1 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 ( ユーザ電源使用時 ) ユーザシステム AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 MB90F594A/MB90F594G/ MB90F591A/MB90F591G コネクタ DX10-28S MD2 (19) 10kΩ 10kΩ MD1 10kΩ TMODE MD0 X0 (12) X1 TAUX (23) /TICS (10) P00 10kΩ ユーザ ユーザ 10kΩ HST 10kΩ 10kΩ /TRES RST (5) 10kΩ P01 C ユーザ 0.1µF TTXD TRXD TCK (13) (27) (6) TVcc (2) SIN3 SOT3 SCK3 VCC ユーザ電源 GND (7,8, 14,15. 21,22 1,28) VSS 14 ピン 3, 4, 9, 11, 16, 17, 18, 20, 24, 25, 26 ピンは開放 DX10-28S: ライトアングルタイプ 1 ピン DX10-28S 28 ピン 15 ピン コネクタ ( ヒロセ電機製 ) のピン配列 397 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 • SIN3, SOT3, SCK3 端子をユーザシステムでも使用する場合には , P00 と同様下図の 制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シ リアル書込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 図 25.2-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 10kΩ AF220/AF210/AF120/ AF110 /TICS 端子 MB90F594A/ MB90F594G/ MB90F591A/ MB90F591G 書込み制御端子 ユーザ回路 398 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 25.3 シリアル書込み接続例 ( ライタから電源供給時 ) 図 25.3-1 に , マイコンの電源電圧をライタ電源より供給する場合の , シリアル書込み 接続例を示します。なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE より , MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110B ■ シリアル書込み接続例 ( ライタから電源供給時 ) 図 25.3-1 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S MB90F594A/MB90F594G/ MB90F591A/MB90F591G MD2 (19) 10kΩ 10kΩ MD1 10kΩ TMODE MD0 X0 (12) X1 TAUX (23) /TICS (10) P00 10kΩ ユーザ回路 ユーザ 10kΩ HST 10kΩ /TRES 10kΩ RST (5) 10kΩ P01 C ユーザ 0.1µF TTXD TRXD TCK TVcc Vcc TVPP1 GND (13) (27) (6) (2) (3) (16) (7,8, 14,15. 21,22 1,28) SIN3 SOT3 SCK3 VCC ユーザ電源 VSS 14 ピン 1 ピン 4, 9, 11, 17, 18, 20, DX10-28S 24, 25, 26 ピンは開放 DX10-28S: ライトアングルタイプ 28 ピン 15 ピン コネクタ ( ヒロセ電機製 ) のピン配列 399 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 • SIN3, SOT3, SCK3 端子をユーザシステムでも使用する場合には , P00 と同様下図の 制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シ リアル書込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源をAF220/AF210/AF120/AF110から供給する時はユーザ電源と短絡しない でください。 図 25.3-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 10kΩ AF220/AF210/AF120/ AF110 /TICS 端子 MB90F594A/ MB90F594G/ MB90F591A/ MB90F591G 書込み制御端子 ユーザ回路 400 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 25.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 図 25.4-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書換えモード :MD2, MD1, MD0=110B ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) フラッシュメモリ書込み時に, 各端子を下記のように設定して頂ければ, MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 25.4-1 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン シリアル書換え時 1 プログラマ 10kΩ MB90F594A/MB90F594G/ MB90F591A/MB90F591G MD2 シリアル 書換え時 1 10kΩ 10kΩ MD1 10kΩ 10kΩ MD0 シリアル書換え時 0 10kΩ X0 X1 シリアル 書換え時 0 P00 10kΩ 10kΩ ユーザ回路 シリアル 書換え時 1 10kΩ コネクタ DX10-28S /TRES TTXD TRXD TCK TVcc (5) (13) (27) (6) (2) GND (7,8, 14,15, 21,22, 1,28) P01 ユーザ回路 HST C 0.1µF 10kΩ RST SIN3 SOT3 SCK3 VCC ユーザ電源 VSS 14 ピン 3, 4, 9, 10, 11, 12, 16, 17, 18, 19, 20, 23, 24, 25, 26 ピンは開放 DX10-28S:ライトアングルタイプ 1 ピン DX10-28S 28 ピン 15 ピン コネクタ ( ヒロセ電機製 ) のピン配列 401 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 • SIN3, SOT3, SCK3 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 図 25.4-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 10kΩ AF220/AF210/AF120/ AF110 /TICS 端子 MB90F594A/ MB90F594G/ MB90F591A/ MB90F591G 書込み制御端子 ユーザ回路 402 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 25.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 図 25.5-1 に , マイコンの電源電圧をライタ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書換えモード :MD2, MD1, MD0=110B ■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) フラッシュメモリ書込み時に各端子を下記のように設定して頂ければ , MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 25.5-1 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 ユーザシステム フラッシュマイコン シリアル書換え時 1 プログラマ MB90F594A/MB90F594G/ MB90F591A/MB90F591G 10kΩ MD2 シリアル書換え時 1 10kΩ 10kΩ MD1 10kΩ 10kΩ MD0 シリアル書換え時 0 10kΩ X0 X1 P00 10kΩ シリアル書換え時 0 10kΩ ユーザ回路 P01 シリアル書換え時 1 10kΩ コネクタ DX10-28S /TRES TTXD TRXD TCK TVcc GND (5) (13) (27) (6) (2) (3) (16) (7,8, 14,15, 21,22, 1,28) ユーザ回路 HST C 0.1µF 10kΩ RST SIN3 SOT3 SCK3 VCC VSS 14 ピン 1 ピン 4, 9, 10, 11, 12, 17, 18, 19, DX10-28S 20, 23, 24, 25, 26 ピンは開放 DX10-28S:ライトアングルタイプ 28 ピン 15 ピン コネクタ ( ヒロセ電機製 ) のピン配列 403 第 25 章 MB90F594A/MB90F594G/MB90F591A/MB90F591G シリアル書込み接続例 • SIN3, SOT3, SCK3 端子をユーザシステムでも使用する場合には , 下図の制御回路が 必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます ) 。 • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源をAF220/AF210/AF120/AF110から供給する時はユーザ電源と短絡しない でください。 図 25.5-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 10kΩ AF220/AF210/AF120/ AF110 /TICS 端子 MB90F594A/ MB90F594G/ MB90F591A/ MB90F591G 書込み制御端子 ユーザ回路 404 付録 付録では , I/O マップ , F2MC-16LX の命令などを示 します。 付録 A I/O マップ 付録 B 命令 付録 C フラッシュメモリモードのタイミングダイヤグラム 付録 D MB90590 シリーズ割込みベクタ一覧表 405 付録 付録 A I/O マップ 表 A-1 に , 周辺ブロック中のレジスタに割り当てられるアドレスを示します。 ■ I/O マップ 表 A-1 I/O マップ (1 / 6) アドレス レジスタ 略称 アクセス リソース 初期値 000000H ポートデータレジスタ ( ポート 0 用 ) PDR0 R/W ポート 0 XXXXXXXXB 000001H ポートデータレジスタ ( ポート 1 用 ) PDR1 R/W ポート 1 XXXXXXXXB 000002H ポートデータレジスタ ( ポート 2 用 ) PDR2 R/W ポート 2 XXXXXXXXB 000003H ポートデータレジスタ ( ポート 3 用 ) PDR3 R/W ポート 3 XXXXXXXXB 000004H ポートデータレジスタ ( ポート 4 用 ) PDR4 R/W ポート 4 XXXXXXXXB 000005H ポートデータレジスタ ( ポート 5 用 ) PDR5 R/W ポート 5 XXXXXXXXB 000006H ポートデータレジスタ ( ポート 6 用 ) PDR6 R/W ポート 6 XXXXXXXXB 000007H ポートデータレジスタ ( ポート 7 用 ) PDR7 R/W ポート 7 XXXXXXXXB 000008H ポートデータレジスタ ( ポート 8 用 ) PDR8 R/W ポート 8 XXXXXXXX 000009H ポートデータレジスタ ( ポート 9 用 ) PDR9 R/W ポート 9 --XXXXXXB 00000A ∼ 00000FH 使用禁止 000010H ポート方向レジスタ ( ポート 0 用 ) DDR0 R/W ポート 0 00000000B 000011H ポート方向レジスタ ( ポート 1 用 ) DDR1 R/W ポート 1 00000000B 000012H ポート方向レジスタ ( ポート 2 用 ) DDR2 R/W ポート 2 00000000B 000013H ポート方向レジスタ ( ポート 3 用 ) DDR3 R/W ポート 3 00000000B 000014H ポート方向レジスタ ( ポート 4 用 ) DDR4 R/W ポート 4 00000000B 406 付録 A I/O マップ 表 A-1 I/O マップ (2 / 6) アドレス レジスタ 略称 アクセス リソース 初期値 000015H ポート方向レジスタ ( ポート 5 用 ) DDR5 R/W ポート 5 00000000B 000016H ポート方向レジスタ ( ポート 6 用 ) DDR6 R/W ポート 6 00000000B 000017H ポート方向レジスタ ( ポート 7 用 ) DDR7 R/W ポート 7 00000000B 000018H ポート方向レジスタ ( ポート 8 用 ) DDR8 R/W ポート 8 00000000B 000019H ポート方向レジスタ ( ポート 9 用 ) DDR9 R/W ポート 9 --000000B ポート 6, A/D 11111111B 00001AH 00001BH 使用禁止 アナログ入力許可レジスタ ( ポート 6 用 ) ADER 00001C ∼ 00001FH R/W 使用禁止 000020H シリアルモード制御レジスタ 0 UMC0 W, R/W 00000100B 000021H シリアルステータスレジスタ 0 USR0 R, R/W 00010000B 000022H シリアルインプット / シリアルア ウトプットデータレジスタ 0 UIDR0/ UODR0 R/W XXXXXXXXB 000023H レート・データレジスタ 0 URD0 R/W 0000000XB 000024H シリアルモード制御レジスタ 1 UMC1 W, R/W 00000100B 000025H シリアルステータスレジスタ 1 USR1 R, R/W 00010000B 000026H シリアルインプット / シリアルア ウトプットデータレジスタ 1 UIDR1/ UODR1 R/W XXXXXXXXB 000027H レート・データレジスタ 1 URD1 R/W 0000000XB 000028H シリアルモード制御レジスタ 2 UMC2 W, R/W 00000100B 000029H シリアルステータスレジスタ 2 USR2 R, R/W 00010000B 00002AH シリアルインプット / シリアルアウトプットデータレジ スタ 2 UIDR2/ UODR2 R/W XXXXXXXXB 00002BH レート・データレジスタ 2 URD2 R/W 0000000XB シリアルモード制御ステータスレ ジスタ R/W ----0000B SMCS 00002CH 00002DH UART0 UART1 UART2 00000010B R, R/W シリアル I/O 00002EH シリアルシフトデータレジスタ SDR R/W XXXXXXXXB 00002FH シリアルエッジセレクタレジスタ SES R/W -------0B 407 付録 表 A-1 I/O マップ (3 / 6) アドレス レジスタ 略称 アクセス 000030H DTP/ 割込み許可レジスタ ENIR R/W 000031H DTP/ 割込み要因レジスタ EIRR R/W リソース 初期値 00000000B XXXXXXXXB DTP/ 外部割込み 00000000B 000032H 要求レベル設定レジスタ ELVR R/W 00000000B 000033H 000034H A/D 制御ステータスレジスタ 0 ADCS0 R/W 000035H A/D 制御ステータスレジスタ 1 ADCS1 W, R/W 00000000B 00000000B A/D コンバータ 000036H A/D データレジスタ 0 ADCR0 R XXXXXXXXB 000037H A/D データレジスタ 1 ADCR1 R, W 000010XXB 000038H PPG0 動作モード制御レジスタ PPGC0 W, R/W 0-000--1B 000039H PPG1 動作モード制御レジスタ PPGC1 W, R/W 00003AH PPG0/1 クロック選択レジスタ PPG01 R/W 00003BH 0-000001B 000000--B 使用禁止 00003CH PPG2 動作モード制御レジスタ PPGC2 W, R/W 00003DH PPG3 動作モード制御レジスタ PPGC3 W, R/W 00003EH PPG2/3 クロック選択レジスタ PPG23 R/W 00003FH 0-000--1B PPG (ch.2, ch.3) ユニット 1 0-000001B 000000--B 使用禁止 000040H PPG4 動作モード制御レジスタ PPGC4 W, R/W 000041H PPG5 動作モード制御レジスタ PPGC5 W, R/W 000042H PPG4/5 クロック選択レジスタ PPG45 R/W 000043H 0-000--1B PPG (ch.4, ch.5) ユニット 2 0-000001B 000000--B 使用禁止 000044H PPG6 動作モード制御レジスタ PPGC6 W, R/W 000045H PPG7 動作モード制御レジスタ PPGC7 W, R/W 000046H PPG6/7 クロック選択レジスタ PPG67 R/W 000047H 0-000--1B PPG (ch.6, ch.7) ユニット 3 0-000001B 000000--B 使用禁止 000048H PPG8 動作モード制御レジスタ PPGC8 W, R/W 000049H PPG9 動作モード制御レジスタ PPGC9 W, R/W 00004AH PPG8/9 クロック選択レジスタ PPG89 R/W 00004BH 0-000--1B PPG (ch.8, ch.9) ユニット 4 0-000001B 000000--B 使用禁止 00004CH PPGA 動作モード制御レジスタ PPGCA W, R/W 00004DH PPGB 動作モード制御レジスタ PPGCB W, R/W 00004EH PPGA/B クロック選択レジスタ PPGAB R/W 408 PPG (ch.0, ch.1) ユニット 0 0-000--1B PPG (ch.A, ch.B) ユニット 5 0-000001B 000000--B 付録 A I/O マップ 表 A-1 I/O マップ (4 / 6) アドレス レジスタ 略称 00004FH アクセス リソース 初期値 使用禁止 タイマ制御ステータスレジスタ 0 ( 下位 ) TMCSR0 000051H タイマ制御ステータスレジスタ 0 ( 上位 ) TMCSR0 R/W 000052H タイマ制御ステータスレジスタ 1 ( 下位 ) TMCSR1 R/W 000053H タイマ制御ステータスレジスタ 1 ( 上位 ) TMCSR1 R/W 000054H インプットキャプチャ制御ステー タスレジスタ 0/1 ICS01 R/W インプットキャプチャ 0/1 00000000B 000055H インプットキャプチャ制御ステー タスレジスタ 2/3 ICS23 R/W インプットキャプチャ 2/3 00000000B 000056H インプットキャプチャ制御ステー タスレジスタ 4/5 ICS45 R/W インプットキャプチャ 4/5 00000000B 000050H 16 ビット リロードタイマ 0 OCS0 000059H アウトプットコンペア制御ステー タスレジスタ 1 OCS1 R/W 00005AH アウトプットコンペア制御ステー タスレジスタ 2 OCS2 R/W 00005BH アウトプットコンペア制御ステー タスレジスタ 3 OCS3 R/W 00005CH アウトプットコンペア制御ステー タスレジスタ 4 OCS4 R/W 00005DH アウトプットコンペア制御ステー タスレジスタ 5 OCS5 R/W 00005EH サウンド制御レジスタ ( 下位 ) SGCR R/W 0000--00B R/W アウトプットコンペア 0/1 ---00000B 0000--00B アウトプットコンペア 2/3 ---00000B 0000--00B アウトプットコンペア 4/5 ---00000B 00000000B サウンドジェネレータ 00005FH サウンド制御レジスタ ( 上位 ) SGCR R, R/W 000060H タイマ制御レジスタ ( 下位 ) WTCR R/W 000061H タイマ制御レジスタ ( 上位 ) WTCR R/W 000062H PWM 制御レジスタ 0 PWC0 R/W 000063H 0-----00B 000--000B 時計タイマ 000065H ----0000B 使用禁止 アウトプットコンペア制御ステー タスレジスタ 0 000064H ----0000B 00000000B 16 ビット リロードタイマ 1 000057H 000058H 00000000B R/W 00000000B ステッピングモータ コントローラ 0 00000--0B ステッピングモータ コントローラ 1 00000--0B 使用禁止 PWM 制御レジスタ 1 PWC1 R/W 使用禁止 409 付録 表 A-1 I/O マップ (5 / 6) アドレス レジスタ 000066H PWM 制御レジスタ 2 略称 アクセス リソース 初期値 PWC2 R/W ステッピングモータ コントローラ 2 00000--0B ステッピングモータ コントローラ 3 00000--0B 000067H 000068H 使用禁止 PWM 制御レジスタ 3 PWC3 R/W 000069H 使用禁止 00006A ∼ 00006CH 使用禁止 00006DH シリアル I/O プリスケーラ CDCR R/W シリアル I/O 0---1111B 00006EH タイマカウンタ制御ステータスレ ジスタ TCCS R/W 入出力タイマ 00000000B 00006FH ROM ミラー機能選択レジスタ ROMM W ROM ミラー機能選択 モジュール -------1B 000070 ∼ 00008FH CAN インタフェース 0/1 用に予約済み。『CAN コントローラハードウェアマニュアル』を参照。 000090 ∼ 00009DH 使用禁止 00009EH プログラムアドレス検出制御ス テータスレジスタ PACSR R/W アドレス一致検出機能 00000000B 00009FH 遅延割込み要因発生 / 解除レジス タ DIRR R/W 遅延割込み -------0B 0000A0H 低消費電力モード制御レジスタ LPMCR W, R/W 00011000B 低消費電力制御回路 0000A1H クロック選択レジスタ CKSCR 0000A2 ∼ 0000A7H R, R/W 11111100B 使用禁止 0000A8H ウォッチドッグタイマ制御レジス タ WDTC R, W ウォッチドッグタイマ XXXXX111B 0000A9H タイムベースタイマ制御レジスタ TBTC W, R/W タイムベースタイマ 1--00100B フラッシュメモリ 000X0000B 0000AA ∼ 0000ADH 0000AEH 0000AFH 410 使用禁止 フラッシュメモリ制御ステータス レジスタ (MB90F594/MB90F594G/ MB90F591A/MB90F591G のみ , そ れ以外は使用禁止 ) FMCS R, R/W 使用禁止 付録 A I/O マップ 表 A-1 I/O マップ (6 / 6) アドレス レジスタ 略称 アクセス リソース 初期値 0000B0H 割込み制御レジスタ 00 ICR00 W, R/W 00000111B 0000B1H 割込み制御レジスタ 01 ICR01 W, R/W 00000111B 0000B2H 割込み制御レジスタ 02 ICR02 W, R/W 00000111B 0000B3H 割込み制御レジスタ 03 ICR03 W, R/W 00000111B 0000B4H 割込み制御レジスタ 04 ICR04 W, R/W 00000111B 0000B5H 割込み制御レジスタ 05 ICR05 W, R/W 00000111B 0000B6H 割込み制御レジスタ 06 ICR06 W, R/W 00000111B 0000B7H 割込み制御レジスタ 07 ICR07 W, R/W 00000111B 0000B8H 割込み制御レジスタ 08 ICR08 W, R/W 00000111B 0000B9H 割込み制御レジスタ 09 ICR09 W, R/W 00000111B 0000BAH 割込み制御レジスタ 10 ICR10 W, R/W 00000111B 0000BBH 割込み制御レジスタ 11 ICR11 W, R/W 00000111B 0000BCH 割込み制御レジスタ 12 ICR12 W, R/W 00000111B 0000BDH 割込み制御レジスタ 13 ICR13 W, R/W 00000111B 0000BEH 割込み制御レジスタ 14 ICR14 W, R/W 00000111B 0000BFH 割込み制御レジスタ 15 ICR15 W, R/W 00000111B 割込みコントローラ 0000C0 ∼ 0000FFH 使用禁止 411 付録 表 A-2 I/O マップ (19XX アドレス ) (1 / 5) アドレス レジスタ 略称 アクセス リソース 初期値 XXXXXXXXB 1900H リロードレジスタ L PRLL0 R/W 1901H リロードレジスタ H PRLH0 R/W 1902H リロードレジスタ L PRLL1 R/W 1903H リロードレジスタ H PRLH1 R/W XXXXXXXXB 1904H リロードレジスタ L PRLL2 R/W XXXXXXXXB 1905H リロードレジスタ H PRLH2 R/W 1906H リロードレジスタ L PRLL3 R/W 1907H リロードレジスタ H PRLH3 R/W XXXXXXXXB 1908H リロードレジスタ L PRLL4 R/W XXXXXXXXB 1909H リロードレジスタ H PRLH4 R/W 190AH リロードレジスタ L PRLL5 R/W 190BH リロードレジスタ H PRLH5 R/W XXXXXXXXB 190CH リロードレジスタ L PRLL6 R/W XXXXXXXXB 190DH リロードレジスタ H PRLH6 R/W 190EH リロードレジスタ L PRLL7 R/W 190FH リロードレジスタ H PRLH7 R/W XXXXXXXXB 1910H リロードレジスタ L PRLL8 R/W XXXXXXXXB 1911H リロードレジスタ H PRLH8 R/W 1912H リロードレジスタ L PRLL9 R/W 1913H リロードレジスタ H PRLH9 R/W XXXXXXXXB 1914H リロードレジスタ L PRLLA R/W XXXXXXXXB 1915H リロードレジスタ H PRLHA R/W 1916H リロードレジスタ L PRLLB R/W 1917H リロードレジスタ H PRLHB R/W 1918 ∼ 191FH 412 使用禁止 PPG (ch.0, ch.1) ユニット 0 PPG (ch.2, ch.3) ユニット 1 PPG (ch.4, ch.5) ユニット 2 PPG (ch.6, ch.7) ユニット 3 PPG (ch.8, ch.9) ユニット 4 PPG (ch.A, ch.B) ユニット 5 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 付録 A I/O マップ 表 A-2 I/O マップ (19XX アドレス ) (2 / 5) アドレス レジスタ 略称 アクセス リソース 初期値 1920H インプットキャプチャデータレジ スタ 0 ( 下位 ) IPCP0 R 1921H インプットキャプチャデータレジ スタ 0 ( 上位 ) IPCP0 R 1922H インプットキャプチャデータレジ スタ 1 ( 下位 ) IPCP1 R XXXXXXXXB 1923H インプットキャプチャデータレジ スタ 1 ( 上位 ) IPCP1 R XXXXXXXXB 1924H インプットキャプチャデータレジ スタ 2 ( 下位 ) IPCP2 R XXXXXXXXB 1925H インプットキャプチャデータレジ スタ 2 ( 上位 ) IPCP2 R 1926H インプットキャプチャデータレジ スタ 3 ( 下位 ) IPCP3 R XXXXXXXXB 1927H インプットキャプチャデータレジ スタ 3 ( 上位 ) IPCP3 R XXXXXXXXB 1928H インプットキャプチャデータレジ スタ 4 ( 下位 ) IPCP4 R XXXXXXXXB 1929H インプットキャプチャデータレジ スタ 4 ( 上位 ) IPCP4 R 192AH インプットキャプチャデータレジ スタ 5 ( 下位 ) IPCP5 R XXXXXXXXB 192BH インプットキャプチャデータレジ スタ 5 ( 上位 ) IPCP5 R XXXXXXXXB XXXXXXXXB XXXXXXXXB インプットキャプチャ 0/1 XXXXXXXXB インプットキャプチャ 2/3 XXXXXXXXB インプットキャプチャ 4/5 192C ∼ 192FH 使用禁止 1930H アウトプットコンペアレジスタ 0 ( 下位 ) OCCP0 R/W 193H アウトプットコンペアレジスタ 0 ( 上位 ) OCCP0 R/W 1932H アウトプットコンペアレジスタ 1 ( 下位 ) OCCP1 R/W XXXXXXXXB 1933H アウトプットコンペアレジスタ 1 ( 上位 ) OCCP1 R/W XXXXXXXXB XXXXXXXXB XXXXXXXXB アウトプットコンペア 0/1 413 付録 表 A-2 I/O マップ (19XX アドレス ) (3 / 5) アドレス レジスタ 略称 アクセス リソース 初期値 1934H アウトプットコンペアレジスタ 2 ( 下位 ) OCCP2 R/W 1935H アウトプットコンペアレジスタ 2 ( 上位 ) OCCP2 R/W 1936H アウトプットコンペアレジスタ 3 ( 下位 ) OCCP3 R/W XXXXXXXXB 1937H アウトプットコンペアレジスタ 3 ( 上位 ) OCCP3 R/W XXXXXXXXB 1938H アウトプットコンペアレジスタ 4 ( 下位 ) OCCP4 R/W XXXXXXXXB 1939H アウトプットコンペアレジスタ 4 ( 上位 ) OCCP4 R/W 193AH アウトプットコンペアレジスタ 5 ( 下位 ) OCCP5 R/W XXXXXXXXB 193BH アウトプットコンペアレジスタ 5 ( 上位 ) OCCP5 R/W XXXXXXXXB XXXXXXXXB XXXXXXXXB アウトプットコンペア 2/3 XXXXXXXXB アウトプットコンペア 4/5 193D ∼ 193FH 使用禁止 タイマレジスタ 0/ リロードレジス TMR0/ TMRLR0 タ 0 ( 下位 ) R/W 1941H タイマレジスタ 0/ リロードレジス TMR0/ TMRLR0 タ 0 ( 上位 ) R/W 1942H タイマレジスタ 1/ リロードレジス TMR1/ TMRLR1 タ 1 ( 下位 ) R/W 1943H タイマレジスタ 1/ リロードレジス TMR1/ TMRLR1 タ 1 ( 上位 ) R/W XXXXXXXXB 1944H タイマカウンタデータレジスタ ( 下位 ) TCDT R/W 00000000B 1945H タイマカウンタデータレジスタ ( 上位 ) TCDT R/W 00000000B 1946H 周波数データレジスタ SGFR R/W XXXXXXXXB 1947H 振幅データレジスタ SGAR R/W 1940H XXXXXXXXB 16 ビット リロードタイマ 0 XXXXXXXXB XXXXXXXXB 16 ビット リロードタイマ 1 入出力タイマ 00000000B サウンドジェネレータ 414 1948H デクリメントグレードレジスタ SGDR R/W XXXXXXXXB 1949H トーンカウントレジスタ SGTR R/W XXXXXXXXB 付録 A I/O マップ 表 A-2 I/O マップ (19XX アドレス ) (4 / 5) アドレス レジスタ 略称 アクセス リソース 初期値 194AH サブ秒レジスタ ( 下位 ) WTBR R/W XXXXXXXXB 194BH サブ秒レジスタ ( 中位 ) WTBR R/W XXXXXXXXB 194CH サブ秒レジスタ ( 上位 ) WTBR R/W ---XXXXXB 時計タイマ 194DH 秒レジスタ WTSR R/W --000000B 194EH 分レジスタ WTMR R/W --000000B 194FH 時レジスタ WTHR R/W ---00000B 1950H PWM1 コンペアレジスタ 0 ( 下位 ) PWC10 R/W XXXXXXXXB 1951H PWM2 コンペアレジスタ 0 ( 上位 ) PWC20 R/W 1952H PWM1 セレクトレジスタ 0 ( 下位 ) PWS10 R/W 1953H PWM2 セレクトレジスタ 0 ( 上位 ) PWS20 R/W -0000000B 1954H PWM1 コンペアレジスタ 1 ( 下位 ) PWC11 R/W XXXXXXXXB 1955H PWM2 コンペアレジスタ 1 ( 上位 ) PWC21 R/W 1956H PWM1 セレクトレジスタ 1 ( 下位 ) PWS11 R/W 1957H PWM2 セレクトレジスタ 1 ( 上位 ) PWS21 R/W -0000000B 1958H PWM1 コンペアレジスタ 2 ( 下位 ) PWC12 R/W XXXXXXXXB 1959H PWM2 コンペアレジスタ 2 ( 上位 ) PWC22 R/W 195AH PWM1 セレクトレジスタ 2 ( 下位 ) PWS12 R/W 195BH PWM2 セレクトレジスタ 2 ( 上位 ) PWS22 R/W -0000000B 195CH PWM1 コンペアレジスタ 3 ( 下位 ) PWC13 R/W XXXXXXXXB 195DH PWM2 コンペアレジスタ 3 ( 上位 ) PWC23 R/W 195EH PWM1 セレクトレジスタ 3 ( 下位 ) PWS13 R/W 195FH PWM2 セレクトレジスタ 3 ( 上位 ) PWS23 R/W ステッピングモータ コントローラ 0 ステッピングモータ コントローラ 1 ステッピングモータ コントローラ 2 ステッピングモータ コントローラ 3 XXXXXXXXB --000000B XXXXXXXXB --000000B XXXXXXXXB --000000B XXXXXXXXB --000000B -0000000B 1960 ∼ 19FFH 使用禁止 1A00 ∼ 1AFFH CAN インタフェース 0 用に予約済み。『CAN コントローラハードウェアマニュアル』参照。 1B00 ∼ 1BFFH CAN インタフェース 1 用に予約済み。『CAN コントローラハードウェアマニュアル』参照。 1C00 ∼ 1CFFH CAN インタフェース 0 用に予約済み。『CAN コントローラハードウェアマニュアル』参照。 1D00 ∼ 1DFFH CAN インタフェース 1 用に予約済み。『CAN コントローラハードウェアマニュアル』参照。 415 付録 表 A-2 I/O マップ (19XX アドレス ) (5 / 5) アドレス レジスタ 略称 1E00 ∼ 1EFFH アクセス リソース 初期値 使用禁止 1EF0H プログラムアドレス検出レジスタ 0 ( 下位 ) PADR0 R/W XXXXXXXXB 1EF1H プログラムアドレス検出レジスタ 0 ( 中位 ) PADR0 R/W XXXXXXXXB 1EF2H プログラムアドレス検出レジスタ 0 ( 上位 ) PADR0 R/W XXXXXXXXB 1EF3H プログラムアドレス検出レジスタ 1 ( 下位 ) PADR1 R/W XXXXXXXXB 1EF4H プログラムアドレス検出レジスタ 1 ( 中位 ) PADR1 R/W XXXXXXXXB 1EF5H プログラムアドレス検出レジスタ 1 ( 上位 ) PADR1 R/W XXXXXXXXB アドレス一致検出機能 1EF6 ∼ 1FFFH • • 使用禁止 初期値 "?" は未使用ビットを表し , "X" は値が不定であることを示します。 表にリストされていない 0000H ∼ 00FFH の範囲のアドレスは , MCU の主要機能のために予約されています。 これらの予約済みアドレスへのリードアクセスの結果は "X" になり , ライトアクセスは禁止です。 ○書込み / 読込みについての説明 R/W : リードライト可 R : リードオンリー W : ライトオンリー ○初期値についての説明 0: このビットの初期値は "0" です。 1: このビットの初期値は "1" です。 X: このビットの初期値は不定です。 -: このビットは未使用です。初期値は不定です。 416 付録 B 命令 付録 B 命令 F2MC-16LX に使用している命令について説明します。 B.1 命令の種類 B.2 アドレッシング B.3 直接アドレッシング B.4 間接アドレッシング B.5 実行サイクル数 B.6 実効アドレスフィールド B.7 命令一覧表の読み方 B.8 F2MC-16LX 命令一覧表 B.9 命令マップ 管理番号 : CM44-00202-1 417 付録 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 命令 418 付録 B 命令 B.2 アドレッシング F2MC-16LX では , 命令の実効アドレスフィールドまたは命令コード自体 ( インプラ イド ) でアドレス形式が決定されます。命令コード自体でアドレス形式が決定する 場合は , 使用する命令コードに合わせてアドレスを指定します。命令によっては , 数 種類のアドレス指定方式から設定できるものがあります。 ■ アドレッシング F2MC-16LX には , 以下に示す 23 種類のアドレッシングがあります。 • 即値 (#imm) • レジスタ直接 • 直接分岐アドレス (addr16) • 物理直接分岐アドレス (addr24) • I/O 直接 (io) • 短縮直接アドレス (dir) • 直接アドレス (addr16) • I/O 直接ビットアドレス (io: bp) • 短縮直接ビットアドレス (dir: bp) • 直接ビットアドレス (addr16: bp) • ベクタアドレス (#vct) • レジスタ間接 (@RWj j=0 ∼ 3) • ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) • ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) • ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) • ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) • ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) • プログラムカウンタ相対分岐アドレス (rel) • レジスタリスト (rlst) • アキュムレータ間接 (@A) • アキュムレータ間接分岐アドレス (@A) • 間接指定分岐アドレス (@ear) • 間接指定分岐アドレス (@eam) 419 付録 ■ 実効アドレスフィールド 実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。 表 B.2-1 実効アドレスフィールド コード 420 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 デフォルトバンク なし DTB DTB レジスタ間接 0A @RW2 0B @RW3 SPB 0C @RW0+ DTB 0D @RW1+ 0E @RW2+ 0F @RW3+ SPB 10 @RW0+disp8 DTB 11 @RW1+disp8 DTB 12 @RW2+disp8 ADB 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 DTB 16 @RW6+disp8 ADB 17 @RW7+disp8 SPB 18 @RW0+disp16 DTB 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C @RW0+RW7 インデックス付レジスタ間接 DTB 1D @RW1+RW7 インデックス付レジスタ間接 DTB 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 PCB 1F addr16 直接アドレス DTB ポストインクリメント付 レジスタ間接 8 ビットディスプレースメント付 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 ADB DTB ADB SPB DTB DTB ADB SPB 付録 B 命令 B.3 直接アドレッシング 直接アドレッシングでは , オペランド値 , レジスタおよびアドレスを直接指定しま す。 ■ 直接アドレッシング ● 即値 (#imm) オペランドの値を直接指定します。(#imm4/#imm8/#imm16/#imm32) 。 図 B.3-1 に例を示します。 図 B.3-1 即値 (#imm) 例 MOVW A, #01212H (A にオペランドの値を格納する命令 ) 実行前 A 2233 4455 実行後 A 4455 1 2 1 2 ( 命令によっては AL → AH に転送が行われる ) ● レジスタ直接 オペランドとして , 直接レジスタを指定します。指定できるレジスタを表 B.3-1 に示し ます。 表 B.3-1 レジスタ直接 汎用レジスタ 専用レジスタ *: バイト R0, R1, R2, R3, R4, R5, R6, R7 ワード RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 ロングワード RL0, RL1, RL2, RL3 アキュムレータ A, AL ポインタ SP * バンク PCB, DTB, USB, SSB, ADB ページ DPR 制御 PS, CCR, RP, ILM SP は , コンディションコードレジスタ (CCR) 中の S フラグビットの値に応じてユーザス タックポインタ (USP) またはシステムスタックポインタ (SSP) のどちらか一方が選択さ れ , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドには 記述されることなく指定されます。 421 付録 図 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 次の命令 実行後 422 PC 3 B 2 0 PCB 4 F 4F3C20H 62 4F3C21H 20 4F3C22H 3B JMP 3B20H 付録 B 命令 ● 物理直接分岐アドレス (addr24) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 24 ビットです。無条件分岐命令 , サブルーチンコール命令およびソフト ウェア割込み命令に使用します。図 B.3-4 に例を示します。 図 B.3-4 物理直接分岐アドレス (addr24) 例 JMPP 333B20H ( 直接分岐アドレス 24 ビット指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 333B20H 次の命令 実行後 PC 3 B 2 0 PCB 3 3 4F3C20H 63 4F3C21H 20 4F3C22H 3B 4F3C23H 33 JMPP 333B20H ● I/O 直接 (io) オペランドのメモリアドレスを 8 ビットのディスプレースメントで直接指定します。 データバンクレジスタ (DTB) , ダイレクトページレジスタ (DPR) の値にかかわらず , 物理アドレス "000000H" ∼ "0000FFH" の空間の I/O 空間がアクセスされます。I/O 直接 アドレス指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを 記述しても無効です。図 B.3-5 に例を示します。 図 B.3-5 I/O 直接 (io) 例 MOVW A, i : 0C0H (I/O 直接で読出しを行い , A に格納する命令 ) 実行前 実行後 A 0716 2534 メモリ空間 0000C0H EE 0000C1H FF A 2534 FFEE 423 付録 ● 短縮直接アドレス (dir) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) により指定されます。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) により指定されます。図 B.3-6 に例を示します。 図 B.3-6 短縮直接アドレス (dir) 例 MOV S : 20H, A (A の下位 8 ビットの内容を短縮直接アドレス指定方式で書き込む命令 ) A 4455 実行前 DPR 6 6 DTB 7 7 A 4455 実行後 DPR 6 6 1212 メモリ空間 776620H 1212 DTB 7 7 ?? メモリ空間 776620H 12 ● 直接アドレス (addr16) オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 B.3-7 に例を示 します。 図 B.3-7 直接アドレス (addr16) 例 MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 ) 実行前 実行後 424 A 2020 A AABB AABB 0123 DTB 5 5 DTB 5 5 メモリ空間 553B21H 01 553B20H 23 付録 B 命令 ● I/O 直接ビットアドレス (io: bp) 物理アドレス "000000H" ∼ "0000FFH" 内のビットを直接指定します。ビットの位置は ": bp" で表され , 数字の大きいほうが最上位ビット (MSB) , 小さい方が最下位ビット (LSB) となります。図 B.3-8 に例を示します。 図 B.3-8 I/O 直接ビットアドレス (io: bp) 例 SETB i : 0C1H : 0 (I/O 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 0000C1H 実行前 00 メモリ空間 0000C1H 実行後 01 ● 短縮直接ビットアドレス (dir: bp) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) で指定されます。アドレスの bit23 ∼ bit16 は データバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の 大きい方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-9 に例を示しま す。 図 B.3-9 短縮直接ビットアドレス (dir: bp) 例 SETB S : 10H : 0 ( 短縮直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 実行前 DTB 5 5 DPR 6 6 556610H 00 メモリ空間 実行後 DTB 5 5 DPR 6 6 556610H 01 425 付録 ● 直接ビットアドレス (addr16: bp) 64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ∼ bit16 はデー タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。 図 B.3-10 直接ビットアドレス (addr16: bp) 例 SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 DTB 5 5 実行前 00 552222H メモリ空間 DTB 5 5 実行後 01 552222H ● ベクタアドレス (#vct) 分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には 4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込 み命令に使用します。図 B.3-11 に例を示します。 図 B.3-11 ベクタアドレス (#vct) 例 CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PC 0 0 0 0 PCB F F 実行後 FFC000H EF FFFFE0H 00 FFFFE1H D0 PC D 0 0 0 PCB F F 426 メモリ空間 CALLV #15 付録 B 命令 表 B.3-2 CALLV ベクタ一覧表 命令 ベクタアドレス L ベクタアドレス H CALLV #0 XXFFFEH XXFFFFH CALLV #1 XXFFFCH XXFFFDH CALLV #2 XXFFFAH XXFFFBH CALLV #3 XXFFF8H XXFFF9H CALLV #4 XXFFF6H XXFFF7H CALLV #5 XXFFF4H XXFFF5H CALLV #6 XXFFF2H XXFFF3H CALLV #7 XXFFF0H XXFFF1H CALLV #8 XXFFEEH XXFFEFH CALLV #9 XXFFECH XXFFEDH CALLV #10 XXFFEAH XXFFEBH CALLV #11 XXFFE8H XXFFE9H CALLV #12 XXFFE6H XXFFE7H CALLV #13 XXFFE4H XXFFE5H CALLV #14 XXFFE2H XXFFE3H CALLV #15 XXFFE0H XXFFE1H ( 注意事項 ) XX には PCB レジスタの値が入ります。 <注意事項> プログラムカウンタバンクレジスタ (PCB) が "FFH" の場合ベクタ領域は INT #vct8 (#0 ∼ #7) のベクタ領域と共有しているため , 使用する場合は注意が必要です。( 表 B.3-2 を参照 してください ) 427 付録 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 に例を示します。 428 付録 B 命令 図 B.4-2 ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 例 MOVW A, @RW1+ ( ポストインクリメント付レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 1 1 DTB 7 8 ● ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 汎用レジスタ RWj の内容にディスプレースメントを加算したものをアドレスとしたメ モリをアクセスするアドレッシングです。ディスプレースメントは , バイトとワードの 2 種類があり , 符号付数値として加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1, RW4, RW5 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3, RW7 を用い た場合はシステムスタックバンクレジスタ (SSB) またはユーザスタックバンクレジス タ (USB) で示され , RW2, RW6 を用いた場合はアディショナルデータバンクレジスタ (ADB) で示されます。図 B.4-3 に例を示します。 図 B.4-3 ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 例 MOVW A, @RW1+10H (ディスプレースメント付レジスタ間接で読出しを行い, Aに格納する命令) 実行前 A 0716 2534 (+10H) RW1 D 3 0 F 実行後 DTB 7 8 メモリ空間 78D31FH EE 78D320H FF A 2534 FFEE RW1 D 3 0 F DTB 7 8 429 付録 ● ディスプレースメント付ロングレジスタ間接 (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 430 +4 C54556H 73 C54557H 9E C54558H 20 C54559H 00 C5455AH ・ ・ ・ +20H C5457AH EE C5457BH FF MOVW A, @PC+20H 付録 B 命令 ● ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 汎用レジスタ RW7 の内容に , RW0 あるいは RW1 を加算したものをアドレスとしたメ モリをアクセスするアドレッシングです。アドレスの bit23 ∼ bit16 はデータバンクレ ジスタ (DTB) で示されます。図 B.4-6 に例を示します。 図 B.4-6 ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 例 MOVW A, @RW1+RW7 ( ベースインデックス付レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 RW1 D 3 0 F WR7 0 1 0 1 実行後 A 2534 RW1 D 3 0 F 2534 + DTB 7 8 メモリ空間 78D410H EE 78D411H FF FFEE DTB 7 8 WR7 0 1 0 1 ● プログラムカウンタ相対分岐アドレス (rel) 分岐先のアドレスはプログラムカウンタ (PC) の値と 8 ビットのディスプレースメント を加算した値となります。加算の結果が 16 ビットを超えた場合は , バンクレジスタの インクリメントまたはデクレメントをせずに , 超えた分は無視されますので , 64K バイ トのバンク内で閉じたアドレスとなります。プログラムカウンタ相対分岐アドレスに よるアドレッシングは , 無条件 / 条件分岐命令に使用します。アドレスの bit23 ∼ bit16 はプログラムカウンタバンクレジスタ (PCB) で示されます。 図 B.4-7 に例を示します。 図 B.4-7 プログラムカウンタ相対分岐アドレス (rel) 例 BRA 10H ( 無条件相対分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3C32H 次の命令 実行後 PC 3 C 2 0 PCB 4 F 4F3C21H 10 4F3C20H 60 BRA 10H 431 付録 ● レジスタリスト (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 実行前 432 SP 34FDH 34FEH 実行後 付録 B 命令 ● アキュムレータ間接 (@A) アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを アクセスするアドレス方式です。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。 図 B.4-10 アキュムレータ間接 (@A) 例 MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 ) A 実行前 0716 2534 DTB B B A 実行後 0716 メモリ空間 BB2534H EE BB2535H FF FFEE DTB B B ● アキュムレータ間接分岐アドレス (@A) 分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま す。バンク空間内での分岐先を示し , アドレスの bit23 ∼ bit16 はプログラムカウンタ バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド レスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ 間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11 に例を示します。 図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例 JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 A 6677 PCB 4 F 3B20 メモリ空間 4F3B20H 次の命令 4F3C20H 実行後 PC 3 B 2 0 A 6677 61 JMP @A PCB 4 F 3B20 433 付録 ● 間接指定分岐アドレス (@ear) ear で示される番地のワードデータが分岐先アドレスとなります。図 B.4-12 に例を示し ます。 図 B.4-12 間接指定分岐アドレス (@ear) 例 JMP @@RW0 ( レジスタ間接の間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 メモリ空間 217F48H 20 217F49H 3B 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 4F3C20H 73 4F3C21H 08 JMP @@RW0 ● 間接指定分岐アドレス (@eam) eam で示される番地のワードデータが分岐先アドレスとなります。図 B.4-13 に例を示 します。 図 B.4-13 間接指定分岐アドレス (@eam) 例 JMP @RW0 ( レジスタ間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 3 B 2 0 実行後 PC 3 B 2 0 RW0 3 B 2 0 434 メモリ空間 4F3B20H 次の命令 PCB 4 F 4F3C20H 73 4F3C21H 00 JMP @RW0 付録 B 命令 B.5 実行サイクル数 命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令の「サイクル数」の値 と , 条件で決まる「補正値」の値およびプログラムフェッチの「サイクル数」の値 を加算することで得られます。 ■ 実行サイクル数 内蔵 ROM などの 16 ビットバスに接続されたメモリ上のプログラムをフェッチする場 合には , 実行中の命令がワード境界を越えるごとにプログラムフェッチをするため , データのアクセスなどに干渉すると実行サイクル数が増大します。 外部データバスの 8 ビットバスに接続されたメモリ上のプログラムをフェッチする場 合は , 実行中の命令の 1 バイトごとにプログラムフェッチをするため , データのアクセ スなどに干渉すると実行サイクル数が増大します。 CPU 間欠動作時は , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの アクセスをすると , 低消費電力モード制御レジスタの CG0, CG1 ビットで指定されるサ イクル数分 CPU へ供給されるクロックが一時停止しますので , CPU 間欠動作の命令の 実行に要するサイクル数は , 通常の実行サイクル数に , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの「アクセス回数」×一時停止の「サイクル数」の値 を「補正値」として加算してください。 ■ 実行サイクル数計算方法 表 B.5-1 , 表 B.5-2 , 表 B.5-3 に命令実行サイクル数および補正値のデータを示します。 表 B.5-1 各種アドレッシングに対する実行サイクル数 (a) * コード 00 ∼ 07 オペランド Ri RWi RLi 各種アドレッシングに対する 実行サイクル数 各種アドレッシングに 対するレジスタ アクセス回数 命令一覧表に記載 命令一覧表に記載 08 ∼ 0B @RWj 2 1 0C ∼ 0F @RWj+ 4 2 10 ∼ 17 @RWi+disp8 2 1 18 ∼ 1B @RWi+disp16 2 1 1C 1D 1E 1F @RW0+RW7 @RW1+RW7 @PC+disp16 addr16 4 4 2 1 2 2 0 0 *: (a) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用さ れています。" ∼ " と "B" の意味については「B.7 命令一覧表の読み方」を参照 してください。 435 付録 表 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 − ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 436 付録 B 命令 B.6 実効アドレスフィールド 表 B.6-1 に実効アドレスフィールドを示します。 ■ 実効アドレスフィールド 表 B.6-1 実効アドレスフィールド (1 / 2) コード 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 0A @RW2 0B @RW3 0C @RW0+ 0D @RW1+ 0E @RW2+ 0F @RW3+ 10 @RW0+disp8 11 @RW1+disp8 12 @RW2+disp8 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 16 @RW6+disp8 17 @RW7+disp8 アドレス拡張部の バイト数 * レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 − レジスタ間接 0 ポストインクリメント付 レジスタ間接 0 8 ビットディスプレースメント付 レジスタ間接 1 437 付録 表 B.6-1 実効アドレスフィールド (1 / 2) コード *: 438 表記 18 @RW0+disp16 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C アドレス形式 アドレス拡張部の バイト数 * 16 ビットディスプレースメント付 レジスタ間接 2 @RW0+RW7 インデックス付レジスタ間接 0 1D @RW1+RW7 インデックス付レジスタ間接 0 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 2 1F addr16 直接アドレス 2 アドレス拡張部のバイト数は , 「B.8 F2MC-16LX 命令一覧表」の # ( バイト数 ) の "+" に当てはまります。 "#" の意味については「B.7 命令一覧表の読み方」を参照してください。 付録 B 命令 B.7 命令一覧表の読み方 「B.8 F2MC-16LX 命令一覧表」で使用している項目の説明を表 B.7-1 に , 記号の説 明を表 B.7-2 に示します。 ■ 命令の表示記号の説明 表 B.7-1 命令一覧表の項目の説明 項目 ニーモニック 説明 英大文字 , 記号 : アセンブラ上もそのまま表記します。 英小文字 : アセンブラ上では , 書き替えて記述します。 英小文字の後の数 : 命令中のビット幅を示します。 # バイト数を示します。 ∼ サイクル数を示します。 RG 命令実行時のレジスタアクセス回数を示します。 CPU 間欠動作時の補正値を算出するのに使用します。 B オペレーション LH AH 命令実行時の実サイクル数の算出用補正値を示します。 命令実行時の実サイクルは∼欄の数値を加算したものとなります。 命令の動作を示します。 アキュムレータの bit15 ∼ bit8 に対する特殊動作を示します。 Z: 0 を転送する。 X: 符号を拡張して転送する。 − : 転送しない。 アキュムレータの上位 16 ビットに対する特殊動作を示します。 *: AL から AH へ転送する。 − : 転送しない。 Z: AH へ 00H を転送する。 X: AL の符号拡張で AH へ 00H または FFH を転送する。 I I ( 割込み許可 ) , S ( スタック ) , T ( ステッキィビット ) , S N ( ネガティブ ) , Z ( ゼロ ) , V ( オーバフロー ) , C ( キャリー ) T の各フラグの状態を示します。 N *: 命令の実行で変化する。 Z − : 変化しない。 V S: 命令の実行でセットされる。 C R: 命令の実行でリセットされる。 RMW リードモディファイライト命令 (1 命令でメモリなどからデータを読 み出し , メモリへ書き込む ) であるかどうか示します。 *: リードモディファイライト命令である。 − : リードモディファイライト命令ではない。 ( 注意事項 ) 読み書きで意味の異なるアドレスには使用できません。 439 付録 表 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) 440 意味 8 ビット即値データを符号拡張した 16 ビットデータ 付録 B 命令 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 意味 disp8 8 ビットディスプレースメント disp16 16 ビットディスプレースメント bp ビットオフセット値 vct4 ベクタ番号 (0 ∼ 15) vct8 ベクタ番号 (0 ∼ 255) ()b ビットアドレス rel PC 相対分岐指定 ear 実効アドレス指定 ( コード 00 ∼ 07) eam 実効アドレス指定 ( コード 08 ∼ 1F) rlst レジスタ並び 441 付録 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 を参照してください。 442 付録 B 命令 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVW A,dir 2 3 0 (c) word (A) ← (dir) - * - - - * * - - - MOVW A,addr16 3 4 0 (c) word (A) ← (addr16) - * - - - * * - - - MOVW A,SP 1 1 0 0 word (A) ← (SP) - * - - - * * - - - MOVW A,RWi 1 2 1 0 word (A) ← (RWi) - * - - - * * - - - MOVW A,ear 2 2 1 0 word (A) ← (ear) - * - - - * * - - - MOVW A,eam 2+ 3 + (a) 0 (c) word (A) ← (eam) - * - - - * * - - - MOVW A,io 2 3 0 (c) word (A) ← (io) - * - - - * * - - - MOVW A,@A 2 3 0 (c) word (A) ← ((A)) - - - - - * * - - MOVW A,#imm16 3 2 0 0 word (A) ← imm16 - * - - - * * - - - MOVW A,@RWi+disp8 2 5 1 (c) word (A) ← ((RWi)+disp8) - * - - - * * - - - MOVW A,@RLi+disp8 3 10 2 (c) word (A) ← ((RLi)+disp8) - * - - - * * - - - MOVW dir,A 2 3 0 (c) word (dir) ← (A) - - - - - * * - - - MOVW addr16,A 3 4 0 (c) word (addr16) ← (A) - - - - - * * - - - MOVW SP,A 1 1 0 0 word (SP) ← (A) - - - - - * * - - - MOVW RWi,A 1 2 1 0 word (RWi) ← (A) - - - - - * * - - - MOVW ear,A 2 2 1 0 word (ear) ← (A) - - - - - * * - - - MOVW eam,A 2+ 3 + (a) 0 (c) word (eam) ← (A) - - - - - * * - - - MOVW io,A 2 3 0 (c) word (io) ← (A) - - - - - * * - - - MOVW @RWi+disp8,A 2 5 1 (c) word ((RWi)+disp8) ← (A) - - - - - * * - - MOVW @RLi+disp8,A 3 10 2 (c) word ((RLi)+disp8) ← (A) - - - - - * * - - - MOVW RWi,ear 2 3 2 0 word (RWi) ← (ear) - - - - - * * - - - MOVW RWi,eam 2+ 4 + (a) 1 (c) word (RWi) ← (eam) - - - - - * * - - - MOVW ear,RWi 2 4 2 0 word (ear) ← (RWi) - - - - - * * - - - MOVW eam,RWi 2+ 5 + (a) 1 (c) word (eam) ← (RWi) - - - - - * * - - - MOVW RWi,#imm16 3 2 1 0 word (RWi) ← imm16 - - - - - * * - - MOVW io,#imm16 4 5 0 (c) word (io) ← imm16 - - - - - - - - - - MOVW ear,#imm16 4 2 1 0 word (ear) ← imm16 - - - - - * * - - - MOVW eam,#imm16 4+ 4 + (a) 0 (c) word (eam) ← imm16 - - - - - - - - - - MOVW @AL,AH 2 3 0 (c) word ((A)) ← (AH) - - - - - * * - - - XCHW A,ear 2 4 2 0 word (A) ←→ (ear) - - - - - - - - - - XCHW A,eam 2+ 5 + (a) 0 2 × (c) word (A) ←→ (eam) - - - - - - - - - - XCHW RWi, ear 2 7 4 0 word (RWi) ←→ (ear) - - - - - - - - - - XCHW RWi, eam 2+ 9 + (a) 2 2 × (c) word (RWi) ←→ (eam) - - - - - - - - - - MOVL A,ear 2 4 2 0 long (A) ← (ear) - - - - - * * - - - MOVL A,eam 2+ 5 + (a) 0 (d) long (A) ← (eam) - - - - - * * - - - MOVL A,#imm32 5 3 0 0 long (A) ← imm32 - - - - - * * - - - MOVL ear,A 2 4 2 0 long (ear) ← (A) - - - - - * * - - - MOVL eam,A 2+ 5 + (a) 0 (d) long(eam) ← (A) - - - - - * * - - - ( 注意事項 ) 表中の (a), (c), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 443 付録 表 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 を参照してください。 444 付録 B 命令 表 B.8-4 増減算命令 ( バイト・ワード・ロングワード ) 12 命令 ニーモニック # ∼ RG B INC ear 2 3 2 0 INC eam 2+ 5+(a) 0 2 × (b) DEC ear 2 3 2 0 DEC eam 2+ 5+(a) 0 2 × (b) INCW ear 2 3 2 0 INCW eam 2+ 5+(a) 0 2 × (c) DECW ear 2 3 2 0 DECW eam 2+ 5+(a) 0 2 × (c) INCL ear 2 7 4 0 INCL eam 2+ 9+(a) 0 2 × (d) DECL ear 2 7 4 0 DECL eam 2+ 9+(a) 0 2 × (d) オペレーション LH AH I S T N Z V C RMW byte (ear) <-- (ear) + 1 - - - - - * * * - - byte (eam) ← (eam) + 1 - - - - - * * * - * byte (ear) ← (ear) - 1 - - - - - * * * - - byte (eam) ← (eam) - 1 - - - - - * * * - * word (ear) ← (ear) + 1 - - - - - * * * - - word (eam) ← (eam) + 1 - - - - - * * * - * word (ear) ← (ear) - 1 - - - - - * * * - - word (eam) ← (eam) - 1 - - - - - * * * - * long (ear) ← (ear) + 1 - - - - - * * * - - long (eam) ← (eam) + 1 - - - - - * * * - * long (ear) ← (ear) - 1 - - - - - * * * - - long (eam) ← (eam) - 1 - - - - - * * * - * LH AH I S T N Z V C RMW ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-5 比較命令 ( バイト・ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B オペレーション CMP A 1 1 0 0 byte (AH) - (AL) - - - - - * * * * - CMP A,ear 2 2 1 0 byte (A) - (ear) - - - - - * * * * - CMP A,eam 2+ 3+(a) 0 (b) byte (A) - (eam) - - - - - * * * * - CMP A,#imm8 2 2 0 0 byte (A) - imm8 - - - - - * * * * - CMPW A 1 1 0 0 word (AH) - (AL) - - - - - * * * * - CMPW A,ear 2 2 1 0 word (A) - (ear) - - - - - * * * * - CMPW A,eam 2+ 3+(a) 0 (c) word (A) - (eam) - - - - - * * * * - CMPW A,#imm16 3 2 0 0 word (A) - imm16 - - - - - * * * * - CMPL A,ear 2 6 2 0 long (A) - (ear) - - - - - * * * * - CMPL A,eam 2+ 7+(a) 0 (d) long (A) - (eam) - - - - - * * * * - CMPL A,#imm32 5 3 0 0 long (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 445 付録 表 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 を参照してください。 446 付録 B 命令 表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIV A 2 *1 0 0 word (AH) / byte (AL) 商 --> byte (AL) 余り→ byte (AH) Z - - - - - - * * - DIV A,ear 2 *2 1 0 word (A) / byte (ear) 商 --> byte (A) 余り→ byte (ear) Z - - - - - - * * - DIV A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) Z - - - - - - * * - DIVW A,ear 2 *4 1 0 long (A) / word (ear) 商 --> word (A) 余り→ word (ear) - - - - - - - * * - DIVW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MUL A 2 *8 MUL A,ear 2 *9 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MUL A,eam 2+ *10 MULW A 2 *11 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - MULW A,ear 2 - *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - MULW A,eam 2+ *13 0 (c) word (A) * word (eam) → Long (A) - - - - - - - - - - オペレーション *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 8 or 18 正常の場合 , 18 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 11 or 22 正常の場合 , 23 *3:ゼロディバイトの場合 , 5+(a) オーバフローの場合 12+(a) or 23+(a) 正常の場合 , 24+(a) *4:被除数が正 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 30 正常の場合 , 31 被除数が負 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 31 正常の場合 , 32 *5:被除数が正 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 12+(a) or 31+(a) 正常の場合 , 32+(a) 被除数が負 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 13+(a) or 32+(a) 正常の場合 , 33+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 結果が正の場合 , 12 結果が負の場合 , 13 *9:byte(ear) がゼロの場合 , 4 結果が正の場合 , 13 結果が負の場合 , 14 *10:byte(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 14+(a) 結果が負の場合 , 15+(a) *11:word(AH) がゼロの場合 , 3 結果が正の場合 , 16 結果が負の場合 , 19 *12:word(ear) がゼロの場合 , 4 結果が正の場合 , 17 結果が負の場合 , 20 *13:word(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 18+(a) 結果が負の場合 , 21+(a) ( 注意事項 ) ・ DIV, DIVW 命令でオーバフロー発生時の実行サイクル数に 2 種類ありますが , 演算前と演算後に検出する場合が あるためです。 DIV, DIVW 命令でオーバフロー発生時には , AL の内容は破壊されます。 ・ 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 447 付録 表 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 を参照してください。 448 付録 B 命令 表 B.8-9 論理 2 演算命令 ( ロングワード ) 6 命令 # ∼ RG B ANDL A,ear 2 6 2 0 ANDL A,eam 2+ 7+(a) 0 (d) ORL A,ear 2 6 2 0 long (A) ← (A) or (ear) - - - - - * * R - - ORL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) or (eam) - - - - - * * R - - long (A) ← (A) xor (ear) - - - - - * * R - - long (A) ← (A) xor (eam) - - - - - * * R - - LH AH I S T N Z V C RMW ニーモニック XORL A,ear 2 6 2 0 XORL A,eam 2+ 7+(a) 0 (d) LH AH I S T N Z V C RMW long (A) ← (A) and (ear) - - - - - * * R - - long (A) ← (A) and (eam) - - - - - * * R - - オペレーション ( 注意事項 ) 表中の (a), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-10 符号反転命令 ( バイト・ワード ) 6 命令 ニーモニック # ∼ RG B 1 2 0 0 byte (A) ← 0 - (A) X - - - - * * * * byte (ear) ← 0 - (ear) - - - - - * * * * - - - - - * * * * * - オペレーション NEG A - NEG ear 2 3 2 0 NEG eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 0 - (eam) - NEGW A 1 2 0 0 word (A) ← 0 - (A) - - - - - * * * * NEGW ear 2 3 2 0 word (ear) ← 0 - (ear) - - - - - * * * * - NEGW eam 2+ 5+(a) 0 2 × (c) word (eam) ← 0 - (eam) - - - - - * * * * * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-11 ノーマライズ命令 ( ロングワード ) 1 命令 ニーモニック NRML A,R0 # ∼ RG B オペレーション LH AH I S T N Z V C RMW 2 *1 1 0 long (A) ← 最初に "1" が立っていた所まで左 シフトする byte (R0) ← その場合のシフト回数 - - - - - - * - - - *1:アキュムレータがすべて "0" であった場合は , 4 "0" 以外であった場合は , 6+(R0) 449 付録 表 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 を参照してください。 450 - 付録 B 命令 表 B.8-13 分岐命令 1 31 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW BZ/BEQ rel 2 *1 0 0 (Z) = 1 の場合分岐 - - - - - - - - - - BNZ/BNE rel 2 *1 0 0 (Z) = 0 の場合分岐 - - - - - - - - - - BC/BLO rel 2 *1 0 0 (C) = 1 の場合分岐 - - - - - - - - - - BNC/BHS rel 2 *1 0 0 (C) = 0 の場合分岐 - - - - - - - - - - BN rel 2 *1 0 0 (N) = 1 の場合分岐 - - - - - - - - - - BP rel 2 *1 0 0 (N) = 0 の場合分岐 - - - - - - - - - - BV rel 2 *1 0 0 (V) = 1 の場合分岐 - - - - - - - - - - BNV rel 2 *1 0 0 (V) = 0 の場合分岐 - - - - - - - - - - BT rel 2 *1 0 0 (T) = 1 の場合分岐 - - - - - - - - - - BNT rel 2 *1 0 0 (T) = 0 の場合分岐 - - - - - - - - - - BLT rel 2 *1 0 0 (V) xor (N) = 1 の場合分岐 - - - - - - - - - - BGE rel 2 *1 0 0 (V) xor (N) = 0 の場合分岐 - - - - - - - - - - BLE rel 2 *1 0 0 ((V) xor (N)) or (Z) = 1 の場合分岐 - - - - - - - - - - BGT rel 2 *1 0 0 ((V) xor (N)) or (Z) = 0 の場合分岐 - - - - - - - - - - BLS rel 2 *1 0 0 (C) or (Z) = 1 の場合分岐 - - - - - - - - - - BHI rel 2 *1 0 0 (C) or (Z) = 0 の場合分岐 - - - - - - - - - - BRA rel 2 *1 0 0 無条件分岐 - - - - - - - - - - JMP @A 1 2 0 0 word (PC) ← (A) - - - - - - - - - - JMP addr16 3 3 0 0 word (PC) ← addr16 - - - - - - - - - - JMP @ear 2 3 1 0 word (PC) ← (ear) - - - - - - - - - - JMP @eam 2+ 4+(a) 0 (c) word (PC) ← (eam) - - - - - - - - - - JMPP @ear 注 1) 2 5 2 0 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - JMPP @eam 注 1) 2+ 6+(a) 0 (d) word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - JMPP addr24 4 4 0 0 CALL @ear 注 2) 2 6 1 (c) CALL @eam word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (PC) ← (ear) - - - - - - - - - - 2 × (c) word (PC) ← (eam) 注 2) 2+ 7+(a) 0 CALL addr16 注 3) 3 6 0 CALLV #vct4 注 3) 1 7 0 2 × (c) ベクタコール命令 CALLP @ear 注 4) 2 10 2 2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23 11+(a) 0 10 0 CALLP @eam 注 4) 2+ CALLP addr24 注 5) 4 (c) *2 word (PC) ← addr16 word (PC) ← (eam)0-15, (PCB) ← (eam)16-23 2 × (c) word (PC) ← addr0-15, (PCB) ← addr16-23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *1:分岐が行われる場合 , 4 行われない場合 , 3 *2:3 × (c)+(b) 注 1) 分岐先アドレスの読込み (word) 注 2) W:スタックへの退避 (word), R:分岐先アドレスの読込み (word) 注 3) スタックへの退避 (word) 注 4) W:スタックへの退避 (long), R:分岐先アドレスの読込み (long) 注 5) スタックへの退避 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 451 付録 表 B.8-14 分岐命令 2 19 命令 ニーモニック # ∼ RG B CBNE A,#imm8,rel 3 *1 0 0 byte (A) ≠ imm8 で分岐 - - - - - * * * * - CWBNE A,#imm16,rel 4 *1 0 0 word (A) ≠ imm16 で分岐 - - - - - * * * * - CBNE ear,#imm8,rel 4 *2 1 0 byte (ear) ≠ imm8 で分岐 - - - - - * * * * - CBNE eam,#imm8,rel 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - CWBNE eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - DBNZ ear,rel 3 *5 2 byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - DBNZ eam,rel 3+ *6 2 - - - - - * * * - * DWBNZ ear,rel 3 *5 2 DWBNZ eam,rel 3+ *6 2 0 オペレーション 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 0 LH AH I S T N Z V C RMW - - - - - * * * - - 2 × (c) word (eam) = (eam) - 1, (eam) ≠ 0 で分岐 - - - - - * * * - * word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 INT #vct8 2 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - INT addr16 3 16 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INTP addr24 4 17 0 6 × (c) ソフトウェア割込み - - R S - - - - - - 8 × (c) ソフトウェア割込み - - R S - - - - - - - * * * * * * * - INT9 1 20 0 RETI 1 *8 0 *7 割込みからの復帰 - 2 6 0 (c) 関数の入口で , 旧フレームポインタをスタッ クに保存し , 新フレームポインタの設定 , お よびローカルポインタの領域を確保する - - - - - - - - - - 1 5 0 (c) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - LINK #imm8 UNLINK RET RETP *1:分岐が行われる場合 , 5 行われない場合 , 4 *2:分岐が行われる場合 , 13 行われない場合 , 12 *3:分岐が行われる場合 , 7+(a) 行われない場合 , 6+(a) *4:分岐が行われる場合 , 8 行われない場合 , 7 *5:分岐が行われる場合 , 7 行われない場合 , 6 *6:分岐が行われる場合 , 8+(a) 行われない場合 , 7+(a) *7:次の割込み要求へ分岐する場合 , 3 × (b)+2 × (c) 今の割込みから復帰の場合 , 6 × (c) *8:次の割込みへ分岐する場合 , 15 今の割込みから復帰する場合 , 17 注 1) CBNE / CWBNE 命令では , RWj+ のアドレッシングモードは , 使用しないでください。 注 2) スタックからの復帰 (word) 注 3) スタックからの復帰 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 452 付録 B 命令 表 B.8-15 その他制御命令 ( バイト・ワード・ロングワード ) 28 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW PUSHW A 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (A) - - - - - - - - - - PUSHW AH 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (AH) - - - - - - - - - - PUSHW PS 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (PS) - - - - - - - - - - PUSHW rlst 2 *3 *5 *4 (SP) ← (SP) - 2n, ((SP)) ← (rlst) - - - - - - - - - - POPW A 1 3 0 (c) word (A) ← ((SP)), (SP) ← (SP) + 2 - * - - - - - - - - POPW AH 1 3 0 (c) word (AH) ← ((SP)), (SP) ← (SP) + 2 - - - - - - - - - - POPW PS 1 4 0 (c) word (PS) ← ((SP)), (SP) ← (SP) + 2 - - * * * * * * * - POPW rlst 2 *2 *5 *4 (rlst) ← ((SP)), (SP) ← (SP) + 2n - - - - - - - - - - JCTX @A 1 14 0 6 × (c) コンテキストスイッチ命令 - - * * * * * * * - AND CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) and imm8 - - * * * * * * * - OR CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) or imm8 - - * * * * * * * - MOV RP,#imm8 2 2 0 0 byte (RP) ← imm8 - - - - - - - - - - MOV ILM,#imm8 2 2 0 0 byte (ILM) ← imm8 - - - - - - - - - - MOVEA RWi,ear 2 3 1 0 word (RWi) ← ear - - - - - - - - - - MOVEA RWi,eam 2+ 2+(a) 1 0 word (RWi) ← eam - - - - - - - - - - MOVEA A,ear 2 1 0 0 word (A) ← ear - * - - - - - - - - MOVEA A,eam 2+ 1+(a) 0 0 word (A) ← eam - * - - - - - - - - ADDSP #imm8 2 3 0 0 word (SP) ← (SP) + ext(imm8) - - - - - - - - - - ADDSP #imm16 3 3 0 0 word (SP) ← (SP) + imm16 - - - - - - - - - - MOV A,brg1 2 *1 0 0 byte (A) ← (brg1) Z * - - - * * - - - MOV brg2,A 2 1 0 0 byte (brg2) ← (A) - - - - - * * - - - NOP 1 1 0 0 ノーオペレーション - - - - - - - - - - ADB 1 1 0 0 AD 空間アクセス用プリフィックス コード - - - - - - - - - - DTB 1 1 0 0 DT 空間アクセス用プリフィックス コード - - - - - - - - - - PCB 1 1 0 0 PC 空間アクセス用プリフィックス コード - - - - - - - - - - SPB 1 1 0 0 SP 空間アクセス用プリフィックス コード - - - - - - - - - - NCC 1 1 0 0 フラグ無変化用プリフィックスコー ド - - - - - - - - - - CMR 1 1 0 0 コモンレジスタバンク用プリフィッ クス - - - - - - - - - - *1:PCB,ADB,SSB,USB・・・・・・1 ステート DTB,DPR ・・・・・・・・・・2 ステート *2:7+3 × (POP する回数 )+2 × (POP する最後のレジスタ番号 ), RLST=0( 転送レジスタ無し ) の場合 7 *3:29+3 × (PUSH する回数 )-3 × (PUSH する最後のレジスタ番号 ), RLST=0 ( 転送レジスタ無し ) の場合 8 *4:(POP する回数 ) × (c), または (PUSH する回数 ) × (c) *5:(POP する回数 ), または (PUSH する回数 ) ( 注意事項 ) 表中の (a),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 453 付録 表 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 * - - - 454 付録 B 命令 表 B.8-18 ストリング命令 10 命令 # ∼ RG B MOVS / MOVSI 2 *2 *5 *3 MOVSD 2 *2 *5 *3 SCEQ / SCEQI 2 *1 *8 SCEQD 2 *1 *8 FILS / FILSI 2 6m+6 MOVSW / MOVSWI 2 *2 MOVSWD 2 *2 *5 SCWEQ / SCWEQI 2 *1 SCWEQD 2 *1 FILSW / FILSWI 2 6m+6 ニーモニック LH AH I S T N Z V C RMW byte 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - byte 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *4 byte 検索 @AH+ ← AL, カウンタ = RW0 - - - - - * * * * - *4 byte 検索 @AH- ← AL, カウンタ = RW0 - - - - - * * * * - *8 *3 byte 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - *5 *6 word 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - *6 word 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *8 *7 word 検索 @AH+ - AL, カウンタ = RW0 - - - - - * * * * - *8 *7 word 検索 @AH- - AL, カウンタ = RW0 - - - - - * * * * - *8 *6 word 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - オペレーション *1:RW0 が "0" の場合 , 5 カウントアウトの場合 , 4+7 × (RW0) 一致した場合 , 7n+5 *2:RW0 が "0" の場合 , 5 "0" 以外の場合 , 4+8 × (RW0) *3:(b) × (RW0)+(b) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (b) の項目 を算出してください。 *4:(b)+n *5:2 × (b) × (RW0) *6:(c) × (RW0)+(c) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (c) の項目 を算出してください。 *7:(c) × n *8:(b) × (RW0) ( 注意事項 ) ・ m:RW0 値 ( カウンタ値 ) n:ループした回数 ・ 表中の (b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 455 付録 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 に示します。 456 付録 B 命令 図 B.9-2 実際の命令コードと命令マップの対応 命令によっては ない場合もある 命令によって 長さが異なる 命令コード 第 1 バイト 第 2 バイト オペランド オペランド ・・・ [ 基本ページマップ ] XY +Z [ 拡張ページマップ ]* UV +W *:拡張ページマップとはビット操作系命令・文字列操作系命令・2 バイト系命令・ea 系 命令の総称で , 実際は各系列の命令ごとに複数存在します。 命令コードの例を表 B.9-1 に示します。 表 B.9-1 命令コードの例 第 1 バイト ( 基本ページマップより ) 第 2 バイト ( 拡張ページマップより ) NOP 00 + 0=00 ― AND A, #8 30 + 4=34 ― MOV A, ADB 60 + F=6F 00 + 0=00 @RW2+d8, #8, rel 70 + 0=70 F0 + 2=F2 命令 457 458 A SWAP ADDSP ADB SPB #8 CMP A, #8 A, #8 dir, A A, dir io, A A, io JMP BRA 60 @A rel MULU DIVU ea 系命令 その 2 B0 C0 D0 E0 ea 系命令 その 8 ea 系命令 その 7 #4 rel rel BNT BT BNV BV BP BN rel rel rel rel rel BNC/BHS rel BC/BLO BNZ/BNE rel BZ/BEQ F0 +F +E +D +C +B LSRW ASRW LSLW NEGW A A A A XORW ORW ANDW ANDW PUSHW POPW A, #16 A A A A PUSHW POPW rlst rlst XORW PUSHW POPW A, #16 PS PS MOVW RWi, ea 2 バイト XCHW RWi, ea 系命令 文字列操 XCH Ri, ea 作系命令 MOVW ea, RWi ビット操 MOV ea, Ri 作系命令 CMPW MOVL MOVW RETI A, #16 A, #32 addr16, A ORW PUSHW POPW A A, #16 AH AH A A ADDSP MULUW NOTW #16 A SWAPW ZEXTW EXTW CMPL CMPW A, #32 BHI BLS BGT BLE BGE BLT rel rel rel rel rel rel A MOVW MOVW RETP A, SP io, #16 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 MOVW MOVX RET A SP, A A, addr16 A, #8 A0 ADDW MOVW MOVW INT MOVW MOVW MOV A, MOVW ea 系命令 MOVW A, #16 A, dir A, io #vct8 A, RWi RWi, A RWi, #16 @RWi+d8 @RWi+d8,A その 9 NOT XOR A, #8 90 rel SUBL SUBW A, #32 A A A OR OR CCR, #8 80 MOV MOV MOV MOVX A, MOV CALL ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 その 1 70 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV 50 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 MOV MOV MOV 40 MOV MOV CBNE A, CWBNE A, MOVW MOVW INTP MOV +A RP, #8 ILM, #8 #8, rel #16, rel A, #16 A,addr16 addr24 Ri, ea +9 UNLINK A A A, #8 A, #8 SUBC SUB ADD 30 AND AND MOV MOV CALL ea 系命令 CCR, #8 A, #8 dir, #8 io, #8 addr16 その 5 CMP A A, dir A, dir ADDC SUB ADD 20 LINK ADDL ADDW #imm8 A, #32 ZEXT DTB @A EXT JCTX PCB A SUBDC ADDDC NEG NCC INT9 A CMR NOP 10 SUBW MOVW MOVW INT MOVEA A, #16 dir, A io, A addr16 RWi, ea +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 表 B.9-2 基本ページマップ +F +E +D +C +B +A +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 10 MOVB io:bp, A 20 30 CLRB io:bp 40 50 SETB io:bp 60 70 BBC io;bp, rel 80 90 BBS io:bp, rel A0 B0 MOVB MOVB A, MOVB MOVB CLRB CLRB SETB SETB BBC BBC BBS BBS A, dir:bp addr16:bp dir:bp, A addr16:bp,A dir:bp addr16:bp dir:bp addr16:bp dir:bp, rel addr16:bp,rel dir:bp, rel addr16:bp,rel MOVB A, io:bp 00 WBTS io:bp C0 D0 WBTC io:bp E0 SBBS addr16:bp F0 付録 B 命令 表 B.9-3 ビット操作系命令マップ ( 第 1 バイト =6CH) 459 460 MOVSI MOVSD PCB, PCB PCB, DTB PCB, ADB PCB, SPB DTB, PCB DTB, DTB DTB, ADB DTB, SPB ADB, PCB ADB, DTB ADB, ADB ADB, SPB SPB, PCB SPB, DTB SPB, ADB SPB, SPB +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 10 +0 00 MOVSWI 20 MOVSWD 30 40 50 60 70 90 A0 B0 C0 SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SCEQI SCEQD SCWEQI SCWEQD FILSI PCB PCB PCB PCB PCB 80 D0 FILSI SPB ADB DTB PCB E0 F0 付録 表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH) LSLW LSLL LSL MOVW MOVW A, R0 A, R0 A, R0 @RL2+d8, A A, @RL2+d8 MOVW MOVW NRML A, @A @AL, AH A, R0 ASRW ASRL ASR MOVW MOVW A, R0 A, R0 A, R0 @RL3+d8, A A, @RL3+d8 LSRW LSRL LSR A, R0 A, R0 A, R0 +D +E +F MOVW MOVW @RL1+d8, A A, @RL1+d8 MOVW MOVW @RL0+d8, A A, @RL0+d8 +C +B +A +9 +8 A MOV MOV MOVX MOV MOV A, PCB A, @A A, @RL3+d8 @RL3+d8, A A, @RL3+d8 +6 ROLC MOV MOV A, @A @AL, AH +5 A MOV MOV MOVX MOV MOV A, DPR DPR, A A, @RL2+d8 @RL2+d8, A A, @RL2+d8 +4 ROLC MOV MOV A, USB USB, A +3 +7 MOV MOV MOVX MOV MOV A, SSB SSB, A A, @RL1+d8 @RL1+d8, A A, @RL1+d8 +2 40 MOV MOV A, ADB ADB, A 30 +1 20 MOV MOV MOVX MOV MOV A, DTB DTB, A A, @RL0+d8 @RL0+d8, A A, @RL0+d8 10 +0 00 50 60 DIVU MULW MUL 70 A A A 80 90 A0 B0 C0 D0 E0 F0 付録 B 命令 表 B.9-5 2 バイト系命令マップ ( 第 1 バイト =6FH) 461 462 @PC+d16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 使用禁止 使用禁止 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3+ addr16 A,@RW3+ addr16 SUBL SUBL SUBL A, SUBL A, addr16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 @RW1+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 使用禁止 +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 +F 使用禁止 @RW0+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 使用禁止 +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDL A, @RW3, @RW3+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B ADDL 使用禁止 @RW2, @RW2+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ADDL ADDL A, SUBL SUBL A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A ADDL A, @RW1, @RW1+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ADDL ADDL A, SUBL SUBL A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDL @RW0+RW7 ,#8, rel 使用禁止 @RW0, @RW0+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ADDL ADDL A, SUBL SUBL A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 SUBL A, RW7, @RW7+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW7+d8 A, RL3 @RW7+d8 +7 SUBL RW6, @RW6+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW6+d8 A, RL3 @RW6+d8 +6 ADDL A, RW5, @RW5+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 ADDL ADDL A, SUBL SUBL A, A, RL2 @RW5+d8 A, RL2 @RW5+d8 +5 ADDL @RW3, @RW3+d16 #8, rel ,#8, rel RW4, @RW4+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 使用禁止 addr16, ,#8, rel @PC+d16, ,#8, rel @RW1+RW7 ,#8, rel @RW2, @RW2+d16 #8, rel ,#8, rel @RW1, @RW1+d16 #8, rel ,#8, rel @RW0, @RW0+d16 #8, rel ,#8, rel R7, @RW7+d8, #8, rel #8, rel R6, @RW6+d8, #8, rel #8, rel R5, @RW5+d8, #8, rel #8, rel R4, @RW4+d8, #8, rel #8, rel R3, @RW3+d8, #8, rel #8, rel R2, @RW2+d8, #8, rel #8, rel R1, @RW1+d8, #8, rel #8, rel ADDL ADDL A, SUBL SUBL A, A, RL2 @RW4+d8 A, RL2 @RW4+d8 CBNE↓ F0 R0, @RW0+d8, #8, rel #8, rel CBNE↓ E0 +4 D0 RW3, @RW3+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 C0 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW3+d8 A, RL1 @RW3+d8 B0 +3 A0 RW2, @RW2+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 90 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW2+d8 A, RL1 @RW2+d8 80 +2 70 RW1, @RW1+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 CWBNE↓ CWBNE↓ 60 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW1+d8 A, RL0 @RW1+d8 50 40 +1 30 +0 20 RW0, @RW0+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 10 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW0+d8 A, RL0 @RW0+d8 00 付録 表 B.9-6 ea 系命令 その 1 ( 第 1 バイト =70H) +F @@RW3+ JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+,A @PC+d16, A @RW2+, #8 @PC+d16, #8 A,@RW2+ @PC+d16 CALLP CALLP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+,A addr16, A @RW3+, #8 addr16, #8 A,@RW3+ addr16 JMPP JMPP CALLP @ +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+,A @RW1+RW7,A @RW1+, #8 @RW1+RW7,#8 A,@RW1+ @RW1+RW7 JMPP @ +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+,A @RW0+RW7,A @RW0+, #8 @RW0+RW7,#8 A,@RW0+ @RW0+RW7 CALLP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3,A @RW3+d16,A @RW3, #8 @RW3+d16,#8 A,@RW3 @RW3+d16 +B CALLP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2,A @RW2+d16,A @RW2, #8 @RW2+d16,#8 A,@RW2 @RW2+d16 +A JMPP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1,A @RW1+d16,A @RW1, #8 @RW1+d16,#8 A,@RW1 @RW1+d16 +9 JMPP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #8 @RW0+d16,#8 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW7+d8 @RL3 @@RW7+d8 RL3 @RW7+d8 RL3 @RW7+d8 A, RL3 @RW7+d8 RL3, A @RW7+d8,A R7, #8 @RW7+d8,#8 A, RW7 @RW7+d8 F0 +7 E0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW6+d8 @RL3 @@RW6+d8 RL3 @RW6+d8 RL3 @RW6+d8 A, RL3 @RW6+d8 RL3, A @RW6+d8,A R6, #8 @RW6+d8,#8 A, RW6 @RW6+d8 D0 +6 C0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW5+d8 @RL2 @@RW5+d8 RL2 @RW5+d8 RL2 @RW5+d8 A, RL2 @RW5+d8 RL2, A @RW5+d8,A R5, #8 @RW5+d8,#8 A, RW5 @RW5+d8 B0 +5 A0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW4+d8 @RL2 @@RW4+d8 RL2 @RW4+d8 RL2 @RW4+d8 A, RL2 @RW4+d8 RL2, A @RW4+d8,A R4, #8 @RW4+d8,#8 A, RW4 @RW4+d8 90 +4 80 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW3+d8 @RL1 @@RW3+d8 RL1 @RW3+d8 RL1 @RW3+d8 A, RL1 @RW3+d8 RL1, A @RW3+d8,A R3, #8 @RW3+d8,#8 A, RW3 @RW3+d8 70 +3 60 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW2+d8 @RL1 @@RW2+d8 RL1 @RW2+d8 RL1 @RW2+d8 A, RL1 @RW2+d8 RL1, A @RW2+d8,A R2, #8 @RW2+d8,#8 A, RW2 @RW2+d8 50 +2 40 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW1+d8 @RL0 @@RW1+d8 RL0 @RW1+d8 RL0 @RW1+d8 A, RL0 @RW1+d8 RL0, A @RW1+d8,A R1, #8 @RW1+d8,#8 A, RW1 @RW1+d8 30 +1 20 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW0+d8 @RL0 @@RW0+d8 RL0 @RW0+d8 RL0 @RW0+d8 A, RL0 @RW0+d8 RL0, A @RW0+d8,A R0, #8 @RW0+d8,#8 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-7 ea 系命令 その 2 ( 第 1 バイト =71H) 463 464 D0 E0 F0 MOVX MOVX A, XCH XCH A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MOVX MOVX A, XCH XCH A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A A,@RW3+ addr16 A,@RW3+ addr16 +D +E +F DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R7 @RW7+d8 A, R7 @RW7+d8 R7, A @RW7+d8,A A, R7 @RW7+d8 A, R7 @RW7+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R6 @RW6+d8 A, R6 @RW6+d8 R6, A @RW6+d8,A A, R6 @RW6+d8 A, R6 @RW6+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R5 @RW5+d8 A, R5 @RW5+d8 R5, A @RW5+d8,A A, R5 @RW5+d8 A, R5 @RW5+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R4 @RW4+d8 A, R4 @RW4+d8 R4, A @RW4+d8,A A, R4 @RW4+d8 A, R4 @RW4+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R3 @RW3+d8 A, R3 @RW3+d8 R3, A @RW3+d8,A A, R3 @RW3+d8 A, R3 @RW3+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R2 @RW2+d8 A, R2 @RW2+d8 R2, A @RW2+d8,A A, R2 @RW2+d8 A, R2 @RW2+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R1 @RW1+d8 A, R1 @RW1+d8 R1, A @RW1+d8,A A, R1 @RW1+d8 A, R1 @RW1+d8 +C INC DEC R7 @RW7+d8 C0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ROLC RORC RORC INC R7 @RW7+d8 R7 @RW7+d8 ROLC INC DEC R6 @RW6+d8 B0 +B ROLC RORC RORC INC R6 @RW6+d8 R6 @RW6+d8 ROLC INC DEC R5 @RW5+d8 A0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ROLC RORC RORC INC R5 @RW5+d8 R5 @RW5+d8 ROLC INC DEC R4 @RW4+d8 90 +A ROLC RORC RORC INC R4 @RW4+d8 R4 @RW4+d8 ROLC INC DEC R3 @RW3+d8 INC DEC R2 @RW2+d8 INC DEC R1 @RW1+d8 80 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R0 @RW0+d8 A, R0 @RW0+d8 R0, A @RW0+d8,A A, R0 @RW0+d8 A, R0 @RW0+d8 70 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ROLC RORC RORC INC R3 @RW3+d8 R3 @RW3+d8 ROLC 60 INC DEC R0 @RW0+d8 50 +9 ROLC RORC RORC INC R2 @RW2+d8 R2 @RW2+d8 ROLC 40 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, A @RW0+d16,A A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ROLC RORC RORC INC R1 @RW1+d8 R1 @RW1+d8 ROLC 30 ROLC RORC RORC INC R0 @RW0+d8 R0 @RW0+d8 20 ROLC 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 表 B.9-8 ea 系命令 その 3 ( 第 1 バイト =72H) +F @@RW3+ JMP INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2+ @@PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A @RW2+, #16 @PC+d16, #16 A,@RW2+ @PC+d16 CALL CALL JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A @RW3+, #16 addr16, #16 A,@RW3+ addr16 JMP JMP XCHW XCHW A, A,@RW1+ @RW1+RW7 +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALL @ MOVW MOVW @RW1+, #16 @RW1+RW7,#16 CALL INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A JMP @ JMP +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 XCHW XCHW A, A,@RW0+ @RW0+RW7 MOVW MOVW @RW0+, #16 @RW0+RW7,#16 INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A CALL @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, #16 @RW3+d16,#16 A,@RW3 @RW3+d16 +B CALL JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, #16 @RW2+d16,#16 A,@RW2 @RW2+d16 +A JMP @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, #16 @RW1+d16,#16 A,@RW1 @RW1+d16 +9 JMP JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #16 @RW0+d16,#16 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW7 @@RW7+d8 RW7 @@RW7+d8 RW7 @RW7+d8 RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, A @RW7+d8,A RW7, #16 @RW7+d8,#16 A, RW7 @RW7+d8 F0 +7 E0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW6 @@RW6+d8 RW6 @@RW6+d8 RW6 @RW6+d8 RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, A @RW6+d8,A RW6, #16 @RW6+d8,#16 A, RW6 @RW6+d8 D0 +6 C0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW5 @@RW5+d8 RW5 @@RW5+d8 RW5 @RW5+d8 RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, A @RW5+d8,A RW5, #16 @RW5+d8,#16 A, RW5 @RW5+d8 B0 +5 A0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW4 @@RW4+d8 RW4 @@RW4+d8 RW4 @RW4+d8 RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, A @RW4+d8,A RW4, #16 @RW4+d8,#16 A, RW4 @RW4+d8 90 +4 80 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW3 @@RW3+d8 RW3 @@RW3+d8 RW3 @RW3+d8 RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, A @RW3+d8,A RW3, #16 @RW3+d8,#16 A, RW3 @RW3+d8 70 +3 60 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2 @@RW2+d8 RW2 @@RW2+d8 RW2 @RW2+d8 RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, A @RW2+d8,A RW2, #16 @RW2+d8,#16 A, RW2 @RW2+d8 50 +2 40 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW1 @@RW1+d8 RW1 @@RW1+d8 RW1 @RW1+d8 RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, A @RW1+d8,A RW1, #16 @RW1+d8,#16 A, RW1 @RW1+d8 30 +1 20 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW0 @@RW0+d8 RW0 @@RW0+d8 RW0 @RW0+d8 RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, A @RW0+d8,A RW0, #16 @RW0+d8,#16 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-9 ea 系命令 その 4 ( 第 1 バイト =73H) 465 466 ADD ADD A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW0+ @RW0+RW7 @RW0+, r W0+RW7, r SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW1+ @RW1+RW7 @RW1+, r W1+RW7, r ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, r PC+d16, r ADD ADD SUB SUB ADDC ADDC CMP CMP AND AND OR OR XOR XOR DBNZ DBNZ A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 @RW3+, r addr16, r +E +F +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, SUB +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, r W3+d16, r +B A, SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, r W2+d16, r +A ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, r W1+d16, r +9 ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, r W0+d16, r ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 R7, r RW7+d8, r ADD F0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 R6, r RW6+d8, r E0 ADD D0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 R5, r RW5+d8, r C0 ADD B0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 R4, r RW4+d8, r A0 ADD 90 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 R3, r RW3+d8, r 80 ADD 70 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 R2, r RW2+d8, r 60 ADD 50 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 R1, r RW1+d8, r 40 ADD 30 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 R0, r RW0+d8, r 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H) NOT NOT @RW1+ @RW1+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A SUB SUB @RW2+, A @PC+d16,A SUB SUB @RW3+, A addr16, A ADD ADD @RW2+, A @PC+d16,A ADD ADD @RW3+, A addr16, A +D +E +F SUBC SUBC A, NEG NEG A, AND AND A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A OR OR @RW3+, A addr16, A XOR XOR @RW3+, A addr16, A NOT NOT @RW3+ addr16 OR OR XOR XOR NOT NOT @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 NOT NOT @RW0+ @RW0+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A +C SUBC SUBC A, NEG NEG A, AND AND A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A NOT NOT @RW3 @RW3+d16 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A NOT R7 @RW7+d8 NOT R6 @RW6+d8 NOT R5 @RW5+d8 NOT R4 @RW4+d8 +B XOR NOT R7, A @RW7+d8, A XOR NOT R6, A @RW6+d8, A XOR NOT R5, A @RW5+d8, A XOR NOT R4, A @RW4+d8, A NOT R3 @RW3+d8 NOT R2 @RW2+d8 NOT R1 @RW1+d8 NOT NOT @RW2 @RW2+d16 XOR NOT XOR NOT R3, A @RW3+d8, A XOR R2, A @RW2+d8,A XOR NOT R1, A @RW1+d8, A NOT R0 @RW0+d8 F0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A NEG A, AND AND OR OR R7 @RW7+d8 R7, A @RW7+d8, A R7, A @RW7+d8, A XOR XOR XOR XOR XOR XOR E0 XOR NOT R0, A @RW0+d8, A D0 +A ADD SUB SUB SUBC SUBC A, NEG R7, A @RW7+d8, A R7, A @RW7+d8, A A, R7 @RW7+d8 ADD NEG A, AND AND OR OR R6 @RW6+d8 R6, A @RW6+d8, A R6, A @RW6+d8, A NEG A, AND AND OR OR R5 @RW5+d8 R5, A @RW5+d8, A R5, A @RW5+d8, A NEG A, AND AND OR OR R4 @RW4+d8 R4, A @RW4+d8, A R4, A @RW4+d8, A NEG A, AND AND OR OR R3 @RW3+d8 R3, A @RW3+d8, A R3, A @RW3+d8, A NEG A, AND AND OR OR R2 @RW2+d8 R2, A @RW2+d8,A R2, A @RW2+d8,A NEG A, AND AND OR OR R1 @RW1+d8 R1, A @RW1+d8, A R1, A @RW1+d8, A XOR C0 NOT NOT @RW1 @RW1+d16 ADD SUB SUB SUBC SUBC A, NEG R6, A @RW6+d8, A R6, A @RW6+d8, A A, R6 @RW6+d8 ADD B0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A ADD SUB SUB SUBC SUBC A, NEG R5, A @RW5+d8, A R5, A @RW5+d8, A A, R5 @RW5+d8 ADD A0 +9 ADD SUB SUB SUBC SUBC A, NEG R4, A @RW4+d8, A R4, A @RW4+d8, A A, R4 @RW4+d8 ADD 90 NOT NOT @RW0 @RW0+d16 ADD SUB SUB SUBC SUBC A, NEG R3, A @RW3+d8, A R3, A @RW3+d8, A A, R3 @RW3+d8 ADD 80 NEG A, AND AND OR OR R0 @RW0+d8 R0, A @RW0+d8, A R0, A @RW0+d8, A 70 ADD ADD SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A ADD SUB SUB SUBC SUBC A, NEG R2, A @RW2+d8,A R2, A @RW2+d8,A A, R2 @RW2+d8 60 ADD 50 ADD SUB SUB SUBC SUBC A, NEG R1, A @RW1+d8, A R1, A @RW1+d8, A A, R1 @RW1+d8 40 ADD 30 ADD SUB SUB SUBC SUBC A, NEG R0, A @RW0+d8, A R0, A @RW0+d8, A A, R0 @RW0+d8 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-11 ea 系命令 その 6 ( 第 1 バイト =75H) 467 468 ADDW A, SUBW ADDW ADDCW +F CMPW CMPW A, ANDW ANDW A, ANDW A, ORW ORW ORW ORW A, A, ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, r @PC+d16,r ADDCW A, ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr16 A,@RW3+ addr 16 @RW3+, r addr16, r +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 SUBW A, ADDCW SUBW A, ANDW XORW XORW A, DWBNZ DWBNZ A,@RW1+ @RW1+RW7 @RW1+, r @RW1+RW7,r SUBW ADDW A, ADDW CMPW A, +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 CMPW XORW XORW A, DWBNZ DWBNZ A,@RW0+ @RW0+RW7 @RW0+, r @RW0+RW7,r ADDCW A, +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDCW XORW XORW A, DWBNZ DWBNZ A,@RW3 @RW3+d16 @RW3, r @RW3+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B SUBW A, XORW XORW A, DWBNZ DWBNZ A,@RW2 @RW2+d16 @RW2, r @RW2+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A SUBW XORW XORW A, DWBNZ DWBNZ A,@RW1 @RW1+d16 @RW1, r @RW1+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDW A, XORW XORW A, DWBNZ DWBNZ A,@RW0 @RW0+d16 @RW0, r @RW0+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 ADDW ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, r @RW7+d8,r F0 +7 E0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, r @RW6+d8,r D0 +6 C0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, r @RW5+d8,r B0 +5 A0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, r @RW4+d8,r 90 +4 80 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, r @RW3+d8,r 70 +3 60 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, r @RW2+d8,r 50 +2 40 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, r @RW1+d8,r 30 +1 20 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, r @RW0+d8,r 10 +0 00 付録 表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H) ORW ORW XORW XORW NOTW NOTW RW6, A @RW6+d8, A RW6, A @RW6+d8, A RW6 @RW6+d8 ORW ORW XORW XORW NOTW NOTW RW7, A @RW7+d8, A RW7, A @RW7+d8, A RW7 @RW7+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW6, A @RW6+d8, A RW6, A @RW6+d8, A A, RW6 @RW6+d8 RW6 @RW6+d8 RW6, A @RW6+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW7, A @RW7+d8, A RW7, A @RW7+d8, A A, RW7 @RW7+d8 RW7 @RW7+d8 RW7, A @RW7+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0 @RW0+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1 @RW1+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2 @RW2+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3 @RW3+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+ @RW0+RW7 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+ @RW1+RW7 SUBW SUBW @RW2+, A @PC+d16,A SUBW SUBW @RW3+, A addr16, A ADDW ADDW @RW2+, A @PC+d16,A ADDW ADDW @RW3+, A addr16, A +6 +7 +8 +9 +A +B +C +D +E +F SUBCW SUBCW A, NEGW NEGW ANDW ANDW A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A ORW ORW @RW3+, A addr16, A XORW XORW @RW3+, A addr16, A NOTW NOTW @RW3+ addr16 SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 ORW ORW XORW XORW NOTW NOTW RW5, A @RW5+d8, A RW5, A @RW5+d8, A RW5 @RW5+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW5, A @RW5+d8, A RW5, A @RW5+d8, A A, RW5 @RW5+d8 RW5 @RW5+d8 RW5, A @RW5+d8, A +5 F0 ORW ORW XORW XORW NOTW NOTW RW4, A @RW4+d8, A RW4, A @RW4+d8, A RW4 @RW4+d8 E0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW4, A @RW4+d8, A RW4, A @RW4+d8, A A, RW4 @RW4+d8 RW4 @RW4+d8 RW4, A @RW4+d8, A D0 +4 C0 ORW ORW XORW XORW NOTW NOTW RW3, A @RW3+d8, A RW3, A @RW3+d8, A RW3 @RW3+d8 B0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW3, A @RW3+d8, A RW3, A @RW3+d8, A A, RW3 @RW3+d8 RW3 @RW3+d8 RW3, A @RW3+d8, A A0 +3 90 ORW ORW XORW XORW NOTW NOTW RW2, A @RW2+d8, A RW2, A @RW2+d8, A RW2 @RW2+d8 80 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW2, A @RW2+d8, A RW2, A @RW2+d8, A A, RW2 @RW2+d8 RW2 @RW2+d8 RW2, A @RW2+d8, A 70 +2 60 ORW ORW XORW XORW NOTW NOTW RW1, A @RW1+d8, A RW1, A @RW1+d8, A RW1 @RW1+d8 50 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW1, A @RW1+d8, A RW1, A @RW1+d8, A A, RW1 @RW1+d8 RW1 @RW1+d8 RW1, A @RW1+d8, A 40 +1 30 ORW ORW XORW XORW NOTW NOTW RW0, A @RW0+d8, A RW0, A @RW0+d8, A RW0 @RW0+d8 20 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW0, A @RW0+d8, A RW0, A @RW0+d8, A A, RW0 @RW0+d8 RW0 @RW0+d8 RW0, A @RW0+d8, A 10 +0 00 付録 B 命令 表 B.9-13 ea 系命令 その 8 ( 第 1 バイト =77H) 469 470 A, MULU +F DIV DIV A, DIVW DIVW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 DIV DIV A, DIVW DIVW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 DIV DIV A, DIVW DIVW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 DIV DIV A, DIVW DIVW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 DIV DIV A, DIVW DIVW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, @RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ A, DIVW DIVW A, addr16 A,@RW3+ addr16 MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, MULUW @RW1+RW7 MULU @RW0+RW7 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULU +D A,@RW1+ MULU +C A,@RW0+ MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 MULU MULU A, MULUW MULUW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 MULU MULU A, MULUW MULUW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 DIV DIV A, DIVW DIVW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 F0 +7 E0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 D0 +6 C0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 B0 +5 A0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 90 +4 80 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 70 +3 60 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 50 +2 40 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 30 +1 20 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 10 +0 00 付録 表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H) MOVEA MOVEA RW1 RW1,RW2 ,@RW2+d8 MOVEA MOVEA RW1 RW1,RW3 ,@RW3+d8 MOVEA MOVEA RW1 RW1,RW4 ,@RW4+d8 MOVEA MOVEA RW1 RW1,RW5 ,@RW5+d8 MOVEA MOVEA RW1 RW1,RW6 ,@RW6+d8 MOVEA MOVEA RW1 RW1,RW7 ,@RW7+d8 MOVEA MOVEA RW1 RW1,@RW0 ,@RW0+d16 MOVEA MOVEA RW1 RW1,@RW1 ,@RW1+d16 MOVEA MOVEA RW1 RW1,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,@RW3 ,@RW3+d16 MOVEA MOVEA RW0 RW0,RW2 ,@RW2+d8 MOVEA MOVEA RW0 RW0,RW3 ,@RW3+d8 MOVEA MOVEA RW0 RW0,RW4 ,@RW4+d8 MOVEA MOVEA RW0 RW0,RW5 ,@RW5+d8 MOVEA MOVEA RW0 RW0,RW6 ,@RW6+d8 MOVEA MOVEA RW0 RW0,RW7 ,@RW7+d8 MOVEA MOVEA RW0 RW0,@RW0 ,@RW0+d16 MOVEA MOVEA RW0 RW0,@RW1 ,@RW1+d16 MOVEA RW0 MOVEA RW0 MOVEA MOVEA +2 +3 +4 +5 +6 +7 +8 +9 50 70 90 B0 C0 D0 E0 F0 MOVEA MOVEA RW4 RW4,@RW2+ ,@PC+d16 MOVEA MOVEA RW6,@RW3+ RW6, addr16 MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA RW0,@RW3+ RW0, addr16 RW1,@RW3+ RW1, addr16 RW2,@RW3+ RW2, addr16 RW3,@RW3+ RW3, addr16 RW4,@RW3+ RW4, addr16 RW5,@RW3+ RW5, addr16 MOVEA MOVEA RW3 RW3,@RW2+ ,@PC+d16 +F MOVEA MOVEA RW2 RW2,@RW2+ ,@PC+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2+ ,@PC+d16 RW6,@RW2+ ,@PC+d16 RW7,@RW2+ ,@PC+d16 MOVEA MOVEA RW1 RW1,@RW2+ ,@PC+d16 MOVEA MOVEA RW0 RW0,@RW2+ ,@PC+d16 +E MOVEA MOVEA RW7@RW3+ RW7, addr16 MOVEA MOVEA RW7 RW7,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW1+ ,@RW1+RW7 RW6,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW1+ ,@RW1+RW7 RW1,@RW1+ ,@RW1+RW7 RW2,@RW1+ ,@RW1+RW7 RW3,@RW1+ ,@RW1+RW7 RW4,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW7 RW7,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW3 ,@RW3+d16 RW6,@RW3 ,@RW3+d16 RW7,@RW3 ,@RW3+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2 ,@RW2+d16 RW6,@RW2 ,@RW2+d16 RW7,@RW2 ,@RW2+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW1 ,@RW1+d16 RW6,@RW1 ,@RW1+d16 RW7,@RW1 ,@RW1+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW0 ,@RW0+d16 RW6,@RW0 ,@RW0+d16 RW7,@RW0 ,@RW0+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW7 ,@RW7+d8 RW6,RW7 ,@RW7+d8 RW7,RW7 ,@RW7+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW6 ,@RW6+d8 RW6,RW6 ,@RW6+d8 RW7,RW6 ,@RW6+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW5 ,@RW5+d8 RW6,RW5 ,@RW5+d8 RW7,RW5 ,@RW5+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW4 ,@RW4+d8 RW6,RW4 ,@RW4+d8 RW7,RW4 ,@RW4+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW3 ,@RW3+d8 RW6,RW3 ,@RW3+d8 RW7,RW3 ,@RW3+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW2 ,@RW2+d8 RW6,RW2 ,@RW2+d8 RW7,RW2 ,@RW2+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW1 ,@RW1+d8 RW6,RW1 ,@RW1+d8 RW7,RW1 ,@RW1+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW0 ,@RW0+d8 RW6,RW0 ,@RW0+d8 RW7,RW0 ,@RW0+d8 A0 +D MOVEA MOVEA RW4 RW4,@RW3 ,@RW3+d16 MOVEA MOVEA RW4 RW4,@RW2 ,@RW2+d16 MOVEA MOVEA RW4 RW4,@RW1 ,@RW1+d16 MOVEA MOVEA RW4 RW4,@RW0 ,@RW0+d16 MOVEA MOVEA RW4 RW4,RW7 ,@RW7+d8 MOVEA MOVEA RW4 RW4,RW6 ,@RW6+d8 MOVEA MOVEA RW4 RW4,RW5 ,@RW5+d8 MOVEA MOVEA RW4 RW4,RW4 ,@RW4+d8 MOVEA MOVEA RW4 RW4,RW3 ,@RW3+d8 MOVEA MOVEA RW4 RW4,RW2 ,@RW2+d8 MOVEA MOVEA RW4 RW4,RW1 ,@RW1+d8 MOVEA MOVEA RW4 RW4,RW0 ,@RW0+d8 80 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW0+ ,@RW0+RW7 RW6,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW3 RW3,@RW3 ,@RW3+d16 MOVEA MOVEA RW3 RW3,@RW2 ,@RW2+d16 MOVEA MOVEA RW3 RW3,@RW1 ,@RW1+d16 MOVEA MOVEA RW3 RW3,@RW0 ,@RW0+d16 MOVEA MOVEA RW3 RW3,RW7 ,@RW7+d8 MOVEA MOVEA RW3 RW3,RW6 ,@RW6+d8 MOVEA MOVEA RW3 RW3,RW5 ,@RW5+d8 MOVEA MOVEA RW3 RW3,RW4 ,@RW4+d8 MOVEA MOVEA RW3 RW3,RW3 ,@RW3+d8 MOVEA MOVEA RW3 RW3,RW2 ,@RW2+d8 MOVEA MOVEA RW3 RW3,RW1 ,@RW1+d8 MOVEA MOVEA RW3 RW3,RW0 ,@RW0+d8 60 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW0+ ,@RW0+RW7 RW1,@RW0+ ,@RW0+RW7 RW2,@RW0+ ,@RW0+RW7 RW3,@RW0+ ,@RW0+RW7 RW4,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW2 RW2,@RW3 ,@RW3+d16 MOVEA MOVEA RW2 RW2,@RW2 ,@RW2+d16 MOVEA MOVEA RW2 RW2,@RW1 ,@RW1+d16 MOVEA MOVEA RW2 RW2,@RW0 ,@RW0+d16 MOVEA MOVEA RW2 RW2,RW7 ,@RW7+d8 MOVEA MOVEA RW2 RW2,RW6 ,@RW6+d8 MOVEA MOVEA RW2 RW2,RW5 ,@RW5+d8 MOVEA MOVEA RW2 RW2,RW4 ,@RW4+d8 MOVEA MOVEA RW2 RW2,RW3 ,@RW3+d8 MOVEA MOVEA RW2 RW2,RW2 ,@RW2+d8 MOVEA MOVEA RW2 RW2,RW1 ,@RW1+d8 MOVEA MOVEA RW2 RW2,RW0 ,@RW0+d8 40 +C +B RW0,@RW3 ,@RW3+d16 +A RW0,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,RW1 ,@RW1+d8 MOVEA MOVEA RW0 RW0,RW1 ,@RW1+d8 +1 30 MOVEA MOVEA RW1 RW1,RW0 ,@RW0+d8 20 MOVEA MOVEA RW0 RW0,RW0 ,@RW0+d8 10 +0 00 付録 B 命令 表 B.9-15 MOVEA RWi, ea 命令 ( 第 1 バイト =79H) 471 472 MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 +C +D +E +F +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 MOV +A R0,@RW2 @RW2+d16 R1,@RW2 @RW2+d16 R2,@RW2 @RW2+d16 R3,@RW2 @RW2+d16 R4,@RW2 @RW2+d16 R5,@RW2 @RW2+d16 R6,@RW2 @RW2+d16 R7,@RW2 @RW2+d16 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 MOV R0, MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 表 B.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH) MOVW MOVW RW2, RW2,@RW0 @RW0+d16 MOVW MOVW RW2, RW2,@RW1 @RW1+d16 MOVW MOVW RW2, RW2,@RW2 @RW2+d16 MOVW MOVW RW2, RW2,@RW3 @RW3+d16 MOVW MOVW RW1, RW1, RW6 @RW6+d8 MOVW MOVW RW1, RW1, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 MOVW MOVW MOVW MOVW RW1, MOVW MOVW RW2, MOVW MOVW RW3, MOVW MOVW RW4, MOVW MOVW RW5, MOVW MOVW RW6, MOVW MOVW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 MOVW MOVW RW1, @RW3+ RW1, addr16 MOVW MOVW RW0, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 MOVW MOVW RW1, RW1, @RW2+ @PC+d16 MOVW MOVW RW0, RW6 @RW6+d8 MOVW RW0, @RW1+ MOVW MOVW RW0, @RW2+ @PC+d16 MOVW MOVW RW0, @RW3+ RW0, addr16 +6 +7 +8 +9 +A +B +C +D +E +F MOVW MOVW @RW1+RW7 RW1, @RW1+ MOVW MOVW RW2, RW2, RW7 @RW7+d8 MOVW MOVW RW1, RW1, RW5 @RW5+d8 MOVW MOVW RW0, RW5 @RW5+d8 +5 MOVW MOVW RW2, @RW3+ RW2, addr16 MOVW MOVW RW3, @RW3+ RW3, addr16 MOVW MOVW RW3, RW3, @RW2+ @PC+d16 MOVW MOVW RW4, @RW3+ RW4, addr16 MOVW MOVW RW4, RW4, @RW2+ @PC+d16 MOVW MOVW RW5, @RW3+ RW5, addr16 MOVW MOVW RW5, @RW2+ @PC+d16 MOVW MOVW RW6, @RW3+ RW6, addr16 MOVW MOVW RW6, RW6, @RW2+ @PC+d16 MOVW MOVW RW7, @RW3+ RW7, addr16 MOVW MOVW RW7, RW7, @RW2+ @PC+d16 MOVW RW7, @RW1+RW7 MOVW MOVW RW7, RW7,@RW3 @RW3+d16 MOVW MOVW RW7, RW7,@RW2 @RW2+d16 MOVW MOVW RW7, RW7,@RW1 @RW1+d16 MOVW MOVW RW7, RW7,@RW0 @RW0+d16 MOVW MOVW RW7, RW7, RW7 @RW7+d8 MOVW MOVW RW7, RW7, RW6 @RW6+d8 MOVW MOVW RW7, RW7, RW5 @RW5+d8 MOVW MOVW RW7, RW7, RW4 @RW4+d8 MOVW MOVW RW7, RW7, RW3 @RW3+d8 MOVW RW6, MOVW @RW1+RW7 RW7, @RW1+ MOVW MOVW RW6, RW6,@RW3 @RW3+d16 MOVW MOVW RW6, RW6,@RW2 @RW2+d16 MOVW MOVW RW6, RW6,@RW1 @RW1+d16 MOVW MOVW RW6, RW6,@RW0 @RW0+d16 MOVW MOVW RW6, RW6, RW7 @RW7+d8 MOVW MOVW RW6, RW6, RW6 @RW6+d8 MOVW MOVW RW6, RW6, RW5 @RW5+d8 MOVW MOVW RW6, RW6, RW4 @RW4+d8 MOVW MOVW RW6, RW6, RW3 @RW3+d8 MOVW MOVW @RW1+RW7 RW6, @RW1+ MOVW MOVW RW5, RW5,@RW3 @RW3+d16 MOVW MOVW RW5, RW5,@RW2 @RW2+d16 MOVW MOVW RW5, RW5,@RW1 @RW1+d16 MOVW MOVW RW5, RW5,@RW0 @RW0+d16 MOVW MOVW RW5, RW5, RW7 @RW7+d8 MOVW MOVW RW5, RW5, RW6 @RW6+d8 MOVW MOVW RW5, RW5, RW5 @RW5+d8 MOVW MOVW RW5, RW5, RW4 @RW4+d8 MOVW RW4, MOVW @RW1+RW7 RW5, @RW1+ MOVW MOVW RW4, RW4,@RW3 @RW3+d16 MOVW MOVW RW4, RW4,@RW2 @RW2+d16 MOVW MOVW RW4, RW4,@RW1 @RW1+d16 MOVW MOVW RW4, RW4,@RW0 @RW0+d16 MOVW MOVW RW4, RW4, RW7 @RW7+d8 MOVW MOVW RW4, RW4, RW6 @RW6+d8 MOVW MOVW RW4, RW4, RW5 @RW5+d8 MOVW MOVW RW4, RW4, RW4 @RW4+d8 MOVW RW3, MOVW @RW1+RW7 RW4, @RW1+ MOVW MOVW RW3, RW3,@RW3 @RW3+d16 MOVW MOVW RW3, RW3,@RW2 @RW2+d16 MOVW MOVW RW3, RW3,@RW1 @RW1+d16 MOVW MOVW RW3, RW3,@RW0 @RW0+d16 MOVW MOVW RW3, RW3, RW7 @RW7+d8 MOVW MOVW RW3, RW3, RW6 @RW6+d8 MOVW MOVW RW3, RW3, RW5 @RW5+d8 MOVW MOVW RW3, RW3, RW4 @RW4+d8 MOVW RW2, MOVW @RW1+RW7 RW3, @RW1+ MOVW MOVW RW2, RW2, @RW2+ @PC+d16 MOVW RW1, MOVW @RW1+RW7 RW2, @RW1+ MOVW MOVW RW2, RW2, RW6 @RW6+d8 MOVW MOVW RW2, RW2, RW5 @RW5+d8 MOVW MOVW RW2, RW2, RW4 @RW4+d8 MOVW MOVW RW5, RW5, RW3 @RW3+d8 MOVW MOVW RW7, RW7, RW2 @RW2+d8 MOVW MOVW RW7, RW7, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW4 @RW4+d8 MOVW MOVW RW4, RW4, RW3 @RW3+d8 MOVW MOVW RW6, RW6, RW2 @RW2+d8 MOVW MOVW RW6, RW6, RW1 @RW1+d8 MOVW MOVW RW0, RW4 @RW4+d8 MOVW MOVW RW3, RW3, RW3 @RW3+d8 MOVW MOVW RW5, RW5, RW2 @RW2+d8 MOVW MOVW RW5, RW5, RW1 @RW1+d8 +4 MOVW MOVW RW2, RW2, RW3 @RW3+d8 MOVW MOVW RW4, RW4, RW2 @RW2+d8 MOVW MOVW RW4, RW4, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW3 @RW3+d8 MOVW MOVW RW3, RW3, RW2 @RW2+d8 MOVW MOVW RW3, RW3, RW1 @RW1+d8 MOVW MOVW RW0, RW3 @RW3+d8 MOVW MOVW RW2, RW2, RW2 @RW2+d8 MOVW MOVW RW2, RW2, RW1 @RW1+d8 +3 F0 MOVW MOVW RW7, RW7, RW0 @RW0+d8 E0 MOVW MOVW RW1, RW1, RW2 @RW2+d8 D0 MOVW MOVW RW6, RW6, RW0 @RW0+d8 C0 MOVW MOVW RW0, RW2 @RW2+d8 B0 MOVW MOVW RW5, RW5, RW0 @RW0+d8 A0 +2 90 MOVW MOVW RW4, RW4, RW0 @RW0+d8 80 MOVW MOVW RW1, RW1, RW1 @RW1+d8 70 MOVW MOVW RW3, RW3, RW0 @RW0+d8 60 MOVW MOVW RW0, RW1 @RW1+d8 50 MOVW MOVW RW2, RW2, RW0 @RW0+d8 40 +1 30 MOVW MOVW RW1, RW1, RW0 @RW0+d8 20 MOVW MOVW RW0, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-17 MOVW RWi, ea 命令 ( 第 1 バイト =7BH) 473 474 +F +E +D +C +B +A +9 +8 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3, R1 @RW3+d16, R1 MOV @RW2, R1 @RW2+d16, R1 MOV @RW1, R1 @RW1+d16, R1 MOV @RW0, R1 @RW0+d16, R1 MOV MOV MOV MOV MOV MOV MOV @RW3, R2 @RW3+d16, R2 MOV @RW2, R2 @RW2+d16, R2 MOV @RW1, R2 @RW1+d16, R2 MOV @RW0, R2 @RW0+d16, R2 MOV MOV MOV MOV MOV MOV MOV @RW3, R3 @RW3+d16, R3 MOV @RW2, R3 @RW2+d16, R3 MOV @RW1, R3 @RW1+d16, R3 MOV @RW0, R3 @RW0+d16, R3 MOV MOV MOV MOV MOV MOV MOV @RW3, R4 @RW3+d16, R4 MOV @RW2, R4 @RW2+d16, R4 MOV @RW1, R4 @RW1+d16, R4 MOV @RW0, R4 @RW0+d16, R4 MOV MOV MOV MOV MOV MOV MOV @RW3, R5 @RW3+d16, R5 MOV @RW2, R5 @RW2+d16, R5 MOV @RW1, R5 @RW1+d16, R5 MOV @RW0, R5 @RW0+d16, R5 MOV MOV MOV MOV MOV MOV MOV @RW3, R6 @RW3+d16, R6 MOV @RW2, R6 @RW2+d16, R6 MOV @RW1, R6 @RW1+d16, R6 MOV @RW0, R6 @RW0+d16, R6 MOV MOV MOV MOV MOV MOV MOV @RW3, R7 @RW3+d16, R7 MOV @RW2, R7 @RW2+d16, R7 MOV @RW1, R7 @RW1+d16, R7 MOV @RW0, R7 @RW0+d16, R7 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3+, R0 addr16, R0 MOV @RW3+, R1 addr16, R1 MOV MOV MOV MOV MOV @RW2+, R1 @PC+d16, R1 MOV @RW2+, R0 @PC+d16, R0 MOV MOV MOV @RW3+, R2 addr16, R2 MOV @RW2+, R2 @PC+d16, R2 MOV MOV MOV @RW3+, R3 addr16, R3 MOV @RW2+, R3 @PC+d16, R3 MOV MOV MOV @RW3+, R4 addr16, R4 MOV @RW2+, R4 @PC+d16, R4 MOV MOV MOV @RW3+, R5 addr16, R5 MOV @RW2+, R5 @PC+d16, R5 MOV MOV MOV @RW3+, R6 addr16, R6 MOV @RW2+, R6 @PC+d16, R6 MOV MOV MOV @RW3+, R7 addr16, R7 MOV @RW2+, R7 @PC+d16, R7 MOV @RW1+, R0 @RW1+RW7, R0 @RW1+, R1 @RW1+RW7, R1 @RW1+, R2 @RW1+RW7, R2 @RW1+, R3 @RW1+RW7, R3 @RW1+, R4 @RW1+RW7, R4 @RW1+, R5 @RW1+RW7, R5 @RW1+, R6 @RW1+RW7, R6 @RW1+, R7 @RW1+RW7, R7 MOV @RW0+, R0 @RW0+RW7, R0 @RW0+, R1 @RW0+RW7, R1 @RW0+, R2 @RW0+RW7, R2 @RW0+, R3 @RW0+RW7, R3 @RW0+, R4 @RW0+RW7, R4 @RW0+, R5 @RW0+RW7, R5 @RW0+, R6 @RW0+RW7, R6 @RW0+, R7 @RW0+RW7, R7 MOV @RW3, R0 @RW3+d16, R0 MOV @RW2, R0 @RW2+d16, R0 MOV @RW1, R0 @RW1+d16, R0 MOV @RW0, R0 @RW0+d16, R0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R7, R0 @RW7+d8, R0 R7, R1 @RW7+d8, R1 R7, R2 @RW7+d8, R2 R7, R3 @RW7+d8, R3 R7, R4 @RW7+d8, R4 R7, R5 @RW7+d8, R5 R7, R6 @RW7+d8, R6 R7, R7 @RW7+d8, R7 F0 +7 E0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R6, R0 @RW6+d8, R0 R6, R1 @RW6+d8, R1 R6, R2 @RW6+d8, R2 R6, R3 @RW6+d8, R3 R6, R4 @RW6+d8, R4 R6, R5 @RW6+d8, R5 R6, R6 @RW6+d8, R6 R6, R7 @RW6+d8, R7 D0 +6 C0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R5, R0 @RW5+d8, R0 R5, R1 @RW5+d8, R1 R5, R2 @RW5+d8, R2 R5, R3 @RW5+d8, R3 R5, R4 @RW5+d8, R4 R5, R5 @RW5+d8, R5 R5, R6 @RW5+d8, R6 R5, R7 @RW5+d8, R7 B0 +5 A0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R4, R0 @RW4+d8, R0 R4, R1 @RW4+d8, R1 R4, R2 @RW4+d8, R2 R4, R3 @RW4+d8, R3 R4, R4 @RW4+d8, R4 R4, R5 @RW4+d8, R5 R4, R6 @RW4+d8, R6 R4, R7 @RW4+d8, R7 90 +4 80 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R3, R0 @RW3+d8, R0 R3, R1 @RW3+d8, R1 R3, R2 @RW3+d8, R2 R3, R3 @RW3+d8, R3 R3, R4 @RW3+d8, R4 R3, R5 @RW3+d8, R5 R3, R6 @RW3+d8, R6 R3, R7 @RW3+d8, R7 70 +3 60 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R2, R0 @RW2+d8, R0 R2, R1 @RW2+d8, R1 R2, R2 @RW2+d8, R2 R2, R3 @RW2+d8, R3 R2, R4 @RW2+d8, R4 R2, R5 @RW2+d8, R5 R2, R6 @RW2+d8, R6 R2, R7 @RW2+d8, R7 50 +2 40 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R1, R0 @RW1+d8, R0 R1, R1 @RW1+d8, R1 R1, R2 @RW1+d8, R2 R1, R3 @RW1+d8, R3 R1, R4 @RW1+d8, R4 R1, R5 @RW1+d8, R5 R1, R6 @RW1+d8, R6 R1, R7 @RW1+d8, R7 30 +1 20 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R0, R0 @RW0+d8, R0 R0, R1 @RW0+d8, R1 R0, R2 @RW0+d8, R2 R0, R3 @RW0+d8, R3 R0, R4 @RW0+d8, R4 R0, R5 @RW0+d8, R5 R0, R6 @RW0+d8, R6 R0, R7 @RW0+d8, R7 10 +0 00 付録 表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH) MOVW MOVW@RW2 @RW2, RW1 +d16, RW1 MOVW MOVW@RW3 @RW3, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0+, RW1 +RW7,RW1 MOVW MOVW@RW1 @RW1+, RW1 +RW7,RW1 MOVW MOVW@PC @RW2+, RW1 +d16, RW1 MOVW MOVW @RW3+, RW1 addr16, RW1 MOVW MOVW@RW2 @RW2, RW0 +d16, RW0 MOVW MOVW@RW3 @RW3, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0+, RW0 +RW7,RW0 MOVW MOVW@RW1 @RW1+, RW0 +RW7,RW0 MOVW MOVW@PC @RW2+, RW0 +d16, RW0 MOVW MOVW @RW3+, RW0 addr16, RW0 +B +C +D +E +F MOVW MOVW @RW3+, RW2 addr16, RW2 MOVW MOVW@PC @RW2+, RW2 +d16, RW2 MOVW MOVW@RW1 @RW1+, RW2 +RW7,RW2 MOVW MOVW@RW0 @RW0+, RW2 +RW7,RW2 MOVW MOVW@RW3 @RW3, RW2 +d16, RW2 MOVW MOVW@RW2 @RW2, RW2 +d16, RW2 MOVW MOVW @RW3+, RW3 addr16, RW3 MOVW MOVW@PC @RW2+, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1+, RW3 -+RW7,RW3 MOVW MOVW@RW0 @RW0+, RW3 +RW7,RW3 MOVW MOVW@RW3 @RW3, RW3 +d16, RW3 MOVW MOVW@RW2 @RW2, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1, RW3 +d16, RW3 MOVW MOVW @RW3+, RW4 addr16, RW4 MOVW MOVW@PC @RW2+, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1+, RW4 +RW7,RW4 MOVW MOVW@RW0 @RW0+, RW4 +RW7,RW4 MOVW MOVW@RW3 @RW3, RW4 +d16, RW4 MOVW MOVW@RW2 @RW2, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1, RW4 +d16, RW4 MOVW MOVW @RW3+, RW5 addr16, RW5 MOVW MOVW@PC @RW2+, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1+, RW5 +RW7,RW5 MOVW MOVW@RW0 @RW0+, RW5 +RW7,RW5 MOVW MOVW@RW3 @RW3, RW5 +d16, RW5 MOVW MOVW@RW2 @RW2, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW5 +d16, RW5 MOVW MOVW @RW3+, RW6 addr16, RW6 MOVW MOVW @PC @RW2+, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1+, RW6 +RW7,RW6 MOVW MOVW@RW0 @RW0+, RW6 +RW7,RW6 MOVW MOVW@RW3 @RW3, RW6 +d16, RW6 MOVW MOVW@RW2 @RW2, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW6 +d16, RW6 MOVW MOVW @RW3+, RW7 addr16, RW7 MOVW MOVW@PC @RW2+, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1+, RW7 +RW7,RW7 MOVW MOVW@RW0 @RW0+, RW7 +RW7,RW7 MOVW MOVW@RW3 @RW3, RW7 +d16, RW7 MOVW MOVW@RW2 @RW2, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1, RW7 +d16, RW7 MOVW MOVW@RW0 @RW0, RW7 +d16, RW7 +A MOVW MOVW@RW1 @RW1, RW2 +d16, RW2 MOVW MOVW@RW0 @RW0, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0, RW4 +d16, RW4 +9 MOVW MOVW@RW0 @RW0, RW3 +d16, RW3 MOVW MOVW@RW0 @RW0, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW0 +d16, RW0 +8 MOVW MOVW@RW0 @RW0, RW2 +d16, RW2 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW7, RW0 @RW7+d8, RW0 RW7, RW1 @RW7+d8, RW1 RW7, RW2 @RW7+d8, RW2 RW7, RW3 @RW7+d8, RW3 RW7, RW4 @RW7+d8, RW4 RW7, RW5 @RW7+d8, RW5 RW7, RW6 @RW7+d8, RW6 RW7, RW7 @RW7+d8, RW7 F0 +7 E0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW6, RW0 @RW6+d8, RW0 RW6, RW1 @RW6+d8, RW1 RW6, RW2 @RW6+d8, RW2 RW6, RW3 @RW6+d8, RW3 RW6, RW4 @RW6+d8, RW4 RW6, RW5 @RW6+d8, RW5 RW6, RW6 @RW6+d8, RW6 RW6, RW7 @RW6+d8, RW7 D0 +6 C0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW5, RW0 @RW5+d8, RW0 RW5, RW1 @RW5+d8, RW1 RW5, RW2 @RW5+d8, RW2 RW5, RW3 @RW5+d8, RW3 RW5, RW4 @RW5+d8, RW4 RW5, RW5 @RW5+d8, RW5 RW5, RW6 @RW5+d8, RW6 RW5, RW7 @RW5+d8, RW7 B0 +5 A0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW4, RW0 @RW4+d8, RW0 RW4, RW1 @RW4+d8, RW1 RW4, RW2 @RW4+d8, RW2 RW4, RW3 @RW4+d8, RW3 RW4, RW4 @RW4+d8, RW4 RW4, RW5 @RW4+d8, RW5 RW4, RW6 @RW4+d8, RW6 RW4, RW7 @RW4+d8, RW7 90 +4 80 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW3, RW0 @RW3+d8, RW0 RW3, RW1 @RW3+d8, RW1 RW3, RW2 @RW3+d8, RW2 RW3, RW3 @RW3+d8, RW3 RW3, RW4 @RW3+d8, RW4 RW3, RW5 @RW3+d8, RW5 RW3, RW6 @RW3+d8, RW6 RW3, RW7 @RW3+d8, RW7 70 +3 60 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW2, RW0 @RW2+d8, RW0 RW2, RW1 @RW2+d8, RW1 RW2, RW2 @RW2+d8, RW2 RW2, RW3 @RW2+d8, RW3 RW2, RW4 @RW2+d8, RW4 RW2, RW5 @RW2+d8, RW5 RW2, RW6 @RW2+d8, RW6 RW2, RW7 @RW2+d8, RW7 50 +2 40 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW1, RW0 @RW1+d8, RW0 RW1, RW1 @RW1+d8, RW1 RW1, RW2 @RW1+d8, RW2 RW1, RW3 @RW1+d8, RW3 RW1, RW4 @RW1+d8, RW4 RW1, RW5 @RW1+d8, RW5 RW1, RW6 @RW1+d8, RW6 RW1, RW7 @RW1+d8, RW7 30 +1 20 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW0, RW0 @RW0+d8, RW0 RW0, RW1 @RW0+d8, RW1 RW0, RW2 @RW0+d8, RW2 RW0, RW3 @RW0+d8, RW3 RW0, RW4 @RW0+d8, RW4 RW0, RW5 @RW0+d8, RW5 RW0, RW6 @RW0+d8, RW6 RW0, RW7 @RW0+d8, RW7 10 +0 00 付録 B 命令 表 B.9-19 MOVW RWi, ea 命令 ( 第 1 バイト =7DH) 475 476 XCH XCH XCH XCH R1, XCH XCH R1, R1,@RW2 W2+d16, A XCH XCH R2, XCH XCH R2, R2,@RW2 W2+d16, A XCH XCH R3, XCH XCH R3, R3,@RW2 W2+d16, A XCH XCH R4, XCH XCH R4, R4,@RW2 W2+d16, A XCH XCH R5, XCH XCH R5, R5,@RW2 W2+d16, A XCH XCH R6, XCH XCH R6, R6,@RW2 W2+d16, A XCH XCH R7, XCH XCH R7, R7,@RW2 W2+d16, A XCH XCH XCH XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, +F R0,@RW3+ R0, addr16 XCH XCH R1,@RW3+ R1, addr16 XCH XCH R2,@RW3+ R2, addr16 XCH XCH R3,@RW3+ R3, addr16 XCH XCH R4,@RW3+ R4, addr16 XCH XCH R5,@RW3+ R5, addr16 XCH XCH R6,@RW3+ R6, addr16 XCH XCH R7,@RW3+ R7, addr16 +E R0,@RW2+ @PC+d16 R1,@RW2+ @PC+d16 R2,@RW2+ @PC+d16 R3,@RW2+ @PC+d16 R4,@RW2+ @PC+d16 R5,@RW2+ @PC+d16 R6,@RW2+ @PC+d16 R7,@RW2+ @PC+d16 R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW1+RW7 R1,@RW1+ @RW1+RW7 R2,@RW1+ @RW1+RW7 R3,@RW1+ @RW1+RW7 R4,@RW1+ @RW1+RW7 R5,@RW1+ @RW1+RW7 R6,@RW1+ @RW1+RW7 R7,@RW1+ @RW1+RW7 +D R0,@RW1+ XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW0+RW7 R1,@RW0+ @RW0+RW7 R2,@RW0+ @RW0+RW7 R3,@RW0+ @RW0+RW7 R4,@RW0+ @RW0+RW7 R5,@RW0+ @RW0+RW7 R6,@RW0+ @RW0+RW7 R7,@RW0+ @RW0+RW7 XCH +C R0,@RW0+ +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 R0, +A R0,@RW2 W2+d16, A R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 表 B.9-20 XCH Ri, ea 命令 ( 第 1 バイト =7EH) XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2+ @PC+d16 RW1,@RW2+ @PC+d16 RW2,@RW2+ @PC+d16 RW3,@RW2+ @PC+d16 RW4,@RW2+ @PC+d16 RW5,@RW2+ @PC+d16 RW6,@RW2+ @PC+d16 RW7,@RW2+ @PC+d16 XCHW XCHW RW0,@RW3+ RW0, addr16 +E +F XCHW XCHW RW7,@RW3+ RW7, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1+ @RW1+RW7 RW1,@RW1+ @RW1+RW7 RW2,@RW1+ @RW1+RW7 RW3,@RW1+ @RW1+RW7 RW4,@RW1+ @RW1+RW7 RW5,@RW1+ @RW1+RW7 RW6,@RW1+ @RW1+RW7 RW7,@RW1+ @RW1+RW7 +D XCHW XCHW RW6,@RW3+ RW6, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 +C XCHW XCHW RW5,@RW3+ RW5, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 RW2,@RW3 @RW3+d16 RW3,@RW3 @RW3+d16 RW4,@RW3 @RW3+d16 RW5,@RW3 @RW3+d16 RW6,@RW3 @RW3+d16 RW7,@RW3 @RW3+d16 +B XCHW XCHW RW4,@RW3+ RW4, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 RW2,@RW2 @RW2+d16 RW3,@RW2 @RW2+d16 RW4,@RW2 @RW2+d16 RW5,@RW2 @RW2+d16 RW6,@RW2 @RW2+d16 RW7,@RW2 @RW2+d16 +A XCHW XCHW RW3,@RW3+ RW3, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 RW2,@RW1 @RW1+d16 RW3,@RW1 @RW1+d16 RW4,@RW1 @RW1+d16 RW5,@RW1 @RW1+d16 RW6,@RW1 @RW1+d16 RW7,@RW1 @RW1+d16 +9 XCHW XCHW RW2,@RW3+ RW2, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 RW2,@RW0 @RW0+d16 RW3,@RW0 @RW0+d16 RW4,@RW0 @RW0+d16 RW5,@RW0 @RW0+d16 RW6,@RW0 @RW0+d16 RW7,@RW0 @RW0+d16 +8 XCHW XCHW RW1,@RW3+ RW1, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW7 @RW7+d8 RW1, RW7 @RW7+d8 RW2, RW7 @RW7+d8 RW3, RW7 @RW7+d8 RW4, RW7 @RW7+d8 RW5, RW7 @RW7+d8 RW6, RW7 @RW7+d8 RW7, RW7 @RW7+d8 F0 +7 E0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW6 @RW6+d8 RW1, RW6 @RW6+d8 RW2, RW6 @RW6+d8 RW3, RW6 @RW6+d8 RW4, RW6 @RW6+d8 RW5, RW6 @RW6+d8 RW6, RW6 @RW6+d8 RW7, RW6 @RW6+d8 D0 +6 C0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW5 @RW5+d8 RW1, RW5 @RW5+d8 RW2, RW5 @RW5+d8 RW3, RW5 @RW5+d8 RW4, RW5 @RW5+d8 RW5, RW5 @RW5+d8 RW6, RW5 @RW5+d8 RW7, RW5 @RW5+d8 B0 +5 A0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW4 @RW4+d8 RW1, RW4 @RW4+d8 RW2, RW4 @RW4+d8 RW3, RW4 @RW4+d8 RW4, RW4 @RW4+d8 RW5, RW4 @RW4+d8 RW6, RW4 @RW4+d8 RW7, RW4 @RW4+d8 90 +4 80 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW3 @RW3+d8 RW1, RW3 @RW3+d8 RW2, RW3 @RW3+d8 RW3, RW3 @RW3+d8 RW4, RW3 @RW3+d8 RW5, RW3 @RW3+d8 RW6, RW3 @RW3+d8 RW7, RW3 @RW3+d8 70 +3 60 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW2 @RW2+d8 RW1, RW2 @RW2+d8 RW2, RW2 @RW2+d8 RW3, RW2 @RW2+d8 RW4, RW2 @RW2+d8 RW5, RW2 @RW2+d8 RW6, RW2 @RW2+d8 RW7, RW2 @RW2+d8 50 +2 40 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW1 @RW1+d8 RW1, RW1 @RW1+d8 RW2, RW1 @RW1+d8 RW3, RW1 @RW1+d8 RW4, RW1 @RW1+d8 RW5, RW1 @RW1+d8 RW6, RW1 @RW1+d8 RW7, RW1 @RW1+d8 30 +1 20 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW0 @RW0+d8 RW1, RW0 @RW0+d8 RW2, RW0 @RW0+d8 RW3, RW0 @RW0+d8 RW4, RW0 @RW0+d8 RW5, RW0 @RW0+d8 RW6, RW0 @RW0+d8 RW7, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-21 XCHW RWi, ea 命令 ( 第 1 バイト =7FH) 477 付録 付録 C フラッシュメモリモードのタイミングダイヤグラム フラッシュメモリモードにおける MB90F594 の外部端子の各タイミングダイヤグラ ムを以下に示します。 ■ 読出しアクセスによるデータリード 図 C-1 読出しアクセスのタイミングダイヤグラム tRC アドレス安定 AQ16~AQ0 tACC CE tDF tOE OE tOEH WE tOH tCE ハイ インピーダンス 出力定義済 ハイインピーダンス DQ7~DQ0 ■ 書込み , データポーリング , 読出し (WE コントロール ) 図 C-2 書込みアクセス (WE コントロール ) のタイミングダイヤグラム 3rdバスサイクル AQ18 ~ AQ0 データポーリング 7AAAAH PA tWC tAS PA tRC tAH CE tGHWL OE tWP tWHWH1 WE tDF tDH A0H DQ7 ~ DQ0 tOE tWPH tcs PD DQ7 DOUT tDS tOH 5.0 V tCE PA : 書込みアドレス PD : 書込みデータ DQ7 : 書込みデータの反転出力 DOUT : 書込みデータの出力 ( 注意事項 ) 4 つのバスサイクルの内の後最後の 2 つのバスサイクルシーケンスを記述 します。 478 付録 C フラッシュメモリモードのタイミングダイヤグラム ■ 書込み , データポーリング , 読出し (CE コントロール ) 図 C-3 書込みアクセス (CE コントロール ) のタイミングダイヤグラム 3rdバスサイクル データポーリング 7AAAAH AQ18~AQ0 PA tWC tAS PA tAH tWH WE tGHWL OE tCP tWHWH1 CE tCPH tWS tDH A0H PD DQ7 DOUT DQ7~DQ0 tDS 5.0 V PA : 書込みアドレス PD : 書込みデータ DQ7 : 書込みデータの反転出力 DOUT : 書込みデータの出力 ( 注意事項 ) 4 つのバスサイクルの内の後最後の 2 つのバスサイクルシーケンスを記述 します。 ■ チップ消去 / セクタ消去コマンドシーケンス 図 C-4 書込みアクセス ( チップ消去 / セクタ消去 ) のタイミングダイヤグラム AQ18 ~ AQ0 tAS tAH 7AAAAH 75555H 7AAAAH 7AAAAH 75555H SA* CE tGHWL OE tWP WE tWPH tCS DQ7 ~ DQ0 tDH AAH 55H 80? AAH 55H 10H/30H tDS VCC tVCS *: SA はセクタ消去におけるセクタアドレスです。7AAAAH ( または 6AAAAH) はチッ プ消去におけるアドレスです。 479 付録 ■ データポーリング 図 C-5 データポーリングのタイミングダイヤグラム tCH CE tOE tDF OE tOEH WE tCE tOH * DQ7 DQ7 ハイ インピーダンス DQ7=有効データ tWHWH1 または tWHWH2 DQ6~DQ0 DQ6~DQ0 =有効データ DQ6~DQ0=無効 tOE *: DQ7 は有効データです ( デバイスは自動動作を停止します ) 。 ■ トグルビット 図 C-6 グルビットのタイミングダイヤグラム CE tOEH WE tOES OE * データ (DQ7~DQ0) DQ6=トグル DQ6=トグル DQ6=トグル停止 DQ7~DQ0 =有効 tOE *: DQ7 は有効データです ( デバイスは自動動作を停止します ) 。 ■ 書込み / 消去中の RY/BY タイミング 図 C-7 書込み / 消去中の RY/BY 信号出力のタイミングダイヤグラム CE 最終書込みパルスの 立上りエッジ WE 書込みまたは消去 RY/BY tビジー 480 付録 C フラッシュメモリモードのタイミングダイヤグラム ■ RST と RY/BY タイミング 図 C-8 ハードウェアリセット時の RY/BY 信号出力のタイミングダイヤグラム CE RY/BY tRP RST tレディ ■ セクタプロテクト許可 / セクタプロテクト検証 図 C-9 セクタプロテクト許可 / セクタプロテクト検証 AQ18~AQ9 SAx AQ8, AQ2, AQ1 SAy (AQ8, AQ2, AQ1) = (0, 1, 0) MD0 12 V 5V MD2 12 V 5V tVLHT tVLHT OE WE tWPP tOESP CE tCSP DQ7~DQ0 01H SA x: 最初のセクタアドレス SAy: 次のセクタアドレス tOE 481 付録 ■ セクタプロテクト一時取消し 図 C-10 セクタプロテクト一時取消し MD1 12 V 5V 5V CE WE tVLHT RY/BY 482 書込み/消去コマンドシーケンス 付録 D MB90590 シリーズ割込みベクタ一覧表 付録 D MB90590 シリーズ割込みベクタ一覧表 割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の FFFC00H ∼ FFFFFFH に割り当ててあり , ソフトウェア割込みと共通で使用しています。 ■ MB90590 シリーズ割込みベクタ一覧表 表 D-1 に , MB90590 シリーズの割込みベクタ一覧表を示します。 表 D-1 MB90590 シリーズ割込みベクタ一覧表 (1 / 2) ソフトウェア 割込み命令 ベクタアド レス L ベクタアド レス M ベクタアド レス H モードレジ スタ 割込み No INT0 FFFFFCH FFFFFDH FFFFFEH 未使用 #0 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 なし INT8 FFFFDCH FFFFDDH FFFFDEH FFFFDF #8 (RESET ベクタ ) INT9 FFFFD8H FFFFD9H FFFFDAH 未使用 #9 アドレス一致検出機能 INT10 FFFFD4H FFFFD5H FFFFD6H 未使用 #10 < 例外 > INT11 FFFFD0H FFFFD1H FFFFD2H 未使用 #11 タイムベースタイマ INT12 FFFFCCH FFFFCDH FFFFCEH 未使用 #12 外部割込み (INTO ∼ INT7) INT13 FFFFC8H FFFFC9H FFFFCAH 未使用 #13 CAN0RX INT14 FFFFC4H FFFFC5H FFFFC6H 未使用 #14 CAN0TX/NS INT15 FFFFC0H FFFFC1H FFFFC2H 未使用 #15 CAN1RX INT16 FFFFBCH FFFFBDH FFFFBEH 未使用 #16 CAN1TX/NS INT17 FFFFB8H FFFFB9H FFFFBAH 未使用 #17 PPG (ch.0, ch.1) ユニット 0 INT18 FFFFB4H FFFFB5H FFFFB6H 未使用 #18 PPG (ch.2, ch.3) ユニット 1 INT19 FFFFB0H FFFFB1H FFFFB2H 未使用 #19 PPG (ch.4, ch.5) ユニット 2 INT20 FFFFACH FFFFADH FFFFAEH 未使用 #20 PPG (ch.6, ch.7) ユニット 3 INT21 FFFFA8H FFFFA9H FFFFAAH 未使用 #21 PPG (ch.8, ch.9) ユニット 4 INT22 FFFFA4H FFFFA5H FFFFA6H 未使用 #22 PPG (ch.A, ch.B) ユニット 5 INT23 FFFFA0H FFFFA1H FFFFA2H 未使用 #23 16 ビットリロードタイマ 0 INT24 FFFF9CH FFFF9DH FFFF9EH 未使用 #24 16 ビットリロードタイマ 1 INT25 FFFF98H FFFF99H FFFF9AH 未使用 #25 インプットキャプチャ 0/1 INT26 FFFF94H FFFF95H FFFF96H 未使用 #26 アウトプットコンペア 0/1 ハードウェア割込み なし ・ ・ ・ 483 付録 表 D-1 MB90590 シリーズ割込みベクタ一覧表 (2 / 2) ソフトウェア 割込み命令 ベクタアド レス L ベクタアド レス M ベクタアド レス H モードレジ スタ 割込み No INT27 FFFF90H FFFF91H FFFF92H 未使用 #27 インプットキャプチャ 2/3 INT28 FFFF8CH FFFF8DH FFFF8EH 未使用 #28 アウトプットコンペア 2/3 INT29 FFFF88H FFFF89H FFFF8AH 未使用 #29 インプットキャプチャ 4/5 INT30 FFFF84H FFFF85H FFFF86H 未使用 #30 アウトプットコンペア 4/5 INT31 FFFF80H FFFF81H FFFF82H 未使用 #31 A/D コンバータ INT32 FFFF7CH FFFF7DH FFFF7EH 未使用 #32 入出力タイマ / 時計タイマ INT33 FFFF78H FFFF79H FFFF7AH 未使用 #33 シリアル I/O INT34 FFFF74H FFFF75H FFFF76H 未使用 #34 サウンド発生部 INT35 FFFF70H FFFF71H FFFF72H 未使用 #35 UART0RX INT36 FFFF6CH FFFF6DH FFFF6EH 未使用 #36 UART0TX INT37 FFFF68H FFFF69H FFFF6AH 未使用 #37 UART1RX INT38 FFFF64H FFFF65H FFFF66H 未使用 #38 UART1TX INT39 FFFF60H FFFF61H FFFF62H 未使用 #39 UART2RX INT40 FFFF5CH FFFF5DH FFFF5EH 未使用 #40 UART2TX INT41 FFFF58H FFFF59H FFFF5AH 未使用 #41 フラッシュメモリ INT42 FFFF54H FFFF55H FFFF56H 未使用 #42 遅延割込み INT43 FFFF50H FFFF51H FFFF52H 未使用 #43 なし ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ INT254 FFFC04H FFFC05H FFFC06H 未使用 #254 なし INT255 FFFC00H FFFC01H FFFC02H 未使用 #255 なし 484 ハードウェア割込み ・ ・ ・ 付録 D MB90590 シリーズ割込みベクタ一覧表 ■ 割込み要因と割込みベクタ・割込み制御レジスタ 表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (1 / 2) 割込み要因 EI2OS クリア 割込みベクタ 割込み制御レジスタ 番号 アドレス 番号 アドレス リセット × #08 FFFFDCH - - INT9 命令 × #09 FFFFD8H - - 例外 × #10 FFFFD4H - - タイムベースタイマ × #11 FFFFD0H ICR00 0000B0H 外部割込み (INT0 ∼ INT7) ○ #12 FFFFCCH CAN0RX × #13 FFFFC8H ICR01 0000B1H CAN0TX/NS × #14 FFFFC4H CAN1RX × #15 FFFFC0H ICR02 0000B2H CAN1TX/NS × #16 FFFFBCH PPG (ch.0, ch.1) ユニット 0 × #17 FFFFB8H ICR03 0000B3H PPG (ch.2, ch.3) ユニット 1 × #18 FFFFB4H PPG (ch.4, ch.5) ユニット 2 × #19 FFFFB0H ICR04 0000B4H PPG (ch.6, ch.7) ユニット 3 × #20 FFFFACH PPG (ch.8, ch.9) ユニット 4 × #21 FFFFA8H ICR05 0000B5H PPG (ch.A, ch.B) ユニット 5 × #22 FFFFA4H 16 ビットリロードタイマ 0 ○ #23 FFFFA0H ICR06 0000B6H 16 ビットリロードタイマ 1 ○ #24 FFFF9CH インプットキャプチャ 0/1 ○ #25 FFFF98H ICR07 0000B7H アウトプットコンペア 0/1 ○ #26 FFFF94H インプットキャプチャ 2/3 ○ #27 FFFF90H ICR08 0000B8H アウトプットコンペア 2/3 ○ #28 FFFF8CH インプットキャプチャ 4/5 ○ #29 FFFF88H ICR09 0000B9H アウトプットコンペア 4/5 ○ #30 FFFF84H A/D コンバータ ○ #31 FFFF80H ICR10 0000BAH 入出力タイマ / 時計タイマ × #32 FFFF7CH シリアル I/O ○ #33 FFFF78H ICR11 0000BBH サウンド発生部 × #34 FFFF74H UART0RX ◎ #35 FFFF70H ICR12 0000BCH UART0TX ○ #36 FFFF6CH 485 付録 表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (2 / 2) 割込み要因 EI2OS クリア 割込みベクタ 番号 アドレス UART1RX ◎ #37 FFFF68H UART1TX ○ #38 FFFF64H UART2RX ◎ #39 FFFF60H UART2TX ○ #40 FFFF5CH フラッシュメモリ × #41 FFFF58H 遅延割込み × #42 FFFF54H 割込み制御レジスタ 番号 アドレス ICR13 0000BDH ICR14 0000BEH ICR15 0000BFH ○ :EI2OS 割込みクリア信号または EI2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアされます。 ◎ :EI2OS 割込みクリア信号または EI2OS レジスタ読出しアクセスにて , 割込み要求フラグはクリアされます。 ストップ要求はあります。 × :EI2OS 割込みクリア信号にて割込み要求フラグはクリアされません。 ( 注意事項 ) ・ 1 つの割込み番号に対して 2 つの割込み要因を持つ周辺モジュールについては , EI2OS 割込みクリア信 号にて , 両方の割込み要求フラグがクリアされます。 ・ EI2OS の終了時には , EI2OS クリア信号が同じ割込み番号に割り当てられている複数の割り込みフラグ に送られます。 ・ EI2OS が許可されていると , 同じ割込みコントロールレジスタ (ICR) に割り当てられている 2 つの割込 みのうちのいずれか 1 つが発生すると , EI2OS を起動します。このことは , 本来各割込み要因に固有で あるべき EI2OS ディスクリプタが , 2 つの割込みで共有されていることを意味します。したがって , 一方 の割込みが許可されているときは , 他方の割込みを不許可にしなければなりません。 486 索引 Numerics 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアのレジスタ一覧 ..........................................................................128 16 ビットインプットキャプチャ 16 ビットインプットキャプチャのレジスタ一覧 ..........................................................................128 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........154 16 ビット入出力タイマ 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................127 16 ビットフリーランタイマ 16 ビットフリーランタイマ ................................126 16 ビットフリーランタイマのタイミング ........134 16 ビットフリーランタイマの動作 ....................133 16 ビットフリーランタイマのブロックダイヤグ ラム ..................................................................129 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................128 16 ビットリロードタイマ 16 ビットリロードタイマ ( イベントカウント機 能付 ) の概要 ...................................................148 16 ビットリロードタイマのアンダフロー動作 ..........................................................................157 16 ビットリロードタイマの出力端子機能 ........158 16 ビットリロードタイマの内部クロック動作 ..........................................................................155 16 ビットリロードタイマの入力端子機能 ( 内部 クロックモード時 ) ........................................155 16 ビットリロードタイマのブロックダイヤグラ ム ......................................................................149 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタ ................150 16 ビットリロードレジスタ 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........154 24 ビットオペランド 24 ビットオペランド指定 ......................................23 2M/3M ビットフラッシュメモリ 2M/3M ビットフラッシュメモリのセクタ構成 ..........................................................................360 2M/3M ビットフラッシュメモリの特長 ...........358 2M ビットフラッシュメモリ 2M ビットフラッシュメモリのプログラム例 ..........................................................................387 8/16 ビット PPG 8/16 ビット PPG のカウントクロックの選択 ..........................................................................184 8/16 ビット PPG の各ハードウェアの初期値 ..........................................................................187 8/16 ビット PPG の機能 .......................................170 8/16 ビット PPG の出力動作 ...............................182 8/16 ビット PPG の動作 .......................................181 8/16 ビット PPG の動作モード ...........................181 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................185 8/16 ビット PPG のブロックダイヤグラム ....... 171 8/16 ビット PPG の割込み ................................... 186 8/16 ビット PPG のリロード値とパルス幅の関係 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................183 8/16 ビット PPG のレジスタ 8/16 ビット PPG のレジスタ ............................... 173 487 A A アキュムレータ (A) ................................................30 A/D コンバータ A/D コンバータの特長 .........................................200 A/D コンバータのブロックダイヤグラム .........202 A/D コンバータのレジスタ一覧 .........................203 ADCR0,ADCR1 A/D データレジスタ 0/1(ADCR0,ADCR1) .........210 ADCS0 A/D 制御ステータスレジスタ 0(ADCS0) ..........204 ADCS1 A/D 制御ステータスレジスタ 1(ADCS1) ..........207 AMR0/AMR1 アクセプタンスマスクレジスタ0/1(AMR0/AMR1) ..........................................................................302 AMSR アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................300 B BAP バッファアドレスポインタ (BAP) .......................64 BTR ビットタイミングレジスタ (BTR) .....................286 BVALR メッセージバッファ有効レジスタ (BVALR) ..........................................................................288 C CAN コントローラ CAN コントローラの受信フローチャート ..........................................................................315 CAN コントローラの使用上の注意 ...................324 CAN コントローラの送信の開始 .......................310 CAN コントローラの送信の完了 .......................311 CAN コントローラの送信フローチャート ..........................................................................311 CAN コントローラの送信要求の解除 ...............310 CAN コントローラの特長 ...................................268 CAN コントローラのブロックダイヤグラム ..........................................................................269 CAN 制御ステータスレジスタ CAN 制御ステータスレジスタ (CSR) ................279 CCR コンディションコードレジスタ (CCR) ...............32 CDCR シリアル I/O プリスケーラ (CDCR) ...................257 CKSCR クロック選択レジスタ (CKSCR) ..........................89 CLK 同期 CLK 同期ボーレート ............................................235 CLK 非同期 CLK 非同期ボーレート ........................................235 CMR コモンレジスタバンクプリフィックス (CMR) ............................................................................39 CPU CPU の概要 ..............................................................20 488 CPU メモリ空間の概要 .......................................... 21 CPU 間欠動作 CPU 間欠動作 .......................................................... 99 CSR CAN 制御ステータスレジスタ (CSR) ................ 279 D DCT データカウンタ (DCT) ...........................................63 DIRR 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) ......... 73 DIV A,Ri 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注 意 ........................................................................41 DIVW A,RWi 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注 意 ........................................................................41 DLCRx DLC レジスタ x(x=0 ∼ 15)(DLCRx) .................. 307 DLC レジスタ メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................275 DLC レジスタ x DLC レジスタ x(x=0 ∼ 15)(DLCRx) .................. 307 DQ2 トグルビット 2 フラグ (DQ2) ............................. 373 DQ3 セクタ消去タイマフラグ (DQ3) .........................372 DQ5 タイミングリミット超過フラグ (DQ5) ............. 371 DQ6 トグルビットフラグ (DQ6) ................................. 370 DQ7 データポーリングフラグ (DQ7) .........................369 DTP DTP/ 外部割込みの使用上の注意 .......................197 DTP の動作 ............................................................ 195 DTP 要求と外部割込み要求の切換え ................ 196 DTP/ 外部割込み DTP/ 外部割込みの概要 .......................................190 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................190 DTP/ 外部割込みのレジスタ ............................... 191 DTP/ 割込み許可レジスタ DTP/ 割込み許可レジスタ (ENIR:Interrupt request enable register) ................................................. 192 DTP/ 割込み要因レジスタ DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) ................................................192 DTRx データレジスタ x(x=0 ∼ 15)(DTRx) .................. 308 E EEPROM EEPROM メモリマップ .......................................350 EI2OS EI2OS( 拡張インテリジェント I/O サービス ) ..........................................................................245 EI2OS を使った変換動作 .....................................214 インテリジェント I/O サービス (EI2OS) 機能と割 込み ..................................................................148 拡張インテリジェント I/O サービス (EI2OS) ............................................................................61 拡張インテリジェント I/O サービス (EI2OS) ............................................................................45 単発モード時の EI2OS の起動例 ........................215 停止モード時の EI2OS の起動例 ........................219 連続モード時の EI2OS の起動例 ........................217 2 EI OS ステータスレジスタ EI2OS ステータスレジスタ (ISCS) .......................65 EIRR DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) ................................................192 ELVR 要求レベル設定レジスタ (ELVR:External level register) .............................................................193 ENIR DTP/ 割込み許可レジスタ (ENIR:Interrupt request enable register) ..................................................192 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................442 FMCS 制御ステータスレジスタ (FMCS) ......................363 ISCS EI2OS ステータスレジスタ (ISCS) .......................65 ISD 拡張インテリジェント I/O サービスディスクリプ タ (ISD) .............................................................. 63 L LEIR ラストイベント表示レジスタ (LEIR) ................ 283 LPMCR 低消費電力モード制御レジスタ (LPMCR) ......... 87 M MB90595 MB90590 シリーズ割込みベクタ一覧表 ............. 59 MB90F594A/MB90F594G/MB90F591A/MB90F591G MB90F594A/MB90F594G/MB90F591A/ MB90F591G シリアル書込み接続の基本構成 ..........................................................................394 N NCC フラグ変化抑止プリフィックス (NCC) ..............39 I P I/O レジスタアドレスポインタ I/O レジスタアドレスポインタ (IOA) .................64 I/O ポート I/O ポート ..............................................................110 I/O ポートのレジスタ I/O ポートのレジスタ ..........................................111 ICR 割込み制御レジスタ (ICR) ....................................48 ID ID の設定 ...............................................................316 IDER IDE レジスタ (IDER) ............................................289 IDE レジスタ IDE レジスタ (IDER) ............................................289 IDRx ID レジスタ x(x=0 ∼ 15)(IDRx) ..........................305 ID レジスタ メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................272 ID レジスタ x ID レジスタ x(x=0 ∼ 15)(IDRx) ..........................305 ILM インタラプトレベルマスクレジスタ (ILM) ........33 IOA I/O レジスタアドレスポインタ (IOA) .................64 IPCP0/1 インプットキャプチャデータレジスタ (IPCP0/1) ..........................................................................143 ISC01 インプットキャプチャ制御ステータスレジスタ (ICS0/1) ............................................................143 PACSR プログラムアドレス検出制御ステータスレジスタ (PACSR) ...........................................................348 PADR0/PADR1 プログラムアドレス検出レジスタ (PADR0/ PADR1) ............................................................ 347 PC プログラムカウンタ (PC) ...................................... 35 PLL クロック メインクロックと PLL クロックの切換え ....... 100 PPG0/1 クロック選択レジスタ PPG0/1 クロック選択レジスタ (PPG01) ............178 PPG01 PPG0/1 クロック選択レジスタ (PPG01) ............178 PPG0 動作モード制御レジスタ PPG0 動作モード制御レジスタ (PPGC0) ..........174 PPG1 動作モード制御レジスタ PPG1 動作モード制御レジスタ (PPGC1) ..........176 PPGC0 PPG0 動作モード制御レジスタ (PPGC0) ..........174 PPGC1 PPG1 動作モード制御レジスタ (PPGC1) ..........176 PRLL,PRLH リロードレジスタ (PRLL,PRLH) ........................ 180 PS プロセッサステータス (PS) ..................................32 PWC0 PWM 制御 0 レジスタ (PWC0) ........................... 330 PWC10/PWC20 PWM1&PWM2 コンペアレジスタ (PWC10/ PWC20) ............................................................ 331 489 PWM1&PWM2 コンペアレジスタ PWM1&PWM2 コンペアレジスタ (PWC10/ PWC20) ............................................................331 PWM1&PWM2 選択レジスタ PWM1&PWM2 選択レジスタ (PWS10/PWS20) ..........................................................................332 PWM 制御 0 レジスタ PWM 制御 0 レジスタ (PWC0) ............................330 R RCR 受信完了レジスタ (RCR) .....................................296 RFWTR リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................292 RIER 受信割込み許可レジスタ (RIER) ........................299 ROMM ROM ミラー機能選択レジスタ (ROMM) ..........355 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールのブロックダイ ヤグラム ..........................................................354 ROM ミラー機能選択レジスタ ROM ミラー機能選択レジスタ (ROMM) ..........355 ROVRR 受信オーバランレジスタ (ROVRR) ...................298 RP レジスタバンクポインタ (RP) ..............................33 RRTRR リモート要求受信レジスタ (RRTRR) ................297 RTEC 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................285 S SDR シリアルシフトデータレジスタ (SDR) .............256 SGAR 振幅データレジスタ (SGAR) ..............................341 SGDR デクリメントグレードレジスタ (SGDR) ..........342 SGFR 周波数データレジスタ (SGFR) ...........................340 SGTR トーンカウントレジスタ (SGTR) .......................343 SMCS シリアルモード制御ステータスレジスタ (SMCS) ..........................................................................252 SSP ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) ..............................................31 T TIER 送信割込み許可レジスタ (TIER) ........................ 295 TMCSR タイマ制御ステータスレジスタ (TMCSR) の配置 ..........................................................................151 TMR 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ..........................................................................154 TMRLR 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ..........................................................................154 TREQR 送信要求レジスタ (TREQR) ................................290 TRTRR 送信 RTR レジスタ (TRTRR) ..............................291 U UART0 UART0 の応用例 ................................................... 246 UART0 の動作モード .......................................... 234 UART0 の特長 ....................................................... 224 UART0 のブロックダイヤグラム ...................... 225 UART0 のレジスタ .............................................. 226 UIDR シリアルインプットデータレジスタ 0(UIDR0) と シリアルアウトプットレジスタ 0(UODR0) ..........................................................................231 UMC シリアルモード制御レジスタ 0(UMC0) の構成 ..........................................................................227 UODR シリアルインプットデータレジスタ 0(UIDR0) と シリアルアウトプットレジスタ 0(UODR0) ..........................................................................231 URD レート・データレジスタ 0(URD0) の構成 ..........................................................................232 USP ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) .............................................. 31 USR0 シリアルステータスレジスタ 0(USR0) の構成 ..........................................................................229 W WDTC ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................121 X x TCANR 送信解除レジスタ (TCANR) ...............................293 TCR 送信完了レジスタ (TCR) .....................................294 490 メッセージバッファ (x) による受信方法 ..........320 メッセージバッファ (x) による送信方法 ..........318 あ アウトプットコンペア アウトプットコンペア .........................................135 アウトプットコンペア ( モジュールごとに 2 チャ ネル ) ................................................................126 アウトプットコンペアのコンペアレジスタ ..........................................................................136 アウトプットコンペアの制御ステータスレジスタ (OCS0/1) ...........................................................137 アウトプットコンペアのタイミング .................141 アウトプットコンペアのブロックダイヤグラム ..........................................................................135 アウトプットコンペアレジスタ 0 値 アウトプットコンペアレジスタ 0 値とコンペア一 致したときのカウンタクリア ......................134 アキュムレータ アキュムレータ (A) ................................................30 アクセプタンスフィルタ アクセプタンスフィルタの設定 .........................317 アクセプタンスフィルタリング アクセプタンスフィルタリング .........................312 アクセプタンスマスク選択レジスタ アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................300 アクセプタンスマスクレジスタ 0/1 アクセプタンスマスクレジスタ0/1(AMR0/AMR1) ..........................................................................302 アドレス アドレス作成の方式 ...............................................21 アドレス一致検出機能 アドレス一致検出機能のシステム構成例 .........350 アドレス一致検出機能の動作 .............................349 アドレス一致検出機能のブロックダイヤグラム ..........................................................................346 アドレス指定 バンク方式によるアドレス指定 ...........................24 アドレッシング アドレッシング .....................................................419 間接アドレッシング .............................................428 直接アドレッシング .............................................421 アナログ入力許可レジスタ アナログ入力許可レジスタ .................................200 アナログ入力許可レジスタ (ADER) ..................114 い イベントカウント機能 16 ビットリロードタイマ ( イベントカウント機 能付 ) の概要 ...................................................148 レジスタ リセット入力によって初期化されないレジスタ ............................................................................78 インターバル割込み インターバル割込み機能 .....................................118 インタラプトレベルマスクレジスタ インタラプトレベルマスクレジスタ (ILM) ........33 インテリジェント I/O サービス インテリジェント I/O サービス (EI2OS) 機能と割 込み ..................................................................148 インピーダンス 入力インピーダンス .............................................201 インプットキャプチャ インプットキャプチャ ........................................ 142 インプットキャプチャ ( モジュールごとに 2 チャ ネル ) ................................................................ 127 インプットキャプチャ入力タイミング ............146 インプットキャプチャの取り込みタイミング例 ..........................................................................145 インプットキャプチャのブロックダイヤグラム ..........................................................................142 インプットキャプチャ制御ステータスレジスタ インプットキャプチャ制御ステータスレジスタ (ICS0/1) ............................................................ 143 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCP0/1) ..........................................................................143 う ウォッチドッグ ウォッチドッグカウンタ .................................... 123 ウォッチドッグ停止 ............................................ 123 ウォッチドッグタイマ ウォッチドッグタイマの起動方法 .................... 123 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................120 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................121 お オーバフロー オーバフローによるカウンタクリア ................ 133 か 外形寸法図 パッケージ外形寸法図 ............................................ 6 外部イベントカウント 外部イベントカウント ........................................ 156 外部クロック 内部クロックおよび外部クロック .................... 238 外部シフトクロックモード 外部シフトクロックモード ................................259 外部割込み DTP/ 外部割込みの使用上の注意 .......................197 DTP 要求と外部割込み要求の切換え ................ 196 外部割込みの動作 ................................................194 概要 製品概要 .................................................................... 2 カウンタクリア オーバフローによるカウンタクリア ................ 133 カウンタ カウンタの動作状態 ............................................ 159 カウントクロック 8/16 ビット PPG のカウントクロックの選択 ..........................................................................184 拡張インテリジェント I/O サービス 拡張インテリジェント I/O サービス (EI2OS) ............................................................................61 491 拡張インテリジェント I/O サービス (EI2OS) の構 造 ........................................................................62 拡張インテリジェント I/O サービス EI2OS( 拡張インテリジェント I/O サービス ) ..........................................................................245 拡張インテリジェント I/O サービス (EI2OS) ............................................................................45 拡張インテリジェント I/O サービス (EI2OS) の動 作フロー ............................................................67 拡張インテリジェント I/O サービスディスクリプタ 拡張インテリジェント I/O サービスディスクリプ タ (ISD) ..............................................................63 拡張シリアル I/O インタフェース 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................265 間接アドレッシング 間接アドレッシング .............................................428 く クロック クロック選択の状態遷移 .....................................101 内部クロックおよび外部クロック .....................238 クロック選択レジスタ クロック選択レジスタ (CKSCR) ..........................89 クロック発生部 クロック発生部の注意 ...........................................76 こ コマンドシーケンス コマンドシーケンス表 .........................................365 コモンレジスタバンクプリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................39 コンディションコードレジスタ コンディションコードレジスタ (CCR) ...............32 コンペア一致 アウトプットコンペアレジスタ 0 値とコンペア一 致したときのカウンタクリア ......................134 コンペアレジスタ 2 組のコンペアレジスタによる出力波形例 ( 出力 の初期値は 0 とする ) ....................................140 アウトプットコンペアのコンペアレジスタ ..........................................................................136 コンペアレジスタ 0,1 を使用したときの出力波形 例 ( 出力の初期値は 0 とする ) .....................140 さ サウンドジェネレータ サウンドジェネレータのブロックダイヤグラム ..........................................................................336 サウンドジェネレータのレジスタ .....................337 サウンド制御レジスタ サウンド制御レジスタ (SGCR) ..........................338 サブ秒レジスタ サブ秒レジスタ (WTBR) .....................................167 492 し システムスタックポインタ ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) .............................................. 31 実効アドレス 実効アドレスフィールド .................................... 437 実効アドレスフィールド 実効アドレスフィールド .................................... 420 実行サイクル 実行サイクル数 ....................................................435 実行サイクル数計算方法 .................................... 435 シフトクロック 外部シフトクロックモード ................................259 内部シフトクロックモード ................................259 シフト動作 シフト動作のスタート / ストップタイミング ..........................................................................262 周波数データレジスタ 周波数データレジスタ (SGFR) ........................... 340 受信エラーカウンタ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................285 受信オーバーラン 受信オーバーラン ................................................313 受信オーバランレジスタ 受信オーバランレジスタ (ROVRR) ...................298 受信完了 受信完了 ................................................................ 314 受信完了レジスタ 受信完了レジスタ (RCR) .....................................296 受信動作 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................242 受信動作時 ( モード 2) のフラグのセットタイミ ング .................................................................. 243 受信メッセージ 受信メッセージの格納 ........................................ 312 受信割込み許可レジスタ 受信割込み許可レジスタ (RIER) ........................ 299 出力端子機能 16 ビットリロードタイマの出力端子機能 ....... 158 シリアル I/O 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................265 シリアル I/O の動作 .............................................258 シリアル I/O の動作状態 .....................................260 シリアル I/O のブロックダイヤグラム ............. 250 シリアル I/O のレジスタ .....................................251 シリアル I/O プリスケーラ シリアル I/O プリスケーラ (CDCR) .................. 257 シリアルアウトプットレジスタ シリアルインプットデータレジスタ 0(UIDR) と シリアルアウトプットレジスタ 0(UODR0) ..........................................................................231 シリアルインプットデータレジスタ シリアルインプットデータレジスタ 0(UIDR0) と シリアルアウトプットレジスタ 0(UODR0) ..........................................................................231 シリアル書込み接続 MB90F594A/MB90F594G/MB90F591A/ MB90F591G シリアル書込み接続の基本構成 ..........................................................................394 シリアル書込み接続例 シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................397 シリアル書込み接続例 ( ライタから電源供給時 ) ..........................................................................399 シリアルクロック入力周波数 発振クロック周波数とシリアルクロック入力周波 数 ......................................................................396 シリアルシフトデータレジスタ シリアルシフトデータレジスタ (SDR) .............256 シリアルステータスレジスタ シリアルステータスレジスタ 0(USR0) の構成 ..........................................................................229 シリアルステータスレジスタ 0(USR0) の内容 ..........................................................................229 シリアルモード制御ステータスレジスタ シリアルモード制御ステータスレジスタ (SMCS) ..........................................................................252 シリアルモード制御ステータスレジスタ (SMCS) の各ビット機能 ..............................................252 シリアルモード制御レジスタ シリアルモード制御レジスタ 0(UMC0) の構成 ..........................................................................227 シリアルモード制御レジスタ 0(UMC0) の内容 ..........................................................................227 振幅データレジスタ 振幅データレジスタ (SGAR) ..............................341 す 推奨設定例 推奨設定例 .............................................................107 スタックポインタ ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) ..............................................31 ステータスフラグ 送受信動作時のステータスフラグ .....................245 ステッピングモータコントローラ ステッピングモータコントローラのブロックダイ ヤグラム ..........................................................328 ステッピングモータコントローラのレジスタ ..........................................................................329 ストップモード ストップモードの解除 ...........................................96 ストップモードへの遷移 .......................................96 スリープモード スリープモードの解除 ...........................................93 スリープモードへの遷移 .......................................93 せ 制御信号 フラッシュメモリの制御信号 .............................361 制御ステータスレジスタ A/D 制御ステータスレジスタ 0(ADCS0) ..........204 A/D 制御ステータスレジスタ 1(ADCS1) ..........207 アウトプットコンペアの制御ステータスレジスタ (OCS0/1) ...........................................................137 制御ステータスレジスタ (FMCS) ...................... 363 セクタ消去 フラッシュメモリのセクタ消去手順 ................ 381 フラッシュメモリのセクタ消去を一時停止する ..........................................................................383 フラッシュメモリのセクタ消去を再開する ..........................................................................384 フラッシュメモリの任意のデータを消去する ( セ クタ消去 ) ........................................................ 381 セクタ消去タイマフラグ セクタ消去タイマフラグ (DQ3) .........................372 セットタイミング 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................242 受信動作時 ( モード 2) のフラグのセットタイミ ング .................................................................. 243 送信動作時のフラグのセットタイミング ........244 フラグのセットタイミング ................................241 全体制御レジスタ 全体制御レジスタ ................................................278 全体制御レジスタの一覧 .................................... 270 専用レジスタ 専用レジスタ .......................................................... 27 そ 送受信動作時 送受信動作時のステータスフラグ .................... 245 送信 RTR レジスタ 送信 RTR レジスタ (TRTRR) ..............................291 送信エラーカウンタ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................285 送信解除レジスタ 送信解除レジスタ (TCANR) ............................... 293 送信完了レジスタ 送信完了レジスタ (TCR) .....................................294 送信動作 送信動作時のフラグのセットタイミング ........244 送信要求 CAN コントローラの送信要求の解除 ............... 310 送信要求レジスタ 送信要求レジスタ (TREQR) ................................290 送信割込み許可レジスタ 送信割込み許可レジスタ (TIER) ........................ 295 ソフトウェア ソフトウェア割込み .............................................. 45 ソフトウェア割込み ソフトウェア割込み .............................................. 59 ソフトウェア割込みの構造 ..................................59 ソフトウェア割込みの動作 ..................................59 た タイマカウンタ制御ステータスレジスタ タイマカウンタ制御ステータスレジスタ (TCCS) ..........................................................................131 タイマ制御ステータスレジスタ タイマ制御ステータスレジスタ (TMCSR) の内容 ..........................................................................151 タイマ制御ステータスレジスタ (TMCSR) の配置 ..........................................................................151 493 タイマ制御レジスタ タイマ制御レジスタ (WTCR) .............................165 タイミング 16 ビットフリーランタイマのタイミング ..........................................................................134 タイミングリミット超過フラグ タイミングリミット超過フラグ (DQ5) .............371 タイムベース タイムベースカウンタ .........................................118 タイムベースタイマ タイムベースタイマの概要 .................................116 タイムベースタイマのブロックダイヤグラム ..........................................................................116 TBTC タイムベースタイマ制御レジスタ (TBTC) ..........................................................................117 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタ (TBTC) ..........................................................................117 ブロックダイヤグラム アウトプットコンペアのブロックダイヤグラム ..........................................................................135 多重割込み 多重割込み ...............................................................58 多バイト長データ 多バイト長データのアクセス ...............................26 メモリ空間における多バイト長データの配置 ............................................................................26 端子 端子機能説明 .............................................................8 端子配列図 .................................................................7 端子出力 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................185 単発モード 単発モード .............................................................212 単発モード時の EI2OS の起動例 ........................215 ち 遅延割込み 遅延割込みのブロックダイヤグラム ...................72 遅延割込み発生 .......................................................74 遅延割込み要求ロックの使用上の注意 ...............72 遅延割込み要因発生 / 解除レジスタ 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) .........73 チップ消去 フラッシュメモリの全データを消去する ( チップ 消去 ) ................................................................380 注意 CAN コントローラの使用上の注意 ...................324 DTP/ 外部割込みの使用上の注意 .......................197 クロック発生部の注意 ...........................................76 遅延割込み要求ロックの使用上の注意 ...............72 注意事項の回避について .......................................42 低消費電力モード制御レジスタアクセスの注意 ............................................................................92 低消費電力モードへ移行する場合の注意 ...........92 フラッシュメモリ使用上の注意 .........................385 変換データ保護機能の使用上の注意 .................222 494 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注 意 ........................................................................41 直接アドレッシング 直接アドレッシング ............................................ 421 て 停止モード 停止モード ............................................................ 213 停止モード時の EI2OS の起動例 ........................ 219 低消費電力回路 低消費電力回路のブロックダイヤグラム ..........85 低消費電力制御回路 低消費電力制御回路の概要 ..................................84 低消費電力制御回路のレジスタ .......................... 86 低消費電力モード 低消費電力モードの動作 ...................................... 91 低消費電力モードへ移行する場合の注意 ..........92 低消費電力モード制御レジスタ 低消費電力モード制御レジスタアクセスの注意 ............................................................................92 低消費電力モード制御レジスタ (LPMCR) ......... 87 低電力消費モード 低電力消費モードの設定 .................................... 317 データカウンタ データカウンタ (DCT) ...........................................63 データフレーム データフレームおよびリモートフレームの受信に 対する処理 ......................................................313 データポーリングフラグ データポーリングフラグ (DQ7) .........................369 データレジスタ タイマカウンタデータレジスタ (TCDT) ..........130 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................277 A/D データレジスタ 0/1(ADCR0,ADCR1) ........210 データレジスタ x データレジスタ x(x=0 ∼ 15)(DTRx) .................. 308 デクリメントグレードレジスタ デクリメントグレードレジスタ (SGDR) ..........342 デバイスの取り扱い デバイスの取り扱い .............................................. 14 転送データ 転送データフォーマット .................................... 239 と 動作モード UART0 の動作モード .......................................... 234 トーンカウントレジスタ トーンカウントレジスタ (SGTR) ...................... 343 特長 特長 ............................................................................3 トグルビット 2 フラグ トグルビット 2 フラグ (DQ2) ............................. 373 トグルビットフラグ トグルビットフラグ (DQ6) ................................. 370 時計タイマ 時計タイマのブロックダイヤグラム ................ 162 時計タイマのレジスタ ........................................ 163 時計モード 時計モードの解除 ..................................................94 時計モードへの遷移 ...............................................94 な 内部クロック 内部クロックおよび外部クロック .....................238 内部クロック動作 16 ビットリロードタイマの内部クロック動作 ..........................................................................155 内部シフトクロックモード 内部シフトクロックモード .................................259 に 入出力回路 入出力回路 ...............................................................12 入力インピーダンス 入力インピーダンス .............................................201 入力端子機能 16 ビットリロードタイマの入力端子機能 ( 内部 クロックモード時 ) ........................................155 ね ネガティブクロック ネガティブクロック動作 .....................................266 は ハードウェア 8/16 ビット PPG の各ハードウェアの初期値 ..........................................................................187 ハードウェア割込み ...............................................44 ハードウェアシーケンス ハードウェアシーケンスフラグ .........................367 ハードウェアスタンバイモード ハードウェアスタンバイモードの解除 ...............98 ハードウェアスタンバイモードへの遷移 ...........98 ハードウェア割込み ハードウェア割込み ...............................................54 ハードウェア割込みの構造 ...................................54 ハードウェア割り込みの動作 ...............................55 ハードウェア割込みの発生と解除 .......................56 バス動作停止 バス動作停止間の状態 (HALT=1) ......................282 バス動作停止を解除する条件 (HALT=0) ..........282 バス動作停止をセットする条件 (HALT=1) ..........................................................................282 バスモード バスモード設定ビット .........................................106 発振安定待ち時間 発振安定待ち時間設定 .....................................97, 98 発振クロック周波数 発振クロック周波数とシリアルクロック入力周波 数 ......................................................................396 バッファアドレスポインタ バッファアドレスポインタ (BAP) .......................64 パリティビット パリティビット .....................................................240 パルス 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................185 パルス幅 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................183 バンクセレクトプリフィックス バンクセレクトプリフィックス .......................... 38 バンク方式 バンク方式によるアドレス指定 .......................... 24 汎用レジスタ 汎用レジスタ .......................................................... 28 ひ ビットタイミング ビットタイミングの設定 .................................... 316 ビットタイミングレジスタ ビットタイミングレジスタ (BTR) .....................286 秒 / 分 / 時間レジスタ 秒 / 分 / 時間レジスタ (WTSR/WTMR/WTHR) ..........................................................................168 ふ フォーマット 転送データフォーマット .................................... 239 フラグ 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................242 受信動作時 ( モード 2) のフラグのセットタイミ ング .................................................................. 243 送信動作時のフラグのセットタイミング ........244 フラグのセットタイミング ................................241 フラグ変化抑止プリフィックス フラグ変化抑止プリフィックス (NCC) ..............39 フラッシュマイコンプログラマ フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源使用時 ) ................................401 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源供給時 ) ........................ 403 フラッシュメモリ 2M/3M ビットフラッシュメモリの特長 ........... 358 フラッシュメモリ書込み / 消去の詳細説明 ..........................................................................375 フラッシュメモリ書込み / 消去の方法 ............. 358 フラッシュメモリ書込み手順 ............................378 フラッシュメモリ使用上の注意 ........................ 385 フラッシュメモリ全体のブロックダイヤグラム (2M ビットフラッシュメモリの例 ) ............359 フラッシュメモリにおけるリセットベクタアドレ ス ......................................................................386 フラッシュメモリにデータを書込む ................ 377 フラッシュメモリの制御信号 ............................361 フラッシュメモリのセクタ消去手順 ................ 381 フラッシュメモリのセクタ消去を一時停止する ..........................................................................383 フラッシュメモリのセクタ消去を再開する ..........................................................................384 フラッシュメモリの全データを消去する ( チップ 消去 ) ................................................................ 380 495 フラッシュメモリの任意のデータを消去する ( セ クタ消去 ) ........................................................381 フラッシュメモリのレジスタ .............................358 フラッシュメモリモード .....................................361 フラッシュメモリを読出し / リセット状態にする ..........................................................................376 2M ビットフラッシュメモリのプログラム例 ..........................................................................387 プリスケーラ シリアル I/O プリスケーラ (CDCR) ...................257 プリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................39 バンクセレクトプリフィックス ...........................38 フラグ変化抑止プリフィックス (NCC) ...............39 プリフィックスコード プリフィックスコードが連続している場合 .......40 プリフィックス命令 割込み抑止命令とプリフィックス命令に関する制 約 ........................................................................40 フレームフォーマット フレームフォーマットの設定 .............................316 プログラムアドレス検出制御ステータスレジスタ プログラムアドレス検出制御ステータスレジスタ (PACSR) ...........................................................348 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0/ PADR1) ............................................................347 プログラムカウンタ プログラムカウンタ (PC) ......................................35 プログラムパッチ プログラムパッチ処理フロー図 .........................352 プログラムパッチ処理例 .....................................351 プロセッサステータス プロセッサステータス (PS) ..................................32 ブロックダイヤグラム 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................127 16 ビットフリーランタイマのブロックダイヤグ ラム ..................................................................129 16 ビットリロードタイマのブロックダイヤグラ ム ......................................................................149 8/16 ビット PPG のブロックダイヤグラム ..........................................................................171 A/D コンバータのブロックダイヤグラム .........202 CAN コントローラのブロックダイヤグラム ..........................................................................269 DTP/ 外部割込みのブロックダイヤグラム ..........................................................................190 ROM ミラー機能選択モジュールのブロックダイ ヤグラム ..........................................................354 UART0 のブロックダイヤグラム .......................225 アドレス一致検出機能のブロックダイヤグラム ..........................................................................346 インプットキャプチャのブロックダイヤグラム ..........................................................................142 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................120 サウンドジェネレータのブロックダイヤグラム ..........................................................................336 シリアル I/O のブロックダイヤグラム .............250 ステッピングモータコントローラのブロックダイ ヤグラム ..........................................................328 496 タイムベースタイマのブロックダイヤグラム ..........................................................................116 遅延割込みのブロックダイヤグラム .................. 72 低消費電力回路のブロックダイヤグラム ..........85 時計タイマのブロックダイヤグラム ................ 162 フラッシュメモリ全体のブロックダイヤグラム (2M ビットフラッシュメモリの例 ) ............359 ブロックダイヤグラム ............................................ 5 へ 変換データ 変換データ保護機能 ............................................ 221 変換データ保護機能 変換データ保護機能の使用上の注意 ................ 222 変換データ保護機能のフロー例 (EI2OS の場合 ) ..........................................................................222 変換動作 EI2OS を使った変換動作 .....................................214 ほ ポートデータレジスタ ポートデータレジスタ (PDR0 ∼ PDR9) ........... 112 ポート方向レジスタ ポート方向レジスタ (DDR0 ∼ DDR9) ..............113 ボーレート CLK 同期ボーレート ...........................................235 CLK 非同期ボーレート .......................................235 保護機能 変換データ保護機能 ............................................ 221 変換データ保護機能の使用上の注意 ................ 222 変換データ保護機能のフロー例 (EI2OS の場合 ) ..........................................................................222 ま マシンクロック マシンクロック初期化 ........................................ 100 マルチレベルメッセージバッファ マルチレベルメッセージバッファの構成の決定 ..........................................................................322 み 未定義命令 未定義命令の実行 ..................................................70 未定義命令の実行による例外発生 ...................... 70 め 命令 未定義命令の実行 ..................................................70 命令の種類 ............................................................ 418 命令マップの構造 ................................................456 「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注 意 ........................................................................41 命令一覧表 F2MC-16LX 命令一覧表 ...................................... 442 メインクロック メインクロックと PLL クロックの切換え ....... 100 メッセージバッファ マルチレベルメッセージバッファの構成の決定 ..........................................................................322 メッセージバッファ .....................................278, 304 メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................275 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................272 メッセージバッファ (x) による受信方法 ..........320 メッセージバッファ (x) による送信方法 ..........318 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................277 メッセージバッファ制御レジスタ メッセージバッファ制御レジスタ .....................278 メッセージバッファ有効レジスタ メッセージバッファ有効レジスタ (BVALR) ..........................................................................288 メモリアクセスモード メモリアクセスモード .........................................104 メモリ空間 CPU メモリ空間の概要 ..........................................21 メモリ空間における多バイト長データの配置 ............................................................................26 メモリ空間マップ ...................................................22 メモリマップ EEPROM メモリマップ .......................................350 も モード その他モード .........................................................361 単発モード .............................................................212 停止モード .............................................................213 連続モード .............................................................212 フラッシュメモリモード .....................................361 モード 0 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................242 モード 1 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................242 モード 2 受信動作時 ( モード 2) のフラグのセットタイミ ング ..................................................................243 モード 3 受信動作時 ( モード 0, モード 1, モード 3) のフラ グのセットタイミング ..................................242 モード端子 モード端子 .............................................................105 モードデータ モードデータ .........................................................106 ゆ ユーザスタックポインタ ユーザスタックポインタ (USP) とシステムスタッ クポインタ (SSP) ..............................................31 ユーザ電源 シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................397 フラッシュマイコンプログラマとの最小限の接続 例 ( ユーザ電源使用時 ) .................................401 よ 要求レベル設定レジスタ 要求レベル設定レジスタ (ELVR:External level register) .............................................................193 要求ロック 遅延割込み要求ロックの使用上の注意 ..............72 ら ライタ シリアル書込み接続例 ( ライタから電源供給時 ) ..........................................................................399 フラッシュマイコンプログラマとの最小限の接続 例 ( ライタから電源供給時 ) ........................ 403 ラストイベント表示レジスタ ラストイベント表示レジスタ (LEIR) ................ 283 り リセット リセット解除後の動作 .......................................... 77 リセット入力によって初期化されないレジスタ ............................................................................78 リセット要因 .......................................................... 80 リセット要因の発生 .............................................. 77 リセットベクタアドレス フラッシュメモリにおけるリセットベクタアドレ ス ......................................................................386 リモートフレーム データフレームおよびリモートフレームの受信に 対する処理 ......................................................313 リモートフレーム受信待機レジスタ リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................292 リモート要求受信レジスタ リモート要求受信レジスタ (RRTRR) ................ 297 リロード値 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................183 リロードレジスタ リロードレジスタ (PRLL,PRLH) ........................ 180 れ レート・データレジスタ レート・データレジスタ 0(URD0) の構成 ..........................................................................232 レート・データレジスタ 0(URD0) の内容 ..........................................................................232 レジスタ一覧 全体制御レジスタの一覧 .................................... 270 PWMS10/PWS20 PWM1&PWM2 選択レジスタ (PWS10/PWS20) ..........................................................................332 レジスタ 16 ビットタイマレジスタ (TMR)/16 ビットリロー ドレジスタ (TMRLR) のレジスタ配置 ........154 16 ビットリロードタイマのレジスタ ............... 150 8/16 ビット PPG のレジスタ ............................... 173 A/D 制御ステータスレジスタ 0(ADCS0) ..........204 497 A/D 制御ステータスレジスタ 1(ADCS1) ..........207 CAN 制御ステータスレジスタ (CSR) ................279 DTP/ 外部割込みのレジスタ ...............................191 DTP/ 割込み許可レジスタ (ENIR:Interrupt request enable register) ..................................................192 DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) ................................................192 EI2OS ステータスレジスタ (ISCS) .......................65 IDE レジスタ (IDER) ............................................289 ID レジスタ x(x=0 ∼ 15)(IDRx) ..........................305 PPG0/1 クロック選択レジスタ (PPG01) ............178 PPG0 動作モード制御レジスタ (PPGC0) ...........174 PPG1 動作モード制御レジスタ (PPGC1) ...........176 PWM1&PWM2 コンペアレジスタ (PWC10/ PWC20) ............................................................331 PWM1&PWM2 選択レジスタ (PWS10/PWS20) ..........................................................................332 PWM 制御 0 レジスタ (PWC0) ............................330 ROM ミラー機能選択レジスタ (ROMM) ..........355 UART0 のレジスタ ...............................................226 アウトプットコンペアのコンペアレジスタ ..........................................................................136 アウトプットコンペアの制御ステータスレジスタ (OCS0/1) ...........................................................137 アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................300 アクセプタンスマスクレジスタ0/1(AMR0/AMR1) ..........................................................................302 アナログ入力許可レジスタ .................................200 アナログ入力許可レジスタ (ADER) ..................114 インタラプトレベルマスクレジスタ (ILM) ........33 インプットキャプチャ制御ステータスレジスタ (ICS0/1) ............................................................143 インプットキャプチャデータレジスタ (IPCP0/1) ..........................................................................143 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................121 クロック選択レジスタ (CKSCR) ..........................89 コンディションコードレジスタ (CCR) ...............32 サウンドジェネレータのレジスタ .....................337 サブ秒レジスタ (WTBR) .....................................167 周波数データレジスタ (SGFR) ...........................340 受信オーバランレジスタ (ROVRR) ...................298 受信完了レジスタ (RCR) .....................................296 受信割込み許可レジスタ (RIER) ........................299 シリアル I/O のレジスタ .....................................251 シリアルインプットデータレジスタ 0(UIDR0) と シリアルアウトプットレジスタ 0(UODR0) ..........................................................................231 シリアルシフトデータレジスタ (SDR) .............256 シリアルステータスレジスタ 0(USR0) の構成 ..........................................................................229 シリアルモード制御ステータスレジスタ (SMCS) ..........................................................................252 シリアルモード制御レジスタ 0(UMC0) の構成 ..........................................................................227 振幅データレジスタ (SGAR) ..............................341 ステッピングモータコントローラのレジスタ ..........................................................................329 制御ステータスレジスタ (FMCS) ......................363 全体制御レジスタ .................................................278 専用レジスタ ...........................................................27 送信 RTR レジスタ (TRTRR) ..............................291 498 送信解除レジスタ (TCANR) ............................... 293 送信要求レジスタ (TREQR) ................................290 送信割込み許可レジスタ (TIER) ........................ 295 タイマカウンタ制御ステータスレジスタ (TCCS) ..........................................................................131 タイマ制御ステータスレジスタ (TMCSR) の配置 ..........................................................................151 タイマ制御レジスタ (WTCR) ............................. 165 タイムベースタイマ制御レジスタ (TBTC) ..........................................................................117 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) ......... 73 低消費電力制御回路のレジスタ .......................... 86 低消費電力モード制御レジスタ (LPMCR) ......... 87 デクリメントグレードレジスタ (SGDR) ..........342 トーンカウントレジスタ (SGTR) ...................... 343 時計タイマのレジスタ ........................................ 163 汎用レジスタ .......................................................... 28 ビットタイミングレジスタ (BTR) .....................286 秒 / 分 / 時間レジスタ (WTSR/WTMR/WTHR) ..........................................................................168 フラッシュメモリのレジスタ ............................358 プログラムアドレス検出制御ステータスレジスタ (PACSR) ...........................................................348 プログラムアドレス検出レジスタ (PADR0/ PADR1) ............................................................ 347 ポートデータレジスタ (PDR0 ∼ PDR9) ........... 112 ポート方向レジスタ (DDR0 ∼ DDR9) ..............113 メッセージバッファ制御レジスタ .................... 278 メッセージバッファ有効レジスタ (BVALR) ..........................................................................288 ラストイベント表示レジスタ (LEIR) ................ 283 リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................292 リモート要求受信レジスタ (RRTRR) ................ 297 リロードレジスタ (PRLL,PRLH) ........................ 180 レート・データレジスタ 0(URD0) の構成 ..........................................................................232 要求レベル設定レジスタ (ELVR:External level register) .............................................................193 レジスタバンク ......................................................36 レジスタバンクポインタ (RP) ..............................33 割込み制御レジスタ (ICR) ....................................48 A/D データレジスタ 0/1(ADCR0,ADCR1) ........210 DLC レジスタ x(x=0 ∼ 15)(DLCRx) .................. 307 I/O ポートのレジスタ .......................................... 111 データレジスタ x(x=0 ∼ 15)(DTRx) .................. 308 レジスタ一覧 16 ビットアウトプットコンペアのレジスタ一覧 ..........................................................................128 16 ビットインプットキャプチャのレジスタ一覧 ..........................................................................128 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................128 A/D コンバータのレジスタ一覧 ........................ 203 メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................275 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................272 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................277 レジスタバンク レジスタバンク ......................................................36 レジスタバンクポインタ レジスタバンクポインタ (RP) ..............................33 連続モード 連続モード .............................................................212 連続モード時の EI2OS の起動例 ........................217 わ 割込み 8/16 ビット PPG の割込み ...................................186 ソフトウェア割込み .........................................45, 59 多重割込み ...............................................................58 ハードウェア割込み .........................................44, 54 割込み制御レジスタ 割込み制御レジスタ (ICR) ....................................48 割込みフロー 割込みフロー ...........................................................52 割込みベクタ 割込みベクタ ...........................................................47 割込みベクタ一覧表 ...............................................47 割込みベクタ一覧 MB90590 シリーズ割込みベクタ一覧表 .............59 割込み抑止命令 割込み抑止命令 .......................................................40 割込み抑止命令とプリフィックス命令に関する制 約 ........................................................................40 499 500 CM44-10105-6 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC-16LX 16 ビット・マイクロコントローラ MB90590 Series ハードウェアマニュアル 2008 年 7 月 第 6 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 ビジネス推進部