本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通半導体デバイス CONTROLLER MANUAL CM71-10128-2 FR60Lite 32 ビット・マイクロコントローラ MB91270 Series ハードウェアマニュアル FR60Lite 32 ビット・マイクロコントローラ MB91270 Series ハードウェアマニュアル 開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。 『Check Sheet』は , 下記サポートページに掲載されています。 URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html 『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項 目をリストにしたものです。 富士通株式会社 はじめに ■ 本書の目的と対象読者 富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。 MB91270 シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理 が要求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , シングル チップマイクロコントローラです。32 ビット CPU がアクセスする広大なアドレス空間 をサポートするために , 外部バスアクセスが基本となっていますが , CPU の命令実行を 高速化するために 24K バイトの RAM ( データ用 ) を内蔵しています。 カーオーディオやカーエアコンなど , 高性能な CPU 処理パワーを要求される組込み用 途に最適な仕様となっています。 MB91270 シリーズは , FR30/40 ファミリ CPU をベースにバスアクセスの強化を行い , より高速での使用に対応した FR60Lite ファミリです。 本書は , 実際に MB91270 シリーズを使用して製品を開発される技術者を対象に , MB91270 シリーズの機能や動作について解説したものです。本書をご一読ください。 なお , 各種命令の詳細については , 『インストラクションマニュアル』をご参照くださ い。 FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。 ■ 商標 Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。 その他の記載されている社名および製品名などの固有名詞は,各社の商標または登録商 標です。 ■ ライセンス 本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使 用されることを条件に , Philips 社 I2C 特許がライセンスされております。 Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to use, these components in an I2C system provided that the system conforms to the I2C Standard Specification as defined by Philips. i ■ 本書の全体構成 本書は , 以下に示す 27 の章 , および付録から構成されています。 第1章 概要 FR ファミリは 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理を要 求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , 標準シング ルチップマイクロコントローラです。MB91270 シリーズの特長 , ブロックダイヤグ ラム , 機能概要など全体を知るための基本的なことについて説明します。 第2章 デバイス使用上の注意 MB91270 シリーズの取扱い上の注意について説明します。 第3章 CPU および制御部 FR ファミリの CPU コアの機能を知るために , アーキテクチャ, 仕様 , 命令などにつ いて説明します。 第4章 リセット リセットについて説明します。 第5章 外部バスインタフェース 外部バスインタフェースコントローラは , LSI の内部バスと外部のメモリおよび I/O デバイスとのインタフェースを制御します。外部バスインタフェースの各機能につ いて説明します。 第6章 I/O ポート I/O ポートの概要 , レジスタの構成 , および機能について説明します。 第7章 割込みコントローラ 割込みコントローラの概要, レジスタの構成/機能, および動作について説明します。 第8章 外部割込み制御部 外部割込み制御部の概要 , レジスタの構成 / 機能 , および動作について説明します。 第9章 REALOS 関連ハード REALOS関連ハードは, リアルタイムOSにより使用されます。したがって, REALOS を使用する場合にはユーザプログラムで使用することはできません。REALOS 関連 ハードの遅延割込みモジュールとビットサーチモジュールについて , 概要 , レジス タの構成 / 機能 , および動作を説明します。 第 10 章 DMAC (DMA コントローラ ) DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について説明します。 第 11 章 CAN コントローラ CAN コントローラの機能と動作について示します。 第 12 章 LIN-UART LIN 対応 UART の機能と動作について説明します。 第 13 章 I2C インタフェース I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作について説明します。 第 14 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタの構成と機能およびタイマの動作について説 明します。 ii 第 15 章 16 ビットフリーランタイマ 16 ビットフリーランタイマの機能と動作について説明します。 第 16 章 インプットキャプチャ インプットキャプチャの機能と動作について説明します。 第 17 章 アウトプットコンペア アウトプットコンペアの機能と動作について説明します。 第 18 章 PPG タイマ PPG タイマについて説明します。 第 19 章 アップダウンカウンタ 8 ビット /16 ビットアップダウンカウンタの機能と動作について説明します。 第 20 章 クロックモニタ クロックモニタの機能と動作について説明します。 第 21 章 リアルタイムクロック リアルタイムクロック ( 以降 RTC) のレジスタ構成とその機能 , RTC モジュールの 動作について説明します。 第 22 章 A/D コンバータ A/D コンバータの概要 , レジスタの構成 / 機能 , および動作について説明します。 第 23 章 D/A コンバータ D/A コンバータの概要を示し , レジスタの構造と機能 , および D/A コンバータの動 作について説明します。 第 24 章 クロックモジュレータ クロックモジュレータのレジスタ構成と機能および動作について説明します。 第 25 章 クロックスーパバイザ クロックスーパバイザの機能について説明します。 第 26 章 フラッシュメモリ フラッシュメモリの概要 , レジスタの構成 / 機能 , および動作について説明します。 第 27 章 ハードウェア ウォッチドッグタイマ ハードウェアウォッチドッグタイマの機能について説明します。 付録 I/O マップ , 割込みベクタ , CPU ステートでの端子状態 , について記載しています。 iii • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認 ください。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当 社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従 いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性 が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承 ください。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該 当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。 Copyright ©2006-2007 FUJITSU LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 概要 ............................................................................................................ 1 特長 ........................................................................................................................................ 2 ブロックダイヤグラム............................................................................................................ 7 外形寸法図.............................................................................................................................. 8 端子配列図.............................................................................................................................. 9 メモリマップ ........................................................................................................................ 10 端子機能説明 ........................................................................................................................ 11 入出力回路形式 .................................................................................................................... 26 第2章 2.1 デバイス使用上の注意 ............................................................................. 31 デバイス使用上の注意.......................................................................................................... 32 第3章 CPU および制御部 ................................................................................... 35 3.1 メモリ空間............................................................................................................................ 36 3.2 内部アーキテクチャ ............................................................................................................. 37 3.2.1 内部アーキテクチャ ................................................................................................... 38 3.2.2 命令概要 ..................................................................................................................... 42 3.3 プログラミングモデル.......................................................................................................... 44 3.3.1 汎用レジスタ .............................................................................................................. 45 3.3.2 専用レジスタ .............................................................................................................. 46 3.4 データ構造............................................................................................................................ 53 3.5 メモリマップ ........................................................................................................................ 55 3.6 分岐命令 ............................................................................................................................... 56 3.6.1 遅延スロット付き動作 ............................................................................................... 57 3.6.2 遅延スロットなし動作 ............................................................................................... 59 3.7 EIT ( 例外・割込み・トラップ ) ........................................................................................... 60 3.7.1 EIT の割込みレベル.................................................................................................... 61 3.7.2 ICR (Interrupt Control Register).................................................................................. 63 3.7.3 SSP (System Stack Pointer)....................................................................................... 64 3.7.4 3.7.5 割込みスタック .......................................................................................................... 65 TBR (Table Base Register) ........................................................................................ 66 3.7.6 EIT ベクタテーブル.................................................................................................... 67 3.7.7 多重 EIT 処理.............................................................................................................. 70 3.7.8 動作 ............................................................................................................................ 72 3.8 動作モード............................................................................................................................ 76 3.8.1 バスモード ................................................................................................................. 77 3.8.2 モード設定 ................................................................................................................. 78 3.9 クロック生成制御 ................................................................................................................. 81 3.9.1 PLL 制御 ..................................................................................................................... 82 3.9.2 発振安定待ち・PLL ロック待ち時間.......................................................................... 84 3.9.3 クロック分配 .............................................................................................................. 86 3.9.4 クロック分周 .............................................................................................................. 88 3.9.5 クロック生成制御部のブロックダイヤグラム............................................................ 89 3.9.6 クロック生成制御部のレジスタ詳細説明................................................................... 90 3.9.7 クロック制御部が持つ周辺回路 ............................................................................... 107 v 3.10 デバイス状態制御 ............................................................................................................... 110 3.10.1 デバイス状態と各遷移 ............................................................................................. 111 3.10.2 低消費電力モード..................................................................................................... 114 3.11 メイン発振安定待ちタイマ................................................................................................. 118 第4章 4.1 4.2 4.3 4.4 4.5 4.6 4.7 第5章 リセット................................................................................................. 125 リセットの概要 .................................................................................................................. 126 リセット要因と発振安定待ち時間...................................................................................... 128 リセットレベル .................................................................................................................. 130 外部リセット端子 ............................................................................................................... 132 リセット動作 ...................................................................................................................... 133 リセット要因ビット ........................................................................................................... 134 リセットによる各端子の状態 ............................................................................................. 136 外部バスインタフェース........................................................................ 137 5.1 外部バスインタフェースの特長 ......................................................................................... 138 5.2 外部バスインタフェースのレジスタ .................................................................................. 141 5.2.1 Area Select Register (ASR0 ∼ ASR3) ..................................................................... 142 5.2.2 Area Configuration Register (ACR0 ∼ ACR3) ......................................................... 143 5.2.3 Area Wait Register (AWR0 ∼ AWR3)...................................................................... 147 5.2.4 Chip Select Enable Register (CSER) ....................................................................... 152 5.3 チップセレクト領域 ........................................................................................................... 153 5.4 エンディアンとバスアクセス ............................................................................................. 155 5.4.1 データバス幅と制御信号との関係............................................................................ 156 5.4.2 バスアクセス ............................................................................................................ 157 5.4.3 外部アクセス ............................................................................................................ 163 5.5 通常バスインタフェース .................................................................................................... 167 5.6 アドレス / データマルチプレクスインタフェース ............................................................. 175 5.7 DMA アクセス .................................................................................................................... 178 5.8 レジスタ設定手順 .............................................................................................................. 181 第6章 6.1 6.2 6.3 6.4 6.5 6.6 6.7 第7章 I/O ポート............................................................................................... 183 I/O ポートの概要 ................................................................................................................ 184 ポートデータレジスタ (PDR) データ方向レジスタ (DDR) ................................................ 186 ポートファンクションレジスタの設定............................................................................... 188 外部割込み入力の再配置 .................................................................................................... 204 端子入力レベルの選択........................................................................................................ 206 プルアップ・プルダウン制御レジスタ............................................................................... 208 入力データダイレクトリードレジスタ............................................................................... 211 割込みコントローラ............................................................................... 213 7.1 割込みコントローラの概要................................................................................................. 214 7.2 割込みコントローラのレジスタ ......................................................................................... 217 7.2.1 割込み制御レジスタ (ICR)........................................................................................ 218 7.2.2 HRCL ( ホールドリクエスト取下げ要求レジスタ ).................................................. 219 7.3 割込みコントローラの動作説明 ......................................................................................... 220 vi 第8章 外部割込み制御部 .................................................................................. 227 8.1 外部割込み制御部の概要 .................................................................................................... 228 8.2 外部割込み制御部のレジスタ ............................................................................................. 229 8.2.1 割込み許可レジスタ (ENIR) ..................................................................................... 230 8.2.2 外部割込み要因レジスタ (EIRR) .............................................................................. 231 8.2.3 外部割込み要求レベル設定レジスタ (ELVR) ........................................................... 232 8.3 外部割込み制御部の動作説明 ............................................................................................. 233 第9章 REALOS 関連ハード ............................................................................. 237 9.1 遅延割込みモジュール........................................................................................................ 238 9.1.1 遅延割込みモジュールの概要................................................................................... 239 9.1.2 遅延割込みモジュールのレジスタ............................................................................ 240 9.1.3 遅延割込みモジュールの動作説明............................................................................ 241 9.2 ビットサーチモジュール .................................................................................................... 242 9.2.1 ビットサーチモジュールの概要 ............................................................................... 243 9.2.2 ビットサーチモジュールのレジスタ ........................................................................ 244 9.2.3 ビットサーチモジュールの動作説明 ........................................................................ 246 第 10 章 DMAC (DMA コントローラ ) ................................................................. 249 10.1 概要 .................................................................................................................................... 250 10.2 レジスタ詳細説明 ............................................................................................................... 253 10.2.1 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A............... 254 10.2.2 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B............... 258 10.2.3 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ .............. 264 10.2.4 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ .................................. 266 10.3 動作説明 ............................................................................................................................. 268 10.3.1 動作概要 ................................................................................................................... 269 10.3.2 転送要求の設定 ........................................................................................................ 271 10.3.3 転送シーケンス ........................................................................................................ 272 10.3.4 DMA 転送全般 .......................................................................................................... 274 10.3.5 アドレッシングモード ............................................................................................. 275 10.3.6 データの種類 ............................................................................................................ 276 10.3.7 転送回数制御 ............................................................................................................ 277 10.3.8 CPU 制御.................................................................................................................. 278 10.3.9 動作開始 ................................................................................................................... 280 10.3.10 転送要求の受付けと転送 .......................................................................................... 281 10.3.11 DMA による周辺割込みクリア ................................................................................. 282 10.3.12 一時停止 ................................................................................................................... 283 10.3.13 動作終了 / 停止 ......................................................................................................... 284 10.3.14 エラーによる停止..................................................................................................... 285 10.3.15 DMAC 割込み制御 .................................................................................................... 286 10.3.16 スリープモード中の DMA 転送 ................................................................................ 287 10.3.17 チャネル選択と制御 ................................................................................................. 288 10.4 動作フロー.......................................................................................................................... 290 10.5 データパス.......................................................................................................................... 292 vii 第 11 章 CAN コントローラ ................................................................................. 295 11.1 CAN の特長 ........................................................................................................................ 296 11.2 CAN のブロックダイヤグラム............................................................................................ 297 11.3 CAN のレジスタ ................................................................................................................. 298 11.4 CAN レジスタ機能.............................................................................................................. 303 11.4.1 全体コントロールレジスタ ...................................................................................... 304 11.4.2 メッセージインタフェースレジスタ ........................................................................ 317 11.4.3 メッセージオブジェクト .......................................................................................... 330 11.4.4 メッセージハンドラレジスタ................................................................................... 336 11.4.5 CAN プリスケーラレジスタ (CANPRE)................................................................... 345 11.5 CAN 機能 ............................................................................................................................ 346 11.5.1 メッセージオブジェクト .......................................................................................... 347 11.5.2 メッセージ送信動作 ................................................................................................. 349 11.5.3 メッセージ受信動作 ................................................................................................. 351 11.5.4 FIFO バッファ機能................................................................................................... 355 11.5.5 割込み機能 ............................................................................................................... 357 11.5.6 ビットタイミング..................................................................................................... 358 11.5.7 テストモード ............................................................................................................ 361 11.5.8 ソフトウェア初期化 ................................................................................................. 366 11.5.9 CAN クロックプリスケーラ ..................................................................................... 367 第 12 章 LIN-UART .............................................................................................. 371 12.1 概要 .................................................................................................................................... 372 12.2 UART の構成 ...................................................................................................................... 375 12.3 UART のレジスタ ............................................................................................................... 380 12.3.1 シリアルコントロールレジスタ (SCR) .................................................................... 382 12.3.2 シリアルモードレジスタ (SMR)............................................................................... 385 12.3.3 シリアルステータスレジスタ (SSR) ........................................................................ 388 12.3.4 受信 / 送信データレジスタ (RDR/TDR).................................................................... 391 12.3.5 拡張ステータス / コントロールレジスタ (ESCR) .................................................... 393 12.3.6 拡張通信コントロールレジスタ (ECCR).................................................................. 396 12.3.7 ボーレート / リロードカウンタレジスタ (BGR) ...................................................... 399 12.4 UART の割込み................................................................................................................... 400 12.4.1 受信割込み生成とフラグセットタイミング ............................................................. 403 12.4.2 送信割込み生成とフラグタイミング ........................................................................ 405 12.5 UART のボーレート ........................................................................................................... 407 12.5.1 ボーレートの設定..................................................................................................... 409 12.5.2 リロードカウンタの再起動 ...................................................................................... 412 12.6 UART の動作 ...................................................................................................................... 414 12.6.1 非同期モードでの動作 ( 動作モード 0, 1) ................................................................ 416 12.6.2 同期モードでの動作 ( 動作モード 2) ........................................................................ 419 12.6.3 LIN 機能での動作 ( 動作モード 3) ............................................................................ 422 12.6.4 シリアル端子への直接アクセス ............................................................................... 425 12.6.5 双方向通信機能 ( ノーマルモード ) .......................................................................... 426 12.6.6 マスタ−スレーブ通信機能 ( マルチプロセッサモード ).......................................... 427 12.6.7 LIN 通信機能............................................................................................................. 430 12.6.8 LIN 通信モード ( 動作モード 3) UART サンプルフローチャート............................. 431 12.7 UART 使用上の注意事項 .................................................................................................... 434 viii 第 13 章 I2C インタフェース ................................................................................ 437 13.1 I2C インタフェースの概要.................................................................................................. 438 13.2 I2C インタフェースのレジスタ .......................................................................................... 442 13.2.1 バスステータスレジスタ (IBSR0 ∼ IBSR2) ............................................................ 443 13.2.2 バスコントロールレジスタ (IBCR0 ∼ IBCR2) ........................................................ 446 13.2.3 クロックコントロールレジスタ (ICCR0 ∼ ICCR2)................................................. 453 13.2.4 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) ................................................................................................................................. 455 13.2.5 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) ................................................................................................................................. 456 13.2.6 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) ........................................... 458 13.2.7 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) ............................... 459 13.2.8 データレジスタ (IDAR0 ∼ IDAR2) .......................................................................... 461 13.3 I2C インタフェースの動作説明 .......................................................................................... 462 13.4 動作フローチャート ........................................................................................................... 467 第 14 章 16 ビットリロードタイマ ...................................................................... 471 14.1 16 ビットリロードタイマの概要 ........................................................................................ 472 14.2 16 ビットリロードタイマのレジスタ................................................................................. 473 14.2.1 コントロールステータスレジスタ (TMCSR) ........................................................... 474 14.2.2 16 ビットタイマレジスタ (TMR) ............................................................................. 477 14.2.3 16 ビットリロードレジスタ (TMRLR) ..................................................................... 478 14.3 16 ビットリロードタイマの動作 ........................................................................................ 479 第 15 章 16 ビットフリーランタイマ................................................................... 483 15.1 16 ビットフリーランタイマの概要 .................................................................................... 484 15.2 16 ビットフリーランタイマのレジスタ ............................................................................. 485 15.2.1 タイマデータレジスタ (TCDT)................................................................................. 486 15.2.2 タイマコントロールステータスレジスタ (TCCS).................................................... 487 15.3 16 ビットフリーランタイマの動作 .................................................................................... 490 15.4 16 ビットフリーランタイマ使用時の注意事項 .................................................................. 492 第 16 章 インプットキャプチャ ........................................................................... 493 16.1 インプットキャプチャの概要 ............................................................................................. 494 16.2 インプットキャプチャのレジスタ...................................................................................... 495 16.2.1 インプットキャプチャレジスタ (IPCP) ................................................................... 496 16.2.2 インプットキャプチャコントロールレジスタ (ICS) ................................................ 497 16.3 インプットキャプチャの動作 ............................................................................................. 499 第 17 章 アウトプットコンペア ........................................................................... 501 17.1 アウトプットコンペアの概要 ............................................................................................. 502 17.2 アウトプットコンペアのレジスタ...................................................................................... 503 17.2.1 コンペアレジスタ (OCCP) ....................................................................................... 504 17.2.2 コントロールレジスタ (OCS) .................................................................................. 505 17.3 アウトプットコンペアの動作 ............................................................................................. 507 ix 第 18 章 PPG タイマ ............................................................................................ 511 18.1 概要 .................................................................................................................................... 512 18.2 ブロックダイヤグラム........................................................................................................ 513 18.3 PPG のレジスタ ................................................................................................................. 516 18.3.1 PPG 動作モード制御レジスタ (PPGC).................................................................... 517 18.3.2 リロードレジスタ (PRLL/PRLH).............................................................................. 519 18.3.3 PPG 起動レジスタ (TRG) ........................................................................................ 520 18.3.4 出力反転レジスタ (REVC) ....................................................................................... 521 18.4 動作説明 ............................................................................................................................. 522 第 19 章 アップダウンカウンタ ........................................................................... 529 19.1 アップダウンカウンタの概要 ............................................................................................. 530 19.2 アップダウンカウンタのレジスタ...................................................................................... 533 19.2.1 アップダウンカウントレジスタ (UDCR) ................................................................. 535 19.2.2 リロードコンペアレジスタ (RCR) ........................................................................... 536 19.2.3 カウンタステータスレジスタ (CSR)........................................................................ 537 19.2.4 カウンタコントロールレジスタ (CCR) .................................................................... 539 19.3 アップダウンカウンタの動作 ............................................................................................. 543 第 20 章 クロックモニタ ...................................................................................... 551 20.1 クロックモニタの概要........................................................................................................ 552 20.2 クロック出力許可レジスタ................................................................................................. 553 第 21 章 リアルタイムクロック ........................................................................... 555 21.1 レジスタ構成 ...................................................................................................................... 556 21.2 ブロックダイヤグラム........................................................................................................ 558 21.3 レジスタの詳細 .................................................................................................................. 559 21.4 クロック補正ユニット........................................................................................................ 564 21.5 クロック補正ユニットのレジスタ...................................................................................... 565 21.5.1 補正ユニット制御レジスタ (CUCR)......................................................................... 566 21.5.2 サブタイマデータレジスタ (CUTD) ......................................................................... 568 21.5.3 メインタイマデータレジスタ (CUTR) ..................................................................... 570 21.6 クロック補正ユニットの使用について............................................................................... 571 第 22 章 A/D コンバータ ...................................................................................... 573 22.1 A/D コンバータの概要 ........................................................................................................ 574 22.2 A/D コンバータのブロックダイヤグラム ........................................................................... 575 22.3 A/D コンバータのレジスタ................................................................................................. 576 22.3.1 アナログ入力許可レジスタ (ADER) ......................................................................... 578 22.3.2 A/D コントロールステータスレジスタ (ADCS) ....................................................... 579 22.3.3 データレジスタ (ADCR1, ADCR0)........................................................................... 585 22.3.4 変換時間設定レジスタ (ADCT) ................................................................................ 586 22.3.5 開始チャネル設定レジスタ (ADSCH) 終了チャネル設定レジスタ (ADECH) .......... 588 22.4 A/D コンバータの動作 ........................................................................................................ 590 第 23 章 D/A コンバータ ...................................................................................... 593 23.1 D/A コンバータの概要 ........................................................................................................ 594 23.2 D/A コンバータのレジスタ................................................................................................. 595 23.3 D/A コンバータの動作 ........................................................................................................ 599 x 第 24 章 クロックモジュレータ ........................................................................... 601 24.1 クロックモジュレータの概要 ............................................................................................. 602 24.2 クロックモジュレータのレジスタ...................................................................................... 603 24.2.1 クロックモジュレータパラメータレジスタ (CMPR) ............................................... 604 24.2.2 クロックモジュレータ制御レジスタ (CMCR).......................................................... 605 第 25 章 クロックスーパバイザ ........................................................................... 607 25.1 クロックスーパバイザの概要 ............................................................................................. 608 25.2 クロックスーパバイザ制御レジスタ (CSVCR) .................................................................. 609 25.3 クロックスーパバイザの動作 ............................................................................................. 612 第 26 章 フラッシュメモリ .................................................................................. 615 26.1 フラッシュメモリの概要 .................................................................................................... 616 26.2 フラッシュメモリのレジスタ ............................................................................................. 619 26.2.1 フラッシュコントロール / ステータスレジスタ (FLCR) .......................................... 620 26.2.2 ウェイトレジスタ (FLWC) ....................................................................................... 622 26.3 フラッシュメモリの動作説明 ............................................................................................. 624 26.4 フラッシュメモリ自動アルゴリズム .................................................................................. 626 26.4.1 コマンドシーケンス ................................................................................................. 627 26.4.2 自動アルゴリズム実行状態の確認............................................................................ 631 26.5 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 636 26.5.1 読出し / リセット状態 .............................................................................................. 637 26.5.2 データ書込み ............................................................................................................ 638 26.5.3 データ消去 ( チップ消去 ) ........................................................................................ 640 26.5.4 データ消去 ( セクタ消去 ) ........................................................................................ 641 26.5.5 セクタ消去一時停止 ................................................................................................. 643 26.5.6 セクタ消去再開 ........................................................................................................ 644 26.6 ワイルドレジスタ ............................................................................................................... 645 26.7 フラッシュメモリプログラミングの注意事項.................................................................... 646 第 27 章 27.1 27.2 27.3 27.4 27.5 ハードウェアウォッチドッグタイマの概要 ....................................................................... 648 ハードウェアウォッチドッグタイマの構成 ....................................................................... 649 ハードウェアウォッチドッグタイマのレジスタ ................................................................ 650 ハードウェアウォッチドッグタイマの機能 ....................................................................... 651 注意事項 ............................................................................................................................. 652 付録 付録 A 付録 B 付録 C 付録 D 付録 E 索引 ハードウェアウォッチドッグタイマ...................................................... 647 ............................................................................................................... 653 I/O マップ ...................................................................................................................... 654 割込みベクタ ................................................................................................................. 668 各 CPU ステートにおける端子状態 .............................................................................. 672 シリアル書込み ( 非同期 ) 書込み例 .............................................................................. 685 シリアル書込み ( 同期 ) 書込み例.................................................................................. 688 ................................................................................................................695 xi xii 本版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) ― シリーズ名を変更 (MB91270/280 シリーズ → MB91270 シリーズ ) 型格を削除 (MB91F272, MB91F272(S)) 型格を追加 (MB91F273, MB91F273(S), MB91F278, MB91F278(S) ) 端子名を変更 (INITX → INIT) (CS0X ∼ CS3X → CS0 ∼ CS3) (RDX → RD) (ASX → AS) (ATGX → ATG) (WR0X, WR1X → WR0, WR1) 3 表 1.1-1 内蔵メモリの詳細を変更 4 ■ I/O ポートを変更 (・最大 120 ポート → ・最大 128 ポート ) 5 ■ その他の特長を変更 (・クロック監視機能 メインクロックの停止を内部自励発振にて監視するものです。の記述を追加 ) (I2C ライセンスの記述を削除 ) 6 表 1.1-2 機能比較を変更 7 図 1.2-1 MB91270 シリーズのブロックダイヤグラムを変更 ( クロックスーパバイザの記述を追加 ) 9 図 1.4-1 FPT-100P-M05 の端子配列を変更 10 図 1.5-1 MB91270 シリーズのメモリマップを変更 11 ∼ 24 表 1.6-1 端子機能説明を変更 30 表 1.7-3 入出力回路形式 (4 / 4) の分類 WA, WB の備考を変更 ( 約 1MΩ → 約 10MΩ) 34 2.1 デバイス使用上の注意を変更 (■ 同期モードのソフトウェアリセットについて ( 評価用品 MB91V280 のみ ) を追加 ) 67 表 3.7-3 ベクタテーブル (1 / 3) を変更 ( 命令ブレーク例外 → システム予約 ) ( オペランドブレークトラップ → システム予約 ) 81 ■ 内部動作クロックの生成を変更 (φ はソースクロックを 2 分周または , PLL 発振させた基本クロックを指します。し たがって , システムベースクロックは , 上記の内部ベースクロック発生のところで生 成されるクロックです。の記述を追加 ) 87 <注意事項>を追加 xiii ページ 変更内容(詳細は本文を参照してください。) 126 4.1 リセットの概要の要約を変更 ( リセットには次の 4 つの要因があります。→ リセットには次の 5 つの要因がありま す。) (・発振動作不具合の記述を追加 ) 表 4.1-1 リセット要因を変更 ( クロックスーパバイザの記述を追加 ) 127 ● クロックスーパバイザリセットの項目を追加 128 4.2 リセット要因と発振安定待ち時間の要約を変更 (4 種類のリセット要因があり , → 5 種類のリセット要因があり ,) 表 4.2-1 リセット要因と発振安定待ち時間を変更 ( クロックスーパバイザの記述を追加 ) 130 ■ 設定初期化リセット (INIT) を変更 ( クロックスーパバイザリセットの記述を追加 ) 133 図 4.5-1 リセット動作フローを変更 ( クロックスーパバイザリセットの記述を追加 ) 134 図 4.6-1 リセット要因ビットブロックを変更 ( クロックスーパバイザの記述を追加 ) 135 表 4.6-1 リセット要因ビットの内容とリセット要因の対応を変更 ( クロックスーパバイザの記述を追加 ) 143 ■ ACR0 ∼ ACR3 (Area Configuration Register) のレジスタ構成の図を変更 (ACR1H の初期値 0xxx0x00B → xxxx0x00B) (* :モードベクタの WTH ビットと同じ値に自動設定の記述を追加 ) 185 <注意事項>を追加 199 ■ ポート A の表のビット =PFRA0、値 =1 の機能を変更 (CAN0 の RX 入力専用 → CAN 使用時は , "1" に設定願います。) <注意事項>を追加 221 表 7.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 2) を変更 ( 命令ブレーク例外 → システム予約 ) ( オペランドブレークトラップ → システム予約 ) 230 <注意事項>を追加 231 <注意事項>を追加 233 ■ 外部割込みの動作手順を変更 234 ■ 外部割込み要求レベルを変更 ( 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要としま す。また割込み入力端子がアクティブレベルを保持し続けている限りは , 外部割込み 要因レジスタ (ENIR) をクリアしても , 割込みコントローラへの割込み要求は発生し 続けます。の記述を追加 ) 235 ■ 外部割込みを使用した STOP 状態からの復帰時における注意事項を追加 236 ■ STOP 状態からの復帰動作を追加 xiv ページ 変更内容(詳細は本文を参照してください。) 254 ■ DMACA0 ∼ DMACA4 のビット機能の図を変更 (DDN0[3:0] → reserved) 394 <注意事項>を追加 421 ■ 通信を変更 ( 受信するには SMR のシリアル出力許可 (SOE) ビットで出力を停止し , TDR へダ ミーデータを書き込んでください。→ 受信のみ行う場合には SMR のシリアル出力許 可 (SOE) ビットで出力を停止し , TDR へダミーデータを書き込んでください。) 427 ■ マスタ−スレーブ通信機能を変更 ( 図 12.6-11 に , マルチプロセッサモード ( 動作モード 2) での UART の設定を示しま す。→ 図 12.6-11 に , マルチプロセッサモード ( 動作モード 1) での UART の設定を示 します。) 図 12.6-11 動作モード 1 での UART の設定 ( モード 0 → モード 1) 455 ■ 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) の図 を変更 (ITBAH0 ∼ 2, ITBAL0 ∼ 2 → ITBAH0 ∼ ITBAH2 ( 上位バイト )) (ITBA → ITBAL0 ∼ ITBAL2 ( 下位バイト )) 456 ■ 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) の図を変更 (ITMKH0 ∼ 2, ITMKL0 ∼ 2 → ITMKH0 ∼ ITMKH2 ( 上位バイト )) (ITMK → ITMKL0 ∼ ITMKL2 ( 下位バイト )) 509 ● コンペアレジスタライトタイミングの図を変更 (M → N) (526) ■ デューティ変更を変更 (2. PWM タイマモードによる各レジスタ更新タイミングについての項目を削除 ) 561 ■ サブセカンドレジスタの図の WTBR2 のビットを変更 (7 6 5 4 3 2 1 0 → bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16) 582 <注意事項>を追加 586 [bit15 ∼ bit10] CT5 ∼ CT0 (A/D comparison time set) を変更 ( 比較操作時間 (Compare Time) = CT 設定値 × CT 周期 × 10 + (4 × CLKP) → 比較操 作時間 (Compare Time) = CT 設定値 × CLKP 周期 × 10 + (4 × CLK 同期 )) 591 <注意事項>を追加 607 ∼ 614 第 25 章 クロックスーパバイザの章を追加 616 26.1 フラッシュメモリの概要の要約を変更 ( 本シリーズには , 256K バイト (MB91F272) または 512K バイト (MB91F273) の FLASH メモリが内蔵されています。→ 本シリーズには , 512K バイト (MB91F273(S)/ MB91F278(S)) のフラッシュメモリが内蔵されています。) 617 図 26.1-2 フラッシュメモリのメモリマップを変更 (618) ● フラッシュメモリのセクタマップ (256K バイト ) を削除 xv ページ 650 変更内容(詳細は本文を参照してください。) [bit0] : CPUF: CPU リセットフラグを変更 ( クロックスーパバイザリセットの記述を追加 ) 付表 A-1 I/O マップ (3 / 13) のアドレス 00015CH, 000160H のブロックを変更 657 660 ( クロック補正 (MB91V280 およびサフィックス "W" 付き品種のみ ) → クロック補正 (MB91V280 およびサフィックス "S" 付き品種以外 )) 付表 A-1 I/O マップ (6 / 13) を変更 (000494H − 0004ACH → 000494H − 0004A8H) (0004ACH クロックスーパバイザの行を追加 ) 667 付表 A-1 I/O マップ (13 / 13) のブロックを変更 668 付表 B-1 割込みベクタテーブル (1 / 4) を変更 ( 命令ブレーク例外 → システム予約 ) ( オペランドブレークトラップ → システム予約 ) 687 付図 D-3 各端子のタイミングチャートを変更 688 ■ 基本構成を変更 ( シングルチップモードで動作するプログラムあるいは内 ROM 外バスモードで動作 するプログラムのどちらかを選択して書き込むことができます。の記述を追加 ) 変更箇所は , 本文中のページ左側の│によって示しています。 xvi 第1章 概要 FR ファミリは 32 ビット高性能 RISC CPU を使用 し , 高性能 / 高速な CPU 処理を要求される組込み 制御用に各種 I/O リソースやバス制御機構を内蔵し た , 標準シングルチップマイクロコントローラで す。 MB91270 シリーズの特長 , ブロックダイヤグラム , 機能概要など全体を知るための基本的なことにつ いて説明します。 1.1 特長 1.2 ブロックダイヤグラム 1.3 外形寸法図 1.4 端子配列図 1.5 メモリマップ 1.6 端子機能説明 1.7 入出力回路形式 1 第 1 章 概要 1.1 特長 MB91270 シリーズの特長を説明します。 ■ FR CPU の特長 • 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段 • 最大動作周波数 32MHz [PLL 使用:原発振 4MHz の場合 ] • 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル • メモリ−メモリ間転送 , ビット処理 , バレルシフトなどの命令 - 組込み用途に適した命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 - 高級言語対応命令 • レジスタインターロック機能 - アセンブラ記述の容易化 • 乗算器の内蔵 / 命令レベルでのサポート - 符号付 32 ビット乗算:5 サイクル - 符号付 16 ビット乗算:3 サイクル • 割込み (PC, PS の退避 ) :6 サイクル , 16 プライオリティレベル • ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に 実行可能 • FR ファミリとの命令互換 ■ 外部バスインタフェース • 最大動作周波数 16MHz • 24 ビットアドレスフル出力可能 (16M バイト空間 ) • 8,16 ビットデータ出力 • 未使用データ / アドレス端子は汎用入出力ポートとして使用可能 • 最小 64K バイト単位で設定可能な完全独立な 4 領域の チップセレクト出力が可能 • 各種メモリに対するインタフェースのサポート SRAM, ROM/Flash • 基本バスサイクル:2 サイクル • 領域ごとに , プログラマブルでウェイト挿入可能な 自動ウェイトサイクル発生機構 • RDY 入力による外部ウェイトサイクル 2 第 1 章 概要 ■ 内蔵メモリ 表 1.1-1 内蔵メモリの詳細を示します。 表 1.1-1 内蔵メモリの詳細 MB91V280 MB91F273(S) MB91F278(S) ROM/Flash 外部 SRAM Flash 512K バイト Flash 512K バイト F-bus RAM 48K バイト 24K バイト 24K バイト 以下に周辺回路の概要を記載します。 各品種の搭載チャネル数については , 表 1.1-2 を確認してください。 ■ DMAC (DMA Controller) • 同時に最大 5 チャネルの動作が可能 • 2 つの転送要因 ( 内部ペリフェラル / ソフトウェア ) ■ ビットサーチモジュール (REALOS 使用 ) • 1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ ■ LIN 対応 UART:最大 7 チャネル • 非同期 (Start-Stop 同期 ) 通信 , クロック同期通信 • Synch-Break 検出 • チャネルごとにボーレートジェネレータ搭載 • SPI 対応可能 ( モード 2:クロック同期通信モード ) ■ CAN コントローラ:最大 3 チャネル • 最高転送レート:1Mbps • 32 メッセージバッファ (MB91V280 は 128 メッセージバッファ ) ■ 各種タイマ • 16 ビットリロードタイマ 3 チャネル (REALOS 用 1 チャネル含 ) 内部クロックは 2/8/32 分周から選択可能 • 16 ビットフリーランタイマ:4 チャネル • アウトプットコンペア:8 チャネル インプットキャプチャ:8 チャネル • 8/16 ビット PPG:8 ビット× 16 チャネル または 16 ビット× 8 チャネル 3 第 1 章 概要 ■ 割込みコントローラ:最大 40 チャネル • 内部ペリフェラルからの割込み • 優先レベルをソフトウェアにより設定可能 (16 レベル ) ■ D/A コンバータ:2 チャネル • 8 ビット /10 ビット分解能 , R-2R 型 ■ A/D コンバータ:24 チャネル (MB91V280 では+ 8 チャネルを独立モジュールとし て提供 ) • 10 ビット分解能 • 逐次変換型 変換時間:3µs • 変換モード ( 単発変換モード , 連続変換モード ) • 起動要因 ( ソフト / 外部トリガ / ペリフェラル割込み ) ■ その他のインターバルタイマ / カウンタ • 8/16 ビットアップダウンカウンタ: 8 ビット× 4 チャネル または 16 ビット× 2 チャネル • 16 ビットタイムベースタイマ / ウォッチドッグタイマ ■ I2C インタフェース (400kbps 対応 ) :3 チャネル • マスタ / スレーブ送受信 • アービトレーション機能 , クロック同期化機能 ■ ハードウェアウォッチドッグ • インターバル時間:569ms( 最小 ), 771ms( 最大 ) トリミング機能付き自励発振回路 (100kHz) を使用 ■ I/O ポート • 端子ごとにプルアップ , プルダウンの制御可能 • 端子ごとに CMOS シュミットトリガ , CMOS オートモーティブシュミットトリガを 入力レベルとして選択可能 • 端子レベルの直接読出し可能 • 最大 128 ポート 4 第 1 章 概要 ■ その他の特長 • クロックソースとして発振回路内蔵し , PLL 逓倍も選択可能 • リセット端子として INITX を用意 • その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり • 低消費電力モードとしてストップモード , スリープモード , リアルタイムクロック モードをサポート 32kHz CPU 動作による低消費電力動作が可能 ( 型格 "S" なし品種のみ ) • ギア機能 • タイムベースタイマ内蔵 • ワイルドレジスタ • クロック出力 ( クロックモニタ ) • クロックモジュレータ • クロック監視機能 メインクロックの停止を内部自励発振にて監視するものです。 • パッケージ LQFP-100 • CMOS テクノロジ (0.35µm) • 電源電圧:3.5V ∼ 5.5V 内部回路は , 内蔵降圧回路により 3.3V が供給されます。 5 第 1 章 概要 ■ 機能比較 表 1.1-2 に MB91270 シリーズの機能比較を示します。 表 1.1-2 機能比較 品種 項目 パッケージ MB91V280 PGA-401 MB91F278(S) LQFP-100 内蔵 ROM/Flash 外部 SRAM Flash 512K バイト Flash 512K バイト RAM 48K バイト 24K バイト 24K バイト 外部バス アドレス: 24 ビット データ: 16 ビット アドレス:24 ビット データ:16 ビット ( マルチプレクスのみ ) 外部割込み 40 チャネル 16 チャネル DMA コントローラ 5 チャネル クロックモジュレータ クロック監視 あり あり なし クロックモニタ 32kHz サブクロック オプション ( 型格 "S" なし品種のみ ) あり あり 3 チャネル CAN コントローラ あり あり リアルタイムクロック (128 メッセージ バッファ ) LIN 対応 UART 1 チャネル (32 メッセージバッファ ) 7 チャネル 2 I C インタフェース 3 チャネル 16 ビットリロードタイマ 3 チャネル 8/16 ビットアップダウンカウンタ 2 チャネル 16 ビットフリーランタイマ 4 チャネル インプットキャプチャ 8 チャネル アウトプットコンペア 8 チャネル 8 チャネル× 16 ビット 16 チャネル× 8 ビット 8/16 ビット PPG 6 MB91F273(S) 10 ビット A/D コンバータ 24 チャネル + 8 チャネル 24 チャネル 8/10 ビット D/A コンバータ 2 チャネル なし 端子プルアップ / ダウン 全端子 「1.6 端子機能説明」参照 入力レベルセレクタ 全端子 「1.6 端子機能説明」参照 デバッグサポート DSU4 ワイルドレジスタ 第 1 章 概要 1.2 ブロックダイヤグラム MB91270 シリーズのブロックダイヤグラムを示します。 ■ MB91270 シリーズのブロックダイヤグラム 図 1.2-1 MB91270 シリーズのブロックダイヤグラム FR60 Lite CPU コア クロック ジェネレータ D-bus デバッグ サポート 32 DMA コントローラ 電圧 レギュレータ 32 32 ビットサーチ モジュール ウォッチドッグ タイマ I-bus フラッシュメモリ/ MASK ROM ハーバードバス コンバータ F-bus 32 F-busRAM 32 外部バス 24ビットアドレス 16ビットデータ CAN 外部バス インタフェース R-bus アダプタ 16 クロック スーパバイザ D/Aコンバータ ハードウェア ウォッチドッグ A/Dコンバータ R-bus LINUART0 リロード タイマ LINUART ICU 16ビット サブクロック クロック モニタ フリーラン タイマ リアルタイム クロック OCU 16ビット I2C 400kHz 外部割込み アップダウンカウンタ 8/16ビット PPG 8/16ビット 7 第 1 章 概要 外形寸法図 1.3 MB91270 シリーズの外形寸法図を示します。 ■ LQFP 100 ピン 図 1.3-1 FPT-100P-M05 の外形寸法図 プラスチック・LQFP, 100 ピン リードピッチ 0.50mm パッケージ幅× パッケージ長さ 14.0× 14.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX 質量 0.65g コード(参考) (FPT-100P-M05) プラスチック・LQFP, 100 ピン (FPT-100P-M05) P-LFQFP100-14×14-0.50 注 1)* 印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 16.00±0.20(.630±.008)SQ * 14.00±0.10(.551±.004)SQ 75 51 76 50 0.08(.003) Details of "A" part +0.20 100 26 1 25 C 0.20±0.05 (.008±.002) 0.08(.003) M 0.145±0.055 (.0057±.0022) 2003 FUJITSU LIMITED F100007S-c-4-6 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html 0.25(.010) 単位:mm (inches) 注意:括弧内の値は参考値です。 最新の外形寸法図については , 下記の URL にてご確認ください。 8 0.10±0.10 (.004±.004) (Stand off) 0°~8° "A" 0.50(.020) +.008 1.50 –0.10 .059 –.004 (Mounting height) INDEX 第 1 章 概要 1.4 端子配列図 MB91270 シリーズの端子配列図を示します。 ■ LQFP 100 ピン P25/A21/IN1 P24/A20/IN0 P23/A19/PPGF P22/A18/PPGD P21/A17/PPGB P20/A16/PPG9 P17/AD15/SCK4 P16/AD14/SOT4 P15/AD13/SIN4 X0 X1 VSS VCC P14/AD12/SCK3 P13/AD11/SOT3 P12/AD10/SIN3/INT11R P11/AD09/TOT1 P10/AD08/TIN1 P07/AD07/INT15 P06/AD06/INT14 P05/AD05/SCK6/INT13 P04/AD04/SOT6/INT12 P03/AD03/SIN6/INT11 P02/AD02/SCK5/INT10 P01/AD01/SOT5/INT9 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 図 1.4-1 FPT-100P-M05 の端子配列 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 AVRL AVSS P60/AN0/PPG0 P61/AN1/PPG2 P62/AN2/PPG4 P63/AN3/PPG6 P64/AN4/PPG8 P65/AN5/PPGA P66/AN6/PPGC P67/AN7/PPGE VSS P70/AN16/INT0 P71/AN17/INT1 P72/AN18/INT2 P73/AN19/INT3 P74/AN20/INT4 P75/AN21/INT5 MD2 MD1 VCC P87/SCK1 P86/SOT1 P85/SIN1 P84/SCK0/INT15R P83/TOT2/SOT0 P82/TIN2/SIN0/INT14R P81/TOT0/INT13R/CKOT P80/TIN0/INT12R/ADTG P77/AN23/INT7/SCL2 P76/AN22/INT6/SDA2 INIT MD0 AVRH 63 62 61 60 59 58 57 56 55 54 53 52 51 30 13 14 15 16 17 18 19 20 21 22 23 24 25 AVCC VCC VSS C P42/IN6/RX1/INT9R P43/IN7/TX1 P44/SDA0/FRCK0 P45/AIN2/SCL0/FRCK1 P46/BIN2/SDA1 P47/ZIN2/SCL1 P50/AN8/SIN2 P51/AN9/SOT2 P52/AN10/SCK2 P53/AN11/BIN1 29 PA0/RX0/INT8R P97/OUT3 P96/OUT2/ZIN0 P95/OUT1/BIN0 P94/OUT0/AIN0 P93/PPG7/ZIN3/CS3 P92/PPG5/BIN3/CS2 P91/PPG3/AIN3/CS1 P90/PPG1/CS0 VSS P57/AN15/DAO1 73 72 71 70 69 68 67 66 65 64 28 P32/WR0/RX2/INT10R P33/WR1/TX2 P34/BRQ/OUT4 P35/BGRNT/OUT5 P36/RDY/OUT6 P37/SYSCLK/OUT7 P40/(X0A) P41/(X1A) 3 4 5 6 7 8 9 10 11 12 P56/AN14/DAO0 P30/AS/IN4 P31/RD/IN5 27 P00/AD00/SIN5/INT8 PA1/TX0 26 75 74 P55/AN13/ZIN1 1 2 P54/AN12/AIN1 P26/A22/IN2 P27/A23/IN3 9 第 1 章 概要 1.5 メモリマップ MB91270 シリーズのメモリマップを示します。 ■ MB91270 シリーズのメモリマップ 図 1.5-1 MB91270 シリーズのメモリマップ MB91V280 MB91F273 (S) MB91F278 (S) I/O I/O I/O I/O アクセス禁止 アクセス禁止 CAN CAN 0000 0000H ダイレクトアドレッシング領域 “ I/O マップ ” を参照してください。 0000 0400H 0001 0000H 0002 0000H 0002 0500H アクセス禁止 0003 4000H 0003 A000H 0003 D800H アクセス禁止 内蔵 RAM 48 K バイト 内蔵 RAM 24 K バイト 0004 0000H アクセス禁止 アクセス禁止 エミュレー ション SRAM 領域 Flash 512 K バイト 外部領域 外部領域 0008 0000H 0010 0000H FFFF FFFFH <注意事項> MB91V280 のエミュレーション SRAM 領域の初期値は 512K バイト (0x80000-0x100000) です。SRAM 領域として最大 1024K バイト (0x50000-0x150000) までの領域をサポート します。 10 第 1 章 概要 1.6 端子機能説明 端子機能説明を示します。 ■ 端子機能説明 表 1.6-1 端子機能説明 (1 / 14) 端子番号 端子名 機能名 入出力 回路形式 * 90 X1 X1 OB 発振子出力端子です。 91 X0 X0 OA 発振子入力端子です。 52 INIT INIT N リセット入力端子 "L" アクティブです。 J 動作モード指定用入力端子 VCC または VSS に直結しま す。 49 ∼ 51 MD2 ∼ MD0 MD2 ∼ MD0 説明 ポート 0 P00 75 P00/AD00/ SIN5/INT8 汎用入出力ポート シングルチップモードで有効です。 AD00 T INT8 外部割込み要求 8 入力端子です。 SIN5 LIN-UART5 用シリアルデータ入力端子です。 P01 76 P01/AD01/ SOT5/INT9 汎用入出力ポート シングルチップモードで有効です。 AD01 T 77 外部割込み要求 9 入力端子です。 SOT5 LIN-UART5 用シリアルデータ出力端子です。 汎用入出力ポート シングルチップモードで有効です。 AD02 T 78 外部アドレス / データバス入出力端子 bit2 です。 外部バスが有効の場合にこの機能は有効です。 INT10 外部割込み要求 10 入力端子です。 SCK5 LIN-UART5 用クロック入出力端子です。 P03 P03/AD03/ SIN6/INT11 外部アドレス / データバス入出力端子 bit1 です。 外部バスが有効の場合にこの機能は有効です。 INT9 P02 P02/AD02/ SCK5/INT10 外部アドレス / データバス入出力端子 bit0 です。 外部バスが有効の場合にこの機能は有効です。 汎用入出力ポート シングルチップモードで有効です。 AD03 T INT11 SIN6 外部アドレス / データバス入出力端子 bit3 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 11 入力端子です。 LIN-UART6 用シリアルデータ入力端子です。 11 第 1 章 概要 表 1.6-1 端子機能説明 (2 / 14) 端子番号 端子名 機能名 入出力 回路形式 * P04 79 P04/AD04/ SOT6/INT12 汎用入出力ポート シングルチップモードで有効です。 AD04 T 80 外部割込み要求 12 入力端子です。 SOT6 LIN-UART6 用シリアルデータ出力端子です。 汎用入出力ポート シングルチップモードで有効です。 AD05 T P06/AD06/ INT14 外部割込み要求 13 入力端子です。 SCK6 LIN-UART6 用クロック入出力端子です。 AD06 汎用入出力ポート シングルチップモードで有効です。 T INT14 P07AD07/ INT15 AD07 外部アドレス / データバス入出力端子 bit6 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 14 入力端子です。 P07 82 外部アドレス / データバス入出力端子 bit5 です。 外部バスが有効の場合にこの機能は有効です。 INT13 P06 81 外部アドレス / データバス入出力端子 bit4 です。 外部バスが有効の場合にこの機能は有効です。 INT12 P05 P05/AD05/ SCK6/INT13 説明 汎用入出力ポート シングルチップモードで有効です。 T INT15 外部アドレス / データバス入出力端子 bit7 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 15 入力端子です。 ポート 1 P10 83 P10/AD08/ TIN1 AD08 汎用入出力ポート シングルチップモードで有効です。 T TIN1 リロードタイマ 1 用イベント入力端子です。 P11 84 P11/AD09/ TOT1 AD09 汎用入出力ポート シングルチップモードで有効です。 T TOT1 P12/AD10/ SIN3/INT11R 汎用入出力ポート シングルチップモードで有効です。 AD10 T SIN3 外部割込み要求 11 入力端子 (EISSR で設定 ) です。 P13 P13/AD11/ SOT3 AD11 SOT3 12 外部アドレス / データバス入出力端子 bit10 です。 外部バスが有効の場合にこの機能は有効です。 LIN-UART3 用シリアルデータ入力端子です。 INT11R 86 外部アドレス / データバス入出力端子 bit9 です。 外部バスが有効の場合にこの機能は有効です。 リロードタイマ 1 用出力端子です。 P12 85 外部アドレス / データバス入出力端子 bit8 です。 外部バスが有効の場合にこの機能は有効です。 汎用入出力ポート シングルチップモードで有効です。 T 外部アドレス / データバス入出力端子 bit11 です。 外部バスが有効の場合にこの機能は有効です。 LIN-UART3 用シリアルデータ出力端子です。 第 1 章 概要 表 1.6-1 端子機能説明 (3 / 14) 端子番号 端子名 機能名 入出力 回路形式 * P14 87 P14/AD12/ SCK3 AD12 汎用入出力ポート シングルチップモードで有効です。 T SCK3 P15/AD13/ SIN4 AD13 汎用入出力ポート シングルチップモードで有効です。 T SIN4 P16/AD14/ SOT4 AD14 汎用入出力ポート シングルチップモードで有効です。 T SOT4 P17/AD15/ SCK4 AD15 外部アドレス / データバス入出力端子 bit14 です。 外部バスが有効の場合にこの機能は有効です。 LIN-UART4 用シリアルデータ出力端子です。 P17 94 外部アドレス / データバス入出力端子 bit13 です。 外部バスが有効の場合にこの機能は有効です。 LIN-UART4 用シリアルデータ入力端子です。 P16 93 外部アドレス / データバス入出力端子 bit12 です。 外部バスが有効の場合にこの機能は有効です。 LIN-UART3 用クロック入出力端子です。 P15 92 説明 汎用入出力ポート シングルチップモードで有効です。 T SCK4 外部アドレス / データバス入出力端子 bit15 です。 外部バスが有効の場合にこの機能は有効です。 LIN-UART4 用クロック入出力端子です。 ポート 2 P20 95 P20/A16/ PPG9 A16 汎用入出力ポート シングルチップモードで有効です。 A PPG9 PPG9 用出力端子です。 P21 96 P21/A17/ PPGB A17 汎用入出力ポート シングルチップモードで有効です。 A PPGB P22/A18/ PPGD A18 汎用入出力ポート シングルチップモードで有効です。 A PPGD P23/A19/ PPGF AD19 汎用入出力ポート シングルチップモードで有効です。 A PPGF P24/A20/IN0 ∼ P27/A23/IN3 A20 ∼ A23 IN0 ∼ IN3 外部アドレスバス出力端子 bit19 です。 外部バスが有効の場合にこの機能は有効です。 PPGF 用出力端子です。 P24 ∼ P27 99, 100, 1, 2 外部アドレスバス出力端子 bit18 です。 外部バスが有効の場合にこの機能は有効です。 PPGD 用出力端子です。 P23 98 外部アドレスバス出力端子 bit17 です。 外部バスが有効の場合にこの機能は有効です。 PPGB 用出力端子です。 P22 97 外部アドレスバス出力端子 bit16 です。 外部バスが有効の場合にこの機能は有効です。 汎用入出力ポート シングルチップモードで有効です。 A 外部アドレスバス出力端子 bit20 ∼ bit23 です。 外部バスが有効の場合にこの機能は有効です。 インプットキャプチャ ICU0 ∼ ICU3 用データサンプル 入力端子です。 13 第 1 章 概要 表 1.6-1 端子機能説明 (4 / 14) 端子番号 端子名 機能名 入出力 回路形式 * 説明 ポート 3 P30 3 P30/AS/IN4 AS 汎用入出力ポート シングルチップモードで有効です。 A インプットキャプチャ ICU4 用データサンプル入力端子 IN4 です。 P31 4 P31/RD/IN5 RD 汎用入出力ポート シングルチップモードで有効です。 A P32/WR0/ RX2/INT10R です。 P32 汎用入出力ポート シングルチップモードで有効です。 WR0 外部データバスライトストローブ出力端子です。 外部バスが有効の場合に有効です。 WR0は16ビットアクセスでのデータの上位8ビットもし くは 8 ビットアクセスでのデータのライトストローブ として使用します。 A RX2 CAN2 RX 入力端子 (MB91V280 のみ ) です。 INT10R 6 7 P33/WR1/ TX2 P34/BRQ/ OUT4 外部割込み要求 10 入力端子 (EISSR で設定 ) です。 P33 汎用入出力ポート シングルチップモードで有効です。 WR1 外部データバス下位 8 ビットのライトストローブ出力 端子です。 外部バス有効かつ外部バス 16 ビットモードが選択され たときに有効です。 A TX2 CAN2 TX 出力端子 (MB91V280 のみ ) です。 P34 汎用入出力ポート シングルチップモードで有効です。 BRQ T (A) OUT4 P35/BGRNT/ OUT5 BGRNT 汎用入出力ポート シングルチップモードで有効です。 A OUT5 P36/RDY/ OUT6 RDY OUT6 14 外部バスアクノリッジ出力端子です。 外部バス有効かつバスリクエスト機能有効で有効 (MB91V280 のみ ) です。 アウトプットコンペア OCU5 用波形出力端子です。 P36 9 外部バスリクエスト入力端子です。 外部バス有効かつバスリクエスト機能有効で有効 (MB91V280 のみ ) です。 アウトプットコンペア OCU4 用波形出力端子です。 P35 8 外部リードストローブ出力端子です。 外部バスが有効の場合にこの機能は有効です。 インプットキャプチャ ICU5 用データサンプル入力端子 IN5 5 外部アドレスストローブ出力端子です。 外部バスが有効の場合にこの機能は有効です。 汎用入出力ポート シングルチップモードで有効です。 T 外部レディ入力端子です。 外部バス有効かつバスリクエスト機能有効で有効です。 アウトプットコンペア OCU6 用波形出力端子です。 第 1 章 概要 表 1.6-1 端子機能説明 (5 / 14) 端子番号 端子名 機能名 入出力 回路形式 * P37 10 P37/SYSCLK/ OUT7 SYSCLK 説明 汎用入出力ポート シングルチップモードで有効です。 外部クロック出力端子です。 外部バスが有効の場合にこの機能は有効です。 A OUT7 アウトプットコンペア OCU7 用波形出力端子です。 ポート 4 11, 12 P40, P41 A 汎用入出力ポートです ( 型格サフィックス "S" あり品 種)。 X0A, X1A WA WB サブクロック発振子入力端子です ( 型格サフィックス "S" なし品種 )。 P40/(X0A), P41/(X1A) P42 16 P42/IN6/RX1/ INT9R 汎用入出力ポートです。 インプットキャプチャ ICU6 用データサンプル入力端子 IN6 A RX1 CAN1 RX 入力端子です (MB91V280 のみ )。 INT9R 外部割込み要求 9 入力端子です (EISSR で設定 )。 P43 17 18 P43/IN7/TX1 P44/SDA0/ FRCK0 IN7 汎用入出力ポートです。 A P44 汎用入出力ポートです。 SDA0 C FRCK1 汎用入出力ポートです。 I2C0 用シリアルクロック入出力端子です。 C P46 SDA1 汎用入出力ポートです。 C P47 P47/ZIN2/ SCL1 SCL1 ZIN2 I2C1 用シリアルデータ入出力端子です。 アップダウンカウンタ 2/3 用 16/8 ビットダウンカウン ト入力端子です。 BIN2 21 16 ビット入出力タイマ 1 用入力端子です。 アップダウンカウンタ 2/3 用 16/8 ビットアップカウン ト入力端子です。 AIN2 P46/BIN2/ SDA1 I2C0 用シリアルデータ入出力端子です。 16 ビット入出力タイマ 0 用入力端子です。 SCL0 20 です。 CAN1 TX 出力端子です。(MB91V280 のみ )。 P45 19 インプットキャプチャ ICU7 用データサンプル入力端子 TX1 FRCK0 P45/AIN2/ SCL0/FRCK1 です。 汎用入出力ポートです。 C I2C1 用シリアルクロック入出力端子です。 アップダウンカウンタ 2/3 用 16/8 ビットリセット入力 端子です。 15 第 1 章 概要 表 1.6-1 端子機能説明 (6 / 14) 端子番号 端子名 機能名 入出力 回路形式 * 説明 ポート 5 P50 22 P50/AN8/ SIN2 AN8 汎用入出力ポートです。 D SIN2 LIN-UART2 用シリアルデータ入力端子です。 P51 23 P51/AN9/ SOT2 AN9 汎用入出力ポートです。 D SOT2 24 AN10 汎用入出力ポートです。 D SCK2 P53/AN11/ BIN1 AN11 汎用入出力ポートです。 D P54 P54/AN12/ AIN1 AN12 汎用入出力ポートです。 D P55 P55/AN13/ ZIN1 AN13 汎用入出力ポートです。 D P56 P56/AN14/ DAO0 AN14 汎用入出力ポートです。 E P57 P57/AN15/ DAO1 AN15 DAO1 16 A/D コンバータ用アナログ入力端子です。 D/A コンバータ用アナログ出力端子 0 です (MB91V280 のみ ) 。 DAO0 29 A/D コンバータ用アナログ入力端子です。 16 ビットアップダウンカウンタ 1 用 8 ビットリセット 入力端子です。 ZIN1 28 A/D コンバータ用アナログ入力端子です。 16 ビットアップダウンカウンタ 1 用 8 ビットアップカ ウント入力端子です。 AIN1 27 A/D コンバータ用アナログ入力端子です。 16 ビットアップダウンカウンタ 1 用 8 ビットダウンカ ウント入力端子です。 BIN1 26 A/D コンバータ用アナログ入力端子です。 LIN-UART2 用クロック入出力端子です。 P53 25 A/D コンバータ用アナログ入力端子です。 LIN-UART2 用シリアルデータ出力端子です。 P52 P52/AN10/ SCK2 A/D コンバータ用アナログ入力端子です。 汎用入出力ポートです。 E A/D コンバータ用アナログ入力端子です。 D/A コンバータ用アナログ出力端子 1 です (MB91V280 のみ ) 。 第 1 章 概要 表 1.6-1 端子機能説明 (7 / 14) 端子番号 端子名 機能名 入出力 回路形式 * 説明 ポート 6 P60 ∼ P67 汎用入出力ポートです。 AN0 ∼ AN7 34 ∼ 41 P60/AN0/ PPG0 ∼ P67/AN7/ PPGE PPG0 PPG2 PPG4 PPG6 PPG8 PPGA PPGC PPGE A/D コンバータ用アナログ入力端子です。 D PPG 用出力端子です。 ポート 7 43 ∼ 48 P70/AN16/ INT0 ∼ P75/AN21/ INT5 P70 ∼ P75 AN16 ∼ AN21 汎用入出力ポートです。 D A/D コンバータ用アナログ入力端子です。 INT0 ∼ INT5 外部割込み要求 0 ∼ 5 入力端子です。 P76 53 P76/AN22/ INT6/SDA2 汎用入出力ポートです。 AN22 INT6 A/D コンバータ用アナログ入力端子です。 CA 外部割込み要求 6 入力端子です。 I2C2 用シリアルデータ入出力端子です。 SDA2 P77 54 P77/AN23/ INT7/SCL2 汎用入出力ポートです。 AN23 INT7 A/D コンバータ用アナログ入力です。 CA 外部割込み要求 7 入力端子です。 I2C2 用シリアルクロック入出力端子です。 SCL2 ポート 8 P80 55 P80/TIN0/ INT12R/ ADTG 汎用入出力ポートです。 TIN0 ADTG A A/D コンバータ用トリガ入力端子です。 INT12R 外部割込み要求 12 入力端子です (EISSR で設定 ) 。 P81 56 P81/TOT0/ INT13R/ CKOT 汎用入出力ポートです。 TOT0 CKOT A 外部割込み要求 13 入力端子です (EISSR で設定 )。 P82 P82/TIN2/ SIN0/INT14R 汎用入出力ポートです。 SIN0 TIN2 INT14R リロードタイマ 0 用出力端子です。 クロックモニタ用出力端子です。 INT13R 57 リロードタイマ 0 用イベント入力端子です。 A LIN-UART0 用シリアルデータ入力端子です。 リロードタイマ 2 用イベント入力端子です。 外部割込み要求 14 入力端子です (EISSR で設定 )。 17 第 1 章 概要 表 1.6-1 端子機能説明 (8 / 14) 端子番号 端子名 58 P83/TOT2/ SOT0 機能名 入出力 回路形式 * P83 SOT0 汎用入出力ポートです。 A TOT2 59 SCK0 汎用入出力ポートです。 A INT15R P85/SIN1 SIN1 A P86/SOT1 SOT1 A P87/SCK1 SCK1 汎用入出力ポートです。 LIN-UART1 用シリアルデータ出力端子です。 P87 62 汎用入出力ポートです。 LIN-UART1 用シリアルデータ入力端子です。 P86 61 LIN-UART0 用クロック入出力端子です。 外部割込み要求 15 入力端子 です (EISSR で設定 )。 P85 60 LIN-UART0 用シリアルデータ出力端子です。 リロードタイマ 2 用出力端子です。 P84 P84/SCK0/ INT15R 説明 A 汎用入出力ポートです。 LIN-UART1 用クロック入出力端子です。 ポート 9 P90 65 66 67 68 P90/PPG1/ CS0 P91/PPG3/ AIN3/CS1 P92/PPG5/ BIN3/CS2 P93/PPG7/ ZIN3/CS3 CS0 A 外部チップセレクト 0 です。 外部バスが有効の場合にこの機能は有効です。 PPG1 PPG1 用出力端子です。 P91 汎用入出力ポートです。 CS1 外部チップセレクト 1 です。 外部バスが有効の場合にこの機能は有効です。 A PPG3 PPG3 用出力端子です。 AIN3 アップダウンカウンタ 3 用 8 ビットアップカウント入 力端子です。 P92 汎用入出力ポートです。 CS2 外部チップセレクト 2 です。 外部バスが有効の場合にこの機能は有効です。 A PPG5 PPG5 用出力端子です。 BIN3 アップダウンカウンタ 3 用 8 ビットダウンカウント入 力端子です。 P93 汎用入出力ポートです。 CS3 外部チップセレクト 3 です。 外部バスが有効の場合にこの機能は有効です。 A PPG7 ZIN3 18 汎用入出力ポートです。 PPG7 用出力端子です。 アップダウンカウンタ 3 用 8 ビットリセット入力端子 です。 第 1 章 概要 表 1.6-1 端子機能説明 (9 / 14) 端子番号 端子名 機能名 入出力 回路形式 * P94 69 P94/OUT0/ AIN0 OUT0 汎用入出力ポートです。 A P95 P95/OUT1/ BIN0 OUT1 汎用入出力ポートです。 A P96 P96/OUT2/ ZIN0 OUT2 汎用入出力ポートです。 A P97 P97/OUT3 OUT3 アウトプットコンペア OCU2 用波形出力端子です。 アップダウンカウンタ 0/1 用 16/8 ビットリセット入力 端子です。 ZIN0 72 アウトプットコンペア OCU1 用波形出力端子です。 アップダウンカウンタ 0/1 用 16/8 ビットダウンカウン ト入力端子です。 BIN0 71 アウトプットコンペア OCU0 用波形出力端子です。 アップダウンカウンタ 0/1 用 16/8 ビットアップカウン ト入力端子です。 AIN0 70 説明 A 汎用入出力ポートです。 アウトプットコンペア OCU3 用波形出力端子です。 ポート A PA0 73 PA0/RX0/ INT8R RX0 汎用入出力ポートです。 A INT8R 外部割込み要求 8 入力端子です (EISSR で設定 )。 PA1 74 PA1/TX0 TX0 CAN0 用 RX 入力端子です。 A 汎用入出力ポートです。 CAN0 用 TX 出力です。 ポート B (MB91V280) PB0 − PB0 INT8-2 汎用入出力ポートです。 A LIN-UART5 用シリアルデータ入力端子です (PFRB で 設定 ) 。 SIN5-2 PB1 − PB1 INT9-2 汎用入出力ポートです。 A SOT5-2 PB2 INT10-2 汎用入出力ポートです。 A SCK5-2 PB3 INT11-2 SIN6-2 外部割込み要求 10 入力端子 です (EPFRB で設定 )。 LIN-UART5 用クロック入出力端子です (PFRB で設定 )。 PB3 − 外部割込み要求 9 入力端子です (EPFRB で設定 )。 LIN-UART5 用シリアルデータ出力端子です。 PB2 − 外部割込み要求 8 入力端子です (EPFRB で設定 ) 。 汎用入出力ポートです。 A 外部割込み要求 11 入力端子です (EPFEB で設定 )。 LIN-UART6 用シリアルデータ入力端子です (PFRB で 設定 ) 。 19 第 1 章 概要 表 1.6-1 端子機能説明 (10 / 14) 端子番号 端子名 機能名 入出力 回路形式 * PB4 − PB4 INT12-2 汎用入出力ポートです。 A SOT6-2 PB5 INT13-2 外部割込み要求 12 入力端子です (EPFRB で設定 )。 LIN-UART6 用シリアルデータ出力端子です。 PB5 − 説明 汎用入出力ポートです。 A SCK6-2 外部割込み要求 13 入力端子 です (EPFRB で設定 ) 。 LIN-UART6 用クロック入出力端子です (PFRB で設定 )。 ポート C (MB91V280) PC0 − PC0 OUT4-2 汎用入出力ポートです。 A INT0R 外部割込み要求 0 入力端子です (EISSR で設定 )。 PC1 − PC1 OUT5-2 汎用入出力ポートです。 A INT1R PC2 SIN3-2 汎用入出力ポートです。 A INT2R PC3 SOT3-2 汎用入出力ポートです。 A INT3R PC4 SCK3-2 汎用入出力ポートです。 A INT4R PC5 SIN4-2 汎用入出力ポートです。 A INT5R PC6 SOT4-2 汎用入出力ポートです。 A INT6R PC7 SCK4-2 INT7R 20 LIN-UART4 用シリアルデータ出力端子です。 外部割込み要求 6 入力端子です (EISSR で設定 )。 PC7 − LIN-UART4 用シリアルデータ入力端子です (PFRC で 設定 ) 。 外部割込み要求 5 入力端子です (EISSR で設定 )。 PC6 − LIN-UART3 用クロック入出力端子です (PFRC で設定 )。 外部割込み要求 4 入力端子です (EISSR で設定 ) 。 PC5 − LIN-UART3 用シリアルデータ出力端子です。 外部割込み要求 3 入力端子です (EISSR で設定 )。 PC4 − LIN-UART3 用シリアルデータ入力端子です (PFRC で 設定 )。 外部割込み要求 2 入力端子です (EISSR で設定 )。 PC3 − アウトプットコンペア OCU5 用出力端子です。 外部割込み要求 1 入力端子です (EISSR で設定 )。 PC2 − アウトプットコンペア OCU4 用出力端子です。 汎用入出力ポートです。 A LIN-UART4 用クロック入出力端子です (PFRC で設定 )。 外部割込み要求 7 入力端子です (EISSR で設定 )。 第 1 章 概要 表 1.6-1 端子機能説明 (11 / 14) 端子番号 端子名 機能名 入出力 回路形式 * 説明 ポート D (MB91V280) PD0 − PD0 INT16 汎用入出力ポートです。 A PPG9-2 PPG9(8) 用出力端子です。 PD1 − PD1 INT17 汎用入出力ポートです。 A PPGB-2 PD2 INT18 汎用入出力ポートです。 A PPGD-2 PD3 INT19 汎用入出力ポートです。 A PPGF-2 PD4 INT20 汎用入出力ポートです。 A PD5 PD5 INT21 汎用入出力ポートです。 A PD6 PD6 INT22 汎用入出力ポートです。 A PD7 PD7 INT23 外部割込み要求 22 入力端子です。 インプットキャプチャ ICU2 用入力端子です (PFRD で 設定 )。 IN2-2 − 外部割込み要求 21 入力端子です。 インプットキャプチャ ICU1 用入力端子です (PFRD で 設定 ) 。 IN1-2 − 外部割込み要求 20 入力端子です。 インプットキャプチャ ICU0 用入力端子です (PFRD で 設定 )。 IN0-2 − 外部割込み要求 19 入力端子です。 PPGF(E) 用出力端子です。 PD4 − 外部割込み要求 18 入力端子です。 PPGD(C) 用出力端子です。 PD3 − 外部割込み要求 17 入力端子です。 PPGB(A) 用出力端子です。 PD2 − 外部割込み要求 16 入力端子です。 汎用入出力ポートです。 A 外部割込み要求 23 入力端子です。 インプットキャプチャ ICU3 用入力端子です。(PFRD で設定 )。 IN3-2 ポート E (MB91V280) PE0 − PE0 A00 INT24 汎用入出力ポートです。 A 外部アドレスバス出力端子 bit0 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 24 入力端子です。 21 第 1 章 概要 表 1.6-1 端子機能説明 (12 / 14) 端子番号 端子名 機能名 入出力 回路形式 * PE1 − PE1 A01 汎用入出力ポートです。 A INT25 PE2 A02 汎用入出力ポートです。 A INT26 PE3 A03 汎用入出力ポートです。 A INT27 PE4 A04 汎用入出力ポートです。 A INT28 PE5 A05 汎用入出力ポートです。 A INT29 PE6 A06 汎用入出力ポートです。 A INT30 PE7 A07 外部アドレスバス出力端子 bit6 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 30 入力端子です。 PE7 − 外部アドレスバス出力端子 bit5 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 29 入力端子です。 PE6 − 外部アドレスバス出力端子 bit4 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 28 入力端子です。 PE5 − 外部アドレスバス出力端子 bit3 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 27 入力端子です。 PE4 − 外部アドレスバス出力端子 bit2 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 26 入力端子です。 PE3 − 外部アドレスバス出力端子 bit1 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 25 入力端子です。 PE2 − 説明 汎用入出力ポートです。 A INT31 外部アドレスバス出力端子 bit7 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 31 入力端子です。 ポート F (MB91V280) PF0 − PF0 A08 汎用入出力ポートです。 A INT32 外部割込み要求 32 入力端子です。 PF1 − PF1 A09 INT33 22 外部アドレスバス出力端子 bit8 です。 外部バスが有効の場合にこの機能は有効です。 汎用入出力ポートです。 A 外部アドレスバス出力端子 bit9 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 33 入力端子です。 第 1 章 概要 表 1.6-1 端子機能説明 (13 / 14) 端子番号 端子名 機能名 入出力 回路形式 * PF2 − PF2 A10 汎用入出力ポートです。 A INT34 PF3 A11 汎用入出力ポートです。 A INT35 PF4 A12 汎用入出力ポートです。 A INT36 PF5 A13 汎用入出力ポートです。 A INT37 PF6 A14 汎用入出力ポートです。 A INT38 PF7 A15 外部アドレスバス出力端子 bit14 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 38 入力端子です。 PF7 − 外部アドレスバス出力端子 bit13 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 37 入力端子です。 PF6 − 外部アドレスバス出力端子 bit12 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 36 入力端子です。 PF5 − 外部アドレスバス出力端子 bit11 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 35 入力端子です。 PF4 − 外部アドレスバス出力端子 bit10 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 34 入力端子です。 PF3 − 説明 汎用入出力ポートです。 A INT39 外部アドレスバス出力端子 bit15 です。 外部バスが有効の場合にこの機能は有効です。 外部割込み要求 39 入力端子です。 ポート G (MB91V280) PG0 − PG0 − PG1 − PG2 − PG3 − PG4 AN24 D A/D コンバータ用アナログ入力端子です。 PG1 AN25 D D D 汎用入出力ポートです。 A/D コンバータ用アナログ入力端子です。 PG4 AN28 汎用入出力ポートです。 A/D コンバータ用アナログ入力端子です。 PG3 AN27 汎用入出力ポートです。 A/D コンバータ用アナログ入力端子です。 PG2 AN26 汎用入出力ポートです。 D 汎用入出力ポートです。 A/D コンバータ用アナログ入力端子です。 23 第 1 章 概要 表 1.6-1 端子機能説明 (14 / 14) 端子番号 端子名 − PG5 − PG6 − PG7 機能名 入出力 回路形式 * PG5 AN29 汎用入出力ポートです。 D A/D コンバータ用アナログ入力端子です。 PG6 AN30 汎用入出力ポートです。 D A/D コンバータ用アナログ入力端子です。 PG7 AN31 説明 汎用入出力ポートです。 D A/D コンバータ用アナログ入力端子です。 電源端子 13, 63, 88 VCC − − 電源入力端子 (5V) です。 14, 42, 64, 89 VSS − − 電源入力端子 (0V) です。 15 C − − 電源安定化容量端子です。 30 AVCC − − アナログ電源入力端子です。 31 AVRH − − A/D コンバータ用基準電圧入力端子です。 この電源の投入 / 切断は必ず AVCC に AVRH 以上の電 位が印加されている状態で行ってください。 32 AVRL − − A/D コンバータ用低基準電圧入力端子です。 33 AVSS − − アナログ VSS 入力端子です。 *:入出力回路形式については ,「1.7 入出力回路形式」を参照してください。 24 第 1 章 概要 ■ 入出力端子番号 表 1.6-2 入出力端子番号 パッケージ端子番号 端子名 LQFP100 X1 90 X0 91 INIT 52 P00 ∼ P07 75 ∼ 82 P10 ∼ P14 83 ∼ 87 P15 ∼ P17 92 ∼ 94 P20 ∼ P25 95 ∼ 100 P26, P27 1, 2 P30 ∼ P33 3∼6 P34, P35 7, 8 P36, P37 9, 10 P40, P41 11, 12 X0A, X1A [11, 12] P42 ∼ P47 16 ∼ 21 P50 ∼ P57 22 ∼ 29 P60 ∼ P67 34 ∼ 41 P70 ∼ P75 43 ∼ 48 P76, P77 53, 54 P80 ∼ P87 55 ∼ 62 P90 ∼ P93 65 ∼ 68 P94 ∼ P97 69 ∼ 72 PA0, PA1 73, 74 AVCC 30 AVRH 31 AVRL 32 AVSS 33 MD2 ∼ MD0 49 ∼ 51 VCC 13, 63, 88 VSS 14, 42, 64, 89 C 15 25 第 1 章 概要 入出力回路形式 1.7 入出力回路形式について示します。 ■ I/O セル一覧 表 1.7-1 I/O セル一覧 入力 出力 ドライバ コメント 入力停止 アナログ ライン CS/A スイッチ 停止 − 4mA − − CS/A スイッチ 停止 − 4mA − C* − CS/A スイッチ 停止 − 3mA I2C CA * − CS/A スイッチ 停止 入力 3mA I2C + ADC D Up/Down スイッチ CS/A スイッチ 停止 入力 4mA ADC E − CS/A スイッチ 停止 入出力 4mA ADC + DAC J − C − − − MD2 ∼ MD0 N Up CS(initx) − − − INITX T Up/Down スイッチ CS/A/TTL スイッチ 停止 − 4mA TTL 入力あり OA OB − − 停止 − − 4MHz 発振子 WA WB − − 停止 − − 32kHz 発振子 Pull Up/Down (50kΩ) CMOS(C) CMOS Schmitt(CS) Automotive(A) A Up/Down スイッチ B Type *:C および CA のポートが I2C インタフェース用に設定されている場合は , 出力は N-ch オープン ドレインとなります。それ以外の場合では , CMOS 出力です。 ■ 端子入力電圧 表 1.7-2 端子入力電圧 形式 VIL 種類 VIH C CMOS 入力 VSS + 0.3V VCC − 0.3V CS (initx) CMOS シュミットトリガ入力 (INITX 端子用 ) 0.2 × VCC 0.8 × VCC CS CMOS シュミットトリガ入力 0.3 × VCC 0.7 × VCC A CMOS オートモーティブシュミットトリガ入力 0.5 × VCC 0.8 × VCC T TTL 入力 0.8V 2.1V 26 第 1 章 概要 ■ 入出力回路形式 表 1.7-3 入出力回路形式 ( 1 / 4 ) 分類 回路 備考 プルアップ制御 P-ch P-ch Pout N-ch N-ch Nout A • CMOS レベル出力 (IOL = 4mA, IOH = − 4mA) • CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) • Automotive 入力 ( スタンバイ時入力遮断機能付き ) • プルアップ抵抗設定可能抵抗: 約 50kΩ プルダウン制御 CMOS ヒステリシス入力 Automotive入力 入力遮断用 スタンバイ制御 P-ch Pout N-ch Nout B CMOS ヒステリシス入力 • CMOS レベル出力 (IOL = 4mA, IOH = − 4mA) • CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) • Automotive 入力 ( スタンバイ時入力遮断機能付き ) Automotive入力 入力遮断用 スタンバイ制御 C P-ch Pout N-ch Nout CMOS ヒステリシス入力 • CMOS レベル出力 (IOL = 3mA, IOH = − 3mA) • CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) • Automotive 入力 ( スタンバイ時入力遮断機能付き ) Automotive入力 入力遮断用 スタンバイ制御 27 第 1 章 概要 表 1.7-3 入出力回路形式 ( 2 / 4 ) 分類 回路 備考 P-ch Pout N-ch Nout CMOS ヒステリシス入力 CA • CMOS レベル出力 (IOL = 3mA, IOH = − 3mA) • CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) • Automotive 入力 ( スタンバイ時入力遮断機能付き ) • A/D アナログ入力 Automotive入力 入力遮断用 スタンバイ制御 アナログ入力 プルアップ制御 D P-ch P-ch Pout N-ch N-ch Nout プルダウン制御 CMOS ヒステリシス入力 Automotive入力 入力遮断用 スタンバイ制御 アナログ入力 28 • CMOS レベル出力 (IOL = 4mA, IOH = − 4mA) • CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) • Automotive 入力 ( スタンバイ時入力遮断機能付き ) • プルアップ抵抗設定可能抵抗: 約 50kΩ • A/D アナログ入力 第 1 章 概要 表 1.7-3 入出力回路形式 ( 3 / 4 ) 分類 回路 備考 P-ch Pout N-ch Nout CMOS ヒステリシス入力 Automotive入力 E • CMOS レベル出力 (IOL = 4mA, IOH = − 4mA) • CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) • Automotive 入力 ( スタンバイ時入力遮断機能付き ) • A/D アナログ入力 • D/A アナログ出力 入力遮断用 スタンバイ制御 アナログ入力 アナログ出力 • CMOS ヒステリシス入力 J N CMOS ヒステリシス入力 • CMOS ヒステリシス入力 • プルアップ抵抗値 : 約 50kΩ プルアップ抵抗 CMOS ヒステリシス入力 プルアップ制御 T P-ch P-ch Pout N-ch N-ch Nout プルダウン制御 • CMOS レベル出力 (IOL = 4mA, IOH = − 4mA) • CMOS ヒステリシス入力 ( スタンバイ時入力遮断機能付き ) • Automotive 入力 ( スタンバイ時入力遮断機能付き ) • TTL ( スタンバイ時入力遮断機能付き ) • プルアップ抵抗設定可能抵抗: 約 50kΩ CMOS ヒステリシス入力 Automotive入力 TTL入力 入力遮断用 スタンバイ制御 29 第 1 章 概要 表 1.7-3 入出力回路形式 ( 4 / 4 ) 分類 回路 備考 発振回路 • 高速発振帰還抵抗 = 約 1MΩ X1 OA OB X0 スタンバイ制御信号 X1A WA WB Xout X0A スタンバイ制御信号 30 発振回路 • 低速発振帰還抵抗 = 約 10MΩ 第2章 デバイス使用上の注意 MB91270 シリーズの取扱い上の注意について説明 します。 2.1 デバイス使用上の注意 31 第 2 章 デバイス使用上の注意 2.1 デバイス使用上の注意 ラッチアップ防止 , 端子処理 , 回路の取扱い , および電源投入時の入力などについて 説明します。 ■ ラッチアップ防止のために CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した 場合 , または , VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象 を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に 至ることがありますので使用に際しては最大定格を超えることのないよう十分に注意 してください。 ■ 未使用入力端子の処理について 使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま すので , プルアップまたはプルダウンなどの処理をしてください。 ■ 電源端子について VCC・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた めにデバイス内部で同電位にすべきもの同士を接続してありますが , 不要輻射の低減・ グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を遵守 などのために , 必ずそれらすべてを外部で電源およびグランドに接続してください。ま た , 電流供給源からできるかぎり低インピーダンスで本デバイスの VCC, VSS に接続す るような配慮をお願いします。 さらに , 本デバイスの近くで , VCC と VSS の間に 0.1µF 程度のセラミックコンデンサを バイパスコンデンサとして接続することをお勧めします。 本シリーズには , レギュレータが内蔵されています。本デバイスを 5 V 電源で使用す る場合は , 5 V 電源を VCC 端子に供給し , レギュレータ用に必ず C 端子に 1 µF 程度の バイパスコンデンサを接続してください。 ■ 水晶発振回路について X0, X1, X0A, X1A 端子の近辺のノイズは本デバイスの誤動作のもととなります。X0 と X1, X0A と X1A および水晶発振子 ( あるいはセラミック発振子 ) さらにグランドへの バイパスコンデンサはできるかぎり近くに配置するようにプリント板を設計してくだ さい。 また , X0, X1, X0A, X1A 端子の回りをグランドで囲むようなプリント板アートワーク は安定した動作を期待できますので , 強くお勧めします。 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 32 第 2 章 デバイス使用上の注意 ■ 外部クロック使用時の注意 外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク ロックを同時に供給してください。ただし , この場合には STOP モード ( 発振停止モー ド ) は使用しないでください。(STOP 時 X1 端子が "H" 出力で停止するため ) 図 2.1-1 外部クロック使用例 ( 通常 ) X0 X1 <注意事項> STOP モード ( 発振停止モード ) は使用できません。 ■ サブクロックを使用しない場合の注意について サブクロックを使用しない場合は , 1 系統品をご使用ください。2 系統品は必ず 100kHz 以下の振動子を接続してください。 ■ NC, OPEN 端子の処理について NC 端子 , OPEN 端子は , 必ず開放にして使用してください。 ■ モード端子 (MD0 ∼ MD2) について これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤っ てテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子と VCC または VSS 間のパターン長をできるかぎり短くし , これらを低インピーダンスで 接続するようにしてください。 ■ 電源投入時について 電源投入時は , INIT 端子を "L" レベルにしておくことが必要です。 ■ 電源投入時の原振入力について 電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。 ■ PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたり , クロック入力が 停止した場合には PLL 内部の自励発振回路の自走周波数で動作を継続し続ける場合が あります。この動作は保証外の動作です。 ■ 外バスの設定 本品種は , 外部バス 16 MHz の保証となっています。 DIVR1 ( 外部バス基本クロック分周設定レジスタ ) を初期値のまま , ベースクロックを 32 MHz に設定すると , 外バスも 32 MHz になります。ベースクロックを変更する際には , 外 部バスが 16 MHz を超えないように設定したのち , ベースクロックを変更してください。 ■ プルアップコントロール 外部バス端子として使用する端子に対してプルアップ抵抗を付けると AC 規格を保証 できません。 33 第 2 章 デバイス使用上の注意 ■ 同期モードのソフトウェアリセットについて ( 評価用品 MB91V280 のみ ) 同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジス タ ) の SRST ビットに "0" を設定する前に , 以下 2 つの条件を必ず満たしてください。 • 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する。 • NMI を使用しない。 34 第3章 CPU および制御部 FR ファミリの CPU コアの機能を知るために , アー キテクチャ , 仕様 , 命令などについて説明します。 3.1 メモリ空間 3.2 内部アーキテクチャ 3.3 プログラミングモデル 3.4 データ構造 3.5 メモリマップ 3.6 分岐命令 3.7 EIT ( 例外・割込み・トラップ ) 3.8 動作モード 3.9 クロック生成制御 3.10 デバイス状態制御 3.11 メイン発振安定待ちタイマ 35 第 3 章 CPU および制御部 メモリ空間 3.1 FR ファミリの論理アドレス空間は 4 G バイト (232 番地 ) あり , CPU はリニアにア クセスを行います。 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ スを指定できます。 ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。 • バイトデータアクセス:000H ∼ 0FFH • ハーフワードアクセス:000H ∼ 1FFH • ワードデータアクセス:000H ∼ 3FFH ■ メモリマップ 図 3.1-1 に , メモリ空間を示します。 図 3.1-1 メモリマップ シングル チップモード 内ROM 外バスモード 0000 0000H 0000 0400H 0001 0002 I/O 0000H 0000H アクセス禁止 0004 0005 0000H F-bus領域 0000H アクセス禁止 アクセス禁止 0010 0000H I/O ユーザ ROM領域 外ROM 外バスモード I/O I/O I/O I/O アクセス禁止 アクセス禁止 F-bus領域 ダイレクト アドレッシング領域 I/Oマップ参照 F-bus領域 アクセス禁止 ユーザ ROM領域 外部領域 アクセス禁止 外部領域 FFFF FFFFH 各モードの設定は , INIT ネゲート後のモードベクタフェッチにより決定します ( モー ドの設定に関しては , 「3.8.2 モード設定」を参照してください ) 。 36 第 3 章 CPU および制御部 3.2 内部アーキテクチャ ここでは , FR ファミリの内部アーキテクチャの構造および命令概要について説明し ます。 ■ 内部アーキテクチャの概要 FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向けた 高機能命令を導入した , 高性能コアです。 37 第 3 章 CPU および制御部 3.2.1 内部アーキテクチャ ここでは , 内部アーキテクチャの特長および構造について説明します。 ■ 内部アーキテクチャの特長 • RISC アーキテクチャの採用 基本命令 1 命令 1 サイクル • 32 ビットアーキテクチャ 汎用レジスタ 32 ビット× 16 本 • 4 G バイトのリニアなメモリ空間 • 乗算器の搭載 32 ビット× 32 ビット乗算 5 サイクル 16 ビット× 16 ビット乗算 3 サイクル • 割込み処理機能の強化 高速応答速度 (6 サイクル ) 多重割込みのサポート レベルマスク機能 (16 レベル ) • I/O 操作用命令の強化 メモリ−メモリ転送命令 ビット処理命令 • 高いコード効率 基本命令語長 16 ビット • 低消費電力 スリープモード / ストップモード ギア機能 38 第 3 章 CPU および制御部 ■ 内部アーキテクチャの構造 FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構 造を採用しています。 32 ビット←→ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周 辺リソースとのインタフェースを実現します。 ハーバード←→プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ スコントローラとのインタフェースを実現します。 図 3.2-1 に内部アーキテクチャの構造を示します。 図 3.2-1 内部アーキテクチャの構造 FR CPU D-bus I-bus 32 Iアドレス ハーバード 32 外部アドレス 24 Iデータ 外部データ Dアドレス 32 16 プリンストン データ RAM バス Dデータ 32 32ビット Fアドレス 32 16ビット Fデータ 32 コンバータ バスコンバータ 16 F-bus R-bus 周辺リソース 内部I/O バスコンバータ 39 第 3 章 CPU および制御部 ■ CPU CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの です。1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採 用しています。パイプラインは以下のステージから構成されています。 図 3.2-2 に , 命令パイプラインの構成を示します。 • 命令フェッチ (IF) …… 命令アドレスを出力し , 命令をフェッチします。 • 命令デコード (ID) …… フェッチした命令をデコードします。レジスタの読出しも 行います。 • 実行 (EX) ……………… 演算を実行します。 • メモリアクセス (MA)… メモリに対するロードまたはストアのアクセスを行いま す。 • ライトバック (WB)…… 演算結果 (またはロードされたメモリデータ) をレジスタに 書き込みます。 図 3.2-2 命令パイプライン CLK 命令1 WB 命令2 MA WB 命令3 EX MA WB 命令4 ID EX MA WB 命令5 IF ID EX MA WB IF ID EX MA 命令6 WB 命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。 命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ リウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い 場合も命令の実行速度が低下します。 ■ 32 ビット←→ 16 ビットバスコンバータ 32 ビット←→ 16 ビットバスコンバータは , 32 ビット幅で高速アクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU から内蔵周辺回 路へのデータアクセスを実現します。 CPU から R-bus に対し 32 ビット幅のアクセスがあった場合 , このバスコンバータがそ れを 2 回の 16 ビット幅アクセスに変換してアクセスを行います。内蔵周辺回路の一部 にはアクセス幅に関して制限のあるものがあります。 40 第 3 章 CPU および制御部 ■ ハーバード←→プリンストン バスコンバータ ハーバード←→プリンストン バスコンバータは , CPU の命令アクセスとデータアクセ スの整合をとり , 外部バスとのスムーズなインタフェースを実現します。 CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 , 外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構 造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位を付 け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス アクセス順位が常に最適化されたものになります。 41 第 3 章 CPU および制御部 3.2.2 命令概要 FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理 演算とビット操作およびダイレクトアドレッシング命令をサポートしています。 各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効 率を持ちます。 命令セットは以下の機能グループに分けることができます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ■ 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や , アドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算命令を持ちます。 また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま す。 算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行 います。 ■ ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺回路 (I/O) への読出しと書込みにも使用されます。 ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ ジスタ間接のメモリアドレッシングも可能です。 ■ 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと 持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ いては後述します。 42 第 3 章 CPU および制御部 ■ 論理演算とビット操作 論理演算命令は汎用レジスタ間または汎用レジスタとメモリ ( および I/O) 間で AND, OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/O) の内容を直接操作することができます。 メモリアドレッシングは一般的なレジスタ間接です。 ■ ダイレクトアドレッシング ダイレクトアドレッシング命令は , I/O と汎用レジスタ間または I/O とメモリ間のアク セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも 可能です。 ■ その他の命令概要 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 43 第 3 章 CPU および制御部 3.3 プログラミングモデル FR ファミリのプログラミングモデル , 汎用レジスタ , および専用レジスタについて 説明します。 ■ 基本プログラミングモデル 図 3.3-1 に , FR ファミリの基本プログラミングモデルを示します。 図 3.3-1 基本プログラミングモデル 32ビット 〔初期値〕 R0 XXXX XXXXH R1 汎用レジスタ R12 R13 AC R14 R15 プログラムカウンタ PC プログラムステータス PS テーブルベースレジスタ TBR リターンポインタ RP システムスタックポインタ SSP 44 ユーザスタックポインタ USP 乗除算結果レジスタ MDH MDL XXXX XXXXH FP 0000 0000H SP ILM SCR CCR 第 3 章 CPU および制御部 3.3.1 汎用レジスタ レジスタ R0 ∼ R15 は汎用レジスタです。 各種演算におけるアキュムレータ , およびメモリアクセスのポインタとして使用さ れます。 ■ 汎用レジスタ 図 3.3-2 に , 汎用レジスタの構成を示します。 図 3.3-2 汎用レジスタの構成 32ビット 〔初期値〕 R0 R1 R12 R13 R14 R15 XXXX XXXXH AC FP SP XXXX XXXXH 0000 0000H 16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために 一部の命令が強化されています。 • R13: 仮想アキュムレータ • R14: フレームポインタ • R15: スタックポインタ リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな ります。 45 第 3 章 CPU および制御部 3.3.2 専用レジスタ 専用レジスタは , 特定の目的のために使用します。 FR ファミリでは , 以下の専用レジスタが用意されています。 • PS (Program Status) • CCR (Condition Code Register) • SCR (System Condition code Register) • ILM • PC (Program Counter) • TBR (Table Base Register) • RP (Return Pointer) • SSP (System Stack Pointer) • USP (User Stack Pointer) • 乗除算レジスタ (Multiply & Divide register) ■ PS (Program Status) PS は , プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパー トに分かれています。 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。 書込みは無効です。 PS(Program Status) のレジスタ構成は , 以下のとおりです。 bit 31 16 20 ILM 46 10 8 7 SCR 0 CCR 第 3 章 CPU および制御部 ■ CCR (Condition Code Register) CCR(Condition Code Register) のレジスタ構成は , 以下のとおりです。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 − − S I N Z V C [ 初期値 ] --00XXXXB [bit5] スタックフラグ R15 として使用されるスタックポインタを指定します。 値 内 容 0 SSP が R15 として使用されます。 EIT 発生時 , 自動的に "0" となります。 ( ただし , スタックに退避される値はクリアされる前の値です。) 1 USP が R15 として使用されます。 • リセットにより "0" にクリアされます。 • RETI 命令実行時は "0" に設定してください。 [bit4] 割込み許可フラグ ユーザ割込み要求の許可・禁止を制御します。 値 内 容 0 ユーザ割込み禁止。 INT 命令実行時 , "0" にクリアされます。 ( ただし , スタック退避させる値はクリアする前の値です。) 1 ユーザ割込み許可。 ユーザ割込み要求のマスク処理は , ILM の保持する値により制御され ます。 • リセットにより "0" にクリアされます。 [bit3] ネガティブフラグ 演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。 値 内 容 0 演算結果が正の値であったことを示します。 1 演算結果が負の値であったことを示します。 • リセットによる初期状態は不定です。 47 第 3 章 CPU および制御部 [bit2] ゼロフラグ 演算結果が 0 であったかどうかを示します。 値 内 容 0 演算結果が 0 以外の値であったことを示します。 1 演算結果が 0 であったことを示します。 • リセットによる初期状態は不定です。 [bit1] オーバフローフラグ 演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 , オーバフローが生じたかどうかを示します。 値 内 容 0 演算の結果 , オーバフローは生じていないことを示します。 1 演算の結果 , オーバフローが生じたことを示します。 • リセットによる初期状態は不定です。 [bit0] キャリフラグ 演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示しま す。 値 内 容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 • リセットによる初期状態は不定です。 48 第 3 章 CPU および制御部 ■ SCR (System Condition code Register) SCR(System Condition code Register) のレジスタ構成は , 以下のとおりです。 bit10 bit9 bit8 D1 D0 T [ 初期値 ] XX0B [bit10, bit9] ステップ除算用フラグ ステップ除算実行時の中間データを保持します。 除算処理の実行途中は , 変更しないでください。ステップ除算実行途中にほかの処 理を行う場合は , PS レジスタの値を退避・復帰することによりステップ除算の再開 が保証されます。 • リセットによる初期状態は不定です。 • DIV0S 命令の実行により被除数と除数を参照して設定されます。 • DIV0U 命令の実行により , 強制的にクリアされます。 • DIV0S/DIV0U 命令とユーザ割込み , NMI 同時受付け EIT 処理ルーチン内で , EIT 分岐前の PS レジスタの D0/D1 ビットを期待した処理を行わないでください。 • DIV0S/DIV0U 命令の直前に , ブレーク , ステップなどで停止させた場合 , PS レジ スタの D0/D1 ビットの表示は正しい値とならないことがあります。ただし , 復帰 後の演算結果は正しいものになります。 [bit8] ステップトレーストラップフラグ ステップトレーストラップを有効にするかどうかを指定するフラグです。 値 内 容 0 ステップトレーストラップ無効 1 ステップトレーストラップ有効 このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となりま す。 • リセットにより "0" に初期化されます。 • ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使 用時 , ユーザプログラム中で使用することはできません。 49 第 3 章 CPU および制御部 ■ ILM ILM のレジスタ構成は , 以下のとおりです。 bit20 bit19 bit18 bit17 bit16 ILM4 ILM3 ILM2 ILM1 ILM0 [ 初期値 ] 01111B 割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク に使用されます。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。 プログラムから設定可能な値には制限があります。 • 元の値が 16 ∼ 31 の時: 新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると , ( 指定した値+ 16) という値が転送されます。 • 元の値が 0 ∼ 15 の時: 0 ∼ 31 の任意の値が設定可能です。 リセットにより , 15(01111B) に初期化されます。 ■ PC (Program Counter) PC(Program Counter) のレジスタ構成は , 以下のとおりです。 bit31 bit0 PC [ 初期値 ] XXXXXXXXH [bit31 ∼ bit0] プログラムカウンタで , 実行している命令のアドレスを示しています。 命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。bit0 が "1" になる可 能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。 ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が あります。 リセットによる初期値は不定です。 ■ TBR (Table Base Register) TBR(Table Base Register) のレジスタ構成は , 以下のとおりです。 bit31 TBR bit0 [ 初期値 ] 000FFC00H テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。 リセットによる初期値は , 000FFC00H です。 50 第 3 章 CPU および制御部 ■ RP (Return Pointer) RP(Return Pointer) のレジスタ構成は , 以下のとおりです。 bit31 bit0 RP [ 初期値 ] XXXXXXXXH リターンポインタで , サブルーチンから復帰するアドレスを保持します。 CALL 命令実行時 , PC の値がこの RP に転送されます。 RET 命令実行時 , RP の内容が PC に転送されます。 リセットによる初期値は不定です。 ■ SSP (System Stack Pointer) SSP(System Stack Pointer) のレジスタ構成は , 以下のとおりです。 bit31 bit0 SSP [ 初期値 ] 00000000H SSP は , システムスタックポインタです。 S フラグが "0" のとき , R15 として機能します。 SSP を明示的に指定することも可能です。 また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして も使用されます。 リセットによる初期値は 00000000H です。 ■ USP (User Stack Pointer) USP(User Stack Pointer) のレジスタ構成は , 以下のとおりです。 bit31 bit0 USP [ 初期値 ] XXXXXXXXH USP は , ユーザスタックポインタです。 S フラグが "1" のとき , R15 として機能します。 USP を明示的に指定することも可能です。 リセットによる初期値は不定です。 RETI 命令で使用することはできません。 51 第 3 章 CPU および制御部 ■ 乗除算レジスタ (Multiply & Divide register) 乗除算レジスタ (Multiply & Divide register) のレジスタ構成は , 以下のとおりです。 bit31 bit0 MDH MDL 乗除算用のレジスタで , 各々 32 ビット長です。 リセットによる初期値は不定です。 • 乗算実行時: 32 ビット× 32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除 算結果格納レジスタに格納されます。 MDH……上位 32 ビット MDL……下位 32 ビット 16 ビット× 16 ビットの乗算のときは , 以下のように結果が格納されます。 MDH……不定 MDL……結果 32 ビット • 除算実行時: 計算開始時 , 被除数を MDL に格納します。 DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果 が MDL と MDH に格納されます。 MDH……剰余 MDL……商 52 第 3 章 CPU および制御部 データ構造 3.4 FR ファミリのデータ構造について説明します。 ■ ビットオーダリング FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。 図 3.4-1 に , ビットオーダリングのデータ配置を示します。 図 3.4-1 ビットオーダリングのデータ配置 bit 31 29 30 27 28 25 23 26 24 21 22 19 20 17 18 15 16 13 14 11 12 9 10 7 8 5 6 MSB 3 4 1 2 0 LSB ■ バイトオーダリング FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。 図 3.4-2 に , バイトオーダリングのデータ配置を示します。 図 3.4-2 バイトオーダリングのデータ配置 メモリ bit MSB 31 LSB 23 15 7 0 10101010 11001100 11111111 00010001 bit 7 0 n番地 10101010 (n+1)番地 11001100 (n+2)番地 11111111 (n+3)番地 00010001 53 第 3 章 CPU および制御部 ■ ワードアライメント ● プログラムアクセス FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。 PC の bit0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。 "1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで す。 ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があり ます。 奇数アドレス例外はありません。 ● データアクセス FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ インメントがアドレスに対して施されます。 ワードアクセス : アドレスは , 4 の倍数 ( 最下位 2 ビットは強制的に "00B") ハーフワードアクセス : アドレスは , 2 の倍数 ( 最下位ビットは強制的に "0") バイトアクセス : 処理なし ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる のは , 実効アドレスの計算結果に対してです。 例えば , @(R13, Ri) のアドレッシングモードの場合 , 加算前のレジスタは ( たとえ最下 位ビットが 1 であっても ) そのまま計算に使用され , 加算結果の下位ビットがマスクさ れます。計算前のレジスタがマスクされるわけではありません。 [ 例 ] LD @(R13, R2), R0 R13 00002222H R2 00000003H 加算結果 00002225H 下位2ビット強制マスク アドレス端子 00002224H 54 第 3 章 CPU および制御部 3.5 メモリマップ FR ファミリのメモリマップについて説明します。 ■ メモリマップ アドレス空間は 32 ビットリニアです。 図 3.5-1 に , メモリマップを示します。 図 3.5-1 メモリマップ 0000 0000H 0000 0100H 0000 0200H バイト データ ハーフワード データ ダイレクト アドレッシング領域 ワードデータ 0000 0400H 000F FC00H ベクタテーブル 初期領域 000F FFFFH FFFF FFFFH ● ダイレクトアドレッシング領域 アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ ングにより , 命令中で直接オペランドアドレスを指定することができます。 ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。 • バイトデータ (8 ビット ) 000H ∼ 0FFH • ハーフワードデータ (16 ビット ) 000H ∼ 1FFH • ワードデータ (32 ビット ) 000H ∼ 3FFH ● ベクタテーブル初期領域 000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。 EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。 55 第 3 章 CPU および制御部 3.6 分岐命令 FR ファミリの分岐命令について説明します。 ■ 分岐命令の概要 FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を指 定することができます。 56 第 3 章 CPU および制御部 3.6.1 遅延スロット付き動作 分岐命令に遅延スロット付き動作を指定した場合について説明します。 ■ 遅延スロット付き動作の命令 以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。 JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D label9 BNO:D label9 BEQ:D label9 BNE:D label9 BC:D label9 BNC:D label9 BN:D label9 BP:D label9 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 ■ 遅延スロット付き動作の動作説明 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延 スロット」とよびます ) に置かれた命令を実行した後に分岐します。 分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル となります。その代わり , 遅延スロットに有効な命令を入れることができないときは , NOP 命令を置く必要があります。 [例] ; 命令の並び ADD R1, R2 ; BRA:D LABEL ; 分岐命令 R2, R3; 遅延スロット……分岐の前に実行される MOV … LABEL:ST R3, @R4 ; 分岐先 条件分岐命令の場合 , 分岐条件が成立するかしないかに関わらず , 遅延スロットに置か れた命令は実行されます。 遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の 更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) は , あくま で記述された順番で実行されます。 以下に , 具体的な説明をします。 1. JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更 新しても影響を受けません。 [例] LDI:32 #Label, R0 JMP:D @R0 LDI:8 #0, ;Label に分岐 R0 ; 分岐先アドレスには影響を与えない … 57 第 3 章 CPU および制御部 2. RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受 けません。 [例] ; これより前に設定された RP の示すアドレスへ分岐 RET:D MOV R8, RP ; リターン動作には影響を与えない … 3. Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。 [例] R0 ; フラグ変化 ADD #1, BC:D Overflow ; 上記の命令の実行結果により分岐 AND CCR #0 ; このフラグ更新は上記分岐命令では参照しない … 4. CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更 新された内容が読み出されます。 [例] CALL:D Label ;RP を更新して分岐 MOV ; 上記 CALL:D の実行結果の RP を転送 RP, R0 … ■ 遅延スロット付き動作の制限事項 ● 遅延スロットに置くことができる命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 • 1 サイクル命令 • 分岐命令ではないこと • 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」または「a」または「b」 または「c」または「d」と記載された命令です。 ● ステップトレーストラップ 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト ラップは発生しません。 ● 割込み・NMI 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し ません。 ● 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき , 未定義命令は NOP 命令として動作します。 58 第 3 章 CPU および制御部 3.6.2 遅延スロットなし動作 分岐命令に遅延スロットなし動作を指定した場合について説明します。 ■ 遅延スロットなし動作の命令 以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN BP BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS label9 BHI label9 label9 label9 ■ 遅延スロットなし動作の動作説明 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。 直後の命令が分岐前に実行されることはありません。 [例] ; 命令の並び ADD R1, R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2, R3 ; 実行されない … LABEL: ST R3, @R4 ; 分岐先 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。 遅延スロットなしの分岐命令は , 遅延スロットに適当な命令を入れることができない ために NOP を明記した遅延スロット付き分岐命令に比べて , 命令コード効率を上げる ことができます。 遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を 両立させることが可能となります。 59 第 3 章 CPU および制御部 3.7 EIT ( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断 してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), トラップ (Trap) の総称です。 例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命 令から再実行します。 割込みとは , 実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハードウェアです。 トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコー ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の 命令から再実行します。 ■ EIT の特長 • 割込みに多重割込みをサポート • 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 ) • トラップ命令 (INT) • エミュレータ起動用 EIT ( ハードウェア / ソフトウェア ) ■ EIT 要因 EIT 要因として , 以下のものがあります。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) • NMI • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ <注意事項> 分岐命令の遅延スロットには , EIT に関して制約があります。詳細は , 「3.6 分岐命令」を 参照してください。 ■ EIT からの復帰 • EIT から復帰するためには RETI 命令を実行します。 60 第 3 章 CPU および制御部 3.7.1 EIT の割込みレベル 割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。 ■ EIT の割込みレベル 表 3.7-1 に , 各レベルの割当てを示します。 表 3.7-1 割込みレベル レベル 割込み要因 2 進数 10 進数 00000 0 ( システム予約 ) … … … … … … 00011 3 ( システム予約 ) 00100 4 INTE 命令 ステップトレースト ラップ 00101 5 ( システム予約 ) … … … … … … 01110 14 ( システム予約 ) 01111 15 NMI ( ユーザ用 ) 10000 16 割込み 10001 17 割込み … … … … … … 11110 30 割込み 11111 31 ─ 注意事項 ILM の元の値が 16 ∼ 31 のとき , この範囲の値をプログラムにより ILM に設定することはできません。 ILM 設定時 , ユーザ割込み禁止 ICR 設定時 , 割込み禁止 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT 命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 61 第 3 章 CPU および制御部 ■ I フラグ I フラグは , 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 と して設けられています。 値 内 容 0 割込み禁止 INT 命令実行時 "0" にクリアされます。 ( ただし , スタック退避させる値はクリアする前の値です ) 1 割込み許可 割込み要求のマスク処理は , ILM の保持する値により制御されます。 ■ ILM ILM は , 割込みレベルマスク値を保持する PS レジスタ (20 ∼ 16) です。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。 プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値 として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指 定した値+ 16) という値が転送されます。 元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。任意の値を設定するに は ST ILM 命令を使用します。 ■ 割込み・NMI に対するレベルマスク NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.7-1) が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したときは マスクされ , 要求は受理されません。 要因の持つ割込みレベル ≧ レベルマスク値 62 第 3 章 CPU および制御部 3.7.2 ICR (Interrupt Control Register) 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを 設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O 空間にマッピングされており , CPU からはバスを通してアクセスされます。 ■ ICR ビット構成 ICR のビット構成は , 以下のとおりです。 ICR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 − − − ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W 初期値 ---11111B R/W :リード / ライト可能 R :リードオンリ [bit4] ICR4 ICR4 は , 常に "1" です。 [bit3 ∼ bit0] ICR3 ∼ ICR0 対応する割込み要因の割込みレベルの下位 4 ビットです。読出しおよび書込みが可 能です。bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。 ■ ICR マッピング 表 3.7-2 に , 割込み要因と割込み制御レジスタ , 割込みベクタの割当てを示します。 表 3.7-2 割込み要因と割込み制御レジスタ , 割込みベクタ 割込み制御レジスタ 対応する割込みベクタ 番号 割込み要因 番号 アドレス アドレス 16 進 10 進 IRQ00 ICR00 00000440H 10H 16 TBR + 3BCH IRQ01 ICR01 00000441H 11H 17 TBR + 3B8H IRQ02 ICR02 00000442H 12H 18 TBR + 3B4H … … … … … … … … … … … … IRQ45 ICR45 0000046DH 3DH 61 TBR + 308H IRQ46 ICR46 0000046EH 3EH 62 TBR + 304H IRQ47 ICR47 0000046FH 3FH 63 TBR + 300H ・TBR 初期値 :000FFC00H ・詳細は「割込みコントローラ」を参照してください。 63 第 3 章 CPU および制御部 3.7.3 SSP (System Stack Pointer) SSP が , EIT の受理および復帰動作時のデータ退避・復活用スタックを示すポイン タとして使用されます。 ■ SSP (System Stack Pointer) SSP のレジスタ構成は , 以下のとおりです。 bit31・・ ・・bit0 SSP [ 初期値 ] 00000000H EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加 算されます。 リセットによる初期値は 00000000H です。 SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。 64 第 3 章 CPU および制御部 3.7.4 割込みスタック SSP により示される領域で , PC および PS の値が退避・復活されます。 割込み後は SSP の示すアドレスに PC, (SSP + 4) のアドレスに PS が格納されてい ます。 ■ 割込みスタック 図 3.7-1 に , 割込みスタックの例を示します。 図 3.7-1 割込みスタック [割込み前] SSP 80000000H [割込み後] SSP 7FFFFFF8H メモリ 80000000H 7FFFFFFCH 7FFFFFF8H 80000000H 7FFFFFFCH 7FFFFFF8H PS PC 65 第 3 章 CPU および制御部 3.7.5 TBR (Table Base Register) Table Base Register は , EIT 用ベクタテーブルの先頭アドレスを示すレジスタで す。 ■ TBR (Table Base Register) TBR のレジスタ構成は , 以下のとおりです。 bit31・・ ・・bit0 TBR [ 初期値 ] 000FFC00H TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ スとなります。 リセットによる初期値は 000FFC00H です。 66 第 3 章 CPU および制御部 3.7.6 EIT ベクタテーブル TBR の示すアドレスから 1 K バイトの領域が , EIT 用ベクタ領域となっています。 ■ EIT ベクタテーブル 1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は以下のと おりです。 vctadr =TBR + vctofs =TBR + (3FCH − 4 × vct) vctadr: ベクタアドレス vctofs: ベクタオフセット vct: ベクタ番号 加算結果の下位 2 ビットは常に "00B" として扱われます。 000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。 表 3.7-3 に , アーキテクチャ上のベクタテーブルを示します。 表 3.7-3 ベクタテーブル (1 / 3) 割込み要因 割込み番号 10 進 16 進 割込みレベル オフセット TBR デフォルト のアドレス リセット *1 0 00 − 3FCH 000FFFFCH モードベクタ *1 1 01 − 3F8H 000FFFF8H システム予約 2 02 − 3F4H 000FFFF4H システム予約 3 03 − 3F0H 000FFFF0H システム予約 4 04 − 3ECH 000FFFECH システム予約 5 05 − 3E8H 000FFFE8H システム予約 6 06 − 3E4H 000FFFE4H コプロセッサ不在トラップ 7 07 − 3E0H 000FFFE0H コプロセッサエラー トラップ 8 08 − 3DCH 000FFFDCH INTE 命令 9 09 − 3D8H 000FFFD8H システム予約 10 0A − 3D4H 000FFFD4H システム予約 11 0B − 3D0H 000FFFD0H ステップトレーストラップ 12 0C − 3CCH 000FFFCCH NMI 要求 (tool) 13 0D − 3C8H 000FFFC8H 未定義命令例外 14 0E − 3C4H 000FFFC4H NMI 要求 15 0F 15(FH) 固定 3C0H 000FFFC0H 外部割込み 0 16 10 ICR00 3BCH 000FFFBCH 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 67 第 3 章 CPU および制御部 表 3.7-3 ベクタテーブル (2 / 3) 割込み要因 68 割込み番号 10 進 16 進 割込みレベル オフセット TBR デフォルト のアドレス 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H 外部割込み 4 20 14 ICR04 3ACH 000FFFACH 外部割込み 5 21 15 ICR05 3A8H 000FFFA8H 外部割込み 6 22 16 ICR06 3A4H 000FFFA4H 外部割込み 7 23 17 ICR07 3A0H 000FFFA0H リロードタイマ 0 24 18 ICR08 39CH 000FFF9CH リロードタイマ 1 25 19 ICR09 398H 000FFF98H リロードタイマ 2 26 1A ICR10 394H 000FFF94H マスク可能要因 *2 27 1B ICR11 390H 000FFF90H マスク可能要因 *2 28 1C ICR12 38CH 000FFF8CH マスク可能要因 *2 29 1D ICR13 388H 000FFF88H マスク可能要因 *2 30 1E ICR14 384H 000FFF84H マスク可能要因 *2 31 1F ICR15 380H 000FFF80H マスク可能要因 *2 32 20 ICR16 37CH 000FFF7CH マスク可能要因 *2 33 21 ICR17 378H 000FFF78H マスク可能要因 *2 34 22 ICR18 374H 000FFF74H マスク可能要因 *2 35 23 ICR19 370H 000FFF70H マスク可能要因 *2 36 24 ICR20 36CH 000FFF6CH マスク可能要因 *2 37 25 ICR21 368H 000FFF68H マスク可能要因 *2 38 26 ICR22 364H 000FFF64H マスク可能要因 *2 39 27 ICR23 360H 000FFF60H マスク可能要因 *2 40 28 ICR24 35CH 000FFF5CH マスク可能要因 *2 41 29 ICR25 358H 000FFF58H マスク可能要因 *2 42 2A ICR26 354H 000FFF54H マスク可能要因 *2 43 2B ICR27 350H 000FFF50H マスク可能要因 *2 44 2C ICR28 34CH 000FFF4CH マスク可能要因 *2 45 2D ICR29 348H 000FFF48H マスク可能要因 *2 46 2E ICR30 344H 000FFF44H タイムベースタイマ オーバフロー 47 2F ICR31 340H 000FFF40H マスク可能要因 *2 48 30 ICR32 33CH 000FFF3CH マスク可能要因 *2 49 31 ICR33 338H 000FFF38H マスク可能要因 *2 50 32 ICR34 334H 000FFF34H マスク可能要因 *2 51 33 ICR35 330H 000FFF30H マスク可能要因 *2 52 34 ICR36 32CH 000FFF2CH マスク可能要因 *2 53 35 ICR37 328H 000FFF28H 第 3 章 CPU および制御部 表 3.7-3 ベクタテーブル (3 / 3) 割込み要因 割込み番号 10 進 16 進 割込みレベル オフセット TBR デフォルト のアドレス *2 54 36 ICR38 324H 000FFF24H マスク可能要因 *2 55 37 ICR39 320H 000FFF20H マスク可能要因 *2 56 38 ICR40 31CH 000FFF1CH マスク可能要因 *2 57 39 ICR41 318H 000FFF18H マスク可能要因 *2 58 3A ICR42 314H 000FFF14H マスク可能要因 *2 59 3B ICR43 310H 000FFF10H マスク可能要因 *2 60 3C ICR44 30CH 000FFF0CH マスク可能要因 *2 61 3D ICR45 308H 000FFF08H マスク可能要因 *2 62 3E ICR46 304H 000FFF04H 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H システム予約 (REALOS にて使用 ) 64 40 − 2FCH 000FFEFCH システム予約 (REALOS にて使用 ) 65 41 − 2F8H 000FFEF8H システム予約 66 42 − 2F4H 000FFEF4H システム予約 67 43 − 2F0H 000FFEF0H システム予約 68 44 − 2ECH 000FFEECH システム予約 69 45 − 2E8H 000FFEE8H システム予約 70 46 − 2E4H 000FFEE4H システム予約 71 47 − 2E0H 000FFEE0H システム予約 72 48 − 2DCH 000FFEDCH システム予約 73 49 − 2D8H 000FFED8H システム予約 74 4A − 2D4H 000FFED4H システム予約 75 4B − 2D0H 000FFED0H システム予約 76 4C − 2CCH 000FFECCH システム予約 77 4D − 2C8H 000FFEC8H システム予約 78 4E − 2C4H 000FFEC4H システム予約 79 4F − 2C0H 000FFEC0H 80 50 2BCH 000FFEBCH | | | | 255 FF 000H 000FFC00H マスク可能要因 INT 命令で使用 − *1: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス 000FFFFCH, 000FFFF8H が使用されます。 *2: マスク可能要因は各品種により定義されます。本品種におけるベクタテーブルは 「付録 B 割込みベクタ」を参照してください。 69 第 3 章 CPU および制御部 3.7.7 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU はひとつの EIT 要因を選択して受理し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま す。 EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要 因のハンドラの命令を実行します。 そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は , 次の 2 つの要素によって決まります。 • EIT 要因受理の優先順位 • 受理した場合にほかの要因をどのようにマスクするか ■ EIT 要因受理の優先度 EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) 他の要 因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番です。 必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。 表 3.7-4 に , EIT 要因受理の優先度を示します。 表 3.7-4 EIT 要因の受理の優先度とほかの要因へのマスク 受理の優先順位 要因 他の要因に対するマスク 1 リセット 他の要因は破棄されます。 2 未定義命令例外 取消し 3 INT 命令 I フラグ =0 4 コプロセッサ不在トラップ コプロセッサエラートラップ 5 ユーザ割込み ILM= 受理した要因のレベル 6 NMI ( ユーザ用 ) ILM=15 7 (INTE 命令 ) ILM=4 * 8 NMI ( エミュレータ用 ) ILM=4 9 ステップトレーストラップ ILM=4 10 INTE 命令 ILM=4 ― *:INTE 命令とエミュレータ用 NMI が同時に発生したときのみ優先度が 6 になり ます ( 本品種ではエミュレータ用 NMI をデータアクセスによるブレークに使用 しています ) 。 70 第 3 章 CPU および制御部 EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し た EIT 要因の各ハンドラの実行順序は , 表 3.7-5 のようになります。 表 3.7-5 EIT ハンドラの実行順序 ハンドラの実行順序 要因 1 リセット *1 2 未定義命令例外 3 ステップトレーストラップ *2 4 INTE 命令 *2 5 NMI ( ユーザ用 ) 6 INT 命令 7 ユーザ割込み 8 コプロセッサ不在トラップ , コプロセッサエラートラップ *1:ほかの要因は破棄されます。 *2:INTE 命令をステップ実行した時はステップトレーストラップの EIT のみ発生 します。INTE による要因は無視されます。 図 3.7-2 に多重 EIT 処理の例を示します。 図 3.7-2 多重 EIT 処理 メインルーチン NMIのハンドラ INT命令 のハンドラ 優先度 (高)NMI発生 ①最初に実行 (低)INT命令実行 ②次に実行 71 第 3 章 CPU および制御部 3.7.8 動作 FR ファミリの各動作について説明します。 以降の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すも のとします。また , 「次の命令のアドレス」は , EIT を検出した命令によって以下の ようになります。 • LDI:32 のとき……PC + 6 • LDI:20, COPOP, COPLD, COPST, COPSV のとき……PC + 4 • そのほかの命令のとき……PC + 2 ■ ユーザ割込み・NMI の動作 ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理 の可否が判定されます。 [ 割込み要求受理の可否判定 ] 1. 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を 保持するものが選択されます。 比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持する 値が , NMI についてあらかじめ定められた定数が使用されます。 2. 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持 つ割込み要求が選択されます。 3. 割込みレベル≧レベルマスク値のとき , 割込み要求はマスクされ受理されない。 割込みレベル<レベルマスク値のとき , 4 へ。 4. 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み 要求はマスクされ , 受理されません。I フラグが "1" ならば 5 へ。 選択された割込み要求が NMI であるとき , I フラグの値にかかわらず 5 へ。 5. 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。 EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に 対応した割込み番号を使用して , CPU は以下のように動作します。 ( 注意 )〔動作〕における () はレジスタの指すアドレスを表します。 [ 動作 ] 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. 受理した要求の割込みレベル → ILM 6. "0" → S フラグ 7. (TBR +受理した割込み要求のベクタオフセット ) → PC 割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス に遷移します。 72 第 3 章 CPU および制御部 ユーザ割込み, またはNMI要因が発生している状態で割込みを許可するためにOR CCR, ST ILM, および MOV Ri,PS の各命令が実行されると , 割込みハンドラの前後で上記命 令が 2 回実行される場合があります。ただし , CPU 内のレジスタに対して , 同じ値を 2 度設定するだけですので , 動作的に問題ありません。 EIT 処理ルーチン内では EIT 分岐前の PS レジスタの内容を期待した処理を行わないで ください。 ■ INT 命令の動作 INT #u8: u8 で示されるベクタの割込みハンドラへ分岐します。 [ 動作 ] 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. PC + 2 → (SSP) 5. "0" → I フラグ 6. "0" → S フラグ 7. (TBR + 3FCH − 4 × u8) → PC ■ INTE 命令の動作 INTE: ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。 [ 動作 ] 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. PC + 2 → (SSP) 5. "00100B" → ILM 6. "0" → S フラグ 7. (TBR + 3D8H) → PC INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用 しないでください。 また , ステップ実行中は INTE による EIT の発生はありません。 73 第 3 章 CPU および制御部 ■ ステップトレーストラップの動作 PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。 [ ステップトレーストラップ検出の条件 ] 1. T フラグ = 1 2. 遅延分岐命令ではないとき。 3. INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。 4. 以上の条件が成立すると , 命令動作の切れ目でブレークします。 [ 動作 ] 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "00100B" → ILM 6. "0" → S フラグ 7. (TBR + 3CCH) → PC Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく なります。 FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。 ■ 未定義命令例外の動作 命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま す。 [ 未定義命令例外の検出条件 ] 1. 命令のデコード時に , 未定義命令であることを検出。 2. 遅延スロット外に置かれている ( 遅延分岐命令の直後ではない ) 。 3. 以上の条件が成立すると未定義命令例外が発生し , ブレークします。 [ 動作 ] 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. PC → (SSP) 5. "0" → S フラグ 6. (TBR + 3C4H) → PC PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 74 第 3 章 CPU および制御部 ■ コプロセッサ不在トラップ 実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ サ不在トラップが発生します。 [ 動作 ] 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "0" → S フラグ 6. (TBR + 3E0H) → PC ■ コプロセッサエラートラップ コプロセッサを使用するしているときにエラーが発生した場合 , 次にそのコプロセッ サを操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生 します。 [ 動作 ] 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "0" → S フラグ 6. (TBR + 3DCH) → PC ■ RETI 命令の動作 RETI 命令は , EIT 処理ルーチンから復帰する命令です。 [ 動作 ] 1. (R15) → PC 2. R15 + 4 → R15 3. (R15) → PS 4. R15 + 4 → R15 RETI 命令は , S フラグが "0" の状態で実行する必要があります。 75 第 3 章 CPU および制御部 3.8 動作モード FR ファミリの動作モードについて説明します。 ■ 動作モードの概要 動作モードには , バスモードとアクセスモードがあります。 ■ バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し , モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定しま す。 ■ アクセスモード アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の WTH1, WTH0 ビットと ACR0 ∼ ACR3(Area Configuration Register) 内の DBW0 ビット で指定します。 76 第 3 章 CPU および制御部 3.8.1 バスモード FR ファミリには , 次に示す 3 つのバスモードがあります。 詳細は「3.1 メモリ空間」を参照してください。 ■ バスモード 0 ( シングルチップモード ) 内部 I/O, Fbus RAM, Fbus ROM が有効で , それ以外の領域へのアクセスは無効である モードです。 外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機 能しません。 ■ バスモード 1 ( 内 ROM 外バスモード ) 内部 I/O, Fbus RAM, Fbus ROM が有効で , 外部アクセスが可能な領域へのアクセスは外 部空間へのアクセスとなるモードです。外部端子の一部は , バス端子として機能しま す。 ■ バスモード 2 ( 外 ROM 外バスモード ) 内部 I/O, Fbus RAM が有効で , Fbus ROM へのアクセスを禁止にしてすべてのアクセス が外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子として機能し ます。 77 第 3 章 CPU および制御部 モード設定 3.8.2 FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作 モードの設定を行います。 ■ モード端子 MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。 表 3.8-1 にモードベクタフェッチに関する指定を示します。 表 3.8-1 モードベクタフェッチに関する指定 モード端子 モード名 リセットベクタ アクセス領域 備考 MD2 MD1 MD0 0 0 0 内 ROM モードベクタ 内部 − 0 0 1 外 ROM モードベクタ 外部 バス幅はモード レジスタで設定 ただし , 表に示した設定以外は禁止とします。 <注意事項> FR ファミリでは , マルチプレクスバスによる外部モードベクタフェッチはサポートして いません。 78 第 3 章 CPU および制御部 ■ モードレジスタ (MODR) モードベクタフェッチによってモードレジスタに書き込むデータを , モードデータと よびます。 モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定に従った動作モード で動作します。 モードレジスタは , すべてのリセット要因で設定されます。また , ユーザプログラムか らは書き込むことはできません。 <注意事項> モードベクタに設定するモードデータは , 000FFFF8H にバイトデータとして配置する必 要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採用し ていますので , 下図のように , bit31 ∼ bit24 の最上位バイトに配置してください。 誤 bit 31 24 23 16 15 8 7 0 XXXXXXXX XXXXXXXX XXXXXXXX モードデータ bit 31 000FFFF8H 正 000FFFF8H 000FFFFCH 24 23 Mode Data 16 15 8 7 XXXXXXXX XXXXXXXX Reset Vector 0 XXXXXXXX エミュレータモードでは , 書き換え可能です。この場合 , 8 ビット長のデータ転送命令 を使用してください。 16/32 ビット長の転送命令では書き込めません。 モードレジスタの詳細は以下のとおりです。 〔レジスタ詳細説明〕 MODR アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0007FCH 0 0 0 0 0 ROMA WTH1 WTH0 初期値 XXXXXXXXB 動作モード設定ビット X:不定 [bit7 ∼ bit3] 予約ビット 必ず "00000B" を設定してください。 "00000B" 以外の値を設定したときの動作は保証されません。 79 第 3 章 CPU および制御部 [bit2] ROMA ( 内部 ROM イネーブルビット ) 内部 Fbus RAM, Fbus ROM 領域を有効にするかどうかを設定します。 ROMA 機 能 0 外 ROM モード 1 内 ROM モード 備 考 内蔵 Fbus RAM は有効 , 内部 ROM 領域 (50000H ∼ FFFFFH) が外部領域になります。 内蔵 Fbus RAM, Fbus ROM が有効になります。 [bit1, bit0] WTH1, WTH0 ( バス幅指定ビット ) 外バスモード時のバス幅指定の設定を行います。 外バスモード時 , この値が ACR0 (CS0 領域 ) の DBW0 ビットに設定されます。 80 WTH1 WTH0 0 0 8 ビットバス幅 外バスモード 0 1 16 ビットバス幅 〃 1 0 ――――――― 設定禁止 1 1 シングルチップモード シングルチップモード 機 能 備 考 第 3 章 CPU および制御部 3.9 クロック生成制御 クロック生成制御について説明します。 ■ 内部動作クロックの生成 本品種の内部動作クロックは , 以下のようにして生成されます。 • ソースクロックの選択: クロックの供給源を選択します。 • ベースクロックの生成: ソースクロックを 2 分周または PLL 発振させ , 基本クロックを生成します。 • 各内部クロックの生成: ベースクロックを分周し , 各部に供給する 4 種類の動作クロックを生成します。 以降 , 各クロック生成とその制御について説明します。 各説明にあるレジスタ , フラグの詳細な説明は , 「3.9.5 クロック生成制御部のブロッ クダイヤグラム」および「3.9.6 クロック生成制御部のレジスタ詳細説明」を参照して ください。 φはソースクロックを 2分周または, PLL 発振させた基本クロックを指します。したがっ て , システムベースクロックは , 上記の内部ベースクロック発生のところで生成される クロックです。 ■ ソースクロックの選択 ソースクロックの選択について説明します。 外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて生 成した原発振がソースクロックとなります。 外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。 外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2種類を使用で き , 動作中に任意に切り換えて使用することが可能です。 • メインクロック :X0/X1 端子入力から生成し , 高速クロックとして使用することを想 定したものです。 • サブクロック:X0A/X1A 端子入力から生成し , 低速クロックとして使用することを 想定したものです。 メインクロックは , 制御可能な内蔵メイン PLL を用いて逓倍されます。 内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。 • メインクロックを 2 分周したもの • メインクロックをメイン PLL で逓倍したもの • サブクロックそのもの ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって 行います。 81 第 3 章 CPU および制御部 3.9.1 PLL 制御 メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍 率設定を制御することが可能です。 各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。 ここでは , 各制御内容について説明します。 ■ PLL 動作許可 メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットの設定によって行います。 サブクロック発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の bit11:PLL2EN ビットの設定によって行います。 PLL1EN, PLL2EN ビットとも , 設定初期化リセット (INIT) 後は "0" に初期化され , PLL の発振動作は停止しています。停止中は , ソースクロックとして PLL 出力を選択する ことはできません。 プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設 定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する ことをお奨めします。 ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること はできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する際 などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分 周したものに選択し直した後 , PLL を停止させてください。 なお , STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットや bit1:OSCD2 ビットに より , ストップモード中の発振が停止するように設定してある場合 , 対応する PLL は ストップモード遷移時に自動的に停止しますので , 動作停止を改めて設定する必要は ありません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作を開始 します。ストップモード中の発振が停止しないように設定してある場合は , PLL は自 動では停止しません。この場合は , 必要であればストップモード移行前にあらかじめ動 作停止を設定してください。 82 第 3 章 CPU および制御部 ■ PLL 逓倍率 メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の bit14 ∼ bit12:PLL1S2, PLL1S1, PLL1S0 ビットによって設定します。 どちらのビットも設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。 〔PLL 逓倍率設定〕 PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ マ割込みを使用することをお奨めします。 動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを該当 PLL 以外に 切り換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後 にソースクロックを切り換えてください。 PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設 定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が 経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り 換えた場合は , プログラム動作は停止しません。 83 第 3 章 CPU および制御部 3.9.2 発振安定待ち・PLL ロック待ち時間 ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち 時間が必要となります 。 PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待 ち時間が必要となります。 ここでは , 各種ケースにおける待ち時間について説明します。 ■ 電源投入後の待ち時間 電源投入後は , INIT 端子入力 ( リセット端子 ) へ "L" レベルを入力する必要がありま す。この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間 はここでは考慮する必要がありません。 ■ 設定初期化後の待ち時間 設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで は , 設定された発振安定待ち時間を内部的に発生します。 この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ こでは考慮する必要がありません。 ■ PLL 動作許可後の待ち時間 プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過 しないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め します。 ■ PLL 逓倍率変更後の待ち時間 プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち 時間が経過しないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間に , タイムベースタイマ割込みを使用できます。 ■ ストップモード復帰後の待ち時間 プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて 設定された時間の発振安定待ち時間を内部的に発生します。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止 させる設定であった場合は , その発振回路の発振安定待ち時間と使用している PLL の ロック待ち時間のうち長い方の時間が必要となります。ストップモードに遷移させる 前に , あらかじめその発振安定待ち時間を設定しておいてください。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止 させない設定であった場合は , PLL は自動では動作停止しません。したがって , PLL を 停止させない限り発振安定待ち時間は必要となりません。ストップモードに遷移させ る前に , あらかじめ発振安定待ち時間を最小値に設定しておくことをお奨めします。 84 第 3 章 CPU および制御部 ■ サブクロックからメインクロック切換え後の待ち時間 サブクロックからメインクロックに切り換えた後に PLL を使用する場合 , CLKR ( ク ロックソースレジスタ ) の bit2: PLL1EN の値にかかわらず , ロック待ち時間が経過し ないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め します。 85 第 3 章 CPU および制御部 3.9.3 クロック分配 ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを それぞれ作成します。 内部動作クロックは全部で 3 種類あり , それぞれが独立に分周比を設定することが できます。 ここでは , 各内部動作クロックについて説明します。 ■ CPU クロック (CLKB) CPU と内部メモリおよび内部バスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • CPU • 内蔵 RAM, 内蔵 ROM • ビットサーチモジュール • I-bus, D-bus, X-bus, F-bus • DMA コントローラ • DSU 動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 ■ 周辺クロック (CLKP) 周辺回路およびペリフェラルバスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • ペリフェラル ( 周辺 ) バス • クロック制御部 ( バスインタフェース部のみ ) • 割込みコントローラ • 周辺 I/O ポート • I/O ポートバス • 外部割込み入力 • UART • 16 ビットタイマ • A/D コンバータ • ICU • フリーランタイマ • リロードタイマ • アップダウンカウンタ • インプットキャプチャ • アウトプットコンペア • I2C インタフェース 86 第 3 章 CPU および制御部 • PPG 動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 ■ 外部バスクロック (CLKT) 外部バスインタフェースに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • 外部バスインタフェース • 外部 CLK 出力 (SYSCLK) 動作可能な上限周波数は 16 MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 <注意事項> CPU の処理能力はウェイトレジスタ (FLWC) の設定にも影響を受けます。必ず本レジス タの設定を最適な値にしてご利用ください。「26.2.2 ウェイトレジスタ (FLWC)」もご参 照ください。 87 第 3 章 CPU および制御部 クロック分周 3.9.4 各内部動作クロックは , それぞれ独立に , ベースクロックからの分周比を設定するこ とができます。この機能により , 各回路に最適な動作周波数を設定することができ ます。 ■ 分周比の設定 分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分 周設定レジスタ 1) にて設定します。 各レジスタには各クロックに対応する 4 ビットずつの設定ビットがあり , ( レジスタ設 定値+ 1) がそのクロックのベースクロックに対する分周比となります。分周比設定が 奇数であっても , 常にデューティは 50 となります。 設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効 となります。 ■ 分周比設定の初期化 分周比設定は , 動作初期化リセットの発生では初期化されず , リセット発生前の設定が 維持されます。設定初期化リセットの発生によってのみ初期化されます。初期状態で は , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , ソースクロック を高速なものに変更する前に必ず分周比の設定を行ってください。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注 意願います。 88 第 3 章 CPU および制御部 クロック生成制御部のブロックダイヤグラム 3.9.5 図 3.9-1 に , クロック生成制御部のブロックダイヤグラムを示します。 図中のレジスタの詳細な説明は , 「3.9.6 クロック生成制御部のレジスタ詳細説明」 を参照してください。 ■ クロック生成制御部のブロックダイヤグラム 図 3.9-1 クロック生成制御部のブロックダイヤグラム 周辺停止制御レジスタ R-bus [クロック生成部] DIVR0,DIVR1レジスタ 周辺クロック分周 セレ クタ 外部バスクロック分周 メイン発振 安定待ちタイマ (サブ選択時用) メイン発振 PLL 1/2 X0A X1A 各周辺クロック 各部バスクロック セレクタ 発振回路 CPUクロック CLKRレジスタ X0 X1 セレ クタ 周辺停止制御 セレ クタ 停止制御 CPUクロック分周 サブ発振 発振回路 時計タイマ [ストップ・スリープ制御部] 内部割込み STCRレジスタ 内部リセット ストップ状態 状態遷移 制御回路 SLEEP状態 リセット発生 F/F リセット発生 F/F 内部リセット(RST) 内部リセット(INIT) [リセット要因回路] INIT端子 RSRR レジスタ [ウォッチドッグ制御部] ウォッチドッグF/F WPRレジスタ タイムベースカウンタ CTBRレジスタ TBCRレジスタ 割込み許可 カウンタクロック セレクタ オーバフロー検出F/F タイムベースタイマ 割込み要求 89 第 3 章 CPU および制御部 クロック生成制御部のレジスタ詳細説明 3.9.6 クロック生成制御部のレジスタについて説明します。 ■ RSRR:リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジスタ構成は , 以下のとおりです。 RSRR アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000480H − R − R WDOG R ERST R SRST R − R WT1 R/W WT0 R/W R/W R * X 初期値 X***X*00B :リード / ライト可能 :リードオンリ :要因により初期化されます。 :初期化されません。 直前に発生したリセットの要因の保持 , およびウォッチドッグタイマの周期設定およ び起動制御を行うレジスタです。 本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す までの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複数の フラグがセットされることになります。 本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ トが発生するまで , ウォッチドッグタイマは動作を続けます。 [bit15] Reserved:予約ビット 予約ビットです。 [bit14] Reserved:予約ビット 予約ビットです。 [bit13] WDOG:ウォッチドッグリセット発生フラグ ウォッチドッグタイマによるリセットの発生の有無を示します。 値 内 容 0 ウォッチドッグタイマによるリセットは発生していません。 1 ウォッチドッグタイマによるリセットが発生しました。 • 電源投入時の INIT 端子入力によるリセット , または読出し直後に "0" にクリアさ れます。 • 読出し可能で , 書込みはビット値に影響を与えません。 90 第 3 章 CPU および制御部 [bit12] ERST:外部リセット発生フラグ INIT 端子入力によるリセットの発生の有無を示します。 値 内 容 0 INIT 端子入力によるリセットは発生していません。 1 INIT 端子入力によるリセットが発生しました。 • 読出し直後に "0" にクリアされます。 • 読出し可能で , 書込みはビット値に影響を与えません。 • 電源投入時には , 8ms ( 外部発振周波数が 4MHz の場合 ) 以上 INIT 端子へ "L" レ ベルを印加してください。それ以下の場合ではフラグがセットされない場合があ ります。 [bit11] SRST:ソフトウェアリセット発生フラグ STCR レジスタの SRST ビット書込み ( ソフトウェアリセット ) によるリセットの発 生の有無を示します。 値 内 容 0 ソフトウェアリセットによる INIT は発生していません。 1 ソフトウェアリセットによる INIT が発生しました。 • 電源投入時の INIT 端子入力によるリセット , または読出し直後に "0" にクリアさ れます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [bit10] Reserved:予約ビット 予約ビットです。 [bit9, bit8] WT1, WT0:ウォッチドッグタイマインターバル時間選択ビット ウォッチドッグタイマの周期を設定します。 本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の うちから選択します。 WPR への最終 5AH 書込みか ウォッチドッグリセットの発生 を抑止するために最低限必要な WPR への書込み間隔 らウォッチドッグリセットが 発生するまでの時間 0 φ × 216 ( 初期値 ) φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 WT1 WT0 0 (φ はシステムベースクロックの周期 ) • リセットにより "00B" に初期化されます。 • 読出し可能です。書込みはリセット後 1 回のみ有効で , それ以降の書込みは無効 です。 91 第 3 章 CPU および制御部 ■ STCR:スタンバイ制御レジスタ スタンバイ制御レジスタのレジスタ構成は , 以下のとおりです。 STCR アドレス bit7 bit6 bit5 bit4 bit3 bit2 000481H STOP R/W SLEEP R/W HIZ R/W SRST R/W OS1 R/W OS0 R/W bit1 bit0 OSCD2 OSCD1 R/W R/W 初期値 00110011B R/W :リード / ライト可能 デバイスの動作モードを制御するレジスタです。 ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を 行います。 <注意事項> スタンバイモードに入れる場合は , 以下のシーケンスを必ず使用してください。 (LDI#value_of_standby,R0) ; value_of_standby は , STCR へのライトデータ (LDI#_STCR,R12) ; _STCR は , STCR のアドレス (481H) STB R0,@R12 ; スタンバイ制御レジスタ (STCR) への書込み LDUB @R12,R0 ; 同期スタンバイのための STCR リード LDUB @R12,R0 ; もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP [bit7] STOP:STOP モードビット ストップモードへの遷移を指示します。bit6:SLEEP ビットと本ビット両方に "1" を 書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。 値 内 容 0 ストップモードへの遷移は行いません。[ 初期値 ] 1 ストップモードへ遷移します。 • リセットおよびストップ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 92 第 3 章 CPU および制御部 [bit6] SLEEP:SLEEP モードビット スリープモードへの遷移を指示します。bit7:STOP ビットと本ビット両方に "1" を書 き込んだ場合は, bit7:STOPビットの方が優先となり, ストップモードへ遷移します。 値 内 容 0 スリープモードへの遷移は行いません。[ 初期値 ] 1 スリープモードへ遷移します。 • リセットおよびスリープ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit5] HIZ:Hi-Z モードビット ストップモード時の端子状態を制御します。 値 内 容 0 ストップモード遷移前の端子状態を維持します。 1 ストップモード中は端子出力をハイインピーダンス状態にします。 [ 初期値 ] • リセットにより "1" に初期化されます。 • 読出しおよび書込みが可能です。 [bit4] SRST:ソフトウェアリセットビット ソフトウェアリセットの発行を指示します。 値 内 容 0 ソフトウェアリセットを発行します。 1 ソフトウェアリセットの発行は行いません。[ 初期値 ] • リセットにより "1" に初期化されます。 • 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。 93 第 3 章 CPU および制御部 [bit3, bit2] OS1, OS0:発振安定待ち時間選択ビット リセット後 , およびストップモード復帰後などにおける , 発振安定待ち時間を設定 します。 本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選 択します。 OS1 OS0 発振安定待ち時間 原発振 4 MHz の場合 サブ発振 32 kHz の場合 0 0 φ × 212 1.97ms 256ms 0 1 φ × 212 1.97ms 256ms 1 0 φ × 213 4.1ms 512ms 1 1 φ × 214 8.2ms 1024ms φ はシステムベースクロックの周期 , この場合は原発振入力の 2 倍の周期 • 読出しおよび書込みが可能です。 [bit1] OSCD2:サブ発振停止ビット ストップモード時での サブ発振の発振停止を制御します。 値 内 容 0 ストップモード中もサブ発振は停止しません。 1 ストップモード中はサブ発振を停止します。[ 初期値 ] • リセットにより "1" に初期化されます。 • 読出しおよび書込みが可能です。 [bit0] OSCD1:メイン発振停止ビット ストップモード時での メイン発振の発振停止を制御します。 値 内 容 0 ストップモード中もメイン発振は停止しません。 1 ストップモード中はメイン発振を停止します。[ 初期値 ] • リセットにより "1" に初期化されます。 • 読出しおよび書込みが可能です。 94 第 3 章 CPU および制御部 ■ TBCR:タイムベースカウンタ制御レジスタ タイムベースカウンタ制御レジスタのレジスタ構成は , 以下のとおりです。 TBCR アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000482H TBIF R/W TBIE R/W TBC2 R/W TBC1 R/W TBC0 R/W − R/W − R − R 初期値 00XXXX11B R/W :リード / ライト可能 R :リードオンリ X :不定 タイムベースタイマ割込みなどを制御するレジスタです。 タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行います。 [bit15] TBIF:タイムベースタイマ割込みフラグ タイムベースタイマ割込みフラグです。 タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11:TBC2 ∼ TBC0 ビットにて設定 ) を経過したことを示します。 bit14:TBIE ビットにより割込み発生が許可 (TBIE=1) されているときに , 本ビットが "1" になると , タイムベースタイマ割込み要求が発生します。 クリア要因 命令により "0" を書込むとクリアされます。 セット要因 設定されたインターバル時間の経過によりセットされます。 ( タイムベースカウンタ出力の立上りエッジを検出することで時 間の経過を判定します。) • リセットにより "0" に初期化されます。 • 読出しおよび書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込ん でもビット値は変化しません。 • リードモディファイライト系命令での読出し値は , 常に "1" となります。 [bit14] TBIE:タイムベースタイマ割込み許可ビット タイムベースタイマ割込み要求出力許可ビットです。 タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま す。本ビットが "1" のときに , bit15:TBIF ビットが "1" になると , タイムベースタイ マ割込み要求が発生します。 値 内 容 0 タイムベースタイマ割込み要求の出力を禁止します。[ 初期値 ] 1 タイムベースタイマ割込み要求の出力を許可します。 • リセットにより "0" に初期化されます。 • 読出しおよび書込みが可能です。 95 第 3 章 CPU および制御部 [bit13 ∼ bit11] TBC2, TBC1, TBC0:タイムベースタイマカウンタ選択ビット タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定 します。 本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選 択します。 原発振 4 MHz かつ TBC2 TBC1 TBC0 タイマインターバル 時間 PLL が 8 逓倍の場合 サブクロック 32 kHz の場合 0 0 0 φ × 211 64µs 61.4ms 0 0 1 φ × 212 128µs 123ms 0 1 0 φ × 213 256µs 246ms 0 1 1 φ × 222 131ms 126s 1 0 0 φ × 223 262ms 256s 1 0 1 φ × 224 524ms 512s 1 1 0 φ × 225 1049ms 1024s 1 1 1 φ × 226 2097ms 2048s φ はシステムベースクロックの周期 • 初期値は不定です。割込みを許可する前に必ず値を設定してください。 • 読出しおよび書込みが可能です。 [bit10] Reserved:予約ビット 予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。 [bit9, bit8] Reserved:予約ビット 予約ビットです。 96 第 3 章 CPU および制御部 ■ CTBR:タイムベースカウンタクリアレジスタ タイムベースカウンタクリアレジスタのレジスタ構成は , 以下のとおりです。 CTBR W X アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000483H D7 W D6 W D5 W D4 W D3 W D2 W D1 W D0 W 初期値 XXXXXXXXB :ライトオンリ :不定 タイムベースカウンタを初期化するためのレジスタです。 本レジスタに連続して {A5H}, {5AH} を書き込むと , {5AH} 書込みの直後にタイムベー スカウンタを全ビット "0" にクリアします。{A5H} 書込みと {5AH} 書込みの間の時間 制限はありませんが , {A5H} 書込みの後に {5AH} 以外のデータを書き込むと , 再度 {A5H} を書き込まないと {5AH} を書き込んでもクリア動作は行いません。 本レジスタの読出し値は不定です。 <注意事項> 本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。 97 第 3 章 CPU および制御部 ■ CLKR:クロックソース制御レジスタ クロックソース制御レジスタのレジスタ構成は , 以下のとおりです。 CLKR アドレス bit15 000484H − R/W bit14 bit13 bit12 bit11 bit10 bit9 bit8 PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0 R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W :リード / ライト可能 システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ です。 本レジスタにてクロックソースを 3 種類のうちから選択します。また , メイン・サブ 2 系統の PLL それぞれの動作許可および逓倍率の選択を制御します。 [bit15] Reserved:予約ビット 予約ビットです。必ず "0" を設定してください。 [bit14 ∼ bit12] PLL1S2, PLL1S1, PLL1S0:PLL 逓倍率選択ビット メイン PLL の逓倍率選択ビットです。 メイン PLL の逓倍率を , 8 種類のうちから選択します。 本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えないで ください。 動作可能な上限周波数は 32 MHz ですので , これを超える設定をしないでください。 メイン PLL 逓倍率 PLL1S2 PLL1S1 PLL1S0 0 0 0 × 1 ( 等倍 ) 原発振 4MHz の場合 , φ = 250ns (4MHz) 0 0 1 × 2 (2 逓倍 ) 原発振 4MHz の場合 , φ = 125ns (8MHz) 0 1 0 × 3 (3 逓倍 ) 原発振 4MHz の場合 , φ = 83.3ns (12MHz) 0 1 1 × 4 (4 逓倍 ) 原発振 4MHz の場合 , φ = 62.5ns (16MHz) 1 0 0 × 5 (5 逓倍 ) 原発振 4MHz の場合 , φ = 50.0ns (20MHz) 1 0 1 × 6 (6 逓倍 ) 原発振 4MHz の場合 , φ = 41.7ns (24MHz) 1 1 0 × 7 (7 逓倍 ) 原発振 4MHz の場合 , φ = 35.7ns (28MHz) 1 1 1 × 8 (8 逓倍 ) 原発振 4MHz の場合 , φ = 31.3ns (32MHz) システムベースクロック周期 φ はシステムベースクロックの周期 • リセットにより "000B" に初期化されます。 • 読出しおよび書込みが可能です。 98 第 3 章 CPU および制御部 [bit11] PLL2EN:サブクロック選択許可ビット サブクロックの選択許可ビットです。 本ビットは , クロックソースとしてサブクロックを選択している間は書き換えない でください。 また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択しないでく ださい (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。 STCR の bit1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であって もサブクロックは停止します。ストップモードからの復帰後は動作許可に戻りま す。 値 内 容 0 サブクロック選択禁止 [ 初期値 ] 1 サブクロック選択許可 • リセットにより "0" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> サブ発振を持たない品種では, PLL2ENビットは"0"に固定されており, 書込みは無効です。 [bit10] PLL1EN:メイン PLL イネーブルビット メイン PLL の動作許可ビットです。 本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えないで ください。 また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択しないでくだ さい (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。 STCR の bit0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって もメイン PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。 値 内 容 0 メイン PLL 停止 [ 初期値 ] 1 メイン PLL 動作許可 • リセットにより "0" に初期化されます。 • 読出しおよび書込みが可能です。 99 第 3 章 CPU および制御部 [bit9, bit8] CLKS1, CLKS0:クロックソース選択ビット 使用するクロックソースを設定します。 本ビットに書き込む値により , クロックソースを下表に示す 3 種類のうちから選択 します。 なお , bit9:CLKS1 が "1" の間は bit8:CLKS0 の値を変更することができません。 変更不可能な組合せ 変更可能な組合せ "00B" → "11B" "00B" → "01B" または "10B" "01B" → "10B" "01B" → "11B" または "00B" "10B" → "01B" または "11B" "10B" → "00B" "11B" → "00B" または "10B" "11B" → "01B" このため , リセット後の状態からサブクロック選択に切り換える場合は , まず "01B" を書き込んだ後に , "11B" を書き込んでください。 CLKS1 CLKS0 0 0 X0/X1 からの原発振入力の 2 分周 [ 初期値 ] 0 1 X0/X1 からの原発振入力の 2 分周 1 0 メイン PLL 1 1 サブクロック クロックソース設定 • リセットにより "00B" に初期化されます。 • 読出しおよび書込みが可能です。 100 第 3 章 CPU および制御部 ■ WPR:ウォッチドッグリセット発生延期レジスタ ウォッチドッグリセット発生延期レジスタのレジスタ構成は , 以下のとおりです。 WPR W X アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000485H D7 W D6 W D5 W D4 W D3 W D2 W D1 W D0 W 初期値 XXXXXXXXB :ライトオンリ :不定 ウォッチドッグリセットの発生を延期するためのレジスタです。 本レジスタに連続して {A5H}, {5AH} を書き込むと , {5AH} 書込みの直後にウォッチ ドッグタイマの検出用 FF をクリアし , ウォッチドッグリセットの発生を延期します。 {A5H} 書込みと {5AH} 書込みの間の時間制限はありませんが , {A5H} 書込みの後に {5AH} 以外のデータを書き込んだ場合 , 再度 {A5H} を書き込まないと {5AH} を書き込 んでもクリア動作は行いません。 表 3.9-1 に , ウォッチドッグリセット発生に関する時間間隔と RSRR レジスタの値の関 係を示します。 この期間内に両データの書込みを終えないとウォッチドッグリセットを発生します。 ウォッチドッグリセット発生までの時間や発生抑止のために必要な書込み間隔は , RSRR レジスタの WT1 (bit9) , WT0 (bit8) の状態によって変化します。 表 3.9-1 ウォッチドッグリセット発生に関する時間間隔 WPR への最終 5AH 書込みか WT1 WT0 RSRR のウォッチドッグリセッ トの発生を抑止するために最低限 必要な WPR への書込み間隔 らウォッチドッグリセットが 発生するまでの時間 0 0 φ × 216 [ 初期値 ] φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 φ はシステムベースクロックの周期, WT1, WT0はRSRRのbit9, bit8でウォッチドッグ タイマ周期設定 ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを 行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ れます。 本レジスタの読出し値は不定です。 101 第 3 章 CPU および制御部 ■ DIVR0:基本クロック分周設定レジスタ 0 基本クロック分周設定レジスタ 0 のレジスタ構成は , 以下のとおりです。 DIVR0 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000486H B3 R/W B2 R/W B1 R/W B0 R/W P3 R/W P2 R/W P1 R/W P0 R/W 初期値 00000011B R/W :リード / ライト可能 各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , CPU および内部バスのクロック (CLKB), 周辺回路 , およびペリフェ ラルバスクロック (CLKP) の分周比の設定を行います。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特にソースクロック選択の変更設定との順序を間違えないようにご注意 ください。 本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周 比が有効となります。 [bit15 ∼ bit12] B3, B2, B1, B0:CLKB 分周選択ビット CPU クロック (CLKB) クロック分周比設定ビットです。CPU と内部メモリおよび内 部バスのクロック (CLKB) のクロック分周比を設定します。 本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに 対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる分周比は設 定しないでください。 B2 B1 B0 クロック分周比 0 0 0 0 φ 0 0 0 1 φ × 2 (2 分周 ) 32.0 MHz [ 初期値 ] 16.0 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8.00 MHz 0 1 0 0 φ × 5 (5 分周 ) 6.40 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33 MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57 MHz 0 1 1 1 φ × 8 (8 分周 ) 4.00 MHz … 1 … 1 … 1 … 1 … φ × 16 (16 分周 ) … 2.00 MHz φ はシステムベースクロックの周期 • リセットにより "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 102 クロック周波数 : 原発振 4MHz および PLL8 逓倍の場合 B3 第 3 章 CPU および制御部 [bit11 ∼ bit8] P3, P2, P1, P0:CLKP 分周選択ビット 周辺クロック (CLKP) クロック分周比設定ビットです。 周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定しま す。 本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベー スクロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択 します。 動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる分周比は設 定しないでください。 P3 P2 P1 P0 クロック分周比 クロック周波数 : 原発振 4 MHz および PLL8 逓倍の場合 0 0 0 0 φ 32.0 MHz 0 0 0 1 φ × 2 (2 分周 ) 16.0 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8.00 MHz [ 初期値 ] 0 1 0 0 φ × 5 (5 分周 ) 6.40 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33 MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57 MHz 0 1 1 1 φ × 8 (8 分周 ) 4.00 MHz … … … … … … 1 1 1 1 φ × 16 (16 分周 ) 2.00 MHz φ はシステムベースクロックの周期 • リセットにより "0011B" に初期化されます。 • 読出しおよび書込みが可能です。 103 第 3 章 CPU および制御部 ■ DIVR1:基本クロック分周設定レジスタ 1 基本クロック分周設定レジスタ 1 のレジスタ構成は , 以下のとおりです。 DIVR1 アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000487H T3 R/W T2 R/W T1 R/W T0 R/W − − − − − − − − 初期値 00000000B R/W :リード / ライト可能 各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を行 います。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注 意ください。 本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周 比が有効となります。 [bit7 ∼ bit4] T3, T2, T1, T0:CLKT 分周選択ビット 外部バスクロック (CLKT) クロック分周比設定ビットです。 外部バスインタフェースのクロック (CLKT) のクロック分周比を設定します。 本ビットに書き込む値により , 外部バスインタフェースのクロックのベースクロッ クに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 16 MHz ですので , これを超える周波数になる分周比は設 定しないでください。 104 第 3 章 CPU および制御部 T3 T2 T1 T0 クロック分周比 クロック周波数 : 原発振 4 [MHz] および PLL8 逓倍の場合 0 0 0 0 φ 32.0MHz [ 初期値 ] 0 0 0 1 φ × 2 (2 分周 ) 16.0MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7MHz 0 0 1 1 φ × 4 (4 分周 ) 8.00MHz 0 1 0 0 φ × 5 (5 分周 ) 6.40MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57MHz 0 1 1 1 φ × 8 (8 分周 ) 4.00MHz … … … … … … 1 1 1 1 φ × 16 (16 分周 ) 2.00MHz φ はシステムベースクロックの周期 • リセットにより "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 [bit3 ∼ bit0] Reserved:予約ビット 予約ビットです。 105 第 3 章 CPU および制御部 ■ OSCCR:発振制御レジスタ 発振制御レジスタのレジスタ構成は , 以下のとおりです。 OSCCR アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 00048AH − R/W − R/W − R/W − R/W − R/W − R/W − R/W OSCDS1 初期値 XXXXXXX0B R/W R/W :リード / ライト可能 サブクロック動作時のメイン発振を制御するレジスタです。 [bit15 ∼ bit9] Reserved:予約ビット 予約ビットです。 [bit8] OSCDS1:メイン発振停止制御ビット ( サブランモード時 ) サブクロック選択中のメイン発振停止ビットです。 クロックソースとしてサブクロック選択中に , 本ビットに "1" を書き込むとメイン 発振を停止します。 本ビットは , メインクロックを選択中は "1" を書くことはできません。 本ビットが "1" の間はメインクロックを選択しないでください。本ビットを "0" に してメイン発振の安定を待ってからメインクロックに切り換えてください。このと き , メイン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。 また , 本ビットによってメイン発振を停止させた状態で , INIT によってクロック ソースがメインクロックに切り替わった場合もメイン発振安定待ち時間が必要に なります。このとき , STCR( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 の設定 がメイン発振安定待ち時間を満たさない場合 , 復帰後の動作が保証されません。 このような場合は , STCR:OS1, OS0 ビットはサブ発振安定待ち時間およびメイン発 振安定待ち時間両方を満たした値を設定してください。 発振安定待ちについては , 「3.9.2 発振安定待ち・PLL ロック待ち時間」も参照して ください。 値 内 容 0 サブクロック実行中 , メイン発振を停止しません。[ 初期値 ] 1 サブクロック実行中 , メイン発振を停止します。 • リセットにより "0" に初期化されます。 • 読出しおよび書込みが可能です。 106 第 3 章 CPU および制御部 3.9.7 クロック制御部が持つ周辺回路 クロック制御部が持つ周辺回路機能について説明します。 ■ タイムベースカウンタ クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク ロックで動作しています。 タイムベースカウンタは , 発振安定待ち時間の計測 (「4.2 リセット要因と発振安定待 ち時間」を参照 ) のほか , 以下の用途に使用されます。 • ウォッチドッグタイマ: システムの暴走検出用のウォッチドッグタイマを , タイムベースカウンタのビット 出力を用いて計測します。 • タイムベースタイマ: タイムベースカウンタ出力を用いて , インターバル割込みを発生します。 ● ウォッチドッグタイマ ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。 プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生 延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット要 求を発生します。 〔ウォッチドッグタイマの起動と周期設定〕 ウォッチドッグタイマは , リセット後の 1 回目の RSRR ( リセット要因レジスタ / ウォッ チドッグタイマ制御レジスタ ) への書込み動作により起動します。 このとき , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビットによ り設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみが有 効となり , それ以降の書込みはすべて無視されます。 〔ウォッチドッグリセットの発生延期〕 いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR ( ウォッチ ドッグリセット発生延期レジスタ ) に対して {A5H}, {5AH} の順でデータを書き込む必 要があります。 この操作により , ウォッチドッグリセット発生用フラグが初期化されます。 〔ウォッチドッグリセットの発生〕 ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカウ ンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出時にフ ラグがセットされていると , ウォッチドッグリセットとして設定初期化リセット要求 を発生します。 〔ウォッチドッグタイマの停止〕 いったんウォッチドッグタイマを起動すると , 動作初期化リセットが発生するまでは , ウォッチドッグタイマを停止することはできません。 動作初期化リセットの発生する以下の状態では, ウォッチドッグタイマは停止し, 再度プ ログラム動作にて起動するまでは , 機能しません。 • 動作初期化リセット状態 107 第 3 章 CPU および制御部 • 設定初期化リセット状態 • 発振安定待ちリセット状態 〔ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 〕 ウォッチドッグタイマは , CPU のプログラム動作が停止している場合にはいったん ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生を 延期します。プログラム動作の停止とは具体的には以下の動作を示します。 • スリープ状態 • ストップ状態 • 発振安定待ち RUN 状態 • エミュレータデバッガ , モニタデバッガを使用時のブレーク中 • INTE 命令の実行から RETI 命令の実行までの期間 • ステップトレーストラップ (PS レジスタの T フラグ =1 による 1 命令ごとのブレーク ) また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発生用 フラグも初期化され , ウォッチドッグリセットの発生が延期されます。 なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリセット が発生しない可能性があります。その場合 , 外部 INIT 端子よりリセットをかけてくだ さい。 ● タイムベースタイマ タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生 用タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最 大で { ベースクロック× 227} サイクルまでの , 比較的長時間の時間計測を行う用途に 適しています。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出 すると , タイムベースタイマ割込み要求を発生します。 〔タイムベースタイマの起動とインターバル設定〕 タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) の bit13 ∼ bit11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは常に 検出されているため, インターバル時間の設定後はまずbit15:TBIFビットをクリアして から , bit14:TBIE ビットを "1" にして割込み要求出力を許可してください。 インターバル時間を変更する際は , あらかじめ bit14:TBIE ビットを "0" にして割込み要 求出力を禁止しておいてください。 タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていますの で , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタイムベー スカウンタをクリアしてください。そうでないと , 割込み許可直後に割込み要求が発生 することもあり得ます。 108 第 3 章 CPU および制御部 〔プログラムによるタイムベースカウンタのクリア〕 CTBR ( タイムベースカウンタクリアレジスタ ) に対して {A5H}, {5AH} の順でデータ を書き込むと , {5AH} 書込みの直後に , タイムベースカウンタを全ビット "0" にクリア します。{A5H} 書込みと {5AH} 書込みの間の時間制限はありませんが , {A5H} 書込み の後に {5AH} 以外のデータを書き込むと , 再度 {A5H} を書き込まないと {5AH} を書き 込んでもクリア動作は行いません。 このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリセッ ト発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期されま す。 〔デバイス状態によるタイムベースカウンタのクリア〕 タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にクリ アされます。 • ストップ状態 • 設定初期化リセット状態 特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタが 使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生してし まう可能性があります。 そのため , ストップモードを設定する前には , タイムベースタイマ割込みを禁止し , タ イムベースタイマを使用しないでください。 それ以外の状態については , 動作初期化リセットが発生するため , タイムベースタイマ 割込みは自動的に禁止されます。 ● メイン発振安定待ちタイマ ( サブクロック選択時用 ) クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン トアップする 26 ビットのタイマです。 サブクロック動作中のメイン発振安定待ち時間の計時に使用します。 サブクロックで動作中 , OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 にて , メイン発振 の制御が行えますが , メイン発振を停止させた後で再度発振開始させた際に , 本タイマ を用いて発振安定待ち時間を計時します。 メインクロックを停止させたサブクロック動作状態からメインクロックに切り換える 際は , 以下の手順で行います。 1. メイン発振安定待ちタイマをクリアします。 2. OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 を "0" にしてメイン発振を開始します。 3. メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。 4. メインクロック安定後, CLKR (クロックソースレジスタ) のbit9, bit8:CLKS1, CLKS0 にてサブクロックからメインクロックに切り換えます。 <注意事項> 安定を待たずメインクロックに切り換えると , 不安定なクロックが供給され , その後の動 作は保証されませんので , 必ず安定を待った後にメインクロックに切り換えてください。 メイン発振安定待ちタイマの詳細については , 「3.11 メイン発振安定待ちタイマ」を参 照してください。 109 第 3 章 CPU および制御部 3.10 デバイス状態制御 本品種の各種状態とその制御について説明します。 ■ デバイス状態制御の概要 本品種のデバイス状態には , 以下のものがあります。 • RUN 状態 ( 通常動作 ) • スリープ状態 • ストップ状態 • 発振安定待ち RUN 状態 • 発振待ちリセット (RST) 状態 • 動作初期化リセット (RST) 状態 • 設定初期化リセット (INIT) 状態 以降 , 上記各種状態の詳細と , 低消費電力モードであるスリープモードおよびストップ モードの詳細について説明します。 110 第 3 章 CPU および制御部 デバイス状態と各遷移 3.10.1 図 3.10-1 に , 本品種のデバイスの状態遷移を示します。 ■ デバイス状態 図 3.10-1 デバイス状態 1 2 3 4 5 6 7 8 9 10 11 12 13 INIT端子=0(INIT) INIT端子=1(INIT解除) 発振安定待ち終了 リセット(RST)解除 ソフトウェアリセット(INIT) スリープ(命令書込み) ストップ(命令書込み) 割込み クロックを必要としない外部割込み メイン→サブ切換え(命令書込み) サブ→メイン切換え(命令書込み) ウォッチドッグリセット(INIT) サブスリープ(命令書込み) 最強 パワーオン 1 最弱 遷移要求の優先順位 設定初期化リセット(INIT) 発振安定待ち終了 動作初期化リセット(RST) 割込み要求 ストップ 設定初期化 (INIT) 2 メインクロックモード 1 メイン発振安定待ち 1 リセット メインストップ 3 発振安定待ちRUN プログラムリセット (RST) 3 4 7 1 メインスリープ 1 5,12 メインRUN 8 1 10 サブクロックモード 1 サブスリープ 13 3 1 発振安定待ちRUN 1 11 8 5,12 サブRUN 7 1 4 プログラムリセット (RST) 1 9 サブストップ サブストップ 111 第 3 章 CPU および制御部 ■ デバイスの動作状態 本品種の動作状態には以下のものがあります。 ● RUN 状態 ( 通常動作 ) プログラム実行状態です。 すべての内部クロックが供給され , すべての回路が動作可能な状態です。 ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間は バスクロックのみ停止しています。 各状態遷移要求を受け付けます。 ● スリープ状態 プログラム停止状態です。プログラム動作により遷移します。 CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモリ および内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。有効な割 込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移します。 設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。 ● ストップ状態 デバイス停止状態です。プログラム動作により遷移します。 すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路および PLL は設定により停止させることが可能です。また , 設定により外部端子を一律ハイイン ピーダンスにすることが可能です ( 一部端子を除く ) 。 特定の ( クロックを必要としない ) 有効な割込みや , 発振動作中のメイン発振安定待ち タイマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。 設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。 ● 発振安定待ち RUN 状態 デバイス停止状態です。ストップ状態からの復帰後に遷移します。 クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていた PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。 設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。 ● 発振安定待ちリセット (RST) 状態 デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復 帰後に遷移します。 クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていた PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 内部回路に対し , 動作初期化リセット (RST) を出力します。 設定された発振安定待ち時間の経過により, 発振安定待ちリセット(RST)状態へ遷移し ます。 設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。 112 第 3 章 CPU および制御部 ● 動作初期化リセット (RST) 状態 プログラム初期化状態です。発振安定待ちリセット (RST) 状態の終了により遷移しま す。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は 一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて いた PLL は動作しています。 内部回路に対し , 動作初期化リセット (RST) を出力します。 動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初 期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後 だった場合は , 設定初期化リセットシーケンスを実行します。 設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。 ● 設定初期化リセット (INIT) 状態 全設定初期化状態です。設定初期化リセット要求の受付けにより遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は すべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。すべて の内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外 では動作します。 内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力 します。 設定初期化リセット要求の消失により , 本状態は解除され , 発振安定待ちリセット (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期化 リセットシーケンスを実行します。 ● 各状態遷移要求の優先順位 どの状態においても , 各状態遷移要求は以下の優先順位に従います。 ただし , 一部要求は特定の状態でしか発生しませんので , その状態でしか有効になりま せん。 【最強】設定初期化リセット (INIT) 要求 ↓ 発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 ) ↓ 動作初期化リセット (RST) 要求 ↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 ) ↓ ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 ) 【最弱】スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 ) 113 第 3 章 CPU および制御部 3.10.2 低消費電力モード 本品種の状態のうち , 各低消費電力モードとその使用方法について説明します。 本品種の低消費電力モードには , 以下のものがあります。 • スリープモード レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。 • ストップモード レジスタ書込みにより , デバイスをストップ状態へ遷移させます。 以下 , 各モードについて説明します。 ■ スリープモード STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットに "1" を書き込むと , スリープ モードとなり , スリープ状態へ遷移します。 以降 , スリープ状態からの復帰要因が発生するまでは , スリープ状態を維持します。 STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットと本ビット両方に "1" を書き込ん だ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 スリープ状態については , 「3.10.1 デバイス状態と各遷移」の「● スリープ状態」も 参照してください。 〔スリープモードへの移行〕 スリープモードに入れる場合は , 以下のシーケンスを必ず使用してください。 (LDI#value_of_sleep,R0) ;value_of_sleep は , STCR へのライトデータ (LDI#_STCR,R12) ;_STCR は , STCR のアドレス (481H) STB R0,@R12 ;スタンバイ制御レジスタ (STCR) への書込み LDUB@R12,R0 ;同期スタンバイのための STCR リード LDUB@R12,R0 ;もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP 〔スリープ状態で停止する回路〕 • CPU のプログラム実行 • ビットサーチモジュール (DMA 転送が発生した場合は動作します。) • 各種内蔵メモリ (DMA 転送が発生した場合は動作します。) • 内部 / 外部バス (DMA 転送が発生した場合は動作します。) 114 第 3 章 CPU および制御部 〔スリープ状態で停止しない回路〕 • 発振回路 • 動作許可された PLL • クロック発生制御部 • 割込みコントローラ • 周辺回路 • DMA コントローラ • DSU • メイン発振安定待ちタイマ 〔スリープ状態からの復帰要因〕 • 有効な割込み要求の発生 割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, スリープモー ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR レジスタに割込みレベルとして割込み禁止 (1FH) を設定してください。 • 設定初期化リセット要求の発生 設定初期化リセット要求が発生すると , 無条件で設定初期化リセット状態へ遷移し ます。 各要因の優先順位については , 「3.10.1 デバイス状態と各遷移」の「● 各状態遷移要 求の優先順位」を参照してください。 〔同期スタンバイ動作〕 SLEEP ビットへの書込みのみではスリープ状態へは遷移しません。 その後 , STCR レジスタを読み出すことによってスリープ状態へ遷移します。 スリープモードを使用する場合は , 【スリープモードへの移行】にあるシーケンスを , 必ず使用してください。 ■ ストップモード STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むと , ストップ モードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生 するまでは , ストップ状態を維持します。 STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットと本ビット両方に "1" を書き込 んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 ストップ状態については , 「3.10.1 デバイス状態と各遷移」の「● ストップ状態」も 参照してください。 〔ストップモードへの移行〕 ストップモードに入れる場合は , 以下のシーケンスを必ず使用してください。 (LDI#value_of_stop,R0) ;value_of_stop は , STCR へのライトデータ (LDI#_STCR,R12) ;_STCR は , STCR のアドレス (481H) STB R0,@R12 ;スタンバイ制御レジスタ (STCR) への書込み LDUB@R12,R0 ;同期スタンバイのための STCR リード LDUB@R12,R0 ;もう一度 STCR をダミーリード 115 第 3 章 CPU および制御部 NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP 〔ストップ状態で停止する回路〕 • 停止するよう設定された発振回路: STCR ( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "1" が設定してあるとき , ストップ状態中のサブクロック用発振回路を停止状態にします。 STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあるとき , ストップ状態中のメインクロック用発振回路を停止状態にします。このときメイン 発振安定待ちタイマも停止します。 • 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL: STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあるとき , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してあっ ても , ストップ状態中のメインクロック用 PLL を停止状態にします。 • 〔ストップ状態で停止しない回路〕を除くすべての内部回路 〔ストップ状態で停止しない回路〕 • 停止するよう設定されていない発振回路: STCR ( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "0" が設定してあるとき , ストップ状態中のサブクロック用発振回路は停止しません。 STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあるとき , ストップ状態中のメインクロック用発振回路は停止しません。このときメイン発振 安定待ちタイマも停止しません。 • 動作許可されていて,かつ停止するよう設定されていない発振回路に接続されたPLL: STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあるとき , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してあ ると , ストップ状態中のメインクロック用 PLL は停止しません。 〔ストップ状態での端子のハイインピーダンス制御〕 STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "1" が設定してあると , ストップ 状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる端子は「付 録 C 各 CPU ステートにおける端子状態」を参照してください。 STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "0" が設定してあると , ストップ 状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は「付録 C 各 CPU ステートにおける端子状態」を参照してください。 〔ストップ状態からの復帰要因〕 • 特定の ( クロックを必要としない ) 有効な割込み要求の発生: 外部割込み入力端子 (INT0 ∼ INT15 端子 ) , メイン発振中のメイン発振安定待ちタイ マ割込み , およびサブ発振中の時計割込みのみ有効です。 割込み禁止 (1FH) 以外の割込みレベルを持つ割込み要求が発生するとストップモー ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生してもストップモードを解除したくない場合は , 該当する ICR レ ジスタに割込みレベルとして割込み禁止 (1FH) を設定してください。 116 第 3 章 CPU および制御部 • メイン発振安定待ちタイマ割込み: サブクロック選択中で OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 ビットに "0" が 設定時もしくはメインクロック選択中において, STCR (スタンバイ制御レジスタ) の bit0:OSCD1 ビットに "0" が設定してあるとき , メイン発振安定待ちタイマの割込み要 求が発生するとストップモードは解除され RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生してもストップモードを解除したくない場合は , メイン発振安定 待ちタイマを停止させるか , またはメイン発振安定待ちタイマの割込み許可ビット を割込み禁止に設定してください。 • 設定初期化リセット要求の発生: 設定初期化リセット要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ 遷移します。 各要因の優先順位については , 「3.10.1 デバイス状態と各遷移」の「● 各状態遷移要 求の優先順位」を参照してください。 〔ストップモード時のクロックソース選択〕 ストップモードを設定する前に , メインクロックの 2 分周をソースクロックとするよう あらかじめ選択しておいてください。詳細は , 「3.9 クロック生成制御」, および「3.9.1 PLL 制御」を参照してください。 なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。 ■ 同期スタンバイ動作 STOP ビットへの書込みのみではストップ状態へは遷移しません。その後 , STCR レジ スタを読み出すことによってストップ状態へ遷移します。 実際に STOP ビットへの書込みが行われた後 , STCR レジスタの読出しが完了するまで はストップ状態へ遷移しません。STCR レジスタの読出し値が CPU に格納されるまで は , CPU がバスを使用しているためです。このため , CPU クロック (CLKB) と周辺ク ロック (CLKP) の分周比の関係がいかなる設定においても , STOP ビットへの書込み命 令と STCR レジスタの読出し命令の後に , 2 命令のみ NOP 命令を配置するのみで , それ 以降の命令がストップ状態への遷移前に実行されることを防ぐことができます。 ストップモードを使用する場合は , 〔ストップモードへの移行〕にあるシーケンスを , 必ず使用してください。 117 第 3 章 CPU および制御部 3.11 メイン発振安定待ちタイマ メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23 ビットのカウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタ イマ機能があります。 本タイマは , サブクロックで動作中に OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 に よってメイン発振を一度止めて再度発振させた場合に , メインクロックを発振安定待ち 時間の確保に使用します。 ■ メイン発振安定待ちタイマのインターバル時間 表 3.11-1 にインターバル時間の種類を示します。インターバル時間は次の 3 種類の中 から選択できます。 表 3.11-1 メイン発振安定待ちタイマのインターバル時間 メインクロック周期 インターバル時間 211/FCL(512 µs) 216/FCL(16.4 ms) 1/FCL( 約 250 ns) 223/FCL(2097 ms) ( 注意 ) FCL はメインクロック発振周波数 ■ メイン発振安定待ちタイマのブロックダイヤグラム 図 3.11-1 に , メイン発振安定待ちタイマのブロックダイヤグラムを示します。 図 3.11-1 メイン発振安定待ちタイマのブロックダイヤグラム メイン発振安定待ち タイマ用カウンタ FCL 0 1 2 1 2 3 2 2 2 3 2 4 4 5 6 7 8 10 5 6 7 8 9 11 2 2 2 2 インター バル タイマ セレクタ WIF WIF WEN 22 16 2 223 2 (16.4ms) (2097ms) リセット (INIT) メイン発振安定待ち タイマ割込み メイン発振安定待ちタイマ 制御レジスタ(OSCR) 2 15 WS1 カウンタ クリア回路 WS0 WCL FCL:メインクロック原発振 ( )内の数字は、メインクロック原発振4MHzの場合の周期 118 第 3 章 CPU および制御部 ● メイン発振安定待ちタイマ メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。 ● カウンタクリア回路 OSCR レジスタによる設定 (WCL=0) 以外に , リセット時にカウンタをクリアします。 ● インターバルタイマセレクタ メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用 の 1 種類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因になりま す。 ● メイン発振安定待ちレジスタ (OSCR) インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い ます。 ■ メイン発振安定待ちタイマのレジスタ説明 メイン発振安定待ちタイマレジスタのレジスタ構成は , 以下のとおりです。 OSCR アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000490H WIF R/W WIE R/W WEN R/W − R/W − R/W WS1 R/W WS0 R/W WCL W 初期値 00000000B R/W :リード / ライト可能 W :ライトオンリ [bit15] WIF:タイマ割込みフラグ メイン発振安定待ち割込み要求フラグです。 選択されたインターバルタイマ用分周出力の立下りエッジによって "1" にセットさ れます。 このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出 力します。 値 内 容 0 メイン発振安定割込みの要求なし [ 初期値 ] 1 メイン発振安定割込みの要求あり • リセットで "0" に初期化されます。 • 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込 んでもビット値は変化しません。 • リードモディファイライト系命令での読出し値では常に "1" となります。 119 第 3 章 CPU および制御部 [bit14] WIE:タイマ割込み許可ビット CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振 安定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力しま す。 値 内 容 0 メイン発振安定割込み要求出力を禁止します。[ 初期値 ] 1 メイン発振安定割込み要求出力を許可します。 • リセットで "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit13] WEN:タイマ動作許可ビット タイマ動作許可ビットです。 本ビットが "1" のときタイマはカウント動作を行います。 値 内 容 0 タイマ動作を停止します。[ 初期値 ] 1 タイマはカウント動作を行います。 • リセットで "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit12, bit11] Reserved:予約ビット 予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 ) 。 読出し値は不定です。 [bit10, bit9] WS1, WS0:タイマインターバル時間選択ビット インターバルタイマの周期を選択します。 メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択し ます。 WS1 WS0 0 0 設定禁止 [ 初期値 ] 0 1 211/FCL(512 µs) 1 0 216/FCL(16.4 ms) 1 1 223/FCL(2097 ms) インターバルタイマ周期 (FCL=4 MHz 時 ) • リセットで "00B" に初期化されます。 • 読出しおよび書込みが可能です。 • メイン発振安定待ち時間タイマを使用する場合 , 本レジスタにデータの書込みを 行ってください。 120 第 3 章 CPU および制御部 [bit8] WCL:タイマクリアビット "0" 書込みでメイン発振安定待ちタイマを 0 にクリアします。 書込みは "0" のみ可能で , "1" を書き込んでも動作に影響を与えません。 • 読出し値は常に "1" となります。 ■ メイン発振安定待ち割込み メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に セットします。そのとき , 割込み要求許可ビットを許可 (WIE=1) していると CPU へ割 込み要求が発生します。ただし , メインクロックが発振停止しているとき ( 次項の「■ インターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン 発振安定待ち割込みは発生しません。 割込み処理ルーチンで WIF フラグに "0" を書込み , 割込み要求をクリアしてください。 なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がると セットされます。 <注意事項> リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1:WS0 ビット変更時 は , 必ず WIF と WCL ビットを同時にクリア (WIF=WCL=0) してください。 <参考> • WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み 要求が発生します。 • カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場 合は , WIF ビットのセットは行われません。 ■ インターバルタイマ機能の動作 メイン発振安定待ちタイマ用カウンタはメインクロックにてカウントアップを行いま すが , 以下の状態ではメインクロック発振が停止するため , カウント動作も停止しま す。 • WEN ビットが "0" のとき • ストップモードでメイン発振が停止する設定 ( スタンバイ制御レジスタ STCR の bit0:OSCD1=1) でストップモードに移行すると , ストップモード中 , カウント動作が 停止します。 本品種では , リセット時 OSCD1=1 に初期化しますので , ストップモード中もメイン 発振安定待ちタイマを動かしたい場合は, スタンバイ移行前にOSCD1=0を設定して ください。 • サブクロックモードで OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 に "1" を設定時 , メイン発振が停止します。 タイマカウント動作も停止します。 121 第 3 章 CPU および制御部 カウンタをクリア (WCL=0) すると , "000000H" からカウント動作を行い , "7FFFFFH" に 達すると , "000000H" に戻ってカウントを継続します。カウントアップ中に選択された インターバルタイマ用の分周出力に立下りエッジが発生すると , メイン発振安定待ち 割込み要求ビット (WIF) を "1" にセットします。すなわち , クリアされた時間を基準に して , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求を発 生することになります。 ■ クロック供給機能の動作 本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク ロックで動作する本メイン発振安定待ちタイマを使用します。 サブクロック動作にてメイン発振停止状態からメインクロックの発振安定待ちを行う には , 次の手順で行ってください。 1. メインクロックの発振安定に必要な時間を WT1, WT0 ビットに設定し , カウンタを "0" にクリアします (WT1, WT0= 発振安定待ち時間 , WCL= 0 書込み )。 発振安定待ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行 います (WIF= 0, WIE= 0 書込み )。 2. メインクロックの発振を開始します (OSCCR レジスタ bit0:OSCDS1= 0 書込み )。 3. プログラムにて , WIF フラグが "1" になるまで待ちます。 4. WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま た , 割込みを許可した場合は , WIF= 1 時に割込みが発生しますので , 割込みルーチ ンで発振安定待ち完了後の処理を行ってください。 サブクロックからメインクロックに切り換える場合も , 4) の WIF= 1 の確認を待って から行ってください ( 発振安定を待たずにメインクロックへ切り換えると , デバイ ス全体に不安定なクロックが供給され , その後の動作は保証されません ) 。 ■ メイン発振安定待ちタイマの動作 図 3.11-2 に , メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウン タ状態を示します。 図 3.11-2 メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウンタ状態 7FFFFFH カウンタ値 メインクロック 発振安定待ち時間 ・タイマクリア(WCL=1) 0以外の時 割込みルーチンで ・インターバル時間設定(WS1, WS0=11B) クリア ・メイン発振開始(OSCCR:OSCDS1=0) WIF(割込み要求) WIF(割込みマスク) クロックモード サブクロック ・サブ→メインクロック変更 122 メインクロック 第 3 章 CPU および制御部 ■ メイン発振安定待ちタイマ使用時の注意事項 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。 メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込みも 発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を停止し ないでください。 WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラグ セットが優先し , "0" クリアは無効となります。 123 第 3 章 CPU および制御部 124 第4章 リセット リセットについて説明します。 4.1 リセットの概要 4.2 リセット要因と発振安定待ち時間 4.3 リセットレベル 4.4 外部リセット端子 4.5 リセット動作 4.6 リセット要因ビット 4.7 リセットによる各端子の状態 125 第 4 章 リセット 4.1 リセットの概要 リセットが発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解除待 ち状態となります。リセットの解除後は , リセットベクタで示されたアドレスから 処理を開始します。 リセットには次の 5 つの要因があります。 • 外部リセット端子 (INIT) からのリセット要求 • ソフトウェアリセット要求 • ウォッチドッグタイマのオーバフロー • ハードウェアウォッチドッグタイマのオーバフロー • 発振動作不具合 ■ リセット要因 表 4.1-1 にリセットの要因について示します。 表 4.1-1 リセット要因 リセット 発生要因 内部発生 リセット タイミング レベル 発振安定待ち メイン STOP 状態 左記以外 発振停止 外部リセット INIT 端子への "L" 入力 同期 ( 非同期 ) INIT あり あり あり ソフトウェア リセット スタンバイ制御レジス タ (STCR) の SRST ビットに "0" 書込み 同期 INIT あり ― なし ウォッチドッグ ウォッチドッグタイマ タイマ オーバフロー 同期 INIT あり ― なし ハードウェアウォッチ ハードウェア ドッグタイマのオーバ ウォッチドッグ フロー 同期 INIT あり ― あり クロックスーパ 発振動作不具合 バイザ 同期 INIT あり ― あり クロックスーパバイザリセットを除き , リセット要因発生時にはマシンクロックとし て , メイン発振クロックの 2 分周クロックが使用されます。クロックスーパバイザリ セットは内蔵 RC 発振により生成されます。 ● 外部リセット 外部リセットは , 外部リセット (INIT) 端子に "L" レベルを入力することでリセットを 発生します。なお , 電源投入時は INIT 端子の入力レベルを "L" とし , 設定初期化リセッ ト (INIT) をかけてください。また電源投入直後は , 発振回路の発振安定待ち時間と降 圧回路の安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要 求する安定待ち時間の間持続してください。 ● ソフトウェアリセット ソフトウェアリセットは , スタンバイ制御レジスタ (STCR) の SRST ビットに "0" を書 き込むことによって発生される内部リセットです。 126 第 4 章 リセット ● ウォッチドッグリセット ウォッチドッグリセットは , ウォッチドッグタイマの起動後定められた時間内に , ウォッチドッグリセット発生遅延レジスタ (WPR) に連続した A5H, 5AH の書込みがな い場合に , ウォッチドッグタイマのオーバフローにより発生するリセットです。 ● ハードウェアウォッチドッグリセット ハードウェアウォッチドッグリセットは , 電源投入後 , 定められた時間内にハードウェ アウォッチドッグタイマ制御レジスタ (HWDCS) の CL ビットに "0" の書込みがないと き , ハードウェアウォッチドッグタイマのオーバフローによってリセットを発生しま す。 ● クロックスーパバイザリセット クロックスーパバイザリセットは , メイン発振およびサブ発振を監視し , その出力に不 具合が生ずるとリセットを発生します。 <注意事項> 電源投入時 , 電圧低下発生時以外のリセット要因では , 書込み動作中 ( 転送系命令実行中 ) にリセット要因が発生した場合 , 命令の終了後にリセット解除待ち状態となります。その ため , 書込み中にリセットが入力されても正常に書込みを終了します。 ただし , ロードマルチ (LDM) 系 , ストアマルチ (STM) 系命令は , 指定したレジスタ分の転 送が終了する前にリセットを受け付けますので , すべてのデータが転送されることを保障 しません。 127 第 4 章 リセット リセット要因と発振安定待ち時間 4.2 5 種類のリセット要因があり , リセット時の発振安定待ち時間はリセット要因によっ て異なります。 ■ リセット要因と発振安定待ち時間 表 4.2-1 にリセット要因と発振安定待ち時間について示します。 表 4.2-1 リセット要因と発振安定待ち時間 発振安定待ち時間 リセット 発生要因 メイン 発振停止 STOP 状態 左記以外 外部端子 INIT 端子への "L" 入力 OS ビットが "0" の時間 OS ビットが "0" の時間 あり ソフトウェア リセット スタンバイ制御レジスタ (STCR) の SRST ビットに "0" 書込み OS ビットの 設定値 ― なし ウォッチドッグ タイマ ウォッチドッグタイマ オーバフロー OS ビットの 設定値 ― なし ハードウェア ウォッチドッグ ハードウェアウォッチドッグタイマ オーバフロー OS ビットが "0" の時間 ― あり クロックスーパ バイザ 発振動作不具合 OS ビットが "0" の時間 ― あり 発振安定待ち時間の確保は , スタンバイ制御レジスタ (STCR) 内の OS ビットの設定に より行います。 表 4.2-2 に OS1, OS0 の設定と発振安定待ち時間について示します。 表 4.2-2 スタンバイ制御レジスタ (STCR) の設定による発振安定待ち時間 OS1 OS0 0 0 φ × 212 ( 約 1.97ms) ※電源投入時 0 1 φ × 212 ( 約 1.97ms) 1 0 φ × 213 ( 約 4.1ms) 1 1 φ × 214 ( 約 5.2ms) 発振安定待ち時間 () 内は発振クロック発振周波数 4MHz 時 φ はシステムベースクロックの周期 <注意事項> セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで一般 に数ミリ秒から十数ミリ秒の発振安定待ち時間を必要とします。そのため , 使用する振動 子に合わせた値を設定してください。 128 第 4 章 リセット ■ 電源投入時の発振安定待ち時間について 電源投入時には INIT 端子の入力レベルを "L" としてください。電源投入後の "L" レベ ル入力期間は降圧回路の安定時間 (8ms) 以上を確保してください。 図 4.2-1 外部リセットと内部動作の関係 Vcc CLK INIT CPU動作 降圧回路の 安定待ち時間 発振安定 待ち時間 INIT の "L" レベル入力期間が 8ms に満たない場合 , 内部回路により降圧回路の安定待ち 時間が確保されます。 降圧回路の安定待ち経過後 , または INIT 端子の "L" レベル入力解除後に発振安定待ち 時間が確保されます。 ■ INIT 端子による復帰について 表 4.2-3 にストップモード中または , サブラン中に , INIT 端子への "L" レベル入力が行 われた場合の発振安定待ち時間について示します。 メイン発振の動作状態により , 発振安定待ち時間が異なります。 表 4.2-3 INIT 端子によるリセット要因と発振安定待ち時間 発生要因 INIT 端子へ の "L" 入力 状態 発振安定待ち時間 () 内は発振クロック発振周波数 4MHz 時 メイン発振許可 OS ビットが "00B" の時間+ 27/HCLK ( 約 32µs) メイン発振停止 OS ビットが "00B" の時間+約 12µs HCLK:発振クロック周波数 129 第 4 章 リセット 4.3 リセットレベル FR60Lite デバイスのリセット動作は 2 種類のレベルに分けられ , それぞれ発生要因 および初期化の内容が異なります。ここでは , 各リセットのレベルについて説明し ます。 ■ 設定初期化リセット (INIT) すべての設定を初期化する最強レベルのリセットです。 外部端子入力 , ウォッチドッグリセット , ソフトウェアリセット , ハードウェアウォッ チドッグリセット , クロックスーパバイザリセットが , 設定初期化リセット (INIT) のリ セットレベルを持ちます。設定初期化リセット (INIT) 発生時には , 同時に動作初期化 リセット (RST) も発生します。 設定初期化リセット (INIT) により初期化される内容は次のとおりです。 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) • クロック生成 / 制御に関する設定 - クロックソース選択 (CLKS:メインクロック 2 分周 ) - クロック分周設定 ( 周辺:× 4, CPU:× 1, 外部バス:× 1) - ウォッチドッグタイマ周期 (WT1, WT0:216/ ベースクロック周期 ) *1 - 発振安定待ち時間 (OS1, OS0:215/HCLK) *2 - ストップ時発振抑止 (OSCD1:ストップ中メインクロック発振を停止 ) - タイムベースタイマ割込み (TBIE:禁止 ) - メイン PLL 逓倍率 (PLL1S2 ∼ PLL1S0:× 1) - PLL 動作許可 (PLL1EN:PLL 停止 ) • 外部バスの CS0 領域に関するすべての設定 - 領域選択レジスタ (ASR0:開始アドレス "0") - 領域サイズ (ASZ1, ASZ0:512K バイト ) - データバス幅 ( モードデータの値が反映されます ) - アクセスタイプ (TYP3 ∼ TYP0:通常アクセス , WR0 ∼ WR1 端子をライトスト ローブとして使用 , RDY 端子による WAIT 挿入無効 ) • 動作初期化リセット (RST) で初期化されるすべての設定 *1: 設定初期化リセット (INIT) 発生により , ウォッチドッグタイマは停止し , 再度プロ グラム動作により起動するまでは機能しません。 *2: 電源投入時の外部 INIT 端子によって初期化されます。 130 第 4 章 リセット ■ 動作初期化リセット (RST) プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ びます。 設定初期化リセット(INIT)発生時には, 同時に動作初期化リセット(RST)も発生します。 動作初期化リセット (RST) により初期化される内容は以下のとおりです。 • プログラム動作 • CPU および内部バス • クロック生成 / 制御に関する設定 - ウォッチドッグタイマ周期 (WT1, WT0:216/ ベースクロック周期 ) - タイムベースタイマ割込み (TBIE:禁止 ) • 周辺回路のレジスタ設定値 • I/O ポート設定 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) 131 第 4 章 リセット 4.4 外部リセット端子 外部リセット端子 (INIT 端子 ) は , リセット入力専用端子で , "L" レベルの入力に よって内部リセットを発生します。マシンクロックに同期してリセットがかかりま すが , 外部端子は非同期でリセットがかかります。 ■ 外部リセット端子のブロックダイヤグラム 図 4.4-1 内部リセットのブロックダイヤグラム マシンクロック (PLL逓倍回路, HCLKの2分周) INIT 端子 P-ch P-ch 同期化回路 N-ch 入力バッファ クロック同期 内部リセット信号 <注意事項> 書込み動作中のリセットによるメモリ破壊を防ぐため , INIT 端子入力による内部回路の初 期化動作をメモリが破壊されないサイクルで行います。 また , 内部回路の初期化にはクロックが必要です。外部クロックで動作させる場合には , リセット入力時にクロック入力を供給してください。 ■ 外部端子のリセットタイミング 外部リセット INIT 端子入力に対して , 各外部端子は非同期にリセットがかかります。 132 第 4 章 リセット 4.5 リセット動作 リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読 出し先を選択し , モードフェッチを行います。このモードフェッチで , CPU の動作 モードとリセット動作後の実行開始アドレスが決定されます。電源投入後 , ストッ プからのリセットによる復帰では , 発振安定待ち時間が経過してからモードフェッ チを行います。 ■ リセット動作の概要 図 4.5-1 に , リセット動作フローを示します。 図 4.5-1 リセット動作フロー 電源投入時の外部リセット リセット中 外部リセット ソフトウェアリセット ウォッチドッグタイマリセット ハードウェアウォッチドッグリセット クロックスーパバイザリセット 停止 メイン発振 発振安定待ちリセット状態 動作 モードデータ取込み モードフェッチ (リセット動作) 通常動作 (RUN状態) リセットベクタ取込み リセットベクタが示すアドレスから 命令コードを読み込み, 命令を実行 ■ モード端子 モード端子 (MD0 ∼ MD2) は , リセットベクタとモードデータの取込み方法を指定しま す。リセットベクタとモードデータの取込みは , リセットシーケンスで行います。 ■ モードフェッチ リセットが解除されると , CPU は , リセットベクタとモードデータを CPU コア内の該 当レジスタ内に取り込みます。リセットベクタとモードデータはそれぞれ , FFFFCH, FFFF8H に割り当てられています。CPU は , リセット解除後直ちにこれらのアドレスを 内部バスに出力し , リセットベクタとモードデータを取り込みます。このモードフェッ チで , CPU はリセットベクタが指すアドレスから処理を開始します。 133 第 4 章 リセット 4.6 リセット要因ビット リセット発生要因は , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) を読み出すことで識別することができます。 ■ リセット 図 4.6-1 に示すように , それぞれのリセット要因に対応したフリップフロップがありま す。これらの内容は , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) を読み出すと得られます。リセット解除後にリセット発生要因を識別する必要 がある場合には , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) の読出し値をソフトウェアで処理した上で , 適切なプログラムへ分岐するようにして ください。 図 4.6-1 リセット要因ビットブロック 定期的なクリアなし 発振出力異常 ハードウェア ウォッチドッグ クロック スーパバイザ INIT端子 外部リセット 要求検出回路 ウォッチドッグ タイマリセット 発生検出回路 定期的なクリアなし SRSTビットセット ウォッチドッグ タイマ制御 レジスタ (RSRR) システムベース クロック SRSTビット 書込み検出回路 内部リセット D CL F/F Q CK D CL F/F Q CK D CL F/F Q CK CL F/F D CK ウォッチドッグタイマ 制御レジスタ (RSRR)読出し 内部データバス 134 Q 第 4 章 リセット ■ リセット要因ビットとリセット要因の対応 リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) のリセット要因 ビットの構成を , 図 4.6-2 に , リセット要因ビットの内容とリセット要因の対応を 表 4.6-1 に示します。詳細は , 「3.9 クロック生成制御」を参照してください。 図 4.6-2 リセット要因ビットの構成 (RSRR) RSRR アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 000480H − R − R WDOG R ERST R SRST R − R WT1 R/W WT0 R/W 初期値 00010000B R/W :リード / ライト可能 R :リードオンリ 表 4.6-1 リセット要因ビットの内容とリセット要因の対応 ERST WDOG SRST * 1 * クロックスーパバイザによるリセット要求の発生* 1 ハードウェアウォッチドッグリセット要求の発生* 2 1 * * ソフトウェアリセット要求の発生 * * 1 リセット要因 ウォッチドッグタイマオーバフローによる リセット要求の発生 INIT 端子からの外部リセット要求 *:前の状態を保持 *1:クロックスーパバイザによるリセット要求の発生の場合は , クロックスーパバイ ザ制御レジスタ (CSVCR) の MM ビットまたは MS ビットが "1" になります。 *2:ハードウェアウォッチドッグリセット要求の発生の場合は , ハードウェアウォッ チドッグタイマ制御レジスタ (HWDCS) の CPUF ビットが "1" になります。 ■ リセット要因ビットの注意事項 ● 複数のリセット要因が発生した場合 リセット要因が複数発生する場合は , RSRR の対応するそれぞれのリセット要因ビット が "1" にセットされます。例えば , INIT 端子からの外部リセット要求の発生とウォッ チドッグタイマのオーバフローが同時に発生した場合 , ERST ビットと WDOG ビット の両方が "1" になります。 ● リセット要因ビットのクリア リセット要因ビットは , RSRR を読み出したときのみクリアされます。それぞれのリ セット要因に対応するビットに生じたフラグは , その後ほかの要因でリセットが発生 してもクリアされません ("1" のままです ) 。 135 第 4 章 リセット 4.7 リセットによる各端子の状態 リセットによる各端子の状態について説明します。 ■ リセット中の端子の状態 リセット中の端子の状態は , モード端子 (MD2 ∼ MD0= 00xB) の設定によって決定され ます。 ● 内部ベクタモード設定時 (M2, M1, M0 = 000B) I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は内部 ROM になります。 ● 外部ベクタモード設定時 (M2, M1, M0 = 001B) I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し 先は外部 ROM になります。 <注意事項> MB91F273(S)/MB91F278(S) は内部ベクタモードのみをサポートします。 ■ モードデータ読出し後の端子の状態 モードデータ読出し後の端子の状態は , モードデータによって決定されます。 ● シングルチップモード選択時 I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , リセットベクタの読出 し先は内部 ROM になります。 ● 外バスモード選択時 I/O 端子 ( 周辺機能端子 ) は外バス兼用端子を除いてすべてハイインピーダンスになり , リセットベクタの読出し先は外部 ROM になります。 <注意事項> リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器 が誤動作しないように配慮してください。 136 第5章 外部バスインタフェース 外部バスインタフェースコントローラは , LSI の内 部バスと外部のメモリおよび I/O デバイスとのイン タフェースを制御します。 外部バスインタフェースの各機能について説明し ます。 5.1 外部バスインタフェースの特長 5.2 外部バスインタフェースのレジスタ 5.3 チップセレクト領域 5.4 エンディアンとバスアクセス 5.5 通常バスインタフェース 5.6 アドレス / データマルチプレクスインタフェース 5.7 DMA アクセス 5.8 レジスタ設定手順 137 第 5 章 外部バスインタフェース 5.1 外部バスインタフェースの特長 外部バスインタフェースの特長について説明します。 ■ 外部バスインタフェースの特長 • 最大 24 ビット長のアドレス出力 • 各種外部メモリ (8 ビット /16 ビット ) を直結できるほか , 複数のアクセスタイミン グを混在制御可能 - 非同期 SRAM, 非同期 ROM/ フラッシュメモリ ( 複数ライトストローブ方式またはバイトイネーブル方式 ) - アドレス / データマルチプレクスバス (8 ビット /16 ビット幅のみ ) • 独立した 4 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ プセレクト出力が可能 - CS0, CS1 は , 64K/128K/256K/512K バイト単位で , 003FFFFFH までの外部バス領域 に割り当てられた空間に設定可能 - CS2, CS3 は , 1M/2M/4M/8M バイト単位で , 00400000H ∼ 00FFFFFFH の空間に設 定可能 - 領域サイズによりバウンダリの制限あり • チップセレクト領域ごとに以下の機能が独立に設定可能 - チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません ) - 各種メモリ対応などのアクセスタイミングタイプ設定 - 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 ) - データバス幅設定 (8 ビット /16 ビット ) • アクセスタイミングタイプごとに異なる詳細なタイミングが設定可能 - 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能 - オートウェイトは , 最大 7 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能 • 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能 138 第 5 章 外部バスインタフェース ■ 外部バスインタフェースのブロックダイヤグラム 図 5.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。 図 5.1-1 外部バスインタフェースのブロックダイヤグラム 内部 アドレスバス 32 内部 データバス 32 外部 データバス MUX ライトバッファ スイッチ リードバッファ スイッチ データブロック アドレスブロック +1 または +2 外部 アドレスバス アドレスバッファ ASR CS0~CS3 ASZ comparator 外部端子制御部 RD WR0,WR1 全ブロック制御 レジスタ&制御 AS RDY 139 第 5 章 外部バスインタフェース ■ I/O ピン 外部バスインタフェースの端子です。 〔通常バスインタフェース〕 A23 ∼ A00, D15 ∼ D00 CS0, CS1, CS2, CS3, AS, SYSCLK, RD, WR0, WR1, RDY ■ 外部バスインタフェースのレジスタ一覧 外部バスインタフェースのレジスタ構成は , 以下のとおりです。 アドレス bit 31 00000640H 00000644H 00000648H 0000064CH 00000660H 00000664H 00000680H 000007FCH 24 23 16 15 8 7 ASR0 ASR1 ASR2 ASR3 AWR0 AWR2 CSER Reserved 0 ACR0 ACR1 ACR2 ACR3 AWR1 AWR3 Reserved MODR Reserved Reserved Reserved Reserved 予約:予約レジスタです。書き換える場合には , 必ず "0" を設定してください。 MODR はユーザプログラムからはアクセスできません。 140 第 5 章 外部バスインタフェース 5.2 外部バスインタフェースのレジスタ 外部バスインタフェースのレジスタについて説明します。 ■ 外部バスインタフェースのレジスタ概要 外部バスインタフェースには , 以下の 4 種類のレジスタがあります。 • Area Select Register (ASR0 ∼ ASR3) • Area Configuration Register (ACR0 ∼ ACR3) • Area Wait Register (AWR0 ∼ AWR3) • Chip Select Enable Register (CSER) 141 第 5 章 外部バスインタフェース 5.2.1 Area Select Register (ASR0 ∼ ASR3) Area Select Register の詳細を説明します。 ■ ASR0 ∼ ASR3(Area Select Register) のレジスタ構成 ASR0 ∼ ASR3 のレジスタ構成は , 以下のとおりです。 ASR0 アドレス bit15 --- bit8 bit7 bit6 --- bit1 bit0 000640H R/W ----- R/W A23 R/W A22 R/W ----- A17 R/W A16 R/W アドレス bit15 --- bit8 bit7 bit6 --- bit1 bit0 000644H R/W ----- R/W A23 R/W A22 R/W ----- A17 R/W A16 R/W アドレス bit15 --- bit8 bit7 bit6 --- bit1 bit0 000648H R/W ----- R/W A23 R/W A22 R/W ----- A17 R/W A16 R/W アドレス bit15 --- bit8 bit7 bit6 --- bit1 bit0 00064CH R/W ----- R/W A23 R/W A22 R/W ----- A17 R/W A16 R/W 初期値 0000H ASR1 初期値 00XXH ASR2 初期値 XXXXH ASR3 初期値 00XXH R/W :リード / ライト可能 X :不定 [bit15 ∼ bit8] Reserved:予約ビット 必ず , "00H" を設定してください。 [bit7 ∼ bit0] A23 ∼ A16:領域開始アドレス ASR0 ∼ ASR3 (Area Select Register 0 ∼ 3) は , CS0 ∼ CS3 の各チップセレクト領域 の開始アドレスを指定します。 開始アドレスは , A23 ∼ A16 の上位 8 ビットを設定できます。各チップセレクト領 域は , このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR3 レジスタの ASZ1, ASZ0 ビットで設定された範囲をとります。 各チップセレクト領域のバウンダリは , ACR0 ∼ ACR3 レジスタの ASZ1, ASZ0 ビッ トの設定に従います。例えば , ASZ1, ASZ0 ビットにより , 1 M バイトの領域を設定し た場合は , ASR0 ∼ ASR3 レジスタの下位 4 ビットは無視され , A23 ∼ A20 ビットの み意味を持ちます。 ASR0 レジスタは , リセットにより , "00H" に初期化されます。ASR1 ∼ ASR3 は , リ セットによっては初期化されず , 不定となります。LSI の動作開始後 , CSER レジスタ により各チップセレクト領域を有効にする前に , 必ず対応する ASR レジスタを設定 してください。 142 第 5 章 外部バスインタフェース 5.2.2 Area Configuration Register (ACR0 ∼ ACR3) Area Configuration Register の詳細を説明します。 ■ ACR0 ∼ ACR3 (Area Configuration Register) のレジスタ構成 ACR0 ∼ ACR3 のレジスタ構成は , 以下のとおりです。 ACR0H bit14 bit13 bit12 bit11 bit10 − R/W − R/W ASZ1 R/W ASZ0 R/W − R/W DBW0 R/W bit8 初期値 − R/W − R/W 00110*00B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 − R/W − R/W WREN R/W 0 R/W 初期値 TYP3 R/W TYP2 R/W TYP1 R/W TYP0 R/W 00000000B アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 000646H − R/W − R/W ASZ1 R/W ASZ0 R/W − R/W DBW0 R/W − R/W − R/W xxxx0x00B アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000647H − R/W − R/W WREN R/W − R/W TYP3 R/W TYP2 R/W TYP1 R/W TYP0 R/W 00x0xxxxB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R/W − R/W ASZ1 R/W ASZ0 R/W − R/W DBW0 R/W − R/W − R/W xxxx0x00B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R/W − R/W WREN R/W − R/W TYP3 R/W TYP2 R/W TYP1 R/W TYP0 R/W 00x0xxxxB アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 00064EH − R/W − R/W ASZ1 R/W ASZ0 R/W − R/W DBW0 R/W − R/W − R/W 01xx0x00B アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00064FH − R/W − R/W WREN R/W − R/W TYP3 R/W TYP2 R/W TYP1 R/W TYP0 R/W 00x0xxxxB アドレス 000642H bit15 bit9 ACR0L アドレス 000643H ACR1H ACR1L ACR2H アドレス 00064AH ACR2L アドレス 00064BH ACR3H ACR3L R/W :リード / ライト可能 * :モードベクタの WTH ビットと同じ値に自動設定 143 第 5 章 外部バスインタフェース ACR0 ∼ ACR3(Area Configuration Register 0 ∼ 3) は , 各チップセレクト領域の機能を設 定します。 <注意事項> ASR と ACR は , ワードアクセスで同時設定してください。ASR, ACR をハーフワードで アクセスする場合は , ASR 設定後 , ACR を設定してください。 [bit15, bit14] Reserved:予約ビット 必ず , "00B" を設定してください。 [bit13, bit12] ASZ1, ASZ0= Area Size ビット [1:0] 各チップセレクト領域のサイズを , 表 5.2-1 のように設定します。 表 5.2-1 Area Size ビットの各チップセレクト領域のサイズ Register ASZ1 ASZ0 ASR0/ ASR1 ASR2/ ASR3 各チップセレクト領域のサイズ 設定 64 K バイト (00010000H バイト , ASR A[23:16] ビット指定が有効 ) 0 0 0 1 1 0 128 K バイト (00020000H バイト , ASR A[23:17] ビット指定が有効 ) CS0, CS1 256 K バイト (00040000 バイト , ASR A[23:18] ビット指定が有効 ) のみ有効 1 1 512 K バイト (00080000H バイト , ASR A[23:19] ビット指定が有効 ) 0 0 1 M バイト (00100000H バイト , ASR A[23:20] ビット指定が有効 ) 0 1 1 0 2 M バイト (00200000H バイト , ASR A[23:21] ビット指定が有効 ) CS2, CS3 4 M バイト (00400000 バイト , ASR A[23:22] ビット指定が有効 ) のみ有効 1 1 8 M バイト (00800000H バイト , ASR A[23] ビット指定のみ有効 ) H H ASZ1, ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各領 域のサイズを設定します。そのため ASR は比較されないビットが存在します。 ACR0 の ASZ1, ASZ0 ビットは , リセットにより "11B" に初期化されますが , この設 定にかかわらずリセット直後の CS0 領域は特別に 00000000H から 00FFFFFFH ( 全領 域 ) に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され , 上記の表に従ったサイズに設定されます。 [bit11] Reserved:予約ビット 必ず , "0" を設定してください。 [bit10] DBW0 = Data Bus Width[0] 各チップセレクト領域のデータバス幅を , 以下のように設定します DBW0 144 データバス幅 0 8 ビット ( バイトアクセス ) 1 16 ビット ( ハーフワードアクセス ) 第 5 章 外部バスインタフェース <注意事項> ACR0 の DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビットの値と同 じ値が自動的に書き込まれます。 [bit9, bit8] Reserved:予約ビット 必ず , "00B" を設定してください。 [bit7, bit6] Reserved:予約ビット 必ず , "00B" を設定してください。 [bit5] WREN=WRite ENable 各チップセレクト領域の書込みの許可・禁止を設定します。 WREN 書込み許可・禁止 0 書込み禁止 1 書込み許可 書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その アクセスは無視され , 外部アクセスを一切行いません。 データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。 [bit4] Reserved:予約ビット 必ず , "0" を設定してください。 [bit3 ∼ bit0] TYP[3:0]= TYPe select 各チップセレクト領域のアクセスタイプを , 以下のように設定します。 TYP3 TYP2 TYP1 TYP0 0 x x 通常アクセス ( 非同期 SRAM, I/O, ROM/Flash) 1 x x アドレスデータマルチプレクスアクセス (8/16 ビットバス幅限定 ) x 0 RDY 端子による WAIT 挿入無効 x 1 RDY 端子による WAIT 挿入有効 0 1 WR0, WR1 端子をライトストローブとして使用 0 x 1 アクセスタイプ 0 0 0 0 1 1 1 1 1 0 0 1 x x 0 1 0 1 0 1 0 1 1 1 設定禁止 設定禁止 設定禁止 設定禁止 設定禁止 設定禁止 設定禁止 設定禁止 マスク領域設定 ( アクセスタイプは重複した領域のものになります ) * 各ビットは , 組み合わせて設定します。 *: CS 領域マスク設定機能 145 第 5 章 外部バスインタフェース ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した 領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP[3:0]=1111B を設定し , マスク設定領域として機能させることができます。 マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は 禁止します。 マスク設定領域へのアクセスは , 以下のような動作を行います。 - マスク設定領域に対応する CS はアサートされません。 - ベース設定領域に対応する CS がアサートされます。 - ACR の以下の設定はマスク設定領域側のものが有効になります。 bit10 DBW0: バス幅設定 bit5 WREN : 書込み許可設定 ( 注意:この設定のみ , ベース設定領域と異なる設定 は禁止します ) 。 - ACR の以下の設定はベース設定領域側のものが有効になります。 bit3 ∼ bit0 TYP3 ∼ TYP0: アクセスタイプ設定 - AWR の設定はマスク設定領域側のものが有効になります。 マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定で きます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけませ ん。また , マスク設定領域を複数重複させないでください。ASR および ACR:ASZ1, ASZ0 ビットの設定には十分注意してください。 <注意事項> bit3 ∼ bit0:TYP3 ∼ TYP0 についての制限事項は以下のとおりです。 • 書込み許可設定をマスクで実現することはできません。 • 書込み許可設定は , ベースとなる CS 領域と , マスク設定領域とで , 同じ設定としてく ださい。 • マスク設定領域で書込み禁止を設定すると , その領域はマスクされずベース CS 領域と して動作します。 • ベース CS 領域で書込み禁止を設定し , マスク設定領域で書込み許可を設定すると , ベース設定のない領域となり , 誤動作します。 146 第 5 章 外部バスインタフェース 5.2.3 Area Wait Register (AWR0 ∼ AWR3) Area Wait Register の詳細を説明します。 ■ AWR0 ∼ AWR3 (Area Wait Register) のレジスタ構成 AWR0 ∼ AWR3 のレジスタ構成は , 以下のとおりです。 AWR0H アドレス bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 初期値 000660H − R/W W14 R/W W13 R/W W12 R/W − R/W − R/W − R/W − R/W 01110000B アドレス bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 初期値 000661H − R/W W06 R/W − R/W W04 R/W − R/W W02 R/W W01 R/W W00 R/W 01011011B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R/W W14 R/W W13 R/W W12 R/W − R/W − R/W − R/W − R/W xxxx0000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R/W W06 W01 W00 xx0x1xxxB R/W − R/W W02 R/W − R/W W04 R/W R/W R/W アドレス bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 初期値 000664H − R/W W14 W13 W12 R/W R/W − R/W − R/W − R/W − R/W 0xxx0000B R/W アドレス bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 初期値 000665H − R/W W06 R/W − R/W W04 R/W − R/W W02 R/W W01 R/W W00 R/W xx0x1xxxB アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 000666H − R/W W14 R/W W13 R/W W12 R/W − R/W − R/W − R/W − R/W 0xxx0000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R/W W06 R/W − R/W W04 R/W − R/W W02 R/W W01 R/W W00 R/W 0x0x1xxxB AWR0L AWR1H アドレス 000662H AWR1L アドレス 000663H AWR2H AWR2L AWR3H AWR3L アドレス 000667H R/W :リード / ライト可能 147 第 5 章 外部バスインタフェース AWR0 ∼ AWR3 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。 ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各 ビットの働きが変わります。 ■ 通常アクセスおよびアドレス / データマルチプレクスアクセス ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ たチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレクスアクセ ス動作を行う領域となります。 TYP3 TYP2 TYP1 TYP0 0 0 x x 通常アクセス ( 非同期 SRAM, I/O, ROM/Flash) 0 1 x x アドレスデータマルチプレクスアクセス (8/16 ビットバス幅限定 ) アクセスタイプ 通常アクセスまたはアドレス / データマルチプレクスアクセス領域に対しての , AWR0 ∼ AWR3 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各 領域を CSER レジスタによって有効にする前に , 設定を行ってください。 [bit15] Reserved:予約ビット 必ず , "0" を設定してください。 [bit14 ∼ bit12] W14 ∼ W12= ファーストアクセスウェイトサイクル (First Access Wait Cycle) 各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設 定します。バーストアクセスサイクル以外は , このウェイト設定のみ使用されます。 CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。 W14 W13 W12 0 0 0 自動ウェイトサイクル 0 0 0 1 自動ウェイトサイクル 1 ファーストアクセスウェイトサイクル … 1 1 … 1 自動ウェイトサイクル 7 [bit11 ∼ bit8] Reserved:予約ビット 必ず , "0000B" を設定してください。 [bit7] Reserved:予約ビット 必ず , "0" を設定してください。 148 第 5 章 外部バスインタフェース [bit6] W06= リード → ライトアイドルサイクル (Read → Write Idle Cycle) リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場 合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子 はハイインピーダンス状態を維持します。 読み込み後に書込みが続く場合 , もしくは , 読み込みの後に別のチップセレクト領 域へのアクセスが発生した場合に , 指定したアイドルサイクルを挿入します。 W06 リード→ライトアイドルサイクル 0 0 サイクル 1 1 サイクル [bit5] Reserved:予約ビット 必ず , "0" を設定してください。 [bit4] W04= ライトリカバリサイクル (Write Recovery Cycle) ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制 限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイ クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ ンスを維持します。 ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルが挿入されます。 W04 ライトリカバリサイクル 0 0 サイクル 1 1 サイクル [bit3] Reserved:予約ビット 必ず , "1" を設定してください。 [bit2] W02= アドレス → CS 遅延 (Address → CS Delay) アドレス→ CS 遅延設定は , CS の立下りに対してアドレスなどが一定のセットアッ プを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際にも CS のエッジを必要とする場合などに設定します。 アドレスおよび AS 出力から , CS0 ∼ CS3 出力のディレイを設定します。 W02 アドレス → CS 遅延 0 遅延なし 1 遅延あり "0" を設定し , 遅延なしを選択した場合は , AS のアサートと同じタイミングで CS0 ∼ CS3 がアサート開始されます。 このとき , 同じチップセレクト領域に連続したアクセ 149 第 5 章 外部バスインタフェース スを実行した場合 , 両アクセスの間も CS0 ∼ CS3 はアサートを継続したまま変化し ないことがあります。 "1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック SYSCLK 出力の立 上りから CS0 ∼ CS3 がアサート開始されます。このとき , 同じチップセレクト領域 に連続したアクセスを実行した場合でも , 両アクセスの間に CS0 ∼ CS3 ネゲートタ イミングが発生します。 CS 遅延ありを選択した場合は , 遅延させた CS のアサートから , リード / ライトスト ローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01 の CS → RD/WR セットアップ設定と同等の動作となります ) 。 [bit1] W01=CS → RD/WR セットアップ延長サイクル (CS → RD/WR setup) CS→ RD/WRセットアップ延長サイクルは, CSアサート後, リード/ライトストローブ をアサートするまでの期間を延長する場合に設定します。CS アサート後 , リード / ラ イトストローブをアサートする前に最低1サイクルのセットアップ延長サイクルを挿 入します。 W01 CS → RD/WR セットアップ延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , 最速で , CS アサート直後の外部メモリ クロック SYSCLK 出力の立上りから RD/WR0, WR1 が出力されます。WR0, WR1 は , 内部バスの状態により , 1 サイクル以上遅れることもあります。 "1" を設定し , 1 サイクルを選択した場合は , RD/WR0, WR1 とも , 必ず 1 サイクル以 上遅れて出力されます。 同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアップ延 長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス → CS 遅延を挿入 することにより , 毎アクセス時に CS がいったんネゲートされるため , このセット アップ延長サイクルが有効となります。 W02 の CS 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ トアップサイクルが有効となります。 150 第 5 章 外部バスインタフェース [bit0] W00=RD/WR → CS ホールド延長サイクル (RD/WR → CS Hold Cycle) RD/WR → CS ホールド延長サイクルは , リード / ライトストローブネゲート後 , CS ネ ゲートまでの期間を延長する場合に設定します。リード / ライトストローブネゲー ト後 , CS をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入します。 W00 RD/WR → CS ホールド延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , RD/WR0, WR1 がネゲートされた後の外 部メモリクロック SYSCLK 出力の立上りエッジよりホールド遅延経過後に , CS0 ∼ CS3 がネゲートされます。 "1" を設定し , 1 サイクルを選択した場合は , CS0 ∼ CS3 は 1 サイクル遅れてネゲー トされます。 同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする 場合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長 サイクルが必須となる場合 , W02 ビットを有効にしてアドレス → CS 遅延を挿入す ることにより , 毎アクセス時に CS がいったんネゲートされるため , このホールド延 長サイクルが有効となります。 151 第 5 章 外部バスインタフェース 5.2.4 Chip Select Enable Register (CSER) Chip Select Enable Register の詳細を説明します。 ■ CSER(Chip Select Enable Register) のレジスタ構成 CSER のレジスタ構成は , 以下のとおりです。 CSER アドレス bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 00 0680H − R/W − R/W − R/W − R/W CSE3 R/W CSE2 R/W CSE1 R/W CSE0 R/W 初期値 00000001B R/W :リード / ライト可能 各チップセレクト領域の許可 / 禁止を設定します。 [bit31 ∼ bit28] Reserved:予約ビット 必ず , "0000B" を設定してください。 [bit27 ∼ bit24] CSE3 ∼ CSE0= チップセレクト領域許可 (Chip select enable 0 ∼ 3) CS0X ∼ CS3X の各チップセレクト領域許可ビットです。 初期値は , 0001B で CS0 領域のみ許可されています。 "1" を書き込むことにより ASR0 ∼ ASR3, ACR0 ∼ ACR3, AWR0 ∼ AWR3 の設定に 従い , 動作します。 許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってくださ い。 CSE[3:0] 領域コントロール 0 禁止 1 許可 表 5.2-2 に , CSE のビットと対応する CS を示します。 表 5.2-2 CSE のビットと対応する CS 152 CSE のビット 対応する CS bit24:CSE0 CS0 bit25:CSE1 CS1 bit26:CSE2 CS2 bit27:CSE3 CS3 第 5 章 外部バスインタフェース 5.3 チップセレクト領域 外部バスインタフェースは全 4 領域分のチップセレクト領域が設定できます。 各領域のアドレス空間は ASR0 ∼ ASR3 (Area Select Register) と ACR0 ∼ ACR3 (Area Configuration Register) にて 16M バイトの空間の内 , CS0, CS1 は , 64K/ 128K/256K/512K バイト単位で , 00000000H ∼ 003FFFFFH までの外部バス領域に割 り当てられた空間に , CS2, CS3 は , 1M/2M/4M/8M バイト単位で , 00400000H ∼ 00FFFFFFH の空間に設定可能です。 これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス サイクル中に対応するチップセレクト信号 CS0 ∼ CS3 がアクティブ ("L" 出力 ) に なります。 ■ ASR および ASZ1, ASZ0 の設定例 1. ASR1=0001H ACR1 → ASZ1, ASZ0=00B チップセレクト領域 1 は , 00100000H から 0010FFFFH に割り当てられます。 2. ASR2=0040H ACR2 → ASZ1, ASZ0=00B チップセレクト領域 2 は , 00400000H から 004FFFFFH に割り当てられます。 3. ASR3=0081H ACR3 → ASZ1, ASZ0=11B チップセレクト領域 3 は , 00800000H から 00FFFFFFH に割り当てられます。 このとき , ACR → ASZ1, ASZ0 が 8M バイトの設定になっていますので , バウンダリは 8 M バイト単位となり , ASR3[22:16] は無視されます。 リセット後は , ACR0 に書込みが行われるまでの間 , 00000000H ∼ 00FFFFFFH がチップ セレクト領域 0 に割り当てられます。 <注意事項> チップセレクト領域は , お互いにオーバラップしないように設定してください。 153 第 5 章 外部バスインタフェース 図 5.3-1 にチップセレクト領域を示します。 図 5.3-1 チップセレクト領域 00000000H 00000000H 00100000H 領域1 00400000H 領域2 00800000H 領域3 64Kバイト 領域0 1Mバイト 8Mバイト 00FFFFFFH 154 00FFFFFFH 第 5 章 外部バスインタフェース 5.4 エンディアンとバスアクセス エンディアンとバスアクセスについて説明します。 ■ エンディアンの概要 FR60Lite ファミリは , バイトオーダリングとしてビッグエンディアンのみサポートし ています。 155 第 5 章 外部バスインタフェース 5.4.1 データバス幅と制御信号との関係 WR1, WR0 の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に 1 対 1 に対応します。 下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト 位置とそれに対応する制御信号をまとめます。 ■ 通常バスインタフェースの制御信号 図 5.4-1 に , 通常バスインタフェースの 16 ビットバス幅および 8 ビット幅の制御信号 を示します。 図 5.4-1 通常バスインタフェースの制御信号 a)16ビットバス幅 データバス 制御記号 b)8ビットバス幅 データバス 制御記号 WR0 WR0 WR1 - - - - - - - - - - (D23~D16は未使用) ■ 時分割入出力インタフェースの制御信号 図 5.4-2 に , 時分割入出力インタフェースの 16 ビットバス幅および 8 ビット幅の制御 信号を示します。 図 5.4-2 時分割入出力インタフェースの制御信号 b)8ビットバス幅 a)16ビットバス幅 データバス 出力アドレス 制御記号 D15 A15~A8 WR0 A7~A0 D00 156 データバス 出力アドレス 制御記号 A7~A0 WR0 WR1 - - - - - - - - - - - - - - - 第 5 章 外部バスインタフェース 5.4.2 バスアクセス FR60Lite ファミリは , ビッグエンディアンで外部バスアクセスを行います。 ■ データフォーマット 図 5.4-3 に , ハーフワードアクセス (LDUH, STH 命令実行時 ) のデータフォーマットに よる内部レジスタと外部データバスとの関係を示します。 図 5.4-3 ハーフワードアクセス (LDUH, STH 命令実行時 ) 内部レジスタ D31 D23 外部バス D15 D15 AA AA D7 D7 BB BB D0 D0 図 5.4-4 に , バイトアクセス (LDUB, STB 命令実行時 ) のデータフォーマットによる内 部レジスタと外部データバスとの関係を示します。 図 5.4-4 バイトアクセス (LDUB, STB 命令実行時 ) a)出力アドレス下位"0" 内部レジスタ D31 b)出力アドレス下位"1" 内部レジスタ D31 D23 D23 外部バス D15 AA D7 D15 D7 外部バス D15 D7 AA D0 D15 D7 AA D0 D0 AA D0 157 第 5 章 外部バスインタフェース ■ データバス幅 図 5.4-5 に , 16 ビットバス幅のデータバス幅を示します。 図 5.4-5 16 ビットバス幅のデータバス幅 内部レジスタ 外部バス 出力アドレス下位 "00" "10" D31 AA D23 リード/ライト BB D15 AA CC BB DD D15 D07 CC D07 DD 図 5.4-6 に , 8 ビットバス幅のデータバス幅を示します。 図 5.4-6 8 ビットバス幅のデータバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 D23 D15 D07 158 AA BB CC DD リード/ライト "00" "01" "10" "11" AA BB CC DD D15 第 5 章 外部バスインタフェース ■ 外部バスアクセス 外部バスアクセスを「16 ビット /8 ビットバス幅」 「ワード / ハーフワード / バイトアク セス」の項目で , そのときの以下の項目をまとめます。 • アクセスバイト位置 • プログラムアドレスと出力アドレス • バスアクセス回数 PA1/PA0 : プログラムで指定したアドレス下位 2 ビット 出力 A1/A0 : 出力するアドレスの下位 2 ビット : 出力するアドレスの先頭バイト位置 : アクセスするデータバイト位置 : バスアクセス回数 + ①∼④ FR ファミリは , ミスアラインエラーを検出しません。 したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット が "00" "01" "10" "11" であっても , 出力するアドレスの下位 2 ビットはすべて "00" とな り , ハーフワードアクセスの場合には "00" "01" のときには "00" に , "10" "11" のときに は "10" になります。 159 第 5 章 外部バスインタフェース ● 16 ビットバス幅 図 5.4-7 に , 16 ビットバス幅の各アクセスを示します。 図 5.4-7 16 ビットバス幅の各アクセス (A) ワードアクセス (a) PA1/PA0=00 →①出力A1/A0=00 ②出力A1/A0=10 MSB (b) PA1/PA0=01 →①出力A1/A0=00 ②出力A1/A0=10 (c) PA1/PA0=10 →①出力A1/A0=00 ②出力A1/A0=10 (d) PA1/PA0="11" →①出力A1/A0=00 ②出力A1/A0=10 LSB ① 00 01 ① ② 10 11 ② 00 01 ① 00 01 ① 00 01 10 11 ② 10 11 ② 10 11 16ビット (B) ハーフワードアクセス (a) PA1/PA0=00 →①出力A1/A0=00 (b) PA1/PA0=01 →①出力A1/A0=00 (c) PA1/PA0=10 →①出力A1/A0=10 (d) PA1/PA0=11 →①出力A1/A0=10 00 01 00 01 00 01 00 01 10 11 10 11 10 11 10 11 (C) バイトアクセス (a) PA1/PA0=00 →①出力A1/A0=00 ① 160 00 01 10 11 (b) PA1/PA0=01 →①出力A1/A0=01 ① 00 01 10 11 (c) PA1/PA0=10 →①出力A1/A0=10 ① 00 01 10 11 (d) PA1/PA0=11 →①出力A1/A0=11 ① 00 01 10 11 第 5 章 外部バスインタフェース ● 8 ビットバス幅 図 5.4-8 に , 8 ビットバス幅の各アクセスを示します。 図 5.4-8 8 ビットバス幅の各アクセス (A) ワードアクセス (a) PA1/PA0=00 →①出力A1/A0=00 ②出力A1/A0=01 ③出力A1/A0=10 ④出力A1/A0=11 MSB (b) PA1/PA0=01 →①出力A1/A0=00 ②出力A1/A0=01 ③出力A1/A0=10 ④出力A1/A0=11 (c) PA1/PA0=10 →①出力A1/A0=00 ②出力A1/A0=01 ③出力A1/A0=10 ④出力A1/A0=11 (d) PA1/PA0=11 →①出力A1/A0=00 ②出力A1/A0=01 ③出力A1/A0=10 ④出力A1/A0=11 LSB ① 00 ① 00 ① 00 ① 00 ② 01 ② 01 ② 01 ② 01 ③ 10 ③ 10 ③ 10 ③ 10 ④ 11 ④ 11 ④ 11 ④ 11 8ビット (B) ハーフワードアクセス (a) PA1/PA0=00 →①出力A1/A0=00 ②出力A1/A0=01 (b) PA1/PA0=01 →①出力A1/A0=00 ②出力A1/A0=01 ① 00 ① 00 ② 01 ② 01 (c) PA1/PA0=10 →①出力A1/A0=10 ②出力A1/A0=11 (d) PA1/PA0=11 →①出力A1/A0=10 ②出力A1/A0=11 00 00 01 01 10 10 ① 10 ① 10 11 11 ② 11 ② 11 (C) バイトアクセス (a) PA1/PA0=00 →①出力A1/A0=00 ① (b) PA1/PA0=01 →①出力A1/A0=01 00 01 10 11 ① (c) PA1/PA0=10 →①出力A1/A0=10 (d) PA1/PA0=11 →①出力A1/A0=11 00 00 00 01 01 01 10 11 ① 10 11 10 ① 11 161 第 5 章 外部バスインタフェース ■ 外部との接続例 図 5.4-9 に LSI と外部装置との接続の例を示します。 図 5.4-9 外部装置との接続 本LSI D15 D07 ~ ~ D08 WR0 D00 WR1 *:16ビット/8ビットデバイスの場合は, 本LSIのMSB側のデータバスを使用します。 0 1 D15 D08 D07 D00 16ビットデバイス* 0 D07 D00 8ビットデバイス* ("0"/"1"アドレス下位1ビット) 162 第 5 章 外部バスインタフェース 5.4.3 外部アクセス バス幅による内部レジスタと外部データバスとの関係について説明します。 ■ ワードアクセス ワードアクセスの場合は以下のとおりです。 ビッグエンディアンモード 16 ビット バス幅 内部レジスタ D31 外部端子 制御端子 アドレス: "0" "2" D15 AA AA CC BB D00 BB DD WR0 WR1 CC DD D00 8 ビット バス幅 内部レジスタ 外部端子 制御端子 アドレス: "0" "1" "2" "3" D31 D15 AA AA BB CC DD WR0 D08 BB CC DD D00 163 第 5 章 外部バスインタフェース ■ ハーフワードアクセス ハーフワードアクセスの場合は以下のとおりです。 ビッグエンディアンモード 16 ビット バス幅 内部レジスタ D31 外部端子 制御端子 アドレス: "0" D15 AA WR0 BB WR1 D00 AA BB D00 内部レジスタ D31 外部端子 制御端子 アドレス: "2" D15 CC WR0 DD WR1 外部端子 制御端子 D00 CC DD D00 8 ビット バス幅 内部レジスタ D31 アドレス: "0" "1" D15 AA BB D08 WR0 AA BB D00 内部レジスタ D31 アドレス: "2" "3" D15 CC DD D08 CC DD D00 164 外部端子 制御端子 WR0 第 5 章 外部バスインタフェース ■ バイトアクセス バイトアクセスの場合は以下のとおりです。 ビッグエンディアンモード 16 ビット バス幅 内部レジスタ 外部端子 制御端子 アドレス: "0" D31 D15 AA WR0 D00 AA D00 内部レジスタ D31 外部端子 制御端子 アドレス: "1" D15 BB WR1 D00 BB D00 内部レジスタ D31 外部端子 アドレス: "2" D15 CC 制御端子 WR0 D00 CC D00 内部レジスタ D31 外部端子 制御端子 アドレス: "3" D15 DD WR1 D00 DD D00 165 第 5 章 外部バスインタフェース ビッグエンディアンモード 8 ビット バス幅 内部レジスタ 外部端子 制御端子 アドレス: "0" D31 D15 AA WR0 D08 AA D00 内部レジスタ 外部端子 アドレス: "1" D31 D15 BB D08 制御端子 WR0 BB D00 内部レジスタ 外部端子 アドレス: "2" D31 D15 CC D08 制御端子 WR0 CC D00 内部レジスタ 外部端子 アドレス: "3" D31 D15 DD D08 DD D00 166 制御端子 WR0 第 5 章 外部バスインタフェース 5.5 通常バスインタフェース 通常バスインタフェースでは , リードアクセス / ライトアクセス共に 2 クロックサイ クルが基本バスサイクルになります。 ■ 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0= 0000B, AWR=0008H) 図 5.5-1 に , アクセスが連続する場合の基本タイミングを示します。 図 5.5-1 アクセスが連続する場合の基本タイミング SYSCLK A23~A0 #2 #1 AS CSn RD 読出し D15~D0 #1 #2 WRn 書込み D15~D0 #1 #2 • AS は , バスアクセス開始サイクルに 1 サイクルアサートします。 • A23 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレス をバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。 • CS0 ∼ CS3 は , AWR0 ∼ AWR3 レジスタの W02 ビットが "0" のときは , AS と同じ タイミングでアサートし , 連続するアクセスがある場合 CS0 ∼ CS3 がネゲートしま せん。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼ CS3 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネ ゲートします。 • RD, WR0, WR1 は , バスアクセス第二サイクルからアサートします。AWR レジスタ W14 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0, WR1をアサートするタイミングはAWRレジスタW01ビットを"1"に設定することに より 1 サイクル遅らせることができます。 • リードアクセスの場合, RDアサート後ウェイトサイクルが終了したサイクルのSYSCLK の立上りで D15 ∼ D0 を取り込みます。 • ライトアクセスの場合 , WR0, WR1 をアサートしたタイミングから D15 ∼ D0 にデー タを出力します。 167 第 5 章 外部バスインタフェース ■ WRn +バイト制御タイプ (TYP3 ∼ TYP0 = 0010B, AWR = 0008H) 表 5.2-2 に WRn +バイト制御タイプを示します。 図 5.5-2 WRn +バイト制御タイプ SYSCLK A23~A0 AS CSn RD WR0 読出し WR1 D15~D0 WR0 書込み WR1 D15~D0 • AS, CSn, RD, A23 ∼ A0, D15 ∼ D0 は , (1) 基本タイミングと同様の動作を行います。 • RD, WR0, WR1 をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設 定することにより 1 サイクル遅らせることができます。((1) 基本タイミングの WR0, WR1 と同様の動作を行います。) • WR0, WR1 は , バイトイネーブル信号としてアクセスするバイト位置を負論理で示 します。バスアクセス開始サイクルからバスサイクル終了までアサートします。ア ドレスと同じタイミングで変化します。リード / ライトアクセス共にアクセスする バイト位置を示します。 168 第 5 章 外部バスインタフェース ■ リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H) 図 5.5-3 に , リード→ライトタイミングを示します。 図 5.5-3 リード → ライトタイミング リード アイドル ライト SYSCLK A23~A0 AS CSn RD WRn D15~D0 • AWR レジスタ W06 ビットの設定により , 0 または 1 サイクルのアイドルサイクル 挿入が可能です。 • 読出し側の CS 領域の設定が有効になります。 • リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで ある場合このアイドルサイクルを挿入します。 169 第 5 章 外部バスインタフェース ■ ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H) 図 5.5-4 に , ライト→ライトタイミングを示します。 図 5.5-4 ライト → ライトタイミング ライト ライトリカバリ ライト SYSCLK A23~A0 AS CSn WRn D15~D0 • AWR レジスタ W04 ビットの設定により , 0 または 1 サイクルのライトリカバリサ イクルを挿入可能です。 • すべてのライトサイクル後に , リカバリサイクルが発生します。 • 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ トリカバリサイクルは発生します。 170 第 5 章 外部バスインタフェース ■ 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H) 図 5.5-5 に , 自動ウェイトタイミングを示します。 図 5.5-5 自動ウェイトタイミング 基本サイクル ウェイトサイクル SYSCLK A23~A0 AS CSn RD 読出し D15~D0 WRn 書込み D15~D0 • AWR レジスタ W14 ∼ 12 ビット (first wait cycle) の設定により自動ウェイトサイク ルを , 0 ∼ 7 まで設定可能です。 • 上図では , 自動ウェイトサイクルを 2 サイクル挿入し合計 4 サイクルのアクセスと なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル+ (first wait cycle) となります。書込みの場合は内部状態によりさらに長くなることが あります。 171 第 5 章 外部バスインタフェース ■ 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H) 図 5.5-6 に , 外部ウェイトタイミングを示します。 図 5.5-6 外部ウェイトタイミング 基本サイクル 自動ウェイト2サイクル RDYによる ウェイトサイクル SYSCLK A23~A0 AS CSn RD 読出し D15~D0 WRn 書込み D15~D0 RDY 解除 ウェイト • ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに より外部ウェイトサイクルを挿入可能です。上図において , 自動ウェイトサイクル によるウェイトが有効であるため , RDY 端子の斜線部分は無効になります。自動 ウェイトサイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。ま た , いったんウェイトサイクルを終了した後は , 次のアクセスサイクルの開始まで , RDY 入力端子の値は無効になります。 172 第 5 章 外部バスインタフェース ■ CS 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH) 図 5.5-7 に , CS 遅延設定を示します。 図 5.5-7 CS 遅延設定 SYSCLK A23~A0 AS CSn RD 読出し D15~D0 WRn 書込み D15~D0 • W02 ビットが "1" のときは AS アサートの次のサイクルからアサートし , 連続する アクセスがある場合ネゲート期間を挿入します。 173 第 5 章 外部バスインタフェース ■ CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) 図 5.5-8 に , CS → RD/WR セットアップ・RD/WR → CS ホールド設定を示します。 図 5.5-8 CS → RD/WR セットアップ・RD/WR → CS ホールド設定 SYSCLK A23~A0 AS CSn CS->RD/WR RD/WR->CS Delay Delay RD 読出し D15~D0 WRn 書込み D15~D0 • AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD/WR セットアッ プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー ブまでの期間を延長する場合に設定します。 • AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CS ホールドディ レイを設定可能です。 リード / ライトストローブネゲート後 , チップセレクトネゲー トまでの期間を延長する場合に設定します。 • CS → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CS ホールドディレ イ (W00 ビット ) は独立に設定可能です。 • 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク セスする場合は , CS → RD/WR セットアップディレイ , RD/WR → CS ホールドディ レイ共に挿入されません。 • アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に 設定してください。 174 第 5 章 外部バスインタフェース 5.6 アドレス / データマルチプレクスインタフェース アドレス / データマルチプレクスインタフェースの設定について説明します。 ■ 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H) 図 5.6-1 に , 外部ウェイトがない場合のアドレス / データマルチプレクスインタフェー ス設定を示します。 図 5.6-1 外部ウェイトがない場合のアドレス / データマルチプレクスインタフェース設定 SYSCLK A23~A0 address[23:0] AS CSn RD 読出し D15~D0 address[15:0] data[15:0] WRn 書込み D15~D0 address[15:0] data[15:0] • ACR レジスタ TYP3 ∼ TYP0=01xxB と設定することによりアドレス / データマルチ プレクスインタフェース設定が可能です。 • アドレス / データマルチプレクスインタフェースに設定した場合 , データバス幅 (DBWO1 ∼ DBWO0 ビット ) の設定は 8 ビットもしくは 16 ビットに設定してくだ さい。 • アドレス / データマルチプレクスインタフェースでは , アドレス出力サイクル 2 サ イクル+データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり ます。 • アドレス出力サイクルでは , 出力アドレスラッチイネーブル信号として AS をアサー トしますが , CS → RD/WR セットアップ遅延 (AWR1) が "0" に設定してある場合 , 上 図のようにマルチプレクスアドレス出力サイクルが 1 サイクルのみとなり , アドレス を AS の立上りエッジで直接ラッチすることは不可能となります。このため , AS に "L" がアサートされているサイクルの SYSCLK の立上りエッジでアドレスを取り込 んでください。アドレスを AS の立上りエッジで直接ラッチする場合は , 「■ CS → RD/WR セットアップ設定」を参照してください。 175 第 5 章 外部バスインタフェース • A23 ∼ A0 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先 頭を示すアドレスを出力しますので, アドレス/データマルチプレクスインタフェー スで 8/16 ビット以上のアドレスを使用する場合に使用してください。 • 自動ウェイト (AWR14 ∼ AWR12), リード→ライトアイドルサイクル (AWR6), ライ トリカバリ (AWR4), アドレス→ CS 遅延 (AWR2), CS → RD/WR セットアップ遅延 (AWR1), CS → RD/WR ホールド遅延 (AWR0) の設定は , 通常インタフェースと同様 に設定可能です。 ■ 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H) 図 5.6-2 に , 外部ウェイトがある場合のアドレス / データマルチプレクスインタフェー ス設定を示します。 図 5.6-2 外部ウェイトがある場合のアドレス / データマルチプレクスインタフェース設定 SYSCLK A23~A0 address[23:0] AS CSn RD 読出し D15~D0 address[15:0] data[15:0] WR 書込み D15~D0 data[15:0] address[15:0] 外部ウェイト 解除 RDY • ACR レジスタ TYP3 ∼ TYP0=01x1B と設定することにより , アドレス / データマル チプレクスインタフェースにおいて RDY 入力を有効とすることが可能です。 176 第 5 章 外部バスインタフェース ■ CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) 図 5.6-3 に , CS → RD/WR セットアップ設定を示します。 図 5.6-3 CS → RD/WR セットアップ設定 SYSCLK A23~A0 address[23:0] AS CSn RD 読出し D15~D0 address[15:0] data[15:0] WR 書込み D15~D0 address[15:0] data[15:0] • CS → RD/WR セットアップ遅延 (AWR[1]) を "1" に設定すると , 上図のようにマルチ プレクスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立上りエッ ジで直接ラッチすることが可能となります。SYSCLK を使用せずに AS を ALE (Address Latch Enable) ストローブにする場合にこの設定を使用してください。 177 第 5 章 外部バスインタフェース 5.7 DMA アクセス DMA アクセスの設定について説明します。 ■ 2サイクル転送 (内部RAM→外部I/O, RAM, 外部I/O, RAM→内部RAMもタイミング は同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H) 図 5.7-1 に , 2 サイクル転送の設定を示します。 図 5.7-1 2 サイクル転送の設定 ( I/O 側のウェイト設定なしの場合 ) SYSCLK A23~A0 I/O address AS CSn(I/O側) WRn D15~D0 • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 178 第 5 章 外部バスインタフェース ■ 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H) 図 5.7-2 に , 2 サイクル転送 ( 外部→ I/O) の設定を示します。 図 5.7-2 2 サイクル転送 ( 外部→ I/O) の設定 ( メモリ , I/O のウェイト設定なしの場合 ) SYSCLK A23~A0 memory address idle I/O address AS CSn RD CSn WRn D15~D0 • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 179 第 5 章 外部バスインタフェース ■ 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) 図 5.7-3 に , 2 サイクル転送 (I/O →外部 ) の設定を示します。 図 5.7-3 2 サイクル転送 (I/O →外部 ) の設定 ( メモリ , I/O のウェイト設定なしの場合 ) SYSCLK A23~A0 I/O address idle memory address AS CSn WRn CSn RD D15~D0 • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 180 第 5 章 外部バスインタフェース 5.8 レジスタ設定手順 外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。 ■ 外部バスインタフェースの設定手順 1. レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し ない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前後の アクセスは保証されません。 2. レジスタの変更は以下の手順で行ってください。 ① 該当領域に対応する CSER のビットを "0" に設定してください。 ② ASR と ACR をワードアクセスで同時に設定してください。ASR, ACR をハーフ ワードでアクセスする場合には , ASR 設定後 , ACR を設定してください。 ③ AWR を設定してください。 ④ 該当領域に対する CSER のビットを設定してください。 3. CS0X領域はリセット解除後から有効になっており, プログラム領域として使用して いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク ロックが低い初期状態で上記②∼③の設定を行ってください。そのあと , クロック を高速クロックに切り換えてください。 181 第 5 章 外部バスインタフェース 182 第6章 I/O ポート I/O ポートの概要 , レジスタの構成 , および機能に ついて説明します。 6.1 I/O ポートの概要 6.2 ポートデータレジスタ (PDR) データ方向レジスタ (DDR) 6.3 ポートファンクションレジスタの設定 6.4 外部割込み入力の再配置 6.5 端子入力レベルの選択 6.6 プルアップ・プルダウン制御レジスタ 6.7 入力データダイレクトリードレジスタ 183 第 6 章 I/O ポート 6.1 I/O ポートの概要 ここでは , I/O ポートの概要について説明します。 ■ ポート基本ブロックダイヤグラム MB91270 シリーズの各端子は , 各端子に対応する外部バスインタフェースやペリフェ ラルが入出力として端子を使用しない設定になっているとき , I/O ポートとして使用す ることができます。 図 6.1-1 に , ポートの基本的な構成を示します。 図 6.1-1 ポート基本ブロックダイヤグラム R-bus TTL 1 外部バスインタフェース入力 PILR 0 PIDRリード ペリフェラル入力 0 PPER 1 0 PIDR CLKP PDRリード CMOS シュミット (インプット サンプル) 1 オートモーティブ P-ch プルアップ/ プルダウン PPCR コントロール 出力 ドライバ ペリフェラル出力 ペリフェラル出力 端子 アウトプット MUX PDR N-ch DDR PFR Port Direction コントロール EPFR 184 第 6 章 I/O ポート ■ ポートの一般的な仕様 • ポートごとにポートデータレジスタ (PDR) があり , 出力データを格納します。リセッ ト後 , PDR レジスタの内容は初期化されません。 • ポートごとにデータ方向レジスタ (DDR) があり , ポートの入出力方向を切り換えま す。リセット後 , すべてのポートは入力となります。(DDR=00H) • • • • • • • - ポート入力モード (PFR=0 & DDR=0) PDR 読出し : 対応する外部端子のレベルが読み出されます。 PDR 書込み : ポートデータレジスタに設定値が書き込まれます。 - ポート出力モード (PFR=0 & DDR=1) PDR 読出し : ポートデータレジスタの値が読み出されます。 PDR 書込み : ポートデータレジスタに設定値が書き込まれ , 対応する外部端子へ 出力されます。 - ペリフェラル出力モード (PFR=1) PDR 読出し : 対応するペリフェラル出力値が読み出されます。 PDR 書込み : ポートデータレジスタに設定値が書き込まれます。 - ポートの状態に関わらず , ポートデータレジスタへのリードモディファイライト 命令では , レジスタの設定値が読み出されます。 - ペリフェラルへの入力は特別な場合を除き常に端子に接続されています。通常は ポート入力モードでペリフェラルへの入力を行ってください。 ポートごとに入力データダイレクトリードレジスタ (PIDR) があります。このレジス タは読出し専用で , ポートが出力状態であっても入力値を直接読み出すために使用 されます。 ポートごとに端子入力レベルをソフトウェアで切り換えることのできる , ポート入 力レベルレジスタ (PILR) があります。入力レベルは CMOS シュミットトリガ , また は CMOS オートモーティブシュミットトリガのいずれかを選択可能です。また外部 バスモード時に外部バスインタフェース入力として設定される端子はTTL入力レベ ルを選択することも可能です。 ポートごとに ( 一部を除く ) プルアップ / ダウン許可レジスタ (PPER) とプルアップ / ダウン制御レジスタがあり , 端子ごとに 50kΩ のプルアップ / ダウンを設定すること ができます。 ポートにはポートファンクションレジスタ(PFR), 一部のポートにはさらに拡張ポー トファンクションレジスタ (EPFR) があり , 主にペリフェラルの出力を制御していま す。 外部バスモードで , 外部バスインタフェースに割り当てられている端子は , DDR, PFR の設定を無効とし , バスインタフェースの機能が優先されます。外部バスモー ドでこれらの端子を汎用ポート / ペリフェラル出力として使用する場合は , EPFR を 設定しバスインタフェースとしての機能を無効に設定してください。 STOP モード時に STCR レジスタの HIZ ビットが設定されると , 入力は "0" 固定とな ります。ただし外部割込み入力は , 対応する割込みが有効な場合 (ENIR ビットの設 定と EISSR/EPFR による入力端子選択 ) は固定されず , 端子への入力は割込みとして 使用することができます。 ペリフェラルの双方向信号 (LIN-UART の SCK など ) は , PFR で有効となります。入 出力の切換えについては対応するペリフェラルの章を参照してください。 <注意事項> 汎用ポート入力とペリフェラル入力を切り換えるレジスタはありません。 外部端子から入力された値は , 常に汎用ポートとペリフェラル回路へ伝播しています。 ペリフェラル入力としてご使用の場合は , DDR で入力設定にし , 各ペリフェラルの入力信 号を有効にしてご使用ください。 185 第 6 章 I/O ポート 6.2 ポートデータレジスタ (PDR) データ方向レジスタ (DDR) ポートデータレジスタ (PDR) とデータ方向レジスタ (DDR) を示します。 ■ ポートデータレジスタ (PDR) アドレス bit7 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PDR07 PDR06 PDR05 PDR04 PDR03 PDR02 PDR01 PDR00 XXXXXXXXB PDR1 000001H PDR17 PDR16 PDR15 PDR14 PDR13 PDR12 PDR11 PDR10 XXXXXXXXB PDR2 000002H PDR27 PDR26 PDR25 PDR24 PDR23 PDR22 PDR21 PDR20 XXXXXXXXB PDR3 000003H PDR37 PDR36 PDR35 PDR34 PDR33 PDR32 PDR31 PDR30 XXXXXXXXB PDR4 000004H PDR47 PDR46 PDR45 PDR44 PDR43 PDR42 PDR41 PDR40 XXXXXXXXB PDR5 000005H PDR57 PDR56 PDR55 PDR54 PDR53 PDR52 PDR51 PDR50 XXXXXXXXB PDR6 000006H PDR67 PDR66 PDR65 PDR64 PDR63 PDR62 PDR61 PDR60 XXXXXXXXB PDR7 000007H PDR77 PDR76 PDR75 PDR74 PDR73 PDR72 PDR71 PDR70 XXXXXXXXB PDR8 000008H PDR87 PDR86 PDR85 PDR84 PDR83 PDR82 PDR81 PDR80 XXXXXXXXB PDR9 000009H PDR97 PDR96 PDR95 PDR94 PDR93 PDR92 PDR91 PDR90 XXXXXXXXB PDRA 00000AH − − PDRB 00000BH − − − − − − PDRA1 PDRA0 PDRB5 PDRB4 PDRB3 PDRB2 PDRB1 PDRB0 ------XXB --XXXXXXB PDRC 00000CH PDRC7 PDRC6 PDRC5 PDRC4 PDRC3 PDRC2 PDRC1 PDRC0 XXXXXXXXB PDRD 00000DH PDRD7 PDRD6 PDRD5 PDRD4 PDRD3 PDRD2 PDRD1 PDRD0 XXXXXXXXB PDRE 00000EH PDRE7 PDRE6 PDRE5 PDRE4 PDRE3 PDRE2 PDRE1 PDRE0 XXXXXXXXB PDRF 00000FH PDRF7 PDRF6 PDRF5 PDRF4 PDRF3 PDRF2 PDRF1 PDRF0 PDRG 000010H PDRG7 PDRG6 PDRG5 PDRG4 PDRG3 PDRG2 PDRG1 PDRG0 XXXXXXXXB R/W R/W :リード / ライト可能 X :不定 186 bit6 PDR0 000000H R/W R/W R/W R/W R/W R/W R/W XXXXXXXXB 第 6 章 I/O ポート ■ データ方向レジスタ (DDR) アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 DDR0 000400H DDR07 DDR06 DDR05 DDR04 DDR03 DDR02 DDR01 DDR00 00000000B DDR1 000401H DDR17 DDR16 DDR15 DDR14 DDR13 DDR12 DDR11 DDR10 00000000B DDR2 000402H DDR27 DDR26 DDR25 DDR24 DDR23 DDR22 DDR21 DDR20 00000000B DDR3 000403H DDR37 DDR36 DDR35 DDR34 DDR33 DDR32 DDR31 DDR30 00000000B DDR4 000404H DDR47 DDR46 DDR45 DDR44 DDR43 DDR42 DDR41 DDR40 00000000B DDR5 000405H DDR57 DDR56 DDR55 DDR54 DDR53 DDR52 DDR51 DDR50 00000000B DDR6 000406H DDR67 DDR66 DDR65 DDR64 DDR63 DDR62 DDR61 DDR60 00000000B DDR7 000407H DDR77 DDR76 DDR75 DDR74 DDR73 DDR72 DDR71 DDR70 00000000B DDR8 000408H DDR87 DDR86 DDR85 DDR84 DDR83 DDR82 DDR81 DDR80 00000000B DDR9 000409H DDR97 DDR96 DDR95 DDR94 DDR93 DDR92 DDR91 DDR90 00000000B DDRA 00040A0H − − DDRB 00040BH − − − − − − DDRA1 DDRA0 ------00B DDRB5 DDRB4 DDRB3 DDRB2 DDRB1 DDRB0 --000000B DDRC 00040CH DDRC7 DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0 00000000B DDRD 00040DH DDRD7 DDRD6 DDRD5 DDRD4 DDRD3 DDRD2 DDRD1 DDRD0 00000000B DDRE 00040EH DDRE7 DDRE6 DDRE5 DDRE4 DDRE3 DDRE2 DDRE1 DDRE0 00000000B DDRF 00040FH DDRF7 DDRF6 DDRF5 DDRF4 DDRF3 DDRF2 DDRF1 DDRF0 00000000B DDRG 000410H DDRG7 DDRG6 DDRG5 DDRG4 DDRG3 DDRG2 DDRG1 DDRG0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 187 第 6 章 I/O ポート 6.3 ポートファンクションレジスタの設定 ポートファンクションレジスタの機能について説明します。 ■ ポート 0 ポート 0 は PFR0 で制御されます。 外部バスモードでは , ポート 0 はバスインタフェースの D7 ∼ D0 となります。それ以 外のモードでは , LIN-UART5, UART6 に割り当てられます。 外部割込み INT15 ∼ INT8 への入力信号 , LIN-UART への入力信号 (SIN5, SIN6) は常に 端子と接続されています。 アドレス bit7 bit6 PFR0 000420H - - R/W R/W bit5 bit4 PFR05 PFR04 R/W R/W bit3 R/W bit2 bit1 PFR02 PFR01 R/W R/W bit0 初期値 - --00-00-B R/W R/W :リード / ライト可能 ビット 値 0 汎用ポート 1 LIN-UART6 の SCK SCK の入出力方向は LIN-UART6 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART6 の SOT 出力 0 汎用ポート 1 LIN-UART5 の SCK SCK の入出力方向は LIN-UART5 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART6 の SOT 出力 PFR05 PFR04 PFR02 PFR01 188 機能 第 6 章 I/O ポート ■ ポート 1 ポート 1 は PFR1 および EPFR1 で制御されます。 外部バスモードでは , ポート 1 はバスインタフェースの D15 ∼ D8 となります。それ以 外のモードでは , LIN-UART5,6 およびリロードタイマ 1 に割り当てられます。 P12 の INT11R を外部割込み端子として有効にするためには , EISSR11 を設定してくだ さい。 LIN-UART への入力信号 (SIN3, SIN4) は常に端子と接続されています。 bit7 アドレス PFR1 000421H bit6 PFR17 PFR16 EPFR1 000601H bit5 - bit4 bit3 PFR14 PFR13 bit2 bit1 bit0 初期値 - - - 00-00---B ------0-B - - - - - - EPFR11 - R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 LIN-UART4 の SCK SCK の入出力方向は LIN-UART4 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART4 の SOT 出力 0 汎用ポート 1 LIN-UART3 の SCK SCK の入出力方向は LIN-UART3 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART3 の SOT 出力 0 汎用ポート 1 リロードタイマ 1 の TOT 出力 PFR17 PFR16 PFR14 PFR13 EPFR11 189 第 6 章 I/O ポート ■ ポート 2 ポート 2 は PFR2 および EPFR2 で制御されます。 外部バスモードでは , ポート 2 はバスインタフェースの A23 ∼ A16 となります。それ 以外のモードでは , インプットキャプチャ0 ∼ 3 および PPGF, PPGD, PPGB, PPG9 に割 り当てられます。 bit7 アドレス PFR2 000422H bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PFR27 PFR26 PFR25 PFR24 PFR23 PFR22 PFR21 PFR20 00000000B EPFR2 000602H EPFR27 EPFR26 EPFR25 EPFR24 EPFR23 EPFR22 EPFR21 EPFR20 00000000B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 ICU3 には LIN-UART3 の LSYN 出力が接続 0 汎用ポート 1 ICU2 には LIN-UART2 の LSYN 出力が接続 0 汎用ポート 1 ICU1 には LIN-UART1 の LSYN 出力が接続 0 汎用ポート 1 ICU0 には LIN-UART0 の LSYN 出力が接続 0 汎用ポート 1 PPGF 出力 0 汎用ポート 1 PPGD 出力 0 汎用ポート 1 PPGB 出力 0 汎用ポート 1 PPG9 出力 PFR27 PFR26 PFR25 PFR24 PFR23 PFR22 PFR21 PFR20 外部バスモードであっても EPFR の設定により , 外部バスアドレス出力を無効とするこ とができます。 ビット EPFR27 ∼ EPFR20 190 値 機能 ( 外部バスモード ) 0 外部バスアドレス出力 A23 ∼ A16 1 PFR27 ∼ PFR20 により制御 第 6 章 I/O ポート ■ ポート 3 ポート 3 は PFR3 および EPFR3 で制御されます。 外部バスモードでは , ポート 3 はバスインタフェースの制御端子となります。それ以外 のモードでは , アウトプットコンペア 4 ∼ 7, CAN2 およびインプットキャプチャ4, 5 に 割り当てられます。 P32 の INT10R を外部割込み端子として有効にするためには , EISSR10 を設定してくだ さい。 bit7 アドレス PFR3 000423H bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PFR31 PFR30 00000-00B EPFR3 000603H EPFR37 EPFR36 EPFR35 EPFR34 EPFR33 EPFR32 EPFR31 EPFR30 00000000B PFR37 PFR36 PFR35 PFR34 PFR33 R/W R/W R/W R/W R/W − R/W R/W R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 OCU7 出力 0 汎用ポート 1 OCU6 出力 0 汎用ポート 1 OCU5 出力 0 汎用ポート 1 OCU4 出力 0 汎用ポート 1 CAN2 の TX 出力 0 汎用ポート 1 ICU5 には LIN-UART5 の LSYN 出力が接続 0 汎用ポート 1 ICU4 には LIN-UART4 の LSYN 出力が接続 PFR37 PFR36 PFR35 PFR34 PFR33 PFR31 PFR30 191 第 6 章 I/O ポート 外部バスモードであっても EPFR の設定により , 外部バス制御信号を無効とすることが できます。MB91F273(S), MB91F278(S) の外部バスモードでは , EPFR35 と EPFR34 を必 ず "1" に設定してください。 ビット 機能 ( 外部バスモード ) 値 0 SYSCLK 出力 1 PFR37 により制御 0 RDY 入力 1 PFR36 により制御 0 BGRNTX 出力 (MB91V280 のみ ) 1 PFR35 により制御 0 BRQ 入力 (MB91V280 のみ ) 1 PFR34 により制御 0 WR1 出力 1 PFR33 により制御 0 WR0 出力 1 PFR32 により制御 0 RD 出力 1 PFR31 により制御 0 AS 出力 1 PFR30 により制御 EPFR37 EPFR36 EPFR35 EPFR34 EPFR33 EPFR32 EPFR31 EPFR30 192 第 6 章 I/O ポート ■ ポート 4 ポート 4 は PFR4 および EPFR4 で制御されます。 アップダウンカウンタ 2/3 の入力信号 (ZIN2, BIN2, AIN2), およびフリーランタイマの 外部クロック入力 (FRCK0, FRCK1) は常に端子と接続されています。 P42 の INT9R を外部割込み端子として有効にするためには , EISSR9 を設定してくださ い。 EPFR42, EPFR43 は予約ビットです。必ず "00B" を設定してください。 bit7 アドレス PFR4 000424H bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 - - 000000--B - - ----00--B R/W R/W PFR47 PFR46 PFR45 PFR44 PFR43 PFR42 EPFR4 000604H - - - - R/W R/W R/W R/W EPFR43 EPFR42 R/W R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 I2C1 の SCL 入出力 出力は N-ch オープンドレイン 0 汎用ポート 1 I2C1 の SDA 入出力 出力は N-ch オープンドレイン 0 汎用ポート 1 I2C0 の SCL 入出力 出力は N-ch オープンドレイン 0 汎用ポート 1 I2C0 の SDA 入出力 出力は N-ch オープンドレイン 0 汎用ポート 1 CAN1 の TX 出力 ICU7 には LIN-UART6 の LSYN 出力が接続 0 汎用ポート 1 ICU6 には LIN-UART6 の LSYN 出力が接続 端子は CAN1 の RX 入力として使用可能 PFR47 PFR46 PFR45 PFR44 PFR43 PFR42 193 第 6 章 I/O ポート ■ ポート 5 ポート 5 は PFR5 および A/D コンバータ , D/A コンバータで制御されます。 アップダウンカウンタ 0/1 の入力信号 (ZIN1, BIN1, AIN1), および LIN-UART2 への入力 信号 (SIN2) は常に端子と接続されています。 ポート 5 は全端子 AD コンバータのアナログ入力と兼用しており , ADER レジスタの対 応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子となり ます。この場合 , 端子への入力値はすべて "0" として扱われます。 P57 と P56 は D/A コンバータのアナログ出力とも兼用しており , D/A コンバータの出 力が許可された場合も上記と同様にアナログ出力となり , 入力値は "0" として扱われま す。 アドレス bit7 bit6 bit5 bit4 bit3 PFR5 000425H − R/W − R/W − R/W − R/W − R/W bit2 bit1 PFR52 PFR51 R/W R/W bit0 初期値 − R/W -----00-B R/W :リード / ライト可能 ビット 値 0 汎用ポート 1 LIN-UART2 の SCK SCK の入出力方向は LIN-UART2 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART2 の SOT 出力 PFR52 PFR51 194 機能 第 6 章 I/O ポート ■ ポート 6 ポート 6 は PFR6 および AD コンバータで制御されます。 ポート 6 は全端子 AD コンバータのアナログ入力と兼用しており , ADER レジスタの対 応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子となり ます。この場合 , 端子への入力値はすべて "0" として扱われます。 bit7 アドレス PFR6 000426H bit6 bit5 bit4 bit3 bit2 bit1 bit0 PFR67 PFR66 PFR65 PFR64 PFR63 PFR62 PFR61 PFR60 R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 PPGE 出力 0 汎用ポート 1 PPGC 出力 0 汎用ポート 1 PPGA 出力 0 汎用ポート 1 PPG8 出力 0 汎用ポート 1 PPG6 出力 0 汎用ポート 1 PPG4 出力 0 汎用ポート 1 PPG2 出力 0 汎用ポート 1 PPG0 出力 PFR67 PFR66 PFR65 PFR64 PFR63 PFR62 PFR61 PFR60 195 第 6 章 I/O ポート ■ ポート 7 ポート 7 は PFR7 および AD コンバータで制御されます。 ポート 7 は全端子 AD コンバータのアナログ入力と兼用しており , ADER レジスタの対 応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子となり ます。この場合 , 端子への入力値はすべて "0" として扱われます。 外部割込み INT7 ∼ INT0 への入力信号は , 上記のように AD コンバータのアナログ入 力である場合を除き , 常に端子と接続されています。 bit7 アドレス PFR7 000427H bit6 PFR77 PFR76 R/W R/W bit5 bit4 bit3 bit2 bit1 bit0 初期値 - - - - - - 00------B R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 ビット 値 0 汎用ポート 1 I2C2 の SCL 入出力 出力はオープンドレイン 0 汎用ポート 1 I2C2 の SDA 入出力 出力はオープンドレイン PFR77 PFR76 196 機能 第 6 章 I/O ポート ■ ポート 8 ポート 8 は PFR8 および EPFR8 で制御されます。 リロードタイマ 0/2 の入力信号 (TIN0, TIN2), LIN-UART0/UART1 の入力信号 (SIN0, SIN1), および AD コンバータの外部トリガ入力 (ADTG) は常に端子と接続されていま す。 P84 ∼ P80 の INT15R ∼ INT12R を外部割込み端子として有効にするためには , EISSR15 ∼ EISSR12 の対応するビットを設定してください。 bit7 アドレス PFR8 000428H EPFR8 000608H bit6 bit5 PFR87 PFR86 − R/W − R/W − bit4 bit3 PFR84 PFR83 − R/W − R/W EPFR83 R/W bit2 bit1 bit0 初期値 − PFR81 − 00-00-0-B − R/W EPFR81 − R/W ----0-0-B R/W R/W :リード / ライト可能 ビット 値 0 汎用ポート 1 LIN-UART1 の SCK SCK の入出力方向は LIN-UART1 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART1 の SOT 0 汎用ポート 1 LIN-UART0 の SCK SCK の入出力方向は LIN-UART0 の SCKE ビットで切換え 00 汎用ポート 10 LIN-UART0 の SOT x1 リロードタイマ 2 の TOT 出力 00 汎用ポート 10 クロックモニタ出力 (CKOT) x1 リロードタイマ 0 の TOT 出力 PFR87 PFR86 PFR84 PFR83 EPFR83 PFR81 EPFR81 機能 197 第 6 章 I/O ポート ■ ポート 9 ポート 9 は PFR9 および EPFR9 で制御されます。 外部バスモードでは , P93 ∼ P90 は CS3 ∼ CS0 となります。 それ以外のモードでは , PPG7, PPG5, PPG3, PPG1 出力およびアップダウンカウンタ 2/3 の入力信号に割り当てられます。 bit7 アドレス PFR9 000429H EPFR9 000609H bit6 bit5 bit4 bit3 bit2 bit1 PFR97 PFR96 PFR95 PFR94 PFR93 PFR92 PFR91 PFR90 − R/W − R/W − R/W − R/W EPFR93 EPFR92 EPFR91 EPFR90 R/W R/W R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 OCU3 出力 0 汎用ポート 1 OCU2 出力 0 汎用ポート 1 OCU1 出力 0 汎用ポート 1 OCU0 出力 0 汎用ポート 1 PPG7 出力 0 汎用ポート 1 PPG5 出力 0 汎用ポート 1 PPG3 出力 0 汎用ポート 1 PPG1 出力 PFR97 PFR96 PFR95 PFR94 PFR93 PFR92 PFR91 PFR90 198 bit0 R/W 初期値 00000000B ----0000B 第 6 章 I/O ポート 外部バスモードであっても EPFR の設定により , 外部バス制御信号である CS を無効と することができます。 ビット 機能 ( 外部バスモード ) 値 0 CS3 出力 1 PFR93 により制御 0 CS2 出力 1 PFR92 により制御 0 CS1 出力 1 PFR91 により制御 0 CS0 出力 1 PFR90 により制御 EPFR93 EPFR92 EPFR91 EPFR90 ■ ポート A ポート A は PFRA で制御されます。 PA0 の INT8R を外部割込み端子として有効にするためには , EISSR[8] を設定してくだ さい。 アドレス bit7 bit6 bit5 bit4 bit3 bit2 PFRA 00042AH − R/W − R/W − R/W − R/W − R/W − R/W bit1 bit0 PFRA1 PFRA0 R/W 初期値 ------00B R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 CAN0 の TX 出力 0 汎用ポート 1 CAN 使用時は , "1" に設定願います。 PFRA1 PFRA0 <注意事項> CAN 使用時は , PFRA0/PFRA1 は , 必ず "1" に設定願います。 PFRA0/PFRA1 を "1" に設定した場合 , DDR レジスタを出力 ("1") 設定しても CAN 通信端 子 (TX, RX) には影響を与えません。 199 第 6 章 I/O ポート ■ ポート B ポート B は PFRB および EPFRB で制御されます。 bit7 アドレス bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PFRB 00042BH − − PFRB5 PFRB4 PFRB3 PFRB2 PFRB1 PFRB0 --000000B EPFRB 00060BH − R/W − R/W EPFRB5 EPFRB4 EPFRB3 EPFRB2 EPFRB1 EPFRB0 --000000B R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 LIN-UART6 の SCK(SCK6-2) SCK の入出力方向は LIN-UART6 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART6 の SOT(SOT6-2) P04 の SOT6 と同時に出力可能 0 汎用ポート 1 LIN-UART6 の SIN 有効 (SIN6-2) 本来の入力である P03(SIN6) は LIN-UART6 から切断 0 汎用ポート 1 LIN-UART5 の SCK(SCK5-2) SCK の入出力方向は LIN-UART5 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART5 の SOT(SOT5-2) P01 の SOT5 と同時に出力可能 0 汎用ポート 1 LIN-UART5 の SIN 有効 (SIN5-2) 本来の入力である P00(SIN5) は LIN-UART5 から切断 PFRB5 PFRB4 PFRB3 PFRB2 PFRB1 PFRB0 EPFR は外部割込み入力端子の選択に使用されます。 200 ビット 値 機能 EPFRB5 ∼ EPFRB0 0 P05 ∼ P00 の INT13 ∼ INT8 が外部割込み入力端子として有効 1 PB5 ∼ PB0 の INT13-2 ∼ INT8-2 が外部割込み端子入力として 有効 第 6 章 I/O ポート ■ ポート C ポート C は PFRC で制御されます。 PC7 ∼ PC0 の INT7R ∼ INT0R を外部割込み端子として有効にするためには , EISSR7 ∼ EISSR0 の対応するビットを設定してください。 bit7 アドレス PFRC 00042CH bit6 bit5 bit4 bit3 bit2 bit1 bit0 PFRC7 PFRC6 PFRC5 PFRC4 PFRC3 PFRC2 PFRC1 PFRC0 R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W R/W :リード / ライト可能 ビット 値 機能 0 汎用ポート 1 LIN-UART4 の SCK(SCK4-2) SCK の入出力方向は LIN-UART4 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART4 の SOT(SOT4-2) P16 の SOT4 と同時に出力可能 0 汎用ポート 1 LIN-UART4 の SIN 有効 (SIN4-2) 本来の入力である P15(SIN4) は LIN-UART4 から切断 0 汎用ポート 1 LIN-UART3 の SCK(SCK3-2) SCK の入出力方向は LIN-UART3 の SCKE ビットで切換え 0 汎用ポート 1 LIN-UART3 の SOT(SOT3-2) P13 の SOT3 と同時に出力可能 0 汎用ポート 1 LIN-UART3 の SIN 有効 (SIN3-2) 本来の入力である P12(SIN3) は LIN-UART3 から切断 0 汎用ポート 1 OCU5 出力 (OUT5-2) P35 の OUT5 と同時に出力可能 0 汎用ポート 1 OCU4 出力 (OUT4-2) P34 の OUT4 と同時に出力可能 PFRC7 PFRC6 PFRC5 PFRC4 PFRC3 PFRC2 PFRC1 PFRC0 201 第 6 章 I/O ポート ■ ポート D ポート D は PFRD で制御されます。 外部割込み INT23 ∼ INT16 への入力信号は常に端子と接続されています。 bit7 アドレス PFRD 00042DH bit6 bit5 bit4 bit3 bit2 bit1 bit0 PFRD7 PFRD6 PFRD5 PFRD4 PFRD3 PFRD2 PFRD1 PFRD0 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 ビット 値 0 汎用ポート 1 ICU3 の入力有効 (IN3-2) 本来の入力である P27(IN3) は ICU3 から切断 0 汎用ポート 1 ICU2 の入力有効 (IN2-2) 本来の入力である P26(IN2) は ICU2 から切断 0 汎用ポート 1 ICU1 の入力有効 (IN1-2) 本来の入力である P25(IN1) は ICU1 から切断 0 汎用ポート 1 ICU0 の入力有効 (IN0-2) 本来の入力である P24(IN0) は ICU0 から切断 0 汎用ポート 1 PPGF 出力 (PPGF-2) P23 の PPGF と同時に出力可能 0 汎用ポート 1 PPGD 出力 (PPGD-2) P22 の PPGD と同時に出力可能 0 汎用ポート 1 PPGB 出力 (PPGB-2) P21 の PPGB と同時に出力可能 0 汎用ポート 1 PPGF 出力 (PPG9-2) P21 の PPG9 と同時に出力可能 PFRD7 PFRD6 PFRD5 PFRD4 PFRD3 PFRD2 PFRD1 PFRD0 202 機能 初期値 00000000B 第 6 章 I/O ポート ■ ポート E ポート E は EPFRE で制御されます。 外部バスモードでは , ポート E はバスインタフェースの A7 ∼ A0 となります。それ以 外のモードでは , 汎用ポートです。 外部割込み INT31 ∼ INT24 への入力信号は常に端子と接続されています。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス EPFRE 00060EH EPFRE7 EPFRE6 EPFRE5 EPFRE4 EPFRE3 EPFRE2 EPFRE1 EPFRE0 R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W R/W :リード / ライト可能 外部バスモードであっても EPFR の設定により , 外部バスアドレス出力を無効とするこ とができます。 ビット 値 機能 ( 外部バスモード ) EPFRE7 ∼ EPFRE0 0 外部バスアドレス出力 A7 ∼ A0 1 汎用ポート ■ ポート F ポート F は EPFRF で制御されます。 外部バスモードでは , ポート E はバスインタフェースの A15 ∼ A8 となります。それ 以外のモードでは , 汎用ポートです。 外部割込み INT39 ∼ INT32 への入力信号は常に端子と接続されています。 アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EPFRF 00060FH EPFRF7 EPFRF6 EPFRF5 EPFRF4 EPFRF3 EPFRF2 EPFRF1 EPFRF0 R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W R/W :リード / ライト可能 外部バスモードであっても EPFR の設定により , 外部バスアドレス出力を無効とするこ とができます。 機能 ( 外部バスモード ) ビット 値 EPFRF7 ∼ EPFRF0 0 外部バスアドレス出力 A15 ∼ A8 1 汎用ポート ■ ポート G ポート G には PFR は存在せず , A/D コンバータで制御されます。 ポート G は全端子 A/D コンバータのアナログ入力と兼用しており , ADER レジスタの 対応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子とな ります。この場合 , 端子への入力値はすべて "0" として扱われます。 上記以外の場合では , 常に汎用ポートです。 203 第 6 章 I/O ポート 6.4 外部割込み入力の再配置 MB91270 シリーズには最大 40 チャネルの外部割込み入力があります (INT0 ∼ INT39)。さらに INT0 ∼ INT15 は , 初期状態で割り当てられている端子から別の端子 へ再配置することができます。この再配置は , 外部割込み入力端子選択レジスタ (EISSR) の設定により実現されます。 ■ 外部割込み入力端子選択レジスタ (EISSR) アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 EISSRH 0001AAH EISSR15 EISSR14 EISSR13 EISSR12 EISSR11 EISSR10 EISSR9 EISSR8 00000000B EISSRL 0001ABH EISSR7 EISSR6 EISSR5 EISSR4 EISSR3 EISSR2 EISSR1 EISSR0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 表 6.4-1 に外部割込み入力端子の再配置を示します。 P32, P42, PA0 は CAN の RX 入力と兼用しており , CAN ウェイクアップとしての使用が 可能です。 表 6.4-1 外部割込み入力端子の再配置 外部割込み入力端子 ビット 204 外部割込みチャネル 0 [ 初期値 ] 1 EISSR15 INT15 P07 P84 EISSR14 INT14 P06 P82 EISSR13 INT13 P05 (PB5) P81 EISSR12 INT12 P04 (PB4) P80 EISSR11 INT11 P03 (PB3) P12 EISSR10 INT10 P02 (PB2) P32 EISSR9 INT9 P01 (PB1) P42 EISSR8 INT8 P00 (PB0) PA0 EISSR7 INT7 P77 PC7 EISSR6 INT6 P76 PC6 EISSR5 INT5 P75 PC5 EISSR4 INT4 P74 PC4 EISSR3 INT3 P73 PC3 EISSR2 INT2 P72 PC2 EISSR1 INT1 P71 PC1 EISSR0 INT0 P70 PC0 第 6 章 I/O ポート <参考> INT13 ∼ INT8 は , ポート B の EPFRB で入力端子を PB5 ∼ PB0 との選択もできます。こ の場合 , 対応する EISSR ビットの設定値は "0" としてください。 EISSR および EPFRB の設定により外部割込み入力端子を切り換える前に , 対応する チャネルの ENIR レジスタビットを "0" ( 割込み禁止 ) に設定してください。"1" ( 割込 み許可 ) の時に切り換えると , 割込みが直ちに発生する場合があります。 205 第 6 章 I/O ポート 6.5 端子入力レベルの選択 端子の入力レベルは , CMOS シュミットトリガ , もしくは CMOS オートモーティブ シュミットトリガのいずれかをソフトウェアで端子ごとに選択することができます。 外部バスモード時には , 外部バスインタフェースの入力信号は CMOS シュミットト リガ , もしくは TTL のいずれかを選択することができます。 ■ 端子入力レベル 表 6.5-1 に入力レベルを示します。 表 6.5-1 入力レベル VIL 名称 VIH CMOS シュミットトリガ VIL = 0.3 × VCC VIH = 0.7 × VCC CMOS オートモーティブシュミット トリガ VIL = 0.5 × VCC VIH = 0.8 × VCC TTL VIL = 0.8 V VIH = 2.1 V ■ 端子入力レベルの選択 端子ごとの入力レベルの選択には , 端子入力レベル選択レジスタ (PILR) が使用されま す。表 6.5-2 にレジスタの設定値を示します。 表 6.5-2 端子入力レベル選択レジスタの設定 端子入力レベル ビット PILRxy 206 入力信号 0 [ 初期値 ] 1 汎用ポート ペリフェラル入力 CMOS シュミットトリガ CMOS オートモーティブ シュミットトリガ 外部バス入力 (D00 ∼ D15, RDY) CMOS シュミットトリガ TTL 第 6 章 I/O ポート アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PILR0 000540H PILR07 PILR06 PILR05 PILR04 PILR03 PILR02 PILR01 PILR00 00000000B PILR1 000541H PILR17 PILR16 PILR15 PILR14 PILR13 PILR12 PILR11 PILR10 00000000B PILR2 000542H PILR27 PILR26 PILR25 PILR24 PILR23 PILR22 PILR21 PILR20 00000000B PILR3 000543H PILR37 PILR36 PILR35 PILR34 PILR33 PILR32 PILR31 PILR30 00000000B PILR4 000544H PILR47 PILR46 PILR45 PILR44 PILR43 PILR42 PILR41 PILR40 00000000B PILR5 000545H PILR57 PILR56 PILR55 PILR54 PILR53 PILR52 PILR51 PILR50 00000000B PILR6 000546H PILR67 PILR66 PILR65 PILR64 PILR63 PILR62 PILR61 PILR60 00000000B PILR7 000547H PILR77 PILR76 PILR75 PILR74 PILR73 PILR72 PILR71 PILR70 00000000B PILR8 000548H PILR87 PILR86 PILR85 PILR84 PILR83 PILR82 PILR81 PILR80 00000000B PILR9 000549H PILR97 PILR96 PILR95 PILR94 PILR93 PILR92 PILR91 PILR90 00000000B PILRA 00054AH - - PILRB 00054BH - - PILRC 00054CH PILRC7 PILRD 00054DH PILRD7 - - - - PILRA1 PILRA0 ------00B PILRB5 PILRB4 PILRB3 PILRB2 PILRB1 PILRB0 --000000B PILRC6 PILRC5 PILRC4 PILRC3 PILRC2 PILRC1 PILRC0 00000000B PILRD6 PILRD5 PILRD4 PILRD3 PILRD2 PILRD1 PILRD0 00000000B PILRE 00054EH PILRE7 PILRE6 PILRE5 PILRE4 PILRE3 PILRE2 PILRE1 PILRE0 00000000B PILRF 00054FH PILRF7 PILRF6 PILRF5 PILRF4 PILRF3 PILRF2 PILRF1 PILRF0 00000000B PILRG 000550H PILRG7 PILRG6 PILRG5 00000000B R/W R/W R/W PILRG4 PILRG3 R/W R/W PILRG2 PILRG1 PILRG0 R/W R/W R/W R/W :リード / ライト可能 207 第 6 章 I/O ポート 6.6 プルアップ・プルダウン制御レジスタ 端子には 50kΩ のプルアップ , もしくはプルダウンを付加する機能があります。こ の機能はソフトウェアによりビット単位で制御可能です。 ■ プルアップ・プルダウン制御 プルアップ・プルダウン機能は , ポートプルアップ・プルダウン許可レジスタ (PPER) により有効とされ , ポートプルアップ・プルダウン制御レジスタ (PPCR) により , プル アップもしくはプルダウンの制御が行われます。 以下の場合は , 端子のプルアップもしくはプルダウンは自動的に無効となります。 • ポートが出力状態 • STOP モード時 ■ ポートプルアップ・プルダウン許可レジスタ 表 6.6-1 にポートプルアップ・プルダウン許可レジスタの設定を示します。 I2C インタフェースと兼用しているポート (P47 ∼ P44, P77, P76), および D/A コンバー タの出力と兼用しているポート (P57, P56) を除き , すべてのポートに対応するビットが 存在します。 表 6.6-1 ポートプルアップ・プルダウン許可レジスタの設定 ポートプルアップ・プルダウン許可レジスタ ビット 0 [ 初期値 ] PPERxy 208 プルアップ・プルダウン無効 1 プルアップ・プルダウン有効 第 6 章 I/O ポート アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PPER0 000500H PPER07 PPER06 PPER05 PPER04 PPER03 PPER02 PPER01 PPER00 00000000 B PPER1 000501H PPER17 PPER16 PPER15 PPER14 PPER13 PPER12 PPER11 PPER10 00000000 B PPER2 000502H PPER27 PPER26 PPER25 PPER24 PPER23 PPER22 PPER21 PPER20 00000000 B PPER3 000503H PPER37 PPER36 PPER35 PPER34 PPER33 PPER32 PPER31 PPER30 00000000 B PPER4 000504H − − PPER43 PPER42 PPER41 PPER40 ----0000 B PPER5 000505H − − PPER55 PPER54 PPER53 PPER52 PPER51 PPER50 --000000 B PPER6 000506H PPER67 PPER66 PPER65 PPER64 PPER63 PPER62 PPER61 PPER60 00000000 B PPER7 000507H PPER75 PPER74 PPER73 PPER72 PPER71 PPER70 --000000 B PPER8 000508H PPER87 PPER86 PPER85 PPER84 PPER83 PPER82 PPER81 PPER80 00000000 B PPER9 000509H PPER97 PPER96 PPER95 PPER94 PPER93 PPER92 PPER91 PPER90 00000000 B − − PPERA 00050AH − − PPERB 00050BH − − − − − − − − PPERA1 PPERA0 ------00 B PPERB5 PPERB4 PPERB3 PPERB2 PPERB1 PPERB0 --000000 B PPERC 00050CH PPERC7 PPERC6 PPERC5 PPERC4 PPERC3 PPERC2 PPERC1 PPERC0 00000000 B PPERD 00050DH PPERD7 PPERD6 PPERD5 PPERD4 PPERD3 PPERD2 PPERD1 PPERD0 00000000 B PPERE 00050EH PPERE7 PPERE6 PPERE5 PPERE4 PPERE3 PPERE2 PPERE1 PPERE0 00000000 B PPERF 00050FH PPERF7 PPERF6 PPERF5 PPERF4 PPERF3 PPERF2 PPERF1 PPERF0 00000000 B PPERG 000510H PPERG7 PPERG6 PPERG5 PPERG4 PPERG3 PPERG2 PPERG1 PPERG0 00000000 B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 209 第 6 章 I/O ポート ■ ポートプルアップ・プルダウン制御レジスタ 表 6.6-2 にポートプルアップ・プルダウン制御レジスタの設定を示します。各ビットの 設定値は対応する PPER が設定されているときのみ有効です。 I2C インタフェースと兼用しているポート (P47 ∼ P44, P77, P76), および D/A コンバー タの出力と兼用しているポート (P57, P56) を除き , すべてのポートに対応するビットが 存在します。 表 6.6-2 ポートプルアップ・プルダウン制御レジスタの設定 ポートプルアップ・プルダウン制御レジスタ ビット 0 PPCRxy bit7 アドレス 1 ( 初期値 ) プルダウン bit6 bit5 プルアップ bit4 bit3 bit2 bit1 bit0 初期値 PPCR0 000520H PPCR07 PPCR06 PPCR05 PPCR04 PPCR03 PPCR02 PPCR01 PPCR00 11111111B PPCR1 000521H PPCR17 PPCR16 PPCR15 PPCR14 PPCR13 PPCR12 PPCR11 PPCR10 11111111B PPCR2 000522H PPCR27 PPCR26 PPCR25 PPCR24 PPCR23 PPCR22 PPCR21 PPCR20 11111111B PPCR3 000523H PPCR37 PPCR36 PPCR35 PPCR34 PPCR33 PPCR32 PPCR31 PPCR30 11111111B PPCR4 000524H − − PPCR43 PPCR42 PPCR41 PPCR40 ----1111B PPCR5 000525H − − PPCR55 PPCR54 PPCR53 PPCR52 PPCR51 PPCR50 --111111B PPCR6 000526H PPCR67 PPCR66 PPCR65 PPCR64 PPCR63 PPCR62 PPCR61 PPCR60 11111111B PPCR7 000527H PPCR75 PPCR74 PPCR73 PPCR72 PPCR71 PPCR70 --111111B PPCR8 000528H PPCR87 PPCR86 PPCR85 PPCR84 PPCR83 PPCR82 PPCR81 PPCR80 11111111B PPCR9 000529H PPCR97 PPCR96 PPCR95 PPCR94 PPCR93 PPCR92 PPCR91 PPCR90 11111111B − − PPCRA 00052AH − − PPCRB 00052BH − − − − − − − − PPCRA1 PPCRA0 ------11B PPCRB5 PPCRB4 PPCRB3 PPCRB2 PPCRB1 PPCRB0 --111111B PPCRC 00052CH PPCRC7 PPCRC6 PPCRC5 PPCRC4 PPCRC3 PPCRC2 PPCRC1 PPCRC0 11111111B PPCRD 00052DH PPCRD7 PPCRD6 PPCRD5 PPCRD4 PPCRD3 PPCRD2 PPCRD1 PPCRD0 11111111B PPCRE 00052EH PPCRE7 PPCRE6 PPCRE5 PPCRE4 PPCRE3 PPCRE2 PPCRE1 PPCRE0 11111111B PPCRF 00052FH PPCRF7 PPCRF6 PPCRF5 PPCRF4 PPCRF3 PPCRF2 PPCRF1 PPCRF0 11111111B PPCRG 000530H PPCRG7 PPCRG6 PPCRG5 PPCRG4 PPCRG3 PPCRG2 PPCRG1 PPCRG0 11111111B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 <注意事項> プルアップもしくはプルダウンが有効である期間 (PPER=1) は , PPCR への書込みアクセ スは無効となり , レジスタ値は更新されません。 PPCR の設定値の変更は , 対応する PPER が "0" の場合にのみ有効です。 210 第 6 章 I/O ポート 入力データダイレクトリードレジスタ 6.7 入力データダイレクトリードレジスタを読み出すと , ポートの状態に関わらず , 端子 のレベルを読み出すことができます。 ■ 入力データダイレクトリードレジスタ (PIDR) アドレス bit7 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PIDR0 000620H PIDR07 PIDR06 PIDR05 PIDR04 PIDR03 PIDR02 PIDR01 PIDR00 XXXXXXXXB PIDR1 000621H PIDR17 PIDR16 PIDR15 PIDR14 PIDR13 PIDR12 PIDR11 PIDR10 XXXXXXXXB PIDR2 000622H PIDR27 PIDR26 PIDR25 PIDR24 PIDR23 PIDR22 PIDR21 PIDR20 XXXXXXXXB PIDR3 000623H PIDR37 PIDR36 PIDR35 PIDR34 PIDR33 PIDR32 PIDR31 PIDR30 XXXXXXXXB PIDR4 000624H PIDR47 PIDR46 PIDR45 PIDR44 PIDR43 PIDR42 PIDR41 PIDR40 XXXXXXXXB PIDR5 000625H PIDR57 PIDR56 PIDR55 PIDR54 PIDR53 PIDR52 PIDR51 PIDR50 XXXXXXXXB PIDR6 000626H PIDR67 PIDR66 PIDR65 PIDR64 PIDR63 PIDR62 PIDR61 PIDR60 XXXXXXXXB PIDR7 000627H PIDR77 PIDR76 PIDR75 PIDR74 PIDR73 PIDR72 PIDR71 PIDR70 XXXXXXXXB PIDR8 000628H PIDR87 PIDR86 PIDR85 PIDR84 PIDR83 PIDR82 PIDR81 PIDR80 XXXXXXXXB PIDR9 000629H PIDR97 PIDR96 PIDR95 PIDR94 PIDR93 PIDR92 PIDR91 PIDR90 XXXXXXXXB PIDRA 00062AH − − − − − − PIDRB 00062BH − − PIDRA1 PIDRA0 PIDRB5 PIDRB4 PIDRB3 PIDRB2 PIDRB1 PIDRB0 ------XXB --XXXXXXB PIDRC 00062CH PIDRC7 PIDRC6 PIDRC5 PIDRC4 PIDRC3 PIDRC2 PIDRC1 PIDRC0 XXXXXXXXB PIDRD 00062DH PIDRD7 PIDRD6 PIDRD5 PIDRD4 PIDRD3 PIDRD2 PIDRD1 PIDRD0 XXXXXXXXB PIDRE 00062EH PIDRE7 PIDRE6 PIDRE5 PIDRE4 PIDRE3 PIDRE2 PIDRE1 PIDRE0 XXXXXXXXB PIDRF 00062FH PIDRF7 PIDRF2 PIDRF1 PIDRF0 XXXXXXXXB PIDRG 000010H PIDRG7 PIDRG6 PIDRG5 PIDRG4 PIDRG3 PIDRG2 PIDRG1 PIDRG0 XXXXXXXXB R R bit6 PIDRF6 R PIDRF5 R PIDRF4 R PIDRF3 R R R R :リードオンリ 211 第 6 章 I/O ポート 212 第7章 割込みコントローラ 割込みコントローラの概要 , レジスタの構成 / 機能 , および動作について説明します。 7.1 割込みコントローラの概要 7.2 割込みコントローラのレジスタ 7.3 割込みコントローラの動作説明 213 第 7 章 割込みコントローラ 7.1 割込みコントローラの概要 割込みコントローラは , 割込み受付け / 調停処理を行います。 ■ 割込みコントローラのハードウェア構成 本モジュールは , 以下のものより構成されます。 • ICR レジスタ • 割込み優先度判定回路 • 割込みレベル , 割込み番号 ( ベクタ ) 発生部 • ホールドリクエスト取下げ要求発生部 ■ 割込みコントローラの主要機能 本モジュールには , 主に以下のような機能があります。 • NMI 要求 / 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み番号伝達 (CPU へ ) • NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰 指示 (CPU へ ) • バスマスタへのホールドリクエスト取下げ要求発生 <注意事項> 本シリーズでは NMI はサポートされていません。 214 第 7 章 割込みコントローラ ■ 割込みコントローラのレジスタ一覧 図 7.1-1 に , 割込みコントローラのレジスタ一覧を示します。 図 7.1-1 割込みコントローラのレジスタ一覧 bit5 bit4 bit3 bit2 bit1 bit0 − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR00 − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR01 000442H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR02 000443H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR03 000444H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR04 000445H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR05 000446H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR06 000447H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR07 ICR3 ICR2 ICR1 ICR0 ICR08 アドレス bit7 000440H − 000441H bit6 000448H − − − ICR4 000449H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR09 00044AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR10 00044BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR11 00044CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR12 00044DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR13 00044EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR14 00044FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR15 ICR3 ICR2 ICR1 ICR0 ICR16 000450H − − − ICR4 000451H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR17 000452H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR18 000453H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR19 000454H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR10 000455H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR21 000456H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR22 000457H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR23 ICR3 ICR2 ICR1 ICR0 ICR24 000458H − − − ICR4 000459H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR25 00045AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR26 00045BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR27 00045CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR28 00045DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR29 00045EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR30 00045FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR31 R R/W R/W R/W R/W R/W :リード / ライト可能 R :リードオンリ ( 続く ) 215 第 7 章 割込みコントローラ ( 続き ) bit7 bit5 bit4 bit3 bit2 bit1 bit0 − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR32 − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR33 000462H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR34 000463H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR35 000464H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR36 000465H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR37 000466H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR38 000467H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR39 ICR3 ICR2 ICR1 ICR0 ICR40 000460H − 000461H bit6 000468H − − − ICR4 000469H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR41 00046AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR42 00046BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR43 00046CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR44 00046DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR45 00046EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR46 00046FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR47 R R/W R/W R/W R/W LVL4 LVL3 LVL2 LVL1 LVL0 R R/W R/W R/W R/W 000045H MHALTI − − R/W HRCL R/W :リード / ライト可能 R :リードオンリ ■ 割込みコントローラのブロックダイヤグラム 図 7.1-2 に割込みコントローラのブロックダイヤグラムを示します。 図 7.1-2 割込みコントローラのブロックダイヤグラム UNMI ウェイクアップ(レベル≠11111のとき"1") 優先度判定 NMI 処理 LVL4~LVL0 5 ホールド リクエスト 取下げ 要求 レベル判定 ICR00 RI00 ベクタ 判定 ICR47 RI47 (DLYIRQ) R-bus 216 6 レベル, ベクタ 発生 MHALT1 VCT5~0 第 7 章 割込みコントローラ 7.2 割込みコントローラのレジスタ 割込みコントローラのレジスタ構成および機能について説明します。 ■ 割込みコントローラのレジスタ詳細 割込みコントローラには , 以下の 2 種類のレジスタがあります。 • 割込み制御レジスタ (ICR) • HRCL ( ホールドリクエスト取下げ要求レジスタ ) 217 第 7 章 割込みコントローラ 7.2.1 割込み制御レジスタ (ICR) ICR は , 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割込み要求の割込みレベルを設定します。 ■ 割込み制御レジスタ (ICR) のビット構成 割込み制御レジスタ (ICR) のビット構成は以下のとおりです。 ICR アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000440H ∼ 00046FH − − − ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W R/W 初期値 ---11111B R/W :リード / ライト可能 R :リードオンリ [bit4 ∼ bit0] ICR4 ∼ ICR0 割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。 本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。 リセットにより , "11111B" に初期化されます。 表 7.2-1 に , 設定可能な割込みレベル設定ビットと割込みレベルの対応を示します。 表 7.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応 ICR4 * ICR3 ICR2 ICR1 ICR0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 14 15 16 17 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 18 19 20 21 22 23 24 25 26 27 28 29 30 1 1 1 1 1 31 割込みレベル *: ICR4 は "1" 固定で , "0" を書き込むことはできません。 218 システム予約 NMI 設定可能な最強レベル (強) (弱) 割込み禁止 第 7 章 割込みコントローラ HRCL ( ホールドリクエスト取下げ要求レジスタ ) 7.2.2 HRCL は , ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。 ■ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成は , 以下のとおりです。 HRCL アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000045H MHALTI R/W − − LVL4 R LVL3 R/W LVL2 R/W LVL1 R/W LVL0 R/W 0--11111B R/W :リード / ライト可能 R :リードオンリ [bit7] MHALTI MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1" にセットされ ,"0" を書き込むことによってクリアされます。NMI ルーチンの最後で 通常の割込みルーチンと同様にクリアしてください。 <注意事項> 本シリーズでは NMI はサポートされていません。 [bit4 ∼ bit0] LVL4 ∼ LVL0 バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定 します。 本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した 場合は , バスマスタに対してホールドリクエスト取下げ要求を出します。 LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。 219 第 7 章 割込みコントローラ 7.3 割込みコントローラの動作説明 割込みコントローラの動作について説明します。 ■ 優先順位判定 本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選 択し , その要因の割込みレベルと割込み番号を CPU へ出力します。 割込み要因の優先順位判定基準は , 以下のとおりです。 1. NMI 2. 以下の条件を満たす要因 - 割込みレベルの数値が 31 以外 (31 は割込み禁止 ) 。 - 割込みレベルの数値が最も小さい要因。 - その中で , 最も小さい割込み番号を持つ要因。 上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし て 31(11111B) を出力します。そのときの割込み番号は不定です。 表 7.3-1 に , 割込み要因と割込み番号 , 割込みレベルの関係を示します。 <注意事項> 本シリーズでは NMI はサポートされていません。 220 第 7 章 割込みコントローラ 表 7.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 2) 割込み要因 割込み番号 10 進 16 進 リセット モードベクタ システム予約 システム予約 システム予約 システム予約 システム予約 コプロセッサ不在トラップ コプロセッサエラートラップ INTE 命令 システム予約 システム予約 ステップトレーストラップ NMI 要求 (tool) 未定義命令例外 NMI 要求 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 外部割込み 0 外部割込み 1 外部割込み 2 外部割込み 3 外部割込み 4 外部割込み 5 外部割込み 6 外部割込み 7 リロードタイマ 0 リロードタイマ 1 リロードタイマ 2 LIN-UART0 ( 受信完了 ) LIN-UART0 ( 送信完了 ) LIN-UART1 ( 受信完了 ) LIN-UART1 ( 送信完了 ) LIN-UART2 ( 受信完了 ) LIN-UART2 ( 送信完了 ) CAN0 CAN1 /ICU6/ICU7 CAN2 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 LIN-UART3/UART5 ( 受信完了 ) LIN-UART3/UART5 ( 送信完了 ) LIN-UART4/UART6 ( 受信完了 ) LIN-UART4/UART6 ( 送信完了 ) I2C0 割込みレベル オフセット − − − − − − − − − − − − − − − 15(FH) 固定 ICR00 ICR01 ICR02 ICR03 ICR04 ICR05 ICR06 ICR07 ICR08 ICR09 ICR10 ICR11 ICR12 ICR13 ICR14 ICR15 ICR16 ICR17 ICR18 ICR19 ICR20 ICR21 ICR22 ICR23 ICR24 TBR デフォルト リソース 番号 のアドレス 3FCH 3F8H 3F4H 3F0H 3ECH 3E8H 3E4H 3E0H 3DCH 3D8H 3D4H 3D0H 3CCH 3C8H 3C4H 3C0H 000FFFFCH 000FFFF8H 000FFFF4H 000FFFF0H 000FFFECH 000FFFE8H 000FFFE4H 000FFFE0H 000FFFDCH 000FFFD8H 000FFFD4H 000FFFD0H 000FFFCCH 000FFFC8H 000FFFC4H 000FFFC0H 3BCH 3B8H 3B4H 3B0H 3ACH 3A8H 3A4H 3A0H 39CH 398H 394H 390H 38CH 388H 384H 380H 37CH 378H 374H 370H 36CH 368H 364H 360H 35CH 000FFFBCH 000FFFB8H 000FFFB4H 000FFFB0H 000FFFACH 000FFFA8H 000FFFA4H 000FFFA0H 000FFF9CH 000FFF98H 000FFF94H 000FFF90H 000FFF8CH 000FFF88H 000FFF84H 000FFF80H 000FFF7CH 000FFF78H 000FFF74H 000FFF70H 000FFF6CH 000FFF68H 000FFF64H 000FFF60H 000FFF5CH − − − − − − − − − − − − − − − − 6 7 11 − − − − − 8 9 10 0 1 2 3 4 5 − − − − − − − − 221 第 7 章 割込みコントローラ 表 7.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 2) 割込み要因 割込み番号 10 進 16 進 割込みレベル オフセット TBR デフォルト リソース 番号 のアドレス I C1 / アップダウンカウンタ 2 41 29 ICR25 358H 000FFF58H − I2C2 42 2A ICR26 354H 000FFF54H A/D コンバータ リアルタイムクロック アップダウンカウンタ 1 メイン発振安定待ちタイマ TBT オーバフロー PPG0/PPG1/PPG4/PPG5 PPG2/PPG3/PPG6/PPG7 PPG8/PPG9/PPGC/PPGD PPGA/PPGB/PPGE/PPGF 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F ICR27 ICR28 ICR29 ICR30 ICR31 ICR32 ICR33 ICR34 ICR35 ICR36 ICR37 ICR38 ICR39 ICR40 ICR41 ICR42 ICR43 ICR44 ICR45 ICR46 ICR47 50 | FF 000FFF50H 000FFF4CH 000FFF48H 000FFF44H 000FFF40H 000FFF3CH 000FFF38H 000FFF34H 000FFF30H 000FFF2CH 000FFF28H 000FFF24H 000FFF20H 000FFF1CH 000FFF18H 000FFF14H 000FFF10H 000FFF0CH 000FFF08H 000FFF04H 000FFF00H 000FFEFCH 000FFEF8H 000FFEF4H 000FFEF0H 000FFEECH 000FFEE8H 000FFEE4H 000FFEE0H 000FFEDCH 000FFED8H 000FFED4H 000FFED0H 000FFECCH 000FFEC8H 000FFEC4H 000FFEC0H 000FFEBCH | 000FFC00H − 14 80 | 255 350H 34CH 348H 344H 340H 33CH 338H 334H 330H 32CH 328H 324H 320H 31CH 318H 314H 310H 30CH 308H 304H 300H 2FCH 2F8H 2F4H 2F0H 2ECH 2E8H 2E4H 2E0H 2DCH 2D8H 2D4H 2D0H 2CCH 2C8H 2C4H 2C0H 2BCH | 000H 2 フリーランタイマ 0/1 フリーランタイマ 2/3 インプットキャプチャ 0/1/2/3 インプットキャプチャ 4/5 アウトプットコンペア 0/1/2/3 / UDC3 アウトプットコンペア 4/5/6/7 アップダウンカウンタ 0 外部割込み 8 ∼外部割込み 11 外部割込み 12 ∼外部割込み 39 ROM コレクション割込み DMA 遅延割込み要因ビット システム予約 (REALOS にて使用 ) システム予約 (REALOS にて使用 ) システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 INT 命令で使用 222 − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − 第 7 章 割込みコントローラ ■ NMI (Non Maskable Interrupt) NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま す。 そのため , ほかの割込み要因と同時発生の場合は常に NMI が選択されます。 ● NMI 発生 NMI が発生すると , CPU に対して次の情報を伝えます。 割込みレベル:15(01111B) 割込み番号:15(0001111B) ● NMI 検出 NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュールでは NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。 ● NMI による DMA 転送の抑止 NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送が 抑止されます。DMA 転送の抑止を解除する場合は , NMI ルーチンの最後にて MHALTI ビットを "0" にクリアしてください。 <注意事項> 本シリーズでは NMI はサポートされていません。 ■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request) 優先度の高い割込み処理を , CPU のホールド中 (DMA 転送中 ) に行う場合は , ホールド リクエスト発生元においてリクエストを取り下げさせる必要があります。この取下げ 要求発生の基準となる割込みレベルを HRCL レジスタに設定します。 ● 発生基準 HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合 は , ホールドリクエスト取下げ要求を発生します。 HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル →取下げ要求発生 HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル →取下げ要求なし 取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効 であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割 込み要因をクリアしてください。 また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっている ため , 取下げ要求が有効になっています。 223 第 7 章 割込みコントローラ ● 設定可能なレベル HRCL レジスタに設定可能な値は , ICR と同様に 10000B から 11111B までです。 11111B に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また , 10000B に設定した場合は NMI でのみ取下げ要求を発生することになります。 表 7.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま す。 表 7.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定 HRCL レジスタ 取下げ要求発生となる割込みレベル 17 NMI, 割込みレベル 16 18 NMI, 割込みレベル 16, 17 ∼ NMI のみ ∼ 16 31 NMI, 割込みレベル 16 ∼ 30 [ 初期値 ] リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割 込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値 に設定してください。 ■ スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが 11111 以外 ) が 1 つでも発 生すると , クロック制御部に対してストップモードからの復帰要求を発生します。 優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優 先度判定部の結果が出るまでの間 CPU は命令を実行することになります。 スリープ状態からの復帰においても , 同様に動作します。 また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。 <注意事項> • NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効 な入力を検出するように NMI の設定を行ってください。 • ストップおよびスリープからの復帰の要因としない割込み要因は , 対応する周辺の制 御レジスタにて割込みレベルを 11111B にしてください。 • 本シリーズでは NMI はサポートされていません。(5) 割込み要因の解除 割込みルー チンにおける , 割込み要因解除のための命令と RETI 命令の間には制限があります。詳細 は , CPU の項を参照してください。 224 第 7 章 割込みコントローラ ■ ホールドリクエスト取下げ要求機能 (HRCR) の使用例 DMA 転送中に , CPU が優先度の高い処理を行うときは , DMA に対してホールドリク エストを取り下げさせ , ホールド状態を解除する必要があります。ここでは , 割込みを 利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作を実 現します。 ● 制御レジスタ 1. HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 本モジュール: 本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ ルを設定します。 2. ICR: 本モジュール: 使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し ます。 ● ハードウェア構成 図 7.3-1 に , ホールドリクエストの各信号の流れを示します。 図 7.3-1 ホールドリクエストの各信号の流れ 本モジュール IRQ バスアクセス要求 MHALTI DHREQ DMA I-ユニット (ICR) (HRCL) CPU B-ユニット DHREQ :Dバスホールドリクエスト DHACK :Dバスホールドアクノリッジ IRQ :割込み要求 MHALTI:ホールドリクエスト取下げ要求 DHACK ● シーケンス 図 7.3-2 に , HRCL レジスタに設定したレベルより強い場合の INTC-2 割込みレベルを 示します。 図 7.3-2 割込みレベル HRCL < ICR (LEVEL) RUN バスホールド 割込み処理 バスホールド(DMA転送) CPU 割込みルーチンの例 バスアクセス要求 ①割込み要因クリア DHREQ DHACK ②RETI IRQ LEVEL MHALTI 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。 225 第 7 章 割込みコントローラ 図 7.3-3 に , 多重割込みの場合の INTC-2 割込みレベルを示します。 図 7.3-3 INTC-3 割込みレベル HRCL < ICR( 割込みⅠ )< ICR( 割込みⅡ ) CPU RUN バスホールド 割込みI 割込み処理II 割込み処理I バスホールド(DMA転送) バスアクセス要求 DHREQ DHACK IRQ1 IRQ2 LEVEL MHALTI 〔割込みルーチンの例〕 ① , ③割込み要因クリア ∼ ② , ④ RETI 上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生 した場合を示しています。 HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は , DHREQ は下がっています。 <注意事項> HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。 226 第8章 外部割込み制御部 外部割込み制御部の概要 , レジスタの構成 / 機能 , および動作について説明します。 8.1 外部割込み制御部の概要 8.2 外部割込み制御部のレジスタ 8.3 外部割込み制御部の動作説明 227 第 8 章 外部割込み制御部 外部割込み制御部の概要 8.1 外部割込み制御部は , INT 端子に入力される外部割込み要求の制御を行うブロックで す。 検出する要求のレベルとして , 以下の 4 種類から選択できます。 • "H" レベル • "L" レベル • 立上りエッジ • 立下りエッジ ■ 外部割込み制御部のレジスタ一覧 外部割込み制御部のレジスタ一覧は以下のとおりです。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 外部割込み要因レジスタ (EIRR) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 要求レベル設定レジスタ (ELVR) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 外部割込み許可レジスタ (ENIR) ■ 外部割込み制御部のブロックダイヤグラム 図 8.1-1 に , 外部割込み制御部のブロックダイヤグラムを示します。 図 8.1-1 外部割込み制御部のブロックダイヤグラム R-bus 8 割込み 要求 割込み許可レジスタ 17 8 16 228 ゲート 要因F/F 割込み要因レジスタ 要求レベル設定レジスタ エッジ検出回路 17 INT15~INT0 第 8 章 外部割込み制御部 8.2 外部割込み制御部のレジスタ 外部割込み制御部のレジスタ構成および機能について説明します。 ■ 外部割込み制御部のレジスタ詳細 外部割込み制御部のレジスタには , 以下の 3 種類があります。 • 割込み許可レジスタ (ENIR) • 外部割込み要因レジスタ (EIRR) • 外部割込み要求レベル設定レジスタ (ELVR) 229 第 8 章 外部割込み制御部 割込み許可レジスタ (ENIR) 8.2.1 ENIR は外部割込み要求出力のマスク制御を行います。 ■ 割込み許可レジスタ (ENIR) のビット構成 割込み許可レジスタのビット構成は , 以下のとおりです。 ENIR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 EN7 R/W EN6 R/W EN5 R/W EN4 R/W EN3 R/W EN2 R/W EN1 R/W EN0 R/W 00000000B R/W :リード / ライト可能 このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の 許可を EN0 が制御 ) , 割込みコントローラに対して要求が出力されます。"0" が書かれ たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して は要求を発生しません。 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する外部割込み要因ビット (EIRR:ER) をクリアしてください。 ストップモードでは , 外部割込みが許可されているとき (ENIR:EN=1) に入力可能とな ります。これ以外の設定の場合は , 入力がマスクされ , "L" レベルが内部に伝わります。 <注意事項> 外部割込みを許可 (ENIR:EN1) する直前に , 対応する外部割込み要因フラグビット (EIRR:ER) をクリアしてください。 230 第 8 章 外部割込み制御部 外部割込み要因レジスタ (EIRR) 8.2.2 EIRR は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの 要求を示すフリップフロップ内容をクリアするレジスタです。 ■ 外部割込み要因レジスタ (EIRR) のビット構成 外部割込み要因レジスタのビット構成は , 以下のとおりです。 EIRR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 この EIRR レジスタを読み出したとき , その値によって動作が以下のようになります。 "1" であった場合に , そのビットに対応する端子に外部割込み要求があることを示しま す。 また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク リアされます。 "1" の書込みは無効です。 リードモディファイライトの読出し時には "1" が読まれます。 • 外部割込み要因ビット(EIRR:ER)の値は, 対応する外部割込み許可ビット(ENIR: EN) が "1" に設定されている時のみ有効です。外部割込みが許可されていない状態 (ENIR:EN=0) では , 外部割込み要因の有無に関わらず外部割込み要因ビットがセッ トされる可能性があります。 • 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する外部割込み要因ビット (EIRR: ER) をクリアしてください。 <注意事項> • 外部割込み要因フラグビット (EIRR:ER) の値は , 対応する外部割込み要求許可ビット (ENIR:EN) が "1" に設定されている時のみ有効です。外部割込みが許可されていない状 態 (ENIR: EN=0) では , 外部割込み要因の有無にかかわらず外部要求フラグビットが セットされる可能性があります。 • 外部割込みを許可(ENIR:EN1)する直前に,対応する外部割込み要因フラグビット(EIRR:ER) をクリアしてください。 231 第 8 章 外部割込み制御部 8.2.3 外部割込み要求レベル設定レジスタ (ELVR) ELVR は要求検出の選択を行うレジスタです。 ■ 外部割込み要求レベル設定レジスタ (ELVR) のビット構成 外部割込み要求レベル設定レジスタのビット構成は , 以下のとおりです。 ELVR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 各割込みチャネルに 2 ビットずつが割り当てられていて , 以下のような設定になりま す。 要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな らば該当するビットは再びセットされます。 表 8.2-1 に , ELVR 割当てを示します。 表 8.2-1 ELVR 割当て 動 作 LBx LAx 00 "L" レベルで要求あり [ 初期値 ] 01 "H" レベルで要求あり 10 立上りエッジで要求あり 11 立下りエッジで要求あり ストップモードでの使用は , ストップモードで入力可能な端子でのみ使用可能です。ス トップモード時に入力遮断される端子は , 入力がマスクされ , CMOS/Automotive 選択時 は "L" レベルが , TTL 選択時は "H" レベルが内部に伝わるため , 外部割込み設定レジス タ (ELVR) の設定によっては外部割込み要因レジスタ EIRR の ERn ビットが外部から の入力に関係なく "1" にセットされることがあります。 232 第 8 章 外部割込み制御部 8.3 外部割込み制御部の動作説明 ここでは , 外部割込み制御部の動作について説明します。 ■ 外部割込みの動作 要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要 求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を発 生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本 リソースからの割込みが最も優先順位が高かったときに , 該当する割込みが発生しま す。 図 8.3-1 に , 外部割込みの動作を示します。 図 8.3-1 外部割込みの動作 CPU 割込みコントローラ 外部割込み リソース 要求 ELVR ENIR IL ICR y y EIRR CMP CMP ICR X X ILM 要因 ■ 外部割込みの動作手順 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。 3. 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。 4. 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。 5. 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアにする。 6. 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。 ただし , 5. と 6. は 16 ビットデータによる同時書込みが可能です。 本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態 に設定する必要があります。また , 許可レジスタをイネーブル状態にする前に必ず要因 レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態 時に誤って割込み要因が起こってしまうことを避けるためです。 233 第 8 章 外部割込み制御部 ■ 外部割込み要求レベル 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は 最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要とします。 また割込み入力端子がアクティブレベルを保持し続けている限りは , 外部割込み要因レ ジスタ (ENIR) をクリアしても , 割込みコントローラへの割込み要求は発生し続けます。 要求入力レベルがレベル設定のとき , 外部より要求入力が入ってその後取り下げられ ても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティブ のままです。 割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり ます。 図 8.3-2 にレベル設定時の要因保持回路のクリアについて示します。 図 8.3-2 レベル設定時の要因保持回路のクリア 割込み入力 レベル検出 要因 F/F (要因保持回路) 許可ゲート 割込み コントローラ クリアしない限り要因を保持し続ける 図 8.3-3 に , 割込み許可時の割込み要因と割込みコントローラへの割込み要求を示しま す。 図 8.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求 "H"レベル 割込み入力 割込みコントローラ への割込み要求 要因 F/Fのクリアによってinactiveとなる 234 第 8 章 外部割込み制御部 ■ 外部割込みを使用した STOP 状態からの復帰時における注意事項 STOP 状態時に , INT 端子へ最初に入力された外部割込み信号は非同期で入力され , STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち 時間が経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない 期間が存在します ( 図 8.3-4 の b + c + d 期間 )。STOP 解除後の外部入力信号を内部ク ロックに同期させるため , クロックが安定していない期間内は , その割込み要因を保持 できないためです。 STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に外部割込み 信号を入力してください。 図 8.3-4 STOP 状態からの外部割込みによる復帰動作のシーケンス INT1 INT0 内部STOP 12µs "H" "L" Regulator 内部動作(RUN) 命令実行(run) X0 内部クロック 割込みフラグクリア INTR0 INTE0 "1"(STOPモードに遷移前にイネーブルへ設定) INTR1 INTE1 “1”(STOPモードに遷移前にイネーブルへ設定) (a)STOP (b) レギュレータ安定待ち時間 (d) 発振安定待ち時間 (e)RUN (c)振動子の発振時間 235 第 8 章 外部割込み制御部 ■ STOP 状態からの復帰動作 現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。 ● STOP 遷移前の処理 外部割込み経路の設定 デバイスが STOP 状態に遷移する前に STOP 状態を解除するための外部割込み入力 経路を設定しておく必要があります。これは PFR レジスタ (Port Function Register) で設定を行います。通常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態 ですので意識する必要はありません。しかし , STOP 状態では PFR レジスタ値によ り入力パスが制御されています。 外部割込みの入力 STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状 態となっています。この割込み信号が有効になると直ちに内部 STOP 信号を立ち下 げる動作が行われます。同時に外部割込み回路では , ほかのレベル割込み入力の同 期化を行うように切り換わります。 ● レギュレータ安定待ち時間 内部 STOP 信号が立ち下ると STOP 時のレギュレータから RUN 時のレギュレータ へ切り換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前 に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間 を確保しています。この期間はクロックが停止しています。 ● 振動子の発振時間 レギュレータ安定待ち時間の終了後 , クロックの発振が開始されます。振動子の発 振時間は使用される振動子により異なります。 ● 発振安定待ち時間 振動子の発振時間後にデバイス内部で発振安定待ち時間が確保されます。発振安定 待ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安 定待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が 開始されるとともに , STOP 状態からの復帰要因以外の外部割込み要因が受付け可 能になります。 236 第9章 REALOS 関連ハード REALOS 関連ハードは , リアルタイム OS により 使用されます。したがって , REALOS を使用する 場合にはユーザプログラムで使用することはでき ません。 REALOS 関連ハードの遅延割込みモジュールと ビットサーチモジュールについて , 概要 , レジスタ の構成 / 機能 , および動作を説明します。 9.1 遅延割込みモジュール 9.2 ビットサーチモジュール 237 第 9 章 REALOS 関連ハード 9.1 遅延割込みモジュール 遅延割込みモジュールの概要 , レジスタの構成 / 機能 , および動作について説明しま す。 ■ 遅延割込みモジュールの概要 遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールです。 本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取 消しを行うことができます。 238 第 9 章 REALOS 関連ハード 9.1.1 遅延割込みモジュールの概要 遅延割込みモジュールのレジスタ一覧 , 詳細 , および動作について説明します。 ■ 遅延割込みモジュールのレジスタ一覧 遅延割込みモジュールのレジスタ一覧は , 以下のとおりです。 DICR アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 000044H − R/W − R/W − R/W − R/W − R/W − R/W − R/W DLYI R/W R/W :リード / ライト可能 ■ 遅延割込みモジュールのブロックダイヤグラム 図 9.1-1 に , 遅延割込みモジュールのブロックダイヤグラムを示します。 図 9.1-1 遅延割込みモジュールのブロックダイヤグラム R-bus DLYI 割込み要求 239 第 9 章 REALOS 関連ハード 9.1.2 遅延割込みモジュールのレジスタ 遅延割込みモジュールのレジスタの構成および機能について説明します。 ■ DICR ( 遅延割込みモジュールレジスタ ) DICR は , 遅延割込みを制御するレジスタです。 遅延割込みモジュールレジスタ (DICR) のビット構成は , 以下のとおりです。 DICR アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000044H − R/W − R/W − R/W − R/W − R/W − R/W − R/W DLYI -------0B R/W R/W :リード / ライト可能 [bit0] DLYI DLYI 説明 0 遅延割込み要因の解除・要求なし [ 初期値 ] 1 遅延割込み要因の発生 本ビットにより , 該当する割込み要因の発生・解除を制御します。 240 第 9 章 REALOS 関連ハード 9.1.3 遅延割込みモジュールの動作説明 遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用するこ とにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことがで きます。 ■ 割込み番号 遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。 本品種では , 遅延割込みを , 割込み番号 63(3FH) に割り当てています。 ■ DICR の DLYI ビット このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き 込むことで , 遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。 241 第 9 章 REALOS 関連ハード 9.2 ビットサーチモジュール ビットサーチモジュールの概要 , レジスタの構成 / 機能 , および動作について説明し ます。 ■ ビットサーチモジュールの概要 ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0" または "1" または変化点を検索し , 検出したビット位置を返します。 242 第 9 章 REALOS 関連ハード 9.2.1 ビットサーチモジュールの概要 ビットサーチモジュールのレジスタの構成および機能について説明します。 ■ ビットサーチモジュールのレジスタ一覧 ビットサーチモジュールのレジスタ一覧は , 以下のとおりです。 bit31 bit0 アドレス:0003F0H BSD0 0 検出用データレジスタ アドレス:0003F4H BSD1 1 検出用データレジスタ アドレス:0003F8H BSDC 変化点検用データレジスタ アドレス:0003FCH BSRR 検出結果レジスタ ■ ビットサーチモジュールのブロックダイヤグラム 図 9.2-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。 図 9.2-1 ビットサーチモジュールのブロックダイヤグラム D-bus 入力ラッチ アドレスデコーダ 検出モード 1検出データ化 ビットサーチ回路 検索結果 243 第 9 章 REALOS 関連ハード 9.2.2 ビットサーチモジュールのレジスタ ビットサーチモジュールのレジスタの構成および機能について説明します。 ■ 0 検出用データレジスタ (BSD0) 書き込んだ値に対して , 0 検出を行います。 0 検出用データレジスタ (BSD0) のレジスタ構成は , 以下のとおりです。 アドレス bit31 bit0 0003F0H リード / ライト → W 初期値 →不定 リセットによる初期値は不定です。読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください ) 。 ■ 1 検出用データレジスタ (BSD1) 1 検出用データレジスタ (BSD1) のレジスタ構成は , 以下のとおりです。 アドレス bit31 bit0 0003F4H リード / ライト → R/W 初期値 →不定 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください ) 。 • 書込み時: 書き込んだ値に対して , "1" を検出します。 • 読出し時: ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する ときに使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー タレジスタのみ操作することで退避・復帰できます。 リセットによる初期値は不定です。 244 第 9 章 REALOS 関連ハード ■ 変化点検出用データレジスタ (BSDC) 書き込んだ値に対して , 変化点の検出を行います。 変化点検出用データレジスタ (BSDC) のレジスタ構成は , 以下のとおりです。 アドレス bit31 bit0 0003F8H リード / ライト → W 初期値 →不定 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください ) 。 ■ 検出結果レジスタ (BSRR) 0 検出 , 1 検出 , または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ れます。 検出結果レジスタ (BSRR) のレジスタ構成は , 以下のとおりです。 アドレス bit31 bit0 0003FCH リード / ライト → R 初期値 →不定 245 第 9 章 REALOS 関連ハード 9.2.3 ビットサーチモジュールの動作説明 ビットサーチモジュールの動作について説明します。 ■ 0 検出 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と , 返す数 値の関係は , 表 9.2-1 を参照してください。 "0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ) , 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 読出し値 (10 進 ) 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 ■ 1 検出 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と返す値と の関係は , 表 9.2-1 のとおりです。 "1" が存在しないとき ( すなわち 00000000H という数値のとき ) , 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 246 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 第 9 章 REALOS 関連ハード ■ 変化点検出 変化点検出用データレジスタに書き込まれたデータを , bit30 から LSB へスキャンし , MSB の値と比較します。 最初に MSB と異なる値を検出した位置を返します。検出結果は , 検出結果レジスタを 読み出すことで得られます。 検出した位置と返す値は , 表 9.2-1 の示すとおりです。 変化点が存在しないときは , 32 を返します。変化点検出では , 結果として "0" を返すこ とはありません。 【実行例】 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 表 9.2-1 に , ビット位置と返す値 (10 進 ) を示します。 表 9.2-1 ビット位置と返す値 (10 進 ) 検出した 返す値 検出した 返す値 検出した 返す値 検出した 返す値 ビット位置 ビット位置 ビット位置 ビット位置 31 0 23 8 15 16 7 24 30 1 22 9 14 17 6 25 29 2 21 10 13 18 5 26 28 3 20 11 12 19 4 27 27 4 19 12 11 20 3 28 26 5 18 13 10 21 2 29 25 6 17 14 9 22 1 30 24 7 16 15 8 23 0 31 存在しない 32 247 第 9 章 REALOS 関連ハード ■ 退避・復帰の処理 割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ い。 1. 1 検出用データレジスタを読出し , この内容を保存 ( 退避 ) 2. ビットサーチモジュールを使用 3. 1) で退避したデータを 1 検出用データレジスタに書込み ( 復帰 ) 以上の操作により , 次に検出結果レジスタを読み出したときに得られる値は , 1) 以前に , ビットサーチモジュールに書き込まれた内容に応じたものとなります。 最後に書き込まれたデータレジスタが 0 検出用または変化点検出用であっても , 上記の 手順で正しく元に戻ります。 248 第 10 章 DMAC (DMA コントローラ ) DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について説明します。 10.1 概要 10.2 レジスタ詳細説明 10.3 動作説明 10.4 動作フロー 10.5 データパス 249 第 10 章 DMAC (DMA コントローラ ) 10.1 概要 本モジュールは , FR ファミリにて DMA(Direct Memory Access) 転送を実現するた めのモジュールです。 本モジュールの制御による DMA 転送により , CPU を介さずに各種データ転送を高 速に行うことが可能となり , システムのパフォーマンスを増加させます。 ■ DMAC のハードウェア構成 本モジュールは , 主に以下のものより構成されます。 • 独立した DMA チャネル× 5 チャネル • 5 チャネル独立アクセス制御回路 • 20 ビットアドレスレジスタ ( リロード指定可 : ch.0 ∼ ch.3) • 24 ビットアドレスレジスタ ( リロード指定可 : ch.4) • 16 ビット転送回数レジスタ ( リロード指定可 : 各チャネル 1 本 ) • 4 ビットブロック回数レジスタ ( 各チャネル 1 本 ) • 2 サイクル転送 ■ DMAC の主要機能 本モジュールによるデータ転送には , 主に以下のような機能があります。 ● 複数チャネルの独立したデータ転送が可能 (5 チャネル ) • 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) • ch.0, ch.1 間にて順位回転が可能 • DMAC 起動要因 - 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込みを含む ) - ソフトウェア要求 ( レジスタ書込み ) • 転送モード - バースト転送 / ステップ転送 / ブロック転送 - アドレッシングモード:20 ビット (24 ビット ) アドレス指定 ( 増加 / 減少 / 固定:アドレス増減幅は± 1, 2, 4 固定 ) - データの種類:バイト / ハーフワード / ワード長 - シングルショット / リロード選択可能 250 第 10 章 DMAC (DMA コントローラ ) ■ DMAC のレジスタ概要 図 10.1-1 に , DMAC のレジスタ概要を示します。 図 10.1-1 DMAC のレジスタ概要 ch.0 コントロール / ステータス レジスタ A RST 時 アドレス bit 31 DMACA0 000200H ch.0 コントロール / ステータス レジスタ B DMACB0 000204H 00000000 [R/W] ch.1 コントロール / ステータス レジスタ A DMACA1 000208H 00000000 [R/W] ch.1 コントロール / ステータス レジスタ B DMACB1 00020CH 00000000 [R/W] ch.2 コントロール / ステータス レジスタ A DMACA2 000210H 00000000 [R/W] ch.2 コントロール / ステータス レジスタ B DMACB2 000214H 00000000 [R/W] ch.3 コントロール / ステータス レジスタ A DMACA3 000218H 00000000 [R/W] ch.3 コントロール / ステータス レジスタ B DMACB3 00021CH 00000000 [R/W] ch.4 コントロール / ステータス レジスタ A DMACA4 000220H 00000000 [R/W] ch.4 コントロール / ステータス レジスタ B DMACB4 000224H 00000000 [R/W] 全体制御レジスタ A DMACR 000240H 00000000 [R/W] ch.0 DMASA0 001000H 00000000 転送元アドレスレジスタ 24 23 16 15 8 7 0 00000000 [R/W] [R/W] ch.0 転送元アドレスレジスタ DMADA0 001004H 00000000 [R/W] ch.1 転送元アドレスレジスタ DMASA1 001008H 00000000 [R/W] ch.1 転送元アドレスレジスタ DMADA1 00100CH 00000000 [R/W] ch.2 転送元アドレスレジスタ DMASA2 001010H 00000000 [R/W] ch.2 転送元アドレスレジスタ DMADA2 001014H 00000000 [R/W] ch.3 転送元アドレスレジスタ DMASA3 001018H 00000000 [R/W] ch.3 転送元アドレスレジスタ DMADA3 00101CH 00000000 [R/W] ch.4 転送元アドレスレジスタ DMASA4 001020H 00000000 [R/W] ch.4 転送元アドレスレジスタ DMADA4 001024H 00000000 [R/W] 251 第 10 章 DMAC (DMA コントローラ ) ■ DMAC のブロックダイヤグラム 図 10.1-2 に , DMAC のブロックダイヤグラムを示します。 図 10.1-2 DMAC のブロックダイヤグラム セレクタ ライトバック カウンタ バスコントローラヘ DMA転送要求 DTC2段レジスタ DTCR バッファ DMA起動要因 選択回路 & 要求受付け 制御 ペリフェラル起動要求/停止入力 カウンタ DSS[3:0] バッファ Read Write リード/ライト 制御 優先度回路 割込みコントローラへ IRQ[4:0] 周辺割込みクリア MCLREQ ERIR,EDIR セレクタ BLKレジスタ TYPE.MOD,WS 252 DSAD2段レジスタ SADM, SASZ[7:0] SADR DDAD2段レジスタ DADM,DASZ[7:0] DADR ライトバック ライトバック X-bus バス制御部 DMAコントロール セレクタ カウンタバッファ DDN0レジスタ セレクタ アドレス カウンタバッファ アクセス アドレスカウンタ DDNO バス制御部 バスコン トローラ ヘ セレクタ 状態遷移回路 第 10 章 DMAC (DMA コントローラ ) 10.2 レジスタ詳細説明 ここでは , DMAC の各レジスタの詳細について説明します。 ■ レジスタ設定時の注意 本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。 * マークは DMA 転送中に設定すると動作に影響するビットです。このビットの書換え は DMA 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。 DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定 した場合は , 起動許可後に設定が有効になります。 DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000 または DMACA:PAUS=1 のと き ) で設定した場合は , 一時停止解除後に設定が有効になります。 253 第 10 章 DMAC (DMA コントローラ ) 10.2.1 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A DMACA0 ∼ DMACA4 は DMAC 各チャネルの動作制御を行うレジスタで , チャネル ごとに独立して存在します。 ■ DMACA0 ∼ DMACA4 のビット機能 DMACA0 ∼ DMACA4 の各ビット機能は , 以下に示すとおりです。 bit 31 30 29 28 27 DENB PAUS STRG bit 15 14 13 26 25 24 23 IS[4:0] 11 11 10 22 21 20 19 reserved 9 8 7 6 5 18 17 16 BLK[3:0] 4 3 2 1 0 DTC[15:0] ( 初期値:00000000_00000000_00000000_00000000B) [bit31] DENB(Dma ENaBle):DMA 動作許可ビット 各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。 起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま す。起動許可されていないチャネルに対して発生した転送要求は , すべて無効とな ります。 起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" になり , 転送は停止します。 本ビットに "0" を書き込むと強制停止しますが , 必ず PAUS ビット [DMACA:bit30] で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一時停止 しないで強制停止した場合は DMA は停止しますが転送データは保証されません。 停止の確認は DSS2 ∼ DSS0 ビット (bit18 ∼ bit16:DMACB) で行ってください。 DENB 機 能 0 対応チャネル DMA 動作禁止 [ 初期値 ] 1 対応チャネル DMA 動作許可 • リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。 • 読出しおよび書込みが可能です。 DMAC 全体制御レジスタ DMACR の bit31:DMAE ビットにより , 全チャネルの動作 が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を維持しま す。また , 本ビットにより動作が許可されている状態にて前記ビットにより動作が 禁止された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。 254 第 10 章 DMAC (DMA コントローラ ) [bit30] PAUS(PAUSe):一時停止指示 対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません (DMA が停 止中は DSS ビットが "1xx" になります ) 。 起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま す。 本ビットがセットされている間に新たに発生した転送要求は受け付けられますが , 本ビットをクリアしないと転送は開始しません (「10.3.10 転送要求の受付けと転 送」を参照 ) 。 PAUS 機 能 0 対応チャネル DMA 動作許可 [ 初期値 ] 1 対応チャネル DMA 一時停止 • リセット時 :"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit29] STRG(Software TRiGger):転送要求 対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開 始します。 ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操作は無効と なります。 <参考> DMAEビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合, 転送要求 は有効となり , 転送を開始します。 また , PAUS ビットへの "1" 書込みと同時である場合 , 転 送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しません。 STRG 機 能 0 無効 [ 初期値 ] 1 DMA 起動要求 • リセット時 :"0" に初期化されます。 • 読出し値は常に "0" となります。 • 書込み値は "1" のみ有効で ,"0" は動作に影響を与えません。 255 第 10 章 DMAC (DMA コントローラ ) [bit28 ∼ bit24] IS4 ∼ 0(Input Select):転送要因選択 転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ トウェア転送要求は本設定に関わらず有効となります。 IS 機 能 00000 ハードウェア 00001 ↓ 01111 設定禁止 ↓ 設定禁止 10000 LIN-UART0 ( 受信完了 ) 10001 LIN-UART1 ( 受信完了 ) 10010 LIN-UART2 ( 受信完了 ) 10011 LIN-UART0 ( 送信完了 ) 10100 LIN-UART1 ( 送信完了 ) 10101 LIN-UART2 ( 送信完了 ) 10110 外部割込み 0 10111 外部割込み 1 11000 リロードタイマ 0 11001 リロードタイマ 1 11010 リロードタイマ 2 11011 なし 11100 なし 11101 なし 11110 A/D コンバータ 11111 なし • リセット時 :00000B に初期化されます。 • 読出しおよび書込みが可能です。 周辺機能の割込みによるDMA起動を設定した場合(IS=1xxxxB),選択した機能はICR レジスタで割込みを禁止状態にしてください。 また , 周辺機能の割込みによる DMA 起動を設定した状態で , ソフトウェア転送要求 により DMA 転送を起動すると , 転送終了後 , 該当する周辺に対して要因クリアを行 います。このため , 本来の転送要求をクリアしてしまう可能性がありますので , 周 辺機能の割込みによる DMA 転送を設定した状態では , ソフトウェア転送要求によ る起動を行わないでください。 256 第 10 章 DMAC (DMA コントローラ ) [bit23 ∼ bit20] (Reserved):未使用ビット 読出し値は "0000B" 固定です。書込みは無効となります。 [bit19 ∼ bit16] BLK3 ∼ BLK0(BLocK size):ブロックサイズ指定 対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設 定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰り返し 回数 ) となります。 ブロック転送を行わない場合は 01H ( サイズ 1) を設定してください。 BLK XXXX 機 能 対応チャネルのブロックサイズ指定 • リセット時 :"0000B" に初期化されます。 • 読出しおよび書込みが可能です。 • 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。 • 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。 [bit15 ∼ bit0] DTC(Dma Terminal Count register):転送回数レジスタ 転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。 すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設 定値をレジスタに戻します。 DTC XXXX 機 能 対応チャネルの転送回数指定 DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 ) 。DMA の転 送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了 します。そのため DMA 動作中の転送回数指定値を読み出すことはできません。 • リセット時 : "00000000_00000000B" に初期化されます。 • 読出しおよび書込みが可能です。DTC のアクセスは , 必ずハーフワード長または ワード長にてアクセスしてください。 • 読出し時の値は , カウント値となります。リロード値の読出しはできません。 257 第 10 章 DMAC (DMA コントローラ ) 10.2.2 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B DMACB0 ∼ DMACB4 は , DMAC 各チャネルの動作制御を行うレジスタで , チャネ ルごとに独立して存在します。 ■ DMACB0 ∼ DMACB4 のビット機能 DMACB0 ∼ DMACB4 の各ビット機能は , 以下に示すとおりです。 bit bit 31 30 29 28 TYPE[1:0] MOD[1:0] 15 13 14 11 27 26 WS[1:0] 11 10 25 24 23 22 21 20 19 18 SADM DADM DTCR SADR DADR ERIE EDIE 9 8 7 6 5 SASZ[7:0] 4 3 17 16 DSS[2:0] 2 1 0 DASZ[7:0] ( 初期値:00000000_00000000_00000000_00000000B) [bit31, bit30] TYPE(TYPE):転送タイプ設定 対応チャネルの動作タイプを以下のように設定します。 2 サイクル転送モード: 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設定して読出し動作と書 込み動作を転送回数分繰り返して転送するモード。 TYPE 機 能 00 2 サイクル 転送 [ 初期値 ] 01 設定禁止 10 設定禁止 11 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出しおよび書込みが可能です。 • 必ず "00B" に設定してください。 [bit29, bit28] MOD(MODe):転送モード設定 対応チャネルの動作モードを以下のように設定します。 MOD 機 能 00 ブロック / ステップ転送モード [ 初期値 ] 01 バースト転送モード 10 設定禁止 11 設定禁止 • リセット時 : "00B" 初期化されます。 • 読出しおよび書込みが可能です。 258 第 10 章 DMAC (DMA コントローラ ) [bit27, bit26] WS(Word Size):転送データ幅選択 対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で 指定回数分の転送を行います。 WS 機 能 00 バイト単位で転送 [ 初期値 ] 01 ハーフワード単位で転送 10 ワード幅単位で転送 11 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出しおよび書込みが可能です。 [bit25] SADM(Source-ADdr, count-Mode select) :転送元アドレスカウントモード指定 対応するチャネルの転送元アドレスの , 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) にしたがって , 1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス レジスタ (DMASA) に書き込まれます。 そのため , DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン ト幅 (SASZ, DASZ) を "0" としてください。 SADM 機 能 0 転送元アドレスは増加します。[ 初期値 ] 1 転送元アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit24] DADM(Destination-ADdr, Count-Mode select) :転送先アドレスカウントモード指定 対応するチャネルの転送先アドレスの , 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス レジスタ (DMADA) に書き込まれます。 そのため , DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン ト幅 (SASZ, DASZ) を "0" としてください。 259 第 10 章 DMAC (DMA コントローラ ) DADM 機 能 0 転送先アドレスは増加します。[ 初期値 ] 1 転送先アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit23] DTCR(DTC-reg, Reload):転送回数レジスタリロード指定 対応するチャネルの転送回数レジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値 を初期設定値に戻して停止し , 転送要求 (STRG または , IS 設定による起動要求 ) 待 ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません ) 。 DENB=0, または DMAE=0 を設定すると強制停止します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 DENB ビットはクリアされます。 DTCR 機 能 0 転送回数レジスタリロードを禁止 [ 初期値 ] 1 転送回数レジスタリロードを許可 • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit22] SADR(Source-ADdr.-reg, Reload) :転送元アドレスレジスタリロード指定 対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス レジスタ値を初期設定値に戻します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。 本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し ている場合は , 増加したアドレスとなります ) 。 SADR 機 能 0 転送元アドレスレジスタリロード禁止 [ 初期値 ] 1 転送元アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 260 第 10 章 DMAC (DMA コントローラ ) [bit21] DADR(Dest.-ADdr.-reg, Reload) :転送先アドレスレジスタリロード指定 対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス レジスタ値を初期設定値に戻します。 その他 , 機能の詳細は bit22:SADR の内容と等価になります。 DADR 機 能 0 転送先アドレスレジスタリロード禁止 [ 初期値 ] 1 転送先アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit20] ERIE(ERror Interrupt Enable):エラー割込み出力許可 エラー発生による終了時の割込み発生を制御します。発生したエラーの内容は DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割込みが発生するのではなく , 特定の 終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼ DSS0 ビット の説明を参照してください ) 。 ERIE 機 能 0 エラー割込み要求出力禁止 [ 初期値 ] 1 エラー割込み要求出力許可 • リセット時 :"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit19] EDIE(EnD Interrupt Enable):終了割込み出力許可 正常終了時の割込み発生を制御します。 EDIE 機 能 0 終了割込み要求出力禁止 [ 初期値 ] 1 終了割込み要求出力許可 • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 261 第 10 章 DMAC (DMA コントローラ ) [bit18 ∼ bit16] DSS2 ∼ DSS0(Dma Stop Status):転送停止要因表示 対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー ド ) を表示します。 終了コードの内容は以下のとおりです。 DSS 機 能 割込み発生 000 初期値 なし x01 ― なし x10 転送停止要求 エラー x11 正常終了 終了 1xx DMA 一時停止中 (DMAH ビット , PAUS ビット , 割込み など ) なし 転送停止要求は , 周辺回路からの要求を使用した場合のみセットされます。 なお「割込み発生」欄は , 発生可能な割込み要求の種類を示します。 • リセット時 : "000B" に初期化されます。 • "000B" を書き込むことによりクリアされます。 • 読出しおよび書込みが可能ですが , 本ビットへの書込みは "000B" のみ有効となり ます。 [bit15 ∼ bit8] SASZ(Source Addr count SiZe) :転送元アドレスカウントサイズ指定 対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送元アドレスカウントモード (SADM) の指定に従います。 SASZ 機 能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時 : "00000000B" に初期化されます。 • 読出しおよび書込みが可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し てください。 262 第 10 章 DMAC (DMA コントローラ ) [bit7 ∼ bit0] DASZ(Des Addr count SiZe): 転送先アドレスカウントサイズ指定 対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送先アドレスカウントモード (DADM) の指定に従います。 DASZ 機 能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時 : "00000000B" に初期化されます。 • 読出しおよび書込みが可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し てください。 263 第 10 章 DMAC (DMA コントローラ ) 10.2.3 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ DMASA0 ∼ DMASA4/DMADA0 ∼ DMASA4 は , DMAC 各チャネルの動作制御を行 うレジスタで , チャネルごとに独立して存在します。 ■ DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 のビット機能 DMASA0∼DMASA4/DMADA0∼DMADA4の各ビット機能は, 以下に示すとおりです。 bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 6 5 4 3 2 1 0 DMASA[31:16] bit 15 14 13 11 11 10 9 8 7 DMASA[15:0] ( 初期値:00000000_00000000_00000000_00000000B) bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 6 5 4 3 2 1 0 DMADA[31:16] bit 15 14 13 11 11 10 9 8 7 DMADA[15:0] ( 初期値:00000000_00000000_00000000_00000000B) 転送元 / 先アドレスを格納するレジスタ群です。ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24 ビット長で構成されています。 [bit31 ∼ bit0] DMASA(DMA Source Addr):転送元アドレス設定 転送元アドレスの設定を行います。 [bit31 ∼ bit0] DMADA(DMA Destination Addr):転送先アドレス設定 転送先アドレスの設定を行います。 DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ ンタバッファに格納して 1 転送ごとに DMACA レジスタの設定に従いアドレスカウ ントします。DMA の転送終了時にカウンタバッファの内容を本レジスタにライト バックして DMA は終了します。そのため DMA 動作中のアドレスカウンタ値を読 み出すことはできません。 すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 先アドレ スレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自動 的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには影響 を与えません。 • リセット時 : "00000000_00000000_00000000_00000000B" に初期化されます。 • 読出しおよび書込みが可能です。本レジスタは , 必ず 32 ビットデータでアクセ スしてください。 264 第 10 章 DMAC (DMA コントローラ ) • 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア ドレス値となります。リロード値の読出しはできません。そのため転送アドレス をリアルタイムで読み出すことはできません。 • 存在しない上位ビットには , "0" を設定してください。 <注意事項> 本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ に DMA 転送を行うことはできません。 265 第 10 章 DMAC (DMA コントローラ ) 10.2.4 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御 レジスタ DMACR は , DMAC5 チャネル分全体の動作制御を行うレジスタです。本レジスタは 必ずバイト長でアクセスしてください。 ■ DMACR のビット機能 DMACR の各ビット機能は , 以下に示すとおりです。 bit bit 31 29 28 − − PMO1 15 14 13 11 11 10 9 − − − − − − − DMAE 30 27 26 25 24 23 22 21 20 19 18 17 16 − − − − − − − − 8 7 6 5 4 3 2 1 0 − − − − − − − − − DMAH[3:0] ( 初期値:0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXXB) [bit31] DMAE(DMA Enable):DMA 動作許可 DMA 全チャネルの動作制御を行います。 本ビットにより DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止の設定 や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。転送中であった チャネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて , 各 チャネルに対して行われる起動操作は , すべて無効となります。 本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作 が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対 する起動は行われません。 本ビットに "0" を書き込むと強制停止しますが, 必ず DMAH3 ∼ DMAH0ビット (bit27 ∼ bit24:DMACR) で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。 一時停止しないで強制停止した場合はDMAは停止しますが転送データは保証されませ ん。停止の確認は DSS2 ∼ DSS0 ビット (bit18 ∼ bit16:DMACB) で行ってください。 DMAE 機 能 0 全チャネル DMA 動作禁止 [ 初期値 ] 1 全チャネル DMA 動作許可 • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 266 第 10 章 DMAC (DMA コントローラ ) [bit28] PM01(Priority Mode ch.0, ch.1 robin): チャネル優先度回転 ch.0, ch.1 の優先度を転送ごとに順位を回転させるときに設定します。 PM01 機 能 0 優先順位固定 (ch.0 > ch.1) [ 初期値 ] 1 優先順位回転 (ch.1 > ch.0) • リセット時 : "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit27 ∼ bit24] DMAH(DMA Halt):DMA 一時停止 DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本 ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。 起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと なります。 本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送 を開始します。 DMAH 0000 0000 以外 機 能 全チャネル DMA 動作許可 [ 初期値 ] 全チャネル DMA 一時停止 • リセット時 : "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 [bit30, bit29, bit23 ∼ bit0] Reserved:未使用ビット 読出し値は不定です。 267 第 10 章 DMAC (DMA コントローラ ) 10.3 動作説明 DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など について説明します。 ■ DMAC の概要 本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー タ転送を制御する多機能 DMA コントローラです。 268 第 10 章 DMAC (DMA コントローラ ) 10.3.1 動作概要 DMAC の動作概要を説明します。 ■ DMAC の主要動作 各転送チャネルは , 独立に各種機能を設定します。 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いません。 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント ローラの制御によりバス権を取得して転送を開始します。転送はチャネルごとに独立 に設定されたモード設定に従ったシーケンスで行われます。 ■ 転送モード DMA の各チャネルは , それぞれの DMACB レジスタの MOD1, MOD0 ビットで設定さ れた転送モードに従って転送動作を行います。 ● ブロック / ステップ転送 1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受け付 けられるまでは DMA はバスコントローラに対し転送要求を停止します。 1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK3 ∼ BLK0) ● バースト転送 1 回の転送要求にて指定転送回数終了まで連続して転送を行います。 指定転送回数 : ブロックサイズ分×転送回数分 (DMACA:BLK3 ∼ BLK0] × DMACA:DTC15 ∼ DTC0]) ■ 転送タイプ ● 2 サイクル転送 ( 通常転送 ) DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行い ます。 転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへデー タを書き込みます。 269 第 10 章 DMAC (DMA コントローラ ) ■ 転送アドレス アドレッシングには以下のようなものがあり , 各チャネル転送元 / 転送先ごとに独立に 設定します。 ● 2 サイクル転送でのアドレスの指定 あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を アドレスとしてアクセスします。 転送要求を受け付けた後 , DMA はレジスタからアドレスを一時記憶バッファに格納し て転送を開始します。 1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回のアクセスアドレスを生成 ( 加算 / 減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファ の内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバック されます。 そのためアドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか更 新されませんので転送中のアドレスをリアルタイムに知ることはできません。 ■ 転送回数と転送終了 ● 転送回数 1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント ( − 1) します。転送 回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止また は再起動 (1) します。 転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新 されません。 転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。 ● 転送終了 転送終了要因には , 以下のようなものがあり , 終了時は終了コードとして要因が表示さ れます (DMACB:DSS2 ∼ DSS0)。 • 指定転送回数の終了 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) →正常終了 • 周辺回路からの転送停止要求の発生→エラー • アドレスエラーの発生→エラー • リセットの発生→リセット 各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを 発生可能です。 270 第 10 章 DMAC (DMA コントローラ ) 転送要求の設定 10.3.2 DMA 転送を起動する転送要求は , 以下の 2 種類があります。 • 内蔵周辺要求 • ソフトウェア要求 ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用することが できます。 ■ 内蔵周辺要求 内蔵周辺回路の割込み発生により , 転送要求を発生します。 チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します (DMACA:IS4 ∼ IS0=1xxxxB)。 <注意事項> 転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン トローラの設定を割込み禁止に設定してください (ICR レジスタ ) 。 ■ ソフトウェア要求 レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。 上記の転送要求とは独立で , 常に使用することができます。 起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに 対し DMA 転送要求を出力し , 転送を開始します。 271 第 10 章 DMAC (DMA コントローラ ) 10.3.3 転送シーケンス チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転 送モードを独立して設定することができます (DMACB:TYPE1, TYPE0, MOD1, MOD0 の設定 ) 。 ■ 転送シーケンスの選択 レジスタの設定により , 以下のシーケンスが選択可能です。 • バースト 2 サイクル転送 • ブロック / ステップ 2 サイクル転送 ■ バースト 2 サイクル転送 1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転 送元 / 転送先アドレスは 20 ビット領域 (ch.0 ∼ ch.3) または 24 ビット領域 (ch.4) 指定可 能です。 転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。 表 10.3-1 にバースト 2 サイクル転送の指定可能転送アドレスを示します。 表 10.3-1 バースト 2 サイクル転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 20(24) ビット全領域指定可能 → 20(24) ビット全領域指定可能 〔バースト転送の特徴〕 • 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送を 行います。転送回数はブロックサイズ分×転送回数分になります (DMACA: BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0)。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求 を受け付けます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転 送単位の境目でチャネルを切り換え , そのチャネルの転送要求がクリアされるまで 復帰しません。 272 第 10 章 DMAC (DMA コントローラ ) ■ ステップ / ブロック転送 2 サイクル転送 ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場 合は転送元 / 転送先アドレスは 20 ビット領域 (ch.0 ∼ ch.3) または 24 ビット領域 (ch.4) 指定可能です。 表 10.3-2にステップ/ブロック転送2サイクル転送の指定可能転送アドレスを示します。 表 10.3-2 ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 20(24) ビット全領域指定可能 → 20(24) ビット全領域指定可能 ■ ステップ転送 ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。 〔ステップ転送の特徴〕 • 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を 停止します ( バスコントローラに対し DMA 転送要求を取り下げる ) 。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止後 に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優先順 位は , 転送要求が同時に発生した場合のみ意味を持ちます。 ■ ブロック転送 ブロックサイズを "1" 以外を設定すると , ブロック転送シーケンスとなります。 [ ブロック転送の特徴 ] 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ プ転送と全く同じ動作となります。 273 第 10 章 DMAC (DMA コントローラ ) 10.3.4 DMA 転送全般 DMA の転送動作について説明します。 ■ ブロックサイズ 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) の データの集合となります。 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転送 単位はブロックサイズ指定値分の転送サイクル数より構成されることになります。 転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時停止 要求が発生した場合において, ブロック転送時においても1転送単位の境界にならない と停止しません。これにより分割・一時停止を希望しないデータブロックのデータ保 護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させる原因ともな ります。 リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは保 証されません。 ■ リロード動作 本モジュールでは , チャネルごとに , 以下の 3 種類のリロード機能の設定が可能です。 (1) 転送回数レジスタリロード機能 指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して転送要 求待ちします。 全転送シーケンスを繰り返し行う際に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が 0 のままと なり , 以降の転送は行われません。 (2) 転送元アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定しま す。 転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が 終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 (3) 転送先アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定しま す。 転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。 ( 以下 (2) と同じ ) 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了後の 再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。 〔動作モードとリロード動作の特殊な例〕 バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となると リロード後いったん転送を中断し , 改めて転送要求入力が検出されるまで転送を行い ません。 274 第 10 章 DMAC (DMA コントローラ ) アドレッシングモード 10.3.5 各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。 ここでは , その指定方法について説明します。転送シーケンスによって設定してく ださい。 ■ アドレスレジスタ指定 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アドレ スを,転送先アドレス設定レジスタ(DMADA)には転送先アドレスを設定してください。 〔アドレスレジスタの特徴〕 • 20 ビット (ch.0 ∼ ch.3) または 24 ビット (ch.4) 長のレジスタです。 〔アドレスレジスタの機能〕 • 毎アクセス時に読み出され , アドレスバスへ放出されます。 • 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の アドレスにてアドレスレジスタを更新します。 • アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より 選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま す (DMACB:SASZ, DASZ)。 • 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終 アドレスにアドレス計算をした結果のアドレスが残されます。 • リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。 <参考> 20 ビットまたは 24 ビット長アドレス計算の結果オーバフロー / アンダフローが発生した 場合 , アドレスエラーとして検出され , そのチャネルの転送を中止します ( 終了コードに 関する項目を参照してください ) 。 <注意事項> • アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。 • DMAC により DMAC 自身のレジスタへの転送は行わないでください。 275 第 10 章 DMAC (DMA コントローラ ) 10.3.6 データの種類 1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。 • バイト • ハーフワード • ワード ■ アクセスアドレス DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ ス指定においてデータ長と一致しないアドレスが設定された場合 , 異なる下位ビット は無視されます。 • ワード: 実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バイトとなります。 • ハーフワード: 実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイトとなります。 • バイト: 実際のアクセスアドレスとアドレス指定が一致します。 転送元アドレスと転送先アドレスの下位ビットが一致しない場合 , 内部アドレスバス 上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記 の決まりに従ってアドレスが修正されてアクセスが行われます。 276 第 10 章 DMAC (DMA コントローラ ) 10.3.7 転送回数制御 転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回 数指定値は転送回数レジスタ (DMACA:DTC) に設定します。 ■ 転送回数レジスタとリロード動作 レジスタ値は転送開始時に一時記憶バッファへ格納され , 転送回数カウンタにより減 算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され , そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。 〔転送回数レジスタ群の特徴〕 • 各レジスタ 16 ビット長です。 • すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。 • レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。 〔リロード動作〕 • リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で す。 • 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。 • 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると共に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。 277 第 10 章 DMAC (DMA コントローラ ) 10.3.8 CPU 制御 DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発 行します。 バスコントローラはバス動作の切れ目で内部バス使用権を DMA に明け渡し , DMA 転送が開始されます。 ■ DMA 転送と割込み DMA 転送中に , NMI 要求 , または割込みコントローラの HRCL レジスタにて設定され たホールド抑止レベルより高いレベルの割込み要求が発生した場合には , DMAC は転 送単位 (1 ブロック ) の境界にてバスコントローラへの転送要求を一時取り下げ , 割込 み要求がクリアされるまでは転送を一時停止状態にします。この間転送要求は内部で 保持されます。割込み要求がクリアされた後に再度 DMAC はバスコントローラへ転送 要求を発行してバス使用権を取得し , DMA 転送を再開します。 割込みのレベルが HRCL レジスタに設定されたレベルより低い場合は , DMA 転送終了 まで割込みは受け付けられません。また , HRCL の設定値より低いレベルの割込み処理 動作中に DMA 転送要求があった場合は , 転送要求は受け付けられ , 転送終了まで割込 み処理動作は停止します。 デフォルトでは DMA 転送要求レベルは最弱です。すべての割込み要求に対して転送 を停止し , 割込み処理を優先させます。 ■ DMA 抑止 FR ファミリは DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転送 を中断して該当割込みルーチンへ分岐します。この機構は割込み要求がある限り有効 ですが , 割込み要因をクリアすると抑止機構が働かなくなり , 割込み処理ルーチン内で DMA 転送を再開します。 このため , DMA 転送を中断するレベルの割込み要因の処理ルーチン内で , 割込み要因 クリア後の DMA 再転送開始を抑止したいときは , DMA 抑止機能を使用します。 DMA 抑止機能は , DMA 全体制御レジスタの DMAH3 ∼ DMAH0 ビットに "0" 以外の 値を書くことで起動し , "0" を書くことで停止します。 本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込み 要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このようにす ると , 以降 , DMA 転送は行いません。 割込み処理への対応を行った後 , 復帰する前に DMAH3 ∼ DMAH0 ビットの内容を 1 つ 減少させます。 もし , 多重割込みであれば DMAH3 ∼ DMAH0 ビットの内容は , まだ "0" にならないた め , 引き続いて DMA 転送は抑止されます。また , 多重割込みでなければ , DMAH3 ∼ DMAH0 ビットの内容は "0" になるため , その後すぐに DMA 要求を有効にします。 278 第 10 章 DMAC (DMA コントローラ ) <注意事項> • レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使 用することができません。 • DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてくださ い。 279 第 10 章 DMAC (DMA コントローラ ) 10.3.9 動作開始 DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動 作を許可しておく必要があります。 ■ 全チャネル動作許可 DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら かじめ全チャネルの動作を許可する必要があります。 許可されていない状態で行った起動設定 , および発生した転送要求はすべて無効とな ります。 ■ 転送起動 チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動さ れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送 動作が開始されます。 ■ 一時停止状態からの起動 チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転 送動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場 合は , 要求を受け付け , 保持します。 一時停止を解除した時点より転送を開始します。 280 第 10 章 DMAC (DMA コントローラ ) 10.3.10 転送要求の受付けと転送 転送要求の受付けと転送の内容を説明します。 ■ 転送要求の受付けと転送 起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。 周辺割込み起動を選択した場合は , 転送要求がクリアされるまで DMAC は転送を続け ますが , クリアされると 1 転送単位で転送を停止します ( 周辺割込み起動 ) 。 周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで行 うようにしてください。 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に受け 付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネルを決定 しています。 281 第 10 章 DMAC (DMA コントローラ ) 10.3.11 DMA による周辺割込みクリア 本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に 周辺割込みを選択したときに機能します (IS4 ∼ IS0=1xxxxB のとき )。 周辺割込みのクリアは設定された起動要因にのみ行われます。すなわち IS4 ∼ IS0 で設定された周辺機能のみクリアされます。 ■ DMA による割込みクリアの発生タイミング 転送モードにより発生するタイミングが違います (「10.4 動作フロー」を参照 ) 。 〔ブロック / ステップ転送〕 ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生し ます。 〔バースト転送〕 バースト転送を選択した場合は , 指定転送回数がすべて終了するとクリア信号が発生 します。 282 第 10 章 DMAC (DMA コントローラ ) 10.3.12 一時停止 DMA 転送が一時停止する場合について説明します。 ■ 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に設定 ) 一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って ください。 一時停止を解除すると , 転送を再開します。 ■ NMI/ ホールド抑止レベル割込み処理中 NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転 送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込 み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その まま保持され , NMI 処理の終了を待ちます。 要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。 283 第 10 章 DMAC (DMA コントローラ ) 10.3.13 動作終了 / 停止 DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止 することも可能です。 ■ 転送終了 リロード動作が有効でない場合, 転送回数レジスタが0になると転送を停止し, 終了コー ドにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA:DENB ビットをクリアする ) 。 リロード動作が有効である場合, 転送回数レジスタが0になると初期値をリロードし, 終 了コードにて「正常終了」を表示した後 , 再度転送要求待ちとなります (DMACA:DENB ビットをクリアしない ) 。 ■ 全チャネル動作禁止 DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を 許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは 一切発生しません。 284 第 10 章 DMAC (DMA コントローラ ) 10.3.14 エラーによる停止 指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー 発生による停止および強制停止があります。 ■ 周辺回路よりの転送停止要求の発生 転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発 生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。 この転送停止要求を受け取った DMAC は , 終了コードにて「転送停止要求」を表示し て対応するチャネルの転送を停止します。 ■ アドレスエラーの発生 各アドレッシングモードにて , 不適切なアドレッシングが行われたとき , アドレスエ ラーとして検出されます。 「不適切なアドレッシング」とは , 例えば「20 ビットアドレ ス指定時に , アドレスカウンタにてオーバ / アンダフローが発生した場合」です。 アドレスエラーを検出すると , 終了コードにて「アドレスエラーの発生」を表示して対 応するチャネルの転送を停止します。 285 第 10 章 DMAC (DMA コントローラ ) 10.3.15 DMAC 割込み制御 DMAC 割込み制御は , 転送要求となる周辺割込みとは独立して DMAC のチャネルご とに割込みを出力することが可能です。 ■ DMAC 割込み制御が出力できる割込み • 転送終了割込み : 正常終了した場合のみ発生する。 • エラー割込み : 周辺回路よりの転送停止要求 ( 周辺に起因するエラー ) アドレスエラーの発生 ( ソフトウェアに起因するエラー ) これら割込みはすべて終了コードの内容に従って出力されます。 割込み要求のクリアは , DMACB の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む ことにより行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んで クリアしてください。 リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。 終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて いる終了コードに従います。 終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 ) 。 • リセット • "000B" 書込みによるクリア • 周辺停止要求 • 正常終了 • アドレスエラー検出による停止 • チャネル選択と制御 286 第 10 章 DMAC (DMA コントローラ ) 10.3.16 スリープモード中の DMA 転送 DMAC は , スリープモード中でも動作させることができます。 ここでは , スリープ状態のときの DMA 転送について説明します。 ■ スリープモード中の DMA 転送の注意 スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。 1. CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー プモードに入る前に設定は完了させておいてください。 2. スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込みを 選択した場合は , 割込みコントローラで割込みを禁止する必要があります。 同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし てください。 287 第 10 章 DMAC (DMA コントローラ ) 10.3.17 チャネル選択と制御 転送チャネルの数は 5 チャネルまで同時設定が可能です。 各チャネルは基本的に各機能を独立に設定することが可能です。 ■ チャネル間優先順位 DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され ます。順位設定には , 固定 / 回転の 2 モードがありチャネルグループ ( 後述 ) ごとに選 択します。 ● 固定モード チャネル番号の小さい順に固定されます。 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) 転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高 優 先度側に切り替わります。 高優先度側の転送が終了すると , 元のチャネルの転送を再開します。 図 10.3-1 に固定モード時の DMA 転送を示します。 図 10.3-1 固定モード時の DMA 転送 ch.0 転送要求 ch.1 転送要求 バス動作 CPU SA 転送ch DA SA ch.1 DA SA ch.0 DA SA ch.0 DA CPU ch.1 ch.0 転送終了 ch.1 転送終了 ● 回転モード (ch.0 − ch.1 間のみ ) 動作許可後の初期状態は固定モードと同じ順位に設定されますが, 一転送終了ごとにそ のチャネルの優先度は逆転します。そのため , 同時に転送要求が出力されている場合 , 1 転送単位ごとにチャネルが切り替わります。 連続 / バースト転送を設定した場合に効果のあるモードです。 図 10.3-2 に回転モード時の DMA 転送を示します。 図 10.3-2 回転モード時の DMA 転送 ch.0 転送要求 ch.1 転送要求 バス動作 転送ch ch.0 転送終了 ch.1 転送終了 288 CPU SA ch.1 DA SA ch.0 DA SA ch.1 DA SA ch.0 DA CPU 第 10 章 DMAC (DMA コントローラ ) ■ チャネルグループ 優先順位の選択は , 以下の単位で設定します。 表 10.3-3 に , DMA 優先順位選択の設定を示します。 表 10.3-3 DMA 優先順位選択の設定 モード 優先度 固定 ch.0 > ch.1 回転 ch.0 > ch.1 ↑↓ ch.0 < ch.1 備 考 初期状態は上側の順位です。 上側が転送されると反転します。 289 第 10 章 DMAC (DMA コントローラ ) 10.4 動作フロー 図 10.4-1, 図 10.4-2 に , DMA 転送の動作フローを示します。 ■ ブロック転送の動作フロー 図 10.4-1 ブロック転送 DMA停止 DENB=>0 DENB=1 リロード許可 起動要求待機 起動要求 初期化 アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 周辺割込み起動要因選択時のみ アドレス,転送回数, ブロック数,ライトバック 割込みクリア 割込みクリア発生 DTC=0 DMA転送終了 ブロック転送 ・すべての起動要因で起動できる(選択) ・すべての領域へのアクセスができる ・ブロック数の設定可能 ・ブロック数終了で割込みクリア発行 ・指定転送回数終了でDMA割込みを発行 290 DMA割込み発生 第 10 章 DMAC (DMA コントローラ ) ■ バースト転送の動作フロー 図 10.4-2 バースト転送 DMA停止 DENB=>0 DENB=1 起動要求待機 リロード許可 初期化 アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 DTC=0 アドレス,転送回数, ブロック数,ライトバック 割込みクリア DMA転送終了 周辺割込み起動要因選択時のみ 割込みクリア発生 DMA割込み発生 バースト転送 ・すべての起動要因で起動できる(選択) ・すべての領域へのアクセスができる ・ブロック数の設定可能 ・指定転送回数終了で割込みクリア,DMA割込みを発行 291 第 10 章 DMAC (DMA コントローラ ) 10.5 データパス 各転送時のデータの動作を示します。 ■ 2 サイクル転送時のデータの動作 図 10.5-1 から図 10.5-6 に 2 サイクル転送時のデータの動作を示します。 図 10.5-1 外部領域→外部領域転送 X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バス I/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 外部領域=>外部領域 転送 F-bus I/O RAM I/O 図 10.5-2 外部領域→内部 RAM 領域転送 X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バス I/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 外部領域=>内部RAM領域 転送 F-bus I/O RAM I/O 図 10.5-3 外部領域→内蔵 I/O 領域転送 X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus データバッファ F-bus F-bus RAM 292 I/O RAM I/0 外部バス I/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 外部領域=>内蔵I/0領域 転送 第 10 章 DMAC (DMA コントローラ ) 図 10.5-4 内蔵 I/O 領域→内蔵 RAM 領域転送 X-bus バスコントローラ D-bus データバッファ I-bus D-bus X-bus バスコントローラ F-bus RAM 外部バス I/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 内部I/O領域=>内蔵RAM領域 転送 F-bus I/0 RAM I/O 図 10.5-5 内部 RAM 領域→外部領域転送 X-bus バスコントローラ D-bus I-bus データバッファ X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バス I/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 内部RAM領域=>外部領域 転送 F-bus RAM I/O I/0 図 10.5-6 内部 RAM 領域→内蔵 I/O 領域転送 CPU バスコントローラ D-bus データバッファ X-bus I-bus バスコントローラ D-bus データバッファ F-bus RAM I/O 外部バス I/F X-bus I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 内部RAM領域=>内蔵I/O領域 転送 F-bus RAM I/0 293 第 10 章 DMAC (DMA コントローラ ) 294 第 11 章 CAN コントローラ CAN コントローラの機能と動作について示しま す。 11.1 CAN の特長 11.2 CAN のブロックダイヤグラム 11.3 CAN のレジスタ 11.4 CAN レジスタ機能 11.5 CAN 機能 295 第 11 章 CAN コントローラ 11.1 CAN の特長 CAN は , シリアル通信用の標準プロトコルである CAN プロトコル ver2.0A/B に準 拠しており , 自動車や FA などの工業分野に広く使用されています。 ■ CAN の特長 CAN には以下の特長があります。 • CAN プロトコル ver2.0A/B をサポート • 1 Mbps までのビットレートをサポート • メッセージオブジェクトごとの識別マスク • プログラマブル FIFO モードをサポート • マスク可能な割込み • 自己テスト動作用プログラマブルループバックモードをサポート • インタフェースレジスタを使用してメッセージバッファへの読出し / 書込み 296 第 11 章 CAN コントローラ 11.2 CAN のブロックダイヤグラム 図 11.2-1 に , CAN のブロックダイヤグラムを示します。 図 11.2-1 CAN ブロックダイヤグラム CAN_TX CAN_RX C_CAN メッセージ RAM レジスタ群 メッセージ ハンドラ CANコントローラ 割込み データOUT データIN アドレス[7:0] コントロール リセット クロック CPUインタフェース ■ CAN コントローラ CAN プロトコルと送受信メッセージ転送のためのシリアル / パラレル変換用のシリア ルレジスタを制御します。 ■ メッセージ RAM メッセージオブジェクトを格納します。 ■ レジスタ群 CAN で使用されるすべてのレジスタです。 ■ メッセージハンドラ メッセージ RAM と CAN コントローラを制御します。 ■ CPU インタフェース FR 内部バスのインタフェースを制御します。 297 第 11 章 CAN コントローラ 11.3 CAN のレジスタ CAN には , 以下のレジスタがあります。 • CAN 制御レジスタ (CTRLR) • CAN ステータスレジスタ (STATR) • CAN エラーカウンタ (ERRCNT) • CAN ビットタイミングレジスタ (BTR) • CAN 割込みレジスタ (INTR) • CAN テストレジスタ (TESTR) • BRP 拡張レジスタ (BRPER) • IFx コマンド要求レジスタ (IFxCREQ) • IFx コマンドマスクレジスタ (IFxCMSK) • IFx マスクレジスタ 1, 2(IFxMSK1, IFxMSK2) • IFx アービトレーション 1, 2(IFxARB1, IFxARB2) • IFx メッセージ制御レジスタ (IFxMCTR) • IFx データレジスタ A1, A2, B1, B2(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) • CAN 送信要求レジスタ 1, 2(TREQR1, TREQR2) • CAN New Data レジスタ 1, 2(NEWDT1, NEWDT2) • CAN 割込みペンディングレジスタ 1, 2(INTPND1, INTPND2) • CAN メッセージ有効レジスタ 1, 2(MSGVAL1, MSGVAL2) • CAN クロックプリスケーラレジスタ (CANPRE) ■ 全体コントロールレジスタ一覧 表 11.3-1 全体コントロールレジスタ一覧 (1 / 2) レジスタ アドレス コメント +0 +1 CAN 制御レジスタ Base-addr + 00H 初期値 初期値 298 +3 CAN ステータスレジスタ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 予約 CTRLR 予約 STATR 00000000B 00000001B 00000000B 00000000B CAN エラーカウンタ Base-addr + 04H +2 CAN ビットタイミングレジスタ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 RP, REC[6:0] TEC[7:0] TSeg2[2:0], TSeg1[3:0] SJW[1:0], BRP[5:0] 00000000B 00000000B 00100011B 00000001B エラーカウンタ は読出し専用で す。 ビットタイミン グレジスタは , CCE により書込 み可能となりま す。 第 11 章 CAN コントローラ 表 11.3-1 全体コントロールレジスタ一覧 (2 / 2) レジスタ アドレス コメント +0 +1 CAN 割込みレジスタ Base-addr + 08H 初期値 +2 CAN テストレジスタ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 IntId15 ∼ IntId8 IntId7 ∼ IntId0 予約 TESTR 00000000B 00000000B 00000000B 00000000B F0000000B BRP 拡張レジスタ Base-addr + 0CH 初期値 +3 割込みレジスタ は読出し専用で す。 テストレジスタ は TSET により 使用できます。 TESTR の "r" は CAN_RX 端子の 値を意味します。 予約 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 予約 BRP3 ∼ BRP0 予約 予約 00000000B 00000000B 00000000B 00000000B BRP 拡張レジス タは CCE により 書込み可能とな ります。 299 第 11 章 CAN コントローラ ■ メッセージインタフェースレジスタ一覧 表 11.3-2 メッセージインタフェースレジスタ一覧 (1 / 2) アドレス Base-addr + 10H 初期値 レジスタ +0 +1 IF1 コマンド要求レジスタ bit15 ∼ bit8 BUSY 00000000B 初期値 bit15 ∼ bit8 MXtd. MDir, Msk28 ∼ Msk24 11111111B +3 コメント IF1 コマンドマスクレジスタ bit7 ∼ bit0 bit15 ∼ bit8 Mess.No.5 ∼ 0 00000001B 予約 00000000B IF1 マスクレジスタ 2 Base-addr + 14H +2 bit7 ∼ bit0 IF1CMSK 00000000B IF1 マスクレジスタ 1 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 Msk23 ∼ Msk16 Msk15 ∼ Msk8 Msk7 ∼ Msk0 11111111B 11111111B 11111111B IF1 アービトレーションレジスタ 2 IF1 アービトレーションレジスタ 1 Base-addr + 18H 初期値 Base-addr + 1CH 初期値 Base-addr + 20H 初期値 Base-addr + 24H 初期値 Base-addr + 30H 初期値 Base-addr + 34H 初期値 300 bit15 ∼ bit8 MsgVal, Xtd, Dir, ID28 ∼ ID24 00000000B bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 ID23 ∼ ID16 ID15 ∼ ID8 ID7 ∼ ID0 00000000B 00000000B 00000000B IF1 メッセージ制御レジスタ bit15 ∼ bit8 IF1MCTR 00000000B bit7 ∼ bit0 IF1MCTR 00000000B IF1 データレジスタ A1 bit7 ∼ bit0 Data[0] 00000000B bit15 ∼ bit8 Data[1] 00000000B IF1 データレジスタ B1 bit7 ∼ bit0 Data[4] 00000000B bit15 ∼ bit8 Data[5] 00000000B IF1 データレジスタ A2 bit15 ∼ bit8 Data[3] 00000000B bit7 ∼ bit0 Data[2] 00000000B IF1 データレジスタ B2 bit15 ∼ bit8 Data[7] 00000000B bit7 ∼ bit0 Data[6] 00000000B 予約 bit15 ∼ bit8 bit7 ∼ bit0 予約 00000000B 予約 00000000B IF1 データレジスタ A2 bit7 ∼ bit0 Data[2] 00000000B bit15 ∼ bit8 Data[3] 00000000B ビッグ エンディアン バイト IF1 データレジスタ B2 bit7 ∼ bit0 Data[6] 00000000B bit15 ∼ bit8 Data[7] 00000000B ビッグ エンディアン バイト IF1 データレジスタ A1 bit15 ∼ bit8 Data[1] 00000000B bit7 ∼ bit0 Data[0] 00000000B リトル エンディアン バイト IF1 データレジスタ B1 bit15 ∼ bit8 Data[5] 00000000B bit7 ∼ bit0 Data[4] 00000000B リトル エンディアン バイト 第 11 章 CAN コントローラ 表 11.3-2 メッセージインタフェースレジスタ一覧 (2 / 2) アドレス Base-addr + 40H 初期値 レジスタ +0 +1 IF2 コマンド要求レジスタ bit15 ∼ bit8 BUSY 00000000B 初期値 Base-addr + 48H 初期値 Base-addr + 4CH 初期値 Base-addr + 50H 初期値 Base-addr + 54H 初期値 Base-addr + 60H 初期値 Base-addr + 64H 初期値 bit15 ∼ bit8 MXtd. MDir, Msk28 ∼ Msk24 11111111B +3 コメント IF2 コマンドマスクレジスタ bit7 ∼ bit0 bit15 ∼ bit8 Mess.No.5 ∼ 0 00000001B 予約 00000000B IF2 マスクレジスタ 2 Base-addr + 44H +2 bit7 ∼ bit0 IF2CMSK 00000000B IF2 マスクレジスタ 1 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 Msk23 ∼ Msk16 Msk15 ∼ Msk8 Msk7 ∼ Msk0 11111111B 11111111B 11111111B IF2 アービトレーションレジスタ 2 IF2 アービトレーションレジスタ 1 bit15 ∼ bit8 IF2MCTR 00000000B bit7 ∼ bit0 IF2MCTR 00000000B bit15 ∼ bit8 bit7 ∼ bit0 予約 00000000B 予約 00000000B IF2 メッセージ制御レジスタ bit15 ∼ bit8 IF2MCTR 00000000B bit7 ∼ bit0 IF2MCTR 00000000B IF2 データレジスタ A1 bit7 ∼ bit0 Data[0] 00000000B bit15 ∼ bit8 Data[1] 00000000B IF2 データレジスタ B1 bit7 ∼ bit0 Data[4] 00000000B bit15 ∼ 8 Data[5] 00000000B IF2 データレジスタ A2 bit15 ∼ bit8 Data[3] 00000000B bit7 ∼ bit0 Data[2] 00000000B IF2 データレジスタ B2 bit15 ∼ bit8 Data[7] 00000000B bit7 ∼ bit0 Data[6] 00000000B 予約 bit15 ∼ bit8 bit7 ∼ bit0 予約 00000000B 予約 00000000B IF2 データレジスタ A2 bit7 ∼ bit0 Data[2] 00000000B bit15 ∼ bit8 Data[3] 00000000B ビッグ エンディアン バイト IF2 データレジスタ B2 bit7 ∼ bit0 Data[6] 00000000B bit15 ∼ bit8 Data[7] 00000000B ビッグ エンディアン バイト IF2 データレジスタ A1 bit15 ∼ bit8 Data[1] 00000000B bit7 ∼ bit0 Data[0] 00000000B リトル エンディアン バイト IF2 データレジスタ B1 bit15 ∼ bit8 Data[5] 00000000B bit7 ∼ bit0 Data[4] 00000000B リトル エンディアン バイト 301 第 11 章 CAN コントローラ ■ メッセージハンドラレジスタ一覧 表 11.3-3 メッセージハンドラレジスタ一覧 アドレス レジスタ +0 +1 +2 CAN 送信要求レジスタ 2 Base-addr + 80H 初期値 Base-addr + 84H CAN 送信要求レジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 TxRqst32 ∼ TxRqst25 00000000B TxRqst24 ∼ TxRqst17 00000000B TxRqst16 ∼ TxRqst9 00000000B TxRqst8 ∼ TxRqst1 00000000B 初期値 Base-addr + 94H 送信要求レジ スタはリード オンリです。 予約 ( メッセージバッファ数が 33 以上の場合に使用 ) CAN 新データレジスタ 2 Base-addr + 90H コメント +3 CAN 新データレジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 NewDat32 ∼ NewData25 00000000B NewDat24 ∼ NewData17 00000000B NewData16 ∼ NewData9 00000000B NewData8 ∼ NewData1 00000000B 新データレジ スタはリード オンリです。 予約 ( メッセージバッファ数が 33 以上の場合に使用 ) CAN 割込みペンディングレジスタ 2 CAN 割込みペンディングレジスタ 1 Base-addr + A0H 初期値 Base-addr + A4H Base-addr + B0H Base-addr + B4H bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 IntPnd32 ∼ IntPnd25 00000000B IntPnd24 ∼ IntPnd17 00000000B IntPnd16 ∼ IntPnd9 00000000B 割込みペン ディングレジ IntPnd8 ∼ IntPnd1 スタはリード オンリです。 00000000B bit7 ∼ bit0 予約 ( メッセージバッファ数が 33 以上の場合に使用 ) CAN メッセージ有効レジスタ 2 CAN メッセージ有効レジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 MsgVal32 ∼ MsgVal25 00000000B MsgVal24 ∼ MsgVal17 00000000B MsgVal16 ∼ MsgVal9 00000000B MsgVal8 ∼ MsgVal1 00000000B メッセージ有 効レジスタは リードオンリ です。 予約 ( メッセージバッファ数が 33 以上の場合に使用 ) ■ クロックプリスケーラレジスタ 表 11.3-4 クロックプリスケーラレジスタ アドレス 0001A8H 初期値 302 レジスタ +0 CAN プリス ケーラレジスタ bit3 ∼ bit0 CANPRE[3:0] 00000000B +1 +2 +3 − − − − − − − − − − − − コメント CAN プリス ケーラ 第 11 章 CAN コントローラ 11.4 CAN レジスタ機能 CAN レジスタは , 256 バイト (64 ワード ) のアドレス空間が割り当てられています。 メッセージ RAM への CPU のアクセスは , メッセージインタフェースレジスタを介 して行います。 本節では CAN レジスタを掲載し , それぞれのレジスタの詳細機能を記載します。 ■ 全体コントロールレジスタ • CAN 制御レジスタ (CTRLR) • CAN ステータスレジスタ (STATR) • CAN エラーカウンタ (ERRCNT) • CAN ビットタイミングレジスタ (BTR) • CAN 割込みレジスタ (INTR) • CAN テストレジスタ (TESTR) • BRP 拡張レジスタ (BRPER) ■ メッセージインタフェースレジスタ • IFx コマンド要求レジスタ (IFxCREQ) • IFx コマンドマスクレジスタ (IFxCMSK) • IFx マスクレジスタ 1, 2(IFxMSK1, IFxMSK2) • IFx アービトレーションレジスタ 1, 2(IFxARB1, IFxARB2) • IFx メッセージ制御レジスタ (IFxMCTR) • IFx データレジスタ A1, A2, B1, B2(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) ■ メッセージハンドラレジスタ • CAN 送信要求レジスタ 1, 2(TREQR1, TREQR2) • CAN 新データレジスタ 1, 2(NEWDT1, NEWDT2) • CAN 割込みペンディングレジスタ 1, 2(INTPND1, INTPND2) • CAN メッセージ有効レジスタ 1, 2(MSGVAL1, MSGVAL2) ■ プリスケーラレジスタ CAN クロックプリスケーラレジスタ (CANPRE) 303 第 11 章 CAN コントローラ 11.4.1 全体コントロールレジスタ 全体コントロールレジスタは , CAN プロトコル制御および動作モードを制御し , ス テータス情報を提供します。 ■ 全体コントロールレジスタ • CAN 制御レジスタ (CTRLR) • CAN ステータスレジスタ (STATR) • CAN エラーカウンタ (ERRCNT) • CAN ビットタイミングレジスタ (BTR) • CAN 割込みレジスタ (INTR) • CAN テストレジスタ (TESTR) • BRP 拡張レジスタ (BRPER) 304 第 11 章 CAN コントローラ 11.4.1.1 CAN 制御レジスタ (CTRLR0, CTRLR1) CAN 制御レジスタ (CTRLR) は , CAN コントローラの動作モードを制御します。 ■ レジスタ構成 CAN 制御レジスタ ( 上位バイト ) アドレス Base + 00H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 res R res R res R res R res R res R res R res R 00000000B CAN 制御レジスタ ( 下位バイト ) アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 Base + 01H Test R/W CCE R/W DAR R/W res R EIE R/W SIE R/W IE R/W Init R/W 00000001B R/W :リード / ライト可能 R :リードオンリ ■ レジスタ機能 [bit15 ∼ bit8] res:予約ビット これらのビットからは , "00000000B" が読み出されます。 書込みの場合には , "00000000B" を設定してください。 [bit7] Test:テストモード許可ビット Test 機能 0 通常動作 [ 初期値 ] 1 テストモード [bit6] CCE:設定変更許可ビット CCE 機能 0 CAN ビットタイミングレジスタおよび BRP 拡張レジスタへの書込 みを禁止します。[ 初期値 ] 1 CAN ビットタイミングレジスタおよび BRP 拡張レジスタへの書込 みを許可します。Init ビットが "1" の時に有効です。 305 第 11 章 CAN コントローラ [bit5] DAR:自動再送禁止ビット DAR 機能 0 調停負けまたはエラー検出時のメッセージの自動再送を許可しま す。[ 初期値 ] 1 自動再送を禁止します。 CAN 仕様 (ISO11898, 6.3.3 リカバリ処理 参照 ) より , CAN コントローラは調停負け あるいは転送中のエラー検出によりフレームの自動再送を行います。自動再送する 場合は , DAR ビットを "0" にリセットします。CAN を Time Triggered CAN (TTCAN, ISO11898-1 参照 ) 環境で動作させるためには , DAR ビットに "1" を設定する必要が あります。 DAR ビットに "1" を設定したモードでは , メッセージオブジェクト ( メッセージオブ ジェクトについては「11.4.3 メッセージオブジェクト」を参照してください ) の TxRqst ビットと NewDat ビットの動作が異なります。 • フレーム送信を開始したとき , メッセージオブジェクトの TxRqst が "0" にリセット されますが , NewDat ビットはセットされたままです。 • フレーム送信が正常終了すると NewDat は "0" にリセットされます。 • 送信が調停負けもしくはエラーを検出すると , NewDat はセットされたままです。送 信を再開するためには , CPU により TxRqst に "1" を設定する必要があります。 [bit4] res:予約ビット このビットからは , "0" が読み出されます。 書込みの場合には , "0" を設定してください。 [bit3] EIE:エラー割込みコード許可ビット EIE 機能 0 CAN ステータスレジスタの BOff または EWarn ビットの変化に より , CAN 割込みレジスタへの割込みコードの設定を禁止します。 [ 初期値 ] 1 CAN ステータスレジスタの BOff または EWarn ビットの変化に より , CAN 割込みレジスタへのステータス割込みコードの設定を許 可します。 [bit2] SIE:ステータス割込みコード許可ビット SIE 306 機能 0 CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化 により , CAN 割込みレジスタへの割込みコードの設定を禁止しま す。[ 初期値 ] 1 CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化 により , CAN 割込みレジスタへのステータス割込みコードの設定を 許可します。 CPU からの書込みによって発生した TxOk, RxOk, LEC ビットの変 化は CAN 割込みレジスタには設定されません。 第 11 章 CAN コントローラ [bit1] IE:割込み許可ビット IE 機能 0 割込みの発生を禁止します。[ 初期値 ] 1 割込みの発生を許可します。 [bit0] Init:初期化ビット Init 機能 0 CAN コントローラ動作可能 1 初期化 [ 初期値 ] • バスオフリカバリシーケンス (CAN 仕様 Rev. 2.0 参照 ) を , Init ビットの設定 / 解 除によって短縮することはできません。デバイスがバスオフになると , CAN コン トローラ自身が Init ビットを "1" にセットし , すべてのバス動作を停止させます。 バスオフ状態から Init ビットを "0" にクリアすると , バスアイドルが連続的に 129 回 (11 ビットのレセッシブを 1 回とする ) 発生するまでバス動作を停止状態にし ます。 バスオフリカバリシーケンス実行後 , エラーカウンタはリセットされます。 • CAN ビットタイミングレジスタへの書込みは , Init および CCE ビットに "1" を設 定してから行ってください。 • 低消費電力モード ( 停止モード , クロックモード ) を使用する場合は , 低消費電力 モードへ遷移する前に Init ビットに "1 を書き込んで CAN コントローラの初期化 を行ってください。 • CAN プリスケーラレジスタにより , CAN インタフェースに供給するクロックの 分周比を変更する場合は , Init ビットに "1" を設定後に CAN プリスケーラレジス タの変更を行ってください。 307 第 11 章 CAN コントローラ 11.4.1.2 CAN ステータスレジスタ (STATR) CAN ステータスレジスタ (STATR) は , CAN ステータスおよび CAN バス状態を表 示します。 ■ レジスタ構成 CAN ステータスレジスタ ( 上位バイト ) アドレス Base + 02H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 res R res R res R res R res R res R res R res R 00000000B bit2 bit1 bit0 R/W LEC R/W CAN ステータスレジスタ ( 下位バイト ) アドレス bit7 bit6 bit5 bit4 bit3 Base + 03H BOff R EWarn R EPass R RxOk R/W TxOk R/W 初期値 00000000B R/W R/W :リード / ライト可能 R :リードオンリ ■ レジスタ機能 [bit15 ∼ bit8] res:予約ビット これらのビットからは , "0" が読み出されます。 書込みの場合には , "0" を設定してください。 [bit7] BOff:バスオフビット BOff 機能 0 CAN コントローラはバスオフ状態ではない ( バスアクティブ ) [ 初期値 ] 1 CAN コントローラはバスオフ状態 [bit6] EWarn:ウォーニングビット EWarn 308 機能 0 送信 , 受信カウンタはいずれも 96 未満 [ 初期値 ] 1 送信または受信カウンタが 96 以上 第 11 章 CAN コントローラ [bit5] EPass: エラーパッシブビット EPass 機能 0 送信 , 受信カウンタはいずれも 128 未満 ( エラーアクティブ状態 ) [ 初期値 ] 1 受信カウンタは RP ビット =1, 送信カウンタが 128 以上 ( エラーパッシブ状態 ) [bit4] RxOk:メッセージ正常受信ビット RxOk 機能 0 メッセージ受信は異常 , またはバスアイドル状態 [ 初期値 ] 1 メッセージ受信は正常 [bit3] TxOk:メッセージ正常送信ビット TxOk 機能 0 メッセージ送信は異常 , またはバスアイドル状態 [ 初期値 ] 1 メッセージ送信は正常 <注意事項> RxOk および TxOk ビットは , CPU によってのみリセットされます。 309 第 11 章 CAN コントローラ [bit2 ∼ bit0] LEC:ラストエラーコードビット LEC 状態 機能 0 正常 正常に送信または受信されたことを示します。[ 初期値 ] 1 Stuff エラー メッセージ内において 6 ビット以上連続してドミナント またはレセッシブを検出したことを示します。 2 Form エラー 受信フレームの固定フォーマット部が誤って受信された ことを示します。 3 Ack エラー 送信メッセージに対し , ほかのノードからアクノリッジ されなかったことを示します。 4 Bit1 エラー 調停フィールドを除くメッセージの送信データにおいて , レセッシブを送信したにもかかわらずドミナントを検出 したことを示します。 5 Bit0 エラー メッセージの送信データにおいて , ドミナントを送信し たにもかかわらずレセッシブを検出したことを示します。 バスリカバリ中には , 11 ビットのレセッシブを検出する ごとにセットされます。このビットを読み出すことによ りバスリカバリシーケンスを監視できます。 6 CRC エラー 受信したメッセージの CRC データと計算した CRC の結 果が一致しなかったことを示します。 未検出 CPU によって LEC ビットに "7" の書込みを行ってから , LEC ビットの読出し値が "7" の場合は , その期間には送 受信が行われなかったことを示します。 ( バスアイドル状態 ) 7 LEC ビットは CAN バス上で発生した最後のエラーを示すコードを保持します。メッ セージがエラーなしで転送 ( 受信 / 送信 ) 完了すると "0H" に設定されます。未検出 コード "7H" は , コード更新をチェックするために CPU によって設定してください。 - ステータス割込みコード (8000H) は , EIE ビットが "1" のときに BOff または EWarn ビットが変化した場合 , あるいは SIE ビットが "1" のときに RxOk, TxOk, LEC ビッ トのいずれかが変化した場合 , CAN 割込みレジスタに設定されます。 - RxOk, TxOk ビットは CPU の書込みによって更新されますので , CAN コントロー ラによってセットされた RxOk, TxOk ビットは保持されません。RxOk, TxOk ビッ トを使用する場合には , RxOk または TxOk ビットが "1" にセットされてから (45 × BT) 時間以内にクリアしてください。BT は 1 ビットタイムを示します。 - SIE ビットが "1" のとき , LEC ビットの変化による割込みが発生した場合には , CAN ステータスレジスタには書き込まないでください。 - EPass ビットの変化 , あるいは RxOk, TxOk, LEC ビットへの CPU 書込み動作では 発生しません。 - BOff ビットまたは EPass ビットが "1" になっても EWarn ビットは "1 にセットさ れています。 - このレジスタを読み出すことにより , CAN 割込みレジスタのステータス割込み (8000H) はクリアされます。 310 第 11 章 CAN コントローラ CAN エラーカウンタ (ERRCNT0 ∼ ERRCNT2) 11.4.1.3 CAN エラーカウンタ (ERRCNT0 ∼ ERRCNT2) は , 受信エラーパッシブ表示および 受信エラーカウンタ , 送信エラーカウンタを示します。 ■ レジスタ構成 CAN エラーカウンタレジスタ ( 上位バイト ) アドレス Base + 04H bit15 bit14 bit13 bit12 RP R R R R bit11 bit10 bit9 bit8 R R bit2 bit1 bit0 R R R REC6 ∼ REC0 R R 初期値 00000000B CAN エラーカウンタレジスタ ( 下位バイト ) アドレス bit7 bit6 bit5 R R R Base + 05H R bit4 bit3 TEC7 ∼ TEC0 R R 初期値 00000000B :リードオンリ ■ レジスタ機能 [bit15] RP:受信エラーパッシブ表示 RP 機能 0 受信エラーカウンタは CAN 仕様でのエラーパッシブ状態ではない [ 初期値 ] 1 受信エラーカウンタは CAN 仕様でのエラーパッシブ状態 [bit14 ∼ bit8] REC6 ∼ REC0:受信エラーカウンタ 受信エラーカウンタ値。受信エラーカウンタ値の範囲は 0 ∼ 127 です。 [bit7 ∼ bit0] TEC7 ∼ TEC0:送信エラーカウンタ 送信エラーカウンタ値。送信エラーカウンタ値の範囲は 0 ∼ 255 です。 311 第 11 章 CAN コントローラ CAN ビットタイミングレジスタ (BTR0 ∼ BTR2) 11.4.1.4 CAN ビットタイミングレジスタ (BTR0 ∼ BTR2) は , プリスケーラおよびビットタ イミングを設定します。 ■ レジスタ構成 CAN ビットタイミングレジスタ ( 上位バイト ) bit15 アドレス res R Base + 06H bit14 bit13 R/W TSeg2 R/W bit12 bit11 bit10 bit9 bit8 TSeg1 R/W R 初期値 00100011B R R R bit2 bit1 bit0 CAN ビットタイミングレジスタ ( 下位バイト ) bit7 アドレス bit6 bit5 bit4 bit3 SJW Base + 07H R/W BRP R/W R/W R/W R/W 初期値 00000001B R/W R/W R/W R/W :リード / ライト可能 R :リードオンリ CAN ビットタイミングレジスタおよび BRP 拡張レジスタの設定は , CAN 制御レジス タの CCE ビットと Init ビットが "1" にセットされているときに行ってください。 ■ レジスタ機能 [bit15] res:予約ビット このビットからは , "0" が読み出されます。 書込みの場合には , "0" を設定してください。 [bit14 ∼ bit12] TSeg2:タイムセグメント 2 設定ビット 有効設定値は 0 ∼ 7 です。TSeg2 + 1 の値がタイムセグメント 2 になります。 タイムセグメント 2 は , CAN 仕様のフェーズバッファセグメント (PHASE_SEG2) に 相当します。 [bit11 ∼ bit8] TSeg1:タイムセグメント 1 設定ビット 有効設定値は 1 ∼ 15 です。"0" の設定は禁止です。TSeg1 + 1 の値がタイムセグメ ント 1 になります。 タイムセグメント 1 は , CAN 仕様のプロパゲーションセグメント (PROP_SEG) + フェーズバッファセグメント 1(PHASE_SEG1) に相当します。 [bit7, bit6] SJW:再同期化ジャンプ幅設定ビット 有効設定値は 0 ∼ 3 です。SJW + 1 の値が再同期ジャンプ幅となります。 [bit5 ∼ bit0] BRP:ボーレートプリスケーラ設定ビット 有効設定値は 0 ∼ 63 です。BRP + 1 の値がボーレートプリスケーラになります。 システムクロック (fsys) を分周して , CAN コントローラの基本単位時間 (tq) を決定 します。 312 第 11 章 CAN コントローラ CAN 割込みレジスタ (INTR0 ∼ INTR2) 11.4.1.5 CAN 割込みレジスタ (INTR0 ∼ INTR2) は , メッセージ割込みコードおよびステータ ス割込みコードを表示します。 ■ レジスタ構成 CAN 割込みレジスタ ( 上位バイト ) bit15 アドレス bit14 bit13 Base + 08H R R R bit12 bit11 IntId15 ∼ IntId8 R R bit10 bit9 bit8 初期値 00000000B R R R bit2 bit1 bit0 CAN 割込みレジスタ ( 下位バイト ) bit7 アドレス bit6 bit5 Base + 09H R R R R bit4 bit3 IntId7 ∼ IntId0 R R 初期値 00000000B R R R :リードオンリ ■ レジスタ機能 IntId 機能 0000H 割込みなし 0001H ∼ 0020H メッセージ割込みコード ( 割込み要因はメッセージオブジェクトの番号 ) 0021H ∼ 7FFFH 未使用 8000H ステータス割込みコード (CAN ステータスレジスタの変化による割込み ) 8001H ∼ FFFFH 未使用 複数の割込みコードがペンディング中である場合 , CAN 割込みレジスタは優先度の高 い割込みコードを示します。割込みコードが CAN 割込みレジスタにセットされている 場合においても , 優先度の高い割込みコードが発生すると , CAN 割込みレジスタは優 先度の高い割込みコードに更新されます。 優先度の高い割込みコードは , ステータス割込みコード (8000H), メッセージ割込み (0001H, 0002H, 0003H, ……, 0020H) の順になります。 IntId ビットが 0000H 以外のときに , CAN 制御レジスタの IE ビットが "1" にセットされ ると , CPU への割込み信号がアクティブになります。IntId の値が 0000H になる ( 割込 み要因がリセットされる ) もしくは CAN 制御レジスタの IE ビットが "0" にリセットさ れると , 割込み信号はインアクティブになります。 対象となるメッセージオブジェクト ( メッセージオブジェクトについては 「11.4.3 メッ セージオブジェクト」を参照してください ) の IntPnd ビットを "0" にクリアすると , メッセージ割込みコードはクリアされます。 ステータス割込みコードは CAN ステータスレジスタを読み出すとクリアされます。 313 第 11 章 CAN コントローラ CAN テストレジスタ (TESTR0 ∼ TESTR2) 11.4.1.6 CAN テストレジスタ (TESR0 ∼ TESR2) レジスタは , テストモードの設定および RX 端子のモニタを行います。動作については , 「11.5.7 テストモード」を参照して ください。 ■ レジスタ構成 CAN テストレジスタ ( 上位バイト ) アドレス Base + 0AH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 res R res R res R res R res R res R res R res R 00000000B bit5 bit4 bit3 bit2 bit1 bit0 初期値 00000000B CAN テストレジスタ ( 下位バイト ) アドレス bit7 bit6 Base + 0BH Rx Tx1 Tx0 LBack Silent Basic res res R R/W R/W R/W R/W R/W R R R/W :リード / ライト可能 R :リードオンリ bit7 の Rx の初期値 (r) は , CAN バス上のレベルが表示されます。 CAN テストレジスタ (TESTR) への書込みは , CAN 制御レジスタ (CTRLR) の Test ビッ トを "1" にセットした後に行ってください。テストモードが有効となるのは , CAN 制 御レジスタの Test ビットが "1" の時です。テストモードの途中で CAN 制御レジスタの Test ビットを "0" にするとテストモードから通常モードになります。 ■ レジスタ機能 [bit15 ∼ bit8] res:予約ビット これらのビットからは , "00000000B" が読み出されます。 書込みの場合には , "00000000B" を設定してください。 [bit7] Rx:Rx 端子モニタビット Rx 314 機能 0 CAN バスはドミナントであることを示します。 1 CAN バスはレセッシブであることを示します。 第 11 章 CAN コントローラ [bit6, bit5] Tx1, Tx0:TX 端子コントロールビット Tx1, Tx0 機能 00 通常動作 [ 初期値 ] 01 サンプリングポイントが TX 端子に出力されます。 10 TX 端子にドミナントを出力します。 11 TX 端子にレセッシブを出力します。 Txビットを "00B"以外に設定した場合は , メッセージを送信することはできません。 [bit4] LBack:ループバックモード LBack 機能 0 ループバックモードを禁止します。[ 初期値 ] 1 ループバックモードを許可します。 [bit3] Silent:サイレントモード Silent 機能 0 サイレントモードを禁止します。[ 初期値 ] 1 サイレントモードを許可します。 [bit2] Basic:ベーシックモード Basic 機能 0 ベーシックモードを禁止します。[ 初期値 ] 1 ベーシックモードを許可します。 IF1 レジスタは送信メッセージとして , IF2 レジスタは受信メッセージ として使用されます。 [bit1, bit0] res:予約ビット これらのビットからは , "00B" が読み出されます。 書込みの場合には , "00B" を設定してください。 315 第 11 章 CAN コントローラ BRP 拡張レジスタ (BRPER0 ∼ BRPER2) 11.4.1.7 BRP 拡張レジスタ (BRPER0 ∼ BRPER2) は , CAN ビットタイミングで設定したプ リスケーラと組み合わせることにより , CAN コントローラで使用するプリスケーラ を拡張します。 ■ レジスタ構成 CAN プリスケーラ拡張レジスタ ( 上位バイト ) アドレス Base + 0CH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 res R res R res R res R res R res R res R res R 00000000B bit3 bit2 bit1 bit0 初期値 R/W R/W CAN プリスケーラ拡張レジスタ ( 下位バイト ) アドレス bit7 bit6 bit5 bit4 Base + 0DH res res res res R R R R BRPE R/W 00000000B R/W R/W :リード / ライト可能 R :リードオンリ ■ レジスタ機能 [bit15 ∼ bit4] res:予約ビット これらのビットからは , "00000000_0000B" が読み出されます。 書込みの場合には , "00000000_0000B" を設定してください。 [bit3 ∼ bit0] BRPE:ボーレートプリスケーラ拡張ビット CAN ビットタイミングレジスタの BRP と BRPE を組み合わせることにより , 1023 までボーレートプリスケーラを拡張できます。 {BRPE(MSB:4 ビット ), BRP(LSB:6 ビット )} + 1 の値が CAN コントローラのプリ スケール値となります。 316 第 11 章 CAN コントローラ 11.4.2 メッセージインタフェースレジスタ CPU からメッセージ RAM へのアクセスを制御するための 2 組のメッセージインタ フェースレジスタがあります。 メッセージ RAM への CPU アクセスを制御するために使用される 2 組のメッセージイ ンタフェースレジスタがあります。この 2 組のレジスタは , 転送された ( する ) データ ( メッセージオブジェクト ) をバッファすることで , メッセージ RAM への CPU アクセ スと CAN コントローラからのアクセスの競合を回避します。メッセージオブジェクト ( メッセージオブジェクトについては , 「11.4.3 メッセージオブジェクト」を参照して ください ) は , メッセージインタフェースレジスタとメッセージ RAM 間を一度に転送 します。 テストベーシックモードを除き , 2 組のメッセージインタフェースレジスタの機能は同 一で , 独立して動作可能です。例えば , IF1 のメッセージインタフェースレジスタをメッ セージRAMへの書込み動作中に, IF2のメッセージインタフェースレジスタをメッセー ジ RAM からの読出しに使用することも可能です。表 11.4-1 に 2 組のメッセージイン タフェースレジスタを示します。 メッセージインタフェースレジスタは , コマンドレジスタ ( コマンド要求 , コマンドマ スクレジスタ ) と , このコマンドレジスタによって制御されるメッセージバッファレジ スタ ( マスク , アービトレーション , メッセージ制御 , データレジスタ ) から構成されま す。コマンドマスクレジスタは , データ転送の方向とメッセージオブジェクトのどの部 分が転送されるのかを示します。コマンド要求レジスタは , メッセージ番号の選択と , コマンドマスクレジスタに設定された動作を行います。 表 11.4-1 IF1, IF2 メッセージインタフェースレジスタ アドレス IF1 レジスタセット アドレス IF2 レジスタセット Base + 10H IF1 コマンド要求 Base + 40H IF2 コマンド要求 Base + 12H IF1 コマンドマスク Base + 42H IF2 コマンドマスク Base + 14H IF1 マスク 2 Base + 44H IF2 マスク 2 Base + 16H IF1 マスク 1 Base + 46H IF2 マスク 1 Base + 18H IF1 アービトレーション 2 Base + 48H IF2 アービトレーション 2 Base + 1AH IF1 アービトレーション 1 Base + 4AH IF2 アービトレーション 1 Base + 1CH IF1 メッセージ制御 Base + 4CH IF2 メッセージ制御 Base + 20H IF1 データ A1 Base + 50H IF2 データ A1 Base + 22H IF1 データ A2 Base + 52H IF2 データ A2 Base + 24H IF1 データ B1 Base + 54H IF2 データ B1 Base + 26H IF1 データ B2 Base + 56H IF2 データ B2 317 第 11 章 CAN コントローラ IFx コマンド要求レジスタ (IFxCREQ) 11.4.2.1 IFx コマンド要求レジスタ (IFxCREQ) は , メッセージ RAM のメッセージ番号の選択 とメッセージ RAM とメッセージバッファレジスタ間の転送を行います。また , テス トのベーシックモードでは , IF1 を送信制御用に IF2 を受信制御用として使用しま す。 ■ レジスタ構成 IFx コマンド要求レジスタ ( 上位バイト ) アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 Base + 10H & Base + 40H res R/W res R res R res R res R res R res R res R 00000000B bit4 bit3 bit2 bit1 bit0 IFx コマンド要求レジスタ ( 下位バイト ) アドレス bit7 bit6 Base + 11H & Base + 41H res R/W res R/W bit5 R/W R/W Message Number R/W R/W 初期値 00000000B R/W R/W R/W :リード / ライト可能 R :リードオンリ ■ レジスタ機能 IFx コマンド要求レジスタへメッセージ番号を書き込むとすぐにメッセージ RAM と メッセージバッファレジスタ ( マスク , アービトレーション , メッセージ制御 , データ レジスタ ) とのメッセージ転送が開始されます。この書込み動作で , BUSY ビットが "1"にセットされ転送処理中であることを示します。その転送が終了すると, BUSYビッ トが "0" にリセットされます。 BUSY ビットが "1" のときに , CPU からメッセージインタフェースレジスタへアクセス が発生すると , BUSY ビットが "0" になるまで ( コマンド要求レジスタ書込み後 , クロッ クで 3 ∼ 6 サイクル期間 ) , CPU をウェイトさせます。 テストベーシックモードでは , BUSY ビットの使用方法が異なります。IF1 コマンド要 求レジスタは , 送信メッセージとして使用され , BUSY ビットに "1" をセットすること によりメッセージ送信開始を指示します。 メッセージ転送が正常終了すると, BUSYビッ トは "0" にリセットされます。また , BUSY ビットを "0" にリセットすることにより , い つでもメッセージ転送を中断させることが可能です。 IF2 コマンド要求レジスタは , 受信メッセージとして使用され , BUSY ビットを "1" に セットすることにより , 受信したメッセージを IF2 メッセージインタフェースレジスタ に格納します。 318 第 11 章 CAN コントローラ [bit15] BUSY:ビジーフラグビット • テストベーシックモード以外 BUSY 機能 0 メッセージインタフェースレジスタとメッセージ RAM 間でデータ 転送処理を行っていないことを示します。[ 初期値 ] 1 メッセージインタフェースレジスタとメッセージ RAM 間でデータ 転送処理中であることを示します。 • テストベーシックモード - IF1 コマンド要求レジスタ BUSY 機能 0 メッセージ送信を禁止します。 1 メッセージ送信を許可します。 - IF2 コマンド要求レジスタ BUSY 機能 0 メッセージ受信を禁止します。 1 メッセージ受信を許可します。 BUSY ビットは , 読出しおよび書込みが可能です。テストのベーシックモード時以 外は , このビットに何を書いても動作に影響しません ( ベーシックモードについて は , 「11.5.7 テストモード」を参照してください ) 。 [bit14 ∼ bit5] res:予約ビット これらのビットからは , "0000000000B" が読み出されます。 書込みの場合 "0000000000B" を設定してください。 [bit4 ∼ bit0] Message Number:メッセージ番号 (32 メッセージバッファ CAN 用 ) Message Number 機能 00H 設定禁止です。 設定した場合 , 20H として解釈され , 20H が読み出されます。 01H ∼ 20H 処理を行うメッセージ番号を設定します。 21H ∼ 3FH 設定禁止です。 設定した場合 , 01H ∼ 1FH として解釈され , 解釈された値が 読み出されます。 319 第 11 章 CAN コントローラ [bit4 ∼ bit0] Message Number:メッセージ番号 (128 メッセージバッファ CAN 用 ) Message Number 機能 00H 設定禁止です。 設定した場合 , 20H として解釈され , 20H が読み出されます。 01H ∼ 80H 処理を行うメッセージ番号を設定します。 81H ∼ FFH 設定禁止です。 設定した場合 , 01H ∼ 7FH として解釈され , 解釈された値が 読み出されます。 320 第 11 章 CAN コントローラ IFx コマンドマスクレジスタ (IFxCMSK) 11.4.2.2 IFx コマンドマスクレジスタ (IFxCMSK) は , メッセージインタフェースレジスタと メッセージ RAM 間の転送方向を制御し , どのデータを更新するかを設定します。ま た , テストのベーシックモードでは本レジスタは無効となります。 ■ レジスタ構成 IFx コマンドマスクレジスタ ( 上位バイト ) アドレス Base + 12H & Base + 42H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 res R res R res R res R res R res R res R res R 00000000B bit4 bit3 bit2 bit1 bit0 初期値 IFx コマンドマスクレジスタ ( 下位バイト ) bit7 アドレス Base + 13H & WR/RD Base + 43H R/W bit6 bit5 Mask Arb Control CIP TxRqst/ NewDat R/W R/W R/W R/W R/W Data A Data B R/W 00000000B R/W R/W :リード / ライト可能 R :リードオンリ テストベーシックモードではこのレジスタの設定は無効となります。 ■ レジスタ機能 [bit15 ∼ bit8] res:予約ビット これらのビットからは , "00000000B" が読み出されます。 書込みの場合 "00000000B" を設定してください。 [bit7] WR/RD:ライト / リード制御ビット WR/RD 機能 0 メッセージ RAM からデータを読み出すことを示します。メッセージ RAM からの読出しは IFx コマンド要求レジスタへの書込みによって実 行されます。メッセージ RAM から読み出すデータは , Mask, Arb, Control, CIP, TxRqst/NewDat, Data A, Data B ビットの設定に依存します。 [ 初期値 ] 1 メッセージ RAM へデータを書き込むことを示します。メッセージ RAM への書込みは IFx コマンド要求レジスタへの書込みによって実行 されます。メッセージ RAM への書込みデータは , Mask, Arb, Control, CIP, TxRqst/NewDat, Data A, Data B ビットの設定に依存します。 リセット後 , メッセージ RAM のデータは不定です。メッセージ RAM のデータが不 定状態でメッセージ RAM のデータを読み出すことは禁止です。 IFx コマンドマスクレジスタの bit6 ∼ bit0 は , 転送方向 (WR/RD ビット ) の設定に より異なる意味を持ちます。 321 第 11 章 CAN コントローラ ● 転送方向がライトの場合 (WR/RD=1) [bit6] Mask:マスクデータ更新ビット Mask 機能 0 メッセージオブジェクト * のマスクデータ (ID マスク+ MDir + MXtd) を更新しない [ 初期値 ] 1 メッセージオブジェクト * のマスクデータ (ID マスク+ MDir + MXtd) を更新する [bit5] Arb:アービトレーションデータ更新ビット Arb 機能 0 メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd + MsgVal) を更新しない [ 初期値 ] 1 メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd + MsgVal) を更新する [bit4] Control:制御データ更新ビット Control 機能 0 メッセージオブジェクト * の制御データ (IFx メッセージ制御レジス タ ) を更新しない [ 初期値 ] 1 メッセージオブジェクト * の制御データ (IFx メッセージ制御レジス タ ) を更新する [bit3] CIP:割込みクリアビット 本ビットに "0" または "1" を設定しても CAN コントローラへの動作に影響を与えま せん。 [bit2] TxRqst/NewDat:メッセージ送信要求ビット TxRqst/NewDat 機能 0 メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst ビットに "0" を設定 [ 初期値 ] 1 メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst ビットに "1" を設定 ( 送信要求 ) IFx コマンドマスクレジスタの TxRqst/NewDat ビットが "1" に設定されると , IFxメッ セージ制御レジスタの TxRqst ビットの設定は無効となります。 322 第 11 章 CAN コントローラ [bit1] Data A:データ 0 ∼ 3 更新ビット Data A 機能 0 メッセージオブジェクト * のデータ 0 ∼ 3 を更新しない [ 初期値 ] 1 メッセージオブジェクト * のデータ 0 ∼ 3 を更新する [bit0] Data B:データ 4 ∼ 7 更新ビット Data B 機能 0 メッセージオブジェクト * のデータ 4 ∼ 7 を更新しない [ 初期値 ] 1 メッセージオブジェクト * のデータ 4 ∼ 7 を更新する *:「11.4.3 メッセージオブジェクト」を参照してください。 323 第 11 章 CAN コントローラ ● 転送方向が読出しの場合 (WR/RD=0) メッセージオブジェクトへの読出しアクセスにより , IntPnd および NewDat ビットは "0" にリセットすることが可能です。ただし , IFx メッセージ制御レジスタの IntPnd お よび NewDat ビットには , 読出しアクセスによりリセットされる前の IntPnd, NewDat ビットが格納されます。 テストのベーシックモードでは無効となります。 [bit6] Mask:マスクデータ更新ビット Mask 機能 0 メッセージオブジェクト * から IFx マスクレジスタ 1, 2 へデータ (ID マスク+ MDir + MXtd ) を転送しない [ 初期値 ] 1 メッセージオブジェクト * から IFx マスクレジスタ 1, 2 へデータ (ID マスク+ MDir + MXtd ) を転送する [bit5] Arb:アービトレーションデータ更新ビット Arb 機能 0 メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ (ID + Dir + Xtd + MsgVal) を転送しない [ 初期値 ] 1 メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ (ID + Dir + Xtd + MsgVal) を転送する [bit4] Control:制御データ更新ビット Control 機能 0 メッセージオブジェクト * から IFx メッセージ制御レジスタへデー タを転送しない [ 初期値 ] 1 メッセージオブジェクト * から IFx メッセージ制御レジスタへデー タを転送する [bit3] CIP:割込みクリアビット CIP 324 機能 0 メッセージオブジェクト * および CAN 割込みペンディングレジス タの IntPnd ビットを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN 割込みペンディングレジス タの IntPnd ビットを "0" にクリア 第 11 章 CAN コントローラ [bit2] TxRqst/NewDat:データ更新ビット TxRqst/NewDat 機能 0 メッセージオブジェクト * および CAN データ更新レジスタ の NewDat ビットを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN データ更新レジスタ の NewDat ビットを "0" にクリア [bit1] Data A:データ 0 ∼ 3 更新ビット Data A 機能 0 メッセージオブジェクト * および CAN データレジスタ A1, A2 の データを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN データレジスタ A1, A2 の データを更新 [bit0] Data B:データ 4 ∼ 7 更新ビット Data B 機能 0 メッセージオブジェクト * および CAN データレジスタ B1, B2 の データを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN データレジスタ B1, B2 の データを更新 *:「11.4.3 メッセージオブジェクト」を参照してください。 325 第 11 章 CAN コントローラ IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) 11.4.2.3 IFx マスクレジスタ (IFxMSK1, IFxMSK2) は , メッセージ RAM のメッセージオブ ジェクトマスクデータを読出し / 書込みするために用いられます。また , テストの ベーシックモードでは , 設定されているマスクデータは無効となります。 各ビットの機能については , 「11.4.3 メッセージオブジェクト」を参照してくださ い。 ■ レジスタ構成 IFx マスクレジスタ 2( 上位バイト ) アドレス bit15 bit14 bit13 bit12 bit11 Base + 14H & Base + 44H MXtd MDir Reserved R/W R/W bit10 bit9 bit8 R R/W R/W R/W R/W R/W bit5 bit4 bit3 bit2 bit1 bit0 初期値 11111111B Msk28 ∼ Msk24 IFx マスクレジスタ 2( 下位バイト ) bit7 アドレス Base + 15H & Base + 45H bit6 11111111B Msk23 ∼ Msk16 R/W R/W R/W 初期値 R/W R/W R/W R/W R/W bit12 bit11 bit10 bit9 bit8 IFx マスクレジスタ 1( 上位バイト ) bit15 アドレス Base + 16H & Base + 46H bit14 bit13 11111111B Msk15 ∼ Msk8 R/W R/W R/W 初期値 R/W R/W R/W R/W R/W bit4 bit3 bit2 bit1 bit0 IFx マスクレジスタ 1( 下位バイト ) bit7 アドレス Base + 17H & Base + 47H bit6 bit5 R/W R/W R/W R/W R/W 初期値 11111111B Msk7 ∼ Msk0 R/W R/W R/W R/W :リード / ライト可能 R :リードオンリ IFx マスクレジスタのビット説明については , 「11.4.3 メッセージオブジェクト」を参 照してください。 レジスタの予約ビット (IFx マスクレジスタ 2 の bit13) からは "1" が読み出されます。書 込み時は , "1" を書き込んでください。 326 第 11 章 CAN コントローラ IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2) 11.4.2.4 IFx アービトレーションレジスタ (IFxARB1, IFxARB2) レジスタは , メッセージ RAM のメッセージオブジェクトアービトレーションデータを読出し / 書込みするた めに用いられます。また , テストのベーシックモードでは無効となります。 各ビットの機能については , 「11.4.3 メッセージオブジェクト」を参照してくださ い。 ■ レジスタ構成 IFx アービトレーションレジスタ 2( 上位バイト ) bit15 アドレス Base + 18H & MsgVal Base + 48H R/W bit14 bit13 Xtd Dir R/W R/W bit12 bit11 bit10 bit9 bit8 ID28 ∼ ID24 R/W 初期値 00000000B R/W R/W R/W R/W bit3 bit2 bit1 bit0 R/W R/W R/W R/W bit11 bit10 bit9 bit8 IFx アービトレーションレジスタ 2( 下位バイト ) アドレス bit7 bit6 bit5 bit4 Base + 19H & Base + 49H R/W R/W R/W R/W 初期値 00000000B ID23 ∼ ID16 IFx アービトレーションレジスタ 1( 上位バイト ) bit15 アドレス Base + 1AH & Base + 4AH bit14 bit13 bit12 00000000B ID15 ∼ ID8 R/W R/W R/W R/W 初期値 R/W R/W R/W R/W bit3 bit2 bit1 bit0 IFx アービトレーションレジスタ 1( 下位バイト ) bit7 アドレス Base + 1BH & Base + 4BH bit6 bit5 bit4 00000000B ID7 ∼ ID0 R/W R/W R/W R/W R/W 初期値 R/W R/W R/W R/W :リード / ライト可能 IFx アービトレーションレジスタのビット説明については , 「11.4.3 メッセージオブ ジェクト」を参照してください。 送信途中でメッセージオブジェクトの MsgVal ビットを "0" にクリアした場合 , 送信が 完了した時点で CAN ステータスレジスタの TxOk ビットは "1" になりますが , メッセー ジオブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされま せん。メッセージインタフェースレジスタによって TxRqst ビットを "0" にクリアして ください。 327 第 11 章 CAN コントローラ IFx メッセージ制御レジスタ (IFxMCTR) 11.4.2.5 IFx メッセージ制御レジスタ (IFxMCTR) は , メッセージ RAM のメッセージオブジェ クト制御データを読出し / 書込みするために用いられます。また , テストのベーシッ クモードでは , IF1 メッセージ制御レジスタは無効となります。IF2 メッセージ制御 レジスタの NewDat と MsgLst は通常の動作を行い , DLC ビットは受信したメッ セージの DLC を表示します。その他の制御ビットは無効 ("0") として動作します。 各ビットの機能については , 「11.4.3 メッセージオブジェクト」を参照してくださ い。 ■ レジスタ構成 IFx メッセージ制御レジスタ ( 上位バイト ) bit15 アドレス bit14 Base + 1CH & NewDat MsgLst Base + 4CH R/W R/W bit13 bit12 bit11 bit10 IntPnd UMask TxIE RxIE bit9 bit8 R/W R/W R/W R/W R/W R/W bit3 bit2 bit1 bit0 RmtEn TxRqst 初期値 00000000B IFx メッセージ制御レジスタ ( 下位バイト ) アドレス bit7 Base + 1DH & Base + 4DH R/W EoB bit6 bit5 bit4 Reserved Reserved Reserved R R R 00000000B DLC3 ∼ DLC0 R/W R/W R/W 初期値 R/W R/W :リード / ライト可能 R :リードオンリ IFx メッセージ制御レジスタのビット説明については , 「11.4.3 メッセージオブジェク ト」を参照してください。 TxRqst, NewDat および IntPnd ビットは , IFx コマンドマスクレジスタの WR/RD ビット の設定によって以下のような動作になります。 ● 転送方向が書込みの場合 (IFx コマンドマスクレジスタ:WR/RD=1) IFx コマンドマスクレジスタの TxRqst/NewDat が "0" に設定されている場合のみ , 本レ ジスタの TxRqst ビットが有効となります。 ● 転送方向が読出しの場合 (IFx コマンドマスクレジスタ:WR/RD=0) IFx コマンドマスクレジスタの CIP ビットを "1" に設定し , IFx コマンド要求レジスタ への書込みによりメッセージオブジェクトおよびCAN割込みペンディングレジスタの IntPnd ビットをリセットした場合 , 本レジスタにはリセットされる前の IntPnd ビット が格納されます。 IFx コマンドマスクレジスタの TxRqst/NewDat ビットを "1" に設定し , IFx コマンド要 求レジスタへの書込みによりメッセージオブジェクトおよびCANデータ更新レジスタ の NewDat ビットをリセットした場合 , 本レジスタにはリセットする前の NewDat ビッ トが格納されます。 328 第 11 章 CAN コントローラ 11.4.2.6 IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFxDTB2) は , メッセージ RAM のメッセージオブジェクト送受信データを読出し / 書込みするために用いられます。 データフレームの送受信のみ使用され , リモートフレームの送受信には使用されま せん。 ■ レジスタ構成 IFx メッセージデータ A1 ( アドレス 20H & 50H) addr + 0 addr + 1 Data(0) Data(1) IFx メッセージデータ A2 ( アドレス 22H & 52H) Data(4) IFx メッセージデータ B1 ( アドレス 24H & 54H) Data(3) Data(7) Data(2) Data(3) Data(6) Data(7) Data(1) Data(0) Data(5) Data(4) Data(2) IFx メッセージデータ A1 ( アドレス 32H & 62H) IFx メッセージデータ B2 ( アドレス 34H & 64H) addr + 3 Data(5) IFx メッセージデータ B2 ( アドレス 26H & 56H) IFx メッセージデータ A2 ( アドレス 30H & 60H) addr + 2 Data(6) IFx メッセージデータ B1 ( アドレス 36H & 66H) IFx データレジスタ bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Data R/W R/W R/W R/W 初期値 00000000B R/W R/W R/W R/W R/W :リード / ライト可能 ■ レジスタ機能 ● 送信メッセージデータの設定 設定したデータは , MSB (bit7, bit15) より開始して Data(0), Data(1), ... , Data(7) の順で送 信されます。 ● 受信メッセージデータ 受信メッセージデータは , MSB (bit7, bit15) より開始して Data(0), Data(1), ... , Data(7) の 順で格納されます。 受信メッセージデータが8バイトより少ない場合は, データレジスタの残りのバイトは 不定です。 メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ ますので , 4 バイトのうちある一部のデータだけを更新することはできません。 329 第 11 章 CAN コントローラ メッセージオブジェクト 11.4.3 メッセージ RAM には , 32 ( 品種によって 128 まで ) のメッセージオブジェクトがあ ります。メッセージ RAM への CPU アクセスと CAN コントローラからのアクセス の競合を回避するために , CPU はメッセージオブジェクトへの直接アクセスはでき ません。これらのアクセスは , IFx メッセージインタフェースレジスタ経由で行いま す。 本節では , メッセージオブジェクトの構成と機能を説明します。 ■ メッセージオブジェクトの構成 メッセージオブジェクト UMask MsgVal Msk28 ∼ MXtd Msk0 ID28 ∼ ID0 Xtd MDir Dir EoB New Dat DLC3 ∼ Data0 DLC0 Data1 MsgLst RxIE TxIE Data2 Data3 Data4 IntPnd RmtEn TxRqst Data5 Data6 Data7 <注意事項> メッセージオブジェクトは , CAN 制御レジスタの Init ビット , ハードウェアリセットでは 初期化されません。ハードウェアリセットの場合 , ハードウェアリセット解除後 , CPU に よってメッセージ RAM を初期化するかメッセージ RAM の MsgVal を "0" にしてください。 ■ メッセージオブジェクトの機能 ID28 ∼ ID0, Xtd, Dir ビットは , メッセージを送信する場合 , ID とメッセージの種類に 使用されます。メッセージを受信する場合 , Msk28 ∼ Msk0, MXtd, MDir ビットととも にアクセプタンスフィルタで使用されます。 アクセプタンスフィルタを通過したデータフレームもしくはリモートフレームは, メッ セージオブジェクトに格納されます。Xtd は拡張フレームか標準フレームかを示し , Xtd が "1" の場合は 29 ビット ID ( 拡張フレーム ) を , Xtd が "0" の場合は 11 ビット ID ( 標 準フレーム ) を受信することになります。 受信したデータフレームもしくはリモートフレームが 1 つ以上のメッセージオブジェ クトと一致した場合は , 一致した最小のメッセージ番号に格納されます。詳細は , 「11.5.3 メッセージ受信動作」の受信メッセージのアクセプタンスフィルタを参照して ください。) 330 第 11 章 CAN コントローラ MsgVal:有効メッセージビット MsgVal 機能 0 メッセージオブジェクトは無効です。 メッセージの送受信は行いません。 1 メッセージオブジェクトは有効です。 メッセージの送受信が可能となります。 • CAN 制御レジスタの Init ビットを "0" にリセットする前の初期化中に , すべての 未使用メッセージオブジェクトのMsgValビットをCPUでリセットしてください。 • ID28 ∼ ID0, Xtd, Dir, DLC3 ∼ DLC0 を変更する前 , もしくはメッセージオブジェ クトが必要ない場合は , MsgVal ビットを必ず "0" にリセットしてください。 • 送信中に MsgVal ビットを "0" にすると送信が完了した時点で CAN ステータスレ ジスタの TxOk ビットは "1" になりますが , メッセージオブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされません。メッセージイン タフェースレジスタによって TxRqst ビット "0" にクリアしてください。 UMask:アクセプタンスマスク許可ビット UMask 機能 0 Msk28 ∼ Msk0, MXtd, MDir を使用しません。 1 Msk28 ∼ Msk0, MXtd, MDir を使用します。 • CAN 制御レジスタの Init ビットが "1" のとき , あるいは MsgVal ビットが "0" の ときに UMask ビットを変更してください。 • Dir ビットが "1" かつ RmtEn ビットが "0" のとき , UMask の設定により動作が異 なります。 - UMask が "1" の場合は , アクセプタンスフィルタを通過しリモートフレームを 受信すると , TxRqst ビットを "0" にリセットします。そのとき , 受信した ID, IDE, RTR, DLC はメッセージオブジェクトに格納され , NewDat ビットは "1" にセッ トされ , データは変更されません。( データフレームのように取り扱います。) - UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのま ま保持され , リモートフレームを無視します。 ID28 ∼ ID0:メッセージ ID ID 機能 ID28 ∼ ID0 29 ビット ID ( 拡張フレーム ) を指示 ID28 ∼ ID18 11 ビット ID ( 標準フレーム ) を指示 331 第 11 章 CAN コントローラ Msk28 ∼ Msk0:ID マスク Msk 機能 0 メッセージオブジェクトの ID と対応するビットをマスクあり 1 メッセージオブジェクトの ID と対応するビットのマスクなし 11 ビット ID ( 標準フレーム ) がメッセージオブジェクトに設定されると , 受信した データフレームの ID は , ID28 ∼ ID18 へ書き込まれます。ID マスクは , Msk28 ∼ Msk18 が使用されます。 Xtd:拡張 ID 許可ビット Xtd 機能 0 メッセージオブジェクトは 11 ビット ID ( 標準フレーム ) 1 メッセージオブジェクトは 29 ビット ID ( 拡張フレーム ) MXtd:拡張 ID マスクビット MXtd 機能 0 アクセプタンスフィルタでの拡張 ID ビット (IDE) のマスクあり 1 アクセプタンスフィルタでの拡張 ID ビット (IDE) のマスクなし Dir:メッセージ方向ビット Dir 機能 0 受信方向を示します。 TxRqst が "1" にセットされると , リモートフレームの送信を行い , TxRqst が "0" のときは , アクセプタンスフィルタを通過したデータ フレームを受信します。 1 送信方向を示します。 TxRqst が "1" にセットされると , データフレームを送信し , TxRqst が "0" で RmtEn が "1" にセットされている場合 , アクセプタンス フィルタを通過したリモートフレームの受信によって , CAN コント ローラ自身が TxRqst を "1" にセットします。 MDir:メッセージ方向マスクビット MDir 機能 0 アクセプタンスフィルタでのメッセージ方向ビット (Dir) のマスクあり 1 アクセプタンスフィルタでもメッセージ方向ビット (Dir) のマスクなし <注意事項> MDir ビットには常に "1" を設定してください。 332 第 11 章 CAN コントローラ EoB:エンドオブバッファビット ( 詳細は , 「11.5.4 FIFO バッファ機能」参照 ) EoB 機能 0 メッセージオブジェクトは FIFO バッファとして使用され , 最終メッセージでない 1 単一メッセージオブジェクト , または FIFO バッファの最終メッセージオブジェクト EoB ビットは , 2 ∼ 32 メッセージの FIFO バッファを構成するために使用します。 単一メッセージオブジェクト (FIFO を使用しない場合 ) は , 必ず EoB ビットに "1" を設定してください。 NewDat: データ更新ビット NewDat 機能 0 有効データなし 1 有効データあり MsgLst: メッセージロスト MsgLst 機能 0 メッセージロストの発生なし 1 メッセージロスト発生 MsgLst ビットは Dir ビットが "0" のとき ( 受信方向 ) のみ有効です。 RxIE:受信割込みフラグイネーブルビット RxIE 機能 0 フレーム受信成功後 , IntPnd の変更なし 1 フレーム受信成功後 , IntPnd は "1" にセット TxIE:送信割込みフラグイネーブルビット TxIE 機能 0 フレーム送信成功後 , IntPnd の変更なし 1 フレーム送信成功後 , IntPnd は "1" にセット 333 第 11 章 CAN コントローラ IntPnd:割込みペンディングビット IntPnd 機能 0 割込み要因なし 1 割込み要因あり ほかに優先度の高い割込みがない場合は , CAN 割込みレジスタの IntId ビットはこのメッセージオブジェクトを示します。 RmtEn:リモートイネーブル RmtEn 機能 0 リモートフレームの受信での , TxRqst の変更なし 1 Dir ビットが "1" でリモートフレームを受信すると , TxRqst は "1" に セット Dir ビットが "1" かつ RmtEn ビットが "0" のとき , UMask の設定により動作が異な ります。 -UMask が "1" の場合は , アクセプタンスフィルタを通過しリモートフレームを受 信したとき , TxRqst ビットを "0" にリセットします。そのとき , 受信した ID, IDE, RTR, DLC はメッセージオブジェクトに格納され , NewDat ビットは "1" に セットされ , データは変更されません ( データフレームのように取り扱われま す )。 -UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのまま 保持され , リモートフレームを無視します。 TxRqst:送信要求ビット TxRqst 機能 0 送信アイドル状態 ( 送信中でもなく , 送信待ち状態でもない ) 1 送信中または , 送信待ち状態 DLC3 ∼ DLC0:データ長コード DLC3 ∼ DLC0 機能 0∼8 データフレーム長は 0 ∼ 8 バイト 9 ∼ 15 設定禁止 設定された場合は , 8 バイト長となります。 データフレームを受信すると DLC ビットには , 受信した DLC が格納されます。 334 第 11 章 CAN コントローラ Data 0 ∼ Data 7:データ 0 ∼ 7 機能 Data 0 CAN データフレームの最初のデータバイト Data 1 CAN データフレームの 2 番目のデータバイト Data 2 CAN データフレームの 3 番目のデータバイト Data 3 CAN データフレームの 4 番目のデータバイト Data 4 CAN データフレームの 5 番目のデータバイト Data 5 CAN データフレームの 6 番目のデータバイト Data 6 CAN データフレームの 7 番目のデータバイト Data 7 CAN データフレームの 8 番目のデータバイト • CAN バスへのシリアル出力は , MSB (bit7 もしくは bit15) より出力されます。 • 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバ イトデータは不定です。 • メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行 われますので , 4 バイトのうちある一部のデータだけを更新することはできませ ん。 335 第 11 章 CAN コントローラ 11.4.4 メッセージハンドラレジスタ メッセージハンドラレジスタは , すべて読出し専用です。メッセージオブジェクト の TxRqst, NewDat, IntPnd, MsgVal, IntId ビットは , ステータスを表示します。 ■ メッセージハンドラレジスタ • CAN 送信要求レジスタ 1, 2 (TREQR1, TREQR2) • CAN 新データレジスタ 1, 2 (NEWDT1, NEWDT2) • CAN 割込みペンディングレジスタ 1, 2 (INTPND1, INTPND2) • CAN メッセージ有効レジスタ 1, 2 (MSGVAL1, MSGVAL2) 336 第 11 章 CAN コントローラ 11.4.4.1 CAN 送信要求レジスタ (TREQR1, TREQR2) CAN 送信要求レジスタ (TREQR1, TREQR2) は , 全メッセージオブジェクトの TxRqst ビットを表示します。TxRqst ビットを読み出すことにより , どのメッセー ジオブジェクトの送信要求がペンディング中であるかチェックすることができます。 ■ レジスタ構成 CAN 送信要求レジスタ 2( 上位バイト ) アドレス bit15 bit14 bit13 Base + 80H bit12 bit11 bit10 bit9 bit8 00000000B TxRqst32 ∼ TxRqst25 R R R 初期値 R R R R R bit4 bit3 bit2 bit1 bit0 CAN 送信要求レジスタ 2( 下位バイト ) アドレス bit7 bit6 bit5 Base + 81H 00000000B TxRqst24 ∼ TxRqst17 R R R 初期値 R R R R R bit12 bit11 bit10 bit9 bit8 CAN 送信要求レジスタ 1( 上位バイト ) アドレス bit15 bit14 bit13 Base + 82H R R R 初期値 00000000B TxRqst16 ∼ TxRqst9 R R R R R bit4 bit3 bit2 bit1 bit0 CAN 送信要求レジスタ 1( 下位バイト ) アドレス bit7 bit6 bit5 TxRqst8 ∼ TxRqst1 Base + 83H R R R R R R 初期値 00000000B R R R :リードオンリ 337 第 11 章 CAN コントローラ ■ レジスタ機能 TxRqst32 ∼ TxRqst1:送信要求ビット TxRqst 機能 0 送信アイドル状態 ( 送信中でもなく , 送信待ち状態でもない ) 1 送信中または , 送信待ち状態 TxRqst ビットのセット / リセット条件を以下に示します。 • セット条件 - IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "1" を設定し , IFx コマン ド要求レジスタへの書込みにより特定オブジェクトの TxRqst にセットできます。 - IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0", IFx メッセージ制御 レジスタの TxRqst に "1" を設定した場合 , IFx コマンド要求レジスタへの書込み により特定オブジェクトの TxRqst にセットできます。 - Dir ビットが "1", RmtEn ビットが "1" に設定し , アクセプタンスフィルタを通過し たリモートフレームの受信によりセットされます。 • リセット条件 - IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0", IFx メッセージ制御 レジスタの TxRqst に "0" を設定した場合 , IFx コマンド要求レジスタへの書込み により特定オブジェクトの TxRqst をリセットできます。 - フレームの送信が正常終了すると , リセットされます。 - Dir が "1", RmtEn が "0", UMask が "1" の場合 , アクセプタンスフィルタを通過し たリモートフレームの受信によりリセットされます。 32 メッセージバッファ以上を搭載する CAN マクロにおける送信要求ビットについて は以下の表を参照してください。 338 addr + 0 addr + 1 addr + 2 addr + 3 TREQR 4 & TREQR3 TxRqst64 ∼ TxRqst33 ( アドレス 84H) TxRqst64 ∼ TxRqst57 TxRqst56 ∼ TxRqst49 TxRqst48 ∼ TxRqst41 TxRqst40 ∼ TxRqst33 TREQR 6 & TREQR TxRqst96 ∼ TxRqst65 ( アドレス 88H) TxRqst96 ∼ TxRqst89 TxRqst88 ∼ TxRqst81 TxRqst80 ∼ TxRqst73 TxRqst72 ∼ TxRqst65 TREQR 8 & TREQR7 TxRqst128 ∼ TxRqst97 ( アドレス 8CH) TxRqst128 ∼ TxRqst121 TxRqst120 ∼ TxRqst113 TxRqst112 ∼ TxRqst105 TxRqst104 ∼ TxRqst97 第 11 章 CAN コントローラ CAN 新データレジスタ (NEWDT1, NEWDT2) 11.4.4.2 CAN 新データレジスタ (NEWDT1, NEWDT2) は , 全メッセージオブジェクトの NewDat ビットを表示します。NewDat ビットを読み出すことにより , どのメッセー ジオブジェクトのデータが更新されたかチェックすることができます。 ■ レジスタ構成 CAN データ更新レジスタ 2( 上位バイト ) bit15 アドレス bit14 bit13 Base + 90H bit12 bit11 bit10 bit9 bit8 00000000B NewDat32 ∼ NewDat25 R R R 初期値 R R R R R bit4 bit3 bit2 bit1 bit0 CAN データ更新レジスタ 2( 下位バイト ) bit7 アドレス bit6 bit5 Base + 91H 00000000B NewDat24 ∼ NewDat17 R R R 初期値 R R R R R bit12 bit11 bit10 bit9 bit8 CAN データ更新レジスタ 1( 上位バイト ) bit15 アドレス bit14 bit13 Base + 92H R R R 初期値 00000000B NewDat16 ∼ NewDat9 R R R R R bit4 bit3 bit2 bit1 bit0 CAN データ更新レジスタ 2( 下位バイト ) bit7 アドレス bit6 bit5 NewDat8 ∼ NewDat1 Base + 93H R R R R R R 初期値 00000000B R R R :リードオンリ NewDat32 ∼ NewDat1:データ更新ビット NewDat16 ∼ NewDat1 機能 0 新データなし 1 新データあり 339 第 11 章 CAN コントローラ NewDat ビットのセット / リセット条件を以下に示します。 • セット条件 - IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの NewDatに"1"を設定して, IFxコマンド要求レジスタの書込みにより特定オブジェ クトにセットできます。 - アクセプタンスフィルタを通過したデータフレームの受信によりセットされま す。 - Dir が "1", RmtEn が "0", UMask が "1" の場合 , アクセプタンスフィルタを通過し たリモートフレームの受信によりセットされます。 • リセット条件 - IFx コマンドマスクレジスタの WR/RD に "0", NewDat に "1" を設定した場合 , IFx コマンド要求レジスタの書込みにより特定オブジェクトの NewDat をリセットで きます。 - IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの NewDat を "0" に設定した場合 , IFx コマンド要求レジスタの書込みにより特定オ ブジェクトの NewDat をリセットできます。 - 送信用シフトレジスタ ( 内部レジスタ ) へデータを転送終了後 , リセットされま す。 32 メッセージバッファ以上を搭載する CAN マクロにおけるデータ更新ビットについ ては以下の表を参照してください。 340 addr + 0 addr + 1 addr + 2 addr + 3 NEWDT 4 & NEWDT 3 NewDat64 ∼ NewDat33 ( アドレス 94H) NewDat64 ∼ NewDat57 NewDat56 ∼ NewDat49 NewDat48 ∼ NewDat41 NewDat40 ∼ NewDat33 NEWDT 6 & NEWDT 5 NewDat96 ∼ NewDat65 ( アドレス 98H)) NewDat96 ∼ NewDat89 NewDat88 ∼ NewDat81 NewDat80 ∼ NewDat73 NewDat72 ∼ NewDat65 NEWDT 8 & NEWDT 7 NewDat128 ∼ NewDat128 ∼ NewDat97 NewDat121 ( アドレス 9CH)) NewDat120 ∼ NewDat113 NewDat112 ∼ NewDat105 NewDat104 ∼ NewDat97 第 11 章 CAN コントローラ 11.4.4.3 CAN 割込みペンディングレジスタ (INTPND1, INTPND2) CAN 割込みペンディングレジスタ (INTPND1, INTPND2) は , 全メッセージオブジェ クトの IntPnd ビットを表示します。IntPnd ビットを読み出すことにより , どのメッ セージオブジェクトが割込みペンディング中であるかチェックすることができます。 ■ レジスタ構成 CAN 割込みペンディングレジスタ 2( 上位バイト ) アドレス bit15 bit14 bit13 R R R bit12 bit11 bit10 bit9 bit8 R R R R bit3 bit2 bit1 bit0 00000000B IntPnd32 ∼ IntPnd25 Base + A0H R 初期値 CAN 割込みペンディングレジスタ 2( 下位バイト ) アドレス bit7 bit6 bit5 bit4 00000000B IntPnd24 ∼ IntPnd17 Base + A1H R R R R 初期値 R R R R bit11 bit10 bit9 bit8 CAN 割込みペンディングレジスタ 1( 上位バイト ) アドレス bit15 bit14 bit13 bit12 00000000B IntPnd16 ∼ IntPnd9 Base + A2H R R R R 初期値 R R R R bit3 bit2 bit1 bit0 CAN 割込みペンディングレジスタ 1( 下位バイト ) アドレス bit7 bit6 bit5 R R R R R 初期値 00000000B IntPnd8 ∼ IntPnd1 Base + A3H R bit4 R R R :リードオンリ 341 第 11 章 CAN コントローラ ■ レジスタ機能 IntPnd32 ∼ IntPnd1:割込みペンディングビット IntPnd16 ∼ IntPnd1 機能 0 割込み要因なし 1 割込み要因あり IntPnd ビットのセット / リセット条件を以下に示します。 • セット条件 - TxIE が "1" にセットされている場合 , フレームの正常送信完了によりセットされ ます。 - RxIE が "1" にセットされている場合 , アクセプタンスフィルタを通過したフレー ムの正常受信完了によりセットされます。 • リセット条件 - IFx コマンドマスクレジスタが WR/RD に "1", IntPnd に "1" を設定した場合 , IFx コマンド要求レジスタの書込みにより特定オブジェクトの IntPndをリセットでき ます。 32 メッセージバッファ以上を搭載する CAN マクロにおける割込みペンディングビッ トについては以下の表を参照してください。 342 addr + 0 addr + 1 addr + 2 addr + 3 INTPND 4 & INTPND3 IntPnd64 ∼ IntPnd33 ( アドレス A4H) IntPnd64 ∼ IntPnd57 IntPnd56 ∼ IntPnd49 IntPnd48 ∼ IntPnd41 IntPnd40 ∼ IntPnd33 INTPND 6 & INTPND5 IntPnd96 ∼ IntPnd65 ( アドレス A8H) IntPnd96 ∼ IntPnd89 IntPnd88 ∼ IntPnd81 IntPnd80 ∼ IntPnd73 IntPnd72 ∼ IntPnd65 INTPND 8 & INTPND7 IntPnd128 ∼ IntPnd97 ( アドレス ACH) IntPnd128 ∼ IntPnd121 IntPnd120 ∼ IntPnd113 IntPnd112 ∼ IntPnd105 IntPnd104 ∼ IntPnd97 第 11 章 CAN コントローラ 11.4.4.4 CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) は , 全メッセージオブジェク トの MsgVal ビットを表示します。MsgVal ビットを読み出すことにより , どのメッ セージオブジェクトが有効であるかチェックすることができます。 ■ レジスタ構成 CAN メッセージ有効レジスタ 2( 上位バイト ) アドレス bit15 bit14 bit13 R R R bit12 bit11 bit10 bit9 bit8 00000000B MsgVal32 ∼ MsgVal25 Base + B0H R 初期値 R R R R bit3 bit2 bit1 bit0 CAN メッセージ有効レジスタ 2( 下位バイト ) アドレス bit7 bit6 bit5 bit4 00000000B MsgVal24 ∼ MsgVal17 Base + B1H R R R R 初期値 R R R R bit11 bit10 bit9 bit8 CAN メッセージ有効レジスタ 1( 上位バイト ) アドレス bit15 bit14 bit13 bit12 00000000B MsgVal16 ∼ MsgVal9 Base + B2H R R R R 初期値 R R R R bit3 bit2 bit1 bit0 CAN メッセージ有効レジスタ 1( 下位バイト ) アドレス bit7 bit6 bit5 R R R R R 初期値 00000000B MsgVal8 ∼ MsgVal1 Base + B3H R bit4 R R R :リードオンリ 343 第 11 章 CAN コントローラ ■ レジスタ機能 MsgVal32 ∼ MsgVal1:メッセージ有効ビット MsgVal 16 ∼ MsgVal1 機能 0 メッセージオブジェクトは無効 メッセージの送受信は行いません。 1 メッセージオブジェクトは有効 メッセージの送受信が可能となります。 MsgVal ビットのセット / リセット条件を以下に示します。 • セット条件 - IFx アービトレーションレジスタ 2 の MsgVal に "1" を設定し , IFx コマンド要求 レジスタへの書込みにより特定オブジェクトの MsgVal をセットできます。 • リセット条件 - IFx アービトレーションレジスタ 2 の MsgVal に "0" を設定し , IFx コマンド要求 レジスタの書込みにより特定オブジェクトの MsgVal をリセットできます。 32 メッセージバッファ以上を搭載する CAN マクロにおけるメッセージ有効ビットに ついては以下の表を参照してください。 344 addr + 0 addr + 1 addr + 2 addr + 3 MSGVAL 4 , MSGVAL 3 MsgVal64 ∼ MsgVal33 ( アドレス A4H) MsgVal64 ∼ MsgVal57 MsgVal56 ∼ MsgVal49 MsgVal48 ∼ MsgVal41 MsgVal40 ∼ MsgVal33 MSGVAL 6 , MSGVAL 5 MsgVal96 ∼ MsgVal65 ( アドレス A8H) MsgVal96 ∼ MsgVal89 MsgVal88 ∼ MsgVal81 MsgVal80 ∼ MsgVal73 MsgVal72 ∼ MsgVal65 MSGVAL 8 , MSGVAL 7 MsgVal128 ∼ MsgVal97 ( アドレス ACH) MsgVal128 ∼ MsgVal121 MsgVal120 ∼ MsgVal113 MsgVal112 ∼ MsgVal105 MsgVal104 ∼ MsgVal97 第 11 章 CAN コントローラ 11.4.5 CAN プリスケーラレジスタ (CANPRE) CAN プリスケーラレジスタ (CANPRE) は , CAN インタフェースに供給するクロッ クの分周比を定義するものです。本レジスタの値を変更する場合は , CAN 制御レジ スタ (CTRLR) の初期化ビット (Init) を "1" にセットし , すべてのバス動作を停止し てください。 ■ レジスタ構成 CAN プリスケーラレジスタ アドレス 01A8H bit15 bit14 bit13 bit12 − R − R − R − R bit11 bit10 bit9 bit8 CANPRE3 CANPRE2 CANPRE1 CANPRE0 R/W R/W R/W 初期値 00000000B R/W R/W :リード / ライト可能 R :リードオンリ ■ レジスタ機能 [bit15 ∼ bit12] res:予約ビット これらのビットからは "0000B" が読み出されます。 書込みはレジスタに反映されません。 [bit11 ∼ bit8] CAN プリスケーラ設定ビット CANPRE[3:0] 機能 0000 CAN クロックとしてシステムクロックが選択 [ 初期値 ] 0001 CAN クロックとしてシステムクロックの 1/2 周期が選択 001x CAN クロックとしてシステムクロックの 1/4 周期が選択 01xx CAN クロックとしてシステムクロックの 1/8 周期が選択 1000 CAN クロックとしてシステムクロックの 2/3 周期が選択 クロックのデューティは 67% となります。 1001 CAN クロックとしてシステムクロックの 1/3 周期が選択 101x CAN クロックとしてシステムクロックの 1/6 周期が選択 11xx CAN クロックとしてシステムクロックの 1/12 周期が選択 • CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1" にセットし , すべてのバス動作を停止させた後に行ってください。 • 本レジスタの設定により CAN インタフェースに供給するクロックは 16 MHz 以 下としてください。 345 第 11 章 CAN コントローラ 11.5 CAN 機能 CAN コントローラの動作と機能について説明します。 以下の機能について説明します。 • メッセージオブジェクト • メッセージ送信動作 • メッセージ受信動作 • FIFO バッファ機能 • 割込み機能 • ビットタイミング • テストモード • ソフトウェア初期化 • CAN クロックプリスケーラ 346 第 11 章 CAN コントローラ 11.5.1 メッセージオブジェクト メッセージ RAM のメッセージオブジェクトとインタフェースについて説明します。 ■ メッセージオブジェクト メッセージ RAM のメッセージオブジェクト設定 (MsgVal, NewDat, IntPnd, TxRqst ビッ トを除く ) は , ハードウェアリセットによって初期化されません。そのためメッセージ オブジェクトの CPU での初期化 , または MsgVal ビットを無効 (MsgVal=0) に設定して ください。また , CAN ビットタイミングレジスタの設定は CAN 制御レジスタの Init ビットが "0" のときに行ってください。 メッセージオブジェクトの設定は, メッセージインタフェースレジスタ (IFxマスクレジ スタ , IFx アービトレーションレジスタ , IFx メッセージ制御レジスタ , IFx データレジ スタ ) に設定した後 , IFx コマンド要求レジスタへのメッセージ番号の書込みにより , そ のインタフェースレジスタのデータが指定されたメッセージオブジェクトへ転送され ます。 CAN 制御レジスタの Init ビットが "0" にクリアされると CAN コントローラは動作を開 始します。アクセプタンスフィルタを通過した受信メッセージは , メッセージ RAM へ 格納されます。送信要求が保留されているメッセージは , メッセージ RAM から CAN コントローラのシフトレジスタへ転送され , CAN バスへの送信が行われます。 CPU は , メッセージインタフェースレジスタ経由で受信メッセージの読出しおよび , 送 信メッセージの更新を行います。また , CAN 制御レジスタおよび IFx メッセージ制御 レジスタ ( メッセージオブジェクト ) の設定に応じて , CPU への割込みが行われます。 ■ メッセージ RAM とのデータ送受信 メッセージインタフェースレジスタとメッセージ RAM とのデータ転送を開始すると , IFx コマンド要求レジスタの BUSY ビットは "1" にセットされます。転送完了後 , BUSY ビットは "0" にクリアされます ( 図 11.5-1 参照 ) 。 IFx コマンドマスクレジスタは , 1 つのメッセージオブジェクトの全データ転送 , ある いはデータの部分転送のいずれかを設定します。メッセージ RAM の構造上 , メッセー ジオブジェクトの単一ビット / バイトの書込みは不可能となっており , 常に 1 つのメッ セージオブジェクトの全データをメッセージ RAM へ書込みます。したがって , メッ セージインタフェースレジスタからメッセージ RAM へのデータ転送は , リードモディ ファイライト実行サイクルを要しています。 347 第 11 章 CAN コントローラ 図 11.5-1 メッセージインタフェースレジスタとメッセージ RAM のデータ転送 スタート NO IFxコマンド要求レジスタ への書込み YES BUSY = 1 Interrupt = 0 NO YES WR/RD = 1 メッセージRAMからメッセージインタフェースレジスタ への読出し メッセージRAMからメッセージインタフェースレジスタ への読出し メッセージインタフェースレジスタからメッセージRAM への書込み BUSY = 0 Interrupt = 1 348 第 11 章 CAN コントローラ 11.5.2 メッセージ送信動作 送信メッセージオブジェクトの設定方法および送信動作について説明します。 ■ メッセージ送信 メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送がない場合 , CAN メッセージ有効レジスタの MsgVal ビットと CAN 送信要求レジスタの TxRqst ビッ トを評価します。送信要求を保留している中で , 最高優先度の有効メッセージオブジェ クトが , 送信用のシフトレジスタへ転送が行われます。そのときメッセージオブジェク トの NewDat ビットは "0" にリセットされます。 正常に送信が完了したとき , メッセージオブジェクトに新たなデータがない (NewDat=0) 場合は , TxRqst ビットは "0" にリセットされます。TxIE が "1" にセットされている場合 は , 送信成功後に IntPnd ビットが "1" にセットされます。CAN コントローラが CAN バス 上で調停に負けた場合 , あるいは転送中にエラーが発生した場合は , CAN バスがアイド ルになると , 直ちにメッセージの再送信が行われます。 ■ 送信優先度 メッセージオブジェクトの送信優先度は , メッセージ番号によって決定します。メッ セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( または搭載し ている最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 2 つ 以上の送信要求が保留されていると , 対応するメッセージオブジェクトの小さい番号 順に転送が行われます。 349 第 11 章 CAN コントローラ ■ 送信メッセージオブジェクトの設定 図 11.5-2 に送信オブジェクトの初期化方法を示します。 図 11.5-2 送信メッセージオブジェクトの初期化 MsgVal 1 Arb Data Mask application application application EoB Dir 1 1 New Dat MsgLst RxIE 0 0 0 TxIE Int Pnd RmtEn TxRqst application 0 application 0 IFx アービトレーションレジスタ (ID28 ∼ ID0 と Xtd ビット ) は , アプリケーションで 与えられ , 送信メッセージの ID およびメッセージの種類を定義します。 標準フレーム (11 ビット ID) を設定した場合は , ID28 ∼ ID18 を使用し , ID17 ∼ ID0 は 無効となります。拡張フレーム (29 ビット ID) を設定した場合は , ID28 ∼ ID0 を使用 します。 TxIE ビットに "1" をセットすると , メッセージオブジェクトの送信成功後に IntPnd ビッ トが "1" にセットされます。 RmtEn ビットに "1" をセットすると , 一致するリモートフレームを受信後 , TxRqst ビッ トに "1" をセットし , データフレームを自動的に送信します。 データレジスタ (DLC3 ∼ DLC0, Data0 ∼ Data7) の設定は , アプリケーションで与えら れます。 UMask=1 のとき , IFx マスクレジスタ (Msk28 ∼ Msk0, UMask, MXtd, MDir ビット ) は , マ スク設定によりグループ化された ID を持つリモートフレームを受信し , その後 , 送信を 許可 (TxRqst ビットに "1" をセット ) するために使用されます。詳細は「11.5.3 メッセー ジ受信動作」のリモートフレームを参照してください。 <注意事項> IFx マスクレジスタの Dir ビットをマスク許可に設定することは禁止です。 ■ 送信メッセージオブジェクトの更新 CPU は , 送信メッセージオブジェクトのデータを , メッセージインタフェースレジスタ 経由で更新することができます。 送信メッセージオブジェクトのデータは , 対応する IFx データレジスタの 4 バイト単位 (IFx データレジスタ A, IFx データレジスタ B 単位 ) でデータ書込みが行われます。そ のため 1 バイトだけ送信メッセージオブジェクトを変更することはできません。 8 バイトのデータのみを更新するときは , まず IFx コマンドマスクレジスタへ 0087H の 書込みを行います。そして , IFx コマンド要求レジスタへメッセージ番号の書込みによ り , 送信メッセージオブジェクトのデータ更新 (8 バイトデータ ) と TxRqst ビットへの "1" 書込みが同時に行われます。 送信中のメッセージ番号に連続して送信させたい場合 , TxRqst ビットと NewDat に "1" を設定してください。TxRqst ビットは "0" にリセットされずに連続送信が可能となり ます。 NewDat ビットが "1", TxRqst ビットがともに "1" の場合 , 送信を開始すると NewDat ビッ トは "0" にリセットされます。 • データを更新する場合は , IFx データレジスタ A もしくは IFx データレジスタ B の 4 バイト単位で行ってください。 • データのみを更新する場合は , NewDat ビットと TxRqst ビットに "1" を設定してく ださい。 350 第 11 章 CAN コントローラ 11.5.3 メッセージ受信動作 受信メッセージオブジェクトの設定方法および受信動作について説明します。 ■ 受信メッセージのアクセプタンスフィルタ メッセージのアービトレーション / コントロールフィールド (ID + IDE + RTR + DLC) が CAN コントローラ受信用シフトレジスタへ完全にシフトされると , 有効メッセージ オブジェクトとの一致比較のためにメッセージ RAM のスキャンを開始します。 このとき , メッセージ RAM のメッセージオブジェクトから調停フィールドとマスク データ (MsgVal, UMask, NewDat, EoB を含む ) がロードされ , メッセージオブジェクト とシフトレジスタの調停フィールドがマスクデータを含んで比較されます。 この動作は , メッセージオブジェクトとシフトレジスタの調停フィールドが一致検出 されるまで , またはメッセージ RAM の最終ワードに到達するまで , 繰り返し実行しま す。一致が検出されると , メッセージ RAM のスキャンは停止され , 受信フレームのタ イプ ( データフレームまたはリモートフレーム ) により , CAN コントローラは処理を 行います。 ■ 受信優先度 メッセージオブジェクトの受信優先度は , メッセージ番号によって決定します。メッ セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( または搭載し ている最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , アク セプタンスフィルタで 2 つ以上一致した場合は , メッセージ番号の小さい番号が受信 メッセージオブジェクトとなります。 ■ データフレーム受信 CAN コントローラは , アクセプタンスフィルタで一致したメッセージオブジェクトの メッセージ RAM へ , シフトレジスタから受信メッセージを転送し格納します。この格 納するデータは , データバイトだけではなく , すべてのアービトレーションフィールド およびデータ長コードも格納します。これは , IFx マスクレジスタがマスク設定されて いる場合でも実行されます (ID とデータバイトを保持するために格納されます )。 NewDat ビットは , 新たなデータが受信されると "1" にセットされます。CPU がメッ セージオブジェクトを読み出したときには , NewDat ビットを "0" にリセットしてくだ さい。メッセージ受信時に , 既に NewDat ビットが "1" にセットされている場合は , そ の前のデータが失われたことになり , MsgLst が "1" にセットされます。 RxIE ビットが "1" にセットされている場合 , メッセージバッファを受信すると CAN 割 込みペンディングレジスタの IntPnd ビットに "1" をセットします。そのとき , そのメッ セージオブジェクトの TxRqst ビットは "0" にリセットされます。これは , リモートフ レーム送信処理中に , 要求データフレームを受信した場合 , 送信処理を防ぐために行わ れます。 351 第 11 章 CAN コントローラ ■ リモートフレーム リモートフレーム受信時の動作は , 下記の 3 つの処理があります。一致するメッセージ オブジェクトの設定より , リモートフレーム受信時の処理が選択されます。 1) Dir=1 ( 送信方向 ) , RmtEn=1, UMask=1 または 0 一致したリモートフレームの受信を行い , このメッセージオブジェクトの TxRqst ビットのみ "1" にセットされ , リモートフレームに対するデータフレームの自動返 信 ( 送信 ) を行います (TxRqst ビット以外のメッセージオブジェクトは変更されま せん )。 2) Dir=1( 送信方向 ) , RmtEn=0, UMask=0 受信したリモートフレームがメッセージオブジェクトと一致しても受信しないで リモートフレームを無効にします ( このメッセージオブジェクトの TxRqst ビットは 変更されません ) 。 3) Dir=1 ( 送信方向 ) , RmtEn=0, UMask=1 受信したリモートフレームがメッセージオブジェクトと一致した場合 , このメッ セージオブジェクトの TxRqst ビットは "0" にリセットされ , リモートフレームは受 信データフレームのように処理されます。受信したアービトレーションフィールド とコントロールフィールド (ID + IDE + RTR + DLC) は , メッセージ RAM のメッ セージオブジェクトへ格納され , このメッセージオブジェクトの NewDat ビットが "1" にセットされます。メッセージオブジェクトのデータフィールドは変更されま せん。 352 第 11 章 CAN コントローラ ■ 受信メッセージオブジェクトの設定 図 11.5-3 に受信メッセージオブジェクトの初期化方法を示します。 図 11.5-3 受信メッセージオブジェクトの初期化 MsgVal 1 Arb Data Mask application application application EoB Dir 1 0 New Dat MsgLst 0 0 RxIE application TxIE Int Pnd RmtEn TxRqst 0 0 0 0 IFx アービトレーションレジスタ (ID28 ∼ ID0, Xtd ビット ) は , アプリケーションによっ て与えられ , アクセプタンスフィルタに用いられる受信メッセージ ID とメッセージの 種類を定義します。 標準フレーム (11 ビット ID) を設定した場合は , ID28 ∼ ID18 を使用し , ID17 ∼ ID0 は 無効となります。また , 標準フレームが受信されると , ID17 ∼ ID0 は "0" にリセットさ れます。拡張フレーム (29 ビット ID) を設定した場合は , ID28 ∼ ID0 を使用します。 RxIE ビットが "1" にセットされた場合 , 受信データフレームがメッセージオブジェク トへ格納されると IntPnd ビットが "1" にセットされます。 データ長コード (DLC3 ∼ DLC0) は , アプリケーションによって与えられます。CAN コ ントローラが , 受信データフレームをメッセージオブジェクトへ格納するとき , 受信 データ長コードと 8 バイトのデータを格納します。データ長コードが 8 未満の場合は , メッセージオブジェクトの残りのデータは不定データが書き込まれます。 UMask=1 のとき , IFx マスクレジスタ (Msk28 ∼ Msk0, UMask, MXtd, MDir ビット ) は , マスク設定によりグループ化された ID を持つデータフレームの受信を許可するために 使用します。詳細は , 「11.5.3 メッセージ受信動作」のデータフレーム受信を参照して ください。 <注意事項> IFx マスクレジスタの Dir ビットのマスク設定は禁止です。 353 第 11 章 CAN コントローラ ■ 受信メッセージの処理 CPU は , メッセージインタフェースレジスタを介して , 受信メッセージをいつでも読み 出すことが可能です。 通常 , IFx コマンドマスクレジスタに "007FH" を書き込みます。次にメッセージオブ ジェクトのメッセージ番号を IFx コマンド要求レジスタに書き込みます。この手順に よって , 指定されたメッセージ番号の受信メッセージをメッセージ RAM からメッセー ジインタフェースレジスタに転送します。このとき , IFx コマンドマスクレジスタの設 定により , メッセージオブジェクトの NewDat ビットと IntPnd ビットを "0" にクリアす ることが可能です。 受信メッセージの処理は , アクセプタンスフィルタにより一致した場合 , メッセージを 受信します。メッセージオブジェクトでアクセプタンスフィルタのマスクを使用して いる場合は , マスク設定されたデータがアクセプタンスフィルタから除外され , メッ セージを受信するか判断します。 NewDat ビットは , メッセージオブジェクトが最後に読み出されてから , 新しいメッ セージが受信されたかを示します。 MsgLst ビットは , 受信したデータがメッセージオブジェクトから読み出されない状態 で次の受信データを受信したために前のデータを失ってしまったことを示します。 MsgLst ビットは自動的にリセットされません。 リモートフレーム送信処理中に , アクセプタンスフィルタにより一致するデータフ レームが受信された場合には , TxRqst ビットは自動的に "0" にリセットされます。 354 第 11 章 CAN コントローラ 11.5.4 FIFO バッファ機能 受信メッセージ処理におけるメッセージオブジェクトの FIFO バッファの構成および 動作について説明します。 ■ FIFO バッファの構成 FIFOバッファの受信メッセージオブジェクトの構成は, EoBビットを除いて, 受信メッ セージオブジェクトの構成と同じです (「11.5.3 メッセージ受信動作」の受信メッセー ジオブジェクトの設定を参照してください )。 FIFO バッファは , 2 つ以上の受信メッセージオブジェクトを連結して使用します。こ の FIFO バッファへ受信メッセージを格納するためには , 受信メッセージオブジェクト の ID とマスクを使用する場合はそれらの設定を一致させる必要があります。 FIFO バッファの最初の受信メッセージオブジェクトは , 優先順位の高いメッセージ番 号の小さい番号となります。FIFO バッファの最後の受信メッセージオブジェクトは , EoB ビットに "1" をセットし , FIFO バッファブロックの終わりを示す必要があります (FIFO バッファ構成を使用するメッセージオブジェクトの最終メッセージオブジェク ト以外は , EoB ビットに "0" を設定してください )。 • FIFO バッファで使用するメッセージオブジェクトの ID とマスク設定は必ず同じ設 定にしてください。 • FIFO バッファを使用しない場合は , 必ず EoB ビットに "1" を設定してください。 ■ FIFO バッファによるメッセージ受信 受信メッセージが , FIFO バッファの ID と一致した場合は , 最小メッセージ番号の FIFO バッファの受信メッセージオブジェクトへ格納されます。 FIFO バッファの受信メッセージオブジェクトへメッセージが格納されると , この受信 メッセージオブジェクトの NewDat ビットが "1" にセットされます。EoB ビットが "0" の受信メッセージオブジェクトへ NewDat ビットをセットすると , CAN コントローラ による FIFO バッファ書込みは , 最後の受信メッセージオブジェクト (EoB ビット =1) に到達するまで , 受信メッセージオブジェクトは保護され , 書込みが行われません。 最終FIFOバッファまで有効なデータが格納された状態で受信メッセージオブジェクト の NewDat ビットに "0" 書込み ( 書込み保護の解除 ) が行われないと次に受信された メッセージが最終メッセージオブジェクトへ書き込まれ , メッセージは上書きされて しまいます。 355 第 11 章 CAN コントローラ ■ FIFO バッファからの読出し CPU が受信メッセージオブジェクトの内容を読み出すには , IFx コマンド要求レジスタ へ受信メッセージ番号を書き込むことによって , メッセージインタフェースレジスタ に転送され読み出すことができます。このとき , IFx コマンドマスクレジスタの WR/RD を "0" ( 読出し ) および , TxRqst/NewDat=1, IntPnd=1 に設定し , NewDat ビットと IntPnd ビットを "0" にリセットしてください。 FIFO バッファの機能を保証するために , FIFO バッファの受信メッセージオブジェクト は , 必ず最小のメッセージ番号から読み出してください。 図 11.5-4 に FIFO バッファで連結されるメッセージオブジェクトの CPU の処理方法を 示します。 図 11.5-4 FIFO バッファの CPU 処理 スタート メッセージ割込み CAN割り込みレジスタ 読出し 8000H 0000H CAN割込みレジスタ値 8000H,0000H以外 状態割込み処理実行 メッセージ番号 = CAN割込みレジスタ値 IFxコマンド要求レジスタ (メッセージ番号)書込み メッセージインタフェースレジスタ 読出し (リセット:NewDat=0, IntPnd=0) IFxメッセージ制御レジスタ 読出し NewDat = 1 NO YES IFxメッセージデータレジスタA,B 読出し EoB = 1 YES NO メッセージ番号 = メッセージ番号 + 1 356 終了 (通常処理) 第 11 章 CAN コントローラ 11.5.5 割込み機能 ステータス割込み (IntId=8000H) およびメッセージ割込み (IntId メッセージ番号 ) に よる割込み処理について説明します。 複数の割込みがペンディング中である場合 , CAN 割込みレジスタは , ペンディング中 の最高優先度の割込みコードを示します。割込みコードの設定された時間順は無視さ れ , 常に優先順位の高い割込みコードが表示されます。CPU がクリアするまで割込み コードは保持されます。 ステータス割込み (IntId ビット =8000H) は , 最高優先度となります。 メッセージ割込みの優先度は , メッセージ番号の小さいメッセージが高く , 大きいメッ セージが低くなります。 メッセージ割込みは , メッセージオブジェクトの IntPnd ビットのクリアによってクリ アされます。ステータス割込みは , CAN ステータスレジスタの読出しでクリアされま す。 CAN 割込みペンディングレジスタの IntPnd ビットは , 割込みの有無を示します。ペン ディング中の割込みがない時は , IntPnd ビットは "0" を示します。 CAN 制御レジスタの IE ビットおよび , IFx メッセージ制御レジスタの TxIE ビット , RxIE ビットに "1" をセットしている状態で , IntPnd ビットが "1" になると CPU への割 込み信号がアクティブになります。割込み信号は , CAN 割込みペンディングレジスタ が "0" にクリアされる ( 割込み要因リセット ) か , CAN 制御レジスタの IE ビットが "0" にリセットされるまでアクティブ状態を保持します。 CAN 割込みレジスタが 8000H であることは , CAN コントローラによる CAN ステータ スレジスタの更新を示し , この割込みは最高優先度となります。CAN ステータスレジ スタの更新による割込みは , CAN 制御レジスタの EIE ビットと SIE ビットにより CAN 割込みレジスタへの設定許可 , または禁止の制御ができます。また , CPU への割込み信 号の制御は , CAN 制御レジスタの IE ビットで行うことができます。 CAN ステータスレジスタの RxOk ビット , TxOk ビット , LEC ビットは , CPU からの書 込みにより更新 ( リセット ) することができますが , その書込みにより割込みのセット またはリセットを行うことはできません。 CAN 割込みレジスタが 8000H, 0000H 以外の場合は , メッセージ割込みがペンディング 中であることを示し , 優先度の高い保留中のメッセージ割込みを示します。 CAN 割込みレジスタは , IE がリセットされた場合でも更新されます。 CPU へのメッセージ割込みの要因は , CAN 割込みレジスタ , または CAN 割込みペンディ ングレジスタで確認することができます (「11.4.4 メッセージハンドラレジスタ」参照 )。 メッセージ割込みをクリアする場合 , 同時にメッセージデータを読み出すことは可能で あり , CAN 割込みレジスタで示されているメッセージ割込みをクリアすると次に優先度 の高い割込みが CAN 割込みレジスタにセットされ , 次の割込み処理を待つことになりま す。割込みがない場合には , CAN 割込みレジスタは 0000H を示します。 • ステータス割込み (IntId=8000H) は , CAN ステータスレジスタの読出しアクセスによ り割込みクリアされます。 • CANステータスレジスタへの書込みアクセスによるステータス割込み(IntId=8000H) は発生しません。 357 第 11 章 CAN コントローラ 11.5.6 ビットタイミング ビットタイミングについての概要と CAN コントローラにおけるビットタイミングに ついて説明します。 CAN ネットワークの各 CAN ノードは , それぞれクロック発振器 ( 通常は水晶発振器 ) を持っています。ビットタイムのタイムパラメータは , CAN ノードごとに個別に構成 できます。CAN ノードの発振周期 (fosc) が異なっていても , 共通のビットレートを作 り出せます。 これらの発振器の周波数は , 温度や電圧の変化 , コンポーネントの悪化により少し異な ります。その変動が発振器の許容範囲 (df) 内である限りは , CAN ノードはビットスト リームへ再同期化することで異なるビットレートを補償できます。 CAN 仕様に応じて , ビットタイムは 4 つの区分に分けられ ( 図 11.5-5 参照 ) , 同期化部 (Sync_Seg), 伝送時間部 (Prop_Seg), フェーズバッファ部 1(Phase_Seg1), フェーズバッ ファ部 2(Phase_Seg2) で構成されます。それぞれの区分は , プログラマブルな時間量 ( 表 11.5-1 参照 ) から成ります。ビットタイムの基本単位時間 (tq) は , CAN コントロー ラのシステムクロック fsys とボーレートプリスケーラ (BRP) で定義されます: tq = BRP / fsys CAN のシステムクロック fsys は , クロック入力の周波数 ( 図 11.5-6 参照 ) になります。 同期化部の Sync_Seg は , CAN バスのエッジを期待するビットタイム内のタイミングと なります。伝送時間部の Prop_Seg は , CAN ネットワーク内の物理的遅延時間を補償し ます。フェーズバッファ部の Phase_Seg1, Phase_Seg2 は , サンプリングポイントを指定 します。再同期化ジャンプ幅 (SJW) は , エッジフェーズエラーを補償するために再同期 化時のサンプリングポイントの移動幅を定義します。 図 11.5-5 ビットタイミング 1ビットタイム(BT) Sync _Seg Prop_Seg 1 単位時間 (tq) 358 Phase_Seg1 Phase_Seg2 サンプリングポイント 第 11 章 CAN コントローラ 表 11.5-1 CAN ビットタイムのパラメータ パラメータ レンジ 機能 BRP 1 ∼ 32 Sync_Seg 1 tq Prop_Seg 1 ∼ 8 tq 物理遅延時間の補償 Phase_Seg1 1 ∼ 8 tq サンプルポイント前のエッジフェーズエラー保証 同期化により一時的に長くされる可能性があります。 Phase_Seg2 1 ∼ 8 tq サンプルポイント後のエッジフェーズエラー保証 同期化により一時的に短くされる可能性があります。 SJW 1 ∼ 4 tq 再同期化ジャンプ幅 どちらかのフェーズバッファ部より長くなることは ありません。 時間量の長さ tq の定義 固定長 システムクロックへの同期化 次に CAN コントローラにおけるビットタイミングを示します。 図 11.5-6 CAN コントローラにおけるビットタイミング 1ビットタイム(BT) Sync _Seg TEG1 TEG2 1 単位時間 (tq) サンプリングポイント 表 11.5-2 CAN コントローラのパラメータ パラメータ レンジ 機能 BRPE, BRP 0 ∼ 1023 時間量の長さ tq の定義 ビットタイミングレジスタおよび BRP 拡張レジスタ により最大 1024 までプリスケーラを拡張できます。 Sync_Seg 1 tq TSEG1 1 ∼ 15 tq サンプリングポイント前のタイムセグメントです。 Prop_Seg と Phase_Seg1 に相当します。 ビットタイミングレジスタにより制御可能です。 TSEG2 0 ∼ 7 tq サンプリングポイント後のタイムセグメントです。 Phase_Seg2 に相当します。 ビットタイミングレジスタにより制御可能です。 SJW 0 ∼ 3 tq 再同期化ジャンプ幅です。 ビットタイミングレジスタにより制御可能です。 システムクロックへの同期化 固定長 359 第 11 章 CAN コントローラ 各パラメータの関係を以下に示します。 tq = ([BRPE, BRP] + 1) / fsys BT = SYNC_SEG + TEG1 + TEG2 = (1 + (TSEG1 + 1) + (TSEG2 + 1)) × tq = (3 + TSEG1 + TSEG2) × tq 360 第 11 章 CAN コントローラ 11.5.7 テストモード テストモードの設定方法および動作について説明します。 ■ テストモード設定 CAN 制御レジスタの Test ビットに "1" をセットすることでテストモードなります。テ ストモードに設定すると , CAN テストレジスタのビット Tx1, Tx0, LBack, Silent, Basic ビットが有効となります。 CAN 制御レジスタの Test ビットを "0" にリセットすることにより , すべてのテストレ ジスタ機能を無効にします。 ■ サイレントモード CAN テストレジスタの Silent ビットを "1" にセットすることにより , CAN コントロー ラをサイレントモードに設定できます。 サイレントモードでは, データフレームとリモートフレームを受信可能ですが, CANバ ス上にはレセッシブのみ出力し , メッセージおよび ACK の送信を行いません。 CAN コントローラがドミナントビット (ACK ビット , オーバロードフラグ , アクティブ エラーフラグ ) の送信を要求された場合 , CAN コントローラ内部の折り返し回路で RX 側に送信されます。この動作では , CAN バス上においてレセッシブ状態であっても , 受 信側では CAN コントローラ内部で折り返し送信されたドミナントビットを受信するこ とになります。 サイレントモードでは , ドミナントビット (ACK ビット , エラーフラグ ) 送信による影 響がない状態で , CAN バス上のトラフィック解析ができます。 図 11.5-7 にサイレントモードでの信号 CAN_TX と CAN_RX の CAN コントローラへの 接続を示します。 図 11.5-7 サイレントモードでの CAN コントローラ CAN_TX CAN_RX CANコントローラ = 1 Tx Rx CAN Core 361 第 11 章 CAN コントローラ ■ ループバックモード CAN テストレジスタの LBack ビットを "1" にセットすることにより , CAN コントロー ラをループバックモードに設定できます。 ループバックモードは , 自己診断機能に使用できます。 ループバックモードでは , CAN コントローラ内部で TX 側と RX 側が接続され , CAN コントローラが送信したメッセージを , RX 側で受信したメッセージとして扱い , アク セプタンスフィルタを通過したメッセージは , 受信バッファに格納します。 図 11.5-8 にループバックモードでの信号 CAN_TX と CAN_RX の CAN コントローラへ の接続を示します。 図 11.5-8 ループバックモードの CAN コントローラ CAN_TX CAN_RX Tx Rx CANコントローラ CAN Core 外部信号から独立するため , データ / リモートフレームのアクノリッジスロットでのド ミナントビットはサンプリングされません。そのため通常 , CAN コントローラはアク ノリッジエラーを発生しますが , 本テストモードではアクノリッジエラーを発生しな いようにしています。 362 第 11 章 CAN コントローラ ■ サイレントモードと結合したループバックモード CAN テストレジスタの LBack ビットと Silent ビットを同時に "1" にセットすることに より , ループバックモードとサイレントモードを結合させ動作させることが可能です。 このモードは , ホットセルフテスト用に使用できます。ホットセルフテストとは , CAN コントローラがループバックモードでテストしたときに , CAN_TX 端子にはレセッシ ブの固定出力 , CAN_RX 端子からの入力は無効となりますので , CAN システムの動作 に影響がないことを意味しています。 図 11.5-9 にサイレントモードとループバックモードの結合したときの信号 CAN_TX と CAN_RX の CAN コントローラへの接続を示します。 図 11.5-9 サイレントモードとループバックモードの結合された CAN コントローラ CAN_TX CAN_RX CANコントローラ = 1 Tx Rx CAN Core 363 第 11 章 CAN コントローラ ■ ベーシックモード CAN テストレジスタの Basic ビットを "1" にセットすることにより , CAN コントロー ラをベーシックモードに設定できます。 ベーシックモードでは , CAN コントローラは , メッセージ RAM を使用せずに動作しま す。 IF1 メッセージインタフェースレジスタは , 送信制御用として使用されます。 メッセージ送信を行う場合 , まず , IF1 メッセージインタフェースレジスタに送信する 内容を設定します。次に , IF1 コマンド要求レジスタの BUSY ビットに "1" をセットす ることで送信要求します。BUSY ビットが "1" にセットされている間 , IF1 メッセージ インタフェースレジスタをロックししている , または送信が保留されていることを示 します。 BUSY ビットに "1" がセットされると CAN コントローラは以下の動作を行います。 CANバスがバスアイドルになるとすぐに, IF1メッセージインタフェースレジスタの内 容を , 送信用シフトレジスタへロードし , 送信を開始します。正常に送信完了すると , BUSY ビットが "0" にリセットされ , ロックされていた IF1 メッセージインタフェース レジスタを開放します。 送信が保留されているときに , IF1 コマンド要求レジスタの BUSY ビットを "0" にリ セットすることでいつでも中断できます。また , 送信中に BUSY ビットを "0" にリセッ トすると , 調停負けやエラーなどの場合に行われる再送信を停止します。 IF2 メッセージインタフェースレジスタは , 受信制御用として使用されます。 メッセージの受信は , アクセプタンスフィルタを使用せずにすべて受信します。IF2 コ マンド要求レジスタの BUSY ビットを "1" にセットすることにより , 受信したメッセー ジの内容を読み出すことが可能となります。 BUSY ビットに "1" がセットされると CAN コントローラは以下の動作を行います。 − 受信したメッセージ ( 受信用のシフトレジスタの内容 ) をアクセプタンスフィルタ なしで , IF2 メッセージインタフェースレジスタへ格納します。 新しいメッセージが IF2 メッセージインタフェースレジスタに格納された場合 , CAN コントローラが NewDat ビットを "1" にセットします。また , NewDat ビットが "1" の ときに , さらに新しいメッセージを受信した場合は , CAN コントローラが MsgLst を "1" にセットします。 • ベーシックモードでは , 制御 / 状態ビットに関係するすべてのメッセージオブジェ クトと IFx コマンドマスクレジスタの制御モード設定は無効となります。 • コマンド要求レジスタのメッセージ番号は無効です。 • IF2 メッセージ制御レジスタの NewDat ビットと MsgLst ビットは通常時と同様に動 作し , DLC3-0 は受信された DLC を示し , ほかの制御ビットは "0" として読み出され ます。 364 第 11 章 CAN コントローラ ■ 端子 CAN_TX のソフトウェア制御 CAN 送信端子である CAN_TX は , 4 つの出力機能があります。 • シリアルデータ出力 ( 通常出力 ) • CANコントローラのビットタイミングをモニタするための, CANサンプリングポイ ント信号出力 • ドミナント固定出力 • レセッシブ固定出力 ドミナントおよびレセッシブの固定出力は , CAN 受信端子の CAN_RX モニタ機能とと もに , CAN バスの物理層のチェックに使用することができます。 CAN_TX 端子の出力モードは , CAN テストレジスタの Tx1 と Tx0 ビットにより制御可 能です。 CANメッセージ送信もしくはループバックモード, サイレントモード, ベーシックモー ドを使用する際は , CAN_TX をシリアルデータ出力に設定する必要があります。 365 第 11 章 CAN コントローラ 11.5.8 ソフトウェア初期化 ソフトウェアによる初期化について説明します。 ソフトウェアでの初期化要因を以下に示します。 • ハードウェアリセット • CAN 制御レジスタの Init ビットの設定 • バスオフ状態への遷移 ハードウェアによるリセットは, メッセージRAM (MsgVal, NewDat, IntPnd, TxRqstビッ トを除く ) 以外すべて初期化されます。メッセージ RAM はハードウェアによるリセッ ト後 , CPU によって初期化するかメッセージ RAM の MsgVal を "0" にしてください。 また , ビットタイミングレジスタを設定する場合には , CAN 制御レジスタの Init ビット を "0" にクリアする前に設定してください。 CAN 制御レジスタの Init ビットは , 以下の条件で "1" にセットされます。 • CPU からの "1" 書込み • ハードウェアリセット • バスオフ Init ビットが "1" にセットされると , CAN バスの全メッセージ送受信は停止され , CAN バス出力のCAN_TX端子はレセッシブ出力となります (CAN_TXテストモードは除く) 。 Init ビットに "1" をセットすると , エラーカウンタは変化せず , レジスタも変更されま せん。 CAN 制御レジスタの Init ビットと CCE ビットが "1" にセットされると , ボーレート制 御用のビットタイミングレジスタと BRP 拡張レジスタへの設定が可能となります。 Init ビットを "0" にリセットすることによりソフトウェア初期化を終了します。また , Init ビットを "0" にすることは , CPU からのアクセスでしか実行できません。 Init ビットが "0" にリセットされてから , 連続した 11 ビットのレセッシブの発生 ( =バ スアイドル ) を待つことにより , CAN バス上のデータ転送と同期化した後 , メッセージ の転送が行われます。 通常動作中にメッセージオブジェクトのマスク , ID, XTD, EoB, RmtEn を変更する場合 , MsgVal を無効に設定してから変更してください。 366 第 11 章 CAN コントローラ 11.5.9 CAN クロックプリスケーラ PLL 動作中の CAN クロック切換えについて説明します。 ■ ブロックダイヤグラム CAN クロックプリスケーラの概要について以下のブロックダイヤグラムに示します。 CANクロックプリスケーラレジスタのCANPREビットの設定に従いCANインタフェー スに供給されるクロックの分周比が決定されます。 CANクロック4 PLL CANクロック3 クロック 分周期 CANクロック2 X0 Div by CANクロック1 CANPRE CANクロック0 367 第 11 章 CAN コントローラ ■ クロック切換え手順 CAN クロックプリスケーラを使用したクロックの切換え方法については , 以下に示す 手順を推奨します。 CAN クロック切換え: OSCILLATOR -> PLL CAN クロック切換え: PLL -> OSCILLATOR CAN制御レジスタ; Initビットの設定 CAN制御レジスタ; Initビットの設定 PLL 許可 プリスケーラ値設定 PLLロック時間待ち PLL 禁止 プリスケーラ値設定 CAN制御レジスタ; Initビットのリセット 368 CAN制御レジスタ; Initビットのリセット 第 11 章 CAN コントローラ ■ CAN クロックプリスケーラ設定 CAN クロックプリスケーラに設定可能な値を示します。 CAN インタフェースに供給されるクロックは , システムクロックを CAN クロックプリ スケーラの設定値に従い分周されたものとなります。 CANPRE[3:0] 機能 システムクロック 32 MHz 時 CAN クロックとしてシステムクロックが選択 [ 初期値 ] 32 MHz ( 設定禁止 ) 0001 CAN クロックとしてシステムクロックの 1/2 周期が選択 16 MHz 001x CAN クロックとしてシステムクロックの 1/4 周期が選択 8 MHz 01xx CAN クロックとしてシステムクロックの 1/8 周期が選択 4 MHz 1000 CAN クロックとしてシステムクロックの 2/3 周期が選択 クロックのデューティは 67% となります。 21.33 MHz ( 設定禁止 ) 1001 CAN クロックとしてシステムクロックの 1/3 周期が選択 10.67 MHz 101x CAN クロックとしてシステムクロックの 1/6 周期が選択 5.33 MHz 11xx CAN クロックとしてシステムクロックの 1/12 周期が選択 2.67 MHz 0000 • CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1" に セットし , すべてのバス動作を停止させた後に行ってください。 • 本レジスタの設定により CAN インタフェースに供給するクロックは 16 MHz 以下と してください。 369 第 11 章 CAN コントローラ 370 第 12 章 LIN-UART LIN 対応 UART の機能と動作について説明します。 12.1 概要 12.2 UART の構成 12.3 UART のレジスタ 12.4 UART の割込み 12.5 UART のボーレート 12.6 UART の動作 12.7 UART 使用上の注意事項 371 第 12 章 LIN-UART 12.1 概要 LIN(Local Interconnect Network) 機能付き UART(Universal Asynchronous Receiver and Transmitter) は , 外部デバイスとの非同期 / 同期通信を実現する , 汎 用のシリアルデータ通信インタフェースです。UART は双方向通信機能 ( ノーマル モード ) , マスタ−スレーブ通信機能 ( マスタシステムにおけるマルチプロセッサ モード ) , LIN バスシステム ( マスタ / スレーブ , 両方での動作 ) をサポートしていま す。 ■ 概要 UART は , 別の CPU あるいは周辺回路 , 特に LIN デバイスとのデータ送受信に使用さ れる汎用のシリアルデータ通信インタフェースです。表 12.1-1 に UART の機能を示し ます。 表 12.1-1 UART の機能 (1 / 2) 項目 372 機能 データバッファ 全二重バッファ シリアル入力 非同期モードでは , 5 回のオーバサンプリングを実行し , 受 信値を決定 転送モード ・クロック同期 ( スタート / ストップ同期 , スタート / ストップビット選択 ) ・クロック非同期 ( スタート / ストップビット使用 ) 転送レート ・専用の 15 ビットボーレートジェネレータ搭載 ・外部クロック入力が使用でき , リロードカウンタで調整 データ長 ・7 ビット ( 同期モード・LIN モードでは使用不可 ) ・8 ビット シグナルモード NRZ スタートビット タイミング 非同期モードでは , スタートビットの立下りエッジとクロッ ク同期化 受信エラー検出 ・フレーミングエラー ・オーバランエラー ・パリティエラー 割込み要求 ・受信割込み ( 受信完了・受信エラー検出 ) ・送信割込み ( 送信完了 ) ・バスアイドル割込み ( 受信割込みに属する ) ・LIN-Synch-Break 割込み ( 受信割込みに属する ) マスタ−スレーブ通 信機能 ( マルチプロセッサ モード ) 1 対複数 (1 マスタ , 複数スレーブ ) の通信が可能 ( マスタ , スレーブのいずれのシステムでもサポート ) 同期化モード マスタあるいはスレーブ UART としての機能 第 12 章 LIN-UART 表 12.1-1 UART の機能 (2 / 2) 項目 機能 送受信線 直接アクセスが可能 LIN バス オプション ・マスタデバイスとしての動作 ・スレーブデバイスとしての動作 ・LIN-Synch-Break の生成 ・LIN-Synch-Break の検出 ・LIN-Synch-Field のスタート / ストップエッジを ICU で検出 同期シリアル クロック 同期シリアルクロックは , スタート / ストップビットを用い た同期通信用に , SCK 端子より継続的に出力可能 クロック遅延 オプション クロック遅延用の特殊同期クロックモード (SPI 用 ) ■ UART の動作モード UART には 4 つのモードがあり , シリアルモードレジスタ (SMR) の MD0, MD1 ビット により設定されます。モード 0 とモード 2 は双方向シリアル通信に , モード 1 はマスタ / スレーブ通信に使用されます。モード 3 は LIN マスタ / スレーブ通信用です。 表 12.1-2 UART の動作モード データ長 動作モード 0 ノーマルモード 1 マルチプロセッサモード 2 ノーマルモード 3 LIN モード パリティ 禁止 パリティ 許可 7 または 8 7 または 8 + 1 (*2) − 8 8 − 同期モード ストップ ビット長 データビット 検出 (*1) 非同期 1 or 2 L/M 非同期 1 or 2 L/M 同期 0, 1 or 2 L/M 非同期 1 L *1:LSB または MSB からの転送モードを意味します。 *2:" + 1" は , マルチプロセッサモードでパリティビットの代わりにアドレス / データの切り換わ りを示すためです。 <注意事項> モード 1 ( マルチプロセッサモード ) は , マスタ−スレーブシステムにおける UART のマ スタ , スレーブどちらの動作でもサポートします。モード 3 では , UART の機能は 8N1 フォーマット , LSB ファーストに固定されます。 373 第 12 章 LIN-UART モードを変更した場合は, UARTは送受信を停止して待機し, 新たな動作へ移行します。 表 12.1-3 に , シリアルモードレジスタ (SMR) の MD1, MD0 ビットによって設定される 動作モードを示します。 表 12.1-3 モードビットの設定 374 MD1 MD0 モード 0 0 0 非同期 ( ノーマルモード ) 0 1 1 非同期 ( マルチプロセッサモード ) 1 0 2 同期 ( ノーマルモード ) 1 1 3 非同期 (LIN モード ) 機能 第 12 章 LIN-UART 12.2 UART の構成 本節では , UART の構成について説明します。 ■ UART のブロックダイヤグラム UART は下記のブロックにより構成されています。 • リロードカウンタ • 受信制御回路 • 受信シフトレジスタ • 受信データレジスタ (RDR) • 送信制御回路 • 送信シフトレジスタ • 送信データレジスタ (TDR) • エラー検出回路 • オーバサンプリングユニット • 割込み生成回路 • LIN-Synch-Break および Sync-Field 検出回路 • バスアイドル検出回路 • シリアルモードレジスタ (SMR) • シリアルコントロールレジスタ (SCR) • シリアルステータスレジスタ (SSR) • 拡張通信コントロールレジスタ (ECCR) • 拡張通信ステータス / コントロールレジスタ (ESCR) 375 第 12 章 LIN-UART ■ UART のブロックダイヤグラム 図 12.2-1 UART のブロックダイヤグラム PE CLK リロード カウンタ SCK FRE TIE 受信クロック RIE LBIE 受信制御回路 端子 送信制御回路 LBD 割込み発生回路 BIE SIN 端子 ORE 送信クロック スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ リロードカウンタ 再スタート受信 RBI TBI 受信IRQ TDRE 送信IRQ オーバ サンプリング ユニット SOT 送信パリティ カウンタ 受信パリティ カウンタ 端子 RDRF SOT 受信完了 SIN SIN ICU信号 受信シフト レジスタ LIN-Break および Synch-Field 検出回路 送信シフト レジスタ LINブレーク 発生回路 送信開始 エラー検出 RDR バスアイドル 検出回路 TDR LBR LBL1 LBL0 STR PE ORE FRE RBI TBI LBD 内部データバス PE ORE FRE RDRF TDRE BDS RIE TIE 376 SSR レジスタ MD1 MD0 (OTO) (EXT) (REST) UPCL SCKE SOE SMR レジスタ PEN P SBL CL AD CRE RXE TXE SCR レジスタ LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS ESCR レジスタ SSM BIE RBI TBI ECCR レジスタ 第 12 章 LIN-UART ■ 各ブロックの説明 ● リロードカウンタ リロードカウンタは専用のボーレートジェネレータとして機能します。送受信クロッ クは , 外部クロックまたは内部クロックから生成されます。リロードカウンタにはリ ロード値として 15 ビットのレジスタがあります。送信リロードカウンタの実際のカウ ント値は , BGR0/BGR1 の値から読み出すことができます。 ● 受信制御回路 受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン タによって構成されます。 受信ビットカウンタは受信データをカウントします。指定されたデータ長の 1 データ の受信が完了すると , 受信ビットカウンタは , 受信データレジスタフルフラグを設定し ます。 スタートビット検出回路はシリアル入力信号からスタートビットを検出し , スタート ビットの立下りエッジと同期してリロードカウンタへ信号を送出します。 受信パリティカウンタは受信データのパリティを計算します。 ● 受信シフトレジスタ 受信シフトレジスタは, SIN端子から入力された受信データをビット単位でシフトして 取り込みます。受信が完了すると , 受信シフトレジスタは受信データを受信データレジ スタ (RDR) へ転送します。 ● 受信データレジスタ (RDR) 受信データレジスタでは受信データが保持されます。シリアル入力データは変換され , このレジスタへと格納されます。 ● 送信制御回路 送信制御回路は , 送信ビットカウンタ , 送信開始回路 , 送信パリティカウンタによって 構成されます。 送信ビットカウンタは送信データビットをカウントします。指定されたデータ長の 1 データの送信が完了すると , 送信ビットカウンタは , 送信データレジスタエンプティフ ラグを設定します。 送信開始回路は , データが TDR に書き込まれると送信を開始します。 送信パリティカウンタは , パリティありの場合には送信データのパリティビットを生 成します。 ● 送信シフトレジスタ 送信シフトレジスタは , 送信データレジスタ (TDR) へ書き込まれた送信データをシフ トし , SOT 端子へデータをビット単位で出力します。 ● 送信データレジスタ (TDR) 送信データレジスタに送信データを設定します。このレジスタに書き込まれたデータ はシリアルデータへ変換され , 出力されます。 ● エラー検出回路 エラー検出回路は , 最新の受信でのエラーの有無を確認します。エラーが発生すると , 対応するエラーフラグをセットします。 377 第 12 章 LIN-UART ● オーバサンプリングユニット オーバサンプリングユニットは , SIN 端子からの入力データを 5 回オーバサンプリング します。同期動作モードでは , このユニットは動作しません。 ● 割込み生成回路 割込み生成回路は , すべての割込みを管理します。割込みが許可され , それに対応する 割込み要因が発生すると , 直ちに割込みを生成します。 ● LIN-Break および Sync-Field 検出回路 LIN-Break および LIN-Sync-Break 検出回路は , LIN マスタノードがメッセージハンドラ を送出していると , LIN-Break を検出します。LIN-Break が検出されると , LBD フラグ ビットが生成されます。Sync-Field の 1 回目と 5 回目の立下りエッジは , この回路に よって検出され , 送信マスタノードの正確なシリアルクロックサイクルを測定するた めにインプットキャプチャへ内部信号を送出します。 ● LIN-Break 生成回路 LIN-Break 生成回路は , 定められた長さの LIN-Synch-Break を生成します。 ● バスアイドル検出回路 バスアイドル検出回路は , 受信 / 送信のどちらも実行されていない ( バスアイドル ) こ とを検出します。この場合 , この回路はフラグビット TBI および RBI を生成します。 ● シリアルモードレジスタ (SMR) シリアルモードレジスタにより , 下記の動作が行われます。 - UART 動作モードの選択 - クロック入力の選択 - 外部クロックが 1 対 1 接続 , またはリロードカウンタ接続であるかの選択 - 専用リロードタイマの再起動 - UART のリセット ( レジスタの設定は保存 ) - シリアル出力端子 (SOT) の出力許可 - シリアルクロック端子 (SCK) の入出力切換え ● シリアルコントロールレジスタ (SCR) シリアルコントロールレジスタにより , 下記の動作が行われます。 - パリティビットの有無 - パリティビットの選択 - ストップビット長の指定 - データ長の指定 - モード 1 におけるフレームデータフォーマットの指定 - エラーフラグのクリア - 送信許可 - 受信許可 378 第 12 章 LIN-UART ● シリアルステータスレジスタ (SSR) シリアルステータスレジスタで送信 / 受信状態およびエラー状態を確認します。また , 送信 / 受信割込みの許可 , 転送方向 (LSB ファースト /MSB ファースト ) の設定も行い ます。 ● 拡張ステータス / コントロールレジスタ (ESCR) 拡張ステータス / コントロールレジスタでは LIN 機能を設定できます。SIN, SOT 端子 への直接アクセスと UART 同期クロックモードの設定ができます。 ● 拡張通信コントロールレジスタ (ECCR) 拡張通信コントロールレジスタでは , バスアイドル検出割込みの設定 , 同期クロック設 定 , LIN-Break 生成ができます。 379 第 12 章 LIN-UART 12.3 UART のレジスタ 図 12.3-1 に , UART のレジスタを示します。 ■ UART のレジスタ 図 12.3-1 UART のレジスタ SCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 PEN R/W P R/W SBL R/W CL R/W AD R/W CRE R/W RXE R/W TXE R/W 00000000B SMR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MD1 R/W MD0 R/W OTO R/W EXT R/W REST W UPCL W SCKE R/W SOE R/W 00000000B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 PE ORE FRE RDRF TDRE BDS RIE TIE 00001000B R R R R R R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D7 D6 D5 D4 D3 D2 D1 D0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 LBIE R/W LBD R/W LBL1 R/W LBL0 R/W SOPE R/W SIOP R/W CCO R/W SCES R/W 00000100B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − LBR MS SCDE SSM BIE RBI TBI 000000XXB − W R/W R/W R/W R/W R R SSR RDR / TDR ESCR ECCR R/W :リード / ライト可能 R :リードオンリ W :ライトオンリ ( 続く ) 380 第 12 章 LIN-UART ( 続き ) BGR1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − B14 B13 B12 B11 B10 B09 B08 00000000B − R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 B07 B06 B05 B04 B03 B02 B01 B00 00000000B R/W R/W R/W R/W R/W R/W R/W R/W BGR0 R/W :リード / ライト可能 381 第 12 章 LIN-UART 12.3.1 シリアルコントロールレジスタ (SCR) シリアルコントロールレジスタ (SCR) では , パリティビットの指定 , ストップビッ ト長とデータ長の選択 , モード 1 におけるフレームデータフォーマットの選択 , 受信 エラーフラグのクリア , 送信 / 受信の許可を設定します。 ■ シリアルコントロールレジスタ (SCR) 図 12.3-2 シリアルコントロールレジスタ (SCR) のビット構成 SCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 PEN P SBL CL AD CRE RXE TXE 00000000B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 [bit15] PEN:パリティ許可ビット PEN パリティ許可 0 パリティなし [ 初期値 ] 1 パリティあり このビットは , シリアル非同期モードでの送信データにパリティの付与を選択しま す。受信中には , パリティの検出を行います。 パリティはモード 0 および , ECCR の SSM ビットが設定されている場合はモード 2 で も追加されます。このビットはモード 3 (LIN モード ) では "0" 固定 ( パリティなし ) です。 [bit14] P:パリティ選択ビット P パリティ選択 0 偶数パリティ [ 初期値 ] 1 奇数パリティ パリティが有効である場合は , このビットにより偶数パリティ (0), 奇数パリティ (1) が選択されます。 [bit13] SBL:ストップビット長選択ビット SBL 382 ストップビット長 0 1 ビット [ 初期値 ] 1 2 ビット 第 12 章 LIN-UART このビットは , 非同期データフレームのストップビット長を選択します。ECCR の SSM ビットが設定されている場合は , 同期データフレームでも選択されます。この ビットはモード 3 (LIN モード ) では "0" 固定 (1 ビット ) です。 [bit12] CL:データ長選択ビット CL 語 ( データフレーム ) 長 0 7 ビット [ 初期値 ] 1 8 ビット このビットは , 送信 / 受信データ長を指定します。モード 2 およびモード 3 では , こ のビットは "1"(8 ビット ) に固定されます。 [bit11] AD:アドレス / データ選択ビット AD アドレス / データビット 0 データビット [ 初期値 ] 1 アドレスビット このビットはマルチプロセッサモード 1 でのデータ形式を指定します。このビット への書込みはマスタ CPU 用であり , 読出しはスレーブ CPU 用です。"1" はアドレス フレームを , "0" はデータフレームを示します。 <注意事項> AD ビットの使用については , 「12.7 UART 使用上の注意事項」を参照してください。 [bit10] CRE:受信エラーフラグクリアビット 受信エラークリア CRE 書込み 0 影響なし [ 初期値 ] 1 すべての受信エラー (PE, FRE, ORE) をクリア 読出し 読出し値は常に "0" このビットにより , シリアルステータスレジスタ (SSR) の PE, FRE, ORE フラグがク リアされます。このビットは受信エラー割込み要因もクリアします。 "1" 書込みによりエラーフラグはクリアされます。"0" 書込みは影響ありません。 読出しは常に "0" を返します。 383 第 12 章 LIN-UART [bit9] RXE:受信許可ビット RXE 受信許可 0 受信禁止 [ 初期値 ] 1 受信許可 このビットにより UART の受信が許可されます。このビットが "0" に設定されてい る場合は , UART はデータフレームの受信を停止します。モード 0 およびモード 3 での LIN-Break 検出では無効のままです。 [bit8] TXE:送信許可ビット TXE 送信許可 0 送信禁止 [ 初期値 ] 1 送信許可 このビットにより UART の送信が許可されます。このビットが "0" に設定されてい る場合は , UART はデータフレームの送信を停止します。 384 第 12 章 LIN-UART 12.3.2 シリアルモードレジスタ (SMR) シリアルモードレジスタ (SMR) は , 動作モードとボーレートクロックを選択します。 また , シリアルクロック (SCK) の入出力方向の指定 , シリアル出力許可設定を行い ます。 ■ シリアルモードレジスタ (SMR) 図 12.3-3 シリアルモードレジスタ (SMR) のビット構成 SMR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MD1 R/W MD0 R/W OTO R/W EXT R/W REST W UPCL W SCKE R/W SOE R/W 00000000B R/W :リード / ライト可能 W :ライトオンリ [bit7, bit6] MD1, MD0:動作モード選択ビット MD0 MD1 0 0 モード 0:非同期ノーマルモード [ 初期値 ] 1 0 モード 1:非同期マルチプロセッサモード 0 1 モード 2:同期モード 1 1 モード 3:非同期 LIN モード 動作モード設定 これらのビットにより , UART の動作モードが設定されます。 [bit5] OTO:1 to 1 外部クロック選択ビット OTO 外部クロック選択 0 外部クロックを , ボーレートジェネレータ ( リロードカウンタ ) に 使用 [ 初期値 ] 1 外部クロックをシリアルクロックとして使用 このビットが設定されると , UART のシリアルクロックとして外部クロックが直接 使用されます。この機能は同期スレーブモード動作時に使用されます。 385 第 12 章 LIN-UART [bit4] EXT:外部クロック選択ビット EXT 外部シリアルクロック許可 0 内蔵ボーレートジェネレータ ( リロードカウンタ ) を使用 [ 初期値 ] 1 外部クロックをシリアルクロックとして使用 このビットにより , リロードカウンタ用のクロックを選択できます。 [bit3] REST:送信リロードカウンタ再起動ビット リロードカウンタ再起動 REST 書込み 0 影響なし [ 初期値 ] 1 カウンタ再起動 読出し 読出し値は常に "0" このビットに "1" が書き込まれると , リロードカウンタは再起動されます。"0" 書込 みは影響ありません。 読出しは常に "0" を返します。 [bit2] UPCL:UART クリアビット ( ソフトウェアリセット ) UART クリア ( ソフトウェアリセット ) UPCL 書込み 0 影響なし [ 初期値 ] 1 UART リセット 読出し 読出し値は常に "0" このビットに "1" が書き込まれると , UART は直ちにリセットされますが , レジスタ の設定値は保存されます。 受信 / 送信は中断されます。 エラーフラグはすべてクリアされ , 受信データレジスタ (RDR) は "00H" となります。 "0" 書込みは影響ありません。 読出しは常に "0" を返します。 386 第 12 章 LIN-UART [bit1] SCKE:シリアルクロック出力許可 SCKE シリアルクロック出力許可 0 外部クロック入力 [ 初期値 ] 1 内部クロック出力 このビットはシリアルクロック端子 (SCK) の入出力を制御します。 このビットが "0" の場合は , SCK 端子は汎用ポート / シリアルクロック入力端子と して動作します。"1" の場合は , シリアルクロック出力端子となります。 <注意事項> SCK 端子をシリアルクロック入力として使用する場合 (SCKE=0, ポートは入力ポートとし て設定してください。シリアルクロック出力として使用する場合は , SCKE ビットの設定と SCK 端子に対応するポートファンクションレジスタ (PFR) の設定が必要です。ポートファ ンクションレジスタの設定についての詳細は , 「第 6 章 I/O ポート」を参照してください。 また , 外部クロック選択ビットを使用 (EXT=1) して外部クロックを選択してください。 [bit0] SOE:シリアルデータ出力許可ビット SOE シリアルデータ出力 0 SOT 出力禁止 [ 初期値 ] 1 SOT 出力許可 このビットにより , シリアル出力が許可されます。 このビットが 1 の場合は , シリアルデータ出力が許可されます。 <注意事項> SOT 端子をシリアル出力として使用する場合は , SOE ビットの設定と , 対応するポート ファンクションレジスタ (PFR) の設定が必要です。ポートファンクションレジスタの設定 についての詳細は , 「第 6 章 I/O ポート」を参照してください。 387 第 12 章 LIN-UART 12.3.3 シリアルステータスレジスタ (SSR) シリアルステータスレジスタ (SSR) により , 送信 / 受信状態 , エラーの有無を確認で きます。また , 送信 / 受信割込みの制御も行います。 ■ シリアルステータスレジスタ (SSR) 図 12.3-4 シリアルステータスレジスタ (SSR) のビット構成 SSR bit15 bit14 bit13 bit12 bit11 bit10 PE ORE FRE RDRF TDRE BDS R R R R R R/W bit9 bit8 初期値 RIE TIE 00001000B R/W R/W R/W :リード / ライト可能 R :リードオンリ [bit15] PE:パリティエラーフラグビット PE パリティエラー 0 パリティエラーなし [ 初期値 ] 1 受信中にパリティエラー発生 受信中にパリティエラーが発生すると , このビットは "1" にセットされます。シリ アルコントロールレジスタ (SCR) の CRE ビットに "1" が書き込まれると , このビッ トはクリアされます。 このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。 このフラグがセットされた場合は, 受信データレジスタ(RDR)のデータは無効です。 [bit14] ORE:オーバランエラーフラグビット ORE オーバランエラー 0 オーバランエラーなし [ 初期値 ] 1 受信中にオーバランエラー発生 受信中にオーバランエラーが発生すると , このビットは "1" にセットされます。シ リアルコントロールレジスタ (SCR) の CRE ビットに "1" が書き込まれると , この ビットはクリアされます。 このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。 このフラグがセットされた場合は, 受信データレジスタ(RDR)のデータは無効です。 388 第 12 章 LIN-UART [bit13] FRE:フレーミングエラーフラグビット FRE フレーミングエラー 0 フレーミングエラーなし [ 初期値 ] 1 受信中にフレーミングエラー発生 受信中にフレーミングエラーが発生すると , このビットは "1" にセットされます。シ リアルコントロールレジスタ (SCR) の CRE ビットに "1" が書き込まれると , この ビットはクリアされます。 このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。 このフラグがセットされた場合は, 受信データレジスタ(RDR)のデータは無効です。 [bit12] RDRF:受信データフルフラグビット RDRF 受信データレジスタフル 0 受信データレジスタにデータなし [ 初期値 ] 1 受信データレジスタはデータあり このフラグは , 受信データレジスタ (RDR) の状態を示します。 受信データが RDR へ格納されるとこのビットは "1" にセットされます。RDR が読 み出されることによってのみ , "0" にクリアされます。 このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。 [bit11] TDRE:送信データエンプティフラグビット TDRE 送信データレジスタエンプティ 0 送信データレジスタにデータあり 1 送信データレジスタにデータなし [ 初期値 ] このフラグは , 送信データレジスタ (TDR) の状態を示します。 送信データが TDR へ書き込まれるとこのビットは "0" にクリアされます。データが 送信シフトレジスタへ格納され送信が開始されると , "1" にセットされます。 このビットと TIE ビットが "1" の場合は , 送信割込み要求が出力されます。 389 第 12 章 LIN-UART [bit10] BDS:転送方向選択ビット BDS ビット方向設定 0 送信 / 受信は LSB ファースト [ 初期値 ] 1 送信 / 受信は MSB ファースト このビットにより , シリアル転送データの転送を LSB ファースト (BDS=0) または MSB ファースト (BDS=1) のいずれかに選択できます。 このビットは , モード 3 (LIN モード ) では "0" に固定されます。 <注意事項> シリアルデータレジスタの読出し / 書込み中に , シリアルデータの上位側と下位側は入れ 替えられます。データが RDR に書き込まれた後 , このビットの値が変更されると , デー タは無効となります。 [bit9] RIE:受信割込み要求許可ビット RIE 受信割込み要求許可 0 受信割込み禁止 [ 初期値 ] 1 受信割込み許可 このビットにより , CPU への受信割込み要求が制御されます。 このビットがセットされ , 受信データフラグビット (RDRF) が "1" もしくはエラーフ ラグ (PE, ORE, FRE) がセットされると , 受信割込み要求を送出します。 [bit8] TIE:送信割込み要求許可ビット TIE 送信割込み要求許可 0 送信割込み禁止 [ 初期値 ] 1 送信割込み許可 このビットにより , CPU への送信割込み要求が制御されます。 このビットがセットされ , TDRE ビットが "1" になると , 送信割込み要求が送出され ます。 390 第 12 章 LIN-UART 12.3.4 受信 / 送信データレジスタ (RDR/TDR) 受信データレジスタ (RDR) は受信データを , 送信データレジスタは送信データを保 持します。RDR, TDR は同一のアドレスに配置されています。 ■ 受信 / 送信データレジスタ (RDR/TDR) 図 12.3-5 受信 / 送信データレジスタ RDR / TDR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00000000B D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 [bit7 ∼ bit0] D7 ∼ D0: データレジスタ アクセス データレジスタ 読出し 受信データレジスタからの読出し 書込み 送信データレジスタへの書込み ● 受信 RDR は受信データを格納するレジスタです。SIN 端子より転送されたシリアルデータ 信号は , シフトレジスタで変換され , このレジスタへ格納されます。データ長が 7 ビッ トの場合は , MSB(D7) は "0" となります。受信が完了すると , データはこのレジスタへ 格納され , 受信データフルフラグビット (SSR の RDRF ビット ) が "1" にセットされま す。このとき受信割込み要求が許可されていると , 受信割込みが発生します。 SSR の RDRF ビットが "1" のときに RDR を読み出してください。RDR が読み出され ると , RDRF ビットは自動的に "0" にクリアされます。受信割込みが許可され , 受信エ ラーが発生していない場合は , 受信割込みもクリアされます。 ● 送信 送信データが送信許可状態で送信データレジスタへ書き込まれると , データは送信シ フトレジスタへ転送後シリアルデータへと変換され, シリアルデータ出力端子(SOT)か ら送信されます。データ長が 7 ビットの場合は , MSB(D7) は送信されません。 このレジスタへ送信データが書き込まれると , 送信データエンプティフラグビット (SSR の TDRE ビット ) が "0" にクリアされます。送信シフトレジスタへの転送が完了 すると , TDRE ビットは "1" にセットされます。TDRE ビット "1" であれば , 次の送信 データをこのレジスタへ書き込むことができます。送信割込み要求が許可されている 場合は , 送信割込みが発生します。送信割込みの発生 , もしくは TDRE ビットが "1" で あれば , 次のデータを書き込んでください。 391 第 12 章 LIN-UART <注意事項> TDR は書込み専用 , RDR は読出し専用のレジスタです。このレジスタは同一のアドレス に配置されているため , 読出し値と書込み値は異なります。そのため , リードモディファ イライト系命令ではアクセスしないでください。 392 第 12 章 LIN-UART 12.3.5 拡張ステータス / コントロールレジスタ (ESCR) 拡張ステータス / コントロールレジスタでは LIN 機能を設定できます。また , SIN, SOT 端子への直接アクセスと UART 同期クロックモードの設定ができます。 ■ 拡張ステータス / コントロールレジスタ (ESCR) 図 12.3-6 拡張ステータス / コントロールレジスタ (ESCR) のビット構成 ESCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES 00000100B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 [bit15] LBIE:LIN-Break 検出割込み許可ビット LBIE LIN-Break 検出割込み許可 0 LIN-Break 割込み禁止 [ 初期値 ] 1 LIN-Break 割込み許可 このビットは , LIN-Break が検出されると生成される割込みを許可します。 [bit14] LBD: LIN-Break 検出フラグビット LIN-Break 検出 LBD 書込み 読出し 0 LIN-Break 検出フラグのクリア LIN-Break の検出なし [ 初期値 ] 1 影響なし LIN-Break が検出された LIN-Break が検出されると , このビットは "1" にセットされます。"0" 書込みにより このフラグビットはクリアされ , LIN-Break 検出割込みが許可されている場合は , 割 込みもクリアします。 リードモディファイライト系命令では常に "1" が返されますが , この場合は LINBreak 検出を意味しません。 393 第 12 章 LIN-UART [bit13, bit12] LBL1, LBL0:LIN-Break 長選択ビット LBL1 LBL0 0 0 LIN-Break 長は 13 ビット [ 初期値 ] 0 1 LIN-Break 長は 14 ビット 1 0 LIN-Break 長は 15 ビット 1 1 LIN-Break 長は 16 ビット LIN-Break 長 これらのビットにより , UART で生成される LIN-Break のシリアルビット長が定義 されます。LIN-Break の受信では , 常に 11 ビット固定です。 [bit11] SOPE:シリアル出力端子直接アクセス許可ビット SOPE シリアル出力端子直接アクセス 0 シリアル出力端子直接アクセス禁止 [ 初期値 ] 1 シリアル出力端子直接アクセス許可 このビットが "1" にセットされると , SOT 端子へ直接書込みを行うことが可能にな ります。 詳細は , 表 12.3-1 を参照してください。 [bit10] SIOP:シリアル入出力端子直接アクセス許可ビット シリアル入出力端子アクセス SIOP 書込み (SOPE が "1" の場合 ) 0 SOT は "0" 出力 1 SOT は "1" 出力 [ 初期値 ] 読出し SIN の値を読出し 通常読出し命令では , SIN 端子の値を返します。書込みは SOT 端子の値を設定しま す。リードモディファイライト系命令では , SOT の値を返します。 詳細は , 表 12.3-1 を参照してください。 表 12.3-1 SOPE と SIOP の機能 SOPE SIOP SIOP への書込み 0 R/W SOT 端子への影響なし 書込み値は保持 SIN の値を読出し 1 R/W SOT 端子へ書込み値出力 SIN の値を読出し 1 RMW* SIOP からの読出し SOT 端子の値を読出し , 書込み *: リードモディファイライトの略 <注意事項> 本ビットの設定値は , シリアルコントロールレジスタ (SCR) の TXE ビットが "0" の場合 にのみ有効です。 394 第 12 章 LIN-UART [bit9] CCO:連続クロック出力許可ビット CCO 連続クロック出力 ( モード 2) 0 連続クロック出力禁止 [ 初期値 ] 1 連続クロック出力許可 UART がマスタモード 2 ( 同期モード ) で動作し , SCK 端子が出力として設定されて いる場合に , このビットにより SCK 端子での連続シリアルクロック出力が許可され ます。 [bit8] SCES:シリアルクロックエッジ選択ビット SCES シリアルクロックエッジ選択 0 クロックの立上りエッジでサンプリング ( 通常 ) [ 初期値 ] 1 クロックの立下りエッジでサンプリング ( 反転クロック ) このビットにより , モード 2 ( 同期モード ) での内部シリアルクロックを反転されま す。UART がモード 2 マスタ ( 同期モード ) で動作し , SCK 端子が出力として設定 されている場合は , 出力クロックも反転されます。 モード 2 スレーブでは , サンプリングエッジが立上りエッジから立下りエッジへと 切り替わります。 395 第 12 章 LIN-UART 12.3.6 拡張通信コントロールレジスタ (ECCR) 拡張通信コントロールレジスタ (ECCR) では , バスアイドル検出割込みの設定 , 同期 クロック設定 , LIN-Break 生成ができます。 ■ 拡張通信コントロールレジスタ (ECCR) 図 12.3-7 拡張通信コントロールレジスタ (ECCR) のビット構成 ECCR bit7 bit6 bit5 bit4 bit3 − − bit2 bit1 bit0 初期値 LBR MS SCDE W R/W R/W SSM BIE RBI TBI 000000XXB R/W R/W R R R/W :リード / ライト可能 R :リードオンリ W :ライトオンリ [bit7] Reserved:予約ビット 予約ビットです。必ず "0" を書き込んでください。 [bit6] LBR:LIN-Break 設定ビット LIN-Break 設定 LBR 書込み時 0 影響なし [ 初期値 ] 1 LIN-Break 生成 読出し時 読出し値は常に "0" 動作モードがモード 0 もしくはモード 3 の場合に , このビットに "1" が書き込まれ ると , ESCR の LBL1, LBL0 で設定した長さの LIN-Break が生成されます。 [bit5] MS:マスタ / スレーブモード選択ビット MS モード 2 でのマスタ / スレーブ機能 0 マスタモード ( シリアルクロック生成 ) [ 初期値 ] 1 スレーブモード ( 外部シリアルクロック受信 ) このビットは , 同期モード 2 における UART をマスタあるいはスレーブとして設定 します。マスタとして設定されると , UART は同期クロックを生成します。スレー ブモードとして設定された場合は , 外部シリアルクロックを受信します。 396 第 12 章 LIN-UART <注意事項> スレーブモードとして設定される場合は , クロックソースを外部クロックとして , 1to1 外 部クロック入力に設定してください (SMR の SCKE=0, EXT=1, OTO=1) 。 [bit4] SCDE:シリアルクロック遅延許可ビット SCDE モード 2 でのシリアルクロック遅延許可 0 クロック遅延禁止 [ 初期値 ] 1 クロック遅延許可 UART がモード 2 で動作する場合 , このビットがセットされると , シリアル出力ク ロックは 1 マシンサイクル遅延します。 [bit3] SSM:スタート / ストップビットモード許可 SSM モード 2 での調歩同期 0 モード 2 でのスタート / ストップビットモード禁止 [ 初期値 ] 1 モード 2 でのスタート / ストップビットモード許可 UART がモード 2 で動作する場合 , このビットにより同期化用にスタートビットと ストップビットが追加されます。ほかのモード ( モード 0, 1, 3) ではこのビットは "0" に固定されます。 [bit2] BIE:バスアイドル割込み許可 BIE バスアイドル割込み許可 0 バスアイドル割込み禁止 [ 初期値 ] 1 バスアイドル割込み許可 受信 / 送信のどちらも実行されていない場合 (RBI=1, TBI=1) に , このビットは受信 割込みを許可します。 モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。 [bit1] RBI: 受信バスアイドルフラグビット RBI 受信バスアイドル 0 受信動作中 1 受信休止中 SIN 端子での受信がない場合に , このビットは "1" にセットされます。 モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。 397 第 12 章 LIN-UART [bit0] TBI:送信バスアイドルフラグビット TBI 送信バスアイドル 0 送信動作中 1 送信休止中 SOT 端子での送信がない場合に , このビットは "1" にセットされます。 モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。 <注意事項> UART の動作モードをモード 2 に設定した場合に , SSM ビットが "0" のときは , BIE, RBI, TBI ビットを使用しないでください。 398 第 12 章 LIN-UART 12.3.7 ボーレート / リロードカウンタレジスタ (BGR) ボーレート / リロードカウンタレジスタ (BGR) は , シリアルクロックの分周比を設 定します。また , 送信リロードカウンタの正確な値を読み出すことも可能です。 ■ ボーレート / リロードカウンタレジスタ (BGR) 図 12.3-8 ボーレート / リロードカウンタレジスタ (BGR) BGR1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − B14 R/W B13 R/W B12 R/W B11 R/W B10 R/W B09 R/W B08 R/W 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 B07 R/W B06 R/W B05 R/W B04 R/W B03 R/W B02 R/W B01 R/W B00 R/W 00000000B BGR0 R/W :リード / ライト可能 [bit15] Reserved:予約ビット 予約ビットです。読出し値は常に "0" です。 [bit14 ∼ bit8] BGR1:ボーレートジェネレータレジスタ 1 BGR1 ボーレートジェネレータレジスタ 1 書込み リロード値の bit14 ∼ bit8 をカウンタへ書込み 読出し カウントビット 14 ∼ 8 の読出し [bit7 ∼ bit0] BGR0:ボーレートジェネレータレジスタ 0 BGR0 ボーレートジェネレータレジスタ 0 書込み リロード値の bit7 ∼ bit0 をカウンタへ書込み 読出し カウントビット 7 ∼ 0 の読出し ■ ボーレート / リロードカウンタレジスタ ボーレートリロードカウンタレジスタ (BGR) では , シリアルクロックの分周比を設定 します。 レジスタはバイトアクセスもしくはハーフワードアクセスでの読出し / 書込みが可能 です。 399 第 12 章 LIN-UART UART の割込み 12.4 UART には受信割込みと送信割込みがあります。下記のいずれかの場合において , 割 込み要求が生成されます。 • 受信データの受信データレジスタ (RDR) への格納 , もしくは受信エラーの発生 • 送信データの送信データレジスタ (TDR) から送信シフトレジスタへの転送 • LIN-Break 検出 • バスアイドル ( 送信 / 受信動作なし ) ■ UART の割込み 表 12.4-1 に , 割込みコントロールビットと , 割込み要因を示します。 表 12.4-1 UART の割込みコントロールビットと割込み要因 受信 / 送信 / ICU 受信 送信 割込み要求 フラグ フラグビット レジスタ 動作モード 0 1 2 3 割込み要因 割込み要求の 許可ビット クリア方法 受信データの 読出し RDRF SSR ○ ○ ○ ○ RDR への受信 データ書込み ORE SSR ○ ○ ○ ○ オーバラン エラー SSR: RIE 受信エラー クリアビット (SSR: CRE) へ の "1" 書込み FRE SSR ○ ○ △ フレーミング ○ エラー PE SSR ○ × △ × パリティ エラー LBD ESCR ○ × × ○ LIN-Sync-Break 検出 TBI & RBI ESCR ○ ○ △ ○ バスアイドル TDRE SSR ○ ○ ○ ○ ICP ICS ○ × × LIN-Sync-Field ○ の最初の立下り ICS: ICP エッジ ICP の 一時禁止 ICP ICS ○ × × LIN-Sync-Field ○ の 5 回目の立下 ICS: ICP りエッジ ICP の禁止 ICU ○:使用可能 △:ECCR の SSM ビットが "1" のときに使用可能 ×:使用不可 400 割込み要因 送信レジスタ エンプティ ESCR の LBD ESCR: LBIE ビットへの "1" 書込み ECCR: BIE 受信データ / 送信データ SSR: TIE 送信データの 書込み 第 12 章 LIN-UART ■ 受信割込み 受信モード時に下記の 1 つが発生すると , シリアルステータスレジスタ (SSR) の対応す るフラグビットが "1" にセットされます。 • データ受信完了:RDRF 受信データがシリアル入力シフトレジスタから受信データレジスタ (RDR) へ転送さ れ , 読出しが可能となった。 • オーバランエラー:ORE RDRF=1 かつ , RDR が CPU より読み出されなかった。 • フレーミングエラー:FRE ストップビット受信時に , "0" が受信された。 • パリティエラー:PE 誤ったパリティビットが検出された。 受信割込みが許可 (SSR の RIE=1 されているときに , 上記のフラグが 1 つでも "1" とな ると , 受信割込みが生成されます。 受信データレジスタ (RDR) が読み出されると , RDRF フラグは自動的に "0" にクリアさ れます。RDRF フラグのクリアはこの方法のみです。 シリアルコントロールレジスタ (SCR) の受信エラーフラグクリアビット (CRE) に "1" が書き込まれると , エラーフラグはすべて "0" にクリアされます。 <注意事項> CRE ビットは書込み専用で , "1" を書き込むと 1 マシンサイクルの期間 "1" を保持します。 ■ 送信割込み 送信データが送信データレジスタ (TDR) から送信シフトレジスタへ転送されると ( シ フトレジスタが空で , 送信データが存在している場合に発生します ) , シリアルステー タスレジスタ (SSR) の送信データレジスタエンプティフラグビット (TDRE) が "1" に セットされます。この場合 , SSR の送信割込み許可ビット (TIE) が設定されていると , 割込み要求が生成されます。 <注意事項> TDRE の初期値は "1" です。したがって , TIE フラグが "1" に設定されると直ちに送信割込 みが生成されます。送信データレジスタ (TDR) への書込みによってのみ TDRE フラグは リセットされます。 ■ LIN-Synch-Break 割込み UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能します。 シリアル入力バスが 11 ビットタイム以上 "0" ( ドミナント ) になると , 拡張ステータス / コントロールレジスタ (ESCR) の LIN-Break 検出フラグビット (LBD) が "1" にセットさ れます。この場合 , 受信エラーフラグは 9 ビットタイム後に "1" にセットされます。そ のため , LIN-Sync-Break 検出のみが目的である場合は , RIE フラグあるいは RXE フラグ を "0" に設定してください。そのほかの場合では , 受信エラー割込みが生成された後 , 401 第 12 章 LIN-UART 割込み処理ルーチン内で LBD=1 を待ってください。 LBD フラグに "1" が書き込まれると , 割込みと LBD フラグはクリアされます。これに より , 以下の LIN マスタへのシリアルクロックの調整手順のため , CPU は確実に LINSync-Break を検出します。 ■ LIN-Synch-Field エッジ検出割込み UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能します。 LIN-Break 検出後の受信バスの立下りエッジは UART により示されます。同時に , ICU へと接続されている割込み信号は "1" に設定されます。この信号は LIN-Synch-Field の 5 回目の立下りエッジでリセットされます。どちらの場合においても両エッジ検出と ICU 割込みが許可されていれば , ICU は割込みを生成します。ICU で検出されたカウン タ値の差は , シリアルクロックの 8 倍です。この結果を用いると , 専用リロードカウン タ用のボーレートを計算することができます。 スタートビットの立下りが検出されるとリロードカウンタは自動的にリセットされる ので , 再起動を行う必要はありません。 ■ バスアイドル割込み SIN 端子に受信動作がない場合は , ECCR の RBI フラグビットが "1" にセットされます。 同様に , SOT 端子に送信動作がない場合は , TBI フラグビットが "1" にセットされます。 ECCR のバスアイドル許可ビット (BIE) が設定され , バスアイドルフラグ (TBI, RBI) が どちらも "1" であれば , 割込みが生成されます。 <注意事項> SOPE ビットが "1" のときに SIOP ビットに "0" が書き込まれると , バス動作がない場合 でも TBI フラグは "0" になります。TBI ビットと RBI ビットは , 同期モード 2 において ECCR レジスタの SSM ビットが "0" の場合は使用できません。 図 12.4-1 に , バスアイドル割込みの生成を示します。 図 12.4-1 バスアイドル割込み生成 送信データ 受信データ TBI RBI 受信IRQ : スタートビット 402 : ストップビット : データビット 第 12 章 LIN-UART 受信割込み生成とフラグセットタイミング 12.4.1 受信割込み要因 , 受信完了 (SSR の RDRF ビット ) と , 受信エラーの発生 (SSR の PE, ORE, FRE ビット ) について説明します。 ■ 受信割込み生成とフラグセットタイミング シリアルステータスレジスタ (SSR) の受信割込み許可フラグビット (RIE) が "1" にセッ トされ , データ受信が完了 (RDRF=1) すると , 割込みが生成されます。この割込みは , モード 0, モード 1, モード 2 (SSM が "1" の場合 ) , モード 3 でのストップビットの検出 , またはモード 2 (SSM が "0" の場合 ) で最終データビットが読まれると生成されます。 <注意事項> 受信エラーが発生した場合は , いずれのモードにおいても受信データレジスタの内容は無 効です。 図 12.4-2 受信動作とフラグセットタイミング 受信データ (モード0/モード3) ST D0 D1 D2 D5 D6 D7/ P SP ST 受信データ (モード1) ST D0 D1 D2 D6 D7 A/D SP ST D0 D1 D2 D4 D5 D6 D7 D0 受信データ (モード2) PE(*1), FRE RDRF ORE(*2) (RDRF= 1のとき) 受信割込み発生 *1: PEフラグはモード1,モード3では"0"のままです。 *2: 受信データがCPU(RDRF=1)で読み込まれた場合 OREが発生し, ほかのフレームが読み込まれます。 ST: スタートビット SP: ストップビット A/D: モード1(マルチプロセッサ)アドレス/データ選択ビット <注意事項> 図 12.4-2 にはモード 0 とモード 3 でのすべての受信オプションは示されていません。 ここでは , "7p1" と "8N1" です (p="E"[even], or "0"[odd]) 。 403 第 12 章 LIN-UART 図 12.4-3 ORE 設定タイミング 受信データ RDRF ORE 404 第 12 章 LIN-UART 送信割込み生成とフラグタイミング 12.4.2 送信割込みは , 次の送信データが送信データレジスタ (TDR) に書き込まれる用意が できると生成されます。 ■ 送信割込み生成とフラグタイミング 送信割込みは , 送信データが送信データレジスタ (TDR) に書き込まれる用意ができる と生成されます。シリアルステータスレジスタ (SSR) の送信割込み許可ビット (TIE) が "1" に設定され , 送信割込みが許可されている場合に , TDR が空になると送信割込みが 生成されます。 SSR の送信レジスタエンプティ(TDRE) フラグビットは , TDR の空きを示します。TDRE ビットは読出し専用です。フラグのクリアは TDR へのデータ書込みによってのみ行わ れます。 UART の送信動作とフラグ設定タイミングを , 図 12.4-4 に示します。 図 12.4-4 送信動作とフラグ設定タイミング 送信割込み発生 送信割込み発生 モード0,1,3: TDRへの書込み TDRE シリアル出力 モード2(SSM=0): P P ST D0 D1 D2 D3 D4 D5 D6 D7 SP ST D0 D1 D2 D3 D4 D5 D6 D7 SP AD AD 送信割込み発生 送信割込み発生 TDRへの書込み TDRE シリアル出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 ST: スタートビット D0~D7: データビット AD: アドレス/データ選択ビット(モード1) P: パリティ SP: ストップビット <注意事項> 図 12.4-4 の例には , モード 0 の送信オプションのすべては示されていません。 ここでは , "8p1"(p="E"[even] or "O"[odd]) です。モード 3 とモード 2 で SSM ビットが "0" の場合 , パリティは付与されません。 405 第 12 章 LIN-UART ■ 送信割込み要求生成タイミング 送信割込みが許可 (SSR の TIE ビットが "1") されている場合に TDRE フラグが "1" にな ると , 送信割込み要求が生成されます。 <注意事項> TDRE の初期値は "1" です。したがって , 送信割込みが許可 (TIE=1) されると , 送信完了 割込みが直ちにセットされます。TDRE は読出し専用です。送信データレジスタ (TDR) へ の書込みによってのみ TDRE フラグはクリアされます。送信割込みを有効にするタイミ ングには注意してください。 406 第 12 章 LIN-UART 12.5 UART のボーレート UART のシリアルクロックとして下記のいずれかを選択できます。 • 専用ボーレートジェネレータ ( リロードカウンタ ) • 外部クロック (SCK 端子からのクロック入力 ) • 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用 ■ UART のボーレート選択 図 12.5-1 にボーレート選択回路を示します。下記の 3 つからボーレートを選択可能で す。 ● 専用ボーレートジェネレータ ( リロードカウンタ ) の使用 URATには送信/受信シリアルクロックそれぞれに独立したリロードカウンタがありま す。ボーレートは , ボーレートジェネレータレジスタ (BGR) の 15 ビットリロード値に より設定されます。 リロードカウンタは , ボーレートジェネレータレジスタの設定値でマシンクロックを 分周します。 ● 外部クロックの使用 (1to1 モード ) UART クロック入力端子 (SCK) からのクロック入力が直接ボーレートとして使用され ます。 ● 専用ボーレートジェネレータに外部クロックを使用 外部クロックをデバイス内部でリロードカウンタと接続させることも可能です。この モードでは , 外部クロックは内部のマシンクロックの代わりに使用されます。 407 第 12 章 LIN-UART 図 12.5-1 ボーレート選択回路 ( リロードカウンタ ) REST スタートビット 立下りエッジ検出 リロード値: v Rxc = 0? セット 15ビット リロード リロード カウンタ受信 FF リセット Rxc = v/2? 0 1 EXT リロード値: v Txc = 0? CLK SCK (外部 クロック 入力) 0 1 セット 15ビット リロード リロード カウンタ送信 カウンタ値 : Txc FF リセット Txc = v/2? 0 1 内部データバス EXT REST OTO 408 SMR レジスタ BGR14 BGR13 BGR12 BGR11 BGR10 BGR09 BGR08 受信クロック BGR1 レジスタ BGR07 BGR06 BGR05 BGR04 BGR03 BGR02 BGR01 BGR00 BGR0 レジスタ OTO 送信クロック 第 12 章 LIN-UART ボーレートの設定 12.5.1 ボーレートの設定方法と , シリアルクロック周波数の算出結果を示します。 ■ ボーレートの算出 ボーレートジェネレータレジスタ (BGR) により 15 ビットリロードカウンタは設定され ます。 ボーレートの算出には以下の数式を使用してください。 v = [φ /b] − 1 ここで , "φ" はマシンクロック周波数を , "b" はボーレートを示します。 ● 算出例 マシンクロックが 16 MHz で , 目的のボーレートが 19200 bps の場合 , リロード値 "v" は 以下のようにして算出できます。 v = [16 × 106 / 19200] − 1 = 832 正確なボーレートは , 以下のように再計算してください。 bexact = φ / (v + 1) = 16 × 106 / 833 = 19207.6831 bps <注意事項> リロード値を "0" に設定すると , リロードカウンタは停止します。したがって , 最小の分 周比は 2 分周となります。 409 第 12 章 LIN-UART ■ マシンクロック周波数ごとのボーレート設定例 表 12.5-1 に , マシンクロック周波数とボーレートの設定例を示します。 表 12.5-1 マシンクロックごとのボーレート設定例 8 MHz 16 MHz 20 MHz 24 MHz 32 MHz ボーレート value dev. value dev. value dev. value dev. value dev. 4M − − − − 4 0 5 0 7 0 2M − − 7 0 9 0 11 0 15 0 1M 7 0 15 0 19 0 23 0 31 0 500000 15 0 31 0 39 0 47 0 63 0 460800 − − − − − − 51 − 0.16 68 − 0.64 250000 31 0 63 0 79 0 95 0 127 0 230400 − − − − − − 103 − 0.16 138 0.08 153600 51 − 0.16 103 − 0.16 129 − 0.16 155 − 0.16 207 − 0.16 125000 63 0 127 0 159 0 191 0 255 0 115200 68 − 0.64 138 0.08 173 0.22 207 − 0.16 277 0.08 76800 103 − 0.16 207 − 0.16 259 − 0.16 311 − 0.16 416 0.08 57600 138 0.08 277 0.08 346 − 0.06 416 0.08 555 0.08 38400 207 − 0.16 416 0.08 520 0.03 624 0 832 − 0.04 28800 277 0.08 554 − 0.01 693 − 0.06 832 − 0.03 1110 − 0.01 19200 416 0.08 832 − 0.03 1041 0.03 1249 0 1666 0.02 10417 767 0 1535 0 1919 0 2303 0 3071 0 9600 832 − 0.04 1666 0.02 2083 0.03 2499 0 3332 − 0.01 7200 1110 − 0.01 2221 − 0.01 2777 0.01 3332 − 0.01 4443 − 0.01 4800 1666 0.02 3332 − 0.01 4166 0.01 4999 0 6666 0 2400 3332 − 0.01 6666 0 8332 0 9999 0 13332 0 1200 6666 0 13332 0 16666 0 19999 0 26666 0 600 13332 0 26666 0 − − − − − − 300 26666 0 − − − − − − − − <注意事項> 偏差の単位は "%" です。 最大同期ボーレートは , マシンクロックの 5 分周です。 410 第 12 章 LIN-UART ■ 外部クロックの使用 SMR の EXT ビットが設定されると , 外部端子 SCK がクロックとして選択されます。外 部クロック信号は内部 MCU クロックと同様に扱われます。SCK 端子に , 例えば 1.8432 MHz の水晶発振子を接続し , PC-16550-UART のすべてのボーレートを選択するために リロードカウンタを使用するように設計されています。 "1to1" 外部クロック入力モード (SMR の OTO ビット ) が選択されていると , SCK 信号 が UART シリアルクロック入力へ直接接続されます。これは , UART 同期モード 2 で スレーブデバイスとして動作させるために必要です。 <注意事項> いずれの場合においても , クロック信号は UART 内部で MCU クロックと同期化されます。 これは分周できないクロック比は不安定な信号となることを意味します。 ■ カウント例 図 12.5-2 に , 送信 / 受信リロードカウンタの動作例を示します。ここではリロード値を 832 としています。 図 12.5-2 リロードカウンタのカウント例 送受信クロック リロードカウント 00 1 000 832 831 830 829 828 827 412 411 410 リロードカウント値 送受信クロック リロードカウント 417 416 415 414 413 <注意事項> シリアルクロック信号の立下りエッジは常に , |(v + 1) / 2| 後です。 411 第 12 章 LIN-UART 12.5.2 リロードカウンタの再起動 リロードカウンタは下記の要因で再起動を行うことができます。 • 送信 / 受信リロードカウンタ双方 ・MCU リセット ・UART ソフトウェアクリア (SMR の UPCL ビット ) ・UART ソフトウェア再起動 (SMR の REST ビット ) • 受信リロードカウンタのみ ・非同期モードでのスタートビットの立下りエッジ ■ ソフトウェア再起動 シリアルモードレジスタ (SMR) の REST ビットがセットされると , 次のクロックサイ クルで送信 / 受信リロードカウンタはともに再起動されます。この機能は , 送信リロー ドカウンタをタイマとして使用するためです。 図 12.5-3 に , この機能の使用法を示します。ここではリロード値を 100 としています。 図 12.5-3 リロードカウンタ再起動例 MCUクロック リロードカウンタ クロック出力 REST リロード値 37 36 35 100 99 98 97 96 95 94 93 92 91 90 89 88 87 BGR0/BGR1読込み データバス 90 : 無効 この例では , REST 後の MCU クロックサイクル数 (cyc) は以下のようになります。 cyc = v − c + 1 = 100 − 90 + 1 = 11 ここで , "v" はリロード値を , "c" は読出しカウンタ値を意味します。 412 第 12 章 LIN-UART <注意事項> SMR の UPCL ビットにより UART がリセットされると , リロードカウンタも再起動され ます。 ■ 自動再起動 非同期 UART モードでは , スタートビットの立下りエッジが検出されると , 受信リロー ドカウンタは再起動されます。これはシリアル入力シフトレジスタを入力シリアル データと同期化させるためです。 413 第 12 章 LIN-UART 12.6 UART の動作 UART は動作モード 0 では , 通常双方向シリアル通信として動作します。モード 2 およびモード 3 ではマスタあるいはスレーブとして双方向通信を行います。モード 1 ではマスタあるいはスレーブとしてマルチプロセッサ通信を行います。 ■ UART の動作 ● 動作モード UART にはモード 0 ∼ 3 の 4 つの動作モードがあります。表 12.6-1 に , CPU 間接続方 法とデータ転送に応じて選択可能な動作モードを示します。 表 12.6-1 UART の動作モード データ長 動作モード 0 ノーマルモード 1 マルチプロセッサモード 2 ノーマルモード 3 LIN モード パリティ なし パリティ あり 7 or 8 7 or 8 + 1*2 − 8 8 − 同期化 ストップ ビット長 データ 方向 *1 非同期 1 or 2 L/M 非同期 1 or 2 L/M 同期 0, 1 or 2 L/M 非同期 1 L *1:転送データの形式を意味します。(LSB ファースト , MSB ファースト ) *2:マルチプロセッサモードで , " + 1" はパリティビットの代わりに付与されるアドレス / データ 部の表示ビットを意味します。 <注意事項> モード 1 は , マスタ−スレーブ接続システムにおいて , UART のマスタ / スレーブいずれ の動作もサポートします。モード 3 での UART の機能は , 8N1 フォーマット , LSB ファー ストに固定されます。 モードが変更されると , UART はすべての送受信を停止し , 次の動作を開始します。 414 第 12 章 LIN-UART ■ CPU 間の接続方法 外部クロック "1to1" 接続 ( ノーマルモード ) とマスタ−スレーブ接続 ( マルチプロセッ サモード ) が選択できます。いずれの接続においても , データ長 , パリティ有無 , 同期 化方法はすべての CPU で共通である必要があります。 下記に示すように動作モードを選択してください。 • "1to1" 接続では , 2 つの CPU を非同期転送モードの動作モード 0, または同期転送モー ドの動作モード 2 に設定してください。同期モード 2 では , 必ず一方をマスタ , 他方 をスレーブとして設定してください。 • マスタ−スレーブ接続では動作モード 1 を選択し , マスタあるいはスレーブのいず れかとして使用してください。 ■ 同期化方法 非同期動作モードでは , UART 受信クロックは自動的に受信スタートビットの立下り エッジと同期化されます。 同期動作モードでは , マスタデバイスのクロック信号 , マスタとして動作している場合 は UART 自身により同期化されます。 ■ シグナルモード UART はデータを NRZ 形式として扱います。 ■ 動作許可ビット UART は送信許可ビット (SCR の TXE ビット ) と受信許可ビット (SCR の RXE ビット ) を用いて送受信を制御します。動作が禁止された場合は , それぞれ以下のように停止し ます。 • 受信 ( 受信シフトレジスタへのデータ入力 ) 中に受信動作が禁止されると , フレーム 受信が終了し , 受信データレジスタ (RDR) の受信データが読み出された後 , 受信動 作が停止します。 • 送信 ( 送信シフトレジスタからのデータ出力 ) 中に送信動作が禁止されると , 送信 データレジスタ (TDR) にデータがなくなるまで待ってから , 送信動作が停止します。 415 第 12 章 LIN-UART 非同期モードでの動作 ( 動作モード 0, 1) 12.6.1 動作モード 0 ( ノーマルモード ) あるいは動作モード 1 ( マルチプロセッサモード ) で UART が使用される場合は , 非同期転送モードが選択されます。 ■ 転送データ形式 非同期動作モードでのデータ転送はスタートビット ("L" レベル ) で開始され , ストッ プビット ( 最小 1 ビット , "H" レベル ) で終了します。ビットストリームの方向 (LSB, MSB ファースト ) はシリアルステータスレジスタ (SSR) の BDS ビットにより設定され ます。パリティビットがありと設定されている場合は , 最終データビットとストップ ビットとの間に配置されます。 動作モード 0 でのデータフレーム長は , パリティビットの代わりとなるアドレス / デー タ区切りビットを含め , 7 ビットもしくは 8 ビットです。ストップビットは 1 ビットも しくは 2 ビットが選択可能です。 転送フレームのビット長の計算式は以下のようになります。 ビット長 = 1 + d + p + s (d = データビット [7 or 8], p = パリティ [0 or 1], s = ストップビット [1 or 2]) 図 12.6-1 転送データ形式 ( 動作モード 0, 1) *1 動作モード0 ST D0 D1 D2 D3 D4 D5 D6 D7/P 動作モード1 ST D0 D1 D2 D3 D4 D5 D6 D7 *2 SP A/D SP SP *1: パリティなしかつデータ長が8ビットの場合, D7 (bit 7) パリティありかつデータ長が7ビットの場合, P (パリティ) *2: SCRのSBLビットが"1"の場合のみ ST: スタートビット SP: ストップビット A/D: モード1(マルチプロセッサモード)でのアドレス/データ選択ビット <注意事項> シリアルステータスレジスタ (SSR) の BDS ビットが "1" に設定 (MSB ファースト ) され ると , ビットストリームは , D7, D6, ••• , D1, D0, (P) として処理されます。 ストップビットは 2 ビットが選択されている場合は , 受信中にどちらも検出されますが , 1 番目のストップビットで受信データフルフラグ (RDRF) は "1" になります。2 番目のス トップビットの後 , 次のスタートビットが検出されないと , バスアイドルフラグ (ECCR の RBI ビット ) が "1" となります (2 番目のストップビットはバス活性を意味します )。 416 第 12 章 LIN-UART ■ 送信動作 シリアルステータスレジスタ (SSR) の送信データレジスタエンプティフラグ (TDRE) ビットが "1" に設定されると , 送信データレジスタ (TDR) へのデータ書込みが許可され ます。データが TDR へ書き込まれると , TDRE フラグは "0" になります。シリアルコ ントロールレジスタ (SCR) の TXE ビットにより送信動作が許可されると , 送信シフト レジスタへデータは書き込まれ , 次のシリアルクロックサイクルでスタートビットを 始めとして送信が開始されます。それにより TDRE フラグは "1" となり , TDR へ次の データを書くことができるようになります。 送信割込みが許可されている場合 (TIE=1 は , TDRE フラグにより割込みが生成されま す。TDRE フラグの初期値は "1" ですので , TIE ビットが "1" に設定されると割込みが 直ちに発生します。 ビット長が 7 ビットに設定されている場合 (CL=0) は , BDS ビットによるビット方向の 設定 (LSB, MSB ファースト ) によらず , TDR の最上位ビット (MSB) が未使用ビットと なります。 ■ 受信動作 SCR の RXE フラグビットにより受信動作が許可されると , 受信動作が実行されます。 スタートビットが検出されると , SCR で指定した形式に応じてデータフレームが受信 されます。エラーが発生すると , 対応するエラーフラグ (PE, ORE, FRE) がセットされ ます。データフレーム受信後は , データはシリアルシフトレジスタから受信データレジ スタ (RDR) へ転送され , SSR の受信データレジスタフルフラグ (RDRF) ビットがセッ トされます。RDRF フラグをクリアするために , 必ず CPU から RDR を読み出してくだ さい。受信割込みが許可されている場合 (RIE=1) は , RDRF により割込みが生成されま す。 データ長が 7 ビットに設定されている場合 (CL=0) は , BDS ビットによるビット方向の 設定 (LSB, MSB ファースト ) によらず , RDR の最上位ビット (MSB) が未使用ビットと なります。 <注意事項> RDRF フラグがセットされ , エラーが発生していなければ , 受信データレジスタ (RDR) の データは有効です。 受信バスレベルが "H" の期間は , 受信許可フラグ (RXE) を "1" に設定してください。 ■ ストップビット 送信時には , ストップビットを 1 ビットあるいは 2 ビット選択可能です。受信時に 2 ビットが設定されていると , 2 ビットとも検出されます。これは 2 番目のストップビッ トの後で , ECCR の受信バスアイドル (RBI) フラグを適切に設定するためです。 ■ エラー検出 モード 0 では , パリティエラー , オーバランエラー , フレーミングエラーが検出できま す。 モード 1 では , オーバランエラー , フレーミングエラーが検出できます。このモードで は , パリティはありません。 417 第 12 章 LIN-UART ■ パリティ モード 0 ( およびモード 2 において , ECCR の SSM ビットが設定されている場合 ) では , シリアルコントロールレジスタ (SCR) のパリティ許可 (PEN) ビットにより , UART はパ リティ計算 ( 送信時 ) , パリティ検出および確認 ( 受信時 ) を実行します。 SCR の P ビットにより , 奇数パリティ , 偶数パリティが設定されます。 418 第 12 章 LIN-UART 12.6.2 同期モードでの動作 ( 動作モード 2) UART 動作モード 2 ( ノーマルモード ) では , クロック同期転送が使用されます。 ■ 転送データ形式 同期モードでは , 拡張通信コントロールレジスタ (ECCR) の SSM ビットが "0" であれ ば , スタート / ストップビットを持たずに 8 ビットデータが転送されます。モード 2 で のデータ形式はクロック信号によります。 図 12.6-2 に , 同期動作モードでの送信時のデータ形式を示します。 図 12.6-2 転送データ形式 ( 動作モード 2) 送受信データ (ECCR:SSM=0, SCR:PEN=0) D0 D1 D2 D3 D4 D5 D6 D7 * 送受信データ (ECCR:SSM=1, SCR:PEN=0) ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP * 送受信データ (ECCR:SSM=1, SCR:PEN=1) ST D0 D1 D2 *: SCRのSBLビットが"1"の場合のみ ST: スタートビット SP: ストップビット D3 D4 D5 D6 D7 P SP SP P: パリティビット ■ モード 2 でのクロック反転とスタート / ストップビット 拡張ステータス / コントロールレジスタ (ESCR) の SCES ビット設定されている場合は , シリアルクロックは反転します。したがって, スレーブモードでは, 受信シリアルクロッ クの立下りエッジでデータを取り込みます。マスタモードで SCES ビットが設定される と , クロック信号のマークレベルが "0" となります。拡張通信コントロールレジスタ (ECCR) の SSM ビットが設定されると , 非同期モードのようにデータフォーマットにス タートビットとストップビットが付与されます。 図 12.6-3 クロック反転時の転送データ形式 マークレベル 送受信クロック (SCES = 0, CCO = 0): 送受信クロック (SCES = 1, CCO = 0): データ(SSM = 1) (パリティなし, 1 ストップビット) マークレベル ST SP データフレーム 419 第 12 章 LIN-UART ■ クロック供給 クロック同期モード ( ノーマルモード ) では , 送信ビット数および受信ビット数はク ロックサイクルと等しくなります。調歩同期通信が設定されていると , クロックサイク ル数はスタート / ストップビットを追加したものと一致します。 内部クロックが選択 ( 専用リロードタイマ ) されていると , クロック同期で受信してい るデータは , データが送信されると自動的に生成されます。 外部クロックが選択されていると , 送信データレジスタにデータを格納し , 送出される ビットごとのクロックサイクルは外部から供給 , 生成されます。SCES が "0" 場合 , マー クレベル ("H") は , 送信開始以前および送信完了後保持されます。 クロックのどの立下りエッジでも送信データが有効かつ安定するように , ECCR の SCDE ビットの設定により , 送信クロック信号は 1 マシンサイクル遅延されます ( 受信 デバイスがクロックの立上りあるいは立下りエッジでデータを取り込む場合に必要で す )。この機能は , CCO が設定されていると停止します。 図 12.6-4 遅延送信クロック信号 (SCDE=1) 送信データ書込み 受信データサンプルエッジ (SCES = 0) マークレベル 送受信クロック (通常) マークレベル 送信クロック (SCDE = 1) マークレベル 送受信データ 0 1 LSB 1 0 1 0 データ 0 1 MSB ESCR のシリアルクロックエッジ選択(SCES) ビットが設定されていると , UART クロッ クは反転し , クロックの立下りエッジで受信データを取り込みます。この場合は , ク ロックの立下りエッジで必ず有効なシリアルデータとしてください。 マスタモードでは , 拡張ステータス / コントロールレジスタ (ESCR) の CCO ビットが設 定されると , SCK 端子からシリアルクロックは継続的に出力されます。このモードで は , 受信側にデータフレームの開始と終了を明示するために , スタートビットとストッ プビットを使用するようにしてください。図 12.6-5 に , これを示します。 図 12.6-5 モード 2 での継続クロック出力 送受信クロック (SCES = 0, CCO = 1): 送受信クロック (SCES = 1, CCO = 1): データ(SSM = 1) (パリティなし, 1 ストップビット) ST SP データフレーム 420 第 12 章 LIN-UART ■ エラー検出 スタート / ストップビットを使用しない場合 (ECCR の SSM=0) は , オーバランエラー のみが検出されます。 ■ 通信 同期通信モードの初期化には , 以下の設定を行ってください。 • ボーレート / ジェネレータレジスタ (BGR) 専用ボーレート / リロードカウンタへのリロード値の設定 • シリアルモードレジスタ (SMR) MD1, MD0 : "10B" ( モード 2) SCKE :"1" ( 専用ボーレートリロードカウンタ使用 ) "0" ( 外部クロック入力 ) • シリアルコントロールレジスタ (SCR) RXE, TXE : フラグビットを "1" に設定 SBL, AD : ストップビットなし , アドレス / データ区切りなし , 値は無効 CL : 自動的に 8 ビット固定 , 値は無効 CRE : "1" ( 初期化のためエラーフラグはクリアされ , 送信 / 受信は停止 ) SSM=0 の場合 :パリティなし , PEN, P の設定値は無効 SSM=1 の場合 :PEN, P の設定は有効 • シリアルステータスレジスタ (SSR) BDS : "0" (LSB ファースト ) , "1" (MSB ファースト ) RIE : "1" ( 割込み許可 ) , "0" ( 割込み禁止 ) TIE : "1" ( 割込み許可 ) , "0" ( 割込み禁止 ) • 拡張通信コントロールレジスタ (ECCR) SSM : "0" ( スタート / ストップビットなし , 通常 ) "1" ( スタート / ストップビットあり , 特殊 ) MS : "0" ( マスタモード , UART がシリアルクロックを生成 ) "1" ( スレーブモード , UART はシリアルクロックを外部から受信 ) 通信を開始するには , 送信データレジスタ (TDR) へデータを書き込んでください。受 信のみ行う場合には SMR のシリアル出力許可 (SOE) ビットで出力を停止し , TDR へダ ミーデータを書き込んでください。 <注意事項> 非同期モード時と同様に , 継続クロック , スタート / ストップビット , 双方向通信が可能 です。 421 第 12 章 LIN-UART 12.6.3 LIN 機能での動作 ( 動作モード 3) UART は LIN マスタデバイス , LIN スレーブデバイスいずれとしても使用可能です。 LIN 機能にはモード 3 が割り当てられています。UART をモード 3 に設定すると , データ形式は 8N1, LSB ファーストとなります。 ■ LIN マスタとしての UART LIN マスタモードでは , マスタがバス全体のボーレートを決めるため , スレーブデバイ スはマスタと同期されます。したがって , 初期化後のマスタ動作で設定されたボーレー トは保持されます。 拡張通信コントロールレジスタ (ECCR) の LBR ビットへ "1" を書き込むと , SOT 端子 へ 13 ∼ 16 ビットタイムの "L" レベルを出力します。これは LIN-Sync-Break と LIN メッ セージの開始です。 これによりシリアルステータスレジスタ (SSR) の TDRE フラグは "0" になり , ブレーク 後 "1" に初期化され , SSR の TIE ビットが "1" の場合は CPU へ送信割込みを送出します。 送出される Sync-Break 長は , ESCR の LBL1, LBL0 ビットで表 12.6-2 のように設定でき ます。 表 12.6-2 LIN-Break 長 LBL1 LBL0 0 0 13 ビットタイム 0 1 14 ビットタイム 1 0 15 ビットタイム 1 1 16 ビットタイム Break 長 Synch-Field は , LIN-Break 後に 1 バイト "55H" として送信できます。送信割込みを避け るために , TDRE フラグが "0" であっても LBR への "1" を書き込むと , TDR へ "55H" を 書き込むことができます。送信シフトレジスタは LIN-Break が終了するまで待った後 , TDR 値のシフトを行います。この場合 , LIN-Break 後でスタートビット以前では割込み は生成されません。 ■ LIN スレーブとしての UART LIN スレーブモードでは , UART はマスタのボーレートに同期します。受信が禁止 (RXE=0) され LIN-Break 割込みが許可 (LBIE=1) されている場合に , LIN マスタの SynchBreak が検出され ESCR の LBD フラグがそれを示すと , UART は受信割込みを生成し ます。このビットに "0" を書き込むと割込みはクリアされます。 次に LIN マスタのボーレートの解析をします。Synch-Field の最初の立下りエッジが UART で検出されます。UART は内部信号を経由してインプットキャプチャ (ICU) へ 伝え , 5 回目の立下りエッジで ICU への信号をリセットします。したがって , ICU を LIN インプットキャプチャとして設定し , ICU の割込みを許可状態にする必要がありま す。ICUへの信号が"1"である時間が, 8分周されたLINマスタの正確なボーレートです。 422 第 12 章 LIN-UART ボーレート設定値は下記のようになります。 • タイマオーバフローなし:BGR 値 = (b − a) / 8 • タイマオーバフローあり:BGR 値 = (max + b − a) / 8 ここで , "max" はタイマの最大値 , "a" は最初の割込み後の ICU カウンタレジスタの値 , "b" は 2 回目の割込み後の ICU カウンタレジスタの値を意味します。 ■ LIN-Synch-Break 検出割込みとフラグ スレーブモードで LIN-Synch-Break が検出されると , ESCR の LIN-Break 検出 (LBD) フラ グが "1" にセットされます。LIN-Break 割込み許可 (LBIE) ビットが設定されていると , これは割込み要因となります。 図 12.6-6 LIN-Synch-Break 検出とフラグセットタイミング シリアルクロック サイクル# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 シリアルクロック シリアル入力 (LINバス) FRE (RXE=1) LBD (RXE=0) RXE = 1の場合に受信割込み発生 RXE = 0の場合に受信割込み発生 図 12.6-6 に , LIN-Synch-Break 検出とフラグセットタイミングを示します。 受信許可状態 (RXE=1) で受信割込みが許可 (RIE=1) されている場合は , LIN-Break 割込 みより 2 ビットタイム ("8N1") 早く SSR の受信データフレーミングエラー (FRE) フラ グビットが受信割込み要因となりますので , LIN-Break を使用する場合は , RXE を "0" にしてください。 LBD は動作モード 0 および動作モード 3 で使用可能です。 図 12.6-7 LIN スレーブモードでの UART の動作 シリアルクロック シリアル入力 (LINバス) CPUによるLBRクリア LBD ICU入力 Synch-Break(14ビット設定の場合) Synch-Field 423 第 12 章 LIN-UART ■ LIN バスタイミング 図 12.6-8 LIN バスタイミングと UART の信号 前回のシリアルクロック クロックなし (補正フレーム) 新たに補正されたシリアルクロック ICUカウント LINバス (SIN) RXE LBD (IRQ0) LBIE ICU入力 IRQ(ICU) RDRF (IRQ0) RIE CPUによる RDRリード 受信割込み許可 LIN-break開始 LIN-break検出 ,割込み発生 CPUによるIRQクリア(LBD -> 0) IRQ(ICU) IRQクリア:ICUスタート IRQ(ICU) IRQクリア:ボーレートを計算して設定 LBIEディセーブル 受信イネーブル スタートビットの立下りエッジ 受信データ 1バイト RDRに保存 CPUによる RDRリード 424 第 12 章 LIN-UART シリアル端子への直接アクセス 12.6.4 UART は送信端子 (SOT), 受信端子 (SIN) の値を直接アクセスすることができます。 ■ UART 端子直接アクセス UART にはシリアル入力端子 / シリアル出力端子の値を , ソフトウェアで直接アクセス する機能があります。ESCR の SIOP ビットの読出しにより , シリアル入力データをモ ニタできます。ESCR のシリアル出力端子直接アクセス許可 (SOPE) ビットが設定され ると , ソフトウェアにて SOT 端子の出力値を固定できます。これは送信シフトレジス タが空 , 例えば送信動作なし , のときにのみ可能です。 LIN モードでは , この機能は自身の送信データを読み戻すために用いられます。単ワイ ヤ LIN バス上に物理的な不具合がある場合は , エラー処理にも使用されます。 <注意事項> SIOP には最後に書き込まれた値が保持されます。不要なエッジ出力を防ぐために出力端 子へのアクセスを設定する前に , SIOP へ値を書き込んでください。 SIOP ビットへのリードモディファイライト系アクセスでは SOT 端子の値が返されます。 通常の読出し命令では , SIN 端子の値が返されます。 425 第 12 章 LIN-UART 12.6.5 双方向通信機能 ( ノーマルモード ) 動作モード 0, 2 では通常のシリアル双方向通信が可能です。非同期通信には動作 モード 0 を , 同期通信には動作モード 2 を選択してください。 ■ 双方向通信機能 図 12.6-9 に , ノーマルモード ( 動作モード 0, 2) での UART の設定を示します。 図 12.6-9 動作モード 0, 2 での UART の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 SCR, SMR PEN P SBL CL AD bit8 bit7 bit6 0 0 0 モード 2 0 1 0 PE bit4 bit3 bit2 bit1 bit0 CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE モード 0 SSR, TDR/RDR bit5 ORE FRE RDRF TDRE BDS RIE TIE 0 0 0 0 0 0 1 転送データ設定 ( 書込み中 ) 受信データ待ち ( 読込み中 ) モード 0 モード 2 ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS SCDE SSM モード 0 モード 2 : 使用ビット : 未使用ビット 1 : "1" に設定 0 : "0" に設定 : SSM = 1 ( 同期スタート / ストップビットモード ) で使用されるビット : 正しい値に自動的に設定されるビット ■ CPU 間の接続 図 12.6-10 に , UART モード 2 での 2CPU 間接続を示します。 図 12.6-10 UART 動作モード 2 双方向通信の接続例 SOT SOT SIN SIN SCK CPU-1 (マスタ) 426 出力 入力 SCK CPU-2 (スレーブ) BIE RBI TBI 第 12 章 LIN-UART 12.6.6 マスタ−スレーブ通信機能 ( マルチプロセッサモード ) マスタ−スレーブモードでは , マスタ / スレーブいずれのシステムにおいても複数の CPU との UART 通信が可能です。 ■ マスタ−スレーブ通信機能 図 12.6-11 に , マルチプロセッサモード ( 動作モード 1) での UART の設定を示します。 図 12.6-11 動作モード 1 での UART の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 SCR, SMR PEN P SBL CL AD 0 モード 1 SSR, TDR/RDR bit8 PE bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE ORE FRE TDRE RDRF BDS 0 RIE TIE 1 0 0 0 0 1 転送データ設定 ( 書込み中 ) 受信データ待ち ( 読込み中 ) モード 1 ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS SCDE SSM BIE RBI TBI モード 1 : 使用ビット : 未使用ビット 1 : "1" に設定 0 : "0" に設定 : 正しい値に自動的に設定されるビット 427 第 12 章 LIN-UART ■ CPU 間の接続 図 12.6-12 に , 2 本の通信線で接続されたマスタ CPU と複数のスレーブ CPU からなる 通信システムを示します。UART はマスタとしてもスレーブとしても使用できます。 図 12.6-12 UART マスタ−スレーブ通信の接続例 SOT SIN マスタCPU SOT SIN SOT スレーブCPU #0 SIN スレーブCPU #1 ■ 機能部 マスタ−スレーブ通信用に , 表 12.6-3 のように動作モードとデータ転送モードを設定 してください。 表 12.6-3 マスタ−スレーブ通信機能の設定 動作モード マスタ CPU アドレス 送受信 データ 送受信 モード 1 (AD ビッ ト発行 ) スレーブ CPU モード 1 (AD ビッ ト受信 ) データ パリティ 同期方法 なし 非同期 AD=1 + 7- or 8-bit address AD=0 + 7- or 8-bit data ストップ ビット ビット方向 1 ビット or LSB or MSB 2 ビット ファースト ■ 通信手順 マスタ CPU がアドレスデータを送信すると , 通信が開始されます。アドレスデータの AD ビットは "1" に設定され , 通信対象の CPU が選択されます。それぞれのスレーブ CPU はそのアドレスデータを確認します。アドレスデータがスレーブ CPU に割り当て られたアドレスを示すと, そのスレーブCPUはマスタCPUと通信します (通常モード) 。 に , マスタ−スレーブ通信 ( マルチプロセッサモード ) のフローチャートを示します。 428 第 12 章 LIN-UART 図 12.6-13 マスタ−スレーブ通信のフローチャート (マスタ CPU) (スレーブ CPU) スタート スタート 動作モード 1に設定 動作モード 1に設定 SIN端子をシリアルデータ 入力に設定 SOT端子をシリアルデータ 出力に設定 SIN端子をシリアルデータ 入力に設定 SOT端子をシリアルデータ 出力に設定 7または 8データビット設定 1または 2ストップビット設定 7または 8データビット設定 1または 2ストップビット設定 TXE = 1, RXE = 1に設定 ADビットに"1"をセット TXE = 1, RXE = 1に設定 受信バイト スレーブへアドレスを送信 NO ADビット = 1 ウェイト YES バスアイドル 割込み スレーブアドレスが一致 NO ADビットに"0"をセット YES スレーブ CPUと通信 通信終了 ? マスタ CPUと通信 NO YES ほかのスレーブCPUと 通信 通信終了 ? NO YES NO YES TXE = 0, RXE = 0に設定 エンド 429 第 12 章 LIN-UART LIN 通信機能 12.6.7 LIN マスタ , LIN スレーブ , いずれのシステムにおいても , LIN デバイスとの UART 通信が可能です。 ■ LIN マスタ−スレーブ通信機能 図 12.6-14 に , LIN 通信モード ( 動作モード 3) での UART の設定を示します。 図 12.6-14 動作モード 3(LIN) での UART の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 SCR, SMR PEN P SBL CL AD 0 モード 3 SSR, TDR/RDR bit8 PE bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE ORE FRE RDRF TDRE BDS 1 RIE TIE 1 0 0 0 0 1 転送データ設定 ( 書込み中 ) 受信データ保持 ( 読込み中 ) モード 3 ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS SCDE SSM BIE RBI 0 モード 3 : 使用ビット : 未使用ビット 1 : "1" に設定 0 : "0" に設定 : 正しい値に自動的に設定されるビット ■ LIN デバイスの接続 図 12.6-15 に , LIN マスタデバイスと LIN スレーブデバイスの接続を示します。 URAT は LIN マスタ , LIN スレーブ , いずれとしても設定可能です。 図 12.6-15 LIN バスシステムの接続例 SOT SOT LINバス SIN LINマスタ 430 SIN 単ワイヤトランシーバ 単ワイヤトランシーバ LINスレーブ TBI 第 12 章 LIN-UART 12.6.8 LIN 通信モード ( 動作モード 3) UART サンプルフローチャート LIN 通信モードにおける UART のフローチャート例を示します。 ■ マスタデバイスとしての UART 図 12.6-16 LIN マスタモードでの UART フローチャート スタート 初期設定: S動作モードを 3に設定 (8N1データフォーマット) TIE = 0, RIE = 0 送信メッセージ ? NO YES スリープモード送信 TDR = 0x80 TIE = 0 Sync-Break送信: ECCRへの"1"書込み: LBR, TIE = 1; Synch-Field送信: TDR = 0x55 CPUからの ウェイクアップ? NO スリープモード送信? ウェイクアップ信号送信 RIE = 0 TIE = 1 YES TDR = 0x80 RIE = 1 YES NO Identify-Fieldセット : TDR = lD NO 0x00,0x80,0xC0受信? YES RIE = 0 TIE = 1 スレーブへの書込み? YES NO TIE = 0 RIE = 1 スレーブからのデータリード RIE = 0 スレーブへのデータ書込み NO エラー発生 ? TIE = 0 YES エラー処理 431 第 12 章 LIN-UART ■ スレーブデバイスとしての UART 図 12.6-17 LIN スレーブモードでの UART フローチャート 開始 A B 初期化: 動作モードを3に設定 (8N1データフォーマット) C エラー発生? RIE = 0; LBIE = 1; RXE = 0 NO スレーブ アドレス一致? NO C E YES YES NO マスタの 送信要求? スレーブ 動作待ち LBD = 1 LIN Break割込み YES LINマスタからの メッセージ待ち ESCR.LBDに"0"を書込み 割込みを禁止 ICU割込み許可 データ+チェック サム受信 0x80受信? (スリープモード) NO S RIE = 0 TIE = 1 チェックサム 計算 データ送信 (次ページへ) スレーブ 動作待ち TIE = 0 YES B ICU割込み ICUデータ読出し ICU割込みフラグクリア C マスタの 送信要求? NO YES スレーブ 動作待ち C ICU割込み ICUデータ読出し 新ボーレート計算 ICU割込みフラグクリア 割込みクリア スレーブ 動作待ち バスアイドル 割込み E エラーハンドラ C ID受信 RIE = 1; RXE = 1 A ( 続く ) 432 第 12 章 LIN-UART ( 続き ) S CPUからの ウェイクアップ? NO ウェイクアップ コード送信 RIE = 0 TIE = 1 TDR = 0x80 YES RIE = 1 NO 0x00, 0x80 または0xC0 受信? TIE = 0 YES RIE = 0 C 433 第 12 章 LIN-UART 12.7 UART 使用上の注意事項 UART 使用時における注意事項を示します。 ■ 動作設定 UART のシリアルコントロールレジスタ (SCR) には , TXE ( 送信 ) , RXE ( 受信 ) 動作許 可ビットがあります。これらのビットの初期値は停止状態となっているので , 送信 / 受 信いずれの動作においても転送開始前にこれらのビットを設定してください。ビット の設定を禁止状態とすることで , 転送を中断することができます。 ISO9141 (LIN バスシステム ) のような単一バスシステムにおいては , 単方向通信である ため , これらの 2 ビットを同時には設定しないでください。受信は自動的に実行される ので , UART により送信されたデータは UART 自身も受信します。 ■ 通信モードの設定 通信モードの設定は , システムが非動作中に行ってください。送信 / 受信中に動作モー ドが変更されると , 送信 / 受信は停止し , 転送データは失われます。 ■ 送信割込み許可タイミング 送信データエンプティフラグビット (SSR の TDRE ビット ) の初期値は "1"( 送信データ がなく , 送信データ書込み許可状態 ) です。送信割込み要求は , 送信割込み要求が許可 (SSR の TIE ビットが "1") されると直ちに生成されます。この割込みを発生させないた めには, TDRレジスタへの送信データ書込み後にTIEフラグを"1"に設定してください。 ■ 動作モード 3 における LIN の使用 LIN の機能はモード 0 でも使用可能です ( 送信 , 受信ブレーク ) が , 動作モードをモー ド 3 に設定すると , UART のデータ形式が LIN の形式 (8N1, LSB ファースト ) に自動的 に設定されます。UART の LIN バスプロトコルへの適用は動作モードをモード 3 に設 定してください。ブレークの送信時間は変更可能ですが , 最低 11 シリアルビットタイ ムが必要です。 ■ 動作設定の変更 UART の動作設定を変更した場合は , 必ず UART をリセットしてください。特に同期 モード 2 でのスタート / ストップビットの有無に注意してください。 シリアルモードレジスタ (SMR) の設定を行う場合は , UART の再設定と UPCL ビット を同時にはできません。この場合 UART が正常に動作しないことがあります。SMR の ビットを設定してから , UPCL ビットをセットするようにしてください。 ■ LIN スレーブの設定 LIN スレーブとして UART を初期化する場合は , 必ずボーレートを最初の LIN 同期ブ レーク受信前に設定してください。これは最低 13 ビットタイムの LIN 同期ブレーク検 出を確実にするためです。 434 第 12 章 LIN-UART ■ ソフトウェア互換 この UART は従来の MCU に搭載されているものに類似していますが , ソフトウェアに は互換性はありません。プログラミングモデルはほぼ同じですが , レジスタ構成は異な ります。さらに , ボーレートは既定値から選択するのではなく , リロード値で設定する ようになっています。 ■ バスアイドル機能 同期モード 2 では , バスアイドル機能は使用できません。 ■ シリアルコントロールレジスタ (SCR) の AD ビット シリアルコントロールレジスタ (SCR) の AD ビット ( マルチプロセッサモードでのア ドレス / データビット ) を使用する際には下記内容に注意してください。 読み出すと最後に受信した AD ビットを返しますが , 書込みは送信時の AD ビットを設 定します。したがって , AD ビットはコントロールビットでありフラグビットでもあり ます。内部的には受信データと送信データはそれぞれ別のレジスタへ格納されますが , リードモディファイライト系命令では , 受信データが読み出され , データ操作後 , 送信 データとして書き込まれます。この種の命令で同じレジスタのビットがアクセスされ ると , AD ビットに誤った値が設定されることがあります。 そのため , このビットへの書込みアクセスは送信前に行ってください。あるいは , バイ トアクセスですべてのビットを一度に正しく設定してください。 また , AD ビットは送信データレジスタのようにはデータを保持しません。 送信動作中にこのビットを更新すると , 送信中のデータの AD ビットが変更されます。 435 第 12 章 LIN-UART 436 第 13 章 I2C インタフェース I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作について説明します。 13.1 I2C インタフェースの概要 13.2 I2C インタフェースのレジスタ 13.3 I2C インタフェースの動作説明 13.4 動作フローチャート 437 第 13 章 I2C インタフェース 13.1 I2C インタフェースの概要 I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートで , I2C バ ス上のマスタ / スレーブデバイスとして動作します。 ■ I2C インタフェースの特長 I2C インタフェースの特長は , 以下のとおりです。 • マスタ / スレーブ送受信 • アービトレーション機能 • クロック同期化機能 • スレーブアドレス / ゼネラルコールアドレス検出機能 • 転送方向検出機能 • 再起動条件発生および検出機能 • バスエラー検出機能 • 10 ビット /7 ビット スレーブアドレス • マスタモード時スレーブアドレス受信アクノリッジ制御 • 複合スレーブアドレス対応 • 送信 , バスエラー時に割込み可能 • 標準モード ( 最大 100 kbps)/ 高速モード ( 最大 400 kbps) に対応 438 第 13 章 I2C インタフェース ■ I2C インタフェースのレジスタ一覧 I2C インタフェースのレジスタ一覧は , 以下のとおりです。 • バスコントロールレジスタ (IBCR) IBCR0 ∼ IBCR2 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 BER BEIE SCC MSS ACK GCAA INTE INT 00000000B R/W R/W W R/W R/W R/W R/W R/W R/W :リード / ライト可能 W :ライトオンリ • バスステータスレジスタ (IBSR) IBSR0 ∼ IBSR2 R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 BB RSC AL LRB TRX AAS GCA ADT 00000000B R R R R R R R R bit10 bit9 bit8 初期値 TA8 ------00B R/W :リードオンリ • 10 ビットスレーブアドレスレジスタ (ITBA) ITBAH0 ∼ ITBAH2 ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 − − − − − − TA9 − − − − − − R/W ITBAL0 ∼ ITBAL2 ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TA7 R/W TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W 00000000B bit10 bit9 bit8 初期値 − − TM9 R/W TM8 R/W 00----11B R/W :リード / ライト可能 • 10 ビットスレーブアドレスマスクレジスタ (ITMK) ITMKH0 ∼ ITMKH2 ( 上位バイト ) bit15 bit14 ENTB R/W RAL R bit13 − − bit12 − − bit11 − − ITMKL0 ∼ ITMKL2 ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TM7 R/W TM6 R/W TM5 R/W TM4 R/W TM3 R/W TM2 R/W TM1 R/W TM0 R/W 11111111B R/W :リード / ライト可能 R :リードオンリ 439 第 13 章 I2C インタフェース • 7 ビットスレーブアドレスレジスタ (ISBA) ISBA0 ∼ ISBA2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − SA6 SA5 SA4 SA3 SA2 SA1 SA0 -0000000B − R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 • 7 ビットスレーブアドレスマスクレジスタ (ISMK) ISMK0 ∼ ISMK2 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 ENSB R/W SM6 R/W SM5 R/W SM4 R/W SM3 R/W SM2 R/W SM1 R/W SM0 R/W 01111111B R/W :リード / ライト可能 • データレジスタ (IDAR) IDAR0 ∼ IDAR2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W 00000000B R/W :リード / ライト可能 • クロックコントロールレジスタ (ICCR) ICCR0 ∼ ICCR2 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − NSF R/W EN R/W CS4 R/W CS3 R/W CS2 R/W CS1 R/W CS0 R/W -0011111B R/W :リード / ライト可能 440 第 13 章 I2C インタフェース ■ I2C インタフェースのブロックダイヤグラム 図 13.1-1 に , I2C インタフェースのブロックダイヤグラムを示します。 図 13.1-1 I2C インタフェースのブロックダイヤグラム R-bus ICCR EN IDBL DBL ICCR CS4 CS3 CS2 CS1 CS0 IBSR BB RSC LRB TRX 2 I C動作許可 CLKP クロック許可 クロック分周2 2 345 32 Sync クロック選択2 (1/12) シフトクロック エッジ変化タイミング バスビジー リピート スタート スタート・ストップ ラストビット コンディション検出 送/受 エラー ファーストバイト ADT AL アービトレーションロスト検出 SCLI SCLO IBCR BER BEIE IBCR ACK GCAA IRQ 割込み要求 INTE INT SCC MSS シフトクロック発生 SDA SDAO 終了 スタート マスタ スタート・ストップ ACK許可 コンディション発生 GC-ACK許可 IDAR IBSR AAS GCA スレーブ グローバル コール スレーブアドレス 比較 ISML FNSB ITMK ENTB RAL ITBA ITMK ISBA ISMK 441 第 13 章 I2C インタフェース 13.2 I2C インタフェースのレジスタ ここでは , I2C インタフェースで使用するレジスタの構成および機能について説明し ます。 ■ I2C インタフェースのレジスタ概要 I2C インタフェースには , 次の 8 種類のレジスタがあります。 • バスステータスレジスタ (IBSR0 ∼ IBSR2) • バスコントロールレジスタ (IBCR0 ∼ IBCR2) • クロックコントロールレジスタ (ICCR0 ∼ ICCR2) • 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) • 10ビットスレーブアドレスマスクレジスタ (ITMKH0∼ITMKH2, ITMKL0∼ITMKL2) • 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) • 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) • データレジスタ (IDAR0 ∼ IDAR2) 442 第 13 章 I2C インタフェース 13.2.1 バスステータスレジスタ (IBSR0 ∼ IBSR2) バスステータスレジスタ (IBSR0 ∼ IBSR2) には , 以下の機能があります。 • バスビジー検出 • 再起動条件検出 • アービトレーションロスト検出 • アクノリッジ検出 • データ転送方向表示 • スレーブアドレッシング検出 • ゼネラルコールアドレス検出 • アドレスデータ転送検出 ■ バスステータスレジスタ (IBSR0 ∼ IBSR2) バスステータスレジスタ (IBSR0 ∼ IBSR2) のレジスタ構成は , 以下のとおりです。 IBSR0 ∼ IBSR2 R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 BB RSC AL LRB TRX AAS GCA ADT 00000000B R R R R R R R R :リードオンリ このレジスタは読出し専用です。レジスタのビットはすべてハードウェアにより自動 的に制御されます。I2C インタフェースが有効でない場合 (ICCR レジスタの EN ビット が "0") は , このレジスタのビットはすべてクリア状態となります。 [bit7] BB:バスビジービット I2C バスの状態を示すビットです。 値 内 容 0 停止条件を検出した [ 初期値 ] 1 起動条件を検出した ( バス使用中 ) [bit6] RSC:再起動条件ビット 再起動条件検出ビットです。 値 内 容 0 再起動条件は検出されていない [ 初期値 ] 1 再起動条件を検出した このビットは , スレーブ・アドレス転送終了 (ADT=0), または停止条件の検出でクリ アされます。 443 第 13 章 I2C インタフェース [bit5] AL:アービトレーションロスト検出ビット アービトレーションロスト検出ビットです。 値 内 容 0 アービトレーションロストが検出されていない [ 初期値 ] 1 マスタ送信中にアービトレーションロストが発生した このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに "1" を書き込むことによってクリアされます。 〔アービトレーションロストが発生する例〕 • データ送信が SCL の立上りエッジで SDA ライン上のデータと一致しない • データのファーストビットで , ほかのマスタによって , 再起動条件が発生した。 • I2C インタフェースが , ほかのスレーブデバイスによって SCL ラインが "L" にドラ イブされているために , 起動条件 , または停止条件を生成できない。 [bit4] LRB:アクノリッジ格納ビット アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。 値 内 容 0 スレーブアクノリッジを検出した [ 初期値 ] 1 スレーブアクノリッジを検出していない アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。 起動条件または停止条件の検出でクリアされます。 [bit3] TRX:データ送信ビット データ転送中に送信状態を示すビットです。 値 内 容 0 データ送信中でない [ 初期値 ] 1 データ送信中 "1" セット : マスタモードで起動条件が生成された -スレーブモードでリードアクセス時 ( 送信 ) , 第一バイトの転送終了 -マスタモードで送信中 "0" セット : バスがアイドル状態 (BB=0 :IBCR) -アービトレーションロス発生 -マスタ割込み中 (MSS=1, INT=1) に SCC に "1" が書き込まれた。 -マスタ割込み中 (MSS=1, INT=1) に MSS ビットがクリアされた。 -スレーブ時 , 転送の最後にアクノリッジが発生しなかった。 -スレーブモードでの受信中 -マスタモードでのスレーブからデータ受信中 444 第 13 章 I2C インタフェース [bit2] AAS:スレーブアドレッシング検出ビット スレーブ・アドレッシング検出ビットです。 値 内 容 0 スレーブに指定されていない [ 初期値 ] 1 スレーブに指定された ( 再 ) 起動または停止条件の検出でクリアされます。 7/10 ビットのスレーブアドレスを検出したときにセットされます。 [bit1] GCA:ゼネラルコールアドレス検出ビット ゼネラルコールアドレス (00H) 検出ビットです。 値 内 容 0 ゼネラルコールアドレスを検出していない [ 初期値 ] 1 ゼネラルコールアドレスを検出した ( 再 ) 起動または停止条件の検出でクリアされます。 [bit0] ADT:アドレスデータ転送 スレーブ・アドレス受信検出ビットです。 値 内 容 0 受信データがスレーブ・アドレスでない ( またはバス開放中 ) [ 初期値 ] 1 受信データがスレーブ・アドレスである 起動の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ・アド レスのヘッダが検出されると , 第二バイトのあとクリアされ , それ以外のときは , 第 一バイトのあとでクリアされます。 〔第一バイト / 第二バイトのあととは〕 • マスタ割込み (MSS=1, INT=1:IBCR) 中に MSS ビットに "0" が書き込まれた • マスタ割込み (MSS=1, INT=1:IBCR) 中に SCC ビットに "1" が書き込まれた • INT ビットがクリアされた • マスタ , またはスレーブとして転送対象でなければ , すべての転送バイトの最初 445 第 13 章 I2C インタフェース 13.2.2 バスコントロールレジスタ (IBCR0 ∼ IBCR2) バスコントロールレジスタ (IBCR0 ∼ IBCR2) には以下の機能があります。 • 割込み許可フラグ • 割込み生成フラグ • バスエラー検出フラグ • 再起動条件生成 • マスタ / スレーブモード選択 • ゼネラルコールアクノリッジ生成許可 • データバイトアクノリッジ生成許可 ■ バスコントロールレジスタ (IBCR0 ∼ IBCR2) バスコントロールレジスタ (IBCR) のレジスタ構成は , 以下のとおりです。 IBCR0 ∼ IBCR2 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 BER R/W BEIE R/W SCC W MSS R/W ACK R/W GCAA R/W INTE R/W INT R/W 00000000B R/W :リード / ライト可能 W :ライトオンリ バスコントロールレジスタ (IBCR) への書込みアクセスは , INT ビットが "1" あるいは 転送が開始される場合に行ってください。ACK ビットもしくは GCAA ビットを変更す るとバスエラーが検出される場合があるので , 転送動作中にはレジスタへの書込みア クセスを行わないでください。I2C インタフェースが有効でない場合 (ICCR の EN ビッ トが "0") は , BER ビットと BEIE ビットを除き , このレジスタのビットはクリア状態と なります。 [bit15] BER:バスエラーフラグ バスエラー割込み要求フラグビットです。このビットは , リードモディファイ系の 命令では , 常に "1" が読まれます。 ( 書込み時 ) 値 内 容 0 バスエラー割込み要求フラグをクリアする 1 意味をもちません ( 読出し時 ) 値 446 内 容 0 バスエラーは検出されていない [ 初期値 ] 1 エラーコンディションを検出した 第 13 章 I2C インタフェース このビットがセットされた場合 , ICCR レジスタの EN ビットはクリアされ , I2C イ ンタフェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を 除き IBSR と IBCR レジスタのすべてのビットはクリアされます。このビットは , I2C インタフェースを再度イネーブル (EN = 1) にする前にクリアしてください。 〔"1" がセットされる場合〕 1. 起動条件 , または停止条件が不正な場所で検出された ( スレーブ・アドレス転送中 , データ転送中 ) 。 2. 10 ビットリードアクセス時に , 第一バイトにて 10 ビットライトアクセスする前に , リードアクセスのスレーブ・アドレスヘッダが受信された。 3. マスタモードで転送中に起動条件が検出された。 1. , 2. の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正バス エラーレポートを抑止するために , 最初の停止条件の受信後フラグセットされます。 [bit14] BEIE:バスエラー割込み許可ビット バスエラー割込み許可ビットです。 値 内 容 0 バスエラー割込み禁止 [ 初期値 ] 1 バスエラー割込み許可 このビットが "1" のとき , BER ビットに "1" がセットされると割込みを発生します。 [bit13] SCC:起動条件継続ビット 再起動条件発生ビットです。 ( 書込み時 ) 値 内 容 0 意味をもちません 1 マスタ転送時に再起動条件を発生させる このビットの読出し値は常に "0" です。 マスタモード (MSS=1, INT=1) 中にこのビットに "1" を書き込むと , 再起動条件が発 生し , 自動的に INT ビットをクリアします。 [bit12] MSS:マスタ / スレーブ選択ビット マスタ / スレーブの選択ビットです。 値 内 容 0 スレーブモードとなります [ 初期値 ] 1 マスタモードとなり起動条件を発生し , IDAR レジスタの値をスレー ブアドレスとして送信します • このビットは , マスタ送信中にアービトレーションロスが発生した場合クリアされ , スレーブモードになります。 447 第 13 章 I2C インタフェース • マスタ割込みフラグセット中 (MSS=1, INT=1) に "0" を書き込むと INT ビットは自動 的にクリアされ , 停止条件が発生し転送が終了します。 注 ) MSS ビットは直接的なリセットとして機能します。停止条件の発生は , IBSR レ ジスタの BB ビットを読み出すことによって確認できます。 • バスがアイドル中 (MSS=0, BB=0) に "1" を書き込むと起動条件が発生し , IDAR の値 が送信されます。 • バス使用中 (BB=1, TRX=0, MSS=0) に "1" を書き込むと I2C インタフェースはバスが 開放されるまで待ち , 送信を開始します。その間に I2C インタフェースはライトアク セスを伴うスレーブとしてアドレス指定されると , 転送終了後にバスは開放されま す。その間 , スレーブとして送信中の場合 (AAS=1, TRX=1:IBCR), バスが開放されて もデータ送信しません。I2C インタフェースがスレーブ (AAS=1:IBSR) として指定さ れたか , 次の割込み時にデータを送信が正常終了にした (MSS=1:IBCR) か , 不正終了 した (AL=1:IBSR) かどうか確認することが重要となります。 [bit11] ACK:アクノリッジビット データを受信許可ビットに従いアクノリッジを発生するビットです。 値 内 容 0 データ受信に対しアクノリッジを発生しない [ 初期値 ] 1 データ受信に対しアクノリッジを発生する • このビットは , スレーブ時のスレーブ・アドレス受信時には無効となります。I2C イ ンタフェースが 7 ビット , または 10 ビットのスレーブ・アドレス指定を検出したと き , 対応するイネーブルビット (ENTB:ITMK, ENSB:ISMK) がセットされていると , アクノリッジを返します。 • このビットへの書込みは , 割込みフラグセット中 (INT=1), またはバスが開放中 2 (BB=0:IBSR), I C インタフェースが停止中 (EN=0:ICCR) に行ってください。 [bit10] GCAA:ゼネラルコールアドレスアクノリッジビット ゼネラルコールアドレスを検出した場合のアクノリッジ発生許可ビットです。 値 内 容 0 ゼネラルコールアドレスを検出時にアクノリッジ発生しない [ 初期値 ] 1 ゼネラルコールアドレスを検出時にアクノリッジ発生する このビットへの書込みは , 割込みフラグセット中 (INT=1), またはバスが開放中 (BB=0:IBSR), I2C インタフェースが停止中 (EN=0:ICCR) に行ってください。 • ゼネラルコールアドレス受信時には , このビットと ACK ビットをともに "1" にする ことにより , アクノリッジ応答の発生が許可されます。 • ゼネラルコールアドレス送信時には , このビットを "1" にすることにより , アクノ リッジ応答の発生が許可されます。 448 第 13 章 I2C インタフェース • スレーブ受信 (マスタでゼネラルコールアドレスを送信した後に, アービトレーショ ンロストが発生した場合を含む) でデータ受信時のアクノリッジビット出力は, ACK ビットとこのビットがともに "1" のときに出力許可となります。 • バスステータスレジスタ (IBSR) の GCA ビットが "1" のときには , このビットの設 定値を変更しないでください。 [bit9] INTE:割込み許可ビット 割込み許可ビットです。 値 内 容 0 割込み禁止 [ 初期値 ] 1 割込み許可 このビットが "1" のときに , INT ビットが "1" になると割込みを発生します。 [bit8] INT:割込み要求フラグ 転送終了割込み要求フラグビットです。このビットは , リードモディファイ系の命 令では常に "1" が読み出されます。 ( 書込み時 ) 値 内 容 0 転送終了割込み要求フラグをクリアする [ 初期値 ] 1 意味をもちません ( 読出し時 ) 値 内 容 0 転送が終了していない , または転送対象でない , バスが開放状態であ る [ 初期値 ] 1 アクノリッジビットを含めた 1 バイト転送が終了したときに次の条 件に該当する場合セットされます。 ・バスマスタである ・スレーブ・アドレスに指定された ・ゼネラルコールアドレスを受信した ・アービトレーションロストが起こった スレーブアドレスに指定されているとき , アクノリッジを含むスレー ブアドレス受信の最後にセットされます。 このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへ "0" を書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行い , 再起動条 件 , または停止条件を生成します。 このビットは , SCC ビット , または MSS ビットに "1" が書き込まれると , クリアさ れます。 449 第 13 章 I2C インタフェース <注意事項> SCC, MSS, INT ビットの競合について SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 再起動条件 , または停止条件 発生の競合が起こります。このときの優先度は次のようになります。 • 次のバイト転送と停止条件発生 INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先され , 停止条件が発生されます。 • 次のバイト転送と起動条件発生 INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先され , 再 起動条件が発生し IDAR の値が送信されます。 • 再起動条件発生と停止条件発生 SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先されま す。停止条件が発生し I2C インタフェースはスレーブモードになります。 図 13.2-1 と図 13.2-2 に示したタイミングで , 起動条件を発生させる命令を実行 (IBCR の MSS=1) すると , アービトレーションロスト検出 (IBSR の AL=1) による割込み (IBCR の INT=1) は発生しません。 ● アービトレーションロスト検出による割込みが発生しない条件 (1) 起動条件未検出状態 (IBSR の BB=0) で , SDA 端子または SCL 端子レベルが "L" のと きに , 起動条件を発生させる命令を実行 (IBCR の MSS=1) した場合。 図 13.2-1 アービトレーションロスト検出による割込みが発生しないタイミング SCL端子またはSDA端子がLowレベル SC端子 "L" SDA端子 "L" 1 I2C動作許可状態(ENbit=1) マスタモード設定(MSSbit=1) アービトレーションロスト検出(AL bit=1) 450 バスビジー(BB bit) 0 割り込み(INT bit) 0 第 13 章 I2C インタフェース ● アービトレーションロスト検出による割込みが発生しない条件 (2) ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (ICCR の EN=1) して 起動条件を発生させる命令を実行 (IBCR の MSS=1) した場合。 図 13.2-2 に示したとおり , I2C が動作禁止 (ICCR の EN=0) の状態で , I2C バスのほか のマスタが通信を開始すると , 起動条件未検出 (IBSR の BB=0) で I2C バスが占有され ている状態になるためです。 図 13.2-2 アービトレーションロスト検出による割込みが発生しないタイミング 9クロック目でINTbit割り込み が発生しない Start Condition Stop Condition SCL端子 SLAVE SDA端子 ADDRESS ACK DAT ACK ENbit MSSbit ALbit 0 BBbit 0 INTbit これらのような現象が発生する可能性がある場合には , 以下の手順でソフト処理を 行ってください。 1. 起動条件を発生させる命令を実行 (IBCR の MSS=1) 2. タイマ機能などを用いて , ICCR に設定されている I2C 転送周波数での 3 ビットデー タ送信時間待機 * 例: I2C 転送周波数が 100 kHz の場合 3 ビットデータ送信時間 = {1/(100 × 103)} × 3 = 30µs *:アービトレーションロストが検出された場合 , MSS ビット設定後 I2C 転送周波 数での 3 ビットデータ送信時間後には確実に AL=1 となります。 3. IBSR の AL ビットと BB ビットを確認し , AL=1 かつ BB=0 の場合には , ICCR の EN ビットを "0" にして I2C を初期化 AL ビットと BB ビットがその他の値である場合は , 通常処理 451 第 13 章 I2C インタフェース 以下にフロー例を示します。 マスタモード設定 バス制御レジスタ(IBCR)のMSSビットを"1"に設定 クロック制御レジスタ(ICCR)に設定されている I2C転送周波数での3ビットデータ送信時間待機 NO BB= 0 かつ AL= 1 YES ENビットを設定し,I2Cの初期化 通常処理 ● アービトレーションロスト検出による割込みが発生する例 バスビジー検出 (IBSR の BB=1) されている状態で , 起動条件を発生させる命令を実行 (IBCR の MSS ビットを "1" に設定 ) し , アービトレーションロストした場合には , AL=1 検出時に INT=1 となり割込みが発生します。 図 13.2-3 アービトレーションロスト検出による割込みが発生するタイミング例 9クロック目で割り込み Start Condition SCL端子 SDA端子 SLAVE ADDRESS ACK DAT ENbit MSSbit ソフトでのALビットクリア ALbit BBbit ソフトでのINTビットクリア でSCL開放 INTbit 452 第 13 章 I2C インタフェース 13.2.3 クロックコントロールレジスタ (ICCR0 ∼ ICCR2) クロックコントロールレジスタ (ICCR0 ∼ ICCR2) には , 以下の機能があります。 • ノイズフィルタ有効 • I2C インタフェース動作許可 • シリアルクロック周波数設定 ■ クロックコントロールレジスタ (ICCR0 ∼ ICCR2) クロックコントロールレジスタ (ICCR0 ∼ ICCR2) のレジスタ構成は以下のとおりです。 ICCR0 ∼ ICCR2 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − NSF EN CS4 CS3 CS2 CS1 CS0 -0011111B R/W R/W R/W R/W R/W R/W R/W − R/W :リード / ライト可能 [bit15] Reserved:予約ビット 読出し値は常に "0" です。 [bit14] NSF:ノイズフィルタ有効ビット SDA および SCL 端子に配置されたノイズフィルタを有効にするビットです。この ノイズフィルタにより , これらの入力に発生するスパイク (CLKP1 ∼ 1.5 サイクル ) を抑制することができます。送信 / 受信レートが 100 kbps 以上の場合には , このビッ トを "1" に設定してください。 [bit13] EN:動作許可ビット I2C インタフェース動作許可ビットです。 値 内 容 0 動作禁止 [ 初期値 ] 1 動作許可 [bit12 ∼ bit8] CS4 ∼ CS0:クロック周期選択ビット シリアルクロックの周波数を設定するビットです。 このビットは , I2C インタフェースを動作禁止 (EN=0) にするか , EN ビットがクリア されたときにのみ書込み可能です。 シフトクロックの周波数 fsck は次式のように設定されます。 fsck = φ n × 12 + 16 N > 0 φ: マシンクロック (=CLKP) 453 第 13 章 I2C インタフェース レジスタ設定 n CS4 CS3 CS2 CS1 CS0 1 0 0 0 0 1 2 0 0 0 1 0 3 0 0 0 1 1 ••• ••• ••• ••• ••• ••• 31 1 1 1 1 1 CS4 ∼ CS0 = 00000B は設定禁止です。 454 第 13 章 I2C インタフェース 13.2.4 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) は , 10 ビットのスレーブアドレスを示します。 ■ 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) のレジ スタ構成は , 以下のとおりです。 ITBAH0 ∼ ITBAH2 ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 − − − − − − − − − − − − bit9 bit8 初期値 TA9 TA8 ------00B R/W R/W ITBAL0 ∼ ITBAL2 ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TA7 R/W TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W 00000000B R/W :リード / ライト可能 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) への書 込みアクセスは , I2C インタフェースが有効でない場合 (ICCR の EN ビットが "0") に 行ってください。 [bit15 ∼ bit10] Reserved:予約ビット 読出し時は常に "0" です。 [bit9 ∼ bit0] TA9 ∼ TA0:10 ビットスレーブアドレスビット (A9 ∼ A0) 10 ビットアドレスが有効 (ENTB=1:ITMK) のとき , スレーブモードでスレーブアド レスを受信すると , 受信アドレスと ITBA と比較します。 アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信 されます。 第一 , 第二バイト受信データと TBAL レジスタと比較されます。一致が検出される と , アクノリッジ信号が , マスタデバイスに送信し , AAS ビットがセットされます。 I2C インタフェースは , 再起動条件の後 , 10 ビットリードアクセスのアドレスヘッ ダの受信に応答します。 スレーブアドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー ブアドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS (IBSR レジスタ ) が "1" のときのみです。 455 第 13 章 I2C インタフェース 13.2.5 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) には , 10 ビットスレーブアドレスマスクと , 10 ビットスレーブアドレス許 可ビットがあります。 ■ 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) のレジスタ構成は , 以下のとおりです。 ITMKH0 ∼ ITMKH2 ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 ENTB RAL − − − − TM9 TM8 00----11B R/W R − − − − R/W R/W ITMKL0 ∼ ITMKL2 ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TM7 TM6 TM5 TM4 TM3 TM2 TM1 TM0 11111111B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 R :リードオンリ [bit15] ENTB:10 ビットスレーブアドレス許可ビット 10 ビットスレーブアドレス動作許可ビットです。 値 内 容 0 10 ビットスレーブアドレス動作禁止 [ 初期値 ] 1 10 ビットスレーブアドレス動作許可 このビットへの書込みは , I2C インタフェースが停止状態 (EN=0:ICCR) で行ってく ださい。 [bit14] RAL:受信スレーブアドレス長ビット このビットは , スレーブアドレス長を示します。 値 456 内 容 0 7 ビットスレーブアドレス [ 初期値 ] 1 10 ビットスレーブアドレス 第 13 章 I2C インタフェース このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可 (ENTB=1 かつ ENSB=1) になっている場合に , 10 ビット , 7 ビットスレーブアドレス 動作のどちらの転送長が有効になるかの決定に使用できます。 このビットは AAS ビット (IBSR) が "1" のときに有効です。 このビットはインタフェースの動作を禁止 (EN=0:ICCR) したときにクリアされます。 このビットは読出しのみ可能です。 [bit13 ∼ bit10] Reserved:予約ビット 読出し時は常に "1" が読まれます。 [bit9 ∼ bit0] TM9 ∼ TM0:10 ビットスレーブアドレスマスクビット このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。 このレジスタへの書込みは, I2Cインタフェースが動作禁止(EN=0:ICCR)のとき行っ てください。 値 内 容 0 当該ビットをスレーブアドレス比較に使用しない 1 当該ビットをスレーブアドレス比較に使用する [ 初期値 ] このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ リッジを送信することが可能になります。このレジスタを , 10 ビットスレーブアド レス比較に使用されるときに , このビットを "1" にセットしてください。受信した スレーブアドレスは , ITBA に上書きされます。AAS = 1(IBSR) のとき ITBA レジス タを読み出すことによって実際の指定されたスレーブアドレスを特定できます。 ITMK の TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9 ∼ TM0の値が"1"のときはITBAのアドレスが有効になり"0"のときは無効になります。 例:ITBA アドレス 0010010111B ITMK アドレス 1111111100B のとき スレーブアドレスは 0010010100B ∼ 0010010111B の空間になります。 457 第 13 章 I2C インタフェース 13.2.6 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) は , 7 ビットのスレーブアド レスを示します。 ■ 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) のレジスタ構成は , 以下のとおり です。 ISBA0 ∼ ISBA2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − SA6 R/W SA5 R/W SA4 R/W SA3 R/W SA2 R/W SA1 R/W SA0 R/W -0000000B R/W :リード / ライト可能 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) への書込みアクセスは , I2C イン タフェースが有効でない場合 (ICCR の EN ビットが "0") に行ってください。 [bit7] Reserved:予約ビット 読出し値は "0" です。 [bit6 ∼ bit0] SA6 ∼ SA0:スレーブアドレスビット スレーブモードでスレーブアドレスを受信したとき , 7 ビットスレーブアドレスが 許可 (ENSB=1:ISMK) されていると , 受信スレーブアドレスと ISBA の比較を行いま す。スレーブアドレス一致が検出されると , マスタに対してアクノリッジを送信し , AAS ビットをセットします。 I2C インタフェースは , 再起動条件のあと 7 ビットリードアクセスのアドレスヘッ ダの受信にアクノリッジを返します。 スレーブアドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー ブアドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS (IBSR レジスタ ) が "1" のときのみです。 I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはゼネラルコールが 受信されたとき , ISBA と受信スレーブ・アドレスとの比較を行いません。 458 第 13 章 I2C インタフェース 13.2.7 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) には , 7 ビットスレー ブアドレスマスクと , 7 ビットスレーブアドレス許可ビットがあります。 ■ 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) のレジスタ構成は , 以下 のとおりです。 ISMK0 ∼ ISMK2 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 ENSB R/W SM6 R/W SM5 R/W SM4 R/W SM3 R/W SM2 R/W SM1 R/W SM0 R/W 01111111B R/W :リード / ライト可能 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) への書込みアクセスは , I2C インタフェースが有効でない場合 (ICCR の EN ビットが "0") に行ってください。 [bit15] ENSB:7 ビットスレーブアドレス許可ビット 7 ビットスレーブアドレス動作許可ビットです。 値 内 容 0 7 ビットスレーブアドレス動作禁止 [ 初期値 ] 1 7 ビットスレーブアドレス動作許可 [bit14 ∼ bit8] SM6 ∼ SM0:7 ビットスレーブアドレスマスクビット このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。 値 内 容 0 当該ビットをスレーブアドレス比較に使用しない 1 当該ビットをスレーブアドレス比較に使用する [ 初期値 ] このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノ リッジを送信することが可能になります。このレジスタを , 7 ビットスレーブアド レス比較に使用するときは , このビットを "1" にセットしてください。受信したス レーブアドレスは , ISBA に上書きされます。AAS = 1(IBSR) のとき ISBA レジスタ を読み出すことによって実際の指定されたスレーブアドレスを特定できます。 I2C インタフェースが許可になった後 , スレーブアドレス (ISBA) は , 受信動作によっ て書き換えられるため , ISMK を書き換えたときは , ISMK を再設定しないと期待ど おりの動作をしないことがあります。 459 第 13 章 I2C インタフェース ISMK の SM6 ∼ SM0 の各ビットが ISBA のアドレスの各ビットに対応しており SM6 ∼ SM0の値が"1"のときはISBAのアドレスが有効になり"0"のときは無効になります。 例:ISBA アドレス 0010111B ISMK アドレス 1111100B のとき スレーブアドレスは 0010100B ∼ 0010111B の空間になります。 460 第 13 章 I2C インタフェース 13.2.8 データレジスタ (IDAR0 ∼ IDAR2) データレジスタ (IDAR0 ∼ IDAR2) について説明します。 ■ データレジスタ (IDAR0 ∼ IDAR2) データレジスタ (IDAR0 ∼ IDAR2) のレジスタ構成は , 以下のとおりです。 IDAR0 ∼ IDAR2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W 00000000B R/W :リード / ライト可能 [bit7 ∼ bit0] D7 ∼ D0:データビット シリアル転送に使用されるデータレジスタであり , MSB から転送されます。 このレジスタの書込み側はダブルバッファになっており , バスが使用中(BB=1)であ る場合 , 書込みデータはシリアル転送用のレジスタにロードされます。INT ビット (IBCR) がクリアされるか , バスがアイドル状態 (BB=0:IBSR) のとき転送データは内 部転送レジスタにロードされます。 読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー タは INT ビット (IBCR) がセットされている場合のみ有効です。 461 第 13 章 I2C インタフェース 13.3 I2C インタフェースの動作説明 I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL) の 2 本の双方向バスラインにより転送が行われます。 I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) を有し , ワイヤード論理を可能にします。 ■ 起動条件 バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ ンタフェースはマスタモードとなり , 起動条件を発生します。そのとき , スレーブアド レスとして IDAR レジスタの値を送信します。 バスマスタモードで割込みフラグがセットされているとき (MSS=1, INT=1:IBCR), SCC ビットに "1" を書き込むことで , 再起動条件が生成されます。 バス使用時 (BB=1, TRX=0: IBSR, MSS=0 または INT=0:IBCR) に , MSS ビットに "1" を 書き込むとバスが開放され , 送信が開始されます。 スレーブモード時ライト ( 受信 ) アクセスされると , 転送終了しバスが開放された後 , 送信開始します。そのとき , インタフェースがデータ送信中であれば , バスが開放され ても送信しません。 インタフェースは , 次のことをチェックする必要があります。 • スレーブとして指定された (MSS=0:IBCR, AAS=1:IBSR) かどうか • 次の割込みで , データバイトを正常に送れた (AL=1:IBSR) かどうか ■ 停止条件 マスタモード (MSS=1, INT=1:IBCR) 時に , MSS ビットに "0" を書き込むと , 停止条件を 発生し , スレーブモードになります。ほかの条件での , MSS に "0" 書込みは , 無視され ます。 MSS ビットがクリアされたあと , 停止条件を生成しようとします。停止条件を生成す る前に , SCL ラインが "L" にドライブされているときは , 生成されません。次のバイト が転送されたあと割込みが生成されます。 <注意事項> MSS ビットに "0" を書き込んでから , 停止条件を発生するまでに時間を要します。起動条 件を発生前に I2C インタフェースを動作禁止 (DBL=1:IDAR または EN=0:ICCR) にすると , 直ちに動作停止し SCL ラインに不正クロックが発生します。I2C インタフェースの動作を 禁止する際には , 起動条件の発生を確認 (BB=0:IBSR) したのち , 動作を禁止 (DBL=1:IDAR または EN=1:ICCR) してください。 462 第 13 章 I2C インタフェース ■ スレーブアドレス検出 スレーブモードでは , 起動条件発生後 , BB=1 にセットされ , マスタからの送信データ を IDAR レジスタへ受信します。 〔7 ビットスレーブアドレス動作許可の場合〕(ISMK レジスタの ENSB=1) 8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。こ のとき , ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合, AAS=1 にセットし, マスタに対してアクノリッジを送信します。 その後 , 受信データの bit0 ( 受信後の IDAR レジスタの bit0) を反転して TRX ビット へ格納します。 〔10 ビットスレーブアドレス動作許可の場合〕(ITMK レジスタの ENTB=1) 10 ビットアドレスのヘッダ部 (11110, TA1, TA0, write) を検出すると , マスタに対し てアクノリッジを送信し , 受信データの bit0 を反転して TRX ビットへ格納します。 このとき割込みは発生しません。 続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。こ のとき ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信し ます。このとき割込みが発生します。 スレーブとしてアドレス指定され , 再起動条件を検出した場合 , 10 ビットアドレス のヘッダ部 (11110, TA1, TA0, read) を受信後に AAS に "1" をセットし , 割込みを発 生します。 10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ (ISBA) を搭載しているので , 両方の動作許可 (ISMK レジスタの ENSB=1, ITMK レ ジスタの ENTB=1) をすることにより , 10 ビットアドレス /7 ビットアドレスに対し てアクノリッジを送信することができます。 スレーブモード時 (AAS=1) の受信スレーブアドレス長は , ITMK レジスタの RAL ビットによって決定します。マスタモード時は , 両方の動作を禁止 (ENSB=0:ISMK, ENTB=0:ITMK) することにより , I2C インタフェースにスレーブアドレスを生成し ないことが可能です。 全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできま す。 ■ スレーブアドレスマスク スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各 ビットに対してマスクすることができます。マスクレジスタに "1" をセットされたビッ トはアドレス比較を行いますが , "0" に設定されているビットは無視されます。スレー ブモード (AAS=1:IBSR) 時 , 受信スレーブアドレスは , ITBA (10 ビットアドレス時 ) , ISBA (7 ビットアドレス時 ) レジスタから読み出せます。 ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの モニタとして使用できます。 <注意事項> ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを 返すので , この機能は , リアルバスモニタとはなりません。 463 第 13 章 I2C インタフェース ■ スレーブアドレッシング マスタモードでは , 起動条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタの内容 を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを受信す ると , 送信データの bit0 ( 送信後の IDAR レジスタの bit0) を反転して TRX ビットへ格 納します。この動作は , 再起動条件でも実行されます。 ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第一バイトは , 10 ビットシーケンスを示すヘッダ"1 1 1 1 0 A9 A8 0"であり, 続いて, 第二バイトでスレー ブアドレスの下位 8 ビット (A7 ∼ A0) を送信します。 リード10ビットスレーブデバイスは上記のバイトを送信し, 再起動条件とともに, リー ドアクセスを示すヘッダ "1 1 1 1 0 A9 A8 1" を生成します。 7 ビット スレーブアクセス 10 ビット スレーブアクセス 書込み 起動条件 -A6 A5 A4 A3 A2 A1 A0 0 読出し 起動条件 -A6 A5 A4 A3 A2 A1 A0 1 書込み 起動条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0 読出し 起動条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0 - 再起動条件 -1 1 1 1 0 A9 A8 1 ■ アービトレーション マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ ンが起こります。自身の送信データが "1", SDA ライン上のデータが "L" レベルの場合 , 自身はアービトレーションを失ったとみなし , AL=1 にセットします。 インタフェースがデータの最初のビットで , 不要な起動条件を検出されるか起動条件 , 停止条件の生成が失敗した場合 , AL=1 がセットされます。 アービトレーションロストが発生すると , MSS=0, TRX=0 となり , スレーブ受信モード となり , 自身のスレーブアドレスを受信するとアクノリッジを返します。 ■ アクノリッジ アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット (IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択することができま す。 スレーブモード時のデータ送信 ( ほかのマスタからのリードアクセス ) に , マスタから アクノリッジがなくても , TRX ビットは "0" にセットし , 受信モードになります。これ により , マスタはスレーブが SCL ラインを開放したときに , 停止条件を発生すること ができます。 マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか どうかをチェックできます。 ゼネラルコールアドレスを送信した後に , アービトレーションロストが発生した場合 , データ ( 発生したデータを含む ) 受信時にアクノリッジ応答する場合は , ACK ビット と GCAA ビットをともに "1" に設定してください。それ以外の設定では , アクノリッ ジ応答しません。 464 第 13 章 I2C インタフェース ■ バスエラー 以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に なります。 • データ転送中 (ACK ビットを含む ) の I2C バスプロトコル違反の検出 • マスタ時の停止条件検出 • バスアイドル時の I2C バスプロトコル違反の検出 ■ エラーを発生しない通信エラー マスタモード送信時 , SCL ラインにノイズなどで不正クロックが発生すると , I2C イン タフェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ライン に "L" を出したまま , ハングアップすることがあります。このようなクロックの不正に 対し , エラー (AL=1, BER=1) が発生しません。 この場合次の方法でエラー処理をしてください。 1. MSS=1, TRX=1, INT=1 のとき , LRB=1 であれば , 通信エラーと判断します。 2. ここで , EN=0 とし , その後 EN=1 とすることにより , 疑似的に SCL が 1 クロック発 生します。 これにより , スレーブにバスを開放させます。 EN=0 から EN=1 の期間は , スレーブ側が , クロックと認識できる期間 ( 送信クロッ クの "H" 期間と同じ程度 ) としてください。 3. EN=0 の時点で , IBSR, IBCR はクリアされますので , 起動条件から再送信処理をして ください。このとき , BB=0 による停止条件は生成されません。 このとき , EN=1 から MSS=1 ( 起動条件 ) までに , "n × 7 × tCPP" 以上の時間を空け てください。 例:高速モードの場合:6 × 7 × 40 ≒ 1.680 µs 標準モードの場合:27 × 7 × 40 ≒ 7.560 µs (CLKP=25 MHz 時 ) <注意事項> BER がセットされている場合は , EN=0 でクリアされません。クリア後 , 再送信してくだ さい。 465 第 13 章 I2C インタフェース ■ その他 1. アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド レッシングされていなかった場合をソフトで判断する必要があります。 アービトレーションロストするとハード的にスレーブになりますが , 1 バイト転送 終了後 , クロックライン , データライン双方を "L" に引っ張ります。このため , アド レッシングされていなければ , 即座にクロックライン , データラインを開放し , アド レッシングされていた場合には , スレーブ送信または , スレーブ受信の準備をして から , クロックライン , データラインを開放する必要があります ( すべてソフトウェ アにて処理する必要があります ) 。 2. I2C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点で , あるいは割込み 条件に該当していた場合 , 割込み要因が発生する仕様になっています。 1 つの割込みで , 複数の割込み条件を判断しなければならないため , 割込みルーチン 内で , 各フラグをチェックする必要があります。1 バイト転送終了時点での割込み 条件を下記に示します。 - バスマスタであった場合 - アドレスされたスレーブであった場合 - ゼネラルコールアドレスを受信した場合 - アービトレーションロストが生じた場合 3. アービトレーションロストを検出した場合 , 即座に割込み要因が発生するのではな く , 1 バイト転送終了した時点で要因が発生します。 アービトレーションロストを検出すると自動的にスレーブになりますが , スレーブ になっても , 割込み要因を発生させるために , トータル 9 クロック出力をします。そ のため , 即座に割込み要因が発生しないので , アービトレーションロスト後に処理 を行うことはできません。 466 第 13 章 I2C インタフェース 13.4 動作フローチャート スレーブアドレスとデータ転送および受信データを例に , 動作フローチャートを示 します。 ■ スレーブアドレスとデータ転送の例 図 13.4-1 に , スレーブアドレスとデータ転送の例を示します。 図 13.4-1 スレーブアドレスとデータ転送例 7ビットスレーブアドレッシング スタート スタート BERビットクリア(セット) インタフェース動作許可EN=1 IDAR =S.アドレス<<1+R W MSS=1 NO INT=0 ライトアクセスの スレーブアドレス IDAR = バイトデータ INT=0 INT=1? NO INT=1? YES YES 転送データ YES YES BER=1? バスエラー BER=1? NO NO YES AL=1? AASの検査 により再起動 転送 NO ACK=? (LRB=0?) YES AL=1? AASの検査 により再起動 転送 NO NO YES データ転送の準備 ACK=? (LRB=0?) NO YES 最終バイト の転送 YES NO 転送終了 ・スレーブがACKを発生しない, もしくはマスタがACKを受信できない ・いったんEN=0にし, 再送信 転送終了 ・反復 「START」条件,「STOP」 条件を発生する ・「STOP」条件発生(BB=0) を確認し,EN=0 転送終了 送信時: ・スレーブがACKを発生 しない, もしくはマスタが ACKを受信できない ・いったんEN=0にし, 再送信 受信時: ACKなし, 反復「START」条件, 「STOP」条件を発生する 467 第 13 章 I2C インタフェース ■ 受信データの例 図 13.4-2 に , 受信データの例を示します。 図 13.4-2 受信データ例 スタート リードアクセスの スレーブアドレス スレーブなら最終リード データならACKビットを クリアする。 INT=0 INT=1? NO YES YES BER=1? バスエラー 再起動 NO NO 最終バイト の転送 YES 転送終了 反復「START」 条件,「STOP」 条件 を発生する 468 第 13 章 I2C インタフェース ■ 割込み処理 図 13.4-3 に , 割込み処理を示します。 図 13.4-3 割込み処理 スタート NO ほかのモジュール INT=1? からの受信割込み YES YES バスエラー BER=1? 再起動 NO GCA=1? YES スレーブ時にゼネラルコール 検出 NO NO 転送の失敗 AAS=1? YES 再トライを行う YES YES AL=1? AL=1? アービトレーション ロスト再転送 NO YES NO LRB=1? 「STOP」 の条件,反復 YES 「START」 条件の作成 ADT=1 次の割込みで 新データ転送開始 必要であれば ACKビットを変更 NO NO TRX=1? スレーブのACKなし TRX=1? YES YES NO NO IDARから受信デー タを読む。必要で あればACKビット を 変更する IDARに次の 送信データ をライトす る IDARから受信デー タを読む。必要で あればACKビットを 変更する IDARに次の送信 データをライト またはMSSビット のクリア クリアINTビット ISR終了 469 第 13 章 I2C インタフェース 470 第 14 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタの構成と機能 およびタイマの動作について説明します。 14.1 16 ビットリロードタイマの概要 14.2 16 ビットリロードタイマのレジスタ 14.3 16 ビットリロードタイマの動作 471 第 14 章 16 ビットリロードタイマ 16 ビットリロードタイマの概要 14.1 16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内 部カウント , クロック生成用プリスケーラ , コントロールレジスタで構成されていま す。 ■ 16 ビットリロードタイマの概要 16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内部 カウント , クロック作成用プリスケーラ , コントロールレジスタで構成されています。 クロックソースとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周 ), 外部イベ ントから選択できます。 ■ 16 ビットリロードタイマのブロックダイヤグラム 図 14.1-1 に 16 ビットリロードタイマのブロック図を示します。 図 14.1-1 16 ビットリロードタイマのブロック 16ビットリロードレジスタ (TMRLR) リロード RELD OUTL INTE UF CNTE TRG R-bus 16ビットダウンカウンタ(TMR) UF OUT CTL カウント イネーブル クロック セレクタ プリスケーラ 472 外部タイマ 出力 CSL1 CSL0 EXCK プリスケーラ クリア IRQ IN CTL CSL1 CSL0 PFR内ビット 外部トリガ 選択 外部トリガ入力 第 14 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタ 14.2 16 ビットリロードタイマで使用されるレジスタの構成と機能について説明します。 ■ 16 ビットリロードタイマのレジスタ一覧 図 14.2-1 16 ビットリロードタイマのレジスタ一覧 TMCSR 上位バイト bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CSL0 R/W MOD2 R/W MOD1 R/W ----0000B − − − − − − − − CSL1 R/W bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 RELD INTE UF CNTE TRG 00000000B R/W − R OUTL R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 TMCSR 下位バイト bit7 MOD0 TMR 初期値 XXXXH R R R R R R R R bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 W W W W W W W W TMRLR 初期値 XXXXH R/W R W X :リード / ライト可能 :リードオンリ :ライトオンリ :不定 473 第 14 章 16 ビットリロードタイマ 14.2.1 コントロールステータスレジスタ (TMCSR) コントロールステータスレジスタ (TMCSR) は 16 ビットリロードタイマの動作モー ドと割込みを制御します。 ■ コントロールステータスレジスタ (TMCSR) のビット構成 TMCSR 上位バイト bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − − − − − − CSL0 R/W MOD2 R/W MOD1 R/W ----0000B − CSL1 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MOD0 − R OUTL RELD INTE UF CNTE TRG 00000000B R/W R/W R/W R/W R/W R/W TMCSR 下位バイト R/W R/W :リード / ライト可能 R :リードオンリ [bit15 ∼ bit12] Reserved:予約ビット 予約ビットです。 読出し値は常に "0000B" となります。 [bit11, bit10] CSL1, CSL0:カウントソース選択ビット カウントソースセレクトビットです。カウントソースは内部クロックと外部イベン トを選択できます。選択可能なカウントソースは以下のとおりです。 カウントソース (φ : マシンクロック ) φ =32MHz φ =16MHz φ /21 [ 初期値 ] 62.5ns 125ns 内部クロック φ /23 250ns 500ns 0 内部クロック φ /25 1.0µs 2.0µs 1 外部イベント − − CSL1 CSL0 0 0 内部クロック 0 1 1 1 外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1, MOD0 ビットにより設定されます。 外部クロックに必要な最小パルス幅は 2 × T (T:マシンクロックサイクル ) です。 474 第 14 章 16 ビットリロードタイマ [bit9 ∼ bit7] MOD2, MOD1, MOD0:モードビット 動作モードを選択するビットです。カウントソースが「内部クロック」の場合と 「外部クロック」の場合で機能が変わります。 内部クロックモードのとき・・・・・リロードトリガ設定 外部クロックモードのとき・・・・・カウント有効エッジの設定 また , MOD2 は必ず "0" を設定してください。 【内部クロック選択時のリロードトリガ設定】 カウントソースとして , 内部クロックが選択されている場合は MOD2 ∼ MOD0 ビッ トの設定により有効エッジが入力されるとリロードレジスタの内容をロードして カウント動作を継続します。 MOD2 MOD1 MOD0 0 0 0 ソフトウェアトリガ [ 初期値 ] 0 0 1 外部トリガ ( 立上りエッジ ) 0 1 0 外部トリガ ( 立下りエッジ ) 0 1 1 外部トリガ ( 両エッジ ) 1 X X 設定禁止 有効エッジ 【外部クロック選択時の有効エッジ設定】 カウントソースとして , 外部クロックイベントが設定されている場合は MOD2 ∼ MOD0 ビットの設定により有効エッジが入力されるとイベントをカウントします。 MOD2 MOD1 MOD0 X 0 0 − [ 初期値 ] X 0 1 外部トリガ ( 立上りエッジ ) X 1 0 外部トリガ ( 立下りエッジ ) X 1 1 外部トリガ ( 両エッジ ) 有効エッジ 外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生します。 [bit6] Reserved:予約ビット 予約ビットです。 読出し値は常に "0" となります。 [bit5] OUTL:出力レベル 外部タイマ出力レベルを設定するビットです。本ビットが "0" の時と "1" の時では 出力レベルが逆になります。 475 第 14 章 16 ビットリロードタイマ [bit4] RELD:リロード許可ビット リロード許可ビットです。"1" の時リロードモードになり , カウンタの値が "0000H" → "FFFFH" へのアンダフローと同時にリロードレジスタの内容をカウンタへロード してカウント動作を続けます。 "0" の時ワンショットモードになり , カウンタの値が "0000H" → "FFFFH" へのアンダ フローによりカウント動作を停止します。 PFRxy OUTL RELD 0 X X 出力禁止 [ 初期状態 ] 1 0 0 カウント中 "H" の矩形波 1 1 0 カウント中 "L" の矩形波 1 0 1 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 PFRxy は対応する端子の PFR レジスタ値を意味します。 [bit3] INTE:割込み許可ビット 割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を発生 します。"0" の時は割込み要求を発生しません。 [bit2] UF:アンダフロー割込みフラグ タイマ割込み要求フラグです。カウンタの値が "0000H" → "FFFFH" へのアンダフ ローにより "1" にセットされます。"0" の書込みによってクリアされます。 このビットへの "1" 書込みは意味がありません。 リードモディファイライト系命令における読出しでは , "1" が読み出されます。 [bit1] CNTE:カウント許可ビット タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動ト リガ待ち状態になります。"0" 書込みによりカウント動作は停止します。 [bit0] TRG:トリガビット ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。 "0" 書込みは意味を持ちません。読出し値は常に "0" です。 本レジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。CNTE=0 の 時には何も起こりません。 <注意事項> UF, CNTE, TRG ビット以外の書き換えは , CNTE=0 の時に行うようにしてください。 476 第 14 章 16 ビットリロードタイマ 14.2.2 16 ビットタイマレジスタ (TMR) 16 ビットタイマレジスタ (TMR) は 16 ビットタイマのカウント値を読み出すために 使用されます。 ■ 16 ビットタイマレジスタ (TMR) のビット構成 TMR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 R R R R R R R R 初期値 XXXXH R X :リードオンリ :不定 16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で す。本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。 477 第 14 章 16 ビットリロードタイマ 14.2.3 16 ビットリロードレジスタ (TMRLR) 16 ビットリロードレジスタ (TMRLR) はカウンタの初期値を保持するためのレジス タです。 ■ 16 ビットリロードレジスタ (TMRLR) のビット構成 TMRLR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 W W W W W W W W 初期値 XXXXH W X :ライトオンリ :不定 本レジスタは , カウントの初期値を保持しておくためのレジスタです。初期値は不定で す。本レジスタの書込みは必ず 16 ビットデータ転送命令で行ってください。 478 第 14 章 16 ビットリロードタイマ 14.3 16 ビットリロードタイマの動作 16 ビットリロードタイマの下記の動作について説明します。 • 内部クロック動作 • アンダフロー動作 • 出力端子機能 ■ 内部クロック動作 内部クロックの分周クロックでタイマを動作させる場合 , カウントソースとしてマシ ンクロックの 2・8・32 分周のクロックから選択することができます。 カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。 TRG ビットによるトリガ入力は , タイマが起動状態 (CNTE=1) のとき動作モードに関 わらず常に有効です。 カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに T ( 周辺系クロックマシンサイクル ) の時間がかかります。 図 14.3-1 カウンタの起動および動作 カウントクロック リロードデータ カウンタ -1 -1 -1 データロード CNTEビット TRGビット T ■ アンダフロー動作 カウンタの値が "0000H" から "FFFFH" になる時をアンダフローとしています。したがっ て , 〔リロードレジスタの設定値+ 1〕カウントでアンダフローが発生することになり ます。 アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の ときカウンタは , "FFFFH" で停止します。 479 第 14 章 16 ビットリロードタイマ 図 14.3-2 アンダフロー動作 [RELD=1] カウントクロック 0000H カウンタ リロードデータ -1 -1 -1 データロード アンダフローセット [RELD=0] カウントクロック 0000H カウンタ FFFFH アンダフローセット ■ 出力端子機能 TOT 出力端子は , リロードモード時はアンダフローにより反転するトグル出力として , ワンショットモード時はカウント中を示すパルス出力として機能します。出力極性は レジスタの OUTL ビットにより設定できます。OUTL=0 のときトグル出力は , 初期値 が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 にすると 出力波形は反転します。 図 14.3-3 出力端子機能 [RELD=1, OUTL=0] カウント開始 アンダフロー TOT0~3 OUTL=1の時は反転 汎用ポート CNTE 起動トリガ 図 14.3-4 出力端子機能 [RELD=0, OUTL=0] カウント開始 アンダフロー TOT0~3 OUTL=1で反転 汎用ポート CNTE 起動トリガ 起動トリガ待ち状態 480 第 14 章 16 ビットリロードタイマ ■ カウンタの動作状態 カウンタの状態は, コントロールレジスタのCNTEビットと内部信号のWAIT信号によっ て決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ) , CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1, WAIT=0 の動作状態 (RUN 状態 ) があります。 図 14.3-5 カウンタ状態遷移 ハードウェアによる状態遷移 リセット レジスタアクセスによる状態遷移 STOP CNTE=0,WAIT=1 カウンタ:停止時の値を保 持,リセット直後は不定 CNTE=1 TRG=0 CNTE=1 TRG=1 WAIT CNTE=1,WAIT=1 RUN カウンタ:停止時の値を保 持,リセット直後ロードす るまでは不定 RELD・UF TRG=1 CNTE=1,WAIT=0 カウンタ:動作 TRG=1 LOAD CNTE=1,WAIT=0 リロードレジスタの内 容をカウンタへロード RELD・UF ロード終了 481 第 14 章 16 ビットリロードタイマ ■ 注意事項 1. 内部プリスケーラは , コントロールステータスレジスタの bit1 ( タイマ許可 : CNTE) が "1" に設定されている状態でトリガ ( ソフトウェアトリガ , あるいは外部トリガ ) がかけられることにより動作可能になります。 2. 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ グセットが優先し , クリア動作は無効になります。 3. 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった 場合には , 旧データがカウンタにロードされ , 新データがカウンタにロードされる のは次のリロードのタイミングとなります。 4. 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には , ロード ( リロード ) 動作が優先されます。 482 第 15 章 16 ビットフリーランタイマ 16 ビットフリーランタイマの機能と動作について 説明します。 15.1 16 ビットフリーランタイマの概要 15.2 16 ビットフリーランタイマのレジスタ 15.3 16 ビットフリーランタイマの動作 15.4 16 ビットフリーランタイマ使用時の注意事項 483 第 15 章 16 ビットフリーランタイマ 15.1 16 ビットフリーランタイマの概要 16 ビットフリーランタイマは , 16 ビットのタイマ ( アップカウンタ ) と制御回路で 構成されています。16 ビットフリーランタイマはインプットキャプチャ , アウト プットコンペアと組み合わせて使用することができます。 ■ 16 ビットフリーランタイマの概要 16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロール • ステータス レジスタより構成されています。本タイマのカウント値はアウトプットコンペア , イン プットキャプチャの基本時間 ( ベースタイマ ) として使用されます。 • カウントクロックは 4 種類から選択可能 • カウンタオーバフローによる割込み発生 • モード設定により , アウトプットコンペアのコンペアレジスタの値との一致による カウンタの初期化が可能 ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 15.1-1 16 ビットフリーランタイマのブロックダイヤグラム 割込み IVF IVFE STOP MODE CLR CLK1 CLK0 R-bus ECLK 分周期 FRCK クロック選択 16bitフリーランタイマ (TCDT) クロック 内部回路へ コンパレータ 484 (T15~T00) 第 15 章 16 ビットフリーランタイマ 15.2 16 ビットフリーランタイマのレジスタ 本節では , 16 ビットフリーランタイマのレジスタについて説明します。 ■ 16 ビットフリーランタイマのレジスタ一覧 TCDT ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 T15 T14 T13 T12 T11 T10 T09 T08 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 T07 R/W T06 R/W T05 R/W T04 R/W T03 R/W T02 R/W T01 R/W T00 R/W 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ECLK R/W IVF R/W IVFE R/W STOP R/W MODE R/W CLR R/W CLK1 R/W CLK0 R/W 0x000000B TCDT ( 下位バイト ) TCCS R/W :リード / ライト可能 X :不定 485 第 15 章 16 ビットフリーランタイマ タイマデータレジスタ (TCDT) 15.2.1 タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すこと のできるレジスタです。 ■ タイマデータレジスタ (TCDT) TCDT ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 T15 R/W T14 R/W T13 R/W T12 R/W T11 R/W T10 R/W T09 R/W T08 R/W 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 T07 T06 T05 T04 T03 T02 T01 T00 00000000B R/W R/W R/W R/W R/W R/W R/W R/W TCDT ( 下位バイト ) R/W :リード / ライト可能 タイマデータレジスタのカウンタ値は , リセット時に "0000H" に初期化されます。この レジスタへの書込みによりタイマ値を設定することができます。 このレジスタへの書込みは , 必ず 16 ビットフリーランタイマが停止 (TCCS レジスタの STOP=1) 時に行ってください。 タイマの初期化は次の要因で行われます。 • リセットによる初期化 • タイマコントロールステータスレジスタの CLR ビットへの "1" 書込みによる初期化 • アウトプットコンペアのコンペアクリアレジスタ値とカウンタ値の一致による初 期化 ( モード設定が必要 ) <注意事項> このレジスタへのアクセスは , ハーフワード (16 ビット ) で行ってください。 486 第 15 章 16 ビットフリーランタイマ タイマコントロールステータスレジスタ (TCCS) 15.2.2 タイマコントロールステータスレジスタは , 16 ビットフリーランタイマのカウント 値を制御するために使用されます。 ■ タイマコントロールステータスレジスタ (TCCS) TCCS bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ECLK R/W IVF R/W IVFE R/W STOP R/W MODE R/W CLR R/W CLK1 R/W CLK0 R/W 0x000000B R/W :リード / ライト可能 X :不定 [bit7] ECLK:クロック選択ビット 16 ビットフリーランタイマのカウントクロックソースとして , 内部クロックまたは 外部クロックを選択するビットです。クロックソースの選択は , アウトプットコン ペア , インプットキャプチャが停止状態で行ってください。 ECLK クロック選択 0 内部クロックソース (CLKP) を選択 [ 初期値 ] 1 外部端子 (FRCK) を選択 <注意事項> 内部クロックを選択した場合は , TCDT レジスタの bit1, bit0 (CLK1, CLK0) にカウントク ロックの設定を行ってください。このカウントクロックがベースクロックとなります。ま た , FRCK よりクロックを入力する場合は , 対応する端子の DDR ビットを "0" に設定 ( 入 力ポート ) してください。 外部クロックに必要な最低パルス幅は , 2 × T です。(T: 周辺系クロックサイクル ) 外部クロックを指定しアウトプットコンペアを使用した場合 , コンペア一致および割込み は次のクロックサイクルで発生します。そのため , コンペア一致出力 , 割込みを発生させ るためには , コンペア一致後 , 最低 1 クロックサイクルを入力する必要があります。 [bit6] IVF:割込み要求フラグ 16 ビットフリーランタイマの割込み要求フラグです。 16 ビットフリーランタイマがオーバフローを起こした場合 , またはモード設定によ りコンペアレジスタとコンペアマッチした場合に本ビットは"1"にセットされます。 割込み要求許可ビット (IVFE) がセットされていると割込みが発生します。 本ビットは "0" 書込みによりクリアされます。リードモディファイライト系命令で は常に "1" が読み出されます。 487 第 15 章 16 ビットフリーランタイマ IVF ビットはリセットにより "0" に初期化されますが , フリーランタイマは動作状 態であるため , オーバフロー発生期間経過後は "1" にセットされます。 IVF 割込み要求フラグ 0 割込み要求なし [ 初期値 ] 1 割込み要求あり [bit5] IVFE:割込み許可ビット 16 ビットフリーランタイマの割込み許可ビットです。 本ビットが"1"の時, 割込みフラグ(IVF)に"1"がセットされると割込みが発生します。 IVFE 割込み許可 0 割込み禁止 [ 初期値 ] 1 割込み許可 [bit4] STOP:停止ビット 16 ビットフリーランタイマのカウントを停止するためのビットです。 STOP カウント動作 0 カウント許可 ( 動作 ) [ 初期値 ] 1 カウント禁止 ( 停止 ) <注意事項> 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 [bit3] MODE:モード設定ビット 16 ビットフリーランタイマの初期化条件を設定します。 本ビットが "0" の時は , リセットとクリアビット (bit2:CLR) でカウンタ値を初期化 することができます。 "1" の時は , リセットとクリアビット (bit2:CLR) のほかにアウトプットコンペアの コンペアレジスタ値との一致によりカウンタ値を初期化することができます。 MODE 488 タイマ初期化条件 0 リセット , クリアビット [ 初期値 ] 1 リセット , クリアビット , コンペアレジスタ 第 15 章 16 ビットフリーランタイマ [bit2] CLR:タイマクリアビット 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。 本ビットに "1" を書き込むことにより , タイマ値を "0000H" に初期化します。 本ビットの読出しは常に "1" となります。 <注意事項> カウンタ値の初期化は , カウント値の変化点で行われます。CLR ビットへ "1" 書込み後 , カウンタがクリアされる前に "0" を書き込むとカウンタクリア要求は取り下げられます。 タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。 [bit1, bit0] CLK1, CLK0:カウントクロック選択ビット 16 ビットフリーランタイマのカウントクロックを選択するビットです。 本ビットに書込みの後 , 直ちにカウントクロックは変更されます。本ビットの変更 は , アウトプットコンペア , インプットキャプチャが停止状態にて行ってください。 CLK1 CLK0 カウントクロック (φ) φ =32 MHz φ =16 MHz 0 0 φ /22 125 ns 250 ns 0 1 φ /24 500 ns 1.0 µs 1 0 φ /25 1.0 µs 2.0 µs 1 1 φ /26 2.0 µs 4.0 µs φ : リソースクロック (CLKP) 489 第 15 章 16 ビットフリーランタイマ 15.3 16 ビットフリーランタイマの動作 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作説明 カウンタ値は次の条件でクリアされます。 • オーバフローの発生 • コンペアクリアレジスタ ( アウトプットコンペアのコンペアレジスタ ) 値とのコン ペアマッチ ( モード設定が必要 ) • 動作中での TCCS レジスタの CLR ビットに "1" 書込み • タイマ停止中での TCDT への "0000H" 書込み • リセットの発生 割込みはオーバフローが発生したとき , コンペアクリアレジスタの値と , コンペアマッ チしたときに発生します ( コンペアマッチ割込みは , モード設定が必要です )。 図 15.3-1 オーバフローによるカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット 割込み 図 15.3-2 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペアレジスタ 割込み 490 BFFFH 第 15 章 16 ビットフリーランタイマ ■ 16 ビットフリーランタイマのクリアタイミング カウンタクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行わ れます。 リセットとソフトウェアでのカウンタクリアは , クリア発生と共に行われますが , コン ペアクリアレジスタとの一致によるカウンタクリアはカウントタイミングに同期して 行われます。 図 15.3-3 16 ビットフリーランタイマのクリアタイミング コンペアクリア レジスタ値 N カウンタクリア カウンタ値 N 0000H ■ 16 ビットフリーランタイマのカウントタイミング 16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ ステムクロックで同期化したのち , 内部カウントクロックの立下りでカウントされま す。 図 15.3-4 16 ビットフリーランタイマのカウントタイミング 外部クロック入力 内部クロック入力 カウンタ値 N N+1 491 第 15 章 16 ビットフリーランタイマ 15.4 16 ビットフリーランタイマ使用時の注意事項 16 ビットフリーランタイマの使用上の注意事項を説明します。 ■ 16 ビットフリーランタイマ使用時の注意事項 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ グセットが優先しクリア動作は無効となります。 • コントロールステータスレジスタの bit2 ( カウンタ初期ビット:CLR) は "1" が書き 込まれると , 内部カウンタをクリアするタイミングまで値を保持し , そのタイミン グで自身もクリアします。クリアタイミングと "1" の書込みが重複した場合には , 書 込みが優先しカウンタ初期化ビットは , 次のクリアタイミングまで "1" を保持し続 けます。 • カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有 効となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジ スタに "0000H" を書き込むようにしてください。 492 第 16 章 インプットキャプチャ インプットキャプチャの機能と動作について説明 します。 16.1 インプットキャプチャの概要 16.2 インプットキャプチャのレジスタ 16.3 インプットキャプチャの動作 493 第 16 章 インプットキャプチャ 16.1 インプットキャプチャの概要 インプットキャプチャは外部から入力された信号の立上りエッジ , 立下りエッジま たは両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保 持する機能を持っています。また , エッジ検出時に割込みを発生することができま す。 インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジ スタで構成されています。 ■ インプットキャプチャの概要 各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。 • 外部入力の有効エッジを 3 種類から選択可能です。 - 立上りエッジ - 立下りエッジ - 両エッジ • 外部入力有効エッジを検出したときに割込みを発生することができます。 ■ インプットキャプチャのブロックダイヤグラム 図 16.1-1 インプットキャプチャのブロックダイヤグラム 16ビットタイマカウント値(T15~T00) R-bus IN0 入力端子 エッジ 検出 キャプチャデータレジスタ ch.0 EG11 EG10 EG01 EG00 16ビットタイマカウント値(T15~T00) キャプチャデータレジスタ ch.1 ICP1 IN1 入力端子 エッジ 検出 ICP0 ICE1 ICE0 割込み 割込み 494 第 16 章 インプットキャプチャ 16.2 インプットキャプチャのレジスタ インプットキャプチャには下記のレジスタがあります。 • インプットキャプチャレジスタ (IPCP0, IPCP1) • インプットキャプチャコントロールレジスタ (ICS01) これらのレジスタの詳細を説明します。 ■ インプットキャプチャのレジスタ一覧 IPCP ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CP15 R CP14 R CP13 R CP12 R CP11 R CP10 R CP09 R CP08 R XXXXXXXXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CP07 R CP06 R CP05 R CP04 R CP03 R CP02 R CP01 R CP00 R XXXXXXXXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 00000000B R/W R/W R/W R/W R/W R/W R/W R/W IPCP ( 下位バイト ) ICS R/W :リード / ライト可能 R :リードオンリ X :不定 495 第 16 章 インプットキャプチャ 16.2.1 インプットキャプチャレジスタ (IPCP) インプットキャプチャレジスタ (IPCP) は , 対応した外部端子から入力される波形の 有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。 ■ インプットキャプチャレジスタ (IPCP) のビット構成 IPCP ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 XXXXXXXXB R R R R R R R R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 XXXXXXXXB R R R R R R R R IPCP ( 下位バイト ) R X :リードオンリ :不定 本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。 このレジスタは 16 ビットデータまたは , 32 ビットデータでアクセスしてください。書 込みはできません。 496 第 16 章 インプットキャプチャ 16.2.2 インプットキャプチャコントロールレジスタ (ICS) インプットキャプチャコントロールレジスタ (ICS) は , インプットキャプチャの割込 みやエッジ検出を制御するために使用されます。 ■ インプットキャプチャコントロールレジスタ (ICS) のビット構成 ICS bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ICP1 R/W ICP0 R/W ICE1 R/W ICE0 R/W EG11 R/W EG10 R/W EG01 R/W EG00 R/W 00000000B R/W :リード / ライト可能 [bit7, bit6] ICP1, ICP0:割込みフラグ インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると 本ビットを "1" にセットします。割込み許可ビット (ICE1, ICE0) がセットされてい ると , 有効エッジを検出することにより割込みを発生することができます。本ビッ トは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リードモ ディファイライト系の命令では "1" が読めます。 ICP0/ICP1 割込みフラグ 0 有効エッジ検出なし [ 初期値 ] 1 有効エッジ検出あり [bit5, bit4] ICE1, ICE0:割込み許可ビット インプットキャプチャ割込み許可ビットです。本ビットが "1" の時 , 割込みフラグ (ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生します。 ICE0/ICE1 割込み許可 0 割込み禁止 [ 初期値 ] 1 割込み許可 497 第 16 章 インプットキャプチャ [bit3 ∼ bit0] EG11, EG10, EG01, EG00:エッジ選択ビット 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作も兼 用しています。 EGn1 EGn0 0 0 エッジ検出なし ( 停止状態 ) [ 初期値 ] 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑ & ↓ エッジ極性検出 EGn1/EGn0: n の番号がインプットキャプチャのチャネル番号に対応します。 498 第 16 章 インプットキャプチャ 16.3 インプットキャプチャの動作 16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生させること ができます。 ■ 16 ビットインプットキャプチャの動作 図 16.3-1 インプットキャプチャの取り込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット IN0 IN1 IN2 データレジスタ0 不定 3FFFH データレジスタ1 データレジスタ2 BFFFH 不定 BFFFH 不定 7FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ2割込み 再度有効エッジにより割込み発生 キャプチャ0:立上りエッジ キャプチャ1:立下りエッジ キャプチャ2:両エッジ ソフトウェアにより割込みクリア ■ 16 ビットインプットキャプチャの入力タイミング カウンタ値 インプットキャプチャ入力 N N+1 有効エッジ キャプチャ信号 キャプチャレジスタ値 N+1 割込み 499 第 16 章 インプットキャプチャ 500 第 17 章 アウトプットコンペア アウトプットコンペアの機能と動作について説明 します。 17.1 アウトプットコンペアの概要 17.2 アウトプットコンペアのレジスタ 17.3 アウトプットコンペアの動作 501 第 17 章 アウトプットコンペア アウトプットコンペアの概要 17.1 アウトプットコンペアモジュールは , ビットコンペアレジスタ , コンペア出力ラッチ , および制御レジスタで構成されています。 ■ アウトプットコンペアの特長 • コンペアレジスタは独立に使用できます。 出力ピンと割込みフラグはコンペアレジスタに対応しています。 • 出力ピンはコンペアレジスタの対に基づいて制御できます。 出力ピンはコンペアレジスタを使用して反転させることができます。 • 出力ピンの初期値を設定できます。 • コンペア ( 比較 ) が一致したとき割込みを発生させることができます。 ■ アウトプットコンペアのブロックダイヤグラム 図 17.1-1 アウトプットコンペアのブロックダイヤグラム OTD1 OTD0 R-bus コンペア レジスタ コンペア回路 コンペア レジスタ CMOD コンペア 出力用ラッチ PORT0 出力 コンペア 出力用ラッチ PORT1 出力 コンペア回路 CST1 CST0 ICP1 16ビットフリーランタイマ ICP0 ICE1 ICE0 割込み出力 割込み出力 502 第 17 章 アウトプットコンペア 17.2 アウトプットコンペアのレジスタ アウトプットコンペアには , コンペアレジスタとコントロールレジスタがあります。 ■ アウトプットコンペアのレジスタ OCCP ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 C15 C14 C13 C12 C11 C10 C09 C08 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 C07 R/W C06 R/W C05 R/W C04 R/W C03 R/W C02 R/W C01 R/W C00 R/W XXXXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − − − − − CMOD R/W − − − − OTD1 R/W OTD0 R/W 11101100B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ICP1 ICP0 ICE1 ICE0 − − CST1 CST0 00001100B R/W R/W R/W R/W − R/W R/W OCCP ( 下位バイト ) OCS ( 上位バイト ) OCS ( 下位バイト ) − R/W :リード / ライト可能 X :不定 503 第 17 章 アウトプットコンペア 17.2.1 コンペアレジスタ (OCCP) コンペアレジスタ (OCCP) の詳細を説明します。 ■ コンペアレジスタ (OCCP) のビット構成 OCCP ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 C15 R/W C14 R/W C13 R/W C12 R/W C11 R/W C10 R/W C09 R/W C08 R/W XXXXXXXXB bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 XXXXXXXXB OCCP ( 下位バイト ) bit7 C07 C06 C05 C04 C03 C02 C01 C00 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 X :不定 ■ コンペアレジスタ (OCCP) の機能 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス タは , 初期値不定ですのでコンペア値を設定してから起動を許可してください。 本レジスタは 16 ビットまたは 32 ビットでアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致した場合 , コンペア信号が発生してアウトプットコ ンペア割込みフラグをセットします。 また , ポートファンクションレジスタ (PFR) の対応するビットをセットし出力許可して いる場合は , コンペアレジスタに対応した出力レベルを反転します。 504 第 17 章 アウトプットコンペア 17.2.2 コントロールレジスタ (OCS) コントロールレジスタ (OCS) の詳細を説明します。 ■ コントロールレジスタのビット構成 OCS ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 11101100B − − − CMOD − − OTD1 OTD0 − − − R/W − − R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ICP1 ICP0 ICE1 ICE0 − − CST1 CST0 00001100B R/W R/W R/W R/W − − R/W R/W OCS ( 下位バイト ) R/W :リード / ライト可能 [bit15 ∼ bit13] Reserved:予約ビット 予約ビットです。読出しでは必ず "111B" が読み出されます。 [bit12] CMOD:モードビット 出力端子を許可した場合のコンペア一致における端子出力レベル反転動作を指定 します。 • CMOD=0 ( 初期値 ) の時 , コンペアレジスタに対応した端子の出力レベルを反転 します。 - OC0: コンペアレジスタ 0 の一致によりレベルを反転します。 - OC1: コンペアレジスタ 1 の一致によりレベルを反転します。 • CMOD=1 の時 - OC0: コンペアレジスタ 0 の一致によりレベルを反転します。 - OC1: コンペアレジスタ 0 と 1 の一致によりレベルを反転します。 [bit11, bit10] Reserved:予約ビット 予約ビットです。読出しでは必ず "11B" が読み出されます。 [bit9, bit8] OTD1, OTD0:コンペア端子出力レベル変更ビット アウトプットコンペアレジスタの出力端子を許可した場合の端子出力レベルを指定 します。指定はコンペア動作を停止してから行ってください。読出し動作では , ア ウトプットコンペア端子出力が読み出されます。 OTD1, OTD0 コンペア端子出力レベル 0 コンペア端子出力を "0" にします。[ 初期値 ] 1 コンペア端子出力を "1" にします。 505 第 17 章 アウトプットコンペア [bit7, bit6] ICP1, ICP0:割込みフラグ アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリー ランタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1, ICE0) が許可されているときに本ビットが "1" にセットされると , アウトプットコン ペア割込みが発生します。本ビットは "0" 書込みによりクリアされ , "1" 書込みは意 味を持ちません。リードモディファイライト系の命令では "1" が読み出されます。 ICP1, ICP0 割込みフラグ 0 アウトプットコンペア一致なし [ 初期値 ] 1 アウトプットコンペア一致あり フリーランタイマに外部クロックを指定した場合 , コンペア一致および割込みは次 のクロックで発生します。そのため , コンペア一致出力および割込みを発生させる ためには , フリーランタイマの外部クロックに , コンペア一致後 , 最低 1 クロックを 入力する必要があります。 [bit5, bit4] ICE1, ICE0:割込み許可ビット アウトプットコンペアの割込みを許可するビットです。本ビットが "1" の時 , 割込 みフラグ (ICP1, ICP0) が "1" にセットされるとアウトプットコンペア割込みが発生 します。 ICE1, ICE0 割込み許可 0 アウトプットコンペア割込み禁止 [ 初期値 ] 1 アウトプットコンペア割込み許可 [bit3, bit2] Reserved:予約ビット 予約ビットです。読出しでは必ず "11B" が読み出されます。 [bit1, bit0] CST1, CST0:一致動作許可ビット 16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許 可する前に必ずコンペアレジスタ値およびアウトプットコントロールレジスタ値 を設定してください。 CST1, CST0 一致動作許可 0 コンペア動作禁止 [ 初期値 ] 1 コンペア動作許可 アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビットフリーランタイマを停止させるとコンペア動作も停止します。 506 第 17 章 アウトプットコンペア 17.3 アウトプットコンペアの動作 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ リーランタイマ値との値を比較し , 一致すれば割込みフラグをセットするとともに , 出力レベルを反転することができます。 ■ 16 ビットアウトプットコンペアの動作 • 1 チャネル独立でコンペア動作を行うことができます (CMOD=0 のとき )。 図 17.3-1 コンペアレジスタ 0, 1 を使用した場合の出力波形例 ( 出力の初期値は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OP0出力 OP1出力 コンペア0割込み コンペア1割込み 507 第 17 章 アウトプットコンペア • 2 組のコンペアレジスタを使い出力レベルを変えることができます (CMOD=1 の時 )。 図 17.3-2 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OP0出力 OP1出力 コンペア0割込み コンペア1割込み 508 第 17 章 アウトプットコンペア ■ 16 ビットアウトプットコンペアの動作タイミング 2 組のコンペアレジスタを使い , 出力レベルを変えることができます (CMOD=1 のとき )。 アウトプットコンペアは , フリーランタイマと , 設定したコンペアレジスタの値が一致 したときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生する ことができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイ ミングに同期して行われます。 ● コンペアレジスタライトタイミング コンペアレジスタ書換え時には , カウンタ値とはコンペアしません。 N カウンタ値 N+1 N+2 N+3 一致信号は発生しない N+1 N コンペアクリアレジスタ0値 コンペアレジスタ0ライト L コンペアクリアレジスタ1値 N+3 コンペアレジスタ1ライト コンペア0停止 コンペア1停止 ● コンペアマッチ , 割込みタイミング カウントクロック N カウンタ値 コンペアレジスタ値 N+1 N+3 N+2 N コンペアマッチ 端子出力 割込み ● 端子出力タイミング カウンタ値 コンペアレジスタ値 N N+1 N+1 N+1 N コンペアマッチ 端子出力 509 第 17 章 アウトプットコンペア 510 第 18 章 PPG タイマ PPG タイマについて説明します。 18.1 概要 18.2 ブロックダイヤグラム 18.3 PPG のレジスタ 18.4 動作説明 511 第 18 章 PPG タイマ 18.1 概要 PPG は , 8 ビットのリロードタイマモジュールで , タイマ動作に応じたパルス出力制 御により , PPG 出力を行います。 ハードウェアとして , 8 ビットダウンカウンタ , 8 ビットリロードレジスタ , 制御レ ジスタ , 外部パルス出力 , 割込み出力を有します。 ■ PPG の機能 ● 8 ビット PPG 出力独立動作モード 独立した PPG 出力動作が可能です。 ● 16 ビット PPG 出力動作モード 16 ビットの PPG 出力動作が可能です。 ● 8 + 8 ビット PPG 出力動作モード チャネル (2n + 1) の出力をチャネル (2n) のクロック入力とすることにより , 任意周期 の 8 ビット PPG 出力動作が可能です。 ● 16 + 16 ビット PPG 出力動作モード チャネル (4n + 3) +チャネル (4n + 2) の 16 ビットプリスケーラ出力をチャネル (4n + 1) +チャネル (4n) の 16 ビット PPG のクロック入力とするモードです。 ● PPG 出力動作 任意周期・デューティ比のパルス波を出力します。 外付け回路により , D/A コンバータとしても使用可能です。 ● 出力反転機能 PPG の出力値を反転させることが可能です。 512 第 18 章 PPG タイマ 18.2 ブロックダイヤグラム PPG のブロックダイヤグラムを示します。 ■ 8 ビット PPG ch.0, ch.2 のブロックダイヤグラム ch.(n+1)のボロー マシンクロックの64分周 ポートへ マシンクロックの16分周 マシンクロックの4分周 マシンクロック PPG 出力ラッチ 反転 クリア PEN(N+1) カウントクロック 選択 S R PCNT(ダウンカウンタ) Q IRQn リロード H/Lセレクト H/Lセレクタ PIEn PRLLn PRLHn PUFn L側でデータバス H側でデータバス PPGCn TRG n = 0.2 動作モード (制御) ? 513 第 18 章 PPG タイマ ■ 8 ビット PPG ch.1 のブロックダイヤグラム ch.(n+1)のボロー マシンクロックの64分周 ポートへ マシンクロックの16分周 マシンクロックの4分周 マシンクロック PPG 出力ラッチ 反転 クリア PENn S カウントクロック 選択 R Q IRQn PCNT(ダウンカウンタ) リロード ch(n-1) のボロー H/Lセレクト H/Lセレクタ PUFn PRLLn PIEn PRLHn L側でデータバス H側でデータバス n = 1 PPGCn TRG 動作モード (制御) 514 第 18 章 PPG タイマ ■ 8 ビット PPG ch.3 のブロックダイヤグラム ポートへ マシンクロックの64分周 マシンクロックの16分周 マシンクロックの4分周 マシンクロック PPG 出力ラッチ 反転 クリア PENn S カウントクロック 選択 R Q PCNT(ダウンカウンタ) ch.(n-1) のボロー リロード H/Lセレクト H/Lセレクタ PUFn PRLLn PIEn PRLHn L側でデータバス H側でデータバス n = 3 PPGCn TRG 動作モード (制御) 515 第 18 章 PPG タイマ 18.3 PPG のレジスタ PPG のレジスタの詳細を説明します。 ■ PPG のレジスタ一覧 PPGC bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PIE R/W PUF R/W INTM R/W PCS1 R/W PCS0 R/W MD1 R/W MD0 R/W − − 0000000XB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D15 R/W D14 R/W D13 R/W D12 R/W D11 R/W D10 R/W D09 R/W D08 R/W XXXXXXXXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 XXXXXXXXB PRLH PRLL D07 D06 D05 D04 D03 D02 D01 D00 R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 TRG1 PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08 R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00000000B TRG0 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B REVC1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08 R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00000000B REVC0 REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 X :不定 516 初期値 00000000B 第 18 章 PPG タイマ 18.3.1 PPG 動作モード制御レジスタ (PPGC) PPG 動作モード制御レジスタ (PPGC) は , PPG の割込み , 動作クロック , 動作モー ドを制御するレジスタです。 ■ PPG 動作モード制御レジスタ (PPGC) PPGC bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 PIE PUF INTM PCS1 PCS0 MD1 MD0 − 0000000XB R/W R/W R/W R/W R/W R/W R/W − R/W :リード / ライト可能 X :不定 [bit7] PIE:PPG 割込み許可ビット PPG の割込み許可を以下のように制御します。 PIE PPG 割込み許可 0 割込み禁止 [ 初期値 ] 1 割込み許可 - 本ビットが "1" のとき , PUF が "1" になると割込み要求が発生します。 - 本ビットが "0" のときは , 割込み要求を発生しません。 - リセットにより , "0" に初期化されます。 - 読出しおよび書込みが可能です。 [bit6] PUF:PPG カウンタアンダフロービット PPG カウンタアンダフロービットを以下のように制御します。 PUF PPG カウンタアンダフロー 0 PPG のカウンタアンダフローを検出していません [ 初期値 ] 1 PPG のカウンタアンダフローを検出しました - 8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ+ 8 ビット PPG モー ド時には , ch.0 のカウント値が "00H" ∼ "FFH" へなったときのアンダフローによ り "1" にセットされます。 - 16ビットPPG 1チャネルモード時には, ch.1/ch.0のカウント値が"0000H"∼"FFFFH" へなったときのアンダフローにより "1" にセットされます。 - "0" 書込みにより , "0" になります。 - このビットへの "1" 書込みは意味がありません。 - リードモディファイライトへの読出し時は , "1" が読まれます。 - リセットにより , "0" に初期化されます。 - 読出しおよび書込みが可能です。 517 第 18 章 PPG タイマ [bit5] INTM:割込みモードビット PUF のビットの検出を PRLH からのアンダフロー時のみに限定することができます。 INTM 割込みモード 0 アンダフロー時 , PUF を "1" にする [ 初期値 ] 1 PRLH からのアンダフロー時のみ , PUF を "1" にする - リセットにより , "0" に初期化されます。 - 読出しおよび書込みが可能です。 - 本ビットを "1" にすれば , PPG の波形の一周期出力時に割込みをかけることが可 能となります。 - 本ビットは , 割込み許可時に書き換えないでください [bit4, bit3] PCS1, PCS0:カウントクロック選択ビット ダウンカウンタの動作クロックを以下のように選択します。 PCS1 PCS0 0 0 マシンクロック [ 初期値 ] 0 1 マシンクロック /4 1 0 マシンクロック /16 1 1 マシンクロック /64 カウントクロック - リセットにより , "00B" に初期化されます。 - 読出しおよび書込みが可能です。 [bit2, bit1] MD1, MD0:動作モード選択ビット MD1 MD0 0 0 8 ビット PPG 2 チャネル [ 初期値 ] 0 1 8 ビットプリスケーラ+ 8 ビット PPG モード 1 0 16 ビット PPG モード 1 1 16 ビットプリスケーラ+ 16 ビット PPG モード 動作モード - リセットにより , "00B" に初期化されます。 - 読出しおよび書込みが可能です。 - 本ビットは偶数チャネルのみに存在します。 [bit0] Reserved:予約ビット 予約ビットです。書込み時は "0" を書き込んでください。("1" 書込み禁止 ) 読出し値は不定です。 518 第 18 章 PPG タイマ リロードレジスタ (PRLL/PRLH) 18.3.2 リロードレジスタ (PRLL/PRLH) は , PPG のリロード値を保持するレジスタです。 ■ リロードレジスタ (PRLL/PRLH) PRLH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D15 R/W D14 R/W D13 R/W D12 R/W D11 R/W D10 R/W D09 R/W D08 R/W XXXXXXXXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D07 R/W D06 R/W D05 R/W D04 R/W D03 R/W D02 R/W D01 R/W D00 R/W XXXXXXXXB PRLL R/W :リード / ライト可能 X :不定 リロードレジスタ (PRLL/PRLH) は , ダウンカウンタ PCNT へのリロード値を保持する レジスタです。それぞれ , 以下に示す役割を持っています。 レジスタ名 機能 PRLL "L" 側リロード値保持 PRLH "H" 側リロード値保持 いずれのレジスタも , 読出しおよび書込みが可能です。 <注意事項> 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードで使用する場合には , プリスケーラ側の PRLL と PRLH に異なる値を設定す ると, PPG波形がサイクルごとに異なる場合があるので, プリスケーラ側のPRLLとPRLH は , 同じ値に設定することを推奨します。 519 第 18 章 PPG タイマ 18.3.3 PPG 起動レジスタ (TRG) PPG 起動レジスタ (TRG) は , PPG の動作許可を行うレジスタです。 ■ PPG 起動レジスタ (TRG) TRG1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B TRG0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W :リード / ライト可能 [bit15 ∼ bit0] PEN15 ∼ PEN00:PPG 動作許可ビット PPG の動作開始および動作モードを以下のように選択します。 PEN 動作状態 0 動作停止 ("L" レベル出力保持 ) [ 初期値 ] 1 PPG 動作許可 - リセットにより , "0" に初期化されます。 - 読出しおよび書込みが可能です。 - 16 ビット PPG で使用する場合は , 偶奇数両方の該当する PEN ビットを同じ設定 する必要があります。レジスタ設定時に偶奇数同時に許可 / 停止をしてください。 520 第 18 章 PPG タイマ 18.3.4 出力反転レジスタ (REVC) 出力反転レジスタ (REVC) は , PPG の出力値を反転させるレジスタです。 ■ 出力反転レジスタ (REVC) REVC1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B REVC0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B R/W :リード / ライト可能 [bit7 ∼ bit0] REV07 ∼ REV00:出力反転ビット PPG の出力値を初期レベルも含めて反転します。 REV 出力レベル 0 通常 [ 初期値 ] 1 反転 - リセットにより , "0" に初期化されます。 - 読出しおよび書込みが可能です。 - 単に PPG 出力を反転するだけですので , 初期レベルも反転します。 - リロードレジスタの "L", "H" の関係も逆になります。 - 16 ビット PPG で使う場合は , PPG(m) と PPG(m + 1) どちらの端子からも同じ波 形が出るので , 使用する端子の REVxx を設定すれば反転出力が得られます。また , 両方の出力に同じ値を設定することもできます。 521 第 18 章 PPG タイマ 18.4 動作説明 PPG には , 8 ビット長の PPG ユニットがあり , 連結動作させることにより , 独立 モード以外に , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット PPG 1 チャネルモード , 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の動作 を行うことができます。 ■ PPG の動作 8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが L 側と H 側 の 2 本あります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダウンカ ウンタ (PCNT) に L 側 /H 側交互にリロードされてカウントクロックごとにダウンカウ ントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反転させ ます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した L 幅 /H 幅を 持つパルス出力となります。 動作開始 / 再スタートは , レジスタのビット書込みによります。 リロード動作とパルス出力の関係を以下に示します。 リロード動作 端子出力変化 PRLH → PCNT PPGn [0 → 1] PRLL → PCNT PPGn [1 → 0] n:PPG チャネル番号 また , PPGC レジスタの bit7:PIE が "1" のとき , カウンタの "00H" ∼ "FFH" へのボロー (16 ビット PPG モードの場合には , "0000H" ∼ "FFFFH" へのボロー ) によって割込み要 求が出力されます。 ■ 動作モード 本ブロックは , 独立モード , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット PPG 1 チャネルモード , 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の動 作モードがあります。 • 独立モードは , 8 ビット PPG として独立に動作させる動作モードです。PPGn 端子は , ch.n の PPG 出力が接続されます。 • 8 ビットプリスケーラ+ 8 ビット PPG モードは , 1 チャネルを 8 ビットプリスケー ラとして動作させ , そのボロー出力でカウントすることにより , 任意周期の 8 ビッ ト PPG 波形を出力できるようにする動作モードです。例えば , PPG1 端子は , ch.1 の プリスケーラ出力が接続され , PPG0 端子は , ch.0 の PPG 出力が接続されます。 • 16 ビット PPG 1 チャネルモードは , 2 つのチャネルを連結させ , 16 ビット PPG とし て動作させる動作モードです。例えば , ch.0 と ch.1 を連結させると , PPG0 端子と PPG1 端子のいずれにも 16 ビット PPG 出力が接続されます。 522 第 18 章 PPG タイマ ■ PPG 出力動作 TRG レジスタ (PPG 起動レジスタ ) の各チャネルのビットを "1" にセットすることに よって PPG はカウントを開始します。動作を開始した後は , TRG レジスタの各チャネ ルビットに "0" を書き込むことによってカウント動作を停止し , 停止した後 , パルス出 力は "L" レベルを保持します。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モード時には , プリスケーラチャネルを停止状態で , PPG チャネルを動作状態 に設定しないでください。 16 ビット PPG モード時には , 各チャネルの TRG レジスタの PEN をそれぞれ , 同時に 開始 / 停止の制御を行ってください。 以下に PPG 出力動作について説明します。 PPG 動作時は , 任意周波数 / 任意デューティ比 ( パルス波の "H" レベル期間と "L" レベ ル期間の比 ) のパルス波出力を連続して出力します。PPG はパルス波出力を開始する と , 動作停止を設定するまで停止しません。 PENn PENnにより 動作開始 (L側から) 出力端子 PPG T×(L+1) T×(H+1) スタート n=0~3 PPG出力動作 出力波形 ■ リロード値とパルス幅の関係 リロードレジスタに書かれた値に " + 1" した値に , カウントクロックの周期を掛けた 値が , 出力されるパルス幅となります。つまり , 8 ビット PPG 動作時のリロードレジス タ値が "00H" のとき , および 16 ビット PPG 動作時のリロードレジスタ値が "0000H" の ときは, カウントクロック1周期分のパルス幅をもつことになりますので注意してくだ さい。また , 8 ビット PPG 動作時のリロードレジスタ値が "FFH" のとき , カウントク ロック 256 周期分のパルス幅を持つことになり , 16 ビット PPG 動作時のリロードレジ スタ値が "FFFFH" のときは , カウントクロック 65536 周期分のパルス幅をもつことに なりますので注意してください。 パルス幅の計算式を以下に示します。 L :PRLL の値 Pl = Tx(L + 1) H :PRLH の値 Ph = Tx(H + 1) T :入力クロック周期 Ph:ハイパルス幅 Pl :ローパルス幅 523 第 18 章 PPG タイマ ■ カウントクロックの選択 本ブロックの動作に使用するカウントクロックは , 周辺クロックを使用しており , 4 種 類のカウントクロック入力が選択できます。 カウントクロックは以下のように動作します。 PPGC レジスタ カウントクロック動作 PCS1 PCS0 0 0 周辺クロックごとに 1 カウント 0 1 周辺クロック 4 サイクルごとに 1 カウント 1 0 周辺クロック 16 サイクルごとに 1 カウント 1 1 周辺クロック 64 サイクルごとに 1 カウント ただし , 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビット PPG モード , 16 ビットプリスケーラ+ 16 ビット PPG モード時には , 先頭の PPG 以外の PPG の PPGC レジスタ中の bit4, bit3:PCS1, PCS0 の値は無効になります。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モードで , プリスケーラ側が動作状態で , PPG 側が停止状態であるときに , PPG 側の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意してくだ さい。 ■ パルスの端子出力の制御 本モジュールの動作によって生成されたパルス出力は , 外部端子 PPGn より出力させる ことができます。 16 ビット PPG モードでは , PPG(m) と PPG(m + 1) は同じ波形が出力されるので , どち らの外部端子出力を許可しても同じ出力を得ることができます。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モードでは , プリスケーラ側は 8 ビットプリスケーラのトグル波形が出力され , PPG 側は 8 ビット PPG の波形が出力されます。このモードのときの出力波形の例を以 下に示します。 Ph Pl PPG1 PPG0 Ph 524 Pl0 第 18 章 PPG タイマ ■ 割込み 本モジュールの割込みは , リロード値がカウントアウトし , ボローが発生したときにア クティブになります。ただし , INTM ビットを "1" にしたときは , PRLH からのアンダ フロー時 ( ボロー ) のみアクティブになります。つまり , "H" 幅パルス終了時に割込み が発生します。 8 ビット PPG モードおよび 8 ビットプリスケーラ+ 8 ビット PPG モードのときには , それぞれのカウンタのボローにより, それぞれの割込み要求が行われますが, 16ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードでは , 16 ビットカウ ンタのボローにより , PUF(m) と PUF(m + 1) が同時にセットされます。このため , 割 込み要因を一本化するために , PIE(m) または PIE(m + 1) のどちらか一方のみを許可に することを推奨します。また , 割込み要因のクリアも PUF(m) と PUF(m + 1) を同時に 行うことを推奨します。 ■ 各ハードウェアの初期値 本ブロックの各ハードウェアは , リセット時に以下のように初期化されます。 <レジスタ> PPGC → 0000000xB <パルス出力> PPG → "L" <割込み要求> IRQ → "L" 上記以外のハードウェアは , 初期化されません。 ■ PPG の組合せ ch.0:PPGC ch.2:PPGC MD1 MD0 MD1 MD0 0 0 0 0 0 0 ch.0 ch.1 ch.2 ch.3 0 8 ビット PPG 8 ビット PPG 8 ビット PPG 8 ビット PPG 0 1 8 ビット PPG 8 ビット PPG 8 ビット PPG 8 ビット プリスケーラ 0 1 0 8 ビット PPG 8 ビット PPG 0 0 1 1 0 1 0 0 8 ビット PPG 8 ビット プリスケーラ 8 ビット PPG 8 ビット PPG 0 1 0 1 8 ビット PPG 8 ビット プリスケーラ 8 ビット PPG 8 ビット プリスケーラ 0 1 1 0 8 ビット PPG 0 1 1 1 1 0 0 0 16 ビット PPG 8 ビット PPG 8 ビット PPG 1 0 0 1 16 ビット PPG 8 ビット PPG 8 ビット プリスケーラ 1 0 1 0 16 ビット PPG 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 16 ビット PPG 設定禁止 8 ビット プリスケーラ 設定禁止 16 ビット PPG 16 ビット PPG 設定禁止 16 ビット PPG 16 ビットプリスケーラ 525 第 18 章 PPG タイマ ■ デューティ変更 PPG の出力動作をさせながら , デューティ設定を変更する場合は , 変更した次のサイク ルからデューティが変わるので , 注意が必要です。 1. PPG タイマの動作概要 8/16 ビット PPG タイマは , L 幅設定レジスタ (PRLL) と H 幅設定レジスタ (PRLH) に設 定された値をダウンカウンタのアンダフローごとに交互にダウンカウンタにリロード します。 8ビットまたは16ビット ダウンカウンタ PPGn PPG出力ラッチ アンダフロー H/Lセレクタ PUF 割込み PIE PRLHn PRLLn バス PPG タイマのタイマ機能は , 以下の機能があります。 - PWM タイマモード時:周期 =L 幅設定レジスタ+ H 幅設定レジスタ - リロードタイマモード時:設定時間= L 幅設定レジスタ= H 幅設定レジスタ 2. PWM タイマモードを行う場合の注意点について PPG タイマを使用して PWM 制御を行う場合 , カウンタのアンダフローごとに割込みを 発生することができますので , この割込みごとに更新対象に相当する L 幅設定レジス タ /H 幅設定レジスタの値を更新することでデューティ制御が可能になります。 ただし , L 幅 /H 幅に設定された時間が短いと , 割込みから次の割込みまでの時間が短 く , 割込み処理内でレジスタ更新している間に次の割込みが発生し , 割込みフラグクリ アのタイミングで割込みが無視される現象が発生します。よって , この割込み無視が発 生しない時間設定を行うか , 割込み無視が発生してもこれを配慮したソフト処理を行 う必要があります。 下記に更新タイミングと出力タイミングを示します。 割込み無視が発生 "H1" "L1" "L2" "H2" "L3" " H3" L4 H4更新 "L4" "H4" "L5" PPG L2更新 起動 H2更新 割込み L3/H3更新 割込み 割込み L5 割込み 注意:L幅/H幅設定時間が短いと割込み無視が発生します。 更新タイミングとしてソフト的に考慮が必要です。 案1)必ず,割込み無視が発生しない設定時間を行う。 案2)割込み抜けが発生しても対処できるプログラムにする。 526 H5/L6更新 割込み 第 18 章 PPG タイマ 3. 割込み処理時間について 2 項に示した割込み処理に必要な処理時間を下記に示します。 なお , 時間については , 最短時間での必要なサイクル数で記述していますので , 下記時 間に十分余裕のある設定時間を検討いただけますようお願い致します。 ① 割込み処理を起動するまでの時間 - 約 6 サイクル ② 割込み関数入り口での処理 STM(R0-R7) STM(R8-R15) ST MDH,@-R15 ST MDL,@-R15 ST RP,@-R15 ENTER ; 最大 9 サイクル ; 最大 9 サイクル ; 1 サイクル ; 1 サイクル ; 1 サイクル ; 2 サイクル ③ フラグクリアとリロードレジスタへの設定 LDI:20 #PPGCn,R0 BANDH #B,@R0 LDI:20 #0x0XXXX,R0 LDI:20 #PRLn,R12 STH R0,@R12 ; 2 サイクル ; 3 サイクル ; 2 サイクル ; 2 サイクル ; 1 サイクル 割込み処理内での プログラムです。 実際のプログラム内容の サイクル計算が必要です。 計 65 サイクル+ α ( 割込み実行時の命令 ) ④ 割込み関数出口での処理 LEAVE LD @R15 + ,RP LD @R15 + ,MDL LD @R15 + ,MDH LDM1(R8-R15) LDM0(R0-R7) RETI ; 1 サイクル ; 1 サイクル ; 1 サイクル ; 1 サイクル ; 9 サイクル ; 9 サイクル ; 9 サイクル この時間には , 多重割込みによる処理が考慮されておりません。よって , 多重割込みを 使用されている場合は , PPG タイマの割込みより優先順位が高い割込み処理時間をプ ラスする必要があります。 この時間を考慮した場合のデューティ比の例を示します。 条件 ) 周期:5000 サイクル , 多重割込みなし , 設定時間最小 =250 サイクル PPG 4750サイクル 250 250 4750サイクル デューティ比=4750:250~250:4750=5%~95% 周期が長いとデューティ比を広くできますが , 周期が短いとデューティ比も狭くなり ます。 527 第 18 章 PPG タイマ 4. 割込み無視を考慮する処理方法について Main PPG割込み Flag= 1 Flag判定 Flag= 0 "L"幅設定レジスタ更新 "H"幅設定レジスタ更新 割込みフラグクリア PPGx= 0 割込みフラグクリア PPGx= 1 端子判定 PPGx= 1 Flag反転処理 "H"幅設定レジスタ更新 RETI 1)PPGタイマ割込みが発生 2)"L"幅/"H"幅判定Flagをチェック 3)Flag=0なら"L"幅設定レジスタ更新/Flag=1なら"H"幅設定レジスタ更新 4)割込みフラグクリア 5)割込みフラグクリア後PPG出力端子状態判定 6)PPG端子状態が正ならFlag反転処理,負なら各設定レジスタを更新 7)RETIでメイン復帰 528 端子判定 PPGx= 0 "L"幅設定レジスタ更新 割込み無視対策プログラム 第 19 章 アップダウンカウンタ 8 ビット /16 ビットアップダウンカウンタの機能と 動作について説明します。 19.1 アップダウンカウンタの概要 19.2 アップダウンカウンタのレジスタ 19.3 アップダウンカウンタの動作 529 第 19 章 アップダウンカウンタ 19.1 アップダウンカウンタの概要 イベント入力端子 3 本 , 16 ビットアップ / ダウンカウンタ , 16 ビットリロード / コ ンペアレジスタと , それらの制御回路から構成されるアップダウンカウンタ / タイマ です。 設定により 8 ビットカウンタ× 2 チャネル , または 16 ビット× 1 チャネルのいずれ かの動作モード切換えが可能です。 ■ アップダウンカウンタの特長 • 16 ビットカウントレジスタにより , 0D ∼ 65535D の範囲でカウント可能 • カウントクロックの選択による 4 種のカウントモード - タイマモード - アップ / ダウンカウンタモード - 位相差カウントモード (2 逓倍 ) - 位相差カウントモード (4 逓倍 ) • タイマモード時には , カウントクロックとして内部クロック 2 種類 , 内部回路から の入力を選択可能 カウントクロック (32MHz 動作時 ) - 62.5ns (16MHz:2 分周 ) - 250ns (4MHz:8 分周 ) • アップ / ダウンカウントモード時には , 外部端子入力信号の検出エッジを選択可能 - 立下りエッジ検出 - 立上りエッジ検出 - 立上り / 立下りエッジ両エッジ検出 - エッジ検出禁止 • 位相差カウントモードは , モータなどのエンコーダのカウントに適し , エンコーダ の A 相 , B 相 , Z 相出力をそれぞれ入力することで , 高精度で回転角度 , 回転数など のカウントを容易に行うことが可能 • ZIN 端子は , 2 種の機能を選択可能 ( すべてのモードで有効 ) - カウンタクリア機能 - ゲート機能 530 第 19 章 アップダウンカウンタ • コンペア機能およびリロード機能を有し , それぞれの機能のみで , また組み合わせ ても使用可能で , 両機能を組み合わせて使用することで任意幅でのアップダウンカ ウントを行うことが可能 - コンペア機能 ( コンペア時割込み要求出力 ) - コンペア機能 ( コンペア時割込み要求出力およびカウンタクリア ) - リロード機能 ( アンダフロー時割込み要求出力およびリロード ) - コンペア / リロード機能 ( コンペア時割込み要求出力およびカウンタクリア , ア ンダフロー時割込み要求出力およびリロード ) - コンペア / リロード禁止 • カウント方向フラグにより , 直前のカウント方向を識別可能 • コンペア一致時 , リロード ( アンダフロー) 時またはオーバフロー時 , およびカウン ト方向が変わった場合の割込みの発生を , それぞれ個別に制御可能 ■ アップダウンカウンタのブロックダイヤグラム 図 19.1-1 アップダウンカウンタのブロックダイヤグラム ・8/16ビットアップダウンカウンタ/タイマ(ch.0) データバス CGE1 ZIN0 CGE0 CGSC 8bit RCR0(リロード/ コンペアレジスタ0) CTUT リロード制御 UCRE RLDE M16E Carry エッジ/レベル検出 UDCC CES1 CES0 CMS1 CMS0 カウンタ クリア 8bit UDCR0(アップ/ ダウンカウントレジスタ0) CMPF UDFF AIN0 BIN0 ch.1へ アップダウン カウント クロック 選択 カウント クロック CSTR UDF1 OVFF UDIE UDF0 CDCF ブリス ケーラ CITE CLKS CFIE 割込み出力 531 第 19 章 アップダウンカウンタ ・8/16ビットアップダウンカウンタ/タイマ(ch.1) データバス CGE1 ZIN1 CGE0 8bit RCR1(リロード/ コンペアレジスタ1) CGSC CES1 CES0 CMS1 CMS0 Carry BIN0 リロード制御 UCRE RLDE カウンタ クリア UDCC AIN0 CTUT エッジ/レベル検出 8bit UDCR1(アップ/ ダウンカウントレジスタ1) CMPF M16E カウント アップダウン クロック カウント クロック 選択 UDFF CSTR UDIE UDF1 UDF0 CDCF プリス ケーラ CITE CLKS CFIE 割込み出力 532 OVFF 第 19 章 アップダウンカウンタ 19.2 アップダウンカウンタのレジスタ アップダウンカウンタには , アップダウンカウントレジスタ (UDCR), リロードコン ペアレジスタ (RCR), カウンタステータスレジスタ (CSR), カウンタコントロールレ ジスタ (CCR) があります。 本節ではこれらのレジスタに関して説明します。 ■ アップダウンカウンタのレジスタ一覧 UDCR1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D15 D14 D13 D12 D11 D10 D09 D08 00000000B R R R R R R R R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D07 D06 D05 D04 D03 D02 D01 D00 00000000B R R R R R R R R bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D15 D14 D13 D12 D11 D10 D09 D08 00000000B W W W W W W W W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D07 W D06 W D05 W D04 W D03 W D02 W D01 W D00 W 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CSTR R/W CITE R/W UDIE R/W CMPF R/W OVFF R/W UDFF R/W UDF1 R UDF0 R 00000000B UDCR0 RCR1 RCR0 CSR R/W :リード / ライト可能 R :リードオンリ W :ライトオンリ ( 続く ) 533 第 19 章 アップダウンカウンタ ( 続き ) CCRH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 M16E CDCF CFIE CLKS CMS1 CMS0 CES1 CES0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 Res R/W CTUT R/W UCRE R/W RLDE R/W UDCC R/W CGSC R/W CGE1 R CGE0 R 00000000B CCRL R/W :リード / ライト可能 R :リードオンリ 534 第 19 章 アップダウンカウンタ 19.2.1 アップダウンカウントレジスタ (UDCR) アップダウンカウントレジスタ (UDCR) は , 8 ビットカウントレジスタです。内部回 路からの入力 , 内部プリスケーラ , または AIN 端子 , BIN 端子の入力によってアップ / ダウンカウントを行います。また , 16 ビットカウントモードでは , 16 ビットカウン トレジスタとして動作します。 ■ アップダウンカウントレジスタ (UDCR) UDCR1 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 000172H D15 R D14 R D13 R D12 R D11 R D10 R D09 R D08 R 00000000B アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000173H D07 R D06 R D05 R D04 R D03 R D02 R D01 R D00 R 00000000B UDCR0 R :リードオンリ 本レジスタは , 直接書込み動作を行うことができません。本レジスタに書込みを行う場 合は , RCR を介して行う必要があります。本レジスタに書き込みたい値をまず RCR に 書き込み , この後 CCRL レジスタの CTUT ビットに "1" を書き込むことで RCR から本 レジスタに転送されます ( ソフトウェアによるリロード ) 。 本レジスタは , 16 ビットモード起動時には 16 ビット一度に読み出してください。 535 第 19 章 アップダウンカウンタ 19.2.2 リロードコンペアレジスタ (RCR) リロードコンペアレジスタ (RCR) は , 8 ビットリロード / コンペアレジスタです。本 レジスタにより , リロード値およびコンペア値を設定します。リロード値とコンペ ア値は同一であり , リロード機能およびコンペア機能を起動することで 00H ∼本レ ジスタ値の間 (16 ビット動作モード:0000H ∼本レジスタ値 ) でアップ / ダウンカウ ントが可能になります。 ■ リロードコンペアレジスタ (RCR) RCR1 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 000170H D15 W D14 W D13 W D12 W D11 W D10 W D09 W D08 W 00000000B アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000171H D07 W D06 W D05 W D04 W D03 W D02 W D01 W D00 W 00000000B RCR0 W :ライトオンリ 本レジスタは書込みのみ可能で , 読出しはできません。カウント停止中に CCR レジス タの CTUT ビットに "1" を書き込むことで , 本レジスタの値を UDCR に転送すること が可能です。 ( ソフトウェアによるリロード ) 16 ビットモード (M16E=1) の時は , 本レジスタに 16 ビットで一度に書き込んでくだ さい。 536 第 19 章 アップダウンカウンタ 19.2.3 カウンタステータスレジスタ (CSR) カウンタステータスレジスタ (CSR) により , アップダウンカウンタの状態の確認 , および割込みの制御を行うことができます。 ■ カウンタステータスレジスタ (CSR) のビット構成 CSR アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000177H CSTR R/W CITE R/W UDIE R/W CMPF R/W OVFF R/W UDFF R/W UDF1 R UDF0 R 00000000B 00017BH R/W :リード / ライト可能 R :リードオンリ [bit7] CSTR:カウント起動ビット UDCR のカウント動作の起動 / 停止を制御するビットです。 CSTR カウント起動 0 カウント動作停止 [ 初期値 ] 1 カウント動作起動 [bit6] CITE:コンペア割込み許可ビット CMPF がセットされた ( コンペアが発生した ) 場合に , CPU への割込み出力を行う かの許可 / 禁止を制御するビットです。 CITE コンペア割込み許可 0 コンペア割込み禁止 [ 初期値 ] 1 コンペア割込み許可 [bit5] UDIE:オーバフロー / アンダフロー割込み許可ビット OVFF/UDFF がセットされた ( オーバフロー/ アンダフローが発生した ) 場合に , CPU への割込み出力を行うかの許可 / 禁止を制御するビットです。 UDIE オーバフロー / アンダフロー割込み許可 0 オーバフロー / アンダフロー割込み禁止 [ 初期値 ] 1 オーバフロー / アンダフロー割込み許可 537 第 19 章 アップダウンカウンタ [bit4] CMPF:コンペア検出フラグ UDCR の値と RCR の値の比較結果が等しくなったことを示すフラグです。 "0" 書込みのみ可能で , "1" 書込みはできません。 CMPF コンペア検出フラグ内容 0 比較結果が一致していない [ 初期値 ] 1 比較結果は一致 [bit3] OVFF:オーバフロー検出フラグ オーバフローの発生を示すフラグです。 "0" 書込みのみ可能で , "1" 書込みはできません。 OVFF オーバフロー検出フラグ内容 0 オーバフローなし [ 初期値 ] 1 オーバフローあり [bit2] UDFF:アンダフロー検出フラグ アンダフローの発生を示すフラグです。 "0" 書込みのみ可能で , "1" 書込みはできません。 UDFF アンダフロー検出フラグ内容 0 アンダフローなし [ 初期値 ] 1 アンダフローあり [bit1, bit0] UDF1, UDF0:アップダウンフラグ 直前のカウント動作 ( アップ / ダウン ) を示すビットです。 読出しのみ可能で , 書込みはできません。 538 UDF1 UDF0 0 0 入力なし [ 初期値 ] 0 1 ダウンカウント 1 0 アップカウント 1 1 アップ / ダウン同時発生 検出エッジ 第 19 章 アップダウンカウンタ カウンタコントロールレジスタ (CCR) 19.2.4 カウンタコントロールレジスタ (CCR) は , アップダウンカウンタの動作モードを制 御するレジスタです。奇数チャネルと偶数チャネルでは bit15 (M16E) の機能が異な ります。 ■ カウンタコントロールレジスタ (CCR) のビット構成 CCRH アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 000174H M16E R/W CDCF R/W CFIE R/W CLKS R/W CMS1 R/W CMS0 R/W CES1 R/W CES0 R/W 00000000B アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 000175H Reserved CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 00000000B 000179H R/W R/W R/W R/W R/W R/W R R 000178H CCRL R/W :リード / ライト可能 R :リードオンリ [bit15] M16E:16 ビットモード許可設定ビット 8 ビット× 2 チャネル /16 ビット× 1 チャネル動作モード選択 ( 切換え ) ビットです。 M16E 16 ビットモード許可設定 0 8 ビット× 2 チャネル動作モード [ 初期値 ] 1 16 ビット× 1 チャネル動作モード <注意事項> M16E ビットは偶数チャネルにのみ存在します。奇数チャネルでは必ず "0" を設定してく ださい。 539 第 19 章 アップダウンカウンタ [bit14] CDCF:カウント方向転換フラグ カウント方向が変わった場合にセットされるフラグです。カウント起動中にカウン ト方向がアップ→ダウン , またはダウン→アップに換わった場合に "1" にセットさ れます。 "0" 書込みでクリアされます。 "1" 書込みは無視され , 本ビットの値は変化しません。 CDCF 方向転換検出 0 方向転換は行われていない [ 初期値 ] 1 方向転換が 1 回以上行われた リセット直後のカウント方向はダウンカウント方向になっています。したがって , リセット直後のアップカウント時は CDCF に "1" がセットされます。 [bit13] CFIE:カウント方向転換割込み許可ビット CDCF がセットされた場合の , CPU に対しての割込み出力を制御するビットです。 カウント起動中に一度でもカウント方向が変わった場合に割込みを発生します。 CFIE 方向転換割込み許可 0 方向転換割込み禁止 [ 初期値 ] 1 方向転換割込み許可 [bit12] CLKS:内蔵プリスケーラ選択ビット タイマモード選択時に , 内蔵プリスケーラの周波数を選択するビットです。 タイマモードでのみ有効で , このときはダウンカウントのみとなります。 CLKS 内蔵プリスケーラ選択 0 2 マシンサイクル [ 初期値 ] 1 8 マシンサイクル [bit11, bit10] CMS1, CMS0:カウントモード選択ビット カウントモードを選択するビットです。 540 CMS1 CMS0 0 0 タイマモード ( ダウンカウント ) [ 初期値 ] 0 1 アップ / ダウンカウントモード 1 0 位相差カウントモード 2 逓倍 1 1 位相差カウントモード 4 逓倍 カウントモード 第 19 章 アップダウンカウンタ [bit9, bit8] CES1, CES0:カウントクロックエッジ選択ビット アップ / ダウンカウントモード時において , 内部回路の入力 , 外部端子 AIN および BIN の検出エッジを選択するビットです。 アップ / ダウンカウントモード以外では , この設定は無効です。 CES1 CES0 0 0 エッジ検出禁止 [ 初期値 ] 0 1 立下りエッジ検出 1 0 立上りエッジ検出 1 1 立上り / 立下り両エッジ検出 選択エッジ [bit7] Reserved:予約ビット 予約ビットです。必ず "0" を設定してください。 [bit6] CTUT:カウンタライトビット RCR から UDCR へのデータ転送を行います。 このビットに "1" を書き込むと RCR から UDCR にデータが転送されます。 "0" 書込みは無効であり , 読出し値は常に "0" です。 カウント動作中 (CSR の CSTR ビットが "1" のとき ) に本ビットに "1" を書き込まな いでください。 [bit5] UCRE:UDCR クリア許可ビット コンペアによる UDCR のクリアを制御するビットです。 コンペア発生によるクリア以外の UDCR クリア機能 (ZIN 端子によるものなど ) に は影響しません。 UCRE コンペアによるカウンタのクリア 0 カウンタクリア禁止 [ 初期値 ] 1 カウンタクリア許可 [bit4] RLDE:リロード許可ビット リロード機能の起動を制御するビットです。リロード機能起動時に UDCR がアンダ フローを発生した場合に RCR の値を UDCR に転送します。 RLDE リロード機能 0 リロード機能禁止 [ 初期値 ] 1 リロード機能許可 541 第 19 章 アップダウンカウンタ [bit3] UDCC:UDCR クリアビット UDCR をクリアするビットです。このビットに "0" を書き込むと UDCR が "0000H" にクリアされます。 "1" 書込みは無効であり , 読出し値は常に "1" です。 [bit2] CGSC:カウンタクリア / ゲート選択ビット 外部端子 ZIN の機能を選択するビットです。 CGSC ZIN 端子の機能 0 カウンタクリア機能 [ 初期値 ] 1 ゲート機能 [bit1, bit0] CGE1, CGE0:カウンタクリア / ゲートエッジ選択ビット 外部端子 ZIN の検出エッジ / レベルを選択するビットです。 542 CGE1 CGE0 0 0 エッジ検出禁止 [ 初期値 ] レベル検出禁止 [ 初期値 ] ( カウントディセーブル ) 0 1 立下りエッジ "L" レベル 1 0 立上りエッジ "H" レベル 1 1 設定禁止 設定禁止 カウンタクリア機能選択時 ゲート機能選択時 第 19 章 アップダウンカウンタ 19.3 アップダウンカウンタの動作 アップダウンカウンタの動作について説明します。 ■ カウントモード選択 本タイマ / カウンタは , 4 種類のカウントモードを有します。これらのカウントモード の選択は , CCR レジスタの CMS1, CMS0 ビットで制御します。 CMS1 CMS0 0 0 タイマモード ( ダウンカウント ) [ 初期値 ] 0 1 アップ / ダウンカウントモード 1 0 位相差カウントモード 2 逓倍 1 1 位相差カウントモード 4 逓倍 カウントモード ● タイマモード [ ダウンカウント ] タイマモードでは , 内部プリスケーラの出力をダウンカウントします。内部プリスケー ラについては , CCRH レジスタの CLKS ビットによって 2 マシンサイクル /8 マシンサ イクルの選択が可能です。 ● アップ / ダウンカウントモード アップダウンカウントモードでは , 外部端子 AIN および BIN の入力をカウントするこ とでアップダウンカウントを行います。AIN 端子の入力はアップカウントを , BIN 端子 の入力はダウンカウントをそれぞれ制御します。 AIN 端子 , BIN 端子の入力はエッジ検出され , CCRH レジスタの CES1, CES0 ビットに よって検出エッジの選択が可能です。 CES1 CES0 0 0 エッジ検出禁止 [ 初期値 ] 0 1 立下りエッジ検出 1 0 立上りエッジ検出 1 1 立上り / 立下り両エッジ検出 選択エッジ ● 位相差カウントモード (2 逓倍 /4 逓倍 ) 位相差カウントモードでは , エンコーダの出力信号 A 相 , B 相の位相差をカウントする ため , AIN 端子の入力エッジ検出時に BIN 端子の入力レベルを検出し , カウントを行い ます。 2 逓倍 /4 逓倍モードでは , AIN 端子入力と BIN 端子入力の位相差について , AIN の方 が早い場合にアップカウントを , BIN の方が早い場合にダウンカウントを行います。 2 逓倍モードでは , BIN 端子の立上り / 立下り両方のエッジのタイミングで AIN 端子の 値を検出することでカウントを行います。このとき次のように実行されます。 543 第 19 章 アップダウンカウンタ BIN 端子のエッジ AIN 端子のレベル カウント 立上り ↑ "H" レベル アップカウント 立上り ↑ "L" レベル ダウンカウント 立下り ↓ "H" レベル ダウンカウント 立下り ↓ "L" レベル アップカウント 図 19.3-1 位相差カウントモード (2 逓倍 ) 動作概略 ┌──┐ ┌──┐ ┌───────────┐ ┌──┐ ┌─ AIN端子 └──┘ ─────┘ └──┘ └──┘ └──┘ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ BIN端子 ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ──────┘ └──┘ └──┘ └──┘ └──┘ └──┘ └ +1 +1 +1 -1 +1 -1 -1 -1 -1 -1 +1 +1 カウント値 0 1 2 3 4 5 4 5 4 3 2 1 0 4 逓倍モードでは , BIN 端子の立上り / 立下り両エッジのタイミングで AIN 端子の値を 検出し , また AIN 端子の立下り / 立上り両エッジのタイミングで BIN 端子の値を検出 することでカウントを行います。このとき , 以下のように実行されます。 エッジ入力 エッジ レベル入力 レベル カウント "H" レベル アップカウント "L" レベル ダウンカウント 立下り ↓ "H" レベル ダウンカウント 立下り ↓ "L" レベル アップカウント 立上り ↑ "H" レベル ダウンカウント "L" レベル アップカウント 立下り ↓ "H" レベル アップカウント 立下り ↓ "L" レベル ダウンカウント 立上り ↑ 立上り ↑ BIN AIN 立上り ↑ AIN BIN 図 19.3-2 位相差カウントモード (4 逓倍 ) 動作概略 AIN端子 BIN端子 カウント値 0 +1 +1 +1 +1 +1+1 + 1+1 +1+1 1 2 3 4 5 6 7 8 9 10 -1 9 +1 10 -1 9 -1 -1 -1 -1 -1 -1 -1 -1 8 7 6 5 4 3 2 1 エンコーダ出力のカウントの際には A 相を AIN 端子に , B 相を BIN 端子に , Z 相を ZIN 端子に入力することで , 高精度で回転角度や回転数のカウント , 回転方向の検出などが 可能です。 なお , このカウントモード選択時は , CES1, CES0 ビットによる検出エッジの選択は無 効です。 544 第 19 章 アップダウンカウンタ ■ リロード / コンペア機能 本カウンタでは , リロード機能およびコンペアによるクリア機能を有しています。この 2 つの機能は組み合わせて処理を行うことが可能です。以下に設定例を示します。 RLDE UCRE 0 0 リロード / コンペアによるクリア禁止 [ 初期値 ] 0 1 コンペアによるクリア許可 1 0 リロード許可 1 1 リロード / コンペアによるクリア許可 リロード / コンペア機能 ● リロード機能 リロード機能起動時には , アンダフロー発生の次のダウンカウントクロックのタイミ ングで RCR の値を UDCR に転送します。この時 , UDFF ビットがセットされるととも に割込み要求を発生します。 ダウンカウントを行わないモードでは , 本機能の起動は無効となります。 図 19.3-3 リロード機能動作概略 (0FFFFH) FFH リロード割込み発生 リロード割込み発生 RCR 00H アンダフロー アンダフロー ● コンペアによるクリア機能 コンペアによるクリア機能は , タイマモード以外のすべてのモードで使用可能です。コ ンペア機能時は , RCR と UDCR の値が一致した場合に , CMPF ビットがセットされる とともに割込み要求を発生します。また , コンペアクリア機能起動時は , その次のアッ プカウントクロックのタイミングで UDCR をクリアします ( ダウンカウントではクリ アされません ) 。 アップカウントを行わないモードでは , 本機能の起動は無効となります。 図 19.3-4 コンペア機能動作概略 (0FFFFH) FFH RCR コンペア一致 コンペア一致 00H カウンタクリア, カウンタクリア, 割込み発生 割込み発生 545 第 19 章 アップダウンカウンタ ■ リロード / コンペア機能同時起動 リロード / コンペア機能起動時は , 任意幅でのアップ / ダウンカウントが可能です。 リロード機能により , アンダフロー時に起動して RCR の値を UDCR に転送します。ま た , コンペア機能により , RCR と UDCR の値が一致した場合に UDCR をクリアします。 この両機能を利用して , "0000H" ∼ RCR の間でアップ / ダウンカウントを行います。 図 19.3-5 リロード / コンペア機能同時起動時動作概略 FFH RCR コンペア一致 コンペア一致 リロード リロード リロード コンペア一致 00H カウンタクリア アンダフロー アンダフロー カウンタクリア カウンタクリア アンダフロー コンペア一致時またはリロード ( アンダフロー ) 時に CPU に割込みを発生することが できます。また , これらの割込み出力のイネーブルは個別に制御可能です。 UDCR に対し , クリアを行う場合のタイミングについて , カウント起動中と停止中では 異なります。 カウント動作中のソフトウェアによるリロード (CTUT ビットへの "1" 書込み ) は禁止 です。 • カウント動作中にクリアのイベントが発生した場合は , すべてカウントクロックに 同期して行われます。 UDCR クリアイベント 0065H 0066H 0000H 0001H このクロックに同期する カウントクロック <参考> カウント動作中のアンダフローによるリロードは , すべてカウントクロックに同期して行 われます。 546 第 19 章 アップダウンカウンタ • カウント動作中にクリアのイベントが発生した場合で , カウントクロック同期待ち (同期させるためのカウント入力を待っている状態) のままカウントを停止させた場 合は , 停止した時点でクリアが行われます。 UDCR 0065H 0066H 0000H クリアイベント カウントクロック ディセーブル(カウント禁止) カウントイネーブル イネーブル(カウント許可) • カウント中にリロードおよびクリアのイベントが発生した場合は , イベント発生時 点で処理が行われます。 UDCR 0065H 0080H ロード/ クリアイベント コンペアによるクリアについては , UDCR と RCR の値が一致し , さらにアップカウン トが行われた時にクリアが行われます。UDCR と RCR の値が一致した場合においても , その後ダウンカウントやカウント停止になった場合はクリアは行われません。 クリア / ロードのタイミングについて , クリアはリセット入力以外のすべてのイベント で , またリロードもすべてのイベントにおいて上記タイミングに従います。 クリアイベントとリロードイベントが同時に発生した場合はクリアイベントが優先と なります。 ■ UDCR へのデータの書込み UDCR へデータバスから直接データを書き込むことはできません。UDCR に任意の値 を書き込む場合は , 以下のような手順で書き込む必要があります。 a. UDCR に書き込むデータを , まず RCR に書き込む (RCR のデータは失われるので注 意 )。 b. CCR の CTUT ビットに "1" を書き込むことにより , RCR から UDCR にデータが転送 される。 以上の動作は , カウント停止中 (CSR の CSTR ビットが "0" の時 ) に行ってください。 <参考> 誤ってカウント中に CTUT ビットに "1" を書き込むと , 書き込んだタイミングで RCR の 値が UDCR に転送されます。 カウンタのクリアについては , 上記以外の方法に以下の方法があります。 • リセット入力によるクリア • ZIN 端子からのエッジ入力によるクリア • CCR の UDCC ビットに "0" を書き込むことによるクリア • コンペア機能によるクリア これらの書込みは , カウント起動 / 停止にかかわらず行うことができます。 547 第 19 章 アップダウンカウンタ ■ カウントクリア / ゲート機能 ZIN 端子は CCR レジスタの CGSC ビットによって , カウントクリア機能またはゲート 機能を選択して使用可能です。 カウントクリア機能起動時は , ZIN 端子によりカウンタのクリアを行います。ZIN 端子 のどのエッジ入力でカウントを行うかを CCRL レジスタの CGE1, CGE0 ビットで制御 可能です。 ゲート機能起動時は, ZIN端子によりカウントのイネーブル/ディセーブルを行います。 ZIN 端子のどのレベル入力でイネーブルとするかを CCR レジスタの CGE1, CGE0 ビッ トで制御可能です。 本機能はすべてのモードで有効です。 CGSC ZIN 端子の機能 0 カウンタクリア機能 [ 初期値 ] 1 ゲート機能 CGE1 CGE0 0 0 エッジ検出禁止 [ 初期値 ] レベル検出禁止 [ 初期値 ] ( カウントディセーブル ) 0 1 立下りエッジ "L" レベル 1 0 立上りエッジ "H" レベル 1 1 設定禁止 設定禁止 カウンタクリア機能選択時 ゲート機能選択時 ■ カウント方向フラグ カウント方向フラグは (UDF1, UDF0) は , アップ / ダウンカウント時に , 直前のカウン トがアップカウントであったかダウンカウントであったかを示します。AIN, BIN 両端 子の入力から生成されたカウントクロックから判断して , カウントのたびにフラグを 書き換えます。モータの制御などで , 現在の回転方向を知りたい場合はこのフラグを参 照することで判断することができます。 548 UDF1 UDF0 0 0 入力なし [ 初期値 ] 0 1 ダウンカウント 1 0 アップカウント 1 1 アップ / ダウン同時発生 ( カウントは行われない ) カウント方向 第 19 章 アップダウンカウンタ ■ カウント方向転換フラグ カウント方向転換フラグ (CDCF) は , カウント方向がアップ / ダウンで変わった場合に セットされます。また , このフラグがセットされると同時に CPU に対して割込み要求 を発生させることができます。この割込みとカウント方向フラグを参照することによ り , カウント方向の変化の向きを判断することができます。 ただし , 方向転換の期間が短く , 連続して発生した場合などは , 方向転換後のフラグの 示す方向が元に戻り同一方向となる場合があるので注意が必要です。 CDCF 方向転換検出 0 方向転換は行われていない [ 初期値 ] 1 方向転換が 1 回以上行われた ■ コンペア検出フラグ コンペア検出フラグ (CMPF) は , カウント動作中に UDCR の値と RCR の値が等しく なった時にセットされます。カウントアップ / ダウン一致のほか , リロードイベント発 生による一致 , カウント起動時に既に一致している場合もセットされます。 ■ 8 ビット× 2 チャネル /16 ビット× 1 チャネル動作 このモジュールは , 8 ビットアップダウンカウンタ× 2 チャネル , または 16 ビットアッ プダウンカウンタ× 1 チャネルとして使用できます。CCR レジスタの M16E ビットに "0" を書き込むことにより , 8 ビット× 2 チャネルモードとなり , "1" を書き込むことに より , 16 ビット× 1 チャネルモードとなります。 16 ビット× 1 チャネルとして動作する場合 , CSR0, CCRL0, CCRH0 レジスタが有効と なり , CSR1, CCRL1, CCRH1 レジスタは使用できません。また , 入力端子は AIN0, BIN0, ZIN0 端子が有効となり , AIN1, BIN1, ZIN1 端子は使用されません。 549 第 19 章 アップダウンカウンタ ■ 割込み発生タイミング 割込みフラグ フラグセット割込み CDCF ( カウント方向 転換フラグ ) カウント方向が変 わったカウント時に , セットと同時に割込 み発生 CMPF ( コンペア検出 フラグ ) アップカウント / ダウンカウント / リロードカウント起 動時に , RCR と UDCR が一致をする と , フラグセットと 同時に割込み発生 リロード RCR と UDCR の 一致を次のアップ カウントタイミン グで UDCR をク リア ( ダウンカウ ント時はクリアさ れません ) カウント "FFFFH" の OVFF ( オーバフロー 検出フラグ ) UDFF ( アンダフロー 検出フラグ ) クリア カウント "FFFFH" 次のアップカウント タイミングで , フラ グセットと同時に割 込み発生 の次のカウントタ イミングで UDCR をクリア カウント "0000H" の カウント "0000H" 次のダウンカウント タイミングで , フラ グセットと同時に割 込み発生 の次のカウントタ イミングで RCR の値を UDCR に 転送 • 割込み発生時は , 割込みフラグがクリアされるまでカウントを停止します。 • RCR はリロード値とコンペア値を兼用しているため , リロードが実行されると , コ ンペアフラグが必ずセットされます。 • クリア機能を有効にしたダウンカウント実行時 , コンペア一致が発生した後アップ カウントが行われるとクリアが発生します。 ■ 注意事項 カウントリセット直後のカウント方向はダウンカウント方向になっています。した がって, リセット直後のアップカウントでは方向転換が行われたことを示すCDCRビッ トに "1" がセットされます。 アップカウントレジスタ (UDCR) が FULL カウントになった場合 , キャリなしでカウン トを続けます。見かけ上 , アップダウンカウントレジスタがクリアされカウントを続け ることになります。 AIN, BIN, ZIN の最小パルス幅は , 2 × T (T:周辺系クロックマシンサイクル ) です。 550 第 20 章 クロックモニタ クロックモニタの機能と動作について説明します。 20.1 クロックモニタの概要 20.2 クロック出力許可レジスタ 551 第 20 章 クロックモニタ クロックモニタの概要 20.1 クロック出力許可レジスタの出力許可ビットを "1" に設定した場合に , クロックモ ニタ端子 (CKOT) からクロックが出力されます。出力するクロックの周波数は , ク ロック出力許可レジスタの出力周波数選択ビットで設定します。 ■ クロックモニタの出力周波数 クロックモニタ機能で出力するクロックの周波数を表 20.1-1 に示します。 表 20.1-1 クロックモニタ機能の出力周波数 FRQ2 ∼ FRQ0 クロック 出力周波数 φ =32 MHz の場合 φ =16 MHz の場合 φ =8 MHz の場合 周期 周波数 周期 周波数 周期 周波数 000B φ /21 62.5 ns 16 MHz 125 ns 8 MHz 250 ns 4 MHz 001B φ /22 125 ns 8 MHz 250 ns 4 MHz 500 ns 2 MHz 010B φ /23 250 ns 4 MHz 500 ns 2 MHz 1.0 µs 1 MHz 011B φ /24 500 ns 2 MHz 1.0 µs 1 MHz 2.0 µs 500 kHz 100B φ /25 1.0 µs 1 MHz 2.0 µs 500 kHz 4.0 µs 250 kHz 101B φ /26 2.0 µs 500 kHz 4.0 µs 250 kHz 8.0 µs 125 kHz 110B φ /27 4.0 µs 250 kHz 8.0 µs 125 kHz 16.0 µs 62.5 kHz 111B φ /28 8.0 µs 125 kHz 16.0 µs 62.5 kHz 32.0 µs 31.3 kHz φ : マシンクロック (CLKP) 周波数 ■ クロックモニタのブロックダイヤグラム 内 部 デ カウント クロック セレクタ プリスケーラ 端子 ー タ バ ス クロック出力許可 レジスタ(CMCLKR) - -:未定義ビット 552 出力許可 3 - - - CKEN FRQ2 FRQ1 FRQ0 CKOT 第 20 章 クロックモニタ 20.2 クロック出力許可レジスタ クロック出力許可レジスタでは , クロック出力の設定を行います。 ■ クロック出力許可レジスタのビット構成 CMCLKR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − − − CKEN FRQ2 FRQ1 FRQ0 ----0000B − R/W R/W R/W R/W − − − R/W :リード / ライト可能 [bit7 ∼ bit4] Reserved:予約ビット 予約ビットです。読出しでは必ず "1111B" が読み出されます。 これらのビットへの書込みは無効です。 [bit3] CKEN: 出力許可ビット クロックモニタ端子 (CKOT) の出力を許可します。 CKEN クロック出力許可 0 クロック出力禁止 [ 初期値 ] 1 クロック出力許可 [bit2 ∼ bit0] FRQ2 ∼ FRQ0:出力周波数選択ビット 出力するクロックの周波数を設定します。 マシンクロック (CLKP) の分周比を 8 種類から選択して設定します。 FRQ2 FRQ1 FRQ0 0 0 0 2 分周 0 0 1 4 分周 0 1 0 8 分周 0 1 1 16 分周 1 0 0 32 分周 1 0 1 64 分周 1 1 0 128 分周 1 1 1 256 分周 分周比 [ 初期値 ] 553 第 20 章 クロックモニタ 554 第 21 章 リアルタイムクロック リアルタイムクロック ( 以降 RTC) のレジスタ構成 とその機能 , RTC モジュールの動作について説明 します。 RTC には , タイマ制御レジスタ , サブセカンドレジ スタ , 秒 / 分 / 時レジスタ , 1/2 分周器 , 21 ビット プリスケーラ , 秒 / 分 / 時カウンタがあります。 RTC は実時間タイマとして動作し , 実時間情報を 与えます。 また RTC モジュールへ供給されるサブクロックの 補正ユニットに関しても説明します。 RTC モジュールへ供給するクロックとしてメイン クロックを選択される場合は , メインクロック周波 数を 4 MHz としてください。 21.1 レジスタ構成 21.2 ブロックダイヤグラム 21.3 レジスタの詳細 21.4 クロック補正ユニット 21.5 クロック補正ユニットのレジスタ 21.6 クロック補正ユニットの使用について 555 第 21 章 リアルタイムクロック 21.1 レジスタ構成 リアルタイムクロックのレジスタ構成を示します。 ■ リアルタイムクロックのレジスタ一覧 WTCRH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 INTE3 R/W INT3 R/W INTE2 R/W INT2 R/W INTE1 R/W INT1 R/W INTE0 R/W INT0 R/W 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R/W − R/W − R/W − − RUN R/W UPDT R/W − − ST R/W 000-00-0B bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 初期値 − − − D20 D19 D18 D17 D16 ---XXXXXB R/W R/W R/W R/W WTCRL WTBR2 − − − R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D15 R/W D14 R/W D13 R/W D12 R/W D11 R/W D10 R/W D9 R/W D8 R/W XXXXXXXXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W XXXXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 H3 H2 H1 H0 ---XXXXXB WTBR1 WTBR0 WTHR − − − H4 − − − R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − M5 R/W M4 R/W M3 R/W M2 R/W M1 R/W M0 R/W --XXXXXXB WTMR − − R/W :リード / ライト可能 X :不定 ( 続く ) 556 第 21 章 リアルタイムクロック ( 続き ) WTSR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 S4 S3 S2 S1 S0 --XXXXXXB − − S5 − − R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 DBL ------00B R/W WTDBL − − − − − − WTCK − − − − − − R/W R/W :リード / ライト可能 X :不定 557 第 21 章 リアルタイムクロック 21.2 ブロックダイヤグラム リアルタイムクロックのブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 発振 クロック 1/2クロック 分周器 21ビット プリスケーラ WOT CO EN サブセカンド レジスタ UPDT ST 秒カウンタ CI EN LOAD 分カウンタ CO 6ビット INTE0 INT0 INTE1 時カウンタ CO 6ビット 秒/分/レジスタ INT1 INTE2 CO 5ビット INT2 INTE3 INT3 IRQ 558 第 21 章 リアルタイムクロック 21.3 レジスタの詳細 リアルタイムクロックのレジスタ構成の詳細について説明します。 ■ タイマ制御レジスタ (WTCR) WTCRH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 INTE3 R/W INT3 R/W INTE2 R/W INT2 R/W INTE1 R/W INT1 R/W INTE0 R/W INT0 R/W 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R/W − R/W − R/W − − RUN R/W UPDT R/W − − ST R/W 000-00-0B WTCRL R/W :リード / ライト可能 [bit15 ∼ bit8] INT3 ∼ INT0, INTE3 ∼ INTE0:割込みフラグおよび割込み許可ビット INT0 から INT3 までは , 割込みフラグです。このフラグは秒カウンタ , 分カウンタ , および時カウンタがそれぞれオーバフローした場合に設定されます。INT ビットの 設定を , 対応する INTE ビットが "1" の場合に行うと , 割込み信号を生成します。本 フラグは , 秒 / 分 / 時 / 日の単位で割込み信号を生成するように設計されています。 INT ビットに "0" を書き込むとフラグはクリアされ , "1" の書込みは無効です。INT ビットで動作するリードモディファイライト系命令はすべて , "1" を読み出します。 割込み 要因 割込み許可ビット 割込みフラグ 秒割込み プリスケーラオーバフロー INTE0 INT0 分割込み 秒カウンタオーバフロー INTE1 INT1 時割込み 分カウンタオーバフロー INTE2 INT2 日割込み 時カウンタオーバフロー INTE3 INT3 [bit7 ∼ bit5] Reserved:予約ビット 予約ビットです。 必ず , "000B" を設定してください。 [bit3] RUN:フラグ 本ビットは読出しのみ可能です。読出し値が "1" の場合 , RTC モジュールが動作中 であることを示しています。 [bit2] UPDT:更新ビット UPDT ビットは , 秒 / 分 / 時カウンタ値の修正用です。 カウンタ値を修正するには , 秒 / 分 / 時レジスタに修正データを書き込みます。次に UPDT ビットを "1" に設定します。レジスタ値は , 21 ビットプリスケーラからの CO 信号で ( 書き込んだ ) , 次のサイクルでカウンタにロードされます。UPDT ビットは , 559 第 21 章 リアルタイムクロック カウンタ値が更新されると , ハードウェアによりリセットされます。ただし , ソフト ウェアによる設定動作とハードウェアによるリセット動作が同時に発生した場合 , UPDT ビットはリセットされません。 これは , ペリフェラルクロック (CLKP) が RTC クロック ( 発振クロック ) より高い周 波数の場合のみ発生します。 UPDT ビットへの "0" 書込みは無効です。リードモディファイライト系命令では , "0" が読み出されます。 [bit0] ST:スタートビット ST ビットを "1" に設定すると , ウォッチタイマはレジスタから 秒 / 分 / 時値をロー ドし , 動作を開始します。"0" にリセットした場合 , カウンタおよびプリスケーラは すべて "0" にリセットされ停止します。 本ビットは , カウンタ値の更新にも使用できます。ST ビットを "0" に設定し , RUN ビットが "0" になるまで待ってからカウンタ値を更新し , ST ビットを "1" に設定し ます。 560 第 21 章 リアルタイムクロック ■ サブセカンドレジスタ WTBR2 bit23 bit22 bit21 bit20 bit19 bit18 − − − D20 D19 D18 R/W R/W bit17 bit16 初期値 D17 D16 ---XXXXXB R/W R/W − − − R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D15 R/W D14 R/W D13 R/W D12 R/W D11 R/W D10 R/W D9 R/W D8 R/W XXXXXXXXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 XXXXXXXXB WTBR1 WTBR0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 X :不定 [bit20 ∼ bit0] D20 ∼ D0 サブセカンドレジスタは , 21 ビットプリスケーラのリロード値を格納します。この 値は , リロードカウンタが "0" になるとリロードされます。21 ビットプリスケーラ は , 新旧のデータバイトを結合した値をロードしてしまう場合があるので , 3 バイト すべてを修正する場合は , 書込み命令中にリロード動作が行われていないことを確 認してください。サブセカンドレジスタの更新は ST ビットが "0" の期間に実行す るようにしてください。サブセカンドレジスタが "0" に設定されている期間は , 21 ビットプリスケーラの動作は停止します。 この 2 つのプリスケーラの組み合わせで , 正確に 1 秒のクロック信号を提供するこ とができます。 以下にサブセカンドレジスタの設定値例を示します。 入力クロック周波数 WTBR 設定値 (10 進 ) WTBR 設定値 (16 進 ) 4MHz 1999999 1E847F 100kHz 49999 00C34F 32kHz 15999 003E7F <注意事項> サブセカンドレジスタは21 ビットであるため, 1秒を生成できる周波数の上限は4.19MHz となります。RTC モジュールへ供給するクロックとしてメインクロックを選択される場 合は , メインクロック周波数を 4MHz としてください。 561 第 21 章 リアルタイムクロック ■ 時 / 分 / 秒レジスタ WTHR bit15 bit14 bit13 bit12 bit11 bit10 − − − H4 H3 H2 R/W R/W bit9 bit8 初期値 H1 H0 ---XXXXXB R/W R/W − − − R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − − − M5 R/W M4 R/W M3 R/W M2 R/W M1 R/W M0 R/W --XXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − − − S5 R/W S4 R/W S3 R/W S2 R/W S1 R/W S0 R/W --XXXXXXB WTMR WTSR R/W :リード / ライト可能 X :不定 時 / 分 / 秒レジスタは , 時間情報を格納します。時 / 分 / 秒の 2 進表記です。 本レジスタを読み出すと , カウンタ値のみを戻します。レジスタは書込み値と結合され , その書込みデータは , UPDT ビットを "1" に設定した後にカウンタにロードされます。 レジスタは 3 バイト存在するため , 出力値に矛盾がないことを確認してください。つま り , 出力値「1 時間 , 59 分 , 59 秒」は「0 時間 , 59 分 , 59 秒」, または「2 時間 , 59 分 , 59 秒」である可能性があります。 カウンタのオーバフローが発生したときに読出しを行うと , 誤った値を読み出すこと があります。このため , 読出しは RTC 割込みを使用するか , 以下の手順に従ってくだ さい。 • RTC の割込みフラグ (INT) のクリア • レジスタ読出し • 読出し中にタイムオーバフローが発生し , フラグが読出し後に設定された場合は再 度読出しを行ってください。 562 第 21 章 リアルタイムクロック ■ クロック禁止レジスタ WTDBL bit7 bit6 bit5 bit4 bit3 bit2 bit1 − − − − − − − − − − − − bit0 初期値 WTCK DBL ------00B R/W R/W R/W :リード / ライト可能 [bit1] WTCK:クロック選択 本ビットにより , サブセカンドレジスタの入力クロックを選択することができま す。初期値は "0" でメイン発振 がクロックソースとして選択されています。"1" を 設定するとサブ発振がクロックソースとして選択されます。 本ビットは読出しおよび書込み可能です。 <注意事項> 32kHz 発振がサポートされていない品種では , WTCK ビットは必ず "0" に設定してくださ い。 メインクロック周波数が 4MHz より高速の場合は "1" を設定し , サブクロックを選択する ようにしてください。 [bit0] DBL:クロック禁止 本ビットを "1" に設定すると , RTC モジュールのクロックは停止します。通常動作 時はこのビットを "0" に設定してください。本ビットは "0" に初期化されます。読出 し , および書込みが可能です。 563 第 21 章 リアルタイムクロック 21.4 クロック補正ユニット クロック補正ユニットを使用することにより , メイン発振クロックを基準として , RTC モジュールへ供給されるサブ発振クロックを補正することができます。 ■ クロック補正ユニット クロック補正ユニットの使用により , サブ発振によって生成された信号をメイン発振 により , ソフトウェアでの測定が可能となります。 ソフトウェアによる処理とこのユニットの使用によって , サブ発振の精度をメイン発 振の精度並みに向上させることができます。クロック補正ユニットによる測定結果は ソフトウェアにより処理でき , RTC モジュールに必要な設定を得ることができます。 このユニットにはサブクロックで動作するタイマとメインクロックで動作するタイマ があり , サブタイマがメインタイマをトリガすることによってメインタイマの値がレジ スタへ格納されます。レジスタに格納された値はソフトウェアで処理され , RTC モ ジュールに必要な設定を算出することができます。 ■ 測定処理タイミング 図 21.4-1 測定処理のタイミング 32 kHz STRT(CLKP) STRTS(32 kHz) RUN(32 kHz) RUWS(4 MHz) 32 kHzカウンタ (16ビット) CUTD CUTD-1 2 1 4 MHzカウンタ (24ビット) 旧CUTR 0 CUTD 新CUTR READY(32 kHz) READYPUSE(CLKP) INT(CLKP) ■ クロック クロック補正ユニットは , メインクロック OSC4, サブクロック OSC32, ペリフェラルク ロック CLKP の 3 つのクロックにより動作します。それぞれのクロック領域は同期化 回路により同期されます。 これらのクロックは以下を満たすようにしてください。 • クロック比 TOSC32 > 2 × TOSC4 + 3 × TCLKP TOSC4 < 1/2 × TOSC32 − 3/2 × TCLKP TCLKP < 1/3 × TOSC32 − 2/3 × TOSC4 564 第 21 章 リアルタイムクロック 21.5 クロック補正ユニットのレジスタ クロック補正ユニットのレジスタ一覧を示し , 各レジスタの機能を詳細に説明します。 ■ クロック補正ユニットのレジスタ一覧 CUCR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R − R − R STRT R/W − R − R/W INT R/W INTEN R/W 00000000B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 10000000B CUTDH TDD15 TDD14 TDD13 TDD12 TDD11 TDD10 TDD9 TDD8 R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TDD7 TDD6 TDD5 TDD4 TDD3 TDD2 TDD1 TDD0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 00000000B CUTDL CUTR1H − R − R − R − R − R − R − R − R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CUTR1L TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16 R R R R R R R R 初期値 00000000B CUTR2H bit15 bit14 bit13 bit12 bit11 bit10 TDR15 TDR14 TDR13 TDR12 TDR11 TDR10 bit9 bit8 初期値 TDR9 TDR8 00000000B R R R R R R R R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TDR7 TDR6 TDR5 TDR4 TDR3 TDR2 TDR1 TDR0 00000000B R R R R R R R R CUTR2L R/W :リード / ライト可能 R :リードオンリ 565 第 21 章 リアルタイムクロック 21.5.1 補正ユニット制御レジスタ (CUCR) 補正ユニット制御レジスタ (CUCR) には以下の機能があります。 • 補正測定の開始 / 停止 • 割込みの許可 / 禁止 • 補正測定終了表示 ■ 補正ユニット制御レジスタ (CUCR) CUCR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R − R − R STRT R/W − R − R/W INT R/W INTEN R/W 00000000B R/W :リード / ライト可能 R :リードオンリ [bit7 ∼ bit5] Reserved:予約ビット 予約ビットです。 読出し値は常に "0" です。 [bit4] STRT:補正開始ビット 0 補正停止 , 補正ユニット停止 [ 初期値 ] 1 補正開始 STRT ビットがソフトウェアにより "1" に設定されると補正が開始されます。サブタ イマはサブタイマデータレジスタに設定された値からカウントダウンを開始し , メイ ンタイマは "0" からのカウントアップを開始します。 サブタイマが "0" に達すると , このビットは自動的に "0" にリセットされます。 補正処理中にソフトウェアによりこのビットに "0" が書き込まれると補正は直ちに 停止します。 ソフトウェアによる "0" 書込みと , ハードウェアによる "0" へのリセッ トが同時に発生した場合は , ハードウェアの動作が優先されます。すなわち , 補正 が完了し , それを示す INT ビットが "1" に設定されます。補正中にこのビットへの "1" 書込みは動作に影響を及ぼしません。 [bit3] Reserved:予約ビット 予約ビットです。 読出し値は常に "0" です。 [bit2] Reserved:予約ビット 予約ビットです。 必ず "0" を設定してください。 566 第 21 章 リアルタイムクロック [bit1] INT:割込みフラグビット 0 補正中または補正ユニット停止 [ 初期値 ] 1 補正完了 このビットは補正の終了を示します。補正開始後 , サブタイマが "0" に達すると , メ インタイマデータレジスタはメインタイマの最終値を格納し , INT ビットが "1" に設 定されます。 このビットに対してリードモディファイライト系命令を実行すると "1" が読み出さ れます。"0" 書込みにより INT ビットはクリアされます。"1" 書込みは無効です。 割込みフラグ INT は , ハードウェアではリセットされないので , 補正を新たに開始 する場合はソフトウェアでリセットしてください。 [bit0] INTEN:割込み許可ビット 0 割込み禁止 [ 初期値 ] 1 割込み許可 このビットは割込み許可ビットです。このビットが "1" に設定され bit1 の INT ビッ トが補正完了により設定されると , 補正ユニットは CPU へ割込み信号を送信しま す。INT ビットは INTEN ビットの設定値によらず割込み禁止の場合 (INTEN=0) で あっても補正が完了すると自動的にセットされます。 このビットは読出しおよび書込みが可能です。 567 第 21 章 リアルタイムクロック 21.5.2 サブタイマデータレジスタ (CUTD) サブタイマデータレジスタ (CUTD) は , 補正期間 ( サブリロード値 ) を決定する値を 保持します。 ■ サブタイマデータレジスタ (CUTD) CUTDH bit15 bit14 bit13 bit12 bit11 bit10 TDD15 TDD14 TDD13 TDD12 TDD11 TDD10 R/W R/W R/W R/W R/W R/W bit9 bit8 初期値 TDD9 R/W TDD8 R/W 10000000B CUTDL bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TDD7 R/W TDD6 R/W TDD5 R/W TDD4 R/W TDD3 R/W TDD2 R/W TDD1 R/W TDD0 R/W 00000000B R/W :リード / ライト可能 サブタイマデータレジスタの初期値は "8000H" となっており , 32.768kHz の場合での 1 秒の測定時間に対応しています。 このレジスタへの書込みは補正が停止中 (STRT=0) に行ってください。 サブタイマデータレジスタは補正時間に指定される値を格納します。補正が開始され ると設定値がサブタイマにロードされ , タイマは "0" に達するまでカウントダウンを行 います。 サブタイマデータレジスタに "0000H" を設定するとアンダフローが発生し , 測定値は (FFFFH + 1) × TOSC32 となります。 測定時間を 1 秒に設定するためには設定値を "8000H" としてください。測定結果の理 想値 (OSC32=32.768kHz, OSC4=4.00MHz の場合 ) を表 21.5-1 に示します。 表 21.5-1 理想測定結果 568 補正時間 CUTD 値 CUTR 値 2.00s 0000H 7A1200H 1.75s E000H 6ACFC0H 1.50s C000H 5B8D80H 1.25s A000H 4C4B40H 1.00s 8000H 3D0900H 0.75s 6000H 2DC6C0H 0.50s 4000H 1E8480H 0.25s 2000H 0F4240H 第 21 章 リアルタイムクロック STRT ビットへの "1" 書込みから補正完了によるハードウェアでの STRT のリセットま での処理時間は実際の補正時間より長くなります。これは補正ユニットが複数のク ロックを使用し , その同期化のためです。 • 処理時間 < (CUTD + 3) × TOSC32 • 補正時間 = CUTD × TOSC32 569 第 21 章 リアルタイムクロック 21.5.3 メインタイマデータレジスタ (CUTR) メインタイマデータレジスタ (CUTR) は補正結果の値 (4MHz カウンタ ) を保持しま す。 ■ メインタイマデータレジスタ (CUTR) 補正の終了は CUCR レジスタの INT ビットと STRT ビットにより示されます。 補正終了により INT ビットが "1", STRT ビットが "0" に設定されると CUTR の値が有 効となります。 <参考> 補正中 (STRT=1) は CUTR レジスタの値も更新され続け , CUTR レジスタの読出し値も補 正中のデータとなります。 CUTR1H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R − R − R − R − R − R − R − R 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CUTR1L TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16 00000000B R R R R R R R R bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 00000000B CUTR2H TDR15 TDR14 TDR13 TDR12 TDR11 TDR10 TDR9 TDR8 R R R R R R R R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 TDR7 R TDR6 R TDR5 R TDR4 R TDR3 R TDR2 R TDR1 R TDR0 R 00000000B CUTR2L R :リードオンリ メインタイマデータレジスタは補正結果を格納します。補正が開始されるとメインタ イマは "0" からカウントアップを開始します。サブタイマが "0" に達するとメインタイ マはカウントを停止し , ソフトウェアにより次の補正がトリガ (STRT=1) されるまでレ ジスタは補正結果を保持します。 570 第 21 章 リアルタイムクロック 21.6 クロック補正ユニットの使用について 補正の精度 , 測定時間について説明します。 ■ サブタイマデータレジスタの設定 サブタイマデータレジスタの設定は以下の方法で計算することができます。 ここではメイン発振周波数を 4MHz, サブ発振周波数を 32.768kHz とします。 補正時間を 1 秒とする場合は , サブタイマデータレジスタに "8000H"(=32768D) を設定 します。これはサブ発振クロックの 32768 周期を意味します。 この設定により補正結果としてメインタイマデータレジスタに約 "3D0900H" の値が格 納されます。これは 4MHz 発振の 4000000 周期を意味します。 ■ 補正の精度 補正精度は , メインタイマの入力クロック周波数と補正時間に依存します。メインタイ マの最大誤差は± 1 です。入力クロック周波数が 4MHz, 補正時間が 1 秒である場合で の補正精度は以下の方法で計算されます。 0.25µs ( 入力クロック周期 ) /1s ( 補正時間 ) = 0.25ppm 571 第 21 章 リアルタイムクロック 572 第 22 章 A/D コンバータ A/D コンバータの概要 , レジスタの構成 / 機能 , お よび動作について説明します。 22.1 A/D コンバータの概要 22.2 A/D コンバータのブロックダイヤグラム 22.3 A/D コンバータのレジスタ 22.4 A/D コンバータの動作 573 第 22 章 A/D コンバータ 22.1 A/D コンバータの概要 A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。 ここでは , A/D コンバータの概要について説明します。 ■ A/D コンバータの特長 A/D コンバータの特長は , 以下のとおりです。 • 変換時間:1 チャネルあたり最小 3.0µS • サンプル & ホールド回路付き逐次比較変換方式を採用 • 10 ビットの分解能 (8/10 ビット切換え可能 ) • アナログ入力は 24 チャネルからソフトウェアで選択できます。 • 変換モード - シングル変換モード: 1 チャネルを選択変換 - スキャン変換モード: 連続した複数のチャネルを変換。最大 24 チャネルプログ ラム可能 - 連続変換モード: 指定チャネルを繰り返し変換 - 停止変換モード: 指定チャネルを変換後, 一時停止して次の起動が掛かるま で待機 ( 変換開始の同期が可能 ) 。 • 割込み要求 - A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させること ができます。 • 起動要因を選択可能 - 起動要因は , ソフト , 外部トリガ ( 立下りエッジ ) , またはタイマ ( 立上りエッジ ) があります。 ■ 入力インピーダンス A/D コンバータのサンプリング回路は次の等価回路で表されます。 図 22.1-1 入力インピーダンス Rin 13.6kΩ(AVCC≧4.0V) 2.52kΩ(AVCC≧4.5V) Rext アナログ信号 ANx アナログスイッチ Cin:最大 10.7pF ADC 最大サンプリング時間(Tsamp)を超えてRextを設定しないでください。. Rext = Tsamp/(7*Cin) - Rin 574 第 22 章 A/D コンバータ 22.2 A/D コンバータのブロックダイヤグラム 図 22.2-1 に A/D コンバータのブロックダイヤグラムを示します。 ■ A/D コンバータのブロックダイヤグラム 図 22.2-1 A/D コンバータのブロックダイヤグラム AN0 AN1 AN2 AN3 MPX AVCC AVSS D/Aコンバータ AN4 AN5 AN6 AN7 AN8 比較器 内部データバス サンプル& ホールド回路 デコーダ AN11 AN12 AN13 AN14 AN15 AN16 AN17 AN18 AN19 AN20 AN21 AN22 AN23 逐次比較レジスタ 入力回路 AN9 AN10 AVRH/L データレジスタ A/D制御レジスタ0 A/D制御レジスタ1 ADCS0/ADCS1 動作クロック ATG端子 16ビット リロードタイマ CLKP プリスケーラ 575 第 22 章 A/D コンバータ 22.3 A/D コンバータのレジスタ A/D コンバータで使用するレジスタの構成および機能について説明します。 ■ A/D コンバータのレジスタの概要 A/D コンバータのレジスタには , 以下の 6 種類があります。 • アナログ入力許可レジスタ (ADER) • コントロールステータスレジスタ (ADCS) • データレジスタ (ADCR) • 変換時間設定レジスタ (ADCT) • 開始チャネル設定レジスタ (ADSC) • 終了チャネル設定レジスタ (ADEC) ■ レジスタ一覧 ADERH ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADE23 ADE22 ADE21 ADE20 ADE19 ADE18 ADE17 ADE16 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B ADERL ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 ADE15 ADE14 ADE13 ADE12 ADE11 ADE10 R/W R/W R/W R/W R/W R/W bit9 bit8 初期値 ADE9 R/W ADE8 R/W 00000000B ADERL ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 BUSY INT INTE PAUS STS1 STS0 STRT reserved 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MD1 R/W MD0 R/W S10 R/W ACH4 R ACH3 R ACH2 R ACH1 R ACH0 R 00000000B ADCS1 ADCS0 R/W :リード / ライト可能 R :リードオンリ ( 続く ) 576 第 22 章 A/D コンバータ ( 続き ) ADCR1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 D8 R ------XXB − − − − − − − − − − − − D9 R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D7 R D6 R D5 R D4 R D3 R D2 R D1 R D0 R XXXXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CT5 CT4 CT3 CT2 CT1 CT0 ST9 ST8 00010000B R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ST7 R/W ST6 R/W ST5 R/W ST4 R/W ST3 R/W ST2 R/W ST1 R/W ST0 R/W 00101100B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − − ANS4 ANS3 ANS2 ANS1 ANS0 ---00000B R/W R/W R/W R/W ADCR0 ADCT1 ADCT0 ADSCH − − − R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − − − − − ANE4 R/W ANE3 R/W ANE2 R/W ANE1 R/W ANE0 R/W ---00000B ADECH R/W :リード / ライト可能 R :リードオンリ X :不定 577 第 22 章 A/D コンバータ 22.3.1 アナログ入力許可レジスタ (ADER) アナログ入力に使用される端子に対応する ADER ビットに常に "1" を書き込んでく ださい。 ■ A/D 許可レジスタ (ADER) ADERH ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADE23 ADE22 ADE21 ADE20 ADE19 ADE18 ADE17 ADE16 R/W 初期値 00000000B R/W R/W R/W R/W R/W R/W R/W bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 00000000B ADERL ( 上位バイト ) bit15 ADE15 ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8 R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ADE7 R/W ADE6 R/W ADE5 R/W ADE4 R/W ADE3 R/W ADE2 R/W ADE1 R/W ADE0 R/W 00000000B R/W ADERL ( 下位バイト ) R/W :リード / ライト可能 [ADE23 ∼ ADE0] : A/D 入力許可 ADE 機能 0 汎用ポート [ 初期値 ] 1 アナログ入力 リセット時は "00000000H" に初期化されます 開始チャネル , 終了チャネルのアナログ入力許可レジスタには必ず "1" を書き込ん でください。 578 第 22 章 A/D コンバータ A/D コントロールステータスレジスタ (ADCS) 22.3.2 A/D コントロールステータスレジスタ (ADCS) は , A/D コンバータの制御およびス テータス表示を行います。A/D 変換中には ADCS レジスタの更新を行わないでくだ さい。 ■ A/D コントロールステータスレジスタ 1 (ADCS1) ADCS1 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 BUSY R/W INT R/W INTE R/W PAUS R/W STS1 R/W STS0 R/W STRT R/W reserved 00000000B R/W R/W :リード / ライト可能 [bit7] BUSY (busy flag and stop) BUSY 機能 読出し A/D コンバータ動作表示用のビットです。 A/D 変換起動でセットされ最終チャネルの変換終了でクリアされま す。 書込み A/D 動作中に本ビットに "0" を書き込むと強制的にクリアされます。 連続 , 停止モード時の強制終了に利用します。 動作表示用のビットに "1" を書き込むことはできません。 リードモディファイライト系命令では "1" が読まれます。 単発モードでは設定された最終チャネルの A/D 変換終了でクリアされます。 連続 , 停止モードでは "0" 書込みで停止するまでクリアされません。 リセット時にこのビットは "0" に初期化されます。 <注意事項> 強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 [bit6] INT (interrupt) 変換データが ADCR に書き込まれるとセットされます。 bit5 (INTE) が "1" のときに本ビットがセットされると割込み要求が発生します。 クリアは "0" 書込みで行われます。 リセット時にこのビットは "0" に初期化されます。 DMA を使用した場合は DMA 転送終了時にこのビットはクリアされます。 579 第 22 章 A/D コンバータ <注意事項> INT ビットの "0" 書込みクリアは A/D 停止中に行ってください。 [bit5] INTE (interrupt enable) このビットは変換終了による割込みの許可・不許可を指定します。 INTE 機能 0 割込み禁止 [ 初期値 ] 1 割込み許可 リセット時にこのビットは "0" に初期化されます。 [bit4] PAUS (A/D converter pause) A/D 変換動作が一時的に停止した場合にセットされます。 A/D 変換結果を格納するレジスタが 1 つのため連続で変換した場合 , 変換結果を DMA で転送しなければ前データが壊れてしまいます。 これを保護するためデータレジスタの内容を DMA で転送しなければ次の変換デー タが格納されないようになっています。この間 A/D 変換動作は停止します。DMA で転送を終了すると A/D は変換を再開します。 このビットは DMA を使用したときのみ有効です。 -このビットのクリアは "0" 書込みでのみ可能です。 (DMA 転送終了ではクリアされません。) -ただし , DMA 転送待ち状態の時はクリアできません。 -変換データの保護機能に関しては「22.4 A/D コンバータの動作」を参照してく ださい。 -リセット時にこのビットは "0" に初期化されます。 [bit3, bit2] STS1, STS0 (Start source select) リセット時にこれらのビットは "00B" に初期化されます。 このビットの設定により A/D 起動要因を選択します。 STS1 STS0 0 0 ソフト起動 [ 初期値 ] 0 1 外部端子トリガでの起動とソフト起動 1 0 16 ビットリロードタイマでの起動とソフト起動 1 1 外部端子トリガ , 16 ビットリロードタイマでの起動とソフト起動 機能 2 つ以上の起動要因が許されているモードでは最初に生じた要因により A/D 変換が 起動されます。 起動要因の設定は書き換えられると直ちに変わりますので , A/D 変換中に書き換え るときには注意してください。 580 第 22 章 A/D コンバータ -外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" の ときに本ビットを書き換えて外部端子トリガ起動に設定するとA/Dが起動する 場合があります。 -タイマ選択時は , 16 ビットリロードタイマ 2 が選択されます。 [bit1] STRT (Start) このビットに "1" を書き込むことにより A/D を起動 ( ソフト起動 ) します。 再起動をかけるときは , 再び "1" を書き込んでください。 リセット時にこのビットは "0" に初期化されます。 連続モード時および停止モード時は動作機能上 , 再起動はかかりません。"1" を書き 込む前に BUSY ビットをチェックしてください。(BUSY ビットをクリアしてから起 動してください。) 強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 [bit0] 予約ビット このビットには必ず "0" を設定してください。 581 第 22 章 A/D コンバータ ■ A/D コントロールステータスレジスタ 0 (ADCS0) ADCS0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MD1 R/W MD0 R/W S10 R/W ACH4 R ACH3 R ACH2 R ACH1 R ACH0 R 00000000B R/W :リード / ライト可能 R :リードオンリ [bit7, bit6] MD1, MD0 (A/D converter mode set) MD1, MD0 ビットは , 動作モードを設定します。 リセット時にはこれらのビットは "00B" に初期化されます。 MD1 MD0 0 0 単発モード , 動作中の再起動は不可能 [ 初期値 ] 0 1 単発モード , 動作中の再起動は不可能 1 0 連続モード , 動作中の再起動は不可能 1 1 停止モード , 動作中の再起動は不可能 動作モード • 単発モード ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変換 を連続して行いすべてのチャネルの変換が終了すると停止します。 • 連続モード ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変換 を繰り返し行います。 • 停止モード ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで 1 チャネ ルごとに A/D 変換を行い一時停止します。変換再開は起動要因発生によって行 われます。 • 連続モード , 停止モードで A/D 変換を起動すると , BUSY ビットで強制終了する まで変換動作を続けます。 • 強制終了は BUSY ビットに "0" を書き込むことにより行われます。 • 強制終了後の起動時は ANS4 ∼ ANS0 の設定チャネルから変換されます。 • 単発 , 連続 , 停止の各モードでの再起動不可能はタイマ , 外部トリガ , ソフトすべ ての起動に適用されます。 <注意事項> A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動 ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能です。再 起動は下記の手順で行ってください。 (1) INT ビットを "0" にクリアします。 (2) STRT ビットに "1" を , INT ビットに "0" を同時に書き込みます。 582 第 22 章 A/D コンバータ [bit5] S10 このビットは変換の分解能を指定します。"0" にセットされると 10 ビットの A/D 変 換が行われます。そのほかの場合には 8 ビットの A/D 変換が行われてその結果は ADCR0 に記憶されます。 リセット時にこのビットは "0" に初期化されます。 [bit4 ∼ bit0] ACH4 ∼ ACH0 (Analog convert select channel) これらのビットにより現在 A/D 変換中のチャネルを表します。 リセット時にこれらのビットは "00000B" に初期化されます。 ACH4 ACH3 ACH2 ACH1 ACH0 変換チャネル 0 0 0 0 0 AN0 0 0 0 0 1 AN1 0 0 0 1 0 AN2 0 0 0 1 1 AN3 0 0 1 0 0 AN4 0 0 1 0 1 AN5 0 0 1 1 0 AN6 0 0 1 1 1 AN7 0 1 0 0 0 AN8 0 1 0 0 1 AN9 0 1 0 1 0 AN10 0 1 0 1 1 AN11 0 1 1 0 0 AN12 0 1 1 0 1 AN13 0 1 1 1 0 AN14 0 1 1 1 1 AN15 1 0 0 0 0 AN16 1 0 0 0 1 AN17 1 0 0 1 0 AN18 1 0 0 1 1 AN19 1 0 1 0 0 AN20 1 0 1 0 1 AN21 1 0 1 1 0 AN22 1 0 1 1 1 AN23 583 第 22 章 A/D コンバータ ACH 機能 読出し A/D 変換 (BUSY ビット =1) の間 , 現在の変換チャネルを本ビット 群で表します。 強制終了 (BUSY ビット =0) により停止した場合は変換が停止され たチャネルを表します。 書込み これらのビットへの書込みは無効です。 <注意事項> 表中に記された設定値以外のレジスタへの書込みは禁止です。 584 第 22 章 A/D コンバータ 22.3.3 データレジスタ (ADCR1, ADCR0) データレジスタ (ADCR0, ADCR1) は , 変換の結果として生成されたデジタル値を記 憶するために使用されるものです。ADCR0 は下位 8 ビットを記憶し , ADCR1 は変 換結果の最上位の 2 ビットを記憶します。これらのレジスタ値は変換が完了するた びに書き換えられます。通常は最後の変換値がこのレジスタに記憶されます。 ■ データレジスタ (ADCR1, ADCR0) ADCR1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − − − − − D9 D8 ------XXB R − − − − − − R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 D7 R D6 R D5 R D4 R D3 R D2 R D1 R D0 R XXXXXXXXB ADCR0 R X :リードオンリ :不定 ADCR1 の bit15 ∼ bit10 からは常に "000000B" が読み込まれます。 変換データの保護機能を利用することができます。 「22.4 A/D コンバータの動作」を参 照してください。 585 第 22 章 A/D コンバータ 変換時間設定レジスタ (ADCT) 22.3.4 A/D 変換時間設定レジスタ (ADCT) はアナログ入力のサンプリング時間および比較 時間を制御します。ADCT レジスタの設定で A/D の変換時間を設定します。 ADCT レジスタは A/D 変換動作中に書換えないようにしてください。 ■ 変換時間設定レジスタ ADCT1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CT5 R/W CT4 R/W CT3 R/W CT2 R/W CT1 R/W CT0 R/W ST9 R/W ST8 R/W 00010000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 00101100B ADCT0 ST7 ST6 ST5 ST4 ST3 ST2 ST1 ST0 R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード / ライト可能 [bit15 ∼ bit10] CT5 ∼ CT0 (A/D comparison time set) これらのビットの設定により比較操作時間のクロック分周値を指定します。 CT5 ∼ CT0 の設定を "000001B" にすると分周なし =CLKP になります。 CT5 ∼ CT0 の設定を "000000B" には設定しないでください。 リセットによりこれらのビットは "000100B" に初期化されます。 比較操作時間 (Compare Time) = CT 設定値 × CLKP 周期 × 10 + (4 × CLK 同期 ) <注意事項> 比較操作時間は 500 µs を超えないように設定してください。最小時間は 1.375 µs です。 [bit9 ∼ bit0] ST9 ∼ ST0 (A/D input sampling time set) これらのビットの設定によりアナログ入力のサンプリング時間を指定します。 リセットによりこれらのビットは "0000101100B" に初期化されます。 サンプリング時間 (Sampling Time) = ST 設定値 × CLKP 周期 必要サンプリング時間および ST 設定時間の算出は以下の計算で行ってください。 必要サンプリング時間 (Tsamp) = (Rext + Rin) × Cin × 7 ST9 ∼ ST0 設定値 = 必要サンプリング時間 (Tsamp) ÷ CLKP 周期 586 第 22 章 A/D コンバータ ST の設定値は A/D のサンプリング時間が必要サンプリング時間以上になるように 設定してください。 例 . CLKP=32 MHz, AVCC ≧ 4.5V, Rext = 200 kΩ の場合 Tsamp = (200 × 103 + 2.52 × 103) × 10.7 × 10 − 12 × 7 = 15.17 µs ST = 15.17 − 6 ÷ 31.25 − 9 = 485.44 → 486 ("0111100110B") 以上を設定してください。 <注意事項> AVCC が 4.5 V 未満の時には , サンプリング時間を 1.2 µs 以下にしないでください。 Rext の値により必要サンプリング時間が決まりますので , 変換時間を考慮して Rext を決 定してください。 ■ 推奨設定値 最適な変換時間を達成するために , 以下の設定値が推奨されます。 (AVCC ≧ 4.5 V, Rext ≦ 15 kΩ) CLKP (MHz) 比較操作時間 (CT5 ∼ CT0) サンプリング時間 (ST9 ∼ ST0) ADCT 設定値 変換時間 (µs) 16 000010B 0000010110B 0816H 1.375 + 1.500 = 2.875 24 000011B 0000100001B 0C21H 1.375 + 1.417 = 2.792 32 000100B 0000101100B 102CH 1.375 + 1.375 = 2.750 587 第 22 章 A/D コンバータ 22.3.5 開始チャネル設定レジスタ (ADSCH) 終了チャネル設定レジスタ (ADECH) A/D 変換の開始チャネルと終了チャネルの設定レジスタです。 ADSCH, ADECH は A/D 変換中に書き換えないでください。 ■ 開始チャネル設定レジスタ (ADSCH)・終了チャネル設定レジスタ (ADECH) ADSCH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − − − − − − ANS4 R/W ANS3 R/W ANS2 R/W ANS1 R/W ANS0 R/W ---00000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 ---00000B ADECH − − − ANE4 ANE3 ANE2 ANE1 ANE0 − − − R/W R/W R/W R/W R/W R/W :リード / ライト可能 これらのビットにより A/D 変換の開始チャネルと終了チャネルを設定します。 同一のチャネルが ANS4 ∼ ANS0 および ANE4 ∼ ANE0 に書き込まれると , 変換は 1 つ のチャネルに対してのみ行われます ( シングルチャネル変換 ) 。 連続モード , 停止モードを設定している場合はこれらのビットで設定されたチャネル の変換が終わると ANS4 ∼ ANS0 で設定された開始チャネルに戻ります。 設定チャネルが ANS > ANE の場合は ANS から変換が始まり 23 チャネルまで変換する と 0 チャネルに戻り ANE まで変換します。 リセットによりこれらのビットは ANS=00000B, ANE=00000B に初期化されます。 例として , チャネル設定 ANS=6 チャネル , ANE=3 チャネル で単発モード時 , 変換は次 の順序で行われます。 6 チャネル ⇒ 7 チャネル ⇒ 8 チャネル ⇒ ... ⇒ 22 チャネル ⇒ 23 チャネル ⇒ 0 チャネル ⇒ 1 チャネル ⇒ 2 チャネル ⇒ 3 チャネル 588 第 22 章 A/D コンバータ [bit12 ∼ bit8] ANS4 ∼ ANS0 (A/D start channel set) [bit4 ∼ bit0] ANE4 ∼ ANE0 (A/D end channel set) ANS4 ANE4 ANS3 ANE3 ANS2 ANE2 ANS1 ANE1 ANS0 ANE0 開始 / 終了チャネル 0 0 0 0 0 AN0 0 0 0 0 1 AN1 0 0 0 1 0 AN2 0 0 0 1 1 AN3 0 0 1 0 0 AN4 0 0 1 0 1 AN5 0 0 1 1 0 AN6 0 0 1 1 1 AN7 0 1 0 0 0 AN8 0 1 0 0 1 AN9 0 1 0 1 0 AN10 0 1 0 1 1 AN11 0 1 1 0 0 AN12 0 1 1 0 1 AN13 0 1 1 1 0 AN14 0 1 1 1 1 AN15 1 0 0 0 0 AN16 1 0 0 0 1 AN17 1 0 0 1 0 AN18 1 0 0 1 1 AN19 1 0 1 0 0 AN20 1 0 1 0 1 AN21 1 0 1 1 0 AN22 1 0 1 1 1 AN23 1 1 0 0 0 設定禁止 1 1 0 0 1 設定禁止 1 1 0 1 0 設定禁止 1 1 0 1 1 設定禁止 1 1 1 0 0 設定禁止 1 1 1 0 1 設定禁止 1 1 1 1 0 設定禁止 1 1 1 1 1 設定禁止 589 第 22 章 A/D コンバータ 22.4 A/D コンバータの動作 A/D コンバータは逐次比較方式で作動し , 分解能は 10 ビットまたは 8 ビットを選択 することができます。ここでは A/D コンバータの動作モードを説明します。 ■ A/D 変換データ A/D コンバータは変換結果記憶用のレジスタが 1 つ (16 ビット ) であるため , 変換デー タレジスタ (ADCR0 および ADCR1) は変換が完了するたびに書き換えられます。この ため , A/D コンバータ単独では連続変換処理には適しませんので DMA を使って変換 データをメモリに転送しながら変換することを推奨します。 ■ 単発モード 単発モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい き ANE ビットで設定された終了チャネルまで変換が終わると A/D は動作を停止しま す。開始チャネルと終了チャネルが同じとき (ANS=ANE) は一方のチャネルのみの変 換動作になります。 【例】 • ANS=00000B, ANE=00011B 開始 ⇒ AN0 ⇒ AN1 ⇒ AN2 ⇒ AN3 ⇒ 終了 • ANS=00010B, ANE=00010B 開始 ⇒ AN2 ⇒ 終了 ■ 連続モード 連続モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい き ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に 戻り変換動作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は一 方のチャネルのみの変換を続けます。 【例】 • ANS=00000B, ANE=00011B 開始 ⇒ AN0 ⇒ AN1 ⇒ AN2 ⇒ AN3 ⇒ AN0 ⇒ AN1 ( 繰返し ) • ANS=00010B, ANE=00010B 開始 ⇒ AN2 ⇒ AN2 ⇒ AN2 ( 繰返し ) 連続モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し続けま す (BUSY ビットに "0" を書き込む→強制終了 ) 。強制終了を行うと変換は途中で止まっ てしまうため , 注意してください ( 強制終了した場合 , 変換レジスタは変換完了した前 データが格納されています ) 。 590 第 22 章 A/D コンバータ ■ 停止モード 停止モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい きますが 1 チャネル変換するたびに変換動作を一時停止します。一時停止を解除する にはもう一度起動をかけることにより行われます。 ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に戻 り変換動作を続けます。開始チャネルと終了チャネルが同じ (ANS=ANE) であれば変 換は一方のチャネルに対してのみ実行されます。 【例】 • ANS=00000B, ANE=00011B 開始 ⇒ AN0 ⇒ 停止⇒起動 ⇒ AN1 ⇒ 停止⇒起動 ⇒ AN2 ⇒ 停止⇒起動 ⇒ AN3 ⇒ 停止⇒起動 ⇒ AN0 ⇒ 停止⇒起動 ⇒ AN1 ( 繰返し ) • ANS=00010B, ANE=00010B 開始 ⇒ AN2 ⇒ 停止⇒起動 ⇒ AN2 ⇒ 停止⇒起動 ⇒ AN2 ( 繰返し ) このときの起動要因は STS1, STS0 で設定されたものとなります。 このモードを使用することにより変換開始の同期をかけることが可能です。 <注意事項> A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動 ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能です。再 起動は下記の手順で行ってください。 (1) INT ビットを "0" にクリアします。 (2) STRT ビットに "1" を , INT ビットに "0" を同時に書き込みます。 591 第 22 章 A/D コンバータ 592 第 23 章 D/A コンバータ D/A コンバータの概要を示し , レジスタの構造と機 能 , および D/A コンバータの動作について説明し ます。 23.1 D/A コンバータの概要 23.2 D/A コンバータのレジスタ 23.3 D/A コンバータの動作 593 第 23 章 D/A コンバータ 23.1 D/A コンバータの概要 D/A コンバータの機能とブロックダイヤグラムを示します。 ■ D/A コンバータの機能 このモジュールは , 10 ビットの分解能を持つ R-2R 形式の D/A コンバータです。 D/A コンバータには 2 つのチャネルがあります。 出力制御は , D/A 制御レジスタを使用して , 2 つのチャネルで個別に実行できます。 ■ D/A コンバータのブロックダイヤグラム 図 23.1-1 に , D/A コンバータのブロックダイヤグラムを示します。 図 23.1-1 D/A コンバータのブロックダイヤグラム R-bus DA DA DA DA DA DA DA DA DA DA 19 18 17 16 15 14 13 12 11 10 DA DA DA DA DA DA DA DA DA DA 09 08 07 06 05 04 03 02 01 00 DAV C DAV C DA19 DA18 DA09 2R R 2R R DA17 2R DA10 2R R R DAE1 スタンバイ制御 DA出力 ch.1 594 DA08 2R R 2R R 2R R 2R R DA18 DA00 DAE0 スタンバイ制御 DA出力 ch.0 第 23 章 D/A コンバータ 23.2 D/A コンバータのレジスタ D/A コンバータで使用するレジスタについて説明します。 ■ D/A コンバータのレジスタ一覧 図 23.2-1 に , D/A コンバータのレジスタ一覧を示します。 図 23.2-1 D/A コンバータのレジスタ一覧 DACR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − − − − − − − − − MODE R/W DAE1 R/W DAE0 R/W -----000B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R/W − R/W − R/W − R/W − R/W − R/W DA09 DA08 ------XXB R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 DA07 R/W DA06 R/W DA05 R/W DA04 R/W DA03 R/W DA02 R/W DA01 R/W DA00 R/W XXXXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R/W − R/W − R/W − R/W − R/W − R/W DA19 R/W DA18 R/W ------XXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 DA17 DA16 DA15 DA14 DA13 DA12 DA11 DA10 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 -------0B DADR0 DADR0 DADR1 DADR1 DADBL − − − − − − − DBL − − − − − − − R/W R/W :リード / ライト可能 X :不定 595 第 23 章 D/A コンバータ ■ D/A 制御レジスタ (DACR) 図 23.2-2 に , D/A 制御レジスタ (DACR) のビット構成を示します。 図 23.2-2 D/A 制御レジスタ (DACR) のビット構成 DACR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − − − − − − − − − MODE R/W DAE1 R/W DAE0 R/W -----000B R/W :リード / ライト可能 [bit2] MODE このビットは , D/A コンバータのモード制御に使用します。 このビットに "1" を書き込むと , D/A コンバータは 8 ビットの分解能で動作します。 "0" を書き込むと , D/A コンバータは 10 ビットの分解能で動作します。 リセット時に"0"に初期化されます。このビットは, 読出しおよび書込みが可能です。 [bit1, bit0] DAE1, DAE0 これらのビットは , D/A コンバータ出力を許可または禁止するために使用します。 DAE1 ビットは ch.1 出力を制御し , DAE0 ビットは ch.0 出力を制御します。 これらのビットに "1" を書き込むと , D/A 出力は許可されます。"0" を書き込むと , D/A 出力は禁止になります。 リセット時に "0" に初期化されます。これらのビットは読出しおよび書込みが可能 です。 596 第 23 章 D/A コンバータ ■ D/A データレジスタ (DADR) 図 23.2-3 に , D/A データレジスタ (DADR) のビット構成を示します。 図 23.2-3 D/A データレジスタ (DADR) のビット構成 DADR0 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R/W − R/W − R/W − R/W − R/W − R/W DA09 R/W DA08 R/W ------XXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 DA07 R/W DA06 R/W DA05 R/W DA04 R/W DA03 R/W DA02 R/W DA01 R/W DA00 R/W XXXXXXXXB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R/W − R/W − R/W − R/W − R/W − R/W DA19 R/W DA18 R/W ------XXB bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 DA17 DA16 DA15 DA14 DA13 DA12 DA11 DA10 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W DADR0 DADR1 DADR1 R/W :リード / ライト可能 X :不定 [bit9 ∼ bit0] DADR0 レジスタ DA09 ∼ DA00 これらのビットは , D/A コンバータチャネル 0 の出力電圧の設定に使用します。 リセット時に初期化はされません。これらのビットは読出しおよび書込みが可能で す。 [bit9 ∼ bit0] DADR1 レジスタ DA19 ∼ DA10 これらのビットは , D/A コンバータチャネル 1 の出力電圧の設定に使用します。 リセット時に初期化はされません。これらのビットは読出しおよび書込みが可能で す。 これらのレジスタを 8 ビット分解能モードで読み出すと , DAx7 ∼ DAx0 と書き込まれ た値は , DAx9 ∼ DAx2 として表示されます。 597 第 23 章 D/A コンバータ ■ D/A クロック制御レジスタ (DADBL) 図 23.2-4 に , D/A クロック制御レジスタ (DADBL) のビット構成を示します。 図 23.2-4 D/A クロック制御レジスタ (DADBL) のビット構成 DADBL bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − − − − − − − − − − − − − − DBL R/W -------0B R/W :リード / ライト可能 [bit0] DBL このビットは , D/A コンバータモジュールのクロック制御に使用します。 このビットに "1" を書き込むと , D/A コンバータモジュールのクロックは禁止にな ります。"0" を設定すると , D/A コンバータモジュールにクロックが供給されます。 リセット時に "0" に初期化されます。このビットは読出しおよび書込みが可能です。 598 第 23 章 D/A コンバータ 23.3 D/A コンバータの動作 D/A コンバータの動作概要を説明します。 ■ D/A コンバータの動作概要 D/A 出力は , D/A データレジスタ (DADR) に所望の D/A 出力値を書込み , D/A 制御レジ スタ (DACR) 内の対応する D/A 出力チャネルの許可ビットに "1" を設定することによっ て開始されます。 D/A 出力を禁止にすると , 各 D/A コンバータチャネルの出力に直列に挿入されているア ナログスイッチがオフになります。さらに , D/A コンバータが "0" に内部クリアされ , 直流電流の経路が遮断されます。これはストップモード時にも当てはまります。 ■ D/A コンバータ出力電圧の理論値 表 23.3-1, および表 23.3-2 に , D/A コンバータ出力電圧の理論値を示します。 D/A コンバータ出力電圧は , 8 ビットモードで 0 V ∼ 255/256 × DVR, 10 ビットモード で 0 V ∼ 1023/1024 × DVR です。出力電圧範囲は , DVR 電圧を外部から調整すること によって変化します。 D/A コンバータ出力には , 内部バッファ増幅器はありません。アナログスイッチ (100 Ω) は出力に直列に挿入されているので , 外部出力負荷を加えたときに , 十分な設定時間が あります。 表 23.3-1 8 ビット分解能の D/A コンバータ出力電圧の理論値 DA07 ∼ DA00(DA17 ∼ DA10) の設定値 出力電圧の理論値 00H DVRL + 0 × 1LSB 01H DVRL + 1 × 1LSB 02H DVRL + 2 × 1LSB ∼ ∼ FDH DVRL + 253 × 1LSB FEH DVRL + 254 × 1LSB FFH DVRL + 255 × 1LSB 1LSB = (DVRH − DVRL)/256 599 第 23 章 D/A コンバータ 表 23.3-2 10 ビット分解能の D/A コンバータ出力電圧の理論値 DA07 ∼ DA00(DA17 ∼ DA10) の設定値 出力電圧の理論値 000H DVRL + 0 × 1LSB 001H DVRL + 1 × 1LSB 002H DVRL + 2 × 1LSB ∼ ∼ 3FDH DVRL + 1021 × 1LSB 3FEH DVRL + 1022 × 1LSB 3FFH DVRL + 1023 × 1LSB 1LSB = (DVRH − DVRL)/1024 600 第 24 章 クロックモジュレータ クロックモジュレータのレジスタ構成と機能およ び動作について説明します。 24.1 クロックモジュレータの概要 24.2 クロックモジュレータのレジスタ 601 第 24 章 クロックモジュレータ 24.1 クロックモジュレータの概要 クロックモジュレータの概要を説明します。 ■ クロックモジュレータの概要 クロックモジュレータはクロック信号のスペクトラムを広範囲に分散させることで周 囲への電磁ノイズの影響 (EMI) を低減させます。 602 第 24 章 クロックモジュレータ 24.2 クロックモジュレータのレジスタ クロックモジュレータで使用するレジスタの構成および機能について説明します。 ■ クロックモジュレータレジスタの概要 クロックモジュレータには , 以下のレジスタがあります。 • クロックモジュレータパラメータレジスタ (CMPR) • クロックモジュレータ制御レジスタ (CMCR) ■ レジスタ一覧 CMPR ( 上位バイト ) bit15 − R bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R MP13 R/W MP12 R/W MP11 R/W MP10 R/W MP9 R/W MP8 R/W 00001000B CMPR ( 下位バイト ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MP7 R/W MP6 R/W MP5 R/W MP4 R/W MP3 R/W MP2 R/W MP1 R/W MP0 R/W 11111101B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R/W RUN EN PDX 00010000B R/W R/W R/W CMCR PHSEL R/W − R − R/W − R/W R/W :リード / ライト可能 R :リードオンリ 603 第 24 章 クロックモジュレータ 24.2.1 クロックモジュレータパラメータレジスタ (CMPR) クロックモジュレータパラメータレジスタ (CMPR) は , 周波数変調モードにおいて の変調度を決定します。 ■ クロックモジュレータパラメータレジスタ (CMPR) CMPR ( 上位バイト ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 − R MP13 R/W MP12 R/W MP11 R/W MP10 R/W MP9 R/W MP8 R/W 00001000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 MP7 MP6 MP5 MP4 MP3 MP2 MP1 MP0 11111101B R/W R/W R/W R/W R/W R/W R/W R/W − R CMPR ( 下位バイト ) R/W :リード / ライト可能 R :リードオンリ • 変調パラメータは変調クロックの変調度および最高・最低周波数を決定します。 • 変調パラメータの設定は , PLL クロック周波数によって変わります。PLL クロック 周波数とパラメータの設定には矛盾がないようにしてください。 • 変調パラメータは周波数変調モードでのみ有効です。 • 変調パラメータの変更は , モジュレータが停止中で , CMCR の RUN ビットが "0" の ときに行ってください。 [bit15, bit14] Reserved 予約ビットです。読出し値は常に "00B" です。 [bit13 ∼ bit0] MP13 ∼ MP0:変調パラメータ PLL 周波数により以下の変調パラメータ設定が可能です。 604 F0: 非変調入力クロック周波数 (PLL クロック周波数 ) T0: 非変調入力クロック周期 (PLL クロック周期 ) 分解能: 変調クロックの周波数分解能 (1 ∼ 7) Fmax: 変調クロックで発生する最高周波数 Fmin: 変調クロックで発生する最低周波数 第 24 章 クロックモジュレータ 24.2.2 クロックモジュレータ制御レジスタ (CMCR) クロックモジュレータ制御レジスタ (CMCR) には , モジュレータパワーダウンモー ドの設定 , モジュレータ動作・停止 , 位相変調・周波数変調モード選択 , モジュレー タ状態表示の機能があります。 ■ クロックモジュレータ制御レジスタ (CMCR) CMCR bit7 bit6 PHSEL R/W − R bit5 − R/W bit4 − R/W bit3 bit2 bit1 bit0 初期値 − R/W RUN R/W EN R/W PDX R/W 00010000B R/W :リード / ライト可能 R :リードオンリ クロックモジュレータには , 2 つの動作モードがあります。 • 位相変調 • 周波数変調 [bit7] PHSEL:位相変調モード選択ビット PHSEL 位相変調モード選択 0 周波数変調モード [ 初期値 ] 1 位相変調モード PHSEL の変更は必ずクロック変調停止中 (EN ビットが "0") に行ってください。ク ロック変調動作中に変更すると誤動作を起こす場合があります。 [bit6 ∼ bit3] Reserved 予約ビットです。 これらのビットには , 必ず "0010B" を設定してください。 [bit2] RUN:モジュレータステータスビット RUN モジュレータステータス 0 CPU は非変調クロックで動作します。[ 初期値 ] 1 CPU は変調クロックで動作します。 • このビットは周波数変調モード (PHSEL=0) においてモジュレータ出力クロック の状態を示します。出力クロック周波数が変調されている場合は "1" にセットさ れます。変調されていない場合は "0" にセットされます。 • 位相変調モードでは , このビットは常に "0" です。 605 第 24 章 クロックモジュレータ 発振周波数 (F0) 補正時間 4 MHz 64.00 µs 5 MHz 51.20 µs 6 MHz 42.67 µs 補正時間 = 256/F0 • 通常動作時 , 補正が完了する非変調クロックへは切り替わりません。 • EN 信号の同期化と , 非変調クロックへの同期切換えのために , このビットが "0" に変わる前に最低 9 × T0 ( 入力クロック周期 ) 経過します。モジュレータの動作 停止後 , クロックは非変調クロックへと切り替わります。 • このビットは読出し専用です。書込みは無効です。 [bit1] EN:クロック変調動作許可ビット EN クロック変調動作許可 0 クロック変調動作停止 [ 初期値 ] 1 クロック変調動作許可 • このビットを "1" に設定すると , モジュレータが動作許可されます。 • 変調動作の許可は , PLL が安定したクロックを供給するようになってから (PLL ロックタイム経過後 ) 行ってください。 • 周波数変調モードで使用する PLL クロック周波数は , 15 MHz ∼ 25 MHz です。 • PLL クロック周波数の変更や PLL を停止させる前に , 必ずモジュレータを停止さ せてください。 • EN ビットが "1" となり , 周波数変調モードに設定後は , モジュレータは補正され ます。この間に出力されるクロックは非変調クロックです。したがって , 出力ク ロックが変調クロックに切り替わり , RUN ビットが "1" にセットされるまで数 µ 秒の時間を要します。この補正時間は外部発振子の周波数に依存します。 [bit0] PDX:パワーダウンモードビット PDX パワーダウンモード 0 パワーダウンモード [ 初期値 ] 1 通常動作モード • このビットは周波数変調器のパワーダウンモードビットです。 • 変調動作を開始させる前に , このビットを "1" に設定してパワーダウンモードか ら通常動作モードへ切り換えてください。このとき起動時間として , 6µs の待ち 時間が必要です。 • パワーダウンモードに切り換える前に , 必ずモジュレータを停止してください。 606 第 25 章 クロックスーパバイザ クロックスーパバイザの機能について説明します。 25.1 クロックスーパバイザの概要 25.2 クロックスーパバイザ制御レジスタ (CSVCR) 25.3 クロックスーパバイザの動作 607 第 25 章 クロックスーパバイザ 25.1 クロックスーパバイザの概要 クロックスーパバイザの機能概要について説明します。 ■ クロックスーパバイザの概要 クロックスーパバイザには以下の機能があります。 • 内蔵 CR 発振クロックの 4 周期の間にメイン発振クロックの立ち上がりエッジが検 出されなければ , クロックスーパバイザは発振不具合を検出します。メイン発振周 期がこの期間より長い場合 (TRC(Typ) ≦ TMAIN/4) は , 発振不具合とみなされます。 MCU がサブクロックで動作しているときは , この期間は CR 発振クロックの 32 周 期となります。 • メイン発振 , サブ発振 , CR 発振は個別に発振を停止することができます。 • メイン発振動作時にサブクロックに不具合が検出された場合での MCU の初期化実 行は , コントロールビットの設定値に依存します。 • メイン発振監視機能 , サブ発振監視機能はともに , MCU からの発振制御信号により 自動的にその機能の動作 / 停止を切り換えます。 • STOPモード時に外部発振を停止させると, 内蔵CR発振は自動的に停止します。 MCU を STOP モードから復帰させると , 発振を再開します。 608 第 25 章 クロックスーパバイザ 25.2 クロックスーパバイザ制御レジスタ (CSVCR) クロックスーパバイザ制御レジスタ (CSVCR) ではクロックスーパバイザの動作モー ドを設定します。 ■ クロックスーパバイザ制御レジスタ (CSVCR) CSVCR bit7 bit6 bit5 bit4 bit3 bit2 bit1 − R/W MM R SM R RCE R/W MSVE R/W SSVE R/W SRST R/W bit0 初期値 − R/W 0001XX00B R/W :リード / ライト可能 R :リードオンリ X :不定 [bit7] Reserved 予約ビットです。 必ず "0" を設定してください。 [bit6] MM:メイン発振ミス検出フラグ MM メイン発振ミス検出 0 メイン発振のミス検出なし [ 初期値 ] 1 メイン発振のミス検出あり 水晶発振子の故障などで , メイン発振監視機能がメイン発振の不具合を検出すると , このビットは "1" に設定されます。"0" は正常動作を意味します。 このビットは読出し専用で , 書込みは無効です。初期化は外部端子からのリセット 入力 (INIT=0) で行われます。MCU 内部のリセット要因 ( ソフトウェアリセット , ウォッチドッグリセット ) では初期化されません。 [bit5] SM:サブ発振ミス検出フラグ SM サブ発振ミス検出 0 サブ発振のミス検出なし [ 初期値 ] 1 サブ発振のミス検出あり 水晶発振子の故障などで , サブ発振監視機能がサブ発振の不具合を検出すると , こ のビットは "1" に設定されます。"0" は正常動作を意味します。 このビットは読出し専用で , 書込みは無効です。初期化は外部端子からのリセット 入力 (INIT=0) で行われます。MCU 内部のリセット要因 ( ソフトウェアリセット , ウォッチドッグリセットなど ) では初期化されません。 609 第 25 章 クロックスーパバイザ [bit4] RCE:CR 発振イネーブルビット RCE CR 発振動作許可 0 内蔵 CR 発振停止 1 内蔵 CR 発振動作 [ 初期値 ] このビットを "1" に設定すると , 内蔵 CR 発振は動作します。メイン発振監視 , サブ 発振監視 , いずれかの一方でも動作中のときには , このビットを必ず "1" に設定して ください。 このビットを "0" に設定する場合は , まず , メイン・サブ , いずれの監視機能も停止 させ , MM ビットと SM ビットがともに "0" であることを確認してください。 このビットは外部端子からのリセット入力 (INIT=0) で "1" に初期化されます。MCU 内部のリセット要因 ( ソフトウェアリセット , ウォッチドッグリセットなど ) では 初期化されません。 [bit3] MSVE:メイン発振監視イネーブルビット MSVE メイン発振監視動作 0 メイン発振監視停止 1 メイン発振監視動作 このビットを "1" に設定すると , メイン発振クロックの監視機能が有効となります。 "1" 書込みにより監視機能を有効とする前に , 必ず RCE ビットが "1" であることを 確認してください。RCE ビットが "0" の場合は , MSVE ビットが "0" のままで RCE ビットを "1" に設定し , 内蔵 CR 発振の発振起動時間経過後 ( 最低 10µs) , MSVE ビッ トに "1" を設定してください。 <注意事項> MSVE ビットはいかなるリセット要因に対しても初期化はされません。メイン発振監視機 能の使用の有無に関わらず , 必ず "1" ( 有効 ) または "0" ( 無効 ) を設定してください。 [bit2] SSVE:サブ発振監視イネーブルビット SSVE サブ発振監視動作 0 サブ発振監視停止 1 サブ発振監視動作 このビットを "1" に設定すると , サブ発振クロックの監視機能が有効となります。 "1" 書込みにより監視機能を有効とする前に , 必ず RCE ビットが "1" であることを 確認してください。RCE ビットが "0" の場合は , SSVE ビットが "0" のままで RCE ビットを "1" に設定し , 内蔵 CR 発振の発振起動時間経過後 ( 最低 10µs) , SSVE ビッ トに "1" を設定してください。 610 第 25 章 クロックスーパバイザ <注意事項> SSVE ビットはいかなるリセット要因に対しても初期化はされません。サブ発振監視機能 の使用の有無に関わらず , 必ず "1" ( 有効 ) または "0" ( 無効 ) を設定してください。 [bit1] SRST:サブクロックモードリセットビット 予約ビットです。 必ず "0" を設定してください。 [bit0] Reserved 予約ビットです。 必ず "0" を設定してください。 611 第 25 章 クロックスーパバイザ 25.3 クロックスーパバイザの動作 クロックスーパバイザの動作について説明します。 ■ 初期状態での動作 • 内蔵 CR 発振は動作状態です。 • メイン発振安定待ち時間経過後 , MSVE ビットが "1" であれば , メイン発振監視機能 が有効となります。発振安定待ち時間経過前に発振の不具合を検出した場合は , CR 発振クロックにより待ち時間を確保した後に , 機能が有効となります。電源投入時 から発振子に不具合がある場合はリセット信号を発行し続け , デバイスをリセット 状態に保ちます。 • サブ発振監視機能は , 内蔵 CR 発振クロックによる安定待ち時間経過後 , SSVE ビッ トが "1" であれば , その機能が有効となります。 ■ CR 発振とクロック監視機能の動作停止 • 内蔵 CR 発振は RCE ビット (CSVCR の bit4) を "0" に設定すると発振を停止します。 メイン / サブ発振監視機能のいずれかでも動作中の場合は CR 発振を停止させない でください。CR 発振を停止させる場合は , まず発振監視機能を停止させ , MM ビッ トと SM ビットがともに "0" であることを確認後に実行してください。いずれかの ビットが "1" である場合は , CR 発振を停止させないでください。 • MSVE ビット (CSVCR の bit3) を "0" に設定すると , メイン発振監視機能は停止しま す。 • SSVE ビット (CSVCR の bit2) を "0" に設定すると , サブ発振監視機能は停止します。 ■ CR 発振とクロック監視機能の再起動 • CR 発振が動作停止中に RCE ビット (CSVCR の bit4) に "1" を設定すると , 発振動作 が再開されます。再起動後の発振安定待ち時間はソフトウェアで確保してくださ い。 • メイン発振監視機能が動作停止中に MSVE ビット (CSVCR の bit3) に "1" を設定す ると , 機能が有効となります。このビットへ "1" を設定する前に CR 発振動作開始か ら発振安定待ち時間 (10µs) 以上経過している必要があります。 • サブ発振監視機能が動作停止中に MSVE ビット (CSVCR の bit2) に "1" を設定する と , 機能が有効となります。このビットへ "1" を設定する前に CR 発振動作開始から 発振安定待ち時間 (10µs) 以上経過している必要があります。 ■ サブクロックモード サブクロックモードでは , メイン発振監視機能は動作停止状態となりますが , MSVE ビット (CSVCR の bit3) の設定値は保持されます。このため , メインクロックモードへ の遷移後 , メイン発振安定待ち時間を経過すれば監視機能は有効となります。 612 第 25 章 クロックスーパバイザ ■ STOP モード STOP モードでは , CR 発振動作およびメイン / サブ発振監視機能は自動的に停止しま す。CSVCR の対応する動作許可ビット (RCE, MSVE, SSVE) はその設定値を保持する ため , デバイスが STOP モードから復帰すると動作を再開します。 この場合 CR 発振は , STOP モードからの復帰後直ちに動作を再開します。 メイン発振監視機能は , メイン発振安定待ち時間経過後 , 動作を再開します。STOP モー ドからの復帰後にメイン発振が停止していると , CR 発振クロックへと置き換えられま す。 サブ発振監視機能は , CR 発振クロックにより確保された待ち時間経過後 , 動作を再開 します。 CR 発振動作と発振監視機能に対応するビットが "0" に設定されている場合は , STOP モードからの復帰後も動作停止のままです。 ■ クロックスーパバイザリセットの確認 MCU のリセット要因がクロックスーパバイザリセットによるものかを確認するため に , リセット要因レジスタ (RSRR) の INIT ビットと CSVCR の MM ビット , SM ビット をソフトウェアで読み出してください。表 25.3-1 に各フラグの値とリセット要因を示 します。 表 25.3-1 MCU のリセット要因 レジスタ RSRR CSVCR HWDCS アドレス 000480H 0004ADH 0005FDH ビット INIT MM SM CPUF ビット位置 bit7 bit6 bit5 bit0 1 1 X 0 メイン発振停止 1 X 1 0 サブ発振停止 1 0 0 1 ハードウェア ウォッチドッグ 1 0 0 0 外部 INIT 入力 リセット要因 * *: ハードウェアウォッチドッグリセット , その他のリセット要因に関しては , それ ぞれ対応する章を参照してください。 613 第 25 章 クロックスーパバイザ 614 第 26 章 フラッシュメモリ フラッシュメモリの概要 , レジスタの構成 / 機能 , および動作について説明します。 26.1 フラッシュメモリの概要 26.2 フラッシュメモリのレジスタ 26.3 フラッシュメモリの動作説明 26.4 フラッシュメモリ自動アルゴリズム 26.5 フラッシュメモリ書込み / 消去の詳細説明 26.6 ワイルドレジスタ 26.7 フラッシュメモリプログラミングの注意事項 615 第 26 章 フラッシュメモリ 26.1 フラッシュメモリの概要 本シリーズには , 512K バイト (MB91F273(S)/MB91F278(S)) のフラッシュメモリが 内蔵されています。 内蔵フラッシュメモリは , 3.3 V 単一電源にて , FR-CPU によるセクタ単位での消去 , 全セクタ一括消去 , およびハーフワード (16 ビット ) 単位での書込みが可能です。 ■ フラッシュメモリの概要 内蔵の 3.3 V 動作フラッシュメモリです。このフラッシュメモリは , 当社フラッシュメ モリ製品 MBM29LV400C と同等の機能を持ち ( ただし , 容量 , セクタ構成が異なりま す ) , ROM ラ イ タ に よ る デ バ イ ス 外 部 か ら の 書 込 み も 可 能 で す。本 書 と 併 せ て 「MBM29LV400C データシート」もご参照ください。 また , MBM29LV400C 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合に は , ワード (32 ビット ) 単位での命令 / データ読出しが可能であり , デバイスの高速動 作に寄与します。 本シリーズでは , 内蔵フラッシュメモリと FR-CPU インタフェース回路の組合せにより , 以下の機能を実現します。 • CPU のプログラム / データ格納用メモリとして機能 ( 以下 , CPU モードと表記 ) - ROM として使用する際は 32 ビットバス幅でアクセス可能 - CPU の命令動作による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) • 単体フラッシュメモリ製品の MBM29LV400C 相当の機能 ( 以下 , フラッシュモードと表記 ) - ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) ここでは , FR-CPU から本フラッシュメモリを使用する場合について記載しています。 ROM ライタから本フラッシュメモリを使用する場合の詳細については , 別途 ROM ラ イタの取扱説明書を参照してください。 *: 自動プログラムアルゴリズム = Embedded AlgorithmTM 616 第 26 章 フラッシュメモリ ■ フラッシュメモリのブロックダイヤグラム 図 26.1-1 に , フラッシュメモリのブロックダイヤグラムを示します。 図 26.1-1 フラッシュメモリのブロックダイヤグラム RDY/BUSYX 立上り検出 制御信号発生 RESETX BYEX OEX フラッシュメモリ WEX RDY WE バス制御信号 CEX FA18~FA0 DI15~DI0 DO15~DO0 アドレスバッファ データバッファ FA18~FA0 FD31~FD0 FR F-bus (命令/データ) ■ フラッシュメモリのメモリマップ フラッシュメモリのアドレスマッピングはフラッシュモードと CPU モードでは異なり ます。図 26.1-2 に , 各モードでのフラッシュメモリのメモリマップを示します。 図 26.1-2 フラッシュメモリのメモリマップ (MB91F273(S)/MB91F278(S)) Flash memory mode CPUモード 0000_0000H I/O など 0008_0000H 0008_0000H 32ビット 512Kバイト Flash 0010_0000H 8ビット/16ビット Flash 512Kバイト 000F_FFFFH FFFF_FFFFH 617 第 26 章 フラッシュメモリ ■ フラッシュメモリのセクタアドレス表 ● フラッシュメモリのセクタマップ (512K バイト ) • ハーフワード読出し / 書込みモード , バイト読出しモード 15 0 Flash モード BFFFFH BC000H CPU モード FFFFCH F8000H Sector 6 16 K バイト Sector 5 8 K バイト BBFFFH BA000H Sector 4 8 K バイト Sector 3 15 0 Flash モード FFFFFH FC000H CPU モード FFFFEH F8002H Sector 13 16 K バイト F7FFCH F4000H Sector 12 8 K バイト FBFFFH FA000H F7FFEH F4002H B9FFFH B8000H F3FFCH F0000H Sector 11 8 K バイト F9FFFH F8000H F3FFEH F0002H 32 K バイト B7FFFH B0000H EFFFCH E0000H Sector 10 32 K バイト F7FFFH F0000H EFFFEH E0002H Sector 2 64 K バイト AFFFFH A0000H DFFFCH C0000H Sector 9 64 K バイト EFFFFH E0000H DFFFEH C0002H Sector 1 64 K バイト 9FFFFH 90000H BFFFCH A0000H Sector 8 64 K バイト DFFFFH D0000H BFFFEH A0002H Sector 0 64 K バイト 8FFFFH 80000H 9FFFCH 80000H Sector 7 64 K バイト CFFFFH C0000H 9FFFEH 80002H • ワード (32 ビット ) 読出しモード 31 618 16 15 0 CPU モード Sector 6 16 K バイト Sector 13 16 K バイト FFFFFH F8000H Sector 5 8 K バイト Sector 12 8 K バイト F7FFFH F4000H Sector 4 8 K バイト Sector 11 8 K バイト F3FFFH F0000H Sector 3 32 K バイト Sector 10 32 K バイト EFFFFH E0000H Sector 2 64 K バイト Sector 9 64 K バイト DFFFFH C0000H Sector 1 64 K バイト Sector 8 64 K バイト BFFFFH A0000H Sector 0 64 K バイト Sector 7 64 K バイト 9FFFFH 80000H 第 26 章 フラッシュメモリ 26.2 フラッシュメモリのレジスタ フラッシュメモリで使用するレジスタの構成および機能について説明します。 ■ フラッシュメモリのレジスタ概要 フラッシュメモリのレジスタには , 以下の 2 種類があります。 • FLCR:フラッシュコントロール / ステータスレジスタ (CPU モード ) • FLWC:ウェイトレジスタ FLCR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R/W − R/W − R/W − R RDY R − R/W − R/W − R/W 01X0X000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 − R − R/W FAC1 R/W FAC0 R/W − R/W WTC2 R/W WTC1 R/W WTC0 R/W 00000011B FLWC R/W :リード / ライト可能 R :リードオンリ X :不定 619 第 26 章 フラッシュメモリ 26.2.1 フラッシュコントロール / ステータスレジスタ (FLCR) フラッシュメモリの動作状態を示すレジスタです。フラッシュメモリへの書込み制 御などを行います。CPU モードでのみアクセスすることが可能です。 本レジスタは , リードモディファイライト系命令ではアクセスしないでください。 ■ フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成 フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成は , 以下のとおり です。 FLCR bit7 − R/W bit6 − R/W bit5 − R/W bit4 bit3 − R RDY R bit2 − R/W bit1 − R/W bit0 初期値 − R/W 01X0X000B R/W :リード / ライト可能 R :リードオンリ X :不定 [bit7 ∼ bit5] Reserved:予約ビット 予約ビットです。 必ず "011B" を設定してください。 [bit4] Reserved:予約ビット 予約ビットです。 リセットで "0" に初期化されます。 [bit3] RDY:レディ 自動アルゴリズム ( 書込み / 消去 ) の動作状態を表示します。 本ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われてお り, 新たな書込みまた消去コマンドを受け付けることはできません。 また, フラッシュ メモリアドレスからのデータ読出しはできません。 読み出したデータはフラッシュメモリのステータスを示します。 RDY 機能 0 書込み / 消去動作中で , データの読出しや書込み / 消去コマンドの受 付けはできません。 1 データの読出しおよび書込み / 消去コマンドの受付けが可能です。 • リセット時に初期化されません ( その時点でのフラッシュメモリの状態に従いま す)。 • 読出しのみ可能です。書込みは本ビット値に影響を与えません。 [bit2] Reserved:予約ビット 予約ビットです。 必ず "0" を設定してください。 620 第 26 章 フラッシュメモリ [bit1] WE:書込み許可 CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込みを制御 します。 本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みはす べて無効になります。 本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有 効となり , 自動アルゴリズムの起動が可能となります。 本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズム ( 書込み / 消去 ) が 停止していることを確認してから行ってください。 RDY ビットが "0" の間は , 本ビッ トの値を書き換えることができません。 なお , フラッシュモードにおいては , 本ビットの状態にかかわらず書込み動作が有 効となります。 WE 機能 0 フラッシュメモリへの書込み禁止 [ 初期値 ] 1 フラッシュメモリへの書込み許可 • リセット時には "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit0] Reserved:予約ビット 予約ビットです。 必ず "0" を設定してください。 621 第 26 章 フラッシュメモリ 26.2.2 ウェイトレジスタ (FLWC) ウェイトレジスタ (FLWC) は , CPU モードにおいてフラッシュメモリアクセスの ウェイト制御を行います。 ■ ウェイトレジスタ (FLWC) のビット構成 ウェイトレジスタ (FLWC) のビット構成は , 以下のとおりです。 FLWC bit7 − R bit6 bit5 bit4 − R/W FAC1 R/W FAC0 R/W bit3 bit2 bit1 bit0 初期値 − R/W WTC2 R/W WTC1 R/W WTC0 R/W 00000011B R/W :リード / ライト可能 R :リードオンリ [bit7, bit6] Reserved:予約ビット 予約ビットです。 必ず "00B" を設定してください。 [bit5, bit4] FAC1, FAC0:アクセス制御ビット Flash 制御の内部パルス生成を制御するための設定ビットです。これらのビットの 設定により , ATDIN/EQIN パルスの幅を設定することができます。 FAC1 FAC0 ATDIN 0 0 0.5 clock 1.0 clock 0 1 1.0 clock 1.5 clock 1 0 1.5 clock 2.0 clock 1 1 2.0 clock 2.5 clock [bit3] Reserved:予約ビット 予約ビットです。 必ず "0" を設定してください。 622 EQIN [ 初期値 ] 第 26 章 フラッシュメモリ [bit2 ∼ bit0] WTC2, WTC1, WTC0:ウェイトサイクルビット WTC2 WTC1 WTC0 ウェイト サイクル 読出し 書込み 0 0 0 - 設定禁止 設定禁止 0 0 1 1 32 MHz まで可能 設定禁止 0 1 0 2 32 MHz まで可能 設定禁止 0 1 1 3 32 MHz まで可能 32 MHz まで可能 1 0 0 4 設定禁止 設定禁止 1 0 1 5 設定禁止 設定禁止 1 1 0 6 設定禁止 設定禁止 1 1 1 7 設定禁止 設定禁止 [ 初期値 ] • リセット時 , "011B" に初期化されます。 • FAC1, FAC0 ビットで設定されたサイクルを超えないように設定してください。 • 初期値は書込みアクセス用に設定されています。読出しのみの場合 (FLCR の WE ビットが "0") は , 設定を高速のもの (WTC[2:0] =001B または 010B) にすることが できます。 623 第 26 章 フラッシュメモリ 26.3 フラッシュメモリの動作説明 フラッシュメモリの動作について説明します。 ■ フラッシュメモリのアクセスモード FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。 • ROM モード: ワード (32 ビット ) 長データを一括で読み出すことができますが , 書込みはできませ ん。 • プログラミングモード: ワード (32 ビット ) 長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長 での書込みが可能になります。 ■ FR-CPU ROM モード (32 ビット , 読出しのみ ) FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括 読出しが可能となりますが , Flash への書込み , 自動アルゴリズムの起動はできません。 • モードの指定方法 - FLCR レジスタの WE ビットが "0" のとき , 本モードとなります。 - CPU 動作時でのリセット解除後は常に本モードになります。 - CPU 動作時以外では本モードにすることができません。 • 動作内容 フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で 読み出します。 • 制限事項 - ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。 - 本モードでは , フラッシュメモリへのコマンド / データともに書込みはできませ ん。 ■ FR-CPU プログラミングモード (16 ビット , 読出し / 書込み可能 ) データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア クセスは不可能ですので , 本モードで動作している間はフラッシュメモリ上のプログ ラムは実行が不可能となります。 • モードの指定方法 - FLCR レジスタの WE ビットが "1" のとき本モードとなります。 - CPU 動作時でのリセット解除後は WE ビットが "0" になっています。本モードに するためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセッ トの発生により WE ビットが "0" になると ROM モードに戻ります。 - FLCR レジスタの RDY ビットが "0" の期間は WE ビットを書き換えることができ ません。RDY ビットが "1" になったことを確認してから WE ビットを書き換えて ください。 624 第 26 章 フラッシュメモリ • 動作内容 - フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長デー タを一括で読み出します。 - フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動すること ができます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込み が可能となります。自動アルゴリズムの詳細については , 「26.4 フラッシュメモ リ自動アルゴリズム」を参照してください。 • 制限事項 - ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。 - 本モードではワード (32 ビット ) 長でデータを読み出すことを禁止します。 ■ 自動アルゴリズム実行状態 CPU プログラミングモードにて自動実行アルゴリズムを起動した場合には , 内部レ ディ/ビジー信号 (RDY/BUSYX) により自動実行アルゴリズムの動作状態を知ることが できます。このレディ / ビジー信号のレベルは FLCR レジスタの RDY ビットとして読 むことができます。 RDY ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われてお り , 新たな書込み , または消去コマンドを受け付けることはできません。また , フラッ シュメモリアドレスからのデータ読出しはできません。 RDY ビットが "0" の期間に読み出したデータは , フラッシュメモリのステータスを示 すハードウェアシーケンスフラグとなっています。 625 第 26 章 フラッシュメモリ 26.4 フラッシュメモリ自動アルゴリズム フラッシュメモリ自動アルゴリズムのコマンドシーケンス , 実行状態の確認方法 , お よびフラッシュメモリ書込み / 消去の詳細を説明します。 ■ フラッシュメモリ自動アルゴリズムの概要 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込 み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と再開の 制御が可能です。 626 第 26 章 フラッシュメモリ コマンドシーケンス 26.4.1 自動アルゴリズムを起動するためのコマンドシーケンスについて説明します。 ■ 自動アルゴリズムのコマンドシーケンス 自動アルゴリズムを起動するには , フラッシュメモリに対して 1 ∼ 6 回のハーフワード (16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。 不正なアドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込ん だりすると , フラッシュメモリはリードモードにリセットされます。 表 26.4-1 に , フラッシュメモリの書込み / 消去に使用するコマンドの一覧を示します。 FR-CPU により書込みを行う場合 , 書込みデータは , ハーフワード (16 ビット ) データ で行ってください ( アドレスは CPU モード時のアドレスを記載してあります ) 。 表 26.4-1 コマンドシーケンス表 バス コマンド ライト シーケンス アクセス 1st バスライト サイクル 2nd バスライト サイクル 3rd バスライト サイクル 4th バスライト サイクル アドレス データ アドレス データ アドレス データ アドレス データ 5th バスライト サイクル 6th バスライト サイクル アドレス データ アドレス データ 読出し / リセット 1 XXXXH F0H − − − − − − − − − − 読出し / リセット 4 D5557H AAH CAAABH 55H D5557H F0H RA RD − − − − 書込み プログラム 4 D5557H AAH CAAABH 55H D5557H A0H PA PD − − − − チップ消去 6 D5557H AAH CAAABH 55H D5557H 80H D5557H AAH CAAABH 55H D5557H 10H セクタ消去 6 D5557H AAH CAAABH 55H D5557H 80H D5557H AAH CAAABH 55H SA 30H セクタ消去一時停止 アドレス "FXXXXXH" データ (XXB0H) の入力で , セクタ消去中の消去一時停止 セクタ消去再開 アドレス "FXXXXXH" データ (XX30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始 RA:読出しアドレス PA:書込みアドレス SA:セクタアドレス RD:読出しデータ ■ リード ( 読出し ) / リセットコマンド フラッシュメモリを読出し / リセットモードにセットします。フラッシュメモリは , ほ かのコマンドが入力されるまで読出し状態を保ちます。フラッシュメモリは , 電源投入 時自動的に読出し / リセットモードにセットされます。この場合は , データ読出しコマ ンドは必要ありません。 タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー タを読み出します。 627 第 26 章 フラッシュメモリ ■ プログラム ( 書込み ) CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書 込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし て最後の書込みサイクルでメモリへの書込みが開始されます。 自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上 の外部よりの制御を必要としません。 フラッシュメモリは , 自動的に内部で作られた適切な書込みパルスを発生し , 書き込ま れたセルのマージンを検証します。自動書込み動作は , データポーリング機能により , bit7 のデータがこのビットに書き込んだデータと一致したとき終了し (「26.4.2 自動ア ルゴリズム実行状態の確認」の「■ ハードウェアシーケンスフラグ」参照 ) , この時点 で読出しモードに戻ってこれ以上書込みアドレスは受け付けなくなります。この結果 , フラッシュメモリはこの時点で次の有効アドレスを要求します。このようにデータ ポーリングは , メモリが書込み中であることを示します。 書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。書込 み中にハードウェアリセットが起動された場合は , 書き込んでいるアドレスのデータ は保証されません。 書込みはどのようなアドレスの順番でも , またセクタの境界を越えても可能です。 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデータ "1" を書き込むと , データ・ポーリングアルゴリズムにより , 素子が不良と判定されるか , あるいは見かけ上データ "1" が書き込まれたように見えるかのどちらかです。しかし , リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作のみ が "0" データを "1" データにすることができます。 ■ チップ消去 チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に 2 つの " アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。 チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。 チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。自動消去アルゴリズム実行に際して , フラッシュメモリは自動的にすべてのセルを 消去する前に "0" のパターンに書き込んで検証します ( プリプログラム ) 。この動作中 には , フラッシュメモリは外部からの制御は必要としません。 自動消去はコマンドシーケンス中の書込みで開始され , bit7 が "1" になったときに終了 し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セクタ 消去時間×全セクタ数+チップ書込み時間 ( プリプログラム ) 」となります。 628 第 26 章 フラッシュメモリ ■ セクタ消去 セクタ消去は , 6 回のアクセスで行われます。2 つの " アンロック " サイクルがあり , 引 き続き " セットアップ " コマンドを書込み , その後さらに 2 つの " アンロック " サイク ルが続いて 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始 まります。 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次のセクタ消去 コマンドの受付けが可能です。 複数のセクタ消去は, 前述したような6つのバスサイクルを書き込むことで同時に受付 け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去 コマンド (30H) を引き続き書き込むことで行います。 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間終了により , セクタ 消去が開始されます。すなわち , 複数のセクタを同時に消去する場合には , 次の消去セ クタをそれぞれ 50 µs 以内に入力する必要があり , それ以降ではコマンドが受け付けら れないことがあります。引き続くセクタ消去コマンドが有効かどうかは bit3 にてモニ タ可能です (「26.4.2 自動アルゴリズム実行状態の確認」の「■ ハードウェアシーケ ンスフラグ」参照 ) 。 タイムアウト中のセクタ消去コマンド , あるいは消去一時停止以外のいかなるコマン ドも読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そ のセクタを再度消去することにより消去が完了します。セクタ消去バッファへのセク タアドレス入力は , セクタのどのような組合せや数でも実行可能です。 セクタ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。フラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行い ます ( プリプログラム ) 。また , セクタ消去中はほかの消去されないセクタは何の影響 も受けません。これらの動作中において , フラッシュメモリは外部からの制御は必要と しません。 自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間 の後に開始され , bit7 のデータが "1" になったとき終了し , フラッシュメモリは読出し モードに戻ります。ほかのコマンドは無視されます。 データポーリングは消去されたセクタ内のどのアドレスでも働きます。複数セクタ消 去時間は「 ( セクタ消去時間+セクタ書込み時間 ( プリプログラム ) ) ×消去セクタ数」 となります。 629 第 26 章 フラッシュメモリ ■ 消去一時停止 消去一時停止コマンドは , ユーザがセクタ消去中にフラッシュメモリの自動アルゴリ ズムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするも のです。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視 されます。 消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイムアウト 期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト期間中に 入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開コマンド が書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンドの入力時 のアドレスは任意であってかまいません。 セクタ消去動作中に消去一時停止コマンドが入力されると , フラッシュメモリが消去 動作を停止するのに最大 20 µs の時間がかかります。フラッシュメモリが消去一時停止 モードに入ると , レディ / ビジー出力と bit7 が "1" を出力し , bit6 がトグル動作をやめ ます。消去しているセクタのアドレスを入力し bit6 と bit7 の読出し値をモニタするこ とによって , 消去動作を停止しているかどうかを確かめられます。さらに , 消去一時停 止コマンドの書込みは無視されます。 消去動作が停止したとき , フラッシュメモリは消去一時停止読出しモードになります。 このモードでのデータの読出しはデータが消去一時停止していないセクタに有効とな りますが , それ以外は標準的な読出しと同じです。消去一時停止読出し中 , その消去一 時停止したセクタからの連続的な読出しに対しては , bit2 はトグル動作をします。 消去一時停止読出しモードに入った後 , ユーザは書込みのコマンドシーケンスを書き 込むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時 停止書込みモードとなります。このモードでの書込みは , データが消去一時停止してい ないセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時 停止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対しては , bit2 はトグル動作をします。消去一時停止ビット (bit6) によって検出できます。 使用上の注意として , bit6 はどんなアドレスに対しても読出し可能ですが , bit7 は書込 みアドレスに対して読出しを行わなければなりません。 セクタ消去動作を再開するためには , 再開コマンド (30H) を入力する必要があります。 この時点でさらに再開コマンドを入力しても無視されます。他方 , 消去一時停止コマン ドはフラッシュメモリが消去再開した後に入力することができます。 630 第 26 章 フラッシュメモリ 自動アルゴリズム実行状態の確認 26.4.2 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち ます。 この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内蔵フ ラッシュメモリの動作状態の確認ができます。 ■ レディ / ビジー信号 (RDY/BUSYX) フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と して , ハードウェアシーケンスフラグのほかに , レディ / ビジー信号を持っています。 このレディ / ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッ シュメモリステータスレジスタの RDY ビットとして読み出すことが可能です。 RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込み , あるいは消去動作中 です。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読 出し値が "1" のときフラッシュメモリは読出し / 書込み , あるいは消去動作待ちの状態 です。 ■ ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは , 以下のとおりです。 bit ハーフワード読出し時 15 8 (未定義) 0 ハードウェアシーケンスフラグ bit バイト読出し時 (奇数アドレスのみ) 7 7 0 ハードウェアシーケンスフラグ (ハーフワードバイトアクセス) DPOLL TOGGLE TLOVER 未定義 SETIMR TOGGL2 未定義 未定義 <注意事項> ワード読出しは禁止です。FR-CPU プログラミングモードのみ使用してください。 ハードウェアシーケンスフラグは , 自動アルゴリズム実行中にフラッシュメモリの任 意のアドレス (バイトアクセス時は奇数アドレス) を読み出すことによりデータとして 取得できます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズム の状態を示します。 なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ い。 631 第 26 章 フラッシュメモリ 表 26.4-2 に , ハードウェアシーケンスフラグ状態一覧を示します。 表 26.4-2 ハードウェアシーケンスフラグ状態一覧 状態 DPOLL TOGGLE TLOVER SETIMR TOGGL2 自動書込み動作 反転データ 0 トグル 0 0 1 トグル 0 1 トグル 消去一時停止 読出し ( 消去一時停 止しているセ クタ ) 1 1 0 0 トグル *1 消去一時停止 読出し ( 消去一時停 止していない セクタ ) データ データ データ データ データ 消去一時停止 書込み ( 消去一時停 止しているセ クタ ) 反転データ トグル *2 1 0 1 *3 反転データ 0 トグル 1 0 1 トグル 1 1 *4 0 トグル 1 1 *4 自動消去動作 実行中 タイム リミット 超過 消去 / 一時停止 モード 自動消去動作 消去一時停止モード 消去一時停止時の 書込み動作 *1:消去一時停止セクタからの連続的な読出し時に TOGGLE2 はトグル動作をします。 *2:どんなアドレスからの連続的な読出し時でも , TOGGLE はトグル動作をします。 *3:消去一時停止書込み中 , その書込みされているアドレスの読出し時は , TOGGL2 は "1" となりま す。しかし , 消去一時停止しているセクタからの連続的な読出し時は , TOGGL2 はトグル動作を します。 *4:TLOVER が '1' のとき ( タイムリミット超過 ) , 書込み / 消去中セクタへの連続的な読み出しに対 して , TOGGL2 はトグル動作をし , 他のセクタへの読出しに対してはトグルしません。 表中の各ビットは , 以下の内容を示します。 632 [bit7] :DPOLL :データポーリング [bit6] :TOGGLE :トグルビット [bit5] :TLOVER :タイムリミット超過 [bit3] :SETIMR :セクタ消去タイマ [bit2] :TOGGL2 :トグルビット 2 第 26 章 フラッシュメモリ 以下に , それぞれのビットについて簡単に説明します。 [bit7] DPOLL: データポーリングフラグ データポーリングフラグは , 自動アルゴリズム実行が進行中もしくは終了状態であ ることをデータポーリング機能によって知らせるためのフラグです。 • 書込み動作時: 自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはア ドレスの指す番地にアクセスせず , 最後に書き込まれたデータの bit7 の反転デー タを出力します。 自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはア ドレスの指す番地の読出し値の bit7 を出力します。 • チップ / セクタ消去動作時: 消去 / セクタ消去アルゴリズム実行中にリードアクセスすると , セクタ消去時は 現在消去しているセクタから , チップ消去時はアドレスの指す番地に関係なく , フラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 • セクタ消去一時停止時: セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの 指す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければア ドレスの指す番地の読出し値の bit7 を出力します。 トグルビットフラグと共に参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であるかの判定が可能です。 <注意事項> 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ の読出しは , データポーリングフラグの終了を受けてほかのビットの出力が可能となりま す。 このため自動アルゴリズム終了後のデータの読出しは , データポーリング終了を確認した リードアクセスの次に行うようにしてください。 [bit6] TOGGLE: トグルビットフラグ トグルビットフラグはデータポーリングフラグと同様に , 主に自動アルゴリズム実 行が進行中または終了状態であることを , トグルビット機能によって知らせるため のフラグです。 • 書込み / チップ • セクタ消去時: 自動書込みアルゴリズムおよびチップ•セクタ消去アルゴリズム実行中に連続した リードアクセスを行うと , フラッシュメモリはアドレスの指す番地にアクセスせ ず , 読出しごとに "1" と "0" を交互に出力するトグル状態を出力します。 自動書込みアルゴリズムおよびチップ/セクタ消去アルゴリズム終了時に連続した リードアクセスを行うと , フラッシュメモリは bit6 のトグル動作を中止し , アドレ スの指す番地の読出し値の bit6 (DATA:6) を出力します。 • セクタ消去一時停止時: セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの 指す番地が消去中のセクタに属するならば , "1" を出力します。 消去中のセクタに属さないのであれば , アドレスの指す番地の読出し値の bit6 (DATA:6) を出力します。 633 第 26 章 フラッシュメモリ <参考> 書込みの際, 書き込もうとしているセクタが書換え保護されているセクタの場合は, 約2 µs のトグル動作をした後 , データを書き換えることなくトグル動作を終了します。消去の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビットは約 100 µs のト グル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。 [bit5] TLOVER: タイミングリミット超過フラグ タイミングリミット超過フラグは , 自動アルゴリズムの実行がフラッシュメモリ内 部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラグで す。 • 書込み / チップ • セクタ消去時: 書込みまたはチップ • セクタ消去自動アルゴリズム起動後にリードアクセスする と , 規定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えて しまっている場合は "1" を出力します。 これは , 自動アルゴリズムが実行中か終了状態にあるかとは無関係ですので , 書 込み / 消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能により自 動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断することが できます。 例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうと するとフェイルが発生します。この場合フラッシュメモリはロックされ , 自動ア ルゴリズムは終了しません。まれに "1" が書き込めたように , 正常終了する場合も あります。したがって , データポーリングフラグから有効なデータが出力されま せん。またトグルビットフラグはトグル動作を中止せず , タイムリミットを超え , タイミングリミット超過フラグは "1" を出力します。この状態はフラッシュメモ リが不良ではなく , 正しく使用されなかったということを表しています。この状 態が発生したときは , リセットコマンドを実行してください。 634 第 26 章 フラッシュメモリ [bit3] SETIMR: セクタ消去タイマフラグ セクタ消去タイマフラグは , セクタ消去コマンド起動後セクタ消去ウェイト期間中 であるかどうかを知らせるフラグです。 • セクタ消去動作時: セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマン ドを発行したセクタのアドレス信号の指す番地にアクセスせず , セクタ消去ウェ イト期間中であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合 は "1" を出力します。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示 している場合 , このフラグが "1" であれば内部で制御される消去が始まっていま す。続けてのセクタ消去コードの書込み , または消去一時停止以外のコマンドは , 消去が終了されるまで無視されます。 このフラグが "0" であればフラッシュメモリは , 追加のセクタ消去コードの書込 みを受け付けます。このことを確認するために , 続くセクタ消去コードの書込み に先立ちこのフラグの状態をチェックすることをお奨めします。もし 2 回目の状 態チェックで "1" であったなら追加セクタの消去コードは受け付けられてない可 能性があります。 • セクタ消去動作時 セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの 指す番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタ に属さないのであれば , アドレスの指す番地の読出し値の bit3 (DATA:3) を出力 します。 [bit2] TOGGL2: トグルビットフラグ 2 このトグルビットフラグは bit6 のトグルビットに加えて , フラッシュメモリが自動 消去動作中であるか , 消去一時停止中であるかをトグルビット機能によって知らせ るためのフラグです。 • 書込み / チップ • セクタ消去時: トグルビット (bit2) と同様のトグル動作をします。 • セクタ消去一時停止時 フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止しているセ クタから連続して読出しを行うと , bit2 はトグル動作をします。 消去一時停止書込みモードのときは , 消去一時停止していないセクタのアドレス から連続して読出しを行うと , bit2 は "1" が読み出されます。 bit6 は bit2 と異なり , 通常の書込み , 消去 , または消去一時停止書込み動作中にの みトグル動作をします。 <参考> bit2 と bit6 は , 消去一時停止読出しモードを検出するために , 同時に使われます (bit2 はト グル動作をするが bit6 はトグル動作をしない ) 。さらに bit2 は消去しているセクタの検出 にも使われます。フラッシュメモリが消去動作のときは , bit2 は消去しているセクタから の読出しならばトグル動作をします。 635 第 26 章 フラッシュメモリ 26.5 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , およびセクタ消去再開 のそれぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の概要 フラッシュメモリは , 以下の動作がコマンドシーケンスのパスへのライトサイクルを 行うことで自動アルゴリズムを実行することが可能です。 • 読出し / リセット • 書込み • チップ消去 • セクタ消去 • セクタ消去一時停止 • 消去再開 それぞれのパスへのライトサイクルは必ず続けて行う必要があります。 また , 自動アルゴリズムはデータポーリング機能などで終了時を確認できます。正常終 了時は読出し / リセット状態に戻ります。 636 第 26 章 フラッシュメモリ 26.5.1 読出し / リセット状態 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリの読出し / リセット方法 フラッシュメモリを読出し/リセット状態にするには, コマンドシーケンス表の読出し/ リセットコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能 です。 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません。何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に , 主にこのコマンドを使用します。 637 第 26 章 フラッシュメモリ 26.5.2 データ書込み 書込みコマンドを発行し , フラッシュメモリにデータ書込みを行う手順について説 明します。 ■ フラッシュメモリのデータ書込み方法 フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表の書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実 行可能です。 4 サイクル目に目的のアドレスのデータ書込みが終了した時点で , 自動アルゴリズムが 起動され自動書込みが開始されます。 ■ アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。すなわち , 偶数アド レスへのハーフワード単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが , 1 回の書込みコマンドによって書き込まれたデータは 1 ハーフワードのみです。 ■ データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。 データ "0" にデータ "1" を書き込むと , データポーリングアルゴリズムまたはトグル動 作が終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミ ングリミット超過フラグがエラーと判定するか , あるいは見かけ上データ "1" が書き込 まれたように見えるかのどちらかとなります。ただし , 読出し / リセット状態でデータ を読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすることが できます。 自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意 が必要です。 ■ フラッシュメモリ書込み手順 図 26.5-1 に , フラッシュメモリ書込みの手順の例を示します。 ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アルゴリ ズムの状態判別が可能です。ここでは , 書込み終了の確認にデータポーリングフラグ (DPOLL) を用いています。 フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読込 みとなります。 データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同 時に変わるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であっても データポーリングフラグビット (DPOLL) は再チェックする必要があります。 トグルビットフラグ (TOGGLE) でも同様にタイミングリミット超過フラグビット (TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (TOGGLE) を再チェックする必要があります。 638 第 26 章 フラッシュメモリ 図 26.5-1 フラッシュメモリ書込み手順の例 書込み開始 FLCR:WE(bit5)により フラッシュ書込み許可 書込みコマンドシーケンス AAH D5557H CAAABH 55H D5557H A0H 書込みアドレス 書込みデータ 内部アドレスリード データポーリング (DPOLL) 次アドレス Data Data 0 タイミングリミット (TLOVER) 1 内部アドレスリード Data データポーリング (DPOLL) Data 書込みエラー 最終アドレス NO YES FLCR:WE(bit5)により フラッシュ書込み禁止 ハードウェアシーケンス フラグによる確認 書込み完了 639 第 26 章 フラッシュメモリ 26.5.3 データ消去 ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データ消去を行う手順につい て説明します。 ■ フラッシュメモリのデータ消去 ( チップ消去 ) 方法 フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表のチッ プ消去コマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能で す。 チップ消去コマンドは 6 回のバス動作で行われます。 6 サイクル目の書込みが完了した時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありません。自動消去アル ゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消去する前に "0" を 書き込んで検証します。 640 第 26 章 フラッシュメモリ 26.5.4 データ消去 ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のセクタ消去を行う手順に ついて説明します。セクタごとの消去が可能であり , 複数のセクタを同時に指定す ることも可能です。 フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表のセ クタ消去コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可 能です。 ■ セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに より 50 µs のセクタ消去ウェイトが開始されます。 複数のセクタ消去を行う場合は , 上記の処理に引き続き消去する目的のセクタ内のア ドレスに消去コード (30H) を書き込みます。 ■ 複数のセクタを指定するときの注意 最後のセクタ消去コードの書込みから50 µsのセクタ消去ウェイト期間終了により消去 が開始されます。すなわち , 複数のセクタを同時に消去する場合は , 次の消去セクタの アドレスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µs 以内に入 力する必要があり , それ以降では受け付けられないことがあります。 続くセクタ消去コードの書込みが有効かどうかはセクタ消去タイマ ( ハードウェア シーケンスフラグ SETIMR) によって調べることができます。このとき , セクタ消去コ マンドを読出しするアドレスは , 消去しようとしているセクタを指すようにします。 ■ セクタ消去手順 ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アルゴリ ズムの状態判別が可能です。図 26.5-2 に , フラッシュメモリセクタ消去の手順の例を 示します。 ここでは , 消去終了の確認にトグルビットフラグ (TOGGLE) を用いています。 フラグチェックのために読み込むデータは , 消去しようとしているセクタからの読込 みとなりますので , 注意が必要です。 トグルビットフラグ (TOGGLE) は , タイミングリミット超過フラグ (TLOVER) が "1" に 変わるのと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であってもトグルビットフラグ (TOGGLE) は再チェックする必要が あります。 データポーリングフラグ (DPOLL) でも同様に , タイミングリミット超過フラグ (TLOVER) と同時に変わるので , データポーリングフラグ (DPOLL) を再チェックする 必要があります。 641 第 26 章 フラッシュメモリ 図 26.5-2 セクタ消去手順の例 消去開始 FLCR: WE (bit5) フラッシュメモリ消去許可 1 セクタ消去タイマ値 0 消去コマンドシーケンス D5557H CAAABH D5557H D5557H CAAABH AAH 55H 80H AAH 55H 消去セクタへコード入力(30H) YES 消去セクタがほかにあるか NO 内部アドレスリード 内部アドレスリード 1 次セクタ 内部アドレスリード 2 トグルビット(TOGGLE) データ1 = データ2 ? YES NO 0 タイミングリミット (TLOVER) 1 内部アドレスリード 1 内部アドレスリード 2 NO トグルビット(TOGGLE) データ1 = データ2 ? YES 消去完了 ハードウェアシーケンス フラグによる確認 最終セクタの消去? YES FLCR: WE (bit5) フラッシュメモリ消去禁止 消去完了 642 NO 第 26 章 フラッシュメモリ 26.5.5 セクタ消去一時停止 セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタから , データを読み出すことが 可能です。 ■ フラッシュメモリのセクタ消去一時停止方法 フラッシュメモリのセクタ消去を一時停止するには , フラッシュメモリ内に表 26.4-1 のセクタ消去一時停止コマンドを送ることで実行可能です。 セクタ消去の一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセ クタからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書 込みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去 ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20µs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セク タ消去コマンドあるいはセクタ消去再開コマンド発行後 , 20 µs 以上後に行ってくださ い。 643 第 26 章 フラッシュメモリ 26.5.6 セクタ消去再開 セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリのセクタ消去再開方法 一時停止したセクタ消去を再開させるには , フラッシュメモリ内に表 26.4-1 のセクタ 消去再開コマンドを送ることで実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドです。このコマンドは消去再 開コード (30H) の書込みを行うことで実施されますが , このときのアドレスはフラッ シュメモリ領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 644 第 26 章 フラッシュメモリ 26.6 ワイルドレジスタ ワイルドレジスタ機能とは , 内蔵 ROM のデータを任意のデータに置換する機能で す。 置換を行うアドレスとデータの組をチャネルとよびます。本シリーズでは 2 チャネ ル分のデータ置換が可能です。置換データはワード単位 (4 バイト ) での設定となり ます。 本機能の詳細につきましては , 弊社担当までお問い合わせください。 645 第 26 章 フラッシュメモリ 26.7 フラッシュメモリプログラミングの注意事項 フラッシュメモリへのプログラミングについての注意事項について説明します。 ■ フラッシュメモリプログラミングの注意事項 プログラムを用いてフラッシュメモリを書き換える場合 , 下記の内容にご注意くださ い。 • フラッシュメモリ書込み中にリセットが発生すると , リセット発生時に書き込んで いる内容は保証されません。 • フラッシュメモリ書込みモード中 (FLCR レジスタの WE=1) には , フラッシュメモ リ上のプログラムの実行を行わないでください。さらに , 同じ条件で , フラッシュ メモリ上に割込みベクタテーブルがある場合は , 割込みを発生させないようにして ください。いずれの場合も , 正常な値を Flash から取り出せずにプログラムが正しく 実行されなくなります。 • フラッシュメモリに対する書込み終了の確認は , RDYフラグだけではなく , TOGGLE フラグもご確認ください。 フラッシュメモリが不良の場合 , 書込み終了を示す RDY フラグがセットされません ので , このフラグだけを参照すると , プログラムが無限ループに陥ります。 • フラッシュメモリ書込みモード中 (FLCR レジスタの WE=1) にはサブランモードお よび低消費電力モードには遷移しないようにしてください。 646 第 27 章 ハードウェア ウォッチドッグタイマ ハードウェアウォッチドッグタイマの機能につい て説明します。 27.1 ハードウェアウォッチドッグタイマの概要 27.2 ハードウェアウォッチドッグタイマの構成 27.3 ハードウェアウォッチドッグタイマのレジスタ 27.4 ハードウェアウォッチドッグタイマの機能 27.5 注意事項 647 第 27 章 ハードウェア ウォッチドッグタイマ 27.1 ハードウェアウォッチドッグタイマの概要 ハードウェアウォッチドッグタイマは , 内部カウンタが一定期間クリアされない場 合にリセット信号 ( 設定初期化リセット ) を発行します。 ■ ハードウェアウォッチドッグタイマ ハードウェアウォッチドッグタイマは , CPU 動作監視用のモジュールです。このタイ マは設定初期化リセット (INIT) 後 , 直ちにカウントアップを開始します。プログラム 実行を継続させるためには一定期間内に定期的にこのタイマをクリアする必要があり ます。無限ループに陥った場合などでカウンタが一定期間以上クリアされない場合は , リセット信号が発行されます。このリセット信号の幅はシステムベースクロックの 63 周期です。 <注意事項> CPU が下記のような動作を停止するモード ( スタンバイモード ) へ遷移した場合は , 本モ ジュールの動作も停止します。 • SLEEP モード :CPU 停止 , 周辺回路動作 • STOP モード :CPU および周辺回路停止 • RTC モード :CPU および RTC モジュールを除く周辺回路停止 , 発振子動作 下記条件のいずれかを満たすことにより , ハードウェアウォッチドッグタイマはクリアさ れます。 • HWDCS レジスタの CL ビットへの "0" 書込み • リセット • 発振停止 • SLEEP, STOP, RTC モード , いずれかへの遷移 648 第 27 章 ハードウェア ウォッチドッグタイマ 27.2 ハードウェアウォッチドッグタイマの構成 ハードウェアウォッチドッグタイマは , 以下の 2 つの回路で構成されます。 • ウォッチドッグタイマ • ハードウェアウォッチドッグタイマ制御レジスタ ■ ハードウェアウォッチドッグタイマのブロックダイヤグラム 図 27.2-1 ハードウェアウォッチドッグタイマのブロックダイヤグラム CR clock カウンタ リセット信号 FF クリア RESV0 RESV0 RESV0 RESV1 CL RESV0 RESV0 CPUF 内部バス ● ウォッチドッグタイマ CPU 動作を監視するためのタイマです。リセット解除後は定期的にクリアしてくださ い。 ● ハードウェアウォッチドッグタイマ制御レジスタ このレジスタにはリセットフラグとタイマのクリアビットがあります。 ● リセット発行 タイマがある一定期間以上クリアされない場合 , ハードウェアウォッチドッグタイマ モジュールは設定初期化リセット (INIT) の要因を発行します。内部リセット信号の幅 はシステムベースクロックの 63 周期となります。リセットシーケンスについての詳細 は , デバイス状態の項を参照してください。 649 第 27 章 ハードウェア ウォッチドッグタイマ 27.3 ハードウェアウォッチドッグタイマのレジスタ ハードウェアウォッチドッグタイマ制御レジスタには , リセットフラグとウォッチ ドッグタイマクリアビットがあります。 ■ ハードウェアウォッチドッグタイマ制御レジスタ HWDCS bit7 bit6 bit5 bit4 RESV0 RESV0 RESV0 RESV1 R/W R/W R/W R/W bit3 CL W bit2 bit1 RESV0 RESV0 R/W R/W bit0 初期値 CPUF R/W 00011000B R/W :リード / ライト可能 W :ライトオンリ [bit7 ∼ bit5] RESV0: 予約ビット これらのビットは予約ビットです。 必ず , "000B" を設定してください。 [bit4] RESV1: 予約ビット このビットは予約ビットです。 必ず , "1" を設定してください。 [bit3] CL: タイマクリアビット ウォッチドッグタイマクリアビットです。 このビットに "0" を書き込むことによって , ウォッチドッグタイマはクリアされま す。 読出し値は常に "1" です。"1" 書込みは無効です。 [bit2, bit1] RESV0: 予約ビット これらのビットは予約ビットです。 必ず , "00B" を設定してください。 [bit0] : CPUF: CPU リセットフラグ ウォッチドッグタイマにオーバフローが発生すると , このビットは "1" に設定され ます。 "0" 書込みによりこのビットはクリアされます。"1" 書込みは無効です。 外部リセット入力(INIT)およびクロックスーパバイザリセットにより初期化されま すが , 内部リセット ( ソフトウェアリセットなど ) では初期化されません。 650 第 27 章 ハードウェア ウォッチドッグタイマ 27.4 ハードウェアウォッチドッグタイマの機能 一定期間以上ウォッチドッグタイマがクリアされない場合は , 設定初期化リセット (INIT) が発行されます。この場合 CPU のレジスタ値は保障されません。 ■ ハードウェアウォッチドッグタイマの機能 リセット解除後 , 安定時間を待たずにハードウェアウォッチドッグタイマは直ちにカ ウントアップを開始します。一定期間タイマがクリアされない場合は設定初期化リ セット (INIT) が発行されます。 ■ ハードウェアウォッチドッグタイマの周期 ハードウェアウォッチドッグタイマのビット長は 16 ビットです。CR 発振子をタイマ のクロックとして使用しているために , その周期にはばらつきがあります。 CR 発振周期 (µs) ウォッチドッグ周期 (ms) Min Typ Max 8.7 10 11.8 569.88 655.36 771.01 651 第 27 章 ハードウェア ウォッチドッグタイマ 27.5 注意事項 ハードウェアウォッチドッグタイマの注意事項について説明します。 ■ ハードウェアウォッチドッグタイマの注意事項 ● ソフトウェアでの停止不可 ウォッチドッグタイマはリセット解除後 , 直ちに動作を開始します。ソフトウェアでは カウントを停止することはできません。 ● リセット抑止 ハードウェアウォッチドッグリセットを抑止するにはタイマのクリアが必要です。 ハードウェアウォッチドッグタイマ制御レジスタの CL ビットに "0" が書き込まれると タイマはいったんクリアされ , リセットの発行が抑止されます。 ● タイマの停止とクリア CPU が動作しないモード (SLEEP モード , STOP モード , RTC モード ) ではそれらのモー ドへの遷移前にタイマはクリアされ , カウントは停止します。 ● DMA 転送中の動作 D バスモジュールの DMA 転送中は , CL ビットへの "0" 書込みはできません。したがっ て , DMA 転送時間がウォッチドッグ周期より長い場合はリセットが発行されます。 ウォッチドッグ周期についての詳細は , 「27.4 ハードウェアウォッチドッグタイマの 機能」を参照してください。 652 付録 I/O マップ , 割込みベクタ , CPU ステートでの端子 状態 , について記載しています。 付録 A I/O マップ 付録 B 割込みベクタ 付録 C 各 CPU ステートにおける端子状態 付録 D シリアル書込み ( 非同期 ) 書込み例 付録 E シリアル書込み ( 同期 ) 書込み例 653 付録 付録 A I/O マップ 本品種に内蔵された周辺機能の各レジスタは , 付表 A-1 に示すアドレスが割り当て られています。 ■ I/O マップ [ 表の見方 ] アドレス 000000H レジスタ +0 PDR0 [R/W]B XXXXXXXX +1 PDR1 [R/W]B XXXXXXXX +2 PDR2 [R/W]B XXXXXXXX +3 PDR3 [R/W]B XXXXXXXX ブロック T-unit ポートデータ レジスタ リード/ライトアトリビュート,アクセス単位 (B:バイト,H:ハーフワード,W:ワード) リセット後のレジスタ初期値 レジスタ名(1コラムのレジスタが4n番地,2コラムが4n+1番地…) 最左のレジスタ番地(ワードでアクセスした際は、1コラム目」の レジスタがデータのMSB側となる) <注意事項> レジスタのビット値は , 以下のように初期値を表します。 "1": 初期値 "1" "0": 初期値 "0" "X": 初期値 "X" "-": その位置に物理的にレジスタがありません。 "Reserved" と記載されているアドレスへのアクセスは禁止です。 654 付録 A I/O マップ ■ メモリ空間領域と周辺リソースの各レジスタの対応 付表 A-1 I/O マップ (1 / 13) アドレス 000000H 000004H 000008H 00000CH 000010H 000014H | 00003CH レジスタ +1 PDR1 [R/W] B,H XXXXXXXX PDR5 [R/W] B,H XXXXXXXX PDR9 [R/W] B,H XXXXXXXX PDRD [R/W] B,H XXXXXXXX +2 PDR2 [R/W] B,H XXXXXXXX PDR6 [R/W] B,H XXXXXXXX PDRA [R/W] B,H ------XX PDRE [R/W] B,H XXXXXXXX − − − − − − − 000048H EIRR0 [R/W] ENIR0 [R/W] 00000000 00000000 DICR [R/W] HRCL [R,R/W] -------0 0--11111 TMRLR0 [W] XXXXXXXX XXXXXXXX 00004CH − 000050H TMRLR1 [W] XXXXXXXX XXXXXXXX 000054H − 000058H TMRLR2 [W] XXXXXXXX XXXXXXXX 000040H 000044H 00005CH 000060H 000064H 000068H 00006CH 000070H 000074H 000078H | 0000ACH 0000B0H 0000B4H 0000B8H 0000BCH ブロック +3 PDR3 [R/W] B,H XXXXXXXX PDR7 [R/W] B,H XXXXXXXX ポートデータレジスタ PDRB [R/W] B,H (PDRB ∼ PDRG は --XXXXXX PDRF [R/W] B,H MB91V280 のみ ) XXXXXXXX +0 PDR0 [R/W] B,H XXXXXXXX PDR4 [R/W] B,H XXXXXXXX PDR8 [R/W] B,H XXXXXXXX PDRC [R/W] B,H XXXXXXXX PDRG [R/W] B,H XXXXXXXX ELVR0 [R/W] 00000000 00000000 − − TMR0 [R] XXXXXXXX XXXXXXXX TMCSR0 [R,RW] 00000000 00000000 TMR1 [R] XXXXXXXX XXXXXXXX TMCSR1 [R,RW] 00000000 00000000 TMR2 [R] XXXXXXXX XXXXXXXX TMCSR2 [R,RW] 00000000 00000000 SSR0 [R,R/W] RDR0/TDR0 [R/W] 00001000 00000000 BGR10 [R/W] BGR00 [R/W] 00000000 00000000 SSR5 [R,R/W] RDR5/TDR5 [R/W] 00001000 00000000 BGR15 [R/W] BGR05 [R/W] 00000000 00000000 SSR6 [R,R/W] RDR6/TDR6 [R/W] 00001000 00000000 BGR16 [R/W] BGR06 [R/W] 00000000 00000000 − − SCR0 [R,R/W] 00000000 ESCR0 [R/W] 00000100 SCR5 [R,R/W] 00000000 ESCR5 [R/W] 00000100 SCR6 [R,R/W] 00000000 ESCR6 [R/W] 00000100 SMR0 [W,R/W] 00000000 ECCR0 [R,W,R/W] 000000XX SMR5 [W,R/W] 00000000 ECCR5 [R,W,R/W] 000000XX SMR6 [W,R/W] 00000000 ECCR6 [R,W,R/W] 000000XX − − − − SCR1 [R,R/W] 00000000 ESCR1 [R/W] 00000100 SCR2 [R,R/W] 00000000 ESCR2 [R/W] 00000100 SMR1 [W,R/W] 00000000 ECCR1 [R,W,R/W] 000000XX SMR2 [W,R/W] 00000000 ECCR2 [R,W,R/W] 000000XX SSR1 [R,R/W] 00001000 BGR11 [R/W] 00000000 SSR2 [R,R/W] 00001000 BGR12 [R/W] 00000000 RDR1/TDR1 [R/W] 00000000 BGR01 [R/W] 00000000 RDR2/TDR2 [R/W] 00000000 BGR02 [R/W] 00000000 予約 外部割込み INT0 ∼ INT7 DLY / I-Unit リロードタイマ 0 リロードタイマ 1 リロードタイマ 2 LIN-UART0 LIN-UART5 LIN-UART6 予約 LIN-UART1 LIN-UART2 655 付録 付表 A-1 I/O マップ (2 / 13) アドレス 0000C0H 0000C4H 0000C8H 0000CCH 0000D0H 0000D4H 0000D8H 0000DCH 0000E0H 0000E4H 0000E8H 0000ECH 0000F0H 0000F4H 0000F8H 0000FCH レジスタ +0 SCR3 [R,R/W] SMR3 [W,R/W] 00000000 00000000 ESCR3 [R/W] ECCR3 [R,W,R/W] 00000100 000000XX SCR4 [R,R/W] SMR4 [W,R/W] 00000000 00000000 ESCR4 [R/W] ECCR4 [R,W,R/W] 00000100 000000XX EIRR1 [R/W] ENIR1 [R/W] 00000000 00000000 TCTD0 [R/W] H 00000000 00000000 TCTD1 [R/W] H 00000000 00000000 TCTD2 [R/W] H 00000000 00000000 TCTD3 [R/W] H 00000000 00000000 IPCP1 [R] XXXXXXXX XXXXXXXX − − − − 000114H 000118H 00011CH − IPCP7 [R] XXXXXXXX XXXXXXXX 000104H 000110H − IPCP5 [R] XXXXXXXX XXXXXXXX − 00010CH − IPCP3 [R] XXXXXXXX XXXXXXXX 000100H 000108H +1 − − OCCP1 [R/W] XXXXXXXX XXXXXXXX OCCP3 [R/W] XXXXXXXX XXXXXXXX OCS23 [R/W] 11101100 00001100 OCCP5 [R/W] XXXXXXXX XXXXXXXX OCCP7 [R/W] XXXXXXXX XXXXXXXX OCS67 [R/W] 11101100 00001100 +2 +3 SSR3 [R,R/W] RDR3/TDR3 [R/W] 00001000 00000000 BGR13 [R/W] BGR03 [R/W] 00000000 00000000 SSR4 [R,R/W] RDR4/TDR4 [R/W] 00001000 00000000 BGR14 [R/W] BGR04 [R/W] 00000000 00000000 ELVR1 [R/W] 00000000 00000000 TCCS0 [R/W] B − 00000000 TCCS1 [R/W] B − 00000000 TCCS2 [R/W] B − 00000000 TCCS3 [R/W] B − 00000000 IPCP0 [R] XXXXXXXX XXXXXXXX ICS01 [R/W] − 00000000 IPCP2 [R] XXXXXXXX XXXXXXXX ICS23 [R/W] − 00000000 IPCP4 [R] XXXXXXXX XXXXXXXX ICS45 [R/W] − 00000000 IPCP6 [R] XXXXXXXX XXXXXXXX ICS67 [R/W] − 00000000 − − OCCP0 [R/W] XXXXXXXX XXXXXXXX OCCP2 [R/W] XXXXXXXX XXXXXXXX OCS01 [R/W] 11101100 00001100 OCCP4 [R/W] XXXXXXXX XXXXXXXX OCCP6 [R/W] XXXXXXXX XXXXXXXX OCS45 [R/W] 11101100 00001100 000120H | 00012CH − − 000130H EIRR2 [R/W] 00000000 ENIR2 [R/W] 00000000 ELVR2 [R/W] 00000000 00000000 000134H EIRR3 [R/W] 00000000 ENIR3 [R/W] 00000000 ELVR3 [R/W] 00000000 00000000 656 − − ブロック LIN-UART3 LIN-UART4 外部割込み INT8 ∼ INT15 フリーランタイマ 0 フリーランタイマ 1 フリーランタイマ 2 フリーランタイマ 3 インプットキャプ チャユニット 0, 1 インプットキャプ チャユニット 2, 3 インプットキャプ チャユニット 4, 5 インプットキャプ チャユニット 6, 7 予約 OCU1/OCU0 OCU3/OCU2 OCU 3-0 Ctrl. OCU5/OCU4 OCU7/OCU6 OCU 7-4 Ctrl. 予約 外部割込み INT16 ∼ INT23 外部割込み INT 24 ∼ INT31 (MB91V280 のみ ) 付録 A I/O マップ 付表 A-1 I/O マップ (3 / 13) アドレス 000138H 00013CH 000140H 000144H 000148H 00014CH 000150H 000154H 000158H 00015CH 000160H 000164H | 00016CH 000170H 000174H 000178H 00017CH 000180H 000184H 000188H 00018CH 000190H 000194H 000198H 00019CH 0001A0H 0001A4H レジスタ +0 +1 EIRR4 [R/W] 00000000 ENIR4 [R/W] 00000000 +2 +3 ELVR4 [R/W] 00000000 00000000 DACR [R/W] -----000 DADR1 [R/W] ------00 00000000 WTDBL [R/W] B − ------00 DADR0 [R/W] ------00 00000000 DADBL [R/W] − -------0 WTCR [R/W] B,H 00000000 000-00-X WTBR [R/W] B − ---XXXXX XXXXXXXX XXXXXXXX WTHR [R/W] B,H WTMR [R/W] B,H WTSR [R/W] B − XXXXXXXX XXXXXXXX --XXXXXXXX ADERH [R/W] ADERL [R/W] 00000000 00000000 00000000 00000000 ADCS1 [R/W] ADCS0 [R,R/W] ADCR1 [R] ADCR0 [R] 00000000 00000000 ------XX XXXXXXXX ADCT1 [R/W] ADCT0 [R/W] ADSCH [R/W] ADECH [R/W] 00010000 00101100 ---00000 ---00000 CUCR [R/W] B,H,W CUTD [R/W] B,H,W -------- ---0 0 10000000 00000000 CUTR1 [R] B,H,W CUTR2 [R] B,H,W -------- 00000000 00000000 00000000 − − − RCR1 [W] B,H RCR0 [W] B,H 00000000 00000000 CCRH0 [R/W] B,H CCRL0 [R/W] B,H 00000000 -0000000 CCRH1 [R/W] B,H CCRL1 [R/W] B,H -0000000 -0000000 − − RCR3 [W] B,H RCR2 [W] B,H 00000000 00000000 CCRH2 [R/W] B,H CCRL2 [R/W] B,H 00000000 -0000000 CCRH3 [R/W] B,H CCRL3 [R/W] B,H -0000000 -0000000 − − AD2ERH [R/W] 00000000 00000000 AD2CS1 [R/W] AD2CS0 [R,R/W] 00000000 00000000 AD2CT1 [R/W] AD2CT0 [R/W] 00010000 00101100 − − CMPR [R/W] B,H --000010 11111101 CMT1 [R/W] B,H,W 00000000 10000000 ブロック 外部割込み INT 32 ∼ INT39 (MB91V280 のみ ) DAC (MB91V280 のみ ) リアルタイムクロック ADC クロック補正 (MB91V280 およびサ フィックス "S" 付き 品種以外 ) − − 予約 UDCR1 [R] B,H 00000000 アップダウン カウンタ 0/1 − UDCR0 [R] B,H 00000000 CSR0 [R/W] B 00000000 CSR1 [R/W] B 00000000 − − 予約 UDCR3 [R] B,H 00000000 アップダウン カウンタ 2/3 − UDCR2 [R] B,H 00000000 CSR2 [R/W] B 00000000 CSR3 [R/W] B 00000000 − − 予約 − − AD2ERL [R/W] 00000000 00000000 AD2CR1 [R] AD2CR0 [R] ------XX XXXXXXXX AD2SCH [R/W] AD2ECH [R/W] ---00000 ---00000 − − ADC 2 (MB91V280 のみ ) 予約 CMCR [R/W] B,H -0010000 クロックモジュレータ CMT2 [R/W] B,H,W 00000000 00000000 − 657 付録 付表 A-1 I/O マップ (4 / 13) アドレス レジスタ +0 +1 0001A8H CANPRE [R,R/W] 00000000 − 0001ACH − − 0001B0H 0001B4H 0001B8H 0001BCH 0001C0H 0001C4H 0001C8H 0001CCH 0001D0H 0001D4H 0001D8H 0001DCH 0001E0H 0001E4H 0001E8H 0001ECH 0001F0H 0001F4H 0001F8H 0001FCH 658 +2 +3 EISSR [R/W] B,H 00000000 00000000 − − PRLH0 [R/W] B,H,W PRLL0 [R/W] B,H,W PRLH1 [R/W] B,H,W PRLL1 [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PRLH2 [R/W] B,H,W PRLL2 [R/W] B,H,W PRLH3 [R/W] B,H,W PRLL3 [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PPGC0 [R/W] B,H,W PPGC1 [R/W] B,H,W PPGC2 [R/W] B,H,W PPGC3 [R/W] B,H,W 0000000X 0000000X 0000000X 0000000X − − − − PRLH4 [R/W] B,H,W PRLL4 [R/W] B,H,W PRLH5 [R/W] B,H,W PRLL5 [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PRLH6 [R/W] B,H,W PRLL6 [R/W] B,H,W PRLH7 [R/W] B,H,W PRLL7 [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PPGC4 [R/W] B,H,W PPGC5 [R/W] B,H,W PPGC6 [R/W] B,H,W PPGC7 [R/W] B,H,W 0000000X 0000000X 0000000X 0000000X − − − − PRLH8 [R/W] B,H,W PRLL8 [R/W] B,H,W PRLH9 [R/W] B,H,W PRLL9 [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PRLHA [R/W] B,H,W PRLLA [R/W] B,H,W PRLHB [R/W] B,H,W PRLLB [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PPGC8 [R/W] B,H,W PPGC9 [R/W] B,H,W PPGCA [R/W] B,H,W PPGCB [R/W] B,H,W 0000000X 0000000X 0000000X 0000000X − − − − PRLHC [R/W] B,H,W PRLLC [R/W] B,H,W PRLHD [R/W] B,H,W PRLLD [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PRLHE [R/W] B,H,W PRLLE [R/W] B,H,W PRLHF [R/W] B,H,W PRLLF [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX PPGCC [R/W] B,H,W PPGCD [R/W] B,H,W PPGCE [R/W] B,H,W PPGCF [R/W] B,H,W 0000000X 0000000X 0000000X 0000000X − − PPGTRG [R/W] B,H,W 00000000 00000000 PPGSWAP [R/W] B − 00000000 CMCLKR [R/W] B − ----0000 − − − − PPGREVC [R/W] B,H,W 00000000 00000000 ブロック CAN クロック プリスケーラ / 外部割込み 入力端子選択 予約 PPG0 ∼ PPG3 予約 PPG4 ∼ PPG7 予約 PPG8 ∼ PPGB 予約 PPGC ∼ PPGF 予約 PPG0 ∼ PPGF 動作許可 / 出力反転 PPG0 ∼ PPGF 出力スワップ − − − − クロックモニタ − − 予約 付録 A I/O マップ 付表 A-1 I/O マップ (5 / 13) アドレス レジスタ +0 000204H 000208H 00020CH 000210H 000214H 000218H 00021CH 000220H 000224H − 0003F0H 0003F4H 0003F8H 0003FCH 000400H 000404H 000408H 00040CH 000410H 000414H | 00041C0H +3 − − − − − − − − 予約 DMAC − BSD0 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX BSD1 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX BSDC [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX BSRR [R] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX DDR0 [R/W] B,H DDR1 [R/W] B,H DDR2 [R/W] B,H DDR3 [R/W] B,H 00000000 00000000 00000000 00000000 DDR4 [R/W] B,H DDR5 [R/W] B,H DDR6 [R/W] B,H DDR7 [R/W] B,H 00000000 00000000 00000000 00000000 DDR8 [R/W] B,H DDR9 [R/W] B,H DDRA [R/W] B,H DDRB [R/W] B,H 00000000 00000000 ------00 --000000 DDRC [R/W] B,H DDRD [R/W] B,H DDRE [R/W] B,H DDRF [R/W] B,H 00000000 00000000 00000000 00000000 DDRG [R/W] B,H − − − 00000000 − ブロック DMAC DMACR [R/W] 0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX 000240H 000244H | 0003ECH +2 DMACA0 [R/W] 00000000 00000000 00000000 00000000 DMACB0 [R/W] 00000000 00000000 00000000 00000000 DMACA1 [R/W] 00000000 00000000 00000000 00000000 DMACB1 [R/W] 00000000 00000000 00000000 00000000 DMACA2 [R/W] 00000000 00000000 00000000 00000000 DMACB2 [R/W] 00000000 00000000 00000000 00000000 DMACA3 [R/W] 00000000 00000000 00000000 00000000 DMACB3 [R/W] 00000000 00000000 00000000 00000000 DMACA4 [R/W] 00000000 00000000 00000000 00000000 DMACB4 [R/W] 00000000 00000000 00000000 00000000 000200H 000228H | 00023CH +1 − 予約 ビットサーチ データ方向レジスタ (DDRB ∼ DDRG は MB91V280 のみ ) 予約 659 付録 付表 A-1 I/O マップ (6 / 13) アドレス レジスタ ブロック +0 +1 +2 +3 PFR0 [R/W] B,H --00-00PFR4 [R/W] B,H 000000-PFR8 [R/W] B,H 00-00-0PFRC [R/W] B,H 00000000 PFRG [R/W] B,H 00000000 PFR1 [R/W] B,H -00-00--PFR5 [R/W] B,H -----00PFR9 [R/W] B,H 00000000 PFRD [R/W] B,H 00000000 PFR2 [R/W] B,H 00000000 PFR6 [R/W] B,H 00000000 PFRA [R/W] B,H ------00 PFRE [R/W] B,H 00000000 PFR3 [R/W] B,H 00000-00 PFR7 [R/W] B,H 00-----PFRB [R/W] B,H --000000 PFRF [R/W] B,H 00000000 − − − − − − − 予約 ICR00 [R,R/W] ---11111 ICR04 [R,R/W] ---11111 ICR08 [R,R/W] ---11111 ICR12 [R,R/W] ---11111 ICR16 [R,R/W] ---11111 ICR20 [R,R/W] ---11111 ICR24 [R,R/W] ---11111 ICR28 [R,R/W] ---11111 ICR32 [R,R/W] ---11111 ICR36 [R,R/W] ---11111 ICR40 [R,R/W] ---11111 ICR44 [R,R/W] ---11111 ICR01 [R,R/W] ---11111 ICR05 [R,R/W] ---11111 ICR09 [R,R/W] ---11111 ICR13 [R,R/W] ---11111 ICR17 [R,R/W] ---11111 ICR21 [R,R/W] ---11111 ICR25 [R,R/W] ---11111 ICR29 [R,R/W] ---11111 ICR33 [R,R/W] ---11111 ICR37 [R,R/W] ---11111 ICR41 [R,R/W] ---11111 ICR45 [R,R/W] ---11111 ICR02 [R,R/W] ---11111 ICR06 [R,R/W] ---11111 ICR10 [R,R/W] ---11111 ICR14 [R,R/W] ---11111 ICR18 [R,R/W] ---11111 ICR22 [R,R/W] ---11111 ICR26 [R,R/W] ---11111 ICR30 [R,R/W] ---11111 ICR34 [R,R/W] ---11111 ICR38 [R,R/W] ---11111 ICR42 [R,R/W] ---11111 ICR46 [R,R/W] ---11111 ICR03 [R,R/W] ---11111 ICR07 [R,R/W] ---11111 ICR11 [R,R/W] ---11111 ICR15 [R,R/W] ---11111 ICR19 [R,R/W] ---11111 ICR23 [R,R/W] ---11111 ICR27 [R,R/W] ---11111 ICR31 [R,R/W] ---11111 ICR35 [R,R/W] ---11111 ICR39 [R,R/W] ---11111 ICR43 [R,R/W] ---11111 ICR47 [R,R/W] ---11111 割込み制御ユニット − − − − 予約 000484H RSRR [R,R/W] 10000000 CLKR [R/W] 00000000 STCR [R/W] 00110011 WPR [W] XXXXXXXX CTBR [W] XXXXXXXX DIVR1 [R/W] 00000000 000488H − − TBCR [R/W] 00XXXX00 DIVR0 [R/W] 00000011 OSCCR [R/W] XXXXXXX0 00048CH − − − − 予約 000490H OSCR [W,R/W] 00000000 − − − 発振安定待ちタイマ 000494H | 0004A8H − − − − 予約 0004ACH − CSVCR [R/W] 0001XX00 − − クロック スーパバイザ 000420H 000424H 000428H 00042CH 000430H 000434H | 00043CH 000440H 000444H 000448H 00044CH 000450H 000454H 000458H 00045CH 000460H 000464H 000468H 00046CH 000470H | 00047CH 000480H 660 ポートファンクション レジスタ (PFRB ∼ PFRG は MB91V280 のみ ) クロック制御ユニット − 付録 A I/O マップ 付表 A-1 I/O マップ (7 / 13) アドレス レジスタ ブロック +0 +1 +2 +3 − − − − PPER0 [R/W] B,H 00000000 PPER4 [R/W] B,H ----0000 PPER8 [R/W] B,H 00000000 PPERC [R/W] B,H 00000000 PPERG [R/W] B,H 00000000 PPER1 [R/W] B,H 00000000 PPER5 [R/W] B,H --000000 PPER9 [R/W] B,H 00000000 PPERD [R/W] B,H 00000000 PPER2 [R/W] B,H 00000000 PPER6 [R/W] B,H 00000000 PPERA [R/W] B,H ------00 PPERE [R/W] B,H 00000000 − − − − − − − PPCR0 [R/W] B,H 11111111 PPCR4 [R/W] B,H ----1111 PPCR8 [R/W] B,H 11111111 PPCRC [R/W] B,H 11111111 PPCRG [R/W] B,H 11111111 PPCR1 [R/W] B,H 11111111 PPCR5 [R/W] B,H --111111 PPCR9 [R/W] B,H 11111111 PPCRD [R/W] B,H 11111111 PPCR2 [R/W] B,H 11111111 PPCR6 [R/W] B,H 11111111 PPCRA [R/W] B,H ------11 PPCRE [R/W] B,H 11111111 − − − − − − − PILR0 [R/W] B,H 00000000 PILR4 [R/W] B,H 00000000 PILR8 [R/W] B,H 00000000 PILRC [R/W] B,H 00000000 PILRG [R/W] 00000000 PILR1 [R/W] B,H 00000000 PILR5 [R/W] B,H 00000000 PILR9 [R/W] B,H 00000000 PILRD [R/W] B,H 00000000 PILR2 [R/W] B,H 00000000 PILR6 [R/W] B,H 00000000 PILRA [R/W] B,H ------00 PILRE [R/W] B,H 00000000 PILR3 [R/W] B,H 00000000 PILR7 [R/W] B,H 00000000 PILRB [R/W] B,H --000000 PILRF [R/W] B,H 00000000 − − − − − − − 予約 000564H IBCR0 [R/W] 00000000 ITMKH0 [R/W,R] 00----11 I2C 0 − ITBAH0 [R/W] ------00 ISMK0 [R/W] 01111111 ICCR0 [R/W] -0011111 ITBAL0 [R/W] 00000000 ISBA0 [R/W] -0000000 000568H IBSR0 [R] 00000000 ITMKL0 [R/W] 11111111 IDAR0 [R/W] 00000000 00056CH − − − − 予約 000574H IBCR1 [R/W] 00000000 ITMKH1 [R/W,R] 00----11 I2C 1 − ITBAH1 [R/W] ------00 ISMK1 [R/W] 01111111 ICCR1 [R/W] -0011111 ITBAL1 [R/W] 00000000 ISBA1 [R/W] -0000000 000578H IBSR1 [R] 00000000 ITMKL1 [R/W] 11111111 IDAR1 [R/W] 00000000 0004B0H | 0004FCH 000500H 000504H 000508H 00050CH 000510H 000514H | 00051CH 000520H 000524H 000528H 00052CH 000530H 000534H | 00053CH 000540H 000544H 000548H 00054CH 000550H 000554H | 00055CH 000560H 000570H 予約 PPER3 [R/W] B,H 00000000 PPER7 [R/W] B,H ポートプルアップ・ 00000000 プルダウン許可 PPERB [R/W] B,H レジスタ --000000 PPERF [R/W] B,H (PPERB ∼ PPERG は 00000000 MB91V280 のみ ) 予約 PPCR3 [R/W] B,H 11111111 PPCR7 [R/W] B,H ポートプルアップ・ 00000000 プルダウン制御 PPCRB [R/W] B,H レジスタ --111111 PPCRF [R/W] B,H (PPCRB ∼ PPCRG は 11111111 MB91V280 のみ ) 予約 ポート入力レベル 選択レジスタ (PILRB ∼ PILRG は MB91V280 のみ ) − − 661 付録 付表 A-1 I/O マップ (8 / 13) アドレス レジスタ ブロック +0 +1 +2 +3 − − − − 予約 000584H IBCR2 [R/W] 00000000 ITMKH2 [R/W,R] 00----11 I2C 2 − ITBAH2 [R/W] ------00 ISMK2 [R/W] 01111111 ICCR2 [R/W] 00011111 ITBAL2 [R/W] 00000000 ISBA2 [R/W] -0000000 000588H IBSR2 [R] 00000000 ITMKL2 [R/W] 11111111 IDAR2 [R/W] 00000000 00058CH − − − − 予約 000590H | 0005F8H − − − − 予約 0005FCH − − − ハードウェア ウォッ チドッグタイマ 00057CH 000580H 000600H 000604H 000608H 00060CH 000610H 000614H | 00061CH 000620H 000624H 000628H 00062CH 000630H 000634H | 00063CH 662 − HWDCS [R/W] B, H 00011000 EPFR1 [R/W] B,H ------0EPFR5 [R/W] B,H 00000000 EPFR9 [R/W] B,H ----0000 EPFRD [R/W] B,H 00000000 EPFR2 [R/W] B,H 00000000 EPFR6 [R/W] B,H 00000000 EPFRA [R/W] B,H ------00 EPFRE [R/W] B,H 00000000 − − − − − − − PIDR0 [R] B,H XXXXXXXX PIDR4 [R] B,H XXXXXXXX PIDR8 [R] B,H XXXXXXXX PIDRC [R] B,H XXXXXXXX PIDRG [R] B,H XXXXXXXX PIDR1 [R] B,H XXXXXXXX PIDR5 [R] B,H XXXXXXXX PIDR9 [R] B,H XXXXXXXX PIDRD [R] B,H XXXXXXXX PIDR2 [R] B,H XXXXXXXX PIDR6 [R] B,H XXXXXXXX PIDRA [R] B,H ------XX PIDRE [R] B,H XXXXXXXX PIDR3 [R] B,H XXXXXXXX PIDR7 [R] B,H XXXXXXXX PIDRB [R] B,H --XXXXXXXX PIDRF [R] B,H XXXXXXXX − − − − − − − EPFR0 [R/W] B,H 00000000 EPFR4 [R/W] B,H ----0-0EPFR8 [R/W] B,H ----0-0EPFRC [R/W] B,H 00000000 EPFRG [R/W] B,H 00000000 EPFR3 [R/W] B,H 00000000 EPFR7 [R/W] B,H 外部ポート機能 00000000 レジスタ EPFRB [R/W] B,H --000000 (EPFRB ∼ EPFRG は EPFRF [R/W] B,H MB91V280 のみ ) 00000000 予約 入力データダイレクト データレジスタ (PIDRB ∼ PIDRG は MB91V280 のみ ) 予約 付録 A I/O マップ 付表 A-1 I/O マップ (9 / 13) アドレス 000640H 000644H 000648H 00064CH 000650H | 00065CH 000660H 000664H レジスタ +0 +1 +2 ASR0 [R/W] 00000000 00000000 ASR1 [R/W] XXXXXXXX XXXXXXXX ASR2 [R/W] XXXXXXXX XXXXXXXX ASR3 [R/W] XXXXXXXX XXXXXXXX − +3 ブロック ACR0 [R/W] 00110*00 00000000 ACR1 [R/W] XXXX0X00 00X0XXXX ACR2 [R/W] XXXX0X00 00X0XXXX ACR3 [R/W] 01XX0X00 00X0XXXX − − AWR0 [R/W] 01110000 01011011 AWR2 [R/W] 0XXX0000 XX0X1XXX − T-Unit AWR1 [R/W] XXXX0000 XX0X1XXX AWR3 [R/W] 0XXX0000 0X0X1XXX 000668H | 00067FH − − − − 000680H CSER [R/W] ----0001 − − − 000684H | 0007F8H − − − − 予約 0007FCH − MODR [W] XXXXXXXX − − モードレジスタ 000800H | 000FFCH − − − − 予約 001000H − 001004H − 001008H − 00100CH − 001010H − 001014H − 001018H − 00101CH − 001020H − 001024H − 00102BH | 006FFCH − 007000H 0007004H FLCR [R/W] 0110X000 FLWC [R/W] 00000011 DMASA0 [R/W] ----0000 00000000 00000000 DMADA0 [R/W] ----0000 00000000 00000000 DMASA1 [R/W] ----0000 00000000 00000000 DMADA1 [R/W] ----0000 00000000 00000000 DMASA2 [R/W] ----0000 00000000 00000000 DMADA2 [R/W] ----0000 00000000 00000000 DMASA3 [R/W] ----0000 00000000 00000000 DMADA3 [R/W] ----0000 00000000 00000000 DMASA4 [R/W] 00000000 00000000 00000000 DMADA4 [R/W] 00000000 00000000 00000000 DMAC − − − − − − − − − 予約 Flash I/F 663 付録 付表 A-1 I/O マップ (10 / 13) アドレス 0007008H | 01FFFCH 020000H 020004H 020008H 02000CH 020010H 020014H 020018H 02001CH 020020H 020024H 020030H | 020034H 020038H | 02003CH 020040H 020044H 020048H 02004CH 020050H 020054H 020060H | 020064H 020068H | 02006CH 020080H 020090H 0200A0H 0200B0H 664 レジスタ +0 +1 +2 +3 − − − − CTRLR0 [R,R/W] 00000000 00000001 ERRCNT0 [R] 00000000 00000000 INTR0 [R] 00000000 00000000 BRPER0 [R,R/W] 00000000 00000000 IF1CREQ0 [R,R/W] 00000000 00000001 IF1MSK20 [R,R/W] 11111111 11111111 IF1ARB20 [R/W] 00000000 00000000 IF1MCTR0 [R,R/W] 00000000 00000000 IF1DTA10 [R/W] XXXXXXXX XXXXXXXX IF1DTB10 [R/W] XXXXXXXX XXXXXXXX ブロック 予約 STATR0 [R,R/W] 00000000 00000000 BTR0 [R,R/W] 00100011 00000001 TESTR0 [R,R/W] 00000000 00000000 − IF1CMSK0 [R,R/W] 00000000 00000000 IF1MSK10 [R,R/W] 11111111 11111111 IF1ARB10 [R/W] 00000000 00000000 − IF1DTA20 [R/W] XXXXXXXX XXXXXXXX IF1DTB20 [R/W] XXXXXXXX XXXXXXXX 予約 (IF1 data mirror, little endian byte ordering) − − IF2CREQ0 [R,R/W] 00000000 00000001 IF2MSK20 [R,R/W] 11111111 11111111 IF2ARB20 [R/W] 00000000 00000000 IF2MCTR0 [R,R/W] 00000000 00000000 IF2DTA10 [R/W] XXXXXXXX XXXXXXXX IF2DTB10 [R/W] XXXXXXXX XXXXXXXX − − IF2CMSK0 [R,R/W] 00000000 00000000 IF2MSK10 [R,R/W] 11111111 11111111 IF2ARB10 [R/W] 00000000 00000000 − IF2DTA20 [R/W] XXXXXXXX XXXXXXXX IF2DTB20 [R/W] XXXXXXXX XXXXXXXX 予約 (IF2 data mirror, little endian byte ordering) − − TREQR20 [R] 00000000 00000000 NEWDT20 [R] 00000000 00000000 INTPND20 [R] 00000000 00000000 MSGVAL20 [R] 00000000 00000000 − − TREQR10 [R] 00000000 00000000 NEWDT10 [R] 00000000 00000000 INTPND10 [R] 00000000 00000000 MSGVAL10 [R] 00000000 00000000 CAN 0 付録 A I/O マップ 付表 A-1 I/O マップ (11 / 13) アドレス 0200B4H | 0200FCH 020100H 020104H 020108H 02010CH 020110H 020114H 020118H 02011CH 020120H 020124H 020130H | 020134H 020138H | 02013CH 020140H 020144H 020148H 02014CH 020150H 020154H 020160H | 020164H 020168H | 02016CH 020180H 020190H 0201A0H 0201B0H レジスタ +0 +1 +2 +3 − − − − CTRLR1 [R,R/W] 00000000 00000001 ERRCNT1 [R] 00000000 00000000 INTR1 [R] 00000000 00000000 BRPER1 [R,R/W] 00000000 00000000 IF1CREQ1 [R,R/W] 00000000 00000001 IF1MSK21 [R,R/W] 11111111 11111111 IF1ARB21 [R/W] 00000000 00000000 IF1MCTR1 [R,R/W] 00000000 00000000 IF1DTA11 [R/W] XXXXXXXX XXXXXXXX IF1DTB11 [R/W] XXXXXXXX XXXXXXXX ブロック 予約 STATR1 [R,R/W] 00000000 00000000 BTR1 [R,R/W] 00100011 00000001 TESTR1 [R,R/W] 00000000 00000000 − IF1CMSK1 [R,R/W] 00000000 00000000 IF1MSK11 [R,R/W] 11111111 11111111 IF1ARB11 [R/W] 00000000 00000000 − IF1DTA21 [R/W] XXXXXXXX XXXXXXXX IF1DTB21 [R/W] XXXXXXXX XXXXXXXX 予約 (IF1 data mirror, little endian byte ordering) − − IF2CREQ1 [R,R/W] 00000000 00000001 IF2MSK21 [R,R/W] 11111111 11111111 IF2ARB21 [R/W] 00000000 00000000 IF2MCTR1 [R,R/W] 00000000 00000000 IF2DTA11 [R/W] XXXXXXXX XXXXXXXX IF2DTB11 [R/W] XXXXXXXX XXXXXXXX − − IF2CMSK1 [R,R/W] 00000000 00000000 IF2MSK11 [R,R/W] 11111111 11111111 IF2ARB11 [R/W] 00000000 00000000 CAN 1 (MB91V280) − IF2DTA21 [R/W] XXXXXXXX XXXXXXXX IF2DTB21 [R/W] XXXXXXXX XXXXXXXX 予約 (IF2 data mirror, little endian byte ordering) − − TREQR21 [R] 00000000 00000000 NEWDT21 [R] 00000000 00000000 INTPND21 [R] 00000000 00000000 MSGVAL21 [R] 00000000 00000000 − − TREQR11 [R] 00000000 00000000 NEWDT11 [R] 00000000 00000000 INTPND11 [R] 00000000 00000000 MSGVAL11 [R] 00000000 00000000 665 付録 付表 A-1 I/O マップ (12 / 13) アドレス 020200H 020204H 020208H 02020CH 020210H 020214H 020218H 02021CH 020220H 020224H 020230H | 020234H 020238H | 02023CH 020240H 020244H 020248H 02024CH 020250H 020254H 020260H | 020264H 020268H | 02026CH 020280H 020290H 0202A0H 0202B0H 034000H | 03FFFCH 666 レジスタ +0 +1 +2 +3 CTRLR2 [R,R/W] 00000000 00000001 STATR2 [R,R/W] 00000000 00000000 ERRCNT2 [R] 00000000 00000000 INTR2 [R] 00000000 00000000 BRPER2 [R,R/W] 00000000 00000000 IF1CREQ2 [R,R/W] 00000000 00000001 IF1MSK22 [R,R/W] 11111111 11111111 IF1ARB22 [R/W] 00000000 00000000 IF1MCTR2 [R,R/W] 00000000 00000000 IF1DTA12 [R/W] XXXXXXXX XXXXXXXX IF1DTB12 [R/W] XXXXXXXX XXXXXXXX BTR2 [R,R/W] 00100011 00000001 TESTR2 [R,R/W] 00000000 00000000 ブロック − IF1CMSK2 [R,R/W] 00000000 00000000 IF1MSK12 [R,R/W] 11111111 11111111 IF1ARB12 [R/W] 00000000 00000000 − IF1DTA22 [R/W] XXXXXXXX XXXXXXXX IF1DTB22 [R/W] XXXXXXXX XXXXXXXX 予約 (IF1 data mirror, little endian byte ordering) − − IF2CREQ2 [R,R/W] 00000000 00000001 IF2MSK22 [R,R/W] 11111111 11111111 IF2ARB22 [R/W] 00000000 00000000 IF2MCTR2 [R,R/W] 00000000 00000000 IF2DTA12 [R/W] XXXXXXXX XXXXXXXX IF2DTB12 [R/W] XXXXXXXX XXXXXXXX − − IF2CMSK2 [R,R/W] 00000000 00000000 IF2MSK12 [R,R/W] 11111111 11111111 IF2ARB12 [R/W] 00000000 00000000 CAN 2 (MB91V280) − IF2DTA22 [R/W] XXXXXXXX XXXXXXXX IF2DTB22 [R/W] XXXXXXXX XXXXXXXX 予約 (IF2 data mirror, little endian byte ordering) − − TREQR22 [R] 00000000 00000000 NEWDT22 [R] 00000000 00000000 INTPND22 [R] 00000000 00000000 MSGVAL22 [R] 00000000 00000000 − − − − TREQR12 [R] 00000000 00000000 NEWDT12 [R] 00000000 00000000 INTPND12 [R] 00000000 00000000 MSGVAL12 [R] 00000000 00000000 − − F-bus RAM (MB91V280) 付録 A I/O マップ 付表 A-1 I/O マップ (13 / 13) アドレス 03A000H | 03FFFCH 080000H | 0FFFFCH レジスタ ブロック +0 +1 +2 +3 − − − − F-bus RAM (MB91F273(S) MB91F278(S)) − − − − フラッシュメモリ (MB91F273(S) MB91F278(S)) 667 付録 付録 B 割込みベクタ 付表 B-1 に割込みベクタテーブルを示します。割込みベクタテーブルには , 本品種 の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載されています。 ■ 割込みベクタ 付表 B-1 割込みベクタテーブル (1 / 4) 割込み番号 割込みレベル DMA 割込みベクタ 割込み要因 10 進 16 進 レジスタ アドレス オフセット TBR デフォル トアドレス RN リセット 0 00 − − 3FCH 000FFFFCH − モードベクタ 1 01 − − 3F8H 000FFFF8H − システム予約 2 02 − − 3F4H 000FFFF4H − システム予約 3 03 − − 3F0H 000FFFF0H − システム予約 4 04 − − 3ECH 000FFFECH − システム予約 5 05 − − 3E8H 000FFFE8H − システム予約 6 06 − − 3E4H 000FFFE4H − コプロセッサ 不在トラップ 7 07 − − 3E0H 000FFFE0H − コプロセッサ エラートラップ 8 08 − − 3DCH 000FFFDCH − INTE 命令 9 09 − − 3D8H 000FFFD8H − システム予約 10 0A − − 3D4H 000FFFD4CH − システム予約 11 0B − − 3D0H 000FFFD0H − ステップトレース トラップ 12 0C − − 3CCH 000FFFCCH − NMI 要求 (tool) 13 0D − − 3C8H 000FFFC8H − 未定義命令例外 14 0E − − 3C4H 000FFFC4H − NMI 要求 15 0F 15(FH) fixed − 3C0H 000FFFC0H − 外部割込み 0 16 10 ICR00 440H 3BCH 000FFFBCH 6 外部割込み 1 17 11 ICR01 441H 3B8H 000FFFB8H 7 外部割込み 2 18 12 ICR02 442H 3B4H 000FFFB4H − 外部割込み 3 19 13 ICR03 443H 3B0H 000FFFB0H − 668 Stop 付録 B 割込みベクタ 付表 B-1 割込みベクタテーブル (2 / 4) 割込み番号 割込みレベル DMA 割込みベクタ 割込み要因 10 進 16 進 レジスタ アドレス オフセット TBR デフォル トアドレス RN 外部割込み 4 20 14 ICR04 444H 3ACH 000FFFACH − 外部割込み 5 21 15 ICR05 445H 3A8H 000FFFA8H − 外部割込み 6 22 16 ICR06 446H 3A4H 000FFFA4H − 外部割込み 7 23 17 ICR07 447H 3A0H 000FFFA0H − リロードタイマ 0 24 18 ICR08 448H 39CH 000FFF9CH 8 リロードタイマ 1 25 19 ICR09 449H 398H 000FFF98H 9 リロードタイマ 2 26 1A ICR10 44AH 394H 000FFF94H 10 LIN-UART 0 受信 27 1B ICR11 44BH 390H 000FFF90H 0 LIN-UART 0 送信 28 1C ICR12 44CH 38CH 000FFF8CH 3 LIN-UART 1 受信 29 1D ICR13 44DH 388H 000FFF88H 1 LIN-UART 1 送信 30 1E ICR14 44EH 384H 000FFF84H 4 LIN-UART 2 受信 31 1F ICR15 44FH 380H 000FFF80H 2 LIN-UART 2 送信 32 20 ICR16 450H 37CH 000FFF7CH 5 CAN0 33 21 ICR17 451H 378H 000FFF78H − CAN1/ICU 6/7 34 22 ICR18 452H 374H 000FFF74H − CAN2 35 23 ICR19 453H 370H 000FFF70H − LIN-UART3/5 受信 36 24 ICR20 54H 36CH 000FFF6CH − LIN-UART3/5 送信 37 25 ICR21 455H 368H 000FFF68H − LIN-UART4/6 受信 38 26 ICR22 456H 364H 000FFF64H − LIN-UART4/6 送信 39 27 ICR23 457H 360H 000FFF60H − I2C0 40 28 ICR24 458H 35CH 000FFF5CH − I2C1/UDC 2 41 29 ICR25 459H 358H 000FFF58H − I2C2 42 2A ICR26 45AH 354H 000FFF54H − A/D コンバータ 43 2B ICR27 45BH 350H 000FFF50H 14 RTC 44 2C ICR28 45CH 34CH 000FFF4CH − UDC1 45 2D ICR29 45DH 348H 000FFF48H − メイン発振 安定待ちタイマ 46 2E ICR30 45EH 344H 000FFF44H − Stop Stop Stop Stop 669 付録 付表 B-1 割込みベクタテーブル (3 / 4) 割込み番号 割込みレベル 割込みベクタ 割込み要因 DMA 10 進 16 進 レジスタ アドレス オフセット TBR デフォル トアドレス RN TBT オーバフロー 47 2F ICR31 45FH 340H 000FFF40H − PPG0/1/4/5 48 30 ICR32 460H 33CH 000FFF3CH − PPG2/3/6/7 49 31 ICR33 461H 338H 000FFF38H − PPG8/9/C/D 50 32 ICR34 462H 334H 000FFF34H − PPGA/B/E/F 51 33 ICR35 463H 330H 000FFF30H − FRT0/FRT1 52 34 ICR36 464H 32CH 000FFF2CH − FRT2/FRT3 53 35 ICR37 465H 328H 000FFF28H − ICU0 ∼ ICU3 54 36 ICR38 466H 324H 000FFF24H − ICU4/ICU5 55 37 ICR39 467H 320H 000FFF20H − OCU0 ∼ OCU3 UDC3 56 38 ICR40 468H 31CH 000FFF1CH − OCU4 ∼ OCU7 57 39 ICR41 469H 318H 000FFF18H − UDC 0 58 3A ICR42 46AH 314H 000FFF14H − 外部割込み 8/9/10/11 59 3B ICR43 46BH 310H 000FFF10H − 外部割込み 12 ∼ 39 60 3C ICR44 46CH 30CH 000FFF0CH − ROM コレクション 割込み 61 3D ICR45 46DH 308H 000FFF08H − DMA 62 3E ICR46 46EH 304H 000FFF04H − 遅延割込み 63 3F ICR47 46FH 300H 000FFF00H − システム予約 (REALOS) 64 40 − − 2FCH 000FFEFCH − システム予約 (REALOS) 65 41 − − 2F8H 000FFEF8H − システム予約 66 42 − − 2F4H 000FFEF4H − システム予約 67 43 − − 2F0H 000FFEF0H − システム予約 68 44 − − 2ECH 000FFEECH − システム予約 69 45 − − 2E8H 000FFEE8H − システム予約 70 46 − − 2E4H 000FFEE4H − システム予約 71 47 − − 2E0H 000FFEE0H − 670 Stop 付録 B 割込みベクタ 付表 B-1 割込みベクタテーブル (4 / 4) 割込み番号 割込みレベル 割込みベクタ 割込み要因 DMA 10 進 16 進 レジスタ アドレス オフセット TBR デフォル トアドレス RN システム予約 72 48 − − 2DCH 000FFEDCH − システム予約 73 49 − − 2D8H 000FFED8H − システム予約 74 4A − − 2D4H 000FFED4H − システム予約 75 4B − − 2D0H 000FFED0H − システム予約 76 4C − − 2CCH 000FFECCH − システム予約 77 4D − − 2C8H 000FFEC8H − システム予約 78 4E − − 2C4H 000FFEC4H − システム予約 79 4F − − 2C0H 000FFEC0H − INT 命令で使用 80 | 255 50 | FF − 2BCH | 000H 000FFEBCH | 000FFC00H − − Stop ( 注意事項 ) CAN1, CAN2 および外部割込み 16 ∼ 39 は MB91V280 でのみ有効です。 671 付録 付録 C 各 CPU ステートにおける端子状態 付表 C-1 に端子状態一覧表で使用されている用語の説明を , および付表 C-2, 付表 C3 に各 CPU ステートにおける端子状態を示します。 ■ 端子状態一覧表の用語説明 付表 C-2, 付表 C-3 中の端子の状態として使用している語句は , 以下の意味を持ちます。 付表 C-1 端子状態一覧表の用語説明 用 語 672 説 明 入力可 入力機能が使用可能な状態であることを意味します。 入力遮断 端子からすぐの入力ゲートで , 外部入力を遮断します。 内部へは "L" レベルが伝わります。 出力 Hi-Z 端子駆動用トランジスタを駆動禁止状態にし , 端子をハイイ ンピーダンスにすることを意味します。 出力保持 このモードになる直前に出力していた状態をそのまま出力す ることを意味します。 すなわち , 出力のある内蔵周辺が動作中であれば , その内蔵周 辺にしたがって出力を行い , ポートなどとして出力している 場合には , その出力を保持します。 直前の状態を保持 このモードになる直前に出力していた状態をそのまま出力 , あるいは入力であれば入力可能を意味します。 付録 C 各 CPU ステートにおける端子状態 ■ 各 CPU ステートにおける端子状態一覧表 ● シングルチップモード 付表 C-2 シングルチップモード時の端子状態 (1 / 5) イニシャライズ時 ポート名 指定機能名 機能名 内 ROM モードベクタ (MD2 ∼ MD0=000B) INIT P00 P01 P02 P03 P04 P05 P06 P07 P10 P11 P12 P13 P14 P15 P16 P17 P20 P21 P22 P23 P24 P25 P26 P27 P30 P31 P32 P33 P34 P35 P36 P37 P40 P41 INT8/ SIN5 INT9 SOT5 INT10 SCK5 INT11 SIN6 INT12 SOT6 INT13 SCK6 INT14 INT15 TIN1 TOT1 SIN3 INT11R SOT3 SCK3 SIN4 SOT4 SCK4 PPG9 PPGB PPGD PPGF IN0 IN1 IN2 IN3 IN4 IN5 RX2 INT10R TX2 OUT4 OUT5 OUT6 OUT7 スリープ サブ スリープ ストップ時 RTC モード時 備考 HIZ=0 HIZ=1 直前状態 保持 出力 Hi-Z 入力遮断 RST P00 P01 P02 P03 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 *1 P04 P05 P06 P07 P10 P11 P12 P13 P14 P15 P16 P17 P20 P21 P22 P23 P24 P25 P26 P27 P30 P31 *1 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 P32 P33 P34 P35 P36 P37 P40 P41 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 673 付録 付表 C-2 シングルチップモード時の端子状態 (2 / 5) イニシャライズ時 ポート名 指定機能名 機能名 内 ROM モードベクタ (MD2 ∼ MD0=000B) INIT P42 P43 P44 P45 P46 P47 P50 P51 P52 P53 P54 P55 P56 P57 P60 P61 P62 P63 P64 P65 P66 P67 674 RX1 INT9R IN7 TX1 SDA0 FRCK0 SCL0 FRCK1 AIN2 SDA1 BIN2 SCL1 ZIN2 AN8 SIN2 AN9 SOT2 AN10 SCK2 AN11 BIN1 AN12 AIN1 AN13 ZIN1 AN14 DAO0 AN15 DAO1 AN0 PPG0 AN1 PPG2 AN2 PPG4 AN3 PPG6 AN4 PPG8 AN5 PPGA AN6 PPGC AN7 PPGE スリープ サブ スリープ ストップ時 RTC モード時 備考 HIZ=0 HIZ=1 RST *1 P42 P43 P44 P45 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 P46 P47 P50 P51 P52 P53 P54 P55 P56 P57 P60 P61 P62 P63 P64 P65 P66 P67 付録 C 各 CPU ステートにおける端子状態 付表 C-2 シングルチップモード時の端子状態 (3 / 5) イニシャライズ時 ポート名 指定機能名 機能名 内 ROM モードベクタ (MD2 ∼ MD0=000B) INIT P70 P71 P72 P73 P74 P75 P76 P77 P80 P81 P82 P83 P84 P85 P86 P87 AN16 INT0 AN17 INT1 AN18 INT2 AN19 INT3 AN20 INT4 AN21 INT5 AN22 INT6 SDA2 AN23 INT7 SCL2 TIN0 ADTG INT12R TOT0 CKOT INT13R SIN0 TIN2 INT14R SOT0 TOT2 SCK0 INT15R SIN1 SOT1 SCK1 P70 P71 スリープ サブ スリープ ストップ時 RTC モード時 備考 HIZ=0 HIZ=1 RST 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 P72 P73 P74 P75 P76 P77 P80 P81 P82 *1 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 P83 P84 *1 P85 P86 P87 675 付録 付表 C-2 シングルチップモード時の端子状態 (4 / 5) イニシャライズ時 ポート名 指定機能名 機能名 内 ROM モードベクタ (MD2 ∼ MD0=000B) INIT P90 P91 P92 P93 P94 P95 P96 P97 PA0 PA1 PB0 PB1 PB2 PB3 PB4 PB5 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 676 PPG1 PPG3 AIN3 PPG5 BIN3 PPG7 BIN3 OUT0 AIN0 OUT1 BIN0 OUT2 ZIN0 OUT3 RX0 INT8R TX0 INT8-2 SIN5-2 INT9-2 SOT5-2 INT10-2 SCK5-2 INT11-2 SIN6-2 INT12-2 SOT6-2 INT13-2 SCK6-2 OUT4-2 INT0R OUT5-2 INT1R SIN3-2 INT2R SOT3-2 INT3R SCK3-2 INT4R SIN4-2 INT5R SOT4-2 INT6R SCK4-2 INT7R スリープ サブ スリープ ストップ時 RTC モード時 備考 HIZ=0 HIZ=1 RST P90 P91 P92 P93 P94 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *2 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *2 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 P95 P96 P97 PA0 PA1 PB0 *1 PB1 PB2 PB3 PB4 PB5 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 付録 C 各 CPU ステートにおける端子状態 付表 C-2 シングルチップモード時の端子状態 (5 / 5) イニシャライズ時 ポート名 指定機能名 機能名 内 ROM モードベクタ (MD2 ∼ MD0=000B) INIT PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7 PG0 PG1 PG2 PG3 PG4 PG5 PG6 PG7 PPG9-2 INT16 PPGB-2 INT17 PPGD-2 INT18 PPGF-2 INT19 IN0-2 INT20 IN1-2 INT21 IN2-2 INT22 IN3-2 INT23 INT24 INT25 INT26 INT27 INT28 INT29 INT30 INT31 INT32 INT33 INT34 INT35 INT36 INT37 INT38 INT39 AN24 AN25 AN26 AN27 AN28 AN29 AN30 AN31 ストップ時 RTC モード時 スリープ 備考 サブ スリープ HIZ=0 HIZ=1 RST PD0 PD1 PD2 PD3 PD4 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 出力 Hi-Z 入力遮断 *1 PD5 PD6 PD7 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7 PG0 PG1 PG2 PG3 PG4 PG5 PG6 PG7 *1: 対応する外部割込みが ENIR で有効にされ , EISSR で外部割込み入力端子として選択されている 場合は , 入力可能となり , STOP 状態からの復帰に使用できます。 *2: 対応する外部割込みが ENIR で有効にされ , EPFR で外部割込み入力端子として選択されている 場合は , 入力可能となり , STOP 状態からの復帰に使用できます。 677 付録 ●外部バスモード - 設定初期化 (INIT) 状態時は , 外部バスインタフェース端子は出力状態です。INIT 端子が "L" に期間は , これらの端子は Hi-Z 状態です。INIT 端子が "H" 状態にな ると , 付表 C-3 に示す値を出力します。 - ポート 2, 3, 9, E, F では EPFR の設定により , 外部バスインタフェース出力をディ セーブルとすることができます。付表 C-3 においては , B:外部バスインタフェース機能状態 (EPFR=0) P:汎用ポート , もしくはペリフェラル機能状態 (EPFR=1) を意味します。 付表 C-3 外部バスモード時の端子状態 (1 / 7) ストップ時 RTC モード時 イニシャライズ / リセット時 初期値 ポート名 指定機能名 P00 P01 P02 P03 P04 P05 P06 P07 678 AD00 INT8/ SIN5 AD01 INT9 SOT5 AD02 INT10 SCK5 AD03 INT11 SIN6 AD04 INT12 SOT6 AD05 INT13 SCK6 AD06 INT14 AD07 INT15 スリープ 外 ROM 内 ROM サブ 機能名 モードベクタ モードベクタ スリープ (MD2 ∼ (MD2 ∼ MD0=001B) MD0=000B) 備考 HIZ=0 HIZ=1 AD00 AD01 AD02 AD03 出力 Hi-Z 入力可 AD04 AD05 AD06 AD07 出力 Hi-Z 入力可 アドレス 出力 (MPX) 同左 出力 Hi-Z 入力可 ( データ ) 出力 Hi-Z 入力遮断 *1 付録 C 各 CPU ステートにおける端子状態 付表 C-3 外部バスモード時の端子状態 (2 / 7) ストップ時 RTC モード時 イニシャライズ / リセット時 初期値 ポート名 指定機能名 P10 P11 P12 P13 P14 P15 P16 P17 P20 P21 P22 P23 P24 P25 P26 P27 P30 P31 P32 P33 P34 AD08 TIN1 AD09 TOT1 AD10 SIN3 INT11R AD11 SOT3 AD12 SCK3 AD13 SIN4 AD14 SOT4 AD15 SCK4 A16 PPG9 A17 PPGB A18 PPGD A19 PPGF A20 IN0 A21 IN1 A22 IN2 A23 IN3 AS IN4 RD IN5 WR0 RX2 INT10R WR1 TX2 OUT4 スリープ 外 ROM 内 ROM サブ 機能名 モードベクタ モードベクタ スリープ (MD2 ∼ (MD2 ∼ MD0=001B) MD0=000B) 備考 HIZ=0 HIZ=1 AD08 AD09 AD10 出力 Hi-Z 入力可 出力 Hi-Z 入力可 AD11 アドレス 出力 (MPX) 同左 出力 Hi-Z 入力遮断 同左 出力 Hi-Z 入力遮断 同左 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 ( データ ) *1 AD12 AD13 AD14 出力 Hi-Z 入力可 出力 Hi-Z 入力可 AD15 アドレス 出力 (MPX) 出力 Hi-Z 入力可 ( データ ) A16 A17 A18 A19 A20 FFH 出力 出力 Hi-Z 入力可 A21 B: アドレス 出力 P: 直前状態 保持 *2 A22 A23 AS *2 RD "H" 出力 WR0 出力 Hi-Z 入力可 直前状態 保持 同左 *1 *2 *2 WR1 P34 出力 Hi-Z 入力遮断 出力 Hi-Z 入力可 直前状態 保持 直前状態 保持 679 付録 付表 C-3 外部バスモード時の端子状態 (3 / 7) ストップ時 RTC モード時 イニシャライズ / リセット時 スリープ 初期値 ポート名 指定機能名 P35 OUT5 P36 RDY OUT6 内 ROM 外 ROM サブ 機能名 モードベクタ モードベクタ スリープ (MD2 ∼ (MD2 ∼ MD0=001B) MD0=000B) 出力 Hi-Z 入力可 RDY 直前状態 保持 B: 出力 Hi-Z 出力 Hi-Z 入力可 出力 Hi-Z 入力可 P37 SYSCLK OUT7 P40 P41 P42 P43 P44 P45 P46 P47 P50 P51 P52 P53 P54 P55 P56 P57 680 P37 P: 直前状態 保持 B: クロック 出力 クロック出力 P: 直前状態 保持 P40 P41 RX1 INT9R IN7 TX1 SDA0 FRCK0 SCL0 AIN2 FRCK1 SDA1 BIN2 SCL1 ZIN2 AN8 SIN2 AN9 SOT2 AN10 SCK2 AN11 BIN1 AN12 AIN1 AN13 ZIN1 AN14 DAO0 AN15 DAO1 P42 P43 P44 シングルチップモードと同様 P45 P46 P47 P50 P51 P52 シングルチップモードと同様 P53 P54 P55 P56 P57 シングルチップモードと同様 備考 HIZ=0 HIZ=1 直前状態 保持 *2 同左 出力 Hi-Z 入力遮断 B: "H" 出力 P: 直前状態 保持 *2 付録 C 各 CPU ステートにおける端子状態 付表 C-3 外部バスモード時の端子状態 (4 / 7) ストップ時 RTC モード時 イニシャライズ / リセット時 初期値 ポート名 指定機能名 P60 P61 P62 P63 P64 P65 P66 P67 P70 P71 P72 P73 P74 P75 P76 P77 P80 P81 AN0 PPG0 AN1 PPG2 AN2 PPG4 AN3 PPG6 AN4 PPG8 AN5 PPGA AN6 PPGC AN7 PPGE AN16 INT0 AN17 INT1 AN18 INT2 AN19 INT3 AN20 INT4 AN21 INT5 AN22 INT6 SDA2 AN23 INT7 SCL2 TIN0 ADTG INT12R TOT0 CKOT INT13R スリープ 外 ROM 内 ROM サブ 機能名 モードベクタ モードベクタ スリープ (MD2 ∼ (MD2 ∼ MD0=001B) MD0=000B) 備考 HIZ=0 HIZ=1 P60 P61 シングルチップモードと同様 P62 P63 P64 P65 シングルチップモードと同様 P66 P67 P70 P71 P72 P73 P74 シングルチップモードと同様 P75 P76 P77 P80 シングルチップモードと同様 P81 681 付録 付表 C-3 外部バスモード時の端子状態 (5 / 7) ストップ時 RTC モード時 イニシャライズ / リセット時 スリープ 初期値 ポート名 指定機能名 P82 P83 P84 P85 P86 P87 P90 P91 P92 P93 P94 P95 P96 P97 PA0 PA1 PB0 PB1 PB2 PB3 PB4 PB5 PC0 682 SIN0 TIN2 INT14R SOT0 TOT2 SCK0 INT15R SIN1 SOT1 SCK1 CS0 PPG1 CS1 PPG3 AIN3 CS2 PPG5 BIN3 CS3 PPG7 BIN3 OUT0 AIN0 OUT1 BIN0 OUT2 ZIN0 OUT3 RX0 INT8R TX0 INT8-2 SIN5-2 INT9-2 SOT5-2 INT10-2 SCK5-2 INT11-2 SIN6-2 INT12-2 SOT6-2 INT13-2 SCK6-2 OUT4-2 INT0R 内 ROM 外 ROM サブ 機能名 モードベクタ モードベクタ スリープ (MD2 ∼ (MD2 ∼ MD0=001B) MD0=000B) 備考 HIZ=0 HIZ=1 P82 P83 シングルチップモードと同様 P84 P85 P86 P87 CS0 B: "H" 出力 CS1 "H" 出力 CS2 出力 Hi-Z 入力可 P: 直前状態 保持 CS3 P94 P95 シングルチップモードと同様 P96 P97 PA0 シングルチップモードと同様 PA1 PB0 PB1 PB2 シングルチップモードと同様 PB3 PB4 PB5 PC0 シングルチップモードと同様 同左 出力 Hi-Z 入力遮断 *2 付録 C 各 CPU ステートにおける端子状態 付表 C-3 外部バスモード時の端子状態 (6 / 7) ストップ時 RTC モード時 イニシャライズ / リセット時 初期値 ポート名 指定機能名 PC1 PC2 PC3 PC4 PC5 PC6 PC7 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 OUT5-2 INT1R SIN3-2 INT2R SOT3-2 INT3R SCK3-2 INT4R SIN4-2 INT5R SOT4-2 INT6R SCK4-2 INT7R PPG9-2 INT16 PPGB-2 INT17 PPGD-2 INT18 PPGF-2 INT19 IN0-2 INT20 IN1-2 INT21 IN2-2 INT22 IN3-2 INT23 スリープ 内 ROM 外 ROM サブ 機能名 モードベクタ モードベクタ スリープ (MD2 ∼ (MD2 ∼ MD0=001B) MD0=000B) 備考 HIZ=0 HIZ=1 PC1 PC2 PC3 PC4 シングルチップモードと同様 PC5 PC6 PC7 PD0 PD1 PD2 PD3 シングルチップモードと同様 PD4 PD5 PD6 PD7 シングルチップモードと同様 683 付録 付表 C-3 外部バスモード時の端子状態 (7 / 7) ストップ時 RTC モード時 イニシャライズ / リセット時 スリープ 初期値 ポート名 指定機能名 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7 PG0 PG1 PG2 PG3 PG4 PG5 PG6 PG7 A00 INT24 A01 INT25 A02 INT26 A03 INT27 A04 INT28 A05 INT29 A06 INT30 A07 INT31 A08 INT32 A09 INT33 A10 INT34 A11 INT35 A12 INT36 A13 INT37 A14 INT38 A15 INT39 AN24 AN25 AN26 AN27 AN28 AN29 AN30 AN31 外 ROM 内 ROM サブ 機能名 モードベクタ モードベクタ スリープ (MD2 ∼ (MD2 ∼ MD0=001B) MD0=000B) 備考 HIZ=0 HIZ=1 A00 A01 A02 A03 "H" 出力 A04 出力 Hi-Z 入力可 A05 B: アドレス 出力 同左 出力 Hi-Z 入力遮断 *1 *2 同左 出力 Hi-Z 入力遮断 *1 *2 P: 直前状態 保持 A06 A07 A08 A09 A10 A11 "H" 出力 A12 A13 出力 Hi-Z 入力可 B: アドレス 出力 P: 直前状態 保持 A14 A15 PG0 PG1 PG2 PG3 PG4 PG5 PG6 PG7 シングルチップモードと同様 *1: 対応する外部割込みが ENIR で有効にされ , EISSR で外部割込み入力端子として選択されている 場合は , 入力可能となり , STOP 状態からの復帰に使用できます。 *2: 電源投入時 , もしくは INIT 端子の立下りエッジから , INIT 端子が "L" の期間は端子状態が出力 Hi-Z となります。 684 付録 D シリアル書込み ( 非同期 ) 書込み例 付録 D シリアル書込み ( 非同期 ) 書込み例 フラッシュメモリへのシリアル書込み ( 非同期 ) について説明します。 ■ 基本構成図 付図 D-1 シリアル書込み ( 非同期 ) 構成 WINDOWS ユーザシステム RS232Cドライバ RS232C UARTによる通信 MB91F27x パソコンから RS232C を使い , ユーザシステムに実装されている Flash 内蔵マイコンの フラッシュメモリの書き換えを行うことができます。なお , ユーザシステム上に RS232C ドライバがあり , マイコンの UART と通信できることが条件となります。 685 付録 ■ プログラマによるオンボード書込み接続例 付図 D-2 オンボード書込み接続例 ユーザシステム 10kΩ MB91F27x 1 シリアル書込み時 1 MD2 0 シリアル書込み時 0 1 10kΩ MD1 0 10kΩ 1 シリアル書込み時 0 MD0 0 1 0 シリアル書込み時 0 1 ユーザ回路 0 シリアル書込み時 0 ユーザ回路 P10 P11 X0 4MHz X1 RS232C ドライバ INIT SIN SOT UARTによる通信 RS232C MD2, MD1, MD0 端子 , P10, P11 端子は PC 側からは制御できませんので , ユーザシステ ム上で設定してください。また , シリアル書込み中は MD2, MD1, MD0 端子 , P10, P11 端 子の設定後 , INIT を "0" から "1" にすることによりシリアル書込みモードとなり , PC か らシリアル書込み可能となります。 シリアル書込み終了後 , MD2, MD1, MD0 端子は通常使われるモードに , P10, P11 端子 はユーザ回路側に切り換え , INIT を "0" から "1" にすることによりユーザプログラムを 実行します。 686 付録 D シリアル書込み ( 非同期 ) 書込み例 ■ プログラマがオンボード書換えに使用する端子 付表 D-1 オンボード書込み使用端子 端子 機能 補足説明 Flash 書込み時に制御してください。 MD2=1, MD1=0, MD0=0 に設定することにより , Flash 書込みモードとなります。 MD2, MD1, MD0 モード端子 P10, P11 書込みプログラム起動端子 Flash 書込みモード時に , P10=0, P11=0 に設定します。 INIT 外部リセット入力端子 MD2, MD1, MD0 端子 , P10, P11 端子を Flash 書込み モードに設定してからリセットを解除してください。 SIN1 (P85) シリアルデータ入力端子 UART1 のシリアルデータ入力端子です。 SOT1 (P86) シリアルデータ出力端子 UART1 のシリアルデータ出力端子です。 X0, X1 発振用端子 書込みモード時には , CPU 内部動作クロックは PLL ク ロックの 1 逓倍となっています。したがいまして , 発 振クロック周波数が , 内部動作クロックとなります。 VCC 電源電圧 推奨動作条件下でご使用ください。 VSS GND 推奨動作条件下でご使用ください。 ■ 各端子のタイミングチャート マイコンの各端子には , INIT 端子の入力を基準にして , 付図 D-3 のようなタイミングで 入力を行ってください。 付図 D-3 各端子のタイミングチャート INIT H 5t cp L MD0 H tcp L MD1 H tcp L MD2 H tcp L P10,P11 H tcp tcp × 250 L SIN H tcp×3500(min) データ L INIT の立ち上がりに対する各信号のセットアップ時間とホールド時間の最小値 , P10, P11 は書込みプログラム起動端子を , SIN 端子はシリアルデータ入力端子を示していま す。 687 付録 付録 E シリアル書込み ( 同期 ) 書込み例 フラッシュメモリへのシリアル書込み ( 同期 ) について説明します。 ■ 基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 AF210 フラッシュマイコンプログラマを使用します。 シングルチップモードで動作するプログラムあるいは内 ROM 外バスモードで動作す るプログラムのどちらかを選択して書き込むことができます。 付図 E-1 同期シリアル書込みの基本構成 ホストインタフェースケーブル(AZ201) 汎用共通ケーブル(AZ210) AF210 RS232C フラッシュマイコ ンプログラマ + CLK同期シリアル MB91F27x ユーザシステム メモリカード スタンドアロンで動作可能 <注意事項> AF210 フラッシュマイコンプログラマの機能・操作方法および接続用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株式会社にお問い合わ せください。 688 付録 E シリアル書込み ( 同期 ) 書込み例 ■ 富士通標準シリアルオンボード書込みに使用する端子 付表 E-1 シリアルオンボード書込み使用端子 端子 機能 補足説明 MD2, MD1, MD0 モード端子 フラッシュマイコンプログラマから書込みモー ドに制御します。Flash シリアル書込みモード: MD2, MD1, MD0=1,0,0 参考:シングルチップモード: MD2, MD1, MD0=0,0,0 P10, P11 書込みプログラム起動端子 Flash 書込みモード時に , P10=0, P11=1 に設定し ます。 INIT 外部リセット入力端子 MD2, MD1, MD0 端子 , P10, P11 端子を Flash 書込 みモードに設定してからリセットを解除してく ださい。 SIN1 (P85) シリアルデータ入力端子 UART1 のシリアルデータ入力端子です。 SOT1 (P86) シリアルデータ出力端子 UART1 のシリアルデータ出力端子です。 SCK1 (P87) シリアルクロック入力端子 UART1 のシリアルクロック入力端子です。 X0, X1 発振用端子 書込みモード時には , CPU 内部動作クロックは PLL クロックの 1 逓倍となっています。したが いまして , 発振クロック周波数が , 内部動作ク ロックとなります。 VCC 電源電圧 推奨動作条件下でご使用ください。 VSS GND 推奨動作条件下でご使用ください。 P10, P11, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 付図 E-2 の 制御回路が必要となります。 ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路 を切り離すことができます。接続例をご参照ください。) 付図 E-2 シリアル書込み端子の制御回路 AF210 MB91F27x 書込み制御端子 AF210 /TICS端子 書込み制御端子 10kΩ ユーザ 689 付録 ■ シリアル書込み接続例 次にシリアル書込み接続例を示します。 ● シリアル書込み接続例 ( ユーザ電源使用時 ) ユーザ電源使用時におけるシリアル書込み接続例を付図 E-3 に示します。 なお , モード端子 MD2, MD0 にはフラッシュマイコンプログラマ (AF210) の TAUX3, TMODE より MD2=1, MD0=0 が入力されます。 ( シリアル書換えモード:MD2, MD1, MD0=100B) 付図 E-3 シリアル書込み接続例 ( ユーザ電源使用時 ) AF210 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S 10kΩ MB91F27x (19) MD2 MD1 10kΩ TMODE (12) MD0 10kΩ X0 4MHz X1 TAUX /TICS (23) (10) P10 10kΩ ユーザ 10kΩ (5) /TRES INIT 10kΩ P11 ユーザ TTXD (13) TRXD (27) SOT1 TCK (6) SCK1 TVcc (2) GND (7,8, 14,15, 21,22, 1,28) 3,4,9,11,16,17, 18,20,24,25,26 ピンはOPEN SIN1 VCC ユーザ電源 VSS 14ピン 1ピン DX10-28S DX10-28S:ライトアングルタイプ 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 • P10, P11, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 付図 E-2 の制御回路が必要となります。 ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ 回路を切り離すことができます。) • AF210 との接続はユーザ電源が OFF の状態で行ってください。 690 付録 E シリアル書込み ( 同期 ) 書込み例 ● シリアル書込み接続例 ( フラッシュマイコンプログラマから電源供給時 ) フラッシュマイコンプログラマ (AF210) からの電源使用時におけるシリアル書込み接 続例を付図 E-4 に示します。 なお , モード端子 MD2, MD0 にはフラッシュマイコンプログラマ (AF210) の TAUX3, TMODE より MD2=1, MD0=0 が入力されます。 ( シリアル書換えモード:MD2, MD1, MD0=100B) 付図 E-4 シリアル書込み接続例 ( ライタから電源供給時 ) AF210 フラッシュマイコン プログラマ ユーザシステム コネクタ DX10-28S 10kΩ MB91F27x MD2 MD1 (19) TAUX3 10kΩ (12) TMODE MD0 10kΩ X0 4MHz X1 (23) TAUX (10) /TICS P10 10kΩ ユーザ 10kΩ (5) /TRES INIT 10kΩ P11 ユーザ TTXD (13) SIN1 TRXD (27) SOT1 TCK (6) SCK1 Vcc (3) GND (7,8, 14,15, 21,22, 1,28) 電源レギュレータ AZ264 VCC ユーザ電源 VSS 14ピン 2,4,9,11,16,17,18, 20,24,25,26ピンは OPEN DX10-28S:ライトアングルタイプ 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)の ピン配列 • P10, P11, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 付図 E-2 の制御回路が必要となります。 ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ 回路を切り離すことができます。) • AF210 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF210 から供給する時はユーザ電源と短絡しないでください。 691 付録 ● フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ユーザ電源使用時におけるフラッシュマイコンプログラマ (AF210) との最小限の接続 例を付図 E-5 に示します。フラッシュメモリ書込み時に , 各端子を付図 E-5 のように設 定すると , MD2, MD1, MD0, P10, P11 とフラッシュマイコンプログラマとの接続は必要 ありません。 ( シリアル書換えモード:MD2, MD1, MD0=100B) 付図 E-5 シリアル書込み最小接続例 ( ユーザ電源使用時 ) AF210 フラッシュマイコン プログラマ ユーザシステム 10kΩ シリアル書換え時 1 MB91F27x MD2 シリアル書換え時 0 10kΩ 10kΩ 10kΩ 10kΩ MD1 MD0 シリアル書換え時 0 10kΩ X0 4MHz X1 P10 シリアル書換え時 0 10kΩ 10kΩ ユーザ回路 P11 シリアル書換え時 1 ユーザ回路 コネクタ DX10-28S 10kΩ (5) INIT /TRES TTXD (13) SIN1 TRXD (27) SOT1 TCK (6) SCK1 TVcc (2) VCC GND (7,8, 14,15, 21,22, 1,28) ユーザ電源 VSS 14ピン 3,4,9,10,11,12,16,17, 18,19,20,23,24,25,26 ピンはOPEN 1ピン DX10-28S 28ピン DX10-28S:ライトアングルタイプ 15ピン コネクタ(ヒロセ電機製)のピン配列 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 付図 E-2 の制御回 路が必要となります。 ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ 回路を切り離すことができます。) • AF210 との接続はユーザ電源が OFF の状態で行ってください。 692 付録 E シリアル書込み ( 同期 ) 書込み例 ● フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) フラッシュマイコンプログラマ (AF210) からの電源供給時における最小限の接続例を 付図 E-6 に示します。フラッシュモリ書込み時に , 各端子を付図 E-6 のように設定する と , MD2, MD1, MD0, P10, P11 とフラッシュマイコンプログラマとの接続は必要ありま せん。 ( シリアル書換えモード:MD2, MD1, MD0=100B) 付図 E-6 シリアル書込み最小接続例 ( ライタから電源供給時 ) AF210 フラッシュマイコン プログラマ ユーザシステム 10kΩ シリアル書換え時 1 MB91F27x MD2 シリアル 書換え時 0 10kΩ 10kΩ 10kΩ 10kΩ MD1 MD0 シリアル書換え時 0 10kΩ X0 4MHz X1 P10 10kΩ シリアル 書換え時 0 10kΩ ユーザ回路 P11 シリアル書換え時 1 ユーザ回路 コネクタ DX10-28S (5) (13) (27) (6) /TRES TTXD TRXD TCK Vcc (3) GND (7,8, 14,15, 21,22, 1,28) 電源レギュレータ AZ264 10kΩ VCC ユーザ電源 VSS 14ピン 2,4,9,10,11,12 16,17,18,19,20 23,24,25,26ピンは OPEN DX10-28S:ライトアングルタイプ INIT SIN1 SOT1 SCK1 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 • SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 付図 E-2 の制御回 路が必要となります。 ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ 回路を切り離すことができます。) • AF210 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF210 から供給する時はユーザ電源と短絡しないでください。 693 付録 ■ AF210 フラッシュマイコンプログラマシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) 型 格 機 能 AF220/AC4P AF210/AC4P 本 体 AF120/AC4P AF110/AC4P イーサネットインタフェースモデル /100 V ∼ 220 V 電源アダプタ スタンダードモデル /100 V ∼ 220 V 電源アダプタ 単キーイーサネットインタフェースモデル /100 V ∼ 220 V 電源アダプタ 単キーモデル /100 V ∼ 220 V 電源アダプタ AZ221 ライタ専用 PC-AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ:1 m FF003 富士通製 FR フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P2 2MB PC Card (Option) フラッシュモリ容量 128 K バイトまで /P4 4MB PC Card (Option) フラッシュメモリ容量 512 K バイトまで 問い合わせ先:横河ディジタルコンピュータ株式会社 機器事業部 電話:042-333-6224 ■ 原発振クロック周波数について フラッシュメモリ書込み時に使用可能な原発振クロックは 4.0 MHz です。 ■ その他の注意事項 シリアルライタを用いてフラッシュメモリ書込み時のポート状態は , 書込みに使用し ている端子を除きリセット状態と同じです。 694 索引 Numerics 0 検出 0 検出 ......................................................................246 0 検出用データレジスタ 0 検出用データレジスタ (BSD0) ........................244 10 ビットスレーブアドレスマスクレジスタ 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) ..........................................................................456 10 ビットスレーブアドレスレジスタ 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) ..........................................................................455 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアの動作 ............507 16 ビットアウトプットコンペアの 動作タイミング ..............................................509 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの動作 ............499 16 ビットインプットキャプチャの入力タイミン グ ......................................................................499 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................477 16 ビットフリーランタイマ 16 ビットフリーランタイマ使用時の注意事項 ..........................................................................492 16 ビットフリーランタイマの概要 ....................484 16 ビットフリーランタイマのカウントタイミン グ ......................................................................491 16 ビットフリーランタイマのクリアタイミング ..........................................................................491 16 ビットフリーランタイマの動作説明 ............490 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................484 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................485 16 ビットリロードタイマ 16 ビットリロードタイマの概要 ........................472 16 ビットリロードタイマのブロック ダイヤグラム ..................................................472 16 ビットリロードタイマのレジスタ一覧 ..........................................................................473 16 ビットリロードレジスタ 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................478 1 検出 1 検出 ......................................................................246 1 検出用データレジスタ 1 検出用データレジスタ (BSD1) ........................244 2 サイクル転送 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........180 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........179 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ........... 178 2 サイクル転送時のデータの動作 .....................292 ステップ / ブロック転送 2 サイクル転送 ......... 273 バースト 2 サイクル転送 .................................... 272 32 ビット←→ 16 ビットバスコンバータ 32 ビット←→ 16 ビットバスコンバータ ........... 40 7 ビットスレーブアドレスマスクレジスタ 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) .........................................459 7 ビットスレーブアドレスレジスタ 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) ...........................................458 8 ビット PPG 8 ビット PPG ch.0,ch.2 のブロックダイヤグラム ..........................................................................513 8 ビット PPG ch.1 のブロックダイヤグラム ..........................................................................514 8 ビット PPG ch.3 のブロックダイヤグラム ..........................................................................515 695 A A/D 許可レジスタ A/D 許可レジスタ (ADER) ..................................578 A/D コントロールステータスレジスタ A/D コントロールステータスレジスタ 0 (ADCS0) ..........................................................................582 A/D コントロールステータスレジスタ 1 (ADCS1) ..........................................................................579 A/D コンバータ A/D コンバータの特長 .........................................574 A/D コンバータのブロックダイヤグラム .........575 A/D コンバータのレジスタの概要 .....................576 A/D コンバータ:24 チャネル (MB91V280 では + 8 チャネルを独立モジュールとして提供 ) ..............................................................................4 A/D 変換 A/D 変換データ .....................................................590 ACR ACR0 ∼ ACR3 (Area Configuration Register) の レジスタ構成 ..................................................143 ADCR データレジスタ (ADCR1,ADCR0) ......................585 ADCS A/D コントロールステータスレジスタ 0 (ADCS0) ..........................................................................582 A/D コントロールステータスレジスタ 1 (ADCS1) ..........................................................................579 ADECH 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) .........588 ADER A/D 許可レジスタ (ADER) ..................................578 ADSCH 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) .........588 AD ビット シリアルコントロールレジスタ (SCR) の AD ビット ........................................................435 AF210 フラッシュマイコンプログラマ AF210 フラッシュマイコンプログラ マシステム 構成 ( 横河ディジタルコンピュータ株式会社製 ) ..........................................................................694 Area Configuration Register ACR0 ∼ ACR3 (Area Configuration Register) の レジスタ構成 ..................................................143 Area Select Register ASR0 ∼ ASR3(Area Select Register) の レジスタ構成 ..................................................142 Area Wait Register AWR0 ∼ AWR3(Area Wait Register) の レジスタ構成 ..................................................147 ASR ASR0 ∼ ASR3(Area Select Register) の レジスタ構成 ..................................................142 ASR および ASZ1,ASZ0 の設定例 ......................153 ASZ ASR および ASZ1,ASZ0 の設定例 ......................153 AWR 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ..........180 696 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H) ........... 179 AWR0 ∼ AWR3(Area Wait Register) の レジスタ構成 ..................................................147 CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B,AWR=100BH) ..........177 WRn +バイト制御タイプ (TYP3 ∼ TYP0=0010B,AWR=0008H) ........... 168 外部ウェイトあり (TYP3 ∼ TYP0=0101B,AWR=1008H) ........... 176 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,AWR=2008H) ........... 172 外部ウェイトなし (TYP3 ∼ TYP0=0100B,AWR=0008H) ........... 175 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ........... 167 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B,AWR=2008H) ..........171 ライト→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0018H) ........... 170 リード→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0048H) ........... 169 B BGR ボーレート / リロードカウンタレジスタ (BGR) ..........................................................................399 Break 検出割込み LIN-Synch-Break 検出割込みとフラグ ..............423 Break 割込み LIN-Synch-Break 割込み .......................................401 BSD0 0 検出用データレジスタ (BSD0) ........................ 244 BSD1 1 検出用データレジスタ (BSD1) ........................ 244 BSDC 変化点検出用データレジスタ (BSDC) ..............245 BSRR 検出結果レジスタ (BSRR) ..................................245 BUSYX レディ / ビジー信号 (RDY/BUSYX) .................. 631 C CAN CAN クロックプリスケーラ設定 .......................369 CAN の特長 ...........................................................296 CAN_TX 端子 CAN_TX のソフトウェア制御 ...................365 CAN クロックプリスケーラ CAN クロックプリスケーラ設定 .......................369 CAN コントローラ CAN コントローラ ............................................... 297 CAN コントローラ:最大 3 チャネル ................... 3 CCR CCR (Condition Code Register) ............................... 47 カウンタコントロールレジスタ (CCR) の ビット構成 ......................................................539 Chip Select Enable Register CSER(Chip Select Enable Register) のレジスタ構成 ..........................................................................152 CLKB CPU クロック (CLKB) ............................................86 CLKP 周辺クロック (CLKP) .............................................86 CLKR CLKR:クロックソース制御レジスタ ................98 CLKT 外部バスクロック (CLKT) ....................................87 CMCR クロックモジュレータ制御レジスタ (CMCR) ..........................................................................605 CMPR クロックモジュレータパラメータレジスタ (CMPR) .............................................................604 Condition Code Register CCR (Condition Code Register) ...............................47 CPU CPU ...........................................................................40 CPU インタフェース ............................................297 CPU 間の接続 ................................................426, 428 CPU 間の接続方法 ................................................415 FR-CPU プログラミングモード (16 ビット , 読出し / 書込み可能 ) ...............624 各 CPU ステートにおける端子状態一覧表 ..........................................................................673 CPU インタフェース CPU インタフェース ............................................297 CPU 間接続 CPU 間の接続 ................................................426, 428 CPU 間の接続方法 ................................................415 CPU クロック CPU クロック (CLKB) ............................................86 CPU ステート 各 CPU ステートにおける端子状態一覧表 ..........................................................................673 CS CS 遅延設定 (TYP3 ∼ TYP0=0000B,AWR=000CH) ..........................................................................173 CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B,AWR=100BH) ...........177 CS→RD/WRセットアップ・RD/WR→CSホールド 設定 (TYP3 ∼ TYP0=0000B,AWR=000BH) ..........................................................................174 CSER CSER(Chip Select Enable Register) のレジスタ構成 ..........................................................................152 CSR カウンタステータスレジスタ (CSR) の ビット構成 ......................................................537 CS 遅延設定 CS 遅延設定 (TYP3 ∼ TYP0=0000B,AWR=000CH) ..........................................................................173 CTBR CTBR:タイムベースカウンタクリアレジスタ ............................................................................97 CUCR 補正ユニット制御レジスタ (CUCR) ..................566 CUTD サブタイマデータレジスタ (CUTD) ..................568 CUTR メインタイマデータレジスタ (CUTR) ..............570 D D/A クロック制御レジスタ D/A クロック制御レジスタ (DADBL) ............... 598 D/A コンバータ D/A コンバータ出力電圧の理論値 .................... 599 D/A コンバータの機能 ........................................ 594 D/A コンバータの動作概要 ................................599 D/A コンバータのブロックダイヤグラム ........594 D/A コンバータのレジスタ一覧 ........................ 595 D/A コンバータ:2 チャネル ................................. 4 D/A 制御レジスタ D/A 制御レジスタ (DACR) ..................................596 D/A データレジスタ D/A データレジスタ (DADR) ............................. 597 DACR D/A 制御レジスタ (DACR) ..................................596 DADBL D/A クロック制御レジスタ (DADBL) ............... 598 DADR D/A データレジスタ (DADR) ............................. 597 DDR データ方向レジスタ (DDR) ................................187 DICR DICR ( 遅延割込みモジュールレジスタ ) ......... 240 DICR の DLYI ビット .......................................... 241 DIVR DIVR0:基本クロック分周設定レジスタ 0 ..........................................................................102 DIVR1:基本クロック分周設定レジスタ 1 ..........................................................................104 DLYI ビット DICR の DLYI ビット .......................................... 241 DMA DMA による割込みクリアの発生タイミング ..........................................................................282 DMA 抑止 .............................................................. 278 DMA Controller DMAC (DMA Controller) .......................................... 3 DMAC DMAC (DMA Controller) .......................................... 3 DMAC の概要 ....................................................... 268 DMAC の主要機能 ............................................... 250 DMAC の主要動作 ............................................... 269 DMAC のハードウェア構成 ............................... 250 DMAC のブロックダイヤグラム .......................252 DMAC のレジスタ概要 .......................................251 DMAC 割込み制御が出力できる割込み ........... 286 DMACA DMACA0 ∼ DMACA4 のビット機能 ................ 254 DMACB DMACB0 ∼ DMACB4 のビット機能 ................ 258 DMACR DMACR のビット機能 .........................................266 DMAC 割込み制御 DMAC 割込み制御が出力できる割込み ........... 286 DMADA DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 の ビット機能 ......................................................264 DMASA DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 の ビット機能 ......................................................264 697 DMA 転送 DMA 転送と割込み ..............................................278 スリープモード中の DMA 転送の注意 .............287 E ECCR 拡張通信コントロールレジスタ (ECCR) ..........396 EIRR 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................231 EISSR 外部割込み入力端子選択レジスタ (EISSR) ..........................................................................204 EIT EIT からの復帰 .......................................................60 EIT の特長 ...............................................................60 EIT の割込みレベル ...............................................61 EIT ベクタテーブル ...............................................67 EIT 要因 ...................................................................60 EIT 要因受理の優先度 ...........................................70 EIT 要因受理 EIT 要因受理の優先度 ...........................................70 ELVR 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................232 ENIR 割込み許可レジスタ (ENIR) のビット構成 ..........................................................................230 ESCR 拡張ステータス / コントロールレジスタ (ESCR) ..........................................................................393 F Field エッジ検出割込み LIN-Synch-Field エッジ検出割込み ....................402 FIFO FIFO バッファの構成 ...........................................355 FIFO バッファ FIFO バッファからの読出し ...............................356 FIFO バッファによるメッセージ受信 ...............355 FIFO バッファの構成 ...........................................355 FLCR フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成 .....................................620 FLWC ウェイトレジスタ (FLWC) のビット構成 .........622 FR FR-CPU プログラミングモード (16 ビット , 読出し / 書込み可能 ) ...............624 FR CPU FR CPU の特長 ..........................................................2 FR-CPU FR-CPU ROM モード (32 ビット , 読出しのみ ) ..........................................................................624 FR-CPU ROM モード FR-CPU ROM モード (32 ビット , 読出しのみ ) ..........................................................................624 FR-CPU プログラミングモード FR-CPU プログラミングモード (16 ビット , 読出し / 書込み可能 ) ...............624 698 H Hold Request Cancel Request ホールドリクエスト取下げ要求 (Hold Request Cancel Request) ........................ 223 HRCL ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................219 HRCR ホールドリクエスト取下げ要求機能 (HRCR) の 使用例 .............................................................. 225 I I/O セル一覧 I/O セル一覧 ............................................................ 26 I/O ピン I/O ピン .................................................................. 140 I/O ポート I/O ポート .................................................................. 4 I/O マップ I/O マップ .............................................................. 654 I2C インタフェース I2C インタフェースの特長 ..................................438 I2C インタフェースのブロックダイヤグラム ..........................................................................441 I2C インタフェースのレジスタ一覧 .................. 439 I2C インタフェースのレジスタ概要 .................. 442 I2C バスインタフェース I2C バスインタフェース (400kbps 対応 ): 3 チャネル ........................................................... 4 IBCR バスコントロールレジスタ (IBCR0 ∼ IBCR2) ..........................................................................446 IBSR バスステータスレジスタ (IBSR0 ∼ IBSR2) ..........................................................................443 ICCR クロックコントロールレジスタ (ICCR0 ∼ ICCR2) ..........................................................................453 ICR ICR ビット構成 ....................................................... 63 ICR マッピング ....................................................... 63 割込み制御レジスタ (ICR) のビット構成 ......... 218 ICS インプットキャプチャコントロールレジスタ (ICS) のビット構成 ........................................ 497 IDAR データレジスタ (IDAR0 ∼ IDAR2) ...................461 ILM ILM ..................................................................... 50, 62 INIT 設定初期化リセット (INIT) ................................. 130 INIT 端子 INIT 端子による復帰について ............................129 INTE 命令 INTE 命令の動作 ....................................................73 INT 命令 INT 命令の動作 ....................................................... 73 IPCP インプットキャプチャレジスタ (IPCP) の ビット構成 ......................................................496 ISBA 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) ...........................................458 ISMK 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) ..........................................459 ITBAH 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) ..........................................................................455 ITBAL 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) ..........................................................................455 ITMKH 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) ..........................................................................456 ITMKL 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) ..........................................................................456 I フラグ I フラグ ....................................................................62 L LIN LIN スレーブとしての UART .............................422 LIN スレーブの設定 .............................................434 LIN 対応 UART:最大 7 チャネル .........................3 LIN デバイスの接続 .............................................430 LIN バスタイミング .............................................424 LIN マスタとしての UART .................................422 LIN マスタ−スレーブ通信機能 .........................430 動作モード 3 における LIN の使用 ....................434 LIN-Synch LIN-Synch-Break 検出割込みとフラグ ...............423 LIN-Synch-Break 割込み .......................................401 LIN-Synch-Field エッジ検出割込み ....................402 LIN-Synch-Break 検出割込み LIN-Synch-Break 検出割込みとフラグ ...............423 LIN-Synch-Break 割込み LIN-Synch-Break 割込み .......................................401 LIN-Synch-Field エッジ検出割込み LIN-Synch-Field エッジ検出割込み ....................402 LIN スレーブ LIN スレーブとしての UART .............................422 LIN スレーブの設定 .............................................434 LIN 対応 UART LIN 対応 UART:最大 7 チャネル .........................3 LIN デバイス LIN デバイスの接続 .............................................430 LIN マスタ LIN マスタとしての UART .................................422 LIN マスタ−スレーブ通信 LIN マスタ−スレーブ通信機能 .........................430 LQFP 100 ピン LQFP 100 ピン .......................................................8, 9 M MB91270 シリーズ MB91270 シリーズのブロックダイヤグラム ..............................................................................7 MB91270 シリーズのメモリマップ .....................10 MB91V280 同期モードのソフトウェアリセットについて ( 評価用品 MB91V280 のみ ) .......................... 34 MD モード端子 (MD0 ∼ MD2) について ................... 33 MODR モードレジスタ (MODR) .......................................79 Multiply & Divide register 乗除算レジスタ (Multiply & Divide register) ............................................................................52 N NC NC,OPEN 端子の処理について ............................ 33 NMI NMI (Non Maskable Interrupt) ............................... 223 NMI/ ホールド抑止レベル割込み処理中 ..........283 ユーザ割込み・NMI の動作 ..................................72 割込み・NMI に対するレベルマスク .................. 62 Non Maskable Interrupt NMI (Non Maskable Interrupt) ............................... 223 O OCCP コンペアレジスタ (OCCP) の機能 .....................504 コンペアレジスタ (OCCP) のビット構成 ......... 504 OPEN 端子 NC,OPEN 端子の処理について ............................ 33 OSCCR OSCCR:発振制御レジスタ ............................... 106 P PC PC (Program Counter) .............................................. 50 PDR ポートデータレジスタ (PDR) ............................. 186 PIDR 入力データダイレクトリードレジスタ (PIDR) ..........................................................................211 PLL PLL クロックモード動作中の注意について ............................................................................33 PLL 逓倍率 .............................................................. 83 PLL 動作許可 .......................................................... 82 PLL クロックモード PLL クロックモード動作中の注意について ............................................................................33 PLL 逓倍率変更後 PLL 逓倍率変更後の待ち時間 ..............................84 PLL 動作許可後 PLL 動作許可後の待ち時間 ..................................84 699 PPG 8 ビット PPG ch.0,ch.2 のブロックダイヤグラム ..........................................................................513 8 ビット PPG ch.1 のブロックダイヤグラム ..........................................................................514 8 ビット PPG ch.3 のブロックダイヤグラム ..........................................................................515 PPG 出力動作 ........................................................523 PPG の機能 ............................................................512 PPG の組合せ ........................................................525 PPG の動作 ............................................................522 PPG のレジスタ一覧 ............................................516 PPGC PPG 動作モード制御レジスタ (PPGC) ...............517 PPG 起動レジスタ PPG 起動レジスタ (TRG) .....................................520 PPG 動作モード制御レジスタ PPG 動作モード制御レジスタ (PPGC) ...............517 PRLH リロードレジスタ (PRLL/PRLH) ........................519 PRLL リロードレジスタ (PRLL/PRLH) ........................519 Program Counter PC (Program Counter) ..............................................50 Program Status PS (Program Status) ..................................................46 PS PS (Program Status) ..................................................46 R RAM 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........178 メッセージ RAM ...................................................297 メッセージ RAM とのデータ送受信 .................347 RCR リロードコンペアレジスタ (RCR) .....................536 RD CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B,AWR=100BH) ...........177 CS→RD/WRセットアップ・RD/WR→CSホールド 設定 (TYP3 ∼ TYP0=0000B,AWR=000BH) ..........................................................................174 RDR 受信 / 送信データレジスタ (RDR/TDR) ............391 RDY レディ / ビジー信号 (RDY/BUSYX) ...................631 REALOS ビットサーチモジュール (REALOS 使用 ) ...........3 RETI 命令 RETI 命令の動作 .....................................................75 Return Pointer RP (Return Pointer) ...................................................51 REVC 出力反転レジスタ (REVC) ..................................521 ROM バスモード 1 ( 内 ROM 外バスモード ) ...............77 バスモード 2 ( 外 ROM 外バスモード ) ...............77 700 ROM モード FR-CPU ROM モード (32 ビット , 読出しのみ ) ..........................................................................624 RP RP (Return Pointer) ..................................................51 RSRR RSRR:リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ ............90 RST 動作初期化リセット (RST) ................................. 131 S SCR SCR (System Condition code Register) .................... 49 シリアルコントロールレジスタ (SCR) ............. 382 シリアルコントロールレジスタ (SCR) の AD ビット ....................................................... 435 SMR シリアルモードレジスタ (SMR) ........................ 385 SSP SSP (System Stack Pointer) ................................ 51, 64 SSR シリアルステータスレジスタ (SSR) .................. 388 STCR STCR:スタンバイ制御レジスタ ........................ 92 STOP 状態 STOP 状態からの復帰動作 ..................................236 System Condition code Register SCR (System Condition code Register) .................... 49 System Stack Pointer SSP (System Stack Pointer) ................................ 51, 64 T Table Base Register TBR (Table Base Register) .................................50, 66 TBCR TBCR:タイムベースカウンタ制御レジスタ ............................................................................95 TBR TBR (Table Base Register) .................................50, 66 TCCS タイマコントロールステータスレジスタ (TCCS) ..........................................................................487 TCDT タイマデータレジスタ (TCDT) .......................... 486 TDR 受信 / 送信データレジスタ (RDR/TDR) ............391 TMCSR コントロールステータスレジスタ (TMCSR) の ビット構成 ......................................................474 TMR 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................477 TMRLR 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................478 TRG PPG 起動レジスタ (TRG) .................................... 520 TYP 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ..........180 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........179 CS 遅延設定 (TYP3 ∼ TYP0=0000B,AWR=000CH) ..........................................................................173 CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B,AWR=100BH) ..........177 WRn +バイト制御タイプ (TYP3 ∼ TYP0=0010B,AWR=0008H) ...........168 外部ウェイトあり (TYP3 ∼ TYP0=0101B,AWR=1008H) ...........176 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,AWR=2008H) ..........172 外部ウェイトなし (TYP3 ∼ TYP0=0100B,AWR=0008H) ...........175 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........167 自動ウェイトタイミング (TYP3 ∼ TYP0=0000BAWR=2008H) ............171 ライト→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0018H) ..........170 リード→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0048H) ..........169 WRn +バイト制御タイプ WRn +バイト制御タイプ (TYP3 ∼ TYP0=0010B,AWR=0008H) ..........168 WTCR タイマ制御レジスタ (WTCR) ............................. 559 U UART LIN スレーブとしての UART .............................422 LIN 対応 UART:最大 7 チャネル .........................3 LIN マスタとしての UART .................................422 UART 端子直接アクセス .....................................425 UART の動作 .........................................................414 UART の動作モード .............................................373 UART のブロックダイヤグラム .................375, 376 UART のボーレート選択 .....................................407 UART のレジスタ .................................................380 UART の割込み .....................................................400 スレーブデバイスとしての UART .....................432 動作設定 .................................................................434 動作設定の変更 .....................................................434 UDCR UDCR へのデータの書込み ................................547 アップダウンカウントレジスタ (UDCR) ..........535 User Stack Pointer USP (User Stack Pointer) ..........................................51 USP USP (User Stack Pointer) ..........................................51 W WPR WPR:ウォッチドッグリセット発生延期 レジスタ ....................................................101 WR CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B,AWR=100BH) ...........177 CS→RD/WRセットアップ・RD/WR→CSホールド 設定 (TYP3 ∼ TYP0=0000B,AWR=000BH) ..........................................................................174 701 あ アーキテクチャ 内部アーキテクチャの概要 ...................................37 内部アーキテクチャの構造 ...................................39 内部アーキテクチャの特長 ...................................38 アービトレーション アービトレーション .............................................464 アウトプットコンペア 16 ビットアウトプットコンペアの動作 ............507 16 ビットアウトプットコンペアの動作タイミン グ ......................................................................509 アウトプットコンペアの特長 .............................502 アウトプットコンペアのブロックダイヤグラム ..........................................................................502 アウトプットコンペアのレジスタ ..........................................................................503 アクセスアドレス アクセスアドレス .................................................276 アクセスモード アクセスモード .......................................................76 フラッシュメモリのアクセスモード .................624 アクセプタンスフィルタ 受信メッセージのアクセプタンスフィルタ ..........................................................................351 アクノリッジ アクノリッジ .........................................................464 アップダウンカウンタ アップダウンカウンタの特長 .............................530 アップダウンカウンタのブロックダイヤグラム ..........................................................................531 アップダウンカウンタのレジスタ一覧 .............533 アップダウンカウントレジスタ アップダウンカウントレジスタ (UDCR) ..........535 アドレス / データマルチプレクスアクセス 通常アクセスおよびアドレス / データマルチプレクスアクセス ..................148 アドレスエラー アドレスエラーの発生 .........................................285 アドレス指定方法 アドレス指定方法 .................................................638 アドレスレジスタ アドレスレジスタ指定 .........................................275 アドレッシング スレーブアドレッシング .....................................464 ダイレクトアドレッシング ...................................43 ダイレクトアドレッシング領域 ...........................36 アルゴリズム 自動アルゴリズム実行状態 .................................625 自動アルゴリズムのコマンドシーケンス ..........................................................................627 フラッシュメモリ自動アルゴリズムの概要 ..........................................................................626 アンダフロー動作 アンダフロー動作 .................................................479 い 一時停止 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に 設定 ) ................................................................283 702 一時停止状態 一時停止状態からの起動 .................................... 280 インターバル時間 メイン発振安定待ちタイマのインターバル時間 ..........................................................................118 インターバルタイマ インターバルタイマ機能の動作 ........................ 121 インターバルタイマ / カウンタ その他のインターバルタイマ / カウンタ ............. 4 インプットキャプチャ 16 ビットインプットキャプチャの動作 ........... 499 16 ビットインプットキャプチャの 入力タイミング .............................................. 499 インプットキャプチャの概要 ............................494 インプットキャプチャのブロックダイヤグラム ..........................................................................494 インプットキャプチャのレジスタ一覧 ............495 インプットキャプチャコントロールレジスタ インプットキャプチャコントロールレジスタ (ICS) のビット構成 ........................................ 497 インプットキャプチャレジスタ インプットキャプチャレジスタ (IPCP) の ビット構成 ......................................................496 う ウェイトレジスタ ウェイトレジスタ (FLWC) のビット構成 ......... 622 ウォッチドッグ ハードウェアウォッチドッグ ................................4 ウォッチドッグタイマ制御レジスタ RSRR:リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ ............90 ウォッチドッグリセット発生延期レジスタ WPR:ウォッチドッグリセット発生延期 レジスタ .......................................................... 101 内 ROM バスモード 1 ( 内 ROM 外バスモード ) ............... 77 内 ROM 外バスモード バスモード 1 ( 内 ROM 外バスモード ) ............... 77 え エラー アドレスエラーの発生 ........................................ 285 エラーを発生しない通信エラー ........................ 465 コプロセッサエラートラップ ..............................75 バスエラー ............................................................ 465 エラー検出 ....................................................417, 421 エラー検出 エラー検出 ....................................................417, 421 エラートラップ コプロセッサエラートラップ ..............................75 エンディアン エンディアンの概要 ............................................ 155 お オーダリング バイトオーダリング .............................................. 53 ビットオーダリング .............................................. 53 オンボード書換 プログラマがオンボード書換えに使用する端子 ..........................................................................687 オンボード書込み接続例 プログラマによるオンボード書込み接続例 ..........................................................................686 か 外 ROM バスモード 2 ( 外 ROM 外バスモード ) ...............77 外 ROM 外バスモード バスモード 2 ( 外 ROM 外バスモード ) ...............77 開始チャネル設定レジスタ 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) ..........................................................................588 外バス 外バスの設定 ...........................................................33 バスモード 1 ( 内 ROM 外バスモード ) ...............77 バスモード 2 ( 外 ROM 外バスモード ) ...............77 外部 I/O 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........178 外部ウェイト 外部ウェイトあり (TYP3 ∼ TYP0=0101B,AWR=1008H) ...........176 外部ウェイトなし (TYP3 ∼ TYP0=0100B,AWR=0008H) ...........175 外部ウェイトタイミング 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,AWR=2008H) ...........172 外部クロック 外部クロック使用時の注意 ...................................33 外部クロックの使用 .............................................411 外部端子 外部端子のリセットタイミング .........................132 外部バスアクセス 外部バスアクセス .................................................159 外部バスインタフェース 外部バスインタフェース .........................................2 外部バスインタフェースの設定手順 .................181 外部バスインタフェースの特長 .........................138 外部バスインタフェースのブロックダイヤグラム ..........................................................................139 外部バスインタフェースのレジスタ一覧 ..........................................................................140 外部バスインタフェースのレジスタ概要 ..........................................................................141 外部バスクロック 外部バスクロック (CLKT) ....................................87 外部リセット端子 外部リセット端子のブロックダイヤグラム ..........................................................................132 外部割込み 外部割込みの動作 .................................................233 外部割込みの動作手順 .........................................233 外部割込み要求レベル .........................................234 外部割込みを使用した STOP 状態からの復帰時に おける注意事項 ..............................................235 外部割込み制御部 外部割込み制御部のブロックダイヤグラム ..........................................................................228 外部割込み制御部のレジスタ一覧 .................... 228 外部割込み制御部のレジスタ詳細 .................... 229 外部割込み入力端子選択レジスタ 外部割込み入力端子選択レジスタ (EISSR) ..........................................................................204 外部割込み要因レジスタ 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................231 外部割込み要求レベル設定レジスタ 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................232 カウンタコントロールレジスタ カウンタコントロールレジスタ (CCR) の ビット構成 ......................................................539 カウンタステータスレジスタ カウンタステータスレジスタ (CSR) の ビット構成 ......................................................537 カウントクリア カウントクリア / ゲート機能 ............................. 548 カウントクリア / ゲート機能 カウントクリア / ゲート機能 ............................. 548 カウントクロック カウントクロックの選択 .................................... 524 カウント方向転換フラグ カウント方向転換フラグ .................................... 549 カウント方向フラグ カウント方向フラグ ............................................ 548 カウントモード カウントモード選択 ............................................ 543 書込み UDCR へのデータの書込み ................................547 データ書込み上の注意 ........................................ 638 フラッシュメモリ書込み / 消去の概要 ............. 636 フラッシュメモリ書込み手順 ............................638 プログラム ( 書込み ) ...........................................628 書込み方法 フラッシュメモリのデータ書込み方法 ............638 拡張ステータス / コントロールレジスタ 拡張ステータス / コントロールレジスタ (ESCR) ..........................................................................393 拡張通信コントロールレジスタ 拡張通信コントロールレジスタ (ECCR) ..........396 き 起動条件 起動条件 ................................................................ 462 機能 カウントクリア / ゲート機能 ............................. 548 基本クロック分周設定レジスタ DIVR0:基本クロック分周設定レジスタ 0 ..........................................................................102 DIVR1:基本クロック分周設定レジスタ 1 ..........................................................................104 基本構成 基本構成 ................................................................ 688 基本構成図 基本構成図 ............................................................ 685 703 基本タイミング 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........167 基本プログラミングモデル 基本プログラミングモデル ...................................44 基本ブロックダイヤグラム ポート基本ブロックダイヤグラム .....................184 く クロック CAN クロックプリスケーラ設定 .......................369 CPU クロック (CLKB) ............................................86 PLL クロックモード動作中の注意について ............................................................................33 外部クロック使用時の注意 ...................................33 外部クロックの使用 .............................................411 外部バスクロック (CLKT) ....................................87 カウントクロックの選択 .....................................524 クロック .................................................................564 クロック供給 .........................................................420 クロック供給機能の動作 .....................................122 クロック切換え手順 .............................................368 原発振クロック周波数について .........................694 サブクロックからメインクロック切換え後の 待ち時間 ............................................................85 サブクロックを使用しない場合の注意について ............................................................................33 周辺クロック (CLKP) .............................................86 ソースクロックの選択 ...........................................81 内部クロック動作 .................................................479 内部動作クロックの生成 .......................................81 マシンクロック周波数ごとのボーレート設定例 ..........................................................................410 モード 2 でのクロック反転とスタート / ストップビット ..............................................419 リアルタイムクロックのレジスタ一覧 .............556 クロック禁止レジスタ クロック禁止レジスタ .........................................563 クロックコントロールレジスタ クロックコントロールレジスタ (ICCR0 ∼ ICCR2) ..........................................................................453 クロック出力許可レジスタ クロック出力許可レジスタのビット構成 .........553 クロック生成制御部 クロック生成制御部のブロックダイヤグラム ............................................................................89 クロックソース制御レジスタ CLKR:クロックソース制御レジスタ ................98 クロック反転 モード 2 でのクロック反転とスタート / ストップビット ..............................................419 クロックプリスケーラレジスタ クロックプリスケーラレジスタ .........................302 クロック補正ユニット クロック補正ユニット .........................................564 クロック補正ユニットのレジスタ一覧 .............565 クロックモジュレータ クロックモジュレータの概要 .............................602 クロックモジュレータ制御レジスタ クロックモジュレータ制御レジスタ (CMCR) ..........................................................................605 704 クロックモジュレータパラメータレジスタ クロックモジュレータパラメータレジスタ (CMPR) ............................................................ 604 クロックモジュレータレジスタ クロックモジュレータレジスタの概要 ............603 クロックモニタ クロックモニタの出力周波数 ............................552 クロックモニタのブロックダイヤグラム ........552 け ゲート機能 カウントクリア / ゲート機能 ............................. 548 検出 0 検出 ..................................................................... 246 1 検出 ..................................................................... 246 エラー検出 ....................................................417, 421 スレーブアドレス検出 ........................................ 463 変化点検出 ............................................................ 247 検出結果レジスタ 検出結果レジスタ (BSRR) ..................................245 原振入力 電源投入時の原振入力について .......................... 33 原発振クロック 原発振クロック周波数について ........................ 694 こ 互換 ソフトウェア互換 ................................................435 コプロセッサ コプロセッサエラートラップ ..............................75 コプロセッサ不在トラップ ..................................75 コプロセッサエラートラップ コプロセッサエラートラップ ..............................75 コプロセッサ不在トラップ コプロセッサ不在トラップ ..................................75 コマンド リード ( 読出し )/ リセットコマンド ................. 627 コントロールステータスレジスタ コントロールステータスレジスタ (TMCSR) の ビット構成 ......................................................474 コントロールレジスタ コントロールレジスタのビット構成 ................ 505 コンペア リロード / コンペア機能 .....................................545 リロード / コンペア機能同時起動 .....................546 コンペア検出フラグ コンペア検出フラグ ............................................ 549 コンペアレジスタ コンペアレジスタ (OCCP) の機能 .....................504 コンペアレジスタ (OCCP) のビット構成 ......... 504 さ 再起動 自動再起動 ............................................................ 413 ソフトウェア再起動 ............................................ 412 サイレントモード サイレントモード ................................................361 サイレントモードと結合したループバックモード ..........................................................................363 サブクロック サブクロックからメインクロック切換え後の 待ち時間 ............................................................85 サブクロックを使用しない場合の注意について ............................................................................33 サブクロックからメインクロック切換え後 サブクロックからメインクロック切換え後の 待ち時間 ............................................................85 サブセカンドレジスタ サブセカンドレジスタ .........................................561 サブタイマデータレジスタ サブタイマデータレジスタ (CUTD) ..................568 サブタイマデータレジスタの設定 .....................571 算術演算 算術演算 ...................................................................42 し 時 / 分 / 秒レジスタ 時 / 分 / 秒レジスタ ..............................................562 シグナルモード シグナルモード .....................................................415 自動アルゴリズム 自動アルゴリズム実行状態 .................................625 自動アルゴリズムのコマンドシーケンス ..........................................................................627 フラッシュメモリ自動アルゴリズムの概要 ..........................................................................626 自動ウェイトタイミング 自動ウェイトタイミング (TYP3 ∼ TYP0]=0000B,AWR=2008H) ..........171 自動再起動 自動再起動 .............................................................413 時分割入出力インタフェース 時分割入出力インタフェースの制御信号 .........156 周期 ハードウェアウォッチドッグタイマの周期 ..........................................................................651 周波数 原発振クロック周波数について .........................694 マシンクロック周波数ごとのボーレート設定例 ..........................................................................410 周辺回路 周辺回路よりの転送停止要求の発生 .................285 周辺クロック 周辺クロック (CLKP) .............................................86 周辺リソース メモリ空間領域と周辺リソースの各レジスタの 対応 ..................................................................655 終了チャネル設定レジスタ 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) .........588 受信 FIFO バッファによるメッセージ受信 ...............355 受信データの例 .....................................................468 受信動作 .................................................................417 受信メッセージオブジェクトの設定 .................353 受信メッセージのアクセプタンスフィルタ ..........................................................................351 受信メッセージの処理 .........................................354 受信割込み ............................................................ 401 受信割込み生成とフラグセットタイミング ..........................................................................403 データフレーム受信 ............................................ 351 受信メッセージ 受信メッセージのアクセプタンスフィルタ ..........................................................................351 受信メッセージの処理 ........................................ 354 受信メッセージオブジェクト 受信メッセージオブジェクトの設定 ................ 353 受信優先度 受信優先度 ............................................................ 351 受信割込み 受信割込み生成とフラグセットタイミング ..........................................................................403 出力周波数 クロックモニタの出力周波数 ............................552 出力端子機能 出力端子機能 ........................................................ 480 出力電圧 D/A コンバータ出力電圧の理論値 .................... 599 出力反転レジスタ 出力反転レジスタ (REVC) ..................................521 消去 セクタ消去 ............................................................ 629 チップ消去 ............................................................ 628 フラッシュメモリ書込み / 消去の概要 ............. 636 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 .................................................................. 640 消去一時停止 消去一時停止 ........................................................ 630 フラッシュメモリのセクタ消去一時停止方法 ..........................................................................643 消去再開方法 フラッシュメモリのセクタ消去再開方法 ........644 乗除算レジスタ 乗除算レジスタ (Multiply & Divide register) ............................................................................52 初期化 設定初期化リセット (INIT) ................................. 130 動作初期化リセット (RST) ................................. 131 分周比設定の初期化 .............................................. 88 初期値 各ハードウェアの初期値 .................................... 525 処理 退避・復帰の処理 ................................................248 シリアルオンボード書込み 富士通標準シリアルオンボード書込みに使用する 端子 .................................................................. 689 シリアル書込み接続例 シリアル書込み接続例 ........................................ 690 シリアルコントロールレジスタ シリアルコントロールレジスタ (SCR) ............. 382 シリアルコントロールレジスタ (SCR) の AD ビット ....................................................... 435 シリアルステータスレジスタ シリアルステータスレジスタ (SSR) .................. 388 シリアルモードレジスタ シリアルモードレジスタ (SMR) ........................ 385 シングルチップモード バスモード 0 ( シングルチップモード ) ..............77 信号 レディ / ビジー信号 (RDY/BUSYX) .................. 631 705 す 推奨設定値 推奨設定値 .............................................................587 水晶発振回路 水晶発振回路について ...........................................32 スタート / ストップビット モード 2 でのクロック反転とスタート / ストップビット ..............................................419 スタック 割込みスタック .......................................................65 スタンバイ制御レジスタ STCR:スタンバイ制御レジスタ .........................92 スタンバイ動作 同期スタンバイ動作 .............................................117 スタンバイモード スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................224 ステップ ステップ / ブロック転送 2 サイクル転送 ..........................................................................273 ステップ転送 .........................................................273 ステップ / ブロック転送 ステップ / ブロック転送 2 サイクル転送 ..........................................................................273 ステップ転送 ステップ転送 .........................................................273 ステップトレーストラップ ステップトレーストラップの動作 .......................74 ストア ロードとストア .......................................................42 ストップ スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................224 ストップビット ストップビット .....................................................417 ストップモード ストップモード .....................................................115 ストップモード復帰後 ストップモード復帰後の待ち時間 .......................84 スリープ スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................224 スリープモード スリープモード .....................................................114 スリープモード中の DMA 転送の注意 .............287 スレーブ スレーブアドレス検出 .........................................463 スレーブアドレスとデータ転送の例 .................467 スレーブアドレスマスク .....................................463 LIN スレーブとしての UART .............................422 LIN スレーブの設定 .............................................434 LIN マスタ−スレーブ通信機能 .........................430 スレーブデバイスとしての UART .....................432 マスタ−スレーブ通信機能 .................................427 スレーブアドレス スレーブアドレスとデータ転送の例 .................467 スレーブアドレス検出 スレーブアドレス検出 .........................................463 スレーブアドレスマスク スレーブアドレスマスク .....................................463 706 スレーブアドレッシング スレーブアドレッシング .................................... 464 スレーブデバイス スレーブデバイスとしての UART .................... 432 せ 制御レジスタ 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に 設定 ) ................................................................ 283 精度 補正の精度 ............................................................ 571 セクタ セクタ指定方法 ....................................................641 セクタ消去 ............................................................ 629 セクタ消去手順 ....................................................641 複数のセクタを指定するときの注意 ................ 641 フラッシュメモリのセクタアドレス表 ............618 フラッシュメモリのセクタ消去一時停止方法 ..........................................................................643 フラッシュメモリのセクタ消去再開方法 ..........................................................................644 セクタアドレス フラッシュメモリのセクタアドレス表 ............618 セクタ消去 セクタ消去 ............................................................ 629 セクタ消去手順 セクタ消去手順 ....................................................641 接続例 外部との接続例 ....................................................162 シリアル書込み接続例 ........................................ 690 プログラマによるオンボード書込み接続例 ..........................................................................686 設定初期化後 設定初期化後の待ち時間 ...................................... 84 設定初期化リセット 設定初期化リセット (INIT) ................................. 130 全体コントロールレジスタ 全体コントロールレジスタ ........................303, 304 全体コントロールレジスタ一覧 ........................ 298 全チャネル動作許可 全チャネル動作許可 ............................................ 280 全チャネル動作禁止 全チャネル動作禁止 ............................................ 284 そ 送受信 メッセージ RAM とのデータ送受信 ................. 347 送信 送信動作 ................................................................ 417 送信メッセージオブジェクトの更新 ................ 350 送信メッセージオブジェクトの設定 ................ 350 送信割込み ............................................................ 401 送信割込み許可タイミング ................................434 送信割込み生成とフラグセットタイミング ..........................................................................405 送信割込み要求生成タイミング ........................ 406 メッセージ送信 ....................................................349 送信データレジスタ 受信 / 送信データレジスタ (RDR/TDR) ............391 送信メッセージオブジェクト 送信メッセージオブジェクトの更新 .................350 送信メッセージオブジェクトの設定 .................350 送信優先度 送信優先度 .............................................................349 送信割込み 送信割込み許可タイミング .................................434 送信割込み生成とフラグセットタイミング ..........................................................................405 送信割込み要求生成タイミング .........................406 双方向通信 双方向通信機能 .....................................................426 ソースクロック ソースクロックの選択 ...........................................81 測定処理タイミング 測定処理タイミング .............................................564 ソフトウェア ソフトウェア互換 .................................................435 ソフトウェア再起動 .............................................412 ソフトウェア要求 .................................................271 ソフトウェア互換 ソフトウェア互換 .................................................435 ソフトウェア制御 端子 CAN_TX のソフトウェア制御 ...................365 ソフトウェア要求 ソフトウェア要求 .................................................271 ソフトウェアリセット 同期モードのソフトウェアリセットについて ( 評価用品 MB91V280 のみ ) ...........................34 た 退避 退避・復帰の処理 .................................................248 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ (TCCS) ..........................................................................487 タイマ制御レジスタ タイマ制御レジスタ (WTCR) .............................559 タイマデータレジスタ タイマデータレジスタ (TCDT) ..........................486 タイミングチャート 各端子のタイミングチャート .............................687 タイムベースカウンタ タイムベースカウンタ .........................................107 タイムベースカウンタクリアレジスタ CTBR:タイムベースカウンタクリアレジスタ ............................................................................97 タイムベースカウンタ制御レジスタ TBCR:タイムベースカウンタ制御レジスタ ............................................................................95 ダイレクトアドレッシング ダイレクトアドレッシング ...................................43 ダイレクトアドレッシング領域 ...........................36 端子機能説明 端子機能説明 ...........................................................11 端子入力レベル 端子入力レベル .....................................................206 端子入力レベルの選択 .........................................206 端子状態一覧表 各 CPU ステートにおける端子状態一覧表 ..........................................................................673 端子状態一覧表の用語説明 ................................672 単発モード 単発モード ............................................................ 590 ち 遅延スロット 遅延スロット付き動作の制限事項 ...................... 58 遅延スロット付き動作の動作説明 ...................... 57 遅延スロット付き動作の命令 ..............................57 遅延スロットなし動作の動作説明 ...................... 59 遅延スロットなし動作の命令 ..............................59 遅延割込みモジュール 遅延割込みモジュールの概要 ............................238 遅延割込みモジュールのブロックダイヤグラム ..........................................................................239 遅延割込みモジュールのレジスタ一覧 ............239 遅延割込みモジュールレジスタ DICR ( 遅延割込みモジュールレジスタ ) ......... 240 チップ チップ消去 ............................................................ 628 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 ................................................................. 640 チップ消去 チップ消去 ............................................................ 628 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 ................................................................. 640 チャネル間優先順位 チャネル間優先順位 ............................................ 288 チャネルグループ チャネルグループ ................................................289 直接アクセス UART 端子直接アクセス .................................... 425 つ 通常アクセス 通常アクセスおよびアドレス / データマルチ プレクスアクセス .......................................... 148 通常バスインタフェース 通常バスインタフェースの制御信号 ................ 156 通信 LIN マスタ−スレーブ通信機能 .........................430 エラーを発生しない通信エラー ........................ 465 双方向通信機能 ....................................................426 通信 ........................................................................421 通信手順 ................................................................ 428 通信モードの設定 ................................................434 マスタ−スレーブ通信機能 ................................427 通信エラー エラーを発生しない通信エラー ........................ 465 通信手順 通信手順 ................................................................ 428 通信モード 通信モードの設定 ................................................434 て 停止条件 停止条件 ................................................................ 462 707 停止モード 停止モード .............................................................591 逓倍率 PLL 逓倍率 ...............................................................83 データ形式 転送データ形式 .............................................416, 419 データバス幅 データバス幅 .........................................................158 データフォーマット データフォーマット .............................................157 データフレーム データフレーム受信 .............................................351 データ方向レジスタ データ方向レジスタ (DDR) ................................187 データレジスタ データレジスタ (ADCR1,ADCR0) ......................585 データレジスタ (IDAR0 ∼ IDAR2) ...................461 テストモード テストモード設定 .................................................361 デバイス LIN デバイスの接続 .............................................430 スレーブデバイスとしての UART .....................432 デバイス状態 .........................................................111 デバイス状態制御の概要 .....................................110 デバイスの動作状態 .............................................112 マスタデバイスとしての UART .........................431 デバイス状態制御 デバイス状態制御の概要 .....................................110 デューティ デューティ変更 .....................................................526 電源端子 電源端子について ...................................................32 電源投入後 電源投入後の待ち時間 ...........................................84 電源投入時 電源投入時について ...............................................33 電源投入時の原振入力について ...........................33 電源投入時の発振安定待ち時間について ..........................................................................129 転送 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........180 2 サイクル転送 ( 外部→ I/O) (TTYP3 ∼ TYP0=0000B,AWR=0008H) ..........................................................................179 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........178 2 サイクル転送時のデータの動作 ......................292 DMA 転送と割込み ..............................................278 周辺回路よりの転送停止要求の発生 .................285 ステップ / ブロック転送 2 サイクル転送 .........273 ステップ転送 .........................................................273 スリープモード中の DMA 転送の注意 .............287 スレーブアドレスとデータ転送の例 .................467 転送アドレス .........................................................270 転送回数と転送終了 .............................................270 転送起動 .................................................................280 転送シーケンスの選択 .........................................272 転送終了 .................................................................284 転送タイプ .............................................................269 転送データ形式 .............................................416, 419 転送モード .............................................................269 708 転送要求の受付けと転送 .................................... 281 バースト 2 サイクル転送 .................................... 272 バースト転送の動作フロー ................................291 ブロック転送 ........................................................ 273 ブロック転送の動作フロー ................................290 転送アドレス 転送アドレス ........................................................ 270 転送回数 転送回数と転送終了 ............................................ 270 転送回数レジスタ 転送回数レジスタとリロード動作 .................... 277 転送シーケンス 転送シーケンスの選択 ........................................ 272 転送タイプ 転送タイプ ............................................................ 269 転送停止要求 周辺回路よりの転送停止要求の発生 ................ 285 転送モード 転送モード ............................................................ 269 と 同期化 同期化方法 ............................................................ 415 同期スタンバイ動作 同期スタンバイ動作 ............................................ 117 同期モード 同期モードのソフトウェアリセットについて ( 評価用品 MB91V280 のみ ) .......................... 34 動作許可ビット 動作許可ビット ....................................................415 動作初期化リセット 動作初期化リセット (RST) ................................. 131 動作モード 動作モード ............................................................ 522 動作モードの概要 ..................................................76 UART の動作モード ............................................ 373 動作モード 3 における LIN の使用 .................... 434 トラップ コプロセッサエラートラップ ..............................75 コプロセッサ不在トラップ ..................................75 な 内蔵周辺要求 内蔵周辺要求 ........................................................ 271 内蔵メモリ 内蔵メモリ ................................................................ 3 内部 RAM 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ........... 178 内部アーキテクチャ 内部アーキテクチャの概要 ..................................37 内部アーキテクチャの構造 ..................................39 内部アーキテクチャの特長 ..................................38 内部クロック 内部クロック動作 ................................................479 内部動作クロック 内部動作クロックの生成 ...................................... 81 に 入出力回路形式 入出力回路形式 .......................................................27 入力インピーダンス 入力インピーダンス .............................................574 入力データダイレクトリードレジスタ 入力データダイレクトリードレジスタ (PIDR) ..........................................................................211 入力電圧 端子入力電圧 ...........................................................26 入力レベル 端子入力レベル .....................................................206 端子入力レベルの選択 .........................................206 は バースト バースト 2 サイクル転送 .....................................272 バースト転送の動作フロー .................................291 バースト 2 サイクル転送 バースト 2 サイクル転送 .....................................272 バースト転送 バースト転送の動作フロー .................................291 ハードウェア 各ハードウェアの初期値 .....................................525 ハードウェアウォッチドッグ .................................4 ハードウェアウォッチドッグタイマ ハードウェアウォッチドッグタイマ .................648 ハードウェアウォッチドッグタイマの機能 ..........................................................................651 ハードウェアウォッチドッグタイマの周期 ..........................................................................651 ハードウェアウォッチドッグタイマの注意事項 ..........................................................................652 ハードウェアウォッチドッグタイマの ブロックダイヤグラム ..................................649 ハードウェアウォッチドッグタイマ制御レジスタ ハードウェアウォッチドッグタイマ制御レジスタ ..........................................................................650 ハードウェア構成 DMAC のハードウェア構成 ................................250 割込みコントローラのハードウェア構成 ..........................................................................214 ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ .........................631 ハーバード ハーバード←→プリンストン バスコンバータ ............................................................................41 ハーフワードアクセス ハーフワードアクセス .........................................164 バイトアクセス バイトアクセス .....................................................165 バイトオーダリング バイトオーダリング ...............................................53 バスアイドル バスアイドル機能 .................................................435 バスアイドル割込み .............................................402 バスアクセス 外部バスアクセス .................................................159 バスインタフェース I2C バスインタフェース (400kbps 対応 ): 3 チャネル ........................................................... 4 外部バスインタフェースの設定手順 ................ 181 通常バスインタフェースの制御信号 ................ 156 バスエラー バスエラー ............................................................ 465 バスコントロールレジスタ バスコントロールレジスタ (IBCR0 ∼ IBCR2) ..........................................................................446 バスコンバータ 32 ビット←→ 16 ビットバスコンバータ ........... 40 ハーバード←→プリンストン バスコンバータ ............................................................................41 バスステータスレジスタ バスステータスレジスタ (IBSR0 ∼ IBSR2) ..........................................................................443 バスタイミング LIN バスタイミング .............................................424 バスモード バスモード .............................................................. 76 バスモード 0 ( シングルチップモード ) ..............77 バスモード 1 ( 内 ROM 外バスモード ) ............... 77 バスモード 2 ( 外 ROM 外バスモード ) ............... 77 発振安定待ち時間 電源投入時の発振安定待ち時間について ..........................................................................129 リセット要因と発振安定待ち時間 .................... 128 発振制御レジスタ OSCCR:発振制御レジスタ ............................... 106 パリティ パリティ ................................................................ 418 パルス パルスの端子出力の制御 .................................... 524 パルス幅 リロード値とパルス幅の関係 ............................523 反転 モード 2 でのクロック反転とスタート / ストップビット .............................................. 419 汎用レジスタ 汎用レジスタ .......................................................... 45 ひ ビジー信号 レディ / ビジー信号 (RDY/BUSYX) .................. 631 ビットオーダリング ビットオーダリング .............................................. 53 ビット機能 DMACA0 ∼ DMACA4 のビット機能 ................ 254 DMACB0 ∼ DMACB4 のビット機能 ................ 258 DMACR のビット機能 .........................................266 DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 の ビット機能 ......................................................264 ビット構成 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................477 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................478 ICR ビット構成 ....................................................... 63 インプットキャプチャコントロールレジスタ (ICS) のビット構成 ........................................ 497 709 インプットキャプチャレジスタ (IPCP) の ビット構成 ......................................................496 ウェイトレジスタ (FLWC) のビット構成 .........622 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................231 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................232 カウンタコントロールレジスタ (CCR) の ビット構成 ......................................................539 カウンタステータスレジスタ (CSR) の ビット構成 ......................................................537 クロック出力許可レジスタのビット構成 ..........................................................................553 コントロールステータスレジスタ (TMCSR) の ビット構成 ......................................................474 コントロールレジスタのビット構成 .................505 コンペアレジスタ (OCCP) のビット構成 .........504 フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成 .....................................620 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................219 割込み許可レジスタ (ENIR) のビット構成 ..........................................................................230 割込み制御レジスタ (ICR) のビット構成 ..........................................................................218 ビットサーチモジュール ビットサーチモジュール (REALOS 使用 ) ...........3 ビットサーチモジュールの概要 .........................242 ビットサーチモジュールのブロックダイヤグラム ..........................................................................243 ビットサーチモジュールのレジスタ一覧 ..........................................................................243 ビット操作 論理演算とビット操作 ...........................................43 ふ フェッチ モードフェッチ .....................................................133 不在トラップ コプロセッサ不在トラップ ...................................75 富士通標準 富士通標準シリアルオンボード書込みに使用する 端子 ..................................................................689 復帰 退避・復帰の処理 .................................................248 フラグセットタイミング 受信割込み生成とフラグセットタイミング ..........................................................................403 送信割込み生成とフラグセットタイミング ..........................................................................405 フラッシュコントロール / ステータスレジスタ フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成 .....................................620 フラッシュマイコンプログラマ AF210 フラッシュマイコンプログラ マシステム 構成 ( 横河ディジタルコンピュータ株式会社製 ) ..........................................................................694 フラッシュメモリ フラッシュメモリ書込み / 消去の概要 .............636 フラッシュメモリ書込み手順 .............................638 710 フラッシュメモリ自動アルゴリズムの概要 ..........................................................................626 フラッシュメモリのアクセスモード ................ 624 フラッシュメモリの概要 .................................... 616 フラッシュメモリのセクタアドレス表 ............618 フラッシュメモリのセクタ消去一時停止方法 ..........................................................................643 フラッシュメモリのセクタ消去再開方法 ..........................................................................644 フラッシュメモリのデータ書込み方法 ............638 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 ................................................................. 640 フラッシュメモリのブロックダイヤグラム ..........................................................................617 フラッシュメモリのメモリマップ .................... 617 フラッシュメモリの読出し / リセット方法 ..........................................................................637 フラッシュメモリのレジスタ概要 .................... 619 フラッシュメモリプログラミングの注意事項 ..........................................................................646 フリーランタイマ 16 ビットフリーランタイマ使用時の注意事項 ..........................................................................492 16 ビットフリーランタイマの概要 ...................484 16 ビットフリーランタイマのカウントタイミン グ ......................................................................491 16 ビットフリーランタイマのクリアタイミング ..........................................................................491 16 ビットフリーランタイマの動作説明 ........... 490 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................484 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................485 プリスケーラ CAN クロックプリスケーラ設定 .......................369 プリスケーラレジスタ プリスケーラレジスタ ........................................ 303 プリンストン ハーバード←→プリンストン バスコンバータ ............................................................................41 プルアップコントロール プルアップコントロール ...................................... 33 プルアップ・プルダウン制御 プルアップ・プルダウン制御 ............................208 プログラマ プログラマがオンボード書換えに使用する端子 ..........................................................................687 プログラマによるオンボード書込み接続例 ..........................................................................686 プログラミング FR-CPU プログラミングモード (16 ビット , 読出し / 書込み可能 ) ............... 624 フラッシュメモリプログラミングの注意事項 ..........................................................................646 プログラミングモデル 基本プログラミングモデル ..................................44 プログラム プログラム ( 書込み ) ...........................................628 ブロック 各ブロックの説明 ................................................377 ブロック転送 ........................................................ 273 ブロック転送の動作フロー ................................290 ブロックサイズ ブロックサイズ .....................................................274 ブロックダイヤグラム 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................484 16 ビットリロードタイマのブロック ダイヤグラム ..................................................472 8 ビット PPG ch.0,ch.2 のブロックダイヤグラム ..........................................................................513 8 ビット PPG ch.1 のブロックダイヤグラム ..........................................................................514 8 ビット PPG ch.3 のブロックダイヤグラム ..........................................................................515 A/D コンバータのブロックダイヤグラム ..........................................................................575 D/A コンバータのブロックダイヤグラム ..........................................................................594 DMAC のブロックダイヤグラム ........................252 I2C インタフェースのブロックダイヤグラム ..........................................................................441 MB91270 シリーズのブロックダイヤグラム ..............................................................................7 UART のブロックダイヤグラム .................375, 376 アウトプットコンペアのブロックダイヤグラム ..........................................................................502 アップダウンカウンタのブロックダイヤグラム ..........................................................................531 インプットキャプチャのブロックダイヤグラム ..........................................................................494 外部バスインタフェースのブロックダイヤグラム ..........................................................................139 外部リセット端子のブロックダイヤグラム ..........................................................................132 外部割込み制御部のブロックダイヤグラム ..........................................................................228 クロック生成制御部のブロックダイヤグラム ............................................................................89 クロックモニタのブロックダイヤグラム ..........................................................................552 遅延割込みモジュールのブロックダイヤグラム ..........................................................................239 ハードウェアウォッチドッグタイマのブロック ダイヤグラム ..................................................649 ビットサーチモジュールのブロックダイヤグラム ..........................................................................243 フラッシュメモリのブロックダイヤグラム ..........................................................................617 ブロックダイヤグラム .................................367, 558 ポート基本ブロックダイヤグラム .....................184 メイン発振安定待ちタイマのブロック ダイヤグラム ..................................................118 割込みコントローラのブロックダイヤグラム ..........................................................................216 ブロック転送 ステップ / ブロック転送 2 サイクル転送 .........273 ブロック転送 .........................................................273 ブロック転送の動作フロー .................................290 分岐 分岐 ...........................................................................42 分岐命令 分岐命令の概要 .......................................................56 分周比 分周比設定の初期化 ...............................................88 分周比の設定 .......................................................... 88 へ ベーシックモード ベーシックモード ................................................364 ベクタテーブル EIT ベクタテーブル ...............................................67 変化点検出 変化点検出 ............................................................ 247 変化点検出用データレジスタ 変化点検出用データレジスタ (BSDC) ..............245 変換時間設定レジスタ 変換時間設定レジスタ ........................................ 586 ほ 方法 フラッシュメモリの読出し / リセット方法 ..........................................................................637 ポート ポート基本ブロックダイヤグラム .................... 184 ポートの一般的な仕様 ........................................ 185 ポート 0 ポート 0 ................................................................. 188 ポート 1 ポート 1 ................................................................. 189 ポート 2 ポート 2 ................................................................. 190 ポート 3 ポート 3 ................................................................. 191 ポート 4 ポート 4 ................................................................. 193 ポート 5 ポート 5 ................................................................. 194 ポート 6 ポート 6 ................................................................. 195 ポート 7 ポート 7 ................................................................. 196 ポート 8 ポート 8 ................................................................. 197 ポート 9 ポート 9 ................................................................. 198 ポート A ポート A ................................................................. 199 ポート B ポート B ................................................................. 200 ポート C ポート C ................................................................. 201 ポート D ポート D ................................................................. 202 ポート E ポート E ................................................................. 203 ポート F ポート F ................................................................. 203 ポート G ポート G ................................................................. 203 ポートデータレジスタ ポートデータレジスタ (PDR) ............................. 186 ポートプルアップ・プルダウン許可レジスタ ポートプルアップ・プルダウン許可レジスタ ..........................................................................208 711 ポートプルアップ・プルダウン制御レジスタ ポートプルアップ・プルダウン制御レジスタ ..........................................................................210 ホールド抑止レベル割込み NMI/ ホールド抑止レベル割込み処理中 ...........283 ホールドリクエスト取下げ要求 ホールドリクエスト取下げ要求 (Hold Request Cancel Request) .......................223 ホールドリクエスト取下げ要求機能 (HRCR) の 使用例 ..............................................................225 ホールドリクエスト取下げ要求レジスタ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................219 ボーレート UART のボーレート選択 .....................................407 ボーレートの算出 .................................................409 マシンクロック周波数ごとのボーレート設定例 ..........................................................................410 ボーレート / リロードカウンタレジスタ ボーレート / リロードカウンタレジスタ ..........................................................................399 ボーレート / リロードカウンタレジスタ (BGR) ..........................................................................399 補正 補正の精度 .............................................................571 補正ユニット制御レジスタ 補正ユニット制御レジスタ (CUCR) ..................566 ま マシンクロック マシンクロック周波数ごとのボーレート設定例 ..........................................................................410 マスク スレーブアドレスマスク .....................................463 マスタ LIN マスタとしての UART .................................422 LIN マスタ−スレーブ通信機能 .........................430 マスタデバイスとしての UART .........................431 マスタ−スレーブ通信機能 .................................427 マスタデバイス マスタデバイスとしての UART .........................431 マスタ−スレーブ通信 LIN マスタ−スレーブ通信機能 .........................430 マスタ−スレーブ通信機能 .................................427 待ち 設定初期化後の待ち時間 .......................................84 待ち時間 PLL 逓倍率変更後の待ち時間 ..............................84 PLL 動作許可後の待ち時間 ..................................84 サブクロックからメインクロック切換え後の 待ち時間 ............................................................85 ストップモード復帰後の待ち時間 .......................84 電源投入後の待ち時間 ...........................................84 マッピング ICR マッピング .......................................................63 み 未定義命令 未定義命令例外の動作 ...........................................74 712 未使用入力端子 未使用入力端子の処理について .......................... 32 め 命令 INTE 命令の動作 ....................................................73 INT 命令の動作 ....................................................... 73 RETI 命令の動作 ....................................................75 その他の命令概要 ..................................................43 遅延スロット付き動作の命令 ..............................57 遅延スロットなし動作の命令 ..............................59 分岐命令の概要 ......................................................56 メインクロック サブクロックからメインクロック切換え後の 待ち時間 ............................................................ 85 メインタイマデータレジスタ メインタイマデータレジスタ (CUTR) ..............570 メイン発振安定待ちタイマ メイン発振安定待ちタイマ使用時の注意事項 ..........................................................................123 メイン発振安定待ちタイマのインターバル時間 ..........................................................................118 メイン発振安定待ちタイマの動作 .................... 122 メイン発振安定待ちタイマのブロック ダイヤグラム ..................................................118 メイン発振安定待ちタイマのレジスタ説明 ..........................................................................119 メイン発振安定待ち割込み メイン発振安定待ち割込み ................................121 メッセージ FIFO バッファによるメッセージ受信 ............... 355 受信メッセージのアクセプタンスフィルタ ..........................................................................351 受信メッセージの処理 ........................................ 354 メッセージ RAM ..................................................297 メッセージ RAM とのデータ送受信 ................. 347 メッセージ送信 ....................................................349 メッセージ RAM メッセージ RAM ..................................................297 メッセージ RAM とのデータ送受信 ................. 347 メッセージインタフェースレジスタ メッセージインタフェースレジスタ ................ 303 メッセージインタフェースレジスタ一覧 ..........................................................................300 メッセージオブジェクト 受信メッセージオブジェクトの設定 ................ 353 送信メッセージオブジェクトの更新 ................ 350 送信メッセージオブジェクトの設定 ................ 350 メッセージオブジェクト .................................... 347 メッセージオブジェクトの機能 ........................ 330 メッセージオブジェクトの構成 ........................ 330 メッセージ受信 FIFO バッファによるメッセージ受信 ............... 355 メッセージ送信 メッセージ送信 ....................................................349 メッセージハンドラ メッセージハンドラ ............................................ 297 メッセージハンドラレジスタ メッセージハンドラレジスタ ....................303, 336 メッセージハンドラレジスタ一覧 .................... 302 メモリ 内蔵メモリ .................................................................3 メモリ空間領域 メモリ空間領域と周辺リソースの各レジスタの 対応 ..................................................................655 メモリマップ MB91270 シリーズのメモリマップ .....................10 フラッシュメモリのメモリマップ .....................617 メモリマップ .....................................................36, 55 も モード FR-CPU プログラミングモード (16 ビット , 読出し / 書込み可能 ) ...............624 PLL クロックモード動作中の注意について ............................................................................33 アクセスモード .......................................................76 カウントモード選択 .............................................543 サイレントモード .................................................361 サイレントモードと結合したループバックモード ..........................................................................363 スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................224 ストップモード .....................................................115 スリープモード .....................................................114 スリープモード中の DMA 転送の注意 .............287 単発モード .............................................................590 停止モード .............................................................591 テストモード設定 .................................................361 転送モード .............................................................269 動作モード .............................................................522 動作モードの概要 ...................................................76 バスモード ...............................................................76 バスモード 0 ( シングルチップモード ) ..............77 バスモード 1 ( 内 ROM 外バスモード ) ...............77 バスモード 2 ( 外 ROM 外バスモード ) ...............77 フラッシュメモリのアクセスモード .................624 ベーシックモード .................................................364 モード端子 .......................................................78, 133 モード端子 (MD0 ∼ MD2) について ...................33 モードデータ読出し後の端子の状態 .................136 モードフェッチ .....................................................133 ループバックモード .............................................362 連続モード .............................................................590 UART の動作モード .............................................373 シグナルモード .....................................................415 通信モードの設定 .................................................434 動作モード 3 における LIN の使用 ....................434 モード 2 でのクロック反転とスタート / ストップビット ..............................................419 モード端子 モード端子 .......................................................78, 133 モード端子 (MD0 ∼ MD2) について ...................33 モードデータ モードデータ読出し後の端子の状態 .................136 モードフェッチ モードフェッチ .....................................................133 モードレジスタ モードレジスタ (MODR) .......................................79 ゆ ユーザ割込み ユーザ割込み・NMI の動作 ..................................72 優先順位 チャネル間優先順位 ............................................ 288 優先順位判定 ........................................................ 220 優先度 EIT 要因受理の優先度 ...........................................70 ユニット クロック補正ユニット ........................................ 564 クロック補正ユニットのレジスタ一覧 ............565 よ 読出し FIFO バッファからの読出し ............................... 356 フラッシュメモリの読出し / リセット方法 ..........................................................................637 リード ( 読出し )/ リセットコマンド ................. 627 ら ライト→ライトタイミング ライト→ライトタイミング (TYP3 ∼ TYP0]=0000B,AWR=0018H) ..........170 ラッチアップ ラッチアップ防止のために ..................................32 り リアルタイムクロック リアルタイムクロックのレジスタ一覧 ............556 リード リード ( 読出し )/ リセットコマンド ................. 627 リード→ライトタイミング リード→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0048H) ........... 169 リセット 設定初期化リセット (INIT) ................................. 130 動作初期化リセット (RST) ................................. 131 リード ( 読出し )/ リセットコマンド ................. 627 リセット ................................................................ 134 リセット中の端子の状態 .................................... 136 リセット動作の概要 ............................................ 133 リセット要因 ........................................................ 126 リセット要因と発振安定待ち時間 .................... 128 リセット要因ビットとリセット要因の対応 ..........................................................................135 リセット要因ビットの注意事項 ........................ 135 リセットコマンド リード ( 読出し )/ リセットコマンド ................. 627 リセットタイミング 外部端子のリセットタイミング ........................ 132 リセット方法 フラッシュメモリの読出し / リセット方法 ..........................................................................637 リセット要因 リセット要因 ........................................................ 126 リセット要因と発振安定待ち時間 .................... 128 713 リセット要因ビットとリセット要因の対応 ..........................................................................135 リセット要因ビットの注意事項 .........................135 リセット要因ビット リセット要因ビットとリセット要因の対応 ..........................................................................135 リセット要因ビットの注意事項 .........................135 リセット要因レジスタ RSRR:リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ........................................90 リモートフレーム リモートフレーム .................................................352 リロード リロード / コンペア機能 .....................................545 リロード / コンペア機能同時起動 .....................546 リロード / コンペア機能 リロード / コンペア機能 .....................................545 リロード / コンペア機能同時起動 リロード / コンペア機能同時起動 .....................546 リロードコンペアレジスタ リロードコンペアレジスタ (RCR) .....................536 リロードタイマ 16 ビットリロードタイマの概要 ........................472 16 ビットリロードタイマのブロック ダイヤグラム ..................................................472 16 ビットリロードタイマのレジスタ一覧 ..........................................................................473 リロード値 リロード値とパルス幅の関係 .............................523 リロード動作 転送回数レジスタとリロード動作 .....................277 リロード動作 .........................................................274 リロードレジスタ リロードレジスタ (PRLL/PRLH) ........................519 る ループバックモード サイレントモードと結合したループバックモード ..........................................................................363 ループバックモード .............................................362 れ 例外 未定義命令例外の動作 ...........................................74 レジスタ 0 検出用データレジスタ (BSD0) ........................244 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2) ..........................................................................456 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) ..........................................................................455 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................477 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................478 1 検出用データレジスタ (BSD1) ........................244 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) ..........................................459 714 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) ...........................................458 A/D 許可レジスタ (ADER) ..................................578 A/D コントロールステータスレジスタ 0 (ADCS0) ..........................................................................582 A/D コントロールステータスレジスタ 1 (ADCS1) ..........................................................................579 CLKR:クロックソース制御レジスタ ................98 CTBR:タイムベースカウンタクリアレジスタ ............................................................................97 D/A クロック制御レジスタ (DADBL) ............... 598 D/A 制御レジスタ (DACR) ..................................596 D/A データレジスタ (DADR) ............................. 597 DICR ( 遅延割込みモジュールレジスタ ) ......... 240 DIVR0:基本クロック分周設定レジスタ 0 ..........................................................................102 DIVR1:基本クロック分周設定レジスタ 1 ..........................................................................104 OSCCR:発振制御レジスタ ............................... 106 PPG 起動レジスタ (TRG) .................................... 520 PPG 動作モード制御レジスタ (PPGC) ..............517 RSRR:リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ ............90 STCR:スタンバイ制御レジスタ ........................ 92 TBCR:タイムベースカウンタ制御レジスタ ............................................................................95 WPR:ウォッチドッグリセット発生延期 レジスタ .......................................................... 101 インプットキャプチャコントロールレジスタ (ICS) のビット構成 ........................................ 497 インプットキャプチャレジスタ (IPCP) の ビット構成 ......................................................496 ウェイトレジスタ (FLWC) のビット構成 ......... 622 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) ..........................................................................588 外部割込み入力端子選択レジスタ (EISSR) ..........................................................................204 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................231 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................232 カウンタコントロールレジスタ (CCR) の ビット構成 ......................................................539 カウンタステータスレジスタ (CSR) の ビット構成 ......................................................537 クロック禁止レジスタ ........................................ 563 クロックコントロールレジスタ (ICCR0 ∼ ICCR2) ..........................................................................453 クロック出力許可レジスタのビット構成 ..........................................................................553 クロックプリスケーラレジスタ ........................ 302 クロックモジュレータ制御レジスタ (CMCR) ..........................................................................605 クロックモジュレータパラメータレジスタ (CMPR) ............................................................ 604 検出結果レジスタ (BSRR) ..................................245 コントロールステータスレジスタ (TMCSR) の ビット構成 ......................................................474 コントロールレジスタのビット構成 ................ 505 コンペアレジスタ (OCCP) の機能 .....................504 コンペアレジスタ (OCCP) のビット構成 ..........................................................................504 サブセカンドレジスタ .........................................561 サブタイマデータレジスタ (CUTD) ..................568 サブタイマデータレジスタの設定 .....................571 時 / 分 / 秒レジスタ ..............................................562 出力反転レジスタ (REVC) ..................................521 乗除算レジスタ (Multiply & Divide register) ............................................................................52 全体コントロールレジスタ .........................303, 304 タイマコントロールステータスレジスタ (TCCS) ..........................................................................487 タイマ制御レジスタ (WTCR) .............................559 タイマデータレジスタ (TCDT) ..........................486 データ方向レジスタ (DDR) ................................187 転送回数レジスタとリロード動作 .....................277 入力データダイレクトリードレジスタ (PIDR) ..........................................................................211 ハードウェアウォッチドッグタイマ制御レジスタ ..........................................................................650 バスコントロールレジスタ (IBCR0 ∼ IBCR2) ..........................................................................446 バスステータスレジスタ (IBSR0 ∼ IBSR2) ..........................................................................443 フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成 .....................................620 プリスケーラレジスタ .........................................303 変化点検出用データレジスタ (BSDC) ..............245 変換時間設定レジスタ .........................................586 ポートデータレジスタ (PDR) .............................186 ポートプルアップ・プルダウン許可レジスタ ..........................................................................208 ポートプルアップ・プルダウン制御レジスタ ..........................................................................210 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................219 補正ユニット制御レジスタ (CUCR) ..................566 メインタイマデータレジスタ (CUTR) ..............570 メッセージインタフェースレジスタ .................303 メッセージハンドラレジスタ .....................303, 336 モードレジスタ (MODR) .......................................79 リロードコンペアレジスタ (RCR) .....................536 リロードレジスタ (PRLL/PRLH) ........................519 レジスタ設定時の注意 .........................................253 割込み制御レジスタ (ICR) のビット構成 ..........................................................................218 UART のレジスタ .................................................380 拡張ステータス / コントロールレジスタ (ESCR) ..........................................................................393 拡張通信コントロールレジスタ (ECCR) ..........396 受信 / 送信データレジスタ (RDR/TDR) ............391 シリアルコントロールレジスタ (SCR) の AD ビット ........................................................435 ボーレート / リロードカウンタレジスタ ..........................................................................399 ボーレート / リロードカウンタレジスタ (BGR) ..........................................................................399 レジスタ構成 ACR0 ∼ ACR3 (Area Configuration Register) の レジスタ構成 ..................................................143 AWR0 ∼ AWR3(Area Wait Register) の レジスタ構成 ..................................................147 レディ レディ / ビジー信号 (RDY/BUSYX) ...................631 レベルマスク 割込み・NMI に対するレベルマスク .................. 62 連続モード 連続モード ............................................................ 590 ろ ロード ロードとストア ......................................................42 論理演算 論理演算とビット操作 .......................................... 43 わ ワードアクセス ワードアクセス ....................................................163 ワードアライメント ワードアライメント .............................................. 54 割込み DMAC 割込み制御が出力できる割込み ........... 286 DMA 転送と割込み .............................................. 278 DMA による割込みクリアの発生タイミング ..........................................................................282 EIT の割込みレベル ...............................................61 LIN-Synch-Break 検出割込みとフラグ ..............423 LIN-Synch-Break 割込み .......................................401 LIN-Synch-Field エッジ検出割込み .................... 402 NMI/ ホールド抑止レベル割込み処理中 ..........283 UART の割込み ..................................................... 400 外部割込みの動作 ................................................233 外部割込みの動作手順 ........................................ 233 受信割込み ............................................................ 401 受信割込み生成とフラグセットタイミング ..........................................................................403 送信割込み ............................................................ 401 送信割込み許可タイミング ................................434 送信割込み生成とフラグセットタイミング ..........................................................................405 送信割込み要求生成タイミング ........................ 406 バスアイドル割込み ............................................ 402 メイン発振安定待ち割込み ................................121 ユーザ割込み・NMI の動作 ..................................72 割込み ....................................................................525 割込み処理 ............................................................ 469 割込みスタック ......................................................65 割込み発生タイミング ........................................ 550 割込み番号 ............................................................ 241 割込み・NMI に対するレベルマスク .................. 62 割込み許可レジスタ 割込み許可レジスタ (ENIR) のビット構成 ..........................................................................230 割込みコントローラ 割込みコントローラの主要機能 ........................ 214 割込みコントローラのハードウェア構成 ..........................................................................214 割込みコントローラのブロックダイヤグラム ..........................................................................216 割込みコントローラのレジスタ一覧 ................ 215 割込みコントローラのレジスタ詳細 ................ 217 割込みコントローラ:最大 40 チャネル ..............4 割込みスタック 割込みスタック ......................................................65 715 割込み制御レジスタ 割込み制御レジスタ (ICR) のビット構成 ..........................................................................218 割込み番号 割込み番号 .............................................................241 716 割込みベクタ 割込みベクタ ........................................................ 668 割込みレベル EIT の割込みレベル ...............................................61 CM71-10128-2 富士通半導体デバイス • CONTROLLER MANUAL FR60 Lite 32 ビット・マイクロコントローラ MB91270 Series ハードウェアマニュアル 2007 年 2 月 第 2 版発行 発行 富士通株式会社 編集 営業推進統括部 営業推進部 電子デバイス事業本部