Comments
Description
Transcript
DMA コントローラ
本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通半導体デバイス CONTROLLER MANUAL CM71-10133-1 FR ファミリ 32 ビット・マイクロコントローラ MB91461 MB91F467R ハードウェアマニュアル FR ファミリ 32 ビット・マイクロコントローラ MB91461 MB91F467R ハードウェアマニュアル 開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。 『Check Sheet』は , 下記サポートページに掲載されています。 URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html 『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を リストにしたものです。 富士通株式会社 はじめに ■ 本書の目的と対象読者 MB91461/MB91F467RA/MB91F467RB は民生機器等の高速リアルタイム処理が要求さ れる組込み制御用途向けに設計された , 汎用の富士通 32 ビット RISC マイクロコント ローラです。CPU には , FR ファミリと互換の FR60 を使用しています。 本製品は LIN-UART および CAN コントローラを内蔵しています。低消費電力モード の 1 つとしてシャットダウンモードをもち , 低消費電流を実現しています。 FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。 ■ 商標 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商 標です。 ■ ライセンス 本製品には , お客様が 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. ■ 本書の全体構成 本書は , 以下に示す 28 の章 , および付録から構成されています。 第 1 章 概要 MB91461/F467RA/F467RB の特長 , ブロックダイヤグラム , 機能概要など全体を知る ための基本的なことについて説明します。 第 2 章 デバイスの取扱いについて FR ファミリの取扱い上の注意について説明します。 第 3 章 CPU および制御部 FR ファミリの CPU コアの機能を知るために , アーキテクチャ, 仕様 , 命令などの基 本的なことについて説明します。 第 4 章 低消費電力モード 低消費電力モードの機能と動作について説明します。 第 5 章 クロックモジュレータ ク ロ ッ ク モ ジ ュ レー タ の 概 要 と そ の 機 能に つ い て 説 明 し ま す。( こ の 機 能 は MB91461 には搭載されていません ) i 第 6 章 サブ発振安定待ちタイマ サブ発振安定待ちタイマの概要とその機能について説明します ( この機能は MB91461 には搭載されていません )。 第 7 章 ハードウェアウォッチドッグタイマ ハードウェアウォッチドッグタイマの機能について説明します。 第 8 章 メモリコントローラ MB91F467RA, MB91F467RB に搭載されている内蔵フラッシュメモリの制御に関し て説明します。フラッシュメモリでの命令読み出し速度に寄与するダイレクトマッ プキャッシュに関する説明もあります。 第 9 章 外部バスインタフェース 外部バスインタフェースの各機能について説明します。 第 10 章 I/O ポート I/O ポートの概要 , レジスタの構成 , および機能について説明します。 第 11 章 割込みコントローラ 割込みコントローラの概要, レジスタの構成/機能, および動作について説明します。 第 12 章 外部割込み制御部 外部割込み制御部の概要 , レジスタの構成 / 機能 , および動作について説明します。 第 13 章 MPU / EDSU メモリ保護機能およびエンベデッド・デバッグサポート機能について説明します。 第 14 章 REALOS 関連ハード REALOS の概要 , レジスタの構成 / 機能 , および動作について説明します。 第 15 章 DMAC (DMA コントローラ ) DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について説明します。 第 16 章 CAN コントローラ CAN コントローラの機能と動作について示します。 第 17 章 LIN-UART LIN 対応 UART の機能と動作について説明します。 第 18 章 I2C インタフェース I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作について説明します。 ii 第 19 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタの構成と機能およびタイマの動作について説 明します。 第 20 章 16 ビットフリーランタイマ 16 ビットフリーランタイマの機能と動作について説明します。 第 21 章 インプットキャプチャ インプットキャプチャの機能と動作について説明します。 第 22 章 アウトプットコンペアユニット アウトプットコンペアユニットの機能と動作について説明します。 第 23 章 PPG ( プログラマブルパルスジェネレータ ) PPG のレジスタ , 機能と動作について説明します。 第 24 章 リアルタイムクロック リアルタイムクロック ( 以降 RTC) のレジスタ構成とその機能 , RTC モジュールの 動作について説明します。 第 25 章 A/D コンバータ A/D コンバータの概要 , レジスタの構成 / 機能 , および動作について説明します。 第 26 章 サブクロックキャリブレーションユニット MB91F467RA, MB91F467RB に搭載されているサブクロックキャリブレーションユ ニットについて説明します。 第 27 章 フラッシュメモリ 内蔵フラッシュメモリの使用について説明します。 第 28 章 フラッシュセキュリティ MB91F467RA, MB91F467RB に搭載されている内蔵フラッシュメモリのセキュリ ティ機能について説明します。 付録 各 CPU ステートにおける端子状態 , リトル・エンディアン領域を利用する際の注意 事項 , FR ファミリの命令一覧 , および MB91461, MB91F467RA, MB91F467RB を使 用する際の注意事項について説明します。 iii • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認 ください。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当 社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従 いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承 ください。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該 当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。 Copyright ©2007 FUJITSU LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 第2章 2.1 2.2 第3章 概要 ............................................................................................................ 1 概要 ........................................................................................................................................ 2 ブロックダイヤグラム............................................................................................................ 5 外形寸法図.............................................................................................................................. 6 端子配列図.............................................................................................................................. 7 端子機能一覧表 .................................................................................................................... 10 入出力回路形式 .................................................................................................................... 23 デバイスの取扱いについて ...................................................................... 27 デバイス取扱い上の注意 ...................................................................................................... 28 使用上の注意 ........................................................................................................................ 32 CPU および制御部 ................................................................................... 37 3.1 メモリ空間............................................................................................................................ 38 3.2 内部アーキテクチャ ............................................................................................................. 39 3.2.1 命令概要 ..................................................................................................................... 43 3.3 命令キャッシュ (MB91461 に搭載 ) ..................................................................................... 45 3.3.1 制御レジスタ .............................................................................................................. 48 3.3.2 命令キャッシュの状態と設定..................................................................................... 51 3.3.3 命令キャッシュを使用するときの設定方法 ............................................................... 53 3.4 プログラミングモデル.......................................................................................................... 55 3.4.1 汎用レジスタ .............................................................................................................. 56 3.4.2 専用レジスタ .............................................................................................................. 57 3.5 データ構造............................................................................................................................ 64 3.6 メモリマップ ........................................................................................................................ 66 3.7 分岐命令 ............................................................................................................................... 67 3.7.1 遅延スロット付き動作 ............................................................................................... 68 3.7.2 遅延スロットなし動作 ............................................................................................... 70 3.8 EIT ( 例外・割込み・トラップ ) ........................................................................................... 71 3.8.1 EIT の割込みレベル.................................................................................................... 72 3.8.2 割込み制御レジスタ (ICR).......................................................................................... 74 3.8.3 システムスタックポインタ (SSP).............................................................................. 75 3.8.4 テーブルベースレジスタ (TBR) ................................................................................. 76 3.8.5 多重 EIT 処理.............................................................................................................. 77 3.8.6 EIT の動作 .................................................................................................................. 79 3.9 動作モード............................................................................................................................ 83 3.9.1 バスモード ................................................................................................................. 84 3.9.2 モード設定 ................................................................................................................. 85 3.10 リセット ( デバイス初期化 ) ................................................................................................. 88 3.10.1 リセットレベル .......................................................................................................... 89 3.10.2 リセット要因 .............................................................................................................. 90 3.10.3 リセットシーケンス ................................................................................................... 92 3.10.4 発振安定待ち時間....................................................................................................... 93 3.10.5 リセット動作モード ................................................................................................... 95 3.11 クロック生成制御 ................................................................................................................. 97 v 3.11.1 PLL 制御 ..................................................................................................................... 98 3.11.2 発振安定待ち・PLL ロック待ち時間.......................................................................... 99 3.11.3 クロック分配 ............................................................................................................ 101 3.11.4 クロック分周 ............................................................................................................ 103 3.11.5 クロック生成制御部のブロックダイヤグラム.......................................................... 104 3.11.6 クロック生成制御部のレジスタ詳細説明................................................................. 105 3.11.7 クロック制御部の周辺回路 ...................................................................................... 125 3.12 PLL インタフェース ........................................................................................................... 129 3.12.1 PLL インタフェースのレジスタ詳細説明................................................................. 130 3.12.2 PLL 逓倍率設定例..................................................................................................... 137 3.13 デバイス状態制御 ............................................................................................................... 141 3.13.1 デバイス状態と各遷移 ............................................................................................. 142 3.14 インターバルタイマ ........................................................................................................... 146 第4章 4.1 4.2 4.3 4.4 第5章 5.1 5.2 5.3 第6章 低消費電力モード .................................................................................. 153 低消費電力モードの概要 .................................................................................................... 154 スリープモード .................................................................................................................. 155 ストップモード .................................................................................................................. 157 シャットダウンモード........................................................................................................ 159 クロックモジュレータ ........................................................................... 165 クロックモジュレータの概要 ............................................................................................. 166 クロックモジュレータレジスタ ......................................................................................... 167 アプリケーションノート .................................................................................................... 177 サブ発振安定待ちタイマ........................................................................ 179 6.1 サブ発振安定待ちタイマの概要 ......................................................................................... 180 6.2 サブ発振安定待ちタイマの構成 ......................................................................................... 181 6.3 サブ発振安定待ちタイマのレジスタ .................................................................................. 182 6.3.1 WPCRH : サブ発振安定待ちタイマ制御レジスタ.................................................... 183 6.4 サブ発振安定待ちタイマの動作説明 .................................................................................. 185 6.5 アプリケーションノート .................................................................................................... 188 6.6 サブ発振安定待ちタイマの使用上の注意 ........................................................................... 191 第7章 7.1 7.2 7.3 7.4 7.5 第8章 8.1 8.2 8.3 8.4 ハードウェアウォッチドッグタイマ...................................................... 193 ハードウェアウォッチドッグタイマの概要 ....................................................................... 194 ハードウェアウォッチドッグタイマの構成 ....................................................................... 195 ハードウェアウォッチドッグタイマのレジスタ ................................................................ 196 ハードウェアウォッチドッグタイマの機能 ....................................................................... 198 ハードウェアウォッチドッグタイマ使用上の注意............................................................. 201 メモリコントローラ............................................................................... 203 メモリコントローラの概要................................................................................................. 204 レジスタ ............................................................................................................................. 205 レジスタの説明 .................................................................................................................. 206 FLASH アクセスタイミング設定........................................................................................ 219 vi 第9章 外部バスインタフェース........................................................................ 221 9.1 外部バスインタフェースの特長 ......................................................................................... 222 9.2 外部バスインタフェースのレジスタ .................................................................................. 225 9.2.1 領域選択レジスタ (ASR0 ∼ ASR4) ......................................................................... 226 9.2.2 領域構成レジスタ (ACR0 ∼ ACR4)......................................................................... 227 9.2.3 領域ウェイトレジスタ (AWR0 ∼ AWR4) ................................................................ 233 9.2.4 DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)............................................... 239 9.2.5 チップセレクト領域許可レジスタ (CSER) .............................................................. 242 9.2.6 キャッシュイネーブルレジスタ (CHER).................................................................. 243 9.2.7 端子 / タイミングコントロールレジスタ (TCR)....................................................... 244 9.3 チップセレクト領域 ........................................................................................................... 246 9.4 エンディアンとバスアクセス ............................................................................................. 248 9.4.1 ビッグエンディアンのバスアクセス ........................................................................ 249 9.4.2 リトルエンディアンのバスアクセス ........................................................................ 254 9.4.3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 258 9.5 通常バスインタフェース .................................................................................................... 262 9.6 アドレス / データマルチプレックスインタフェース.......................................................... 270 9.7 DMA アクセス .................................................................................................................... 274 9.8 レジスタ設定手順 ............................................................................................................... 277 第 10 章 10.1 10.2 10.3 10.4 10.5 10.6 I/O ポート............................................................................................... 279 I/O ポートの概要 ................................................................................................................ 280 ポート入力許可 .................................................................................................................. 284 I/O ポートのレジスタ ......................................................................................................... 285 ポートファンクションレジスタの設定............................................................................... 288 端子入力レベルの選択........................................................................................................ 312 プルアップ・プルダウン制御レジスタ............................................................................... 315 第 11 章 割込みコントローラ............................................................................... 319 11.1 割込みコントローラの概要................................................................................................. 320 11.2 割込みコントローラのレジスタ ......................................................................................... 324 11.2.1 割込み制御レジスタ (ICR)........................................................................................ 325 11.2.2 ホールドリクエスト取下げ要求レジスタ (HRCL).................................................... 326 11.3 割込みコントローラの動作説明 ......................................................................................... 327 第 12 章 外部割込み制御部 .................................................................................. 337 12.1 外部割込み制御部の概要 .................................................................................................... 338 12.2 外部割込み制御部のレジスタ ............................................................................................. 339 12.2.1 割込み許可レジスタ (ENIR) ..................................................................................... 340 12.2.2 外部割込み要因レジスタ (EIRR) .............................................................................. 341 12.2.3 外部割込み要求レベル設定レジスタ (ELVR) ........................................................... 342 12.3 外部割込み制御部の動作説明 ............................................................................................. 344 第 13 章 MPU / EDSU .......................................................................................... 349 13.1 概要 .................................................................................................................................... 350 13.2 ブレーク機能 ...................................................................................................................... 351 13.2.1 命令アドレスブレーク ............................................................................................. 352 13.2.2 オペランドアドレスブレーク................................................................................... 354 13.2.3 データ値ブレーク..................................................................................................... 357 vii 13.2.4 データブレークでのオペランドの使用 .................................................................... 359 13.2.5 メモリ保護 ............................................................................................................... 360 13.2.6 ブレーク要因 ............................................................................................................ 362 13.3 EDSU レジスタ .................................................................................................................. 363 13.3.1 EDSU 制御レジスタ (BCTRL).................................................................................. 366 13.3.2 EDSU 状態レジスタ (BSTAT) .................................................................................. 371 13.3.3 EDSU ブレーク検出割込み要求レジスタ (BIRQ) .................................................... 375 13.3.4 EDSU チャネル構成レジスタ (BCR0 ∼ BCR7)....................................................... 377 13.4 クイックリファレンス........................................................................................................ 389 第 14 章 REALOS 関連ハード ............................................................................. 393 14.1 遅延割込みモジュール........................................................................................................ 394 14.1.1 遅延割込みモジュールの概要................................................................................... 395 14.1.2 遅延割込みモジュールのレジスタ............................................................................ 396 14.1.3 遅延割込みモジュールの動作説明............................................................................ 397 14.2 ビットサーチモジュール .................................................................................................... 398 14.2.1 ビットサーチモジュールの概要 ............................................................................... 399 14.2.2 ビットサーチモジュールのレジスタ ........................................................................ 400 14.2.3 ビットサーチモジュールの動作説明 ........................................................................ 402 第 15 章 DMAC (DMA コントローラ ) ................................................................. 405 15.1 DMAC (DMA コントローラ ) の概要................................................................................... 406 15.2 DMAC (DMA コントローラ ) のレジスタ詳細説明 ............................................................. 409 15.2.1 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータスレジスタ A ............................. 410 15.2.2 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータスレジスタ B ............................. 414 15.2.3 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ .............. 420 15.2.4 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ .................................. 422 15.3 DMAC (DMA コントローラ ) の動作説明 ........................................................................... 424 15.3.1 動作概要 ................................................................................................................... 425 15.3.2 転送要求の設定 ........................................................................................................ 427 15.3.3 転送シーケンス ........................................................................................................ 428 15.3.4 DMA 転送全般 .......................................................................................................... 430 15.3.5 アドレッシングモード ............................................................................................. 432 15.3.6 データの種類 ............................................................................................................ 433 15.3.7 転送回数制御 ............................................................................................................ 434 15.3.8 CPU 制御.................................................................................................................. 435 15.3.9 動作開始 ................................................................................................................... 436 15.3.10 転送要求の受付けと転送 .......................................................................................... 437 15.3.11 DMA による周辺割込みクリア ................................................................................. 438 15.3.12 一時停止 ................................................................................................................... 439 15.3.13 動作終了 / 停止 ......................................................................................................... 440 15.3.14 エラーによる停止..................................................................................................... 441 15.3.15 DMAC 割込み制御 .................................................................................................... 442 15.3.16 スリープ中の DMA 転送 ........................................................................................... 443 15.3.17 チャネル選択と制御 ................................................................................................. 444 15.4 DMAC (DMA コントローラ ) の動作フロー........................................................................ 446 15.5 データバス.......................................................................................................................... 448 viii 第 16 章 CAN コントローラ ................................................................................. 451 16.1 CAN の特長 ........................................................................................................................ 452 16.2 CAN のブロックダイヤグラム............................................................................................ 453 16.3 CAN のレジスタ ................................................................................................................. 454 16.4 CAN レジスタ機能.............................................................................................................. 461 16.4.1 全体制御レジスタ..................................................................................................... 462 16.4.2 メッセージインタフェースレジスタ ........................................................................ 477 16.4.3 メッセージオブジェクト .......................................................................................... 490 16.4.4 メッセージハンドラレジスタ................................................................................... 496 16.4.5 CAN プリスケーラレジスタ (CANPRE)................................................................... 505 16.5 CAN 機能 ............................................................................................................................ 507 16.5.1 メッセージオブジェクト .......................................................................................... 508 16.5.2 メッセージ送信動作 ................................................................................................. 510 16.5.3 メッセージ受信動作 ................................................................................................. 512 16.5.4 FIFO バッファ機能................................................................................................... 516 16.5.5 割込み機能 ............................................................................................................... 518 16.5.6 ビットタイミング..................................................................................................... 520 16.5.7 テストモード ............................................................................................................ 523 16.5.8 ソフトウェア初期化 ................................................................................................. 528 16.5.9 CAN クロックプリスケーラ ..................................................................................... 529 第 17 章 LIN-UART .............................................................................................. 533 17.1 LIN-UART の概要 ............................................................................................................... 534 17.2 LIN-UART の構成 ............................................................................................................... 537 17.3 LIN-UART のレジスタ ........................................................................................................ 542 17.3.1 シリアル制御レジスタ (SCR)................................................................................... 544 17.3.2 シリアルモードレジスタ (SMR)............................................................................... 547 17.3.3 シリアルステータスレジスタ (SSR) ........................................................................ 550 17.3.4 受信 / 送信データレジスタ (RDR/TDR).................................................................... 553 17.3.5 拡張ステータス・制御レジスタ (ESCR).................................................................. 555 17.3.6 拡張通信制御レジスタ (ECCR) ................................................................................ 558 17.3.7 ボーレート / リロードカウンタレジスタ (BGR) ...................................................... 561 17.4 LIN-UART の割込み............................................................................................................ 563 17.4.1 受信割込み生成とフラグセットタイミング ............................................................. 567 17.4.2 送信割込み生成とフラグセットタイミング ............................................................. 569 17.5 LIN-UART のボーレート..................................................................................................... 571 17.5.1 ボーレートの設定..................................................................................................... 573 17.5.2 リロードカウンタの再起動 ...................................................................................... 576 17.6 LIN-UART の動作 ............................................................................................................... 578 17.6.1 非同期モードでの動作 ( 動作モード 0, 1) ............................................................... 580 17.6.2 同期モードでの動作 ( 動作モード 2) ....................................................................... 583 17.6.3 LIN 機能での動作 ( 動作モード 3) ........................................................................... 586 17.6.4 シリアル端子への直接アクセス ............................................................................... 590 17.6.5 双方向通信機能 ( ノーマルモード ) ......................................................................... 591 17.6.6 マスタ / スレーブ通信機能 ( マルチプロセッサモード ) ......................................... 592 17.6.7 LIN 通信機能............................................................................................................. 595 17.6.8 LIN 通信モード ( 動作モード 3) UART サンプルフローチャート............................. 596 17.7 LIN-UART 使用上の注意事項 ............................................................................................. 599 ix 第 18 章 I2C インタフェース ................................................................................ 601 18.1 I2C インタフェースの概要.................................................................................................. 602 18.2 I2C インタフェースのレジスタ .......................................................................................... 606 18.2.1 バスステータスレジスタ (IBSR) .............................................................................. 607 18.2.2 バス制御レジスタ (IBCR)......................................................................................... 611 18.2.3 クロック制御レジスタ (ICCR) ................................................................................. 619 18.2.4 10 ビットスレーブアドレスレジスタ (ITBA) ........................................................... 621 18.2.5 10 ビットスレーブアドレスマスクレジスタ (ITMK)................................................ 622 18.2.6 7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 624 18.2.7 7 ビットスレーブアドレスマスクレジスタ (ISMK).................................................. 625 18.2.8 データレジスタ (IDAR) ............................................................................................ 626 18.3 I2C インタフェースの動作説明 .......................................................................................... 627 18.4 動作フローチャート ........................................................................................................... 632 第 19 章 16 ビットリロードタイマ ...................................................................... 635 19.1 16 ビットリロードタイマの概要 ........................................................................................ 636 19.2 16 ビットリロードタイマのレジスタ................................................................................. 637 19.2.1 制御ステータスレジスタ (TMCSR).......................................................................... 638 19.2.2 16 ビットタイマレジスタ (TMR) ............................................................................. 642 19.2.3 16 ビットリロードレジスタ (TMRLR) ..................................................................... 643 19.3 16 ビットリロードタイマの動作 ........................................................................................ 644 第 20 章 16 ビットフリーランタイマ................................................................... 649 20.1 16 ビットフリーランタイマの概要 .................................................................................... 650 20.2 16 ビットフリーランタイマのレジスタ ............................................................................. 652 20.2.1 タイマデータレジスタ (TCDT)................................................................................. 653 20.2.2 タイマ制御ステータスレジスタ ............................................................................... 654 20.3 16 ビットフリーランタイマの動作 .................................................................................... 657 20.4 16 ビットフリーランタイマ使用上の注意.......................................................................... 659 第 21 章 インプットキャプチャ ........................................................................... 661 21.1 インプットキャプチャの概要 ............................................................................................. 662 21.2 インプットキャプチャのレジスタ...................................................................................... 663 21.2.1 インプットキャプチャレジスタ (IPCP0 ∼ IPCP3).................................................. 664 21.2.2 インプットキャプチャ制御レジスタ (ICS01,ICS23)................................................ 665 21.3 インプットキャプチャの動作 ............................................................................................. 667 第 22 章 アウトプットコンペアユニット ............................................................. 669 22.1 アウトプットコンペアユニットの概要............................................................................... 670 22.2 アウトプットコンペアユニットのレジスタ ....................................................................... 671 22.2.1 コンペアレジスタ (OCCP0 ∼ OCCP3) ................................................................... 672 22.2.2 制御レジスタ (OCS01,OCS23) ................................................................................ 673 22.3 アウトプットコンペアユニットの動作............................................................................... 676 第 23 章 PPG ( プログラマブルパルスジェネレータ )......................................... 679 23.1 PPG の概要 ........................................................................................................................ 680 23.2 PPG のレジスタ ................................................................................................................. 683 23.2.1 制御ステータスレジスタ (PCNH, PCNL)................................................................. 686 23.2.2 PPG 周期設定レジスタ (PCSR) ............................................................................... 690 x 23.2.3 PPG デューティ設定レジスタ (PDUT) .................................................................... 691 23.2.4 PPG タイマレジスタ (PTMR) .................................................................................. 692 23.2.5 ゼネラル制御レジスタ 10 (GCN10) ......................................................................... 693 23.2.6 ゼネラル制御レジスタ 11 (GCN11) ......................................................................... 696 23.2.7 ゼネラル制御レジスタ 2 (GCN20,GCN21) .............................................................. 699 23.3 PPG の動作 ........................................................................................................................ 700 23.3.1 PWM 動作................................................................................................................. 701 23.3.2 ワンショット動作..................................................................................................... 703 23.3.3 割込み....................................................................................................................... 705 23.3.4 PPG 出力オール "L" あるいはオール "H" の出力方法............................................... 706 23.3.5 複数チャネルの起動 ................................................................................................. 707 第 24 章 リアルタイムクロック ........................................................................... 709 24.1 リアルタイムクロックのレジスタ構成............................................................................... 710 24.2 リアルタイムクロックのブロックダイヤグラム ................................................................ 712 24.3 リアルタイムクロックのレジスタの詳細 ........................................................................... 713 第 25 章 A/D コンバータ ...................................................................................... 719 25.1 A/D コンバータの概要 ........................................................................................................ 720 25.2 A/D コンバータのブロックダイヤグラム ........................................................................... 721 25.3 A/D コンバータのレジスタ................................................................................................. 722 25.3.1 アナログ入力許可レジスタ (ADER) ......................................................................... 724 25.3.2 A/D 制御ステータスレジスタ (ADCS)...................................................................... 725 25.3.3 データレジスタ (ADCR1, ADCR0)........................................................................... 730 25.3.4 変換時間設定レジスタ (ADCT) ................................................................................ 731 25.3.5 開始チャネル設定レジスタ (ADSCH) 終了チャネル設定レジスタ (ADECH) .......... 733 25.4 A/D コンバータの動作 ........................................................................................................ 735 第 26 章 サブクロックキャリブレーションユニット ........................................... 737 26.1 概要 .................................................................................................................................... 738 26.2 クロック ............................................................................................................................. 741 26.3 レジスタの説明 .................................................................................................................. 742 26.3.1 キャリブレーションユニット制御レジスタ (CUCR) ............................................... 744 26.3.2 32kHz/100kHz タイマデータレジスタ (16 ビット ) (CUTD).................................... 746 26.3.3 4MHz タイマデータレジスタ (24 ビット ) (CUTR).................................................. 748 26.4 利用上の注意 ...................................................................................................................... 749 第 27 章 フラッシュメモリ .................................................................................. 751 27.1 概要 .................................................................................................................................... 752 27.2 アクセスモード .................................................................................................................. 759 27.2.1 FR-CPU からのアクセス.......................................................................................... 760 27.2.2 フラッシュメモリモード .......................................................................................... 762 27.3 自動アルゴリズム ............................................................................................................... 763 27.3.1 自動アルゴリズムのコマンド.................................................................................. 765 27.3.2 ハードウェアシーケンスフラグ ............................................................................... 768 27.3.3 FLCR : フラッシュ制御レジスタ.............................................................................. 770 27.3.4 ハードウェアシーケンスフラグの使用例................................................................. 773 27.4 注意事項 ............................................................................................................................. 775 xi 第 28 章 フラッシュセキュリティ........................................................................ 777 28.1 概要 .................................................................................................................................... 778 28.2 フラッシュセキュリティベクタ ......................................................................................... 779 28.3 フラッシュセキュリティ制御レジスタ............................................................................... 783 付録 付録 A 付録 B 付録 C 付録 D ............................................................................................................... 789 I/O マップ ...................................................................................................................... 790 割込みベクタ ................................................................................................................. 831 DMA 転送要求要因 ........................................................................................................ 841 シリアル書込み時の端子状態........................................................................................ 842 索引 ........................................................................................................................ 849 xii 本版での主な変更内容 ページ - 変更内容(詳細は本文を参照してください。) 本ハードウェアマニュアルが初版となります。 xiii xiv 第1章 概要 MB91461/F467RA/F467RB の特長 , ブロックダイ ヤグラム , 機能概要など全体を知るための基本的な ことについて説明します。 1.1 概要 1.2 ブロックダイヤグラム 1.3 外形寸法図 1.4 端子配列図 1.5 端子機能一覧表 1.6 入出力回路形式 1 第 1 章 概要 概要 1.1 MB91461/MB91F467RA/MB91F467RB は民生機器などの高速リアルタイム処理が 要求される組込み制御用途向けに設計された汎用の富士通 32 ビット RISC マイクロ コントローラです。CPU には , FR ファミリと互換の FR60 を使用しています。 本製品は LIN-UART および CAN コントローラを内蔵しています。 ■ 特長 ● FR60 CPU • 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段 • 最大動作周波数 : 80MHz ( 原発振 20MHz/4MHz, 4/20 逓倍 ((PLL クロック逓倍方式 ) • 16 ビット固定長命令 ( 基本命令 ) • 命令実行速度 : 1 命令 /1 サイクル • メモリ - メモリ間転送命令 , ビット処理命令 , バレルシフト命令など 組込み用途に適した命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : C 言語対応命令 • レジスタのインターロック機能 : アセンブラ記述も容易に可能 • 乗算器の内蔵 / 命令レベルでのサポート 1. 符号付き 32 ビット乗算……5 サイクル 2. 符号付き 16 ビット乗算…… 3 サイクル • 割込み (PC/PS 退避 ) : 6 サイクル (16 レベル ) • ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に 実行可能 • FR ファミリとの命令互換 ● 内蔵周辺機能 • 内蔵 RAM 容量 MB91461:命令キャッシュ 4K バイト F-bus RAM ( 命令 / データ共通 ) 64K バイト MB91F467RA/MB91F467RB: ダイレクトマップキャッシュ ( フラッシュ用キャッシュ ) 8K バイト D-bus RAM ( データ専用 ) 48K バイト F-bus RAM ( 命令 / データ共通 ) 16K バイト • 汎用ポート : 最大 138 本 (MB91F467RA/MB91F467RB), 72 本 (MB91461) • DMAC (DMA Controller) 同時に最大 5 チャネルの動作が可能 ( 外部→外部は 1 チャネル ) 3 つの転送要因 ( 外部端子 / 内部ペリフェラル / ソフトウェア ) 起動要因はソフトウェアにて選択可能 アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 ) 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 ) フライバイ転送サポート ( 外部 I/O とメモリ間 ) 2 第 1 章 概要 転送データサイズは 8/16/32 ビットから選択可能 多バイト転送可能 ( ソフトにて決定 ) DMAC ディスクリプタは I/O 領域 ("200H" ∼ "240H", "1000H" ∼ "1024H") • A/D コンバータ ( 逐次比較型 ) 10 ビット分解能 : 13 チャネル (MB91461) 16 チャネル (MB91F467RA/MB91F467RB) 変換時間 : 1 µs ( 周辺マクロ動作クロック 16.67MHz 時 ): MB91461 3 µs ( 周辺マクロ動作クロック 16.67MHz 時 ): MB91F467RA, RB • 外部割込み入力 : 16 チャネル CAN0, CAN1 の RX 端子と兼用 • ビットサーチモジュール (REALOS 使用 ) 1 ワード中の MSB( 上位ビット ) から最初の "1" → "0" 変化ビット位置をサーチする 機能 • LIN-UART( 全二重ダブルバッファ方式 ) : 7 チャネル クロック同期 / 非同期の選択可能 Sync-break 検出 専用ボーレートジェネレータ内蔵 • I2C バスインタフェース (400kbps 対応 ) : 3 チャネル 3 チャネル マスタ / スレーブ送受信 アービトレーション機能 , クロック同期化機能 • CAN コントローラ (C-CAN) : 2 チャネル 転送速度 最大 1Mbps 32 送受信メッセージバッファ (MB91461) 32 送受信メッセージバッファ • 16 ビット PPG タイマ : 8 チャネル • 16 ビットリロードタイマ : 5 チャネル • 16 ビットフリーランタイマ : 4 チャネル (ICU 用 , OCU 用各 1 チャネル ) • インプットキャプチャ : 4 チャネル ( フリーランタイマと連動 ) • アウトプットコンペア : 4 チャネル ( フリーランタイマと連動 ) • ウォッチドッグタイマ ウォッチドッグリセット出力端子あり • リアルタイムクロック • 低消費電力モード : スリープ / ストップ / シャットダウンモード機能 ● パッケージ : LQFP-176 (FPT-176P-M07) ● CMOS 0.18 µm テクノロジ ● 3.3V/5V 電源 [ 降圧回路により内部 Logic 1.8V, I/O 一部 5.0V 耐圧 ] ● 動作温度 : − 40 ℃ ∼ + 85 ℃ ( 注意事項 ) MB91F467RB は MB91F467RA に対してダイレクトマップキャッシュの改 善 , 入力しきい値の修正を加えた製品です。これ以降このマニュアルでは , MB91F467RA と MB91F467RB を総称して MB91F467R と記述します。 3 第 1 章 概要 ■ 品種構成 表 1.1-1 に , MB91461/F467RA/RB 品種構成一覧を示します。掲載されていない内蔵周 辺機能は共通です。 表 1.1-1 MB91461, MB91F467RA/RB 構成一覧 項目 MB91461 MB91F467RA/RB 搭載チャネル ROM/Flash 容量 − − 1088K バイト − 命令キャッシュ 4K バイト − − − − − 8K バイト * − − − 16K バイト (0wait) 32K バイト (1wait) − F-bus RAM ( 容量命令 / データ兼用 ) 64K バイト − 16K バイト − 外部割込み 16 チャネル INT0 ∼ INT15 16 チャネル INT0 ∼ INT15 DMAC 5 チャネル ch.0 ∼ ch.4 5 チャネル ch.0 ∼ ch.4 A/D コンバータ 13 チャネル ch.0 ∼ ch.12 16 チャネル ch.0 ∼ ch.15 LIN-UART 7 チャネル ch.0 ∼ ch.6 7 チャネル ch.0 ∼ ch.6 I2C 3 チャネル ch.0 ∼ ch.2 3 チャネル ch.0 ∼ ch.2 CAN 2 チャネル (32msg) ch.0, ch.1 2 チャネル (64msg + 32msg) ch.0(32msg) ch.1(64msg) 16 ビット PPG 8 チャネル ch.0 ∼ ch.7 8 チャネル ch.0 ∼ ch.7 16 ビットリロードタイマ 5 チャネル ch.0 ∼ ch.3, ch.7 5 チャネル ch.0 ∼ ch.3, ch.7 16 ビットフリーランタイマ 4 チャネル ch.0 ∼ ch.3 4 チャネル ch.0 ∼ ch.3 インプットキャプチャ 4 チャネル ch.0 ∼ ch.3 4 チャネル ch.0 ∼ ch.3 アウトプットコンペア 4 チャネル ch.0 ∼ ch.3 4 チャネル ch.0 ∼ ch.3 リアルタイムクロック あり − あり − − − 選択可 アドレス 24bit データ 16bit − アドレス 24bit データ 16bit − ROM なし品 − FLASH 品 − DSU4 − − − ダイレクトマップキャッシュ D-bus RAM 容量 ( データ専用 ) 32kHz サブクロック 外部バス その他 デバッグサポートユニット * : MB91F467RA では使用上制限があります。 4 搭載チャネル 第 1 章 概要 ブロックダイヤグラム 1.2 MB91461/F467R のブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.2-1 ブロックダイヤグラム MB91461/MB91F467R TRSTX BREAK ICS0~ICS2 ICD0~ICD3 DSU FR60 CPU コア (デバッグ サポート) ビットサーチ I-cache CAN (2チャネル) I-bus 32 D-bus 32 RX0, RX1 TX0, TX1 32←→16 バスアダプタ ダイレクト マップキャッシュ SYSCLK ASX RDX WR0X WR1X RAM FLASH 外部バス インタ フェース バスコンバータ BRQ BGRNTX CS0X~CS4X A23~A00 D31~D16 DREQ0 DACK0X DEOP0 IOWRX IORDX DMAC(5チャネル) MB91461の場合 クロック 制御 MB91F467Rの場合 TRG0~TRG3 PPG0~PPG7 TIN0~TIN3 TOT0~TOT3 FRCK0~FRCK3 PPG (8チャネル) リロードタイマ (5チャネル) フリーラン タイマ (4チャネル) ICU0~ICU3 インプット コンペア (4チャネル) OCU0~OCU3 アウトプット コンペア (4チャネル) *1: 16チャネル (MB91F467Rの場合) *2: AN0~AN15 (MB91F467Rの場合) R-bus 16 割込み コントローラ 外部割込み 16チャネル PORT インタフェース NMIX INT0~INT15 PORT LIN-UART (7チャネル) (BRGを含む) SIN0~SIN6 SOT0~SOT6 SCK0~SCK6 I2C (3チャネル) SDA0~SDA2 SCL0~SCL2 RTC A/Dコンバータ (13チャネル*1) AN0~AN12*2 ATGX 5 第 1 章 概要 外形寸法図 1.3 MB91461/F467R の外形寸法図を示します。 ■ LQFP-176 ピン 図 1.3-1 FPT-176P-M07 外形寸法図 プラスチック・LQFP, 176 ピン リードピッチ 0.50mm パッケージ幅× パッケージ長さ 24.0 × 24.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX コード(参考) P-LQFP-0176-2424-0.50 (FPT-176P-M07) プラスチック・LQFP, 176 ピン (FPT-176P-M07) 注 1)* 印寸法はレジン残りを含まず。レジン残りは片側 +0.25(.010)MAX 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 26.00±0.20(1.024±.008)SQ *24.00±0.10(.945±.004)SQ 0.145±0.055 (.006±.002) 132 89 133 88 0.08(.003) Details of "A" part +0.20 1.50 –0.10 +.008 (Mounting height) .059 –.004 0.10±0.10 (.004±.004) (Stand off) 0˚~8˚ INDEX 176 45 "A" LEAD No. 1 44 0.50(.020) C 0.22±0.05 (.009±.002) 0.08(.003) 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) 0.25(.010) M 2004 FUJITSU LIMITED F176013S-c-1-1 単位:mm (inches) 注意:括弧内の値は参考値です。 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html 6 第 1 章 概要 1.4 端子配列図 MB91461/F467R の端子配列図を示します。 ■ 端子配列図 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 VCC5 P17_3 PPG3 P17_2/ PPG2 P17_1/ PPG1 P17_0/ PPG0 P14_3/ ICU3/TTN3/TRG3 P14_2/ ICU2/TIN2/TRG2 P14_1/ ICU1/TIN1/TRG1 P14_0/ ICU0/TIN0/TRG0 P22_3 P22_2/ INT13 P22_0/ INT12 P23_6/ INT11 P23_4/ INT10 VCC5 VSS P15_3/ OCU3/TOT3 P15_2/ OCU2/TOT2 P15_1/ OCU1/TOT1 P15_0/ OCU0/TOT0 P18_2/ SCK6 P18_1/ SOT6 P18_0/ SIN6 P19_6/ SCK5 P19_5/ SOT5 P19_4/ SIN5 P19_2/ SCK4 P19_1/ SOT4 P19_0/ SIN4 VCC5 VSS P20_6/ SCK3/FRCK3 P20_5/ SOT3 P20_4/ SIN3 P20_2/ SCK2/FRCK2 P20_1/ SOT2 P20_0/ SIN2 P21_6/ SCK1/FRCK1 P21_5/ SOT1 P21_4/ SIN1 P21_2/ SCK0/FRCK0 P21_1/ SOT0 P21_0/ SIN0 VCC5 図 1.4-1 MB91461 の端子配列図 VSS INT2 / P24_2 lNT3 / P24_3 SDA1/lNT15 / P22_6 SCL1 /P22_7 SDA2/INT4 / P24_4 SCL2/lNT5 / P24_5 DREQ0 DACK0X DEOP0 VCC3 VCC3 VSS C_1 CS4X CS3X CS2X CS1X CS0X IORDX IOWRX RDY BRQ BGRNTX RDX WR0X WR1X SYSCLK ASX VCC3 C_2 VSS X0 X1 VSS D16 D17 D18 D19 D20 D21 D22 D23 VCC3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ① ② ③ TOP View MB91461端子配列 (LQFP-176) 2電源品 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 VSS INITX TRSTX MD0 MD1 MD2 MD3 P23_3 / TX1 P23_2 / RX1/INT9 P23_1 / TX0 P23_0 / RX0/lNT8 P24_7 / INT7 P24_6 / INT6 P22_5 / SCL0 P22_4 / SDA0/INT14 P24_1 / lNT1 P24_0 / INT0 AVRH AVCC3 AVSS/AVRL P28_4 / AN12 P28_3 / AN11 P28_2 / AN10 P28_1 / AN9 P28_0 / AN8 P29_7 / AN7 P29_6 / AN6 P29_5 / AN5 P29_4 / AN4 P29_3 / AN3 P29_2 / AN2 P29_1 / AN1 P29_0 / AN0 WDRESETX BREAK ICLK ICS2 ICS1 lCS0 ICD3 lCD2 lCD1 lCD0 VCC3 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 VSS P17_7 / PPG7 P17_6 / PPG6 P17_5 / PPG5 P17_4 / PPG4 P16_7 / ATGX NMIX A23 A22 A21 A20 A19 A18 A17 VSS VCC3 A16 A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 VSS VCC3 A02 A01 A00 D31 D30 D29 D28 D27 D26 D25 D24 VSS 7 第 1 章 概要 <注意事項> 3 つの I/O ブロック ( ①∼③ ) は , それぞれ 176 ピン , 162 ピン , 133 ピン (147 ピン ) にて , 各端子への供給電源レベル (3.3V/5V) が設定できます。ただし , 各ブロックとも , 1 本でも 5V 動作する端子がある場合は , 5V 電源の供給を行ってください。 ①の I2C 用端子は電源に 5V を供給する場合のみ , 5V 振幅の入力が可能になります。また , I2C の入力しきい値は電源電圧に関係なく 3.3V を基準とした値になります。 ①または③を 5V 端子を使用した場合 , INITX 端子へ 5V 入力が必要になりますので , ③には 5V 供給を行ってください。 8 第 1 章 概要 図 1.4-2 に MB91F467R の端子配列図を示します。 SCK3/FRCK3 SOT3 SIN3 SCK2/FRCK2 SOT2 SIN2 SCK1/FRCK1 SOT1 SIN1 SCK0/FRCK0 SOT0 SIN0 OCU3/TOT3 OCU2/TOT2 OCU1/TOT1 OCU0/TOT0 SCK6 SOT6 SIN6 SCK5 SOT5 SIN5 SCK4 SOT4 SIN4 INT13 INT12 INT11 INT10 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 VCC5 P17_3 P17_2/ P17_1/ P17_0/ P14_3/ P14_2/ P14_1/ P14_0/ P22_3 P22_2/ P22_0/ P23_6/ P23_4/ VCC5 VSS P15_3/ P15_2/ P15_1/ P15_0/ P18_2/ P18_1/ P18_0/ P19_6/ P19_5/ P19_4/ P19_2/ P19_1/ P19_0/ VCC5 VSS P20_6/ P20_5/ P20_4/ P20_2/ P20_1/ P20_0/ P21_6/ P21_5/ P21_4/ P21_2/ P21_1/ P21_0/ VCC5 PPG2 PPG1 PPG0 ICU3/TIN3/TRG3 ICU2/TIN2/TRG2 ICU1/TIN1/TRG1 ICU0/TIN0/TRG0 図 1.4-2 MB91F467R の端子配列図 VSS INT2/P24_2 INT3/P24_3 SDA1/INT15/P22_6 SCL1/P22_7 SDA2/INT4/P24_4 SCL2/INT5/P24_5 DREQ0/P13_0 DACK0X/P13_1 DEOP0/P13_2 VCC3 VCC3 VSS C_1 CS4X/P09_4 CS3X/P09_3 CS2X/P09_2 CS1X/P09_1 CS0X/P09_0 IORDX/P11_0 IOWRX/P11_1 RDY/P08_7 BRQ/P08_6 BGRNTX /P08_5 RDX/P08_4 WR1X/P08_1 WR0X/P08_0 NMIX MCLKE/P10_6 MCLKI/P10_5 MCLKO/P10_4 WEX/P10_3 BAAX /P10_2 ASX/P10_1 SYSCLK/P10_0 VCC3 C_2 VSS X0 X1 VSS X0A X1A VCC3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ⑤ ① ② ④ ③ MB91F467R端子配列 (LQFP-176) 2電源品 ④ ④ 入出力電圧レベルは3.3Vです ⑤ 入出力電圧レベルは、対応するVCC5に加えられる電圧によります。 ④ 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 VSS INITX MD0 MD1 MD2 MD3 P23_3 / TX1 P23_2 / RX1/INT9 P23_1 / TX0 P23_0 / RX0/INT8 P24_7 / INT7 P24_6 / INT6 P24_1 / INT1 P24_0 / INT0 P22_5 / SCL0 P22_4 / SDA0/INT14 AVRH AVCC3 AVSS/AVRL P28_7 / AN15 P28_6 / AN14 P28_5 / AN13 P28_4 / AN12 P28_3 / AN11 P28_2 / AN10 P28_1 / AN9 P28_0 / AN8 P29_7 / AN7 P29_6 / AN6 P29_5 / AN5 P29_4 / AN4 P29_3 / AN3 P29_2 / AN2 P29_1 AN1 P29_0 / AN0 WDRESETX P17_7 / PPG7 P17_6 / PPG6 P17_5 / PPG5 P17_4 / PPG4 P16_7 / ATGX P05_7 / A23 P05_6 / A22 VCC3 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 VSS P05_5/ P05_4/ P05_3/ P05_2/ P05_1/ P05_0/ P06_7/ P06_6/ P06_5/ P06_4/ P06_3/ P06_2/ P06_1/ VSS VCC3 P06_0/ P07_7/ P07_6/ P07_5/ P07_4/ P07_3/ P07_2/ P07_1/ P07_0/ P00_7/ P00_6/ P00_5/ P00_4/ P00_3/ VSS VCC3 P00_2/ P00_1/ P00_0/ P01_7/ P01_6/ P01_5/ P01_4/ P01_3/ P01_2/ P01_1/ P01_0/ VSS A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16 9 第 1 章 概要 端子機能一覧表 1.5 MB91461/F467R の端子機能の一覧を示します。 ■ 端子機能一覧表 表 1.5-1 MB91461/F467R の端子機能一覧表 (1 / 5) 端子番号 2 3 端子名 P24_2 INT2 P24_3 INT3 P22_6 4 SDA1 INT15 P22_7 5 SCL1 P24_4 6 SDA2 INT4 P24_5 入出力 入出力 回路形式 I/O D I/O D 汎用入出力ポートです。 外部割込み入力端子です。 汎用入出力ポートです。 外部割込み入力端子です。 汎用入出力ポートです。 I/O オープン ドレイン C I/O オープン ドレイン C I/O オープン ドレイン 機能 I2C バスデータ入出力端子です。 外部割込み入力端子です。 汎用入出力ポートです。 I2C バスクロック入出力端子です。 汎用入出力ポートです。 C I2C バスデータ入出力端子です。 外部割込み入力端子です。 汎用入出力ポートです。 C INT5 I/O オープン ドレイン 8 DREQ0 I H DMA 外部転送要求入力です。 9 DACK0X O H DMA 外部転送アクノリッジ出力です。 10 DEOP0 O H DMA 外部転送 EOP (End of Process) 出力です。 15 ∼ 19 CS4X ∼ CS0X O H チップセレクト出力です。 20 IORDX O H DMA フライバイ転送時のリードストローブ出力です。 21 IOWRX O H DMA フライバイ転送時のライトストローブ出力です。 22 RDY I H 外部レディ入力です。 23 BRQ I H 外部バス開放要求入力です。 24 BGRNTX O H 外部バス開放受付け出力です。 25 RDX O H 外部リードストローブ出力です。 26 WR0X O H 外部ライトストローブ出力です。 27 WR1X O H 外部ライトストローブ出力です。 28 SYSCLK O H システムクロック出力です。 29 ASX O H アドレスストローブ出力です。 33 X0 − H クロック ( 発振 ) 入力です。 7 10 SCL2 I2C バスクロック入出力端子です。 外部割込み入力端子です。 第 1 章 概要 表 1.5-1 MB91461/F467R の端子機能一覧表 (2 / 5) 端子番号 端子名 入出力 入出力 回路形式 34 X1 − H クロック ( 発振 ) 出力です。 36 ∼ 43 46 ∼ 53 D16 ∼ D31 I/O H 外部データバス信号です。 54 ∼ 56 59 ∼ 72 75 ∼ 81 A00 ∼ A23 O H 外部アドレスバス信号です。 82 NMIX I H NMI (Non Maskable Interrupt) 入力です。 H 汎用入出力ポートです。 H A/D コンバータ外部トリガ入力です。 H 汎用入出力ポートです。 H PPG タイマ出力端子です。 83 84 ∼ 87 P16_7 ATGX P17_4 ∼ P17_7 I/O 機能 I/O PPG4 ∼ PPG7 90 ∼ 93 ICD0 ∼ ICD3 I/O H 開発ツール用データ入出力端子です。 94 ∼ 96 ICS0 ∼ ICS2 O H 開発ツール用ステータス出力端子です。 97 ICLK O I 開発ツール用クロック出力端子です。 98 BREAK I H 開発ツール用ブレーク入力端子です。 99 WDRESETX O J ウォッチドッグリセット出力端子です。 100 ∼ 107 P29_0 ∼ P29_7 I/O F AN0 ∼ AN7 108 ∼ 112 116, 117 P28_0 ∼ P28_4 A/D コンバータ用アナログ入力端子です。 汎用入出力ポートです。 I/O AN8 ∼ AN12 P24_0, P24_1 F A/D コンバータ用アナログ入力端子です。 汎用入出力ポートです。 I/O D INT0, INT1 P22_4 118 SDA0 INT14 P22_5 119 SCL0 P24_6 120 INT6 汎用入出力ポートです。 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 汎用入出力ポートです。 I/O オープン ドレイン C I/O オープン ドレイン C I/O オープン ドレイン D I2C バスデータ入出力端子です。 外部割込み入力端子です。 汎用入出力ポートです。 I2C バスクロック入出力端子です。 汎用入出力ポートです。 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 11 第 1 章 概要 表 1.5-1 MB91461/F467R の端子機能一覧表 (3 / 5) 端子番号 端子名 入出力 入出力 回路形式 I/O D P24_7 121 INT7 汎用入出力ポートです。 P23_0 122 RX0 P23_1 TX0 I/O D RX1 I/O D P23_3 TX1 CAN0 の TX 出力端子です I/O D CAN1 の RX 入力端子です。 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 I/O D 汎用入出力ポートです。 CAN0 の TX 出力端子です。 126 MD3 I A 127 MD2 I A 128 MD1 I A 129 MD0 I B 130 TRSTX I E 開発ツール用リセット入力端子です。 131 INITX I B 外部リセット入力です。 I/O D I/O D 134 135 P21_0 SIN0 P21_1 SOT0 P21_2 136 SCK0 137 138 P21_4 SIN1 P21_5 SOT1 I/O D SCK1 I/O D I/O D 141 P20_0 SIN2 P20_1 SOT2 UART0 のデータ入力端子です。 汎用入出力ポートです。 UART0 のデータ出力端子です。 UART0 のクロック入出力端子です。 汎用入出力ポートです。 UART1 のデータ入力端子です。 汎用入出力ポートです。 UART1 のデータ出力端子です。 汎用入出力ポートです。 I/O D FRCK1 140 汎用入出力ポートです。 フリーランタイマ 0 の外部クロック入力端子です。 P21_6 139 モード設定端子です。 MD3 は "0" 固定にしてください。 汎用入出力ポートです。 FRCK0 12 汎用入出力ポートです。 汎用入出力ポートです。 INT9 125 CAN0 の RX 入力端子です。 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 P23_2 124 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 汎用入出力ポートです。 INT8 123 機能 UART1 のクロック入出力端子です。 フリーランタイマ 1 の外部クロック入力端子です。 I/O D I/O D 汎用入出力ポートです。 UART2 のデータ入力端子です。 汎用入出力ポートです。 UART2 のデータ出力端子です。 第 1 章 概要 表 1.5-1 MB91461/F467R の端子機能一覧表 (4 / 5) 端子番号 端子名 入出力 入出力 回路形式 P20_2 142 SCK2 汎用入出力ポートです。 I/O D FRCK2 143 144 P20_4 SIN3 P20_5 SOT3 SCK3 I/O D I/O D 149 150 151 152 153 154 155 156 P19_0 SIN4 P19_1 SOT4 P19_2 SCK4 P19_4 SIN5 P19_5 SOT5 P19_6 SCK5 P18_0 SIN6 P18_1 SOT6 P18_2 SCK6 I/O D OCU0 ∼ OCU3 I/O D I/O D I/O D I/O D I/O D I/O D I/O D I/O D I/O D 164 P23_4 INT10 P23_6 INT11 汎用入出力ポートです。 UART3 のデータ出力端子です。 UART3 のクロック入出力端子です。 汎用入出力ポートです。 UART4 のデータ入力端子です。 汎用入出力ポートです。 UART4 のデータ出力端子です。 汎用入出力ポートです。 UART4 のクロック入出力端子です。 汎用入出力ポートです。 UART5 のデータ入力端子です。 汎用入出力ポートです。 UART5 のデータ出力端子です。 汎用入出力ポートです。 UART5 のクロック入出力端子です。 汎用入出力ポートです。 UART6 のデータ入力端子です。 汎用入出力ポートです。 UART6 のデータ出力端子です。 汎用入出力ポートです。 UART6 のクロック入出力端子です。 汎用入出力ポートです。 I/O D TOT0 ∼ TOT3 163 UART3 のデータ入力端子です。 フリーランタイマ 3 の外部クロック入力端子です。 P15_0 ∼ P15_3 157 ∼ 160 汎用入出力ポートです。 汎用入出力ポートです。 FRCK3 148 UART2 のクロック入出力端子です。 フリーランタイマ 2 の外部クロック入力端子です。 P20_6 145 機能 アウトプットコンペア出力端子です。 リロードタイマ出力端子です。 I/O D I/O D 汎用入出力ポートです。 外部割込み入力端子です。 汎用入出力ポートです。 外部割込み入力端子です。 13 第 1 章 概要 表 1.5-1 MB91461/F467R の端子機能一覧表 (5 / 5) 端子番号 165 166 167 端子名 P22_0 INT12 P22_2 INT13 P22_3 入出力 入出力 回路形式 I/O D I/O D I/O D P14_0 ∼ P14_3 168 ∼ 171 ICU0 ∼ ICU3 TIN0 ∼ TIN3 172 ∼ 175 14 PPG0 ∼ PPG3 汎用入出力ポートです。 外部割込み入力端子です。 汎用入出力ポートです。 外部割込み入力端子です。 汎用入出力ポートです。 汎用入出力ポートです。 インプットキャプチャ入力端子です。 I/O D リロードタイマの外部トリガ入力端子です。 TRG0 ∼ TRG3 P17_0 ∼ P17_3 機能 PPG の外部トリガ入力端子です。 汎用入出力ポートです。 I/O D PPG タイマ出力端子です。 第 1 章 概要 表 1.5-2 MB91461 端子機能一覧表【電源・GND 端子】 端子番号 端子名 I/O 回路形式 端子機能 1, 13, 32, 35 45, 58, 74, 88, 132, 146, 161 VSS (VSS) 11, 12, 30, 44, 57, 73, 89 VCC3 (VCC3) 3.3V 電源端子です。 GND 端子です。 133 147 VCC5 (VCC5) 5V 電源端子です。116 ∼ 145 ピンに対応した I/O 電源で あり , 3.3V を供給することにより I/O が 3.3V 動作になり ます。ほかの I/O 電源ブロックで 5V を使用する場合には 本端子に属する I/O も 5V に設定する必要があります。 162 VCC5 (VCC5) 5V 電源端子です。148 ∼ 160 ピンに対応した I/O 電源で あり , 3.3V を供給することにより I/O が 3.3V 動作になり ます。 176 VCC5 (VCC5) 5V 電源端子です。2 ∼ 7, 163 ∼ 175 ピンに対応した I/O 電源であり , 5V 動作端子が 1 本以上ある場合には 5V を 供給してください。 113 AVSS/AVRL (AVSS) A/D コンバータ用アナログ GND 端子です。 114 AVCC3 (AVCC3) A/D コンバータ用 3.3V 電源端子です。 115 AVRH (AVRH) A/D コンバータ用基準電源端子です。 14 C_1 − 内部レギュレータ用のコンデンサ接続端子です。1µF を接 続してください。 31 C_2 − 内部レギュレータ用のコンデンサ接続端子です。1µF を接 続してください。 15 第 1 章 概要 ■ MB91F467R 端子機能一覧表 表 1.5-3 に MB91F467R の端子機能一覧表を示します。 表 1.5-3 MB91F467R 端子機能一覧表 (1 / 7) 端子番号 端子名 入出力 入出力 回路形式 I/O D P24_2 2 INT2 I/O D INT3 P22_6 4 SDA1 INT15 P22_7 5 SCL1 P24_4 6 SDA2 INT4 P24_5 7 SCL2 INT5 I/O オープ ンドレ イン I/O オープ ンドレ イン I/O オープ ンドレ イン 汎用入出力ポートです。 C 汎用入出力ポートです。 C C 汎用入出力ポートです。 C I/O H H H DEOP0 汎用入出力ポートです。 DMA 外部転送 EOP(End of Process) 出力です。 P09_4 ∼ P09_0 汎用入出力ポートです。 I/O H CS4X ∼ CS0X チップセレクト出力です。 P11_0 I/O H IORDX 汎用入出力ポートです。 DMA フライバイ転送時のリードストローブ出力です。 P11_1 16 汎用入出力ポートです。 DMA 外部転送アクノリッジ出力です。 I/O I/O IOWRX 汎用入出力ポートです。 DMA 外部転送要求入力です。 P13_2 21 I2C バス クロック入出力端子です。 外部割込み入力端子です。 DACK0 20 I2C バス データ入出力端子です。 外部割込み入力端子です。 I/O オープ ンドレ イン I/O 15 ∼ 19 I2C バス クロック入出力端子です。 汎用入出力ポートです。 P13_1 10 I2C バス データ入出力端子です。 外部割込み入力端子です。 DREQ0 9 汎用入出力ポートです。 外部割込み入力端子です。 P13_0 8 汎用入出力ポートです。 外部割込み入力端子です。 P24_3 3 端子機能 H 汎用入出力ポートです。 DMA フライバイ転送時のライトストローブ出力です。 第 1 章 概要 表 1.5-3 MB91F467R 端子機能一覧表 (2 / 7) 端子番号 端子名 入出力 入出力 回路形式 I/O H P08_7 22 RDY I/O H BRQ I/O H BGRNTX I/O H 汎用入出力ポートです。 RDX 外部リードストローブ出力です。 P08_1 汎用入出力ポートです。 26 I/O H WR1X 外部ライトストローブ出力です。(SDRAM 使用時は DQML 信号 ) P08_0 汎用入出力ポートです。 27 I/O H 外部ライトストローブ出力です。(SDRAM 使用時は DQMU 信号 ) I H マスク不可割込み入力です。 I/O H WR0X 28 汎用入出力ポートです。 外部バス開放受付出力です。 P08_4 25 汎用入出力ポートです。 外部バス開放要求入力です。 P08_5 24 汎用入出力ポートです。 外部レディ入力です。 P08_6 23 端子機能 NMIX P10_6 29 MCLKE SDRAM 用クロックイネーブル出力信号です。 P10_5 30 I/O H MCLKI I/O H MCLKO 汎用入出力ポートです。 SDRAM 用クロック出力です。 P10_3 32 汎用入出力ポートです。 SDRAM 用クロック入力です。 P10_4 31 汎用入出力ポートです。 I/O H 汎用入出力ポートです。 WEX 外部ライトイネーブル信号です。 P10_2 汎用入出力ポートです。 33 I/O H I/O H BAAX P10_1 34 ASX 汎用入出力ポートです。 アドレスストローブ出力です。 P10_0 35 バーストモード FLASH メモリ用アドレスアドバンス出力 です。 I/O H SYSCLK 汎用入出力ポートです。 システムクロック出力です。 39 X0 -- G クロック ( 発振 ) 入力です。 40 X1 -- G クロック ( 発振 ) 出力です。 17 第 1 章 概要 表 1.5-3 MB91F467R 端子機能一覧表 (3 / 7) 端子番号 端子名 入出力 入出力 回路形式 42 X0A -- G サブクロック ( 発振 ) 入力です。 43 X1A -- G サブクロック ( 発振 ) 出力です。 46 ∼ 53 P01_0 ∼ P01_7 汎用入出力ポートです。 I/O H D16 ∼ D23 54 ∼ 56 59 ∼ 63 P00_0 ∼ P00_7 外部データバス信号です。 汎用入出力ポートです。 I/O H D24 ∼ D31 64 ∼ 71 P07_0 ∼ P07_7 外部データバス信号です。 汎用入出力ポートです。 I/O H A00 ∼ A07 72 75 ∼ 81 P06_0 ∼ P06_7 外部アドレスバス信号です。 汎用入出力ポートです。 I/O H A08 ∼ A15 82 ∼ 87 91, 91 P05_0 ∼ P05_7 外部アドレスバス信号です。 汎用入出力ポートです。 I/O H A16 ∼ A23 外部アドレスバス信号です。 P16_7 92 I/O H ATGX 汎用入出力ポートです。 I/O H PPG4 ∼ PPG7 97 WDRESETX 98 ∼ 105 P29_0 ∼ P29_7 PPG タイマ出力です。 O J I/O F A/D コンバータ用アナログ入力端子です。 P28_0 ∼ P28_7 汎用入出力ポートです。 I/O F AN8 ∼ AN15 P22_4 117 SDA0 INT14 18 ウォッチドッグリセット出力です。 汎用入出力ポートです。 AN0 ∼ AN7 106 ∼ 113 汎用入出力ポートです。 A/D コンバータ外部トリガ入力です。 P17_4 ∼ P17_7 93 ∼ 96 端子機能 A/D コンバータ用アナログ入力端子です。 I/O オープ ンドレ イン 汎用入出力ポートです。 C I2C バス データ DATA 入出力端子です。 外部割込み入力端子です。 第 1 章 概要 表 1.5-3 MB91F467R 端子機能一覧表 (4 / 7) 端子番号 端子名 入出力 P22_5 I/O オープ ンドレ イン 118 SCL0 入出力 回路形式 汎用入出力ポートです。 C P24_0 ∼ P24_1 D INT0 ∼ INT1 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 P24_6 121 汎用入出力ポートです。 I/O D I/O D INT6 P24_7 122 123 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 汎用入出力ポートです。 INT7 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 P23_0 汎用入出力ポートです。 RX0 I/O D P23_1 124 I/O D TX0 汎用入出力ポートです。 I/O D P23_3 I/O D TX1 MD3 I A 128 MD2 I K 129 MD1 I K 130 MD0 I K 131 INITX I B I/O D P21_0 SIN0 I/O SOT0 モード設定端子です。 MD3 は "0" 固定にしてください。 外部リセット入力です。 汎用入出力ポートです。 UART0 のデータ入力端子です。 P21_1 135 汎用入出力ポートです。 CAN0 の TX 出力端子です。 127 134 CAN1 の RX 入力端子です 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 INT9 126 汎用入出力ポートです。 CAN0 の TX 出力端子です P23_2 RX1 CAN0 の RX 入力端子です。 外部割込み入力端子です。 シャットダウンからの復帰要因として使用可能です。 INT8 125 I2C バス クロック入出力端子です。 汎用入出力ポートです。 I/O 119 ∼ 120 端子機能 D 汎用入出力ポートです。 UART0 のデータ出力端子です。 19 第 1 章 概要 表 1.5-3 MB91F467R 端子機能一覧表 (5 / 7) 端子番号 端子名 入出力 入出力 回路形式 P21_2 136 SCK0 汎用入出力ポートです。 I/O D FRCK0 I/O D SIN1 139 I/O D UART1 のデータ出力端子です。 P21_6 汎用入出力ポートです。 SCK1 I/O D I/O D SIN2 I/O D 汎用入出力ポートです。 SOT2 UART2 のデータ出力端子です。 P20_2 汎用入出力ポートです。 SCK2 I/O D FRCK2 I/O D SIN3 汎用入出力ポートです。 UART3 のデータ入力端子です。 P20_5 144 UART2 のクロック入出力端子です。 フリーランタイマ 2 の外部クロック入力端子です。 P20_4 143 I/O D 汎用入出力ポートです。 SOT3 UART3 のデータ出力端子です。 P20_6 汎用入出力ポートです。 SCK3 I/O D FRCK3 I/O D SIN4 I/O D SOT4 I/O SCK4 汎用入出力ポートです。 UART4 のデータ出力端子です。 P19_2 150 汎用入出力ポートです。 UART4 のデータ入力端子です。 P19_1 149 UART3 のクロック入出力端子です。 フリーランタイマ 3 の外部クロック入力端子です。 P19_0 148 20 汎用入出力ポートです。 UART2 のデータ入力端子です。 P20_1 141 UART1 のクロック入出力端子です。 フリーランタイマ 1 の外部クロック入力端子です。 P20_0 140 145 汎用入出力ポートです。 SOT1 FRCK1 142 汎用入出力ポートです。 UART1 のデータ入力端子です。 P21_5 138 UART0 のクロック入出力端子です。 フリーランタイマ 0 の外部クロック入力端子です。 P21_4 137 端子機能 D 汎用入出力ポートです。 UART4 のクロック入出力端子です。 第 1 章 概要 表 1.5-3 MB91F467R 端子機能一覧表 (6 / 7) 端子番号 端子名 入出力 入出力 回路形式 I/O D P19_4 151 SIN5 I/O D SOT5 I/O D SCK5 I/O D SIN6 I/O D SOT6 I/O D SCK6 OCU0 ∼ OCU3 汎用入出力ポートです。 I/O D TOT0 ∼ TOT3 I/O D INT10 I/O D INT11 I/O D INT12 I/O D INT13 167 P22_3 汎用入出力ポートです。 外部割込み入力端子です。 P22_2 166 汎用入出力ポートです。 外部割込み入力端子です。 P22_0 165 汎用入出力ポートです。 外部割込み入力端子です。 P23_6 164 アウトプットコンペア出力端子です。 リロードタイマ出力端子です。 P23_4 163 汎用入出力ポートです。 UART6 のクロック入出力端子です。 P15_0 ∼ P15_3 157 ∼ 160 汎用入出力ポートです。 UART6 のデータ出力端子です。 P18_2 156 汎用入出力ポートです。 UART6 のデータ入力端子です。 P18_1 155 汎用入出力ポートです。 UART5 のクロック入出力端子です。 P18_0 154 汎用入出力ポートです。 UART5 のデータ出力端子です。 P19_6 153 汎用入出力ポートです。 UART5 のデータ入力端子です。 P19_5 152 端子機能 汎用入出力ポートです。 外部割込み入力端子です。 I/O D 汎用入出力ポートです。 21 第 1 章 概要 表 1.5-3 MB91F467R 端子機能一覧表 (7 / 7) 端子番号 端子名 入出力 入出力 回路形式 端子機能 P14_0 ∼ P14_3 汎用入出力ポートです。 ICU0 ∼ ICU3 インプットキャプチャ入力端子です。 I/O 168 ∼ 171 D TIN0 ∼ TIN3 リロードタイマの外部トリガ入力端子です。 TRG0 ∼ TRG3 PPG の外部トリガ入力端子です。 P17_0 ∼ P17_3 汎用入出力ポートです。 I/O 172 ∼ 175 D PPG0 ∼ PPG3 PPG タイマ出力端子です。 表 1.5-4 MB91F467R 端子機能一覧表【電源・GND 端子】 端子番号 端子名 入出力 端子機能 1, 13, 38,41, 45, 58, 74, 88, 132, 146, VSS 161 (VSS) GND 端子です。 11, 12, 36,44, VCC3 57, 73, 89 (VCC3) 3.3V 電源端子です。 133, 147 VCC5 (VCC5) 5V 電源端子です。117 ∼ 145 ピンに対応した I/O 電源で あり , 3.3V を供給することにより I/O が 3.3V 動作になり ます。ほかの I/O 電源ブロックで 5V を使用する場合には 本端子に属する I/O も 5V に設定する必要があります。 162 VCC5 (VCC5) 5V 電源端子です。148 ∼ 160 ピンに対応した I/O 電源で あり , 3.3V を供給することにより I/O が 3.3V 動作になり ます。 176 VCC5 (VCC5) 5V 電源端子です。2 ∼ 7, 163 ∼ 175 ピンに対応した I/O 電 源であり , 5V 動作端子が 1 本以上ある場合には 5V を供給 してください。 114 AVSS/AVRL (AVSS) A/D コンバータ用アナログ GND 端子です。 115 AVCC3 (AVCC3) A/D コンバータ用 3.3V 電源端子です。 116 AVRH (AVRH) A/D コンバータ用基準電源端子です。 14 C_1 -- 内部レギュレータ用のコンデンサ接続端子です。4.7 µF を 接続してください。 37 C_2 -- 内部レギュレータ用のコンデンサ接続端子です。4.7 µF を 接続してください。 22 第 1 章 概要 1.6 入出力回路形式 表 1.6-1 に , 入出力回路形式を示します。 ■ 入出力回路形式 表 1.6-1 入出力回路形式 (1 / 3) 分類 回路形式 備考 5V CMOS レベルヒステリシス入力 プルダウン付き 5Vレベル 入力 A プルダウン N-ch 5V CMOS レベルヒステリシス入力 プルアップ付き プルアップ P-ch B 入力 5Vレベル I2C 用入出力端子 IOL = 3 mA N-ch 出力駆動 N-ch 5V 耐圧 ( スタンバイ制御付き ) C 入力 スタンバイ制御 23 第 1 章 概要 表 1.6-1 入出力回路形式 (2 / 3) 分類 回路形式 備考 5V CMOS レベル入力 IOL = 4 mA プルアップ制御 P-ch 5Vレベル P-ch 出力駆動 P-ch N-ch 出力駆動 N-ch 5V CMOS レベル入力 5V CMOS レベルヒステリシス入力 プルアップ / プルダウン制御付き ( スタンバイ制御付き ) D プルダウン制御 N-ch 入力 スタンバイ制御 入力 スタンバイ制御 3.3V CMOS レベルヒステリシス入力 5V 耐圧 ( スタンバイ制御付き ) 3.3Vレベル E 入力 3.3V CMOS レベル入力 IOL = 4 mA 3.3Vレベル P-ch 出力駆動 P-ch N-ch 出力駆動 N-ch F 入力 スタンバイ制御 入力 スタンバイ制御 アナログ入力 24 3.3V CMOS レベル入力 3.3V CMOS レベルヒステリシス入力 アナログ入力 ( スタンバイ制御付き ) 第 1 章 概要 表 1.6-1 入出力回路形式 (3 / 3) 分類 回路形式 備考 3.3Vレベル 入力 3.3V 発振セル ( 帰還抵抗 1MΩ) G スタンバイ制御 3.3V CMOS レベル出力 IOL = 4 mA プルアップ制御 P-ch 3.3Vレベル P-ch 出力駆動 P-ch N-ch 出力駆動 N-ch 3.3V CMOS レベル入力 3.3V CMOS レベルヒステリシス入力 プルアップ / プルダウン制御付き ( スタンバイ制御付き ) H プルダウン制御 N-ch 入力 スタンバイ制御 入力 スタンバイ制御 3.3V CMOS レベル出力 I : IOL = 8 mA 3.3Vレベル P-ch 出力駆動 P-ch N-ch 出力駆動 N-ch J : IOL = 4 mA I, J 5V CMOS レベルヒステリシス入力 5Vレベル K 入力 25 第 1 章 概要 26 第2章 デバイスの取扱いについて FR ファミリの取扱い上の注意について説明しま す。 2.1 デバイス取扱い上の注意 2.2 使用上の注意 27 第 2 章 デバイスの取扱いについて 2.1 デバイス取扱い上の注意 ラッチアップ防止 , 端子処理 , 回路の取扱い , および電源投入時の入力などについて 説明します。 ■ ラッチアップ防止のために CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加し た場合, またはVCC端子とVSS端子との間に定格を超える電圧を印加した場合に, ラッ チアップ現象を生じることがあります。ラッチアップが生じると電源電流が激増し , 素 子の熱破壊に至ることがありますので使用に際しては最大定格を超えることのないよ う十分に注意してください。 ■ 未使用入力端子の処理について 使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま すので , プルアップまたはプルダウンの処理をしてください。 ■ 電源端子について VCC・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止する ためにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要輻射の 低減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格 を遵守などのために , 必ずそれらすべてを外部で電源およびグランドに接続してくだ さい。また , 電流供給源からできる限り低インピーダンスで本デバイスの VCC, VSS に 接続するような配慮をお願いします。 さらに , 本デバイスの近くで , VCC と VSS の間に 0.1 µF 程度のセラミックコンデンサ をバイパスコンデンサとして接続することをお勧めします。 MB91461/F467R には , 降圧レギュレータが内蔵されています。レギュレータ用に必ず C_1, C_2 端子に 4.7 µF のバイパスコンデンサを接続してください。 ■ 水晶発振回路について X0, X1 (X0A, X1A) 端子の近辺のノイズは本デバイスの誤動作の原因となります。X0 (X0A) と X1 (X1A) および水晶発振子さらにグランドへのバイパスコンデンサはできる 限り近くに配置するようにプリント板を設計してください。また , X0, X1 端子の回り をグランドで囲むようなプリント板アートワークは安定した動作を期待できますので, 強くお勧めします。 各量産品において , 使用される発振子メーカに発振評価依頼をしてください。 28 第 2 章 デバイスの取扱いについて ■ 外部クロック使用時の注意 外部クロックを使用する際には , 原則として X0 (X0A) 端子 , また , X1 (X1A) 端子には X0 (X0A) と逆相のクロックを同時に供給してください。ただし , この場合には STOP モード ( 発振停止モード ) は使用しないでください (STOP 時 , X1 (X1A) 端子が "H" 出 力で停止するため )。 図 2.1-1 外部クロック使用例 ( 通常 ) X0 (X0A) X1 (X1A) ( 注意事項 ) STOP モード ( 発振停止モード ) は使用できません。 ■ モード端子 (MD0 ∼ MD3) について これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより 誤ってテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子 と VCC または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで 接続するようにしてください。 ■ 3.3V 系および 5V 系の電源投入順序について • 電源投入直後は発振回路の発振安定待ち時間を確保するため , INITX 端子への "L" レベル入力を発振安定待ち時間 (8ms) の間持続してください。 • 電源投入順序はありません。 • リセット解除 (INITX 端子を "L" レベル→ "H" レベル ) を行う場合は , 3.3V 系および 5V 系電源が安定している状態で行ってください。 ■ PLL クロックモード動作中の注意について MB91461/F467R で PLL クロックを選択しているときに発振子が外れたり , クロック入 力が停止した場合 , PLL 内部の自励発振回路の自走周波数で動作を続ける場合があり ます。この動作は保証外の動作です。 ■ 外部バスの設定 MB91461/F467R は , 外部バスクロック SYSCLK は最大 40MHz の保証となっています。 DIVR1 ( 外部バス基本クロック分周設定レジスタ ) を初期値のまま , ベースクロックを 40MHz に設定すると , 外部バスも 80MHz になります。ベースクロックを変更する際に は , SYSCLK が 40MHz を超えないように設定した後 , ベースクロックを変更してくだ さい。 ■ プルアップコントロール 外部バス端子として使用する端子に対してプルアップ抵抗をつけると交流規格を保証 できません。 29 第 2 章 デバイスの取扱いについて ■ PS レジスタに関する注意事項 一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ 使用時に割込み処理ルーチンでブレークしたり , PS レジスタ内のフラグの表示内容が 更新されたりする場合があります。いずれの場合も , EIT から復帰後以降に , 正しく再 処理を行うように設計されていますので , EIT 前後の動作は仕様どおりの処理を行いま す。 1) DIV0U/DIV0S 命令の直前の命令では , ユーザ割込み・NMI を受け付けた場合 , ス テップ実行を行った場合 , データイベントまたはエミュレータメニューにてブ レークした場合 , 以下の動作を行う場合があります。 - D0, D1 フラグが先行して更新されます。 - EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。 - EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0, D1 フラグが 1) と同じ値 に更新されます。 2) ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために OR CCR/ST ILM/MOV Ri,PS の各命令が実行されると , 以下のような動作 を行います。 - PS レジスタが先行して更新されます。 - EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。 - EIT から復帰後 , 上記命令が実行され , PS レジスタが 1) と同じ値に更新され ます。 ■ 同期モードのソフトウェアリセットについて 同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジス タ ) の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。 • 割込み許可フラグ (I-Flag) を割込み禁止 (I/Flag = 0) に設定する。 • NMI を使用しない。 30 第 2 章 デバイスの取扱いについて ■ デバッガ関連の注意事項 ● RETI 命令のステップ実行 ステップ実行する際 , 割込みが頻繁に発生する環境下では , 該当する割込み処理ルーチ ンだけを繰り返して実行します。その結果 , メインルーチンや割込みレベルの低いプロ グラムの実行が行われなくなります ( 例えば, タイムベースタイマの割込みを許可して いた場合 , RETI をステップ実行すると , 必ずタイムベースのルーチンの先頭でブレー クします ) 。 該当割込み処理ルーチンのデバッグが不要になった段階で , 該当する割込みを禁止し てください。 ● ブレーク機能 ハードウェアブレーク (イベントブレークを含む) の対象アドレスが現在のシステムス タックポインタのアドレスや , スタックポインタを含む領域に設定されていると , ユー ザプログラムに実際のデータアクセス命令がないにもかかわらず , 1 命令実行後にブ レークしてしまいます。 ブレーク回避するために , システムスタックポインタのアドレスを含む領域に対する ( ワード ) アクセスをハードウェアブレーク ( イベントブレーク含む ) の対象に設定しな いでください。 ● 内蔵 ROM ( フラッシュメモリ , マスク ROM) エバチップ使用時の注意事項 内蔵 ROM 領域を DMAC 転送先に設定しないでください。 内蔵 ROM 領域を DMAC 転送先に設定した場合 , DMAC 転送中にブレークが発生する と , 内蔵 ROM 領域が書き換えられるおそれがあります。ただし , 内蔵 ROM 領域を DMAC 転送元とすることは可能です。 ● オペランドブレークについて DSU のオペランドブレークとして設定している領域にスタックポインタがあると誤動 作の原因となります。システムスタックポインタのアドレスを含む領域に対するアク セスをデータイベントブレークの対象にしないでください。 31 第 2 章 デバイスの取扱いについて 2.2 使用上の注意 DSU4 (ICE) 専用接続端子の使用上の注意について示します。 ■ DSU4 (ICE) 専用接続端子について 下記に MB91461 の DSU4 (ICE) 接続端子を示します。 表 2.2-1 MB91461 の DSU4 (ICE) 接続端子 端子番号 端子名 機能 93 ∼ 90 ICD3 ∼ ICD0 開発ツール用データ入出力端子です。 96 ∼ 94 ICS2 ∼ ICS0 開発ツール用ステータス出力端子です。 97 ICLK 開発ツール用クロック端子です。 98 BREAK 開発ツール用ブレーク端子です。 130 TRSTX 開発ツール用リセット端子です。 (3V/5V 対応入力端子 ) ● ユーザターゲット側コネクタと MB91461 の接続について 下記にユーザターゲット側の推奨コネクタを示します。 メーカ : 山一電機株式会社 型格 : FAP-20-08#* * : 一桁の数字で端子形状を示します。 ・1 : ライトアングル / ラッピング ・2 : ライトアングル / はんだディップ ・4 : ストレート / はんだディップ 図 2.2-1 ユーザターゲット側コネクタの接続例 32 19ピン 1ピン 20ピン 2ピン 第 2 章 デバイスの取扱いについて 表 2.2-2 ターゲット側コネクタの端子機能一覧表 コネクタ 端子 No. 信号線名 入出力 1 EVCC2 入力 開放 2 EVCC3 入力 開放 3 DSUIO 入出力 開放 4 UVCC 出力 ユーザ Vcc 出力 6 XRSTIN 出力 ユーザ回路の INITX 信号に接続 8 PLVL 入力 開放 5 XTRST 入力 TRSTX(130 ピン ) に接続 7 XINIT 入力 INITX(131 ピン ) に接続 9 GND − 10 BREAK 入力 11 ICD[3] 12 ICD[2] 13 ICD[1] 端子処理 VSS に接続 ブレーク (98 ピン ) に接続 ICD3 (93 ピン ) に接続 ICD2 (92 ピン ) に接続 入出力 ICD1 (91 ピン ) に接続 MB91461 14 ICD[0] 15 GND 16 ICS[2] 17 ICS[1] 18 ICS[0] 19 GND − 20 ICLK 出力 ICD0 (90 ピン ) に接続 − VSS に接続 ICS2 (96 ピン ) に接続 出力 ICS1 (95 ピン ) に接続 ICS0 (94 ピン ) に接続 VSS に接続 ICLK(97 ピン ) に接続 33 第 2 章 デバイスの取扱いについて ● 量産時の DSU4 (ICE) 専用端子の処理について 表 2.2-3 量産時の DSU4 (ICE) 専用端子処理 端子番号 端子名 端子処理 93 ∼ 90 ICD3 ∼ ICD0 開放 96 ∼ 94 ICS2 ∼ ICS0 開放 97 ICLK 開放 98 BREAK 開放 130 TRSTX INITX(131 ピン : 外部リセット入力端子 ) に接続 図 2.2-2 量産時の開発ツール (DSU) 用リセット端子 (TRSTX) の接続処理 リセット入力 INITX TRSTX 開発ツール用リセット端子 (TRSTX) は 3.3V/5V 対応入力端子になっておりますので , INITX 端子と直接接続が可能です。 ■ シリアル書込みモード時の端子状態 MB91F467RA の非同期シリアル書込みモード時の端子状態 (FUJISTU FLASH MCU Programmer 使用時 ) • 動作モード設定 ( モード端子固定の場合 ) MD0 MD1 MD2 MD3 P15_2 P15_3 L L H L L L P21_2: リセット後 H 出力 制御プログラムダウンロード後 Hi-Z シリアル書込み時における , ほかの未使用 I/O は Hi-Z 状態 通常 , シリアル書込み中におけるモード端子レベルは , 固定で使用することを推奨しま す。MD2 端子を以下のように変更する場合は , 出力状態になる端子がありますので注 意してください。 34 第 2 章 デバイスの取扱いについて • 動作モード設定 ( 途中でモード端子が変わる場合 ) MD0 MD1 MD2 MD3 P15_2 P15_3 "L" "L" "H" → "L" "L" "L" "L" P21_2: リセット後 "H" 出力 制御プログラムダウンロード後 Hi-Z P23_0: "H" 出力 P23_1: リセット後 "L" 出力 ダウンロード後 "H" 出力 P23_2:メインクロック周波数のパルス出力 シリアル書込み時における未使用 I/O は Hi-Z 状態 35 第 2 章 デバイスの取扱いについて 36 第3章 CPU および制御部 FR ファミリの CPU コアの機能を知るために , アーキテクチャ , 仕様 , 命令などの基本的なことに ついて説明します。 3.1 メモリ空間 3.2 内部アーキテクチャ 3.3 命令キャッシュ (MB91461 に搭載 ) 3.4 プログラミングモデル 3.5 データ構造 3.6 メモリマップ 3.7 分岐命令 3.8 EIT ( 例外・割込み・トラップ ) 3.9 動作モード 3.10 リセット ( デバイス初期化 ) 3.11 クロック生成制御 3.12 PLL インタフェース 3.13 デバイス状態制御 3.14 インターバルタイマ 37 第 3 章 CPU および制御部 3.1 メモリ空間 FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク セスを行います。 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ スを指定できます。 ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。 バイトデータアクセス : 000H ∼ 0FFH ハーフワードアクセス : 000H ∼ 1FFH ワードデータアクセス : 000H ∼ 3FFH ■ メモリマップ 図 3.1-1 に , MB91461/F467R のメモリマップを示します。 図 3.1-1 MB91461/F467R のメモリマップ 外ROM 外バスモード 0000 0000H 0000 0400H I/O 0000 0400H I/O 0000 1000H 0000 1000H 0000 8000H 0000 BFFFH 0001 0000H 0002 0000H 0003 0000H 0004 0000H 0002 4000H BI-ROM 0002 C000H 0003 0000 H I-cache I/O D-bus RAM (1wait) D-bus RAM (0wait) ダイレクト アドレッシング領域 I/Oマップを参照 I/O 0000 0400H 0000 1000H 0002 4000H 0002 C000H 0003 0000 H ダイレクト アドレッシング領域 I/Oマップを参照 I/O D-bus RAM (1wait) D-bus RAM (0wait) F-bus RAM F-bus RAM 0003 4000 H 0003 4000 H F-bus RAM 外部領域 0010 0000H 0000 0000H 0000 0000H ダイレクト アドレッシング領域 I/Oマップを参照 I/O MB91F467Rの外ROM 外バスモード MB91F467Rの内ROM 外バスモード MB91461 リセット・ モードベクタ 0010 4000 H 0015 0000 H 外部領域 外部領域 リセット・ モードベクタ 内蔵FLASH リセット・ モードベクタ 0010 4000 H 外部領域 外部領域 FFFF FFFFH FFFF FFFFH 内蔵FLASH FFFF FFFFH 各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します ( モー ドの設定に関しては , 「3.9.2 モード設定」を参照 ) 。 <注意事項> MB91V460 に搭載されている RAM はすべて 0 ウェイトです。 38 第 3 章 CPU および制御部 3.2 内部アーキテクチャ FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向け た高機能命令を導入した高性能コアです。 ■ 内部アーキテクチャの特長 • RISC アーキテクチャの採用 基本命令 1 命令 1 サイクル • 32 ビットアーキテクチャ 汎用レジスタ 32 ビット× 16 本 • 4G バイトのリニアなメモリ空間 • 乗算器の搭載 32 ビット× 32 ビット乗算 5 サイクル 16 ビット× 16 ビット乗算 3 サイクル • 割込み処理機能の強化 高速応答速度 (6 サイクル ) 多重割込みのサポート レベルマスク機能 (16 レベル ) • I/O 操作用命令の強化 メモリ - メモリ転送命令 ビット処理命令 • 高いコード効率 基本命令語長 16 ビット • 低消費電力 スリープモード / ストップモード / シャットダウンモード 39 第 3 章 CPU および制御部 ■ 内部アーキテクチャの構造 FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構 造を採用しています。 32 ビット←→ 16 ビットバスアダプタは 32 ビットバス (D-bus) に接続され , CPU と周 辺リソースとのインタフェースを実現します。 ハーバード←→プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ スコントローラとのインタフェースを実現します。 図 3.2-1 に , 内部アーキテクチャの構造を示します。 図 3.2-1 内部アーキテクチャの構造 DSU FR60CPU コア (デバッグサポート) D-bus I-bus ビットサーチ I-cache RAM 32 CAN (2チャネル) 32 ダイレクト マップキャッシュ FLASH 32←→16 バスアダプタ RAM バス コンバータ R-bus MB91461の場合 MB91F467Rの場合 16 DMAC 5チャネル 周辺 リソース 40 外部バス インタ フェース 第 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 命令の速度で行われます。ただし , メモ リウェイトを伴ったロード・ストア命令 , 遅延スロットがない分岐命令 , 複数サイクル 命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い場合 も命令の実行速度が低下します。 ■ 命令キャッシュ オンチップの命令キャッシュにより , 外部高速メモリとそれに関連する制御ロジック のコストを発生することなく高性能なシステムを構築することができます。外部バス の速度が遅い場合にも , CPU への命令供給を高速に行うことができます。 命令キャッシュの詳細については「3.3 命令キャッシュ (MB91461 に搭載 )」を参照し てください。 41 第 3 章 CPU および制御部 ■ 32 ビット←→ 16 ビットバスコンバータ 32 ビット←→ 16 ビットバスコンバータは , 32 ビット幅で高速アクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU から内蔵周辺回 路へのデータアクセスを実現します。 CPU から R-bus に対して 32 ビット幅のアクセスがあった場合 , このバスコンバータが 2 回の 16 ビット幅アクセスに変換してアクセスを行います。内蔵周辺回路の一部には アクセス幅に関して制限のあるものがあります。 ■ ハーバード←→プリンストン バスコンバータ ハーバード←→プリンストン バスコンバータは , CPU の命令アクセスとデータアクセ スの整合をとり , 外部バスとのスムーズなインタフェースを実現します。 CPU は命令バスとデータバスが独立したはハーバードアーキテクチャ構造です。一方 , 外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構 造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス アクセス順位が常に最適化されたものになります。 42 第 3 章 CPU および制御部 3.2.1 命令概要 FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理 演算とビット操作およびダイレクトアドレッシング命令をサポートしています。 各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効 率があります。 命令セットは以下の機能グループに分けることができます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ■ 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や アドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算命令があります。また , レジスタに即値をセットする即値転送命 令やレジスタ間転送命令も備えています。 算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行 います。 ■ ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺回路 (I/O) への読出しと書込みにも使用されます。 ロードとストアにはバイト , ハーフワード , ワードの 3 種類のアクセス長があります。 また , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令については ディスプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付 きレジスタ間接のメモリアドレッシングも可能です。 ■ 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットがあるものと 持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ いては , 「3.7 分岐命令」を参照してください。 43 第 3 章 CPU および制御部 ■ 論理演算とビット操作 論理演算命令は汎用レジスタ間, または汎用レジスタとメモリ (およびI/O) 間でAND, OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/O) の 内容を直接操作することができます。 メモリアドレッシングは一般的なレジスタ間接です。 ■ ダイレクトアドレッシング ダイレクトアドレッシング命令は , I/O と汎用レジスタ間 , または I/O とメモリ間のア クセスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定 することにより , 高速 , 高効率なアクセスを行うことができます。一部の命令について は , レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシング も可能です。 ■ その他の命令概要 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 44 第 3 章 CPU および制御部 命令キャッシュ (MB91461 に搭載 ) 3.3 命令キャッシュについて説明します。 ■ 概要 命令キャッシュは , 一時記憶メモリです。命令コードを外部の低速メモリからアクセスする場 合 , 一度アクセスしたコードを内部に保持する役目を果たし , 2 回目以降のアクセス速度を速 めるために使用します。 命令キャッシュデータ RAM, タグ RAM は , RAM モードに設定することにより , ソフトウェア で直接リード・ライトアクセスができるようになります。ここで説明する命令キャッシュは MB91461 に搭載されています。MB91F467R には搭載されていません。 ■ 本体構成 • FR の基本命令長 : 2 バイト • ブロックの配置方式 : 2 ウェイセットアソシアティブ方式 • ブロック : 1 ウェイは 128 ブロック構成 1 ブロックは 16 バイト ( = 4 サブブロック ) 1 サブブロックは 4 バイト ( = 1 バスアクセス単位 ) 図 3.3-1 命令キャッシュ構成 4バイト ウェイ1 4バイト 4バイト 4バイト 4バイト I1 I0 サブブロック1 サブブロック0 ブロック0 キャッシュタグ サブブロック3 サブブロック2 サブブロック1 サブブロック0 ブロック127 キャッシュタグ サブブロック3 サブブロック2 サブブロック1 サブブロック0 ブロック0 サブブロック3 サブブロック2 サブブロック1 サブブロック0 ブロック127 ・・ 128ブロック ・・ I2 サブブロック2 ・・ I3 サブブロック3 キャッシュタグ キャッシュタグ ・・ ・・ 128ブロック ・・ ウェイ2 45 第 3 章 CPU および制御部 図 3.3-2 命令キャッシュタグ ウェイ1 bit31 9 8 空き 3 TAGV 2 空き アドレスタグ 7 SBV3 6 SBV2 5 SBV1 4 SBV0 サブブロックバリッド LRU エントリロック 0 ETLK 1 0 ETLK TAGバリッド ウェイ2 bit31 9 8 空き 3 TAGV 2 アドレスタグ 7 SBV3 1 LRU 6 SBV2 5 SBV1 4 SBV0 サブブロックバリッド 空き TAGバリッド エントリロック [bit31 ∼ bit9] アドレスタグ 対応するブロックにキャッシュされている命令のメモリアドレスの上位 23 ビット がストアされています。 ブロック i のサブブロック k に格納されている命令データのメモリアドレス IA は , IA =アドレスタグ× 211 + i × 24 + k × 22 となります。 CPU からアクセス要求された命令アドレスの一致を検査するために使用します。タ グ検査の結果に従い , 以下のような動作をします。 • 要求された命令データがキャッシュ内に存在するとき (ヒット) , キャッシュから CPU へサイクル内にデータを転送します。 • 要求された命令データがキャッシュ内に存在しないとき (ミス) , 外部アクセスで 取得されたデータを CPU とキャッシュが同時に取得します。 [bit7 ∼ bit4] SBV3 ∼ SBV0 : サブブロックバリッド サブブロックバリッドを "1" に設定したとき , 対応するサブブロックにタグで示さ れたアドレスの現行命令データがエントリされています。サブブロックには , 通常 2 命令が格納されます ( 即値転送命令を除く ) 。 [bit3] TAGV : TAG バリッド アドレスタグの値が有効がどうかを示します。このビットが "0" のときはサブバリッ ドビットとは無関係に, このブロックはインバリッド状態になります (フラッシュ時) 。 46 第 3 章 CPU および制御部 [bit1] LRU ( ウェイ 1 のみ ) ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最 後にアクセスしたエントリがウェイ 1・ウェイ 2 のどちらであるかを示します。 LRU = 1 のときはウェイ 1 の , LRU = 0 のときはウェイ 2 のセットのエントリが最 後にアクセスしたことを示します。 [bit0] ETLK : エントリロック タグに相当するブロック内の全エントリをキャッシュにロックします。ETLK = 1 のときにロック状態で , キャッシュミス時にエントリは更新されません。ただし , 無効なサブブロックは更新されます。ウェイ 1, ウェイ 2 ともにエントリロックされ ているときにキャッシュミスした場合は , キャッシュミス判定の 1 サイクルをロス した後 , 外部メモリにアクセスします。 47 第 3 章 CPU および制御部 3.3.1 制御レジスタ 制御レジスタには , キャッシュサイズレジスタ (ISIZE) と命令キャッシュ制御レジス タ (ICHCR) があります。これらのレジスタ機能について説明します。 ■ キャッシュサイズレジスタ (ISIZE) 図 3.3-3 キャッシュサイズレジスタ (ISIZE) ISIZE (8 ビット ) bit 7 6 5 4 3 2 − − − − R/W :リード / ライト可能 − :未定義 − − − − − − − − 000003C7H 1 0 SIZE1 SIZE0 R/W R/W 初期値 ------10B [bit1, bit0] SIZE1, SIZE0 キャッシュ容量を設定するビットです。設定によりキャッシュサイズと IRAM 容量 , RAM モード時のアドレスマップが図 3.3-5 のように変化します。キャッシュ容量 を変更した場合は , 必ずフラッシュおよびエントリロックの解除を行ってから キャッシュ ON にしてください。 表 3.3-1 キャッシュサイズレジスタ SIZE1 SIZE0 0 0 1K バイト 0 1 2K バイト 1 0 4K バイト ( 初期値 ) 1 1 設定禁止 容量 ■ 命令キャッシュ制御レジスタ (ICHCR) 命令キャッシュ制御レジスタ (ICHCR) は , 命令キャッシュの動作を制御します。 ICHCR への書込みは , 以降 3 サイクル以内にフェッチされる命令のキャッシュ動作に 影響を与えません。 図 3.3-4 命令キャッシュ制御レジスタ (ICHCR) ICHCR (8 ビット ) bit 000003E7H 7 6 5 4 3 2 1 0 初期値 RAM GBLK ALFL EOLK ELKR FLSH ENAB 0-000000B R/W R/W R/W R/W R/W R/W R/W − − R/W :リード / ライト可能 − :未定義 48 第 3 章 CPU および制御部 [bit7] RAM: RAM モード "1" で RAM モードとして動作します。RAM モードにすることによって , ENAB が "1" でキャッシュオンとなっている場合はキャッシュ RAM が図 3.3-5 のとおりに マッピングされます。 [bit5] GBLK: グローバルロック すべてのカレントエントリをキャッシュにロックします。GBLK = 1 のとき , キャッ シュ内の有効なエントリはミス時に更新されません。ただし , 無効なサブブロック は更新されます。その際の命令データフェッチ動作は , ロックしていないときと同 様です。 [bit4] ALFL: オートロックフェイル すでにロックしているエントリをさらにロックしようとすると ALFL = 1 に設定さ れます。エントリオートロック中のエントリの更新がすでにロックされているエン トリに対して行われようとしたとき , 新たなエントリはキャッシュ中にロックされ ません。このようなプログラムのデバッグのために参照します。"0" 書込みでクリ アされます。 [bit3] EOLK: エントリオートロック 命令キャッシュ内の各エントリに対して , オートロッキングの有効・無効を切り換 えます。EOLK = 1 のときにアクセス ( ミス時のみ ) されたエントリは , キャッシュ タグ内のエントリロックビットがハードウェアで"1"に設定されることにより, ロッ クされます。ロックされたエントリは以後 , キャッシュミス時の更新の対象になり ません。ただし , 無効なサブブロックは更新されます。確実にロックするためには 一度消去した後 , このビットを設定してください。 [bit2] ELKR: エントリロック解除 すべてのキャッシュタグ中のエントリロックビットのクリアを指定します。 ELKR=1に設定された次のサイクルで, すべてのキャッシュタグ中のエントリロッ クビットが "0" にクリアされます。ただし , 本ビットの内容が保持されるのは 1 ク ロックサイクルのみであり , 2 クロックサイクル以降は "0" にクリアされます。 [bit1] FLSH: フラッシュ 命令キャッシュの消去を指定します。FLSH = 1 のとき , キャッシュの内容が消去 されます。ただし , 本ビットの内容が保持されるのは 1 クロックサイクルのみであ り , 2 クロックサイクル以降は "0" にクリアされます。 [bit0] ENAB: イネーブル 命令キャッシュの許可・禁止を切り換えます。ENAB = 0 のときは禁止状態で , CPU からの命令アクセスは , キャッシュを介さず外部に対して直接行われます。禁止状 態では , キャッシュの内容は保存されます。 49 第 3 章 CPU および制御部 図 3.3-5 RAM のアドレスマップ アドレス 00010000H 00010200H 00010400H 00010600H 00010800H キャッシュ OFF キャッシュ OFF RAM OFF RAM ON キャッシュ ON キャッシュ ON キャッシュ ON キャッシュ ON キャッシュ ON キャッシュ ON 4K バイト 4K バイト 2K バイト 2K バイト 1K バイト 1K バイト RAM OFF RAM ON TAG TAG ( ウェイ 1) ( ウェイ 1) RAM OFF RAM ON RAM OFF RAM ON TAG TAG( ウェイ 1) ( ウェイ 1) [TAG ウェイ 1] [TAG ウェイ 1] [TAG ウェイ 1] [TAG ウェイ 1] [TAG ウェイ 1] [TAG ウェイ 1] [TAG ウェイ 1] … … … … [TAG ウェイ 1] … [TAG ウェイ 1] 00014000H 00014200H 00014400H 00014600H 00014800H TAG TAG TAG TAG( ウェイ 2) ( ウェイ 2) ( ウェイ 2) ( ウェイ 2) [TAG ウェイ 2] [TAG ウェイ 2] [TAG ウェイ 2] [TAG ウェイ 2] [TAG ウェイ 2] [TAG ウェイ 2] [TAG ウェイ 2] … … … [TAG ウェイ 2] … [TAG ウェイ 2] 00018000H 00018200H 00018400H 00018600H 00018800H [IRAM ウェイ 1] [$RAM ウェイ 1] [$RAM ウェイ 1] [IRAM ウェイ 1]*2 … … … … … IRAM $RAM(IRAM) ( ウェイ 2) ( ウェイ 2) IRAM $RAM(IRAM) $RAM $RAM ( ウェイ 1) ( ウェイ 1) ( ウェイ 1) ( ウェイ 1) IRAM IRAM IRAM ( ウェイ 1) ( ウェイ 1) *1 IRAM ( ウェイ 1) $RAM( ウェイ 1) ( ウェイ 1) [ $/I ウェイ 1 ] [IRAM ウェイ ] [ $/I ウェイ 1 ] … … … $RAM $RAM ( ウェイ 2) − IRAM $RAM( ウェイ 2) ( ウェイ 2) IRAM ( ウェイ 2) ( ウェイ 2) 0001C000H 0001C200H 0001C400H 0001C600H 0001C800H ( ウェイ 2) ( ウェイ 2) [IRAM ウェイ 2] [$RAM ウェイ 2] [$RAM ウェイ 2] [IRAM ウェイ 2]*2 [ $/I ウェイ 2 ] [IRAM ウェイ 2] [ $/I ウェイ 2 ] … … … … … … … … *1 IRAM IRAM 00020000H [ ] はミラーとなる領域 *1 ISIZE レジスタの値に従い , キャッシュ ON 時と同様のマップになります。 *2 ミラー領域は 4K バイトごとの上位 2K バイトに発生します。 ( 注意事項 ) $ の記号はキャッシュを意味します。 TAGRAM $RAM 00010004H <- 00x 番地のエントリ 00018000H 00018004H <- 00x のミラー 00010008H 00018008H 008 番地の命令 (SBV2) 0001000CH 0001800CH 00C 番地の命令 (SBV3) 00010010H <- 01x 番地のエントリ 00018010H 00018014H <- 01x のミラー 000 番地の命令 (SBV0) 00010014H 00010018H 00018018H 008 番地の命令 (SBV2) 0001001CH 00010020H 0001801CH 00018020H 00C 番地の命令 (SBV3) 00010000H 000 番地の命令 (SBV0) 004 番地の命令 (SBV1) 004 番地の命令 (SBV1) 図 3.3-6 各キャッシュ容量時のメモリの割り当て アドレス 000H 200H 400H 600H … 000H 200H 400H 600H キャッシュ 4K バイト $RAM ( ウェイ 1) キャッシュ 2K バイト $RAM IRAM … $RAM ( ウェイ 2) $RAM IRAM ( 注意事項 ) $ の記号はキャッシュを意味します。 50 キャッシュ 1K バイト キャッシュ OFF $RAM IRAM IRAM … $RAM IRAM IRAM 第 3 章 CPU および制御部 3.3.2 命令キャッシュの状態と設定 命令キャッシュの各動作モードにおける状態と , 命令キャッシュの設定方法について 説明します。 ■ 動作モード時のキャッシュの状態 ディセーブル / フラッシュはビット操作命令などでそのビットだけを変化させた場合 の状態を示しています。 表 3.3-2 動作モード時のキャッシュの状態 ディセーブル (ENAB = 0) フラッシュ 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 サブブロック 内容は不定 バリッドビット 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 LRU 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 エントリロック ビット 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 ( 要エントリロック解除 ) リセット直後 キャッシュメモリ アドレスタグ タ グ TAG 内容は不定 バリッドビット 通常モード 直前の状態を保持 直前の状態を保持 ディセーブル中フラッシュ可能 グローバル ロック アンロック 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 オートロック フェイル フェイルなし 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 エントリ オートロック アンロック 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 エントリロック 解除 解除なし 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 イネーブル ディセーブル ディセーブル 直前の状態を保持 フラッシュ フラッシュ しない 直前の状態を保持 ディセーブル中書換え可能 メモリアクセス直後の サイクルでフラッシュ。 以後 "0" に戻る。 RAM 制 御 レ ジ ス タ 直前の状態を保持 すべてのエントリが ディセーブル中フラッシュ可能 インバリッド 51 第 3 章 CPU および制御部 ■ キャッシュのエントリ更新 キャッシュのエントリ更新は , 以下の表のように行います。 表 3.3-3 キャッシュのエントリ更新 アンロック ヒット 更新しない。 ミス メモリをロードし , キャッシュの エントリの内容を更新する。 ロック 更新しない。 タグミスの場合は更新しない。 サブブロックインバリッドの場合は更新する。 ■ 命令キャッシュのキャッシュ可能領域 • 命令キャッシュは , 外バス空間のみをキャッシュ可能とします。 • DMA 転送で外部メモリの内容が更新されたとしてもキャッシュの内容とのコヒー レンシはとりません。 このような場合はキャッシュをフラッシュすることで , コヒーレンシを保ってくだ さい。 • 各チップセレクトの領域ごとに非キャッシュ領域に設定することができます。この 場合でもキャッシュオフに比べて 1 サイクルのペナルティを受けます 「 ( 9.3 チップ セレクト領域」を参照 ) 。 52 第 3 章 CPU および制御部 3.3.3 命令キャッシュを使用するときの設定方法 命令キャッシュを使用する場合の設定方法を説明します。 ■ 設定手順 命令キャッシュを使用する場合の設定は , 以下の要領で行います。 ● 初期化 命令キャッシュを使い始める一番最初はキャッシュの中身をクリアしておく必要があ ります。 レジスタの Flash ビットと ELKR ビットを "1" にして , 過去のデータを消去します。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00000110,r1 // に "1" をセット FLSH ビット (bit1) // に "1" をセット ELKR ビット (bit2) stb r1,@r0 // レジスタへ書込み これで , キャッシュが初期化されます。 ● キャッシュを有効 (ON) 化 命令キャッシュを有効にするには ENAB ビットを "1" にします。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00000001,r1 // に "1" をセット ENAB ビット (bit0) stb r1,@r0 // レジスタへ書込み これ以降の命令アクセスがキャッシュに取り込まれて行きます。 キャッシュの有効化は , キャッシュの初期化と同時に行うこともできます。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00000111,r1 // に "1" をセット ENAB ビット (bit0) // に "1" をセット FLSH ビット (bit1) // に "1" をセット ELKR ビット (bit2) stb r1,@r0 // レジスタへ書込み ● キャッシュを無効 (OFF) 化 命令キャッシュを無効にするには ENAB ビットを "0" にします。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00000000,r1 // に "0" をセット ENAB ビット (bit0) stb r1,@r0 // レジスタへ書込み この状態 ( リセット後の状態と同じ ) では , キャッシュはないのと同じで何もしません。 キャッシュのオーバヘッドが気になる処理のときに , OFF にすると処理性能が向上すること があります。 53 第 3 章 CPU および制御部 ● キャッシュの内容をすべてロック 現在命令キャッシュに入っている命令がキャッシュから追い出されないようにロック します。 レジスタの GBLK ビットを "1" にします。 ENAB ビットも "1" にしておかないと , キャッ シュが OFF になってしまい , キャッシュ内のロックした命令が使われません。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00100001,r1 // に "1" をセット ENAB ビット (bit0) // に "1" をセット GBLK ビット (bit5) stb r1,@r0 // レジスタへ書込み ● 特定の命令をキャッシュにロック 特定の命令群 ( サブルーチンなど ) をキャッシュにロックするには , それらの命令を実 行する前に EOLK ビットを "1" にします。 ロックした命令は高速な内部 ROM のようにアクセスされます。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00001001,r1 // に "1" をセット ENAB ビット (bit0) // に "1" をセット EOLK ビット (bit3) stb r1,@r0 // レジスタへ書込み メモリのウェイト数に依りますが , stb 命令の次以降の命令から有効になります。 ロックしたい命令群が終わった所で EOLK ビットを "0" にします。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00000001,r1 // に "1" をセット ENAB ビット (bit0) // に "0" をセット EOLK ビット (bit3) stb r1,@r0 // レジスタへ書込み ● キャッシュのロック解除 上記 (5) でロックした命令のロック情報を解除します。 ldi #0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス ldi #0B00000000,r1 // キャッシュディスエーブル stb r1,@r0 // レジスタへ書込み ldi #0B00000100,r1 // に "1" をセット ELKR ビット (bit2) stb r1,@r0 // レジスタへ書込み ロック情報だけ解除されるので , ロックされていた命令は LRU ビットの状態に応じて 順次新しい命令に置き換わります。 54 第 3 章 CPU および制御部 3.4 プログラミングモデル FR ファミリのプログラミングモデル , 汎用レジスタおよび専用レジスタについて説 明します。 ■ 基本プログラミングモデル 図 3.4-1 に , 基本プログラミングモデルを示します。 図 3.4-1 基本プログラミングモデル 32ビット 〔初期値〕 XXXX XXXXH R0 … R1 … … 汎用レジスタ … … … … … AC … R12 R13 R14 R15 プログラムカウンタ PC プログラムステータス PS - テーブルベースレジスタ TBR リターンポインタ RP システムスタックポインタ SSP ユーザスタックポインタ USP 乗除算結果レジスタ MDH MDL ILM FP XXXX XXXXH SP 0000 0000H - SCR CCR 55 第 3 章 CPU および制御部 3.4.1 汎用レジスタ レジスタ R0 ∼ R15 は汎用レジスタです。 各種演算におけるアキュムレータ , およびメモリアクセスのポインタとして使用さ れます。 ■ 汎用レジスタ 図 3.4-2 に , 汎用レジスタの構成を示します。 図 3.4-2 汎用レジスタの構成 32ビット [初期値] R0 XXXX XXXX H R1 R12 R13 R14 AC FP XXXX XXXX H R15 SP 0000 0000 H 16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために 一部の命令が強化されています。 R13: 仮想アキュムレータ (AC) R14: フレームポインタ (FP) R15: スタックポインタ (SP) リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな ります。 56 第 3 章 CPU および制御部 3.4.2 専用レジスタ 専用レジスタは , 特定の目的のために使用します。 FR ファミリでは , 以下の専用レジスタが用意されています。 • プログラムステータス (PS) • コンディションコードレジスタ (CCR) • システムコンディションコードレジスタ (SCR) • 割込みレベルマスクレジスタ (ILM) • プログラムカウンタ (PC) • テーブルベースレジスタ (TBR) • リターンポインタ (RP) • システムスタックポインタ (SSP) • ユーザスタックポインタ (USP) • 乗除算レジスタ (Multiply & Divide register) ■ プログラムステータス (PS) プログラムステータス (PS) は , プログラム状態を保持するレジスタで , ILM, SCR およ び CCR の 3 つのパートに分かれています。 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。 書込みは無効です。 図 3.4-3 に , プログラムステータス (PS) のレジスタ構成を示します。 図 3.4-3 プログラムステータス (PS) のレジスタ構成 bit 31 20 16 ILM 10 8 7 SCR 0 CCR 57 第 3 章 CPU および制御部 ■ コンディションコードレジスタ (CCR) 図 3.4-4 に , コンディションコードレジスタ (CCR) のレジスタ構成を示します。 図 3.4-4 コンディションコードレジスタ (CCR) のレジスタ構成 bit 7 − 6 5 4 3 2 1 0 − S I N Z V C 初期値 --00XXXXB [bit5] S : スタックフラグ R15 として使用されるスタックポインタを指定します。 値 内 容 0 SSP が R15 として使用されます。 EIT 発生時 , 自動的に "0" となります ( ただし , スタックに退避される値はクリアされる前の値です ) 。 1 USP が R15 として使用されます。 リセットにより "0" にクリアされます。 RETI 命令実行時は "0" に設定してください。 [bit4] I : 割込み許可フラグ ユーザ割込み要求の許可・禁止を制御します。 値 内 容 0 ユーザ割込み禁止です。INT 命令実行時 , "0" にクリアされます ( ただし , スタック退避させる値はクリアする前の値です ) 。 1 ユーザ割込み許可です。ユーザ割込み要求のマスク処理は , ILM の保 持する値により制御されます。 リセットにより "0" にクリアされます。 [bit3] N : ネガティブフラグ 演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。 値 内 容 0 演算結果が正の値であったことを示します。 1 演算結果が負の値であったことを示します。 リセットによる初期状態は不定です。 58 第 3 章 CPU および制御部 [bit2] Z : ゼロフラグ 演算結果が "0" であったかどうかを示します。 値 内 容 0 演算結果が "0" 以外の値であったことを示します。 1 演算結果が "0" であったことを示します。 リセットによる初期状態は不定です。 [bit1] V : オーバフローフラグ 演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 , オーバフローが生じたかどうかを示します。 値 内 容 0 演算の結果 , オーバフローは発生していないことを示します。 1 演算の結果 , オーバフローが発生したことを示します。 リセットによる初期状態は不定です。 [bit0] C : キャリフラグ 演算により , 最上位ビットからのキャリ , またはボローが発生したかどうかを示し ます。 値 内 容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 リセットによる初期状態は不定です。 59 第 3 章 CPU および制御部 ■ システムコンディションコードレジスタ (SCR) 図 3.4-5 に, システムコンディションコードレジスタ(SCR)のレジスタ構成を示します。 図 3.4-5 システムコンディションコードレジスタ (SCR) のレジスタ構成 bit 10 9 8 [ 初期値 ] 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" に初期化されます。 ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用 時 , ユーザプログラム中で使用することはできません。 60 第 3 章 CPU および制御部 ■ 割込みレベルマスクレジスタ (ILM) 図 3.4-6 に , 割込みレベルマスクレジスタ (ILM) のレジスタ構成を示します。 図 3.4-6 割込みレベルマスクレジスタ (ILM) のレジスタ構成 bit 20 19 18 17 16 [ 初期値 ] 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) 図 3.4-7 に , プログラムカウンタ (PC) のレジスタ構成を示します。 図 3.4-7 プログラムカウンタ (PC) のレジスタ構成 bit 31 PC 0 [ 初期値 ] XXXXXXXXH [bit31 ∼ bit0] プログラムカウンタで , 実行している命令のアドレスを示しています。 命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。bit0 が "1" になる可 能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があります。 リセットによる初期値は不定です。 61 第 3 章 CPU および制御部 ■ テーブルベースレジスタ (TBR) 図 3.4-8 に , テーブルベースレジスタ (TBR) のレジスタ構成を示します。 図 3.4-8 テーブルベースレジスタ (TBR) のレジスタ構成 bit 31 0 [ 初期値 ] 000FFC00H TBR テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。 リセットによる初期値は , "000FFC00H" です。 ■ リターンポインタ (RP) 図 3.4-9 に , リターンポインタ (RP) のレジスタ構成を示します。 図 3.4-9 リターンポインタ (RP) のレジスタ構成 bit 31 0 RP [ 初期値 ] XXXXXXXXH リターンポインタで , サブルーチンから復帰するアドレスを保持します。 CALL 命令実行時 , PC の値がこの RP に転送されます。 RET 命令実行時 , RP の内容が PC に転送されます。 リセットによる初期値は不定です。 ■ システムスタックポインタ (SSP) 図 3.4-10 に , システムスタックポインタ (SSP) のレジスタ構成を示します。 図 3.4-10 システムスタックポインタ (SSP) のレジスタ構成 bit 31 SSP 0 [ 初期値 ] 00000000H SSP は , システムスタックポインタです。 S フラグが "0" のとき , R15 として機能します。 SSP を明示的に指定することも可能です。また , EIT 発生時に , PS と PC を退避するス タックを指定するスタックポインタとしても使用されます。 リセットによる初期値は "00000000H" です。 62 第 3 章 CPU および制御部 ■ ユーザスタックポインタ (USP) 図 3.4-11 に , ユーザスタックポインタ (USP) のレジスタ構成を示します。 図 3.4-11 ユーザスタックポインタ (USP) のレジスタ構成 bit 31 0 USP [ 初期値 ] XXXXXXXXH USP は , ユーザスタックポインタです。 S フラグが "1" のとき , R15 として機能します。 USP を明示的に指定することも可能です。 リセットによる初期値は不定です。 RETI 命令で使用することはできません。 ■ 乗除算レジスタ (Multiply & Divide register) 図 3.4-12 に , 乗除算レジスタ (Multiply & Divide register) のレジスタ構成を示します。 図 3.4-12 乗除算レジスタ (Multiply & Divide register) のレジスタ構成 bit 31 0 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……商 63 第 3 章 CPU および制御部 データ構造 3.5 FR ファミリのデータ構造について説明します。 ■ ビットオーダリング FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。 図 3.5-1 に , ビットオーダリングのデータ配置を示します。 図 3.5-1 ビットオーダリングのデータ配置 bit 31 29 30 27 28 25 26 23 24 21 22 19 20 17 18 15 16 13 14 11 12 9 10 7 8 5 6 3 4 1 2 MSB 0 LSB ■ バイトオーダリング FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。 図 3.5-2 に , バイトオーダリングのデータ配置を示します。 図 3.5-2 バイトオーダリングのデータ配置 メモリ MSB bit 31 23 15 7 LSB 0 10101010B 11001100B 11111111B 00010001B ビット 0 7 n番地 10101010B (n+1)番地 11001100B (n+2)番地 11111111B (n+3)番地 00010001B 64 第 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 65 第 3 章 CPU および制御部 3.6 メモリマップ FR ファミリのメモリマップについて説明します。 ■ メモリマップ アドレス空間は 32 ビットリニアです。 図 3.6-1 に , メモリマップを示します。 図 3.6-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 を書き換えることにより任意のア ドレスに配置可能ですが , リセットによる初期化によってこのアドレスに配置され ます。 66 第 3 章 CPU および制御部 3.7 分岐命令 FR ファミリの分岐命令について説明します。 ■ 分岐命令の概要 FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を指 定することができます。 67 第 3 章 CPU および制御部 3.7.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 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 label9 ■ 遅延スロット付き動作の動作説明 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延 スロット」とよびます ) に置かれた命令を実行した後に分岐します。 分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル となります。その代わり , 遅延スロットに有効な命令を入れることができないときは , NOP 命令を置く必要があります。 [例] ; 命令の並び ADD R1, R2 ; BRA:D LABEL ; 分岐命令 MOV R2, R3; 遅延スロット……分岐の前に実行される … LABEL : ST R3, @R4 ; 分岐先 条件分岐命令の場合 , 分岐条件が成立するかしないかにかかわらず , 遅延スロットに置 かれた命令は実行されます。 遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の 更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで 記述された順番で実行されます。 以下に , 具体的な説明をします。 1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更新しても影響を受けません。 [例] LDI:32 #Label, R0 JMP:D @R0 LDI:8 #0, … 68 ;Label に分岐 R0 ; 分岐先アドレスには影響を与えない 第 3 章 CPU および制御部 2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響 を受けません。 [例] RET:D MOV ; これより前に設定された RP の示すアドレスへ分岐 R8, RP ; リターン動作には影響を与えない … 3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。 [例] ADD #1, R0 BC:D Overflow AND CCR #0 ; フラグ変化 ; 上記の命令の実行結果により分岐 ; このフラグ更新は上記分岐命令では参照しない … 4) CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令によ り更新された内容が読み出されます。 [例] CALL:D Label MOV RP, ;RP を更新して分岐 R0 ; 上記 CALL:D の実行結果の RP を転送 … ■ 遅延スロット付き動作の制限事項 遅延スロットに置くことができる命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 1 サイクル命令 分岐命令ではないこと 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」, 「a」, 「b」, 「c」 または「d」と記載された命令です。 ステップトレーストラップ 遅延スロットがある分岐命令の実行と遅延スロットの間では , ステップトレースト ラップは発生しません。 割込み・NMI 遅延スロットがある分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理 しません。 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと き , 未定義命令は NOP 命令として動作します。 69 第 3 章 CPU および制御部 3.7.2 遅延スロットなし動作 分岐命令に遅延スロットなし動作を指定した場合について説明します。 ■ 遅延スロットなし動作の命令 以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN label9 BP label9 BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS label9 BHI label9 ■ 遅延スロットなし動作の動作説明 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。 直後の命令が分岐前に実行されることはありません。 [例] ; 命令の並び ADD R1, R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2, R3 ; 実行されない R3, @R4 ; 分岐先 … LABEL: ST 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。 遅延スロットなしの分岐命令は , 遅延スロットに適当な命令を入れることができない ために NOP を明記した遅延スロット付き分岐命令に比べて , 命令コード効率を上げる ことができます。 遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を 両立させることが可能となります。 70 第 3 章 CPU および制御部 3.8 EIT ( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断 してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), トラップ (Trap) の総称です。 例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命 令から再実行します。 割込みとは , 実行中のコンテキストとは無関係に発生する事象です。イベント要因 はハードウェアです。 トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコー ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の 命令から再実行します。 ■ EIT の特長 • 割込みに多重割込みをサポート • 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 ) • トラップ命令 (INT) • エミュレータ起動用 EIT ( ハードウェア / ソフトウェア ) ■ EIT 要因 EIT 要因として , 以下のものがあります。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) • NMI • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ <注意事項> 分岐命令の遅延スロットには , EIT に関して制約があります。詳細は , 「3.7 分岐命令」を 参照してください。 ■ EIT からの復帰 EIT から復帰するためには , RETI 命令を実行します。 71 第 3 章 CPU および制御部 EIT の割込みレベル 3.8.1 割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。 ■ EIT の割込みレベル 表 3.8-1 に , 割込みレベルを示します。 表 3.8-1 割込みレベル レベル 割込み要因 2 進数 10 進数 00000B 0 ( システム予約 ) … … … … … … 00011B 3 ( システム予約 ) 00100B 4 00101B 5 ( システム予約 ) … … … … … … 01110B 14 ( システム予約 ) 01111B 15 NMI ( ユーザ用 ) 10000B 16 割込み 10001B 17 割込み … … … … … … 11110B 30 割込み 11111B 31 ─ { 注意事項 ILM の元の値が 16 ∼ 31 のとき , この 範囲の値をプログラムにより ILM に設 定することはできません。 INTE 命令 ステップトレーストラップ ILM 設定時 , ユーザ割込み禁止 ICR 設定時 , 割込み禁止 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT 命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 72 第 3 章 CPU および制御部 ■ I フラグ I フラグは , 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 と して設けられています。 表 3.8-2 I フラグ 値 内 容 0 割込み禁止 INT 命令実行時 "0" にクリアされます ( ただし , スタック退避させる値はクリアする前の値です ) 。 1 割込み許可 割込み要求のマスク処理は , ILM の保持する値により制御されます。 ■ ILM ILM は , 割込みレベルマスク値を保持する PS レジスタ (bit20 ∼ bit16) です。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。 プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値 として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定 した値+ 16) という値が転送されます。 元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値を設定可能です。任意の値を設定するに は ST ILM 命令を使用します。 ■ 割込み・NMI に対するレベルマスク NMI および割込み要求が発生したときは , 割込み要因の割込みレベル ( 表 3.8-1 を参照 ) が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したとき はマスクされ , 要求は受理されません。 要因の割込みレベル ≧ レベルマスク値 73 第 3 章 CPU および制御部 3.8.2 割込み制御レジスタ (ICR) 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを 設定します。割込み制御レジスタ (ICR) は割込み要求入力の各々に対応して用意さ れています。割込み制御レジスタ (ICR) は I/O 空間にマッピングされており , CPU からはバスを通してアクセスされます。 ■ 割込み制御レジスタ (ICR) ビット構成 図 3.8-1 に , 割込み制御レジスタ (ICR) のビット構成を示します。 図 3.8-1 割込み制御レジスタ (ICR) のビット構成 bit 7 6 5 4 3 2 1 0 − − − − − − ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W 初期値 ---111111B [bit4] ICR4 このビットは , 常に "1" です。 [bit3 ∼ bit0] ICR3 ∼ ICR0 対応する割込み要因の割込みレベルの下位 4 ビットです。読出し / 書込み可能です。 bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。 ■ ICR マッピング 表 3.8-3 に , 割込み要因と割込み制御レジスタ , 割込みベクタを示します。 表 3.8-3 割込み要因と割込み制御レジスタ , 割込みベクタ 割込み制御レジスタ 対応する割込みベクタ 番号 割込み要因 番号 アドレス ICR00 00000440H IRQ00 IRQ01 IRQ02 ICR01 IRQ03 … … 00000441H … … ICR63 0000047FH IRQ126 IRQ127 10 進 10H 16 TBR + 3BCH 11H 17 TBR + 3B8H 12H 18 TBR + 3B4H 13H 19 TBR + 3B0H … … … … … … 3DH 142 TBR + 1C4H 8FH 143 TBR + 1C0H ・TBR 初期値 : "000FFC00H" ・詳細は「第 11 章 割込みコントローラ」を参照してください。 74 アドレス 16 進 第 3 章 CPU および制御部 3.8.3 システムスタックポインタ (SSP) システムスタックポインタ (SSP) が , EIT の受理および復帰動作時のデータ退避・復 帰用スタックを示すポインタとして使用されます。 ■ システムスタックポインタ (SSP) 図 3.8-2 に , システムスタックポインタ (SSP) のレジスタ構成を示します。 図 3.8-2 システムスタックポインタ (SSP) のレジスタ構成 bit 31 0 SSP 初期値 00000000H EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加 算されます。 リセットによる初期値は "00000000H" です。 システムスタックポインタ (SSP) は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。 ■ 割込みスタック システムスタックポインタ (SSP) により示される領域で , PC および PS の値が退避・復 帰されます。 割込み後はシステムスタックポインタ (SSP) の示すアドレスに PC, (SSP + 4) のアドレ スに PS が格納されています。 図 3.8-3 に , 割込みスタックを示します。 図 3.8-3 割込みスタック [割込み前] SSP 80000000H [割込み後] SSP 7FFFFFF8H メモリ 80000000H 7FFFFFFCH 7FFFFFF8H 80000000H 7FFFFFFCH 7FFFFFF8H PS PC 75 第 3 章 CPU および制御部 3.8.4 テーブルベースレジスタ (TBR) EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。 ■ テーブルベースレジスタ (TBR) 図 3.8-4 に , テーブルベースレジスタ (TBR) のレジスタ構成を示します。 図 3.8-4 テーブルベースレジスタ (TBR) のレジスタ構成 bit 31 0 TBR 初期値 000FFC00H テーブルベースレジスタ (TBR) と EIT 要因ごとに決められたオフセット値を加算した アドレスがベクタアドレスとなります。 リセットによる初期値は "000FFC00H" です。 ■ EIT ベクタテーブル テーブルベースレジスタ (TBR) の示すアドレスから 1K バイトの領域が EIT 用ベクタ 領域となっています。 1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は以下のと おりです。 vctadr =TBR + vctofs =TBR + (3FCH − 4 × vct) vctadr: ベクタアドレス vctofs: ベクタオフセット vct: ベクタ番号 加算結果の下位 2 ビットは常に "00B" として扱われます。 "000FFC00H" ∼ "000FFFFFH" の領域がリセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。リセットベクタとモードベク タは TBR の値を変更しても常に固定アドレス "000FFFFCH", "000FFFF8H" が使用され ます。 マスク可能要因は各品種により定義されます。MB91461/F467R におけるベクタテーブ ルは付表 B-1 / 付表 B-2 を参照してください。 76 第 3 章 CPU および制御部 3.8.5 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理 し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返 します。 EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要 因のハンドラの命令を実行します。 そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は , 次の 2 つの要素によって決まります。 • EIT 要因受理の優先順位 • 受理した場合にほかの要因をどのようにマスクするか ■ EIT 要因受理の優先度 EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ), ほかの 要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で す。 必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。 表 3.8-4 に , EIT 要因の受理の優先度とほかの要因へのマスクを示します。 表 3.8-4 EIT 要因の受理の優先度とほかの要因へのマスク 受理の優先順位 要因 ほかの要因に対するマスク 1 リセット ほかの要因は破棄されます。 2 命令ブレーク ほかの要因はキャンセル (ILM = 4) 3 INTE 命令 ほかの要因はキャンセル (ILM = 4) 4 未定義命令例外 ほかの要因はキャンセル (I フラグ= 0) 5 INT 命令 / コプロセッサ例外 I フラグ= 0 6 ユーザ割込み ILM =受理した要因のレベル 7 NMI ( ユーザ用 ) ILM = 15 8 NMI ( エミュレータ用 ) ほかの要因はキャンセル (ILM = 4) 9 ステップトレーストラップ ほかの要因はキャンセル (ILM = 4) 10 オペランドブレーク ほかの要因はキャンセル (ILM = 4) 77 第 3 章 CPU および制御部 EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し た EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。 表 3.8-5 EIT ハンドラの実行順序 ハンドラの実行順序 要因 1 リセット 2 未定義命令例外 3 命令ブレーク 4 INTE 命令 5 NMI ( エミュレータ用 ) 6 ステップトレーストラップ 7 オペランドブレーク 8 NMI ( ユーザ用 ) 9 INT 命令 / コプロセッサ例外 10 ユーザ割込み 図 3.8-5 に多重 EIT 処理を示します。 図 3.8-5 多重 EIT 処理 メインルーチン NMIのハンドラ INT命令 のハンドラ 優先度 (高) NMI発生 ①最初に実行 (低) INT命令実行 ②次に実行 78 第 3 章 CPU および制御部 3.8.6 EIT の動作 EIT の動作について説明します。 ■ EIT の動作 以下の説明で , 転送元の「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 79 第 3 章 CPU および制御部 → S フラグ 6) "0" 7) (TBR +受理した割込み要求のベクタオフセット ) → PC 割込みシーケンス終了後 , ハンドラの先頭の命令を実行する前に新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス に遷移します。 ユーザ割込み , または 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" 6) "0" → ILM 7) (TBR + 3D8H) → PC → S フラグ INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用 しないでください。また , ステップ実行中は INTE による EIT の発生はありません。 80 第 3 章 CPU および制御部 ■ ステップトレーストラップの動作 PS 中の SCR における T フラグをセットしてステップトレースの機能を許可にしてお くと , 1 命令実行ごとにトラップが発生してブレークします。 [ ステップトレーストラップ検出の条件 ] • T フラグ= 1 • 遅延分岐命令ではないとき • INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき 以上の条件が成立すると , 命令動作の切れ目でブレークします。 [ 動作 ] 1) SSP − 4 → SSP 2) PS → (SSP) 3) SSP − 4 → SSP 4) 次の命令のアドレス → (SSP) 5) "00100B" 6) "0" → ILM 7) (TBR + 3CCH) → PC → S フラグ T フラグをセットしてステップトレーストラップを許可にしたとき , ユーザ用の NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなくなり ます。 FR ファミリでは , T フラグを設定した次の命令からトラップが発生します。 ■ 未定義命令例外の動作 命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま す。 [ 未定義命令例外の検出条件 ] • 命令のデコード時に , 未定義命令であることを検出 • 遅延スロット外に置かれている ( 遅延分岐命令の直後ではない ) 以上の条件が成立すると未定義命令例外が発生してブレークします。 [ 動作 ] 1) SSP − 4 → SSP 2) PS → (SSP) 3) SSP − 4 → SSP 4) PC → (SSP) 5) "0" → S フラグ 6) (TBR + 3C4H) → PC PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 81 第 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" の状態で実行する必要があります。 82 第 3 章 CPU および制御部 3.9 動作モード FR ファミリの動作モードについて説明します。 ■ 動作モードの概要 動作モードには , バスモードとアクセスモードがあります。 ■ バスモード バスモードとは, 内部ROMの動作と外部アクセス機能の動作を制御するモードを指し, モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し ます。 ■ アクセスモード アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の WTH1, WTH0 ビットと ACR0 ∼ ACR3 (Area Configuration Register) 内の DBW0 ビット で指定します。 83 第 3 章 CPU および制御部 3.9.1 バスモード FR ファミリには , 次に示す 3 つのバスモードがあります。 詳細は「3.1 メモリ空間」を参照してください。 ■ バスモード 0 ( シングルチップモード ) 内部 I/O, F-bus RAM, F-bus ROM (FLASH) が有効で , それ以外の領域へのアクセスは無 効であるモードです。 外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機 能しません。 ( 注意事項 ) MB91461 では使用できません。 ■ バスモード 1 ( 内 ROM 外バスモード ) 内部 I/O, F-bus RAM, F-bus ROM (FLASH) が有効で , 外部アクセスが可能な領域へのア クセスは外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子として 機能します。 ( 注意事項 ) MB91461 では使用できません。 ■ バスモード 2 ( 外 ROM 外バスモード ) 内部 I/O, F-bus RAM が有効で , F-bus ROM (FLASH) へのアクセスを禁止にしてすべて のアクセスが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子と して機能します。 84 第 3 章 CPU および制御部 モード設定 3.9.2 FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作 モードの設定を行います。 ■ モード端子 MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。 表 3.9-1 にモードベクタフェッチに関する指定を示します。 表 3.9-1 モードベクタフェッチに関する指定 モード端子 モード名 リセットベク タアクセス領 域 備考 MD2 MD1 MD0 0 0 0 内 ROM モードベクタ 内部 MB91461 では設定禁止です *。 0 0 1 外 ROM モードベクタ 外部 バス幅はモードレジスタで設定 *: MD3 は常に "0" に設定してください。ただし , 表に示した設定以外は禁止とします。 <注意事項> FR ファミリでは , マルチプレックスバスによる外部モードベクタフェッチはサポートし ていません。 ■ モードレジスタ (MODR) モードベクタフェッチによってモードレジスタに書き込むデータをモードデータとよ びます。モードベクタフェッチについては , 「3.10.3 リセットシーケンス」を参照して ください。 モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定に従った動作モード で動作します。 モードレジスタは , すべてのリセット要因で設定されます。また , ユーザプログラムか らは書き込むことはできません。 <参考> 従来の FR ファミリで使用していたモードレジスタのアドレス ("000007FFH") には何も存 在しません。 エミュレータモードでは , 書換え可能です。この場合 , 8 ビット長のデータ転送命令を 使用してください。 16/32 ビット長の転送命令では書き込めません。 図 3.9-1 に , モードレジスタ (MODR) を示します。 85 第 3 章 CPU および制御部 〔レジスタ詳細説明〕 図 3.9-1 モードレジスタ (MODR) MODR bit 7 6 5 4 3 アドレス:000FFFF8H 0 0 0 0 0 2 1 0 ROMA WTH1 WTH0 初期値 XXXXXXXXB 動作モード設定ビット [bit7 ∼ bit3] 予約ビット 必ず "00000B" を設定してください。 "00000B" 以外の値を設定したときの動作は保証できません。 [bit2] ROMA : 内部 ROM イネーブルビット 内部 F-bus RAM, F-bus ROM (FLASH) 領域を有効にするかどうかを設定します。 ROMA 機 能 0 外 ROM モード 1 内 ROM モード 備 考 内蔵 F-bus RAM は有効 , 内部 ROM 領域 ("40000H" ∼ "FFFFFH") が外部領域になります。 内蔵 F-bus RAM, F-bus ROM (FLASH) が有効になります。 ( 注意事項 )MB91461 では "0" に設定してください。 [bit1, bit0] WTH1, WTH0 : バス幅指定ビット 外バスモード時のバス幅指定の設定を行います。 外バスモード時 , この値が AMD0 (CS0 領域 ) の BW1, BW0 ビットに設定されます。 WTH1 WTH0 0 0 8 ビットバス幅 外バスモード 0 1 16 ビットバス幅 〃 1 0 1 1 機 能 ― シングルチップモード 備 考 設定禁止 シングルチップモード ( 注意事項 )MB91461 ではシングルチップモードは使用できません。 86 第 3 章 CPU および制御部 <注意事項> モードベクタに設定するモードデータは , 000FFFF8H にバイトデータとして配置する必 要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採用し ていますので , 図 3.9-2 のように bit31 ∼ bit24 の最上位バイトに配置してください。 図 3.9-2 モードデータの注意事項 bit 31 誤 000FFFF8H 24 23 XXXXXXXXB bit 31 正 000FFFF8H 000FFFFCH XXXXXXXXB 24 23 MODR 16 15 XXXXXXXXB 16 15 XXXXXXXXB 8 7 XXXXXXXXB 0 MODR 8 7 0 XXXXXXXXB Reset Vector 87 第 3 章 CPU および制御部 3.10 リセット ( デバイス初期化 ) MB91461/F467R を初期化するリセット動作について説明します。 ■ リセット ( デバイス初期化 ) の概要 リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作 を停止して状態を初期化します。この状態をリセット状態とよびます。 リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア 動作を開始します。このリセット状態から動作開始にいたる一連の動作をリセット シーケンスとよびます。 88 第 3 章 CPU および制御部 3.10.1 リセットレベル MB91461/F467R のリセット動作は , 2 種類のレベルに分かれており , それぞれ発生 要因および初期化の内容が異なります。 ここでは , 各リセットレベルについて説明します。 ■ 設定初期化リセット (INIT) すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび ます。 設定初期化リセット (INIT) により初期化される主な内容は , 以下のとおりです。 〔設定初期化リセット (INIT) による初期化内容〕 デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 ) 外部バスの CS0 領域に関するすべての設定 その他端子状態に関するすべての設定 動作初期化リセット (RST) で初期化されるすべての内容 詳細はそれぞれの機能の説明を参照してください。 なお , 電源投入後は必ず INITX 端子にて設定初期化リセット (INIT) をかけてください。 ■ 動作初期化リセット (RST) プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ びます。 設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。 動作初期化リセット (RST) により初期化される主な内容は , 以下のとおりです。 〔動作初期化リセット (RST) による初期化内容〕 プログラム動作 CPU および内部バス 周辺回路のレジスタ設定値 I/O ポート設定 外部バスの CS0 領域に関するすべての設定 詳細はそれぞれの機能の説明を参照してください。 89 第 3 章 CPU および制御部 3.10.2 リセット要因 MB91461/F467R における各リセット発生要因と発生するリセットレベルについて 説明します。 過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことで 確認できます ( 各説明にあるレジスタ , フラグの詳細な説明は , 「3.11.5 クロック 生成制御部のブロックダイヤグラム」および「3.11.6 クロック生成制御部のレジス タ詳細説明」を参照 ) 。 ■ INITX 端子入力 ( 設定初期化リセット端子 ) 外部端子の INITX 端子は , 設定初期化リセット端子として機能します。 本端子へ"L"レベル入力を行っている間, 設定初期化リセット(INIT)要求が発生します。 本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ れます。 本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ ジスタ ) 中の bit15:INIT ビットが設定されます。本端子要求による設定初期化リセット (INIT) は , すべてのリセット要因中で最強のものであり , すべての入力・動作・状態よ りも優先されます。 なお , 電源投入直後は必ず INITX 端子にて設定初期化リセット (INIT) をかけてくださ い。また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INITX 端子 への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INITX 端子による INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。 発生要因 : 外部 INITX 端子への "L" レベル入力 解除要因 : 外部 INITX 端子への "H" レベル入力 発生レベル : 設定初期化リセット (INIT) 対応フラグ : bit15:INIT ■ STCR:SRST ビット書込み ( ソフトウェアリセット ) STCR ( スタンバイ制御レジスタ ) 中の bit4:SRST ビットに "0" が書き込まれると , ソフ トウェアリセット要求が発生します。 ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。 要求が受け付けられて動作初期化リセット (RST) が発生するとソフトウェアリセット 要求は解除されます。 ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR ( リセット要因レジスタ ) 中の bit11:SRST ビットが設定されます。 ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース カウンタ制御レジスタ ) 中の bit7:SYNCR ビットが設定されている場合 ( 同期リセット モード ) , すべてのバスアクセスが停止してからでないと発生しません。 このため, バスの使用状況によっては動作初期化リセット (RST)が発生するまでに長時 間を要する場合があります。 90 第 3 章 CPU および制御部 発生要因 : STCR (スタンバイ制御レジスタ ) 中のbit4:SRSTビットへの "0"書込み 解除要因 : 動作初期化リセット (RST) の発生 発生レベル : 動作初期化リセット (RST) 対応フラグ : bit11:SRST ■ ウォッチドッグリセット RSRR ( ウォッチドッグタイマ制御レジスタ ) に対して書込みを行うと , ウォッチドッ グタイマが起動します。その後 , RSRR 中の bit9, bit8:WT1, WT0 ビットにて設定した周 期内に WPR ( ウォッチドッグリセット発生延期レジスタ ) への "A5H"/"5AH" 書込みが 行われないとウォッチドッグリセット要求が発生します。 ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付 けられて設定初期化リセット (INIT) が発生するか , 動作初期化リセット (RST) が発生 するとウォッチドッグリセット要求は解除されます。 ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レジスタ ) 中の bit13:WDOG ビットが設定されます。 なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 では , 発振安定待ち時間の設定は初期化されません。 発生要因 : ウォッチドッグタイマの設定周期経過 解除要因 : 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生 発生レベル : 設定初期化リセット (INIT) 対応フラグ : bit13:WDOG ■ ハードウェアウォッチドッグリセット INITX 解除後 , ハードウェアウォッチドッグタイマは直ちに動作を開始します。一定期 間タイマがクリアされず , カウンタがオーバフローすると設定初期化リセットが発行 されます。 発生要因 : ハードウェアウォッチドッグタイマの設定周期経過 解除要因 : 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生 発生レベル : 設定初期化リセット (INIT) 対応フラグ : bit10:HWDCS 91 第 3 章 CPU および制御部 リセットシーケンス 3.10.3 リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。 リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。 各リセットレベルにおけるリセットシーケンスの動作内容について説明します。 ■ 設定初期化リセット (INIT) 解除シーケンス 設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し ます。 1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移 2) 発振安定待ち時間 (STCRのbit3, bit2:OS1, OS0にて設定) の間, 動作初期化リセッ ト (RST) 状態を保持 , 内部クロック停止 3) 動作初期化リセット (RST) 状態 , 内部クロック動作開始 4) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 5) 000FFFF8H 番地よりモードベクタの読出し 6) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み 7) 000FFFFCH 番地よりリセットベクタの読出し 8) PC ( プログラムカウンタ ) へリセットベクタの書込み 9) PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始 ■ 動作初期化リセット (RST) 解除シーケンス 動作初期化リセット(RST)要求が解除されると, デバイスは以下の動作を順に実行しま す。 1) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 2) 000FFFF8H 番地よりモードベクタの読出し 3) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み 4) 000FFFFCH 番地よりリセットベクタの読出し 5) PC ( プログラムカウンタ ) へリセットベクタの書込み 6) PC ( プログラムカウンタ ) の示す番地よりプログラム動作開始 <注意事項> STOP およびシャットダウン中以外で発生したリセットについては , これにより RAM の 内容が破壊される場合があります。 92 第 3 章 CPU および制御部 3.10.4 発振安定待ち時間 デバイスの原発振が停止していたか , その可能性がある状態から復帰したとき , 自動 的に発振安定待ち状態に遷移します。 本機能により発振開始後の安定していない発振器出力を使用しないようにします。 発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー スカウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定 待ち時間の経過を待ちます。 発振安定待ち動作の詳細について説明します。 ■ 発振安定待ち発生要因 発振安定待ち発生要因を以下に示します。 ● 設定初期化リセット (INIT) の解除時 各種要因による設定初期化リセット (INIT) が解除された直後に発振安定待ち状態へ遷 移します。 発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。 ● ストップモードからの復帰時 ストップモードが解除された直後に発振安定待ち状態へ遷移します。ただし , 設定初期 化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT) 状態に遷 移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ遷移します。 発振安定待ち時間の経過後は , ストップモードが解除された要因に対応した状態へと 遷移します。 有効な外部割込み要求入力 (NMI を含む ) による復帰時 : 通常動作状態へ遷移します。 設定初期化リセット (INIT) 要求による復帰時 : 動作初期化リセット (RST) 状態へ遷移 します。 ● PLL 選択時の異常状態の発生からの復帰時 PLL をソースクロックとして動作しているときに PLL 制御に何らかの異常 * が発生し た場合 , PLL ロックタイムの確保のために自動的に発振安定待ち時間に遷移します。 発振安定待ち時間の経過後は , 通常動作状態へ遷移します。 * : PLL 使用中の逓倍率変更や PLL 動作許可ビット化けの発生など。 ● ハードウェアウォッチドッグリセット発生時 ハードウェアウォッチドッグリセットが発生した場合 , 原発振クロックの 1024 サイク ルの間 , 内部リセットが発行されます。このリセットにより , STCR レジスタの OS1, OS0 ビットが "0" ( 初期値 ) になるため , 発振安定待ちは行いません。 93 第 3 章 CPU および制御部 ● シャットダウンモードからの復帰時 シャットダウンモードが解除された直後に発振安定待ち状態へ遷移します。ただし , 設 定初期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT) 状 態に遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ遷移しま す。 発振安定待ち時間は , 外部発振器または内蔵発振回路からの信号を 218 分周した時間が 適用されます。 ■ 発振安定待ち時間の選択 発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計測されます。 発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ ウンタはいったん初期化された後 , 発振安定待ち時間の計測を開始します。 STCR ( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 ビットにより , 発振安定待ち時 間を 4 種類のうちから選択して設定することができます。 いったん選択した設定は , 外部 INITX 端子による設定初期化リセット (INIT), シャット ダウンモードからの復帰 , ハードウェアウォッチドッグリセットで初期化されます。そ れ以外のウォッチドッグリセットによる設定初期化リセット (INIT) や動作初期化リ セット (RST) では , リセット発生以前に設定した発振安定待ち時間が保持されます。 94 第 3 章 CPU および制御部 3.10.5 リセット動作モード 動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー ドの 2 つのモードがあり , TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR ビットによってどちらのモードで動作するかを設定します。 本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。 設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。 各モード動作について説明します。 ■ 通常リセット動作 動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状態 への遷移を行う動作を通常リセット動作とよびます。 本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動 作状態にかかわらず , 即時にリセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結 果を保証できません。しかし , それら要求を確実に受け付けることが可能です。 TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR ビットが "0" のとき , 通常リセットモードとなります。 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。 ■ 同期リセット動作 動作初期化リセット(RST)要求が発生した際に, すべてのバスアクセスが停止してから 動作初期化リセット (RST) 状態への遷移を行う動作を同期リセット動作とよびます。 本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行 われている間は , リセット (RST) 状態への遷移は行いません。 上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され ます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため , すべてのバスアクセスの結果を保証できます。 しかし , バスアクセスが何らかの理由により停止しない場合 , その間 , 各要求を受け付 けることができなくなります ( このような場合でも , 設定初期化リセット (INIT) は直ち に有効となります ) 。 バスアクセスが停止しない要因には以下のものがあげられます。 95 第 3 章 CPU および制御部 <参考> • DMA コントローラについては , 各要求の受付けにより転送停止を行いますので , 各状 態への遷移を遅延させることはありません。 • TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR ビットが "1" のとき , 同 期リセットモードとなります。 • 同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制 御レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。 96 第 3 章 CPU および制御部 3.11 クロック生成制御 クロック生成制御について説明します。 ■ 内部動作クロックの生成 MB91461/F467R の内部動作クロックは , 以下のようにして生成されます。 ソースクロック : X0/X1 端子または内蔵発振回路からの信号を 2 分周したクロックです。 ベースクロックの生成 : ソースクロックの 2 分周クロックまたは PLL 発振クロックのいずれかを選択し て基本クロックを生成します。 各内部クロックの生成 : ベースクロックを分周し , 各部に供給する 4 種類の動作クロックを生成します。 以降 , 各クロック生成とその制御について説明します。 各説明にあるレジスタ , フラグの詳細な説明は ,「3.11.5 クロック生成制御部のブロッ クダイヤグラム」および「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照し てください。 ■ クロックの選択 ソースクロックの選択について説明します。 外部発振端子である X0/X1 端子入力に発振子を接続し , 内蔵発振回路にて発振し , これ を 2 分周した信号がソースクロックとなります。 外部バスクロックを含むすべてのクロック供給源は , MB91461/F467R 自身となります。 内部ベースクロックは , 以下のクロックのうちから選択して生成します。 • ソースクロックを 2 分周したもの • 内蔵発振回路または X0/X1 端子から直接入力されたクロックを PLL で逓倍したもの クロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行いま す。 97 第 3 章 CPU および制御部 3.11.1 PLL 制御 メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍 率設定を制御することが可能です。 各制御は , CLKR ( クロックソース制御レジスタ ) , PLLDIVM, PLLDIVN( 逓倍率設定 レジスタ ) の設定によって行います。以下に , 各制御内容について説明します。 ■ PLL 動作許可 メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の bit10: PLL1EN ビットの設定によって行います。 PLL1EN は , 設定初期化リセット (INIT) 後は "0" に初期化され , PLL の発振動作は停止 しています。停止中は , クロックソースとして PLL 出力を選択することはできません。 プログラム動作を開始したら , まず , クロックソースとして使用する PLL の逓倍率を 設定しかつ動作許可した後 , PLL のロック待ち時間の経過後にクロックを切り換えて ください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用するこ とをお奨めします。 ベースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること はできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する際 などで PLL を停止させたい場合は , いったんベースクロックをソースクロックの 2 分 周したものに選択し直した後 , PLL を停止させてください。 なお , STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットや bit1:OSCD2 ビットに より , ストップモード中の発振が停止するように設定してある場合 , PLL はストップ モード遷移時に自動的に停止しますので , 動作停止を改めて設定する必要はありませ ん。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作を開始します。 ストップモード中の発振が停止しないように設定してある場合は , PLL は自動では停 止しません。この場合は , 必要であればストップモード移行前にあらかじめ動作停止を 設定してください。 ■ PLL 逓倍率 PLL の逓倍率は , PLLDIVM/PLLDIVN レジスタによって設定します。 どちらのレジスタも設定初期化リセット(INIT)後は全ビット"0"に初期化されています。 〔PLL 逓倍率設定〕 PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許 可する前に設定してください。逓倍率変更後は , ロック待ち時間の経過後にクロッ クを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイマ割 込みを使用することをお奨めします。 動作中に PLL 逓倍率設定を変更する場合 , いったんクロックを該当 PLL 以外に切り 換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間の経過 後にクロックを切り換えてください。 98 第 3 章 CPU および制御部 3.11.2 発振安定待ち・PLL ロック待ち時間 ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち 時間が必要となります (「3.10.4 発振安定待ち時間」を参照 ) 。 PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待 ち時間が必要となります。 各種ケースにおける待ち時間について説明します。 ■ 電源投入後の待ち時間 電源投入後は , INITX 端子入力 ( 設定初期化リセット端子 ) へ "L" レベルを入力する必 要があります。この状態においては , PLL は動作許可されていないため , ロック待ち時 間はここでは考慮する必要がありません。 ■ 設定初期化後の待ち時間 設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで は , 設定された発振安定待ち時間を内部的に発生します。 この状態において , PLL は動作許可されていないため , ロック待ち時間はここでは考慮 する必要がありません。 ■ PLL 動作許可後の待ち時間 プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過 しないとその PLL 出力を使用してはいけません。 クロックソースとして PLL を選択していなければ , ロック待ち時間中もプログラム動 作は実行可能です。 この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用してください。 ■ PLL 逓倍率変更後の待ち時間 プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち 時間が経過しないとその PLL 出力を使用してはいけません。 クロックソースとして PLL を選択していなければ , ロック待ち時間中もプログラム動 作は実行可能です。 この際の PLL ロック待ち時間に , タイムベースタイマ割込みを使用できます。 99 第 3 章 CPU および制御部 ■ ストップモード復帰後の待ち時間 プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて 設定された時間の発振安定待ち時間を内部的に発生します。 ストップモード中に , クロックソースのクロック用発振回路を停止させる設定であっ た場合は , その発振回路の発振安定待ち時間と PLL のロック待ち時間のうち長い方の 時間が必要となります。ストップモードに遷移させる前に , あらかじめその発振安定待 ち時間を設定しておいてください。 ストップモード中に , クロックソースのクロック用発振回路を停止させない設定で あった場合は , PLL は自動で動作を停止しません。したがって , PLL を停止させない限 り発振安定待ち時間は必要となりません。ストップモードに遷移させる前に , あらかじ め発振安定待ち時間を最小値に設定してください。 100 第 3 章 CPU および制御部 3.11.3 クロック分配 選択されたクロックから生成されたベースクロックを元に , 各機能用の動作クロッ クをそれぞれ作成します。 内部動作クロックは全部で 3 種類あり , それぞれが独立に分周比を設定することが できます。 各内部動作クロックについて説明します。 ■ CPU クロック (CLKB) CPU と内部メモリおよび内部バスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • CPU • 内蔵 RAM • ビットサーチモジュール • I-bus, D-bus, X-bus, F-bus • DMA コントローラ • DSU 動作可能な上限周波数は 80MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 ■ 周辺クロック (CLKP) 周辺回路およびペリフェラルバスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • ペリフェラル ( 周辺 ) バス • クロック制御部 ( バスインタフェース部のみ ) • 割込みコントローラ • 周辺 I/O ポート • I/O ポートバス • 外部割込み入力 • UART • 16 ビットタイマ • A/D コンバータ • フリーランタイマ • リロードタイマ • アップダウンカウンタ • インプットキャプチャ • アウトプットコンペア • I2C インタフェース • PPG 101 第 3 章 CPU および制御部 動作可能な上限周波数は 20MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 ■ 外部バスクロック (CLKT) 外部拡張バスインタフェースに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • 外部拡張バスインタフェース • 外部クロック出力 動作可能な上限周波数は 40MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 102 第 3 章 CPU および制御部 クロック分周 3.11.4 各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定するこ とができます。この機能により , 各回路に最適な動作周波数を設定することができ ます。 ■ 分周比の設定 分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分 周設定レジスタ 1) にて設定します。 各レジスタには各クロックに対応する 4 ビットずつの設定ビットがあり , ( レジスタ設 定値+ 1) がそのクロックのベースクロックに対する分周比となります。分周比設定が 奇数であっても , 常にデューティ比は 50% となります。 設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効 となります。 ■ 分周比設定の初期化 分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の 設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。 初期状態では , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , クロッ クソースを高速なものに変更する前に必ず分周比の設定を行ってください。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。クロックソースの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特に , クロックソース選択の変更設定との順序を間違えないように注意 してください。 103 第 3 章 CPU および制御部 クロック生成制御部のブロックダイヤグラム 3.11.5 図 3.11-1 に , クロック生成制御部のブロックダイヤグラムを示します。 図中のレジスタの詳細な説明は , 「3.11.6 クロック生成制御部のレジスタ詳細説明」 を参照してください。 ■ クロック生成制御部のブロックダイヤグラム 図 3.11-1 クロック生成制御部のブロックダイヤグラム 外部バスクロック分周 CPUクロック 周辺クロック 外部バスクロック CLKRレジスタ 発振回路 セレクタ X0 X1 セレクタ 周辺クロック分周 停止制御 CPUクロック分周 セレクタ DIVR0,DIVR1レジスタ セレクタ R-bus [クロック生成部] 1/2 ソースクロック セレクタ 1/2 PLL ベースクロック ハードウェア ウォッチドッグ X0A X1A 発振回路 CR発振回路 [ストップ・スリープ制御部] 内部割込み ストップ状態 STGRレジスタ 内部リセット 状態遷移 制御回路 スリープ状態 リセット発生 F/F リセット発生 F/F 内部リセット(RST) 内部リセット(INIT) [リセット要因回路] INITX端子 RSRRレジスタ MB91461の場合 MB91F467Rの場合 [ ウォッチドッグ制御部] WPRレジスタ ウォッチドッグF/F タイムベースカウンタ カウンタクロック CTBRレジスタ セレクタ TBCRレジスタ 割込み許可 104 オーバフロー検出F/F タイムベースタイマ 割込み要求 第 3 章 CPU および制御部 クロック生成制御部のレジスタ詳細説明 3.11.6 クロック生成制御部のレジスタについて説明します。 ■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ 図 3.11-2 に , リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジ スタ構成を示します。 図 3.11-2 リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジスタ構成 RSRR bit アドレス : 000480H リード / ライト 初期値 (INITX 端子 ) 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 8 INIT (R) 1 * X 予約 (R) X X X WDOG (R) 0 * X 予約 (R) X X X SRST (R) 0 X * 予約 (R) X X X WT1 (R/W) 0 0 0 WT0 (R/W) 0 0 0 *: 要因により初期化されます。 X: 初期化されません。 直前に発生したリセットの要因の保持 , およびウォッチドッグタイマの周期設定 および起動制御を行うレジスタです。 本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す までの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複数の フラグが設定されることになります。 本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ ト (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。 [bit15] INIT : 外部リセット発生フラグ INITX 端子入力によるリセット (INIT) の発生の有無を示します。 値 内 容 0 INITX 端子入力による INIT は発生していません。 1 INITX 端子入力による INIT が発生しました。 読出し直後に "0" にクリアされます。 読出し可能で , 書込みはビット値に影響を与えません。 電源投入時には , 8ms 以上 INITX 端子へ "L" レベルを印加してください。それ以下 の場合ではフラグが設定されない場合があります。 [bit14] 予約 : 予約ビット 予約ビットです。 105 第 3 章 CPU および制御部 [bit13] WDOG : ウォッチドッグリセット発生フラグ ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。 値 内 容 0 ウォッチドッグタイマによる INIT は発生していません。 1 ウォッチドッグタイマによる INIT が発生しました。 電源投入時の INITX 端子入力によるリセット (INIT), または読出し直後に "0" にク リアされます。 読出し可能で , 書込みはビット値に影響を与えません。 [bit12] 予約 : 予約ビット 予約ビットです。 [bit11] SRST : ソフトウェアリセット発生フラグ STCRレジスタのSRSTビット書込み (ソフトウェアリセット) によるリセット(RST) の発生の有無を示します。 値 内 容 0 ソフトウェアリセットによる RST は発生していません。 1 ソフトウェアリセットによる RST が発生しました。 電源投入時の INITX 端子入力によるリセット (INIT), または読出し直後に "0" にク リアされます。 読出し可能で , 書込みはビット値に影響を与えません。 [bit10] 予約 : 予約ビット 予約ビットです。 106 第 3 章 CPU および制御部 [bit9, bit8] WT1, WT0 : ウォッチドッグタイマインターバル時間選択ビット ウォッチドッグタイマの周期を設定します。 本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の うちから選択します。 ウォッチドッグリセットの 発生を抑止するために最低限 必要な WPR への書込み間隔 WPR への最終 5AH 書込みか らウォッチドッグリセットが 発生するまでの時間 WT1 WT0 0 0 φ × 216 ( 初期値 ) φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 (φ はベースクロックの周期 ) リセット (RST) により "00B" に初期化されます。 読出し可能です。書込みはリセット (RST) 後 1 回のみ有効で , それ以降の書込みは 無効です。 107 第 3 章 CPU および制御部 ■ STCR : スタンバイ制御レジスタ 図 3.11-3 に , スタンバイ制御レジスタのレジスタ構成を示します。 図 3.11-3 スタンバイ制御レジスタのレジスタ構成 STCR bit アドレス : 000481H 7 6 5 4 3 2 1 0 HIZ SRST OS1 OS0 予約 OSCD1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) STOP SLEEP リード / ライト (R/W) 初期値 (INITX 端子 ) 0 0 1 1 0 0 1 1 初期値 (INIT) 0 0 1 1 X X 1 1 初期値 (RST) 0 0 X 1 X X X X デバイスの動作モードを制御するレジスタです。 ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を 行います。 <注意事項> スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタの bit8: SYNCS ビットにて設定します ) を使用した上で , 以下のシーケンス を必ず使用してください。 (LDI#value_of_standby,R0) ;value_of_standby は , STCR へのライトデータ (LDI#_STCR,R12) ;_STCR は , STCR のアドレス (481H) STB ;スタンバイ制御レジスタ (STCR) への書込み R0,@R12 LDUB @R12,R0 ;同期スタンバイのための STCR リード LDUB @R12,R0 ;もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP [bit7] STOP : STOP モードビット ストップモードへの遷移を指示します。bit6:SLEEP ビットと本ビット両方に "1" を 書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。 値 内 容 0 ストップモードへの遷移は行いません。[ 初期値 ] 1 ストップモードへ遷移します。 リセット (RST) およびストップ復帰要因により "0" に初期化されます。 読出しおよび書込みが可能です。 108 第 3 章 CPU および制御部 [bit6] SLEEP : SLEEP モードビット スリープモードへの遷移を指示します。bit7:STOP ビットと本ビット両方に "1" を書 き込んだ場合は, bit7:STOPビットの方が優先となり, ストップモードへ遷移します。 値 内 容 0 スリープモードへの遷移は行いません。[ 初期値 ] 1 スリープモードへ遷移します。 リセット (RST) およびスリープ復帰要因により "0" に初期化されます。 読出しおよび書込みが可能です。 [bit5] HIZ : Hi-Z モードビット ストップモード時の端子状態を制御します。 値 内 容 0 ストップモード遷移前の端子状態を維持します。 1 ストップモード中は端子出力をハイインピーダンス状態にします。 [ 初期値 ] リセット (INIT) により "1" に初期化されます。 読出しおよび書込みが可能です。 [bit4] SRST : ソフトウェアリセットビット ソフトウェアリセット (RST) の発行を指示します。 値 内 容 0 ソフトウェアリセットを発行します。 1 ソフトウェアリセットの発行は行いません。[ 初期値 ] リセット (RST) により "1" に初期化されます。 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。 <注意事項> 同期モードのソフトウェアリセットの使用に関しては TBCR ( タイムベースカウンタ制御 レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。 109 第 3 章 CPU および制御部 [bit3, bit2] OS1, OS0 : 発振安定待ち時間選択ビット リセット (INIT) 後 , およびストップモード復帰後などにおける , 発振安定待ち時間 を設定します。 本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選 択します。 MB91461 OS1 OS0 発振安定 待ち時間 0 0 0 MB91F467R 原発振 18MHz の場合 原発振 4MHz の場合 原発振 32.768kHz の場合 φ × 21 [ 初期値 ] 0.44 µs 1µs 61µs 1 φ × 211 0.46 ms 1ms 62.5µs 1 0 φ × 216 14.6 ms 32ms 2s 1 1 φ × 222 0.93 s 2s 128s φ はベースクロックの周期 INITX 端子入力によるリセット (INIT) により "00B" に初期化されます。 読出しおよび書込みが可能です。 [bit1] 予約 : 予約ビット 予約ビットです。 [bit0] OSCD1 : 発振停止ビット ストップモード時での発振回路の発振停止を制御します。 値 内 容 0 ストップモード中も発振は停止しません。 1 ストップモード中は発振を停止します。[ 初期値 ] リセット (INIT) により "1" に初期化されます。 読出しおよび書込みが可能です。 110 第 3 章 CPU および制御部 ■ TBCR : タイムベースカウンタ制御レジスタ 図 3.11-4 に , タイムベースカウンタ制御レジスタのレジスタ構成を示します。 図 3.11-4 タイムベースカウンタ制御レジスタのレジスタ構成 TBCR bit アドレス : 000482H リード / ライト 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 TBIF R/W TBIE R/W TBC2 R/W TBC1 R/W TBC0 R/W 10 9 8 予約 R/W 0 0 X X X X 0 0 0 0 X X X X X X SYNCR SYNCS R/W R/W タイムベースタイマ割込みなどを制御するレジスタです。 タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行います。 [bit15] TBIF : タイムベースタイマ割込みフラグ タイムベースタイマ割込みフラグです。 タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11:TBC2 ∼ TBC0 ビットにて設定 ) を経過したことを示します。 bit14:TBIE ビットにより割込み発生が許可 (TBIE = 1) されているときに , 本ビット が "1" になるとタイムベースタイマ割込み要求が発生します。 クリア要因 命令による "0" の書込み セット要因 設定されたインターバル時間の経過 ( タイムベースカウンタ出力の立下りエッジ検出 ) リセット (RST) により "0" に初期化されます。 読出しおよび書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込んで もビット値は変化しません。 リードモディファイライト (RMW) 系命令での読出し値は , 常に "1" となります。 [bit14] TBIE : タイムベースタイマ割込み許可ビット タイムベースタイマ割込み要求出力許可ビットです。 タイムベースカウンタのインターバル時間の経過による割込み要求出力を制御し ます。本ビットが "1" のときに , bit15:TBIF ビットが "1" になるとタイムベースタイ マ割込み要求が発生します。 値 内 容 0 タイムベースタイマ割込み要求出力禁止 [ 初期値 ] 1 タイムベースタイマ割込み要求出力許可 リセット (RST) により "0" に初期化されます。 読出しおよび書込みが可能です。 111 第 3 章 CPU および制御部 [bit13 ∼ bit11] TBC2, TBC1, TBC0 : タイムベースタイマカウンタ選択ビット タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定 します。 本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選 択します。 TBC2 TBC1 TBC0 タイマインターバル時間 原発振 18MHz かつ PLL が 4 逓倍の場合 0 0 0 φ × 211 28.4 µs 0 0 1 φ × 212 56.9 µs 0 1 0 φ × 213 114 µs 0 1 1 φ × 222 58.3 ms 1 0 0 φ × 223 117 ms 1 0 1 φ × 224 233 ms 1 1 0 φ × 225 466 ms 1 1 1 φ × 226 932 ms φ はベースクロックの周期 初期値は不定です。割込みを許可する前に必ず値を設定してください。 読出しおよび書込みが可能です。 [bit10] 予約 : 予約ビット 予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。 [bit9] SYNCR : 同期リセットイネーブルビット 同期リセット動作許可ビットです。 動作初期化リセット (RST) 要求が発生した際に , 直ちにリセット (RST) を行う通常 リセット動作を行うか , すべてのバスアクセスが停止してから動作初期化リセット (RST) を行う同期リセット動作を行うかを選択します。 値 内 容 0 通常リセット動作 [ 初期値 ] 1 同期リセット動作 リセット (INIT) により "0" に初期化されます。 読出しおよび書込みが可能です。MB91461/F467R では同期リセットのみをサポート しているため, このレジスタに書き込む場合はこのビットに"1"を設定してください。 112 第 3 章 CPU および制御部 <注意事項> 同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジスタ ) の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。 • 割込み許可フラグ (I-Flag) を割込み禁止 (I/Flag = 0) に設定する。 • NMI を使用しない。 [bit8] SYNCS : 同期スタンバイ許可ビット 同期スタンバイ動作許可ビットです。 スタンバイ要求 ( スリープモード要求またはストップモード要求 ) を発生する際 , STCR レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバ イ動作を行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読 み出すことによってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択し ます。 値 内 容 0 通常スタンバイ動作 [ 初期値 ] 1 同期スタンバイ動作 リセット (INIT) により "0" に初期化されます。 <注意事項> スタンバイモードに遷移する際には , 必ず "1" を設定し , 同期スタンバイ動作としてくだ さい。 113 第 3 章 CPU および制御部 ■ CTBR : タイムベースカウンタクリアレジスタ 図 3.11-5 に , タイムベースカウンタクリアレジスタのレジスタ構成を示します。 図 3.11-5 タイムベースカウンタクリアレジスタのレジスタ構成 CTBR bit アドレス : 000483H リード / ライト 初期値 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (W) X (W) X (W) X (W) X (W) X (W) X (W) X (W) X タイムベースカウンタを初期化するためのレジスタです。 本レジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にタイムベー スカウンタを全ビット "0" にクリアします。"A5H" 書込みと "5AH" 書込みの間の時間 制限はありませんが, "A5H"書込みの後に"5AH"以外のデータを書き込むと, 再度"A5H" を書き込まないと "5AH" を書き込んでもクリア動作を行いません。 本レジスタの読出し値は不定です。 <注意事項> 本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。 114 第 3 章 CPU および制御部 ■ CLKR : クロックソース制御レジスタ 図 3.11-6 に , クロックソース制御レジスタのレジスタ構成を示します。 図 3.11-6 クロックソース制御レジスタのレジスタ構成 CLKR bit アドレス : 000484H 15 予約 (R/W) リード / ライト 0 初期値 (INIT) X 初期値 (RST) 14 13 予約 (R/W) 0 X 予約 (R/W) 0 X 12 11 10 9 8 予約 SCKEN PLL1EN CLKS1 CLKS0 (R/W) (R/W) (R/W) (R/W) (R/W) 0 0 0 0 0 X X X X X システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ です。本レジスタにてクロックソースを 2 種類のうちから選択します。 [bit15 ∼ bit12] 予約 : 予約ビット 予約ビットです。必ず "0" を設定してください。 [bit11] SCKEN : サブクロック選択許可ビット サブクロックの選択を許可するビットです。サブクロックがクロックソースとして 選択されている (CLKS1, CLKS0 = 11B) 間にサブクロック選択許可ビット (SCKEN) を変更することは , 禁止されています ( 結果は保証されません ) 。メインクロック が選択されている場合以外は , 設定を変更しないでください。( クロックソースの変 更方法については , クロックソース選択ビット (CLKS1, CLKS0) の説明を参照して ください。) このビットは MB91461 には搭載されていません。MB91461 の場合は 予約ビットとなります。 値 内 容 0 サブクロック選択禁止 [ 初期値 ] 1 サブクロック選択許可 [bit10] PLL1EN : PLL 許可ビット PLL の動作許可ビットです。本ビットは , クロックソースとして PLL を選択してい る間は書換えをしないでください。また , 本ビットが "0" の間はクロックソースと して PLL を選択しないでください (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。 STCR の bit0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって も PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。 値 内 容 0 PLL 停止 [ 初期値 ] 1 PLL 動作許可 リセット (INIT) により "0" に初期化されます。読出しおよび書込みが可能です。 115 第 3 章 CPU および制御部 [bit9, bit8] CLKS1, CLKS0 : クロックソース選択ビット 使用するクロックソースを設定します。 本ビットに書き込む値により , クロックソースを下表に示す 2 種類のうちから選択 します。 なお , bit9:CLKS1 が "1" の間は bit8:CLKS0 の値を変更することができません。 変更可能な組合せ 変更不可能な組合せ 00B → 01B または 10B 00B → 11B 01B → 11B または 00B 01B → 10B 10B → 00B 10B → 01B または 11B 11B → 01B 11B → 00B または 10B CLKS1 CLKS0 0 0 X0/X1 からの原発振入力の 4 分周 [ 初期値 ](MB91461 の場合 ) X0/X1 からの原発振入力の 2 分周 [ 初期値 ](MB91F467R の場合 ) 0 1 X0/X1 からの原発振入力の 4 分周 (MB91461 の場合 ) X0/X1 からの原発振入力の 2 分周 (MB91F467R の場合 ) 1 0 PLL( メインクロック ) 1 1 サブクロック (MB91461 では設定禁止 ) クロックソース設定 リセット (INIT) により "00B" に初期化されます。 読出しおよび書込みが可能です。 116 第 3 章 CPU および制御部 ■ WPR : ウォッチドッグリセット発生延期レジスタ 図 3.11-7 に , ウォッチドッグリセット発生延期レジスタのレジスタ構成を示します。 図 3.11-7 ウォッチドッグリセット発生延期レジスタのレジスタ構成 WPR bit アドレス : 000485H リード / ライト 初期値 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 (W) X (W) X (W) X (W) X (W) X (W) X (W) X (W) X ウォッチドッグリセットの発生を延期するためのレジスタです。 本レジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にウォッチドッ グタイマの検出用 F/F をクリアし , ウォッチドッグリセットの発生を延期します。 "A5H"書込みと"5AH"書込みの間の時間制限はありませんが, "A5H"書込みの後に"5AH" 以外のデータを書き込んだ場合 , 再度 "A5H" を書き込まないと "5AH" を書き込んでも クリア動作を行いません。 以下に , ウォッチドッグリセット発生に関する時間間隔と RSRR レジスタの値の関係 を示します。 この期間内に両データの書込みを終えないとウォッチドッグリセットを発生します。 ウォッチドッグリセット発生までの時間や発生抑止のために必要な書込み間隔は , RSRR レジスタの WT1 (bit9) , WT0 (bit8) の状態によって変化します。 RSRR のウォッチドッグリセッ トの発生を抑止するために最低 限必要な WPR への書込み間隔 WPR への最終 "5AH" 書込みから WT1 WT0 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 が動作していない間は自動的にクリアを 行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ れます。 ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合ではウォッ チドッグリセットは延期されませんので , 長期間外部バスをホールドする場合はス リープモードにしてからホールド要求 (BRQ) を入力してください。 本レジスタの読出し値は不定です。 117 第 3 章 CPU および制御部 ■ DIVR0 : 基本クロック分周設定レジスタ 0 図 3.11-8 に , 基本クロック分周設定レジスタ 0 のレジスタ構成を示します。 図 3.11-8 基本クロック分周設定レジスタ 0 のレジスタ構成 DIVR0 bit 15 アドレス : 000486H B3 リード / ライト (R/W) 0 初期値 (INIT) X 初期値 (RST) 14 13 12 11 10 9 8 B2 (R/W) 0 X B1 (R/W) 0 X B0 (R/W) 0 X P3 (R/W) 0 X P2 (R/W) 0 X P1 (R/W) 1 X P0 (R/W) 1 X 各内部クロックのベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , CPU および内部バスのクロック (CLKB), 周辺回路 , およびペリフェ ラルバスクロック (CLKP) の分周比の設定を行います。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。クロックソースの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特にクロックソース選択の変更設定との順序を間違えないように注意し てください。 本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周 比が有効となります。 118 第 3 章 CPU および制御部 [bit15 ∼ bit12] B3, B2, B1, B0 : CLKB 分周選択ビット CPU クロック (CLKB) のクロック分周比設定ビットです。CPU と内部メモリおよび 内部バスのクロック (CLKB) のクロック分周比を設定します。 本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに 対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 80 MHz ですので , これを超える周波数になる分周比は設 定しないでください。 クロック周波数 : 原発振 18 MHz および PLL4 逓倍の場合 B3 B2 B1 B0 0 0 0 0 φ 72.0 MHz [ 初期値 ] 0 0 0 1 φ × 2 (2 分周 ) 36.0 MHz 0 0 1 0 φ × 3 (3 分周 ) 24.0 MHz 0 0 1 1 φ × 4 (4 分周 ) 18.0 MHz 0 1 0 0 φ × 5 (5 分周 ) 14.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 12.0 MHz 0 1 1 0 φ × 7 (7 分周 ) 10.3 MHz 0 1 1 1 φ × 8 (8 分周 ) 9.0 MHz … … … … … 1 1 1 1 φ × 16 (16 分周 ) クロック分周比 … 4.5 MHz φ はベースクロックの周期 リセット (INIT) により "0000B" に初期化されます。 読出しおよび書込みが可能です。 119 第 3 章 CPU および制御部 [bit11 ∼ bit8] P3, P2, P1, P0 : CLKP 分周選択ビット 周辺クロック (CLKP) クロック分周比設定ビットです。 周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定しま す。 本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベー スクロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択 します。 動作可能な上限周波数は 20MHzですので , これを超える周波数になる分周比は設定 しないでください。 クロック周波数 : 原発振 18 MHz および PLL4 逓倍の場合 P3 P2 P1 P0 0 0 0 0 φ 72.0 MHz 0 0 0 1 φ × 2 (2 分周 ) 36.0 MHz 0 0 1 0 φ × 3 (3 分周 ) 24.0 MHz 0 0 1 1 φ × 4 (4 分周 ) 18.0 MHz [ 初期値 ] 0 1 0 0 φ × 5 (5 分周 ) 14.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 12.0 MHz 0 1 1 0 φ × 7 (7 分周 ) 10.3 MHz 0 1 1 1 φ × 8 (8 分周 ) 9.0 MHz … … … … … 1 1 1 1 φ × 16 (16 分周 ) クロック分周比 φ はベースクロックの周期 リセット (INIT) により "0011B" に初期化されます。 読出しおよび書込みが可能です。 120 … 4.5 MHz 第 3 章 CPU および制御部 ■ DIVR1 : 基本クロック分周設定レジスタ 1 図 3.11-9 に , 基本クロック分周設定レジスタ 1 のレジスタ構成を示します。 図 3.11-9 基本クロック分周設定レジスタ 1 のレジスタ構成 DIVR1 bit 7 アドレス : 000487H T3 リード / ライト (R/W) 0 初期値 (INIT) X 初期値 (RST) 6 5 4 3 2 1 0 T2 (R/W) 0 X T1 (R/W) 0 X T0 (R/W) 0 X 予約 (R/W) 0 X 予約 (R/W) 0 X 予約 (R/W) 0 X 予約 (R/W) 0 X 各内部クロックのベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を行 います。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。クロックソースの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特に , クロックソース選択の変更設定との順序を間違えないように注意 してください。 本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周 比が有効となります。 121 第 3 章 CPU および制御部 [bit7 ∼ bit4] T3, T2, T1, T0 : CLKT 分周選択ビット 外部バスクロック (CLKT) のクロック分周比設定ビットです。 外部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。 本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま す。 動作可能な上限周波数は 40MHz ですので , これを超える周波数になる分周比は設定 しないでください。 クロック周波数 : 原発振 18 MHz および PLL4 逓倍の場合 T3 T2 T1 T0 0 0 0 0 φ 72.0 MHz [ 初期値 ] 0 0 0 1 φ × 2 (2 分周 ) 36.0 MHz 0 0 1 0 φ × 3 (3 分周 ) 24.0 MHz 0 0 1 1 φ × 4 (4 分周 ) 18.0 MHz 0 1 0 0 φ × 5 (5 分周 ) 14.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 12.0 MHz 0 1 1 0 φ × 7 (7 分周 ) 10.3 MHz 0 1 1 1 φ × 8 (8 分周 ) 9.0 MHz … … … … … 1 1 1 1 φ × 16 (16 分周 ) クロック分周比 φ はベースクロックの周期 リセット (INIT) により "0000B" に初期化されます。 読出しおよび書込みが可能です。 [bit3 ∼ bit0] 予約 : 予約ビット 予約ビットです。 122 … 4.5 MHz 第 3 章 CPU および制御部 ■ CSCFG : クロックソース構成レジスタ このレジスタは , サブクロックモードのメインクロック発振を制御します。 このレジスタは MB91461 には搭載されていません。 図 3.11-10 クロックソース構成レジスタ CSCFG bit アドレス : 0004AEH リード / ライト 初期値 (INIT) 初期値 (RST) 7 6 EDSUEN PLLLOCK (R/W) (R) 0 X X X 5 4 3 2 1 0 RCSEL (R/W) 0 X 予約 (R/W) 0 X CSC3 (R/W) 0 X CSC2 (R/W) 0 X CSC1 (R/W) 0 X CSC0 (R/W) 0 X [bit10] PLL1EN : PLL 許可ビット PLL の動作許可ビットです。本ビットは , クロックソースとして PLL を選択してい る間は書換えをしないでください。また , 本ビットが "0" の間はクロックソースと して PLL を選択しないでください (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。 [bit7] EDSUEN : EDSU/MPU 許可 EDSUEN 機能 0 EDSU/MPU は ( クロック ) 禁止 [ 初期値 ] 1 EDSU/MPU は ( クロック ) 許可 [bit6] PLLLOCK : PLL ロック PLLLOCK 機能 0 PLL がロックされていない状態 1 PLL がロックされた状態 [bit5] RCSEL : CR 発振器セレクタ RCSEL 機能 0 CR 発振は 100kHz に設定 [ 初期値 ] 1 CR 発振は 2MHz に設定 選択した発振周波数は , クロック制御ユニット , フラッシュセキュリティユニット (CRC 生成の速度を上げる場合は発振を 2MHz に変更 ) , およびリアルタイムクロッ クに適用されます。ハードウェアウォッチドッグ (CR ベースのウォッチドッグ ) に は , この設定にかかわらず , 常に 100kHz が適用されます。 [bit4] 予約 : 予約ビット このビットは予約ビットです。 123 第 3 章 CPU および制御部 [bit3 ∼ bit0] CSC3 ∼ CSC0 : クロックソース選択 124 CSC3 ∼ CSC0 機能 --00B リアルタイムクロックのソースはメイン発振 --01B リアルタイムクロックのソースはサブ発振 --10B リアルタイムクロックのソースは CR 発振 --11B 設定禁止 -0--B サブクロックキャリブレーションのソースはサブ発振 -1--B サブクロックキャリブレーションのソースは CR 発振 第 3 章 CPU および制御部 3.11.7 クロック制御部の周辺回路 クロック制御部の周辺回路機能について説明します。 ■ タイムベースカウンタ クロック制御部には, 26ビット長のタイムベースカウンタがあり, ベースクロックで動 作しています。 タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10.4 発振安定待ち時間」を参 照 ) のほか , 以下の用途に使用されます。 ウォッチドッグタイマ : システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビッ ト出力を用いて計測します。 タイムベースタイマ : タイムベースカウンタ出力を用いてインターバル割込みを発生します。 ● ウォッチドッグタイマ ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマで す。プログラムの暴走などで設定したインターバルの間にウォッチドッグリセット の発生延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リ セット (INIT) 要求を発生します。ここで説明するウォッチドッグタイマは「第 7 章 ハードウェアウォッチドッグタイマ」とは異なるもので , リセット直後は停止状態 です。 〔ウォッチドッグタイマの起動〕 ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR ( リセット要因レジ スタ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。 このとき , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビット により設定します。インターバル時間の設定は , この最初の書込みで設定した時間 のみが有効となり , それ以降の書込みはすべて無視されます。 〔ウォッチドッグリセットの発生延期〕 いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR ( ウォッ チドッグリセット発生延期レジスタ ) に対して "A5H", "5AH" の順でデータを書き込 む必要があります。 この操作により , ウォッチドッグリセット発生用フラグが初期化されます。 〔ウォッチドッグリセットの発生〕 ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出 時にフラグが設定されていると , ウォッチドッグリセットとして設定初期化リセッ ト (INIT) 要求を発生します。 125 第 3 章 CPU および制御部 〔ウォッチドッグタイマの停止〕 いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す るまでは , ウォッチドッグタイマを停止することはできません。 動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停 止し , 再度プログラム動作にて起動するまでは機能しません。 - 動作初期化リセット (RST) 状態 - 設定初期化リセット (INIT) 状態 - 発振安定待ちリセット (RST) 状態 〔ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 〕 ウォッチドッグタイマは , CPU のプログラム動作が停止している場合いったん ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生 を延期します。プログラム動作の停止とは具体的には以下の動作を示します。 - スリープ状態 - ストップ状態 - 発振安定待ち RUN 状態 - エミュレータデバッガ , モニタデバッガを使用時のブレーク中 - INTE 命令の実行から RETI 命令の実行までの期間 - ステップトレーストラップ (PS レジスタの T フラグ= 1 による 1 命令ごとのブレーク ) - 命令キャッシュ制御レジスタ (ISIZE, ICHCR), RAM モード時のキャッシュメモリへのデータ また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発 生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。 なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリ セットが発生しない可能性があります。その場合 , 外部 INITX 端子よりリセット (INIT) をかけてください。 126 第 3 章 CPU および制御部 ● タイムベースタイマ タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発 生用タイマです。PLL のロック待ち時間など , 最大で { ベースクロック× 226} サイ クルまでの比較的長時間の時間計測を行う用途に適しています。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを 検出すると , タイムベースタイマ割込み要求を発生します。 〔タイムベースタイマの起動とインターバル設定〕 タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) の bit13 ∼ bit11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは 常に検出されているため , インターバル時間の設定後はまず , bit15:TBIF ビットをク リアしてから bit14:TBIE ビットを "1" にして割込み要求出力を許可してください。 インターバル時間を変更する際は , あらかじめ bit14:TBIE ビットを "0" にして割込 み要求出力を禁止しておいてください。 タイムベースカウンタはこれら設定に影響されず , 常にカウント動作を行っていま すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ イムベースカウンタをクリアしてください。クリアしない場合 , 割込み許可直後に 割込み要求が発生することもあり得ます。 〔プログラムによるタイムベースカウンタのクリア〕 CTBR ( タイムベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデー タを書き込むと , "5AH" 書込みの直後に , タイムベースカウンタを全ビット "0" にク リアします。"A5H" 書込みと "5AH" 書込みの間の時間制限はありませんが , "A5H" 書込みの後に"5AH"以外のデータを書き込むと, 再度"A5H"を書き込まないと"5AH" を書き込んでもクリア動作を行いません。 このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期 されます。 〔デバイス状態によるタイムベースカウンタのクリア〕 タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にク リアされます。 - ストップ状態 - 設定初期化リセット (INIT) 状態 特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し てしまう可能性があります。 そのため , ストップモードを設定する前には , タイムベースタイマ割込みを禁止し , タイムベースタイマを使用しないでください。 それ以外の状態については, 動作初期化リセット(RST)が発生するため, タイムベー スタイマ割込みは自動的に禁止されます。 127 第 3 章 CPU および制御部 インターバルタイマ クロックソースの選択や分周設定の影響を受けず , ソースクロックに同期してカウ ントアップする 23 ビットのタイマです。 128 第 3 章 CPU および制御部 3.12 PLL インタフェース PLL の逓倍設定について説明します。 図 3.12-1 に , PLL 周辺のブロックダイヤグラムを示します。 図 3.12-1 PLL 周辺のブロックダイヤグラム クロック ユニット XIN1 PLL PLLIN インタフェース PLL 水晶 または クロック入力 X 1/G 1/M CK 位相補正 M U X FB 1/N クロックツリー CLKB CLKP CLKT M U X FB1 遅延 ■ 特長 1 ∼ 64 まで設定可能な 2 つのデバイダによって逓倍率を決定 電圧降下および電圧サージを防ぐためのクロック自動ギアのアップダウン機能 129 第 3 章 CPU および制御部 3.12.1 PLL インタフェースのレジスタ詳細説明 PLL インタフェースのレジスタの詳細について説明します。 ■ PLLDIVM:PLL デバイダ M 図 3.12-2 に , PLL デバイダ M の構成を示します。 図 3.12-2 PLL デバイダ M の構成 PLLDIVM bit アドレス : 00048CH 7 予約 リード / ライト (R/W) 初期値 6 5 4 3 2 1 0 予約 DVM5 DVM4 DVM3 DVM2 DVM1 DVM0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) − 0 0 0 0 0 0 − PLLDIVM は PLL フィードバックループの中に入るデバイダの 1 つで , PLLDIVN とと もに PLL の逓倍率を決定します。また , PLL 発振出力を分周して , 以降のクロックユ ニットに与えるクロックを生成する分周器としても使用されます。 [bit7, bit6] 予約 : 予約ビット 予約ビットです。読出し値は "0" です。 [bit5 ∼ bit0] DVM5 ∼ DVM0 : PLLDIVM 分周設定値 DVM5 ∼ DVM0 に設定する値によって分周数は以下のようになります。 130 DVM5 ∼ DVM0 分周数 000000B 1 ( 分周なし ) 000001B 2 000010B 3 000011B 4 000100B 5 000101B 6 000110B 7 000111B 8 ・・・・・ ・・・・・ 111111B 64 第 3 章 CPU および制御部 <注意事項> • 分周設定としては "1" ( 分周なし ) も設定できますが , "2" 以上に設定することを推奨し ます。また , PLL 出力のデューティ比を 50 % にするために , 設定値としては偶数の分 周数を設定してください。 • クロックソースとして PLL が選択されている場合は (CLKS1, CLKS0 = 10B), PLLDIVM の値を変更することはできません。 131 第 3 章 CPU および制御部 ■ PLLDIVN:PLL デバイダ N PLL デバイダ N の構成は以下のとおりです。 図 3.12-3 PLL デバイダ N の構成 PLLDIVN bit 7 6 5 4 3 2 1 0 予約 予約 DVN5 DVN4 DVN3 DVN2 DVN1 DVN0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 0 0 0 0 0 0 0 アドレス : 00048DH 0 PLLDIVN は PLL フィードバックループの中に入るデバイダの 1 つで , PLLDIVM とと もに PLL の逓倍率を決定します。 [bit7, bit6] 予約 : 予約ビット 予約ビットです。読出し値は "0" です。 [bit5 ∼ bit0] DVN5 ∼ DVN0 : PLLDIVN 分周設定値 以下に PLLDIVN 分周設定値を示します。 DVN5 ∼ DVN0 分周数 000000B 1 ( 分周なし ) 000001B 2 000010B 3 000011B 4 000100B 5 000101B 6 000110B 7 000111B 8 ・・・・・ ・・・・・ 111111B 64 <注意事項> クロックソースとして PLL が選択されている場合は (CLKS1, CLKS0 = 10B), PLLDIVN の 値を変更することはできません。 132 第 3 章 CPU および制御部 ■ PLLDIVG PLLDIVG bit アドレス : 00048EH 7 6 5 4 3 2 1 0 DVG2 R/W DVG1 R/W DVG0 R/W 予約 R/W 予約 R/W 予約 R/W 予約 R/W DVG3 R/W 初期値 (INITX 端子入力 , ウォッチドッグリセット ) 0 0 0 0 0 0 0 0 初期値 (ソフトウェアリセット) 0 0 0 0 X X X X [bit7 ∼ bit4] 予約:予約ビット これらのビットには常に "0" を書き込みます。 [bit3 ∼ bit0] DVG0 ∼ DVG3:PLL 自動ギアの開始 / 終了 G 分周選択 DVG3 ∼ DVG0 PLL 出力 G 分周の開始 / 終了周波数 ( 生成 φ: ベースクロック ) 0000B 自動ギア禁止 ( 初期値 ) 0001B ソース (FCL-PLL) : 2 (2 分周 ) 0010B ソース (FCL-PLL) : 3 (3 分周 ) 0011B ソース (FCL-PLL) : 4 (4 分周 ) 0100B ソース (FCL-PLL) : 5 (5 分周 ) 0101B ソース (FCL-PLL) : 6 (6 分周 ) 0110B ソース (FCL-PLL) : 7 (7 分周 ) 0111B ソース (FCL-PLL) : 8 (8 分周 ) ...... ..... 1111B ソース (FCL-PLL) : 16 (16 分周 ) < 注意事項 > • G 分周カウンタに対して奇数の分周比 (3, 5, 7 など ) を選択できますが , これは推奨値 ではありません。常に偶数の分周比を選択してください (2, 4, 6 など ) 。 • クロックソースとして PLL を選択すると , レジスタ値は変更できません。 (CLKS1, CLKS0 = 10B) 。 • 自動ギア機能を使用しない場合は 0000B ( 初期値 ) としてください。 133 第 3 章 CPU および制御部 ■ PLLMULG PLLMULG bit 7 6 5 4 3 2 1 0 MLG7 R/W MLG6 R/W MLG5 R/W MLG4 R/W MLG3 R/W MLG2 R/W MLG1 R/W MLG0 R/W 初期値 (INITX 端子入力 , ウォッチドッグリセット ) 0 X 0 0 0 0 0 0 初期値 (ソフトウェアリセット) X X X X X X X X アドレス : 00048FH [bit5 ∼ bit0] : MLG7 ∼ MLG0:PLL 自動ギア G 分周のステップ逓倍率選択 MLG7 ∼ MLG0 G 分周のステップ逓倍率 00000000B G 分周ステップ× 1 (1 で乗算 ) 00000001B G 分周ステップ× 2 (2 で乗算 ) 00000010B G 分周ステップ× 3 (3 で乗算 ) 00000011B G 分周ステップ× 4 (4 で乗算 ) 00000100B G 分周ステップ× 5 (5 で乗算 ) 00000101B G 分周ステップ× 6 (6 で乗算 ) 00000110B G 分周ステップ× 7 (7 で乗算 ) 00000111B G 分周ステップ× 8 (8 で乗算 ) ...... ..... 11111111B G 分周ステップ× 256 (256 で乗算 ) < 注意事項 > • クロックソースとして PLL を選択すると , レジスタ値は変更できません (CLKS1, CLKS0 = 10B) 。 • 自動ギア機能を使用しない場合は , このレジスタは使用されません。 134 第 3 章 CPU および制御部 ■ PLLCTRL PLLCTRL bit 7 アドレス : 000490H 6 5 4 3 2 1 0 GRDN R/W IEUP R/W GRUP R/W 予約 R/W 予約 R/W 予約 R/W 予約 R/W IEDN R/W 初期値 (INITX 端子入力 , ウォッチドッグリセット ) 0 X 0 0 0 0 0 0 初期値 (ソフトウェアリセット) 0 0 0 0 X X X X [bit7 ∼ bit4] 予約 : 予約ビット 読出し値は常に "0" です。 [bit3] : 割込み許可ギアダウン IEDN 機能 0 ギアダウン割込み禁止 ( 初期値 ) 1 ギアダウン割込み許可 [bit2] : 割込みフラグギアダウン GRDN 機能 0 ギアダウン割込み非アクティブ ( 初期値 ) 1 ギアダウン割込みアクティブ • G 分周カウンタがプログラムされた終了値に達すると , クロックソース PLL から クロックソース発振に切り換わるときにこのフラグが設定されます。 • リードモディファイライト命令では , このビットは "1" と読まれます。"1" を書き 込んでも影響はありません。 [bit1] : 割込み許可ギアアップ IEUP 機能 0 ギアアップ割込み禁止 ( 初期値 ) 1 ギアアップ割込み許可 135 第 3 章 CPU および制御部 [bit0] : 割込みフラグギアアップ GRUP 機能 0 ギアアップ割込み非アクティブ ( 初期値 ) 1 ギアアップ割込みアクティブ • G 分周カウンタが M 分周カウンタで定義されている終了値に達すると , クロック ソース発振からクロックソース PLL に切り換わるときにこのフラグが設定され ます。 • リードモディファイライト (RMW) 命令では , このビットは "1" と読まれます。 "1" を書き込んでも影響はありません。 136 第 3 章 CPU および制御部 PLL 逓倍率設定例 3.12.2 PLL 設定例について説明します。 以下の表に PLLDIVM, PLLDIVN の設定例を示します。 PLL 発振器出力が 80Mz ∼ 170MHz の範囲になるように設定してください。 表 3.12-1 PLL 逓倍率設定例 (1 / 2) PLL 入力クロック [MHz] PLLDIVM 設定 PLLDIVN 設定 PLL 発振器出力 [MHz] PLL 出力 ( クロック ユニットへの出力 )[MHz] 4 20 2 160 8 4 14 3 168 12 4 10 4 160 16 4 8 5 160 20 4 8 6 192 24 4 6 7 168 28 4 6 8 192 32 4 6 9 192 36 4 4 10 160 40 4 4 11 176 44 4 4 12 192 48 4 2 19 152 76 4 2 20 160 80 10 2 8 160 80 10 3 5 150 50 10 3 6 180 60 10 4 4 160 40 10 4 5 200 50 10 5 3 150 30 10 5 4 200 40 10 6 3 180 30 10 8 2 160 20 10 9 2 180 20 10 10 2 200 20 12 3 5 180 60 12 4 4 192 48 12 5 3 180 36 12 7 2 168 24 12 8 2 192 24 14 3 4 168 56 14 4 3 168 42 137 第 3 章 CPU および制御部 表 3.12-1 PLL 逓倍率設定例 (2 / 2) PLL 入力クロック [MHz] 138 PLLDIVM 設定 PLLDIVN 設定 PLL 発振器出力 [MHz] PLL 出力 ( クロック ユニットへの出力 )[MHz] 14 6 2 168 28 14 7 2 196 28 16 2 5 160 80 16 3 4 192 64 16 4 3 192 48 16 5 2 160 32 16 6 2 192 32 18 3 3 162 54 18 5 2 180 36 20 2 4 160 80 20 3 3 180 60 20 4 2 160 40 20 5 2 200 40 第 3 章 CPU および制御部 ■ クロック自動ギアのアップダウン クロックソースを発振から高周波数 PLL 出力 ( またはその逆 ) に切り換えるときに電圧 の降下やサージを回避するために , PLL インタフェースにはクロックをスムーズにギア アップおよびギアダウンする回路が実装されています。 主な機能は , 2 つの分周カウンタ (M 分周カウンタと G 分周カウンタ ) を使用して実装 されています。M 分周カウンタでは , PLL フィードバックにターゲットの周波数が指定 されます。もう一方の G 分周カウンタでは , G 分周設定 (DIVG) で指定されているプロ グラマブルな分周から , M 分周設定 (DIVM) で指定されているターゲットの周波数に上 昇し , M 分周設定 (DIVM) からプログラマブルな終了周波数 (DIVG) まで周波数が低下 します。 システムクロックを低周波数から高周波数に変えたり ( ギアアップ ) , 高周波数から低 周波数に変える ( ギアダウン ) 場合は , DIVG > DIVM 設定のみが , 有効なクロックギア 仕様になります。 周波数ステップは , 以下のように PLL 出力周波数の逓倍で実行されます。 発振器= 4 MHz, M = 2, N = 20 ( つまり , PLL 出力= 160 MHz, C ユニットへの周波数出力= 80 MHz と すると , M × N = 40 という周波数逓倍になります ) 。 ギアデバイダは , 任意の偶数デバイダに設定できます。この例では G = 20 であり , 発 振から PLL に切り換わるときに以下のギアアップが行われます。 1. ステップ : 1 サイクルの 8.0 MHz (8.0 MHz は , 20 サイクルの PLL 出力になります ) 2. ステップ : 2 サイクルの 8.4 MHz (8.4 MHz は , 19 サイクルの PLL 出力になります ) 3. ステップ : 3 サイクルの 8.8 MHz (8.8 MHz は , 18 サイクルの PLL 出力になります ) : 17. ステップ : 17 サイクルの 40.0 MHz (40.0 MHz は , 4 サイクルの PLL 出力になります ) 18. ステップ : 18 サイクルの 53.3 MHz (53.3 MHz は , 3 サイクルの PLL 出力になります ) 19. ステップ : 19 サイクルの 80.0 MHz (80.0 MHz は , 2 サイクルの PLL 出力になります ) →最終ステップへの遷移で到達したターゲットの周波数 ( ここでは 18. から 19.) ギア逓倍率レジスタ内で逓倍値を設定すると , 各ステップが逓倍されます。開始周波数 を生成してからターゲットの周波数に達するまでの時間は , 以下の式で計算できます。 i ⎛ i ⎞ ⎜ duration = mul Þ t Þ ⎜ ∑ k Þ ( i – k + 1 ) – ∑ k Þ ( i – k + 1 )⎟⎟ ⎝k = 1 ⎠ k = j+1 この式は, 以下の式と同じです (最初の和の項の有限の算術級数は, 以下に帰着します) 。 i ⎛ ⎞ i Þ ( i + 1 ) Þ ( i + 2 ) ⎜ duration = mul Þ t Þ ---------------------------------------------- – ∑ k Þ ( i – k + 1 )⎟ ⎜ ⎟ 6 ⎝ ⎠ k = j+1 i = G, j = G − M, mul = MULG, t = 1/f(pllout) 上記の設定では , 開始周波数からターゲット周波数までの時間が 9262500ps ( 約 9.3 ms) である 1483PLL 出力クロックサイクルと同じになります。 139 第 3 章 CPU および制御部 < 注意事項 > クロック自動ギア機能を使用する場合は , ギアアップおよびギアダウンのフラグ (PLLCTRL.GRUP, PLLCTRL.GRDN) を使用して , この機能の現在の状態を評価すること をお勧めします。これにより , 完了前の設定変更によって発生するクロックシステム内で の誤動作を防ぐことができます。 手順例 : 1. 選択した周波数とギア時間に従って PLL インタフェースレジスタ (PLLDIVN, PLLDIVM, PLLDIVG, PLLMULG) を設定します。 2. PLL を ON にします (CLKR.PLL1EN = 1) 。 3. ギアをアップまたはダウンに切り換えた後に割込みを受信した場合は , 対応する割 込み許可も許可します (PLLCTRL.IEUP, PLLCTRL.IEDN) 。 4. PLL 安定待ち時間まで待機します。 5. ベースクロック分周レジスタを設定します (DIV0, DIV1) 。 6. クロックソースを PLL に切り換えます (CLKR.CLKS "00B" → "10B") 。 7. クロックソースを発振に戻す前に PLLCTRL.GRUP ギアアップフラグ ( ポーリング または割込み ) まで待機するか , または CLKR レジスタ内のビットを変更する前に PLLCTRL.GRUP = 1 の設定を確定します。 8. クロックソースを発振に切り換えます (CLKR.CLKS "10B" → "00B") 。 9. クロックソースを PLL に戻す前に PLLCTRL.GRDN ギアダウンフラグ ( ポーリング または割込み ) まで待機するか , または CLKR レジスタ内のビットを変更する前に PLLCTRL.GRDN = 1 の設定を確定します。 10.PLL を OFF にします (CLKR.PLL1EN = 0) 。 140 第 3 章 CPU および制御部 3.13 デバイス状態制御 MB19461/F467R の各種状態とその制御について説明します。 ■ デバイス状態制御の概要 MB91461/F467R のデバイス状態には , 以下のものがあります。 • RUN 状態 ( 通常動作 ) • スリープ状態 • ストップ状態 • シャットダウン状態 • 発振安定待ち RUN 状態 • 発振待ちリセット (RST) 状態 • 動作初期化リセット (RST) 状態 • 設定初期化リセット (INIT) 状態 以降 , 上記各種状態の詳細と , 低消費電力モードであるスリープモードおよびストップ モードの詳細について説明します。 141 第 3 章 CPU および制御部 デバイス状態と各遷移 3.13.1 図 3.13-1 に , MB91461/F467R のデバイスの状態遷移を示します。 ■ デバイス状態 図 3.13-1 デバイス状態 遷移要求の優先順位 1 INITX端子=0(INIT) 2 INITX端子=1(INIT解除) 3 発振安定待ち終了 4 リセット(RST)解除 5 ソフトウェアリセット(RST) 6 スリープ(命令書込み) 7 ストップ (命令書込み) 8 シャットダウン (命令書込み) 9 割込み 10 クロックを必要としない外部割込み 11 ウォッチドックリセット(INIT) (ハードウェアウォッチドッグを含む) 最強 ↓ ↓ ↓ ↓ 最弱 パワーオン 1 設定初期化 (INIT) 2 1 シャットダウン 10 1 発振安定待ち リセット ストップ 1 8 10 1 3 プログラムリセット (RST) 発振安定待ちRUN 3 7 5 1 6 スリープ 9 142 RUN 1 4 11 1 設定初期化リセット(INIT) 発振安定待ち終了 動作初期化リセット(RST) 割込み要求 ストップ(シャットダウン) スリープ 第 3 章 CPU および制御部 ■ デバイスの動作状態 MB91461/F467R のデバイスの動作状態には以下のものがあります。 ● RUN 状態 ( 通常動作 ) この状態は , プログラム実行状態です。 すべての内部クロックが供給され , すべての回路が動作可能な状態です。ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバス クロックのみ停止しています。 各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常 リセットモードの場合と一部要求に対する状態遷移動作が異なります。 詳細は , 「3.10.5 リセット動作モード」の「■ 同期リセット動作」を参照してくだ さい。 ● スリープ状態 この状態は , プログラム停止状態です。プログラム動作により遷移します。 CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモ リおよび内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。有 効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移し ます。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷 移します。 動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷 移します。 ● ストップ状態 この状態は , デバイス停止状態です。プログラム動作により遷移します。 すべての内部回路が停止します。内部クロックはすべて停止し, 発振回路およびPLL は設定により停止させることが可能です。また , 設定により , 外部端子を一律ハイ インピーダンスにすることが可能です ( 一部端子を除く ) 。 特定の ( クロックを必要としない ) 有効な割込みや , 発振動作中のインターバルタ イマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷 移します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ 遷移します。 ● シャットダウン状態 この状態は, RAM以外のデバイス停止状態です。プログラム動作により遷移します。 RAM (MB91461 では 64K バイト , MB91F467R では 32K バイト ) およびその周辺回路以 外は電源供給が遮断されます。これにより , シャットダウン状態でのリーク電流を大 幅に低減することができます。外部バスのコントロール信号を出力保持する以外は , すべての出力をハイインピーダンス状態にします。 特定の ( クロックを必要としない ) 有効な割込みにより , 発振安定待ち RUN 状態へ 遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷 移します。 143 第 3 章 CPU および制御部 ● 発振安定待ち RUN 状態 この状態は , デバイス停止状態です。ストップ状態からの復帰後に遷移します。 クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くす べての内部回路が停止します。内部クロックはすべて停止しますが , 発振回路およ び動作許可されていた PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷 移します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ 遷移します。 ● 発振安定待ちリセット (RST) 状態 この状態は , デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復帰後に遷移します。 クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くす べての内部回路が停止します。内部クロックはすべて停止しますが , 発振回路およ び動作許可されていた PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 内部回路に対し , 動作初期化リセット (RST) を出力します。 設定された発振安定待ち時間の経過により , 発振安定待ちリセット (RST) 状態へ遷 移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷 移します。 ● 動作初期化リセット (RST) 状態 この状態は , プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定待ちリセット (RST) 状態の終了により遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路 は一部を除き初期化されます。すべての内部クロックと発振回路および動作許可さ れていた PLL は動作しています。 内部回路に対して動作初期化リセット (RST) を出力します。 動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動 作初期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの 復帰後だった場合は , 設定初期化リセットシーケンスを実行します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷 移します。 144 第 3 章 CPU および制御部 ● 設定初期化リセット (INIT) 状態 この状態は , 全設定初期化状態です。設定初期化リセット (INIT) 要求の受付け , ま たはハードウェアスタンバイ状態の終了により遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路 はすべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。す べての内部クロックは , 外部 INITX 端子への "L" レベル入力期間は停止しますが , それ以外では動作します。 内部回路に対して設定初期化リセット (INIT) および動作初期化リセット (RST) を出 力します。 設定初期化リセット (INIT) 要求の消失により , 本状態は解除され , 発振安定待ちリ セット (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期化リセットシーケンスを実行します。 ● 各状態遷移要求の優先順位 どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部 要求は特定の状態でしか発生しませんので , その状態でしか有効になりません。 【最強】 設定初期化リセット (INIT) 要求 ↓ 発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 ) ↓ 動作初期化リセット (RST) 要求 ↓ 有効な割込み要求 (RUN, スリープ , ストップ , シャットダウン状態のみ発生 ) ↓ ストップモード要求 ( シャットダウン ) ( レジスタ書込み ) (RUN 状態のみ発生 ) 【最弱】 スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 ) 145 第 3 章 CPU および制御部 3.14 インターバルタイマ インターバルタイマは , ソースクロックに同期してカウントアップする 23 ビットの カウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタイマ機能 があります。 ■ インターバルタイマのインターバル時間 表 3.14-1 に , インターバルタイマのインターバル時間を示します。インターバル時間 は次の 3 種類の中から選択できます。 表 3.14-1 インターバルタイマのインターバル時間 MB91461 メインクロック周期 1/FXTL MB91F467R 214/FXTL 212/FXTL 219/FXTL 217/FXTL 225/FXTL 223/FXTL ( 注意事項 ) FXTL は X0/X1 端子または発振回路からのクロック ■ インターバルタイマのブロックダイヤグラム 図 3.14-1 に , インターバルタイマのブロックダイヤグラムを示します。 図 3.14-1 インターバルタイマのブロックダイヤグラム インターバル タイマ用カウンタ FXTL 22 0 1 2 3 4 5 6 7 8 23 24 25 26 27 28 29 210 211 11 16 22 214 219 225 ソース クロック インターバル タイマ セレクタ カウンタ クリア回路 リセット (INIT) インターバル タイマ割込み インターバルタイマ 制御レジスタ(OSCR) WIF WIE WEN 予約 予約 WS1 WS0 FXTL:X0/X1端子または発振回路からのクロック MB91461の場合, 分周回路があります MB91F467Rの場合, 分周回路はありません 146 WCL 第 3 章 CPU および制御部 ● インターバルタイマ X0/X1 または発振回路からのクロックの 4 分周クロックをカウントクロックとする 23 ビットのアップカウンタです。 ● カウンタクリア回路 OSCR レジスタによる設定 (WCL = 0) 以外に , リセット (INIT) 時にカウンタをクリ アします。 ● インターバルタイマセレクタ インターバルタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用の 1 種 類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因になります。 ● インターバルレジスタ (OSCR) インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを 行います。 147 第 3 章 CPU および制御部 ■ インターバルタイマのレジスタ説明 図 3.14-2 に , インターバルタイマレジスタのレジスタ構成を示します。 図 3.14-2 インターバルタイマレジスタのレジスタ構成 OSCR bit 15 アドレス : 0004C8H WIF リード / ライト (R/W) 0 初期値 (INIT) X 初期値 (RST) 14 13 12 11 10 9 8 WIE (R/W) 0 X WEN (R/W) 0 X 予約 (R/W) 予約 (R/W) ― X ― X WS1 (R/W) 0 X WS0 (R/W) 0 X WCL (R/W) 0 X [bit15] WIF : タイマ割込みフラグ インターバル割込み要求フラグです。 選択されたインターバルタイマ用分周出力の立下りエッジによって "1" に設定され ます。 このビットと割込み要求許可ビットが "1" のとき , インターバルタイマ割込み要求 を出力します。 値 内 容 0 インターバルタイマ割込みの要求なし [ 初期値 ] 1 インターバルタイマ割込みの要求あり リセット (INIT) で "0" に初期化されます。 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込ん でもビット値は変化しません。 リードモディファイライト (RMW) 系命令での読出し値では常に "1" となります。 [bit14] WIE : タイマ割込み許可ビット CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとインターバ ルタイマ割込み要求フラグビットが "1" のとき , インターバルタイマ割込み要求を 出力します。 値 内 容 0 インターバルタイマ割込み要求出力禁止 [ 初期値 ] 1 インターバルタイマ割込み要求出力許可 リセット (INIT) で "1" に初期化されます。 読出しおよび書込みが可能です。 148 第 3 章 CPU および制御部 [bit13] WEN : タイマ動作許可ビット タイマ動作許可ビットです。 本ビットが "1" のときにタイマはカウント動作を行います。 値 内 容 0 タイマ動作停止 [ 初期値 ] 1 タイマ動作 リセット (INIT) で "0" に初期化されます。 読出しおよび書込みが可能です。 [bit12, bit11] 予約 : 予約ビット 予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 ) 。 読出し値は不定です。 [bit10, bit9] WS1, WS0 : タイマインターバル時間選択ビット インターバルタイマの周期を選択します。 インターバルタイマ用カウンタの出力ビットを下記 3 種類のうちから選択します。 WS1 インターバルタイマ周期 WS0 MB91461 MB91F467R 0 0 設定禁止 [ 初期値 ] 設定禁止 [ 初期値 ] 0 1 214/FXTL 212/FXTL 1 0 219/FXTL 217/FXTL 1 1 225/FXTL 223/FXTL FXTL は X0/X1 または発振回路からのクロックです。 リセット (INIT) で "00B" に初期化されます。 読出しおよび書込みが可能です。 インターバル時間タイマを使用する場合 , 本レジスタにデータの書込みを行ってく ださい。 [bit8] WCL : タイマクリアビット "0" 書込みでインターバルタイマを "0" にクリアします。 書込みは "0" のみ可能で , "1" を書き込んでも動作に影響を与えません。 読出し値は常に "1" となります。 149 第 3 章 CPU および制御部 ■ インターバル割込み インターバルタイマ用カウンタは , X0/X1 端子または発振回路からのクロックの 2 分周 のクロック ( ソースクロック ) でカウント動作し , 設定したインターバル時間が経過す ると , インターバル割込み要求フラグ (WIF) を "1" に設定します。そのとき , 割込み要 求許可ビットを許可 (WIE = 1) していると CPU へ割込み要求が発生します。ただし , 発振回路が発振停止しているとき (「■インターバルタイマ機能の動作」を参照 ) では カウント動作も停止しますので , インターバル割込みは発生しません。 割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下ると 設定されます。 <注意事項> • リセット解除後に割込み要求出力を許可 (WIE = 1) する場合および WS1, WS0 ビット 変更時は , 必ず WIF と WCL ビットを同時にクリア (WIF = WCL = 0) してください。 このタイマは発振回路の安定待ち時間を自動で確保する目的には使えません。 • WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み 要求が発生します。 • カウンタクリア (OSCR:WCL = 1) と選択したビットのオーバフローが同時に起こった 場合は , WIF ビットのセットは行われません。 ■ インターバルタイマ機能の動作 インターバルタイマ用カウンタはソースクロックにてカウントアップを行いますが , 以下の状態では発振回路の発振が停止するため , カウント動作も停止します。 WEN ビットが "0" のとき ストップモードで発振回路が停止する設定 ( スタンバイ制御レジスタ STCR の bit0:OSCD1 = 1) でストップモードに移行すると , ストップモード中 , カウント動作 が停止。MB91461/F467R では , リセット (INIT) 時 , OSCD1 = 1 に初期化しますの で , ストップモード中もインターバルタイマを動かしたい場合は , スタンバイ移行 前に OSCD2 = 0 を設定してください。 カウンタをクリア (WCL = 0) すると , "000000H" からカウント動作を行い , "7FFFFFH" に達すると , "000000H" に戻ってカウントを継続します。カウントアップ中に選択され たインターバルタイマ用の分周出力に立下りエッジが発生すると , インターバル割込 み要求ビット (WIF) を "1" に設定します。すなわち , クリアされた時間を基準にして , 選択されたインターバル時間ごとにインターバルタイマ割込み要求を発生します。 150 第 3 章 CPU および制御部 ■ インターバルタイマの動作 図 3.14-3 に , インターバルタイマ起動時のカウンタ状態を示します。 図 3.14-3 インターバルタイマ起動時のカウンタ状態 7FFFFFH カウンタ値 時間 設定時間 ・タイマクリア(WCL=1) * "0"以外のとき ・インターバル時間設定(WS1,WS0=11B) 割込みルーチンでクリア WIF(割込み要求) WIE(割込みマスク) ■ インターバルタイマ使用時の注意事項 発振開始直後は発振周期が不安定なため , 設定時間は目安値となります。 発振回路が発振停止中はカウンタも停止しますので , インターバルタイマ割込みも発 生しません。インターバルタイマ割込みを使った処理を行う場合は , 発振回路を停止し ないでください。 WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラグ セットが優先して "0" クリアは無効となります。 151 第 3 章 CPU および制御部 152 第4章 低消費電力モード 低消費電力モードの機能と動作について説明しま す。 4.1 低消費電力モードの概要 4.2 スリープモード 4.3 ストップモード 4.4 シャットダウンモード 153 第 4 章 低消費電力モード 4.1 低消費電力モードの概要 MB91461/F467R でサポートする 3 つの低消費電力モードについて説明します。 ■ 低消費電力モード ● スリープモード ( プログラム停止状態 ) CPU コア部のクロック供給を停止します。周辺機能は動作を継続します。レジスタ書 込みにより , デバイスがスリープ状態へ遷移します。 ● ストップモード ( デバイス停止状態 ) CPU コアと周辺機能へのクロック供給を停止します。オプションとして , メイン発振 を停止するか継続するかを選択できます。 ● シャットダウンモード ( 電源遮断状態 ) RAM と一部の制御ロジック以外への電源供給をデバイス内部で遮断します。発振は停 止し , クロック供給も停止します。 154 第 4 章 低消費電力モード 4.2 スリープモード スリープモードとは , CPU コア部に供給するクロックのみを停止するモードで , CPU は停止し , 周辺機能は動作を続けます。 ● スリープモードの概要 プログラム停止状態です。ソフトウェアでレジスタを設定することにより遷移します。 CPU のプログラム実行のみを停止し , 周辺回路は動作可能な状態です。各所内蔵メモ リおよび内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。有効な 割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移します。 ● スリープモードへの移行 STCR (スタンバイ制御レジスタ) のbit6:SLEEPビットに"1"を書き込むとスリープモー ドとなり , スリープ状態へ遷移します。 以降 , スリープ状態からの復帰要因が発生するまでは , スリープ状態を維持します。 STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットと本ビット両方に "1" を書き込ん だ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 スリープモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタの bit8:SYNCS ビットにて設定します ) を使用した上で , 以下のシーケン スを必ず使用してください。 (LDI #value_of_sleep,R0);value_of_sleep は , STCR へのライトデータ (LDI #_STCR,R12) ;_STCR は , STCR のアドレス (481H) STB ;スタンバイ制御レジスタ (STCR) への書込み R0,@R12 LDUB @R12,R0 ;同期スタンバイのための STCR リード LDUB @R12,R0 ;もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP 〔スリープ状態で停止する回路〕 • CPU のプログラム実行 • ビットサーチモジュール (DMA 転送が発生した場合は動作します。) • 各種内蔵メモリ (DMA 転送が発生した場合は動作します。) • 内部 / 外部バス (DMA 転送が発生した場合は動作します。) 155 第 4 章 低消費電力モード 〔スリープ状態で停止しない回路〕 • 発振回路 • 動作許可された PLL • クロック発生制御部 • 割込みコントローラ • 周辺回路 • DMA コントローラ • DSU • インターバルタイマ 〔スリープ状態からの復帰要因〕 • 有効な割込み要求の発生 割込み禁止 ("1FH") 以外の割込みレベルの割込み要求が発生すると , スリープ モードは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR に割込みレベルとして割込み禁止 ("1FH") を設定してください。 • 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 • 動作初期化リセット (RST) 要求の発生 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 各要因の優先順位については , 「3.13.1 デバイス状態と各遷移」を参照してくださ い。 〔同期スタンバイ動作〕 タイムベースカウンタ制御レジスタ (TBCR) の bit8:SYNCS ビットに "1" が設定して ある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込 みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出すこ とによってスリープ状態へ遷移します。 156 第 4 章 低消費電力モード 4.3 ストップモード ストップモードとは , CPU コア部と周辺機能に供給するクロックを停止するモード です。 STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むとストップモー ドとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生する まではストップ状態を維持します。 STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットと本ビットの両方に "1" を書き 込んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 〔ストップ状態で停止する回路〕 停止するように設定された発振回路 : STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあると き , ストップ状態中のメインクロック用発振回路を停止状態にします。このとき , インターバルタイマも停止します。 動作許可されていないか , 停止するように設定された発振回路に接続された PLL : STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあると き , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定 してあっても , ストップ状態中のメインクロック用 PLL を停止状態にします。 〔ストップ状態で停止しない回路〕を除くすべての内部回路 〔ストップ状態で停止しない回路〕 停止するように設定されていない発振回路 : STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると き , ストップ状態中のメインクロック用発振回路は停止しません。このときイン ターバルタイマも停止しません。 動作許可されていて , かつ停止するように設定されていない発振回路に接続された PLL : STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると き , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定 してあると , ストップ状態中のメインクロック用 PLL は停止しません。 〔ストップ状態での端子のハイインピーダンス制御〕 STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "1" が設定してあると , ストッ プ状態中の端子出力をハイインピーダンス状態にします。 STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "0" が設定してあると , ストッ プ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照してください。 157 第 4 章 低消費電力モード 〔ストップ状態での周辺リソースへの入力 ] ストップ状態では , 各周辺リソースへの入力は "0" になります。また , 外部割込み (INTn) および CAN の受信 (RXn) 端子については , 対応する PFR を "0" とすると , 各 リソースの入力は "0" になりますが , PFR = 1 とすることにより , 端子からの信号が リソースにつながります。 〔ストップ状態からの復帰要因〕 特定の ( クロックを必要としない ) 有効な割込み要求の発生 : 外部割込み入力端子 (INTn 端子 ) , メイン発振中のインターバルタイマ割込みの み有効です。 割込み禁止 ("1FH") 以外の割込みレベルの割込み要求が発生するとストップモー ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生してもストップモードを解除したくない場合は , 該当する ICR に割込みレベルとして割込み禁止 ("1FH") を設定してください。割込み要求レベ ル (ELVR レジスタ ) にエッジ検出は設定しないでください。 インターバルタイマ割込み : STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると き , インターバルタイマの割込み要求が発生するとストップモードは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生してもストップモードを解除したくない場合は , インターバ ルタイマを停止させるか , インターバルタイマの割込み許可ビットを割込み禁 止に設定してください。 設定初期化リセット (INIT) 要求の発生 : 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 動作初期化リセット (RST) 要求の発生 : 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 〔ストップモード時のクロックソース選択〕 ストップモードを設定する前に , PLL の出力を選択しないようにあらかじめ設定し ておいてください。分周比の設定に関しては , 通常動作時と制限事項は変わりませ ん。 158 第 4 章 低消費電力モード 4.4 シャットダウンモード シャットダウンモードとは , RAM と一部の制御ロジック以外の電源供給を停止する モードで , スタンバイ時のリーク電流を大幅に低減できます。 シャットダウンモードでは内蔵 RAM* およびシャットダウン復帰要因フラグ以外のレ ジスタの設定は保持されません。必要な情報は RAM に残した上でシャットダウンモー ドへ移行する必要があります。外部バスのコントロール信号を出力保持する以外はす べての出力をハイインピーダンスの状態にします。本モードからの復帰は , あらかじめ 指定された外部割込み信号のアサートあるいは INITX( 外部リセット端子 ) のアサート により行います。NMI 入力での復帰はできません。 * MB91461 は命令 / データ兼用 RAM(F-bus RAM)64K バイト (0x30000 ∼ 0x3FFFF), MB91F467R はデータ専用 RAM(D-busRAM)32K バイト (0x24000 ∼ 0x2BFFF) となり ます。 ● SHDE: シャットダウン制御レジスタ 図 4.4-1 シャットダウン制御レジスタ アドレス : 0004D4H bit リード / ライト 初期値 7 6 5 4 3 2 1 0 SDENB ― (―) (X) ― (―) (X) ― (―) (X) ― (―) (X) ― (―) (X) ― (―) (X) ― (―) (X) (X) (X) (X) (X) R/W (0) (INITX 端子 , シャットダウンモードからのリセット ) 初期値 ( 保持 ) (X) (X) (X) ( ソフトウェアリセット , ウォッチドッグリセット ) シャットダウンモードを有効にするためのレジスタです。 SDENB (bit7): シャットダウンイネーブル 1: シャットダウンモード有効 2: シャットダウンモード無効 159 第 4 章 低消費電力モード ● EXTE: 外部割込みイネーブルレジスタ 図 4.4-2 外部割込みイネーブルレジスタ アドレス : 0004D6H bit リード / ライト 7 6 5 4 3 2 1 0 RX1 RX0 INT7 INT6 INT3 INT2 INT1 INT0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) 初期値 (INITX 端子 , シャットダウンモードからのリセット ) ( 保持 ) 初期値 ( 保持 ) ( 保持 ) ( 保持 ) ( ソフトウェアリセット , ウォッチドッグリセット ) シャットダウンモードからの復帰要因を選択するためのレジスタです。 復帰要因として有効にするには , 割込みあるいは CAN の受信信号 (RX) に対応する本 レジスタのビットに "1" を設定してください。シャットダウンモードからの復帰 ( リス タート ) で本レジスタの各ビットはクリアされるので , シャットダウンモードに入る前 に毎回設定する必要があります。 ● EXTF: 外部割込み要因フラグ 図 4.4-3 外部割込み要因フラグ アドレス : 0004D7H bit リード / ライト 初期値 7 6 5 4 3 2 1 0 RX1 RX0 INT7 INT6 INT3 INT2 INT1 INT0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) (INITX 端子 ) 初期値 ( ソフトウェアリセット , シャットダウンモードからのリセット , ウォッチドッグリセット ) シャットダウンモードからの復帰要因を示すレジスタです。 復帰要因として有効な入力があった場合に対応するフラグに "1" が設定されます。本 レジスタは "0" 書込みのみ可能です。これらのフラグのクリアは , CPU 命令により "0" を設定する , もしくは INITX 端子によるリセットで行います。 シャットダウン後に一番初めの要因が受け付けられると , その情報はフラグに保持さ れ , 直ち ( 約 100µs 後 ) に復帰のためのリセットシーケンスを始めます。これにより , 複数の復帰要因がある場合であっても , 時間差がある場合には後続の要因は受け付け られず , フラグも保持されません。 160 第 4 章 低消費電力モード ● EXTLV1: 外部割込みレベルレジスタ 図 4.4-4 外部割込みレベルレジスタ アドレス : 0004D8H bit リード / ライト 7 6 5 4 3 2 1 0 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) 初期値 (INITX 端子 , シャットダウンモードからのリセット ) ( 保持 ) 初期値 ( 保持 ) ( 保持 ) ( 保持 ) ( ソフトウェアリセット , ウォッチドッグリセット ) ● EXTLV2: 外部割込みレベルレジスタ 図 4.4-5 外部割込みレベルレジスタ アドレス : 0004D9H bit リード / ライト 初期値 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) ( 保持 ) ( 保持 ) ( 保持 ) ( 保持 ) (INITX 端子 , シャットダウンモードからのリセット ) ( 保持 ) 初期値 ( 保持 ) ( 保持 ) ( 保持 ) ( ソフトウェアリセット , ウォッチドッグリセット ) シャットダウンモードからの復帰要因の割込みレベルを指定するためのレジスタで す。 表 4.4-1 外部割込みレベルレジスタ LBx LAx 0 0 "L" レベル ( 初期値 ) 0 1 "H" レベル 1 0 設定禁止 1 1 設定禁止 割込みレベル <注意事項> シャットダウンモードからの割込みレベルに対しては , "L" レベルまたは "H" レベルのみ 設定可能です。 161 第 4 章 低消費電力モード ● シャットダウンモードへの移行 シャットダウンモードに遷移するには , 以下の手順が必要です。 1) MB91F467R では , 内 ROM モードの外部バス使用状態からシャットダウンモード に移行する際には , 外部バス制御端子から不必要なパルスを出力することを防ぐ た め , CS0X, CS1X, CS2X, CS3X, CS4X, BGRNTX, WR0X, WR1X, RDX, ASX, WEX, BAAX, IORDX, IOWRX に対応する以下のポート制御レジスタに①∼③の 順で値を設定してください。 ① ポートデータレジスタ(PDR08/PDR09/PDR10/PDR11)に"1"を設定してください。 ② データ方向レジスタ (DDR08/DDR09/DDR10/DDR11) に "0" を設定してください。 ③ ポートファンクションレジスタ (PFR08/PFR09/PFR10/PFR11) に "0" を設定して ください。 2) EXTLV1, EXTLV2 ( 外部割込みレベルレジスタ ) でシャットダウンモードからの 復帰に使用する割込みの信号レベルを設定してください。 3) SHDE ( シャットダウン制御レジスタ ) の SDENB ビットに "1" を設定し , シャッ トダウンモードを有効にしてください。 4) EXTE( 外部割込みイネーブルレジスタ ) で復帰に使用する外部割込みチャネル を設定してください。あらかじめ , SHDE ビットに "1" が設定されていないと , 復帰チャネルを "1" に設定できません。 5) ストップモードへ移行する場合と同様の命令列を実行してください。1) ∼ 3) を 実行しておくことにより , 次の命令シーケンスの実行後 , シャットダウンモード に移行します。 (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 をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP シャットダウンモード中は , 外部バスの制御信号はシャットダウンに移行する直前の 値を保持しますが , それ以外のすべての出力は Hi-Z 状態になります。シャットダウン からの復帰用端子の入力はその復帰要因を受け付けるまでの間 , 入力しきい値とプル アップ / プルダウンの設定を保持します。また , 本モードの間 , 水晶発振は発振を停止 し , 内部ロジックへの電源供給も RAM* およびシャットダウン制御ロジックを除いて 停止します。 *: MB91461 は命令 / データ兼用 RAM(F-bus RAM)64K バイト , MB91F467R はデータ専 用 RAM(D-busRAM)32K バイト となります。 162 第 4 章 低消費電力モード [ シャットダウンモード中の端子状態 ] 表 4.4-2 シャットダウンモード中の端子状態 端子名 端子状態 WDRESETX ASX CS0X, CS1X, CS2X, CS3X, CS4X IORDX IOWRX RDX WR0X, WR1X BGRNTX シャットダウンモード移行直前の状態を保持します。 INT0, INT1, INT2, INT3, INT6, INT7, RX0/INT8, RX1/INT9 シャットダウン中は入力しきい値の設定およびプル アップ / プルダウンの設定を継続します。 最初の復帰要因を受け付けた後 , リセットへ移行す る際に初期値に戻されます。 SYSCLK Hi-Z 状態になります。 その他の端子 Hi-Z 状態になります。 プルアップ / プルダウンの設定は初期値になります。 ● シャットダウンモードからの復帰 外部割込みイネーブルレジスタで設定した外部割込み端子に有効なレベルが入力され ると , リセットがかかります。その後 , 内部ロジックへの電源供給開始 , 発振安定待ち を経て復帰します。その際 , シャットダウンからの復帰要因は , 外部割込み要因フラグ レジスタ (EXTF) に保持されます。このフラグレジスタの値を初期設定ルーチン内で判 定することにより , 初期電源投入時の処理とシャットダウンモード復帰時の処理とを ソフトウェアで判定することが可能です。最初の復帰要因が入力され , 復帰処理を行っ ている最中に入力された割込みについては要因を保持しません。 [ 割込み端子による復帰 ] シャットダウンモードでの復帰要因は , 初めの要因が受け付けられるとフラグに保 持され , リセットシーケンスが走り始めます。複数の復帰要因が入力された場合で も , 時間差がある場合 , 後続の要因が受け付けられず , フラグにも保持されません。 シャットダウンの復帰要因を受け付けると , すべての端子はリセット状態に戻され ます。すなわち , 復帰用端子の入力しきい値設定 , プルアップ / プルダウン設定も初 期状態に戻されます。 復帰要因を受け付けた後は以下の手順を経て起動します。 1) 内部降圧レギュレータからの電源供給再開 2) 発振安定待ち 3) リセット解除 , モードベクタフェッチ , リセットベクタフェッチ シャットダウン中 , 復帰用端子の入力しきい値は , シャットダウン前の設定値が継 続されます。 163 第 4 章 低消費電力モード 割込みからの復帰を行う場合 , 割込み要求レベル設定レジスタ (ELVR) でエッジ検 出は使用できません。 [INITX 端子による復帰 ] INITX 端子に "L" レベルを入力することによりリセットがかかります。この場合は , すべての割込み要因フラグはクリアされます。 割込み端子による復帰と異なり , INITX 端子で復帰する場合には発振安定待ち時間 は確保されません。INITX を 8ms 以上入力し , 発振安定待ち時間を確保してくださ い。 <注意事項> シャットダウンモードからの復帰として NMI を使用することはできません。 シャットダウン中は RTC も動作を停止します。 164 第5章 クロックモジュレータ クロックモジュレータの概要とその機能について説 明します。( この機能は MB91461 には搭載されて いません ) 5.1 クロックモジュレータの概要 5.2 クロックモジュレータレジスタ 5.3 アプリケーションノート 165 第 5 章 クロックモジュレータ 5.1 クロックモジュレータの概要 MB91F467R に搭載されたクロックモジュレータについて説明します。 クロックモジュレータは , クロック信号のスペクトラムを広範囲の周波数に拡散する ことにより , 電磁波障害 (EMI) を低減します。 このモジュールには , PLL 回路から提供される周波数 F0 の標準クロック ( 無変調 ) が 供給されます。この標準クロックの周波数は , ランダム信号によって変調されます。 被変調クロックの平均周波数は , 標準クロックの周波数 F0 です。 図 5.1-1 被変調クロックの周波数スペクトラム ( 基本波のみ ) 変調範囲 周波数 Fmin F0 Fmax ■ 周波数変調モードでの変調度および周波数分解能 被変調クロックの最大周波数および最小周波数 (Fmax および Fmin) は , 変調度パラメー タによって定義されます。また , 変調範囲の分解能は , low (1) ∼ high (7) の 7 段階から 選択できます。高い分解能では , 被変調クロックスペクトラムの拡散周波数の粒度が細 かくなりますが , 利用できる変調度が制限されます。 通常 , 設定可能な最大周波数分解能と最大変調度の組合せによって , 最大の EMI 低減 効果が得られます。ただし , 変調度が低いほうが良好な EMI 動作が得られる場合もあ ります。表 5.2-4 の使用可能な設定の表を参照してください。 166 第 5 章 クロックモジュレータ 5.2 クロックモジュレータレジスタ クロックモジュレータレジスタを一覧表示し , 各レジスタの機能について詳しく説明 します。 ■ クロックモジュレータレジスタ 図 5.2-1 クロックモジュレータレジスタ アドレス: bit 7 6 5 4 3 2 1 0 CMPRL (下位) 初期値 11111101B 0004B9H R/W R/W R/W R/W R/W R/W R/W R/W bit 15 0004B8H - - - - bit 7 0004BB H 14 - 6 予約 13 12 11 10 9 8 R/W R/W R/W R/W R/W R/W 5 予約 4 3 FMOD 予約 RUN R/W R/W R/W R 2 1 0 - FMOD PDX - R/W R/W CMPRH (上位) 初期値 XX000010B CMCR 初期値 X0010X00B 167 第 5 章 クロックモジュレータ ■ クロックモジュレータ制御レジスタ (CMCR) 制御レジスタ (CMCR) には , 以下の機能があります。 • モジュレータを電源切断モードに設定 • 周波数変調モードでのモジュレータ許可 / 禁止 • モジュレータのステータス表示 図 5.2-2 クロックモジュレータ制御レジスタ (CMCR) の構成 アドレス bit 7 - 0004BBH - 6 予約 5 4 3 FMOD 予約 予約 RUN R/W R/W R/W R 2 1 0 - FMOD PDX - R/W R/W CMCR 初期値 X0010X00B bit0 電源切断ビット PDX 0 電源切断モード 1 電源投入 bit1 FMOD 周波数変調許可ビット 0 周波数変調モード禁止 1 周波数変調モード許可 bit3 FMOD RUN 周波数変調モードでのモジュレータステータスビット 0 クロック周波数非変調 1 クロック周波数変調 bit4~bit6 予約 R/W R X - : : : : リード/ライト可能 リードオンリ 不定値 未定義 : 初期値 ビット4 このビットには常に"1"が書き込まれます。 ビット5、6 このビットには常に"0"が書き込まれます。 ビット FMODRUN, FMOD, PDX は , 周波数変調モードのステータスを制御または示し ます。周波数変調モードでは, いくつかの追加構成が必要になります (CMPRレジスタ) 。 168 第 5 章 クロックモジュレータ ■ クロックモジュレータ制御レジスタの内容 表 5.2-1 クロックモジュレータ制御レジスタの各ビットの機能 (1 / 2) ビット名 bit7 機能 未定義 未定義です。初期値は不定となります。 bit6, bit5 予約 このビットには , 常に "0" が書き込まれます。 bit4 予約 このビットには , 常に "1" が書き込まれます。 FMOD RUN : 周波数変 調モード でのモ ジュレー タステー タスビッ ト "0" : MCU は無変調クロックを使用して動作しています。 "1" : MCU は周波数変調されたクロックを使用して動作しています。 FMODRUN は , 周波数変調モード (FMOD = 1) でのモジュレータ出力ク ロックのステータスを示します。出力クロックが周波数変調されたク ロックの場合 , MODRUN は "1" に設定されます。それ以外の場合 , MODRUN は "0" に設定されます。 FMOD を "1" に設定して周波数変調モードを許可した後 , モジュレータ がキャリブレートされます。この時間クロックは無変調クロックにな ります。このため , 出力クロックが変調されたクロックに切り換わり , FMODRUN ビットが "1" に設定されるまでに数 µs かかります。キャ リブレーション時間は , 発振器の周波数によって異なります。発振器 (Fc) が 4MHz の場合 , キャリブレーション時間は 64.00 µs ( キャリブ レーション時間= 256/Fc) になります。 通常動作中は , キャリブレーションの完了後に , クロックが再び無変 調クロックに切り換わることはありません。 FMOD 信号の同期化および無変調クロックへの同期切換えのため , FMODRUN が "0" に変更され , モジュレータの禁止後にクロックが無 変調クロックに切り換わるまでに , 9 × T0 ( 入力クロック周期 ) 未満 かかります。 FMODRUN ビットは読出し専用です。FMODRUN に書き込んでも影 響はありません。 パラメータレジスタ CMPR を変更する前に , モジュレータを禁止して おく必要があります (FMOD = 0 および FMODRUN = 0) 。 未定義 未定義です。初期値は不定となります。 bit3 bit2 169 第 5 章 クロックモジュレータ 表 5.2-1 クロックモジュレータ制御レジスタの各ビットの機能 (2 / 2) ビット名 FMOD : 周波数変 調許可 ビット "0" : 周波数変調禁止 "1" : 周波数変調許可 周波数変調モードでモジュレータを許可するには , FMOD を "1" に設 定する必要があります。 PLL からの標準クロック信号が安定した後 (PLL ロック時間の経過後 ) でないと , モジュレータは許可できません。 周波数変調モードに指定されている PLL 周波数範囲は , 15MHz ∼ 25MHz です。 各 PLL 出力周波数には , 使用可能なモジュレーションパラメータの セットがあります。選択された設定 (CMPR レジスタ ) と PLL 周波数 が一致している必要があります。 CMPR レジスタの説明を参照してください。 PLL 出力周波数が変更されたか , または ( 電源切断モードなどで ) PLL が OFF になった場合は , FMOD = 0 および FMODRUN = 0 に変更す る前に , モジュレータを禁止する必要があります。 モジュレータを許可するには , PDX を "1" に設定することにより , モ ジュレータを電源切断モードからアクティブモードに切り換えておく 必要があります。また , 起動時間として 6 µs 待つ必要があります。 推奨の起動順序の説明は , アプリケーションノートを参照してくださ い。 周波数変調モードでモジュレータを許可するには , パラメータレジス タ CMPR を使用して適切な設定を選択しておく必要があります。 FMOD を "1" に設定して周波数変調モードを許可した後 , モジュレー タがキャリブレートされます。この時間クロックは無変調クロックに なります。このため , 出力クロックはすぐに変調クロックに切り換わ りません。クロックのステータス ( 周波数変調 / 無変調 ) は , FMODRUN ステータスビットで示されます。FMODRUN ビットの説明を参照して ください。 FMOD 信号の同期化および無変調クロックへの同期切換えのため , モ ジュレータの禁止後にクロックが無変調クロックに切り換わるまでに , 9 × T0 ( 入力クロック周期 ) 未満かかります。モジュレータは , いつで も禁止できます。 パラメータレジスタ CMPR を変更する前に , モジュレータを禁止して おく必要があります (FMOD = 0 および FMODRUN = 0) 。 PDX : 電源切断 ビット "0" : 電源切断モード "1" : 電源投入 PDX はモジュレータの電源切断信号です。周波数変調モードを許可す るには , あらかじめこのビットを 1 に設定し , 起動時間として 6 µs 待つ 必要があります。推奨の起動順序の説明は , アプリケーションノート を参照してください。 電源切断モード (PDX = 0) に切り換える前に , モジュレータを禁止し ておく必要があります (FMOD = 0 および FMODRUN = 0) 。 bit1 bit0 170 機能 第 5 章 クロックモジュレータ 以下の表に , モジュレータの状態の要約を示します。 表 5.2-2 モジュレータの状態 FMOD PDX FMODRUN ( 読出し専用 ) モジュレータ禁止 0 0 0 モジュレータ電源投入 , モジュレータ起動時間待ち (> 6 µs) 0 1 0 周波数変調モードでモジュレータ許可 , モジュレータはキャリブレート中 , 変調はアクティブで ない 1 1 0 周波数変調モードでモジュレータが動作中 , 変調はアクティブ 1 1 1 モジュレータの状態 設定禁止 上記以外の設定 171 第 5 章 クロックモジュレータ ■ クロック変調パラメータレジスタ (CMPR) 変調パラメータレジスタ (CMPR) は , 周波数変調モードでの変調度を決定します。 図 5.2-3 変調パラメータレジスタ アドレス: bit 7 6 5 4 3 2 1 0 CMPRL (下位) 初期値 11111101B 0004B9H R/W R/W R/W R/W R/W R/W R/W R/W bit 15 14 13 12 11 10 9 8 0004B8H R/W R/W R/W R/W R/W R/W R/W X CMPRH (上位) 初期値 XX0000010B : リード/ライト可能 : 不定値 : 未定義 変調パラメータは, 変調度, 変調されたクロックでの実際の最小周波数および最大周波数 を決定します。最適な設定を選択する方法については , アプリケーションノートを参照 してください。 使用可能な変調パラメータの各セットは , それぞれ特定の PLL 周波数を参照します。 PLL 周波数と , 選択されたパラメータは一致している必要があります。以下の使用可能な設 定の表を参照してください。 変調パラメータは , 周波数変調モードのみに影響を与えます。 <注意事項 > 変調パラメータの変更は , モジュレータが禁止されており , RUN フラグが "0" になってい る場合 (FMOD = 0, FMODRUN = 0) にのみ行ってください。 172 第 5 章 クロックモジュレータ ■ 変調パラメータレジスタの内容 表 5.2-3 変調パラメータレジスタ (CMPR) の各ビットの機能 ビット名 機能 bit15, bit14 未定義 未定義です。初期値は不定となります。 bit13 ∼ bit0 MP13 ∼ MP0: 変調パラメー タビット PLL 周波数に応じて , 以下の変調パラメータ設定が使用可能です。 対応する CMPR レジスタ値は , 表 5.2-4 に示されます。 F0 : 入力クロックの周波数 (PLL 周波数 ) T0 : 入力クロックの周期 (PLL クロック周期 ) 分解能 : 被変調クロックの周波数の分解能。低 (1) ∼高 (7) Fmin : 周波数変調されたクロックでの実際の最小周波数 Fmax : 周波数変調されたクロックでの実際の最大周波数 位相スキュー : 無変調標準クロックに対する被変調クロックの最大位相シフト ( 無変調 クロックのクロック周期 ) 例 : 位相スキュー= 1.44 最悪の場合 , 被変調クロックの n 周期のシーケンスが , 無変調標準クロッ クの n 周期よりも 1.44 × T0 短くなるか , または 1.44 × T0 長くなること があります。 n は >50 周期の数値です。 位相スキュー50 : n<= 50 周期でのシーケンスの位相スキュー CMPR : CMPR レジスタのレジスタ設定 n 周期 標準クロック + 位相スキュー n 周期 変調クロック n 周期 173 第 5 章 クロックモジュレータ <注意事項> Fmax は 90MHz を超えないように設定してください。 以下の表に , 複数の MCU クロックおよび変調パラメータの推奨設定を示します。 表 5.2-4 変調パラメータ設定 (1 / 3) +/- 位相 スキュー min/max [ 周期 ] CMPR F0 (MHz) 分解能 変調度 Fmin (MHz) Fmax (MHz) +/- 位相 スキュー 50 [ 周期 ] 16 1 1 15.00 17.14 0.27 0.72 027FH 16 1 2 14.58 17.73 0.53 1.44 047EH 16 1 3 14.17 18.37 0.8 2.16 067DH 16 1 4 13.79 19.05 1.06 2.88 087CH 16 1 5 13.43 19.79 1.33 3.59 0A7BH 16 1 6 13.09 20.58 1.59 4.31 0C7AH 16 1 7 12.76 21.45 1.86 5.03 0E79H 16 1 8 12.45 22.38 2.13 5.75 1078H 16 1 9 12.15 23.41 2.39 6.47 1277H 16 1 10 11.87 24.53 2.66 7.19 1476H 16 1 11 11.60 25.76 2.92 7.91 1675H 16 1 12 11.35 27.13 3.19 8.63 1874H 16 1 13 11.10 28.65 3.45 9.34 1A73H 16 1 14 10.86 30.34 3.72 10.06 1C72H 16 1 15 10.64 32.25 3.98 10.78 1E71H 16 2 1 14.58 17.73 0.39 1.02 02BEH 16 2 2 13.79 19.05 0.78 2.03 04BCH 16 2 3 13.09 20.58 1.17 3.05 06BAH 16 2 4 12.45 22.38 1.56 4.06 08B8H 16 2 5 11.87 24.53 1.95 5.08 0AB6H 16 2 6 11.35 27.13 2.34 6.09 0CB4H 16 2 7 10.86 30.34 2.73 7.11 0EB2H 16 3 1 14.17 18.37 0.78 1.86 02FDH 16 3 2 13.09 20.58 1.56 3.72 04FAH 16 3 3 12.15 23.41 2.34 5.58 06F7H 174 第 5 章 クロックモジュレータ 表 5.2-4 変調パラメータ設定 (2 / 3) +/- 位相 スキュー min/max [ 周期 ] CMPR F0 (MHz) 分解能 変調度 Fmin (MHz) Fmax (MHz) +/- 位相 スキュー 50 [ 周期 ] 16 3 4 11.35 27.13 3.13 7.44 08F4H 16 3 5 10.64 32.25 3.91 9.3 0AF1H 16 4 1 13.79 19.05 0.75 2 033CH 16 4 2 12.45 22.38 1.5 4 0538H 16 4 3 11.35 27.13 2.25 6 0734H 16 5 1 13.43 19.79 1.13 3.94 037BH 16 5 2 11.87 24.53 2.25 7.88 0576H 16 5 3 10.64 32.25 3.38 11.81 0771H 16 6 1 13.09 20.58 1.5 2.67 03BAH 16 6 2 11.35 27.13 3 5.34 05B4H 16 7 1 12.76 21.45 1.81 3.95 03F9H 16 7 2 10.86 30.34 3.63 7.91 05F2H 20 1 1 18.60 21.63 0.27 0.72 027FH 20 1 2 18.08 22.38 0.53 1.44 047EH 20 1 3 17.58 23.20 0.8 2.16 067DH 20 1 4 17.11 24.07 1.06 2.88 087CH 20 1 5 16.66 25.01 1.33 3.59 0A7BH 20 1 6 16.24 26.02 1.59 4.31 0C7AH 20 1 7 15.84 27.13 1.86 5.03 0E79H 20 1 8 15.46 28.33 2.13 5.75 1078H 20 1 9 15.09 29.64 2.39 6.47 1277H 20 1 10 14.74 31.08 2.66 7.19 1476H 20 1 11 14.41 32.67 2.92 7.91 1675H 20 2 1 18.08 22.38 0.39 1.02 02BEH 20 2 2 17.11 24.07 0.78 2.03 04BCH 20 2 3 16.24 26.02 1.17 3.05 06BAH 20 2 4 15.46 28.33 1.56 4.06 08B8H 20 2 5 14.74 31.08 1.95 5.08 0AB6H 20 3 1 17.58 23.20 0.78 1.86 02FDH 20 3 2 16.24 26.02 1.56 3.72 04FAH 175 第 5 章 クロックモジュレータ 表 5.2-4 変調パラメータ設定 (3 / 3) +/- 位相 スキュー min/max [ 周期 ] CMPR F0 (MHz) 分解能 変調度 Fmin (MHz) Fmax (MHz) +/- 位相 スキュー 50 [ 周期 ] 20 3 3 15.09 29.64 2.34 5.58 06F7H 20 4 1 17.11 24.07 0.75 2 033CH 20 4 2 15.46 28.33 1.5 4 0538H 20 4 3 14.09 34.42 2.25 6 0734H 20 5 1 16.66 25.01 1.13 3.94 037BH 20 5 2 14.74 31.08 2.25 7.88 0576H 20 6 1 16.24 26.02 1.5 2.67 03BAH 20 7 1 15.84 27.13 1.81 3.95 2BF5H 24 1 1 22.14 26.20 0.27 0.72 027FH 24 1 2 21.52 27.13 0.53 1.44 047EH 24 1 3 20.93 28.12 0.8 2.16 067DH 24 1 4 20.38 29.19 1.06 2.88 087CH 24 1 5 19.85 30.34 1.33 3.59 0A7BH 24 1 6 19.35 31.59 1.59 4.31 0C7AH 24 1 7 18.87 32.95 1.86 5.03 0E79H 24 2 1 21.52 27.13 0.39 1.02 02BEH 24 2 2 20.38 29.19 0.78 2.03 04BCH 24 2 3 19.35 31.59 1.17 3.05 06BAH 24 3 1 20.93 28.12 0.78 1.86 02FDH 24 3 2 19.35 31.59 1.56 3.72 04FAH 24 3 3 17.99 36.04 2.34 5.58 06F7H 24 4 1 20.38 29.19 0.75 2 033CH 24 5 1 19.85 30.34 1.13 3.94 037BH 24 6 1 19.35 31.59 1.5 2.67 03BAH 24 7 1 18.87 32.95 1.81 3.95 03F9H 176 第 5 章 クロックモジュレータ 5.3 アプリケーションノート 周波数変調モードの起動 / 停止順序と変調パラメータについて説明します。 ■ 周波数変調モードの推奨の起動 / 停止順序 [ 起動順序 ] [ 停止順序 ] 1. モジュレータを電源切断モードから電源投入モードに切り換えます (PDX = 1) 。 2. PLL を ON に切り換えます。 3. PLL ロック時間を待機します。同時に , モジュレータが起動されます。 4. CMPR レジスタを適切な値に設定します。 5. 周波数変調モードを許可します (FMOD = 1) 。 キャリブレーション完了後 , クロックが無変調クロックから変調クロックに切 り換わり , FMODRUN フラグが 1 に変更されます。 1. モジュレータを禁止します (FMOD = 0) 。 2. FMODRUN が 0 に変更されるまで待ちます。 3. 電源切断モードに切り換えます (PDX = 0) 。 4. PLL の禁止 , 電源切断モードへの切換えなどを行います。 <注意事項> PLL ロック時間の経過前にモジュレータを許可しないでください。モジュレータの動作中は PLL を禁止しないでください。 177 第 5 章 クロックモジュレータ ■ 周波数変調モードの変調パラメータ 特定の EMI 低減効果を得るため変調パラメータ設定は一定値ではありません。最適な設 定は , 実際の用途 , システム全体 , 要件によって異なります。 周波数変調モードでの最適な変調パラメータを調べるには , 以下の方法をお勧めしま す。 1 性能のニーズに基づいて , 必要な PLL 周波数を定義しま す。 例 : 16MHz 2 許容される MCU の最大クロック周波数を決定します。 例 : 32MHz 3 最大分解能および最大変調度での設定を選択します。最 大周波数は , 許容される MCU の最大クロック周波数未満 にします。 例 : 分解能 : 7, 変調度 : 2, CMPR = 05F2H (Fmax = 30.34MHz) 4 EMI 測定を実行します。 5 EMI 測定が要件を満たさなかった場合は , 以下のいずれ かを実行します。 6 同じ周波数分解能で変調度を下げます。 ( これにより , >100MHz の上位周波数帯域の低下は改善さ れる可能性がありますが , <100MHz の基本帯域の低下は 悪化します。) 例 : 分解能 : 7, 変調度 : 1, CMPR = 03F9H または 周波数分解能を下げて変調度を上げます。 ( これにより , <100MHz の基本帯域の低下は改善される 可能性がありますが , >100MHz の上位周波数帯域の低 下は悪化します。) または 例 : 分解能 : 5, 変調度 : 3, CMPR = 0771H 新しい設定を用いて 3) ∼ 5) の操作を繰り返し , 最良の 設定が得られるまで続けてください。 ■ 推奨設定 次の表に , PLL クロックおよび許容される最大 MCU クロック周波数の条件の例 , および 推奨クロックモジュレータ設定を示します。 表 5.3-1 PLL クロックの条件の例 F0 PLL クロック 周波数 許容される最大 MCU クロック周 波数 分解能 変調度 Fmax CMPR 16MHz 20MHz 5 1 19.79MHz 037BH 16MHz 25MHz 7 1 21.45MHz 03F9H 16MHz 32MHz 7 2 30.34MHz 05F2H 20MHz 25MHz 4 1 24.07MHz 033CH 20MHz 32MHz 7 1 27.13MHz 2BF5H 24MHz 32MHz 6 1 31.59MHz 03BAH 178 クロックモジュレータ設定 第6章 サブ発振安定待ちタイマ サブ発振安定待ちタイマの概要とその機能につい て説明します ( この機能は MB91461 には搭載され ていません )。 6.1 サブ発振安定待ちタイマの概要 6.2 サブ発振安定待ちタイマの構成 6.3 サブ発振安定待ちタイマのレジスタ 6.4 サブ発振安定待ちタイマの動作説明 6.5 アプリケーションノート 6.6 サブ発振安定待ちタイマの使用上の注意 179 第 6 章 サブ発振安定待ちタイマ 6.1 サブ発振安定待ちタイマの概要 サブ発振安定待ちタイマの機能と特長について説明します。 ■ サブ発振安定待ちタイマ機能 サブ発振安定待ちタイマは , サブクロックとともにカウントアップする 15 ビットカウ ンタです。このタイマは , MCU 動作クロックの選択 / 分周設定に影響を与えません。 主にメインクロックの動作中にサブクロック発振が停止した場合 , サブクロック発振 が再開されると , このタイマを使用してサブクロック発振安定待ち時間が取得されま す。 ■ 特長 • タイプ :15 ビットフリーランカウンタ • チャネル数 : 1 チャネル • クロックソース :サブクロック (原発振) --- 周期=1/FCL-SUB =1/32.768kHz • インターバル時間 周期= 210/F CL-SUB, :4 タイプ 213/F CL-SUB, 214/FCL-SUB, 215/FCL-SUB, (31.25ms, 0.25s, 0.50s, 1.00s) 180 • タイマクリア要因 : ( ソフトウェア , オーバフロー , リセット (INIT) ) • 割込み : クロック割込み ( インターバル割込み ) • カウント値 : 読み書き不可 ( クリアのみ ) 第 6 章 サブ発振安定待ちタイマ 6.2 サブ発振安定待ちタイマの構成 サブ発振安定待ちタイマのブロックダイヤグラムを図 6.2-1 に示します。 図 6.2-1 サブ発振安定待ちタイマのブロックダイヤグラム インターバル時間 WS1 WS0 0 0 1 0 1 0 1 1 サブクロック (原発振) 0 1 2 3 4 5 6 7 210 / FCL-SUB 213 / FCL-SUB 214 / FCL-SUB 215 / FCL-SUB エッジ検出 セレクタ クロックタイマ (14ビットフリーランタイマ) WPCR:ビット2-1 WIE WPCR:ビット6 割込み禁止 割込み許可 0 1 0 WIF WPCR:ビット7 0 1 割込み要求なし 割込み要求あり WRITE; 0: フラグクリア クロックタイマ 1 割込み (#49) 8 9 10 11 12 13 14 21 22 23 24 25 26 27 28 29 210 211 212 213 214 215 32.768 kHz タイマクリア WCL 0 1 WPCR:ビット2 タイマクリア 動作への影響はありません 181 第 6 章 サブ発振安定待ちタイマ 6.3 サブ発振安定待ちタイマのレジスタ サブ発振安定待ちタイマの設定に使用するレジスタを説明します。 ■ サブ発振安定待ちタイマのレジスタ一覧 図 6.3-1 サブ発振安定待ちタイマのレジスタ構成 WPCRH bit アドレス : 0004CAH リード / ライト 182 7 6 5 4 3 2 1 0 WIF WIE WEN WCL R/W 予約 R/W WS0 R/W 予約 R/W WS1 R/W R/W R/W R/W 初期値 000XX001B 第 6 章 サブ発振安定待ちタイマ WPCRH : サブ発振安定待ちタイマ制御レジスタ 6.3.1 このレジスタは , インターバル時間の選択 , タイマのクリア , 割込みの制御 , タイマ ストップなどの制御 , 状態の確認を行う場合に使用します。 ■ WPCRH WPCRH bit アドレス : 0004CAH リード / ライト 7 6 5 WIF R/W WIE R/W WEN R/W 4 予約 R/W 3 2 1 0 予約 R/W WS1 R/W WS0 R/W WCL R/W 初期値 000XX001B [bit7] WIF : サブ発振安定タイマ割込み要求フラグ WIF 読出し動作 書込み動作 0 割込み要求なし 割込み要求フラグのクリア 1 割込み要求あり 書込みによる動作への影響なし サブ発振安定タイマ割込み要求フラグビットは , 選択したインターバル周期出力の 立下りエッジで "1" に設定されます。 [bit6] WIE : 割込み要求許可 WIE 動作 0 割込み要求禁止 1 割込み要求許可 • 割込み要求許可ビットが "1" に設定されている場合 , 割込み要求は許可されます。 • サブ発振安定タイマ割込み要求フラグが (WIF = 1) であり , 割込み要求許可ビット (WIE) が "1" に設定されている場合は , 割込み要求が直ちに生成されます。 [bit5] WEN : タイマ動作許可 WEN 動作 0 タイマ動作停止 1 タイマ動作許可 bit4, bit3 : 予約ビット。 "0" と書き込むようにしてください。読出し値は "0" です。 183 第 6 章 サブ発振安定待ちタイマ [bit2, bit1] WS1, WS0 : インターバル周期の選択 WS1 WS0 0 0 210/FCL-SUB (31.25ms) 0 1 213/FCL-SUB (0.25s) 1 0 214/FCL-SUB (0.50s) 1 1 215/FCL-SUB (1.00s) インターバル周期 (FCL-SUB = 32.768kHz) [bit0] WCL : タイマクリア WCL 動作 0 サブ発振安定タイマクリア 1 書込みによる Write 動作への影響なし タイマは , INITX 端子入力およびウォッチドッグリセットによってもクリアされま す。 <注意事項> • 初期値は , 初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) 設定を使用して 設定できますが , 動作初期化リセット ( ソフトウェアリセット ) では , 初期化する代わ りに現在値が保持されます。 • リセットを解除した後, 割込み要求許可 (WIE=1) およびインターバル周期選択 (WS1, WS0) を設定する場合は , 同時にタイマ割込み要求フラグ (WIF) およびタイマクリア (WCL) を "0" に設定するようにしてください。 184 第 6 章 サブ発振安定待ちタイマ 6.4 サブ発振安定待ちタイマの動作説明 サブ発振安定待ちタイマの動作について説明します。 ■ サブクロック発振安定待ち割込み 図 6.4-1 サブクロック発振安定待ち割込みのタイミングチャート (7) (5) サブクロック 発振例 クロックタイマ カウント (8) 0400H (6) 0000H 時間 (1) 210 (bit9) (8) サブクロックストップビット WCL (4) (2) WIF (3) WIE (3) 動作クロックモード (9) (11) (11) サブクロック メインクロック (10) (1) インターバルを選択します (WS1, WS0) 。( この例では , 210/FCL-SUB が選択されています。) (2) ソフトウェアによりクリアされるようタイマを設定します (WCL = 0) 。 (3) ソフトウェアによるフラグクリア (WIF = 0) および割込み要求許可 (WIE = 1) を設定します。 (4) ソフトウェアによるサブクロック動作中のサブクロックストップ解除 (OSCCR.OSCDS1 = 0) を設 定します。 (5) サブクロック発振が開始されます。 (6) サブクロック ( 原発振 ) とともにカウントアップします。 (7) サブクロック発振を安定にします。 (8) インターバル時間を選択時間にします (210 分周の立下りを検出 )。 (9) フラグ (WIF) が "1" になった場合 , サブクロック発振安定待ち割込み要求が生成されます。 (10) 割込みによる処理要因 ( ソフトウェア ) : 動作クロックの切換え ( サブ RUN => メイン RUN) (11) 割込み要求禁止 (WIE = 0) および割込み要求クリア (WIF = 0) 185 第 6 章 サブ発振安定待ちタイマ ■ インターバル割込み ( クロック割込み ) 図 6.4-2 インターバル割込み ( クロック割込み ) のタイミングチャート クロックタイマ カウント (4) 4000H (4) 2000H 0000H (3) (2) 時間 13 (1) 2 (bit12) WCL (3) (4) (4) (2) WIF (2) WIE (2) (5) (6) (5) (6) (1) インターバル時間を選択します (WS1, WS0) 。( この例では , 213/FCL-SUB が選択されています。) (2) ソフトウェアによるタイマクリア (WCL = 0) , フラグクリア (WIF = 0) , および割込み要求許可 (WIE = 1) を設定します。 (3) タイマがサブクロック ( 原発振 ) とともにカウントアップします。 (4) インターバル時間を選択時間にします (213 分周の立下りを検出 )。 (5) フラグ (WIF) が "1" に設定されている場合 , インターバル割込み要求 ( クロック割込み要求 ) が生 成されます。 (6) 割込みによって生じる処理 ( ソフトウェア ) : 割込み要求クリア (WIF = 0) ( クロックカウントなどの任意処理 ) (7) 項目 (3) ∼ (6) を繰り返します。 186 第 6 章 サブ発振安定待ちタイマ ■ インターバル動作によるストップモードからのリターン ( クロック割込み ) 図 6.4-3 インターバル動作によるストップモードからのリターン ( クロック割込み ) の タイミングチャート クロックタイマ カウント 7FFFH 4000H (2) 0000H (3) 2 14 (bit13) (7) インターバル時間 WCL (1) (10) (8) WIF (4) WIE (5) MCUの状態 メイン RUN サブ RUN (6) (9) ストップ サブ RUN ストップ サブ RUN ストップ サブ RUN ストップ サブ RUN ストップ サブ RUN 発振安定待ち時間 (1) サブ発振安定タイマがソフトウェアによりクリアされます (WCL に "0" が書き込まれます )。 (2) サブ発振安定タイマをサブクロックとともにカウントアップします。 (3) インターバル時間を選択します。( この例では , 0.5 秒 : WS1, WS0 = 10B を選択します ) (4) ソフトウェアによるフラグクリア (WIF = 0) およびサブ発振安定タイマ割込み許可 (WIE = 1) を 設定します。 (5) MCU 動作をメイン RUN からサブ RUN に切り換えます。 (6) ストップモードに切り換えます。 (7) インターバル時間を選択時間にします (0.5 秒 )。 (8) 割込み要求フラグ (WIF) が "1" に設定されます。 (9) 割込み要求が許可されると (WIE = 1) , ストップモードからサブ RUN に戻ります。 (10) ソフトウェアにより割込み要求フラグがクリアされます (WIF に "0" が書き込まれます )。 (11) 項目 (6) ∼ (10) を繰り返します。 187 第 6 章 サブ発振安定待ちタイマ 6.5 アプリケーションノート サブ発振安定待ちタイマの設定方法など , アプリケーション使用時の操作方法を説 明します。 ● サブ発振安定待ちタイマの設定 表 6.5-1 サブ発振安定タイマに必要な設定 設定 設定レジスタ インターバル時間の設定 サブ発振安定待ちタイマ制御レジス タ (WPCRH) カウントクリア 表 6.5-2 サブ発振安定タイマ割込みの許可に必要な項目 設定 設定レジスタ サブ発振安定タイマの割込みベクタおよび フリーランタイマレベルの設定 「第 11 章 割込みコントローラ」を参 照してください。 サブ発振安定タイマ割込みの設定 割込み要求のクリア 割込み要求の許可 サブ発振安定待ちタイマ制御レジス タ (WPCRH) ● インターバル時間 ( 待ち時間 ) の種類と選択方法 インターバル時間には 4 種類あり , インターバル選択ビット (WPCRH.WS1, WS0) を使 用して設定します。 インターバル選択ビット 188 インターバル時間設定 インターバル ( 待ち時間 ) の例 FCL-SUB = 32.768kHz のとき WS1 WS0 0 0 210/FCL-SUB 31.25ms 0 1 213/FCL-SUB 0.25s 1 0 214/FCL-SUB 0.50s 1 1 215/FCL-SUB 1.00s 第 6 章 サブ発振安定待ちタイマ ● サブ発振安定タイマのクリア方法 サブ発振安定タイマのクリア方法を以下に示します。 • クリアビット (WPCRH.WCL) を設定します。 動作 クリアビット (WCL) サブ発振安定タイマのクリア "1" を書き込みます。 • リセットを行います。 初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) で 15 ビットフリーラ ンタイマをクリアします。 <注意事項> 動作初期化リセット ( ソフトウェアリセット ) によって , 15 ビットフリーランタイマのカ ウントが保持されます。 • サブ発振安定タイマのオーバフロー ("FFFFH" の次のカウントアップ ) によって , カ ウント値が "0000H" にリセットされます。 ● 割込み関連レジスタ 以下の表に , 割込みレベルとベクタの関係を示します。 割込みレベルおよび割込みベクタについては ,「第 11 章 割込みコントローラ」を参照 してください。 割込みベクタ ( デフォルト ) #143 アドレス : 0FFDC0H 割込みレベル設定ビット (ICR4 ∼ ICR0) 割込みレベルレジスタ (ICR63) アドレス : 047FH 割込み要求フラグ (WPCRH.WIF) は自動的にはクリアされないため , ソフトウェアに よる割込み処理から戻る前にクリアしてください。(WIF ビットに "0" が書き込まれま す。) 189 第 6 章 サブ発振安定待ちタイマ ● 割込みの許可方法 割込み許可は , 割込み要求許可ビット (WPCRH.WIE) を使用して設定されます。 割込み要求許可ビット (WIE) 割込み禁止 値を "0" に設定します 割込み許可 値を "1" に設定します 割込み要求は , 割込み要求ビット (WPCRH.WIF) を使用してクリアされます。 割込み要求ビット (WIF) 割込み要求クリア "0" を書き込みます。 ● サブ発振安定タイマカウントの停止方法 タイマ動作許可ビット (WPCRH.WEN) を使用して設定します。 「6.3 サブ発振安定待ち タイマのレジスタ」を参照してください。 また , メインクロック動作中に MCU によってサブクロックが停止された場合は , サブ クロック発振安定待ちタイマもカウントを停止します。 190 第 6 章 サブ発振安定待ちタイマ 6.6 サブ発振安定待ちタイマの使用上の注意 サブ発振安定待ちタイマを使用するときは , 次の点に注意してください。 [ タイマ割込み要求フラグ (WIF) の注意 ] • タイマ割込み要求フラグの要求 (WIF = 1) , およびソフトウェアによって "0" がフラグ に書き込まれる書込みタイミングを同時に設定する場合 , フラグは "1" に設定されま す。 • リセットが無効になった後に割込み要求が許可された (WIE = 1) 場合 , およびイン ターバル時間が変更された場合 , 同時に割込み要求許可フラグ (WIF) とクリアビッ ト (WCL) に "0" を設定するようにしてください。 • リードモディファイライト (RMW) 系命令では "1" が読み出されます。 [ 初期化リセットの注意 ] • 初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) を設定すると , タイマ 割込み要求ビット (WIF) , タイマ割込み要求許可ビット (WIE) , タイマ許可ビット (WEN) , およびタイマクリアビット (WCL) が "0" に初期化されますが , インターバ ル周期選択ビット (WS1, WS0) は初期化できません。ソフトウェアにより設定して ください。 • 初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) を使用してサブ発振安 定タイマ制御レジスタの初期値を設定できますが , 動作初期化リセット ( ソフト ウェアリセット ) では , サブ発振安定タイマ制御レジスタの値が初期化される代わ りに , 現在の値が保持されます。 [ 発振開始直後の注意 ] 発振開始直後にはメインクロック発振およびサブクロックの発振周期が不安定な ため , 発振安定待ち時間の値は見積もり値になります。 [ その他の注意 ] 不安定なクロックはデバイス全体に供給される可能性があり , サブクロック停止状 態からサブクロックの発振が開始されるようになっていたり , サブクロック発振が 安定するまで待機せずに MCU 動作モードがメイン RUN からサブ RUN モードに切 り換えられた場合は , 通常動作が保証されません。サブ発振安定タイマなどを使用 して , サブクロック発振安定待ち時間を取得するようにしてください ( メインク ロックがクロックソースとして選択されている場合は , サブクロックの発振安定待 ち時間は取得されないことがあります ) 。 191 第 6 章 サブ発振安定待ちタイマ • サブクロックの発振が停止しているときはサブ発振安定タイマが停止するため , ク ロック割込み ( インターバル割込み ) も生成されません。クロック割込み ( インター バル割込み ) を使用した処理が実行される場合は , サブクロック発振を許可してく ださい ( サブクロック発振を停止しないでください ) 。 • サブ発振安定タイマは , サブクロックとともにカウントアップします。これにより , 以下のような場合にはサブクロック発振が停止するため , タイマはカウントを停止 します。 - ストップモードで停止するようサブクロックが設定されており ( サブ発振許可 ビット= 1) , モードがストップモードに切り換えられている場合 , ストップモー ド時にサブ発振安定タイマがカウントを停止します。 - サブ発振安定タイマがストップモード時にもカウントを継続するようにするに は , サブクロック発振許可ビットを "0" に設定してから , モードをストップモード に切り換えるようにしてください。 - サブクロックにおいてサブクロックストップビット= 1 の場合 , およびサブク ロックが動作中に発振を停止するよう指定されている場合は , サブクロック動作 中にサブ発振安定タイマも停止します。 192 第7章 ハードウェアウォッチ ドッグタイマ ハードウェアウォッチドッグタイマの機能につい て説明します。 7.1 ハードウェアウォッチドッグタイマの概要 7.2 ハードウェアウォッチドッグタイマの構成 7.3 ハードウェアウォッチドッグタイマのレジスタ 7.4 ハードウェアウォッチドッグタイマの機能 7.5 ハードウェアウォッチドッグタイマ使用上の注意 193 第 7 章 ハードウェアウォッチドッグタイマ 7.1 ハードウェアウォッチドッグタイマの概要 ハードウェアウォッチドッグタイマは , 内部カウンタが一定期間クリアされない場 合にリセット信号 ( 設定初期化リセット ) を発行します。 ■ ハードウェアウォッチドッグタイマ ハードウェアウォッチドッグタイマは , CPU 動作監視用のモジュールです。このタイ マは設定初期化リセット (INIT) 後 , 直ちにカウントアップを開始します。プログラム 実行を継続させるには一定期間内に定期的にこのタイマをクリアする必要がありま す。無限ループに陥った場合などでカウンタが一定期間以上クリアされない場合はリ セット信号が発行されます。 外部端子 WDRESETX に出力される "L" パルス幅は原発振クロックの 128 サイクル分 , 内部リセットは 1024 サイクル分の幅となります。 <注意事項> CPU が下記のような動作を停止するモード ( スタンバイモード ) へ遷移した場合は , 本モ ジュールの動作も停止します。 • スリープモード : CPU 停止 , 周辺回路動作 • ストップモード : CPU および周辺回路停止 • シャットダウンモード : CPU および周辺回路停止 • RTC モード : CPU および RTC モジュールを除く周辺回路停止 , 発振子動作 • デバッグモード : DSU ( デバッグサポートユニット ) によりブレークが発生し , デバッグルーチンが走行しているとき。 下記条件のいずれかを満たすことにより , ハードウェアウォッチドッグタイマはクリアさ れます。 • HWDCS レジスタの CL ビットへの "0" 書込み • リセット • 発振停止 • スリープ / ストップ / シャットダウンモード , RTC モード , デバッグモードのいずれか へ遷移 194 第 7 章 ハードウェアウォッチドッグタイマ 7.2 ハードウェアウォッチドッグタイマの構成 ハードウェアウォッチドッグタイマは , 以下の 2 つの回路で構成されます。 • ウォッチドッグタイマ • ハードウェアウォッチドッグタイマ制御レジスタ ■ ハードウェアウォッチドッグタイマのブロックダイヤグラム 図 7.2-1 ハードウェアウォッチドッグタイマのブロックダイヤグラム MB91461の場合 MB91F467Rの場合 CR発振 X0入力 (水晶発振回路) FF カウンタ 1/2 リセット信号 クリア 予約 予約 予約 予約 CL 予約 予約 CPUF 内部バス ● ウォッチドッグタイマ CPU 動作を監視するためのタイマです。リセット解除後は定期的にクリアしてくださ い。 ● ハードウェアウォッチドッグタイマ制御レジスタ このレジスタにはリセットフラグとタイマのクリアビットがあります。 ● リセット発行 タイマがある一定期間以上クリアされない場合 , ハードウェアウォッチドッグタイマ モジュールは設定初期化リセット (INIT) を発行します。内部リセット信号の幅は原発 振クロックの 1024 周期分となります。 ● ウォッチドッグタイマの動作クロック ウォッチドッグタイマの動作クロックは , MB91461 では X0 からのクロック ( 外部入力あるいは水晶発振 ) , MB91F467R では内蔵 CR 発振からのクロック , となります。 195 第 7 章 ハードウェアウォッチドッグタイマ 7.3 ハードウェアウォッチドッグタイマのレジスタ ハードウェアウォッチドッグタイマ制御レジスタには , リセットフラグとウォッチ ドッグタイマクリアビットがあります。 ■ ハードウェアウォッチドッグタイマ制御レジスタ 図 7.3-1 ハードウェアウォッチドッグタイマ制御レジスタ HWDCS bit アドレス : 0004C7H 7 予約 リード / ライト (R/W) 0 初期値 6 5 4 3 2 1 0 予約 (R/W) 0 予約 (R/W) 0 予約 (R/W) 1 CL 予約 (R/W) 0 予約 (R/W) 0 CPUF (W) 1 (R/W) 0 [bit7 ∼ bit4] 予約 : 予約ビット これらのビットは予約ビットです。 必ず , "0001B" を設定してください。 [bit3] CL: タイマクリアビット ウォッチドッグタイマクリアビットです。 このビットに "0" を書き込むことによって , ウォッチドッグタイマはクリアされま す。 読出し値は常に "1" です。"1" 書込みは無効です。 [bit2, bit1] 予約 : 予約ビット これらのビットは予約ビットです。 必ず , "00B" を設定してください。 [bit0] CPUF: CPU リセットフラグ ウォッチドッグタイマにオーバフローが発生すると , このビットは "1" に設定され ます。 "0" 書込みによりこのビットはクリアされます。"1" 書込みは無効です。 外部リセット入力 (INITX) により初期化されますが , 内部リセット ( ソフトウェア リセット ) では初期化されません。 196 第 7 章 ハードウェアウォッチドッグタイマ ■ ハードウェアウォッチドッグタイマ期間レジスタ 図 7.3-2 ハードウェアウォッチドッグタイマ期間レジスタ HWWDE bit アドレス : 0004C7H リード / ライト 初期値 7 6 5 4 3 2 1 0 予約 予約 予約 予約 予約 予約 ED1 ED0 − − R/W 0 R/W 0 − − − − − − − − − − [bit7 ∼ bit2] 予約 : 予約ビット これらのビットは予約ビットです。 [bit1, bit0] ED : ウォッチドッグ期間設定 このビットによりウォッチドッグ期間を設定します。 ED1 ED0 機能 0 0 ウォッチドッグ周期を 216 × CR クロックサイクルとする ( 初期値 ) 0 1 ウォッチドッグ周期を 217 × CR クロックサイクルとする 1 0 ウォッチドッグ周期を 218 × CR クロックサイクルとする 1 1 ウォッチドッグ周期を 219 × CR クロックサイクルとする (注意事項)この機能は MB91461 では使用できません。 <注意事項> • この機能は MB91461 では使用できません。 • MB91V460 では CR 発振により動作しますが , 周期は初期値から変更できません (216 × CR から変更できません )。 197 第 7 章 ハードウェアウォッチドッグタイマ 7.4 ハードウェアウォッチドッグタイマの機能 一定期間以上ウォッチドッグタイマがクリアされない場合は , 設定初期化リセット (INIT) が発行されます。この場合 , CPU のレジスタ値は保証されません。 ■ ハードウェアウォッチドッグタイマの機能 リセット解除後 , 安定時間を待たずにハードウェアウォッチドッグタイマはカウント アップを開始します。一定期間タイマがクリアされず , カウンタがオーバフローすると 設定初期化リセット (INIT) が発行されます。 ■ ハードウェアウォッチドッグタイマの周期 MB91461 の場合 , ハードウェアウォッチドッグタイマのビット長は 23 ビットで , オー バフロー周期は 932.1ms ( 原発振 18MHz 時 ) です。 表 7.4-1 MB91461 のハードウェアウォッチドッグタイマの周期 9MHz 18MHz 0.22µs 0.11µs ウォッチドッグタイマ周期 1864.1ms 932.1ms WDRESETX 出力パルス幅 14.22µs 7.11µs WDRESETX アサート後 , 外部バスサイクル の開始まで 113.78µs 56.89µs ウォッチドッグタイマ 動作クロック周期 MB91F467R の場合 , ハードウェアウォッチドッグタイマのクロックソースとして CR発振器が使用されるため, タイマの周期はCR発振器の精度に応じて変化します。 表 7.4-2 MB91F467R のハードウェアウォッチドッグタイマの周期 ED1-0 最小 通常 最大 − 5µs 10µs 20µs 00 327.68ms 655.36ms 1310.72ms 01 655.36ms 1310.72ms 2621.44ms 10 1310.72ms 2621.44ms 5242.88ms 11 2621.44ms 5242.88ms 10485.76ms WDRESETX 出力パルス幅 − 5µs 10µs 20µs WDRESETX アサート後 , 内蔵 FLASH へのアクセス開始まで − − 740µs − CR 発振サイクル ウォッチドッグ タイマ周期 198 第 7 章 ハードウェアウォッチドッグタイマ ■ ウォッチドッグタイマオーバフロー時のリセットタイミング 図 7.4-1 ウォッチドッグタイマオーバフロー時のリセットタイミング MB91461の場合(18MHz発振時) 7.11µs WDRESETX 内部リセット 56.89µs MB91F467Rの場合 10µs WDRESETX 内部リセット およびセキュリティ 処理待ち時間 740µs 199 第 7 章 ハードウェアウォッチドッグタイマ ■ WDRESETX の端子出力について WDRESETX 端子にはハードウェアウォッチドッグタイマのオーバフロー時の "L" パル スが出力されるほか , 外部リセット入力 (INITX)によっても "L"レベルが出力されます。 WDRESETX 端子と外付けのフラッシュメモリの RESET 端子と接続することにより , ウォッチドッグリセットが発生した場合にフラッシュメモリが書込み / 消去モードに ある場合でも読出しモードへ復帰します。 WDRESETX 端子には CPU コア部内蔵のソフトウェア起動のウォッチドッグタイマに よるリセットとソフトウェアリセットではパルスは出力されません。したがって , フ ラッシュメモリの書込み / 消去モードからの復帰にはこれらのリセット要因は使用で きません。 <注意事項> MB91V460 に WDRESETX 出 力 は あ り ま せ ん。ICE を 使 用 し て 動 作 さ せ る 場 合 は WDRESETX 出力が使用できませんので注意してください。 200 第 7 章 ハードウェアウォッチドッグタイマ 7.5 ハードウェアウォッチドッグタイマ使用上の注意 ハードウェアウォッチドッグタイマ使用上の注意について説明します。 ■ ハードウェアウォッチドッグタイマ使用上の注意 ● ソフトウェアでの停止不可 ウォッチドッグタイマはリセット解除後 , 直ちに動作を開始します。ソフトウェアでは カウントを停止することはできません。 ● リセット抑止 ハードウェアウォッチドッグリセットを抑止するにはタイマのクリアが必要です。 ハードウェアウォッチドッグタイマ制御レジスタの CL ビットに "0" が書き込まれると タイマはいったんクリアされ , リセットの発行が抑止されます。 ● タイマの停止とクリア CPU が動作しないモード ( スリープモード , ストップモード , シャットダウンモード , RTC モード ) の場合 , 遷移前にタイマはクリアされてカウントは停止します。また , DSU 経由でデバッグルーチンが走行する場合 , ウォッチドッグタイマはクリアされて カウントは停止します。 ● DMA 転送中の動作 内部の D-bus に接続された周辺リソースへの DMA 転送中は DMAC がバスを占有して しまうため CL ビットへの "0" 書込みはできません。したがって , DMA 転送時間が ウォッチドッグ周期より長い場合はリセットが発行されます。 201 第 7 章 ハードウェアウォッチドッグタイマ 202 第8章 メモリコントローラ MB91F467RA, MB91F467RB に搭載されている内 蔵フラッシュメモリの制御に関して説明します。 フラッシュメモリでの命令読み出し速度に寄与す るダイレクトマップキャッシュに関する説明もあ ります。 8.1 メモリコントローラの概要 8.2 レジスタ 8.3 レジスタの説明 8.4 FLASH アクセスタイミング設定 203 第 8 章 メモリコントローラ 8.1 メモリコントローラの概要 メモリコントローラの概要について説明します。 メモリコントローラは , フラッシュメモリ , 汎用 RAM (I/D-RAM ともよばれる ) を制御 します。これらのメモリは , コード記憶域およびデータ記憶域になることができます。 一般に FR コアで F-bus を経由するコードフェッチが可能ですが , パフォーマンス上の 理由から , 本製品では直接 I-bus に接続しています。 フラッシュメモリアクセスの場合 , インタフェースには FLASH 命令キャッシュとデー タ読出しバッファが含まれます。プリフェッチメカニズムにより , リニアコードの CPU 内部コードフェッチの遅延がなくなります。フラッシュメモリは MB91F467R にのみ 搭載されています。 ● FLASH インタフェース • ウェイトタイミング • 同期アクセスでの FLASH 制御信号 ATDIN および EQIN の生成 ( このバージョンでは , ADTIN, EQIN, ウェイトのタイミングをそれぞれ独立して構 成できます。) • CEX, WEX, OEX の生成 • プログラミングでの 32 または 64 ビット読出しモードおよび 16 または 32 ビット読 出し / 書込みモードの処理 • タイミング透過度が 1:1 ( 同じウェイトサイクル ) のエミュレーションデバイスに対 する外部 SRAM のサポート • FLASH マクロテストの手段およびパラレルプログラミングのサポート ● 汎用 RAM 共有コード / データメモリへのゼロのウェイトサイクルアクセス (I/D-RAM とも呼ばれ る) ● FLASH 命令キャッシュとデータバッファ 8K バイトの FLASH 命令キャッシュ ( ダイレクトマップキャッシュ , プリフェッチ ミスオプション ) ● プリフェッチ • キャッシュバッファへの連続命令ワードアドレスのプリフェッチ • プリフェッチミス ( 分岐またはデータアクセス ) が発生した場合 , プリフェッチは解 除されるため , プリフェッチはプリフェッチミスのペナルティなしで機能します。 • FLASH マクロは , どの時点でも FLASH アクセスサイクル解除をサポートしている 必要があります。つまり , 次の完全アクセスサイクルのタイミングに影響を与えな い ( 以前のアクセス解除から必要な特別のリカバリ条件がない ) ということです。 204 第 8 章 メモリコントローラ 8.2 レジスタ FLASH インタフェースの一覧を示します。 ■ FLASH インタフェースレジスタの一覧 表 8.2-1 FLASH インタフェースレジスタの要約 レジスタ アドレス ブロック 7000H +0 +1 FMCS [R/W] 00001000 FMCR [R/W] ----0000 FMWT [R/W] 11111111 01111111*1 11111111 01011101*2 7004H +2 +3 FCHCR [R/W] ------00 1000011 FMWT2[R/W] -101---- 7008H FMAC [R] 00000000 00000000 00000000 00000000 700CH FCHA0 -------- -0000000 00000000 00000000 7010H FCHA1 -------- -0000000 00000000 00000000 FLASH_IF FMPS [R/W] -----000 *1:MB91461 の初期値 *2:MB91F467R の初期値 <注意事項> • すべてのレジスタに対する読出し / 書込みアクセスは , バイト , ハーフワード , および ワードになります。 • MB91461 では , FMCR および FMWT2 レジスタは使用できません。 • フラッシュの搭載されていないデバイス MB91461 と , フラッシュメモリ内蔵のデバイ スでは , ウェイトサイクル設定レジスタ FMWT の初期値が異なります。 205 第 8 章 メモリコントローラ 8.3 レジスタの説明 FLASH インタフェースレジスタのビット構成など , 詳細機能について説明します。 ■ FLASH インタフェース制御レジスタ 制御レジスタバイト 0 bit アドレス : 7000H 31 30 ASYNC 予約 29 BIRE RDYEG 読出し / 書込み → (R/W) (R/W) (R/W) (0) (0) (0) 初期値 → bit 制御レジスタバイト 1 アドレス : 7001H 読出し / 書込み → 初期値 → 制御レジスタバイト 2 bit アドレス : 7002H 読出し / 書込み → 初期値 → bit 制御レジスタバイト 3 アドレス : 7003 読出し / 書込み → 初期値 → 28 (R) (0) 27 26 25 24 RDY RDYI RW16 LPM (R) (1) (R/W) (R/W) (R/W) (0) (0) (0) 23 22 21 20 − − − − (-) (-) (-) (-) (-) (-) (-) (-) 15 14 13 12 11 10 9 8 − − − − − − REN (TAGE) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) 7 6 5 4 3 2 LOCK ENAB FLSH (DBEN) PFEN PFMC 19 FMCS 18 LOCK PHASE 17 16 PF2I RD64 FMCR (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) FCHCR (R/W) (R/W) (0) (0) 1 0 SIZE1 SIZE0 FCHCR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (0) (0) (0) (0) (0) (1) (1) ● FLASH メモリ制御ステータスレジスタ (FMCS) [bit31] ASYNC : 非同期アクセス許可 0 同期 FLASH アクセス ( 初期値 ) 1 非同期 FLASH アクセス ASYNC ビットはリセット時にクリアされ , デフォルトで高速同期 FLASH アクセス モードが許可されます。非同期モードに切り換えるには , このビットを設定します ( ただし , 読出しアクセスと書込みアクセスのいずれにおいても , このビットを設定 することは基本的にお勧めできません ) 。 [bit30] 予約 : 予約ビット 206 第 8 章 メモリコントローラ [bit29] BIRE : Burn-In ROM 許可 0 Burn-In ROM アドレスにおける Burn-In ROM を禁止し , FLASH アクセス を許可します ( 初期値 ) 。 1 Burn-In ROM へのアクセスを許可します。 [bit28] RDYEG : RDY ステータス保留 / 終了レジスタ 0 自動アルゴリズムが開始されていないか , または開始されたが完了してい ません ( 初期値 ) 。 1 最後のレジスタ読出しアクセス以降 , FLASH 自動アルゴリズムは完了し ています。 RDYEG ビットはリセット後にクリアされます。 このビットは , FMCS_RDY が "0" から "1" に遷移した後に設定されます。このビット は , FLASH の RDY 信号がアクティブであるか , またはアクティブであった ( 自動ア ルゴリズムが完了した ) ことを示します。RDYEG ビットは , アドレス 7000H に対す る読出しアクセス時に自動的にクリアされます。 RDYEG ビットは , 読出し専用のステータス情報です。 [bit27] RDY : 自動アルゴリズムの FLASH RDY ステータス このビットは , FLASH マクロの RDY 行のステータスを示します。RDY は , ( 例え ば , セクタ消去 , チップ消去などで ) 自動アルゴリズムが開始された場合に FLASH マクロの状態を通知するために使用されます。RDY が "1" に戻った場合 , 自動アル ゴリズムは完了しています。 RDY ビットは , 読出し専用のステータス情報です。 [bit26] RDYI : RDY 出力強制 0 非アクティブ ( 初期値 ) 1 RDY 出力を "1" に強制 このビットは , FLASH テスト用に予約されています。このビットは設定しないでく ださい。 [bit25] RW16 : FLASH に対する 16 ビット読出し / 書込み許可 0 FLASH に対する 32 ビット読出し / 書込みが許可されています ( 初期値 ) 。 1 FLASH に対する 16 ビット読出し / 書込みが許可されています。 このビットはリセット後にクリアされます。初期値は , フラッシュメモリに対する 32 ビット読出し / 書込みアクセスが許可されています。 RW16 ビットを設定すると , 32 ビットモードから 16 ビットモードに切り換わりま 207 第 8 章 メモリコントローラ す。フラッシュメモリにデータを書き込む場合 ( またはチップ消去やセクタ消去の 間 ) , フラッシュメモリからのコードフェッチはサポートされません。 <注意事項> • データの整合性を保つため , フラッシュメモリへの書込み中は命令キャッシュを禁止 し , フラッシュメモリへの書込み手順完了後に命令キャッシュをフラッシュする (FLUSH) ことを強くお勧めします。 • フラッシュメモリからの命令またはデータの読出し中に 16 ビットモード , 32 ビット モード , および 64 ビットモードを切り換えることはできません。 • MB91V460 では RW16 ビットはありません ( 切換え動作はできません )。 [bit24] LPM : 低消費電力モード 0 低消費電力モード OFF ( 初期値 ) 1 低消費電力モード許可 このビットはリセット後にクリアされます。初期値は , 低消費電力モードの設定が OFF になります。 LPM = 0 の場合 , CEX は恒久的に "0" ( アクティブ ) にアサートされます。これに より , 最速の FLASH アクセスタイミングが可能になります。 このビットを "1" に設定すると , 低消費電力モードが許可されます。CEX は , FLASH アクセスの場合にのみ低消費電力にアサートされます。その間 , FLASH マクロはス タンバイモードになります。 <注意事項> フラッシュメモリでサポートされている " 自動スリープモード " によって , フラッシュメ モリがアクセスされていない間 , 自動的に低消費電力状態になるため , この設定を使用す る必要はありません。 ● FLASH メモリ制御レジスタ (FMCR) FMCR レジスタは , MB91461 では使用できません。 [bit19] LOCK : ALEH 自動更新ロック 0 ALEH 設定自動更新が許可されています ( 初期値 ) 。 1 ALEH 設定自動更新は禁止されています。 MB91F467R に内蔵のフラッシュメモリの場合 , ATDIN 立下りエッジと EQIN 立上 りエッジの間に特定のタイミングが必要となります。このタイミングは tALEH と よばれ , 通常は ATDIN 対象期間と同じ長さです。 ATDIN 長の設定を FMWT:ATD2 ∼ ATD0 ビットに書き込むことにより , FMWT2:ALEH2 ∼ ALEH0 ビットは自動的にそれと同じ設定に更新されます。この 208 第 8 章 メモリコントローラ 自動更新が行われないようにするために , LOCK ビットを設定できます。 また , FMWT2:ALEH2 ∼ ALEH0 ビットに対して別の設定を適用する場合は , 最初 の設定を FMWT:ATD2 ∼ ATD0 ビットに書き込んでから , 2 番目の設定を FMWT2:ALEH2 ∼ ALEH0 ビットに書き込みます。 [bit18] PHASE : ATDIN/EQIN クロックフェーズ 0 ATDIN/EQIN 生成は , コアのクロックと同調して行われます ( 初期値 ) 。 1 ATDIN/EQIN 生成は , コアのクロックに反転されます。 コアのクロックの周波数が低いときは , ATDIN/EQIN 生成をコアのクロックと同調 させるよりも , コアのクロックに反転されるようにこれらの信号生成を変更して ウェイトサイクルを短縮したほうが効果的です。 弊社から提供された各製品の ATDIN, EQIN, ウェイトサイクルの設定要件を常時参照 することをお勧めします (「8.4 FLASH アクセスタイミング設定」も参照 ) 。 (PHASE 設定は , MB91F467R では使用できません。) [bit17] PF2I : 32 ビット (2 命令 ) のみプリフェッチ 0 64 ビットをプリフェッチ ( 初期値 ) 1 32 ビットのみをプリフェッチ 64 ビット読出しモード (RD64 = 1) で切り換えると , 命令アドレス IA + 8 ( 現在の アクセスが IA + 0 でアラインされている場合 ) および命令アドレス IA + 4 ( 現在 のアクセスが IA + 4 でアラインされている場合 ) でプリフェッチが実行されます。 ただし , 64 ビット読出しモードで PF2I = 1 を設定すると , 次の命令アドレス IA + 4 でのみプリフェッチが実行されます ( 現在のアクセスアラインメント IA + 0 また は IA + 4 に依存しない ) 。 通常 , 32 ビットのみのプリフェッチよりも 64 ビットのプリフェッチのほうが優れ ていますが , キャッシュエントリの置換によってコード断片化の度合が強くなり , パフォーマンスが低下することがあります。このような場合は , 32 ビットのプリ フェッチのみに切り換えることをお勧めします。 [bit16] RD64 : 64 ビット読出しモード許可 0 64 ビット読出しモードは禁止されています ( 初期値 ) 。 1 64 ビット読出しモードが許可されています。 一部の内蔵フラッシュメモリでは , 64 ビット読出しモードを切り換えてアクセスパ フォーマンスを向上させることができます。ご使用の製品でこの機能が使用可能か どうかは , 弊社にお問い合わせください。 このビットはリセット後にクリアされます。初期値は , フラッシュメモリに対する 32 ビット読出し / 書込みアクセスが許可されています。 209 第 8 章 メモリコントローラ RD64 ビットを設定すると , 32 ビットモードから 64 ビットモードに切り換わりま す。フラッシュメモリへのデータの書込みは , 64 ビット読出し専用モードではサ ポートされていません。 <注意事項> • フラッシュメモリからの命令またはデータの読出し中に 16 ビットモード , 32 ビット モード , および 64 ビットモードを切り換えることはできません。 • MB91V460 では RD64 ビットはありません。 ● FLASH キャッシュ制御レジスタ (FCHCR) [bit9] REN : 非キャッシュ領域の範囲を許可 0 FCHA1 をアドレスマスク ( 初期値 ) の定義とします。 1 FCHA1 を FCHA0, FCHA1 の非キャッシュアドレス範囲の 2 つ目のポイン トの定義とします。 ビットはリセット後にクリアされます。 FCHA0で定義されているアドレスはFCHA1 で定義されているビットマスクと結合されて , 非キャッシュ領域を定義します。 REN ビットを設定した場合 , 非キャッシュ領域は 2 つのポイントによって定義され ます。非キャッシュ領域は , アドレス FCHA0 から FCHA1 までの範囲です。 [bit8] TAGE : TAG RAM アクセス許可 0 メモリマッピングされた TAG RAM アクセスは禁止されています ( 初期値 ) 。 1 メモリマッピングされた TAG RAM アクセスが許可されています。 リセット後 , ビットは "0" に設定されます。 (TAG RAM アクセスは , MB91F467R では使用できません。) [bit7] FLUSH : 命令キャッシュエントリのフラッシュ 0 命令キャッシュエントリのフラッシュは完了しています。 1 実際に命令キャッシュエントリをフラッシュしています。 このビットはリセット後に設定されます。 FLUSHビットを設定した場合, 命令キャッシュのエントリは順次フラッシュされま す。この初期化中 , キャッシュは禁止されます。初期化が実行される期間は , キャッ シュエントリあたり 1 クロックサイクルです。有効なエントリの数は , 構成されて いるキャッシュ容量によって異なります。 完了後 ( すべてのエントリがフラッシュされた後 ) , FLUSH ビットはハードウェア によってクリアされます。 210 第 8 章 メモリコントローラ このビットに "1" を書き込むと , キャッシュエントリのフラッシュがトリガされま す。 <注意事項> キャッシュ容量構成 (FCHCR:SZ1, SZ0) およびFLUSH を同時に設定することはできませ ん ( 同じ書込みアクセス ) 。必ず , 最初に容量構成を設定してからキャッシュをフラッシュ してください。MB91F467R の場合 , キャッシュ容量は 8K バイトです。 [bit6] DBEN : データバッファ許可 0 読出しデータのバッファは禁止されています ( 初期値 ) 。 1 読出しデータのバッファが許可されています。 このビットはリセット後にクリアされます。初期値は , 読出しデータバッファは禁 止されています。 DBEN ビットを設定すると , データ読出しバッファが許可されます。これにより , 8 ビットまたは 16 ビットのオペランドのデータ構造の読出しの速度が上がります。1 ワードのデータバッファが実装されています。同じ 32 ビットまたは 64 ビットワー ドアドレスが続けてアクセスされると , データはバッファから読み出されます。 ( データバッファは , MB91F467R では使用できません。) [bit5] PFEN : プリフェッチ許可 0 命令のプリフェッチは禁止されています ( 初期値 ) 。 1 命令のプリフェッチが許可されています。 このビットはリセット後にクリアされます。初期値は , 命令のプリフェッチが禁止 されています。 PFENビットを設定すると, 命令アドレスIA+4の次のワードからコードプリフェッ チが許可されます。プリフェッチにより , リニアコードの FLASH メモリへの MCU のコードフェッチパス内の遅延がなくなります。 64 ビット読出しモード (RD64 = 1) で切り換えると , 命令アドレス IA + 8 ( 現在の アクセスが IA + 0 でアラインされている場合 ) および命令アドレス IA + 4 ( 現在 のアクセスが IA + 4 でアラインされている場合 ) でプリフェッチが実行されます。 ただし , 64 ビット読出しモードで PF2I = 1 を設定すると , 次の命令アドレス IA + 4 でのみプリフェッチが実行されます ( 現在のアクセスアラインメント IA + 0 また は IA + 4 に依存しない ) 。 実行中のプリフェッチサイクルは , 一致する命令アクセスから直接引き継ぐことが できます。命令アクセスが存在しない場合 , プリフェッチされた命令ワードが キャッシュメモリに格納されます。プリフェッチアドレスとは異なるアドレスに対 する FLASH アクセス ( コードまたはデータ ) が存在する場合 , プリフェッチサイクル は即時に解除されます。 211 第 8 章 メモリコントローラ [bit4] PFMC : プリフェッチミスキャッシュ許可 0 標準的なキャッシュアルゴリズム ( 初期値 ) 。 1 プリフェッチミスはキャッシュされるのみです。 このビットはリセット後にクリアされます。初期値は , プリフェッチミスキャッ シュは禁止されています。命令キャッシュは , アクセスされたフラッシュメモリか らの命令ワードごとにキャッシュエントリを書き込む標準的なアルゴリズムを使 用します。 PFMC ビットを設定すると , キャッシュエントリの 2 番目の書込みアルゴリズムに 切り換わります。このアルゴリズムでは , この命令ワードはキャッシュに書き込ま れるのみです。これにより , プリフェッチミス状況が発生します。 FR CPU は , 2 クロックサイクルで約 1 つの命令ワード (16 ビット命令コード 2 つが 含まれる ) を要求します。FLASH データのスループット (2 サイクルで 1 ワード ) が CPUのニーズを満たしていれば, ほとんどの場合でPFMCオプションが役立ちます。 FLASH アクセス時間が 2 クロックサイクルのとき , 連続したアドレスから次の命令 ワードが要求されてプリフェッチが許可された場合 , 通常は待機状態は発生しませ ん。このようにすでに最適化されているため , プリフェッチと併せてこのようなリ ニアコードセグメントをキャッシュしても , コードフェッチのパフォーマンスはそ れ以上向上しないことがあります。このようにするより , プリフェッチでアクセス 遅延を取り除くことのできない , コード内の分岐の状況を改善するほうが効果的で す。FPMC を "1" に設定した場合は , キャッシュアルゴリズムにより , プリフェッチ ミス状況 ( 予測アドレスが一致しない ) が原因で待機状況を引き起こしていたこれ らの FLASH アクセスのみが格納されます。 このアルゴリズムにより , 限られた量のキャッシュエントリをより効率的に利用す ることができます。通常は , 半分のキャッシュ容量で同じパフォーマンスを達成で きます。つまり , キャッシュの効率は , キャッシュ容量を 2 倍にした場合と同じに なります。 PFMC アルゴリズムの効率は , アプリケーションの構造によって異なります。 [bit3] LOCK : キャッシュエントリのグローバルロック 0 キャッシュエントリの書込みが許可されています ( 初期値 ) 。 1 キャッシュエントリの書込みは禁止されており , キャッシュの内容はロッ クされています。 このビットはリセット中にクリアされます。初期値は , キャッシュエントリが書込 み可能です。 LOCK ビットを設定した場合 , 新しいエントリをキャッシュメモリに書き込むこと はできません。キャッシュエントリの古い内容はメモリ内に保持されます。すべて のキャッシュエントリに対して 1 つのグローバルロック機能しかありません。 212 第 8 章 メモリコントローラ [bit2] ENAB : 命令キャッシュ許可 0 命令キャッシュは禁止されています ( 初期値 ) 。 1 命令キャッシュを許可します。 このビットはリセット後にクリアされます。初期値は , 命令キャッシュが禁止され ています。 ENAB ビットを設定した場合 , 命令キャッシュは ON になります。命令キャッシュ は , FLASH アクセス専用です。 キャッシュは , プリフェッチバッファと同様に , プリフェッチアルゴリズムで使用 されます。このため , キャッシュが禁止になっていても , バッファのない形式でプ リフェッチを使用できます。 FLASH アクセスは , キャッシュヒットやキャッシュミスの評価とは関係なく , パラ レルで開始されます。 ( キャッシュが禁止になっている場合 , マッピングされたアクセス先メモリが キャッシュエントリおよび TAG RAM 内容になることがあります。この機能は , こ のバージョンのインタフェースでは無効になっています。TAGE ビットの説明を参 照してください。) [bit1, bit0] SZ1, SZ0 : キャッシュ容量構成 00 0K バイト - キャッシュ禁止 01 4K バイト (1024 エントリ ) 10 8K バイト (2048 エントリ ) 11 16K バイト (4096 エントリ ) ( 初期値 ) リセット後 , キャッシュ容量は "11B" に設定されます。 <注意事項> • キャッシュエントリの数によって , デバイス起動時の TAG 初期化時間が決まります。 上記の FLUSH ビットの説明を参照してください。 • FLASH キャッシュを使用前に , 容量構成を 8K バイトに設定してください。 • キャッシュ容量構成 (FCHCR.SZ1, SZ0) および FLUSH を同時に設定することはでき ません ( 同じ書込みアクセス ) 。必ず , 最初に容量構成を設定してからキャッシュをフ ラッシュしてください。 • MB91F467R には 8K バイトのキャッシュが内蔵されていますので , FCHCR レジスタ に 0x02 を設定後 , 0xA6 を設定してください。 213 第 8 章 メモリコントローラ ■ FLASH メモリウェイトタイミングレジスタ (FMWT) 待ちタイミングレジスタバイト 0 bit 31 アドレス : 7004H 30 29 28 27 26 WTP1 WTP0 WEXH1 WEXH0 WTC3 WTC2 25 24 WTC1 WTC0 FMWT 読出し / 書込み → (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) (1) デフォルト値 → 22 待ちタイミングレジスタバイト 1 bit 23 アドレス : 7005H (FRAM) ATD2 読出し / 書込み → デフォルト値 → 読出し / 書込み → デフォルト値 → 待ちタイミングレジスタバイト 3 bit アドレス : 7007H 読出し / 書込み → デフォルト値 → 20 19 18 17 16 ATD1 ATD0 EQ3 EQ2 EQ1 EQ0 FMWT1 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (1) (1/0) (1) (1) (1) (1/0) (1) 待ちタイミングレジスタバイト 2 bit 15 アドレス : 7006H 21 11 10 9 8 − ALEH2 ALEH1 ALEH0 14 13 12 − − − − (-) (-) (R/W) (R/W) (R/W) (1) (0) (1) (-) (-) (-) (-) (-) (-) (-) (-) 7 6 5 4 3 2 1 0 − − − − − PS2 PS1 PS0 (-) (-) (-) (-) (-) (-) (-) (-) (-) (-) FMWT2 FMPS (R/W) (R/W) (R/W) (0) (0) (0) <注意事項> • ATD2 ∼ ATD0 設定は , MB91461 では 7H, MB91F467R では 5H です。 • EQ3 ∼ EQ0 設定は , MB91461 では FH, MB91F467R では DH です。 • FMWT2 は , MB91461 では使用できません。 [bit31, bit30] WTP1, WTP0 : ページアクセスでの FLASH のウェイトサイクル リセット後 , WTP は "11B" に設定されます。 WTP は , ページモード FLASH でページヒットが発生した場合の FLASH アクセス の待ちタイミングを制御します。WTP 構成は , クロックサイクル単位となります。 WTP の値は , FLASH メモリのページ内アクセス時間 ( サイクルタイム ) ( クロック サイクル単位 ) から 1 を引いた値に設定してください。 ページサイズ PS2 ∼ PS0 が 0 以外の値に設定されている場合は , この設定が使用さ れます。 [bit29, bit28] WEXH1, WEXH0 : 最小 WEX ハイタイミング要件 リセット後 , WEXH は "11B" に設定されます。初期値では , WEX の最小ハイタイム 対象期間は 5 サイクルです。 これ以外の値を設定すると , WEX ハイタイムは 2 固定サイクル+ WEXH に短縮さ れます。 214 第 8 章 メモリコントローラ [bit27 ∼ bit24] WTC3 ∼ WTC0 : FLASH メモリアクセスのウェイトサイクル リセット後 , WTC は "1111B" に設定されます。 WTC は , FLASH アクセスの待ちタイミングを制御します。WTC 構成は , クロック サイクル単位となります。WTC の値は , FLASH メモリのアクセス時間 ( サイクル タイム ) ( クロックサイクル単位 ) から 1 を引いた値に設定してください。 [bit23] FRAM : F-bus 汎用 RAM メモリアクセスのウェイトサイクル リセット後 , FRAM は "0" に設定されます。 これは予約ビットです。F-bus RAM に対する設定はできません。F-bus RAM へのア クセスは 0 wait です。 [bit22 ∼ bit20] ATD2 ∼ ATD0 : FLASH メモリアクセスの ATDIN 信号の対象期間 MB91461: リセット後 , ATD は "111B" に設定されます。ATD の初期値は 4 クロック サイクルです。 ATD の初期値は 3 クロッ MB91F467R: リセット後 , ATD は "101B" に設定されます。 クサイクルです。 ATD は , FLASH アクセスの ATDIN 信号のタイミングを制御します。ATD 構成は , 半クロックサイクル単位となります。効率的な ATDIN の高対象期間は , tATDIN = (ATD + 1) × 0.5 クロックサイクルです。 [bit19 ∼ bit16] EQ3 ∼ EQ0 : FLASH メモリアクセスの EQIN 信号の対象期間 MB91461: リセット後 , EQ は "1111B" に設定されます。EQ の初期値は 8 クロックサ イクルです。 MB91F467R: リセット後 , EQ は "1101B" に設定されます。EQ の初期値は 7 クロッ クサイクルです。 EQ は , FLASH アクセスの EQIN 信号のタイミングを制御します。EQ 構成は , 半ク ロックサイクル単位となります。効率的な EQIN の高対象期間は , tEQIN = (EQ + 1) × 0.5 クロックサイクルです。 [bit14 ∼ bit12] ALEH2 ∼ ALEH0 : FLASH メモリアクセスの ALEH 時間の対象期間 MB91461 : 使用不可 MB91F467R : リセット後 , ALEH は "101B" に設定されます。ALEH の初 期値は 3 クロックサイクルです。 ALEH は , FLASH アクセスでの EQIN 立上りエッジに対する ATDIN 立下りエッジ のタイミングを制御します。 EQ 構成は , 半クロックサイクル単位となります。効率的な ALEH の対象期間は , tALEH = (ALEH + 1) × 0.5 クロックサイクルです。 215 第 8 章 メモリコントローラ <注意事項> ATD2 ∼ ATD0 に書き込むと , ALEH2 ∼ ALEH0 は自動的に ATD2 ∼ ATD0 と同じ値に更 新されます。通常 , ALEH 時間は ATD 時間と同じであるため , 特に ALEH2 ∼ ALEH0 を 更新する理由はありません。 ただし , 以下の方法で ATD2 ∼ ATD0 とは異なる値で ALEH2 ∼ ALEH0 をプログラミン グすることも可能です。 • ATD2 ∼ ATD0 に書き込んだ後で ALEH2 ∼ ALEH0 に別の値を書き込む。または , • FMCR:LOCK ビットを設定して自動更新を禁止する。 ● FLASH アクセスサイクル波形 図 8.3-1 FLASH アクセスサイクルのタイミング flash_start FMA ATDIN EQIN flash_wait DO tATD tALEH tEQ tWTC tRC 図 8.3-1 に , FLASH アクセスサイクルの例を示します。FMWT レジスタでは , FLASH タイミング tATD, tALEH, tEQ, tWTC の 3 つの部分をそれぞれ個別に構成できます。以 下の表に , この例の構成値を示します。 216 シンボル 長さ 設定 tATD 1.5 サイクル ATD = 010B tALEH 1.5 サイクル ALEH = 010B tEQ 3 サイクル EQ = 0101B tWTC 6 サイクル WTC = 0110B 第 8 章 メモリコントローラ この結果 , FLASH アクセスサイクル (tRC) 時間は 7 サイクル (WTC + 1) となります。 [bit2 ∼ bit0] PS2 ∼ PS0 : ページモード FLASH のページサイズ定義 リセット後 , PS は "000B" に設定されます。初期値は , ページモード FLASH が禁止 されています。 この設定により , ページサイズは 2PS ( バイト ) に定義されます。 (MB91F467R に内蔵のフラッシュメモリでは , ページモードはサポートされていま せん。) ■ FLASH メモリアドレスチェックレジスタ (FMAC) FMAC [R] アドレス +0 +1 +2 +3 7008H -------- -0000000 00000000 00000000 このレジスタは , テスト用として FLASH アクセスサイクルの先頭のアドレスをキャプ チャします。 このレジスタは読出し専用です。 ■ 非キャッシュ領域定義 非キャッシュ領域定義レジスタのFCHA0およびFCHA1は, キャッシュされないFLASH 領域を定義します。未使用のビットは , "0" として読み出されます。以下の表に , レジ スタの初期値を定義します。FCHA0 = 0 により定義されたポイントおよびマスクビッ ト OFF は FLASH 領域の外部に置かれるため , 最初は FLASH 領域全体がキャッシュさ れます。 FCHA0 [R/W] アドレス +0 +1 +2 +3 700CH -------- -0000000 00000000 00000000 FCHA1 [R/W] アドレス +0 +1 +2 +3 7010H -------- -0000000 00000000 00000000 FCHCR_REN ビットがクリアされた場合 , アドレス範囲は FCHA0 で指定されたアドレ スで定義され , FCHA1 で "1" に設定されているビットでマスクされます。 217 第 8 章 メモリコントローラ 例 1 ( ポイントおよびマスクの範囲定義 ) : - FCHCR_REN = 0 - FCHA0 = 000F:A300 - FCHA1 = 0000:FFFF 非キャッシュ領域は , 000F:0000H ∼ 000F:FFFFH の範囲で定義されます。 例 2 ( ポイントツーポイントの範囲定義 ) - FCHCR_REN = 1 - FCHA0 = 000F:A300 - FCHA1 = 000F:F7FF 非キャッシュ領域は , 000F:A300H ∼ 000F:F7FFH の範囲で定義されます。 218 第 8 章 メモリコントローラ 8.4 FLASH アクセスタイミング設定 フラッシュメモリの読出し / 書込みのタイミング設定について説明します。 以下に示す設定は , 現時点ではシミュレーション結果のみに基づいたものであり , デバ イス評価後に変更される可能性があります。ご使用の製品についてこれらの設定が妥当 かどうか調べるには , 富士通にお問い合わせください。 ■ 読出しタイミング設定 表 8.4-1 フラッシュメモリの読出しタイミング設定 ATD ALEH EQ WEXH WTC 2MHz 000B 000B 0000B − 0001B 32MHz, 48MHz 000B 000B 0001B − 0010B 64MHz, 80MHz, 96MHz, 100MHz 001B 001B 0011B − 0100B コアのクロック CLKB <注意事項> • これらの設定は , フラッシュメモリ同期読出しモード用です (FMCS:ASYNC = 0) 。 • ALEH 設定は ATD 設定と同じなので , FMWT:ATD2 ∼ ATD0 レジスタに新しい設定値 が適用されると ALEH 設定も自動的に更新されます。 219 第 8 章 メモリコントローラ ■ 書込みタイミング設定 表 8.4-2 フラッシュメモリの書込みタイミング設定 ATD EQ ALEH WEXH WTC 2MHz 000B − − 00B 0011B 32MHz 001B − − 00B 0100B 48MHz 001B − − 00B 0101B 64MHz 001B − − 00B 0110B 80MHz, 96MHz 001B − − 00B 0111B 100MHz 001B − − 01B 1000B コアのクロック CLKB <注意事項> • これらの設定は , フラッシュメモリ同期書込みモード用です (FMCS:ASYNC = 0) 。 • フラッシュメモリ同期書込みモードでは , 3 ウェイトサイクル未満に設定しないでくだ さい。 • フラッシュメモリへの書込みは , 16 ビットアクセスモード (FMCS:RW16 = 1 および FMCR:RD64 = 0) または 32 ビットアクセスモード (FMCS:RW16 = 0 および FMCR:RD64 = 0) でのみ可能です。 220 第9章 外部バスインタフェース 外部バスインタフェースの各機能について説明し ます。 9.1 外部バスインタフェースの特長 9.2 外部バスインタフェースのレジスタ 9.3 チップセレクト領域 9.4 エンディアンとバスアクセス 9.5 通常バスインタフェース 9.6 アドレス / データマルチプレックスインタフェース 9.7 DMA アクセス 9.8 レジスタ設定手順 221 第 9 章 外部バスインタフェース 9.1 外部バスインタフェースの特長 外部バスインタフェースの特長について説明します。 ■ 外部バスインタフェースの特長 • 最大 24 ビット長のアドレス出力 • 各種外部メモリ (8 ビット /16 ビット ) を直結できるほか , 複数のアクセスタイミン グを混在制御可能 - 非同期 SRAM, 非同期 ROM/ フラッシュメモリ ( 複数ライトストローブ方式 ) - アドレス / データマルチプレックスバス (8 ビット /16 ビット幅のみ ) • 独立した 5 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ プセレクト出力が可能 - CS0 ∼ CS4 は , 64K バイト∼ 2048M バイト単位で , "00040000H" ∼ "00FFFFFFH" の空間に設定可能 - 領域サイズによりバウンダリの制限あり • チップセレクト領域ごとに以下の機能を独立に設定可能 - チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません ) - 各種メモリ対応などのアクセスタイミングタイプ設定 - 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 ) - データバス幅設定 (8 ビット /16 ビット ) • アクセスタイミングタイプごとに異なる詳細なタイミングを設定可能 - 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能 - オートウェイトは , 最大 7 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能 222 第 9 章 外部バスインタフェース ■ 外部バスインタフェースのブロックダイヤグラム 図 9.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。 図 9.1-1 外部バスインタフェースのブロックダイヤグラム 内部 内部 アドレスバス データバス 32 32 / / A-OUT MUX ライト バッファ スイッチ リード バッファ スイッチ 外部 データバス データブロック アドレスブロック +1または+2 外部 アドレスバス アドレス バッファ コンパ レータ ASR ASZ 外部端子制御部 全ブロック制御 レジスタ & 制御 CS0X~CS4X ASX, RDX WR0X, WR1X BRQ BGRNTX RDY SYSCLK 223 第 9 章 外部バスインタフェース ■ I/O ピン 外部バスインタフェースの端子です。 〔通常バスインタフェース〕 A23 ∼ A00, D31 ∼ D16 (AD15 ∼ AD00) CS0X, CS1X, CS2X, CS3X, CS4X ASX, SYSCLK, RDX, WR0X, WR1X, WEX RDY, BRQ, BGRNTX, MCLKE, MCLKI, MCLKO, BAAX <注意事項> MB91F467R で外部バスを使用する場合で SDRAM を使用しない場合は , FPR10_5 を "0" に設定してください。これを "1" に設定した場合は , MCLKI と MCLKO を接続する必要が あります。MB91461 ではこの必要はありません。また , MB91461 には MCLKE, MCLKI, MCLKO, BAAX はありません。 ■ 外部バスインタフェースのレジスタ一覧 図 9.1-2 に , 外部バスインタフェースのレジスタ構成を示します。 図 9.1-2 外部バスインタフェースのレジスタ構成 アドレス bit 31 24 23 16 15 8 7 000640H ASR0 ACR0 000644H ASR1 ACR1 000648H ASR2 ACR2 00064CH ASR3 ACR3 000650H ASR4 ACR4 000660H AWR0 AWR1 000664H AWR2 AWR3 000668H AWR4 予約 0 000678H IOWR0 IOWR1 IOWR2 予約 000680H CSER CHER 予約 TCR 0007FCH 予約 MODR* 予約 予約 予約 : 予約レジスタです。書き換える場合には , 必ず "0" を設定してください。 * : MODR はユーザプログラムからはアクセスできません。 224 第 9 章 外部バスインタフェース 9.2 外部バスインタフェースのレジスタ 外部バスインタフェースのレジスタについて説明します。 ■ 外部バスインタフェースのレジスタ概要 外部バスインタフェースには , 以下の 7 種類のレジスタがあります。 • 領域選択レジスタ (ASR0 ∼ ASR4) • 領域構成レジスタ (ACR0 ∼ ACR4) • 領域ウェイトレジスタ (AWR0 ∼ AWR4) • DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) • チップセレクト領域許可レジスタ (CSER) • キャッシュイネーブルレジスタ (CHER) • 端子 / タイミングコントロールレジスタ (TCR) 225 第 9 章 外部バスインタフェース 9.2.1 領域選択レジスタ (ASR0 ∼ ASR4) 領域選択レジスタの詳細を説明します。 ■ 領域選択レジスタ (ASR0 ∼ ASR4) のレジスタ構成 図 9.2-1 に , 領域選択レジスタ (ASR0 ∼ ASR4) のレジスタ構成を示します。 図 9.2-1 領域選択レジスタ (ASR0 ∼ ASR4) のレジスタ構成 ASR0 000640H bit15 A31 ... ... 8 A24 7 A23 6 A22 ... ... 1 A17 0 A16 初期値 INIT 時 RST 時 0000H 0000H アクセス ASR1 000644H bit15 A31 ... ... 8 A24 7 A23 6 A22 ... 1 A17 0 A16 XXXXH 00XXH R/W ASR2 000648H bit15 A31 ... ... 8 A24 7 A23 6 A22 ... 1 A17 0 A16 XXXXH XXXXH R/W ASR3 00064CH bit15 A31 ... ... 8 A24 7 A23 6 A22 ... 1 A17 0 A16 XXXXH 00XXH R/W ASR4 000650H bit15 A31 ... ... 8 A24 7 A23 6 A22 ... 1 A17 0 A16 XXXXH 00XXH R/W R/W [bit15 ∼ bit0] A31 ∼ A16 : 領域開始アドレス ASR0 ∼ ASR4 ( 領域選択レジスタ 0 ∼ 4) は , CS0X ∼ CS4X の各チップセレクト領 域の開始アドレスを指定します。 開始アドレスは , A31 ∼ A16 の上位 16 ビットを設定できます。各チップセレクト 領域は , このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR4 レジスタ の ASZ3 ∼ ASZ0 ビットで設定された範囲をとります。 各チップセレクト領域のバウンダリは , ACR0 ∼ ACR4 レジスタの ASZ3 ∼ ASZ0 ビットの設定に従います。例えば , ASZ3 ∼ ASZ0 ビットにより , 1M バイトの領域 を設定した場合は , ASR0 ∼ ASR4 レジスタの下位 4 ビットは無視され , A23 ∼ A20 ビットのみ意味があります。 ASR0 レジスタは , INIT および RST により , "0000H" に初期化されます。ASR1 ∼ ASR4 は , INIT および RST によっては初期化されずに不定となります。LSI の動作 開始後 , CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応す る ASR レジスタを設定してください。 226 第 9 章 外部バスインタフェース 9.2.2 領域構成レジスタ (ACR0 ∼ ACR4) 領域構成レジスタの詳細を説明します。 ■ 領域構成レジスタ (ACR0 ∼ ACR3) のレジスタ構成 図 9.2-2 に , 領域構成レジスタ (ACR0 ∼ ACR3) のレジスタ構成を示します。 図 9.2-2 領域構成レジスタ (ACR0 ∼ ACR3) のレジスタ構成 14 13 12 11 10 9 8 ACR0 上位 bit15 000642H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 初期値 INIT 時 RST 時 1111**00B 1111**00B 6 5 ACR0 下位 bit7 000643H SREN PFEN WREN 00000000B 4 0 3 2 1 0 TYP3 TYP2 TYP1 TYP0 00000000B アクセス R/W R/W 14 13 12 11 10 9 8 ACR1 上位 bit15 000646H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB R/W 6 5 4 3 2 1 0 ACR1 下位 bit7 000647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB R/W 14 13 12 11 10 9 8 ACR2 上位 bit15 00064AH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB R/W 6 5 4 3 2 1 0 ACR2 下位 bit7 00064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB R/W 14 13 12 11 10 9 8 ACR3 上位 bit15 00064EH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB R/W 6 5 4 3 2 1 0 ACR3 下位 bit7 00064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB R/W 14 13 12 11 10 9 8 ACR4 上位 bit15 000652H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB R/W 6 5 4 3 2 1 0 ACR4 下位 bit7 000653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB R/W ACR0 ∼ ACR4 (Area Configuration Register 0 ∼ 4) は , 各チップセレクト領域の機能を設 定します。 ACR0 の DBW1, DBW0 ビットの初期値はモードベクタの WTH ビットの値が書き込ま れます。 227 第 9 章 外部バスインタフェース [bit15 ∼ bit12] ASZ3 ∼ ASZ0 : Area SiZe ビット 3 ∼ 0 表 9.2-1 に , Area Size ビットの各チップセレクト領域のサイズを示します。 表 9.2-1 Area Size ビットの各チップセレクト領域のサイズ ASZ3 ASZ2 ASZ1 ASZ0 各チップセレクト領域のサイズ 0 0 0 0 64K バイト (00010000H バイト , ASR A31 ∼ A16 ビット指定が有効 ) 0 0 0 1 128K バイト (00020000H バイト , ASR A31 ∼ A17 ビット指定が有効 ) 0 0 1 0 256K バイト (00040000H バイト , ASR A31 ∼ A18 ビット指定が有効 ) 0 0 1 1 512K バイト (00080000H バイト , ASR A31 ∼ A19 ビット指定が有効 ) 0 1 0 0 1M バイト (00100000H バイト , ASR A31 ∼ A20 ビット指定が有効 ) 0 1 0 1 2M バイト (00200000H バイト , ASR A31 ∼ A21 ビット指定が有効 ) 0 1 1 0 4M バイト (00400000H バイト , ASR A31 ∼ A22 ビット指定が有効 ) 0 1 1 1 8M バイト (00800000H バイト , ASR A31 ∼ A23 ビット指定が有効 ) 1 0 0 0 16M バイト (01000000H バイト , ASR A31 ∼ A24 ビット指定が有効 ) 1 0 0 1 32M バイト (02000000H バイト , ASR A31 ∼ A25 ビット指定が有効 ) 1 0 1 0 64M バイト (04000000H バイト , ASR A31 ∼ A26 ビット指定が有効 ) 1 0 1 1 128M バイト (08000000H バイト , ASR A31 ∼ A27 ビット指定が有効 ) 1 1 0 0 256M バイト (10000000H バイト , ASR A31 ∼ A28 ビット指定が有効 ) 1 1 0 1 512M バイト (20000000H バイト , ASR A31 ∼ A29 ビット指定が有効 ) 1 1 1 0 1024M バイト (40000000H バイト , ASR A31 ∼ A30 ビット指定が有効 ) 1 1 1 1 2048M バイト (80000000H バイト , ASR A31 ビット指定が有効 ) ASZ3 ∼ ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各 領域のサイズを設定します。そのため , ASR には比較されないビットが存在します。 ACR0 の ASZ3 ∼ ASZ0 ビットは RST により "1111B" に初期化されますが , この設 定にかかわらず RST 直後の CS0 領域は特別に "00000000H" から "FFFFFFFFH" ( 全 領域 ) に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除さ れて上記の表に従ったサイズに設定されます。 228 第 9 章 外部バスインタフェース [bit11, bit10] DBW1, DBW0 : Data Bus Width1, 0 表 9.2-2 に , DBW ビットの各チップセレクト領域のデータバス幅を示します。 表 9.2-2 DBW ビットの各チップセレクト領域のデータバス幅 DBW1 DBW0 0 0 8 ビット ( バイトアクセス ) 0 1 16 ビット ( ハーフワードアクセス ) 1 0 予約 設定禁止 1 1 予約 設定禁止 データバス幅 ACR0 の DBW1, DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビットの値と同じ値が自動的に書き込まれます。 [bit9, bit8] BST1, BST0 : BurST Size 1, 0 表 9.2-3 に , BST ビットの各チップセレクト領域のバースト長を示します。 表 9.2-3 BST ビットの各チップセレクト領域のバースト長 BST1 BST0 0 0 1 ( シングルアクセス ) 0 1 2 バースト 1 0 4 バースト 1 1 8 バースト 最大バースト長 シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスま たはバス幅を超えるサイズのデータの読出しを行った場合のみ , バースト長から決 まるアドレス境界内で連続したバーストアクセスを行います。 バス幅 16 ビット領域の最大バースト長は 2 バースト以下を推奨します。 [bit7] SREN : ShaRed ENable 表 9.2-4 に , SREN ビットの各チップセレクト領域の BRQ/BGRNTX による共有の 許可・禁止を示します。 表 9.2-4 SREN ビットの各チップセレクト領域の BRQ/BGRNTX による共有の 許可・禁止 SREN 共有の許可・禁止 0 BRQ/BGRNTX による共有を禁止 (CSnX は Hi-Z になりません ) 1 BRQ/BGRNTX による共有を許可 (CSnX は Hi-Z になります ) 共有が許可された領域は , バス開放中 (BGRNTX = "L" 出力中 ) は CSnX が Hi-Z に なります。共有が禁止された領域は , バス開放中 (BGRNTX = "L" 出力中 ) も CSnX が Hi-Z になりません。CSER により許可されたすべての領域の共有が許可されてい る場合のみ , アクセスストローブ出力 (RDX, WR1X, WR0X) は Hi-Z になります。 229 第 9 章 外部バスインタフェース [bit6] PFEN : PreFetch ENable 表 9.2-5 に , PFEN ビットの各チップセレクト領域のプリフェッチの許可・禁止を示 します。 表 9.2-5 PFEN ビットの各チップセレクト領域のプリフェッチの許可・禁止 PFEN プリフェッチ許可・禁止 0 プリフェッチ禁止 1 プリフェッチ許可 プリフェッチが許可された領域に対しての読出しを行うと , それに続くアドレスに 対して先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレ スに対して内部バスからのアクセスがあると , 外部アクセスを行わずにプリフェッ チバッファに先読みされたデータを返します。 [bit5] WREN : WRite ENable 表 9.2-6 に , WREN ビットの各チップセレクト領域の書込みの許可・禁止を示します。 表 9.2-6 WREN ビットの各チップセレクト領域の書込みの許可・禁止 WREN 書込み許可・禁止 0 書込み禁止 1 書込み許可 書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その アクセスは無視され , 外部アクセスを一切行いません。 データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。 [bit4] LEND : Little ENDian select 表 9.2-7 に, LENDビットの各チップセレクト領域のバイトオーダリングを示します。 表 9.2-7 LEND ビットの各チップセレクト領域のバイトオーダリング LEND バイトオーダリング 0 ビッグエンディアン 1 リトルエンディアン ACR0のLENDビットには必ず"0"が設定され, 常にビッグエンディアンとなります。 230 第 9 章 外部バスインタフェース [bit3 ∼ bit0] TYP3 ∼ TYP0 : TYPe select 表 9.2-8 に , TYP ビットの各チップセレクト領域のアクセスタイプを示します。 表 9.2-8 TYP ビットの各チップセレクト領域のアクセスタイプ 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 X WR0X, WR1X 端子をライトストローブとして使用 1 X 設定禁止 0 設定禁止 1 設定禁止 0 X 0 1 0 アクセスタイプ 0 1 0 設定禁止 0 1 1 設定禁止 1 0 0 設定禁止 1 0 1 設定禁止 1 1 0 設定禁止 1 1 1 マスク領域設定 ( アクセスタイプは重複した領域のものになります ) * 各ビットは , 組み合せて設定します。 * : CS 領域マスク設定機能 ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した 領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP3 ∼ TYP0 = 1111B を設 定し , マスク設定領域として機能させることができます。 マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定を 禁止します。 マスク設定領域へのアクセスは , 以下のような動作を行います。 - マスク設定領域に対応する CSX はアサートされません。 - ベース設定領域に対応する CSX がアサートされます。 - ACR の以下の設定はマスク設定領域側のものが有効になります。 bit11, bit10 (DBW1, DBW0) : バス幅設定 bit9, bit8 (BST1, BST0) : バースト長設定 bit7 (SREN) : 共有許可設定 bit6 (PFEN) : プリフェッチ許可設定 bit5 (WREN) : ライト許可設定 ( この設定のみ , ベース設定領域と 異なる設定を禁止します。) bit4 (LEND) : リトルエンディアン設定 231 第 9 章 外部バスインタフェース - ACR の以下の設定はベース設定領域側のものが有効になります。 bit3, bit0 (TYP3, TYP0) : アクセスタイプ設定 - AWR の設定はマスク設定領域側のものが有効になります。 - CHER の設定はマスク設定領域側のものが有効になります。 マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定 できます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけ ません。また , マスク設定領域を複数重複させないでください。ASR および ACR:ASZ1, ASZ0 ビットの設定には十分注意してください。 <注意事項> [bit3 ∼ bit0] TYP3 ∼ TYP0 についての制限事項は以下のとおりです。 • ライト許可設定をマスクで実現することはできません。 • ライト許可設定は , ベースとなる CS 領域とマスク設定領域とで同じ設定としてくださ い。 • マスク設定領域でライト禁止を設定するとその領域はマスクされずにベースCS領域と して動作します。 • ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定すると , ベース設定のない領域となり誤動作します。 232 第 9 章 外部バスインタフェース 9.2.3 領域ウェイトレジスタ (AWR0 ∼ AWR4) 領域ウェイトレジスタの詳細を説明します。 ■ 領域ウェイトレジスタ (AWR0 ∼ AWR4) のレジスタ構成 図 9.2-3 に , AWR0 ∼ AWR3 のレジスタ構成を示します。 図 9.2-3 AWR0 ∼ AWR3 のレジスタ構成 AWR0 上位 bit31 000660H W15 AWR0 下位 bit23 000661H W07 AWR1 上位 bit15 30 29 28 27 26 25 24 W14 W13 W12 W11 W10 W09 W08 22 21 20 19 18 17 16 W06 W05 W04 W03 W02 W01 W00 14 13 12 11 10 9 8 000662H W15 W14 W13 W12 W11 W10 W09 AWR1 下位 bit7 6 5 4 3 2 1 000663H W07 W06 W05 W04 W03 W02 W01 30 29 28 27 26 25 W14 W13 W12 W11 W10 W09 22 21 20 19 18 17 W06 W05 W04 W03 W02 W01 14 13 12 11 10 9 AWR2 上位 bit31 000664H W15 AWR2 下位 bit23 000665H W07 AWR3 上位 bit15 000666H W15 W14 W13 W12 W11 W10 W09 AWR3 下位 bit7 6 5 4 3 2 1 000667H W07 W06 W05 W04 W03 W02 W01 14 13 12 11 10 9 AWR4 上位 bit15 000668H W15 W14 W13 W12 W11 W10 W09 AWR4 下位 bit7 6 5 4 3 2 1 000669H W07 W06 W05 W04 W03 W02 W01 初期値 INIT 時 RST 時 アクセス 01111111B 01111111B R/W 11111011B 11111011B R/W W08 XXXXXXXXB XXXXXXXXB R/W 0 W00 XXXXXXXXB XXXXXXXXB R/W 24 W08 XXXXXXXXB XXXXXXXXB R/W 16 W00 XXXXXXXXB XXXXXXXXB R/W 8 W08 XXXXXXXXB XXXXXXXXB R/W 0 W00 XXXXXXXXB XXXXXXXXB R/W 8 W08 XXXXXXXXB XXXXXXXXB R/W 0 W00 XXXXXXXXB XXXXXXXXB R/W AWR0 ∼ AWR4 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。 ACR0 ∼ ACR4 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各 ビットの働きが変わります。 233 第 9 章 外部バスインタフェース ■ 通常アクセスおよびアドレス / データマルチプレックスアクセス ACR0 ∼ ACR4 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ たチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレックスアク セス動作を行う領域となります。 表 9.2-9 通常アクセスおよびアドレス / データマルチプレックスアクセス TYP3 TYP2 TYP1 TYP0 0 0 X X 通常アクセス ( 非同期 SRAM, I/O, ROM/Flash) 0 1 X X アドレスデータマルチプレックスアクセス (8/16 ビットバス幅限定 ) アクセスタイプ 通常アクセスまたはアドレス / データマルチプレックスアクセス領域に対しての AWR0 ∼ AWR3 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各領域 を CSER レジスタによって有効にする前に設定を行ってください。 [bit15 ∼ bit12] W15 ∼ W12 : ファーストアクセスウェイトサイクル (First Access Wait Cycle) 各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設 定します。バーストアクセスサイクル以外は , このウェイト設定のみ使用されます。 CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。 表 9.2-10 各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイク ル数 W15 W14 W13 W12 0 0 0 0 自動ウェイトサイクル 0 0 0 0 1 自動ウェイトサイクル 1 … 1 234 1 ファーストアクセスウェイトサイクル … 1 1 自動ウェイトサイクル 15 第 9 章 外部バスインタフェース [bit11 ∼ bit8] W11 ∼ W08 : ページ内アクセスウェイトサイクル (Inpage Access Wait Cycle) バーストアクセス時 , ページ内アクセスのオートウェイトサイクル数を設定しま す。バーストアクセスサイクル以外では意味がありません。 表 9.2-11 バーストアクセス時 , ページ内アクセスのオートウェイトサイクル数 W11 W10 W09 W08 0 0 0 0 自動ウェイトサイクル 0 0 0 0 1 自動ウェイトサイクル 1 ページ内アクセスウェイトサイクル … 1 1 … 1 1 自動ウェイトサイクル 15 ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同 じ値を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイ ムは同じにはならないことに注意してください ( ページ内アクセスサイクルでは , アドレス出力遅延が含まれるため ) 。 [bit7, bit6] W07, W06 : リード → ライトアイドルサイクル (Read → Write Idle Cycle) リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場 合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子 は Hi-Z 状態を維持します。 リード後にライトが続く場合 , もしくはリードの後に別のチップセレクト領域への アクセスが発生した場合に , 指定したアイドルサイクルを挿入します。 W07 W06 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル リード→ライトアイドルサイクル 235 第 9 章 外部バスインタフェース [bit5, bit4] W05, W04 : ライトリカバリサイクル (Write Recovery Cycle) ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制 限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイ クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ ンスを維持します。 ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルが挿入されます。 W05 W04 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル ライトリカバリサイクル [bit3] W03 : WR1X, WR0X 出力タイミング選択 WR1X, WR0X 出力タイミング設定は , ライトストローブ出力を , 非同期ストローブ として使用するか , 同期ライトイネーブルとして使用するかを選択します。非同期 ストローブとすることにより通常メモリ I/O に対応し , 同期イネーブルとすること によりクロック同期のメモリ I/O (ASIC 内蔵メモリなど ) に対応します。 W03 WR1X, WR0X 出力タイミング選択 0 SYSCLK 同期ライトイネーブル出力 (ASX = "L" から有効 ) 1 非同期ライトストローブ出力 ( 通常動作 ) 同期ライトイネーブルとした場合 (AWR:W03 ビットが "0") , 以下のような動作とな ります。 • 同期ライトイネーブル出力のタイミングは , 外部メモリアクセスクロックの SYSCLK 出力の立上りエッジで取り込まれることを前提としたタイミング になります。非同期ストローブ出力とはタイミングが異なります。 • WR1X, WR0X 端子出力は , ASX 端子出力がアサートされているタイミングから 同期ライトイネーブル出力をアサートします。外部バスへのライトが行われる場 合 , 同期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行 われる場合 , 同期ライトイネーブル出力は "H" を出力します。 • 同期ライトイネーブル出力をアサートした次のクロックサイクルにて, 外部デー タ出力端子よりライトデータを出力します。 • リードストローブ出力 (RDX) は , WR1X, WR0X 出力タイミング設定の内容にか かわらず , 非同期リードストローブとして機能します。データの入出力方向制御 にそのまま用いてください。 • 同期ライトイネーブル出力を使用する場合 , 以下の制限があります。 • 以下の追加ウェイト設定はしないでください。 - CSX → RDX/WR1X, WR0X セットアップ設定 (AWR:W01 ビットは常に "0" を 236 第 9 章 外部バスインタフェース 書いてください ) - ファーストアクセスウェイトサイクル設定 (AWR:W15 ∼ W12 ビットには 常に "0000 B " を書いてください ) • 以下のアクセスタイプ設定 (ACR レジスタ中の TYP3 ∼ TYP0 ビット (bit3 ∼ bit0) ) は設定しないでください。 - WR1X, WR0X をライトストローブとして使用する設定 (ACR:TYP1 ビットには 常に "0" を書いてください ) - アドレス / データマルチプレックスバス設定 (ACR:TYP2 ビットには常に "0" を 書いてください ) - RDY 入力有効設定 (ACR:TYP0 ビットには常に "0" を書いてください ) • 同期ライトイネーブル出力の場合 , バースト長には常に "1" (ACR:BST1, BST0 ビットに "00B") を設定してください。 [bit2] W02 : アドレス → CSX 遅延 (Address → CSX Delay) アドレス→ CSX 遅延設定は , CSX の立下りに対してアドレスなどが一定のセット アップを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際 にも CSX のエッジを必要とする場合などに設定します。 アドレスおよび ASX 出力から CS0X ∼ CS4X 出力の遅延を設定します。 W02 アドレス → CSX 遅延 0 遅延なし 1 遅延あり "0" を設定し , 遅延なしを選択した場合は , ASX のアサートと同じタイミングで CS0X ∼ CS4X がアサート開始されます。このとき , 同じチップセレクト領域に連続したアクセス を実行した場合 , 両アクセスの間も CS0X ∼ CS4X はアサートを継続したまま変化しない ことがあります。 "1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック SYSCLK 出力の立 上りから CS0X ∼ CS4X がアサート開始されます。このとき , 同じチップセレクト 領域に連続したアクセスを実行した場合でも , 両アクセスの間に CS0X ∼ CS4X ネ ゲートタイミングが発生します。 CSX 遅延ありを選択した場合は , 遅延させた CSX のアサートからリード / ライトス トローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01 の CSX → RDX/WR1X, WR0X セットアップ設定と同等の動作となります ) 。 237 第 9 章 外部バスインタフェース [bit1] W01 : CSX → RDX/WR1X, WR0X セットアップ延長サイクル (CSX → RDX/ WR1X, WR0X setup) CSX → RDX/WR1X, WR0X セットアップ延長サイクルは , CSX アサート後 , リード / ライトストローブをアサートするまでの期間を延長する場合に設定します。CSX ア サート後 , リード / ライトストローブをアサートする前に最低 1 サイクルのセット アップ延長サイクルを挿入します。 W01 CSX → RDX/WR1X, WR0X セットアップ延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定して 0 サイクルを選択した場合は , 最速で , CSX アサート直後の外部メモ リクロック SYSCLK 出力の立上りから RDX/WR0X, WR1X が出力されます。WR0X, WR1X は , 内部バスの状態により , 1 サイクル以上遅れることもあります。 "1" を設定して 1 サイクルを選択した場合は , RDX/WR0X, WR1X とも , 必ず 1 サイ クル以上遅れて出力されます。 同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場 合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス → CSX 遅延 を挿入することにより , 毎アクセス時に CSX がいったんネゲートされるため , この セットアップ延長サイクルが有効となります。 W02 の CSX 遅延設定を挿入してある場合 , W01 ビットの設定によらず , 常にこの セットアップサイクルが有効となります。 [bit0] W00 : RDX/WR1X, WR0X → CSX ホールド延長サイクル (RDX/WR1X, WR0X → CSX Hold Cycle) RDX/WR1X, WR0X → CSX ホールド延長サイクルは , リード / ライトストローブネ ゲート後 , CSX ネゲートまでの期間を延長する場合に設定します。リード / ライト ストローブネゲート後 , CSX をネゲートする前に , 1 サイクルのホールド延長サイ クルを挿入します。 W00 RDX/WR1X, WR0X → CSX ホールド延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定して 0 サイクルを選択した場合は , RDX/WR0X, WR1X がネゲートされた後 の外部メモリクロック SYSCLK 出力の立上りエッジよりホールド遅延の経過後に CS0X ∼ CS3X がネゲートされます。 "1" を設定して 1 サイクルを選択した場合は , CS0X ∼ CS4X は 1 サイクル遅れてネ ゲートされます。 同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場 合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ イクルが必須となる場合 , W02 ビットを有効にしてアドレス → CSX 遅延を挿入す ることにより , 毎アクセス時に CSX がいったんネゲートされるため , このホールド 延長サイクルが有効となります。 238 第 9 章 外部バスインタフェース 9.2.4 DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) DMAC 用 I/O ウェイトレジスタの詳細を説明します。 ■ DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のレジスタ構成 図 9.2-4 に , IOWR0 ∼ IOWR2 のレジスタ構成を示します。 図 9.2-4 IOWR0 ∼ IOWR2 のレジスタ構成 IOWR0 bit 000678H IOWR1 bit 000679H IOWR2 bit 00067AH 31 30 29 28 27 RYE0 HLD0 WR01 WR00 IW03 23 22 21 20 14 13 12 25 IW02 IW01 18 17 IW12 IW11 10 9 IW22 IW21 19 RYE1 HLD1 WR11 WR10 IW13 15 26 11 RYE2 HLD2 WR21 WR20 IW23 24 INIT 時 初期値 RST 時 アクセス IW00 XXXXXXXXB XXXXXXXXB R/W 16 IW10 XXXXXXXXB XXXXXXXXB R/W 8 IW20 XXXXXXXXB XXXXXXXXB R/W [bit31, bit23, bit15] RYE0, RYE1, RYE2 : RDY 機能設定 (ReadY Enable0, 1, 2) DMA フライバイアクセス時の ch.0 ∼ ch.2 のチャネルごとの RDYI によるウェイト 制御の設定を行います。 RYEn RDY 機能設定 0 I/O アクセスに対する RDY 入力は無効となります。 1 I/O アクセスに対する RDY 入力が有効になります。 "1" を設定することにより , 該当するチャネルのフライバイ転送時 , RDYI 端子によ るウェイト挿入が可能となります。IOWRX, IORDX は RDYI 端子がイネーブルにな るまで延長されます。また , メモリ側の RDX/WR0X, WR1X もそれに同期して延長 されます。 フライバイ転送相手のチップセレクト領域が ACR レジスタにより RDY 有効に設定 されていると , IOWRX 側の RYEn ビットとは関係なく , RDYI 端子によるウェイト 挿入が可能となります。また , フライバイ転送相手のチップセレクト領域で ACR レ ジスタにより RDY 無効にされている場合でも , IOWRX 側の RYEn ビットにより RDY 有効に設定されていると , フライバイアクセス時のみ , RDYI 端子によるウェ イト挿入が可能となります。 SDRAM へのフライバイライトアクセスで RDY を有効にした場合 , 必ず HLD ビッ トを有効にしてホールドウェイト設定を行ってください。 239 第 9 章 外部バスインタフェース [bit30, bit22, bit14] HLD0, HLD1, HLD2 : ホールドウェイト設定 (HoLD wait control) DMA フライバイアクセス時の転送元アクセス側のリードストローブ信号のホール ドサイクルを制御します。 HLDn ホールドウェイト設定 0 ホールド延長サイクルを挿入しません。 1 ホールド延長サイクルを挿入し , リードサイクルを 1 サイクル延長し ます。 "0" 設定時は , 転送元アクセス側のリードストローブ信号 ( メモリ→ I/O の場合は RDXO, I/O →メモリの場合は IORDX) とライトストローブ信号 ( メモリ→ I/O の場 合は IOWRX, I/O →メモリの場合は , WRXO3 ∼ WRXO0 および WEX) は同じタイ ミングで出力されます。 "1"設定時は, 転送元アクセス側データの転送先に対するホールドタイムを確保する ため , ライトストローブ信号に対してリードストローブ信号を "1" サイクル長く出 力します。 SDRAM へのフライバイライトアクセスで RDY を有効にした場合 , 必ず HLD ビッ トを有効にしてホールドウェイト設定を行ってください。 [bit29, bit28, bit21, bit20, bit13, bit12] WR01, WR00, WR11, WR10, WR21, WR20 : I/O アイドルサイクル設定 (I/O Idle Cycle) DMA フライバイアクセス時に , 連続した I/O アクセスに対するアイドルサイクルを 設定します。 WRn1 WRn0 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル I/O アイドルサイクル設定 アイドルサイクルを 1 サイクル以上設定した場合 , DMA フライバイアクセス時に , I/O アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイド ルサイクル中は , すべての CSX およびストローブ出力はネゲートされ , データ端子 はハイインピーダンスとなります。 240 第 9 章 外部バスインタフェース [bit27 ∼ bit24, bit19 ∼ bit16, bit11 ∼ bit8] IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20: I/O ウェイトサイクル (I/O Wait Cycle) DMA フライバイアクセス時の I/O アクセスの自動ウェイトサイクルを指定します。 IWn3 IWn2 IWn1 IWn0 0 0 0 0 0 サイクル 0 0 0 1 1 サイクル I/O ウェイトサイクル … 1 1 … 1 1 15 サイクル ウェイトサイクルの挿入数は , 転送元と転送先とのデータ同期のため , IWnn ビット による I/O 側の設定とフライバイ転送相手 ( メモリなど ) のウェイト設定のうち , 大 きいほうを使用します。そのため , IWnn ビットに設定したサイクル数より多いウェ イトが挿入される場合があります。 241 第 9 章 外部バスインタフェース 9.2.5 チップセレクト領域許可レジスタ (CSER) チップセレクト領域許可レジスタの詳細を説明します。 ■ チップセレクト領域許可レジスタ (CSER) のレジスタ構成 図 9.2-5 に , CSER のレジスタ構成を示します。 図 9.2-5 CSER のレジスタ構成 アドレス bit31 30 29 000680H 予約 予約 予約 28 27 26 25 24 初期値 INIT 時 RST 時 CSE4 CSE3 CSE2 CSE1 CSE0 00000001B 00000001B アクセス R/W 各チップセレクト領域の許可 / 禁止を設定します。 [bit31 ∼ bit29] 予約 : 予約ビット 必ず , "000B" を設定してください。 [bit28 ∼ bit24] CSE4 ∼ CSE0 : チップセレクト領域許可 (Chip select enable 0 ∼ 4) CS0X ∼ CS4X の各チップセレクト領域許可ビットです。 初期値は , "00001B" で CS0 領域のみ許可されています。 "1" を書き込むことにより ASR0 ∼ ASR4, ACR0 ∼ ACR4, AWR0 ∼ AWR4 の設定に 従って動作します。 許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってくださ い。 CSE4 ∼ CSE0 領域コントロール 0 禁止 1 許可 以下に CSE のビットと対応する CSX を示します。 CSE のビット 242 対応する CSX bit24 : CSE0 CS0X bit25 : CSE1 CS1X bit26 : CSE2 CS2X bit27 : CSE3 CS3X bit28 : CSE4 CS4X 第 9 章 外部バスインタフェース 9.2.6 キャッシュイネーブルレジスタ (CHER) キャッシュイネーブルレジスタの詳細を説明します。 ■ キャッシュイネーブルレジスタ (CHER) のレジスタ構成 図 9.2-6 に , CHER のレジスタ構成を示します。 図 9.2-6 CHER のレジスタ構成 アドレス bit23 22 21 000681H 予約 予約 予約 20 19 18 17 16 初期値 INIT 時 RST 時 CHE4 CHE3 CHE2 CHE1 CHE0 11111111B 11111111B アクセス R/W CHER は各チップセレクト領域から読み込んだデータの内蔵キャッシュへの取込みを 制御します。 [bit20 ∼ bit16] CHE4 ∼ CHE0 : キャッシュ領域設定 (CacHe Enable 4 ∼ 0) 各チップセレクト領域ごとに , キャッシュへの取込みの許可・禁止を指定します。 CHE4 ∼ CHE4 キャッシュ領域設定 0 非キャッシュ領域 ( 該当する領域より読み出したデータをキャッシュに保存し ません ) 1 キャッシュ領域 ( 該当する領域より読み出したデータをキャッシュに保存し ます ) 243 第 9 章 外部バスインタフェース 9.2.7 端子 / タイミングコントロールレジスタ (TCR) 端子 / タイミングコントロールレジスタ (TCR) の詳細を説明します。 ■ 端子 / タイミングコントロールレジスタ (TCR) のレジスタ構成 図 9.2-7 TCR のレジスタ構成 アドレス 000683H bit23 22 21 BREN PSUS PCLR 20 19 予約 予約 18 17 16 初期値 INIT 時 RST 時 予約 RDW1 RDW0 00000000B 0000XXXXB アクセス R/W TCR は , 能設定やタイミング制御など , 外部バスインタフェースコントローラ全般にか かわる機能を制御します。 [bit7] BREN : BRQ 入力許可設定 (BRQ ENable) BRQ 端子入力を許可し , 外部バス共有を可能にします。 BREN BRQ 入力許可設定 0 BRQ/BGRNTX によるバス共有をしません。BRQ 入力は無効となり ます。 1 BRQ/BGRNTX によるバス共有を行います。BRQ 入力は有効となり ます。 初期状態 ("0") のときは , BRQ の入力を無視します。 "1" を設定すると , BRQ 入力が "H" になった後 , バス開放が可能になった時点で , バ スを開放 ( ハイインピーダンス制御 ) して BGRNTX をアクティブ ("L" 出力 ) にし ます。 [bit6] PSUS : プリフェッチ抑止 (Prefetch SUSpend) すべての領域に対するプリフェッチの一時停止を制御します。 PSUS プリフェッチ制御 0 プリフェッチ許可 1 プリフェッチ抑止 "1" を設定すると "0" を書き込むまでの間 , 新規のプリフェッチ動作を行いません。 この間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファ の内容は消去されませんので , プリフェッチを再開する前に bit5:PCLR ビット機能 によりプリフェッチバッファのクリアを行ってください。 244 第 9 章 外部バスインタフェース [bit5] PCLR : プリフェッチバッファ全クリア (Prefetch buffer CLeaR) プリフェッチバッファのすべての内容をクリアします。 PCLR プリフェッチバッファ制御 0 通常状態 1 プリフェッチバッファクリア "1" を書き込むと 1 度だけプリフェッチバッファをすべてクリアします。バッファ クリアが完了すると自動的にビット値は "0" に戻ります。 PSUS ビットでプリフェッ チを中断 ("1" に設定 ) しておいてからバッファのクリアを行ってください (PSUS と PCLR の両ビットに同時に "11B" を書き込んで結構です ) 。 [bit4 ∼ bit2] 予約 : 予約ビット 予約ビットです。必ず "0" を設定してください。 [bit1, bit0] RDW1, RDW0 : ウェイトサイクル短縮 (ReDuce Wait cycle) すべてのチップセレクト領域およびフライバイ用 I/O チャネルに対し , 自動アクセ スサイクルウェイトの設定値を AWR レジスタの設定値はそのままで自動ウェイト サイクルのみ一律に削減します。アイドルサイクルやリカバリサイクル , セット アップやホールドサイクルの設定には影響しません。 RDW1 RDW0 0 0 通常ウェイト (AWR0 ∼ AWR4 の設定値 ) 0 1 AWR0 ∼ AWR4 の設定値の 1/2 (1 ビット右シフト ) 1 0 AWR0 ∼ AWR4 の設定値の 1/4 (2 ビット右シフト ) 1 1 AWR0 ∼ AWR4 の設定値の 1/8 (3 ビット右シフト ) ウェイトサイクル短縮 この機能は , ベースクロックを低速にしている間や外部バスクロックの分周比設定 を大きくしている間など , 低速クロックで動作している間に過剰なアクセスサイク ルウェイトがかかることを防ぐためのものです。 通常 , このような場合にウェイトサイクルを設定し直すには , すべての AWR をそれ ぞれ書き換えなければなりませんが , RDW1, RDW0 ビットの機能を使うと , すべて の AWR の設定は高速クロックのときの設定のままで , アクセスサイクルウェイト のみ一度に削減することができます。 クロックを高速に戻す前に , 必ず RDW1, RDW0 ビットは "00B" に設定し直してくだ さい。 245 第 9 章 外部バスインタフェース 9.3 チップセレクト領域 外部バスインタフェースは全 5 領域分のチップセレクト領域を設定できます。 各領域のアドレス空間は ASR0 ∼ ASR4 ( 領域選択レジスタ ) と ACR0 ∼ ACR4 ( 領域構成レジスタ ) にて 4G バイトの空間の内 , CS0X ∼ CS4X は 64K ∼ 2048M バイト単位で "00040000H" ∼ "FFFFFFFFH" の空間に設定可能です。 これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス サイクル中に対応するチップセレクト信号 CS0X ∼ CS4X がアクティブ ("L" 出力 ) になります。 ■ ASR および ASZ1, ASZ0 の設定例 1. ASR1 = 0001H ACR1 → ASZ3 ∼ ASZ0 = 0000B チップセレクト領域 1 は , "00100000H" から "0010FFFFH" に割り当てられます。 2. ASR2 = 0040H ACR2 → ASZ3 ∼ ASZ0 = 0100B チップセレクト領域 2 は , "00400000H" から "004FFFFFH" に割り当てられます。 3. ASR3 = 0081H ACR3 → ASZ3 ∼ ASZ0 = 0111B チップセレクト領域 3 は , "00800000H" から "00FFFFFFH" に割り当てられます。 このとき , ACR → ASZ3 ∼ ASZ0 が 8M バイトの設定になっていますので , バウンダリ は 8M バイト単位となり , ASR3[22:16] は無視されます。 リセット後は , ACR0 に書込みが行われるまでの間 , "00000000H" ∼ "FFFFFFFFH" が チップセレクト領域 0 に割り当てられます。 <注意事項> チップセレクト領域は , お互いにオーバラップしないように設定してください。 246 第 9 章 外部バスインタフェース 図 9.3-1 にチップセレクト領域を示します。 図 9.3-1 チップセレクト領域 00000000H 00000000H 00100000H 領域 1 64K バイト 00400000H 領域 2 1M バイト 領域 0 00800000H 8M バイト 領域 3 00FFFFFFH FFFFFFFFH FFFFFFFFH 247 第 9 章 外部バスインタフェース 9.4 エンディアンとバスアクセス WR1X, WR0X の制御信号は , データバス幅に関係なくデータバスのバイト位置に常 に 1 対 1 に対応します。 下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト 位置とそれに対応する制御信号をまとめます。 ■ データバス幅と制御信号との関係 ● 通常バスインタフェースの制御信号 図 9.4-1 に , 通常バスインタフェースの制御信号を示します。 図 9.4-1 通常バスインタフェースの制御信号 a)16ビットバス幅 データバス 制御記号 D31 WR0X D24 WR1X D16 b)8ビットバス幅 データバス 制御記号 WR0X - - ● 時分割入出力インタフェースの制御信号 図 9.4-2 に , 時分割入出力インタフェースの制御信号を示します。 図 9.4-2 時分割入出力インタフェースの制御信号 a)16ビットバス幅 b) 8ビットバス幅 データバス 出力アドレス 制御記号 データバス 出力アドレス 制御記号 D31 D16 248 A15~A08 WR0X A07~A00 WR1X A07~A00 - - WR0X - 第 9 章 外部バスインタフェース 9.4.1 ビッグエンディアンのバスアクセス MB91461/F467R は CS0 領域を除いて , 各チップセレクトごとにビッグエンディア ン / リトルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビット を "1" に設定した場合は , その領域をリトルエンディアンとして扱います。 通常 , MB91461/F467R はビッグエンディアンで外部バスアクセスを行います。 ■ ビッグエンディアンのデータフォーマット 内部レジスタと外部データバスとの関係は以下のようになります。 ● ワードアクセス (LD, ST 命令実行時 ) 図 9.4-3 ワードアクセス (LD, ST 命令実行時 ) 内部レジスタ D31 AA D23 BB D15 CC D7 DD D0 外部バス D31 AA D23 BB D15 ● ハーフワードアクセス (LDUH, STH 命令実行時 ) 図 9.4-4 ハーフワードアクセス (LDUH, STH 命令実行時 ) a)出力アドレス下位"00" 内部レジスタ D31 D23 D15 b)出力アドレス下位"10" 外部バス D31 AA D23 BB D15 内部レジスタ D31 D23 D15 AA 外部バス D31 AA D23 BB D15 AA D7 D7 BB BB D0 D0 ● バイトアクセス (LDUB, STB 命令実行時 ) 図 9.4-5 バイトアクセス (LDUB, STB 命令実行時 ) a) 出力アドレス下位"00" b) 出力アドレス下位"01" c) 出力アドレス下位"10" d) 出力アドレス下位"11" 内部レジスタ D31 内部レジスタ D31 内部レジスタ 外部バス D31 D31 AA D23 D23 内部レジスタ 外部バス D31 D31 D23 外部バス D31 AA D23 外部バス D31 D23 D23 D23 D23 AA D15 D15 D7 D15 D0 D15 D7 AA AA D15 D7 AA D0 D15 D15 D7 AA D0 D15 AA D0 249 第 9 章 外部バスインタフェース ■ データバス幅 ● 16 ビットバス幅 図 9.4-6 16 ビットバス幅 内部レジスタ 外部バス 出力アドレス下位 "00" "10" D31 D23 D15 D07 読出し/書込み AA BB AA CC BB DD D31 D23 CC DD ● 8 ビットバス幅 図 9.4-7 8 ビットバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 D23 D15 D07 AA 読出し/書込み "00" "01" "10" "11" AA BB CC DD D31 BB CC DD ■ 外部バスアクセス 外部バスアクセス (16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バイトアクセ ス別に図 9.4-8 , 図 9.4-9 および図 9.4-10 に示します。また , 以下の項目も合わせて図 9.4-11 , 図 9.4-12 および図 9.4-13 に示します。 • アクセスバイト位置 • プログラムアドレス • 出力アドレスバスアクセス回数 PA1/PA0 : プログラムで指定したアドレス下位2ビット 出力 A1/A0 : 出力するアドレスの下位 2 ビット : 出力するアドレスの先頭バイト位置 : アクセスするデータバイト位置 : バスアクセス回数 + ①∼④ MB91461/F467R では , ミスアラインエラーを検出しません。 したがってワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビットが "00B" "01B" "10B" "11B" であっても , 出力するアドレスの下位 2 ビットはすべて "00B" と なり , ハーフワードアクセスの場合には "00B" "01B" のときには "00B" に , "00B" "01B" の ときには "10B" になります。 250 第 9 章 外部バスインタフェース ● 16 ビットバス幅 • ワードアクセス 図 9.4-8 ワードアクセス (a) PA1/PA0 = 00B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 10B MSB (b) PA1/PA0 = 01B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 10B (c) PA1/PA0 = 10B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 10B (d) PA1/PA0 = 11B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 10B LSB ①⇒ 00 01 ①⇒ 00 01 ①⇒ 00 01 ①⇒ 00 01 ②⇒ 10 11 ②⇒ 10 11 ②⇒ 10 11 ②⇒ 10 11 16 ビット • ハーフワードアクセス 図 9.4-9 ハーフワードアクセス (a) PA1/PA0 = 00B →①出力 A1/A0 = 00B (b) PA1/PA0 = 01B →①出力 A1/A0 = 00B (c) PA1/PA0 = 10B →①出力 A1/A0 = 10B (d) PA1/PA0 = 11B →①出力 A1/A0 = 10B ①⇒ 00 01 ①⇒ 00 01 00 01 00 01 10 11 10 11 ①⇒ 10 11 ①⇒ 10 11 • バイトアクセス 図 9.4-10 バイトアクセス (a) PA1/PA0 = 00B →①出力 A1/A0 = 00B (b) PA1/PA0 = 01B (c) PA1/PA0 = 10B (d) PA1/PA0 = 11B →①出力 A1/A0 = 01B →①出力 A1/A0 = 10B →①出力 A1/A0 = 11B ①⇒ 00 01 ①⇒ 00 01 00 01 00 01 10 11 10 11 ①⇒ 10 11 ①⇒ 10 11 251 第 9 章 外部バスインタフェース ● 8 ビットバス幅 • ワードアクセス 図 9.4-11 ワードアクセス (a) PA1/PA0 = 00B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 01B ③出力 A1/A0 = 10B ④出力 A1/A0 = 11B MSB (b) PA1/PA0 = 01B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 01B ③出力 A1/A0 = 10B ④出力 A1/A0 = 11B (c) PA1/PA0 = 10B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 01B ③出力 A1/A0 = 10B ④出力 A1/A0 = 11B (d) PA1/PA0 = 11B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 01B ③出力 A1/A0 = 10B ④出力 A1/A0 = 11B LSB ①⇒ 00 ①⇒ 00 ①⇒ 00 ①⇒ 00 ②⇒ 01 ②⇒ 01 ②⇒ 01 ②⇒ 01 ③⇒ 10 ③⇒ 10 ③⇒ 10 ③⇒ 10 ④⇒ 11 ④⇒ 11 ④⇒ 11 ④⇒ 11 8 ビット • ハーフワードアクセス 図 9.4-12 ハーフワードアクセス (a) PA1/PA0 = 00B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 01B 252 (b) PA1/PA0 = 01B → ①出力 A1/A0 = 00B ②出力 A1/A0 = 01B (c) PA1/PA0 = 10B → ①出力 A1/A0 = 10B ②出力 A1/A0 = 11B (d) PA1/PA0 = 11B → ①出力 A1/A0 = 10B ②出力 A1/A0 = 11B ①⇒ 00 ①⇒ 00 00 00 ②⇒ 01 ②⇒ 01 01 01 10 10 ①⇒ 10 ①⇒ 10 11 11 ②⇒ 11 ②⇒ 11 第 9 章 外部バスインタフェース • バイトアクセス 図 9.4-13 バイトアクセス (a) PA1/PA0 = 00B →①出力 A1/A0 = 00B (b) PA1/PA0 = 01B →①出力 A1/A0 = 01B (c) PA1/PA0 = 10B →①出力 A1/A0 = 10B (d) PA1/PA0 = 11B →①出力 A1/A0 = 11B ①⇒ 00 00 00 00 01 ①⇒ 01 01 01 10 10 ①⇒ 10 10 11 11 11 ①⇒ 11 ■ 外部との接続例 図 9.4-14 外部との接続例 FRコア D31 WR0X D23 WR1X ~ ~ D24 D16 0 D31 A23~ A23~ A01 A00 1 D24 D23 A23 ~ A00 D16 16ビットデバイス* 0 D31 D24 8ビットデバイス* ("0"/"1"アドレス下位1ビット) *:8ビットデバイスの場合は,MSB側のデータバスを使用します。 253 第 9 章 外部バスインタフェース 9.4.2 リトルエンディアンのバスアクセス MB91461/F467R は CS0 領域を除いて , 各チップセレクトごとにビッグエンディア ン / リトルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビット を "1" に設定した場合は , その領域はリトルエンディアンとして扱います。 MB91461/F467R のリトルエンディアンバスアクセスは , ビッグエンディアン時のバ スアクセス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番 と制御信号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップす ることにより実現しています。 接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける 必要がありますので , 十分注意が必要です。 ■ リトルエンディアンとビッグエンディアンの相違点 リトルエンディアンとビッグエンディアンの相違点を以下に説明します。 • 出力するアドレスの順番はビッグエンディアン / リトルエンディアンで変わりませ ん。 • ワードアクセス : ビッグエンディアンのアドレス A01, A00 = 00B に対応する MSB 側のバイトデータが , リトルエンディアンでは LSB 側 のバイトデータになります。 ワードアクセスの場合は , ワード内の 4 バイトのすべてのバ イト位置が反転します。 • ハーフワードアクセス: ビッグエンディアンのアドレス A00 に対応する MSB 側のバ イトデータが, リトルエンディアンではLSB側のバイトデー タになります。 ハーフワードアクセスの場合は , ハーフワード内の 2 バイト のバイト位置が反転します。 • バイトアクセス : ビッグエンディアン / リトルエンディアンとも同じです。 ■ リトルエンディアン領域に対する制限事項 • リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に 対するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファ に読み出されたデータをワード長以外でアクセスすると , 正しくエンディアン変換 が行われず , 誤ったデータを読み出してしまいます。これは , エンディアン変換機 構のハードウェア的な制限によるものです。 • リトルエンディアン領域には , 命令コードを配置しないでください。 254 第 9 章 外部バスインタフェース ■ データフォーマット 内部レジスタと外部データバスとの関係は以下のようになります。 ● ワードアクセス (LD, ST 命令実行時 ) 図 9.4-15 ワードアクセス (LD, ST 命令実行時 ) 内部レジスタ D31 AA D23 BB D15 CC D7 DD D0 外部バス D31 BB DD D23 AA CC D15 ● ハーフワードアクセス (LDUH, STH 命令実行時 ) 図 9.4-16 ハーフワードアクセス (LDUH, STH 命令実行時 ) a)出力アドレス下位"00" 内部レジスタ D31 D23 D15 b)出力アドレス下位"10" 外部バス D31 BB D23 AA D15 内部レジスタ D31 D23 D15 外部バス D31 BB D23 AA D15 AA AA D7 D7 BB BB D0 D0 ● バイトアクセス (LDUB, STB 命令実行時 ) 図 9.4-17 バイトアクセス (LDUB, STB 命令実行時 ) a) 出力アドレス下位"00" b) 出力アドレス下位"01" c) 出力アドレス下位"10" d) 出力アドレス下位"11" 内部レジスタ D31 内部レジスタ D31 内部レジスタ 外部バス D31 D31 AA D23 D23 内部レジスタ 外部バス D31 D31 D23 外部バス D31 AA D23 外部バス D31 D23 D23 D23 D23 AA D15 D15 D7 D15 D0 D15 D7 AA AA D15 D7 AA D0 D15 D15 D7 AA D0 D15 AA D0 255 第 9 章 外部バスインタフェース ■ データバス幅 ● 16 ビットバス幅 図 9.4-18 16 ビットバス幅 内部レジスタ 外部バス 出力アドレス下位 "00" "10" D31 D23 D15 D07 AA 読出し/書込み BB DD BB CC AA D31 D23 CC DD ● 8 ビットバス幅 図 9.4-19 8 ビットバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 D23 D15 D07 256 AA BB CC DD 読出し/書込み "00" DD "01" CC "10" BB "11" AA D31 第 9 章 外部バスインタフェース ■ 外部デバイスとの接続例 ● 16 ビットバス幅 図 9.4-20 16 ビットバス幅 FRコア D31 WR0X D23 WR1X ~ ~ D24 D16 0 D31 A31 ~ A01 1 1 D24 D23 D16 D31 ビッグエンディアン領域 0 D24 D23 D16 リトルエンディアン領域 ● 8 ビットバス幅 図 9.4-21 8 ビットバス幅 FRコア D31 WR0X ~ D24 D31 D24 ビッグエンディアン領域 A31 ~ A00 D31 D24 リトルエンディアン領域 257 第 9 章 外部バスインタフェース 9.4.3 ビッグエンディアンとリトルエンディアンの外部 アクセスの比較 バス幅に対するワードアクセス , ハーフワードアクセスおよびバイトアクセスについ て , ビッグエンディアンとリトルエンディアンの外部アクセスの比較を示します。 これらの図は , ビッグエンディアン領域とリトルエンディアン領域とを分け 「 , 9.4.1 ビッグエンディアンのバスアクセス」および「9.4.2 リトルエンディアンのバスアク セス」で示した外部デバイスとの接続例に従ってデータバスを準続した場合に , すべ てのアクセスについて内部レジスタがビッグエンディアンになることを示していま す。 ■ ワードアクセス 表 9.4-1 ワードアクセス (1 / 2) バス幅 ビッグエンディアンモード 内部レジスタ 外部端子 制御端子 アドレス: "0" D31 D31 AA WR0X BB D16 AA BB D00 リトルエンディアンモード 内部レジスタ 外部端子 アドレス: "0" D31 D31 BB AA WR1X - - - - D16 AA BB D00 ① 16 ビットバス幅 内部レジスタ 外部端子 アドレス: "2" D31 D31 CC DD D16 CC DD D00 258 WR0X WR1X - - - - ① 制御端子 WR0X 内部レジスタ 外部端子 アドレス: "2" D31 D31 DD CC WR1X - - - - D16 CC DD D00 ① 制御端子 制御端子 WR0X WR1X - - - - ① 第 9 章 外部バスインタフェース 表 9.4-1 ワードアクセス (2 / 2) バス幅 ビッグエンディアンモード 内部レジスタ 外部端子 制御端子 アドレス: "0" "1" D31 D31 AA BB WR0X D24 AA BB D00 - - - - - - - - - D00 ① リトルエンディアンモード 内部レジスタ 外部端子 アドレス: "0" "1" D31 D31 BB AA 制御端子 D24 - - AA BB D00 D00 - - - - - - - ① ② WR0X ② 8 ビットバス幅 内部レジスタ 外部端子 アドレス: "2" "3" D31 D31 CC DD D24 CC DD D00 D00 制御端子 WR0X - - - - - - - - - ① ② 内部レジスタ 外部端子 アドレス: "2" "3" D31 D31 DD CC D24 CC DD D00 D00 制御端子 WR0X - - - - - - - - - ① ② 259 第 9 章 外部バスインタフェース ■ バイトアクセス 表 9.4-2 バイトアクセス (1 / 2) バス幅 ビッグエンディアンモード 外部端子 内部レジスタ アドレス: "0" D31 D31 AA 制御端子 WR0X リトルエンディアンモード 外部端子 内部レジスタ アドレス: "0" D31 D31 AA - D16 AA - AA - - D00 ① ① 内部レジスタ 外部端子 アドレス: "1" D31 D31 WR0X - D16 - D00 制御端子 制御端子 内部レジスタ 外部端子 アドレス: "1" D31 D31 制御端子 - - BB D16 BB WR1X D16 WR1X - - BB - D00 BB - D00 ① ① 16 ビットバス幅 外部端子 内部レジスタ アドレス: "2" D31 D31 CC 制御端子 WR0X 外部端子 内部レジスタ アドレス: "2" D31 D31 CC - D16 制御端子 WR0X - D16 - CC - D00 - CC - D00 ① 内部レジスタ 外部端子 アドレス: "3" D31 D31 ① 制御端子 内部レジスタ 外部端子 アドレス: "3" D31 D31 - DD D16 - DD WR1X D16 - DD 260 DD - D00 ① WR1X - - D00 制御端子 ① 第 9 章 外部バスインタフェース 表 9.4-2 バイトアクセス (2 / 2) バス幅 ビッグエンディアンモード 外部端子 内部レジスタ アドレス: "0" D31 D31 AA D24 AA 制御端子 WR0X リトルエンディアンモード 内部レジスタ 外部端子 アドレス: "0" D31 D31 AA D24 制御端子 WR0X - - - - AA - - D00 D00 ① ① 外部端子 内部レジスタ アドレス: "1" D31 D31 BB D24 BB 制御端子 WR0X 外部端子 内部レジスタ アドレス: "1" D31 D31 BB D24 制御端子 WR0X - - - - BB - D00 - D00 ① ① 8 ビットバス幅 内部レジスタ 外部端子 アドレス: "2" D31 D31 CC D24 CC 制御端子 WR0X 内部レジスタ 外部端子 アドレス: "2" D31 D31 CC D24 制御端子 WR0X - - - - CC - D00 - D00 ① 内部レジスタ 外部端子 アドレス: "3" D31 D31 DD D24 DD ① 制御端子 WR0X 内部レジスタ 外部端子 アドレス: "3" D31 D31 DD D24 WR0X - - - - DD - D00 制御端子 - D00 ① ① 261 第 9 章 外部バスインタフェース 通常バスインタフェース 9.5 通常バスインタフェースでは , リードアクセス / ライトアクセスともに 2 クロックサ イクルが基本バスサイクルになります。 ■ 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0= 0000B, AWR=0008H) 図 9.5-1 に , アクセスが連続する場合の基本タイミングを示します。 図 9.5-1 アクセスが連続する場合の基本タイミング SYSCLK A23~A00 #2 #1 ASX CS4X~CS0X RDX 読出し D31~D16 #1 #2 WR1X, WR0X 書込み D31~D16 262 #1 #2 第 9 章 外部バスインタフェース • ASX は , バスアクセス開始サイクルに 1 サイクルアサートします。 • A23 ∼ A00 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレ スをバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。 • CS0X ∼ CS3X は , AWR0 ∼ AWR4 レジスタの W02 ビットが "0" のときは , ASX と 同じタイミングでアサートし , 連続するアクセスがある場合には CS0X ∼ CS4X は ネゲートしません。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了 後に CS0X ∼ CS4X をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネゲートします。 • RDX, WR0X, WR1X は , バスアクセス第 2 サイクルからアサートになります。AWR レジスタ W15 ∼ W12 ビットのウェイトサイクルを挿入した後 , ネゲートになりま す。RDX, WR0X, WR1X をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設定することにより 1 サイクル遅らせることができます。 • リードアクセスの場合 , RDX アサートになった後 , ウェイトサイクルが終了したサ イクルの SYSCLK の立上りで D31 ∼ D16 を取り込みます。 • ライトアクセスの場合 , WR0X, WR1X をアサートになったタイミングから D31 ∼ D16 にデータを出力します。 263 第 9 章 外部バスインタフェース ■ リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H) 図 9.5-2 に , リード→ライトタイミングを示します。 図 9.5-2 リード → ライトタイミング リード アイドル ライト SYSCLK A23~A00 ASX CS4X~CS0X RDX WR1X, WR0X D31~D16 • AWR レジスタ W06 ビットの設定により , 0 または 1 サイクルのアイドルサイクル 挿入が可能です。 • リード側の CS 領域の設定が有効になります。 • リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで ある場合にこのアイドルサイクルを挿入します。 264 第 9 章 外部バスインタフェース ■ ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H) 図 9.5-3 に , ライト→ライトタイミングを示します。 図 9.5-3 ライト → ライトタイミング ライト ライト リカバリ ライト SYSCLK A23~A00 ASX CS4X~CS0X WR1X, WR0X D31~D16 • AWR レジスタの W04 ビットの設定により , 0 または 1 サイクルのライトリカバリ サイクルを挿入可能です。 • すべてのライトサイクル後に , リカバリサイクルが発生します。 • 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ トリカバリサイクルを発生します。 265 第 9 章 外部バスインタフェース ■ 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H) 図 9.5-4 に , 自動ウェイトタイミングを示します。 図 9.5-4 自動ウェイトタイミング 基本サイクル ウェイトサイクル SYSCLK A23~A00 ASX CS4X~CS0X RDX 読出し D31~D16 WR1X, WR0X 書込み D31~D16 • AWR レジスタ W15 ∼ W12 ビット (first wait cycle) の設定により自動ウェイトサイ クルを 0 ∼ 15 まで設定可能です。 • 上図では , 自動ウェイトサイクルを 2 サイクル挿入して合計 4 サイクルのアクセスと なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル+ (first wait cycle) となります。ライトの場合は内部状態によりさらに長くなることがあ ります。 266 第 9 章 外部バスインタフェース ■ 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H) 図 9.5-5 に , 外部ウェイトタイミングを示します。 図 9.5-5 外部ウェイトタイミング 基本サイクル 自動ウェイト 2サイクル RDYによる ウェイト サイクル SYSCLK A23~A00 ASX CS4X~CS0X RDX 読出し D31~D16 WR1X, WR0X 書込み D31~D16 RDY 解除 ウェイト ACR レジスタの TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに より外部ウェイトサイクルを挿入可能です。上図において , 自動ウェイトサイクルによ るウェイトが有効であるため , RDY 端子の斜線部分は無効になります。自動ウェイト サイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。また , いった んウェイトサイクルを終了した後は , 次のアクセスサイクルの開始まで , RDY 入力端 子の値は無効になります。 267 第 9 章 外部バスインタフェース ■ CSX 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH) 図 9.5-6 に , CSX 遅延設定を示します。 図 9.5-6 CSX 遅延設定 SYSCLK A23~A00 ASX CS4X~CS0X RDX 読出し D31~D16 WR1X, WR0X 書込み D31~D16 268 第 9 章 外部バスインタフェース ■ CSX→ RDX/WR1X, WR0X セットアップ・RDX/WR1X, WR0X → CSX ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) 図 9.5-7 に , CSX → RDX/WR1X, WR0X セットアップ・RDX/WR1X, WR0X → CSX ホー ルド設定を示します。 図 9.5-7 CSX → RDX/WR1X, WR0X セットアップ・RDX/WR1X, WR0X → CSX ホールド設定 SYSCLK A23~A00 ASX CS4X~CS0X CSX->RDX/WR1X, WR0X RDX/WR1X, WR0X->CSX 遅延 遅延 RDX 読出し D31~D16 WR1X, WR0X 書込み D31~D16 • AWRレジスタのW01ビットを"1"に設定することにより, CSX→RDX/WR1X, WR0X セットアップディレイを設定可能です。チップセレクトアサート後 , リード / ライト ストローブまでの期間を延長する場合に設定します。 • AWR レジスタの W00 ビットを "1" に設定することにより , RDX/WR1X, WR0X → CSX ホールドディレイを設定可能です。リード / ライトストローブネゲート後 , チッ プセレクトネゲートまでの期間を延長する場合に設定します。 • CSX → RDX/WR1X, WR0X セットアップディレイ (W01 ビット ) と RDX/WR1X, WR0X → CSX ホールドディレイ (W00 ビット ) は独立に設定可能です。 • 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク セスする場合は , CSX → RDX/WR1X, WR0X セットアップディレイ , RDX/WR1X, WR0X → CSX ホールドディレイともに挿入されません。 • アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタの W02 ビット ) を "1" に設定してください。 269 第 9 章 外部バスインタフェース アドレス / データマルチプレックスインタフェース 9.6 アドレス / データマルチプレックスインタフェースの設定について説明します。 ■ 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H) 図 9.6-1 に , 外部ウェイトがない場合のアドレス / データマルチプレックスインタ フェース設定を示します。 図 9.6-1 外部ウェイトがない場合のアドレス / データマルチプレックスインタフェース設定 SYSCLK アドレス[23:0] A23~A00 ASX CS4X~CS0X RDX 読出し D31~D16 アドレス[15:0] データ [15:0] WR1X, WR0X 書込み D31~D16 270 アドレス[15:0] データ[15:0] 第 9 章 外部バスインタフェース • ACR レジスタの TYP3 ∼ TYP0 = 01XXB と設定することによりアドレス / データマ ルチプレックスインタフェース設定が可能です。 • アドレス / データマルチプレックスインタフェースに設定した場合 , データバス幅 (DBW1, DBW0 ビット ) の設定は 8 ビットもしくは 16 ビットに設定してください。 32 ビット幅はサポートしていません。 • アドレス / データマルチプレックスインタフェースでは , アドレス出力サイクル 2 サ イクル+データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり ます。 • アドレス出力サイクルでは , 出力アドレスラッチイネーブル信号として ASX をア サートしますが , CSX → RDX/WR1X, WR0X セットアップ遅延 (AWR:W01) が "0" に 設定してある場合 , 上図のようにマルチプレックスアドレス出力サイクルが 1 サイ クルのみとなり , アドレスを ASX の立上りエッジで直接ラッチすることは不可能と なります。このため , ASX に "L" がアサートされているサイクルの SYSCLK の立上 りエッジでアドレスを取り込んでください。アドレスを ASX の立上りエッジで直 接ラッチする場合は , 「■ CSX → RDX/WR1X, WR0X セットアップ設定 (TYP3 ∼ TYP0 = 0101B, AWR = 100BH)」を参照してください。 • A23 ∼ A00 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの 先頭を示すアドレスを出力します。アドレス / データマルチプレックスインタ フェースで 8/16 ビット以上のアドレスを使用したい場合に利用してください。 • 自動ウェイト(AWR:W14∼AWR:W12),リード→ライトアイドルサイクル(AWR:W06), ライトリカバリ(AWR:W04), アドレス→ CSX遅延 (AWR2), CSX→RDX/WR1X, WR0X セットアップ遅延 (AWR:W01), RDX /WR1X, WR0X → CSX ホールド遅延 (AWR0) の 設定は , 通常インタフェースと同様に設定可能です。 271 第 9 章 外部バスインタフェース ■ 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H) 図 9.6-2 に , 外部ウェイトがある場合のアドレス / データマルチプレックスインタ フェース設定を示します。 図 9.6-2 外部ウェイトがある場合のアドレス / データマルチプレックスインタフェース設定 SYSCLK アドレス[23:0] A23~A00 ASX CS4X~CS0X RDX 読出し D31~D16 データ [15:0] アドレス[15:0] WR1X, WR0X 書込み D31~D16 アドレス[15:0] データ[15:0] RDY ACR レジスタの TYP3 ∼ TYP0 = 01X1B と設定することにより , アドレス / データマ ルチプレックスインタフェースにおいて RDY 入力を有効とすることが可能です。 272 第 9 章 外部バスインタフェース ■ CSX→RDX/WR1X, WR0Xセットアップ設定 (TYP3∼TYP0=0101B, AWR=100BH) 図 9.6-3 に , CSX → RDX/WR1X, WR0X セットアップ設定を示します。 図 9.6-3 CSX → RDX/WR1X, WR0X セットアップ設定 SYSCLK A23~A00 アドレス[23:0] ASX CS4X~CS0X RDX 読出し D31~D16 アドレス[15:0] データ [15:0] アドレス[15:0] データ[15:0] WR1X, WR0X 書込み D31~D16 CSX → RDX/WR1X, WR0X セットアップ遅延 (AWR:W01) を "1" に設定すると , 上図の ようにマルチプレックスアドレス出力サイクルが1サイクル延長され, アドレスをASX の立上りエッジで直接ラッチすることが可能となります。SYSCLK を使用せずに ASX を ALE(Address Latch Enable) ストローブとして使用したい場合にこの設定を使用して ください。 273 第 9 章 外部バスインタフェース 9.7 DMA アクセス DMA アクセスの設定について説明します。 ■ 2サイクル転送 (内部RAM→外部I/O, RAM, 外部I/O, RAM→内部RAMもタイミング は同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H) 図 9.7-1 に , 2 サイクル転送の設定を示します。 図 9.7-1 2 サイクル転送の設定 (I/O 側のウェイト設定なしの場合 ) SYSCLK A23~A00 I/O アドレス ASX CS4X~CS0X(I/O側) WR1X, WR0X D31~D16 バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 274 第 9 章 外部バスインタフェース ■ 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H) 図 9.7-2 に , 2 サイクル転送 ( 外部→ I/O) の設定を示します。 図 9.7-2 2 サイクル転送 ( 外部→ I/O) の設定 ( メモリ , I/O のウェイト設定なしの場合 ) SYSCLK メモリアドレス A23~A00 アイドル I/Oアドレス ASX CS4X~CS0X RDX CS4X~CS0X WR1X, WR0X D31~D16 バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 275 第 9 章 外部バスインタフェース ■ 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) 図 9.7-3 に , 2 サイクル転送 (I/O →外部 ) の設定を示します。 図 9.7-3 2 サイクル転送 (I/O →外部 ) の設定 ( メモリ , I/O のウェイト設定なしの場合 ) SYSCLK I/Oアドレス A23~A00 アイドル メモリアドレス ASX CS4X~CS0X WR1X, WR0X CS4X~CS0X RDX D31~D16 バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 276 第 9 章 外部バスインタフェース 9.8 レジスタ設定手順 外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。 ■ 外部バスインタフェースの設定手順 1) レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用 しない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前 後のアクセスは保証されません。 2) レジスタの変更は以下の手順で行ってください。 ① 該当領域に対応する CSER のビットを "0" に設定してください。 ② ASR と ACR をワードアクセスで同時に設定してください。ASR, ACR をハー フワードでアクセスする場合には , ASR 設定後に ACR を設定してください。 ③ AWR を設定してください。 ④ 該当領域に対する CSER のビットを設定してください。 3) CS0X 領域はリセット解除後から有効になっており , プログラム領域として使用 している場合は CSER を "1" のままで書き換える必要がありますが , この場合は 内部クロックが低い初期状態で上記② , ③の設定を行ってください。その後 , ク ロックを高速クロックに切り換えてください。 277 第 9 章 外部バスインタフェース 278 第 10 章 I/O ポート I/O ポートの概要 , レジスタの構成 , および機能に ついて説明します。 10.1 I/O ポートの概要 10.2 ポート入力許可 10.3 I/O ポートのレジスタ 10.4 ポートファンクションレジスタの設定 10.5 端子入力レベルの選択 10.6 プルアップ・プルダウン制御レジスタ 279 第 10 章 I/O ポート 10.1 I/O ポートの概要 I/O ポートの概要について説明します。 ■ ポート基本ブロックダイヤグラム MB91461/F467Rは, 各端子に対応する外部バスインタフェースやペリフェラルが入出力 として端子を使用しない設定になっているときに I/O ポートとして使用することができ ます。 図 10.1-1 に , ポート基本ブロックダイヤグラムを示します。 280 第 10 章 I/O ポート 図 10.1-1 ポート基本ブロックダイヤグラム ポートバス PILR EPILR 外部バスインタフェース入力 周辺入力 CMOS PDRD リード & Automotive & PDRD 0 CLKP CMOS ヒステリシス & 1 STOP または GPORTEN PDR リード PPER PPCR 出力ドライバ 1. 周辺出力 2. 周辺出力 P-ch プルアップ / ダウン 制御 端子 アウトプット MUX PDR N-ch DDR PFR ポート 方向 制御 EPFR PODR PDR: PDRD: DDR: PFR: EPFR: PILR: EPILR: PPER: PPCR: ポートデータレジスタ ポートデータダイレクトリードレジスタ データ方向レジスタ ポート機能レジスタ エクストラ PFR ポート機能レジスタ ポート入力レベル選択レジスタ ポート入力レベル選択レジスタ ポートプルアップ / ダウン許可レジスタ ポートプルアップ / ダウン制御レジスタ アドレス 000H + #port ( ポート00: 000H, ポート01: 001H など ) アドレス= PDR + D00H アドレス= PDR + D40H アドレス= PDR + D80H アドレス= PDR + DC0H アドレス= PDR + E40H アドレス= PDR + E80H アドレス= PDR + EC0H アドレス= PDR + F00H 281 第 10 章 I/O ポート ■ ポートの一般的な仕様 すべてのポートに対して , 次の規則が有効です。 • ソフトウェアによるポート設定の前に , 貫通電流が発生するのを防ぐため , ポート 入力はすべて , 初期値が設定されています。各ポート端子をその機能に応じて設定し た後 , グローバルポート許可 (PORTEN.GPORTEN) でポート入力を許可する必要があ ります。 「10.2 ポート入力許可 」を参照してください。(MB91461 にはこのレジスタは ありません ) • ポートごとに , CLKP で端子データをサンプリングするポートデータダイレクト リードレジスタ (PDRD) があります。このレジスタはリードオンリです。 • ポートごとに , ポートの入力 / 出力方向を切り換えるデータ方向レジスタ (DDR) が あります。リセット後 , すべてのポートは入力になります (DDR = 00H)。 - ポート入力モード (PFR = 0 および DDR = 0) PDRD リード: サンプリングされた端子データが読み出されます。 PDR リード: サンプリングされた端子データが読み出されます。 PDR ライト:PDR 設定値が書き込まれますが , 端子値に何も影響しません。 - ポート出力モード (PFR = 0 および DDR = 1) PDRD リード: サンプリングされた端子データが読み出されます。 PDR リード:PDR レジスタ値が読み出されます。 PDR ライト:PDR 設定値が対応する外部端子に書き込まれます。 • リードモディファイライト命令 ( ビット演算 ) では , データ方向レジスタ (DDR) の 設定にかかわらず , PDR レジスタは常にリードになります。 • 特定のポートに , ポート機能レジスタ (PFR) およびエクストラポート機能レジスタ (EPFR) があります。EPFR = 1 により決定される機能を有効にするには , PFR = 1 も "1" に設定する必要があります。 MB91V460 上では , EPFR = 1 および PFR = 0 設 定の動作は , ポート入力 / 出力モード ( 将来の利用に予約 ) と同じです。 • ポートごとに, 入力レベル (CMOS ヒステリシス / Automotive [/ TTL]) をビット単位 で入力するポート入力レベルレジスタ (PILR) があります。デフォルト値は , ポート の機能によって異なります。 入力レベルは , どのデバイスモードでも設定できます。 表 10.5-2 を参照してください。 • 特定のポートには , 自身のプルアップ / プルダウン許可レジスタ (PPER) およびプル アップ / プルダウン制御レジスタ (PPCR) によりビット単位で許可されるプルアッ プ / プルダウン (50 kW) があります。「10.6 プルアップ・プルダウン制御レジス タ 」を参照してください。 • ポートごとに , 1 つまたは 2 つのポート機能レジスタ , PFR およびエクストラ PFR (EPFR) ( 必要に応じて ) があります。合わせて , 端子当たり最大 3 リソース I/O の役 割を果たします。「10.4 ポートファンクションレジスタの設定 」を参照してくださ い。 • MD2 ∼ MD0 端子およびモードレジスタ MODR で制御されるポート設定は , ポート レジスタ内の設定を上書きします。例えば , 外部バスモードはポートレジスタの設 定を上書きします。外部バス信号出力は , 端子の PFR をポートモード (PFR = 0) に 設定すると , 無効にできます。 • リソース入力ラインは , 通常 , 端子に接続され , リソース内の適切な機能を設定する 282 第 10 章 I/O ポート と有効になります。「10.4 ポートファンクションレジスタの設定 」に示す例外があ ります。 • 外部割込み入力ラインは , 常に端子に接続され , 外部割込みユニットで有効になり ます。 • (STCR:STOP が設定され , STCR:HIZ が設定されない ) STOP モードでは , すべての 端子が現在の状態 (STOP モードになる前の設定により入力または出力 ) を維持し , 入 力段階およびラインは横断電流を避けるために内部で固定されます。対応する端子 が PFR = 1 で設定され , 対応する外部割込みが ENIR0, ENIR1 レジスタで許可されて いる場合 , 外部割込み入力端子は , 固定されません。 プルアップ およびプルダウンは許 可されます。 • (STCR:STOP および STCR:HIZ が設定される ) STOP-HIZ モードでは , すべての端子 が入力 ( ハイインピーダンス状態 ) に切り換えられ , すべての入力段階およびライン は変動を避けるために内部で固定されます。対応する端子が PFR = 1 で設定され , 対応する外部割込みが ENIR0, ENIR1 レジスタで許可されている場合 , 外部割込み 入力端子は , 固定されません。プルアップ およびプルダウンは禁止されます。 • リソース出力ラインは, ポート内の対応する PFR / EPFR ビットを設定することによ り有効になります。詳細は , 「10.4 ポートファンクションレジスタの設定 」を参照 してください。さらに , UART 制御内の SOE ビットを設定して , UART 出力 (SOT) も有効にする必要があります。 • リソース双方向信号 (UART の SCK など ) は , ポート内の対応する PFR / EPFR ビット を設定することにより有効になります。信号方向は , 出力許可ビットなど , リソース の設定により制御されます。詳細は ,「10.4 ポートファンクションレジスタの設定 」 を参照してください。 <注意事項> 汎用ポート入力とペリフェラル入力を切り換えるレジスタはありません。外部端子から入 力された値は , 常に汎用ポートとペリフェラル回路へ伝播しています。 また , DDR で出力設定時も外部へ出力している値が常に汎用ポートとペリフェラル回路 へ伝播しています。 ペリフェラル入力としてご使用の場合は , DDR で入力設定し , 各ペリフェラルの入力信号 を有効にして使用してください。 283 第 10 章 I/O ポート 10.2 ポート入力許可 ポート入力許可機能について説明します。 ■ PORTEN: ポート入力許可 PORTEN アドレス : bit7 6 5 4 3 2 1 0 initial 0498H − − − − − − CPORTEN GPORTEN ---- --00B - - - - - - R/W R/W I/O 入力段階およびそれに続く論理での横断電流の変動を避けるために, ポート入力はす べて , 初期値で無効になっています。機能仕様 ( 入力レベル , 出力ドライブ , プルアップ またはプルダウン抵抗など ) に従ってすべてのポートを設定した後で , ポート入力許可 ビットを設定して入力を全体的に許可する必要があります。 このレジスタは MB91461 にはありません。MB91461 ではリセット後 , 各ポートは入力 可能状態となっています。MB91V460 でもこのレジスタはありません。 このレジスタは MB91F467R のみが持っています。MB91F467R でポート入力機能を使 用する場合は , GPORTEN および CPORTEN に "1" を設定してください。 284 GPORTEN "0" - すべてのポートの入力が無効です。 "1" - すべてのポートの入力が有効です。 CPORTEN "0" - ブートローダ通信ポートの入力が無効です。 "1" - ブートローダ通信ポートの入力が有効です。 第 10 章 I/O ポート 10.3 I/O ポートのレジスタ ポートデータレジスタ (PDR) とポート方向レジスタ (DDR), ポートデータダイレク トリードレジスタ (PDRD) を示します。 ■ ポートデータレジスタ (PDR) ポートごとの出力データを格納するレジスタです。 図 10.3-1 ポートデータレジスタ (PDR) PDR00 PDR01 PDR05 PDR06 PDR07 PDR08 PDR09 PDR10 PDR11 PDR13 PDR14 PDR15 PDR16 PDR17 PDR18 PDR19 PDR20 PDR21 PDR22 PDR23 PDR24 PDR28 PDR29 アドレス 000000H 000001H 000005H 000006H 000007H 000008H 000009H 00000AH 00000BH 00000DH 00000EH 00000FH 000010H 000011H 000012H 000013H 000014H 000015H 000016H 000017H 000018H 00001CH 00001DH bit7 6 5 4 3 2 1 0 初期値 PDR00_7 PDR00_6 PDR00_5 PDR00_4 PDR00_3 PDR00_2 PDR00_1 PDR00_0 XXXXXXXXB PDR01_7 PDR01_6 PDR01_5 PDR01_4 PDR01_3 PDR01_2 PDR01_1 PDR01_0 XXXXXXXXB PDR05_7 PDR05_6 PDR05_5 PDR05_4 PDR05_3 PDR05_2 PDR05_1 PDR05_0 XXXXXXXXB PDR06_7 PDR06_6 PDR06_5 PDR06_4 PDR06_3 PDR06_2 PDR06_1 PDR06_0 XXXXXXXXB PDR07_7 PDR07_6 PDR07_5 PDR07_4 PDR07_3 PDR07_2 PDR07_1 PDR07_0 XXXXXXXXB PDR08_7 PDR08_6 PDR08_5 PDR08_4 − − − − − PDR08_1 PDR08_0 XXXX--XXB PDR09_4 PDR09_3 PDR09_2 PDR09_1 PDR09_0 ---XXXXXB PDR10_6 PDR10_5 PDR10_4 PDR10_3 PDR10_2 PDR10_1 PDR10_0 -XXXXXXXB − − − − − − − − PDR11_1 PDR11_0 PDR13_2 PDR13_1 PDR13_0 − − − − − − − − PDR14_3 PDR14_2 PDR14_1 PDR14_0 − − − - PDR15_3 PDR15_2 PDR15_1 PDR15_0 PDR16_7 − − − − − − − PDR17_7 PDR17_6 PDR17_5 PDR17_4 PDR17_3 PDR17_2 PDR17_1 PDR17_0 − PDR18_2 PDR18_1 PDR18_0 − PDR19_6 PDR19_5 PDR19_4 − PDR19_2 PDR19_1 PDR19_0 − PDR20_6 PDR20_5 PDR20_4 − PDR20_2 PDR20_1 PDR20_0 − PDR21_6 PDR21_5 PDR21_4 − PDR21_2 PDR21_1 PDR21_0 − − − − PDR22_7 PDR22_6 PDR22_5 PDR22_4 PDR22_3 PDR22_2 − PDR23_6 − − PDR22_0 PDR23_4 PDR23_3 PDR23_2 PDR23_1 PDR23_0 PDR24_7 PDR24_6 PDR24_5 PDR24_4 PDR24_3 PDR24_2 PDR24_1 PDR24_0 PDR28_7 PDR28_6 PDR28_5 PDR28_4 PDR28_3 PDR28_2 PDR28_1 PDR28_0 PDR29_7 PDR29_6 PDR29_5 PDR29_4 PDR29_3 PDR29_2 PDR29_1 PDR29_0 R/W R/W R/W R/W R/W R/W R/W ------XXB -----XXXB ----XXXXB ----XXXXB X-------B XXXXXXXXB -----XXXB -XXX-XXXB -XXX-XXXB -XXX-XXXB XXXXXX-XB -X-XXXXXB XXXXXXXXB XXXXXXXXB XXXXXXXXB R/W PDR00 ∼ PDR13 および PDR28_7 ∼ PDR28_5 は MB91461 にはありません。 285 第 10 章 I/O ポート ■ データ方向レジスタ (DDR) ポートごとに入出力の方向を設定するレジスタです。リセット後 , すべてのポートは入 力となります。 図 10.3-2 データ方向レジスタ (DDR) DDR00 DDR01 DDR05 DDR06 DDR07 DDR08 DDR09 DDR10 DDR11 DDR13 DDR14 DDR15 DDR16 DDR17 DDR18 DDR19 DDR20 DDR21 DDR22 DDR23 DDR24 DDR28 DDR29 アドレス 000D40H 000D41H 000D45H 000D46H 000D47H 000D48H 000D49H 000D4AH 000D4BH 000D4DH 000D4EH 000D4FH 000D50H 000D51H 000D52H 000D53H 000D54H 000D55H 000D56H 000D57H 000D58H 000D5CH 000D5DH bit7 6 5 4 3 2 1 初期値 DDR01_7 DDR01_6 DDR01_5 DDR01_4 DDR01_3 DDR01_2 DDR01_1 DDR01_0 00000000B DDR05_7 DDR05_6 DDR05_5 DDR05_4 DDR05_3 DDR05_2 DDR05_1 DDR05_0 00000000B DDR06_7 DDR06_6 DDR06_5 DDR06_4 DDR06_3 DDR06_2 DDR06_1 DDR06_0 00000000B DDR07_7 DDR07_6 DDR07_5 DDR07_4 DDR07_3 DDR07_2 DDR07_1 DDR07_0 00000000B DDR08_7 DDR08_6 DDR08_5 DDR08_4 − − − − − − − DDR08_1 DDR08_0 0000--00B DDR09_4 DDR09_3 DDR09_2 DDR09_1 DDR09_0 DDR10_6 DDR10_5 DDR10_4 DDR10_3 DDR10_2 DDR10_1 DDR10_0 − − − − − − DDR11_1 DDR11_0 DDR13_2 DDR13_1 DDR13_0 − − − − − − − − DDR14_3 DDR14_2 DDR14_1 DDR14_0 − − − − DDR15_3 DDR15_2 DDR15_1 DDR15_0 DDR16_7 − − − − − − − DDR17_7 DDR17_6 DDR17_5 DDR17_4 DDR17_3 DDR17_2 DDR17_1 DDR17_0 − DDR18_2 DDR18_1 DDR18_0 − DDR19_6 DDR19_5 DDR19_4 − DDR19_2 DDR19_1 DDR19_0 − DDR20_6 DDR20_5 DDR20_4 − DDR20_2 DDR20_1 DDR20_0 − DDR21_6 DDR21_5 DDR21_4 − DDR21_2 DDR21_1 DDR21_0 − − − − DDR22_7 DDR22_6 DDR22_5 DDR22_4 DDR22_3 DDR22_2 − DDR23_6 − − DDR22_0 DDR23_4 DDR23_3 DDR23_2 DDR23_1 DDR23_0 DDR24_7 DDR24_6 DDR24_5 DDR24_4 DDR24_3 DDR24_2 DDR24_1 DDR24_0 DDR28_7 DDR28_6 DDR28_5 DDR28_4 DDR28_3 DDR28_2 DDR28_1 DDR28_0 DDR29_7 DDR29_6 DDR29_5 DDR29_4 DDR29_3 DDR29_2 DDR29_1 DDR29_0 R/W R/W R/W R/W R/W R/W R/W DDR00 ∼ DDR13 および DDR28_7 ∼ DDR28_5 は MB91461 にはありません。 286 0 DDR00_7 DDR00_6 DDR00_5 DDR00_4 DDR00_3 DDR00_2 DDR00_1 DDR00_0 00000000B R/W ---00000B -0000000B ------00B -----000B ----0000B ----0000B 0-------B 00000000B -----000B -000-000B -000-000B -000-000B 000000-0B -0-00000B 00000000B 00000000B 00000000B 第 10 章 I/O ポート ■ ポートデータダイレクトリードレジスタ (PDRD) これらのレジスタは読出し専用レジスタで , ポートが出力状態であっても入力値を直 接読み出すために使用されます。 図 10.3-3 ポートデータダイレクトリードレジスタ (PDRD) PDRD00 PDRD01 PDRD05 PDRD06 PDRD07 PDRD08 PDRD09 PDRD10 PDRD11 PDRD13 PDRD14 PDRD15 PDRD16 PDRD17 PDRD18 PDRD19 PDRD20 PDRD21 PDRD22 PDRD23 PDRD24 PDRD28 PDRD29 アドレス 000D00H 000D01H 000D05H 000D06H 000D07H 000D08H 000D09H 000D0AH 000D0BH 000D0DH 000D0EH 000D0FH 000D10H 000D11H 000D12H 000D13H 000D14H 000D15H 000D16H 000D17H 000D18H 000D1CH 000D1DH bit7 6 5 4 3 2 1 0 初期値 XXXXXXXXB PDRD01_4 PDRD01_3 PDRD01_2 PDRD01_1 PDRD01_0 XXXXXXXXB PDRD05_4 PDRD05_3 PDRD05_2 PDRD05_1 PDRD05_0 XXXXXXXXB PDRD06_4 PDRD06_3 PDRD06_2 PDRD06_1 PDRD06_0 XXXXXXXXB PDRD07_4 PDRD07_3 PDRD07_2 PDRD07_1 PDRD07_0 XXXXXXXXB PDRD08_1 PDRD08_0 XXXX--XXB PDRD08_4 − − PDRD09_4 PDRD09_3 PDRD09_2 PDRD09_1 PDRD09_0 ---XXXXXB PDRD10_4 PDRD10_3 PDRD10_2 PDRD10_1 PDRD10_0 -XXXXXXXB ------XXB PDRD11_1 PDRD11_0 − − − PDRD13_2 PDRD13_1 PDRD13_0 -----XXXB − − PDRD14_3 PDRD14_2 PDRD14_1 PDRD14_0 ----XXXXB − PDRD15_3 PDRD15_2 PDRD15_1 PDRD15_0 ----XXXXB − X-------B − − − − − PDRD17_4 PDRD17_3 PDRD17_2 PDRD17_1 PDRD17_0 XXXXXXXXB PDRD18_2 PDRD18_1 PDRD18_0 -----XXXB − − PDRD19_4 PDRD19_2 PDRD19_1 PDRD19_0 -XXX-XXXB − PDRD20_4 PDRD20_2 PDRD20_1 PDRD20_0 -XXX-XXXB − PDRD21_4 PDRD21_2 PDRD21_1 PDRD21_0 -XXX-XXXB − PDRD22_4 PDRD22_3 PDRD22_2 PDRD22_0 XXXXXX-XB − PDRD23_4 PDRD23_3 PDRD23_2 PDRD23_1 PDRD23_0 -X-XXXXXB PDRD24_4 PDRD24_3 PDRD24_2 PDRD24_1 PDRD24_0 XXXXXXXXB PDRD28_4 PDRD28_3 PDRD28_2 PDRD28_1 PDRD28_0 XXXXXXXXB PDRD29_4 PDRD29_3 PDRD29_2 PDRD29_1 PDRD29_0 XXXXXXXXB R R R R R PDRD00_7 PDRD00_6 PDRD00_5 PDRD00_4 PDRD00_3 PDRD00_2 PDRD00_1 PDRD00_0 PDRD01_7 PDRD01_6 PDRD01_5 PDRD05_7 PDRD05_6 PDRD05_5 PDRD06_7 PDRD06_6 PDRD06_5 PDRD07_7 PDRD07_6 PDRD07_5 PDRD08_7 PDRD08_6 PDRD08_5 − − − − PDRD10_6 PDRD10_5 − − − − − − − − − − − − PDRD16_7 − − PDRD17_7 PDRD17_6 PDRD17_5 − − − − PDRD19_6 PDRD19_5 − PDRD20_6 PDRD20_5 − PDRD21_6 PDRD21_5 PDRD22_7 PDRD22_6 PDRD22_5 − PDRD23_6 − PDRD24_7 PDRD24_6 PDRD24_5 PDRD28_7 PDRD28_6 PDRD28_5 PDRD29_7 PDRD29_6 PDRD29_5 R R R PDRD00 ∼ PDRD13 および PDRD28_7 ∼ PDRD28_5 は MB91461 にはありません。 287 第 10 章 I/O ポート 10.4 ポートファンクションレジスタの設定 ポートファンクションレジスタの機能について説明します。 ■ ポート 00 ポート 00 は PFR00 で制御されます。 PFR00 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-1 ポート 00 の制御レジスタ構成 bit7 6 5 4 3 2 1 0 アドレス 初期値 PFR00 000D80H PFR00_7 PFR00_6 PFR00_5 PFR00_4 PFR00_3 PFR00_2 PFR00_1 PFR00_0 11111111B R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-1 ポート 00 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P00_7) として使用されます。 1B 外部端子が外部バス端子 (D31) として使用されます。 0B 外部端子が汎用ポート (P00_6) として使用されます。 1B 外部端子が外部バス端子 (D30) として使用されます。 0B 外部端子が汎用ポート (P00_5) として使用されます。 1B 外部端子が外部バス端子 (D29) として使用されます。 0B 外部端子が汎用ポート (P00_4) として使用されます。 1B 外部端子が外部バス端子 (D28) として使用されます。 0B 外部端子が汎用ポート (P00_3) として使用されます。 1B 外部端子が外部バス端子 (D27) として使用されます。 0B 外部端子が汎用ポート (P00_2) として使用されます。 1B 外部端子が外部バス端子 (D26) として使用されます。 0B 外部端子が汎用ポート (P00_1) として使用されます。 1B 外部端子が外部バス端子 (D25) として使用されます。 0B 外部端子が汎用ポート (P00_0) として使用されます。 1B 外部端子が外部バス端子 (D24) として使用されます。 PFR00_7 PFR00_6 PFR00_5 PFR00_4 PFR00_3 PFR00_2 PFR00_1 PFR00_0 288 第 10 章 I/O ポート ■ ポート 01 ポート 01 は PFR01 で制御されます。 PFR01 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-2 ポート 01 の制御レジスタ構成 bit7 6 5 4 3 2 1 0 アドレス 初期値 000D81 11111111B PFR01_7 PFR01_6 PFR01_5 PFR01_4 PFR01_3 PFR01_2 PFR01_1 PFR01_0 PFR01 H R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-2 ポート 01 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P01_7) として使用されます。 1B 外部端子が外部バス端子 (D23) として使用されます。 0B 外部端子が汎用ポート (P01_6) として使用されます。 1B 外部端子が外部バス端子 (D22) として使用されます。 0B 外部端子が汎用ポート (P01_5) として使用されます。 1B 外部端子が外部バス端子 (D21) として使用されます。 0B 外部端子が汎用ポート (P01_4) として使用されます。 1B 外部端子が外部バス端子 (D20) として使用されます。 0B 外部端子が汎用ポート (P01_3) として使用されます。 1B 外部端子が外部バス端子 (D19) として使用されます。 0B 外部端子が汎用ポート (P01_2) として使用されます。 1B 外部端子が外部バス端子 (D18) として使用されます。 0B 外部端子が汎用ポート (P01_1) として使用されます。 1B 外部端子が外部バス端子 (D17) として使用されます。 0B 外部端子が汎用ポート (P01_0) として使用されます。 1B 外部端子が外部バス端子 (D16) として使用されます。 PFR01_7 PFR01_6 PFR01_5 PFR01_4 PFR01_3 PFR01_2 PFR01_1 PFR01_0 289 第 10 章 I/O ポート ■ ポート 05 ポート 05 は PFR05 で制御されます。 PFR05 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-3 ポート 05 の制御レジスタ構成 bit7 6 5 4 3 2 1 0 アドレス 初期値 000D85 11111111B PFR05_7 PFR05_6 PFR05_5 PFR05_4 PFR05_3 PFR05_2 PFR05_1 PFR05_0 PFR05 H R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-3 ポート 05 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P05_7) として使用されます。 1B 外部端子が外部バス端子 (A23) として使用されます。 0B 外部端子が汎用ポート (P05_6) として使用されます。 1B 外部端子が外部バス端子 (A22) として使用されます。 0B 外部端子が汎用ポート (P05_5) として使用されます。 1B 外部端子が外部バス端子 (A21) として使用されます。 0B 外部端子が汎用ポート (P05_4) として使用されます。 1B 外部端子が外部バス端子 (A20) として使用されます。 0B 外部端子が汎用ポート (P05_3) として使用されます。 1B 外部端子が外部バス端子 (A19) として使用されます。 0B 外部端子が汎用ポート (P05_2) として使用されます。 1B 外部端子が外部バス端子 (A18) として使用されます。 0B 外部端子が汎用ポート (P05_1) として使用されます。 1B 外部端子が外部バス端子 (A17) として使用されます。 0B 外部端子が汎用ポート (P05_0) として使用されます。 1B 外部端子が外部バス端子 (A16) として使用されます。 PFR05_7 PFR05_6 PFR05_5 PFR05_4 PFR05_3 PFR05_2 PFR05_1 PFR05_0 290 第 10 章 I/O ポート ■ ポート 06 ポート 06 は PFR06 で制御されます。 PFR06 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-4 ポート 06 の制御レジスタ構成 bit7 6 5 4 3 2 1 0 アドレス 初期値 000D86 11111111B PFR06_7 PFR06_6 PFR06_5 PFR06_4 PFR06_3 PFR06_2 PFR06_1 PFR06_0 PFR06 H R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-4 ポート 06 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P06_7) として使用されます。 1B 外部端子が外部バス端子 (A15) として使用されます。 0B 外部端子が汎用ポート (P06_6) として使用されます。 1B 外部端子が外部バス端子 (A14) として使用されます。 0B 外部端子が汎用ポート (P06_5) として使用されます。 1B 外部端子が外部バス端子 (A13) として使用されます。 0B 外部端子が汎用ポート (P06_4) として使用されます。 1B 外部端子が外部バス端子 (A12) として使用されます。 0B 外部端子が汎用ポート (P06_3) として使用されます。 1B 外部端子が外部バス端子 (A11) として使用されます。 0B 外部端子が汎用ポート (P06_2) として使用されます。 1B 外部端子が外部バス端子 (A10) として使用されます。 0B 外部端子が汎用ポート (P06_1) として使用されます。 1B 外部端子が外部バス端子 (A9) として使用されます。 0B 外部端子が汎用ポート (P06_0) として使用されます。 1B 外部端子が外部バス端子 (A8) として使用されます。 PFR06_7 PFR06_6 PFR06_5 PFR06_4 PFR06_3 PFR06_2 PFR06_1 PFR06_0 291 第 10 章 I/O ポート ■ ポート 07 ポート 07 は PFR07 で制御されます。 PFR07 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-5 ポート 07 の制御レジスタ構成 bit7 6 5 4 3 2 1 0 アドレス 初期値 000D87 11111111B PFR07_7 PFR07_6 PFR07_5 PFR07_4 PFR07_3 PFR07_2 PFR07_1 PFR07_0 PFR07 H R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-5 ポート 07 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P07_7) として使用されます。 1B 外部端子が外部バス端子 (A7) として使用されます。 0B 外部端子が汎用ポート (P07_6) として使用されます。 1B 外部端子が外部バス端子 (A6) として使用されます。 0B 外部端子が汎用ポート (P07_5) として使用されます。 1B 外部端子が外部バス端子 (A5) として使用されます。 0B 外部端子が汎用ポート (P07_4) として使用されます。 1B 外部端子が外部バス端子 (A4) として使用されます。 0B 外部端子が汎用ポート (P07_3) として使用されます。 1B 外部端子が外部バス端子 (A3) として使用されます。 0B 外部端子が汎用ポート (P07_2) として使用されます。 1B 外部端子が外部バス端子 (A2) として使用されます。 0B 外部端子が汎用ポート (P07_1) として使用されます。 1B 外部端子が外部バス端子 (A1) として使用されます。 0B 外部端子が汎用ポート (P07_0) として使用されます。 1B 外部端子が外部バス端子 (A0) として使用されます。 PFR07_7 PFR07_6 PFR07_5 PFR07_4 PFR07_3 PFR07_2 PFR07_1 PFR07_0 292 第 10 章 I/O ポート ■ ポート 08 ポート 08 は PFR08 で制御されます。 PFR08 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-6 ポート 08 の制御レジスタ構成 bit7 6 5 4 3 2 1 0 アドレス 初期値 000D88 11111111B PFR08_7 PFR08_6 PFR08_5 PFR08_4 PFR08_3 PFR08_2 PFR08_1 PFR08_0 PFR08 H R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-6 ポート 08 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P08_7) として使用されます。 1B 外部端子が外部バス端子 (RDY) として使用されます。 0B 外部端子が汎用ポート (P08_6) として使用されます。 1B 外部端子が外部バス端子 (BRQ) として使用されます。 0B 外部端子が汎用ポート (P08_5) として使用されます。 1B 外部端子が外部バス端子 (BGRNTX) として使用されます。 0B 外部端子が汎用ポート (P08_4) として使用されます。 1B 外部端子が外部バス端子 (RDX) として使用されます。 0B 外部端子が汎用ポート (P08_1) として使用されます。 1B 外部端子が外部バス端子 (WR1X) として使用されます。 0B 外部端子が汎用ポート (P08_0) として使用されます。 1B 外部端子が外部バス端子 (WR0X) として使用されます。 PFR08_7 PFR08_6 PFR08_5 PFR08_4 PFR08_1 PFR08_0 293 第 10 章 I/O ポート ■ ポート 09 ポート 09 は PFR09 で制御されます。 PFR09 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-7 ポート 09 の制御レジスタ構成 アドレス PFR09 000D89H bit7 6 5 − − − - - - 4 3 2 1 0 R/W R/W R/W R/W R/W 表 10.4-7 ポート 09 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P09_4) として使用されます。 1B 外部端子が外部バス端子 (CS4X) として使用されます。 0B 外部端子が汎用ポート (P09_3) として使用されます。 1B 外部端子が外部バス端子 (CS3X) として使用されます。 0B 外部端子が汎用ポート (P09_2) として使用されます。 1B 外部端子が外部バス端子 (CS2X) として使用されます。 0B 外部端子が汎用ポート (P09_1) として使用されます。 1B 外部端子が外部バス端子 (CS1X) として使用されます。 0B 外部端子が汎用ポート (P09_0) として使用されます。 1B 外部端子が外部バス端子 (CS0X) として使用されます。 PFR09_4 PFR09_3 PFR09_2 PFR09_1 PFR09_0 294 初期値 PFR09_4 PFR09_3 PFR09_2 PFR09_1 PFR09_0 ---111111B 第 10 章 I/O ポート ■ ポート 10 ポート 10 は PFR10 で制御されます。 PFR10 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-8 ポート 10 の制御レジスタ構成 bit7 アドレス PFR10 000D8AH EPFR10 000DCAH − 6 5 4 3 2 1 0 初期値 PFR10_6 PFR10_5 PFR10_4 PFR10_3 PFR10_2 PFR10_1 PFR10_0 -1111111B − − - R/W EPFR10_5 EPFR10_4 R/W R/W − − − EPFR10_0 R/W R/W R/W R/W --00---0B 表 10.4-8 ポート 10 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P10_6) として使用されます。 1B 外部端子が外部バス端子 (MCLKE) として使用されます。 PFR10_6 00B PFR10_5/ EPFR10_5(*) 01B 外部端子が汎用ポート (P10_5) として使用されます。 10B 外部端子が外部バス端子 (MCLKI) として使用されます。 11B 外部端子が外部バス端子 (MCLKI の反転入力 ) として使用されます。 00B PFR10_4/ EPFR10_4(*) 01B 外部端子が汎用ポート (P10_4) として使用されます。 10B 外部端子が外部バス端子 (MCLKO) として使用されます。 11B 外部端子が外部バス端子 (MCLKO の反転入力 ) として使用されます。 0B 外部端子が汎用ポート (P10_3) として使用されます。 1B 外部端子が外部バス端子 (WEX) として使用されます。 0B 外部端子が汎用ポート (P10_2) として使用されます。 1B 外部端子が外部バス端子 (BAAX) として使用されます。 0B 外部端子が汎用ポート (P10_1) として使用されます。 1B 外部端子が外部バス端子 (ASX) として使用されます。 PFR10_3 PFR10_2 PFR10_1 00B PFR10_0/ EPFR10_0 01B 外部端子が汎用ポート (P10_0) として使用されます。 10B 外部端子が外部バス端子 (STSCLK) として使用されます。 11B 外部端子が外部バス端子 (STSCLK の反転入力 ) として使用されます。 (*) MB91F467R で SDRAM を使用しない場合は PFR10_5 を "0" にしてください。(推奨) 295 第 10 章 I/O ポート ■ ポート 11 ポート 11 は PFR11 で制御されます。 PFR11 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-9 ポート 11 の制御レジスタ構成 アドレス PFR11 000D8BH bit7 6 5 4 3 2 − − − − − − - - - - - - 1 0 PFR11_1 PFR11_0 R/W R/W 表 10.4-9 ポート 11 の制御レジスタの機能説明 ビット名 値 機能 0B 外部端子が汎用ポート (P11_1) として使用されます。 1B 外部端子が DMA 制御端子 (IOWRX) として使用されます。 0B 外部端子が汎用ポート (P11_0) として使用されます。 1B 外部端子が DMA 制御端子 (IORDX) として使用されます。 PFR11_1 PFR11_0 296 初期値 ------00B 第 10 章 I/O ポート ■ ポート 13 ポート 13 は PFR13 で制御されます。 PFR13 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部バス端子 ( データ端子 ) となります。 図 10.4-10 ポート 13 の制御レジスタ構成 アドレス PFR13 000D8DH EPFR13 000DCDH bit7 6 5 4 3 2 1 0 − − − − − PFR13_2 PFR13_1 PFR13_0 − − − − − EPFR13_2 − − - - - - - R/W R/W R/W 初期値 -----000B -----0--B 表 10.4-10 ポート 13 の制御レジスタの機能説明 ビット名 値 機能 00B PFR13_2/ EPFR13_2 01B 外部端子が汎用ポート (P13_2) として使用されます。 10B 外部端子が DMA 制御端子 (DEOTX0 入力 ) として使用されます。 11B 外部端子が DMA 制御端子 (DEOP0 出力 ) として使用されます。 0B 外部端子が汎用ポート (P13_1) として使用されます。 1B 外部端子が DMA 制御端子 (DACK0X0 出力 ) として使用されます。 0B 外部端子が汎用ポート (P13_0) として使用されます。 1B 外部端子が DMA 制御端子 (DREQ0 入力 ) として使用されます。 PFR13_1 PFR13_0 297 第 10 章 I/O ポート ■ ポート 14 ポート 14 は PFR14 および EPFR14 で制御されます。 PFR14 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合 は外部端子はペリフェラルへの入力となります。ICU ( インプットキャプチャユニット ) への入力選択は PFR と EPFR の組合せで決まります。 図 10.4-11 ポート 14 の制御レジスタ構成 アドレス PFR14 000D8EH EPFR14 000DCEH bit7 6 5 4 − − − − PFR14_3 PFR14_2 PFR14_1 PFR14_0 ----0000B 3 − − − − EPFR14_3 EPFR14_2 EPFR14_1 EPFR14_0 − − − − R/W 2 R/W 1 R/W 0 初期値 ----0000B R/W 表 10.4-11 ポート 14 の制御レジスタの機能説明 (1 / 2) ビット名 値 00B 01B PFR14_3/EPFR14_3 10B 11B 外部端子から次の 2 つへ入力されます。 ・リロードタイマ 3 の外部トリガ入力 ・PPG3 の外部トリガ入力 内部の ICU3 の入力には LIN-UART3 の LSYN 出力が接続されます。 01B 298 外部端子が汎用ポート (P14_3) として使用されます。* ICU3 の入力には LIN-UART3 の LSYN 出力が接続されます。LIN 通信時の LSYN パルス幅を計測して LIN スレーブ動作時のボー レートを検出するために使用できます。 外部端子から次の 3 つへ入力されます。 ・ICU3 の入力 ・リロードタイマ 3 の外部トリガ入力 ・PPG3 の外部トリガ入力 00B PFR14_2/EPFR14_2 機能 外部端子が汎用ポート (P14_2) として使用されます。* ICU2 の入力には LIN-UART2 の LSYN 出力が接続されます。 10B 外部端子から次の 3 つへ入力されます。 ・ICU2 の入力 ・リロードタイマ 2 の外部トリガ入力 ・PPG2 の外部トリガ入力 11B 外部端子から次の 2 つへ入力されます。 ・リロードタイマ 2 の外部トリガ入力 ・PPG2 の外部トリガ入力 ICU2 の入力には LIN-UART2 の LSYN 出力が接続されます。 第 10 章 I/O ポート 表 10.4-11 ポート 14 の制御レジスタの機能説明 (2 / 2) ビット名 値 00B 01B PFR14_1/EPFR14_1 外部端子が汎用ポート (P14_1) として使用されます。* ICU1 の入力には LIN-UART1 の LSYN 出力が接続されます。 10B 外部端子から次の 3 つへ入力されます。 ・ICU1 の入力 ・リロードタイマ 1 の外部トリガ入力 ・PPG1 の外部トリガ入力 11B 外部端子から次の 2 つへ入力されます。 ・リロードタイマ 1 の外部トリガ入力 ・PPG1 の外部トリガ入力 ICU1 の入力には LIN-UART1 の LSYN 出力が接続されます。 00B 01B PFR14_0/EPFR14_0 機能 外部端子が汎用ポート (P14_0) として使用されます。 ICU0 の入力には LIN-UART0 の LSYN 出力が接続されます。 10B 外部端子から次の 3 つへ入力されます。 ・ICU0 の入力 ・リロードタイマ 0 の外部トリガ入力 ・PPG0 の外部トリガ入力 11B 外部端子から次の 2 つへ入力されます。 ・リロードタイマ 0 の外部トリガ入力 ・PPG0 の外部トリガ入力 ICU0 の入力には LIN-UART0 の LSYN 出力が接続されます。 * : ポートを選択している場合でもリロードタイマのトリガ入力 , PPG のトリガ入力は可能です。 299 第 10 章 I/O ポート ■ ポート 15 ポート 15 は PFR15 および EPFR15 で制御されます。 PFR が "0" のときは汎用ポートとなり , "1" のときには周辺マクロ (OCU あるいはリロー ドタイマ ) からの出力端子となります。 図 10.4-12 ポート 15 の制御レジスタ構成 アドレス PFR15 000D8FH EPFR15 000DCFH bit7 6 5 4 − − − − PFR15_3 PFR15_2 PFR15_1 PFR15_0 ----0000B 3 − − − − EPFR15_3 EPFR15_2 EPFR15_1 EPFR15_0 − − − − R/W 2 R/W 1 R/W 0 初期値 ----0000B R/W 表 10.4-12 ポート 15 の制御レジスタの機能説明 ビット名 PFR15_3/EPFR15_3 PFR15_2/EPFR15_2 PFR15_1/EPFR15_1 PFR15_0/EPFR15_0 300 値 機能 0XB P15_3 : 外部端子が汎用ポート (P15_3) として使用されます。 10B OCU3 : 外部端子が OCU3 の出力として使用されます。 11B TOT3 : 外部端子がリロードタイマ 3 の出力として使用されます。 0XB P15_2 : 外部端子が汎用ポート (P15_2) として使用されます。 10B OCU2 : 外部端子が OCU2 の出力として使用されます。 11B TOT2 : 外部端子がリロードタイマ 2 の出力として使用されます。 0XB P15_1 : 外部端子が汎用ポート (P15_1) として使用されます。 10B OCU1 : 外部端子が OCU1 出力として使用されます。 11B TOT1 : 外部端子がリロードタイマ 1 の出力として使用されます。 0XB P15_0 : 外部端子が汎用ポート (P15_0) として使用されます。 10B OCU0 : 外部端子が OCU0 の出力として使用されます。 11B TOT0 : 外部端子がリロードタイマ 0 の出力として使用されます。 第 10 章 I/O ポート ■ ポート 16 ポート 16 は PFR16 および EPFR16 で制御されます。 図 10.4-13 ポート 16 の制御レジスタ構成 アドレス PFR16 000D90H EPFR16 000DD0H bit7 6 5 4 3 2 1 0 PFR16_7 − − − − − − − EPFR16_7 − − − − − − − R/W − − − − − − − 初期値 0-------B 0-------B 表 10.4-13 ポート 16 の制御レジスタの機能説明 ビット名 値 PFR16_7/EPFR16_7 機能 0XB P16_7 : 外部端子が汎用ポート (P16_7) として使用されます。 10B 設定禁止 1XB ATGX : 外部端子が ATGX 入力として使用されます。* * : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。 ■ ポート 17 ポート 17 は PFR17 で制御されます。 図 10.4-14 ポート 17 の制御レジスタ構成 PFR17 bit7 6 5 4 3 2 1 0 アドレス 初期値 000D91H PFR17_7 PFR17_6 PFR17_5 PFR17_4 PFR17_3 PFR17_2 PFR17_1 PFR17_0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-14 ポート 17 の制御レジスタの機能説明 (1 / 2) ビット名 値 機能 0 P17_7 : 外部端子が汎用ポート (P17_7) として使用されます。 1 PPG7 : PPG 出力 (PPG7) として使用されます。 0 P17_6 : 外部端子が汎用ポート (P17_6) として使用されます。 1 PPG6 : PPG 出力 (PPG6) として使用されます。 0 P17_5 : 外部端子が汎用ポート (P17_5) として使用されます。 1 PPG5 : PPG 出力 (PPG5) として使用されます。 0 P17_4 : 外部端子が汎用ポート (P17_4) として使用されます。 1 PPG4 : PPG 出力 (PPG4) として使用されます。 0 P17_3 : 外部端子が汎用ポート (P17_3) として使用されます。 1 PPG3 : PPG 出力 (PPG3) として使用されます。 PFR17_7 PFR17_6 PFR17_5 PFR17_4 PFR17_3 301 第 10 章 I/O ポート 表 10.4-14 ポート 17 の制御レジスタの機能説明 (2 / 2) ビット名 値 機能 0 P17_2 : 外部端子が汎用ポート (P17_2) として使用されます。 1 PPG2 : PPG 出力 (PPG2) として使用されます。 0 P17_1 : 外部端子が汎用ポート (P17_1) として使用されます。 1 PPG1 : PPG 出力 (PPG1) として使用されます。 0 P17_0 : 外部端子が汎用ポート (P17_0) として使用されます。 1 PPG0 : PPG 出力 (PPG0) として使用されます。 PFR17_2 PFR17_1 PFR17_0 ■ ポート 18 ポート 18 は PFR18 で制御されます。 図 10.4-15 ポート 18 の制御レジスタ構成 アドレス PFR18 000D92H EPFR18 000DD2H bit7 6 5 4 3 − − − − − PFR18_2 PFR18_1 PFR18_0 − − − − − EPFR18_2 − − − R/W R/W R/W − − − − 2 1 0 初期値 -----000B -----0--B 表 10.4-15 ポート 18 の制御レジスタの機能説明 ビット名 PFR18_2/EPFR18_2 値 機能 0XB P18_2 : 外部端子が汎用ポート (P18_2) として使用されます。 10B SCK6 : LIN-UART6 の SCK として使用されます。 SCK として使用する場合の入出力の設定は LIN-UART のシ リアルモードレジスタの SCKE ビットで行います。* 11B 設定禁止です。 0B P18_1 : 外部端子が汎用ポート (P18_1) として使用されます。 1B SOT6 : LIN-UART6 の SOT として使用されます。 SOT 出力として使用する場合は LIN-UART のシリアルモー ドレジスタの SOE ビットに "1" を設定してください。 0B P18_0 : 外部端子が汎用ポート (P18_0) として使用されます。 1B SIN6 : LIN-UART6 の SIN として使用されます。* PFR18_1 PFR18_0 * : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。 302 第 10 章 I/O ポート ■ ポート 19 ポート 19 は PFR19 で制御されます。 図 10.4-16 ポート 19 の制御レジスタ構成 アドレス PFR19 000D93H EPFR19 000DD3H bit7 6 5 4 3 2 1 0 − PFR19_6 PFR19_5 PFR19_4 − PFR19_2 PFR19_1 PFR19_0 − EPFR19_6 − − − EPFR19_2 − − − R/W R/W R/W − R/W R/W R/W 初期値 -000-000B -0---0--B 表 10.4-16 ポート 19 の制御レジスタの機能説明 ビット名 PFR19_6/EPFR19_6 PFR19_5 PFR19_4 PFR19_2/EPFR19_2 値 0XB P19_6 : 外部端子が汎用ポート (P19_6) として使用されます。 10B SCK5 : LIN-UART5 の SCK として使用されます。 SCK として使用する場合の入出力の設定は LIN-UART のシリ アルモードレジスタの SCKE ビットで行います。* 11B 設定禁止です。 0B P19_5 : 外部端子が汎用ポート (P19_5) として使用されます。 1B SOT5 : LIN-UART5 の SOT として使用されます。 SOT 出力として使用する場合は LIN-UART のシリアルモード レジスタの SOE ビットに "1" を設定してください。 0B P19_4 : 外部端子が汎用ポート (P19_4) として使用されます。 1B SIN5 : LIN-UART5 の SIN として使用されます。* 0XB P19_2 : 外部端子が汎用ポート (P19_2) として使用されます。 10B SCK4 : LIN-UART4 の SCK として使用されます。 SCK として使用する場合の入出力の設定は LIN-UART のシリ アルモードレジスタの SCKE ビットで行います。* 11B 設定禁止です。 0B P19_1 : 外部端子が汎用ポート (P19_1) として使用されます。 1B SOT4 : LIN-UART4 の SOT として使用されます。 SOT 出力として使用する場合は LIN-UART のシリアルモード レジスタの SOE ビットに "1" を設定してください。 0B P19_0 : 外部端子が汎用ポート (P19_0) として使用されます。 1B SIN4 : LIN-UART4 の SIN として使用されます。* PFR19_1 PFR19_0 機能 * : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。 303 第 10 章 I/O ポート ■ ポート 20 ポート 20 は PFR20 および EPFR20 で制御されます。 図 10.4-17 ポート 20 の制御レジスタ構成 アドレス PFR20 000D94H EPFR20 000DD4H bit7 6 5 4 3 2 1 0 − PFR20_6 PFR20_5 PFR20_4 − PFR20_2 PFR20_1 PFR20_0 − EPFR20_6 EPFR20_5 EPFR20_4 − EPFR20_2 EPFR20_1 EPFR20_0 R/W − R/W R/W − R/W R/W 初期値 -000-000B -000-000B R/W 表 10.4-17 ポート 20 の制御レジスタの機能説明 ビット名 PFR20_6/EPFR20_6 PFR20_5/EPFR20_5 PFR20_4/EPFR20_4 PFR20_2/EPFR20_2 PFR20_1/EPFR20_1 PFR20_0/EPFR20_0 値 機能 0XB P20_6 : 外部端子が汎用ポートとして使用されます。 10B SCK3 : LIN-UART3 の SCK として使用されます。 SCK として使用する場合の入出力の設定は LIN-UART のシ リアルモードレジスタの SCKE ビットで行います。*1 11B FRCK3 : フリーランタイマ 3 の CK として使用されます。*2 0XB P20_5 : 外部端子が汎用ポートとして使用されます。 10B SOT3 : LIN-UART3 の SOT として使用されます。 SOT 出力として使用する場合は LIN-UART のシリアルモー ドレジスタの SOE ビットに "1" を設定してください。 11B 設定禁止です。 0XB P20_4 : 外部端子が汎用ポートとして使用されます。 10B SIN3 : LIN-UART3 の SIN として使用されます。 *1 11B 設定禁止です。 0XB P20_2 : 外部端子が汎用ポートとして使用されます。 10B SCK2 : LIN-UART2 の SCK として使用されます。 SCK として使用する場合の入出力の設定は LIN-UART のシ リアルモードレジスタの SCKE ビットで行います。*1 11B FRCK3 : フリーランタイマ 3 の CK として使用されます。*2 0XB P20_1 : 外部端子が汎用ポートとして使用されます。 10B SOT2 : LIN-UART2 の SOT として使用されます。 SOT 出力として使用する場合は LIN-UART のシリアルモー ドレジスタの SOE ビットに "1" を設定してください。 11B 設定禁止です。 0XB P20_0 : 外部端子が汎用ポートとして使用されます。 10B SIN2 : LIN-UART2 の SIN として使用されます。 *1 11B 設定禁止です。 *1 : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。 *2 : フリーランタイマの入力クロック (FRCKx) は PFR と EPFR の設定とは関係なく常に入力されます。 304 第 10 章 I/O ポート ■ ポート 21 ポート 21 は PFR21 および EPFR21 で制御されます。 図 10.4-18 ポート 21 の制御レジスタ構成 アドレス PFR21 000D95H EPFR21 000DD5H bit7 6 5 4 3 2 1 0 − PFR21_6 PFR21_5 PFR21_4 − PFR21_2 PFR21_1 PFR21_0 − EPFR21_6 EPFR21_5 EPFR21_4 − EPFR21_2 EPFR21_1 EPFR21_0 R/W − R/W R/W − R/W R/W 初期値 -000-000B -000-000B R/W 表 10.4-18 ポート 21 の制御レジスタの機能説明 ビット名 PFR21_6/EPFR21_6 PFR21_5/EPFR21_5 PFR21_4/EPFR21_4 PFR21_2/EPFR21_2 PFR21_1/EPFR21_1 PFR21_0/EPFR21_0 値 機能 0XB P21_6 : 外部端子が汎用ポートとして使用されます。 10B SCK1 : LIN-UART1 の SCK として使用されます。 SCK として使用する場合の入出力の設定は LIN-UART のシ リアルモードレジスタの SCKE ビットで行います。*1 11B FRCK1 : フリーランタイマ 1 の CK として使用されます。 *2 0XB P21_5 : 外部端子が汎用ポートとして使用されます。 10B SOT1 : LIN-UART1 の SOT として使用されます。 SOT 出力として使用する場合は LIN-UART のシリアルモー ドレジスタの SOE ビットに "1" を設定してください。 11B 設定禁止です。 0XB P21_4 : 外部端子が汎用ポートとして使用されます。 10B SIN1 : LIN-UART1 の SIN として使用されます。 11B 設定禁止です。 0XB P21_2 : 外部端子が汎用ポートとして使用されます。 10B SCK0 : LIN-UART0 の SCK として使用されます。 SCK として使用する場合の入出力の設定は LIN-UART のシ リアルモードレジスタの SCKE ビットで行います。*1 11B FRCK0 : フリーランタイマ 0 の CK として使用されます。 *2 0XB P21_1 : 外部端子が汎用ポートとして使用されます。 10B SOT0 : LIN-UART0 の SOT として使用されます。 SOT 出力として使用する場合は LIN-UART のシリアルモー ドレジスタの SOE ビットに "1" を設定してください。 11B 設定禁止です。 0XB P21_0 : 外部端子が汎用ポートとして使用されます。 10B SIN0 : LIN-UART0 の SIN として使用されます。 11B 設定禁止です。 *1 *1 *1 : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。 *2 : フリーランタイマの入力クロック (FRCKx) は PFR と EPFR の設定とは関係なく常に入力されます。 305 第 10 章 I/O ポート ■ ポート 22 ポート 22 は PFR22 で制御されます。 通常動作時は , 割込み入力 (INT15, INT14, INT13, INT12) は PFR の設定とは関係なく入 力されますが , STOP モード時は内部 INT 入力への入力は以下のようになります。 • PFR = 0 のとき…内部 STOP モード信号により , 内部 INT 入力に "0" が入力される。 • PFR = 1 のとき…外部端子の値がそのまま内部 INT 入力に入力される。 このため , STOP モード解除用として使用する割込みに対しては , STOP モード実行前 に PFR を "1" に設定することが必要です。また , STOP モード解除用として使用しない 割込みに対しては , 外部割込みレジスタにてインアクティブにするための設定を行う か , PFR を "1" に設定して外部端子で処理するなどの注意が必要です。 図 10.4-19 ポート 22 の制御レジスタ構成 PFR22 bit7 6 5 4 3 2 アドレス 000D96H PFR22_7 PFR22_6 PFR22_5 PFR22_4 PFR22_3 PFR22_2 R/W R/W R/W R/W R/W R/W 1 − − 0 初期値 PFR22_0 000000-0B R/W 表 10.4-19 ポート 22 の制御レジスタの機能説明 ビット名 PFR22_7 値 0 P22_7 : 外部端子が汎用ポートとして使用されます。 1 SCL1 : I2C_1 の SCL 入出力として使用されます。 0 P22_6 : 外部端子が汎用ポートとして使用されます。 INT15 : INT15 へ入力されます。 1 SDA1 : I2C_1 の SDA 入出力として使用されます。 INT15 : INT15 へ入力されます。 INT15 を STOP モード解除用として使用する場合は "1" にしてください。 0 P22_5 : 外部端子が汎用ポートとして使用されます。 1 SCL0 : I2C_0 の SCL 入出力として使用されます。 0 P22_4 : 外部端子が汎用ポートとして使用されます。 INT14 : INT14 へ入力されます。 1 SDA0 : I2C_0 の SDA 入出力として使用されます。 INT14 : INT14 へ入力されます。 INT14 を STOP モード解除用として使用する場合は "1" にしてください。 0 P22_3 : 外部端子が汎用ポートとして使用されます。 1 設定禁止です。 0 P22_2 : 外部端子が汎用ポートとして使用されます。 INT13 : INT13 へ入力されます。 1 INT13 : INT13 へ入力されます。 INT13 を STOP モード解除用として使用する場合は "1" にしてください。 0 P22_0 : 外部端子が汎用ポートとして使用されます。 INT12 : INT12 へ入力されます。 1 INT12 : INT12 へ入力されます。 INT12 を STOP モード解除用として使用する場合は "1" にしてください。 PFR22_6 PFR22_5 PFR22_4 PFR22_3 PFR22_2 PFR22_0 306 機能 第 10 章 I/O ポート ■ ポート 23 ポート 23 は PFR23 で制御されます。 通常動作時は , 割込み入力 (INT11, INT10, INT9, INT8) は PFR の設定とは関係なく入力 されますが , STOP モード時は内部 INT 入力への入力は以下のようになります。 • PFR = 0 のとき…内部 STOP モード信号により , 内部 INT 入力に "0" が入力される。 • PFR = 1 のとき…外部端子の値がそのまま内部 INT 入力に入力される。 このため , STOP モード解除用として使用する割込みに対しては , STOP モード実行前 に PFR を "1" に設定することが必要です。また , STOP モード解除用として使用しない 割込みに対しては , 外部割込みレジスタにてインアクティブにするための設定を行う か , PFR を "1" に設定して外部端子で処理するなどの注意が必要です。 図 10.4-20 ポート 23 の制御レジスタ構成 PFR23 アドレス 000D97H bit7 6 5 − PFR23_6 − − R/W − 4 3 2 1 0 初期値 PFR23_4 PFR23_3 PFR23_2 PFR23_1 PFR23_0 -0-00000B R/W R/W R/W R/W R/W 表 10.4-20 ポート 23 の制御レジスタの機能説明 ビット名 値 0 P23_6 : 外部端子が汎用ポートとして使用されます。 INT11 : INT11 へ入力されます。 1 INT11 : INT11 へ入力されます。 INT11 を STOP モード解除用として使用する場合は "1" にしてください。 0 P23_4 : 外部端子が汎用ポートとして使用されます。 INT10 : INT10 へ入力されます。 1 INT10 : INT10 へ入力されます 。 INT10 を STOP モード解除用として使用する場合は "1" にしてください。 0 P23_3 : 外部端子が汎用ポートとして使用されます。 1 TX1 : CAN1 の TX として使用されます。 0 P23_2 : 外部端子が汎用ポートとして使用されます。 RX1 : CAN1 の RX へ入力されます。 INT9 : INT9 へ入力されます。 1 RX1 : CAN1 の RX へ入力されます。 INT9 : INT9 へ入力されます。 INT9 を STOP モード解除用として使用する場合は "1" にしてください。 0 P23_1 : 外部端子が汎用ポートとして使用されます。 1 TX0 : CAN0 の TX として使用されます。 0 P23_0 : 外部端子が汎用ポートとして使用されます。 RX0 : CAN0 の RX へ入力されます。 INT8 : INT8 へ入力されます。 1 RX0 : CAN0 の RX へ入力されます。 INT8 : INT8 へ入力されます。 INT8 を STOP モード解除用として使用する場合は "1" にしてください。 PFR23_6 PFR23_4 PFR23_3 PFR23_2 PFR23_1 機能 PFR23_0 307 第 10 章 I/O ポート ■ ポート 24 ポート 24 は PFR24 で制御されます。 通常動作時は , 割込み入力 (INT7, INT6, INT5, INT4, INT3, INT2, INT1, INT0) は PFR の 設定とは関係なく入力されますが , STOP モード時は内部 INT 入力への入力は以下のよ うになります。 • PFR = 0 のとき…内部 STOP モード信号により , 内部 INT 入力に "0" が入力される。 • PFR = 1 のとき…外部端子の値がそのまま内部 INT 入力に入力される。 このため , STOP モード解除用として使用する割込みに対しては , STOP モード実行前 に PFR を "1" に設定することが必要です。また , STOP モード解除用として使用しない 割込みに対しては , 外部割込みレジスタにてインアクティブにするための設定を行う か , PFR を "1" に設定して外部端子で処理するなどの注意が必要です。 図 10.4-21 ポート 24 の制御レジスタ構成 PFR24 bit7 6 5 4 3 2 1 0 アドレス 初期値 000D98H PFR24_7 PFR24_6 PFR24_5 PFR24_4 PFR24_3 PFR24_2 PFR24_1 PFR24_0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 表 10.4-21 ポート 24 の制御レジスタの機能説明 (1 / 2) ビット名 値 機能 0 P24_7 : 外部端子が汎用ポートとして使用されます。 INT7 : INT7 へ入力されます。 1 INT7 : INT7 へ入力されます。 INT7 を STOP モード解除用として使用する場合は "1" にしてください。 0 P24_6 : 外部端子が汎用ポートとして使用されます。 INT6 : INT6 へ入力されます。 1 INT6 : INT6 へ入力されます。 INT6 を STOP モード解除用として使用する場合は "1" にしてください。 0 P24_5 : 外部端子が汎用ポートとして使用されます。 INT5 : INT5 へ入力されます。 1 SCL2 : I2C_2 の SCL として使用されます。 INT5 : INT5 へ入力されます。 INT5 を STOP モード解除用として使用する場合は "1" にしてください。 0 P24_4 : 外部端子が汎用ポートとして使用されます。 INT4 : INT4 へ入力されます。 1 SDA2 : I2C_2 の SDA として使用されます。 INT4 : INT4 へ入力されます。 INT4 を STOP モード解除用として使用する場合は "1" にしてください。 PFR24_7 PFR24_6 PFR24_5 PFR24_4 308 第 10 章 I/O ポート 表 10.4-21 ポート 24 の制御レジスタの機能説明 (2 / 2) ビット名 値 機能 0 P24_3 : 外部端子が汎用ポートとして使用されます。 INT3 : INT3 へ入力されます。 1 INT3 : INT3 へ入力されます。 INT3 を STOP モード解除用として使用する場合は "1" にしてください。 0 P24_2 : 外部端子が汎用ポートとして使用されます。 INT2 : INT2 へ入力されます。 1 INT2 : INT2 へ入力されます。 INT2 を STOP モード解除用として使用する場合は "1" にしてください。 0 P24_1 : 外部端子が汎用ポートとして使用されます。 INT1 : INT1 へ入力されます。 1 INT1 : INT1 へ入力されます。 INT1 を STOP モード解除用として使用する場合は "1" にしてください。 0 P24_0 : 外部端子が汎用ポートとして使用されます。 INT0 : INT0 へ入力されます。 1 INT0 : INT0 へ入力されます。 INT0 を STOP モード解除用として使用する場合は "1" にしてください。 PFR24_3 PFR24_2 PFR24_1 PFR24_0 309 第 10 章 I/O ポート ■ ポート 28 ポート 28 は A/D コンバータの入力と兼用しており , 汎用ポートとして使用するために は PFR28 の対応するビットを "0" に設定するだけでなく , ADER( アナログ入力許可レ ジスタ ) の対応するビットには "0" を設定してください。 図 10.4-22 ポート 28 の制御レジスタ構成 MB91461 アドレス PFR28 000D9CH ADERL 0001A2H 上位バイト bit7 − − − 6 − − − 5 − − − 4 3 2 1 0 初期値 PFR28_4 PFR28_3 PFR28_2 PFR28_1 PFR28_0 00000000B ADE12 ADE11 ADE10 R/W R/W R/W ADE9 R/W ADE8 R/W 00000000B MB91F467R bit7 6 5 4 3 2 1 0 アドレス 初期値 PFR28 000D9CH PFR28_7 PFR28_6 PFR28_5 PFR28_4 PFR28_3 PFR28_2 PFR28_1 PFR28_0 00000000B ADERL 0001A2H ADE15 ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 上位バイト 表 10.4-22 ポート 28 の制御レジスタの機能説明 ビット名 PFR28_7/ ADE15* PFR28_6 / ADE14* PFR28_5 / ADE13* PFR28_4 / ADE12 PFR28_3 / ADE11 PFR28_2 / ADE10 PFR28_1 / ADE9 PFR28_0 / ADE8 値 00B 01B, 10B 11B 00B 01B, 10B 11B 00B 01B, 10B 11B 00B 01B, 10B 11B 00B 01B, 10B 11B 00B 01B, 10B 11B 00B 01B, 10B 11B 00B 01B, 10B 11B 機能 P28_7 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN15 : A/D コンバータのアナログ入力として使用されます。 P28_6 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN14 : A/D コンバータのアナログ入力として使用されます。 P28_5 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN13 : A/D コンバータのアナログ入力として使用されます。 P28_4 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN12 : A/D コンバータのアナログ入力として使用されます。 P28_3 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN11 : A/D コンバータのアナログ入力として使用されます。 P28_2 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN10 : A/D コンバータのアナログ入力として使用されます。 P28_1 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN9 : A/D コンバータのアナログ入力として使用されます。 P28_0 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 AN8 : A/D コンバータのアナログ入力として使用されます。 *: これらは MB91F467R にのみ適用されます。 310 第 10 章 I/O ポート ■ ポート 29 ポート 29 は A/D コンバータの入力と兼用しており , 汎用ポートとして使用するために は PFR29 の対応するビットを "0" に設定するだけでなく , ADER( アナログ入力許可レ ジスタ ) の対応するビットには "0" を設定してください。 図 10.4-23 ポート 29 の制御レジスタ構成 bit7 6 5 4 3 2 1 0 アドレス 初期値 PFR29 000D9DH PFR29_7 PFR29_6 PFR29_5 PFR29_4 PFR29_3 PFR29_2 PFR29_1 PFR29_0 00000000B ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 00000000B ADERL 0001A3H ADE7 R/W R/W R/W R/W R/W R/W R/W R/W 下位バイト 表 10.4-23 ポート 29 の制御レジスタの機能説明 ビット名 値 00B PFR29_7 / ADE7 PFR29_6 / ADE6 PFR29_5 / ADE5 PFR29_4 / ADE4 PFR29_3 / ADE3 PFR29_2 / ADE2 PFR29_1 / ADE1 PFR29_0 / ADE0 01B, 10B 機能 P29_7 : 外部端子が汎用ポートとして使用されます。 設定禁止です。 11B AN7 : A/D コンバータのアナログ入力として使用されます。 00B P29_6 : 外部端子が汎用ポートとして使用されます。 01B, 10B 設定禁止です。 11B AN6 : A/D コンバータのアナログ入力として使用されます。 00B P29_5 : 外部端子が汎用ポートとして使用されます。 01B, 10B 設定禁止です。 11B AN5 : A/D コンバータのアナログ入力として使用されます。 00B P29_4 : 外部端子が汎用ポートとして使用されます。 01B, 10B 設定禁止です。 11B AN4 : A/D コンバータのアナログ入力として使用されます。 00B P29_3 : 外部端子が汎用ポートとして使用されます。 01B, 10B 設定禁止です。 11B AN3 : A/D コンバータのアナログ入力として使用されます。 00B P29_2 : 外部端子が汎用ポートとして使用されます。 01B, 10B 設定禁止です。 11B AN2: A/D コンバータのアナログ入力として使用されます。 00B P29_1 : 外部端子が汎用ポートとして使用されます。 01B, 10B 設定禁止です。 11B AN1 : A/D コンバータのアナログ入力として使用されます。 00B P29_0 : 外部端子が汎用ポートとして使用されます。 01B, 10B 11B 設定禁止です。 AN0 : A/D コンバータのアナログ入力として使用されます。 311 第 10 章 I/O ポート 10.5 端子入力レベルの選択 端子の入力レベルは , レジスタ設定により選択することができます。 ■ 端子入力レベル 表 10.5-1 に , 入力レベルを示します。 表 10.5-1 入力レベル VIL 名称 VIH CMOS VIL = 0.3 × VDD VIH = 0.7 × VDD CMOS シュミットトリガ 1 VIL = 0.3 × VDD VIH = 0.7 × VDD CMOS シュミットトリガ 2 VIL = 0.2 × VDD VIH = 0.8 × VDD Automotive VIL = 0.5 × VDD VIH = 0.8 × VDD ■ 端子入力レベルの選択 端子ごとの入力レベルの選択には , 端子入力レベル選択レジスタ (PILR, EPIRL) が使用 されます。表 10.5-2 , 表 10.5-3 , 表 10.5-4 , 表 10.5-5 , 表 10.5-6 に 端子入力レベル選択レ ジスタの設定を示します 表 10.5-2 MB91461 の端子入力レベル選択レジスタの設定 PILRxy 端子入力レベル 0 [ 初期値 ] 1 CMOS シュミットトリガ 1 CMOS シュミットトリガ 2 表 10.5-3 MB91F467RA の端子入力レベル選択レジスタの設定 (5V 端子 ) PILRxy EPILRxy 0 [ 初期値 ] 0 [ 初期値 ] CMOS シュミットトリガ 1 0 1 Automotive 1 0 CMOS シュミットトリガ 2 1 1 設定禁止 端子入力レベル 適用される端子は5V耐圧端子(2, 3, 119∼126, 134∼145, 148∼160, 163∼175ピン )です。 表 10.5-4 MB91F467RB の端子入力レベル選択レジスタの設定 (5V 端子 ) PILRxy EPILRxy 0 [ 初期値 ] 0 [ 初期値 ] CMOS シュミットトリガ 1 0 1 設定禁止 1 0 Automotive 1 1 CMOS シュミットトリガ 2 端子入力レベル 適用される端子は5V耐圧端子(2, 3, 119∼126, 134∼145, 148∼160, 163∼175ピン )です。 312 第 10 章 I/O ポート 表 10.5-5 MB91F467R の端子入力レベル選択レジスタ設定 (I2C 端子 ) PILRxy 端子入力レベル 0 [ 初期値 ] CMOS 1 CMOS シュミットトリガ 1 適用される端子は , 4 ∼ 7, 117, 118 ピンです。 表 10.5-6 MB91F467R の端子入力レベル選択レジスタ設定 (3.3V 端子 ) PILRxy 端子入力レベル 0 [ 初期値 ] CMOS 1 CMOS シュミットトリガ 2 適用される端子は , 8 ∼ 10, 15 ∼ 35, 46 ∼ 56, 59 ∼ 72, 75 ∼ 87, 90 ∼ 113 ピンです。 <注意事項> MB91V460 では PILR の値によらず CMOS シュミットトリガ入力となります。 (VIL = 0.3 × VDD/VIH = 0.7 × VDD) 313 第 10 章 I/O ポート 図 10.5-1 端子入力レベル選択レジスタ アドレス PILR00 PILR01 PILR05 PILR06 PILR07 PILR08 PILR09 PILR10 PILR11 PILR13 PILR14 PILR15 PILR16 PILR17 PILR18 PILR19 PILR20 PILR21 PILR22 PILR23 PILR24 PILR28 PILR29 bit 7 6 000E40H PILR00_7 PILR00_6 000E41H PILR01_7 PILR01_6 000E45H PILR05_7 PILR05_6 000E46H PILR06_7 PILR06_6 000E47H PILR07_7 PILR07_6 000E48H PILR08_7 PILR08_6 000E49H − − 000E4AH PILR10_6 − 000E4BH − − 000E4DH − − 000E4EH − − 000E4FH − − 000E50H PILR16_7 − 000E51H PILR17_7 PILR17_6 000E52H − − 000E53H PILR19_6 − 000E54H PILR20_6 − 000E55H PILR21_6 − 000E56H PILR22_7 PILR22_6 000E57H PILR23_6 − 000E58H PILR24_7 PILR24_6 000E5CH PILR28_7 PILR28_6 000E5DH PILR29_7 PILR29_6 R/W R/W 5 4 3 2 1 0 初期値 PILR00_5 PILR00_4 PILR00_3 PILR00_2 PILR00_1 PILR00_0 00000000B PILR01_5 PILR01_4 PILR01_3 PILR01_2 PILR01_1 PILR01_0 00000000B PILR05_5 PILR05_4 PILR05_3 PILR05_2 PILR05_1 PILR05_0 00000000B PILR06_5 PILR06_4 PILR06_3 PILR06_2 PILR06_1 PILR06_0 00000000B PILR07_5 PILR07_4 PILR07_3 PILR07_2 PILR07_1 PILR07_0 00000000B PILR08_1 PILR08_0 0000--00B − − PILR09_4 PILR09_3 PILR09_2 PILR09_1 PILR09_0 ---00000B − PILR10_5 PILR10_4 PILR10_3 PILR10_2 PILR10_1 PILR10_0 -0000000B PILR08_5 PILR08_4 − − − − − PILR11_1 PILR11_0 PILR13_2 PILR13_1 PILR13_0 − − − − PILR14_3 PILR14_2 PILR14_1 PILR14_0 − − PILR15_3 PILR15_2 PILR15_1 PILR15_0 − − − − − − PILR17_5 PILR17_4 PILR17_3 PILR17_2 PILR17_1 PILR17_0 − PILR18_2 PILR18_1 PILR18_0 PILR19_5 PILR19_4 − PILR19_2 PILR19_1 PILR19_0 PILR20_5 PILR20_4 − PILR20_2 PILR20_1 PILR20_0 PILR21_5 PILR21_4 − PILR21_2 PILR21_1 PILR21_0 − − PILR22_5 PILR22_4 PILR22_3 PILR22_2 − − PILR22_0 PILR23_4 PILR23_3 PILR23_2 PILR23_1 PILR23_0 PILR24_5 PILR24_4 PILR24_3 PILR24_2 PILR24_1 PILR24_0 PILR28_5 PILR28_4 PILR28_3 PILR28_2 PILR28_1 PILR28_0 PILR29_5 PILR29_4 PILR29_3 PILR29_2 PILR29_1 PILR29_0 R/W R/W R/W R/W R/W ------00B -----000B ----0000B ----0000B 0-------B 00000000B -----000B -000-000B -000-000B -000-000B ----00-0B -0-00000B 00--0000B 00000000B 00000000B R/W PILR00 ∼ PILR13 および PILR28_7 ∼ PILR28_5 は MB91461 にはありません。 図 10.5-2 拡張端子入力レベル選択レジスタ bit 7 6 5 アドレス EPILR14 000E8EH − − − EPILR15 000E8FH − − − EPILR17 000E91H − − − 000E92 EPILR18 − − − H EPILR19_6 EPILR19_5 EPILR19 000E93H − EPILR20_6 EPILR20_5 EPILR20 000E94H − EPILR21_6 EPILR21_5 EPILR21 000E95H − EPILR22 000E96H − − − EPILR23_6 EPILR23 000E97H − − EPILR24 000E98H EPILR24_7 EPILR24_6 − R/W R/W R/W MB91461 には EPILR レジスタはありません。 314 4 3 2 1 0 − EPILR14_3 EPILR14_2 EPILR14_1 EPILR14_0 − EPILR15_3 EPILR15_2 EPILR15_1 EPILR15_0 − EPILR17_3 EPILR17_2 EPILR17_1 EPILR17_0 − − EPILR18_2 EPILR18_1 EPILR18_0 EPILR19_4 − EPILR19_2 EPILR19_1 EPILR19_0 EPILR20_4 − EPILR20_2 EPILR20_1 EPILR20_0 EPILR21_4 − EPILR21_2 EPILR21_1 EPILR21_0 − EPILR22_3 EPILR22_2 − EPILR22_0 EPILR23_4 EPILR23_3 EPILR23_2 EPILR23_1 EPILR23_0 − R/W EPILR24_3 EPILR24_2 EPILR24_1 EPILR24_0 R/W R/W R/W R/W 初期値 ----0000B ----0000B 00000000B -----000B -000-000B -000-000B -000-000B ----00-0B -0-00000B 00--0000B 第 10 章 I/O ポート 10.6 プルアップ・プルダウン制御レジスタ 端子には 50kΩ のプルアップ , もしくはプルダウンを付加する機能があります。こ の機能はソフトウェアによりビット単位で制御可能です。 ■ プルアップ・プルダウン制御 プルアップ・プルダウン機能は , ポートプルアップ・プルダウン許可レジスタ (PPER) により有効とされ , ポートプルアップ・プルダウン制御レジスタ (PPCR) により , プル アップもしくはプルダウンの制御が行われます。 以下の場合は , 端子のプルアップもしくはプルダウンは自動的に無効となります。 • ポートが出力状態 • STOP モード時 ■ ポートプルアップ・プルダウン許可レジスタ 表 10.6-1 に , ポートプルアップ・プルダウン許可レジスタを示します。 I2C インタフェースと兼用しているポート , および A/D コンバータの入力と兼用してい るポートにはプルアップ・プルダウン制御はありません。 表 10.6-1 ポートプルアップ・プルダウン許可レジスタの設定 ポートプルアップ・プルダウン許可レジスタ ビット PPERxy 0 [ 初期値 ] 1 プルアップ・プルダウン無効 プルアップ・プルダウン有効 315 第 10 章 I/O ポート 図 10.6-1 ポートプルアップ・プルダウン許可レジスタ アドレス PPER00 PPER01 PPER05 PPER06 PPER07 PPER08 PPER09 PPER10 PPER11 PPER13 PPER14 PPER15 PPER16 PPER17 PPER18 PPER19 PPER20 PPER21 PPER22 PPER23 PPER24 PPER28 PPER29 bit 000EC0H 000EC1H 000EC5H 000EC6H 000EC7H 000EC8H 000EC9H 000ECAH 000ECBH 000ECDH 000ECEH 000ECFH 000ED0H 000ED1H 000ED2H 000ED3H 000ED4H 000ED5H 000ED6H 000ED7H 000ED8H 000EDCH 000EDDH 7 6 5 4 3 2 1 0 初期値 00000000B PPER01_2 PPER01_1 PPER01_0 00000000B PPER05_2 PPER05_1 PPER05_0 00000000B PPER06_2 PPER06_1 PPER06_0 00000000B PPER07_2 PPER07_1 PPER07_0 00000000B PPER08_1 PPER08_0 0000--00B − PPER09_2 PPER09_1 PPER09_0 ---00000B PPER10_2 PPER10_1 PPER10_0 -0000000B PPER11_1 PPER11_0 ------00B − PPER13_2 PPER13_1 PPER13_0 -----000B PPER14_2 PPER14_1 PPER14_0 ----0000B PPER15_2 PPER15_1 PPER15_0 ----0000B 0-------B − − − 00000000 PPER17_2 PPER17_1 PPER17_0 B PPER18_2 PPER18_1 PPER18_0 -----000B PPER19_2 PPER19_1 PPER19_0 -000-000B PPER20_2 PPER20_1 PPER20_0 -000-000B PPER21_2 PPER21_1 PPER21_0 -000-000B PPER22_2 PPER22_0 ----00-0B − PPER23_2 PPER23_1 PPER23_0 -0-00000B PPER24_2 PPER24_1 PPER24_0 00--0000B PPER28_2 PPER28_1 PPER28_0 00000000B PPER29_2 PPER29_1 PPER29_0 00000000B R/W R/W R/W PPER00_7 PPER00_6 PPER00_5 PPER00_4 PPER00_3 PPER00_2 PPER00_1 PPER00_0 PPER01_7 PPER01_6 PPER01_5 PPER01_4 PPER01_3 PPER05_7 PPER05_6 PPER05_5 PPER05_4 PPER05_3 PPER06_7 PPER06_6 PPER06_5 PPER06_4 PPER06_3 PPER07_7 PPER07_6 PPER07_5 PPER07_4 PPER07_3 PPER08_7 PPER08_6 PPER08_5 PPER08_4 − − − − − PPER09_4 PPER09_3 − PPER10_6 PPER10_5 PPER10_4 PPER10_3 − − − − − − − − − − − − − PPER14_3 − − − − PPER15_3 PPER16_7 − − − − PPER17_7 PPER17_6 PPER17_5 PPER17_4 PPER17_3 − − − − − − PPER19_6 PPER19_5 PPER19_4 − − PPER20_6 PPER20_5 PPER20_4 − − PPER21_6 PPER21_5 PPER21_4 − − − − PPER23_6 − PPER24_7 PPER24_6 − − − PPER22_3 PPER23_4 PPER23_3 − PPER24_3 PPER28_7 PPER28_6 PPER28_5 PPER28_4 PPER28_3 PPER29_7 PPER29_6 PPER29_5 PPER29_4 PPER29_3 R/W R/W R/W R/W R/W ■ ポートプルアップ・プルダウン制御レジスタ 表 10.6-2 に , ポートプルアップ・プルダウン制御レジスタの設定を示します。各ビッ トの設定値は対応する PPER が設定されているときのみ有効です。 I2C インタフェースと兼用しているポート , および A/D コンバータの入力と兼用してい るポートにはプルアップ・プルダウン制御はありません。 表 10.6-2 ポートプルアップ・プルダウン制御レジスタの設定 ポートプルアップ・プルダウン制御レジスタ ビット PPCRxy 316 0 1 ( 初期値 ) プルダウン プルアップ 第 10 章 I/O ポート 図 10.6-2 ポートプルアップ・プルダウン制御レジスタ アドレス PPCR00 PPCR01 PPCR05 PPCR06 PPCR07 PPCR08 PPCR09 PPCR10 PPCR11 PPCR13 PPCR14 PPCR15 PPCR16 PPCR17 PPCR18 PPCR19 PPCR20 PPCR21 PPCR22 PPCR23 PPCR24 PPCR28 PPCR29 bit 000F00H 000F01H 000F05H 000F06H 000F07H 000F08H 000F09H 000F0AH 000F0BH 000F0DH 000F0EH 000F0FH 000F10H 000F11H 000F12H 000F13H 000F14H 000F15H 000F16H 000F17H 000F18H 000F1CH 000F1DH 7 6 5 4 3 2 1 0 初期値 11111111B PPCR01_4 PPCR01_3 PPCR01_2 PPCR01_1 PPCR01_0 11111111B PPCR05_4 PPCR05_3 PPCR05_2 PPCR05_1 PPCR05_0 11111111B PPCR06_4 PPCR06_3 PPCR06_2 PPCR06_1 PPCR06_0 11111111B PPCR07_4 PPCR07_3 PPCR07_2 PPCR07_1 PPCR07_0 11111111B PPCR08_1 PPCR08_0 1111--11B PPCR08_4 − − PPCR09_4 PPCR09_3 PPCR09_2 PPCR09_1 PPCR09_0 ---11111B PPCR10_4 PPCR10_3 PPCR10_2 PPCR10_1 PPCR10_0 -1111111B PPCR11_1 PPCR11_0 ------11B − − − PPCR13_2 PPCR13_1 PPCR13_0 -----111B − − PPCR14_3 PPCR14_2 PPCR14_1 PPCR14_0 ----1111B − PPCR15_3 PPCR15_2 PPCR15_1 PPCR15_0 ----1111B − 1-------B − − − − − 11111111 PPCR17_4 PPCR17_3 PPCR17_2 PPCR17_1 PPCR17_0 B PPCR18_2 PPCR18_1 PPCR18_0 -----111B − − PPCR19_4 PPCR19_2 PPCR19_1 PPCR19_0 -111-111B − PPCR20_4 PPCR20_2 PPCR20_1 PPCR20_0 -111-111B − PPCR21_4 PPCR21_2 PPCR21_1 PPCR21_0 -111-111B − PPCR22_3 PPCR22_2 PPCR22_0 ----11-1B − − PPCR23_4 PPCR23_3 PPCR23_2 PPCR23_1 PPCR23_0 -1-11111B PPCR24_3 PPCR24_2 PPCR24_1 PPCR24_0 11--1111B − PPCR28_4 PPCR28_3 PPCR28_2 PPCR28_1 PPCR28_0 11111111B PPCR29_4 PPCR29_3 PPCR29_2 PPCR29_1 PPCR29_0 11111111B R/W R/W R/W R/W R/W PPCR00_7 PPCR00_6 PPCR00_5 PPCR00_4 PPCR00_3 PPCR00_2 PPCR00_1 PPCR00_0 PPCR01_7 PPCR01_6 PPCR01_5 PPCR05_7 PPCR05_6 PPCR05_5 PPCR06_7 PPCR06_6 PPCR06_5 PPCR07_7 PPCR07_6 PPCR07_5 PPCR08_7 PPCR08_6 PPCR08_5 − − − − − PPCR10_6 PPCR10_5 − − − − − − − − − − − PPCR16_7 − − PPCR17_7 PPCR17_6 PPCR17_5 − − − − PPCR19_6 PPCR19_5 − PPCR20_6 PPCR20_5 − PPCR21_6 PPCR21_5 − − − − PPCR23_6 − PPCR24_7 PPCR24_6 − PPCR28_7 PPCR28_6 PPCR28_5 PPCR29_7 PPCR29_6 PPCR29_5 R/W R/W R/W <注意事項> プルアップもしくはプルダウンが有効である期間 (PPER = 1) は , PPCR への書込みアク セスは無効となり , レジスタ値は更新されません。PPCR の設定値の変更は , 対応する PPER が "0" の場合にのみ有効です。 317 第 10 章 I/O ポート 318 第 11 章 割込みコントローラ 割込みコントローラの概要 , レジスタの構成 / 機能 , および動作について説明します。 11.1 割込みコントローラの概要 11.2 割込みコントローラのレジスタ 11.3 割込みコントローラの動作説明 319 第 11 章 割込みコントローラ 11.1 割込みコントローラの概要 割込みコントローラは , 割込み受付け / 調停処理を行います。 ■ 割込みコントローラのハードウェア構成 本モジュールは , 以下のものより構成されます。 • ICR レジスタ • 割込み優先度判定回路 • 割込みレベル , 割込み番号 ( ベクタ ) 発生部 • ホールドリクエスト取下げ要求発生部 ■ 割込みコントローラの主要機能 本モジュールには , 主に以下のような機能があります。 • NMI 要求 / 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み番号伝達 (CPU へ ) • NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰 指示 (CPU へ ) • バスマスタへのホールドリクエスト取下げ要求発生 320 第 11 章 割込みコントローラ ■ 割込みコントローラのレジスタ一覧 図 11.1-1 に , 割込みコントローラのレジスタ一覧を示します。 図 11.1-1 割込みコントローラのレジスタ一覧 レジスタ アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ICR00 000440H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR01 000441H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR02 000442H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR03 000443H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR04 000444H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR05 000445H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR06 000446H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR07 000447H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR08 000448H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR09 000449H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR10 00044AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR11 00044BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR12 00044CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR13 00044DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR14 00044EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR15 00044FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR16 000450H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR17 000451H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR18 000452H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR19 000453H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR20 000454H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR21 000455H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR22 000456H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR23 000457H − − − ICR4 ICR3 ICR2 ICR1 ICR0 (ICR24) 000458H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR25 000459H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR26 00045AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR27 00045BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR28 00045CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR29 00045DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR30 00045EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR31 00045FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR32 000460H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR33 000461H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR36 000464H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ( 続く ) 321 第 11 章 割込みコントローラ ( 続き ) レジスタ アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ICR34 000462H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR35 000463H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR37 000465H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR38 000466H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR39 000467H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR40 000468H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR41 000469H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR42 00046AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR43 00046BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR44 00046CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR45 00046DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR46 00046EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR47 00046FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR48 000470H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR49 000471H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR50 000472H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR51 000473H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR52 000474H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR53 000475H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR54 000476H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR55 000477H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR56 000478H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR57 000479H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR58 00047AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR59 00047BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR60 00047CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR61 00047DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR62 00047EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR63 00047FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 R R/W R/W R/W R/W レジスタ アドレス bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 HRCL 000045H MHALTI − − LVL4 LVL3 LVL2 LVL1 LVL0 R R/W R/W R/W R/W R/W 322 第 11 章 割込みコントローラ ■ 割込みコントローラのブロックダイヤグラム 図 11.1-2 に , 割込みコントローラのブロックダイヤグラムを示します。 図 11.1-2 割込みコントローラのブロックダイヤグラム UNMI ウェイクアップ (レベル≠11111Bのとき"1") 優先度判定 NMI 処理 レベル4~ レベル0 5 / レベル, ベクタ 発生 レベル判定 RI00 ・ ・ ・ RI63 ( DLYIRQ) ICR00 ・ ・ ・ ICR63 ベクタ 判定 6 / ホールド リクエスト 取下げ要求 MHALTI VCT5~VCT0 R-bus 323 第 11 章 割込みコントローラ 11.2 割込みコントローラのレジスタ 割込みコントローラのレジスタ構成および機能について説明します。 ■ 割込みコントローラのレジスタ詳細 割込みコントローラには , 以下の 2 種類のレジスタがあります。 • 割込み制御レジスタ (ICR) • ホールドリクエスト取下げ要求レジスタ (HRCL) 324 第 11 章 割込みコントローラ 11.2.1 割込み制御レジスタ (ICR) ICR は , 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割込み要求の割込みレベルを設定します。 ■ 割込み制御レジスタ (ICR) のビット構成 図 11.2-1 に , 割込み制御レジスタ (ICR) のビット構成を示します。 図 11.2-1 割込み制御レジスタ (ICR) のビット構成 7 アドレス : bit ch.00 000440H − 6 − 5 4 3 2 1 0 初期値 − ICR4 ICR3 ICR2 ICR1 ICR0 ---11111B R R/W R/W R/W R/W ∼ ch.63 00047FH [bit4 ∼ bit0] ICR4 ∼ ICR0 割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。 本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。 リセットにより , "11111B" に初期化されます。 表 11.2-1 に , 設定可能な割込みレベル設定ビットと割込みレベルの対応を示します。 表 11.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応 ICR4* ICR3 ICR2 ICR1 ICR0 0 0 0 0 0 0 0 1 1 1 0 14 0 1 1 1 1 15 NMI 1 0 0 0 0 16 設定可能な最強レベル 1 0 0 0 1 17 1 0 0 1 0 18 1 0 0 1 1 19 1 0 1 0 0 20 1 0 1 0 1 21 1 0 1 1 0 22 1 0 1 1 1 23 1 1 0 0 0 24 1 1 0 0 1 25 1 1 0 1 0 26 1 1 0 1 1 27 1 1 1 0 0 28 1 1 1 0 1 29 1 1 1 1 0 30 1 1 1 1 1 31 割込みレベル システム予約 (強) (弱) 割込み禁止 *: ICR4 は "1" 固定で , "0" を書き込むことはできません。 325 第 11 章 割込みコントローラ 11.2.2 ホールドリクエスト取下げ要求レジスタ (HRCL) HRCL は , ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。 ■ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成は , 以下のとおりです。 図 11.2-2 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 HRCL bit アドレス :000039H 7 MHALTI 6 − R/W 5 4 3 2 1 0 初期値 − LVL4 LVL3 LVL2 LVL1 LVL0 0--11111B R R/W R/W R/W R/W [bit7] MHALTI MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1" にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後 で通常の割込みルーチンと同様にクリアしてください。 [bit4 ∼ bit0] LVL4 ∼ LVL0 バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定 します。 本レジスタに設定した割込みレベルより強いレベルの割込み要求が発生した場合 は , バスマスタに対してホールドリクエスト取下げ要求を発生します。 LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。 326 第 11 章 割込みコントローラ 割込みコントローラの動作説明 11.3 割込みコントローラの動作について説明します。 ■ 優先順位判定 本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選 択し , その要因の割込みレベルと割込み番号を CPU へ出力します。 割込み要因の優先順位判定基準は , 以下のとおりです。 1)NMI 2) 以下の条件を満たす要因 - 割込みレベルの数値が 31 以外 (31 は割込み禁止 ) - 割込みレベルの数値が最も小さい要因 - その中で , 最も小さい割込み番号の要因 上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし て 31 ("11111B") を出力します。そのときの割込み番号は不定です。 表 11.3-1 に , 割込み要因と割込み番号 , 割込みレベルの関係を示します。 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 6) 割込み番号 割込み要因 10 進 16 進 割込みレベル 設定 レジスタ レジスタ アドレス オフ セット TBR リソース デフォルトの 番号 *1 アドレス リセット 0 00H − − 3FCH 000FFFFCH − モードベクタ 1 01H − − 3F8H 000FFFF8H − システム予約 2 02H − − 3F4H 000FFFF4H − システム予約 3 03H − − 3F0H 000FFFF0H − システム予約 4 04H − − 3ECH 000FFFECH − システム予約 (UDSU) 5 05H − − 3E8H 000FFFE8H − システム予約 (UDSU) 6 06H − − 3E4H 000FFFE4H − コプロセッサ不在トラップ 7 07H − − 3E0H 000FFFE0H − コプロセッサエラートラップ 8 08H − − 3DCH 000FFFDCH − INTE 命令 9 09H − − 3D8H 000FFFD8H − システム予約 10 0AH − − 3D4H 000FFFD4H − システム予約 11 0BH − − 3D0H 000FFFD0H − ステップトレーストラップ 12 0CH − − 3CCH 000FFFCCH − MNI 要求 (tool) 13 0DH − − 3C8H 000FFFC8H − 327 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 6) 割込み番号 割込み要因 10 進 16 進 割込みレベル 設定 レジスタ レジスタ アドレス オフ セット TBR リソース デフォルトの 番号 *1 アドレス 未定義命令例外 14 0EH − − 3C4H 000FFFC4H − NMI 要求 15 0FH 15 (F) 固定 15 (F) 固定 3C0H 000FFFC0H − 外部割込み 0 16 10H 000FFFBCH 0 440H 3BCH ICR00 3B8H 000FFFB8H 1 3B4H 000FFFB4H 2 3B0H 000FFFB0H 3 3ACH 000FFFACH − 3A8H 000FFFA8H − 3A4H 000FFFA4H − 3A0H 000FFFA0H − 39CH 000FFF9CH − 398H 000FFF98H − 394H 000FFF94H − 390H 000FFF90H − 38CH 000FFF8CH − 388H 000FFF88H − 384H 000FFF84H − 380H 000FFF80H − 37CH 000FFF7CH 4 378H 000FFF78H 5 374H 000FFF74H − 370H 000FFF70H − 36CH 000FFF6CH − 368H 000FFF68H − 364H 000FFF64H − 360H 000FFF60H − 外部割込み 1 17 11H 外部割込み 2 18 12H ICR01 外部割込み 3 19 13H 外部割込み 4 20 14H ICR02 外部割込み 5 21 15H 外部割込み 6 22 16H ICR03 外部割込み 7 23 17H 外部割込み 8 24 18H ICR04 外部割込み 9 25 19H 外部割込み 10 26 1AH ICR05 外部割込み 11 27 1BH 外部割込み 12 28 1CH ICR06 外部割込み 13 29 1DH 外部割込み 14 30 1EH ICR07 外部割込み 15 31 1FH リロードタイマ 0 32 20H ICR08 リロードタイマ 1 33 21H リロードタイマ 2 34 22H ICR09 リロードタイマ 3 35 23H システム予約 36 24H ICR10 システム予約 37 25H システム予約 38 26H ICR11 リロードタイマ 7 328 39 27H 441H 442H 443H 444H 445H 446H 447H 448H 449H 44AH 44BH 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 6) 割込み番号 割込み要因 10 進 16 進 フリーランタイマ 0 40 割込みレベル 設定 レジスタ レジスタ アドレス 28H ICR12 フリーランタイマ 1 41 29H フリーランタイマ 2 42 2AH ICR13 フリーランタイマ 3 43 2BH システム予約 44 2CH ICR14 システム予約 45 2DH システム予約 46 2EH ICR15 システム予約 47 2FH CAN 0 48 30H ICR16 CAN 1 49 31H システム予約 50 32H ICR17 システム予約 51 33H システム予約 52 34H ICR18 システム予約 53 35H LIN-UART 0 RX 54 36H ICR19 LIN-UART 0 TX 55 37H LIN-UART 1 RX 56 38H ICR20 LIN-UART 1 TX 57 39H LIN-UART 2 RX 58 3AH ICR21 LIN-UART 2 TX 59 3BH LIN-UART 3 RX 60 3CH ICR22 LIN-UART 3 TX 61 3DH システム予約 62 3EH ICR23 遅延割込み 63 3FH システム予約 64 40H (ICR24) システム予約 65 41H LIN-UART 4 RX 66 42H ICR25 LIN-UART 4 TX 67 43H 44CH 44DH 44EH 44FH 450H 451H 452H 453H 454H 455H 456H 457H 458H 459H オフ セット TBR リソース デフォルトの 番号 *1 アドレス 35CH 000FFF5CH − 358H 000FFF58H − 354H 000FFF54H − 350H 000FFF50H − 34CH 000FFF4CH − 348H 000FFF48H − 344H 000FFF44H − 340H 000FFF40H − 33CH 000FFF3CH − 338H 000FFF38H − 334H 000FFF34H − 330H 000FFF30H − 32CH 000FFF2CH − 328H 000FFF28H − 324H 000FFF24H 6 320H 000FFF20H 7 31CH 000FFF1CH 8 318H 000FFF18H 9 314H 000FFF14H − 310H 000FFF10H − 30CH 000FFF0CH − 308H 000FFF08H − 304H 000FFF04H − 300H 000FFF00H − 2FCH 000FFEFCH − 2F8H 000FFEF8H − 2F4H 000FFEF4H 10 2F0H 000FFEF0H 11 329 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (4 / 6) 割込み番号 割込み要因 10 進 16 進 LIN-UART 5 RX 68 割込みレベル 設定 レジスタ レジスタ アドレス 44H ICR26 LIN-UART 5 TX 69 45H LIN-UART 6 RX 70 46H ICR27 LIN-UART 6 TX 71 47H システム予約 72 48H ICR28 システム予約 73 49H I2C0 / I2C2 74 4AH ICR29 I2C1 / I2C3 75 4BH システム予約 76 4CH ICR30 システム予約 77 4DH システム予約 78 4EH ICR31 システム予約 79 4FH システム予約 80 50H ICR32 システム予約 81 51H システム予約 82 52H ICR33 システム予約 83 53H システム予約 84 54H ICR34 システム予約 85 55H システム予約 86 56H ICR35 システム予約 87 57H システム予約 88 58H ICR36 システム予約 89 59H システム予約 90 5AH ICR37 システム予約 91 5BH インプットキャプチャ 0 92 5CH ICR38 インプットキャプチャ 1 93 5DH インプットキャプチャ 2 94 5EH ICR39 インプットキャプチャ 3 330 95 5FH 45AH 45BH 45CH オフ セット TBR リソース デフォルトの 番号 *1 アドレス 2ECH 000FFEECH 12 2E8H 000FFEE8H 13 2E4H 000FFEE4H − 2E0H 000FFEE0H − 2DCH 000FFEDCH − 2D8H 000FFED8H − 2D4H 000FFED4H − 2D0H 000FFED0H − 2CCH 000FFECCH − 2C8H 000FFEC8H − 2C4H 000FFEC4H − 2C0H 000FFEC0H − 2BCH 000FFEBCH − 2B8H 000FFEB8H − 2B4H 000FFEB4H − 2B0H 000FFEB0H − 2ACH 000FFEACH − 2A8H 000FFEA8H − 2A4H 000FFEA4H − 2A0H 000FFEA0H − 29CH 000FFE9CH − 298H 000FFE98H − 294H 000FFE94H − 290H 000FFE90H − 28CH 000FFE8CH − 288H 000FFE88H − 284H 000FFE84H − 280H 000FFE80H − 45DH 45EH 45FH 460H 461H 462H 463H 464H 465H 566H 467H 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (5 / 6) 割込み番号 割込み要因 10 進 16 進 システム予約 96 割込みレベル 設定 レジスタ レジスタ アドレス 60H ICR40 システム予約 97 61H システム予約 98 62H ICR41 システム予約 99 63H アウトプットキャプチャ 0 100 64H ICR42 アウトプットキャプチャ 1 101 65H アウトプットキャプチャ 2 102 66H ICR43 アウトプットキャプチャ 3 103 67H システム予約 104 68H ICR44 システム予約 105 69H システム予約 106 6AH ICR45 システム予約 107 6BH システム予約 108 6CH ICR46 システム予約 109 6DH システム予約 110 6EH ICR47 システム予約 111 6FH PPG0 112 70H ICR48 PPG1 113 71H PPG2 114 72H ICR49 PPG3 115 73H PPG4 116 74H ICR50 PPG5 117 75H PPG6 118 76H ICR51 PPG7 119 77H システム予約 120 78H ICR52 システム予約 121 79H システム予約 122 7AH ICR53 システム予約 123 7BH 468H 469H 46AH 46BH 46CH 46DH 46EH 46FH 470H 471H 472H 473H 474H 475H オフ セット TBR リソース デフォルトの 番号 *1 アドレス 27CH 000FFE7CH − 278H 000FFE78H − 274H 000FFE74H − 270H 000FFE70H − 26CH 000FFE6CH − 268H 000FFE68H − 264H 000FFE64H − 260H 000FFE60H − 25CH 000FFE5CH − 258H 000FFE58H − 254H 000FFE54H − 250H 000FFE50H − 24CH 000FFE4CH − 248H 000FFE48H − 244H 000FFE44H − 240H 000FFE40H − 23CH 000FFE3CH 15 238H 000FFE38H − 234H 000FFE34H − 230H 000FFE30H − 22CH 000FFE2CH − 228H 000FFE28H − 224H 000FFE24H − 220H 000FFE20H − 21CH 000FFE1CH − 218H 000FFE18H − 214H 000FFE14H − 210H 000FFE10H − 331 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (6 / 6) 割込み番号 割込み要因 10 進 16 進 システム予約 124 割込みレベル 設定 レジスタ レジスタ アドレス 7CH ICR54 システム予約 125 7DH システム予約 126 7EH ICR55 システム予約 127 7FH システム予約 128 80H ICR56 システム予約 129 81H システム予約 130 82H ICR57 システム予約 131 83H リアルタイムクロック 132 84H ICR58 Clock Calibration * 133 85H A/D コンバータ 0 134 85H ICR59 システム予約 135 87H システム予約 136 88H ICR60 システム予約 137 89H システム予約 138 8AH ICR61 システム予約 139 8BH タイムベースオーバフロー 140 8CH ICR62 PLL クロックギア 141 8DH DMA コントローラ 142 8EH ICR63 メイン / サブ発振安定待ち 143 8FH システム予約 144 90H INT 命令で使用 145 : 255 91H : FFH − − *: Clock Calibration は , MB91461 では使用できません。 332 オフ セット TBR リソース デフォルトの 番号 *1 アドレス 20CH 000FFE0CH − 208H 000FFE08H − 204H 000FFE04H − 200H 000FFE00H − 1FCH 000FFDFCH − 1F8H 000FFDF8H − 1F4H 000FFDF4H − 1F0H 000FFDF0H − 1ECH 000FFDECH − 1E8H 000FFDE8H − 1E4H 000FFDE4H 14 1E0H 000FFDE0H − 1DCH 000FFDDCH − 1D8H 000FFDD8H − 1D4H 000FFDD4H − 1D0H 000FFDD0H − 1CCH 000FFDCCH − 1C8H 000FFDC8H − 1C4H 000FFDC4H − 1C0H 000FFDC0H − − 1BCH 000FFDBCH − − 1B8H : 000H 000FFDB8H : 000FFC00H − 476H 477H 478H 479H 47AH 47BH 47CH 47DH 47EH 47FH 第 11 章 割込みコントローラ ■ 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" にクリアしてください。 ■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request) 優先度の高い割込み処理を CPU のホールド中 (DMA 転送中 ) に行う場合は , ホールド リクエスト発生元においてリクエストを取り下げさせる必要があります。この取下げ 要求発生の基準となる割込みレベルを HRCL レジスタに設定します。 ● 発生基準 HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合 は , ホールドリクエスト取下げ要求を発生します。 HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル →取下げ要求発生 HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル →取下げ要求なし 取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効 であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割 込み要因をクリアしてください。また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっているため , 取下げ要求が有効になっています。 333 第 11 章 割込みコントローラ ● 設定可能なレベル HRCL レジスタに設定可能な値は , ICR と同様に "10000B " から "11111B" までです。 "11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また , "10000B" に設定した場合は NMI でのみ取下げ要求を発生します。 表 11.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま す。 表 11.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定 HRCL レジスタ 取下げ要求発生となる割込みレベル 17 NMI, 割込みレベル 16 18 NMI, 割込みレベル 16, 17 ∼ NMI のみ ∼ 16 31 NMI, 割込みレベル 16 ∼ 30 [ 初期値 ] リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割 込みが発生していると DMA 転送は行われませんので , HRCL レジスタの値を必要な値 に設定してください。 ■ スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つで も発生すると , クロック制御部に対してストップモードからの復帰要求を発生します。 優先度判定部はストップ復帰後にクロックが供給されてから動作を再開しますので , 優先度判定部の結果が出るまでの間 , CPU は命令を実行します。 スリープ状態からの復帰においても同様に動作します。また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。 <注意事項> • NMI 要求でシャットダウンモードからの復帰はできません。 • NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効 な入力を検出するように NMI の設定を行ってください。 • ストップおよびスリープからの復帰の要因としない割込み要因は , 対応する周辺の制 御レジスタにて割込みレベルを "11111B" にしてください。 334 第 11 章 割込みコントローラ ■ ホールドリクエスト取下げ要求機能 (HRCL) の使用例 DMA 転送中に CPU が優先度の高い処理を行いたいときは , DMA に対してホールドリ クエストを取り下げさせ , ホールド状態を解除する必要があります。ここでは , 割込み を利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作を 実現します。 ● 制御レジスタ ① HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 本モジュール : 本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ ルを設定します。 ② ICR: 本モジュール : 使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し ます。 ● ハードウェア構成 図 11.3-1 に , ホールドリクエストの各信号の流れを示します。 図 11.3-1 ホールドリクエストの各信号の流れ 本モジュール IRQ バスアクセス要求 MHALTI I-ユニット DHREQ DMA DHREQ:D-busホールドリクエスト CPU B-ユニット (ICR) DHACK:D-busホールドアクノリッジ IRQ :割込み要求 (HRCL) DHACK MHALTI:ホールドリクエスト 取下げ要求 ● シーケンス 図 11.3-2 に , 割込みレベル HRCL < ICR (LEVEL) を示します。 図 11.3-2 割込みレベル HRCL < ICR (LEVEL) RUN CPU バスアクセス要求 DHREQ DHACK バスホールド 割込み処理 ① ② バスホールド(DMA転送) 割込みルーチンの例 ①割込み要因クリア ~ ②RETI IRQ LEVEL MHALTI 335 第 11 章 割込みコントローラ 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して MHALTI を "H" レベルにします。これによって , DMA はアクセス要求を取り下げ , CPU はホールド状態から復帰して割込み処理を行います。 図 11.3-3 に , 割込みレベル HRCL < ICR ( 割込みⅠ ) < ICR ( 割込みⅡ ) を示します。 図 11.3-3 INTC-3 割込みレベル HRCL < ICR ( 割込みⅠ ) < ICR ( 割込みⅡ ) RUN バスホールド 割込み I 割込み処理II ③ CPU ④ 割込み処理I バスホールド(DMA転送) ① ② バスアクセス要求 DHREQ DHACK IRQ1 IRQ2 LEVEL MHALTI 〔割込みルーチンの例〕 ① , ③割込み要因クリア ∼ ② , ④ RETI 上記の例では割込みルーチン I を実行中に , それよりも優先度の高い割込みが発生した 場合を示しています。 HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は , DHREQ はさがっています。 <注意事項> HRCL レジスタと ICR に設定する割込みレベルの関係には十分注意してください。 336 第 12 章 外部割込み制御部 外部割込み制御部の概要 , レジスタの構成 / 機能 , および動作について説明します。 12.1 外部割込み制御部の概要 12.2 外部割込み制御部のレジスタ 12.3 外部割込み制御部の動作説明 337 第 12 章 外部割込み制御部 外部割込み制御部の概要 12.1 外部割込み制御部は , INT 端子に入力される外部割込み要求の制御を行うブロックで す。検出する要求のレベル / エッジとして , 以下の 4 種類から選択できます。 • "H" レベル • "L" レベル • 立上りエッジ • 立下りエッジ ■ 外部割込み制御部のレジスタ一覧 図 12.1-1 に , 外部割込み制御部のレジスタ一覧を示します。 図 12.1-1 外部割込み制御部のレジスタ一覧 bit bit bit bit 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 外部割込み許可レジスタ (ENIR) 外部割込み要因レジスタ (EIRR) 要求レベル設定レジスタ (ELVR) ■ 外部割込み制御部のブロックダイヤグラム 図 12.1-2 に , 外部割込み制御部のブロックダイヤグラムを示します。 図 12.1-2 外部割込み制御部のブロックダイヤグラム R-bus 8 割込み 要求 17 割込み許可レジスタ ゲート 要因F/F 8 割込み要因レジスタ 16 338 要求レベル設定レジスタ エッジ検出回路 17 INT0~INT15 NMI 第 12 章 外部割込み制御部 12.2 外部割込み制御部のレジスタ 外部割込み制御部のレジスタ構成および機能について説明します。 ■ 外部割込み制御部のレジスタ詳細 外部割込み制御部のレジスタには , 以下の 3 種類があります。 • 割込み許可レジスタ (ENIR) • 外部割込み要因レジスタ (EIRR) • 外部割込み要求レベル設定レジスタ (ELVR) 339 第 12 章 外部割込み制御部 12.2.1 割込み許可レジスタ (ENIR) ENIR は外部割込み要求出力のマスク制御を行います。 ■ 割込み許可レジスタ (ENIR) のビット構成 図 12.2-1 に , 割込み許可レジスタのビット構成を示します。 図 12.2-1 割込み許可レジスタのビット構成 bit 7 6 5 4 3 2 1 0 ENIR0 アドレス : 000031H EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 初期値 00000000B [R/W] bit 7 6 5 4 3 2 1 0 ENIR1 アドレス : 000035H EN15 EN14 EN13 EN12 EN11 EN10 EN9 EN8 初期値 00000000B [R/W] このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の 許可を EN0 が制御 ) , 割込みコントローラに対して要求が出力されます。"0" が書かれ たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して は要求を発生しません。 340 第 12 章 外部割込み制御部 12.2.2 外部割込み要因レジスタ (EIRR) EIRR は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの 要求を示すフリップフロップ内容をクリアするレジスタです。 ■ 外部割込み要因レジスタ (EIRR) のビット構成 図 12.2-2 に , 外部割込み要因レジスタのビット構成を示します。 図 12.2-2 外部割込み要因レジスタのビット構成 bit EIRR0 アドレス : 000030H 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 初期値 00000000B [R/W] bit 15 14 13 12 11 10 9 8 EIRR1 アドレス : 000034H ER15 ER14 ER13 ER12 ER11 ER10 ER9 ER8 初期値 00000000B [R/W] この EIRR レジスタを読み出したとき , その値によって動作が以下のようになります。 "1" であった場合に , そのビットに対応する端子に外部割込み要求があることを示しま す。また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップ がクリアされます。 "1" の書込みは無効です。 リードモディファイライト (RMW) 系命令の読出し時には "1" が読み出されます。 341 第 12 章 外部割込み制御部 12.2.3 外部割込み要求レベル設定レジスタ (ELVR) ELVR は要求検出の選択を行うレジスタです。 ■ 外部割込み要求レベル設定レジスタ (ELVR) のビット構成 図 12.2-3 に , 外部割込み要求レベル設定レジスタのビット構成を示します。 図 12.2-3 外部割込み要求レベル設定レジスタのビット構成 bit 15 14 13 12 11 10 9 8 ELVR0 アドレス : 000032H LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 bit 7 000033H LB3 6 5 4 3 2 1 0 LA3 LB2 LA2 LB1 LA1 LB0 LA0 初期値 00000000B 初期値 00000000B [R/W] bit 15 14 13 12 11 10 9 8 ELVR1 アドレス : 000036H LB15 LA15 LB14 LA14 LB13 LA13 LB12 LA12 初期値 00000000B bit 7 6 5 4 3 000037H LB11 LA11 LB10 LA10 LB9 初期値 00000000B 2 1 0 LA9 LB8 LA8 [R/W] 各割込みチャネルに 2 ビットずつが割り当てられていて , 以下のような設定になりま す。 要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな らば該当するビットは再び設定されます。 表 12.2-1 に , ELVR 割当てを示します。 表 12.2-1 ELVR 割当て LBx, LAx 342 動 作 00B "L" レベルで要求あり [ 初期値 ] 01B "H" レベルで要求あり 10B 立上りエッジで要求あり 11B 立下りエッジで要求あり 第 12 章 外部割込み制御部 <注意事項> • STOPモードおよびシャットダウンモードからの復帰要因となる割込みに対して, エッ ジ検出の設定をすることはできません。 • 外部割込み要求レベルを変更すると , 内部で割込み要因が発生する場合がありますの で , 外部割込み要求レベル変更後に外部割込み要因レジスタ (EIRR) をクリアしてくだ さい。外部割込み要因レジスタをクリアする際は一度 , 外部割込み要求レベルレジスタ を読み出してからクリアの書込みを行ってください。 343 第 12 章 外部割込み制御部 12.3 外部割込み制御部の動作説明 外部割込み制御部の動作について説明します。 ■ 外部割込みの動作 要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要 求が入力されると , 本モジュールは割込みコントローラに対して割込み要求信号を発 生します。割込みコントローラ内で同時に発生した割込みの優先順位を識別した結果 , 本リソースからの割込みが最も優先順位が高かったときに , 該当する割込みが発生し ます。 図 12.3-1 に , 外部割込みの動作を示します。 図 12.3-1 外部割込みの動作 外部割込み リソース要求 ELVR 割込みコントローラ ICR y y EIRR ENIR CPU IL CMP ICR X X CMP ILM 要因 ■ 外部割込みの動作手順 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。 3. 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。 4. 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。 5. 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアする。 6. 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。 ただし , 5. と 6. は 16 ビットデータによる同時書込みが可能です。 本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態 に設定する必要があります。また , 許可レジスタをイネーブル状態にする前に必ず要因 レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態 時に誤って割込み要因が起こってしまうことを避けるためです。 344 第 12 章 外部割込み制御部 ■ 外部割込み要求レベル 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は 最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。 要求入力レベルがレベル設定のとき , 外部より要求入力が入って , その後 , 取り下げら れても内部に要因保持回路が存在するので , 割込みコントローラへの要求は有効のま まです。 割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり ます。 図 12.3-2 に , レベル設定時の要因保持回路のクリアを示します。 図 12.3-2 レベル設定時の要因保持回路のクリア 割込み入力 レベル検出 要因 F/F (要因保持回路) 許可ゲート 割込み コントローラ クリアしない限り要因を保持し続ける 図 12.3-3 に , 割込み許可時の割込み要因と割込みコントローラへの割込み要求を示し ます。 図 12.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求 割込み入力 "H"レベル 割込みコントローラ への割込み要求 要因F/Fのクリアによって無効となる 345 第 12 章 外部割込み制御部 ■ 外部割込みを使用した STOP 状態からの復帰時における注意事項 STOP 状態時に , INT 端子へ最初に入力された外部割込み信号は非同期で入力され , STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち 時間が経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない 期間が存在します ( 図 12.3-4 の b + c + d 期間 )。STOP 解除後の外部入力信号を内部 クロックに同期させるため , クロックが安定していない期間内は , その割込み要因を保 持できないためです。 STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に外部割込み 信号を入力してください。 図 12.3-4 STOP 状態からの外部割込みによる復帰動作のシーケンス INT1 INT0 内部STOP 12µs "H" "L" Regulator 内部動作(RUN) 命令実行(run) X0 内部Clock 割込みフラグクリア INTR0 INTE0 "1"(STOPモードに遷移前にイネーブルへ設定) INTR1 INTE1 “1”(STOPモードに遷移前にイネーブルへ設定) (a)STOP (b) レギュレータ安定待ち時間 (d) 発振安定待ち時間 (c)振動子の発振時間 346 (e)RUN 第 12 章 外部割込み制御部 ■ STOP 状態からの復帰動作 現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。 ● STOP 遷移前の処理 外部割込みの設定 デバイスが STOP 状態に遷移する前に STOP 状態を解除するための外部割込み入力 経路を設定しておく必要があります。これは PFR レジスタ (Port Function Register) で設定を行います。通常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態 ですので意識する必要はありません。しかし ,STOP 状態では PFR レジスタ値によ り入力パスが制御されています。 外部割込みの入力 STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状 態となっています。この割込み入力が有効になると直ちに内部 STOP 信号を立ち下 げる動作が行われます。同時に外部割込み回路では , ほかのレベル割込み入力の同 期化を行うように切り換わります。 ● レギュレータ安定待ち時間 内部 STOP 信号が立ち下ると STOP 時のレギュレータから RUN 時のレギュレータ へ切り換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前 に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間 を確保しています。この期間はクロックが停止しています。 ● 振動子の発振時間 レギュレータ安定待ち時間の終了後 , クロックの発振が開始されます。振動子の発 振時間は使用される振動子により異なります。 ● 発振安定待ち時間 振動子の発振時間後にデバイス内部で発振安定待ち時間が確保されます。発振安定 待ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安 定待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が 開始されるとともに , STOP 状態からの復帰要因以外の外部割込み要因が受付け可 能になります。 <注意事項> INT0 ∼ INT15 に対して , 外部で "H" 入力にしている状態から , ① PFR で割込み端子設定。 ② 割込み検出レベルを "L" レベルに設定 ③ 割込み許可 と操作した場合 , 外部から "L" を入れていない場合でも要求フラグ EIRR がセットされま す。これを回避するためには , ②と③の間で EIRR のクリア処理を行ってください。 347 第 12 章 外部割込み制御部 348 第 13 章 MPU / EDSU メモリ保護機能およびエンベデッド・デバッグサ ポート機能について説明します。 13.1 概要 13.2 ブレーク機能 13.3 EDSU レジスタ 13.4 クイックリファレンス 349 第 13 章 MPU / EDSU 13.1 概要 MB91F467R にはメモリ保護ユニット (MPU) および内蔵デバッグサポートユニット (EDSU) が搭載されています。MB91461 には搭載されていません。 <注意事項> MPU/EDSU モジュールには , クロック無効化機能があります。MPU/EDSU モジュールを 有効にするには , CSCFG レジスタの EDSUEN ビットを設定する必要があります。 MPU/EDSU は , " コンパレータグループ " 単位で拡張可能です。このグループは最大 8 個まで定義できます。コンパレータグループの特長を以下に示します。 • 合計 4 つのブレークポイントは , 以下のようにプログラムできます。 - 命令アドレスブレークポイント × 4 - オペランドアドレスブレークポイント × 4 ( データサイズおよびアクセスタイプ でプログラム可能 ) - オペランドアドレスブレークポイント × 2 および命令アドレスブレークポイント × 2 - オペランドアドレスブレークポイント × 2 およびデータ値ブレークポイント × 2 • 割当て可能なマスク × 2 ( ブレークポイントの数を減らします ) • 範囲機能 × 2 • リソース割込みでプログラム可能なブレークトリガ • MPU 機能 - ユーザおよびスーパバイザの読出し / 書込み / 実行の許可 - MCU アドレス範囲全体に対するデフォルトの許可 - コンパレータグループごとの 2 つのアドレス範囲の許可定義 (8 グループは 16 MPU チャネルになります ) - D-bus およびリソースアドレス領域で DMA アクセスを検出できます - レジスタセットはユーザモードでロックされます - 動的構成可能な , INT #5 による特権構成は割込み不可です - 許可違反によって MPUPV トラップが発生します • 命令アドレスおよびオペランドアドレスのキャプチャレジスタ (MPU およびオペラ ンドブレーク用 ) • MPU チャネルインデックス , DMA フラグ , オペランドサイズ , アクセスタイプの キャプチャ情報 350 第 13 章 MPU / EDSU ブレーク機能 13.2 各ブレークポイントとメモリ保護の特長について説明します。 コンパレータグループ 1 つにつき最大 4 つのブレークポイントがあります。1 つのグ ループは 2 つの範囲コンパレータで構成され , 2 つのポイントレジスタをマスク情報と して使用するオプションがあります。 以下の特長を部分的に組み合せることができます。 ■ 特長 ● 命令アドレスブレークポイント 最大 4 つの命令アドレスブレークポイントが定義できます。 2 つの命令ブレークポイントをマスクし , ほかの 2 つのレジスタはマスクレジスタとして 動作します。2 つのポイントおよび 1 つのマスクレジスタで構成されているブレークア ドレス範囲もマスク可能です。 命令ブレークポイントの 2 つの絶対アドレス範囲は , 4 つの命令ブレークポイントレジ スタのうち 2 つまたは 4 つが割り当てられている場合に定義できます。 ● オペランドアドレスブレークポイント 最大 4 つのオペランドアドレスブレークポイントが定義できます。 2 つのオペランドブレークポイントをマスクし , ほかの 2 つのレジスタはマスクレジス タとして動作します。2 つのポイントおよび 1 つのマスクレジスタで構成されているブ レークアドレス範囲もマスク可能です。 オペランドブレークポイントの 2 つの絶対アドレス範囲は , 4 つのオペランドブレーク ポイントレジスタのうち 2 つまたは 4 つが割り当てられている場合に定義できます。 オペランドブレークは , アクセスタイプ ( 読出し , 読出し / 変更 / 書込み , 書込み ) の データサイズ ( バイト , ハーフワード , ワード ) に対して選択できます。 ● オペランドデータ値ブレークポイント 最大 2 つのオペランドデータ値ブレークポイントが定義できます。 1 つのデータ値範囲の定義が可能です。 1 つのデータ値ブレークポイントをマスクレジスタとして定義することによって , もう 1 つのポイントをマスクできます。 オペランドアドレスおよびデータ値ブレークポイントを , トリガ条件の組合せに切り 換えることができます。 ● メモリ保護 メモリ保護モードで動作するように , 2 つのチャネル / 範囲を定義できます。 2 つのオペランドアドレス範囲 , 2 つの命令アドレス範囲 , または 1 つのオペランドア ドレス範囲と 1 つの命令アドレス範囲の組合せの保護が可能です。 通常のユーザモードおよびスーパバイザモードの両方について , 読出し / 書込みまたは 実行許可をチャネルごとに定義できます。 351 第 13 章 MPU / EDSU 13.2.1 命令アドレスブレーク 命令アドレスブレークは最大 4 つのブレークポイントが定義できます。命令アドレ スブレークの設定について説明します。 命令アドレスブレークは最も基本的なブレークであり , ブレークアドレスデータレジ スタ BAD3 ∼ BAD0 によって指定されたアドレスで命令がフェッチされたときに発生 します。制御レジスタ BCR0 の CTC1, CTC0 ビットを "00B" に設定すると , このモード になります。BCR0 のビット EP3 ∼ EP0 では , ブレークポイントが許可されています。 ch.0 ∼ ch.3 の最大 4 つの命令ブレークポイントを設定できます。すべての命令ブレーク イベントは , CPU への命令ブレーク例外要求に OR されます。 ■ マスクレジスタの設定 ブレークアドレスデータレジスタのうち 2 つは , フェッチされている命令アドレスをマ スクするためのマスクレジスタ (BAD0, BAD2) として動作できます。マスクレジスタ BAD0 は BAD1 ( 同じチャネル ) または BAD2/BAD3 ( 反対のチャネル ) に割り当てるこ とができ , マスクレジスタ BAD2 は BAD3 または BAD0/BAD1 に割り当てることができ ます。 通常, 命令ブレークアドレスとマスク情報は同じチャネルにあります。このため, BAD3 には命令ブレークアドレスと BAD2 アドレスマスク情報が含まれます。チャネルは EP3 で有効化されます。チャネル BAD1 ( アドレス ) , BAD0 ( マスク ) , EP1 ( 有効化 ) につい ても同様です。 BAD2 は命令アドレス情報を保持し , アドレスマスクを運ぶことはできません。この場 合 , ポイント 2 (EP2) または範囲機能 (ER1) を有効化することで , マスク情報は BAD0 レジスタから取得されます。EP0 および ER0 についても同様で , マスク情報は BAD2 レジスタから取得されます。 例: CTC00 タイプ : 命令アドレスブレーク EP11 : ブレークポイントアドレス BAD1 を許可します。 EM01 : ブレークアドレス BAD1 のマスク BAD0 を設定します。 BAD1 : 12345678H ブレークアドレスを設定します。 BAD0 : 00000FFFH ブレークマスクを設定します。 12345000H ∼ 12345FFFH でブレークが発生します。 BAD3 ∼ BAD0 のブレークでは , ブレーク割込み要求レジスタ BIRQ の各フラグ BD3 ∼ BD0 が "1" に設定されます。 これらのフラグは , 命令ブレークルーチンのソフトウェアでリセットする必要があり ます。 352 第 13 章 MPU / EDSU ■ アドレス範囲一致機能の設定 制御レジスタ BCR0 の ER0 ビットを "1" に設定すると , ch.0 および ch.1 (BAD0, BAD1) は , アドレス範囲一致として機能します。アドレス比較では , BAD0 が下位アドレスで , BAD1 が上位アドレスです。EM0 = 1 によってマスク機能が許可されている場合 , マス クレジスタ BAD2 が ch.0 および ch.1 をマスクします。 また , 制御レジスタ BCR0 の ER1 ビットを "1" に設定すると , ch.2 および ch.3 (BAD2, BAD3) をアドレス範囲一致として機能します。アドレス比較では , BAD2 が下位アド レスで , BAD3 が上位アドレスです。EM1 = 1 によってマスク機能が許可されている 場合 , マスクレジスタ BAD0 が ch.2 および ch.3 をマスクします。 例: CTC00:タイプ : 命令アドレスブレーク EP01:ブレークポイントアドレス BAD0 を許可します。 EP11:ブレークポイントアドレス BAD1 を許可します。 ER01:BAD0, BAD1 でのアドレス範囲機能を許可します。 EM01:ブレークアドレス BAD1 のマスク BAD0 を設定します。 BAD0:12345200H 下位ブレークアドレスを設定します。 BAD1:12345300H 上位ブレークアドレスを設定します。 BAD2:F0000000H ブレークマスクを設定します。 02345200H ∼02345300H, または12345200H ∼12345300H, または 22345200H ∼22345300H などでブレークが発生します。 BD1, BD0 状態ビットの結果設定は , ブレークが発生した各領域を示しています。 表 13.2-1 命令ブレーク検出状態ビット (BD) BD1 BD0 0 1 1 0 1 1 ブレーク検出アドレス 始点ポイントで一致 ( 命令アドレス = 12345200H または命令アドレス = 22345200H など ) 終点ポイントで一致 ( 命令アドレス = 12345300H または命令アドレス = 22345300H など ) 範囲で一致 (12345200H < 命令アドレス < 12345300H または 22345200H < 命令ア ドレス < 22345300H など ) 命令アドレスブレークモードでは , 以下の重要事項を考慮する必要があります。 ブレークが発生する命令アドレスを正確に判別するには , 命令ブレーク割込みサービス ルーチンへのエントリ中にスタックに保存された PC 値を使用します。 353 第 13 章 MPU / EDSU 13.2.2 オペランドアドレスブレーク オペランドアドレスブレークポイントは最大 4 つのブレークポイントが定義できま す。オペランドアドレスブレークの設定について説明します。 オペランドアドレスブレークは , オペランドアドレスブレークレジスタ BAD3 ∼ BAD0 によって指定できるデータアクセスアドレスに対してブレークが発生します。制御レ ジスタ BCR0 の CTC1, CTC0 ビットを "01" に設定すると , このモードになります。BCR0 のビット EP3 ∼ EP0 では , ブレークポイントが許可されています。 ch.0 ∼ ch.3 の最大 4 つのブレークポイントを設定できます。すべてのオペランドブレーク イベントは , CPU へのオペランドブレーク例外割込み要求に OR されます。 命令アドレスブレークについて「13.2.1 命令アドレスブレーク」に記述されているこ とは , アドレスマスク機能についても同様です。 例: CTC 01 タイプ : オペランドアドレスブレーク EP11 : ブレークポイントアドレス BAD1 を許可します。 EM01 : ブレークアドレス BAD1 のマスク BAD0 を設定します。 BAD1 12345678H : ブレークアドレスを設定します。 BAD0 00000FFFH : ブレークマスクを設定します。 12345000H ∼ 12345FFFH でブレークが発生します。 BAD3 ∼ BAD0 のブレークでは , ブレーク割込み要求レジスタ BIRQ の各フラグ BD3 ∼ BD0 が "1" に設定されます。これらのフラグは , オペランドブレーク例外ルーチンのソ フトウェアでリセットする必要があります。 ■ アドレス範囲の一致機能の設定 制御レジスタ BCR0 の ER0 ビットを "1" に設定すると , ch.0 および ch.1 (BAD0, BAD1) は , アドレス範囲一致として機能します。アドレス比較では , BAD0 が下位アドレスで , BAD1 が上位アドレスです。EM0 = 1 によってマスク機能が許可されている場合 , マス クレジスタ BAD2 が ch.0 および ch.1 をマスクします。 また , 制御レジスタ BCR0 の ER1 ビットを "1" に設定すると , ch.2 および ch.3 (BAD2, BAD3) をアドレス範囲一致として機能します。アドレス比較では , BAD2 が下位アドレ スで , BAD3 が上位アドレスです。EM1 = 1 によってマスク機能が許可されている場合 , マスクレジスタ BAD0 が ch.2 および ch.3 をマスクします。 例: CTC01:タイプ : オペランドアドレスブレーク EP01 :ブレークポイントアドレス BAD0 を許可します。 EP11 :ブレークポイントアドレス BAD1 を許可します。 354 第 13 章 MPU / EDSU ER01 :BAD0, BAD1 でのアドレス範囲機能を許可します。 EM01:BAD0, BAD1 でのアドレスマスク機能を許可します。 BAD0:12345200H 下位ブレークアドレスを設定します。 BAD1:12345300H 上位ブレークアドレスを設定します。 BAD2:F0000000H ブレークマスクを設定します。 02345200H ∼ 02345300H, または 12345200H ∼ 12345300H, または 22345200H ∼ 22345300H などでブレークが発生します。 BD1, BD0 状態ビットの結果設定は , ブレークが発生した各領域を示しています。 表 13.2-2 オペランドブレーク検出状態ビット (BD) BD1 BD0 0 1 始点ポイントで一致 ( オペランドアドレス = 12345200H またはオペランドアド レス = 22345200H など ) 1 0 終点ポイントで一致 ( オペランドアドレス = 12345300H またはオペランドアド レス = 22345300H など ) 1 1 範囲で一致 (12345200H < オペランドアドレス < 12345300H または 22345200H < オペランドアドレス < 22345300H など ) ブレーク検出アドレス 制御レジスタ BCR0 のビット OBS1, OBS0 および OBT1, OBT0 によって , アクセスデータ 長および読出し / 書込みブレーク属性を指定することもできます。EM1 = EM0 = 0 ( す べてのビットが有効 ) を設定することによってマスク機能が無効になっている場合 , ブ レークポイント設定とアクセスアドレスによるブレークとの関係を以下に示します。 表 13.2-3 オペランドサイズとオペランドアドレスの関係 アクセス データ長 アクセス アドレス BOA0, BOA1 に設定されるアドレス 4n + 0 4n + 1 4n + 2 4n + 3 4n + 0 ヒット − − − 4n + 1 − ヒット − − 4n + 2 − − ヒット − 4n + 3 − − − ヒット 4n + 0 ヒット ヒット − − 4n + 1 ヒット ヒット − − 4n + 2 − − ヒット ヒット 4n + 3 − − ヒット ヒット 4n + 0 ヒット ヒット ヒット ヒット 4n + 1 ヒット ヒット ヒット ヒット 4n + 2 ヒット ヒット ヒット ヒット 4n + 3 ヒット ヒット ヒット ヒット 8 ビット 16 ビット 32 ビット 355 第 13 章 MPU / EDSU オペランドアドレスブレークモードでは , ブレークを発生させたオペランドアドレス は BOAC レジスタに取り込まれます。追加の BIAC は , ブレークによるデータ処理の 1 サイクル前に実行された命令の命令アドレスを保持します。これは通常 , データ転送 の原因となった命令です。 オペランドアドレスブレークでは , 以下の重要事項を考慮する必要があります。 1. FRファミリアーキテクチャでは, データアクセスがミスアラインメントで実行された 場合 , 下位アドレス bit0 はハーフワードで無視され , 下位アドレス bit0 および bit1 は ワードアクセスで無視されます。それに応じてマスクレジスタをプログラムできま す。 2. EDSU オペランドブレークは , ブレークイベントを発生させる命令の実行完了直後 に常に発生するわけではありません。 3.「13.2.4 データブレークでのオペランドの使用」も参照してください。 356 第 13 章 MPU / EDSU 13.2.3 データ値ブレーク データ値ブレークポイントは最大 2 つのポイントが定義できます。データ値ブレー クポイントの設定について説明します。 CPU によって指定されたアドレスへのデータアクセスで , 指定されたデータが読み出 されるか , または書き込まれた場合 , データ値ブレークによってブレークが発生しま す。データは , データ値ブレークレジスタ BAD0 および BAD1 によって指定できます。 制御レジスタ BCR0 の CTC1, CTC0 ビットを "11B" に設定すると , このモードになりま す。BCR0 のビット EP0 および EP1 によって , ブレーク条件が有効になります。 ch.0, ch.1 の最大 2 つのブレークポイントを設定でき , すべてのデータ値ブレークイベン トは , CPU へのオペランドブレーク例外に OR されます。 1 マスクレジスタ (BAD0) を (BAD1 に格納されている ) データ値のマスクに使用でき , 1 マス クレジスタ (BAD2) をアクセスされているオペランドアドレス (BAD3) のマスクに使用で きます。 マスクレジスタBAD2およびBAD0は, EM1およびEM0によって有効化できます。 ブレークが実行されるデータは , バス上のデータマスクによってマスクされている必 要があります。アドレスおよびデータ長を考慮すると , 32 ビット設定が必要です。( 表 13.2-4 参照 ) 。これは , オペランドのバイト位置がオペランドアドレスから依存してい るためです。制御レジスタ BCR0:OBS1, OBS0 のデータ長の設定は , すべて無視に構成 できます。データ長は , 暗黙的に BAD0 レジスタに設定するマスクによって制御可能 です。 BAD1, BAD0のブレークでは, ブレーク割込み要求レジスタBIRQの各フラグBD1, BD0 が "1" に設定されます。これらのフラグは , オペランドブレーク例外ルーチンのソフト ウェアでリセットする必要があります。 オペランドデータ値ブレークでは , ブレークを発生させたオペランドアドレスが BOAC レジスタに取り込まれます。追加の BIAC は , ブレークによるデータ処理の 1 サ イクル前に実行された命令のアドレスを保持します。これは通常 , データ転送の原因と なった命令です。 データ値ブレークモードでは , 以下の重要事項を考慮する必要があります。 1. データ値ブレークは , DMA 転送のマッチングに対しても実行されます。これは , 並 列処理のために予期しない動作につながる場合があります。専用の調査のために フィルタビット FDMA および FCPU を設定できます。 2. EDSU データブレークは , ブレークイベントを発生させる命令の実行完了直後に常 に発生するわけではありません。 3.「13.2.4 データブレークでのオペランドの使用」も参照してください。 357 第 13 章 MPU / EDSU 表 13.2-4 BAD レジスタとマスクの関係 BAD0 に設定される MASK BAD1/BAD0 の有 効なデータの位置 (* で示す ) 4n + 0 00FFFFFFH **-- ---- 4n + 1 FF00FFFFH --** ---- 4n + 2 FFFF00FFH ---- **-- 4n + 3 FFFFFF00H ---- --** 4n + 0 0000FFFFH **** ---- 4n + 1 0000FFFFH **** ---- 4n + 2 FFFF0000H ---- **** 4n + 3 FFFF0000H ---- **** 4n + 0 00000000H **** **** 4n + 1 00000000H **** **** 4n + 2 00000000H **** **** 4n + 3 00000000H **** **** BAD3/BAD2 に設定される アドレス アクセス データ長 8 ビット 16 ビット 32 ビット 備考 アドレス bit0 に対して BAD3 のアドレスマスクを 使用する可能性がありま す。 アドレス bit1 および bit0 に対して BAD3 のアドレ スマスクを使用する可能 性があります。 データマスクは必要なく , 2 つのチャネルが使用でき ます。 <注意事項> 1. 表内の BAD0 レジスタのマスク値は , ビットの最小セットです。より多くのマスクビッ トを設定すると , 不要なマスクビットは転送データと比較されます。 2. "BAD1, BAD0 の有効なデータの位置 " は , 左側の MSB および右側の LSB の 8 ビット 16 進イメージを示します。BAD1, BAD0 レジスタ内の * で示されるビット位置のデー タは , アクセスデータ長およびアクセスアドレスに従って , データバス上のデータと比 較されます。 358 第 13 章 MPU / EDSU 13.2.4 データブレークでのオペランドの使用 データ値ブレークとオペランドアドレスブレークを併用するときの設定について説 明します。 EP3 と EP1 の組合せ , または EP2 と EP0 の組合せ , あるいはその両方を設定し , CTC = 11B, COMB = 1 に設定することで , データ値ブレークとオペランドアドレスブレーク を一緒に使用することができます。 つまり , BAD2 のオペランドアドレスの一致と BAD0 のデータ値の一致で , ch.0 でのブ レークが発生します。また ,BAD3 のオペランドアドレスでの一致と BAD1 のデータ値 での一致で , ch.1 でのブレークが発生します。逆の場合は発生しません。 ブレークで , BD0 と BD2 の両方 , それぞれの BD1 および BD3 が設定されます。これ らのフラグは , オペランドブレーク例外ルーチンのソフトウェアでリセットする必要 があります。 表 13.2-5 オペランドアドレスブレークとデータ値ブレークの組合せ EP3/EP2 EP1/EP0 COMB 0 0 0 ブレーク検出なし 0 1 0 独立したデータブレーク ( 任意のオペランドアドレスでの値の一致 ) 1 0 0 独立したオペランドブレーク ( オペランドアドレスの一致 ) 1 1 0 独立したデータブレークおよびオペランドブレーク 0 0 1 ブレーク検出なし 0 1 1 ブレーク検出なし 1 0 1 ブレーク検出なし 1 1 1 データ値ブレーク ( オペランドアドレスと値の両方の一致 ) 機能 359 第 13 章 MPU / EDSU メモリ保護 13.2.5 メモリ保護について説明します。 オペランドアドレスと命令アドレスのアドレス範囲コンパレータを利用するために , メモリ保護ユニット (MPU) と同じコンパレータハードウェアを使用する必要があり ます。 以下の表に , メモリ保護に使用できるタイプ構成を示します。ブレークポイントおよび MPU チャネルの数は , 8 つのコンパレータグループに実装できます。 表 13.2-6 コンパレータタイプ構成 最大ブレークポイント (MPE = 0) CTC CMP1 入力 CMP0 入力 00 IA IA 命令ブレーク × 32 実行許可がある範囲 × 16 01 OA OA オペランドブレーク × 32 読出し / 書込み許可がある範囲 × 16 10 OA IA 16 + 16 IA/OA ブレーク 読出し / 書込みおよび実行許可がある範囲 × 8 または 8 + 8 独立範囲 11 OA DT データ値ブレーク × 16 最大 MPU チャネル (MPE = 1) − 既存の機能に加え , リードモディファイライト (RMW) 系命令を含むオペランドブレー クサイズや OBS/OBT のタイプに対応するバスをユーザで読出し / 書込み / 許可を設定 できるよう拡張しています。 シンボルインデックスの指定によって , コンパレータチャネル CMP1 および CMP0 に個 別に許可を設定できます。 表 13.2-7 許可構成ビットの意味 シンボル データモード (OA) SRX1, SRX0 スーパバイザ読出し許可 SW1, SW0 スーパバイザ書込み許可 URX1, URX0 ユーザ読出し許可 UW1, UW0 ユーザ書込み許可 命令モード (IA) スーパバイザ実行許可 − ユーザ実行許可 − 命令の実行またはオペランドへのアクセスが行われるたびに , 実際の有効な許可が決 まります。この設定は , オペランドアクセス (OA ベース ) とコード実行 (IA ベース ) に 分けられます。 部分ごとに , 優先順位の最も高い領域ヒットが検索されます。最も大きいチャネル番号 の優先順位が最も高くなります。チャネルヒットが見つかった場合 , このチャネルに対 して定義されている許可が適用されます。チャネルヒットが検出されなかった場合 , デ フォルトの許可が適用されます。 360 第 13 章 MPU / EDSU 許可が設定された後 ( もしデータアクセスがある場合 , 実際の命令に対して有効 ) , アク セスの確認が行われます。実行許可が設定されていない場合 , または読出しまたは書込 み許可が実際のアクセスの種類と合わない場合 , 保護違反が示されます。これにより , メ モリ保護違反 MPUPV 処理ルーチンへの CPU トラップが発生します。この場合 , CPU はスーパバイザモードに直接切り換わります。 EDSUの構成レジスタ空間は, ユーザモードでのランダムアクセスに対して保護されま す。スーパバイザモードまたはエミュレーションモードでのみ , レジスタファイルは書 込みアクセスを許可します。この割込みは , システム割込み INT #5 が定義されます。 これは , スーパバイザモードで切換えを行います (INT #5-ISR の実行中 , SV ビットは設 定されたままです ) 。エミュレータおよび NMI によるデバッガ割込みを除き , スーパ バイザ ISR は割込み不可です。 メモリ保護およびデバッグ用のブレークユニットによって発生する例外は , 分離され ています。このため , メモリ保護機能自体をデバッグできます。 361 第 13 章 MPU / EDSU 13.2.6 ブレーク要因 ブレーク要因と割込みベクタの関係について説明します。 内部ブレーク要因および実行されるイベントの概要 : 命令アドレスでのブレーク → 命令ブレークが発生します。 オペランドアドレスでのブレーク → オペランドブレークが発生します。 データ値でのブレーク → オペランドブレークが発生します。 リソース割込み (BREAK) → ツール NMI が発生します。 ステップトレーストラップ → ステップトレーストラップが発生します。 INTE 命令の実行 → INTE が発生します。 INT #5 の実行 → CPU スーパバイザモード メモリ保護例外 → MPUPV トラップが発生します。 表 13.2-8 に , ブレーク要因の割込み番号および割込みベクタを示します。 表 13.2-8 ブレーク要因の割込み番号および割込みベクタ 割込み番号 割込み 割込みレベル 割込みベクタ 10 進 16 進 設定 レジスタ CPU スーパバイザ モード (INT #5 命令 ) 5 05 − − 3E8H 000FFFE8H メモリ保護例外 6 06 − − 3E4H 000FFFE4H INTE 命令 9 09 − − 3D8H 000FFFD8H 命令ブレーク 例外 10 0A − − 3D4H 000FFFD4H オペランドブレーク 例外 11 0B − − 3D0H 000FFFD0H ステップトレース トラップ 12 0C − − 3CCH 000FFFCCH NMI 割込み ( ツール ) 13 0D − − 3C8H 000FFFC8H 362 レジスタ デフォルトベクタ オフセット アドレス アドレス 第 13 章 MPU / EDSU 13.3 EDSU レジスタ EDSU レジスタのビット構成や機能について説明します。 表 13.3-1 EDSU レジスタの概要 (1 / 3) レジスタ アドレス ブロック +0 +1 +2 F000H BCTRL [R/W] -------- -------- 11111100 00000000 F004H BSTAT [R/W0]* -------- -----000 00000000 10--0000 F008H BIAC [R] 00000000 00000000 00000000 00000000 F00CH BOAC [R] 00000000 00000000 00000000 00000000 F010H BIRQ [R/W] 00000000 00000000 00000000 00000000 F014H ∼ F01FH reserved - F020H BCR0 [R/W] -------- 00000000 00000000 00000000 F024H BCR1 [R/W] -------- 00000000 00000000 00000000 F028H BCR2 [R/W] -------- 00000000 00000000 00000000 F02CH BCR3 [R/W] -------- 00000000 00000000 00000000 F030H BCR4 [R/W] -------- 00000000 00000000 00000000 F034H BCR5 [R/W] -------- 00000000 00000000 00000000 F038H BCR6 [R/W] -------- 00000000 00000000 00000000 F03CH BCR7 [R/W] -------- 00000000 00000000 00000000 F040H ∼ F07FH +3 EDSU reserved - 363 第 13 章 MPU / EDSU 表 13.3-1 EDSU レジスタの概要 (2 / 3) レジスタ アドレス ブロック +0 +1 +2 +3 F080H BAD0 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F084H BAD1 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F088H BAD2 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F08CH BAD3 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F090H BAD4 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F094H BAD5 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F098H BAD6 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F09CH BAD7 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0A0H BAD8 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0A4H BAD9 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0A8H BAD10 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0ACH BAD11 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0B0H BAD12 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0B4H BAD13 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0B8H BAD14 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0BCH BAD15 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX EDSU 364 第 13 章 MPU / EDSU 表 13.3-1 EDSU レジスタの概要 (3 / 3) レジスタ アドレス ブロック +0 +1 +2 +3 F0C0H BAD16 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0C4H BAD17 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0C8H BAD18 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0CCH BAD19 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0D0H BAD20 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0D4H BAD21 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0D8H BAD22 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0DCH BAD23 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0E0H BAD24 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0E4H BAD25 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0E8H BAD26 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0ECH BAD27 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0F0H BAD28 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0F4H BAD29 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0F8H BAD30 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX F0FCH BAD31 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX EDSU *: 読出しによって "1" が返されます。書込みの場合 , "0" ( クリア ) のみ有効です。 <注意事項> すべてのレジスタに対する読出し / 書込みアクセスは , バイト , ハーフワード , およびワー ドになります。 365 第 13 章 MPU / EDSU 13.3.1 EDSU 制御レジスタ (BCTRL) EDSU 制御レジスタ (BCTRL) のビット構成や機能について説明します。 図 13.3-1 EDSU 制御レジスタ (BCTRL) のビット構成 EDSU 制御レジスタバイト 2 bit アドレス : F002H 15 14 13 12 11 10 9 8 SR SW SX UR UW UX FCPU FDMA 読出し / 書込み → (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (0) (0) 初期値 → bit EDSU 制御レジスタバイト 3 アドレス : F003H 読出し / 書込み → 初期値 → 7 6 EEMM PFD 5 4 SINT1 SINT0 3 2 − EINT0 1 0 EINTT EINTR (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) EDSU 制御レジスタ (BCTRL) は , MCU のメモリ全体および I/O アドレス範囲の最低優 先順位のアクセス許可が定義されます。最低優先順位とは , MPU モードの動作で , 専 用チャネル構成の対象ではないすべてのアドレス領域についてアクセスが有効となる ことを意味します。スーパバイザモード (SV = 1) および通常のユーザモード (SV = 0) について , 初期値の読出し , 書込み , 実行許可を定義できます。スーパバイザモード (SV) は , CPU のプログラムステータスワード内の CCR の bit6 によって示されます。 INIT 条件の後で , すべての許可が設定されます ( 許可されたアクセス ) 。 [bit15] SR : スーパバイザ初期値読出し許可レジスタ 0 スーパバイザはデータの読出しを許可されません。 1 スーパバイザはデータの読出しを許可されます ( 初期値 ) 。 [bit14] SW : スーパバイザ初期値書込み許可レジスタ 0 スーパバイザはデータの書込みを許可されません。 1 スーパバイザはデータの書込みを許可されます ( 初期値 ) 。 [bit13] SX : スーパバイザ初期値実行許可レジスタ 366 0 スーパバイザはコードの実行を許可されません。 1 スーパバイザはコードの実行を許可されます ( 初期値 ) 。 第 13 章 MPU / EDSU [bit12] UR : ユーザ初期値読出し許可レジスタ 0 ユーザはデータの読出しを許可されません。 1 ユーザはデータの読出しを許可されます ( 初期値 ) 。 [bit11] UW : ユーザ初期値書込み許可レジスタ 0 ユーザはデータの書込みを許可されません。 1 ユーザはデータの書込みを許可されます ( 初期値 ) 。 [bit10] UX : ユーザ初期値実行許可レジスタ 0 ユーザはコードの実行を許可されません。 1 ユーザはコードの実行を許可されます ( 初期値 CPU および DMA フィルタオプションレジスタ [bit9] FCPU : フィルタ CPU アクセス 0 CPU アクセスでトリガします ( 初期値 ) 。 1 CPU アクセスでトリガしません。 FCPU は , オペランドコンペアチャネル ( オペランドアドレスブレーク , データ値ブ レーク , メモリデータ保護 ) によってトリガされた CPU アクセスのフィルタ動作を 制御します。 FCPU が "1" に設定された場合 , すべての CPU アクセスはマスクアウトされます。 "0" に設定された場合 , CPU アクセスによってブレーク機能を発生させることがで きます。 [bit8] FDMA : フィルタ DMA アクセス 0 DMA アクセスでトリガします ( 初期値 ) 。 1 DMA アクセスでトリガしません。 FDMA は , オペランドコンペアチャネル ( オペランドアドレスブレーク , データ値ブ レーク , メモリデータ保護 ) によってトリガされた DMA アクセスのフィルタ動作を 制御します。 FDMA が "1" に設定された場合 , すべての DMA アクセスはマスクアウトされます。 "0" に設定された場合 , DMA アクセスによってブレーク機能を発生させることがで きます。 367 第 13 章 MPU / EDSU <注意事項> D-bus 上の DMA アクセスのみが検出されます。DMA トリガ条件のオペランドが , D-bus アドレス領域に配置されている必要があります 。配置されていない場合は , DMA 転送は EDSU によって認識されません。この機能は , 主に DMA アクセスでのトリガを無効にする (DMA によるオペランド変更条件をフィルタアウトする ) ためにあります。 [bit7] EEMM : エミュレーションモードの許可 0 エミュレーションモードを禁止します ( 初期値 ) 。 1 エミュレーションモードを許可します。 EEMM が "1" に設定されている場合 , ステップトレースモードおよび EDSU 例外命 令ブレーク , オペランドブレーク , ツール NMI 中にエミュレーションモードに入り ます。エミュレーションモード中は , ウォッチドッグタイマ (WDT) は無効になりま す。EDSU でトリガされたエミュレーションモードは , RETI 命令によって残されま す。 "0" を設定すると , エミュレーションモード機能は禁止されます。ステップトレース または EDSU 例外で WDT は停止されません。 [bit6] PFD : ファントムフィルタ禁止 0 命令ブレーク検出によってファントムフィルタが使用されます ( 初期値 ) 。 1 ファントムフィルタは禁止されます。 初期値 (PFD = 0) は , 見かけの割込みや間違ったビットが発生したときにフィルタ アウトするために使用します。 • RETI の実行後にフェッチされた命令は , 通常は , ブレークポイントが設定された命 令です。フェッチは , ブレークポイント ISR の処理後 , ブレークポイント命令の実 行前に繰り返されます。フィルタによって , ブレーク条件のトリガの繰返しが回避 されます。 • 認められていない命令ブレーク例外はタイムオーバーになります。 - プリフェッチされたが , 実行されていないコマンド - 遅延スロット命令後のコマンド • プリフェッチされた連続ブレーク条件は , フラグの設定が許可されません。ブレー ク条件が初めて発生した命令のみ , それに応じた状態ビットを設定できます。 • ネストされた命令ブレークは許可されません ( ブレーク処理 ISR 内のブレーク ) 。 368 第 13 章 MPU / EDSU [bit5, bit4] SINT1, SINT0 : リソース割込みソースの選択 SINT1, SINT0 MB91461 リソース 00 選択したソース 0 での割込みによるツール NMI ( デフォルト ) UART0 RX / UART0 TX 01 選択したソース 1 での割込みによるツール NMI UART1 RX / UART1 TX 10 選択したソース 2 での割込みによるツール NMI UART08 RX / TX 11 選択したソース 3 での割込みによるツール NMI CAN0 / CAN1 SINT1, SINT0 MB91F467R リソース 00 選択したソース 0 での割込みによるツール NMI ( デフォルト ) UART00 RX / TX 01 選択したソース 1 での割込みによるツール NMI UART01 RX / TX 10 選択したソース 2 での割込みによるツール NMI UART02 RX / TX 11 選択したソース 3 での割込みによるツール NMI CAN0 / CAN1 SINT1 および SINT0 では , アクティブなリソース割込みソースが選択されます。 [bit3] EINT1 : 拡張割込み 1 の許可 [bit2] EINT0 : 拡張割込み 0 の許可 0 拡張割込みソース 0 の禁止 ( 初期値 ) 1 拡張割込みソース 0 の許可 EINT0 を "1" に設定した場合 , ソースチャネル 0 での拡張割込みイベントでツール NMI が生成されます。"0" に設定すると , この機能は禁止されます。 <注意事項> EINT1 および EINT0 は , ブレーク機能を生成するための信号線イベントを示すことに使 用できます。これらの割込みソースは , MCU 内に物理的に組み込まれています。例えば , 外部割込みポート , 汎用 I/O ポート端子 , その他のリソースなどです。これは , 装置の仕様 に定義する必要があります。 369 第 13 章 MPU / EDSU [bit1] EINTT : 送信での割込み許可 0 送信割込みソースチャネル 0 ∼ 3 を禁止します ( 初期値 ) 。 1 送信割込みソースチャネル 0 ∼ 3 を許可します。 EINTT を "1" に設定した場合 , TXINT1, TXINT0 によって設定されるソースチャネ ル 0 ∼ 3 での送信割込みイベントでツール NMI が生成されます。EINTT を "0" に 設定すると , この機能は禁止されます。 <注意事項> SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.1 の割込みを許可し ます (CAN には受信および送信に対する割込み要求が 1 つあります ) 。 [bit0] EINTR : 受信での割込み許可 0 受信割込みソースチャネル 0 ∼ 3 を禁止します ( 初期値 ) 。 1 受信割込みソースチャネル 0 ∼ 3 を許可します。 EINTR を "1" に設定した場合 , RXINT1, RXINT0 によって設定されるソースチャネ ル 0 ∼ 3 での受信割込みイベントでツール NMI が生成されます。EINTR を "0" に 設定すると , この機能は禁止されます。 <注意事項> SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.0 の割込みを許可し ます (CAN には受信および送信に対する割込み要求が 1 つあります ) 。 370 第 13 章 MPU / EDSU 13.3.2 EDSU 状態レジスタ (BSTAT) EDSU 状態レジスタ (BSTAT) のビット構成や機能について説明します。 図 13.3-2 EDSU 状態レジスタ (BSTAT) のビット構成 EDSU 状態レジスタバイト 2 アドレス : F006H 読出し / 書込み → 初期値 → EDSU 状態レジスタバイト 3 アドレス : F007H 読出し / 書込み → 初期値 → bit15 14 13 12 11 10 9 8 IDX4 IDX3 IDX2 IDX1 IDX0 CDMA CSZ1 CSZ0 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) bit7 6 5 4 3 2 1 0 PV RST INT1 INT0 INTT INTR (R) (0) (R) (0) CRW1 CRW0 (R) (0) (R ) (0) (R/W) (R/W) (R/W) (R/W) (0) (1) (0) (0) [bit15 ∼ bit11] IDX4 ∼ IDX0 : MPUPV トリガのチャネルインデックス指示 メモリ保護違反 (MPUPV) をトリガする場合, トリガを発生させたチャネルペア0∼ 15 のインデックスは IDX レジスタに保存されます。チャネルペアは通常 , 範囲コン パレータとして使用されます。 MPUチャネルによってそのアドレス範囲でヒットが検出されなかった場合, デフォ ルトの許可が適用されます。デフォルトの許可に違反した場合 , IDX は値 16 ( オーバ ラン ) に設定されます。一致した MPU チャネルの許可に違反した場合 , IDX によっ て該当するブレーク検出ビット BIRQ_BD[31:0] のインデックスが示されます。 このコンパレータに属するブレーク検出ビットは , BD[2 × IDX] および BD[2 × IDX + 1] です。 範囲ヒットかトリガ条件またはその両方が複数ある場合 , 優先順位が最も高いトリガ 条件のチャネルが IDX4 ∼ IDX0 によって示されます。優先順位はチャネルインデッ クスによって上がります。 IDX 0XXXXB 10000B 意味 最後の保護違反のチャネル番号を示します。 最後の保護違反は , デフォルトの許可の違反によって発生しました。 チャネルインデックス指示レジスタは読出し専用です。 [bit10] CDMA : キャプチャ DMA 指示 0 オペランドアクセスは CPU によって実行されました。 1 オペランドアクセスは DMA コントローラによって実行されました。 371 第 13 章 MPU / EDSU [bit9, bit8] CSZ1, CSZ0 : キャプチャオペランドサイズ 00 オペランドのビットサイズは 8 です。 01 オペランドのビットサイズは 16 です。 10 オペランドのビットサイズは 32 です。 11 予約 [bit7, bit6] CRW1, CRW0 : キャプチャオペランドアクセスタイプ 00 オペランドは読み出されました。 01 オペランドは , リードモディファイライト (RMW) 系命令によって読み出さ れました。 10 オペランドは書き込まれました。 11 オペランドアクセスはありません。 [bit5] PV : 保護違反検出 0 読出し , 書込み , 実行許可の保護違反はありませんでした。 1 保護違反 (MPUPV) が発生しました。 保護違反が発生し , PV に "1" が設定されると , MPUPV トラップが CPU に示されま す。保護違反とは , 定義されたアドレス領域に対して許可されていない読出しまた は書込みアクセスがあったか , このアドレス領域に許可なしで命令が実行されたこ とを意味します。この結果 , CPU はスーパバイザモード (SV = 1) に切り換わり , 割 込み番号 #6 の処理ルーチンを呼び出します ( 表 13.2-8 を参照 ) 。 このビットは , MPUPV トラップ処理ルーチンで "0" を書き込んでクリアする必要が あります。 [bit4] RST : 動作初期化リセット (RST) 検出 リセット動作は , 設定初期化リセット (INIT) と動作初期化リセット (RST) という 2 つの レベルに分けられます。INIT が発生すると , RST が同時に発生します。 0 動作リセットは , 最後の BSTAT 読出しまたはクリア以降トリガされません でした。 1 動作リセットは , 最後の BSTAT 読出しまたはクリア以降トリガされました。 RST ビットは読出し専用であり , このビットへの書込みアクセスは無視されます。 RST は , BSTAT が読み出された後 (32 ビットワード内の任意のバイトアドレスから の読出し) クリアされます。RSTは, 読出しおよびリードモディファイライト(RMW) 系命令アクセスについても同じ動作をします。 RST ビットは , リセット検出に使用できます。動作初期化リセットがトリガされた場 合に設定されます。デバッグ監視ソフトウェアでは , これを使用して , 動作リセット 372 第 13 章 MPU / EDSU 後にデバッガのフロントエンドへの通信デバイスを再構成する必要があるかどう かを検出できます。これは , ブート手順およびソフトリセット処理のデバッグに重 要です。EDSU ステータスワードの読出し後 , RST ビットは自動的にクリアされま す。 [bit3] INT1 : 拡張ソース 1 の割込み 0 拡張ソースチャネル 1 での割込み検出なし ( 初期値 ) 1 拡張ソースチャネル 1 での割込み検出あり INT1 は , 拡張割込みソースチャネル 1 の状態を反映します。拡張割込み信号線で "H" レベルが発生した場合 , "1" に設定されます。この設定は , ソフトウェアでクリアさ れるまで保持します。 "0" を書き込むと , INT1 ビットは "0" にリセットされます。このビットに "1" を書 き込んでも無視されます。リードモディファイライト (RMW) 系命令で , INT1 は "1" として読み出されます。 [bit2] INT0 : 拡張ソース 0 の割込み 0 拡張ソースチャネル 0 での割込み検出なし ( 初期値 ) 1 拡張ソースチャネル 0 での割込み検出あり INT0 は , 拡張割込みソースチャネル 0 の状態を反映します。拡張割込み信号線で "H" レベルが発生した場合 , "1" に設定されます。この設定は , ソフトウェアでクリアさ れるまで保持します。 "0" を書き込むと , INT0 ビットは "0" にリセットされます。このビットに "1" を書 き込んでも無視されます。リードモディファイライト (RMW) 系命令で , INT0 は "1" として読み出されます。 [bit1] INTT : 送信ソースの割込み 0 送信ソースでの割込み検出なし ( 初期値 ) 1 送信ソースチャネルでの割込み検出あり INTT は , 送信割込みソースチャネル 0 ∼ 3 (TXINT1, TXINT0 によって選択可能 ) の 状態を反映します。送信割込み信号線で "H" レベルが発生した場合に "1" に設定さ れ , 信号線で "L" レベルが発生した場合に "0" に設定されます。 このビットは読出し専用です。選択したリソースの適切な割込みビットをクリアす ると , "0" に設定できます。 373 第 13 章 MPU / EDSU <注意事項> SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.1 の割込みを示しま す (CAN には受信および送信に対する割込み要求が 1 つあります ) 。 [bit0] INTR : 受信ソースの割込み 0 受信ソースでの割込み検出なし ( デフォルト ) 1 受信ソースチャネルでの割込み検出あり INTR は , 受信割込みソースチャネル 0 ∼ 3 (RXINT1, RXINT0 によって選択可能 ) の 状態を反映します。受信割込み信号線で "H" レベルが発生した場合に "1" に設定さ れ , 信号線で "L" レベルが発生した場合に "0" に設定されます。 このビットは読出し専用です。選択したリソースの適切な割込みビットをクリアす ると , "0" に設定できます。 <注意事項> SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.1 の割込みを示しま す (CAN には受信および送信に対する割込み要求が 1 つあります ) 。 374 第 13 章 MPU / EDSU 13.3.3 EDSU ブレーク検出割込み要求レジスタ (BIRQ) EDSU ブレーク検出割込み要求レジスタ (BIRQ) のビット構成や機能について説明し ます。 このレジスタは , 各チャネルのタイプ構成に関係なく , すべてのチャネルのすべてのブ レーク検出ビットを収集します。チャネルの 8 つのグループ , つまり全体として 32 シ ングルポイントチャネルで構成されます。 チャネルの各グループは, 4チャネルおよびBIRQレジスタ内のブレーク検出用の4ビッ トで構成されます。各グループには , 2 つのコンパレータペアがあります。各ペアは , 範囲許可ビットを設定することによって範囲コンパレータを構成できる 2 つのポイン トコンパレータで構成されます。このような範囲コンパレータペアは , コンパレータタ イプ構成によって選択された , 命令アドレス , オペランドアドレス , またはデータ値情 報に接続されます。 オペランドアドレスとデータ値ブレークの組合せを検出するために , このようなコン パレータペアが 2 つ組み合されます。両方の条件が同時に一致した場合にのみ , ブレー ク検出 (BD) ビットが設定されます。 [bit31 ∼ bit0] BD31 ∼ BD0 : ブレーク検出レジスタ 0 ブレーク要因の検出なし ( 初期値 ) 1 bit 位置 31 ∼ 0 に応じたチャネルでブレーク要因の検出あり BD31 ∼ BD0 は , ブレーク検出の状態を反映します。BAD31 ∼ BAD0 との一致でそ れぞれ "1" に設定されます ( マスク条件が満たされた場合 , EM1/EM0 によって許可 された場合 ) 。2 つのポイントを使用する範囲機能が ER1/ER0 によって許可されてい る場合に , ビットペア [31:30], [29:28], ..., [1:0] について範囲一致が適用されます。 ブレーク要因は以下のとおりです。 • 命令アドレスブレーク • オペランドアドレスブレーク • データ値ブレーク • オペランドアドレスブレークとデータ値ブレークの組合せ • メモリ保護違反 "0" を書き込むと , BD31 ∼ BD0 ビットは "0" にリセットされます。これらのビットに "1" を書き込んでも無視されます。リードモディファイライト (RMW) 系命令で , す べての BD ビットは "1" として読み出されます。 許可されたアドレス範囲機能での BD1/BD0 設定 ( 隣接する BD ビットのほかのペア についても有効 ) : EP1 および EP0 を許可するポイント以外に ER0 でオペランドアドレス範囲機能が 許可されている場合 , BD1 および BD0 検出ビットは以下のように設定されます。 375 第 13 章 MPU / EDSU 表 13.3-2 スタート / エンドポイントまたは範囲での一致に関する BD コーディング 376 BD1 BD0 0 0 一致なし ( 初期値 ) 0 1 ポイントで一致 ( コンペア値= BAD0) 1 0 ポイントで一致 ( コンペア値= BAD1) 1 1 範囲で一致 (BAD0 < コンペア値 < BAD1) コンペア値 : 命令 , オペランドアドレス , データ値 第 13 章 MPU / EDSU 13.3.4 EDSU チャネル構成レジスタ (BCR0 ∼ BCR7) EDSU チャネル構成レジスタ (BCR0 ∼ BCR7) のビット構成や機能について説明し ます。 図 13.3-3 EDSU チャネル構成レジスタ (BCR0 ∼ BCR7) のビット構成 EDSU チャンネル構成レジスタ 0, バイト 0 bit31 アドレス : F020H − 読出し / 書込み → 初期値 → (-) (X) EDSU チャンネル構成レジスタ 0, バイト 1 bit23 アドレス : F021H 読出し / 書込み → 初期値 → SRX1 30 29 28 27 26 25 24 − − − − − − − (-) (X) (-) (X) (-) (X) (-) (X) (-) (X) (-) (X) (-) (X) 22 21 20 19 18 17 16 SW1 SRX0 SW0 URX1 UW1 URX0 UW0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) EDSU チャンネル構成レジスタ 0, バイト 2 bit15 アドレス : F022H MPE 14 13 12 11 10 9 8 COMB CTC1 CTC0 OBS1 OBS0 OBT1 OBT0 読出し / 書込み → (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 初期値 → EDSU チャンネル構成レジスタ 0, バイト 3 bit7 アドレス : F023H 読出し / 書込み → 初期値 → EP3 6 5 4 3 2 1 0 EP2 EP1 EP0 EM1 EM0 ER1 ER0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 4 つのチャネルのグループごとに , チャネル構成レジスタ (BCR0 ∼ BCR7) が実装され ます。以下の表に , どのチャネル構成 , ブレークポイントアドレス / データレジスタ , ブレーク検出ビットが一緒になっているかを示します。 表 13.3-3 BCR, BAD, BIRQ レジスタの関係 (1 / 3) グループ 構成 アドレス / データ BADx の使用 ポイント ポイント 0, マス ク0 EP0 BAD1 ポイント 1 EP1 BAD2 ポイント 2, マス ク1 EP2 ポイント 3 EP3 BAD0 マスク EM0 組合せ 範囲 0 ER0 BIRQ OA0 BD0 OA1 BD1 DT0 BD2 DT1 BD3 BCR0 BAD3 EM1 範囲 1 ER1 377 第 13 章 MPU / EDSU 表 13.3-3 BCR, BAD, BIRQ レジスタの関係 (2 / 3) グループ 構成 アドレス / データ BADx の使用 ポイント ポイント 0, マス ク0 EP0 BAD5 ポイント 1 EP1 BAD6 ポイント 2, マス ク1 EP2 BAD7 ポイント 3 EP3 BAD8 ポイント 0, マス ク0 EP0 BAD9 ポイント 1 EP1 BAD10 ポイント 2, マス ク1 EP2 BAD11 ポイント 3 EP3 BAD12 ポイント 0, マス ク0 EP0 BAD13 ポイント 1 EP1 BAD14 ポイント 2, マス ク1 EP2 BAD15 ポイント 3 EP3 BAD16 ポイント 0, マス ク0 EP0 BAD17 ポイント 1 EP1 BAD18 ポイント 2, マス ク1 EP2 BAD19 ポイント 3 EP3 BAD20 ポイント 0, マス ク0 EP0 BAD21 ポイント 1 EP1 BAD22 ポイント 2, マス ク1 EP2 ポイント 3 EP3 BAD4 マスク EM0 組合せ 範囲 0 ER0 BIRQ OA0 BD4 OA1 BD5 DT0 BD6 DT1 BD7 OA0 BD8 OA1 BD9 DT0 BD10 DT1 BD11 OA0 BD12 OA1 BD13 DT0 BD14 DT1 BD15 OA0 BD16 OA1 BD17 DT0 BD18 DT1 BD19 OA0 BD20 OA1 BD21 DT0 BD22 DT1 BD23 BCR1 EM1 EM0 範囲 1 ER1 範囲 0 ER0 BCR2 EM1 EM0 範囲 1 ER1 範囲 0 ER0 BCR3 EM1 EM0 範囲 1 ER1 範囲 0 ER0 BCR4 EM1 EM0 範囲 1 ER1 範囲 0 ER0 BCR5 BAD23 378 EM1 範囲 1 ER1 第 13 章 MPU / EDSU 表 13.3-3 BCR, BAD, BIRQ レジスタの関係 (3 / 3) グループ 構成 アドレス / データ BADx の使用 ポイント ポイント 0, マス ク0 EP0 BAD25 ポイント 1 EP1 BAD26 ポイント 2, マス ク1 EP2 BAD27 ポイント 3 EP3 BAD28 ポイント 0, マス ク0 EP0 BAD29 ポイント 1 EP1 BAD30 ポイント 2, マス ク1 EP2 ポイント 3 EP3 BAD24 マスク EM0 組合せ 範囲 0 ER0 BIRQ OA0 BD24 OA1 BD25 DT0 BD26 DT1 BD27 OA0 BD28 OA1 BD29 DT0 BD30 DT1 BD31 BCR6 EM1 EM0 範囲 1 ER1 範囲 0 ER0 BCR7 BAD31 EM1 範囲 1 ER1 許可定義レジスタは, MPUモードで動作しているチャネルのグループにのみ有効です。 これは , MPE が "1" に設定されている場合に該当します。グループが MPU モードで動 作していない場合 , 許可構成は必要ありません ( 無視されます ) 。 通常 , MPU チャネルはアドレス定義の範囲モードで動作します。 設定できる許可のタイプは , 各コンパレータペアのコンパレータタイプ構成 (CTC) に よって異なります。MPU チャネルは , 命令アドレス (IA) またはオペランドアドレス (OA) を確認するために構成できます。IA 範囲は , 実行許可を定義するために使用でき ます。OA 範囲は , 読出しおよび書込み許可を定義するために使用できます。 MPU 使用のコンパレータタイプは , 以下のように設定できます。 • CTC = 0 : 両方の IA 範囲によって実行許可が定義されます。 • CTC = 1 : 両方の OA 範囲によって読出し / 書込み許可が定義されます。 • CTC = 2 : IA 範囲 0 によって実行許可が定義され , OA 範囲 1 によって読出し / 書込 み許可が定義されます。 CTC=3を設定することによるデータ値 (DT) 検出は, MPUモードでは使用できません。 スーパバイザモードおよびユーザモードという 2 つの CPU モードの読出し , 書込み , 実行許可について , 許可構成が存在します。スーパバイザ許可は SV = 1 に有効であり , ユーザ許可は SV = 0 で設定します。 379 第 13 章 MPU / EDSU [bit23] SRX1 : スーパバイザのアドレス範囲 1 での読出し / 実行許可レジスタ CTC = 0 の有効な設定 ( 命令アドレス範囲コンパレータ ) : 0 スーパバイザには , アドレス範囲 1 での実行許可がありません ( 初期値 ) 。 1 スーパバイザには , アドレス範囲 1 での実行許可があります。 CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 スーパバイザには , アドレス範囲 1 での読出し許可がありません ( 初期値 ) 。 1 スーパバイザには , アドレス範囲 1 での読出し許可があります。 [bit22] SW1 : スーパバイザのアドレス範囲 1 での書込み許可レジスタ CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 スーパバイザには , アドレス範囲 1 での書込み許可がありません ( 初期値 ) 。 1 スーパバイザには , アドレス範囲 1 での書込み許可があります。 [bit21] SRX0 : スーパバイザのアドレス範囲 0 での読出し / 実行許可レジスタ CTC = 0 または CTC = 2 の有効な設定 ( 命令アドレス範囲コンパレータ ) : 0 スーパバイザには , アドレス範囲 0 での実行許可がありません ( 初期値 ) 。 1 スーパバイザには , アドレス範囲 0 での実行許可があります。 CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 スーパバイザには , アドレス範囲 0 での読出し許可がありません ( 初期値 ) 。 1 スーパバイザには , アドレス範囲 0 での読出し許可があります。 [bit20] SW1 : スーパバイザのアドレス範囲 0 での書込み許可レジスタ CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 スーパバイザには , アドレス範囲 0 での書込み許可がありません ( 初期値 ) 。 1 スーパバイザには , アドレス範囲 0 での書込み許可があります。 [bit19] URX1 : ユーザのアドレス範囲 1 での読出し / 実行許可レジスタ CTC = 0 の有効な設定 ( 命令アドレス範囲コンパレータ ) : 380 0 ユーザには , アドレス範囲 1 での実行許可がありません ( 初期値 ) 。 1 ユーザには , アドレス範囲 1 での実行許可があります。 第 13 章 MPU / EDSU CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 ユーザには , アドレス範囲 1 での読出し許可がありません ( 初期値 ) 。 1 ユーザには , アドレス範囲 1 での読出し許可があります。 [bit18] UW1 : ユーザのアドレス範囲 1 での書込み許可レジスタ CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 ユーザには , アドレス範囲 1 での書込み許可がありません ( 初期値 ) 。 1 ユーザには , アドレス範囲 1 での書込み許可があります。 [bit17] URX0 : ユーザのアドレス範囲 0 での読出し / 実行許可レジスタ CTC = 0 または CTC = 2 の有効な設定 ( 命令アドレス範囲コンパレータ ) : 0 ユーザには , アドレス範囲 0 での実行許可がありません ( 初期値 ) 。 1 ユーザには , アドレス範囲 0 での実行許可があります。 CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 ユーザには , アドレス範囲 0 での読出し許可がありません ( 初期値 ) 。 1 ユーザには , アドレス範囲 0 での読出し許可があります。 [bit16] UW1 : ユーザのアドレス範囲 0 での書込み許可レジスタ CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) : 0 ユーザには , アドレス範囲 0 での書込み許可がありません ( 初期値 ) 。 1 ユーザには , アドレス範囲 0 での書込み許可があります。 チャネルのグループ , モード構成レジスタ [bit15] MPE : メモリ保護許可 0 チャネルのグループはデバッグインタフェースとして動作し , ブレークポイ ントを定義します ( 初期値 ) 。 1 チャネルのグループは , メモリ保護モードで動作します。 MPE ビットの設定でいくつかの制限が適用されます。 MPE=0 (ブレークユニット) : 許可レジスタは「無視する」です (BCRx bit23 ∼ bit16) 。 381 第 13 章 MPU / EDSU MPE=1 ( メモリ保護ユニット ) : OBS および OBT を "11B" に設定する必要がありま す (BCRx bit11∼bit8, 任意のサイズおよび任意のタ イプ ) 。 CTC を "11B" に設定してはいけません (BCRx bit13, bit12 このモードではデータ値確認はサポートされ ません ) 。 [bit14] COMB : チャネル組合せ許可 0 チャネル間の組合せなし ( 初期値 ) 1 チャネル間の組合せは有効です。 MPE 構成ビットに応じて , COMB 機能には異なる意味があります。 (A) COMB = 1 および MPE = 0 ( ブレークユニット , オペランドアドレスブレーク とデータ値ブレークの組合せ ) BIRQ_BDビットの設定およびオペランドブレーク条件の通知の前に, ブレーク 検出条件が組み合されます。COMB ビットの設定は , 特定のオペランドアドレス でデータ値ブレークを定義するために必要です。COMB ビットが "1" に設定され た場合 , オペランドアドレス (OA) の一致とデータ値 (DT) の一致の両方の条件 が真 (true) であることが必要です。COMB ビットの設定は , CTC = 11B で定義 される OA/DT モードでのみ意味を持ちます。 AND の組合せは , ch.3 (OA1) と ch.1 (DT1) の間および ch.2 (OA0) と ch.0 (DT0) の 間でのみ有効です。範囲動作は定義されていない (ER1 = ER0 = 0) と想定され ます。 BIRQ_BD3 = BIRQ_BD1 = BD3 && BD1; BIRQ_BD2 = BIRQ_BD0 = BD2 && BD0; ER1 = 1 を設定することによって ch.3 および ch.2 がオペランドアドレス範囲 (OA1:OA0) を定義するか , ER0 = 1 を設定することによって ch.1 および ch.0 が データ値範囲 (DT1:DT0) を定義する場合 , またはその両方の場合 , 各チャネル のブレーク検出ビットは反対の範囲コンパレータブレーク検出出力の OR され たチャネルと AND で組み合されます。 BIRQ_BD3 = BD3 && (BD1 || BD0); BIRQ_BD2 = BD2 && (BD1 || BD0); BIRQ_BD1 = BD1 && (BD3 || BD2); BIRQ_BD0 = BD0 && (BD3 || BD2); これは , BIRQ ブレーク抽出ビット ( スタートポイント , 範囲 , またはエンドポ イントでの一致のコーディングについては表 13.3-2 を参照 ) について , COMB = 0 での範囲検出の場合と同じ解釈を提供します。BD3 および BD2 はオペランドア ドレス (OA) 一致のコーディングを保持し , BD1 および BD0 はデータ値 (DT) 一致 のコーディングを保持します。COMB ビットを "1" に設定すると , 最終的に適 切な BD ビットを設定するには両方の条件 (OA 一致および DT 一致 ) が真 (true) であることが必要です。 382 第 13 章 MPU / EDSU COMB ビットが "0" に設定された場合 , すべてのブレーク検出ビットは元々の形 式で BIRQ レジスタに渡されます。コンパレータチャネル一致条件は , 互いに独 立しています。 (B) COMB=1 および MPE=1 ( メモリ保護ユニット , 1 つの範囲での読出し / 書込み / 実行許可の組合せ ) メモリ保護モードでは , COMB ビットは , 同じアドレス範囲に設定された , デー タ読出し / 書込みおよびコード実行許可の組合せという意味を持ちます。設定は , モード CTC = 2 で , ch.3 および ch.2 のオペランドアドレス (OA) コンパレータと ch.1 および ch.2 の命令アドレス (IA) コンパレータの組合せについてのみ意味を 持ちます。 COMB ビットが "1" に設定された場合 , IA コンパレータ CMP0 によって OA コ ンパレータ CMP1 と同じ BADx ポイント定義が使用されます。ポイント 3 およ びポイント 2 によって , コンパレータ CMP0 および CMP1 両方のアドレス範囲 が定義されます。これには , ポイント 0/ マスク 0 のエントリがポイント設定に対 して割り当てられず , 一方または両方のコンパレータのマスクに使用できると いう効果があります。この場合 , ポイント 1 エントリは使用できません。 COMB ビットが "0" に設定された場合 , 両方のコンパレータは独立したアドレ ス構成を持ちます。コンパレータによって , データ保護の読出し / 書込み許可を 定義するか , またはコード保護の実行許可を定義できます。各コンパレータで は , 2 つのポイントの間の範囲によって (ER = 1) , またはマスクを持つ 1 つのポ イントによって (EM = 1) , アドレス領域を定義できます。 [bit13, bit12] CTC1, CTC0 : コンパレータタイプ構成 CTC CMP1 CMP0 00B IA IA 命令ブレークポイント× 4 コード保護の 2 領域 ( 実行許可 ) 01B OA OA オペランドブレークポイント× 4 データ保護の 2 領域 ( 読出し / 書 込み許可 ) IA 命令ブレークポイント× 2 + オペランドブレークポイント× 2 コード保護の 1 領域 ( 実行許可 ) および データ保護の 1 領域 ( 読出し / 書 込み許可 ) または コード保護とデータ保護の組合せ の 1 領域 ( 読出し / 書込み / 実行許可 ) DT オペランドブレークポイント× 2 + データ値ブレーク× 2, 通常は組合せ 該当なし 10B 11B OA OA MPU 機能 ブレーク機能 各チャネルには , 2 つの範囲コンパレータブロックが含まれています。各コンパレータ ブロックによって, 2つのポイント間の範囲ヒットまたは2つの独立したポイントヒッ トを検出できます。ポイント構成は , 各チャネル専用の BADx レジスタに格納され ます ( チャネルのグループごとに 4 つの BADx レジスタ ) 。 コンパレータタイプ構成 (CTC) によって , 2 つの範囲コンパレータブロック CMP1 および CMP0 それぞれのコンペア値の入力マルチプレクスが制御されます。 CMP1 に 383 第 13 章 MPU / EDSU よってブレーク検出 ch.3 と ch.2 が組み合されます。CMP1 のコンペア値は , 命令ア ドレス (IA) またはオペランドアドレス (OA) に割り当てることができます。CMP0 によってブレーク検出 ch.1 と ch.0 が組み合されます。CMP0 のコンペア値は , 命令 アドレス (IA) , オペランドアドレス (OA) , またはデータ値 (DT) に割り当てることが できます。上記の表は , CTC 設定に応じて , CMP1 および CMP0 の入力コンペア値を 定義したものです。 さらに , 各コンパレータブロックのマスクを定義できます。この場合は , BADx レジ スタにマスク情報が含まれ , ポイント構成には使用できません。したがって , マスク 機能の使用によってポイントまたはチャネルの数は制限されます。 [bit11 ∼ bit8] OBS1, OBS0, OBT1, OBT0 : オペランドブレークサイズ/オペランドブ レークタイプレジスタ 1 OBS1 OBS0 OBT1 OBT0 0 0 バイト ( 初期値 ) 0 0 読出し ( 初期値 ) 0 1 ハーフワード 0 1 リードモディファイライト (RMW) 系命令 1 0 ワード 1 0 書込み 1 1 すべて ( バイト , ハーフワー ド , ワード ) 1 1 すべて ( 読出し , 読出し / 変 更 / 書込み , 書込み ) データサイズ アクセスタイプ チャネルがオペランドアドレスブレークまたはデータ値ブレーク検出で構成され ている場合 , オペランドブレークサイズレジスタ OBS によってデータサイズが構成 され , オペランドブレークタイプレジスタ OBT によってアクセスタイプが構成され ます。 データサイズを "11B" に設定すると , バイト , ハーフワード , ワードデータサイズの 検出が行われます。アクセスタイプを "11B" に設定すると , リードモディファイラ イト (RMW) 系命令 , 書込みアクセスタイプの検出が行われます。 [bit7] EP3 : ブレークポイント 3 レジスタの許可 0 ブレークポイント 3 レジスタは無効です ( 初期値 ) 。 1 ブレークポイント 3 レジスタは有効です。 EP3 が有効な場合 , CMP1 の入力値はポイント 3 レジスタの内容と比較されます (BAD インデックス= 3 +グループオフセット , グループ 0 ch.3 の場合 BAD3, グルー プ 1 ch.3 の場合 BAD7, ...) 。 EM1 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク 例外の種類を CTC および MPE 制御します。 384 第 13 章 MPU / EDSU [bit6] EP2 : ブレークポイント 2 レジスタの許可 0 ブレークポイント 2 レジスタは無効です ( 初期値 ) 。 1 ブレークポイント 2 レジスタは有効です。 EP2 が有効な場合 , CMP1 の入力値はポイント 2 レジスタの内容と比較されます (BAD インデックス= 2 +グループオフセット , グループ 0 ch.2 の場合 BAD2, グルー プ 1 ch.2 の場合 BAD6, ...) 。 EM1 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク 例外の種類を CTC および MPE 制御します。 EP2 によって , ポイント 2 を有効にして割り当てる以外に , マスクレジスタの選択が 制御されます。ポイント 2 は , CMP1 マスク値を格納する初期設定アドレスでもあり ます。ただし , ポイント 2 が有効な場合 , マスクをそこに格納できず , CMP1 のマス ク入力はポイント 0 ( 反対のコンパレータ ) に切り換わります。 [bit5] EP1 : ブレークポイント 1 レジスタの許可 0 ブレークポイント 1 レジスタは無効です ( 初期値 ) 。 1 ブレークポイント 1 レジスタは有効です。 EP1 が有効な場合 , CMP0 の入力値はポイント 1 レジスタの内容と比較されます (BAD インデックス= 1 +グループオフセット , グループ 0 ch.1 の場合 BAD1, グルー プ 1 ch.1 の場合 BAD5, ...) 。 EM0 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク 例外の種類を CTC および MPE 制御します。 [bit4] EP0 : ブレークポイント 0 レジスタの許可 0 ブレークポイント 0 レジスタは無効です ( 初期値 ) 。 1 ブレークポイント 0 レジスタは有効です。 EP0 が有効な場合 , CMP0 の入力値はポイント 0 レジスタの内容と比較されます (BAD インデックス= 0 +グループオフセット , グループ 0 ch.0 の場合 BAD0, グルー プ 1 ch.0 の場合 BAD4, ...) 。 EM0 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク 例外の種類を CTC および MPE 制御します。 EP0 によって , ポイント 0 を有効にして割り当てる以外に , マスクレジスタの選択が 制御されます。ポイント 0 は , CMP0 マスク値を格納する初期設定アドレスでもあり ます。ただし , ポイント 0 が有効な場合 , マスクをそこに格納できず , CMP0 のマス ク入力はポイント 2 ( 反対のコンパレータ ) に切り換わります。 385 第 13 章 MPU / EDSU 組合せビットセット (COMB = 1) とともにメモリ保護が有効な場合 (MPE = 1) , ア ドレス範囲はポイント 3 およびポイント 2 によって定義され , コンパレータ COMB1 および COMB0 の両方に対して有効です。このため , ポイント 1 および 0 は CMP0 の範囲定義には必要なく , ポイントから独立して EP0 および EP1 を有効にします。こ の場合 , これらは通常設定されます。したがって , ポイント 0 はコンパレータ CMP1 および CMP0 両方のマスク値を格納するために使用でき , 上記で説明した例外はこ の場合には適用されません。 ● マスクおよび範囲レジスタの許可 [bit3] EM1 : CMP1 のマスクの許可 0 CMP1 のマスク機能は無効です ( 初期値 ) 。 1 CMP1 のマスク機能は有効です。 EM1 が有効な場合 , コンパレータ CMP1 はこれらのビット位置のみと一致します。こ れらは "0" に設定されており , マスクレジスタによってマスクされていません。ポイ ントのすべての入力およびコンペア値自体は , マスクレジスタの値と OR で組み合 されます。コンペア動作ポイント一致または範囲検出は , これらの OR でマスクさ れた値に基づいて派生します。 マスク値の適切な BADx レジスタ ( ポイント 2 または 0) の選択は , EP2 および ER1 に よって異なります。両方のビットの少なくとも 1 つが有効な場合 , ポイント 2 の割 当てが原因でマスク使用はポイント 0 に切り換わります。そうではない場合は , ポ イント 2 に格納されているデフォルトのマスクが CMP1 に適用されます。 [bit2] EM0 : CMP0 のマスクの許可 0 CMP0 のマスク機能は無効です ( 初期値 ) 。 1 CMP0 のマスク機能は有効です。 EM0 が有効な場合 , コンパレータ CMP0 はこれらのビット位置のみと一致します。こ れらは "0" に設定されており , マスクレジスタによってマスクされていません。ポイ ントのすべての入力およびコンペア値自体は , マスクレジスタの値と OR で組み合 されます。コンペア動作ポイント一致または範囲検出は , これらの OR でマスクされ た値に基づいて派生します。 マスク値の適切な BADx レジスタ ( ポイント 0 または 2) の選択は , EP0 および ER0 に よって異なります。両方のビットの少なくとも 1 つが有効な場合 , ポイント 0 の割 当てが原因でマスク使用はポイント 2 に切り換わります。そうではない場合は , ポ イント 0 に格納されているデフォルトのマスクが CMP0 に適用されます。MPE = 1 および COMB = 1 の場合 , EP0 および ER0 の設定に関係なく , マスクはポイント 0 から取得されます。 386 第 13 章 MPU / EDSU [bit1] ER1 : CMP1 の範囲の許可 0 範囲検出 CMP1 (ch.2, ch.3) は無効です ( 初期値 ) 。 1 範囲検出 CMP1 (ch.2, ch.3) は有効です。 ER1 が有効な場合 , レジスタ BADx, ポイント 3, ポイント 2 が以下のように範囲の 比較に使用されます。 ポイント 2 <= コンペア値 <= ポイント 3 EM1 によってマスクが設定されている場合 , 両方のポイントレジスタはマスクレジ スタの内容によってマスクされます。 ポイント 3 およびポイント 2 は BAD[x + 3] および BAD[x + 2] から取得され , マス クはポイント 0, BAD[x + 0] に格納されます。 "x" はグループオフセットで , グループインデックスに 4 を掛けて計算します。 [bit0] ER0 : CMP0 の範囲の許可 0 範囲検出 CMP0 (ch.0, ch.1) は無効です ( 初期値 ) 。 1 範囲検出 CMP0 (ch.0, ch.1) は有効です。 ER0 が有効な場合 , レジスタ BADx, ポイント 1, ポイント 0 が以下のように範囲の 比較に使用されます。 ポイント 0 <= コンペア値 <= ポイント 1 EM0 によってマスクが設定されている場合 , 両方のポイントレジスタはマスクレジ スタの内容によってマスクされます。 MPE = 1 かつ COMB = 1 という特殊な場合 , ポイント 1 およびポイント 0 は反対 のチャネル BAD[x + 3] および BAD[x + 2] から取得され , マスクはポイント 0, BAD[x + 0] に格納されます。それ以外の場合は , ポイント 1 およびポイント 0 は BAD[x + 1] および BAD[x + 0] から取得され , マスクはポイント 2, BAD[x + 2] に 格納されます。 "x" はグループオフセットで , グループインデックスに 4 を掛けて計算します。 387 第 13 章 MPU / EDSU 13.3.4.1 ブレークアドレス / データレジスタ (BAD0 ∼ BAD31) ブレークアドレス / データレジスタ (BAD0 ∼ BAD31) のビット構成や機能について 説明します。 BADx レジスタによって , チャネルの 8 つのグループに対して 32 個のブレークポイント アドレス , データ値 , またはマスク情報が定義されます。チャネルのグループごとに , 4 つの専用 BAD レジスタがあります。BAD0, BAD1, BAD2, BAD3 はグループ 0 に属し , BAD4, BAD5, BAD6, BAD7 はグループ 1 に属します。以降も同様です。グループ 0 の レジスタについて以下で説明する機能は , ほかのすべてのグループについても当てはま ります。BADx レジスタのインデックスは , 次のグループのインデックスについてはそ れぞれ 4 を加算する必要があります。 ● BADn (n = 0, 4, 8, 12, 16, 20, 24, 28) このレジスタでは , CMP0 のブレークポイント 0 の 32 ビット比較値を設定します。(ER0 で設定される ) 範囲モードでは , BAD0 のレジスタ値は下位アドレス制限として機能し ます。また , BAD0 はマスクレジスタとして使用することもできます。 MPE = 1 かつ COMB = 1 という特殊な場合 , BAD0 はポイント定義に使用されません。 この場合 , CMP0 はポイント構成を BAD2 から取得します。 ● BADn (n = 1, 5, 9, 13, 17, 21, 25, 29) このレジスタでは , CMP0 のブレークポイント 1 の 32 ビット比較値を設定します。(ER0 で設定される ) 範囲モードでは , BAD1 のレジスタ値は上位アドレス制限として機能し ます。 MPE = 1 かつ COMB = 1 という特殊な場合 , BAD1 はポイント定義に使用されません。 この場合 , CMP0 はポイント構成を BAD3 から取得します。 ● BADn (n = 2, 6, 10, 14, 18, 22, 30) このレジスタでは , CMP1 のブレークポイント 2 の 32 ビット比較値を設定します。(ER1 で設定される ) 範囲モードでは , BAD2 のレジスタ値は下位アドレス制限として機能し ます。また , BAD2 はマスクレジスタとして使用することもできます。 ● BADn (n = 3, 7, 11, 15, 19, 23, 27, 31) このレジスタでは , CMP1 のブレークポイント 3 の 32 ビット比較値を設定します。(ER1 で設定される ) 範囲モードでは , BAD3 のレジスタ値は上位アドレス制限として機能し ます。 388 第 13 章 MPU / EDSU 13.4 クイックリファレンス EDSU レジスタのクイックリファレンスとコンパレータの構成を示します。 389 390 F0FCH BAD31 F0F8H BAD30 F0F4H BAD29 F0F0H BAD28 ... F08CH BAD3 F088H BAD2 F084H BAD1 F080H BAD0 F03CH BCR7 ... F020H BCR0 F010H BIRQ F00CH BOAC F008H BIAC 16 IDX3 ro ro SW IDX4 SR 15 ro IDX2 SX ro IDX1 UR UW point 3 point 2 / mask 1 point 1 point 0 / mask 0 point 3 point 2 / mask 1 point 1 point 0 / mask 0 SRX1 SW1 SRX1 SW1 SRX0 SW0 URX1 UW1 URX0 UW0 SRX0 SW0 URX1 UW1 URX0 UW0 7 ro ro 0 BD8 ro MPE COMB CTC1 CTC0 OBS1 OBS0 OBT1 OBT0 CMP1: IA, OA, OA, OA8, 16, 32, alll r, rmw, w, all CMP0: IA, OA, IA, DT MPE COMB CTC1 CTC0 OBS1 OBS0 OBT1 OBT0 BD9 ro EP3 EP3 BD7 ro EP2 EP2 BD6 ro EP1 EP1 BD5 PV EP0 EP0 BD4 ro/ac RST EM1 EM1 BD3 INT1 Uart0, 1, 2, CAN EM0 EM0 BD2 INT0 Device select (Rst) (Breakx) ER1 ER1 BD1 ro INTT ER0 ER0 BD0 ro INTR FCPU FDMA EEMM PFD SINT1 SINT0 EINT1 EINT0 EINTT EINTR 8 IDX0 CDMA CSZ1 CSZ0 CRW1 CRW0 UW BD31 BD30 BD29 BD28 BD27 BD26 BD25 BD24 BD23 BD22 BD21 BD20 BD19 BD18 BD17 BD16 BD15 BD14 BD13 BD12 BD11 BD10 ro ro: read only 23 ac: auto clear 24 F004H ro 31 BSTAT F000H BCTRL 第 13 章 MPU / EDSU 図 13.4-1 レジスタのクイックリファレンス 第 13 章 MPU / EDSU 図 13.4-2 コンパレータグループの構成 (2 つのグループについて説明 ) BCR1 BCR1 OBS1 OBS一致 BAD7 ポイント3 BAD6 ポイント2 IA/OA BD3 BD7 マスク1 CMP1 BD2 BD6 CTC IA OA 値 コンパレータグループ1 BAD5 ポイント1 BAD4 ポイント0 IA/OA/DT BD1 BD5 マスク0 CMP0 BD0 BD4 値 BCR0 BCR0 OBS0 OBS一致 BAD3 ポイント3 BAD2 ポイント2 IA/OA BD3 BD3 マスク1 CMP1 BD2 BD2 CTC IA OA ブレーク検出評価 CTC IA OA DT 値 コンパレータグループ0 ポイント1 BAD0 ポイント0 IA/OA/DT BD1 BD1 マスク0 CMP0 BD0 BD0 CTC IA OA DT BAD1 値 391 第 13 章 MPU / EDSU 392 第 14 章 REALOS 関連ハード REALOS の概要 , レジスタの構成 / 機能 , および動 作について説明します。 14.1 遅延割込みモジュール 14.2 ビットサーチモジュール 393 第 14 章 REALOS 関連ハード 14.1 遅延割込みモジュール 遅延割込みモジュールの概要 , レジスタの構成 / 機能 , および動作について説明しま す。 ■ 遅延割込みモジュールの概要 遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールです。 本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取 消しを行うことができます。 394 第 14 章 REALOS 関連ハード 14.1.1 遅延割込みモジュールの概要 遅延割込みモジュールのレジスタ一覧 , 詳細 , および動作について説明します。 ■ 遅延割込みモジュールのレジスタ一覧 遅延割込みモジュールのレジスタ一覧は , 以下のとおりです。 図 14.1-1 遅延割込みモジュールのレジスタ一覧 bit アドレス : 000038H 7 6 5 4 3 2 1 0 − − − − − − − DLYI [R/W] DICR ■ 遅延割込みモジュールのブロックダイヤグラム 図 14.1-2 に , 遅延割込みモジュールのブロックダイヤグラムを示します。 図 14.1-2 遅延割込みモジュールのブロックダイヤグラム R-bus 割込み要求 DLYI 395 第 14 章 REALOS 関連ハード 14.1.2 遅延割込みモジュールのレジスタ 遅延割込みモジュールのレジスタの構成および機能について説明します。 ■ DICR ( 遅延割込みモジュールレジスタ ) DICR は , 遅延割込みを制御するレジスタです。 図 14.1-3 に , 遅延割込みモジュールレジスタ (DICR) のビット構成を示します。 図 14.1-3 遅延割込みモジュールレジスタ (DICR) のビット構成 bit 7 6 5 4 3 2 1 0 アドレス : 000038H − − − − − − − DLYI [R/W] -------0B ( 初期値 ) [bit0] DLYI 表 14.1-1 DLYI DLYI 説明 0 遅延割込み要因の解除・要求なし [ 初期値 ] 1 遅延割込み要因の発生 本ビットにより , 該当する割込み要因の発生・解除を制御します。 396 第 14 章 REALOS 関連ハード 14.1.3 遅延割込みモジュールの動作説明 遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用するこ とにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことがで きます。 ■ 割込み番号 遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。 MB91461/F467R では , 遅延割込みを割込み番号 63 (3FH) に割り当てています。 ■ DICR の DLYI ビット このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き 込むことで , 遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアして併せてタスクの切換えを行うようにしてください。 397 第 14 章 REALOS 関連ハード 14.2 ビットサーチモジュール ビットサーチモジュールの概要 , レジスタの構成 / 機能 , および動作について説明し ます。 ■ ビットサーチモジュールの概要 ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0", "1" ま たは変化点を検索して検出したビット位置を返します。 398 第 14 章 REALOS 関連ハード 14.2.1 ビットサーチモジュールの概要 ビットサーチモジュールのレジスタの構成および機能について説明します。 ■ ビットサーチモジュールのレジスタ一覧 図 14.2-1 に , ビットサーチモジュールのレジスタ一覧を示します。 図 14.2-1 ビットサーチモジュールのレジスタ一覧 bit 31 0 アドレス : 0003F0H BSD0 0 検出用データレジスタ アドレス : 0003F4H BSD1 1 検出用データレジスタ アドレス : 0003F8H BSDC 変化点検出用データレジスタ アドレス : 0003FCH BSRR 検出結果レジスタ ■ ビットサーチモジュールのブロックダイヤグラム 図 14.2-2 に , ビットサーチモジュールのブロックダイヤグラムを示します。 図 14.2-2 ビットサーチモジュールのブロックダイヤグラム D-bus 入力ラッチ アドレスデコーダ 検出モード 1検出データ化 ビットサーチ回路 検索結果 399 第 14 章 REALOS 関連ハード 14.2.2 ビットサーチモジュールのレジスタ ビットサーチモジュールのレジスタの構成および機能について説明します。 ■ 0 検出用データレジスタ (BSD0) 書き込んだ値に対して , 0 検出を行います。 図 14.2-3 に , 0 検出用データレジスタ (BSD0) のレジスタ構成を示します。 図 14.2-3 0 検出用データレジスタ (BSD0) のレジスタ構成 bit 31 0 000003F0H →ライトオンリ →不定 R/W 初期値 リセットによる初期値は不定です。読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は使わないでください ) 。 ■ 1 検出用データレジスタ (BSD1) 図 14.2-4 に , 1 検出用データレジスタ (BSD1) のレジスタ構成を示します。 図 14.2-4 1 検出用データレジスタ (BSD1) のレジスタ構成 bit 31 0 000003F4H R/W 初期値 →リード / ライト可能 →不定 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は使わないでください ) 。 • 書込み時 : 書き込んだ値に対して , "1" を検出します。 • 読出し時 : ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する ときに使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー タレジスタのみ操作することで退避・復帰できます。 リセットによる初期値は不定です。 400 第 14 章 REALOS 関連ハード ■ 変化点検出用データレジスタ (BSDC) 書き込んだ値に対して , 変化点の検出を行います。 図 14.2-5 に , 変化点検出用データレジスタ (BSDC) のレジスタ構成を示します。 図 14.2-5 変化点検出用データレジスタ (BSDC) のレジスタ構成 bit 31 0 000003F8H →ライトオンリ →不定 R/W 初期値 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は使わないでください ) 。 ■ 検出結果レジスタ (BSRR) 0 検出 , 1 検出 , または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ れます。 図 14.2-6 に , 検出結果レジスタ (BSRR) のレジスタ構成を示します。 図 14.2-6 検出結果レジスタ (BSRR) のレジスタ構成 bit 31 0 000003FCH R/W 初期値 →リードオンリ →不定 401 第 14 章 REALOS 関連ハード 14.2.3 ビットサーチモジュールの動作説明 ビットサーチモジュールの動作について説明します。 ■ 0 検出 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と , 返す数 値の関係は , 表 14.2-1 を参照してください。 "0" が存在しないとき ( すなわち "FFFFFFFFH" という数値のとき ) , 32 という値をサー チ結果として返します。 【実行例】 書込みデータ 読出し値 (10 進 ) 11111111111111111111000000000000B ("FFFFF000H") → 20 11111000010010011110000010101010B ("F849E0AAH") → 5 10000000000000101010101010101010B ("8002AAAAH") → 1 11111111111111111111111111111111B ("FFFFFFFFH") → 32 ■ 1 検出 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と返す値と の関係は , 表 14.2-1 のとおりです。 "1" が存在しないとき ( すなわち "00000000H" という数値のとき ) , 32 という値をサー チ結果として返します。 【実行例】 書込みデータ 402 読出し値 (10 進 ) 00100000000000000000000000000000B ("20000000H") → 2 00000001001000110100010101100111B ("01234567H") → 7 00000000000000111111111111111111B ("0003FFFFH") → 14 00000000000000000000000000000001B ("00000001H") → 31 00000000000000000000000000000000B ("00000000H") → 32 第 14 章 REALOS 関連ハード ■ 変化点検出 変化点検出用データレジスタに書き込まれたデータを bit30 から LSB へスキャンし , MSB の値と比較します。 最初に MSB と異なる値を検出した位置を返します。検出結果は , 検出結果レジスタを 読み出すことで得られます。 検出した位置と返す値は , 表 14.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 表 14.2-1 に , ビット位置と返す値 (10 進 ) を示します。 表 14.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 403 第 14 章 REALOS 関連ハード ■ 退避・復帰の処理 割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ い。 1) 1 検出用データレジスタを読み出し , この内容を保存 ( 退避 ) 2) ビットサーチモジュールを使用 3) 1) で退避したデータを 1 検出用データレジスタに書込み ( 復帰 ) 以上の操作により, 次に検出結果レジスタを読み出したときに得られる値は, 1)以前に, ビットサーチモジュールに書き込まれた内容に応じたものとなります。 最後に書き込まれたデータレジスタが0検出用または変化点検出用であっても, 上記の 手順で正しく元に戻ります。 404 第 15 章 DMAC (DMA コントローラ ) DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について説明します。 15.1 DMAC (DMA コントローラ ) の概要 15.2 DMAC (DMA コントローラ ) のレジスタ詳細説明 15.3 DMAC (DMA コントローラ ) の動作説明 15.4 DMAC (DMA コントローラ ) の動作フロー 15.5 データバス 405 第 15 章 DMAC (DMA コントローラ ) 15.1 DMAC (DMA コントローラ ) の概要 DMAC (DMA コントローラ ) は , FR ファミリデバイスにて DMA(Direct Memory Access) 転送を実現するためのモジュールです。 DMAC (DMA コントローラ ) の制御による DMA 転送により , CPU を介さずに各種 データ転送を高速に行うことが可能となり , システムのパフォーマンスを増加させ ます。 ■ DMAC のハードウェア構成 DMAC (DMA コントローラ ) は , 主に以下のものより構成されます。 • 独立した DMA チャネル× 5 チャネル • 5 チャネル独立アクセス制御回路 • 32 ビットアドレスレジスタ ( リロード指定可能 :ch.0 ∼ ch.4) • 16 ビット転送回数レジスタ ( リロード指定可能 : 各チャネル 1 本 ) • 4 ビットブロック回数レジスタ ( 各チャネル 1 本 ) • 2 サイクル転送 ■ DMAC の主要機能 DMAC (DMAコントローラ)によるデータ転送には, 主に以下のような機能があります。 ● 複数チャネルの独立したデータ転送が可能 (5 チャネル ) • 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) • ch.0 ∼ ch.1 間にて順位回転が可能 • DMAC 起動要因 - 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込みを含む ) - ソフトウェア要求 ( レジスタ書込み ) • 転送モード - バースト転送 / ステップ転送 / ブロック転送 - アドレッシングモード : 32 ビットアドレス指定 ( 増加 / 減少 / 固定 : アドレス増減幅は± 1, 2, 4 固定 ) - データの種類 : バイト / ハーフワード / ワード長 - シングルショット / リロード選択可能 406 第 15 章 DMAC (DMA コントローラ ) ■ DMAC のレジスタ概要 図 15.1-1 に , DMAC のレジスタ概要を示します。 図 15.1-1 DMAC のレジスタ概要 ch.0 制御 / ステータスレジスタ A DMACA0 bit 31 000200H ch.0 制御 / ステータスレジスタ B DMACB0 000204H ch.1 制御 / ステータスレジスタ A DMACA1 000208H ch.1 制御 / ステータスレジスタ B DMACB1 00020CH ch.2 制御 / ステータスレジスタ A DMACA2 000210H ch.2 制御 / ステータスレジスタ B DMACB2 000214H ch.3 制御 / ステータスレジスタ A DMACA3 000218H ch.3 制御 / ステータスレジスタ B DMACB3 00021CH ch.4 制御 / ステータスレジスタ A DMACA4 000220H ch.4 制御 / ステータスレジスタ B DMACB4 000224H 全体制御レジスタ DMACR 000240H ch.0 転送元アドレス設定レジスタ DMASA0 001000H ch.0 転送先アドレス設定レジスタ DMADA0 001004H ch.1 転送元アドレス設定レジスタ DMASA1 001008H ch.1 転送先アドレス設定レジスタ DMADA1 00100CH ch.2 転送元アドレス設定レジスタ DMASA2 001010H ch.2 転送先アドレス設定レジスタ DMADA2 001014H ch.3 転送元アドレス設定レジスタ DMASA3 001018H ch.3 転送先アドレス設定レジスタ DMADA3 00101CH ch.4 転送元アドレス設定レジスタ DMASA4 001020H ch.4 転送先アドレス設定レジスタ DMADA4 001024H 24 23 16 15 8 7 0 407 第 15 章 DMAC (DMA コントローラ ) ■ DMAC のブロックダイヤグラム 図 15.1-2 に , DMAC のブロックダイヤグラムを示します。 カウンタ バスコントローラへ DMA転送要求 バッファ セレクタ ライトバック 図 15.1-2 DMAC のブロックダイヤグラム DTC2段レジスタ DTCR DMA起動要因 選択回路 & 要求受付け 制御 ペリフェラル起動要求/停止入力 外部端子起動要求/停止入力 カウンタ DSS[3:0] バッファ 読出し 書込み 優先度回路 割込みコントローラへ IRQ[4:0] 周辺割込みクリア MCLREQ ERIE,EDIE セレクタ 読出し/書込み 制御 BLKレジスタ 408 セレクタ DMAコントローラ DSAD2段レジスタ SADM,SASZ[7:0] SADR DDAD2段レジスタ DADM,DASZ[7:0] DADR ライトバック ライトバック バス制御部 セレクタ DDNレジスタ セレクタ アドレス カウンタバッファ アクセス カウンタバッファ DDN アドレスカウンタ バスコン トローラ へ バス制御部 状態遷移回路 X-bus TYPE.MOD,WS 第 15 章 DMAC (DMA コントローラ ) 15.2 DMAC (DMA コントローラ ) のレジスタ詳細説明 DMAC の各レジスタの詳細について説明します。 ■ レジスタ設定時の注意 本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。 * マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換 えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。 DMA 転送の起動禁止状態 (DMACR:DMAE = 0 または DMACA:DENB = 0 のとき ) で 設定した場合は , 起動許可後に設定は有効になります。 DMA 転送の一時停止状態 (DMACR:DMAH3 ∼ DMAH0 ≠ 0000B または DMACA:PAUS = 1 のとき ) で設定した場合は , 一時停止解除後に設定は有効になります。 409 第 15 章 DMAC (DMA コントローラ ) 15.2.1 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータス レジスタ A DMACA0 ∼ DMACA4 は DMAC 各チャネルの動作制御を行うレジスタで , 各チャネ ルごとに独立して存在します。 ■ DMACA0 ∼ DMACA4 のビット機能 図 15.2-1 に , DMACA0 ∼ DMACA4 の各ビット機能を示します。 図 15.2-1 DMACA0 ∼ DMACA4 の各ビット機能 bit 31 30 29 28 27 DENB PAUS STRG bit 15 14 13 26 25 24 23 22 IS [4 : 0] 12 11 10 21 20 19 8 7 6 17 16 BLK [3 : 0] 予約 9 18 5 4 3 2 1 0 DTC [15 : 0] ( 初期値 : 00000000H) [bit31] DENB(Dma ENaBle) : DMA 動作許可ビット 各転送チャネルに対応して DMA 転送の起動許可 / 禁止を行います。 起動されたチャネルは , 転送要求が発生して受け付けられると DMA 転送を開始し ます。起動許可されていないチャネルに対して発生した転送要求は , すべて無効と なります。 起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" にな り , 転送は停止します。 本ビットに "0" を書き込むと強制停止しますが , 必ず PAUS ビット [bit30:DMACA] で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一時停止 しないで強制停止した場合は DMA は停止しますが転送データは保証されません。 停止の確認は DSS2 ∼ DSS0 ビット (bit18 ∼ bit16:DMACB) で行ってください。 DENB 機 能 0 対応チャネル DMA 動作禁止 [ 初期値 ] 1 対応チャネル DMA 動作許可 • リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。 • 読出し / 書込み可能です。 DMAC 全体制御レジスタ DMACR の bit31:DMAE ビットにより , 全チャネルの動作 が禁止されている場合 , 本ビットへの "1" 書込みは無効となり停止状態を維持しま す。また , 本ビットにより動作が許可されている状態にて前記ビットにより動作が 禁止された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。 410 第 15 章 DMAC (DMA コントローラ ) [bit30] PAUS(PAUSe) : 一時停止指示 対応するチャネルの DMA 転送の一時停止制御を行います。本ビットが設定される と , 再び本ビットがクリアされるまでの間は DMA 転送を行いません (DMA が停止 中は DSS ビットが "1XXB" になります ) 。 起動前に本ビットを設定してから起動した場合 , 一時停止状態のままとなります。 本ビットが設定されている間に新たに発生した転送要求は受け付けられますが , 本 ビットをクリアしないと転送は開始しません (「15.3.10 転送要求の受付けと転送」 を参照 ) 。 PAUS 機 能 0 対応チャネル DMA 動作許可 [ 初期値 ] 1 対応チャネル DMA 一時停止 • リセット時 :"0" に初期化されます。 • 読出し / 書込み可能です。 [bit29] STRG(Software TRiGger) : 転送要求 対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開 始します。ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操 作は無効となります。 STRG 機 能 0 無効 [ 初期値 ] 1 DMA 起動要求 • リセット時 :"0" に初期化されます。 • 読出し値は常に "0" となります。 • 書込み値は "1" のみ有効で , "0" は動作に影響を与えません。 <注意事項> DMAE ビットの書込みによる起動と本ビットによる転送要求が同時に発生する場合 , 転送 要求は有効となり , 転送を開始します。また , PAUS ビットへの "1" 書込みと同時に発生 する場合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始 しません。 411 第 15 章 DMAC (DMA コントローラ ) [bit28 ∼ bit24] IS4 ∼ IS0 (Input Select)* : 転送要因選択 転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ トウェア転送要求は本設定にかかわらず有効となります。 表 15.2-1 転送要求の要因 IS (Input Source) 機能 転送停止要求 00000B ソフトウェア転送要求のみ 00001B ∼ 01101B 設定禁止 01110B 外部端子 (DREQ) "H" レベルまたは↑エッジ 01111B 外部端子 (DREQ) "L" レベルまたは↓エッジ 10000B 外部割込み 0 − 10001B 外部割込み 1 − 10010B 外部割込み 2 − 10011B 外部割込み 3 − 10100B リロードタイマ 0 − 10101B リロードタイマ 1 − 10110B LIN-UART0 RX ( 受信完了 ) あり 10111B LIN-UART0 TX ( 送信完了 ) − 11000B LIN-UART1 RX ( 受信完了 ) あり 11001B LIN-UART1 TX ( 送信完了 ) − 11010B LIN-UART4 RX ( 受信完了 ) あり 11011B LIN-UART4 TX ( 送信完了 ) − 11100B LIN-UART5 RX ( 受信完了 ) あり 11101B LIN-UART5 TX ( 送信完了 ) − 11110B A/D コンバータ − 11111B PPG0 − − • リセット時 : "00000B" に初期化されます。 • 読出し / 書込み可能です。 周辺機能の割込みによる DMA 起動を設定した場合 (IS = 1XXXXB), 選択した機能 は ICR レジスタで割込みを禁止状態にしてください。また , 周辺機能の割込みによ る DMA 起動を設定した状態で , ソフトウェア転送要求により DMA 転送を起動する と , 転送終了後 , 該当する周辺に対して要因クリアを行います。このため , 本来の転 送要求をクリアしてしまう可能性がありますので , 周辺機能の割込みによる DMA 転送を設定した状態では , ソフトウェア転送要求による起動を行わないでくださ い。 412 第 15 章 DMAC (DMA コントローラ ) [bit23 ∼ bit20] 予約 : 未使用ビット 読出し値は "0000B" 固定です。書込みは無効となります。 [bit19 ∼ bit16] BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定 対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設 定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し回 数 ) となります。 ブロック転送を行わない場合は "01H" ( サイズ 1) を設定してください。 表 15.2-2 対応するチャネルのブロック転送時のブロックサイズ BLK XXXXB 機 能 対応チャネルのブロックサイズ指定 • リセット時 :"0000B" に初期化されます。 • 読出し / 書込み可能です。 • 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。 • 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。 [bit15 ∼ bit0] DTC15 ∼ DTC0 (Dma Terminal Count register)* : 転送回数レジスタ 転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。 すべてのレジスタには , 専用のリロードレジスタがあります。転送回数レジスタの リロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設定 値をレジスタに戻します。 DTC XXXXH 機 能 対応チャネルの転送回数指定 DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 ) 。DMA の転 送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了 します。そのため , DMA 動作中の転送回数指定値を読み出すことはできません。 • リセット時 : "0000H" に初期化されます。 • 読出し / 書込み可能です。DTC のアクセスは , 必ずハーフワード長またはワード 長にてアクセスしてください。 • 読出し時の値は , カウント値となります。リロード値の読出しはできません。 413 第 15 章 DMAC (DMA コントローラ ) 15.2.2 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータス レジスタ B DMACB0 ∼ DMACB4 は , DMAC 各チャネルの動作制御を行うレジスタで , 各チャ ネルごとに独立して存在します。 ■ DMACB0 ∼ DMACB4 のビット機能 図 15.2-2 に , DMACB0 ∼ DMACB4 の各ビット機能を示します。 図 15.2-2 DMACB0 ∼ DMACB4 の各ビット機能 bit 31 30 TYPE [1 : 0] bit 15 14 29 28 27 26 MOD [1 : 0] WS [1 : 0] 13 11 12 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_XXXXXXXX_XXXXXXXXB) [bit31, bit30] TYPE1, TYPE0 (TYPE)* : 転送タイプ設定 対応チャネルの動作タイプを以下のように設定します。 2 サイクル転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設定して読出し動作と書 込み動作を転送回数分繰り返して転送するモードです。 表 15.2-3 対応チャネルの動作タイプ TYPE 機 能 00B 2 サイクル 転送 [ 初期値 ] 01B 設定禁止 10B 設定禁止 11B 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 • 必ず "00B" に設定してください。 414 第 15 章 DMAC (DMA コントローラ ) [bit29, bit28] MOD1, MOD0 (MODe)* : 転送モード設定 対応チャネルの動作モードを以下のように設定します。 MOD 機 能 00B ブロック / ステップ転送モード [ 初期値 ] 01B バースト転送モード 10B 設定禁止 11B 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 [bit27, bit26] WS1, WS0 (Word Size) : 転送データ幅選択 対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で 指定回数分の転送を行います。 WS 機 能 00B バイト単位で転送 [ 初期値 ] 01B ハーフワード単位で転送 10B ワード幅単位で転送 11B 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 [bit25] SADM(Source-ADdr, count-Mode select)* : 転送元アドレスカウントモード指定 対応するチャネルの転送元アドレスの 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1 転送後に加算 / 減算されて転送終了時に次回アクセス用アドレスが対応するアドレ スレジスタ (DMASA) に書き込まれます。 そのため , DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン ト幅 (SASZ, DASZ) を "0" としてください。 SADM 機 能 0 転送元アドレスは増加します。[ 初期値 ] 1 転送元アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 415 第 15 章 DMAC (DMA コントローラ ) [bit24] DADM(Destination-ADdr, Count-Mode select)* : 転送先アドレスカウントモード指定 対応するチャネルの転送先アドレスの 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1 転送後に加算 / 減算されて転送終了時に次回アクセス用アドレスが対応するアド レスレジスタ (DMADA) に書き込まれます。 そのため , DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン ト幅 (SASZ, DASZ) を "0" としてください。 DADM 機 能 0 転送先アドレスは増加します。[ 初期値 ] 1 転送先アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [bit23] DTCR(DTC-reg, Reload)* : 転送回数レジスタリロード指定 対応するチャネルの転送回数レジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値 を初期設定値に戻して停止し , 転送要求 (STRG, または IS 設定による起動要求 ) 待 ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません ) 。 DENB = 0, または DMAE = 0 を設定すると強制停止します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 , DENB ビットはクリアされます。 DTCR 機 能 0 転送回数レジスタリロードを禁止 [ 初期値 ] 1 転送回数レジスタリロードを許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 416 第 15 章 DMAC (DMA コントローラ ) [bit22] SADR(Source-ADdr.-reg, Reload)* : 転送元アドレスレジスタリロード指定 対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス レジスタ値を初期設定値に戻します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。 本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し ている場合は , 増加したアドレスとなります ) 。 SADR 機 能 0 転送元アドレスレジスタリロード禁止 [ 初期値 ] 1 転送元アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [bit21] DADR(Dest.-ADdr.-reg, Reload)* : 転送先アドレスレジスタリロード指定 対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス レジスタ値を初期設定値に戻します。 その他 , 機能の詳細は bit22:SADR の内容と等価になります。 DADR 機 能 0 転送先アドレスレジスタリロード禁止 [ 初期値 ] 1 転送先アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 417 第 15 章 DMAC (DMA コントローラ ) [bit20] ERIE (ERror Interrupt Enable)* : エラー割込み出力許可 エラー発生による終了時の割込み発生を制御します。発生したエラーの内容は DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割込みが発生するのではなく , 特定の 終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼ DSS0 ビット の説明を参照 ) 。 ERIE 機 能 0 エラー割込み要求出力禁止 [ 初期値 ] 1 エラー割込み要求出力許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [bit19] EDIE(EnD Interrupt Enable)* : 終了割込み出力許可 正常終了時の割込み発生を制御します。 EDIE 機 能 0 終了割込み要求出力禁止 [ 初期値 ] 1 終了割込み要求出力許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [bit18 ∼ bit16] DSS2 ∼ DSS0 (Dma Stop Status)* : 転送停止要因表示 対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー ド ) を表示します。 終了コードの内容は以下のとおりです。 表 15.2-4 転送停止要因表示 DSS 機 能 割込み発生 000B 初期値 なし X01B ― なし X10B 転送停止要求 X11B 正常終了 終了 1XXB DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど ) なし エラー 転送停止要求は , 周辺回路からの要求を使用した場合のみ設定されます。 なお , 「割込み発生」欄は , 発生可能な割込み要求の種類を示します。 • リセット時 : "000B" に初期化されます。 • "000B" を書き込むことによりクリアされます。 • 読出し / 書込み可能ですが , 本ビットへの書込みは "000B" のみ有効となります。 418 第 15 章 DMAC (DMA コントローラ ) [bit15 ∼ bit8] SASZ7 ∼ SASZ0 (Source Addr count SiZe)* : 転送元アドレスカウントサイズ指定 対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送元アドレスカウントモード (SADM) の指定に従います。 SASZ 機 能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時 : "00000000B" に初期化されます。 • 読出し / 書込み可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し てください。 [bit7 ∼ bit0] DASZ7 ∼ DASZ0 (Des Addr count SiZe)*: 転送先アドレスカウントサイズ 指定 対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送先アドレスカウントモード (DADM) の指定に従います。 DASZ 機 能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時 : "00000000B" に初期化されます。 • 読出し / 書込み可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し てください。 419 第 15 章 DMAC (DMA コントローラ ) 15.2.3 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先ア ドレス設定レジスタ DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 は , DMAC 各チャネルの動作制御を行 うレジスタで , 各チャネルごとに独立して存在します。 ■ DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 のビット機能 DMASA0∼DMASA4/DMADA0∼DMADA4の各ビット機能は, 以下に示すとおりです。 図 15.2-3 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 22 21 20 19 18 17 16 6 5 4 3 2 1 0 DMASA [31 : 16] bit 15 14 13 12 11 10 9 8 7 DMASA [15 : 0] ( 初期値 : XXXXXXXXH) bit 31 30 29 28 27 26 25 24 23 DMADA [31 : 16] bit 15 14 13 12 11 10 9 8 7 DMADA [15 : 0] ( 初期値 : XXXXXXXXH) 転送元 / 転送先アドレスを格納するレジスタ群です。32 ビット長で構成されています。 [bit31 ∼ bit0] DMASA31 ∼ DMASA0 (DMA Source Addr)* : 転送元アドレス設定 転送元アドレスの設定を行います。 420 第 15 章 DMAC (DMA コントローラ ) [bit31 ∼ bit0] DMADA31 ∼ DMADA0 (DMA Destination Addr)* : 転送先アドレス設定 転送先アドレスの設定を行います。 DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ ンタバッファに格納して 1 転送ごとに設定に従ってアドレスカウントします。DMA の転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は 終了します。そのため , DMA 動作中のアドレスカウンタ値を読み出すことはできま せん。 すべてのレジスタには , 専用のリロードレジスタがあります。転送元 / 転送先アド レスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自 動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには影 響を与えません。 • リセット時 : "00000000H" に初期化されます。 • 読出し / 書込み可能です。本レジスタは , 必ず 32 ビットデータでアクセスしてく ださい。 • 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア ドレス値となります。リロード値の読出しはできません。そのため , 転送アドレ スをリアルタイムで読出しすることはできません。 • 存在しない上位ビットには , "0" を設定してください。 <注意事項> 本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ に DMA 転送を行うことはできません。 421 第 15 章 DMAC (DMA コントローラ ) 15.2.4 DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御 レジスタ DMACR は , DMAC5 チャネル分全体の動作制御を行うレジスタです。本レジスタは 必ずバイト長でアクセスしてください。 ■ DMACR のビット機能 図 15.2-4 に , DMACR の各ビット機能を示します。 図 15.2-4 DMACR の各ビット機能 bit bit 31 30 29 28 27 26 25 DMAE − − PM01 15 14 13 12 11 10 9 − − − − − − − 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" に初期化されます。 • 読出し / 書込み可能です。 422 第 15 章 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] DMAH3 ∼ DMAH0 (DMA Halt) : DMA 一時停止 DMA 全チャネルの一時停止制御を行います。本ビットが設定されると , 再び本ビッ トがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。 起動前に本ビットを設定してから起動した場合 , 全チャネルが一時停止のままとな ります。 本ビットが設定されている間に DMA 転送が許可 (DENB = 1) されているチャネル に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送 を開始します。 DMAH 0000B 0000B 以外 機能 全チャネル DMA 動作許可 [ 初期値 ] 全チャネル DMA 一時停止 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [bit30, bit29, bit23 ∼ bit0] 予約 : 予約ビット 読出し値は不定です。 423 第 15 章 DMAC (DMA コントローラ ) 15.3 DMAC (DMA コントローラ ) の動作説明 DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など について説明します。 ■ DMAC の概要 本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー タ転送を制御する多機能 DMA コントローラです。 424 第 15 章 DMAC (DMA コントローラ ) 15.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 つの単位として動作を行い ます。 転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへデー タを書き込みます。 ■ 転送アドレス アドレッシングには以下のようなものがあり , 各チャネル転送元 / 転送先ごとに独立に 設定します。 ● 2 サイクル転送でのアドレスの指定 あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を アドレスとしてアクセスします。 転送要求を受け付けたら , DMA はレジスタからアドレスを一時記憶バッファに格納し て転送を開始します。 1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加 425 第 15 章 DMAC (DMA コントローラ ) 算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ の内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバック されます。 そのため , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか 更新されませんので転送中のアドレスをリアルタイムに知ることはできません。 ■ 転送回数と転送終了 ● 転送回数 1 ブロック転送単位終了ごとに , 転送回数レジスタを減数 ( − 1) します。転送回数レジ スタが "0" になると指定転送回数終了となり , 終了コードを表示して停止または再起動 します。 転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新 されません。 転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。 ● 転送終了 転送終了要因には , 以下のようなものがあり , 終了時は終了コードとして要因が表示さ れます (DMACB:DSS2 ∼ DSS0)。 • 指定転送回数の終了 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) →正常終了 • 周辺回路からの転送停止要求の発生→エラー • アドレスエラーの発生→エラー • リセットの発生→リセット 各終了要因に対応して , 転送停止要因が表示 (DSS) されて転送終了割込み / エラー割込 みを発生可能です。 426 第 15 章 DMAC (DMA コントローラ ) 転送要求の設定 15.3.2 DMA 転送を起動する転送要求には , 以下の 2 種類があります。 • 内蔵周辺要求 • ソフトウェア要求 ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用することが できます。 ■ 内蔵周辺要求 内蔵周辺回路の割込み発生により , 転送要求を発生します。 各チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します (DMACA:IS4 ∼ IS0 = 1XXXXB)。 外部転送要求とは同時に使用することができません。 <注意事項> 転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン トローラの設定を割込み禁止に設定してください (ICR レジスタ ) 。 ■ ソフトウェア要求 レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。 上記の転送要求とは独立で , 常に使用することができます。 起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに 対して DMA 転送要求を出力して転送を開始します。 427 第 15 章 DMAC (DMA コントローラ ) 15.3.3 転送シーケンス 各チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転 送モードを独立して設定することができます (DMACB:TYPE1, TYPE0, MOD1, MOD0 の設定 ) 。 ■ 転送シーケンスの選択 レジスタの設定により , 以下のシーケンスが選択可能です。 • バースト 2 サイクル転送 • ブロック / ステップ 2 サイクル転送 ■ バースト 2 サイクル転送 1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転 送元 / 転送先アドレスは 32 ビット領域指定可能です。 転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。 表 15.3-1 にバースト 2 サイクル転送の指定可能転送アドレスを示します。 表 15.3-1 バースト 2 サイクル転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 32 ビット全領域指定可能 → 32 ビット全領域指定可能 〔バースト転送の特長〕 • 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送 を 行 い ま す。転 送 回 数 は ブ ロ ッ ク サ イ ズ 分 × 転 送 回 数 分 に な り ま す (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0)。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送回数レジスタのリロード機能が有効である場合, 転送終了後より次の転送要 求を受け付けます。 • 転送中に , より高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロッ ク転送単位の境目でチャネルを切り換えてそのチャネルの転送要求がクリアさ れるまで復帰しません。 図 15.3-1 に , バースト転送例を示します。 図 15.3-1 バースト転送例 転送要求↑(エッジ) バス動作 転送回数 CPU SA DA 4 SA DA 3 SA DA 2 SA DA 1 転送終了 (外部端子立上りエッジ起動,ブロック数=1, 転送回数=4のときのバースト転送例) 428 CPU 0 第 15 章 DMAC (DMA コントローラ ) ■ ステップ / ブロック転送 2 サイクル転送 ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場 合は転送元 / 転送先アドレスは 32 ビット領域指定可能です。 表 15.3-2 にステップ / ブロック転送 2 サイクル転送の指定可能転送アドレスを示します。 表 15.3-2 ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 32 ビット全領域指定可能 → 32 ビット全領域指定可能 ■ ステップ転送 ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。 〔ステップ転送の特長〕 • 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を 停止します ( バスコントローラに対して DMA 転送要求を取り下げる ) 。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送中により , 高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止 後に , チャネルを切り換えて転送を開始します。ステップ転送における優先順位は , 転送要求が同時に発生した場合のみ意味があります。 ■ ブロック転送 ブロックサイズを "1" 以外に設定すると , ブロック転送シーケンスとなります。 [ ブロック転送の特長 ] 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ プ転送と全く同じ動作となります。図 15.3-2 にブロック転送例を示します。 図 15.3-2 ブロック転送例 転送要求(↑エッジ) バス動作 ブロック数 転送回数 CPU SA DA SA 2 DA 1 2 CPU 0 SA DA SA 2 DA 1 1 転送終了 (外部端子立上りエッジ起動,ブロック数=2, 転送回数=2のときのブロック転送例) 429 第 15 章 DMAC (DMA コントローラ ) 15.3.4 DMA 転送全般 DMA の転送動作について説明します。 ■ ブロックサイズ 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) の データの集合となります。 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転送 単位はブロックサイズ指定値分の転送サイクル数より構成されることになります。 転送中に , より高い優先順位の転送要求が受け付けられた場合または転送の一時停止 要求が発生した場合 , ブロック転送時でも 1 転送単位の境界にならないと停止しませ ん。これにより , 分割・一時停止を希望しないデータブロックのデータ保護が可能とな りますが , ブロックサイズが大きい場合はレスポンスを低下させる原因になります。 リセット発生の場合のみ直ちに停止しますが , 転送中であったデータの内容などは保 証されません。 ■ リロード動作 本モジュールでは, 各チャネルごとに, 以下の3種類のリロード機能の設定が可能です。 (1) 転送回数レジスタリロード機能 指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起 動受付け待ちします。 全転送シーケンスを繰り返し行う際に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のま まとなり , 以降の転送は行われません。 (2) 転送元アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定 します。 転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ 値が終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用 します。 (3) 転送先アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定 します。 転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。 ( 以下 (2) と同じ ) 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了後の 再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。 430 第 15 章 DMAC (DMA コントローラ ) 〔動作モードとリロード動作の特殊な例〕 外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ のままリロードして転送を継続します。この場合も終了コードは設定されます。 転送終了後いったん停止して , 再度入力検出から行いたい場合は , リロード指定を 行わないようにしてください。 バースト / ブロック / ステップ転送モードで転送している場合 , 転送が終了し , リ ロードすると , いったん転送を中断し , 改めて転送要求入力が検出されるまで転送 を行いません。 431 第 15 章 DMAC (DMA コントローラ ) アドレッシングモード 15.3.5 各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。 その指定方法について説明します。転送シーケンスによって設定してください。 ■ アドレスレジスタ指定 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) に転送元アドレス を , 転送先アドレス設定レジスタ (DMADA) に転送先アドレスを設定してください。 〔アドレスレジスタの特長〕 32 ビット長のレジスタです。 〔アドレスレジスタの機能〕 • 毎アクセス時に読み出され , アドレスバスへ放出されます。 • 同時にアドレスカウンタで次回アクセス時のアドレス計算が行われ, 計算結果の アドレスでアドレスレジスタを更新します。 • アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算のどち らかを選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値 によります (DMACB:SASZ, DASZ)。 • 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最 終アドレスにアドレス計算をした結果のアドレスが残されます。 • リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。 <参考> 32 ビット長アドレス計算の結果 , オーバフロー / アンダフローが発生した場合 , アドレス エラーとして検出され , そのチャネルの転送を中止します ( 表 15.2-4 を参照 ) 。 <注意事項> • アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。 • DMAC により DMAC 自身のレジスタへの転送は行わないでください。 432 第 15 章 DMAC (DMA コントローラ ) 15.3.6 データの種類 1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。 • バイト • ハーフワード • ワード ■ アクセスアドレス DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ ス指定においてデータ長と一致しないアドレスが設定された場合 , 異なる下位ビット は無視されます。 • ワード : 実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バイトとなります。 • ハーフワード : 実際のアクセスアドレスは下位 1 ビットが "0B" から始まる 2 バイトとなります。 • バイト : 実際のアクセスアドレスとアドレス指定が一致します。 転送元アドレスと転送先アドレスの下位ビットが一致しない場合 , 内部アドレスバス 上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記 の決まりに従ってアドレスが修正されてアクセスが行われます。 433 第 15 章 DMAC (DMA コントローラ ) 15.3.7 転送回数制御 転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回 数指定値は転送回数レジスタ (DMACA:DTC) にて設定します。 ■ 転送回数レジスタとリロード動作 レジスタ値は転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減算 されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され , そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。 〔転送回数レジスタ群の特長〕 • 各レジスタ 16 ビット長です。 • すべてのレジスタにはそれぞれ専用リロードレジスタがあります。 • レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。 〔リロード動作〕 • リロード機能があるレジスタで, リロード機能が許可されている場合にのみ有効 です。 • 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。 • 転送回数カウンタにてカウントを行った際 , "0" になると転送終了を通知すると ともにリロードレジスタから初期値を読み出して回数レジスタに書き込みます。 434 第 15 章 DMAC (DMA コントローラ ) CPU 制御 15.3.8 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 要求を有効にします。 <注意事項> • レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使 用することができません。 • DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてください。 435 第 15 章 DMAC (DMA コントローラ ) 15.3.9 動作開始 DMA 転送の開始は , 各チャネルごとに独立に制御しますが , その前に全チャネルの 動作を許可しておく必要があります。 ■ 全チャネル動作許可 DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら かじめ全チャネルの動作を許可する必要があります。 許可されていない状態で行った起動設定 , および発生した転送要求はすべて無効とな ります。 ■ 転送起動 各チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動 されたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転 送動作が開始されます。 ■ 一時停止状態からの起動 各チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にした場合 , 転送動 作を起動しても一時停止状態を維持します。この間に転送要求が発生した場合は , 要求 を受け付けて保持します。 一時停止を解除した時点から転送を開始します。 436 第 15 章 DMAC (DMA コントローラ ) 15.3.10 転送要求の受付けと転送 転送要求の受付けと転送の内容を説明します。 ■ 転送要求の受付けと転送 起動後から , 各チャネルに対して設定した転送要求のサンプリングが開始されます。 周辺割込み起動を選択した場合 , 転送要求がクリアされるまで DMAC は転送を続けま すが , クリアされると 1 転送単位で転送を停止します ( 周辺割込み起動 ) 。 周辺割込みはレベル検出扱いとなりますので , 割込みは DMA による割込みクリアで行 うようにしてください。 転送要求は他チャネルの要求が受け付けられて転送が行われている間でも常に受け付 けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネルを決定し ています。 437 第 15 章 DMAC (DMA コントローラ ) 15.3.11 DMA による周辺割込みクリア 本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に 周辺割込みを選択したときに機能します (IS4 ∼ IS0 = 1XXXXB のとき )。 周辺割込みのクリアは設定された起動要因にのみ行われます。すなわち , IS4 ∼ IS0 で設定された周辺機能のみクリアされます。 ■ DMA による割込みクリアの発生タイミング 転送モードにより発生するタイミングが違います (「15.4 DMAC (DMA コントロー ラ ) の動作フロー」を参照 ) 。 〔ブロック / ステップ転送〕 ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号が発生 します。 〔バースト転送〕 バースト転送を選択した場合は , 指定転送回数がすべて終了するとクリア信号が発 生します。 438 第 15 章 DMAC (DMA コントローラ ) 15.3.12 一時停止 DMA 転送が一時停止する場合について説明します。 ■ 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に設定 ) 一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って ください。 一時停止を解除すると転送を再開します。 ■ NMI/ ホールド抑止レベル割込み処理中 NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転 送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込 み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その まま保持され , NMI 処理の終了を待ちます。 要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。 439 第 15 章 DMAC (DMA コントローラ ) 15.3.13 動作終了 / 停止 DMA 転送の終了は , 各チャネルごとに独立に制御し , 全チャネルの動作を禁止する ことが可能です。 ■ 転送終了 リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了 コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA: DENB ビットをクリアする ) 。 リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロードし , 終了コードにて「正常終了」を表示した後 , 再度 , 転送要求待ちとなります (DMACA: DENB ビットをクリアしない ) 。 ■ 全チャネル動作禁止 DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ ネルも含めて DMAC のすべての動作が停止します。以降 , 再度 , 全チャネル DMA 動 作を許可しても , 各チャネルごとに再起動しないと転送は行われません。この場合 , 割 込みは一切発生しません。 440 第 15 章 DMAC (DMA コントローラ ) 15.3.14 エラーによる停止 指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー 発生による停止および強制停止があります。 ■ 周辺回路からの転送停止要求の発生 転送要求を出力する周辺回路には , 異常を検出した際などに転送停止要求を発生する ものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。 この転送停止要求を受け取った DMAC は , 終了コードで「転送停止要求」を表示して 対応するチャネルの転送を停止します。 ■ アドレスエラーの発生 各アドレッシングモードにて不適切なアドレッシングが行われたとき , アドレスエ ラーとして検出されます。 「不適切なアドレッシング」とは , 例えば「32 ビットアドレ ス指定時に , アドレスカウンタでオーバフロー / アンダフローが発生した場合」です。 アドレスエラーを検出すると , 終了コードで「アドレスエラーの発生」を表示して対応 するチャネルの転送を停止します。 441 第 15 章 DMAC (DMA コントローラ ) 15.3.15 DMAC 割込み制御 DMAC 割込み制御は , 転送要求となる周辺割込みとは独立に DMAC 各チャネルごと に割込みを出力することが可能です。 ■ DMAC 割込み制御が出力できる割込み • 転送終了割込み : 正常終了した場合のみ発生する。 • エラー割込み : 周辺回路からの転送停止要求 ( 周辺に起因するエラー ) アドレスエラーの発生 ( ソフトウェアに起因するエラー ) これらの割込みはすべて終了コードの内容に従って出力されます。 割込み要求のクリアは , DMACS の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む ことにより行います。 なお , 終了コードは再起動する際には必ず "000B" を書き込んでクリアしてください。 リロード動作が有効である場合 , 自動的に再起動しますが , この時終了コードはクリア されず , 次の転送終了による新しい終了コードの書込み時まで保持されます。 終了コードで表示できる終了要因は1種類のみですので, 複数の要因が同時に発生した 場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されてい る終了コードに従います。 終了コードの表示の優先順位を優先度の高い順に以下に示します。 • リセット • "000B" 書込みによるクリア • 周辺停止要求 • 正常終了 • アドレスエラー検出による停止 • チャネル選択と制御 442 第 15 章 DMAC (DMA コントローラ ) 15.3.16 スリープ中の DMA 転送 DMAC は , スリープモード中でも動作させることができます。 スリープ状態のときの DMA 転送について説明します。 ■ スリープモード中の DMA 転送の注意 スリープモードで DMA 転送する場合 , 次のことに注意する必要があります。 • CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー プモードに入る前に設定を済ませておいてください。 • スリープモードは , 割込みで解除されますので , DMAC 起動要因で周辺割込みを選 択した場合は , 割込みコントローラで割込みを禁止する必要があります。 同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし てください。 443 第 15 章 DMAC (DMA コントローラ ) 15.3.17 チャネル選択と制御 転送チャネルの数は 5 チャネルまで同時に設定が可能です。 各チャネルは基本的に各機能を独立に設定することが可能です。 ■ チャネル間優先順位 DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され ます。順位設定には , 固定 / 回転の 2 モードがあり , チャネルグループ (「■チャネル グループ」を参照 ) ごとに選択します。 ● 固定モード チャネル番号の小さい順に固定されます。 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) 転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高 優先度側に切り換わります。 高優先度側の転送が終了すると , 元のチャネルの転送を再開します。 図 15.3-3 に , 固定モード時の DMA 転送を示します。 図 15.3-3 固定モード時の DMA 転送 ch.0転送要求 ch.1転送要求 バス動作 CPU SA 転送チャネル 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 転送単位ごとにチャネルが切り換わります。 連続 / バースト転送を設定した場合に効果のあるモードです。 図 15.3-4 に回転モード時の DMA 転送を示します。 図 15.3-4 回転モード時の DMA 転送 ch.0転送要求 ch.1転送要求 バス動作 転送チャネル ch.0転送終了 ch.1転送終了 444 CPU SA DA ch.1 SA DA ch.0 SA DA ch.1 SA DA ch.0 CPU 第 15 章 DMAC (DMA コントローラ ) ■ チャネルグループ 優先順位の選択は , 以下の単位で設定します。 表 15.3-3 に , DMA 優先順位選択の設定を示します。 表 15.3-3 DMA 優先順位選択の設定 モード 優先度 備考 固定 ch.0 > ch.1 − 回転 ch.0 > ch.1 ↑↓ ch.0 < ch.1 初期状態は上位側の順位です。 上位側が転送されると反転します。 445 第 15 章 DMAC (DMA コントローラ ) 15.4 DMAC (DMA コントローラ ) の動作フロー 図 15.4-1 および 図 15.4-2 に , DMA 転送の動作フローを示します。 ■ ブロック転送の動作フロー 図 15.4-1 ブロック転送 DMA停止 DENB=>0 DENB=1 リロード許可 起動要求待機 起動要求 初期化 アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は1回のアクセス 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 周辺割込み起動要因選択時のみ アドレス,転送回数, ブロック数,ライトバック 割込みクリア 割込みクリア発生 DTC=0 DMA転送終了 ブロック転送 • すべての起動要因で起動可能(選択) • すべての領域へのアクセス可能 • ブロック数の設定可能 • ブロック数終了で割込みクリア発行 • 指定転送回数終了で DMA 割込みを発行 446 DMA割込み発生 第 15 章 DMAC (DMA コントローラ ) ■ バースト転送の動作フロー 図 15.4-2 バースト転送 DMA停止 DENB=>0 DENB=1 起動要求待機 リロード許可 初期化 アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は1回のアクセス 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 DTC=0 アドレス,転送回数, ブロック数,ライトバック 割込みクリア 周辺割込み起動要因選択時のみ 割込みクリア発生 DMA転送終了 DMA割込み発生 バースト転送 • すべての起動要因で起動可能(選択) • すべての領域へのアクセス可能 • ブロック数の設定可能 • 指定転送回数終了で割込みクリア,DMA 割込みを発行 447 第 15 章 DMAC (DMA コントローラ ) 15.5 データバス 各転送時のデータの動作を示します。 ■ 2 サイクル転送時のデータの動作 図 15.5-1 から図 15.5-6 に 2 サイクル転送時のデータの動作を示します。 図 15.5-1 外部領域→外部領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バス I/F 外部領域=>外部領域 転送 F-bus I/O RAM I/O 図 15.5-2 外部領域→内部 RAM 領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ F-bus RAM 448 F-bus I/O RAM I/O 外部バス I/F 外部領域=>内部RAM領域 転送 第 15 章 DMAC (DMA コントローラ ) 図 15.5-3 外部領域→内蔵 I/O 領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ データバッファ F-bus RAM 外部バス I/F 外部領域=>内蔵I/O領域 転送 F-bus RAM I/O I/O 図 15.5-4 内蔵 I/O 領域→内蔵 RAM 領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus F-bus RAM 外部バス I/F 内蔵I/O領域=>内蔵RAM領域 転送 F-bus RAM I/O I/O 図 15.5-5 内部 RAM 領域→外部領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ F-bus RAM I/O 外部バス I/F 内部RAM領域=>外部領域 転送 F-bus RAM I/O 449 第 15 章 DMAC (DMA コントローラ ) 図 15.5-6 内部 RAM 領域→内蔵 I/O 領域転送 MB91xxx リードサイクル X-bus CPU I-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル X-bus I-bus CPU DMAC 外部バス I/F MB91xxx バスコントローラ D-bus データバッファ F-bus RAM 450 I/O F-bus RAM I/O 外部バス I/F 内部RAM領域=>内蔵I/O領域 転送 第 16 章 CAN コントローラ CAN コントローラの機能と動作について示しま す。 16.1 CAN の特長 16.2 CAN のブロックダイヤグラム 16.3 CAN のレジスタ 16.4 CAN レジスタ機能 16.5 CAN 機能 451 第 16 章 CAN コントローラ 16.1 CAN の特長 CAN は , シリアル通信用の標準プロトコルである CAN プロトコル ver2.0A/B に準 拠しており , 自動車や FA などの工業分野に広く使用されています。 ■ CAN の特長 CAN には以下の特長があります。 • CAN プロトコル ver2.0A/B をサポート • 1Mbps までのビットレートをサポート • メッセージオブジェクトごとの識別マスク • プログラマブル FIFO モードをサポート • マスク可能な割込み • 自己テスト動作用プログラマブルループバックモードをサポート • インタフェースレジスタを使用してメッセージバッファへの読出し / 書込み 452 第 16 章 CAN コントローラ 16.2 CAN のブロックダイヤグラム 図 16.2-1 に , CAN ブロックダイヤグラムを示します。 図 16.2-1 CAN ブロックダイヤグラム CAN_TX CAN_RX CANコントローラ メッセージ RAM メッセージ ハンドラ C_CAN レジスタ群 割込み データ出力 データ入力 アドレス[7:0] 制御 リセット クロック CPUインタフェース ■ CAN コントローラ CAN プロトコルと送受信メッセージ転送のためのシリアル / パラレル変換用のシリア ルレジスタを制御します。 ■ メッセージ RAM メッセージオブジェクトを格納します。 ■ レジスタ群 CAN で使用されるすべてのレジスタです。 ■ メッセージハンドラ メッセージ RAM と CAN コントローラを制御します。 ■ CPU インタフェース FR ファミリ内部バスのインタフェースを制御します。 453 第 16 章 CAN コントローラ 16.3 CAN のレジスタ CAN には , 以下のレジスタがあります。 • CAN 制御レジスタ (CTRLR) • CAN ステータスレジスタ (STATR) • CAN エラーカウンタ (ERRCNT) • CAN ビットタイミングレジスタ (BTR) • CAN 割込みレジスタ (INTR) • CAN テストレジスタ (TESTR) • CAN プリスケーラ拡張レジスタ (BRPE) • 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) 454 第 16 章 CAN コントローラ ■ 全体制御レジスタ一覧 表 16.3-1 全体制御レジスタ一覧 レジスタ アドレス +0 +1 CAN 制御レジスタ ベースアドレス + 00H 初期値 初期値 bit15 ∼ bit8 bit7 ∼ bit0 予約 00000000B CTRLR 予約 00000000B STATR 00000001B 初期値 初期値 − 00000000B 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 CAN テストレジスタ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 IntId15 ∼ IntId8 IntId7 ∼ IntId0 予約 TESTR 00000000B 00000000B 00000000B 00000000B r0000000B CAN プリスケーラ拡張レジスタ ベースアドレス + 0CH コメント CAN ステータスレジスタ bit7 ∼ bit0 CAN 割込みレジスタ ベースアドレス + 08H +3 bit15 ∼ bit8 CAN エラーカウンタ ベースアドレス + 04H +2 予約 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 予約 BRP3 ∼ BRP0 予約 予約 00000000B 00000000B 00000000B 00000000B エラーカウンタは 読出し専用です。 ビットタイミング レジスタは , CCE により書込み可能 となります。 割込みレジスタは 読出し専用です。 テストレジスタは TSET により使用 できます。 TESTR の "r" は CAN_RX 端子の 値を意味します。 プリスケーラ拡張 レジスタは CCE により書込み可能 となります。 455 第 16 章 CAN コントローラ ■ メッセージインタフェースレジスタ一覧 表 16.3-2 メッセージインタフェースレジスタ一覧 (1 / 2) アドレス ベースアドレス + 10H 初期値 レジスタ +0 +1 IF1 コマンド要求レジスタ 初期値 +3 コメント IF1 コマンドマスクレジスタ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 BUSY Mess.No.5 ∼ 0 IF1CMSK 00000000B 00000001B 予約 00000000B IF1 マスクレジスタ 2 ベースアドレス + 14H +2 − 00000000B IF1 マスクレジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 MXtd. MDir, Msk28 ∼ Msk24 Msk23 ∼ Msk16 Msk15 ∼ Msk8 Msk7 ∼ Msk0 11111111B 11111111B 11111111B 11111111B − IF1 アービトレーションレジスタ 2 IF1 アービトレーションレジスタ 1 ベースアドレス + 18H 初期値 ベースアドレス + 1CH 初期値 ベースアドレス + 20H 初期値 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 MsgVal, Xtd, Dir, ID28 ∼ ID24 ID23 ∼ ID16 ID15 ∼ ID8 ID7 ∼ ID0 00000000B 00000000B 00000000B 00000000B IF1 メッセージ制御レジスタ 予約 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 IF1MCTR IF1MCTR 00000000B 00000000B 予約 00000000B 予約 00000000B IF1 データレジスタ A1 IF1 データレジスタ A2 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 Data[0] Data[1] Data[2] Data[3] 00000000B 00000000B 00000000B 00000000B IF1 データレジスタ B1 IF1 データレジスタ B2 ベースアドレス + 24H bit15 ∼ bit8 Data[4] Data[5] Data[6] Data[7] 初期値 00000000B 00000000B 00000000B 00000000B bit7 ∼ bit0 IF1 データレジスタ A2 bit15 ∼ bit8 bit7 ∼ bit0 IF1 データレジスタ A1 ベースアドレス + 30H bit15 ∼ bit8 Data[3] Data[2] Data[1] Data[0] 初期値 00000000B 00000000B 00000000B 00000000B bit7 ∼ bit0 IF1 データレジスタ B2 bit15 ∼ bit8 bit7 ∼ bit0 IF1 データレジスタ B1 ベースアドレス + 34H bit15 ∼ bit8 Data[7] Data[6] Data[5] Data[4] 初期値 00000000B 00000000B 00000000B 00000000B 456 bit7 ∼ bit0 − bit15 ∼ bit8 bit7 ∼ bit0 − ビッグ エンディアン バイト ビッグ エンディアン バイト リトル エンディアン バイト リトル エンディアン バイト 第 16 章 CAN コントローラ 表 16.3-2 メッセージインタフェースレジスタ一覧 (2 / 2) アドレス ベースアドレス + 40H 初期値 レジスタ +0 +1 IF2 コマンド要求レジスタ 初期値 ベースアドレス + 48H 初期値 ベースアドレス + 4CH 初期値 +3 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 BUSY Mess.No.5 ∼ 0 IF2CMSK 00000000B 00000001B 予約 00000000B IF2 マスクレジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 MXtd. MDir, Msk28 ∼ Msk24 Msk23 ∼ Msk16 Msk15 ∼ Msk8 Msk7 ∼ Msk0 11111111B 11111111B 11111111B 11111111B − IF2 アービトレーションレジスタ 2 IF2 アービトレーションレジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 IF2MCTR IF2MCTR 00000000B 00000000B 予約 00000000B 予約 00000000B IF2 メッセージ制御レジスタ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 IF2MCTR IF2MCTR 00000000B 00000000B 予約 00000000B 予約 00000000B IF2 データレジスタ A1 IF2 データレジスタ A2 Data[0] Data[1] Data[2] Data[3] 初期値 00000000B 00000000B 00000000B 00000000B bit15 ∼ bit8 IF2 データレジスタ B1 bit7 ∼ bit0 bit15 ∼ bit8 IF2 データレジスタ B2 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 Data[4] Data[5] Data[6] Data[7] 00000000B 00000000B 00000000B 00000000B IF2 データレジスタ A2 IF2 データレジスタ A1 ベースアドレス + 60H bit15 ∼ bit8 Data[3] Data[2] Data[1] Data[0] 初期値 00000000B 00000000B 00000000B 00000000B bit7 ∼ bit0 IF2 データレジスタ B2 bit15 ∼ bit8 bit7 ∼ bit0 IF2 データレジスタ B1 ベースアドレス + 64H bit15 ∼ bit8 Data[7] Data[6] Data[5] Data[4] 初期値 00000000B 00000000B 00000000B 00000000B bit7 ∼ bit0 − 予約 bit7 ∼ bit0 初期値 − 00000000B ベースアドレス + 50H ベースアドレス + 54H コメント IF2 コマンドマスクレジスタ bit15 ∼ bit8 IF2 マスクレジスタ 2 ベースアドレス + 44H +2 bit15 ∼ bit8 bit7 ∼ bit0 − ビッグ エンディアン バイト ビッグ エンディアン バイト リトル エンディアン バイト リトル エンディアン バイト 457 第 16 章 CAN コントローラ ■ メッセージハンドラレジスタ一覧 表 16.3-3 メッセージハンドラレジスタ一覧 (1 / 2) レジスタ アドレス コメント +0 +1 CAN 送信要求レジスタ 2 ベースアドレス + 80H 初期値 初期値 ベースアドレス + 88H ベースアドレス + 90H 初期値 ベースアドレス + 94H 初期値 ベースアドレス + 98H +3 CAN 送信要求レジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 TxRqst32 ∼ TxRqst25 TxRqst24 ∼ TxRqst17 TxRqst16 ∼ TxRqst9 TxRqst8 ∼ TxRqst1 00000000B 00000000B 00000000B 00000000B CAN 送信要求レジスタ 4 ベースアドレス + 84H +2 CAN 送信要求レジスタ 3 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 TxRqst64 ∼ TxRqst57 TxRqst56 ∼ TxRqst49 TxRqst48 ∼ TxRqst41 TxRqst40 ∼ TxRqs33 00000000B 00000000B 00000000B 00000000B 予約 ( メッセージバッファ数が 65 以上の場合に使用 ) CAN データ更新レジスタ 2 CAN データ更新レジスタ 1 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 NewDat32 ∼ NewDat25 NewDat24 ∼ NewDat17 NewData16 ∼ NewDat9 NewData8 ∼ NewDat1 00000000B 00000000B 00000000B 00000000B CAN データ更新レジスタ 4 CAN データ更新レジスタ 3 bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 NewDat64 ∼ NewDat57 NewDat56 ∼ NewDat49 NewData48 ∼ NewDat41 00000000B 00000000B 00000000B 送信要求レジスタ はリードオンリで す。 送信要求レジスタ はリードオンリで す。(MB91F467R の ch.1) − データ更新レジス タはリードオンリ です。 データ更新レジス タはリードオンリ bit7 ∼ bit0 です。 (MB91F467R の NewData40 ∼ ch.1) NewDat33 00000000B 予約 ( メッセージバッファ数が 65 以上の場合に使用 ) − CAN 割込みペンディングレジスタ 2 CAN 割込みペンディングレジスタ 1 割込みペンディン ベースアドレス + A0H bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 IntPnd32 ∼ IntPnd25 IntPnd24 ∼ IntPnd17 IntPnd16 ∼ IntPnd9 IntPnd8 ∼ IntPnd1 初期値 00000000B 00000000B 00000000B 00000000B 458 グレジスタはリー ドオンリです。 第 16 章 CAN コントローラ 表 16.3-3 メッセージハンドラレジスタ一覧 (2 / 2) レジスタ アドレス コメント +0 +1 +2 +3 CAN 割込みペンディングレジスタ 4 CAN 割込みペンディングレジスタ 3 割込みペンディン ベースアドレス + A4H bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 IntPnd64 ∼ IntPnd57 IntPnd56 ∼ IntPnd49 IntPnd48 ∼ IntPnd41 IntPnd40 ∼ IntPnd33 初期値 00000000B 00000000B 00000000B 00000000B ベースアドレス + A8H ベースアドレス + B0H 予約 ( メッセージバッファ数が 65 以上の場合に使用 ) グレジスタはリー ドオンリです。 (MB91F467R の ch.1) − CAN メッセージ有効レジスタ 2 CAN メッセージ有効レジスタ 1 メッセージ有効レ ジスタはリードオ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 ンリです。 MsgVal32 ∼ MsgVal25 MsgVal24 ∼ MsgVal17 MsgVal16 ∼ MsgVal9 MsgVal8 ∼ MsgVal1 00000000B 00000000B 00000000B 00000000B CAN メッセージ有効レジスタ 4 CAN メッセージ有効レジスタ 3 メッセージ有効レ ジスタはリードオ bit15 ∼ bit8 bit7 ∼ bit0 bit15 ∼ bit8 bit7 ∼ bit0 ンリです。 ベースアドレス (MB91F467R の MsgVal64 ∼ MsgVal56 ∼ MsgVal48 ∼ MsgVal40 ∼ + B4H ch.1) MsgVal57 MsgVal49 MsgVal41 MsgVa33 00000000B ベースアドレス + B8H 00000000B 00000000B 00000000B 予約 ( メッセージバッファ数が 65 以上の場合に使用 ) − 459 第 16 章 CAN コントローラ ■ クロックプリスケーラレジスタ 表 16.3-4 クロックプリスケーラレジスタ レジスタ アドレス 0004C0H 初期値 460 +0 +1 +2 +3 CAN プリス ケーラレジスタ − − − bit3 ∼ bit0 − − − CANPRE[3:0] − − − 00000000B − − − コメント CAN プリスケーラ 第 16 章 CAN コントローラ 16.4 CAN レジスタ機能 CAN レジスタには , 256 バイト (64 ワード ) のアドレス空間が割り当てられていま す。メッセージ RAM への CPU のアクセスは , メッセージインタフェースレジスタ を介して行います。 以下に , CAN レジスタを掲載し , それぞれのレジスタの詳細機能を記載します。 ■ 全体制御レジスタ • CAN 制御レジスタ (CTRLR) • CAN ステータスレジスタ (STATR) • CAN エラーカウンタ (ERRCNT) • CAN ビットタイミングレジスタ (BTR) • CAN 割込みレジスタ (INTR) • CAN テストレジスタ (TESTR) • CAN プリスケーラ拡張レジスタ (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) 461 第 16 章 CAN コントローラ 16.4.1 全体制御レジスタ 全体制御レジスタは , CAN プロトコル制御および動作モードを制御し , ステータス 情報を提供します。 ■ 全体制御レジスタ • CAN 制御レジスタ (CTRLR) • CAN ステータスレジスタ (STATR) • CAN エラーカウンタ (ERRCNT) • CAN ビットタイミングレジスタ (BTR) • CAN 割込みレジスタ (INTR) • CAN テストレジスタ (TESTR) • CAN プリスケーラ拡張レジスタ (BRPER) 462 第 16 章 CAN コントローラ 16.4.1.1 CAN 制御レジスタ (CTRLR) CAN 制御レジスタ (CTRLR) は , CAN コントローラの動作モードを制御します。 ■ レジスタ構成 図 16.4-1 CAN 制御レジスタ (CTRLR) のレジスタ構成 CAN 制御レジスタ ( 上位バイト ) bit アドレス : Base + 00H リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 6 5 4 3 2 1 0 CCE (R/W) (0) DAR (R/W) (0) 予約 (R) (0) EIE (R/W) (0) SIE (R/W) (0) IE (R/W) (0) Init (R/W) (0) CAN 制御レジスタ ( 下位バイト ) bit アドレス : Base + 01H 7 Test (R/W) リード / ライト→ (0) 初期値→ ■ レジスタ機能 [bit15 ∼ bit8] 予約 : 予約ビット これらのビットからは , "00000000B" が読み出されます。 書込みの場合には , "00000000B" を設定してください。 [bit7] Test : テストモード許可ビット Test 機能 0 通常動作 [ 初期値 ] 1 テストモード [bit6] CCE : ビットタイミングレジスタ書込み許可ビット CCE 機能 0 CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ スタへの書込みを禁止します。[ 初期値 ] 1 CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ スタへの書込みを許可します。Init ビットが "1" のときに有効です。 463 第 16 章 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" を設定したモードでは , メッセージオブジェクト ( メッセージオ ブジェクトについては「16.4.3 メッセージオブジェクト」を参照 ) の TxRqst ビット と NewDat ビットの動作が異なります。 • フレーム送信を開始したとき , メッセージオブジェクトの TxRqst が "0" にリセッ トされますが , NewDat ビットは設定されたままです。 • フレーム送信が正常終了すると NewDat は "0" にリセットされます。 • 送信が調停負けもしくはエラーを検出すると , NewDat は設定されたままです。 送信を再開するためには , CPU により TxRqst に "1" を設定する必要があります。 [bit4] 予約 : 予約ビット このビットからは , "0" が読み出されます。 書込みの場合には , "0" を設定してください。 [bit3] EIE : エラー割込みコード許可ビット 464 EIE 機能 0 CAN ステータスレジスタの BOff または EWarn ビットの変化により , CAN 割込みレジスタへの割込みコードの設定を禁止します。 [ 初期値 ] 1 CAN ステータスレジスタの BOff または EWarn ビットの変化により , CAN 割込みレジスタへのステータス割込みコードの設定を許可しま す。 第 16 章 CAN コントローラ [bit2] SIE : ステータス割込みコード許可ビット SIE 機能 0 CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化に より , CAN 割込みレジスタへの割込みコードの設定を禁止します。 [ 初期値 ] 1 CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化に より , CAN 割込みレジスタへのステータス割込みコードの設定を許 可します。 CPU からの書込みによって発生した TxOk, RxOk, LEC ビットの変化 は 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 インタフェースに供給するクロック (CAN クロック ) の分周比を変更する場合は , INIT ビットに "1" を設定した後に CAN プリスケーラレジスタの変更を行ってください。 465 第 16 章 CAN コントローラ 16.4.1.2 CAN ステータスレジスタ (STATR) CAN ステータスレジスタ (STATR) は , CAN ステータスおよび CAN バス状態を表 示します。 ■ レジスタ構成 図 16.4-2 CAN ステータスレジスタ (STATR) のレジスタ構成 CAN ステータスレジスタ ( 上位バイト ) bit アドレス : Base + 02H リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 5 4 3 2 1 0 (R/W) (0) LEC (R/W) (0) (R/W) (0) CAN ステータスレジスタ ( 下位バイト ) bit アドレス : Base + 03H リード / ライト→ 初期値→ 7 6 BOff (R) (0) EWarn (R) (0) EPass RxOk (R) (R/W) (0) (0) TxOk (R/W) (0) ■ レジスタ機能 [bit15 ∼ bit8] 予約 : 予約ビット これらのビットからは , "0" が読み出されます。 書込みの場合には , "0" を設定してください。 [bit7] BOff : バスオフビット BOff 機能 0 CAN コントローラはバスオフ状態ではない ( バスアクティブ ) [ 初期値 ] 1 CAN コントローラはバスオフ状態 [bit6] EWarn : ウォーニングビット EWarn 466 機能 0 送信 , 受信カウンタはいずれも 96 未満 [ 初期値 ] 1 送信または受信カウンタが 96 以上 第 16 章 CAN コントローラ [bit5] EPass: エラーパッシブビット EPass 機能 0 送信 , 受信カウンタはいずれも 128 未満 ( エラーアクティブ状態 ) [ 初期値 ] 1 受信カウンタは RP ビット= 1, 送信カウンタが 128 以上 ( エラーパッシブ状態 ) [bit4] RxOk : メッセージ正常受信ビット RxOk 機能 0 メッセージ受信は異常 , またはバスアイドル状態 [ 初期値 ] 1 メッセージ受信は正常 [bit3] TxOk : メッセージ正常送信ビット TxOk 機能 0 メッセージ送信は異常 , またはバスアイドル状態 [ 初期値 ] 1 メッセージ送信は正常 <注意事項> RxOk および TxOk ビットは , CPU によってのみリセットされます。 467 第 16 章 CAN コントローラ [bit2 ∼ bit0] LEC : ラストエラーコードビット LEC 状態 機能 000B 正常 正常に送信または受信されたことを示します。 [ 初期値 ] 001B Stuff エラー メッセージ内において 6 ビット以上連続してドミナン トまたはレセッシブを検出したことを示します。 010B Form エラー 受信フレームの固定フォーマット部が誤って受信され たことを示します。 011B Ack エラー 送信メッセージに対し , 他のノードからアクノリッジ されなかったことを示します。 100B bit1 エラー 調停フィールドを除くメッセージの送信データにおい て , レセッシブを送信したにもかかわらずドミナント を検出したことを示します。 101B bit0 エラー メッセージの送信データにおいて , ドミナントを送信 したにもかかわらずレセッシブを検出したことを示し ます。バスリカバリ中には , 11 ビットのレセッシブを 検出するごとにセットされます。このビットを読み出 すことによりバスリカバリシーケンスを監視できます。 110B CRC エラー 受信したメッセージの CRC データと計算した CRC の 結果が一致しなかったことを示します。 CPU によって LEC ビットに "111B" の書込みを行って 111B 未検出 から , LEC ビットの読出し値が "111B" の場合は , その 期間には送受信が行われなかったことを示します ( バ スアイドル状態 ) 。 LEC ビットは CAN バス上で発生した最後のエラーを示すコードを保持します。メッ セージがエラーなしで転送 ( 受信 / 送信 ) 完了すると "000B" に設定されます。未検 出コード "111B" は , コード更新をチェックするために 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") はクリアされます。 468 第 16 章 CAN コントローラ 16.4.1.3 CAN エラーカウンタ (ERRCNT) CAN エラーカウンタ (ERRCNT) は , 受信エラーパッシブ表示および受信エラーカウ ンタ , 送信エラーカウンタを示します。 ■ レジスタ構成 図 16.4-3 CAN エラーカウンタ (ERRCNT) のレジスタ構成 CAN エラーカウンタレジスタ ( 上位バイト ) bit アドレス : Base + 04H リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 RP (R) (0) (R) (0) (R) (0) REC6 ∼ REC0 (R) (R) (R) (0) (0) (0) (R) (0) (R) (0) 2 1 0 (R) (0) (R) (0) (R) (0) CAN エラーカウンタレジスタ ( 下位バイト ) bit 7 6 5 (R) (0) (R) (0) (R) (0) アドレス : Base + 05H リード / ライト→ 初期値→ 4 3 TEC7 ∼ TEC0 (R) (R) (0) (0) ■ レジスタ機能 [bit15] RP : 受信エラーパッシブ表示 RP 機能 0 受信エラーカウンタは CAN 仕様でのエラーパッシブ状態ではない [ 初期値 ] 1 受信エラーカウンタは CAN 仕様でのエラーパッシブ状態 [bit14 ∼ bit8] REC6 ∼ REC0 : 受信エラーカウンタ 受信エラーカウンタ値。受信エラーカウンタ値の範囲は 0 ∼ 127 です。 [bit7 ∼ bit0] TEC7 ∼ TEC0 : 送信エラーカウンタ 送信エラーカウンタ値。送信エラーカウンタ値の範囲は 0 ∼ 255 です。 469 第 16 章 CAN コントローラ 16.4.1.4 CAN ビットタイミングレジスタ (BTR) CAN ビットタイミングレジスタ (BTR) は , プリスケーラおよびビットタイミングを 設定します。 ■ レジスタ構成 図 16.4-4 CAN ビットタイミングレジスタ (BTR) のレジスタ構成 CAN ビットタイミングレジスタ ( 上位バイト ) bit アドレス : Base + 06H リード / ライト→ 初期値→ 15 14 予約 (R) (0) (R/W) (0) 13 12 TSeg2 (R/W) (R/W) (1) (0) 11 10 9 (R) (0) TSeg1 (R) (R) (0) (1) 8 (R) (1) CAN ビットタイミングレジスタ ( 下位バイト ) bit 7 6 5 4 アドレス : Base + 07H SJW (R/W) (R/W) リード / ライト→ (0) (0) 初期値→ (R/W) (0) (R/W) (0) 3 2 BRP (R/W) (R/W) (0) (0) 1 0 (R/W) (0) (R/W) (1) CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジスタの設定は , CAN 制御レジスタのCCEビットとInitビットが"1"に設定されているときに行ってください。 470 第 16 章 CAN コントローラ ■ レジスタ機能 [bit15] 予約 : 予約ビット このビットからは , "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 の値がボーレートプリスケーラになります。 CAN クロック (fsys) を分周して , CAN コントローラの基本単位時間 (tq) を決定しま す。 471 第 16 章 CAN コントローラ 16.4.1.5 CAN 割込みレジスタ (INTR) CAN 割込みレジスタ (INTR) は , メッセージ割込みコードおよびステータス割込み コードを表示します。 ■ レジスタ構成 図 16.4-5 CAN 割込みレジスタ (INTR) のレジスタ構成 CAN 割込みレジスタ ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) (R) (0) 6 5 アドレス : Base + 08H リード / ライト→ 初期値→ 12 11 IntId15 ∼ Intld8 (R) (R) (0) (0) 10 9 8 (R) (0) (R) (0) (R) (0) 2 1 0 (R) (0) (R) (0) (R) (0) CAN 割込みレジスタ ( 下位バイト ) bit 7 アドレス : Base + 09H リード / ライト→ 初期値→ 472 (R) (0) (R) (0) (R) (0) 4 3 IntId7 ∼ Intld0 (R) (R) (0) (0) 第 16 章 CAN コントローラ ■ レジスタ機能 表 16.4-1 CAN 割込みレジスタ (INTR) のレジスタ機能 IntId 機能 0000H 割込みなし 0001H ∼ 0040H メッセージ割込みコード ( 割込み要因はメッセージオブジェクトの番号 ) (0021H ∼ 0040H は MB91F467R の ch.1 のみ。) 0041H ∼ 7FFFH 未使用 8000H ステータス割込みコード (CAN ステータスレジスタの変化による割込み ) 8001H ∼ FFFFH 未使用 複数の割込みコードが保留中である場合 , CAN 割込みレジスタは優先度の高い割込み コードを示します。割込みコードが CAN 割込みレジスタに設定されている場合におい ても , 優先度の高い割込みコードが発生すると , CAN 割込みレジスタは優先度の高い 割込みコードに更新されます。 優先度の高い割込みコードは , ステータス割込みコード ("8000H"), メッセージ割込み ("0001H", "0002H", "0003H", ……, "0040H") の順になります。 IntId ビットが "0000H" 以外のときに , CAN 制御レジスタの IE ビットが "1" に設定され ると , CPU への割込み信号が有効になります。IntId の値が "0000H" になる ( 割込み要 因がリセットされる ) もしくは CAN 制御レジスタの IE ビットが "0" にリセットされる と , 割込み信号は無効になります。 対象となるメッセージオブジェクト ( メッセージオブジェクトについては 「16.4.3 メッ セージオブジェクト」を参照 ) の IntPnd ビットを "0" にクリアすると , メッセージ割込 みコードはクリアされます。 ステータス割込みコードは CAN ステータスレジスタを読み出すとクリアされます。 473 第 16 章 CAN コントローラ 16.4.1.6 CAN テストレジスタ (TESTR) CAN テストレジスタ (TESR) レジスタは , テストモードの設定および RX 端子のモ ニタを行います。動作については , 「16.5.7 テストモード」を参照してください。 ■ レジスタ構成 図 16.4-6 CAN テストレジスタ (TESTR) のレジスタ構成 CAN テストレジスタ ( 上位バイト ) bit アドレス : Base + 0AH リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 7 6 5 4 3 2 1 0 Rx (R) (r) Tx1 (R/W) (0) Tx0 (R/W) (0) LBack (R/W) (0) Silent (R/W) (0) Basic (R/W) (0) 予約 (R) (0) 予約 (R) (0) CAN テストレジスタ ( 下位バイト ) bit アドレス : Base + 0BH リード / ライト→ 初期値→ bit7 の Rx の初期値 (r) は , CAN バス上のレベルが表示されます。 CAN テストレジスタ (TESTR) への書込みは , CAN 制御レジスタ (CTRLR) の Test ビッ トを "1" に設定した後に行ってください。テストモードが有効となるのは , CAN 制御 レジスタの Test ビットが "1" のときです。テストモードの途中で CAN 制御レジスタの Test ビットを "0" にするとテストモードから通常モードになります。 ■ レジスタ機能 [bit15 ∼ bit8] 予約 : 予約ビット これらのビットからは , "00000000B" が読み出されます。 書込みの場合には , "00000000B" を設定してください。 [bit7] Rx : Rx 端子モニタビット Rx 474 機能 0 CAN バスはドミナントであることを示します。 1 CAN バスはレセッシブであることを示します。 第 16 章 CAN コントローラ [bit6, bit5] Tx1, Tx0 : TX 端子制御ビット Tx1, Tx0 機能 00B 通常動作 [ 初期値 ] 01B サンプリングポイントが Tx 端子に出力されます。 10B TX 端子にドミナントを出力します。 11B TX 端子にレセッシブを出力します。 Txビットを "00B"以外に設定した場合は , メッセージを送信することはできません。 [bit4] LBack : ループバックモード LBack 機能 0 ループバックモードを禁止します。[ 初期値 ] 1 ループバックモードを許可します。 [bit3] Silent : サイレントモード Silent 機能 0 サイレントモードを禁止します。[ 初期値 ] 1 サイレントモードを許可します。 [bit2] Basic : ベーシックモード Basic 機能 0 ベーシックモードを禁止します。[ 初期値 ] 1 ベーシックモードを許可します。 IF1 レジスタは送信メッセージとして , IF2 レジスタは受信メッセージ として使用されます。 [bit1, bit0] 予約 : 予約ビット これらのビットからは , "00B" が読み出されます。 書込みの場合には , "00B" を設定してください。 475 第 16 章 CAN コントローラ 16.4.1.7 CAN プリスケーラ拡張レジスタ (BRPER) CAN プリスケーラ拡張レジスタ (BRPER) は , CAN ビットタイミングで設定したプ リスケーラと組み合せることにより , CAN コントローラで使用するプリスケーラを 拡張します。 ■ レジスタ構成 図 16.4-7 CAN プリスケーラ拡張レジスタ (BRPER) のレジスタ構成 CAN プリスケーラ拡張レジスタ ( 上位バイト ) bit アドレス : Base + 0CH リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 2 1 0 CAN プリスケーラ拡張レジスタ ( 下位バイト ) bit アドレス : Base + 0DH リード / ライト→ 初期値→ 7 6 5 4 3 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) (R/W) (0) BRPE (R/W) (R/W) (0) (0) (R/W) (0) ■ レジスタ機能 [bit15 ∼ bit4] 予約 : 予約ビット これらのビットからは , "000000000000B" が読み出されます。 書込みの場合には , "000000000000B" を設定してください。 [bit3 ∼ bit0] BRPE : ボーレートプリスケーラ拡張ビット CAN ビットタイミングレジスタの BRP と BRPE を組み合せることにより , 1023 ま でボーレートプリスケーラを拡張できます。 {BRPE(MSB:4 ビット ), BRP(LSB:6 ビット )} + 1 の値が CAN コントローラのプリ スケール値となります。 476 第 16 章 CAN コントローラ 16.4.2 メッセージインタフェースレジスタ CPU からメッセージ RAM へのアクセスを制御するための 2 組のメッセージインタ フェースレジスタがあります。 メッセージ RAM への CPU アクセスを制御するために使用される 2 組のメッセージイ ンタフェースレジスタがあります。この 2 組のレジスタは , 転送された ( する ) データ ( メッセージオブジェクト ) をバッファすることで , メッセージ RAM への CPU アクセ スと CAN コントローラからのアクセスの競合を回避します。メッセージオブジェクト ( メッセージオブジェクトについては , 「16.4.3 メッセージオブジェクト」を参照 ) は , メッセージインタフェースレジスタとメッセージ RAM 間を一度に転送します。 テストベーシックモードを除き , 2 組のメッセージインタフェースレジスタの機能は同 一で , 独立して動作可能です。例えば , IF1 のメッセージインタフェースレジスタをメッ セージRAMへの書込み動作中に, IF2のメッセージインタフェースレジスタをメッセー ジ RAM からの読出しに使用することも可能です。表 16.4-2 に 2 組のメッセージイン タフェースレジスタを示します。 メッセージインタフェースレジスタは , コマンドレジスタ ( コマンド要求 , コマンドマ スクレジスタ ) と, このコマンドレジスタによって制御されるメッセージバッファレジ スタ ( マスク , アービトレーション , メッセージ制御 , データレジスタ ) から構成され ます。コマンドマスクレジスタは , データ転送の方向とメッセージオブジェクトのどの 部分が転送されるのかを示します。コマンド要求レジスタは, メッセージ番号の選択と, コマンドマスクレジスタに設定された動作を行います。 表 16.4-2 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 477 第 16 章 CAN コントローラ 16.4.2.1 IFx コマンド要求レジスタ (IFxCREQ) IFx コマンド要求レジスタ (IFxCREQ) は , メッセージ RAM のメッセージ番号の選択 とメッセージ RAM とメッセージバッファレジスタ間の転送を行います。また , テス トのベーシックモードでは , IF1 を送信制御用に , IF2 を受信制御用として使用します。 ■ レジスタ構成 図 16.4-8 IFx コマンド要求レジスタ (IFxCREQ) のレジスタ構成 IFx コマンド要求レジスタ ( 上位バイト ) bit 15 アドレス : Base + 10H Base + 40H BUSY リード / ライト→ (R/W) (0) 初期値→ 14 13 12 11 10 9 8 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 6 5 4 3 2 1 0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) IFx コマンド要求レジスタ ( 下位バイト ) bit 7 アドレス : Base + 11H Base + 41H 予約 リード / ライト→ (R/W) (0) 初期値→ Message Number (R/W) (R/W) (R/W) (0) (0) (0) ■ レジスタ機能 IFx コマンド要求レジスタへメッセージ番号を書き込むとすぐにメッセージ RAM と メッセージバッファレジスタ ( マスク , アービトレーション , メッセージ制御 , データ レジスタ ) とのメッセージ転送が開始されます。この書込み動作で , BUSY ビットが "1" に設定されて転送処理中であることを示します。その転送が終了すると, BUSYビッ トが "0" にリセットされます。 BUSY ビットが "1" のときに , CPU からメッセージインタフェースレジスタへアクセス が発生すると , BUSY ビットが "0" になるまで ( コマンド要求レジスタ書込み後 , Clock で 3 ∼ 6 サイクル期間 ) , CPU をウェイトさせます。 テストのベーシックモードでは , BUSY ビットの使用方法が異なります。IF1 コマンド 要求レジスタは , 送信メッセージとして使用され , BUSY ビットに "1" を設定すること によりメッセージ送信開始を指示します。メッセージ転送が正常に終了すると , BUSY ビットは "0" にリセットされます。また , BUSY ビットを "0" にリセットすることによ り , いつでもメッセージ転送を中断させることが可能です。 IF2 コマンド要求レジスタは , 受信メッセージとして使用され , BUSY ビットを "1" に 設定することにより , 受信したメッセージを IF2 メッセージインタフェースレジスタに 格納します。 478 第 16 章 CAN コントローラ [bit15] BUSY : ビジーフラグビット • テストベーシックモード以外 BUSY 機能 0 メッセージインタフェースレジスタとメッセージ RAM 間でデー タ転送処理を行っていないことを示します。[ 初期値 ] 1 メッセージインタフェースレジスタとメッセージ RAM 間でデー タ転送処理中であることを示します。 • テストベーシックモード - IF1 コマンド要求レジスタ BUSY 機能 0 メッセージ送信を禁止します。 1 メッセージ送信を許可します。 - IF2 コマンド要求レジスタ BUSY 機能 0 メッセージ受信を禁止します。 1 メッセージ受信を許可します。 BUSY ビットは , 読出し / 書込みが可能です。テストのベーシックモード時以外は , このビットに何を書いても動作に影響しません ( ベーシックモードについては , 「16.5.7 テストモード」を参照 ) 。 [bit14 ∼ bit7] 予約 : 予約ビット これらのビットからは , "00000000B" が読み出されます。 書込みの場合には "00000000B" を設定してください。 479 第 16 章 CAN コントローラ [bit5 ∼ bit0] Message Number : メッセージ番号 (MB91461, MB91F467R の ch.0) Message Number 機能 00H 設定禁止です。 設定した場合 , "20H" として解釈され , "20H" が読み出されます。 01H ∼ 20H 処理を行うメッセージ番号を設定します。 21H ∼ 3FH 設定禁止です。 設定した場合 , "01H ∼ 1FH" として解釈され , 解釈された値が 読み出されます。 [bit6 ∼ bit0] Message Number : メッセージ番号 (MB91F467R の ch.1) Message Number 機能 00H 設定禁止です。 設定した場合 , "20H" として解釈され , "20H" が読み出されます。 01H ∼ 40H 処理を行うメッセージ番号を設定します。 41H ∼ 7FH 設定禁止です。 設定した場合 , "01H ∼ 3FH" として解釈され , 解釈された値が 読み出されます。 480 第 16 章 CAN コントローラ 16.4.2.2 IFx コマンドマスクレジスタ (IFxCMSK) IFx コマンドマスクレジスタ (IFxCMSK) は , メッセージインタフェースレジスタと メッセージ RAM 間の転送方向を制御し , どのデータを更新するかを設定します。ま た , テストのベーシックモードでは本レジスタは無効となります。 ■ レジスタ構成 図 16.4-9 IFx コマンドマスクレジスタ (IFxCMSK) のレジスタ構成 IFx コマンドマスクレジスタ ( 上位バイト ) bit アドレス : Base + 12H Base + 42H リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) 6 5 4 3 2 1 0 Data A Data B (R/W) (0) IFx コマンドマスクレジスタ ( 下位バイト ) bit アドレス : Base + 13H Base + 43H 7 WR/RD Mask リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) Arb Control CIP TxRqst/ NewDat (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) テストのベーシックモードではこのレジスタの設定は無効となります。 ■ レジスタ機能 [bit15 ∼ bit8] 予約 : 予約ビット これらのビットからは , "00000000B" が読み出されます。 書込みの場合には "00000000B" を設定してください。 481 第 16 章 CAN コントローラ [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 ビット ) の設定に より異なる意味があります。 ● 転送方向がライトの場合 (WR/RD = 1) [bit6] Mask : マスクデータ更新ビット Mask 機能 0 メッセージオブジェクト * のマスクデータ (ID マスク+ MDir + MXtd) を更新しない [ 初期値 ] 1 メッセージオブジェクト * のマスクデータ (ID マスク+ MDir + MXtd) を更新する * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit5] Arb : アービトレーションデータ更新ビット Arb 機能 0 メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd + MsgVal) を更新しない [ 初期値 ] 1 メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd + MsgVal) を更新する * : 「16.4.3 メッセージオブジェクト」を参照してください。 482 第 16 章 CAN コントローラ [bit4] Control : 制御データ更新ビット Control 機能 0 メッセージオブジェクト * の制御データ (IFx メッセージ制御レジスタ ) を更新しない [ 初期値 ] 1 メッセージオブジェクト * の制御データ (IFx メッセージ制御レジスタ ) を更新する * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit3] CIP : 割込みクリアビット 本ビットに "0" または "1" を設定しても CAN コントローラへの動作に影響を与えま せん。 [bit2] TxRqst/NewDat : メッセージ送信要求ビット TxRqst/NewDat 機能 0 メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst ビットに "0" を設定 [ 初期値 ] 1 メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst ビットに "1" を設定 ( 送信要求 ) * : 「16.4.3 メッセージオブジェクト」を参照してください。 IFx コマンドマスクレジスタの TxRqst/NewDat ビットが "1" に設定されると , IFx メッセージ制御レジスタの TxRqst ビットの設定は無効となります。 [bit1] Data A : データ 0 ∼ 3 更新ビット Data A 機能 0 メッセージオブジェクト * のデータ 0 ∼ 3 を更新しない [ 初期値 ] 1 メッセージオブジェクト * のデータ 0 ∼ 3 を更新する * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit0] Data B : データ 4 ∼ 7 更新ビット Data B 機能 0 メッセージオブジェクト * のデータ 4 ∼ 7 を更新しない [ 初期値 ] 1 メッセージオブジェクト * のデータ 4 ∼ 7 を更新する * : 「16.4.3 メッセージオブジェクト」を参照してください。 483 第 16 章 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 ) を転送する * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit5] Arb : アービトレーションデータ更新ビット Arb 機能 0 メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ (ID + Dir + Xtd + MsgVal) を転送しない [ 初期値 ] 1 メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ (ID + Dir + Xtd + MsgVal) を転送する * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit4] Control : 制御データ更新ビット Control 機能 0 メッセージオブジェクト * から IFx メッセージ制御レジスタへデー タを転送しない [ 初期値 ] 1 メッセージオブジェクト * から IFx メッセージ制御レジスタへデー タを転送する * : 「16.4.3 メッセージオブジェクト」を参照してください。 484 第 16 章 CAN コントローラ [bit3] CIP : 割込みクリアビット CIP 機能 0 メッセージオブジェクト * および CAN 割込みペンディングレジスタ の IntPnd ビットを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN 割込みペンディングレジスタ の IntPnd ビットを "0" にクリア * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit2] TxRqst/NewDat : データ更新ビット TxRqst/NewDat 機能 0 メッセージオブジェクト * および CAN データ更新レジスタ の NewDat ビットを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN データ更新レジスタ の NewDat ビットを "0" にクリア * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit1] Data A : データ 0 ∼ 3 更新ビット Data A 機能 0 メッセージオブジェクト * および CAN データレジスタ A1, A2 の データを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN データレジスタ A1, A2 の データを更新 * : 「16.4.3 メッセージオブジェクト」を参照してください。 [bit0] Data B : データ 4 ∼ 7 更新ビット Data B 機能 0 メッセージオブジェクト * および CAN データレジスタ B1, B2 の データを保持 [ 初期値 ] 1 メッセージオブジェクト * および CAN データレジスタ B1, B2 の データを更新 * : 「16.4.3 メッセージオブジェクト」を参照してください。 485 第 16 章 CAN コントローラ 16.4.2.3 IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) IFx マスクレジスタ (IFxMSK1, IFxMSK2) は , メッセージ RAM のメッセージオブジェ クトマスクデータを書込み / 読出しするために用いられます。また , テストのベーシッ クモードでは , 設定されているマスクデータは無効となります。 各ビットの機能については , 「16.4.3 メッセージオブジェクト」を参照してください。 ■ レジスタ構成 図 16.4-10 IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) のレジスタ構成 IFx マスクレジスタ 2 ( 上位バイト ) bit 15 アドレス : Base + 14H Base + 44H MXtd リード / ライト→ (R/W) (1) 初期値→ 14 13 12 MDir (R/W) (1) 予約 (R) (1) (R/W) (1) 6 5 4 (R/W) (1) (R/W) (1) 14 13 (R/W) (1) (R/W) (1) 6 5 11 10 9 Msk28 ∼ Msk24 (R/W) (R/W) (R/W) (1) (1) (1) 8 (R/W) (1) IFx マスクレジスタ 2 ( 下位バイト ) bit 7 アドレス : Base + 15H Base + 45H リード / ライト→ (R/W) (1) 初期値→ 3 2 1 0 (R/W) (1) (R/W) (1) 9 8 (R/W) (1) (R/W) (1) 2 1 0 (R/W) (1) (R/W) (1) (R/W) (1) Msk23 ∼ Msk16 (R/W) (R/W) (R/W) (1) (1) (1) IFx マスクレジスタ 1 ( 上位バイト ) bit 15 アドレス : Base + 16H Base + 46H リード / ライト→ (R/W) (1) 初期値→ 12 11 10 Msk15 ∼ Msk8 (R/W) (R/W) (R/W) (1) (1) (1) IFx マスクレジスタ 1 ( 下位バイト ) bit 7 アドレス : Base + 17H Base + 47H リード / ライト→ (R/W) (1) 初期値→ (R/W) (1) (R/W) (1) 4 3 Msk7 ∼ Msk0 (R/W) (R/W) (1) (1) IFx マスクレジスタのビット説明については , 「16.4.3 メッセージオブジェクト」を参 照してください。 レジスタの予約ビット (IFx マスクレジスタ 2 の bit13) からは "1" が読み出されます。書 込み時は , "1" を書き込んでください。 486 第 16 章 CAN コントローラ 16.4.2.4 IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2) IFx アービトレーションレジスタ (IFxARB1, IFxARB2) は , メッセージ RAM のメッ セージオブジェクトアービトレーションデータを書込み / 読出しするために用いられ ます。また , テストのベーシックモードでは無効となります。 各ビットの機能については , 「16.4.3 メッセージオブジェクト」を参照してください。 ■ レジスタ構成 図 16.4-11 IFx アービトレーションレジスタ (IFxARB1, IFxARB2) のレジスタ構成 IFx アービトレーションレジスタ 2 ( 上位バイト ) bit アドレス : Base + 18H Base + 48H 15 14 13 12 MsgVal Xtd (R/W) (0) Dir (R/W) (0) (R/W) (0) 6 5 4 (R/W) (0) (R/W) (0) リード / ライト→ (R/W) (0) 初期値→ 11 10 9 ID28 ∼ ID24 (R/W) (R/W) (R/W) (0) (0) (0) 8 (R/W) (0) IFx アービトレーションレジスタ 2 ( 下位バイト ) bit 7 アドレス : Base + 19H Base + 49H リード / ライト→ (R/W) (0) 初期値→ 3 ID23 ∼ ID16 (R/W) (R/W) (0) (0) 2 1 0 (R/W) (0) (R/W) (0) (R/W) (0) 10 9 8 (R/W) (0) (R/W) (0) (R/W) (0) 2 1 0 (R/W) (0) (R/W) (0) (R/W) (0) IFx アービトレーションレジスタ 1 ( 上位バイト ) bit 15 14 13 (R/W) (0) (R/W) (0) アドレス : Base + 1AH Base + 4AH リード / ライト→ (R/W) (0) 初期値→ 12 11 ID15 ∼ ID8 (R/W) (R/W) (0) (0) IFx アービトレーションレジスタ 1 ( 下位バイト ) bit 7 6 5 (R/W) (0) (R/W) (0) アドレス : Base + 1BH Base + 4BH リード / ライト→ (R/W) (0) 初期値→ 4 3 ID7 ∼ ID0 (R/W) (R/W) (0) (0) IFx アービトレーションレジスタのビット説明については , 「16.4.3 メッセージオブ ジェクト」を参照してください。 送信途中でメッセージオブジェクトの MsgVal ビットを "0" にクリアした場合 , 送信が 完了した時点で CAN ステータスレジスタの TxOk ビットは "1" になりますが , メッセー ジオブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされま せん。メッセージインタフェースレジスタによって TxRqst ビットを "0" にクリアして ください。 487 第 16 章 CAN コントローラ 16.4.2.5 IFx メッセージ制御レジスタ (IFxMCTR) IFx メッセージ制御レジスタ (IFxMCTR) は , メッセージ RAM のメッセージオブジェ クト制御データを書込み / 読出しするために用いられます。また , テストのベーシック モードでは , IF1 メッセージ制御レジスタは無効となります。IF2 メッセージ制御レジ スタの NewDat と MsgLst は通常の動作を行い , DLC ビットは受信したメッセージの DLC を表示します。その他の制御ビットは無効 ("0") として動作します。 各ビットの機能については , 「16.4.3 メッセージオブジェクト」を参照してください。 ■ レジスタ構成 図 16.4-12 IFx メッセージ制御レジスタ (IFxMCTR) のレジスタ構成 IFx メッセージ制御レジスタ ( 上位バイト ) bit アドレス : Base + 1CH Base + 4CH 15 14 13 12 NewDat MsgLst IntPnd UMask リード / ライト→ (R/W) (0) 初期値→ 11 (R/W) (0) (R/W) (0) (R/W) (0) TxIE (R/W) (0) 6 5 4 3 予約 (R) (0) 予約 (R) (0) 予約 (R) (0) (R/W) (0) 10 9 8 RxIE RmtEn TxRqst (R/W) (R/W) (R/W) (0) (0) (0) IFx メッセージ制御レジスタ ( 下位バイト ) bit 7 アドレス : Base + 1DH Base + 4DH EoB (R/W) リード / ライト→ (0) 初期値→ 2 1 0 DLC3 ∼ DLC0 (R/W) (R/W) (R/W) (0) (0) (0) IFx メッセージ制御レジスタのビット説明については , 「16.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 ビッ トが格納されます。 488 第 16 章 CAN コントローラ 16.4.2.6 IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFXDTB2) は , メッセージ RAM のメッセージオブジェクト送受信データを書込み / 読出しするために用いられ ます。データフレームの送受信のみ使用され , リモートフレームの送受信には使用 されません。 ■ レジスタ構成 表 16.4-3 IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFXDTB2) のレジスタ構成 addr + 0 addr + 1 addr + 2 addr + 3 IFx メッセージデータ A1 ( アドレス 20H および 50H) Data(0) Data(1) − − IFx メッセージデータ A2 ( アドレス 22H および 52H) − − Data(2) Data(3) IFx メッセージデータ B1 ( アドレス 24H および 54H) Data(4) Data(5) − − IFx メッセージデータ B2 ( アドレス 26H および 56H) − − Data(6) Data(7) IFx メッセージデータ A2 ( アドレス 30H および 60H) Data(3) Data(2) − − IFx メッセージデータ A1 ( アドレス 32H および 62H) − − Data(1) Data(0) IFx メッセージデータ B2 ( アドレス 34H および 64H) Data(7) Data(6) − − IFx メッセージデータ B1 ( アドレス 36H および 66H) − − Data(5) Data(4) 図 16.4-13 IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFXDTB2) IFx データレジスタ bit 15 7 リード / ライト→ (R/W) (0) 初期値→ 14 6 13 5 (R/W) (0) (R/W) (0) 12 4 11 3 Data (R/W) (R/W) (0) (0) 10 2 9 1 8 0 (R/W) (0) (R/W) (0) (R/W) (0) ■ レジスタ機能 ● 送信メッセージデータの設定 設定したデータは , 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 バイトのうち , ある一部のデータだけを更新することはできません。 489 第 16 章 CAN コントローラ メッセージオブジェクト 16.4.3 メッセージ RAM には , 32 ( 品種によって 128 まで ) のメッセージオブジェクトがあ ります。メッセージ RAM への CPU アクセスと CAN コントローラからのアクセス の競合を回避するために , CPU はメッセージオブジェクトへの直接アクセスができ ません。これらのアクセスは , IFx メッセージインタフェースレジスタ経由で行いま す。 以下では , メッセージオブジェクトの構成と機能を説明します。 ■ メッセージオブジェクトの構成 表 16.4-4 メッセージオブジェクトの構成 メッセージオブジェクト UMask Msk28 ∼ Msk0 MXtd MDir MsgVal ID28 ∼ ID0 Xtd EoB NewDat MsgLst RxIE TxIE IntPnd RmtEn TxRqst Dir DLC3 ∼ DLC0 Data0 Data1 Data2 Data3 Data4 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 つ以上のメッセージオブジェ クトと一致した場合は , 一致した最小のメッセージ番号に格納されます。詳細は , 「16.5.3 メッセージ受信動作」の受信メッセージのアクセプタンスフィルタを参照して ください。 490 第 16 章 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 ID28 ∼ ID0 機能 ID28 ∼ ID0 29 ビット ID ( 拡張フレーム ) を指示 ID28 ∼ ID18 11 ビット ID ( 標準フレーム ) を指示 491 第 16 章 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 492 機能 0 受信方向を示します。 TxRqst が "1" に設定されると , リモートフレームの送信を行い , TxRqst が "0" のときは , 受容フィルタを通過したデータフレームを 受信します。 1 送信方向を示します。 TxRqst が "1" に設定されると , データフレームを送信し , TxRqst が "0" で RmtEn が "1" に設定されている場合 , 受容フィルタを通過した リモートフレームの受信によって , CAN コントローラ自身が TxRqst を "1" に設定します。 第 16 章 CAN コントローラ MDir : メッセージ方向マスクビット MDir 機能 0 アクセプタンスフィルタでのメッセージ方向ビット (Dir) のマスクあり 1 アクセプタンスフィルタでもメッセージ方向ビット (Dir) のマスクなし <注意事項> MDir ビットには常に "1" を設定してください。 EoB : エンドオブバッファビット ( 詳細は , 「16.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" のとき ( 受信方向 ) のみ有効です。 493 第 16 章 CAN コントローラ RxIE : 受信割込みフラグイネーブルビット RxIE 機能 0 フレーム受信成功後 , IntPnd の変更なし 1 フレーム受信成功後 , IntPnd は "1" に設定 TxIE : 送信割込みフラグイネーブルビット TxIE 機能 0 フレーム送信成功後 , IntPnd の変更なし 1 フレーム送信成功後 , IntPnd は "1" に設定 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 ビットはそのまま 保持され , リモートフレームを無視します。 494 第 16 章 CAN コントローラ TxRqst : 送信要求ビット TxRqst 機能 0 送信アイドル状態 ( 送信中でもなく , 送信待ち状態でもない ) 1 送信中 , または送信待ち状態 DLC3 ∼ DLC0 : データ長コード DLC3 ∼ DLC0 機能 0∼8 データフレーム長は 0 ∼ 8 バイト 9 ∼ 15 設定禁止 設定した場合は , 8 バイト長となります。 データフレームを受信すると DLC ビットには , 受信した DLC が格納されます。 Data0 ∼ Data7 : データ 0 ∼ 7 Data0 ∼ Data7 機能 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 バイトのうち , ある一部のデータだけを更新することはでき ません。 495 第 16 章 CAN コントローラ 16.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) 496 第 16 章 CAN コントローラ 16.4.4.1 CAN 送信要求レジスタ (TREQR1, TREQR2) CAN 送信要求レジスタ (TREQR1, TREQR2) は , 全メッセージオブジェクトの TxRqst ビットを表示します。TxRqst ビットを読み出すことにより , どのメッセー ジオブジェクトの送信要求がペンディング中であるかチェックすることができます。 ■ レジスタ構成 図 16.4-14 CAN 送信要求レジスタ (TREQR1, TREQR2) のレジスタ構成 CAN 送信要求レジスタ 2 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) TxRqst32 ∼ TxRqst25 (R) (R) (R) (R) (0) (0) (0) (0) アドレス : Base + 80H リード / ライト→ 初期値→ 12 11 10 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) CAN 送信要求レジスタ 2 ( 下位バイト ) bit 7 6 (R) (0) (R) (0) アドレス : Base + 81H リード / ライト→ 初期値→ 5 4 3 2 TxRqst24 ∼ TxRqst17 (R) (R) (R) (R) (0) (0) (0) (0) CAN 送信要求レジスタ 1 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) (R) (0) アドレス : Base + 82H リード / ライト→ 初期値→ 12 11 10 TxRqst16 ∼ TxRqst9 (R) (R) (R) (0) (0) (0) CAN 送信要求レジスタ 1 ( 下位バイト ) bit 7 6 5 (R) (0) (R) (0) (R) (0) アドレス : Base + 83H リード / ライト→ 初期値→ 4 3 2 TxRqst8 ∼ TxRqst1 (R) (R) (R) (0) (0) (0) 497 第 16 章 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" の場合 , アクセプタンスフィルタを通過 したリモートフレームの受信によりリセットされます。 MB91F467R の ch.1 では以下のレジスタがあります。 表 16.4-5 ch.1 の送信要求ビット (MB91F467R のみ ) レジスタ名 構成ビット addr + 0 addr + 1 addr + 2 addr + 3 TREQR4, TREQR3 TxRqst64 ∼ TxRqst33 (アドレス 84H) TxRqst64 ∼ TxRqst57 TxRqst56 ∼ TxRqst49 TxRqst48 ∼ TxRqst41 TxRqst40 ∼ TxRqst33 498 第 16 章 CAN コントローラ 16.4.4.2 CAN データ更新レジスタ (NEWDT1, NEWDT2) CAN データ更新レジスタ (NEWDT1, NEWDT2) は , 全メッセージオブジェクトの NewDat ビットを表示します。NewDat ビットを読み出すことにより , どのメッセー ジオブジェクトのデータが更新されたかをチェックすることができます。 ■ レジスタ構成 図 16.4-15 CAN データ更新レジスタ (NEWDT1, NEWDT2) のレジスタ構成 CAN データ更新レジスタ 2 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) NewDat32 ∼ NewDat25 (R) (R) (R) (R) (0) (0) (0) (0) アドレス : Base + 90H リード / ライト→ 初期値→ 12 11 10 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) CAN データ更新レジスタ 2 ( 下位バイト ) bit 7 6 (R) (0) (R) (0) アドレス : Base + 91H リード / ライト→ 初期値→ 5 4 3 2 NewDat24 ∼ NewDat17 (R) (R) (R) (R) (0) (0) (0) (0) CAN データ更新レジスタ 1 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) NewDat16 ∼ NewDat9 (R) (R) (R) (R) (0) (0) (0) (0) アドレス : Base + 92H リード / ライト→ 初期値→ 12 11 10 CAN データ更新レジスタ 1 ( 下位バイト ) bit 7 6 5 (R) (0) (R) (0) (R) (0) アドレス : Base + 93H リード / ライト→ 初期値→ 4 3 2 NewDat8 ∼ NewDat1 (R) (R) (R) (0) (0) (0) 499 第 16 章 CAN コントローラ ■ レジスタ機能 NewDat32 ∼ NewDat1 : データ更新ビット NewDat32 ∼ NewDat1 機能 0 有効データなし 1 有効データあり 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 をリセットできます。 - 送信用シフトレジスタ ( 内部レジスタ ) へデータを転送終了後 , リセットされ ます。 MB91F467R の ch.1 では以下のレジスタがあります。 表 16.4-6 ch.1 のデータ更新ビット (MB91F467R のみ ) レジスタ名 構成ビット addr + 0 addr + 1 addr + 2 addr + 3 NEWDT4 , NEWDT3 NewDat64 ∼ NewDat33 ( アドレス 94H) NewDat64 ∼ NewDat57 NewDat56 ∼ NewDat49 NewDat48 ∼ NewDat41 NewDat40 ∼ NewDat33 500 第 16 章 CAN コントローラ 16.4.4.3 CAN 割込みペンディングレジスタ (INTPND1, INTPND2) CAN 割込みペンディングレジスタ (INTPND1, INTPND2) は , 全メッセージオブジェ クトの IntPnd ビットを表示します。IntPnd ビットを読み出すことにより , どのメッ セージオブジェクトが割込みペンディング中であるかをチェックすることができます。 ■ レジスタ構成 図 16.4-16 CAN 割込みペンディングレジスタ (INTPND1, INTPND2) のレジスタ構成 CAN 割込みペンディングレジスタ 2 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) (R) (0) アドレス : Base + A0H リード / ライト→ 初期値→ 12 11 10 IntPnd32 ∼ IntPnd25 (R) (R) (R) (0) (0) (0) 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) CAN 割込みペンディングレジスタ 2 ( 下位バイト ) bit 7 6 アドレス : Base + A1H リード / ライト→ 初期値→ (R) (0) (R) (0) 5 4 3 2 IntPnd24 ∼ IntPnd17 (R) (R) (R) (R) (0) (0) (0) (0) CAN 割込みペンディングレジスタ 1 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) (R) (0) アドレス : Base + A2H リード / ライト→ 初期値→ 12 11 10 IntPnd16 ∼ IntPnd9 (R) (R) (R) (0) (0) (0) CAN 割込みペンディングレジスタ 1 ( 下位バイト ) bit 7 6 5 (R) (0) (R) (0) (R) (0) アドレス : Base + A3H リード / ライト→ 初期値→ 4 3 2 IntPnd8 ∼ IntPnd1 (R) (R) (R) (0) (0) (0) 501 第 16 章 CAN コントローラ ■ レジスタ機能 IntPnd32 ∼ IntPnd1 : 割込みペンディングビット IntPnd32 ∼ IntPnd1 機能 0 割込み要因なし 1 割込み要因あり IntPnd ビットのセット / リセット条件を以下に示します。 • セット条件 - TxIE が "1" に設定されている場合 , フレームの正常送信完了により設定されま す。 - RxIE が "1" に設定されている場合 , アクセプタンスフィルタを通過したフレー ムの正常受信完了により設定されます。 • リセット条件 IFx コマンドマスクレジスタが WR/RD に "1", IntPnd に "1" を設定した場合 , IFx コマンド要求レジスタの書込みにより特定オブジェクトの IntPnd をリセット できます。 MB91F467R の ch.1 では以下のレジスタがあります。 表 16.4-7 ch.1 の割込みペンディングビット (MB91F467R のみ ) レジスタ名 構成ビット addr + 0 addr + 1 addr + 2 addr + 3 INTPND4, INTPND3 IntPnd64 ∼ IntPnd33 ( アドレス A4H) IntPnd64 ∼ IntPnd57 IntPnd56 ∼ IntPnd49 IntPnd48 ∼ IntPnd41 IntPnd40 ∼ IntPnd33 502 第 16 章 CAN コントローラ 16.4.4.4 CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) は , 全メッセージオブジェク トの MsgVal ビットを表示します。MsgVal ビットを読み出すことにより , どのメッ セージオブジェクトが有効であるかをチェックすることができます。 ■ レジスタ構成 図 16.4-17 CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) のレジスタ構成 CAN メッセージ有効レジスタ 2 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) MsgVal32 ∼ MsgVal25 (R) (R) (R) (R) (0) (0) (0) (0) アドレス : Base + B0H リード / ライト→ 初期値→ 12 11 10 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) 9 8 (R) (0) (R) (0) 1 0 (R) (0) (R) (0) CAN メッセージ有効レジスタ 2 ( 下位バイト ) bit 7 6 アドレス : Base + B1H リード / ライト→ 初期値→ (R) (0) (R) (0) 5 4 3 2 MsgVal24 ∼ MsgVal17 (R) (R) (R) (R) (0) (0) (0) (0) CAN メッセージ有効レジスタ 1 ( 上位バイト ) bit 15 14 13 (R) (0) (R) (0) (R) (0) アドレス : Base + B2H リード / ライト→ 初期値→ 12 11 10 MsgVal16 ∼ MsgVal9 (R) (R) (R) (0) (0) (0) CAN メッセージ有効レジスタ 1 ( 下位バイト ) bit 7 6 5 (R) (0) (R) (0) (R) (0) アドレス : Base + B3H リード / ライト→ 初期値→ 4 3 2 MsgVal8 ∼ MsgVal1 (R) (R) (R) (0) (0) (0) 503 第 16 章 CAN コントローラ ■ レジスタ機能 MsgVal32 ∼ MsgVal1 : メッセージ有効ビット MsgVal32 ∼ MsgVal1 機能 0 メッセージオブジェクトは無効 メッセージの送受信は行いません。 1 メッセージオブジェクトは有効 メッセージの送受信が可能となります。 MsgVal ビットのセット / リセット条件を以下に示します。 • セット条件 IFx アービトレーションレジスタ 2 の MsgVal に "1" を設定し , IFx コマンド要求 レジスタへの書込みにより特定オブジェクトの MsgVal を設定できます。 • リセット条件 IFx アービトレーションレジスタ 2 の MsgVal に "0" を設定し , IFx コマンド要求 レジスタの書込みにより特定オブジェクトの MsgVal をリセットできます。 MB91F467R の ch.1 では以下のレジスタがあります。 表 16.4-8 ch.1 のメッセージ有効ビット (MB91F467R のみ ) レジスタ名 構成ビット addr + 0 addr + 1 addr + 2 addr + 3 MSGVAL4, MSGVAL3 MsgVal64 ∼ MsgVal33 ( アドレス A4H) MsgVal64 ∼ MsgVal57 MsgVal56 ∼ MsgVal49 MsgVal48 ∼ MsgVal41 MsgVal40 ∼ MsgVal33 504 第 16 章 CAN コントローラ 16.4.5 CAN プリスケーラレジスタ (CANPRE) CAN プリスケーラレジスタ (CANPRE) は , CAN プリスケーラのクロックソースの 選択と , CAN インタフェースに供給する CAN クロックの分周比を定義するもので す。本レジスタの値を変更する場合は , CAN 制御レジスタ (CTRLR) の初期化ビット (Init) を "1" にセットし , すべてのバス動作を停止してください。 ■ レジスタ構成 図 16.4-18 CAN 制御レジスタ (CTRLR) のレジスタ構成 CAN プリスケーラレジスタ bit アドレス : ch.0 00C000H ch.1 00C100H リード / ライト→ 初期値→ 15 14 予約 予約 (R) (0) (R) (0) 13 12 CPCKS1 CPCKS0 (R/W) (0) (R/W) (0) 11 10 9 8 DVC3 DVC2 DVC1 DVC0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) ■ レジスタ機能 [bit15, bit14] 予約 : 予約ビット これらのビットからは "00B" が読み出されます。 書込みはレジスタに反映されません。 [bit13, bit12] CPCKS1, CPCKS0 : CAN プリスケーラクロックソース選択ビット 表 16.4-9 CAN プリスケーラクロックソース選択ビット CPCKS1, CPCKS0 CAN プリスケーラクロックソース 00B CPU クロック ( 最大 80MHz) [ 初期値 ] 01B PLL 出力 ( 最大 200MHz) 10B 設定禁止 11B 原発振クロック ( 最大 20MHz) 505 第 16 章 CAN コントローラ [bit11 ∼ bit8] DVC3 ∼ DVC0 : CAN クロック設定ビット 表 16.4-10 CAN クロック設定ビット DVC3 ∼ DVC0 CAN クロック 0000B プリスケーラクロックソースの 1/1 周期を選択 [ 初期値 ] 0001B プリスケーラクロックソースの 1/2 周期を選択 0010B プリスケーラクロックソースの 1/3 周期を選択 : : 1110B プリスケーラクロックソースの 1/15 周期を選択 1111B プリスケーラクロックソースの 1/16 周期を選択 • CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1" に設定し , すべてのバス動作を停止させた後に行ってください。 • 本レジスタの設定によりCANインタフェースに供給するCANクロックは20MHz 以下としてください。 506 第 16 章 CAN コントローラ 16.5 CAN 機能 CAN コントローラの動作と機能について説明します。 以下の機能について説明します。 • メッセージオブジェクト • メッセージ送信動作 • メッセージ受信動作 • FIFO バッファ機能 • 割込み機能 • ビットタイミング • テストモード • ソフトウェア初期化 • CAN クロックプリスケーラ 507 第 16 章 CAN コントローラ 16.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" にクリアされます。( 図 16.5-1 を参照 ) IFx コマンドマスクレジスタは , 1 つのメッセージオブジェクトの全データ転送 , ある いはデータの部分転送のいずれかを設定します。メッセージ RAM の構造上 , メッセー ジオブジェクトの単一ビット / バイトの書込みは不可能となっており , 常に 1 つのメッ セージオブジェクトの全データをメッセージ RAM へ書き込みます。したがって , メッ セージインタフェースレジスタからメッセージ RAM へのデータ転送は , リードモディ ファイライト (RMW) 系命令の実行サイクルを要しています。 508 第 16 章 CAN コントローラ 図 16.5-1 メッセージインタフェースレジスタとメッセージ RAM のデータ転送 スタート NO IFxコマンド要求レジスタ への書き込み YES BUSY = 1 Interrupt = 0 NO YES WR/RD = 1 メッセージRAMからメッセージインタフェース レジスタへの読出し メッセージRAMからメッセージインタフェース レジスタへの読出し メッセージインタフェースレジスタから メッセージRAMへの書込み BUSY = 0 Interrupt = 1 509 第 16 章 CAN コントローラ 16.5.2 メッセージ送信動作 送信メッセージオブジェクトの設定方法および送信動作について説明します。 ■ メッセージ送信 メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送がない場合 , CAN メッセージ有効レジスタの MsgVal ビットと CAN 送信要求レジスタの TxRqst ビッ トを評価します。送信要求を保留している中で , 最高優先度の有効メッセージオブジェ クトが送信用のシフトレジスタへ転送されます。そのとき , メッセージオブジェクトの NewDat ビットは "0" にリセットされます。 正常に送信が完了したとき , メッセージオブジェクトに新たなデータがない (NewDat = 0) 場合は , TxRqst ビットは "0" にリセットされます。TxIE が "1" に設定されている場合 は , 送信成功後に IntPnd ビットが "1" に設定されます。CAN コントローラが CAN バス 上で調停に負けた場合 , あるいは転送中にエラーが発生した場合は , CAN バスがアイ ドルになると , 直ちにメッセージの再送信が行われます。 ■ 送信優先度 メッセージオブジェクトの送信優先度は , メッセージ番号によって決定します。メッ セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( または搭載し ている最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 2 つ 以上の送信要求が保留されていると , 対応するメッセージオブジェクトの小さい番号 順に転送が行われます。 ■ 送信メッセージオブジェクトの設定 図 16.5-2 に , 送信オブジェクトの初期化を示します。 図 16.5-2 送信メッセージオブジェクトの初期化 MsgVal Arb Data Mask EoB Dir 1 appl. appl. appl. 1 1 NewDat MsgLst RxIE 0 0 0 TxIE appl. IntPnd RmtEn TxRqst 0 appl. 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 を持つリモートフレームを受信し , その後 , 送 510 第 16 章 CAN コントローラ 信を許可 (TxRqst ビットに "1" を設定 ) するために使用されます。詳細は「16.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" を設定してく ださい。 511 第 16 章 CAN コントローラ 16.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" にリセットされます。これは , リモートフレー ム送信処理中に , 要求データフレームを受信した場合 , 送信処理を防ぐために行われま す。 512 第 16 章 CAN コントローラ ■ リモートフレーム リモートフレーム受信時の動作は , 下記の 3 つの処理があります。一致するメッセージ オブジェクトの設定によりリモートフレーム受信時の処理が選択されます。 • Dir = 1 ( 送信方向 ) , RmtEn = 1, UMask = 1 または 0 一致したリモートフレームの受信を行い , このメッセージオブジェクトの TxRqst ビットのみ "1" に設定され , リモートフレームに対するデータフレームの自動返信 (送信) を行います (TxRqstビット以外のメッセージオブジェクトは変更されません) 。 • Dir = 1 ( 送信方向 ) , RmtEn = 0, UMask = 0 受信したリモートフレームがメッセージオブジェクトと一致しても受信しないで リモートフレームを無効にします ( このメッセージオブジェクトの TxRqst ビットは 変更されません ) 。 • Dir = 1 ( 送信方向 ) , RmtEn = 0, UMask = 1 受信したリモートフレームがメッセージオブジェクトと一致した場合 , このメッ セージオブジェクトの TxRqst ビットは "0" にリセットされ , リモートフレームは受 信データフレームのように処理されます。受信したアービトレーションフィールド とコントロールフィールド (ID + IDE + RTR + DLC) は , メッセージ RAM のメッ セージオブジェクトへ格納され , このメッセージオブジェクトの NewDat ビットが "1" に設定されます。メッセージオブジェクトのデータフィールドは変更されませ ん。 513 第 16 章 CAN コントローラ ■ 受信メッセージオブジェクトの設定 図 16.5-3 に受信メッセージオブジェクトの初期化を示します。 図 16.5-3 受信メッセージオブジェクトの初期化 MsgVal Arb Data Mask EoB Dir 1 appl. appl. appl. 1 0 NewDat MsgLst RxIE 0 0 appl. TxIE 0 IntPnd RmtEn TxRqst 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 があるデータフレームの受信を許可するために 使用します。詳細は , 「16.5.3 メッセージ受信動作」のデータフレーム受信を参照して ください。 <注意事項> IFx マスクレジスタの Dir ビットのマスク設定は禁止です。 514 第 16 章 CAN コントローラ ■ 受信メッセージの処理 CPU は , メッセージインタフェースレジスタを介して , 受信メッセージをいつでも読み 出すことが可能です。 通常 , IFx コマンドマスクレジスタに "007FH" を書き込みます。次にメッセージオブ ジェクトのメッセージ番号を IFx コマンド要求レジスタに書き込みます。この手順に よって , 指定されたメッセージ番号の受信メッセージをメッセージ RAM からメッセー ジインタフェースレジスタに転送します。このとき , IFx コマンドマスクレジスタの設 定により , メッセージオブジェクトの NewDat ビットと IntPnd ビットを "0" にクリアす ることが可能です。 受信メッセージの処理は , 受容フィルタにより一致した場合 , メッセージを受信しま す。メッセージオブジェクトで受容フィルタのマスクを使用している場合は , マスク設 定されたデータが受容フィルタから除外され , メッセージを受信するか判断します。 NewDat ビットは , メッセージオブジェクトが最後に読み出されてから , 新しいメッ セージが受信されたかを示します。 MsgLst ビットは , 受信したデータがメッセージオブジェクトから読み出されない状態 で次の受信データを受信したために前のデータを失ってしまったことを示します。 MsgLst ビットは自動的にはリセットされません。 リモートフレーム送信処理中に , 受容フィルタにより一致するデータフレームが受信 された場合には , TxRqst ビットは自動的に "0" にリセットされます。 515 第 16 章 CAN コントローラ 16.5.4 FIFO バッファ機能 受信メッセージ処理におけるメッセージオブジェクトの FIFO バッファの構成および 動作について説明します。 ■ FIFO バッファの構成 FIFOバッファの受信メッセージオブジェクトの構成は, EoBビットを除いて, 受信メッ セージオブジェクトの構成と同じです (「16.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" 書込み ( 書込み保護の解除 ) が行われないと次に受信された メッセージが最終メッセージオブジェクトへ書き込まれ , メッセージは上書きされて しまいます。 516 第 16 章 CAN コントローラ ■ FIFO バッファからの読出し CPU が受信メッセージオブジェクトの内容を読み出すには , IFx コマンド要求レジスタ へ受信メッセージ番号を書き込むことによって , メッセージインタフェースレジスタ に転送されて読み出すことができます。このとき , IFx コマンドマスクレジスタの WR/ RD を "0" ( 読出し ), および TxRqst/NewDat = 1, IntPnd = 1 に設定し , NewDat ビットと IntPnd ビットを "0" にリセットしてください。 FIFO バッファの機能を保証するために , FIFO バッファの受信メッセージオブジェクト は , 必ず最小のメッセージ番号から読み出してください。 図 16.5-4 に , FIFO バッファの CPU の処理を示します。 図 16.5-4 FIFO バッファの CPU 処理 スタート メッセージ割込み CAN割込みレジスタ 読出し 8000H 0000H CAN割込みレジスタ値 8000H, 0000H以外 状態割込み処理実行 終了 (通常処理) メッセージ番号 = CAN割込みレジスタ値 IFxコマンド要求レジスタ (メッセージ番号)書込み メッセージインタフェースレジスタ 読出し (リセット:NewDat=0, IntPnd=0) IFxメッセージ制御レジスタ 読出し NO NewDat = 1 YES IFxメッセージデータレジスタA,B 読出し YES EoB = 1 NO メッセージ番号 = メッセージ番号 +1 517 第 16 章 CAN コントローラ 16.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 割込みペン ディングレジスタで確認することができます (「 16.4.4 メッセージハンドラレジスタ」 を参照 ) 。メッセージ割込みをクリアする場合 , 同時にメッセージデータを読み出すこ とは可能であり , CAN 割込みレジスタで示されているメッセージ割込みをクリアする と次に優先度の高い割込みが CAN 割込みレジスタに設定され , 次の割込み処理を待つ ことになります。割込みがない場合には , CAN 割込みレジスタは "0000H" を示します。 518 第 16 章 CAN コントローラ • ステータス割込み (IntId = 8000H) は , CAN ステータスレジスタの読出しアクセスに より割込みクリアされます。 • CAN ステータスレジスタへの書込みアクセスによるステータス割込み (IntId = 8000H) は発生しません。 519 第 16 章 CAN コントローラ 16.5.6 ビットタイミング ビットタイミングについての概要と CAN コントローラにおけるビットタイミングに ついて説明します。 CAN ネットワークの各 CAN ノードには , それぞれクロック発振器 ( 通常は水晶発振器 ) があります。ビットタイムのタイムパラメータは , CAN ノードごとに個別に構成でき ます。CAN ノードの発振周期 (fosc) が異なっていても , 共通のビットレートを作り出 せます。 これらの発振器の周波数は , 温度や電圧の変化 , コンポーネントの悪化により少し異な ります。その変動が発振器の許容範囲 (df) 内である限りは , CAN ノードはビットスト リームへ再同期化することで異なるビットレートを補償できます。 CAN 仕様に応じて , ビットタイムは 4 つの区分に分けられ ( 図 16.5-5 を参照 ) , 同期化 部 (Sync_Seg), 伝送時間部 (Prop_Seg), フェイズバッファ部 1 (Phase_Seg1), フェイズバッ ファ部 2 (Phase_Seg2) で構成されます。それぞれの区分は , プログラマブルな時間量 ( 表 16.5-1 を参照 ) から成ります。ビットタイムの基本単位時間 (tq) は , CAN クロック (fsys) とボーレートプリスケーラ (BRP) で定義されます : tq = BRP / fsys CAN クロック (fsys) は , CAN プリスケーラにより生成されたクロックになります。同 期化部の Sync_Seg は , CAN バスのエッジを期待するビットタイム内のタイミングとな ります。伝送時間部の Prop_Seg は , CAN ネットワーク内の物理的遅延時間を補償しま す。フェイズバッファ部の Phase_Seg1, Phase_Seg2 は , サンプリングポイントを指定し ます。再同期化ジャンプ幅 (SJW) は , エッジフェーズエラーを補償するために再同期 化時のサンプリングポイントの移動幅を定義します。 図 16.5-5 ビットタイミング 1ビットタイム(BT) Sync _Seg Prop_Seg 1単位時間 (tq) 520 Phase_Seg1 Phase_Seg2 サンプリングポイント 第 16 章 CAN コントローラ 表 16.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 の定義 固定長 システムクロックへの同期化 図 16.5-6 に , CAN コントローラにおけるビットタイミングを示します。 図 16.5-6 CAN コントローラにおけるビットタイミング 1ビットタイム(BT) Sync _Seg TEG1 1単位時間 (tq) TEG2 サンプリングポイント 521 第 16 章 CAN コントローラ 表 16.5-2 CAN コントローラのパラメータ パラメータ BRPE, BRP Sync_Seg レンジ 機能 時間量の長さ tq の定義 [0 ∼ 1023] ビットタイミングレジスタおよびプリスケーラ拡張レジ スタにより最大 1024 までプリスケーラを拡張できます。 1 tq CAN クロックへの同期化 固定長 TSEG1 サンプリングポイント前のタイムセグメントです。 [1 ∼ 15] tq Prop_Seg と Phase_Seg1 に相当します。 ビットタイミングレジスタにより制御可能です。 TSEG2 [0 ∼ 7] tq サンプリングポイント後のタイムセグメントです。 Phase_Seg2 に相当します。 ビットタイミングレジスタにより制御可能です。 SJW [0 ∼ 3] tq 再同期化ジャンプ幅です。 ビットタイミングレジスタにより制御可能です。 各パラメータの関係を以下に示します。 tq = ([BRPE, BRP] + 1) / fsys BT = SYNC_SEG + TEG1 + TEG2 = (1 + (TSEG1 + 1) + (TSEG2 + 1)) × tq = (3 + TSEG1 + TSEG2) × tq 522 第 16 章 CAN コントローラ 16.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 バス上のトラフィック解析ができます。 図 16.5-7 にサイレントモードでのコントローラを示します。 図 16.5-7 サイレントモードでの CAN コントローラ CAN_TX CAN_RX CANコントローラ Silent ビット= 1 Tx Rx CANコア 523 第 16 章 CAN コントローラ ■ ループバックモード CAN テストレジスタの LBack ビットを "1" に設定することにより , CAN コントローラ をループバックモードに設定できます。 ループバックモードは , 自己診断機能に使用できます。 ループバックモードでは , CAN コントローラ内部で TX 側と RX 側が接続され , CAN コントローラが送信したメッセージを RX 側で受信したメッセージとして扱い , 受容 フィルタを通過したメッセージは , 受信バッファに格納します。 図 16.5-8 に , ループバックモードの CAN コントローラを示します。 図 16.5-8 ループバックモードの CAN コントローラ CAN_TX CAN_RX Tx Rx CANコントローラ CANコア 外部信号から独立するため , データ / リモートフレームのアクノリッジスロットでのド ミナントビットはサンプリングされません。そのため , 通常 , CAN コントローラはア クノリッジエラーを発生しますが , 本テストモードではアクノリッジエラーを発生し ないようにしています。 524 第 16 章 CAN コントローラ ■ サイレントモードとループバックモードの結合 CAN テストレジスタの LBack ビットと Silent ビットを同時に "1" に設定することによ り , ループバックモードとサイレントモードを結合させて動作することが可能です。 このモードは , ホットセルフテスト用に使用できます。ホットセルフテストとは , CAN コントローラがループバックモードでテストしたときに , CAN_TX 端子にはレセッシ ブの固定出力 , CAN_RX 端子からの入力は無効となりますので , CAN システムの動作 に影響がないことを意味しています。 図 16.5-9 に , サイレントモードとループバックモードが結合された CAN コントローラ を示します。 図 16.5-9 サイレントモードとループバックモードが結合された CAN コントローラ CAN_TX CAN_RX CANコントローラ LBack ビット,Silent ビット= 1 Tx Rx CANコア 525 第 16 章 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 ∼ DLC0 は受信された DLC を示し , ほかの制御ビットは "0" として読 み出されます。 526 第 16 章 CAN コントローラ ■ 端子 CAN_TX のソフトウェア制御 CAN 送信端子である CAN_TX には , 4 つの出力機能があります。 • シリアルデータ出力 ( 通常出力 ) • CAN コントローラのビットタイミングをモニタするための CAN サンプリングポイ ント信号出力 • ドミナント固定出力 • レセッシブ固定出力 ドミナントおよびレセッシブの固定出力は , CAN 受信端子の CAN_RX モニタ機能とと もに , CAN バスの物理層のチェックに使用することができます。 CAN_TX 端子の出力モードは , CAN テストレジスタの Tx1 と Tx0 ビットにより制御可 能です。 CANメッセージ送信もしくはループバックモード, サイレントモード, ベーシックモー ドを使用する際は , CAN_TX をシリアルデータ出力に設定する必要があります。 527 第 16 章 CAN コントローラ 16.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" に設定されると , ボーレート制御 用のビットタイミングレジスタとプリスケーラ拡張レジスタへの設定が可能となりま す。 Init ビットを "0" にリセットすることにより , ソフトウェア初期化を終了します。また , Init ビットを "0" にすることは , CPU からのアクセスでしか実行できません。 Init ビットが "0" にリセットされてから , 連続した 11 ビットのレセッシブの発生 ( =バ スアイドル ) を待つことにより , CAN バス上のデータ転送と同期化した後 , メッセージ の転送が行われます。 通常動作中にメッセージオブジェクトのマスク , ID, XTD, EoB, RmtEn を変更する場合 , MsgVal を無効に設定してから変更してください。 528 第 16 章 CAN コントローラ 16.5.9 CAN クロックプリスケーラ PLL 動作中の CAN クロック切換えについて説明します。 ■ ブロック図 図 16.5-10 に , CAN クロックプリスケーラブロックダイヤグラムを示します。 CAN クロックプリスケーラレジスタ (CANPRE) の設定に従い , CAN に供給されるク ロックが決定されます。 図 16.5-10 CAN クロックプリスケーラブロックダイヤグラム CPUクロック CAN インタフェース クロック ユニット クロック デバイダ CAN コントローラ X0 PLL CPCK[1:0] DVC[3:0] CANPRE 529 第 16 章 CAN コントローラ ■ クロック切換え手順 CAN クロックプリスケーラを使用したクロックの切換え方法については , 以下に示す 手順を推奨します。 図 16.5-11 クロック切換え手順 CANクロックの発振器出力 からPLLへの切換え CANクロックのPLLから 発振器出力への切換え CANコントロール レジスタのInitビットを 設定 CANコントロール レジスタのInitビットを 設定 PLL許可 プリスケーラ設定 PLL安定時間待ち PLL停止 プリスケーラ設定 CANコントロール レジスタのInitビットを リセット CANコントロール レジスタのInitビットを リセット 530 第 16 章 CAN コントローラ ■ CAN クロック周波数 CANPRE の CPCKS1, CPCKS0 と DVC3 ∼ DVC0 の設定により生成される CAN クロッ ク周波数を以下に示します (18MHz の水晶振動子を接続した場合の値です )。 CPCKS1, CPCKS0 = 00B CPCKS1, CPCKS0 = 01B DVC3 ∼ DVC0 (CPU クロック 72MHz 選択時 ) (PLL 出力 144MHz 選択時 ) CPCKS1, CPCKS0 = 11B ( 原発振クロック 18MHz 選択時 ) 0000B 72.00MHz ( 設定禁止 ) 144.00MHz ( 設定禁止 ) 18.00MHz 0001B 36.00MHz ( 設定禁止 ) 72.00MHz ( 設定禁止 ) 9.00MHz 0010B 24.00MHz ( 設定禁止 ) 48.00MHz ( 設定禁止 ) 6.00MHz 0011B 18.00MHz 36.00MHz ( 設定禁止 ) 4.50MHz 0100B 14.40MHz 28.80MHz ( 設定禁止 ) 3.60MHz 0101B 12.00MHz 24.00MHz ( 設定禁止 ) 3.00MHz 0110B 10.29MHz 20.57MHz ( 設定禁止 ) 2.57MHz 0111B 9.00MHz 18.00MHz 2.25MHz 1000B 8.00MHz 16.00MHz 2.00MHz 1001B 7.20MHz 14.40MHz 1.80MHz 1010B 6.55MHz 13.09MHz 1.64MHz 1011B 6.00MHz 12.00MHz 1.50MHz 1100B 5.54MHz 11.08MHz 1.38MHz 1101B 5.14MHz 10.29MHz 1.29MHz 1110B 4.80MHz 9.60MHz 1.33MHz 1111B 4.50MHz 9.00MHz 1.25MHz • CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1" に 設定し , すべてのバス動作を停止させた後に行ってください。 • CAN クロックは 20MHz 以下としてください。 531 第 16 章 CAN コントローラ 532 第 17 章 LIN-UART LIN 対応 UART の機能と動作について説明します。 17.1 LIN-UART の概要 17.2 LIN-UART の構成 17.3 LIN-UART のレジスタ 17.4 LIN-UART の割込み 17.5 LIN-UART のボーレート 17.6 LIN-UART の動作 17.7 LIN-UART 使用上の注意事項 533 第 17 章 LIN-UART 17.1 LIN-UART の概要 LIN(Local Interconnect Network) 対応 UART(Universal Asynchronous Receiver and Transmitter) は , 外部デバイスとの非同期 / 同期通信を実現する汎用のシリアル データ通信インタフェースです。LIN-UART は双方向通信機能 ( ノーマルモード ) , マスタ / スレーブ通信機能 ( マスタシステムにおけるマルチプロセッサモード ) , LIN バスシステム ( マスタ / スレーブ , 両方での動作 ) をサポートしています。 ■ 概要 LIN-UART は , 別の CPU あるいは周辺回路 , 特に LIN デバイスとのデータ送受信に使 用される汎用のシリアルデータ通信インタフェースです。表 17.1-1 に LIN-UART の機 能を示します。 表 17.1-1 LIN-UART の機能 (1 / 2) 項目 機能 データバッファ 全二重バッファ シリアル入力 非同期モードでは , 5 回のオーバサンプリングを実行し , 受信値を決定 転送モード • クロック同期 ( スタート / ストップ同期 , スタート / ストップビット選択 ) • クロック非同期 ( スタート / ストップビット使用 ) • 専用の 15 ビットボーレートジェネレータ搭載 転送レート • 外部クロック入力を使用でき , リロードカウンタで調整 • 7 ビット ( 同期モード・LIN モードでは使用不可 ) データ長 • 8 ビット シグナルモード NRZ (Non Return to Zero) 形式 スタートビットタイミング 非同期モードでは , スタートビットの立下りエッジとクロック同期化 • フレーミングエラー 受信エラー検出 • オーバランエラー • パリティエラー • 受信割込み ( 受信完了・受信エラー検出 ) • 送信割込み ( 送信完了 ) 割込み要求 • バスアイドル割込み ( 受信割込みに属する ) • LIN-Synch-Break 割込み ( 受信割込みに属する ) マスタ / スレーブ通信機能 1 対複数 (1 マスタ , 複数スレーブ ) の通信が可能 ( マルチプロセッサモード ) ( マスタ , スレーブのいずれのシステムでもサポート ) 同期化モード 534 マスタあるいはスレーブ UART としての機能 第 17 章 LIN-UART 表 17.1-1 LIN-UART の機能 (2 / 2) 項目 送受信線 機能 直接アクセスが可能 • マスタデバイスとしての動作 • スレーブデバイスとしての動作 LIN バスオプション • LIN-Synch-Break の生成 • LIN-Synch-Break の検出 • LIN-Synch-Field のスタート / ストップエッジを ICU で検出 同期シリアルクロック 同期シリアルクロックは , スタート / ストップビットを用いた同期通信 用に , SCK 端子より継続的に出力可能 クロック遅延オプション クロック遅延用の特殊同期クロックモード (SPI 用 ) ■ LIN-UART の動作モード LIN-UART には 4 つのモードがあり , シリアルモードレジスタ (SMR) の MD0, MD1 ビッ トにより設定されます。 モード0とモード2は双方向シリアル通信に, モード1はマスタ/ スレーブ通信に使用されます。モード 3 は LIN マスタ / スレーブ通信用です。 表 17.1-2 LIN-UART の動作モード データ長 動作モード 0 パリティ 禁止 パリティ 許可 同期モード ストップ ビット長 データビット 検出 *1 ノーマルモード 7 ビットまたは 8 ビット 非同期 1 or 2 L/M 1 マルチプロセッサモード 7 ビットま たは 8 ビット+ 1 ビット *2 非同期 1 or 2 L/M 2 ノーマルモード 同期 0, 1 or 2 L/M 3 LIN モード 非同期 1 L − 8 ビット 8 ビット − *1: LSB ファーストまたは MSB ファーストからの転送モードを意味します。 *2 : " + 1" は , マルチプロセッサモードでパリティビットの代わりにアドレス / データの切り換わり を示すためです。 <注意事項> モード 1 ( マルチプロセッサモード ) は , マスタ / スレーブシステムにおける LIN-UART の マスタ , スレーブどちらの動作でもサポートします。モード 3 では , LIN-UART の機能は 8N1 フォーマット , LSB ファーストに固定されます。 535 第 17 章 LIN-UART モードを変更した場合は , LIN-UART は送受信を停止して待機し , 新たな動作へ移行し ます。 表 17.1-3 に , モードビットの設定を示します。 表 17.1-3 モードビットの設定 536 MD1 MD0 モード 0 0 0 非同期 ( ノーマルモード ) 0 1 1 非同期 ( マルチプロセッサモード ) 1 0 2 同期 ( ノーマルモード ) 1 1 3 非同期 (LIN モード ) 機能 第 17 章 LIN-UART 17.2 LIN-UART の構成 LIN-UART の構成について説明します。 ■ LIN-UART のブロックダイヤグラム LIN-UART は下記のブロックにより構成されています。 • リロードカウンタ • 受信制御回路 • 受信シフトレジスタ • 受信データレジスタ (RDR) • 送信制御回路 • 送信シフトレジスタ • 送信データレジスタ (TDR) • エラー検出回路 • オーバサンプリングユニット • 割込み生成回路 • LIN-Synch-Break および Sync-Field 検出回路 • バスアイドル検出回路 • シリアルモードレジスタ (SMR) • シリアル制御レジスタ (SCR) • シリアルステータスレジスタ (SSR) • 拡張通信制御レジスタ (ECCR) • 拡張通信ステータス / 制御レジスタ (ESCR) 537 第 17 章 LIN-UART ■ LIN-UART のブロックダイヤグラム 図 17.2-1 LIN-UART のブロックダイヤグラム PE 送信クロック CLK FRE TIE 受信クロック リロード カウンタ SCK 受信制御回路 RIE 送信制御回路 LBIE 割込み発生回路 Pin 受信再開リロード カウンタ LBD 送信スタート 回路 スタート ビット検出 SIN Pin ORE 送信ビット カウンタ 受信ビット カウンタ BIE RBI TBI 受信IRQ TDRE 送信IRQ オーバサン プリング ユニット SOT 送信パリティ カウンタ 受信パリティ カウンタ Pin RDRF 受信完了 SOT SIN ICUへの シグナル 受信シフト レジスタ LIN-SynchBreak, SIN 送信シフト レジスタ Synch-Field 検出回路 LIN-Break 発生 送信スタート エラー検出 RDR バスアイドル 検出 TDR STR PE ORE FRE RBI TBI LBD 内部データバス PE ORE FRE RDRF TDRE BDS RIE TIE 538 MD1 MD0 (OTO) (EXT) SSR レジスタ (REST) UPCL SCKE SOE SMR レジスタ PEN P SBL CL AD CRE RXE TXE SCR レジスタ LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES ESCR レジスタ LBR MS SPI SSM BIE RBI TBI ECCR レジスタ LBR LBL1 LBL0 第 17 章 LIN-UART ■ 各ブロックの説明 ● リロードカウンタ リロードカウンタは専用のボーレートジェネレータとして機能します。送受信クロッ クは , 外部クロックまたは内部クロックから生成されます。リロードカウンタにはリ ロード値として 15 ビットのレジスタがあります。送信リロードカウンタの実際のカウ ント値は , BGR0/BGR1 の値から読み出すことができます。 ● 受信制御回路 受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン タによって構成されます。 受信ビットカウンタは受信データをカウントします。指定されたデータ長の 1 データ の受信が完了すると , 受信ビットカウンタは受信データレジスタフルフラグを設定し ます。 スタートビット検出回路はシリアル入力信号からスタートビットを検出し , スタート ビットの立下りエッジと同期してリロードカウンタへ信号を送出します。 受信パリティカウンタは受信データのパリティを計算します。 ● 受信シフトレジスタ 受信シフトレジスタは, SIN端子から入力された受信データをビット単位でシフトして 取り込みます。受信が完了すると , 受信シフトレジスタは受信データを受信データレジ スタ (RDR) へ転送します。 ● 受信データレジスタ (RDR) 受信データレジスタでは受信データが保持されます。シリアル入力データは変換され , このレジスタへと格納されます。 ● 送信制御回路 送信制御回路は , 送信ビットカウンタ , 送信開始回路 , 送信パリティカウンタによって 構成されます。 送信ビットカウンタは送信データビットをカウントします。指定されたデータ長の 1 データの送信が完了すると , 送信ビットカウンタは送信データレジスタエンプティフ ラグを設定します。 送信開始回路は , データが TDR に書き込まれると送信を開始します。 送信パリティカウンタは , パリティありの場合には送信データのパリティビットを生 成します。 ● 送信シフトレジスタ 送信シフトレジスタは , 送信データレジスタ (TDR) へ書き込まれた送信データをシフ トし , SOT 端子へデータをビット単位で出力します。 ● 送信データレジスタ (TDR) 送信データレジスタに送信データを設定します。このレジスタに書き込まれたデータ はシリアルデータへ変換されて出力されます。 ● エラー検出回路 エラー検出回路は , 最新の受信でのエラーの有無を確認します。エラーが発生すると , 対応するエラーフラグを設定します。 539 第 17 章 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) シリアルモードレジスタにより , 下記の動作が行われます。 • LIN-UART 動作モードの選択 • クロック入力の選択 • 外部クロックが 1 対 1 接続 , またはリロードカウンタ接続であるかの選択 • 専用リロードタイマの再起動 • LIN-UART のリセット ( レジスタの設定は保存 ) • シリアル出力端子 (SOT) の出力許可 • シリアルクロック端子 (SCK) の入出力切換え ● シリアル制御レジスタ (SCR) シリアル制御レジスタにより , 下記の動作が行われます。 • パリティビットの有無 • パリティビットの選択 • ストップビット長の指定 • データ長の指定 • モード 1 におけるフレームデータフォーマットの指定 • エラーフラグのクリア • 送信許可 • 受信許可 540 第 17 章 LIN-UART ● シリアルステータスレジスタ (SSR) シリアルステータスレジスタで送信 / 受信状態およびエラー状態を確認します。また , 送信 / 受信割込みの許可 , 転送方向 (LSB ファースト /MSB ファースト ) の設定も行い ます。 ● 拡張ステータス・制御レジスタ (ESCR) 拡張ステータス・制御レジスタでは LIN 機能を設定できます。SIN, SOT 端子への直接 アクセスと LIN-UART 同期クロックモードの設定ができます。 ● 拡張通信制御レジスタ (ECCR) 拡張通信制御レジスタでは , バスアイドル検出割込みの設定 , 同期クロック設定 , LINBreak 生成ができます。 541 第 17 章 LIN-UART LIN-UART のレジスタ 17.3 図 17.3-1 に , LIN-UART のレジスタを示します。 ■ LIN-UART のレジスタ 図 17.3-1 LIN-UART のレジスタ SCR アドレス : 000040H, 000048H, bit 15 000050H, 000058H, 000060H, 000068H, PEN 000070H リード / ライト (R/W) 初期値 (0) 14 13 12 11 10 9 8 P SBL CL AD CRE RXE TXE (R/W) (R/W) (R/W) (R/W) (W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) SMR アドレス : 000041H, 000049H, bit 7 000051H, 000059H, 000061H, 000069H, MD1 000071H 6 5 4 3 2 1 0 MD0 OTO EXT REST UPCL SCKE SOE リード / ライト (R/W) (R/W) (R/W) (R/W) (W) (W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) アドレス : 000042H, 00004AH, bit 15 000052H, 00005AH, 000062H, 00006AH, PE 000072H 14 13 12 11 10 9 8 ORE FRE RDRF TDRE BDS RIE TIE 初期値 SSR リード / ライト (R) (R) (R) (R) (R) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (1) (0) (0) (0) 6 5 4 3 2 1 0 D6 D5 D4 D3 D2 D1 D0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 14 13 12 11 10 9 8 LBD LBL1 LBL0 SOPE SIOP CCO SCES (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (x) (0) (0) RDR/TDR アドレス : 000043H, 00004BH, bit 7 000053H, 00005BH, 000063H, 00006BH, D7 000073H リード / ライト (R/W) 初期値 (0) ESCR アドレス : 000044H, 00004CH, bit 15 000054H, 00005CH, 000064H, 00006CH, LBIE 000074H リード / ライト (R/W) 初期値 (0) ( 続く ) 542 第 17 章 LIN-UART ( 続き ) ECCR アドレス : 000045H, 00004DH, bit 7 000055H, 00005DH, 000065H, 00006DH, 予約 000075H 6 5 4 3 2 1 0 LBR MS SCDE SSM BIE RBI TBI リード / ライト ( − ) (W) (R/W) (R/W) (R/W) (R/W) (R) (R) (0) (0) (0) (0) (0) (X) (X) 14 13 12 11 10 9 8 B14 B13 B12 B11 B10 B09 B08 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 B06 B05 B04 B03 B02 B01 B00 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) BGR1 アドレス : 000080H, 000082H, bit 15 000084H, 000086H, 000088H, 00008AH, 予約 00008CH リード / ライト ( − ) 初期値 (0) BGR0 アドレス : 000081H, 000083H, bit 7 000085H, 000087H, 000089H, 00008BH, B07 00008DH リード / ライト (R/W) 初期値 (0) 543 第 17 章 LIN-UART 17.3.1 シリアル制御レジスタ (SCR) シリアル制御レジスタ (SCR) では , パリティビットの指定 , ストップビット長と データ長の選択 , モード 1 におけるフレームデータフォーマットの選択 , 受信エラー フラグのクリア , 送信 / 受信の許可を設定します。 ■ シリアル制御レジスタ (SCR) 図 17.3-2 シリアル制御レジスタ (SCR) のビット構成 SCR アドレス : 000040H, 000048H, bit 15 000050H, 000058H, 000060H, 000068H, PEN 000070H リード / ライト (R/W) 初期値 14 13 12 11 10 9 8 P SBL CL AD CRE RXE TXE (R/W) (R/W) (R/W) (R/W) (W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) [bit15] PEN : パリティ許可ビット PEN パリティ許可 0 パリティなし [ 初期値 ] 1 パリティあり このビットは , シリアル非同期モードでの送信データにパリティの付与を選択しま す。受信中には , パリティの検出を行います。 パリティはモード 0, および ECCR の SSM ビットが設定されている場合はモード 2 でも追加されます。このビットはモード 3 (LIN モード ) では "0" 固定 ( パリティな し ) です。 [bit14] P : パリティ選択ビット P パリティ選択 0 偶数パリティ [ 初期値 ] 1 奇数パリティ パリティが有効である場合は , このビットにより偶数パリティ (0), 奇数パリティ (1) が選択されます。 544 第 17 章 LIN-UART [bit13] SBL : ストップビット長選択ビット SBL ストップビット長 0 1 ビット [ 初期値 ] 1 2 ビット このビットは , 非同期データフレームのストップビット長を選択します。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 ビットの使用については ,「17.7 LIN-UART 使用上の注意事項」を参照してください。 545 第 17 章 LIN-UART [bit10] CRE : 受信エラーフラグクリアビット 受信エラークリア CRE 書込み 0 無効 [ 初期値 ] 1 すべての受信エラー (PE, FRE, ORE) をクリア 読出し 読出し値は常に "0" このビットにより , シリアルステータスレジスタ (SSR) の PE, FRE, ORE フラグがク リアされます。このビットは受信エラー割込み要因もクリアします。 "1" 書込みによりエラーフラグはクリアされます。"0" 書込みは無効です。 読出しは常に "0" を返します。 [bit9] RXE : 受信許可ビット RXE 受信許可 0 受信禁止 [ 初期値 ] 1 受信許可 このビットにより LIN-UART の受信が許可されます。このビットが "0" に設定され ている場合は , LIN-UART はデータフレームの受信を停止します。モード 0 および モード 3 での LIN-Break 検出では無効のままです。 [bit8] TXE : 送信許可ビット TXE 送信許可 0 送信禁止 [ 初期値 ] 1 送信許可 このビットにより LIN-UART の送信が許可されます。このビットが "0" に設定され ている場合は , LIN-UART はデータフレームの送信を停止します。 546 第 17 章 LIN-UART 17.3.2 シリアルモードレジスタ (SMR) シリアルモードレジスタ (SMR) は , 動作モードとボーレートクロックを選択します。 また , シリアルクロック (SCK) の入出力方向の指定 , シリアル出力許可の設定を行 います。 ■ シリアルモードレジスタ (SMR) 図 17.3-3 シリアルモードレジスタ (SMR) のビット構成 SMR アドレス : 000041H, 000049H, bit 7 000051H, 000059H, 000061H, 000069H, MD1 000071H 6 5 4 3 2 1 0 MD0 OTO EXT REST UPCL SCKE SOE リード / ライト (R/W) (R/W) (R/W) (R/W) (W) (W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) [bit7, bit6] MD1, MD0 : 動作モード選択ビット MD0 MD1 0 0 モード 0 : 非同期ノーマルモード [ 初期値 ] 1 0 モード 1 : 非同期マルチプロセッサモード 0 1 モード 2 : 同期モード 1 1 モード 3 : 非同期 LIN モード 動作モード設定 これらのビットにより , LIN-UART の動作モードが設定されます。 [bit5] OTO : 1 to 1 外部クロック選択ビット OTO 外部クロック選択 0 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使 用 [ 初期値 ] 1 外部クロックをシリアルクロックとして使用 このビットが設定されると , LIN-UART のシリアルクロックとして外部クロックが 直接使用されます。この機能は同期スレーブモード動作時に使用されます。 547 第 17 章 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" が書き込まれると , LIN-UART は直ちにリセットされますが , レジ スタの設定値は保存されます。 受信 / 送信は中断されます。 エラーフラグはすべてクリアされ , 受信データレジスタ (RDR) は "00H" となります。 "0" 書込みは無効です。 読出しは常に "0" を返します。 548 第 17 章 LIN-UART [bit1] SCKE : シリアルクロック出力許可 SCKE シリアルクロック出力許可 0 外部クロック入力 [ 初期値 ] 1 シリアルクロック出力 このビットはシリアルクロック端子 (SCK) の入出力を制御します。 このビットが "0" の場合は , SCK 端子は汎用ポート / シリアルクロック入力端子と して動作します。"1" の場合は , シリアルクロック出力端子となります。 <注意事項> SCK 端子をシリアルクロック入力として使用する場合 (SCKE = 0), ポートは入力ポート として設定してください。シリアルクロック出力として使用する場合は , SCKE ビットの 設定と SCK 端子に対応するポートファンクションレジスタ (PFR) の設定が必要です。ポー トファンクションレジスタの設定についての詳細は , 「第 10 章 I/O ポート」を参照して ください。また , 外部クロック選択ビットを使用 (EXT = 1) して外部クロックを選択して ください。 [bit0] SOE : シリアルデータ出力許可ビット SOE シリアルデータ出力許可 0 SOT 出力禁止 [ 初期値 ] 1 SOT 出力許可 このビットにより , シリアル出力が許可されます。 このビットが "1" の場合は , シリアルデータ出力が許可されます。 <注意事項> SOT 端子をシリアル出力として使用する場合は , SOE ビットの設定と , 対応するポート ファンクションレジスタ (PFR) の設定が必要です。ポートファンクションレジスタの設定 についての詳細は , 「第 10 章 I/O ポート」を参照してください。 549 第 17 章 LIN-UART 17.3.3 シリアルステータスレジスタ (SSR) シリアルステータスレジスタ (SSR) により , 送信 / 受信状態 , エラーの有無を確認で きます。また , 送信 / 受信割込みの制御も行います。 ■ シリアルステータスレジスタ (SSR) 図 17.3-4 シリアルステータスレジスタ (SSR) のビット構成 SSR アドレス : 000042H, 00004AH, bit 15 000052H, 00005AH, PE 000062H, 00006AH, 000072H 14 13 12 11 10 9 8 ORE FRE RDRF TDRE BDS RIE TIE リード / ライト (R) (R) (R) (R) (R) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (1) (0) (0) (0) [bit15] PE : パリティエラーフラグビット PE パリティエラー 0 パリティエラーなし [ 初期値 ] 1 受信中にパリティエラー発生 受信中にパリティエラーが発生すると , このビットは "1" に設定されます。シリア ル制御レジスタ (SCR) の CRE ビットに "1" が書き込まれると , このビットはクリア されます。 このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。 このフラグが設定された場合は , 受信データレジスタ (RDR) のデータは無効です。 [bit14] ORE : オーバランエラーフラグビット ORE オーバランエラー 0 オーバランエラーなし [ 初期値 ] 1 受信中にオーバランエラー発生 受信中にオーバランエラーが発生すると , このビットは "1" に設定されます。シリ アル制御レジスタ (SCR) の CRE ビットに "1" が書き込まれると , このビットはクリ アされます。 このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。 このフラグが設定された場合は , 受信データレジスタ (RDR) のデータは無効です。 550 第 17 章 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" の場合は , 送信割込み要求が出力されます。 551 第 17 章 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" になると , 送信割込み要求が送出され ます。 552 第 17 章 LIN-UART 17.3.4 受信 / 送信データレジスタ (RDR/TDR) 受信データレジスタ (RDR) は受信データを , 送信データレジスタは送信データを保 持します。RDR, TDR は同一のアドレスに配置されています。 ■ 受信 / 送信データレジスタ (RDR/TDR) 図 17.3-5 受信 / 送信データレジスタ RDR/TDR アドレス : 000043H, 00004BH, bit 7 000053H, 00005BH, D7 000063H, 00006BH, 000073H 6 5 4 3 2 1 0 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) [bit7 ∼ bit0] D7 ∼ D0 : データレジスタ アクセス データレジスタ 読出し 受信データレジスタからの読出し 書込み 送信データレジスタへの書込み ● 受信 RDR は受信データを格納するレジスタです。SIN 端子より転送されたシリアルデータ 信号はシフトレジスタで変換され , このレジスタへ格納されます。データ長が 7 ビット の場合は , 最上位ビット (D7) は "0" となります。受信が完了すると , データはこのレジ スタへ格納され , 受信データフルフラグビット (SSR の RDRF ビット ) が "1" に設定さ れます。このとき , 受信割込み要求が許可されていると , 受信割込みが発生します。 SSR の RDRF ビットが "1" のときに RDR を読み出してください。RDR が読み出され ると , RDRF ビットは自動的に "0" にクリアされます。受信割込みが許可されて受信エ ラーが発生していない場合は , 受信割込みもクリアされます。 553 第 17 章 LIN-UART ● 送信 送信データが送信許可状態で送信データレジスタへ書き込まれると , データは送信シ フトレジスタへ転送後 , シリアルデータへと変換されてシリアルデータ出力端子 (SOT) から送信されます。データ長が7ビットの場合は, 最上位ビット(D7)は送信されません。 このレジスタへ送信データが書き込まれると , 送信データエンプティフラグビット (SSR の TDRE ビット ) が "0" にクリアされます。送信シフトレジスタへの転送が完了 すると , TDRE ビットは "1" に設定されます。TDRE ビットが "1" であれば , 次の送信 データをこのレジスタへ書き込むことができます。送信割込み要求が許可されている 場合は , 送信割込みが発生します。送信割込みの発生 , もしくは TDRE ビットが "1" で あれば , 次のデータを書き込んでください。 <注意事項> TDR は書込み専用 , RDR は読出し専用のレジスタです。このレジスタは同一のアドレス に配置されているため , 読出し値と書込み値は異なります。そのため , リードモディファ イライト (RMW) 系命令ではアクセスしないでください。 554 第 17 章 LIN-UART 17.3.5 拡張ステータス・制御レジスタ (ESCR) 拡張ステータス・制御レジスタでは LIN 機能を設定できます。また , SIN, SOT 端子 への直接アクセスと LIN-UART 同期クロックモードの設定ができます。 ■ 拡張ステータス・制御レジスタ (ESCR) 図 17.3-6 拡張ステータス・制御レジスタ (ESCR) のビット構成 ESCR アドレス : 000044H, 00004CH, bit 15 000054H, 00005CH, LBIE 000064H, 00006CH, 000074H 14 13 12 11 10 9 8 LBD LBL1 LBL0 SOPE SIOP CCO SCES リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (x) (0) (0) [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 検出割込みが許可されている場合は , 割込 みもクリアします。 リードモディファイライト (RMW) 系命令では常に "1" が返されますが , この場合は LIN-Break 検出を意味しません。 555 第 17 章 LIN-UART [bit13, bit12] LBL1, LBL0 : LIN-Break 長選択ビット LBL0 LBL1 0 0 LIN-Break 長は 13 ビット [ 初期値 ] 1 0 LIN-Break 長は 14 ビット 0 1 LIN-Break 長は 15 ビット 1 1 LIN-Break 長は 16 ビット LIN-Break 長 これらのビットにより , LIN-UART で生成される LIN-Break のシリアルビット長が 定義されます。LIN-Break の受信では , 常に 11 ビット固定です。 [bit11] SOPE : シリアル出力端子直接アクセス許可ビット SOPE シリアル出力端子直接アクセス 0 シリアル出力端子直接アクセス禁止 [ 初期値 ] 1 シリアル出力端子直接アクセス許可 このビットが "1" に設定されると , SOT 端子へ直接書込みを行うことが可能になり ます。 詳細は , 表 17.3-2 を参照してください。 [bit10] SIOP : シリアル入出力端子直接アクセス許可ビット シリアル入出力端子直接アクセス許可 SIOP 書込み (SOPE が "1" の場合 ) 0 SOT は "0" 出力 1 SOT は "1" 出力 [ 初期値 ] 読出し SIN の値を読み出します 通常読出し命令では , SIN 端子の値を返します。書込みは SOT 端子の値を設定しま す。リードモディファイライト (RMW) 系命令では , SOT の値を返します。 詳細は , 表 17.3-2 を参照してください。 556 第 17 章 LIN-UART 表 17.3-1 SOPE と SIOP の機能 SOPE SIOP SIOP への書込み SIOP からの読出し 0 R/W SOT 端子への影響なし 書込み値は保持 SIN の値を読み出します 1 R/W SOT 端子へ書込み値出力 SIN の値を読み出します 1 RMW SOT 端子の値を読み出し , 書込み <注意事項> 本ビットの設定値は , シリアル制御レジスタ (SCR) の TXE ビットが "0" の場合のみ有効 です。 [bit9] CCO : 連続クロック出力許可ビット CCO 連続クロック出力 ( モード 2) 0 連続クロック出力禁止 [ 初期値 ] 1 連続クロック出力許可 LIN-UART がマスタモード 2 ( 同期モード ) で動作し , SCK 端子が出力として設定さ れている場合に , このビットにより SCK での連続シリアルクロック出力が許可され ます。 [bit8] SCES : シリアルクロックエッジ選択ビット SCES シリアルクロックエッジ選択 0 クロックの立上りエッジでサンプリング ( 通常 ) [ 初期値 ] 1 クロックの立下りエッジでサンプリング ( 反転クロック ) このビットにより , モード 2 ( 同期モード ) での内部シリアルクロックが反転されま す。LIN-UART がモード 2 マスタ ( 同期モード ) で動作し , SCK 端子が出力として 設定されている場合は , 出力クロックも反転します。 モード 2 スレーブでは , サンプリングエッジが立上りエッジから立下りエッジへと 切り換わります。 557 第 17 章 LIN-UART 17.3.6 拡張通信制御レジスタ (ECCR) 拡張通信制御レジスタ (ECCR) では , バスアイドル検出割込みの設定 , 同期クロック 設定 , LIN-Break 生成ができます。 ■ 拡張通信制御レジスタ (ECCR) 図 17.3-7 拡張通信制御レジスタのビット構成 ECCR アドレス : 000045H, 00004DH, bit 7 000055H, 00005DH, 000065H, 00006DH, 予約 000075H 6 5 4 3 2 1 0 LBR MS SCDE SSM BIE RBI TBI リード / ライト (-) (W) (R/W) (R/W) (R/W) (R/W) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (x) (x) [bit7] 予約 : 予約ビット 予約ビットです。必ず "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 における LIN-UART をマスタあるいはスレーブとして 設定します。マスタとして設定されると , LIN-UART は同期クロックを生成します。 スレーブモードとして設定された場合は , 外部シリアルクロックを受信します。 558 第 17 章 LIN-UART <注意事項> スレーブモードとして設定される場合は , クロックソースを外部クロックとして , 1 対 1 外部クロック入力に設定してください (SMR の SCKE = 0, EXT = 1, OTO = 1) 。 [bit4] SCDE : シリアルクロック遅延許可ビット SCDE モード 2 でのシリアルクロック遅延許可 0 クロック遅延禁止 [ 初期値 ] 1 クロック遅延許可 LIN-UART がモード 2 で動作する場合 , このビットが設定されると , シリアル出力 クロックは 1 マシンサイクル遅延します。 [bit3] SSM : スタート / ストップビットモード許可 SSM モード 2 での調歩同期 0 モード 2 でのスタート / ストップビットモード禁止 [ 初期値 ] 1 モード 2 でのスタート / ストップビットモード許可 LIN-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" のときは , このビットを使用しないでください。 559 第 17 章 LIN-UART [bit0] TBI : 送信バスアイドルフラグビット TBI 送信バスアイドル 0 送信動作中 1 送信休止中 SOT 端子での送信がない場合に , このビットは "1" に設定されます。 モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。 <注意事項> LIN-UART の動作モードをモード 2 に設定した場合に , SSM ビットが "0" のときは , BIE, RBI, TBI ビットを使用しないでください。 560 第 17 章 LIN-UART 17.3.7 ボーレート / リロードカウンタレジスタ (BGR) ボーレート / リロードカウンタレジスタ (BGR) は , シリアルクロックの分周比を設 定します。また , 送信リロードカウンタの正確な値を読み出すことも可能です。 ■ ボーレート / リロードカウンタレジスタ (BGR) 図 17.3-8 ボーレート / リロードカウンタレジスタ BGR1 アドレス : 000080H, 000082H, bit 15 000084H, 000086H, 予約 000088H, 00008AH, 00008CH 14 13 12 11 10 9 8 B14 B13 B12 B11 B10 B09 B08 リード / ライト (-) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 B06 B05 B04 B03 B02 B01 B00 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) BGR0 アドレス : 000081H, 000083H, bit 7 000085H, 000087H, B07 000089H, 00008BH, 00008DH リード / ライト (R/W) 初期値 (0) [bit15] 予約 : 予約ビット 予約ビットです。読出し値は常に "0" です。 [bit14 ∼ bit8] B14 ∼ B08 : BGR1 : ボーレートジェネレータレジスタ 1 B14 ∼ B08 ボーレートジェネレータレジスタ 1 書込み リロード値の bit14 ∼ bit8 をカウンタへ書込み 読出し カウント bit14 ∼ bit8 の読出し [bit7 ∼ bit0] B07 ∼ B00 : BGR0 : ボーレートジェネレータレジスタ 0 表 17.3-2 ボーレートジェネレータレジスタ 0 B07 ∼ B00 ボーレートジェネレータレジスタ 0 書込み リロード値の bit7 ∼ bit0 をカウンタへ書込み 読出し カウント bit7 ∼ bit0 の読出し 561 第 17 章 LIN-UART ■ ボーレート / リロードカウンタレジスタ ボーレートリロードカウンタレジスタ (BGR) では , シリアルクロックの分周比を設定 します。 レジスタはバイトアクセスもしくはハーフワードアクセスでの読出し / 書込みが可能 です。 562 第 17 章 LIN-UART LIN-UART の割込み 17.4 LIN-UART には受信割込みと送信割込みがあります。下記のいずれかの場合におい て , 割込み要求が生成されます。 • 受信データの受信データレジスタ (RDR) への格納 , もしくは受信エラーの発生 • 送信データの送信データレジスタ (TDR) から送信シフトレジスタへの転送 • LIN-Break 検出 • バスアイドル ( 送信 / 受信動作なし ) ■ LIN-UART の割込み 表 17.4-1 に , LIN-UART の割込みコントロールビットと割込み要因を示します。 表 17.4-1 LIN-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 ECCR ○ ○ △ ○ バスアイドル TDRE SSR ○ ○ ○ ○ ICP ICS ○ × × LIN-Sync-Field ○ の最初の立下り ICS: ICP エッジ ICP の 一時禁止 ICP ICS ○ × × LIN-Sync-Field ○ の 5 回目の立下 ICS: ICP りエッジ ICP の禁止 ICU 送信レジスタ エンプティ ESCR: LBIE ESCR の LBD ビットへの "1" 書込み ECCR: BIE 受信データ / 送信データ SSR: TIE 送信データの 書込み ○ : 使用可能 △ : ECCR の SSM ビットが "1" のときに使用可能 × : 使用不可 563 第 17 章 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 フラグは リセットされます。 564 第 17 章 LIN-UART ■ LIN-Synch-Break 割込み LIN-UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能し ます。 シリアル入力バスが 11 ビットタイム以上 "0" ( ドミナント ) になると , 拡張ステータス・ 制御レジスタ (ESCR) の LIN-Break 検出フラグビット (LBD) が "1" に設定されます。この 場合 , 受信エラーフラグは 9 ビットタイム後に "1" に設定されます。そのため , LIN-SyncBreak 検出のみが目的である場合は , RIE フラグあるいは RXE フラグを "0" に設定してく ださい。その他の場合では , まず受信エラー割込みが生成され , 割込み処理ルーチンによ り LBD = 1 を待ってください。 LBD フラグに "1" が書き込まれると , 割込みと LBD フラグはクリアされます。これに より , 以下の LIN マスタへのシリアルクロックの調整手順のため , CPU は確実に LINSync-Break を検出します。 ■ LIN-Synch-Field エッジ検出割込み LIN-UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能し ます。 LIN-Break 検出後の受信バスの立下りエッジは LIN-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" の場合は使用できません。 565 第 17 章 LIN-UART 図 17.4-1 に , バスアイドル割込みの生成を示します。 図 17.4-1 バスアイドル割込み生成 送信データ 受信データ TBI RBI 受信IRQ : スタートビット 566 : ストップビット : データビット 第 17 章 LIN-UART 受信割込み生成とフラグセットタイミング 17.4.1 受信割込み要因 , 受信完了 (SSR の RDRF ビット ) と , 受信エラーの発生 (SSR の PE, ORE, FRE ビット ) について説明します。 ■ 受信割込み生成とフラグセットタイミング シリアルステータスレジスタ (SSR) の受信割込み許可フラグビット (RIE) が "1" に設定 され , データ受信が完了 (RDRF = 1) すると割込みが生成されます。この割込みは , モー ド 0, モード 1, モード 2 (SSM が "1" の場合 ) , モード 3 でのストップビットの検出 , ま たはモード 2 (SSM が "0" の場合 ) で最終データビットが読まれると生成されます。 <注意事項> 受信エラーが発生した場合は , いずれのモードにおいても受信データレジスタの内容は無 効です。 図 17.4-2 受信動作とフラグセットタイミング 受信データ モード0/モード3 ST D0 D1 D2 D5 D6 D7/ P SP ST 受信データ モード1 ST D0 D1 D2 D6 D7 AD SP ST D0 D1 D2 D4 D5 D6 D7 D0 受信データ モード2 PE*1, FRE RDRF ORE*2 (RDRF=1の場合) 受信割込み発生 *1: モード1, モード3ではPEフラグは常に"0"です。 *2: OREは受信データがCPUによって読まれず, かつ別のデータを受信した場合に発生します。 ST: スタートビット SP: ストップビット AD: モード1 (マルチプロセッサ)アドレス/データ選択ビット <注意事項> 図 17.4-2 にはモード 0 とモード 3 でのすべての受信オプションは示されていません。 ここでは , "7p1" と "8N1" です (p = "E"[even] または "0"[odd]) 。 567 第 17 章 LIN-UART 図 17.4-3 ORE 設定タイミング 受信データ RDRF ORE 568 第 17 章 LIN-UART 送信割込み生成とフラグセットタイミング 17.4.2 送信割込みは , 次の送信データが送信データレジスタ (TDR) に書き込まれる用意が できると生成されます。 ■ 送信割込み生成とフラグセットタイミング 送信割込みは , 送信データが送信データレジスタ (TDR) に書き込まれる用意ができる と生成されます。シリアルステータスレジスタ (SSR) の送信割込み許可ビット (TIE) が "1" に設定され , 送信割込みが許可されている場合に , TDR が空になると送信割込みが 生成されます。 SSR の送信レジスタエンプティ(TDRE) フラグビットは , TDR の空きを示します。TDRE ビットは読出し専用です。フラグのクリアは TDR へのデータ書込みによってのみ行わ れます。 図 17.4-4 に , 送信動作とフラグ設定タイミングを示します。 図 17.4-4 送信動作とフラグ設定タイミング 送信割込み発生 送信割込み発生 モード0, 1または3: TDRへの書込み TDRE シリアル出力 ST D0 D1 D2 D3 D4 D5 D6 D7 P AD SP ST D0 D1 D2 D3 D4 D5 D6 D7 送信割込み発生 P AD SP 送信割込み発生 モード2 (SSM = 0): 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: ストップビット <注意事項> 図 17.4-4 の例には , モード 0 の送信オプションのすべては示されていません。 ここでは , "8p1"(p = "E"[even] または "O"[odd]) です。モード 3 とモード 2 で SSM ビッ トが "0" の場合 , パリティは付加されません。 569 第 17 章 LIN-UART ■ 送信割込み要求生成タイミング 送信割込みが許可 (SSR の TIE ビットが "1") されている場合に TDRE フラグが "1" にな ると , 送信割込み要求が生成されます。 <注意事項> TDRE の初期値は "1" です。したがって , 送信割込みが許可 (TIE = 1) されると , 送信完了 割込みが直ちに設定されます。TDRE は読出し専用です。送信データレジスタ (TDR) へ の書込みによってのみ TDRE フラグはクリアされます。送信割込みを有効にするタイミ ングには注意してください。 570 第 17 章 LIN-UART 17.5 LIN-UART のボーレート LIN-UART のシリアルクロックとして下記のいずれかを選択できます。 • 専用ボーレートジェネレータ ( リロードカウンタ ) • 外部クロック (SCK 端子からのクロック入力 ) • 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用 ■ LIN-UART のボーレート選択 図 17.5-1 に , ボーレート選択回路 ( リロードカウンタ ) を示します。下記の 3 つから ボーレートを選択可能です。 ● 専用ボーレートジェネレータ ( リロードカウンタ ) の使用 LIN-UARTには送信/受信シリアルクロックそれぞれに独立したリロードカウンタがあ ります。ボーレートは , ボーレートジェネレータレジスタ (BGR) の 15 ビットリロード 値により設定されます。 リロードカウンタは , ボーレートジェネレータレジスタの設定値でマシンクロックを 分周します。 ● 外部クロックの使用 (1 対 1 モード ) LIN-UART クロック入力端子 (SCK) からのクロック入力が直接ボーレートとして使用 されます。 ● 専用ボーレートジェネレータに外部クロックを使用 外部クロックをデバイス内部でリロードカウンタと接続させることも可能です。この モードでは , 外部クロックは内部のマシンクロックの代わりに使用されます。 571 第 17 章 LIN-UART 図 17.5-1 ボーレート選択回路 ( リロードカウンタ ) リセット スタートビット 立下りエッジ検出 リロード値 : v Rxc = 0? セット 受信 リロード 15 ビットリロードカウンタ Rxc = v/2? F/F リセット 0 1 リロード値 : v EXT Txc = 0? CLK SCK ( 外部 クロック 入力 ) 0 セット 送信 15 ビットリロードカウンタ リロード 1 カウンタ値 : TXC Txc = v/2? F/F リセット 0 1 内部データバス EXT REST OTO 572 SMR レジスタ 受信クロック B14 B13 B12 B11 B10 B09 B08 BGR1 レジスタ B07 B06 B05 B04 B03 B02 B01 B00 BGR0 レジスタ OTO 送信クロック 第 17 章 LIN-UART ボーレートの設定 17.5.1 ボーレートの設定方法とシリアルクロック周波数の算出結果を示します。 ■ ボーレートの算出 ボーレートジェネレータレジスタ (BGR) により 15 ビットリロードカウンタは設定され ます。 ボーレートの算出には以下の数式を使用してください。 v = [φ/b] − 1 ここで , "φ" はマシンクロック周波数を , "b" はボーレートを示します。 ● 算出例 マシンクロックが 16MHz で , 目的のボーレートが 19200bps の場合 , リロード値 "v" は 以下のようにして算出できます。 v = [16 × 106 / 19200] − 1 = 832 正確なボーレートは , 以下のように再計算してください。 bexact = φ/ (v + 1) = 16 × 106 / 833 = 19207.6831 bps <注意事項> リロード値を "0" に設定すると , リロードカウンタは停止します。したがって , 最小の分 周比は 2 分周となります。 573 第 17 章 LIN-UART ■ マシンクロック周波数ごとのボーレート設定例 表 17.5-1 に , マシンクロックごとのボーレート設定例を示します。 表 17.5-1 マシンクロックごとのボーレート設定例 9MHz 10MHz 18MHz value dev. value dev. value dev. value dev. 4M − − − − − − 4 0 2M 4 10.00 4 0.00 8 0.00 9 0 1M 8 0.00 9 0.00 17 0.00 19 0 500000 17 0.00 19 0.00 35 0.00 39 0 460800 − − − − 38 −0.16 − − 250000 35 0.00 39 0.00 71 0.00 79 0 230400 38 −0.16 − − 77 −0.16 − − 153600 58 0.69 64 −0.16 116 −0.16 129 −0.16 125000 71 0.00 79 0.00 143 0.00 159 0 115200 77 −0.16 86 0.22 155 −0.16 173 0.22 76800 116 −0.16 129 −0.16 233 −0.16 259 −0.16 57600 155 −0.16 173 0.22 312 0.16 346 −0.06 38400 233 −0.16 259 −0.16 468 0.05 520 0.03 28800 312 0.16 346 −0.06 624 0.00 693 −0.06 19200 468 0.05 520 0.03 937 0.05 1041 0.03 10417 863 0.00 959 0.00 1727 0.00 1919 0 9600 937 0.05 1041 0.03 1874 0.00 2083 0.03 7200 1249 0.00 1388 0.01 2499 0.00 2777 0.01 4800 1874 0.00 2082 −0.02 3749 0.00 4166 0.01 2400 3749 0.00 4166 0.01 7499 0.00 8332 0 1200 7499 0.00 8332 0.00 14999 0.00 16666 0 600 14999 0.00 16666 0.00 29999 0.00 − − 300 29999 0.00 − − − − − − <注意事項> 偏差 (dev.) の単位は % です。 最大同期ボーレートは , マシンクロックの 5 分周です。 574 20MHz ボー レート (bps) 第 17 章 LIN-UART ■ 外部クロックの使用 SMR の EXT ビットが設定されると , 外部端子 SCK がクロックとして選択されます。外 部クロック信号は内部 MCU クロックと同様に扱われます。SCK 端子に , 例えば 1.8432MHz の水晶発振子を接続し , PC-16550-UART のすべてのボーレートを選択する ためにリロードカウンタを使用するように設計されています。 "1 対 1" 外部クロック入力モード (SMR の OTO ビット ) が選択されていると , SCK 信 号が LIN-UART シリアルクロック入力へ直接接続されます。これは , LIN-UART 同期 モード 2 でスレーブデバイスとして動作させるために必要です。 <注意事項> いずれの場合においても , クロック信号は LIN-UART 内部で MCU クロックと同期化され ます。これは分周できないクロック比は不安定な信号となることを意味します。 ■ カウント例 図 17.5-2 に , リロードカウンタのカウント例を示します。ここではリロード値を 832 と しています。 図 17.5-2 リロードカウンタのカウント例 送受信クロック リロード カウント 001 000 832 831 830 829 828 827 412 411 410 リロードカウント値 送受信クロック リロード カウント 417 416 415 414 413 <注意事項> シリアルクロック信号の立下りエッジは常に , |(v + 1) / 2| 後です。 575 第 17 章 LIN-UART 17.5.2 リロードカウンタの再起動 リロードカウンタは下記の要因で再起動を行うことができます。 ( 送信 / 受信リロードカウンタ双方 ) • MCU リセット • LIN-UART ソフトウェアクリア (SMR の UPCL ビット ) • LIN-UART ソフトウェア再起動 (SMR の REST ビット ) ( 受信リロードカウンタのみ ) • 非同期モードでのスタートビットの立下りエッジ ■ ソフトウェア再起動 シリアルモードレジスタ (SMR) の REST ビットが設定されると , 次のクロックサイク ルで送信 / 受信リロードカウンタはともに再起動されます。この機能は , 送信リロード カウンタをタイマとして使用するためです。 図 17.5-3 に , リロードカウンタ再起動例を示します。ここではリロード値を 100 とし ています。 図 17.5-3 リロードカウンタ再起動例 動作クロック リロードカウンタ クロック出力 リセット リロード値 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" は読出しカウンタ値を意味します。 576 第 17 章 LIN-UART <注意事項> SMR の UPCL ビットにより LIN-UART がリセットされると , リロードカウンタも再起動 されます。 ■ 自動再起動 非同期 LIN-UART モードでは , スタートビットの立下りエッジが検出されると , 受信リ ロードカウンタは再起動されます。これはシリアル入力シフトレジスタを入力シリア ルデータと同期化させるためです。 577 第 17 章 LIN-UART 17.6 LIN-UART の動作 LIN-UART は動作モード 0 では , 通常双方向シリアル通信として動作します。モード 2 およびモード 3 ではマスタあるいはスレーブとして双方向通信を行います。モー ド 1 ではマスタあるいはスレーブとしてマルチプロセッサ通信を行います。 ■ LIN-UART の動作 ● 動作モード LIN-UART にはモード 0 ∼モード 3 の 4 つの動作モードがあります。表 17.6-1 に , CPU 間接続方法とデータ転送に応じて選択可能な動作モードを示します。 表 17.6-1 LIN-UART の動作モード データ長 動作モード 0 ノーマルモード 1 マルチプロセッサ モード 2 ノーマルモード 3 LIN モード パリティ なし パリティ あり 7 ビット or 8 ビット 7 ビット or 8 ビット+ 1 ビット *2 − 8 ビット 8 ビット − 同期化 ストップ ビット長 データ方向 *1 非同期 1 または 2 L/M 非同期 1 または 2 L/M 同期 0, 1 また は2 L/M 非同期 1 L *1 : 転送データの形式を意味します (LSB ファースト , MSB ファースト ) 。 *2 : " + 1" はマルチプロセッサモードで , パリティビットの代わりに付加されるアド レス / データ部の表示ビットを意味します。 <注意事項> モード 1 は , マスタ / スレーブ接続システムにおいて , LIN-UART のマスタ / スレーブいず れの動作もサポートします。モード 3 での LIN-UART の機能は , 8N1 フォーマット , LSB ファーストに固定されます。 モードが変更されると , LIN-UART はすべての送受信を停止し , 次の動作を開始します。 578 第 17 章 LIN-UART ■ CPU 間の接続方法 外部クロック "1 対 1" 接続 ( ノーマルモード ) とマスタ / スレーブ接続 ( マルチプロセッ サモード ) を選択できます。いずれの接続においても , データ長 , パリティ有無 , 同期 化方法はすべての CPU で共通である必要があります。 下記に示すように動作モードを選択してください。 • "1 対 1" 接続では , 2 つの CPU を非同期転送モードの動作モード 0, または同期転送 モードの動作モード 2 に設定してください。同期モード 2 では , 必ず一方をマスタ , 他方をスレーブとして設定してください。 • マスタ / スレーブ接続では動作モード 1 を選択し , マスタあるいはスレーブのいず れかとして使用してください。 ■ 同期化方法 非同期動作モードでは, LIN-UART受信クロックは自動的に受信スタートビットの立下 りエッジと同期化されます。 同期動作モードでは , マスタデバイスのクロック信号 , マスタとして動作している場合 は LIN-UART 自身により同期化されます。 ■ シングルモード LIN-UART はデータを NRZ (Non Return to Zero) 形式として扱います。 ■ 動作許可ビット LIN-UART は送信許可ビット (SCR の TXE ビット ) と受信許可ビット (SCR の RXE ビッ ト ) を用いて送受信を制御します。動作が禁止された場合は , それぞれ以下のように停 止します。 • 受信 ( 受信シフトレジスタへのデータ入力 ) 中に受信動作が禁止されると , フレーム 受信が終了し , 受信データレジスタ (RDR) の受信データが読み出された後 , 受信動 作が停止します。 • 送信 ( 送信シフトレジスタからのデータ出力 ) 中に送信動作が禁止されると , 送信 データレジスタ (TDR) にデータが無くなるまで待ってから送信動作を停止します。 579 第 17 章 LIN-UART 非同期モードでの動作 ( 動作モード 0, 1) 17.6.1 動作モード 0 ( ノーマルモード ) あるいは動作モード 1 ( マルチプロセッサモード ) で LIN-UART が使用される場合は , 非同期転送モードが選択されます。 ■ 転送データ形式 非同期動作モードでのデータ転送はスタートビット ("L" レベル ) で開始され , ストッ プビット ( 最小 1 ビット , "H" レベル ) で終了します。ビットストリームの方向 (LSB ファースト , MSB ファースト ) はシリアルステータスレジスタ (SSR) の BDS ビットに より設定されます。パリティビットがありと設定されている場合は , 最終データビット とストップビットとの間に配置されます。 動作モード 0 でのデータフレーム長は , パリティビットの代わりとなるアドレス / デー タ区切りビットを含め , 7 ビットもしくは 8 ビットです。ストップビットは 1 ビットも しくは 2 ビットを選択可能です。 転送フレームのビット長の計算式は以下のようになります。 ビット長= 1 + d + p + s (d =データビット [7 ビットまたは 8 ビット ], p =パリティ [0 ビットまたは 1 ビット ], s =ストップビット [1 ビットまたは 2 ビット ]) 図 17.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 AD SP SP *1: D7 (bit 7) :パリティなしでデータ長が8ビットの場合 P (bit 7) :パリティありでデータ長が8ビットの場合 *2: SCRのSBLビットが"1"の場合 ST: スタートビット SP: ストップビット AD: アドレス/データ選択ビット(モード1) <注意事項> シリアルステータスレジスタ (SSR) の BDS ビットが "1" に設定 (MSB ファースト ) され ると , ビットストリームは , D7, D6, … , D1, D0, (P) として処理されます。 ストップビットは2ビットが選択されている場合は, 受信中にどちらも検出されますが, 1 番目のストップビットで受信データフルフラグ (RDRF) は "1" になります。2 番目の ストップビットの後 , 次のスタートビットが検出されないと , バスアイドルフラグ (ECCR の RBI ビット ) が "1" となります。 580 第 17 章 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 では , オーバランエラー , フレーミングエラーを検出できます。このモードで は , パリティはありません。 581 第 17 章 LIN-UART ■ パリティ モード 0 ( およびモード 2 において , ECCR の SSM ビットが設定されている場合 ) では , シリアル制御レジスタ (SCR) のパリティ許可 (PEN) ビットにより , LIN-UART はパリ ティ計算 ( 送信時 ) , パリティ検出および確認 ( 受信時 ) を実行します。 SCR の P ビットにより , 奇数パリティ , 偶数パリティが設定されます。 582 第 17 章 LIN-UART 17.6.2 同期モードでの動作 ( 動作モード 2) LIN-UART 動作モード 2 ( ノーマルモード ) では , クロック同期転送が使用されます。 ■ 転送データ形式 同期モードでは , 拡張通信制御レジスタ (ECCR) の SSM ビットが "0" であれば , スター ト / ストップビットなしで 8 ビットデータが転送されます。モード 2 でのデータ形式 はクロック信号に依ります。 図 17.6-2 に , 転送データ形式 ( 動作モード 2) を示します。 図 17.6-2 転送データ形式 ( 動作モード 2) 送受信データ (ECCR:SSM=0, SCR:PEN=0) 送受信データ (ECCR:SSM=1, SCR:PEN=0) 送受信データ (ECCR:SSM=1, SCR:PEN=1) D0 ST ST D1 D0 D0 D2 D1 D1 D3 D2 D2 D4 D3 D3 D5 D4 D4 D6 D5 D5 D7 D6 D6 D7 D7 SP P * SP SP * SP *: 2ストップビットに設定した場合(SCR: SBLビット =1) ST: スタートビット SP: ストップビット P: パリティビット ■ モード 2 でのクロック反転とスタート / ストップビット 拡張ステータス・制御レジスタ (ESCR) の SCES ビットが設定されている場合は , シリ アルクロックは反転します。したがって , スレーブモードでは , 受信シリアルクロック の立下りエッジでデータを取り込みます。マスタモードで SCES ビットが設定される と , クロック信号のマークレベルが "0" となります。拡張通信制御レジスタ (ECCR) の SSM ビットが設定されると , 非同期モードのようにデータフォーマットにスタート ビットとストップビットが付加されます。 図 17.6-3 クロック反転時の転送データ形式 マーク レベル 送受信クロック (SCES = 0, CCO = 0): 送受信クロック (SCES = 1, CCO = 0): 送受信データ (SSM = 1) (パリティなし, 1 ストップビット) マーク レベル ST SP データフレーム 583 第 17 章 LIN-UART ■ クロック供給 クロック同期モード ( ノーマルモード ) では , 送信ビット数および受信ビット数はク ロックサイクルと等しくなります。調歩同期通信が設定されていると , クロックサイク ル数はスタート / ストップビットを追加したものと一致します。 内部クロックが選択 ( 専用リロードタイマ ) されていると , クロック同期で受信してい るデータは , データが送信されると自動的に生成されます。 外部クロックが選択されていると , 送信データレジスタにデータを格納し , 送信される ビットごとのクロックサイクルは外部から供給 , 生成されます。SCES が "0" の場合 , マークレベル ("H") は , 送信開始以前および送信完了後に保持されます。 クロックのどの立下りエッジでも送信データが有効かつ安定するように , ECCR の SCDE ビットの設定により , 送信クロック信号は 1 マシンサイクル遅延されます ( 受信 デバイスがクロックの立上りあるいは立下りエッジでデータを取り込む場合に必要で す )。この機能は , CCO が設定されていると停止します。 図 17.6-4 遅延送信クロック信号 (SCDE = 1) 送信データ書込み 受信データサンプリングポイント(SCES = 0) マークレベル 送受信クロック(通常) マークレベル 送信クロック (SCDE = 1) マークレベル 送受信データ 0 1 1 0 LSB 1 0 0 データ 1 MSB ESCR のシリアルクロックエッジ選択 (SCES) ビットが設定されていると , LIN-UART ク ロックは反転し , クロックの立下りエッジで受信データを取り込みます。この場合は , クロックの立下りエッジで必ず有効なシリアルデータとしてください。 マスタモードでは , 拡張ステータス・制御レジスタ (ESCR) の CCO ビットが設定され ると , SCK 端子からシリアルクロックは継続的に出力されます。このモードでは , 受信 側にデータフレームの開始と終了を明示するために , スタートビットとストップビッ トを使用するようにしてください。図 17.6-5 に , モード 2 での継続クロック出力を示 します。 図 17.6-5 モード 2 での継続クロック出力 送受信クロック (SCES = 0, CCO = 1): 送受信クロック (SCES =1, CCO = 1): 送受信データ (SSM=1) (パリティなし, 1 ストップビット) ST SP データフレーム 584 第 17 章 LIN-UART ■ エラー検出 スタート / ストップビットを使用しない場合 (ECCR の SSM = 0) は , オーバランエラー のみが検出されます。 ■ 通信 同期通信モードの初期化には , 以下の設定を行ってください。 • ボーレートジェネレータレジスタ (BGR) 専用ボーレートリロードカウンタへのリロード値の設定 • シリアルモードレジスタ (SMR) MD1, MD0 : "10B" ( モード 2) :"1" ( 専用ボーレートリロードカウンタ使用 ) SCKE "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" ( マスタモード , LIN-UART がシリアルクロックを生成 ) "1" ( スレーブモード , LIN-UART はシリアルクロックを外部から受信 ) 通信を開始するには , 送信データレジスタ (TDR) へデータを書き込んでください。受 信のみを行う場合には SMR のシリアル出力許可 (SOE) ビットで出力を停止し , TDR へ ダミーデータを書き込んでください。 <注意事項> 非同期モード時と同様に , 継続クロック , スタート / ストップビット , 双方向通信が可能 です。 585 第 17 章 LIN-UART 17.6.3 LIN 機能での動作 ( 動作モード 3) LIN-UART は LIN マスタデバイス , LIN スレーブデバイスいずれとしても使用可能で す。LIN 機能にはモード 3 が割り当てられています。LIN-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 ビットで表 17.6-2 のように設定でき ます。 表 17.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 後でスタートビッ ト以前では割込みは生成されません。 586 第 17 章 LIN-UART ■ LIN スレーブとしての UART LIN スレーブモードでは , LIN-UART はマスタのボーレートに同期します。受信が禁止 (RXE = 0) されて LIN-Break 割込みが許可 (LBIE = 1) されている場合に , LIN マスタ の Synch-Break が検出されて ESCR の LBD フラグがそれを示すと , LIN-UART は受信 割込みを生成します。このビットに "0" を書き込むと割込みはクリアされます。 次に LIN マスタのボーレートの解析をします。Synch-Field の最初の立下りエッジが LIN-UART で検出されます。LIN-UART は内部信号を経由してインプットキャプチャ (ICU) へ伝え , 5 回目の立下りエッジで ICU への信号をリセットします。したがって , ICU を LIN インプットキャプチャとして設定し , ICU の割込みを許可状態にする必要 があります。ICU への信号が "1" である時間が , 8 分周された LIN マスタの正確なボー レートです。 ボーレート設定値は下記のようになります。 タイマオーバフローなし : BGR 値= (b − a) / 8 タイマオーバフローあり : BGR 値= (Max + b − a) / 8 ここで , "Max" はタイマの最大値 , "a" は最初の割込み後の ICU カウンタレジスタの値 , "b" は 2 回目の割込み後の ICU カウンタレジスタの値を意味します。 587 第 17 章 LIN-UART ■ LIN-Synch-Break 検出割込みとフラグ スレーブモードで LIN-Synch-Break が検出されると , ESCR の LIN-Break 検出 (LBD) フ ラグが "1" に設定されます。LIN-Break 割込み許可 (LBIE) ビットが設定されていると , これは割込み要因となります。 図 17.6-6 に , LIN-Synch-Break 検出とフラグセットタイミングを示します。 図 17.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の場合に受信割込みを発生 受信許可状態 (RXE = 1) で受信割込みが許可 (RIE = 1) されている場合は , LIN-Break 割込みより 2 ビットタイム ("8N1") 早く SSR の受信データフレーミングエラー (FRE) フラグビットが受信割込み要因となりますので , LIN-Break を使用する場合は , RXE を "0" にしてください。 LBD は動作モード 0 および動作モード 3 で使用可能です。 図 17.6-7 LIN スレーブモードでの UART の動作 シリアル クロック シリアル入力 (LINバス) CPUによる LBRクリア LBD ICU入力 Synch-Break (14ビット設定の場合) 588 Synch-Ffield 第 17 章 LIN-UART ■ LIN バスタイミング 図 17.6-8 LIN バスタイミングと UART の信号 前回のシリアルクロック クロックなし ( 計算フレーム ) 新たに計算された シリアルクロック ICU カウント LIN バス (LSYN) 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 読出し 589 第 17 章 LIN-UART シリアル端子への直接アクセス 17.6.4 LIN-UART は送信端子 (SOT), 受信端子 (SIN) の値を直接アクセスすることができま す。 ■ LIN-UART 端子直接アクセス LIN-UARTにはシリアル入力端子/シリアル出力端子の値をソフトウェアで直接アクセ スする機能があります。ESCR の SIOP ビットの読出しにより , シリアル入力データを モニタできます。ESCR のシリアル出力端子直接アクセス許可 (SOPE) ビットが設定さ れると , ソフトウェアにて SOT 端子の出力値を固定できます。これは送信シフトレジ スタが空 , 例えば送信動作なしのときにのみ可能です。 LIN モードでは , この機能は自身の送信データを読み戻すために用いられます。単ワイ ヤ LIN バス上に物理的な不具合がある場合は , エラー処理にも使用されます。 <注意事項> SIOP には最後に書き込まれた値が保持されます。不要なエッジ出力を防ぐために出力端 子へのアクセスを設定する前に SIOP へ値を書き込んでください。 SIOP ビットへのリードモディファイライト (RMW) 系命令では SOT 端子の値が返されま す。通常の読出し命令では , SIN の値が返されます。 590 第 17 章 LIN-UART 17.6.5 双方向通信機能 ( ノーマルモード ) 動作モード 0, 2 では通常のシリアル双方向通信が可能です。非同期通信には動作 モード 0 を , 同期通信には動作モード 2 を選択してください。 ■ 双方向通信機能 図 17.6-9 に , 動作モード 0, 2 での LIN-UART の設定を示します。 図 17.6-9 動作モード 0, 2 での LIN-UART の設定 bit 15 SCR, SMR PEN モード 0 → ◎ 14 13 12 11 10 P SBL CL AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE ◎ ◎ ◎ × 0 モード 2 → □ □ □ + × 0 bit 15 14 13 12 11 10 SSR, TDR/RDR 9 8 7 6 ◎ 0 0 ◎ ◎ 1 0 9 8 7 6 ◎ PE ORE FRE RDRF TDRE BDS RIE ◎ ◎ ◎ ◎ ◎ ◎ ◎ モード 2 → □ ◎ □ ◎ ◎ ◎ ◎ ◎ bit 15 14 13 12 11 10 9 8 0 4 3 2 1 0 0 0 0 1 ◎ ◎ ◎ 0 0 ◎ ◎ 5 4 3 2 1 0 変換データを設定 ( 書込み時 ) 受信データを保持 ( 読出し時 ) TIE モード 0 → ◎ 5 7 6 5 4 3 2 ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS 予約 LBR MS SCDE SSM BIE 1 0 RBI TBI モード 0 → ◎ ◎ ◎ ◎ ◎ ◎ × × ◎ × × × ◎ ◎ ◎ モード 2 → × × × × ◎ ◎ ◎ ◎ × ◎ ◎ ◎ □ □ □ ◎ : 使用ビット × : 未使用ビット 1: "1" を設定 0: "0" を設定 □ : SSM = 1 の場合に使用 ( 同期スタート / ストップビット ) + : 自動的に正しく設定されるビット ■ CPU 間の接続 図 17.6-10 に , LIN-UART 動作モード 2 双方向通信の接続例を示します。 図 17.6-10 LIN-UART 動作モード 2 双方向通信の接続例 SOT SOT SIN SIN SCK CPU-1 (マスタ) 出力 入力 SCK CPU-2 (スレーブ) 591 第 17 章 LIN-UART 17.6.6 マスタ / スレーブ通信機能 ( マルチプロセッサモード ) マスタ / スレーブモードでは , マスタ / スレーブいずれのシステムにおいても複数の CPU との LIN-UART 通信が可能です。 ■ マスタ / スレーブ通信機能 図 17.6-11 に , 動作モード 1 での LIN-UART の設定を示します。 図 17.6-11 動作モード 1 での LIN-UART の設定 bit 15 14 13 12 11 P SBL CL AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE モード 1 → + × ◎ ◎ ◎ 0 ◎ ◎ 0 1 0 0 0 0 1 ◎ bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SCR, SMR SSR, TDR/RDR PEN 10 9 PE ORE FRE RDRF TDRE BDS RIE 8 7 ◎ ◎ ◎ ◎ ◎ ◎ ◎ bit 15 14 13 12 11 10 9 8 5 4 3 2 7 6 5 4 3 2 ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS 予約 LBR MS SCDE SSM BIE モード 1 → × × × × ◎ ◎ × 1 0 変換データを設定 ( 書込み時 ) 受信データを保持 ( 読出し時 ) TIE モード 1 → × 6 × × × × × ◎ 1 0 RBI TBI ◎ ◎ ◎ : 使用ビット × : 未使用ビット 1: "1" を設定 0: "0" を設定 + : 自動的に正しく設定されるビット ■ CPU 間の接続 図 17.6-12 に , LIN-UART マスタ / スレーブ通信の接続例を示します。LIN-UART はマ スタとしてもスレーブとしても使用できます。 図 17.6-12 LIN-UART マスタ / スレーブ通信の接続例 SOT SIN マスタCPU SOT SIN スレーブCPU #0 592 SOT SIN スレーブCPU #1 第 17 章 LIN-UART ■ 機能部 マスタ / スレーブ通信用に , 以下のように動作モードとデータ転送モードを設定してく ださい。 表 17.6-3 マスタ / スレーブ通信機能の設定 動作モード マスタ CPU アドレス 送受信 データ 送受信 スレーブ CPU データ AD = 1 + 7 ビットまたは 8 ビットアド モード 1 モード 1 レス (AD ビット (AD ビット 送受信 ) AD = 0 + 7 送受信 ) ビットまたは 8 ビットデー タ パリティ 同期方法 なし 非同期 ストップ ビット ビット方向 1 ビット LSB ファースト または または 2 ビット MSB ファースト ■ 通信手順 マスタ CPU がアドレスデータを送信すると , 通信が開始されます。アドレスデータの AD ビットは "1" に設定され , 通信対象の CPU が選択されます。それぞれのスレーブ CPU はそのアドレスデータを確認します。アドレスデータがスレーブ CPU に割り当て られたアドレスを示すと, そのスレーブCPUはマスタCPUと通信します (通常モード) 。 以下に , マスタ / スレーブ通信 ( マルチプロセッサモード ) のフローチャートを示しま す。 593 第 17 章 LIN-UART 図 17.6-13 マスタ / スレーブ通信のフローチャート ( マスタ CPU) ( スレーブ CPU) 開始 開始 動作モード 1 に設定 動作モード 1 に設定 SIN 端子をシリアルデータ 入力に設定 SOT 端子をシリアルデータ 出力に設定 SIN 端子をシリアルデータ 入力に設定 SOT 端子をシリアルデータ 出力に設定 7 または 8 データビット長に設定 1 または 2 ストップビット長に設定 7 または 8 データビット長に設定 1 または 2 ストップビット長に設定 AD ビットに "1" を設定 送受信動作許可 送受信動作許可 受信バイト スレーブへアドレスを送信 AD ビット= 1? 待機 NO YES バスアイドル 割込み スレーブアドレス は一致 ? AD ビットに "0" を設定 NO YES マスタ CPU と通信 スレーブ CPU と通信 通信終了 ? NO YES ほかのスレーブ CPU と通信 ? YES NO YES 送受信動作禁止 終了 594 通信終了 ? NO 第 17 章 LIN-UART LIN 通信機能 17.6.7 LIN マスタ , LIN スレーブ , いずれのシステムにおいても , LIN デバイスとの LINUART 通信が可能です。 ■ LIN マスタ / スレーブ通信機能 図 17.6-14 に , 動作モード 3 (LIN) での LIN-UART の設定を示します。 図 17.6-14 動作モード 3 (LIN) での LIN-UART の設定 bit 15 14 13 12 11 P SBL CL AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE モード 3 → + × + + × 0 ◎ ◎ 1 1 0 0 0 0 1 ◎ bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SCR, SMR PEN SSR, TDR/RDR 10 9 PE ORE FRE RDRF TDRE BDS RIE 8 7 ◎ ◎ ◎ ◎ + ◎ ◎ bit 15 14 13 12 11 10 9 8 5 4 3 2 7 6 5 4 3 2 ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS 予約 LBR MS SCDE SSM BIE モード 3 → ◎ ◎ ◎ ◎ ◎ ◎ × 0 1 0 変換データを設定 ( 書込み時 ) 受信データを保持 ( 読出し時 ) TIE モード 3 → × 6 ◎ × × × ◎ 1 0 RBI TBI ◎ ◎ ◎ : 使用ビット × : 未使用ビット 1: "1" を設定 0: "0" を設定 + : 自動的に正しく設定されるビット ■ LIN デバイスの接続 図 17.6-15 に , LIN バスシステムの接続例を示します。 LIN-UART は LIN マスタ , LIN スレーブ , いずれとしても設定可能です。 図 17.6-15 LIN バスシステムの接続例 SOT SOT LINバス SIN LINマスタ SIN シングルワイヤ トランシーバ シングルワイヤ トランシーバ LINスレーブ 595 第 17 章 LIN-UART 17.6.8 LIN 通信モード ( 動作モード 3) UART サンプルフローチャート LIN 通信モードにおける LIN-UART のフローチャート例を示します。 ■ マスタデバイスとしての LIN-UART 図 17.6-16 LIN マスタモードでの LIN-UART フローチャート 開始 初期化:動作モードを3に設定 (データ長8ビット,パリティなし, 1ストップビット) TIE = 0, RIE = 0 メッセージ送信? NO YES スリープモード送信 TDR = 80H TIE = 0 Synch Break送信: ECCRに"1"書込み: LBR, TIE = 1; Synch Field送信: TDR = 55H CPUからの ウェイクアップ? スリープ モード送信? NO ウェイクアップコード送信 RIE = 0 YES TIE = 1 TDR = 80H RIE = 1 YES NO ID Field送信: TDR = Id スレーブへ の書込み? NO YES NO TIE = 0 RIE = 1 スレーブからデータ読出し RIE = 0 596 00H, 80H または C0H 受信 ? TIE = 1 スレーブへのデータ 書込み TIE = 0 YES RIE = 0 エラー発生? YES エラーハンドラ NO 第 17 章 LIN-UART ■ スレーブデバイスとしての LIN-UART 図 17.6-17 LIN スレーブモードでの LIN-UART フローチャート 開始 A B 初期化: 動作モードを3に設定 (8N1データフォーマット) C エラー発生? RIE = 0; LBIE = 1; RXE = 0 NO スレーブ アドレス一致? NO C E YES YES マスタの 送信要求? スレーブ 動作待ち LBD = 1 LIN Break割込み NO YES LINマスタからの メッセージ待ち LIN Break割り込み要因 (ESCR.LBDに“0”書き込み) ICU割込み許可(両エッジ) データ+チェック サム受信 80H受信? (スリープモード) NO S RIE = 0 TIE = 1 チェックサム 計算 データ送信 (次ページへ) スレーブ 動作待ち TIE = 0 YES B ICU割込み ICUデータ読出し ICU割込みフラグクリア スレーブ 動作待ち C マスタの 送信要求? NO YES C ICU割込み ICUデータ読出し 新ボーレート計算 リロードカウンタに設定 割込みクリア スレーブ 動作待ち バスアイドル 割込み E エラーハンドラ C ID受信 RIE = 1; RXE = 1 A ( 続く ) 597 第 17 章 LIN-UART ( 続き ) S CPUからの ウェイクアップ? NO ウェイクアップ コード送信 RIE = 0 TIE = 1 TDR = 80H YES RIE = 1 NO 598 00H, 80H またはC0H 受信? TIE = 0 YES RIE = 0 C 第 17 章 LIN-UART 17.7 LIN-UART 使用上の注意事項 LIN-UART 使用時における注意事項を示します。 ■ 動作設定 LIN-UART のシリアル制御レジスタ (SCR) には , TXE ( 送信 ) , RXE ( 受信 ) 動作許可 ビットがあります。これらのビットの初期値は停止状態となっているので , 送信 / 受信 いずれの動作においても転送開始前にこれらのビットを設定してください。ビットの 設定を禁止状態とすることで , 転送を中断することができます。 ISO9141 (LIN バスシステム ) のような単一バスシステムにおいては , 単方向通信である ため , これらの 2 ビットを同時には設定しないでください。受信は自動的に実行される ので , LIN-UART により送信されたデータは LIN-UART 自身も受信します。 ■ 通信モードの設定 通信モードの設定は , システムが非動作中に行ってください。送信 / 受信中に動作モー ドが変更されると , 送信 / 受信は停止し , 転送データは失われます。 ■ 送信割込み許可タイミング 送信データエンプティフラグビット (SSR の TDRE ビット ) の初期値は "1" ( 送信デー タがなく , 送信データ書込み許可状態 ) です。送信割込み要求は , 送信割込み要求が許 可 (SSR の TIE ビットが "1") されると直ちに生成されます。この割込みを発生させな いためには , TDR レジスタへの送信データ書込み後に TIE フラグを "1" に設定してく ださい。 ■ 動作モード 3 における LIN の使用 LIN の機能はモード 0 でも使用可能です ( 送信 , 受信ブレーク ) が , 動作モードをモー ド 3 に設定すると , LIN-UART のデータ形式が LIN の形式 (8N1, LSB ファースト ) に自 動的に設定されます。LIN-UART の LIN バスプロトコルへの適用は動作モードをモー ド 3 に設定してください。ブレークの送信時間は変更可能ですが , 最低 11 シリアルビッ トタイムが必要です。 ■ 動作設定の変更 LIN-UART の動作設定を変更した場合は , 必ず LIN-UART をリセットしてください。特 に同期モード 2 でのスタート / ストップビットの有無に注意してください。 シリアルモードレジスタ (SMR) の設定を行う場合は , LIN-UART の再設定と UPCL ビッ トの設定を同時にはできません。この場合 , LIN-UART が正常に動作しないことがあり ます。SMR のビットを設定してから , UPCL ビットをセットするようにしてください。 ■ LIN スレーブの設定 LIN スレーブとして LIN-UART を初期化する場合は , 必ずボーレートを最初の LIN 同 期ブレーク受信前に設定してください。これは最低 13 ビットタイムの LIN 同期ブレー ク検出を確実にするためです。 599 第 17 章 LIN-UART ■ ソフトウェア互換 この LIN-UART は従来の MCU に搭載されているものに類似していますが , ソフトウェ アには互換性はありません。プログラミングモデルはほぼ同じですが , レジスタ構成は 異なります。さらにボーレートは既定値から選択するのではなく , リロード値で設定す るようになっています。 ■ バスアイドル機能 同期モード 2 では , バスアイドル機能は使用できません。 ■ シリアル制御レジスタ (SCR) の AD ビット シリアル制御レジスタ (SCR) の AD ビット ( マルチプロセッサモードでのアドレス / データビット ) を使用する際には下記のことに注意してください。 読み出すと最後に受信した AD ビットを返しますが , 書込みは送信時の AD ビットを設 定します。したがって , AD ビットは制御ビットでありフラグビットでもあります。内 部的には受信データと送信データはそれぞれ別のレジスタへ格納されますが , リード モディファイライト (RMW) 系命令では , 受信データが読み出され , データ操作後 , 送 信データとして書き込まれます。この種の命令で同じレジスタのビットがアクセスさ れると , AD ビットに誤った値が設定されることがあります。 そのため , このビットへの書込みアクセスは送信前に行ってください。あるいは , バイ トアクセスですべてのビットを一度に正しく設定してください。また , AD ビットは送 信データレジスタのようにはデータを保持しません。 送信動作中にこのビットを更新すると , 送信中のデータの AD ビットが変更されます。 600 第 18 章 I2C インタフェース I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作について説明します。 18.1 I2C インタフェースの概要 18.2 I2C インタフェースのレジスタ 18.3 I2C インタフェースの動作説明 18.4 動作フローチャート 601 第 18 章 I2C インタフェース 18.1 I2C インタフェースの概要 I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートで , I2C バ ス上のマスタ / スレーブデバイスとして動作します。 ■ I2C インタフェースの特長 I2C インタフェースの特長は , 以下のとおりです。 • マスタ / スレーブ送受信 • アービトレーション機能 • クロック同期化機能 • スレーブアドレス / ゼネラルコールアドレス検出機能 • 転送方向検出機能 • 再起動条件発生および検出機能 • バスエラー検出機能 • 10 ビット /7 ビット スレーブアドレス • マスタモード時スレーブアドレス受信アクノリッジ制御 • 複合スレーブアドレス対応 • 送信 , バスエラー時に割込み可能 • 標準モード ( 最大 100kbps)/ 高速モード ( 最大 400kbps) に対応 602 第 18 章 I2C インタフェース ■ I2C インタフェースのレジスタ一覧 I2C インタフェースのレジスタ一覧は , 以下のとおりです。 • バスステータスレジスタ (IBSR) 図 18.1-1 バスステータスレジスタ (IBSR) のビット構成 IBSR アドレス : 0000D1H, 0000DDH bit 7 6 5 4 3 2 1 0 BB RSC AL LRB TRX AAS GCA ADT リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 000369H • バス制御レジスタ (IBCR) 図 18.1-2 バス制御レジスタ (IBCR) のビット構成 IBCR アドレス : 0000D0H, 0000DCH bit 15 14 13 12 11 10 9 8 000368H BER BEIE SCC MSS ACK GCAA INTE INT リード / ライト (R/W) (R/W) (W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) • クロック制御レジスタ (ICCR) 図 18.1-3 クロック制御レジスタ (ICCR) のビット構成 ICCR アドレス : 0000DAH, 0000E6H bit 15 14 13 12 11 10 9 8 予約 NSF EN CS4 CS3 CS2 CS1 CS0 リード / ライト (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (0) (0) (1) (1) (1) (1) (1) 000372H • 10 ビットスレーブアドレスレジスタ (ITBA) 図 18.1-4 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成 ITBAH アドレス : 0000D2H, 0000DEH bit 15 14 13 12 11 10 9 8 予約 予約 予約 予約 予約 予約 TA9 TA8 リード / ライト (−) (−) (−) (−) (−) (−) (R/W) (R/W) 初期値 (−) (−) (−) (−) (−) (−) (0) (0) 6 5 4 3 2 1 0 TA7 TA6 TA5 TA4 TA3 TA2 TA1 TA0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 00036AH ITBAL アドレス : 0000D3H, 0000DFH bit 7 00036BH 603 第 18 章 I2C インタフェース • 10 ビットスレーブアドレスマスクレジスタ (ITMK) 図 18.1-5 10 ビットスレーブアドレスマスクレジスタ (ITMK) のビット構成 ITMKH アドレス : 0000D4H, 0000E0H bit 15 14 13 12 11 10 9 8 00036CH ENTB RAL 予約 予約 予約 予約 TM9 TM8 リード / ライト (R/W) (R) (−) (−) (−) (−) (R/W) (R/W) 初期値 (0) (0) (−) (−) (−) (−) (1) (1) 6 5 4 3 2 1 0 TM7 TM6 TM5 TM4 TM3 TM2 TM1 TM0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (1) (1) (1) (1) (1) (1) (1) (1) ITMKL アドレス : 0000D5H, 0000E1H bit 7 00036DH • 7 ビットスレーブアドレスレジスタ (ISBA) 図 18.1-6 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成 ISBA アドレス : 0000D7H, 0000E3H bit 7 6 5 4 3 2 1 0 予約 SA6 SA5 SA4 SA3 SA2 SA1 SA0 リード / ライト (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (0) (0) (0) (0) (0) (0) (0) 00036FH • 7 ビットスレーブアドレスマスクレジスタ (ISMK) 図 18.1-7 7 ビットスレーブアドレスマスクレジスタ (ISMK) のビット構成 ISMK アドレス : 0000D6H, 0000E2H bit 15 14 13 12 11 10 9 8 00036EH ENSB SM6 SM5 SM4 SM3 SM2 SM1 SM0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (1) (1) (1) (1) (1) (1) (1) • データレジスタ (IDAR) 図 18.1-8 データレジスタ (IDAR) のビット構成 IDAR アドレス : 0000D9H, 0000E5H bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 000371H 604 第 18 章 I2C インタフェース ■ I2C インタフェースのブロックダイヤグラム 図 18.1-9 に , I2C インタフェースのブロックダイヤグラムを示します。 図 18.1-9 I2C インタフェースのブロックダイヤグラム ICCR EN I2C 動作許可 ICCR CS4 CS3 CS2 CS1 CS0 IBSR BB RSC クロック分周2 2345 32 R-bus シフトクロック発生 クロック選択2(1/12) シフトクロック エッジ変化タイミング バスビジー リピート スタート ラストビット LRB TRX Sync スタート・ストップ コンディション検出 エラー 送信/受信 ファーストバイト ADT アービトレーションロスト検出 AL IBCR SCLI SCLO BER BEIE 割込み要求 IRQ INTE SDA SDAO INT IBCR SCC MSS ACK 終了 スタート マスタ ACK許可 スタート・ストップ コンディション発生 GC-ACK許可 GCAA IDAR IBSR スレーブ AAS グローバル コール GCA スレーブ アドレス 比較 ISMK ENSB ITMK ENTB RAL ITBA ITMK ISBA ISMK 605 第 18 章 I2C インタフェース 18.2 I2C インタフェースのレジスタ I2C インタフェースで使用するレジスタの構成および機能について説明します。 ■ I2C インタフェースのレジスタ概要 I2C インタフェースには , 次の 8 種類のレジスタがあります。 • バスステータスレジスタ (IBSR) • バス制御レジスタ (IBCR) • クロック制御レジスタ (ICCR) • 10 ビットスレーブアドレスレジスタ (ITBA) • 10 ビットスレーブアドレスマスクレジスタ (ITMK) • 7 ビットスレーブアドレスレジスタ (ISBA) • 7 ビットスレーブアドレスマスクレジスタ (ISMK) • データレジスタ (IDAR) 606 第 18 章 I2C インタフェース 18.2.1 バスステータスレジスタ (IBSR) バスステータスレジスタ (IBSR) には , 以下の機能があります。 • バスビジー検出 • 再起動条件検出 • アービトレーションロスト検出 • アクノリッジ検出 • データ転送方向表示 • スレーブアドレッシング検出 • ゼネラルコールアドレス検出 • アドレスデータ転送検出 ■ バスステータスレジスタ (IBSR) 図 18.2-1 に , バスステータスレジスタ (IBSR) のレジスタ構成を示します。 図 18.2-1 バスステータスレジスタ (IBSR) のレジスタ構成 IBSR アドレス : 0000D1H, 0000DDH bit 7 6 5 4 3 2 1 0 BB RSC AL LRB TRX AAS GCA ADT リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 000369H このレジスタは読出し専用です。レジスタのビットはすべてハードウェアにより自動 的に制御されます。I2C インタフェースが有効でない場合 (ICCR レジスタの EN ビット が "0") は , このレジスタのビットはすべてクリア状態となります。 [bit7] BB : バスビジービット I2C バスの状態を示すビットです。 BB 内 容 0 停止条件を検出した [ 初期値 ] 1 起動条件を検出した ( バス使用中 ) 607 第 18 章 I2C インタフェース [bit6] RSC : 再起動条件ビット 再起動条件検出ビットです。 RSC 内 容 0 再起動条件は検出されていない [ 初期値 ] 1 再起動条件を検出した このビットは , スレーブアドレス転送終了 (ADT = 0), または停止条件の検出でクリ アされます。 [bit5] AL : アービトレーションロスト検出ビット アービトレーションロスト検出ビットです。 AL 内 容 0 アービトレーションロストが検出されていない [ 初期値 ] 1 マスタ送信中にアービトレーションロストが発生した このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに "1" を書き込むことによってクリアされます。 〔アービトレーションロストが発生する例〕 • データ送信が SCL の立上りエッジで SDA ライン上のデータと一致しない • データのファーストビットで , ほかのマスタによって , 再起動条件が発生した • I2C インタフェースが , ほかのスレーブデバイスによって SCL ラインが "L" にド ライブされているために , 起動条件または停止条件を生成できない [bit4] LRB : アクノリッジ格納ビット アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。 LRB 内 容 0 スレーブアクノリッジを検出した [ 初期値 ] 1 スレーブアクノリッジを検出していない アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。 起動条件または停止条件の検出でクリアされます。 608 第 18 章 I2C インタフェース [bit3] TRX : データ送信ビット データ転送中に送信状態を示すビットです。 TRX 内 容 0 データ送信中でない [ 初期値 ] 1 データ送信中 • "1" をセット : マスタモードで起動条件が生成された - スレーブモードでリードアクセス時 ( 送信 ) , 第 1 バイトの転送終了 - マスタモードで送信中 • "0" をセット : バスがアイドル状態 (BB = 0:IBCR) - アービトレーションロスト発生 - マスタ割込み中 (MSS = 1, INT = 1) に SCC に "1" が書き込まれた - マスタ割込み中 (MSS = 1, INT = 1) に MSS ビットがクリアされた - スレーブ時 , 転送の最後にアクノリッジが発生しなかった - スレーブモードでの受信中 - マスタモードでのスレーブからデータ受信中 [bit2] AAS : スレーブアドレッシング検出ビット スレーブアドレッシング検出ビットです。 AAS 内 容 0 スレーブに指定されていない [ 初期値 ] 1 スレーブに指定された ( 再 ) 起動または停止条件の検出でクリアされます。 7/10 ビットのスレーブアドレスを検出したときに設定されます。 [bit1] GCA : ゼネラルコールアドレス検出ビット ゼネラルコールアドレス (00H) 検出ビットです。 GCA 内 容 0 ゼネラルコールアドレスを検出していない [ 初期値 ] 1 ゼネラルコールアドレスを検出した ( 再 ) 起動または停止条件の検出でクリアされます。 609 第 18 章 I2C インタフェース [bit0] ADT : アドレスデータ転送 スレーブアドレス受信検出ビットです。 ADT 内 容 0 受信データがスレーブアドレスでない ( またはバス開放中 ) [ 初期値 ] 1 受信データがスレーブアドレスである 起動の検出で "1" に設定されます。10 ビットライトアクセスでのスレーブアドレス のヘッダが検出されると , 第 2 バイトの後にクリアされ , それ以外のときは第 1 バ イトの後でクリアされます。 〔第 1 バイト / 第 2 バイトの後とは〕 • マスタ割込み (MSS = 1, INT = 1:IBCR) 中に MSS ビットに "0" が書き込まれた • マスタ割込み (MSS = 1, INT = 1:IBCR) 中に SCC ビットに "1" が書き込まれた • INT ビットがクリアされた • マスタまたはスレーブとして転送対象でなければ , すべての転送バイトの最初 610 第 18 章 I2C インタフェース 18.2.2 バス制御レジスタ (IBCR) バス制御レジスタ (IBCR) には以下の機能があります。 • 割込み許可フラグ • 割込み生成フラグ • バスエラー検出フラグ • 再起動条件生成 • マスタ / スレーブモード選択 • ゼネラルコールアクノリッジ生成許可 • データバイトアクノリッジ生成許可 ■ バス制御レジスタ (IBCR) 図 18.2-2 に , バス制御レジスタ (IBCR) のレジスタ構成を示します。 図 18.2-2 バス制御レジスタ (IBCR) のレジスタ構成 IBCR アドレス : 0000D0H, 0000DCH bit 15 14 13 12 11 10 9 8 000368H BER BEIE SCC MSS ACK GCAA INTE INT リード / ライト (R/W) (R/W) (W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) バス制御レジスタ (IBCR) への書込みアクセスは , INT ビットが "1" あるいは転送が開 始される場合に行ってください。ACK ビットもしくは GCAA ビットを変更するとバス エラーが検出される場合があるので , 転送動作中にはレジスタへの書込みアクセスを 行わないでください。I2C インタフェースが有効でない場合 (ICCR の EN ビットが "0") は , BER ビットと BEIE ビットを除き , このレジスタのビットはクリア状態となります。 611 第 18 章 I2C インタフェース [bit15] BER : バスエラーフラグ バスエラー割込み要求フラグビットです。このビットは , リードモディファイライ ト (RMW) 系命令では , 常に "1" が読まれます。 ( 書込み時 ) BER 内 容 0 バスエラー割込み要求フラグをクリアする 1 意味を持ちません ( 読出し時 ) BER 内 容 0 バスエラーは検出されていない [ 初期値 ] 1 エラーコンディションを検出した このビットが設定された場合 , CCR レジスタの EN ビットはクリアされ , I2C インタ フェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を除き IBSR と IBCR レジスタのすべてのビットはクリアされます。このビットは , I2C イ ンタフェースを再度許可 (EN = 1) にする前にクリアしてください。 〔"1" が設定される場合〕 1) 起動条件または停止条件が不正な場所で検出された ( スレーブアドレス転送中 , データ転送中 ) 。 2) 10 ビットリードアクセス時に , 第 1 バイトにて 10 ビットライトアクセスする前 に , リードアクセスのスレーブアドレスヘッダが受信された。 3) マスタモードで転送中に起動条件が検出された。 1), 2) の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正 バスエラーレポートを抑止するために , 最初の停止条件の受信後にフラグセッ トされます。 [bit14] BEIE : バスエラー割込み許可ビット バスエラー割込み許可ビットです。 BEIE 内 容 0 バスエラー割込み禁止 [ 初期値 ] 1 バスエラー割込み許可 このビットが "1" のとき , BER ビットが "1" が設定されると割込みを発生します。 612 第 18 章 I2C インタフェース [bit13] SCC : 起動条件継続ビット 再起動条件継続ビットです。 ( 書込み時 ) SCC 内 容 0 意味を持ちません 1 マスタ転送時に再起動条件を発生させる このビットの読出し値は常に "0" です。 マスタモード (MSS = 1, INT = 1) 中にこのビットに "1" を書き込むと , 再起動条件 が発生し , 自動的に INT ビットをクリアします。 [bit12] MSS : マスタ / スレーブ選択ビット マスタ / スレーブの選択ビットです。 MSS 内 容 0 スレーブモードとなります [ 初期値 ] 1 マスタモードとなり起動条件を発生し , IDAR レジスタの値をスレー ブアドレスとして送信します • このビットは, マスタ送信中にアービトレーションロストが発生した場合クリア されてスレーブモードになります。 • マスタ割込みフラグセット中 (MSS = 1, INT = 1) に "0" を書き込むと INT ビッ トは自動的にクリアされ , 停止条件が発生して転送が終了します。 ( 注意事項 ) MSS ビットは直接的なリセットとして機能します。停止条件の発生 は , IBSR レジスタの BB ビットを読み出すことによって確認できま す。 • バスがアイドル中 (MSS = 0, BB = 0) に "1" を書き込むと起動条件が発生して IDAR の値が送信されます。 • バス使用中 (BB = 1, TRX = 0, MSS = 0) に "1" を書き込むと I2C インタフェー スはバスが開放されるまで待ち , 送信を開始します。その間に I2C インタフェー スはライトアクセスを伴うスレーブとしてアドレス指定されると, 転送終了後に バスは開放されます。その間 , スレーブとして送信中の場合 (IBCR:AAS = 1, TRX = 1), バスが開放されてもデータ送信しません。I2C インタフェースがスレー ブ (IBSR: AAS = 1) として指定されたか , 次の割込み時にデータを送信が正常終 了にした (IBCR:MSS = 1) か , 不正終了した (IBSR:AL = 1) かどうかを確認する ことが重要となります。 613 第 18 章 I2C インタフェース <注意事項> 下記条件で使用する場合 , スレーブとして受信できませんのでゼネラルコールアドレスの 送信は禁止です。 MB91461/F467R のほかにマスタモードとなるほかの LSI がバスに存在し , MB91461/ F467R がマスタとしてゼネラルコールアドレスを送信し , 第 2 バイト目以降でアービト レーションロストが発生する場合 [bit11] ACK : アクノリッジビット データを受信許可ビットに従ってアクノリッジを発生するビットです。 ACK 内 容 0 データ受信に対してアクノリッジを発生しない [ 初期値 ] 1 データ受信に対してアクノリッジを発生する • このビットは , スレーブ時のスレーブアドレス受信時には無効となります。I2C インタフェースが 7 ビット , または 10 ビットのスレーブアドレス指定を検出し たとき , 対応するイネーブルビット (ITMK:ENTB, ISMK:ENSB) が設定されてい ると , アクノリッジを返します。 • このビットへの書込みは , 割込みフラグセット中 (INT = 1), バスが開放中 (IBSR: BB = 0) または I2C インタフェースが停止中 (ICCR:EN = 0) に行ってください。 [bit10] GCAA : ゼネラルコールアドレスアクノリッジビット ゼネラルコールアドレスを検出した場合のアクノリッジ発生許可ビットです。 GCAA 内 容 0 ゼネラルコールアドレスを検出時にアクノリッジを発生しない [ 初期値 ] 1 ゼネラルコールアドレスを検出時にアクノリッジを発生する このビットへの書込みは , 割込みフラグセット中 (INT = 1), バスが開放中 (IBSR: BB = 0) または I2C インタフェースが停止中 (ICCR:EN = 0) に行ってください。 • ゼネラルコールアドレス受信時には , このビットと ACK ビットをともに "1" に することにより , アクノリッジ応答の発生が許可されます。 • ゼネラルコールアドレス送信時には , このビットを "1" にすることにより , アク ノリッジ応答の発生が許可されます。 • スレーブ受信 ( マスタでゼネラルコールアドレスを送信した後に , アービトレー ションロストが発生した場合を含む ) でデータ受信時のアクノリッジビット出 力は , ACK ビットとこのビットがともに "1" のときに出力許可となります。 • バスステータスレジスタ (IBSR) の GCA ビットが "1" のときには , このビットの 設定値を変更しないでください。 614 第 18 章 I2C インタフェース [bit9] INTE : 割込み許可ビット 割込み許可ビットです。 INTE 内 容 0 割込み禁止 [ 初期値 ] 1 割込み許可 このビットが "1" のときに , INT ビットが "1" になると割込みを発生します。 [bit8] INT : 割込み要求フラグ 転送終了割込み要求フラグビットです。このビットは , リードモディファイライト (RMW) 系命令では常に "1" が読み出されます。 ( 書込み時 ) INT 内 容 0 転送終了割込み要求フラグをクリアする [ 初期値 ] 1 動作に影響を与えません ( 読出し時 ) INT 内 容 0 転送が終了していない , 転送対象でないまたはバスが開放状態である [ 初期値 ] 1 アクノリッジビットを含めた 1 バイト転送が終了したときに次の条 件に該当する場合設定されます。 ・バスマスタである ・スレーブアドレスに指定された ・ゼネラルコールアドレスを受信した ・アービトレーションロストが起こった スレーブアドレスに指定されているとき , アクノリッジを含むスレー ブアドレス受信の最後に設定されます。 このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへ "0" を書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行って 再起動 条件または停止条件を生成します。 このビットは , SCC ビットまたは MSS ビットに "1" が書き込まれるとクリアされま す。 615 第 18 章 I2C インタフェース <注意事項> SCC, MSS, INT ビットの競合について SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 再起動条件 , または停止条件 発生の競合が起こります。このときの優先度は次のようになります。 • 次のバイト転送と停止条件発生 INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先されて 停止条件が発生します。 • 次のバイト転送と起動条件発生 INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先されて 再起動条件が発生し , IDAR の値が送信されます。 • 再起動条件発生と停止条件発生 SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先されま す。停止条件が発生して I2C インタフェースはスレーブモードになります。 図 18.2-3 と図 18.2-4 に示したタイミングで , 起動条件を発生させる命令を実行 (IBCR の MSS = 1) すると , アービトレーションロスト検出 (IBSR の AL = 1) による割込み (IBCR の INT = 1) は発生しません。 • アービトレーションロスト検出による割込みが発生しない条件 (1) 起動条件未検出状態 (IBSR の BB = 0) で , SDA 端子または SCL 端子レベルが "L" のと きに , 起動条件を発生させる命令を実行 (IBCR の MSS = 1) した場合。 図 18.2-3 アービトレーションロスト検出による割込みが発生しないタイミング図 SCL端子またはSDA端子が"L"レベル SCL端子 "L" SDA端子 I2C動作許可状態(ENビット=1) "L" 1 マスタモード設定(MSSビット=1) アービトレーションロスト検出(ALビット=1) バスビジー(BBビット) 0 割込み(INTビット) 0 616 第 18 章 I2C インタフェース • アービトレーションロスト検出による割込みが発生しない条件 (2) ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (ICCR の EN = 1) し て起動条件を発生させる命令を実行 (IBCR の MSS = 1) した場合。 図 18.2-4 に示したとおり , I2C が動作禁止 (ICCR の EN = 0) の状態で , I2C バスのほ かのマスタが通信を開始すると , 起動条件未検出 (IBSR の BB = 0) で I2C バスが占有 されている状態になるためです。 図 18.2-4 アービトレーションロスト検出による割込みが発生しないタイミング図 スタートコンディション 9クロック目でINTビット 割込みが発生しない ストップコンディション SCL端子 SDA端子 スレーブアドレス ACK データ ACK ENビット MSSビット ALビット BBビット 0 INTビット 0 これらのような現象が発生する可能性がある場合には , 以下の手順でソフト処理を 行ってください。 1) 起動条件を発生させる命令を実行 (IBCR の MSS = 1) 2) タイマ機能などを用いて , ICCR に設定されている I2C 転送周波数での 3 ビットデー タ送信時間待機 * 例: I2C 転送周波数が 100kHz の場合 3 ビットデータ送信時間= {1/(100 × 103)} × 3 = 30 µs * : アービトレーションロストが検出された場合 , MSS ビット設定後 , I2C 転送周波 数での 3 ビットデータ送信時間後には確実に AL = 1 となります。 3) BSR の AL ビットと BB ビットを確認し , AL = 1 かつ BB = 0 の場合には , ICCR の EN ビットを "0" にして I2C を初期化 AL ビットと BB ビットがその他の値である場合は , 通常処理 617 第 18 章 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 となり割込みが発生します。 図 18.2-5 アービトレーションロスト検出による割込みが発生するタイミング例 9クロック目で割込み スタートコンディション SCL端子 SDA端子 スレーブアドレス ACK データ ENビット MSSビット ALビット ソフトでのALビットクリア BBビット ソフトでのINTビット クリアでSCL開放 INTビット 618 第 18 章 I2C インタフェース クロック制御レジスタ (ICCR) 18.2.3 クロック制御レジスタ (ICCR) には , 以下の機能があります。 • ノイズフィルタ有効 • I2C インタフェース動作許可 • シリアルクロック周波数設定 ■ クロック制御レジスタ (ICCR) 図 18.2-6 に , クロック制御レジスタ (ICCR) のレジスタ構成を示します。 図 18.2-6 クロック制御レジスタ (ICCR) のレジスタ構成 ICCR アドレス : 0000DAH, 0000E6H bit 15 14 13 12 11 10 9 8 予約 NSF EN CS4 CS3 CS2 CS1 CS0 リード / ライト (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (0) (0) (1) (1) (1) (1) (1) 000372H [bit15] 予約 : 予約ビット 読出し値は常に "0" です。 [bit14] NSF : ノイズフィルタ有効ビット SDA および SCL 端子に配置されたノイズフィルタを有効にするビットです。この ノイズフィルタにより , これらの入力に発生するスパイク (CLKP1 ∼ CLKP1.5 サイ クル ) を抑制することができます。送信 / 受信レートが 100kbps 以上の場合には , こ のビットを "1" に設定してください。 [bit13] EN : 動作許可ビット I2C インタフェース動作許可ビットです。 値 内 容 0 動作禁止 [ 初期値 ] 1 動作許可 <注意事項> • I2C インタフェースの動作が禁止されると , 送受信は直ちに停止されます。 • MSS ビットに "0" を書き込んでストップコンディションを発生させたあとに I2C インタ フェースの動作を禁止する場合は , ストップコンディションの発生を確認 (IBSR:BB = 0) した後 , 動作を禁止 (ICCR:EN = 0) してください。 619 第 18 章 I2C インタフェース [bit12 ∼ bit8] CS4 ∼ CS0 : クロック周期選択ビット シリアルクロックの周波数を設定するビットです。 このビットは , I2C インタフェースを動作禁止 (EN = 0) にするか , EN ビットがクリ アされたときにのみ書込み可能です。 シフトクロックの周波数 (fsck) は次式のように設定されます。 《ノイズフィルタ無効の場合》 fsck = φ n × 12 + 18 N > 0, φ: 周辺クロック ( = CLKP) 《ノイズフィルタ有効の場合》 fsck = φ N > 0, φ: 周辺クロック ( = CLKP) ( + 1) はノイズフィルタによる不確定要素 n × 12 + 19 ( + 1) 表 18.2-1 レジスタ設定 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 は設定禁止です。 620 第 18 章 I2C インタフェース 18.2.4 10 ビットスレーブアドレスレジスタ (ITBA) 10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成 , および機能について説 明します。 ■ 10 ビットスレーブアドレスレジスタ (ITBA) 図 18.2-7 に , 10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成を示します。 図 18.2-7 10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成 ITBAH アドレス : 0000D2H, 0000DEH bit 15 14 13 12 11 10 9 8 予約 予約 予約 予約 予約 予約 TA9 TA8 リード / ライト (−) (−) (−) (−) (−) (−) (R/W) (R/W) 初期値 (−) (−) (−) (−) (−) (−) (0) (0) 6 5 4 3 2 1 0 TA7 TA6 TA5 TA4 TA3 TA2 TA1 TA0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 00036AH ITBAL アドレス : 0000D3H, 0000DFH bit 7 00036BH 10 ビットスレーブアドレスレジスタ (ITBA) への書込みアクセスは , I2C インタフェー スが有効でない場合 (ICCR の EN ビットが "0") に行ってください。 [bit15 ∼ bit10] 予約 : 予約ビット 読出し時は常に "0" です。 [bit9 ∼ bit0] TA9 ∼ TA0 : 10 ビットスレーブアドレスビット (A9 ∼ A0) 10 ビットアドレスが有効 (ITMK:ENTB = 1) のとき , スレーブモードでスレーブア ドレスを受信すると , 受信アドレスとを ITBA と比較します。 アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信 されます。 第 1, 第 2 バイト受信データと ITBAL レジスタを比較します。一致が検出されると , アクノリッジ信号をマスタデバイスに送信し , AAS ビットが設定されます。 I2C インタフェースは , 再起動条件の後 , 10 ビットリードアクセスのアドレスヘッ ダの受信に応答します。 スレーブアドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー ブアドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS (IBSR レジスタ ) が "1" のときのみです。 621 第 18 章 I2C インタフェース 18.2.5 10 ビットスレーブアドレスマスクレジスタ (ITMK) 10 ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成 , および機能につ いて説明します。 ■ 10 ビットスレーブアドレスマスクレジスタ (ITMK) 図 18.2-8 に , 10 ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成を示 します。 図 18.2-8 10 ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成 ITMKH アドレス : 0000D4H, 0000E0H bit 15 14 13 12 11 10 9 8 00036CH ENTB RAL 予約 予約 予約 予約 TM9 TM8 リード / ライト (R/W) (R) (−) (−) (−) (−) (R/W) (R/W) 初期値 (0) (0) (−) (−) (−) (−) (1) (1) 6 5 4 3 2 1 0 TM7 TM6 TM5 TM4 TM3 TM2 TM1 TM0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (1) (1) (1) (1) (1) (1) (1) (1) ITMKL アドレス : 0000D5H, 0000E1H bit 7 00036DH [bit15] ENTB : 10 ビットスレーブアドレス許可ビット 10 ビットスレーブアドレス動作許可ビットです。 このビットへの書込みは , I2C インタフェースが停止状態 (ICCR:EN = 0) で行って ください。 [bit14] RAL : 受信スレーブアドレス長ビット このビットは , スレーブアドレス長を示します。 このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可 (ENTB = 1 かつ ENSB = 1) になっている場合に , 10 ビット , 7 ビットスレーブアド レス動作のどちらの転送長が有効になるかの決定に使用できます。 このビットは AAS ビット (IBSR) が "1" のときに有効です。 このビットはインタフェースの動作を禁止 (ICCR:EN = 0) したときにクリアされま す。 このビットは読出しのみ可能です。 [bit13 ∼ bit10] 予約 : 予約ビット 読出し時は常に "1" が読まれます。 622 第 18 章 I2C インタフェース [bit9 ∼ bit0] TM9 ∼ TM0 : 10 ビットスレーブアドレスマスクビット このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。 このレジスタへの書込みは , I2C インタフェースが動作禁止 (ICCR:EN = 0) のとき 行ってください。 このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ リッジを送信することが可能になります。このレジスタを 10 ビットスレーブアド レス比較に使用するときに , このビットを "1" に設定してください。受信したスレー ブアドレスは , ITBA に上書きされます。ASS = 1(IBSR) のときに ITBA レジスタを 読み出すことによって実際の指定されたスレーブアドレスを特定できます。 ITMK の TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており , TM9 ∼ TM0 の値が "1" のときは ITBA のアドレスが有効になり , "0" のときは無効 になります。 例 : ITBA アドレス "0010010111B" ITMK アドレス " 1111111100B" のとき スレーブアドレスは "0010010100B" ∼ "0010010111B" の領域になります。 623 第 18 章 I2C インタフェース 18.2.6 7 ビットスレーブアドレスレジスタ (ISBA) 7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成 , および機能について説 明します。 ■ 7 ビットスレーブアドレスレジスタ (ISBA) 図 18.2-9 に , 7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成を示します。 図 18.2-9 7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成 ISBA アドレス : 0000D7H, 0000E3H bit 7 6 5 4 3 2 1 0 予約 SA6 SA5 SA4 SA3 SA2 SA1 SA0 リード / ライト (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (0) (0) (0) (0) (0) (0) (0) 00036FH 7 ビットスレーブアドレスレジスタ (ISBA) への書込みアクセスは , I2C インタフェース が有効でない場合 (ICCR の EN ビットが "0") に行ってください。 [bit7] 予約 : 予約ビット 読出し値は "0" です。 [bit6 ∼ bit0] SA6 ∼ SA0 : スレーブアドレスビット スレーブモードでスレーブアドレスを受信したとき , 7 ビットスレーブアドレスが 許可 (ENSB = 1:ISMK) されていると , 受信スレーブアドレスと ISBA の比較を行い ます。スレーブアドレス一致が検出されると , マスタに対してアクノリッジを送信 して AAS ビットを設定します。 I2C インタフェースは , 再起動条件の後に 7 ビットリードアクセスのアドレスヘッ ダの受信にアクノリッジを返します。 スレーブアドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー ブアドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS (IBSR レジスタ ) が "1" のときのみです。 I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはゼネラルコールが 受信されたとき , ISBA と受信スレーブアドレスとの比較を行いません。 624 第 18 章 I2C インタフェース 18.2.7 7 ビットスレーブアドレスマスクレジスタ (ISMK) 7 ビットスレーブアドレスマスクレジスタ (ISMK) には , 7 ビットスレーブアドレス マスクと 7 ビットスレーブアドレス許可ビットがあります。 ■ 7 ビットスレーブアドレスマスクレジスタ (ISMK) 図 18.2-10 に , 7 ビットスレーブアドレスマスクレジスタ (ISMK) のレジスタ構成を示し ます。 図 18.2-10 7 ビットスレーブアドレスマスクレジスタ (ISMK) のレジスタ構成 ISMK アドレス : 0000D6H, 0000E2H bit 15 14 13 12 11 10 9 8 00036EH ENSB SM6 SM5 SM4 SM3 SM2 SM1 SM0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (1) (1) (1) (1) (1) (1) (1) 7 ビットスレーブアドレスマスクレジスタ (ISMK) への書込みアクセスは , I2C インタ フェースが有効でない場合 (ICCR の EN ビットが "0") に行ってください。 [bit15] ENSB : 7 ビットスレーブアドレス許可ビット 7 ビットスレーブアドレス動作許可ビットです。 [bit14 ∼ bit8] SM6 ∼ SM0 : 7 ビットスレーブアドレスマスクビット このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。 このビットを設定することにより , 複合 7 ビットスレーブアドレスに対してアクノ リッジを送信することが可能になります。ISMK レジスタを 7 ビットスレーブアド レス比較に使用するときに , このビットを "1" に設定してください。受信したスレー ブアドレスは , ISBA に上書きされます。ASS = 1(IBSR) のときに ISBA レジスタを 読み出すことによって実際の指定されたスレーブアドレスを特定できます。 I2C インタフェースが許可になった後にスレーブアドレス (ISBA) は受信動作によっ て書き換えられるため , ISMK を書き換えたときは , ISMK を再設定しないと期待ど おりの動作をしないことがあります。 ISMK の SM6 ∼ SM0 の各ビットが ISBA のアドレスの各ビットに対応しており , SM6 ∼ SM0 の値が "1" のときは ISBA のアドレスが有効になり , "0" のときは無効 になります。 例 : ISBA アドレス "0010111B" ISMK アドレス " 1111100B" のとき スレーブアドレスは "0010100B" ∼ "0010111B" の領域になります。 625 第 18 章 I2C インタフェース 18.2.8 データレジスタ (IDAR) データレジスタ (IDAR) について説明します。 ■ データレジスタ (IDAR) 図 18.2-11 に , データレジスタ (IDAR) のレジスタ構成を示します。 図 18.2-11 データレジスタ (IDAR) のレジスタ構成 IDAR アドレス : 0000D9H, 0000E5H bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 000371H [bit7 ∼ bit0] D7 ∼ D0 : データビット シリアル転送に使用されるデータレジスタであり , MSB から転送されます。 このレジスタの書込み側はダブルバッファになっており , バスが使用中 (BB = 1) で ある場合 , 書込みデータはシリアル転送用のレジスタにロードされます。INT ビッ ト (IBCR) がクリアされるか , バスがアイドル状態 (BSR:IBB = 0) のときに転送デー タは内部転送レジスタにロードされます。 読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー タは INT ビット (IBCR) が設定されている場合のみ有効です。 626 第 18 章 I2C インタフェース 18.3 I2C インタフェースの動作説明 I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL) の 2 本の双方向バスラインにより転送が行われます。 I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) を有し , ワイヤード論理を可能にします。 ■ 起動条件 バスが開放されている状態 (BB = 0, MSS = 0) で MSS ビットに "1" を書き込むと , I2C インタフェースはマスタモードとなり , 起動条件を発生します。そのとき , スレーブア ドレスとして IDAR レジスタの値を送信します。 バスマスタモードで割込みフラグが設定されているとき(IBCR:MSS=1, INT=1), SCC ビットに "1" を書き込むことで , 再起動条件が生成されます。 バス使用時 (BB = 1, IBSR:TRX = 0, MSS = 0 または IBCR:INT = 0) に , MSS ビット に "1" を書き込むとバスが開放され , 送信が開始されます。 スレーブモード時にライト ( 受信 ) アクセスされると , 転送が終了してバスが開放され た後 , 送信を開始します。そのとき , インタフェースがデータ送信中であれば , バスが 開放されても送信しません。 インタフェースは , 次のことをチェックする必要があります。 • スレーブとして指定された (IBCR:MSS = 0, IBSR:AAS = 1) かどうか • 次の割込みで , データバイトを正常に送れた (IBSR:AL = 1) かどうか ■ 停止条件 マスタモード (MSS = 1, IBCR:INT = 1) 時に , MSS ビットに "0" を書き込むと , 停止条 件を発生してスレーブモードになります。ほかの条件での , MSS への "0" 書込みは無 視されます。 MSS ビットがクリアされた後 , 停止条件を生成しようとします。停止条件を生成する 前に , SCL ラインが "L" にドライブされているときは生成されません。次のバイトが転 送された後に割込みが生成されます。 <注意事項> MSS ビットに "0" を書き込んでから停止条件を発生するまでに時間を要します。起動条件 を発生前に I2C インタフェースを動作禁止 (ICCR:EN = 0) にすると , 直ちに動作が停止し て SCL ラインに不正クロックが発生します。I2C インタフェースを動作禁止する際には , 起動条件の発生を確認 (IBSR:BB = 0) した後 , 動作を禁止 (ICCR:EN = 0) してください。 627 第 18 章 I2C インタフェース ■ スレーブアドレス検出 スレーブモードでは , 起動条件発生後 , BB = 1 に設定されてマスタからの送信データ を IDAR レジスタへ受信します。 〔7 ビットスレーブアドレス動作許可の場合〕(ISMK レジスタの ENSB = 1) 8 ビットデータ受信後に IDAR レジスタと ISBA レジスタとの比較が行われます。こ のとき , ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合 , AAS = 1 に設定し , マスタに対してアクノリッジを送信します。 その後 , 受信データの bit0 ( 受信後の IDAR レジスタの bit0) を反転して TRX ビット へ格納します。 〔10 ビットスレーブアドレス動作許可の場合〕(ITMK レジスタの ENTB = 1) 10 ビットアドレスのヘッダ部 (11110B, TA1, TA0, ライト ) を検出すると , マスタに 対してアクノリッジを送信し , 受信データの bit0 を反転して TRX ビットへ格納しま す。このとき割込みは発生しません。 続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。こ のとき , ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合 , AAS に "1" を設定し , マスタに対してアクノリッジを送信しま す。このときに割込みが発生します。 スレーブとしてアドレス指定され , 再起動条件を検出した場合 , 10 ビットアドレス のヘッダ部 (11110B, TA1, TA0, リード ) を受信後に AAS に "1" を設定し , 割込みを 発生します。 10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ (ISBA) を搭載しているので , 両方の動作許可 (ISMK レジスタの ENSB = 1, ITMK レ ジスタの ENTB = 1) をすることにより , 10 ビットアドレス /7 ビットアドレスに対 してアクノリッジを送信することができます。 スレーブモード時 (AAS = 1) の受信スレーブアドレス長は , ITMK レジスタの RAL ビットによって決定します。マスタモード時は , 両方の動作を禁止 (ISMK:ENSB = 0, ITMK:ENTB = 0) することにより , I2C インタフェースにスレーブアドレスを生 成しないことが可能です。 全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできま す。 628 第 18 章 I2C インタフェース ■ スレーブアドレスマスク スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各 ビットに対してマスクすることができます。マスクレジスタに "1" を設定したビット はアドレス比較を行いますが , "0" に設定されているビットは無視されます。スレーブ モード (IBSR:AAS = 1) 時 , 受信スレーブアドレスは , ITBA (10 ビットアドレス時 ) , ISBA (7 ビットアドレス時 ) レジスタから読み出せます。 ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの モニタとして使用できます。 <注意事項> ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを 返すので , この機能はリアルバスモニタとはなりません。 ■ スレーブアドレッシング マスタモードでは , 起動条件発生後 , BB = 1, TRX = 1 を設定して IDAR レジスタの内 容を MSB ファーストから出力します。アドレスデータ送信後 , スレーブからアクノ リッジを受信すると , 送信データの bit0 ( 送信後の IDAR レジスタの bit0) を反転して TRX ビットへ格納します。この動作は , 再起動条件でも実行されます。 10 ビットスレーブアドレス書込みのために , 2 バイト送信します。第 1 バイトは , 10 ビットシーケンスを示すヘッダ "11110A9A80" であり , 続いて , 第 2 バイトでスレー ブアドレスの下位 8 ビット (A7 ∼ A0) を送信します。 10ビットスレーブアドレス読出しは上記のバイトを送信し, 再起動条件とともに, リー ドアクセスを示すヘッダ "11110A9A81" を生成します。 ■ アービトレーション マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ ンが起こります。自身の送信データが "1", SDA ライン上のデータが "L" レベルの場合 , 自身はアービトレーションを失ったと見なして AL = 1 に設定します。 インタフェースがデータの最初のビットで不要な起動条件を検出されるか , 起動条件 または停止条件の生成が失敗した場合に AL = 1 が設定されます。 アービトレーションロストが発生すると MSS = 0, TRX = 0 となり , スレーブ受信モー ドとなり , 自身のスレーブアドレスを受信するとアクノリッジを返します。 629 第 18 章 I2C インタフェース ■ アクノリッジ アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット (IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択することができま す。 スレーブモード時のデータ送信 ( ほかのマスタからのリードアクセス ) に , マスタから アクノリッジがなくても , TRX ビットを "0" に設定して受信モードになります。これ により , マスタはスレーブが SCL ラインを開放したときに , 停止条件を発生すること ができます。 マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか どうかをチェックできます。 ゼネラルコールアドレスを送信した後に , アービトレーションロストが発生した場合 , データ ( 発生したデータを含む ) 受信時にアクノリッジ応答する場合は , ACK ビット と GCAA ビットをともに "1" に設定してください。それ以外の設定では , アクノリッ ジ応答しません。 ■ バスエラー 以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に なります。 • データ転送中 (ACK ビットを含む ) の I2C バスプロトコル違反の検出 • マスタ一時の停止条件検出 • バスアイドル時の I2C バスプロトコル違反の検出 ■ エラーを発生しない通信エラー マスタモード送信時 , SCL ラインにノイズなどで不正クロックが発生すると , I2C イン タフェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ライン に "L" を出したまま , ハングアップすることがあります。このようなクロックの不正に 対してエラー (AL = 1, BER = 1) は発生しません。 この場合次の方法でエラー処理をしてください。 • MSS = 1, TRX = 1, INT = 1 のときに LRB = 1 であれば , 通信エラーと判断します。 • ここで , EN = 0 とし , その後 EN = 1 とすることにより , 擬似的に SCL が 1 クロッ ク発生します。 これにより , スレーブにバスを開放させます。 EN = 0 から EN = 1 の期間は , スレーブ側がクロックと認識できる期間 ( 送信ク ロックの "H" 期間と同じ程度 ) としてください。 • EN = 0 の時点で , IBSR, IBCR はクリアされますので , 起動条件から再送信処理をし てください。このとき , BSS = 0 による停止条件は生成されません。 このとき , EN = 1 から MSS = 1 ( 起動条件 ) までに , "n × 7 × tCPP" 以上の時間を 空けてください。 例 : 高速モードの場合 : 6 × 7 × 40 ≒ 2.333µs 標準モードの場合 : 27 × 7 × 40 ≒ 10.50µs (CLKP = 18MHz 時 ) 630 第 18 章 I2C インタフェース <注意事項> BER が設定されている場合は , EN = 0 ではクリアされません。クリア後 , 再送信してく ださい。 ■ その他 • アービトレーションロストした後 , 自分がアドレッシングされている場合とアドレッ シングされていなかった場合をソフトで判断する必要があります。 アービトレーションロストするとハード的にスレーブになりますが , 1 バイト転送 終了後 , クロックライン , データライン双方を "L" に引っ張ります。このため , アドレッシングされていなければ , 直ちにクロックライン , データラインを開放し , アドレッシングされていた場合には , スレーブ送信またはスレーブ受信の準備をし てからクロックライン , データラインを開放する必要があります ( すべてソフト ウェアにて処理する必要があります ) 。 • I2C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点で , あるいは割込み 条件に該当していた場合 , 割込み要因が発生する仕様になっています。 1 つの割込みで , 複数の割込み条件を判断しなければならないため , 割込みルーチン 内で , 各フラグをチェックする必要があります。1 バイト転送終了時点での割込み 条件を下記に示します。 - バスマスタであった場合 - アドレスされたスレーブであった場合 - ゼネラルコールアドレスを受信した場合 - アービトレーションロストが生じた場合 • アービトレーションロストを検出した場合 , 直ちに割込み要因が発生するのではな く , 1 バイト転送終了した時点で要因が発生します。 アービトレーションロストを検出するとハード的にスレーブになりますが , スレー ブになっても , 割込み要因を発生させるために , トータル 9 クロック出力をします。 そのため , 直ちに割込み要因が発生しないので , アービトレーションロスト後に処 理を行うことはできません。 631 第 18 章 I2C インタフェース 18.4 動作フローチャート スレーブアドレスとデータ転送および受信データを例に , 動作フローチャートを示 します。 ■ スレーブアドレスとデータ転送の例 図 18.4-1 に , スレーブアドレスとデータ転送例を示します。 図 18.4-1 スレーブアドレスとデータ転送例 7ビットスレーブアドレッシング 転送データ スタート スタート ライトアクセスの BERビットクリア(セット) スレーブアドレス インタフェース動作許可EN=1 IDAR =S.アドレス ≪1+RW MSS=1 IDAR = バイトデータ INT=0 INT=0 NO NO INT=1? INT=1? YES YES YES YES BER=1? バスエラー BER=1? NO NO YES AL=1? YES AASの検査 により再起動 転送 AL=1? NO AASの検査 により再起動 転送 NO NO ACK? (LRB=0?) NO ACK? (LRB=0?) YES YES データ転送の準備 最終バイト の転送 YES NO 転送終了 転送終 ・スレーブがACKを発生しない, もしくはマスタがACKを受信 できない ・いったんEN=0にして再送信 転送終了 転送終 ・反復「START」条件,「STOP」 条件を発生する ・「STOP」条件発生(BB=0) を確認してEN=0 転送 終了 送信時: ・スレーブがACKを発生 しない,もしくはマスタが ACKを受信できない ・いったんEN=0にして再送信 受信時: ACKなし,反復 「START」条件,「STOP」 条件を発生する 632 第 18 章 I2C インタフェース ■ 受信データの例 図 18.4-2 に , 受信データ例を示します。 図 18.4-2 受信データ例 スタート リードアクセスの スレーブアドレス スレーブからの最終リード データならACKビットを クリアする。 INT=0 NO INT=1? YES YES BER=1? バスエラー 再起動 NO NO 最終バイト の転送 YES 転送終了 反復「START」条件,「STOP」条件 を発生する 633 第 18 章 I2C インタフェース ■ 割込み処理 図 18.4-3 に , 割込み処理を示します。 図 18.4-3 割込み処理 スタート NO INT=1? ほかのモジュール からの受信割込み YES YES バスエラー BER=1? 再起動 NO YES GCA=1? スレーブ時にゼネラル コール検出 NO NO 転送の失敗 AAS=1? YES 再トライを行う YES AL=1? AL=1? YES アービトレーション ロスト再転送 NO NO YES LRB=1? YES スレーブのACKなし 「STOP」条件,反復 「START」条件の生成 ADT=1 NO 次の割込みで 新データ転送開始。 必要であれば ACKビットを変更 NO TRX=1? TRX=1? YES YES NO NO IDARから受信データ を読む。必要であれば ACKビットを変更する IDARに 次の送信 データを 書込む IDARから受信データ を読む。必要であ ればACKビットを 変更する クリア INT ビット ISR終了 634 IDARに次の送信 データを書込む またはMSSビット のクリア 第 19 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタの構成と機能 およびタイマの動作について説明します。 19.1 16 ビットリロードタイマの概要 19.2 16 ビットリロードタイマのレジスタ 19.3 16 ビットリロードタイマの動作 635 第 19 章 16 ビットリロードタイマ 16 ビットリロードタイマの概要 19.1 16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジス タ , 内部カウント , クロック生成用プリスケーラ , 制御レジスタで構成されています。 ■ 16 ビットリロードタイマ ( 以下 RLT) の概要 16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジス タ , 内部カウント , クロック作成用プリスケーラ , 制御レジスタで構成されています。 本製品では 16 ビットリロードタイマを 5 チャネル (RLT0 ∼ RLT3, RLT7) 内蔵し , その うち 1 チャネル (RLT7) は A/D 変換トリガ用として使用可能です。 クロックソースとして内部クロック 3 種類 ( リソースクロックの 2/8/32 分周 ), 外部イ ベントから選択できます (RLT7 のみ外部イベントは選択できません ) 。 ■ 16 ビットリロードタイマのブロックダイヤグラム 図 19.1-1 に 16 ビットリロードタイマのブロックダイヤグラムを示します。 図 19.1-1 16 ビットリロードタイマのブロックダイヤグラム 16ビットリロードレジスタ (TMRLR) リロード R-bus 16ビットダウンカウンタ UF (TMR) RELD OUTL OUT CTL カウント 許可 INTE IRQ UF CNTE TRG クロック セレクタ EXCK プリスケーラ φ 636 外部タイマ 出力 CSL1 CSL0 プリスケーラ クリア IN CTL CSL1 CSL0 TOE0~TOE3 外部トリガ 選択 PFRK内ビット 外部トリガ入力 第 19 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタ 19.2 16 ビットリロードタイマで使用されるレジスタの構成と機能について説明します。 ■ 16 ビットリロードタイマのレジスタ一覧 TMCSR ( 上位 ) アドレス : 0001B6H , 0001BEH bit 15 0001C6H , 0001CEH 予約 14 13 12 11 10 9 8 予約 予約 予約 CSL1 CSL0 MOD2 MOD1 0001EEH リード / ライト (−) (−) (−) (−) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) 6 5 4 3 2 1 0 予約 OUTL RELD INTE UF CNTE TRG TMCSR ( 下位 ) アドレス : 0001B7H , 0001BFH bit 7 0001C7H , 0001CFH MOD0 0001EFH リード / ライト (R/W) (R) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) TMR アドレス : 0001B2H , 0001BAH bit 15 0001C2H , 0001CAH 0 0001EAH リード / ライト (R) 初期値 (xxxxH) TMRLR アドレス : 0001B0H , 0001B8H bit 15 0001C0H , 0001C8H 0 0001E8H リード / ライト (W) 初期値 (xxxxH) 637 第 19 章 16 ビットリロードタイマ 19.2.1 制御ステータスレジスタ (TMCSR) 制御ステータスレジスタ (TMCSR) は 16 ビットリロードタイマの動作モードと割込 みを制御します。 ■ 制御ステータスレジスタ (TMCSR) のビット構成 TMCSR ( 上位 ) アドレス : 0001B6H , 0001BEH bit 15 0001C6H , 0001CEH 予約 14 13 12 11 10 9 8 予約 予約 予約 CSL1 CSL0 MOD2 MOD1 0001EEH リード / ライト (−) (−) (−) (−) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) 6 5 4 3 2 1 0 予約 OUTL RELD INTE UF CNTE TRG TMCSR ( 下位 ) アドレス : 0001B7H , 0001BFH bit 7 0001C7H , 0001CFH MOD0 0001EFH リード / ライト (R/W) (R) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) [bit15 ∼ bit12] 予約 : 予約ビット 予約ビットです。 読出し値は常に "0000B" となります。 [bit11, bit10] CSL1, CSL0 : カウントソース選択ビット カウントソースセレクトビットです。カウントソースは内部クロックと外部イベン トを選択できます。選択可能なカウントソースは以下のとおりです。 なお , RLT7 のみ外部イベントは選択できませんので , CSL1 = CSL0 = 1 以外の値 を設定してください。 638 カウントソース (φ: リソースクロック ) φ = 18MHz φ = 9MHz φ/21[ 初期値 ] 0.11µs 0.22µs 内部クロック φ/23 0.44µs 0.89µs 0 内部クロック φ/25 1.78µs 3.56µs 1 外部イベント − − CSL1 CSL0 0 0 内部クロック 0 1 1 1 第 19 章 16 ビットリロードタイマ 外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1, MOD0 ビットにより設定されます。 外部クロックに必要な最小パルス幅は 2 × T (T : リソースクロックサイクル ) です。 [bit9 ∼ bit7] MOD2, MOD1, MOD0 : モードビット 動作モードを選択するビットです。カウントソースが「内部クロック」の場合と 「外部クロック」の場合で機能が変わります。 • 内部クロックモードのとき・・・・・リロードトリガ設定 • 外部クロックモードのとき・・・・・カウント有効エッジの設定 また , MOD2 は必ず "0" を設定してください。 【内部クロック選択時のリロードトリガ設定】 カウントソースとして , 内部クロックが選択されている場合は MOD2 ∼ MOD0 ビッ トの設定により有効エッジが入力されると , リロードレジスタの内容をロードして カウント動作を継続します。 なお , RLT7 のみ外部トリガ入力端子が存在しませんので , 常に MOD2 ∼ MOD0 = 000B ( ソフトウェアトリガ ) を設定してください。 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 外部トリガ ( 両エッジ ) 有効エッジ 外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生します。 639 第 19 章 16 ビットリロードタイマ [bit6] 予約 : 予約ビット 予約ビットです。 読出し値は常に "0" となります。 [bit5] OUTL : 出力レベル 外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと "1" のとき では出力レベルが逆になります。 なお , RLT7 には外部出力端子は存在しませんが , RLT7 のタイマ出力は A/D コン バータに接続されています。RLT7 を A/D 変換トリガとして選択した場合 , A/D コ ンバータはタイマ出力の立上りエッジをトリガとして変換を開始しますので , 後述 する注意事項を参照してください。 [bit4] RELD : リロード許可ビット リロード許可ビットです。 "1"のときにリロードモードになり, カウンタの値が"0000H" →"FFFFH"へのアンダフローと同時にリロードレジスタの内容をカウンタへロードし てカウント動作を続けます。 "0" のときにワンショットモードになり , カウンタの値が "0000H" → "FFFFH" へのア ンダフローによりカウント動作を停止します。 PFRxy OUTL RELD 0 X X 出力禁止 [ 初期状態 ] 0 カウント中 "H" の矩形波 • カウント停止時 : "L" 出力 • カウント中 : "H" 出力 • アンダフロー時 : "L" 出力 1 カウントスタート時 "L" のトグル出力 • カウント停止時 : "L" 出力 • カウント開始後 : "L" 出力 → アンダフローごとにトグル出力 0 カウント中 "L" の矩形波 • カウント停止時 : "H" 出力 • カウント中 : "L" 出力 • アンダフロー時 : "H" 出力 1 カウントスタート時 "H" のトグル出力 • カウント停止時 : "H" 出力 • カウント開始後 : "H" 出力 → アンダフローごとにトグル出力 1 1 1 1 0 0 1 1 出力波形 PFRxy は対応する端子の PFR レジスタ値を意味します。 640 第 19 章 16 ビットリロードタイマ [bit3] INTE : 割込み許可ビット 割込み要求許可ビットです。"1" のときに UF ビットが "1" になると割込み要求を発 生します。"0" のときは割込み要求を発生しません。 [bit2] UF : アンダフロー割込みフラグ タイマ割込み要求フラグです。カウンタの値が "0000H" → "FFFFH" へのアンダフ ローにより "1" に設定されます。"0" の書込みによってクリアされます。 このビットへの "1" 書込みは意味がありません。 リードモディファイライト (RMW) 系命令における読出しでは , "1" が読み出されま す。 [bit1] CNTE : カウント許可ビット タイマのカウント許可ビットです。このビットに "1" を書き込むと , 起動トリガ待 ち状態になります。"0" 書込みによりカウント動作は停止します。 [bit0] TRG : トリガビット ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。 "0" 書込みは意味がありません。読出し値は常に "0" です。 本レジスタによるトリガ入力は , CNTE = 1 のときのみ有効となります。CNTE = 0 の時には何も起こりません。 <注意事項> • UF, CNTE, TRG ビット以外の書換えは , CNTE = 0 のときに行うようにしてください。 • OUTL ビットの設定と , CNTE, TRG との設定は同時に行わないでください。 また , RLT7 を A/D 変換トリガとして選択した場合 , A/D コンバータはタイマ出力の立 上りエッジをトリガとして変換を開始しますので , OUTL ビットの設定と A/D コンバー タのレジスタ設定順序によっては , 意図しないタイミングで A/D 変換が開始する恐れ があります。 例えば , RLT7 のワンショットモードでカウンタアンダフロー時に A/D 変換起動を行う 場合は , 以下の順序にて設定を行ってください。 OUTL ビット設定 (TMCSR の OUTL 設定 ) → A/D 変換トリガ選択設定 (ADCS1 の STS1, STS0 設定 ) → RLT7 カウント開始 (TMCSR の CNTE, TRG 設定 ) 641 第 19 章 16 ビットリロードタイマ 19.2.2 16 ビットタイマレジスタ (TMR) 16 ビットタイマレジスタ (TMR) は 16 ビットタイマのカウント値を読み出すために 使用されます。 ■ 16 ビットタイマレジスタ (TMR) のビット構成 図 19.2-1 16 ビットタイマレジスタ (TMR) のビット構成 TMR アドレス : 0001B2H , 0001BAH bit 15 0001C2H , 0001CAH 0 0001EAH リード / ライト (R) 初期値 (xxxxH) 16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で す。本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。 642 第 19 章 16 ビットリロードタイマ 19.2.3 16 ビットリロードレジスタ (TMRLR) 16 ビットリロードレジスタ (TMRLR) はカウンタの初期値を保持するためのレジス タです。 ■ 16 ビットリロードレジスタ (TMRLR) のビット構成 図 19.2-2 16 ビットリロードレジスタ (TMRLR) のビット構成 TMRLR アドレス : 0001B0H , 0001B8H bit 15 0001C0H , 0001C8H 0 0001E8H リード / ライト (W) 初期値 (xxxxH) 本レジスタは , カウントの初期値を保持しておくためのレジスタです。初期値は不定で す。本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。 643 第 19 章 16 ビットリロードタイマ 19.3 16 ビットリロードタイマの動作 16 ビットリロードタイマの下記の動作について説明します。 • 内部クロック動作 • アンダフロー動作 • 出力端子機能 ■ 内部クロック動作 内部クロックの分周クロックでタイマを動作させる場合 , カウントソースとしてリ ソースクロックの 2・8・32 分周のクロックから選択することができます。 カウント許可と同時にカウント動作を開始したい場合は , 制御ステータスレジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。 TRG ビットによるトリガ入力は , タイマが起動状態 (CNTE = 1) のときは動作モード にかかわらず常に有効です。 カウンタスタートにトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに T ( リソースクロックマシンサイクル ) の時間がかかります。 図 19.3-1 カウンタの起動および動作 カウントクロック リロードデータ カウンタ データロード CNTEレジスタ TRGレジスタ T 644 -1 -1 -1 第 19 章 16 ビットリロードタイマ ■ アンダフロー動作 カウンタの値が "0000H" から "FFFFH" になるときをアンダフローとしています。した がって , 〔リロードレジスタの設定値+ 1〕カウントでアンダフローが発生します。 アンダフロー発生時 , 制御レジスタの RELD ビットが "1" のときにリロードレジスタの 内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" のときに カウンタは "FFFFH" で停止します。 図 19.3-2 アンダフロー動作 [RELD=1] カウントクロック カウンタ 0000H リロードデータ -1 -1 -1 データロード アンダフローセット [RELD=0] カウントクロック カウンタ 0000H FFFFH アンダフローセット 645 第 19 章 16 ビットリロードタイマ ■ 出力端子機能 TOT 出力端子は , リロードモード時はアンダフローにより反転するトグル出力として , ワンショットモード時はカウント中を示すパルス出力として機能します。出力極性は レジスタの OUTL ビットにより設定できます。OUTL = 0 のときにトグル出力は , 初 期値が "0" で , ワンショットパルス出力はカウント中に "1" を出力します。OUTL = 1 にすると出力波形は反転します。 図 19.3-3 出力端子機能 [RELD = 1, OUTL = 0] カウント開始 アンダフロー OUTL=1のときは反転 TOT0~TOT3 汎用ポート CNTE 起動トリガ 図 19.3-4 出力端子機能 [RELD = 0, OUTL = 0] カウント開始 アンダフロー TOT0~TOT3 CNTE OUTL=1で反転 汎用ポート 起動トリガ 起動トリガ待ち状態 646 第 19 章 16 ビットリロードタイマ ■ カウンタの動作状態 カウンタの状態は , 制御レジスタの CNTE ビットと内部信号の WAIT 信号によって決 まります。設定可能な状態として CNTE = 0, WAIT = 1 の停止状態 (STOP 状態 ) , CNTE = 1, WAIT = 1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE = 1, WAIT = 0 の動 作状態 (RUN 状態 ) があります。 図 19.3-5 カウンタ状態遷移 ハードウェアによる状態遷移 リセット リセッ レジスタアクセスによる状態遷移 STOP STO CNTE=0,WAIT=1 カウンタ: 停止時の値を保持 リセット直後は不定 CNTE=1 TRG=0 WAIT WAI CNTE=1 TRG=1 CNTE=1,WAIT=1 カウンタ: 停止時の値を保持 リセット直後リロードする までは不定 TRG=1 CNTE=1,WAIT=0 RUN RU RELD・UF カウンタ:動作 TRG=1 RELD・UF LOAD LOA CNTE=1,WAIT=0 リロードレジスタの内容を カウンタへロード ロード終了 ■ 注意事項 • 内部プリスケーラは , 制御ステータスレジスタの bit1 ( タイマ許可 : CNTE) が "1" に 設定されている状態でトリガ ( ソフトウェアトリガ , あるいは外部トリガ ) がかけら れることにより動作可能になります。 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ グセットが優先し , クリア動作は無効になります。 • 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった 場合には , 旧データがカウンタにロードされ , 新データがカウンタにロードされる のは次のリロードのタイミングとなります。 • 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には , ロード ( リロード ) 動作が優先されます。 647 第 19 章 16 ビットリロードタイマ 648 第 20 章 16 ビットフリーランタイマ 16 ビットフリーランタイマの機能と動作について 説明します。 20.1 16 ビットフリーランタイマの概要 20.2 16 ビットフリーランタイマのレジスタ 20.3 16 ビットフリーランタイマの動作 20.4 16 ビットフリーランタイマ使用上の注意 649 第 20 章 16 ビットフリーランタイマ 20.1 16 ビットフリーランタイマの概要 16 ビットフリーランタイマは , 16 ビットのタイマ ( アップカウンタ ) と制御回路で 構成されています。16 ビットフリーランタイマはインプットキャプチャ , アウト プットコンペアと組み合せて使用することができます。 ■ 16 ビットフリーランタイマの概要 16 ビットフリーランタイマは 16 ビットのアップカウンタ , 制御ステータスレジスタよ り構成されています。本タイマのカウント値はアウトプットコンペア , インプットキャ プチャの基本時間 ( ベースタイマ ) として使用されます。 • カウントクロックは 4 種類から選択可能 • カウンタオーバフローによる割込み発生 • モード設定により , アウトプットコンペアのコンペアレジスタの値との一致による カウンタの初期化が可能 • フリーランタイマとインプットキャプチャ , アウトプットコンペアユニットは以下 の組合せで協調動作を行います。 - フリーランタイマ 0 とインプットキャプチャ 0, 1 - フリーランタイマ 1 とインプットキャプチャ 2, 3 - フリーランタイマ 2 とアウトプットコンペア 0, 1 - フリーランタイマ 3 とアウトプットコンペア 2, 3 650 第 20 章 16 ビットフリーランタイマ ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 20.1-1 16 ビットフリーランタイマのブロックダイヤグラム 割込み ECLK IVF IVFE STOP MODE CLR CLK1 CLK0 分周期 φ R-bus FRCK クロック選択 16ビットフリーランタイマ (TCDT) クロック 内部回路へ(T15~T00) コンパレータ 651 第 20 章 16 ビットフリーランタイマ 20.2 16 ビットフリーランタイマのレジスタ 16 ビットフリーランタイマのレジスタについて説明します。 ■ 16 ビットフリーランタイマのレジスタ一覧 図 20.2-1 16 ビットフリーランタイマのレジスタ一覧 TCDT ( 上位 ) bit 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 T07 T06 T05 T04 T03 T02 T01 T00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 IVF IVFE STOP MODE CLR CLK1 CLK0 アドレス : 0001F0H , 0001F4H 0001F8H , 0001FCH TCDT ( 下位 ) bit 7 アドレス : 0001F1H , 0001F5H 0001F9H , 0001FDH TCCS bit 7 アドレス : 0001F3H , 0001F7H ECLK 0001FBH , 0001FFH 652 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (x) (0) (0) (0) (0) (0) (0) 第 20 章 16 ビットフリーランタイマ タイマデータレジスタ (TCDT) 20.2.1 タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すこと ができるレジスタです。 ■ タイマデータレジスタ (TCDT) 図 20.2-2 タイマデータレジスタ (TCDT) のビット構成 TCDT ( 上位 ) bit 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 00 T07 T06 T05 T04 T03 T02 T01 T00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) アドレス : 0001F0H , 0001F4H 0001F8H , 0001FCH TCDT ( 下位 ) bit 7 アドレス : 0001F1H , 0001F5H 0001F9H , 0001FDH タイマデータレジスタのカウンタ値は , リセット時に "0000H" に初期化されます。この レジスタへの書込みによりタイマ値を設定することができます。 このレジスタへの書込みは , 必ず 16 ビットフリーランタイマが停止 (TCCS レジスタの STOP = 1) 時に行ってください。 タイマの初期化は次の要因で行われます。 • リセットによる初期化 • タイマ制御ステータスレジスタの CLR ビットへの "1" 書込みによる初期化 • アウトプットコンペアのコンペアクリアレジスタ値とカウンタ値の一致による初 期化 ( モード設定が必要 ) <注意事項> このレジスタへのアクセスは , ハーフワード (16 ビット ) で行ってください。 653 第 20 章 16 ビットフリーランタイマ タイマ制御ステータスレジスタ 20.2.2 タイマ制御ステータスレジスタは , 16 ビットフリーランタイマのカウント値を制御 するために使用されます。 ■ タイマ制御ステータスレジスタ (TCCS) 図 20.2-3 タイマ制御ステータスレジスタ (TCCS) のビット構成 TCCS bit 7 アドレス : 0001F3H , 0001F7H ECLK 0001FBH , 0001FFH 6 5 4 3 IVF IVFE STOP MODE 2 1 0 CLR CLK1 CLK0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (x) (0) (0) (0) (0) (0) (0) [bit7] ECLK : クロック選択ビット 16 ビットフリーランタイマのカウントクロックソースとして , 内部クロックまたは 外部クロックを選択するビットです。クロックソースの選択は , アウトプットコン ペア , インプットキャプチャが停止状態で行ってください。 ECLK クロック選択 0 内部クロックソース (CLKP) を選択 [ 初期値 ] 1 外部端子 (FRCK) を選択 <注意事項> 内部クロックを選択した場合は , TCDT レジスタの bit1, bit0 (CLK1, CLK0) にカウントク ロックの設定を行ってください。このカウントクロックがベースクロックとなります。 外部クロックに必要な最低パルス幅は , 2 × T です (T: 周辺系クロックサイクル ) 。 外部クロックを指定してアウトプットコンペアを使用した場合 , コンペア一致および割込 みは次のクロックサイクルで発生します。そのため , コンペア一致出力 , 割込みを発生さ せるためには , コンペア一致後 , 最低 1 クロックサイクルを入力する必要があります。 654 第 20 章 16 ビットフリーランタイマ [bit6] IVF : 割込み要求フラグ 16 ビットフリーランタイマの割込み要求フラグです。 16 ビットフリーランタイマがオーバフローを起こした場合 , またはモード設定によ りコンペアレジスタとコンペア一致した場合に本ビットは "1" に設定されます。 割込み要求許可ビット (IVFE) が設定されていると割込みが発生します。 本ビットは "0" 書込みによりクリアされます。リードモディファイライト (RMW) 系命令では常に "1" が読み出されます。 IVF 割込み要求フラグ 0 割込み要求なし 1 割込み要求あり <注意事項> IVF ビットはリセット解除直後の初期値は "0" ですが , リセット解除後はタイマカウンタ が自動的にカウント動作を行うため , オーバフロー発生後であれば IVF ビットのリード初 期値は "1" になります。 [bit5] IVFE : 割込み許可ビット 16 ビットフリーランタイマの割込み許可ビットです。 本ビットが"1"のとき, 割込みフラグ(IVF)に"1"が設定されると割込みが発生します。 IVFE 割込み許可 0 割込み禁止 [ 初期値 ] 1 割込み許可 [bit4] STOP : 停止ビット 16 ビットフリーランタイマのカウントを停止するためのビットです。 STOP カウント動作 0 カウント許可 ( 動作 ) [ 初期値 ] 1 カウント禁止 ( 停止 ) <注意事項> 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 655 第 20 章 16 ビットフリーランタイマ [bit3] MODE : モード設定ビット 16 ビットフリーランタイマの初期化条件を設定します。 本ビットが "0" のときは , リセットとクリアビット (bit2 : CLR) でカウンタ値を初期 化することができます。 "1" のときは , リセットとクリアビット (bit2 : CLR) のほかにアウトプットコンペア のコンペアレジスタ値との一致によりカウンタ値を初期化することができます。 MODE タイマ初期化条件 0 リセット , クリアビット [ 初期値 ] 1 リセット , クリアビット , コンペアレジスタ [bit2] CLR : タイマクリアビット 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。 本ビットに "1" を書き込むことにより , タイマ値を "0000H" に初期化します。 本ビットの読出しは常に "0" となります。 <注意事項> カウンタ値の初期化は , カウント値の変化点で行われます。CLR ビットへ "1" 書込み後 , カウンタがクリアされる前に "0" を書き込むとカウンタクリア要求は取り下げられます。 タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。 [bit1, bit0] CLK1, CLK0 : カウントクロック選択ビット 16 ビットフリーランタイマのカウントクロックを選択するビットです。 本ビットに書き込んだ後 , 直ちにカウントクロックは変更されます。本ビットの変更 は , アウトプットコンペア , インプットキャプチャが停止状態にて行ってください。 CLK1 CLK0 カウントクロック (φ) φ = 18MHz φ = 9MHz 0 0 φ/22 0.22µs 0.44µs 0 1 φ/24 0.89µs 1.78µs 1 0 φ/25 1.78µs 3.56µs 1 1 φ/26 3.56µs 7.11µs φ: リソースクロック (CLKP) 656 第 20 章 16 ビットフリーランタイマ 20.3 16 ビットフリーランタイマの動作 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作説明 カウンタ値は次の条件でクリアされます。 • オーバフローの発生 • コンペアクリアレジスタ ( アウトプットコンペアのコンペアレジスタ ) 値とのコン ペア一致 ( モード設定が必要 ) • 動作中での TCCS レジスタの CLR ビットに "1" 書込み • タイマ停止中での TCDT への "0000H" 書込み • リセットの発生 割込みはオーバフローが発生したときにコンペアクリアレジスタの値とコンペア一致し てカウンタがクリアされたときに発生します ( コンペア一致割込みは , モード設定が必 要です )。 図 20.3-1 オーバフローによるカウンタクリア カウンタ 値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み 657 第 20 章 16 ビットフリーランタイマ 図 20.3-2 コンペアクリアレジスタ値とコンペア一致したときのカウンタクリア カウンタ値 FFFFH 一致 BFFFH 一致 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ BFFFH 割込み ■ 16 ビットフリーランタイマのクリアタイミング カウンタクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行わ れます。 リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われますが , コ ンペアクリアレジスタとの一致によるカウンタクリアはカウントタイミングに同期し て行われます。 図 20.3-3 16 ビットフリーランタイマのクリアタイミング コンペアクリア レジスタ値 N カウンタクリア カウンタ値 N 0000H ■ 16 ビットフリーランタイマのカウントタイミング 16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ ステムクロックで同期化した後 , 内部カウントクロックの立下りでカウントされます。 図 20.3-4 16 ビットフリーランタイマのカウントタイミング 外部クロック入力 内部クロック カウンタ値 658 N N+1 第 20 章 16 ビットフリーランタイマ 20.4 16 ビットフリーランタイマ使用上の注意 16 ビットフリーランタイマ使用上の注意を説明します。 ■ 16 ビットフリーランタイマ使用上の注意 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ グセットが優先するためクリア動作は無効となります。 • 制御ステータスレジスタの bit2 ( カウンタ初期化ビット : CLR) は "1" が書き込まれ ると , 内部カウンタをクリアするタイミングまで値を保持し , そのタイミングで自 身もクリアします。クリアタイミングと "1" の書込みが重複した場合には , 書込み が優先してカウンタ初期化ビットは次のクリアタイミングまで "1" を保持し続けま す。 • カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有 効となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジ スタに "0000H" を書き込むようにしてください。 659 第 20 章 16 ビットフリーランタイマ 660 第 21 章 インプットキャプチャ インプットキャプチャの機能と動作について説明 します。 21.1 インプットキャプチャの概要 21.2 インプットキャプチャのレジスタ 21.3 インプットキャプチャの動作 661 第 21 章 インプットキャプチャ インプットキャプチャの概要 21.1 インプットキャプチャには外部から入力された信号の立上りエッジ , 立下りエッジ または両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに 保持する機能があります。また , エッジ検出時に割込みを発生することができます。 インプットキャプチャは , インプットキャプチャデータレジスタ , 制御レジスタで構 成されています。 ■ インプットキャプチャの概要 各インプットキャプチャには , それぞれに対応した外部入力端子があります。 • 外部入力の有効エッジを 3 種類から選択可能です。 - 立上りエッジ - 立下りエッジ - 両エッジ • 外部入力有効エッジを検出したときに割込みを発生することができます。 • フリーランタイマとインプットキャプチャは以下の組合せで協調動作を行います。 - フリーランタイマ 0 とインプットキャプチャ 0, 1 - フリーランタイマ 1 とインプットキャプチャ 2, 3 ■ インプットキャプチャのブロックダイヤグラム 16ビットタイマカウント値(T15~T00) R-bus キャプチャデータレジスタch.0 IN0 入力端子 エッジ検出 EG11 EG10 EG01 EG00 16ビットタイマカウント値(T15~T00) キャプチャデータレジスタch.1 ICP1 IN1 入力端子 エッジ検出 ICP0 ICE1 ICE0 割込み 割込み 662 第 21 章 インプットキャプチャ 21.2 インプットキャプチャのレジスタ インプットキャプチャには下記のレジスタがあります。 • インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) • インプットキャプチャ制御レジスタ (ICS01,ICS23) これらのレジスタの詳細を説明します。 ■ インプットキャプチャのレジスタ一覧 図 21.2-1 インプットキャプチャのレジスタ一覧 IPCP ( 上位 ) bit 15 アドレス IPCP0:000184H CP15 IPCP1:000186H IPCP2:000188H IPCP3:00018AH 14 13 12 11 10 9 8 CP14 CP13 CP12 CP11 CP10 CP09 CP08 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 6 5 4 3 2 1 0 CP06 CP05 CP04 CP03 CP02 CP01 CP00 IPCP ( 下位 ) bit 7 アドレス IPCP0:000185H CP07 IPCP1:000187H IPCP2:000189H IPCP3:00018BH リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) ICS bit 7 アドレス ICS01:000181H ICP1 ICS23:000183H 6 5 4 3 2 1 0 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) 663 第 21 章 インプットキャプチャ インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) 21.2.1 インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) は , 対応した外部端子から入力さ れる波形の有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジ スタです。 ■ インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) のビット構成 図 21.2-2 インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) のビット構成 IPCP ( 上位 ) bit 15 アドレス IPCP0:000184H CP15 IPCP1:000186H IPCP2:000188H IPCP3:00018AH 14 13 12 11 10 9 8 CP14 CP13 CP12 CP11 CP10 CP09 CP08 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 6 5 4 3 2 1 0 CP06 CP05 CP04 CP03 CP02 CP01 CP00 IPCP ( 下位 ) bit 7 アドレス IPCP0:000185H CP07 IPCP1:000187H IPCP2:000189H IPCP3:00018BH リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。 このレジスタは 16 ビットデータまたは 32 ビットデータでアクセスしてください。書 込みはできません。 664 第 21 章 インプットキャプチャ 21.2.2 インプットキャプチャ制御レジスタ (ICS01,ICS23) インプットキャプチャ制御レジスタ (ICS01,ICS23) は , インプットキャプチャの割 込みやエッジ検出を制御するために使用します。 ■ インプットキャプチャレジスタ (ICS01,ICS23) のビット構成 図 21.2-3 インプットキャプチャレジスタ (ICS01,ICS23) のビット構成 ICS bit 7 アドレス ICS01:000181H ICP1 ICS23:000183H 6 5 4 3 2 1 0 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) [bit7, bit6] ICP1, ICP0 : 割込みフラグ インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると 本ビットを "1" に設定します。割込み許可ビット (ICE3 ∼ ICE0) が設定されている と , 有効エッジを検出することにより割込みを発生することができます。本ビット は "0" 書込みによりクリアされます。"1" 書込みは意味がありません。リードモディ ファイライト (RMW) 系命令では "1" が読めます。 ICP0/ICP1 割込みフラグ 0 有効エッジ検出なし [ 初期値 ] 1 有効エッジ検出あり [bit5, bit4] ICE1, ICE0 : 割込み許可ビット インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき , 割込みフラ グ (ICP1, ICP0) が "1" に設定されるとインプットキャプチャ割込みが発生します。 ICE0/ICE1 割込み許可 0 割込み禁止 [ 初期値 ] 1 割込み許可 665 第 21 章 インプットキャプチャ [bit3 ∼ bit0] EG11, EG10, EG01, EG00 (EG31, EG30, EG21, EG20) : エッジ選択ビット 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作も兼 用しています。 EGn1 EGn0 0 0 エッジ検出なし ( 停止状態 ) [ 初期値 ] 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑ & ↓ エッジ極性検出 EGn1/EGn0: n の番号がインプットキャプチャのチャネル番号に対応します。 n=0∼3 666 第 21 章 インプットキャプチャ 21.3 インプットキャプチャの動作 16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生させること ができます。 ■ 16 ビットインプットキャプチャの動作 図 21.3-1 インプットキャプチャの取込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット IN0 IN1 IN2 データレジスタ0 不定 3FFFH 不定 データレジスタ1 データレジスタ2 不定 BFFFH BFFFH 7FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ2割込み キャプチャ0:立上りエッジ キャプチャ1:立下りエッジ キャプチャ2:両エッジ 再度有効エッジにより割込み発生 ソフトウェアにより割込みクリア 667 第 21 章 インプットキャプチャ ■ 16 ビットインプットキャプチャの入力タイミング 図 21.3-2 16 ビットインプットキャプチャの入力タイミング例 φ カウンタ値 N N+ 1 インプットキャプチャ入力 有効エッジ キャプチャ信号 キャプチャレジスタ値 割込み 668 N+ 1 第 22 章 アウトプットコンペア ユニット アウトプットコンペアユニットの機能と動作につ いて説明します。 22.1 アウトプットコンペアユニットの概要 22.2 アウトプットコンペアユニットのレジスタ 22.3 アウトプットコンペアユニットの動作 669 第 22 章 アウトプットコンペアユニット 22.1 アウトプットコンペアユニットの概要 アウトプットコンペアモジュールは , コンペアレジスタ , コンペア出力ラッ チ , および制御レジスタで構成されています。 ■ アウトプットコンペアユニットの特長 • コンペアレジスタは独立に使用できます。 出力ピンと割込みフラグはコンペアレジスタに対応しています。 • 出力ピンはコンペアレジスタを対で制御できます。 出力ピンはコンペアレジスタを使用して反転させることができます。 • 出力ピンの初期値を設定できます。 • コンペア ( 比較 ) が一致したときに割込みを発生させることができます。 • フリーランタイマとアウトプットコンペアユニットは以下の組合せで協調動作を 行います。 - フリーランタイマ 2 とアウトプットコンペア 0, 1 - フリーランタイマ 3 とアウトプットコンペア 2, 3 ■ アウトプットコンペアユニットのブロックダイヤグラム OTD1 OTD0 コンペアレジスタ コンペア回路 R-bus コンペアレジスタ OTE0 出力 コンペア 出力用ラッチ OTE1 出力 CMOD コンペア回路 CST1 コンペア 出力用ラッチ CST0 ICP1 ICP0 ICE1 ICE0 16ビットフリーランタイマ 割込み出力 割込み出力 670 第 22 章 アウトプットコンペアユニット 22.2 アウトプットコンペアユニットのレジスタ アウトプットコンペアユニットには , コンペアレジスタと制御レジスタがあります。 ■ アウトプットコンペアユニットのレジスタ 図 22.2-1 アウトプットコンペアユニットのレジスタ OCCP ( 上位 ) 14 13 12 11 10 9 8 C15 C14 C13 C12 C11 C10 C09 C8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 6 5 4 3 2 1 0 C07 C06 C05 C04 C03 C02 C01 C00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 アドレス OCCP0: 000190H OCCP1: 000192H OCCP2: 000194H OCCP3: 000196H bit 15 OCCP ( 下位 ) アドレス OCCP0: 000191H OCCP1: 000193H OCCP2: 000195H OCCP3: 000197H bit 7 OCS ( 上位 ) アドレス OCS01: 00018CH OCS23: 00018EH 予約 予約 予約 CMOD 予約 予約 OTD1 OTD0 リード / ライト (−) (−) (−) (R/W) (−) (−) (R/W) (R/W) 初期値 (1) (1) (1) (0) (1) (1) (0) (0) 6 5 4 3 2 1 0 OCS ( 下位 ) アドレス bit 7 OCS01: 00018DH OCS23: 00018FH ICP1 ICP0 ICE1 ICE0 予約 予約 CST1 CST0 リード / ライト (R/W) (R/W) (R/W) (R/W) (−) (−) (R/W) (R/W) 初期値 (0) (0) (0) (0) (1) (1) (0) (0) 671 第 22 章 アウトプットコンペアユニット 22.2.1 コンペアレジスタ (OCCP0 ∼ OCCP3) コンペアレジスタ (OCCP0 ∼ OCCP3) の詳細を説明します。 ■ コンペアレジスタ (OCCP0 ∼ OCCP3) のビット構成 図 22.2-2 コンペアレジスタ (OCCP0 ∼ OCCP3) のビット構成 OCCP ( 上位 ) 14 13 12 11 10 9 8 C15 C14 C13 C12 C11 C10 C09 C8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 6 5 4 3 2 1 0 C07 C06 C05 C04 C03 C02 C01 C00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) アドレス OCCP0: 000190H OCCP1: 000192H OCCP2: 000194H OCCP3: 000196H bit 15 OCCP ( 下位 ) アドレス OCCP0: 000191H OCCP1: 000193H OCCP2: 000195H OCCP3: 000197H bit 7 ■ コンペアレジスタ (OCCP0 ∼ OCCP3) の機能 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス タは , 初期値が不定ですのでコンペア値を設定してから起動を許可してください。 本レジスタは 16 ビットまたは 32 ビットでアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致した場合 , コンペア信号が発生してアウトプットコ ンペア割込みフラグを設定します。また , ポートファンクションレジスタ (PFR) の対応 するビットを設定して出力許可している場合は , コンペアレジスタに対応した出力レ ベルを反転します。 672 第 22 章 アウトプットコンペアユニット 制御レジスタ (OCS01,OCS23) 22.2.2 制御レジスタ (OCS01,OCS23) の詳細を説明します。 ■ 制御レジスタのビット構成 図 22.2-3 制御レジスタ (OCS01,OCS23) のビット構成 OCS ( 上位 ) アドレス bit 15 14 13 12 11 10 9 8 OCS01: 00018CH OCS23: 00018EH 予約 予約 予約 CMOD 予約 予約 OTD1 OTD0 リード / ライト (−) (−) (−) (R/W) (−) (−) (R/W) (R/W) 初期値 (1) (1) (1) (0) (1) (1) (0) (0) 6 5 4 3 2 1 0 OCS ( 下位 ) アドレス bit 7 OCS01: 00018DH OCS23: 00018FH ICP1 ICP0 ICE1 ICE0 予約 予約 CST1 CST0 リード / ライト (R/W) (R/W) (R/W) (R/W) (−) (−) (R/W) (R/W) 初期値 (0) (0) (0) (0) (1) (1) (0) (0) [bit15 ∼ bit13] 予約 : 予約ビット 予約ビットです。読出しでは必ず "111B" が読み出されます。 [bit12] CMOD : モードビット 出力端子を許可した場合のコンペア一致における端子出力レベル反転動作を指定 します。 • CMOD = 0 ( 初期値 ) のとき , コンペアレジスタに対応した端子の出力レベルを 反転します。 - コンペアレジスタ 0 (2) の一致によりレベルを反転します。 - コンペアレジスタ 1 (3) の一致によりレベルを反転します。 • CMOD = 1 のとき - コンペアレジスタ 0 (2) の一致によりレベルを反転します。 - コンペアレジスタ 0 (2) と 1 (3) の一致によりレベルを反転します。 [bit11, bit10] 予約 : 予約ビット 予約ビットです。読出しでは必ず "11B" が読み出されます。 673 第 22 章 アウトプットコンペアユニット [bit9, bit8] OTD1, OTD0 : コンペア端子出力レベル変更ビット アウトプットコンペアレジスタの出力端子を許可した場合の端子出力レベルを指 定します。指定はコンペア動作を停止してから行ってください。読出し動作では , アウトプットコンペア端子出力が読み出されます。 OTD1, OTD0 コンペア端子出力レベル 0 コンペア端子出力を "0" にします。[ 初期値 ] 1 コンペア端子出力を "1" にします。 [bit7, bit6] ICP1, ICP0 : 割込みフラグ アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリー ランタイマ値が一致した場合に "1" に設定されます。割込み要求ビット (ICE1, ICE0) が許可されているときに本ビットが "1" に設定されると , アウトプットコンペア割 込みが発生します。本ビットは "0" 書込みによりクリアされ , "1" 書込みは意味があ りません。リードモディファイライト (RMW) 系命令では "1" が読み出されます。 ICP1, ICP0 割込みフラグ 0 アウトプットコンペア一致なし [ 初期値 ] 1 アウトプットコンペア一致あり フリーランタイマに外部クロックを指定した場合 , コンペア一致および割込みは次 のクロックで発生します。そのため , コンペア一致出力および割込みを発生させる ためには , フリーランタイマの外部クロックに , コンペア一致後 , 最低 1 クロックを 入力する必要があります。 [bit5, bit4] ICE1, ICE0 : 割込み許可ビット アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割 込みフラグ (ICP1, ICP0) が "1" に設定されるとアウトプットコンペア割込みが発生 します。 ICE1, ICE0 割込み許可 0 アウトプットコンペア割込み禁止 [ 初期値 ] 1 アウトプットコンペア割込み許可 [bit3, bit2] 予約 : 予約ビット 予約ビットです。読出しでは必ず "11B" が読み出されます。 674 第 22 章 アウトプットコンペアユニット [bit1, bit0] CST1, CST0 : 一致動作許可ビット 16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許 可する前に必ずコンペアレジスタ値およびアウトプット制御レジスタ値を設定し てください。 CST1, CST0 一致動作許可 0 コンペア動作禁止 [ 初期値 ] 1 コンペア動作許可 アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビットフリーランタイマを停止させるとコンペア動作も停止します。 675 第 22 章 アウトプットコンペアユニット 22.3 アウトプットコンペアユニットの動作 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ リーランタイマ値との値を比較し , 一致すると割込みフラグを設定するとともに , 出 力レベルを反転することができます。 ■ 16 ビットアウトプットコンペアの動作 1 チャネル独立でコンペア動作を行うことができます (CMOD = 0 のとき )。 図 22.3-1 コンペアレジスタ 0, 1 を使用した場合の出力波形例 ( 出力の初期値は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OP0出力 OP1出力 コンペア0割込み コンペア1割込み 676 第 22 章 アウトプットコンペアユニット 2組のコンペアレジスタを使い, 出力レベルを変えることができます (CMOD=1のとき)。 図 22.3-2 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OP0出力 OP1出力 コンペア0割込み コンペア1割込み 677 第 22 章 アウトプットコンペアユニット ■ 16 ビットアウトプットコンペアの動作タイミング 2組のコンペアレジスタを使い, 出力レベルを変えることができます (CMOD=1のとき) 。 アウトプットコンペアは , フリーランタイマと , 設定したコンペアレジスタの値が一致 したときにコンペア一致信号が発生して出力を反転するとともに割込みを発生するこ とができます。コンペア一致時の出力反転タイミングは , カウンタのカウントタイミン グに同期して行われます。 ● コンペアレジスタライトタイミング コンペアレジスタ書換え時には , カウンタ値とはコンペアしません。 図 22.3-3 コンペアレジスタライトタイミング カウンタ値 N N+1 N+3 N+2 一致信号は発生しない コンペアクリアレジスタ0値 N+1 M コンペアレジスタ0ライト コンペアクリアレジスタ1値 N+3 L コンペアレジスタ1ライト コンペア0停止 コンペア1停止 ● コンペア一致 , 割込みタイミング 図 22.3-4 コンペアマッチ , 割込みタイミング カウントクロック カウンタ値 コンペアレジスタ値 N N+1 N+3 N+2 N コンペア一致 端子出力 割込み ● 端子出力タイミング 図 22.3-5 端子出力タイミング カウンタ値 コンペアレジスタ値 コンペア一致 端子出力 678 N N N+1 N+1 N+1 第 23 章 PPG ( プログラマブル パルスジェネレータ ) PPG のレジスタ , 機能と動作について説明します。 23.1 PPG の概要 23.2 PPG のレジスタ 23.3 PPG の動作 679 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.1 PPG の概要 PPG は精度の高い PWM 波形を任意の周期とデューティで効率良く出力することが できます。 各チャネルは 16 ビットダウンカウンタ , 周期設定用バッファ付き 16 ビットデータ レジスタ , デューティ設定用バッファ付き 16 ビットコンペアレジスタ , 端子制御部 からなります。また , 動作制御モードの指定のため , 各チャネルに制御ステータスレ ジスタがあり , 各チャネル共通に制御するためのゼネラル制御レジスタ 10, ゼネラル 制御レジスタ 20 があります。 ■ 特長 • 16 ビットダウンカウンタのカウントクロックは次の 4 つから選択可能 : クロック : FCLKP, FCLKP/4, FCLKP/16, FCLKP/64 (FCLKP: ペリフェラル動作クロック ) • カウンタはリセットあるいはアンダフローにより "FFFFH" に設定される。 16 ビットダウンカウンタは "0000H" から "FFFFH" に変わるときにアンダフローを発 生。 • PPG の各チャネルごとに出力端子がある。 • レジスタ 周期設定レジスタ : バッファ付きのリロードレジスタ デューティ設定レジスタ : バッファ付きの比較用レジスタ • 出力端子制御 デューティ一致時には "1" 出力 アンダフロー時には "0" 出力 固定値出力モードによりオール "L" あるいはオール "H" 出力可能 極性反転指定あり • 割込み要因として次の要因を選択可能 PPG の起動トリガ ( ソフトウェアトリガ ) カウンタボローの発生 ( 周期一致 ) デューティ一致 カウンタボローの発生 ( 周期一致 ) あるいはデューティ一致 • ソフトウェアあるいはリロードタイマを使用して複数の PPG を同時起動可能。 また , PPG 動作中に再起動可能。 680 第 23 章 PPG ( プログラマブルパルスジェネレータ ) ■ PPG のブロックダイヤグラム ● PPG0 ∼ PPG7 の全体構成とリロードタイマとの接続 図 23.1-1 PPG の全体構成 PPG0~PPG3 出力端子 外部トリガ 0 外部トリガ 1 TRG入力 PPG ch.0 PPG0 TRG入力 PPG ch.1 PPG1 TRG入力 PPG ch.2 PPG2 TRG入力 PPG ch.3 PPG3 外部トリガ 2 外部トリガ 3 セレクタ リロードタイマ0 リロードタイマ1 ゼネラル 制御 レジスタ 20 選択信号 ゼネラル制御レジスタ 10 (トリガ入力選択指定) PPG4~PPG7 出力端子 セレクタ リロードタイマ2 リロードタイマ3 ゼネラル 制御 レジスタ 21 選択信号 TRG入力 PPG ch.4 PPG4 TRG入力 PPG ch.5 PPG5 TRG入力 PPG ch.6 PPG6 TRG入力 PPG ch.7 PPG7 ゼネラル制御レジスタ 11 (トリガ入力選択指定) 681 第 23 章 PPG ( プログラマブルパルスジェネレータ ) ● PPG の構成 (1 チャネル ) 図 23.1-2 PPG の構成 (1 チャネル ) 周期設定レジスタ デューティ設定レジスタ PCSR PDUT プリスケーラ FCLKP/1 クロック CMP ロード FCLKP/4 16ビットダウンカウンタ FCLKP/16 スタート アンダフロー FCLKP/64 PPGマスク 周辺機器クロック (FCLKP) PPG 出力 反転ビット 許可 内部トリガ (EN0~EN3) GCN20 リロードタイマ ch.0, ch.1入力 エッジ 検出 ソフトウェアトリガ 682 割込み 選択 IRQ (割込み要求信号) 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2 PPG のレジスタ PPG のレジスタおよび機能について説明します。 ■ PPG のレジスタ 図 23.2-1 PPG のレジスタ GCN10 ( 上位 ) bit 15 14 アドレス : 000100H 13 12 11 10 TSEL33 to TSEL30 9 8 TSEL23 to TSEL20 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (1) (1) (0) (0) (1) (0) 6 5 4 3 2 1 0 GCN10 ( 下位 ) bit 7 アドレス : 000101H TSEL13 to TSEL0 TSEL03 to TSEL00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (1) (0) (0) (0) (0) bit 15 14 13 12 11 10 9 8 GCN11 ( 上位 ) アドレス : 000104H TSEL73 ∼ TSEL70 TSEL63 ∼ TSEL60 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (1) (1) (0) (0) (1) (0) 6 5 4 3 2 1 0 GCN11 ( 下位 ) bit 7 アドレス : 000105H TSEL53 ∼ TSEL50 TSEL43 ∼ TSEL40 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (1) (0) (0) (0) (0) 6 5 4 3 2 1 0 予約 予約 予約 EN3 EN2 EN1 EN0 GCN2 bit 7 アドレス GCN20: 000103H 予約 GCN21: 000107H リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) ( 続く ) 683 第 23 章 PPG ( プログラマブルパルスジェネレータ ) ( 続き ) PTMR ( 上位 ) アドレス : 000110H, 000118H bit 15 000120H, 000128H D15 000130H, 000138H 000140H, 000148H 14 13 12 11 10 9 8 D14 D13 D12 D11 D10 D09 D08 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (1) (1) (1) (1) (1) (1) (1) (1) PTMR ( 下位 ) アドレス : 000111H, 000119H bit 7 000121H, 000129H D07 000131H, 000139H 000141H, 000149H 6 5 4 3 2 1 0 D06 D05 D04 D03 D02 D01 D00 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (1) (1) (1) (1) (1) (1) (1) (1) PCSR ( 上位 ) アドレス : 000112H, 00011AH bit 15 000122H, 00012AH D15 000132H, 00013AH 000142H, 00014AH 14 13 12 11 10 9 8 D14 D13 D12 D11 D10 D09 D08 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) PCSR ( 下位 ) アドレス : 000113H, 00011BH bit 7 000123H, 00012BH D07 000133H, 00013BH 000143H, 00014BH 6 5 4 3 2 1 0 D06 D05 D04 D03 D02 D01 D00 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) アドレス : 000114H, 00011CH bit 15 000124H, 00012CH D15 000134H, 00013CH 000144H, 00014CH 14 13 12 11 10 9 8 D14 D13 D12 D11 D10 D09 D08 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) PDUT ( 上位 ) ( 続く ) 684 第 23 章 PPG ( プログラマブルパルスジェネレータ ) ( 続き ) PDUT ( 下位 ) アドレス : 000115H, 00011DH bit 7 000125H, 00012DH D07 000135H, 00013DH 000145H, 00014DH 6 5 4 3 2 1 0 D06 D05 D04 D03 D02 D01 D00 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 14 13 12 11 10 9 8 STGR MDSE RTRG CKS1 CKS0 PGMS 予約 PCNH アドレス : 000116H, 00011EH bit 15 000126H, 00012EH CNTE 000136H, 00013EH 000146H, 00014EH リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (−) 初期値 (0) (0) (0) (0) (0) (0) (0) (−) PCNL アドレス : 000117H, 00011FH bit 7 000127H, 00012FH EGS1 000137H, 00013FH 000147H, 00014FH 6 5 4 3 2 1 0 EGS0 IREN IRQF IRS1 IRS0 予約 OSEL リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (−) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (−) (0) 685 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2.1 制御ステータスレジスタ (PCNH, PCNL) 制御ステータスレジスタ (PCNH, PCNL) はチャネルごとに動作モード設定 , 起動許 可 , クロック選択 , 出力マスク , トリガ入力エッジ選択 , 割込み許可を制御します。 また , 割込みステータスフラグを表示します。 ■ 制御ステータスレジスタの構成 (PCNH, PCNL) 図 23.2-2 制御ステータスレジスタの構成 PCNH アドレス : 000116H, 00011EH bit 15 000126H, 00012EH CNTE 000136H, 00013EH 000146H, 00014EH 14 13 12 11 10 9 8 STGR MDSE RTRG CKS1 CKS0 PGMS 予約 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (−) 初期値 (0) (0) (0) (0) (0) (0) (0) (−) PCNL アドレス : 000117H, 00011FH bit 7 000127H, 00012FH EGS1 000137H, 00013FH 000147H, 00014FH 6 5 4 3 2 1 0 EGS0 IREN IRQF IRS1 IRS0 予約 OSEL リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (−) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (−) (0) ■ 制御ステータスレジスタ PCNH/PCNL の各ビットの機能 [bit15] CNTE: カウンタ動作許可 16 ビットダウンカウンタの動作許可ビットです。 CNTE 機能 0 停止 [ 初期値 ] 1 動作 [bit14] STGR: ソフトウェアトリガ 本ビットを "1" に設定するとソフトウェアトリガが発生し , PPG が起動します。 読出し時には常に "0" が読み出されます。 686 第 23 章 PPG ( プログラマブルパルスジェネレータ ) [bit13] MDSE: 動作モード 本ビットは PPG の動作として連続した PWM 動作にするかワンショット動作にする かを指定します。 MDSE 機能 0 PWM 動作 [ 初期値 ] 1 ワンショット動作 [bit12] RTRG: 再起動許可 本ビットを "1" に設定するとトリガによる再起動を許可します。 RTRG 機能 0 再起動禁止 [ 初期値 ] 1 再起動許可 [bit11, bit10] CKS1, CKS0: クロック選択 16 ビットダウンカウンタの動作クロックを指定します。 CKS1 CKS0 0 0 FCLKP/1 [ 初期値 ] 0 1 FCLKP/4 1 0 FCLKP/16 1 1 FCLKP/64 カウントクロック FCLKP: 周辺マクロの動作クロック [bit9] PGMS: PPG 出力マスク 本ビットを "1" に設定することによりモード設定 , 周期設定 , デューティ設定にかか わらず , PPG の出力を "L" あるいは "H" に固定します。 極性 PPG 出力 通常極性時 "L" 出力 [ 初期値 ] 反転極性時 "H" 出力 出力極性の指定は OSEL ビット ( 制御ステータスレジスタの bit0) で指定します。 [bit8] 予約 : 未使用ビット 687 第 23 章 PPG ( プログラマブルパルスジェネレータ ) [bit7, bit6] EGS1, EGS0: トリガ入力選択 トリガ入力を GCN10 ( ゼネラル制御レジスタ 10) で指定した場合の有効エッジを指 定します。 EGS1 EGS0 0 0 トリガを受け付けない [ 初期値 ] 0 1 立上りエッジ 1 0 立下りエッジ 1 1 両エッジ トリガ入力エッジ [bit5] IREN: 割込み許可 割込み許可ビットです。 IREN 機能 0 割込み禁止 [ 初期値 ] 1 割込み許可 [bit4] IRQF: 割込み要求フラグ bit5:IREN が許可されていて bit3, bit2 (IRS1, IRS0) で選択した割込み要因が発生する と本ビットが設定されて CPU に割込み要求を発生します。 本ビットは "0" 書込みによりクリアされます。"1" 書込みでは値は変化しません。 リードモディファイライト (RMW) 系命令における読出し値はビット値にかかわら ず "1" となります。 DMAC の起動要因に指定されている場合には , DMA 転送要求を発生します。転送 の際 DMAC により本ビットはクリアされます。 [bit3, bit2] IRS1, IRS0: 割込み要因選択 割込み要求を発生する動作を選択します。 IRS1 IRS0 0 0 ソフトウェアトリガまたはトリガ入力 [ 初期値 ] 0 1 カウンタのボロー発生 ( 周期一致 ) 1 0 カウンタ値がデューティ値と一致 1 1 カウンタのボロー発生 ( 周期一致 ), あるいはカウンタ値が デューティ値と一致した場合に割込み発生 [bit1] 予約 : 未使用ビット 688 割込み要因 第 23 章 PPG ( プログラマブルパルスジェネレータ ) [bit0] OSEL: PPG 出力極性指定 出力極性指定ビットです。 bit9:PGMS との組合せで以下のように端子が制御されます。 表 23.2-1 PPG 出力の極性とエッジ PGMS OSEL PPG 出力 0 0 通常極性 [ 初期値 ] 0 1 反転極性 1 0 "L" 固定 1 1 "H" 固定 極性 リセット後 通常極性 "L" 出力 反転極性 "H" 出力 ディーティ 一致 アンダ フロー 689 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2.2 PPG 周期設定レジスタ (PCSR) PPG 周期設定レジスタ (PCSR) は周期を設定するための 16 ビットリロードレジスタで す。 ■ PPG 周期設定レジスタの構成 (PCSR) 図 23.2-3 PPG 周期設定レジスタの構成 PCSR ( 上位 ) アドレス : 000112H, 00011AH bit 15 000122H, 00012AH D15 000132H, 00013AH 000142H, 00014AH 14 13 12 11 10 9 8 D14 D13 D12 D11 D10 D09 D08 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) PCSR ( 下位 ) アドレス : 000113H, 00011BH bit 7 000123H, 00012BH D07 000133H, 00013BH 000143H, 00014BH 6 5 4 3 2 1 0 D06 D05 D04 D03 D02 D01 D00 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) ■ PCSR の機能 PCSRレジスタはバッファ付きで , PCSRの設定値は起動トリガが検出された場合および カウンタのボローが発生した場合にバッファからカウンタへのロードが行われます。 カウンタのボロー発生はカウント開始後 , PCSR 設定値+ 1 カウント後にボローが発生 します。PPG の動作周期はカウントクロック周期× (PCSR の設定値+ 1) となります。 PPG 周期設定レジスタの書き換え後は必ず PPG デューティ設定レジスタ PDUT の設定 を行ってください。 PPG 周期設定レジスタは必ずハーフワード (16 ビット ) あるいはワード (32 ビット ) で アクセスしてください。 690 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2.3 PPG デューティ設定レジスタ (PDUT) PPG デューティ設定レジスタ (PDUT) は出力波形のデューティを設定するための 16 ビットレジスタです。 ■ PPG デューティ設定レジスタ (PDUT) の構成 図 23.2-4 PPG デューティ設定レジスタの構成 PDUT ( 上位 ) アドレス : 000114H, 00011CH bit 15 000124H, 00012CH D15 000134H, 00013CH 000144H, 00014CH 14 13 12 11 10 9 8 D14 D13 D12 D11 D10 D09 D08 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) PDUT ( 下位 ) アドレス : 000115H, 00011DH bit 7 000125H, 00012DH D07 000135H, 00013DH 000145H, 00014DH 6 5 4 3 2 1 0 D06 D05 D04 D03 D02 D01 D00 リード / ライト (W) (W) (W) (W) (W) (W) (W) (W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) ■ PDUT の機能 PPG デューティ設定レジスタは PPG 出力波形のデューティを設定するためのレジスタ です。PPG の 16 ビットカウンタと一致した場合に PPG の出力が反転します。 PPG 出力パルス幅は カウントクロック周期× (PDUT の設定値+ 1) となります。 PPG デューティ設定レジスタは PPG 周期設定レジスタ (PCSR) よりも小さい値を設定 してください。PCSR よりも大きい値を設定した場合の PPG 出力は不定となります。 PPG デューティ設定レジスタと PPG 周期設定レジスタの値を同じに設定した場合 , 下 記の動作になります。 - 通常極性時 (OSEL = 0) : 常に "H" を出力します。 - 反転極性時 (OSEL = 1) : 常に "L" を出力します。 PPG デューティ設定レジスタは必ずハーフワード (16 ビット ) あるいはワード (32 ビッ ト ) でアクセスしてください。 691 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2.4 PPG タイマレジスタ (PTMR) PPG タイマレジスタ (PTMR) はカウント値を読み出すためのレジスタです。 ■ PPG タイマレジスタ (PTMR) の構成 図 23.2-5 PPG タイマレジスタの構成 PTMR ( 上位 ) アドレス : 000110H, 000118H bit 15 000120H, 000128H D15 000130H, 000138H 000140H, 000148H 14 13 12 11 10 9 8 D14 D13 D12 D11 D10 D09 D08 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (1) (1) (1) (1) (1) (1) (1) (1) PTMR ( 下位 ) アドレス : 000111H, 000119H bit 7 000121H, 000129H D07 000131H, 000139H 000141H, 000149H 6 5 4 3 2 1 0 D06 D05 D04 D03 D02 D01 D00 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (1) (1) (1) (1) (1) (1) (1) (1) ■ PTMR の機能 PPG タイマレジスタ (PTMR) はカウント値を読み出すためのレジスタです。 本レジスタからの読出しはハーフワード (16 ビット ) で行ってください。バイトアクセ スした場合には正しく読み出せません。 692 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2.5 ゼネラル制御レジスタ 10 (GCN10) ゼネラル制御レジスタ 10 (GCN10) は PPG0 ∼ PPG3 のトリガ入力を選択するため のレジスタです。 ■ ゼネラル制御レジスタ 10 (GCN10) の構成 図 23.2-6 ゼネラル制御レジスタ 10 (GCN10) の構成 GCN10 ( 上位 ) bit 15 アドレス : 000100H 14 13 12 11 TSEL33 ∼ TSEL30 10 9 8 TSEL23 ∼ TSEL20 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (1) (1) (0) (0) (1) (0) 6 5 4 3 2 1 0 GCN10 ( 下位 ) bit 7 アドレス : 000101H TSEL13 ∼ TSEL0 TSEL03 ∼ TSEL00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (1) (0) (0) (0) (0) ■ GCN10 の機能 [bit15 ∼ bit12] TSEL33 ∼ TSEL30: PPG ch.3 入力選択 表 23.2-2 PPG ch.3 入力トリガ選択 TSEL33 ∼ TSEL30 PPG ch.3 トリガ入力 bit15 bit14 bit13 bit12 0 0 0 0 GCN20 EN0 ビット 0 0 0 1 GCN20 EN1 ビット 0 0 1 0 GCN20 EN2 ビット 0 0 1 1 GCN20 EN3 ビット [ 初期値 ] 0 1 0 0 16 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 x 設定禁止 1 0 0 0 外部トリガ 0 1 0 0 1 外部トリガ 1 1 0 1 0 外部トリガ 2 1 0 1 1 外部トリガ 3 1 1 x x 設定禁止 693 第 23 章 PPG ( プログラマブルパルスジェネレータ ) [bit11 ∼ bit8] TSEL23 ∼ TSEL20: PPG ch.2 トリガ入力選択 表 23.2-3 PPG ch.2 トリガ入力選択 TSEL23 ∼ TSEL20 PPG ch.2 トリガ入力 bit11 bit10 bit9 bit8 0 0 0 0 GCN20 EN0 ビット 0 0 0 1 GCN20 EN1 ビット 0 0 1 0 GCN20 EN2 ビット [ 初期値 ] 0 0 1 1 GCN20 EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 x 設定禁止 1 0 0 0 外部トリガ 0 1 0 0 1 外部トリガ 1 1 0 1 0 外部トリガ 2 1 0 1 1 外部トリガ 3 1 1 x x 設定禁止 [bit7 ∼ bit4] TSEL13 ∼ TSEL10: PPG ch.1 トリガ入力選択 表 23.2-4 PPG ch.1 トリガ入力選択 TSEL13 ∼ TSEL10 PPG ch.1 トリガ入力 694 bit7 bit6 bit5 bit4 0 0 0 0 GCN20 EN0 ビット 0 0 0 1 GCN20 EN1 ビット [ 初期値 ] 0 0 1 0 GCN20 EN2 ビット 0 0 1 1 GCN20 EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 x 設定禁止 1 0 0 0 外部トリガ 0 1 0 0 1 外部トリガ 1 1 0 1 0 外部トリガ 2 1 0 1 1 外部トリガ 3 1 1 x x 設定禁止 第 23 章 PPG ( プログラマブルパルスジェネレータ ) [bit3 ∼ bit0] TSEL03 ∼ TSEL00: PPG ch.0 トリガ入力選択 表 23.2-5 PPG ch.0 トリガ入力選択 TSEL03 ∼ TSEL00 PPG ch.0 トリガ入力 bit3 bit2 bit1 bit0 0 0 0 0 GCN20 EN0 ビット [ 初期値 ] 0 0 0 1 GCN20 EN1 ビット 0 0 1 0 GCN20 EN2 ビット 0 0 1 1 GCN20 EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 x 設定禁止 1 0 0 0 外部トリガ 0 1 0 0 1 外部トリガ 1 1 0 1 0 外部トリガ 2 1 0 1 1 外部トリガ 3 1 1 x x 設定禁止 695 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2.6 ゼネラル制御レジスタ 11 (GCN11) ゼネラル制御レジスタ 11 (GCN11) は PPG4 ∼ PPG7 のトリガ入力を選択するため のレジスタです。 ■ ゼネラル制御レジスタ 11 (GCN11) の構成 図 23.2-7 ゼネラル制御レジスタ 11 (GCN11) の構成 GCN11 ( 上位 ) bit 15 アドレス : 000104H 14 13 12 11 TSEL73 ∼ TSEL70 10 9 8 TSEL63 ∼ TSEL60 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (1) (1) (0) (0) (1) (0) 6 5 4 3 2 1 0 GCN11 ( 下位 ) bit 7 アドレス : 000105H TSEL53 ∼ TSEL50 TSEL43 ∼ TSEL40 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (1) (0) (0) (0) (0) ■ GCN11 の機能 [bit15 ∼ bit12] TSEL73 ∼ TSEL70: PPG ch.7 トリガ入力選択 TSEL73 ∼ TSEL70 PPG ch.7 トリガ入力 696 bit15 bit14 bit13 bit12 0 0 0 0 GCN21 EN0 ビット 0 0 0 1 GCN21 EN1 ビット 0 0 1 0 GCN21 EN2 ビット 0 0 1 1 GCN21 EN3 ビット [ 初期値 ] 0 1 0 0 16 ビットリロードタイマ ch.2 0 1 0 1 16 ビットリロードタイマ ch.3 0 1 1 x 設定禁止 1 x x x 設定禁止 第 23 章 PPG ( プログラマブルパルスジェネレータ ) [bit11 ∼ bit8] TSEL63 ∼ TSEL60: PPG ch.6 トリガ入力選択 TSEL63 ∼ TSEL60 PPG ch.6 トリガ入力 bit11 bit10 bit9 bit8 0 0 0 0 GCN21 EN0 ビット 0 0 0 1 GCN21 EN1 ビット 0 0 1 0 GCN21 EN2 ビット [ 初期値 ] 0 0 1 1 GCN21 EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch.2 0 1 0 1 16 ビットリロードタイマ ch.3 0 1 1 x 設定禁止 1 x x x 設定禁止 [bit7 ∼ bit4] TSEL53 ∼ TSEL50: PPG ch.5 トリガ入力選択 TSEL53 ∼ TSEL50 PPG ch.5 トリガ入力 bit7 bit6 bit5 bit4 0 0 0 0 GCN21 EN0 ビット 0 0 0 1 GCN21 EN1 ビット [ 初期値 ] 0 0 1 0 GCN21 EN2 ビット 0 0 1 1 GCN21 EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch.2 0 1 0 1 16 ビットリロードタイマ ch.3 0 1 1 x 設定禁止 1 x x x 設定禁止 697 第 23 章 PPG ( プログラマブルパルスジェネレータ ) [bit3 ∼ bit0] TSEL43 ∼ TSEL40: PPG ch.4 トリガ入力選択 TSEL43 ∼ TSEL40 PPG ch.0 トリガ入力 698 bit3 bit2 bit1 bit0 0 0 0 0 GCN21 EN0 ビット [ 初期値 ] 0 0 0 1 GCN21 EN1 ビット 0 0 1 0 GCN21 EN2 ビット 0 0 1 1 GCN21 EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch.2 0 1 0 1 16 ビットリロードタイマ ch.3 0 1 1 x 設定禁止 1 x x x 設定禁止 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.2.7 ゼネラル制御レジスタ 2 (GCN20,GCN21) ゼネラル制御レジスタ 2 (GCN20,GCN21) はソフトウェアにより起動トリガを発生 させるためのレジスタで 4 チャネル同時に起動可能です。 ■ ゼネラル制御レジスタ 2 (GCN20,GCN21) の構成 図 23.2-8 ゼネラル制御レジスタ 2 (GCN20,GCN21) の構成 GCN2 bit 7 アドレス GCN20: 000103H 予約 GCN21: 000107H 6 5 4 3 2 1 0 予約 予約 予約 EN3 EN2 EN1 EN0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) ■ GCN20,GCN21 の機能 ゼネラル制御レジスタ 1 (GCN1) によって EN0 ∼ EN3 が起動トリガ要因として選択さ れている場合に , 本 GCN20,GCN21 レジスタの EN3 ∼ EN0 への "1" 書込みがそのまま PPG のトリガ入力となります。その場合 , トリガ入力のエッジ選択には制御ステータ スレジスタ (PCNL) の bit7, bit6 (EGS1, EGS0) を使用します。 本レジスタを使用することにより複数の PPG を同時に起動することができます。本レ ジスタの bit7 ∼ bit4 には必ず "0" を書き込んでください。 699 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.3 PPG の動作 PPG の動作について説明します。PPG には PWM 動作とワンショット動作がありま す。 ■ PPG の動作 PWM 動作モードでは連続したパルスを発生します。一方 , ワンショットモードでは単 発のパルスを発生します。 本節では以下を説明します。 • PWM 動作 • ワンショット動作 • 割込み • オール "L" およびオール "H" 出力方法 700 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.3.1 PWM 動作 PWM 動作では連続したパルスを発生します。 ■ PWM 動作 PWM 動作モードでは起動トリガがかかると連続したパルスを発生します。出力パルス の周期は PCSR レジスタの設定により制御され , デューティは PDUT レジスタにより 制御されます。周期とデューティの設定の際には必ず PCSR → PDUT の順に設定して ください。 ■ PPG 出力タイミング 起動トリガが受け付けられると周期設定値がカウンタにロードされ , ダウンカウント を開始します。 ダウンカウント中にデューティ設定値 (PDUT) と一致すると PPG 出力は極性反転され ます。 カウンタがアンダフローすると PCSR( 周期 ) がカウンタへリロードされ , PPG 出力は 極性反転されます。 再起動が禁止されている場合には動作途中でトリガ入力があっても PPG 出力は影響を 受けません ( 図 23.3-1 を参照 )。 再起動が有効な場合にトリガ入力がある場合にはカウント途中でも PCSR の値がカウ ンタへリロードされてカウントを継続します ( 図 23.3-2 を参照 )。 [PPG 出力パルスの周期とデューティは以下の式で計算されます ] Pm = T(m + 1) µs Pm: 出力パルス周期 Pn = T(n + 1) µs Pn: 出力パルスの "H" 幅 T: カントクロック周期 m: PCSR への設定値 (PCSR) n: PDUT への設定値 (PDUT) 701 第 23 章 PPG ( プログラマブルパルスジェネレータ ) ● PWM 動作の例 1) 再起動禁止 , 通常極性 図 23.3-1 PWM 動作の例 1) 再起動禁止 , 通常極性 立上りエッジ検出 トリガにより再起動されます 起動トリガ カウント値 m n 時間 0 PPG出力 Pn Pm Pn:出力パルス“H” 幅 n: PDUT値 Pm:出力周期 m: PCSR値 ● PWM 動作の例 2) 再起動許可 , 通常極性 図 23.3-2 PWM 動作の例 2) 再起動許可 , 通常極性 立上りエッジ検出 トリガにより再起動されます 起動トリガ カウント値 m n 時間 0 PPG出力 Pn Pm Pm: 出力パルス周期 m: PCSR値 702 Pn: 出力パルス“H”幅 n: PDUT値 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.3.2 ワンショット動作 ワンショット動作モードは 1 つのパルスを発生するモードです。 ■ ワンショット動作 ワンショット動作モードは起動トリガにより単一パルスが発生します。 パルスの周期とデューティは PCSR レジスタおよび PDUT レジスタで設定します。 周期とデューティを設定する際は必ず PCSR → PDUT の順に設定してください。 ワンショット動作モードにおいても動作は再起動の設定に依存し , 再起動が有効な場 合には再起動トリガが受け付けられた時点で PCSR の値をカウンタへリロードして再 スタートします。 ● ワンショット動作タイミングチャート例 ( 再起動禁止 , 通常極性 ) 図 23.3-3 再起動禁止の場合のワンショット動作タイミングチャート例 起動トリガ 立上りエッジ検出 トリガは無視されます カウンタ値 m n 時間 0 PPG出力 Pn Pm Pm = T(m+1) Pn = T(n+1) Pm: Pn: T: m: n: 出力パルス周期 出力パルス“H” 幅 カウントクロック周期 PCSR値 PDUT値 703 第 23 章 PPG ( プログラマブルパルスジェネレータ ) ● 再起動許可の場合のワンショット動作タイミング例 ( 通常極性 ) 図 23.3-4 再起動許可の場合のワンショット動作タイミング例 起動トリガ 立上りエッジ検出 トリガにより再起動します カウンタ値 m n 時間 0 PPG出力 Pn Pm Pm = T(m+1) Pn = T(n+1) 704 Pm: Pn: T: m: n: 出力パルス周期 出力パルス“H”幅 カウントクロック周期 PCSR値 PDUT値 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.3.3 割込み PPG で発生する割込み要因には以下の 4 つがあります。 • PPG タイマの起動 ( ソフトウェアトリガあるいは外部トリガ ) • アンダフロー発生 • デューティ一致 • アンダフロー発生あるいはデューティ一致 ■ 割込み処理 CPU に対する割込み要求の発生を制御するには PCNL レジスタで以下のように設定し てください。 • bit5 (IREN) で割込みを許可します。 • bit3 と bit2 (IRS1, IRS0) で割込み要因選択指定します。 • ビット (IRQF) は割込み発生状況を示す要求フラグとなります。 図 23.3-5 に各割込みが発生するタイミングを示します。 図 23.3-5 割込み要因と発生タイミング 起動トリガ 最大 2.5T * ロード クロック カウント値 X 0003H 0002H 0001H 0000H 0003H PPG 出力 割込み 有効エッジ デューティ一致 カウンタボロー *: トリガ入力からカウント値がロードされるまでに最大 2.5T (T: カウントクロック周 期)かかります。 705 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.3.4 PPG 出力オール "L" あるいはオール "H" の出力方法 PPG 出力としてオール "L" あるいはオール "H" の出力方法を示します。 ■ オール "L" あるいはオール "H" の出力方法 制御ステータスレジスタ (PCNH) の bit9 すなわち PPG 出力マスク選択ビット (PGMS) に "1" を書き込むことにより動作モード , 周期 , デューティの設定によらず PPG 出力は "L"( 通常極性時 ) あるいは "H"( 反転極性時 ) となります。 図 23.3-6 PPG にオール "L" 出力する場合の例 PPG出力 デューティ 値を小さく していく ボローによる割込みでPGMS(マスクビット) に"1"を書き込みます。また,ボローによる 割込みでPGMSに"0"を書き込むとハザード を出力することなくPWM波形を出力可能 です。 図 23.3-7 PPG にオール "H" 出力する場合の例 PPG 出力 デューティ 値を大きく していく 706 コンペア一致による割込み処理でデューテ ィ設定レジスタに周期設定レジスタ値と同 じ値を書き込みます。 第 23 章 PPG ( プログラマブルパルスジェネレータ ) 23.3.5 複数チャネルの起動 ゼネラル制御レジスタ 10 (GCN10) で起動トリガを選択することにより複数チャネ ルを同時に起動することができます。ここでは , GCN20 を使用する場合の起動の例 を示します。 ■ ソフトウェアによる複数同時起動の例 [ 設定手順 ] (1) PCSR に周期を設定します。 (2) PDUT にデューティ比を設定します。 ( 注意事項 ) 必ず PCSR → PDUT の順に書込みを行ってください。 (3) GCN10 レジスタに起動するチャネルのトリガ入力要因を設定します。 ch.0: EN0 ch.1: EN1 ch.2: EN2 ch.3: EN3 (4) 起動するチャネルの制御ステータスレジスタ (PCNL, PCNH) を設定します。 表 23.3-1 起動チャネル設定例 ビット 機能 番号 ビット名 値 15 CNTE 1 タイマ動作を許可 14 STGR 0 GCN20 で起動トリガを設定するため , STGR は "0" のままとする。 13 MDSE 0 PWM 動作 12 RTRG 0 再起動禁止 11 CKS1 0 10 CKS0 0 9 PGMS 0 出力マスクしない 8 − 0 未使用ビット 7 EGS1 0 6 EGS0 1 5 IREN 1 割込み許可 4 IRQF 0 割込み要因クリア 3 IRS1 0 2 IRS0 1 0 OSEL 0 カウントクロック : FCLKP/1 ( 分周なし ) 立上りエッジ カウンタボローで割込み要求発生 通常極性 707 第 23 章 PPG ( プログラマブルパルスジェネレータ ) (5) GCN20 にデータを書き込むことにより起動トリガを発生します。 例えば , ch.0 と ch.1 を同時に起動する場合には GCN20 レジスタの EN0 と EN1 に "1" を書き込みます。 ■ リロードタイマによる PPG の複数同時起動 上記の (3) で起動要因として 16 ビットリロードタイマを選択します。 上記の (5) で GCN20 の代わりに 16 ビットリロードタイマを起動します。 708 第 24 章 リアルタイムクロック リアルタイムクロック ( 以降 RTC) のレジスタ構成 とその機能 , RTC モジュールの動作について説明 します。 RTC には , タイマ制御レジスタ , サブセカンドレジ スタ , 秒 / 分 / 時レジスタ , 2 分周器 , 21 ビットプリスケーラ , 秒 / 分 / 時カウンタがあり ます。RTC は実時間タイマとして動作し , 実時間 情報を与えます。 24.1 リアルタイムクロックのレジスタ構成 24.2 リアルタイムクロックのブロックダイヤグラム 24.3 リアルタイムクロックのレジスタの詳細 709 第 24 章 リアルタイムクロック 24.1 リアルタイムクロックのレジスタ構成 リアルタイムクロックのレジスタ構成を示します。 ■ リアルタイムクロックのレジスタ一覧 図 24.1-1 リアルタイムクロックのレジスタ一覧 WTCRH bit 15 14 13 12 11 10 9 8 アドレス : 0004A2H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 アドレス : 0004A3H TST2 TST1 TST0 予約 RUN 予約 予約 ST リード / ライト (R/W) (R/W) (R/W) (−) (R) (−) (−) (R/W) 初期値 (0) (0) (0) (−) (0) (−) (−) (0) bit 23 22 21 20 19 18 17 16 − − − D20 D19 D18 D17 D16 リード / ライト (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (X) (X) (X) (X) (X) 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D9 D8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) WTCRL bit 7 WTBR ( 上位 ) アドレス : 0004A5H WTBR ( 中位 ) bit 15 アドレス : 0004A6H WTBR ( 下位 ) bit 7 アドレス : 0004A7H ( 続く ) 710 第 24 章 リアルタイムクロック ( 続き ) WTHR bit 31 30 29 28 27 26 25 24 − − − H4 H3 H2 H1 H0 リード / ライト (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (X) (X) (X) (X) (X) bit 23 22 21 20 19 18 17 16 − − M5 M4 M3 M2 M1 M0 リード / ライト (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 − − S5 S4 S3 S2 S1 S0 リード / ライト (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (X) (X) (X) (X) (X) (X) アドレス : 0004A8H WTMR アドレス : 0004A9H WTSR アドレス : 0004AAH 711 第 24 章 リアルタイムクロック 24.2 リアルタイムクロックのブロックダイヤグラム リアルタイムクロックのブロックダイヤグラムを示します。 ■ リアルタイムクロックのブロックダイヤグラム 図 24.2-1 リアルタイムクロックのブロックダイヤグラム RTC内部 RTC外部 原発振クロック 8分周 UPDT 2分周 21ビット プリスケーラ サブセカンド レジスタ ST 秒カウンタ 分カウンタ 時カウンタ 6ビット 5ビット 2分周 6ビット サブセカンド カウンタ オーバフロー INTE0 INT0 秒/分/時レジスタ INTE1 INT1 INTE2 INT2 INTE3 INT3 IRQ 712 第 24 章 リアルタイムクロック リアルタイムクロックのレジスタの詳細 24.3 リアルタイムクロックのレジスタ構成の詳細について説明します。 ■ タイマ制御レジスタ (WTCRH, WTCRL) 図 24.3-1 タイマ制御レジスタ (WTCRH, WTCRL) のビット構成 WTCRH bit 15 14 13 12 11 10 9 8 アドレス : 0004A2H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 アドレス : 0004A3H TST2 TST1 TST0 − RUN 予約 − ST リード / ライト (R/W) (R/W) (R/W) (−) (R) (−) (−) (R/W) 初期値 (0) (0) (0) (−) (0) (−) (−) (0) WTCRL bit 7 [WTCRH:bit15 ∼ bit8] INT3 ∼ INT0, INTE3 ∼ INTE0 : 割込みフラグおよび割込み許可ビット INT0 から INT3 までは , 割込みフラグです。このフラグは , サブセカンドカウンタ , 秒カウンタ , 分カウンタ , および時カウンタがそれぞれオーバフローした場合に設 定されます。INT ビットの設定を , 対応する INTE ビットが "1" の場合に行うと割込 み信号を生成します。本フラグは , 秒 / 分 / 時 / 日の単位で割込み信号を生成するよ うに設計されています。INT ビットに "0" を書き込むとフラグはクリアされ , "1" の 書込みは無効です。INT ビットで動作するリードモディファイライト (RMW) 系命 令はすべて "1" を読み出します。 割込み 要因 割込み許可ビット 割込みフラグ 秒割込み サブセカンドカウンタオーバフロー INTE0 INT0 分割込み 秒カウンタオーバフロー INTE1 INT1 時割込み 分カウンタオーバフロー INTE2 INT2 日割込み 時カウンタオーバフロー INTE3 INT3 713 第 24 章 リアルタイムクロック [WTCRL: bit7 ∼ bit5] TST2 ∼ TST0 : テストビット 本ビットは , デバイステスト用です。 必ず , "000B" を設定してください。 [WTCRL: bit4] 未使用ビット [WTCRL: bit3] RUN : フラグ 本ビットは読出しのみ可能です。読出し値が "1" の場合 , RTC モジュールが動作中 であることを示しています。 [WTCRL: bit2] 予約 : 予約ビット このビットは予約ビットです。常に "0" を書いてください。 [WTCRL: bit1] 未使用ビット [WTCRL: bit0] ST : スタートビット ST ビットを "1" に設定すると , ウォッチタイマはレジスタから秒 / 分 / 時値をロー ドして動作を開始します。"0" にリセットした場合 , カウンタおよびプリスケーラは すべて "0" にリセットされて停止します。 本ビットは , カウンタ値の更新にも使用できます。ST ビットを "0" に設定し , RUN が "0" になるまで待ってからカウンタ値を更新し , ST ビットを "1" に設定します。 714 第 24 章 リアルタイムクロック ■ サブセカンドレジスタ WTBR ( 上位 ) bit 23 22 21 20 19 18 17 16 − − − D20 D19 D18 D17 D16 リード / ライト (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (X) (X) (X) (X) (X) 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D9 D8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) アドレス : 0004A5H WTBR ( 中位 ) bit 15 アドレス : 0004A6H WTBR ( 下位 ) bit 7 アドレス : 0004A7H [bit23 ∼ bit21] 未使用ビット [bit20 ∼ bit0] D20 ∼ D0 サブセカンドレジスタは , 21 ビットプリスケーラのリロード値を格納します。この 値は , リロードカウンタが "0" になるとリロードされます。21 ビットプリスケーラ は , 新旧のデータバイトを結合した値をロードしてしまう場合があるので , 3 バイト すべてを修正する場合は , 書込み命令中にリロード動作が行われていないことを確 認してください。サブセカンドレジスタの更新は ST ビットが "0" の期間に実行す ることが推奨されます。サブセカンドレジスタが "0" に設定されている期間は , 21 ビットプリスケーラの動作は停止します。 なお , RTC に供給されるクロックは原発振クロックの 8 分周クロック (MB91461 の 場合 ) または 2 分周クロック (MB91F467R の場合 ) で , RTC 内部でさらに 2 分周さ れたクロック (=16分周) が21ビットプリスケーラのカウントクロックとなります。 1 秒を生成するための WTBR レジスタ設定値は以下のようになります。 715 第 24 章 リアルタイムクロック 表 24.3-1 WTBR レジスタ設定値 (MB91461 の場合 ) 原発振 クロック (MHz) 原発振 クロック周期 (ns) 21 ビット プリスケーラ クロック周期 (µs) WTBR 設定値 (dec) WTBR 設定値 (hex) 9.00 111.11 1.78 281249 044AA1 10.00 100.00 1.60 312499 04C4B3 12.00 83.33 1.33 374999 05B8D7 14.00 71.43 1.14 437499 06ACFB 16.00 62.50 1.00 499999 07A11F 18.00 55.56 0.89 562499 089543 20.00 50.00 0.80 624999 098967 表 24.3-2 WTBR レジスタ設定値 (MB91F467R の場合 ) 716 原発振 クロック (MHz) 原発振 クロック周期 (ns) 21 ビット プリスケーラ クロック周期 (µs) WTBR 設定値 (dec) WTBR 設定値 (hex) 4 2.50 0.5 999999 0F423F 第 24 章 リアルタイムクロック ■ 時 / 分 / 秒レジスタ 図 24.3-2 時 / 分 / 秒レジスタ WTHR bit 31 30 29 28 27 26 25 24 − − − H4 H3 H2 H1 H0 リード / ライト (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (X) (X) (X) (X) (X) bit 23 22 21 20 19 18 17 16 − − M5 M4 M3 M2 M1 M0 リード / ライト (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 − − S5 S4 S3 S2 S1 S0 リード / ライト (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (X) (X) (X) (X) (X) (X) アドレス : 0004A8H WTMR アドレス : 0004A9H WTSR アドレス : 0004AAH − : 未使用ビット 時 / 分 / 秒レジスタは , 時間情報を格納します。時 / 分 / 秒の 2 進表記です。 本レジスタを読み出すと , カウンタ値のみを戻します。 レジスタは 3 バイト存在するため , 出力値に矛盾がないことを確認してください。つま り , 出力値「1 時間 , 59 分 , 59 秒」は「0 時間 , 59 分 , 59 秒」から「1 時間 , 0 分 , 0 秒」 への変化点 , あるいは「1 時間 , 59 分 , 59 秒」から「2 時間 , 0 分 , 0 秒」への変化点で ある可能性があります。 カウンタのオーバフローが発生したときに読出しを行うと , 誤った値を読み出すこと があります。このため , 読出しは RTC 割込みを使用するか , 以下の手順に従ってくだ さい。 1. RTC の割込みフラグ (INT) をクリア 2. レジスタ読出し 3. 読出し中にタイムオーバフローが発生し , 読出し後にフラグが設定された場合は再 度読出しを行ってください。 717 第 24 章 リアルタイムクロック 718 第 25 章 A/D コンバータ A/D コンバータの概要 , レジスタの構成 / 機能 , お よび動作について説明します。 25.1 A/D コンバータの概要 25.2 A/D コンバータのブロックダイヤグラム 25.3 A/D コンバータのレジスタ 25.4 A/D コンバータの動作 719 第 25 章 A/D コンバータ 25.1 A/D コンバータの概要 A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。 A/D コンバータの概要について説明します。 ● A/D コンバータの特長 A/D コンバータの特長は , 以下のとおりです。 • 変換時間 : 1 チャネルあたり最小 1.0 µS • サンプル & ホールド回路付き逐次比較変換方式を採用 • 10 ビットの分解能 (8/10 ビット切換え可能 ) • アナログ入力は 13 (MB91461)/ 16(MB91F467R) チャネル (MB91F467R は 16 チャネ ル ) からソフトウェアで選択できます。 • 変換モード • シングル変換モード :1 チャネルを選択変換 • スキャン変換モード : 連続した複数のチャネルを変換。最大 13/16 チャネルプログ ラム可能 • 連続変換モード : 指定チャネルを繰り返し変換 • 停止変換モード : 指定チャネルを変換後 , 一時停止して次の起動がかかるまで待機 ( 変換開始の同期が可能 ) 。 • 割込み要求 A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることが できます。 • 起動要因を選択可能 起動要因は , ソフト , 外部トリガ ( 立下りエッジ ) , または 16 ビットリロードタイマ 7 ( 立上りエッジ ) があります。 ● 入力インピーダンス A/D コンバータのサンプリング回路は次の等価回路で表されます。 図 25.1-1 入力インピーダンス アナログ 信号 Rext ANx Rin:最大1.9kΩ アナログSW (AVCC≧2.7V) Rext = Tsamp / (7×Cin ) - Rin 720 Cin:最大14.7pF A/Dコンバータ 第 25 章 A/D コンバータ A/D コンバータのブロックダイヤグラム 25.2 図 25.2-1 に , A/D コンバータのブロックダイヤグラムを示します。 ■ A/D コンバータのブロックダイヤグラム 図 25.2-1 A/D コンバータのブロックダイヤグラム AVRH/ AVCC AVRL AVSS D/Aコンバータ MPX 逐次比較レジスタ 比較器 デコーダ サンプル& ホールド回路 データレジスタ 内部データバス ・・・ AN12 AN13* AN14* AN15* 入力回路 AN0 A/D制御レジスタ0 A/D制御レジスタ1 ATGX端子 動作クロック 16ビットリロードタイマ7 CLKP プリスケーラ *: MB91F467Rのみ 721 第 25 章 A/D コンバータ 25.3 A/D コンバータのレジスタ A/D コンバータで使用するレジスタの構成および機能について説明します。 ■ A/D コンバータのレジスタ概要 A/D コンバータのレジスタには , 以下の 6 種類があります。 • アナログ入力許可レジスタ (ADER) • 制御ステータスレジスタ (ADCS) • データレジスタ (ADCR) • 変換時間設定レジスタ (ADCT) • 開始チャネル設定レジスタ (ADSC) • 終了チャネル設定レジスタ (ADEC) ■ レジスタ一覧 図 25.3-1 レジスタ一覧 ADERH ( 下位 ) bit 7 6 5 4 3 2 1 0 − − − − − − − − リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) bit 15 14 13 12 11 10 9 8 アドレス : 0001A1H ADERL ( 上位 ) アドレス : 0001A2H ADE15* ADE14* ADE13* ADE12 ADE11 ADE10 ADE9 ADE8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 アドレス : 0001A3H ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) bit 15 14 13 12 11 10 9 8 INT INTE PAUS STS1 STS0 STRT 予約 ADERL ( 下位 ) bit 7 ADCS1 アドレス : 0001A4H BUSY リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) *: MB91F467R のみ ( 続く ) 722 第 25 章 A/D コンバータ ( 続き ) ADCS0 bit 7 6 5 4 3 2 1 0 アドレス : 0001A5H MD1 MD0 S10 ACH4 ACH3 ACH2 ACH1 ACH0 リード / ライト (R/W) (R/W) (R/W) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) bit 15 14 13 12 11 10 9 8 − − − − − − D9 D8 リード / ライト (−) (−) (−) (−) (−) (−) (R) (R) 初期値 (−) (−) (−) (−) (−) (−) (X) (X) 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 CT5 CT4 CT3 CT2 CT1 CT0 ST9 ST8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (1) (0) (0) (0) (0) 6 5 4 3 2 1 0 ST7 ST6 ST5 ST4 ST3 ST2 ST1 ST0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (1) (0) (1) (1) (0) (0) bit 15 14 13 12 11 10 9 8 − − − − ANS3 ANS2 ANS1 ANS0 リード / ライト (−) (−) (−) (−) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 0 − − − − ANE3 ANE2 ANE1 ANE0 リード / ライト (−) (−) (−) (−) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) ADCR1 アドレス : 0001A6H ADCR0 bit 7 アドレス : 0001A7H ADCT1 アドレス : 0001A8H ADCT0 bit 7 アドレス : 0001A9H ADSCH アドレス : 0001AAH ADECH アドレス : 0001ABH 723 第 25 章 A/D コンバータ 25.3.1 アナログ入力許可レジスタ (ADER) アナログ入力に使用される端子に対応する ADER ビットに常に "1" を書き込んでく ださい。 ■ A/D 許可レジスタ (ADER) 図 25.3-2 A/D 許可レジスタ (ADER) のビット構成 ADERH ( 下位 ) bit 7 6 5 4 3 2 1 0 − − − − − − − − リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) bit 15 14 13 12 11 10 9 8 アドレス : 0001A1H ADERL ( 上位 ) アドレス : 0001A2H ADE15* ADE14* ADE13* ADE12 ADE11 ADE10 ADE9 ADE8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 6 5 4 3 2 1 0 アドレス : 0001A3H ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) ADERL ( 下位 ) bit 7 *: MB91F467R のみ [bit7 ∼ bit0] 予約ビット 予約ビットです。必ず "0" を設定してください。 [bit15 ∼ bit0] ADE15 ∼ ADE0: A/D 入力許可 (ADE15 ∼ ADE13 は MB91F467R のみサ ポート ) ADE 機能 0 汎用ポート [ 初期値 ] 1 アナログ入力 リセット時は "00000000H" に初期化されます。 開始チャネル , 終了チャネルのアナログ入力許可レジスタには必ず "1" を書いてく ださい。 724 第 25 章 A/D コンバータ A/D 制御ステータスレジスタ (ADCS) 25.3.2 A/D 制御ステータスレジスタ (ADCS) は , A/D コンバータの制御およびステータス表 示を行います。A/D 変換中には ADCS レジスタの更新を行わないでください。 ■ A/D 制御ステータスレジスタ 1 (ADCS1) 図 25.3-3 A/D 制御ステータスレジスタ 1 (ADCS1) のビット構成 ADCS1 bit 7 アドレス : 0001A4H BUSY 6 5 4 3 2 1 0 INT INTE PAUS STS1 STS0 STRT 予約 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) [bit7] BUSY : ビジーフラグおよび停止 BUSY 機能 読出し A/D コンバータ動作表示用のビットです。 A/D 変換起動でセットされて最終チャネルの変換終了でクリアされ ます。 書込み A/D 動作中に本ビットに "0" を書き込むと強制的にクリアされます。 連続 , 停止モード時の強制終了に利用します。 動作表示用のビットに "1" を書き込むことはできません。 リードモディファイライト (RMW) 系命令では "1" が読まれます。 単発モードでは設定された最終チャネルの A/D 変換終了でクリアされます。 連続 , 停止モードでは "0" 書込みで停止するまでクリアされません。 リセット時にこのビットは "0" に初期化されます。 <注意事項> 強制終了とソフト起動を同時に行わないでください (BUSY = 0, STRT = 1)。 725 第 25 章 A/D コンバータ [bit6] INT : 割込み 変換データが ADCR に書き込まれると設定されます。 bit5 (INTE) が "1" のときに本ビットが設定されると割込み要求が発生します。 クリアは "0" 書込みで行われます。 リセット時にこのビットは "0" に初期化されます。 DMA を使用した場合は DMA 転送終了時にこのビットはクリアされます。 <注意事項> INT ビットの "0" 書込みクリアは A/D 停止中に行ってください。 [bit5] INTE : 割込み許可 このビットは変換終了による割込みの許可・禁止を指定します。 INTE 機能 0 割込み禁止 [ 初期値 ] 1 割込み許可 リセット時にこのビットは "0" に初期化されます。 [bit4] PAUS : A/D 変換一時停止 A/D 変換動作が一時的に停止した場合に設定されます。 A/D 変換結果を格納するレジスタが 1 つのため , 連続で変換した場合 , 変換結果を DMA で転送しなければ前データが壊れてしまいます。 これを保護するためにデータレジスタの内容を DMA で転送しなければ次の変換 データが格納されないようになっています。この間 , A/D 変換動作は停止します。 DMA で転送を終了すると A/D は変換を再開します。 このビットは DMA を使用したときのみ有効です。 - このビットのクリアは "0" 書込みでのみ可能です (DMA 転送終了ではクリアされません ) 。 ただし , DMA 転送待ち状態のときはクリアできません。 - 変換データの保護機能に関しては「25.4 A/D コンバータの動作」を参照してくだ さい。 - リセット時にこのビットは "0" に初期化されます。 726 第 25 章 A/D コンバータ [bit3, bit2] STS1, STS0 : A/D 起動要因選択 リセット時にこれらのビットは "00B" に初期化されます。 このビットの設定により A/D 起動要因を選択します。 STS1 STS0 0 0 ソフト起動 [ 初期値 ] 0 1 外部端子トリガでの起動とソフト起動 1 0 16 ビットリロードタイマでの起動とソフト起動 1 1 外部端子トリガ , 16 ビットリロードタイマでの起動とソフ ト起動 機能 2 つ以上の起動要因が許されているモードでは最初に生じた要因により A/D 変換が 起動されます。 起動要因の設定は書き換えられると直ちに変わりますので , A/D 変換中に書き換え るときには注意してください。 - 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のと きに本ビットを書き換えて外部端子トリガ起動に設定するとA/Dが起動する場合 があります。 - 16 ビットリロードタイマ選択時は , 16 ビットリロードタイマ 7 出力が選択され , 16 ビットリロードタイマ出力の立上りエッジを検出します。 A/D の設定と 16 ビッ トリロードタイマ設定の順序については「第 19 章 16 ビットリロードタイマ」を 参照してください。 [bit1] STRT : 開始 このビットに "1" を書き込むことにより A/D を起動 ( ソフト起動 ) します。 再起動するときは , 再び "1" を書き込んでください。 リセット時にこのビットは "0" に初期化されます。 連続モード時および停止モード時は動作機能上 , 再起動しません。"1" を書き込む前 に BUSY ビットをチェックしてください (BUSY ビットをクリアしてから起動して ください ) 。 強制終了とソフト起動を同時に行わないでください (BUSY = 0, STRT = 1)。 [bit0] 予約ビット このビットには必ず "0" を設定してください。 727 第 25 章 A/D コンバータ ■ A/D 制御ステータスレジスタ 0 (ADCS0) 図 25.3-4 A/D 制御ステータスレジスタ 0 (ADCS0) のビット構成 ADCS0 bit 7 6 5 4 3 2 1 0 アドレス : 0001A5H MD1 MD0 S10 ACH4 ACH3 ACH2 ACH1 ACH0 リード / ライト (R/W) (R/W) (R/W) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) [bit7, bit6] MD1, MD0 : A/D 変換モード設定 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 の設定チャネルから変換されます。 • 単発 , 連続 , 停止の各モードでの再起動不可能はタイマ , 外部トリガ , ソフトすべ ての起動に適用されます。 728 第 25 章 A/D コンバータ [bit5] S10 このビットは変換の分解能を指定します。"0" に設定されると 10 ビットの A/D 変換 が行われます。その他の場合には 8 ビットの A/D 変換が行われてその結果は ADCR0 に記憶されます。 リセット時にこのビットは "0" に初期化されます。 [bit4 ∼ bit0] ACH4 ∼ ACH0 : アナログ変換選択チャネル これらのビットにより現在 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 0 1 AN15 ACH 機能 読出し A/D 変換 (BUSY ビット= 1) の間 , 現在の変換チャネルを本ビット 群で表します。 強制終了 (BUSY ビット= 0) により停止した場合は変換が停止さ れたチャネルを表します。 書込み これらのビットへの書込みは無効です。 729 第 25 章 A/D コンバータ 25.3.3 データレジスタ (ADCR1, ADCR0) データレジスタ (ADCR0, ADCR1) は , 変換の結果として生成されたデジタル値を記 憶するために使用されるものです。ADCR0 は下位 8 ビットを記憶し , ADCR1 は変 換結果の最上位の 2 ビットを記憶します。これらのレジスタ値は変換が完了するた びに書き換えられます。通常は最後の変換値がこのレジスタに記憶されます。 ■ データレジスタ (ADCR1, ADCR0) 図 25.3-5 データレジスタ (ADCR1, ADCR0) のビット構成 ADCR1 bit 15 14 13 12 11 10 9 8 − − − − − − D9 D8 リード / ライト (−) (−) (−) (−) (−) (−) (R) (R) 初期値 (−) (−) (−) (−) (−) (−) (X) (X) 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) アドレス : 0001A6H ADCR0 bit 7 アドレス : 0001A7H ADCR1 の bit15 ∼ bit10 からは常に "000000B" が読み出されます。 変換データの保護機能を利用することができます。 「25.4 A/D コンバータの動作」を参 照してください。 730 第 25 章 A/D コンバータ 変換時間設定レジスタ (ADCT) 25.3.4 A/D 変換時間設定レジスタ (ADCT) はアナログ入力のサンプリング時間および比較 時間を制御します。ADCT レジスタの設定で A/D の変換時間を設定します。 ADCT レジスタは A/D 変換動作中に書き換えないようにしてください。 ■ 変換時間設定レジスタ 図 25.3-6 変換時間設定レジスタのビット構成 ADCT1 bit 15 14 13 12 11 10 9 8 CT5 CT4 CT3 CT2 CT1 CT0 ST9 ST8 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (1) (0) (0) (0) (0) 6 5 4 3 2 1 0 ST7 ST6 ST5 ST4 ST3 ST2 ST1 ST0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (1) (0) (1) (1) (0) (0) アドレス : 0001A8H ADCT0 bit 7 アドレス : 0001A9H [bit15 ∼ bit10] CT5 ∼ CT0 : A/D 比較時間設定 これらのビットの設定により比較操作時間のクロック分周値を指定します。 CT5 ∼ CT0 の設定を "000001B" にすると分周なし= CLKP になります。 CT5 ∼ CT0 の設定を "000000B" には設定しないでください。 リセットによりこれらのビットは "000100B" に初期化されます。 比較操作時間 (Compare Time) = CT 設定値 × CLKP 周期 × 10 + (4 × CLKP 周期 ) <注意事項> 比較操作時間は 660ns 以上になるよう , CT5 ∼ CT0 を設定してください。 731 第 25 章 A/D コンバータ [bit9 ∼ bit0] ST9 ∼ ST0 : A/D 入力サンプリング時間設定 これらのビットの設定によりアナログ入力のサンプリング時間を指定します。 リセットによりこれらのビットは "0000101100B" に初期化されます。 A/D 変換に必要なサンプリング時間 ( 以下 , 必要サンプリング時間 ) は Rext の値に より決定しますので , 必要サンプリング時間以上になるような ST9 ∼ ST0 の設定が 必要です。 • 必要サンプリング時間の算出式 必要サンプリング時間 (Tsamp) = (Rext + Rin) × Cin × 7 • ST9 ∼ ST0 設定値の算出式 ST9 ∼ ST0 設定値 ≧ 必要サンプリング時間 (Tsamp) ÷ CLKP 周期 例 . CLKP = 18MHz, AVCC ≧ 3.0V, Rext = 15kΩ の場合 Tsamp = (15 × 103 + 1.9 × 103) × 14.7 × 10 − 12 × 7 = 1.74µs → ST = 1.74 × 10 − 6 ÷ (1/(18.0 × 106) ) = 31.3 → 32 ("0000100000B") 以上を 設定してください。 <注意事項> ST9 ∼ ST0 に 0000000000B, 0000000001B, 0000000010B は設定しないでください。 サンプリング時間は 400ns 以上になるように , Rext を決定してください。 ■ 推奨設定値 最適な変換時間を達成するために , 以下の設定値が推奨されます。 表 25.3-1 推奨設定値 CLKP (MHz) 比較操作時間 (CT5 ∼ CT0) サンプリング時間 (ST9 ∼ ST0) ADCT 設定値 変換時間 (µs) 9 000001B 0000001001B 0409H 1.56 + 1.00 = 2.56 18 000010B 0000010010B 0812H 1.33 + 1.00 = 2.33 (AVCC ≧ 3.0V, Rext ≦ 5.1kΩ) 732 第 25 章 A/D コンバータ 開始チャネル設定レジスタ (ADSCH) 終了チャネル設定レジスタ (ADECH) 25.3.5 A/D 変換の開始チャネルと終了チャネルの設定レジスタです。 ADSCH, ADECH は A/D 変換中に書き換えないでください。 ■ 開始チャネル設定レジスタ (ADSCH)・終了チャネル設定レジスタ (ADECH) 図 25.3-7 開始チャネル設定レジスタ (ADSCH)・終了チャネル設定レジスタ (ADECH) のビット構成 ADSCH bit 15 14 13 12 11 10 9 8 − − − ANS4 ANS3 ANS2 ANS1 ANS0 リード / ライト (−) (−) (−) (−) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) bit 7 6 5 4 3 2 1 0 − − − ANE4 ANE3 ANE2 ANE1 ANE0 リード / ライト (−) (−) (−) (−) (R/W) (R/W) (R/W) (R/W) 初期値 (−) (−) (−) (−) (0) (0) (0) (0) アドレス : 0001AAH ADECH アドレス : 0001ABH これらのビットにより A/D 変換の開始チャネルと終了チャネルを設定します。 同一のチャネルが ANS4 ∼ ANS0 および ANE4 ∼ ANE0 に書き込まれると , 変換は 1 つ のチャネルに対してのみ行われます ( シングルチャネル変換 ) 。 連続モード , 停止モードを設定している場合はこれらのビットで設定されたチャネル の変換が終わると ANS4 ∼ ANS0 で設定された開始チャネルに戻ります。 <注意事項> 開始チャネルと終了チャネルの関係は , 常に ANS ≦ ANE となるように設定してくださ い。ANS > ANE とした場合 , 動作は保証されません。 733 第 25 章 A/D コンバータ [bit12 ∼ bit8] ANS4 ∼ ANS0 : A/D 開始チャネル設定 [bit4 ∼ bit0] ANE4 ∼ ANE0 : A/D 終了チャネル設定 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 x x x x 設定禁止 <注意事項> A/D 開始チャネル設定 (ANS4, ANS3, ANS2, ANS1, ANS0) に開始チャネルを設定した後 に , 本レジスタのビットをリードモディファイライト (RMW) 系命令で設定しないでくだ さい。 ANS4, ANS3, ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換 チャネルが読み出されるため , ANS4, ANS3, ANS2, ANS1, ANS0 ビットに開始チャネル を設定した後に , 本レジスタのビットをリードモディファイライト (RMW) 系命令で設定 した場合 , ANE4, ANE3, ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。 734 第 25 章 A/D コンバータ 25.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" を書き込む→強制終了 ) 。強制終了を行うと変換は途中で止まっ てしまうため , 注意してください ( 強制終了した場合 , 変換レジスタには変換完了した 前データが格納されています ) 。 735 第 25 章 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 で設定されたものとなります。 このモードを使用することにより変換開始の同期をかけることが可能です。 736 第 26 章 サブクロックキャリブレー ションユニット MB91F467RA, MB91F467RB に搭載されているサ ブクロックキャリブレーションユニットについて 説明します。 26.1 概要 26.2 クロック 26.3 レジスタの説明 26.4 利用上の注意 737 第 26 章 サブクロックキャリブレーションユニット 26.1 概要 クロックキャリブレーションモジュールでは , 4MHz 発振クロックで 32kHz 発振ク ロックまたは 100kHz CR 発振クロックをキャリブレートすることができます。キャ リブレーションユニットの概要 , レジスタ , および利用時の注意点について説明しま す。 この機能は MB91461 には搭載されていません。 ■ 説明 MB91F467R を使用すると , 4MHz クロックで 32kHz クロック ( または 100kHz CR ク ロック ) で生成される時間を測定できます。 このハードウェアをソフトウェア処理とともに利用すると , 32kHz クロック ( または 100kHz CR クロック ) の精度を 4MHz クロックの精度に近づけることができます。ク ロックキャリブレーションモジュールの測定結果はソフトウェアで処理することがで き , リアルタイムクロックモジュールに必要な設定を取得できます。 このモジュールには , 32kHz クロック ( または 100kHz CR クロック ) および 4MHz ク ロックで動作する 2 種類のタイマがあります。32kHz(100kHz) タイマによって 4MHz タ イマが開始され , 4MHz タイマ結果値がレジスタに格納されます。レジスタに格納され た値は , 必要なリアルタイムクロックモジュールの設定を計算するため , 以降のソフト ウェア処理で使用されます。 738 第 26 章 サブクロックキャリブレーションユニット ■ ブロックダイヤグラム 図 26.1-1 キャリブレーションユニットのブロックダイヤグラム UC18CLK CLK4G CLK4G = OSC4 | ~STRT | (READY & ~RUNS); ゲート OSC4 STRT READY RUNS ゲート OSC32 STRT CLKPG ゲート CLKP 32kHz タイマ CLK32G RSLEEPB CLKPG2 CUTD ゲート UC18TRD 4MHz タイマ RUN カウンタ(16ビット) sync STRTS RSLEEPB STRT RUN async RST RUNS CUTR(24ビット) 32->4 CUTR UC18TRR & CLKPG2 = CLKP | (~STRT & RSLEEPB); READY READY STRT sync CLKP->32 async RST STRT STRT リセット STRT RB READY セット/リセット & INTEN RBB RB RUNSS1 RUNSS セット/リセット sync 4->CLKP RSLEEPB RSLEEP INT RMWB RMW セット READYPULSE リセット UC18BUS CUCR(3ビット) INT_I INT & INT_INT CUTR(24ビット) *_RDB *_RD *_WRB *_WR RSTB RST UC18IO CUTD(16ビット) CUTD UC18RBI FC18 739 第 26 章 サブクロックキャリブレーションユニット ■ タイミング 図 26.1-2 測定処理のタイミング 32 kHz STRT (CLKP) STRTS (32 kHz) RUN (32 kHz) RUNS (4 MHz) 32kHz カウンタ(16ビット) CUTD 4MHz カウンタ(24ビット) 古いCUTR 0 READY (32 kHz) READYPULSE (CLKP) INT (CLKP) 740 CUTD-1 2 1 0 CUTD 新しいCUTR 第 26 章 サブクロックキャリブレーションユニット 26.2 クロック モジュールは 3 種類のクロック 4MHz クロック OSC4, 32kHz クロック OSC32 (100kHz クロック OSC100) , および周辺クロック CLKP で動作します。異なるドメ インに対して動作するように同期化されます。 クロック周波数は , 以下の要件を満たす必要があります。 ■ クロック比 TOSC32/OSC100 > 2 × TOSC4 + 3 × TCLKP TOSC4 < 1/2 × TOSC32/OSC100 − 3/2 × TCLKP TCLKP < 1/3 × TOSC32/OSC100 − 2/3 × TOSC4 ■ 入力周波数 入力周波数は , 表 26.2-1 の値を超えないように設定してください。 表 26.2-1 最大動作周波数 最大 OSC32/OSC100 OSC4 CLKP 2MHz 10MHz 50MHz 表 26.2-2 要件 1 および 2 を満たす有効なクロック比の例 OSC32 OSC100 OSC4 CLKP 最大動作速度 2MHz 2MHz 10MHz 50MHz 通常動作 32kHz 100kHz 4MHz >2MHz 741 第 26 章 サブクロックキャリブレーションユニット 26.3 レジスタの説明 キャリブレーションユニットのレジスタを示し , 各レジスタの機能の詳細について 説明します。 ■ キャリブレーションユニット制御レジスタ (CUCR) bit 7 制御レジスタ ( 下位バイト ) アドレス : 0004B0H 読出し / 書込み → 初期値 → 6 5 4 3 2 − − − STRT − − (R) (0) (R) (0) (R) (0) (R/W) (0) 1 0 INT INTEN CUCRL (R) (R/W) (R/W) (R/W) (0) (0) (0) (0) ■ 32kHz/100kHz タイマデータレジスタ (CUTD) 32/100kHz タイマレジスタ ( 上位バイト ) bit 15 アドレス : 0004B2H 読出し / 書込み → 初期値 → 読出し / 書込み → 初期値 → 742 13 12 11 10 9 8 CUTDH (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (0) (0) (0) (0) (0) (0) (0) 32/100kHz タイマレジスタ ( 下位バイト ) bit 7 アドレス : 0004B3H 14 TDD15TDD14 TDD13 TDD12 TDD11TDD10 TDD9 TDD8 6 5 4 3 2 1 0 TDD7 TDD6 TDD5 TDD4 TDD3 TDD2 TDD1 TDD0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) CUTDL 第 26 章 サブクロックキャリブレーションユニット ■ 4MHz タイマデータレジスタ (CUTR1/CUTR2) 4MHz タイマレジスタ 1 ( 上位バイト ) bit 15 アドレス : 0004B4H 読出し / 書込み → 初期値 → 4MHz タイマレジスタ 1 ( 下位バイト ) bit アドレス : 0004B5H 読出し / 書込み → 初期値 → 14 13 12 11 10 9 8 − − − − − − − − (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 7 6 5 4 3 2 1 0 TDR23 TDR22 TDR21TDR20 TDR19 TDR18 TDR17 TDR16 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 4MHz タイマレジスタ 2 ( 下位バイト ) bit アドレス : 0004B7H 読出し / 書込み → 初期値 → (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 7 6 5 4 3 2 1 0 TDR7 TDR6 TDR5 TDR4 TDR3 TDR2 TDR1 TDR0 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) CUTR1L (R) (0) 4MHz タイマレジスタ 2 ( 上位バイト ) 14 13 12 11 10 9 8 bit 15 TDR15TDR14 TDR13 TDR12 TDR11TDR10 TDR9 TDR8 アドレス : 0004B6H 読出し / 書込み → 初期値 → CUTR1H CUTR2H CUTR2L (R) (0) 743 第 26 章 サブクロックキャリブレーションユニット 26.3.1 キャリブレーションユニット制御レジスタ (CUCR) 制御レジスタ (CUCR) には , 以下の機能があります。 • キャリブレーション測定の開始と停止 • 割込み許可と禁止 • キャリブレーション測定終了の表示 bit 制御レジスタ ( 下位バイト ) アドレス : 0004B1H 読出し / 書込み → 初期値 → 7 6 5 4 3 2 − − − STRT − − (R) (0) (R) (0) (R) (0) (R/W) (0) 1 0 INT INTEN CUCRL (R) (R/W) (R/W) (R/W) (0) (0) (0) (0) [bit0] INTEN : 割込み許可 0 割込み禁止 ( 初期値 ) 1 割込み許可 これは INT ビットに対応する割込み許可ビットです。このビットが "1" に設定され , ハードウェアによって INT ビットが設定されると , キャリブレーションモジュール は CPU に割込みを伝えます。INT ビット自体は , 割込み禁止 (INTEN = 0) の場合で も INTEN ビットから影響を受けず , ハードウェアによって設定されます。 [bit1] INT : 割込み 0 キャリブレーション実行中 / モジュール非アクティブ ( 初期値 ) 1 キャリブレーション完了 このビットは , キャリブレーションの終了を示しています。キャリブレーション開 始後に 32kHz/100kHz タイマがゼロになると , 4MHz タイマデータレジスタは最後の 4MHz タイマ値を格納し , INT ビットを "1" に設定します。 このビットに対する読出し‐修正‐書込み動作は読出し "1" となり , このビットに 対する書込み "0" によってこのフラグがクリアされます (INT = 0)。このビットに "1" を書き込んだ場合 , 影響はありません。 割込みフラグ INT は , ハードウェアでリセットされません。このため , ソフトウェ アでリセットした後に , 新しいキャリブレーションを開始します。このようにしな い場合 , キャリブレーション処理の終了は STRT ビットによってのみ信号化されま す (INT フラグはキャリブレーション中も "1" のままです ) 。 744 第 26 章 サブクロックキャリブレーションユニット [bit4] STRT : キャリブレーションの開始 0 キャリブレーションの停止 , モジュールのオフへの切換え ( 初期値 ) 1 キャリブレーションの開始 ソフトウェアで START ビットが "1" に設定されると , キャリブレーションが開始し ます。32kHz/100kHz タイマは 32kHz/100kHz タイマデータレジスタに格納された値 からカウントダウンを開始し , 4MHz タイマはゼロからカウントアップを開始しま す。 32kHz/100kHz タイマがゼロに達すると , STRT ビットはハードウェアによって "0" にリセットされます。 キャリブレーション処理時に , ソフトウェアでこのビットに "0" が書き込まれると , すぐにキャリブレーションは停止します。ソフトウェアによる "0" 書込みとハード ウェアによる "0" へのリセットが同時に発生した場合は , ソフトウェアよりもハー ドウェアの動作が優先されます。つまり , キャリブレーションが正常に終了し , INT ビットが "1" に設定されます。キャリブレーション中にこのビットに "1" を書き込 んだ場合 , 影響はありません。 745 第 26 章 サブクロックキャリブレーションユニット 26.3.2 32kHz/100kHz タイマデータレジスタ (16 ビット ) (CUTD) 32kHz/100kHz タイマデータレジスタ (CUTD) について説明します。 32kHz/100kHz タイマデータレジスタ (CUTD) は , キャリブレーションに要する時間を設 定する値を保持します (32kHz/100kHz リロード値 ) 。 図 26.3-1 32kHz/100kHz タイマデータレジスタ (16 ビット ) (CUTD) のビット構成 32/100kHz タイマレジスタ ( 上位バイト ) bit 15 アドレス : 0004B2H 14 13 12 11 10 9 8 TDD15TDD14 TDD13 TDD12 TDD11TDD10 TDD9 TDD8 CUTDH 読出し / 書込み → (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (0) (0) (0) (0) (0) (0) (0) 初期値 → 32/100kHz タイマレジスタ ( 下位バイト ) bit 7 アドレス : 0004B3H 読出し / 書込み → 初期値 → 6 5 4 3 2 1 0 TDD7 TDD6 TDD5 TDD4 TDD3 TDD2 TDD1 TDD0 CUTDL (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 32.768kHz 水晶が使用される場合 , 1 秒間の測定時間に対応するデフォルト値は 0x8000 になります。 このレジスタは , キャリブレーションが非アクティブ (STRT = 0) な場合にのみ書き込 まれます。 32kHz/100kHz タイマレジスタには , キャリブレーションに要する時間を指定する値が 格納されます。キャリブレーションが開始されると , この格納された値が 32kHz/100kHz タイマにロードされ , タイマがゼロに達するまでカウントダウンを行います。 CUTD が 0000 で初期化されるとアンダフローが発生し , 測定は (FFFFH + 1) × Tosc32/ Tosc100 になります。 32kHz/100kHz タイマは , 32kHz または 100kHz 発振クロックで動作します。 32kHz 発振子で 1 秒の測定時間を得るために , CUTD レジスタは , 8000H = 32768 dec. でロードする必要があります。この数字は , 正確な水晶発振周波数 Fosc = 32768 Hz に よるものです。以下の表に , 測定結果の理想値 (4.00 MHz 水晶が使用されている場合 ) を示します。 100kHz 発振子で 1 秒の測定時間を得るために , CUTD レジスタは , C350H = 50000 dec. でロードする必要があります。この数字は , 正確な水晶発振周波数 Fosc = 100000 Hz に よるものです。以下の表に , 測定結果の理想値 (4.00 MHz 水晶が使用されている場合 ) を示します。 746 第 26 章 サブクロックキャリブレーションユニット 表 26.3-1 32kHz : 測定時間別の測定結果の理想値 キャリブレーションに 要する時間 CUTD 値 CUTR 値 2s 0000H 7A1200H 1.75 s E000H 6ACFC0H 1.5 s C000H 5B8D80H 1.25 s A000H 4C4B40H 1s 8000H 3D0900H 0.75 s 6000H 2DC6C0H 0.5 s 4000H 1E8480H 0.25 s 2000H 0F4240H STRT ビットに "1" を書き込んでから STRT がハードウェアによってリセットされるま での処理全体に要する時間は , さまざまなクロックドメイン間の同期のため , 実際の キャリブレーションの測定時間よりも長くなります。処理時間 < (CUTD + 3) × Tosc32 キャリブレーション測定時間は CUTD × Tosc32 です。 表 26.3-2 100kHz : 測定時間別の測定結果の理想値 キャリブレーションに 要する時間 CUTD 値 CUTR 値 0.5 s C350H 1E8480H 0.25 s 61A8H 0F4240H 0.125 s 30D4H 07A120H 0.1 s 2710H 061A80H STRT ビットに "1" を書き込んでから STRT がハードウェアによってリセットされるま での処理全体に要する時間は , さまざまなクロックドメイン間の同期のため , 実際の キャリブレーションの測定時間よりも長くなります。処理時間 < (CUTD + 3) × Tosc100 キャリブレーション測定時間は CUTD × Tosc100 です。 747 第 26 章 サブクロックキャリブレーションユニット 4MHz タイマデータレジスタ (24 ビット ) (CUTR) 26.3.3 タイマデータレジスタ (CUTR) は , キャリブレーション結果の値を保持します (4MHz カウンタ ) 。 図 26.3-2 4MHz タイマデータレジスタ (24 ビット ) (CUTR) のビット構成 4MHz タイマレジスタ 1 ( 上位バイト ) bit 15 アドレス : 0004B4H 読出し / 書込み → 初期値 → 14 13 12 11 10 9 8 − − − − − − − − (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 6 5 4 3 2 1 0 4MHz タイマレジスタ 1 ( 下位バイト ) bit 7 アドレス : 0004B5H 読出し / 書込み → 初期値 → TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 4MHz タイマレジスタ 2 ( 上位バイト ) bit 15 14 13 12 11 10 9 8 アドレス : 0004B6H 読出し / 書込み → 初期値 → TDR15TDR14 TDR13 TDR12 TDR11TDR10 TDR9 TDR8 (R) (0) 4MHz タイマレジスタ 2 ( 下位バイト ) bit 7 アドレス : 0004B7H 読出し / 書込み → 初期値 → (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 6 5 4 3 2 1 0 TDR7 TDR6 TDR5 TDR4 TDR3 TDR2 TDR1 TDR0 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) CUTR1H CUTR1L CUTR2H CUTR2L (R) (0) 4MHz タイマデータレジスタには , キャリブレーションの結果が格納されます。キャリ ブレーションを開始すると , 4MHz タイマがゼロからカウントアップを始めます。 32kHz/100kHz タイマがゼロに達すると , ソフトウェアによって次のキャリブレーショ ンが開始されるまで 4MHz タイマはカウントを停止し , レジスタがキャリブレーショ ン結果を保持します。 キャリブレーション中のこのレジスタの読出しはランダムな値になります。 キャリブレーションの終了は , CUCR レジスタの INT ビットおよび START ビットによ り示されます。これらのビットがそれぞれ "0" から "1", "1" から "0" になると , CUTR の値が有効になります。 ソフトウェアによってこのレジスタに書き込んだ場合 , 影響はありません。 4MHz タイマは , 4MHz 発振クロックで動作します。 <注意事項> キャリブレーション中のこのレジスタの読出しはランダムな値になります。 キャリブレーションの終了は , CUCR レジスタの INT ビットおよび STRT ビットにより示 されます。 INTとSTRTがそれぞれ"0"から"1", "1"から"0"に変更になると, CUTR値が有効になります。 748 第 26 章 サブクロックキャリブレーションユニット 26.4 利用上の注意 キャリブレーションの精度 , 電力損失 , および測定時間に関する注意点について説明 します。 ■ 32kHz タイマデータレジスタの設定 32kHz タイマデータレジスタの設定は , 以下のようにして計算できます。 キャリブレーションに要する時間が 1 秒であるとすると , 32kHz タイマデータレジスタ を 8000H = 32768 に設定する必要があり , これは 32.768kHz 発振クロックの 32,768 パ ルスを表します。 この設定は , 4MHz タイムデータレジスタの 3D0900H の格納値になります。この値は , 4MHz 発振器の 4,000,000 パルスを表します。 ■ 100kHz タイマデータレジスタの設定 100kHz タイマデータレジスタの設定は , 以下のようにして計算できます。 キャリブレーションに要する時間が 0.5 秒であるとすると , 100kHz タイマデータレジ スタを C350H = 50000 に設定する必要があり , これは 100kHz 発振クロックの 50,000 パルスを表します。 この設定は , 4MHz タイムデータレジスタの 1E8480H の格納値になります。この値は , 4MHz 発振器の 2,000,000 パルスを表します。 表 26.4-1 32.768kHz および 4.0MHz 発振器での理想測定結果 (CUTR) キャリブレーションに 要する時間 CUTD 値 CUTR 値 2s 0000H 7A1200H 1.75 s E000H 6ACFC0H 1.5 s C000H 5B8D80H 1.25 s A000H 4C4B40H 1s 8000H 3D0900H 0.75 s 6000H 2DC6C0H 0.5 s 4000H 1E8480H 0.25 s 2000H 0F4240H キャリブレーションモジュールを使用する上で重要となるのは , 電力損失およびキャ リブレーションの精度です。 749 第 26 章 サブクロックキャリブレーションユニット 表 26.4-2 100kHz および 4.0MHz 発振器での理想測定結果 (CUTR) キャリブレーションに 要する時間 CUTD 値 CUTR 値 0.5 s C350H 1E8480H 0.25 s 61A8H 0F4240H 0.125 s 30D4H 07A120H 0.1 s 2710H 061A80H キャリブレーションモジュールを使用する上で重要となるのは , 電力損失およびキャ リブレーションの精度です。 ■ 精度 キャリブレーションの精度は , 4MHz タイマで使用するクロック周波数およびキャリブ レーションに要する時間によって異なります。 4MHz タイマの最大誤差は , ± 1 ディジッ トです。クロック周波数が 4MHz で , キャリブレーションに要する時間が 1 秒の場合 , 達 成される精度は以下のようにして計算できます。 0.25 µs ( クロックサイクルタイム ) /1 秒 ( 所要時間 ) = 0.25ppm 通常は , 以下のとおりです。 精度=(4MHzタイマのクロックサイクルタイム) / (キャリブレーションに要する時間) ■ 電力損失 実行モードにおける現在の消費 IRUN は , RTC モードの消費 IRTC の 20 倍であると仮定 します (IRUN = 20 × IRTC)。 毎分キャリブレーション測定が発生するよう , ソフトウェアによって RTC モードから MCU が発生し , キャリブレーションに要する時間が 1 秒に設定された場合 , 電力損失 の増加は 20 × IRTC/60 = 1/3 × IRTC になります。 このため , ソフトウェアで , 電力損失の増加がシステム要件によるハードウェア制限に 影響を与えないようにする必要があります。たとえば , 最小頻度でキャリブレーション を発生するようソフトウェアを設計します。 一般的には , 電力損失の理論上の増加が MCU の RTC モードで 5% 以下になるように することをお勧めします。 ■ 測定限度 32kHz/100kHz タイマが 32kHz クロックで動作している場合 , キャリブレーションに要 する時間の限度は約 2 秒です (100kHz で動作している場合は , 0.5 秒 ) 。一方 , 4MHz タ イマは 4MHz で動作している場合は , 4 秒まで測定することができます。 750 第 27 章 フラッシュメモリ 内蔵フラッシュメモリの使用について説明します。 27.1 概要 27.2 アクセスモード 27.3 自動アルゴリズム 27.4 注意事項 751 第 27 章 フラッシュメモリ 27.1 概要 フラッシュメモリの概要について説明します。 MB91F467R には , 内蔵フラッシュメモリがあります。このメモリの容量は 1024K バイ ト+ 64K バイトです。このメモリには , 単一+ 3.3V 電源を使用して全セクタの一括消 去またはセクタレベルでの消去を行ったり , ハーフワード (16 ビット ) およびワード (32 ビット ) レベルで FR-CPU による書込みを行う機能があります。 ■ フラッシュメモリの特長 • 容量 : 1024K バイト+ 64K バイト • 電力 : 1.8V/ + 3.3V 電源 • 基本仕様 : MBM29LV400TC と同じ ( サイズおよびセクタ構成の一部は異なる ) • 追加仕様 : ダブルワード (64 ビット ) レベルでのコマンド / データ読出しによる , よ り高速なデバイス動作 • 外部書込み : パラレルフラッシュプログラマのインタフェースを使用できます。 • 動作モード : (1) 64 ビット CPU モード : CPU は , ワード (32 ビット ) 長単位でプログラムを読み出し , 実行します。 フラッシュ書込みはできません。 実際のフラッシュメモリアクセスは , ダブルワード長 (64 ビット ) 単位で実行され ます。 (2) 32 ビット CPU モード : CPUは, ワード (32ビット) 長単位でプログラムを読み出し, 書き込み, 実行します。 実際のフラッシュメモリアクセスは , ワード長 (32 ビット ) 単位で実行されます。 (3) 16 ビット CPU モード : CPU は , ハーフワード (16 ビット ) 長単位で読み出し , 書き込みます。 フラッシュからプログラムを実行することはできません。 実際のフラッシュメモリアクセスは , ワード長 (16 ビット ) 単位で実行されます。 (4) フラッシュメモリモード ( フラッシュメモリへの外部アクセス許可 ) • 特長 (フラッシュメモリマクロとFR-CPUインタフェース回路の組合せによる) : - CPU プログラム / データの格納メモリとして機能します。 - 32 ビットバス幅でアクセスできます。 - CPUによる読出し/書込み/消去が可能です (自動プログラムアルゴリズム *) 。 - MBM29LV400TCスタンドアロンフラッシュメモリ製品と同様に機能します。 - パラレルフラッシュプログラマによる読出し / 書込み / 消去が可能です ( 自動 プログラムアルゴリズム *) 。 * : 自動プログラムアルゴリズム= Embedded AlgorithmTM 752 第 27 章 フラッシュメモリ ■ フラッシュメモリの構成 図 27.1-1 ブロック図 CPU フラッシュインタフェース CPU CPUコア 制御信号 フラッシュメモリ 制御信号 制御信号 アドレス A0~A20 A0~A20 データ DQ0~DQ63 DQ0~DQ63 制御信号 フラッシュ ライタによる アドレス インタフェース (フラッシュ モードの場合) データ 753 第 27 章 フラッシュメモリ ■ CPU モードでの構成 表 27.1-1 アドレスマップ (FR-CPU からアクセスする場合はセクタアドレス ) セクタアドレス アドレスの範囲 (8 ずつ増加 ) 対応する bit 位置 SA7 0014C004H ∼ 0014FFFCH bit31 ∼ bit0 8K バイト SA6 0014C000H ∼ 0014FFF8H bit31 ∼ bit0 8K バイト SA5 00148004H ∼ 0014BFFCH bit31 ∼ bit0 8K バイト SA4 00148000H ∼ 0014BFF8H bit31 ∼ bit0 8K バイト SA3 00144004H ∼ 00147FFCH bit31 ∼ bit0 8K バイト SA2 00144000H ∼ 00147FF8H bit31 ∼ bit0 8K バイト SA1 00140004H ∼ 00143FFCH bit31 ∼ bit0 8K バイト SA0 00140000H ∼ 00143FF8H bit31 ∼ bit0 8K バイト SA23 00120004H ∼ 0013FFFCH bit31 ∼ bit0 64K バイト SA22 00120000H ∼ 0013FFF8H bit31 ∼ bit0 64K バイト SA21 00100004H ∼ 0011FFFCH bit31 ∼ bit0 64K バイト SA20 00100000H ∼ 0011FFF8H bit31 ∼ bit0 64K バイト SA19 000E0004H ∼ 000FFFFCH bit31 ∼ bit0 64K バイト SA18 000E0000H ∼ 000FFFF8H bit31 ∼ bit0 64K バイト SA17 000C0004H ∼ 000DFFFCH bit31 ∼ bit0 64K バイト SA16 000C0000H ∼ 000DFFF8H bit31 ∼ bit0 64K バイト SA15 000A0004H ∼ 000BFFFCH bit31 ∼ bit0 64K バイト SA14 000A0000H ∼ 000BFFF8H bit31 ∼ bit0 64K バイト SA13 00080004H ∼ 0009FFFCH bit31 ∼ bit0 64K バイト SA12 00080000H ∼ 0009FFF8H bit31 ∼ bit0 64K バイト SA11 00060004H ∼ 0007FFFCH bit31 ∼ bit0 64K バイト SA10 00060000H ∼ 0007FFF8H bit31 ∼ bit0 64K バイト SA9 00040004H ∼ 0005FFFCH bit31 ∼ bit0 64K バイト SA8 00040000H ∼ 0005FFF8H bit31 ∼ bit0 64K バイト セクタ容量 フラッシュメモリのアドレスマッピングは , FR-CPU またはパラレルフラッシュプログ ラマのいずれからのアクセスかによって異なります。 「■ CPU モードからフラッシュプ ログラミングモードへのアドレス変換」を参照してください。 754 第 27 章 フラッシュメモリ 図 27.1-2 アドレスマップ (FR-CPU からアクセスする場合 ) CPU モード アドレス (addr) 0014:FFFFH 0014:C000H 0014:BFFFH 0014:8000H 0014:7FFFH 0014:4000H 0014:3FFFH 0014:0000H 0013:FFFFH 0012:0000H 0011:FFFFH 0010:0000H 000F:FFFFH 000E:0000H 000D:FFFFH 000C:0000H 000B:FFFFH 000A:0000H 0009:FFFFH 0008:0000H 0007:FFFFH 0006:0000H 0005:FFFFH 0004:0000H SA6 (8K バイト ) SA7 (8K バイト ) SA4 (8K バイト ) SA5 (8K バイト ) SA2 (8K バイト ) SA3 (8K バイト ) SA0 (8K バイト ) SA1 (8K バイト ) SA22 (64K バイト ) SA23 (64K バイト ) SA20 (64K バイト ) SA21 (64K バイト ) SA18 (64K バイト ) SA19 (64K バイト ) SA16 (64K バイト ) SA17 (64K バイト ) SA14 (64K バイト ) SA15 (64K バイト ) SA12 (64K バイト ) SA13 (64K バイト ) SA10 (64K バイト ) SA11 (64K バイト ) SA8 (64K バイト ) SA9 (64K バイト ) addr + 0 addr + 1 addr + 2 addr + 3 addr + 4 addr + 5 addr + 6 addr + 7 16 ビット書込みモード 32 ビット書込みモード dat[31:16] dat[15:0] dat[31:0] dat[31:16] dat[15:0] dat[31:0] 755 第 27 章 フラッシュメモリ ■ フラッシュメモリモードでの構成 表 27.1-2 セクタアドレス ( パラレルフラッシュプログラマからアクセスする場合 ) アドレスの範囲 FA[20:0] 対応する bit 位置 SA23 1F0000H ∼ 1FFFFFH bit31 ∼ bit0 64K バイト SA22 1E0000H ∼ 1EFFFFH bit31 ∼ bit0 64K バイト SA21 1D0000H ∼ 1DFFFFH bit31 ∼ bit0 64K バイト SA20 1C0000H ∼ 1CFFFFH bit31 ∼ bit0 64K バイト SA19 1B0000H ∼ 1BFFFFH bit31 ∼ bit0 64K バイト SA18 1A0000H ∼ 1AFFFFH bit31 ∼ bit0 64K バイト SA17 190000H ∼ 19FFFFH bit31 ∼ bit0 64K バイト SA16 180000H ∼ 18FFFFH bit31 ∼ bit0 64K バイト SA15 170000H ∼ 17FFFFH bit31 ∼ bit0 64K バイト SA14 160000H ∼ 16FFFFH bit31 ∼ bit0 64K バイト SA13 150000H ∼ 15FFFFH bit31 ∼ bit0 64K バイト SA12 140000H ∼ 14FFFFH bit31 ∼ bit0 64K バイト SA11 130000H ∼ 13FFFFH bit31 ∼ bit0 64K バイト SA10 120000H ∼ 12FFFFH bit31 ∼ bit0 64K バイト SA9 110000H ∼ 11FFFFH bit31 ∼ bit0 64K バイト SA8 100000H ∼ 10FFFFH bit31 ∼ bit0 64K バイト SA7 0FE000H ∼ 0FFFFFH bit31 ∼ bit0 8K バイト SA6 0FC000H ∼ 0FDFFFH bit31 ∼ bit0 8K バイト SA5 0FA000H ∼ 0FBFFFH bit31 ∼ bit0 8K バイト SA4 0F8000H ∼ 0F9FFFH bit31 ∼ bit0 8K バイト SA3 0F6000H ∼ 0F7FFFH bit31 ∼ bit0 8K バイト SA2 0F4000H ∼ 0F5FFFH bit31 ∼ bit0 8K バイト SA1 0F2000H ∼ 0F3FFFH bit31 ∼ bit0 8K バイト SA0 0F0000H ∼ 0F1FFFH bit31 ∼ bit0 8K バイト セクタアドレス セクタ容量 フラッシュメモリのアドレスマッピングは , FR-CPU またはパラレルフラッシュプログ ラマのいずれからのアクセスかによって異なります。 「■ CPU モードからフラッシュプ ログラミングモードへのアドレス変換」を参照してください。 756 第 27 章 フラッシュメモリ 図 27.1-3 アドレスマップ ( パラレルフラッシュプログラマからアクセスする場合 ) フラッシュプログラムモード ] アドレス (FA)[20:0] 1F:FFFFH SA23 (64K バイト ) 1F:C000H 1E:BFFFH SA22 (64K バイト ) 1E:8000H 1D:7FFFH SA21 (64K バイト ) 1D:4000H 1C:3FFFH SA20 (64K バイト ) 1C:0000H 1B:FFFFH SA19 (64K バイト ) 1B:0000H 1A:FFFFH SA18 (64K バイト ) 1A:0000H 19:FFFFH SA17 (64K バイト ) 19:0000H 18:FFFFH SA16 (64K バイト ) 18:0000H 17:FFFFH SA15 (64K バイト ) 17:0000H 16:FFFFH SA14 (64K バイト ) 16:0000H 15:FFFFH SA13 (64K バイト ) 15:0000H 14:FFFFH SA12 (64K バイト ) 14:0000H 13:FFFFH SA11 (64K バイト ) 13:C000H 12:FFFFH SA10 (64K バイト ) 12:8000H 11:FFFFH SA9 (64K バイト ) 11:4000H 10:FFFFH SA8 (64K バイト ) 10:0000H 0F:FFFFH SA7 (8K バイト ) 0F:E000H 0F:DFFFH SA6 (8K バイト ) 0F:C000H 0F:BFFFH SA5 (8K バイト ) 0F:A000H 0F:9FFFH SA4 (8K バイト ) 0F:8000H 0F:7FFFH SA3 (8K バイト ) 0F:6000H 0F:5FFFH SA2 (8K バイト ) 0F:4000H 0F:3FFFH SA1 (8K バイト ) 0F:2000H 0F:1FFFH SA0 (8K バイト ) 0F:0000H 16 ビット書込みモード 8 ビット書込みモード FA[1:0]=0x FA[1:0]=1x DQ[15:0] DQ[15:0] FA[1:0]=00 FA[1:0]=01 FA[1:0]=10 FA[1:0]=11 DQ[7:0] DQ[7:0] DQ[7:0] DQ[7:0] 757 第 27 章 フラッシュメモリ ■ CPU モードからフラッシュプログラミングモードへのアドレス変換 以下の式を使用して , CPU モードアドレス (addr) からフラッシュプログラミングモー ドアドレス (FA) を算出します。 SA0, SA2, SA4, SA6 (140000H ≤ addr ≤ 14FFFFH; addr[2] = 0): FA = addr − addr%004000H + (addr%004000H)/2 − (addr/2)%4 + addr%4 − 050000H SA1, SA3, SA5, SA7 (140000H ≤ addr ≤ 14FFFFH; addr[2] = 1): FA = addr − addr%004000H + (addr%004000H)/2 − (addr/2)%4 + addr%4 − 04E000H SA8, SA10, SA12, SA14, SA16, SA18, SA20, SA22 (040000H ≤ addr ≤ 13FFFFH; addr[2] = 0): FA = addr − addr%020000H + (addr%020000H)/2 − (addr/2)%4 + addr%4 + 0C0000H SA9, SA11, SA13, SA15, SA17, SA19, SA21, SA23 (040000H ≤ addr ≤ 13FFFFH; addr[2] = 1): FA = addr − addr%020000H + (addr%020000H)/2 − (addr/2)%4 + addr%4 + 0D0000H 758 第 27 章 フラッシュメモリ 27.2 アクセスモード フラッシュメモリアクセスモードについて説明します。 759 第 27 章 フラッシュメモリ 27.2.1 FR-CPU からのアクセス FR-CPU からのアクセスモード 3 種類について説明します。 以下の 3 種類のアクセスモードを使用することができます。 ■ 64 ビット CPU モード ( 読出し / 実行 ) このモードでは , データの消去 / 書込みはできません。CPU からの読出しは 32 ビット 幅で行われますが , 実際に FLASH メモリからの読出しは 64 ビット幅で読み出されて います。 このモードが有効な場合 , フラッシュメモリからのプログラム実行ができます。 • モードの指定 このモードを設定する場合は , FLASH 上のプログラムからは設定しないでくださ い。 RAM 上に配置されたプログラムから設定してください。 • 動作説明 フラッシュメモリ領域からコードを読み出したり , 実行すると , データは CPU に よってワード (32 ビット ) 長単位で読み出されますが , 実際には , メモリから D ワー ド (64 ビット ) 長単位で読み出されます。自動アルゴリズムを実行することはでき ません。 ■ 32 ビット CPU モード ( 読出し / 書込み / 実行 ) このモードでは , データ消去 / 書込みが可能です。FLASH からの読出しはワード長 (32 ビット ) でのみ行われます。 フラッシュへの書込みや消去が行われている場合は , フラッシュメモリ上でプログラ ムを実行できません。 • モードの指定 このモードへの移行は RAM 上のプログラムで行ってください。( リセット後はこの モードとなります ) • 動作説明 フラッシュメモリ領域からコードを読み出したり , 実行すると , データはワード (32 ビット ) 長単位でメモリから読み出されます。 自動アルゴリズムは , フラッシュメモリにコマンドを書き込むことによって実行で きます。自動アルゴリズムを実行して , フラッシュメモリの消去 / 書込みを行うこ とができます。自動アルゴリズムについては , 「27.3 自動アルゴリズム」を参照し てください。 760 第 27 章 フラッシュメモリ ■ 16 ビット CPU モード ( 読出し / 書込み ) このモードでは , データ消去 / 書込みが可能です。FLASH からの読出しはハーフワー ド長 (16 ビット ) でのみ行われます。 このモードが有効な場合 , フラッシュメモリでプログラムを実行することはできませ ん。 • モードの指定 このモードへの移行は RAM 上のプログラムで行ってください。 • 動作説明 フラッシュメモリ領域から読み出すと , データはハーフワード (16 ビット ) 長単位で メモリから読み出されます。 自動アルゴリズムは , フラッシュメモリにコマンドを書き込むことによって実行で きます。自動アルゴリズムを実行して , フラッシュメモリの消去 / 書込みを行うこ とができます。自動アルゴリズムについては , 「27.3 自動アルゴリズム」を参照し てください。 761 第 27 章 フラッシュメモリ 27.2.2 フラッシュメモリモード フラッシュメモリモードの使用方法について説明します。 MD3, MD2, MD1, および MD0 端子を "0", "1", "1", および "1" に設定した後にリセット すると , CPU 機能が停止します。このとき , フラッシュメモリのインタフェース回路に は , ポートの一部の信号をフラッシュメモリユニットの制御信号に直接リンクして , 外 部端子からフラッシュメモリユニットを直接制御できるようにする機能があります。こ のモードでは, フラッシュメモリが外部端子からはスタンドアロンユニットに見えます。 このモードは , 通常 , パラレルフラッシュプログラマを使用した書込み / 消去時に設定 します。このモードでは , フラッシュメモリの自動アルゴリズムの動作をすべて使用で きます。 表 27.2-1 MBM29LV400TC とフラッシュメモリ制御信号の対応 MB91F467R 外部端子 MBM29LV400TC 外部端子 FR-CPU モード − フラッシュメモリ モード 通常の機能 端子番号 INIT − INITX 131 RESET − FRSTX P13_2 10 − − MD3 MD3 127 − − MD2 MD2 128 − − MD1 MD1 129 − − MD0 MD0 130 RY/BY FMCS:RDY ビット RY/BY P09_4 15 BYTE 内部的に "H" に固定 BYTEX P13_1 9 WEX P09_3 16 OEX P09_2 17 CEX P09_1 18 A-1, A0 ∼ A2 FA0 ∼ FA3 P17_4 ∼ P17_7 93 ∼ 96 A3 ∼ A13 FA4 ∼ FA14 P29_0 ∼ P29_7 P28_0 ∼ P28_2 98 ∼ 108 A14 ∼ A18 FA15 ∼ FA19 P28_3 ∼ P28_7 109 ∼ 113 A19 ∼ A20 FA20 ∼ FA21 P22_4 ∼ P22_5 117 ∼ 118 D0 ∼ D15 P10_0 ∼ P10_6 P08_0 ∼ P08_1 P08_4 ∼ P08_7 P11_1 ∼ P11_0 P09_0 35 ∼ 29 27 ∼ 19 WE OE CE 内部制御信号 +インタフェース 回路による制御 内部アドレスバス DQ0 ∼ DQ15 762 内部データバス 第 27 章 フラッシュメモリ 自動アルゴリズム 27.3 フラッシュメモリへの書込みおよび消去は , フラッシュメモリ自体の自動アルゴリ ズムを起動して行います。 ■ コマンド動作 自動アルゴリズムを起動するには , 1 ∼ 6 のハーフワード (16 ビット ) をフラッシュメ モリに連続して書き込みます。これは「コマンド」と呼ばれます。不正なアドレスと データを書き込んだり , 誤った順番でアドレスとデータを書き込むと , フラッシュメモ リは読出しモードにリセットされます。 表 27.3-1 CPU モードのコマンドの一覧 コマンド シーケンス バス ライト サイクル 1st バス ライトサイクル アドレス 2nd バス ライトサイクル データ アドレス データ 3rd バス ライトサイクル 4th バス 読出し / ライト サイクル 5th バス ライトサイクル アドレス データ アドレス データ アドレス 6th バス ライトサイクル データ アドレス データ 読出し / リセット 1 *XXXXH F0H --- --- --- --- --- --- --- --- --- --- 読出し / リセット 4 *x557H AAH *yAAFH 55H *x557H F0H RA RD --- --- --- --- 書込み 4 *x557H AAH *yAAFH 55H *x557H A0H PA PD --- --- --- --- チップ消去 6 *x557H AAH *yAAFH 55H *x557H 80H *x557H AAH *yAAFH 55H *x557H 10H セクタ消去 6 *x557H AAH *yAAFH 55H *x557H 80H *x557H AAH *yAAFH 55H SA 30H アドレス= "*XXXXH", データ= "B0H" を入力して , セクタ消去時に消去を一時停止します。 セクタ消去一時停止 アドレス= "*XXXXH", データ= "30H" を入力して , セクタ消去一時停止後に消去を再開します。 セクタ消去再開 連続モード 3 *x557H AAH *yAAFH 55H *x557H 20H --- --- --- --- --- --- 連続書込み 2 *XXXXH A0H PA PD --- --- --- --- --- --- --- --- 連続モード リセット 2 *XXXXH 90H *XXXXH F0H または 00H --- --- --- --- --- --- --- --- ワードモードとハーフワードモードのコマンドは同じです。データは , 指定ビット以外で設定できます。 RA : 読出しアドレス PA : 書込みアドレス SA : セクタアドレス ( セクタ内のアドレスを指定 ) RD : 読出しデータ PD : 書込みデータ *: "0004H", "0005H", "0006H", "0007H", "0008H", "0009H", "000AH", "000BH", "000CH", "000DH", "000EH", "000FH", "0010H", "0011H", "0012H", "0013H", または "0014H" x : 16 進奇数桁 : "1H", "3H", "5H", "7H", "9H", "BH", "DH", または "FH" y : 16 進偶数桁 : "0H", "2H", "4H", "6H", "8H", "AH", "CH", または "EH" • 自動アルゴリズム実行状態 自動アルゴリズムがCPUモードで開始された場合は, ,内部レディ信号 (RDY) によっ て自動アルゴリズムの動作状態を確認することができます。このレディ信号のレベ ルは , フラッシュメモリ制御ステータスレジスタの "RDY" ビットから読み出すこと ができます。 763 第 27 章 フラッシュメモリ "RDY" ビットが "0" に設定されていると , データ読出しは , フラッシュメモリ状態を 示すハードウェアシーケンスフラグとなります ((3) および (4) のハードウェアシー ケンスを参照 ) 。 764 第 27 章 フラッシュメモリ 27.3.1 自動アルゴリズムのコマンド 自動アルゴリズムのコマンドについて説明します。 ■ 読出し / リセットコマンド 読出し / リセットコマンドシーケンスを発行すると , タイミングリミット超過後に読出 しモードに復帰できます。データは読出しサイクルでフラッシュメモリから読み出さ れます。フラッシュメモリは , ほかのコマンドが入力されるまで読出し状態を保ちま す。 電源を投入すると , フラッシュメモリは自動的に読出し / リセットに設定されます。こ の場合 , データ読出しにコマンドは必要ありません。 ■ プログラム ( 書込み ) CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書 込みは , 4 回のバス動作で行われます。2 つのアンロックサイクルの後に , 書込みセッ トアップコマンドと書込みデータサイクルが続きます。その後 , 最終ライトサイクルで メモリへの書込みが開始されます。 自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上の 外部よりの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適切 な書込みパルスを発生し, 書き込まれたセルのマージンを検証します。 bit7データがデー タポーリングを介してこのビットに書き込まれたデータと一致すると , 自動 Write 動作 が終了します (「 (3) ハードウェアシーケンスフラグ」を参照 ) 。その後 , フラッシュメ モリは読出しモードに戻り, 書込みアドレスを受け付けなくなります。 この結果, フラッ シュメモリはこの時点で次の有効アドレスを要求します。このようにデータポーリング は , 書込み中であることを示します。 書込み中は , フラッシュメモリに書き込まれたすべてのコマンドが無視されます。書込 み中にハードウェアリセットが起動されると , 書き込まれていたアドレスのデータは 保証されません。データのアドレスへの書込みはどのような順番でも , またセクタの境 界を越えても可能です。書込みによって , データ "0" をデータ "1" に戻すことはできま せん。データ "0" にデータ "1" を書き込むと , データポーリングアルゴリズムによって デバイスに問題があると判断されるか , またはデータ "1" は書き込まれているものの , リセット / 読出しモードであり , このデータが読み出されるときに "0" として読み出さ れるようになります。消去動作のみが "0" データを "1" データにすることができます。 765 第 27 章 フラッシュメモリ 図 27.3-1 書込みコマンドを使用した書込みシーケンス 書込み開始 コマンドシーケンスを書き込む デバイスデータポーリング 次のアドレス NO 最後のアドレス? YES 書込み終了 ■ チップ消去 チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。2 つのアンロッ クサイクルの後に , セットアップコマンドが書き込まれます。その後 , さらに 2 つのア ンロックサイクルがあり , チップ消去コマンドが続きます。 チップ消去を実行する前にフラッシュメモリに書き込む必要はありません。自動消去ア ルゴリズム実行中には , フラッシュメモリは自動的にセルを消去する前に "0" を書き込ん で各セルと検証します。この動作中には , フラッシュメモリは外部からの制御は必要とし ません。 自動消去は , コマンドシーケンス中の書込みで開始され , bit7 に "1" が書き込まれたと きに終了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は , 「セクタ消去時間×セクタ数+チップ書込み時間 ( プリプログラム )」となります。 以下の図は , チップ消去コマンドを使用したチップ消去シーケンスを示しています。 ■ セクタ消去 セクタ消去は 6 回のアクセスで行われます。2 つのアンロックサイクルの後に , " セッ トアップ " コマンドが書き込まれ , 別の 2 つのアンロックサイクルが続きます。6 サイ クル目では , セクタ消去コマンドが入力され , セクタ消去が開始されます。最後のセク タ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次のセクタ消去コマンドの受 付けが可能です。 複数のセクタ消去を同時に実行するには , 前述の 6 つのバスサイクルを書き込みます。 このシーケンスは , セクタ消去コマンドの後に連続して消去するセクタのアドレスを 書き込むことによって実行されます (30H) 。最後のセクタ消去コマンドが書き込まれて から 50 µs のタイムアウトの後に , セクタ消去が開始されます。つまり , 複数のセクタ を同時に消去するには , 各セクタが 50 µs 以内に入力される必要があります。タイムア ウトを過ぎると , 受け付けられなくなります。bit3 を使用して , 各セクタ消去コマンド が有効かどうかを監視することができます (「 (3) ハードウェアシーケンスフラグ」を 参照 ) 。終了すると , フラッシュメモリは読出しモードに戻ります。その他のコマンド は無視されます。データポーリングは , 消去されたセクタ内のどのアドレスでも働きま す。複数セクタの消去時間は , 「 ( セクタ消去時間+チップ書込み時間 ( プリプログラ ム )) ×消去されたセクタの数」となります。 766 第 27 章 フラッシュメモリ 図 27.3-2 チップ消去コマンドを使用したチップ消去シーケンス 消去開始 / チップ/セクタ消去 コマンドシーケンス デバイスデータポーリング またはトグルビットの完了 書込み終了 ■ 消去一時停止 消去一時停止コマンドを使用すると , セクタ消去中にフラッシュメモリの自動アルゴ リズムを一時停止して , 消去中でないセクタからのデータの読出しと書込みを行うこ とができます。 このコマンドは , セクタ消去時に限り有効です。チップ消去および Write 動作時には無視されます。消去一時停止コマンド (B0H) は , セクタ消去コマンド (30H) 後のタイムアウト期間を含むセクタ消去動作時にのみ有効です。このコマンドをタイ ムアウト期間中に入力すると , 直ちにタイムアウトが終了し , 消去動作が中断します。 消去再開コマンドが書き込まれると消去動作が再開されます。消去一時停止および消 去再開コマンドの入力には , 任意のアドレスを使用できます。 セクタ消去動作時に消去一時停止コマンドが入力されると , フラッシュメモリが消去 動作を停止するまでに 20 µs かかります。フラッシュメモリが消去一時停止モードに入 ると , レディ / ビジーを出力し , bit7 が "1" を出力して , bit6 がトグル動作をやめます。 消去しているセクタのアドレスを入力し , bit6 と bit7 の読出し値をモニタすることに よって , 消去動作を停止しているかどうかを確かめることができます。また , 消去一時 停止コマンドの書込みは無視されます。消去が停止されると , フラッシュメモリは消去 一時停止読出しモードになります。このモードでのセクタからのデータの読出しは , データが消去一時停止していないセクタの場合に有効となりますが , それ以外のセク タは , 標準的な読出しと同じです。消去一時停止読出しモードの場合 , 消去が一時停止 されているセクタから順次データが読み出されると , bit2 がトグルされます ( 詳細は 「 (3) ハードウェアシーケンスフラグ」を参照 ) 。 消去一時停止読出しモードに入った後 , ユーザは書込みのコマンドシーケンスを書き 込むことにより , フラッシュメモリに書込みができます。このモードは " 消去一時停止 書込みモード " と呼ばれています。このモードでのセクタへのデータの書込みは , デー タが消去一時停止していないセクタの場合に有効となりますが , それ以外のセクタは , 標準的なバイト書込みと同じです。消去一時停止書込みモードの場合 , 消去が一時停止 されているセクタから順次データが読み出されると , bit2 がトグルされます。このモー ドは , 消去一時停止ビット (bit6) によって検出されます。 このモードを使用するための注意事項 : bit6 はどのアドレスからでも読み出すことが できますが , bit7 は書込みアドレスから読み出す必要があります。セクタ消去を再開す るには , 再開コマンド (30H) を入力する必要があります。この時点で , 他の再開コマン ドは無視されます。反対に , フラッシュメモリで消去が再開された後に , 消去一時停止 コマンドを入力することはできます。 767 第 27 章 フラッシュメモリ 27.3.2 ハードウェアシーケンスフラグ ハードウェアシーケンスフラグについて説明します。 このフラッシュメモリでは , 自動アルゴリズムによって書込み / 消去シーケンスが実行 されます。このため , このフラッシュメモリには , 内部動作が終了したことを外部に通 知するハードウェアがあります。 ● ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは , 自動アルゴリズム実行中にフラッシュメモリの任 意アドレス ( バイトアクセス時は奇数アドレス ) を読み出すことによりデータとして得 られます。データの内有効ビットは 5 ビットで , それぞれが自動アルゴリズムの状態を 表します。 図 27.3-3 ハードウェアシーケンスフラグ形式 bit 15 ハードウェアから読み出す場合 8 7 (不定) 0 ハードウェアシーケンスフラグ bit 7 bit ハーフワード バイトアクセス 時 7 6 5 DPOLL TOGGLE TLOVER 0 ハードウェアシーケンスフラグ バイトから読み出す場合(奇数アドレスのみ) 4 (不定) 3 2 SETIMR TOGGL2 1 0 (不定) (不定) これらのフラグは , FR-CPU ROM モードでは意味がありません。FR-CPU プログラミ ングモードのみで , このデータをハーフワードまたはバイトで読み出してください。 768 第 27 章 フラッシュメモリ 表 27.3-2 ハードウェアシーケンスフラグ状態の一覧 状態 自動書込み 自動書込み時の書込み / 消 去 実行 読出し ( 消去さ れるセクタ ) 読出し ( 消去さ 消去 一時停止 れないセクタ ) DPOLL (bit7) TOGGLE (bit6) TLOVER (bit5) SETIMR (bit3) TOGGL2 (bit2) 反転データ トグル 0 0 1 0 トグル 0 1 トグル 1 1 0 0 トグル データ データ データ データ データ トグル 0 0 1 *1 反転データ トグル 1 0 1 0 トグル 1 1 *2 書込み ( 消去さ 反転データ れないセクタ ) タイミング リミット超 過 自動書込み 自動書込み時の書込み / 消 去 *1: 消去一時停止書込みモード時に , 書き込まれたアドレスが読み出されると , bit2 は "1" を出力します。 ただし , 消去が一時停止されているセクタから順次データが読み出されると , bit2 がトグルされます。 *2: bit5 が "1" に設定されているとき ( タイムリミット超過 ) , 書込み / 消去中セクタへの連続的な読出しによっ て bit2 がトグルされ , ほかのセクタへの読出しでは bit2 はトグルされません。 • レディ / ビジー信号 (RDY/BUSYX) ハードウェアシーケンスフラグ以外に , フラッシュメモリには , 内部自動アルゴリズ ムが実行中かどうかを示すレディ / ビジー信号があります。このレディ / ビジー信号 はフラッシュメモリインタフェース回路に接続され, フラッシュメモリ制御ステータ スレジスタの "RDY" ビットとして読み出すことが可能です。また , レディ / ビジー信 号を起動すると , CPU に対して割込み要求を発行できます ( 詳細については , 「27.4 レジスタ」を参照してください ) 。 "RDY" ビットから読み出された値 "0" : フラッシュメモリは現在書込みまたは消去 中です。この時点で , 書込みおよび消去コマンドは受け付けられません。 "RDY" ビットから読み出された値 "1": フラッシュメモリは現在 , 読出し / 書込みま たは消去のスタンバイ状態です。 769 第 27 章 フラッシュメモリ 27.3.3 FLCR : フラッシュ制御レジスタ フラッシュ制御レジスタ (FLCR) のビット構成や機能について説明します。 図 27.3-4 FLCR : アドレスはフラッシュメモリの任意のアドレス ( アクセス : バイトまたはハーフワード ) FLCR アドレス : bit7 DPOLL R R − bit6 bit5 bit4 TOGGLE TLOVER R R − R bit3 bit2 SETIMR TOGGL2 R R bit1 bit0 初期値 − − --------B R R : リードオンリ : 未定義 bit7 : データポーリング (DPOLL) • 自動書込み中 自動書込みアルゴリズム実行中にデータの読出しを行うと , フラッシュメモリは bit7 に最後に書き込まれた値が反転しているデータを出力します。自動書込みアル ゴリズム終了時に読出しアクセスを行うと , フラッシュメモリは , アドレス信号の 指し示すアドレスの読出しデータの bit7 を出力します。 • 自動消去中 自動消去アルゴリズムの実行時に読出しを行うと , フラッシュメモリは , アドレス信 号の指し示すアドレスにかかわらず "0" を出力します。同様に , 終了時には "1" を出 力します。 • セクタ消去一時停止モード セクタ消去一時停止モードで読出しを行うと , フラッシュメモリは , アドレス信号 の指し示すアドレスが消去中のセクタに属する場合は "1" を出力します。消去中の セクタに属さない場合は , アドレス信号の指し示すアドレスの読出し値の bit7 を出 力します。bit6 のトグル時にこの値を参照すると , 現在のセクタがセクタ消去一時 停止状態であるのかどうか , およびどのセクタが消去されるのかを判別することが できます。 • 自動アルゴリズムの動作が終了に近づくと , bit7 ( データポーリング ) の値は非同期 に変更されます。つまり , フラッシュメモリは bit7 に動作状態を送信した後に , こ のデータを送信します。フラッシュメモリが自動アルゴリズムを終了し , bit7 に設 定されているデータを出力しているとき , ほかのビットはまだ不確定です。 • ほかのビットの確定データは , 正常な読出しの実行によって読み出されます。 bit6 : トグルビット (TOGGLE) • 自動書込み / 消去中 自動書込みまたは消去アルゴリズムの実行時に逐次読出しを行うと , フラッシュメモ リは , "1" と "0" のトグルの結果を bit6 に出力します。自動書込みまたは消去アルゴリ ズムが終了すると , 逐次読出しに対する bit6 のトグルが停止し , 有効なデータが出力さ 770 第 27 章 フラッシュメモリ れます。 トグルビットは , 該当するコマンドの最終ライトサイクル後に有効になります。 書換え保護されているセクタに書込み処理が行われた場合 , 約 2 µs トグルが実行され , データの書換えも行われません。消去の際 , 選択されたすべてのセクタが書込み保護 されている場合 , トグルビットは約 100µs トグル動作をし , その後データを書き換えな いで読出しモードに戻ります。 • セクタ消去一時停止モード セクタ消去一時停止モードで読出しを行うと , フラッシュメモリは , アドレス信号 の指し示すアドレスが消去中のセクタに属する場合は "1" を出力します。消去中の セクタに属さない場合は , アドレス信号の指し示すアドレスの読出し値の bit6 を出 力します。 bit5 : タイミングリミット超過 (TLOVER) • 自動書込み / 消去中 bit5 は自動アルゴリズムの実行がフラッシュメモリ内部に規定された時間 ( 内部パル ス回数 ) を超えてしまったことを示します。この状態では , bit5 は "1" を出力します。 すなわち , 自動アルゴリズムが動作中でこのフラグが "1" を出力した場合は , 書込みま たは消去が失敗したことを示します。 bit5 または消去されていない非ブランクの部分に書き込もうとすると , 失敗となりま す。この場合は , 設定したデータを bit7 ( データポーリング ) から読み出すことができ ず , bit6 ( トグルビット ) はトグルされたままとなります。この状態でタイミングリ ミットを超過すると , bit5 は "1" を出力します。この場合は , フラッシュメモリが不良 なのではなく , 正しく使用されなかったということを表していることに注意してくだ さい。フラッシュメモリにこの状態が発生したときには , リセットコマンドを実行し てください。 bit4 : 未定義 読出し値は , 不定です。 bit3 : セクタ消去タイマ (SETIMR) • セクタ消去中 最初のセクタ消去コマンドシーケンス実行後に , フラッシュメモリはセクタ消去の スタンバイ状態になります。この時間 , bit3 は "0" になります。セクタ消去ウェイト 期間が終了すると , "1" を出力します。データポーリングとトグルビットは最初のセ クタ消去コマンドシーケンスの実行後から有効となります。 消去アルゴリズムの実行中に , データポーリングおよびトグルビット機能によってこ のフラグが "1" に設定された場合は , 内部で制御される消去が開始されています。デー タポーリングまたはトグルビットによって消去が終了したことが示されるまで , 後続 のコマンドの書込みは無視されます ( 消去一時停止コマンドのみ受け付けられます ) 。 このフラグが "0" であれば , フラッシュメモリは , 追加のセクタ消去コマンドの書込み を受け付けます。このことを確認するために , 後続のセクタ消去コマンドの書込みに 先立って , このフラグの状態をチェックすることを推奨します。このフラグが 2 回目 の状態チェックで "1" であった場合 , 追加セクタ消去コマンドは受け付けられていない 可能性があります。セクタ消去一時停止モードで読出しを行うと , フラッシュメモリ は , アドレス信号の指し示すアドレスが消去されるセクタに属する場合は "1" を出力し 771 第 27 章 フラッシュメモリ ます。消去されるセクタに属さない場合は , アドレス信号の指し示すアドレスの読出 し値の bit3 を出力します。 bit2 : トグルビット 2 (TOGGLE2) • セクタ消去中 このトグルビットは , bit6 のトグルビットに加えて , フラッシュメモリが自動消去 動作中であるか , 消去一時停止中であるかを検出することに使われます。自動消去 中に消去されるデータからデータが繰り返し読み出される場合 , bit2 はトグルしま す。フラッシュメモリが消去一時停止読出しモードの場合 , 消去が一時停止されて いるセクタから繰り返しデータが読み出されると , bit2 はトグルします。 フラッシュメモリが消去一時停止書込みモードの場合 , 消去が一時停止されていな いセクタから繰り返しアドレスが読み出されると , bit2 から "1" が読み出されます。 bit6 は , bit2 と違い , 通常の書込み , 消去 , および消去一時停止書込みモード中にの みトグル動作をします。 例えば , bit2 と bit6 は , 消去一時停止読出しモードを検出するために , 一緒に使わ れます (bit2 はトグル動作するが , bit6 はトグル動作しません )。さらに , bit2 は消 去されるセクタの検出にも使われます。フラッシュメモリが消去動作を実行してい るときに , 消去されるセクタからデータが読み出されると , このビットはトグル動 作します。 bit1, bit0 : 未定義 読出し値は , 不定です。 772 第 27 章 フラッシュメモリ 27.3.4 ハードウェアシーケンスフラグの使用例 ハードウェアシーケンスフラグの使用例を説明します。 前出のハードウェアシーケンスフラグを使用すると , フラッシュメモリの内部自動ア ルゴリズムの状態を判別することができます。例として , データポーリング機能が使用 されている場合とトグルビットが使用されている場合の書込み / 消去判別シーケンス を示します。 図 27.3-5 データポーリング機能を使用した書込み / 消去判別シーケンス 書込み/消去開始 VA = 書き込みアドレス = セクタ消去中の消去セクタアドレス 読出し(D0~D7) アドレス= VA D7 =データ? = チップ消去中の非プロテクトセクタアドレス YES * : D7 は D5と同時に変更されるので、 D5 = 1の場合も D7 を再チェックする 必要があります。 NO NO D5 = 1? YES 読出し(D0~D7) アドレス= VA D7 =データ? * YES NO 書込み/消去失敗 書込み/消去成功 773 第 27 章 フラッシュメモリ 図 27.3-6 トグルビット機能を使用した書込み / 消去判別シーケンス 書込み/消去開始 読出し(D0~D7) アドレス= "H"~"L" D6 =トグル? NO YES NO D5=1? YES 読出し(D0~D7) アドレス= "H"~"L" D6 =トグル? * NO YES 書込み/消去失敗 書込み/消去成功 * D5 が "1" に変更されると、D6 はトグルを中止するので、 D5 = 1の場合も D6 を再チェックする必要があります。 774 第 27 章 フラッシュメモリ 27.4 注意事項 フラッシュメモリを使用する場合の注意事項とシリアルプログラミングについて説 明します。 • 本書とともに MBM29LV400TC データシートを参照してください。 • CPU モード CPU モードの場合は , パラレルフラッシュプログラマを使用した書込み時とはアド レスの与え方が異なります。「■ CPU モードからフラッシュプログラミングモード へのアドレス変換」を参照してください。 • フラッシュメモリモード ( パラレルフラッシュプログラマによる書込み ) このフラッシュメモリを使用すると , パラレルフラッシュプログラマを使用して外 部デバイスから書き込むことができます。この状態では , デバイスの外部端子にス タンドアロン製品 MBM29LV400TC と同等の端子機能が割り当てられ , CPU の動作 が停止します。 フラッシュメモリモードでは , メモリ領域内のマッピングへのアドレスライン接続 が , CPU モードから変更されます。 ■ FLASH シリアルプログラミング MB91F467R には , オンボードでの FLASH シリアルプログラミングのサポート機能が あります。これはシリアルダウンロード機能とよばれるものです。この機能ではデータ を内部の RAM にダウンロードして , ダウンロードされたアドレスにジャンプし , プロ グラムを実行することができます。この機能を使用するためには, いくつかのポート設 定とモード端末の設定が必要です。 MB91461 に対しても以下の設定にて , 外バスに接続された FLASH メモリにたいしての シリアルプログラミングをサポートしています。 表 27.4-1 シリアルダウロードを使うための設定 P15_2 P15_3 0 0 非同期シリアルダウンロード 0 1 同期シリアルダウンロード シリアル通信機能 775 第 27 章 フラッシュメモリ P15 と モード端子の設定 (MD3 ∼ MD0==0100B) をしてリセット (INITX) を解除すると , MB91F467R のシリアルダウンロード機能が使えるようになります。シリアルダウン ロードでは LIN-UART ch.0(SIN0, SOT0, SCK0) が使用されます。通信条件は以下のよう になります。 表 27.4-2 シリアルダウンロードでの通信条件 通信モード クロック パリティ ストップビット データ長 転送方向 Asynchronous 内部 なし 1 8 bit LSB から Synchronous 外部 なし なし 8 bit LSB から ボーレートジェネレータは以下のように設定されます 表 27.4-3 ボーレート設定 (MB91F467R の場合 ) 水晶 4MHz BGR0 BGR0 = 19FH ボーレート 9615bps 誤差 0.156%(9600 に対して ) 表 27.4-4 ボーレート設定 (MB91461 の場合 ) 水晶 776 BGR0 ボーレート 誤差 10MHz BGR0 = 103H 4808bps 0.16%(4800 に対して ) 20MHz BGR0 = 103H 9615bps 0.16%(9600 に対して ) 第 28 章 フラッシュセキュリティ MB91F467RA, MB91F467RB に搭載されている内 蔵フラッシュメモリのセキュリティ機能について 説明します。 28.1 概要 28.2 フラッシュセキュリティベクタ 28.3 フラッシュセキュリティ制御レジスタ 777 第 28 章 フラッシュセキュリティ 28.1 概要 フラッシュセキュリティの概要について説明します。 内蔵フラッシュメモリに対する読出し / 書込みアクセス保護を制御するモジュールで す。 ■ 特長 • デバイスモードによるすべてのフラッシュセクタの共通読出し保護 • デバイスモードによる各フラッシュセクタの個別書込み保護 • デバイスモードによる書込み保護レベル • セキュリティベクタ再フェッチシーケンス ( チップ消去後のセキュリティステータ ス更新用 ) • CRC チェックサムの計算 (CRC32/AAL5 アルゴリズム ) • CRC 多項式 : x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 <注意事項> MB91V460 にはセキュリティ機能関連のレジスタはありません。 778 第 28 章 フラッシュセキュリティ 28.2 フラッシュセキュリティベクタ フラッシュセキュリティベクタについて説明します。 ■ ベクタアドレス 2 つのフラッシュセキュリティベクタ (FSV1, FSV2) は , 以下のアドレスに配置されて います。 FSV1: 14:8000H FSV2: 14:8008H ■ セキュリティベクタ FSV1 ● FSV1 (bit31 ∼ bit16) フラッシュセキュリティベクタ FSV1 の設定によって , 8K バイトセクタの読出し / 書 込み保護モードおよび個別書込み保護が設定されます。 フラッシュセキュリティベクタ FSV1 bit31 ∼ bit16 の設定によって , 読出し / 書込み保 護モードが設定されます。 フラッシュセキュリティベクタ FSV1[31:16] のビットの説明 : FSV1[31:19] すべてを "0" FSV1[18] FSV1[17] FSV1[16] 書込み保護 書込み保護 読出し保護 レベル 0 0 1 フラッシュセキュリティモード 読出し保護 (INTVEC モード MD2 ∼ MD0 = 000B を除くすべてのデバ イスモード ) すべてを "0" すべてを "0" すべてを "0" 0 0 1 1 1 0 0 書込み保護 ( すべてのデバイスモード , 例 外なし ) 1 読出し保護 (INTVEC モード MD2 ∼ MD0 = 000B を除くすべてのデバ 1 読出し保護 (INTVEC モード MD2 ∼ MD0 = 000B を除くすべてのデバ イスモード ) および書込み保護 ( すべての デバイスモード ) イスモード ) すべてを "0" 1 1 0 書込み保護 (INTVEC モード MD2 ∼ MD0 = 000B を除くすべてのデバ イスモード ) すべてを "0" 1 1 1 読出し保護 (INTVEC モード MD2 ∼ MD0 = 000B を除くすべてのデバ イスモード ) および書込み保護 ( すべての デバイスモード ) 779 第 28 章 フラッシュセキュリティ ● FSV1 (bit15 ∼ bit0) フラッシュセキュリティベクタ FSV1 bit15 ∼ bit0 の設定によって , 8K バイトセクタの 個別書込み保護が設定されます。この設定は , 書込み保護ビット FSV1[17] が設定され ている場合にのみ評価されます。 フラッシュセキュリティベクタ FSV1[15:0] のビットの説明 (MB91F467R で有効 ) : FSV1 ビット セクタ 書込み保護許可 書込み保護禁止 コメント FSV1[0] SA0 0 1 − FSV1[1] SA1 0 1 − FSV1[2] SA2 0 1 − FSV1[3] SA3 0 1 − FSV1[4] SA4 0 FSV1[5] SA5 0 1 − FSV1[6] SA6 0 1 − FSV1[7] SA7 0 1 − − 書込み保護は必須です。 FSV1[8] − 0 1 使用不可 FSV1[9] − 0 1 使用不可 FSV1[10] − 0 1 使用不可 FSV1[11] − 0 1 使用不可 FSV1[12] − 0 1 使用不可 FSV1[13] − 0 1 使用不可 FSV1[14] − 0 1 使用不可 FSV1[15] − 0 1 使用不可 <注意事項> フラッシュセキュリティベクタ FSV1 および FSV2 が配置され , 書込み保護されているセ クタ ( ここではセクタ SA4) を常に設定する必要があります。設定しない場合 , セキュリ ティベクタが , フラッシュコンテンツを読み出したり , 書込みによってデータを操作でき る設定に書き換えられる可能性があります。 780 第 28 章 フラッシュセキュリティ ■ セキュリティベクタ FSV2 フラッシュセキュリティベクタ FSV2 bit31 ∼ bit0 の設定によって , 64K バイトセクタ の個別書込み保護が設定されます。この設定は , 書込み保護ビット FSV1[17] が設定さ れている場合にのみ評価されます。 フラッシュセキュリティベクタ FSV2[31:0] のビットの説明 (MB91F467R で有効 ) : FSV2 ビット セクタ 書込み保護許可 書込み保護禁止 コメント FSV2[0] SA8 0 1 − FSV2[1] SA9 0 1 − FSV2[2] SA10 0 1 − FSV2[3] SA11 0 1 − FSV2[4] SA12 0 1 − FSV2[5] SA13 0 1 − FSV2[6] SA14 0 1 − FSV2[7] SA15 0 1 − FSV2[8] SA16 0 1 − FSV2[9] SA17 0 1 − FSV2[10] SA18 0 1 − FSV2[11] SA19 0 1 − FSV2[12] SA20 0 1 − FSV2[13] SA21 0 1 − FSV2[14] SA22 0 1 − FSV2[15] SA23 0 1 − FSV2[16] − 0 1 使用不可 FSV2[17] − 0 1 使用不可 FSV2[18] − 0 1 使用不可 FSV2[19] − 0 1 使用不可 FSV2[20] − 0 1 使用不可 FSV2[21] − 0 1 使用不可 FSV2[22] − 0 1 使用不可 FSV2[23] − 0 1 使用不可 FSV2[24] − 0 1 使用不可 FSV2[25] − 0 1 使用不可 FSV2[26] − 0 1 使用不可 FSV2[27] − 0 1 使用不可 781 第 28 章 フラッシュセキュリティ FSV2 ビット 782 セクタ 書込み保護許可 書込み保護禁止 コメント FSV2[28] − 0 1 使用不可 FSV2[29] − 0 1 使用不可 FSV2[30] − 0 1 使用不可 FSV2[31] − 0 1 使用不可 第 28 章 フラッシュセキュリティ 28.3 フラッシュセキュリティ制御レジスタ フラッシュセキュリティ制御レジスタのビット構成および機能について説明します。 ■ FSCR0 : アドレス 7100H ( アクセス : バイト ( 書込み ) , ワード ( 読出し ) ) FSCR0 : アドレス 7100H ( アクセス : バイト ( 書込み ) , ワード ( 読出し ) ) アドレス : 00007100H アドレス : 00007101H アドレス : 00007102H アドレス : 00007103H bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 CRC31/ S7 CRC30/ S6 CRC29/ S5 CRC28/ S4 CRC27/ S3 CRC26/ S2 CRC25/ S1 CRC24/ S0 1 1 1 1 1 1 1 1 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R/W R/W R/W R/W R/W R/W R/W R/W ( ソフトウェアリセット ) bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 初期値 初期値 CRC23 CRC22 CRC21 CRC20 CRC19 CRC18 CRC17 CRC16 1 1 1 1 1 1 1 1 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R R R R R R R R ( ソフトウェアリセット ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CRC15 CRC14 CRC13 CRC12 CRC11 CRC10 CRC9 CRC8 1 1 1 1 1 1 1 1 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R R R R R R R R ( ソフトウェアリセット ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 CRC7 CRC6 CRC5 CRC4 CRC3 CRC2 CRC1 CRC0 1 1 1 1 1 1 1 1 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R R R R R R R R ( ソフトウェアリセット ) R/W : リード / ライト可能 R : リードオンリ X : 不定 783 第 28 章 フラッシュセキュリティ [bit31 ∼ bit24] S7 ∼ S0: シーケンス起動 S7 ∼ S0 機能 A5H → 5AH フラッシュセキュリティベクタ再フェッチシーケンスの開始 ( 書込み専用 ) F0H → 0FH フラッシュメモリ CRC32 チェックサムシーケンスの開始 ( 書込み専用 ) FSCR0[31:24] レジスタに引き続き "A5H", "5AH" を書き込むと , "5AH" の書込み後す ぐに , フラッシュセキュリティベクタ再フェッチシーケンスが開始されます。"A5H" と "5AH" の間に時間の制限はありませんが , "A5H" が書き込まれた後に "5AH" 以外 が書き込まれた場合は , 再度 "A5H" を書き込む必要があります。書き込まない場合 , "5AH" を書き込んでも , 再フェッチシーケンスは開始されません。 FSCR0[31:24] レジスタに引き続き "F0H", "0FH" を書き込むと , "0FH". の書込み後す ぐに , CRC32 チェックサムシーケンスが開始されます。"F0H" と "F0H" の間に時間 の制限はありませんが , "F0H" が書き込まれた後に "0FH" 以外が書き込まれた場合は , 再度 "F0H" を書き込む必要があります。書き込まない場合 , "0FH" を書き込んでも , CRC チェックサムシーケンスは開始されません。 <注意事項> • フラッシュセキュリティベクタ再フェッチシーケンスは , 特に , 外部 INITX リセットを 適用せずにセキュリティステータスを更新するためにチップ消去コマンドの後に使用 したり , FSV1 セキュリティベクタの状態の変更後に使用します。 • セキュリティベクタ再フェッチおよび CRC32 シーケンスは , フラッシュメモリ自体が 配置されているプログラムから開始しないでください。 • CRC32 チェックサムを開始する場合は , ランタイムが長くならないように , 2MHz 動 作モードで CR 発振子を設定することをお勧めします。 [bit31 ∼ bit0] CRC31 ∼ CRC0: CRC32 チェックサム結果 CRC31 ∼ CRC0 − 機能 CRC32 チェックサム ( 読出し専用 ) このレジスタには , CRC32 チェックサムシーケンス完了後の CRC32 チェックサム 結果が含まれます ( シーケンスの完了は , FSCR1.RDY で示されます ) 。CRC チェッ クサムは , 標準 CRC32/AAL5 アルゴリズムでポリゴン x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 によって計算されます。 784 第 28 章 フラッシュセキュリティ ■ FSCR1 : アドレス 7104H ( アクセス : バイト ( 読出し ) , ワード ( 書込み ) ) FSCR1 : アドレス 7104H ( アクセス : バイト ( 読出し ) , ワード ( 書込み ) ) アドレス : bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 00007104H 予約 予約 予約 予約 予約 予約 予約 RDY 0 0 0 0 0 0 0 0 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R/W R/W R/W R/W R/W R/W R/W R ( ソフトウェアリセット ) bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 初期値 CSZ2 CSZ1 CSZ0 アドレス : 00007105H アドレス : 00007106H 初期値 予約 予約 予約 予約 CSZ3 0 0 0 0 0 0 0 0 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R/W R/W R/W R/W R/W R/W R/W R/W ( ソフトウェアリセット ) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 CSA15 CSA14 CSA13 CSA12 CSA11 CSA10 CSA9 CSA8 0 0 0 0 0 0 0 0 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R/W R/W R/W R/W R/W R/W R/W R/W ( ソフトウェアリセット ) 初期値 アドレス : bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 00007107H CSA7 CSA6 CSA5 CSA4 CSA3 CSA2 CSA1 CSA0 0 0 0 0 0 0 0 0 (INITX 端子入力 ) X X X X X X X X ( ウォッチドッグリセット ) R/W R/W R/W R/W R/W R/W R/W R/W ( ソフトウェアリセット ) R/W R X − : リード / ライト可能 : リードオンリ : 不定 : 未定義 [bit31 ∼ bit25] : 予約ビット 読出し値は常に "0" です。 [bit24] RDY: CRC32 シーケンスレディ RDY 機能 0 CRC32 シーケンスは実行中か , または開始されていない 1 CRC32 シーケンスレディ (FSCR0 レジスタのデータが有効 ) [bit23 ∼ bit20] 予約ビット 読出し値は常に "0" です。 785 第 28 章 フラッシュセキュリティ [bit19 ∼ bit16] CSZ3 ∼ CSZ0 : CRC32 サイズマスク CSZ3 ∼ CSZ0 機能 0000B CRC32 シーケンスサイズマスクは 4K バイトです。 0001B CRC32 シーケンスサイズマスクは 8K バイトです。 0010B CRC32 シーケンスサイズマスクは 16K バイトです。 0011B CRC32 シーケンスサイズマスクは 32K バイトです。 0100B CRC32 シーケンスサイズマスクは 64K バイトです。 0101B CRC32 シーケンスサイズマスクは 128K バイトです。 0110B CRC32 シーケンスサイズマスクは 256K バイトです。 0111B CRC32 シーケンスサイズマスクは 512K バイトです。 1000B CRC32 シーケンスサイズマスクは 1024K バイトです。 1001B CRC32 シーケンスサイズマスクは 2048K バイトです。 1010B CRC32 シーケンスサイズマスクは 4096K バイトです。 1011B ∼ 1111B サポートしていない <注意事項> CSZ3 ∼ CSZ0 は , CSA15 ∼ CSA0 で指定されているアドレスの OR マスクとして使用 されます。以下のアドレス計算を参照してください。 [bit15 ∼ bit0] CSA15 ∼ CSA0:CRC32 先頭アドレス このレジスタには , 4K バイトアドレスにアラインされている CRC32 先頭アドレス が含まれています。フラッシュメモリアドレス空間に配置されているアドレスに関 してのみ , CRC32 チェックサムを計算することができます。その他のアドレスは無 効であり , 誤ったチェックサムとなる可能性があります。 786 第 28 章 フラッシュセキュリティ ■ CRC32 先頭アドレスおよび最終アドレスの計算 : CSZ3 ∼ CSZ0 の設定は最初にマスク値に変換されます。 CSZ3 ∼ CSZ0 マスク 0000B 0000_0000_0000_0000 0001B 0000_0000_0000_0001 0010B 0000_0000_0000_0011 0011B 0000_0000_0000_0111 0100B 0000_0000_0000_1111 0101B 0000_0000_0001_1111 0110B 0000_0000_0011_1111 0111B 0000_0000_0111_1111 1000B 0000_0000_1111_1111 1001B ∼ 1111B 以下同様 CRC32 開始アドレス= CSA[15:0] << 12 + 000H CRC32 終了アドレス= (CSA[15:0] またはマスク ) << 12 + FFFH 787 第 28 章 フラッシュセキュリティ 788 付録 各 CPU ステートにおける端子状態 , リトル・エン ディアン領域を利用する際の注意事項 , FR ファミ リの命令一覧 , および MB91461, MB91F467RA, MB91F467RB を使用する際の注意事項について説 明します。 付録 A I/O マップ 付録 B 割込みベクタ 付録 C DMA 転送要求要因 付録 D シリアル書込み時の端子状態 789 付録 付録 A I/O マップ MB91461/F467R に内蔵された周辺機能の各レジスタには , 付表 A-1 / 付表 A-2 に示 すアドレスが割り当てられています。 ■ I/O マップの読み方 アドレス 000000H レジスタ ブロック +0 +1 +2 +3 PDR0 [R/W]B PDR1 [R/W]B PDR2 [R/W]B PDR3 [R/W]B T-unit XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ポートデータ レジスタ リード/ライト属性, アクセス単位 (B:バイト, H:ハーフワード, W:ワード) リセット後のレジスタ初期値 レジスタ名(1コラムのレジスタが4n番地,2コラムが4n+1番地・・・) 最左のレジスタ番地(ワードでアクセスした際は,1コラム目の レジスタがデータのMSB側となる) レジスタのビット値は , 以下のように初期値を表します。 • "1" : 初期値 "1" • "0" : 初期値 "0" • "X" : 初期値 "X" • "-" : その位置に物理的にレジスタがない 790 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (1 / 19) アドレス レジスタ 0 1 2 3 PDR14 [R/W]B,H ----XXXX PDR15 [R/W] B,H ----XXXX 000000H 予約 000004H 予約 000008H 予約 00000CH 予約 000010H PDR16 [R/W] B,H X------- PDR17 [R/W] B,H XXXXXXXX PDR18 [R/W] B,H -----XXX PDR19 [R/W] B,H -XXX-XXX 000014H PDR20 [R/W] B,H -XXX-XXX PDR21 [R/W] B,H -XXX-XXX PDR22 [R/W] B,H XXXXXX-X PDR23 [R/W] B,H -X-XXXXX 000018H PDR24 [R/W] B,H XXXXXXXX 00001CH PDR28 [R/W] B,H ---XXXXX ブロック R-bus ポートデータ レジスタ 予約 PDR29 [R/W] B,H XXXXXXXX 000020H 予約 予約 000024H ∼ 00002CH 予約 予約 000030H EIRR0 [R/W] B 00000000 ENIR0 [R/W] B 00000000 ELVR0 [R/W] B,H 00000000 00000000 外部割込み (INT0 ∼ INT7) NMI 000034H EIRR1 [R/W] B 00000000 ENIR1 [R/W] B 00000000 ELVR1 [R/W] B,H 00000000 00000000 外部割込み (INT 8 ∼ INT15 ) 000038H DICR [R/W] B -------0 HRCL [R/W] B 0--11111 予約 遅延割込み 00003CH 予約 000040H SCR00 [R/W,W] B,H,W 00000000 SMR00 [R/W,W] B,H,W 00000000 000044H ESCR00 [R/W] B,H 00000X00 ECCR00 [R/W,R,W] B,H -00000XX 000048H SCR01 [R/W,W] B,H,W 00000000 SMR01 [R/W,W] B,H,W 00000000 00004CH ESCR01 [R/W] B,H 00000X00 ECCR01 [R/W,R,W] B,H -00000XX 予約 SSR00 [R/W,R] B,H,W 00001000 RDR00/TDR00 [R/ W] B,H,W 00000000 UART (LIN) 0 予約 SSR01 [R/W,R] B,H,W 00001000 RDR01/TDR01 [R/ W] B,H,W 00000000 LIN-UART 1 予約 791 付録 付表 A-1 MB91461 I/O マップ (2 / 19) アドレス レジスタ 0 1 2 3 000050H SCR02 [R/W,W] B,H,W 00000000 SMR02 [R/W,W] B,H,W 00000000 SSR02 [R/W,R] B,H,W 00001000 RDR02/TDR02 [R/ W] B,H,W 00000000 000054H ESCR02 [R/W] B,H 00000X00 ECCR02 [R/W,R,W] B,H -00000XX 000058H SCR03 [R/W,W] B,H,W 00000000 SMR03 [R/W,W] B,H,W 00000000 00005CH ESCR03 [R/W] B,H 00000X00 ECCR03 [R/W,R,W] B,H -00000XX 000060H SCR04 [R/W,W] B,H,W 00000000 SMR04 [R/W,W] B,H,W 00000000 SSR04 [R/W,R] B,H,W 00001000 RDR04/TDR04 [R/ W] B,H,W 00000000 000064H ESCR04 [R/W] B,H,W 00000X00 ECCR04 [R/W,R,W] B,H,W -00000XX FSR04 [R] B,H,W ---00000 FCR04 [R/W] B,H,W 0001-000 000068H SCR05 [R/W,W] B,H,W 00000000 SMR05 [R/W,W] B,H,W 00000000 SSR05 [R/W,R] B,H,W 00001000 RDR05/TDR05 [R/ W] B,H,W 00000000 00006CH ESCR05 [R/W] B,H,W 00000X00 ECCR05 [R/W,R,W] B,H,W -00000XX FSR05 [R] B,H,W ---00000 FCR05 [R/W] B,H,W 0001-000 000070H SCR06 [R/W,W] B,H,W 00000000 SMR06 [R/W,W] B,H,W 00000000 SSR06 [R/W,R] B,H,W 00001000 RDR06/TDR06 [R/ W] B,H,W 00000000 000074H ESCR06 [R/W] B,H,W 00000X00 ECCR06 [R/W,R,W] B,H,W -00000XX FSR06 [R] B,H,W ---00000 FCR06 [R/W] B,H,W 0001-000 ブロック LIN-UART 2 予約 SSR03 [R/W,R] B,H,W 00001000 RDR03/TDR03 [R/ W] B,H,W 00000000 LIN-UART 3 予約 LIN-UART 4 LIN-UART 5 LIN-UART 6 000078H 予約 ∼ 00007CH 予約 000080H BGR100 [R/W] B,H,W 00000000 BGR000 [R/W] B,H,W 00000000 BGR101 [R/W] B,H,W 00000000 BGR001 [R/W] B,H,W 00000000 000084H BGR102 [R/W] B,H,W 00000000 BGR002 [R/W] B,H,W 00000000 BGR103 [R/W] B,H,W 00000000 BGR003 [R/W] B,H,W 00000000 000088H BGR104 [R/W] B,H,W 00000000 BGR004 [R/W] B,H,W 00000000 BGR105 [R/W] B,H,W 00000000 BGR005 [R/W] B,H,W 00000000 00008CH BGR106 [R/W] B,H,W 00000000 BGR006 [R/W] B,H,W 00000000 792 予約 ボーレート ジェネレータ UART (LIN) 0∼6 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (3 / 19) アドレス レジスタ 0 1 2 3 ブロック 000090H ∼ 0000CCH 0000D0H 0000D4H 予約 IBCR0 [R/W] B,H 00000000 IBSR0 [R] B,H 00000000 ITMKH0 [R/W] B,H ITMKL0 [R/W] B,H 00----11 11111111 予約 ITBAH0 [R/W] B,H ------00 ITBAL0 [R/W] B,H 00000000 ISMK0 [R/W] B,H 01111111 ISBA0 [R/W] B,H -0000000 0000D8H 予約 IDAR0 [R/W] B,H 00000000 ICCR0 [R/W] B -0011111 予約 0000DCH IBCR1 [R/W] B,H 00000000 IBSR1 [R] B,H 00000000 ITBAH1 [R/W] B,H ------00 ITBAL1 [R/W] B,H 00000000 ISMK1 [R/W] B,H 01111111 ISBA1 [R/W] B,H -0000000 ICCR1 [R/W] B -0011111 予約 0000E0H 0000E4H ITMKH1 [R/W] B,H ITMKL1 [R/W] B,H 00----11 11111111 予約 IDAR1 [R/W] B,H 00000000 I2C 0 I2C 1 0000E8H ∼ 0000FCH 予約 予約 000100H GCN10 [R/W] B,H 00110010 00010000 予約 GCN20 [R/W] B ----0000 PPG コントロー ル0∼3 000104H GCN11 [R/W] B,H 00110010 00010000 予約 GCN21 [R/W] B ----0000 PPG コントロー ル4∼7 000108H 予約 000110H PTMR00 [R] H 11111111 11111111 000114H PDUT00 [W] H XXXXXXXX XXXXXXXX 000118H PTMR01 [R] H 11111111 11111111 00011CH PDUT01 [W] H XXXXXXXX XXXXXXXX 000120H PTMR02 [R] H 11111111 11111111 000124H PDUT02 [W] H XXXXXXXX XXXXXXXX 000128H PTMR03 [R] H 11111111 11111111 00012CH PDUT03 [W] H XXXXXXXX XXXXXXXX 000130H PTMR04 [R] H 11111111 11111111 000134H PDUT04 [W] H XXXXXXXX XXXXXXXX 予約 PCSR00 [W] H XXXXXXXX XXXXXXXX PCNH00 [R/W] B,H 00000000 PCNL00 [R/W] B,H 000000-0 PCSR01 [W] H XXXXXXXX XXXXXXXX PCNH01 [R/W] B,H 00000000 PCNL01 [R/W] B,H 000000-0 PCSR02 [W] H XXXXXXXX XXXXXXXX PCNH02 [R/W] B,H 00000000 PCNL02 [R/W] B,H 000000-0 PCSR03 [W] H XXXXXXXX XXXXXXXX PCNH03 [R/W] B,H 00000000 PCNL03 [R/W] B,H 000000-0 PCSR04 [W] H XXXXXXXX XXXXXXXX PCNH04 [R/W] B,H 00000000 PCNL04 [R/W] B,H 000000-0 PPG 0 PPG 1 PPG 2 PPG 3 PPG 4 793 付録 付表 A-1 MB91461 I/O マップ (4 / 19) アドレス レジスタ 0 1 000138H PTMR05 [R] H 11111111 11111111 00013CH PDUT05 [W] H XXXXXXXX XXXXXXXX 000140H PTMR06 [R] H 11111111 11111111 000144H PDUT06 [W] H XXXXXXXX XXXXXXXX 000148H PTMR07 [R] H 11111111 11111111 00014CH PDUT07 [W] H XXXXXXXX XXXXXXXX 2 3 PCSR05 [W] H XXXXXXXX XXXXXXXX PCNH05 [R/W] B,H 00000000 PCNL05 [R/W] B,H 000000-0 PCSR06 [W] H XXXXXXXX XXXXXXXX PCNH06 [R/W] B,H 00000000 PCNL06 [R/W] B,H 000000-0 PCSR07 [W] H XXXXXXXX XXXXXXXX PCNH07 [R/W] B,H 00000000 PCNL07 [R/W] B,H 000000-0 ブロック PPG 5 PGG 6 PPG 7 000170H ∼ 00017CH 予約 ICS01 [R/W] B 00000000 予約 ICS23 [R/W] B 00000000 000180H 予約 000184H IPCP0 [R] H XXXXXXXX XXXXXXXX IPCP1 [R] H XXXXXXXX XXXXXXXX 000188H IPCP2 [R] H XXXXXXXX XXXXXXXX IPCP3 [R] H XXXXXXXX XXXXXXXX 00018CH OCS01 [R/W] 11101100 00001100 OCS23 [R/W] 11101100 00001100 000190H OCCP0 [R/W] H XXXXXXXX XXXXXXXX OCCP1 [R/W] H XXXXXXXX XXXXXXXX 000194H OCCP2 [R/W] H XXXXXXXX XXXXXXXX OCCP3 [R/W] H XXXXXXXX XXXXXXXX 予約 インプット キャプチャ 0∼3 アウトプット コンペア 0∼3 000198H ∼ 00019CH 0001A0H 予約 ADERH [R/W] B,H,W 00000000 00000000 予約 ADERL [R/W] B,H,W 00000000 00000000 0001A4H ADCS1 [R/W] B,H 00000000 ADCS0 [R/W] B,H 00000000 ADCR1 [R] B,H 000000XX ADCR0 [R] B,H XXXXXXXX 0001A8H ADCT1 [R/W] B,H 00010000 ADCT0 [R/W] B,H 00101100 ADSCH [R/W] B,H ---00000 ADECH [R/W] B,H ---00000 0001ACH 0001B0H 0001B4H 794 予約 TMRLR0 [W] H XXXXXXXX XXXXXXXX 予約 A/D コンバータ 予約 TMR0 [R] H XXXXXXXX XXXXXXXX TMCSRC0 [R/W] B,H ---00000 TMCSRC0 [R/W] B,H 0-000000 リロードタイマ 0 (PPG 0, 1) 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (5 / 19) アドレス 0001B8H レジスタ 0 1 TMRLR1 [W] H XXXXXXXX XXXXXXXX 0001BCH 予約 0001C0H TMRLR2 [W] H XXXXXXXX XXXXXXXX 0001C4H 予約 0001C8H TMRLR3 [W] H XXXXXXXX XXXXXXXX 0001CCH 2 予約 3 ブロック TMR1 [R] H XXXXXXXX XXXXXXXX TMCSRC1 [R/W] B,H ---00000 TMCSRC1 [R/W] B,H 0-000000 リロードタイマ1 (PPG 2, 3) TMR2 [R] H XXXXXXXX XXXXXXXX TMCSRC2 [R/W] B,H ---00000 TMCSRC2 [R/W] B,H 0-000000 リロードタイマ2 (PPG 4, 5) TMR3 [R] H XXXXXXXX XXXXXXXX TMCSRC3 [R/W] B,H ---00000 TMCSRC3 [R/W] B,H 0-000000 リロードタイマ3 (PPG 6, 7) 0001D0H ∼ 0001E4H 0001E8H 予約 TMRLR7 [W] H XXXXXXXX XXXXXXXX 予約 TMR7 [R] H XXXXXXXX XXXXXXXX リロードタイマ7 (A/D コンバータ ) 0001ECH 予約 TMCSRC7 [R/W] B,H ---00000 0001F0H TCDT0 [R/W] H XXXXXXXX XXXXXXXX 予約 TCCS0 [R/W] -0000000 フリーラン タイマ 0 (ICU 0, 1) 0001F4H TCDT1 [R/W] H XXXXXXXX XXXXXXXX 予約 TCCS1 [R/W] -0000000 フリーラン タイマ 1 (ICU 2, 3) 0001F8H TCDT2 [R/W] H XXXXXXXX XXXXXXXX 予約 TCCS2 [R/W] -0000000 フリーラン タイマ 2 (OCU 0, 1) 0001FCH TCDT3 [R/W] H XXXXXXXX XXXXXXXX 予約 TCCS3 [R/W] -0000000 フリーラン タイマ 3 (OCU 2, 3) TMCSRC7 [R/W] B,H 0-000000 000200H DMACA0 [R/W] B,H,W*1 00000000 0000XXXX XXXXXXXX XXXXXXXX 000204H DMACB0 [R/W] B,H,W 00000000 00000000 XXXXXXXX XXXXXXXX 000208H DMACA1 [R/W] B,H,W*1 00000000 0000XXXX XXXXXXXX XXXXXXXX 00020CH DMACB1 [R/W] B,H,W 00000000 00000000 XXXXXXXX XXXXXXXX 000210H DMACA2 [R/W] B,H,W*1 00000000 0000XXXX XXXXXXXX XXXXXXXX DMAC 795 付録 付表 A-1 MB91461 I/O マップ (6 / 19) アドレス レジスタ 0 1 2 3 000214H DMACB2 [R/W] B,H,W 00000000 00000000 XXXXXXXX XXXXXXXX 000218H DMACA3 [R/W] B,H,W*1 00000000 0000XXXX XXXXXXXX XXXXXXXX 00021CH DMACB3 [R/W] B,H,W 00000000 00000000 XXXXXXXX XXXXXXXX 000220H DMACA4 [R/W] B,H,W*1 00000000 0000XXXX XXXXXXXX XXXXXXXX 000224H DMACB4 [R/W] B,H,W 00000000 00000000 XXXXXXXX XXXXXXXX ブロック DMAC 000228H ∼ 00023CH 000240H 予約 DMACR [R/W] B,H,W 00--0000 予約 000244H ∼ 000254H 予約 予約 000258H ∼ 000364H 000368H 00036CH 000370H 予約 IBCR2 [R/W] B,H 00000000 IBSR2 [R] B,H 00000000 ITMKH2 [R/W] B,H ITMKL2 [R/W] B,H 00----11 11111111 予約 ITBAH2 [R/W] B,H ------00 ITBAL2 [R/W] B,H 00000000 ISMK2 [R/W] B,H 01111111 ISBA2 [R/W] B,H -0000000 ICCR2 [R/W] B -0011111 予約 IDAR2 [R/W] B,H 00000000 I2C 2 000374H ∼ 0003BCH 予約 0003C0H 予約 0003C4H 予約 0003D0H 0003E4H ISIZE [R/W] B ------11 予約 予約 予約 ICHRC [R/W] B 0-000000 予約 命令キャッシュ 命令キャッシュ 0003E8H ∼ 0003ECH 0003F0H 796 予約 予約 BSD0 [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ビットサーチ モジュール 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (7 / 19) アドレス レジスタ 0 1 2 3 0003F4H BSD1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F8H BSDC [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003FCH BSRR [R] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ブロック ビットサーチ モジュール 000400H 予約 ∼ 00043CH 予約 000440H ICR00 [R/W] B,H,W ICR01 [R/W] B,H,W ICR02 [R/W] B,H,W ICR03 [R/W] B,H,W ---11111 ---11111 ---11111 ---11111 000444H ICR04 [R/W] B,H,W ICR05 [R/W] B,H,W ICR06 [R/W] B,H,W ICR07 [R/W] B,H,W ---11111 ---11111 ---11111 ---11111 000448H ICR08 [R/W] B,H,W ICR09 [R/W] B,H,W ---11111 ---11111 予約 ICR11 [R/W] B,H,W ---11111 00044CH ICR12 [R/W] B,H,W ICR13 [R/W] B,H,W ---11111 ---11111 予約 予約 000450H ICR16 [R/W] B,H,W ---11111 予約 ICR19 [R/W] B,H,W ---11111 000454H ICR20 [R/W] B,H,W ICR21 [R/W] B,H,W ICR22 [R/W] B,H,W ICR23 [R/W] B,H,W ---11111 ---11111 ---11111 ---11111 予約 000458H 予約 ICR25 [R/W] B,H,W ICR26 [R/W] B,H,W ICR27 [R/W] B,H,W ---11111 ---11111 ---11111 00045CH 予約 ICR29 [R/W] B,H,W ---11111 予約 予約 予約 000460H 予約 予約 000464H 予約 予約 ICR38 [R/W] B,H,W ICR39 [R/W] B,H,W ---11111 ---11111 000468H 予約 予約 ICR42 [R/W] B,H,W ICR43 [R/W] B,H,W ---11111 ---11111 00046CH 予約 予約 000470H 予約 予約 割込み コントローラ 予約 ICR48 [R/W] B,H,W ICR49 [R/W] B,H,W ICR50 [R/W] B,H,W ICR51 [R/W] B,H,W ---11111 ---11111 ---11111 ---11111 000474H 予約 予約 000478H 予約 予約 ICR58 [R/W] B,H,W ICR59 [R/W] B,H,W ---11111 ---11111 00047CH 予約 予約 ICR62 [R/W] B,H,W ICR63 [R/W] B,H,W ---11111 ---11111 予約 予約 797 付録 付表 A-1 MB91461 I/O マップ (8 / 19) アドレス レジスタ 0 1 2 3 000480H RSRR [R/W] B,H,W STCR [R/W] B,H,W TBCR [R/W] B,H,W 10000000 00110011 X0000X00 000484H CLKR [R/W] B,H,W 00000000 000488H 00048CH CTBR [W] B,H,W XXXXXXXX DIVR0 [R/W] B,H,W 00000011 WPR [W] B,H,W XXXXXXXX DIVR1 [R/W] B,H,W 00000000 予約 PLLDIVM [R/W] B,H ---00000 PLLDIVN [R/W] B,H ---00000 000490H ブロック クロック制御 予約 予約 予約 PLL インタフェース 予約 000494H 予約 ∼ 00049CH 予約 0004A0H 予約 0004A4H 予約 0004A8H WTHR [R/W] B,H ---XXXXX WTCER [R/W] B,H ------00 WTCR [R/W] B,H 00000000 000-00-0 WTBR [R/W] B, B,H ---XXXXX XXXXXXXX XXXXXXXX WTMR [R/W] B,H --XXXXXX WTSR [R/W] B --XXXXXX リアルタイム クロック 予約 0004ACH ∼ 0004BCH 0004C0H 予約 0004C8H CAN CANPRE [R/W] B,H 00000000 0004C4H 予約 OSCR [R/W] B,H 00---000 0004D0H 予約 ハードウェア ウォッチドッグ インターバル タイマ 予約 予約 0004D8H ( クロック コントロール ) HWDCS [R/W,W] B 00011000 予約 0004CCH 0004D4H 予約 予約 SHDE [R/W] B 0------- EXTE [R/W] B,H 00000000 予約 EXTLV [R/W] B,H 00000000 00000000 EXTF [R/W] B,H 00000000 予約 シャットダウン コントローラ 0004DCH ∼ 00063CH 798 予約 予約 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (9 / 19) アドレス レジスタ 0 1 2 3 000640H ASR0 [R/W] B,H,W 00000000 00000000 ACR0*2 [R/W] B,H,W 1111XX00 00000000 000644H ASR1 [R/W] B,H,W XXXXXXXX XXXXXXXX ACR1 [R/W] B,H,W XXXXXXXX XXXXXXXX 000648H ASR2 [R/W] B,H,W XXXXXXXX XXXXXXXX ACR2 [R/W] B,H,W XXXXXXXX XXXXXXXX 00064CH ASR3 [R/W] B,H,W XXXXXXXX XXXXXXXX ACR3 [R/W] B,H,W XXXXXXXX XXXXXXXX 000650H ASR4 [R/W] B,H,W XXXXXXXX XXXXXXXX ACR4 [R/W] B,H,W XXXXXXXX XXXXXXXX 000654H 予約 000658H 予約 00065CH 予約 000660H AWR0 [R/W] B,H,W 01111111 11111011 AWR1 [R/W] B,H,W XXXXXXXX XXXXXXXX 000664H AWR2 [R/W] B,H,W XXXXXXXX XXXXXXXX AWR3 [R/W] B,H,W XXXXXXXX XXXXXXXX 000668H AWR4 [R/W] B,H,W XXXXXXXX XXXXXXXX 予約 00066CH 予約 000670H 予約 000674H 000678H 外部バス 予約 IOWR0 [R/W] B,H,W XXXXXXXX IOWR1 [R/W] B,H,W XXXXXXXX 00067CH 000680H ブロック IOWR2 [R/W] B,H,W XXXXXXXX 予約 予約 TCR [R/W]*3 B,H,W 0000XXXX 予約 CSER [R/W] B,H,W CHER [R/W] B,H,W 00000001 11111111 000684H 予約 000688H ∼ 0007F8H 0007FCH 予約 予約 MODR [W] B XXXXXXXX 予約 モードレジスタ 000800H ∼ 000CFCH 予約 予約 799 付録 付表 A-1 MB91461 I/O マップ (10 / 19) アドレス レジスタ 0 1 000D00H 予約 000D04H 予約 000D08H 予約 000D0CH 予約 2 3 PDRD14 [R] B,H ----XXXX PDRD15 [R] B,H ----XXXX 000D10H PDRD16 [R] B,H X------- PDRD17 [R] B,H XXXXXXXX PDRD18 [R] B,H -----XXX PDRD19 [R] B,H -XXX-XXX 000D14H PDRD20 [R] B,H -XXX-XXX PDRD21 [R] B,H -XXX-XXX PDRD22 [R] B,H XXXXXX-X PDRD23 [R] B,H -X-XXXXX 000D18H PDRD24 [R] B,H XXXXXXXX 000D1CH PDRD28 [R] B,H ---XXXXX ブロック R-bus ポート データダイレクト リードレジスタ 予約 PDRD29 [R] B,H XXXXXXXX 000D20H 予約 予約 000D24H ∼ 000D3CH 予約 000D40H 予約 000D44H 予約 000D48H 予約 000D4CH 予約 予約 DDR14 [R/W] B,H ----0000 DDR15 [R/W] B,H ----0000 000D50H DDR16 [R/W] B,H 0------- DDR17 [R/W] B,H 00000000 DDR18 [R/W] B,H -----000 DDR19 [R/W] B,H -000-000 000D54H DDR20 [R/W] B,H -000-000 DDR21 [R/W] B,H -000-000 DDR22 [R/W] B,H 000000-0 DDR23 [R/W] B,H -0-00000 000D58H DDR24 [R/W] B,H ---00000 000D5CH DDR28 [R/W] B,H ---00000 000D60H R-bus ポート 方向レジスタ 予約 DDR29 [R/W] B,H 00000000 予約 予約 000D64H ∼ 000D7CH 800 予約 予約 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (11 / 19) アドレス レジスタ 0 1 2 3 PFR14 [R/W] B,H ----0000 PFR15 [R/W] B,H ----0000 000D80H 予約 000D84H 予約 000D88H 予約 000D8CH 予約 000D90H PFR16 [R/W] B,H 0------- PFR17 [R/W] B,H 00000000 PFR18 [R/W] B,H -----000 PFR19 [R/W] B,H -000-000 000D94H PFR20 [R/W] B,H -000-000 PFR21 [R/W] B,H -000-000 PFR22 [R/W] B,H 000000-0 PFR23 [R/W] B,H -0-00000 000D98H PFR24 [R/W] B,H 00000000 000D9CH PFR28 [R/W] B,H ---00000 ブロック R-bus ポート ファンクション レジスタ 予約 PFR29 [R/W] B,H 00000000 000DA0H 予約 予約 000DA4H ∼ 000DBCH 予約 000DC0H 予約 000DC4H 予約 000DC8H 予約 000DCCH 予約 予約 EPFR14 [R/W] B,H ----0000 EPFR15 [R/W] B,H ----0000 000DD0H EPFR16 [R/W] B,H 0------- EPFR17 [R/W] B,H 00000000 EPFR18 [R/W] B,H -----000 EPFR19 [R/W] B,H -000-000 000DD4H EPFR20 [R/W] B,H -000-000 EPFR21 [R/W] B,H -000-000 EPFR22 [R/W] B,H 000000-0 EPFR23 [R/W] B,H -0-00000 000DD8H EPFR24 [R/W] B,H 00000000 000DDCH EPFR28 [R/W] B,H ---00000 000DE0H R-bus 拡張ポート ファンクション レジスタ 予約 EPFR29 [R/W] B,H 00000000 予約 予約 000DE4H ∼ 000DFCH 予約 予約 000E00H ∼ 000E3CH 予約 801 付録 付表 A-1 MB91461 I/O マップ (12 / 19) アドレス レジスタ 0 1 2 3 PILR14 [R/W] B,H ----0000 PILR15 [R/W] B,H ----0000 000E40H 予約 000E44H 予約 000E48H 予約 000E4CH 予約 000E50H PILR16 [R/W] B,H 0------- PILR17 [R/W] B,H 00000000 PILR18 [R/W] B,H -----000 PILR19 [R/W] B,H -000-000 000E54H PILR20 [R/W] B,H -000-000 PILR21 [R/W] B,H -000-000 PILR22 [R/W] B,H 000000-0 PILR23 [R/W] B,H -0-00000 000E58H PILR24 [R/W] B,H 00000000 000E5CH PILR28 [R/W] B,H ---00000 ブロック R-bus 端子入力レベル 選択レジスタ 予約 PILR29 [R/W] B,H 00000000 予約 000E60H ∼ 000EBCH 予約 000EC0H 予約 000EC4H 予約 000EC8H 予約 000ECCH 予約 PPER14 [R/W] B,H ----0000 PPER15 [R/W] B,H ----0000 000ED0H PPER16 [R/W] B,H 0------- PPER17 [R/W] B,H 00000000 PPER18 [R/W] B,H -----000 PPER19 [R/W] B,H -000-000 000ED4H PPER20 [R/W] B,H -000-000 PPER21 [R/W] B,H -000-000 PPER22 [R/W] B,H 000000-0 PPER23 [R/W] B,H -0-00000 000ED8H PPER24 [R/W] B,H 00000000 000EDCH PPER28 [R/W] B,H ---00000 000EE0H R-bus ポート プルアップ / プルダウン 許可レジスタ 予約 PPER29 [R/W] B,H 00000000 予約 予約 000EE4H ∼ 000EFCH 802 予約 予約 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (13 / 19) アドレス レジスタ 0 1 2 3 PPCR14 [R/W] B,H ----1111 PPCR15 [R/W] B,H ----1111 000F00H 予約 000F04H 予約 000F08H 予約 000F0CH 予約 000F10H PPCR16 [R/W] B,H 1------- PPCR17 [R/W] B,H -111-111 PPCR18 [R/W] B,H 111111-1 PPCR19 [R/W] B,H -1-11111 000F14H PPCR20 [R/W] B,H -111-111 PPCR21 [R/W] B,H -111-111 PPCR22 [R/W] B,H 111111-1 PPCR23 [R/W] B,H -1-11111 000F18H PPCR24 [R/W] B,H ---11111 000F1CH PPCR28 [R/W] B,H ---11111 000F20H ブロック R-bus ポート プルアップ / プルダウン 制御レジスタ 予約 PPCR29 [R/W] B,H 11111111 予約 予約 000F24H ∼ 000F3CH 予約 001000H DMASA0 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001004H DMADA0 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001008H DMASA1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00100CH DMADA1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001010H DMASA2 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001014H DMADA2 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001018H DMASA3 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00101CH DMADA3 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001020H DMASA4 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001024H DMADA4 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 予約 DMAC 803 付録 付表 A-1 MB91461 I/O マップ (14 / 19) アドレス レジスタ 0 1 2 3 ブロック 001028H ∼ 007FFCH 予約 予約 008000H 予約 ∼ 00BFFCH 00C000H CTRLR0 [R/W] B,H 00000000 00000001 STATR0 [R/W] B,H 00000000 00000000 00C004H ERRCNT0 [R] B,H,W 00000000 00000000 BTR0 [R/W] B,H,W 00100011 00000001 00C008H INTR0 [R]B,H,W 00000000 00000000 TESTR0 [R/W]B,H,W 00000000 X0000000 00C00CH BRPE0 [R/W]B,H,W 00000000 00000000 予約 00C010H IF1CREQ0 [R/W] B,H 00000000 00000001 IF1CMSK0 [R/W] B,H 00000000 00000000 00C014H IF1MSK20 [R/W] B,H,W 11111111 11111111 IF1MSK10 [R/W] B,H,W 11111111 11111111 00C018H IF1ARB20 [R/W] B,H,W 00000000 00000000 IF1ARB10 [R/W] B,H,W 00000000 00000000 00C01CH IF1MCTR0 [R/W] B,H,W 00000000 00000000 予約 00C020H IF1DTA10 [R/W] B,H,W 00000000 00000000 IF1DTA20 [R/W] B,H,W 00000000 00000000 00C024H IF1DTB10 [R/W] B,H,W 00000000 00000000 IF1DTB20 [R/W]B,H,W 00000000 00000000 CAN 0 制御 レジスタ CAN 0 IF 1 レジスタ 00C028H ∼ 00C02CH 予約 00C030H IF1DTA20 [R/W] B,H,W 00000000 00000000 IF1DTA10 [R/W] B,H,W 00000000 00000000 00C034H IF1DTB20 [R/W] B,H,W 00000000 00000000 IF1DTB10 [R/W] B,H,W 00000000 00000000 00C038H ∼ 00C03CH 804 予約 CAN 0 IF 1 レジスタ 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (15 / 19) アドレス レジスタ 0 1 2 3 00C040H IF2CREQ0 [R/W] B,H 00000000 00000001 IF2CMSK0 [R/W] B,H 00000000 00000000 00C044H IF2MSK20 [R/W] B,H,W 11111111 11111111 IF2MSK10 [R/W] B,H,W 11111111 11111111 00C048H IF2ARB20 [R/W] B,H,W 00000000 00000000 IF2ARB10 [R/W] B,H,W 00000000 00000000 00C04CH IF2MCTR0 [R/W] B,H,W 00000000 00000000 予約 00C050H IF2DTA10 [R/W] B,H,W 00000000 00000000 IF2DTA20 [R/W] B,H,W 00000000 00000000 00C054H IF2DTB10 [R/W] B,H,W 00000000 00000000 IF2DTB20 [R/W] B,H,W 00000000 00000000 ブロック CAN 0 IF 2 レジスタ 00C058H ∼ 00C05CH 予約 00C060H IF2DTA20 [R/W] B,H,W 00000000 00000000 IF2DTA10 [R/W] B,H,W 00000000 00000000 00C064H IF2DTB20 [R/W] B,H,W 00000000 00000000 IF2DTB10 [R/W] B,H,W 00000000 00000000 00C068H 予約 ∼ 00C07CH 00C080H TREQR20 [R] B,H,W 00000000 00000000 TREQR10 [R] B,H,W 00000000 00000000 00C084H 予約 00C088H 予約 00C08CH 予約 00C090H NEWDT20 [R] B,H,W 00000000 00000000 NEWDT10 [R] B,H,W 00000000 00000000 00C094H 予約 00C098H 予約 00C09CH 予約 00C0A0H 00C0A4H INTPND20 [R] B,H,W 00000000 00000000 CAN 0 ステータス フラグ INTPND10 [R]B,H,W 00000000 00000000 予約 805 付録 付表 A-1 MB91461 I/O マップ (16 / 19) アドレス レジスタ 0 1 2 00C0A8H 予約 00C0ACH 予約 00C0B0H MSGVAL20 [R] B,H,W 00000000 00000000 3 ブロック MSGVAL10 [R] B,H,W 00000000 00000000 00C0B4H 予約 00C0B8H 予約 00C0BCH 予約 CAN 0 ステータス フラグ 00C0C0H 予約 ∼ 00C0FCH 00C100H CTRLR1 [R/W] B,H 00000000 00000001 STATR1 [R/W] B,H 00000000 00000000 00C104H ERRCNT1 [R] B,H,W 00000000 00000000 BTR1 [R/W] B,H,W 00100011 00000001 00C108H INTR1 [R] B,H,W 00000000 00000000 TESTR1 [R/W] B,H,W 00000000 X0000000 00C10CH BRPE1 [R/W] B,H,W 00000000 00000000 予約 00C110H IF1CREQ1 [R/W] B,H 00000000 00000001 IF1CMSK1 [R/W] B,H 00000000 00000000 00C114H IF1MSK21 [R/W] B,H,W 11111111 11111111 IF1MSK11 [R/W] B,H,W 11111111 11111111 00C118H IF1ARB21 [R/W] B,H,W 00000000 00000000 IF1ARB11 [R/W] B,H,W 00000000 00000000 00C11CH IF1MCTR1 [R/W] B,H,W 00000000 00000000 予約 00C120H IF1DTA11 [R/W] B,H,W 00000000 00000000 IF1DTA21 [R/W] B,H,W 00000000 00000000 00C124H IF1DTB11 [R/W] B,H,W 00000000 00000000 IF1DTB21 [R/W] B,H,W 00000000 00000000 00C128H 予約 ∼ 00C12CH 00C130H IF1DTA21 [R/W] B,H,W 00000000 00000000 IF1DTA11 [R/W] B,H,W 00000000 00000000 00C134H IF1DTB21 [R/W] B,H,W 00000000 00000000 IF1DTB11 [R/W] B,H,W 00000000 00000000 806 CAN 1 制御レジスタ CAN 1 IF 1 レジスタ 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (17 / 19) アドレス レジスタ 0 1 2 3 00C138H CAN 1 IF 1 予約 ∼ 00C13CH ブロック レジスタ 00C140H IF2CREQ1 [R/W]B,H 00000000 00000001 IF2CMSK1 [R/W]B,H 00000000 00000000 00C144H IF2MSK21 [R/W]B,H,W 11111111 11111111 IF2MSK11 [R/W]B,H,W 11111111 11111111 00C148H IF2ARB21 [R/W]B,H,W 00000000 00000000 IF2ARB11 [R/W]B,H,W 00000000 00000000 00C14CH IF2MCTR1 [R/W]B,H,W 00000000 00000000 予約 00C150H IF2DTA11 [R/W]B,H,W 00000000 00000000 IF2DTA21 [R/W]B,H,W 00000000 00000000 00C154H IF2DTB11 [R/W]B,H,W 00000000 00000000 IF2DTB21 [R/W]B,H,W 00000000 00000000 CAN 1 IF 2 レジスタ 00C158H ∼ 00C15CH 予約 00C160H IF2DTA21 [R/W]B,H,W 00000000 00000000 IF2DTA11 [R/W]B,H,W 00000000 00000000 00C164H IF2DTB21 [R/W]B,H,W 00000000 00000000 IF2DTB11 [R/W]B,H,W 00000000 00000000 00C168H 予約 ∼ 00C17CH 00C180H TREQR21 [R]B,H,W 00000000 00000000 TREQR11 [R]B,H,W 00000000 00000000 00C184H 予約 00C188H 予約 00C18CH 予約 CAN 1 00C190H NEWDT21 [R]B,H,W 00000000 00000000 NEWDT11 [R]B,H,W 00000000 00000000 00C194H 予約 00C198H 予約 00C19CH 予約 00C1A0H INTPND21 [R]B,H,W 00000000 00000000 ステータス フラグ INTPND11 [R]B,H,W 00000000 00000000 807 付録 付表 A-1 MB91461 I/O マップ (18 / 19) アドレス レジスタ 0 1 2 00C1A4H 予約 00C1A8H 予約 00C1ACH 予約 00C1B0H MSGVAL21 [R]B,H,W 00000000 00000000 3 MSGVAL11 [R]B,H,W 00000000 00000000 00C1B4H 予約 00C1B8H 予約 00C1BCH 予約 ブロック CAN 1 ステータス フラグ 00C1C0H ∼ 00C1FCH 予約 00F000H ∼ 00FFFCH 予約 予約 010000H ∼ 013FFCH Cache TAG way 1 (010000H ∼ 0107FCH) 014000H ∼ 017FFCH Cache TAG way 2 (014000H ∼ 0147FCH) 命令キャッシュ 018000H ∼ 01BFFCH Cache RAM way 1 (018000H ∼ 0187FCH) 01C000H ∼ 01FFFCH Cache RAM way 2 (01C000H ∼ 01C7FCH) 020000H ∼ 02FFFCH 030000H ∼ 03FFFCH 808 予約 予約 I/D-RAM : 64 K バイト ( 命令アクセスは 0 ウェイトサイクル , データアクセスは 1 ウェイトサイクル ) I/D-RAM 64 K バイト 付録 A I/O マップ 付表 A-1 MB91461 I/O マップ (19 / 19) アドレス レジスタ 0 1 2 3 ブロック 040000H ∼ 07FFFCH 外部メモリ領域 (256 K バイト ) 080000H ∼ 0BFFFCH 外部メモリ領域 (256 K バイト ) 外部バス 0C0000H ∼ 0FFFF4H 外部メモリ領域 (256 K バイト ) 0FFFF8H FMV [R] 0FFFFCH FRV [R] リセットベクタ / モードベクタ 100000H ∼ 13FFFCH 外部メモリ領域 (256 K バイト ) 140000H ∼ 17FFFCH 外部メモリ領域 (256 K バイト ) 180000H ∼ 1BFFFCH 外部メモリ領域 (256 K バイト ) 外部バス 1C0000H ∼ 1FFFFCH 外部メモリ領域 (256 K バイト ) 200000H ∼ 2FFFFCH 外部メモリ領域 (1 M バイト ) 300000H ∼ 3FFFFCH 外部メモリ領域 (1 M バイト ) *1:DMACA0 ∼ DMACA4 の下位 16 ビット (DTC15 ∼ DTC0) は , バイトのアクセスはできません。 *2:ACR0[11:10] はバス幅に関するモードベクタフェッチ情報によります。 *3:TCR[3:0] INIT value = 0000, RST の後に , 値を保ちます。 809 付録 付表 A-2 MB91F467R I/O マップ (1 / 21) アドレス レジスタ +0 +1 +2 +3 000000H PDR00 [R/W] B, H XXXXXXXX PDR01 [R/W] B, H XXXXXXXX 000004H 予約 PDR05 [R/W] B, H XXXXXXXX PDR06 [R/W] B, H XXXXXXXX PDR07 [R/W] B, H XXXXXXXX 000008H PDR08 [R/W] B, H XXXX - - XX PDR09 [R/W] B, H - - - XXXXX PDR10 [R/W] B, H - XXXXXXX PDR11 [R/W] B, H - - - - - - XX 00000CH 予約 PDR13 [R/W] B, H - - - - - XXX PDR14 [R/W] B, H - - - - XXXX PDR15 [R/W] B, H - - - - XXXX 000010H PDR16 [R/W] B, H X------- PDR17 [R/W] B, H XXXXXXXX PDR18 [R/W] B, H - - - - - XXX PDR19 [R/W] B, H - XXX - XXX 000014H PDR20 [R/W] B, H - XXX - XXX PDR21 [R/W] B, H - XXX - XXX PDR22 [R/W] B, H XXXXXX - X PDR23 [R/W] B, H - X - XXXXX 000018H PDR24 [R/W] B, H XXXXXXXX 00001CH PDR28 [R/W] B, H XXXXXXXX ブロック 予約 ポートデータ レジスタ 予約 PDR29 [R/W] B, H XXXXXXXX 予約 000020H ∼ 00002CH 予約 予約 000030H EIRR0 [R/W] B 00000000 ENIR0 [R/W] B 00000000 ELVR0 [R/W] B, H 00000000 00000000 外部割込み (INT0 ∼ INT7) NMI 000034H EIRR1 [R/W] B 00000000 ENIR1 [R/W] B 00000000 ELVR1 [R/W] B, H 00000000 00000000 外部割込み (INT 8 ∼ INT15 ) 000038H DICR [R/W] B -------0 HRCL [R/W] B 0 - - 11111 予約 DLYI/I-unit 00003CH 予約 000040H SCR00 [R/W, W] B, H, W 00000000 SMR00 [R/W, W] B, H, W 00000000 000044H ESCR00 [R/W] B, H 00000X00 ECCR00 [R/W, R, W] B, H -00000XX 000048H SCR01 [R/W, W] B, H, W 00000000 SMR01 [R/W, W] B, H, W 00000000 00004CH ESCR01 [R/W] B, H 00000X00 ECCR01 [R/W, R, W] B, H -00000XX 810 予約 SSR00 [R/W, R] B, H, W 00001000 RDR00/TDR00 [R/W] B, H, W 00000000 LIN-USART 0 予約 SSR01 [R/W, R] B, H, W 00001000 RDR01/TDR01 [R/W] B, H, W 00000000 予約 LIN-USART 1 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (2 / 21) アドレス レジスタ +0 +1 +2 +3 000050H SCR02 [R/W, W] B, H, W 00000000 SMR02 [R/W, W] B, H, W 00000000 SSR02 [R/W, R] B, H, W 00001000 RDR02/TDR02 [R/W] B, H, W 00000000 000054H ESCR02 [R/W] B, H 00000X00 ECCR02 [R/W, R, W] B, H -00000XX 000058H SCR03 [R/W, W] B, H, W 00000000 SMR03 [R/W, W] B, H, W 00000000 00005CH ESCR03 [R/W] B, H 00000X00 ECCR03 [R/W, R, W] B, H -00000XX 000060H SCR04 [R/W, W] B, H, W 00000000 SMR04 [R/W, W] B, H, W 00000000 SSR04 [R/W, R] B, H, W 00001000 RDR04/TDR04 [R/W] B, H, W 00000000 000064H ESCR04 [R/W] B, H 00000X00 ECCR04 [R/W, R, W] B, H -00000XX FSR04 [R] B, H - - - 00000 FCR04 [R/W] B, H 0001 - 000 000068H SCR05 [R/W, W] B, H, W 00000000 SMR05 [R/W, W] B, H, W 00000000 SSR05 [R/W, R] B, H, W 00001000 RDR05/TDR05 [R/W] B, H, W 00000000 00006CH ESCR05 [R/W] B, H 00000X00 ECCR05 [R/W, R, W] B, H -00000XX FSR05 [R] B, H - - - 00000 FCR05 [R/W] B, H 0001 - 000 000070H SCR06 [R/W, W] B, H, W 00000000 SMR06 [R/W, W] B, H, W 00000000 SSR06 [R/W, R] B, H, W 00001000 RDR06/TDR06 [R/W] B, H, W 00000000 000074H ESCR06 [R/W] B, H 00000X00 ECCR06 [R/W, R, W] B, H -00000XX FSR06 [R] B, H - - - 00000 FCR06 [R/W] B, H 0001 - 000 000078H, 00007CH ブロック LIN-USART 2 予約 SSR03 [R/W, R] B, H, W 00001000 RDR03/TDR03 [R/W] B, H, W 00000000 LIN-USART 3 予約 予約 LIN-USART 4 (FIFO) LIN-USART 5 (FIFO) LIN-USART 6 (FIFO) 予約 000080H BGR100 [R/W] B, H, W 00000000 BGR000 [R/W] B, H, W 00000000 BGR101 [R/W] B, H, W 00000000 BGR001 [R/W] B, H, W 00000000 000084H BGR104 [R/W] B, H, W 00000000 BGR004 [R/W] B, H, W 00000000 BGR105 [R/W] B, H, W 00000000 BGR005 [R/W] B, H, W 00000000 000088H BGR106 [R/W] B, H, W 00000000 BGR006 [R/W] B, H, W 00000000 BGR107 [R/W] B, H, W 00000000 BGR007 [R/W] B, H, W 00000000 00008CH BGR102 [R/W] B, H, W 00000000 BGR002 [R/W] B, H, W 00000000 ボーレート ジェネレータ LIN-USART 0∼6 予約 811 付録 付表 A-2 MB91F467R I/O マップ (3 / 21) アドレス レジスタ +0 +1 +2 +3 ブロック 000090H ∼ 0000CCH 予約 予約 0000D0H IBCR0 [R/W] B, H 00000000 IBSR0 [R] B, H 00000000 ITBAH0 [R/W] B, H - - - - - - 00 ITBAL0 [R/W] B, H 00000000 0000D4H ITMKH0 [R/W] B, H 00 - - - - 11 ITMKL0 [R/W] B, H 11111111 ISMK0 [R/W] B, H 01111111 ISBA0 [R/W] B, H - 0000000 0000D8H 予約 IDAR0 [R/W] B, H 00000000 ICCR0 [R/W] B - 0011111 予約 0000DCH IBCR1 [R/W] B, H 00000000 IBSR1 [R] B, H 00000000 ITBAH1 [R/W] B, H - - - - - - 00 ITBAL1 [R/W] B, H 00000000 0000E0H ITMKH1 [R/W] B, H 00 - - - - 11 ITMKL1 [R/W] B, H 11111111 ISMK1 [R/W] B, H 01111111 ISBA1 [R/W] B, H - 0000000 0000E4H 予約 IDAR1 [R/W] B, H 00000000 ICCR1 [R/W] B - 0011111 予約 I2C 0 I2C 1 0000E8H ∼ 0000FCH 予約 予約 000100H GCN10 [R/W] B, H 00110010 00010000 予約 GCN20 [R/W] B - - - - 0000 PPG コントロー ル0∼3 000104H GCN11 [R/W] B, H 00110010 00010000 予約 GCN21 [R/W] B - - - - 0000 PPG コントロー ル4∼7 000108H, 00010CH 予約 000110H PTMR00 [R] H 11111111 11111111 000114H PDUT00 [W] H XXXXXXXX XXXXXXXX 000118H PTMR01 [R] H 11111111 11111111 00011CH PDUT01 [W] H XXXXXXXX XXXXXXXX 000120H PTMR02 [R] H 11111111 11111111 000124H PDUT02 [W] H XXXXXXXX XXXXXXXX 812 予約 PCSR00 [W] H XXXXXXXX XXXXXXXX PCNH00 [R/W] B, H 0000000 - PCNL00 [R/W] B, H 000000 - 0 PPG 0 PCSR01 [W] H XXXXXXXX XXXXXXXX PCNH01 [R/W] B, H 0000000 - PCNL01 [R/W] B, H 000000 - 0 PPG 1 PCSR02 [W] H XXXXXXXX XXXXXXXX PCNH02 [R/W] B, H 0000000 - PCNL02 [R/W] B, H 000000 - 0 PPG 2 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (4 / 21) アドレス レジスタ +0 +1 000128H PTMR03 [R] H 11111111 11111111 00012CH PDUT03 [W] H XXXXXXXX XXXXXXXX 000130H PTMR04 [R] H 11111111 11111111 000134H PDUT04 [W] H XXXXXXXX XXXXXXXX 000138H PTMR05 [R] H 11111111 11111111 00013CH PDUT05 [W] H XXXXXXXX XXXXXXXX 000140H PTMR06 [R] H 11111111 11111111 000144H PDUT06 [W] H XXXXXXXX XXXXXXXX 000148H PTMR07 [R] H 11111111 11111111 00014CH PDUT07 [W] H XXXXXXXX XXXXXXXX +2 +3 ブロック PCSR03 [W] H XXXXXXXX XXXXXXXX PCNH03 [R/W] B, H 0000000 - PCNL03 [R/W] B, H 000000 - 0 PPG 3 PCSR04 [W] H XXXXXXXX XXXXXXXX PCNH04 [R/W] B, H 0000000 - PCNL04 [R/W] B, H 000000 - 0 PPG 4 PCSR05 [W] H XXXXXXXX XXXXXXXX PCNH05 [R/W] B, H 0000000 - PCNL05 [R/W] B, H 000000 - 0 PPG 5 PCSR06 [W] H XXXXXXXX XXXXXXXX PCNH06 [R/W] B, H 0000000 - PCNL06 [R/W] B, H 000000 - 0 PPG 6 PCSR07 [W] H XXXXXXXX XXXXXXXX PCNH07 [R/W] B, H 0000000 - PCNL07 [R/W] B, H 000000 - 0 PPG 7 000170H ∼ 00017CH 000180H 予約 予約 ICS01 [R/W] B 00000000 予約 予約 ICS23 [R/W] B 00000000 000184H IPCP0 [R] H XXXXXXXX XXXXXXXX IPCP1 [R] H XXXXXXXX XXXXXXXX 000188H IPCP2 [R] H XXXXXXXX XXXXXXXX IPCP3 [R] H XXXXXXXX XXXXXXXX 00018CH OCS01 [R/W] H - - - 0 - - 00 0000 - - 00 OCS23 [R/W] H - - - 0 - - 00 0000 - - 00 000190H OCCP0 [R/W] H XXXXXXXX XXXXXXXX OCCP1 [R/W] H XXXXXXXX XXXXXXXX 000194H OCCP2 [R/W] H XXXXXXXX XXXXXXXX OCCP3 [R/W] H XXXXXXXX XXXXXXXX 000198H 00019CH 予約 インプット キャプチャ 0∼3 アウトプット コンペア 0∼3 予約 813 付録 付表 A-2 MB91F467R I/O マップ (5 / 21) アドレス 0001A0H レジスタ +0 +1 +2 ADERH [R/W] B, H, W 00000000 00000000 +3 ADERL [R/W] B, H, W 00000000 00000000 0001A4H ADCS1 [R/W] B, H 00000000 ADCS0 [R/W] B, H 00000000 ADCR1 [R] B, H 000000XX ADCR0 [R] B, H XXXXXXXX 0001A8H ADCT1 [R/W] B, H 00010000 ADCT0 [R/W] B, H 00101100 ADSCH [R/W] B, H - - - 00000 ADECH [R/W] B, H - - - 00000 0001ACH 予約 ACSR0 [R/W] B, H - 11XXX00 0001B0H TMRLR0 [W] H XXXXXXXX XXXXXXXX 0001B4H 予約 0001B8H TMRLR1 [W] H XXXXXXXX XXXXXXXX 0001BCH 予約 0001C0H TMRLR2 [W] H XXXXXXXX XXXXXXXX 0001C4H 予約 0001C8H TMRLR3 [W] H XXXXXXXX XXXXXXXX 0001CCH ブロック A/D コンバータ アラームコンパ レータ 0 予約 TMR0 [R] H XXXXXXXX XXXXXXXX TMCSRH0 [R/W] B, H - - - 00000 TMCSRL0 [R/W] B, H 0 - 000000 リロードタイマ 0 (PPG 0, PPG 1) TMR1 [R] H XXXXXXXX XXXXXXXX TMCSRH1 [R/W] B, H - - - 00000 TMCSRL1 [R/W] B, H 0 - 000000 リロードタイマ 1 (PPG 2, PPG 3) TMR2 [R] H XXXXXXXX XXXXXXXX TMCSRH2 [R/W] B, H - - - 00000 TMCSRL2 [R/W] B, H 0 - 000000 リロードタイマ 2 (PPG 4, PPG 5) TMR3 [R] H XXXXXXXX XXXXXXXX TMCSRH3 [R/W] B, H - - - 00000 予約 TMCSRL3 [R/W] B, H 0 - 000000 リロードタイマ 3 (PPG 6, PPG 7) 0001D0H ∼ 0001E4H 0001E8H 予約 TMRLR7 [W] H XXXXXXXX XXXXXXXX 予約 TMR7 [R] H XXXXXXXX XXXXXXXX 0001ECH 予約 0001F0H TCDT0 [R/W] H XXXXXXXX XXXXXXXX 予約 TCCS0 [R/W] 00000000 フリーラン タイマ 0 (ICU 0, ICU 1) 0001F4H TCDT1 [R/W] H XXXXXXXX XXXXXXXX 予約 TCCS1 [R/W] 00000000 フリーラン タイマ 1 (ICU 2, ICU 3) 814 TMCSRL7 [R/W] B, H 0 - 000000 リロードタイマ 7 (A/D TMCSRH7 [R/W] B, H - - - 00000 コンバータ ) 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (6 / 21) アドレス レジスタ +0 +1 0001F8H TCDT2 [R/W] H XXXXXXXX XXXXXXXX 0001FCH TCDT3 [R/W] H XXXXXXXX XXXXXXXX ブロック +2 +3 予約 TCCS2 [R/W] 00000000 フリーラン タイマ 2 (OCU 0, OCU 1) 予約 TCCS3 [R/W] 00000000 フリーラン タイマ 3 (OCU 2, OCU 3) 000200H DMACA0 [R/W] B, H, W* 00000000 0000XXXX XXXXXXXX XXXXXXXX 000204H DMACB0 [R/W] B, H, W 00000000 00000000 XXXXXXXX XXXXXXXX 000208H DMACA1 [R/W] B, H, W* 00000000 0000XXXX XXXXXXXX XXXXXXXX 00020CH DMACB1 [R/W] B, H, W 00000000 00000000 XXXXXXXX XXXXXXXX 000210H DMACA2 [R/W] B, H, W* 00000000 0000XXXX XXXXXXXX XXXXXXXX 000214H DMACB2 [R/W] B, H, W 00000000 00000000 XXXXXXXX XXXXXXXX 000218H DMACA3 [R/W] B, H, W* 00000000 0000XXXX XXXXXXXX XXXXXXXX 00021CH DMACB3 [R/W] B, H, W 00000000 00000000 XXXXXXXX XXXXXXXX 000220H DMACA4 [R/W] B, H, W* 00000000 0000XXXX XXXXXXXX XXXXXXXX 000224H DMACB4 [R/W] B, H, W 00000000 00000000 XXXXXXXX XXXXXXXX DMAC DMAC 000228H ∼ 00023CH 000240H 予約 DMACR [R/W] B, H, W 00 - - 0000 予約 000244H ∼ 000364H 予約 予約 000368H IBCR2 [R/W] B, H 00000000 IBSR2 [R] B, H 00000000 ITBAH2 [R/W] B, H - - - - - - 00 ITBAL2 [R/W] B, H 00000000 00036CH ITMKH2 [R/W] B, H 00 - - - - 11 ITMKL2 [R/W] B, H 11111111 ISMK2 [R/W] B, H 01111111 ISBA2 [R/W] B, H - 0000000 000370H 予約 IDAR2 [R/W] B, H 00000000 ICCR2 [R/W] B - 0011111 予約 I2C 2 815 付録 付表 A-2 MB91F467R I/O マップ (7 / 21) アドレス レジスタ +0 +1 +2 +3 ブロック 000374H ∼ 00038CH 000390H 予約 予約 ROMS [R] 11111111 00000000 ROM 選択 レジスタ 予約 000394H ∼ 0003ECH 予約 予約 0003F0H BSD0 [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F4H BSD1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F8H BSDC [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003FCH BSRR [R] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ビットサーチ モジュール 000400H ∼ 00043CH 予約 予約 000440H ICR00 [R/W] B, H, W ---11111 ICR01 [R/W] B, H, W ---11111 ICR02 [R/W] B, H, W ---11111 ICR03 [R/W] B, H, W ---11111 000444H ICR04 [R/W] B, H, W ---11111 ICR05 [R/W] B, H, W ---11111 ICR06 [R/W] B, H, W ---11111 ICR07 [R/W] B, H, W ---11111 000448H ICR08 [R/W] B, H, W ---11111 ICR09 [R/W] B, H, W ---11111 予約 ICR11 [R/W] B, H, W ---11111 00044CH ICR12 [R/W] B, H, W ---11111 ICR13 [R/W] B, H, W ---11111 000450H ICR16 [R/W] B, H, W ---11111 000454H ICR20 [R/W] B, H, W ---11111 ICR21 [R/W] B, H, W ---11111 ICR22 [R/W] B, H, W ---11111 ICR23 [R/W] B, H, W ---11111 予約 ICR25 [R/W] B, H, W ---11111 ICR26 [R/W] B, H, W ---11111 ICR27 [R/W] B, H, W ---11111 予約 ICR29 [R/W] B, H, W ---11111 000458H 00045CH 000460H 816 割込みコント ローラ ユニット 予約 ICR19 [R/W] B, H, W ---11111 予約 予約 予約 割込みコント ローラ 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (8 / 21) アドレス レジスタ +0 000464H 000468H +1 +2 +3 予約 ICR38 [R/W] B, H, W ---11111 ICR39 [R/W] B, H, W ---11111 予約 ICR42 [R/W] B, H, W ---11111 ICR43 [R/W] B, H, W ---11111 ICR50 [R/W] B, H, W ---11111 ICR51 [R/W] B, H, W ---11111 ICR58 [R/W] B, H, W ---11111 ICR59 [R/W] B, H, W ---11111 ICR62 [R/W] B, H, W ---11111 ICR63 [R/W] B, H, W ---11111 00046CH 000470H ブロック 予約 ICR48 [R/W] B, H, W ---11111 ICR49 [R/W] B, H, W ---11111 000474H 割込みコント ローラ 予約 000478H 予約 00047CH 予約 ICR61 [R/W] B, H, W ---11111 000480H RSRR [R/W] B, H, W 10000000 STCR [R/W] B, H, W 00110011 TBCR [R/W] B, H, W 00XXX - 00 CTBR [W] B, H, W XXXXXXXX 000484H CLKR [R/W] B, H, W ---- 0000 WPR [W] B, H, W XXXXXXXX DIVR0 [R/W] B, H, W 00000011 DIVR1 [R/W] B, H, W 00000000 000488H 予約 00048CH PLLDIVM [R/W] B, H - - - 00000 000490H PLLCTRL [R/W] B, H - - - - 0000 PLLDIVN [R/W] B, H - - - 00000 クロック制御 予約 PLLDIVG [R/W] B, H - - - 00000 PLLDIVG [W] B, H 00000000 PLL インタ フェース 予約 000494H ∼ 00049CH 予約 WTCER [R/W] B, H - - - - - - 00 0004A0H 予約 0004A4H 予約 0004A8H WTHR [R/W] B, H - - - 00000 0004ACH 予約 WTCR [R/W] B, H 00000000 000 - 00 - 0 WTBR [R/W] B, B, H - - - XXXXX XXXXXXXX XXXXXXXX WTMR [R/W] B, H - - 000000 予約 WTSR [R/W] B - - 000000 予約 CSCFG [R/W] 0X000000 CMCFG [R/W] 00000000 リアルタイムク ロック クロックモニタ 817 付録 付表 A-2 MB91F467R I/O マップ (9 / 21) アドレス レジスタ +0 +1 +2 +3 0004B0H CUCR [R/W] - - - - - - - - - - - 0 - - 00 CUTD [R/W] 10000000 00000000 0004B4H CUTR1 [R] - - - - - - - - 00000000 CUTR2 [R] 00000000 00000000 0004B8H CMPR [R/W] - - 000010 11111101 0004BCH CMT1 [R/W] 00000000 1 - - - 0000 0004C0H CANPRE [R/W] B, H 0 - - - 0000 0004C4H LVSEL [R/W] 00000111 LVDET [R/W] 0000 0 - 00 0004C8H OSCRH [R/W] 000 - - 001 OSCRL [R/W] - - - - - 000 0004CCH OSCCR [R/W] -------0 0004D4H SHDE [R/W] B 0------- 0004D8H ブロック サブクロック キャリブレー ション CMCR [R/W] - 001 - - 00 予約 CMT2 [R/W] - - 000000 - - 000000 クロック変調 CAN 予約 ( クロック コント ロール ) 予約 WPCRH [R/W] 00 - - - 000 低電圧検出 WPCRL [R/W] - - - - - - 00 メイン発振 スタンバイ コントロール 予約 予約 EXTE [R/W] B, H 00000000 EXTLV [R/W] B, H 00000000 00000000 メイン / サブ 発振安定 待ちタイマ EXTF [R/W] B, H 00000000 予約 シャットダウン コントローラ 0004DCH ∼ 00063CH 予約 予約 000640H ASR0 [R/W] B, H, W 00000000 00000000 ACR0 [R/W] B, H, W 1111**00 00100000 000644H ASR1 [R/W] B, H, W XXXXXXXX XXXXXXXX ACR1 [R/W] B, H, W XXXXXXXX XXXXXXXX 000648H ASR2 [R/W] B, H, W XXXXXXXX XXXXXXXX ACR2 [R/W] B, H, W XXXXXXXX XXXXXXXX 00064CH ASR3 [R/W] B, H, W XXXXXXXX XXXXXXXX ACR3 [R/W] B, H, W XXXXXXXX XXXXXXXX 000650H ASR4 [R/W] B, H, W XXXXXXXX XXXXXXXX ACR4 [R/W] B, H, W XXXXXXXX XXXXXXXX 000654H ∼ 00065CH 予約 000660H AWR0 [R/W] B, H, W 01001111 11111011 AWR1 [R/W] B, H, W XXXXXXXX XXXXXXXX 000664H AWR2 [R/W] B, H, W XXXXXXXX XXXXXXXX AWR3 [R/W] B, H, W XXXXXXXX XXXXXXXX 000668H AWR4 [R/W] B, H, W XXXXXXXX XXXXXXXX 予約 818 外部バス 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (10 / 21) アドレス レジスタ +0 +1 00066CH 000670H +3 予約 MCRA [R/W] B, H, W XXXXXXXX ブロック 予約 MCRB [R/W] B, H, W XXXXXXXX 000674H 予約 予約 IORW0 [R/W] B, H, W XXXXXXXX IORW1 [R/W] B, H, W XXXXXXXX 000680H CSER [R/W] B, H, W 00000001 CHER [R/W] B, H, W 11111111 000684H RCRH [R/W] B, H, W 00XXXXXX RCRL [R/W] B, H, W XXXX0XXX 000678H +2 00067CH IORW2 [R/W] B, H, W XXXXXXXX 予約 予約 TCR [R/W] B, H, W 00000000 外部バス 予約 予約 外部バス 000688H ∼ 0007F8H 0007FCH 予約 予約 予約 MODR [W] B XXXXXXXX 予約 モードレジスタ 000800H ∼ 000BFCH 予約 000C00H 予約 IOS [R/W] 00000000 予約 I ユニット 000C04H ∼ 000CFCH 予約 予約 000D00H PDRD00 [R] B, H XXXXXXXX PDRD01 [R] B, H XXXXXXXX 000D04H 予約 PDRD05 [R] B, H XXXXXXXX PDRD06 [R] B, H XXXXXXXX PDRD07 [R] B, H XXXXXXXX 000D08H PDRD08 [R] B, H XXXX - - XX PDRD09 [R] B, H - - - XXXXX PDRD10 [R] B, H - XXXXXXX PDRD11 [R] B, H - - - - - - XX 000D0CH 予約 PDRD13 [R] B, H - - - - - XXX PDRD14 [R] B, H - - - - XXXX PDRD15 [R] B, H - - - - XXXX 000D10H PDRD16 [R] B, H X------- PDRD17 [R] B, H XXXXXXXX PDRD18 [R] B, H - - - - - XXX PDRD19 [R] B, H - XXX - XXX 000D14H PDRD20 [R] B, H - XXX - XXX PDRD21 [R] B, H - XXX - XXX PDRD22 [R] B, H XXXXXX - X PDRD23 [R] B, H - X - XXXXX 000D18H PDRD24 [R] B, H XXXXXXXX 000D1CH PDRD28 [R] B, H XXXXXXXX 予約 ポートデータ ダイレクト リード レジスタ 予約 PDRD29 [R] B, H XXXXXXXX 予約 819 付録 付表 A-2 MB91F467R I/O マップ (11 / 21) アドレス レジスタ +0 +1 +2 +3 ブロック 000D20H ∼ 000D3CH 予約 予約 000D40H DDR00 [R/W] B, H 00000000 DDR01 [R/W] B, H 00000000 000D44H 予約 DDR05 [R/W] B, H 00000000 DDR06 [R/W] B, H 00000000 DDR07 [R/W] B, H 00000000 000D48H DDR08 [R/W] B, H 0000 - - 00 DDR09 [R/W] B, H - - - 00000 DDR10 [R/W] B, H - 0000000 DDR11 [R/W] B, H - - - - - - 00 000D4CH 予約 DDR13 [R/W] B, H - - - - - 000 DDR14 [R/W] B, H - - - - 0000 DDR15 [R/W] B, H - - - - 0000 000D50H DDR16 [R/W] B, H 0------- DDR17 [R/W] B, H 00000000 DDR18 [R/W] B, H - - - - - 000 DDR19 [R/W] B, H - 000 - 000 000D54H DDR20 [R/W] B, H - 000 - 000 DDR21 [R/W] B, H - 000 - 000 DDR22 [R/W] B, H 000000 - 0 DDR23 [R/W] B, H - 0 - 00000 000D58H DDR24 [R/W] B, H 00000000 000D5CH DDR28 [R/W] B, H 00000000 予約 ポート方向 レジスタ 予約 DDR29 [R/W] B, H 00000000 ポート方向 レジスタ 予約 000D60H ∼ 000D7CH 予約 予約 000D80H PFR00 [R/W] B, H 11111111 PFR01 [R/W] B, H 11111111 000D84H 予約 PFR05 [R/W] B, H 11111111 PFR06 [R/W] B, H 11111111 PFR07 [R/W] B, H 11111111 000D88H PFR08 [R/W] B, H 1111 - - 11 PFR09 [R/W] B, H - - - 11111 PFR10 [R/W] B, H - 1111111 PFR11 [R/W] B, H - - - - - - 00 000D8CH 予約 PFR13 [R/W] B, H - - - - - 000 PFR14 [R/W] B, H - - - - 0000 PFR15 [R/W] B, H - - - - 0000 000D90H PFR16 [R/W] B, H 0------- PFR17 [R/W] B, H 00000000 PFR18 [R/W] B, H - - - - - 000 PFR19 [R/W] B, H - 000 - 000 000D94H PFR20 [R/W] B, H - 000 - 000 PFR21 [R/W] B, H - 000 - 000 PFR22 [R/W] B, H 000000 - 0 PFR23 [R/W] B, H - 0 - 00000 000D98H PFR24 [R/W] B, H 00000000 000D9CH PFR28 [R/W] B, H 00000000 予約 ポート ファンクション レジスタ 予約 PFR29 [R/W] B, H 00000000 予約 000DA0H ∼ 000DC4H 820 予約 予約 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (12 / 21) アドレス レジスタ +0 000DC8H 000DCCH +1 予約 予約 EPFR16 [R/W] B, H 000DD0H 0------000DD4H +2 +3 EPFR10 [R/W] B, H - - 00 - - - 0 予約 ブロック EPFR13 [R/W] B, H EPFR14 [R/W] B, H EPFR15 [R/W] B, H -----0-- - - - 0000 - - - - 0000 EPFR18 [R/W] B, H EPFR19 [R/W] B, H -----0--0---0-- 予約 EPFR20 [R/W] B, H EPFR21 [R/W] B, H -0---0--0---0-- 000DD8H, 000DDCH 拡張ポート ファンクション レジスタ 予約 予約 000DE0H ∼ 000DFCH 予約 予約 000E00H PODR00 [R/W] B, H 00000000 PODR01 [R/W] B, H 00000000 000E04H 予約 PODR05 [R/W] B, H 00000000 PODR06 [R/W] B, H 00000000 PODR07 [R/W] B, H 00000000 000E08H PODR08 [R/W] B, H 0000 - - 00 PODR09 [R/W] B, H - - - 00000 PODR10 [R/W] B, H - 0000000 PODR11 [R/W] B, H - - - - - - 00 000E0CH 予約 PODR13 [R/W] B, H - - - - - 000 PODR14 [R/W] B, H - - - - 0000 PODR15 [R/W] B, H - - - - 0000 000E10H PODR16 [R/W] B, H 0------- PODR17 [R/W] B, H 00000000 PODR18 [R/W] B, H - - - - - 000 PODR19 [R/W] B, H - 000 - 000 000E14H PODR20 [R/W] B, H - 000 - 000 PODR21 [R/W] B, H - 000 - 000 PODR22 [R/W] B, H 000000 - 0 PODR23 [R/W] B, H - 0 - 00000 000E18H PODR24 [R/W] B, H 00000000 000E1CH PODR28 [R/W] B, H 00000000 予約 ポート 出力選択 レジスタ 予約 PODR29 [R/W] B, H 00000000 予約 000E20H ∼ 000E3CH 予約 予約 821 付録 付表 A-2 MB91F467R I/O マップ (13 / 21) アドレス レジスタ +0 +1 +2 +3 000E40H PILR00 [R/W] B, H 00000000 PILR01 [R/W] B, H 00000000 000E44H 予約 PILR05 [R/W] B, H 00000000 PILR06 [R/W] B, H 00000000 PILR07 [R/W] B, H 00000000 000E48H PILR08 [R/W] B, H 0000 - - 00 PILR09 [R/W] B, H - - - 00000 PILR10 [R/W] B, H - 0000000 PILR11 [R/W] B, H - - - - - - 00 000E4CH 予約 PILR13 [R/W] B, H - - - - - 000 PILR14 [R/W] B, H - - - - 0000 PILR15 [R/W] B, H - - - - 0000 000E50H PILR16 [R/W] B, H 0------- PILR17 [R/W] B, H 00000000 PILR18 [R/W] B, H - - - - - 000 PILR19 [R/W] B, H - 000 - 000 000E54H PILR20 [R/W] B, H - 000 - 000 PILR21 [R/W] B, H - 000 - 000 PILR22 [R/W] B, H 000000 - 0 PILR23 [R/W] B, H - 0 - 00000 000E58H PILR24 [R/W] B, H 00000000 000E5CH PILR28 [R/W] B, H 00000000 ブロック 予約 ポート 入力レベル 選択レジスタ 予約 PILR29 [R/W] B, H 00000000 予約 000E60H ∼ 000E7CH 予約 予約 000E80H ∼ 000E88H 予約 000E8CH 予約 EPILR14 [R/W] B, H - - - - 0000 EPILR15 [R/W] B, H - - - - 0000 000E90H 予約 EPILR17 [R/W] B, H - - - - 0000 EPILR18 [R/W] B, H - - - - - 000 EPILR19 [R/W] B, H - 000 - 000 000E94H EPILR20 [R/W] B, H - 000 - 000 EPILR21 [R/W] B, H - 000 - 000 EPILR22 [R/W] B, H 000000 - 0 EPILR23 [R/W] B, H - 0 - 00000 000E98H EPILR24 [R/W] B, H 00 - - 0000 ポート 入力レベル 選択レジスタ 予約 000E9CH ∼ 000EBCH 000EC0H 000EC4H 000EC8H 000ECCH 822 予約 PPER00 [R/W] B, H PPER01 [R/W] B, H 00000000 00000000 予約 予約 予約 PPER05 [R/W] B, H PPER06 [R/W] B, H PPER07 [R/W] B, H 00000000 00000000 00000000 PPER08 [R/W] B, H PPER09 [R/W] B, H PPER10 [R/W] B, H PPER11 [R/W] B, H 0000 - - 00 - - - 00000 - 0000000 - - - - - - 00 予約 PPER13 [R/W] B, H PPER14 [R/W] B, H PPER15 [R/W] B, H - - - - - 000 - - - - 0000 - - - - 0000 ポート プルアップ / プルダウン 許可レジスタ 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (14 / 21) アドレス レジスタ +0 +1 +2 +3 000ED0H PPER16 [R/W] B, H PPER17 [R/W] B, H PPER18 [R/W] B, H PPER19 [R/W] B, H 0------00000000 - - - - - 000 - 000 - 000 000ED4H PPER20 [R/W] B, H PPER21 [R/W] B, H PPER22 [R/W] B, H PPER23 [R/W] B, H - 000 - 000 - 000 - 000 - - - - 00 - 0 - 0 - 00000 000ED8H PPER24 [R/W] B, H 00 - - 0000 000EDCH PPER28 [R/W] B, H PPER29 [R/W] B, H 00000000 00000000 予約 ブロック ポート プルアップ / プルダウン 許可レジスタ 予約 000EE0H ∼ 000EFCH 予約 予約 PPCR00 [R/W] B, H 11111111 PPCR01 [R/W] B, H 11111111 000F04H 予約 PPCR05 [R/W] B, H 11111111 PPCR06 [R/W] B, H 11111111 PPCR07 [R/W] B, H 11111111 000F08H PPCR08 [R/W] B, H 1111 - -11 PPCR09 [R/W] B, H - - - 11111 PPCR10 [R/W] B, H - 1111111 PPCR11 [R/W] B, H - - - - - -11 000F0CH 予約 PPCR13 [R/W] B, H - - - - - 111 PPCR14 [R/W] B, H - - - - 1111 PPCR15 [R/W] B, H - - - - 1111 000F10H PPCR16 [R/W] B, H 1------- PPCR17 [R/W] B, H 11111111 PPCR18 [R/W] B, H - - - - - 111 PPCR19 [R/W] B, H - 111 - 111 000F14H PPCR20 [R/W] B, H - 111 - 111 PPCR21 [R/W] B, H - 111 - 111 PPCR22 [R/W] B, H 111111 - 1 PPCR23 [R/W] B, H - 1 - 11111 000F18H PPCR24 [R/W] B, H 11 - - 1111 000F1CH PPCR28 [R/W] B, H 11111111 000F00H 予約 ポート プルアップ / プルダウン 制御レジスタ 予約 PPCR29 [R/W] B, H 11111111 予約 000F20H ∼ 000F3CH 予約 001000H DMASA0 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001004H DMADA0 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001008H DMASA1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 予約 DMAC 823 付録 付表 A-2 MB91F467R I/O マップ (15 / 21) アドレス レジスタ +0 +1 +2 +3 00100CH DMADA1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001010H DMASA2 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001014H DMADA2 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001018H DMASA3 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00101CH DMADA3 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001020H DMASA4 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 001024H DMADA4 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ブロック DMAC 001028H ∼ 006FFCH 007000H 007004H 予約 FMCS [R/W] 01101000 FMCR [R] - - - 00000 予約 FCHCR [R/W] - - - - - - 00 10000011 FMWT [R/W] 11111111 11111111 FMWT2 [R] - 001 - - - - FMPS [R/W] - - - - - 000 フラッシュ メモリ / キャッシュ コントロール レジスタ 007008H FMAC [R] 00000000 00000000 00000000 00000000 00700CH FCHA0 [R/W] - - - - - - - - - - - 00000 00000000 00000000 007010H FCHA1 [R/W] - - - - - - - - - - - 00000 00000000 00000000 I キャッシュ ノンキャッシュ 領域設定 レジスタ 予約 予約 007014H ∼ 00BFFCH 00C000H CTRLR0 [R/W] B, H 00000000 00000001 STATR0 [R/W] B, H 00000000 00000000 00C004H ERRCNT0 [R] B, H, W 00000000 00000000 BTR0 [R/W] B, H, W 00100011 00000001 00C008H INTR0 [R] B, H, W 00000000 00000000 TESTR0 [R/W] B, H, W 00000000 X0000000 00C00CH BRPE0 [R/W] B, H, W 00000000 00000000 予約 00C010H IF1CREQ0 [R/W] B, H 00000000 00000001 IF1CMSK0 [R/W] B, H 00000000 00000000 00C014H IF1MSK20 [R/W] B, H, W 11111111 11111111 IF1MSK10 [R/W] B, H, W 11111111 11111111 00C018H IF1ARB20 [R/W] B, H, W 00000000 00000000 IF1ARB10 [R/W] B, H, W 00000000 00000000 824 CAN 0 制御レジスタ CAN 0 IF 1 レジスタ 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (16 / 21) アドレス レジスタ +0 +1 +2 +3 00C01CH IF1MCTR0 [R/W] B, H, W 00000000 00000000 予約 00C020H IF1DTA10 [R/W] B, H, W 00000000 00000000 IF1DTA20 [R/W] B, H, W 00000000 00000000 00C024H IF1DTB10 [R/W] B, H 00000000 00000000 IF1DTB20 [R/W] B, H 00000000 00000000 00C028H, 00C02CH CAN 0 予約 IF 1 レジスタ 00C030H IF1DTA20 [R/W] B, H, W 00000000 00000000 IF1DTA10 [R/W] B, H, W 00000000 00000000 00C034H IF1DTB20 [R/W] B, H, W 00000000 00000000 IF1DTB10 [R/W] B, H, W 00000000 00000000 00C038H, 00C03CH ブロック 予約 00C040H IF2CREQ0 [R/W] B, H 00000000 00000001 IF2CMSK0 [R/W] B, H 00000000 00000000 00C044H IF2MSK20 [R/W] B, H, W 11111111 11111111 IF2MSK10 [R/W] B, H, W 11111111 11111111 00C048H IF2ARB20 [R/W] B, H, W 00000000 00000000 IF2ARB10 [R/W] B, H, W 00000000 00000000 00C04CH IF2MCTR0 [R/W] B, H, W 00000000 00000000 予約 00C050H IF2DTA10 [R/W] B, H, W 00000000 00000000 IF2DTA20 [R/W] B, H, W 00000000 00000000 00C054H IF2DTB10 [R/W] B, H, W 00000000 00000000 IF2DTB20 [R/W] B, H, W 00000000 00000000 00C058H, 00C05CH CAN 0 IF 2 レジスタ 予約 00C060H IF2DTA20 [R/W] B, H, W 00000000 00000000 IF2DTA10 [R/W] B, H, W 00000000 00000000 00C064H IF2DTB20 [R/W] B, H, W 00000000 00000000 IF2DTB10 [R/W] B, H, W 00000000 00000000 00C068H ∼ 00C07CH 00C080H 予約 TREQR20 [R] B, H, W 00000000 00000000 TREQR10 [R] B, H, W 00000000 00000000 00C084H ∼ 00C08CH 00C090H 予約 NEWDT20 [R] B, H, W 00000000 00000000 CAN 0 NEWDT10 [R] B, H, W 00000000 00000000 ステータス フラグ 00C094H ∼ 00C09CH 予約 825 付録 付表 A-2 MB91F467R I/O マップ (17 / 21) アドレス 00C0A0H レジスタ +0 +1 +2 INTPND20 [R] B, H, W 00000000 00000000 +3 INTPND10 [R] B, H, W 00000000 00000000 00C0A4H CAN 0 ∼ 00C0ACH 00C0B0H ブロック 予約 MSGVAL20 [R] B, H, W 00000000 00000000 ステータス フラグ MSGVAL10 [R] B, H, W 00000000 00000000 00C0B4H ∼ 00C0FCH 予約 予約 00C100H CTRLR1 [R/W] B, H 00000000 00000001 STATR1 [R/W] B, H 00000000 00000000 00C104H ERRCNT1 [R] B, H, W 00000000 00000000 BTR1 [R/W] B, H, W 00100011 00000001 00C108H INTR1 [R] B, H, W 00000000 00000000 TESTR1 [R/W] B, H, W 00000000 X0000000 00C10CH BRPE1 [R/W] B, H, W 00000000 00000000 予約 00C110H IF1CREQ1 [R/W] B, H 00000000 00000001 IF1CMSK1 [R/W] B, H 00000000 00000000 00C114H IF1MSK21 [R/W] B, H, W 11111111 11111111 IF1MSK11 [R/W] B, H, W 11111111 11111111 00C118H IF1ARB21 [R/W] B, H, W 00000000 00000000 IF1ARB11 [R/W] B, H, W 00000000 00000000 00C11CH IF1MCTR1 [R/W] B, H, W 00000000 00000000 予約 00C120H IF1DTA11 [R/W] B, H, W 00000000 00000000 IF1DTA21 [R/W] B, H, W 00000000 00000000 00C124H IF1DTB11 [R/W] B, H, W 00000000 00000000 IF1DTB21 [R/W] B, H, W 00000000 00000000 00C128H, 00C12CH 制御レジスタ CAN 1 IF 1 レジスタ 予約 00C130H IF1DTA21 [R/W] B, H, W 00000000 00000000 IF1DTA11 [R/W] B, H, W 00000000 00000000 00C134H IF1DTB21 [R/W] B, H, W 00000000 00000000 IF1DTB11 [R/W] B, H, W 00000000 00000000 00C138H, 00C13CH 予約 00C140H IF2CREQ1 [R/W] B, H 00000000 00000001 IF2CMSK1 [R/W] B, H 00000000 00000000 00C144H IF2MSK21 [R/W] B, H, W 11111111 11111111 IF2MSK11 [R/W] B, H, W 11111111 11111111 00C148H IF2ARB21 [R/W] B, H, W 00000000 00000000 IF2ARB11 [R/W] B, H, W 00000000 00000000 826 CAN 1 CAN 1 IF 2 レジスタ 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (18 / 21) アドレス レジスタ +0 +1 +2 +3 00C14CH IF2MCTR1 [R/W] B, H, W 00000000 00000000 予約 00C150H IF2DTA11 [R/W] B, H, W 00000000 00000000 IF2DTA21 [R/W] B, H, W 00000000 00000000 00C154H IF2DTB11 [R/W] B, H, W 00000000 00000000 IF2DTB21 [R/W] B, H, W 00000000 00000000 00C158H, 00C15CH ブロック CAN 1 予約 00C160H IF2DTA21 [R/W] B, H, W 00000000 00000000 IF2DTA11 [R/W] B, H, W 00000000 00000000 00C164H IF2DTB21 [R/W] B, H, W 00000000 00000000 IF2DTB11 [R/W] B, H, W 00000000 00000000 IF 2 レジスタ 00C168H ∼ 00C17CH 予約 00C180H TREQR21 [R] B, H, W 00000000 00000000 TREQR11 [R] B, H, W 00000000 00000000 00C184H TREQR41 [R] B, H, W 00000000 00000000 TREQR31 [R] B, H, W 00000000 00000000 00C188H, 00C18CH 予約 00C190H NEWDT21 [R] B, H, W 00000000 00000000 NEWDT11 [R] B, H, W 00000000 00000000 00C194H NEWDT41 [R] B, H, W 00000000 00000000 NEWDT31 [R] B, H, W 00000000 00000000 00C198H, 00C19CH ステータス フラグ 予約 00C1A0H INTPND21 [R] B, H, W 00000000 00000000 INTPND11 [R] B, H, W 00000000 00000000 00C1A4H INTPND41 [R] B, H, W 00000000 00000000 INTPND31 [R] B, H, W 00000000 00000000 00C1A8H , 00C1ACH 予約 00C1B0H MSGVAL21 [R] B, H, W 00000000 00000000 MSGVAL11 [R] B, H, W 00000000 00000000 00C1B4H MSGVAL41 [R] B, H, W 00000000 00000000 MSGVAL31 [R] B, H, W 00000000 00000000 00C1B8H ∼ 00EFFCH CAN 1 CAN 1 ステータス フラグ 予約 827 付録 付表 A-2 MB91F467R I/O マップ (19 / 21) アドレス レジスタ +0 +1 +2 00F000H BCTRL [R/W] - - - - - - - - - - - - - - - - 11111100 00000000 00F004H BSTAT [R/W] - - - - - - - - - - - - - 000 00000000 10 - - 0000 00F008H BIAC [R] - - - - - - - - - - - - - - - - 00000000 00000000 00F00CH BOAC [R] - - - - - - - - - - - - - - - - 00000000 00000000 00F010H BIRQ [R/W] - - - - - - - - - - - - - - - - 00000000 00000000 ブロック EDSU / MPU 00F014H ∼ 00F01CH +3 予約 00F020H BCR0 [R/W] - - - - - - - - 00000000 00000000 00000000 00F024H BCR1 [R/W] - - - - - - - - 00000000 00000000 00000000 00F028H BCR2 [R/W] - - - - - - - - 00000000 00000000 00000000 00F02CH BCR3 [R/W] - - - - - - - - 00000000 00000000 00000000 00F030H ∼ 00F07CH 予約 00F080H BAD0 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F084H BAD1 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F088H BAD2 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F08CH BAD3 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F090H BAD4 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F094H BAD5 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F098H BAD6 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F09CH BAD7 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F0A0H BAD8 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 828 予約 EDSU / MPU 付録 A I/O マップ 付表 A-2 MB91F467R I/O マップ (20 / 21) アドレス レジスタ +0 +1 +2 00F0A4H BAD9 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F0A8H BAD10 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F0ACH BAD11 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F0B0H BAD12 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F0B4H BAD13 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F0B8H BAD14 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00F0BCH BAD15 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX +3 ブロック EDSU / MPU 00F0C0H ∼ 027FFCH 024000H ∼ 02BFFCH 02C000H ∼ 02FFFCH 030000H ∼ 033FFCH 予約 予約 D-RAM 32 K バイト:024000H ∼ 02BFFCH ( データ:1 ウェイト ) 32 K バイト D-RAM 16 K バイト:02C000H ∼ 02FFFCH ( データ:0 ウェイト ) D-RAM D-RAM 16 K バイト I-/D-RAM I-/D-RAM 16 K バイト:030000H ∼ 033FFCH ( 命令:0 ウェイト , データ:1 ウェイト ) 16 K バイト 予約 予約 034000H ∼ 03FFFCH 040000H ∼ 05FFFCH ROMS00 領域 (128 K バイト ) 060000H ∼ 07FFFCH ROMS01 領域 (128 K バイト ) 080000H ∼ 09FFFCH ROMS02 領域 (128 K バイト ) メモリ領域 0A0000H ∼ 0BFFFCH ROMS03 領域 (128 K バイト ) 0C0000H ∼ 0DFFFCH ROMS04 領域 (128 K バイト ) 829 付録 付表 A-2 MB91F467R I/O マップ (21 / 21) アドレス レジスタ +0 +1 +2 +3 ブロック 0E0000H ∼ 0FFFF4H ROMS05 領域 (128 K バイト ) メモリ領域 0FFFF8H モードベクタ 0FFFFCH リセットベクタ リセットベクタ / モードベクタ 100000H ∼ 13FFFCH ROMS06 領域 (256 K バイト ) メモリ領域 140000H ∼ 17FFFCH ROMS07 領域 (256 K バイト ) 180000H ∼ 4FFFFCH 予約 予約 *:DMACA0 ∼ DMACA4 の下位 16 ビット (DTC15 ∼ DTC0) は , バイトのアクセスはできません。 830 付録 B 割込みベクタ 付録 B 割込みベクタ 割込みベクタ表は MB91461/F467R の割込み要因とそれに対応するジャンプアドレ ス ( ベクタアドレス ) を示しています。また , 割込み制御レジスタ (ICR00 ∼ ICR63) との対応も示しています。 ■ 割込みベクタ 付表 B-1 MB91461 割込みベクタ (1 / 5) 割込み番号 割込み要因 割込みレベル オフ レジスタ セット 設定 レジスタ アドレス TBR デフォルト のアドレス リソース 番号 *1 10 進 16 進 リセット 0 00 ⎯ ⎯ 3FCH 000FFFFCH 2 モードベクタ 1 01 ⎯ ⎯ 3F8H 000FFFF8H 3 システム予約 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 (F) 15 (F) 固定 固定 3C0H 000FFFC0H ⎯ 外部割込み 0 16 10 000FFFBCH 外部割込み 1 17 11 440H 3BCH 0 ICR00 3B8H 000FFFB8H 1 外部割込み 2 18 12 3B4H 000FFFB4H 2 外部割込み 3 19 13 3B0H 000FFFB0H 3 外部割込み 4 20 14 3ACH 000FFFACH ⎯ 外部割込み 5 21 15 3A8H 000FFFA8H ⎯ 外部割込み 6 22 16 3A4H 000FFFA4H ⎯ 外部割込み 7 23 3A0H 000FFFA0H ⎯ ICR01 ICR02 ICR03 17 441H 442H 443H 831 付録 付表 B-1 MB91461 割込みベクタ (2 / 5) 割込み番号 割込み要因 10 進 16 進 外部割込み 8 24 18 外部割込み 9 25 19 外部割込み 10 26 1A 外部割込み 11 27 1B 外部割込み 12 28 1C 外部割込み 13 29 1D 外部割込み 14 30 1E 外部割込み 15 31 1F リロードタイマ 0 32 20 リロードタイマ 1 33 21 リロードタイマ 2 34 22 リロードタイマ 3 35 23 システム予約 36 24 システム予約 37 25 システム予約 38 26 リロードタイマ 7 39 27 フリーランタイマ 0 40 28 フリーランタイマ 1 41 29 フリーランタイマ 2 42 2A フリーランタイマ 3 43 2B システム予約 44 2C システム予約 45 2D システム予約 46 2E システム予約 47 2F CAN0 48 30 割込みレベル ICR05 ICR06 ICR07 ICR08 ICR09 ICR10 ICR11 ICR12 ICR13 ICR14 ICR15 ICR16 49 31 システム予約 50 32 システム予約 51 33 システム予約 52 34 システム予約 53 35 LIN-USART 0 RX 54 36 ICR17 ICR18 ICR19 LIN-USART 0 TX 55 37 LIN-USART 1 RX 56 38 ICR20 LIN-USART 1 TX 832 57 39 リソース 番号 *1 39CH 000FFF9CH ⎯ 398H 000FFF98H ⎯ 394H 000FFF94H ⎯ 390H 000FFF90H ⎯ 38CH 000FFF8CH ⎯ 388H 000FFF88H ⎯ 384H 000FFF84H ⎯ 380H 000FFF80H ⎯ 37CH 000FFF7CH 4 378H 000FFF78H 5 374H 000FFF74H ⎯ 370H 000FFF70H ⎯ 36CH 000FFF6CH ⎯ 368H 000FFF68H ⎯ 364H 000FFF64H ⎯ 360H 000FFF60H ⎯ 35CH 000FFF5CH ⎯ 358H 000FFF58H ⎯ 354H 000FFF54H ⎯ 350H 000FFF50H ⎯ 34CH 000FFF4CH ⎯ 348H 000FFF48H ⎯ 344H 000FFF44H ⎯ 340H 000FFF40H ⎯ 33CH 000FFF3CH ⎯ 338H 000FFF38H ⎯ 334H 000FFF34H ⎯ 330H 000FFF30H ⎯ 32CH 000FFF2CH ⎯ 328H 000FFF28H ⎯ 324H 000FFF24H 6 320H 000FFF20H 7 31CH 000FFF1CH 8 318H 000FFF18H 9 設定 レジスタ アドレス ICR04 CAN1 TBR デフォルト のアドレス オフ レジスタ セット 444H 445H 446H 447H 448H 449H 44AH 44BH 44CH 44DH 44EH 44FH 450H 451H 452H 453H 454H 付録 B 割込みベクタ 付表 B-1 MB91461 割込みベクタ (3 / 5) 割込み番号 割込み要因 LIN-USART 2 RX 10 進 16 進 58 3A 割込みレベル 59 3B LIN-USART 3 RX 60 3C ICR22 LIN-USART 3 TX 61 3D システム予約 62 3E 遅延割込み 63 3F システム予約 *2 64 40 システム予約 *2 65 41 LIN-USART 4 RX 66 42 ICR23*3 (ICR24) ICR25 LIN-USART 4 TX 67 43 LIN-USART 5 RX 68 44 ICR26 LIN-USART 5 TX 69 45 LIN-USART 6 RX 70 46 ICR27 LIN-USART 6 TX 71 47 システム予約 72 48 システム予約 73 49 I2C_0/I2C_2 74 4A ICR28 ICR29 I2C_1/I2C_3 75 4B システム予約 76 4C システム予約 77 4D システム予約 78 4E システム予約 79 4F システム予約 80 50 システム予約 81 51 システム予約 82 52 システム予約 83 53 システム予約 84 54 システム予約 85 55 システム予約 86 56 システム予約 87 57 システム予約 88 58 システム予約 89 59 システム予約 90 5A システム予約 91 ICR30 ICR31 ICR32 ICR33 ICR34 ICR35 ICR36 ICR37 5B リソース 番号 *1 314H 000FFF14H ⎯ 310H 000FFF10H ⎯ 30CH 000FFF0CH ⎯ 308H 000FFF08H ⎯ 304H 000FFF04H ⎯ 300H 000FFF00H ⎯ 2FCH 000FFEFCH ⎯ 2F8H 000FFEF8H ⎯ 2F4H 000FFEF4H 10 2F0H 000FFEF0H 11 2ECH 000FFEECH 12 2E8H 000FFEE8H 13 2E4H 000FFEE4H ⎯ 2E0H 000FFEE0H ⎯ 2DCH 000FFEDCH ⎯ 2D8H 000FFED8H ⎯ 2D4H 000FFED4H ⎯ 2D0H 000FFED0H ⎯ 2CCH 000FFECCH ⎯ 2C8H 000FFEC8H ⎯ 2C4H 000FFEC4H ⎯ 2C0H 000FFEC0H ⎯ 2BCH 000FFEBCH ⎯ 2B8H 000FFEB8H ⎯ 2B4H 000FFEB4H ⎯ 2B0H 000FFEB0H ⎯ 2ACH 000FFEACH ⎯ 2A8H 000FFEA8H ⎯ 2A4H 000FFEA4H ⎯ 2A0H 000FFEA0H ⎯ 29CH 000FFE9CH ⎯ 298H 000FFE98H ⎯ 294H 000FFE94H ⎯ 290H 000FFE90H ⎯ 設定 レジスタ アドレス ICR21 LIN-USART 2 TX TBR デフォルト のアドレス オフ レジスタ セット 455H 456H 457H 458H 459H 45AH 45BH 45CH 45DH 45EH 45FH 460H 461H 462H 463H 464H 465H 833 付録 付表 B-1 MB91461 割込みベクタ (4 / 5) 割込み番号 割込み要因 10 進 16 進 インプットキャプチャ 0 92 5C インプットキャプチャ 1 93 5D インプットキャプチャ 2 94 5E インプットキャプチャ 3 95 5F システム予約 96 60 システム予約 97 61 システム予約 98 62 システム予約 99 63 アウトプットコンペア 0 100 64 アウトプットコンペア 1 101 65 アウトプットコンペア 2 102 66 アウトプットコンペア 3 103 67 システム予約 104 68 システム予約 105 69 システム予約 106 6A システム予約 107 6B システム予約 108 6C システム予約 109 6D システム予約 110 6E システム予約 111 6F PPG0 112 70 割込みレベル ICR39 ICR40 ICR41 ICR42 ICR43 ICR44 ICR45 ICR46 ICR47*3 ICR48 113 71 PPG2 114 72 ICR49 PPG3 115 73 PPG4 116 74 ICR50 PPG5 117 75 PPG6 118 76 ICR51 PPG7 119 77 システム予約 120 78 システム予約 121 79 システム予約 122 7A システム予約 123 7B システム予約 124 7C システム予約 125 834 ICR52 ICR53 ICR54 7D リソース 番号 *1 28CH 000FFE8CH ⎯ 288H 000FFE88H ⎯ 284H 000FFE84H ⎯ 280H 000FFE80H ⎯ 27CH 000FFE7CH ⎯ 278H 000FFE78H ⎯ 274H 000FFE74H ⎯ 270H 000FFE70H ⎯ 26CH 000FFE6CH ⎯ 268H 000FFE68H ⎯ 264H 000FFE64H ⎯ 260H 000FFE60H ⎯ 25CH 000FFE5CH ⎯ 258H 000FFE58H ⎯ 254H 000FFE54H ⎯ 250H 000FFE50H ⎯ 24CH 000FFE4CH ⎯ 248H 000FFE48H ⎯ 244H 000FFE44H ⎯ 240H 000FFE40H ⎯ 23CH 000FFE3CH 15 238H 000FFE38H ⎯ 234H 000FFE34H ⎯ 230H 000FFE30H ⎯ 22CH 000FFE2CH ⎯ 228H 000FFE28H ⎯ 224H 000FFE24H ⎯ 220H 000FFE20H ⎯ 21CH 000FFE1CH ⎯ 218H 000FFE18H ⎯ 214H 000FFE14H ⎯ 210H 000FFE10H ⎯ 20CH 000FFE0CH ⎯ 208H 000FFE08H ⎯ 設定 レジスタ アドレス ICR38 PPG1 TBR デフォルト のアドレス オフ レジスタ セット 466H 467H 468H 469H 46AH 46BH 46CH 46DH 46EH 46FH 470H 471H 472H 473H 474H 475H 476H 付録 B 割込みベクタ 付表 B-1 MB91461 割込みベクタ (5 / 5) 割込み番号 割込み要因 10 進 16 進 システム予約 126 7E システム予約 127 7F システム予約 128 80 システム予約 129 81 システム予約 130 82 システム予約 131 83 リアルタイムクロック 132 84 システム予約 133 85 A/D コンバータ 0 134 86 システム予約 135 87 システム予約 136 88 システム予約 137 89 システム予約 138 8A システム予約 139 8B タイムベースオーバフロー 140 8C PLL クロックギア 141 8D DMA コントローラ 142 8E メイン / サブ発振安定待ち 143 8F システム予約 144 90 145 91 ∼ 255 ∼ FF INT 命令で使用 割込みレベル TBR デフォルト のアドレス リソース 番号 *1 204H 000FFE04H ⎯ 200H 000FFE00H ⎯ 1FCH 000FFDFCH ⎯ 1F8H 000FFDF8H ⎯ 1F4H 000FFDF4H ⎯ 1F0H 000FFDF0H ⎯ 1ECH 000FFDECH ⎯ 1E8H 000FFDE8H ⎯ 1E4H 000FFDE4H 14 1E0H 000FFDE0H ⎯ 1DCH 000FFDDCH ⎯ 1D8H 000FFDD8H ⎯ 1D4H 000FFDD4H ⎯ 1D0H 000FFDD0H ⎯ 1CCH 000FFDCCH ⎯ 1C8H 000FFDC8H ⎯ 1C4H 000FFDC4H ⎯ 1C0H 000FFDC0H ⎯ 1BCH 000FFDBCH ⎯ 1B8H 000FFDB8H ∼ 000H ∼ 000FFC00H オフ レジスタ セット 設定 レジスタ アドレス ICR55 ICR56 ICR57 ICR58 ICR59 ICR60 ICR61 ICR62 ICR63 ⎯ ⎯ 477H 478H 479H 47AH 47BH 47CH 47DH 47EH 47FH ⎯ ⎯ ⎯ *1:RN ( リソース番号 ) の割り当てられている周辺リソースは DMA 転送の起動要因になりえること を示しています。 また, リソース番号はDMACのチャネル制御レジスタA (DMACA0∼ DMACA4) のIS (Input Source) と 1 対 1 に対応しており , RN を 2 進数表記して先頭に “1” を付け加えると IS (Input Source) が得ら れます。 *2:REALOS で使用します。 *3:ICR23 と ICR47 は REALOS ビット (0C03H 番地 ISO[0]) をセットすることにより入れ替えられます。 835 付録 付表 B-2 MB91F467R 割込みベクタ (1 / 5) 割込み番号 割込み要因 割込みレベル 設定 レジスタ レジスタ アドレス 割込みベクタ *1 オフ セット デフォルト ベクタアドレス リソース 番号 10 進 16 進 リセット 0 00 ⎯ ⎯ 3FCH 000FFFFCH モードベクタ 1 01 ⎯ ⎯ 3F8H 000FFFF8H システム予約 2 02 ⎯ ⎯ 3F4H 000FFFF4H システム予約 3 03 ⎯ ⎯ 3F0H 000FFFF0H システム予約 4 04 ⎯ ⎯ 3ECH 000FFFECH CPU スーパバイザモード (INT #5 命令 ) 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 システム予約 13 0D ⎯ ⎯ 3C8H 000FFFC8H 未定義命令例外 14 0E ⎯ ⎯ 3C4H 000FFFC4H NMI 要求 15 0F 15 (FH) 固定 3C0H 000FFFC0H 外部割込み 0 16 10 3BCH 000FFFBCH 0 外部割込み 1 17 11 3B8H 000FFFB8H 1 外部割込み 2 18 12 3B4H 000FFFB4H 2 外部割込み 3 19 13 3B0H 000FFFB0H 3 外部割込み 4 20 14 3ACH 000FFFACH 外部割込み 5 21 15 3A8H 000FFFA8H 外部割込み 6 22 16 3A4H 000FFFA4H 外部割込み 7 23 17 3A0H 000FFFA0H 外部割込み 8 24 18 39CH 000FFF9CH 外部割込み 9 25 19 398H 000FFF98H 外部割込み 10 26 1A 394H 000FFF94H 外部割込み 11 27 1B 390H 000FFF90H 外部割込み 12 28 1C 38CH 000FFF8CH 外部割込み 13 29 1D 388H 000FFF88H 外部割込み 14 30 1E 384H 000FFF84H 外部割込み 15 31 380H 000FFF80H 836 ICR00 ICR01 ICR02 ICR03 ICR04 ICR05 ICR06 ICR07 1F 440H 441H 442H 443H 444H 445H 446H 447H 付録 B 割込みベクタ 付表 B-2 MB91F467R 割込みベクタ (2 / 5) 割込み番号 割込み要因 10 進 16 進 リロードタイマ 0 32 20 リロードタイマ 1 33 21 リロードタイマ 2 34 22 リロードタイマ 3 35 23 システム予約 36 24 システム予約 37 25 システム予約 38 26 リロードタイマ 7 39 27 フリーランタイマ 0 40 28 フリーランタイマ 1 41 29 フリーランタイマ 2 42 2A フリーランタイマ 3 43 2B システム予約 44 2C システム予約 45 2D システム予約 46 2E システム予約 47 2F CAN 0 48 30 割込みレベル 設定 レジスタ レジスタ アドレス ICR08 ICR09 ICR10 ICR11 ICR12 ICR13 ICR14 ICR15 ICR16 CAN 1 49 31 システム予約 50 32 システム予約 51 33 システム予約 52 34 システム予約 53 35 LIN-USART 0 RX 54 36 ICR17 ICR18 ICR19 LIN-USART 0 TX 55 37 LIN-USART 1 RX 56 38 ICR20 LIN-USART 1 TX 57 39 LIN-USART 2 RX 58 3A ICR21 LIN-USART 2 TX 59 3B LIN-USART 3 RX 60 3C ICR22 LIN-USART 3 TX 61 3D システム予約 62 3E 遅延割込み 63 3F システム予約 *2 64 40 *2 65 システム予約 ICR23 *3 (ICR24) 41 448H 449H 44AH 44BH 44CH 44DH 44EH 44FH 450H 451H 452H 453H 454H 455H 456H 457H (458H) 割込みベクタ *1 リソース 番号 オフ セット デフォルト ベクタアドレス 37CH 000FFF7CH 4 378H 000FFF78H 5 374H 000FFF74H 370H 000FFF70H 36CH 000FFF6CH 368H 000FFF68H 364H 000FFF64H 360H 000FFF60H 35CH 000FFF5CH 358H 000FFF58H 354H 000FFF54H 350H 000FFF50H 34CH 000FFF4CH 348H 000FFF48H 344H 000FFF44H 340H 000FFF40H 33CH 000FFF3CH 338H 000FFF38H 334H 000FFF34H 330H 000FFF30H 32CH 000FFF2CH 328H 000FFF28H 324H 000FFF24H 6 320H 000FFF20H 7 31CH 000FFF1CH 8 318H 000FFF18H 9 314H 000FFF14H 310H 000FFF10H 30CH 000FFF0CH 308H 000FFF08H 304H 000FFF04H 300H 000FFF00H 2FCH 000FFEFCH 2F8H 000FFEF8H 837 付録 付表 B-2 MB91F467R 割込みベクタ (3 / 5) 割込み番号 割込み要因 LIN-USART4 (FIFO) RX 10 進 16 進 66 42 割込みレベル 設定 レジスタ レジスタ アドレス ICR25 LIN-USART4 (FIFO) TX 67 43 LIN-USART5 (FIFO) RX 68 44 ICR26 LIN-USART5 (FIFO) TX 69 45 LIN-USART6 (FIFO) RX 70 46 ICR27 LIN-USART6 (FIFO) TX 71 47 システム予約 72 48 システム予約 73 49 I2C 0 / I2C 2 74 4A I 2C ICR28 ICR29 75 4B システム予約 76 4C システム予約 77 4D システム予約 78 4E システム予約 79 4F システム予約 80 50 システム予約 81 51 システム予約 82 52 システム予約 83 53 システム予約 84 54 システム予約 85 55 システム予約 86 56 システム予約 87 57 システム予約 88 58 システム予約 89 59 システム予約 90 5A システム予約 91 5B インプットキャプチャ 0 92 5C インプットキャプチャ 1 93 5D インプットキャプチャ 2 94 5E インプットキャプチャ 3 95 5F システム予約 96 60 システム予約 97 61 システム予約 98 62 システム予約 99 838 1 ICR30 ICR31 ICR32 ICR33 ICR34 ICR35 ICR36 ICR37 ICR38 ICR39 ICR40 ICR41 63 459H 45AH 45BH 45CH 45DH 45EH 45FH 460H 461H 462H 463H 464H 465H 466H 467H 468H 469H 割込みベクタ *1 リソース 番号 オフ セット デフォルト ベクタアドレス 2F4H 000FFEF4H 10 2F0H 000FFEF0H 11 2ECH 000FFEECH 12 2E8H 000FFEE8H 13 2E4H 000FFEE4H 2E0H 000FFEE0H 2DCH 000FFEDCH 2D8H 000FFED8H 2D4H 000FFED4H 2D0H 000FFED0H 2CCH 000FFECCH 2C8H 000FFEC8H 2C4H 000FFEC4H 2C0H 000FFEC0H 2BCH 000FFEBCH 2B8H 000FFEB8H 2B4H 000FFEB4H 2B0H 000FFEB0H 2ACH 000FFEACH 2A8H 000FFEA8H 2A4H 000FFEA4H 2A0H 000FFEA0H 29CH 000FFE9CH 298H 000FFE98H 294H 000FFE94H 290H 000FFE90H 28CH 000FFE8CH 288H 000FFE88H 284H 000FFE84H 280H 000FFE80H 27CH 000FFE7CH 278H 000FFE78H 274H 000FFE74H 270H 000FFE70H 付録 B 割込みベクタ 付表 B-2 MB91F467R 割込みベクタ (4 / 5) 割込み番号 割込み要因 10 進 16 進 アウトプットコンペア 0 100 64 アウトプットコンペア 1 101 65 アウトプットコンペア 2 102 66 アウトプットコンペア 3 103 67 システム予約 104 68 システム予約 105 69 システム予約 106 6A システム予約 107 6B システム予約 108 6C システム予約 109 6D システム予約 110 6E システム予約 111 6F PPG0 112 70 割込みレベル 設定 レジスタ レジスタ アドレス ICR42 ICR43 ICR44 ICR45 ICR46 ICR47 *3 ICR48 PPG1 113 71 PPG2 114 72 ICR49 PPG3 115 73 PPG4 116 74 ICR50 PPG5 117 75 PPG6 118 76 ICR51 PPG7 119 77 システム予約 120 78 システム予約 121 79 システム予約 122 7A システム予約 123 7B システム予約 124 7C システム予約 125 7D システム予約 126 7E システム予約 127 7F システム予約 128 80 システム予約 129 81 システム予約 130 82 システム予約 131 83 リアルタイムクロック 132 84 キャリブレーションユニット 133 ICR52 ICR53 ICR54 ICR55 ICR56 ICR57 ICR58 85 46AH 46BH 46CH 46DH 46EH 46FH 470H 471H 472H 473H 474H 475H 476H 477H 478H 479H 47AH 割込みベクタ *1 オフ セット デフォルト ベクタアドレス 26CH 000FFE6CH 268H 000FFE68H 264H 000FFE64H 260H 000FFE60H 25CH 000FFE5CH 258H 000FFE58H 254H 000FFE54H 250H 000FFE50H 24CH 000FFE4CH 248H 000FFE48H 244H 000FFE44H 240H 000FFE40H 23CH 000FFE3CH 238H 000FFE38H 234H 000FFE34H 230H 000FFE30H 22CH 000FFE2CH 228H 000FFE28H 224H 000FFE24H 220H 000FFE20H 21CH 000FFE1CH 218H 000FFE18H 214H 000FFE14H 210H 000FFE10H 20CH 000FFE0CH 208H 000FFE08H 204H 000FFE04H 200H 000FFE00H 1FCH 000FFDFCH 1F8H 000FFDF8H 1F4H 000FFDF4H 1F0H 000FFDF0H 1ECH 000FFDECH 1E8H 000FFDE8H リソース 番号 15 839 付録 付表 B-2 MB91F467R 割込みベクタ (5 / 5) 割込み番号 割込み要因 10 進 16 進 A/D コンバータ 0 134 86 システム予約 135 87 システム予約 136 88 システム予約 137 89 低電圧検出 138 8A システム予約 139 8B タイムベースオーバフロー 140 8C PLL クロックギア 141 8D DMA コントローラ 142 8E メイン / サブ発振安定待ち 143 8F システム予約 144 90 145 91 INT 命令で使用 割込みレベル 設定 レジスタ レジスタ アドレス ICR59 ICR60 ICR61 ICR62 ICR63 ∼ 255 ∼ FF 47BH 47CH 47DH 47EH 47FH 割込みベクタ *1 オフ セット デフォルト ベクタアドレス 1E4H 000FFDE4H 1E0H 000FFDE0H 1DCH 000FFDDCH 1D8H 000FFDD8H 1D4H 000FFDD4H 1D0H 000FFDD0H 1CCH 000FFDCCH 1C8H 000FFDC8H 1C4H 000FFDC4H 1C0H 000FFDC0H 000FFDBCH ⎯ ⎯ 1BCH ⎯ ⎯ 1B8H ∼ 000H リソース 番号 14 000FFDB8H ∼ 000FFC00H *1: 各 EIT ( 例外 , 割込み , トラップ ) のベクタアドレスは上表のオフセットをテーブルベースレジス タ値 (TBR) に加算することによって算出できます。TBR は EIT ベクタテーブルの先頭アドレスを 示します。デフォルトベクタアドレスは , デフォルトの TBR 値に対応しています (000FFC00H) 。 リセットによって TBR はこの値に初期化されます。 *2: REALOS で使用します。 *3:ICR23 と ICR47 は REALOS ビット (0C03 番地 ISO[0]) をセットすることにより入れ替えられます。 840 付録 C DMA 転送要求要因 付録 C DMA 転送要求要因 MB91461/F467R の DMA 転送要求要因には下記のものがあります。 ■ DMA 転送要求要因 付表 C-1 DMA 転送要求要因 IS (Input Source) 機能 転送停止要求 00000B ソフトウェア転送要求のみ 00001B ∼ 01101B 設定禁止 01110B 外部端子 (DREQ) "H" レベルまたは↑エッジ 01111B 外部端子 (DREQ) "L" レベルまたは↓エッジ 10000B 外部割込み 0 − 10001B 外部割込み 1 − 10010B 外部割込み 2 − 10011B 外部割込み 3 − 10100B リロードタイマ 0 − 10101B リロードタイマ 1 − 10110B LIN-UART0 RX ( 受信完了 ) あり 10111B LIN-UART0 TX ( 送信完了 ) − 11000B LIN-UART1 RX ( 受信完了 ) あり 11001B LIN-UART1 TX ( 送信完了 ) − 11010B LIN-UART4 RX ( 受信完了 ) あり 11011B LIN-UART4 TX ( 送信完了 ) − 11100B LIN-UART5 RX ( 受信完了 ) あり 11101B LIN-UART5 TX ( 送信完了 ) − 11110B A/D コンバータ − 11111B PPG0 − − 841 付録 付録 D シリアル書込み時の端子状態 FLASH シリアル書込み時の端子状態を示します。 ■ FLASH シリアル書込み時の端子状態一覧 付表 D-1 FLASH シリアル書込み時の端子状態一覧 (1 / 6) 端子番号 端子名 I/O 出力 入力 Pull-up/down 2 P24_2 I/O 出力 Hi-Z 入力可能 off 3 P24_3 I/O 出力 Hi-Z 入力可能 off 4 P22_6 I/O 出力 Hi-Z 入力可能 − 5 P22_7 I/O 出力 Hi-Z 入力可能 − 6 P24_4 I/O 出力 Hi-Z 入力可能 − 7 P24_5 I/O 出力 Hi-Z 入力可能 − 8 P13_0 I/O 出力 Hi-Z 入力可能 off 9 P13_1 I/O 出力 Hi-Z 入力可能 off 10 P13_2 I/O 出力 Hi-Z 入力可能 off 14 C_1 15 P09_4 I/O 出力 Hi-Z 入力可能 off 16 P09_3 I/O 出力 Hi-Z 入力可能 off 17 P09_2 I/O 出力 Hi-Z 入力可能 off 18 P09_1 I/O 出力 Hi-Z 入力可能 off 19 P09_0 I/O 出力 Hi-Z 入力可能 off 20 P11_0 I/O 出力 Hi-Z 入力可能 off 21 P11_1 I/O 出力 Hi-Z 入力可能 off 22 P08_7 I/O 出力 Hi-Z 入力可能 off 23 P08_6 I/O 出力 Hi-Z 入力可能 off 24 P08_5 I/O 出力 Hi-Z 入力可能 off 25 P08_4 I/O 出力 Hi-Z 入力可能 off 26 P08_1 I/O 出力 Hi-Z 入力可能 off 27 P08_0 I/O 出力 Hi-Z 入力可能 off 28 NMIX I − 入力可能 Pull-up 29 P10_6 I/O 出力 Hi-Z 入力可能 off 842 付録 D シリアル書込み時の端子状態 付表 D-1 FLASH シリアル書込み時の端子状態一覧 (2 / 6) 端子番号 端子名 I/O 出力 入力 Pull-up/down 30 P10_5 I/O 出力 Hi-Z 入力可能 off 31 P10_4 I/O 出力 Hi-Z 入力可能 off 32 P10_3 I/O 出力 Hi-Z 入力可能 off 33 P10_2 I/O 出力 Hi-Z 入力可能 off 34 P10_1 I/O 出力 Hi-Z 入力可能 off 35 P10_0 I/O 出力 Hi-Z 入力可能 off 39 X0 I − 入力可能 − 40 X1 I/O 出力 Hi-Z 入力可能 − 42 X0A I − 入力可能 − 43 X1A I/O 出力 Hi-Z 入力可能 − 46 P01_0 I/O 出力 Hi-Z 入力可能 off 47 P01_1 I/O 出力 Hi-Z 入力可能 off 48 P01_2 I/O 出力 Hi-Z 入力可能 off 49 P01_3 I/O 出力 Hi-Z 入力可能 off 50 P01_4 I/O 出力 Hi-Z 入力可能 off 51 P01_5 I/O 出力 Hi-Z 入力可能 off 52 P01_6 I/O 出力 Hi-Z 入力可能 off 53 P01_7 I/O 出力 Hi-Z 入力可能 off 54 P00_0 I/O 出力 Hi-Z 入力可能 off 55 P00_1 I/O 出力 Hi-Z 入力可能 off 56 P00_2 I/O 出力 Hi-Z 入力可能 off 59 P00_3 I/O 出力 Hi-Z 入力可能 off 60 P00_4 I/O 出力 Hi-Z 入力可能 off 61 P00_5 I/O 出力 Hi-Z 入力可能 off 62 P00_6 I/O 出力 Hi-Z 入力可能 off 63 P00_7 I/O 出力 Hi-Z 入力可能 off 64 P07_0 I/O 出力 Hi-Z 入力可能 off 65 P07_1 I/O 出力 Hi-Z 入力可能 off 66 P07_2 I/O 出力 Hi-Z 入力可能 off 67 P07_3 I/O 出力 Hi-Z 入力可能 off 843 付録 付表 D-1 FLASH シリアル書込み時の端子状態一覧 (3 / 6) 端子番号 端子名 I/O 出力 入力 Pull-up/down 68 P07_4 I/O 出力 Hi-Z 入力可能 off 69 P07_5 I/O 出力 Hi-Z 入力可能 off 70 P07_6 I/O 出力 Hi-Z 入力可能 off 71 P07_7 I/O 出力 Hi-Z 入力可能 off 72 P06_0 I/O 出力 Hi-Z 入力可能 off 75 P06_1 I/O 出力 Hi-Z 入力可能 off 76 P06_2 I/O 出力 Hi-Z 入力可能 off 77 P06_3 I/O 出力 Hi-Z 入力可能 off 78 P06_4 I/O 出力 Hi-Z 入力可能 off 79 P06_5 I/O 出力 Hi-Z 入力可能 off 80 P06_6 I/O 出力 Hi-Z 入力可能 off 81 P06_7 I/O 出力 Hi-Z 入力可能 off 82 P05_0 I/O 出力 Hi-Z 入力可能 off 83 P05_1 I/O 出力 Hi-Z 入力可能 off 84 P05_2 I/O 出力 Hi-Z 入力可能 off 85 P05_3 I/O 出力 Hi-Z 入力可能 off 86 P05_4 I/O 出力 Hi-Z 入力可能 off 87 P05_5 I/O 出力 Hi-Z 入力可能 off 90 P05_6 I/O 出力 Hi-Z 入力可能 off 91 P05_7 I/O 出力 Hi-Z 入力可能 off 82 P05_0 I/O 出力 Hi-Z 入力可能 off 92 P16_7 I/O 出力 Hi-Z 入力可能 off 93 P17_4 I/O 出力 Hi-Z 入力可能 off 94 P17_5 I/O 出力 Hi-Z 入力可能 off 95 P17_6 I/O 出力 Hi-Z 入力可能 off 96 P17_7 I/O 出力 Hi-Z 入力可能 off 97 WDRESETX O 出力 − − 98 P29_0 I/O 出力 Hi-Z 入力可能 off 99 P29_1 I/O 出力 Hi-Z 入力可能 off 100 P29_2 I/O 出力 Hi-Z 入力可能 off 844 付録 D シリアル書込み時の端子状態 付表 D-1 FLASH シリアル書込み時の端子状態一覧 (4 / 6) 端子番号 端子名 I/O 出力 入力 Pull-up/down 101 P29_3 I/O 出力 Hi-Z 入力可能 off 102 P29_4 I/O 出力 Hi-Z 入力可能 off 103 P29_5 I/O 出力 Hi-Z 入力可能 off 104 P29_6 I/O 出力 Hi-Z 入力可能 off 105 P29_7 I/O 出力 Hi-Z 入力可能 off 106 P28_0 I/O 出力 Hi-Z 入力可能 off 107 P28_1 I/O 出力 Hi-Z 入力可能 off 108 P28_2 I/O 出力 Hi-Z 入力可能 off 109 P28_3 I/O 出力 Hi-Z 入力可能 off 110 P28_4 I/O 出力 Hi-Z 入力可能 off 111 P28_5 I/O 出力 Hi-Z 入力可能 off 112 P28_6 I/O 出力 Hi-Z 入力可能 off 113 P28_7 I/O 出力 Hi-Z 入力可能 off 117 P22_4 I/O 出力 Hi-Z 入力可能 − 118 P22_5 I/O 出力 Hi-Z 入力可能 − 119 P24_0 I/O 出力 Hi-Z 入力可能 off 120 P24_1 I/O 出力 Hi-Z 入力可能 off 121 P24_6 I/O 出力 Hi-Z 入力可能 off 122 P24_7 I/O 出力 Hi-Z 入力可能 off 123 P23_0 I/O 出力 Hi-Z 入力可能 off 124 P23_1 I/O 出力 Hi-Z 入力可能 off 125 P23_2 I/O 出力 Hi-Z 入力可能 off 126 P23_3 I/O 出力 Hi-Z 入力可能 off 127 MD3 I − MD3 = 0 Pull-down 128 MD2 I − MD2 = 1 − 129 MD1 I − MD1 = 0 − 130 MD0 I − MD0 = 0 − 131 INITX I − 入力可能 Pull-up 134 P21_0 I/O 出力 Hi-Z SIN0 off 135 P21_1 I/O SOT0 − off 136 P21_2 I/O SCK0 (*1) − off 845 付録 付表 D-1 FLASH シリアル書込み時の端子状態一覧 (5 / 6) 端子番号 端子名 I/O 出力 入力 Pull-up/down 137 P21_4 I/O 出力 Hi-Z 入力可能 off 138 P21_5 I/O 出力 Hi-Z 入力可能 off 139 P21_6 I/O 出力 Hi-Z 入力可能 off 140 P20_0 I/O 出力 Hi-Z 入力可能 off 141 P20_1 I/O 出力 Hi-Z 入力可能 off 142 P20_2 I/O 出力 Hi-Z 入力可能 off 143 P20_4 I/O 出力 Hi-Z 入力可能 off 144 P20_5 I/O 出力 Hi-Z 入力可能 off 145 P20_6 I/O 出力 Hi-Z 入力可能 off 148 P19_0 I/O 出力 Hi-Z 入力可能 off 149 P19_1 I/O 出力 Hi-Z 入力可能 off 150 P19_2 I/O 出力 Hi-Z 入力可能 off 151 P19_4 I/O 出力 Hi-Z 入力可能 off 152 P19_5 I/O 出力 Hi-Z 入力可能 off 153 P19_6 I/O 出力 Hi-Z 入力可能 off 154 P18_0 I/O 出力 Hi-Z 入力可能 off 155 P18_1 I/O 出力 Hi-Z 入力可能 off 156 P18_2 I/O 出力 Hi-Z 入力可能 off 157 P15_0 I/O 出力 Hi-Z 入力可能 off 158 P15_1 I/O 出力 Hi-Z 入力可能 off 159 P15_2 I/O 出力 Hi-Z 入力可能 off 160 P15_3 I/O 出力 Hi-Z 入力可能 off 163 P23_4 I/O 出力 Hi-Z 入力可能 off 164 P23_6 I/O 出力 Hi-Z 入力可能 off 165 P22_0 I/O 出力 Hi-Z 入力可能 off 166 P22_2 I/O 出力 Hi-Z 入力可能 off 167 P22_3 I/O 出力 Hi-Z 入力可能 off 168 P14_0 I/O 出力 Hi-Z 入力可能 off 169 P14_1 I/O 出力 Hi-Z 入力可能 off 170 P14_2 I/O 出力 Hi-Z 入力可能 off 846 付録 D シリアル書込み時の端子状態 付表 D-1 FLASH シリアル書込み時の端子状態一覧 (6 / 6) 端子番号 端子名 I/O 出力 入力 Pull-up/down 171 P14_3 I/O 出力 Hi-Z 入力可能 off 172 P17_0 I/O 出力 Hi-Z 入力可能 off 173 P17_1 I/O 出力 Hi-Z 入力可能 off 174 P17_2 I/O 出力 Hi-Z 入力可能 off 175 P17_3 I/O 出力 Hi-Z 入力可能 off FUJITSU FLASH Programmerを使用する場合, リセット後は"H"出力ですが, 制御プログラムダウンロー ド後は , Hi-Z 状態になります。 通常 , シリアル書込み中におけるモード端子レベルは , 固定で使用することを推奨します。MD2 端子 を以下のように変更する場合は , 出力状態になる端子がありますので注意してください。 動作モード:MD0 = MD1 = L, DM2 = H, MD3 = L, P15_2 = P15_3 = L 途中で DM2 を "H" から "L" に切り換える場合 P21_2: リセット後は "H" 出力 制御プログラムダウンロード後に Hi-Z P23_0:リセット後は "H" 出力 P23_1: リセット後は "L" 出力 制御プログラムダウンロード後 Hi-Z P23_2:メインクロック周波数のパルス出力 シリアル書込み時におけるほかの未使用 I/O は Hi-Z 状態 847 付録 848 索引 索引 Numerics 0 検出 0 検出 ......................................................................402 0 検出用データレジスタ 0 検出用データレジスタ (BSD0) ........................400 10 ビットスレーブアドレスマスクレジスタ 10 ビットスレーブアドレスマスクレジスタ (ITMK) .............................................................622 10 ビットスレーブアドレスレジスタ 10 ビットスレーブアドレスレジスタ (ITBA) ..........................................................................621 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアの動作 ............676 16 ビットアウトプットコンペアの動作 タイミング .....................................................678 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの動作 ............667 16 ビットインプットキャプチャの入力 タイミング .....................................................668 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................642 16 ビットフリーランタイマ 16 ビットフリーランタイマ使用上の注意 ........659 16 ビットフリーランタイマの概要 ....................650 16 ビットフリーランタイマのカウント タイミング .....................................................658 16 ビットフリーランタイマのクリアタイミング ..........................................................................658 16 ビットフリーランタイマの動作説明 ............657 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................651 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................652 16 ビットリロードタイマ 16 ビットリロードタイマ ( 以下 RLT) の概要 ..........................................................................636 16 ビットリロードタイマのブロック ダイヤグラム .................................................636 16 ビットリロードタイマのレジスタ一覧 ........637 16 ビットリロードレジスタ 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................643 1 検出 1 検出 ......................................................................402 1 検出用データレジスタ 1 検出用データレジスタ (BSD1) ........................400 2 サイクル転送 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........276 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........275 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM, 外部 I/O, RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........274 2 サイクル転送時のデータの動作 ......................448 ステップ / ブロック転送 2 サイクル転送 ......... 429 バースト 2 サイクル転送 .................................... 428 3.3V 系 3.3V 系および 5V 系の電源投入順序について ............................................................................29 32 ビット←→ 16 ビットバスコンバータ 32 ビット←→ 16 ビットバスコンバータ ........... 42 5V 系 3.3V 系および 5V 系の電源投入順序について ............................................................................29 7 ビットスレーブアドレスマスクレジスタ 7 ビットスレーブアドレスマスクレジスタ (ISMK) .............................................................625 7 ビットスレーブアドレスレジスタ 7 ビットスレーブアドレスレジスタ (ISBA) ..........................................................................624 849 索引 A B A/D 許可レジスタ A/D 許可レジスタ (ADER) ..................................724 A/D コンバータ A/D コンバータのブロックダイヤグラム .........721 A/D コンバータのレジスタ概要 .........................722 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ 0(ADCS0) ..........728 A/D 制御ステータスレジスタ 1(ADCS1) ..........725 A/D 変換 A/D 変換データ .....................................................735 ACR 領域構成レジスタ (ACR0 ∼ ACR3) の レジスタ構成 ..................................................227 ADCR データレジスタ (ADCR1, ADCR0) .....................730 ADCS A/D 制御ステータスレジスタ 0(ADCS0) ..........728 A/D 制御ステータスレジスタ 1(ADCS1) ..........725 ADECH 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) .........733 ADER A/D 許可レジスタ (ADER) ..................................724 ADSCH 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) .........733 AD ビット シリアル制御レジスタ (SCR) の AD ビット ..........................................................................600 ASR ASR および ASZ1, ASZ0 の設定例 .....................246 領域選択レジスタ (ASR0 ∼ ASR4) の レジスタ構成 ..................................................226 ASZ ASR および ASZ1, ASZ0 の設定例 .....................246 AWR 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........276 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........275 CSX 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH) ..........268 CSX → RDX/WR1X, WR0X セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) ..........273 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H) ..........272 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H) ..........267 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H) ..........270 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........262 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H) ..........266 ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H) ..........265 リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H) ..........264 領域ウェイトレジスタ (AWR0 ∼ AWR4) の レジスタ構成 ..................................................233 BGR ボーレート / リロードカウンタレジスタ (BGR) ..........................................................................561 Break 検出 LIN-Synch-Break 検出割込みとフラグ ..............588 BSD0 0 検出用データレジスタ (BSD0) ........................ 400 BSD1 1 検出用データレジスタ (BSD1) ........................ 400 BSDC 変化点検出用データレジスタ (BSDC) ..............401 BSRR 検出結果レジスタ (BSRR) ..................................401 850 C CAN CAN クロック周波数 ...........................................531 CAN の特長 ...........................................................452 CAN_TX 端子 CAN_TX のソフトフェア制御 ...................527 CAN クロック周波数 CAN クロック周波数 ...........................................531 CAN コントローラ CAN コントローラ ............................................... 453 CCR コンディションコードレジスタ (CCR) ............... 58 CHER キャッシュイネーブルレジスタ (CHER) の レジスタ構成 ..................................................243 CLKB CPU クロック (CLKB) .........................................101 CLKP 周辺クロック (CLKP) .......................................... 101 CLKR CLKR:クロックソース制御レジスタ ..............115 CLKT 外部バスクロック (CLKT) ..................................102 CPU CPU ........................................................................... 41 CPU インタフェース ............................................ 453 CPU 間の接続 ........................................................ 592 CPU 間の接続方法 ................................................579 CPU クロック (CLKB) .........................................101 CPU 間の接続 ........................................................ 591 CPU インタフェース CPU インタフェース ............................................ 453 CPU 間接続 CPU 間の接続 ................................................591, 592 CPU 間の接続方法 ................................................579 CPU クロック CPU クロック (CLKB) .........................................101 CSCFG CSCFG: クロックソース構成レジスタ ..............123 CSER チップセレクト領域許可レジスタ (CSER) の レジスタ構成 ..................................................242 CSX 遅延設定 CSX 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH) ......... 268 索引 CSX → RDX/WRX セットアップ CSX → RDX/WR1X, WR0X セットアップ・RDX/ WR1X, WR0X → CSX ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ..........269 CSX → RDX/WRX セットアップ設定 CSX → RDX/WR1X, WR0X セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) ..........273 CTBR CTBR:タイムベースカウンタクリアレジスタ ..........................................................................114 D DDR データ方向レジスタ (DDR) ................................286 DICR DICR ( 遅延割込みモジュールレジスタ ) .........396 DICR の DLYI ビット ...........................................397 DIVR DIVR0:基本クロック分周設定レジスタ 0 ..........................................................................118 DIVR1:基本クロック分周設定レジスタ 1 ..........................................................................121 DLYI ビット DICR の DLYI ビット ...........................................397 DMA DMA 転送要求要因 ..............................................841 DMA による割込みクリアの発生タイミング ..........................................................................438 DMA 抑止 ..............................................................435 DMAC DMAC の概要 ........................................................424 DMAC の主要機能 ................................................406 DMAC の主要動作 ................................................425 DMAC のハードウェア構成 ................................406 DMAC のブロックダイヤグラム ........................408 DMAC のレジスタ概要 ........................................407 DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のレジスタ構成 ...........239 DMACA DMACA0 ∼ DMACA4 のビット機能 ................410 DMACB DMACB0 ∼ DMACB4 のビット機能 ................414 DMACR DMACR のビット機能 .........................................422 DMAC 割込み制御 DMAC 割込み制御が出力できる割込み ............442 DMADA DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 の ビット機能 ......................................................420 DMASA DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 の ビット機能 ......................................................420 DMA 転送 DMA 転送と割込み ..............................................435 スリープモード中の DMA 転送の注意 .............443 DSU4 DSU4 (ICE) 専用接続端子について .....................32 E ECCR 拡張通信制御レジスタ (ECCR) .......................... 558 EIRR 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................341 EIT EIT からの復帰 ....................................................... 71 EIT の動作 ...............................................................79 EIT の特長 ...............................................................71 EIT の割込みレベル ...............................................72 EIT ベクタテーブル ...............................................76 EIT 要因 ................................................................... 71 EIT 要因受理の優先度 ...........................................77 ELVR 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................342 ENIR 割込み許可レジスタ (ENIR) のビット構成 ..........................................................................340 ESCR 拡張ステータス・制御レジスタ (ESCR) ........... 555 F Field エッジ検出 LIN-Synch-Field エッジ検出割込み .................... 565 FIFO FIFO バッファの構成 ...........................................516 FIFO バッファ FIFO バッファからの読出し ............................... 517 FIFO バッファによるメッセージ受信 ............... 516 FIFO バッファの構成 ...........................................516 G GCN GCN10 の機能 ....................................................... 693 GCN11 の機能 ....................................................... 696 GCN20, GCN21 の機能 .........................................699 ジェネラル制御レジスタ 2 (GCN20, GCN21) の 構成 .................................................................. 699 ゼネラル制御レジスタ 10 (GCN10) の構成 ..........................................................................693 ゼネラル制御レジスタ 11 (GCN11) の構成 ..........................................................................696 H Hold Request Cancel Request ホールドリクエスト取下げ要求 (Hold Request Cancel Request) ........................ 333 HRCL ホールドリクエスト取下げ要求機能 (HRCL) の 使用例 .............................................................. 335 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................326 851 索引 I I/O ウェイトレジスタ DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のレジスタ構成 ...........239 I/O マップ I/O マップの読み方 ..............................................790 I2C インタフェース I2C インタフェースの特長 ..................................602 I2C インタフェースのブロックダイヤグラム ..........................................................................605 I2C インタフェースのレジスタ一覧 ..................603 I2C インタフェースのレジスタ概要 ..................606 IBCR バス制御レジスタ (IBCR) ....................................611 IBSR バスステータスレジスタ (IBSR) ........................607 ICCR クロック制御レジスタ (ICCR) ............................619 ICE DSU4 (ICE) 専用接続端子について .....................32 ICHCR 命令キャッシュ制御レジスタ (ICHCR) ...............48 ICR ICR マッピング .......................................................74 割込み制御レジスタ (ICR) のビット構成 .........325 割込み制御レジスタ (ICR) ビット構成 ...............74 ICS インプットキャプチャレジスタ (ICS01, ICS23) の ビット構成 ......................................................665 IDAR データレジスタ (IDAR) .......................................626 ILM ILM ...........................................................................73 割込みレベルマスクレジスタ (ILM) ....................61 INIT 設定初期化リセット (INIT) ...................................89 設定初期化リセット (INIT) 解除シーケンス ............................................................................92 INITX INITX 端子入力 ( 設定初期化リセット端子 ) ............................................................................90 INTE 命令 INTE 命令の動作 .....................................................80 INT 命令 INT 命令の動作 .......................................................80 IOWR DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のレジスタ構成 ...........239 IPCP インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) のビット構成 ..................................................664 ISBA 7 ビットスレーブアドレスレジスタ (ISBA) ..........................................................................624 ISIZE キャッシュサイズレジスタ (ISIZE) .....................48 ISMK 7 ビットスレーブアドレスマスクレジスタ (ISMK) ..............................................................625 852 ITBA 10 ビットスレーブアドレスレジスタ (ITBA) ..........................................................................621 ITMK 10 ビットスレーブアドレスマスクレジスタ (ITMK) .............................................................622 I フラグ I フラグ .................................................................... 73 L LIN LIN-UART 端子直接アクセス ............................590 LIN-UART のボーレート選択 ............................571 LIN スレーブとしての UART ............................. 587 LIN スレーブの設定 .............................................599 LIN デバイスの接続 .............................................595 LIN バスタイミング .............................................589 LIN マスタ / スレーブ通信機能 .......................... 595 LIN マスタとしての UART ................................. 586 スレーブデバイスとしての LIN-UART ............597 マスタデバイスとしての LIN-UART ................ 596 LIN-Synch LIN-Synch-Break 検出割込みとフラグ ..............588 LIN-Synch-Break 割込み .......................................565 LIN-Synch-Field エッジ検出割込み .................... 565 LIN-Synch-Break 検出 LIN-Synch-Break 検出割込みとフラグ ..............588 LIN-Synch-Field エッジ検出 LIN-Synch-Field エッジ検出割込み .................... 565 LIN-UART LIN-UART 端子直接アクセス ............................590 LIN-UART の動作 ................................................. 578 LIN-UART の動作モード .................................... 535 LIN-UART のブロックダイヤグラム ........537, 538 LIN-UART のボーレート選択 ............................571 LIN-UART のレジスタ .........................................542 LIN-UART の割込み .............................................563 スレーブデバイスとしての LIN-UART ............597 マスタデバイスとしての LIN-UART ................ 596 LIN スレーブ LIN スレーブとしての UART ............................. 587 LIN スレーブの設定 .............................................599 LIN デバイス LIN デバイスの接続 .............................................595 LIN マスタ LIN マスタとしての UART ................................. 586 LIN マスタ / スレーブ通信 LIN マスタ / スレーブ通信機能 .......................... 595 M MD モード端子 (MD0 ∼ MD3) について ................... 29 MODR モードレジスタ (MODR) .......................................85 Multiply & Divide register 乗除算レジスタ (Multiply & Divide register) ........ 63 索引 N NMI NMI (Non Maskable Interrupt) ...............................333 ユーザ割込み・NMI の動作 ..................................79 割込み・NMI に対するレベルマスク ..................73 NMI/ ホールド抑止レベル割込み NMI/ ホールド抑止レベル割込み処理中 ...........439 Non Maskable Interrupt NMI (Non Maskable Interrupt) ...............................333 O OCCP コンペアレジスタ (OCCP0 ∼ OCCP3) の機能 ..........................................................................672 コンペアレジスタ (OCCP0 ∼ OCCP3) の ビット構成 ......................................................672 P PC プログラムカウンタ (PC) ......................................61 PCNH 制御ステータスレジスタ PCNH/PCNL の各ビット の機能 ..............................................................686 制御ステータスレジスタの構成 (PCNH, PCNL) ..........................................................................686 PCNL 制御ステータスレジスタ PCNH/PCNL の各ビット の機能 ..............................................................686 制御ステータスレジスタの構成 (PCNH, PCNL) ..........................................................................686 PCSR PCSR の機能 ..........................................................690 PPG 周期設定レジスタの構成 (PCSR) ...............690 PDR ポートデータレジスタ (PDR) .............................285 PDRD ポートデータダイレクトリードレジスタ (PDRD) ..........................................................................287 PDUT PDUT の機能 .........................................................691 PPG デューティ設定レジスタ (PDUT) の構成 ..........................................................................691 PLL PLLDIVM:PLL デバイダ M .................................130 PLLDIVN:PLL デバイダ N ..................................132 PLL クロックモード動作中の注意について ............................................................................29 PLL 逓倍率 ...............................................................98 PLL 逓倍率変更後の待ち時間 ..............................99 PLL 動作許可 ...........................................................98 PLL 動作許可後の待ち時間 ..................................99 PLLDIVM PLLDIVM:PLL デバイダ M .................................130 PLLDIVN PLLDIVN:PLL デバイダ N ..................................132 PLL クロックモード PLL クロックモード動作中の注意について ............................................................................29 PLL 逓倍率変更後 PLL 逓倍率変更後の待ち時間 ..............................99 PLL デバイダ PLLDIVM:PLL デバイダ M ................................. 130 PLLDIVN:PLL デバイダ N ..................................132 PLL デバイダ M PLLDIVM:PLL デバイダ M ................................. 130 PLL デバイダ N PLLDIVN:PLL デバイダ N ..................................132 PLL 動作許可後 PLL 動作許可後の待ち時間 ..................................99 PPG PPG 出力タイミング ............................................ 701 PPG の動作 ............................................................ 700 PPG のブロックダイヤグラム ............................681 PPG のレジスタ ....................................................683 リロードタイマによる PPG の複数同時起動 ..........................................................................708 PPG 周期設定レジスタ PPG 周期設定レジスタの構成 (PCSR) ............... 690 PPG タイマレジスタ PPG タイマレジスタ (PTMR) の構成 ................ 692 PPG デューティ設定レジスタ PPG デューティ設定レジスタ (PDUT) の構成 ..........................................................................691 PS プログラムステータス (PS) ..................................57 PS レジスタ PS レジスタに関する注意事項 ............................. 30 PTMR PPG タイマレジスタ (PTMR) の構成 ................ 692 PTMR の機能 .........................................................692 PWM PWM 動作 .............................................................. 701 R RAM 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM, 外部 I/O, RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........274 メッセージ RAM ..................................................453 メッセージ RAM とのデータ送受信 ................. 508 RDR 受信 / 送信データレジスタ (RDR/TDR) ............553 RDX/WRX → CSX ホールド設定 CSX → RDX/WR1X, WR0X セットアップ・RDX/ WR1X, WR0X → CSX ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ......... 269 RETI 命令 RETI 命令の動作 ....................................................82 RLT 16 ビットリロードタイマ ( 以下 RLT) の概要 ..........................................................................636 ROM バスモード 1 ( 内 ROM 外バスモード ) ............... 84 バスモード 2 ( 外 ROM 外バスモード ) ............... 84 RP リターンポインタ (RP) .......................................... 62 RSRR RSRR:リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ...................................... 105 853 索引 RST 動作初期化リセット (RST) ....................................89 動作初期化リセット (RST) 解除シーケンス ............................................................................92 CSX → RDX/WR1X, WR0X セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) ......... 273 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H) ..........272 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H) ..........267 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H) ..........270 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........262 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H) ..........266 ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H) ..........265 リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H) ..........264 S SCR システムコンディションコードレジスタ (SCR) ............................................................................60 シリアル制御レジスタ (SCR) .............................544 シリアル制御レジスタ (SCR) の AD ビット ..........................................................................600 SMR シリアルモードレジスタ (SMR) ........................547 SRST STCR:SRST ビット書込み ( ソフトウェアリセット ) ................................90 SSP システムスタックポインタ (SSP) ..................62, 75 SSR シリアルステータスレジスタ (SSR) ..................550 STCR STCR:SRST ビット書込み ( ソフトウェアリセット ) ................................90 STCR:スタンバイ制御レジスタ .......................108 STOP 状態 STOP 状態からの復帰動作 ..................................347 T TBCR TBCR:タイムベースカウンタ制御レジスタ ..........................................................................111 TBR テーブルベースレジスタ (TBR) .....................62, 76 TCCS タイマ制御ステータスレジスタ (TCCS) ...........654 TCDT タイマデータレジスタ (TCDT) ..........................653 TCR 端子 / タイミングコントロールレジスタ (TCR) の レジスタ構成 ..................................................244 TDR 受信 / 送信データレジスタ (RDR/TDR) ............553 TMCSR 制御ステータスレジスタ (TMCSR) のビット構成 ..........................................................................638 TMR 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................642 TMRLR 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................643 TYP 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........276 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........275 CSX 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH) ..........268 854 U UART LIN-UART 端子直接アクセス ............................590 LIN-UART の動作 ................................................. 578 LIN-UART の動作モード .................................... 535 LIN-UART のブロックダイヤグラム ........537, 538 LIN-UART のボーレート選択 ............................571 LIN-UART のレジスタ .........................................542 LIN-UART の割込み .............................................563 LIN スレーブとしての UART ............................. 587 LIN マスタとしての UART ................................. 586 スレーブデバイスとしての LIN-UART ............597 マスタデバイスとしての LIN-UART ................ 596 USP ユーザスタックポインタ (USP) ...........................63 W WDRESETX WDRESETX の端子出力について ...................... 200 WPR WPR:ウォッチドッグリセット発生延期 レジスタ .......................................................... 117 WTCER タイマ制御レジスタ (WTCRH, WTCRL) ..........713 WTCRH タイマ制御レジスタ (WTCRH, WTCRL) ..........713 WTCRL タイマ制御レジスタ (WTCRH, WTCRL) ..........713 索引 あ アーキテクチャ 内部アーキテクチャの構造 ...................................40 内部アーキテクチャの特長 ...................................39 アービトレーション アービトレーション .............................................629 アウトプットコンペア 16 ビットアウトプットコンペアの動作 ............676 16 ビットアウトプットコンペアの動作 タイミング ......................................................678 アウトプットコンペアユニットの特長 .............670 アウトプットコンペアユニットのブロック ダイヤグラム ..................................................670 アウトプットコンペアユニットのレジスタ ..........................................................................671 アウトプットコンペアユニット アウトプットコンペアユニットの特長 .............670 アウトプットコンペアユニットのブロック ダイヤグラム ..................................................670 アウトプットコンペアユニットのレジスタ ..........................................................................671 アクセスアドレス アクセスアドレス .................................................433 アクセスモード アクセスモード .......................................................83 アクノリッジ アクノリッジ .........................................................630 アドレス / データマルチプレックスアクセス 通常アクセスおよびアドレス / データマルチプ レックスアクセス ..........................................234 アドレスエラー アドレスエラーの発生 .........................................441 アドレスレジスタ アドレスレジスタ指定 .........................................432 アドレッシング スレーブアドレッシング .....................................629 ダイレクトアドレッシング ...................................44 ダイレクトアドレッシング領域 ...........................38 アンダフロー アンダフロー動作 .................................................645 い 一時停止 制御レジスタへの書込みによる一時停止の設定 ..........................................................................439 一時停止状態 一時停止状態からの起動 .....................................436 インターバル時間 インターバルタイマのインターバル時間 .........146 インターバルタイマ インターバルタイマ機能の動作 .........................150 インターバルタイマ使用時の注意事項 .............151 インターバルタイマのインターバル時間 .........146 インターバルタイマの動作 .................................151 インターバルタイマのブロックダイヤグラム ..........................................................................146 インターバルタイマのレジスタ説明 .................148 インターバル割込み インターバル割込み .............................................150 インプットキャプチャ 16 ビットインプットキャプチャの動作 ........... 667 16 ビットインプットキャプチャの入力 タイミング ......................................................668 インプットキャプチャの概要 ............................662 インプットキャプチャのブロックダイヤグラム ..........................................................................662 インプットキャプチャのレジスタ一覧 ............663 インプットキャプチャレジスタ インプットキャプチャレジスタ (ICS01, ICS23) の ビット構成 ......................................................665 インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) のビット構成 ..................................................664 う ウォッチドッグタイマ ウォッチドッグタイマオーバフロー時のリセット タイミング ......................................................199 ハードウェアウォッチドッグタイマ ................ 194 ハードウェアウォッチドッグタイマ使用上の注意 ..........................................................................201 ハードウェアウォッチドッグタイマのブロック ダイヤグラム ..................................................195 ウォッチドッグタイマ制御レジスタ RSRR:リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ...................................... 105 ウォッチドッグリセット ウォッチドッグリセット ...................................... 91 ハードウェアウォッチドッグリセット ..............91 ウォッチドッグリセット発生延期レジスタ WPR:ウォッチドッグリセット発生延期 レジスタ .......................................................... 117 内 ROM バスモード 1 ( 内 ROM 外バスモード ) ............... 84 内 ROM 外バスモード バスモード 1 ( 内 ROM 外バスモード ) ............... 84 え エラー アドレスエラーの発生 ........................................ 441 エラーを発生しない通信エラー ........................ 630 バスエラー ............................................................ 630 エラー検出 ............................................................ 581 エラー検出 エラー検出 ............................................................ 585 エンディアン ビッグエンディアンのデータフォーマット ..........................................................................249 リトルエンディアンとビッグエンディアンの 相違点 .............................................................. 254 リトルエンディアン領域に対する制限事項 ..........................................................................254 エントリ更新 キャッシュのエントリ更新 ..................................52 お オーダリング バイトオーダリング .............................................. 64 855 索引 ビットオーダリング ...............................................64 オーバフロー ウォッチドッグタイマオーバフロー時のリセット タイミング ......................................................199 オール "H" オール "L" あるいはオール "H" の出力方法 ..........................................................................706 オール "L" オール "L" あるいはオール "H" の出力方法 ..........................................................................706 か 外 ROM バスモード 2 ( 外 ROM 外バスモード ) ...............84 開始チャネル設定レジスタ 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) .........733 解除シーケンス 設定初期化リセット (INIT) 解除シーケンス ............................................................................92 動作初期化リセット (RST) 解除シーケンス ............................................................................92 外バス バスモード 1 ( 内 ROM 外バスモード ) ...............84 バスモード 2 ( 外 ROM 外バスモード ) ...............84 外部 I/O 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM, 外部 I/O, RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........274 外部ウェイト 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H) ..........272 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H) ..........270 外部ウェイトタイミング 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H) ..........267 外部クロック 外部クロック使用時の注意 ...................................29 外部クロックの使用 .............................................575 外部デバイス 外部デバイスとの接続例 .....................................257 外部バス 外部バスクロック (CLKT) ..................................102 外部バスの設定 .......................................................29 外部バスアクセス 外部バスアクセス .................................................250 外部バスインタフェース 外部バスインタフェースの設定手順 .................277 外部バスインタフェースの特長 .........................222 外部バスインタフェースのブロックダイヤグラム ..........................................................................223 外部バスインタフェースのレジスタ一覧 .........224 外部バスインタフェースのレジスタ概要 .........225 外部バスクロック 外部バスクロック (CLKT) ..................................102 外部割込み 外部割込みの動作 .................................................344 外部割込みの動作手順 .........................................344 外部割込みを使用した STOP 状態からの復帰時に おける注意事項 ..............................................346 856 外部割込み制御部 外部割込み制御部のブロックダイヤグラム ..........................................................................338 外部割込み制御部のレジスタ一覧 .................... 338 外部割込み制御部のレジスタ詳細 .................... 339 外部割込み要因レジスタ 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................341 外部割込み要求レベル 外部割込み要求レベル ........................................ 345 外部割込み要求レベル設定レジスタ 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................342 拡張ステータス・制御レジスタ 拡張ステータス・制御レジスタ (ESCR) ........... 555 拡張通信制御レジスタ 拡張通信制御レジスタ (ECCR) .......................... 558 き 起動条件 起動条件 ................................................................ 627 基本クロック分周設定レジスタ DIVR0:基本クロック分周設定レジスタ 0 ..........................................................................118 DIVR1:基本クロック分周設定レジスタ 1 ..........................................................................121 基本タイミング 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........262 基本プログラミングモデル 基本プログラミングモデル ..................................55 キャッシュ キャッシュのエントリ更新 ..................................52 動作モード時のキャッシュの状態 ...................... 51 命令キャッシュのキャッシュ可能領域 ..............52 キャッシュイネーブルレジスタ キャッシュイネーブルレジスタ (CHER) の レジスタ構成 ..................................................243 キャッシュサイズレジスタ キャッシュサイズレジスタ (ISIZE) .....................48 く クロック CAN クロック周波数 ...........................................531 CPU クロック (CLKB) .........................................101 PLL クロックモード動作中の注意について ............................................................................29 外部クロック使用時の注意 ..................................29 外部クロックの使用 ............................................ 575 外部バスクロック (CLKT) ..................................102 クロック供給 ........................................................ 584 クロック切換え手順 ............................................ 530 クロックの選択 ......................................................97 周辺クロック (CLKP) .......................................... 101 内部クロック動作 ................................................644 内部動作クロックの生成 ...................................... 97 マシンクロック周波数ごとのボーレート設定例 ..........................................................................574 モード 2 でのクロック反転とスタート / ストップ ビット .............................................................. 583 索引 クロック制御レジスタ クロック制御レジスタ (ICCR) ............................619 クロック生成制御部 クロック生成制御部のブロックダイヤグラム ..........................................................................104 クロックソース構成レジスタ CSCFG: クロックソース構成レジスタ ..............123 クロックソース制御レジスタ CLKR:クロックソース制御レジスタ ..............115 クロック反転 モード 2 でのクロック反転とスタート / ストップ ビット ..............................................................583 クロックプリスケーラレジスタ クロックプリスケーラレジスタ .........................460 クロックモード PLL クロックモード動作中の注意について ............................................................................29 クロックモジュレータ制御レジスタ クロックモジュレータ制御レジスタの内容 ..........................................................................169 クロックモジュレータレジスタ クロックモジュレータレジスタ .........................167 け 検出 0 検出 ......................................................................402 1 検出 ......................................................................402 エラー検出 .....................................................581, 585 スレーブアドレス検出 .........................................628 変化点検出 .............................................................403 検出結果レジスタ 検出結果レジスタ (BSRR) ...................................401 こ 互換 ソフトウェア互換 .................................................600 コプロセッサ コプロセッサエラートラップ ...............................82 コプロセッサ不在トラップ ...................................82 コプロセッサエラートラップ コプロセッサエラートラップ ...............................82 コプロセッサ不在トラップ コプロセッサ不在トラップ ...................................82 コンディションコードレジスタ コンディションコードレジスタ (CCR) ...............58 コンペアレジスタ コンペアレジスタ (OCCP0 ∼ OCCP3) の機能 ..........................................................................672 コンペアレジスタ (OCCP0 ∼ OCCP3) の ビット構成 ......................................................672 さ 再起動 自動再起動 .............................................................577 ソフトウェア再起動 .............................................576 サイレントモード サイレントモード .................................................523 サイレントモードとループバックモードの結合 ..........................................................................525 サブセカンドレジスタ サブセカンドレジスタ ........................................ 715 算術演算 算術演算 .................................................................. 43 し 時 / 分 / 秒レジスタ 時 / 分 / 秒レジスタ .............................................. 717 ジェネラル制御レジスタ ジェネラル制御レジスタ 2 (GCN20, GCN21) の 構成 .................................................................. 699 システムコンディションコードレジスタ システムコンディションコードレジスタ (SCR) ............................................................................60 システムスタックポインタ システムスタックポインタ (SSP) .................. 62, 75 自動ウェイトタイミング 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H) ..........266 自動再起動 自動再起動 ............................................................ 577 周期 ハードウェアウォッチドッグタイマの周期 ..........................................................................198 周波数 CAN クロック周波数 ...........................................531 マシンクロック周波数ごとのボーレート設定例 ..........................................................................574 周辺回路 周辺回路からの転送停止要求の発生 ................ 441 周辺クロック 周辺クロック (CLKP) .......................................... 101 終了チャネル設定レジスタ 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) ......... 733 受信 FIFO バッファによるメッセージ受信 ............... 516 受信 / 送信データレジスタ (RDR/TDR) ............553 受信データの例 ....................................................633 受信動作 ................................................................ 581 受信メッセージの受容フィルタ ........................ 512 受信割込み ............................................................ 564 受信割込み生成とフラグセットタイミング ..........................................................................567 データフレーム受信 ............................................ 512 受信 / 送信データレジスタ 受信 / 送信データレジスタ (RDR/TDR) ............553 受信メッセージ 受信メッセージの受容フィルタ ........................ 512 受信メッセージの処理 ........................................ 515 受信メッセージオブジェクト 受信メッセージオブジェクトの設定 ................ 514 受信優先度 受信優先度 ............................................................ 512 受容フィルタ 受信メッセージの受容フィルタ ........................ 512 乗除算レジスタ 乗除算レジスタ (Multiply & Divide register) ........ 63 857 索引 初期化 設定初期化リセット (INIT) ...................................89 動作初期化リセット (RST) ....................................89 分周比設定の初期化 .............................................103 リセット ( デバイス初期化 ) の概要 ....................88 シリアルステータスレジスタ シリアルステータスレジスタ (SSR) ..................550 シリアル制御レジスタ シリアル制御レジスタ (SCR) .............................544 シリアル制御レジスタ (SCR) の AD ビット ..........................................................................600 シリアルモードレジスタ シリアルモードレジスタ (SMR) ........................547 シングルチップモード バスモード 0 ( シングルチップモード ) ..............84 シングルモード シングルモード .....................................................579 す 推奨設定値 推奨設定値 .............................................................732 水晶発振回路 水晶発振回路について ...........................................28 スタート / ストップビット モード 2 でのクロック反転とスタート / ストップ ビット ..............................................................583 スタック 割込みスタック .......................................................75 スタンバイ制御レジスタ STCR:スタンバイ制御レジスタ .......................108 スタンバイモード スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................334 ステップ ステップ / ブロック転送 2 サイクル転送 .........429 ステップ転送 ステップ転送 .........................................................429 ステップトレーストラップ ステップトレーストラップの動作 .......................81 ストア ロードとストア .......................................................43 ストップ スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................334 ストップビット ストップビット .....................................................581 ストップモード ストップモード復帰後の待ち時間 .....................100 ストップモード復帰後 ストップモード復帰後の待ち時間 .....................100 スリープ スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................334 スリープモード スリープモード中の DMA 転送の注意 .............443 スレーブ LIN スレーブとしての UART .............................587 LIN スレーブの設定 .............................................599 LIN マスタ / スレーブ通信機能 ..........................595 マスタ / スレーブ通信機能 .................................592 858 スレーブアドレス スレーブアドレス検出 ........................................ 628 スレーブアドレスとデータ転送の例 ................ 632 スレーブアドレスマスク .................................... 629 スレーブアドレス検出 スレーブアドレス検出 ........................................ 628 スレーブアドレスマスク スレーブアドレスマスク .................................... 629 スレーブアドレッシング スレーブアドレッシング .................................... 629 スレーブデバイス スレーブデバイスとしての LIN-UART ............597 せ 制御ステータスレジスタ 制御ステータスレジスタ (TMCSR) のビット構成 ..........................................................................638 制御ステータスレジスタ PCNH/PCNL の各ビット の機能 .............................................................. 686 制御ステータスレジスタの構成 (PCNH, PCNL) ..........................................................................686 制御レジスタ 制御レジスタのビット構成 ................................673 接続例 外部デバイスとの接続例 .................................... 257 外部との接続例 ....................................................253 設定 CSX → RDX/WR1X, WR0X セットアップ・RDX/ WR1X, WR0X → CSX ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ......... 269 設定初期化後 設定初期化後の待ち時間 ...................................... 99 設定初期化リセット INITX 端子入力 ( 設定初期化リセット端子 ) ............................................................................90 設定初期化リセット (INIT) ................................... 89 設定初期化リセット (INIT) 解除シーケンス ............................................................................92 ゼネラル制御レジスタ ゼネラル制御レジスタ 10 (GCN10) の構成 ..........................................................................693 ゼネラル制御レジスタ 11 (GCN11) の構成 ..........................................................................696 全体制御レジスタ 全体制御レジスタ ........................................461, 462 全体制御レジスタ一覧 ........................................ 455 全チャネル動作許可 全チャネル動作許可 ............................................ 436 全チャネル動作禁止 全チャネル動作禁止 ............................................ 440 そ 送受信 メッセージ RAM とのデータ送受信 ................. 508 送信 受信 / 送信データレジスタ (RDR/TDR) ............553 送信動作 ................................................................ 581 送信メッセージオブジェクトの更新 ................ 511 送信メッセージオブジェクトの設定 ................ 510 送信割込み ............................................................ 564 索引 送信割込み許可タイミング .................................599 送信割込み生成とフラグセットタイミング ..........................................................................569 送信割込み要求生成タイミング .........................570 メッセージ送信 .....................................................510 送信メッセージオブジェクト 送信メッセージオブジェクトの更新 .................511 送信メッセージオブジェクトの設定 .................510 送信優先度 送信優先度 .............................................................510 双方向通信 双方向通信機能 .....................................................591 ソフトウェア ソフトウェア互換 .................................................600 ソフトウェア再起動 .............................................576 ソフトウェアによる複数同時起動の例 .............707 ソフトウェア互換 ソフトウェア互換 .................................................600 ソフトウェア要求 ソフトウェア要求 .................................................427 ソフトウェアリセット STCR:SRST ビット書込み ( ソフトウェアリセット ) ................................90 ソフトフェア制御 端子 CAN_TX のソフトフェア制御 ...................527 た 退避 退避・復帰の処理 .................................................404 タイマ制御ステータスレジスタ タイマ制御ステータスレジスタ (TCCS) ...........654 タイマ制御レジスタ タイマ制御レジスタ (WTCRH, WTCRL) ..........713 タイマデータレジスタ タイマデータレジスタ (TCDT) ..........................653 タイマレジスタ 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................642 タイムベースカウンタ タイムベースカウンタ .........................................125 タイムベースカウンタクリアレジスタ CTBR:タイムベースカウンタクリアレジスタ ..........................................................................114 タイムベースカウンタ制御レジスタ TBCR:タイムベースカウンタ制御レジスタ ..........................................................................111 ダイレクトアドレッシング ダイレクトアドレッシング ...................................44 ダイレクトアドレッシング領域 ...........................38 端子 / タイミングコントロールレジスタ 端子 / タイミングコントロールレジスタ (TCR) の レジスタ構成 ..................................................244 端子機能 MB91F467R 端子機能一覧表 ................................16 端子機能一覧表 .......................................................10 端子入力レベル 端子入力レベル .....................................................312 端子入力レベルの選択 .........................................312 端子配列図 端子配列図 .................................................................7 単発モード 単発モード ............................................................ 735 ち 遅延スロット 遅延スロット付き動作の制限事項 ...................... 69 遅延スロット付き動作の動作説明 ...................... 68 遅延スロット付き動作の命令 ..............................68 遅延スロットなし動作の動作説明 ...................... 70 遅延スロットなし動作の命令 ..............................70 遅延スロット付き動作 遅延スロット付き動作の制限事項 ...................... 69 遅延スロット付き動作の動作説明 ...................... 68 遅延スロット付き動作の命令 ..............................68 遅延スロットなし動作 遅延スロットなし動作の動作説明 ...................... 70 遅延スロットなし動作の命令 ..............................70 遅延割込みモジュール 遅延割込みモジュールの概要 ............................394 遅延割込みモジュールのブロックダイヤグラム ..........................................................................395 遅延割込みモジュールのレジスタ一覧 ............395 遅延割込みモジュールレジスタ DICR ( 遅延割込みモジュールレジスタ ) ......... 396 チップセレクト領域許可レジスタ チップセレクト領域許可レジスタ (CSER) の レジスタ構成 ..................................................242 チャネル間優先順位 チャネル間優先順位 ............................................ 444 チャネルグループ チャネルグループ ................................................445 直接アクセス LIN-UART 端子直接アクセス ............................590 つ 通常アクセス 通常アクセスおよびアドレス / データマルチプ レックスアクセス .......................................... 234 通常リセット 通常リセット動作 ..................................................95 通信 LIN マスタ / スレーブ通信機能 .......................... 595 双方向通信機能 ....................................................591 通信 ........................................................................585 通信手順 ................................................................ 593 通信モードの設定 ................................................599 マスタ / スレーブ通信機能 ................................. 592 通信エラー エラーを発生しない通信エラー ........................ 630 通信手順 通信手順 ................................................................ 593 通信モード 通信モードの設定 ................................................599 て 停止条件 停止条件 ................................................................ 627 859 索引 停止モード 停止モード .............................................................736 逓倍率 PLL 逓倍率 ...............................................................98 PLL 逓倍率変更後の待ち時間 ..............................99 データ形式 転送データ形式 .............................................580, 583 データバス幅 データバス幅 .................................................250, 256 データバス幅と制御信号との関係 .....................248 データフレーム データフレーム受信 .............................................512 データ方向レジスタ データ方向レジスタ (DDR) ................................286 データレジスタ データレジスタ (ADCR1, ADCR0) .....................730 データレジスタ (IDAR) .......................................626 テーブルベースレジスタ テーブルベースレジスタ (TBR) .....................62, 76 テストモード テストモード設定 .................................................523 デバイス LIN デバイスの接続 .............................................595 外部デバイスとの接続例 .....................................257 スレーブデバイスとしての LIN-UART .............597 デバイス状態 .........................................................142 デバイス状態制御の概要 .....................................141 デバイスの動作状態 .............................................143 マスタデバイスとしての LIN-UART .................596 リセット ( デバイス初期化 ) の概要 ....................88 デバイス初期化 リセット ( デバイス初期化 ) の概要 ....................88 デバイダ PLLDIVM:PLL デバイダ M .................................130 PLLDIVN:PLL デバイダ N ..................................132 デバッガ デバッガ関連の注意事項 .......................................31 電源端子 電源端子について ...................................................28 電源投入後 電源投入後の待ち時間 ...........................................99 転送 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........276 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........275 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM, 外部 I/O, RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........274 2 サイクル転送時のデータの動作 ......................448 DMA 転送と割込み ..............................................435 DMA 転送要求要因 ..............................................841 周辺回路からの転送停止要求の発生 .................441 ステップ / ブロック転送 2 サイクル転送 .........429 ステップ転送 .........................................................429 スリープモード中の DMA 転送の注意 .............443 スレーブアドレスとデータ転送の例 .................632 転送アドレス .........................................................425 転送回数と転送終了 .............................................426 転送起動 .................................................................436 転送シーケンスの選択 .........................................428 転送終了 .................................................................440 転送タイプ .............................................................425 860 転送データ形式 ............................................580, 583 転送要求の受付けと転送 .................................... 437 バースト 2 サイクル転送 .................................... 428 バースト転送の動作フロー ................................447 ブロック転送 ........................................................ 429 ブロック転送の動作フロー ................................446 転送回数 転送回数と転送終了 ............................................ 426 転送回数レジスタ 転送回数レジスタとリロード動作 .................... 434 転送シーケンス 転送シーケンスの選択 ........................................ 428 転送終了 転送回数と転送終了 ............................................ 426 転送終了 ................................................................ 440 転送停止 周辺回路からの転送停止要求の発生 ................ 441 転送モード 転送モード ............................................................ 425 転送要求 転送要求の受付けと転送 .................................... 437 と 同期化 同期化方法 ............................................................ 579 同期リセット 同期リセット動作 ..................................................95 動作許可ビット 動作許可ビット ....................................................579 動作初期化リセット 動作初期化リセット (RST) ................................... 89 動作初期化リセット (RST) 解除シーケンス ............................................................................92 動作設定 動作設定 ................................................................ 599 動作設定の変更 ....................................................599 動作モード 動作モード時のキャッシュの状態 ...................... 51 動作モードの概要 ..................................................83 LIN-UART の動作モード .................................... 535 動作モード 3 における LIN の使用 .................... 599 トラップ コプロセッサエラートラップ ..............................82 コプロセッサ不在トラップ ..................................82 な 内蔵周辺要求 内蔵周辺要求 ........................................................ 427 内部 RAM 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM, 外部 I/O, RAM →内部 RAM もタイミングは同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H) ..........274 内部アーキテクチャ 内部アーキテクチャの構造 ..................................40 内部アーキテクチャの特長 ..................................39 内部クロック 内部クロック動作 ................................................644 内部動作クロック 内部動作クロックの生成 ...................................... 97 索引 に 入出力回路形式 入出力回路形式 .......................................................23 は バースト バースト 2 サイクル転送 .....................................428 バースト 2 サイクル転送 バースト 2 サイクル転送 .....................................428 バースト転送 バースト転送の動作フロー .................................447 ハードウェア ハードウェアウォッチドッグタイマ .................194 ハードウェアウォッチドッグタイマのブロック ダイヤグラム ..................................................195 ハードウェアウォッチドッグリセット ...............91 ハードウェアウォッチドッグタイマ ハードウェアウォッチドッグタイマ .................194 ハードウェアウォッチドッグタイマ使用上の注意 ..........................................................................201 ハードウェアウォッチドッグタイマの機能 ..........................................................................198 ハードウェアウォッチドッグタイマの周期 ..........................................................................198 ハードウェアウォッチドッグタイマのブロック ダイヤグラム ..................................................195 ハードウェアウォッチドッグタイマ制御レジスタ ハードウェアウォッチドッグタイマ制御レジスタ ..................................................................196, 197 ハードウェア構成 DMAC のハードウェア構成 ................................406 割込みコントローラのハードウェア構成 .........320 ハーバード ハーバード←→プリンストン バスコンバータ ............................................................................42 ハーバード←→プリンストン バスコンバータ ハーバード←→プリンストン バスコンバータ ............................................................................42 バイトオーダリング バイトオーダリング ...............................................64 バスアイドル バスアイドル機能 .................................................600 バスアイドル割込み .............................................565 バスエラー バスエラー .............................................................630 バスコンバータ 32 ビット←→ 16 ビットバスコンバータ ............42 ハーバード←→プリンストン バスコンバータ ............................................................................42 バスステータスレジスタ バスステータスレジスタ (IBSR) ........................607 バス制御レジスタ バス制御レジスタ (IBCR) ....................................611 バスタイミング LIN バスタイミング .............................................589 バスモード バスモード ...............................................................83 バスモード 0 ( シングルチップモード ) ..............84 バスモード 1 ( 内 ROM 外バスモード ) ...............84 バスモード 2 ( 外 ROM 外バスモード ) ...............84 発振安定待ち 発振安定待ち発生要因 .......................................... 93 発振安定待ち時間 発振安定待ち時間の選択 ...................................... 94 パリティ パリティ ................................................................ 582 汎用レジスタ 汎用レジスタ .......................................................... 56 ひ ビッグエンディアン ビッグエンディアンのデータフォーマット ..........................................................................249 リトルエンディアンとビッグエンディアンの 相違点 .............................................................. 254 ビットオーダリング ビットオーダリング .............................................. 64 ビット機能 DMACA0 ∼ DMACA4 のビット機能 ................ 410 DMACB0 ∼ DMACB4 のビット機能 ................ 414 DMACR のビット機能 .........................................422 DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 の ビット機能 ......................................................420 ビット構成 16 ビットタイマレジスタ (TMR) のビット構成 ..........................................................................642 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................643 インプットキャプチャレジスタ (ICS01, ICS23) の ビット構成 ......................................................665 インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) のビット構成 ..................................................664 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................341 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................342 コンペアレジスタ (OCCP0 ∼ OCCP3) の ビット構成 ......................................................672 制御ステータスレジスタ (TMCSR) のビット構成 ..........................................................................638 制御レジスタのビット構成 ................................673 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................326 割込み許可レジスタ (ENIR) のビット構成 ..........................................................................340 割込み制御レジスタ (ICR) のビット構成 ......... 325 割込み制御レジスタ (ICR) ビット構成 ............... 74 ビットサーチモジュール ビットサーチモジュールの概要 ........................ 398 ビットサーチモジュールのブロックダイヤグラム ..........................................................................399 ビットサーチモジュールのレジスタ一覧 ........399 ビット操作 論理演算とビット操作 .......................................... 44 品種構成 品種構成 .................................................................... 4 ふ フィルタ 受信メッセージの受容フィルタ ........................ 512 861 索引 フラグセットタイミング 受信割込み生成とフラグセットタイミング ..........................................................................567 送信割込み生成とフラグセットタイミング ..........................................................................569 フリーランタイマ 16 ビットフリーランタイマ使用上の注意 ..........................................................................659 16 ビットフリーランタイマの概要 ....................650 16 ビットフリーランタイマのカウント タイミング ......................................................658 16 ビットフリーランタイマのクリアタイミング ..........................................................................658 16 ビットフリーランタイマの動作説明 ............657 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................651 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................652 プリスケーラレジスタ プリスケーラレジスタ .........................................461 プリンストン ハーバード←→プリンストン バスコンバータ ............................................................................42 プルアップコントロール プルアップコントロール .......................................29 プルアップ・プルダウン制御 プルアップ・プルダウン制御 .............................315 プログラミングモデル 基本プログラミングモデル ...................................55 プログラムカウンタ プログラムカウンタ (PC) ......................................61 プログラムステータス プログラムステータス (PS) ..................................57 ブロックサイズ ブロックサイズ .....................................................430 ブロック図 ブロック図 .............................................................529 ブロックダイヤグラム 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................651 16 ビットリロードタイマのブロック ダイヤグラム ..................................................636 A/D コンバータのブロックダイヤグラム .........721 DMAC のブロックダイヤグラム ........................408 I2C インタフェースのブロックダイヤグラム ..........................................................................605 LIN-UART のブロックダイヤグラム .........537, 538 PPG のブロックダイヤグラム ............................681 アウトプットコンペアユニットのブロック ダイヤグラム ..................................................670 インターバルタイマのブロックダイヤグラム ..........................................................................146 インプットキャプチャのブロックダイヤグラム ..........................................................................662 外部バスインタフェースのブロックダイヤグラム ..........................................................................223 外部割込み制御部のブロックダイヤグラム ..........................................................................338 クロック生成制御部のブロックダイヤグラム ..........................................................................104 遅延割込みモジュールのブロックダイヤグラム ..........................................................................395 862 ハードウェアウォッチドッグタイマのブロック ダイヤグラム ..................................................195 ビットサーチモジュールのブロックダイヤグラム ..........................................................................399 ブロックダイヤグラム ............................................ 5 ポート基本ブロックダイヤグラム .................... 280 リアルタイムクロックのブロックダイヤグラム ..........................................................................712 割込みコントローラのブロックダイヤグラム ..........................................................................323 ブロック転送 ステップ / ブロック転送 2 サイクル転送 ......... 429 ブロック転送 ........................................................ 429 ブロック転送の動作フロー ................................446 分岐 分岐 ..........................................................................43 分岐命令 分岐命令の概要 ......................................................67 分周比 分周比設定の初期化 ............................................ 103 分周比の設定 ........................................................ 103 へ ベーシックモード ベーシックモード ................................................526 ベクタテーブル EIT ベクタテーブル ...............................................76 変化点検出 変化点検出 ............................................................ 403 変化点検出用データレジスタ 変化点検出用データレジスタ (BSDC) ..............401 変換時間設定レジスタ 変換時間設定レジスタ ........................................ 731 ほ ポート ポート 00 ...............................................................288 ポート 01 ...............................................................289 ポート 05 ...............................................................290 ポート 06 ...............................................................291 ポート 07 ...............................................................292 ポート 08 ...............................................................293 ポート 09 ...............................................................294 ポート 10 ...............................................................295 ポート 11 ...............................................................296 ポート 13 ...............................................................297 ポート 14 ...............................................................298 ポート 15 ...............................................................300 ポート 16 ...............................................................301 ポート 17 ...............................................................301 ポート 18 ...............................................................302 ポート 19 ...............................................................303 ポート 20 ...............................................................304 ポート 21 ...............................................................305 ポート 22 ...............................................................306 ポート 23 ...............................................................307 ポート 24 ...............................................................308 ポート 28 ...............................................................310 ポート 29 ...............................................................311 ポートの一般的な仕様 ........................................ 282 索引 ポート基本ブロックダイヤグラム ポート基本ブロックダイヤグラム .....................280 ポートデータダイレクトリードレジスタ ポートデータダイレクトリードレジスタ (PDRD) ..........................................................................287 ポートデータレジスタ ポートデータレジスタ (PDR) .............................285 ポートプルアップ・プルダウン許可レジスタ ポートプルアップ・プルダウン許可レジスタ ..........................................................................315 ポートプルアップ・プルダウン制御レジスタ ポートプルアップ・プルダウン制御レジスタ ..........................................................................316 ホールドリクエスト取下げ要求 ホールドリクエスト取下げ要求 (Hold Request Cancel Request) ........................333 ホールドリクエスト取下げ要求機能 (HRCL) の 使用例 ..............................................................335 ホールドリクエスト取下げ要求レジスタ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................326 ボーレート LIN-UART のボーレート選択 .............................571 ボーレートの算出 .................................................573 マシンクロック周波数ごとのボーレート設定例 ..........................................................................574 ボーレート / リロードカウンタレジスタ ボーレート / リロードカウンタレジスタ (BGR) ..........................................................................561 ま マシンクロック マシンクロック周波数ごとのボーレート設定例 ..........................................................................574 マスク スレーブアドレスマスク .....................................629 マスタ LIN マスタ / スレーブ通信機能 ..........................595 LIN マスタとしての UART .................................586 マスタ / スレーブ通信機能 .................................592 マスタデバイスとしての LIN-UART .................596 マスタ / スレーブ通信 LIN マスタ / スレーブ通信機能 ..........................595 マスタ / スレーブ通信機能 .................................592 マスタデバイス マスタデバイスとしての LIN-UART .................596 待ち時間 PLL 逓倍率変更後の待ち時間 ..............................99 PLL 動作許可後の待ち時間 ..................................99 ストップモード復帰後の待ち時間 .....................100 設定初期化後の待ち時間 .......................................99 電源投入後の待ち時間 ...........................................99 マッピング ICR マッピング .......................................................74 み 未定義命令 未定義命令例外の動作 ...........................................81 未使用入力端子 未使用入力端子の処理について ...........................28 め 命令 INTE 命令の動作 ....................................................80 INT 命令の動作 ....................................................... 80 RETI 命令の動作 ....................................................82 その他の命令概要 ..................................................44 遅延スロット付き動作の命令 ..............................68 遅延スロットなし動作の命令 ..............................70 分岐命令の概要 ......................................................67 命令キャッシュ ......................................................41 命令キャッシュのキャッシュ可能領域 ..............52 命令キャッシュ 命令キャッシュ ......................................................41 命令キャッシュのキャッシュ可能領域 ..............52 命令キャッシュ制御レジスタ 命令キャッシュ制御レジスタ (ICHCR) ..............48 メッセージ RAM メッセージ RAM ..................................................453 メッセージ RAM とのデータ送受信 ................. 508 メッセージインタフェースレジスタ メッセージインタフェースレジスタ ................ 461 メッセージインタフェースレジスタ一覧 ........456 メッセージオブジェクト 受信メッセージオブジェクトの設定 ................ 514 送信メッセージオブジェクトの更新 ................ 511 送信メッセージオブジェクトの設定 ................ 510 メッセージオブジェクト .................................... 508 メッセージオブジェクトの機能 ........................ 490 メッセージオブジェクトの構成 ........................ 490 メッセージ受信 FIFO バッファによるメッセージ受信 ............... 516 メッセージ送信 メッセージ送信 ....................................................510 メッセージハンドラ メッセージハンドラ ............................................ 453 メッセージハンドラレジスタ メッセージハンドラレジスタ ....................461, 496 メッセージハンドラレジスタ一覧 .................... 458 メモリマップ メモリマップ .................................................... 38, 66 も モード PLL クロックモード動作中の注意について ............................................................................29 アクセスモード ......................................................83 サイレントモード ................................................523 サイレントモードとループバックモードの結合 ..........................................................................525 スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 334 ストップモード復帰後の待ち時間 .................... 100 スリープモード中の DMA 転送の注意 ............. 443 単発モード ............................................................ 735 停止モード ............................................................ 736 テストモード設定 ................................................523 転送モード ............................................................ 425 動作モード時のキャッシュの状態 ...................... 51 動作モードの概要 ..................................................83 バスモード .............................................................. 83 863 索引 バスモード 0 ( シングルチップモード ) ..............84 バスモード 1 ( 内 ROM 外バスモード ) ...............84 バスモード 2 ( 外 ROM 外バスモード ) ...............84 ベーシックモード .................................................526 モード端子 ...............................................................85 モード端子 (MD0 ∼ MD3) について ...................29 ループバックモード .............................................524 連続モード .............................................................735 LIN-UART の動作モード .....................................535 シングルモード .....................................................579 通信モードの設定 .................................................599 動作モード 3 における LIN の使用 ....................599 モード 2 でのクロック反転とスタート / ストップ ビット ..............................................................583 モード端子 モード端子 ...............................................................85 モード端子 (MD0 ∼ MD3) について ...................29 モードレジスタ モードレジスタ (MODR) .......................................85 シリアルモードレジスタ (SMR) ........................547 ゆ ユーザ ユーザ割込み・NMI の動作 ..................................79 ユーザスタックポインタ ユーザスタックポインタ (USP) ............................63 優先順位 チャネル間優先順位 .............................................444 優先順位判定 優先順位判定 .........................................................327 優先度 EIT 要因受理の優先度 ...........................................77 ら ライト→ライトタイミング ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H) ..........265 ラッチアップ ラッチアップ防止のために ...................................28 り リアルタイムクロック リアルタイムクロックのレジスタ一覧 .............710 リード→ライトタイミング リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H) ..........264 リセット INITX 端子入力 ( 設定初期化リセット端子 ) ............................................................................90 STCR:SRST ビット書込み ( ソフトウェアリセット ) ................................90 ウォッチドッグタイマオーバフロー時のリセット タイミング ......................................................199 ウォッチドッグリセット .......................................91 設定初期化リセット (INIT) ...................................89 設定初期化リセット (INIT) 解除シーケンス ............................................................................92 通常リセット動作 ...................................................95 864 同期リセット動作 ..................................................95 動作初期化リセット (RST) ................................... 89 動作初期化リセット (RST) 解除シーケンス ............................................................................92 ハードウェアウォッチドッグリセット ..............91 リセット ( デバイス初期化 ) の概要 .................... 88 リセット要因レジスタ RSRR:リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ...................................... 105 リターンポインタ リターンポインタ (RP) .......................................... 62 リトルエンディアン リトルエンディアンとビッグエンディアンの 相違点 .............................................................. 254 リトルエンディアン領域に対する制限事項 ..........................................................................254 リモートフレーム リモートフレーム ................................................513 領域ウェイトレジスタ 領域ウェイトレジスタ (AWR0 ∼ AWR4) の レジスタ構成 ..................................................233 領域構成レジスタ 領域構成レジスタ (ACR0 ∼ ACR3) の レジスタ構成 ..................................................227 領域選択レジスタ 領域選択レジスタ (ASR0 ∼ ASR4) の レジスタ構成 ..................................................226 リロードタイマ 16 ビットリロードタイマ ( 以下 RLT) の概要 ..........................................................................636 16 ビットリロードタイマのブロック ダイヤグラム ..................................................636 16 ビットリロードタイマのレジスタ一覧 ....... 637 リロードタイマによる PPG の複数同時起動 ..........................................................................708 リロード動作 転送回数レジスタとリロード動作 .................... 434 リロード動作 ........................................................ 430 リロードレジスタ 16 ビットリロードレジスタ (TMRLR) の ビット構成 ......................................................643 る ループバックモード サイレントモードとループバックモードの結合 ..........................................................................525 ループバックモード ............................................ 524 れ 例外 未定義命令例外の動作 .......................................... 81 レジスタ 0 検出用データレジスタ (BSD0) ........................ 400 10 ビットスレーブアドレスマスクレジスタ (ITMK) .............................................................622 10 ビットスレーブアドレスレジスタ (ITBA) ..........................................................................621 1 検出用データレジスタ (BSD1) ........................ 400 7 ビットスレーブアドレスマスクレジスタ (ISMK) .............................................................625 索引 7 ビットスレーブアドレスレジスタ (ISBA) ..........................................................................624 A/D 許可レジスタ (ADER) ..................................724 A/D 制御ステータスレジスタ 0(ADCS0) ..........728 A/D 制御ステータスレジスタ 1(ADCS1) ..........725 CLKR:クロックソース制御レジスタ ..............115 CTBR:タイムベースカウンタクリアレジスタ ..........................................................................114 DICR ( 遅延割込みモジュールレジスタ ) .........396 DIVR0:基本クロック分周設定レジスタ 0 ..........................................................................118 DIVR1:基本クロック分周設定レジスタ 1 ..........................................................................121 DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のレジスタ構成 ...........239 PPG 周期設定レジスタの構成 (PCSR) ...............690 PPG タイマレジスタ (PTMR) の構成 .................692 PPG デューティ設定レジスタ (PDUT) の構成 ..........................................................................691 PS レジスタに関する注意事項 .............................30 RSRR:リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ......................................105 STCR:スタンバイ制御レジスタ .......................108 TBCR:タイムベースカウンタ制御レジスタ ..........................................................................111 WPR:ウォッチドッグリセット発生延期 レジスタ ..........................................................117 インプットキャプチャレジスタ (ICS01, ICS23) の ビット構成 ......................................................665 インプットキャプチャレジスタ (IPCP0 ∼ IPCP3) のビット構成 ..................................................664 開始チャネル設定レジスタ (ADSCH)・ 終了チャネル設定レジスタ (ADECH) .........733 外部割込み要因レジスタ (EIRR) のビット構成 ..........................................................................341 外部割込み要求レベル設定レジスタ (ELVR) の ビット構成 ......................................................342 キャッシュイネーブルレジスタ (CHER) の レジスタ構成 ..................................................243 キャッシュサイズレジスタ (ISIZE) .....................48 クロック制御レジスタ (ICCR) ............................619 クロックプリスケーラレジスタ .........................460 検出結果レジスタ (BSRR) ...................................401 コンディションコードレジスタ (CCR) ...............58 コンペアレジスタ (OCCP0 ∼ OCCP3) の機能 ..........................................................................672 コンペアレジスタ (OCCP0 ∼ OCCP3) の ビット構成 ......................................................672 サブセカンドレジスタ .........................................715 時 / 分 / 秒レジスタ ..............................................717 ジェネラル制御レジスタ 2 (GCN20, GCN21) の 構成 ..................................................................699 システムコンディションコードレジスタ (SCR) ............................................................................60 乗除算レジスタ (Multiply & Divide register) ........63 制御ステータスレジスタ (TMCSR) のビット構成 ..........................................................................638 制御ステータスレジスタの構成 (PCNH, PCNL) ..........................................................................686 ゼネラル制御レジスタ 10 (GCN10) の構成 ..........................................................................693 ゼネラル制御レジスタ 11 (GCN11) の構成 ..........................................................................696 全体制御レジスタ ................................................462 タイマ制御ステータスレジスタ (TCCS) ........... 654 タイマ制御レジスタ (WTCRH, WTCRL) ..........713 タイマデータレジスタ (TCDT) .......................... 653 端子 / タイミングコントロールレジスタ (TCR) の レジスタ構成 ..................................................244 チップセレクト領域許可レジスタ (CSER) の レジスタ構成 ..................................................242 データ方向レジスタ (DDR) ................................286 データレジスタ (IDAR) .......................................626 テーブルベースレジスタ (TBR) .....................62, 76 転送回数レジスタとリロード動作 .................... 434 ハードウェアウォッチドッグタイマ制御レジスタ ..................................................................196, 197 バスステータスレジスタ (IBSR) ........................ 607 バス制御レジスタ (IBCR) ................................... 611 プリスケーラレジスタ ........................................ 461 変化点検出用データレジスタ (BSDC) ..............401 変換時間設定レジスタ ........................................ 731 ポートデータダイレクトリードレジスタ (PDRD) ..........................................................................287 ポートデータレジスタ (PDR) ............................. 285 ポートプルアップ・プルダウン許可レジスタ ..........................................................................315 ポートプルアップ・プルダウン制御レジスタ ..........................................................................316 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................326 メッセージインタフェースレジスタ ................ 461 メッセージハンドラレジスタ ....................461, 496 モードレジスタ (MODR) .......................................85 領域ウェイトレジスタ (AWR0 ∼ AWR4) の レジスタ構成 ..................................................233 領域構成レジスタ (ACR0 ∼ ACR3) の レジスタ構成 ..................................................227 領域選択レジスタ (ASR0 ∼ ASR4) の レジスタ構成 ..................................................226 割込みレベルマスクレジスタ (ILM) ................... 61 CSCFG: クロックソース構成レジスタ ..............123 拡張ステータス・制御レジスタ (ESCR) ........... 555 拡張通信制御レジスタ (ECCR) .......................... 558 受信 / 送信データレジスタ (RDR/TDR) ............553 シリアルステータスレジスタ (SSR) .................. 550 シリアル制御レジスタ (SCR) ............................. 544 シリアル制御レジスタ (SCR) の AD ビット ..........................................................................600 ボーレート / リロードカウンタレジスタ (BGR) ..........................................................................561 レベルマスク 割込み・NMI に対するレベルマスク .................. 73 連続モード 連続モード ............................................................ 735 ろ ロード ロードとストア ......................................................43 論理演算 論理演算とビット操作 .......................................... 44 865 索引 わ ワードアライメント ワードアライメント ...............................................65 割込み DMAC 割込み制御が出力できる割込み ............442 DMA 転送と割込み ..............................................435 DMA による割込みクリアの発生タイミング ..........................................................................438 EIT の割込みレベル ...............................................72 LIN-Synch-Break 検出割込みとフラグ ...............588 LIN-Synch-Break 割込み .......................................565 LIN-Synch-Field エッジ検出割込み ....................565 LIN-UART の割込み .............................................563 NMI/ ホールド抑止レベル割込み処理中 ...........439 インターバル割込み .............................................150 外部割込みの動作 .................................................344 外部割込みの動作手順 .........................................344 外部割込み要求レベル .........................................345 受信割込み .............................................................564 受信割込み生成とフラグセットタイミング ..........................................................................567 送信割込み .............................................................564 送信割込み許可タイミング .................................599 送信割込み生成とフラグセットタイミング ..........................................................................569 送信割込み要求生成タイミング .........................570 バスアイドル割込み .............................................565 ユーザ割込み・NMI の動作 ..................................79 割込み処理 .....................................................634, 705 割込みスタック .......................................................75 割込み番号 .............................................................397 割込みベクタ .........................................................831 割込み・NMI に対するレベルマスク ..................73 割込み許可レジスタ 割込み許可レジスタ (ENIR) のビット構成 ..........................................................................340 割込みコントローラ 割込みコントローラの主要機能 .........................320 割込みコントローラのハードウェア構成 .........320 割込みコントローラのブロックダイヤグラム ..........................................................................323 割込みコントローラのレジスタ一覧 .................321 割込みコントローラのレジスタ詳細 .................324 割込み制御レジスタ 割込み制御レジスタ (ICR) のビット構成 .........325 割込み制御レジスタ (ICR) ビット構成 ...............74 割込み番号 割込み番号 .............................................................397 割込みベクタ 割込みベクタ .........................................................831 割込みレベルマスクレジスタ 割込みレベルマスクレジスタ (ILM) ....................61 ワンショット動作 ワンショット動作 .................................................703 866 CM71-10133-1 富士通半導体デバイス・CONTROLLER MANUAL FR ファミリ 32 ビット・マイクロコントローラ MB91461 MB91F467R ハードウェアマニュアル 2007 年 6 月 初版発行 発行 富士通株式会社 編集 営業推進統括部 営業推進部 電子デバイス事業本部