本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10117-3 F2MC-16LX 16 ビット・マイクロコントローラ MB90440G Series ハードウェアマニュアル F2MC-16LX 16 ビット・マイクロコントローラ MB90440G Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック 項目をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして,平素より格別のご愛読を賜り厚く お礼申し上げます。 MB90440G シリーズは ,ASIC(Application Specific IC) 対応が可能なオリジナル 16 ビッ ト・ワンチップマイクロコントローラである F2MC-16LX ファミリの汎用品の 1 つとし て開発された製品です。 本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に ,MB90440G シ リーズの機能や動作について記載しています。本書をご一読ください。 ■ 商標 F2MCは, FUJITSU Flexible Microcontrollerの略で富士通マイクロエレクトロニクス株式 会社の商標です。 その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録 商標です。 i ■ 本書の全体構成 本書は , 以下に示す 25 の章および付録から構成されています。 第 1 章 概要 MB90440G シリーズの特長と基本的な仕様について説明します。 第 2 章 CPU CPU について説明します。 第 3 章 割込み 割込みの機能と動作について説明します。 第 4 章 クロック クロックについて説明します。 第 5 章 低消費電力モード 低消費電力モードについて説明します。 第 6 章 リセット リセットについて説明します。 第 7 章 メモリアクセスモード メモリアクセスモードの機能と動作について説明します。 第 8 章 I/O ポート I/O ポートの機能について説明します。 第 9 章 タイムベースタイマ タイムベースタイマの機能と動作について説明します。 第 10 章 ウォッチドッグタイマ ウオッチドッグタイマの機能と動作について説明します。 第 11 章 時計タイマ 時計タイマの機能と動作について説明します。 第 12 章 16 ビット入出力タイマ 16 ビット入出力タイマの機能と動作について説明します。 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 16 ビットリロードタイマ ( イベントカウント機能付 ) の機能と動作について説明し ます。 第 14 章 8/16 ビット PPG 8/16 ビット PPG の機能と動作について説明します。 第 15 章 遅延割込み 遅延割込みの機能と動作について説明します。 第 16 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明します。 第 17 章 A/D コンバータ A/D コンバータの機能と動作について説明します。 第 18 章 UART0 UART0 の機能と動作について示します。 ii 第 19 章 UART1(SCI) UART1(SCI) の機能と動作について示します。 第 20 章 シリアル I/O シリアル I/O の機能と動作について示します。 第 21 章 CAN コントローラ CAN コントローラの機能と概要について説明します。 第 22 章 アドレス一致検出機能 アドレス一致検出の機能と動作について説明します。 第 23 章 ROM ミラー機能 選択モジュール ROM ミラー機能選択モジュールについて説明します。 第 24 章 1M ビット フラッシュメモリ 1M ビットフラッシュメモリの機能と動作について説明します。フラッシュメモリ へのデータ書込み / 消去の方法には , 下記の 3 とおりの方法があります。1) パラレ ルライタ 2) シリアル専用ライタ 3) プログラム実行による書込み/消去 ここでは,"3) プログラム実行による書込み / 消去 " について解説します。 第 25 章 MB90F443G シリアル書込み接続例 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フラッシュマ イコンプログラマを用いた場合の , シリアル書込みの接続例について説明します。 付録 ここでは ,I/O マップ , 命令一覧表などを掲載します。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright©2001-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 入出力回路形式 .................................................................................................................... 15 デバイスの取扱いに関する注意事項 .................................................................................... 17 CPU.......................................................................................................... 21 2.1 CPU の概要 .......................................................................................................................... 22 2.2 メモリ空間............................................................................................................................ 23 2.3 メモリ空間マップ ................................................................................................................. 24 2.4 リニア方式によるアドレス指定 ........................................................................................... 25 2.5 バンク方式によるアドレス指定 ........................................................................................... 26 2.6 メモリ空間における多バイト長データ................................................................................. 28 2.7 レジスタ ............................................................................................................................... 29 2.7.1 アキュムレータ (A)..................................................................................................... 32 2.7.2 ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) ....................... 33 2.7.3 プロセッサステータス (PS) ....................................................................................... 34 2.7.4 プログラムカウンタ (PC)........................................................................................... 37 2.8 レジスタバンク .................................................................................................................... 38 2.9 プリフィックスコード.......................................................................................................... 40 2.10 割込み抑止命令 .................................................................................................................... 43 第3章 割込み ...................................................................................................... 45 3.1 割込みの概要 ........................................................................................................................ 46 3.2 割込み要因............................................................................................................................ 47 3.3 割込みベクタ ........................................................................................................................ 49 3.4 ハードウェア割込み ............................................................................................................. 51 3.4.1 ハードウェア割込みの動作 ........................................................................................ 53 3.4.2 ハードウェア割込みの動作フロー.............................................................................. 55 3.5 ソフトウェア割込み ............................................................................................................. 56 3.6 拡張インテリジェント I/O サービス (EI2OS) ....................................................................... 58 3.6.1 割込み制御レジスタ (ICR).......................................................................................... 60 3.6.2 拡張インテリジェント I/O サービスディスクリプタ (ISD) ........................................ 63 3.6.3 拡張インテリジェント I/O サービス (EI2OS) の動作 ................................................. 67 3.6.4 拡張インテリジェント I/O サービス (EI2OS) の実行時間 .......................................... 69 3.7 未定義命令の実行による例外発生........................................................................................ 70 第4章 4.1 4.2 クロック................................................................................................... 71 クロックの概要 .................................................................................................................... 72 クロック発生部のブロックダイヤグラム ............................................................................. 74 v 4.3 4.4 4.5 4.6 第5章 クロック選択レジスタ (CKSCR).......................................................................................... 76 クロックモード .................................................................................................................... 80 発振安定待ち時間 ................................................................................................................. 83 振動子と外部クロックの接続 ............................................................................................... 84 低消費電力モード .................................................................................... 85 5.1 低消費電力モードの概要 ...................................................................................................... 86 5.2 低消費電力制御回路のブロックダイヤグラム...................................................................... 89 5.3 低消費電力モード制御レジスタ (LPMCR) ........................................................................... 91 5.4 CPU 間欠動作モード ............................................................................................................ 94 5.5 スタンバイモード ................................................................................................................. 95 5.5.1 スリープモード .......................................................................................................... 96 5.5.2 タイムベースタイマモード ........................................................................................ 99 5.5.3 時計モード ............................................................................................................... 101 5.5.4 ストップモード ........................................................................................................ 104 5.6 状態遷移図.......................................................................................................................... 107 5.7 スタンバイモード , ホールド , リセット時の端子状態 ....................................................... 109 5.8 低消費電力モード使用上の注意 ......................................................................................... 112 第6章 6.1 6.2 6.3 6.4 6.5 6.6 第7章 リセット................................................................................................. 115 リセットの概要 .................................................................................................................. 116 リセット要因と発振安定待ち時間...................................................................................... 118 外部リセット端子 ............................................................................................................... 119 リセット動作 ...................................................................................................................... 120 リセット要因ビット ........................................................................................................... 122 リセットによる各端子の状態 ............................................................................................. 124 メモリアクセスモード ........................................................................... 125 7.1 メモリアクセスモードの概要 ............................................................................................. 126 7.1.1 モード端子 ............................................................................................................... 127 7.1.2 モードデータ ............................................................................................................ 128 7.1.3 バスモード別メモリ空間 .......................................................................................... 129 7.2 外部メモリアクセス ( バス端子制御回路 ) ......................................................................... 131 7.2.1 外部メモリアクセス ( 外部バス端子制御回路 ) のレジスタ ..................................... 132 7.2.2 自動レディ機能選択レジスタ (ARSR) ..................................................................... 133 7.2.3 外部アドレス出力制御レジスタ (HACR).................................................................. 135 7.2.4 バス制御信号選択レジスタ (ECSR) ......................................................................... 136 7.3 外部メモリアクセス制御信号の動作 .................................................................................. 139 7.3.1 レディ機能 ............................................................................................................... 141 7.3.2 ホールド機能 ............................................................................................................ 143 第8章 I/O ポート............................................................................................... 145 8.1 I/O ポート ........................................................................................................................... 146 8.2 I/O ポートの入力レベル...................................................................................................... 147 8.3 I/O ポートのレジスタ一覧 .................................................................................................. 148 8.3.1 ポートデータレジスタ (PDR)................................................................................... 149 8.3.2 ポート入力レベル選択レジスタ (PILR).................................................................... 150 8.3.3 ポート方向レジスタ (DDR) ...................................................................................... 151 8.3.4 プルアップ制御レジスタ (PUCR) ............................................................................ 152 vi 8.3.5 第9章 9.1 9.2 9.3 アナログ入力許可レジスタ (ADER) ......................................................................... 153 タイムベースタイマ............................................................................... 155 タイムベースタイマの概要................................................................................................. 156 タイムベースタイマ制御レジスタ (TBTC) ......................................................................... 157 タイムベースタイマの動作................................................................................................. 159 第 10 章 ウォッチドッグタイマ ........................................................................... 161 10.1 ウォッチドッグタイマの概要 ............................................................................................. 162 10.2 ウォッチドッグタイマ制御レジスタ (WDTC) .................................................................... 163 10.3 ウォッチドッグタイマの動作 ............................................................................................. 165 第 11 章 時計タイマ ............................................................................................. 167 11.1 時計タイマの概要 ............................................................................................................... 168 11.2 時計タイマ制御レジスタ (WTC)......................................................................................... 169 11.3 時計タイマの動作 ............................................................................................................... 171 第 12 章 16 ビット入出力タイマ .......................................................................... 173 12.1 16 ビット入出力タイマの概要............................................................................................ 174 12.2 16 ビット入出力タイマのレジスタ .................................................................................... 176 12.3 16 ビットフリーランタイマ ............................................................................................... 177 12.3.1 16 ビットフリーランタイマのレジスタ ................................................................... 178 12.3.2 タイマコントロールステータスレジスタ................................................................. 179 12.3.3 16 ビットフリーランタイマの動作 .......................................................................... 181 12.4 アウトプットコンペア........................................................................................................ 183 12.4.1 アウトプットコンペアのレジスタ............................................................................ 184 12.4.2 アウトプットコンペアのコントロールステータスレジスタ .................................... 185 12.4.3 16 ビットアウトプットコンペアの動作 ................................................................... 188 12.5 インプットキャプチャ........................................................................................................ 190 12.5.1 インプットキャプチャのレジスタ............................................................................ 191 12.5.2 16 ビットインプットキャプチャの動作 ................................................................... 193 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ).......................... 195 13.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 .......................................... 196 13.2 16 ビットリロードタイマのレジスタ................................................................................. 198 13.2.1 タイマコントロールステータスレジスタ (TMCSR)................................................. 199 13.2.2 16 ビットタイマレジスタ (TMR) /16 ビットリロードレジスタ (TMRLR) のレジスタ配置......................................................................................... 202 13.3 16 ビットリロードタイマの内部クロック動作と外部クロック動作 .................................. 203 13.4 16 ビットリロードタイマのアンダフロー動作 .................................................................. 205 13.5 16 ビットリロードタイマの出力端子機能.......................................................................... 206 13.6 カウンタの動作状態 ........................................................................................................... 207 第 14 章 8/16 ビット PPG .................................................................................... 209 14.1 8/16 ビット PPG の概要..................................................................................................... 210 14.2 8/16 ビット PPG のブロックダイヤグラム ........................................................................ 211 14.3 8/16 ビット PPG のレジスタ.............................................................................................. 213 14.3.1 PPG0 動作モード制御レジスタ (PPGC0) ................................................................ 214 14.3.2 PPG1 動作モード制御レジスタ (PPGC1) ................................................................ 216 vii 14.3.3 PPG0/1 クロック選択レジスタ (PPG01) ................................................................. 219 14.3.4 リロードレジスタ (PRLL, PRLH)............................................................................. 220 14.4 8/16 ビット PPG の動作..................................................................................................... 221 14.5 8/16 ビット PPG のカウントクロックの選択 .................................................................... 223 14.6 8/16 ビット PPG のパルスの端子出力の制御 .................................................................... 224 14.7 8/16 ビット PPG の割込み ................................................................................................. 225 14.8 8/16 ビット PPG の各ハードウェアの初期値 .................................................................... 226 第 15 章 遅延割込み ............................................................................................. 229 15.1 遅延割込みモジュールの概要 ............................................................................................. 230 15.2 遅延割込みのレジスタ........................................................................................................ 231 15.3 遅延割込みの動作 ............................................................................................................... 232 第 16 章 16.1 16.2 16.3 16.4 16.5 DTP/ 外部割込み .................................................................................... 233 DTP/ 外部割込みの概要...................................................................................................... 234 DTP/ 外部割込みのレジスタ............................................................................................... 235 DTP/ 外部割込みの動作...................................................................................................... 237 DTP 要求と外部割込み要求の切換え ................................................................................. 240 DTP/ 外部割込みの使用上の注意 ....................................................................................... 241 第 17 章 A/D コンバータ ...................................................................................... 243 17.1 A/D コンバータの特長 ........................................................................................................ 244 17.2 A/D コンバータのブロックダイヤグラム ........................................................................... 246 17.3 A/D コンバータのレジスタ一覧.......................................................................................... 247 17.3.1 A/D コントロールステータスレジスタ (ADCS0) ..................................................... 248 17.3.2 A/D コントロールステータスレジスタ (ADCS1) ..................................................... 251 17.3.3 データレジスタ (ADCR0, ADCR1)........................................................................... 253 17.4 A/D コンバータの動作 ........................................................................................................ 255 17.5 EI2OS を使った変換動作.................................................................................................... 257 17.5.1 単発モード時の EI2OS の起動例 .............................................................................. 258 17.5.2 連続モード時の EI2OS の起動例 .............................................................................. 259 17.5.3 停止モード時の EI2OS の起動例 .............................................................................. 260 17.6 変換データ保護機能 ........................................................................................................... 261 第 18 章 UART0 ................................................................................................... 263 18.1 UART0 の特長 .................................................................................................................... 264 18.2 UART0 のブロックダイヤグラム ....................................................................................... 265 18.3 UART0 のレジスタ ............................................................................................................. 266 18.3.1 シリアルモードコントロールレジスタ 0(UMC0)..................................................... 267 18.3.2 ステータスレジスタ 0(USR0) .................................................................................. 269 18.3.3 インプットデータレジスタ 0(UIDR0) とアウトプットデータレジスタ 0(UODR0) ................................................................................................................................. 271 18.3.4 レート・データレジスタ 0(URD0)........................................................................... 272 18.4 UART0 の動作 .................................................................................................................... 274 18.5 ボーレート.......................................................................................................................... 275 18.6 内部クロックおよび外部クロック...................................................................................... 277 18.7 転送データフォーマット .................................................................................................... 278 18.8 パリティビット .................................................................................................................. 279 18.9 割込み生成とフラグのセットタイミング ........................................................................... 280 viii 18.9.1 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング............... 281 18.9.2 受信動作時 ( モード 2) のフラグのセットタイミング .............................................. 282 18.9.3 送信動作時のフラグのセットタイミング................................................................. 283 18.9.4 送受信動作時のステータスフラグ............................................................................ 284 18.10 UART0 の応用例................................................................................................................. 285 第 19 章 UART1(SCI) ........................................................................................... 287 19.1 UART1 の特長 .................................................................................................................... 288 19.2 UART1 のブロックダイヤグラム ....................................................................................... 289 19.3 UART1 のレジスタ一覧...................................................................................................... 290 19.3.1 シリアルモードレジスタ 1(SMR1)........................................................................... 291 19.3.2 シリアルコントロールレジスタ 1(SCR1) ................................................................ 293 19.3.3 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1(SODR1)................................................... 295 19.3.4 シリアルステータスレジスタ 1(SSR1) .................................................................... 296 19.3.5 UART1 プリスケーラコントロールレジスタ (U1CDCR) ......................................... 298 19.4 UART1 の動作モードとクロック選択 ................................................................................ 299 19.4.1 非同期 ( 調歩同期 ) モード........................................................................................ 302 19.4.2 CLK 同期モード........................................................................................................ 303 19.5 UART1 のフラグと割込み発生要因.................................................................................... 305 19.6 UART1 の割込みとフラグのセットタイミング.................................................................. 306 19.7 ネガティブクロック動作 .................................................................................................... 308 19.8 UART1 の応用例と使用上の注意 ....................................................................................... 309 第 20 章 シリアル I/O ........................................................................................... 311 20.1 シリアル I/O の概要 ............................................................................................................ 312 20.2 シリアル I/O のレジスタ..................................................................................................... 313 20.2.1 シリアルモードコントロールステータスレジスタ (SMCS)..................................... 314 20.2.2 シリアルデータレジスタ (SDR) ............................................................................... 317 20.2.3 シリアル I/O プリスケーラ (SCDCR)....................................................................... 318 20.3 シリアル I/O の動作 ............................................................................................................ 319 20.3.1 シフトクロック ........................................................................................................ 320 20.3.2 シリアル I/O の動作状態 .......................................................................................... 321 20.3.3 シフト動作のスタート / ストップタイミング .......................................................... 323 20.3.4 拡張シリアル I/O インタフェースの割込み機能....................................................... 326 20.4 ネガティブクロック動作 .................................................................................................... 327 第 21 章 CAN コントローラ ................................................................................. 329 21.1 CAN コントローラの特長................................................................................................... 330 21.2 CAN コントローラのブロックダイヤグラム ...................................................................... 331 21.3 全体コントロールレジスタの一覧...................................................................................... 332 21.4 メッセージバッファ (ID レジスタ ) の一覧......................................................................... 334 21.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 ......................................... 337 21.6 CAN コントローラのレジスタ分類 .................................................................................... 341 21.6.1 制御ステータスレジスタ (CSR) ............................................................................... 342 21.6.2 バス動作停止ビット (HALT=1)................................................................................. 345 21.6.3 ラストイベント表示レジスタ (LEIR) ....................................................................... 346 21.6.4 受信および送信エラーカウンタ (RTEC) .................................................................. 348 21.6.5 ビットタイミングレジスタ (BTR)............................................................................ 349 ix 21.6.6 メッセージバッファ有効レジスタ (BVALR) ............................................................ 351 21.6.7 IDE レジスタ (IDER) ................................................................................................ 352 21.6.8 送信要求レジスタ (TREQR)..................................................................................... 353 21.6.9 送信 RTR レジスタ (TRTRR) ................................................................................... 354 21.6.10 リモートフレーム受信待機レジスタ (RFWTR)........................................................ 355 21.6.11 送信解除レジスタ (TCANR) ..................................................................................... 356 21.6.12 送信完了レジスタ (TCR) .......................................................................................... 357 21.6.13 送信割込み許可レジスタ (TIER) .............................................................................. 358 21.6.14 受信完了レジスタ (RCR).......................................................................................... 359 21.6.15 リモート要求受信レジスタ (RRTRR) ...................................................................... 360 21.6.16 受信オーバランレジスタ (ROVRR).......................................................................... 361 21.6.17 受信割込み許可レジスタ (RIER) .............................................................................. 362 21.6.18 アクセプタンスマスク選択レジスタ (AMSR) .......................................................... 363 21.6.19 アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) ...................................... 364 21.6.20 メッセージバッファ ................................................................................................. 366 21.6.21 ID レジスタ x(x=0 ∼ 15)(IDRx)................................................................................ 367 21.6.22 DLC レジスタ x(x=0 ∼ 15)(DLCRx)......................................................................... 369 21.6.23 データレジスタ x(x=0 ∼ 15)(DTRx) ........................................................................ 370 21.7 CAN コントローラの送信................................................................................................... 372 21.8 CAN コントローラの受信................................................................................................... 375 21.9 CAN コントローラの受信フローチャート.......................................................................... 378 21.10 CAN コントローラの使用方法............................................................................................ 379 21.11 メッセージバッファ (x) による送信方法 ............................................................................ 381 21.12 メッセージバッファ (x) による受信方法 ............................................................................ 383 21.13 マルチレベルメッセージバッファの構成の決定 ................................................................ 385 21.14 CAN2 RX/TX 端子の接続先の設定 ..................................................................................... 387 21.15 CAN コントローラの使用上の注意 .................................................................................... 388 第 22 章 22.1 22.2 22.3 22.4 アドレス一致検出機能 ........................................................................... 391 アドレス一致検出機能の概要 ............................................................................................. 392 アドレス一致検出機能のレジスタ...................................................................................... 393 アドレス一致検出機能の動作 ............................................................................................. 395 アドレス一致検出機能の使用例 ......................................................................................... 396 第 23 章 ROM ミラー機能選択モジュール........................................................... 399 23.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 400 23.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 401 第 24 章 1M ビットフラッシュメモリ.................................................................. 403 24.1 1M ビットフラッシュメモリの概要 ................................................................................... 404 24.2 フラッシュメモリのセクタ構成 ......................................................................................... 405 24.3 書込み / 消去モード ............................................................................................................ 406 24.4 フラッシュメモリコントロールステータスレジスタ (FMCS) ........................................... 408 24.5 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 410 24.6 自動アルゴリズム実行状態の確認...................................................................................... 411 24.6.1 データポーリングフラグ (DQ7) ............................................................................... 413 24.6.2 トグルビットフラグ (DQ6) ...................................................................................... 414 24.6.3 タイミングリミット超過フラグ (DQ5) .................................................................... 415 24.6.4 セクタ消去タイマフラグ (DQ3) ............................................................................... 416 x 24.6.5 トグルビット 2 フラグ (DQ2)................................................................................... 417 24.7 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 419 24.7.1 フラッシュメモリの読出し / リセット状態 .............................................................. 420 24.7.2 フラッシュメモリへのデータ書込み ........................................................................ 421 24.7.3 フラッシュメモリの全データの消去 ( チップ消去 )................................................. 423 24.7.4 フラッシュメモリの任意データの消去 ( セクタ消去 ) ............................................. 424 24.7.5 フラッシュメモリのセクタ消去の一時停止 ............................................................. 426 24.7.6 フラッシュメモリのセクタ消去の再開 .................................................................... 427 24.8 1M ビットフラッシュメモリ使用上の注意......................................................................... 428 24.9 フラッシュセキュリティの特長 ......................................................................................... 430 24.10 1M ビットフラッシュメモリのプログラム例 ..................................................................... 431 第 25 章 25.1 25.2 25.3 25.4 25.5 付録 付録 A 付録 B B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 索引 MB90F443G シリアル書込み接続例...................................................... 435 MB90F443G シリアル書込み接続の基本構成 .................................................................... 436 シリアル書込み接続例 ( ユーザ電源使用時 )...................................................................... 439 シリアル書込み接続例 ( ライタから電源供給時 )............................................................... 441 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ....................... 443 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )................ 445 ............................................................................................................... 447 I/O マップ ...................................................................................................................... 448 命令 ............................................................................................................................... 456 命令の種類 .................................................................................................................. 457 アドレッシング ........................................................................................................... 458 直接アドレッシング.................................................................................................... 460 間接アドレッシング.................................................................................................... 467 実行サイクル数 ........................................................................................................... 474 実効アドレスフィールド ............................................................................................ 476 命令一覧表の読み方.................................................................................................... 478 F2MC-16LX 命令一覧表 .............................................................................................. 481 命令マップ .................................................................................................................. 495 ............................................................................................................... 517 xi xii 本版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。 - - FAR を削除 (FAR/ セラミック発振子→セラミック発振子 ) - - 品種名 を変更 (MB90443G ( 開発中 ) → MB90443G) - - 端子名 を変更 (TOUT → TOT) - - レジスタ名を変更 (EPCR レジスタ → ECSR レジスタ ) 8 第 1 章 概要 1.6 端子機能説明 表 1.6-1 端子機能説明 を変更 ● 水晶発振回路について を変更 ( 各量産品において、ご使用される発振子メーカに発振評価 依頼をしてください。を追加 ) 19 第 1 章 概要 1.8 デバイスの取扱いに関 する注意事項 ● A/D コンバータの電源 , アナログ入力の投入順序について を変更 (( アナログ電源とデジタル電源を同時に投入 , 遮断すること は問題ありません ) を削除 ) ● 供給電圧の安定化 を追加 60 第 3 章 割込み 3.6.1 割込み制御レジスタ (ICR) 図 3.6-2 割込み制御レジスタ (ICR) の < 注意事項 > を変更 (ICS3 と ICS2 には , 常に "1" が読込まれます。を削除 ) 72 第 4 章 クロック 4.1 クロックの概要 ■ クロックの概要 の < 注意事項 > を変更 (3 MHz ∼ 5 MHz → 3 MHz ∼ 16 MHz) 76 第 4 章 クロック 4.3 クロック選択レジスタ (CKSCR) 77 93 第 5 章 低消費電力モード 5.3 低消費電力モード制御 レジスタ (LPMCR) 107 108 図 4.3-1 クロック選択レジスタ (CKSCR) の構成 の bit15 SCM のアクセスを変更 ((R/W → R)) 表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説 明 を変更 (bit15 SCM: と bit14 MCM: に ・書込みは , 動作に影響しませ ん。を追加 ) ■ 低消費電力モード制御レジスタへのアクセス を変更 表 5.3-2 低消費電力モードへ遷移する場合に使用する命令一 覧 を変更 図 5.6-1 状態遷移図 を変更 第 5 章 低消費電力モード 5.6 状態遷移図 表 5.6-1 低消費電力モードの動作状態 を変更 ( タイムベースタイマ *1 → PLL タイムベースタイマ *1) ( タイムベースタイマ *2 → メインタイムベースタイマ *2) xiii ページ 変更内容(詳細は本文を参照してください。 表 5.7-1 シングルチップモード時の各端子状態 を変更 (*3: " 入力遮断 " とは端子からすぐの入力ゲートの動作を禁 止する状態を意味します。→ *3: 入力遮断状態では , 入力は マスクされ , CMOS 選択時は "L" レベルが , TTL 選択時は "H" レベルが内部に伝わります。) 109 第 5 章 低消費電力モード 5.7 スタンバイモード , ホー ルド , リセット時の 端子状態 114 第 5 章 低消費電力モード 5.8 低消費電力モード使用 上の注意 ■ スタンバイモード遷移のための低消費電力モード制御レ ジスタ (LPMCR) へアクセスする際の注意事項 を追加 ■ 16 ビットリロードタイマの端子名 を追加 197 第 13 章 16 ビットリロード タイマ ( イベントカウント 機能付 ) 13.1 16 ビットリロードタイ マ ( イベントカウント機能 付 ) の概要 235 236 241 第 16 章 DTP/ 外部割込み 16.2 DTP/ 外部割込みの レジスタ 第 16 章 DTP/ 外部割込み 16.5 DTP/ 外部割込みの 使用上の注意 ■ DTP/ 割込み許可レジスタ (ENIR:Interrupt request enable register) に < 注意事項 > を追加 ■ DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) の < 注意事項 > に・項目を追加 ● DTP/ 外部割込みの動作手順 を変更 (1. 外部割込み入力として使用する端子と兼用する汎用入出 力ポートを入力ポートに設定する。を追加 ) ● 外部割込み要求レベル を変更 < 注意事項 > に・項目を追加 249 第 17 章 A/D コンバータ 17.3.1 A/D コントロールス テータスレジスタ (ADCS0) 309 第 19 章 UART1(SCI) 19.8 UART1 の応用例と 使用上の注意 図 19.8-1 モード 1 使用時のシステム構築例 を変更 (SO → SOT1) (SI → SIN1) 342 344 21.6.1 制御ステータスレジスタ (CSR) の概要文を変更 第 21 章 CAN コントローラ 21.6.1 制御ステータスレジ スタ (CSR) ■ 制御ステータスレジスタ (CSR) の [bit0] HALT: バス動作停 止ビット に 読出し時 , 書込み時の説明 と < 注意事項 > と 参考プログラム例 : を追加 参考プログラム例 : を変更 (for (i=0; ( i<=500 ) || ( IO_CANCT0.CSR.bit.HALT==0); i++); → for (i=0; ( i<=500 ) && ( IO_CANCT0.CSR.bit.HALT==0); i++);) 345 第 21 章 CAN コントローラ 21.6.2 バス動作停止ビット (HALT=1) ■ バス動作停止を解除する条件 (HALT=0) の < 注意事項 > を変更 (・バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になっていることを確認後 , "0" を書き込 んでください を追加 ) 355 第 21 章 CAN コントローラ 21.6.10 リモートフレーム受 信待機レジスタ (RFWTR) 図 21.6-12 リモートフレーム受信待機レジスタ (RFWTR) の 初期値全部 を変更 ((0) → (X)) xiv ページ 変更内容(詳細は本文を参照してください。 410 第 24 章 1M ビット フラッ シュメモリ 24.5 フラッシュメモリ自動 アルゴリズム起動方法 24.5 フラッシュメモリ自動アルゴリズム起動方法 の 概要 を 変更 ( 読出し / リセット , 書込み , チップ消去の 4 種類 → 読出し / リセット , 書込み , チップ消去 , セクタ消去の 4 種類 ) 図 24.7-2 フラッシュメモリのセクタ消去手順の例 を変更 425 第 24 章 1M ビット フラッ シュメモリ 24.7.4 フラッシュメモリの 任意データの消去 ( セクタ 消去 ) 426 第 24 章 1M ビット フラッ シュメモリ 24.7.5 フラッシュメモリの セクタ消去の一時停止 429 第 24 章 1M ビット フラッ シュメモリ 24.8 1M ビットフラッシュ メモリ使用上の注意 436 437 456 ∼ 516 第 25 章 MB90F443G シリア ル書込み接続例 25.1 MB90F443G シリアル 書込み接続の基本構成 付録 B 命令 ■ フラッシュメモリのセクタ消去の一時停止 を変更 (…最大 15µs 後 , 消去一時停止状態に入ります。→ …最大 20µs 後 , 消去一時停止状態に入ります。セクタ消去 一時停止コマンドは , セクタ消去コマンドあるいはセクタ消 去再開コマンド発行後 ,20µs 以上後に行ってください。) ● VID の適用 を変更 ( セクタプロテクト動作に必要な VID の適用は , 供給電圧が オンのとき常に開始し , 終了する必要があります。→ セクタプロテクト動作に必要な VID の印加は , 電源がオンの とき開始し , 終了する必要があります。) ■ MB90F443G シリアル書込み接続の基本構成 を変更 表 25.1-1 富士通標準シリアルオンボード書込みに使用する 端子 を変更 「付録 B 命令」全体を変更 変更箇所は , 本文中のページ左側の│によって示しています。 xv xvi 第1章 概要 MB90440G シリーズの特長と基本的な仕様につい て説明します。 1.1 製品概要 1.2 特長 1.3 ブロックダイヤグラム 1.4 パッケージ外形寸法図 1.5 端子配列図 1.6 端子機能説明 1.7 入出力回路形式 1.8 デバイスの取扱いに関する注意事項 1 第 1 章 概要 1.1 製品概要 MB90440G シリーズの製品概要を示します。 ■ MB90440G シリーズの製品概要 表 1.1-1 製品概要 特長 MB90V440G MB90F443G MB90443G CPU F2MC-16LX CPU システムクロック オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4,PLL 停止時 1/2) 最小命令実行時間 62.5ns(4MHz 原発振 4 逓倍) ROM 容量 外部 フラッシュメモリ 128K バイト MASK ROM 128K バイト RAM 容量 14K バイト 6K バイト 6K バイト パッケージ PGA-256 QFP-100 エミュレータ 専用電源 * なし - * : エミュレーションポッド MB2145-507 を使用する際のディップスイッチ S2 の設定です。詳細につ いては『MB2145-507 ハードウェアマニュアル』(「2.7 エミュレータ専用電源端子」) を参照して ください。 2 第 1 章 概要 特長 1.2 表 1.2-1 に ,MB90440G シリーズの特長を示します。 ■ 特長 表 1.2-1 MB90440G シリーズの特長 (1 / 2) 機能 特長 UART0 全二重ダブルバッファ方式 非同期 / 同期転送 ( スタート / ストップビット付 ) をサポートします。 ボーレート 4808/5208/9615/10417/19230/38460/62500/500000bps ( 非同期 ) システムクロック =16MHz 時 500K/1M/2Mbps ( 同期 ) UART1(SCI) 全二重ダブルバッファ方式 非同期 ( スタート / ストップ同期 ) および CLK 同期通信 ボーレート 601bps ∼ 250kbps ( 非同期 ) 31.25kbps ∼ 2Mbps ( 同期 ) シリアル I/O MBS または LSB から転送開始可能です。 内部クロック同期転送および外部クロック同期転送をサポートします。 ポジティブエッジとネガティブエッジクロック同期をサポートします。 ボーレート システムクロック =16MHz 時 31.25k/62.5k/125k/500k/1M/2Mbps A/D コンバータ 10 ビットまたは 8 ビットの分解能 8 本の入力チャネル 変換時間 :6.12µs(1ch あたり) 16ビットリロー ドタイマ (2ch) 動作クロック周波数 fsys/21 , fsys/23, fsys/25(fsys= システムクロック周波数) 外部イベントカウント機能をサポートします。 16ビット入出力 タイマ オーバフロー時に割込み信号を出力します。 アウトプットコンペア (ch.0) との照合時に , タイマクリアをサポートします。 動作クロック周波数 fsys/22 , fsys/24, fsys/26, fsys/28(fsys= システムクロック周波数) 16ビットアウト プットコンペア (4ch) 16 ビット入出力タイマとの照合時に , 割込み信号を出力します。 16 ビットキャプチャレジスタ× 4 本 一対のコンペアレジスタを出力信号生成に使用可能です。 16 ビ ッ ト イ ン プットキャプ チャ (8ch) 立上りエッジ , 立下りエッジ , またはその両方を検出します。 16 ビットキャプチャレジスタ× 4 本 外部イベント時に割込み信号を出力します。 8/16 ビット PPG (プ ロ グ ラ マ ブ ルパルス発生 部)(4ch) 8 ビットと 16 ビットの動作モードをサポートします。 8 ビットリロードカウンタ× 8 本 "L" パルス幅用の 8 ビットリロードレジスタ× 8 本 "H" パルス幅用の 8 ビットリロードレジスタ× 8 本 一対の 8 ビットリロードカウンタを 1 本の 16 ビットリロードカウンタとして , または 8 ビッ トプリスケーラと 8 ビットリロードカウンタとして構成可能です。 出力端子× 4 本 動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24 または 128µs fosc=4MHz(fsys= シス テムクロック周波数 ,fosc= 発振クロック周波数) 3 第 1 章 概要 表 1.2-1 MB90440G シリーズの特長 (2 / 2) 機能 特長 CAN インタ フェース (3ch) CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。 エラー時に自動再送します。 リモートフレームに応答して自動伝送します。 データおよび ID 用の順位付けされた 16 個のメッセージバッファ複数メッセージをサポート します。 アクセプタンスフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマスク /2 個の部分ビットマスク 最高 1Mbps までサポートします。 外部割込み エッジ検出とレベル検出が設定可能です。 外部バス インタフェース 選択可能な 8 ビットバスまたは 16 ビットバスを使用した外部アクセスが可能です(外部バ スモード)。 入出力ポート ほとんど , 全外部端子を汎用入出力として使用可能です。 すべてのプッシュプル出力とシュミットトリガ入力 入力 / 出力または周辺信号として , ビット単位でプログラム可能です。 32kHz サブ クロック フラッシュ メモリ 4 低電力動作用のサブクロック。 自動プログラミング ,Embeded Algorithm, 書込み / 消去 / 消去一時停止 / 消去再開コマンドを サポートします。 アルゴリズムの完了を示すフラグ 消去サイクル数 :10, 000 回 データ保持期間 :10 年間 ブートブロック構成 各ブロックで消去を実行可能です。 外部プログラミング電圧によるブロック保護 第 1 章 概要 ブロックダイヤグラム 1.3 図 1.3-1 に ,MB90440G シリーズのブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.3-1 ブロックダイヤグラム X0,X1 X0A,X1A RST クロック 制御回路 16LX CPU 入出力タイマ RAM 6K インプット キャプチャ ×8ch ROM 128K アウトプット コンペア ×4ch IN0~IN5 IN7/OUT3,IN6/OUT2 OUT0,OUT1 プリスケーラ SOT0 SCK0 SIN0 UART0 SOT1 SCK1 SIN1 UART1 (SCI) 内部データバス プリスケーラ 8/16ビット PPG×4ch PPG0~PPG3 CAN コントローラ ×3ch RX0,RX1,RX2 TX0,TX1,TX2 16-bit リロードタイマ ×2ch TIN0,TIN1 TOT0,TOT1 プリスケーラ SOT2 SCK2 SIN2 AVCC AVSS AN0~AN7 AVRH AVRL ADTG AD00~AD15 A16~A23 シリアル I/O ALE RD 外部バス インタフェース 10bit ADC×8ch WRL/WR WRH HRQ HAK RDY CLK 外部割込み ×8ch INT0~INT7 5 第 1 章 概要 パッケージ外形寸法図 1.4 図 1.4-1 に ,FPT-100P-M06(QFP-100) のパッケージ外形寸法図を示します。 なお , 本外形寸法は参考用です。正式版につきましては別途ご相談ください。 ■ FPT-100P-M06 パッケージ外形寸法図 図 1.4-1 FPT-100P-M06 パッケージ外形寸法図 プラスチック・QFP, 100 ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 14.00 × 20.00mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 3.35mm MAX コード(参考) P-QFP100-14×20-0.65 (FPT-100P-M06) プラスチック・QFP, 100 ピン (FPT-100P-M06) 注 1)* 印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 23.90±0.40(.941±.016) * 20.00±0.20(.787±.008) 80 51 81 50 0.10(.004) 17.90±0.40 (.705±.016) *14.00±0.20 (.551±.008) INDEX Details of "A" part 100 0.25(.010) +0.35 3.00 –0.20 +.014 .118 –.008 (Mounting height) 0~8˚ 31 1 30 0.65(.026) 0.32±0.05 (.013±.002) 0.13(.005) M 0.17±0.06 (.007±.002) "A" ©2002-2008 FUJITSU MICROELECTRONICS LIMITED F100008S-c-5-6 C 2002 FUJITSU LIMITED F100008S-c-5-5 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/package/jp-search/ 6 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) 0.25±0.20 (.010±.008) (Stand off) 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 端子配列図 1.5 図 1.5-1 に ,FPT-100P-M06 の端子配列図を示します。 ■ FPT-100P-M06 端子配列図 P77/OUT3/IN7 P76/OUT2/IN6 P75/IN5 P74/IN4 P73/IN3 P72/IN2 P71/IN1 P70/IN0 n.c. MD2 P81/PPG1 P80/PPG0 P85/OUT1 P84/OUT0 P83/PPG3 P82/PPG2 X0A X1A PA0/INT3 RST P97/RX1 P96/TX1 P95/INT2/RX0 P94/TX0 P93/RX2 P92/TX2 P91/INT1 P90/INT0 P87/TOT1 P86/TIN1 図 1.5-1 FPT-100P-M06 端子配列図 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 2 3 4 5 6 7 8 MD1 MD0 P57/TOT0 P56/TIN0 P67/AN7 P66/AN6 P65/AN5 P64/AN4 Vss P63/AN3 P62/AN2 P61/AN1 P60/AN0 AVss AVRL AVRH AVcc P55/ADTG P54/INT7 P53/INT6 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 P46/SOT2 P47/SCK2 C P50/SIN2 P51/INT4 P52/INT5 98 99 100 1 P44/SCK1 Vcc P45/SOT1 P15/AD13 P16/AD14 P17/AD15 93 94 95 96 97 P41/SCK0 P42/SIN0 P43/SIN1 P11/AD09 P12/AD10 P13/AD11 P14/AD12 QFP-100 MB90440Gシリーズ (TOP VIEW) FPT-100P-M06 89 90 91 92 P37/CLK P40/SOT0 P05/AD05 P06/AD06 P07/AD07 P10/AD08 86 87 88 P35/HAK P36/RDY P01/AD01 P02/AD02 P03/AD03 P04/AD04 83 84 85 P32/WRL/ WR P33/WRH P34/HRQ P00/AD00 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 81 82 P20/A16 P21/A17 P22/A18 P23/A19 P24/A20 P25/A21 P26/A22 P27/A23 P30/ALE P31/RD Vss Vss X0 X1 Vcc 7 第 1 章 概要 1.6 端子機能説明 表 1.6-1 に , 端子名 , 回路形式 , 機能説明について示します。 ■ 端子機能説明 表 1.6-1 端子機能説明 (1 / 7) 回路 形式 QFP 端子名 82, 83 X0, X1 80, 79 X0A, X1A 77 RST B 外部リセット要求入力端子です。 52 n.c. − 空き端子です。 A 高速発振用端子です。 (発振) 低速発振用端子です。 A 発振器を接続しない場合は ,X0A をプルダウン処理に ,X1A をオープンにし (発振) てください。 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合に利用できます。 P00 ∼ P07 H 85 ∼ 92 93 ∼ 100 AD00 ∼ AD07 外部アドレス / データバスの下位 8 ビット用の入出力端子です。 この機能は外部バスが有効なときに利用できます。 P10 ∼ P17 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合に利用できます。 H 外部アドレス / データバスの上位 8 ビット用の入出力端子です。 この機能は外部バスが有効なときに利用できます。 AD08 ∼ AD15 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 外バスモード時は,外部アドレス出力制御レジスタ(HACR)の対応するビッ トが "1" の場合に , 汎用入出力ポートとして機能します。 P20 ∼ P27 H 1∼8 外部アドレスバスの A16 ∼ A23 用の出力端子です。 外バスモード時は,外部アドレス出力制御レジスタ(HACR)の対応するビッ トが "0" の場合に , アドレス出力端子として機能します。 A16 ∼ A23 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合に利用できます。 P30 9 H ALE アドレスラッチが可能な出力端子です。 この機能は , 外部バスが有効な場合に利用できます。 P31 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合に利用できます。 10 H RD 8 機能説明 データバス用の読込みストロボ出力端子です。 この機能は , 外部バスが有効な場合に利用できます。 第 1 章 概要 表 1.6-1 端子機能説明 (2 / 7) QFP 端子名 回路 形式 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合 , または WR/WRL 端子出力が無 効な場合に利用できます。 P32 12 WRL H WR データバス用の書込みストロボ出力端子です。 この機能は , 外部バスと WR/WRL 端子出力の両方が有効な場合に利用でき ます。WRL は 16 ビットアクセスでのデータバス下位 8 ビットのストロボ 書込みに使用されます。WR は 8 ビットアクセスでのデータバス 8 ビット のストロボ書込みに使用されます。 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードと外部バス 8 ビットモードの場合 , ま たは WRH 端子出力が有効な場合に利用できます。 P33 13 機能説明 H WRH データバス上位 8 ビット用の書込みストロボ出力端子です。 この機能は , 外部端子が有効な場合 , 外部バスの 16 ビットモードが選択さ れている場合 , または WRH 出力端子が有効な場合に利用できます。 P34 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合 , またはホールド機能が無効な 場合に利用できます。 14 H HRQ ホールドリクエスト入力端子です。 この機能は,外部バスとホールド機能の両方が有効な場合に利用できます。 P35 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合 , またはホールド機能が無効な 場合に利用できます。 15 H HAK ホールドアクノリッジ出力端子です。 この機能は,外部バスとホールド機能の両方が有効な場合に利用できます。 P36 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合 , または外部レディ機能が無効 な場合に利用できます。 16 H RDY レディ入力信号です。 この機能は , 外部バスと外部レディ機能の両方が有効な場合に利用できま す。 P37 プログラム可能なプルアップ機能を持つ汎用入出力ポートです。 この機能は , シングルチップモードの場合 , またはクロック出力が無効な 場合に利用できます。 17 H CLK クロック出力端子です。 この機能は,外部バスとクロック出力の両方が有効な場合に利用できます。 P40 汎用入出力ポートです。 この機能は ,UART0 がシリアルデータ出力を無効にしている場合に利用で きます。 18 G SOT0 UART0 のシリアルデータ出力端子です。 この機能は UART0 がシリアルデータ出力を有効にしている場合に利用で きます。 9 第 1 章 概要 表 1.6-1 端子機能説明 (3 / 7) QFP 端子名 回路 形式 汎用入出力ポートです。 この機能はUART0がクロック出力を無効にしている場合に利用できます。 P41 19 G UART0 のクロック入出力端子です。 この機能はUART0がクロック出力を有効にしている場合に利用できます。 SCK0 汎用入出力ポートです。 この機能は常に利用できます。 P42 20 G SIN0 UART0 のシリアルデータ入力端子です。 UARTO が入力に使用されている間は , 対応するポート方向レジスタ (DDR) を入力に設定してください。 P43 汎用入出力ポートです。 この機能は常に有効です。 21 G SIN1 UART1 のシリアルデータ入力端子です。 UART1 が入力に使用されている間は , 対応するポート方向レジスタ (DDR) を入力に設定してください。 P44 汎用入出力ポートです。 この機能は ,UART1 がクロック出力を無効にしている場合に利用できま す。 22 G SCK1 UART1 のクロックパルス入出力端子です。 この端子は ,UART1 がクロック出力を有効にしている場合に利用できま す。 P45 汎用入出力ポートです。 この機能は UART1 がシリアルデータ出力を無効にしている場合に利用で きます。 24 G SOT1 UART1 のシリアルデータ出力端子です。 この機能は ,UART1 がシリアルデータ出力を有効にしている場合に利用で きます。 P46 汎用入出力ポートです。 この機能は , シリアル I/O がシリアルデータ出力を有効にしている場合に 利用できます。 25 G SOT2 シリアル I/O のシリアルデータ出力端子です。 この機能は , シリアル I/O がシリアルデータ出力を有効にしている場合に 使用できます。 P47 汎用入出力ポートです。 この機能は , シリアル I/O がクロック出力を無効にしている場合に利用で きます G 26 SCK2 10 機能説明 シリアル I/O のクロックパルス入出力端子です。 この機能は , シリアル I/O がクロック出力を有効にしている場合に利用で きます。 第 1 章 概要 表 1.6-1 端子機能説明 (4 / 7) QFP 端子名 回路 形式 汎用入出力ポートです。 この機能は常に利用できます。 P50 28 D SIN2 D INT4 ∼ INT7 INT4 ∼ INT7 の外部割込み要求入力端子です。 外部からの割り込みが許可されている間は , 対応するポート方向レジスタ (DDR) を入力に設定してください。 汎用入出力ポートです。 この機能は常に利用できます。 P55 33 シリアル I/O のシリアルデータ入力端子です。 シリアル I/O が入力に使用されている間は , 対応するポート方向レジスタ (DDR) を入力に設定してください。 汎用入出力ポートです。 この機能は常に利用できます。 P51 ∼ P54 29 ∼ 32 機能説明 D ADTG A/D コンバータのトリガ入力端子です。 A/D コンバータが入力のために使用されている間は , 対応するポート方向 レジスタ (DDR) を入力に設定してください。 P60 ∼ 63 汎用入出力ポートです。 この機能は , アナログ入力が可能なレジスタでポートを指定している場合 に利用できます。 E 38 ∼ 41 AN0 ∼ AN3 A/D コンバータのアナログ入力端子です。 この機能は , アナログ入力が可能なレジスタで AD を指定している場合に 利用できます。 P64 ∼ P67 汎用入出力ポートです。 この機能は , アナログ入力が可能なレジスタでポートを指定している場合 に利用できます。 E 43 ∼ 46 A/D コンバータのアナログ入力端子です。 この機能は , アナログ入力が可能なレジスタで AD を指定している場合に 利用できます。 AN4 ∼ AN7 P56 汎用入出力ポートです。この機能は常に利用できます。 TIN0 リロードタイマ 0 のイベント入力端子です。 リロードタイマが入力に使用されている間は , 対応するポート方向レジス タ (DDR) を入力に設定してください。 P57 汎用入出力ポートです。 この機能は , リロードタイマ 0 が出力を無効にしている場合に利用できま す。 47 D 48 D リロードタイマ 0 の出力端子です。 この機能は , リロードタイマ 0 が出力を有効にしている場合に利用できま す。 TOT0 汎用入出力ポートです。 この機能は常に利用できます。 P70 ∼ P75 D 53 ∼ 58 IN0 ∼ IN5 ICU0 から ICU5 のキャプチャを入力するデータサンプル入力端子です。 ICU が入力になっている間は , 対応するポート方向レジスタ (DDR) を入力 に設定してください。 11 第 1 章 概要 表 1.6-1 端子機能説明 (5 / 7) QFP 端子名 回路 形式 汎用入出力ポートです。 OCU がコンペア出力を無効にしている場合に利用できます。 P76, P77 59, 60 OUT2, OUT3 D アウトプットコンペア OCU2, OCU3 のコンペア出力端子です。 OCU がコンペア出力を有効にしている場合に利用できます。 ICU6 と ICU7 のキャプチャを入力するデータサンプル入力端子です。 ICU が入力になっている間は , 対応するポート方向レジスタを入力に設定 およびコンペア出力を禁止してください。 IN6, IN7 汎用入出力ポートです。 この機能は ,PPG がパルス出力を無効にしている場合に利用できます。 P80 ∼ P83 D 61 ∼ 64 PPG0 ∼ PPG3 PPG の出力端子です。 この機能は ,PPG がパルス出力を有効にしている場合に利用できます。 P84, P85 汎用入出力ポートです。 この機能は ,OCU がコンペア出力を無効にしている場合に利用できます。 65, 66 D アウトプットコンペア OCU0, OCU1 のコンペア出力端子です。 OCU がコンペア出力を有効にしている場合に利用できます。 OUT0, OUT1 汎用入出力ポートです。 この機能は常に利用できます。 P86 67 D TIN1 リロードタイマ 1 のイベント入力端子です。 リロードタイマが入力に使われている間は , 対応するポート方向レジスタ を入力に設定してください。 P87 汎用入出力ポートです。 この機能は , リロードタイマ 0 が出力を無効にしている場合に利用できま す。 68 D リロードタイマ 1 の出力端子です。 この機能は , リロードタイマ 1 が出力を有効にしている場合に利用できま す。 TOT1 汎用入出力ポートです。 この機能は常に利用できます。 P90, P91 69, 70 D INT0, INT1 71 INT0 と INT1 の外部割込み要求入力端子です。 外部割込みが許可されている間は , 対応するポート方向レジスタを入力に 設定してください。 汎用入出力ポートです。 この機能は ,CAN0 が出力を無効にしている場合に利用できます。 P92 D TX2 CAN2 の TX 出力端子です。 この機能は ,CAN0 が出力を有効にしている場合に利用できます。 P93 汎用入出力ポートです。 この機能は常に利用できます。 72 D RX2 12 機能説明 CAN2 インタフェースの RX 入力端子です。 CAN 機能が使用されている間はほかの機能からの出力は停止してくださ い。 第 1 章 概要 表 1.6-1 端子機能説明 (6 / 7) QFP 端子名 回路 形式 汎用入出力ポートです。 この機能は ,CAN0 が出力を無効にしている場合に利用できます。 P94 73 74 機能説明 D TX0 CAN0 の TX 出力端子です。 この機能は ,CAN0 が出力を有効にしている場合に利用できます。 P95 汎用入出力ポートです。 この機能は常に利用できます。 INT2 D INT2 の外部割込み要求入力端子です。 外部割込みが許可されている間は , 対応するポート方向レジスタを入力に 設定してください。 RX0 CAN0 インタフェースの RX 入力端子です。 CAN 機能が使用されている間はほかの機能からの出力は停止してくださ い。 P96 汎用入出力ポートです。 この機能は ,CAN1 が出力を無効にしている場合に利用できます。 75 D TX1 CAN1 の TX 出力端子です。 この機能は ,CAN1 が出力を有効にしている場合に , 利用できます。 P97 汎用入出力ポートです。 この機能は常に利用できます。 76 D RX1 CAN1 インターフェースの RX 入力端子です。 CAN 機能が使用されているときは , ほかの機能からの出力は停止してくだ さい。 PA0 汎用入出力ポートです。 この機能は常に利用できます。 78 D INT3 INT3 の外部割込み要求入力端子です。 外部割込みが許可されている間は , 対応するポート方向レジスタを入力に 設定してください。 A/D コンバータの電源入力端子です。 「1.8 デバイスの取扱いに関する注意事項」を参照してください。 34 AVCC 電源 37 AVSS 電源 35 AVRH 電源 36 AVRL 電源 49 , 50 MD0 , MD1 C オペレーティングモード専用入力端子です。 この端子は , 直接 VCC または VSS に接続してください。 51 MD2 F オペレーティングモード専用入力端子です。 この端子は , 直接 VCC または VSS に接続してください。 27 C - 電源のコンデンサ用端子です。 この端子は , 外部から 0.1µF のセラミックコンデンサに接続してください。 23, 84 VCC 電源 A/D コンバータの専用 GND 端子です。 A/D コンバータのリファレンス電圧入力端子です。 「1.8 デバイスの取扱いに関する注意事項 」を参照してください。 A/D コンバータのリファレンス低電圧入力端子です。 デジタル回路用の電源 (5.0V) 入力端子です。 13 第 1 章 概要 表 1.6-1 端子機能説明 (7 / 7) QFP 端子名 回路 形式 11, 42, 81 VSS 電源 14 機能説明 デジタル回路用の GND 電源 (0.0V) 端子です。 第 1 章 概要 1.7 入出力回路形式 表 1.7-1 に , 各端子の回路形式について示します。 ■ 入出力回路形式 表 1.7-1 入出力回路形式 ( 1 / 2 ) 分類 回 路 備 考 X1,X1A クロック入力 A • 発振帰還抵抗 : - 約 1MΩ(高速発振用) - 約 10MΩ(低速発振用) X0,X0A HARD,SOFT STANDBY CONTROL • CMOS ヒステリシス入力 • プルアップ抵抗値 約 50kΩ B R(プルアップ) R CMOS ヒステリシス入力 R C • CMOS ヒステリシス入力 • • CMOS レベル出力 CMOS ヒステリシス入力 特殊ヒステリシス入力 CMOS ヒステリシス入力 P-ch • N-ch D R CMOSヒステリシス入力 R 特殊ヒステリシス入力 15 第 1 章 概要 表 1.7-1 入出力回路形式 ( 2 / 2 ) 分類 回 路 備 考 • • Vcc P-ch CMOS 出力 CMOS ヒステリシス入力 特殊ヒステリシス入力 • • アナログ入力 N-ch E P-ch アナログ入力 N-ch CMOSヒステリシス入力 R 特殊ヒステリシス入力 R • R CMOS ヒステリシス入力 F CMOS ヒステリシス入力 • プルダウン抵抗値 約 50kΩ (フラッシュ品を除く) R(プルダウン) • • Vcc P-ch N-ch G CMOS 出力 CMOS ヒステリシス入力 特殊ヒステリシス入力 • • TTL 入力(フラッシュ書込 みモードのフラッシュデバ イス品のみ) CMOSヒステリシス入力 R 特殊ヒステリシス入力 R TTL R Vcc CNTL Vcc P-ch N-ch H CMOSヒステリシス入力 R TTL R 16 • • CMOS 出力 CMOS ヒステリシス入力 • TTL 入力( 「8.2 I/O ポートの 入力レベル」 ) • プログラマブルプルアップ 抵抗 約 50kΩ 第 1 章 概要 1.8 デバイスの取扱いに関する注意事項 デバイスを取り扱う際 , 以下の項目について注意してください。 • 最大定格電圧の厳守(ラッチアップの防止 ) • 未使用端子の処理について • 外部クロック使用時の注意について • サブクロックを使用しない場合の注意について • 電源端子について(VCC/VSS) • • • • • • • • • • プルアップ / プルダウン抵抗について 水晶発振回路について A/D コンバータの電源 , アナログ入力の投入順序について A/D コンバータ未使用時の端子処理について N.C. 端子の処理について 電源投入時の注意点 初期化について REALOS を使用する場合 PLL クロックモード動作中の注意について 供給電圧の安定化 ■ デバイスの取扱いに関する注意事項 ● 最大定格電圧の厳守(ラッチアップの防止) 最大定格を超えることのないよう注意してください(ラッチアップの防止)。 CMOS IC では , 入力端子や出力端子に VCC より高い電圧や VSS より低い電圧が印加さ れた場合 , または VCC ∼ VSS 間に定格を超える電圧が印加された場合に , ラッチアッ プ現象を生じることがあります。 ラッチアップ現象が起きると電源電流が激増し,素子の熱破壊に至る場合がありますの で , 使用に際しては , 最大定格を超えることのないよう十分注意してください。 また , アナログ電源投入時および切断時においてもアナログ電源電圧 (AVCC,AVRH) と アナログ入力電圧は , デジタル電源電圧 (VCC) を超えることのないよう十分注意してく ださい。 ● 未使用端子の処理について 使用していない入力端子を開放のままにしておくと,誤動作およびラッチアップによる 永久破損の原因となることがありますので ,2kΩ 以上の抵抗を介して , プルアップ , ま たはプルダウンなどの処理をしてください。また , 使用していない入出力端子について は , 出力状態にして開放とするか , 入力状態の場合は入力端子と同じ処理をしてくださ い。 ● 外部クロック使用時の注意について 外部クロックを使用する場合は ,X0 端子のみを駆動し ,X1 端子はオープンとしてくだ さい。 17 第 1 章 概要 図 1.8-1 外部クロック使用例 MB90440Gシリーズ X0 オープン X1 ● サブクロックを使用しない場合の注意について X0A, X1A 端子に発振器を接続しない場合は ,X0A 端子にプルダウンの処理をし ,X1A 端子はオープンにしてください。 ● 電源端子について (VCC/VSS) VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた めに , 同電位にすべき端子はデバイス内部で接続してありますが , 不要輻射の低減 , グ ランドレベルの上昇によるストローブ信号の誤動作防止,総出力電流規格を守るなどの ために , 必ずそれらすべてを外部で電源およびグランドに接続してください(下図を参 照)。 また電流供給源からできる限り低インピーダンスでこのデバイスの VCC, VSS に接続す るように配慮してください。 さらに , このデバイスの近くで ,VCC と VSS の間に 0.1µF 程度のコンデンサをバイパス コンデンサとして接続することをお薦めします。 図 1.8-2 電源端子(VCC/VSS) の取扱い ◎Vcc ◎Vss Vss Vcc Vss Vcc MB90440G シリーズ Vcc Vss Vss Vcc ● プルアップ / プルダウン抵抗について MB90440Gシリーズは, 内部プルアップ/プルダウン抵抗をサポートしていません(ポー ト 0 ∼ポート 3: プルアップ抵抗を除く )。必要な箇所に外部コンポーネントを使用し てください。 18 第 1 章 概要 ● 水晶発振回路について X0, X1 端子の近辺のノイズはこのデバイスの誤動作の元となります。X0, X1 端子およ び水晶振動子(あるいはセラミック振動子)さらにグランドへのバイパスコンデンサ はできる限り近くになるように , またその配線は , ほかの配線とできる限り交差しない ようにプリント基板を設計してください。 また ,X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定し た動作を期待できますので , 強くお薦めします。 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 ● A/D コンバータの電源 , アナログ入力の投入順序について A/D コンバータ ,D/A コンバータの電源 (AVCC, AVRH, AVRL) およびアナログ入力 (AN0 ∼ AN7) の印加は , 必ずデジタル電源 (VCC) の投入後に行ってください。 また , 電源切断時は A/D コンバータの電源およびアナログ入力の遮断の後で , デジタル 電源の遮断を行ってください。その際 ,AVRH, AVCC を超えないように投入・切断を 行ってください。 ● A/D コンバータ未使用時の端子処理について A/D コンバータおよび D/A コンバータを使用しないときは ,AVCC=VCC, AVSS=AVRH=VSS に接続してください。 ● N.C. 端子の処理について N.C.(内部接続)端子は , 必ず開放にして使用してください。 ● 電源投入時の注意点 内部に内蔵している降圧回路の誤動作を防ぐために,電源投入時における電圧の立上り 時間は ,50µs(0.2V ∼ 2.7V 間)以上を確保してください。 ● 初期化について デバイス内には,パワーオンリセットによってのみ初期化される内蔵レジスタ類があり ます。これらの初期化を期待する場合は電源の再投入を行ってください。 ● REALOS を使用する場合 REALOS を使用する場合は , 拡張インテリジェント I/O サービス (EI2OS) が使用できま せん。 ● PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を 継続し続ける場合があります。この動作は , 保証外の動作です。 ● 供給電圧の安定化 Vcc 電源電圧の動作保証内においても , 電源電圧の急激な変化があると誤動作を起こす 場合がありますので ,Vcc 電源電圧を安定させてください。 安定化の基準としては , 商用周波数 (50 Hz ∼ 60 Hz) での Vcc リブル変動 (peak to peak 値 ) は , 標準 Vcc 電源電圧値の 10%以下に , また電源の切換え時などの瞬時変化におい ては , 過度変動率が 0.1 V/ms 以下になるように電源電圧を抑えてください。 19 第 1 章 概要 20 第2章 CPU CPU について説明します。 2.1 CPU の概要 2.2 メモリ空間 2.3 メモリ空間マップ 2.4 リニア方式によるアドレス指定 2.5 バンク方式によるアドレス指定 2.6 メモリ空間における多バイト長データ 2.7 レジスタ 2.8 レジスタバンク 2.9 プリフィックスコード 2.10 割込み抑止命令 21 第 2 章 CPU 2.1 CPU の概要 F2MC-16LX CPU コアは , 民生用・車載用機器等の高速リアルタイム処理が要求され る用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコント ローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。 ■ CPU の概要 F2MC-16LX CPU コアは ,16 ビットデータ処理は勿論 , 内部に 32 ビットアキュームレー タを塔載しているため 32 ビットデータ処理も可能です (32 ビットデータ処理にはいく つかの命令が使用されます )。メモリ空間は最大 16M バイト ( 拡張可能 ), リニア方式 およびバンク方式のいずれかにてアクセス可能です。また , 命令体系は F2MC-8L の AT アーキテクチャをベースに , 高級言語対応命令の追加・アドレッシングモードの拡 張・乗除算命令の強化・ビット処理の充実化により命令が強化されています。 以下に ,F2MC-16LX CPU の特長を示します。 ● 最小命令実行時間 62.5ns (4MHz 発振 ,4 逓倍 ) ● 最大メモリ空間 16M バイト , リニア / バンク方式にてアクセス ● コントローラ用途に最適化された命令体系 • 豊富なデータタイプ : ビット / バイト / ワード / ロングワード • 拡張されたアドレッシングモード :23 種類 • 32 ビットアキュムレータの採用による高精度演算 (32 ビット長 ) ● 強力な割込み機能 8 つのプライオリティレベル ( プログラマブル ) ● CPU に依存しない自動転送機能 最大 16ch までの拡張インテリジェント I/O サービス ● 高級言語 (C 言語 )/ マルチタスクに対応した命令体系 システムスタックポイント / 命令セットの対称性 / バレルシフト命令 ● 実行速度の向上 4 バイトのキュー 22 第 2 章 CPU 2.2 メモリ空間 F2MC-16LX CPU には 16M バイトのメモリ空間があります。F2MC-16LX CPU が管 理するデータ・プログラム・I/O はすべてこの 16M バイトのメモリ空間に配置され ます。CPU は 24 ビットのアドレスバスでこれらのアドレスを示すことにより , 各リ ソースをアクセスすることができます。 ■ CPU メモリ空間の概要 図 2.2-1 に ,F2MC-16LX システムとメモリマップの関係例を示します。 図 2.2-1 F2MC-16LX システムとメモリマップの関係例 FFFFFFH F2 MC-16LX CPU プログラム FF8000H データ 810000H 割込み 800000H データ領域 周辺回路 〔デバイス〕 プログラム領域 汎用ポート 0000C0H 0000B0H 000020H 000000H 割込みコントローラ 周辺回路 汎用ポート ■ アドレス指定の方式 F2MC-16LX のアドレス指定には , 以下に示す 2 種類の方式があります。 ● リニア方式 24 ビットアドレスすべてを命令により指定する方式 ● バンク方式 アドレス上位 8 ビットを用途に応じたバンクレジスタで , アドレス下位 16 ビットを命 令により指定する方式 23 第 2 章 CPU 2.3 メモリ空間マップ 図 2.3-1 に ,MB90440G シリーズのメモリ空間マップを示します。 ■ メモリ空間マップ 図 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 メモリ空間マップ MB90F443G MB90443G MB90V440G FFFFFFH FFFFFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H FCFFFFH FC0000H ROM (FFバンク) ROM (FEバンク) FF0000H FEFFFFH FE0000H ROM (FFバンク) ROM (FEバンク) ROM (FDバンク) 外部アクセス メモリ ROM (FCバンク) 外部アクセス メモリ 00FFFFH 004000H 003FFFH 003900H 0038FFH 001FF5H 001FF0H ROM(FFバンクの イメージ) 00FFFFH 004000H 003FFFH 周辺 周辺 003900H 002000H ROM補正 RAM 6K 000100H 000100H 24 外部アクセス メモリ 0018FFH RAM 14K 0000BFH 000000H ROM(FFバンクの イメージ) 外部アクセスメモリ 周辺 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 旧プログラムカウンタ +プログラムバンク 17 17452DH 452D 123456H 新プログラムカウンタ +プログラムバンク 12 JMPP 123456H 次の命令 3456 ■ 32 ビットレジスタ間接指定 図 2.4-2 リニア方式(32 ビットレジスタ間接指定)の例 MOV A,@RL1+7 旧AL XXXX 090700H 3A +7 RL1 (上位8bitは無視) 新AL 240906F9 003A 25 第 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 の各空間はバンク 00(000000H ∼ 00FFFFH) に配置され ,PC 空間はリセットベクタにより指定されたバンク に配置されます。 26 第 2 章 CPU 表 2.5-1 デフォルト空間 デフォルト空間 アドレッシングモード プログラム空間 PC 間接 , プログラムアクセス , 分岐系 データ空間 @RW0, @RW1, @RW4, @RW5 を 用 い た ア ド レ ッ シ ン グ モード ,@A,faddr16, dir スタック空間 PUSHW, POPW, @RW3, @RW7 を 用 い た ア ド レ ッ シ ン グ モード アディショナル空間 @RW2, @RW6 を用いたアドレッシングモード 図 2.5-1 に , レジスタバンクに分割されたメモリ空間の例を示します。 図 2.5-1 各空間の物理アドレス FFFFFFH 物 理 ア ド レ ス FF0000H B3FFFFH B30000H 92FFFFH 920000H 68FFFFH 680000H 4BFFFFH 4B0000H プログラム空間 アデショナル空間 ユーザスタック空間 データ空間 システムスタック空間 FFH : PCB (プログラムカウンタバンクレジスタ) B3H : ADB (アデショナルデータバンクレジスタ) 92H : USB (ユーザスタックバンクレジスタ) 68H : DTB (データバンクレジスタ) 4BH : SSB (システムスタックバンクレジスタ) 000000H 27 第 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 MOVW A, 080FFFFH の実行 H ↑ 80FFFFH ↓ L 28 ?? ?? 実行後のAL 23H 01H 01H ・ ・ ・ 800000H 実行前のAL 23H 第 2 章 CPU 2.7 レジスタ F2MC-16LX のレジスタは大別して ,CPU 内の専用レジスタと , メモリ内の汎用レジ スタの 2 種類に分けることができます。 専用レジスタは ,CPU の内部に専用ハードウェアとして存在し , 使用する用途が CPU のアーキテクチャ上で限定されています。 汎用レジスタは ,CPU のアドレス空間上に RAM と共存し , アドレスを指定しないで アクセスできるという点では専用レジスタと同じです。 通常のメモリと同じく , 使用する用途をユーザが指定することができます。 ■ 専用レジスタ F2MC-16LX CPU コアの専用レジスタは以下に示す 13 本があります。 • アキュムレータ (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 に , 専用レジスタの構成を示します。 29 第 2 章 CPU 図 2.7-1 専用レジスタ AH 32ビット 30 AL アキュムレータ USP ユーザスタックポインタ SSP システムスタックポインタ 16ビット PS プロセッサステータス PC プログラムカウンタ DPR ダイレクトページレジスタ PCB プログラムカウンタバンクレジスタ DTB データバンクレジスタ USB ユーザスタックバンクレジスタ SSB システムスタックバンクレジスタ ADB アディショナルデータバンクレジスタ 8ビット 第 2 章 CPU ■ 汎用レジスタ F2MC-16LX の汎用レジスタは主記憶の 000180H ∼ 00037FH(最大の場合)に存在し , レジスタバンクポインタ (RP) によって先に述べたアドレスのどの部分が現在使用中の レジスタバンクであるかを指定します。各バンクには以下に示す 3 種のレジスタが存 在します。これらのレジスタは , 図 2.7-2 に示すように互いに依存しています。 • R0 ∼ R7 : 8 ビットの汎用レジスタ • RW0 ∼ RW7: 16 ビットの汎用レジスタ • RL0 ∼ RL3 : 32 ビットの汎用レジスタ 図 2.7-2 汎用レジスタ MSB 000180H + RP×10H 16ビット 下位 LSB RW0 汎用レジスタの 先頭アドレス RL0 RW1 RW2 RL1 RW3 上位 R1 R0 RW4 R3 R2 RW5 R5 R4 RW6 R7 R6 RW7 RL2 RL3 バイトレジスタとワードレジスタの上位 / 下位バイトの関係は , RW(i+4) = R(i × 2+1) × 256+R(i × 2) [i=0 ∼ 3] という式で表すことができ ,RLi の上位・下位と RW の関係は RL(i) = RW(i × 2+1) × 65536+RW(i × 2) [i=0 ∼ 3] という式で表すことができます。 31 第 2 章 CPU 2.7.1 アキュムレータ (A) アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL で構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されま す。 ■ アキュムレータ (A) 32 ビットデータ処理時は AH と AL を連結して使用します。また ,16 ビットデータ処 理モードのワード処理や 8 ビットデータ処理モードのバイト処理のときは AL のみが 使用されます(図 2.7-3 と 図 2.7-4 を参照) 。A レジスタ中のデータはメモリ / レジスタ (Ri, RWi, RLi) 中のデータと各種演算ができ ,F2MC-8L のときと同様 , ワード長以下の データを AL へ転送しますと , 転送前の AL 中のデータが自動的に AH に転送されます (データ保持機能)ので , データ保持機能と AL-AH 間演算にて各種処理効率を上げる ことが可能になります。 AL へのバイト長以下のデータの転送時は , データは符号拡張またはゼロ拡張され 16 ビット長となり AL へ格納されます。AL 中のデータは , ワード長としてもバイト長と しても扱えます。AL にバイト処理の算術演算命令を実行すると , 演算前の AL の上位 8 ビットは無視され演算結果の上位 8 ビットはすべて "0" になります。A レジスタは , リセットでは初期化されず , リセット直後は不定値になります。 図 2.7-3 32 ビットデータ転送例 MOVL A,@RW1+6 (RW1の内容+8ビット長オフセットの結果を番地としてロング ワード長リードを行い,その内容をAに格納する命令) MSB 実行前のA XXXXH XXXXH DTB 実行後のA 8F74H 2B52H AH AL A6H メモリ空間 LSB A61540H 8FH 74H A6153EH 2BH 52H 15H 38H +6 RW1 図 2.7-4 AL-AH 転送例 MOVW A,@RW1+6 (RW1の内容+8ビット長オフセットの結果を番地としてワード長 リードを行い,その内容をAに格納する命令) MSB 実行前のA XXXXH 1234H DTB 実行後のA 32 1234H 2B52H AH AL A6H メモリ空間 LSB A61540H 8FH 74H A6153EH 2BH 52H 15H 38H +6 RW1 第 2 章 CPU ユーザスタックポインタ (USP) とシステムスタック ポインタ (SSP) 2.7.2 ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は ,16 ビッ トのレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復帰のメモリアドレスを示します。 ■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) は , スタック系の命 令により使用されますが , プロセッサステータスレジスタ中の S フラグが "0" のときは , USP レジスタが有効になり ,S フラグが "1" のときは SSP レジスタが有効になります ( 図 2.7-5 を参照)。また , 割込みが受付られると S フラグがセットされるため , 割込み 時のレジスタ退避は必ずSSPの示すメモリ中に行われます。割込みルーチンでのスタッ ク処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いられます。スタッ ク空間を分ける必要のない場合は SSP だけをお使いください。 スタック時のアドレスの上位 8 ビットは ,SSP → SSB, USP → USB により示されます。 また USP および SSP は , リセットでは初期化されず , 不定値になります。 図 2.7-5 スタック操作命令とスタックポインタ(S フラグが "0" の場合の PUSHW A の例) 例1 Sフラグが"0"の場合のPUSHW A MSB 実行前 AL A624H 0 Sフラグ 実行後 AL A624H Sフラグ 0 C6F326H LSB USB C6H USP F328H XX XX SSB 56H SSP 1234H USB C6H USP F326H SSB 56H SSP 1234H C6F326H A6H 24H 561232H XX XX 561232H A6H 24H Sフラグが"0"であるため ユーザスタックを使用 例2 Sフラグが"1"の場合のPUSHW A 実行前 AL A624H USB C6H USP F328H 1 SSB 56H SSP 1234H A624H USB C6H USP F328H SSB 56H SSP 1232H Sフラグ 実行後 AL Sフラグ 1 < 注意事項 > Sフラグが"1"であるため システムスタックを使用 スタックポインタに設定すべき値は , 原則として偶数アドレスを使用してくださ い。 33 第 2 章 CPU 2.7.3 プロセッサステータス (PS) PS レジスタは ,CPU の動作制御を行うビットと CPU の状態を示すビットより構成 されています。 ■ プロセッサステータス (PS) 図 2.7-6 に示すように ,PS レジスタはレジスタバンクポインタ (RP) およびインタラプ トレベルマスクレジスタ (ILM) により構成されています。RP はレジスタバンクの先頭 アドレスを示します。PS レジスタの下位バイトは命令実行結果および割込み発生など によりセット / リセットされる各種フラグより構成されているコンディションコード レジスタ (CCR) より構成されています。 図 2.7-6 プロッセサステータス (PS) の構造 bit 15 PS 初期値 13 12 8 7 0 ILM RP CCR 000 00000 -01XXXXX X:不定値 ■ コンディションコードレジスタ (CCR) 図 2.7-7 に , コンディションコードレジスタ (CCR) の構成を示します。 図 2.7-7 コンディションコードレジスタ (CCR) の構成 bit 初期値 7 6 5 4 3 2 1 0 - I S T N Z V C : CCR - 0 1 X X X X X X:不定値 ● 割込み許可フラグ (I) ソフトウェアインタラプト以外のすべての割込みに対し I フラグが "1" の場合は割込み が許可 ,"0" の場合は割込みはマスクされます。リセット時はクリアされます。 ● スタックフラグ (S) S フラグが "0" の場合はスタック操作用ポインタとして USP が有効 ,"1" の場合は SSP が有効になります。割込み受付時またはリセット時にセットされます。 ● スティッキィビットフラグ (T) 論理右 / 算術右シフト命令を実行後にキャリーよりシフトアウトされたデータに 1 つ 以上 "1" があったら "1", それ以外は "0" になります。シフト量がゼロの場合も "0" にな ります。 ● ネガティブフラグ (N) 演算結果の MSB が "1" なら N フラグはセット , それ以外はクリアされます。 ● ゼロフラグ (Z) 演算結果がすべて "0" ならセット , それ以外はクリアされます。 34 第 2 章 CPU ● オーバフローフラグ (V) 演算の実行により符号付き数値としてオーバフローが生じるとセット,生じないとクリ アされます。 ● キャリーフラグ (C) 演算の実行により ,MSB より桁上り / 桁下りが生じるとセット , 生じないとクリアされ ます。 ■ レジスタバンクポインタ (RP) レジスタバンクポインタ (RP) は ,F2MC-16L の持つ汎用レジスタとそれが存在する内部 RAM のアドレスとの関係を示すレジスタで , 現在使用中のレジスタバンクの先頭のメ モリアドレスを [000180H+(RP) × 10H] という変換式で示します( 図 2.7-8 参照)。RP レジスタは 5 ビットにより構成されており "00H" ∼ "1FH" までの値をとることができ , メモリ中の 000180H ∼ 00037FH のアドレスにレジスタバンクを配置できます。 ただし , この範囲内であっても内部 RAM でなければ汎用レジスタとして使用すること はできません。RP レジスタはリセットによりすべて "0" に初期化されます。命令上で は RP レジスタに 8 ビットの即値が転送できますが , 実際に使用されるのはそのデータ の下位 5 ビットのみです。 図 2.7-8 レジスタバンクポインタ (RP) bit 初期値 12 11 10 9 8 B4 B3 B2 B1 B0 0 0 0 0 0 : RP 35 第 2 章 CPU ■ インタラプトレベルマスクレジスタ (ILM) インタラプトレベルマスクレジスタ (ILM) は 3 ビットから構成されており ,CPU の割込 みマスクのレベルを示します。この 3 ビットにより示されるレベルより強いレベルの 割込み要求のみが受付られます。レベルの強弱は "0" が最強で ,"7" が最弱と定義され ています( 表 2.7-1 参照)。したがって , 割込みが受付られるには , 現状の ILM の保持 値より小さい値の要求でなければなりません。割込みが受付られるとその割込みのレ ベル値が ILM にセットされ , これ以降の同じかそれより低い優先順位の割込みは受付 られなくなります。ILM はリセットによりすべて "0" に初期化されます。命令上では ILM レジスタに 8 ビットの即値が転送できますが , 実際に使用されるのはそのデータ の下位 3 ビットのみです。 図 2.7-9 インタラプトレベルレジスタ bit 初期値 15 14 13 ILM2 ILM1 ILM0 0 0 0 : ILM 表 2.7-1 インタラプトレベルマスク (ILM) レジスタで示されるレベル 36 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) プログラムカウンタレジスタは ,16 ビットのカウンタであり ,CPU が実行すべき命令 コードのメモリアドレスの下位 16 ビットを示します。上位 8 ビットアドレスは PCB により示されます。PC レジスタは条件分岐命令 , サブルーチンコール命令 , 割 込み , リセットなどにより内容が更新されます。 また , オペランドアクセス時のベースポインタとして使用することもできます。 ■ プログラムカウンタ (PC) 図 2.7-10 に , プログラムカウンタを示します。 図 2.7-10 プログラムカウンタ PCB FEH PC ABCDH FEABCDH 次に実行する命令 37 第 2 章 CPU 2.8 レジスタバンク レジスタバンクは 8 ワードで構成され , バイトレジスタ R0 ∼ R7, ワードレジスタ RW0 ∼ RW7, ロングワードレジスタ RL0 ∼ RL3 の汎用レジスタとして各種演算 , ポインタとして各種命令に使用できます。 ■ レジスタバンク 表 2.8-1 に , 各レジスタの機能を , 表 2.8-2 に各レジスタの関係を示します。 レジスタバンクの内容は , 通常の RAM 領域と同様に , リセットでは初期化されず , リ セット前の状態が保持されます。ただし , パワーオン時は , 不定値になります。 表 2.8-1 各レジスタの機能 R0 ∼ R7 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタまたはノーマライズ命令のカウン タとしても使用 RW0 ∼ RW7 ポインタ , 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 ∼ RL3 ロングポインタ , 各種命令のオペランドとして使用 表 2.8-2 各レジスタの関係 RW0 RL0 RW1 RW2 RL1 RW3 R0 RW4 R1 RL2 R2 RW5 R3 R4 RW6 R5 RL3 R6 RW7 R7 38 第 2 章 CPU ● ダイレクトページレジスタ (DPR) < 初期値 :01H > ダイレクトページレジスタ (DPR) は ,2.16 に示すように , ダイレクトアドレッシング モードの命令時のオペランドの addr8 ∼ addr15 を指定します。DPR は 8 ビット長であ り , リセットにより "01H" に初期化されます。DPR は命令により読出しや書込みがで きます。 図 2.8-1 ダイレクトアドレッシングモードによる物理アドレスの生成 DTBレジスタ αααααααα DPRレジスタ 命令中のダイレクトアドレス ββββββββ γγγγγγγγ MSB 24ビット物理アドレス LSB αααααααα ββββββββ γγγγγγγγ ● プログラムカウンタバンクレジスタ (PCB) < 初期値 : リセットベクタ中の値 > ● データバンクレジスタ (DTB) < 初期値 :00H > ● ユーザスタックバンクレジスタ (USB) < 初期値 :00H > ● システムスタックバンレジスタ (SSB) < 初期値 :00H > ● アディショナルデータバンクレジスタ (ADB) < 初期値 :00H > 各々のバンクレジスタはそれぞれ PC 空間 ,DT 空間 ,SP 空間(ユーザ),SP 空間(シス テム),AD 空間の配置されるメモリバンクを示します。すべてのバンクレジスタはバ イト長であり , リセットにより PCB はリセットベクタにより 00H に初期化されます。 PCB 以外のバンクレジスタは読出し / 書込みができます。PCB は読出しは可能ですが 書き込むことはできません。 16M バイト全空間に分岐する JMPP, CALLP, RETP, RETI, RETF 命令実行時および割込 み時に PCB は書き換わります。各レジスタの動作は ,「 2.2 メモリ空間」を参照して ください。 39 第 2 章 CPU 2.9 プリフィックスコード 命令の前にプリフィックスコードを置くことで , 命令動作の一部を変更することが可 能です。プリフィックスコードには , バンクセレクトプリフィックス , コモンレジス タバンクプリフィックス , フラグ変化抑止プリフィックスの 3 種類があります。 ■ バンクセレクトプリフィックス データアクセスの際に使用されるメモリ空間は各アドレッシングモードごとに定めら れています。バンクセレクトプリフィックスを命令前に置くことで , 命令によるデータ アクセスのメモリ空間をアドレッシングモードと無関係に任意に選択することが可能 となります。 表 2.9-1 に , バンクセレクトプリフィックスと対応するメモリ空間を示します。 表 2.9-1 バンクセレクトプリフィックス バンクセレクトプリフィックス 選択される空間 PCB PC 空間 DTB データ空間 ADB AD 空間 SPB そのときのスタックフラグの内容により SSP 空間 ,USP 空間のどちらかが用いられます。 ただし , 以下に示す命令に対しては注意してください。 ● ストリング命令〔MOVS / MOVSW / SCEQ / SCWEQ / FILS / FILSW〕 プリフィックスの有無にかかわらず,オペランド指定されたバンクレジスタを使用して ください。 ● スタック操作命令〔PUSHW / POPW〕 プリフィックスの有無にかかわらず ,S フラグに応じて SSB または USB を使用してく ださい。 ● I/O アクセス命令〔MOV A, io / MOV io, A / MOVX A, io / MOVW A, io / MOVW io, A /MOV io,#imm8 / MOVW io, #imm16 / MOVB A, io:bp / MOVB io:bp, A / SETB io:bp /CLRB io:bp BBC io:bp, rel / BBS io:bp, rel / WBTC, WBTS〕 プリフィックスの有無にかかわらず , バンクの I/O 空間が使用されます。 ● フラグ変更命令〔AND CCR, #imm8 / OR CCR, #imm8〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● POPW PS プリフィックスの有無にかかわらず ,S フラグに応じて SSB または USB が使用されま す。プリフィックスの効果が次の命令まで及びます。 40 第 2 章 CPU ● MOV ILM, #imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● RETI プリフィックス有無にかかわらず ,SSB が使用されます。 ■ コモンレジスタバンクプリフィックス (CMR) 複数のタスク間でのデータ交換を容易にするためには , その場合の RP がどのような値 でも , 比較的簡単に定められた同一のレジスタバンクをアクセスする手段が必要です。 コモンレジスタバンクプリフィックス (CMR) を , レジスタバンクをアクセスする命令 の前に置くことで , 現在の RP の値に関係なくその命令のレジスタアクセスをすべて 000180H ∼ 00018FH にあるコモンバンク(RP=0 の場合に選択されるレジスタバンク) に変更することができます。 コモンレジスタバンクプリフィックス (CMR) を使用する際には , 以下に示す命令に対 して注意してください。 ● ストリング命令〔MOVS / MOVSW / SCEQ / SCWEQ / FILS / FILSW〕 プリフィックスコードを付加したストリング命令実行中に割込み要求が発生すると,割 込み復帰後のストリング命令に対しては,プリフィックスが無効であるため誤動作とな ります。上記のストリング命令に対しては CMR プリフィックスを付加しないでくださ い。 ● フラグ変更命令〔AND CCR, #imm8 / OR CCR, #imm8 / POPW PS〕 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ● MOV ILM, #imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 ■ フラグ変化抑止プリフィックス (NCC) フラグ変化を抑止するためには , フラグ変化抑止プリフィックスコード (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 は命令の仕様どおり変化します。 41 第 2 章 CPU ● MOV ILM, imm8 命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。 42 第 2 章 CPU 2.10 割込み抑止命令 以下に示す 10 種類の命令については , 割込み要求はサンプリングされません。 • MOV ILM, #imm8 • AND CCR, #imm8 • OR CCR, #imm8 • POPW PS • PCB • DTB • ADB • SPB • CMR • NCC ■ 割込み抑止命令 上記の命令実行中に有効なハードウェア割込み要求が発生しても,割込み処理が行われ るのは , 上記以外の命令が実行されたときに限られます。詳しくは 図 2.10-1 を参照し てください。 図 2.10-1 割込み抑止命令 割込み抑止命令 (a)普通の命令 (a) ・・・・・・・・ 割込み要求発生 ・・・ 割込み受付け ■ 割込み抑止命令とプリフィックス命令に関する制約 割込み抑止命令の前にプリフィックスコードを付加した場合,プリフィックスコードの 効果は , 割込み抑止命令以外のコード後の最初の〔命令〕まで及びます。 図 2.10-2 割込み抑止命令とプリフィックスコード 割込み抑止命令 MOV A,FFH CCR:XXX10XX NCC MOV ILM,#imm8 ・・・・ ADD A,01H CCR:XXX10XX NCCにより,CCRは変化しません 43 第 2 章 CPU ■ プリフィックスコードが連続している場合 競合するプリフィックスコードが連続していた場合 , 後方のものが有効になります。な お , 競合するプリフィックスコードとはここでいう PCB, ADB, DTB, SPB のことを意味 します。 図 2.10-3 プリフィックスコードの連続 プリフィックスコード ・・・・・ ADB DTB PCB ADD A,01H ・・・・ ↑プリフィックスコードは PCBが有効になります。 44 第3章 割込み 割込みの機能と動作について説明します。 3.1 割込みの概要 3.2 割込み要因 3.3 割込みベクタ 3.4 ハードウェア割込み 3.5 ソフトウェア割込み 3.6 拡張インテリジェント I/O サービス (EI2OS) 3.7 未定義命令の実行による例外発生 45 第 3 章 割込み 3.1 割込みの概要 F2MC-16LX はイベントなどの発生により , 現在実行中の処理を中断して , 別に定義 したプログラムへ制御を移す割込み機能があります。 ■ 割込みの概要 割込み機能は以下の 4 つに分けることができます。 • ハードウェア割込み : 内蔵リソースのイベント発生による割込み処理 • ソフトウェア割込み : ソフトウェアのイベント発生命令による割込み処理 • 拡張インテリジェント I/O サービス (EI2OS): 内蔵リソースのイベント発生による転 送処理 • 例外 : 動作例外事項の発生による終了処理 この章では , これら 4 種類の割込みについて説明します。 46 第 3 章 割込み 割込み要因 3.2 表 3.2-1 に ,MB90440G シリーズでの割込み要因と割込みベクタ・割込み制御レジス タを示します。 ■ 割込み要因 表 3.2-1 割込み要因と割込みベクタ・割込み制御レジスタ ( 1 / 2 ) 割込みベクタ 割込み要因 割込み制御レジスタ 2 EI OS クリア 番号 アドレス 番号 アドレス リセット × # 08 FFFFDCH - - INT9 命令 × # 09 FFFFD8H - - 例外 × # 10 FFFFD4H - - CAN0 受信 × # 11 FFFFD0H ICR00 × # 12 FFFFCCH 0000B0H CAN0 送信 / ノードステータス CAN1 受信 × # 13 FFFFC8H ICR01 × # 14 FFFFC4H 0000B1H CAN1 送信 / ノードステータス 外部割込み INT0/INT1 ○ # 15 FFFFC0H ICR02 × # 16 FFFFBCH 0000B2H タイムベースタイマ 16 ビットリロードタイマ 0 ○ # 17 FFFFB8H ICR03 ○ # 18 FFFFB4H 0000B3H A/D コンバータ 入出力タイマ × # 19 FFFFB0H ICR04 ○ # 20 FFFFACH 0000B4H 外部割込み INT2/INT3 シリアル I/O ○ # 21 FFFFA8H ICR05 × # 22 FFFFA4H 0000B5H PPG0 ∼ PPG3 インプットキャプチャ 0 ○ # 23 FFFFA0H ICR06 ○ # 24 FFFF9CH 0000B6H 外部割込み INT4/INT5 CAN2 受信 × # 25 FFFF98H ICR07 × # 26 FFFF94H 0000B7H CAN2 送信 / ノードステータス 外部割込み INT6/INT7 ○ # 27 FFFF90H ICR08 × # 28 FFFF8CH 0000B8H 監視タイマ 47 第 3 章 割込み 表 3.2-1 割込み要因と割込みベクタ・割込み制御レジスタ ( 2 / 2 ) 割込みベクタ 割込み要因 割込み制御レジスタ EI2OS クリア 番号 アドレス インプットキャプチャ 1 ○ # 29 FFFF88H インプットキャプチャ 2/3 ○ # 30 FFFF84H PPG4 ∼ PPG7 × # 31 FFFF80H アウトプットコンペア 0 ○ # 32 FFFF7CH アウトプットコンペア 1 ○ # 33 FFFF78H インプットキャプチャ 4/5 ○ # 34 FFFF74H アウトプットコンペア 2/3, インプットキャプチャ 6/7 ○ # 35 FFFF70H 16 ビットリロードタイマ 1 ○ # 36 FFFF6CH UART0 受信 ◎ # 37 FFFF68H UART0 送信 ○ # 38 FFFF64H UART1 受信 ◎ # 39 FFFF60H UART1 送信 ○ # 40 FFFF5CH フラッシュメモリ × # 41 FFFF58H 遅延割込み × # 42 FFFF54H 番号 アドレス ICR09 0000B9H ICR10 0000BAH ICR11 0000BBH ICR12 0000BCH ICR13 0000BDH ICR14 0000BEH ICR15 0000BFH ◎ :EI2OS 割込みクリア信号にて割込み要求フラグはクリアされます。ストップ要求あり。 ○ :EI2OS 割込みクリア信号にて割込み要求フラグはクリアされます。 × :EI2OS 割込みクリア信号にて割込み要求フラグはクリアされません。 < 注意事項 > 48 同一割込み番号に 2 つの割込み要因がある周辺モジュールは , 両方の割込み要求フ ラグが EI2OS 割込みクリア信号でクリアされます。 EI2OS の終了時には , 同一の割込み番号に割り当てられたすべての割込みフラグに 対して ,EI2OS クリア信号が発行されます。1 つの割込みフラグが EI2OS を開始し , その間にハードウェアイベントによって別の割込みフラグが設定された場合 , 最初 のイベントによって発行された EI2OS クリア信号によってフラグがクリアされる ので , 後から発生したイベントは失われます。したがって , この割込み番号には EI2OS は使用しないでください。 EI2OS が有効な場合 , 同一の割込み制御レジスタ (ICR) にある 2 つの割込み信号の うち 1 つが発行されると EI2OS が起動されます。各割込みソースには独自の EI2OS ディスクリプタが用意されるべきですが , 実際には異なる割込みソースが同 一の EI2OS ディスクリプタを共用します。したがって ,1 つの割込みソースが EI2OS を使用している間はほかの割込みを無効にしておく必要があります。 第 3 章 割込み 割込みベクタ 3.3 表 3.3-1 に ,MB90440G シリーズでの割込みベクタ一覧表を示します。 ■ 割込みベクタ 表 3.3-1 割込みベクタ一覧表 ( 1 / 2 ) ソフトウェア 割込命令 ベクタ アドレスL ベクタ アドレスM ベクタ アドレスH モード レジスタ 割込No INT 0 FFFFFCH FFFFFDH FFFFFEH 未使用 #0 : : : : : : INT 7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 INT 8 FFFFDCH FFFFDDH FFFFDEH FFFFDFH #8 INT 9 FFFFD8H FFFFD9H FFFFDAH 未使用 #9 ROM 訂正 INT 10 FFFFD4H FFFFD5H FFFFD6H 未使用 #10 < 例外 > INT 11 FFFFD0H FFFFD1H FFFFD2H 未使用 #11 CAN0 受信 INT 12 FFFFCCH FFFFCDH FFFFCEH 未使用 #12 CAN0 送信 / ノード ステータス INT 13 FFFFC8H FFFFC9H FFFFCAH 未使用 #13 CAN1 受信 INT 14 FFFFC4H FFFFC5H FFFFC6H 未使用 #14 CAN1 送信 / ノード ステータス INT 15 FFFFC0H FFFFC1H FFFFC2H 未使用 #15 外部割込み INT0/INT1 INT 16 FFFFBCH FFFFBDH FFFFBEH 未使用 #16 タイムベースタイマ INT 17 FFFFB8H FFFFB9H FFFFBAH 未使用 #17 16 ビットリロードタイマ 0 INT 18 FFFFB4H FFFFB5H FFFFB6H 未使用 #18 A/D コンバータ INT 19 FFFFB0H FFFFB1H FFFFB2H 未使用 #19 入出力タイマ INT 20 FFFFACH FFFFADH FFFFAEH 未使用 #20 外部割込み INT2/INT3 INT 21 FFFFA8H FFFFA9H FFFFAAH 未使用 #21 シリアル I/O INT 22 FFFFA4H FFFFA5H FFFFA6H 未使用 #22 PPG0 ∼ PPG3 INT 23 FFFFA0H FFFFA1H FFFFA2H 未使用 #23 インプットキャプチャ 0 INT 24 FFFF9CH FFFF9DH FFFF9EH 未使用 #24 外部割込み INT4/INT5 INT 25 FFFF98H FFFF99H FFFF9AH 未使用 #25 CAN2 受信 INT 26 FFFF94H FFFF95H FFFF96H 未使用 #26 CAN2 送信 / ノード ステータス INT 27 FFFF90H FFFF91H FFFF92H 未使用 #27 外部割込み INT6/INT7 ハードウェア割込み なし : なし (RESET ベクタ) 49 第 3 章 割込み 表 3.3-1 割込みベクタ一覧表 ( 2 / 2 ) ソフトウェア 割込命令 ベクタ アドレスL ベクタ アドレスM ベクタ アドレスH モード レジスタ 割込No INT 28 FFFF8CH FFFF8DH FFFF8EH 未使用 #28 監視タイマ INT 29 FFFF88H FFFF89H FFFF8AH 未使用 #29 インプットキャプチャ 1 INT 30 FFFF84H FFFF85H FFFF86H 未使用 #30 インプットキャプチャ 2/3 INT 31 FFFF80H FFFF81H FFFF82H 未使用 #31 PPG4 ∼ PPG7 INT 32 FFFF7CH FFFF7DH FFFF7EH 未使用 #32 アウトプットコンペア 0 INT 33 FFFF78H FFFF79H FFFF7AH 未使用 #33 アウトプットコンペア 1 INT 34 FFFF74H FFFF75H FFFF76H 未使用 #34 インプットキャプチャ 4/5 INT 35 FFFF70H FFFF71H FFFF72H 未使用 #35 アウトプットコンペア 2/3 インプットキャプチャ 6/7 INT 36 FFFF6CH FFFF6DH FFFF6EH 未使用 #36 16 ビットリロードタイマ 1 INT 37 FFFF68H FFFF69H FFFF6AH 未使用 #37 UART0 受信 INT 38 FFFF64H FFFF65H FFFF66H 未使用 #38 UART0 送信 INT 39 FFFF60H FFFF61H FFFF62H 未使用 #39 UART1 受信 INT 40 FFFF5CH FFFF5DH FFFF5EH 未使用 #40 UART1 送信 INT 41 FFFF58H FFFF59H FFFF5AH 未使用 #41 フラッシュメモリ INT 42 FFFF54H FFFF55H FFFF56H 未使用 #42 遅延割込み INT 43 FFFF50H FFFF51H FFFF52H 未使用 #43 なし : : : : : : INT254 FFFC04H FFFC05H FFFC06H 未使用 #254 なし INT255 FFFC00H FFFC01H FFFC02H 未使用 #255 なし 50 ハードウェア割込み : 第 3 章 割込み 3.4 ハードウェア割込み ハードウェア割込みは , 内蔵リソースからの割込み要求信号に対応して ,CPU がそれ まで実行していたプログラムの実行を一時中断し , ユーザの定義した割込み処理用プ ログラムへ制御を移行する機能です。 ■ ハードウェア割込みの概要 ハードウェア割込みの起動は , 割込み要求がもつ割込みレベルと ,CPU の PS がもつイ ンタラプトレベルマスクレジスタ (ILM) の比較および PS 内の I フラグの内容をハード ウェアで参照したのち , 発生条件に合致すれば発生します。 ハードウェア割込みが発生するときに CPU が行う処理は以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの 退避 • PS レジスタ内の ILMを設定。現在要求している割込みレベルと自動的に同じになる • 対応する割込みベクタの値を取り込み , その値が指示する処理へ分岐 ■ ハードウェア割込みの構造 ハードウェア割込みに関連する機構は , 以下の 3 つの部分に分かれて存在します。 ● 内蔵リソース 割込み許可ビット , 割込み要求ビット : リソースからの割込み要求の制御 ● 割込みコントローラ ICR: 割込みのレベル付け , 同時要求割込みの優先度判定 ● CPU I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別 マイクロコード : 割込み処理用ステップ 上記 3 つの区分の状態は , 内蔵リソースではリソース制御レジスタに , 割込みコント ローラでは ICR に ,CPU では CCR の値によって指示されます。ハードウェア割込みを 使用する場合には , あらかじめソフトウェアでこの 3 つの区分を事前に設定します。 割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の "FFFC00H ∼ FFFFFFH" に割り当ててあり , ソフトウェア割込みと共通で使用しています。 ■ 入出力領域への書込み中のハードウェア割込み要求 入出力領域への書込み中はハードウェア割込み要求を受け付けません。これは各リ ソースの割込み制御レジスタ関係の書換えを行っている最中の割込み要求に対して , CPU が割込み関係で誤動作を起こすことを避けるためです。 51 第 3 章 割込み ■ 多重割込み F2 MC-16LX CPU は多重割込みをサポートしています。そのため , 割込み処理の実行中 にその割込みのもつ割込みレベルより高いレベルの割込みが発生すると,現在実行中の 命令を終了したあとで , 制御は高いレベルの割込みへ転送されます。高いレベルでの割 込みが終了すると , もとの割込み処理に戻ります。割込み処理実行中に , その割込みと 同等かより低いレベルの割込み処理が発生した場合は ,ILM の内容や I フラグの命令に よって変更しないかぎり , 現在の割込み処理の終了まで , 新しい割込み要求は保留にな ります。 なお , 拡張インテリジェント I/O サービスは多重に起動されることはなく ,1 つ の拡張インテリジェント I/O サービスの処理中は , ほかの割込み要求および拡張インテ リジェント I/O サービス要求はすべて保留になります。 ■ スタック内へのレジスタの退避 図 3.4-1 に , スタック内に退避されたレジスタの順序を示します。 図 3.4-1 スタック内に退避されたレジスタ ワード (16bit) MSB LSB H ↑ ← SSP (割込み発生前のSSPの値) ← SSP (割込み発生後のSSPの値) AH AL DPR ADB DTB PCB PC ↓ L 52 PS 第 3 章 割込み ハードウェア割込みの動作 3.4.1 ハードウェア割込み要求の機能を備えた内部リソースには , 割込み要求フラグと割込 み許可フラグが存在します。割込み要求フラグは , 割込み要求の有無を指示します。 割込み許可フラグは , 該当する内部リソースによる CPU への割込み要求の有無を指 示します。割込み要求フラグがセットされるのは , 内部リソースに特有のイベントが 発生する場合です。割込み許可フラグが " 許可 " を指示すると , リソースは割込みコ ントローラへ割込み要求を発生します。 ■ ハードウェア割込みの動作 同時に複数の割込み要求を受け取った場合 , 割込みコントローラは , 各割込み要求に対 する ICR 内の割込みレベル (IL) 同士を比較し , もっとも高いレベルの要求(IL 値の最 も小さいもの)を採択して CPU へ通知します。同一レベルの要求が複数あった場合に は , 割込み番号が少ないものを優先します。各割込み要求と各 ICR の関係はハードウェ アで決まっています。 CPU は受け取った割込みレベル (IL) と PS レジスタ内の ILM とを比較し , 割込みレベ ル (IL) <(ILM) であり ,PS レジスタ内の I ビットが "1" に設定されている場合に , 現在実 行中の命令が終了したあとで , 割込み処理用マイクロコードを起動します。割込み処理 マイクロコードの先頭で割込みコントローラの ICR 中の ISE ビットを参照し ,ISE ビッ トが "0"(すなわち割込み)であることを確認して割込み処理の本体を起動します。 割込み処理の本体では SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込みベクタの中から , を 3 バイトを取り出して PC と PCB へロードします。PS 中の ILM を , 受け付けた割込み要求のレベル値に更新 ,S フラグを "1" に設定して分岐処理を行います。その結果 , 次に実行する命令はユーザの定義した 割込み処理プログラムになります。 ハードウェア割込みが発生してから,割込み処理プログラム内に割込み要求がなくなる までの処理の流れを 図 3.4-2 に示します。 図 3.4-2 ハードウェア割込みの発生と解除まで PS レジスタファイル 内部データバス マイクロコード IR ⑥ F2MC-16LX CPU ⑦ 要因 FF ① チェック ⑤ 比較器 ④ PS : プロセッサステータス I : CCR内の割込み許可フラグ ILM : PS内の割込みレベル マスクレジスタ IR : インストラクションレジスタ ③ 周辺 許可 FF ILM I AND 周辺 ② レ ベ ル 比 較 器 割 込 レ ベ ル IL 割込み コントローラ 53 第 3 章 割込み 図 3.4-2 の図中における , ①∼⑦の内容を以下に説明します。 ① 周辺の内部で割込み要因が発生します。 ② 周辺内の割込み許可ビットを参照し割込み許可になっていれば , 周辺から割込みコ ントローラへ割込み要求を発生します。 ③ 割込み要求を受けとった割込みコントローラは , 同時に要求のあった割込みの優先 順位を判定した上で該当する割込みに対応する割込みレベルを CPU へ転送します。 ④ CPU は割込みコントローラから要求のあった割込みレベルをプロセッサステータ スレジスタ内の ILM ビットと比較します。 ⑤ 比較の結果が現在の割込み処理レベルより優先順位が高い場合のみ , 同じプロセッ サステータスレジスタ内の I フラグの内容をチェックします。 ⑥ ⑤のチェックの結果 I フラグが割込み許可状態である場合のみ ,ILM ビットの内容 を要求されたレベルに設定し , 現在実行中の命令の実行が終了し次第割込み処理を行い , 制御を割込み処理ルーチンへ移します。 ⑦ ユーザの割込み処理ルーチン内のソフトウェアで①で発生した割込み要因をクリ アすることで割込み要求が終了します。 ⑥および⑦で ,CPU が行う割込み処理の実行時間を以下に示します。 • 割込み起動 :24+6 × 表 3.4-1 マシンサイクル • 割込み復帰 :15+6 × 表 3.4-1 マシンサイクル(RETI 命令) 表 3.4-1 割込み処理時のサイクル数の補正値 54 スタックポインタが示しているアドレス サイクル数の補正値 外部領域 8 ビットデータバスの場合 +4 外部領域 偶数アドレスの場合 +1 外部領域 奇数アドレスの場合 +4 内部領域 偶数アドレスの場合 0 内部領域 奇数アドレスの場合 +2 第 3 章 割込み 3.4.2 ハードウェア割込みの動作フロー 図 3.4-3 に , ハードウェア割込みの動作フローを示します。 ■ ハードウェア割込みの動作フロー 図 3.4-3 ハードウェア割込み動作フロー I ILM IF IE ISE IL S I&IF&IE=1 AND ILM > IL : CCR内の割込み許可フラグ : PS内の割込みレベルマスクレジスタ : 内蔵リソースの割込み要求 : 内蔵リソースの割込みイネーブルフラグ : EI2OSイネーブルフラグ : 内蔵リソースの割込み要求レベル : CCR内のフラグ YES NO NO 次の命令の取込みと デコード PS,PC,PCB,DTB,ADB,DPR, AをSSPのスタックへ退避 そののち,ILM=IL INT命令 NO 通常命令実行 NO ストリング系 命令の繰返し 完了 YES YES ISE = 1 拡張インテリジェント I/Oサービスの処理 YES PS,PC,PCB,DTB,ADB,DPR, AをSSPのスタックへ退避 そののち,I=0,ILM=IL S ← 1 割込みベクタ取込み PCの更新 55 第 3 章 割込み 3.5 ソフトウェア割込み ソフトウェア割込みは , 専用の命令の実行に対応して ,CPU がそれまで実行していた プログラムの実行から , ユーザの定義した割込み処理用プログラムへ制御を移行する 機能です。 ■ ソフトウェア割込みの概要 ソフトウェア割込みの起動は , ソフトウェア割込み命令の実行で常に発生します。ソフ トウェア割込みが発生するときに CPU が行う処理は , 以下のものがあります。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタの値をシステムスタック へ退避させます。 • PS レジスタ内に I を設定します。割込みは , 自動的に禁止されます。 • 対応する割込みベクタの値を取り出し , 次に値が指示する処理へ分岐します。 INT 命令から出されたソフトウェア割込み要求には , 割込み要求フラグや許可フラグは 存在しません。ソフトウェア割込み要求が出されるのは , 必ず INT 命令の実行により ます。 INT 命令には割込みレベルが存在しません。したがって ,INT 命令は ,ILM を更新しま せん。INT 命令は ,I フラグをクリアして後続の割込み要求を保留にします。 ■ ソフトウェア割込みの構造 ソフトウェア割込みは , すべて CPU の内部で取り扱われます。 ● CPU • マイクロコード : 割込み処理用ステップ 表 3.3-1 に示すように , ソフトウェア割込みは , ハードウェア割込みと同じ割込みベク タ領域を共用します。たとえば , 割込み要求番号の INT 15 は , ハードウェア割込みの 外部割込み #0 に使用されると同時に , ソフトウェア割込みの INT #15 に使用されます。 したがって , 外部割込み #0 と INT #15 は , 同じ割込み処理ルーチンを呼び出します。 ■ ソフトウェア割込みの動作 CPU がソフトウェア割込み命令を取り込み実行すると , ソフトウェア割込み処理用マ イクロコードを起動します。ソフトウェア割込み処理用マイクロコードは SSB と SSP が指示するメモリ領域に 12 バイト(PS と PC, PCB, DTB, ADB, DPR, A)を退避させま す。次に , マイクロコードは割込みベクタの中から ,3 バイトを取り出して PC と PCB へ格納します。I フラグをリセット ("0") して ,S フラグをセット ("1") します。その結 果,ユーザアプリケーションプログラムが定義した割込み処理プログラムを次に実行し ます。 ソフトウェア割込みが発生してから,割込み処理プログラム内に割込み要求がなくなる までの処理の流れを 図 3.5-1 に示します。 56 第 3 章 割込み 図 3.5-1 ソフトウェア割込みの発生と解除まで レジスタファイル 内部データバス ② マイクロコード ① IR F2MC-16LX CPU PS I S Bユニット キュー フェッチ 退避 命令系バス RAM PS : プロセッサステータス I : CCR内の割込み許可フラグ S : CCR内のフラグ IR : インストラクションレジスタ Bユニット: Bus interfaceユニット 図 3.5-1 の図中における , ①∼③のソフトウェア割込みの発生と解除までの流れを以下 に示します。 ① ソフトウェア割込み命令を実行します ② ソフトウェア割込み命令に対応したマイクロコードに従ってレジスタファイル中 の CPU 内専用レジスタが退避されます。 ③ ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。 ■ ソフトウェア割込みに関する注意事項 プログラムカウンタバンクレジスタ (PCB) が "FFH" の場合 ,CALLV 命令のベクタ領域 は INT #vct8 命令のテーブルと重複します。ソフトウェアを設計する際は , 必ず CALLV 命令が INT #vct8 命令と同じアドレスを使用しないように注意してください。 57 第 3 章 割込み 3.6 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービス (EI2OS) とは , ハードウェア割込み動作の一種で , I/O とメモリとの間でデータを自動的に転送します。従来は , 割込み処理プログラム により ,I/O とメモリの間でデータを転送していましたが ,EI2OS では ,DMA モードの ようなデータの転送が可能になります。 ■ 拡張インテリジェント I/O サービス (EI2OS) の概要 拡張インテリジェント I/O サービス (EI2OS) は , 従来の割込み処理で行っていた方式と 比べると以下に示すような利点があります。 • 転送プログラムの作成が不要となるため , プログラム全体のサイズを小さくするこ とができます。 • 転送の際に内部レジスタを使用しないので , レジスタの退避が不要になり転送速度 が速くなります。 • I/O によりいつでも転送を停止することができ , 不要なデータを転送しません。 • バッファアドレスのインクリメント , デクリメント , または未更新が選択できます。 • I/O レジスタアドレスのインクリメント , デクリメント , または未更新が選択できま す(バッファアドレスを更新する場合) EI2OS 処理の終了時には , 終了条件を設定した後に ,CPU が自動的に割込み処理ルーチ ンへ分岐します。したがって , ユーザは終了条件の種類を判別することができます。 < 注意事項 > REALOS を使用する場合は , 拡張インテリジェント I/O サービス (EI2OS) が使用で きません。 EI2OS の概要を 図 3.6-1 に示します。 58 第 3 章 割込み 図 3.6-1 拡張インテリジェント I/O サービスの概要 メモリ空間 by IOA I/Oレジスタ …………… I/Oレジスタ 周辺 割込み要求 ① CPU ③ ISD ③ by ICS ② 割込み制御レジスタ 割込みコントローラ by BAP ④ バッファ by DCT (注意事項) IOAで指定できる領域は,"000000H~00FFFFH"です。 BAPで指定できる領域は,"000000H~FFFFFFH"です。 DCTで指定できる最大転送数は,65536個です。 図 3.6-1 中の①∼⑤の説明を以下に示します。 ① I/O が転送を要求します。 ② 割込みコントローラがディスクリプタを選択します。 ③ 転送元 / 転送先をディスクリプタから読出します。 ④ I/O とメモリ間で転送が行われます。 ⑤ 割込み要因は自動的にクリアされます。 ■ 拡張インテリジェント I/O サービス (EI2OS) の構造 EI2OS に関連する機構は , 以下の 4 つの部分に分かれて存在します。 ● 内蔵リソース 割込み許可ビット , 割込み要求ビット : リソースからの割込み要求の制御 ● 割込みコントローラ ICR: 割込みのレベル付け , 同時要求割込みの優先度判定 ,EI2OS 動作の選択 ● CPU • I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別 • マイクロコード :EI2OS 処理用ステップ ● RAM ディスクリプタ :EI2OS の転送情報を記述する 59 第 3 章 割込み 割込み制御レジスタ (ICR) 3.6.1 割込み制御レジスタは割込みコントローラ内にあり , 割込み機能を持つすべての I/O に対応して存在します。このレジスタには以下に示す 3 種類の機能があります。 • 対応する周辺の割込みレベルの設定 • 対応する周辺の割込みを通常割込みにするか , 拡張インテリジェント I/O サービス にするかの選択 • 拡張インテリジェント I/O サービスのチャネルの選択 このレジスタに対するリードモディファイライト系の命令でのアクセスは , 誤動作を 引き起こしますので行わないでください。 ■ 割込み制御レジスタ (ICR) 割込み制御レジスタのビット構成を 図 3.6-2 に示します。 図 3.6-2 割込み制御レジスタ (ICR) 割込み制御レジスタ(ICR) bit 15/7 アドレス:B0H~BFH ライト 初期値 14/6 12/4 11/3 10/2 9/1 8/0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (1) (W) (1) (W) (1) 14/6 13/5 12/4 11/3 10/2 S1 S0 ISE IL2 IL1 IL0 (R) (0) (R) (0) (R) (0) (R) (1) (R) (1) (R) (1) bit 15/7 アドレス: B0H~BFH リード 初期値 13/5 (-) (-) (-) (-) 9/1 書込み時 8/0 読出し時 R:リードオンリ W:ライトオンリ < 注意事項 > ICS3 ∼ ICS0 は ,EI2OS を起動する場合のみ有効となります。EI2OS を起動する場 合は ISE を "1" に設定し , 起動しない場合は "0" に設定してください。EI2OS を起 動しない場合 ,ICS3 ∼ ICS0 は何を設定してもかまいません。 ICS1 と ICS0 は書込みのみ有効で ,S1 と S0 は読出しのみ有効です。 [bit15 ∼ bit12, bit7 ∼ bit4] ICS3 ∼ ICS0 ICS3 ∼ ICS0 ビットは ,EI2OS チャネル選択ビットです。 書込み専用のビットです。ここで設定された値によりメモリ上の拡張インテリジェン ト I/O サービスディスクリプタのアドレスが決定します。ICS はリセットにより初期化 されます。ICS, チャネル番号およびディスクリプタアドレスの対応を 表 3.6-1 に示し ます。 60 第 3 章 割込み 表 3.6-1 ICS ビット , チャネル番号およびディスクリプタアドレス ICS3 ICS2 ICS1 ICS0 セレクトされるチャネル ディスクリプタアドレス 0 0 0 0 0 000100H 0 0 0 1 1 000108H 0 0 1 0 2 000110H 0 0 1 1 3 000118H 0 1 0 0 4 000120H 0 1 0 1 5 000128H 0 1 1 0 6 000130H 0 1 1 1 7 000138H 1 0 0 0 8 000140H 1 0 0 1 9 000148H 1 0 1 0 10 000150H 1 0 1 1 11 000158H 1 1 0 0 12 000160H 1 1 0 1 13 000168H 1 1 1 0 14 000170H 1 1 1 1 15 000178H [bit13, bit12, bit5, bit4] S1, S0 S1, S0 は ,EI2OS 終了ステータスビットです。 読出し専用のビットで ,EI2OS 終了時にこのビットの値を調べることにより , 終了条件 が何であったかを判別することができます。リセットにより "00B" に初期化されます。 S ビットと終了条件との関係を 表 3.6-2 に示します。 表 3.6-2 S ビットと終了条件 S1 S0 0 0 EI2OS 動作中あるいは非起動時 0 1 カウント終了による停止状態 1 0 予約 1 1 内蔵リソースからの要求による停止状態 終了条件 61 第 3 章 割込み [bit11, bit3] ISE ISE ビットは ,EI2OS を許可します。読書き可能なビットです。 割込み要求の発生時にこのビットが "1" であると EI2OS が起動され ,"0" のときは割込 みシーケンスが起動されます。また ,EI2OS の終了条件が満たされると(S1 ビットと S0 ビットが "00B" でない),ISE ビットは "0" になります。対応する周辺に EI2OS の機 能がないときには , ソフトウェアで ISE を "0" にしておく必要があります。リセットに より "0" に初期化されます。 [bit10 ∼ bit8, bit2 ∼ bit0] IL2, IL1, IL0 IL2, IL1, IL0 ビットは , 割込みレベルを設定します。 対応する内蔵リソースの割込みレベルを指定します。読出しと書込みができます。リ セットによりレベル 7(割込みなし)に初期化されます。割込みレベル設定ビットと割 込みレベルとの関係を 表 3.6-3 に示します。 表 3.6-3 割込みレベル設定ビットのレベル値 62 IL2 IL1 IL0 割込みレベル値 0 0 0 0(最強割込み) 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6(最弱割込み) 1 1 1 7(割込みなし) 第 3 章 割込み 3.6.2 拡張インテリジェント I/O サービスディスクリプタ (ISD) 拡張インテリジェント I/O サービスディスクリプタは , 内部 RAM 中の 000100H ∼ 00017FH に存在し , 以下に示すものから構成されます。 • データ転送の各種コントロールデータ • ステータスデータ • バッファアドレスポインタ ■ 拡張インテリジェント I/O サービスディスクリプタ (ISD) 図 3.6-3 に , 拡張インテリジェント I/O サービスディスクリプタの構成を示します。 図 3.6-3 拡張インテリジェント I/O サービスディスクリプタの構成 データカウンタ上位8ビット(DCTH) H データカウンタ下位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.6-4 に示します。 図 3.6-4 データカウンタ (DCT) の構成 データカウンタ上位 bit 15 B15 初期値 データカウンタ下位 初期値 (X) bit 7 14 B14 (X) 6 13 B13 (X) 5 12 B12 (X) 4 11 B11 (X) 3 10 B10 (X) 2 9 8 B09 B08 (X) 1 DCTH (X) 0 B07 B06 B05 B04 B03 B02 B01 B00 (X) (X) (X) (X) (X) (X) (X) (X) DCTL 63 第 3 章 割込み ■ I/O レジスタアドレスポインタ (IOA) I/O レジスタアドレスポインタ (IOA) は ,16 ビット長のレジスタで , データ転送に使用 されるバッファと I/O レジスタの下位アドレス (A15 ∼ A00) を示します。上位アドレ ス (A23 ∼ A16) はすべて "0" であり ,000000H ∼ 00FFFFH 番地までの任意の I/O を指定 できます。IOA の構成を 図 3.6-5 に示します。 図 3.6-5 I/O レジスタアドレスポインタ (IOA) の構成 I/Oレジスタ アドレスポインタ上位 bit 初期値 I/Oレジスタ アドレスポインタ下位 初期値 15 14 13 12 11 10 9 8 A15 A14 A13 A12 A11 A10 A09 A08 (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 2 1 0 A07 A06 A05 A04 A03 A02 A01 A00 (X) (X) (X) (X) (X) (X) (X) (X) bit IOAH IOAL ■ EI2OS ステータスレジスタ (ISCS) EI2OS ステータスレジスタ (ISCS) は ,8 ビット長のレジスタで , 更新の向き(インクリ メント / デクリメント), 転送データ形式(バイト / ワード), バッファアドレスポイン タおよび I/O レジスタアドレスポインタの転送方向を指示します。また , このレジスタ は , バッファアドレスポインタまたは I/O レジスタアドレスポインタが更新または固定 されているかどうかも指示します。ISCS の構成を 図 3.6-6 に示します。 図 3.6-6 EI2OS ステータスレジスタ (ISCS) の構成 EI2OSステータスレジスタ(ISCS) bit 初期値 7 6 5 4 3 2 1 0 予約 予約 予約 IF BW BF DIR SE (X) (X) (X) (X) (X) (X) (X) (X) 各ビットについて , 以下に説明します。 [bit4] IF IF ビットは ,I/O レジスタアドレスポインタの更新 / 固定を指定します。 表 3.6-4 I/O レジスタアドレスポインタの更新 / 固定ビット (IF) IF 64 機能 0 データ転送後 I/O レジスタアドレスポインタは更新される。 1 データ転送後 I/O レジスタアドレスポインタは更新されない。 第 3 章 割込み [bit3] BW BW ビットは , 転送データ長を指定します。 表 3.6-5 転送データ長を指定ビット (BW) BW 機能 0 バイト 1 ワード [bit2] BF BF ビットは , バッファアドレスポインタの更新 / 固定を指定します。 表 3.6-6 バッファアドレスポインタの更新 / 固定指定ビット (BF) BF < 注意事項 > 機能 0 データ転送後バッファアドレスポインタは更新される。 1 データ転送後バッファアドレスポインタは更新されない。 更新する場合 , バッファアドレスポインタは下位 16 ビットのみ変化します。許さ れるのはインクリメントのみです。 [bit1] :DIR DIR ビットは , データの転送方向を指定します。 表 3.6-7 データの転送方向指定ビット (DIR) の設定 DIR 設定 0 I/O 1 バッファ→ I/O → バッファ [bit0] SE SE ビットは , リソースからの要求に応じて , 拡張インテリジェント I/O サービスの終了 を制御します。 表 3.6-8 EI2OS 終了制御ビット SE 設定 0 リソースからの要求により終了しない。 1 リソースからの要求により終了する。 65 第 3 章 割込み ■ バッファアドレスポインタ (BAP) 24 ビットのレジスタで次に EI2OS による転送で使用するアドレスを保持します。BAP は EI2OS の各チャネルに対してそれぞれ独立に存在しますので ,EI2OS の各チャネルは 16M バイトの任意の空間を転送することができます。 < 注意事項 > 66 ISCS の BF ビットを "0"(更新あり)にした場合 ,BAP は下位 16 ビットのみ変化し , BAPH は変化しません。 第 3 章 割込み 3.6.3 拡張インテリジェント I/O サービス (EI2OS) の動作 図 3.6-7 に拡張インテリジェント I/O サービス (EI2OS) の動作フローを , 図 3.6-8 に , 拡張インテリジェント I/O サービス (EI2OS) の使用手順フローを示します。 ■ 拡張インテリジェント I/O サービス (EI2OS) の動作フロー 図 3.6-7 拡張インテリジェント I/O サービス (EI2OS) 動作フロー 内蔵ソースにより 割込み要求発生 ISE=1 NO YES 割込みシーケンス ISD/ISCSリード リソースから の終了要求 YES YES DIR=1 NO IOAで示されるデータ (データ転送) BAPで示されるメモリ IF=0 NO BF=0 BAPで示されるデータ (データ転送) IOAで示されるメモリ YES DCT=00 NO 更新値は BWによる IOA更新 更新値は BWによる BAP更新 YES NO DCTデクリメント YES SE=1 NO NO (-1) YES S1,S0に"00"をセット 内蔵ソースに割込み 要求のクリア CPU動作復帰 ISD :EI2OSディスクリプタ ISCS:EI2OSステータスレジスタ IF :EI2OSステータスレジスタ(ISCS)の IOA更新/固定選択ビット BW :EI2OSステータスレジスタ(ISCS)の 転送データ長指定ビット BF :EI2OSステータスレジスタ(ISCS)の BAP更新/固定選択ビット DIR :EI2OSステータスレジスタ(ISCS)の データ転送方向指定ビット SE :EI2OSステータスレジスタ(ISCS)の EI2OS終了制御ビット EI2OS終了処理 S1,S0に"01"をセット S1,S0に"11"をセット ISEを"0"にクリア 割込みシーケンス DCT :データカウンタ IOA :I/Oレジスタアドレスポインタ BAP :バッファアドレスポインタ ISE :割込み制御レジスタ(ICR)のEI2OS許可ビット S1,S0 :割込み制御レジスタ(ICR)のEI2OSステータス 67 第 3 章 割込み 図 3.6-8 拡張インテリジェント I/O サービス (EI2OS) の使用手順フロー ソフトウェアによる処理 ハードウェアによる処理 開 始 システムスタック領域の設定 初 期 設 定 EI2OSディスクリプタの設定 内蔵リソースの初期設定 割込み制御レジスタ(ICR) の設定 内蔵リソースの動作開始 設定割込み許可ビットの 設定 PS内のILM,Iの設定 S1,S0=00 ユーザプログラムの実行 (割込み要求)and(ISE=1) データ転送 NO カウントアウトまたは リソースからの終了要求 による割込みへ分岐の判定 (割込みベクタへ分岐) 拡張インテリジェントI/O サービスの再設定 (チャネルの切換えなど) バッファ中のデータの処理 RETI ISE : 割込み制御レジスタ(ICR)のEI2OSの許可ビット S1,S0:割込み制御レジスタ(ICR)のEI2OSステータス 68 YES S1,S0=01または S1,S0=11 第 3 章 割込み 拡張インテリジェント I/O サービス (EI2OS) の 実行時間 3.6.4 拡張インテリジェント I/O サービス (EI2OS) の実行時間は次の 3 つの場合がありま す。 • データ転送継続時(停止条件が成立しない場合) • リソースからの停止要求時 • カウント終了時 ■ 拡張インテリジェント I/O サービス (EI2OS) の実行時間 ● データ転送継続時(停止条件が成立しない場合) ( 表 3.6-9 + 表 3.6-10 )マシンサイクル 表 3.6-9 拡張 EI2OS の継続時の実行時間 ISCS:SE ビット "0" に設定 I/O アドレスポインタ "1" に設定 固定 更新 固定 更新 固定 32 34 33 35 更新 34 36 35 37 バッファアドレスポインタ ● リソースからの停止要求時 (36+6 × 表 3.4-1 )マシンサイクル ● カウント終了時 ( 表 3.6-9 + 表 3.6-10 +(21+6 × 表 3.4-1 ))マシンサイクル 表 3.6-10 拡張 EI2OS 実行時間のデータ転送の補正値 内部アクセス 外部アクセス I/O アドレスポインタ バッファ アドレス ポインタ B/ 偶 奇 B/ 偶 8/ 奇 B/ 偶 0 +2 +1 +4 奇 +2 +4 +3 +6 B/ 偶 +1 +3 +2 +5 8/ 奇 +4 +6 +5 +8 内部アクセス 外部アクセス B : バイトデータ転送 8 : 外部バス幅 8 ビット・ワード転送 偶 : 偶数アドレス・ワード転送 奇 : 奇数アドレス・ワード転送 69 第 3 章 割込み 3.7 未定義命令の実行による例外発生 F2MC-16LX では , 未定義命令の実行により例外が発生し , 例外処理が行われます。 例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生した ことを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処 理は予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊 急時の復旧ソフトウェアの起動などのみに使用することをお勧めします。 ■ 未定義命令の実行による例外発生 F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い ます。未定義命令を実行すると , ソフトウェア割込み命令の「INT 10」と等価な処理を 行います。すなわち ,AL, AH, DPR, DTB, ADB, PCB, PC, PS の内容をシステムスタック に退避した後に , 割込み番号 10 のベクタで示されるルーチンへ分岐します。さらに ,I フラグをクリアし ,S フラグを設定します。スタックへ退避した PC の値は未定義命令 を格納しているアドレスそのものです。RETI 命令で元の処理に復帰させることは可能 ですが , 再び例外を発生するため , 意味がありません。 70 第4章 クロック クロックについて説明します。 4.1 クロックの概要 4.2 クロック発生部のブロックダイヤグラム 4.3 クロック選択レジスタ (CKSCR) 4.4 クロックモード 4.5 発振安定待ち時間 4.6 振動子と外部クロックの接続 71 第 4 章 クロック 4.1 クロックの概要 クロック発生部は ,CPU や周辺機能の動作クロックである内部クロックの動作を制 御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の PLL 発振によるクロックを PLL クロックといいます。 ■ クロックの概要 クロック発生部は発振回路を内蔵しており , 外部に振動子を接続することによって , 発 振クロックを発生します。外部で生成したクロックを入力して , 発振クロックにするこ ともできます。また ,PLL クロック逓倍回路を内蔵しており , 発振クロックの逓倍ク ロックを 4 種類発生できます。クロック発生部では , 発振安定待ち時間の制御 ,PLL ク ロック逓倍制御およびクロックセレクタでのクロックの切換えによる,内部クロックの 動作制御を行います。 ● 発振クロック (HCLK) X0, X1 端子に振動子を取り付けて発生させるか , あるいは外部から入力したクロック のことです。 ● サブクロック (SCLK) X0A, X1A 端子に振動子を取り付けて発生させるか , あるいは外部から入力したクロッ クの 4 分周クロックをいいます。 サブクロックは,時計タイマの入力クロックおよびサブクロックモード時の低速マシン クロックとなります。 ● メインクロック (MCLK) 発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入 力クロックとなります。 ● PLL クロック (PCLK) 発振クロックを , 内蔵の PLL クロック逓倍回路により逓倍したクロックです。4 種類 の逓倍クロックを選択できるようになっています。 ● マシンクロック (φ) CPU と周辺機能の動作クロックです。このクロックの 1 周期を , マシンサイクル (1/φ) としています。メインクロック(発振クロックの 2 分周クロック)と ,4 種類の逓倍ク ロックの中から 1 種類を選択できるようになっています。 < 注意事項 > 72 動作電圧が 5V のとき,OSC 原発振は 3 MHz ∼ 16 MHz の間になります。CPU と 周辺リソース回路の最大動作周波数は 16MHz なので , 最大動作周波数を超える逓 倍率を指定した場合 , デバイスは正常に動作しません。例えば , 外部クロックが 16MHz で発振している場合には ,1 逓倍だけ指定が可能です。 PLL クロック逓倍回路の発振範囲は 3MHz ∼ 16MHz ですが , この範囲は動作電圧 および逓倍数の選択によって変化します。詳細は『データシート』を参照してくだ さい。 第 4 章 クロック ■ クロック供給マップ CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを 供給しています。このため CPU と周辺機能の動作は , メインクロックと PLL クロック の切換え(クロックモード)や PLL クロック逓倍率切換えの影響を受けます。一部の 周辺機能へは , タイムベースタイマの分周出力が供給されており , 各周辺で , その動作 クロックを選択できるようになっています。図 4.1-1 に , クロック供給マップを示しま す。 図 4.1-1 クロック供給マップ 周辺機能 4 4 ウォッチドッグ タイマ 8/16 ビット PPGタイマ0/1/2/3 クロック発生部 タイムベースタイマ X0A 端子 X1A 端子 1 2 3 4 クロック 発生回路 シリアルI/O X0 4分周 端子 X1 端子 16ビット リロードタイマ0 時計タイマ クロック 発生回路 PLL逓倍回路 (サブクロック) PCLK (PLLクロック) SCLK プリスケーラ クロックセレクタ φ 2分周 HCLK MCLK (マシンクロック) (発振クロック) (メインクロック) UART0 プリスケーラ0 CPU UART1 プリスケーラ 16ビット リロードタイマ1 アウトプット コンペア0~3 PPG0~PPG3 端子 TIN0 端子 TOT0 端子 SCK2 端子 SIN2 端子 SOT2 端子 SCK0 端子 SIN0 端子 SOT0 端子 SCK1 端子 SIN1 端子 SOT1 端子 TIN1 端子 TOT1 端子 OUT0~OUT3 端子 入出力タイマ インプット キャプチャ0~7 HCLK :発振クロック MCLK :メインクロック PCLK :PLLクロック φ :マシンクロック 10ビット A/Dコンバータ 4 IN0~IN7 端子 AN0~AN7 端子 ADTG 端子 発振安定待ち制御 CAN0~CAN2 端子 RX0~RX2 端子 TX0~TX2 73 第 4 章 クロック クロック発生部のブロックダイヤグラム 4.2 クロック発生部は , 次の 5 つのブロックで構成されています。 • システムクロック発生回路 • PLL 逓倍回路 • クロックセレクタ • クロック選択レジスタ (CKSCR) • 発振安定待ち時間セレクタ ■ クロック発生部のブロックダイヤグラム 図 4.2-1 に , クロック発生部のブロックダイヤグラムを示します。 なお, 図 4.2-1 には,スタンバイ制御回路,タイムベースタイマの回路も含まれています。 図 4.2-1 クロック発生部のブロックダイヤグラム スタンバイ制御回路 低消費電力モード制御レジスタ( LPMCR) STP SLP SPL RST TMD CG1 CG0 予約 2 CPU間欠動作 サイクルセレクタ CPUクロック 制御回路 CPU動作 クロック 時計モード スリープ信号 ストップ信号 周辺クロック 制御回路 リセット 割込み S Q S Q R R S Q S Q R R 周辺機能動作 クロック マシン クロック クロック セレクタ 2 発振安定待ち 時間セレクタ 2 PLL逓倍回路 SCM MCM WS1 WS0 SCS MCS CS1 CS0 クロック選択レジスタ( CKSCR) 発振 クロック 発生回路 X0 端子 X1 端子 X0A 端子 X1A 端子 S :Set R :Reset Q :Out put 74 メイン クロック 2分周 512分周 発振 クロック 4分周 サブクロック 発生回路 4分周 2分周 2分周 2分周 2分周 タイムベースタイマ サブ クロック ウォッチドッグタイマへ 時計タイマ 1024分周 8分周 2分周 2分周 2分周 4分周 第 4 章 クロック ● システムクロック発生回路 外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを 入力することもできます。 ● サブクロック発生回路 外部に接続した振動子によってサブクロック (SCLK) を発生します。外部クロックを入 力することもできます。 ● PLL 逓倍回路 PLL 発振で発振クロックを逓倍し ,CPU クロックセレクタへ供給します。 ● クロックセレクタ メインクロックと ,4 種類の PLL クロックから ,CPU 系クロック制御回路および周辺系 クロック制御回路へ供給されるクロックを選択します。 ● クロック選択レジスタ (CKSCR) 発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック の逓倍率の選択などを行います。 ● 発振安定待ち時間セレクタ ストップモード解除時,サブクロックモードからメインクロックモードへの移行時およ びサブクロックから PLL クロックモードへの移行時の発振クロックの発振安定待ち時 間を選択する回路です。4 種類のタイムベースタイマ出力を選択します。 75 第 4 章 クロック 4.3 クロック選択レジスタ (CKSCR) クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振 安定待ち時間の選択および PLL クロックの逓倍率の選択などを行うレジスタです。 ■ クロック選択レジスタ (CKSCR) 図 4.3-1 に , クロック選択レジスタ (CKSCR) の構成を , 表 4.3-1 に , クロック選択レジ スタ (CKSCR) の各ビットの機能について説明します。 図 4.3-1 クロック選択レジスタ (CKSCR) の構成 アドレス bit15 0000A1H 14 13 12 11 10 9 8 SCM MCM WS1 WS0 SCS MCS CS1 CS0 R R R/W R/W R/W R/W R/W R/W CS1 CS0 初期値 0 (LPMCR) 11111100B 逓倍率選択ビット ( )内は発振クロック4MHz時 0 0 1×HCLK( 4MHz) 0 1 2×HCLK( 8MHz) 1 0 3×HCLK(12MHz) 1 1 4×HCLK(16MHz) MCS マシンクロック選択ビット 0 PLLクロック選択 1 メインクロック選択 SCS マシンクロック選択ビット(サブ) 0 サブクロック選択 1 メインクロック選択 WS1 WS0 発振安定待ち時間選択ビット ( )内は発振クロック4MHz時 0 0 210/HCLK(約256µs) 0 1 213/HCLK(約 2.05ms) 1 0 1 1 215/HCLK(約 8.19ms) 217/HCLK(約32.77ms)* マシンクロック表示ビット MCM 0 PLLクロックで動作中 1 メインクロックで動作中 マシンクロック表示ビット(サブ) SCM HCLK :発振クロック R/W :リード/ライト可能 R :リードオンリ - :未使用 :初期値 7 0 サブクロックで動作中 1 メインクロックで動作中 *:パワーオンリセット時は218/HCLK(約65.54ms)になります。 < 注意事項 > 76 マシンクロック選択ビットは , リセットによりメインクロック選択に初期化され ます。 第 4 章 クロック 表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 3) ビット名 bit15 bit14 機 能 SCM: マシンク ロック表示 ビット • マシンクロックとして , メインクロックまたはサブクロックのどちらが 選択されているかを表示するビットです。 • このビットが "0" のときサブクロックが選択されていることを示し ,"1" のときメインクロックが選択されていることを示します。 • SCS が "1" で , かつ SCM が "0" ならば , メインクロック発振安定待ち時 間中であることを示します。 • 書込みは動作に影響しません。 MCM: マシンク ロック表示 ビット • マシンクロックとして , メインクロックまたは PLL クロックのどちらが 選択されているかを表示するビットです。 • このビットが "0" のとき PLL クロックが選択されていることを示し ,"1" のときメインクロックが選択されていることを示します。 • MCS が "0" で , かつ MCM が "1" ならば ,PLL クロック発振安定待ち期間 中であることを示します。 • 書込みは動作に影響しません。 • ストップモード解除時 , サブクロックモードからメインクロックモード への移行時およびサブクロックから PLL クロックモードへの移行時の 発振クロックの発振安定待ち時間を選択します。 • すべてのリセット要因で "11B" に初期化されます。 bit13, bit12 WS1, WS0: 発振安定待 ち時間選択 ビット ( 注意事項 ) 発振安定待ち時間は , 使用する振動子に合わせて適切な値を設定する必 要があります。 「6.2 リセット要因と発振安定待ち時間」を参照してくだ さい。"00B" の設定は , メインクロックモード時のみ設定してください。 メインクロックモードからPLLクロックモードに切り換えた場合の発振 安定待ち時間は ,214/HCLK(発振クロック周波数 4MHz で動作している 場合 : 約 4.1ms)固定です。サブクロックモードから PLL クロックモー ドに切り換えた場合および PLL ストップモードから PLL クロックモー ドに復帰する場合は WS1, WS0 に設定された値に従います。PLL の発振 安定は 214/HCLK 以上必要ですので ,サブクロックモードからPLL クロッ クモードに切り換える場合およびPLLストップモードに移行する場合は WS1, WS0 を "10B" または "11B" に設定してください。 77 第 4 章 クロック 表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 3) ビット名 bit11 bit10 SCS: マシンク ロック選択 ビット (サブ) MCS: マシンク ロック選択 ビット 機 能 • マシンクロックとして , メインクロック , またはサブクロックのどちら を選択するかを指定するビットです。 • このビットが "1" のときに "0" を書き込むと , サブクロックの同期をとっ て(約 130µs)サブクロックモードに切り換わります。 • このビットが "0" のときに "1" を書き込むと , メインクロックの発振安 定待ち期間が発生するために , 自動的にタイムベースタイマがクリアさ れます。 • サブクロック選択時の動作クロックは , サブ発振クロックの 4 分周を使 用します(サブ発振クロック 32kHz 時 , マシンクロックは 8kHz になり ます)。 • SCS,MCS がともに "0" のときは ,SCS が優先され , サブクロックが選択 されます。 • すべてのリセット要因で "1" に初期化されます。 ( 注意事項 ) 電源投入時 , またはストップモードからの解除時はサブクロックの発振 安定待ち時間(約 2s)が発生します。したがって , その間にメインクロッ クモードからサブクロックモードに切り換えた場合は発振安定待ち時 間が発生します。 • マシンクロックとして , メインクロック , または PLL クロックのどちら を選択するかを指定するビットです。 • このビットが "0" のとき PLL クロックを選択し ,"1" のときメインクロッ クを選択します。 • このビットが "1" のときに "0" を書き込むと ,PLL クロックの発振安定待 ち期間が発生するために , 自動的にタイムベースタイマがクリアされ , さらにタイムベースタイマ制御レジスタ (TBTC) の TBOF ビットもクリ アされます。 • メインクロックモードから PLL クロックモードに切り換えた場合の発 振安定待ち時間は ,214/HCLK(発振クロック周波数 4MHz で動作してい る場合 : 約 4.1ms)固定です。サブクロックモードから PLL クロックモー ドに切り換えた場合および PLL ストップモードから PLL クロックモー ドに復帰する場合は WS1, WS0 に設定された値に従います。PLL の発振 安定は 214/HCLK 以上必要ですので , サブクロックモードから PLL ク ロックモードに切り換える場合および PLL ストップモードに移行する 場合は WS1, WS0 を "10B" または "11B" に設定してください。 • メインクロック選択時の動作クロックは , 発振クロックを 2 分周したク ロックとなります(発振クロック周波数 4MHz 時 , 動作クロックは 2MHz になります)。 • すべてのリセット要因で "1" に初期化されます。 ( 注意事項 ) MCS ビットが "1" のときに "0" を書き込む場合には , タイムベースタイ マ制御レジスタ (TBTC) の TBIE ビットまたはインタラプトレベルレジス タ (ILM) によりタイムベースタイマ割込みがマスクされている状態で , 行うようにしてください。 78 第 4 章 クロック 表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (3 / 3) ビット名 bit9 , bit8 CS1, CS0: 逓倍率選択 ビット 機 能 • PLL クロックの逓倍率を選択するビットです。 • 4 種類の逓倍率から選択できます。 • すべてのリセット要因で "00B" に初期化されます。 ( 注意事項 ) MCS ビットまたは MCM ビットが "0" のときには , 書込みが抑止されま す。いったん ,MCS ビットを "1" にした(メインクロックモード)後に , CS1, CS0 ビットを書き換えてください。 HCLK: 発振クロック周波数 79 第 4 章 クロック 4.4 クロックモード クロックモードには , メインクロックモードと PLL クロックモード , サブクロック モードがあります。 ■ メインクロックモード ,PLL クロックモード , サブクロックモード ● メインクロックモード メインクロックモードは ,CPU および周辺機能の動作クロックとして発振クロックを 2 分周したクロックを使用し ,PLL クロックを停止させます。 ● PLL クロックモード PLL クロックモードは ,CPU および周辺機能の動作クロックとして PLL クロックを使 用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) により 選択できます。 ● サブクロックモード サブクロックモードは,CPUおよび周辺機能の動作クロックとしてサブ発振クロックを 4 分周したクロックを使用し , メインクロックおよび PLL クロックを停止させます。 ■ クロックモードの移行 クロック選択レジスタ (CKSCR) の MCS ビット ,SCS ビットへの書込み動作により , ク ロックモードは , メインクロックモード ,PLL クロックモード , サブクロックモードに 移行します。 ● メインクロックモードから PLL クロックモードへの移行 メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1" から "0" に書き換えた場合には ,PLL クロックの発振安定待ち期間 (214/HCLK) 後に , メ インクロックから PLL クロックに切り換わります。 ● PLL クロックモードからメインクロックモードへの移行 PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" か ら "1" に書き換えた場合には ,PLL クロックとメインクロックのエッジが一致するタイ ミング(1 ∼ 8PLL クロック後)で PLL クロックからメインクロックに切り換わります。 ● メインクロックモードからサブクロックモードへの移行 メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1" から "0" に書き換えた場合には , サブクロックの同期をとって(約 130µs)メインク ロックからサブクロックに切り換わります。 80 第 4 章 クロック ● サブクロックモードからメインクロックモードへの移行 サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック からメインクロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットにより選択します。 < 注意事項 > サブクロックモードから外部リセット端子(RST 端子)にてメインクロックモード へ移行する場合は , 振動子の発振時間 *+100µs+16 マシンサイクル 以上 "L" レベルを入力してください。 *: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶発振子は数 ms ∼ 数十 ms, セラミック発振子は数百 µs ∼数 ms, 外部クロックは 0ms となりま す。 ● PLL クロックモードからサブクロックモードへの移行 PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1" か ら "0" に書き換えた場合には , PLL クロックからサブクロックに切り換わります。 ● サブクロックモードから PLL クロックモードへの移行 サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック から PLL クロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットにより選択します。 < 注意事項 > クロック選択レジスタ (CKSCR) の MCS ビット ,SCS ビットを書き換えても即座 にマシンクロックの切換えが行われません。マシンクロックに依存する周辺機能を 操作する場合には , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照してマシンクロックの切換えが行われたことを確認したのちに , 周辺 機能の操作を行ってください。 クロックモードを切り換えた場合 , 切換えが完了するまでは , ほかのクロックモー ドおよび低消費電力モードへの切換えを行わないようにしてください。切換えの完 了は , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照し て確認してください。 SCS ビット ,MCS ビットがともに "0" の場合は ,SCS が優先され , サブクロック モードになります。 ■ PLL クロック逓倍率の選択 クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ∼ "11B" を書き込むことに より ,1 ∼ 4 逓倍の 4 種類の PLL クロック逓倍率を選択できます。 ■ マシンクロック PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロック , サブ発振クロッ クの 4 分周クロックが , マシンクロックとなります。このマシンクロックが CPU およ び周辺機能に供給されます。メインクロック ,PLL クロック , サブクロックは , クロッ ク選択レジスタ (CKSCR) の MCS ビットまたは SCS ビットへの書込みにより , いずれ かを選択できます。 図 4.4-1 に , マシンクロックの切換えによる状態遷移を示します。 81 第 4 章 クロック 図 4.4-1 マシンクロック選択の状態遷移図 メイン MCS = 1 MCM = 1 SCS = 1 SCM = 1 CS1,CS0=xx メイン→ サブ MCS = 1 MCM = 1 (9) SCS = 0 (10) SCM = 1 CS1,CS0=xx (8) (1) (11) サブ→メイン (6) メイン→ PLLx MCS = 0 MCM = 1 SCS = 1 SCM = 1 CS1,CS0=xx (2) (3) (4) (8) MCS = 1 MCM = 1 SCS = 1 SCM = 0 CS1,CS0=xx (8) (12) サブ→ PLLx MCS =0 MCM =1 (14) SCS =0 (15) SCM =1 CS1, CS0=xx (13) (5) PLL1 →メイン MCS = 1 MCM = 0 SCS = 1 SCM = 1 (7) CS1,CS0=00 PLL1 逓倍 MCS = 0 MCM = 0 (6) SCS = 1 SCM = 1 CS1,CS0=00 PLL2 →メイン MCS = 1 MCM = 0 SCS = 1 SCM = 1 (7) CS1,CS0=01 PLL2 逓倍 MCS = 0 MCM = 0 (6) SCS = 1 SCM = 1 CS1,CS0=01 PLL3 →メイン MCS = 1 MCM = 0 SCS = 1 SCM = 1 (7) CS1,CS0=10 PLL3 逓倍 MCS = 0 MCM = 0 (6) SCS = 1 SCM = 1 CS1,CS0=10 PLL4 →メイン MCS = 1 MCM = 0 SCS = 1 SCM = 1 (7) CS1,CS0=11 PLL4 逓倍 MCS = 0 MCM = 0 SCS = 1 (6) SCM = 1 CS1,CS0=11 サブ MCS = x (16) MCM = 1 SCS = 0 SCM = 0 (10) CS1,CS0=xx (8) (8) (8) (8) PLL1 →サブ MCS = 1 MCM = 0 SCS = 0 SCM = 1 CS1,CS0=00 PLL2 →サブ MCS = 1 MCM = 0 SCS = 0 SCM = 1 CS1,CS0=01 PLL3 →サブ MCS = 1 MCM = 0 SCS = 0 SCM = 1 CS1,CS0=10 PLL4 →サブ MCS = 1 MCM = 0 SCS = 0 SCM = 1 CS1,CS0=11 (17) (17) (17) (17) (1) MCS ビット"0"ライト (2)PLL クロック発振安定待ち終了&CS1, CS0=00 (3)PLL クロック発振安定待ち終了&CS1, CS0=01 (4)PLL クロック発振安定待ち終了&CS1, CS0=10 (5)PLL クロック発振安定待ち終了& CS1, CS0=11 (6)MCS ビット"1"ライト(リセットを含む) (7)PLL クロックとメインクロックの同期タイミング (8)SCSビット"0"ライト (9)メインクロックとサブクロックの同期タイミング (10)SCSビット"1"ライト(MCS=1) (11)メインクロック発振安定待ち終了 (12)メインクロック発振安定待ち終了&CS1,CS0=00 (13)メインクロック発振安定待ち終了&CS1,CS0=01 (14)メインクロック発振安定待ち終了&CS1,CS0=10 (15)メインクロック発振安定待ち終了&CS1,CS0=11 (16)SCSビット"1"ライト(MCS=0) (17)PLL クロックとサブクロックの同期タイミング MCS :クロック選択レジスタ(CKSCR)のマシンクロック選択ビット MCM :クロック選択レジスタ(CKSCR)のマシンクロック表示ビット SCM :クロック選択レジスタ(CKSCR)のマシンクロック表示ビット (サブ) SCS :クロック選択レジスタ(CKSCR)のマシンクロック選択ビット (サブ) CS1,CS0 :クロック選択レジスタ(CKSCR)の逓倍率選択ビット < 注意事項 > 82 • マシンクロックの初期値はメインクロック (CKSCR:MCS=1,SCS=1) です。 • SCS,MCS ともに "0" のときは SCS が優先され , サブクロックが選択されます。 • サブクロックモードから PLL クロックモードへの切換え時は ,CKSCR:WS1, WS0 を "10B" または "11B" に設定してください。 第 4 章 クロック 4.5 発振安定待ち時間 電源投入時 , ストップモード解除時 , サブクロックからメインクロック , サブクロッ クから PLL クロックへ切り換える場合は , 発振クロックの発振が停止しているため , 発振開始後 , 発振安定待ち時間をとる必要があります。また , メインクロックから PLL クロック , メインクロックからサブクロックへ切換え時も , 発振安定待ち時間が 必要となります。 ■ 発振安定待ち時間 セラミックや水晶などの振動子は , 発振を開始してから固有の振動数(発振周波数)で 安定して発振するまでに , 一般的に数 ms から数十 ms の時間が必要です。このため , 発 振開始直後は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振が安定した 時点で CPU にクロックを供給するようにします。振動子の種類(水晶 , セラミックな ど)によって発振が安定するまでの時間が異なるため , 使用する振動子に合わせて適切 な発振安定待ち時間を選択する必要があります。発振安定待ち時間は , クロック選択レ ジスタ (CKSCR) の設定で選択できます。 クロックモードをメインクロックから PLL クロック , メインクロックからサブクロッ ク , サブクロックからメインクロック , サブクロックから PLL クロックに切り換えた 場合 , 発振安定待ち時間の間 ,CPU は切り換え前のクロックで動作しています。発振安 定待ち時間を経過すると , 各クロックモードに切り換わります。 図 4.5-1 に , 発振開始直後の動作を示します。 図 4.5-1 発振開始直後の動作 振動子の発振時間 発振安定待ち時間 ( ) 通常動作開始または PLLクロック/サブクロックへの切換え X1 発振開始 発振安定 83 第 4 章 クロック 4.6 振動子と外部クロックの接続 MB90440G シリーズは , システムクロック発生回路を内蔵しており , 外部に振動子 を接続してクロック発生させます。また , 外部で生成したクロックを入力することも できます。 ■ 振動子と外部クロックの接続 ● 水晶振動子またはセラミック振動子の接続例 水晶振動子またはセラミック振動子は , 図 4.6-1 の例で示すように接続してください。 図 4.6-1 水晶振動子またはセラミック振動子の接続例 X0(X0A) MB90440G シリーズ X1(X1A) ● 外部クロックの接続例 図 4.6-2 の例で示すように , 外部クロックは ,X0(X0A) 端子に接続し ,X1(X1A) 端子は オープン(開放)にしてください。 図 4.6-2 外部クロックの接続例 X0(X0A) MB90440G シリーズ ~ オープン 84 X1(X1A) 第5章 低消費電力モード 低消費電力モードについて説明します。 5.1 低消費電力モードの概要 5.2 低消費電力制御回路のブロックダイヤグラム 5.3 低消費電力モード制御レジスタ (LPMCR) 5.4 CPU 間欠動作モード 5.5 スタンバイモード 5.6 状態遷移図 5.7 スタンバイモード , ホールド , リセット時の端子状態 5.8 低消費電力モード使用上の注意 85 第 5 章 低消費電力モード 低消費電力モードの概要 5.1 動作クロックの選択とクロックの動作制御による , 次のような CPU 動作モードを備 えています。 • クロックモード(PLL クロック , メインクロック , サブクロックの各モード) • CPU 間欠動作モード(PLL クロック間欠動作 , メインクロック間欠動作 , サブク ロック間欠動作の各モード) • スタンバイモード(スリープ , タイムベースタイマ , 時計 , ストップの各モード) ■ CPU 動作モードと消費電流 CPU 動作モードと消費電流の関係を 図 5.1-1 に示します。 図 5.1-1 CPU 動作モードと消費電流 消費電流 数10mA CPU 動作モード PLLクロックモード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック PLLクロック間欠動作モード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック メインクロックモード(1/2HCLK) メインクロック間欠動作モード サブクロックモード サブクロック間欠動作モード 数mA スタンバイモード スリープモード タイムベースタイマモード 時計モード 数µA 低消費電力モード ストップモード (注意事項)この図は,各種モードのイメージを示したもので,実際の消費電流とは異なる部分があります。 86 第 5 章 低消費電力モード ■ クロックモード ● PLL クロックモード 発振クロック (HCLK) の PLL 逓倍クロックで CPU および周辺機能を動作させるモード です。 ● メインクロックモード 発振クロック (HCLK) の 2 分周クロックで CPU および周辺機能を動作させるモードで す。メインクロックモードでは ,PLL 逓倍回路が停止します。 ● サブクロックモード サブ発振クロックで CPU および周辺機能を動作させるモードです。サブクロックモー ドでは , メインクロックおよび PLL 逓倍回路が停止します。 < 参考 > クロックモードについては ,「4.4 クロックモード」を参照してください。 ■ CPU 間欠動作モード 周辺機能には高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する モードです。CPU 間欠動作モードは ,CPU がレジスタ , 内蔵メモリ , 周辺機能および外 部アクセスを行う場合 ,CPU にだけ間欠クロックを入力するモードです。 ■ スタンバイモード スタンバイモードは , 低消費電力制御回路による CPU へのクロックの供給停止(スリー プモード)や ,CPU と周辺機能へのクロックの供給停止(タイムベースタイマモード), または発振クロックの停止(ストップモード)によって消費電力を低減します。 ● PLL スリープモード PLL スリープモードは ,PLL クロックモードにおいて CPU の動作クロックを停止させ るモードで ,CPU 以外は PLL クロックで動作します。 ● メインスリープモード メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止 させるモードで ,CPU 以外はメインクロックで動作します。 ● サブスリープモード サブスリープモードは , サブクロックモードにおいて CPU の動作クロックを停止させ るモードで ,CPU 以外はサブクロックで動作します。 ● タイムベースタイマモード タイムベースタイマモードは発振クロックとタイムベースタイマ以外の動作を停止さ せるモードで , タイムベースタイマと時計タイマ以外の機能が停止します。 ● 時計モード 時計タイマのみを動作させるモードです。サブクロックのみ動作し , メインクロックお よび PLL 逓倍回路が停止します。 ● ストップモード ストップモードは原発振を停止させるモードで , すべての機能が停止します。 87 第 5 章 低消費電力モード < 注意事項 > 88 ストップモードでは発振クロックが停止するため , もっとも低消費電力でデータを 保持することができます。 クロックモードを切り換えた場合 , 切換えが完了するまでは , ほかのクロックモー ドおよび低消費電力モードへの切換えを行わないようにしてください。切換えの完 了は , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照し て確認してください。 第 5 章 低消費電力モード 5.2 低消費電力制御回路のブロックダイヤグラム 低消費電力制御回路は , 次の 7 つのブロックで構成されています。 • CPU 間欠動作セレクタ • スタンバイ制御回路 • CPU クロック制御回路 • 周辺クロック制御回路 • 端子ハイインピーダンス制御回路 • 内部リセット発生回路 • 低消費電力モード制御レジスタ (LPMCR) ■ 低消費電力制御回路のブロックダイヤグラム 図 5.2-1 に , 低消費電力制御回路のブロックダイヤグラムを示します。 図 5.2-1 低消費電力制御回路のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP RST SLP SPL RST TMD CG1 CG0 予約 端子 端子ハイインピー ダンス制御回路 端子ハイイン ピーダンス制御 内部リセット 発生回路 内部リセット CPU間欠動作 セレクタ 間欠サイクル選択 CPUクロック 制御回路 2 ストップ,スリープ信号 スタンバイ 制御回路 割込み解除 CPUクロック ストップ信号 HCLK:発振クロック MCLK:メインクロック SCLK:サブクロック 周辺クロック 制御回路 マシンクロック 周辺クロック サブクロック発振安定待ち時間 クロック発生部 クロックセレクタ メインクロック発振安定待ち時間 発振安定 待ち時間 セレクタ 2 2 X0 端子 PLL逓倍回路 SCM システム クロック 発生回路 クロック選択レジスタ(CKSCR) HCLK 2分周 MCM WS1 WS0 SCS 512分周 4分周 MCLK タイムベースタイマ X1 端子 XOA 端子 X1A 端子 MCS SC1 2分周 CS0 2分周 2分周 2分周 2分周 4分周 ウォッチドッグタイマへ 4分周 サブクロック 発生回路 SCLK 時計タイマ 1024分周 8分周 2分周 2分周 89 第 5 章 低消費電力モード ● CPU 間欠動作セレクタ CPU 間欠動作モードにおける , 一時停止クロック数を選択します。 ● スタンバイ制御回路 CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの 移行および解除を行います。 ● CPU クロック制御回路 CPU および周辺クロック制御回路周辺機能に供給するクロックを制御する回路です。 ● 周辺クロック制御回路 周辺機能に供給するクロックを制御する回路です。 ● 端子ハイインピーダンス制御回路 タイムベースタイマモードおよびストップモードにおいて,外部端子をハイインピーダ ンスにする回路です。プルアップオプションの選択された端子に対しては , ストップ モードではプルアップ抵抗を切り離します。 ● 内部リセット発生回路 内部リセット信号を発生させる回路です。 ● 低消費電力モード制御レジスタ (LPMCR) スタンバイモードへの移行 / 解除および CPU 間欠動作機能の設定などを行うレジスタ です。 90 第 5 章 低消費電力モード 低消費電力モード制御レジスタ (LPMCR) 5.3 低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除およ び CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを行 うレジスタです。 ■ 低消費電力モード制御レジスタ (LPMCR) 図 5.3-1 に , 低消費電力モード制御レジスタ (LPMCR) の構成を , 表 5.3-1 に各ビットの 機能を示します。 図 5.3-1 低消費電力モード制御レジスタ (LPMCR) の構成 アドレス 0000A0H bit 15 8 (CKSCR) 7 6 5 4 3 2 1 0 STP SLP SPL RST TMD CG1 CG0 RESV W W R/W W R/W R/W R/W R/W 初期値 00011000B 予約ビット RESV このビットへは必ず"0"を書き込んでください。 CG1 CG0 0 0 1 8クロック(CPUクロック:周辺クロック=1:約3~4) 1 0 16クロック(CPUクロック:周辺クロック=1:約5~6) 1 1 32クロック(CPUクロック:周辺クロック=1:約9~10) 0 タイムベースタイマモードに移行 1 変化なし,ほかへの影響なし RST 内部リセット信号発生ビット 0 3マシンサイクルの内部リセット信号を発生 1 変化なし,ほかへの影響なし SPL 端子状態指定ビット (タイムベースタイマ・時計・ストップモード時) 0 保持 1 ハイインピーダンス SLP :リード/ライト可能 :ライトオンリ :初期値 0クロック(CPUクロック=周辺クロック) タイムベースタイマモードビット TMD R/W W CPU一時停止クロック数選択ビット 0 スリープビット 0 変化なし,ほかへの影響なし 1 スリープモードに移行 STP 0 1 ストップビット 変化なし,ほかへの影響なし ストップモードに移行 91 第 5 章 低消費電力モード 表 5.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明 ビット名 bit7 STP: ストップモー ドビット 機 • • • • • 能 ストップモードへの移行を指示するビットです。 このビットに "1" を書き込むと , ストップモードへ移行します。 このビットに "0" を書き込んでも動作に影響しません。 リセット , またはストップ解除で "0" にクリアされます。 このビットを読み出すと , 常に "0" が読み出されます。 スリープモードへの移行を指示するビットです。 このビットに "1" を書き込むとスリープモードに移行します。 このビットに "0" を書き込んでも動作に影響しません。 リセット , スリープ解除 , またはストップ解除で "0" にクリアされます。 STP ビットと SLP ビットに同時に "1" を書き込んだ場合 , ストップモー ドに移行します。 • このビットを読み出すと , 常に "0" が読み出されます。 • • • • bit6 SLP: スリープモー ドビット bit5 SPL: 端子状態指定 ビット (時計・タイム ベースタイ マ・ストップ モード時) • このビットはタイムベースタイマモード , またはストップモードの場合 だけ有効です。 • このビットが "0" の場合 , 外部端子のレベルを保持します。 • このビットが "1" の場合 , 外部端子をハイインピーダンスにします。 • リセットで "0" に初期化されます。 bit4 RST: 内部リセット 信号発生ビッ ト • このビットに "0" を書き込むと 3 マシンサイクルの内部リセット信号を 発生します。 • このビットに "1" を書き込んでも動作に影響しません。 • このビットを読み出すと , 常に "1" が読み出されます。 bit3 TMD: 時計・タイム ベースタイマ モードビット • 時計モード , タイムベースタイマモードへの移行を指示するビットで す。 • メインクロックモード , または PLL クロックモードにおいて , このビッ トに "0" を書込むことにより,タイムベースタイマモードに移行します。 • サブクロック時に , このビットに "0" を書き込むことにより時計モード に移行します。 • リセットまたは割込み要求発生で "1" に初期化させます。 • このビットを読み出すと , 常に "1" が読み出されます。 bit2, bit1 CG1, CG0: CPU クロック 一時停止サイ クル数選択 ビット • CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設定する ビットです。 • 一命令ごとに指定サイクル数 CPU クロック供給を停止します。 • 4 種類のクロック数から選択できます。 • リセットで "00B" に初期化されます。 bit0 RESV: 予約ビット このビットには必ず "0" を書き込んでください。 92 第 5 章 低消費電力モード ■ 低消費電力モード制御レジスタへのアクセス 低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス リープモード , タイムベースタイマモード , 時計モード ) へ遷移しますが , 低消費電力 モードへの遷移に使用する命令は 表 5.3-2 の命令を使用してください。 表 5.3-2の命令による低消費電力モード遷移命令の直後には必ず下記 内の命令列を 配置してください。 MOV LPMCR,#H’xx ; 表 5.3-2 の低消費電力モード遷移命令 NOP NOP JMP $+3 ; 次の命令へのジャンプ MOV A,#H’10 ; 任意の命令 内の命令以外が配置されると低消費電力モード解除後の動作は保証されません。 C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は ,「5.8 低消費 電力モード使用上の注意」の「スタンバイモード遷移のための低消費電力モード制御 レジスタ (LPMCR) へアクセスする際の注意事項」を参照してください。 表 5.3-1 に示す以外の機能を制御する場合には , どの命令を使用してもかまいません。 ワード長で低消費電力モード制御レジスタへ書き込む場合には,偶数アドレスで書き込 むようにしてください。奇数アドレスの書込みで低消費電力モードへ遷移した場合に は , 誤動作の原因となる場合があります。 表 5.3-2 低消費電力モードへ遷移する場合に使用する命令一覧 MOV io, #imm8 MOV dir, #imm8 MOV eam,#imm8 MOV eam,Ri MOV io, A MOV dir, A MOV addr16, A MOV eam, A MOVW io, #imm16 MOVW dir, #imm16 MOVW eam, #imm16 MOVW eam, RWi MOVW io, A MOVW dir, A MOVW addr16, A MOVW eam, A SETB io:bp SETB dir:bp SETB addr16:bp CLRB io:bp CLRB dir bp CLRB addr16:bp MOV @RLi+disp8, A MOVW @RLi+disp8, A ● STP, SLP, TMD ビットの優先順位 ストップモード要求とスリープモード要求およびタイムベースタイマモード要求を同 時に行った場合は , 次の優先順位で要求を処理します。 ストップモード要求 > タイムベースタイマモード要求 > スリープモード要求 93 第 5 章 低消費電力モード 5.4 CPU 間欠動作モード CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作 させることで , 消費電力を低減するモードです。 ■ CPU 間欠動作モード CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM), I/O, 周辺機能および外部 バスアクセスを行う場合,CPUに供給するクロックを一命令実行ごとに一定期間停止さ せ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロックを 供給したまま ,CPU の実行速度を下げると , 低消費電力で処理できます。 低消費電力モード制御レジスタ(LPMCR の CG1, CG0) で ,CPU に供給するクロックの 一時停止サイクル数を選択します。 外部バス動作そのものは , 周辺機能と同じクロックを使用します。 CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ , 内蔵周辺機能および外部バスアクセスを行う場合の命令実行回数に,一時停止サイクル 数をかけた補正値を通常の実行時間に加えることで , 求めることができます。図 5.4-1 に CPU 間欠動作モード時の動作クロックを示します。 図 5.4-1 CPU 間欠動作時のクロック 周辺クロック CPUクロック 一時停止サイクル 1命令実行 サイクル 内部バス起動 94 第 5 章 低消費電力モード スタンバイモード 5.5 スタンバイモードには , スリープ(PLL スリープ , メインスリープ , サブスリープ), 時計 , ストップの各モードがあります。 ■ スタンバイモードの動作状態 表 5.5-1 に , スタンバイモードの動作状態を示します。 表 5.5-1 スタンバイモードの動作状態 スタンバイモード 移行条件 PLL スリープモード SCS=1 MCS=0 SLP=1 メインスリープ モード SCS=1 MCS=0 SLP=1 サブスリープ モード SCS=0 SLP=1 タイムベースタ イマモード (SPL=0) SCS=1 TMD=0 メイン クロック サブ クロック マシン クロック CPU 周辺 端子 解除方法 動作 動作 外部リセット または 割込み 動作 スリープ モード タイム ベース タイマ モード 時計 モード 動作 停止 動作 保持 動作 タイムベースタ イマモード (SPL=1) SCS=1 TMD=0 時計モード (SPL=0) SCS=0 TMD=0 時計モード (SPL=1) SCS=0 TMD=0 ストップモード (SPL=0) STP=1 停止 停止 *1 Hi-Z 保持 停止 停止 *2 Hi-Z 外部リセット または 割込み *4 外部リセット または *5 割込み 停止 ストップ モード 保持 停止 ストップモード (SPL=1) 停止 STP=1 Hi-Z*3 外部リセット または 割込み *6 *1 : タイムベースタイマ , 時計タイマは動作します。 *2 : 時計タイマは動作します。 *3 : DTP / 外部割込みの入力端子は動作します。 *4 : 時計タイマ , タイムベースタイマおよび外部割込み *5 : 時計タイマおよび外部割込み *6 : 外部割込み SPL : 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット SLP : 低消費電力モード制御レジスタ (LPMCR) のスリープビット STP : 低消費電力モード制御レジスタ (LPMCR) の時計ストップビット TMD : 低消費電力モード制御レジスタ (LPMCR) の時計・タイムベースタイマモードビット MCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット SCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット(サブ) Hi-Z : ハイインピーダンス 95 第 5 章 低消費電力モード 5.5.1 スリープモード スリープモードは ,CPU の動作クロックを停止させるモードで ,CPU 以外は動作を続 行します。低消費電力モード制御レジスタ (LPMCR) でスリープモードへの移行を指 示すると ,PLL クロックモードを設定している場合は PLL スリープモードへ移行し , メインクロックモードを設定している場合はメインスリープモードへ , サブクロック モードを設定している場合はサブスリープモードへ移行します。 ■ スリープモードへの移行 低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1",TMD ビットに "1",STP ビットに "0" を書き込むと , スリープモードに移行します。スリープモードに移行する 場合 , クロック選択レジスタ (CKSCR) が MCS=0, SCS=1 であれば PLL スリープモード に ,MCS=1, SCS=1 であればメインスリープモードに ,SCS=0 であればサブスリープモー ドに移行します。 < 注意事項 > SLP ビットと STP ビットに同時に "1" を書き込むと ,STP ビットを優先し , ストッ プモードへ移行します。SLP ビットに "1",TMD ビットに "0" を同時に書き込むと , TMD ビットを優先し , タイムベースタイマモード , または時計モードに移行しま す。 ● データ保持機能 スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ● ホールド機能 スリープモード中は , 外部バスホールド機能は動作し , ホールド要求があるとホールド 状態になります。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を書き込んだ場合に , 割 込み要求が発生している場合はスリープモードに移行しません。そのため ,CPU は割込 みを受け付けない状態では次の命令を実行し,受け付ける状態であれば即座に割込み処 理ルーチンへ分岐します。 ● 端子状態 スリープモード中は , 直前の状態を保持します。 ■ スリープモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生によってスリープモードを 解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 96 第 5 章 低消費電力モード < 注意事項 > サブスリープモードから外部リセット端子(RST 端子)にてメインクロックモード へ復帰する場合は , 振動子の発振時間 *+100µs+16 マシンサイクル 以上 "L" レベルを入力してください。 *: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶発振子は数 ms ∼ 数十 ms, セラミック発振子は数百 µs ∼数 ms, 外部クロックは 0ms となりま す。 ● 割込みによる復帰 スリープモード中に , 周辺回路などから割込みレベルが 7 より高い割込み要求が発生す るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同 じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ ベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設定によって , 割込みが 受け付けられる場合は ,CPU は割込み処理を実行します。割込みが受け付けられない場 合は , スリープモードを指定した命令の次の命令から処理を続行します。 図 5.5-1 に , 割込み発生によるスリープモードの解除を示します。 図 5.5-1 割込み発生によるスリープモードの解除 周辺機能の割込み イネーブルフラグ設定 INT発生(IL<7) NO スリープ解除しない スリープ解除しない YES I=0 YES 次の命令実行 スリープ解除する NO ILM<IL YES 次の命令実行 NO 割込み実行 < 注意事項 > 割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実 行した後に , 割込み処理に移行します。ただし , スリープモードへの移行と外部バ スホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理 に移行することがあります。 97 第 5 章 低消費電力モード 図 5.5-2 に , スリープモードからの復帰動作を示します。 図 5.5-2 スリープモードの解除(外部リセット) RST端子 スリープモード メインクロック 発振中 PLLクロック 発振中 CPUクロック CPU動作 PLLクロック 停止中 スリープモード解除 98 リセットシーケンス リセット解除 処理 第 5 章 低消費電力モード 5.5.2 タイムベースタイマモード タイムベースタイマモードは , 原発振とタイムベースタイマ , 時計タイマ以外の動作 を停止させるモードで , タイムベースタイマと時計タイマ以外すべての機能が停止し ます。 ■ タイムベースタイマモードへの移行 PLL クロックモード , またはメインクロックモードの場合 (CKSCR:SCS=1) に , 低消費 電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベース タイマモードに移行します。 ● データ保持機能 タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内 容を保持します。 ● ホールド機能 タイムベースタイマモード中は , 外部バスホールド機能は停止し , ホールド要求が入力 されてもその要求は受け付けません。タイムベースタイマモードへの移行中にホール ド要求が入力された場合 , バスをハイインピーダンスにした状態で ,HAK 信号が "L" に ならないことがあります。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割 込み要求が発生しているときはタイムベースタイマモードに移行しません。 ● 端子状態 タイムベースタイマモード中の外部端子を , 直前の状態に保持するか , ハイインピーダ ンス状態にするかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で きます。 99 第 5 章 低消費電力モード ■ タイムベースタイマモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生でタイムベースタイマモー ドを解除します。 ● リセットによる復帰 リセットによりメインクロックモードに初期化されます。 ● 割込みによる復帰 タイムベースタイマモード中に時計タイマ,タイムベースタイマおよび外部割込みから 割込みレベルが 7 より高い割込み要求が発生すると(割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外), 低消費電力制御回路はタイムベースタイマモードを解除します。 タイムベースタイマモードの解除後は , 通常の割込み処理と同じ扱いとなります。コン ディションコードレジスタ(CCR)のIフラグ,インタラプトレベルマスクレジスタ(ILM) および割込み制御レジスタ (ICR) の設定により割込みが受け付けられる場合は , 割込み 処理を実行します。割込みが受け付けられない場合は , タイムベースタイマモードに入 る前の次の命令から処理を続行します。 < 注意事項 > 割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次 の命令を実行した後に , 割込み処理に移行します。ただし , タイムベースタイマ モードへの移行と外部バスホールド要求の受付けが同時であった場合 , 次の命令を 実行する前に割込み処理に移行することがあります。 図 5.5-3 に , タイムベースタイマモードからの復帰動作を示します。 図 5.5-3 タイムベースタイマモードの解除(外部リセット) RST端子 タイムベース タイマモード メインクロック 発振中 PLLクロック 発振安定待ち CPUクロック メインクロック CPU動作 停止中 リセットシーケンス リセット解除 時計モード解除 100 発振中 PLLクロック 処理 第 5 章 低消費電力モード 5.5.3 時計モード 時計モードは , サブクロックと時計タイマ以外の動作を停止させるモードで , チップ のほぼ全機能が停止します。 ■ 時計モードへの移行 サブクロックモード時 (CKSCR:SCS=0) に , 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むことにより , 時計モードに移行します。 ● データ保持機能 時計モードでは,アキュムレータなどの専用レジスタと内部RAMの内容を保持します。 ● ホールド機能 時計モード中は , 外部バスホールド機能は停止し , ホールド要求が入力されてもその要 求は受け付けません。時計モードへの移行中にホールド要求が入力された場合 , バスを ハイインピーダンスにした状態で ,HAK 信号が "L" にならないことがあります。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を設定した場合に , 割 込み要求が発生している場合は時計モードに移行しません。 ● 端子状態 時計モード中の外部端子を , 直前の状態に保持するか , ハイインピーダンス状態にする かを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。 101 第 5 章 低消費電力モード ■ 時計モードの解除 低消費電力制御回路は,リセット入力,または割込みの発生で時計モードを解除します。 ● リセットによる復帰 リセット要因による時計モードの解除の場合は , 時計モードを解除した上で , 発振安定 待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後実行さ れます。 < 注意事項 > 時計モードから外部リセット端子(RST 端子)にてメインクロックモードへ復帰す る場合は , 振動子の発振時間 *+100µs+16 マシンサイクル 以上 "L" レベルを入力してください。 *: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶発振子は数 ms ∼ 数十 ms, セラミック発振子は数百 µs ∼数 ms, 外部クロックは 0ms となりま す。 ● 割込みによる復帰 時計モード中に時計タイマおよび外部割込みから割込みレベルが 7 より高い割込み要 求が発生すると(割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外), 低消費電力制 御回路は時計モードを解除し , 即座にサブクロックモードに移行します。サブクロック モードに移行後は , 通常の割込み処理と同じ扱いとなります。コンディションコードレ ジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御 レジスタ (ICR) を設定して割込みが受け付けられる場合は , 割込み処理を実行します。 割込みが受け付けられない場合は,時計モードに入る前の次の命令から処理を続行しま す。 < 注意事項 > 102 割込み処理を実行する場合 , 通常は時計モードを指定した命令の次の命令を実行し た後に , 割込み処理に移行します。ただし , 時計モードへの移行と外部バスホール ド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行す ることがあります。 第 5 章 低消費電力モード 図 5.5-4 に , 時計モードからの復帰動作を示します。 図 5.5-4 時計モードの解除(外部リセット) RST端子 時計モード メインクロック 発振安定待ち PLLクロック 停止中 サブクロック 発振中 CPUクロック CPU動作 発振中 メインクロック 停止中 リセットシーケンス 処理 リセット解除 時計モード解除 103 第 5 章 低消費電力モード 5.5.4 ストップモード ストップモードは , 原発振を停止させるモードで , すべての機能が停止します。した がって , 最も低消費電力でデータを保持することができます。 ■ ストップモードへの移行 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むと , ストップ モードに移行します。 ● データ保持機能 ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し ます。 ● ホールド機能 ストップモード中は , 外部バスホールド機能は停止し , ホールド要求が入力されてもそ の要求は受け付けません。ストップモードへの移行中にホールド要求が入力された場 合 , バスをハイインピーダンスにした状態で ,HAK 信号が "L" にならないことがありま す。 ● 割込み要求発生中の動作 低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込 み要求が発生しているときはストップモードに移行しません。 ● 端子状態の設定 ストップモード中の外部端子を , 直前の状態に保持するか , ハイインピーダンス状態に するかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。 < 注意事項 > 低消費電力モード制御レジスタ (LPMCR) の STP ビットと SLP ビットを同時に "1" をセットした場合は ,STP ビットが優先され , ストップモードに移行します。 ■ ストップモードの解除 低消費電力制御回路は , リセット入力 , または割込みの発生によりストップモードを解 除します。ストップモードから復帰する場合は , 発振クロック (HCLK) およびサブク ロック (SCLK) が停止しているため , メインクロック発振安定待ち時間またはサブク ロック発振安定待ち時間を経て , ストップモードが解除されます。 ● リセットによる復帰 リセット要因によるストップモード解除の場合は , ストップモードを解除した上で , 発 振安定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後 実行されます。 104 第 5 章 低消費電力モード < 注意事項 > ストップモードから外部リセット端子(RST 端子)にてメインクロックモードへ復 帰する場合は , 振動子の発振時間 *+100µs+16 マシンサイクル 以上 "L" レベルを入力してください。 *: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶発振子は数 ms ∼ 数十 ms, セラミック発振子は数百 µs ∼数 ms, 外部クロックは 0ms となりま す。 ● 割込みによる復帰 ストップモード中に外部割込みから割込みレベルが 7 より高い割込み要求が発生する と(割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外), 低消費電力制御回路はス トップモードを解除します。ストップモードの解除後は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで指定されたメインクロックの発振安定待ち時間を経過 したあとで , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジス タ (ICR) を設定して割込みが受け付けられる場合は割込み処理を実行します。割込み が受け付けられない場合は , ストップモードに入る前の次の命令から処理を続行しま す。 < 注意事項 > • 割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を 実行した後に , 割込み処理に移行します。ただし , ストップモードへの移行と外 部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込 み処理に移行することがあります。 • PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止している ため ,PLL ストップモードから復帰する場合は , メインクロック発振安定待ち時 間および PLL クロック発振安定待ち時間を確保する必要があります。この場合 の発振安定待ち時間は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定された値に従い , メインクロック発振安定待ち時間お よび PLL クロック発振安定待ち時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットは , 発振安定待ち時間の長い方に合わせて値を設定してください。た だし ,PLL クロック発振安定待ち時間は 214/HCLK 以上必要になりますので , CKSCR:WS1, WS0 ビットには ,"10B" または "11B" を設定してください。 105 第 5 章 低消費電力モード 図 5.5-5 に , ストップモードからの復帰動作を示します。 図 5.5-5 ストップモードの解除(外部リセット) RST端子 ストップモード メインクロック PLLクロック 発振安定待ち 停止中 メインクロック CPUクロック CPU動作 停止中 リセット解除 ストップモード解除 106 発振中 リセットシーケンス 処理 第 5 章 低消費電力モード 5.6 状態遷移図 図 5.6-1 に ,MB90440G シリーズの動作状態の遷移図と , 遷移条件を示します。 ■ 状態遷移図 図 5.6-1 状態遷移図 外部リセット,ウォッチドッグタイマリセット,ソフトウェアリセット 電源投入 リセット パワーオンリセット SCS=1 発振安定待ち終了 SCS=0 MCS=0 SCS=0 メインクロックモード MCS=1 SLP=1 割込み メインスリープモード TMD=0 割込み メインタイムベースタイマモード SCS=1 SLP=1 割込 PLL スリープモード TMD=0 メインストップモード 割込み 発振安定待ち終了 メインクロック発振安定待ち 割込み SLP=1 割込み サブスリープモード 割込み TMD=0 時計モード PLLタイムベースタイマモード STP=1 STP=1 STP=1 < 注意事項 > サブクロックモード PLL クロックモード PLL ストップモード 割込み 発振安定待ち終了 PLLクロック発振安定待ち サブストップモード 割込み 発振安定待ち終了 サブクロック発振安定待ち クロックモードを切り換えた場合 , 切換えが完了するまでは , ほかのクロックモー ドおよび低消費電力モードへの切換えを行わないようにしてください。切換えの完 了は , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照し て確認してください。 107 第 5 章 低消費電力モード ■ 低消費電力モードの動作状態 表 5.6-1 に , 低消費電力モードの動作状態を示します。 表 5.6-1 低消費電力モードの動作状態 動作状態 メイン クロック サブ クロック PLL クロック PLL CPU 周辺 時計 タイム ベース タイマ 動作 動作 クロック ソース 動作 動作 PLL スリープ 動作 動作 動作 PLL タイムベース タイマ *1 PLL クロック 停止 PLL ストップ 停止 停止 停止 PLL 発振安定待ち 動作 動作 動作 メイン 停止 停止 停止 動作 動作 動作 動作 動作 動作 メインスリープ 動作 動作 メインタイムベース タイマ *2 メイン クロック 停止 停止 メインストップ 停止 停止 メイン発振安定待ち 動作 動作 停止 サブ 停止 停止 動作 動作 動作 動作 動作 サブスリープ 時計 停止 動作 停止 停止 サブ クロック 動作 メイン クロック 停止 サブストップ 停止 サブ発振安定待ち 動作 パワーオンリセット *1: PLL クロックモード時 *2: メインクロックモード時 108 停止 動作 停止 動作 リセット 停止 動作 停止 動作 停止 動作 第 5 章 低消費電力モード 5.7 スタンバイモード , ホールド , リセット時の端子状態 スタンバイモード , ホールド , リセット時の端子の状態を , 各メモリアクセスモード ごとに示します。 ■ シングルチップモード時の端子状態 表 5.7-1 に , シングルチップモード時の各端子状態について示します。 表 5.7-1 シングルチップモード時の各端子状態 スタンバイモード時 ストップ時 *6 端子名 リセット時 スリープ時 P00 ∼ P07 , P10 ∼ P17 , P20 ∼ P27 , P30 ∼ P37 , P40 ∼ P47, P50, P55 ∼ P57, P60 ∼ P67, P70 ∼ P77, P80 ∼ P87, P92 ∼ P94, P96, P97 P51 ∼ P54, P90, P91, P95, PA0 SPL=0 SPL=1 入力遮断 *3/ 直前 の状態を保持 *2 入力遮断 *3/ 出力 Hi-Z*5 直前の状態を保持 *2 入力不可 *4/ 出力 Hi-Z*5 入力可 *1 *1: " 入力可 " とは , 入力機能が可能な状態であることを意味するので , プルアップ , プルダウンオプ ションを選択するか , または外部からの入力が必要です。出力ポートとして使用している場合に はほかのポートと同じです。 *2: " 直前の状態を保持 " とは , このモードになる直前に出力していた状態をそのまま保持すること を意味します。ただし , 入力状態であった場合は入力不可となるので注意してください。" 出力 していた状態をそのまま保持 " とは , 出力のある内蔵周辺が動作中であればその値を , ポートな どとして出力している場合にはその値をそれぞれ保持することを意味します。 *3: 入力遮断状態では , 入力はマスクされ ,CMOS 選択時は "L" レベルが ,TTL 選択時は "H" レベルが 内部に伝わります。 *4: " 入力不可 " とは , 端子からすぐの入力ゲート動作は許可状態にあるが , 内部回路が動作していな いので , 端子への入力値が内部で受け付けられない状態を意味します。 *5: " 出力 Hi-Z" とは端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンスにす ることを意味します。 *6: ストップ時およびハードウェアスタンバイ時は , ポート端子のプルアップオプションは切り離さ れます。 < 注意事項 > ストップ時は , 外部から入力する信号は 8 本以内とし , それぞれの周波数は ,1kHz 以下にしなければなりません。 109 第 5 章 低消費電力モード ■ 外部バス 16 ビットデータバスモード時の端子状態 表 5.7-2 に , 外部バス 16 ビットデータバスモード時の各端子状態について示します。 表 5.7-2 外部バス 16 ビットデータバスモード時の各端子状態 スタンバイモード時 端子名 ストップ時 ホールド時 リセット時 スリープ時 SPL=0 SPL=1 P00 ∼ P07 (AD00 ∼ AD07), P10 ∼ P17 (AD08 ∼ AD15) 入力不可 / 出力 Hi-Z 入力遮断 / 出力 Hi-Z P20 ∼ P27 (A16 ∼ A23) 出力状態 *1 出力状態 *1 P37(CLK) 入力不可 / 出力可能 *2 入力不可 / 出力状態 *1 P36(RDY) P35(HAK) 直前の状態 を保持 入力遮断 / 直前の状態 を保持 P34(HRQ) 入力不可 / 出力 Hi-Z 入力不可 / 出力 Hi-Z 出力状態 *1 入力不可 / 出力可能 *2 入力不可 / 出力 Hi-Z "L" 出力 入力遮断 / 出力 Hi-Z 入力不可 / 出力 Hi-Z "1" 入力 P33(WRH) P32(WRL) "H" 出力 "H" 出力 入力不可 / 出力 Hi-Z P31(RD) P30(ALE) P40 ∼ P47, P50, P55 ∼ P57, P60 ∼ P67, P70 ∼ P77, P80 ∼ P87, P92 ∼ P94, P96, P97 P51 ∼ P54, P90, P91, P95, PA0 "L" 出力 直前の状態 を保持 "L" 出力 "H" 出力 "L" 出力 入力遮断 / 直前の状態 を保持 直前の状態 を保持 入力不可 / 出力 Hi-Z 入力可 *1: " 出力状態 " とは端子駆動用トランジスタを駆動許可状態にしてありますが , 内部回路の動作が 停止状態であるため ,"H" ないし "L" の固定値を出すことを意味します。内部周辺回路が動作中 で , 出力機能を使用している場合には , 出力変化があります。 *2: " 出力可能 " とは端子駆動用トランジスタを駆動許可状態にしてあり , 内部回路の動作が許可状 態のため , 動作内容が端子に現れることを意味します。 110 第 5 章 低消費電力モード ■ 外部バス 8 ビットデータバスモード時の端子状態 表 5.7-3 に , 外部バス 8 ビットデータバスモード時の各端子状態について示します。 表 5.7-3 外部バス 8 ビットデータバスモード時の各端子状態 スタンバイモード時 端子名 ストップ時 ホールド時 リセット時 スリープ時 SPL=0 SPL=1 P00 ∼ P07 (AD00 ∼ AD07), P10 ∼ P17 (AD08 ∼ AD15) 入力不可 / 出力 Hi-Z 入力遮断 / 出力 Hi-Z P20 ∼ P27 (A16 ∼ A23) 出力状態 出力状態 P37(CLK) 入力不可 / 出力可能 入力不可 / 出力状態 入力不可 / 出力 Hi-Z 出力状態 入力不可 / 出力可能 入力不可 / 出力 Hi-Z P36(RDY) P35(HAK) P34(HRQ) 入力不可 / 出力 Hi-Z 直前の状態 を保持 入力遮断 / 直前の状態 を保持 "L" 出力 入力遮断 / 出力 Hi-Z 入力不可 / 出力 Hi-Z "1" 入力 直前の状態 を保持 P33(WRH) P32(WRL) P31(RD) P30(ALE) P40 ∼ P47, P50, P55 ∼ P57, P60 ∼ P67, P70 ∼ P77, P80 ∼ P87, P92 ∼ P94, P96, P97 P51 ∼ P54, P90, P91, P95, PA0 "H" 出力 "L" 出力 直前の状態 を保持 "H" 出力 入力不可 / 出力 Hi-Z "L" 出力 "H" 出力 "L" 出力 入力遮断 / 直前の状態 を保持 直前の状態 を保持 入力不可 / 出力 Hi-Z 入力可 111 第 5 章 低消費電力モード 5.8 低消費電力モード使用上の注意 低消費電力モードを使用する場合には , 以下の内容に関して注意が必要です。 • スタンバイモードへの移行と割込み • スタンバイモードの割込みによる解除 • ストップモードを解除するとき • 発振安定待ち時間 • クロックモードの切換え • スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ スする際の注意事項 ■ スタンバイモードへの移行と割込み 周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ スタ (LPMCR:STP=1, SLP=1) または ,(LPMCR:TMD=0) としても無視されるため , 各ス タンバイモードへは移行しません(割込み処理後にも , スタンバイモードへの移行はし ません) 。この場合 , 割込みレベルが 7 より高ければ , 割込み要求が CPU に受け付けら れるかどうかには関係しません。 また ,CPU が割込み処理中であっても , その割込み要求フラグビットがクリアされてお り , ほかに割込み要求がなければ , スタンバイモードへ移行することができます。 ■ スタンバイモードの割込みによる解除 スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ ベルが 7 より高い割込み要求が発生すると , スタンバイモードは解除されます。これは CPU が割込みを受け付けるかどうかには関係しません。 スタンバイモード解除後は , 通常の割込み動作として , 割込み要求に対応する割込みレ ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ (ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1) されている場合は , 割込み処理ルーチンへ分岐します。 割込みが受け付けられない場合は,スタンバイモードを指定した命令の次の命令から動 作を再開します。 割込み処理を実行する場合,通常はスタンバイモードを指定した命令の次の命令を実行 した後に , 割込み処理に移行します。 ただし , スタンバイモードに移行した場合の条件によっては , 次の命令を実行する前に 割込み処理に移行することがあります。 < 注意事項 > 復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前 に割込み禁止をするなどの対策が必要です。 ■ ストップモード解除時 ストップモードに入る前に , 外部割込みの割込み入力要因の設定に従った入力により , 解除することができます。入力要因として "H" レベル ,"L" レベル , 立上りエッジ , 立下 りエッジが選択できます。 112 第 5 章 低消費電力モード ■ 発振安定待ち時間 ● 発振クロック発振安定待ち時間 ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間をとる 必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで選択された時間をとります。WS1, WS0 ビットに "00B" を設定するのは , メインクロックモードの場合のみにしてください。 ● PLL クロック発振安定待ち時間 メインクロックモード中は ,PLL 逓倍回路が停止しているため ,PLL クロックモードに 移行する場合は ,PLL クロック発振安定待ち時間を確保する必要があります。PLL ク ロック発振安定待ち時間中はメインクロックで動作します。 メインクロックモードから PLL クロックモードに切り換えた場合の PLL クロック発振 安定待ち時間は ,214/HCLK(HCLK: 発振クロック)に固定されています。 サブクロックモード中は,メインクロックおよびPLL逓倍回路が停止しているため,PLL クロックモードに移行する場合は,メインクロック発振安定待ち時間およびPLLクロッ ク発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間は , ク ロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定された 値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち時間を 同時にカウントしますので ,CKSCR:WS1, WS0 ビットは , 発振安定待ち時間の長い方に 合わせて値を設定してください。ただし ,PLL クロック発振安定待ち時間は 214/HCLK 以上必要になりますので ,CKSCR:WS1, WS0 ビットには ,"10B" または "11B" を設定して ください。 PLLストップモード中は,メインクロックおよびPLL逓倍回路が停止しているため,PLL ストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL ク ロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1,WS0) に設定され た値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち時間 を同時にカウントしますので ,CKSCR:WS1, WS0 ビットは , 発振安定待ち時間の長い方 に合わせて値を設定してください。ただし ,PLL クロック発振安定待ち時間は 214/HCLK 以上必要になりますので ,CKSCR:WS1, WS0 ビットには ,"10B" または "11B" を設定して ください。 ■ クロックモードの切換え クロックモードを切り換えた場合 , 切換えが完了するまでは , 低消費電力モードへの切 換えおよびほかのクロックモードへの切換えを行わないようにしてください。切換え の完了は , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照し て確認してください。 113 第 5 章 低消費電力モード ■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ スする際の注意事項 ● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) へアクセスする場合 • 低消費電力モード制御レジスタ(LPMCR)においてスタンバイモードに移行する設定 を行う場合は,表 5.3-2 の命令を使用してください。 • 表 5.3-2 の命令によるスタンバイモード遷移命令の直後には必ず下記 を配置してください。 内の命令列 ; 表 5.3-2 の低消費電力モード遷移命令 MOV LPMCR,#H’xx NOP NOP JMP $+3 ; 次の命令へのジャンプ MOV A,#H’10 ; 任意の命令 内の命令以外が配置されるとスタンバイモード解除後の動作は保証されません。 ● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を 行う場合は,以下の (1) から (3) のいずれかの方法でアクセスしてください。 (1) スタンバイモードに遷移させる命令を関数化し,スタンバイモード遷移命令の後 に _wait_nop() のビルトイン関数を 2 個挿入してください。関数内で,スタンバ イ復帰の割込み以外の割込みが発生する可能性がある場合は,コンパイル時に最 適化を実施し , LINK/UNLINK 命令の発生を抑止してください。 例(時計モードまたはタイムベースタイマモード遷移関数の場合) void enter_watch(){ /*LPMCR の TMD ビットに "0" をセット */ IO_LPMCR.byte=0x10: _wait_nop(); k _wait_nop(); } (2) スタンバイモードに遷移させる命令を _asm 文で記述し,スタンバイモード遷移 命令の後に 2 個の NOP と JMP 命令を挿入してください。 例(スリープモード遷移の場合) _asm(”MOVI:_IO_LPMCR,#H'58”); /*LPMCR の SLP ビットに "1" をセット */ _asm(”NOP”); _asm(”NOP”); _asm(”JMP $+3”); /* 次の命令へのジャンプ */ (3) スタンバイモードに遷移させる命令を #pragma asm ∼ #pragma endasm 間に記述 し, スタンバイモード遷移命令の後に2個のNOPとJMP命令を挿入してください。 例(ストップモード遷移の場合) #pragma asm MOV I:_IO_LPMCR,#H'98 /*LPMCR の STP ビットに "1" をセット */ NOP NOP JMP $+3 #pragma endasm 114 /* 次の命令へのジャンプ */ 第6章 リセット リセットについて説明します。 6.1 リセットの概要 6.2 リセット要因と発振安定待ち時間 6.3 外部リセット端子 6.4 リセット動作 6.5 リセット要因ビット 6.6 リセットによる各端子の状態 115 第 6 章 リセット 6.1 リセットの概要 リセット要因が発生すると ,CPU はただちに現在実行中の処理を中断し , リセット解 除待ち状態になります。リセット解除後は , リセットベクタで示されたアドレスから 処理を開始します。 リセットには , 次の 4 つの要因があります。 • 電源投入(パワーオン) • RST 端子からの外部リセット要求 • ソフトウェアリセット要求 • ウォッチドッグタイマのオーバフロー ■ リセット要因 リセットの要因について 表 6.1-1 に示します。 表 6.1-1 リセット要因 マシンクロック ウォッチ ドッグタイマ 発振安定待ち 電源投入時 メインクロック (MCLK) 停止 あり RST 端子への "L" レベル入力 メインクロック (MCLK) 停止 なし ソフトウェア 低消費電力モード制御レジス タ (LPMCR) の内部リセット信 号発生ビット (RST) に "0" を書 き込む メインクロック (MCLK) 停止 なし ウォッチ ドッグタイマ ウォッチドッグタイマオーバ フロー メインクロック (MCLK) 停止 なし リセット パワーオン 外部端子 発生要因 MCLK: メインクロック(発振クロックの 2 分周クロック) ● パワーオンリセット パワーオンリセットは , 電源投入時に発生するリセットです。発振安定待ち時間は 218 発振クロックサイクル (218/HCLK) 固定です。発振安定待ち時間が経過した後 , リセッ ト動作を行います。 ● 外部リセット 外部リセットは , 外部リセット端子(RST 端子)に "L" レベルを入力することでリセッ トを発生します。RST 端子への "L" レベル入力時間は ,16 マシンサイクル以上必要で す。外部リセットでは , 発振安定待ち時間を取りません。 116 第 6 章 リセット < 注意事項 > • RST 端子によるリセット要求の発生の場合に限り , 書込み動作中(転送系命令実 行中 MOV など)にリセット要因が発生した場合 , 命令の終了後にリセット解除 待ち状態になります。そのため , 書込み中にリセットが入力されても , 正常に書 込みを終了します。ただし , ストリング系命令(MOVS など)は , 指定したカウ ンタ分の転送が完了する前にリセットを受け付けるので , すべてのデータが転送 されることは保証されません。 • ストップモード , サブクロックモード , サブスリープモードおよび時計モードか ら外部リセット端子(RST 端子)にてメインクロックモードへ復帰する場合は , 振動子の発振時間 *+100µs+16 マシンサイクル 以上 "L" レベルを入力してください。 *: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶発振子は数 ms ∼ 数十 ms, セラミック発振子は数百 µs ∼数 ms, 外部クロックは 0ms となり ます。 ● ソフトウェアリセット ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信 号発生ビット (RST) に "0" を書き込むことによって , 内部リセットを発生します。ソフ トウェアリセットでは , 発振安定待ち時間を取りません。 ● ウォッチドッグリセット ウォッチドッグリセットは , ウォッチドッグタイマの起動後 , 定められた時間内に ウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に "0" の書込みがない場合,ウォッチドッグタイマのオーバフローによってリセットを発生し ます。ウォッチドッグリセットでは , 発振安定待ち時間を取りません。 クロックの定義 HCLK: 発振クロック周波数 MCLK: メインクロック周波数 SCLK: サブクロック周波数 φ : マシンクロック (CPU 動作クロック ) 周波数 1/ φ : マシンサイクル (CPU 動作クロック周期 ) 詳細は , 「4.1 クロックの概要」を 参照してください。 < 注意事項 > ストップモード , またはサブクロックモードでリセットが発生した場合は ,217/HCLK ( 約 32.77ms, HCLK=4MHz 発振使用時 ) の発振安定待ち時間をとります。 詳細は ,「4.4 クロックモード」を参照してください。 117 第 6 章 リセット 6.2 リセット要因と発振安定待ち時間 MB90440G シリーズには ,6 種類のリセット要因があり , リセット時の発振安定待ち 時間がリセット要因によってそれぞれ異なります。 ■ リセット要因と発振安定待ち時間 表 6.2-1 にリセット要因と発振安定待ち時間について示します。 表 6.2-1 リセット要因と発振安定待ち時間 リセット 発振安定待ち時間 ( ) 内は発振クロック周波数 4MHz 時 リセット要因 パワーオン 電源立上げ 218/HCLK(約 65.54ms) ウォッチドッグ ウォッチドッグタイマのオーバフロー なし :WS1, WS0 ビットは "11" に初期化されます。 外部 RST 端子からの "L" 入力 なし : ただし WS1, WS0 ビットは "11" に初期化さ れます。 ソフトウェア 低消費電力モード制御レジスタ (LPMCR) の RST ビットへの "0" 書込み なし : ただし WS1, WS0 ビットは "11" に初期化さ れます。 HCLK: 発振クロック周波数 WS1, WS0: クロック選択レジスタ (CKSCR) の発振安定待ち時間選択ビット 図 6.2-1 に , パワーオンリセット時の発振安定待ち時間について示します。 図 6.2-1 パワーオンリセット時の発振安定待ち時間 Vcc 217/HCLK 217/HCLK CLK CPU 動作 降圧回路の 安定待ち時間 < 注意事項 > 発振安定 待ち時間 セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するま で , 一般に数 ms から十数 ms の発振安定待ち時間が必要です。そのため , 使用する 振動子に合わせた値を設定してください。詳細は , 「4.5 発振安定待ち時間」を参 照してください。 ■ 発振安定待ちリセット状態 電源投入時のリセット,ストップモードおよびサブクロックモード中のリセットに対す るリセット動作は,タイムベースタイマによって作られる発振安定待ち時間が経過して からとなります。このとき , 外部リセット入力が解除されていない場合は , 外部リセッ ト解除後にリセット動作を行います。 118 第 6 章 リセット 6.3 外部リセット端子 外部リセット端子(RST 端子)は , リセット入力専用端子で ,"L" レベルの入力に よって内部リセットを発生します。MB90440G シリーズは ,CPU 動作クロックに同 期してリセットがかかりますが , 外部端子のみ非同期でリセットがかかります。 ■ 外部リセット端子のブロックダイヤグラム 図 6.3-1 外部リセット端子のブロックダイヤグラム CPU動作クロック (PLL逓倍回路,HCLKの2分周) RST P-ch 同期化回路 端子 CPU 周辺機能 N-ch 入力バッファ 外部端子 HCLK:発振クロック < 注意事項 > 書込み動作中のリセットによるメモリ破壊を防ぐため ,RST 端子入力の受付けをメ モリが破壊されないサイクルで行います。また , 内部回路の初期化には , クロック が必要です。特に外部クロックで動作させる場合は , リセット入力時にクロックを 入力する必要があります。 119 第 6 章 リセット 6.4 リセット動作 リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読出 し先を選択し , モードフェッチを行います。このモードフェッチで ,CPU の動作モー ドとリセット動作終了後の実行開始アドレスが決定されます。電源投入時 , サブク ロックモードおよびストップモードからのリセットによる復帰では , 発振安定待ち時 間が経過してからモードフェッチを行います。 ■ リセット動作の概要 図 6.4-1 に , リセット動作フローを示します。 図 6.4-1 リセット動作フロー パワーオンリセット ストップモード サブクロックモード 外部リセット ソフトウェアリセット ウォッチドッグタイマリセット リセット中 発振安定待ちリセット状態 モードフェッチ (リセット動作) モードデータ取込み 外部バスモード関連の 端子状態および機能変更 リセットベクタ取込み 通常動作 (RUN状態) リセットベクタが示す アドレスから命令コードを 取込み命令を実行 ■ モード端子 モード端子 (MD0 ∼ MD2) は , リセットベクタとモードデータの取込み方法を指定しま す。リセットベクタとモードデータの取込みは , リセットシーケンスで行います。モー ド端子の詳細は , 「7.1.1 モード端子」を参照してください。 ■ モードフェッチ リセットが解除されると ,CPU は , リセットベクタとモードデータを CPU コア内の該当レ ジスタ内にハードウェア転送します。リセットベクタとモードデータは , FFFFDCH ∼ FFFFDFH の 4 バイトに割り当てられています。CPU は , リセット解除でただちにこれ らのアドレスをバスに出力し , リセットベクタとモードデータを取り込みます。この モードフェッチで , CPU はリセットベクタが指すアドレスから処理を開始します。 図 6.4-2 に , リセットベクタとモードデータの転送を示します。 120 第 6 章 リセット 図 6.4-2 リセットベクタとモードデータの転送 2 メモリ空間 F MC-16LX CPUコア モードレジスタ FFFFDFH モードデータ FFFFDEH リセットベクタビット23~16 FFFFDDH リセットベクタビット15~8 FFFFDCH リセットベクタビット7~0 マイクロ ROM リセットシーケンス PCB PC ● モードデータ(アドレス :FFFFDFH) モードレジスタの内容を変更できるのはリセット動作だけで,モードレジスタの設定は リセット動作以降に有効となります。モードデータの詳細は , 「7.1.2 モードデータ」 を参照してください。 ● リセットベクタ(アドレス :FFFFDCH ∼ FFFFDEH) リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容のアドレス から実行を開始します。 121 第 6 章 リセット 6.5 リセット要因ビット リセット発生要因は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すこと で識別することができます。 ■ リセット要因ビット 図 6.5-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すと得 られます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッ チドッグタイマ制御レジスタ (WDTC) の読出し値をソフトウェアで処理した上で , 適 切なプログラムへ分岐するようにしてください。 図 6.5-1 リセット要因ビットブロックダイヤグラム RST端子 HST=内部"H"固定 (ハードウェアスタンバイモード無) 電源投入 定期的なクリアなし RST=L パワーオン 発生検出回路 ハードウェアスタンバイ 解除検出回路 ウォッチドッグ タイマリセット 発生検出回路 外部リセット 要求検出回路 RSTビットセット LPMCR:RSTビット 書込み検出回路 クリア ウォッチドッグ タイマ制御 レジスタ (WDTC) S R F/F Q S F/F Q R S R F/F Q S F/F Q R S F/F Q R 遅延回路 ウォッチドッグタイマ 制御レジスタ (WDTC)読出し 内部データバス S :Set R :Reset Q :Out put F/F:Flip Flop ■ リセット要因ビットとリセット要因の対応 ウォッチドックタイマ制御レジスタ (WDTC) のリセット要因ビットの構成を , 図 6.5-2 に , リセット要因ビットの内容とリセット要因の対応を 表 6.5-1 に示します。詳細は , 「10.2 ウォッチドッグタイマ制御レジスタ (WDTC)」を参照してください。 122 第 6 章 リセット 図 6.5-2 リセット要因ビットの構成(ウォッチドッグタイマ制御レジスタ) ウォッチドッグタイマ制御レジスタ(WDTC) アドレス bit15 0000A8H 7 6 PONR - R - 8 (TBTC) 5 3 4 WRST ERST SRST R R R 2 1 0 WTE WT1 WT0 W W W 初期値 X-XXX111B R : リードオンリ W : ライトオンリ X : 不定 表 6.5-1 リセット要因ビットの内容とリセット要因の対応 PONR WRST ERST SRST パワーオンリセット要求の発生 1 X X X ウォッチドッグタイマオーバフ ローによるリセット要求の発生 △ 1 △ △ RST 端子からの外部リセット要求 △ △ 1 △ ソフトウェアリセット要求の発生 △ △ △ 1 リセット要因 △ : 前の状態を保持 X : 不定 ■ リセット要因ビットの注意事項 ● 複数のリセット要因が発生した場合 リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の 対応するそれぞれのリセット要因ビットが "1" にセットされます。たとえば ,RST 端子 からの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生 した場合 ,ERST ビットと WRST ビットの両方が "1" になります。 ● パワーオンリセットの場合 パワーオンリセットの場合には ,PONR ビットが "1" にセットされますが ,PONR ビット以 外のリセット要因ビットは不定となります。このため ,PONR ビットが "1" の場合は ,PONR ビット以外のリセット要因ビットを無視するようにソフトウェアを作成してください。 ● リセット要因ビットのクリア リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出したと きのみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは , その後ほかの要因でリセットが発生してもクリアされず ,"1" のままとなります。 < 注意事項 > パワーオンリセットが発生しない条件で電源を立ち上げた場合は , このレジスタの 値は保証されません。 123 第 6 章 リセット 6.6 リセットによる各端子の状態 リセットによる各端子の状態について説明します。 ■ リセット中の端子の状態 リセット中の端子の状態は , モード端子 (MD2 ∼ MD0=011B) の設定によって決定され ます。 リセット中の各端子の状態は「5.7 , スタンバイモード , ホールド , リセット時の端子状 態」を参照してください。 ● 内部ベクタモード設定時 I/O 端子(周辺機能端子)はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 ■ モードデータ読出し後の端子の状態 モードデータ読み出し後の端子の状態は , モードデータ (M1, M0=00B) によって決定さ れます。 ● シングルチップモード選択時 (M1, M0=00B) I/O 端子(周辺機能端子)はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 < 注意事項 > 124 リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続し た機器が誤動作しないように配慮してください。 第7章 メモリアクセスモード メモリアクセスモードの機能と動作について説明 します。 7.1 メモリアクセスモードの概要 7.2 外部メモリアクセス ( バス端子制御回路 ) 7.3 外部メモリアクセス制御信号の動作 125 第 7 章 メモリアクセスモード 7.1 メモリアクセスモードの概要 F2MC-16LX では , アクセス方式 , アクセス領域について , 各種のモードがあります。 ■ メモリアクセスモードの概要 表 7.1-1 モード端子とモード 動作モード バスモード アクセスモード シングルチップ 8 ビット 内 ROM 外バス RUN 16 ビット 8 ビット 外 ROM 外バス 16 ビット フラッシュプログラミング - - ● 動作モード 動作モードとは , デバイスの動作状態を制御するモードを示すもので ,MDx モード設定 用端子とモードデータ内の Mx ビットで指定します。動作モードを選択することで , 通 常動作の起動や , フラッシュメモリの書込みを行うことができます。 ● バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す もので , モード設定用端子 (MDx) とモードデータ内の Mx ビットの内容で指定します。 モード設定用端子 (MDx) は , リセットベクタおよびモードデータを読み出すときのバ スモードを指定するもので , モードデータ内の Mx ビットは , 通常動作時のバスモード を指定するものです。 ● アクセスモード アクセスモードとは , 外部データバス幅を制御するモードを示すもので ,MDx モード設 定用端子とモードデータ内の S0 ビットで指定します。アクセスモードを選択すること で , 外部データバスを 8 ビット長あるいは 16 ビット長を指定します。 126 第 7 章 メモリアクセスモード モード端子 7.1.1 MD2 ∼ MD0 の 3 本の外部端子を組み合わせて , 表 7.1-2 の動作を指定ができます。 ■ モード端子 表 7.1-2 モード端子とモード モード端子設定 モード名 リセットベクタ アクセス領域 外部データ バス幅 備考 MD2 MD1 MD0 0 0 0 外部ベクタ モード 0 外部 8 ビット 0 0 1 外部ベクタ モード 1 外部 16 ビット 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 フラッシュシ リアル書込み* - - - 1 1 1 フラッシュメ モリ - - パラレルライタ使用時の モード リセットベクタ 16 ビットバ ス幅アクセス 指定禁止 内部ベクタ モード 内部 (モードデータ) リセットシーケンス以降は モードデータで制御 指定禁止 *: フラッシュメモリのシリアル書込みは , モード端子の設定だけでは書込みできません。ほかの端子の設定も 必要です。詳細は , フラッシュシリアル書込み接続例を参照してください。 127 第 7 章 メモリアクセスモード 7.1.2 モードデータ モードデータは , 主記憶 FFFFDFH に置かれ ,CPU の動作を制御するために使用しま す。リセットシーケンス実行中にこのデータを取り込み , デバイス内部のモードレジ スタに格納します。モードレジスタの値を変更できるのはリセットシーケンスだけ です。 本レジスタによる設定はリセットシーケンス以降に有効となります。 予約ビットは , 必ず "0" を設定してください。 ■ モードデータ 図 7.1-1 モードデータ構成 bit モードデータ アドレス:FFFFDFH 7 6 5 4 3 2 1 0 M1 M0 予約 予約 SO 予約 予約 予約 [bit7, bit6] M1, M0(バスモード設定ビット) M1, M0 は , リセットシーケンス終了後の動作モードを指定するビットです。M1, M0 ビットと , 機能の関係は , 表 7.1-3 のようになっています。 表 7.1-3 M1, M0(バスモード設定ビット)の機能 M1 M0 0 0 シングルチップモード 0 1 内 ROM 外バスモード 1 0 外 ROM 外バスモード 1 1 設定禁止 機能 備考 [bit3] S0(モード設定ビット) S0 は , リセットシーケンス終了後のバスモード , アクセスモードを指定するビットで す。S0 ビットと機能の関係は , 表 7.1-4 のようになっています。 表 7.1-4 S0(モード設定ビット)の機能 S0 128 機能 0 外部データバス 8 ビットモード 1 外部データバス 16 ビットモード 備考 第 7 章 メモリアクセスモード バスモード別メモリ空間 7.1.3 バスモードの指定による , アクセス領域と物理アドレスの対応を 図 7.1-2 に示しま す。 ■ バスモード別メモリ空間 図 7.1-2 各バスモードにおけるアクセス領域と物理アドレスの関係 FFFFFFH ROM領域 ROM領域 ROM領域 FFバンクの イメージ ROM領域 FFバンクの イメージ I/O I/O I/O RAM RAM RAM アドレス#1 010000H ) ( ( 004000H 003900H ) アドレス#2 アドレス#3 :内部 :外部 000100H 0000C0H I/O 000000H シングルチップ 品種 I/O I/O 内ROM外バス 外ROM外バス :アクセスなし アドレス #1 アドレス #2 アドレス #3 MB90F443G MB90443G FE0000H 002000H 001900H MB90V440G (FC0000H) − (RAM14KByte) − (RAM14KByte) 129 第 7 章 メモリアクセスモード ■ 推奨設定 表 7.1-5 に , モード端子とモードデータの推奨設定例を示します。 表 7.1-5 モード端子とモードデータの推奨設定例 MD2 MD1 MD0 M1 M0 S0 シングルチップ 0 1 1 0 0 × 内 ROM 外バスモード・16 ビットバス 0 1 1 0 1 1 内 ROM 外バスモード・8 ビットバス 0 1 1 0 1 0 外 ROM 外バスモード・16 ビットバス・ ベクタ 16 バス幅 0 0 1 1 0 1 外 ROM 外バスモード・8 ビットバス 0 0 0 1 0 0 設定例 外部端子には各種モードごとに異なる信号機能があります。 表 7.1-6 各種モードごとの外部端子の機能 機能 外部バス拡張 端子名 シングルチップ 8 ビット P07 ∼ P00 16 ビット AD07 ∼ AD00 P17 ∼ P10 A15 ∼ A08 AD15 ∼ AD08 フラッシュ プログラミング D07 ∼ D00 A15 ∼ A08 P27 ∼ P20 A23 ∼ A16* A07 ∼ A00 P30 ALE A16 P31 RD CE P32 P33 ポート WR* WRL* OE ポート WRH* PGM P34 HRQ* P35 HAK* P36 RDY* P37 CLK* 未使用 * : アドレス上位出力端子と ,WRL/WR, WRH, HRQ, HAK, RDY, CLK 端子は , 機能選 択によりポートとして使用することが可能です。詳細は , 「7.2 外部メモリアク セス ( バス端子制御回路 )」を参照ください。 130 第 7 章 メモリアクセスモード 外部メモリアクセス ( バス端子制御回路 ) 7.2 外部バス端子制御回路は ,CPU のアドレス / データバスを外部に拡張するための外部 バス端子を制御します。 ■ 外部メモリアクセス ( 外部バス端子制御回路 ) MB90440G デバイス外部のメモリ / 周辺をアクセスするためには , 以下に示すようなア ドレス / データ / 制御信号を使用します。 • CLK(P37) : マシンサイクルクロック (KBP) 出力端子です。 • RDY(P36) : 外部レディ入力端子です。 • WRH(P33): データバス上位 8 ビットのライト信号です。 • WRL/WR(P32): データバス下位 8 ビットのライト信号 , または 8 ビットアクセス時 のデータバス 8 ビットのライト信号です。 • RD(P31) : リード信号です。 • ALE(P30) : アドレスラッチイネーブル信号です。 外部バス端子制御回路は外部バス端子の制御に使用され ,CPU アドレス / データバスの 外部拡張を可能にします。 ■ 外部メモリアクセスのブロックダイヤグラム 図 7.2-1 外部バス制御器 P1 P0 P0データ ● P0方向 RB ● P2 P3 P3 P0 ● ○ ● データ制御 アドレス制御 アクセス 制御 アクセス制御 131 第 7 章 メモリアクセスモード 7.2.1 外部メモリアクセス ( 外部バス端子制御回路 ) の レジスタ 外部メモリアクセス ( 外部バス端子制御回路 ) には , 次の 3 種類のレジスタがありま す。 • 自動レディ機能選択レジスタ • 外部アドレス出力制御レジスタ • バス制御信号選択レジスタ ■ 外部メモリアクセスのレジスタ一覧 図 7.2-2 外部メモリアクセス ( 外部バス端子制御回路 ) のレジスタ一覧 自動レディ機能選択レジスタ bit 15 アドレス:0000A5H リード/ライト 初期値 13 12 11 10 IOR1 IOR0 HMR1 HMR0 (W) (0) 外部アドレス出力制御レジスタ bit 7 9 8 LMR1 LMR0 (W) (0) (W) (1) (W) (1) (-) (-) (-) (-) (W) (0) (W) (0) 6 5 4 3 2 1 0 アドレス:0000A6H E23 E22 E21 E20 E19 E18 E17 E16 リード/ライト 初期値 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) 14 13 12 11 10 9 8 バス制御信号選択レジスタ 132 14 bit 15 アドレス:0000A7H CKE RYE HDE リード/ライト 初期値 (W) (0) (W) (0) (W) (0) IOBS HMBS WRE (W) (0) (W) (0) (W) (0) LMBS (W) (0) ARSR HACR ECSR (-) (-) 第 7 章 メモリアクセスモード 7.2.2 自動レディ機能選択レジスタ (ARSR) 自動レディ機能選択レジスタ (ARSR) は , 外部アクセス時 , 領域ごとのメモリアクセ スの自動ウェイト時間を設定します。 ■ 自動レディ機能選択レジスタ (ARSR) 図 7.2-3 自動レディ機能選択レジスタの構成 自動レディ機能選択レジスタ bit 15 アドレス:0000A5H リード/ライト 初期値 14 13 12 11 10 IOR1 IOR0 HMR1 HMR0 (W) (0) (W) (0) (W) (1) (W) (1) 9 8 LMR1 LMR0 (-) (-) (-) (-) (W) (0) ARSR (W) (0) [bit15, bit14] IOR1, IOR0 IOR1, IOR0 ビットでは ,0000C0H ∼ 0000FFH の領域に対する外部アクセスを行ったと きの自動ウェイト機能を指定します。IOR1, IOR0 ビットの組合せで , 表 7.2-1 に示すよ うな設定になります。 表 7.2-1 IOR1, IOR0( 自動ウェイト機能指定ビット ) の機能 IOR1 IOR0 0 0 自動ウェイト禁止 [ 初期値 ] 0 1 外部アクセス時 ,1 サイクルの自動ウェイトが入る 1 0 外部アクセス時 ,2 サイクルの自動ウェイトが入る 1 1 外部アクセス時 ,3 サイクルの自動ウェイトが入る 機能 [bit13, bit12] HMR1, HMR0 HMR1, HMR0 では ,800000H ∼ FFFFFFH の領域に対する外部アクセスを行ったときの 自動ウェイト機能を指定します。HMR1, HMR0 ビットの組合せで , 表 7.2-2 に示すよう な設定になります。 表 7.2-2 HMR1, HMR0( 自動ウェイト機能指定ビット ) の機能 HMR1 HMR0 0 0 自動ウェイト禁止 0 1 外部アクセス時 ,1 サイクルの自動ウェイトが入る 1 0 外部アクセス時 ,2 サイクルの自動ウェイトが入る 1 1 外部アクセス時 ,3 サイクルの自動ウェイトが入る [ 初期値 ] 機能 133 第 7 章 メモリアクセスモード [bit9, bit8] LMR1, LMR0 LMR1, LMR0 では ,002000H ∼ 7FFFFFH の領域に対する外部アクセスを行ったときの自 動ウェイト機能を指定します。LMR1, LMR0 ビットの組合せで , 表 7.2-3 に示すような 設定になります。 表 7.2-3 LMR1, LMR0( 自動ウェイト機能指定ビット ) の機能 134 LMR1 LMR0 0 0 自動ウェイト禁止 [ 初期値 ] 0 1 外部アクセス時 ,1 サイクルの自動ウェイトが入る 1 0 外部アクセス時 ,2 サイクルの自動ウェイトが入る 1 1 外部アクセス時 ,3 サイクルの自動ウェイトが入る 機能 [ 初期値 ] 第 7 章 メモリアクセスモード 7.2.3 外部アドレス出力制御レジスタ (HACR) 外部アドレス出力制御レジスタ (HACR) は , アドレス (A23 ∼ A16) の外部への出力 を制御するレジスタです。各ビットが , それぞれアドレス A23 ∼ A16 に対応し , 各 アドレス出力端子を 図 7.2-4 に示すように制御します。 ■ 外部アドレス出力制御レジスタ (HACR) 図 7.2-4 外部アドレス出力制御レジスタの構成 外部アドレス出力制御レジスタ bit 7 6 5 4 3 2 1 0 アドレス:0000A6H E23 E22 E21 E20 E19 E18 E17 E16 リード/ライト 初期値 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) HACR HACR レジスタは外部回路へのアドレス (A23 ∼ A16) の出力を制御します。8 ビット がA23∼A16のアドレスビットに対応し,下記のようにアドレス出力端子を制御します。 HACR レジスタは , デバイスがシングルチップモード時にはアクセスすることができ ません。 その場合,本レジスタの値にかかわらず,全端子がI/Oポートとして機能します。 このレジスタの全ビットは , すべて書込み専用で , 読み出しでは "1" となります。 表 7.2-4 外部アドレス出力制御レジスタ(E23 ∼ E16 ビット)の機能 0 対応する端子はアドレス出力 (A23 ∼ A16) になります。[ 初期値 ] 1 対応する端子は I/O ポート (P27 ∼ P20) になります。 135 第 7 章 メモリアクセスモード 7.2.4 バス制御信号選択レジスタ (ECSR) バス制御信号選択レジスタ (ECSR) は , 外部バスモード時のバス動作の制御機能を設 定するレジスタです。デバイスがシングルチップモード時にはアクセスすることが できません。その場合 , 本レジスタの値にかかわらず , 全端子が I/O ポートとして機 能します。バス制御信号選択レジスタのビットは , すべて書込み専用で , 読出しでは "1" となります。 ■ バス制御信号選択レジスタ (ECSR) 図 7.2-5 バス制御信号選択レジスタの構成 バス制御信号選択レジスタ bit 15 14 13 アドレス:0000A7H CKE RYE HDE リード/ライト 初期値 (W) (0) (W) (0) (W) (0) 12 11 10 IOBS HMBS WRE (W) (0) (W) (0) (W) (0) 9 8 LMBS (W) (0) ECSR (-) (-) [bit15] CKE CKE ビットでは , 外部クロック信号端子 (CLK) の出力を 表 7.2-5 に示すように制御し ます。 表 7.2-5 CKE(外部クロック (CLK) 出力制御ビット)の機能 0 I/O ポート (P37) 動作(クロック出力禁止)[ 初期値 ] 1 クロック信号 (CLK) 出力許可 [bit14] RYE RYE ビットでは , 外部レディ(RDY) 信号端子の入力を , 表 7.2-6 に示すように制御しま す。 表 7.2-6 RYE(外部レディ (RDY) 入力制御ビット)の機能 0 I/O ポート (P36) 動作(外部 RDY 入力禁止)[ 初期値 ] 1 外部レディ (RDY) 入力許可 [bit13] HDE HDE ビットは , ホールド関係の信号の入出力許可を指定します。HDE ビットの設定に より , ホールド要求入力信号 (HRQ) とホールドアクノリッジ出力信号 (HAK) の 2 本を 表 7.2-7 に示すように制御します。 136 第 7 章 メモリアクセスモード 表 7.2-7 HDE(ホールド関連端子の入出力許可指定ビット)の機能 0 I/O ポート (P35, P34) 動作(ホールド機能入出力禁止)[ 初期値 ] 1 ホールド要求 (HRQ) 入力 / ホールドアクノリッジ (HAK) 出力許可 [bit12] IOBS IOBS ビットでは , 外部データバス 16 ビットモード時に ,0000C0H ∼ 0000FFH の領域に 対する外部アクセスを行ったときのバス幅を指定します。本ビットの設定により , 表 7.2-8 に示すように制御します。 表 7.2-8 IOBS (バス幅指定ビット) 0 16 ビットバス幅アクセス [ 初期値 ] 1 8 ビットバス幅アクセス [bit11] HMBS HMBS ビットは , 外部データバス 16 ビットモード時に ,800000H ∼ FFFFFFH の領域に 対する外部アクセスを行ったときのバス幅を指定します。本ビットの設定により , 表 7.2-9 に示すように制御します。 表 7.2-9 HMBS(バス幅指定ビット)の機能 0 16 ビットバス幅アクセス [ 初期値 ] 1 8 ビットバス幅アクセス [bit10] WRE WRE ビットは , 外部ライト信号(外部データバス 16 ビットモードの場合は WRH/WRL 両端子 , 外部データバス 8 ビットモードの場合は WR 端子)の出力を , 表 7.2-10 に示す ように制御します。 外部データバス 8 ビットモードの場合は , 本ビットの設定値に関係なく ,P33 は I/O ポー トとして機能します。 表 7.2-10 WRE(外部ライト信号出力制御ビット)の機能 0 I/O ポート (P33, P32) 動作(ライト信号出力禁止)[ 初期値 ] 1 ライトストローブ信号(WRH/WRL または WR のみ)の出力許可 137 第 7 章 メモリアクセスモード [bit9] LMBS LMBS ビットは , 外部データバス 16 ビットモード時に ,002000H ∼ 7FFFFFH の領域に 対する外部アクセスを行ったときのバス幅を指定します。本ビットの設定により , 表 7.2-11 のように制御します。 表 7.2-11 LMBS(バス幅指定ビット)の機能 < 注意事項 > 138 0 16 ビットバス幅アクセス [ 初期値 ] 1 8 ビットバス幅アクセス • 外部データバス 16 ビットモード時 ,WRE ビットにて WR, WRH, WRL 機能を許 可する場合は ,P33, P32 を入力モードにしてください(DDR3 レジスタの bit3,bit2 は "0" にしてください) 。 • 外部データバス 8 ビットモード時 ,WRE ビットにて WR 機能を許可する場合は , P32 を入力モードにしてください(DDR3 レジスタの bit2 は "0" にしてください)。 • また ,RYE, HDE ビットにて RDY, HRQ 信号入力を許可した場合でも , そのポー トの I/O ポート機能は有効となります。そのため , そのポートに対応する DDR3 レジスタに , 必ず "0"(入力モード)を書き込みます。 第 7 章 メモリアクセスモード 7.3 外部メモリアクセス制御信号の動作 外部メモリへのアクセスは , レディ機能を使用しない場合は 3 サイクルで行います。 外部 16 ビットバスモードでの 8 ビットバス幅アクセスは ,8 ビット幅の周辺チップ と 16 ビット幅の周辺チップを混在して外部バスに接続した場合に ,8 ビット幅の周 辺チップをリード / ライトするための機能です。 ■ 外部メモリアクセス制御信号 外部データバス 16 ビットモードで 16 ビットバス幅アクセスを行うか 8 ビットバス幅 アクセスを行うかは ,ECSR レジスタの HMBS/LMBS/IOBS ビットで指定することにな ります。 なお , アドレス出力と ALE 信号のアサート出力のみを行い ,RD/WRL/WRH/WR をア サートしないことにより実際にはバス動作を行わない場合があります。ALE 信号のみ で , 周辺チップへのアクセスを実行することがないようにしてください。 図 7.3-1 外部データバス 8 ビットモードのアクセスタイミングチャート リード ライト リード P37/CLK P33/WRH (ポートデータ) P32/WRL/WR P31/RD P30/ALE P27/A23~P20/A16 リードアドレス ライトアドレス リード アドレス P17/AD15~P10/AD08 リードアドレス ライトアドレス リード アドレス P07/AD07~P00/AD00 リード アドレス ライト アドレス リードデータ リード アドレス ライトデータ 139 第 7 章 メモリアクセスモード 図 7.3-2 外部データバス 16 ビットモードのアクセスタイミングチャート (16 ビットバス幅アクセス , 8 ビットバス幅アクセス時) 8ビットバス幅バイトリード 偶数アドレスバイトリード 8ビットバス幅バイトライト 偶数アドレスバイトライト P37/CLK P33/WRH P32/WRL/WR P31/RD P30/ALE P27/A23~P20/A16 P17/AD15~P10/AD08 リード アドレス P07/AD07~P00/AD00 リード アドレス リード アドレス ライトアドレス リードアドレス 無効 ライト アドレス (不定) リード アドレス ライト アドレス リードデータ 奇数アドレスバイトリード リード アドレス ライトデータ 奇数アドレスバイトライト P37/CLK P33/WRH P32/WRL/WR P31/RD P30/ALE P27/A23~P20/A16 リードアドレス P17/AD15~P10/AD08 リード アドレス P07/AD07~P00/AD00 リード アドレス ライト アドレス 無効 リード アドレス ライト アドレス リードデータ 偶数アドレスワードリード リード アドレス ライトアドレス (不定) リード アドレス ライトデータ 偶数アドレスワードライト P37/CLK P33/WRH P32/WRL/WR P31/RD P30/ALE リード アドレス P27/A23~P20/A16 リードアドレス P17/AD15~P10/AD08 リード アドレス ライト アドレス リード アドレス P07/AD07~P00/AD00 リード アドレス ライト アドレス リード アドレス ライトアドレス リードデータ ライトデータ ( 注意事項 ) 常にワードで読み出すように外部回路を設定してください。 P36/RYD 端子 , または自動レディ機能選択レジスタ (ARSR) の設定により , 低速のメモリや周辺 回路へのアクセスが可能となります。 140 第 7 章 メモリアクセスモード 7.3.1 レディ機能 P36/RDY 端子 , または自動レディ機能選択レジスタ (ARSR) の設定により , 低速の メモリや周辺回路へのアクセスが可能となります。 バス制御信号選択レジスタ (ECSR) 中の RYE ビットが "1" に設定されている場合 , 外部回路へのアクセス時に P36/RDY 信号に "L" レベルが入力されている期間ウェイ トサイクルとなり , アクセスサイクルを延ばすことが可能です。 ■ レディ機能 図 7.3-3 レディ機能タイミングチャート 偶数アドレスワードリード 偶数アドレスワードライト P37/CLK P33/WRH P32/WRL/WR P31/RD P30/ALE P27/A23~P20/A16 リードアドレス ライトアドレス P17/AD15~P10/AD08 リード アドレス ライト アドレス P07/AD07~P00/AD00 リード アドレス ライト アドレス P36/RDY RDY端子取込み ライトデータ リードデータ 偶数アドレスワードライト 偶数アドレスワードリード P37/CLK P33/WRH P32/WRL/WR P31/RD P30/ALE P27/A23~P20/A16 リードアドレス ライトアドレス P17/AD15~P10/AD08 ライト アドレス リードアドレス P07/AD07~P00/AD00 ライト アドレス リードアドレス ライトデータ オートレディにより延びたサイクル 141 第 7 章 メモリアクセスモード MB90440G は , 外部メモリアクセス用のオートレディ機能を 2 種類内蔵しています。 オートレディ機能は , アドレス 002000H ∼ 7FFFFFH 間に配置した下位アドレス外部領 域へのアクセスが発生したときと , アドレス 800000H ∼ FFFFFFH 間に配置した上位ア ドレス外部領域へのアクセスが発生したときに , 外部回路なしで自動的に 1 ∼ 3 サイク ルのウェイトサイクルを挿入し,アクセスサイクルを延ばすことができる機能で,ARSR 中の LMR1/LMR0 ビット(下位アドレス外部領域)および ARSR 中の HMR1/HMR0 ビット(上位アドレス外部領域)の設定により起動します。 さらに ,MB90440G は I/O 用のオートレディ機能をメモリ用とは独立に内蔵しています。 ARSR レジスタの IOR1/IOR0 ビットを "0" に設定すると , アドレス 0000C0H ∼ 0000FFH 間の外部領域へのアクセス時に , 外部回路なしで自動的に 1 ∼ 3 サイクルのウェイトサ イクルを挿入し , アクセスサイクルを延ばすことができます。 外部メモリ用 , 外部 I/O 用のオートレディどちらでも ECSR 中の RYE ビットが "1" に 設定されている場合,上記オートレディ機能によるウェイトサイクル終了後にP36/RDY 端子に "L" レベルが入力されているとそのままウェイトサイクルを継続します。 142 第 7 章 メモリアクセスモード 7.3.2 ホールド機能 バス制御信号選択レジスタ (ECSR) 中の HDE ビットが "1" に設定されている場合 , P34/HRQ, P35/HAK 両端子による外部アドレスホールド機能が有効となります。 ■ ホールド機能 P34/HRQ 端子に "H" レベルを入力すると ,CPU の命令の終了時(ストリング命令の場 合は "1" エレメントデータの処理の終了時)にてホールド状態となり ,P35/HAK 端子よ り "L" レベル信号を出力して以下の端子をハイインピーダンス状態にします。 • アドレス出力 :P27/A23 ∼ P20/A16 • データ入出力 :P17/AD15 ∼ P10/AD08, P07/AD07 ∼ P00/AD00 • バス制御信号 :P30/ALE, P31/RD, P32/WRL/WR, P33/WRH これにより , デバイス外部回路により外部バスを使用することが可能となります。P34/ HRQ 端子に "L" レベル信号を入力すると ,P35/HAK 端子は "H" レベル出力となり , 外 部端子状態が復活してバスは動作を再開します。STOP 状態においては , ホールド要求 入力は受け付けません。 図 7.3-4 ホールドタイミング ホールドサイクル リードサイクル ライトサイクル P37/CLK P34/HRQ P35/HAK P33/WRH P32/WRL/WR P31/RD P30/ALE P27/A23~P20/A16 (アドレス) (アドレス) P17/AD15~P10/AD08 (アドレス) P07/AD07~P00/AD00 (アドレス) リードデータ ライトデータ 143 第 7 章 メモリアクセスモード 144 第8章 I/O ポート I/O ポートの機能について説明します。 8.1 I/O ポート 8.2 I/O ポートの入力レベル 8.3 I/O ポートのレジスタ一覧 145 第 8 章 I/O ポート 8.1 I/O ポート それぞれのポートの各端子は , 対応する周辺が端子を用いない設定となっているとき , ポート方向レジスタ (DDR) の設定により入力 , 出力の指定を行うことができます。 ■ I/O ポートの概要 端子が入力と指定されている場合は , 端子の論理レベルが読み出されます。端子が出力 と指定されている場合は , データレジスタ値が読み出されます。これは , リードモディ ファイライト命令のリードでも同じです。 端子がほかの周辺機能の出力として使用されている場合は,データレジスタの値に関係 なく , 端子の論理レベルが読み出されます。 通常は , ポートを出力に設定するのに先立って , リードモディファイライト系の命令を データレジスタの設定に使用しない , および周辺機能の出力を切ることをお勧めしま す。これは , この場合のリードモディファイライト命令がレジスタ値ではなく , ポート の論理レベルを読み出すことになるからです。 図 8.1-1 に ,I/O ポートのブロックダイヤグラムを示します。 図 8.1-1 I/O ポートのブロックダイヤグラム 内部データバス データレジスタリード データレジスタ データレジスタライト 方向レジスタ 方向レジスタライト 方向レジスタリード 146 端子 第 8 章 I/O ポート 8.2 I/O ポートの入力レベル I/O ポートの入力レベルは , ポート入力レベル選択レジスタ (PILR) によって選択で きます。 ■ I/O ポートの入力レベル MB90440G シリーズでは , 初期状態において ,P00 ∼ P07, P10 ∼ P17, P20 ∼ P27, P30 ∼ P37 端子は TTL レベル , ほかのポート端子は CMOS ヒステリシスレベルで動作してい ますが ,PILR レジスタにより P00 ∼ P07, P10 ∼ P17, P20 ∼ P27, P30 ∼ P37 端子の入力 レベルは CMOS ヒステリシスレベルに , ほかのポート端子は特殊ヒステリシスレベル に変えることができます (「8.3 I/O ポートのレジスタ一覧」を参照 )。 ほかのすべてのポートでは,入力レベルはポートごとにオートモーティブレベルに変更 可能です。これは PILR レジスタの使用で可能となります (「8.3 I/O ポートのレジスタ 一覧」を参照 )。 < 注意事項 > PILR レジスタは各リセットにより初期化されます。初期状態と異なった入力レベル を使用したい場合は , このことを考慮して使用してください。 147 第 8 章 I/O ポート 8.3 I/O ポートのレジスタ一覧 I/O ポートの各レジスタのビット構成を , 図 8.3-1 に示します。 ■ I/O ポートのレジスタ一覧 図 8.3-1 I/O ポートのレジスタ一覧 bit 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 アドレス:000000H P07 P06 P05 P04 P03 P02 P01 P00 ポート0データレジスタ(PDR0) アドレス:000001H P17 P16 P15 P14 P13 P12 P11 P10 ポート1データレジスタ(PDR1) アドレス:000002H P27 P26 P25 P24 P23 P22 P21 P20 ポート2データレジスタ(PDR2) アドレス:000003H P37 P36 P35 P34 P33 P32 P31 P30 ポート3データレジスタ(PDR3) アドレス:000004H P47 P46 P45 P44 P43 P42 P41 P40 ポート4データレジスタ(PDR4) アドレス:000005H P57 P56 P55 P54 P53 P52 P51 P50 ポート5データレジスタ(PDR5) アドレス:000006H P67 P66 P65 P64 P63 P62 P61 P60 ポート6データレジスタ(PDR6) アドレス:000007H P77 P76 P75 P74 P73 P72 P71 P70 ポート7データレジスタ(PDR7) アドレス:000008H P87 P86 P85 P84 P83 P82 P81 P80 ポート8データレジスタ(PDR8) アドレス:000009H P97 P96 P95 P94 P93 P92 P91 P90 ポート9データレジスタ(PDR9) PA0 ポートAデータレジスタ(PDRA) アドレス:00000AH bit 15 アドレス:00000BH L7 bit 15/7 14 13 12 11 10 9 8 L6 L5 L4 L3 L2 L1 L0 9/1 8/0 14/6 13/5 12/4 11/3 10/2 アドレス:000010H D07 D06 D05 D04 D03 D02 D01 D00 ポート0方向レジスタ(DDR0) アドレス:000011H D17 D16 D15 D14 D13 D12 D11 D10 ポート1方向レジスタ(DDR1) アドレス:000012H D27 D26 D25 D24 D23 D22 D21 D20 ポート2方向レジスタ(DDR2) アドレス:000013H D37 D36 D35 D34 D33 D32 D31 D30 ポート3方向レジスタ(DDR3) アドレス:000014H D47 D46 D45 D44 D43 D42 D41 D40 ポート4方向レジスタ(DDR4) アドレス:000015H D57 D56 D55 D54 D53 D52 D51 D50 ポート5方向レジスタ(DDR5) アドレス:000016H D67 D66 D65 D64 D63 D62 D61 D60 ポート6方向レジスタ(DDR6) アドレス:000017H D77 D76 D75 D74 D73 D72 D71 D70 ポート7方向レジスタ(DDR7) アドレス:000018H D87 D86 D85 D84 D83 D82 D81 D80 ポート8方向レジスタ(DDR8) アドレス:000019H D97 D96 D95 D94 D93 D92 D91 D90 ポート9方向レジスタ(DDR9) DA0 ポートA方向レジスタ(DDRA) アドレス:00001AH bit 15/7 14/6 13/5 12/4 11/3 10/2 アドレス:00001CH PU07 PU06 PU05 PU04 PU03 PU02 PU01 PU00 ポート0プルアップ制御レジスタ(PUCR0) アドレス:00001DH PU17 PU16 PU15 PU14 PU13 PU12 PU11 PU10 ポート1プルアップ制御レジスタ(PUCR1) アドレス:00001EH PU27 PU26 PU25 PU24 PU23 PU22 PU21 PU20 ポート2プルアップ制御レジスタ(PUCR2) アドレス:00001EH PU37 PU36 PU35 PU34 PU33 PU32 PU31 PU30 ポート3プルアップ制御レジスタ(PUCR3) bit 15 アドレス:00001BH 148 ポート入力レベル選択レジスタ(PILR) 14 ADE7 ADE6 13 12 ADE5 ADE4 11 10 ADE3 ADE2 9/1 9 8/0 8 ADE1 ADE0 ポート6アナログ入力許可レジスタ(ADER) 第 8 章 I/O ポート 8.3.1 ポートデータレジスタ (PDR) ポートデータレジスタ (PDR) のビット構成の詳細を , 図 8.3-2 に示します。 ■ ポートデータレジスタ (PDR) 図 8.3-2 ポートデータレジスタ (PDR) bit 7 6 5 4 3 2 1 0 P06 P05 P04 P03 P02 P01 P00 bit 15 PDR1 P17 アドレス:000001H 14 13 12 11 10 9 8 P16 P15 P14 P13 P12 P11 P10 bit 7 PDR2 P27 アドレス:000002H 6 5 4 3 2 1 0 P26 P25 P24 P23 P22 P21 P20 bit 15 PDR3 P37 アドレス:000003H 14 13 12 11 10 9 8 P36 P35 P34 P33 P32 P31 P30 bit 7 PDR4 P47 アドレス:000004H 6 5 4 3 2 1 0 P46 P45 P44 P43 P42 P41 P40 bit 15 PDR5 P57 アドレス:000005H 14 13 12 11 10 9 8 P56 P55 P54 P53 P52 P51 P50 bit 7 PDR6 P67 アドレス:000006H 6 5 4 3 2 1 0 P66 P65 P64 P63 P62 P61 P60 bit 15 PDR7 P77 アドレス:000007H 14 13 12 11 10 9 8 P76 P75 P74 P73 P72 P71 P70 bit 7 PDR8 P87 アドレス:000008H 6 5 4 3 2 1 0 P86 P85 P84 P83 P82 P81 P80 14 13 12 11 10 9 8 P96 P95 P94 P93 P92 P91 P90 6 5 4 3 2 1 0 PDR0 アドレス:000000H P07 bit 15 PDR9 アドレス:000009H P97 bit 7 PDRA アドレス:00000AH PA0 初期値 アクセス 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * 不定 R/W * *:入出力ポートのR/Wは,メモリへのR/Wとは多少動作が異なり,次のとおりになりますので 注意してください。 ○入力モード リード時:対応する端子のレベルが読み出されます。 ライト時:出力用のラッチに書き込まれます。 ○出力モード リード時:データレジスタラッチの値が読み出されます。 ライト時:出力用のラッチに書き込まれ,対応する端子に出力されます。 149 第 8 章 I/O ポート 8.3.2 ポート入力レベル選択レジスタ (PILR) ポート入力レベル選択レジスタ (PILR) のビット構成を 図 8.3-3 に示します。 ■ ポート入力レベル選択レジスタ (PILR) 図 8.3-3 ポート入力レベル選択レジスタ (PILR) のビット構成 ポート入力レベル選択レジスタ bit 15 14 13 12 11 10 9 8 L7 L6 L5 L4 L3 L2 L1 L0 アドレス:00000BH リード/ライト 初期値 PILR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 表 8.3-1 に PILR レジスタの設定ビットとポート入力レベルの関係を示します。PILR レ ジスタは各リセットにより初期化されます。初期状態と異なった入力レベルを使用し たい場合は , このことを考慮して使用してください。 表 8.3-1 ポート入力レベル選択レジスタ 150 ビット名 対応ポート ポート入力レベル 初期値 L0 P00 ∼ P07 P10 ∼ P 17 P20 ∼ P 27 P30 ∼ P 37 0:TTL レベル 1:CMOS ヒステリシス入力レベル 0 L1 P40 ∼ P47 0:CMOS ヒステリシス入力レベル 1: オートモーティブ入力レベル 0 L2 P50 ∼ P57 0:CMOS ヒステリシス入力レベル 1: オートモーティブ入力レベル 0 L3 P60 ∼ P67 0:CMOS ヒステリシス入力レベル 1: オートモーティブ入力レベル 0 L4 P70 ∼ P77 0:CMOS ヒステリシス入力レベル 1: オートモーティブ入力レベル 0 L5 P80 ∼ P87 0:CMOS ヒステリシス入力レベル 1: オートモーティブ入力レベル 0 L6 P90 ∼ P97 0:CMOS ヒステリシス入力レベル 1: オートモーティブ入力レベル 0 L7 PA0 0:CMOS ヒステリシス入力レベル 1: オートモーティブ入力レベル 0 第 8 章 I/O ポート 8.3.3 ポート方向レジスタ (DDR) ポート方向レジスタ (DDR) のビット構成を 図 8.3-4 に示します。 ■ ポート方向レジスタ (DDR) 図 8.3-4 ポート方向レジスタ (DDR) bit 7 DDR0 アドレス:000010H D07 bit 15 DDR1 アドレス:000011H D17 bit 7 DDR2 アドレス:000012H D27 bit 15 DDR3 アドレス:000013H D37 bit 7 DDR4 アドレス:000014H D47 bit 15 DDR5 アドレス:000015H D57 bit 7 DDR6 アドレス:000016H D67 bit 15 DDR7 アドレス:000017H D77 bit 7 DDR8 アドレス:000018H D87 bit 15 DDR9 アドレス:000019H D97 bit 7 0 6 5 4 3 2 1 D06 D05 D04 D03 D02 D01 D00 14 13 12 11 10 9 8 D16 D15 D14 D13 D12 D11 D10 6 5 4 3 2 1 0 D26 D25 D24 D23 D22 D21 D20 14 13 12 11 10 9 8 D36 D35 D34 D33 D32 D31 D30 6 5 4 3 2 1 0 D46 D45 D44 D43 D42 D41 D40 14 13 12 11 10 9 8 D56 D55 D54 D53 D52 D51 D50 6 5 4 3 2 1 0 D66 D65 D64 D63 D62 D61 D60 14 13 12 11 10 9 8 D76 D75 D74 D73 D72 D71 D70 6 5 4 3 2 1 0 D86 D85 D84 D83 D82 D81 D80 14 13 12 11 10 9 8 D96 D95 D94 D93 D92 D91 D90 6 5 4 3 2 1 0 DDRA アドレス:00001AH DA0 初期値 アクセス 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W 00000000B R/W -------0B R/W 各端子がポートとして機能しているときは,対応する各端子を以下のように制御します。 0:入力モード 1:出力モード リセットで”0”になります。 151 第 8 章 I/O ポート プルアップ制御レジスタ (PUCR) 8.3.4 プルアップ制御レジスタ (PUCR) のビット構成を 図 8.3-5 に , ブロックダイヤグラ ムを 図 8.3-6 に示します。 ■ プルアップ制御レジスタ (PUCR) 図 8.3-5 プルアップ制御レジスタ (PUCR) のビット構成 プルアップ制御レジスタ bit 7 アドレス:00001CH PU07 6 5 4 3 2 1 0 PU06 PU05 PU04 PU03 PU02 PU01 PU00 bit 15 アドレス:00001DH PU17 14 13 12 11 10 PU16 PU15 PU14 PU13 PU12 9 PU11 8 PU10 PUCR1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) リード/ライト 初期値 bit 7 アドレス:00001EH PU27 6 5 4 3 2 1 0 PU26 PU25 PU24 PU23 PU22 PU21 PU20 PUCR2 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) リード/ライト 初期値 bit 15 アドレス:00001FH リード/ライト 初期値 PUCR0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) リード/ライト 初期値 PU37 14 13 12 11 10 9 8 PU36 PU35 PU34 PU33 PU32 PU31 PU30 PUCR3 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ■ プルアップ制御レジスタ (PUCR) のブロックダイヤグラム 図 8.3-6 プルアップ制御レジスタ (PUCR) のブロックダイヤグラム プルアップ抵抗(約50kΩ) P-ch データレジスタ ポート入出力 方向レジスタ プルアップ制御レジスタ 内部データバス < 注意事項 > 152 入力モード時のプルアップ抵抗制御を行います。 • 0: 入力モード時プルアップ抵抗なし。 • 1: 入力モード時プルアップ抵抗あり。 出力モード時は意味を持ちません(プルアップ抵抗なし) 。 入出力モードは方向レジスタ (DDR) で決まります。 ハードウェアスタンバイ時とストップモード時 (SPL=1) の場合は , プルアップ抵抗 なしになります(ハイインピーダンス) 。 ポートが外部バスとして使用される場合 , この機能は使用禁止になり , レジスタに データは書き込まれません。 第 8 章 I/O ポート 8.3.5 アナログ入力許可レジスタ (ADER) アナログ入力許可レジスタ (ADER) のビット構成を , 図 8.3-7 に示します。 ■ アナログ入力許可レジスタ (ADER) 図 8.3-7 アナログ入力許可レジスタ (ADER) のビット構成 アナログ入力許可レジスタ bit 15 アドレス:00001BH リード/ライト 初期値 14 13 12 11 10 9 8 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 R/W (1) R/W (1) R/W (1) R/W (1) R/W (1) R/W (1) R/W (1) ADER R/W (1) アナログ入力許可レジスタ (ADER) は , ポート 6 の各端子を次のように制御します。 • 0: ポート入力モード • 1: アナログ入力モード 外部端子が A/D 変換器のアナログ入力として使用される場合 , 対応するビットは "1" に 設定してください。 153 第 8 章 I/O ポート 154 第9章 タイムベースタイマ タイムベースタイマの機能と動作について説明し ます。 9.1 タイムベースタイマの概要 9.2 タイムベースタイマ制御レジスタ (TBTC) 9.3 タイムベースタイマの動作 155 第 9 章 タイムベースタイマ タイムベースタイマの概要 9.1 タイムベースタイマは ,18 ビットのタイマのほかにインターバルな割込みを制御す る回路から構成されています。なお , タイムベースタイマは , クロック選択レジスタ (CKSCR) 中の MCS ビットおよび SCS ビットに関係なく , メインクロック信号を使 用します。 ■ タイムベースタイマのレジスタ 図 9.1-1 タイムベースタイマのレジスタ一覧 タイムベースタイマ制御レジスタ bit 15 14 アドレス:0000A9H 13 予約 リード/ライト 初期値 (-) (-) (R/W) (1) (-) (-) 12 11 10 9 8 TBIE TBOF TBR TBC1 TBC0 TBTC (R/W) (R/W) (R/W) (R/W) (R/W) (1) (0) (0) (0) (0) ■ タイムベースタイマのブロックダイヤグラム 図 9.1-2 タイムベースタイマのブロックダイヤグラム メインクロック TBTC TBC1 セレクタ TBC0 クロック入力 212 214 216 タイムベースタイマ 219 212 TBTRES 214 216 219 TBR TBIE AND Q TBOF S R タイムベース 割込み WDTC WT1 セレクタ WT0 2bitカウンタ OF CLR ウォッチドッグ リセット発生回路 CLR WDGRST 内部 リセット 発生回路へ 内部データバス WTE WTC WDCS SCE AND SCM パワーオンリセット* サブクロック停止 S R Q 210 WTC2 WTC1 WTC0 WTOF 214 215 時計タイマ WTR WTIE 213 セレクタ WTRES AND Q S R クロック入力 サブクロック/4 時計 割込み WDTC PONR パワーオン発生から WRST 156 ERST RST 端子 SRST LPMCRレジスタの RSTビットから 第 9 章 タイムベースタイマ 9.2 タイムベースタイマ制御レジスタ (TBTC) タイムベースタイマ制御レジスタ (TBTC) では , タイムベースタイマの動作を制御し , また , インターバル割込みの時間を制御します。 ■ タイムベースタイマ制御レジスタ (TBTC) 図 9.2-1 タイムベースタイマ制御レジスタ (TBTC) タイムベースタイマ制御レジスタ bit 15 14 アドレス:0000A9H リード/ライト 初期値 13 予約 (R/W) (1) (-) (-) (-) (-) 12 11 10 9 8 TBIE TBOF TBR TBC1 TBC0 TBTC (R/W) (R/W) (R/W) (R/W) (R/W) (1) (0) (0) (0) (0) [bit15] 予約 : 予約ビット 書込みの値は常に "1" にしてください。 [bit14, bit13] - : 未定義ビット bit14, bit13 は , 未定義ビットです。 [bit12] TBIE タイムベースタイマによるインターバル割込みを許可するビットです。"1" のとき割込 み許可 ,"0" のとき割込みを禁止します。リセットにて "0" に初期化します。読み書き 可能なビットです。 [bit11] TBOF タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のとき TBOF が ,"1" になると割込み要求を発生します。TBC1, TBC0 ビットで設定されたインターバルごと に "1" にセットされます。"0" の書込み , メインストップモードへの遷移 ,PLL ストップ モードへの遷移 , サブクロックモードからメインクロックモードへの遷移 , サブクロッ クモードから PLL クロックモードへの遷移 , メインクロックモードから PLL クロック モードへの遷移 ,TBR ビットへの "0" 書込みおよびリセットによりクリアされます。 "1" の書込みは意味がありません。 リードモディファイライト系命令における読出し時には "1" が読み出されます。 < 注意事項 > TBOF ビットをクリアする場合は ,TBIE ビットまたはプロセッサステータス (PS) のインタラプトレベルマスクレジスタ (ILM) の指定で , タイムベースタイマ割込み が禁止されている状態で行うようにしてください。 [bit10] TBR タイムベースタイマのカウンタを全ビット "0" にクリアするビットです。"0" を書き込 むことによりタイムベースタイマをクリアします。"1" の書込みは動作に影響はありま せん。読出し時は "1" が読めます。 157 第 9 章 タイムベースタイマ [bit9, bit8] TBC1, TBC0 タイムベースタイマのインターバル時間を設定するビットです。リセットにより "00B" に初期化されます。読み書き可能なビットです。 表 9.2-1 に , タイムベースタイマ インターバル時間の設定を示します。 表 9.2-1 タイムベースタイマ インターバル時間の設定 158 TBC1 TBC0 0 0 1.024 ms 0 1 4.096 ms 1 0 16.384 ms 1 1 131.072 ms 原発振 4MHz 時のインターバル時間 第 9 章 タイムベースタイマ 9.3 タイムベースタイマの動作 タイムベースタイマは , ウォッチドッグカウンタのクロックソース , メインクロック と PLL クロック発振安定待ち時間のタイマ , 一定周期ごとに割込みを発生するイン ターバルタイマとしての機能があります。 ■ タイムベースタイマ タイムベースタイマは,マシンクロックを作成するもとになる発振クロックをカウント する 18 ビットのカウンタにより構成され , 発振クロックが入力されている間常にカウ ント動作を続けます。 タイムベースタイマのクリアは , パワーオンリセット , メインストップモードへの遷 移 ,PLL ストップモードへの遷移 , メインクロックモードから PLL クロックモードへの 遷移 , サブクロックモードからメインクロックモードへの遷移 , サブクロックモードか ら PLL クロックモードへの遷移およびタイムベースタイマ制御レジスタ (TBTC) 内の TBR ビットへの "0" 書き込みにより行われます。 タイムベースタイマの出力を使用している,ウォッチドッグカウンタとインターバル割 込み機能は , タイムベースカウンタのクリアにより影響を受けます。 ■ タイムベースタイマのインターバル割込み機能 タイムベースカウンタの桁上り信号により一定周期ごとに割込みを発生します。タイ ムベースタイマ制御レジスタレジスタ (TBTC) 内の TBC1, TBC0 ビットで設定されるイ ンターバル時間ごとに TBOF フラグをセットします。このフラグのセットは , 最後に タイムベースタイマがクリアされた時間を基準にして行われます。 メインクロックモードから PLL クロックモードに遷移すると , タイムベースタイマは PLL クロックの発振安定待ちのタイマとして使用するために , タイムベースタイマの クリアが行われます。 また , サブクロックモードからメインクロックモードに遷移すると , タイムベースタイ マは発振クロックの発振安定待ちのタイマとして使用するために,タイムベースタイマ がクリアされます。 メインストップモード ,PLL ストップモードに遷移するとタイムベースタイマは , 復帰 時の発振安定時間待ちのタイマとして使用されるので ,TBOF フラグはモード遷移と同 時にクリアされます。 159 第 9 章 タイムベースタイマ 160 第 10 章 ウォッチドッグタイマ ウオッチドッグタイマの機能と動作について説明 します。 10.1 ウォッチドッグタイマの概要 10.2 ウォッチドッグタイマ制御レジスタ (WDTC) 10.3 ウォッチドッグタイマの動作 161 第 10 章 ウォッチドッグタイマ ウォッチドッグタイマの概要 10.1 ウォッチドッグタイマは ,18 ビットのタイムベースタイマ , または 15 ビットの時計 タイマの桁上り信号をクロックソースとする 2 ビットのウォッチドッグカウンタ , コントロールレジスタ , ウォッチドッグリセット制御部により構成されています。 ■ ウォッチドッグタイマのレジスタ 図 10.1-1 ウォッチドッグタイマのレジスタ一覧 ウォッチドッグタイマ制御レジスタ bit 7 6 PONR アドレス:0000A8H リード/ライト 初期値 (R) (X) (-) (-) 5 4 3 2 1 0 WRST ERST SRST WTE WT1 WT0 (R) (X) (R) (X) (R) (X) (W) (1) (W) (1) (W) (1) WDTC ■ ウォッチドッグタイマのブロックダイヤグラム 図 10.1-2 ウォッチドッグタイマのブロックダイヤグラム メインクロック TBTC 212 TBC1 セレクタ TBC0 クロック入力 214 タイムベースタイマ 216 19 2 212 TBTRES 214 216 219 TBR TBIE AND Q TBOF S R タイムベース 割込み WDTC WT1 セレクタ WT0 2bitカウンタ OF CLR ウォッチドッグ リセット発生回路 CLR WDGRST 内部 リセット 発生回路へ 内部データバス WTE WTC WDCS SCE AND SCM パワーオンリセット サブクロック停止 S R Q 210 WTC2 WTC1 WTC0 WTOF 214 215 時計タイマ WTR WTIE 213 セレクタ WTRES AND Q S R クロック入力 サブクロック/4 時計 割込み WDTC PONR パワーオン発生から WRST 162 ERST RST 端子 SRST LPMCRレジスタの RSTビットから 第 10 章 ウォッチドッグタイマ 10.2 ウォッチドッグタイマ制御レジスタ (WDTC) ウォッチドッグタイマ制御レジスタ (WDTC) は , ウォッチドッグタイマ関連の各種 制御を行うビットと各種リセット要因を識別するビットで構成しています。 ■ ウォッチドッグタイマ制御レジスタ (WDTC) 図 10.2-1 ウォッチドッグタイマ制御レジスタ (WDTC) ウォッチドッグタイマ制御レジスタ bit 7 アドレス:0000A8H リード/ライト 初期値 6 PONR (R) (X) (-) (-) 5 4 3 2 1 0 WRST ERST SRST WTE WT1 WT0 (R) (X) (R) (X) (R) (X) (W) (1) (W) (1) (W) (1) WDTC [bit7, bit5 ∼ bit3] PONR, WRST, ERST, SRST リセットの要因を示すフラグです。各種リセット要因が発生すると , 本ビットは 表 10.2-1 に示すように設定されます。これらのビットはすべて WDTC レジスタのリード 動作後に "0" にクリアされる読出し専用のレジスタです。なお , パワーオン時は ,PONR ビット以外のリセット要因ビットの内容は定義されません。したがって ,PONR ビット が "1" のときはこれ以外のビットの内容を無視するようにしてください。 表 10.2-1 リセット要因ビットとリセット要因 PONR WRST ERST SRST パワーオン 1 - - - ウォッチドッグタイマ * 1 * * 外部端子 * * 1 * RST ビット * * * 1 リセット要因 *: 前の状態を保持 [bit2] WTE ウォッチドッグタイマが停止状態のときに本ビットに "0" を書き込むことにより ウォッチドッグタイマを動作状態にします。2 回目以降の "0" の書込みではウォッチ ドッグタイマのカウンタをクリアします。"1" の書込みは動作に影響はありません。 ウォッチドッグタイマは , 各種リセットにより停止状態となります。読出し時は "1" が 読み出されます。 163 第 10 章 ウォッチドッグタイマ [bit1, bit0] WT1, WT0 ウォッチドッグタイマのインターバル時間を選択します。 ウォッチドッグタイマ起動時に書き込まれたデータのみが有効です。ウォッチドッグ 起動時以外の書込みデータは無視されます。また , 時計タイマ制御レジスタ (WTC) 内 の WDCS ビットとクロック選択レジスタ (CKSCR) の SCM ビットによりウォッチドッ グタイマに入力するクロック信号の選択が行われます(タイムベースタイマ , 時計タイ マ)。 WT1, WT0 ビットによるインターバル時間の設定を , 表 10.2-2 に示します。 表 10.2-2 WT1, WT0 へのアクセス *: < 注意事項 > 164 インターバル時間 * WDCS SCM WT1 1 0 1 WT0 最小 最大 0 約 3.58ms 約 4.61ms 0 1 約 14.33ms 約 18.43ms 1 1 0 約 57.23ms 約 73.73ms 1 1 1 約 458.75ms 約 589.82ms 0 0 0 約 0.457s 約 0.576s 0 0 1 約 3.584s 約 4.608s 0 1 0 約 7.168s 約 9.216s 0 1 1 約 14.336s 約 18.432s 原発振 4MHz, サブ発振クロック 32kHz の場合 インターバル時間は , タイムベースタイマまたは時計タイマの桁上り信号をカウン トクロックにしているため , タイムベースタイマまたは時計タイマがクリアされる と , ウォッチドッグタイマのインターバル時間が長くなる場合があります。 タイムベースタイマはタイムベースタイマ制御レジスタ (TBTC) の TBR ビットへの "0" 書込みのほか , メインクロックモードから PLL クロックモードへの遷移 , サブク ロックモードからメインクロックモードへの遷移およびサブクロックモードから PLL クロックモードへの遷移時にもクリアされますので , ご注意ください。 第 10 章 ウォッチドッグタイマ 10.3 ウォッチドッグタイマの動作 ウォッチドッグタイマの機能は , プログラムの暴走を検出することができます。プロ グラムの暴走などにより , ウォッチドッグタイマの WTE ビットに "0" 書込みが定め られた時間内に行われなかった場合 , ウォッチドッグタイマよりウォッチドッグリ セット要求を発生します。 ■ ウォッチドッグタイマの起動方法 ウォッチドッグタイマは,ウォッチドッグタイマの停止中にウォッチドッグタイマ制御 レジスタ (WDTC) 内の WTE ビットに "0" を書き込むことによって起動します。このと き , 同時にウォッチドッグタイマのインターバル時間を WT1, WT0 ビットにより設定 します。インターバルの設定は , この起動のときのデータのみが有効となります。 ■ ウォッチドッグタイマのリセット ウォッチドッグタイマが起動されると , プログラムで定期的に 2 ビットのウォッチドッ グカウンタをクリアする必要があります。具体的には , ウォッチドッグタイマ制御レジ スタ (WDTC) 内の WTE ビットに定期的に "0" を書き込む必要があります。ウォッチ ドッグカウンタは , タイムベースタイマの桁上り信号をクロックソースとする 2 ビット のカウンタにより構成されています。したがって , タイムベースタイマがクリアされる と , ウォッチドッグリセットのインターバルが設定より長くなることがあります。 ウォッチドッグタイマの動作を , 図 10.3-1 に示します。 図 10.3-1 ウォッチドッグタイマ動作 タイムベース ウォッチドッグ 00 01 10 00 01 10 11 00 WTEライト ウォッチドッグ起動 ウォッチドッグクリア ウォッチドッグリセット 発生 ■ ウォッチドッグカウンタの停止 ウォッチドッグタイマは各種リセットで停止状態となります。 ■ ウォッチドッグカウンタのクリア ウォッチドッグカウンタは , ウォッチドッグタイマ制御レジスタ (WDTC) 内の WTE ビットに "0" を書き込むほかに , リセットの発生 , スリープモード , ストップモード , 時 計モード , またはホールドアクノリッジ信号への遷移によってクリアされます。 時計モード中は , ウォッチドッグタイマのカウンタはクリアされ , カウントを停止しま す。 165 第 10 章 ウォッチドッグタイマ 166 第 11 章 時計タイマ 時計タイマの機能と動作について説明します。 11.1 時計タイマの概要 11.2 時計タイマ制御レジスタ (WTC) 11.3 時計タイマの動作 167 第 11 章 時計タイマ 時計タイマの概要 11.1 時計タイマは ,15 ビットのタイマのほかに , インターバル割込みを制御する回路から 構成されています。なお , 時計タイマは , クロック選択レジスタ (CKSCR) 内の MCS ビットおよび SCS ビットに関係なく , サブクロック信号を使用します。 ■ 時計タイマのレジスタ 図 11.1-1 時計タイマ制御レジスタ (WTC) 時計タイマ制御レジスタ bit 7 アドレス:0000AAH WDCS リード/ライト 初期値 (R/W) (1) 6 5 4 3 2 SCE WTIE WTOF WTR WTC2 1 0 WTC1 WTC0 WTC (R) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (X) (0) (0) (1) (0) ■ 時計タイマのブロックダイヤグラム 図 11.1-2 時計タイマのブロックダイヤグラム メインクロック TBTC TBC1 セレクタ TBC0 212 クロック入力 214 216 タイムベースタイマ 219 212 TBTRES 214 216 219 TBR TBIE AND Q TBOF S R タイムベース 割込み WDTC WT1 セレクタ WT0 2bitカウンタ OF CLR ウォッチドッグ リセット発生回路 CLR WDGRST 内部 リセット 発生回路へ 内部データバス WTE WTC WDCS SCE AND SCM パワーオンリセット サブクロック停止 S R Q 210 WTC2 WTC1 WTC0 WTOF 214 215 時計タイマ WTR WTIE 213 セレクタ WTRES AND Q S R クロック入力 サブクロック/4 時計 割込み WDTC PONR パワーオン発生から WRST 168 ERST RST 端子 SRST LPMCRレジスタの RSTビットから 第 11 章 時計タイマ 11.2 時計タイマ制御レジスタ (WTC) 時計タイマ制御レジスタ (WTC) は , 時計タイマの動作を制御します。また , イン ターバル割込みの時間を制御します。 ■ 時計タイマ制御レジスタ (WTC) 図 11.2-1 時計タイマ制御レジスタ (WTC) 時計タイマ制御レジスタ bit 7 アドレス:0000AAH WDCS リード/ライト 初期値 (R/W) (1) 6 5 4 3 2 SCE WTIE WTOF WTR WTC2 1 0 WTC1 WTC0 WTC (R) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (X) (0) (0) (1) (0) [bit7] WDCS マシンクロックにメインクロックまたは PLL クロックを選択しているときに , ウォッ チドッグタイマの入力クロックとして , 時計タイマのクロック信号を使用するのか , ま たはタイムベースタイマのクロック信号を使用するのかを選択するビットです。 WDCS=0 で , 時計タイマのクロック信号を選択し ,WDCS=1 でタイムベースタイマのク ロック信号を選択することができます。WDCS に "1" を設定すると , タイムベースタイ マ出力はメインクロックまたは PLL クロックを選択する機能に使用され , 時計タイマ 出力はサブクロックを含む機能に使用されます。 リセットにより , 本ビットは "1" に初期化されます。 < 注意事項 > WDCS を "1" に設定した場合には , タイムベースタイマの出力と時計タイマの出力 は非同期であるため , ウォッチドッグタイマのカウンタが進む可能性があります。 このため ,WDCS を "1" に設定した場合には , クロックモードを変更する前後で , ウォッチドッグタイマをクリアする必要があります。 [bit6] SCE サブクロックの発振安定待ち時間が経過したことを示すビットです。本ビットが "0" の とき , 発振安定時間が現在進行中であることを示しています。発振安定時間は ,214 サ イクル(サブクロック)固定です。パワーオンリセット時およびストップ時に , 本ビッ トは "0" に初期化されます。 [bit5] WTIE 時計タイマによるインターバル割込みを許可するビットです。本ビットが "1" のとき に割込みを許可し ,"0" のときに割込みを禁止します。リセットにより本ビットは "0" に 初期化されます。読み書き可能なビットです。 169 第 11 章 時計タイマ [bit4] WTOF 時計タイマの割込みフラグです。WTIE ビットが "1" のときに ,WTOF を "1" に設定す ると割込み要求が発生します。本ビットは ,WTC1, WTC0 ビットで設定したインター バル時間ごとに "1" に設定されます。本ビットは ,"0" の書込み , ストップモードへの遷 移およびリセットによりクリアされます。"1" の書込みは動作に影響はありません。 リードモディファイライト命令による読出し時には , 常に "1" が読み出されます。 [bit3] WTR 時計タイマのカウンタを全ビット "0" にクリアするビットです。本ビットに "0" を書き 込むことにより , 時計カウンタをクリアします。"1" の書込みは動作に影響はありませ ん。常に "1" が読み出されます。 [bit2 ∼ bit0] WTC2, WTC1, WTC0 時計タイマのインターバル時間を設定するビットです。表 11.2-1 にインターバル時間 の設定を示します。リセットにより本ビットは "000B" に初期化されます。読み書き可 能なビットです。 本ビットに書き込むときには ,bit4(WTOF) もクリアしてください。 表 11.2-1 時計タイマ インターバル時間の設定 170 インターバル時間 (サブ発振クロック 32kHz) WTC2 WTC1 WTC0 0 0 0 31.25 ms 0 0 1 62.5 ms 0 1 0 125 ms 0 1 1 250 ms 1 0 0 500 ms 1 0 1 1.000 s 1 1 0 2.000 s 1 1 1 4.000 s 第 11 章 時計タイマ 11.3 時計タイマの動作 時計タイマは , ウォッチドッグカウンタのクロックソース , サブクロックの発振安定 待ち時間のためのタイマ , 一定周期ごとに割込みを発生するインターバルタイマとし ての機能があります。 ■ 時計タイマ 時計タイマは , サブクロックにより発生する発振入力をカウントする 15 ビットのカウ ンタにより構成され,サブクロックが入力されている間時計タイマはカウント動作を続 けます。時計タイマのクリアは , パワーオンリセットおよび時計タイマ制御レジスタ (WTC) 内の WTR ビットへの "0" の書き込みにより行われます。 < 注意事項 > • 時計タイマの出力を使用しているウォッチドッグカウンタとインターバル割込み は , 時計カウンタのクリアにより影響を受けます。 • 時計タイマ制御レジスタ (WTC) の WTR ビットへの "0" の書込みにより時計タイ マをクリアする場合は ,WTIE ビットに "0" を設定し , 時計タイマの割込みを禁止 した状態で行ってください。 また , 割込みを許可する前に ,WTOF フラグへの "0" の書込みによる割込み要求 のクリアを行ってください。 ■ 時計タイマのインターバル割込み機能 インターバル割込み機能は,時計カウンタの桁上り信号により一定周期ごとに割込みを 発生します。時計タイマ制御レジスタ (WTC) 内の WTC1, WTC0 ビットで設定される インターバル時間ごとに WTOF フラグをセットします。このフラグ設定のタイミング は , 最後に時計タイマがクリアされた時間を基準にして行われます。 ストップモードおよびハードウェアスタンバイモードに遷移すると,時計タイマは復帰 時のサブクロックの発振安定時間待ちのタイマとして使用されるので ,WTOFフラグは モード遷移と同時にクリアされます。 171 第 11 章 時計タイマ 172 第 12 章 16 ビット入出力タイマ 16 ビット入出力タイマの機能と動作について説明 します。 12.1 16 ビット入出力タイマの概要 12.2 16 ビット入出力タイマのレジスタ 12.3 16 ビットフリーランタイマ 12.4 アウトプットコンペア 12.5 インプットキャプチャ 173 第 12 章 16 ビット入出力タイマ 12.1 16 ビット入出力タイマの概要 MB90440G シリーズは ,16 ビットフリーランタイマモジュール 1 本 , アウトプット コンペアモジュール 2 本 , インプットキャプチャモジュール 4 本のモジュールから 構成され ,8 個の入力チャネルおよび 4 個の出力チャネルをサポートしています。こ こでは ,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 本を使用して出力端子を反転する。 • 出力端子の初期値を設定することが可能 • 割込みはコンペア一致により発生可能 174 第 12 章 16 ビット入出力タイマ ■ インプットキャプチャ ( モジュールごとに 2 チャネル ) インプットキャプチャモジュールは独立した 2 本の外部入力端子と対応した 16 ビット キャプチャレジスタ , コントロールレジスタにより構成されています。外部入力端子よ り入力された信号の任意エッジを検出することにより 16 ビットフリーランタイマ値を キャプチャレジスタに保持し , 同時に割込みを発生することができます。 • 外部入力信号の検出エッジを選択可能 - 立上りエッジ , 立下りエッジ , 両エッジから選択可能 • 2 本のインプットチャネルは独立して動作可能 • 割込みは外部入力信号の有効エッジにより発生可能 - インプットキャプチャの割込みによりインテリジェント I/O サービスを起動可能 ■ 16 ビット入出力タイマのブロックダイヤグラム 図 12.1-1 に ,16 ビット入出力タイマのブロックダイヤグラムを示します。 図 12.1-1 16 ビット入出力タイマのブロックダイヤグラム コントロールロジック 各ブロックへ 割込み 16ビットフリーランタイマ 16ビットタイマ1 内部データバス クリア アウトプットコンペア0 コンペアレジスタ0 アウトプットコンペア1 コンペアレジスタ1 ○ ○ T Q OUT0 T Q OUT1 エッジ選択 IN0 エッジ選択 IN1 インプットキャプチャ0 キャプチャレジスタ0 インプットキャプチャ1 キャプチャレジスタ1 175 第 12 章 16 ビット入出力タイマ 12.2 16 ビット入出力タイマのレジスタ 16 ビット入出力タイマのレジスタには , 次の 3 つがあります。 • 16 ビットフリーランタイマのレジスタ • 16 ビットアウトプットコンペアのレジスタ • 16 ビットインプットキャプチャのレジスタ ■ 16 ビット入出力タイマのレジスタ 図 12.2-1 16 ビット入出力タイマのレジスタ 16ビットフリーランタイマのレジスタ bit 15 0 アドレス:00006CH タイマカウンタデータレジスタ TCDT bit 7 アドレス:00006EH 0 タイマカウンタコントロール ステータスレジスタ TCCS 16ビットアウトプットコンペアのレジスタ bit 15 アドレス: 003928H 00392AH bit 15 アドレス: 000058H 0 OCCP0/OCCP1 アウトプットコンペアレジスタ0,1 0 OCS1 コンペアコントロールステータス レジスタ0,1 OCS0 16ビットインプットキャプチャのレジスタ bit 15 アドレス: 003918H 00391AH 0 インプットキャプチャ データレジスタ0,1 IPCP0/IPCP1 0 bit 7 アドレス:00004CH 176 ICS01 インプットキャプチャ コントロールステータスレジスタ0,1 第 12 章 16 ビット入出力タイマ 16 ビットフリーランタイマ 12.3 16 ビットフリーランタイマは ,16 ビットのアップカウンタとコントロールステータ スレジスタから構成されています。カウント値はアウトプットコンペア , インプット キャプチャの基本時間(ベースタイマ)として使用されます。 • カウントクロックは 4 種類から選択可能です。 • カウンタオーバフロー割込みを発生することができます。 • モード設定によりアウトプットコンペアのコンペアレジスタ 0 の値との一致に よるカウンタの初期化が可能です。 ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 12.3-1 16 ビットフリーランタイマのブロックダイヤグラム マシンクロック(φ) 割込み要求 内部データバス IVF IVFE STOP MODE CLR CLK1 CLK0 分周器 (TCCS) コンパレータ0 16ビットフリーランタイマ クロック T15~T00 カウント値出力 177 第 12 章 16 ビット入出力タイマ 12.3.1 16 ビットフリーランタイマのレジスタ データレジスタは ,16 ビットフリーランタイマのカウント値を読み出すことができ るレジスタです。カウンタ値はリセット時に "0000H" にクリアされます。このレジ スタに書き込むことで , タイマ値を設定できますが必ず停止 (STOP=1) 状態で行って ください。このレジスタはワードアクセスしてください。 ■ タイマカウンタデータレジスタ 図 12.3-2 タイマカウンタデータレジスタ タイマカウンタデータレジスタ1/2 bit 15 14 13 12 アドレス:00006DH T15 T14 T13 T12 リード/ライト (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) bit 7 アドレス:00006CH リード/ライト 初期値 T07 11 T11 10 T10 9 T09 8 T08 (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) 6 5 4 3 2 1 0 T06 T05 T04 T03 T02 T01 T00 TCDT (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • コントロールステータスレジスタのクリアビット (CLR) による初期化 • コンペアのコンペアレジスタ 0 とタイマカウンタ値の一致による初期化(モードの 設定が必要です。) 178 第 12 章 16 ビット入出力タイマ 12.3.2 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタは ,16 ビットフリーランタイマの動作モー ドの設定 , 起動・停止や割込みの制御を行います。 ■ タイマコントロールステータスレジスタ 図 12.3-3 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ(TCCS) bit 7 6 5 アドレス:00006EH リード/ライト 初期値 予約 IVF IVFE 4 3 STOP MODE 2 1 0 CLR CLK1 CLK0 TCCS (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) [bit7] 予約 : 予約ビット 本ビットには必ず "0" を書き込んでください。 [bit6] IVF 16 ビットフリーランタイマの割込み要求フラグです。 16 ビットフリーランタイマがオーバフローを起こしたとき , またはモード設定により コンペアレジスタ 0 とコンペア一致してカウンタクリアされたときに本ビットは "1" に セットされます。 割込み要求許可ビット (bit5:IVFE) がセットされていると割込みが発生します。 本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。 リードモディファイ系命令では "1" が読めます。 0 割込み要求なし(初期値) 1 割込み要求あり [bit5] IVFE 16 ビットフリーランタイマの割込み許可ビットです。本ビットが "1" のとき , 割込み フラグ (bit6:IVF) が "1" にセットされると割込みが発生します。 0 割込み禁止(初期値) 1 割込み許可 179 第 12 章 16 ビット入出力タイマ [bit4] STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。 "1" 書込み時にタイマのカウント停止。"0" 書込み時にタイマのカウントを開始。 < 注意事項 > 0 カウント許可(動作)(初期値) 1 カウント禁止(停止) 16 ビットフリーランタイマのカウントが停止すると , アウトプットコンペア動作 も停止。 [bit3] MODE 16 ビットフリーランタイマの初期化条件を設定します。 "0" のときはリセットとクリアビット (bit2:CLR) でカウンタ値を初期化可能。 "1" のときはリセットとクリアビット (bit2:CLR) のほかにアウトプットコンペアのコン ペアレジスタ 0 の値との一致によりカウンタ値を初期化することができます。 < 注意事項 > 0 リセット , クリアビットによる初期化(初期値) 1 リセット,クリアビット,コンペアレジスタ0による初期化 クリアビットとコンペアレジスタとの一致により , タイマ値の変化点でタイマの初 期値が行われます。 [bit2] CLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するビットです。 "1" 書込み時にカウンタ値を "0000H" に初期化。 "0" を書き込んでも意味を持ちません。 読出し値は常に "0" です。カウンタ値の初期化はカウント値の変化点で行われます。 < 注意事項 > 0 意味を持ちません(初期値) 1 カウンタ値を "0000H" に初期化します タイマ停止中に初期化する場合はデータレジスタに "0000H" を書き込んでください。 [bit1, bit0] CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択します。本ビットに書込み後す ぐにクロックは変更されますのでアウトプットコンペア,インプットキャプチャが停止 状態のときに変更してください。 CLK1 CLK0 カウントクロック分周比 φ=16MHz φ= 8MHz φ= 4MHz φ= 2MHz 0 0 φ/4 0.25µs 0.5µs 1µs 2µs 0 1 φ/16 1µs 2µs 4µs 8µs 1 0 φ/64 4µs 8µs 16µs 32µs 1 1 φ/256 16µs 32µs 64µs 128 µs φ: マシンクロック 180 第 12 章 16 ビット入出力タイマ 16 ビットフリーランタイマの動作 12.3.3 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作 カウンタ値は , 次の 5 つの条件でクリアされます。 • オーバフローが発生したとき。 • アウトプットコンペアレジスタ 0 値とコンペア一致したとき(モード設定が必要) 。 • 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき。 • 停止中に TCDC レジスタに "0000H" を書き込んだとき。 • リセット時 割込みはオーバフローが発生したときと , コンペアレジスタ 0 値とコンペア一致してカ ウンタクリアされたときに発生することができます(コンペア一致割込みはモード設 定が必要です)。 図 12.3-4 オーバフローによるカウンタクリア カウンタ値 オーバフロー FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み 図 12.3-5 アウトプットコンペアレジスタ 0 値とコンペア一致したときのカウンタクリア カウンタ値 FFFFH BFFFH 一致 一致 7FFFH 3FFFH 0000H 時間 リセット コンペア レジスタ値 割込み BFFFH 181 第 12 章 16 ビット入出力タイマ ■ 16 ビットフリーランタイマのタイミング 図 12.3-6 に示すように ,16 ビットフリーランタイマは , 入力されたクロック(内部また は外部クロック)によりカウントアップされます。外部クロック選択時は立上りエッ ジ↑でカウントされます。 図 12.3-6 16 ビットフリーランタイマのカウントタイミング マシンクロック(φ) 外部クロック入力 カウントクロック カウンタ値 N+1 N 図 12.3-7 に示すように , カウンタのクリアはリセット , ソフトウェアのクリア , コンペ アレジスタ 0 との一致で行うことができます。リセットとソフトウェアのクリアでの カウンタクリアはクリア発生とともに行われますが , コンペアレジスタ 0 との一致によ るカウンタクリアはカウントタイミングに同期して行われます。 図 12.3-7 16 ビットフリーランタイマのクリアタイミング(コンペアレジスタ 0 との一致) マシンクロック(φ) N コンペアレジスタ値 コンペア一致 カウンタ値 182 N 0000 第 12 章 16 ビット入出力タイマ アウトプットコンペア 12.4 アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 本のコ ンペア出力端子およびコントロールレジスタから構成されています。コンペアレジ スタに設定された値と 16 ビットフリーランタイマ値が一致したら , 端子の出力レベ ルを反転すると共に割込みを発生することができます。 ■ アウトプットコンペア • コンペアレジスタは全部で 2 本あり , 独立して動作させることができます。また , 設 定により 2 本のコンペアレジスタを使い端子の出力を制御可能です。 • 端子の出力初期値を設定することができます。 • 割込みはコンペア一致により発生可能です。 ■ アウトプットコンペアのブロックダイヤグラム 図 12.4-1 アウトプットコンペアのブロックダイヤグラム 16ビットタイマカウンタ値(T15~T00) コンペア制御 T Q コンペアレジスタ0 OTE0 OUT0 CMOD 内部データバス 16ビットタイマカウンタ値(T15~T00) T Q OTE1 OUT1 コンペア制御 コンペアレジスタ1 ICP1 ICP0 ICE1 ICE0 コントロール制御部 コンペア1割込み コンペア0割込み 各制御ブロック 183 第 12 章 16 ビット入出力タイマ 12.4.1 アウトプットコンペアのレジスタ 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。レジ スタ値は初期値不定ですので設定してから起動許可してください。本レジスタは ワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致 したときコンペア信号が発生してアウトプットコンペア割込みフラグをセットしま す。また , 出力許可をしている場合はコンペアレジスタに対応した出力レベルを反転 します。 ■ アウトプットコンペアのコンペアレジスタ 図 12.4-2 アウトプットコンペアレジスタ アウトプットコンペアレジスタ(OCCP0,OCCP1) bit 15 14 13 12 11 10 9 8 アドレス:003929H C15 C14 C13 C12 C11 C10 C09 C08 00392BH (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 bit 7 6 5 4 3 2 1 0 アドレス:003928H C07 C06 C05 C04 C03 C02 C01 C00 00392AH リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 184 OCCP0,OCCP1 第 12 章 16 ビット入出力タイマ 12.4.2 アウトプットコンペアのコントロールステータスレ ジスタ コントロールステータスレジスタは , アウトプットコンペアの動作モードの設定 , 起 動・停止や割込みの制御 , 外部出力端子の設定を行います。 ■ アウトプットコンペアのコントロールステータスレジスタ 図 12.4-3 コントロールステータスレジスタ コンペアコントロールステータスレジスタ(0/1) bit 15 14 13 アドレス:000059H リード/ライト 初期値 リード/ライト 初期値 11 10 CMOD OTE1 (-) (-) bit 7 アドレス:000058H 12 (-) (-) (-) (-) 6 9 8 OTE0 OTD1 OTD0 OCS1 (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) 5 4 3 ICP1 ICP0 ICE1 ICE0 (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) 2 1 0 CST1 CST0 (-) (-) OCS0 (-) (R/W) (R/W) (0) (-) (0) [bit15 ∼ bit13] − : 未使用ビット [bit12] CMOD 端子出力を許可した場合 (OTE1=1 OR 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 の一致によりレベルを反転します。 185 第 12 章 16 ビット入出力タイマ [bit11, bit10] OTE1,OTE0 アウトプットコンペアの端子出力を許可するビットです。本ビットは初期値 "0" です。 < 注意事項 > 0 汎用ポートとして動作します。(初期値) 1 アウトプットコンペア端子出力になります。 OTE1: アウトプットコンペア 1(OUT1) に対応 OTE0: アウトプットコンペア 0(OUT0) に対応 [bit9, bit8] OTD1, OTD0 アウトプットコンペアの端子出力を許可した場合の端子出力レベルを変更するときに 使用します。コンペア端子出力の初期値は "0" となります。書込み時はコンペア動作 を停止してから行ってください。読出し時はアウトプットコンペア端子出力値が読め ます。 < 注意事項 > 0 コンペア端子出力を "0" にします(初期値) 1 コンペア端子出力を "1" にします OTD1: アウトプットコンペア 1 に対応 OTD0: アウトプットコンペア 0 に対応 [bit7, bit6] ICP1, ICP0 アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリーラン タイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1, ICE0) が許 可されているときに本ビットがセットされるとアウトプットコンペア割込みが発生し ます。本ビットは "0" 書込みによりクリアされ ,"1" 書込みでは意味をもちません。リー ドモディファイ系命令では "1" が読めます。 < 注意事項 > 0 コンペア一致なし(初期値) 1 コンペア一致あり ICP1: アウトプットコンペア 1 に対応 ICP0: アウトプットコンペア 0 に対応 [bit5, bit4] ICE1, ICE0 アウトプットコンペアの割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP0, ICP1) がセットされるとアウトプットコンペア割込みが発生します。 < 注意事項 > 186 0 アウトプットコンペア割込み禁止(初期値) 1 アウトプットコンペア割込み許可 ICE1: アウトプットコンペア 1 に対応 ICE0: アウトプットコンペア 0 に対応 第 12 章 16 ビット入出力タイマ [bit3, bit2] − : 未使用ビット [bit1, bit0] CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。 0 コンペア動作禁止 ( 初期値 ) 1 コンペア動作許可 コンペア動作許可をする前にコンペアレジスタ値を設定してください。 < 注意事項 > CST1: アウトプットコンペア 1 に対応 CST0: アウトプットコンペア 0 に対応 < 注意事項 > アウトプットコンペアは ,16 ビットフリーランタイマのクロックと同期させてい るため 16 ビットフリーランタイマを停止させるとコンペア動作も停止します。 187 第 12 章 16 ビット入出力タイマ 12.4.3 16 ビットアウトプットコンペアの動作 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ リーランタイマとの値を比較して一致したら割込み要求フラグをセットするととも に , 出力レベルを反転することができます。 ■ コンペアレジスタ 0, 1 を使用したときの出力波形例(出力の初期値は "0" とする) 図 12.4-4 コンペアレジスタ 0, 1 を使用したときの出力波形例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OUT0 OUT1 コンペア0割込み コンペア1割込み コンペアレジスタ 0,1 を使い , 出力レベルを変えることができます(CMOD=0 のとき) 。 ■ 2 組のコンペアレジスタによる出力波形例(出力の初期値は "0" とする) 図 12.4-5 2 組のコンペアレジスタによる出力波形例(出力の初期値は "0" とする) カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OUT0 OUT1 コンペア0に 対応 コンペア0と 1に対応 コンペア0割込み コンペア1割込み 2組のコンペアレジスタを使い,出力レベルを変えることができます(CMOD=1のとき)。 188 第 12 章 16 ビット入出力タイマ ■ アウトプットコンペアのタイミング アウトプットコンペアは,フリーランタイマと設定したコンペアレジスタの値が一致し たときにコンペア一致信号が発生して出力値を反転するとともに割込みを発生するこ とができます。コンペア一致時の出力反転タイミングはカウンタのカウントタイミン グに同期して行われます。 図 12.4-6 に示すように , コンペアレジスタ書換え時のカウンタ値とはコンペアしませ ん。 図 12.4-6 コンペアレジスタ書換え時のコンペア動作 N+1 N+2 一致信号は発生しない。 N+1 N カウンタ値 コンペアレジスタ0値 M N+3 コンペアレジスタ0 書込み コンペアレジスタ1値 M N+3 コンペアレジスタ1 書込み コンペア0停止 コンペア1停止 図 12.4-7 にアウトプットコンペアの割込みタイミングを , 図 12.4-8 に , アウトプットコ ンペアの出力端子変化タイミングを示します。 図 12.4-7 アウトプットコンペアの割込みタイミング マシンクロック(φ) N+1 N カウンタ値 N コンペアレジスタ値 コンペアマッチ 割込み 図 12.4-8 アウトプットコンペアの出力端子変化タイミング カウンタ値 コンペアレジスタ値 N N N+1 N+1 N コンペアマッチ信号 端子出力 189 第 12 章 16 ビット入出力タイマ 12.5 インプットキャプチャ インプットキャプチャは外部から入力された信号の立上りエッジ , 立下りエッジまた は両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保持 する機能を持っています。また , エッジ検出時に割込みを発生することができます。 インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジ スタで構成されています。 ■ インプットキャプチャ 各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。 ● 外部入力の検出エッジを 3 種類から選択可能です。 • 立上りエッジ ( ↑ ) • 立下りエッジ ( ↓ ) • 両エッジ ( ↑↓ ) ● 外部入力の有効エッジを検出したときに割込みを発生することができます。 ■ インプットキャプチャのブロックダイヤグラム 図 12.5-1 インプットキャプチャの全体ブロックダイヤグラム キャプチャデータレジスタ0 内部データバス 16ビットタイマカウンタ値 (T15~T00) キャプチャデータレジスタ1 エッジ検出 IN0 EG11 EG10 EG01 EG00 エッジ検出 IN1 ICP1 ICP0 ICE1 ICE0 割込み 割込み 190 第 12 章 16 ビット入出力タイマ インプットキャプチャのレジスタ 12.5.1 インプットキャプチャのレジスタは , 次の 2 つがあり , 対応した外部端子入力波形の 有効エッジを検出したとき 16 ビットタイマ値を保持するレジスタです(ワードアク セスしてください。書込みはできません)。 ■ インプットキャプチャデータレジスタ 図 12.5-2 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ0/1 bit 15 14 13 12 11 10 9 8 アドレス:003919H CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 00391BH リード/ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) bit 7 アドレス:003918H 00391AH リード/ライト 初期値 6 5 4 3 2 1 0 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) IPCP0/IPCP1 (R) (X) ■ インプットキャプチャコントロールステータスレジスタ 図 12.5-3 インプットキャプチャコントロールステータスレジスタ インプットキャプチャコントロールステータスレジスタ0/1 bit 7 6 5 4 3 2 1 0 アドレス:00004CH ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 リード/ライト 初期値 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ICS01 [bit7, bit6] ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると本 ビットを "1" にセットします。割込み許可ビット (ICE0, ICE1) がセットされていると有 効エッジを検出することにより割込みを発生することができます。 本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リード モディファイライト系命令では "1" が読めます。 < 注意事項 > 0 有効エッジ検出なし(初期値) 1 有効エッジ検出あり ICP0: インプットキャプチャ 0 に対応 ICP1: インプットキャプチャ 1 に対応 191 第 12 章 16 ビット入出力タイマ [bit5, bit4] ICE1, ICE0 インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP0, ICP1) がセットされるとインプットキャプチャ割込みが発生します。 < 注意事項 > 0 割込み禁止(初期値) 1 割込み許可 ICE0: インプットキャプチャ 0 に対応 ICE1: インプットキャプチャ 1 に対応 [bit3 ∼ bit0] EG11, EG10, EG01, EG00 外部入力の有効エッジ極性を指定します。インプットキャプチャ動作許可も兼用して います。 < 注意事項 > 192 EG11 EG01 EG10 EG00 0 0 エッジ検出なし(停止状態)(初期値) 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑↓ エッジ検出極性 EG01, EG00: インプットキャプチャ 0 に対応 EG11, EG10: インプットキャプチャ 1 に対応 第 12 章 16 ビット入出力タイマ 16 ビットインプットキャプチャの動作 12.5.2 16 ビットインプットキャプチャは設定された有効エッジを検出すると 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することとが できます。 ■ インプットキャプチャの取り込みタイミング例 • キャプチャ 0= 立上りエッジ • キャプチャ 1= 立下りエッジ • キャプチャ例 = 両エッジ(例として) 図 12.5-4 インプットキャプチャの取り込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット IN0 IN1 IN例 キャプチャ0 不定 キャプチャ1 不定 キャプチャ例 不定 3FFFH 7FFFH BFFFH 3FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ例割込み キャプチャ0=立上りエッジ キャプチャ1=立下りエッジ キャプチャ例=両エッジ(例として) ■ インプットキャプチャ入力タイミング 図 12.5-5 入力信号に対するキャプチャタイミング マシンクロック(φ) カウンタ値 インプットキャプチャ 入力 N N+1 有効エッジ キャプチャ信号 インプットキャプチャ レジスタ N+1 割込み 193 第 12 章 16 ビット入出力タイマ 194 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 16 ビットリロードタイマ ( イベントカウント機能 付 ) の機能と動作について説明します。 13.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 13.2 16 ビットリロードタイマのレジスタ 13.3 16 ビットリロードタイマの内部クロック動作と外部 クロック動作 13.4 16 ビットリロードタイマのアンダフロー動作 13.5 16 ビットリロードタイマの出力端子機能 13.6 カウンタの動作状態 195 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 13.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 16 ビットリロードタイマ 1 は ,16 ビット のダウンカウンタ ,16 ビット のリロードレ ジスタ , 入力端子 1 本 (TIN), 出力端子 1 本 (TOT) およびコントロールレジスタで構 成されています。入力クロックとして内部クロック 3 種類と外部クロックを選択で きます。 ■ 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 出力端子 (TOT) には , リロードモード時にはトグル出力波形を出力し , ワンショット モード時にはカウント中を示す矩形波を出力します。入力端子 (TIN) は , イベントカウ ントモード時にイベント入力となり , 内部クロックモード時にはトリガ入力 , または ゲート入力に使用することができます。 MB90440G シリーズの 16 ビットリロードタイマは 2 つです。 ■ インテリジェント I/O サービス (EI2OS) 機能と割込み 本タイマは EI2OS 対応の回路を有しています。このため , 本タイマのアンダフローに より EI2OS を起動させることができます。 ■ 16 ビットリロードタイマのブロックダイヤグラム 図 13.1-1 に ,16 ビットリロードタイマのブロックダイヤグラムを示します。 図 13.1-1 16 ビットリロードタイマのブロックダイヤグラム 16 / 16ビットリロードレジスタ / 8 リロード RELD 16ビットダウンカウンタ / 16 OUTE 内部データバス OUTL 2 / OUT CTL. GATE クロックセレクタ EXCK CNTE CSL0 TRG φ φ φ 21 23 25 プリスケーラ クリア マシンクロック IRQ クリア EI 2 OS CLR ポート(TIN) IN CTL 出力許可 /3 MOD2 MOD1 196 UF CSL1 トリガ / 2 / 3 INTE MOD0 ポート(TOT) UARTボーレート(ch.0のみ) A/Dコンバータ(ch.1のみ) 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) ■ 16 ビットリロードタイマ 本タイマは 2 つ内蔵されており , 入力端子名 (TIN) と出力端子名 (TOT) は以下のように なります。 入力端子名 (TIN) 出力端子名 (TOT) タイマ 1 TIN0 TOT0 タイマ 2 TIN1 TOT1 197 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 13.2 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタには , 次の 2 種類があります。 • タイマコントロールステータスレジスタ (TMCSR) • 16 ビットタイマレジスタ /16 ビットリロードレジスタ (TMR/TMRLR) ■ 16 ビットリロードタイマのレジスタ 図 13.2-1 16 ビットリロードタイマのレジスタ タイマコントロールステータスレジスタ(上位) bit 15 14 13 12 アドレス:ch.0 000051H ch.1 000055H リード/ライト 初期値 (-) (-) タイマコントロールステータスレジスタ(下位) bit 7 6 5 リード/ライト 初期値 10 9 8 CSL1 CSL0 MOD2 MOD1 (-) (-) アドレス:ch.0 000050H ch.1 000054H 11 (-) (-) (-) (-) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) 4 3 MOD0 OUTE OUTL RELD INTE 2 UF 1 0 CNTE TRG TMCSR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 16ビットタイマレジスタ/16ビットリロードレジスタ(上位) bit 15 14 13 12 11 10 9 8 アドレス:ch.0 000053H ch.1 000057H リード/ライト 初期値 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 16ビットタイマレジスタ/16ビットリロードレジスタ(下位) bit 7 6 5 4 アドレス:ch.0 000052H ch.1 000056H リード/ライト 初期値 198 3 2 1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 0 TMR/ TMRLR 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 13.2.1 タイマコントロールステータスレジスタ (TMCSR) 16 ビットタイマの動作モードおよび割込みの制御をします。UF, CNTE, TRG ビッ ト以外のビットの書換えは ,CNTE=0 のときに行うようにしてください。 ■ タイマコントロールステータスレジスタ (TMCSR) 図 13.2-2 タイマコントロールステータスレジスタ (TMCSR) タイマコントロールステータスレジスタ(上位) bit 15 14 13 12 アドレス:ch.0 000051H ch.1 000055H リード/ライト 初期値 11 CSL1 (-) (-) (-) (-) タイマコントロールステータスレジスタ(下位) bit 7 6 5 4 RELD INTE アドレス:ch.0 000050H ch.1 000054H リード/ライト 初期値 (-) (-) (-) (-) MOD0 OUTE OUTL 10 CSL0 9 MOD2 8 MOD1 (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) 3 UF 2 1 CNTE TRG 0 TMCSR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) [bit11, bit10] CSL1, CSL0 (Clock SeLect1, 0) カウントクロックセレクトビットです。選択されるクロックソースを , 表 13.2-1 に示 します。 表 13.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 ∼ bit7] MOD2, MOD1, MOD0 動作モードおよび入出力端子の機能を設定するビットです。 MOD2 ビットは , 入出力の機能を選択するビットです。"0" の場合 , 入力端子はトリガ 入力端子となり,有効エッジが入力されるとリロードレジスタの内容をカウンタへロー ドし , カウント動作を継続します。"1" の場合 , ゲートカウンタモードになり , 入力端 子はゲート入力となり , 有効レベルが入力されている間のみカウントをします。 MOD1, MOD 0 ビットは , 各モードにおける端子の機能の設定を行います。MOD2 ∼ MOD0 ビットの設定を 表 13.2-2 および 表 13.2-3 に示します。 199 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 表 13.2-2 MOD2 ∼ MOD0 ビットの設定方法 (1) MOD2 MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 0 トリガ禁止 − 0 0 1 0 1 0 0 1 1 1 × 0 立上りエッジ 立下りエッジ トリガ入力 両エッジ "L" レベル ゲート入力 1 1 × "H" レベル • 内部クロックモード時 (CSL0, CLS1=00, 01, 10) • 表中の×は , 任意の値 表 13.2-3 MOD2 ∼ MOD ビットの設定方法 (2) MOD2 MOD1 MOD0 入力端子機能 有効エッジ , レベル 0 0 − − 0 1 1 0 1 1 立上りエッジ × トリガ入力 立下りエッジ 両エッジ • イベントカウントモード時 (CSL0, CLS1=11) • 表中の×は , 任意の値 [bit6] OUTE 出力許可ビットです。"0" のとき TOT 端子は汎用ポートになり ,"1" のとき TOT 端子は タイマ出力端子になります。出力波形はリロードモード時トグル出力となり , ワン ショットモード時はカウンタ中を示す矩形波出力になります。 [bit5] OUTL TOT 端子の出力レベルを設定するビットです。 表 13.2-4 OUTE, RELD, OUTL の設定方法 200 OUTE RELD OUTL 0 × × 汎用ポート 1 0 0 カウント中 "H" の矩形波 1 0 1 カウント中 "L" の矩形波 1 1 0 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 第 13 章 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 のときには , なにもおこりません。 201 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 13.2.2 16 ビットタイマレジスタ (TMR) /16 ビットリロード レジスタ (TMRLR) のレジスタ配置 TMR 内容(リード時): 16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定 です。このレジスタの読出しは , 必ずワード転送命令で行ってください。 TMRLR 内容(ライト時): 16 ビットリロードレジスタは , カウントの初期値を保持しておくレジスタです。初 期値は不定です。このレジスタへの書込みは , 必ずワード転送命令で行ってくださ い。 ■ 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) 図 13.2-3 16 ビットタイマレジスタ (TMR) /16 ビットリロードレジスタ (TMRLR) 16ビットタイマレジスタ/16ビットリロードレジスタ(上位) bit 15 14 13 12 11 10 9 8 アドレス:ch.0 000053H ch.1 000057H リード/ライト 初期値 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 16ビットタイマレジスタ/16ビットリロードレジスタ(下位) bit 7 6 5 4 アドレス:ch.0 000052H ch.1 000056H リード/ライト 初期値 202 3 2 1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 0 TMR/ TMRLR 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 13.3 16 ビットリロードタイマの内部クロック動作と外部ク ロック動作 内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ ンクロックの 21, 23, 25 分周のクロックから選択することができます。外部入力端子 は , レジスタの設定により , トリガ入力またはゲート入力にすることができます。 外部クロックをセレクトすると TIN 端子は , 外部イベント入力端子となりレジスタ で設定された有効エッジをカウントします。 ■ 16 ビットリロードタイマの内部クロック動作 カウント許可と同時にカウント動作を開始したい場合は , コントロールレジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビットによるト リガ入力は,タイマが起動状態のとき(CNTE=1) 動作モードにかかわらず常に有効です。 図 13.3-1 に , カウンタの起動およびカウンタの動作について示します。カウンタスター トのトリガが入力されてからリロードレジスタのデータがカウンタへロードされるま でに ,T(T: マシンサイクル)の時間がかかります。 図 13.3-1 16 ビットリロードタイマのカウンタの起動および動作 カウントクロック カウンタ リロードデータ -1 -1 -1 データロード CNTE(ビット) TRG(ビット) T ■ 16 ビットリロードタイマの入力端子機能(内部クロックモード時) クロックソースとして,内部クロックを選択した場合,TIN端子はトリガ入力またはゲー ト入力として使用することができます。トリガ入力として使用した場合 , 有効エッジが 入力されるとリロードレジスタの内容をカウンタにロードして,内部プリスケーラをク リアした後 , カウント動作を開始します。 TIN は ,2・T(T はマシンサイクル)以上のパルスを入力してください。図 13.3-2 に , トリガ入力の動作を示します。 203 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 図 13.3-2 16 ビットリロードタイマのトリガ入力の動作 カウントクロック TIN端子 立上りエッジ検出時 プリスケーラ カウンタ 0000H -1 リロードデータ -1 -1 ロード 2T~ 2.5T ゲート入力として使用する場合 , コントロールレジスタの MOD0 ビットにより設定され る有効レベルが ,TIN 端子から入力されている間のみカウントをします。このときカウ ントクロックは , 止まらずに動き続けます。ゲートモード時のソフトウェアトリガは , ゲートレベルにかかわらず可能です。TIN 端子のパルス幅は ,2・T(T はマシンサイク ル)以上にしてください。図 13.3-3 に , ゲート入力の動作を示します。 図 13.3-3 16 ビットリロードタイマのゲート入力の動作 カウントクロック TIN端子 MOD0=1とした場合(入力"H"のカウント) -1 カウンタ -1 -1 ■ 外部イベントカウント 外部クロックをセレクトすると TIN 端子は , 外部イベント入力端子となりレジスタで 設定された有効エッジをカウントします。TIN 端子のパルス幅は ,4・T(T はマシンサ イクル)以上にしてください。 204 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 13.4 16 ビットリロードタイマのアンダフロー動作 16 ビットリロードタイマにより , カウンタ値が "0000H" から "FFFFH" に変化した ときにアンダフローが定義されますので ,(リロードレジスタ設定 +1)カウントの後 でアンダフローが生じます。 ■ 16 ビットリロードタイマのアンダフロー動作 アンダフロー発生時 , コントロールレジスタの RELD ビットが "1" のときリロードレジ スタの内容をカウンタへロードしてカウント動作を継続し ,"0" のときカウンタを FFFFH で停止させます。 アンダフローが発生すると , コントロールレジスタの UF ビットをセットし , このとき に INTE ビットが "1" であると割込み要求を発生します。 図 13.4-1 と図 13.4-2 に , アンダフロー発生時の動作を示します。 図 13.4-1 16 ビットリロードタイマのアンダフロー動作 [RELD=1 の場合 ] カウントクロック カウンタ 0000H リロードデータ -1 -1 -1 データロード アンダフローセット 図 13.4-2 16 ビットリロードタイマのアンダフロー動作 [RELD=0 の場合 ] カウントクロック カウンタ 0000H FFFFH アンダフローセット 205 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 16 ビットリロードタイマの出力端子機能 13.5 TOT 端子はリロードモード時には , アンダフローにより反転するトグル出力として , ワンショットモード時には , カウント中を示すパルス出力として機能します。 ■ 16 ビットリロードタイマの出力端子機能 16 ビットリロードタイマの出力極性は , レジスタの OUTL ビットにより設定でき OUTL=0 のときトグル出力は , 初期値が "0" で , ワンショットパルス出力は , カウント 中 "1" を出力します。OUTL=1 にすると出力波形は , 反転します。図 13.5-1 と図 13.5-2 に出力端子機能を示します。 図 13.5-1 16 ビットリロードタイマの出力端子機能 (RELD=1, OUTL=0 の場合) カウント開始 アンダフロー TOT OUTL=1のときは反転 汎用ポート CNTE 起動トリガ 図 13.5-2 16 ビットリロードタイマの出力端子機能 (RELD=0, OUTL=0 の場合) アンダフロー TOT OUTL=1で反転 汎用ポート CNTE 起動トリガ 起動トリガ待ち状態 206 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 13.6 カウンタの動作状態 カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号 によって決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態(STOP 状態),CNTE=1, WAIT=1 の起動トリガ待ち状態(WAIT 状態), CNTE=1, WAIT=0 の動作状態(RUN 状態)があります。 ■ カウンタの動作状態 図 13.6-1 に , 各状態の遷移を示します。 図 13.6-1 カウンタの状態遷移 リセット STOP ハードウェアによる状態遷移 CNTE=0,WAIT=1 TIN端子:入力禁止 レジスタアクセスによる状態遷移 TOT端子:汎用ポート カウンタ:停止時の値を保持 リセット直後は不定 CNTE=0 WAIT CNTE=0 CNTE=1 CNTE=1 TRG=0 TRG=1 CNTE=1,WAIT=1 RUN TIN端子 :TIN端子として機能 TIN端子 :トリガ入力のみ有効 TOT端子 :初期値出力 TOT端子 :TOT端子として機能 RELD・UF カウンタ:停止時の値を保持 リセット直後ロード するまでは不定 カウンタ:動作 TRG=1 TINから起動 CNTE=1,WAIT=0 LOAD TRG=1 CNTE=1,WAIT=0 リロードレジスタの内容を カウンタへロード RELD・UF ロード終了 207 第 13 章 16 ビットリロードタイマ ( イベントカウント機能付 ) 208 第 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 の各ハードウェアの初期値 209 第 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 出力 2ch 独立動作モード 2ch の独立した PPG 出力動作が可能です。 ● 16 ビット PPG 出力動作モード 1ch の 16 ビットの PPG 出力動作が可能です。 ● 8+8 ビット PPG 出力動作モード ch.0 の出力を ch.1 のクロック入力とすることにより , 任意周期の 8 ビット PPG 出力動 作が可能です。 ● PPG 出力動作 任意周期・デューティ比のパルス波を出力します。外付け回路により D/A コンバータ としても使用可能です。 < 注意事項 > MB90440G シリーズには ,4 本の PPG があります。次節では PPG0/1 の機能につい てのみ記述します。残りの PPG も同じ機能を持ちますが , レジスタアドレスについ ては ,「 付録 A I/O マップ」を参照してください。ch.0 の PPG の出力信号は , どの 外部端子にも接続されていません。 210 第 14 章 8/16 ビット PPG 14.2 8/16 ビット PPG のブロックダイヤグラム 図 14.2-1 に ,8/16 ビット PPG(ch.0) のブロックダイヤグラムを , 図 14.2-2 に ,8/16 ビット PPG(ch.1) のブロックダイヤグラムを示します。 ■ 8/16 ビット PPG のブロックダイヤグラム 図 14.2-1 8 ビット PPG(ch.0) のブロックダイヤグラム PPG00出力許可 PPG00 周辺クロック 周辺クロック 周辺クロック 周辺クロック 周辺クロック 16分周 8分周 4分周 2分周 MB90440Gシリーズでは,この信号は 外部端子に接続していません。 PPGO 出力ラッチ 反転 クリア PEN0 カウントクロック 選択 PCNT(ダウンカウンタ) タイムベースタイマ出力 メインクロックの512分周 リロード L/Hセレクト MB90440Gシリーズでは,この IRQ信号はOR論理によりチャネル1 のIRQ信号とマージされます。 S R Q IRQ ch1-ボロー L/Hセレクタ PRLL0 PRLBH0 PIE0 PRLH0 PUF0 L側データバス H側データバス PPGC0 ( 動作モード制御 ) 211 第 14 章 8/16 ビット PPG 図 14.2-2 8 ビット PPG(ch.1) のブロックダイヤグラム PPG10出力許可 PPG10 周辺クロック 周辺クロック 周辺クロック 周辺クロック 周辺クロック 16分周 8分周 4分周 2分周 MB90440Gシリーズは,この端子は 「PPG0」外部端子に接続しています。 PPG1 出力ラッチ 反転 クリア PEN1 カウントクロック 選択 S R Q PCNT(ダウンカウンタ) ch.0-ボロー タイムベースカウンタ出力 メインクロックの512分周 L/Hセレクト MB90440Gシリーズは,このIRQ 信号はOR論理によりチャンネル0の IRQ信号とマージされます。 IRQ リロード L/Hセレクタ PRLL1 PRLBH1 PIE1 PRLH1 PUF1 L側データバス H側データバス PPGC1 ( 動作モード制御 ) 図 14.2-3 PPG モジュールと外部端子の関係 PPG 0/1 PPG0 PPG 2/3 PPG1 PPG 4/5 PPG2 PPG 6/7 PPG3 外部端子 212 第 14 章 8/16 ビット PPG 14.3 8/16 ビット PPG のレジスタ 8/16 ビット PPG のレジスタには , 次の 5 つがあります。 • PPG0 動作モード制御レジスタ • PPG1 動作モード制御レジスタ • PPG0, PPG1 クロック選択レジスタ • リロードレジスタ H • リロードレジスタ L ■ 8/16 ビット PPG のレジスタ 図 14.3-1 8/16 ビット PPG のレジスタ PPG0動作モード制御レジスタ 7 bit アドレス:ch.0 000038H アドレス:ch.1 000039H リード/ライト 初期値 5 PEN0 リード/ライト 初期値 PPG1動作モード制御レジスタ 6 4 3 2 1 PE00 PIE0 PUF0 予約 (R/W) (-) (R/W) (R/W) (R/W) (-) (0) (-) (0) (0) (0) (-) bit 15 0 14 13 PEN1 12 11 PE10 PIE1 PUF1 (W) (1) (-) (-) 10 9 MD1 MD0 PPGC0 8 PPGC1 予約 (R/W) (-) (R/W) (R/W) (R/W) (R/W) (R/W) (W) (0) (-) (0) (0) (0) (0) (0) (1) PPG0/1クロック選択レジスタ 7 bit アドレス:ch.0 00003AH ch.1 リード/ライト 初期値 リロードレジスタH アドレス:ch.0 003901H ch.1 003903H リード/ライト 初期値 リロードレジスタL アドレス:ch.0 003900H ch.1 003902H リード/ライト 初期値 6 5 4 3 2 1 0 PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) bit 15 14 13 12 11 PPGO1 (-) (-) 10 (-) (-) 9 8 PRLH0/ PRLH1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) bit 7 6 5 4 3 2 1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 0 PRLL0/ PRLL1 213 第 14 章 8/16 ビット PPG 14.3.1 PPG0 動作モード制御レジスタ (PPGC0) 動作モード制御レジスタ (PPGC0) は , ブロックの動作モードの選択 , 端子出力制御 , カウントクロック選択 , トリガの制御を行う 5 ビットの制御レジスタです。 ■ PPG0 動作モード制御レジスタ (PPGC0) 図 14.3-2 PPG0 動作モード制御レジスタ (PPGC0) PPG0動作モード制御レジスタ アドレス:ch.0 000038H リード/ライト 初期値 bit 7 6 PEN0 (R/W) (0) (-) (-) 5 4 3 PE00 PIE0 PUF0 (R/W) (R/W) (R/W) (0) (0) (0) 2 1 0 予約 (-) (-) (-) (-) PPGC0 (W) (1) [bit7] PEN0(PPG enable): 動作許可ビット PPG のカウンタ動作を許可します。 PEN0 動作状態 0 動作停止("L" レベル出力保持) 1 PPG 動作許可 本ビットに "1" を書き込むことで ,PPG はカウントを開始します。 リセットにより , 本ビットは "0" に初期化されます。読出し / 書込みが可能です。 [bit5] PE00(PPG output enable 00):PPG00 端子出力許可ビット パルス出力外部端子 PPG00 を以下のように制御します。 PE00 動作状態 0 汎用ポート端子(パルス出力禁止) 1 PPG00= パルス出力端子(パルス出力許可) リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 MB90440G シリーズについては , 本ビットを常に "0" に設定する必要があります。 214 第 14 章 8/16 ビット PPG [bit4] PIE0(PPG Interrupt enable):PPG の割込み許可ビット PPG の割込み許可を以下のように制御します。 PIE0 動作状態 0 割込み禁止 1 割込み許可 本ビットが "1" のとき ,PUF0 が "1" になると割込み要求を発生します。本ビットが "0" のときは割込み要求を発生しません。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 [bit3] PUF0(PPG underflow flag):PPG カウンタアンダフロービット PPG のカウンタアンダフロービットを以下のように制御します。 PUF0 動作状態 0 PPG のカウンタアンダフローが検出していません 1 PPG のカウンタアンダフローを検出しました 8 ビット PPG 2ch モードおよび 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 のカウンタの値が 00H ∼ FFH へなったときのアンダフローにより "1" にセットさ れます。16ビット PPG モードのときには, ch.1/ch.0のカウンタの値が"0000H"∼ "FFFFH" へなったときのアンダフローにより "1" にセットされます。"0" の書込みにより "0" に なります。このビットへの "1" 書込みは , 意味がありません。リードモディファイライ トのリード時には "1" が読まれます。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 [bit0] 予約 : 予約ビット 予約ビットです。PPGC0 を設定するときは必ず "1" に設定してください。 本ビットは常に "1" が読まれます。 215 第 14 章 8/16 ビット PPG 14.3.2 PPG1 動作モード制御レジスタ (PPGC1) PPG1 動作モード制御レジスタ (PPGC1) は , ブロックの動作モードの選択 , 端子出 力制御 , カウントクロック選択 , トリガの制御を行う 7 ビットの制御レジスタです。 ■ PPG1 動作モード制御レジスタ (PPGC1) 図 14.3-3 PPG1 動作モード制御レジスタ (PPGC1) PPG1動作モード制御レジスタ bit 15 アドレス:ch.1 000039H PEN1 リード/ライト 初期値 (R/W) (0) 14 (-) (-) 13 12 11 10 9 PE10 PIE1 PUF1 MD1 MD0 (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) 8 予約 PPGC1 (W) (1) [bit15] PEN1(PPG enable): 動作許可ビット PPG のカウンタ動作を許可します。 PEN1 動作状態 0 動作停止("L" レベル出力保持) 1 PPG 動作イネーブル 本ビットを "1" に設定することでカウンタ動作を許可します。 リセットにより , 本ビットは "0" に初期化されます。読出し / 書込みが可能です。 [bit13] PE10(PPG output enable 10):PPG10 端子出力許可ビット パルス出力外部端子 PPG10 を以下のように制御します。 PE10 動作状態 0 汎用ポート端子(パルス出力禁止) 1 PPG10= パルス出力端子(パルス出力許可) リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 MB90440G シリーズについては , パルス信号は「PPG0」外部端子に出力されます。 216 第 14 章 8/16 ビット PPG [bit12] PIE1(PPG Interrupt enable):PPG の割込み許可ビット PPG の割込み許可を以下のように制御します。 PIE1 動作状態 0 割込み禁止 1 割込み許可 本ビットが "1" のとき ,PUF1 が "1" になると割込み要求を発生します。本ビットが "0" のときは割込み要求を発生しません。 リセットにより , 本ビットは "0" に初期化されます。本ビットは , 読出し / 書込みが可 能です。 [bit11] PUF1(PPG underflow flag):PPG カウンタアンダフロービット PPG のカウンタアンダフロービットを以下のように制御します。 PUF1 動作状態 0 PPG のカウンタアンダフローを検出していません 1 PPG のカウンタアンダフローを検出しました 8 ビット PPG 2ch モードおよび 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.1 のカウンタの値が "00H" ∼ "FFH" へなったときのアンダフローにより "1" にセットさ れます。16 ビット PPG モードのときには ,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 ビット PPG 2ch 独立モード 0 1 8 ビットプリスケーラ +8 ビット PPG 1ch モード 1 0 予約(設定禁止) 1 1 16 ビット PPG 1ch モード 動作モード リセットにより , 本ビットは "00B" に初期化されます。本ビットは , 読出し / 書込みが 可能です。 217 第 14 章 8/16 ビット PPG < 注意事項 > • MD1, MD0 ビットを "10" に設定しないでください。 • MD1, MD0 ビットを "01" に設定する場合には ,PPGC0 の PEN0 ビット /PPGC1 の PEN1 ビットを "01" に設定しないでください。また , PEN0 ビットおよび PEN1 ビットを同時に "11" または "00" にセットすることを推奨します。 • MD1, MD0 ビットを "11" に設定する場合には ,PPGC0/PPGC1 をワード転送で 書き換え , PEN0 ビットおよび PEN1 ビットを同時に "11" または "00" にセット してください。 [bit8] 予約 : 予約ビット 予約ビットです。PPGC1 を設定するときは必ず "1" に設定してください。 本ビットは常に "1" が読まれます。 218 第 14 章 8/16 ビット PPG PPG0/1 クロック選択レジスタ (PPG01) 14.3.3 PPG0/1 クロック選択レジスタ (PPG01) は ,PPG の動作クロックの制御を行う 8 ビットの制御レジスタです。 ■ PPG0/1 クロック選択レジスタ (PPG01) 図 14.3-4 PPG0/1 クロック選択レジスタ (PPG01) PPG0/1クロック選択レジスタ bit 7 6 5 4 3 2 アドレス:ch.0/ 00003AH PCS2 PCS1 PCS0 PCM2 PCM1 PCM0 ch.1 リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) 1 0 PPGO1 (-) (-) (-) (-) [bit7 ∼ bit5] PCS2 ∼ PCS0 (PPG count select): カウントクロック選択ビット ch.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 時) リセットにより本ビットは "000B" に初期化されます。本ビットは , 読出し / 書込みが 可能です。 < 注意事項 > 8 ビットプリスケーラ +8 ビット PPG モードおよび 16 ビット PPG モードのときに は , ch.1 の PPG は ,ch.0 からカウントクロックを受けて動作するため , これらの ビットの設定は , 無効になります。 [bit4 ∼ bit2] PCM2 ∼ PCM0(PPG Count Mode): カウントクロック選択ビット ch.0 のダウンカウンタの動作クロックを , 次のように選択します。 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 時) 動作モード リセットにより本ビットは "000B" に初期化されます。本ビットは , 読出し / 書込みが 可能です。 219 第 14 章 8/16 ビット PPG 14.3.4 リロードレジスタ (PRLL, PRLH) リロードレジスタ (PRLL, PRLH) は , ダウンカウンタ PCNT へのリロード値を保持 する , 各 8 ビットのレジスタです。PRLL, PRLH レジスタは , どちらも読出し / 書込 みが可能です。 ■ リロードレジスタ (PRLL, PRLH) 図 14.3-5 リロードレジスタ (PRLL, PRLH) リロードレジスタH アドレス:ch.0 003901H ch.1 003903H リード/ライト 初期値 リロードレジスタL アドレス:ch.0 003900H ch.1 003902H リード/ライト 初期値 bit 15 14 13 220 11 10 9 8 PRLH0/ PRLH1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) bit 7 6 5 4 3 2 1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) レジスタ名 < 注意事項 > 12 0 PRLL0/ PRLL1 機能 PRLL L 側リロード値保持 PRLH 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 ユニットが 2ch あり ,2ch 独立モード以外 に , 8 ビットプリスケーラ +8 ビット PPG モードと ,16 ビット PPG 1ch モードの計 3 種類の動作を行うことができます。 ■ 8/16 ビット PPG の動作 8 ビット長の PPG ユニットそれぞれは ,8 ビット長のリロードレジスタが "L" 側と "H" 側の 2 本あります (PRLL, PRLH)。このレジスタに書き込まれた値が ,8 ビットダウンカ ウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとにダウン カウントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反転 させます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した "L" 幅 / "H" 幅をもつパルス出力となります。 表 14.4-1 に , リロード動作とパルス出力の関係を示します。 表 14.4-1 リロード動作とパルス出力の関係 リロード動作 端子出力変化 PRLH → PCNT PPG0/1[0 → 1] 立上り PRLL → PCNT PPG0/1[1 → 0] 立下り また ,PPGC0 中の bit4(PIE0) が "1" のときおよび PPGC1 中の bit12(PIE1) が "1" のとき , それ ぞれのカウンタの "00H" ∼ "FFH" へのボロー(16 ビット PPG モードの場合には , "0000H" ∼ "FFFFH" へのボロー)によって割込み要求が出力されます。 ■ 8/16 ビット PPG の動作モード 8/16 ビット PPG の動作モードには ,2ch 独立モードと ,8 ビットプリスケーラ +8 ビット PPG モードと , 16 ビット PPG 1ch モードの計 3 種類の動作モードがあります。 ● 2ch 独立モード 2ch 独立モードは ,8 ビット PPG として 2ch 独立に動作させる動作モードです。PPG00 端子は , ch.0 の PPG 出力が接続され ,PPG10 端子は ,ch.1 の PPG 出力が接続されます。 ● 8 ビットプリスケーラ +8 ビット PPG モード 8 ビットプリスケーラ +8 ビット PPG モードは , ch.0 を 8 ビットプリスケーラとして動 作させ , ch.1 を ch.0 のボロー出力でカウントすることにより , 任意周期の 8 ビット PPG 波形を出力できるようにする動作モードです。PPG00 端子は , ch.0 のプリスケーラ出 力が接続され ,PPG10 端子は , ch.1 の PPG 出力が接続されます。 ● 16 ビット PPG 1ch モード 16 ビット PPG 1ch モードは , ch.0 と ch.1 を連結させて ,16 ビットの PPG として動作さ せる動作モードです。PPG00 端子と PPG10 端子は , 両方とも 16 ビット PPG 出力が接 続されます。 MB90440G シリーズについては , ch.0 の PPG からの出力信号は外部端子には接続して いません。 221 第 14 章 8/16 ビット PPG ■ 8/16 ビット PPG の出力動作 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 レベルを保持します。MB90440G シリーズにつ いては , ch.0 の PPG からの出力信号は外部端子には接続していません。 8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 を停止状態で ,ch.1 を動 作状態に設定しないでください。 16 ビット PPG モードのとき ,PPGC0 レジスタの bit7(PEN0) と PPGC1 レジスタの bit15(PEN1) が同時に開始 , または停止していることを確認してください。 次の図は ,PPG 出力動作を示しています。PPG の動作中 , パルス波は振動数と効率の割合("H" レベル と "L" レベルのパルス波である時間の割合)で出力しつづけ ,PPG は停止が指定される まで動作します。 図 14.4-1 PPG 出力動作の出力波形 PEN PENにより動作開始(L側から) 出力端子 PPG T×(L+1) T×(H+1) (スタート) L:PRLLの値 H:PRLHの値 T:周辺クロック(φ, φ/4, φ/16) または,タイムベースカウンタからの入力 (PPGCのクロックセレクトによる) ■ 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) 222 L H T Ph Pl :PRLL の値 :PRLH の値 :入力クロック周期 :ハイパルスの幅 :ローパルスの幅 第 14 章 8/16 ビット PPG 14.5 8/16 ビット PPG のカウントクロックの選択 8/16 ビット PPG の動作に使用するカウントクロックは , 周辺クロックおよびタイム ベースカウンタの入力を使用しており ,6 種類のカウントクロック入力が選択できま す。 ■ 8/16 ビット PPG のカウントクロックの選択 PPG01 レジスタの bit4 ∼ bit2 (PCM2 ∼ PCM0) で ch.0 のクロックを ,bit7 ∼ bit5 (PCS2 ∼ PCS0) で ch.1 のクロックを選択します。 クロックは , マシンクロックの 1/16, 1/4, 1 倍の周辺クロックとタイムベースカウンタ からの入力クロックより選択できます。 しかし ,8 ビットプリスケーラ +8 ビット PPG モードまたは 16 ビット PPG モードのと きには , PCS2 ∼ PCS0 に "0" を設定しても意味はありません。 タイムベースカウンタの入力を使用した場合,トリガにより起動がかかる最初およびス トップの後の最初のカウント周期がずれる可能性がありますので注意してください。 また,本モジュール動作中にタイムベースカウンタのクリアを行うと周期がずれること があります。 8 ビットプリスケーラ +8 ビット PPG モードでは ch.0 が動作状態 ,ch.1 が停止状態であ るときに ch.1 の起動を行うと , 最初のカウント周期がずれる可能性がありますので注 意してください。 223 第 14 章 8/16 ビット PPG 14.6 8/16 ビット PPG のパルスの端子出力の制御 本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG00/PPG10 よ り出力させることができます。 ■ 8/16 ビット PPG のパルスの端子出力の制御 端子出力許可ビット (PPGC0:PE00, PPGC1:PE10) が "0" のとき(初期値)は , パルス出 力は外部端子より出力されずに , 汎用ポートとして機能します。本ビットに "1" を設定 すると , パルス出力が外部端子より出力されます。 16 ビット PPG モードでは ,PPG00, PPG10 は同じ波形が出力されるので , どちらの外部 端子出力を許可しても同じ出力を得ることができます。 8 ビットプリスケーラ +8 ビット PPG モードでは ,PPG0 は 8 ビットプリスケーラのトグ ル波形が出力され ,PPG10 は 8 ビット PPG の波形が出力されます。このモードのとき の出力波形の例を 図 14.6-1 に示します。 MB90440G シリーズについては ,ch.0 の PPG からの出力信号は外部端子には接続して いません。 図 14.6-1 8+8PPG 出力動作の出力波形 Pl0 Ph0 PPG0 PPG1 Ph1 Pl0 Ph0 Pl1 Ph1 < 注意事項 > 224 = = = = T T T T × × × × (L0+1) (L0+1) (L0+1) × (L1+1) (L0+1) × (H1+1) Pl1 L0 : L1 : H1 : T : Ph0: Pl0: Ph1: Pl1: ch.0のPRLLの値 および ch.0のPRLHの値 ch.1のPRLLの値 ch.1のPRLHの値 入力クロック周期 PPG00のハイパルスの幅 PPG00のローパルスの幅 PPG10のハイパルスの幅 PPG10のローパルスの幅 ch.0 の PRLL と ch.0 の PRLH は , 同じ値を設定することを推奨します。 第 14 章 8/16 ビット PPG 14.7 8/16 ビット PPG の割込み 8/16 ビット PPG の割込みは , リロード値がカウントアウトし , ボローが発生したと きにアクティブになります。 ■ 8/16 ビット PPG の割込み 8 ビット PPG 2ch モードおよび 8 ビットプリスケーラ +8 ビット PPG モードのときには , それぞれのカウンタのボローにより , それぞれの割込みの要求が行われますが ,16 ビッ ト PPG モードでは ,16 ビットカウンタのボローにより ,PUF0 と PUF1 が同時にセット されます。このため , 割込み要因を一本化するために ,PIE0 または PIE1 のどちらか一 方のみを許可にすることを推奨します。また , 割込みフラッグのクリアも PUF0 と PUF1 を同時に行うことを推奨します。 225 第 14 章 8/16 ビット PPG 14.8 8/16 ビット PPG の各ハードウェアの初期値 8/16 ビット PPG の各ハードウェアは , リセット時に以下のように初期化されます。 ■ 8/16 ビット PPG の各ハードウェアの初期値 ● レジスタ • PPGC0 → 0X000001B • PPGC1 → 00000001B • PPG10 → XXXXXX00B ● パルス出力 • PPG00 → "L" • PPG10 → "L" • PE00 → PPG00 出力禁止 • PE10 → PPG10 出力禁止 ● 割込み要求 • IRQ0 → "L" • IRQ1 → "L" なお , 上記以外のハードウェアは初期化されません。 < 注意事項 > 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミング 16 ビット PPG モード以外のモードの場合には , リロードレジスタ (PRLL, PRLH) への書込みはワード転送命令を使用することを推奨します。なお , バイト転送命令 2 回にて書き込んだ場合 , タイミングによっては , 予想しないパルス幅の出力が発 生する可能性がありますので注意してください。 図 14.8-1 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミングチャート PPG0 A B A B C B C D C D ① 図 14.8-1 のタイムチャートにおいて , ①のタイミングの前で PRLL を A から C に書き 換えて , ①の後 PRLH の値を B から D に書き換えた場合 , ①のタイミングでの PRL の 値は PRLL=C, PRLH=B のため 1 回だけ L 側のカウント数 C, H 側のカウント数 B のパ ルスが発生されます。 226 第 14 章 8/16 ビット PPG 同様に ,16 ビット PPG モードで使用する場合には ,ch.0 と ch.1 の PRL はロングワード 転送で書き込むか , または ch.0 → ch.1 の順にワード転送で書き込んでください。この モードのときには ,ch.0 の PRL への書込みは , 一時的に書き込まれ , その後 ch.1 の PRL に書込みを行った時点で , 実際に ch.0 の PRL への書込みが行われます。 なお , 図 14.8-2 に示すように ,16 ビット PPG モード以外では ,ch.0 と ch.1 の PRL の書 込みは独立して行うことができます。 図 14.8-2 PRL 書込み部分のブロックダイヤグラム ch.0のPRLの書込みデータ 16ビットPPGモード以外 の場合のch.0の書込み テンポラリラッチ ch.1のPRLの書込みデータ 16ビットPPGモード時 ch.1の書込みに同期して 転送 ch.1の書込み ch.0のPRL ch.1のPRL 227 第 14 章 8/16 ビット PPG 228 第 15 章 遅延割込み 遅延割込みの機能と動作について説明します。 15.1 遅延割込みモジュールの概要 15.2 遅延割込みのレジスタ 15.3 遅延割込みの動作 229 第 15 章 遅延割込み 15.1 遅延割込みモジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュール です。本モジュールを使用することで , ソフトウェアで F2MC-16LX CPU に対して 割込み要求の発生 / 取消しを行うことができます。 ■ 遅延割込みのブロックダイヤグラム 図 15.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。 図 15.1-1 遅延割込みのブロックダイヤグラム F2MC-16LX バス 遅延割込み要因発生/解除レジスタ 要因ラッチ ■ 遅延割込み要求ロックの使用上の注意 このロックは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット に "0" を書き込むことでクリアされます。したがって , 割込み処理ルーチン内で要因を クリアするようにソフトウェアを作成しておかないと割込み処理から復帰した途端に 再割込み処理を起動することになりますので注意してください。 230 第 15 章 遅延割込み 15.2 遅延割込みのレジスタ DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して "1" を書込み時には遅延割込みの要求を発生させ , "0" を書込み時には遅延割込みの 要求を解除します。リセット時には要因解除状態になります。 ■ 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) 遅延割込み要因発生 / 解除レジスタ (DIRR) では , 予約ビット領域は "0", "1" どちらの書 込みも結構ですが , 将来の拡張を考慮してこのレジスタをアクセスする際にはセット ビット , クリアビット命令を使用することをお勧めします。 図 15.2-1 遅延割込み要因発生 / 解除レジスタ (DIRR) 遅延割込み要因発生/解除レジスタ bit 15 14 13 12 11 10 9 アドレス:00009FH リード/ライト 初期値 8 R0 (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) DIRR (R/W) (0) 231 第 15 章 遅延割込み 15.3 遅延割込みの動作 ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生 モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求を 発生します。 ■ 遅延割込み発生 ほかの割込み要求が本割込みより優先順位が低い , あるいは , ほかの割込み要求がない 場合に , 割込みコントローラは F2MC-16LX CPU に対して割込み要求を発生します。図 15.3-1 に示すように ,F2MC-16LX CPU は自分の内部にある CCR レジスタ中の ILM ビッ トと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の 命令が終了し次第 , ハードウェア割込み処理マイクロプログラムを起動します。この結 果 , 本割込みに対する割込み処理ルーチンが実行されます。 図 15.3-1 遅延割込み発生 遅延割込み発生モジュール 割込みコントローラ F2MC-16LX CPU WRITE ほかの要求 ICRyy IL CMP DIRR ICRxx CMP ILM INTA 割込み処理ルーチン内で DIRR の該当ビットの "0" を書き込むことで本割込み要因をク リアし , 合わせてタスクの切換えを行います。 232 第 16 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明しま す。 16.1 DTP/ 外部割込みの概要 16.2 DTP/ 外部割込みのレジスタ 16.3 DTP/ 外部割込みの動作 16.4 DTP 要求と外部割込み要求の切換え 16.5 DTP/ 外部割込みの使用上の注意 233 第 16 章 DTP/ 外部割込み DTP/ 外部割込みの概要 16.1 DTP(Data Transfer Peripheral) はデバイス外部に存在するペリフェラルと F2MC16LX CPU との間にあって , 外部ペリフェラルが発生する DMA 要求あるいは割込み 要求を受け取り , これを F2MC-16LX CPU に伝えてインテリジェント I/O サービス あるいは割込み処理を起動させるための周辺です。 ■ DTP/ 外部割込みの概要 インテリジェント I/O 機能に関しては "H" または "L" 要求レベルを使用することがで きます。外部割込み要求に対しては 4 種類の要求レベルを使用することができます。 ("H", "L" の立上りエッジおよび立下りエッジ。 ) ■ DTP/ 外部割込みのブロックダイヤグラム 図 16.1-1 DTP/ 外部割込みのブロックダイヤグラム 内部データバス 8 8 DTP/割込み許可レジスタ ゲート 8 エッジ検出回路 要因F/F 8 DTP/割込み要因レジスタ 16 要求レベル設定レジスタ 要求入力 ■ DTP/ 外部割込みのレジスタ 図 16.1-2 DTP/ 外部割込みのレジスタ DTP/割込み許可レジスタ bit アドレス:000030H リード/ライト 初期値 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 DTP/割込み要因レジスタ bit 15 14 13 12 11 10 9 8 アドレス:000031H ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 リード/ライト 初期値 要求レベル設定レジスタ アドレス:000033H リード/ライト 初期値 アドレス:000032H リード/ライト 初期値 234 ENIR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) EIRR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ELVR 第 16 章 DTP/ 外部割込み 16.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) 図 16.2-1 DTP/ 割込み許可レジスタ (ENIR) DTP/割込み許可レジスタ bit アドレス:000030H リード/ライト 初期値 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 ENIR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) DTP/ 割込み許可レジスタ (ENIR) はデバイス端子を DTP/ 外部割込み要求入力として使 用し,割込みコントローラに対して要求を発生させる機能を動作させることを決定する レジスタです。このレジスタの "1" を書かれたビットの対応する端子は DTP/ 外部割込 み要求入力として使用されます。"0" が書かれたビットの対応する端子は DTP/ 外部割 込み要求入力要因は保持しますが , 割込みコントローラに対しては要求を発生しませ ん。 < 注意事項 > DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する外部割込み要求フラグ ビット (EIRR:ER) をクリアしてください。 ■ DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) 図 16.2-2 DTP/ 割込み要因レジスタ (EIRR) DTP/割込み要因レジスタ bit アドレス:000031H リード/ライト 初期値 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 EIRR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) EIRR は , このレジスタの "1" となっているビットに対応する端子において DTP/ 外部割 込み要求が存在することを表します。このレジスタのビットに "0" を書込むと対応す る要求フラグがクリアされます。"1" を書込んでも効果はありません。リードモディ ファイライト系命令によりこのレジスタからは常に "1" が読み出されます。 235 第 16 章 DTP/ 外部割込み < 注意事項 > • 複数の外部割込み要求出力が許可 (ENIR:EN7 ∼ EN0=1) されている場合 ,CPU が割り込みを受け付けたビット (ER7 ∼ ER0 の "1" にセットされているビット ) だけを "0" にクリアするようにしてください。それ以外のビットを無条件にクリ アすることは避けてください。 • 外部割込み要求フラグビット (EIRR:ER) の値は , 対応する外部割込み要求許可 ビット (ENIR:EN) が "1" に設定されている時のみ有効です。DTP/ 外部割込みが 許可されていない状態 (ENIR:EN=0) では ,DTP/ 外部割込み要因の有無にかかわ らず DTP/ 外部割込み要因ビットがセットされる可能性があります。 • DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する外部割込み要求フラ グビット (EIRR:ER) をクリアしてください。 ■ 要求レベル設定レジスタ (ELVR:External level register) 図 16.2-3 要求レベル設定レジスタ (ELVR) 要求レベル設定レジスタ bit アドレス:000033H リード/ライト 初期値 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 0 アドレス:000032H リード/ライト 初期値 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 ELVR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ELVR は外部端子における要求イベントを定義するものです。表 16.2-1 に示すように , 各端子には 2 ビットが割当てられます。入力レベルにより要求が検出されたとすれば , フラグがソフトウェアによりリセットされた後でも入力が指定されたレベルに在る限 り割込みフラグはセットされます。 表 16.2-1 LBx, LAx ビットの設定値と端子の割込み要求検出要因 236 LBx LAx 0 0 "L" レベルが端子に入力 0 1 "H" レベルが端子に入力 1 0 立上りエッジが端子に入力 1 1 立下りエッジが端子に入力 割込み要求検出要因 第 16 章 DTP/ 外部割込み DTP/ 外部割込みの動作 16.3 割込みフラグがセットされたときにこのブロックは割込みコントローラへ割込み信 号を送ります。割込みコントローラ内で同時発生した割込みの優先順位を識別した 結果 , 本リソースからの割込みが最も優先順位が高かったときに , 割込みコントロー ラは F2MC-16LX CPU に対して割込み要求を発生します。F2MC-16LX CPU は自分 の内部にある CCR レジスタ中の ILM ビットと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の命令が終了し次第 , ハードウェア割込み 処理マイクロプログラムを起動します。 ■ 外部割込みの動作 図 16.3-1 に示すように , ハードウェア割込み処理マイクロプログラムにおいて ,CPU は 割込みコントローラから ISE ビットの情報を読出し , これにより当該要求が割込み処理 であることを識別し , 割込み処理マイクロプログラムへ分岐します。割込み処理マイク ロプログラムでは割込みベクタ領域の読出しと割込みコントローラへの割込みアクノ リッジを発生し,ベクタから生成したマクロ命令のジャンプ先アドレスをプログラムカ ウンタへ転送した上で , ユーザの割込み処理プログラムの実行を行います。 図 16.3-1 外部割込みの動作 DTP/外部割込み 割込みコントローラ F2MC-16LX CPU ほかの要求 ELVR ICRyy CMP EIRR ENIR 要因 IL ICRxx CMP ILM INTA 237 第 16 章 DTP/ 外部割込み ■ DTP の動作 初期化としてユーザプログラム内ではインテリジェント I/O サービスを起動するに当 たって , インテリジェント I/O サービスディスクリプタ内の I/O アドレスポインタに "000000H" から "0000FFH" に割りつけられているレジスタのアドレスを設定し , バッ ファアドレスポインタにメモリバッファの先頭アドレスを設定します。 DTP の動作シーケンスは外部割込みの場合とほぼ同じで ,CPU がハードウェア割込み 処理マイクロプログラムを起動するまでは全く同じです。DTP の場合は CPU がハード ウェア割込み処理マイクロプログラム内で読み出す ISE ビットの内容が DTP を示して いるので , インテリジェント I/O サービス処理マイクロプログラムへ制御を移します。 インテリジェント I/O サービスが起動されると , アドレッシングされている外部ペリ フェラルにリードまたはライト信号が送られ本チップとの転送が行われます。外部ペ リフェラルはその転送が行われてから 3 マシンサイクル以内に本チップに対する割込 み要求を取り下げてください。転送が終了するとディスクリプタの更新などが行われ , その後転送要因をクリアする信号を割込みコントローラに発生させます。転送要因を クリアする信号を受けとった本リソースは要因を保持しているフリップフロップをク リアして端子からの次の要求に備えます。インテリジェント I/O 機能処理の詳細につ いては ,『MB90500 プログラミングマニュアル』を参照してください。 238 第 16 章 DTP/ 外部割込み 図 16.3-2 DTP 動作終了時の外部割込み取下げタイミング 割込み要因 内部動作 ↑エッジ要求、またはHレベル要求 ディスクリプタ 選択,読出 アドレスバス端子 ※拡張インテリジェントI/Oサービスが I/Oレジスタ → メモリ転送の時 リードアドレス ライトアドレス データバス端子 リードデータ リード信号 ライトデータ ① ライト信号 ② 3マシンサイクル以内に取り下げる 図 16.3-3 DTP と外部ペリフェラルとのインタフェース簡略例 外 部 ペ リ フ エ ラ ル 内部データバス データ,アドレス,バス レ ジ ス タ IRQ 転送終了後3マシンサイクル 以内に取り下げる ② ① INT DTP CORE MEMORY MB90440Gシリーズ 239 第 16 章 DTP/ 外部割込み 16.4 DTP 要求と外部割込み要求の切換え 外部割込み要求と DTP 要求の切換えは , 割込みコントローラの中にある , 本リソー スに対応する ICR レジスタ中の ISE ビットの設定によって行います。各端子に対応 して個々に ICR が割り当てられていますので , 対応する ICR の ISE ビットに "1" が 書かれた端子が DTP 要求として , また ,"0" が書かれた場合には外部割込み要求とし て , それぞれ動作することになります。 ■ DTP 要求と外部割込み要求の切換え 図 16.4-1 DTP 要求と外部割込み要求の切換え 割込みコントローラ ICRxx ICRyy 0 1 F2MC-16LX CPU 端子 DTP/外部割込み DTP 外部割込み 240 第 16 章 DTP/ 外部割込み 16.5 DTP/ 外部割込みの使用上の注意 DTP/ 外部割込みを使用する際には , 次の点について特に注意が必要です。 • DTP を用いたときの外部に接続するペリフェラルの条件 • スタンバイからの復帰 • DTP/ 外部割込みの動作手順 • 外部割込み要求レベル ■ DTP/ 外部割込みの使用上の注意 ● DTP を用いたときの外部に接続するペリフェラルの条件 DTP がサポートできる外部ペリフェラルは , 転送が行われたことにより自動的に要求 をクリアするものでなければなりません。また , 転送動作が開始してから 3 マシンサイ クル以内(暫定値)で転送要求を取り下げるようになっていないと , 本リソースは次の 転送要求が発生したものとして扱ってしまいます。 ● DTP/ 外部割込みの動作手順 DTP/外部割込み内に存在するレジスタの設定を行う際,次の手順で設定してください。 1. 外部割込み入力として使用する端子と併用する汎用入出力ポートを入力ポートに 設定する。 2. 許可レジスタの対象となるビットをディセーブル状態にする。 3. 要求レベル設定レジスタの対象となるビットを設定する。 4. 要因レジスタの対象となるビットをクリアする。 5. 許可レジスタの対象となるビットをイネーブル状態にする。 (ただし ,4. と 5. はワー ド指定による同時書込み可)。 本リソース内のレジスタを設定するときには必ず許可レジスタをディセーブル状態に 設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前に必 ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許 可状態時に誤って割込み要因が起こってしまうことを避けるためです。 ● 外部割込み要求レベル 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は 最小 3 マシンサイクル必要とします。 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要とします。 また割込み入力端子がアクティブレベルを保持し続けている限りは,外部割込み要因レ ジスタをクリアしても , 割込みコントローラへの割込み要求は発生し続けます。 図 16.5-1 に示すように , 要求入力レベルがレベル設定のとき , 外部より要求入力が入っ てその後取り下げられても内部に要因保持回路が存在するので,割込みコントローラへ の要求はアクティブのままです。図 16.5-2 に示すように ,割込みコントローラへの要求 を取り下げるには要因保持回路をクリアする必要があります。 241 第 16 章 DTP/ 外部割込み 図 16.5-1 レベル設定時の要因保持回路のクリア 割込み要因 レベル検出 要因 F/F (要因保持回路) 許可ゲート 割込み コントローラへ クリアしない限り要因を保持し続ける 図 16.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 割込み要因 割込みコントローラ への割込み要求 242 Hレベル 要因F/Fのクリアによってインアクティブとなる 第 17 章 A/D コンバータ A/D コンバータの機能と動作について説明します。 17.1 A/D コンバータの特長 17.2 A/D コンバータのブロックダイヤグラム 17.3 A/D コンバータのレジスタ一覧 17.4 A/D コンバータの動作 17.5 EI2OS を使った変換動作 17.6 変換データ保護機能 243 第 17 章 A/D コンバータ 17.1 A/D コンバータの特長 A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。A/D コン バータの特長は次のとおりです。 ■ A/D コンバータの特長 ● 変換時間 1 チャネル当たり最小 6.12µs ( マシンクロック 16MHz 時 ) ● サンプル & ホールド回路付 RC 型逐次比較変換方式を採用 ● 10 ビットまたは 8 ビットの分解能 ● アナログ入力は 8 チャネルからプログラムで選択 • シングル変換モード :1 チャネルを選択変換 • スキャン変換モード : 連続した複数のチャネルを変換。最大 8ch プログラム可能 • 連続変換モード : 指定チャネルを繰り返し変換 • 停止変換モード :1 チャネルを変換したら一時停止して次の起動がかかるまで 待機 ( 変換開始の同期が可能 )。 ● 割込み要求 A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることがで きます。この割込み発生で EI2OS を起動することができ ,A/D 変換結果データをメモリ に転送できますので連続処理に適しています。 ● 起動要因を選択可能 起動要因は , ソフトウェア , 外部トリガ ( 立下りエッジ ), またはタイマ ( 立上りエッジ ) があります。 ■ アナログ入力許可レジスタ アナログ入力に使用される端子に対応する ADER ビットに常に "1" を書き込んでくだ さい。 図 17.1-1 アナログ入力許可レジスタ アナログ入力許可レジスタ bit アドレス:00001BH リード/ライト 初期値 15 14 13 ADE7 ADE6 ADE5 12 ADE4 10 ADE3 ADE2 9 8 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) (1) ポート 6 端子は次のように制御されます。 • 0: ポート入力 / 出力モード • 1: アナログ入力モード • リセット時には "1" がセットされます。 244 11 ADER 第 17 章 A/D コンバータ ■ 入力インピーダンス A/D コンバータのサンプリング回路は次の等価回路で表されます。 最大 3.2kΩ ADC アナログ入力 最大 30pF サンプリング時間が 2µs(マシンクロック 16MHz, ST1=0 および ST0=1)にセットされ たとき , アナログ入力への駆動インピーダンスは 5.0kΩ 以下でなければなりません。そ うしなければ変換の精度は低下します。この場合 , サンプリング時間を更に長く設定す るか , 外部コンデンサを付加して駆動インピーダンスを補償してください。 245 第 17 章 A/D コンバータ 17.2 A/D コンバータのブロックダイヤグラム 図 17.2-1 に ,A/D コンバータのブロックダイヤグラムを示します。 ■ A/D コンバータのブロックダイヤグラム 図 17.2-1 A/D コンバータのブロックダイヤグラム AVCC AVRH/AVRL AVSS D/Aコンバータ MPX 入力回路 逐次比較レジスタ 内部データバス AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 比較器 サンプル& ホールド回路 ー デ コ ダ データレジスタ ADCR0/ADCR1 A/D制御レジスタ0 ADTG端子 外部トリガ起動 16ビットリロードタイマ1 タイマ起動 φ 246 A/D制御レジスタ1 ADCS0/ ADCS1 動作クロック プリスケーラ 第 17 章 A/D コンバータ 17.3 A/D コンバータのレジスタ一覧 A/D コンバータのレジスタには次の 2 種類があります。 • A/D コントロールステータスレジスタ • データレジスタ ■ A/D コンバータのレジスタ一覧 図 17.3-1 A/D コンバータのレジスタ配置 bit15 8 7 bit0 ADCS0 ADCS1 ADCR1 ADCR0 8ビット 8ビット 図 17.3-2 A/D コンバータのレジスタ A/Dコントロールステータスレジスタ上位 bit 15 14 13 BUSY アドレス:000035H リード/ライト 初期値 INT INTE MD1 アドレス:000034H リード/ライト 初期値 データレジスタ下位 アドレス:000036H リード/ライト 初期値 10 9 8 PAUS STS1 STS0 STRT 予約 ADCS1 MD0 5 4 3 2 1 ANS2 ANS1 ANS0 ANE2 0 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) (0) bit アドレス:000037H リード/ライト 初期値 11 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) A/Dコントロールステータスレジスタ下位 bit 7 6 データレジスタ上位 12 15 14 13 12 11 SI0 ST1 (W) (0) ST0 (W) (1) CT1 (W) (0) CT0 (W) (1) (W) (0) bit 10 9 8 (-) (-) D9 (R) (X) D8 (R) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) ADCR1 ADCR0 247 第 17 章 A/D コンバータ A/D コントロールステータスレジスタ (ADCS0) 17.3.1 A/D コントロールステータスレジスタ (ADCS0) は ,A/D コンバータの制御およびス テータス表示を行います。ADCS0 は A/D 変換動作中に書換えないようにしてくだ さい。 ■ A/D コントロールステータスレジスタ (ADCS0) 図 17.3-3 A/D コントロールステータスレジスタ (ADCS0) A/Dコントロールステータスレジスタ下位 bit 7 6 MD1 アドレス:000034H リード/ライト 初期値 MD0 5 4 3 2 1 ANS2 ANS1 ANS0 ANE2 0 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) (0) [bit7, bit6] MD1, MD0(A/D converter mode set) 表 17.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 の設定チャネルまで 1ch ごとに A/D 変換を行い一時停止する。変換再開は起動要因発生によって行われます。 リセット時には本ビット群は "00B" に初期化されます。 < 注意事項 > 248 • 連続モード , 停止モードで A/D 変換を起動すると BUSY ビットで停止するまで 変換動作を続けます。 • 停止は BUSY ビットに "0" を書き込むことにより行われます。 • 単発 , 連続 , 停止の各モードの再起動の不可能はタイマ , 外部トリガ , ソフト ウェアすべての起動に適用されます。 第 17 章 A/D コンバータ [bit5 ∼ bit3] ANS2 ∼ ANS0 (Analog start channel set) 本ビット群より A/D 変換の開始チャネルを設定します。 A/D コンバータを起動すると , このビットで選択されたチャネルから A/D 変換を開始 します。 < 注意事項 > ANS2 ANS1 ANS0 開始チャネル 0 0 0 AN0 0 0 1 AN1 0 1 0 AN2 0 1 1 AN3 1 0 0 AN4 1 0 1 AN5 1 1 0 AN6 1 1 1 AN7 • リード :A/D 変換の間 , 現在の変換チャネルが本ビット群から読み込まれます。 もしシステムが停止モードで停止すれば最後の変換チャネルが読み込まれます。 • リセット時には本ビット群は "000B" に初期化されます。 [bit2 ∼ bit0] ANE2 ∼ ANE0 (Analog end channel set) 本ビット群より A/D 変換の終了チャネルを設定します。 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 249 第 17 章 A/D コンバータ < 注意事項 > • アナログ開始チャネル設定 (ANS2, ANS1, ANS0) に開始チャネルを設定したあと に , 本レジスタのビットをリードモディファイライト系命令で設定しないでくだ さい。 • ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始されるまでは前回の変換チャネ ルが読み出されるため ,ANS2, ANS1, ANS0 ビットに開始チャネルを設定したあ とに , 本レジスタのビットをリードモディファイライト系命令で設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。 • 同一のチャネルを ANE2 ∼ ANE0 ビットおよび ANS2 ∼ ANS0 ビットに書込む と , 変換は 1 つのチャネルに対してのみ行われます (シングル変換)。 • 連続モード , 停止モードを設定している場合は本ビット群で設定されたチャネル の変換が終わると ANS2 ∼ ANS0 で設定された開始チャネルに戻ります。 • 設定チャネルが ANS > ANE の場合は ,ANS より変換が始まり 7ch まで変換した ら 0ch に戻り ANE まで変換します。 • リセット時には本ビット群は "000B " に初期化されます。 例:チャネル設定 ANS =6ch, ANE = 3chで単発モードのとき 変換は次の順序で行われます。ch.6→ch.7→ch.0→ch.1→ch.2→ch.3 250 第 17 章 A/D コンバータ A/D コントロールステータスレジスタ (ADCS1) 17.3.2 A/D コントロールステータスレジスタ (ADCS1) は ,A/D コンバータの制御およびス テータス表示を行います。 ■ A/D コントロールステータスレジスタ (ADCS1) 図 17.3-4 A/D コントロールステータスレジスタ (ADCS1) A/Dコントロールステータスレジスタ上位 bit 15 14 13 アドレス:000035H リード/ライト 初期値 BUSY INT 12 11 10 9 8 INTE PAUS STS1 STS0 STRT 予約 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (W) (0) (0) (0) (0) (0) (0) (0) ADCS1 (R/W) (0) [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 に書き込まれるとセットされます。 bit5(INTE) が "1" のときに本ビットがセットされると割込み要求が発生します , また EI2OS 起動を許可している場合 EI2OS が起動されます。"1" 書込みは影響しません。 クリアは "0" 書込みと EI2OS 割込みクリア信号で行われます。 < 注意事項 > 本ビットの "0" 書込みクリアは A/D 停止中に行ってください。 リセット時に本ビットは "0" に初期化されます。 [bit13] INTE(Interrupt enable) 本ビットは変換終了による割込みの許可 / 禁止を設定します。 • 0: 割込みの禁止 • 1: 割込みの許可 EI2OS を使用するときは本ビットをセットしてください。EI2OS は割込み要求発生で起 動するようになっています。 リセット時に本ビットは "0" に初期化されます。 251 第 17 章 A/D コンバータ [bit12] PAUS(A/D converter pause) A/D 変換動作が一時的に停止した場合にセットされます。 A/D 変換結果を格納するレジスタが 1 つのため連続で変換した場合 , 変換結果を EI2OS で転送しなければ前データが壊れてしまいます。 これを保護するためデータレジスタの内容を EI2OS で転送しなければ次の変換データ が格納されないようになっています。この間 A/D 変換動作は停止します。EI2OS で転 送を終了すると A/D は変換を再開します。 このビットは EI2OS を使用したときのみ有効です。 < 注意事項 > • 変換データの保護機能に関しては , 「17.6 変換データ保護機能」を参照してく ださい。 • リセット時に本ビットは "0" に初期化されます。 [bit11, bit10] STS1, STS0(Start source select) リセット時に本ビット群は "00B" に初期化されます。 本ビットの設定により A/D 起動要因を選択します。 STS1 STS0 0 0 ソフトウェア起動 0 1 外部端子トリガでの起動とソフトウェア起動 1 0 タイマでの起動とソフトウェア起動 1 1 外部端子トリガ , タイマでの起動とソフトウェア起動 機能 2 つ以上の起動要因が許されているモードでは最初に生じた原因により A/D 変換が起 動されます。 起動源の設定は書き換えられると直ちに変わりますので ,A/D 変換中に書き換えるとき には注意してください。 < 注意事項 > • 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のと きに本ビットを書き換えて外部端子トリガ起動に設定すると A/D が起動する場 合があります。 • タイマ選択時は ,16 ビットリロードタイマ 1 の出力が選択されます。 [bit9] STRT(Start) 本ビットに "1" を書き込むことにより A/D を起動します。 再起動をかけるときは , 再び書き込んでください。 リセット時に本ビットは "0" に初期化されます。 停止モード時 , 動作機能上再起動はかかりません。"1" を書込む前に BUSY ビットを チェックしてください。 強制停止とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 [bit8] 予約 : 予約ビット これは予約ビットです。本ビットには常に "0" を書き込んでください。 252 第 17 章 A/D コンバータ 17.3.3 データレジスタ (ADCR0, ADCR1) データレジスタ (ADCR0, ADCR1) は , 変換の結果として生成されたデジタル値を記 憶するために使用されるものです。ADCR0 は下位 8 ビットを記憶し ,ADCR1 は変 換結果の最上位の 2 ビットを記憶します。これらのレジスタ値は変換が完了するた びに書き換えられます。通常は最後の変換値が本ビット群に記憶されます。 ■ データレジスタ (ADCR0, ADCR1) 図 17.3-5 データレジスタ (ADCR0, ADCR1) データレジスタ下位 アドレス:000036H リード/ライト 初期値 データレジスタ上位 アドレス:000037H リード/ライト 初期値 bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) bit 15 S10 (W) (0) 14 13 12 11 10 9 8 ST1 (W) (0) ST0 (W) (1) CT1 (W) (0) CT0 (W) (1) (-) (-) D9 (R) (X) D8 (R) (X) ADCR0 ADCR1 ADCR1 のビット bit10 ∼ bit15 からは常に "0" が読み出されます。 変換データの保護機能を利用することができます。詳しくは , 「17.4 A/D コンバータ の動作」を参照してください。 A/D 変換の間はこれらのレジスタにデータを絶対に書き込まないでください。 [bit15] S10 本ビットは変換の分解能を指定します。"0" を書込むと 10 ビットの A/D 変換が行われ ます。その他の場合には 8 ビットの A/D 変換が行われてその結果は D7 ∼ D0 に記憶さ れます。 本ビットからは常に "0" が読み出されます。 [bit14, bit13] ST1, ST0(Sampling time) ST1 ST0 0 0 20 マシンサイクル(8MHz で 2.5µs) 0 1 32 マシンサイクル(16MHz で 2.0µs) 1 0 48 マシンサイクル(16MHz で 3.0µs) 1 1 128 マシンサイクル(16MHz で 8.0µs) 機能 本ビット群は入力時における電圧サンプリング時間の持続時間を決定するものです。 本ビットを "00B" に設定するときはマシンクロックが 8MHz のときにしてください。 8MHz 以外の場合には変換精度が保証されません。 本ビット群からは常に "00B" が読み出されます。 253 第 17 章 A/D コンバータ [bit12, bit11] CT1, CT0(Compare time) CT1 CT0 0 0 44 マシンサイクル(8MHz で 5.5µs) 0 1 66 マシンサイクル(16MHz で 4.12µs) 1 0 88 マシンサイクル(16MHz で 5.5µs) 1 1 176 マシンサイクル(16MHz で 11µs) 機能 本ビット群は比較操作時間の持続期間を決定するものです。 本ビットを "00B" に設定するときはマシンクロックが 8MHz 以下のときにしてくださ い。8MHz より高速の場合には変換精度が保証されません。 本ビット群からは常に "00B" が読み出されます。 254 第 17 章 A/D コンバータ 17.4 A/D コンバータの動作 A/D コンバータは逐次比較方式で作動し , 分解能は 10 ビットまたは 8 ビットを選択 することができます。 この A/D コンバータは変換結果記憶用のレジスタが 1 つ(16 ビット)であるため , 変換データレジスタ(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" を書き込む→強制動作停止)。強制動作停止を行うと変換中の ものは途中で止まってしまうため , 注意してください(強制動作停止した場合は変換レ ジスタは変換完了した前データが格納されています) 。 255 第 17 章 A/D コンバータ ■ 停止モード 停止モードは ,ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい きますが 1ch 変換する度に変換動作を一時停止します。一時停止を解除するにはもう 一度起動をかけることにより行われます。 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 ビットで設定されたものだけです。 このモードを使用することにより変換開始の同期をかけることが可能です。 256 第 17 章 A/D コンバータ 17.5 EI2OS を使った変換動作 図 17.5-1 に ,A/D 変換起動から変換データ転送までのフロー例(連続モード)を示 します。 ■ EI2OS を使った変換動作 図 17.5-1 A/D 変換起動から変換データ転送までのフロー例(連続モード) A/D変換起動 サンプル&ホールド EI2OS起動 変換 データ転送 * 変換終了 割込み発生 割込み処理 割込みクリア *: EI2OSの設定で決まります。 257 第 17 章 A/D コンバータ 単発モード時の EI2OS の起動例 17.5.1 単発モード時の EI2OS は次の手順で起動します。 • アナログ入力 AN1 ∼ AN3 の変換をして終了する。 • 変換データは 200H ∼ 205H 番地に順に転送する。 • ソフトウェアで変換を開始する。 • 最高の割込みレベルを使用する。 ■ 単発モード時の EI2OS の起動例 設定項目 プログラム例 動作説明 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリプタアド レスの設定。 MOV ICR03, #08H MOV BAPL, #00H MOV BAPM, #02H EI2OS の設定 変換データの転送先番地。 MOV BAPH, #00H ワードデータ転送,転送後転送先番地をインクリメントする。 I/O からメモリへ転送。リソースからの要求で終了しない。 MOV ISCS, #18H MOV IOA, #36H MOV DCT, #03H EI2OS 転送を 3 回行う。変換回数と同じにする。 MOV ADCS0, #0BH 単発モード , 開始チャネル AN1, 終了チャネル AN3 MOV ADCS1, #A2H ソフト起動 ,A/D 変換開始 RET 割込みからの復帰 A/D コンバータ設定 割込みシーケンス ICR03 BAPL BAPM BAPH ISCS IOA DCT : 割込み制御レジスタ : バッファアドレスポインタ下位 : バッファアドレスポインタ中位 : バッファアドレスポインタ上位 :EI2OS ステータスレジスタ :I/O アドレスカウンタ : データカウンタ 図 17.5-2 単発モード時の EI2OS の起動例 起動開始 AN1 → 割込み→EI2OS転送 AN2 → 割込み→EI2OS転送 AN3 → 割込み→EI2OS転送 終了 割込みシーケンス 平行処理 258 第 17 章 A/D コンバータ 連続モード時の EI2OS の起動例 17.5.2 連続モード時の EI2OS の起動例は次のとおりです。 • アナログ入力 AN3 ∼ AN5 の変換をして各チャネルの変換データを 2 つ取得する。 • 変換データは 600H ∼ 60BH 番地に順に転送する。 • 起動は外部エッジ入力で行う。 • 割込みレベル最強 ■ 連続モード時の EI2OS の起動例 設定項目 プログラム例 動作説明 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリプタアド レスの設定。 MOV ICR03, #08H MOV BAPL, #00H MOV BAPM, #06H 変換データの転送先番地 MOV BAPH, #00H EI2OS の設定 MOV ISCS, #18H ワードデータ転送 , 転送後転送先番地をインクリメントする。 I/O からメモリへ転送。リソースからの要求で終了しない。 MOV IOA, #36H 転送元アドレス MOV DCT, #06H EI2OS 転送を 6 回行う。3ch × 2 分のデータ転送を行う。 MOV ADCS0, #9DH 連続モード , 開始チャネル AN3, 終了チャネル AN5 MOV ADCS1, #A4H 外部エッジ起動 , A/D 変換開始 MOV ADCS1, #00H 割込みからの復帰 A/D コンバータ設定 EI2OS 終了割込み シーケンス ICR03 BAPL BAPM BAPH ISCS IOA DCT RET : 割込み制御レジスタ : バッファアドレスポインタ下位 : バッファアドレスポインタ中位 : バッファアドレスポインタ上位 :EI2OS ステータスレジスタ :I/O アドレスカウンタ : データカウンタ 図 17.5-3 連続モード時の EI2OS の起動例 起動開始 AN3 → 割込み→EI2OS AN4 → 割込み→EI2OS 全6回転送後 AN5 → 割込み→EI2OS 割込みシーケンス 終了 259 第 17 章 A/D コンバータ 停止モード時の EI2OS の起動例 17.5.3 停止モード時の EI2OS の起動例は , 次のとおりです。 • アナログ入力 AN3 を一定期間おいて 12 回変換する。 • 変換データは 600H ∼ 617H 番地に順に転送する。 • 起動は外部エッジ入力で行う。 • 割込みレベル最強 ■ 停止モード時の EI2OS の起動例 設定項目 プログラム例 MOV ICR03, #08H 動作説明 最強割込み設定 , 割込み時 EI2OS 起動 , ディスクリプタアドレ スの設定。 MOV BAPL, #00H MOV BAPM, #06H 変換データの転送先番地。 MOV BAPH, #00H EI2OS の設定 MOV ISCS, #18H ワードデータ転送 , 転送後転送先番地をインクリメントする。 I/O からメモリへ転送。リソースからの要求で終了しない。 MOV IOA, #36H 転送元アドレス MOV DCT, #0CH EI2OS 転送を 12 回行う。 MOV ADCS0, #DBH 停止モード , 開始チャネル AN3, 終了チャネル AN3 (1ch 変換) MOV ADCS1, #A4H 外部エッジ起動 ,A/D 変換開始 MOV ADCS1, #00H 割込みからの復帰 A/D コンバータ設定 EI2OS 終了割込み シーケンス ICR03 BAPL BAPM BAPH ISCS IOA DCT RET : 割込み制御レジスタ : バッファアドレスポインタ下位 : バッファアドレスポインタ中位 : バッファアドレスポインタ上位 :EI2 OS ステータスレジスタ :I/O アドレスカウンタ : データカウンタ 図 17.5-4 停止モード時の EI2OS の起動例 起動開始 AN3 → 割込み→EI2OS転送 12回転送後 停止 割込みシーケンス 外部エッジ起動 終了 260 第 17 章 A/D コンバータ 17.6 変換データ保護機能 A/D コンバータは , 変換データ保護機能を持ち EI2OS を使って連続変換と複数の データを確保できることを特長としています。 変換データレジスタは 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 が動 作し転送する前に変換データレジスタの内容が変わることがあります。 また , 一時停止中に再起動をかけると待機データが壊れます。 261 第 17 章 A/D コンバータ ■ データ保護機能のフロー例 (EI2OS の場合 ) 図 17.6-1 データ保護機能のフロー例 (EI2OS の場合 ) EI2OS設定 A/D連続変換起動 1回変換終了 データレジスタに格納 2回変換終了 EI2OS終了 EI2OS起動 NO A/D変換一時停止 YES YES データレジスタに格納 3回変換終了 EI2OS終了 * NO EI2OS起動 続く すべて変換終了 EI2OS起動 割込みルーチン 終了 A/D変換停止 *:一時停止中にコンバータを再度動作させると,待機中の変換データを そこないます。 ■ 変換データ保護機能の使用上の注意 A/D コンバータを外部トリガまたは内部タイマを使って起動する場合 ADCS1 レジスタ の A/D 起動要因ビット STS1, STS0 ビットで設定しますが , このときに外部トリガおよ び内部タイマの入力値はインアクティブ側の状態で設定してください。アクティブ側 にしておくと動作しはじめる場合があります。 STS1 ビットおよび STS0 ビットをセットする場合には必ず ,ADTG 端子に対して "1" (入力)を設定し内部タイマ(タイマ 2)に対しては "0"(出力)を設定してください。 262 第 18 章 UART0 UART0 の機能と動作について示します。 18.1 UART0 の特長 18.2 UART0 のブロックダイヤグラム 18.3 UART0 のレジスタ 18.4 UART0 の動作 18.5 ボーレート 18.6 内部クロックおよび外部クロック 18.7 転送データフォーマット 18.8 パリティビット 18.9 割込み生成とフラグのセットタイミング 18.10 UART0 の応用例 263 第 18 章 UART0 18.1 UART0 の特長 UART0 は , 外部デバイスと非同期(調歩同期)通信 , または CLK 同期通信を行うた めのシリアル I/O ポートです。 ■ UART0 の特長 UART0 には以下の特長があります。 • 全二重ダブルバッファ • CLK 同期と CLK 非同期調歩式データ転送のサポート • マルチプロセッサモードのサポート • 専用ボーレートジェネレータの内蔵(12 種類) • 外部クロック入力または内部タイマによる自由なボーレート設定のサポート • 可変長データ(7 ∼ 9 ビット [ パリティなし ],6 ∼ 8 ビット [ パリティあり ]) • エラー検出機能(パリティ , フレーミング , オーバラン) • 割込み機能(受信割込みと送信割込み) • NRZ 形式の転送フォーマット 264 第 18 章 UART0 UART0 のブロックダイヤグラム 18.2 図 18.2-1 に ,UART0 のブロックダイヤグラムを示します。 ■ UART0 のブロックダイヤグラム 図 18.2-1 UART0 のブロックダイヤグラム 制御信号 受信割込み (CPU へ ) 専用ボーレート クロック SCK0 16ビットリロード タイマ0 クロック 選択回路 送信クロック 送信割込み (CPU へ ) 受信クロック SCK0 SIN0 受信制御回路 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ SOT0 受信状態判定回路 受信用シフタ 送信用シフタ 受信終了 送信開始 UIDR0 UODR0 EI OS用 受信エラー発生信号 (CPU へ) 2 内部データバス UMC0 レジスタ PEN SBL MC1 MC0 SMDE RFC SCKE SOE USR0 レジスタ RDRF ORFE PE TDRE RIE TIE RBF TBF URD0 レジスタ BCH RC3 RC2 RC1 RC0 BCH0 P D8 制御信号 265 第 18 章 UART0 18.3 UART0 のレジスタ UART0 には , 次の 4 つのレジスタがあります。 • シリアルモードコントロールレジスタ • ステータスレジスタ • インプットデータ / アウトプットデータレジスタ • レート・データレジスタ ■ UART0 のレジスタ 図 18.3-1 UART0 のレジスタ シリアルモードコントロールレジスタ0 bit 7 6 アドレス:000020H リード/ライト 初期値 ステータスレジスタ0 アドレス:000021H リード/ライト 初期値 PEN SBL リード/ライト 初期値 レート・データレジスタ0 アドレス:000023H リード/ライト 初期値 266 4 3 2 1 0 MC1 MC0 SMDE RFC SCKE SOE (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) bit 15 14 12 11 10 9 8 RDRF ORFE PE TDRE RIE TIE RBF TBF (R) (0) (R) (0) (R) (1) (R/W) (R/W) (R) (0) (0) (0) (R) (0) 5 4 3 2 1 0 D5 D4 D3 D2 D1 D0 (R) (0) D7 D6 UMC0 (W) (R/W) (R/W) (0) (1) (0) 13 シリアルインプットデータレジスタ0 シリアルアウトプットデータレジスタ0 bit 7 6 アドレス:000022H 5 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 BCH RC3 RC2 RC1 RC0 BCH0 P D8 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (X) USR0 UIDR0(read) UODR0(write) URD0 第 18 章 UART0 18.3.1 シリアルモードコントロールレジスタ 0(UMC0) シリアルモードコントロールレジスタ 0(UMC0) は ,UART0 の動作モードを指定しま す。動作が停止中に動作モードを設定します。ただし ,RFC ビットは動作中もアク セス可能です。 ■ シリアルモードコントロールレジスタ 0(UMC0) 図 18.3-2 シリアルモードコントロールレジスタ 0(UMC0) シリアルモードコントロールレジスタ0 6 bit 7 アドレス:000020H PEN リード/ライト 初期値 SBL 5 4 3 2 1 0 MC1 MC0 SMDE RFC SCKE SOE (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) UMC0 (W) (R/W) (R/W) (0) (1) (0) [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) 転送データの長さを制御します。下表に , 本ビットで選択可能な 4 つの転送モード(デー タ長)を示します。 表 18.3-1 UART0 動作モード モード 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" に設定してください (詳細については , 「18.4 UART0 の動作」を参 照) 。送信データ長は 9 ビットで , パリティビットは追加できません。 267 第 18 章 UART0 [bit3] SMDE(Synchro mode enable) SMDE は , 転送方法を選択します。 0: 調歩式 CLK 同期転送 (調歩ビットによるクロック選択の同期転送) 1: 調歩式 CLK 非同期転送 [bit2] RFC (Receiver flag clear) "0" を書き込むと ,USR0 レジスタ中の 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 が "1111B" に設定されている場合 , 外部ク ロック入力端子として機能します。 1:UART0 シリアルクロック出力端子として機能します。 [bit0] SOE(Serial Output Enable) "1" を書き込むと , ポート端子が UART0 シリアルデータ出力端子に切り換わり , シリ アル出力が可能になります。 0: ポート端子として機能し , シリアルデータを出力しません。 1:UART0 シリアルデータ出力端子として機能します。 268 第 18 章 UART0 18.3.2 ステータスレジスタ 0(USR0) ステータスレジスタ 0(USR0) は ,UART0 ポートの現在の状態を示します。 ■ ステータスレジスタ 0(USR0) 図 18.3-3 ステータスレジスタ 0(USR0) ステータスレジスタ0 アドレス:000021H リード/ライト 初期値 bit 15 14 13 12 11 10 9 8 RDRF ORFE PE TDRE RIE TIE RBF TBF (R) (0) (R) (0) (R) (1) (R/W) (R/W) (R) (0) (0) (0) (R) (0) (R) (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: エラーあり 表 18.3-2 に ,RDRF または ORFE による受信完了後の UIDR0 の状態を示します。 表 18.3-2 受信完了後の UIDR0 の状態 RDRF ORFE 0 0 空 0 1 フレーミングエラー 1 0 有効データ 1 1 オーバランエラー UIDR0 データの状態 オーバランまたはフレーミングエラーが発生した場合 ,UIDR 中のデータは無効です。 次のデータはフラグクリア後に受信できます。 269 第 18 章 UART0 [bit13] PE(Parity Error) 受信パリティエラーが発生した場合にセットされるフラグです。UMC0 レジスタ中の 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: 送信側がビジー状態 270 第 18 章 UART0 18.3.3 インプットデータレジスタ 0(UIDR0) とアウトプット データレジスタ 0(UODR0) インプットデータレジスタ 0(UIDR0) は , シリアルインプットデータレジスタであり , アウトプットデータレジスタ 0(UODR0) は , シリアルアウトプットデータレジスタで す。 データ長が 6 ビットの場合最大有効ビットの D7 と D6 が無視され , データ長が 7 ビットの場合最大有効ビットの D7 が無視されます。USR レジスタ中の TDRE=1 の ときのみ UODR0 に書き込みし , USR レジスタ中の RDRF=1 のときのみ UIDR0 を 読出しできます。 ■ インプットデータレジスタ 0(UIDR0) とアウトプットデータレジスタ 0(UODR0) 図 18.3-4 インプットデータレジスタ 0(UIDR0) とアウトプットデータレジスタ 0(UODR0) シリアルインプットデータレジスタ0 シリアルアウトプットデータレジスタ0 6 bit 7 アドレス:000022H リード/ライト 初期値 D7 D6 5 4 3 2 1 0 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) UIDR0(read) UODR0(write) 271 第 18 章 UART0 レート・データレジスタ 0(URD0) 18.3.4 レート・データレジスタ 0(URD0) は ,UART0 用のデータ転送速度を選択するレジス タです。送信データ長が 9 ビットのとき , データの最大有効ビット (bit8) を保持しま す。UART0 が停止中にボーレートとパリティを設定してください。 ■ レート・データレジスタ 0(URD0) 図 18.3-5 レート・データレジスタ 0(URD0) レート・データレジスタ0 アドレス:000023H リード/ライト 初期値 bit 15 14 13 12 11 10 9 8 BCH RC3 RC2 RC1 RC0 BCH0 P D8 URD0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (X) [bit15, bit10] BCH, BCH0(Baud rate clock change) ボーレートクロック用のマシンサイクルを指定します ( 詳細については ,「18.5 ボー レート」を参照 )。 表 18.3-3 マシンサイクルの設定例 < 注意事項 > 272 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 を "00B " に設定しないでください。 第 18 章 UART0 [bit14 ∼ bit11] RC3 ∼ RC0(Rate control) UART0 ポート用のクロック入力を選択します (詳細については , 「18.5 ボーレート」 を参照)。 表 18.3-4 クロック入力選択 RC3 ∼ RC0 "0000B" ∼ "1011B" < 注意事項 > クロック入力 専用ボーレートジェネレータ "1101B" 16 ビットリロードタイマ 0 "1111B" 外部クロック レートコントロールビットを "1100B ", "1110B " に設定しないでください。 [bit9] P(Parity) パリティがアクティブのとき , 偶数 / 奇数パリティを設定します (PEN=1)。 0: 偶数パリティ 1: 奇数パリティ [bit8] D8 モード 2 または 3(9 ビットデータ長)およびパリティなしでの転送データの bit8 を保 持します。読出し時には UIDR0 レジスタの bit8 として , 書込み時には UODR0 レジス タの bit8 として扱われます。その他のモードでは意味を持ちません。USR0 レジスタ中 で TDRE=1 のときのみ D8 に書き込みます。 273 第 18 章 UART0 UART0 の動作 18.4 表 18.4-1 に ,UART0 の動作モードを示します。モードを切り換えるには ,UMC0 レ ジスタに値を設定します。 ■ UART0 の動作モード 表 18.4-1 UART0 の動作モード モード パリティ データ長 On 6 Off 7 On 7 Off 8 Off 8+1 On 8 Off 9 クロックモード ストップビット長 * CLK 非同期または CLK 同期 1 ビットまたは 2 ビット 0 1 2 3 *: ストップビット長については , 送信動作のみ指定が可能です。受信動作については常に 1 ビット 長となります。UART0 は上記モード以外では動作しませんので , 設定しないでください。 < 注意事項 > 274 UART0 は , 調歩クロック同期転送を使用するので , クロック同期転送でもスタート ビットとストップビットをデータに追加します。 第 18 章 UART0 18.5 ボーレート 専用ボーレートジェネレータ使用時には , 次の 2 種類があります。 • CLK 同期ボーレート • CLK 非同期ボーレート ■ CLK 同期ボーレート URD0 レジスタの BCH, BCH0, RC3, RC2, RC1 の 5 つのビットが CLK 同期転送用のボー レートを選択します。 最初に ,BCH, BCH0 ビットを使用してマシンクロック分周比を選択します。 BCH BCH0 0 1 ⇒ 4 で割る [例, 16MHz 時:16/4=4MHz] 1 0 ⇒ 3 で割る [例, 12MHz 時:12/3=4MHz] 1 1 ⇒ 5 で割る [例, 10MHz 時:10/5=2MHz] 次に , 上記で選択したクロックの分周比を RC3, RC2, RC1 ビットで設定します。CLK 同期転送には , 以下の 3 つの設定が可能です。それ以外の設定は禁止です。 RC3 RC2 RC1 0 1 0 ⇒ 2 で割る [例, 4MHz 時:4/2=2.0M(bps)] 0 1 1 ⇒ 4 で割る [例, 4MHz 時:4/4=1.0M(bps)] 1 0 0 ⇒ 8 で割る [例, 4MHz 時:4/8=0.5M(bps)] (2MHz では,上記の例の半分の速度になります。 ) ■ CLK 非同期ボーレート URD0 レジスタの BCH, BCH0, RC3, RC2, RC1, RC0 の 6 つのビットが CLK 非同期転送 用のボーレートを選択します。 最初に ,BCH, BCH0 ビットを使用してマシンクロック分周比を選択します。 BCH BCH0 0 1 ⇒ 4 で割る [例, 16MHz 時:16/4=4MHz] 1 0 ⇒ 3 で割る [例, 12MHz 時:12/3=4MHz] 1 1 ⇒ 5 で割る [例, 10MHz 時:10/5=2MHz] 次に,上記で選択したクロックの非同期転送クロック分周比をRC3, RC2, RC1, RC0ビッ トで設定します。CLK 同期転送には , 以下の設定が可能です。 275 第 18 章 UART0 RC3 RC2 RC1 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 RC0 ⇒ 8 で割る × × 0 ⇒ 12 で割る 1 ⇒ 13 で割る 0 ⇒ 設定禁止 1 ⇒ 8 で割る 上記の 12 個のボーレートが選択可能であり ,CLK 同期ボーレートの計算方法の公式を 以下に示します。 φ /4 [bps](マシンクロック= 16 MHz ) 2 m -1 φ /3 ボーレート = m -1 [bps](マシンクロック= 12 MHz ) 2 φ /5 ボーレート = m -1 [bps](マシンクロック= 10 MHz ) 2 ボーレート = ここで , φ はマシンクロックであり ,m は RC3 ∼ RC1 の 10 進数表記です。 < 注意事項 > m=0 または m=1 の場合 , 上記公式は計算不可です。 CLK 非同期ボーレートが -1% ∼ +1% の範囲にある場合 , データ転送が可能です。 ボーレートは ,CLK 非同期ボーレートを 8 × 13, 8 × 12, 8 で割った値です。 表 18.5-1 に , マシンクロックが 16MHz, 12MHz, 10MHz 時の例を示します。表中の "-" でマークした設定は使用しないでください。 表 18.5-1 ボーレート CLK 非同期 (µs/ ボー) RC3 RC2 RC1 RC0 CLK 同期 (µs/ ボー) 16 MHz 12 MHz 10 MHz BCH/ BCH0=01 BCH/ BCH0=10 BCH/ BCH0=11 CLK 非同期 分周比 16 MHz 12 MHz 10 MHz BCH/ BCH0=01 BCH/ BCH0=10 BCH/ BCH0=11 0 0 0 0 - - 48/ 20833 8 × 12 - - - 0 0 0 1 26/ 38460 26/ 38460 52/ 19230 8 × 13 - - - 0 0 1 0 - - - 8 - - - 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 16/ 62500 16/ 62500 32/ 31250 8 - - - 276 第 18 章 UART0 18.6 内部クロックおよび外部クロック RC3 ∼ RC0 ビットを "1101B" に設定すると ,16 ビットリロードタイマからのク ロック信号を選択することになります。RC3 ∼ RC0 を "1111B" に設定すると , 外部 クロックを選択することになります。なお , 外部クロックの最大周波数は 2MHz で す。 ■ 内部クロックおよび外部クロック CLK 非同期ボーレートは ,CLK 同期ボーレートを 8 で割ったものです。また ,CLK 非同 期ボーレートが選択したボーレート -1% ∼ +1% の範囲にある場合 , データ転送が可能 です。表 18.6-1 に , 内部タイマをクロックとして選択した場合のボーレートを示しま す。本表の値は , マシンクロックを 7.3728MHz として計算しています。ただし , 表中 の "-" でマークした設定は使用しないでください。 ボーレート= φ /X [bps] 8×2(n+ 1) φ:マシンクロック X :内部クロックのカウントクロックソースを割る比率 n:リロード値 (10 進数) 表 18.6-1 ボーレートとリロード値 X=21 (マシンクロックの 2 分周) X=23 (マシンクロックの 8 分周) 76800 2 − 38400 5 − 19200 11 2 9600 23 5 4800 47 11 2400 95 23 1200 191 47 600 383 95 300 767 191 リロード値 ボーレート (bps) 表中の値は ,16 ビットリロードタイマのリロードカウント動作のリロード値(10 進数)です。 277 第 18 章 UART0 18.7 転送データフォーマット UART0 は ,NRZ(non-return-to-zero) 形式のデータのみを扱います。図 18.7-1 に , 送 受信クロックと CLK 同期モードのデータとの関係を示します。 ■ 転送データフォーマット 図 18.7-1 転送データフォーマット SCK0 SIN0,SOT0 0 1 Start LSB 0 1 1 0 0 1 0 1 1 モードに MSB Stop D8 Stop 依存 転送されたデータは,"01001101B"(モード1)または,"101001101B"(モード3) 図 18.7-1 に示すように , 転送データは必ずスタートビット("L" レベルデータ)より始 まり ,LSB ファーストで指定されたデータビット長転送が行われ , ストップビット ("H" レベルデータ)で終了します。外部クロックを選択している場合は , 常にクロックを入 力してください。 内部クロック(専用ボーレートジェネレータまたは 16 ビットリロードタイマ)を選択 している場合 , クロックは連続的に出力されます。CLK 同期転送を使用する場合 , 選択 したボーレートクロックが安定(2 ボーレートクロックサイクル)するまでデータ転送 を開始しないでください。 CLK 非同期転送を使用する場合 ,UMC0 レジスタ中の SCKE ビットを "0" に設定し , ク ロック出力を無効にしてください。SIN0 と SOUT0 の転送データフォーマットは , 図 18.7-1 に示すものと同じです。 278 第 18 章 UART0 18.8 パリティビット URD0 レジスタ中の P(パリティ)ビットは , パリティが許可されている場合に偶 数 / 奇数パリティのどちらを使用するかを指定します。UMC0 レジスタ中の PEN (パリティイネーブル)ビットはパリティを許可します。 ■ パリティビット 偶数パリティ設定時に 図 18.8-1 に示すデータを SIN0 に入力すると , 受信パリティエ ラーが発生します。図 18.8-1 には , "001101B" を偶数 / 奇数パリティで送信時に送信さ れるデータも示しています。 図 18.8-1 パリティを許可したシリアルデータ (受信パリティエラー発生P=0) SIN0 0 1 0 Start LSB 1 1 0 0 0 1 MSB ↑ Stop (パリティ) (偶数パリティ送信P=0) SOT0 0 1 0 Start LSB 1 1 0 0 1 1 MSB ↑ Stop (パリティ) 0 1 0 Start LSB 1 1 0 0 0 1 MSB ↑ Stop (パリティ) (奇数パリティ送信P=1) SOT0 279 第 18 章 UART0 18.9 割込み生成とフラグのセットタイミング UART0 には , 2 つの割込み要因と 6 個のフラグがあります。2 つの割込み要因には , 受信割込みと送信割込みがあります。6 個のフラグとは ,RDRF, ORFE, PE, TDRE, RBF, TBF です。受信については ,RDRF, ORFE, PE フラグが割込みを要求します。 送信については ,TDRE フラグが割込みを要求します。 ■ 6 つのフラグのセットタイミング ● RDRF フラグ RDRF フラグは UIDR0 レジスタに受信データがロードされるとセットされます。 UMC0 レジスタ中の RFC ビットに "0" を書き込むか ,UIDR0 レジスタを読み出すと , クリアさ れます。 ● ORFE フラグ ORFE フラグは , オーバランまたはフレーミングエラーフラグです。受信エラーが発生 した場合にセットされ ,UMC0 レジスタ中の RFC ビットに "0" を書き込むと , クリアさ れます。 ● PE フラグ PE フラグは , 受信パリティエラーフラグです。受信パリティエラーが発生した場合に セットされ ,UMC0 レジスタ中の RFC ビットに "0" を書き込むと , クリアされます。パ リティ検出機能はモード 2 では有効ではないので注意してください。 ● TDRE フラグ TDRE フラグは ,UODR0 レジスタが空になり書込み可能になったときにセットされ , UODR0 レジスタに書込みを行うと , クリアされます。上記の 4 個のフラグ (RDRF, ORFE, PE, TDRE) は , 送受信割込みを起動します。 ● RBF と TBF フラグ RBF と TBF フラグは , 受信または送信が進行中であることを示します。RBF フラグは 受信中にアクティブになります。TBF フラグは送信中にアクティブになります。 280 第 18 章 UART0 18.9.1 受信動作時 ( モード 0, モード 1, モード 3) のフラグの セットタイミング RDRF, ORFE, PE フラグは , 受信転送が終了し最後のストップビットを検出すると きにセットされ ,CPU への割込み要求が発生します。ORFE, PE のどちらかのビッ トがアクティブ時には ,UIDR0 中のデータは無効となります。 ■ 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング 図 18.9-1 , 図 18.9-2 , 図 18.9-3 に , RDRF, ORFE, PE フラグのセットタイミングを示しま す。 図 18.9-1 RDRF のセットタイミング ( モード 0, モード 1, モード 3) (Stop) Stop データ RDRF 受信書込み 図 18.9-2 ORFE のセットタイミング(モード 0, モード 1, モード 3) Stop データ RDRF = 1 RDRF = 0 ORFE ORFE 受信割込み Stop データ 受信割込み (フレーミングエラー) (オーバランエラー) 図 18.9-3 PE のセットタイミング(モード 0, モード 1, モード 3) データ Stop (Stop) PE 受信割込み 281 第 18 章 UART0 18.9.2 受信動作時 ( モード 2) のフラグのセットタイミング RDRF フラグは , 最後のストップビットを検出し , 最後のデータビット (D8) の値が "1" で受信転送が終了するときにセットされます。 ORFE フラグは , 最後のデータビット (D8) の値に無関係に , 最後のストップビット を検出するときにセットされます。ORFE ビットがアクティブ時には ,UIDR0 中の データは無効となります。 どれかのフラグがセットされると ,CPU への割込み要求が発生します ( モード 2 の 使用法の詳細については , 「18.10 UART0 の応用例」を参照)。 ■ 受信動作時 ( モード 2) のフラグのセットタイミング 図 18.9-4 RDRF のセットタイミング ( モード 2) データ D6 D7 Stop D8 (Stop) RDRF 受信割込み 図 18.9-5 ORFE のセットタイミング ( モード 2) データ D7 D8 Stop RDRF = 1 RDRF=0 ORFE ORFE 受信割込み D8 Stop 受信割込み (オーバランエラー) 282 データ D7 (フレーミングエラー) 第 18 章 UART0 18.9.3 送信動作時のフラグのセットタイミング 送信動作時に UODR0 フラグに書き込まれたデータは , 内部シフトレジスタに転送さ れます。このとき ,TDRE フラグがセットされ ,CPU への割込み要求が発生して , 次 のデータを UODR0 フラグに書込みができるようになります。 ■ 送信動作時のフラグのセットタイミング 図 18.9-6 TDRE のセットタイミング ( モード 0) UODR0書込み TDRE CPUへ割込みを要求する。 送信割込み SOT0出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3 ST :スタートビット D0~D7:データビット SP :ストップビット 283 第 18 章 UART0 送受信動作時のステータスフラグ 18.9.4 送受信動作時に ,RBF フラグは , スタートビットが検出されるとセットされ , ストッ プビットが検出されるとクリアされます。UIDR0 中の受信データは ,RBF クリアタ イミングではまだ無効状態です。UIDR0 中のデータは ,RDRF セットタイミングで 有効になります。 ■ 送受信動作時のステータスフラグ 図 18.9-7 に ,RBF と受信割込みフラグのタイミングとの関係を示します。 図 18.9-7 RBF のセットタイミング ( モード 0) SIN0入力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP RBF RDRF,PE,ORFE UODR0 に送信データを書き込むと ,TBF がセットされ , 送信が完了するとクリアされ ます。 図 18.9-8 TBF のセットタイミング ( モード 0) UODR0ライト SOT0出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP TBF < 注意事項 > SIN0 入力端子が "1" に固定されていない限り , 受信動作はリセットのリリース後 に開始します。このため , モードを設定する前に ,UMC0 レジスタ中の RFC に "0" を書き込み , セットされているすべての受信フラグをクリアしてください。 USR0 レジスタ中の RBF と TBF フラグが "0" のとき , 通信モードをセットしてく ださい。モード設定中の送受信データは保証されません。 ■ EI2OS( 拡張インテリジェント I/O サービス ) 拡張インテリジェント I/O サービス (EI2OS) の詳細については ,「3.6 拡張インテリジェ ント I/O サービス (EI2OS)」を参照してください。 284 第 18 章 UART0 18.10 UART0 の応用例 モード 2 は ,1 台のホスト CPU の数台のスレーブ CPU が接続されるような場合に使 用されます ( 図 18.10-1 を参照 )。 ■ 応用例 図 18.10-1 に示すように , 通信は , ホスト CPU がアドレスデータを転送することによっ て始まります。アドレスデータは ,9 番目のビット (D8) が "1" にセットされています。 これにより通信先となるスレーブ CPU が選択され , ユーザが決定したプロトコルを使 用してホスト CPU との通信を行います。通常データは D8 が "0" にセットされていま す。非選択のスレーブ CPU は , 次の通信セッションが始まるまでスタンバイ状態で待 機します。図 18.10-2 に , 本モードでの動作フローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので ,UMC0 レジスタ の PEN ビットは "0" としてください。 図 18.10-1 モード 2 使用時のシステム構築例 SOT0 SIN0 ホストCPU SOT0 SIN0 SOT0 SIN0 スレーブCPU #0 スレーブCPU #1 285 第 18 章 UART0 図 18.10-2 モード 2 使用時の通信フローチャート (ホスト CPU ) (スレーブCPU) START START 転送モードを"3"とする 転送モードを"2"にセット D0 ~ D7 にスレーブCPU選択, D8に"1"をセットし,1バイト 転送 1バイト受信 NO 選択? D8に"0"をセットし,通信 を実行 END YES 転送モードを"3"にセットし, SOT0出力を許可 マスターCPUで通信を実行 ステータスフラグを使用し て転送の完了を確認,転送 モードを"2"にセットして, SOT0出力を禁止 286 第 19 章 UART1(SCI) UART1(SCI) の機能と動作について示します。 19.1 UART1 の特長 19.2 UART1 のブロックダイヤグラム 19.3 UART1 のレジスタ一覧 19.4 UART1 の動作モードとクロック選択 19.5 UART1 のフラグと割込み発生要因 19.6 UART1 の割込みとフラグのセットタイミング 19.7 ネガティブクロック動作 19.8 UART1 の応用例と使用上の注意 287 第 19 章 UART1(SCI) 19.1 UART1 の特長 UART1 は , 非同期(調歩同期)通信 , または CLK 同期通信を行うためのシリアル I/O ポートです。 ■ UART1 の特長 UART には以下の特長があります。 • 全二重ダブルバッファ • 非同期(調歩同期),CLK 同期通信が可能 • マルチプロセッサモードのサポート • 専用ボーレートジェネレータ内蔵 • 外部クロックによる自由なボーレートの設定が可能 • エラー検出機能(パリティ , フレーミング , オーバラン) • 転送信号は NRZ 符号 • 拡張インテリジェント I/O サービスのサポート 288 第 19 章 UART1(SCI) 19.2 UART1 のブロックダイヤグラム 図 19.2-1 に ,UART1 のブロックダイヤグラムを示します。 ■ UART1 のブロックダイヤグラム 図 19.2-1 UART1 のブロックダイヤグラム 制御信号 受信割込み (CPU へ ) 専用ボーレート ジェネレータ 16ビットリロード タイマ0 SCK1 クロック 選択回路 送信割込み (CPU へ ) 送信クロック 受信クロック 外部クロック SIN1 受信制御回路 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ SOT1 受信状態判定回路 受信用シフタ 送信用シフタ 受信終了 送信開始 SIDR1 SODR1 EI2OS用 受信エラー発生信号 (CPU へ) 内部データバス SMR1 レジスタ MD1 MD0 CS2 CS1 CS0 SCKE SOE SCR1 レジスタ PEN P SBL CL A/D REC RXE TXE SSR1 レジスタ PE ORE FRE RDRF TDRE RIE TIE 制御信号 289 第 19 章 UART1(SCI) 19.3 UART1 のレジスタ一覧 図 19.3-2 に ,UART1 のレジスタ一覧を示します。 ■ UART1 のレジスタ一覧 図 19.3-1 UART1 のレジスタ構成 bit 15 8 bit 0 7 SCR1 SMR1 (R/W) SSR1 SIDR1(R)/SODR1(W) (R/W) - U1CDCR (R/W) 8bit 8bit 図 19.3-2 UART1 のレジスタ一覧 シリアルモードレジスタ1 アドレス:000024H リード/ライト 初期値 bit 7 MD1 リード/ライト 初期値 5 4 3 2 1 0 MD0 CS2 CS1 CS0 UPCL SCKE SOE PEN 14 13 12 11 10 9 8 P SBL CL A/D REC RXE TXE (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) シリアルインプットデータレジスタ1/ シリアルアウトプットデータレジスタ1 bit 7 6 アドレス:000026H リード/ライト 初期値 D7 D6 4 3 2 1 0 D5 D4 D3 D2 D1 D0 14 13 12 11 10 9 8 アドレス:000027H PE ORE FRE RDRF TDRE BDS RIE TIE リード/ライト 初期値 (R) (0) (R) (0) (R) (0) (R) (0) (R) (R/W) (R/W) (R/W) (1) (0) (0) (0) 5 4 - - (-) (-) (-) (-) リード/ライト 初期値 290 5 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) UART1プリスケーラコントロールレジスタ bit 7 6 MD - (R/W) (0) (-) (-) 3 SCR1 (W) (R/W) (R/W) (0) (1) (0) シリアルステータスレジスタ1 bit 15 アドレス:000028H SMR1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) シリアルコントロールレジスタ1 bit 15 アドレス:000025H 6 2 DIV3 DIV2 1 SIDR1(read) SODR1(write) SSR1 0 DIV1 DIV0 (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) U1CDCR 第 19 章 UART1(SCI) シリアルモードレジスタ 1(SMR1) 19.3.1 シリアルモードレジスタ 1(SMR1) は ,UART1 の動作モードを指定します。動作モー ドの設定は動作停止中に行い , 動作中にこのレジスタへの書込みは行わないでくださ い。 ■ シリアルモードレジスタ 1(SMR1) シリアルモードレジスタ 1(SMR1) のビット構成を以下に示します。 図 19.3-3 シリアルモードレジスタ 1(SMR1) シリアルモードレジスタ1 アドレス:000024H リード/ライト 初期値 bit 7 MD1 6 5 4 3 2 1 0 MD0 CS2 CS1 CS0 UPCL SCKE SOE SMR1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) [bit7, bit6] MD1, MD0(MoDe select) このビットでは ,UART1 の動作モードを選択します。表 19.3-1 に , 動作モード選択設定 を示します。 表 19.3-1 動作モード選択設定 < 注意事項 > モード MD1 MD0 0 0 0 非同期(調歩同期)ノーマルモード 1 0 1 非同期(調歩同期)マルチプロセッサモード 2 1 0 CLK 同期モード - 1 1 設定禁止 動作モード モード 1 の非同期 ( 調歩同期 ) マルチプロセッサモードとは ,1 台のホスト CPU に 数台のスレーブ CPU が接続される使用法です。本リソースでは , 受信データの データ形式を判別できません。したがって , 非同期 ( 調歩同期 ) マルチプロセッサ モードのマスタのみをサポートします。 また , パリティチェック機能は使用できませんので UMC1 レジスタの PEN は "0" に設定してください。 291 第 19 章 UART1(SCI) [bit5 ∼ bit3] CS2 ∼ CS0 (Clock Select) このビットでは , ボーレートクロックソースを選択します。専用ボーレートジェネレー タを選択した場合には ,同時にボーレートも決定されます。表 19.3-2 にクロック入力選 択設定を示します。 表 19.3-2 クロック入力選択設定 CS2 ∼ CS0 000B ∼ 101B クロック入力 専用ボーレートジェネレータ 110B 内部タイマ * 111B 外部クロック *: 内部タイマを選択した場合 ,MB90440G シリーズでは 16 ビットリロードタイマ 0 出力が選択されます。 [bit2] UPCL UART1 のリセットビットです。 "1" を書込むと UART1 のすべてのレジスタを初期化します。 "0" の書込みは意味がありません。 [bit1] SCKE (SCLK Enable) CLK 同期モード(モード 2)で通信を行う場合 ,SCK1 端子をクロック入力端子にする か , クロック出力端子として使うかを指定します。 CLK 非同期モード時または外部クロックモード時では "0" に設定してください。 0: クロック入力端子として機能します。 1: クロック出力端子として機能します。 < 注意事項 > クロック入力端子として使うには , 外部クロックソースが選択されている必要があ ります。 [bit0] SOE (Serial Output Enable) 汎用 I/O ポート端子と兼用されている外部端子 (SOT1) を , シリアル出力端子として使 うか ,I/O ポート端子として使うかを指定します。 0: 汎用 I/O ポート端子として機能します。 1: シリアルデータ出力端子 (SOT1) として機能します。 292 第 19 章 UART1(SCI) シリアルコントロールレジスタ 1(SCR1) 19.3.2 シリアルコントロールレジスタ 1(SCR1) は , シリアル通信を行う場合の転送プロト コルを制御します。 ■ シリアルコントロールレジスタ 1(SCR1) 図 19.3-4 に , シリアルコントロールレジスタ 1(SCR1) のビット構成を示します。 図 19.3-4 シリアルコントロールレジスタ 1(SCR1) のレジスタ一覧 シリアルコントロールレジスタ1 bit 15 アドレス:000025H リード/ライト 初期値 PEN 14 13 12 11 10 9 8 P SBL CL A/D REC RXE TXE (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) SCR1 (W) (R/W) (R/W) (0) (1) (0) [bit15] PEN(Parity Enable) シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定します。 0: パリティなし 1: パリティあり < 注意事項 > パリティを付加できるのは , 非同期 ( 調歩同期 ) ノーマルモードのノーマルモード ( モード 0) のみです。非同期 ( 調歩同期 ) マルチプロセッサモードおよび CLK 同期 モード ( モード 2) では , パリティを付加することはできません。 [bit14] P(Parity) パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。 0: 偶数パリティ 1: 奇数パリティ [bit13] SBL(Stop Bit Length) 非同期(調歩同期)通信を行うときのフレームエンドマークである , ストップビットの ビット長を指定します。 0:1 ストップビット 1:2 ストップビット 293 第 19 章 UART1(SCI) [bit12] CL(Character Length) 送受信する 1 フレームのデータ長を指定します。 0:7 ビットデータ 1:8 ビットデータ < 注意事項 > 7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) ノーマルモードのうちのノーマル モード ( モード 0) のみです。非同期 ( 調歩同期 ) マルチプロセッサモード ( モード 1) および CLK 同期モード ( モード 2) では ,8 ビットデータとしてください。 [bit11] A/D(Address/Data) 非同期(調歩同期)通信のマルチプロセッサモード(モード 1)において , 送信するフ レームのデータ形式を指定します。 0: データフレーム 1: アドレスフレーム [bit10] REC(Receiver Error Clear) SSR1 レジスタのエラーフラグ (PE, ORE, FRE) をクリアします。 "1" 書込みは無効であり , 読出し値は常に "1" になります。 [bit9] RXE(Receiver Enable) UART1 の受信動作を制御します。 0: 受信動作を禁止します。 1: 受信動作を許可します。 < 注意事項 > 受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止し た場合には , そのフレームの受信を完了し受信データバッファ SIDR1 レジスタに 受信データをストアしたところで受信動作を停止します。 [bit8] TXE(Transmitter Enable) UART1 の送信動作を制御します。 0: 送信動作を禁止します。 1: 送信動作を許可します。 < 注意事項 > 294 送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場 合は , 送信データバッファ SODR1 レジスタにデータがなくなった後に送信動作を 停止します。 "0" の書込みは ,SODR1 レジスタにデータを書き込んだ後は , 一定の期間を置いて 行ってください。一定の期間は , クロック非同期転送モード時は , ボーレートの 1/16 時間です。クロック同期転送モード時は , ボーレートの時間です。 第 19 章 UART1(SCI) シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1(SODR1) 19.3.3 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジス タ 1(SODR1) レジスタは , 受信 / 送信用のデータバッファレジスタです。 ■ シリアルインプットデータレジスタ1(SIDR1)/シリアルアウトプットデータレジス タ 1(SODR1) SIDR1 と SODR1 のビット構成を以下に示します。 図 19.3-5 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1(SODR1) シリアルインプットデータレジスタ1 シリアルアウトプットデータレジスタ1 6 bit 7 アドレス:000026H リード/ライト 初期値 D7 D6 5 4 3 2 1 0 D5 D4 D3 D2 D1 D0 SIDR1(read) SODR1(write) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) シリアルインプットデータレジスタ 1(SIDR1) は , シリアルデータ受信用のデータバッ ファレジスタです。シリアルアウトプットデータレジスタ 1(SODR1) は , シリアルデー タ送信用のデータバッファレジスタです。データ長が 7 ビットの場合 , 上位 1 ビット (D7) は無効データとなります。SODR1 レジスタへの書込みは ,SSR1 レジスタの TDRE が "1" のときに行ってください。 < 注意事項 > このアドレスへの書込みは SODR1 レジスタへの書込みを , 読出しは SIDR1 レジス タの読出しを意味します。 295 第 19 章 UART1(SCI) 19.3.4 シリアルステータスレジスタ 1(SSR1) シリアルステータスレジスタ 1(SSR1) は ,UART1 の動作状態を表すフラグで構成さ れています。 ■ シリアルステータスレジスタ 1(SSR1) シリアルステータスレジスタ 1(SSR1) のビット構成を以下に示します。 図 19.3-6 シリアルステータスレジスタ 1(SSR1) シリアルステータスレジスタ1 bit 15 14 13 12 11 10 9 8 アドレス:000027H PE ORE FRE RDRF TDRE BDS RIE TIE リード/ライト 初期値 (R) (0) (R) (0) (R) (0) (R) (0) (R) (R/W) (R/W) (R/W) (1) (0) (0) (0) SSR1 [bit15] PE(Parity Error) 受信時にパリティエラーが発生したときにセットされる , 割込み要求フラグです。一度 セットされたフラグをクリアするには ,SCR1 レジスタの REC ビット (bit10) に "0" を書 き込みます。 本ビットがセットされた場合には ,SIDR1 のデータは無効となります。 0: パリティエラーなし 1: パリティエラー発生 [bit14] ORE(Over Run Error) 受信時にオーバランエラーが発生したときにセットされる , 割込み要求フラグです。一 度セットされたフラグをクリアするには ,SCR1 レジスタの REC ビット (bit10) に "0" を 書き込みます。 本ビットがセットされた場合には ,SIDR1 のデータは無効となります。 0: オーバランエラーなし 1: オーバランエラー発生 [bit13] FRE(Framing Error) 受信時にフレーミングエラーが発生したときにセットされる , 割込み要求フラグです。 一度セットされたフラグをクリアするには ,SCR1 レジスタの REC ビット (bit10) に "0" を書き込みます。 本ビットがセットされた場合には ,SIDR1 のデータは無効となります。 0: フレーミングエラーなし 1: フレーミングエラー発生 296 第 19 章 UART1(SCI) [bit12] RDRF(Receiver Data Register Full) SIDR1 レジスタに受信データがあることを示す , 割込み要求フラグです。 SIDR1 レジスタに受信データがロードされるとセットされ ,SIDR1 レジスタを読み出す と自動的にクリアされます。 0: 受信データなし 1: 受信データあり [bit11] TDRE(Transmitter Data Register Empty) SODR1 に送信データを書き込めることを示す , 割込み要求フラグです。 SODR1 レジスタに送信データを書き込むとクリアされます。書き込んだデータが送信 用シフタにロードされて転送が開始されると再びセットされ,次の送信データを書き込 めることを表します。 0: 送信データの書込み禁止 1: 送信データの書込み許可 [bit10] BDS(Bit Direction Select) シリアルデータを最下位ビット側から先に転送するか(LSB ファースト), 最上位ビッ ト側から転送するか(MSB ファースト)を選択します。 0:LSB ファースト 1:MSB ファースト [bit9] RIE(Receiver Interrupt Enable) 受信割込みを制御します。 0: 割込みを禁止します。 1: 割込みを許可します。 < 注意事項 > 受信割込み要因は ,PE, ORE, FRE によるエラー発生のほか ,RDRF による正常受信 があります。 [bit8] TIE(Transmitter Interrupt Enable) 送信割込みを制御します。 0: 割込みを禁止します。 1: 割込みを許可します。 < 注意事項 > 送信割込み要因は ,TDRE フラグによる送信要求も含みます。 297 第 19 章 UART1(SCI) 19.3.5 UART1 プリスケーラコントロールレジスタ (U1CDCR) UART1 プリスケーラコントロールレジスタ (U1CDCR) は , マシンクロックの分周を 制御するレジスタです。UART1 の動作クロックは , マシンクロックを分周すること により得られます。この通信プリスケーラによって , 種々のマシンクロックに対して 一定のボーレートが得られるように設計されています。 本通信プリスケーラ出力は , 拡張 I/O シリアルインタフェースの動作クロックにも使 われています。 ■ UART1 プリスケーラコントロールレジスタ (U1CDCR) U1CDCR のビット構成を以下に示します。 図 19.3-7 UART1 プリスケーラコントロールレジスタ (U1CDCR) UART1プリスケーラコントロールレジスタ 6 bit 7 アドレス:000028H リード/ライト 初期値 MD - (R/W) (0) (-) (-) 5 4 - - (-) (-) (-) (-) 3 2 1 DIV3 DIV2 0 DIV1 DIV0 U1CDCR (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) [bit7] MD(Machine clock devide MoDe select) 通信プリスケーラの動作許可ビットです。 0: 通信プリスケーラは停止します。 1: 通信プリスケーラは動作します。 [bit3 ∼ bit0] DIV3 ∼ DIV0 (DIVide 3 ∼ DIVide0) 表 19.3-3 に示す表に従い , マシンクロックの分周比を決定します。 表 19.3-3 マシンクロックの分周比 DIV3 DIV2 DIV1 DIV0 分周比 * 0 0 0 0 1 分周 0 0 0 1 2 分周 0 0 1 0 3 分周 0 0 1 1 4 分周 0 1 0 0 5 分周 0 1 0 1 6 分周 0 1 1 0 7 分周 0 1 1 1 8 分周 *: 分周比を変えた場合はクロックの安定時間として 2 周期分の から通信を行ってください。 298 時間を置いて 第 19 章 UART1(SCI) UART1 の動作モードとクロック選択 19.4 UART1 は , 非同期モードと CLK 同期モードの 2 種類の動作モードを持ち ,SMR1 レ ジスタ ,SCR1 レジスタに値を設定することによりモードを切り換えることができま す。 ■ UART1 の動作モード 表 19.4-1 に ,UART1 の動作モードを示します。 表 19.4-1 UART1 の動作モード モード パリティ データ長 有/無 7 有/無 8 1 無 8+1 2 無 8 0 動作モード ストップビット長 非同期(調歩同期)ノーマルモード < 注意事項 > 1 ビットまたは 2 ビット 非同期(調歩同期)マルチプロセッサ モード CLK 同期モード 無 非同期 ( 調歩同期 ) モードでのストップビット長については , 送信動作のみ指定が 可能です。受信動作 については常に 1 ビット長となります。上記モード以外では 動作しませんので , 設定しないでください。 ■ UART1 のクロック選択 ● 専用ボーレートジェネレータ 専用ボーレートジェネレータを選択したときのボーレートを 表 19.4-2 および表 19.4-3 に示します。また , 通信プリスケーラ設定値を 表 19.4-4 に示します。 なお , 表中の φ はマシンクロックを示します。 表 19.4-2 ボーレート(非同期時) CS2 CS1 CS0 φ/div=1MHz φ/div=2MHz φ/div=4MHz φ/div=8MHz 0 0 0 4808 9615 19230 38460 (φ/div)/(8 × 13 × 2) 0 0 1 2404 4808 9615 19230 (φ/div)/(8 × 13 × 22) 0 1 0 1202 2404 4808 9615 (φ/div)/(8 × 13 × 23) 0 1 1 601 1202 2404 4808 (φ/div)/(8 × 13 × 24) 1 0 0 31250 62500 125k 250k (φ/div)/25 1 0 1 15625 31250 62500 125k (φ/div)/26 算出式 299 第 19 章 UART1(SCI) 表 19.4-3 ボーレート (CLK 同期時) CS2 CS1 CS0 φ/div=1MHz φ/div=2MHz φ/div=4MHz φ/div=8MHz 0 0 0 1M 2M - - (φ/div)/1 0 0 1 500k 1M 2M - (φ/div)/2 0 1 0 250k 500k 1M 2M (φ/div)/22 0 1 1 125k 250k 500k 1M (φ/div)/23 1 0 0 62500 125k 250k 500k (φ/div)/24 1 0 1 31250 62500 125k 250k (φ/div)/25 算出式 表 19.4-4 通信プリスケーラ設定値 推奨マシンクロック φ div DIV3 DIV2 DIV1 DIV0 4MHz 4 0 0 1 1 6MHz 6 0 1 0 1 8MHz 8 0 1 1 1 6MHz 3 0 0 1 0 8MHz 4 0 0 1 1 10MHz 5 0 1 0 0 12MHz 6 0 1 0 1 14MHz 7 0 1 1 0 16MHz 8 0 1 1 1 8MHz 2 0 0 0 1 12MHz 3 0 0 1 0 16MHz 4 0 0 1 1 16MHz 2 0 0 0 1 φ/div 1MHz 2MHz 300 4MHz 8MHz 第 19 章 UART1(SCI) ● 内部タイマ CS2 ∼ CS0 ビットを "110B" に設定して内部タイマを選択した場合は , リロードタイマ 0(16 ビット 動作時 ) をリロードモードで動作させます。このときのボーレートの算出 式は , 次のとおりです。 非同期 ( 調歩同期 ) : (φ/N)/(16 × 2 × (n+1)) CLK 同期 : (φ/N)/(2 × (n+1)) N: タイマのカウントクロックソース n: タイマのリロード値 マシンクロックを 7.3728MHz としたときのボーレートとリロード値 (10 進数 ) の関係 を , 表 19.4-5 に示します。 表 19.4-5 ボーレートとリロード値 リロード値 ボーレート (bps) N=21 N=23 (マシンクロックの 2 分周) (マシンクロックの 8 分周) 38400 2 - 19200 5 - 9600 11 2 4800 23 5 2400 47 11 1200 95 23 600 191 47 300 383 95 ボーレートクロックソースとして内部タイマ(16 ビットタイマ 0)を選択した場合に は ,16 ビットタイマ 0 の出力信号 TOT0 は , 既に MB90440G コントローラに内部的に接 続されていることに注意してください。したがって ,16 ビットタイマ 0 の外部出力端子 TOT0 から UART1 の外部クロック入力端子 SCK1 へ外部で接続する必要はありません。 また , タイマ端子をほかに使用していなければ ,I/O ポート端子として使用することが できます。 ● 外部クロック CS2 ∼ CS0 を "111" に設定して外部クロックを選択した場合のボーレートは , 外部ク ロックの周波数を f とすると次のようになります。 非同期(調歩同期): f/16 CLK 同期 : f f の最大値は 2MHz であることに , 注意してください。 301 第 19 章 UART1(SCI) 19.4.1 非同期 ( 調歩同期 ) モード UART1 は ,NRZ(Non Return to Zero) 形式のデータのみを扱います。 ■ 非同期 ( 調歩同期 ) モードの転送データフォーマット 図 19.4-1 に , 転送データフォーマットを示します。 図 19.4-1 非同期 ( 調歩同期 ) モードの転送データフォーマット ( モード 0, モード 1) SIN1,SOT1 0 1 Start LSB 0 1 1 0 0 1 転送されたデータは,"01001101B" 0 1 1 MSB Stop A/D Stop (モード0) (モード1) 図 19.4-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始 まり , 指定されたデータビット長転送が行われ , ストップビット ("H" レベルデータ ) で 終了します。外部クロックを選択している場合は , 常にクロックを入力してください。 ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定することが できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。 また , マルチプロセッサモードではパリティを付加することはできません。そのかわ り ,A/D ビットが必ず付加されます。 ■ 非同期 ( 調歩同期 ) モードの受信動作 シリアルコントロールレジスタ 1(SCR1) 内の RXE ビットが "1" ならば , 常に受信動作 が行われています。スタートビットを検出すると ,SCR1 レジスタで決められたデータ フォーマットに従い ,1 フレームデータの受信が行われます。1 フレームの受信が終わ ると , エラーが発生した場合にはエラーフラグのセットが行われたあと , シリアルス テータスレジスタ 1(SSR1) 内の RDRF フラグがセットされます。この場合 , 同じ SSR1 レジスタの RIE ビットが "1" にセットされていれば CPU に対して受信割込みが発生し ます。SSR1 レジスタの各フラグを調べ , 正常受信ならシリアルインプットデータレジ スタ 1(SIDR1) をリードして , エラーが発生していれば必要なエラー処理をしてくださ い。RDRF フラグは SIDR1 レジスタをリードするとクリアされます。 ■ 非同期 ( 調歩同期 ) モードの送信動作 シリアルステータスレジスタ 1(SSR1) 内の TDRE フラグが "1" の場合 , シリアルアウト プットデータレジスタ 1(SODR1) に送信データを書き込みます。ここでシリアルコン トロールレジスタ 1(SCR1) 内の TXE ビットが "1" なら送信が行われます。SODR1 レジ スタにセットしたデータが送信用シフトレジスタにロードされて送信が開始されると SSR1 レジスタ内の TDRE フラグが再びセットされ , 次の送信データをセットできるよ うになります。この場合 , 同じ SSR1 レジスタ内の TIE ビットが "1" にセットされてい れば CPU に対して送信割込みが発生して ,SODR1 レジスタに送信データをセットする ように要求します。SSR1 レジスタ内の TDRE フラグは SODR1 レジスタにデータを セットするとクリアされます。 302 第 19 章 UART1(SCI) 19.4.2 CLK 同期モード UART1 は ,NRZ(Non Return to Zero) 形式のデータのみを扱います。 ■ CLK 同期モードの転送データフォーマット 図 19.4-2 に , 送受信クロックとデータとの関係を示します。 図 19.4-2 CLK 同期モードの転送データフォーマット ( モード 2) SODR1書込み マーク SCLK RXE,TXE SIN1,SOT1 1 0 LSB 1 1 0 0 1 0 MSB (モード2) 転送されたデータは,"01001101B" 内部クロック(専用ボーレートジェネレータまたは内部タイマ)を選択している場合は, データを送信するとデータ受信用同期クロックが自動的に生成されます。 外部クロックを選択している場合は , 送信側 UART1 の送信用データバッファ SODR1 レジスタにデータがあること (TDRE フラグが "0") を確かめた後 , 正確に 1 バイト分の クロックを供給する必要があります。また , 送信開始前と終了後は , 必ずマークレベル にしてください。 データは 8 ビットのみとなり , パリティを付加することはできません。また , スター ト / ストップビットがないのでオーバランエラー以外のエラー検出は行われません。 ■ CLK 同期モードを使用する場合の各制御レジスタの設定値 CLK 同期モードを使用する場合の各制御レジスタの設定値を示します。 ● SMR1 レジスタ MD1, MD0 :10 CS2, CS1, CS0 : クロック入力を指定 SCKE : 専用ボーレートジェネレータまたは内部タイマの場合 "1" 外部クロックの場合 "0" SOE : 送信を行う場合 "1", 受信のみの場合 "0" 303 第 19 章 UART1(SCI) ● SCR1 レジスタ PEN :"0" P, SBL, A/D : これらのビットは意味を持ちません CL :"1" REC :"0"( 初期化するため ) RXE, TXE : 少なくとも , どちらか一方を "1" ● SSR1 レジスタ RIE : 割込みを使用する場合 "1", 割込みを使用しない場合 "0" TIE :"0" ■ CLK 同期モードの通信開始 SODR1 レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮 の送信データを SODR1 レジスタに書き込む必要があります。 ■ CLK 同期モードの通信終了 SSR1 レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR1 レジ スタの ORE ビットによって , 通信が正常に行われたかを判断してください。 304 第 19 章 UART1(SCI) 19.5 UART1 のフラグと割込み発生要因 UART1 は PE/ORE/FRE/RDRF/TDRE の 5 つのフラグを持ちます。また , 割込み要 因には受信用のものと送信用のものがあります。 ■ UART1 のフラグ UART は ,PE/ORE/FRE/RDRF/TDRE の 5 つのフラグを持ちます。PE はパリティエ ラー ,ORE はオーバランエラー ,FRE はフレーミングエラーのことで , 受信時エラーが 発生したときにセットされ ,SCR1 レジスタの REC に "0" を書き込むとクリアされます。 RDRF は受信データが SIDR1 レジスタにロードされるとセットされ ,SIDR1 レジスタを 読み出すことでクリアされます。ただし , モード 1 ではパリティ検出機能 , モード 2 で はパリティ検出機能とフレーミングエラー検出機能はありません。 TDRE は ,SODR1 レ ジスタが空になり , 書込み可能な状態になるとセットされ ,SODR1 レジスタへ書き込む とクリアされます。 ■ UART1 の割込み発生要因 UART1 の割込み発生要因には , 受信用のものと送信用のものがあります。受信時は ,PE/ ORE/FRE/RDRF により割込みを要求します。送信時は ,TDRE により割込みを要求しま す。 各動作モード時の割込みとフラグのセットタイミングを , 「19.6 UART1 の割込みとフ ラグのセットタイミング」に示します。 305 第 19 章 UART1(SCI) 19.6 UART1 の割込みとフラグのセットタイミング 各動作モード時の割込みとフラグのセットタイミングを示します。 ■ UART1 の割込みとフラグのセットタイミング ● モード 0 の受信動作時 PE, ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフ ラグがセットされ ,CPU への割込み要求が発生します。PE, ORE, FRE がアクティブ時 には ,SIDR1 のデータは無効データとなります。 図 19.6-1 に ,PE, ORE, FRE, RDRF のセットタイミング ( モード 0) を示します。 図 19.6-1 PE, ORE, FRE, RDRF のセットタイミング ( モード 0) データ D6 D7 Stop PE,ORE,FRE RDRF 受信割込み ● モード 1 の受信動作時 ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフラグ がセットされ ,CPU への割込み要求が発生します。また , 受信可能なデータ長は 8 ビッ トのため , 最後の 9 ビット目のアドレス / データを示すデータは無効データとなりま す。ORE, FRE がアクティブ時は ,SIDR1 のデータは無効データとなります。 図 19.6-2 に ,ORE, FRE, RDRF のセットタイミング ( モード 1) を示します。 図 19.6-2 ORE, FRE, RDRF のセットタイミング ( モード 1) データ D7 アドレス/ データ Stop ORE,FRE RDRF 受信割込み ● モード 2 の受信動作時 ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット され ,CPU への割込み要求が発生します。ORE がアクティブ時は ,SIDR1 のデータは無 効データとなります。 図 19.6-3 に ,OR, RDRF のセットタイミング(モード 2)を示します。 306 第 19 章 UART1(SCI) 図 19.6-3 ORE, RDRF のセットタイミング(モード 2) データ D5 D6 D7 ORE RDRF 受信割込み ● モード 0, モード 1, モード 2 の送信動作時 TDRE フラグは ,SODR1 レジスタへ送信データが書き込まれるとクリアされます。ま た ,SODR1 レジスタ値が内部シフトレジスタに転送されると SODR1 レジスタが書き込 み可能な状態になるため ,TDRE フラグがセットされます。このフラグがセットされる と CPU への割込み要求が発生します。送信動作中に SCR1 レジスタの TXE に "0" (モー ド 2 のときは RXE も含む)を書き込むと ,SSR1 レジスタの TDRE が "1" となり , 送信 用のシフタが停止してから UART1 の送信動作を禁止します。送信動作中に SCR レジ スタの TXE に "0"(モード 2 のときは RXE も含む)を書き込んだ後 , 送信が停止する 前に SODR1 レジスタへ書き込まれたデータは送信されます。図 19.6-4 に ,TDRE のセッ トタイミング ( モード 0, 1) を示します。また , 図 19.6-5 に ,TDRE のセットタイミング ( モード 2) を示します。 図 19.6-4 TDRE のセットタイミング ( モード 0, 1) SODR1書込み TDRE CPUへ割込みを要求する。 SOT1割込み SOT1出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP A/D ST D0 D1 D2 D3 ST :スタートビット D0~D7:データビット SP :ストップビット A/D :アドレス/データマルチプレクサ 図 19.6-5 TDRE のセットタイミング ( モード 2) SODR1書込み TDRE CPUへ割込みを要求する。 SOT1割込み SOT1出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0~D7:データビット 307 第 19 章 UART1(SCI) 19.7 ネガティブクロック動作 MB90440G シリーズは ,UART1 のネガティブクロック動作をサポートします。この 動作では , シフトクロック信号はインバータにより単純に反転にされます。このた め ,UART1 で進行中のセクションにおけるシフトクロック信号の定義は , ロジック "L" レベルからロジック "H" レベルへ , ネガティブエッジからポジティブエッジへ , あるいはこの逆に反転されます。このことは , シリアルクロックの入力および出力と もに同じです。シリアルエッジセレクトレジスタは , この目的のために用意されてい ます。 ■ ネガティブクロック動作 図 19.7-1 シリアルエッジセレクトレジスタ (SES1) シリアルエッジセレクトレジスタ bit 7 6 5 4 3 0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (-) (-) (-) (-) (-) (-) (-) (0) 表 19.7-1 NEG ビットの設定 NEG 308 1 NEG アドレス:000029H リード/ライト 初期値 2 操作 0 通常動作 [ 初期値 ] 1 シフトクロック信号反転 SES1 第 19 章 UART1(SCI) 19.8 UART1 の応用例と使用上の注意 UART1 の応用例として , モード 1 使用時のシステム構築例と通信フローチャートを 示します。 ■ UART1 の応用例(モード 1 使用時のシステム構築例) 図 19.8-1 に示すように , モード 1 は ,1 台のホスト CPU に数台のスレーブ CPU が接続 されるような場合に使用されます。このリソースでは , ホスト側の通信インタフェース のみサポートします。 図 19.8-1 モード 1 使用時のシステム構築例 SOT1 SIN1 ホストCPU SOT1 SIN1 スレーブCPU#0 SOT1 SIN1 スレーブCPU#1 ■ UART1 の通信フローチャート 通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス データとは ,SCR1 レジスタの A/D が "1" のときのデータで , それにより通信先となる スレーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは ,SCR1 レジスタの A/D が "0" のときのデータです。図 19.8-2 にそのフローチャートを示しま す。 このモードにおいては , パリティチェック機能は使用できませんので SCR1 レジスタの PEN ビットは "0" としてください。 309 第 19 章 UART1(SCI) 図 19.8-2 モード 1 使用時の通信フローチャート (ホスト CPU ) START 転送モードを"1"とする D0 ~ D7 にスレーブ CPU を 選択するデータ, A/Dに"1"をセットし 1バイト転送 A/Dに"0"をセット 受信動作許可 スレーブCPUと通信 NO 通信終了? YES ほかの スレーブ CPU と通信 NO YES 受信動作禁止 END ■ 拡張インテリジェント I/O サービス (EI2OS) 拡張インテリジェント I/O サービス (EI2OS) の詳細については ,「3.6 拡張インテリジェ ント I/O サービス (EI2OS)」を参照してください。 ■ UART1 の使用上の注意 通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ は保証されません。 310 第 20 章 シリアル I/O シリアル I/O の機能と動作について示します。 20.1 シリアル I/O の概要 20.2 シリアル I/O のレジスタ 20.3 シリアル I/O の動作 20.4 ネガティブクロック動作 311 第 20 章 シリアル I/O シリアル I/O の概要 20.1 シリアル I/O の動作モードには , 以下の 2 種類があります。 • 内部シフトクロックモード : 内部クロックに同期してデータ転送を行います。 • 外部シフトクロックモード : 外部端子 (SCK2) から入力されるクロックに同期して データ転送を行います。このモードで外部端子 (SCK2) を共有している汎用ポートを操作することに より ,CPU の命令による転送動作も可能です。 ■ シリアル I/O のブロックダイヤグラム クロック同期によるデータ転送を可能にするシリアル I/O インタフェースのブロック ダイヤグラムを示します。このインタフェースは 8 ビット× 1ch 構成で , データは LSB/ MSB から転送できます。 図 20.1-1 シリアル I/O のブロックダイヤグラム 内部データバス D7~D0(LSBファースト) (MSBファースト)D0~D7) 転送方向選択 SIN2 リード ライト SDR(シリアルデータレジスタ) SOT2 SCK2 シフトクロック カウンタ 制御回路 内部クロック (通信プリスケーラ) 2 SMD2 1 SMD1 0 SMD0 SIE SIR BUSY STOP STRT MODE 割込み 要求 内部データバス 312 BDS SOE SCOE 第 20 章 シリアル I/O 20.2 シリアル I/O のレジスタ シリアル I/O のレジスタには , 次の 3 つがあります。 • シリアルモードコントロールステータスレジスタ (SMCS) • シリアルデータレジスタ (SDR) • シリアル I/O プリスケーラ (SCDCR) ■ シリアル I/O のレジスタ 図 20.2-1 シリアル I/O のレジスタ シリアルモードコントロールステータスレジスタ bit 15 14 13 アドレス:00002DH リード/ライト 初期値 アドレス:00002CH リード/ライト 初期値 シリアルデータレジスタ アドレス:00002EH リード/ライト 初期値 シリアルI/Oプリスケーラ アドレス:00002BH リード/ライト 初期値 SMD2 SMD1 SMD0 12 11 10 9 8 SIE SIR BUSY STOP STRT (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) bit 7 6 5 4 (-) (-) (-) (-) (-) (-) (-) (-) (R) (0) SMCS (R/W) (R/W) (1) (0) 3 2 1 0 MODE BDS SOE SCOE SMCS (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 SDR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) bit 15 MD 14 13 12 11 10 9 8 DIV3 DIV2 DIV1 DIV0 SCDCR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (-) (-) (-) (1) (1) (1) (1) 313 第 20 章 シリアル I/O シリアルモードコントロールステータスレジスタ (SMCS) 20.2.1 シリアルモードコントロールステータスレジスタ (SMCS) は , シリアル I/O 転送モー ドを制御するレジスタです。 ■ シリアルモードコントロールステータスレジスタ (SMCS) 図 20.2-2 シリアルモードコントロールステータスレジスタ (SMCS) シリアルモードコントロールステータスレジスタ bit 15 アドレス:00002DH リード/ライト 初期値 14 13 12 11 SMD2 SMD1 SMD0 SIE SIR 10 9 8 BUSY STOP STRT (R/W) (R/W) (R/W) (R/W) (R/W) (R) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (1) (0) ↑ ↑ *2 *1 bit 7 アドレス:00002CH リード/ライト 初期値 (-) (-) 6 (-) (-) 5 (-) (-) 4 2 1 0 MODE BDS 3 SOE SCOE SMCS (-) (R/W) (R/W) (R/W) (R/W) (-) (0) (0) (0) (0) *1:書込み動作は,"0"のみ可 *2:書込み動作は,"1"のみ可,読出し動作は常に"0" [bit15 ∼ bit13] SMD2 ∼ SMD0: シフトクロック選択ビット シリアルシフトクロックモードを 表 20.2-1 に示すとおりに選択します。 表 20.2-1 シリアルシフトクロックモードの設定 SMD 2 SMD 1 SMD 0 φ=16MHz div=4 φ=8MHz div=4 φ=4MHz div=4 div M1 DIV 3 DIV 2 DIV 1 DIV 0 推奨マシン サイクル 0 0 0 2 MHz 1 MHz 500 kHz 3 1 1 1 0 1 6 MHz 0 0 1 1 MHz 500 kHz 250 kHz 4 1 1 1 0 0 8 MHz 0 1 0 250 kHz 125 kHz 62.5 kHz 5 1 1 0 1 1 10 MHz 0 1 1 125 kHz 62.5 kHz 31.25 kHz 6 1 1 0 1 0 12 MHz 1 0 0 62.5 kHz 31.25 kHz 15.625 kHz 7 1 1 0 0 1 14 MHz 1 0 1 外部シフトクロックモード 8 1 1 0 0 0 16 MHz 1 1 0 予約 1 1 1 予約 < 注意事項 > 詳細については ,「20.2.3 シリアル I/O プリスケーラ (SCDCR)」を参照してくだ さい。 リセットにより "000B" に初期化されます。本ビットの転送中の書換えは禁止しま す。シフトクロックは内部シフトクロック 5 種類と , 外部シフトクロックが選択 できます。SMD2 ∼ SMD0=110B と 111B はリザーブですので設定しないでくだ さい。 クロック選択で SCOE=0 とし ,SCK2 端子を共有しているポートを操作すること によって命令ごとにシフト動作させることも可能です。 314 第 20 章 シリアル I/O [bit12] SIE: シリアル I/O 割込み許可ビット シリアル I/O の割込み要求を 表 20.2-2 に示すとおりに制御します。 表 20.2-2 割込み要求許可ビットの設定 0 シリアル I/O 割込み禁止 [ 初期値 ] 1 シリアル I/O 割込み許可 リセットにより "0" に初期化されます。本ビットは , 読出し / 書込みが可能です。 [bit11] SIR: シリアル I/O 割込み要求ビット シリアルデータの転送が終了すると "1" にセットされ , 割込み許可時 (SIE=1) にこの ビットが "1" になると ,CPU へ割込み要求を発生します。クリア条件は MODE ビット によって異なります。MODE ビットが "0" のとき ,SIR ビットへの "0" 書込みによりク リアされます。MODE ビットが "1" のとき ,SDR の読出し , または書込み動作によりク リアされます。MODE ビットの値にかかわらずリセット , または STOP ビットへの "1" 書込み動作によりクリアされます。 本ビットに "1" を書き込んでも影響しません。リードモディファイライト系命令の読 出し時は , 常に "1" が読み出されます。 [bit10] BUSY : 転送状態ビット シリアル転送が実行中か否かを示すビットです。 表 20.2-3 転送状態ビットの設定 BUSY 動作 0 停止またはシリアルデータレジスタ R/W 待機状態 [ 初期値 ] 1 シリアル転送状態 リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。 [bit9] STOP : ストップビット シリアル転送を強制的に中断させるビットです。本ビットを "1" に設定すると STOP=1 による停止状態となります。 表 20.2-4 ストップビットの設定 STOP 動作 0 動作 1 STOP=1 による転送停止 [ 初期値 ] リセットにより "1" に初期化されます。本ビットは , 読出し / 書込みが可能です。 [bit8] STRT : スタートビット シリアル転送の起動を行うビットです。停止状態で "1" を書くことによって転送が開 始されます。シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1" の 書込みは無視され , "0" の書込みは意味がありません。 読出し時には常に "0" が読み出されます。 315 第 20 章 シリアル I/O [bit3] MODE : シリアルモード選択ビット このビットにより停止状態からの起動条件の選択を行います。ただし , 動作中の書換え は禁止です。 表 20.2-5 シリアルモード選択ビットの設定 MODE 動作 0 STRT=1 にすることにより起動します。[ 初期値 ] 1 シリアルデータレジスタのリード / ライトにより起動します。 リセットにより "0" に初期化されます。本ビットは , リード / ライトが可能です。拡張 インテリジェント I/O サービスを起動する際には "1" にしてください。 [bit2] BDS: 転送方向選択ビット シリアルデータの入出力時に , 最下位ビット側から先に転送するか(LSB ファースト), 最上位ビット側から先に転送するか(MSB ファースト)を選択します。 表 20.2-6 転送方向選択ビットの設定 < 注意事項 > 0 LSB ファースト [ 初期値 ] 1 MSB ファースト 転送方向選択ビットは ,SDR にデータを書き込む前に , 設定してください。 [bit1]SOE : シリアル出力許可ビット シリアル I/O 用出力外部端子 (SOT2) の出力を 表 20.2-7 に示すとおりに制御します。 表 20.2-7 シリアル出力許可ビットの設定 0 汎用ポート端子 [ 初期値 ] 1 シリアルデータ出力 リセットにより "0" に初期化されます。本ビットは , リード / ライトが可能です。 [bit0] SCOE : シフトクロック出力許可ビット シフトクロック用入出力外部端子 (SCK2) の出力を 表 20.2-8 に示すとおりに制御しま す。 表 20.2-8 シフトクロック出力許可ビットの設定 0 汎用ポート端子 , 命令毎転送時 [ 初期値 ] 1 シフトクロック出力端子 外部シフトクロックモードで命令ごとに転送を行うときは "0" に設定してください。リ セットにより "0" に初期化されます。本ビットは , リード / ライトが可能です。 316 第 20 章 シリアル I/O 20.2.2 シリアルデータレジスタ (SDR) シリアルデータレジスタ (SDR) は , シリアル I/O 転送データを格納するシリアル データレジスタで , 転送中は読み書き不可です。 ■ シリアルデータレジスタ (SDR) 図 20.2-3 シリアルデータレジスタ (SDR) シリアルデータレジスタ アドレス:00002EH リード/ライト 初期値 bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 SDR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 317 第 20 章 シリアル I/O シリアル I/O プリスケーラ (SCDCR) 20.2.3 シリアル I/O プリスケーラ (SCDCR) は , シリアル I/O のシフトクロックを提供しま す。 シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。 シリアル I/O は , この通信プリスケーラによって種々のマシンクロックに対して一定 のボーレートが得られるように設計されています。SCDCR レジスタは , マシンク ロックの分周を制御するレジスタです。 ■ シリアル I/O プリスケーラ (SCDCR) 図 20.2-4 シリアル I/O プリスケーラ (SCDCR) シリアルI/Oプリスケーラ bit 15 アドレス:00002BH リード/ライト 初期値 14 13 12 11 10 DIV3 DIV2 MD (R/W) (0) 9 8 DIV1 DIV0 SCDCR (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) [bit15] MD(Machine clock devide moDe select) 通信プリスケーラの動作許可ビットです。 0: シリアル I/O プリスケーラは停止します。 1: シリアル I/O プリスケーラは動作します。 [bit11 ∼ bit8] DIV3 ∼ DIV0 (DIVide3 ∼ 0) マシンクロックの分周比を決定するビットです。 表 20.2-9 マシンクロックの分周比 < 注意事項 > 318 DIV3 ∼ DIV0 分周比 1101B 3 1100B 4 1011B 5 1010B 6 1001B 7 1000B 8 分周比を変えた場合はクロックの安定時間として 2 周期分の時間を置いてから通 信を行ってください。 第 20 章 シリアル I/O 20.3 シリアル I/O の動作 拡張シリアル I/O インタフェースは , シリアルモードコントロールステータスレジス タ (SMCS) およびシリアルデータレジスタ (SDR) により構成されます。8 ビットの シリアルデータの入出力に使用します。 ■ シリアル I/O の動作 シリアルデータの入出力は,シリアルデータレジスタの内容がシリアルシフトクロック ( 外部クロック , 内部クロック ) の立下りに同期してビット直列にシリアル出力端子 (SOT2 端子 ) に出力され , 立上りに同期してシリアル入力端子 (SIN2 端子 ) からビット 直列に SDR( シリアルデータレジスタ ) に入力されます。シフトの方向 (MSB からの転 送またはLSBからの転送)は, シリアルモードコントロールステータスレジスタ(SMCS) の方向指定ビット (BDS) により指定することができます。 転送が終了するとシリアルモードコントロールステータスレジスタ (SMCS) の MODE ビットによって停止状態 , またはシリアルデータレジスタ R/W 待機状態に入ります。 各々の状態から転送状態に移るには , それぞれ次のことを行います。 • 停止状態からの復帰のときは STOP ビットに "0",STRT ビットに "1" を書き込みます (STOP と STRT は同時設定が可能です )。 • シリアルデータレジスタR/W待機状態からの復帰時はシリアルデータレジスタを読 み出し , または書き込みます。 319 第 20 章 シリアル I/O シフトクロック 20.3.1 シフトクロックには内部シフトクロックモード , 外部シフトクロックモードの 2 種 類があり ,SMCS の設定で指定します。モードの切換えは , シリアル I/O が停止した 状態で行ってください。停止状態の確認は ,BUSY ビットを読み出すことで可能で す。 ■ 内部シフトクロックモード 内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク ロックが SCK2 端子より出力可能です。データが 1 クロックごとに 1 ビット転送され ます。転送の速度は以下のようになります。 ボーレート= φ/div A A は ,SMCS の SMD ビットで示す分周比で ,21, 22, 24, 25, 26 です。 表 20.3-1 内部シフトクロックモードのボーレート算出式 SMD2 SMD1 SMD0 φ/div=4 MHz φ/div=2 MHz φ/div=1 MHz ボーレート算出式 0 0 0 2 MHz 1 MHz 500 kHz (φ/div)/21 0 0 1 1 MHz 500 kHz 250 kHz (φ/div)/22 0 1 0 250 kHz 125 kHz 62.5 kHz (φ/div)/24 0 1 1 125 kHz 62.5 kHz 31.25 kHz (φ/div)/25 1 0 0 62.5 kHz 31.25 kHz 15.625 kHz (φ/div)/26 div の値は , 表 20.2-9 を参照してください。 ■ 外部シフトクロックモード SCK2 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに 1 ビット転送されます。転送速度は DC から 1/(8 マシンサイクル)まで可能です。た とえば , "1 マシンサイクル =62.5ns" のとき , 2MHz まで可能です。 命令ごとに転送することもでき , 次のような設定をすることによって実現します。 外部シフトクロックモードを選択し ,SMCS の SCOE ビットを "0" に設定します。さら に , SCK2 端子を共有しているポートの方向レジスタに "1" を書き込み , ポートを出力 モードに設定します。以上の設定をした後 , ポートのデータレジスタ (PDR) に "1", "0" を書き込むと , SCK2 端子に出力されるポートの値を外部クロックとして取り込み , 転 送動作を行います。シフトクロックの開始は "H" からスタートさせてください。 < 注意事項 > 320 シリアル I/O 動作中の SMCS, SDR への書込みは禁止です。 第 20 章 シリアル I/O 20.3.2 シリアル I/O の動作状態 シリアル I/O の動作状態には , 次の 4 種類があります。 • STOP 状態 • 停止状態 • SDR の R/W 待機状態 • 転送状態 ■ シリアル 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 にすると転送動作が再開されます。 ● シリアルデータレジスタ R/W 待機状態 SMCS レジスタの MODE ビットが "1" のとき , シリアル転送が終了すると ,BUSY=0, SIR=1 となりシリアルデータレジスタ R/W 待機状態に入ります。割込み許可レジスタ が許可状態ならば本ブロックより割込み信号を出します。 R/W 待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き込まれた りすると BUSY=1 となり転送動作が再開されます。 ● 転送状態 BUSY=1 でシリアル転送を行っている状態です。MODE ビットによりそれぞれ停止状 態および R/W 待機状態に遷移します。 図 20.3-1 に , 動作遷移を示します。 321 第 20 章 シリアル I/O 図 20.3-1 拡張シリアル I/O インタフェース動作遷移図 リセット STOP=0 & STRT=0 転送終了 STRT=0,BUSY=0 MODE=0 STOP=0 & STRT=1 MODE=0 & STOP=0 & 終了 STOP STOP=1 STRT=0,BUSY=0 STOP=1 転送動作 STOP=1 STOP=0 & STRT=1 MODE=1 & 終了 & STOP=0 シリアルデータレジスタ R/W 待機 STRT=1,BUSY=1 SDRのR/W & MODE=1 STRT=1,BUSY=0 MODE=1 図 20.3-2 シリアルデータレジスタへのリード , ライト概念図 シリアルデータ SOT2 SIN2 データバス データバス リード ライト 割込み出力 I/O拡張 シリアルインタフェース リード ライト ② ① 割込み入力 データバス CPU 割込みコントローラ ① MODE=1 のとき , シフトクロックカウンタによって転送終了し ,SIR=1 となってリー ド / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生します。 ただし ,SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送中断 のときは割込み信号は発生しません。 ②シリアルデータレジスタがリード / ライトされると , 割込み要求はクリアされシリア ル転送を開始します。 322 第 20 章 シリアル I/O 20.3.3 シフト動作のスタート / ストップタイミング シフト動作をスタートする場合は ,SMCS の STOP ビットを "0",STRT ビットを "1" に設定します。 シフト動作のストップタイミングについては ,STOP=1 によって停止する場合と , 転 送終了によって停止する場合があります。 • STOP=1 によって停止→ MODE ビットにかかわらず SIR=0 のまま停止 • 転送終了で停止→ MODE ビットにかかわらず SIR=1 となり停止 BUSY ビットは MODE ビットにかかわらずシリアル転送状態のとき "1" となり , 停 止状態 , または R/W 待機状態のとき "0" となります。転送状態を確認したいときは このビットをリードしてください。 ■ シフト動作のスタート / ストップタイミング ● 内部シフトクロックモード(LSB ファースト) 図 20.3-3 シフト動作のスタート / ストップタイミング(内部クロック) SCK2 "1"出力 (転送スタート) STRT (転送終了) MODE=0の場合 BUSY SOT2 DO0 DO7(データ保持) ・・・ ● 外部シフトクロックモード(LSB ファースト) 図 20.3-4 シフト動作のスタート / ストップタイミング(外部クロック) SCK2 (転送スタート) STRT (転送終了) MODE=0の場合 BUSY SOT2 DO0 ・・・ DO7(データ保持) 323 第 20 章 シリアル I/O ● 外部シフトクロックモードで命令シフトを行ったとき(LSB ファースト) 図 20.3-5 シフト動作のスタート / ストップタイミング (外部シフトクロックモードで命令シフト実行時) SCK2に対応するPDRのビット"0" SCK2 SCK2に対応するPDRのビット"1" SCK2に対応するPDRのビット"0" (転送終了) MODE=0の場合 STRT BUSY SOT2 ・・・ < 注意事項 > DO6 DO7(データ保持) 命令シフトでは , SCK2 に対応する PDR のビットに "1" が書き込まれた場合 "H" が出力され "0" が書き込まれたとき "L" が出力されます ( ただし , 外部シフトク ロックモード選択で , SCOE=0 の場合 )。 ● STOP=1 による停止(LSB ファースト , 内部クロック時) 図 20.3-6 STOP ビットを "1" としたときのストップタイミング "1"出力 SCK2 (転送スタート) (転送停止) MODE=0の場合 STRT BUSY STOP SOT2 ・・・ < 注意事項 > DO3 DO4 DO5(データ保持) DO7 ∼ DO0 は出力データを示します。 シリアルデータの転送中は , シフトクロックの立下りでシリアル出力端子 (SOT2) から のデータが出力され , 立上りでシリアル入力端子 (SIN2) のデータが入力されます。 324 第 20 章 シリアル I/O ● LSB ファースト(BDS ビットが "0" の場合) 図 20.3-7 シリアルデータの入出力シフトタイミング 1 SCK2 SIN2 SIN2入力 DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7 DO3 DO4 DO5 DO6 DO7 SOT 2出力 SOT2 DO0 DO1 DO2 ● MSB ファースト(BDS ビットが "1" の場合) 図 20.3-8 シリアルデータの入出力シフトタイミング 2 SCK2 SIN2 SIN2入力 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 DO4 DO3 DO2 DO1 DO0 SOT2出力 SOT2 DO7 DO6 DO5 325 第 20 章 シリアル I/O 20.3.4 拡張シリアル I/O インタフェースの割込み機能 拡張シリアル I/O インタフェースは , CPU に対し割込み要求を発生することができ ます。データの転送終了時に割込みフラグである SIR ビットがセットされ , 割込み を許可する SMCS の SIE ビットが "1" のとき , CPU へ割込み要求を出力します。 ■ 拡張シリアル I/O インタフェースの割込み機能 図 20.3-9 拡張シリアル I/O インタフェースの割込み信号出力タイミング SCK2 (転送終了)* BUSY SIE=1 SIR SDRの RD/WR SOT2 DO6 *:MODE=1の場合 326 DO7(データ保持) 第 20 章 シリアル I/O 20.4 ネガティブクロック動作 MB90440G シリーズは , シリアル I/O のネガティブクロック動作をサポートします。 この動作では , シフトクロック信号はインバータにより単純に反転にされます。この ため , 前述のシリアル I/O のシフトクロック信号の定義は , ロジック "L" レベルから ロジック "H" レベルへ , ネガティブエッジからポジティブエッジへ , あるいはこの逆 に反転されます。このことは , シリアルクロックの入力および出力ともに同じです。 ■ ネガティブクロック動作 図 20.4-1 シリアルエッジセレクトレジスタ (SES2) シリアルエッジセレクトレジスタ bit 7 6 5 4 3 1 0 NEG アドレス:00002FH リード/ライト 初期値 2 SES2 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (-) (-) (-) (-) (-) (-) (-) (0) 表 20.4-1 NEG ビットの設定 NEG 動作 0 通常動作 [ 初期値 ] 1 シフトクロック信号反転 327 第 20 章 シリアル I/O 328 第 21 章 CAN コントローラ CAN コントローラの機能と概要について説明しま す。 21.1 CAN コントローラの特長 21.2 CAN コントローラのブロックダイヤグラム 21.3 全体コントロールレジスタの一覧 21.4 メッセージバッファ (ID レジスタ ) の一覧 21.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 21.6 CAN コントローラのレジスタ分類 21.7 CAN コントローラの送信 21.8 CAN コントローラの受信 21.9 CAN コントローラの受信フローチャート 21.10 CAN コントローラの使用方法 21.11 メッセージバッファ (x) による送信方法 21.12 メッセージバッファ (x) による受信方法 21.13 マルチレベルメッセージバッファの構成の決定 21.14 CAN2 RX/TX 端子の接続先の設定 21.15 CAN コントローラの使用上の注意 329 第 21 章 CAN コントローラ 21.1 CAN コントローラの特長 MB90440G シリーズには , 3 つの CAN コントローラ (CAN0, CAN1, CAN2) が搭載 されています。 CAN コントローラは ,16 ビットマイクロコンピュータ (F2MC-16LX) 内に一体化さ れたモジュールです。CAN(コントローラエリアネットワーク)は自動車用コント ローラ間のシリアル通信用の標準プロトコルであり工業分野で広く使用されている ものです。 ■ CAN コントローラの特長 CAN コントローラの特長は次のとおりです。 • CAN 仕様バージョン 2.0 パート A および B に適合しています。 - 標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしてい ます。 • リモートフレームの受信によるデータフレームの送信をサポートしています。 • 16 個の送信 / 受信メッセージバッファ - 29 ビットの ID および 8 バイトデータ - マルチ・レベル・メッセージ・バッファ構造 • フルビット比較 , フルビットマスク ,ID アクセプタンスマスクとして , アクセプタン スレジスタ0/アクセプタンスレジスタ1を各メッセージバッファに提供しています。 - 標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタン スマスクレジスタを提供します。 • ビット速度は 10 kbps ∼ 1 Mbps でプログラマブルです(1 Mbps ご使用の場合 , マシ ンクロックは 8MHz 以上で動作する必要があります) 。 330 第 21 章 CAN コントローラ 21.2 CAN コントローラのブロックダイヤグラム 図 21.2-1 に ,CAN コントローラのブロックダイヤグラムを示します。 ■ CAN コントローラのブロックダイヤグラム 図 21.2-1 CAN コントローラのブロックダイヤグラム 内部データバス TQ (動作クロック) プリスケーラ 1~64周波数分割 クロック ビットタイミング発生 SYNC, TSEG1, TSEG2 PSC TS1 BTR TS2 RSJ TOE TS RS HALT CSR NIE NT バスステート マシン ノードステータス 変化割込み ノードステータス 変化割込み発生 IDLE, INT, SUSPND, 送信,送信,ERR,OVRLD NS1,0 エラー 制御 RTEC 送信/受信シーケンサ BVALR TREQR TBFx,クリア 送信バッファx判定 TBFx TDLC RDLC TBFx エラー フレーム発生 データ 受信フィルタ カウンタ 過負荷 フレーム 発生 IDSEL BITER, STFER, CRCER, FRMER, ACKER TCANR 出力 ドライバ ARBLOST TX TRTRR TCR TBFx, セット, クリア ACK発生 CRCER RBFx, セット RDLC 受信完了 割込み 受信完了 割込み発生 RIER RRTRR CRC発生 TDLC 送信完了 割込み 送信完了 割込み発生 TIER RCR スタッ フィング 送信シフト レジスタ RFWTR STFER デスタッフィング/ スタッフィング エラーチェック 受信シフト レジスタ RBFx, TBFx, セット, クリア RBFx,セット CRC発生/エラーチェック IDSEL ROVRR ARBLOST AMSR AMR0 0 1 アクセプタンス フィルタ 受信バッファx 判定 BITER ビットエラー チェック ACKER 確認エラー チェック FRMER フォームエラー チェック AMR1 IDR0~15 DLCR0~15 DTR0~15 RAM RBFx RAMアドレス 発生 アービットレーション チェック PH1 入力 ラッチ RX RBFx, TBFx, RDLC, TDLC, IDSEL LEIR IDER 331 第 21 章 CAN コントローラ 21.3 全体コントロールレジスタの一覧 表 21.3-1 に , 全体コントロールレジスタの一覧を示します。 ■ 全体コントロールレジスタの一覧 表 21.3-1 全体コントロールレジスタの一覧 ( 1 / 2 ) アドレス CAN0 CAN1 CAN2 000070H 000080H 00005CH 000071H 000081H 00005DH 000072H 000082H 00005EH 000073H 000083H 00005FH 000074H 000084H 000060H 000075H 000085H 000061H 000076H 000086H 000062H 000077H 000087H 000063H 000078H 000088H 000064H 000079H 000089H 000065H 00007AH 00008AH 000066H 00007BH 00008BH 000067H 00007CH 00008CH 000068H 00007DH 00008DH 000069H 00007EH 00008EH 00006AH 00007FH 00008FH 00006BH 003B00H 003D00H 003F00H 003B01H 003D01H 003F01H 003B02H 003D02H 003F02H 003B03H 003D03H 003F03H 003B04H 003D04H 003F04H 003B05H 003D05H 003F05H 003B06H 003D06H 003F06H 003B07H 003D07H 003F07H 332 レジスタ 略号 アクセス 初期値 メッセージバッファ 有効レジスタ 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 制御ステータス レジスタ CSR R/WR 00---000 0----0-1 ラストイベント表示 レジスタ LEIR R/W -------- 000-0000 受信 / 送信エラー カウンタ RTEC R 00000000 00000000 ビットタイミング レジスタ BTR R/W -1111111 11111111 第 21 章 CAN コントローラ 表 21.3-1 全体コントロールレジスタの一覧 ( 2 / 2 ) アドレス レジスタ CAN0 CAN1 CAN2 003B08H 003D08H 003F08H 略号 アクセス 初期値 IDER R/W XXXXXXXX XXXXXXXX RTR 送信レジスタ TRTRR R/W 00000000 00000000 リモートフレーム 受信待機レジスタ RFWTR R/W XXXXXXXX XXXXXXXX TIER R/W 00000000 00000000 IDE レジスタ 003B09H 003D09H 003F09H 003B0AH 003D0AH 003F0AH 003B0BH 003D0BH 003F0BH 003B0CH 003D0CH 003F0CH 003B0DH 003D0DH 003F0DH 003B0EH 003D0EH 003F0EH 003B0FH 003D0FH 003F0FH 003B10H 003D10H 003F10H 003B11H 003D11H 003F11H 003B12H 003D12H 003F12H 003B13H 003D13H 003F13H 003B14H 003D14H 003F14H 003B15H 003D15H 003F15H 003B16H 003D16H 003F16H 003B17H 003D17H 003F17H 003B18H 003D18H 003F18H 003B19H 003D19H 003F19H 003B1AH 003D1AH 003F1AH 003B1BH 003D1BH 003F1BH − − 00000CH 送信割込み許可 レジスタ XXXXXXXX XXXXXXXX アクセプタンス マスク選択レジスタ AMSR R/W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX アクセプタンス マスクレジスタ 0 AMR0 R/W XXXXX--XXXXXXXX XXXXXXXX XXXXXXXX アクセプタンス マスクレジスタ 1 AMR1 R/W XXXXX--XXXXXXXX CAN2 RX/TX 端子 切換えレジスタ CANSWR R/W - - - - - - 00 333 第 21 章 CAN コントローラ 21.4 メッセージバッファ (ID レジスタ ) の一覧 表 21.4-1 に , メッセージバッファ (ID レジスタ ) の一覧を示します。 ■ メッセージバッファ (ID レジスタ ) の一覧 表 21.4-1 メッセージバッファ (ID レジスタ ) の一覧 (1 / 3) アドレス CAN0 CAN1 CAN2 003A00H 003C00H 003E00H ∼ 003A1FH ∼ 003C1FH ∼ 003E1FH 003A20H 003C20H 003E20H 003A21H 003C21H 003E21H 003A22H 003C22H 003E22H 003A23H 003C23H 003E23H 003A24H 003C24H 003E24H 003A25H 003C25H 003E25H 003A26H 003C26H 003E26H 003A27H 003C27H 003E27H 003A28H 003C28H 003E28H 003A29H 003C29H 003E29H 003A2AH 003C2AH 003E2AH 003A2BH 003C2BH 003E2BH 003A2CH 003C2CH 003E2CH 003A2DH 003C2DH 003E2DH 003A2EH 003C2EH 003E2EH 003A2FH 003C2FH 003E2FH 003A30H 003C30H 003E30H 003A31H 003C31H 003E31H 003A32H 003C32H 003E32H 003A33H 003C33H 003E33H レジスタ 略号 アクセス 初期値 汎用 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 334 第 21 章 CAN コントローラ 表 21.4-1 メッセージバッファ (ID レジスタ ) の一覧 (2 / 3) アドレス レジスタ CAN0 CAN1 CAN2 003A34H 003C34H 003E34H 003A35H 003C35H 003E35H 003A36H 003C36H 003E36H 003A37H 003C37H 003E37H 003A38H 003C38H 003E38H 003A39H 003C39H 003E39H 003A3AH 003C3AH 003E3AH 003A3BH 003C3BH 003E3BH 003A3CH 003C3CH 003E3CH 003A3DH 003C3DH 003E3DH 003A3EH 003C3EH 003E3EH 003A3FH 003C3FH 003E3FH 003A40H 003C40H 003E40H 003A41H 003C41H 003E41H 003A42H 003C42H 003E42H 003A43H 003C43H 003E43H 003A44H 003C44H 003E44H 003A45H 003C45H 003E45H 003A46H 003C46H 003E46H 003A4H 003C47H 003E47H 003A48H 003C48H 003E48H 003A49H 003C49H 003E49H 003A4AH 003C4AH 003E4AH 003A4BH 003C4BH 003E4BH 003A4CH 003C4CH 003E4CH 003A4DH 003C4DH 003E4DH 003A4EH 003C4EH 003E4EH 003A4FH 003C4FH 003E4FH 略号 アクセス 初期値 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 335 第 21 章 CAN コントローラ 表 21.4-1 メッセージバッファ (ID レジスタ ) の一覧 (3 / 3) アドレス レジスタ CAN0 CAN1 CAN2 003A50H 003C50H 003E50H 003A51H 003C51H 003E51H 003A52H 003C52H 003E52H 003A53H 003C53H 003E53H 003A54H 003C54H 003E54H 003A55H 003C55H 003E55H 003A56H 003C56H 003E56H 003A57H 003C57H 003E57H 003A58H 003C58H 003E58H 003A59H 003C59H 003E59H 003A5AH 003C5AH 003E5AH 003A5BH 003C5BH 003E5BH 003A5CH 003C5CH 003E5CH 003A5DH 003C5DH 003E5DH 003A5EH 003C5EH 003E5EH 003A5FH 003C5FH 003E5FH 略号 アクセス 初期値 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 336 第 21 章 CAN コントローラ 21.5 メッセージバッファ (DLC レジスタ / データレジスタ ) の一覧 表 21.5-1 に , メッセージバッファ (DLC レジスタ ) の一覧を , 表 21.5-2 に , メッ セージバッファ ( データレジスタ ) の一覧を示します。 ■ メッセージバッファ (DLC レジスタ ) の一覧 表 21.5-1 メッセージバッファ (DLC レジスタ ) の一覧 (1 / 2) アドレス CAN0 CAN1 CAN2 003A60H 003C60H 003E60H 003A61H 003C61H 003E61H 003A62H 003C62H 003E62H 003A63H 003C63H 003E63H 003A64H 003C64H 003E64H 003A65H 003C65H 003E65H 003A66H 003C66H 003E66H 003A67H 003C67H 003E67H 003A68H 003C68H 003E68H 003A69H 003C69H 003E69H 003A6AH 003C6AH 003E6AH 003A6BH 003C6BH 003E6BH 003A6CH 003C6CH 003E6CH 003A6DH 003C6DH 003E6DH 003A6EH 003C6EH 003E6EH 003A6FH 003C6FH 003E6FH 003A70H 003C70H 003E70H 003A71H 003C71H 003E71H 003A72H 003C72H 003E72H 003A73H 003C73H 003E73H 003A74H 003C74H 003E74H 003A75H 003C75H 003E75H レジスタ 略号 アクセス 初期値 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 337 第 21 章 CAN コントローラ 表 21.5-1 メッセージバッファ (DLC レジスタ ) の一覧 (2 / 2) アドレス CAN0 CAN1 CAN2 003A76H 003C76H 003E76H 003A77H 003C77H 003E77H 003A78H 003C78H 003E78H 003A79H 003C79H 003E79H 003A7AH 003C7AH 003E7AH 003A7BH 003C7BH 003E7BH 003A7CH 003C7CH 003E7CH 003A7DH 003C7DH 003E7DH 003A7EH 003C7EH 003E7EH 003A7FH 003C7FH 003E7FH 338 レジスタ 略号 アクセス 初期値 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 第 21 章 CAN コントローラ ■ メッセージバッファ ( データレジスタ ) の一覧 表 21.5-2 メッセージバッファ ( データレジスタ ) の一覧 (1 / 2) アドレス レジスタ CAN0 CAN1 CAN2 003A80H 003C80H 003E80H ∼ 003A87H ∼ 003C87H ∼ 003E87H 003A88H 003C88H 003E88H ∼ 003A8FH ∼ 003C8FH ∼ 003E8FH 003A90H 003C90H 003E90H ∼ 003A97H ∼ 003C97H ∼ 003E97H 003A98H 003C98H 003E98H ∼ 003A9FH ∼ 003C9FH ∼ 003E9FH 003AA0H 003CA0H 003EA0H ∼ 003AA7H ∼ 003CA7H ∼ 003EA7H 003AA8H 003CA8H 003EA8H ∼ 003AAFH ∼ 003CAFH ∼ 003EAFH 003AB0H 003CB0H 003EB0H ∼ 003AB7H ∼ 003CB7H ∼ 003EB7H 003AB8H 003CB8H 003EB8H ∼ 003ABFH ∼ 003CBFH ∼ 003EBFH 003AC0H 003CC0H 003EC0H ∼ 003AC7H ∼ 003CC7H ∼ 003EC7H 003AC8H 003CC8H 003EC8H ∼ 003ACFH ∼ 003CCFH ∼ 003ECFH 003AD0H 003CD0H 003ED0H ∼ 003AD7H ∼ 003CD7H ∼ 003ED7H 003AD8H 003CD8H 003ED8H ∼ 003ADFH ∼ 003CDFH ∼ 003EDFH 003AE0H 003CE0H 003EE0H ∼ 003AE7H ∼ 003CE7H ∼ 003EE7H 略号 アクセス 初期値 データレジスタ 0 (8 バイト) DTR0 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 1 (8 バイト) DTR1 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 2 (8 バイト) DTR2 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 3 (8 バイト) DTR3 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 4 (8 バイト) DTR4 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 5 (8 バイト) DTR5 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 6 (8 バイト) DTR6 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 7 (8 バイト) DTR7 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 8 (8 バイト) DTR8 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ 9 (8 バイト) DTR9 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ10 (8 バイト) DTR10 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ11 (8 バイト) DTR11 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ12 (8 バイト) DTR12 R/W XXXXXXXX ∼ XXXXXXXX 339 第 21 章 CAN コントローラ 表 21.5-2 メッセージバッファ ( データレジスタ ) の一覧 (2 / 2) アドレス CAN0 CAN1 CAN2 003AE8H 003CE8H 003EE8H ∼ 003AEFH ∼ 003CEFH ∼ 003EEFH 003AF0H 003CF0H 003EF0H ∼ 003AF7H ∼ 003CF7H ∼ 003EF7H 003AF8H 003CF8H 003EF8H ∼ 003AFFH ∼ 003CFFH ∼ 003EFFH 340 レジスタ 略号 アクセス 初期値 データレジスタ13 (8 バイト) DTR13 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ14 (8 バイト) DTR14 R/W XXXXXXXX ∼ XXXXXXXX データレジスタ15 (8 バイト) DTR15 R/W XXXXXXXX ∼ XXXXXXXX 第 21 章 CAN コントローラ 21.6 CAN コントローラのレジスタ分類 CAN コントローラのレジスタは , 次の 3 つに分類されます。 • 全体コントロールレジスタ • メッセージバッファコントロールレジスタ • メッセージバッファ ■ 全体コントロールレジスタ 全体コントロールレジスタには , 次の 5 つがあります。 • 制御ステータスレジスタ (CSR) • ラストイベント表示レジスタ (LEIR) • 受信および送信エラーカウンタ (RTEC) • ビットタイミングレジスタ (BTR) • CAN2 RX/TX 端子切換えレジスタ (CANSWR) ■ メッセージバッファコントロールレジスタ メッセージバッファコントロールレジスタには , 次の 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) 341 第 21 章 CAN コントローラ 21.6.1 制御ステータスレジスタ (CSR) 制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リー ドモディファイライト ) を実行することは禁止されています。ただし,HALT ビット が変化しないタイミング ( マクロの初期化など ) では , ビット操作命令を使用しても 問題ありません。 ■ 制御ステータスレジスタ (CSR) 図 21.6-1 制御ステータスレジスタ (CSR) 制御ステータスレジスタ アドレス:003B01H(CAN0) bit 15 003D01H(CAN1) TS 003F01H(CAN2) リード/ライト (R) (0) 初期値 14 13 12 11 10 9 RS - - - NT NS1 (R) (0) (-) (-) (-) (-) (-) (-) 5 4 3 2 1 0 - - - NIE 予約 HALT (-) (-) (-) (-) (-) (-) (R/W) (W) (0) (0) (R/W) (1) 6 アドレス:003B00H(CAN0) bit 7 003D00H(CAN1) TOE - 003F00H(CAN2) (R/W) (-) リード/ライト (0) (-) 初期値 8 NS0 (R/W) (R) (0) (0) CSR (R) (0) CSR [bit15] TS: 送信ステータスビット 本ビットはメッセージが送信中であるかどうかを示します。 0: メッセージは送信されていません。 1: メッセージが送信されています。 本ビットはエラーフレームおよびオーバロードフレームが送信されている間も "0" で す。 [bit14] RS: 受信ステータスビット 本ビットはメッセージが受信されているかどうかを示します。 0: メッセージは受信されていません。 1: メッセージが受信されています。 メッセージがバス上に在る間 , 本ビットは "1" になります。このため本ビットはメッ セージが送信されている間も "1" になります。本ビットは必ずしも , 受信メッセージが アクセプタンスフィルタを通って通過したかどうかを示すものではありません。 結果として , 本ビットが "0" であるときはバス動作は停止している (HALT=0) か , バス はインターミッション / バスアイドルにある , またはエラー / オーバロードフレームが バス上にあることを意味します。 [bit10] NT: ノードステータス遷移フラグ もし,ノードステータスがインクリメントに変化しまたはバスオフからエラーアクティ ブに変化しても本ビットは "1" になります。 すなわち NT ビットは , ノードステータスがエラーアクティブ (00) からワーニング (01) に , ワーニング (01) からエラーパッシブ (10) に , エラーパッシブ (10) からバスオフ (11) に , バスオフ (11) からエラーアクティブ (00) に変化したときに "1" にセットされます。 括弧内の数字は NS1 ビットおよび NS0 ビットの値を示します。 342 第 21 章 CAN コントローラ ノードステータス遷移割込み許可ビット (NIE) が "1" であるときに割込みが発生しま す。"0" を書き込むと NT ビットが "0" にセットされます。NT ビットに "1" を書き込ん でも無視されます。リードモディファイライト系命令が読み出されたときに "1" が読 み出されます。 [bit9, bit8] NS1 および NS0: ノードステータスビット 1 および 0 本ビット群は現在のノードステータスを表します。 表 21.6-1 NS1, NS0 およびノードステータスの間の対応 < 注意事項 > NS1 NS0 0 0 エラーアクティブ 0 1 ワーニング(エラーアクティブ) 1 0 エラーパッシブ 1 1 バスオフ ノードステータス ワーニング(エラーアクティブ)はノードステータスに対する CAN 仕様 2.0B に おけるエラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラー カウンタが "96" を超えたことを表します。ノードステータスの変化図は 図 21.6-2 に示されています。 図 21.6-2 ノードステータス遷移図 ハードウェアリセット REC: 受信エラーカウンタ TEC: 送信エラーカウンタ エラー アクティブ レジスタ(CSR)のHALTビットに0が書き込ま れた後,連続的な11ビットハイレベル(リ セッシブビット)が受信入力端子(RX)に, 128回入力される。 REC ≧ 96 または TEC ≧ 96 REC < 96 および TEC < 96 ワーニング REC ≧ 128 または TEC ≧ 128 エラー パッシブ REC < 128 および TEC < 128 バスオフ TEC ≧ 256 [bit7] TOE: 送信出力許可ビット 本ビットに "1" を書き込むと汎用ポート端子を CAN コントローラの送信端子に切り換 えます。 0: 汎用ポート端子 1:CAN コントローラの送信端子 343 第 21 章 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 はフェイルセーフのために使用しています。 344 第 21 章 CAN コントローラ 21.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) は , ハイレベル(リセッシブビット)を出力します。 • ほかのレジスタおよびエラーカウンタの値は変化しません。 < 注意事項 > ビットタイミングレジスタ (BTR) はバス動作停止 (HALT=1) の間にセットしなけれ ばなりません。 345 第 21 章 CAN コントローラ 21.6.3 ラストイベント表示レジスタ (LEIR) 本レジスタはラストイベントを示します。 NTE, TCE および RCE は排他的なものです。ラストイベントのビットが "1" にセッ トされたとき , ほかのビットは "0" にセットされます。 ■ ラストイベント表示レジスタ (LEIR) 図 21.6-3 ラストイベント表示レジスタ (LEIR) ラストイベント表示レジスタ bit 7 6 5 アドレス:003B02H(CAN0) 003D02H(CAN1) NTE TCE RCE 003F02H(CAN2) リード/ライト (R/W) (R/W) (R/W) 初期値 (0) (0) (0) 4 3 2 - MBP3 MBP2 1 0 MBP1 MBP0 LEIR (-) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (-) (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 ビットは送信動作を完了したメッ セージバッファの番号を示すために使用されます。 346 第 21 章 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 イベントが生ずる可能性が あります。 347 第 21 章 CAN コントローラ 21.6.4 受信および送信エラーカウンタ (RTEC) 受信および送信エラーカウンタは ,CAN 仕様で定められる送信エラーカウントおよ び受信エラーカウントを示します。このレジスタは読出し専用です。 ■ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) 図 21.6-4 受信および送信エラーカウンタ (RTEC) 受信および送信エラーカウンタレジスタ アドレス:003B05H(CAN0) bit 15 003D05H(CAN1) TEC7 003F05H(CAN2) リード/ライト (R) (0) 初期値 14 13 TEC6 TEC5 TEC4 TEC3 TEC2 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 4 3 2 1 0 6 5 アドレス:003B04H(CAN0) bit 7 003D04H(CAN1) REC7 REC6 REC5 003F04H(CAN2) (R) (R) (R) リード/ライト (0) (0) (0) 初期値 12 11 10 REC4 REC3 REC2 (R) (0) (R) (0) (R) (0) 9 8 TEC1 TEC0 REC1 REC0 (R) (0) RTEC RTEC (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)。 348 第 21 章 CAN コントローラ 21.6.5 ビットタイミングレジスタ (BTR) ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングをセット するものです。 ■ ビットタイミングレジスタ (BTR) 図 21.6-5 ビットタイミングレジスタ (BTR) ビットタイミングレジスタ アドレス:003B07H(CAN0) bit 003D07H(CAN1) 003F07H(CAN2) リード/ライト 初期値 15 - 14 13 12 11 10 9 8 TS2.2 TS2.1 TS2.0 TS1.3 TS1.2 TS1.1 TS1.0 (-) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (-) (1) (1) (1) (1) (0) (1) (0) 6 5 4 3 2 1 0 アドレス:003B06H(CAN0) bit 7 003D06H(CAN1) RSJ1 RSJ0 PSC5 PSC4 PSC3 PSC2 PSC1 PSC0 003F06H(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (1) (1) (1) (1) (1) (1) (1) (1) 初期値 < 注意事項 > BTR BTR 本レジスタはバス動作停止 (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 コントローラの夫々におけるビット時間セグメントは 図 21.6-6 および 図 21.6-7 に示されています。 349 第 21 章 CAN コントローラ 図 21.6-6 CAN 仕様におけるビット時間セグメント ノミナルビット時間 PROP_SEG SYNC_SEG PHASE_SEG1 PHASE_SEG2 ↑ サンプルポイント 図 21.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 BT RSJW = = = = = (PSC + 1) × CLK SYNC_SEG + TSEG1 + TSEG2 (1 + (TS1 + 1) + (TS2 + 1)) × TQ (3 + TS1 + TS2) TQ (RSJ + 1) × TQ 正しく動作を行うためには以下の条件を満足しなければなりません。 1 ≦ PSC ≦ 63 の場合 TSEG1 ≧ 2TQ TSEG1 ≧ RSJW TSEG2 ≧ 2TQ TSEG2 ≧ RSJW PSC=0 の場合 TSEG1 ≧ 5TQ TSEG2 ≧ 2TQ TSEG2 ≧ RSJW CAN 仕様に従ったビットタイミングの設定をするためには , 遅延時間などほかの条件 も考慮されなければなりません。 350 第 21 章 CAN コントローラ 21.6.6 メッセージバッファ有効レジスタ (BVALR) メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を セットし , またはそのステートを表示するものです。 ■ メッセージバッファ有効レジスタ (BVALR) 図 21.6-8 メッセージバッファ有効レジスタ (BVALR) メッセージバッファ有効レジスタ 14 13 12 11 10 9 8 アドレス:000071H(CAN0) bit 15 000081H(CAN1) BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 BVAL9 BVAL8 00005DH(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:000070H(CAN0) 000080H(CAN1) 00005CH(CAN2) リード/ライト 初期値 bit 7 6 5 4 3 2 1 BVALR 0 BVAL7 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0 BVALR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 0: メッセージバッファ (x) 無効 1: メッセージバッファ (x) 有効 もしメッセージバッファ(x) が無効にセットされればそれはメッセージを送信または受 信しません。 もしバッファが送信動作の間に無効にセットされればそれは送信が完了しまたはエ ラーにより終了した後で無効 (BVALx=0) になります。 もしバッファが受信動作の間に無効にセットされればそれは直ちに無効 (BVALx=0) に なります。もし受信メッセージがメッセージバッファ (x) にストアされていればメッ セージバッファ (x) はメッセージをストアした後に無効となります。 < 注意事項 > • x はメッセージバッファ番号を示します (x=0 ∼ 15)。 • ビット (BVALx) に "0" を書き込むことによりメッセージバッファ (x) を無効とし たときにビット操作命令の実行はそのビットが "0" にセットされるまで禁止され ます。 • CAN コントローラが CAN 通信に参加している状態(CSR:HALT ビットの読出 し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可 能な状態)で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「21.15 CAN コントローラの使用上の注意」に従ってください。 351 第 21 章 CAN コントローラ 21.6.7 IDE レジスタ (IDER) 本レジスタは送信 / 受信の間にメッセージバッファ (x) により使用されるフレーム フォーマットを設定します。 ■ IDE レジスタ (IDER) 図 21.6-9 IDE レジスタ (IDER) IDEレジスタ 14 13 12 11 10 9 8 アドレス:003B09H(CAN0) bit 15 003D09H(CAN1) IDE15 IDE14 IDE13 IDE12 IDE11 IDE10 IDE9 IDE8 003F09H(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) アドレス:003B08H(CAN0) 003D08H(CAN1) 003F08H(CAN2) リード/ライト 初期値 bit 7 IDE7 6 5 4 3 2 1 0 IDE6 IDE5 IDE4 IDE3 IDE2 IDE1 IDE0 IDER IDER (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 0: メッセージバッファ (x) に対して標準フレームフォーマット (11 ビットの ID) が使用 されます。 1: メッセージバッファ (x) に対して拡張フレームフォーマット (29 ビットの ID) が使用 されます。 < 注意事項 > 352 • 本レジスタはメッセージバッファ (x) が無効であるとき ( メッセージバッファ有 効レジスタの BVALx(BVALR)=0) に設定しなければなりません。バッファが有 効である (BVALx=1) ときに設定を行うと受信メッセージを不必要にストアする 可能性があります。 • CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出 し値が "0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可 能な状態 ) で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「21.15 CAN コントローラの使用上の注意」に従ってください。 第 21 章 CAN コントローラ 21.6.8 送信要求レジスタ (TREQR) 送信要求レジスタ (TREQR) は , メッセージバッファ (x) に対する送信要求を設定し またはその状態を表示します。 ■ 送信要求レジスタ (TREQR) 図 21.6-10 送信要求レジスタ (TREQR) 送信要求レジスタ 14 13 12 11 10 9 8 アドレス:000073H(CAN0) bit 15 000083H(CAN1) TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 TREQ9 TREQ8 00005FH(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) アドレス:000072H(CAN0) 000082H(CAN1) 00005EH(CAN2) リード/ライト 初期値 bit 7 6 5 4 3 2 1 TREQR 0 TREQ7 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0 TREQR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) TREQx に "1" が書き込まれたときメッセージバッファ (x) に対する送信を開始します。 もしリモートフレーム受信待機レジスタ (RFWTR)*1 の RFWTx が "0" であれば送信は 直ちに開始します。しかし RFWTx=1 であればリモートフレームが受信される(リモー ト要求受信レジスタ (RRTRR)*1 が "1" になる)まで待機した後に送信が開始します。 もし TREQx に "1" が書き込まれるときに RRTRx が既に "1" であれば , RFWTx=1 であっ ても送信は直ちに開始します *2。 *1: TRTRR および RFWTR に関しては 「21.6.9 送信 RTR レジスタ (TRTRR)」および 「21.6.10 リモートフレーム受信待機レジスタ (RFWTR)」を参照してください。 *2: 送信の解除に関しては 「21.6.11 送信解除レジスタ (TCANR)」および 「21.6.12 送 信完了レジスタ (TCR)」を参照してください。 TREQx に "0" を書き込んでも無視されます。 リードモディファイライト系命令がリードされたときは "0" がリードされます。 もし送信動作の完了時における("0" への)クリアおよび "1" の書込みによる設定が同 時に生じればクリア動作が優先されます。 もし 1 つ以上のビットに "1" が書き込まれれば下位番号のメッセージバッファ(x) から 開始して送信が行われます。 TREQx は送信が待ち状態中は "1" であり送信が完了または解除されたときに "0" にな ります。 353 第 21 章 CAN コントローラ 21.6.9 送信 RTR レジスタ (TRTRR) 本レジスタはメッセージバッファ (x) による送信 RTR(リモート送信要求)ビット を設定するものです。 ■ 送信 RTR レジスタ (TRTRR) 図 21.6-11 送信 RTR レジスタ (TRTRR) 送信RTRレジスタ 14 13 12 11 10 9 8 アドレス:003B0BH(CAN0) bit 15 003D0BH(CAN1) TRTR15 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8 003F0BH(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:003B0AH(CAN0) 003D0AH(CAN1) 003F0AH(CAN2) リード/ライト 初期値 bit 7 6 5 4 2 1 0 TRTR7 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 0: データフレームが送信されます。 1: リモートフレームが送信されます。 354 3 TRTRR TRTRR 第 21 章 CAN コントローラ 21.6.10 リモートフレーム受信待機レジスタ (RFWTR) リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求 が設定された ( 送信要求レジスタ (TREQR) の TREQx が "1" であり送信 RTR レジ スタ (TRTRR) の TRTRx が "0" である ) ときに送信を開始する条件を設定します。 0: 送信は直ちに開始します。 1: リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) まで 待機した後に送信を開始します。 ■ リモートフレーム受信待機レジスタ (RFWTR) 図 21.6-12 リモートフレーム受信待機レジスタ (RFWTR) リモートフレーム受信待機レジスタ 14 13 12 11 10 9 8 アドレス:003B0DH(CAN0) bit 15 003D0DH(CAN1) RFWT15 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8 003F0DH(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) アドレス:003B0CH(CAN0) 003D0CH(CAN1) 003F0CH(CAN2) リード/ライト 初期値 < 注意事項 > bit 7 6 5 4 3 2 1 RFWTR 0 RFWT7 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0 RFWTR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) • 送信に対する要求が設定されたときに RRTRx が既に "1" であれば送信は直ちに 開始します。 • リモートフレーム送信に対しては RFWTx を "1" にセットしないでください。 355 第 21 章 CAN コントローラ 21.6.11 送信解除レジスタ (TCANR) TCANx に "1" が書き込まれたときに本レジスタはメッセージバッファ (x) への送信 に対する待ち状態中の要求を解除します。 解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx に "0" を書き込んでも無視されます。 これは書込み専用レジスタでありそのリード値は常に "0" です。 ■ 送信解除レジスタ (TCANR) 図 21.6-13 送信解除レジスタ (TCANR) 送信解除レジスタ 14 13 12 11 10 9 8 アドレス:000075H(CAN0) bit 15 000085H(CAN1) TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 TCAN9 TCAN8 000061H(CAN2) (W) リード/ライト (W) (W) (W) (W) (W) (W) (W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:000074H(CAN0) 000084H(CAN1) 000060H(CAN2) リード/ライト 初期値 356 bit 7 6 5 4 3 2 1 0 TCAN7 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) TCANR (W) (0) TCANR 第 21 章 CAN コントローラ 21.6.12 送信完了レジスタ (TCR) メッセージバッファ (x) により送信の完了時に対応する TCx は "1" になります。 もし送信完了割込み許可レジスタ (TIER) の TIEx が "1" であれば割込みが生じます。 ■ 送信完了レジスタ (TCR) 図 21.6-14 送信完了レジスタ (TCR) 送信完了レジスタ 14 13 12 11 10 9 8 アドレス:000077H(CAN0) bit 15 000087H(CAN1) TC9 TC8 TC15 TC14 TC13 TC12 TC11 TC10 000063H(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:000076H(CAN0) 000086H(CAN1) 000062H(CAN2) リード/ライト 初期値 bit 7 6 5 4 3 2 1 0 TC7 TC6 TC5 TC4 TC3 TC2 TC1 TC0 TCR TCR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ● TCx=0 となる条件 • TCx に "0" を書き込む。 • 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。 送信の完了の後で TCx に "0" を書き込むとそれを "0" にセットします。TCx に "1" を書 込んでも無視されます。リードモディファイライト系命令が実行されたときは "1" が 読み出されます。 < 注意事項 > もし送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生 じたときは "1" への設定が優先します。 357 第 21 章 CAN コントローラ 21.6.13 送信割込み許可レジスタ (TIER) 本レジスタはメッセージバッファ (x) による送信割込みを許可または禁止します。送 信割込みは送信完了時(送信完了レジスタ (TCR) の TCx が "1" になったとき)に発 生します。 ■ 送信割込み許可レジスタ (TIER) 図 21.6-15 送信割込み許可レジスタ (TIER) 送信割込み許可レジスタ 14 13 12 11 10 9 8 アドレス:003B0FH(CAN0) bit 15 003D0FH(CAN1) TIE15 TIE14 TIE13 TIE12 TIE11 TIE10 TIE9 TIE8 003F0FH(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) TIER 6 5 4 3 2 1 0 アドレス:003B0EH(CAN0) bit 7 003D0EH(CAN1) TIE7 TIE6 TIE5 TIE4 TIE3 TIE2 TIE1 TIE0 003F0EH(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (0) (0) (0) (0) (0) (0) (0) (0) 初期値 TIER 0: 送信割込みは禁止されます。 1: 送信割込みは許可されます。 358 第 21 章 CAN コントローラ 21.6.14 受信完了レジスタ (RCR) メッセージバッファ (x) への受信メッセージのストアの完了時に RCx は "1" になり ます。 もし受信完了割込み許可レジスタの RIEx が "1" であれば割込みが生じます。 ■ 受信完了レジスタ (RCR) 図 21.6-16 受信完了レジスタ (RCR) 受信完了レジスタ 14 13 12 11 10 9 8 アドレス:000079H(CAN0) bit 15 000089H(CAN1) RC9 RC8 RC15 RC14 RC13 RC12 RC11 RC10 000065H(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:000078H(CAN0) 000088H(CAN1) 000064H(CAN2) リード/ライト 初期値 bit 7 RC7 6 5 4 3 2 1 0 RC6 RC5 RC4 RC3 RC2 RC1 RC0 RCR RCR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ● RCx=0 となる条件 RCx に "0" を書き込む。 受信メッセージの処理の完了の後で RCx に "0" を書き込んで "0" にセットしてくださ い。RCx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > もし受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生 じたときは , "1" への設定が優先します。 359 第 21 章 CAN コントローラ 21.6.15 リモート要求受信レジスタ (RRTRR) 受信されたリモートフレームがメッセージバッファ (x) 内にストアされると RRTRx は(RCx 設定が "1" になると同時に ) "1" になります。 ■ リモート要求受信レジスタ (RRTRR) 図 21.6-17 リモート要求受信レジスタ (RRTRR) リモート要求受信レジスタ 14 13 12 11 10 9 8 アドレス:00007BH(CAN0) bit 15 00008BH(CAN1) RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 RRTR9 RRTR8 000067H(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:00007AH(CAN0) 00008AH(CAN1) 000066H(CAN2) リード/ライト 初期値 bit 7 6 5 4 3 2 1 RRTRR 0 RRTR7 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0 RRTRR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ● RRTRx=0 となる条件 • RRTRx に "0" を書き込む。 • 受信されたデータフレームがメッセージバッファ (x) にストアされた後(RCx 設定 が "1" になるのと同時)。 • メッセージバッファ (x) による送信が完了した後(送信完了レジスタ (TCR) の TCx は "1")。 RRTRx に "1" を書き込んでも無視されます。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > 360 もし "1" への設定と "0" の書込みによるクリアが同時に生じたときは "1" への設定 が優先します。 第 21 章 CAN コントローラ 21.6.16 受信オーバランレジスタ (ROVRR) もしメッセージバッファ (x) 内への受信メッセージのストア完了時に受信完了レジス タ (RCR) がすでに "1" であれば ROVRx は "1" になり受信がオーバランしたことを 表します。 ■ 受信オーバランレジスタ (ROVRR) 図 21.6-18 受信オーバランレジスタ (ROVRR) 受信オーバランレジスタ 14 13 12 11 10 9 8 アドレス:00007DH(CAN0) bit 15 00008DH(CAN1) ROVR15 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8 000069H(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:00007CH(CAN0) 00008CH(CAN1) 000068H(CAN2) リード/ライト 初期値 bit 7 6 5 4 3 2 1 ROVRR 0 ROVR7 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0 ROVRR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ROVRx に "0" を書き込むと ROVRx=0 になります。ROVRx に "1" を書込みしても無視 されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込むと それを "0" に設定します。 リードモディファイライト系命令が実行されたときは "1" が読み出されます。 < 注意事項 > もし "1" への設定と "0" の書込みによるクリアが同時に生じたときは "1" への設定 が優先します。 361 第 21 章 CAN コントローラ 21.6.17 受信割込み許可レジスタ (RIER) 受信割込み許可レジスタ (RIER) は , メッセージバッファ (x) による受信割込みを許 可または禁止します。 受信割込みは受信完了時(受信完了レジスタ (RCR) の RCx が "1" であるとき)に 発生します。 ■ 受信割込み許可レジスタ (RIER) 図 21.6-19 受信割込み許可レジスタ (RIER) 受信割込み許可レジスタ 14 13 12 11 10 9 8 アドレス:00007FH(CAN0) bit 15 00008FH(CAN1) RIE15 RIE14 RIE13 RIE12 RIE11 RIE10 RIE9 RIE8 00006BH(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) 初期値 (0) (0) アドレス:00007EH(CAN0) 00008EH(CAN1) 00006AH(CAN2) リード/ライト 初期値 bit 7 6 5 4 3 2 1 0 RIE7 RIE6 RIE5 RIE4 RIE3 RIE2 RIE1 RIE0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 0: 受信割込みは禁止されます。 1: 受信割込みは許可されます。 362 RIER RIER 第 21 章 CAN コントローラ アクセプタンスマスク選択レジスタ (AMSR) 21.6.18 本レジスタは受信メッセージ ID とメッセージバッファ (x)ID の比較に対するマスク ( アクセプタンスマスク ) を選択します。 ■ アクセプタンスマスク選択レジスタ (AMSR) 図 21.6-20 アクセプタンスマスク選択レジスタ (AMSR) アクセプタンスマスク選択レジスタ タイプ1 7 bit アドレス:003B10H(CAN0) 003D10H(CAN1) 003F10H(CAN2) リード/ライト 初期値 6 5 4 3 2 1 0 AMS3.1 AMS3.0 AMS2.1 AMS2.0 AMS1.1 AMS1.0 AMS0.1 AMS0.0 (R/W) (R/W) (X) (X) (R/W) (X) (R/W) (R/W) (X) (X) (R/W) (R/W) (X) (X) AMSR バイト0 (R/W) (X) タイプ2 14 13 12 11 10 9 8 アドレス:003B11H(CAN0) bit 15 003D11H(CAN1) AMS4.0 AMS6.0 AMS5.0 AMS7.0 AMS4.1 AMS6.1 AMS5.1 AMS7.1 003F11H(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 タイプ3 bit アドレス:003B12H(CAN0) 003D12H(CAN1) 003F12H(CAN2) リード/ライト 初期値 タイプ4 アドレス:003B13H(CAN0) 003D13H(CAN1) 003F13H(CAN2) リード/ライト 初期値 7 6 5 4 3 2 1 0 AMS11.1 AMS11.0 AMS10.1 AMS10.0 AMS9.1 AMS9.0 AMS8.1 AMS8.0 (R/W) (R/W) (X) (X) bit 15 14 (R/W) (X) 13 (R/W) (R/W) (X) (X) 12 11 (R/W) (R/W) (X) (X) 10 9 (R/W) (X) (R/W) (R/W) (X) (X) (R/W) (R/W) (X) (X) AMSR バイト2 (R/W) (X) 8 AMS15.1 AMS15.0 AMS14.1 AMS14.0 AMS13.1 AMS13.0 AMS12.1 AMS12.0 (R/W) (R/W) (X) (X) AMSR バイト1 AMSR バイト3 (R/W) (X) 表 21.6-2 アクセプタンスマスクの選択 < 注意事項 > AMSx.1 AMSx.0 0 0 フルビット比較 0 1 フルビットマスク 1 0 アクセプタンスマスクレジスタ 0(AMR0) 1 1 アクセプタンスマスクレジスタ 1(AMR1) アクセプタンスマスク • AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である(メッセージ バッファ有効レジスタ (BVALR) の BVALx が "0" である)ときに設定しなけれ ばなりません。バッファが有効 (BVALx=1) なときに設定を行うと不要な受信 メッセージがストアされる可能性があります。 • CAN コントローラが CAN 通信に参加している状態(CSR:HALT ビットの読み 出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が 可能な状態 ) で , メッセージバッファを無効(BVALR:BVAL=0) にする場合は , 「21.15 CAN コントローラの使用上の注意」に従ってください。 363 第 21 章 CAN コントローラ 21.6.19 アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがありますが両者とも に標準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用で きます。 AM28 ∼ AM18(11 ビット ) は標準フレームフォーマットにおけるアクセプタンスマ スクに使用され AM28 ∼ AM0(29 ビット ) は拡張フォーマットでアクセプタンスマ スクに使用されます。 ■ アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) 図 21.6-21 アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) アクセプタンスマスクレジスタ0/1 6 5 4 3 2 1 0 アドレス:003B14H(CAN0) bit 7 003D14H(CAN1) AM28 AM27 AM26 AM25 AM24 AM23 AM22 AM21 003F14H(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) AMR0 バイト0 14 13 12 11 10 9 8 アドレス:003B15H(CAN0) bit 15 003D15H(CAN1) AM20 AM19 AM18 AM17 AM16 AM15 AM14 AM13 003F15H(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 AMR0 バイト1 6 5 4 3 2 1 0 アドレス:003B16H(CAN0) bit 7 003D16H(CAN1) AM8 AM7 AM6 AM5 AM12 AM11 AM10 AM9 003F16H(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) AMR0 バイト2 14 アドレス:003B17H(CAN0) bit 15 003D17H(CAN1) AM3 AM4 003F17H(CAN2) (R/W) (R/W) リード/ライト (X) (X) 初期値 6 アドレス:003B18H(CAN0) bit 7 003D18H(CAN1) AM28 AM27 003F18H(CAN2) リード/ライト (R/W) (R/W) (X) (X) 初期値 14 アドレス:003B19H(CAN0) bit 15 003D19H(CAN1) AM20 AM19 003F19H(CAN2) (R/W) (R/W) リード/ライト (X) (X) 初期値 6 アドレス:003B1AH(CAN0) bit 7 003D1AH(CAN1) AM12 AM11 003F1AH(CAN2) リード/ライト (R/W) (R/W) (X) (X) 初期値 13 12 11 AM2 AM1 AM0 (R/W) (R/W) (R/W) (X) (X) (X) 9 8 - - - (-) (-) (-) (-) (-) (-) 5 4 3 2 1 0 AM26 AM25 AM24 AM23 AM22 AM21 AMR0 バイト3 AMR1 バイト0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 13 12 11 10 9 8 AM18 AM17 AM16 AM15 AM14 AM13 AMR1 バイト1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 5 4 3 2 1 0 AM10 AM9 AM8 AM7 AM6 AM5 AMR1 バイト2 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 14 13 12 11 アドレス:003B1BH(CAN0) bit 15 003D1BH(CAN1) AM3 AM2 AM1 AM0 AM4 003F1BH(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) 初期値 364 10 10 9 8 - - - (-) (-) (-) (-) (-) (-) AMR1 バイト3 第 21 章 CAN コントローラ ● 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) にする場合は , 「21.15 CAN コントローラの使用上の注意」に従ってください。 365 第 21 章 CAN コントローラ 21.6.20 メッセージバッファ メッセージバッファは 16 個あり ,1 つのメッセージバッファ x(x=0 ∼ 15) は ID レジ スタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成されて います。 ■ メッセージバッファ • メッセージバッファ (x) は送信および受信の両方に使用されます。 • 下位番号のメッセージバッファの方が高い優先順位を割当てられています。 - 送信時に送信要求が 1 つ以上のメッセージバッファに対して為されたときには最 下位番号のメッセージバッファから開始して送信が行われます( 「21.7 CAN コ ントローラの送信」を参照してください) 。 - 受信時に 1 つ以上のメッセージバッファのアクセプタンスフィルタ(受信メッ セージのアクセプタンスマスク ID とメッセージバッファとを比較する機構)を 受信メッセージ ID が通過するときに受信メッセージは最下位番号のメッセージ バッファ内に記憶されます( 「21.8 CAN コントローラの受信」を参照してくだ さい)。 • 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたと きにメッセージバッファはマルチレベルメッセージバッファとして使用すること ができます。これにより受信時間に対する余裕が与えられます( 「21.12 メッセー ジバッファ (x) による受信方法」を参照してください) 。 < 注意事項 > • メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位でイー ブンアドレスに対して行わなければなりません。バイト単位で書込み動作を行 うと下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいま す。 • メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0"(無効)であ るときにメッセージバッファ x(IDRx, DLCRx および DTRx)は汎用 RAM とし て使用することができます。ただし ,CAN コントローラが送受信動作中は , メッ セージバッファを使用しますので ,CPU のアクセスが最大で 64 マシンサイクル 待たされることがあります。これは汎用 RAM 領域(アドレス 003A00H ∼ 003A1FH , 003C00H ∼ 003C1FH および 003E00H ∼ 003E1FH)についても同様 です。 366 第 21 章 CAN コントローラ 21.6.21 ID レジスタ x(x=0 ∼ 15)(IDRx) ID レジスタ x(x=0 ∼ 15)(IDRx) は , メッセージバッファ (x) に対する ID レジスタで す。 ■ ID レジスタ x(x=0 ∼ 15)(IDRx) 図 21.6-22 ID レジスタ x(x=0 ∼ 15)(IDRx) IDレジスタx(x=0~15) 6 5 4 3 2 1 0 アドレス:003A20H+4x(CAN0) bit 7 003C20H+4x(CAN1) ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID21 003E20H+4x(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) IDRx バイト0 14 13 12 11 10 9 8 アドレス:003A21H+4x(CAN0) bit 15 003C21H+4x(CAN1) ID20 ID19 ID18 ID17 ID16 ID15 ID14 ID13 003E21H+4x(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 IDRx バイト1 6 5 4 3 2 1 0 アドレス:003A22H+4x(CAN0) bit 7 003C22H+4x(CAN1) ID8 ID7 ID6 ID5 ID12 ID11 ID10 ID9 003E22H+4x(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) IDRx バイト2 14 13 12 11 アドレス:003A23H+4x(CAN0) bit 15 003C23H+4x(CAN1) ID3 ID2 ID1 ID0 ID4 003E23H+4x(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) 初期値 10 9 8 - - - (-) (-) (-) (-) (-) (-) IDRx バイト3 標準フレームフォーマット(IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x) を使用しているときは ID28 ∼ ID18 の 11 ビットを使用してください。拡張フレーム フォーマット (IDEx=1) でバッファを使用しているときは ID28 ∼ ID0 の 29 ビットを使 用してください。 ID28 ∼ ID0 の機能は次のとおりです。 • アクセプタンスコード設定(受信メッセージ ID との比較用の ID) • 送信メッセージ ID の設定 • 受信メッセージ ID の記憶 367 第 21 章 CAN コントローラ < 注意事項 > 368 • 標準フレームフォーマットでは ID28 ∼ ID22 のビットのすべてに "1" をセット することは禁止されています。 • 受信メッセージ ID はアクセプタンスマスクでマスクされているビットにも記憶 されます。標準フレームフォーマットでは ID17 ∼ ID0 は不定値(受信シフト レジスタに残されている前回受信したメッセージの一部)が記憶されます。 • ID レジスタ x(x=0 ∼ 15)(IDRx) への書込み動作はワード単位で行わなければな りません。バイト単位で書込み動作を行うと下位バイトへの書込み時に上位バ イトに不定データを書き込んでしまいます。上位バイトへの書込みは無視され ます。 • 本レジスタはメッセージバッファ (x) が無効(メッセージバッファ有効レジス タ (BVALR) の BVALx が "0")であるときに設定されなければなりません。バッ ファが有効 (BVALx=1)であるときに設定を行うと不必要な受信メッセージが ストアされてしまいます。 • CAN コントローラが CAN 通信に参加している状態(CSR:HALT ビットの読み 出し値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が 可能な状態)で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「21.15 CAN コントローラの使用上の注意」に従ってください。 第 21 章 CAN コントローラ 21.6.22 DLC レジスタ x(x=0 ∼ 15)(DLCRx) DLC レジスタ x(x=0 ∼ 15)(DLCRx) は , メッセージバッファ x に対する DLC をスト アします。 ■ DLC レジスタ x(x=0 ∼ 15)(DLCRx) 図 21.6-23 DLC レジスタ x(x=0 ∼ 15)(DLCRx) DLCレジスタx(x=0~15) アドレス:003A60H+2x(CAN0) bit 7 003C60H+2x(CAN1) - 003E60H+2x(CAN2) リード/ライト (-) 初期値 (-) 6 5 - - (-) (-) (-) (-) 4 3 2 1 0 - DLC3 DLC2 DLC1 DLC0 DLCRx バイト0 (-) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (-) ● 送信 • データフレームが送信する(送信 RTR レジスタ (TRTRR) の TRTRx が "0")ときに 送信メッセージのデータ長(バイト単位)を設定します。 • リモートフレームが送信する (TRTRx=1) ときに要求メッセージのデータ長(バイト 単位)を設定します。 < 注意事項 > "0000" ∼ "1000"(0 ∼ 8 バイト)以外の設定は禁止されています。 ● 受信 • データフレームが受信された(リモートフレーム要求受信レジスタ の (RRTRR) RRTRx が "0")ときに受信メッセージのデータ長(バイト単位)を記憶します。 • リモートフレームが受信された (RRTRx=1) ときに要求メッセージのデータ長(バイ ト単位)を記憶します。 < 注意事項 > 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で 書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込ん でいます。上位バイトへの書込みは無視されます。 369 第 21 章 CAN コントローラ 21.6.23 データレジスタ x(x=0 ∼ 15)(DTRx) データレジスタ x(x=0 ∼ 15)(DTRx) は , メッセージバッファ (x) に対するデータレ ジスタです。 本レジスタはデータフレームの送信および受信のみ使用されるものでありリモート フレームの送信および受信には使用されません。 ■ データレジスタ x(x=0 ∼ 15)(DTRx) 図 21.6-24 データレジスタ x(x=0 ∼ 15)(DTRx) データレジスタx(x=0~15) 6 5 4 3 2 1 0 アドレス:003A80H+8x(CAN0) bit 7 003C80H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E80H+8x(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) DTRx バイト0 14 13 12 11 10 9 8 アドレス:003A81H+8x(CAN0) bit 15 003C81H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E81H+8x(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 DTRx バイト1 6 5 4 3 2 1 0 アドレス:003A82H+8x(CAN0) bit 7 003C82H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E82H+8x(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 初期値 DTRx バイト2 14 13 12 11 10 9 8 アドレス:003A83H+8x(CAN0) bit 15 003C83H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E83H+8x(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 6 5 4 3 2 1 0 アドレス:003A84H+8x(CAN0) bit 7 003C84H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E84H+8x(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) 初期値 (X) (X) DTRx バイト3 DTRx バイト4 14 13 12 11 10 9 8 アドレス:003A85H+8x(CAN0) bit 15 003C85H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E85H+8x(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 DTRx バイト5 6 5 4 3 2 1 0 アドレス:003A86H+8x(CAN0) bit 7 003C86H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E86H+8x(CAN2) リード/ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) (X) 初期値 DTRx バイト6 14 13 12 11 10 9 8 アドレス:003A87H+8x(CAN0) bit 15 003C87H+8x(CAN1) D6 D5 D4 D3 D2 D1 D0 D7 003E87H+8x(CAN2) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード/ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 DTRx バイト7 370 第 21 章 CAN コントローラ ● 送信メッセージデータ(0 ∼ 8 バイトのいずれか)の設定 データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。 ● 受信メッセージデータ データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で記憶されます。 受信メッセージデータが 8 バイトより少なくてもデータが記憶されるデータレジスタ (DTRx) の残りのバイトは不定となります。 < 注意事項 > 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で 書込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込ん でしまいます。上位バイトへの書込みは無視されます。 371 第 21 章 CAN コントローラ 21.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)。 < 注意事項 > 372 リモートフレームをストアすることでは送信要求は解除されません(TREQx=1 は そのままです)。 第 21 章 CAN コントローラ リモートフレームの送信に対する要求にもかかわらずメッセージバッファ(x) が送信を 実行していなかった場合でも(TRTRx=1 または TREQx=1), アクセプタンスフィルタ を 通過 し た 受信 リ モー ト フレ ー ムを ス トア し た 後に は 送信 要 求が 解 除さ れ ま す (TREQx=0)。 < 注意事項 > データフレームまたはリモートフレームのいずれをストアしても送信要求は解除 されます。 ■ CAN コントローラの送信の完了 送信が成功したときに RRTRx は "0" になり TREQx は "0" になり送信完了レジスタ (TCR) の TCx は "1" になります。もし送信完了割込みが許可されていれば(送信完了 割込み許可レジスタ (TIER) の TIEx は "1")割込みが生じます。 ■ CAN コントローラの送信フローチャート 図 21.7-1 に ,CAN コントローラの送信フローチャートを示します。 373 第 21 章 CAN コントローラ 図 21.7-1 CAN コントローラの送信フローチャート 送信要求 (TREQx := 1) TCx := 0 0 TREQx ? 1 0 RFWTx ? 1 0 RRTRx ? 1 上記条件を満足するほかのメッセージ バッファがある場合,その中で最下位 番号メッセージバッファを選択 NO バスは使用され ていないか? YES 0 1 TRTRx ? データフレームが送信される リモートフレームが送信される NO 送信は成功したか? YES TCANx ? RRTRx := 0 TREQx := 0 TCx := 1 TIEx ? 1 TREQx := 0 1 0 送信完了割込みが発生 送信の終了 374 0 第 21 章 CAN コントローラ 21.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 に記憶されます。 375 第 21 章 CAN コントローラ 図 21.8-1 には , 受信メッセージを記憶すべきメッセージバッファ x を決定するための フローチャートが示されています。メッセージバッファはバッファ番号順に ,AMSR の 各ビットが全ビット比較にセットされたメッセージバッファ ,AMR0 または AMR1 を 使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセット されたメッセージバッファの順番に設定されることを推奨します。 図 21.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" になります。 この結果,送信を実行しなかったメッセージバッファへのリモートフレームの送信に対 する要求は解除されます。 376 第 21 章 CAN コントローラ < 注意事項 > • データフレーム送信に対する要求は解除されません。 • 送信要求の解除に関しては 「21.7 CAN コントローラの送信」を参照してくだ さい。 ■ 受信完了 受信完了レジスタ (RCR) の RCx は受信メッセージを記憶した後に "1" になります。 もし受信割込みが許可されていれば(受信割込み許可レジスタ (RIER) の RIEx が "1") 割込みが生じます。 < 注意事項 > この CAN コントローラはそれ自身が送信したメッセージを受信することはありま せん。 377 第 21 章 CAN コントローラ 21.9 CAN コントローラの受信フローチャート 図 21.9-1 に ,CAN コントローラの受信フローチャートを示します。 ■ CAN コントローラの受信フローチャート 図 21.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 ? 0 受信の終了 378 1 受信割込みが発生 第 21 章 CAN コントローラ 21.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) のときに設定を行うと不必要な受信メッセージがストアされる可能性があります。 ■ アクセプタンスフィルタの設定 メッセージバッファ(x) のアクセプタンスフィルタはアクセプタンスコードおよびアク セプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ ファ (x) が無効(メッセージバッファ許可レジスタ (BVALR) の BVALx が "0")である ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行 うと不必要な受信メッセージがストアされる可能性があります。 各メッセージバッファ(x) で使用されたアクセプタンスマスクをアクセプタンスマスク 選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ (AMR0 および AMR1)も使用するのであれば設定しなければなりません(設定の詳細 に関しては 「21.6.18 アクセプタンスマスク選択レジスタ (AMSR)」および 「21.6.19 ア クセプタンスマスクレジスタ 0 および 1(AMR0/AMR1)」を参照してください) 。 379 第 21 章 CAN コントローラ アクセプタンスマスクは不必要な受信メッセージがストアされたときでも送信要求が 解除されないように設定しなければなりません。たとえばそれは同一の ID のメッセー ジのみを送信するのであればフルビット比較に設定しなければなりません。 ■ 低電力消費モードの設定 F2MC-16LX を低電力消費モード(停止 , 時計 , ハードウェアスタンバイなど)に設定 するには制御ステータスレジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込 んでからバス動作が停止したか (HALT=1) をチェックしてください。 380 第 21 章 CAN コントローラ 21.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" に設定してください。 < 注意事項 > もし RFWTx が "1" に設定されるとリモートフレーム送信を行うことはできませ ん。 381 第 21 章 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 が受信したリ モートフレームの値になることに注意してください。 382 第 21 章 CAN コントローラ 21.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 ならば処理された受信メッセージは有効です。CRx に "0" を書き込んでそれ を "0" に設定し(受信完了割込みも解除されます)て受信を終了します。 ROVRx=1 ならば受信オーバーランが生じ , 処理された受信メッセージに新たな受信 メッセージが上書きされている可能性があります。この場合には ROVRx ビットに "0" を書き込んでそれを "0" に設定した後で受信メッセージを再処理しなければなりませ ん。 図 21.12-1 に , 受信割込み処理の一例を示します。 383 第 21 章 CAN コントローラ 図 21.12-1 受信割込み処理の例 RCx=1で割込み 受信メッセージ読取り A := ROVRx ROVRx := 0 A = 0? YES RCx := 0 終了 384 NO 第 21 章 CAN コントローラ 21.13 マルチレベルメッセージバッファの構成の決定 もし受信が頻繁に行われる場合 , または不特定多数のメッセージを受信するのであれ ば , すなわちメッセージを処理する時間が不十分であれば ,1 つ以上のメッセージ バッファを組合せてマルチレベルメッセージバッファとすることにより CPU による 受信メッセージの処理に対する余裕を与えてください。 ■ マルチレベルメッセージバッファの構成の決定 マルチレベルメッセージバッファを用意するには組合せられた各メッセージバッファ に同じアクセプタンスフィルタを設定しなければなりません。 もしアクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較 ((AMSx.1, AMSx.0)=(0, 0)) に設定されていればメッセージバッファをマルチレベルメッセージ構 成とすることはできません。これは全ビット比較では受信完了レジスタ (RCR) の RCx ビットの値の如何にかかわらず受信メッセージが記憶されることから ,1 つ以上のメッ セージバッファに対して全ビット比較および同一アクセプタンスコード(ID レジスタ (IDRx)) が指定されたとしても受信メッセージが常に下位番号の(優先度の低い)メッ セージバッファに記憶されるからです。このため全ビット比較および同一アクセプタ ンスコードを 1 つ以上のメッセージバッファに指定してはなりません。 図 21.13-1 は , マルチレベルメッセージバッファの動作例を示しています。 385 第 21 章 CAN コントローラ 図 21.13-1 マルチレベルメッセージバッファの動作例 :初期化 AMS15, AMS14, AMS13 AMSR 10 10 10 ... AM28~AM18 AMR0選択 AMS0 ID28~ID18 0000 1111 1111 111 111 0000 RC15, RC14, RC13 IDE ... メッセージバッファ 13 0101 0000 000 0 ... メッセージバッファ 14 0101 0000 000 0 メッセージバッファ 15 0101 0000 000 0 ... ... RCR ROVRR 0 0 0 ... 0 0 0 ... ROVR15, ROVR14, ROVR13 マスク メッセージ受信中:受信メッセージはメッセージバッファ13に記憶されます。 IDE ID28~ID18 メッセージ受信中 0101 1111 000 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 0 0 1 ... メッセージバッファ 14 0101 0000 000 0 ... ROVRR 0 0 0 ... メッセージバッファ 15 0101 0000 000 0 ... メッセージ受信中:受信メッセージはメッセージバッファ14に記憶されます。 メッセージ受信中 0101 1111 001 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 0 1 1 ... 0 ... ROVRR 0 0 0 ... 0 ... メッセージバッファ 14 メッセージバッファ 15 0101 1111 001 0101 0000 000 メッセージ受信中:受信メッセージはメッセージバッファ15に記憶されます。 メッセージ受信中 0101 1111 010 0 ... メッセージバッファ 13 0101 1111 000 0 ... RCR 1 1 1 ... 0101 1111 001 0 ... ROVRR 0 0 0 ... 0 ... メッセージバッファ 14 メッセージバッファ 15 0101 1111 010 メッセージ受信中:オーバランが発生した場合(ROVR=13),受信メッセージはメッセージバッファ13に 記憶されます。 メッセージ受信中 0101 1111 011 0 ... メッセージバッファ 13 0101 1111 011 0 ... RCR 1 1 1 ... 0 ... ROVRR 0 0 1 ... 0 ... メッセージバッファ 14 メッセージバッファ 15 < 注意事項 > 386 0101 1111 001 0101 1111 010 4 個のメッセージが同一のアクセプタンスフィルタ設定によりメッセージバッファ 13, 14 および 15 に受信されます。 第 21 章 CAN コントローラ 21.14 CAN2 RX/TX 端子の接続先の設定 CAN2 RX/TX 端子切換えレジスタ (CANSWR) により ,CAN2 の RX/TX 端子 (RX2/ TX2) を CAN1 の RX1/TX1 端子に接続を切り換えることができます。 ■ CAN2 RX/TX 端子切換えレジスタ (CANSWR) 図 21.14-1 CAN2 RX/TX 端子切換えレジスタ (CANSWR) のビット構成 CAN2 RX/TX端子切換えレジスタ bit 7 6 5 4 3 2 アドレス:00000CH リード/ライト 初期値 (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) 1 0 RXS TXS CANSWR (-) (R/W) (R/W) (-) (0) (0) [bit1] RXS "0" を書込むと CAN2 の入力は RX2 より入力されます。 "1" を書込むと CAN2 の入力は RX1 より入力され ,CAN1 と共用になります。 [bit0] TXS "0" を書込むと CAN2 の出力は TX2 より出力します。 "1" を書込むと CAN2 の出力は TX1 より出力し ,CAN1 と共用になります。 CAN2 は 図 21.14-2 のように TX 端子あるいは RX 端子の接続先を変更し ,CAN1 と共 用することが可能で ,これにより外付け CANトランシーバを節約することができます。 共用の設定は CANSWR レジスタにより行います。 図 21.14-2 CAN2 RX/TX 端子の切換え CAN1 TX TX1 CANSWR:TXSビット により切り換わる RX1 RX CAN1 CANSWR:RXSビット により切り換わる Vcc CAN2 TX TX2 RX2 RX CAN2 387 第 21 章 CAN コントローラ 21.15 CAN コントローラの使用上の注意 CAN コントローラを使用する場合は , 以下の点に注意してください。 ■ BVAL ビットによるメッセージバッファ禁止時の注意 メッセージバッファの内容の読出しや書込みの処理を行うために BVAL ビットを用い てメッセージバッファを禁止すると ,CAN コントローラの送受信が正常に行われない 可能性があります。本注意事項は , この現象を回避する方法を説明しています。 ● 発生条件 以下の 2 つの条件を同時に満たす場合に ,CAN コントローラの送受信が正常に行われ ない可能性があります。 • CAN コントローラが CAN 通信に参加している状態 , つまり HALT ビットの読み出 し値が "0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な 状態。 • BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容 へ読出しや書込みの処理を行う。 ● 処置 受信メッセージバッファの構成を変更する場合の操作 CAN 通信が確立されている間(HALT ビットの読み出し値が "0" で ,CAN コント ローラが CAN バスの通信に参加しており送受信が可能な状態)で ,ID レジスタや AMS レジスタ ,AMR0/AMR1 レジスタの設定変更により , メッセージバッファの構 成の変更を行う場合は , 以下のいずれかの手段を使用してください。 • HALT ビットの使用 - HALT ビットに "1" を書込み , その後このビットが "1" になったことを確認してか ら ID/AMS/AMR0/AMR1 レジスタの設定を変更してください。 • メッセージバッファ 0 を使用しない - メッセージバッファ0 を送信にも受信にも使用しないでください。すなわち , メッ セージバッファを禁止し(BVAL0=0), 受信割込みを禁止 (RIE0=0), 送信要求を 行わない (TREQ0=0) でください。 受信メッセージの処理を行う場合の操作 次に来るメッセージによる上書き動作の防止のために ,BVAL ビットによる受信禁 止を行わないでください。メッセージの上書き有無の確認は ,ROVR ビットを用い てください。詳細は ,「21.6.16 受信オーバランレジスタ (ROVRR)」および「21.12 メッセージバッファ (x) による受信方法」を参照してください。 送信要求の抑止をする場合の操作 送信要求を抑止ないし中止する場合は ,BVAL ビットを使用せず ,TCAN ビットを用 いてください。 388 第 21 章 CAN コントローラ 送信メッセージを構成する場合の操作 送信メッセージの構成を行うために ,ID レジスタや IDE レジスタの設定を行う場合 , BVAL ビットを使用してメッセージバッファを禁止してください。この際 , 送信要 求ビットを読み出して "0" であること (TREQ=0) を確認するか , 送信完了ビットに より送信が完了したこと (TC=1) を確認した後で ,BVAL ビットによる禁止処理 (BVAL=0) を行ってください。 389 第 21 章 CAN コントローラ 390 第 22 章 アドレス一致検出機能 アドレス一致検出の機能と動作について説明しま す。 22.1 アドレス一致検出機能の概要 22.2 アドレス一致検出機能のレジスタ 22.3 アドレス一致検出機能の動作 22.4 アドレス一致検出機能の使用例 391 第 22 章 アドレス一致検出機能 22.1 アドレス一致検出機能の概要 アドレスが , アドレス検出レジスタに設定された値と等しい場合に ,CPU に読み込ま れる命令コードを強制的に INT9 命令のコード (01H) に置き換えます。その結果 , CPU が設定された命令を実行するときに ,INT9 命令を実行します。INT9 割込みルー チンで処理を行うことにより , アドレス一致検出機能を実現することができます。 アドレス検出レジスタは 2 本用意されており , 各レジスタごとにコンペア許可ビッ トがあります。アドレス検出レジスタに設定された値とアドレスが一致して , かつ割 込み許可ビットが "1" の場合 ,CPU に読み込まれる命令コードを強制的に INT9 命令 のコードに置き換えます。 ■ アドレス一致検出機能のブロックダイヤグラム 図 22.1-1 アドレス一致検出機能のブロックダイヤグラム アドレス検出レジスタ 許可ビット F2MC-16LXバス 392 比較 アドレスラッチ INT9 命令 F2MC-16LX CPUコア 第 22 章 アドレス一致検出機能 22.2 アドレス一致検出機能のレジスタ アドレス一致検出機能には , 次の 2 種類のレジスタがあります。 • プログラムアドレス検出レジスタ (PADR0/PADR1) • プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) ■ プログラムアドレス検出レジスタ (PADR0/PADR1) プログラムアドレス検出レジスタ (PADR0/PADR1:Program Address Detect Register 0/1) は , 各レジスタに書き込まれた値と , アドレスを比較します。一致した場合は ,PACSR の対応する割込み許可ビットが"1"の場合,CPUに対してINT9命令の発生を要求します。 対応する割込み許可ビットが "0" の場合は , 一致していても何も行いません。 図 22.2-1 プログラムアドレス検出レジスタ (PADR0/PADR1) プログラムアドレス検出レジスタ アクセス 初期値 PADR0 1FF2H/1FF1H/1FF0H R/W 不定 PADR1 1FF5H/1FF4H/1FF3H R/W 不定 バイト バイト バイト 表 22.2-1 に , プログラムアドレス検出レジスタ (PADR0/PADR1) と PACSR との対応を 示します。 表 22.2-1 PADR0/PADR1 レジスタと PACSR との対応 プログラムアドレス検出レジスタ 割込み許可ビット PADR0 AD0E PADR1 AD1E ■ プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) プログラムアドレス検出コントロールステータスレジスタ (PACSR:Program Address detect Control Status Register) は , アドレス検出機能の動作を制御します。 図 22.2-2 プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) プログラムアドレス検出コントロール/ステータスレジスタ 6 5 bit 7 アドレス:009EH 予約 リード/ライト 初期値 予約 予約 4 3 2 1 0 予約 AD1E 予約 AD0E 予約 PACSR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) [bit7 ∼ bit4] 予約ビット bit7∼bit4は,予約ビットです。PACSRを設定するときは,必ず "0"を設定してください。 393 第 22 章 アドレス一致検出機能 [bit3] AD1E(Address Detect register 1 Enable) AD1E は ,PADR1 の動作許可ビットです。 このビットが "1" のとき PADR1 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 [bit2] 予約ビット bit2 は , 予約ビットです。PACSR を設定するときは , 必ず "0" を設定してください。 [bit1] AD0E(Address Detect register 0 Enable) AD0E ビットは ,PADR0 の動作許可ビットです。 このビットが "1" のとき PADR0 レジスタとアドレスの比較を行い , 一致した場合に CPU は INT9 命令を実行します。 [bit0] 予約 : 予約ビット bit0 は , 予約ビットです。PACSR を設定するときは , 必ず "0" を設定してください。 394 第 22 章 アドレス一致検出機能 22.3 アドレス一致検出機能の動作 プログラムカウンタがアドレス一致検出レジスタと同じアドレスを指示している場 合は ,INT9 命令を実行します。INT9 命令ルーチンを処理することによってアドレス 一致検出機能を実現することができます。 ■ アドレス一致検出機能の動作 アドレス検出レジスタは 2 本用意されており , 各レジスタごとにコンペア許可ビットが あります。アドレス検出レジスタに設定された値とプログラムカウンタの値が一致し て , かつコンペア許可ビットが "1" の場合 ,CPU は INT9 命令を実行します。 < 注意事項 > アドレス検出レジスタとプログラムカウンタの値が一致した場合は , 内部データバ スの内容が強制的に "01H" に変更されるので ,INT9 命令を実行することになりま す。アドレス検出レジスタの内容を変更する前には , コンペア許可ビットを必ず "0" にしてください。コンペア許可ビットが "1" になっている間に変更すると , 誤 動作を引き起こす可能性があります。 395 第 22 章 アドレス一致検出機能 22.4 アドレス一致検出機能の使用例 図 22.4-1 に , アドレス一致検出機能のシステム構成例を , 表 22.4-1 に ,E2PROM メ モリマップを示します。 ■ アドレス一致検出機能のシステム構成例 図 22.4-1 アドレス一致検出機能のシステム構成例 E2PROM MCU F2MC16LX pull up 抵抗 SIN ○ コネクタ(UART) ■ 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 に書き込みます。 396 第 22 章 アドレス一致検出機能 ● リセットシーケンス MCU はリセット後 E2PROM の値を読み出します。パッチプログラムのバイト数が "0" でなかった場合は , パッチプログラムの本体が E2PROM から読み出され RAM に書き 込まれます。次に ,MCU により PADR0, または PADR1 どちらか一方でパッチアドレス をセットし , コンペア許可ビットをセットします。再配置可能はパッチプログラムが望 まれる場合は ,RAM 領域に対してパッチ済みプログラムの最初のアドレスを書き込む ことができます。この場合 ,INT9 ルーチンがこのユーザ定義の RAM 領域を参照し , パッチ済みプログラムへ向けてジャンプします。 ● INT9 命令 割込みルーチンでは , スタックプログラムのカウンタの値を調べることにより , 割込み が発生するアドレスを知ることができます。割込みの最中にスタックへ押し込まれた 情報は破棄されます。 ■ プログラムパッチ処理例 図 22.4-2 プログラムパッチ処理例 FFFFFFH 異常プログラム ROM P C ∥ 発 生 ア ド レ ス 外付E2PROM プログラムパッチ用 レジスタセット ○ ○ ○ プログラムバイト数 割込み発生アドレス 修正プログラム UARTを使用して データ転送 RAM 修正プログラム 000000H 397 第 22 章 アドレス一致検出機能 ■ プログラムパッチ処理フロー図 図 22.4-3 プログラムパッチ処理フロー図 リセット E2PROMの0000Hを読込む YES INT9 0000H (E2PROM) =0 パッチプログラムへ JMP 000400H NO アドレスを読込む 2 0001H ~0003H (E PROM) ↓MOV PADR0(MCU) パッチプログラム実行 000400H ~000480H パッチプログラムを読込む 0010H ~0090H(E2PROM) ↓MOV 000400H ~000480H(MCU) パッチプログラム終了 JMP FF0050H コンペア許可 MOV PACSR,#02H 通常プログラム実行 PC=PADR0 NO YES INT9 FFFFFFH FFFFH 0090H E2PROM ROM FF0050H FE0000H パッチプログラム 0010H 001100H プログラムアドレス 下位:00 0003H 0002H 0001H 0000H 398 異常プログラム FF0000H プログラムアドレス 中位:00 プログラムアドレス 上位:FF パッチプログラムバイト 数:80 スタック領域 RAM領域 RAM 000480H 000400H 000100H 000000H パッチプログラム RAM/レジスタ領域 I/O 領域 第 23 章 ROM ミラー機能 選択モジュール ROM ミラー機能選択モジュールについて説明しま す。 23.1 ROM ミラー機能選択モジュールの概要 23.2 ROM ミラー機能選択レジスタ (ROMM) 399 第 23 章 ROM ミラー機能 選択モジュール 23.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールは ,ROM が配置されている FF バンクが 00 バンク でみることをレジスタの設定で選択することができます。 ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 23.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム F MC-16LX バス ROMミラー機能選択レジスタ アドレス領域 アドレス FFバンク 00バンク データ ROM 400 第 23 章 ROM ミラー機能 選択モジュール 23.2 ROM ミラー機能選択レジスタ (ROMM) ROM ミラー機能選択レジスタ (ROMM) は , アドレス 004000H ∼ 00FFFFH 番地の使 用中にアクセスしないでください。 ■ ROM ミラー機能選択レジスタ (ROMM) 図 23.2-1 ROM ミラー機能選択レジスタ (ROMM) ROMミラー機能選択レジスタ bit 15 14 13 12 11 10 9 アドレス:00006FH リード/ライト 初期値 8 MI (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) ROMM (W) (1) [bit8] MI "1" を書込み時には FF バンクの ROM のデータが 00 バンクでも読み出せるようになり ます。"0" を書込み時には 00 バンクはこの機能ははたらきません。 本ビットは , 書込みのみ可能です。 < 注意事項 > ROM ミラー機能を起動している場合 ,FF4000H ∼ FFFFFFH 番地のみ 004000H ∼ 00FFFFH 番地にミラーされます。このため ,FF0000H ∼ FF3FFFH 番地は 00 バン クにミラーされません。 401 第 23 章 ROM ミラー機能 選択モジュール 402 第 24 章 1M ビット フラッシュメモリ 1M ビットフラッシュメモリの機能と動作について 説明します。 フラッシュメモリへのデータ書込み / 消去の方法に は , 下記の 3 とおりの方法があります。 1) パラレルライタ 2) シリアル専用ライタ 3) プログラム実行による書込み / 消去 ここでは ,"3) プログラム実行による書込み / 消去 " について解説します。 24.1 1M ビットフラッシュメモリの概要 24.2 フラッシュメモリのセクタ構成 24.3 書込み / 消去モード 24.4 フラッシュメモリコントロールステータスレジスタ (FMCS) 24.5 フラッシュメモリ自動アルゴリズム起動方法 24.6 自動アルゴリズム実行状態の確認 24.7 フラッシュメモリ書込み / 消去の詳細説明 24.8 1M ビットフラッシュメモリ使用上の注意 24.9 フラッシュセキュリティの特長 24.10 1M ビットフラッシュメモリのプログラム例 403 第 24 章 1M ビット フラッシュメモリ 24.1 1M ビットフラッシュメモリの概要 1M ビットフラッシュメモリは ,CPU メモリマップ上の FE, FF バンクに配置され , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU か らのリードアクセスおよびプログラムアクセスが可能です。フラッシュメモリへの 書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令動 作で行えます。このため , 内蔵 CPU の制御による実装状態での書き換えが可能とな り , プログラムおよびデータの改善が効率よく行えます。 ■ 1M ビットフラッシュメモリの特長 • 自動プログラムアルゴリズム (Embedded Alogrithm:MBM29LV200 と同様 ) • 消去一時停止 / 消去再開機能の搭載 • データポーリング , トグルビットによる書込み / 消去完了検出 • CPU 割込みによる書込み / 消去の完了検出 • セクタごとの消去が可能 ( セクタ組み合わせ自由 ) • 書込み / 消去回数 ( 最小 ) 10, 000 回 • フラッシュ読出しサイクルタイム ( 最小 ) 2 マシンサイクル < 注意事項 > マニュファクチャコードとデバイスコードの読出し機能はありません。また , こ れらのコードはコマンドによってもアクセスできません。 ■ フラッシュメモリ書込み / 消去の方法 フラッシュメモリは書込み / 消去と読出しを同時に行うことはできません。すなわち , フラッシュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上にある プログラムを RAM に一度コピーし RAM 実行することで , フラッシュメモリからプロ グラムアクセスをせず書込み動作だけを行うことが可能となります。 ■ フラッシュメモリのレジスタ 図 24.1-1 フラッシュメモリコントロールステータスレジスタ (FMCS) フラッシュメモリコントロールステータスレジスタ(FMCS) 6 5 4 3 bit 7 アドレス:0000AEH リード/ライト 初期値 404 INTE RDYINT WE (R/W) (R/W) (R/W) (0) (0) (0) 2 1 0 RDY 予約 (R) (X) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) LPM1 予約 LPM0 FMCS 第 24 章 1M ビット フラッシュメモリ 24.2 フラッシュメモリのセクタ構成 図 24.2-1 に , フラッシュメモリのセクタ構成を示します。 ■ 1M ビットフラッシュメモリのセクタ構成 図 24.2-1 に ,1M ビットフラッシュメモリのセクタ構成を示します。図中アドレスに は , 各セクタの上位アドレスと下位アドレスを示します。 図 24.2-1 1M ビットフラッシュメモリのセクタ構成 フラッシュメモリ CPUアドレス FFFFFFH ライタアドレス* 7FFFFH SA4(16Kバイト) FFBFFFH 7BFFFH FF9FFFH 79FFFH FF7FFFH 77FFFH FEFFFFH 6FFFFH FE0000H 60000H SA3(8Kバイト) SA2(8Kバイト) SA1(32Kバイト) SA0(64Kバイト) *:ライタアドレスとは,フラッシュメモリにパラレルライタでデータ 書込みを行う際,CPUアドレスに相当するアドレスです。汎用ライタ を使用し書込み/消去を行う際は,このアドレスで書込み/消去を実 行します。 405 第 24 章 1M ビット フラッシュメモリ 24.3 書込み / 消去モード フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの 異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み / 消去が行え , その他モードでは , 内部バスを介して CPU から書込み / 消去が行えま す。モードの選択はモード外部端子で行います。 ■ フラッシュメモリモード リセット信号が発生中にモード端子を "111" にセットすると ,CPU が停止します。フ ラッシュメモリインタフェース回路は直接ポート 0, 2, 3, 4 に接続しているので , 外部端 子から直接制御することができます。このモードでは ,MCU が外部端子中の標準フラッ シュメモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去 が行えます。 フラッシュメモリモードでは,フラッシュメモリ自動アルゴリズムでサポートされるす べての動作を使用できます。 ■ その他モード フラッシュメモリは ,CPU メモリ空間の FE, 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" にセッ トしてください。 406 第 24 章 1M ビット フラッシュメモリ 表 24.3-1 フラッシュ制御信号 MB90F443G MBM29LV200 端子番号 通常機能 フラッシュメモリモード 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 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 使用不可 DQ8 ∼ DQ15 407 第 24 章 1M ビット フラッシュメモリ 24.4 フラッシュメモリコントロールステータスレジスタ (FMCS) フラッシュメモリコントロールステータスレジスタ (FMCS) は , フラッシュメモリイ ンタフェース回路にあるレジスタで , フラッシュメモリの書き込み / 消去の際に使用 します。 ■ フラッシュメモリコントロールステータスレジスタ (FMCS) 図 24.4-1 フラッシュメモリコントロールステータスレジスタ (FMCS) フラッシュメモリコントロールステータスレジスタ(FMCS) 6 5 4 3 bit 7 アドレス:0000AEH リード/ライト 初期値 INTE RDYINT WE (R/W) (R/W) (R/W) (0) (0) (0) 2 1 0 RDY 予約 (R) (X) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) LPM1 予約 LPM0 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" の書込みは無視されます。フラッシュメモリ 自動アルゴリズム(「1.5 フラッシュメモリ自動アルゴリズム起動方法」参照)終了タ イミングで ,"1" にセットされます。リードモディファイライト (RMW) 命令使用時は , 必ず "1" が読めます。 0: 書込み / 消去動作実行中 1: 書込み / 消去動作終了(割込み要求発生) 408 第 24 章 1M ビット フラッシュメモリ [bit5] WE(Write Enable) フラッシュメモリ領域へのライトイネーブルビットです。 このビットが "1" のとき ,FE, FF バンクへのコマンドシーケンス( 「1.5 フラッシュメモ リ自動アルゴリズム起動方法」参照)発行後のライトは , フラッシュメモリ領域へのラ イトになります。本ビットが "0" のとき , 書込み / 消去の信号は発生されません。この ビットはフラッシュメモリの書込み / 消去のコマンドを起動する際に使用します。 書込み / 消去を行わないときは , 誤ってフラッシュメモリにデータを書込まないよう , 常に "0" に設定することを推奨します。 0: フラッシュメモリ書込み / 消去禁止 1: フラッシュメモリ書込み / 消去許可 [bit4] RDY(ReadDY) フラッシュメモリの書込み / 消去許可ビットです。 このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。なお , こ の状態でも読出し / リセットコマンド , セクタ消去一時停止等のサスペンドコマンドは 受け付けられます。 0: 書込み / 消去動作実行中(次データ書込み / 消去不可) 1: 書込み / 消去動作終了(次データ書込み / 消去許可) [bit3] 予約 : 予約ビット 試験用予約ビットです。通常使用時は必ず "0" に設定してください。 [bit1] 予約 : 予約ビット 通常使用時は必ず "0" に設定してください。 [bit2, bit0] LPM1, LPM0(Low Power Mode) LPM1, LPM0 ビットを使用すると , フラッシュメモリ本体の消費電力を制御できます。 しかし,CPUからフラッシュメモリへのアクセスタイムが設定により大きく異なります ので ,CPU の動作周波数により設定値を選択してください。 01: 低電力消費モード(内部動作周波数 4MHz 以下で動作) 10: 低電力消費モード(内部動作周波数 8MHz 以下で動作) 11: 低電力消費モード(内部動作周波数 10MHz 以下で動作) 00: 通常消費電力モード(内部動作周波数 16MHz 以下で動作) < 注意事項 > RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで 判定するようプログラムを作成してください( 図 24.4-2 を参照) 。 図 24.4-2 RDYINT ビットと RDY ビットの変化タイミング 自動アルゴリズム 終了タイミング RDYINTビット RDYビット 1マシンサイクル 409 第 24 章 1M ビット フラッシュメモリ 24.5 フラッシュメモリ自動アルゴリズム起動方法 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と 再開の制御が可能です。 ■ コマンドシーケンス表 表 24.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま す。コマンドレジスタにライトするデータはすべてバイトですが , ワードアクセスでラ イトするようにしてください。このときの上位バイト分のデータは無視されます。 表 24.5-1 コマンドシーケンス表 バス 1stバス 2ndバス 3rdバス 4thバス 5thバス 6thバス コマンド ライトサイクル ライトサイクル ライトサイクル ライトサイクル ライトサイクル ライトサイクル シーケンス ライト アクセス アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ 読出し/ - - - - - - - - - - FxXXXX XXF0 1 リセット* 読出し/ - - RA - - RD FxAAAA XXAA Fx5554 XX55 FxAAAA XXF0 4 リセット* 書込み プログラム チップ 消去 セクタ 消去 4 FxAAAA XXAA Fx5554 XX55 FxAAAA XXA0 PA PD (even) (word) - - - - 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 FxAAAA XX10 6 FxAAAA XXAA Fx5554 XX55 FxAAAA XX80 FxAAAA XXAA Fx5554 XX55 SA (even) XX30 セクタ消去一時停止 セクタ消去再開 Address"FxXXXX"Data(xxB0H)の入力で,セクタ消去中の消去一時停止 Address"FxXXXX"Data(xx30H)の入力で,セクタ消去中の消去一時停止後,消去開始 Auto - - - - - - FxAAAA XXAA Fx5554 XX55 FxAAAA XX90 3 Select (注意事項) ・表中のアドレスFxはFFF,FE を意味します。それぞれの操作時にはアクセス対象バンクの値としてください。 ・表中のアドレスは,CPUメモリマップ上の値です。アドレスおよびデータはすべて16進数表記しています。 ただし"X"は任意の値です。 ・RA:読み出しアドレス ・PA:書込みアドレス ,偶数アドレスのみ指定可 ・SA:セクタアドレス(「24.2 フラッシュメモリのセクタ構成」)を参照願います。 ・RD:読み出しデータ ・PD:書込みデータ,ワードデータのみ指定可 *:2種類の読み出し/リセットコマンドは,どちらもフラッシュメモリを読み出しモードにリセットする ことができます。 表 24.5-2 における AutoSelect はセクタ保護の状態を知るためのコマンドです。実際に は前期コマンドとともに下記のようにアドレスを設定する必要があります。 表 24.5-2 AutoSelect 時のアドレス設定 セクタ保護 AQ13 ∼ AQ16 AQ7 AQ2 AQ1 AQ0 DQ7 ∼ DQ0 セクタアドレス L H L L CODE* *: 保護されたセクタアドレスでの出力は "01H", 保護されていないセクタアドレスでの出力は "00H" 410 第 24 章 1M ビット フラッシュメモリ 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 ハードウェアシーケンスフラグのビット割当て ビット No. 7 6 5 4 3 2 1 0 ハードウェアシーケンスフラグ DQ7 DQ6 DQ5 - DQ3 DQ2 - - 411 第 24 章 1M ビット フラッシュメモリ 自動書込み / チップ・セクタ消去が実行中であるかの判断は , ハードウェアシーケンス フラグを確認するか , フラッシュメモリコントロールレジスタ (FMCS) の RDY ビット を確認することで , 書込みが終了しているかを知ることができ , 書込み / 消去終了後は , 読出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれかのフ ラグで自動書込み / 消去終了を確認後に , データの読出し等の次処理を行ってくださ い。また ,2 回目以降のセクタ消去コードライトが有効であるかも , ハードウェアシー ケンスフラグによって確認することができます。次項に各ハードウェアシーケンスフ ラグの説明を示します。表 24.6-2 に ,ハードウェアシーケンスフラグ機能の一覧を示し ます。 表 24.6-2 ハードウェアシーケンスフラグ機能一覧 DQ7 DQ6 DQ5 DQ3 DQ2 DQ7 → DATA:7 Toggle → DATA:6 0→ DATA:3 0→ DATA:5 1→ DATA:2 チップセレクタ消去動作→消去 完了 0→1 Toggle → Stop 1 0→1 Toggle → Stop セクタ消去ウェイト→消去開始 0 Toggle 0→1 0 Toggle 消去動作→セクタ消去一時停止 (消去中のセクタ) 0→1 Toggle → 1 1→0 0 Toggle セクタ消去一時停止→消去再開 (消去中のセクタ) 1→0 1→ Toggle 0→1 0 Toggle DATA:7 DATA:6 DATA:3 DATA:5 DATA:2 DQ7 Toggle 0 1 1 0 Toggle 1 1 * 状態 書込み動作→書込み完了 (書込みアドレス指定時) 正常動作時の 状態変化 セクタ消去一時停止中 (消去中でないセクタ) 書込み動作 異常動作 チップセクタ消去動作 *:DQ5 が "1" のとき(タイミングリミット超過), 書込み / 消去中セクタへの連続的な読出しに対しては ,DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。 412 第 24 章 1M ビット フラッシュメモリ 24.6.1 データポーリングフラグ (DQ7) データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状 態であることをデータポーリング機能によって知らせるためのフラグです。 ■ データポーリングフラグ (DQ7) 表 24.6-3 と表 24.6-4 に , データポーリングフラグの状態遷移を示します。 表 24.6-3 データポーリングフラグの状態遷移(正常動作時の状態変化) 動作状態 DQ7 書込み動作 →完了 チップセク タ消去→ 完了 セクタ消去 ウェイト→ 開始 セクタ消去 →消去一時 停止消去中 のセクタ セクタ消去 一時停止→ 再開消去中 のセクタ セクタ消去 一時停止中 消去中でな いセクタ DQ7 → DATA:7 0→1 0 0→1 1→0 DATA:7 表 24.6-4 データポーリングフラグの状態遷移(異常動作時の状態変化) 動作状態 書込み動作 DQ7 DQ7 チップセクタ 消去動作 0 ● 書込み動作時 自動書込みアルゴリズム実行中にリードアクセスすると,フラッシュメモリはアドレス の指し示す番地によらず , 最後に書き込まれたデータの bit7 の反転データを出力しま す。自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはアド レスの指し示す番地の読み出し値の bit7 を出力します。 ● チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク タから , チップ消去時はアドレスの指し示す番地に関係なく , リードアクセスするとフ ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると,フラッシュメモリはアドレスの指し示 す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレスの 指し示す番地の読み出し値の bit7(DATA:7) を出力します。トグルビットフラグ (DQ6) とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であ るかの判定が可能です。 < 注意事項 > 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。 データの読み出しは , データポーリングフラグ (DQ7) の終了を受けてほかのビット の出力が可能となります。このため自動アルゴリズム終了後のデータの読み出しは , データポーリング終了を確認したリードアクセスの次に行うようにしてください。 413 第 24 章 1M ビット フラッシュメモリ 24.6.2 トグルビットフラグ (DQ6) トグルビットフラグ (DQ6) はデータポーリングフラグ (DQ7) と同様に , 主に自動ア ルゴリズム実行が進行中 , もしくは終了状態であることをトグルビット機能によって 知らせるためのフラグです。 ■ トグルビットフラグ (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) を出力します。 < 参考 > 414 書込みの際 , 書き込もうとしているセクタが書き換え保護されているセクタの場合 は , 約 2ms のトグル動作をした後 , データを書き換えることなくトグル動作を終わ ります。 消去の際 , 選択されたすべてのセクタが書き換え保護されている場合トグルビット は約 100ms のトグル動作をし , その後データを書き換えないで読み出し / リセット 状態に戻ります。 第 24 章 1M ビット フラッシュメモリ 24.6.3 タイミングリミット超過フラグ (DQ5) タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ モリ内部に規定された時間(内部パルス回数)を超えてしまったことを知らせるフ ラグです。 ■ タイミングリミット超過フラグ (DQ5) 表 24.6-7 と表 24.6-8 に , タイミングリミット超過フラグの状態遷移を示します。 表 24.6-7 タイミングリミット超過フラグの状態遷移(正常動作時の状態変化) 動作状態 書込み動作 →完了 チップセク タ消去→ 完了 セクタ消去 ウェイト→ 開始 セクタ消去 →消去一時 停止消去中 のセクタ セクタ消去 一時停止→ 再開消去中 のセクタ セクタ消去 一時停止中 消去中でな いセクタ DQ5 0 → DATA:5 0→1 0 0 0 DATA:5 表 24.6-8 タイミングリミット超過フラグの状態遷移(異常動作時の状態変化) 動作状態 書込み動作 チップセクタ 消去動作 DQ5 1 1 ● 書込み / チップセクタ消去時 書込み , またはチップセクタ消去自動アルゴリズム起動後にリードアクセスすると , 規 定時間(書込み / 消去に要する時間)内であれば "0" を , 規定時間を超えてしまってい る場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるか無 関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , こ のフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能によ り自動アルゴリズムがまだ実行中であれば,書込みが失敗していると判断することがで きます。 例えば ,"0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする とフェイルが発生します。この場合フラッシュメモリはロックされ , 自動アルゴリズム は終了しません。したがって , データポーリングフラグ (DQ7) から有効なデータが出 力されません。またトグルビットフラグ (DQ6) はトグル動作を止めず , タイムリミッ トを超え , タイミングリミット超過フラグ (DQ5) は "1" を出力します。この状態はフ ラッシュメモリが不良ではなく , 正しく使用されなかったということを表しています。 この状態が発生したときは , リセットコマンドを実行してください。 415 第 24 章 1M ビット フラッシュメモリ 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) を出力します。 416 第 24 章 1M ビット フラッシュメモリ 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) を出力します。 ● セクタ消去一時停止時 セクタ消去一時停止中に連続したリードアクセスを行うと,フラッシュメモリはアドレ スの指し示す番地が , 消去中のセクタに属するならば "1" と "0" を交互に出力するトグ ル状態を出力します。消去中のセクタに属さないのであれば , アドレスの指し示す番地 の読み出し値の bit2(DATA:2) を出力します。 また , セクタ消去一時停止書込み時 , 消去一時停止していないセクタから連続したリー ドアクセスを行うと ,"1" を出力します。 DQ2 は DQ6 とともに使用し , 消去一時停止中であるかを検出するのに使用します。 (DQ2 はトグル動作するが ,DQ6 はトグル動作しない。 ) 417 第 24 章 1M ビット フラッシュメモリ さらに ,DQ2 は消去しているセクタの検出にも使用します。消去動作時には ,DQ2 は消 去しているセクタからのリードアクセスならばトグル動作をします。 < 参考 > 418 消去の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビット 2 は約 100µs のトグル動作をし , その後データを書き換えないで読出し / リセット 状態に戻ります。 第 24 章 1M ビット フラッシュメモリ 24.7 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ ぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細説明 フラッシュメモリは読み出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消 去一時停止 , 消去再開の動作がコマンドシーケンス( 「24.5 フラッシュメモリ自動ア ルゴリズム起動方法」の 表 24.5-1 を参照)のバスへのライトサイクルを行うことで自 動アルゴリズムを実行することが可能です。それぞれのバスへのライトサイクルは必 ず続けて行う必要があります。また , 自動アルゴリズムはデータ・ポーリング機能等で 終了時を知ることができます。正常終了後は読出し / リセット状態に戻ります。 各動作について , 次項より下記の順に示します。 • 読出し / リセット状態にする • データを書き込む • 全データを消去する(チップ全消去) • 任意のデータを消去する(セクタ消去) • セクタ消去を一時停止する • セクタ消去を再開する 419 第 24 章 1M ビット フラッシュメモリ 24.7.1 フラッシュメモリの読出し / リセット状態 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリの読出し / リセット状態 フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表( 「24.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 24.5-1 を参照)の読出し / リセッ トコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読み出しでのデータ読出し にこのコマンドは必要ありません,何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。 420 第 24 章 1M ビット フラッシュメモリ 24.7.2 フラッシュメモリへのデータ書込み 書込みコマンドを発行し , フラッシュメモリへデータを書き込む手順について説明し ます。 ■ フラッシュメモリへのデータを書込み フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表( 「24.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 24.5-1 を参照)の 書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能で す。4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動アルゴリ ズムが起動され自動書込みが開始します。 ● アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。すなわち , 偶数アド レスへのワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが ,1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。 ● データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ "1" を書き込むと , データポーリングアルゴリズム (DQ7) または , トグル動作 (DQ6) が終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミン グリミット超過フラグ (DQ5) がエラーと判定するか , あるいは見かけ上データ "1" が書 き込まれたように見えるかのどちらかとなります。しかし , 読出し / リセット状態で データを読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にする ことができます。 自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると,書き込んでいるアドレスのデータは保証されませんので注意が 必要です。 ■ フラッシュメモリ書込み手順 図 24.7-1 に , フラッシュメモリ書込みの手順の例を示します。ハードウェア・シーケ ンス・フラグ( 「24.6 自動アルゴリズム実行状態の確認」参照)を用いることでフラッ シュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了の確 認にデータポーリングフラグ (DQ7) を用いています。 フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読込 みとなります。 データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変 わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ ングフラグビット (DQ7) は再チェックする必要があります。 421 第 24 章 1M ビット フラッシュメモリ トグルビットフラグ (DQ6) でも同様にタイミングリミット超過フラグビット (DQ5) が "1"に変わるのと同時にトグル動作を止めるので,トグルビットフラグ(DQ6)を再チェッ クする必要があります。 図 24.7-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS:WE(ビット5) フラッシュメモリ書込み許可 書込みコマンドシーケンス ①FxAAAA←XXAA ②Fx5554←XX55 ③FxAAAA←XXA0 ④書込みアドレス←書込みデータ 次アドレス 内部アドレスリード DATA データポーリングフラグ (DQ7) DATA タイミングリミット(DQ5) 1 内部アドレスリード DATA データポーリングフラグ (DQ7) DATA 書込みエラー 最終アドレス NO YES FMCS:WE(ビット5) フラッシュメモリ書込み禁止 書込み完了 422 :ハードウェアシーケンスフラグ による確認 第 24 章 1M ビット フラッシュメモリ 24.7.3 フラッシュメモリの全データの消去 ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順について 説明します。 ■ フラッシュメモリの全データの消去 ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表(「24.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 24.5-1 を参照)のチップ消去コマ ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます ,6 サイクル目のライトが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。 423 第 24 章 1M ビット フラッシュメモリ 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) と 同時に変わるので , データポーリングフラグを再チェックする必要があります。 424 第 24 章 1M ビット フラッシュメモリ 図 24.7-2 フラッシュメモリのセクタ消去手順の例 消去開始 FMCS:WE(ビット5) フラッシュメモリ消去許可 消去コマンドシーケンス ①FxAAAA←XXAA ②Fx5554←XX55 ③FxAAAA←XX80 ④Fx5554←XX55 ⑤セクタアドレス←消去コード(30H) ⑥セクタアドレス←消去コード(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(ビット5) フラッシュメモリ消去禁止 消去完了 :ハードウェアシーケンスフラグ による確認 425 第 24 章 1M ビット フラッシュメモリ 24.7.5 フラッシュメモリのセクタ消去の一時停止 セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を行 う手順について説明します。消去中でないセクタから , データを読みだすことが可能 です。 ■ フラッシュメモリのセクタ消去の一時停止 フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表( 「24.5 フラッシュメモリ自動アルゴリズム起動方法」の 表 24.5-1 を参照)のセクタ消去一時 停止コマンドを , フラッシュメモリ内に送ることで実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク タからのデータ読み出しを可能にするものです。この状態では読み出しのみが可能で 書込みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効 で , チップ消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) のライトを行うことで実施されますが , このときアドレスは フラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の 消去一時停止コマンドは無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去 ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると,最大20µs 後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セクタ消去コマン ドあるいはセクタ消去再開コマンド発行後 ,20µs 以上後に行ってください。 426 第 24 章 1M ビット フラッシュメモリ 24.7.6 フラッシュメモリのセクタ消去の再開 セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再開 する手順について説明します。 ■ フラッシュメモリのセクタ消去の再開 一時停止したセクタ消去を再開させるには , コマンドシーケンス表(「24.5 フラッシュ メモリ自動アルゴリズム起動方法」の 表 24.5-1 を参照)のセクタ消去再開コマンド を , フラッシュメモリ内に送ることで実行可能です。 セクタ消去再開コマンドは,セクタ消去一時停止コマンドによるセクタ消去一時停止状 態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード (30H) のライトを行うことで実施されますが , このときのアドレスはフラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 427 第 24 章 1M ビット フラッシュメモリ 24.8 1M ビットフラッシュメモリ使用上の注意 1M ビットフラッシュメモリに関する注意を以下に示します。 ■ フラッシュメモリ使用上の注意 ● ハードウェアリセット (RST) の入力 読出し中で自動アルゴリズムが起動していないときに,ハードウェアリセットを入力す るには ,L レベル幅として最低 500ns をとる必要があります。この場合 , ハードウェア リセット起動後フラッシュメモリからデータを読み出すまでに , 最低 500ns が必要とな ります。 同様に , 書込み / 消去中で自動アルゴリズムが起動しているときに , ハードウェアリ セットを入力するには ,L レベル幅として最低 50ns をとる必要があります。この場合 , フラッシュメモリを初期化するために実行中の動作を停止した後データを読み出すま でに ,20µs が必要となります。 書込み中にハードウェアリセットすると , 書き込まれているデータは不定となります。 消去中にハードウェアリセットすると,消去されているセクタは使用不可となる可能性 があります。 ● ソフトウェアリセット , ウォッチドッグタイマリセット , ハードウェアスタンバイの取消し CPU アクセスでフラッシュメモリ書込み / 消去中に , 自動アルゴリズムがアクティブ状 態でリセット条件が発生した場合 ,CPU が暴走する可能性があります。それは , これら のリセット条件により,フラッシュメモリユニットが初期化されずに自動アルゴリズム が続行し,リセット離脱後にCPUがシーケンスを開始したときフラッシュメモリユニッ トが読出し状態になることが妨げられる可能性があるためです。これらのリセット条 件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。 ● フラッシュメモリへのプログラムアクセス 自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。 CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム 領域を RAM などの別の領域に切り換え後 , 書込み / 消去を開始する必要があります。 この場合 , 割込みベクタを含むセクタ (SA4) が消去されると , 書込み / 消去割込み処理 を実行できません。 ● ホールド機能 CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求 の受付けが許可(ECSR の HDE ビットが "1" をセット)されたとき , コントロールス テータスレジスタ (FMCS) の WE ビットが必ず "0" になっているようにしてください。 ● 拡張インテリジェント I/O サービス (EI2OS) フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは , EI2OS には受付け不可能であり , 使用できません。 428 第 24 章 1M ビット フラッシュメモリ ● VID の適用 セクタプロテクト動作に必要な VID の印加は , 電減がオンのとき常に開始し , 終了する 必要があります。 429 第 24 章 1M ビット フラッシュメモリ 24.9 フラッシュセキュリティの特長 フラッシュセキュリティコントローラ機能により , フラッシュメモリの内容を外部端 子から読出されることを防止できます。 ■ フラッシュセキュリティの特長 事前定義されたフラッシュメモリのアドレスが,フラッシュセキュリティコントローラ (FE0001) に割り当てられます。このアドレスに保護コード "01H" が書き込まれると , フ ラッシュメモリへのアクセスが制限されます。フラッシュメモリが一度保護されると , チップ消去を行うまで , 機能のロックを解除することはできません。ロックを解除しな い限り , いずれの外部端子からもフラッシュメモリへの読出し / 書込みはできません。 この機能は,フラッシュメモリに格納される自己完結型プログラムやデータのセキュリ ティを必要とするアプリケーションに適しています。マイクロコントローラの外部に 位置するプログラム部分を対象アプリケーションが必要とする場合には,フラッシュセ キュリティコントローラは , 目的の機能を提供することができません。このため , 保護 コードを設定した場合は , 外部ベクタフェッチモードは使用しません。 標準パラレルプログラマによるフラッシュマイクロコントローラのプログラミングに は , 独特のセットアップが必要になることがあります。たとえば , 横河ディジタルコン ピュータ株式会社製のプログラマでは , デバイスチェックを切断する必要があります。 保護コードは,フラッシュプログラミングの終わりにコーディングすることを推奨され ます。これは , プログラミング中の不要な保護を回避するためです。 一度保護されたフラッシュメモリを再度プログラムするには,チップ消去操作を行う必 要があります。 詳細については , 弊社担当者にお問い合わせください。 430 第 24 章 1M ビット フラッシュメモリ 24.10 1M ビットフラッシュメモリのプログラム例 ここでは ,1M ビットフラッシュメモリのプログラム例を掲載します。 ■ 1M ビットフラッシュメモリのプログラム例 NAME FLASHWE TITLE FLASHWE ;-----------------------------------------------------------------; 1Mbit-FLASH サンプルプログラム ; ; 1:FLASH にあるプログラム(アドレス FFC000H セクタ SA4)を RAM(アドレス 000700H); に転送する。 ; 2:RAM 上でプログラムを実行する。 ; 3:PDR1 の値を FLASH(アドレス FE0000H セクタ SA0)に書き込む。 ; 4: 書込んだ値(アドレス FE0000H セクタ SA0)を読出し PDR2 に出力する。 ; 5: 書込んだセクタ(SA0)を消去する。 ; 6: 消去データ確認の出力 ; 条件 ; ・RAM 転送バイト数 : 100H(256 バイト) ; ・書込み , 消去の終了判定 ; DQ5(タイミングリミット超過フラグ)での判定 ; DQ6(トグルビットフラグ)での判定 ; RDY(FMCS)での判定 ; ・エラー時の処理 ; P00 ∼ P07 に "Hi" を出力する ; リセットコマンド発行 ;-----------------------------------------------------------------; RESOUS IOSEG ABS=00 ;"RESOUS"I/O セグメントの定義 ORG 0000H PDR0 RB 1 PDR1 RB 1 PDR2 RB 1 PDR3 RB 1 ORG 0010H DDR0 RB 1 DDR1 RB 1 DDR2 RB 1 DDR3 RB 1 ORG 00A1H CKSCR RB 1 ORG 00AEH FMCS RB 1 ORG 006FH ROMM RB 1 RESOUS ENDS ; SSTA SSEG RW 0127H STA_T RW 1 SSTA ENDS ; 431 第 24 章 1M ビット フラッシュメモリ DSEG ABS=0FFH ;FLASH コマンドアドレス ORG 5554H COMADR2 RW 1 ORG 0AAAAH COMADR1 RW 1 DATA ENDS ;-----------------------------------------------------------------; メインプログラム(SA1) ;-----------------------------------------------------------------CODE CSEG START: ;---------------------------------------------------------; 初期化 ;---------------------------------------------------------MOV CKSCR,#0BAH ;3 逓倍に設定 MOV RP,#0 MOV A,#!STA_T MOV SSB,A MOVW A,#STA_T MOVW SP,A MOV ROMM,#00H ; ミラー OFF MOV PDR0,#00H ; エラー確認用 MOV DDR0,#0FFH MOV PDR1,#00H ; データ入力用ポート MOV DDR1,#00H MOV PDR2,#00H ; データ出力用ポート MOV DDR2,#0FFH ;---------------------------------------------------------;RAM(700H 番地)に "FLASH 書込み消去プログラム(FFC000H)" を転送する DATA ;---------------------------------------------------------MOVW A,#0700H ; 転送先 RAM 領域 MOVW A,#0C000H ; 転送元アドレス (プログラムのある位置) MOVW RW0,#100H ; 転送するバイト数 MOVS ADB,PCB ;FFBC00H から 000700H へ 100H 転送 CALLP 000700H ; 転送したプログラムのあるアドレスへジャンプ ;---------------------------------------------------; データ出力 ;---------------------------------------------------OUT MOV A,#0FEH MOV ADB,A MOVW RW2,#0000H MOVW A,@RW2+00 MOV PDR2,A END JMP * CODE ENDS ;-----------------------------------------------------------------;FLASH 書込み消去プログラム(SA4) ;-----------------------------------------------------------------RAMPRG CSEG ABS=0FFH ORG 0C000H ;---------------------------------------------------------; 初期化 ;---------------------------------------------------------MOVW RW0,#0500H ;RW0: 入力データ確保用 RAM 空間 00:0500 ∼ MOVW RW2,#0000H ;RW2: フラッシュメモリ書込アドレス FD:0000 ∼ 432 第 24 章 1M ビット フラッシュメモリ MOV MOV MOV MOV MOV MOV A,#00H DTB,A A,#0FEH ADB,A PDR3,#00H DDR3,#00H ;DTB 変更 ;@RW0 用バンク指定 ;ADB 変更 1 ; 書込みモード指定アドレス用バンク指定 ; スイッチ初期化 ; WAIT1 BBC PDR3:0,WAIT1 ;PDR3:0 "Hi" で書込みスタート ; ;-----------------------------------------------------------------; 書込み(SA0) ;-----------------------------------------------------------------MOV A,PDR1 MOVW @RW0+00,A ;RAM に PDR1 データを確保 MOV FMCS,#20H ; 書込みモード設定 MOVW ADB:COMADR1,#00AAH ; フラッシュ書込みコマンド 1 MOVW MOVW ADB:COMADR2,#0055H ; フラッシュ書込みコマンド 2 ADB:COMADR1,#00A0H ; フラッシュ書込みコマンド 3 MOVW A,@RW0+00 ; ; 入力データ(RW0)をフラッシュメモリ(RW2)に ; 書込む ; WRITE NTOW MOVW @RW2+00,A ; 待ち時間チェック ;---------------------------------------------------------; タイムリミット超過チェック - フラグが立ちトグル動作中である場合 ERROR ;---------------------------------------------------------MOVW A,@RW2+00 AND A,#20H ;DQ5 タイムリミットチェック BZ NTOW ; タイムリミットオーバ MOVW A,@RW2+00 ;AH MOVW A,@RW2+00 ;AL XORW A ;AH AL の XOR(値が違えば "1") AND A,#40H ;DQ6 トグルビットは違っているか BNZ ERROR ; 違えば ERROR へ ;---------------------------------------------------------; 書込み終了チェック(FMCS-RDY) ;---------------------------------------------------------MOVW A,FMCS AND A,#10H ;FMCS RDY ビット(4bit)抽出 BZ WRITE ; 書込み終了か? MOV FMCS,#00H ; 書込みモード解除 ;---------------------------------------------------------; 書込みデータ出力 ;---------------------------------------------------------MOVW RW2,#0000H ; 書込みデータ出力 MOVW A,@RW2+00 MOV PDR2,A ; WAIT2 BBC PDR3:1,WAIT2 ;PDR3:1"Hi" でセクタ消去スタート ; ;-----------------------------------------------------------------; セクタ消去(SA0/SA2) ;-----------------------------------------------------------------MOV @RW2+00,#0000H; アドレス初期化 433 第 24 章 1M ビット フラッシュメモリ ELS MOV FMCS,#20H ; 消去モード設定 MOVW ADB:COMADR1,#00AAH ; フラッシュ消去コマンド 1 MOVW ADB:COMADR2,#0055H ; フラッシュ消去コマンド 2 MOVW ADB:COMADR1,#0080H ; フラッシュ消去コマンド 3 MOVW ADB:COMADR1,#00AAH ; フラッシュ消去コマンド 4 MOVW ADB:COMADR2,#0055H ; フラッシュ消去コマンド 5 MOV @RW2+00,#0030H ; 消すセクタに消去コマンド発行 6 ; 待ち時間チェック ;---------------------------------------------------------; タイムリミット超過チェック - フラグが立ちトグル動作中である場合 ERROR ;---------------------------------------------------------MOVW A,@RW2+00 AND A,#20H ;DQ5 タイムリミットチェック BZ NTOE ; タイムリミットオーバ MOVW A,@RW2+00 ;AH 書込み動作中は ,DQ6 から MOVW A,@RW2+00 ;AL リード毎 "Hi/Low" が交互出力される XORW A ;AH と AL の XOR(DQ6 の値が違えば ;"1" 書込み動作中である) AND A,#40H ;DQ6 トグルビットは "Hi" か BNZ ERROR ;"Hi" なら ERROR へ ;---------------------------------------------------------; 消去終了チェック(FMCS-RDY) ;---------------------------------------------------------NTOE MOVW A,FMCS ; AND A,#10H ;FMCS RDY ビット(4bit)抽出 BZ ELS ; セクタ消去終了か? MOV FMCS,#00H ;FLASH 消去モード解除 RETP ; メインプログラムに戻る ;-----------------------------------------------------------------; エラー ;-----------------------------------------------------------------ERROR MOV ADB:COMADR1,#0F0H ; リセットコマンド(読出しが可能になる) MOV FMCS,#00H ;FLASH モード解除 MOV PDR0,#0FFH ; エラー処理の確認 RETP ; メインプログラムに戻る RAMPRG ENDS ;-----------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFDCH DSL START DB 00H VECT ENDS ; END START 434 第 25 章 MB90F443G シリアル書込み接続例 横河ディジタルコンピュータ株式会社製 AF220/ AF210/AF120/AF110 フラッシュマイコンプログラ マを用いた場合の , シリアル書込みの接続例につい て説明します。 25.1 MB90F443G シリアル書込み接続の基本構成 25.2 シリアル書込み接続例 ( ユーザ電源使用時 ) 25.3 シリアル書込み接続例 ( ライタから電源供給時 ) 25.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 25.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 435 第 25 章 MB90F443G シリアル書込み接続例 25.1 MB90F443G シリアル書込み接続の基本構成 MB90F443G では , フラッシュ ROM のシリアルオンボード書込み(富士通標準)を サポートしています。その仕様について以下に解説します。 ■ MB90F443G シリアル書込み接続の基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。シングル チップモードで動作するプログラムあるいは内 ROM 外バスモードで動作するプログ ラムのどちらかを選択して書込むことができます。図 25.1-1 に ,MB90F443G シリアル 書込み接続の基本構成を示します。 図 25.1-1 MB90443G シリアル書込み接続の基本構成 ホストインタフェースケーブル 汎用共通ケーブル(AZ210) RS232C AF220/AF210/ AF120/AF110 フラッシュマイ コンプログラマ + メモリカード CLK 同期シリアル MB90F443G ユーザシステム スタンドアロンで動作可能 < 注意事項 > 436 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能 , 操作方法 , 接 続用汎用共通ケーブル (AZ210), およびコネクタについては , 横河ディジタルコン ピュータ株式会社殿にお問い合わせください。 第 25 章 MB90F443G シリアル書込み接続例 表 25.1-1 富士通標準シリアルオンボード書込みに使用する端子 端 子 MD2, MD1, MD0 機 能 補足説明 モード端子 フラッシュマイコンプログラマから , 書込みモードに制御します。 X0, X1 発振子用端子 書込みモード時に ,CPU 内部動作クロックは PLL クロック 1 逓倍 となっております。従いまして , 発振クロック周波数が , 内部動作 クロックとなりますので,シリアル書き換え時に使用する発振子は 3MHz ∼ 16MHz となります。 P00, P01 書込みプログラム起動端子 RST リセット端子 SIN1 シリアルデータ入力端子 SOT1 シリアルデータ出力端子 SCK1 シリアルクロック入力端子 C C 端子 電源安定化の容量端子です。外部に 0.1µF 程度のセラミックコン デンサを接続してください。 VCC 電源電圧供給端子 書込み電圧 (5V ± 10%) VSS GND 端子 フラッシュマイコンプログラマの GND と共通にします。 P00 に "L" レベル ,P01 に "H" レベルを入力してください。 - UART1 を CLK 同期モードとして使用します。 なお ,P00, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 25.1-2 に示す制御回路が必要となります。(フラッシュマイコンプログラマの /TICS 信号に より , シリアル書込み中はユーザ回路を切り離すことができます)。 図 25.1-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F443G 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ 次節以降に, 次の4つのシリアル書込み接続例を示していますので,参照してください。 • MB90F443G 内部ベクタモード時のシリアル書込み接続例(ユーザ電源使用時) • MB90F443G 内部ベクタモード時のシリアル書込み接続例(ライタから電源供給時) • フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源使用時) • フラッシュマイコンプログラマとの最小限の接続例(ライタから電源供給時) 437 第 25 章 MB90F443G シリアル書込み接続例 表 25.1-2 フラッシュマイコンプログラマシステム構成 (横河ディジタルコンピュータ株式会社製) 型 格 機 能 AF220/AC4P イーサネットインタフェース内蔵モデル /100V ∼ 220V 電源アダプタ AF210/AC4P スタンダードモデル /100V ∼ 220V 電源アダプタ AF120/AC4P 単キーイーサネットインタフェースモデル /100V ∼ 220V 電源アダプタ AF110/AC4P 単キーモデル /100V ∼ 220V 電源アダプタ 本体 AZ221 ライタ専用 PC/AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ :1m FF201 富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P2 2MB PC Card(Option) FLASH メモリ容量∼ 128KB 対応 /P4 4MB PC Card(Option) FLASH メモリ容量∼ 512KB 対応 問合せ先 : 横河ディジタルコンピュータ株式会社 電話 : 042-333-6224 < 注意事項 > AF200 フラッシュマイコンプログラマについては , 終息製品ですが , コントロール モジュール FF201 を用いることで対応可能です。シリアル書込み接続例に関して は ,「■ 発振クロック周波数とシリアルクロック入力周波数」に示した接続例に て対応可能です。 ■ 発振クロック周波数とシリアルクロック入力周波数 MB90F443G の入力可能なシリアルクロック周波数は以下の計算式より求まります。 入力可能なシリアルクロック周波数 =0.125 ×発振クロック周波数例 したがって , ご使用の発振クロック周波数によって , シリアルクロック入力周波数をフ ラッシュマイコンプログラマの設定にて変更してください。 表 25.1-3 入力可能なシリアルクロック周波数の例 発振クロック周波 数 マイコンの入力可能な 最大シリアルクロック 周波数 AF220/AF210/AF120/ AF110 の設定可能な最 大シリアルクロック周 波数 AF200 の設定可能な最 大シリアルクロック周 波数 4MHz 時 500kHz 500kHz 500kHz 8MHz 時 1MHz 850kHz 500kHz 16MHz 時 2MHz 1.25MHz 500kHz 438 第 25 章 MB90F443G シリアル書込み接続例 25.2 シリアル書込み接続例 ( ユーザ電源使用時 ) 図 25.2-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , シリアル書込 み接続例を示します。なお , モード端子 MD2, MD0 には ,AF220/AF210/AF120/ AF110 の TAUX3, TMODE より ,MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110B ■ シリアル書込み接続例 ( ユーザ電源使用時 ) 図 25.2-1 MB90F443G シングルチップモード時のシリアル書込み接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S MB90F443G (19) MD2 10kΩ 10kΩ MD1 10kΩ TMODE (12) MD0 X0 3MHz~16MHz X1 TAUX (23) P00 10kΩ /TICS (10) ユーザ 10kΩ 10kΩ /TRES (5) RST 10kΩ P01 ユーザ 0.1µF TTXD TRXD TCK (13) (27) (6) TVcc (2) GND (7,8, 14,15, 21,22, 1,28) C SIN1 SOT1 SCK1 Vcc ユーザ電源 Vss ・3,4,9,11,16,17,18,20,24,25,26ピンはOPEN ・DX10-28S:ライトアングルタイプ 14ピン 1ピン 28ピン 15ピン DX10-28S コネクタ(ヒロセ電機製)のピン配列 439 第 25 章 MB90F443G シリアル書込み接続例 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には ,P00 と同様に , 下図 に示す制御回路が必要となります(フラッシュマイコンプログラマの /TICS 信号に より , シリアル書込み中はユーザ回路を切り離すことができます)。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F443G 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 440 第 25 章 MB90F443G シリアル書込み接続例 25.3 シリアル書込み接続例 ( ライタから電源供給時 ) 図 25.3-1 に , マイコンの電源電圧をライタ電源より供給する場合の , シリアル書込 み接続例を示します。なお , モード端子 MD2, MD0 には ,AF220/AF210/AF120/ AF110 の TAUX3, TMODE より ,MD2=1, MD0=0 が入力されます。 シリアル書換えモード :MD2, MD1, MD0=110B ■ シリアル書込み接続例 ( ライタから電源供給時 ) 図 25.3-1 MB90F443G シングルチップモード時のシリアル書込み接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S MB90F443G (19) MD2 10kΩ 10kΩ MD1 10kΩ TMODE (12) MD0 X0 3MHz~16MHz X1 TAUX (23) P00 10kΩ TICS (10) ユーザ 10kΩ 10kΩ TRES (5) RST 10kΩ P01 ユーザ 0.1µF TTXD TRXD TCK TVcc Vcc TVPP1 (13) (27) (6) (2) (3) (16) GND (7,8, 14,15, 21,22, 1,28) C SIN1 SOT1 SCK1 Vcc Vss ・4,9,11,17,18,20,24,25,26ピンはOPEN ・DX10-28S:ライトアングルタイプ 14ピン 1ピン 28ピン 15ピン DX10-28S コネクタ(ヒロセ電機製)のピン配列 441 第 25 章 MB90F443G シリアル書込み接続例 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には ,P00 と同様に , 下図 に示す制御回路が必要となります(フラッシュマイコンプログラマの /TICS 信号に より , シリアル書込み中はユーザ回路を切り離すことができます)。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F443G 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源をAF220/AF210/AF120/AF110から供給するときはユーザ電源と短絡しな いでください。 442 第 25 章 MB90F443G シリアル書込み接続例 25.4 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) 図 25.4-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書換えモード :MD2, MD1, MD0=110B ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) フラッシュメモリ書込み時に , 各端子を 図 25.4-1 に示すように設定して頂ければ , MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 25.4-1 MB90F443G フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ ユーザシステム MB90F443G シリアル書換え時1 10kΩ MD2 10kΩ 10kΩ 10kΩ 10kΩ シリアル書換え時0 10kΩ シリアル書換え時1 MD1 MD0 X0 3MHz~16MHz X1 10kΩ P00 10kΩ シリアル書換え時0 ユーザ回路 P01 シリアル書換え時1 ユーザ回路 C 0.1µF コネクタ DX10-28S TRES TTXD TRXD TCK TVcc GND 10kΩ (5) (13) SIN1 SOT1 SCK1 Vcc (27) (6) (2) (7,8, 14,15, 21,22, 1,28) RST ユーザ電源 ・3,4,9,10,11,12,16,17,18,19,20,23,24,25,26 ピンはOPEN ・DX10-28S:ライトアングルタイプ Vss 14ピン 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 443 第 25 章 MB90F443G シリアル書込み接続例 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 下図に示す制御回 路が必要となります(フラッシュマイコンプログラマの /TICS 信号により , シリア ル書込み中はユーザ回路を切り離すことができます) 。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F443G 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 444 第 25 章 MB90F443G シリアル書込み接続例 25.5 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) 図 25.5-1 に , マイコンの電源電圧をライタ電源より供給する場合の , フラッシュマ イコンプログラマとの最小限の接続例を示します。 シリアル書換えモード : MD2, MD1, MD0=110B ■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) フラッシュメモリ書込み時に各端子を 図 25.5-1 に示すように設定して頂ければ ,MD2, MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。 図 25.5-1 MB90F443G フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ ユーザシステム MB90F443G シリアル書換え時1 10kΩ MD2 10kΩ 10kΩ 10kΩ 10kΩ シリアル書換え時0 10kΩ シリアル書換え時1 MD1 MD0 X0 3MHz~16MHz X1 10kΩ P00 10kΩ シリアル書換え時1 ユーザ回路 P01 シリアル書換え時1 ユーザ回路 C コネクタ DX10-28S TRES TTXD TRXD TCK TVcc Vcc TVPP1 GND (5) (13) (27) (6) 0.1µF 10kΩ RST SIN1 SOT1 SCK1 (2) (3) (16) Vcc (7,8, 14,15, 21,22, 1,28) Vss ・4,9,10,11,12,17,18,19,20,23,24,25,26 ピンはOPEN ・DX10-28S:ライトアングルタイプ 14ピン 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 445 第 25 章 MB90F443G シリアル書込み接続例 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 下図に示す制御回 路が必要となります(フラッシュマイコンプログラマの /TICS 信号により , シリア ル書込み中はユーザ回路を切り離すことができます) 。 AF220/AF210/AF120/AF110 書込み制御端子 MB90F443G 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ • AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源をAF220/AF210/AF120/AF110から供給するときはユーザ電源と短絡しな いでください。 446 付録 ここでは ,I/O マップ , 命令一覧表などを掲載しま す。 付録 A I/O マップ 付録 B 命令 447 付録 付録 A I/O マップ 本マイクロコントローラの各リソースのレジスタは , 以下のようなアドレスが割当て られています。 ■ I/O マップ 表 A-1 I/O マップ (1 / 8) アドレス レジスタ 略称 アクセス リソース 初期値 000000H ポート 0 データレジスタ PDR0 R/W ポート 0 XXXXXXXXB 000001H ポート 1 データレジスタ PDR1 R/W ポート 1 XXXXXXXXB 000002H ポート 2 データレジスタ PDR2 R/W ポート 2 XXXXXXXXB 000003H ポート 3 データレジスタ PDR3 R/W ポート 3 XXXXXXXXB 000004H ポート 4 データレジスタ PDR4 R/W ポート 4 XXXXXXXXB 000005H ポート 5 データレジスタ PDR5 R/W ポート 5 XXXXXXXXB 000006H ポート 6 データレジスタ PDR6 R/W ポート 6 XXXXXXXXB 000007H ポート 7 データレジスタ PDR7 R/W ポート 7 XXXXXXXXB 000008H ポート 8 データレジスタ PDR8 R/W ポート 8 XXXXXXXXB 000009H ポート 9 データレジスタ PDR9 R/W ポート 9 XXXXXXXXB 00000AH ポート A データレジスタ PDRA R/W ポート A -------XB 00000BH ポート入力レベル選択レジスタ PILR R/W ポート 00000000B 00000CH CAN2 RX/TX 端子切換え レジスタ CANSWR R/W CAN1/2 ------00B 00000DH ∼ 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 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 448 付録 A I/O マップ 表 A-1 I/O マップ (2 / 8) アドレス レジスタ 略称 アクセス リソース 初期値 000019H ポート 9 方向レジスタ DDR9 R/W ポート 9 00000000B 00001AH ポート A 方向レジスタ DDRA R/W ポート A -------0B 00001BH アナログ入力許可レジスタ ADER R/W ポート 6, A/D 11111111B 00001CH ポート 0 プルアップ制御 レジスタ PUCR0 R/W ポート 0 00000000B 00001DH ポート 1 プルアップ制御 レジスタ PUCR1 R/W ポート 1 00000000B 00001EH ポート 2 プルアップ制御 レジスタ PUCR2 R/W ポート 2 00000000B 00001FH ポート 3 プルアップ制御 レジスタ PUCR3 R/W ポート 3 00000000B 000020H シリアルモードコントロール レジスタ 0 UMC0 R/W 00000100B 000021H シリアルステータスレジスタ0 USR0 R/W 00010000B 000022H シリアルインプットデータレジ スタ 0/ シリアルアウトプット データレジスタ 0 UIDR0/ UODR0 R/W XXXXXXXXB 000023H レート・データレジスタ URD0 R/W 0000000XB 000024H シリアルモードレジスタ 1 SMR1 R/W 00000000B 000025H シリアルコントロールレジスタ 1 SCR1 R/W 00000100B 000026H シリアルインプットデータレジ スタ 1/ シリアルアウトプット データレジスタ 1 SIDR1/ SODR1 R/W XXXXXXXXB 000027H シリアルステータスレジスタ SSR1 R/W 00001000B 000028H UART1 通信プリスケーラコント ロールレジスタ U1CDCR R/W 0---0000B 000029H シリアルエッジセレクト レジスタ SES1 R/W -------0B UART0 UART1 00002AH 00002BH 00002CH 00002DH 使用禁止 シリアル I/O プリスケーラ シリアルモードコントロール レジスタ SCDCR R/W SMCS R/W 0---1111B ----0000B シリアル I/O 00000010B 00002EH シリアルデータレジスタ SDR R/W XXXXXXXXB 00002FH シリアルエッジセレクト レジスタ SES2 R/W -------0B 449 付録 表 A-1 I/O マップ (3 / 8) アドレス レジスタ 略称 アクセス 000030H 割込み許可レジスタ ENIR R/W 000031H 割込み要因レジスタ EIRR R/W 要求レベル設定レジスタ ELVR R/W 000032H リソース 初期値 00000000B DTP/ 外部割込み 000033H XXXXXXXXB 00000000B 00000000B 000034H A/D コントロールステータス レジスタ 0 ADCS0 R/W 000035H A/D コントロールステータス レジスタ 1 ADCS1 R/W 000036H A/D データレジスタ 0 ADCR0 R XXXXXXXXB 000037H A/D データレジスタ 1 ADCR1 R/W 00101-XXB 000038H PPG0 動作モード制御レジスタ PPGC0 R/W 0-000--1B 000039H PPG1 動作モード制御レジスタ PPGC1 R/W 00003AH PPG0/1クロック選択レジスタ PPG01 R/W 00003BH 00000000B A/D コンバータ 16 ビット PPG タイマ 0/1 00000000B 0-000001B 000000--B 予約領域 00003CH PPG2 動作モード制御レジスタ PPGC2 R/W 00003DH PPG3 動作モード制御レジスタ PPGC3 R/W 00003EH PPG2/3クロック選択レジスタ PPG23 R/W 00003FH 0-000--1B 16 ビット PPG タイマ 2/3 0-000001B 000000--B 使用禁止 000040H PPG4 動作モード制御レジスタ PPGC4 R/W 000041H PPG5 動作モード制御レジスタ PPGC5 R/W 000042H PPG4/5クロック選択レジスタ PPG45 R/W 000043H 0-000--1B 16 ビット PPG タイマ 4/5 0-000001B 000000--B 使用禁止 000044H PPG6 動作モード制御レジスタ PPGC6 R/W 000045H PPG7 動作モード制御レジスタ PPGC7 R/W 000046H PPG6/7クロック選択レジスタ PPG67 R/W 000047H ∼ 00004BH 0-000--1B 16 ビット PPG タイマ 6/7 0-000001B 000000--B 使用禁止 00004CH イン プットキャプ チャコント ロールステータスレジスタ0/1 ICS01 R/W インプットキャプ チャ 0/1 00000000B 00004DH イン プットキャプ チャコント ロールステータスレジスタ2/3 ICS23 R/W インプットキャプ チャ 2/3 00000000B 00004EH イン プットキャプ チャコント ロールステータスレジスタ4/5 ICS45 R/W インプットキャプ チャ 4/5 00000000B 450 付録 A I/O マップ 表 A-1 I/O マップ (4 / 8) アドレス レジスタ 略称 アクセス リソース 初期値 00004FH イン プットキャプ チャコント ロールステータスレジスタ6/7 ICS67 R/W インプットキャプ チャ 6/7 00000000B タイマコントロールステータス レジスタ 0 TMCSR0 R/W 000050H 000051H 000052H 000053H 000054H 000055H 000056H 000057H 000058H 00000000B 16 ビット リロードタイマ0 タイマレジスタ 0/ タイマリロードレジスタ 0 TMR0/ TMRLR0 R/W タイマコントロールステータス レジスタ 1 TMCSR1 R/W 00000000B TMR1/ TMRLR1 アウ トプットコン ペアコント ロールレジスタ 0 OCS1 00005AH アウ トプットコン ペアコント ロールレジスタ 2 OCS2 0000--00B 00005CH ∼ 00006BH アウトプットコン ペア 0/1 ---00000B 0000--00B R/W 00005BH XXXXXXXXB XXXXXXXXB R/W 000059H ----0000B R/W OCS0 アウ トプットコン ペアコント ロールレジスタ 1 アウ トプットコン ペアコント ロールレジスタ 3 XXXXXXXXB XXXXXXXXB 16 ビット リロードタイマ1 タイマレジスタ 1/ タイマリロードレジスタ 1 ----0000B アウトプットコン ペア 2/3 ---00000B OCS3 予約領域(CAN2 インタフェース用) 00000000B 00006CH タイマデータレジスタ TCDT R/W 00006DH 入出力タイマ 00006EH タイマコントロールステータス レジスタ TCCS R/W 00006FH ROM ミラー機能選択レジスタ ROMM R/W 00000000B ROM ミラー機能 選択モジュール 000070H ∼ 00007FH 予約領域(CAN0 インタフェース用) 000080H ∼ 00008FH 予約領域(CAN1 インタフェース用) 000090H ∼ 00009DH 使用禁止 00009EH プログラムアドレス検出コント ロール / ステータスレジスタ 00009FH 遅延割込み要因発生 / 解除レジスタ 00000000B -------1B PACSR R/W アドレス一致 検出機能 00000000B DIRR R/W 遅延割込み 発生モジュール -------0B 451 付録 表 A-1 I/O マップ (5 / 8) アドレス レジスタ 略称 アクセス 0000A0H 低消費電力モード制御レジスタ LPMCR R/W 0000A1H クロック選択レジスタ CKSCR R/W 0000A2H ∼ 0000A4H リソース 低消費電力 制御回路 初期値 00011000B 11111100B 使用禁止 0011--00B 0000A5H 自動レディ機能選択レジスタ ARSR 0000A6H 外部アドレス出力制御レジスタ HACR 0000A7H バス制御信号選択レジスタ ECSR 0000A8H ウォッチドッグタイマ 制御レジスタ WDTC R/W ウォッチドッグ タイマ X-XXX111B 0000A9H タイムベースタイマ 制御レジスタ TBTC R/W タイムベース タイマ 1--00100B 0000AAH 時計タイマ制御レジスタ WTC R/W 時計タイマ 1X001000B フラッシュメモリ 000X0000B 0000ABH ∼ 0000ADH 0000AEH W 外部メモリ アクセス 00000000B 0000000-B 使用禁止 フラッシュメモリコントロール ステータスレジスタ 0000AFH FMCS R/W 使用禁止 0000B0H 割込み制御レジスタ 00 ICR00 R/W 00000111B 0000B1H 割込み制御レジスタ 01 ICR01 R/W 00000111B 0000B2H 割込み制御レジスタ 02 ICR02 R/W 00000111B 0000B3H 割込み制御レジスタ 03 ICR03 R/W 00000111B 0000B4H 割込み制御レジスタ 04 ICR04 R/W 00000111B 0000B5H 割込み制御レジスタ 05 ICR05 R/W 00000111B 0000B6H 割込み制御レジスタ 06 ICR06 R/W 00000111B 0000B7H 割込み制御レジスタ 07 ICR07 R/W 0000B8H 割込み制御レジスタ 08 ICR08 R/W 0000B9H 割込み制御レジスタ 09 ICR09 R/W 00000111B 0000BAH 割込み制御レジスタ 10 ICR10 R/W 00000111B 0000BBH 割込み制御レジスタ 11 ICR11 R/W 00000111B 0000BCH 割込み制御レジスタ 12 ICR12 R/W 00000111B 0000BDH 割込み制御レジスタ 13 ICR13 R/W 00000111B 0000BEH 割込み制御レジスタ 14 ICR14 R/W 00000111B 0000BFH 割込み制御レジスタ 15 ICR15 R/W 00000111B 452 割込み コントローラ 00000111B 00000111B 付録 A I/O マップ 表 A-1 I/O マップ (6 / 8) アドレス レジスタ 0000C0H ∼ 0000FFH 略称 アクセス プログラムアドレス検出 レジスタ 0 PADR0 R/W XXXXXXXXB R/W XXXXXXXXB 001FF2H R/W 001FF3H R/W 001FF4H 初期値 外部領域 001FF0H 001FF1H リソース プログラムアドレス検出 レジスタ 1 PADR1 001FF5H アドレス一致 検出機能 XXXXXXXXB XXXXXXXXB R/W XXXXXXXXB R/W XXXXXXXXB XXXXXXXXB 003900H リロードレジスタ L PRLL0 R/W 003901H リロードレジスタ H PRLH0 R/W 003902H リロードレジスタ L PRLL1 R/W 003903H リロードレジスタ H PRLH1 R/W XXXXXXXXB 003904H リロードレジスタ L PRLL2 R/W XXXXXXXXB 003905H リロードレジスタ H PRLH2 R/W 003906H リロードレジスタ L PRLL3 R/W 003907H リロードレジスタ H PRLH3 R/W XXXXXXXXB 003908H リロードレジスタ L PRLL4 R/W XXXXXXXXB 003909H リロードレジスタ H PRLH4 R/W 00390AH リロードレジスタ L PRLL5 R/W 00390BH リロードレジスタ H PRLH5 R/W XXXXXXXXB 00390CH リロードレジスタ L PRLL6 R/W XXXXXXXXB 00390DH リロードレジスタ H PRLH6 R/W 00390EH リロードレジスタ L PRLL7 R/W 00390FH リロードレジスタ H PRLH7 R/W 003910H ∼ 003917H 16 ビット PPG タイマ 0/1 16 ビット PPG タイマ 2/3 16 ビット PPG タイマ 4/5 16 ビット PPG タイマ 6/7 XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB 予約領域 003918H インプットキャプチャレジスタ 0 IPCP0 R 003919H インプットキャプチャレジスタ 0 IPCP0 R 00391AH インプットキャプチャレジスタ 1 IPCP1 R XXXXXXXXB 00391BH インプットキャプチャレジスタ 1 IPCP1 R XXXXXXXXB XXXXXXXXB XXXXXXXXB インプットキャプ チャ 0/1 453 付録 表 A-1 I/O マップ (7 / 8) アドレス レジスタ 略称 アクセス 00391CH インプットキャプチャレジスタ 2 IPCP2 R 00391DH インプットキャプチャレジスタ 2 IPCP2 R 00391EH インプットキャプチャレジスタ 3 IPCP3 R XXXXXXXXB 00391FH インプットキャプチャレジスタ 3 IPCP3 R XXXXXXXXB 003920H インプットキャプチャレジスタ 4 IPCP4 R XXXXXXXXB 003921H インプットキャプチャレジスタ 4 IPCP4 R 003922H インプットキャプチャレジスタ 5 IPCP5 R XXXXXXXXB 003923H インプットキャプチャレジスタ 5 IPCP5 R XXXXXXXXB 003924H インプットキャプチャレジスタ 6 IPCP6 R XXXXXXXXB 003925H インプットキャプチャレジスタ 6 IPCP6 R 003926H インプットキャプチャレジスタ 7 IPCP7 R XXXXXXXXB 003927H インプットキャプチャレジスタ 7 IPCP7 R XXXXXXXXB 003928H アウトプットコンペアレジスタ 0 0CCP0 R/W XXXXXXXXB 003929H アウトプットコンペアレジスタ 0 0CCP0 R/W 00392AH アウトプットコンペアレジスタ 1 OCCP1 R/W XXXXXXXXB 00392BH アウトプットコンペアレジスタ 1 OCCP1 R/W XXXXXXXXB 00392CH アウトプットコンペアレジスタ 2 OCCP2 R/W XXXXXXXXB 00392DH アウトプットコンペアレジスタ 2 OCCP2 R/W 00392EH アウトプットコンペアレジスタ 3 OCCP3 R/W XXXXXXXXB 00392FH アウトプットコンペアレジスタ 3 OCCP3 R/W XXXXXXXXB 003930H ∼ 0039FFH 454 リソース 初期値 XXXXXXXXB XXXXXXXXB インプットキャプ チャ 2/3 XXXXXXXXB インプットキャプ チャ 4/5 XXXXXXXXB インプットキャプ チャ 6/7 XXXXXXXXB アウトプットコン ペア 0/1 XXXXXXXXB アウトプットコン ペア 2/3 (予約領域) 付録 A I/O マップ 表 A-1 I/O マップ (8 / 8) アドレス レジスタ 略称 アクセス リソース 003A00H ∼ 003AFFH (予約領域 :CAN0 インタフェース) 003B00H ∼ 003BFFH (予約領域 :CAN0 インタフェース) 003C00H ∼ 3CFFH (予約領域 :CAN1 インタフェース) 003D00H ∼ 003DFFH (予約領域 :CAN1 インタフェース) 003E00H ∼ 003EFFH (予約領域 :CAN2 インタフェース) 003F00H ∼ 003FFFH (予約領域 :CAN2 インタフェース) 初期値 • 初期値について→ 0: 初期値 "0" / 1: 初期値 "1" / X: 初期値不定 / "-": 初期値不定(なし) • 00FFH 以下のアドレスは予約領域です。外バスアクセス信号はできません。 • RAM 領域と予約領域の境界 #H は品種ごとに変わります。 ( 注意事項 ) 書込み可能なビットに関しては , リセットにより初期化される値が初期値として記述されています。 読出し時の値ではありませんので注意してください。 また ,LPMCR/CKSCR/WDTC では , リセットの種類により , 初期化される場合と , 初期化されない場合 がありますが , 初期化される場合の初期値が記述されています。 • コンペアレジスタ 0 ∼ 3 はフリーランタイマ 2 を , コンペアレジスタ 4 ∼ 7 はフリーランタイマ 1 を使用 します。なおフリーランタイマ 1 はインプットキャプチャでも使用します。 ● 書込み / 書込みについての説明 R/W: リード / ライト可能 R: リードオンリ W: ライトオンリ ● 初期値についての説明 0: このビットの初期値は "0" です。 1: このビットの初期値は "1" です。 X: このビットの初期値は不定です。 -: このビットは未使用です。初期値は不定です。 < 注意事項 > アドレス 00000DH ∼ 0000FFH は予約領域です。このアドレスに読み取りアクセ スすると ,"X" の読み取りが行われます。ただし , このアドレスへの書込みアクセス は行わないでください。 455 付録 付録 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 456 付録 B 命令 B.1 命令の種類 F2MC-16LX には , 以下に示す 351 種類の命令があります。 ■ 命令の種類 • 転送系命令 ( バイト ) 41 命令 • 転送系命令 ( ワード , ロングワード ) 38 命令 • 加減算命令 ( バイト , ワード , ロングワード ) 42 命令 • 増減算命令 ( バイト , ワード , ロングワード ) 12 命令 • 比較命令 ( バイト , ワード , ロングワード ) 11 命令 • 符号なし乗除算命令 ( ワード , ロングワード ) 11 命令 • 符号付き乗除算命令 ( ワード , ロングワード ) 11 命令 • 論理演算命令 ( バイト , ワード ) 39 命令 • 論理演算命令 ( ロングワード ) 6 命令 • 符号反転命令 ( バイト , ワード ) 6 命令 • ノーマライズ命令 ( ロングワード ) 1 命令 • シフト命令 ( バイト , ワード , ロングワード ) 18 命令 • 分岐命令 50 命令 ( 分岐命令 1: 31 命令 , 分岐命令 2: 19 命令 ) • アキュムレータ操作命令 ( バイト , ワード ) 6 命令 • その他制御命令 ( バイト , ワード , ロングワード ) 28 命令 • ビット操作命令 21 命令 • ストリング命令 10 命令 457 付録 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) 458 付録 B 命令 ■ 実効アドレスフィールド 実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。 表 B.2-1 実効アドレスフィールド コード 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 デフォルトバンク なし DTB DTB レジスタ間接 0A @RW2 0B @RW3 SPB 0C @RW0+ DTB 0D @RW1+ 0E @RW2+ 0F @RW3+ SPB 10 @RW0+disp8 DTB 11 @RW1+disp8 DTB 12 @RW2+disp8 ADB 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 DTB 16 @RW6+disp8 ADB 17 @RW7+disp8 SPB 18 @RW0+disp16 DTB 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C @RW0+RW7 インデックス付レジスタ間接 DTB 1D @RW1+RW7 インデックス付レジスタ間接 DTB 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 PCB 1F addr16 直接アドレス DTB ポストインクリメント付 レジスタ間接 8 ビットディスプレースメント付 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 ADB DTB ADB SPB DTB DTB ADB SPB 459 付録 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 レジスタ直接 汎用レジスタ 専用レジスタ *: 460 バイト R0, R1, R2, R3, R4, R5, R6, R7 ワード RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 ロングワード RL0, RL1, RL2, RL3 アキュムレータ A, AL ポインタ SP * バンク PCB, DTB, USB, SSB, ADB ページ DPR 制御 PS, CCR, RP, ILM SP は , コンディションコードレジスタ (CCR) 中の S フラグビットの値に応じてユーザス タックポインタ (USP) またはシステムスタックポインタ (SSP) のどちらか一方が選択さ れ , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドには 記述されることなく指定されます。 付録 B 命令 図 B.3-2 に例を示します。 図 B.3-2 レジスタ直接例 MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 ) 実行前 A 0716 2534 メモリ空間 R0 実行後 A 0716 2564 ?? メモリ空間 R0 34 ● 直接分岐アドレス (addr16) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ∼ bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 B.3-3 に例を示 します。 図 B.3-3 直接分岐アドレス (addr16) 例 JMP 3B20H ( バンク内で直接分岐アドレス指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F 4F3C20H 62 4F3C21H 20 4F3C22H 3B JMP 3B20H 461 付録 ● 物理直接分岐アドレス (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 に格納する命令 ) 実行前 実行後 462 A 0716 2534 A 2534 FFEE メモリ空間 0000C0H EE 0000C1H FF 付録 B 命令 ● 短縮直接アドレス (dir) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) により指定されます。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) により指定されます。図 B.3-6 に例を示します。 図 B.3-6 短縮直接アドレス (dir) 例 MOV S : 20H, A (A の下位 8 ビットの内容を短縮直接アドレス指定方式で書き込む命令 ) A 4455 実行前 DPR 6 6 DTB 7 7 A 4455 実行後 DPR 6 6 1212 メモリ空間 776620H 1212 DTB 7 7 ?? メモリ空間 776620H 12 ● 直接アドレス (addr16) オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 B.3-7 に例を示 します。 図 B.3-7 直接アドレス (addr16) 例 MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 ) 実行前 実行後 A 2020 A AABB AABB 0123 DTB 5 5 メモリ空間 553B21H 01 553B20H 23 DTB 5 5 463 付録 ● 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 メモリ空間 実行後 464 DTB 5 5 DPR 6 6 556610H 01 付録 B 命令 ● 直接ビットアドレス (addr16: bp) 64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ∼ bit16 はデー タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。 図 B.3-10 直接ビットアドレス (addr16: bp) 例 SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 DTB 5 5 実行前 00 552222H メモリ空間 DTB 5 5 実行後 01 552222H ● ベクタアドレス (#vct) 分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には 4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込 み命令に使用します。図 B.3-11 に例を示します。 図 B.3-11 ベクタアドレス (#vct) 例 CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PC 0 0 0 0 PCB F F 実行後 メモリ空間 FFC000H EF FFFFE0H 00 FFFFE1H D0 CALLV #15 PC D 0 0 0 PCB F F 465 付録 表 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 を参照 してください ) 466 付録 B 命令 B.4 間接アドレッシング 間接アドレッシングでは , 記述したオペランドが示すアドレスのデータで , 間接的に アドレスを指定します。 ■ 間接アドレッシング ● レジスタ間接 (@RWj j=0 ∼ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタックバンクレジスタ (SSB) またはユーザ スタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンク レジスタ (ADB) で示されます。図 B.4-1 に例を示します。 図 B.4-1 レジスタ間接 (@RWj j=0 ∼ 3) 例 MOVW A, @RW1 ( レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 0 F DTB 7 8 ● ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。 オペランド操作後RWjはオペランドデータ長 (バイトの場合は1, ワードの場合は2, ロングワードの場合は 4) 分だけ加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタッ クバンクレジスタ (SSB) またはユーザスタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンクレジスタ (ADB) で示されます。 ポストインクリメントした結果がインクリメント指定したレジスタ自身のアドレス だった場合は , 参照される値はインクリメントした値となり , 命令が書込みだった場合 は命令による書込みが優先されるので , インクリメントするはずだったレジスタは書 込みデータとなります。 図 B.4-2 に例を示します。 467 付録 図 B.4-2 ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 例 MOVW A, @RW1+ ( ポストインクリメント付レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 1 1 DTB 7 8 ● ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 汎用レジスタ RWj の内容にディスプレースメントを加算したものをアドレスとしたメ モリをアクセスするアドレッシングです。ディスプレースメントは , バイトとワードの 2 種類があり , 符号付数値として加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1, RW4, RW5 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3, RW7 を用い た場合はシステムスタックバンクレジスタ (SSB) またはユーザスタックバンクレジス タ (USB) で示され , RW2, RW6 を用いた場合はアディショナルデータバンクレジスタ (ADB) で示されます。図 B.4-3 に例を示します。 図 B.4-3 ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 例 MOVW A, @RW1+10H (ディスプレースメント付レジスタ間接で読出しを行い, Aに格納する命令) 実行前 A 0716 2534 (+10H) RW1 D 3 0 F 実行後 A 2534 FFEE RW1 D 3 0 F 468 DTB 7 8 DTB 7 8 メモリ空間 78D31FH EE 78D320H FF 付録 B 命令 ● ディスプレースメント付ロングレジスタ間接 (RLi+disp8 i=0 ∼ 3) 汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットをア ドレスとしたメモリをアクセスするアドレッシングです。ディスプレースメントは 8 ビットで符号付数値として加算されます。図 B.4-4 に例を示します。 図 B.4-4 ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) 例 MOVW A, @RL2+25H (ディスプレースメント付ロングレジスタ間接で読出しを行い, Aに格納する命令) A 0716 実行前 2534 (+25H) RL2 F 3 8 2 4B02 メモリ空間 824B27H EE 824B28H FF A 2534 FFEE 実行後 RL2 F 3 8 2 4B02 ● ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) (命令のアドレス+4+disp16) で示されるアドレスのメモリをアクセスするアドレッシン グです。ディスプレースメントはワード長です。アドレスの bit23 ∼ bit16 はプログラ ムカウンタバンクレジスタ (PCB) により指定されます。次に示す命令のオペランドア ドレスは , ( 次の命令のアドレス +disp16) とは , みなしませんので注意してください。 • DBNZ eam, rel • CBNE eam, #imm8, rel • MOV eam, #imm8 • DWBNZ eam, rel • CWBNE eam, #imm16, rel • MOVW eam, #imm16 図 B.4-5 に例を示します。 図 B.4-5 ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) 例 MOVW A, @PC+20H ( ディスプレースメント付 PC 間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 PCB C 5 PC 4 5 5 6 実行後 A 2534 FFEE PCB C 5 PC 4 5 5 A +4 C54556H 73 C54557H 9E C54558H 20 C54559H 00 MOVW A, @PC+20H C5455AH ・ ・ ・ +20H C5457AH EE C5457BH FF 469 付録 ● ベースインデックス付レジスタ間接 (@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 次の命令 実行後 470 PC 3 C 2 0 PCB 4 F 4F3C21H 10 4F3C20H 60 BRA 10H 付録 B 命令 ● レジスタリスト (rlst) スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 B.4-8 にレ ジスタリストの構成 , 図 B.4-9 に例を示します。 図 B.4-8 レジスタリストの構成 MSB LSB RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0 対応ビットが "1" の場合に設定 , "0" の場合に非設定 MSB: 最上位ビット LSB: 最下位ビット 図 B.4-9 レジスタリスト (rlst) 例 POPW, RW0, RW4 ( レジスタリストで示された複数のワードレジスタに , SP で示されるメモリの データを転送する命令 ) SP 3 4 F A SP 3 4 F E RW0 ×× ×× RW0 02 01 RW1 ×× ×× RW1 ×× ×× RW2 ×× ×× RW2 ×× ×× RW3 ×× ×× RW3 ×× ×× RW4 ×× ×× RW4 04 03 RW5 ×× ×× RW5 ×× ×× RW6 ×× ×× RW6 ×× ×× RW7 ×× ×× RW7 ×× ×× メモリ空間 SP 01 メモリ空間 34FAH 01 34FAH 02 34FBH 02 34FBH 03 34FCH 03 34FCH 34FDH 04 04 34FEH 実行前 SP 34FDH 34FEH 実行後 471 付録 ● アキュムレータ間接 (@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 472 PCB 4 F 3B20 61 JMP @A 付録 B 命令 ● 間接指定分岐アドレス (@ear) ear で示される番地のワードデータが分岐先アドレスとなります。図 B.4-12 に例を示し ます。 図 B.4-12 間接指定分岐アドレス (@ear) 例 JMP @@RW0 ( レジスタ間接の間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 メモリ空間 217F48H 20 217F49H 3B 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 4F3C20H 73 4F3C21H 08 JMP @@RW0 ● 間接指定分岐アドレス (@eam) eam で示される番地のワードデータが分岐先アドレスとなります。図 B.4-13 に例を示 します。 図 B.4-13 間接指定分岐アドレス (@eam) 例 JMP @RW0 ( レジスタ間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 3 B 2 0 実行後 PC 3 B 2 0 メモリ空間 4F3B20H 次の命令 PCB 4 F 4F3C20H 73 4F3C21H 00 JMP @RW0 RW0 3 B 2 0 473 付録 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 命令一覧表の読み方」を参照 してください。 474 付録 B 命令 表 B.5-2 実サイクル数算出用サイクル数の補正値 (b) バイト *1 オペランド (c) ワード *1 (d) ロング *1 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 内部レジスタ +0 1 +0 1 +0 2 内部メモリ 偶数アドレス +0 1 +0 1 +0 2 内部メモリ 奇数アドレス +0 1 +2 2 +4 4 外部データバス *2 16 ビット偶数アドレス +1 1 +1 1 +2 2 外部データバス *2 16 ビット奇数アドレス +1 1 +4 2 +8 4 外部データバス *2 8 ビット +1 1 +4 2 +8 4 *1: (b), (c), (d) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用され ています。 *2: 外部データバスを使用した場合は , レディ入力および自動レディによりウェイトしたサ イクル数も加算する必要があります。 表 B.5-3 プログラムフェッチサイクル数算出用サイクル数の補正値 命令 バイト境界 ワード境界 内部メモリ − +2 外部データバス 16 ビット − +3 外部データバス 8 ビット +3 − ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 475 付録 B.6 実効アドレスフィールド 表 B.6-1 に実効アドレスフィールドを示します。 ■ 実効アドレスフィールド 表 B.6-1 実効アドレスフィールド (1 / 2) コード 476 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 0A @RW2 0B @RW3 0C @RW0+ 0D @RW1+ 0E @RW2+ 0F @RW3+ 10 @RW0+disp8 11 @RW1+disp8 12 @RW2+disp8 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 16 @RW6+disp8 17 @RW7+disp8 アドレス拡張部の バイト数 * レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 − レジスタ間接 0 ポストインクリメント付 レジスタ間接 0 8 ビットディスプレースメント付 レジスタ間接 1 付録 B 命令 表 B.6-1 実効アドレスフィールド (1 / 2) コード *: 表記 18 @RW0+disp16 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C アドレス形式 アドレス拡張部の バイト数 * 16 ビットディスプレースメント付 レジスタ間接 2 @RW0+RW7 インデックス付レジスタ間接 0 1D @RW1+RW7 インデックス付レジスタ間接 0 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 2 1F addr16 直接アドレス 2 アドレス拡張部のバイト数は , 「B.8 F2MC-16LX 命令一覧表」の # ( バイト数 ) の "+" に当てはまります。 "#" の意味については「B.7 命令一覧表の読み方」を参照してください。 477 付録 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 478 リードモディファイライト命令 (1 命令でメモリなどからデータを読 み出し , メモリへ書き込む ) であるかどうか示します。 *: リードモディファイライト命令である。 − : リードモディファイライト命令ではない。 ( 注意事項 ) 読み書きで意味の異なるアドレスには使用できません。 付録 B 命令 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 A 意味 32 ビットアキュムレータ 命令により , 使用されるビット長が変わります。 バイト : AL の下位 8 ビット ワード : AL の 16 ビット ロング : AL: AH の 32 ビット AH A の上位 16 ビット AL A の下位 16 ビット SP スタックポインタ (USP or SSP) PC プログラムカウンタ PCB プログラムカウンタバンクレジスタ DTB データバンクレジスタ ADB アディショナルデータバンクレジスタ SSB システムスタックバンクレジスタ USB ユーザスタックバンクレジスタ SPB カレントスタックバンクレジスタ (SSB or USB) DPR ダイレクトページレジスタ brg1 DTB, ADB, SSB, USB, DPR, PCB, SPB brg2 DTB, ADB, SSB, USB, DPR, SPB Ri R0, R1, R2, R3, R4, R5, R6, R7 RWi RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 RWj RW0, RW1, RW2, RW3 RLi RL0, RL1, RL2, RL3 dir 短縮直接アドレス指定 addr16 直接アドレス指定 addr24 物理直接アドレス指定 ad24 0 ∼ 15 addr24 の bit0 ∼ bit15 ad24 16 ∼ 23 addr24 の bit16 ∼ bit23 io I/O 領域 (000000H ∼ 0000FFH) #imm4 4 ビット即値データ #imm8 8 ビット即値データ #imm16 16 ビット即値データ #imm32 32 ビット即値データ ext (imm8) 8 ビット即値データを符号拡張した 16 ビットデータ 479 付録 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 480 意味 disp8 8 ビットディスプレースメント disp16 16 ビットディスプレースメント bp ビットオフセット値 vct4 ベクタ番号 (0 ∼ 15) vct8 ベクタ番号 (0 ∼ 255) ()b ビットアドレス rel PC 相対分岐指定 ear 実効アドレス指定 ( コード 00 ∼ 07) eam 実効アドレス指定 ( コード 08 ∼ 1F) rlst レジスタ並び 付録 B 命令 B.8 F2MC-16LX 命令一覧表 F2MC-16LX で使用している命令の一覧を示します。 ■ F2MC-16LX 命令一覧表 表 B.8-1 転送系命令 ( バイト ) 41 命令 # ∼ RG B LH AH I S T N Z V C 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 を参照してください。 481 付録 表 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 を参照してください。 482 付録 B 命令 表 B.8-3 加減算命令 ( バイト・ワード・ロングワード ) 42 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW ADD A,#imm8 2 2 0 0 byte (A) ← (A) + imm8 Z - - - - * * * * - ADD A,dir 2 5 0 (b) byte (A) ← (A) + (dir) Z - - - - * * * * - ADD A,ear 2 3 1 0 byte (A) ← (A) + (ear) Z - - - - * * * * - ADD A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam) Z - - - - * * * * - ADD ear,A 2 3 2 0 byte (ear) ← (ear) + (A) - - - - - * * * * - ADD eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) + (A) Z - - - - * * * * * ADDC A 1 2 0 0 byte (A) ← (AH) + (AL) + (C) Z - - - - * * * * - ADDC A,ear 2 3 1 0 byte (A) ← (A) + (ear)+ (C) Z - - - - * * * * - ADDC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam)+ (C) Z - - - - * * * * - ADDDC A 1 3 0 0 byte (A) ← (AH) + (AL) + (C) (10 進数 ) Z - - - - * * * * - SUB A,#imm8 2 2 0 0 byte (A) ← (A) - imm8 Z - - - - * * * * - SUB A,dir 2 5 0 (b) byte (A) ← (A) - (dir) Z - - - - * * * * - SUB A,ear 2 3 1 0 byte (A) ← (A) - (ear) Z - - - - * * * * - SUB A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) Z - - - - * * * * - SUB ear,A 2 3 2 0 byte (ear) ← (ear) - (A) - - - - - * * * * - SUB eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) - (A) - - - - - * * * * * SUBC A 1 2 0 0 byte (A) ← (AH) - (AL) - (C) Z - - - - * * * * - SUBC A,ear 2 3 1 0 byte (A) ← (A) - (ear) - (C) Z - - - - * * * * - SUBC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) - (C) Z - - - - * * * * - SUBDC A 1 3 0 0 byte (A) ← (AH) - (AL) - (C) (10 進数 ) Z - - - - * * * * - ADDW A 1 2 0 0 word (A) ← (AH) + (AL) - - - - - * * * * - ADDW A,ear 2 3 1 0 word (A) ← (A) + (ear) - - - - - * * * * - ADDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) - - - - - * * * * - ADDW A,#imm16 3 2 0 0 word (A) ← (A) + imm16 - - - - - * * * * - word (ear) ← (ear) + (A) - - - - - * * * * - word (eam) ← (eam) + (A) - - - - - * * * * * ADDW ear,A 2 3 2 0 ADDW eam,A 2+ 5+(a) 0 2 × (c) ADDCW A,ear 2 3 1 0 word (A) ← (A) + (ear) + (C) - - - - - * * * * - ADDCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) + (C) - - - - - * * * * - SUBW A 1 2 0 0 word (A) ← (AH) - (AL) - - - - - * * * * - SUBW A,ear 2 3 1 0 word (A) ← (A) - (ear) - - - - - * * * * - SUBW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - - - - - * * * * - SUBW A,#imm16 3 2 0 0 word (A) ← (A) - imm16 - - - - - * * * * - word (ear) ← (ear) - (A) - - - - - * * * * - word (eam) ← (eam) - (A) - - - - - * * * * * SUBW ear,A 2 3 2 0 SUBW eam,A 2+ 5+(a) 0 2 × (c) SUBCW A,ear 2 3 1 0 word (A) ← (A) - (ear) - (C) - - - - - * * * * - SUBCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - (C) - - - - - * * * * - ADDL A,ear 2 6 2 0 long (A) ← (A) + (ear) - - - - - * * * * - ADDL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) + (eam) - - - - - * * * * - ADDL A,#imm32 5 4 0 0 long (A) ← (A) + imm32 - - - - - * * * * - SUBL A,ear 2 6 2 0 long (A) ← (A) - (ear) - - - - - * * * * - SUBL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) - (eam) - - - - - * * * * - SUBL A,#imm32 5 4 0 0 long (A) ← (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 483 付録 表 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 を参照してください。 484 付録 B 命令 表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIVU A 1 *1 0 0 word (AH) / byte (AL) 商→ byte (AL) 余り→ byte (AH) - - - - - - - * * - DIVU A,ear 2 *2 1 0 word (A) / byte (ear) 商→ byte (A) 余り→ byte (ear) - - - - - - - * * - DIVU A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) - - - - - - - * * - DIVUW A,ear 2 *4 1 0 long (A) / word (ear) 商→ word (A) 余り→ word (ear) - - - - - - - * * - DIVUW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MULU MULU A 1 *8 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - A,ear 2 *9 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MULU A,eam 2+ *10 0 (b) MULUW A 1 *11 0 0 MULUW A,ear 2 *12 1 MULUW A,eam 2+ *13 0 オペレーション byte (A) * byte (eam) → word (A) - - - - - - - - - - word (AH) * word (AL) → Long (A) - - - - - - - - - - 0 word (A) * word (ear) → Long (A) - - - - - - - - - - (c) word (A) * word (eam) → Long (A) - - - - - - - - - - *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 7 正常の場合 , 15 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 8 正常の場合 , 16 *3:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 9+(a) 正常の場合 , 19+(a) *4:ゼロディバイトの場合 , 4 オーバフローの場合 , 7 正常の場合 , 22 *5:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 8+(a) 正常の場合 , 26+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 byte(AH) がゼロでない場合 , 7 *9:byte(ear) がゼロの場合 , 4 byte(ear) がゼロでない場合 , 8 *10:byte(eam) がゼロの場合 , 5+(a) byte(eam) がゼロでない場合 , 9+(a) *11:word(AH) がゼロの場合 , 3 word(AH) がゼロでない場合 , 11 *12:word(ear) がゼロの場合 , 4 word(ear) がゼロでない場合 , 12 *13:word(eam) がゼロの場合 , 5+(a) word(eam) がゼロでない場合 , 13+(a) ( 注意事項 ) 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 485 付録 表 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 を参照してください。 486 付録 B 命令 表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令 ニーモニック # ∼ RG B AND A,#imm8 2 2 0 0 AND A,ear 2 3 1 0 LH AH I S T N Z V C RMW byte (A) ← (A) and imm8 - - - - - * * R - - byte (A) ← (A) and (ear) - - - - - * * R - - オペレーション AND A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) and (eam) - - - - - * * R - - AND ear,A 2 3 2 0 byte (ear) ← (ear) and (A) - - - - - * * R - - AND eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) and (A) - - - - - * * R - * OR A,#imm8 2 2 0 0 byte (A) ← (A) or imm8 - - - - - * * R - - OR A,ear 2 3 1 0 byte (A) ← (A) or (ear) - - - - - * * R - - OR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) or (eam) - - - - - * * R - - OR ear,A 2 3 2 0 byte (ear) ← (ear) or (A) - - - - - * * R - - OR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) or (A) - - - - - * * R - * XOR A,#imm8 2 2 0 0 byte (A) ← (A) xor imm8 - - - - - * * R - - XOR A,ear 2 3 1 0 byte (A) ← (A) xor (ear) - - - - - * * R - - XOR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) xor (eam) - - - - - * * R - - XOR ear,A 2 3 2 0 byte (ear) ← (ear) xor (A) - - - - - * * R - - XOR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) xor (A) - - - - - * * R - * NOT A 1 2 0 0 byte (A) ← not (A) - - - - - * * R - - NOT ear 2 3 2 0 byte (ear) ← not (ear) - - - - - * * R - - NOT eam 2+ 5+(a) 0 2 × (b) byte (eam) ← not (eam) - - - - - * * R - * ANDW A 1 2 0 0 word (A) ← (AH) and (A) - - - - - * * R - - ANDW A,#imm16 3 2 0 0 word (A) ← (A) and imm16 - - - - - * * R - - ANDW A,ear 2 3 1 0 word (A) ← (A) and (ear) - - - - - * * R - - ANDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) and (eam) - - - - - * * R - - ANDW ear,A 2 3 2 0 word (ear) ← (ear) and (A) - - - - - * * R - - ANDW eam,A 2+ 5+(a) 0 2 × (c) word (eam) ← (eam) and (A) - - - - - * * R - * ORW A 1 2 0 0 word (A) ← (AH) or (A) - - - - - * * R - - ORW A,#imm16 3 2 0 0 word (A) ← (A) or imm16 - - - - - * * R - - ORW A,ear 2 3 1 0 word (A) ← (A) or (ear) - - - - - * * R - - ORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) or (eam) - - - - - * * R - - word (ear) ← (ear) or (A) - - - - - * * R - - word (eam) ← (eam) or (A) - - - - - * * R - * ORW ear,A 2 3 2 0 ORW eam,A 2+ 5+(a) 0 2 × (c) XORW A 1 2 0 0 word (A) ← (AH) xor (A) - - - - - * * R - - XORW A,#imm16 3 2 0 0 word (A) ← (A) xor imm16 - - - - - * * R - - XORW A,ear 2 3 1 0 word (A) ← (A) xor (ear) - - - - - * * R - - XORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) xor (eam) - - - - - * * R - - word (ear) ← (ear) xor (A) - - - - - * * R - - word (eam) ← (eam) xor (A) - - - - - * * R - * - XORW ear,A 2 3 2 0 XORW eam,A 2+ 5+(a) 0 2 × (c) NOTW A 1 2 0 0 word (A) ← not (A) - - - - - * * R - NOTW ear 2 3 2 0 word (ear) ← not (ear) - - - - - * * R - - NOTW eam 2+ 5+(a) 0 2 × (c) word (eam) ← not (eam) - - - - - * * R - * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 487 付録 表 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) 488 - 付録 B 命令 表 B.8-12 シフト命令 ( バイト・ワード・ロングワード ) 18 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW RORC A 2 2 0 0 byte (A) ← 右ローテートキャリー付 - - - - - * * - * - ROLC A 2 2 0 0 byte (A) ← 左ローテートキャリー付 - - - - - * * - * - RORC ear 2 3 2 0 byte (ear) ← 右ローテートキャリー付 RORC eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 右ローテートキャリー付 ROLC ear 2 3 2 ROLC eam 2+ 5+(a) 0 0 ASR A,R0 2 *1 1 0 LSR A,R0 2 *1 1 0 LSL A,R0 2 *1 1 ASRW A 1 2 LSRW A/SHRW A 1 LSLW A/SHLW A 1 ASRW A,R0 2 *1 LSRW A,R0 2 *1 LSLW A,R0 2 *1 ASRL A,R0 2 *2 LSRL A,R0 2 LSLL A,R0 2 - - - - - * * - * - - - - - - * * - * * - - - - - * * - * - - - - - - * * - * * byte (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - byte (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 0 byte (A) ← ロジカル左バレルシフト (A,R0) - - - - - * * - * - 0 0 word (A) ← 算術右シフト (A,1 ビット ) - - - - * * * - * - 2 0 0 word (A) ← ロジカル右シフト (A,1 ビット ) - - - - * R * - * - 2 0 0 word (A) ← ロジカル左シフト (A,1 ビット ) - - - - - * * - * - 1 0 word (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ←ロジカル左バレルシフト (A,R0) - - - - - * * - * - 1 0 long (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) <-- ロジカル左バレルシフト (A,R0) - - - - - * * - * - byte (ear) ← 左ローテートキャリー付 2 × (b) byte (eam) ← 左ローテートキャリー付 *1:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 5+(R0) *2:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 6+(R0) ( 注意事項 ) 表中の (a),(b) は , 表 B.5-1 および表 B.5-2 を参照してください。 489 付録 表 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 を参照してください。 490 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 付録 B 命令 表 B.8-14 分岐命令 2 19 命令 ニーモニック # ∼ RG B CBNE A,#imm8,rel 3 *1 0 0 byte (A) ≠ imm8 で分岐 - - - - - * * * * - CWBNE A,#imm16,rel 4 *1 0 0 word (A) ≠ imm16 で分岐 - - - - - * * * * - CBNE ear,#imm8,rel 4 *2 1 0 byte (ear) ≠ imm8 で分岐 - - - - - * * * * - CBNE eam,#imm8,rel 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - CWBNE eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - DBNZ ear,rel 3 *5 2 byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - DBNZ eam,rel 3+ *6 2 - - - - - * * * - * DWBNZ ear,rel 3 *5 2 DWBNZ eam,rel 3+ *6 2 0 オペレーション 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 0 LH AH I S T N Z V C RMW - - - - - * * * - - 2 × (c) word (eam) = (eam) - 1, (eam) ≠ 0 で分岐 - - - - - * * * - * word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 INT #vct8 2 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - INT addr16 3 16 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INTP addr24 4 17 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INT9 1 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - RETI 1 *8 0 *7 割込みからの復帰 - - * * * * * * * - 2 6 0 (c) 関数の入口で , 旧フレームポインタをスタッ クに保存し , 新フレームポインタの設定 , お よびローカルポインタの領域を確保する - - - - - - - - - - 1 5 0 (c) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - LINK #imm8 UNLINK RET RETP *1:分岐が行われる場合 , 5 行われない場合 , 4 *2:分岐が行われる場合 , 13 行われない場合 , 12 *3:分岐が行われる場合 , 7+(a) 行われない場合 , 6+(a) *4:分岐が行われる場合 , 8 行われない場合 , 7 *5:分岐が行われる場合 , 7 行われない場合 , 6 *6:分岐が行われる場合 , 8+(a) 行われない場合 , 7+(a) *7:次の割込み要求へ分岐する場合 , 3 × (b)+2 × (c) 今の割込みから復帰の場合 , 6 × (c) *8:次の割込みへ分岐する場合 , 15 今の割込みから復帰する場合 , 17 注 1) CBNE / CWBNE 命令では , RWj+ のアドレッシングモードは , 使用しないでください。 注 2) スタックからの復帰 (word) 注 3) スタックからの復帰 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 491 付録 表 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 を参照してください。 492 付録 B 命令 表 B.8-16 ビット操作命令 21 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVB A,dir:bp 3 5 0 (b) byte (A) ← (dir:bp)b Z * - - - * * - - - MOVB A,addr16:bp 4 5 0 (b) byte (A) ← (addr16:bp)b Z * - - - * * - - - MOVB A,io:bp 3 4 0 (b) byte (A) ← (io:bp)b Z * - - - * * - - - MOVB dir:bp,A 3 7 0 2 × (b) bit (dir:bp)b ← (A) - - - - - * * - - * MOVB addr16:bp,A 4 7 0 2 × (b) bit (addr16:bp)b ← (A) - - - - - * * - - * MOVB io:bp,A 3 6 0 2 × (b) bit (io:bp)b ← (A) - - - - - * * - - * SETB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 1 - - - - - - - - - * SETB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 1 - - - - - - - - - * SETB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 1 - - - - - - - - - * CLRB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 0 - - - - - - - - - * CLRB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 0 - - - - - - - - - * CLRB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 0 - - - - - - - - - * BBC dir:bp,rel 4 *1 0 (b) (dir:bp) b = 0 の場合分岐 - - - - - - * - - - BBC addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 0 の場合分岐 - - - - - - * - - - BBC io:bp,rel 4 *2 0 (b) (io:bp) b = 0 の場合分岐 - - - - - - * - - - BBS dir:bp,rel 4 *1 0 (b) (dir:bp) b = 1 の場合分岐 - - - - - - * - - - BBS addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 1 の場合分岐 - - - - - - * - - - BBS io:bp,rel 4 *2 0 (b) (io:bp) b = 1 の場合分岐 - - - - - - * - - - SBBS addr16:bp,rel 5 *3 0 - - - - - - * - - * 2 × (b) (addr16:bp) b = 1 で分岐 , bit (addr16:bp) b ← 1 WBTS io:bp 3 *4 0 *5 WBTC io:bp 3 *4 0 *5 (io:bp) b = 1 になるまで待つ - - - - - - - - - - (io:bp) b = 0 になるまで待つ - - - - - - - - - - LH AH I S T N Z V C RMW *1:分岐が行われる場合 , 8 分岐が行われない場合 , 7 *2:分岐が行われる場合 , 7 分岐が行われない場合 , 6 *3:条件成立の場合 , 10 未成立の場合 , 9 *4:不定回数 *5:条件が成立するまで ( 注意事項 ) 表中の (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 # ∼ RG B SWAP 1 3 0 0 byte (A)0-7 ←→ (A)8-15 - - - - - - - - - - SWAPW 1 2 0 0 word (AH) ←→ (AL) - * - - - - - - - - EXT 1 1 0 0 byte 符号拡張 X - - - - * * - - - ニーモニック オペレーション EXTW 1 2 0 0 word 符号拡張 - X - - - * * - - - ZEXT 1 1 0 0 byte ゼロ拡張 Z - - - - R * - - - ZEXTW 1 1 0 0 word ゼロ拡張 - Z - - - R * - - - 493 付録 表 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 を参照してください。 494 付録 B 命令 B.9 命令マップ F2MC-16LX の命令コードは , 1 ∼ 2 バイトで構成されていますので , 命令マップは 複数のページで構成されています。 F2MC-16LX の命令マップを示します。 ■ 命令マップの構造 図 B.9-1 命令マップの構造 基本ページマップ ビット操作系命令 文字列操作系命令 2 バイト系命令 :第 1 バイト ea 系命令× 9 :第 2 バイト 1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命 令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。 実際の命令コードと命令マップの対応を図 B.9-2 に示します。 495 付録 図 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 命令 496 A SWAP ADDSP ADB SPB #8 CMP A, #8 A, #8 dir, A A, dir io, A A, io JMP BRA 60 @A rel MULU DIVU ea 系命令 その 2 B0 C0 D0 E0 ea 系命令 その 8 ea 系命令 その 7 #4 rel rel BNT BT BNV BV BP BN rel rel rel rel rel BNC/BHS rel BC/BLO BNZ/BNE rel BZ/BEQ F0 +F +E +D +C +B LSRW ASRW LSLW NEGW A A A A XORW ORW ANDW ANDW PUSHW POPW A, #16 A A A A PUSHW POPW rlst rlst XORW PUSHW POPW A, #16 PS PS MOVW RWi, ea 2 バイト XCHW RWi, ea 系命令 文字列操 XCH Ri, ea 作系命令 MOVW ea, RWi ビット操 MOV ea, Ri 作系命令 CMPW MOVL MOVW RETI A, #16 A, #32 addr16, A ORW PUSHW POPW A A, #16 AH AH A A ADDSP MULUW NOTW #16 A SWAPW ZEXTW EXTW CMPL CMPW A, #32 BHI BLS BGT BLE BGE BLT rel rel rel rel rel rel A MOVW MOVW RETP A, SP io, #16 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 MOVW MOVX RET A SP, A A, addr16 A, #8 A0 ADDW MOVW MOVW INT MOVW MOVW MOV A, MOVW ea 系命令 MOVW A, #16 A, dir A, io #vct8 A, RWi RWi, A RWi, #16 @RWi+d8 @RWi+d8,A その 9 NOT XOR A, #8 90 rel SUBL SUBW A, #32 A A A OR OR CCR, #8 80 MOV MOV MOV MOVX A, MOV CALL ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 その 1 70 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV 50 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 MOV MOV MOV 40 MOV MOV CBNE A, CWBNE A, MOVW MOVW INTP MOV +A RP, #8 ILM, #8 #8, rel #16, rel A, #16 A,addr16 addr24 Ri, ea +9 UNLINK A A A, #8 A, #8 SUBC SUB ADD 30 AND AND MOV MOV CALL ea 系命令 CCR, #8 A, #8 dir, #8 io, #8 addr16 その 5 CMP A A, dir A, dir ADDC SUB ADD 20 LINK ADDL ADDW #imm8 A, #32 ZEXT DTB @A EXT JCTX PCB A SUBDC ADDDC NEG NCC INT9 A CMR NOP 10 SUBW MOVW MOVW INT MOVEA A, #16 dir, A io, A addr16 RWi, ea +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-2 基本ページマップ 497 498 +F +E +D +C +B +A +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 10 MOVB io:bp, A 20 30 CLRB io:bp 40 50 SETB io:bp 60 70 BBC io;bp, rel 80 90 BBS io:bp, rel A0 B0 MOVB MOVB A, MOVB MOVB CLRB CLRB SETB SETB BBC BBC BBS BBS A, dir:bp addr16:bp dir:bp, A addr16:bp,A dir:bp addr16:bp dir:bp addr16:bp dir:bp, rel addr16:bp,rel dir:bp, rel addr16:bp,rel MOVB A, io:bp 00 WBTS io:bp C0 D0 WBTC io:bp E0 SBBS addr16:bp F0 付録 表 B.9-3 ビット操作系命令マップ ( 第 1 バイト =6CH) MOVSI MOVSD PCB, PCB PCB, DTB PCB, ADB PCB, SPB DTB, PCB DTB, DTB DTB, ADB DTB, SPB ADB, PCB ADB, DTB ADB, ADB ADB, SPB SPB, PCB SPB, DTB SPB, ADB SPB, SPB +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 10 +0 00 MOVSWI 20 MOVSWD 30 40 50 60 70 90 A0 B0 C0 SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SCEQI SCEQD SCWEQI SCWEQD FILSI PCB PCB PCB PCB PCB 80 D0 FILSI SPB ADB DTB PCB E0 F0 付録 B 命令 表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH) 499 500 LSLW LSLL LSL MOVW MOVW A, R0 A, R0 A, R0 @RL2+d8, A A, @RL2+d8 MOVW MOVW NRML A, @A @AL, AH A, R0 ASRW ASRL ASR MOVW MOVW A, R0 A, R0 A, R0 @RL3+d8, A A, @RL3+d8 LSRW LSRL LSR A, R0 A, R0 A, R0 +D +E +F MOVW MOVW @RL1+d8, A A, @RL1+d8 MOVW MOVW @RL0+d8, A A, @RL0+d8 +C +B +A +9 +8 A MOV MOV MOVX MOV MOV A, PCB A, @A A, @RL3+d8 @RL3+d8, A A, @RL3+d8 +6 ROLC MOV MOV A, @A @AL, AH +5 A MOV MOV MOVX MOV MOV A, DPR DPR, A A, @RL2+d8 @RL2+d8, A A, @RL2+d8 +4 ROLC MOV MOV A, USB USB, A +3 +7 MOV MOV MOVX MOV MOV A, SSB SSB, A A, @RL1+d8 @RL1+d8, A A, @RL1+d8 +2 40 MOV MOV A, ADB ADB, A 30 +1 20 MOV MOV MOVX MOV MOV A, DTB DTB, A A, @RL0+d8 @RL0+d8, A A, @RL0+d8 10 +0 00 50 60 DIVU MULW MUL 70 A A A 80 90 A0 B0 C0 D0 E0 F0 付録 表 B.9-5 2 バイト系命令マップ ( 第 1 バイト =6FH) @PC+d16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 使用禁止 使用禁止 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3+ addr16 A,@RW3+ addr16 SUBL SUBL SUBL A, SUBL A, addr16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 @RW1+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 使用禁止 +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 +F 使用禁止 @RW0+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 使用禁止 +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDL A, @RW3, @RW3+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B ADDL 使用禁止 @RW2, @RW2+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ADDL ADDL A, SUBL SUBL A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A ADDL A, @RW1, @RW1+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ADDL ADDL A, SUBL SUBL A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDL @RW0+RW7 ,#8, rel 使用禁止 @RW0, @RW0+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ADDL ADDL A, SUBL SUBL A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 SUBL A, RW7, @RW7+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW7+d8 A, RL3 @RW7+d8 +7 SUBL RW6, @RW6+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW6+d8 A, RL3 @RW6+d8 +6 ADDL A, RW5, @RW5+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 ADDL ADDL A, SUBL SUBL A, A, RL2 @RW5+d8 A, RL2 @RW5+d8 +5 ADDL @RW3, @RW3+d16 #8, rel ,#8, rel RW4, @RW4+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 使用禁止 addr16, ,#8, rel @PC+d16, ,#8, rel @RW1+RW7 ,#8, rel @RW2, @RW2+d16 #8, rel ,#8, rel @RW1, @RW1+d16 #8, rel ,#8, rel @RW0, @RW0+d16 #8, rel ,#8, rel R7, @RW7+d8, #8, rel #8, rel R6, @RW6+d8, #8, rel #8, rel R5, @RW5+d8, #8, rel #8, rel R4, @RW4+d8, #8, rel #8, rel R3, @RW3+d8, #8, rel #8, rel R2, @RW2+d8, #8, rel #8, rel R1, @RW1+d8, #8, rel #8, rel ADDL ADDL A, SUBL SUBL A, A, RL2 @RW4+d8 A, RL2 @RW4+d8 CBNE↓ F0 R0, @RW0+d8, #8, rel #8, rel CBNE↓ E0 +4 D0 RW3, @RW3+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 C0 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW3+d8 A, RL1 @RW3+d8 B0 +3 A0 RW2, @RW2+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 90 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW2+d8 A, RL1 @RW2+d8 80 +2 70 RW1, @RW1+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 CWBNE↓ CWBNE↓ 60 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW1+d8 A, RL0 @RW1+d8 50 40 +1 30 +0 20 RW0, @RW0+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 10 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW0+d8 A, RL0 @RW0+d8 00 付録 B 命令 表 B.9-6 ea 系命令 その 1 ( 第 1 バイト =70H) 501 502 +F @@RW3+ JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+,A @PC+d16, A @RW2+, #8 @PC+d16, #8 A,@RW2+ @PC+d16 CALLP CALLP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+,A addr16, A @RW3+, #8 addr16, #8 A,@RW3+ addr16 JMPP JMPP CALLP @ +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+,A @RW1+RW7,A @RW1+, #8 @RW1+RW7,#8 A,@RW1+ @RW1+RW7 JMPP @ +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+,A @RW0+RW7,A @RW0+, #8 @RW0+RW7,#8 A,@RW0+ @RW0+RW7 CALLP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3,A @RW3+d16,A @RW3, #8 @RW3+d16,#8 A,@RW3 @RW3+d16 +B CALLP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2,A @RW2+d16,A @RW2, #8 @RW2+d16,#8 A,@RW2 @RW2+d16 +A JMPP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1,A @RW1+d16,A @RW1, #8 @RW1+d16,#8 A,@RW1 @RW1+d16 +9 JMPP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #8 @RW0+d16,#8 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW7+d8 @RL3 @@RW7+d8 RL3 @RW7+d8 RL3 @RW7+d8 A, RL3 @RW7+d8 RL3, A @RW7+d8,A R7, #8 @RW7+d8,#8 A, RW7 @RW7+d8 F0 +7 E0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW6+d8 @RL3 @@RW6+d8 RL3 @RW6+d8 RL3 @RW6+d8 A, RL3 @RW6+d8 RL3, A @RW6+d8,A R6, #8 @RW6+d8,#8 A, RW6 @RW6+d8 D0 +6 C0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW5+d8 @RL2 @@RW5+d8 RL2 @RW5+d8 RL2 @RW5+d8 A, RL2 @RW5+d8 RL2, A @RW5+d8,A R5, #8 @RW5+d8,#8 A, RW5 @RW5+d8 B0 +5 A0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW4+d8 @RL2 @@RW4+d8 RL2 @RW4+d8 RL2 @RW4+d8 A, RL2 @RW4+d8 RL2, A @RW4+d8,A R4, #8 @RW4+d8,#8 A, RW4 @RW4+d8 90 +4 80 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW3+d8 @RL1 @@RW3+d8 RL1 @RW3+d8 RL1 @RW3+d8 A, RL1 @RW3+d8 RL1, A @RW3+d8,A R3, #8 @RW3+d8,#8 A, RW3 @RW3+d8 70 +3 60 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW2+d8 @RL1 @@RW2+d8 RL1 @RW2+d8 RL1 @RW2+d8 A, RL1 @RW2+d8 RL1, A @RW2+d8,A R2, #8 @RW2+d8,#8 A, RW2 @RW2+d8 50 +2 40 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW1+d8 @RL0 @@RW1+d8 RL0 @RW1+d8 RL0 @RW1+d8 A, RL0 @RW1+d8 RL0, A @RW1+d8,A R1, #8 @RW1+d8,#8 A, RW1 @RW1+d8 30 +1 20 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW0+d8 @RL0 @@RW0+d8 RL0 @RW0+d8 RL0 @RW0+d8 A, RL0 @RW0+d8 RL0, A @RW0+d8,A R0, #8 @RW0+d8,#8 A, RW0 @RW0+d8 10 +0 00 付録 表 B.9-7 ea 系命令 その 2 ( 第 1 バイト =71H) D0 E0 F0 MOVX MOVX A, XCH XCH A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MOVX MOVX A, XCH XCH A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A A,@RW3+ addr16 A,@RW3+ addr16 +D +E +F DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R7 @RW7+d8 A, R7 @RW7+d8 R7, A @RW7+d8,A A, R7 @RW7+d8 A, R7 @RW7+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R6 @RW6+d8 A, R6 @RW6+d8 R6, A @RW6+d8,A A, R6 @RW6+d8 A, R6 @RW6+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R5 @RW5+d8 A, R5 @RW5+d8 R5, A @RW5+d8,A A, R5 @RW5+d8 A, R5 @RW5+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R4 @RW4+d8 A, R4 @RW4+d8 R4, A @RW4+d8,A A, R4 @RW4+d8 A, R4 @RW4+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R3 @RW3+d8 A, R3 @RW3+d8 R3, A @RW3+d8,A A, R3 @RW3+d8 A, R3 @RW3+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R2 @RW2+d8 A, R2 @RW2+d8 R2, A @RW2+d8,A A, R2 @RW2+d8 A, R2 @RW2+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R1 @RW1+d8 A, R1 @RW1+d8 R1, A @RW1+d8,A A, R1 @RW1+d8 A, R1 @RW1+d8 +C INC DEC R7 @RW7+d8 C0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ROLC RORC RORC INC R7 @RW7+d8 R7 @RW7+d8 ROLC INC DEC R6 @RW6+d8 B0 +B ROLC RORC RORC INC R6 @RW6+d8 R6 @RW6+d8 ROLC INC DEC R5 @RW5+d8 A0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ROLC RORC RORC INC R5 @RW5+d8 R5 @RW5+d8 ROLC INC DEC R4 @RW4+d8 90 +A ROLC RORC RORC INC R4 @RW4+d8 R4 @RW4+d8 ROLC INC DEC R3 @RW3+d8 INC DEC R2 @RW2+d8 INC DEC R1 @RW1+d8 80 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R0 @RW0+d8 A, R0 @RW0+d8 R0, A @RW0+d8,A A, R0 @RW0+d8 A, R0 @RW0+d8 70 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ROLC RORC RORC INC R3 @RW3+d8 R3 @RW3+d8 ROLC 60 INC DEC R0 @RW0+d8 50 +9 ROLC RORC RORC INC R2 @RW2+d8 R2 @RW2+d8 ROLC 40 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, A @RW0+d16,A A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ROLC RORC RORC INC R1 @RW1+d8 R1 @RW1+d8 ROLC 30 ROLC RORC RORC INC R0 @RW0+d8 R0 @RW0+d8 20 ROLC 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-8 ea 系命令 その 3 ( 第 1 バイト =72H) 503 504 +F @@RW3+ JMP INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2+ @@PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A @RW2+, #16 @PC+d16, #16 A,@RW2+ @PC+d16 CALL CALL JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A @RW3+, #16 addr16, #16 A,@RW3+ addr16 JMP JMP XCHW XCHW A, A,@RW1+ @RW1+RW7 +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALL @ MOVW MOVW @RW1+, #16 @RW1+RW7,#16 CALL INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A JMP @ JMP +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 XCHW XCHW A, A,@RW0+ @RW0+RW7 MOVW MOVW @RW0+, #16 @RW0+RW7,#16 INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A CALL @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, #16 @RW3+d16,#16 A,@RW3 @RW3+d16 +B CALL JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, #16 @RW2+d16,#16 A,@RW2 @RW2+d16 +A JMP @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, #16 @RW1+d16,#16 A,@RW1 @RW1+d16 +9 JMP JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #16 @RW0+d16,#16 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW7 @@RW7+d8 RW7 @@RW7+d8 RW7 @RW7+d8 RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, A @RW7+d8,A RW7, #16 @RW7+d8,#16 A, RW7 @RW7+d8 F0 +7 E0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW6 @@RW6+d8 RW6 @@RW6+d8 RW6 @RW6+d8 RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, A @RW6+d8,A RW6, #16 @RW6+d8,#16 A, RW6 @RW6+d8 D0 +6 C0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW5 @@RW5+d8 RW5 @@RW5+d8 RW5 @RW5+d8 RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, A @RW5+d8,A RW5, #16 @RW5+d8,#16 A, RW5 @RW5+d8 B0 +5 A0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW4 @@RW4+d8 RW4 @@RW4+d8 RW4 @RW4+d8 RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, A @RW4+d8,A RW4, #16 @RW4+d8,#16 A, RW4 @RW4+d8 90 +4 80 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW3 @@RW3+d8 RW3 @@RW3+d8 RW3 @RW3+d8 RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, A @RW3+d8,A RW3, #16 @RW3+d8,#16 A, RW3 @RW3+d8 70 +3 60 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2 @@RW2+d8 RW2 @@RW2+d8 RW2 @RW2+d8 RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, A @RW2+d8,A RW2, #16 @RW2+d8,#16 A, RW2 @RW2+d8 50 +2 40 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW1 @@RW1+d8 RW1 @@RW1+d8 RW1 @RW1+d8 RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, A @RW1+d8,A RW1, #16 @RW1+d8,#16 A, RW1 @RW1+d8 30 +1 20 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW0 @@RW0+d8 RW0 @@RW0+d8 RW0 @RW0+d8 RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, A @RW0+d8,A RW0, #16 @RW0+d8,#16 A, RW0 @RW0+d8 10 +0 00 付録 表 B.9-9 ea 系命令 その 4 ( 第 1 バイト =73H) ADD ADD A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @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 命令 表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H) 505 506 NOT NOT @RW1+ @RW1+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A SUB SUB @RW2+, A @PC+d16,A SUB SUB @RW3+, A addr16, A ADD ADD @RW2+, A @PC+d16,A ADD ADD @RW3+, A addr16, A +D +E +F SUBC SUBC A, NEG NEG A, AND AND A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A OR OR @RW3+, A addr16, A XOR XOR @RW3+, A addr16, A NOT NOT @RW3+ addr16 OR OR XOR XOR NOT NOT @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 NOT NOT @RW0+ @RW0+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A +C SUBC SUBC A, NEG NEG A, AND AND A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A NOT NOT @RW3 @RW3+d16 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A NOT R7 @RW7+d8 NOT R6 @RW6+d8 NOT R5 @RW5+d8 NOT R4 @RW4+d8 +B XOR NOT R7, A @RW7+d8, A XOR NOT R6, A @RW6+d8, A XOR NOT R5, A @RW5+d8, A XOR NOT R4, A @RW4+d8, A NOT R3 @RW3+d8 NOT R2 @RW2+d8 NOT R1 @RW1+d8 NOT NOT @RW2 @RW2+d16 XOR NOT XOR NOT R3, A @RW3+d8, A XOR R2, A @RW2+d8,A XOR NOT R1, A @RW1+d8, A NOT R0 @RW0+d8 F0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A NEG A, AND AND OR OR R7 @RW7+d8 R7, A @RW7+d8, A R7, A @RW7+d8, A XOR XOR XOR XOR XOR XOR E0 XOR NOT R0, A @RW0+d8, A D0 +A ADD SUB SUB SUBC SUBC A, NEG R7, A @RW7+d8, A R7, A @RW7+d8, A A, R7 @RW7+d8 ADD NEG A, AND AND OR OR R6 @RW6+d8 R6, A @RW6+d8, A R6, A @RW6+d8, A NEG A, AND AND OR OR R5 @RW5+d8 R5, A @RW5+d8, A R5, A @RW5+d8, A NEG A, AND AND OR OR R4 @RW4+d8 R4, A @RW4+d8, A R4, A @RW4+d8, A NEG A, AND AND OR OR R3 @RW3+d8 R3, A @RW3+d8, A R3, A @RW3+d8, A NEG A, AND AND OR OR R2 @RW2+d8 R2, A @RW2+d8,A R2, A @RW2+d8,A NEG A, AND AND OR OR R1 @RW1+d8 R1, A @RW1+d8, A R1, A @RW1+d8, A XOR C0 NOT NOT @RW1 @RW1+d16 ADD SUB SUB SUBC SUBC A, NEG R6, A @RW6+d8, A R6, A @RW6+d8, A A, R6 @RW6+d8 ADD B0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A ADD SUB SUB SUBC SUBC A, NEG R5, A @RW5+d8, A R5, A @RW5+d8, A A, R5 @RW5+d8 ADD A0 +9 ADD SUB SUB SUBC SUBC A, NEG R4, A @RW4+d8, A R4, A @RW4+d8, A A, R4 @RW4+d8 ADD 90 NOT NOT @RW0 @RW0+d16 ADD SUB SUB SUBC SUBC A, NEG R3, A @RW3+d8, A R3, A @RW3+d8, A A, R3 @RW3+d8 ADD 80 NEG A, AND AND OR OR R0 @RW0+d8 R0, A @RW0+d8, A R0, A @RW0+d8, A 70 ADD ADD SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A ADD SUB SUB SUBC SUBC A, NEG R2, A @RW2+d8,A R2, A @RW2+d8,A A, R2 @RW2+d8 60 ADD 50 ADD SUB SUB SUBC SUBC A, NEG R1, A @RW1+d8, A R1, A @RW1+d8, A A, R1 @RW1+d8 40 ADD 30 ADD SUB SUB SUBC SUBC A, NEG R0, A @RW0+d8, A R0, A @RW0+d8, A A, R0 @RW0+d8 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 表 B.9-11 ea 系命令 その 6 ( 第 1 バイト =75H) 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 命令 表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H) 507 508 ORW ORW XORW XORW NOTW NOTW RW6, A @RW6+d8, A RW6, A @RW6+d8, A RW6 @RW6+d8 ORW ORW XORW XORW NOTW NOTW RW7, A @RW7+d8, A RW7, A @RW7+d8, A RW7 @RW7+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW6, A @RW6+d8, A RW6, A @RW6+d8, A A, RW6 @RW6+d8 RW6 @RW6+d8 RW6, A @RW6+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW7, A @RW7+d8, A RW7, A @RW7+d8, A A, RW7 @RW7+d8 RW7 @RW7+d8 RW7, A @RW7+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0 @RW0+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1 @RW1+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2 @RW2+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3 @RW3+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+ @RW0+RW7 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+ @RW1+RW7 SUBW SUBW @RW2+, A @PC+d16,A SUBW SUBW @RW3+, A addr16, A ADDW ADDW @RW2+, A @PC+d16,A ADDW ADDW @RW3+, A addr16, A +6 +7 +8 +9 +A +B +C +D +E +F SUBCW SUBCW A, NEGW NEGW ANDW ANDW A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A ORW ORW @RW3+, A addr16, A XORW XORW @RW3+, A addr16, A NOTW NOTW @RW3+ addr16 SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 ORW ORW XORW XORW NOTW NOTW RW5, A @RW5+d8, A RW5, A @RW5+d8, A RW5 @RW5+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW5, A @RW5+d8, A RW5, A @RW5+d8, A A, RW5 @RW5+d8 RW5 @RW5+d8 RW5, A @RW5+d8, A +5 F0 ORW ORW XORW XORW NOTW NOTW RW4, A @RW4+d8, A RW4, A @RW4+d8, A RW4 @RW4+d8 E0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW4, A @RW4+d8, A RW4, A @RW4+d8, A A, RW4 @RW4+d8 RW4 @RW4+d8 RW4, A @RW4+d8, A D0 +4 C0 ORW ORW XORW XORW NOTW NOTW RW3, A @RW3+d8, A RW3, A @RW3+d8, A RW3 @RW3+d8 B0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW3, A @RW3+d8, A RW3, A @RW3+d8, A A, RW3 @RW3+d8 RW3 @RW3+d8 RW3, A @RW3+d8, A A0 +3 90 ORW ORW XORW XORW NOTW NOTW RW2, A @RW2+d8, A RW2, A @RW2+d8, A RW2 @RW2+d8 80 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW2, A @RW2+d8, A RW2, A @RW2+d8, A A, RW2 @RW2+d8 RW2 @RW2+d8 RW2, A @RW2+d8, A 70 +2 60 ORW ORW XORW XORW NOTW NOTW RW1, A @RW1+d8, A RW1, A @RW1+d8, A RW1 @RW1+d8 50 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW1, A @RW1+d8, A RW1, A @RW1+d8, A A, RW1 @RW1+d8 RW1 @RW1+d8 RW1, A @RW1+d8, A 40 +1 30 ORW ORW XORW XORW NOTW NOTW RW0, A @RW0+d8, A RW0, A @RW0+d8, A RW0 @RW0+d8 20 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW0, A @RW0+d8, A RW0, A @RW0+d8, A A, RW0 @RW0+d8 RW0 @RW0+d8 RW0, A @RW0+d8, A 10 +0 00 付録 表 B.9-13 ea 系命令 その 8 ( 第 1 バイト =77H) A, MULU +F DIV DIV A, DIVW DIVW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 DIV DIV A, DIVW DIVW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 DIV DIV A, DIVW DIVW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 DIV DIV A, DIVW DIVW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 DIV DIV A, DIVW DIVW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, @RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ A, DIVW DIVW A, addr16 A,@RW3+ addr16 MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, MULUW @RW1+RW7 MULU @RW0+RW7 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULU +D A,@RW1+ MULU +C A,@RW0+ MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 MULU MULU A, MULUW MULUW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 MULU MULU A, MULUW MULUW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 DIV DIV A, DIVW DIVW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 F0 +7 E0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 D0 +6 C0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 B0 +5 A0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 90 +4 80 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 70 +3 60 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 50 +2 40 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 30 +1 20 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H) 509 510 MOVEA MOVEA RW1 RW1,RW2 ,@RW2+d8 MOVEA MOVEA RW1 RW1,RW3 ,@RW3+d8 MOVEA MOVEA RW1 RW1,RW4 ,@RW4+d8 MOVEA MOVEA RW1 RW1,RW5 ,@RW5+d8 MOVEA MOVEA RW1 RW1,RW6 ,@RW6+d8 MOVEA MOVEA RW1 RW1,RW7 ,@RW7+d8 MOVEA MOVEA RW1 RW1,@RW0 ,@RW0+d16 MOVEA MOVEA RW1 RW1,@RW1 ,@RW1+d16 MOVEA MOVEA RW1 RW1,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,@RW3 ,@RW3+d16 MOVEA MOVEA RW0 RW0,RW2 ,@RW2+d8 MOVEA MOVEA RW0 RW0,RW3 ,@RW3+d8 MOVEA MOVEA RW0 RW0,RW4 ,@RW4+d8 MOVEA MOVEA RW0 RW0,RW5 ,@RW5+d8 MOVEA MOVEA RW0 RW0,RW6 ,@RW6+d8 MOVEA MOVEA RW0 RW0,RW7 ,@RW7+d8 MOVEA MOVEA RW0 RW0,@RW0 ,@RW0+d16 MOVEA MOVEA RW0 RW0,@RW1 ,@RW1+d16 MOVEA RW0 MOVEA RW0 MOVEA MOVEA +2 +3 +4 +5 +6 +7 +8 +9 50 70 90 B0 C0 D0 E0 F0 MOVEA MOVEA RW4 RW4,@RW2+ ,@PC+d16 MOVEA MOVEA RW6,@RW3+ RW6, addr16 MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA RW0,@RW3+ RW0, addr16 RW1,@RW3+ RW1, addr16 RW2,@RW3+ RW2, addr16 RW3,@RW3+ RW3, addr16 RW4,@RW3+ RW4, addr16 RW5,@RW3+ RW5, addr16 MOVEA MOVEA RW3 RW3,@RW2+ ,@PC+d16 +F MOVEA MOVEA RW2 RW2,@RW2+ ,@PC+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2+ ,@PC+d16 RW6,@RW2+ ,@PC+d16 RW7,@RW2+ ,@PC+d16 MOVEA MOVEA RW1 RW1,@RW2+ ,@PC+d16 MOVEA MOVEA RW0 RW0,@RW2+ ,@PC+d16 +E MOVEA MOVEA RW7@RW3+ RW7, addr16 MOVEA MOVEA RW7 RW7,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW1+ ,@RW1+RW7 RW6,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW1+ ,@RW1+RW7 RW1,@RW1+ ,@RW1+RW7 RW2,@RW1+ ,@RW1+RW7 RW3,@RW1+ ,@RW1+RW7 RW4,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW7 RW7,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW3 ,@RW3+d16 RW6,@RW3 ,@RW3+d16 RW7,@RW3 ,@RW3+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2 ,@RW2+d16 RW6,@RW2 ,@RW2+d16 RW7,@RW2 ,@RW2+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW1 ,@RW1+d16 RW6,@RW1 ,@RW1+d16 RW7,@RW1 ,@RW1+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW0 ,@RW0+d16 RW6,@RW0 ,@RW0+d16 RW7,@RW0 ,@RW0+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW7 ,@RW7+d8 RW6,RW7 ,@RW7+d8 RW7,RW7 ,@RW7+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW6 ,@RW6+d8 RW6,RW6 ,@RW6+d8 RW7,RW6 ,@RW6+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW5 ,@RW5+d8 RW6,RW5 ,@RW5+d8 RW7,RW5 ,@RW5+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW4 ,@RW4+d8 RW6,RW4 ,@RW4+d8 RW7,RW4 ,@RW4+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW3 ,@RW3+d8 RW6,RW3 ,@RW3+d8 RW7,RW3 ,@RW3+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW2 ,@RW2+d8 RW6,RW2 ,@RW2+d8 RW7,RW2 ,@RW2+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW1 ,@RW1+d8 RW6,RW1 ,@RW1+d8 RW7,RW1 ,@RW1+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW0 ,@RW0+d8 RW6,RW0 ,@RW0+d8 RW7,RW0 ,@RW0+d8 A0 +D MOVEA MOVEA RW4 RW4,@RW3 ,@RW3+d16 MOVEA MOVEA RW4 RW4,@RW2 ,@RW2+d16 MOVEA MOVEA RW4 RW4,@RW1 ,@RW1+d16 MOVEA MOVEA RW4 RW4,@RW0 ,@RW0+d16 MOVEA MOVEA RW4 RW4,RW7 ,@RW7+d8 MOVEA MOVEA RW4 RW4,RW6 ,@RW6+d8 MOVEA MOVEA RW4 RW4,RW5 ,@RW5+d8 MOVEA MOVEA RW4 RW4,RW4 ,@RW4+d8 MOVEA MOVEA RW4 RW4,RW3 ,@RW3+d8 MOVEA MOVEA RW4 RW4,RW2 ,@RW2+d8 MOVEA MOVEA RW4 RW4,RW1 ,@RW1+d8 MOVEA MOVEA RW4 RW4,RW0 ,@RW0+d8 80 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW0+ ,@RW0+RW7 RW6,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW3 RW3,@RW3 ,@RW3+d16 MOVEA MOVEA RW3 RW3,@RW2 ,@RW2+d16 MOVEA MOVEA RW3 RW3,@RW1 ,@RW1+d16 MOVEA MOVEA RW3 RW3,@RW0 ,@RW0+d16 MOVEA MOVEA RW3 RW3,RW7 ,@RW7+d8 MOVEA MOVEA RW3 RW3,RW6 ,@RW6+d8 MOVEA MOVEA RW3 RW3,RW5 ,@RW5+d8 MOVEA MOVEA RW3 RW3,RW4 ,@RW4+d8 MOVEA MOVEA RW3 RW3,RW3 ,@RW3+d8 MOVEA MOVEA RW3 RW3,RW2 ,@RW2+d8 MOVEA MOVEA RW3 RW3,RW1 ,@RW1+d8 MOVEA MOVEA RW3 RW3,RW0 ,@RW0+d8 60 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW0+ ,@RW0+RW7 RW1,@RW0+ ,@RW0+RW7 RW2,@RW0+ ,@RW0+RW7 RW3,@RW0+ ,@RW0+RW7 RW4,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW2 RW2,@RW3 ,@RW3+d16 MOVEA MOVEA RW2 RW2,@RW2 ,@RW2+d16 MOVEA MOVEA RW2 RW2,@RW1 ,@RW1+d16 MOVEA MOVEA RW2 RW2,@RW0 ,@RW0+d16 MOVEA MOVEA RW2 RW2,RW7 ,@RW7+d8 MOVEA MOVEA RW2 RW2,RW6 ,@RW6+d8 MOVEA MOVEA RW2 RW2,RW5 ,@RW5+d8 MOVEA MOVEA RW2 RW2,RW4 ,@RW4+d8 MOVEA MOVEA RW2 RW2,RW3 ,@RW3+d8 MOVEA MOVEA RW2 RW2,RW2 ,@RW2+d8 MOVEA MOVEA RW2 RW2,RW1 ,@RW1+d8 MOVEA MOVEA RW2 RW2,RW0 ,@RW0+d8 40 +C +B RW0,@RW3 ,@RW3+d16 +A RW0,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,RW1 ,@RW1+d8 MOVEA MOVEA RW0 RW0,RW1 ,@RW1+d8 +1 30 MOVEA MOVEA RW1 RW1,RW0 ,@RW0+d8 20 MOVEA MOVEA RW0 RW0,RW0 ,@RW0+d8 10 +0 00 付録 表 B.9-15 MOVEA RWi, ea 命令 ( 第 1 バイト =79H) MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 +C +D +E +F +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 MOV +A R0,@RW2 @RW2+d16 R1,@RW2 @RW2+d16 R2,@RW2 @RW2+d16 R3,@RW2 @RW2+d16 R4,@RW2 @RW2+d16 R5,@RW2 @RW2+d16 R6,@RW2 @RW2+d16 R7,@RW2 @RW2+d16 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 MOV R0, MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH) 511 512 MOVW MOVW RW2, RW2,@RW0 @RW0+d16 MOVW MOVW RW2, RW2,@RW1 @RW1+d16 MOVW MOVW RW2, RW2,@RW2 @RW2+d16 MOVW MOVW RW2, RW2,@RW3 @RW3+d16 MOVW MOVW RW1, RW1, RW6 @RW6+d8 MOVW MOVW RW1, RW1, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 MOVW MOVW MOVW MOVW RW1, MOVW MOVW RW2, MOVW MOVW RW3, MOVW MOVW RW4, MOVW MOVW RW5, MOVW MOVW RW6, MOVW MOVW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 MOVW MOVW RW1, @RW3+ RW1, addr16 MOVW MOVW RW0, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 MOVW MOVW RW1, RW1, @RW2+ @PC+d16 MOVW MOVW RW0, RW6 @RW6+d8 MOVW RW0, @RW1+ MOVW MOVW RW0, @RW2+ @PC+d16 MOVW MOVW RW0, @RW3+ RW0, addr16 +6 +7 +8 +9 +A +B +C +D +E +F MOVW MOVW @RW1+RW7 RW1, @RW1+ MOVW MOVW RW2, RW2, RW7 @RW7+d8 MOVW MOVW RW1, RW1, RW5 @RW5+d8 MOVW MOVW RW0, RW5 @RW5+d8 +5 MOVW MOVW RW2, @RW3+ RW2, addr16 MOVW MOVW RW3, @RW3+ RW3, addr16 MOVW MOVW RW3, RW3, @RW2+ @PC+d16 MOVW MOVW RW4, @RW3+ RW4, addr16 MOVW MOVW RW4, RW4, @RW2+ @PC+d16 MOVW MOVW RW5, @RW3+ RW5, addr16 MOVW MOVW RW5, @RW2+ @PC+d16 MOVW MOVW RW6, @RW3+ RW6, addr16 MOVW MOVW RW6, RW6, @RW2+ @PC+d16 MOVW MOVW RW7, @RW3+ RW7, addr16 MOVW MOVW RW7, RW7, @RW2+ @PC+d16 MOVW RW7, @RW1+RW7 MOVW MOVW RW7, RW7,@RW3 @RW3+d16 MOVW MOVW RW7, RW7,@RW2 @RW2+d16 MOVW MOVW RW7, RW7,@RW1 @RW1+d16 MOVW MOVW RW7, RW7,@RW0 @RW0+d16 MOVW MOVW RW7, RW7, RW7 @RW7+d8 MOVW MOVW RW7, RW7, RW6 @RW6+d8 MOVW MOVW RW7, RW7, RW5 @RW5+d8 MOVW MOVW RW7, RW7, RW4 @RW4+d8 MOVW MOVW RW7, RW7, RW3 @RW3+d8 MOVW RW6, MOVW @RW1+RW7 RW7, @RW1+ MOVW MOVW RW6, RW6,@RW3 @RW3+d16 MOVW MOVW RW6, RW6,@RW2 @RW2+d16 MOVW MOVW RW6, RW6,@RW1 @RW1+d16 MOVW MOVW RW6, RW6,@RW0 @RW0+d16 MOVW MOVW RW6, RW6, RW7 @RW7+d8 MOVW MOVW RW6, RW6, RW6 @RW6+d8 MOVW MOVW RW6, RW6, RW5 @RW5+d8 MOVW MOVW RW6, RW6, RW4 @RW4+d8 MOVW MOVW RW6, RW6, RW3 @RW3+d8 MOVW MOVW @RW1+RW7 RW6, @RW1+ MOVW MOVW RW5, RW5,@RW3 @RW3+d16 MOVW MOVW RW5, RW5,@RW2 @RW2+d16 MOVW MOVW RW5, RW5,@RW1 @RW1+d16 MOVW MOVW RW5, RW5,@RW0 @RW0+d16 MOVW MOVW RW5, RW5, RW7 @RW7+d8 MOVW MOVW RW5, RW5, RW6 @RW6+d8 MOVW MOVW RW5, RW5, RW5 @RW5+d8 MOVW MOVW RW5, RW5, RW4 @RW4+d8 MOVW RW4, MOVW @RW1+RW7 RW5, @RW1+ MOVW MOVW RW4, RW4,@RW3 @RW3+d16 MOVW MOVW RW4, RW4,@RW2 @RW2+d16 MOVW MOVW RW4, RW4,@RW1 @RW1+d16 MOVW MOVW RW4, RW4,@RW0 @RW0+d16 MOVW MOVW RW4, RW4, RW7 @RW7+d8 MOVW MOVW RW4, RW4, RW6 @RW6+d8 MOVW MOVW RW4, RW4, RW5 @RW5+d8 MOVW MOVW RW4, RW4, RW4 @RW4+d8 MOVW RW3, MOVW @RW1+RW7 RW4, @RW1+ MOVW MOVW RW3, RW3,@RW3 @RW3+d16 MOVW MOVW RW3, RW3,@RW2 @RW2+d16 MOVW MOVW RW3, RW3,@RW1 @RW1+d16 MOVW MOVW RW3, RW3,@RW0 @RW0+d16 MOVW MOVW RW3, RW3, RW7 @RW7+d8 MOVW MOVW RW3, RW3, RW6 @RW6+d8 MOVW MOVW RW3, RW3, RW5 @RW5+d8 MOVW MOVW RW3, RW3, RW4 @RW4+d8 MOVW RW2, MOVW @RW1+RW7 RW3, @RW1+ MOVW MOVW RW2, RW2, @RW2+ @PC+d16 MOVW RW1, MOVW @RW1+RW7 RW2, @RW1+ MOVW MOVW RW2, RW2, RW6 @RW6+d8 MOVW MOVW RW2, RW2, RW5 @RW5+d8 MOVW MOVW RW2, RW2, RW4 @RW4+d8 MOVW MOVW RW5, RW5, RW3 @RW3+d8 MOVW MOVW RW7, RW7, RW2 @RW2+d8 MOVW MOVW RW7, RW7, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW4 @RW4+d8 MOVW MOVW RW4, RW4, RW3 @RW3+d8 MOVW MOVW RW6, RW6, RW2 @RW2+d8 MOVW MOVW RW6, RW6, RW1 @RW1+d8 MOVW MOVW RW0, RW4 @RW4+d8 MOVW MOVW RW3, RW3, RW3 @RW3+d8 MOVW MOVW RW5, RW5, RW2 @RW2+d8 MOVW MOVW RW5, RW5, RW1 @RW1+d8 +4 MOVW MOVW RW2, RW2, RW3 @RW3+d8 MOVW MOVW RW4, RW4, RW2 @RW2+d8 MOVW MOVW RW4, RW4, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW3 @RW3+d8 MOVW MOVW RW3, RW3, RW2 @RW2+d8 MOVW MOVW RW3, RW3, RW1 @RW1+d8 MOVW MOVW RW0, RW3 @RW3+d8 MOVW MOVW RW2, RW2, RW2 @RW2+d8 MOVW MOVW RW2, RW2, RW1 @RW1+d8 +3 F0 MOVW MOVW RW7, RW7, RW0 @RW0+d8 E0 MOVW MOVW RW1, RW1, RW2 @RW2+d8 D0 MOVW MOVW RW6, RW6, RW0 @RW0+d8 C0 MOVW MOVW RW0, RW2 @RW2+d8 B0 MOVW MOVW RW5, RW5, RW0 @RW0+d8 A0 +2 90 MOVW MOVW RW4, RW4, RW0 @RW0+d8 80 MOVW MOVW RW1, RW1, RW1 @RW1+d8 70 MOVW MOVW RW3, RW3, RW0 @RW0+d8 60 MOVW MOVW RW0, RW1 @RW1+d8 50 MOVW MOVW RW2, RW2, RW0 @RW0+d8 40 +1 30 MOVW MOVW RW1, RW1, RW0 @RW0+d8 20 MOVW MOVW RW0, RW0 @RW0+d8 10 +0 00 付録 表 B.9-17 MOVW RWi, ea 命令 ( 第 1 バイト =7BH) +F +E +D +C +B +A +9 +8 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3, R1 @RW3+d16, R1 MOV @RW2, R1 @RW2+d16, R1 MOV @RW1, R1 @RW1+d16, R1 MOV @RW0, R1 @RW0+d16, R1 MOV MOV MOV MOV MOV MOV MOV @RW3, R2 @RW3+d16, R2 MOV @RW2, R2 @RW2+d16, R2 MOV @RW1, R2 @RW1+d16, R2 MOV @RW0, R2 @RW0+d16, R2 MOV MOV MOV MOV MOV MOV MOV @RW3, R3 @RW3+d16, R3 MOV @RW2, R3 @RW2+d16, R3 MOV @RW1, R3 @RW1+d16, R3 MOV @RW0, R3 @RW0+d16, R3 MOV MOV MOV MOV MOV MOV MOV @RW3, R4 @RW3+d16, R4 MOV @RW2, R4 @RW2+d16, R4 MOV @RW1, R4 @RW1+d16, R4 MOV @RW0, R4 @RW0+d16, R4 MOV MOV MOV MOV MOV MOV MOV @RW3, R5 @RW3+d16, R5 MOV @RW2, R5 @RW2+d16, R5 MOV @RW1, R5 @RW1+d16, R5 MOV @RW0, R5 @RW0+d16, R5 MOV MOV MOV MOV MOV MOV MOV @RW3, R6 @RW3+d16, R6 MOV @RW2, R6 @RW2+d16, R6 MOV @RW1, R6 @RW1+d16, R6 MOV @RW0, R6 @RW0+d16, R6 MOV MOV MOV MOV MOV MOV MOV @RW3, R7 @RW3+d16, R7 MOV @RW2, R7 @RW2+d16, R7 MOV @RW1, R7 @RW1+d16, R7 MOV @RW0, R7 @RW0+d16, R7 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3+, R0 addr16, R0 MOV @RW3+, R1 addr16, R1 MOV MOV MOV MOV MOV @RW2+, R1 @PC+d16, R1 MOV @RW2+, R0 @PC+d16, R0 MOV MOV MOV @RW3+, R2 addr16, R2 MOV @RW2+, R2 @PC+d16, R2 MOV MOV MOV @RW3+, R3 addr16, R3 MOV @RW2+, R3 @PC+d16, R3 MOV MOV MOV @RW3+, R4 addr16, R4 MOV @RW2+, R4 @PC+d16, R4 MOV MOV MOV @RW3+, R5 addr16, R5 MOV @RW2+, R5 @PC+d16, R5 MOV MOV MOV @RW3+, R6 addr16, R6 MOV @RW2+, R6 @PC+d16, R6 MOV MOV MOV @RW3+, R7 addr16, R7 MOV @RW2+, R7 @PC+d16, R7 MOV @RW1+, R0 @RW1+RW7, R0 @RW1+, R1 @RW1+RW7, R1 @RW1+, R2 @RW1+RW7, R2 @RW1+, R3 @RW1+RW7, R3 @RW1+, R4 @RW1+RW7, R4 @RW1+, R5 @RW1+RW7, R5 @RW1+, R6 @RW1+RW7, R6 @RW1+, R7 @RW1+RW7, R7 MOV @RW0+, R0 @RW0+RW7, R0 @RW0+, R1 @RW0+RW7, R1 @RW0+, R2 @RW0+RW7, R2 @RW0+, R3 @RW0+RW7, R3 @RW0+, R4 @RW0+RW7, R4 @RW0+, R5 @RW0+RW7, R5 @RW0+, R6 @RW0+RW7, R6 @RW0+, R7 @RW0+RW7, R7 MOV @RW3, R0 @RW3+d16, R0 MOV @RW2, R0 @RW2+d16, R0 MOV @RW1, R0 @RW1+d16, R0 MOV @RW0, R0 @RW0+d16, R0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R7, R0 @RW7+d8, R0 R7, R1 @RW7+d8, R1 R7, R2 @RW7+d8, R2 R7, R3 @RW7+d8, R3 R7, R4 @RW7+d8, R4 R7, R5 @RW7+d8, R5 R7, R6 @RW7+d8, R6 R7, R7 @RW7+d8, R7 F0 +7 E0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R6, R0 @RW6+d8, R0 R6, R1 @RW6+d8, R1 R6, R2 @RW6+d8, R2 R6, R3 @RW6+d8, R3 R6, R4 @RW6+d8, R4 R6, R5 @RW6+d8, R5 R6, R6 @RW6+d8, R6 R6, R7 @RW6+d8, R7 D0 +6 C0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R5, R0 @RW5+d8, R0 R5, R1 @RW5+d8, R1 R5, R2 @RW5+d8, R2 R5, R3 @RW5+d8, R3 R5, R4 @RW5+d8, R4 R5, R5 @RW5+d8, R5 R5, R6 @RW5+d8, R6 R5, R7 @RW5+d8, R7 B0 +5 A0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R4, R0 @RW4+d8, R0 R4, R1 @RW4+d8, R1 R4, R2 @RW4+d8, R2 R4, R3 @RW4+d8, R3 R4, R4 @RW4+d8, R4 R4, R5 @RW4+d8, R5 R4, R6 @RW4+d8, R6 R4, R7 @RW4+d8, R7 90 +4 80 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R3, R0 @RW3+d8, R0 R3, R1 @RW3+d8, R1 R3, R2 @RW3+d8, R2 R3, R3 @RW3+d8, R3 R3, R4 @RW3+d8, R4 R3, R5 @RW3+d8, R5 R3, R6 @RW3+d8, R6 R3, R7 @RW3+d8, R7 70 +3 60 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R2, R0 @RW2+d8, R0 R2, R1 @RW2+d8, R1 R2, R2 @RW2+d8, R2 R2, R3 @RW2+d8, R3 R2, R4 @RW2+d8, R4 R2, R5 @RW2+d8, R5 R2, R6 @RW2+d8, R6 R2, R7 @RW2+d8, R7 50 +2 40 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R1, R0 @RW1+d8, R0 R1, R1 @RW1+d8, R1 R1, R2 @RW1+d8, R2 R1, R3 @RW1+d8, R3 R1, R4 @RW1+d8, R4 R1, R5 @RW1+d8, R5 R1, R6 @RW1+d8, R6 R1, R7 @RW1+d8, R7 30 +1 20 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R0, R0 @RW0+d8, R0 R0, R1 @RW0+d8, R1 R0, R2 @RW0+d8, R2 R0, R3 @RW0+d8, R3 R0, R4 @RW0+d8, R4 R0, R5 @RW0+d8, R5 R0, R6 @RW0+d8, R6 R0, R7 @RW0+d8, R7 10 +0 00 付録 B 命令 表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH) 513 514 MOVW MOVW@RW2 @RW2, RW1 +d16, RW1 MOVW MOVW@RW3 @RW3, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0+, RW1 +RW7,RW1 MOVW MOVW@RW1 @RW1+, RW1 +RW7,RW1 MOVW MOVW@PC @RW2+, RW1 +d16, RW1 MOVW MOVW @RW3+, RW1 addr16, RW1 MOVW MOVW@RW2 @RW2, RW0 +d16, RW0 MOVW MOVW@RW3 @RW3, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0+, RW0 +RW7,RW0 MOVW MOVW@RW1 @RW1+, RW0 +RW7,RW0 MOVW MOVW@PC @RW2+, RW0 +d16, RW0 MOVW MOVW @RW3+, RW0 addr16, RW0 +B +C +D +E +F MOVW MOVW @RW3+, RW2 addr16, RW2 MOVW MOVW@PC @RW2+, RW2 +d16, RW2 MOVW MOVW@RW1 @RW1+, RW2 +RW7,RW2 MOVW MOVW@RW0 @RW0+, RW2 +RW7,RW2 MOVW MOVW@RW3 @RW3, RW2 +d16, RW2 MOVW MOVW@RW2 @RW2, RW2 +d16, RW2 MOVW MOVW @RW3+, RW3 addr16, RW3 MOVW MOVW@PC @RW2+, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1+, RW3 -+RW7,RW3 MOVW MOVW@RW0 @RW0+, RW3 +RW7,RW3 MOVW MOVW@RW3 @RW3, RW3 +d16, RW3 MOVW MOVW@RW2 @RW2, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1, RW3 +d16, RW3 MOVW MOVW @RW3+, RW4 addr16, RW4 MOVW MOVW@PC @RW2+, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1+, RW4 +RW7,RW4 MOVW MOVW@RW0 @RW0+, RW4 +RW7,RW4 MOVW MOVW@RW3 @RW3, RW4 +d16, RW4 MOVW MOVW@RW2 @RW2, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1, RW4 +d16, RW4 MOVW MOVW @RW3+, RW5 addr16, RW5 MOVW MOVW@PC @RW2+, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1+, RW5 +RW7,RW5 MOVW MOVW@RW0 @RW0+, RW5 +RW7,RW5 MOVW MOVW@RW3 @RW3, RW5 +d16, RW5 MOVW MOVW@RW2 @RW2, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW5 +d16, RW5 MOVW MOVW @RW3+, RW6 addr16, RW6 MOVW MOVW @PC @RW2+, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1+, RW6 +RW7,RW6 MOVW MOVW@RW0 @RW0+, RW6 +RW7,RW6 MOVW MOVW@RW3 @RW3, RW6 +d16, RW6 MOVW MOVW@RW2 @RW2, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW6 +d16, RW6 MOVW MOVW @RW3+, RW7 addr16, RW7 MOVW MOVW@PC @RW2+, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1+, RW7 +RW7,RW7 MOVW MOVW@RW0 @RW0+, RW7 +RW7,RW7 MOVW MOVW@RW3 @RW3, RW7 +d16, RW7 MOVW MOVW@RW2 @RW2, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1, RW7 +d16, RW7 MOVW MOVW@RW0 @RW0, RW7 +d16, RW7 +A MOVW MOVW@RW1 @RW1, RW2 +d16, RW2 MOVW MOVW@RW0 @RW0, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0, RW4 +d16, RW4 +9 MOVW MOVW@RW0 @RW0, RW3 +d16, RW3 MOVW MOVW@RW0 @RW0, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW0 +d16, RW0 +8 MOVW MOVW@RW0 @RW0, RW2 +d16, RW2 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW7, RW0 @RW7+d8, RW0 RW7, RW1 @RW7+d8, RW1 RW7, RW2 @RW7+d8, RW2 RW7, RW3 @RW7+d8, RW3 RW7, RW4 @RW7+d8, RW4 RW7, RW5 @RW7+d8, RW5 RW7, RW6 @RW7+d8, RW6 RW7, RW7 @RW7+d8, RW7 F0 +7 E0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW6, RW0 @RW6+d8, RW0 RW6, RW1 @RW6+d8, RW1 RW6, RW2 @RW6+d8, RW2 RW6, RW3 @RW6+d8, RW3 RW6, RW4 @RW6+d8, RW4 RW6, RW5 @RW6+d8, RW5 RW6, RW6 @RW6+d8, RW6 RW6, RW7 @RW6+d8, RW7 D0 +6 C0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW5, RW0 @RW5+d8, RW0 RW5, RW1 @RW5+d8, RW1 RW5, RW2 @RW5+d8, RW2 RW5, RW3 @RW5+d8, RW3 RW5, RW4 @RW5+d8, RW4 RW5, RW5 @RW5+d8, RW5 RW5, RW6 @RW5+d8, RW6 RW5, RW7 @RW5+d8, RW7 B0 +5 A0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW4, RW0 @RW4+d8, RW0 RW4, RW1 @RW4+d8, RW1 RW4, RW2 @RW4+d8, RW2 RW4, RW3 @RW4+d8, RW3 RW4, RW4 @RW4+d8, RW4 RW4, RW5 @RW4+d8, RW5 RW4, RW6 @RW4+d8, RW6 RW4, RW7 @RW4+d8, RW7 90 +4 80 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW3, RW0 @RW3+d8, RW0 RW3, RW1 @RW3+d8, RW1 RW3, RW2 @RW3+d8, RW2 RW3, RW3 @RW3+d8, RW3 RW3, RW4 @RW3+d8, RW4 RW3, RW5 @RW3+d8, RW5 RW3, RW6 @RW3+d8, RW6 RW3, RW7 @RW3+d8, RW7 70 +3 60 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW2, RW0 @RW2+d8, RW0 RW2, RW1 @RW2+d8, RW1 RW2, RW2 @RW2+d8, RW2 RW2, RW3 @RW2+d8, RW3 RW2, RW4 @RW2+d8, RW4 RW2, RW5 @RW2+d8, RW5 RW2, RW6 @RW2+d8, RW6 RW2, RW7 @RW2+d8, RW7 50 +2 40 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW1, RW0 @RW1+d8, RW0 RW1, RW1 @RW1+d8, RW1 RW1, RW2 @RW1+d8, RW2 RW1, RW3 @RW1+d8, RW3 RW1, RW4 @RW1+d8, RW4 RW1, RW5 @RW1+d8, RW5 RW1, RW6 @RW1+d8, RW6 RW1, RW7 @RW1+d8, RW7 30 +1 20 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW0, RW0 @RW0+d8, RW0 RW0, RW1 @RW0+d8, RW1 RW0, RW2 @RW0+d8, RW2 RW0, RW3 @RW0+d8, RW3 RW0, RW4 @RW0+d8, RW4 RW0, RW5 @RW0+d8, RW5 RW0, RW6 @RW0+d8, RW6 RW0, RW7 @RW0+d8, RW7 10 +0 00 付録 表 B.9-19 MOVW RWi, ea 命令 ( 第 1 バイト =7DH) XCH XCH XCH XCH R1, XCH XCH R1, R1,@RW2 W2+d16, A XCH XCH R2, XCH XCH R2, R2,@RW2 W2+d16, A XCH XCH R3, XCH XCH R3, R3,@RW2 W2+d16, A XCH XCH R4, XCH XCH R4, R4,@RW2 W2+d16, A XCH XCH R5, XCH XCH R5, R5,@RW2 W2+d16, A XCH XCH R6, XCH XCH R6, R6,@RW2 W2+d16, A XCH XCH R7, XCH XCH R7, R7,@RW2 W2+d16, A XCH XCH XCH XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, +F R0,@RW3+ R0, addr16 XCH XCH R1,@RW3+ R1, addr16 XCH XCH R2,@RW3+ R2, addr16 XCH XCH R3,@RW3+ R3, addr16 XCH XCH R4,@RW3+ R4, addr16 XCH XCH R5,@RW3+ R5, addr16 XCH XCH R6,@RW3+ R6, addr16 XCH XCH R7,@RW3+ R7, addr16 +E R0,@RW2+ @PC+d16 R1,@RW2+ @PC+d16 R2,@RW2+ @PC+d16 R3,@RW2+ @PC+d16 R4,@RW2+ @PC+d16 R5,@RW2+ @PC+d16 R6,@RW2+ @PC+d16 R7,@RW2+ @PC+d16 R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW1+RW7 R1,@RW1+ @RW1+RW7 R2,@RW1+ @RW1+RW7 R3,@RW1+ @RW1+RW7 R4,@RW1+ @RW1+RW7 R5,@RW1+ @RW1+RW7 R6,@RW1+ @RW1+RW7 R7,@RW1+ @RW1+RW7 +D R0,@RW1+ XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW0+RW7 R1,@RW0+ @RW0+RW7 R2,@RW0+ @RW0+RW7 R3,@RW0+ @RW0+RW7 R4,@RW0+ @RW0+RW7 R5,@RW0+ @RW0+RW7 R6,@RW0+ @RW0+RW7 R7,@RW0+ @RW0+RW7 XCH +C R0,@RW0+ +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 R0, +A R0,@RW2 W2+d16, A R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-20 XCH Ri, ea 命令 ( 第 1 バイト =7EH) 515 516 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2+ @PC+d16 RW1,@RW2+ @PC+d16 RW2,@RW2+ @PC+d16 RW3,@RW2+ @PC+d16 RW4,@RW2+ @PC+d16 RW5,@RW2+ @PC+d16 RW6,@RW2+ @PC+d16 RW7,@RW2+ @PC+d16 XCHW XCHW RW0,@RW3+ RW0, addr16 +E +F XCHW XCHW RW7,@RW3+ RW7, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1+ @RW1+RW7 RW1,@RW1+ @RW1+RW7 RW2,@RW1+ @RW1+RW7 RW3,@RW1+ @RW1+RW7 RW4,@RW1+ @RW1+RW7 RW5,@RW1+ @RW1+RW7 RW6,@RW1+ @RW1+RW7 RW7,@RW1+ @RW1+RW7 +D XCHW XCHW RW6,@RW3+ RW6, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 +C XCHW XCHW RW5,@RW3+ RW5, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 RW2,@RW3 @RW3+d16 RW3,@RW3 @RW3+d16 RW4,@RW3 @RW3+d16 RW5,@RW3 @RW3+d16 RW6,@RW3 @RW3+d16 RW7,@RW3 @RW3+d16 +B XCHW XCHW RW4,@RW3+ RW4, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 RW2,@RW2 @RW2+d16 RW3,@RW2 @RW2+d16 RW4,@RW2 @RW2+d16 RW5,@RW2 @RW2+d16 RW6,@RW2 @RW2+d16 RW7,@RW2 @RW2+d16 +A XCHW XCHW RW3,@RW3+ RW3, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 RW2,@RW1 @RW1+d16 RW3,@RW1 @RW1+d16 RW4,@RW1 @RW1+d16 RW5,@RW1 @RW1+d16 RW6,@RW1 @RW1+d16 RW7,@RW1 @RW1+d16 +9 XCHW XCHW RW2,@RW3+ RW2, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 RW2,@RW0 @RW0+d16 RW3,@RW0 @RW0+d16 RW4,@RW0 @RW0+d16 RW5,@RW0 @RW0+d16 RW6,@RW0 @RW0+d16 RW7,@RW0 @RW0+d16 +8 XCHW XCHW RW1,@RW3+ RW1, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW7 @RW7+d8 RW1, RW7 @RW7+d8 RW2, RW7 @RW7+d8 RW3, RW7 @RW7+d8 RW4, RW7 @RW7+d8 RW5, RW7 @RW7+d8 RW6, RW7 @RW7+d8 RW7, RW7 @RW7+d8 F0 +7 E0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW6 @RW6+d8 RW1, RW6 @RW6+d8 RW2, RW6 @RW6+d8 RW3, RW6 @RW6+d8 RW4, RW6 @RW6+d8 RW5, RW6 @RW6+d8 RW6, RW6 @RW6+d8 RW7, RW6 @RW6+d8 D0 +6 C0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW5 @RW5+d8 RW1, RW5 @RW5+d8 RW2, RW5 @RW5+d8 RW3, RW5 @RW5+d8 RW4, RW5 @RW5+d8 RW5, RW5 @RW5+d8 RW6, RW5 @RW5+d8 RW7, RW5 @RW5+d8 B0 +5 A0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW4 @RW4+d8 RW1, RW4 @RW4+d8 RW2, RW4 @RW4+d8 RW3, RW4 @RW4+d8 RW4, RW4 @RW4+d8 RW5, RW4 @RW4+d8 RW6, RW4 @RW4+d8 RW7, RW4 @RW4+d8 90 +4 80 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW3 @RW3+d8 RW1, RW3 @RW3+d8 RW2, RW3 @RW3+d8 RW3, RW3 @RW3+d8 RW4, RW3 @RW3+d8 RW5, RW3 @RW3+d8 RW6, RW3 @RW3+d8 RW7, RW3 @RW3+d8 70 +3 60 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW2 @RW2+d8 RW1, RW2 @RW2+d8 RW2, RW2 @RW2+d8 RW3, RW2 @RW2+d8 RW4, RW2 @RW2+d8 RW5, RW2 @RW2+d8 RW6, RW2 @RW2+d8 RW7, RW2 @RW2+d8 50 +2 40 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW1 @RW1+d8 RW1, RW1 @RW1+d8 RW2, RW1 @RW1+d8 RW3, RW1 @RW1+d8 RW4, RW1 @RW1+d8 RW5, RW1 @RW1+d8 RW6, RW1 @RW1+d8 RW7, RW1 @RW1+d8 30 +1 20 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW0 @RW0+d8 RW1, RW0 @RW0+d8 RW2, RW0 @RW0+d8 RW3, RW0 @RW0+d8 RW4, RW0 @RW0+d8 RW5, RW0 @RW0+d8 RW6, RW0 @RW0+d8 RW7, RW0 @RW0+d8 10 +0 00 付録 表 B.9-21 XCHW RWi, ea 命令 ( 第 1 バイト =7FH) 索引 索引 Numerics A 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) .........................202 16 ビット入出力タイマ 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................175 16 ビット入出力タイマのレジスタ ....................176 16 ビットフリーランタイマ 16 ビットフリーランタイマ ................................174 16 ビットフリーランタイマのタイミング ........182 16 ビットフリーランタイマの動作 ....................181 16 ビットフリーランタイマの ブロックダイヤグラム ..................................177 16 ビットリロードタイマ 16 ビットリロードタイマ ( イベントカウン ト機能付 ) の概要 ...........................................196 16 ビットリロードタイマのアンダフロー動作 ..........................................................................205 16 ビットリロードタイマの出力端子機能 ........206 16 ビットリロードタイマの内部クロック動作 ..........................................................................203 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................203 16 ビットリロードタイマの ブロックダイヤグラム ..................................196 16 ビットリロードタイマのレジスタ ................198 16 ビットリロードレジスタ 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) .........................202 1M ビットフラッシュメモリ 1M ビットフラッシュメモリのセクタ構成 ......405 1M ビットフラッシュメモリの特長 ..................404 1M ビットフラッシュメモリのプログラム例 ..........................................................................431 24 ビットオペランド指定 24 ビットオペランド指定 ......................................25 32 ビットレジスタ間接指定 32 ビットレジスタ間接指定 ..................................25 8/16 ビット PPG 8/16 ビット PPG のカウントクロックの選択 ..........................................................................223 8/16 ビット PPG の各ハードウェアの初期値 ..........................................................................226 8/16 ビット PPG の機能 .......................................210 8/16 ビット PPG の出力動作 ...............................222 8/16 ビット PPG の動作 .......................................221 8/16 ビット PPG の動作モード ...........................221 8/16 ビット PPG のパルスの端子出力の制御 ..........................................................................224 8/16 ビット PPG のブロックダイヤグラム .......211 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................222 8/16 ビット PPG のレジスタ ...............................213 8/16 ビット PPG の割込み ...................................225 A/D コントロールステータスレジスタ A/D コントロールステータスレジスタ (ADCS0) ..........................................................................248 A/D コントロールステータスレジスタ (ADCS1) ..........................................................................251 A/D コンバータ A/D コンバータの特長 ........................................ 244 A/D コンバータのブロックダイヤグラム ........246 A/D コンバータのレジスタ一覧 ........................ 247 ADCR0,ADCR1 データレジスタ (ADCR0,ADCR1) .....................253 ADCS0 A/D コントロールステータスレジスタ (ADCS0) ..........................................................................248 ADCS1 A/D コントロールステータスレジスタ (ADCS1) ........................................................................... 251 ADER アナログ入力許可レジスタ (ADER) .................. 153 AMR アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................364 AMSR アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................363 ARSR 自動レディ機能選択レジスタ (ARSR) ..............133 B BTR ビットタイミングレジスタ (BTR) .....................349 BVALR メッセージバッファ有効レジスタ (BVALR) ..........................................................................351 BVAL ビット BVAL ビットによるメッセージバッファ禁止時の 注意 .................................................................. 388 C CAN2 RX/TX 端子切換えレジスタ CAN2 RX/TX 端子切換えレジスタ (CANSWR) ..........................................................................387 CANSWR CAN2 RX/TX 端子切換えレジスタ (CANSWR) ..........................................................................387 CAN コントローラ CAN コントローラの受信フローチャート ....... 378 CAN コントローラの送信の開始 .......................372 CAN コントローラの送信の完了 .......................373 CAN コントローラの送信フローチャート ....... 373 CAN コントローラの送信要求の解除 ............... 372 CAN コントローラの特長 ................................... 330 517 索引 CAN コントローラのブロックダイヤグラム ..........................................................................331 CKSCR クロック選択レジスタ (CKSCR) ..........................76 CLK 同期 CLK 同期ボーレート ............................................275 CLK 同期ボーレート CLK 同期ボーレートの転送データフォーマット ..........................................................................303 CLK 同期モード CLK 同期モードの通信開始 ................................304 CLK 同期モードの通信終了 ................................304 CLK 同期モードを使用する場合の 各制御レジスタの設定値 ..............................303 CLK 非同期ボーレート CLK 非同期ボーレート ........................................275 CPU CPU の概要 ..............................................................22 CPU 間欠動作モード CPU 間欠動作モード ........................................87, 94 CPU 動作モード CPU 動作モードと消費電流 ..................................86 CSR 制御ステータスレジスタ (CSR) .........................342 D DDR ポート方向レジスタ (DDR) ................................151 DIRR 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) .......231 DLCRx DLC レジスタ x(x=0 ∼ 15)(DLCRx) ..................369 DLC レジスタ DLC レジスタ x(x=0 ∼ 15)(DLCRx) ..................369 メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................337 DTP DTP の動作 ............................................................238 DTP/ 外部割込み DTP/ 外部割込みの概要 .......................................234 DTP/ 外部割込みの使用上の注意 .......................241 DTP/ 外部割込みのブロックダイヤグラム .......234 DTP/ 外部割込みのレジスタ ...............................234 DTP/ 割込み許可レジスタ DTP/ 割込み許可レジスタ (ENIR:Interrupt request enable register) ..................................................235 DTP/ 割込み要因レジスタ DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) ................................................235 DTP 要求 DTP 要求と外部割込み要求の切換え ................240 DTRx データレジスタ x(x=0 ∼ 15)(DTRx) ..................370 E ECSR バス制御信号選択レジスタ (ECSR) ...................136 E2PROM E2PROM メモリマップ ........................................396 518 EI2OS EI2OS ステータスレジスタ (ISCS) .......................64 EI2OS を使った変換動作 .....................................257 単発モード時の EI2OS の起動例 ........................ 258 停止モード時の EI2OS の起動例 ........................ 260 連続モード時の EI2OS の起動例 ........................ 259 EIRR DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) ................................................235 ELVR 要求レベル設定レジスタ (ELVR:External level register) .............................................................236 ENIR DTP/ 割込み許可レジスタ (ENIR:Interrupt request enable register) ................................................. 235 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................481 FMCS フラッシュメモリコントロールステータス レジスタ (FMCS) ............................................ 408 FPT-100P-M06 FPT-100P-M06 端子配列図 ......................................7 FPT-100P-M06 パッケージ外形寸法図 ..................6 H HACR 外部アドレス出力制御レジスタ (HACR) ..........135 HALT バス動作停止をセットする条件 (HALT=1) ..........................................................................345 I I/O ポート I/O ポートの概要 ..................................................146 I/O ポートの入力レベル ...................................... 147 I/O ポートのレジスタ一覧 ..................................148 I/O マップ I/O マップ .............................................................. 448 I/O レジスタアドレスポインタ I/O レジスタアドレスポインタ (IOA) ................. 64 ICR 割込み制御レジスタ (ICR) ....................................60 ID ID の設定 ...............................................................379 IDER IDE レジスタ (IDER) ............................................ 352 IDE レジスタ IDE レジスタ (IDER) ............................................ 352 IDRx ID レジスタ x(x=0 ∼ 15)(IDRx) .......................... 367 ID レジスタ ID レジスタ x(x=0 ∼ 15)(IDRx) .......................... 367 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................334 索引 L LEIR ラストイベント表示レジスタ (LEIR) ................346 LPMCR 低消費電力モード制御レジスタ (LPMCR) .........91 RRTRR リモート要求受信レジスタ (RRTRR) ................ 360 RTEC 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................348 S P PACSR プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) ......................393 PADR プログラムアドレス検出レジスタ (PADR0/ PADR1) ............................................................393 PDR ポートデータレジスタ (PDR) .............................149 PILR ポート入力レベル選択レジスタ (PILR) ............150 PLL クロック逓倍率 PLL クロック逓倍率の選択 ..................................81 PLL クロックモード メインクロックモード ,PLL クロックモード , サブクロックモード ........................................80 PPG0/1 クロック選択レジスタ PPG0/1 クロック選択レジスタ (PPG01) ............219 PPG01 PPG0/1 クロック選択レジスタ (PPG01) ............219 PPG0 動作モード制御レジスタ PPG0 動作モード制御レジスタ (PPGC0) ...........214 PPG1 動作モード制御レジスタ PPG1 動作モード制御レジスタ (PPGC1) ...........216 PPGC0 PPG0 動作モード制御レジスタ (PPGC0) ...........214 PPGC1 PPG1 動作モード制御レジスタ (PPGC1) ...........216 PRLL,PRLH リロードレジスタ (PRLL,PRLH) ........................220 PUCR プルアップ制御レジスタ (PUCR) ......................152 プルアップ制御レジスタ (PUCR) の ブロックダイヤグラム ..................................152 R RCR 受信完了レジスタ (RCR) .....................................359 RFWTR リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................355 RIER 受信割込み許可レジスタ (RIER) ........................362 ROMM ROM ミラー機能選択レジスタ (ROMM) ..........401 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................400 ROM ミラー機能選択レジスタ ROM ミラー機能選択レジスタ (ROMM) ..........401 ROVRR 受信オーバランレジスタ (ROVRR) ...................361 SCDCR シリアル I/O プリスケーラ (SCDCR) ................ 318 SCR1 シリアルコントロールレジスタ 1(SCR1) ......... 293 SDR シリアルデータレジスタ (SDR) .........................317 SIDR1 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................295 SMCS シリアルモードコントロールステータスレジスタ (SMCS) .............................................................314 SMR1 シリアルモードレジスタ 1(SMR1) .................... 291 SODR1 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................295 SSP ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) .................. 33 SSR1 シリアルステータスレジスタ 1(SSR1) ..............296 T TBTC タイムベースタイマ制御レジスタ (TBTC) ...... 157 TCANR 送信解除レジスタ (TCANR) ............................... 356 TCR 送信完了レジスタ (TCR) .....................................357 TIER 送信割込み許可レジスタ (TIER) ........................ 358 TMCSR タイマコントロールステータスレジスタ (TMCSR) .......................................................... 199 TMR 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) .........................202 TMRLR 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) .........................202 TREQR 送信要求レジスタ (TREQR) ................................353 TRTRR 送信 RTR レジスタ (TRTRR) ..............................354 519 索引 U あ U1CDCR UART1 プリスケーラコントロールレジスタ (U1CDCR) ........................................................298 UART0 UART0 の動作モード ...........................................274 UART0 の特長 .......................................................264 UART0 のブロックダイヤグラム .......................265 UART0 のレジスタ ...............................................266 UART1 UART1 の応用例 ( モード 1 使用時のシステム 構築例 ) ............................................................309 UART1 のクロック選択 .......................................299 UART1 の使用上の注意 .......................................310 UART1 の通信フローチャート ...........................309 UART1 の動作モード ...........................................299 UART1 の特長 .......................................................288 UART1 のフラグ ...................................................305 UART1 のブロックダイヤグラム .......................289 UART1 のレジスタ一覧 .......................................290 UART1 の割込みとフラグのセットタイミング ..........................................................................306 UART1 の割込み発生要因 ...................................305 UART1 プリスケーラコントロールレジスタ UART1 プリスケーラコントロールレジスタ (U1CDCR) ........................................................298 UIDR0 インプットデータレジスタ 0(UIDR0) とアウト プットデータレジスタ 0(UODR0) ...............271 UMC シリアルモードコントロールレジスタ 0(UMC0) ..........................................................................267 UODR0 インプットデータレジスタ 0(UIDR0) とアウト プットデータレジスタ 0(UODR0) ...............271 URD レート・データレジスタ 0(URD0) ....................272 USP ユーザスタックポインタ (USP) とシステム スタックポインタ (SSP) ..................................33 USR ステータスレジスタ 0(USR0) .............................269 アウトプットコンペア アウトプットコンペア ........................................ 183 アウトプットコンペアのコントロールステータス レジスタ .......................................................... 185 アウトプットコンペアのコンペアレジスタ ..........................................................................184 アウトプットコンペアのタイミング ................ 189 アウトプットコンペアのブロックダイヤグラム ..........................................................................183 アウトプットコンペア ( モジュールごとに 2 チャネル ) ..................................................... 174 アウトプットデータレジスタ インプットデータレジスタ 0(UIDR0) とアウト プットデータレジスタ 0(UODR0) ............... 271 アキュムレータ アキュムレータ (A) ................................................ 32 アクセプタンスフィルタ アクセプタンスフィルタの設定 ........................ 379 アクセプタンスフィルタリング アクセプタンスフィルタリング ........................ 375 アクセプタンスマスク選択レジスタ アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................363 アクセプタンスマスクレジスタ アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................364 アドレス一致検出機能 アドレス一致検出機能のシステム構成例 ........396 アドレス一致検出機能の動作 ............................395 アドレス一致検出機能のブロックダイヤグラム ..........................................................................392 アドレス指定 アドレス指定の方式 .............................................. 23 バンク方式によるアドレス指定 .......................... 26 アドレッシング アドレッシング ....................................................458 間接アドレッシング ............................................ 467 直接アドレッシング ............................................ 460 アナログ入力許可レジスタ アナログ入力許可レジスタ ................................244 アナログ入力許可レジスタ (ADER) .................. 153 W い WDTC ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................163 WTC 時計タイマ制御レジスタ (WTC) ........................169 イベントカウント機能 16 ビットリロードタイマ ( イベントカウント 機能付 ) の概要 ............................................... 196 インターバル割込み タイムベースタイマのインターバル割込み機能 ..........................................................................159 時計タイマのインターバル割込み機能 ............171 インタラプトレベルマスクレジスタ インタラプトレベルマスクレジスタ (ILM) .......36 インテリジェント I/O サービス インテリジェント I/O サービス (EI2OS) 機能と 割込み .............................................................. 196 インプットキャプチャ インプットキャプチャ ........................................ 190 インプットキャプチャ入力タイミング ............193 520 索引 インプットキャプチャの取り込みタイミング例 ..........................................................................193 インプットキャプチャのブロックダイヤグラム ..........................................................................190 インプットキャプチャ ( モジュールごとに 2 チャネル ) .....................................................175 インプットキャプチャコントロールステータスレジ スタ インプットキャプチャコントロールステータス レジスタ ..........................................................191 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ .............191 インプットデータレジスタ インプットデータレジスタ 0(UIDR0) とアウト プットデータレジスタ 0(UODR0) ...............271 う ウォッチドッグカウンタ ウォッチドッグカウンタのクリア .....................165 ウォッチドッグカウンタの停止 .........................165 ウォッチドッグタイマ ウォッチドッグタイマの起動方法 .....................165 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................162 ウォッチドッグタイマのリセット .....................165 ウォッチドッグタイマのレジスタ .....................162 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................163 か 外形寸法図 FPT-100P-M06 パッケージ外形寸法図 ..................6 外部アドレス出力制御レジスタ 外部アドレス出力制御レジスタ (HACR) ..........135 外部イベントカウント 外部イベントカウント .........................................204 外部クロック 振動子と外部クロックの接続 ...............................84 内部クロックおよび外部クロック .....................277 外部シフトクロックモード 外部シフトクロックモード .................................320 外部バス 16 ビットデータバスモード 外部バス 16 ビットデータバスモード時の 端子状態 ..........................................................110 外部バス 8 ビットデータバスモード 外部バス 8 ビットデータバスモード時の 端子状態 ..........................................................111 外部バス端子制御回路 外部メモリアクセス ( 外部バス端子制御回路 ) ..........................................................................131 外部メモリアクセス 外部メモリアクセス ( 外部バス端子制御回路 ) ..........................................................................131 外部メモリアクセスのブロックダイヤグラム ..........................................................................131 外部メモリアクセスのレジスタ一覧 .................132 外部メモリアクセス制御信号 外部メモリアクセス制御信号 .............................139 外部リセット端子 外部リセット端子のブロックダイヤグラム ..........................................................................119 外部割込み 外部割込みの動作 ................................................237 外部割込み要求 DTP 要求と外部割込み要求の切換え ................ 240 カウンタ カウンタの動作状態 ............................................ 207 カウントクロック 8/16 ビット PPG のカウントクロックの選択 ..........................................................................223 拡張インテリジェント I/O サービス 拡張インテリジェント I/O サービス (EI2OS) の 概要 .................................................................... 58 拡張インテリジェント I/O サービス (EI2OS) の 構造 .................................................................... 59 拡張インテリジェント I/O サービス (EI2OS) の 実行時間 ............................................................ 69 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ........................................................67 拡張インテリジェント I/O サービス ディスクリプタ (ISD) ...................................... 63 拡張シリアル I/O インタフェース 拡張シリアル I/O インタフェースの割込み機能 ..........................................................................326 間接アドレッシング 間接アドレッシング ............................................ 467 く クロック クロックの概要 ......................................................72 クロック供給マップ クロック供給マップ .............................................. 73 クロック選択 UART1 のクロック選択 ...................................... 299 クロック選択レジスタ クロック選択レジスタ (CKSCR) .......................... 76 クロック発生部 クロック発生部のブロックダイヤグラム ..........74 クロックモード クロックモード ......................................................87 クロックモードの移行 .......................................... 80 クロックモードの切換え .................................... 113 こ コマンドシーケンス コマンドシーケンス表 ........................................ 410 コモンレジスタバンクプリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................41 コンディションコードレジスタ コンディションコードレジスタ (CCR) ............... 34 コントロールステータスレジスタ アウトプットコンペアのコントロールステータス レジスタ .......................................................... 185 コンペアレジスタ 2 組のコンペアレジスタによる出力波形例 ( 出力の初期値は "0" とする ) ...................... 188 521 索引 コンペアレジスタ 0,1 を使用したときの出力波形 例 ( 出力の初期値は "0" とする ) .................188 さ サブクロックモード メインクロックモード ,PLL クロックモード , サブクロックモード ........................................80 し システムスタックポインタ ユーザスタックポインタ (USP) と システムスタックポインタ (SSP) ..................33 実効アドレス 実効アドレスフィールド .....................................476 実効アドレスフィールド 実効アドレスフィールド .....................................459 実行サイクル 実行サイクル数 .....................................................474 実行サイクル数計算方法 .....................................474 自動レディ機能選択レジスタ 自動レディ機能選択レジスタ (ARSR) ..............133 シフト動作 シフト動作のスタート / ストップタイミング ..........................................................................323 受信エラーカウンタ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................348 受信オーバラン 受信オーバラン .....................................................376 受信オーバランレジスタ 受信オーバランレジスタ (ROVRR) ...................361 受信完了レジスタ 受信完了レジスタ (RCR) .....................................359 受信メッセージ 受信メッセージの記憶 .........................................375 受信割込み許可レジスタ 受信割込み許可レジスタ (RIER) ........................362 状態遷移図 状態遷移図 .............................................................107 消費電流 CPU 動作モードと消費電流 ..................................86 シリアル I/O シリアル I/O の動作 .............................................319 シリアル I/O の動作状態 .....................................321 シリアル I/O のブロックダイヤグラム .............312 シリアル I/O のレジスタ .....................................313 シリアル I/O プリスケーラ シリアル I/O プリスケーラ (SCDCR) ................318 シリアルアウトプットデータレジスタ 1 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................295 シリアルインプットデータレジスタ 1 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................295 シリアル書込み MB90F443G シリアル書込み接続の基本構成 ..........................................................................436 522 シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................439 シリアル書込み接続例 ( ライタから電源供給時 ) ..........................................................................441 シリアルクロック入力周波数 発振クロック周波数とシリアルクロック入力 周波数 .............................................................. 438 シリアルコントロールレジスタ シリアルコントロールレジスタ 1(SCR1) ......... 293 シリアルステータスレジスタ 1 シリアルステータスレジスタ 1(SSR1) ..............296 シリアルデータレジスタ シリアルデータレジスタ (SDR) .........................317 シリアルモードコントロールステータスレジスタ シリアルモードコントロールステータスレジスタ (SMCS) .............................................................314 シリアルモードコントロールレジスタ シリアルモードコントロールレジスタ 0(UMC0) ..........................................................................267 シリアルモードレジスタ 1 シリアルモードレジスタ 1(SMR1) .................... 291 シングルチップモード シングルチップモード時の端子状態 ................ 109 振動子 振動子と外部クロックの接続 ..............................84 す 推奨設定 推奨設定 ................................................................ 130 スタック スタック内へのレジスタの退避 .......................... 52 スタンバイモード スタンバイモード ..................................................87 スタンバイモードの動作状態 ..............................95 スタンバイモードの割込みによる解除 ............112 スタンバイモードへの移行と割込み ................ 112 ステータスフラグ 送信動作時のステータスフラグ ........................ 284 ステータスレジスタ ステータスレジスタ 0(USR0) ............................. 269 ストップモード ストップモード解除時 ........................................ 112 ストップモードの解除 ........................................ 104 ストップモードへの移行 .................................... 104 スリープモード スリープモードの解除 .......................................... 96 スリープモードへの移行 ...................................... 96 せ 制御ステータスレジスタ 制御ステータスレジスタ (CSR) .........................342 製品概要 MB90440G シリーズの製品概要 ............................ 2 セクタ消去 フラッシュメモリのセクタ消去手順 ................ 424 フラッシュメモリのセクタ消去の一時停止 ..........................................................................426 フラッシュメモリのセクタ消去の再開 ............427 フラッシュメモリの任意データの消去 ( セクタ消去 ) ................................................. 424 索引 セクタ消去タイマフラグ セクタ消去タイマフラグ (DQ3) .........................416 全体コントロールレジスタ 全体コントロールレジスタ .................................341 全体コントロールレジスタの一覧 .....................332 専用レジスタ 専用レジスタ ...........................................................29 そ 送信 RTR レジスタ 送信 RTR レジスタ (TRTRR) ..............................354 送信エラーカウンタ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) .............................................................348 送信解除レジスタ 送信解除レジスタ (TCANR) ...............................356 送信完了レジスタ 送信完了レジスタ (TCR) .....................................357 送信要求レジスタ 送信要求レジスタ (TREQR) ................................353 送信割込み許可レジスタ 送信割込み許可レジスタ (TIER) ........................358 ソフトウェア割込み ソフトウェア割込みに関する注意事項 ...............57 ソフトウェア割込みの概要 ...................................56 ソフトウェア割込みの構造 ...................................56 ソフトウェア割込みの動作 ...................................56 た タイマカウンタデータレジスタ タイマカウンタデータレジスタ .........................178 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ .........179 タイマコントロールステータスレジスタ (TMCSR) ..........................................................199 タイミングリミット超過フラグ タイミングリミット超過フラグ (DQ5) .............415 タイムベースタイマ タイムベースタイマ .............................................159 タイムベースタイマのインターバル割込み機能 ..........................................................................159 タイムベースタイマのブロックダイヤグラム ..........................................................................156 タイムベースタイマのレジスタ .........................156 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタ (TBTC) ..........................................................................157 タイムベースタイマモード タイムベースタイマモードの解除 .....................100 タイムベースタイマモードへの移行 ...................99 多重割込み 多重割込み ...............................................................52 多バイト長データ 多バイト長データのアクセス ...............................28 メモリ空間における多バイト長データの配置 ............................................................................28 端子機能説明 端子機能説明 .............................................................8 端子状態 外部バス 16 ビットデータバスモード時の 端子状態 .......................................................... 110 外部バス 8 ビットデータバスモード時の 端子状態 .......................................................... 111 シングルチップモード時の端子状態 ................ 109 端子配列図 FPT-100P-M06 端子配列図 ......................................7 単発モード 単発モード ............................................................ 255 単発モード時の EI2OS の起動例 ........................ 258 ち 遅延割込み 遅延割込みのブロックダイヤグラム ................ 230 遅延割込み要求ロックの使用上の注意 ............230 遅延割込み発生 遅延割込み発生 ....................................................232 遅延割込み要因発生 / 解除レジスタ 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) ....... 231 チップ消去 フラッシュメモリの全データの消去 ( チップ消去 ) ................................................. 423 調歩同期 非同期 ( 調歩同期 ) モードの受信動作 ..............302 非同期 ( 調歩同期 ) モードの送信動作 ..............302 非同期 ( 調歩同期 ) モードの転送データ フォーマット ..................................................302 直接アドレッシング 直接アドレッシング ............................................ 460 て 停止モード 停止モード ............................................................ 256 停止モード時の EI2OS の起動例 ........................ 260 低消費電力制御回路 低消費電力制御回路のブロックダイヤグラム ............................................................................89 低消費電力モード 低消費電力モードの動作状態 ............................108 低消費電力モード制御レジスタ 低消費電力モード制御レジスタ (LPMCR) ......... 91 低消費電力モード制御レジスタへのアクセス ............................................................................93 ディスクリプタ 拡張インテリジェント I/O サービスディスクリプ タ (ISD) .............................................................. 63 低電力消費モード 低電力消費モードの設定 .................................... 380 データカウンタ データカウンタ (DCT) ...........................................63 データフレーム データフレームおよびリモートフレームの 受信に対する処理 .......................................... 376 データポーリングフラグ データポーリングフラグ (DQ7) .........................413 データ保護機能 データ保護機能のフロー例 (EI2OS の場合 ) ..........................................................................262 523 索引 データレジスタ データレジスタ (ADCR0,ADCR1) ......................253 データレジスタ x(x=0 ∼ 15)(DTRx) ..................370 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................339 デバイスの取扱い デバイスの取扱いに関する注意事項 ...................17 転送データフォーマット CLK 同期ボーレートの転送データフォーマット ..........................................................................303 転送データフォーマット .....................................278 非同期 ( 調歩同期 ) モードの転送データ フォーマット ..................................................302 と 動作モード UART1 の動作モード ...........................................299 特長 特長 .............................................................................3 トグルビット 2 フラグ トグルビット 2 フラグ (DQ2) .............................417 時計タイマ 時計タイマ .............................................................171 時計タイマのインターバル割込み機能 .............171 時計タイマのブロックダイヤグラム .................168 時計タイマのレジスタ .........................................168 時計タイマ制御レジスタ 時計タイマ制御レジスタ (WTC) ........................169 時計モード 時計モードの解除 .................................................102 時計モードへの移行 .............................................101 トグルビットフラグ トグルビットフラグ (DQ6) .................................414 な 内部クロック 16 ビットリロードタイマの内部クロック動作 ..........................................................................203 内部クロックおよび外部クロック .....................277 内部クロックモード 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 ) ..............................203 内部シフトクロックモード 内部シフトクロックモード .................................320 に 入出力回路形式 入出力回路形式 .......................................................15 入出力領域 入出力領域への書込み中のハードウェア割込み 要求 ....................................................................51 入力インピーダンス 入力インピーダンス .............................................245 ね ネガティブクロック ネガティブクロック動作 .............................308, 327 524 は ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ ........................ 411 ハードウェア割込み ハードウェア割込みの概要 ..................................51 ハードウェア割込みの構造 ..................................51 ハードウェア割込みの動作 ..................................53 ハードウェア割込みの動作フロー ...................... 55 ハードウェア割込み要求 入出力領域への書込み中のハードウェア割込み 要求 .................................................................... 51 バス制御信号選択レジスタ バス制御信号選択レジスタ (ECSR) ...................136 バス動作停止ビット バス動作停止をセットする条件 (HALT=1) ..........................................................................345 バスモード バスモード別メモリ空間 .................................... 129 発振安定待ち 発振安定待ちリセット状態 ................................118 発振安定待ち時間 発振安定待ち時間 ..........................................83, 113 リセット要因と発振安定待ち時間 .................... 118 発振クロック周波数 発振クロック周波数とシリアルクロック入力 周波数 .............................................................. 438 バッファアドレスポインタ バッファアドレスポインタ (BAP) .......................66 パリティビット パリティビット ....................................................279 パルス幅 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................222 バンクセレクトプリフィックス バンクセレクトプリフィックス .......................... 40 バンク方式 バンク方式によるアドレス指定 .......................... 26 汎用レジスタ 汎用レジスタ .......................................................... 31 ひ ビットタイミング ビットタイミングの設定 .................................... 379 ビットタイミングレジスタ ビットタイミングレジスタ (BTR) .....................349 非同期モード 非同期 ( 調歩同期 ) モードの受信動作 ..............302 非同期 ( 調歩同期 ) モードの送信動作 ..............302 非同期 ( 調歩同期 ) モードの転送データ フォーマット ..................................................302 ふ フラグ 6 つのフラグのセットタイミング .....................280 UART1 のフラグ ................................................... 305 UART1 の割込みとフラグのセットタイミング ..........................................................................306 受信動作時 ( モード 0,モード 1,モード 3) の フラグのセットタイミング .......................... 281 索引 受信動作時 ( モード 2) のフラグの セットタイミング ..........................................282 送信動作時のフラグのセットタイミング .........283 フラグ変化抑止プリフィックス フラグ変化抑止プリフィックス (NCC) ...............41 フラッシュセキュリティ フラッシュセキュリティの特長 .........................430 フラッシュマイコンプログラマ フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源使用時 ) .........................443 フラッシュマイコンプログラマとの最小限の 接続例 ( ライタから電源供給時 ) .................445 フラッシュメモリ フラッシュメモリ書込み手順 .............................421 フラッシュメモリ使用上の注意 .........................428 フラッシュメモリの制御信号 .............................406 フラッシュメモリのセクタ消去手順 .................424 フラッシュメモリのセクタ消去の一時停止 ..........................................................................426 フラッシュメモリのセクタ消去の再開 .............427 フラッシュメモリの全データの消去 ( チップ消去 ) ..................................................423 フラッシュメモリの任意データの消去 ( セクタ消去 ) ..................................................424 フラッシュメモリへのデータを書込み .............421 フラッシュメモリを読出し / リセット状態 ..........................................................................420 フラッシュメモリ書込み / 消去 フラッシュメモリ書込み / 消去の詳細説明 ..........................................................................419 フラッシュメモリ書込み / 消去の方法 .............404 フラッシュメモリコントロールステータスレジスタ フラッシュメモリコントロールステータス レジスタ (FMCS) ............................................408 フラッシュメモリモード フラッシュメモリモード .....................................406 プリフィックスコード プリフィックスコードが連続している場合 .......44 プリフィックス命令 割込み抑止命令とプリフィックス命令に 関する制約 ........................................................43 プルアップ制御レジスタ プルアップ制御レジスタ (PUCR) ......................152 プルアップ制御レジスタ (PUCR) の ブロックダイヤグラム ..................................152 フレームフォーマット フレームフォーマットの設定 .............................379 プログラムアドレス検出コントロール / ステータス レジスタ プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) ......................393 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0/PADR1) .............................................393 プログラムカウンタ プログラムカウンタ (PC) ......................................37 プログラムパッチ プログラムパッチ処理フロー図 .........................398 プログラムパッチ処理例 .....................................397 プロセッサステータス プロセッサステータス (PS) ..................................34 ブロックダイヤグラム 16 ビット入出力タイマのブロックダイヤグラム ..........................................................................175 16 ビットフリーランタイマの ブロックダイヤグラム ..................................177 16 ビットリロードタイマの ブロックダイヤグラム ..................................196 8/16 ビット PPG のブロックダイヤグラム ....... 211 A/D コンバータのブロックダイヤグラム ........246 CAN コントローラのブロックダイヤグラム ..........................................................................331 DTP/ 外部割込みのブロックダイヤグラム ....... 234 ROM ミラー機能選択モジュールの ブロックダイヤグラム ..................................400 UART0 のブロックダイヤグラム ...................... 265 UART1 のブロックダイヤグラム ...................... 289 アウトプットコンペアのブロックダイヤグラム ..........................................................................183 アドレス一致検出機能のブロックダイヤグラム ..........................................................................392 インプットキャプチャのブロックダイヤグラム ..........................................................................190 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................162 外部メモリアクセスのブロックダイヤグラム ..........................................................................131 外部リセット端子のブロックダイヤグラム ..........................................................................119 クロック発生部のブロックダイヤグラム ..........74 シリアル I/O のブロックダイヤグラム ............. 312 タイムベースタイマのブロックダイヤグラム ..........................................................................156 遅延割込みのブロックダイヤグラム ................ 230 低消費電力制御回路のブロックダイヤグラム ............................................................................89 時計タイマのブロックダイヤグラム ................ 168 ブロックダイヤグラム ............................................ 5 プルアップ制御レジスタ (PUCR) の ブロックダイヤグラム ..................................152 へ 変換データ保護機能 変換データ保護機能 ............................................ 261 変換データ保護機能の使用上の注意 ................ 262 ほ ポートデータレジスタ ポートデータレジスタ (PDR) ............................. 149 ポート入力レベル選択レジスタ ポート入力レベル選択レジスタ (PILR) ............150 ポート方向レジスタ ポート方向レジスタ (DDR) ................................151 ホールド機能 ホールド機能 ........................................................ 143 ボーレート CLK 同期ボーレート ...........................................275 525 索引 ま ゆ マシンクロック マシンクロック .......................................................81 マルチレベルメッセージバッファ マルチレベルメッセージバッファの構成の決定 ..........................................................................385 ユーザスタックポインタ ユーザスタックポインタ (USP) とシステム スタックポインタ (SSP) ..................................33 ユーザ電源 シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................439 フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源使用時 ) ........................ 443 み 未定義命令 未定義命令の実行による例外発生 .......................70 め 命令 命令の種類 .............................................................457 命令マップの構造 .................................................495 命令一覧表 F2MC-16LX 命令一覧表 .......................................481 メインクロックモード メインクロックモード ,PLL クロックモード , サブクロックモード ........................................80 メッセージバッファ BVAL ビットによるメッセージバッファ禁止時の 注意 ..................................................................388 メッセージバッファ .............................................366 メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................337 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................334 メッセージバッファ (x) による受信方法 ..........383 メッセージバッファ (x) による送信方法 ..........381 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................339 メッセージバッファ有効レジスタ メッセージバッファ有効レジスタ (BVALR) ..........................................................................351 メモリアクセスモード メモリアクセスモードの概要 .............................126 メモリ空間 CPU メモリ空間の概要 ..........................................23 バスモード別メモリ空間 .....................................129 メモリ空間マップ メモリ空間マップ ...................................................24 メモリマップ E2PROM メモリマップ ........................................396 も モード端子 モード端子 .....................................................120, 127 モードデータ モードデータ .........................................................128 モードデータ読出し後の端子の状態 .................124 モードフェッチ モードフェッチ .....................................................120 よ 要求レベル設定レジスタ 要求レベル設定レジスタ (ELVR:External level register) .............................................................236 ら ライタ シリアル書込み接続例 ( ライタから電源供給時 ) ..........................................................................441 フラッシュマイコンプログラマとの最小限の 接続例 ( ライタから電源供給時 ) ................ 445 ラストイベント表示レジスタ ラストイベント表示レジスタ (LEIR) ................ 346 り リセット リセット中の端子の状態 .................................... 124 リセット動作 リセット動作の概要 ............................................ 120 リセット要因 リセット要因 ........................................................ 116 リセット要因と発振安定待ち時間 .................... 118 リセット要因ビット リセット要因ビット ............................................ 122 リセット要因ビットとリセット要因の対応 ..........................................................................122 リセット要因ビットの注意事項 ........................ 123 リモートフレーム データフレームおよびリモートフレームの 受信に対する処理 .......................................... 376 リモートフレーム受信待機レジスタ リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................355 リモート要求受信レジスタ リモート要求受信レジスタ (RRTRR) ................ 360 リロード値 8/16 ビット PPG のリロード値とパルス幅の関係 ..........................................................................222 リロードレジスタ リロードレジスタ (PRLL,PRLH) ........................ 220 れ 例外発生 未定義命令の実行による例外発生 ...................... 70 レート・データレジスタ レート・データレジスタ 0(URD0) .................... 272 526 索引 レジスタ 16 ビットタイマレジスタ (TMR)/16 ビット リロードレジスタ (TMRLR) .........................202 A/D コントロールステータスレジスタ (ADCS0) ..........................................................................248 A/D コントロールステータスレジスタ (ADCS1) ..........................................................................251 CAN2 RX/TX 端子切換えレジスタ (CANSWR) ..........................................................................387 DLC レジスタ x(x=0 ∼ 15)(DLCRx) ..................369 DTP/ 割込み許可レジスタ (ENIR:Interrupt request enable register) ..................................................235 DTP/ 割込み要因レジスタ (EIRR:External interrupt request register) ................................................235 IDE レジスタ (IDER) ............................................352 ID レジスタ x(x=0 ∼ 15)(IDRx) ..........................367 PPG0/1 クロック選択レジスタ (PPG01) ............219 PPG0 動作モード制御レジスタ (PPGC0) ...........214 PPG1 動作モード制御レジスタ (PPGC1) ...........216 ROM ミラー機能選択レジスタ (ROMM) ..........401 UART1 プリスケーラコントロールレジスタ (U1CDCR) ........................................................298 アウトプットコンペアのコントロールステータス レジスタ ..........................................................185 アクセプタンスマスク選択レジスタ (AMSR) ..........................................................................363 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ................................................364 アナログ入力許可レジスタ .................................244 アナログ入力許可レジスタ (ADER) ..................153 インタラプトレベルマスクレジスタ (ILM) ........36 インプットキャプチャコントロールステータス レジスタ ..........................................................191 インプットキャプチャデータレジスタ .............191 インプットデータレジスタ (UIDR0) とアウト プットデータレジスタ 0(UODR0) ...............271 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................163 外部アドレス出力制御レジスタ (HACR) ..........135 クロック選択レジスタ (CKSCR) ..........................76 コンディションコードレジスタ (CCR) ...............34 自動レディ機能選択レジスタ (ARSR) ..............133 受信オーバランレジスタ (ROVRR) ...................361 受信完了レジスタ (RCR) .....................................359 受信割込み許可レジスタ (RIER) ........................362 シリアルインプットデータレジスタ 1(SIDR1)/ シリアルアウトプットデータレジスタ 1 (SODR1) ...........................................................295 シリアルコントロールレジスタ 1(SCR1) .........293 シリアルステータスレジスタ 1(SSR1) ..............296 シリアルデータレジスタ (SDR) .........................317 シリアルモードコントロールステータスレジスタ (SMCS) .............................................................314 シリアルモードコントロールレジスタ 0(UMC0) ..........................................................................267 シリアルモードレジスタ 1(SMR1) ....................291 ステータスレジスタ 0(USR0) .............................269 制御ステータスレジスタ (CSR) .........................342 全体コントロールレジスタの一覧 .....................332 送信 RTR レジスタ (TRTRR) ..............................354 送信解除レジスタ (TCANR) ...............................356 送信完了レジスタ (TCR) .....................................357 送信要求レジスタ (TREQR) ................................353 送信割込み許可レジスタ (TIER) ........................ 358 タイマカウンタデータレジスタ ........................ 178 タイマコントロールステータスレジスタ ........179 タイマコントロールステータスレジスタ (TMCSR) .......................................................... 199 タイムベースタイマ制御レジスタ (TBTC) ...... 157 遅延割込み要因発生 / 解除レジスタ (DIRR:Delayed interrupt request register) ....... 231 低消費電力モード制御レジスタ (LPMCR) ......... 91 データレジスタ (ADCR0,ADCR1) .....................253 データレジスタ x(x=0 ∼ 15)(DTRx) .................. 370 時計タイマ制御レジスタ (WTC) ........................ 169 バス制御信号選択レジスタ (ECSR) ...................136 ビットタイミングレジスタ (BTR) .....................349 フラッシュメモリコントロールステータス レジスタ (FMCS) ............................................ 408 プルアップ制御レジスタ (PUCR) ...................... 152 プルアップ制御レジスタ (PUCR) の ブロックダイヤグラム ..................................152 プログラムアドレス検出コントロール / ステータスレジスタ (PACSR) ...................... 393 プログラムアドレス検出レジスタ (PADR0/PADR1) .............................................393 ポートデータレジスタ (PDR) ............................. 149 ポート入力レベル選択レジスタ (PILR) ............150 ポート方向レジスタ (DDR) ................................151 メッセージバッファ (DLC レジスタ ) の一覧 ..........................................................................337 メッセージバッファ (ID レジスタ ) の一覧 ..........................................................................334 メッセージバッファ ( データレジスタ ) の一覧 ..........................................................................339 メッセージバッファ有効レジスタ (BVALR) ..........................................................................351 要求レベル設定レジスタ (ELVR:External level register) .............................................................236 ラストイベント表示レジスタ (LEIR) ................ 346 リモートフレーム受信待機レジスタ (RFWTR) ..........................................................................355 リモート要求受信レジスタ (RRTRR) ................ 360 リロードレジスタ (PRLL,PRLH) ........................ 220 レート・データレジスタ 0(URD0) .................... 272 割込み制御レジスタ (ICR) ....................................60 全体コントロールレジスタ ................................341 レジスタバンク レジスタバンク ......................................................38 レジスタバンクポインタ レジスタバンクポインタ (RP) ..............................35 レディ機能 レディ機能 ............................................................ 141 連続モード 連続モード ............................................................ 255 連続モード時の EI2OS の起動例 ........................ 259 わ 割込み インテリジェント I/O サービス (EI2OS) 機能と 割込み .............................................................. 196 スタンバイモードへの移行と割込み ................ 112 割込みの概要 .......................................................... 46 527 索引 割込み制御レジスタ 割込み制御レジスタ (ICR) ....................................60 割込みベクタ 割込みベクタ ...........................................................49 割込み要因 割込み要因 ...............................................................47 528 割込み抑止命令 割込み抑止命令 ......................................................43 割込み抑止命令とプリフィックス命令に 関する制約 ........................................................43 CM44-10117-3 富士通マイクロエレクトロニクス ・ CONTROLLER MANUAL F2MC-16LX 16 ビット・マイクロコントローラ MB90440G Series ハードウェアマニュアル 2008 年 7 月 第 3 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 ビジネス推進部