本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM71-10136-2 FR60Lite 32 ビット・マイクロコントローラ MB91245/S Series ハードウェアマニュアル FR60Lite 32 ビット・マイクロコントローラ MB91245/S Series ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 「デザインレビューシート」を参照してください。 「デザインレビューシート」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思わ れるチェック項目をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス半導体製品につきまして , 平素より格別のご愛顧を 賜り厚くお礼申し上げます。 FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理が要求 される組込み制御用に各種 I/O リソースを内蔵したマイクロコントローラです。 DVD プレーヤ , プリンタ , TV, PDP 制御用等 , 高性能な CPU 処理パワーを要求される 組込み用途に最適な仕様となっています。 本品種は , CPU として FR ファミリと互換性のある FR60 Lite を使用しています。 本書は , 実際に MB91245/S シリーズを使用して製品を開発される技術者を対象に , MB91245/S シリーズの機能や動作について解説したものです。本書をご一読ください。 FR は , FUJITSU RISC controller の略で , 富士通マイクロエレクトロニクス株式会社の製 品です。 ■ 商標 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商 標です。 ■ 本書の全体構成 本書は , 以下に示す 29 の章および付録から構成されています。 第 1 章 概要 MB91245/S シリーズの特長 , ブロックダイヤグラム , 機能概要など , 全体を知るた めの内容について説明します。 第 2 章 デバイスの取扱いについて MB91245/S シリーズの取扱い上の注意について説明します。 第 3 章 CPU および制御部 FR60Lite のアーキテクチャ , 仕様 , 命令など , 機能を知るための基本的な内容につ いて説明します。 第 4 章 I/O ポート I/O ポートの概要 , レジスタの構成および機能について説明します。 第 5 章 割込みコントローラ 割込みコントローラの概要 , レジスタの構成 / 機能 および動作について説明しま す。 i 第 6 章 外部割込み制御部 外部割込み制御部の概要 , レジスタの構成 / 機能および動作について説明します。 第 7 章 REALOS 関連ハード REALOS 関連ハードは , リアルタイム OS により使用されます。したがって , REALOS を使用する場合にはユーザプログラムで使用することはできません。遅 延割込みモジュールおよびビットサーチモジュールの概要 , レジスタ構成および 機能 , 動作について説明します。 第 8 章 16 ビットリロードタイマ 16 ビットリロードタイマの概要 , レジスタの構成 / 機能およびリロードタイマの動 作について説明します。 第 9 章 PPG PPG の概要 , レジスタの構成 , 機能および PPG の動作について説明します。 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) PWC の概要 , レジスタの構成 , 機能および動作について説明します。 第 11 章 メイン発振安定待ちタイマ メイン発振安定待ちタイマの概要 , レジスタの構成 , 機能および動作について説明 します。 第 12 章 16 ビットフリーランタイマ 16 ビットフリーランタイマの概要 , レジスタの構成 / 機能および 16 ビットフリー ランタイマの動作について説明します。 第 13 章 インプットキャプチャ インプットキャプチャの概要 , レジスタの構成 , 機能および動作について説明しま す。 第 14 章 アウトプットコンペア アウトプットコンペアの概要 , レジスタの構成 , 機能および動作について説明しま す。 第 15 章 U-Timer U-Timer の概要 , レジスタの構成 , 機能および動作について説明します。 第 16 章 外部バスインタフェース 外部バスインタフェース , 内部バスと外部のメモリおよび I/O デバイスとのインタ フェースを制御します。 第 17 章 DMAC (DMA コントローラ ) DMAC の概要 , レジスタの構成 / 機能および動作について説明します。 ii 第 18 章 ステッパモータコントローラ ステッパモータコントローラの概要 , レジスタの構成 / 機能および動作について説 明します。 第 19 章 サウンドジェネレータ サウンドジェネレータの概要 , レジスタの構成 / 機能および動作について説明しま す。 第 20 章 リアルタイムクロック リアルタイムクロックの概要 , レジスタの構成 / 機能および動作について説明しま す。 第 21 章 UART UART の概要 , レジスタの構成 / 機能および UART の動作について説明します。 第 22 章 LIN-UART LIN-UART の概要 , レジスタの構成 / 機能および動作について説明します。 第 23 章 A/D コンバータ A/D コンバータの概要 , レジスタの構成 / 機能および A/D コンバータの動作につい て説明します。 第 24 章 C_CAN C_CAN の機能と動作について説明します。 第 25 章 LCD コントローラ (LCDC) LCD コントローラ / ドライバ (LCDC) の概要 , レジスタの構成 / 機能および動作に ついて説明します。 第 26 章 32kHz クロック 補正ユニット 32kHz クロック補正ユニットの概要およびレジスタの構成 / 機能について説明しま す。 第 27 章 CPU 動作検出リセット回路 CPU 動作検出リセット回路の機能と動作について説明します。 第 28 章 フラッシュメモリ フラッシュメモリの概要 , レジスタの構成 / 機能および動作について説明します。 第 29 章 シリアル書込み接続例 シリアル書込み基本構成 , シリアルオンボード書込みに使用する端子 , シリアル 書込み接続例 , およびフラッシュマイコンプログラマシステム構成について説明 します。 iii 付録 付録として , I/O マップ , 割込みベクタ , 端子状態一覧 , リトル・エンディアン領域 を利用する際の注意事項 , 命令一覧 , および使用上の注意事項について記載してい ます。 • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2006-2009 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 第2章 2.1 第3章 概要 ............................................................................................................ 1 MB91245/S シリーズの特長................................................................................................... 2 品種構成 ................................................................................................................................. 5 ブロックダイヤグラム............................................................................................................ 7 外形寸法図.............................................................................................................................. 8 端子配列図.............................................................................................................................. 9 端子機能説明 ........................................................................................................................ 10 入出力回路形式 .................................................................................................................... 18 デバイスの取扱いについて ...................................................................... 21 デバイス取扱い上の注意 ...................................................................................................... 22 CPU および制御部 ................................................................................... 25 3.1 メモリ空間............................................................................................................................ 26 3.2 メモリマップ ........................................................................................................................ 27 3.3 内部アーキテクチャ ............................................................................................................. 30 3.4 プログラミング・モデル ...................................................................................................... 35 3.4.1 レジスタ ..................................................................................................................... 36 3.5 データ構造............................................................................................................................ 43 3.6 ワードアライメント ............................................................................................................. 44 3.7 メモリマップ ........................................................................................................................ 45 3.8 分岐命令 ............................................................................................................................... 46 3.9 EIT ( 例外・割込み・トラップ ) ........................................................................................... 49 3.9.1 割込みレベル .............................................................................................................. 50 3.9.2 ICR (Interrupt Control Register).................................................................................. 52 3.9.3 SSP (System Stack Pointer)....................................................................................... 53 3.9.4 TBR (Table Base Register) ........................................................................................ 54 3.9.5 多重 EIT 処理.............................................................................................................. 58 3.9.6 EIT の動作 .................................................................................................................. 60 3.10 動作モード............................................................................................................................ 64 3.11 リセット ( デバイスの初期化 ) ............................................................................................. 67 3.11.1 リセット要因と発振安定待ち時間.............................................................................. 69 3.11.2 リセットレベル .......................................................................................................... 71 3.11.3 外部リセット端子....................................................................................................... 73 3.11.4 リセット動作 .............................................................................................................. 74 3.11.5 リセット要因ビット ................................................................................................... 76 3.11.6 発振安定待ち要因....................................................................................................... 79 3.12 クロック生成制御 ................................................................................................................. 80 3.12.1 ソースクロックの選択 ............................................................................................... 81 3.12.2 PLL 制御 ..................................................................................................................... 82 3.12.3 発振安定待ち・PLL ロック待ち時間.......................................................................... 84 3.12.4 クロック分配 .............................................................................................................. 85 3.12.5 クロック分周 .............................................................................................................. 86 3.12.6 クロック生成制御部のブロックダイヤグラム............................................................ 87 3.12.7 クロック生成制御部のレジスタ詳細説明................................................................... 88 v 3.12.8 クロック制御部が持つ周辺回路 ............................................................................... 106 3.13 デバイス状態制御 ............................................................................................................... 109 第4章 4.1 4.2 4.3 I/O ポート............................................................................................... 117 I/O ポートの概要 ............................................................................................................... 118 I/O ポートのレジスタ ......................................................................................................... 121 I/O 拡張機能....................................................................................................................... 131 第5章 割込みコントローラ............................................................................... 135 5.1 割込みコントローラの概要................................................................................................. 136 5.2 割込みコントローラのレジスタ一覧 .................................................................................. 137 5.2.1 割込み制御レジスタ ( ICR)....................................................................................... 139 5.3 割込みコントローラの動作................................................................................................. 141 第6章 外部割込み制御部 .................................................................................. 149 6.1 外部割込み制御部の概要 .................................................................................................... 150 6.2 外部割込み制御部のレジスタ ............................................................................................. 151 6.2.1 割込み許可レジスタ (ENIR : ENable Interrupt request Register)............................. 152 6.2.2 外部割込み要因レジスタ (EIRR : External Interrupt Request Register)................... 153 6.2.3 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) .................. 154 6.3 外部割込み制御の動作........................................................................................................ 155 第7章 7.1 7.2 REALOS 関連ハード ............................................................................. 159 遅延割込みモジュール........................................................................................................ 160 ビットサーチモジュール .................................................................................................... 162 第8章 8.1 8.2 8.3 8.4 16 ビットリロードタイマ ...................................................................... 169 16 ビットリロードタイマの概要 ........................................................................................ 170 ブロックダイヤグラム........................................................................................................ 171 16 ビットリロードタイマのレジスタ................................................................................. 172 リロードタイマの動作........................................................................................................ 176 第9章 9.1 9.2 9.3 9.4 PPG........................................................................................................ 179 PPG の概要 ........................................................................................................................ 180 PPG のブロックダイヤグラム............................................................................................ 184 PPG のレジスタ ................................................................................................................. 187 PPG の動作説明 ................................................................................................................. 192 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ......................................... 197 10.1 PWC の概要........................................................................................................................ 198 10.2 PWC のレジスタ ................................................................................................................ 200 10.3 PWC の動作説明 ................................................................................................................ 206 第 11 章 11.1 11.2 11.3 11.4 メイン発振安定待ちタイマ .................................................................... 219 メイン発振安定待ちタイマの概要...................................................................................... 220 メイン発振安定待ちタイマのブロックダイヤグラム ......................................................... 221 メイン発振安定待ちタイマのレジスタ............................................................................... 222 メイン発振待ち割込みの動作 ............................................................................................. 224 vi 第 12 章 16 ビットフリーランタイマ................................................................... 227 12.1 16 ビットフリーランタイマの概要 .................................................................................... 228 12.2 16 ビットフリーランタイマのレジスタ ............................................................................. 230 12.3 16 ビットフリーランタイマの動作 .................................................................................... 234 第 13 章 インプットキャプチャ ........................................................................... 237 13.1 インプットキャプチャの概要 ............................................................................................. 238 13.2 インプットキャプチャのレジスタ...................................................................................... 241 13.3 インプットキャプチャの動作 ............................................................................................. 243 第 14 章 アウトプットコンペア ........................................................................... 245 14.1 アウトプットコンペアの概要 ............................................................................................. 246 14.2 アウトプットコンペアのレジスタ...................................................................................... 248 14.3 アウトプットコンペアの動作 ............................................................................................. 251 第 15 章 U-Timer.................................................................................................. 255 15.1 U-Timer の概要 ................................................................................................................... 256 15.2 U-Timer のレジスタ............................................................................................................ 258 15.3 U-Timer の動作 ................................................................................................................... 261 第 16 章 16.1 16.2 16.3 16.4 16.5 16.6 外部バスインタフェース........................................................................ 263 外部バスインタフェースの概要 ......................................................................................... 264 外部バスインタフェースのレジスタ .................................................................................. 267 外部バスインタフェースのエンディアンとバスアクセス.................................................. 278 外部バスインタフェースの通常バスインタフェース ......................................................... 286 外部バスインタフェースのレジスタ設定手順.................................................................... 293 外部バスインタフェース使用上の注意............................................................................... 294 第 17 章 DMAC (DMA コントローラ ) ................................................................. 295 17.1 DMAC の概要 ..................................................................................................................... 296 17.2 DMAC のレジスタ詳細説明................................................................................................ 299 17.3 DMAC の動作説明 .............................................................................................................. 314 17.3.1 DMAC の動作 ........................................................................................................... 315 17.3.2 転送要求の設定 ........................................................................................................ 317 17.3.3 転送シーケンス ........................................................................................................ 318 17.3.4 DMA 転送全般 .......................................................................................................... 320 17.3.5 アドレッシングモード ............................................................................................. 322 17.3.6 データの種類 ............................................................................................................ 323 17.3.7 転送回数制御 ............................................................................................................ 324 17.3.8 CPU 制御.................................................................................................................. 325 17.3.9 動作 .......................................................................................................................... 326 17.3.10 転送要求の受付けと転送 .......................................................................................... 327 17.3.11 DMA による周辺割込みクリア ................................................................................. 328 17.3.12 一時停止 ................................................................................................................... 329 17.3.13 動作終了 / 停止 ......................................................................................................... 330 17.3.14 エラーによる停止..................................................................................................... 331 17.3.15 DMAC 割込み制御 .................................................................................................... 332 17.3.16 スリープ中の DMA 転送 ........................................................................................... 333 17.3.17 チャネル選択と制御 ................................................................................................. 334 vii 17.4 DMAC の動作フロー........................................................................................................... 336 17.5 DMAC のデータパス........................................................................................................... 338 第 18 章 ステッパモータコントローラ ................................................................ 341 18.1 ステッパモータコントローラの概要 .................................................................................. 342 18.2 ステッパモータコントローラのレジスタ ........................................................................... 343 18.2.1 PWM 制御レジスタ .................................................................................................. 344 18.2.2 PWM1, PWM2 コンペアレジスタ ............................................................................ 345 18.2.3 PWM1, PWM2 選択レジスタ ................................................................................... 347 18.3 ステッパモータコントローラの使用上の注意.................................................................... 349 第 19 章 サウンドジェネレータ ........................................................................... 351 19.1 サウンドジェネレータの概要 ............................................................................................. 352 19.2 サウンドジェネレータのレジスタ...................................................................................... 353 19.2.1 サウンドコントロールレジスタ ............................................................................... 354 19.2.2 振幅データレジスタ ................................................................................................. 356 19.2.3 周波数データレジスタ ............................................................................................. 357 19.2.4 トーンカウントレジスタ .......................................................................................... 358 19.2.5 デクリメントグレードレジスタ ............................................................................... 359 19.2.6 サウンド禁止レジスタ ............................................................................................. 360 第 20 章 リアルタイムクロック ........................................................................... 361 20.1 リアルタイムクロックの概要 ............................................................................................. 362 20.2 リアルタイムクロックのレジスタ...................................................................................... 363 20.3 リアルタイムクロックの動作説明...................................................................................... 368 第 21 章 UART ..................................................................................................... 369 21.1 UART の概要 ...................................................................................................................... 370 21.2 UART のレジスタ ............................................................................................................... 371 21.3 UART の動作 ...................................................................................................................... 378 21.3.1 非同期 ( 調歩同期 ) モード........................................................................................ 379 21.3.2 クロック同期モード ................................................................................................. 381 21.3.3 割込み発生およびフラグのセットタイミング.......................................................... 383 21.4 UART の応用例................................................................................................................... 386 第 22 章 LIN-UART .............................................................................................. 389 22.1 LIN-UART の概要 ............................................................................................................... 390 22.2 LIN-UART のレジスタ一覧 ................................................................................................. 392 22.2.1 ボーレート / リロードカウンタレジスタ (BGR) ...................................................... 399 22.3 インプットキャプチャによるボーレート検出.................................................................... 400 22.3.1 UART のボーレート ................................................................................................. 401 22.3.2 ボーレートの設定..................................................................................................... 402 22.4 LIN-UART の動作 ............................................................................................................... 405 22.4.1 非同期モード ( 動作モード 0 と 1) 時の動作 ............................................................ 406 22.4.2 同期 ( モード 2) モード時の動作 .............................................................................. 408 22.4.3 LIN 機能との操作 ( モード 3).................................................................................... 410 22.4.4 シリアル端子直接アクセス ...................................................................................... 412 22.4.5 データフォーマット設定 .......................................................................................... 413 22.4.6 レジスタ / フラグビット........................................................................................... 414 viii 22.5 UART 割込み ...................................................................................................................... 415 22.5.1 ソフトウェアリセット ............................................................................................. 418 22.6 LIN-UART のクロック同期 ................................................................................................. 419 22.7 フラグセットのタイミング................................................................................................. 420 22.8 LIN-UART の特別仕様 ........................................................................................................ 424 22.9 LIN 通信動作....................................................................................................................... 426 22.10 UART からの変更点 ........................................................................................................... 430 22.11 LIN-UART の制限事項 ........................................................................................................ 431 第 23 章 A/D コンバータ ...................................................................................... 433 23.1 A/D コンバータの概要 ........................................................................................................ 434 23.2 A/D コンバータのレジスタ................................................................................................. 437 23.3 A/D コンバータの動作 ........................................................................................................ 449 第 24 章 C_CAN................................................................................................... 451 24.1 C_CAN の特長.................................................................................................................... 452 24.2 C_CAN レジスタ機能 ......................................................................................................... 454 24.2.1 全体コントロールレジスタ ...................................................................................... 462 24.2.2 メッセージインタフェースレジスタ ........................................................................ 476 24.2.3 メッセージハンドラレジスタ................................................................................... 498 24.2.4 CAN プリスケーラレジスタ (CANPRE)................................................................... 506 24.3 C_CAN の機能.................................................................................................................... 507 第 25 章 LCD コントローラ (LCDC) .................................................................... 527 LCD コントローラの概要 .................................................................................................. 528 LCD コントローラのレジスタ ........................................................................................... 530 LCD コントローラの動作 .................................................................................................. 537 25.1 25.2 25.3 第 26 章 32kHz クロック補正ユニット ................................................................ 545 26.1 32kHz クロック補正ユニットの概要.................................................................................. 546 26.2 32kHz クロック補正ユニットのレジスタ........................................................................... 548 26.3 アプリケーションノート .................................................................................................... 553 第 27 章 27.1 27.2 27.3 27.4 CPU 動作検出リセット回路................................................................... 555 CPU 動作検出リセット回路の概要 .................................................................................... 556 CPU 動作検出リセット回路のレジスタ ............................................................................. 558 CPU 動作検出リセット回路の動作 .................................................................................... 560 CPU 動作検出リセット回路使用上の注意.......................................................................... 561 第 28 章 フラッシュメモリ .................................................................................. 563 28.1 フラッシュメモリの概要 .................................................................................................... 564 28.2 フラッシュメモリのレジスタ ............................................................................................. 574 28.3 フラッシュメモリのアクセスモード .................................................................................. 578 28.4 自動アルゴリズム起動方法................................................................................................. 581 28.5 自動アルゴリズム実行状態................................................................................................. 585 28.6 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 591 28.6.1 フラッシュメモリ使用上の注意 ............................................................................... 597 28.7 セクタプロテクトオペレーション...................................................................................... 598 ix 第 29 章 シリアル書込み接続例 ........................................................................... 603 29.1 MB91F24x/S シリアル書込み接続例 .................................................................................. 604 29.2 MB91F24x/S シリアル書込み ( 非同期 ) 接続例 ................................................................. 615 付録 付録 A 付録 B 付録 C 付録 D 付録 E 付録 F 索引 ............................................................................................................... 619 I/O マップ ...................................................................................................................... 620 割込みベクタ ................................................................................................................. 633 リセットによる各端子状態 ........................................................................................... 636 リトル・エンディアン領域を利用する際の注意事項.................................................... 642 命令一覧表..................................................................................................................... 648 使用上の注意 ................................................................................................................. 663 ............................................................................................................... 667 x 本版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。 - - 品種を追加 (MB91F249/S) - - 端子名を変更 (MOD0 ∼ MOD2 → MD0 ∼ MD2) - - 全体を変更 ( クロック 1 系統品 → S サフィックスがある製品 ) 2 「■ 内蔵周辺機能」を変更 1 章 概要 1.1 MB91245/S シリーズの 特長 5, 6 1 章 概要 1.2 品種構成 表 1.2-1 を変更 7 1 章 概要 1.3 ブロックダイヤグラム 図 1.3-1 を変更 19 第 1 章 概要 1.7 入出力回路形式 22 2 章 デバイスの取扱いに ついて 2.1 デバイス取扱い上の 注意 23 27 ∼ 29 3 章 CPU および制御部 3.2 メモリマップ 「■ 入出力回路形式」の表 1.7-1 の分類 E を変更 (ADER ビット → ADE ビット ) 図 2.1-1 を変更 「● 水晶発振回路について」を変更 (「各量産品において , ご使用される発振子メーカに発振評 価依頼をしてください。」を追加 ) 図 3.2-1 を変更 70 第 3 章 CPU および制御部 「■ 電源投入時の発振安定待ち時間について」を変更 3.11.1 リセット要因と発振 「■ ストップモード中の外部割込みによる復帰について」を 安定待ち時間 削除 83 第 3 章 CPU および制御部 3.12.2 PLL 制御 87 3 章 CPU および制御部 3.12.6 クロック生成制御部 のブロックダイヤグラム 131 4 章 I/O ポート 4.3 I/O 拡張機能 171 第 8 章 16 ビットリロード タイマ 8.2 ブロックダイヤグラム 「● PLL 逓倍率」を変更 (「PLL 逓倍率設定の変更を PLL 使用中に変更することも可 能ですが , ……… プログラム動作は停止しません。」を 削除 ) 図 3.12-1 を変更 「■ 入力レベル選択レジスタ (PILR)」を変更 (PILRxy → PILRx) 図 8.2-1 を変更 (TOE0 ∼ TOE2 PFRK 内ビット → 該当 PFR ビット ) xi ページ 変更内容(詳細は本文を参照してください。 174 第 8 章 16 ビットリロード 「■ コントロールステータスレジスタ (TMCSR)」の「[bit4] RELD」を変更 タイマ 8.3 16 ビットリロード ((TOEx) → (PFR/EPFR) タイマのレジスタ (TOEx は PFR(Port Function Register) 中の TOE0 ∼ TOE2 を 示します。→ PFR/EPFR は , 該当する PFR/EPFR レジスタ内ビットの値 を示します。)) 175 第 8 章 16 ビットリロード 「■ 16 ビットリロードレジス (TMRLR)」の図 8.3-3 を変更 (16 ビットタイマレジスタ (TMR) → タイマ 8.3 16 ビットリロード 16 ビットリロードレジスタ (TMRLR)) タイマのレジスタ 213 10 章 PWC (Pulse Width Count:パルス幅測定 ) 10.3 PWC の動作説明 216 224 225 「● 最小入力パルス幅について」を変更 ( パルス幅測定入力端子 (PWI1, PWI0) → パルス幅測定入力端子 (PWC0)) 「● レジスタ書換えに関する注意事項」を変更 ([bit5, bit4] PIS1, PIS0 :入力信号選択ビット 削除 ) 第 11 章 メイン発振安定待 「■ メイン発振安定待ち割込みの動作 」を変更 ( カウンタクリア (WPCR:WCL=1) → ちタイマ 11.4 メイン発振待ち割込 カウンタクリア (OSCR:WCL=1) ) みの動作 「■ クロック供給機能の動作」を変更 ((WT1, WT0 → WS1, WS0) (OSCCR bit0: OCSDS1=1 書込み ) → (OSCCR bit0: OCSDS1=0 書込み )) 233 12 章 16 ビットフリーラン 「[bit1, bit0] CLK1, CLK0 」を変更 ( φ → fccp タイマ 12.2 16 ビットフリーラン F → fccp タイマのレジスタ カウントクロック (φ) → カウントクロック φ:リソースクロック → fccp:周辺系のクロック周波数 ) 239 13 章 インプットキャプ チャ 13.1 インプットキャプ チャの概要 図 13.1-1 を変更 (ICS23 の図を追加 ) 242 13 章 インプットキャプ チャ 13.2 インプットキャプ チャのレジスタ 図 13.2-2 を変更 ( ICS23 の図を追加 [bit7, bit6] ICP1, ICP0 → [bit7, bit6] ICP3, ICP2 (ICP1, ICP0) [bit5, bit4] ICE1, ICE0 → [bit5, bit4] ICE3, ICE2 (ICE1, ICE0) [bit3 ∼ bit0] EG11, EG10, EG01, EG00 → [bit3 ∼ bit0] EG31, EG30, EG21, EG20 (EG11, EG10, EG01, EG00)) 253 14 章 アウトプットコンペ 「<コンペアマッチ , 割込みタイミング>」を変更 ア 14.3 アウトプットコンペ アの動作 257 第 15 章 U-Timer 15.1 U-Timer の概要 「■ U-Timer のブロックダイヤグラム」の図 15.1-2 を変更 (UTIMER ( リロードレジスタ ) → UTIMR ( リロードレジスタ )) xii ページ 267 271 変更内容(詳細は本文を参照してください。 16 章 外部バスインタ フェース 16.2 外部バスインタ フェースのレジスタ 「[bit7 ∼ bit0] A23 ∼ A16」を変更 (Reserved → A23 ∼ A16) 「[bit3 ∼ bit0] TYP3, TYP2, TYP1, TYP0 = TYPe select」を変更 (TYPE[3:0] → TYP[3:0]) 343 18 章 ステッパモータ コントローラ 18.2 ステッパモータ コントローラのレジスタ 345 18 章 ステッパモータ コントローラ 18.2.2 PWM1, PWM2 コンペアレジスタ 362 20 章 リアルタイムクロッ ク 20.1 リアルタイムクロッ クの概要 365 20 章 リアルタイムクロッ 「■ タイマ制御レジスタ (WTCR)」の <注意事項> を変更 ク 20.2 リアルタイムクロッ クのレジスタ 393 第 22 章 LIN-UART 22.2 LIN-UART のレジス タ一覧 399 「[bit14 ∼ bit8] B14 ∼ B08 : ボーレートジェネレータレジスタ 22 章 LIN-UART 22.2.1 ボーレート / リロー 1」を変更 ドカウンタレジスタ (BGR1 → B14 ∼ B08) (BGR) 「[bit7 ∼ bit0] B07 ∼ B00 : ボーレートジェネレータレジスタ 0」を変更 (BGR0 → B07 ∼ B00) 400 22 章 LIN-UART 22.3 インプットキャプ チャによるボーレート 検出 「■ インプットキャプチャによるボーレート検出」の 図を 変更 430 第 22 章 LIN-UART 22.10 UART からの変更点 「■ UART からの変更点」を変更 ((SIN, SOUT) → (SIN, SOT)) 439 第 23 章 A/D コンバータ 23.2 A/D コンバータの レジスタ 「■ アナログ入力許可レジスタ 」を変更 (ADER ビット → ADE ビット ) 446 図 18.2-1 の PWS2 を変更 (「bit 7 6 5 4 3 2 1 0」→ 「bit 15 14 13 12 11 10 9 8」) 「■ PWM1, PWM2 コンペアレジスタの機能 」を変更 ( デューティ 99.9% → デューティ 99.6%) 図 20.1-1 を変更 図 22.2-1 シリアル制御レジスタ (SCR) のビット構成 の *1 を 変更 (「受信動作を禁止せずに受信エラーフラグをクリアにする と , ………… 信再開時に正常なデータを受信しない場合があ ります。 」を追加 ) 「[bit9 ∼ bit0]ST9 ∼ ST0 (Analog input sampling time set)」を 変更 (「・ST9 ∼ ST0 へ以下の値を設定することは禁止です。 3 以上の値を設定してください。"0000000010B"(02H), "0000000001B"(01H), "0000000000B"(00H) 」を追加 ) xiii ページ 変更内容(詳細は本文を参照してください。 455 24 章 C_CAN 24.2 C_CAN レジスタ機能 482 第 24 章 C_CAN 24.2.2 メッセージインタ フェースレジスタ 503 「■ CAN 割込みペンディングレジスタ (INTPND1, 第 24 章 C_CAN 24.2.3 メッセージハンドラ INTPND2)」の「IntPnd32 ∼ IntPnd1: 割込みペンディング ビット」を変更 レジスタ 507 第 24 章 C_CAN 24.3 C_CAN の機能 「■ メッセージオブジェクト」を変更 531 25 章 LCD コントローラ (LCDC) 25.2 LCD コントローラの レジスタ 「[bit11 ∼ bit8]COM3 ∼ COM0 : コモン端子イネーブルビッ ト」を変更 534 547 26 章 32kHz クロック補正 ユニット 26.1 32kHz クロック補正 ユニットの概要 564 28 章 フラッシュメモリ 28.1 フラッシュメモリの 概要 565 表 24.2-1 を変更 (Int-Id → IntId) 「■ IFx コマンドマスクレジスタ (IFxCMSK) 」の「[bit2] TxRqst/NewDat: メッセージ送信要求ビット 」を変更 「[bit7 ∼ bit0] SEG7 ∼ SEG0 セグメント端子イネーブルビッ ト」を変更 (9BH → LCR1) 図 26.1-2 を変更 (RUM (32 kHz) → RUN (32 kHz) RUMS (4 kHz) → RUNS (4 MHz)) 「28.1 フラッシュメモリの概要 」の 要約 を変更 「■ フラッシュメモリの特長」を変更 「■ ROM ライタによる書込み」を変更 ( 単体フラッシュメモリ製品の MBM29LV400C 相当 → 単体フラッシュメモリ製品の MBM29LV200TC/ MBM29LV400TC 相当 ) 図 28.1-1 を変更 ((MB91F248/S) を追加 ) 566 図 28.1-2 を変更 ((MB91F248/S) を追加 ) 567 表 28.1-1 を変更 ((MB91F248/S) を追加 ) 568 図 28.1-3 を追加 図 28.1-4 を追加 569 表 28.1-2 を追加 570 図 28.1-5 を変更 ((MB91F248/S) を追加 ) 571 表 28.1-3 を変更 ((MB91F248/S) を追加 ) 572 図 28.1-6 を追加 573 表 28.1-4 を追加 xiv ページ 変更内容(詳細は本文を参照してください。 577 28 章 フラッシュメモリ 28.2 フラッシュメモリの レジスタ 「■ フラッシュウェイトレジスタ (FLWC)」の [bit2 ∼ bit0] WTC2 ∼ WTC0 : ウェイトサイクル制御ビット を変更 ( 読出し時 → FLASH リード時 書込み時 → FLASH ライト時 ) 579 28 章 フラッシュメモリ 28.3 フラッシュメモリの アクセスモード 「■ フラッシュメモリモード」を変更 ( 2M ビットフラッシュメモリ → 2M ビット /4M ビットフラッシュメモリ ) 580 「■ MBM29LV200TC/MBM29LV400TC とのフラッシュメモ リ制御信号の対応」を変更 597 28 章 フラッシュメモリ 28.6.1 フラッシュメモリ 使用上の注意 「28.6.1 フラッシュメモリ使用上の注意」の要約 を変更 ( MB91F248 → MB91F248/MB91F249) 599 28 章 フラッシュメモリ 28.7 セクタプロテクト オペレーション 「■ イネーブルセクタプロテクト」を変更 603 ∼ 618 第 29 章 シリアル書込み 接続例 「第 29 章」全体を変更 (MB91F248/S → MB91F24x/S) 618 「■ 各端子のタイミングチャート」を変更 第 29 章 シリアル書込み 接続例 29.2 MB91F24x/S シリアル 書込み ( 非同期 ) 接続例 621 ∼ 632 付録 A I/O マップ 631 表 A-1 を変更 表 A-1 に下記を追加 (「アドレス:000A0000H ∼ 000FFFFCH 」に「 User ROM 512 Kbytes(MB91F249/S)」) 636 付録 C リセットによる各 端子状態 ■ リセット中の端子の状 態 ■ リセット中の端子の状態 を変更 ● 内部ベクタモード設定時 (M2, M1, M0=000B) → (MD2, MD1, MD0=000B) ● 外部ベクタモード設定時 (M2, M1, M0=001B) → (MD2, MD1, MD0=001B) 638 641 付録 C リセットによる各 端子状態 付表 C-1 を変更 (P60 ∼ P77/AN0 ∼ AN7 → P60 ∼ P67/AN0 ∼ AN7 PG0/(WOT)/PPG0 → PG0/PPG0) 付表 C-2 を変更 (PG0/(WOT)/PPG0 → PG0/PPG0) 変更箇所は , 本文中のページ左側の│によって示しています。 xv xvi 第1章 概要 MB91245/S シリーズの特長 , ブロックダイヤグラ ム , 機能概要など , 全体を知るための内容について 説明します。 1.1 MB91245/S シリーズの特長 1.2 品種構成 1.3 ブロックダイヤグラム 1.4 外形寸法図 1.5 端子配列図 1.6 端子機能説明 1.7 入出力回路形式 1 第 1 章 概要 1.1 MB91245/S シリーズの特長 MB91245/S シリーズは , 民生機器などの高速リアルタイム処理が要求される組込み 制御用途向けに設計された汎用の富士通 32 ビット RISC マイクロコントローラで す。 CPU には , FR ファミリと互換の FR60Lite を使用しており , LCD コントローラ , ス テッパモータコントローラを内蔵しています。 ■ FR60Lite CPU • 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段 • 最大動作周波数 :32MHz ( 原発振 /4MHz, 原発振 8 逓倍 (PLL クロック 逓倍方式 ) ) • 16 ビット固定長命令 ( 基本命令 ) • 命令実行速度 :1 命令 /1 サイクル • メモリ−メモリ間転送命令 , ビット処理命令 , バレルシフト命令など :組込み用途に適した命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 :C 言語対応命令 • レジスタのインタロック機能:アセンブラ記述も容易に可能 • 乗算器の内蔵 / 命令レベルでのサポート • 符号付き 32 ビット乗算 : 5 サイクル • 符号付き 16 ビット乗算 : 3 サイクル • 割込み (PC/PS 退避 ) :6 サイクル (16 プライオリティレベル ) • ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に 実行可能 • FR ファミリとの命令互換 ■ 内蔵周辺機能 • 内蔵 ROM 容量と ROM タイプ マスク ROM : 256K バイト (MB91248/S) 128K バイト (MB91247/S) フラッシュメモリ : 512K バイト (MB91F249/S) 256K バイト (MB91F248/S) • 内蔵 RAM 容量 : 24K バイト (MB91F249/S) 16K バイト (MB91248/S,MB91F248/S) 8K バイト (MB91247/S) 32K バイト (MB91V245A) • 汎用ポート 2 :最大 120 本 ( 内 4 本入力専用 ) 第 1 章 概要 • A/D コンバータ ( 逐次比較型 ) 10 ビット分解能 :32 チャネル /24 チャネル 変換時間 :3μs (16MHz/32MHz) 上記の変換時間を達成するために以下のようにPLLの逓倍率および周辺回路クロッ クの分周比を設定してください。 32MHz :原発振 (4MHz) の 8 逓倍の 1 分周 16MHz :原発振の 8 逓倍の 2 分周 • 外部割込み入力 :8 チャネル • ビットサーチモジュール (REALOS 使用 ) 1 ワード中の MSB( 上位ビット ) から最初の "1" → "0" 変化ビット位置をサーチする 機能 • UART ( 全二重ダブルバッファ方式 ) :1 チャネル パリティあり / なし選択可能 非同期 ( 調歩同期 )/ クロック同期通信の選択可能 専用ボーレートタイマ (U-Timer) をチャネルごとに内蔵 外部クロックを転送クロックとして使用可能 パリティ , フレーム , オーバランエラー検出機能あり • LIN-UART( 全二重ダブルバッファ方式 ) :3 チャネル クロック同期 / 非同期の選択可能 Synch-break 検出 専用ボーレートジェネレータ内蔵 • ステッパモータコントローラ :6 チャネル 8 ビット PWM 各チャネル大電流出力 4 本 • 8 / 16 ビット PPG タイマ :8 / 4 チャネル • 16 ビットリロードタイマ :3 チャネル • 16 ビットフリーランタイマ :2 チャネル (ICU/OCU 連動 ) • 16 ビットパルス幅カウンタ :1 チャネル • インプットキャプチャ :4 チャネル ( フリーランタイマ ch.0, ch.1 と連動 )ch.0 は PWC と連動 • アウトプットコンペア :2 チャネル ( フリーランタイマ ch.0 と連 動) • LCD コントローラ :SEG0 ∼ SEG31/COM0 ∼ COM3( ポート と兼用 ) • 16 ビットタイムベース / ウォッチドッグタイマ • サウンドジェネレータ • リアルタイムクロック • 32kHzサブクロック(Sサフィックスがある製品はサブクロックをサポートしません)。 • C-CAN :2 チャネル • 低消費電力モード :スリープ / ストップ / 時計モード機能 3 第 1 章 概要 • パッケージ :LQFP-144 (FPT-144P-M08) • CMOS 0.35μm テクノロジ • 電源 4 :5V 電源 ( 降圧回路により内部回路 3.3V, I/O 5.0V) 第 1 章 概要 1.2 品種構成 MB91245/S シリーズの品種構成表を表 1.2-1 に示します。掲載されていない内蔵周 辺機能は共通です。 ■ 品種構成一覧 MB91245/S シリーズの品種構成を表 1.2-1 に示します。 表 1.2-1 MB91245/S シリーズ品種構成一覧 (1 / 2) MB91V245A MB91F249/S MB91F248/S MB91248/S MB91247/S ROM/Flash 容量 外付け SRAM 512K バイト 256K バイト ← 128K バイト RAM 容量 32K バイト 24K バイト 16K バイト ← 8K バイト 外部割込み 8 チャネル ← ← ← ← DMA 5 チャネル ← ← ← ← A/D コンバータ 32 チャネル ← ← ← ← UART 1 チャネル ← ← ← ← LIN-UART 3 チャネル ← ← ← ← ステッパモータ コントローラ 6 チャネル ← ← ← ← 8 / 16 ビット PPG タイマ 8 チャネル / 4 チャネル ← ← ← ← 16 ビット リロードタイマ 3 チャネル ← ← ← ← 16 ビット フリーランタイマ 2 チャネル ← ← ← ← 16 ビット パルス幅カウンタ 1 チャネル ← ← ← ← インプット キャプチャ 4 チャネル ← ← ← ← アウトプット コンペア 2 チャネル ← ← ← ← ← ← ← ← LCD コントローラ 4COM, 32SEG サウンド ジェネレータ 1 チャネル ← ← ← ← リアルタイム クロック あり ← ← ← ← 32kHz サブクロック あり あり : MB91F249 なし : MB91F249S あり : MB91F248 なし : MB91F248S あり : MB91248 なし : MB91248S あり : MB91247 なし : MB91247S 5 第 1 章 概要 表 1.2-1 MB91245/S シリーズ品種構成一覧 (2 / 2) 6 MB91V245A MB91F249/S MB91F248/S MB91248/S MB91247/S 外部バス アドレス 16 ビット データ 16 ビット ← ← ← ← その他 評価用品 フラッシュ メモリ品 ← マスク ROM 品 ← On Chip Debug Support Unit DSU4 なし なし なし なし C-CAN 2 チャネル 32 メッセージ バッファ ← ← ← ← 第 1 章 概要 1.3 ブロックダイヤグラム MB91245/S シリーズのブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.3-1 MB91245/S シリーズブロックダイヤグラム FR 60Lite CPU コア 32 DSU* 32 DMAC 5チャネル ビットサーチ ROM 256KB/128KB/ Flash 512KB/256KB 32 バス コンバータ RAM 24KB/16KB/8KB X0,X1 X0A,X1A MD0~MD2 INITX 32←→16 アダプタ クロック 制御 16 割込み コントローラ INT0~INT7 SIN0 SOT0 SCK0 8チャネル 外部割込み 1チャネル UART 1チャネルU-Timer 2チャネル C-CAN RX0, RX1 TX0, TX1 PORT PORT I/F 3チャネル リロードタイマ TIN0~TIN2 TOT0~TOT2 1チャネル PWCタイマ PWC0 4チャネル(16ビット時) 8/16 PPGタイマ PPG0~PPG7 ICU2 IN0~IN3 OUT0, OUT1 CK0, CK1 SGA SGO ATGX AVCC/AVSS AVRH AN0~AN31 SIN3~SIN5 SOT3~SOT5 SCK3~SCK5 4チャネル ICU3 インプット ICU0 キャプチャ ICU1 2チャネル OCU OCU0 リアルタイムクロック CPU 動作検出リセット PWM1P0 PWM1P3 PWM1M0 PWM1M3 PWM2P0 PWM2P3 PWM2M0 PWM2M3 PWM1P1 PWM1P4 PWM1M1 PWM1M4 PWM2P1 PWM2P4 PWM2M1 PWM2M4 PWM1P2 PWM1P5 PWM2P2 PWM2P5 PWM2M2 PWM2M5 PWM1M2 PWM1M5 アウトプット OCU1 コンペア 2チャネル フリーラン タイマ FRT0 FRT1 サウンドジェネレータ 6チャネル ステッパモータ コントローラ 32チャネル入力 8/10ビット A/Dコンバータ 3チャネル LIN-UART COM0~COM3 32seg×4COM LCD コントローラ SEG0~SEG31 * : Sサフィックスがない製品のみ *:DSU は MB91V245A のみ搭載しています。 <注意事項> S サフィックスがある製品はサブクロックをサポートしません。 7 第 1 章 概要 外形寸法図 1.4 図 1.4-1 にパッケージの外形寸法図を示します。 ■ パッケージ外形寸法図 図 1.4-1 外形寸法図 プラスチック・LQFP, 144 ピン (FPT-144P-M08) プラスチック・LQFP, 144 ピン (FPT-144P-M08) リードピッチ 0.50mm パッケージ幅× パッケージ長さ 20.0 × 20.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX 質量 1.20g コード(参考) P-LFQFP144-20×20-0.50 注 1)* 印寸法はレジン残りを含まず。レジン残りは、片側 +0.25(.010)MAX 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 22.00±0.20(.866±.008)SQ * 20.00±0.10(.787±.004)SQ 108 0.145±0.055 (.006±.002) 73 109 72 0.08(.003) Details of "A" part +0.20 1.50 –0.10 +.008 .059 –.004 0˚~8˚ INDEX 144 37 "A" LEAD No. 1 36 0.50(.020) 0.22±0.05 (.009±.002) 0.08(.003) 2003 FUJITSU LIMITED F144019S-c-4-6 最新の外形寸法図については , 下記 URL にてご確認ください。 http://edevice.fujitsu.com/package/jp-search/ 8 0.10±0.10 (.004±.004) (Stand off) 0.25(.010) M ©2003-2008 FUJITSU MICROELECTRONICS LIMITED F144019S-c-4-7 C 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) (Mounting height) 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 1.5 端子配列図 MB91245/S シリーズの端子配列を示します。 ■ 端子配列図 図 1.5-1 に , MB91245/S シリーズの端子配列図 (LQFP-144) を示します。 図 1.5-1 MB91245/S シリーズの LQFP-144 端子配列図 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 P23/SEG3/A03 P22/SEG2/A02 P21/SEG1/A01 P20/SEG0/A00 PD7/COM3/PPG7 PD6/COM2/PPG5 PD5/COM1/PPG3 PD4/COM0/PPG1 PD3/IN3 PD2/TIN2/IN2 PD1/TIN1/IN1 PD0/TIN0/IN0/PWC0 PG3/TOT2/PPG6 PG2/TOT1/PPG4 PG1/TOT0/PPG2 X0 X1 VSS VCC PG0/PPG0 P47/SGO/SYSCLK P46/SGA/ASX P57/OUT1/RDY P56/OUT0/WR1X P55/SCK5/WR0X P54/SOT5/RDX P53/SIN5/CK1/CS3X P52/SCK4/CS2X P51/SOT4/CS1X P50/SIN4/CK0/CS0X P45/SCK3 P44/SOT3 P43/SIN3 P42/SCK0 P41/SOT0 P40/SIN0 (TOP VIEW) A04/SEG4/P24 A05/SEG5/P25 A06/SEG6/P26 A07/SEG7/P27 A08/SEG8/P30 A09/SEG9/P31 A10/SEG10/P32 A11/SEG11/P33 A12/SEG12/P34 A13/SEG13/P35 A14/SEG14/P36 A15/SEG15/P37 D08/SEG16/P10 D09/SEG17/P11 D10/SEG18/P12 X0A X1A VCC VSS VCC3C D11/SEG19/P13 D12/SEG20/P14 D13/SEG21/P15 D14/SEG22/P16 D15/SEG23/P17 D00/INT0/SEG24/P00 D01/INT1/SEG25/P01 D02/INT2/SEG26/P02 D03/INT3/SEG27/P03 D04/INT4/SEG28/P04 D05/INT5/SEG29/P05 D06/SEG30/P06 D07/ATGX/SEG31/P07 RX0/INT6/P70 TX0/P71 RX1/INT7/P72 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 108 INITX 107 MD0 106 MD1 105 MD2 104 DVSS 103 DVCC 102 PE7/PWM2M5 101 PE6/PWM2P5 100 PE5/PWM1M5 99 PE4/PWM1P5 98 PE3/PWM2M4 97 PE2/PWM2P4 96 PE1/PWM1M4 95 PE0/PWM1P4 94 PA3/PWM2M3 93 PA2/PWM2P3 92 PA1/PWM1M3 91 PA0/PWM1P3 90 DVSS 89 DVCC 88 PF7/AN15 87 PF6/AN14 86 PF5/AN13 85 PF4/AN12 84 PF3/AN11 83 PF2/AN10 82 PF1/AN9 81 PF0/AN8 80 P67/AN7 79 P66/AN6 78 P65/AN5 77 P64/AN4 76 P63/AN3 75 P62/AN2 74 P61/AN1 73 P60/AN0 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 44 43 42 41 40 39 38 37 AVSS/AVRL AVRH AVCC P80/AN16 P81/AN17 P82/AN18 P83/AN19 P84/AN20 P85/AN21 P86/AN22 P87/AN23 P90/AN24 P91/AN25 P92/AN26 P93/AN27 P94/AN28 P95/AN29 P96/AN30 P97/AN31 DVSS DVCC PC3/PWM2M2 PC2/PWM2P2 PC1/PWM1M2 PC0/PWM1P2 PB7/PWM2M1 PB6/PWM2P1 PB5/PWM1M1 PB4/PWM1P1 PB3/PWM2M0 PB2/PWM2P0 PB1/PWM1M0 PB0/PWM1P0 DVSS DVCC P73/TX1 (FPT-144P-M08) 9 第 1 章 概要 1.6 端子機能説明 MB91245/S シリーズの端子機能について説明します。 ■ 端子機能説明 表 1.6-1 に , MB91F249/S, MB91F248/S, MB91248/S, MB91247/S の端子機能を示します。 表 1.6-1 端子機能一覧表 (1 / 8) 端子番号 端子名 入出力 回路形式 P20 ∼ P23 141 ∼ 144 1∼4 5 ∼ 12 13 ∼ 15 SEG0 ∼ SEG3 汎用入出力ポートです。 F LCDC の SEG 出力です。 A00 ∼ A03 外部アドレスバスの bit0 ∼ bit3 です。 P24 ∼ P27 汎用入出力ポートです。 SEG4 ∼ SEG7 F LCDC の SEG 出力です。 A04 ∼ A07 外部アドレスバスの bit4 ∼ bit7 です。 P30 ∼ P37 汎用入出力ポートです。 SEG8 ∼ SEG15 F LCDC の SEG 出力です。 A08 ∼ A15 外部アドレスバスの bit8 ∼ bit15 です。 P10 ∼ P12 汎用入出力ポートです。 SEG16 ∼ SEG18 G D08 ∼ D10 LCDC の SEG 出力です。 外部データバスの bit8 ∼ bit10 です。 16 X0A B クロック ( 発振 ) 入力です。サブクロック 17 X1A B クロック ( 発振 ) 出力です。サブクロック P13 ∼ P17 21 ∼ 25 SEG19 ∼ SEG23 汎用入出力ポートです。 G LCDC の SEG 出力です。 D11 ∼ D15 外部データバスの bit11 ∼ bit15 です。 P00 ∼ P05 汎用入出力ポートです。 SEG24 ∼ SEG29 LCDC の SEG 出力です。 G 26 ∼ 31 INT0 ∼ INT5 D00 ∼ D05 10 機能説明 外部割込み入力です。対応する外部割込みを許可している間 は , この入力を随時使用していますので意図的に行う以外は ポートによる出力を停止させておく必要があります。 外部データバスの bit11 ∼ bit15 です。 第 1 章 概要 表 1.6-1 端子機能一覧表 (2 / 8) 端子番号 端子名 入出力 回路形式 P06 32 SEG30 汎用入出力ポートです。 G 外部データバスの bit6 です。 P07 汎用入出力ポートです。 SEG31 LCDC の SEG 出力です。 G ATGX A/D コンバータ使用時の外部トリガ入力です。 D07 外部データバスの bit7 です。 P70 汎用入出力ポートです。 INT6 I RX0 外部割込み入力です。対応する外部割込みを許可している間 は , この入力を随時使用していますので意図的に行う以外は ポートによる出力を停止させておく必要があります。 CAN0 の RX0 入力端子です。 P71 35 36 LCDC の SEG 出力です。 D06 33 34 機能説明 汎用入出力ポートです。 I TX0 CAN0 の TX0 出力端子です。 P72 汎用入出力ポートです。 INT7 I RX1 CAN1 の RX1 入力端子です。 P73 37 外部割込み入力です。対応する外部割込みを許可している間 は , この入力を随時使用していますので意図的に行う以外は ポートによる出力を停止させておく必要があります。 汎用入出力ポートです。 I TX1 CAN1 の TX1 出力端子です。 PB0 40 汎用入出力ポートです。 H PWM1P0 ステッパモータコントローラの PWM 出力端子です。 PB1 41 汎用入出力ポートです。 H PWM1M0 ステッパモータコントローラの PWM 出力端子です。 PB2 42 汎用入出力ポートです。 H PWM2P0 ステッパモータコントローラの PWM 出力端子です。 PB3 43 汎用入出力ポートです。 H PWM2M0 ステッパモータコントローラの PWM 出力端子です。 PB4 44 汎用入出力ポートです。 H PWM1P1 ステッパモータコントローラの PWM 出力端子です。 11 第 1 章 概要 表 1.6-1 端子機能一覧表 (3 / 8) 端子番号 端子名 入出力 回路形式 PB5 45 汎用入出力ポートです。 H PWM1M1 ステッパモータコントローラの PWM 出力端子です。 PB6 46 汎用入出力ポートです。 H PWM2P1 ステッパモータコントローラの PWM 出力端子です。 PB7 47 汎用入出力ポートです。 H PWM2M1 ステッパモータコントローラの PWM 出力端子です。 PC0 48 汎用入出力ポートです。 H PWM1P2 ステッパモータコントローラの PWM 出力端子です。 PC1 49 汎用入出力ポートです。 H PWM1M2 ステッパモータコントローラの PWM 出力端子です。 PC2 50 汎用入出力ポートです。 H PWM2P2 ステッパモータコントローラの PWM 出力端子です。 PC3 51 汎用入出力ポートです。 H PWM2M2 ステッパモータコントローラの PWM 出力端子です。 P97 ∼ P90 汎用入出力ポートです。この機能はアナログ入力指定が禁止 のときに有効になります。 E 54 ∼ 61 AN31 ∼ AN24 A/D コンバータのアナログ入力です。ADER レジスタの指定 がアナログ入力のとき有効となります。 P87 ∼ P80 汎用入出力ポートです。この機能はアナログ入力指定が禁止 のときに有効になります。 E 62 ∼ 69 AN23 ∼ AN16 A/D コンバータのアナログ入力です。ADER レジスタの指定 がアナログ入力のとき有効となります。 P60 ∼ P67 汎用入出力ポートです。この機能はアナログ入力指定が禁止 のときに有効になります。 E 73 ∼ 80 AN0 ∼ AN7 A/D コンバータのアナログ入力です。ADER レジスタの指定 がアナログ入力のとき有効となります。 PF0 ∼ PF7 汎用入出力ポートです。この機能はアナログ入力指定が禁止 のときに有効になります。 E 81 ∼ 88 A/D コンバータのアナログ入力です。ADER レジスタの指定 がアナログ入力のとき有効となります。 AN8 ∼ AN15 PA0 91 汎用入出力ポートです。 H PWM1P3 ステッパモータコントローラの PWM 出力端子です。 PA1 92 汎用入出力ポートです。 H PWM1M3 12 機能説明 ステッパモータコントローラの PWM 出力端子です。 第 1 章 概要 表 1.6-1 端子機能一覧表 (4 / 8) 端子番号 端子名 入出力 回路形式 PA2 93 機能説明 汎用入出力ポートです。 H PWM2P3 ステッパモータコントローラの PWM 出力端子です。 PA3 94 汎用入出力ポートです。 H PWM2M3 ステッパモータコントローラの PWM 出力端子です。 PE0 95 汎用入出力ポートです。 H PWM1P4 ステッパモータコントローラの PWM 出力端子です。 PE1 96 汎用入出力ポートです。 H PWM1M4 ステッパモータコントローラの PWM 出力端子です。 PE2 97 汎用入出力ポートです。 H PWM2P4 ステッパモータコントローラの PWM 出力端子です。 PE3 98 汎用入出力ポートです。 H PWM2M4 ステッパモータコントローラの PWM 出力端子です。 PE4 99 汎用入出力ポートです。 H PWM1P5 ステッパモータコントローラの PWM 出力端子です。 PE5 100 汎用入出力ポートです。 H PWM1M5 ステッパモータコントローラの PWM 出力端子です。 PE6 101 汎用入出力ポートです。 H PWM2P5 ステッパモータコントローラの PWM 出力端子です。 PE7 102 汎用入出力ポートです。 H PWM2M5 ステッパモータコントローラの PWM 出力端子です。 105 MD2 D モード端子 2 です。この端子の設定により基本動作モードを 設定します。VCC または VSS に接続してください。 106 MD1 D モード端子 1 です。この端子の設定により基本動作モードを 設定します。VCC または VSS に接続してください。 107 MD0 D モード端子 0 です。この端子の設定により基本動作モードを 設定します。VCC または VSS に接続してください。 108 INITX C 外部リセット入力です。 汎用入出力ポートです。UART0 のデータ入力指定が禁止の ときに有効になります。 P40 109 I SIN0 UART0 のデータ入力です。UART0 が入力動作をしている間 は , この入力を随時使用しますので意図的に行う以外はポー トによる出力を停止させておく必要があります。 13 第 1 章 概要 表 1.6-1 端子機能一覧表 (5 / 8) 端子番号 端子名 入出力 回路形式 P41 110 I UART0 のデータ出力です。この機能は UART0 のデータ出力 指定が許可のときに有効になります。 P42 汎用入出力ポートです。この機能は UART0 のクロック出力 指定が禁止のときに有効になります。 I UART0 のクロック入出力です。この機能は UART0 のクロッ ク出力指定が許可のときに有効になります。 SCK0 汎用入出力ポートです。LIN-UART0 のデータ入力指定が禁 止のときに有効になります。 P43 112 I SIN3 LIN-UART0 のデータ入力です。LIN-UART0 が入力動作をし ている間は , この入力を随時使用しますので意図的に行う以 外はポートによる出力を停止させておく必要があります。 P44 汎用入出力ポートです。LIN-UART0 のデータ出力指定が禁 止のときに有効になります。 113 I LIN-UART0 のデータ出力です。この機能は LIN-UART0 の データ出力指定が許可のときに有効になります。 SOT3 P45 114 I P50 汎用入出力ポートです。 SIN4 LIN-UART1 のデータ入力です。LIN-UART1 が入力動作をし ている間は , この入力を随時使用しますので意図的に行う以 外はポートによる出力を停止させておく必要があります。 115 I CK0 フリーランタイマ 0 の外部クロック入力です。 CS0X チップセレクト 0 の出力です。外バスモード時に有効になり ます。 P51 SOT4 汎用入出力ポートです。 I P52 SCK4 CS2X LIN-UART1 のデータ出力です。この機能は LIN-UART1 の データ出力指定が許可のときに有効になります。 チップセレクト 1 の出力です。この機能はチップセレクト 1 出力指定が許可のときに有効になります。 CS1X 14 汎用入出力ポートです。この機能は LIN-UART0 のクロック 出力指定が禁止のときに有効になります。 LIN-UART0 のクロック入出力です。この機能は LIN-UART0 のクロック出力指定が許可のときに有効になります。 SCK3 117 汎用入出力ポートです。UART0 のデータ出力指定が禁止の ときに有効になります。 SOT0 111 116 機能説明 汎用入出力ポートです。 I LIN-UART1 のクロック入出力です。この機能は LIN-UART1 のクロック出力指定が許可のときに有効になります。 チップセレクト 2 の出力です。この機能はチップセレクト 2 出力指定が許可のときに有効になります。 第 1 章 概要 表 1.6-1 端子機能一覧表 (6 / 8) 端子番号 端子名 入出力 回路形式 P53 汎用入出力ポートです。 SIN5 LIN-UART2 のデータ入力です。LIN-UART2 が入力動作をし ている間はこの入力を随時使用しますので意図的に行う以外 はポートによる出力を停止させておく必要があります。 118 I CK1 フリーランタイマ 1 の外部クロック入力です。 CS3X チップセレクト 3 の出力です。この機能はチップセレクト 3 出力指定が許可のときに有効になります。 P54 119 120 SOT5 汎用入出力ポートです。 I 外バスリードストローブ出力です。外バスモード時に有効に なります。 P55 汎用入出力ポートです。 SCK5 I OUT0 汎用入出力ポートです。 I P57 123 アウトプットコンペアの出力です。 外バスライトストローブ出力です。外バスモード時 WR1X の 出力を許可にすると有効になります。 WR1X OUT1 LIN-UART2 のクロック入出力です。この機能は LIN-UART2 のクロック出力指定が許可のときに有効になります。 外バスライトストローブ出力です。外バスモード時 WR0X の 出力を許可にすると有効になります。 P56 122 LIN-UART2 のデータ出力です。この機能は LIN-UART2 の データ出力指定が許可のときに有効になります。 RDX WR0X 121 機能説明 汎用入出力ポートです。 J アウトプットコンペアの出力です。 RDY 外部レディ入力です。この機能は外部レディ入力指定が許可 のときに有効になります。 P46 汎用入出力ポートです。 SGA I サウンドジェネレータ端子です。 ASX アドレスストローブ出力です。この機能はアドレスストロー ブ出力が許可のときに有効になります。 P47 汎用入出力ポートです。 SGO 124 サウンドジェネレータ端子です。 I SYSCLK システムクロック出力です。この機能はシステムクロック出 力指定が許可のときに有効になります。外バス動作周波数と 同じクロックを出力します (STOP 時に停止します )。 15 第 1 章 概要 表 1.6-1 端子機能一覧表 (7 / 8) 端子番号 端子名 入出力 回路形式 PG0 125 汎用入出力ポートです。 I PPG タイマ 0 の出力です。この機能は PPG タイマ 0 の出力 指定が許可のときに有効になります。 PPG0 128 X1 A メインクロック ( 発振 ) 出力です。メインクロック 129 X0 A メインクロック ( 発振 ) 入力です。メインクロック PG1 130 131 132 133 TOT0 汎用入出力ポートです。 I リロードタイマ 0 の外部タイマ出力です。 PPG2 PPG タイマ 2 の出力です。この機能は PPG タイマ 2 の出力 指定が許可のときに有効になります。 PG2 汎用入出力ポートです。 TOT1 I リロードタイマ 1 の外部タイマ出力です。 PPG4 PPG タイマ 4 の出力です。この機能は PPG タイマ 4 の出力 指定が許可のときに有効になります。 PG3 汎用入出力ポートです。 TOT2 I リロードタイマ 2 の外部タイマ出力です。 PPG6 PPG タイマ 6 の出力です。この機能は PPG タイマ 6 の出力 指定が許可のときに有効になります。 PD0 汎用入力ポートです。 TIN0 リロードタイマ 0 の外部イベント入力端子です。 IN0 K インプットキャプチャ 0 のトリガ入力です。インプットキャ プチャトリガ入力を設定し , 入力ポートを設定した場合に入 力できます。インプットキャプチャ入力として選択した場合 は , この入力を随時使用しますので意図的に行う以外はポー トによる出力を停止させておく必要があります。 PWC0 のパルス幅カウンタ 0 入力です。この機能は PWC0 の パルス幅カウンタ 0 入力が許可のときに有効になります。 PWC0 PD1 汎用入力ポートです。 TIN1 リロードタイマ 1 の外部イベント入力端子です。 134 K IN1 16 機能説明 インプットキャプチャ 1 のトリガ入力です。インプットキャ プチャトリガ入力を設定し , 入力ポートを設定した場合に入 力できます。インプットキャプチャ入力として選択した場合 は , この入力を随時使用しますので意図的に行う以外はポー トによる出力を停止させておく必要があります。 第 1 章 概要 表 1.6-1 端子機能一覧表 (8 / 8) 端子番号 入出力 回路形式 端子名 PD2 汎用入力ポートです。 TIN2 リロードタイマ 2 の外部イベント入力端子です。 IN2 インプットキャプチャ 2 のトリガ入力です。インプットキャ プチャトリガ入力を設定し , 入力ポートを設定した場合に入 力できます。インプットキャプチャ入力として選択した場合 は , この入力を随時使用しますので意図的に行う以外はポー トによる出力を停止させておく必要があります。 PD3 汎用入力ポートです。 IN3 インプットキャプチャ 3 のトリガ入力です。インプットキャ プチャトリガ入力を設定し , 入力ポートを設定した場合に入 力できます。インプットキャプチャ入力として選択した場合 は , この入力を随時使用しますので意図的に行う以外はポー トによる出力を停止させておく必要があります。 135 K 136 K PD4 ∼ PD7 137 ∼ 140 機能説明 COM0 ∼ COM3 PPG1, PPG3, PPG5, PPG7 汎用入出力ポートです。 F LCDC の COM0 ∼ COM3 出力です。 PPG タイマ 1, 3, 5, 7 の出力です。この機能は PPG タイマ 1, 3, 5, 7 の出力指定が許可のときに有効になります。 [ 電源・GND 端子 ] 端子番号 端子名 機能説明 19, 127 VSS GND 端子です。すべて同電位でお使いください。 18, 126 VCC 電源端子です。すべて同電位でお使いください。 70 AVCC A/D コンバータ用のアナログ電源端子です。 71 AVRH A/D コンバータ用のアナログ基準電源端子です。 72 AVSS/ AVRL A/D コンバータ用のアナログ GND/ アナログ基準電源端子です。 20 VCC3C 内部レギュレータ用のコンデンサ結合端子です。 38, 52, 89, 103 DVCC SMC 用の電源端子です。 39, 53, 90, 104 DVSS SMC 用の GND 端子です。 17 第 1 章 概要 1.7 入出力回路形式 入出力回路形式を示します。 ■ 入出力回路形式 表 1.7-1 入出力回路形式 (1 / 3) 分類 A 回路形式 備考 クロック入力 高速用 ( メインクロック原発振 ) 発振帰還抵抗 約 1MΩ クロック入力 低速用 ( サブクロック原発振 ) 発振帰還抵抗 約 7MΩ X1 X0 スタンバイ制御 B X1A X0A スタンバイ制御 C • ヒステリシス入力 P-ch P-ch • プルアップ抵抗付き プルアップ抵抗値=約 50kΩ(Typ) • スタンバイ制御なし N-ch R デジタル入力 18 第 1 章 概要 表 1.7-1 入出力回路形式 (2 / 3) 分類 D 回路形式 備考 マスクROM品 ヒステリシス入力 フラッシュメモリ品 • マスク ROM 品 ヒステリシス入力 MD2, MD1 のみプルダウン付き • フラッシュメモリ品 ヒステリシス入力 Flash テスト用の高電圧制御あり 制御 モード入力 拡散抵抗 E • CMOS 出力 (4mA) P-ch デジタル出力 N-ch デジタル出力 R • ヒステリシス (Automotive レベル ) 入力 ( スタンバイ制御付き ) • アナログ入力 ( 対応する ADE が "1" のときアナロ グ入力が有効になります ) デジタル入力 スタンバイ制御 アナログ入力 F P-ch デジタル出力 • CMOS 出力 (4mA) • LCDC 出力 N-ch デジタル出力 • ヒステリシス (Automotive レベル ) 入力 ( スタンバイ制御付き ) R LCDC出力 R ヒステリシス入力 スタンバイ制御 G P-ch N-ch デジタル出力 デジタル出力 LCDC出力 R R ヒステリシス入力 (Automotiveレベル) • CMOS 出力 (4mA) • LCDC 出力 • ヒステリシス (Automotive レベル ) 入力 ( スタンバイ制御付き ) • ヒステリシス (CMOS レベル ) 入力 ( スタンバイ制御付き ) ヒステリシス入力 R (CMOSレベル) スタンバイ制御 19 第 1 章 概要 表 1.7-1 入出力回路形式 (3 / 3) 分類 H 回路形式 備考 P-ch デジタル出力 N-ch デジタル出力 • CMOS 出力 PWM 用大電流出力 (30mA) • ヒステリシス (Automotive レベル ) 入力 ( スタンバイ制御付き ) R デジタル入力 スタンバイ制御 I • CMOS 出力 (4mA) P-ch デジタル出力 N-ch • ヒステリシス (Automotive レベル ) 入力 ( スタンバイ制御付き ) デジタル出力 R デジタル入力 スタンバイ制御 J P-ch N-ch R ヒステリシス入力 (AutoMotiveレベル) R ヒステリシス入力 (CMOS レベル) • CMOS 出力 (4mA) • ヒステリシス (Automotive レベル ) 入力 ( スタンバイ制御付き ) • ヒステリシス (CMOS レベル ) 入力 ( スタンバイ制御付き ) スタンバイ制御 K • ヒステリシス入力 (Automotive レベル ) P-ch • スタンバイ制御付き N-ch R デジタル入力 スタンバイ制御 20 第2章 デバイスの取扱いについて MB91245/S シリーズの取扱い上の注意について説 明します。 2.1 デバイス取扱い上の注意 21 第 2 章 デバイスの取扱いについて 2.1 デバイス取扱い上の注意 ラッチアップ防止および端子処理について説明します。 ■ デバイス取扱い上の注意 ● ラッチアップ防止のために CMOS IC では入力端子や出力端子に VCC 端子より高い電圧や VSS 端子より低い電圧 を印加した場合 , または VCC 端子と VSS 端子との 間に定格を超える電圧を印加した 場合にラッチアップ現象を生じることがあります。ラッチアップが生じると電源電流 が激増し , 素子の熱破壊に至ることがありますので使用に際しては最大定格を超える ことのないよう十分に注意してください。 ● 未使用端子の処理について 使用していない入力端子を開放のままにしておくと誤動作およびラッチアップによる 永久破壊の原因になることがありますので , 2kΩ 以上の抵抗を介してプルアップまた はプルダウンの処理をしてください。 また , 使用していない入出力端子については出力状態にして開放とするか , 入力状態の 場合は入力端子と同じ処理をしてください。 ● 電源端子について VCC 端子 , VSS 端子が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を 防止するためにデバイス内部で同電位にするべきものどうしを接続してありますが , 不要輻射の低減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出 力電流規格の遵守などのため , 必ずそれらすべてを外部で電源およびグランドに接続 してください。 また , 電源供給源からできる限り低インピーダンスで本デバイスの VCC 端子または VSS 端子に接続するような配慮をお願いいたします。 本デバイスの近くで , VCC 端子と VSS 端子との間に 0.1μF 程度のセラミックコンデン サをバイパスコンデンサとして接続することをお勧めいたします。 本デバイスはレギュレータを内蔵しております。本デバイスを 5V 電源で使用する場合 は , 5V 電源を VCC 端子に供給し , レギュレータ用に必ず VCC3C に 1μF 以上のコンデ ンサを接続してください。 図 2.1-1 電源接続の例 5V 5V 5V VCC DVCC AVCC AVRH AVSS VSS DVSS VCC3C 1μF GND 22 第 2 章 デバイスの取扱いについて ● 水晶発振回路について X0 端子 , X1 端子 , X0A 端子 , X1A 端子の近辺のノイズの本デバイスの誤動作の原因と なります。X0 端子と X1 端子 , X0A 端子と X1A 端子および水晶発振子 ( あるいはセラ ミック発振子 ) さらにグランドへのバイパスコンデンサはできる限りデバイスの近く に配置するようにプリント板を設計してください。X0 端子 , X1 端子からの信号を引き 回す場合は , ボード上でシールドしてお使いください。特に X0 端子に隣接する端子を 使用する場合には注意が必要です。 X0 端子 , X1 端子 , X0A 端子 , X1A 端子の周りをグランドで囲むようなプリント板アー トワークは安定した動作を期待できますので , 強くお勧めいたします。また , 2 系統品 を 1 系統品としてお使いになる場合においてもサブクロックは必須です。 MB91F249S/F248S/248S/247S を使用する場合は , X0A 端子を GND へ接続し , X1A 端子 を開放にしてください。 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 ● モード端子 (MD0 ∼ MD2) について これらの端子は , ノイズによる誤動作を防ぐために , VCC 端子用電源または VSS 端子 用電源との間のパターン長をできる限り短く , 低インピーダンスで接続するようにし てください。 ● 電源投入時について 電源投入直後は , 必ず INITX 端子にて設定初期化リセット (INIT) を行ってください。 また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INITX 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください ( パワーオン リセットによるリセットでは , 発振安定待ち時間の設定は最小値に初期化されていま す)。 ● 電源投入時の原発振入力について 電源投入時は , 必ず発振安定待ち解除されるまでの間 , クロックを入力してください。 ● A/D コンバータの電源端子処理 A/D コンバータを使用しない場合においても , AVCC=AVRH=VCC, AVSS =VSS となる ように接続してください。 ● A/D コンバータの電源アナログ入力の投入順序 A/D コンバータの電源 (AVCC, AVRH) およびアナログ入力 (AN0 ∼ AN31) の印加は , 必ずデジタル電源 (VCC) の投入後に行ってください。また , 電源切断時は A/D コンバー タの電源およびアナログ入力切断の後で , デジタル電源 (VCC) の切断を行ってくださ い。その際 , AVRH は AVCC を超えないように投入 , 切断を行ってください。アナロ グ入力と兼用している端子を入力ポートとして使用する場合においても , 入力電圧は AVCC を超えないようにしてください。 ● 高電流出力バッファ端子用電源 (DVCC, DVSS) の取扱い 高電流出力バッファ端子用電源 (DVCC) の印加は , 必ずデジタル電源 (VCC) の投入後 に行ってください。また , 電源切断時は高電流出力バッファ端子用電源切断の後で , デ ジタル電源 (VCC) の切断を行ってください。 23 第 2 章 デバイスの取扱いについて 高電流出力バッファ端子を汎用ポートとして使用する場合も , 高電流出力バッファ端 子用電源 (DVCC) の印加を行ってください。 高電流出力バッファ端子用の GND 端子 (DVSS) は必ずデジタル GND(VSS) と同電位で 使用してください。 ● メインモードからサブモードおよびストップモード遷移時の注意 メインモードからサブモードもしくは , ストップモードへ遷移する場合は , 遷移後メイ ンクロックを必ず止めてください。また , サブモードもしくは , ストップモードからメ インモードへ戻る場合は , 発振安定待ち時間を確保してください。 ● Flash 書込みについて サブモードでの Flash 書込みはできませんので , ご注意ください。 ● LCD 未使用時の端子処理について COM0 ∼ COM3 端子と SEG0 ∼ SEG31 端子は , 開放としてください。 24 第3章 CPU および制御部 FR60Lite のアーキテクチャ , 仕様 , 命令など , 機能 を知るための基本的な内容について説明します。 3.1 メモリ空間 3.2 メモリマップ 3.3 内部アーキテクチャ 3.4 プログラミング・モデル 3.5 データ構造 3.6 ワードアライメント 3.7 メモリマップ 3.8 分岐命令 3.9 EIT ( 例外・割込み・トラップ ) 3.10 動作モード 3.11 リセット ( デバイスの初期化 ) 3.12 クロック生成制御 3.13 デバイス状態制御 25 第 3 章 CPU および制御部 3.1 メモリ空間 MB91245/S シリーズの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニ アにアクセスを行います。 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ スを指定できます。 ダイレクト領域は , アクセスするデータのサイズにより , 以下のようになります。 26 • バイトデータアクセス :000H ∼ 0FFH • ハーフワードデータアクセス :000H ∼ 1FFH • ワードデータアクセス :000H ∼ 3FFH 第 3 章 CPU および制御部 3.2 メモリマップ 本品種のメモリ空間を示します。 ■ MB91245/S シリーズのメモリマップ 図 3.2-1 MB91245/S シリーズのメモリ空間 MB91V245A のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 I/O(C-CAN) I/O(C-CAN) I/O(C-CAN) アクセス禁止 アクセス禁止 アクセス禁止 ダイレクト アドレッシング領域 0000 0400H 0001 0000H 0002 0000H 0002 01B4H 0003 8000H 0004 0000H 内蔵RAM32Kバイト 内蔵RAM32Kバイト I/Oマップを参照 内蔵RAM32Kバイト アクセス禁止 0005 0000H アクセス禁止 アクセス禁止 0008 0000H エミュレーション SRAM領域 エミュレーション SRAM領域 外部領域 0010 0000H アクセス禁止 外部領域 FFFF FFFFH MB91F249/S のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 I/O(C-CAN) I/O(C-CAN) I/O(C-CAN) アクセス禁止 アクセス禁止 アクセス禁止 ダイレクト アドレッシング領域 0000 0400H 0001 0000H 0002 0000H 0002 01B4H 0003 A000 H 0004 0000H 内蔵RAM24Kバイト 内蔵RAM24Kバイト I/Oマップを参照 内蔵RAM24Kバイト アクセス禁止 0005 0000H アクセス禁止 アクセス禁止 0008 0000 H フラッシュメモリ 領域 512Kバイト フラッシュメモリ 領域 512Kバイト アクセス禁止 外部領域 外部領域 0010 0000H FFFF FFFFH 各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します ( モードの設定に関しては , 「3.10 動作モード」の「■モード設定」を参照 )。 (続く) 27 第 3 章 CPU および制御部 (続き) MB91F248/S のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 I/O(C-CAN) I/O(C-CAN) I/O(C-CAN) アクセス禁止 アクセス禁止 アクセス禁止 ダイレクト アドレッシング領域 0000 0400H 0001 0000H 0002 0000H 0002 01B4H 0003 C000H 0004 0000H 内蔵RAM16Kバイト 内蔵RAM16Kバイト I/Oマップを参照 内蔵RAM16Kバイト アクセス禁止 0005 0000H アクセス禁止 アクセス禁止 000C 0000H フラッシュメモリ 領域 256Kバイト フラッシュメモリ 領域 256Kバイト 外部領域 0010 0000H アクセス禁止 外部領域 FFFF FFFFH MB91248/S のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 I/O(C-CAN) I/O(C-CAN) I/O(C-CAN) アクセス禁止 アクセス禁止 アクセス禁止 ダイレクト アドレッシング領域 0000 0400H 0001 0000H 0002 0000H 0002 01B4H 0003 C000H 0004 0000H 内蔵RAM16Kバイト 内蔵RAM16Kバイト I/Oマップを参照 内蔵RAM16Kバイト アクセス禁止 0005 0000H アクセス禁止 アクセス禁止 マスクROM 領域 256Kバイト マスクROM 領域 256Kバイト アクセス禁止 外部領域 000C 0000H 外部領域 0010 0000H FFFF FFFFH 各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します ( モードの設定に関しては , 「3.10 動作モード」の「■モード設定」を参照 )。 (続く) 28 第 3 章 CPU および制御部 (続き) MB91247/S のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000H I/O I/O I/O da I/O I/O da I/O アクセス禁止 アクセス禁止 アクセス禁止 I/O(C-CAN) I/O(C-CAN) I/O(C-CAN) アクセス禁止 アクセス禁止 アクセス禁止 内蔵RAM8Kバイト 内蔵RAM8Kバイト 内蔵RAM8Kバイト アクセス禁止 アクセス禁止 マスクROM 領域 128Kバイト マスクROM 領域 128Kバイト アクセス禁止 外部領域 ダイレクト アドレッシング領域 0000 0400H 0001 0000H 0002 0000H 0002 01B4H 0003 E000H 0004 0000H I/Oマップを参照 アクセス禁止 0005 0000H 000E 0000H 外部領域 0010 0000H FFFF FFFFH 各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します ( モードの設定に関しては , 「3.10 動作モード」の「■モード設定」を参照 )。 29 第 3 章 CPU および制御部 3.3 内部アーキテクチャ MB91245/S シリーズ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用 途に向けた高機能命令を導入した高性能コアです。 ■ 内部アーキテクチャの特長 ● RISC アーキテクチャの採用 基本命令 1 命令 1 サイクル ● 32 ビットアーキテクチャ 汎用レジスタ 32 ビット× 16 本 ● 4G バイトのリニアなメモリ空間 ● 乗算器の搭載 32 ビット× 32 ビット乗算 5 サイクル 16 ビット× 16 ビット乗算 3 サイクル ● 割込み処理機能の強化 高速応答速度 (6 サイクル ) 多重割込みのサポート レベルマスク機能 (16 レベル ) ● I/O 操作用命令の強化 メモリ−メモリ転送命令 ビット処理命令 ● 高いコード効率 基本命令語長 16 ビット ● 低消費電力 スリープモード・ストップモード ● クロック分周比設定機能 30 第 3 章 CPU および制御部 ■ 内部アーキテクチャ FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構 造を採用しています。 32 ビット ↔ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周 辺リソースとのインタフェースを実現します。ハーバード ↔ プリンストンバスコン バータは I-bus, D-bus 双方に接続され , CPU とバスコントローラとのインタフェースを 実現します。 図 3.3-1 内部アーキテクチャ FR CPU I-bus 内蔵RAM 内蔵ROM D-bus 32 32 32 32 ハーバード↔プリンストン バスコンバータ F-bus 32 32 32 X-bus 32 外部バス 16 アドレス 32ビット ↔ 16ビット バスコンバータ バスコントローラ データ 16 16 R-bus 周辺機器/ポート ( 注意事項 ) MB91245/S シリーズでは , 外部バスインタフェース使用時のアドレス幅は 16 ビットまで です。 31 第 3 章 CPU および制御部 ■ CPU CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの です。 1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用してい ます。パイプラインは以下のステージから構成されています。 • 命令フェッチ (IF) … 命令アドレスを出力し , 命令をフェッチします。 • 命令デコード (ID) … フェッチした命令をデコードします。レジスタの読出 しも行います。 • 実行 (EX) … 演算を実行します。 • メモリアクセス (MA) … メモリに対するロードまたはストアのアクセスを行い ます。 • ライトバック (WB) … 演算結果 ( またはロードされたメモリデータ ) をレジ スタに書込みます。 図 3.3-2 命令パイプライン クロック 命令1 WB 命令2 MA WB 命令3 EX MA WB 命令4 ID EX MA WB 命令5 IF ID EX MA WB IF ID EX MA 命令6 WB 命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前のパ イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。 命令の実行は原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモリ ウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイク ル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い場 合も命令の実行速度が低下します。 ■ 32 ビット ←→ 16 ビット バスコンバータ 32 ビット幅で高速アクセスされる F-bus と 16 ビット幅でアクセスされる R-bus でイン タフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。 CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16 ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路の一部に はアクセス幅に関して制限のあるものがあります。 32 第 3 章 CPU および制御部 ■ ハーバード ←→ プリンストン バスコンバータ CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ フェースを実現します。 CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 , 外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構 造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス アクセス順位が常に最適化されたものになります。 ■ 命令概要 FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算 とビット操作およびダイレクトアドレッシング命令をサポートしています。各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効率を持ちます。 命令セットは以下の機能グループに分けることができます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ● 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や , アドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令および 32 ビット÷ 32 ビットのステップ除算命令を持ちます。また , レジスタに即値をセットする即値転送命 令や , レジスタ間転送命令も備えています。 算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行 います。 ● ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺リソース (I/O) への読出しと書込みにも使用されます。 ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ ジスタ間接のメモリアドレッシングも可能です。 ● 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと 持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ いては「3.8 分岐命令」を参照してください。 33 第 3 章 CPU および制御部 ● 論理演算とビット操作 論理演算命令は汎用レジスタ間 , または汎用レジスタとメモリ ( および I/O) 間で AND, OR, EOR の論理演算を行うことが可能です。またビット操作命令はメモリ ( および I/O) の内容を直接操作することができます。メモリアドレッシングは一般的なレジスタ間接 です。 ● ダイレクトアドレッシング ダイレクトアドレッシング命令は I/O と汎用レジスタ間 , または I/O とメモリ間のアク セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも 可能です。 ● その他 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 <注意事項> CPU の処理能力はフラッシュメモリウェイトレジスタ(FLWC)の設定にも影響を受け ます。必ずレジスタの設定を最適な値にしてご利用ください。 「28.2 フラッシュメモリの レジスタ」もご参照ください。 34 第 3 章 CPU および制御部 3.4 プログラミング・モデル 基本プログラミングモデルと各レジスタについて説明します。 ■ 基本プログラミングモデル 図 3.4-1 基本プログラミングモデル 32 ビット [ 初期値 ] R0 XXXX XXXXH R1 汎用レジスタ R12 R13 AC R14 FP XXXX XXXXH R15 SP 0000 0000H プログラムカウンタ PC プログラムステータス PS ILM SCR CCR テーブルベースレジスタ TBR リターンポインタ RP システムスタックポインタ SSP ユーザスタックポインタ USP 乗除算結果レジスタ MDH MDL 35 第 3 章 CPU および制御部 3.4.1 レジスタ 各レジスタについて説明します。 ■ 汎用レジスタ 図 3.4-2 汎用レジスタ 32 ビット [ 初期値 ] XXXX XXXXH ...... ...... R12 R13 R14 R15 ............... R0 R1 AC FP SP XXXX XXXXH 0000 0000H レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およびメ モリアクセスのポインタとして使用されます。 16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために 一部の命令が強化されています。 R13:仮想アキュムレータ (AC) R14:フレームポインタ (FP) R15:スタックポインタ (SP) リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , "00000000H" (SSP の値 ) とな ります。 ■ PS (Program Status) プログラムステータスを保持するレジスタで , ILM, SCR と CCR の 3 つのパートに分か れています。 図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。 書込みは無効です。 bit 31 20 16 ILM 36 10 SCR 87 0 CCR 第 3 章 CPU および制御部 ■ CCR (Condition Code Register) 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 演算結果が負の値であったことを示します。 リセットによる初期状態は不定です。 37 第 3 章 CPU および制御部 [bit2] Z:ゼロフラグ 演算結果が "0" であったかどうかを示します。 値 内容 0 演算結果が "0" 以外の値であったことを示します。 1 演算結果が "0" であったことを示します。 リセットによる初期状態は不定です。 [bit1] V:オーバフローフラグ 演算に用いたオペランドを "2" の補数で表現される整数であるとみなし , 演算の結 果 , オーバフローが生じたかどうかを示します。 値 内容 0 演算の結果 , オーバフローは生じていないことを示します。 1 演算の結果 , オーバフローが生じたことを示します。 リセットによる初期状態は不定です。 [bit0] C:キャリフラグ 演算により , 最上位ビットからのキャリ , またはボローが発生したかどうかを示し ます。 値 内容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 リセットによる初期状態は不定です。 38 第 3 章 CPU および制御部 ■ SCR (System Condition code Register) bit 10 9 8 [ 初期値 ] D1 D0 T XX0B [bit10, bit9] D1, D0:ステップ除算用フラグ ステップ除算実行時の中間データを保持します。 除算処理の実行途中に , 変更してはいけません。 ステップ除算実行途中にほかの処理を行う場合は , PS レジスタの値を退避・復帰す ることによりステップ除算の再開が保証されます。 リセットによる初期状態は不定です。 DIV0S 命令の実行により被除数と除数を参照して設定されます。 DIV0U 命令の実行により , 強制的にクリアされます。 [bit8] T:ステップトレーストラップフラグ ステップトレーストラップを有効にするかどうかを指定するフラグです。 値 内容 0 ステップトレーストラップ無効 1 ステップトレーストラップ有効 このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となりま す。 リセットにより "0" に初期化されます。 ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用 時 , ユーザプログラム中に使用することはできません。 39 第 3 章 CPU および制御部 ■ 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) に初期化されます。 ■ PS レジスタに関する注意事項 一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ 使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり する場合があります。いずれの場合も , EIT から復帰後以降に正しく再処理を行うよう に設計されていますので , EIT 前後の動作は仕様どおりの処理を行います。 • DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込みを受け付けた場合 , (b) ステッ プ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブレーク した場合 , 以下のような動作を行う場合があります。 (1) D0, D1 フラグが先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み・NMI またはエミュレータ ) を実行します。 (3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に 更新されます。 • ユーザ割込み要因が発生している状態で割込みを許可するために OR CCR, ST ILM, MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。 (1) PS レジスタが先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み ) を実行します。 (3) EITから復帰後, 上記命令が実行され, PSレジスタが(1)と同じ値に更新されます。 40 第 3 章 CPU および制御部 ■ PC (Program Counter) bit 31 0 [ 初期値 ] XXXXXXXXH PC [bit31 ∼ bit0] プログラムカウンタで実行している命令のアドレスを示しています。 命令の実行を伴う PC の更新時に bit0 は "0" に設定されます。bit0 が "1" になる可能 性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし , そ の場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があります。 リセットによる初期値は不定です。 ■ TBR (Table Base Register) bit 31 0 [ 初期値 ] 000FFC00H TBR テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。 リセットによる初期値は , "000FFC00H" です。 ■ RP (Return Pointer) bit 31 0 [ 初期値 ] XXXXXXXXH RP リターンポインタで , サブルーチンから復帰するアドレスを保持します。 CALL 命令実行時 , PC の値がこの RP に転送されます。 RET 命令実行時 , RP の内容が PC に転送されます。 リセットによる初期値は不定です。 ■ SSP (System Stack Pointer) bit 31 SSP 0 [ 初期値 ] 00000000H SSP は , システムスタックポインタです。 S フラグが "0" のとき , R15 として機能します。SSP を明示的に指定することも可能で す。また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタと しても使用されます。 リセットによる初期値は "00000000H" です。 41 第 3 章 CPU および制御部 ■ USP (User Stack Pointer) bit 31 0 [ 初期値 ] XXXXXXXXH USP USP は , ユーザスタックポインタです。 S フラグが "1" のとき , R15 として機能します。 USP を明示的に指定することも可能です。 リセットによる初期値は不定です。 RETI 命令で使用することはできません。 ■ 乗除算レジスタ (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 …… 商 42 第 3 章 CPU および制御部 3.5 データ構造 FR ファミリのデータ配置には , 次の 2 つがあります。 • ビットオーダリング • バイトオーダリング ■ ビットオーダリング FR ファミリでは , ビットオーダリングとしてリトルエンディアンを採用しています。 図 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 MSB 5 6 3 4 1 2 0 LSB ■ バイトオーダリング FR ファミリでは , バイトオーダリングとしてビッグエンディアンを採用しています。 図 3.5-2 バイトオーダリングのビット構成 メモリ bit 7 n 番地 MSB LSB bit31 23 15 7 0 10101010B 11001100B 11111111B 00010001B 0 10101010B (n + 1) 番地 11001100B (n + 2) 番地 11111111B (n + 3) 番地 00010001B 43 第 3 章 CPU および制御部 3.6 ワードアライメント 命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデー タ幅で異なります。 ■ プログラムアクセス 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 アドレス端子 00002224H 下位2ビット強制マスク 44 第 3 章 CPU および制御部 3.7 メモリマップ MB91245/S シリーズのメモリマップについて説明します。 ■ メモリマップ 図 3.7-1 にメモリマップを示します。 図 3.7-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を書き換えることにより任意のアドレ スに配置可能ですが , リセットによる初期化によって , このアドレスに配置されます。 45 第 3 章 CPU および制御部 3.8 分岐命令 FR ファミリでは , 分岐命令によって遅延スロット付きの動作と遅延スロットなしの 動作を指定します。 ■ 遅延スロット付き動作 ● 命令 以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。 JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D label9 BNO:D label9 BEQ:D BNE:D BC:D label9 BNC:D label9 BN:D label9 BP:D label9 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 label9 label9 ● 動作説明 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延 スロット」とよびます ) に置かれた命令を実行した後に分岐します。 分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル となります。その代わり , 遅延スロットに有効な命令を入れることができないときは , NOP 命令を置かなくてはなりません。 [例] ; 命令の並び ADD R1, R2 ; BRA:D LABEL ; 分岐命令 MOV R2, R3 ; 遅延スロット……分岐の前に実行される … LABEL: ST R3,@R4 ; 分岐先 条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置 かれた命令は実行されます。 遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の 更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで 記述された順番で実行されます。 以下に , 具体的な説明をします。 • JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は, 遅延スロットの中の命令が Riを更 新しても影響を受けません。 [例] LDI:32 #Label, JMP:D @R0 LDI:8 #0, R0 ; Label に分岐 R0 ; 分岐先アドレスには影響を与えない。 … • RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を 受けません。 46 第 3 章 CPU および制御部 [例] ; これより前に設定された RP の示すアドレスへ分岐 RET:D MOV R8, RP ; リターン動作には影響を与えない。 … • Bcc:D rel 命令が参照するフラグも遅延スロットの命令の影響を受けません。 [例] R0 ; フラグ変化 ADD #1, BC:D Overflow ; 上記の命令の実行結果により分岐 AND CCR#0 ; このフラグ更新は上記分岐命令では参照しない。 … • CALL:D 命令の遅延スロット中の命令で RP を参照すると , CALL:D 命令により更新 された内容が読み出されます。 [例] ; RP を更新して分岐 CALL:D Label MOV RP, R0 ; 上記 CALL:D の実行結果の RP を転送 … ● 制限事項 1. 遅延スロットにおける命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 • 1 サイクル命令 • 分岐命令ではないこと • 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」, 「a」, 「b」, 「c」 または「d」と記載された命令です。 2. ステップトレーストラップ 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト ラップは発生しません。 3. 割込み・NMI 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理 しません。 4. 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと き , 未定義命令は NOP 命令として動作します。 47 第 3 章 CPU および制御部 ■ 遅延スロットなし動作 ● 命令 以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN BP BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS BHI label9 label9 label9 label9 ● 動作説明 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が分 岐前に実行されることはありません。 [例] ; 命令の並び ADD R1, R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2, R3 ; 実行されない … LABEL: ST R3, @R4 ; 分岐先 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。 遅延スロットに適当な命令を入れることができないために NOP を明記した遅延スロッ ト付き分岐命令に比べ , 命令コード効率を上げることができます。 遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を 両立させることが可能となります。 48 第 3 章 CPU および制御部 3.9 EIT ( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生により , そのプログラムの実行を中断 してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), トラップ (Trap) の総称です。 ■ EIT ( 例外 , 割込み , トラップ ) 例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令か ら再実行します。 割込みとは実行中のコンテキストとは無関係に発生する事象です。イベント要因は , ハードウェアです。 トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か ら再実行します。 ■ EIT ( 例外・割込み・トラップ ) の特長 • 割込みに多重割込みをサポート • 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 ) • トラップ命令 (INT) • エミュレータ起動用 EIT( ハードウェア / ソフトウェア ) ■ EIT 要因 EIT 要因として , 次のものがあります。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) • NMI • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ ■ EIT からの復帰 EIT からの復帰には , RETI 命令を使用します。 49 第 3 章 CPU および制御部 3.9.1 割込みレベル 割込みレベルは 0 ∼ 31 まであり , 5 ビットで管理されます。 ■ EIT の割込みレベル 各レベルの割当ては以下のとおりです。 表 3.9-1 割込みレベル レベル 2 進数 10 進数 00000B 0 割込み要因 注意事項 ( システム予約 ) … … … 00011B 3 ( システム予約 ) 00100B 4 INTE 命令 ステップトレーストラップ 00101B 5 ( システム予約 ) … … … 01110B 14 ( システム予約 ) 01111B 15 NMI( ユーザ用 ) 10000B 16 割込み 10001B 17 割込み … … … 11110B 30 割込み 11111B 31 ─ ILM の元の値が 16 ∼ 31 のとき , この範囲の値をプログラムにより ILM に設定することはできません。 ─ ILM 設定時 , ユーザ割込み禁止 ─ ICR 設定時 , 割込み禁止 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップ , INT 命令 は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 ■ I フラグ 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 として設けら れています。 値 50 内容 0 割込み禁止 INT 命令実行時 "0" にクリアされます ( ただし , スタック退避させる値はクリアする前の値です )。 1 割込み許可 割込み要求のマスク処理は , ILM の保持する値により制御されます。 第 3 章 CPU および制御部 ■ 割込みレベルマスク (ILM) 割込みレベルマスク値を保持する PS レジスタ (bit20 ∼ bit16) です。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0 (00000B) が最強で , 31(11111B) が最弱です。 プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値 として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定 した値 +16) という値が転送されます。 元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。設定するには STILM 命令を使用します。 ■ 割込み・NMI に対するレベルマスク NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.9-1) が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したときは マスクされ , 要求は受理されません。 要因の持つ割込みレベル ≧ レベルマスク値 51 第 3 章 CPU および制御部 3.9.2 ICR (Interrupt Control Register) 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを 設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O 空間にマッピングされており , CPU からはバスを通してアクセスされます。 ■ 割込み制御レジスタ (ICR) 図 3.9-1 に , 割込み制御レジスタ (ICR) のビット構成を示します。 図 3.9-1 割込み制御レジスタ (ICR) のビット構成 bit 7 6 5 4 3 2 1 0 初期値 − − − ICR4 ICR3 ICR2 ICR1 ICR0 ---11111B − − − R R/W R/W R/W R/W [bit4] ICR4 常に "1" です。 [bit3 ∼ bit0] ICR3 ∼ ICR0 対応する割込み要因の割込みレベルの下位 4 ビットです。読出しおよび書込みが可 能です。 bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。 ■ 割込み制御レジスタ (ICR) のマッピング 表 3.9-2 割込み要因と割込み制御レジスタ , 割込みベクタ 対応する割込みベクタ 割込み要因 番号 割込み制御レジスタ 16 進 10 進 アドレス IRQ00 ICR00 00000440H 10H 16 TBR + 3BCH IRQ01 ICR01 00000441H 11H 17 TBR + 3B8H IRQ02 ICR02 00000442H 12H 18 TBR + 3B4H … … … … … … … … ICR45 … 3DH … IRQ45 … 0000046DH 61 … TBR + 308H IRQ46 ICR46 0000046EH 3EH 62 TBR + 304H IRQ47 ICR47 0000046FH 3FH 63 TBR + 300H TBR 初期値:"000F FC00H" ( 注意事項 ) 「第 5 章 割込みコントローラ」を参照してください。 52 第 3 章 CPU および制御部 3.9.3 SSP (System Stack Pointer) SSP が , EIT の受理および復帰動作時のデータ退避・復帰用スタックを示すポイン タとして使用されます。 ■ システムスタックポインタ (SSP) システムスタックポインタ (SSP) は , 32 ビットから構成されています。 図 3.9-2 に , システムスタックポインタ (SSP) のビット構成を示します。 図 3.9-2 システムスタックポインタ (SSP) のビット構成 bit 31 0 [ 初期値 ] 00000000H SSP EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加 算されます。 リセットによる初期値は "00000000H" です。 SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。 ■ 割込みスタック SSP により示される領域で , PC および PS の値が退避・復帰されます。割込み後は SSP の示すアドレスに PC, (SSP+4) のアドレスに PS が格納されています。 図 3.9-3 割込みスタック [例] [ 割込み前 ] SSP 80000000H [ 割込み後 ] SSP 7FFFFFF8H メモリ 80000000H 7FFFFFFCH 7FFFFFF8H 80000000H 7FFFFFFCH 7FFFFFF8H PS PC 53 第 3 章 CPU および制御部 3.9.4 TBR (Table Base Register) EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。 ■ テーブルベースレジスタ (TBR) テーブルベースレジスタ (TBR) は , 32 ビットから構成されています。 図 3.9-4 に , テーブルベースレジスタ (TBR) のビット構成を示します。 図 3.9-4 テーブルベースレジスタ (TBR) のビット構成 bit 31 0 [ 初期値 ] 000FFC00H TBR TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスがベクタアドレス となります。 リセットによる初期値は "000FFC00H" です。 ■ EIT ベクタテーブル TBR の示すアドレスから 1K バイトの領域が EIT 用ベクタ領域となっています。 1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR + (3FCH - 4 × vct) vctadr :ベクタアドレス vctofs :ベクタオフセット vct :ベクタ番号 加算結果の下位 2 ビットは常に "00B" として扱われます。 "000FFC00H" ∼ "000FFFFFH" の領域がリセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。なお , アーキテクチャ上のベク タテーブルを表 3.9-3 に示します。 54 第 3 章 CPU および制御部 表 3.9-3 ベクタテーブル (1 / 3) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 リセット *1 0 00 − 3FCH 000FFFFCH モードベクタ *1 1 01 − 3F8H 000FFFF8H システム予約 2 02 − 3F4H 000FFFF4H システム予約 3 03 − 3F0H 000FFFF0H システム予約 4 04 − 3ECH 000FFFECH システム予約 5 05 − 3E8H 000FFFE8H システム予約 6 06 − 3E4H 000FFFE4H コプロセッサ不在トラップ 7 07 − 3E0H 000FFFE0H コプロセッサエラートラップ 8 08 − 3DCH 000FFFDCH INTE 命令 9 09 − 3D8H 000FFFD8H システム予約 10 0A − 3D4H 000FFFD4H システム予約 11 0B − 3D0H 000FFFD0H ステップトレーストラップ 12 0C − 3CCH 000FFFCCH NMI 要求 (tool) 13 0D − 3C8H 000FFFC8H 未定義命令例外 14 0E − 3C4H 000FFFC4H NMI 要求 15 0F 15(FH) 固定 3C0H 000FFFC0H 外部割込み 0 16 10 ICR00 3BCH 000FFFBCH 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H 外部割込み 4 20 14 ICR04 3ACH 000FFFACH 外部割込み 5 21 15 ICR05 3A8H 000FFFA8H 外部割込み 6 22 16 ICR06 3A4H 000FFFA4H 外部割込み 7 23 17 ICR07 3A0H 000FFFA0H リロードタイマ 0 24 18 ICR08 39CH 000FFF9CH リロードタイマ 1 25 19 ICR09 398H 000FFF98H リロードタイマ 2 26 1A ICR10 394H 000FFF94H UART0( 受信 ) 27 1B ICR11 390H 000FFF90H UART0( 送信 ) 28 1C ICR12 38CH 000FFF8CH マスク可能要因 *2 29 1D ICR13 388H 000FFF88H マスク可能要因 *2 30 1E ICR14 384H 000FFF84H マスク可能要因 *2 31 1F ICR15 380H 000FFF80H マスク可能要因 *2 32 20 ICR16 37CH 000FFF7CH マスク可能要因 *2 33 21 ICR17 378H 000FFF78H 55 第 3 章 CPU および制御部 表 3.9-3 ベクタテーブル (2 / 3) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 マスク可能要因 *2 34 22 ICR18 374H 000FFF74H マスク可能要因 *2 35 23 ICR19 370H 000FFF70H マスク可能要因 *2 36 24 ICR20 36CH 000FFF6CH マスク可能要因 *2 37 25 ICR21 368H 000FFF68H マスク可能要因 *2 38 26 ICR22 364H 000FFF64H マスク可能要因 *2 39 27 ICR23 360H 000FFF60H マスク可能要因 *2 40 28 ICR24 35CH 000FFF5CH マスク可能要因 *2 41 29 ICR25 358H 000FFF58H マスク可能要因 *2 42 2A ICR26 354H 000FFF54H マスク可能要因 *2 43 2B ICR27 350H 000FFF50H マスク可能要因 *2 44 2C ICR28 34CH 000FFF4CH マスク可能要因 *2 45 2D ICR29 348H 000FFF48H マスク可能要因 *2 46 2E ICR30 344H 000FFF44H タイムベースタイマオーバフロー 47 2F ICR31 340H 000FFF40H マスク可能要因 *2 48 30 ICR32 33CH 000FFF3CH マスク可能要因 *2 49 31 ICR33 338H 000FFF38H マスク可能要因 *2 50 32 ICR34 334H 000FFF34H マスク可能要因 *2 51 33 ICR35 330H 000FFF30H マスク可能要因 *2 52 34 ICR36 32CH 000FFF2CH マスク可能要因 *2 53 35 ICR37 328H 000FFF28H マスク可能要因 *2 54 36 ICR38 324H 000FFF24H マスク可能要因 *2 55 37 ICR39 320H 000FFF20H マスク可能要因 *2 56 38 ICR40 31CH 000FFF1CH マスク可能要因 *2 57 39 ICR41 318H 000FFF18H マスク可能要因 *2 58 3A ICR42 314H 000FFF14H マスク可能要因 *2 59 3B ICR43 310H 000FFF10H マスク可能要因 *2 60 3C ICR44 30CH 000FFF0CH マスク可能要因 *2 61 3D ICR45 308H 000FFF08H マスク可能要因 *2 62 3E ICR46 304H 000FFF04H 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H システム予約 (REALOS にて使用 ) 64 40 − 2FCH 000FFEFCH システム予約 (REALOS にて使用 ) 65 41 − 2F8H 000FFEF8H システム予約 66 42 − 2F4H 000FFEF4H システム予約 67 43 − 2F0H 000FFEF0H 56 第 3 章 CPU および制御部 表 3.9-3 ベクタテーブル (3 / 3) 割込み番号 10 進 16 進 システム予約 68 44 − 2ECH 000FFEECH システム予約 69 45 − 2E8H 000FFEE8H システム予約 70 46 − 2E4H 000FFEE4H システム予約 71 47 − 2E0H 000FFEE0H システム予約 72 48 − 2DCH 000FFEDCH システム予約 73 49 − 2D8H 000FFED8H システム予約 74 4A − 2D4H 000FFED4H システム予約 75 4B − 2D0H 000FFED0H システム予約 76 4C − 2CCH 000FFECCH システム予約 77 4D − 2C8H 000FFEC8H システム予約 78 4E − 2C4H 000FFEC4H システム予約 79 4F − 2C0H 000FFEC0H 80 50 − 2BCH 000FFEBCH − ∼ ∼ TBR デフォルト のアドレス ∼ 割込みレベル オフセット ∼ 割込み要因 255 FF − 000H 000FFC00H INT 命令で使用 *1 TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス "000FFFFCH", "000FFFF8H" が使用されます。 *2 マスク可能要因は各品種により定義されます。 本品種におけるベクタテーブルは「付録 B 割込みベクタ」を参照してください。 57 第 3 章 CPU および制御部 3.9.5 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を受け付け , EIT シーケンスを実行した後 , 次の EIT 要因の検出を行うという動作を繰り返します。 EIT 要因検出の際に , 受け付けられる EIT 要因がなくなると , CPU は , 最後に受け付 けた EIT 要因に対してハンドラの命令を実行します。 そのため , 複数の EIT 要因が同時に発生した場合 , 各要因のハンドラの実行順序は , 次の 2 つの要素により決定されます。 • EIT 要因を受け付ける優先順位 • EIT 要因を受け付ける場合にほかの要因がどのようにマスクされるか ■ EIT 要因受理の優先度 EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの 要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で す。必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。 EIT 要因受理の優先度は , 表 3.9-4 のようになっています。 表 3.9-4 EIT 要因の受理の優先度とほかの要因へのマスク EIT を受け付け る優先順位 58 EIT 要因 ほかの要因に対するマスク 1 リセット ほかの要因は破棄されます。 2 未定義命令例外 取り消されます。 3 INTE 命令 ILM = 4 ほかの要因は破棄されます。 4 INT 命令 I フラグ= 0 5 コプロセッサ不在トラップ コプロセッサエラートラップ 6 ユーザ割込み ILM =受け付けた要因のレベル 7 NMI( ユーザ用 ) ILM = 15 8 NMI( エミュレータ用 ) ILM = 4 9 ステップトレーストラップ ILM = 4 ― 第 3 章 CPU および制御部 EIT 要因を受け付けた後のほかの要因に対するマスクの処理を考慮すると , 同時に発生 した EIT 要因の各ハンドラの実行順序は , 表 3.9-5 のようになります。 表 3.9-5 EIT ハンドラの実行順序 EIT 要因 ハンドラの実行順序 1 リセット * 2 未定義命令例外 3 INTE 命令 * 4 ステップトレーストラップ 5 NMI ( ユーザ用 ) 6 INT 命令 7 ユーザ割込み 8 コプロセッサ不在トラップ , コプロセッサエラートラップ *: ほかの要因はクリアされます。 [例] 図 3.9-5 多重 EIT 処理 メインルーチン NMI のハンドラ INT 命令の ハンドラ 優先度 ( 高 ) NMI 発生 ( 低 ) INT 命令実行 ①最初に実行 ②次に実行 59 第 3 章 CPU および制御部 3.9.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 (6) "0" → S フラグ (7) (TBR +受理した割込み要求のベクタオフセット ) → 60 PC 第 3 章 CPU および制御部 割込みシーケンス終了後 , ハンドラの先頭の命令を実行する前に新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス に遷移します。 ● INT 命令の動作 INT #u8 u8 で示されるベクタの割込みハンドラへ分岐します。 [ 動作 ] (1) SSP − 4 → SSP (2) PS → (SSP) (3) SSP − 4 → SSP (4) PC + 2 → (SSP) (5) "0" → I フラグ (6) "0" → S フラグ (7) (TBR + 3FCH − 4 × u8) → PC ● INTE 命令の動作 INTE ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。 [ 動作 ] (1) SSP − 4 → SSP (2) PS → (SSP) (3) SSP − 4 → SSP (4) PC + 2 → (SSP) (5) "00100B" → ILM (6) "0" → S フラグ (7) (TBR + 3D8H) → PC INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用 しないでください。また , ステップ実行中は INTE による EIT の発生はありません。 ● ステップトレーストラップの動作 PS 中の SCR における T フラグをセットしてステップトレースの機能を許可にしてお くと , 一命令実行ごとにトラップが発生し , ブレークします。 [ ステップトレーストラップ検出の条件 ] (1) T フラグ = 1 (2) 遅延分岐命令ではないとき (3) INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき (4) 以上の条件が成立すると , 命令動作の切れ目でブレークします。 61 第 3 章 CPU および制御部 [ 動作 ] (1) SSP − 4 → SSP (2) PS → (SSP) (3) SSP − 4 → SSP (4) 次の命令のアドレス → (SSP) (5) "00100B" → ILM (6) "0" → S フラグ (7) (TBR + 3CCH) → PC T フラグをセットしてステップトレーストラップを許可にしたとき , ユーザ用の NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなくなり ます。 FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。 ● 未定義命令例外の動作 命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま す。 [ 未定義命令例外の検出条件 ] ・命令のデコード時に , 未定義命令が検出される。 ・遅延スロット外に置かれている ( 遅延分岐命令の直後ではないこと )。 以上の条件が成立すると , 未定義命令例外が発生し , ブレークします。 [ 動作 ] (1) SSP − 4 → SSP (2) PS → (SSP) (3) SSP − 4 → SSP (4) PC → (SSP) (5) "0" → S フラグ (6) (TBR + 3C4H) → PC PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 ● コプロセッサ不在トラップ 実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ サ不在トラップが発生します。 [ 動作 ] 62 (1) SSP − 4 → SSP (2) PS → (SSP) (3) SSP − 4 → SSP (4) 次の命令のアドレス → (SSP) (5) "0" → S フラグ (6) (TBR + 3E0H) → PC 第 3 章 CPU および制御部 ● コプロセッサエラートラップ コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを 操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生しま す。 [ 動作 ] (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" の状態で実行する必要があります。 ■ 遅延スロットの注意事項 分岐命令の遅延スロットには , EIT に関して制約があります。 「第 3 章 CPU および制御部」の「3.8 分岐命令」を参照してください。 63 第 3 章 CPU および制御部 3.10 動作モード MB91245/S シリーズの動作モードには , バスモードとアクセスモードがあります。 ■ 動作モード 動作モードには , バスモードとアクセスモードがあります。 バスモード アクセスモード シングルチップ 内 ROM 外バス 外 ROM 外バス 16 ビットバス幅 8 ビットバス幅 ● バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し , モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定しま す。 ● アクセスモード アクセスモードとは , 外部データバス幅を制御するモードを示し , モードデータ内の WTH1, WTH0 ビットと ACR0 ∼ ACR3(Area Configuration Register) 内の DBW1 ビット , DBW0 ビットで指定します。 ■ バスモード FR ファミリには , 次に示す 3 つのバスモードがあります。 詳細は 「3.2 メモリマップ」を参照してください。 ● バスモード 0 ( シングルチップモード ) 内部 I/O, 内蔵 RAM, 内蔵 ROM に対して有効です。それ以外の領域へのアクセスは無 効となります。外部端子は周辺リソース , または汎用ポートとして機能します。バス端 子としては機能しません。 ● バスモード 1 ( 内 ROM 外バスモード ) 内部 I/O, 内蔵 RAM, 内蔵 ROM に対して有効です。外部アクセスが可能な領域へのア クセスは外部空間へのアクセスとなります。外部端子の一部はバス端子として機能し ます。 ● バスモード 2 ( 外 ROM 外バスモード ) 内蔵 I/O, 内蔵 RAM が有効で , 内蔵 ROM へのアクセスを禁止にして , 外部アクセスが 可能な領域と内蔵 ROM 空間へのアクセスが外部空間へのアクセスとなるモードです。 外部端子の一部はバス端子として機能します。 64 第 3 章 CPU および制御部 ■ モード設定 FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードデータで動作モードの設定を 行います。 ● モード端子 MD2, MD1, MD0 の 3 端子でモードベクタ , リセットベクタフェッチに関する指定を行 います。 表に示した設定以外は禁止です。 モード端子 MD2, MD1, MD0 リセットベクタ アクセス領域 モード名 000B 内 ROM モードベクタ 内部 001B 外 ROM モードベクタ 外部 ● モードデータ モードベクタフェッチ (「3.11 リセット ( デバイスの初期化 )」の「3.11.4 リセット動 作」を参照 ) によって内部のモードレジスタ (MODR) に書き込むデータをモードデー タとよびます。 モードレジスタに設定が行われた後 , 本レジスタの設定に従った動作モードで動作し ます。 モードデータは , すべてのリセット要因で設定されます。また , ユーザプログラムから は設定することはできません。 図 3.10-1 モードデータの詳細 bit 31 30 29 28 27 0 0 0 0 0 26 25 24 ROMA WTH1 WTH2 動作モード 設定ビット [bit31 ∼ bit27] 予約ビット 必ず "00000B" を設定してください。 "00000B" 以外の値を設定したときの動作は保証できません。 [bit26] ROMA : 内部 ROM イネーブルビット 内蔵 ROM 領域を有効にするかどうかを設定します。 ROMA 機能 0 外 ROM モード 内蔵 F-bus RAM は有効 , 内部 ROM 領域 (80000H ∼ 100000H) が外部領域になります。 1 内 ROM モード 内蔵 ROM 領域が有効になります。 備考 65 第 3 章 CPU および制御部 [bit25, bit24] WTH1, WTH0( バス幅指定ビット ) 外バスモード時のバス幅指定の設定を行います。 外バスモード時 , この値が ACR0(CS0 領域 ) の DBW1, DBW0 ビットに設定されます。 WTH1 WTH0 0 0 8 ビットバス幅 0 1 16 ビットバス幅 1 0 1 1 機能 − シングルチップモード <注意事項> モードベクタに設定するモードデータは , "000FFFF8H" にバイトデータとして配置する 必要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採用 していますので , 図のように , bit31 ∼ bit24 の最上位バイトに配置してください。 図 3.10-2 モードデータの注意事項 bit 31 23 16 15 8 7 0 誤 000FFFF8H XXXXXXXX XXXXXXXX XXXXXXXX モードデータ 正 000FFFF8H モードデータ XXXXXXXX XXXXXXXX XXXXXXXX 000FFFFCH 66 24 リセットベクタ 第 3 章 CPU および制御部 3.11 リセット ( デバイスの初期化 ) リセットが発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解除待 ち状態となります。リセットの解除後は , リセットベクタで示されたアドレスから 処理を開始します。 リセットには次の 4 つの要因があります。 • ウォッチドッグタイマのオーバフロー • CPU 動作検出機能カウンタのオーバフロー • 外部リセット端子からのリセット要求 • ソフトウェアリセット要求 ■ 概要 リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作 を停止し , 状態を初期化します。この状態をリセット状態とよびます。 リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア 動作を開始します。このリセット状態から動作開始に至る一連の動作をリセットシー ケンスとよびます。 ■ リセット要因 表 3.11-1 にリセットの要因を示します。 表 3.11-1 リセット要因 発振安定待ち リセット 発生要因 内部発生 リセット タイミング レベル メイン STOP 状態 左記以外 発振停止 外部端子 INITX 端子への "L" 入力 同期 INIT あり あり なし ソフトウェア リセット スタンバイ制御レジスタ (STCR) の SRST ビット に "0" 書込み 同期 INIT あり - なし 同期 INIT あり - なし 同期 INIT あり - なし ウォッチドッグ ウォッチドッグタイマ タイマ オーバフロー CPU 動作検出 CPU 動作検出 カウンタのオーバフロー リセット要因発生時にはマシンクロックとして発振クロックの 2 分周クロックが使用 されます。 ● 外部リセット 外部リセットは , 外部リセット (INITX) 端子に "L" レベルを入力することでリセットを 発生します。 なお , 電源投入時は INITX 端子の入力レベルを "L" とし , 設定初期化リセット (INITX) をかけてください。また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するた 67 第 3 章 CPU および制御部 め , INITX 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してく ださい。 ● ソフトウェアリセット ソフトウェアリセットはスタンバイ制御レジスタ (STCR) の SRST ビットに "0" を書き 込むことによって , 内部リセットを発生します。 ● ウォッチドッグリセット ウォッチドッグリセットは , ウォッチドッグタイマの起動後 , 定められた時間内に ウォッチドッグリセット発生遅延レジスタ (WPR) へ連続した "A5H"," 5AH" の書込みが ない場合に , ウォッチドッグタイマのオーバフローにより発生するリセットです。 ● CPU 動作検出リセット CPU 動作検出リセットは , 電源投入後 , 定められた時間内に低電圧 /CPU 動作検出リ セット制御レジスタ (LVRC) の CL ビットに "0" の書込みがないとき , CPU 動作検出カ ウンタのオーバフローによってリセットを発生します。 <注意事項> 電源投入時 , 電圧低下発生時以外のリセット要因では , 書込み動作中 ( 転送系命令実行中 ) にリセット要因が発生した場合 , 命令の終了後にリセット解除待ち状態となります。その ため , 書込み中にリセットが入力されても正常に書込みを終了します。ただし , ロードマ ルチ (LDM) 系 , ストアマルチ (STM) 系命令は , 指定したレジスタ分の転送が終了する前に リセットを受け付けますので , すべてのデータが転送されることを保証できません。 68 第 3 章 CPU および制御部 3.11.1 リセット要因と発振安定待ち時間 4 種類のリセット要因があり , リセット時の発振安定待ち時間がリセット要因によっ て異なります。 ■ リセット要因と発振安定待ち時間 表 3.11-2 にリセット要因と発振安定待ち時間を示します。 表 3.11-2 リセット要因と発振安定待ち時間 発振安定待ち時間 リセット 発生要因 メイン発振停止 STOP 状態 左記以外 外部端子 INITX 端子への "L" 入力 OS ビットの設定値 OS ビットの設定値 なし ソフトウェア リセット スタンバイ制御レジスタ (STCR) の SRST ビットへ の "0" 書込み OS ビットの設定値 - なし ウォッチドッグ ウォッチドッグタイマ タイマ オーバフロー OS ビットの設定値 - なし CPU 動作検出カウンタ オーバフロー OS ビットの設定値 - なし CPU 動作検出 発振安定待ち時間の確保は , スタンバイ制御レジスタ (STCR) 内の OS (Oscillation Stabilization time select) ビットの設定により行います。 表 3.11-3 に OS1, OS0 の設定と発振安定待ち時間について示します。 表 3.11-3 スタンバイ制御レジスタ (STCR) の設定による発振安定待ち時間 メイン発振 4MHz 時 サブ発振 32.768kHz の場合 (φ/2 の周期 ) 1μs 61μs φ × 211 1.024ms 62.5ms 0 φ × 216 32.768ms 2s 1 φ × 214 8.192ms 0.5s OS1 OS0 0 0 φ × 21 ( 初期値 ) 0 1 1 1 発振安定待ち時間 φ:内部ベースクロックの周期で , メイン発振の 2 倍の周期 <注意事項> セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで一般 的に数 ms から十数 ms の発振安定待ち時間を必要とします。そのため , 使用する振動子 に合わせた値を設定してください。 S サフィックスがある製品はサブクロックをサポートしません。 69 第 3 章 CPU および制御部 ■ 電源投入時の発振安定待ち時間について 電源投入時は INITX 端子の入力レベルを "L" としてください。電源投入時の "L" レベ ル入力期間は(振動子の発振時間)+(10 ×ベースクロック)+12μs(内部降圧回路安 定待ち時間)以上を確保してください。以上の設定により , 内部回路に対しては , 自動 的にデバイスにパワーオン安定待ち時間 (217 ×ベースクロック ) が確保されます。そ の後は , OS ビットに設定された値が , 発振安定待ち時間としてデバイスに確保されま す。 図 3.11-1 外部リセットと内部動作の関係図(パワーオン待ち時間> INITX "L" 期間(推奨)) Vcc CLK INITX a b CPU動作 a :振動子の発振時間 b :10xベースクロック+12μs パワーオン安定 待ち時間 発振安定 待ち時間 図 3.11-2 外部リセットと内部動作の関係図(パワーオン待ち時間< INITX "L" 期間(推奨)) Vcc CLK INITX a b CPU動作 a :振動子の発振時間 b :10xベースクロック+12μs パワーオン安定 待ち時間 発振安定 待ち時間 ■ ストップモード中の INITX 端子による復帰について ストップモード中の INITX 端子による復帰は , INITX 端子への "L" レベル入力時間を 12μs 以上確保してください ( リセット解除後 , OS ビットの設定時間を待って復帰しま す )。 70 第 3 章 CPU および制御部 3.11.2 リセットレベル 本品種のリセット動作は 2 種類のレベルに分けられ , それぞれ発生要因および初期 化の内容が異なります。以下 , 各リセットレベルについて説明します。 ■ 設定初期化リセット (INIT) すべての設定を初期化する最強レベルのリセットです。 外部端子入力 , ウォッチドッグリセット , ソフトウェアリセット , CPU 動作検出による リセットがこの設定初期化リセットに相当します。設定初期化リセット (INIT) 発生時 には , 同時に動作初期化リセット (RST) も発生します。 設定初期化リセット (INIT) により初期化される内容は次のとおりです。 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) • クロック生成 / 制御に関する設定 - クロックソース選択 (CLKS: メインクロック 2 分周 ) - クロック分周設定 ( 周辺 : × 4, CPU: × 1, 外部バス : × 1) - ウォッチドッグタイマ周期 (WT1, WT0: 216 ×ベースクロック周期 ) *1 - 発振安定待ち時間 (OS1, OS0: 21 ×ベースクロック周期 ) *2 - ストップ時発振抑止 (OSCD1: ストップ中メインクロック発振を停止 ) - タイムベースタイマ割込み (TBIE: 禁止 ) - メイン PLL 逓倍率 (PLL1S: × 1) - PLL 動作許可 (PLL1E:PLL 停止 ) • 外部バスの CS0 領域に関するすべての設定 - 領域選択レジスタ (ASR0: 開始アドレス "0") - 領域サイズ (ASZ:512K バイト ) - データバス幅 ( モードデータの値が反映されます ) - 書込みイネーブル (WEN: ライトプロテクト ) - アクセスタイプ (TYP: 通常アクセス , WR0X, WR1X 端子をライトストローブとし て使用 , WRX は "H" 固定 , RDY 端子による WAIT 挿入無効 ) • ストップ時端子状態制御ビットは , HIZ=1:Hi-Z 状態です。 • 動作初期化リセット (RST) で初期化されるすべての設定 *1: 設定初期化リセット (INIT) 発生により , ウォッチドッグタイマは停止し , 再度プロ グラム動作により起動するまでは機能しません。 *2: パワーオン以外では初期化されません。 71 第 3 章 CPU および制御部 ■ 動作初期化リセット (RST) プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ びます。 設定初期化リセット(INIT)発生時には, 同時に動作初期化リセット(RST)も発生します。 動作初期化リセット (RST) により初期化される内容は以下のとおりです。 • プログラム動作 • CPU および内部バス • クロック生成 / 制御に関する設定 - ウォッチドッグタイマ周期 (WT1, WT0: 216 ×ベースクロック周期 ) - タイムベースタイマ割込み (TBIE: 禁止 ) • 周辺回路のレジスタ設定値 • I/O ポート設定 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) 72 第 3 章 CPU および制御部 3.11.3 外部リセット端子 外部リセット端子 ( INITX 端子 ) は , リセット入力専用端子で , "L" レベルの入力に よって内部リセットを発生します。マシンクロックに同期してリセットされますが , 外部端子は非同期でリセットされます。 ■ 外部リセット端子のブロックダイヤグラム 図 3.11-3 内部リセットのブロックダイヤグラム マシンクロック (PLL逓倍回路, HCLKの2分周) INITX P-ch 端子 P-ch 同期化回路 N-ch クロック同期 内部リセット信号 入力バッファ 書込み動作中のリセットによるメモリ破壊を防ぐため, INITX端子入力による内部回路 の初期化動作をメモリが破壊されないサイクルで行います。また , 内部回路の初期化に はクロックが必要です。外部クロックで動作させる場合には , リセット入力時にクロッ ク入力が必要です。 ■ 外部端子のリセットタイミング 外部リセット INITX 端子入力に対して , 各外部端子は非同期にリセットされます。 73 第 3 章 CPU および制御部 3.11.4 リセット動作 リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読 出し先を選択し , モードフェッチを行います。このモードフェッチで , CPU の動作 モードとリセット動作後の実行開始アドレスが決定されます。電源投入後 , ストッ プからのリセットによる復帰では , 発振安定待ち時間が経過してからモードフェッ チを行います。 ■ リセット動作の概要 図 3.11-4 に , リセット動作フローを示します。 図 3.11-4 リセット動作フロー 電源投入時の外部リセット 外部リセット ソフトウェアリセット ウォッチドッグタイマリセット CPU動作検出リセット リセット中 停止 メイン発振 発振安定待ちリセット状態 モードデータ取込み モードフェッチ (リセット動作) 通常動作 (RUN状態) 74 リセットベクタ取込み リセットベクタが示すアドレスから 命令コードを読み出し, 命令を実行 動作 第 3 章 CPU および制御部 ■ モード端子 モード端子 (MD0 ∼ MD2) は , リセットベクタとモードデータの取込み方法を指定しま す。リセットベクタとモードデータの取込みはリセットシーケンスで行います。モー ド端子の詳細は「■モード設定」を参照してください。 ■ モードフェッチ リセットが解除されると , CPU はリセットベクタとモードデータを CPU コア内の該当 レジスタ内に取り込みます。リセットベクタとモードデータはそれぞれ , "FFFFCH", "FFFF8H" に割り当てられています。CPU は , リセット解除後 , 直ちにこれらのアドレ スを内部バスに出力し , リセットベクタとモードデータを取り込みます。このモード フェッチで , CPU はリセットベクタが指すアドレスから処理を開始します。 75 第 3 章 CPU および制御部 3.11.5 リセット要因ビット リセット発生要因は , ウォッチドッグタイマ制御レジスタ (RSRR) を読み出して識 別することができます。 ■ リセット 図 3.11-5 に示すように , それぞれのリセット要因に対応したフリップフロップがあり ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (RSRR) を読み出すと得ら れます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッチ ドッグタイマ制御レジスタ (RSRR) の読出し値をソフトウェアで処理したうえで , 適切 なプログラムへ分岐するようにしてください。 図 3.11-5 リセット要因ビットブロックダイヤグラム 定期的なクリアなし CPU動作 検出リセット 要求検出回路 INITX端子 定期的なクリアなし RSTビットセット 外部リセット 要求検出回路 ウォッチドッグ タイマ制御 レジスタ (RSRR) システムベース クロック D Q CL F/F CK D Q CL F/F CK ウォッチドッグ タイマリセット 発生検出回路 D Q CL F/F CK RSTビット 書込み検出 回路 Q PR パワーオン リセット F/F D CK ウォッチドッグタイマ 制御レジスタ (RSRR)読出し 内部データバス 76 第 3 章 CPU および制御部 ■ リセット要因ビットとリセット要因の対応 ウォッチドッグタイマ制御レジスタ (RSRR) のリセット要因ビットの構成を , 図 3.11-6 に , リセット要因ビットの内容とリセット要因の対応を表 3.11-4 に示します。詳細は , 「3.12 クロック生成制御」を参照してください。 図 3.11-6 リセット要因ビットの構成 ( スタンバイ制御レジスタ ) アドレス bit15 bit14 0000480H PON − R R bit13 bit12 bit11 bit10 bit9 bit8 初期値 WDOG ERST SRST − WT1 WT0 10000000B R R R R R R R :リードオンリ − :未定義ビット 表 3.11-4 リセット要因ビットの内容とリセット要因の対応 リセット要因 PON WDOG ERST SRST パワーオンリセットによるリセット要因 1 *1 *1 *1 ウォッチドッグタイマオーバフローによ るリセット要求の発生 *1 1 *1 *1 INITX 端子からの外部リセット要求 , CPU 動作検出リセット要求の発生 *2 *1 *1 1 *1 ソフトウェアリセット要求の発生 *1 *1 *1 1 *1 :前の状態を保持 *2 :CPU 動作検出リセット要求の発生の場合は , CPU 動作検出リセット制御レジスタ (LVRC) の CPUF ビットが "1" になります。 77 第 3 章 CPU および制御部 ■ リセット要因ビットの注意事項 ● 複数のリセット要因が発生した場合 リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (RSRR) の対 応するそれぞれのリセット要因ビットが "1" にセットされます。例えば , INITX 端子か らの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生し た場合 , ERST ビットと WDOG ビットの両方が "1" になります。 ● リセット要因ビットのクリア リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (RSRR) を読み出したとき のみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは , そ の後 , ほかの要因でリセットが発生してもクリアされません ("1" のままです )。 78 第 3 章 CPU および制御部 3.11.6 発振安定待ち要因 発振安定待ち要因について説明します。 ■ リセット (INIT) の解除時 各種要因によるリセットが解除された直後に発振安定待ち状態へ遷移します。 パワーオン時の初期時は発振安定待ち時間は最小値に設定されるため, INITX端子の入 力幅にて安定待ち時間を確保してください。また , メインランおよびサブラン中にメイ ン発振を停止しない場合のウォッチドッグリセットでは , 発振安定待ち時間を確保し ません。ウォッチドッグリセットで発振安定待ち時間を確保するのは , 「■ サブ RUN でメイン発振停止中のウォッチドッグリセット発生時」の場合のみです。 ■ ストップモードからの復帰時 ストップモードが解除された直後に発振安定待ち状態へ遷移します。ただし , リセット (INIT) 要求により解除された場合は , リセット (INIT) 状態に遷移し , リセット (INIT) が 解除された後 , 発振安定待ち状態へ遷移します。 発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷 移します。 有効な外部割込み要求入力および , メイン発振安定待ちタイマ割込みの発生による復 帰時 → 通常動作状態へ遷移します。 ■ PLL 選択時の異常状態からの復帰時 PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常 * が発生 した場合 , PLL ロック待ち時間の確保のために , 発振安定待ち時間が必要です。ソフト ウェアでの対応をお願いします。 発振安定待ち時間経過後は , 通常動作状態へ遷移します。 *: PLL 使用中の逓倍率変更 , PLL 動作許可ビット化け発生など ■ サブ RUN でメイン発振停止中のウォッチドッグリセット発生時 サブクロックをソースクロックとして動作しているときで, OSCCR(メイン発振制御レ ジスタ ) の bit0 : OSCDS1 ビットによってメイン発振を停止中にウォッチドッグリセッ トが発生した場合 , リセット (INIT) が解除された直後に発振安定待ち状態に遷移しま す。発振安定待ち時間 * 経過後は , 通常の動作状態へ遷移します。 *: 発振安定待ち時間の設定は , 初期化されず , 設定していた値で行われます。 S サフィックスがある製品はサブクロックをサポートしません。 79 第 3 章 CPU および制御部 3.12 クロック生成制御 クロックの生成とその制御について説明します。 ■ クロック生成制御 内部動作クロックは以下のようにして生成されます。 • ベースクロックの生成 ソースクロックを 2 分周または PLL 発振させ , 基本クロックを生成します。 • 各内部クロックの生成 ベースクロックを分周し , 各部に供給する動作クロックを生成します。 以下 , 各クロック生成とその制御について説明します。 各レジスタ , フラグの詳細な説明は ,「3.12.6 クロック生成制御部のブロックダイヤグ ラム」および ,「3.12.7 クロック生成制御部のレジスタ詳細説明」を参照してください。 80 第 3 章 CPU および制御部 3.12.1 ソースクロックの選択 ソースクロックの選択について解説します。 ■ ソースクロックの選択 外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて 生成した原発振がソースクロックとなります。 外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。 外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2 種類を使用で き , 動作中に任意に切り換えて使用することが可能です。 • メインクロック: X0/X1 端子入力から生成し , 高速クロックとして使用すること を想定したものです。 • サブクロック : X0A/X1A 端子入力から生成し低速クロックとして使用すること を想定したものです。 システムベースクロックは , 以下のソースクロックのうちから選択して生成します。 • メインクロックを 2 分周したもの • メインクロックを PLL で逓倍したもの • サブクロックそのもの ソースクロックの選択制御は , CLKR( クロックソース制御レジスタ ) の設定によって 行います。 <注意事項> S サフィックスがある製品はサブクロックをサポートしません。 81 第 3 章 CPU および制御部 3.12.2 PLL 制御 メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍 率設定を制御することが可能です。 各制御は , CLKR( クロックソース制御レジスタ ) の設定によって行います。 ここでは , 各制御内容について説明します。 ■ PLL 動作許可 メイン PLL 発振動作の許可 / 停止は , CLKR( クロックソース制御レジスタ ) の bit10 : PLL1EN ビットの設定によって行います。 ● PLL 動作制御 PLL1EN ビットは , 設定初期化リセット (INIT) 後は "0" に初期化され , メイン PLL の発 振動作は停止しています。停止中は , ソースクロックとしてメイン PLL 出力を選択す ることはできません。 プログラム動作を開始したら , まずクロックソースとして使用するメイン PLL の逓倍 率を設定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切 り換えてください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使 用することを推奨します。 ソースクロックとしてメイン PLL 出力を選択している間は , PLL は動作を停止させる ことはできません。レジスタへの書込みは無効となります。ストップモードに移行す る際などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分周したものに選択し直した後 , PLL を停止させてください。 なお , STCR( スタンバイ制御レジスタ ) の bit0 : OSCD1 ビットにより , ストップモード 中の発振が停止するように設定してある場合 , PLL はストップモード遷移時に自動的 に停止しますので , 動作停止を改めて設定する必要はありません。その後 , ストップ モードから復帰する際 , PLL は自動的に発振動作を開始します。 82 第 3 章 CPU および制御部 ■ PLL 逓倍率 メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の bit14 ∼ bit12: PLL1S2 ∼ PLL1S0 ビットによって設定します。 ● PLL 逓倍率 設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。 PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ マ割込みを使用することを推奨します。 動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを PLL 以外に切り 換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後に ソースクロックを切り換えてください。 83 第 3 章 CPU および制御部 3.12.3 発振安定待ち・PLL ロック待ち時間 ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち 時間が必要です ( 「3.11.6 発振安定待ち要因」を参照 )。 PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待 ち時間が必要です。 ■ 発振安定待ち・メイン PLL ロック待ち時間 以下 , 各種ケースにおける待ち時間について解説します。 ● 電源投入後の待ち時間 電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となりま す。発振安定待ち時間の設定は , 電源投入時に最大値に初期化されるため , メイン クロック用発振回路の発振安定待ち時間が確保されます。 この状態においては , PLL は動作許可されていないため , ロック待ち時間はここで は考慮する必要はありません。 ● 設定初期化後の待ち時間 設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここ では , 設定された発振安定待ち時間を内部的に発生します。 この状態においては , PLL は動作許可されていないため , ロック待ち時間はここで は考慮する必要がありません。 ● PLL 動作許可後の待ち時間 プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経 過しないとその PLL 出力を使用してはいけません。 ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ 割込みを使用することを推奨します。 ● PLL 逓倍率変更後の待ち時間 プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待 ち時間が経過しないとその PLL 出力を使用してはいけません。 ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ 割込みを使用することを推奨します。 ● ストップモード復帰後の待ち時間 プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラム にて設定された時間の発振安定待ち時間を内部的に発生します。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停 止させる設定の場合, その発振回路の発振安定待ち時間と, 使用しているPLLのロッ ク待ち時間のうち , 長い方の時間が必要となります。ストップモードに遷移させる 前に , あらかじめ長い方の発振安定待ち時間を設定しておいてください。 84 第 3 章 CPU および制御部 3.12.4 クロック分配 ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを それぞれ作成します。 内部動作クロックは , 全部で 3 種類あり , それぞれが独立に分周比を設定することが できます。 各内部動作クロックについて説明します。 ■ CPU クロック (CLKB) CPU と内部メモリおよび内部バスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • CPU • 内蔵 RAM, 内蔵 ROM • ビットサーチモジュール • I-bus, D-bus, F-bus, X-bus • DMA コントローラ • DSU (On chip Debug Support Unit) 動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで ください。 ■ 周辺クロック (CLKP) 周辺リソースおよびペリフェラルバスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • ペリフェラル ( 周辺 ) バス • クロック制御部 ( バスインタフェース部のみ ) • 割込みコントローラ • I/O ポート • 外部割込み入力 , UART, 16 ビットタイマなどの周辺リソース 動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで ください。 ■ 外部バスクロック (CLKT) 外部拡張バスインタフェースに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • 外部拡張バスインタフェース • 外部クロック出力 動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで ください。 85 第 3 章 CPU および制御部 3.12.5 クロック分周 各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定できま す。この機能により , 各回路に最適な動作周波数を設定します。 ■ クロック分周 分周比は , DIVR0( 基本クロック分周設定レジスタ 0) および DIVR1( 基本クロック分周 設定レジスタ 1) にて設定します。各レジスタには各クロックに対応する 4 ビットずつ の設定ビットがあり , ( レジスタ設定値+ 1) がそのクロックのベースクロックに対する 分周比となります。分周比設定が奇数であっても , 常にデューティ比は 50% となりま す。 設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効 となります。 分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の 設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。 初期状態からソースクロックを高速なものに変更する前に必ず分周比の設定を行って ください。 ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周 波数を超える設定をした場合 , 動作は保証されません ( ソースクロック選択の変更設定 との順序を間違えないように特に注意してください )。 86 第 3 章 CPU および制御部 3.12.6 クロック生成制御部のブロックダイヤグラム クロック生成制御部のブロックダイヤグラムを示します。 ■ クロック生成制御部のブロックダイヤグラム 図 3.12-1 にクロック生成制御部のブロックダイヤグラムを示します。図中のレジスタ の詳細は , 「3.12.7 クロック生成制御部のレジスタ詳細説明」を参照してください。 図 3.12-1 クロック生成制御部のブロックダイヤグラム R-bus [クロック生成部] メイン発振 安定待ちタイマ (サブ選択時用) X0A* X1A* CLKR レジスタ 発振回路 PLL メイン 発振 周辺クロック 外部バスクロック セレクタ X0 X1 外部バス クロック分周 CPUクロック 停 止 制 御 セレクタ 周辺クロック分周 セレクタ CPUクロック分周 セレ クタ DIVR0,DIVR1 レジスタ 1/2 発振回路 サブ 発振 [ストップ・スリープ制御部] 内部割込み ストップ状態 STGRレジスタ 内部リセット 状態遷移 制御回路 SLEEP状態 リセット発生 FF リセット発生 FF 内部リセット(RST) 内部リセット(INIT) [ リセット要因回路] INITX端子 RSRRレジスタ [ ウォッチドッグ制御部] WPRレジスタ CTBRレジスタ ウォッチドッグ FF カウンタクロック タイムベース カウンタ セレクタ TBCRレジスタ 割込み許可 オーバフロー 検出FF タイムベースタ イマ割込み要求 * : Sサフィックスがない製品のみ <注意事項> S サフィックスがある製品はサブクロックをサポートしません。 87 第 3 章 CPU および制御部 3.12.7 クロック生成制御部のレジスタ詳細説明 クロック生成制御部で使用するレジスタの機能について説明します。 ■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ 図 3.12-2 リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) bit アドレス : 00000480H 電源投入時 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 8 PON − WDOG ERST SRST − WT1 WT0 R 1 * × R 0 * × R 0 * × R 0 × * R 0 × * R 0 * × R 0 0 0 R 0 0 0 R : リードオンリ * : 要因により変化します。 × : 初期化されません。 直前に発生したリセットの要因の保持 , ウォッチドッグタイマの周期設定および起動 制御を行うレジスタです。 本レジスタを読み出すと , 保持されたリセット要因は読出し後にクリアされます。読み 出すまでの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複 数のフラグがセットされることになります。 本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降はリセット (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。 [bit15] PON(Power On Reset occurred) パワーオンによるリセット (INIT) の発生の有無を示します。 0 パワーオンによる INIT は発生していません。 1 パワーオンによる INIT が発生しました。 • 電源投入時 , または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [bit14] (reserved bit) このビットは予約ビットです。 88 第 3 章 CPU および制御部 [bit13] WDOG (WatchDOG reset occurred) ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。 0 ウォッチドッグタイマによる INIT は発生していません。 1 ウォッチドッグタイマによる INIT が発生しました。 • 電源投入時または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [bit12] ERST (External ReSeT occurred) INITX 端子入力 , CPU 動作検出によるリセット (INIT) の発生の有無を示します。 0 INITX 端子入力 , CPU 動作検出による INIT は発生していません。 1 INITX 端子入力 , CPU 動作検出による INIT が発生しました。 • 電源投入時または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [bit11] SRST (Software ReSeT occured) STCRレジスタのSRSTビット書込み(ソフトウェアリセット)によるリセット(INIT) の発生の有無を示します。 0 ソフトウェアリセットによる INIT は発生していません。 1 ソフトウェアリセットによる INIT が発生しました。 • 電源投入時または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [bit10] (reserved bit) このビットは予約ビットです。 89 第 3 章 CPU および制御部 [bit9, bit8] WT1, WT0 (Watchdog interval Time select) ウォッチドッグタイマの周期を設定します。 本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の うちから選択します。 ウォッチドッグリセットの発生を WPR への最終 5AH 書込みから 抑止するために最低限必要な ウォッチドッグリセットが WPR への書込み間隔 発生するまでの時間 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 回のみ有効で , それ以降の書込みは 無効です。 90 第 3 章 CPU および制御部 ■ STCR : スタンバイ制御レジスタ 図 3.12-3 スタンバイ制御レジスタ (STCR) のビット構成 bit 7 6 アドレス : 00000481H STOP SLEEP 5 4 3 2 HIZ SRST OS1 OS0 1 0 OSCD2 OSCD1 R/W R/W R/W R/W R/W R/W R/W R/W 電源投入時 0 0 1 1 0 0 1 1 初期値 (INIT) 0 0 1 1 × × 1 1 初期値 (RST) 0 0 × 1 × × × × R/W: リード / ライト可能 × : 初期化されません。 デバイスの動作モードを制御するレジスタです。 ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を 行います。 <注意事項> スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタの bit8 : SYNCS bit にて設定します ) を使用したうえで , 以下のシーケンス を必ず使用してください。 (LDI #value_of_standby, R0) ; value_of_standby は , STCR へのライトデータ (LDI #_STCR, R12) ; _STCR は , STCR のアドレス (481H) STB R0, @R12 ; スタンバイ制御レジスタ (STCR) への書込み LDUB @R12, R0 ; 同期スタンバイのための STCR リード LDUB @R12, R0 ; もう一度 STCR をダミーリード ; タイミング調整用の NOP × 5 NOP NOP NOP NOP NOP 以下に , スタンバイ制御レジスタ (STCR) の各ビットの機能を説明します。 [bit7] STOP (STOP mode) ストップモードへの遷移を指示します。bit6 : SLEEP ビットと本ビット両方に "1" を 書き込んだ場合は , 本ビットの方が優先となりストップモードへ遷移します。 0 ストップモードへの遷移は行いません ( 初期値 )。 1 ストップモードへ遷移します。 • リセット (RST) およびストップ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 91 第 3 章 CPU および制御部 [bit6] SLEEP (SLEEP mode) スリープモードへの遷移を指示します。bit7 : STOP ビットと本ビット両方に "1" を 書き込んだ場合は , bit7:STOP ビットの方が優先となりストップモードへ遷移しま す。 0 スリープモードへの遷移は行いません ( 初期値 )。 1 スリープモードへ遷移します。 • リセット (RST) およびスリープ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit5] HIZ (HIZ mode) ストップモード時の端子状態を制御します。 0 ストップモード遷移前の端子状態を維持します。 1 ストップモード中は端子出力をハイインピーダンス状態にします。 ( 初期値 ) • リセット (INIT) により "1" に初期化されます。 • 読出しおよび書込みが可能です。 [bit4] SRST (Software ReSeT) ソフトウェアリセット (INIT) の発行を指示します。 0 ソフトウェアリセットを発行します。 1 ソフトウェアリセットの発行を行いません ( 初期値 )。 • リセット (RST) により "1" に初期化されます。 • 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。 92 第 3 章 CPU および制御部 [bit3, bit2] OS1, OS0 (Oscillation Stabilization time select) リセット(INIT)後およびストップモード復帰後などにおける発振安定待ち時間を設 定します。 本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選 択します。 OS1 OS0 0 0 φ × 21 ( 初期値 ) 1.0 μs 0 1 φ × 211 1.0 ms 1 0 φ × 216 32.7 ms 1 1 φ × 214 8.0 ms 発振安定待ち時間 メイン発振 4MHz の場合 (φ は内部ベースクロックの周期で , メイン発振の 2 倍の周期 ) • INITX 端子入力によるリセット (INIT) により "00B" に初期化されます。 • 読出しおよび書込みが可能です。 [bit1] OSCD2 (Oscillation Disable mode for XIN2) サブ発振入力 (X0A, X1A) におけるストップモード時の発振停止を制御します。 0 ストップモード中もサブ発振は停止しません。 1 ストップモード中はサブ発振を停止します ( 初期値 )。 • リセット (INIT) により "1" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> S サフィックスがある製品では本ビットへの書込みは無効です。読出しは常に "1" となり ます。 [bit0] OSCD1 (Oscillation Disable mode for XIN1) メイン発振入力 (X0, X1) におけるストップモード時の発振停止を制御します。 0 ストップモード中もメイン発振は停止しません。 1 ストップモード中はメイン発振を停止します ( 初期値 )。 • リセット (INIT) により "1" に初期化されます。 • 読出しおよび書込みが可能です。 93 第 3 章 CPU および制御部 ■ TBCR : タイムベースカウンタ制御レジスタ 図 3.12-4 タイムベースタイマ制御レジスタ (TBCR) のビット構成 bit 15 14 TBIF TBIE R/W R/W R/W R/W 初期値 (INIT) 0 0 × 初期値 (RST) 0 0 × アドレス : 00000482H 13 12 11 10 9 8 - - - R/W R/W R/W R/W × × × 1 1 × × × × × TBC2 TBC1 TBC0 R/W: リード / ライト可能 × : 初期化されません。 タイムベースタイマ割込みなどを制御するレジスタです。 タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , リセッ ト動作のオプション機能の設定を行います。 以下に , タイムベースカウンタ制御レジスタ (TBCR) の各ビットの機能を説明します。 [bit15] TBIF (TimeBasetimer Interrupt Flag) タイムベースタイマ割込みフラグです。 タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11 : TBC2 ∼ TBC0 ビットにて設定 ) の経過を示します。 bit14 : TBIE ビットにより割込み発生が許可 (TBIE = 1) されているときに本ビットが "1" になると , タイムベースタイマ割込み要求が発生します。 クリア要因 命令による "0" の書込み セット要因 設定されたインターバル時間の経過 ( タイムベースカウンタ出力の立下りエッジ検出 ) • リセット (RST) により "0" に初期化されます。 • 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書込み してもビット値は変化しません。また , リードモディファイライト (RMW) 系命 令での読出し値は , 常に "1" となります。 [bit14] TBIE (TimeBasetimer Interrupt Enable) タイムベースタイマ割込み要求出力許可ビットです。 タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま す。本ビットが "1" のときに , bit15:TBIF ビットが "1" になるとタイムベースタイマ 割込み要求が発生します。 0 タイムベースタイマ割込み要求出力禁止 ( 初期値 ) 1 タイムベースタイマ割込み要求出力許可 • リセット (RST) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 94 第 3 章 CPU および制御部 [bit13 ∼ bit11] TBC2 ∼ TBC0 (TimeBasetimer Counting time select) タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定 します。 本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選 択します。 TBC2 TBC1 TBC0 タイマインターバル時間 原発振 4MHz かつ PLL が 8 逓倍の場合 0 0 0 φ × 211 64 μs 0 0 1 φ × 212 128 μs 0 1 0 φ × 213 256 μs 0 1 1 φ × 222 131 ms 1 0 0 φ × 223 262 ms 1 0 1 φ × 224 524 ms 1 1 0 φ × 225 1048 ms 1 1 1 φ × 226 2097 ms φ : 内部ベースクロックの周期で , メイン PLL の出力周期 • 初期値は不定です。割込みを許可する前に必ず値を設定してください。 • 読出しおよび書込みが可能です。 [bit10] (reserved bit) 予約ビットです。 読出し値は不定で , 書込みは動作に影響を与えません。 [bit9, bit8] (reserved bit) 予約ビットです。 読出し値は常に "1" で , 書込みは動作に影響を与えません。 95 第 3 章 CPU および制御部 ■ CTBR : タイムベースカウンタクリアレジスタ bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 W W W W W W W W 初期値 (INIT) × × × × × × × × 初期値 (RST) × × × × × × × × アドレス : 00000483H W : ライトオンリ × : 初期化されません。 タイムベースカウンタを初期化するためのレジスタです。 本レジスタに連続して"A5H", "5AH"を書き込むと, "5AH"書込みの直後にタイムベー スカウンタを全ビット "0" にクリアします。"5AH" 書込みと "5AH" 書込みの間の時 間に制限はありませんが , "A5H" 書込みの後に "5AH" 以外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH" を書き込んでもクリア動作は行いません。 本レジスタの読出し値は不定です。 <注意事項> 本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち時間の間隔 , ウォッチドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。 96 第 3 章 CPU および制御部 ■ CLKR : クロックソース制御レジスタ bit 15 アドレス : 00000484H − 14 13 12 11 10 9 8 PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 (INIT) 0 0 0 0 0 0 0 0 初期値 (RST) × × × × × × × × R/W: リード / ライト可能 × : 初期化されません。 内部ベースクロックとなるクロックソースの選択やメイン PLL の制御を行うレジスタ です。 本レジスタにてクロックソースを選択します。また , メイン PLL の動作許可および逓 倍率の選択を制御します。 [bit15] (reserved bit) 予約ビットです。本品種では , 本ビットへの書込みは常に "0 " を書き込んでくださ い。 [bit14 ∼ bit12] PLL1S2 ∼ PLL1S0 (PLL1 ratio Select 2 ∼ 0) メイン PLL の逓倍率選択ビットです。 メイン PLL の逓倍率を , 下記の組合せのうちから選択します。 本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し ます。 動作可能な上限周波数を超える設定をしないでください。 PLL1S2 PLL1S1 PLL1S0 メイン PLL 逓倍率 メイン発振 4MHz の場合 0 0 0 × 1 ( 等倍 ) 本品種では未サポート 0 0 1 × 2 (2 逓倍 ) 本品種では未サポート 0 1 0 × 3 (3 逓倍 ) 本品種では未サポート 0 1 1 × 4 (4 逓倍 ) 本品種では未サポート 1 0 0 × 5 (5 逓倍 ) 本品種では未サポート 1 0 1 × 6 (6 逓倍 ) 本品種では未サポート 1 1 0 × 7 (7 逓倍 ) 本品種では未サポート 1 1 1 × 8 (8 逓倍 ) φ = 31.25ns ( 32MHz 時 ) φ : 内部ベースクロックの周期 • リセット (INIT) により "000B" に初期化されます。 • 読出しおよび書込みが可能です。 97 第 3 章 CPU および制御部 [bit11] PLL2EN (PLL2 ENable) サブクロックの選択許可ビットです。 本ビットは , クロックソースとしてサブクロックを選択している間は書換えを禁止 します。また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択す ることを禁止します (bit9, bit8: CLKS1, CLKS0 ビットの設定を参照 )。 STCR の bit1 : OSCD2 が "1" であると , ストップモード中は本ビットが "1" であって もサブクロックは停止します。ストップモードよりの復帰後は動作許可に戻りま す。 0 0 サブクロック選択禁止 [ 初期値 ] 1 1 サブクロック動作許可 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込み が可能です。 <注意事項> S サフィックスがある製品では本ビットへの書込みは無効です。読出しは常に "0" となり ます。 [bit10] PLL1EN (PLL1 ENable) メイン PLL の動作許可ビットです。 本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し ます。また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択するこ とを禁止します (bit9, bit8:CLKS1, CLKS0 ビットの設定を参照 )。 スタンバイ制御レジスタ (STCR) の bit0:OSCD1 が "1" であると , ストップモード中 は本ビットが "1" であってもメイン PLL は停止します。ストップモードよりの復帰 後は動作許可に戻ります。 0 メイン PLL 停止 ( 初期値 ) 1 メイン PLL 動作許可 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 98 第 3 章 CPU および制御部 [bit9, bit8] CLKS1, CLKS0 (CLocK source Select) 使用するクロックソースを設定します。 本ビットに書き込む値により , クロックソースを下表に示す 3 種類のうちから選択 します。 CLKS1 CLKS0 0 0 X0/X1 よりの原発振入力の 2 分周 ( 初期値 ) 0 1 X0/X1 よりの原発振入力の 2 分周 1 0 メイン PLL 1 1 サブクロック クロックソース設定 • リセット (INIT) により "00B" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> bit9:CLKS1 が "1" の間は bit8 : CLKS0 の値を変更することができません。 S サフィックスがある製品では bit8 : CLKS0 への書込みは無効です。読出しは常に "0" と なります。 [ 変更不可能な組合せ ] [ 変更可能な組合せ ] "00B" → "11B" "00B" → "01B" または "10B" "01B" → "10B" "01B" → "11B" または "00B" "10B" → "01B" または "11B" "10B" → "00B" "11B" → "00B" または "10B" "11B" → "01B" ストップモードへ移行する際は , 必ずクロックソースを原発振入力の 2 分周に設定 してください。 99 第 3 章 CPU および制御部 ■ WPR : ウォッチドッグリセット発生延期レジスタ 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 初期値 (INIT) × × × × × × × × 初期値 (RST) × × × × × × × × アドレス : 00000485H W : ライトオンリ × : 初期化されません。 ウォッチドッグリセットの発生を延期するためのレジスタです。 本レジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にウォッチドッ グタイマの検出用 FF をクリアし , ウォッチドッグリセットの発生を延期します。"A5H" 書込みと "5AH" 書込みの間の時間は制限がありませんが , "A5H" 書込みの後に "5AH" 以 外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH" を書き込んでもクリア 動作は行いません。また , 下表の期間内に両データの書込みを終えないとウォッチドッ グリセットを発生します。 本レジスタの読出し値は不定です。 RSRR レジスタの WT1(bit9) , WT0(bit8) の状態により下表のように変化します。 RSRR のウォッチドッグリセットの 発生を抑止するために最低限必要な WPR への書込み間隔 WPR への最終 5AH 書込みから 0 φ × 216 ( 初期値 ) φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 WT1 WT0 0 ウォッチドッグリセットが 発生するまでの時間 φ : システムベースクロックの周期 , WT1, WT0 は RSRR の bit9, bit8 でウォッチドッグタ イマ周期設定 ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを 行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ れます。 100 第 3 章 CPU および制御部 ■ DIVR0: 基本クロック分周設定レジスタ 0 bit 15 14 13 12 11 10 9 8 アドレス : 00000486H B3 B2 B1 B0 P3 P2 P1 P0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 (INIT) 0 0 0 0 0 0 1 1 初期値 (RST) × × × × × × × × R/W: リード / ライト可能 × : 初期化されません。 各内部クロックのベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , CPU および内部バスのクロック (CLKB) と周辺回路およびペリフェ ラルバスクロック (CLKP) に対する分周比の設定を行います。 <注意事項> ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周波数 を超える設定をした場合, 動作は保証されませんので十分に注意してください。また, ソー スクロック選択の変更設定順序を間違えないようにしてください。 本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周比 が有効となります。 [bit15 ∼ bit12] B3 ∼ B0 (clkB divide select 3 ∼ 0) CPU クロック (CLKB) クロック分周比設定ビットです。 CPUと内部メモリおよび内部バスのクロック(CLKB)のクロック分周比を設定します。 本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに 対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数を超える周波数になる分周比は設定しないでください。 B2 B1 B0 0 0 0 0 φ 0 0 0 1 φ × 2 (2 分周 ) 16 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8 MHz 0 1 0 0 φ × 5 (5 分周 ) 6.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57MHz 0 1 1 1 φ × 8 (8 分周 ) 4 MHz … … … … クロック周波数:原発振 4MHz およびメイン PLL8 逓倍の場合 B3 1 1 1 1 クロック分周比 32 MHz ( 初期値 ) … … φ × 16 (16 分周 ) 2 MHz 101 第 3 章 CPU および制御部 φ : 内部ベースクロックの周期 • リセット (INIT) により "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 [bit11 ∼ bit8] P3 ∼ P0 (clkP divide select 3 ∼ 0) 周辺クロック (CLKP) のクロック分周比設定ビットです。 周辺回路およびペリフェラルバスクロック (CLKP) に対するクロック分周比を設定 します。 本ビットに書き込む値により , 周辺回路およびペリフェラルバスクロックのベース クロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択し ます。 動作可能な上限周波数を超える周波数になる分周比は設定しないでください。 P1 P0 0 0 0 0 φ 32 MHz 0 0 0 1 φ × 2 (2 分周 ) 16 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8 MHz( 初期値 ) 0 1 0 0 φ × 5 (5 分周 ) 6.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57MHz 0 1 1 1 φ × 8 (8 分周 ) 4 MHz … … … 1 1 1 1 クロック分周比 … φ × 16 (16 分周 ) φ : システムベースクロックの周期 • リセット (INIT) により "0011B" に初期化されます。 • 読出しおよび書込みが可能です。 102 … P2 … クロック周波数:原発振 4MHz およびメイン PLL8 逓倍の場合 P3 2 MHz 第 3 章 CPU および制御部 ■ DIVR1: 基本クロック分周設定レジスタ 1 bit 7 6 5 4 3 2 1 0 T3 T2 T1 T0 − − − − R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 × × × × × × × × アドレス : 00000487H 初期値 (INIT) 初期値 (RST) R/W: リード / ライト可能 × : 初期化されません。 各内部クロックのベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , 外部バスインタフェースクロック (CLKT) の分周比の設定を行います。 <注意事項> ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周波数 を超える設定をした場合, 動作は保証されませんので十分に注意してください。また, ソー スクロック選択の変更設定順序を間違えないようにしてください。 本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周比 が有効となります。 [bit7 ∼ bit4] T3 ∼ T0 (clkT divide select 3 ∼ 0) 外部バスクロック (CLKT) のクロック分周比設定ビットです。 外部バスインタフェースクロック (CLKT) のクロック分周比を設定します。 本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースクロッ クに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 16MHz ですので , 16MHz を超える周波数になる分周比は 設定しないでください。 T2 T1 T0 0 0 0 0 φ 0 0 0 1 φ × 2 (2 分周 ) 16 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8 MHz 0 1 0 0 φ × 5 (5 分周 ) 6.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57MHz 0 1 1 1 φ × 8 (8 分周 ) 4 MHz … … … … クロック周波数: 原発振 4MHz および メイン PLL8 逓倍の場合 T3 1 1 1 1 クロック分周比 32 MHz ( 初期値 ) … … φ × 16 (16 分周 ) 2 MHz φ : システムベースクロックの周期 103 第 3 章 CPU および制御部 • リセット (INIT) により "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 外部バスインタフェースを使用しない場合は , "1111B" (16 分周 ) に設定することを 推奨します。 [bit3 ∼ bit0] (reserved bit) • リセット (INIT) により "0000B" に初期化されます。 • 本ビットへの書込みは , 常に "0000B" を書き込んでください。 ■ OSCCR: 発振制御レジスタ bit 7 6 5 4 3 2 1 0 アドレス : 0000048AH − − − RTCSRC − − − OSCDS1 − R/W R/W R/W − − − R/W 初期値 (INIT) × 0 0 0 × × × 0 初期値 (RST) × × × × × × × 0 R/W: リード / ライト可能 × : 初期化されません。 サブクロック動作時のメイン発振を制御するレジスタです。 [bit7, bit6, bit5] :(reserved bit) 予約ビットです。 本品種では, 本ビットへの書込みは常に"0"を書き込んでください。 [bit4] RTCSRC: RTC Source Clock Select RTC へのソースクロックを選択するビットです。 0 メインクロック (4MHz) ( 初期値 ) 1 サブクロック (32kHz) <注意事項> • 一度 "1" を書き込むと INIT によるリセットでしか "0" に初期化されません。 • RTC 動作を期待する場合 , RTC に供給するクロックが停止していないことが条件とな ります。 • S サフィックスがある製品では "1" を設定しないでください。 [bit3, bit2, bit1] :(reserved bit) 予約ビットです。 本品種では, 本ビットへの書込みは常に"0"を書き込んでください。 104 第 3 章 CPU および制御部 [bit0] OSCDS1 (OSCilattion Disable on Subclock for XIN1) サブクロック選択中のメイン発振停止ビットです。 0 サブクロック実行中に , メイン発振を停止しません ( 初期値 )。 1 サブクロック実行中に , メイン発振を停止します。 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 クロックソースとしてサブクロック選択中に本ビットに "1" を書き込むと , メイン発振 を停止します。 本ビットは , メインクロックを選択中は "1" を書込むことはできません。 本ビットが "1" の間はメインクロックを選択することを禁止します。本ビットを "0" に してメイン発振の安定を待ってからメインクロックに切り換えてください。このとき , メイン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。また , 本 ビットによってメイン発振を停止させた状態で , INIT によってクロックソースがメイ ンクロックに切り換わった場合もメイン発振安定待ち時間が必要になります。このと き , STCR ( スタンバイ制御レジスタ ) の bit3, bit2 : OS1, OS0 ビットの設定がメイン発 振安定待ち時間を満たさない場合 , 復帰後の動作が保証されません。 このような場合は , STCR:OS1, OS0 ビットはメイン発振安定待ち時間も満たした値を 設定してください。 INITX 端子による INIT 時は , メイン発振が安定するまで INITX 端子に "L" を入力し続 ける必要があります。 発振安定待ちについては , 「3.12.3 発振安定待ち・PLL ロック待ち時間」も参照して ください。 <注意事項> S サフィックスがある製品では本ビットへの書込みは動作に影響を与えません。 105 第 3 章 CPU および制御部 3.12.8 クロック制御部が持つ周辺回路 クロック制御部内の周辺回路機能について説明します。 ■ タイムベースカウンタ クロック制御部には, 26ビット長のタイムベースカウンタがあり, 内部ベースクロック として動作しています。 タイムベースカウンタは , 発振安定待ち時間の計測 (「3.11 リセット ( デバイスの初期 化 )」の「3.11.6 発振安定待ち要因」を参照 ) のほか , 以下の用途に使用されます。 • ウォッチドッグタイマ システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビット 出力を用いて計測します。 • タイムベースタイマ タイムベースカウンタ出力を用いて , インターバル割込みを発生します。 ● ウォッチドッグタイマ ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。 プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生 延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット (INIT) 要求を発生します。 • ウォッチドッグタイマの起動と周期設定 ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR( リセット要因レジス タ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。この とき , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビットによ り設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみ が有効となり , それ以降の書込みはすべて無視されます。 • ウォッチドッグリセットの発生延期 いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR( ウォッ チドッグリセット発生延期レジスタ ) に対して "A5H", "5AH" の順でデータを書き込 む必要があります。この操作により , ウォッチドッグリセット発生用フラグが初期 化されます。 • ウォッチドッグリセットの発生 ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出 時にフラグがセットされていると , ウォッチドッグリセットとして設定初期化リ セット (INIT) 要求を発生します。 • ウォッチドッグタイマの停止 いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す るまではウォッチドッグタイマを停止することができません。 動作初期化リセット (RST) が発生する以下の状態ではウォッチドッグタイマは停止 し , 再度プログラム動作にて起動するまでは機能しません。 - 動作初期化リセット (RST) 状態 106 第 3 章 CPU および制御部 - 設定初期化リセット (INIT) 状態 - 発振安定待ちリセット (RST) 状態 • ウォッチドッグタイマの一時停止 ( 自動発生延期 ) ウォッチドッグタイマは , CPU のプログラム動作が停止している場合には , いった んウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発 生を延期します。プログラム動作の停止とは具体的には以下の動作を示します。 - スリープ状態 - ストップ状態 - 発振安定待ち RUN 状態 - D-bus( データバス ) に対する DMA 転送中 - エミュレータデバッガ使用によるブレーク中 また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発 生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。 ● タイムベースタイマ タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生 用タイマです。 メイン PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最大で ベースクロック× 227 サイクルまでの , 比較的長時間の時間計測を行う用途に適してい ます。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出 すると , タイムベースタイマ割込み要求を発生します。 • タイムベースタイマの起動とインターバル設定 タイムベースタイマは , TBCR(タイムベースカウンタ制御レジスタ ) の bit13 ∼ bit11: TBC2 ∼ TBC0 ビットにてインターバル時間を設定します。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは 常に検出されているため , インターバル時間の設定後はまず bit15:TBIF ビットをク リアしてから , bit14 : TBIE ビットを "1" にして割込み要求出力を許可してください。 インターバル時間を変更する際は , あらかじめ bit14 : TBIE ビットを "0" にして割込 み要求出力を禁止しておいてください。 タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていま すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ イムベースカウンタをクリアしてください。クリアしないと , 割込み許可直後に割 込み要求が発生することがあります。 • プログラムによるタイムベースカウンタのクリア CTBR( タイムベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデータ を書き込むと , "5AH" 書込みの直後にタイムベースカウンタを全ビット "0" にクリ アします。"A5H" 書込みと "5AH" 書込み間の時間は制限がありませんが , "A5H" 書 込みの後に "5AH" 以外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH" を書き込んでもクリア動作は行いません。 このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ 107 第 3 章 CPU および制御部 セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期 されます。 • デバイス状態によるタイムベースカウンタのクリア タイムベースカウンタは , 以下のデバイス状態の遷移時に同時に全ビット "0" にク リアされます。 - ストップ状態 - 設定初期化リセット (INIT) 状態 特に , ストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウン タが使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生 することがあります。そのため , ストップモードを設定する前にはタイムベースタ イマ割込みを禁止し , タイムベースタイマを使用しないようにしてください。 それ以外の状態については, 動作初期化リセット(RST)が発生するため, タイムベー スタイマ割込みは自動的に禁止されます。 ● メイン発振安定待ちタイマ クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン トアップする 26 ビットのタイマです。 サブクロック動作中のメイン発振安定待ち時間の計測に使用します。 サブクロックで動作中 , OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 ビット にて , メ イン発振の制御を行えますが , メイン発振を停止させた後で再度発振開始させた際に , 本タイマを用いて発振安定待ち時間を計測します。 メインクロックを停止させたサブクロック動作状態からメインクロックに切り換える 際は , 下記の手順で行います。 • メイン発振安定待ちタイマをクリアします。 • OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 ビット を "0" にしてメイン発振を開始 します。 • メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。 • メインクロック安定後, CLKR(クロックソースレジスタ)のbit9, bit8: CLKS1, CLKS0 ビットにてサブクロックからメインクロックに切り換えます。 安定を待たずメインクロックに切り換えると , 不安定なクロックが供給され , その後の 動作は保証されませんので , 必ず安定を待った後にメインクロックに切り換えてくだ さい。 メイン発振安定待ちタイマの詳細については , 「第 11 章 メイン発振安定待ちタイマ」 を参照してください。 <注意事項> S サフィックスがある製品はサブクロックをサポートしません。 108 第 3 章 CPU および制御部 3.13 デバイス状態制御 MB91245/S シリーズの各種状態とその制御について説明します。 ■ デバイス状態と各遷移 図 3.13-1 に MB91245/S シリーズの状態遷移を示します。 図 3.13-1 MB91245/S シリーズの状態遷移 1 2 3 4 5 6 7 8 9 10 11 12 13 遷移要求の優先順位 INTX端子=0(INIT) INITX端子=1(INIT解除) 発振安定待ち終了 リセット(RST)解除 ソフトウェアリセット(RST) スリープ(命令書込み) ストップ(命令書込み) 割込み クロックを必要としない外部割込み メイン→サブ切換え(命令書込み) サブ→メイン切換え(命令書込み) ウォッチドッグリセット(INIT) サブスリープ(命令書込み) 最強 ↓ ↓ ↓ ↓ 最弱 パワーオン 1 設定初期化リセット(INIT) 発振安定待ち終了 動作初期化リセット(RST) 割込み要求 ストップ スリープ 設定初期化 (INIT) 2 メインクロックモード 1 メイン発振安定待ち リセット メインストップ 9 1 3 1 プログラムリセット (RST) 発振安定待ちRUN 3 7 1 6 メインスリープ 5 4 12 メインRUN 8 1 1 10 サブクロックモード サブスリープ 発振安定待ちRUN 12 サブRUN 13 3 1 1 11 8 1 7 5 1 4 プログラムリセット (RST) 1 9 サブストップ (時計状態*2) ( 注意事項 ) • メイン←→サブに切り換える場合は , RUN状態にて切換え後のクロックが安定供給されている状 態でクロックソースレジスタ (CLKR) の bit1:CLKS1, bit0:CLKS0 ビットを切り換えてください。 • 時計タイマ以外を停止 ( 時計状態 ) させるには , サブ RUN 状態にてスタンバイ制御レジスタ (STCR) bit1:OSCD2 を "0", bit0:OSCD1 を "1" に設定した状態でストップモードに移行してくだ さい ( 同時書込み可能 ) 。 • S サフィックスがある製品はサブクロックモードをサポートしません。 109 第 3 章 CPU および制御部 本品種のデバイスの動作状態には以下のものがあります。 • RUN 状態 ( 通常動作 ) • スリープ状態 • ストップ状態 • 発振安定待ち RUN 状態 • 発振安定待ちリセット (RST) 状態 • 動作初期化リセット (RST) 状態 • 設定初期化リセット (INIT) 状態 以下 , 各動作状態について説明します。 ● RUN 状態 ( 通常動作 ) プログラム実行状態です。 すべての内部クロックが供給され , すべての回路が動作可能な状態です。ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバスクロッ クのみ停止しています。 ● スリープ状態 プログラム停止状態です。プログラム動作により遷移します。 CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモリ および内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。 有効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移し ます。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移し ます。 ● ストップ状態 デバイス停止状態です。プログラム動作により遷移します。 すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路およびメイン PLL は設定により停止させることが可能です。また , 設定により外部端子を一律ハイ インピーダンスにすることが可能です ( 一部端子を除く )。 特定の ( クロックを必要としない ) 有効な割込み要求の発生や , 発振動作中のメイン発 振安定待ちタイマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移 します。 ● 発振安定待ち RUN 状態 デバイス停止状態です。ストップ状態よりの復帰後に遷移します。 クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていたメイン PLL は動作しています。 110 第 3 章 CPU および制御部 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移 します。 ● 発振安定待ちリセット (RST) 状態 デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復 帰後に遷移します。 クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていたメイン PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 内部回路に対し , 動作初期化リセット (RST) を出力します。 設定された発振安定待ち時間の経過により, 発振安定待ちリセット(RST)状態へ遷移し ます。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 ● 動作初期化リセット (RST) 状態 プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定 待ちリセット (RST) 状態の終了により遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は 一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて いたメイン PLL は動作しています。 内部回路に対し , 動作初期化リセット (RST) を出力します。 動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初 期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後 だった場合は , 設定初期化リセットシーケンスを実行します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 ● 設定初期化リセット (INIT) 状態 全設定初期化状態です。設定初期化リセット (INIT) 要求の受付けにより遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は すべて初期化されます。発振回路は動作しますが , メイン PLL は動作を停止します。 すべての内部クロックは , リセット要因の入力期間中は停止しますが , それ以外では動 作します。 内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力 します。 設定初期化リセット (INIT) 要求の消失により本状態は解除され , 発振安定待ちリセッ ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期 化リセットシーケンスを実行します。 111 第 3 章 CPU および制御部 ● 各状態遷移要求の優先順位 どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求 は特定の状態でしか発生しませんので , その状態でしか有効になりません。 [ 最強 ] 設定初期化リセット (INIT) 要求 ↓ 発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 ) ↓ 動作初期化リセット (RST) 要求 ↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 ) ↓ ストップモード要求 ( レジスタ書込み )(RUN 状態のみ発生 ) [ 最弱 ] スリープモード要求 ( レジスタ書込み )(RUN 状態のみ発生 ) ■ 低消費電力モード MB91245/S シリーズの状態のうち , スタンバイモード ( 各低消費電力モード ) とその使 用方法について説明します。 MB91245/S シリーズの低消費電力モードには , 以下のものがあります。 • スリープモード レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。 • ストップモード レジスタ書込みにより , デバイスをストップ状態へ遷移させます。 以下 , 各モードについて説明します。 ● スリープモード STCR( スタンバイ制御レジスタ ) の bit6 : SLEEP ビットに "1" を書き込むとスリープ モードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発生 するまでは , スリープ状態を維持します。 スリープ状態については , 「■ デバイス状態と各遷移」の「●スリープ状態」も参照 してください。 • スリープモードへの移行 スリープモードに入れる場合は , 以下のシーケンスを必ず使用してください。 (LDI #value_of_sleep, R0) ; value_of_sleep は , STCR へのライトデータ (LDI #_STCR, R12) ; _STCR は , STCR のアドレス (481H) STB R0, @R12 ; スタンバイ制御レジスタ (STCR) への書込み LDUB @R12, R0 ; 同期スタンバイのための STCR リード LDUB @R12, R0 ; もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP STCR( スタンバイ制御レジスタ ) の bit7 : STOP ビットと本ビット両方に "1" を書き 込んだ場合は , bit7 : STOP ビットの方が優先となり , ストップ状態へ遷移します。 112 第 3 章 CPU および制御部 • スリープ状態で停止する回路 - CPU のプログラム実行 以下は , DMA 転送が発生した場合は動作します。 - ビットサーチモジュール - 各種内蔵メモリ - 内部 / 外部バス • スリープ状態で停止しない回路 - 発振回路 - 動作許可されたメイン PLL - クロック発生制御部 - 割込みコントローラ - 周辺回路 - メイン発振安定待ちタイマ - 時計タイマ - DMA コントローラ - DSU (On chip Debug Support Unit) • スリープ状態からの復帰要因 - 有効な割込み要求の発生 ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) 以外の場合 , 割込み要求 が発生するとスリープモードは解除され , RUN 状態 ( 通常動作 ) へ遷移します。 ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) の場合 , 割込み要求が発 生しても , スリープモードは解除されません。 - 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態 へ遷移します。 <注意事項> 各要因の優先順位については , 「■ デバイス状態と各遷移」の「●各状態遷移要求の優先 順位」を参照してください。 • 同期スタンバイ動作 SLEEP ビットへの書込みのみではスリープ状態へは遷移しません。その後 , STCR ( スタンバイ制御 ) レジスタを読み出すことによってスリープ状態へ遷移します。 スリープモードを使用する場合は , 「・スリープモードへの移行」にあるシーケンス を 必ず使用してください。 113 第 3 章 CPU および制御部 ● ストップモード STCR( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むとストップモー ドとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生する までは , ストップ状態を維持します。 なお , ストップモードでは , メイン発振は停止してください。 ストップ状態については , 「■ デバイス状態と各遷移」の「●ストップ状態」も参照 してください。 • ストップモードへの移行 ストップモードに入れる場合は , 以下のシーケンスを必ず使用してください。 (LDI #value_of_stop, R0) ; value_of_stop は , STCR へのライトデータ (LDI #_STCR, R12) ; _STCR は , STCR のアドレス (481H) STB R0, @R12 ; スタンバイ制御レジスタ (STCR) への書込み LDUB @R12, R0 ; 同期スタンバイのための STCR リード LDUB @R12, R0 ; もう一度 STCR をダミーリード NOP NOP ; タイミング調整用の NOP × 5 NOP NOP NOP STCR( スタンバイ制御レジスタ ) の bit6 : SLEEP ビットと本ビット両方に "1" を書 き込んだ場合は , bit7 : STOP ビットの方が優先となり , ストップ状態へ遷移します。 • ストップ状態で停止する回路 - 発振回路は停止して使用すること - STCR( スタンバイ制御レジスタ ) の bit0 : OSCD1 ビットを "1" に設定すること • ストップ状態での端子のハイインピーダンス制御 STCR( スタンバイ制御レジスタ ) の bit5 : HIZ ビットに "1" が設定してあると , ス トップ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる 端子は , 「付録 C リセットによる各端子状態」を参照してください。 STCR( スタンバイ制御レジスタ ) の bit5 : HIZ ビットに "0" が設定してあると , ス トップ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は ,「付 録 C リセットによる各端子状態」を参照してください。 • ストップ状態からの復帰要因 - 特定の ( クロックを必要としない ) 有効な割込み要求の発生 一部の外部割込みのみが有効です。 ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) 以外の場合 , 割込み要求 が発生するとストップモードは解除され , 発振安定待ち RUN 状態へ遷移します。 ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) の場合 , 割込み要求が発 生してもストップモードは解除されません。 - 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 114 第 3 章 CPU および制御部 <注意事項> 各要因の優先順位については , 「■ デバイス状態と各遷移」の「●各状態遷移要求の優先 順位」を参照してください。 • ストップモード時のクロックソース選択 自励発振モードでは , ストップモードを設定する前に , メインクロックの 2 分周を ソースクロックとするようあらかじめ選択しておいてください。詳細は , 「3.12.2 PLL 制御」を参照してください。 なお , 分周比の設定に関しては , 通常動作時と制限事項は同じです。 • 同期スタンバイ動作 STOP ビットへの書込みのみではストップ状態へは遷移しません。その後 , STCR ( スタンバイ制御 ) レジスタを読み出すことによってストップ状態へ遷移します。 ストップモードを使用する場合は , 「・ストップモードへの移行」にあるシーケンス を必ず使用してください。 115 第 3 章 CPU および制御部 116 第4章 I/O ポート I/O ポートの概要 , レジスタの構成および機能につ いて説明します。 4.1 I/O ポートの概要 4.2 I/O ポートのレジスタ 4.3 I/O 拡張機能 117 第 4 章 I/O ポート 4.1 I/O ポートの概要 I/O ポートの構成を説明します。 ■ ポート基本ブロックダイヤグラム MB91245/S シリーズは , 各端子に対応するペリフェラル入出力として端子を使用しな い設定になっているとき , I/O ポートとして使用することができます。 各ポートは以下のレジスタにより構成されます。 • PDR( ポートデータレジスタ /Port Data Register) • DDR( ポート方向レジスタ /Port Direction Register) • PFR( ポート機能レジスタ /Port Function Register) I/O ポートの基本的な構成を下記に示します。 図 4.1-1 I/O ポートのブロックダイヤグラム ペリフェラル入力 R-bus PDRリード * 0 1 ペリフェラル出力 PDR PFR 1 0 ストップモード P-ch N-ch DDR *: PDRレジスタに対してリードモディファイライト (RMW)系命令を行った 場合のリード時は, 常に"1"側が選択されます。 DDR:Data Direction Register PDR:Port Data Register PFR:Port Function Register 118 端子 第 4 章 I/O ポート 図 4.1-2 アナログ入力兼用ポートブロックダイヤグラム アナログ入力 ペリフェラル入力 R-bus PDRリード 0 * 1 ストップモード PDR P-ch 端子 1 PFR N-ch 0 DDR *: PDRレジスタに対してリードモディファイライト (RMW)系命令を行った 場合のリード時は, 常に"1"側が選択されます。 DDR:Data Direction Register PDR:Port Data Register PFR:Port Function Register 図 4.1-3 アナログ出力兼用ポートブロックダイヤグラム ペリフェラル入力 R-bus PDRリード * 0 1 ストップモード PDR P-ch 端子 1 N-ch PFR 0 DDR アナログ出力 *: PDRレジスタに対してリードモディファイライト(RMW)系命令を行った 場合のリード時は, 常に"1"側が選択されます。 DDR:Data Direction Register PDR:Port Data Register PFR:Port Function Register 119 第 4 章 I/O ポート ■ 動作モード • ポート入力モード時 (PFR=0 & DDR=0) - PDR リード: 対応する外部端子のレベルが読み出されます。 - PDR ライト: PDR に設定値が書き込まれます。ただし , PDR の値は対応する外 部端子に反映されません。 - リードモディファイライト (RMW) 系命令でのリード :PDR の値が読み出されます。 • ポート出力モード時 (PFR=0 & DDR=1) - PDR リード: PDR の値が読み出されます。 - PDR ライト: PDRに設定値が書き込まれ, PDRの値が対応する外部端子に出力さ れます。 - リードモディファイライト (RMW) 系命令でのリード :PDR の値が読み出されます。 • ペリフェラル出力モード時 - PDR リード: 対応する外部端子のレベルが読み出されます。 - PDR ライト: PDR に設定値が書き込まれます。ただし , PDR の値は対応する外 部端子に反映されません。 - リードモディファイライト (RMW) 系命令でのリード :対応するペリフェラルの出力の値が読み出されます。 <注意事項> • 端子をリソースの入力として使用する場合は , PFR = 0 かつ DDR = 0 ( ポート入力モー ド ) としてください。 • 汎用ポート入力とペリフェラル入力を切り換えるレジスタはありません。外部端子か ら入力された値は , 常に汎用ポートとペリフェラル回路へ伝播しています。 また , DDR で出力設定時も外部へ出力している値が常に汎用ポートとペリフェラル回 路へ伝播しています。 ペリフェラル入力としてご使用の場合は , DDR で入力にし , 各ペリフェラルの入力信 号を有効にしてご使用ください。 120 第 4 章 I/O ポート 4.2 I/O ポートのレジスタ I/O ポートで使用するレジスタの構成および機能について説明します。 ■ ポートデータレジスタ (PDR:PDR0 ∼ PDRG) PDR0 bit 7 6 5 4 3 2 1 0 アドレス:00000000H P07 P06 P05 P04 P03 P02 P01 P00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDR1 bit 7 6 5 4 3 2 1 0 アドレス:00000001H P17 P16 P15 P14 P13 P12 P11 P10 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDR2 bit 7 6 5 4 3 2 1 0 アドレス:00000002H P27 P26 P25 P24 P23 P22 P21 P20 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) PDR3 bit 7 6 5 4 3 2 1 0 アドレス:00000003H P37 P36 P35 P34 P33 P32 P31 P30 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (0) (0) (0) (0) 初期値 (X) PDR4 bit 7 6 5 4 3 2 1 0 アドレス:00000004H P47 P46 P45 P44 P43 P42 P41 P40 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDR5 bit 7 6 5 4 3 2 1 0 アドレス:00000005H P57 P56 P55 P54 P53 P52 P51 P50 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDR6 bit 7 6 5 4 3 2 1 0 アドレス:00000006H P67 P66 P65 P64 P63 P62 P61 P60 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDR7 bit アドレス:00000007H 7 − リード / ライト ( − ) 初期値 ( − ) 6 − (−) (−) 5 − (−) (−) 4 3 2 1 0 P73 P72 P71 P70 − ( − ) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (−) ( 続く ) 121 第 4 章 I/O ポート ( 続き ) PDR8 bit 7 6 5 4 3 2 1 0 アドレス:00000008H P87 P86 P85 P84 P83 P82 P81 P80 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDR9 bit 7 6 5 4 3 2 1 0 アドレス:00000009H P97 P96 P95 P94 P93 P92 P91 P90 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDRA bit 7 アドレス:0000000AH − リード / ライト ( − ) 初期値 ( − ) PDRB bit 7 6 5 − (−) (−) − (−) (−) 6 5 4 3 2 1 0 PA3 PA2 PA1 PA0 − ( − ) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (−) 4 3 2 1 0 アドレス:0000000BH PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 PDRC bit 7 アドレス:0000000CH − リード / ライト ( − ) 初期値 ( − ) PDRD bit 7 6 5 − (−) (−) − (−) (−) 6 5 4 3 2 1 0 PC3 PC2 PC1 PC0 − ( − ) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (−) 4 3 2 1 0 アドレス:0000000DH PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (X) (X) (X) (X) 初期値 (0) PDRE bit 7 6 5 4 3 2 1 0 アドレス:0000000EH PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDRF bit 7 6 5 4 3 2 1 0 アドレス:0000000FH PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) PDRG bit アドレス:00000010H 7 − リード / ライト ( − ) 初期値 ( − ) 6 5 − (−) (−) − (−) (−) 4 3 2 1 0 PG3 PG2 PG1 PG0 − (R/W) (R/W) (R/W) (R/W) (−) (X) (X) (X) (X) (−) PDR0 ∼ PDRG は I/O ポートの入出力データレジスタです。 対応する DDR0 ∼ DDRG, PFR0 ∼ PFRG にて , 入出力制御が行われます。 122 第 4 章 I/O ポート ■ データ方向レジスタ (DDR:DDR0 ∼ DDRG) 図 4.2-1 データ方向レジスタ (DDR:Data Direction Register) の構成 DDR0 bit 7 6 5 4 3 2 1 0 アドレス:00000400H P07 P06 P05 P04 P03 P02 P01 P00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDR1 bit アドレス:00000401H 7 6 5 4 3 2 1 0 P17 P16 P15 P14 P13 P12 P11 P10 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDR2 bit 7 6 5 4 3 2 1 0 アドレス:00000402H P27 P26 P25 P24 P23 P22 P21 P20 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) 初期値 (1) DDR3 bit アドレス:00000403H 7 6 5 4 3 2 1 0 P37 P36 P35 P34 P33 P32 P31 P30 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (1) (1) (1) (1) 初期値 (0) DDR4 bit 7 6 5 4 3 2 1 0 アドレス:00000404H P47 P46 P45 P44 P43 P42 P41 P40 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDR5 bit 7 6 5 4 3 2 1 0 アドレス:00000405H P57 P56 P55 P54 P53 P52 P51 P50 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDR6 bit 7 6 5 4 3 2 1 0 アドレス:00000406H P67 P66 P65 P64 P63 P62 P61 P60 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDR7 bit 7 6 5 − (−) (−) − (−) (−) 7 6 5 4 3 2 1 0 P87 P86 P85 P84 P83 P82 P81 P80 アドレス:00000407H − リード / ライト ( − ) 初期値 ( − ) DDR8 bit アドレス:00000408H 4 3 2 1 0 P73 P72 P71 P70 − ( − ) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (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) ( 続く ) 123 第 4 章 I/O ポート ( 続き ) DDR9 bit 7 6 5 4 3 2 1 0 アドレス:00000409H P97 P96 P95 P94 P93 P92 P91 P90 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDRA bit 7 6 5 − (−) (−) − (−) (−) 7 6 5 4 3 2 1 0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 アドレス:0000040AH − リード / ライト ( − ) 初期値 ( − ) DDRB bit アドレス:0000040BH 4 3 2 1 0 PA3 PA2 PA1 PA0 − ( − ) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (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) DDRC bit 7 アドレス:0000040CH − リード / ライト ( − ) 初期値 ( − ) DDRD bit 7 6 5 − (−) (−) − (−) (−) 6 5 4 3 4 3 PD7 PD6 PD5 PD4 − リード / ライト (R/W) (R/W) (R/W) (R/W) ( − ) (1) (1) (1) (−) 初期値 (1) bit 7 6 5 1 0 PC3 PC2 PC1 PC0 − ( − ) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (−) アドレス:0000040DH DDRE 2 4 3 2 1 0 − (−) (−) − (−) (−) − (−) (−) 2 1 0 アドレス:0000040EH PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDRF bit アドレス:0000040FH 7 6 5 4 3 2 1 0 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) DDRG bit アドレス:00000410H 7 − リード / ライト ( − ) 初期値 ( − ) 6 5 − (−) (−) − (−) (−) 4 3 2 1 0 PG3 PG2 PG1 PG0 − ( − ) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (−) DDR0 ∼ DDRG は , 対応する I/O ポートの入出力方向をビット単位で制御します。 PFR=0 のとき DDR=0:ポート入力ならびに , ペリフェラル入力となります。 DDR=1:ポート出力となります。 PFR=1 のとき DDR の設定によらず , ペリフェラル出力となります。 124 第 4 章 I/O ポート ■ ポート機能レジスタ (PFR, EPFR:Port Function Register) PFR0 ∼ PFR5, PFR7, PFRA ∼ PFRE, PFRG および EPFR2 ∼ EPFR5, EPFRD, EPFRG は 対応するペリフェラルの出力をビット単位で制御します。 PFR および EPFR の未使用ビットには必ず "0" を書き込んでください。特に記載がない 場合には PFR=1 で端子はペリフェラル出力となります。 読出し時には , 前回書込みを行った値が読み出されます。 ● PFR0 (P07 ∼ P00) PFR0 bit 7 6 5 4 3 2 1 0 アドレス:00000420H P07 P06 P05 P04 P03 P02 P01 P00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) シングルチップモード時 , 外バス 8 ビットモード使用時 ペリフェラル出力 P07 P06 P05 P04 P03 P02 P01 P00 SEG31 SEG30 SEG29 SEG28 SEG27 SEG26 SEG25 SEG24 D03 D02 D01 D00 外バス 16 ビットモード使用時 (PFR0 は影響しません ) D07 外部データバス D06 D05 D04 STOP 状態から外部割込み (INT5 ∼ INT0) を使用して復帰を行う場合には外部割込みに 対応するポートの PFR ビットを "0" に設定してください。 なお , 外部バス 16 ビットモード時は , 入力が常に有効になりますので , 対応する外部割 込みの割込み許可レジスタで対応ビットをマスクしてください。 ● PFR1 (P17 ∼ P10) PFR1 bit アドレス:00000421H 7 6 5 4 3 2 1 0 P17 P16 P15 P14 P13 P12 P11 P10 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) シングルチップモード時 ペリフェラル出力 P17 P16 P15 P14 P13 P12 P11 P10 SEG23 SEG22 SEG21 SEG20 SEG19 SEG18 SEG17 SEG16 D13 D12 D11 D10 D09 D08 外バス使用時 (PFR1 は影響しません ) 外部データバス D15 D14 125 第 4 章 I/O ポート ● PFR2 (P27 ∼ P20) / EPFR2 (P27 ∼ P20) PFR2 bit アドレス:00000422H 7 6 5 4 3 2 1 0 P27 P26 P25 P24 P23 P22 P21 P20 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) EPFR2 bit 7 6 5 4 3 2 1 0 アドレス:00000602H P27 P26 P25 P24 P23 P22 P21 P20 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) シングルチップモード時 (EPFR2 は影響しません ) P27 P26 P25 P24 P23 P22 P21 P20 SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 PFR2, EPFR2 = 00B A07 A06 A05 A04 A03 A02 A01 A00 01B 禁止 禁止 禁止 禁止 禁止 禁止 禁止 禁止 10B A07 A06 A05 A04 A03 A02 A01 A00 11B 禁止 禁止 禁止 禁止 禁止 禁止 禁止 禁止 ペリフェラル出力 外バス使用時 ● PFR3 (P37 ∼ P30) / EPFR3 (P37 ∼ P30) PFR3 bit 7 6 5 4 3 2 1 0 アドレス:00000423H P37 P36 P35 P34 P33 P32 P31 P30 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) EPFR3 bit アドレス:00000603H 7 6 5 4 3 2 1 0 P37 P36 P35 P34 P33 P32 P31 P30 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) シングルチップモード時 (EPFR3 は影響しません ) P37 P36 P35 P34 P33 P32 P31 P30 SEG15 SEG14 SEG13 SEG12 SEG11 SEG10 SEG9 SEG8 PFR3, EPFR3 = 00B A15 A14 A13 A12 A11 A10 A09 A08 01B 禁止 禁止 禁止 禁止 禁止 禁止 禁止 禁止 10B A15 A14 A13 A12 A11 A10 A09 A08 11B 禁止 禁止 禁止 禁止 禁止 禁止 禁止 禁止 ペリフェラル出力 外バス使用時 126 第 4 章 I/O ポート ● PFR4 (P47 ∼ P40) / EPFR4 (P47 ∼ P40) PFR4 bit 7 6 5 4 3 2 1 0 アドレス:00000424H P47 P46 P45 P44 P43 P42 P41 P40 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) EPFR4 bit アドレス:00000604H 7 6 5 4 3 2 1 0 P47 P46 P45 P44 P43 P42 P41 P40 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) シングルチップモード時 (EPFR4 は影響しません ) ペリフェラル出力 P47 P46 P45 P44 P43 P42 P41 P40 SGO SGA SCK3 SOT3 − SCK0 SOT0 − 外バス使用時 PFR4, EPFR4 = 00B SYSCLK ASX − − − − − − 01B P47 P46 P45 P44 P43 P42 P41 P40 10B SYSCLK ASX 禁止 禁止 禁止 禁止 禁止 禁止 11B SGO SGA SCK3 SOT3 − SCK0 SOT0 − ● PFR5 (P57 ∼ P50) / EPFR5 (P57 ∼ P50) PFR5 bit 7 6 5 4 3 2 1 0 アドレス:00000425H P57 P56 P55 P54 P53 P52 P51 P50 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) EPFR5 bit 7 6 5 4 3 2 1 0 アドレス:00000605H P57 P56 P55 P54 P53 P52 P51 P50 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) シングルチップモード時 (EPFR5 は影響しません ) ペリフェラル出力 P57 P56 P55 P54 P53 P52 P51 P50 OUT1 OUT0 SCK5 SOT5 − SCK4 SOT4 − 外バス使用時 PFR5, EPFR5 = 00B RDY WRIX WR0X RDX CS3X CS2X CS1X CS0X 01B P57 P56 P55 P54 P53 P52 P51 P50 10B RDY WRIX WR0X RDX CS3X CS2X CS1X CS0X 11B OUT1 OUT0 SCK5 SOT5 − SCK4 SOT4 − 127 第 4 章 I/O ポート ● PFR6 (P67 ∼ P60) 本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に は ADER レジスタの対応するビットを必ず "0" に設定してください (「第 23 章 A/D コ ンバータ」の項を参照してください )。 ● PFR7 (P73 ∼ P70) PFR7 bit 7 アドレス:00000427H − リード / ライト ( − ) 初期値 ( − ) ペリフェラル出力 6 5 − (−) (−) − (−) (−) 4 3 2 1 0 P73 P72 P71 P70 − ( − ) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (−) − − − − P73 P72 P71 P70 − − − − TX1 − TX0 − STOP 状態から外部割込み (INT7/INT6) を使用して復帰を行う場合には外部割込みに対 応するポートの PFR ビットを "1" に設定してください。 ● PFR8 (P87 ∼ P80) 本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に は ADER レジスタの対応するビットを必ず "0" に設定してください ( 第 23 章 A/D コン バータの項を参照してください )。 ● PFR9 (P97 ∼ P90) 本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に は ADER レジスタの対応するビットを必ず "0" に設定してください (「第 23 章 A/D コ ンバータ」の項を参照してください )。 ● PFRA (PA3 ∼ PA0) PFRA bit アドレス:0000042AH 7 − リード / ライト ( − ) 初期値 ( − ) ペリフェラル出力 128 6 5 − (−) (−) − (−) (−) − − − − − − − − 4 3 2 1 0 PA3 PA2 PA1 PA0 − ( − ) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (−) PA3 PA2 PA1 PA0 PWM2M3 PWM2P3 PWM1M3 PWM1P3 第 4 章 I/O ポート ● PFRB (PB7 ∼ PB0) PFRB bit アドレス:0000042BH 7 6 5 4 3 2 1 0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) PB7 PB6 PB6 PB5 PB3 PB2 PB1 PB0 ペリフェラル PWM2M1 PWM2P1 PWM1M1 PWM1P1 PWM2M0 PWM2P0 PWM1M0 PWM1P0 出力 ● PFRC (PC3 ∼ PC0) PFRC bit 7 アドレス:0000042CH − リード / ライト ( − ) 初期値 ( − ) ペリフェラル出力 6 5 − (−) (−) − (−) (−) − − − − − − − − 4 3 2 1 0 PC3 PC2 PC1 PC0 − ( − ) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (−) PC3 PC2 PC1 PC0 PWM2M2 PWM2P2 PWM1M2 PWM1P2 ● PFRD (D7 ∼ PD0) / EPFRD (PD7 ∼ PD0) PFRD bit 7 6 5 4 3 2 1 0 アドレス:0000042DH PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) EPFRD bit アドレス:0000060DH 7 6 5 4 3 2 1 0 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) PFRD, EPFRD = 00B PD7 PD6 PD5 PD4 01B PPG7 PPG5 PPG3 PPG1 10B 禁止 禁止 禁止 禁止 11B COM3 COM2 COM1 COM0 PD3 禁止 PD2*1 PD1*1 PD0*1 禁止 禁止 禁止 LIN2*2 LIN1*2 LIN0*2 禁止 禁止 禁止 *1:PD2/1/0 が ICU2/1/0 への入力になります。 *2:LIN2/1/0 が ICU2/1/0 への入力になります。 ( 注意事項 ) EPFRD の bit3 ∼ bit0 に "1" を設定しないでください。 129 第 4 章 I/O ポート ● PFRE (PE7 ∼ PE0) PFRE bit 7 6 5 4 3 2 1 0 アドレス:0000042EH PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 ペリフェラル PWM2M5 PWM2P5 PWM1M5 PWM1P5 PWM2M4 PWM2P4 PWM1M4 PWM1P4 出力 ● PFRF (PF6 ∼ PF0) 本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に は ADER レジスタの対応するビットを必ず "0" に設定してください (「第 23 章 A/D コ ンバータ」の項を参照してください )。 ● PFRG (PG3 ∼ PG0) / EPFRG (PG3 ∼ PG0) PFRG bit アドレス:00000430H リード / ライト 初期値 EPFRG bit アドレス:00000610H リード / ライト 初期値 7 6 5 4 3 2 1 0 − (R/W) (-) − (R/W) (-) − (R/W) (-) − (R/W) (-) PG3 (R/W) (0) PG2 (R/W) (0) PG1 (R/W) (0) PG0 (R/W) (0) 7 6 5 4 3 2 1 0 − (R/W) (-) PG3 PG2 PG1 PG0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) − (R/W) (-) − (R/W) (-) − (R/W) (-) PFRG, EPFRG = 00B − − − − PG3 PG2 PG1 PG0 01B − − − − PPG6 PPG4 PPG2 PPG0 10B − − − − 禁止 禁止 禁止 禁止 11B − − − − TOT2 TOT1 TOT0 禁止 130 第 4 章 I/O ポート 4.3 I/O 拡張機能 MB91245/S シリーズには I/O ポートの拡張機能として , 入力レベル選択レジスタ :Port Input Level select Register (PILR) 状態制御レジスタ :Port State Control Register (PSCR) があります。 PILR の値の書換えは , PSCR への所定の書込みアクセス後のみ可能です。読出しは 常に可能です。本機能は , バイトアクセスのみでしか行えません。 ■ 入力レベル選択レジスタ (PILR) 図 4.3-1 入力レベル選択レジスタ (PILR) のビット構成 PILR0 bit 7 6 5 4 3 2 1 0 アドレス:00000540H P07 P06 P05 P04 P03 P02 P01 P00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) PILR1 bit アドレス:00000541H 7 6 5 4 3 2 1 0 P17 P16 P15 P14 P13 P12 P11 P10 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) PILR5 bit 7 6 アドレス:00000545H P57 − リード / ライト (R/W) ( − ) (−) 初期値 (0) 5 4 3 2 1 0 − (−) (−) − (−) (−) − (−) (−) − (−) (−) − (−) (−) − (−) (−) PILRは端子の入力レベル切換えレジスタです。本レジスタの設定により, 対応するビッ トの入力レベルを CMOS Automotive シュミットトリガ (VIH/VIL = 0.8/0.5 Vcc), CMOS シュミットトリガ (VIH/VIL = 0.7/0.3 Vcc) のいずれかに設定することができます。 PILRx 名称 VIH VIL 0 CMOS Automotive シュミットトリガ 0.8 × Vcc 0.5 × Vcc 1 CMOS シュミットトリガ 0.7 × Vcc 0.3 × Vcc 本品種の端子は , 通常 CMOS Automotive シュミットトリガになっております。 131 第 4 章 I/O ポート ■ ポート状態制御レジスタ (PSCR) 図 4.3-2 ポート状態制御レジスタ (PSCR) のビット構成 PSCR bit アドレス:000004FCH リード / ライト 初期値 7 6 5 4 3 2 1 0 − (W) (X) − (W) (X) − (W) (X) − (W) (X) − (W) (X) − (W) (X) − (W) (X) − (W) (X) PSCR は , PILR の書換えを制御するためのレジスタです。本レジスタはバイトライト アクセスのみ可能です。読み出すことはできません。読出し時は不定値が読まれます。 詳細は 「●ポート拡張機能レジスタの書換え」を参照してください。 ● ポート拡張機能レジスタの書換え PPER, PPCR および PILR レジスタの値を書き換える前に , PSCR (000004FCH) に対して , "A5H" → "5AH" の順に書込みアクセスを実行してください。 以下にアセンブラコード例を示します。 ldi #0x000004fc, r0 // r0=PSCR address ldi:8 #0xA5, r1 // r1=A5 ldi:8 #0x5A, r2 // r2=5A stb r1, @r0 // write A5 to PSCR stb r2, @r0 // write 5A to PSCR ldub @r0, r0 // ダミーリード PSCR レジスタは書込み専用です。したがって , レジスタの状態が不明の場合は , 書込 みアクセスの前に必ず一度は "A5H", "5AH" 以外のダミーライトを挿入してください。 PILR レジスタの書換えは上記ライトシーケンス後に各レジスタに一度だけ可能です。 レジスタ更新後に再び書換えを実行する場合には , 再びライトにシーケンスを実行す る必要があります。 132 第 4 章 I/O ポート 図 4.3-3 PSCR レジスタへの書込みアクセス手順 書込み禁止 PSCRへの 書込みアクセス A5H ? NO YES PSCRへの 書込みアクセス 5AH ? NO YES PSCRへの 読出しアクセス 書込み許可 PSCRへの 書込みアクセス PSCRへの 読出しアクセス ● 使用上の注意 入力選択レジスタ PILR の値を変更するときは , 該当端子を入力としているリソースの 機能を無効にした状態で行ってください。 133 第 4 章 I/O ポート 134 第5章 割込みコントローラ 割込みコントローラの概要 , レジスタの構成 / 機能 および動作について説明します。 5.1 割込みコントローラの概要 5.2 割込みコントローラのレジスタ一覧 5.3 割込みコントローラの動作 135 第 5 章 割込みコントローラ 5.1 割込みコントローラの概要 割込みコントローラは , 割込み受付け / 調停処理を行います。 ■ 割込みコントローラのハードウェア構成 割込みコントローラには , 以下のレジスタおよび回路により構成されます。 • ICR レジスタ • 割込み優先度判定回路 • 割込みレベル , 割込み番号 ( ベクタ ) 発生部 • ホールドリクエスト取下げ要求発生部 ■ 割込みコントローラの主要機能 割込みコントローラには , 以下のような機能があります。 • NMI 要求 / 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み番号伝達 (CPU へ ) • NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰 指示 (CPU へ ) <注意事項> MB91245/S シリーズでは , NMI はサポートしていません。 136 第 5 章 割込みコントローラ 5.2 割込みコントローラのレジスタ一覧 割込みコントローラで使用するレジスタの構成および機能について説明します。 ■ 割込みコントローラのレジスタ一覧 図 5.2-1 割込みコントローラのレジスタ一覧 bit アドレス:00000440H 7 6 5 − − − 4 ICR4 3 ICR3 2 ICR2 1 ICR1 0 ICR0 ICR00 アドレス:00000441H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR01 ICR3 ICR2 ICR1 ICR0 ICR02 アドレス:00000442H − − − ICR4 アドレス:00000443H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR03 アドレス:00000444H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR04 ICR3 ICR2 ICR1 ICR0 ICR05 アドレス:00000445H − − − ICR4 アドレス:00000446H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR06 アドレス:00000447H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR07 アドレス:00000448H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR08 ICR3 ICR2 ICR1 ICR0 ICR09 アドレス:00000449H − − − ICR4 アドレス:0000044AH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR10 アドレス:0000044BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR11 ICR3 ICR2 ICR1 ICR0 ICR12 アドレス:0000044CH − − − ICR4 アドレス:0000044DH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR13 アドレス:0000044EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR14 アドレス:0000044FH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR15 ICR3 ICR2 ICR1 ICR0 ICR16 アドレス:00000450H − − − ICR4 アドレス:00000451H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR17 アドレス:00000452H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR18 ICR3 ICR2 ICR1 ICR0 ICR19 アドレス:00000453H − − − ICR4 アドレス:00000454H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR20 アドレス:00000455H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR21 アドレス:00000456H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR22 ICR3 ICR2 ICR1 ICR0 ICR23 アドレス:00000457H − − − ICR4 アドレス:00000458H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR24 アドレス:00000459H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR25 ICR3 ICR2 ICR1 ICR0 ICR26 アドレス:0000045AH − − − ICR4 アドレス:0000045BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR27 アドレス:0000045CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR28 ICR3 ICR2 ICR1 ICR0 ICR29 アドレス:0000045DH − − − ICR4 アドレス:0000045EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR30 アドレス:0000045FH − − − − − − ICR4 R/W ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W ICR31 ( 続く ) 137 第 5 章 割込みコントローラ ( 続き ) bit アドレス:00000460H 7 6 5 − − − 4 ICR4 3 ICR3 2 ICR2 1 ICR1 0 ICR0 ICR32 アドレス:00000461H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR33 アドレス:00000462H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR34 ICR3 ICR2 ICR1 ICR0 ICR35 アドレス:00000463H − − − ICR4 アドレス:00000464H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR36 アドレス:00000465H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR37 ICR3 ICR2 ICR1 ICR0 ICR38 アドレス:00000466H − − − ICR4 アドレス:00000467H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR39 アドレス:00000468H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR40 アドレス:00000469H − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR41 ICR3 ICR2 ICR1 ICR0 ICR42 アドレス:0000046AH − − − ICR4 アドレス:0000046BH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR43 アドレス:0000046CH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR44 ICR3 ICR2 ICR1 ICR0 ICR45 アドレス:0000046DH − − − ICR4 アドレス:0000046EH − − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR46 アドレス:0000046FH − − − − − − − − − ICR3 R/W LVL3 R/W ICR2 R/W LVL2 R/W ICR1 R/W LVL1 R/W ICR0 R/W LVL0 R/W ICR47 アドレス:00000045H ICR4 R/W LVL4 R/W HRCL ■ 割込みコントローラのブロックダイヤグラム 図 5.2-2 割込みコントローラのブロックダイヤグラム WAKEUP (LEVEL≠11111Bのとき"1") UNMI 優先度判定 NMI NMI 処理 LEVEL4~ LEVEL0 5 HLDREQ 取下げ 要求 LEVEL判定 RI00 ・ ・ ・ RI47 (DLYIRQ) ICR00 ・ ・ ・ ICR47 VECTOR 判定 R-bus 138 6 LEVEL, VECTOR 発生 MHALTI VCT5~VCT0 第 5 章 割込みコントローラ 割込み制御レジスタ ( ICR) 5.2.1 割込み制御レジスタは , 各割込み入力に対して 1 つずつ設けられており , 対応する割 込み要求の割込みレベルを設定します。 ■ 割込み制御レジスタ (ICR) のビット構成 図 5.2-3 割込み制御レジスタ (ICR) のビット構成 アドレス : bit ch.00 000440H 7 6 5 − − − ∼ 4 ICR4 R/W 3 ICR3 R/W 2 ICR2 R/W 1 ICR1 R/W 0 ICR0 R/W 初期値 ---11111B ch.47 00046FH 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割 込み要求の割込みレベルを設定します。 [bit4 ∼ bit0] ICR4 ∼ ICR0 割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。 本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定されたレベルマ スク値以上の場合は , CPU 側にて割込み要求はマスクされます。 リセットにより , "11111B" に初期化されます。 設定可能な割込みレベル設定ビットと割込みレベルの対応を表 5.2-1 に示します。 表 5.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" を書き込むことはできません。 139 第 5 章 割込みコントローラ ■ HRCL(Hold Request Cancel Level register) bit アドレス :00000045H 7 6 5 ─ ─ ─ 4 LVL4 3 LVL3 2 LVL2 1 LVL1 0 LVL0 HRCL R/W R/W R/W R/W R/W 0--11111B( 初期値 ) ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。 [bit7 ∼ bit5] 予約ビット [bit4 ∼ bit0] LVL4 ∼ LVL0 バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定 します。 本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した 場合は , バスマスタに対してホールドリクエスト取下げ要求を発生します。 LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。 140 第 5 章 割込みコントローラ 5.3 割込みコントローラの動作 割込みコントローラの動作として , 以下の項目について説明します。 • 優先順位判定 • ホールドリクエストの取下げ要求 • スタンバイモード ( ストップ / スリープ ) からの復帰 ■ 優先順位判定 割込みコントローラでは , 同時に発生している割込み要因の中で最も優先度の高い要 因を選択し , その要因の割込みレベルと割込み番号を CPU へ出力します。 割込み要因の優先順位判定基準は , 次のとおりです。 ① NMI ②以下の条件を満たす要因 • 割込みレベルの数値が 31 以外 (31 は割込み禁止 ) • 割込みレベルの数値が最も小さい要因 ( 要因 1) • 要因 1 の条件下で , 最も小さい割込み番号を持つ要因 上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし て 31 (11111B) を出力します。そのときの割込み番号は不定です。 割込み要因と割込み番号 , 割込みレベルの関係を表 5.3-1 に示します。 141 第 5 章 割込みコントローラ 表 5.3-1 ベクタテーブル (1 / 3) 割込み番号 割込み要因 DMA TBR デフォルト 起動要因 のアドレス リセット 0 00 − 3FCH 000FFFFCH − モードベクタ 1 01 − 3F8H 000FFFF8H − システム予約 2 02 − 3F4H 000FFFF4H − システム予約 3 03 − 3F0H 000FFFF0H − システム予約 4 04 − 3ECH 000FFFECH − システム予約 5 05 − 3E8H 000FFFE8H − − 3E4H 000FFFE4H − − システム予約 6 06 コプロセッサ不在トラップ 7 07 − 3E0H 000FFFE0H コプロセッサエラートラップ 8 08 − 3DCH 000FFFDCH − INTE 命令 9 09 − 3D8H 000FFFD8H − システム予約 10 0A − 3D4H 000FFFD4H − システム予約 11 0B − 3D0H 000FFFD0H − − 3CCH 000FFFCCH − 000FFFC8H − ステップトレーストラップ 142 10 進 16 進 割込みレベル オフセット 12 0C NMI 要求 (tool) 13 0D − 3C8H 未定義命令例外 14 0E − 3C4H 000FFFC4H − NMI 要求 15 0F 15(FH) 固定 3C0H 000FFFC0H − 外部割込み 0 16 10 ICR00 3BCH 000FFFBCH 6 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 7 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H − 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H − 外部割込み 4 20 14 ICR04 3ACH 000FFFACH − 外部割込み 5 21 15 ICR05 3A8H 000FFFA8H − 外部割込み 6 22 16 ICR06 3A4H 000FFFA4H − 000FFFA0H − 外部割込み 7 23 17 ICR07 3A0H リロードタイマ 0 アンダフロー 24 18 ICR08 39CH 000FFF9CH 8 リロードタイマ 1 アンダフロー 25 19 ICR09 398H 000FFF98H 9 リロードタイマ 2 アンダフロー 26 1A ICR10 394H 000FFF94H 10 UART0( 受信完了 , 受信エラー ) 27 1B ICR11 390H 000FFF90H 0 UART0( 送信完了 ) 28 1C ICR12 38CH 000FFF8CH 3 LIN-UART0( 受信完了 , 受信エラー , LIN Synch break, バスアイドル ) 29 1D ICR13 388H 000FFF88H 1 LIN-UART0( 送信完了 ) 30 1E ICR14 384H 000FFF84H 4 LIN-UART1( 受信完了 , 受信エラー , LIN Synch break, バスアイドル ) 31 1F ICR15 380H 000FFF80H 2 LIN-UART1( 送信完了 ) 32 20 ICR16 37CH 000FFF7CH 5 LIN-UART2( 受信完了 , 受信エラー , LIN Synch break, バスアイドル ) 33 21 ICR17 378H 000FFF78H − 第 5 章 割込みコントローラ 表 5.3-1 ベクタテーブル (2 / 3) 割込み番号 割込み要因 10 進 16 進 割込みレベル オフセット DMA TBR デフォルト 起動要因 のアドレス LIN-UART2( 送信完了 ) 34 22 ICR18 374H 000FFF74H − CAN0 受信・送信完了 , ノードステータス遷移 35 23 ICR19 370H 000FFF70H − CAN1 受信・送信完了 , ノードステータス遷移 36 24 ICR20 36CH 000FFF6CH − システム予約 37 25 ICR21 368H 000FFF68H − システム予約 38 26 ICR22 364H 000FFF64H − システム予約 39 27 ICR23 360H 000FFF60H − PWC 測定終了 40 28 ICR24 35CH 000FFF5CH − PWC オーバフロー 41 29 ICR25 358H 000FFF58H − 000FFF54H - DMAC 転送終了 , 転送エラー 42 2A ICR26 354H A/D コンバータ 43 2B ICR27 350H 000FFF50H 14 リアルタイムクロック 時分秒オーバフロー , 補正終了 44 2C ICR28 34CH 000FFF4CH − システム予約 45 2D ICR29 348H 000FFF48H − メイン発振安定待ちタイマ 46 2E ICR30 344H 000FFF44H − タイムベースタイマオーバフロー 47 2F ICR31 340H 000FFF40H − PPG0/1 アンダフロー 48 30 ICR32 33CH 000FFF3CH − PPG2/3 アンダフロー 49 31 ICR33 338H 000FFF38H − 000FFF34H − PPG4/5 アンダフロー 50 32 ICR34 334H PPG6/7 アンダフロー 51 33 ICR35 330H 000FFF30H − 16 ビットフリーランタイマ 0 オーバフロー および OCU0 コンペアマッチクリア 52 34 ICR36 32CH 000FFF2CH − 16 ビットフリーランタイマ 1 オーバフロー 53 35 ICR37 328H 000FFF28H − ICU0( 取込み ) 54 36 ICR38 324H 000FFF24H − ICU1( 取込み ) 55 37 ICR39 320H 000FFF20H − ICU2( 取込み ) 56 38 ICR40 31CH 000FFF1CH − 000FFF18H − ICU3( 取込み ) 57 39 ICR41 318H OCU0( 一致 ) 58 3A ICR42 314H 000FFF14H − OCU1( 一致 ) 59 3B ICR43 310H 000FFF10H − システム予約 60 3C ICR44 30CH 000FFF0CH − システム予約 61 3D ICR45 308H 000FFF08H − サウンドジェネレータ指定カウント完了 62 3E ICR46 304H 000FFF04H − 000FFF00H − 遅延割込み要因ビット 63 3F ICR47 300H システム予約 (REALOS にて使用 ) 64 40 − 2FCH 000FFEFCH − システム予約 (REALOS にて使用 ) 65 41 − 2F8H 000FFEF8H − システム予約 66 42 − 2F4H 000FFEF4H − システム予約 67 43 − 2F0H 000FFEF0H − システム予約 68 44 − 2ECH 000FFEECH − 143 第 5 章 割込みコントローラ 表 5.3-1 ベクタテーブル (3 / 3) 割込み番号 割込み要因 10 進 16 進 割込みレベル オフセット DMA TBR デフォルト 起動要因 のアドレス システム予約 69 45 − 2E8H 000FFEE8H − システム予約 70 46 − 2E4H 000FFEE4H − システム予約 71 47 − 2E0H 000FFEE0H − − 2DCH 000FFEDCH − 000FFED8H − システム予約 72 48 システム予約 73 49 − 2D8H システム予約 74 4A − 2D4H 000FFED4H − システム予約 75 4B − 2D0H 000FFED0H − システム予約 76 4C − 2CCH 000FFECCH − システム予約 77 4D − 2C8H 000FFEC8H − − 2C4H 000FFEC4H − 000FFEC0H − システム予約 79 4F − 2C0H 80 50 − 2BCH 000FFEBCH ∼ − ∼ ∼ INT 命令で使用 4E ∼ システム予約 78 255 FF − 000H 000FFC00H − ( 注意事項 ) 本品種では , NMI はサポートしていません。 ■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request) 優先度の高い割込み処理を , CPU のホールド中 (DMA 転送中 ) に行う場合は , ホールド リクエスト発生元においてリクエストを取り下げさせる必要があります。この取下げ 要求発生の基準となる割込みレベルを HRCL レジスタに設定します。 ● 発生基準 HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合 は , ホールドリクエスト取下げ要求を発生します。 HRCL レジスタの割込みレベル>優先度判定後の割込みレベル →取下げ要求発生 HRCL レジスタの割込みレベル ≤ 優先度判定後の割込みレベル →取下げ要求なし 取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効 であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割 込み要因をクリアしてください。 ● 設定可能なレベル HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。 "11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また , "10000B" に設定した場合は NMI でのみ取下げ要求を発生することになります。 表 5.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま す。 144 第 5 章 割込みコントローラ 表 5.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定 HRCL レジスタ 取下げ要求発生となる割込みレベル 16 NMI のみ 17 NMI, 割込みレベル 16 18 NMI, 割込みレベル 16 ∼ 17 ∼ ∼ 31 NMI, 割込みレベル 16 ∼ 30 [ 初期値 ] リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割 込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値 に設定してください。 ■ スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。 NMI を含む周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つでも発生す ると , クロック制御部に対してストップモードからの復帰要求を発生します。 優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優 先度判定部の結果が出るまでの間 , CPU は命令を実行します。 スリープ状態からの復帰においても , 同様に動作します。 また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。 <注意事項> ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺の制 御レジスタにて割込みレベルを "11111B" にしてください。 145 第 5 章 割込みコントローラ ■ ホールドリクエスト取下げ要求機能 (HRCL) の使用例 DMA 転送中に , CPU が優先度の高い処理を行うときは , DMA に対してホールドリク エストを取り下げさせ , ホールド状態を解除する必要があります。ここでは , 割込みを 利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作を実 現します。 ● 制御レジスタ 1. HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 割込みコントローラ 本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ ルを設定します。 2. ICR : 割込みコントローラ 使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し ます。 ● ハードウェア構成 図 5.3-1 に , ホールドリクエストの各信号の流れを示します。 図 5.3-1 ホールドリクエストの各信号の流れ 本モジュール IRQ バスアクセス要求 DHREQ:Dバスホールドリクエスト DHREQ MHALTI DHACK:Dバスホールドアクノリッジ I-ユニット B-ユニット DMA CPU (ICR) :割込み要求 MHALTI:ホールドリクエスト 取下げ要求 DHACK (HRCL) IRQ ● シーケンス 図 5.3-2 に , HRCL レジスタに設定したレベルより強い場合の INTC-2 割込みレベルを 示します。 図 5.3-2 割込みレベル HRCL < ICR (LEVEL) RUN CPU バスアクセス要求 DHREQ バスホールド バスホールド(DMA転送) 割込み処理 ① ② 割込みルーチンの例 ①割込み要因クリア ~ DHACK ②RETI IRQ LEVEL MHALTI 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA はアクセス要求を取り下げ , CPU はホールド状態から復帰して割込み処理を行います。 146 第 5 章 割込みコントローラ 図 5.3-3 に , 多重割込みの場合の INTC-2 割込みレベルを示します。 図 5.3-3 INTC-3 割込みレベル HRCL < ICR ( 割込み I) < ( 割込み II) RUN バスホールド 割込みⅠ CPU ④ バスホールド(DMA転送) 割込み処理Ⅰ 割込み処理Ⅱ ③ ① ② バスアクセス要求 DHREQ DHACK IRQ1 IRQ2 LEVEL MHALTI 〔割込みルーチンの例〕 ① , ③割込み要因クリア ∼ ② , ④ RETI 上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した 場合を示しています。 HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は , DHREQ は下がっています。 < 注意事項> HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。 147 第 5 章 割込みコントローラ 148 第6章 外部割込み制御部 外部割込み制御部の概要 , レジスタの構成 / 機能お よび動作について説明します。 6.1 外部割込み制御部の概要 6.2 外部割込み制御部のレジスタ 6.3 外部割込み制御の動作 149 第 6 章 外部割込み制御部 6.1 外部割込み制御部の概要 外部割込み制御部は , INT0 ∼ INT7 に入力される外部割込み要求の制御を行うブ ロックです。検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下り エッジ " の 4 種類から選択できます。 ■ 外部割込み制御部のレジスタ一覧 外部割込みのレジスタ一覧は以下のとおりです。 図 6.1-1 外部割込み制御部のレジスタ一覧 bit EIRR0 アドレス:00000040H 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 初期値 00000000B [R/W] bit ENIR0 アドレス:00000041H 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 初期値 00000000B [R/W] bit ELVR0 アドレス:00000042H 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 初期値 00000000B [R/W] bit ELVR0 アドレス:00000043H 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 初期値 00000000B [R/W] ■ 外部割込み制御部のブロックダイヤグラム 図 6.1-2 に外部割込みのブロックダイヤグラムを示します。 図 6.1-2 外部割込み制御部のブロックダイヤグラム R-bus 16 割込み要求 16 16 16 150 割込み許可レジスタ ゲート 要因 F/F 割込み要因レジスタ 要求レベル設定レジスタ エッジ検出回路 8 INT0~ INT7 第 6 章 外部割込み制御部 6.2 外部割込み制御部のレジスタ 外部割込み制御部のレジスタ構成および機能について説明します。 ■ 外部割込み制御部のレジスタ詳細 外部割込み制御部のレジスタには , 以下の 3 種類があります。 • 割込み許可レジスタ (ENIR : ENable Interrupt request Register) • 外部割込み要因レジスタ (EIRR : External Interrupt Request Register) • 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) 151 第 6 章 外部割込み制御部 6.2.1 割込み許可レジスタ (ENIR : ENable Interrupt request Register) 割込み許可レジスタ (ENIR) のビット構成と機能を説明します。 ■ 外部割込み要因レジスタ (ENIR : ENable Interrupt request Register) 図 6.2-1 割込み許可レジスタ (ENIR) のビット構成 bit ENIR0 アドレス:00000041H 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 初期値 00000000B [R/W] このレジスタの "1" が書かれたビットに対応する割込み要求出力は許可され (INT0 の 許可を EN0 が制御 ), 割込みコントローラに対して要求が出力されます。"0" が書かれ たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して は要求を発生しません。 152 第 6 章 外部割込み制御部 6.2.2 外部割込み要因レジスタ (EIRR : External Interrupt Request Register) 外部割込み要因レジスタ (EIRR) のビット構成と機能を説明します。 ■ 割込み許可レジスタ (EIRR : External Interrupt Request Register) 図 6.2-2 外部割込み要因レジスタ (EIRR) のビット構成 bit EIRR0 アドレス:00000040H 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 初期値 00000000B [R/W] この EIRR レジスタを読み出したときに "1" であった場合 , そのビットに対応する端子 に外部割込み要求があることを示します。 また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク リアされます。 "1" の書込みは無効です。 リードモディファイライト (RMW) 系命令の読出し時には "1" が読み出されます。 153 第 6 章 外部割込み制御部 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) 6.2.3 外部割込み要求レベル設定レジスタ (ELVR) のビット構成と機能を説明します。 ■ 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) 図 6.2-3 外部割込み要求レベル設定レジスタ (ELVR) のビット構成 bit ELVR0 アドレス:00000042H 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 初期値 00000000B [R/W] bit ELVR0 アドレス:00000043H 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 初期値 00000000B [R/W] INT0 ∼ INT7 に外部割込み要求レベルが 2 ビットずつ割り当てられていて , 表 6.2-1 の ような設定になります。要求入力がレベル設定の場合 , EIRR の各ビットをクリアして も入力がアクティブレベルならば該当するビットは再びセットされます。 ストップ状態からの復帰に使用する場合は , "H" レベルまたは "L" レベル要求に設定し てください。 表 6.2-1 ELVR 割当て表 LBx LAx 0 0 "L" レベルで要求あり 0 1 "H" レベルで要求あり 1 0 立上りエッジで要求あり 1 1 立下りエッジで要求あり 動 作 <注意事項> 外部割込み要求レベルを変更すると , 内部で割込み要因が発生する場合がありますので , 外部割込み要求レベル変更後に外部割込み要因レジスタ (EIRR) をクリアしてください。 外部割込み要因レジスタをクリアする際は一度 , 外部割込み要求レベルレジスタを読み出 してからクリアの書込みを行ってください。 154 第 6 章 外部割込み制御部 6.3 外部割込み制御の動作 外部割込みの動作について説明します。 ■ 外部割込みの動作 要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要 求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を発 生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本 リソースからの割込みが最も優先順位が高かったときに該当する割込みが発生しま す。 図 6.3-1 外部割込みの動作 外部割込み 割込みコントローラ CPU リソース 要求 ELVR EIRR ENIR IL ICR yy CMP ICR xx CMP ILM 要因 ■ スタンバイからの復帰 クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要 求を "H" レベルまたは "L" レベル要求に設定してください。 エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。 使用しないチャネルは , スタンバイに入る前に , 必ずディセーブル状態にしてくださ い。 ■ 外部割込みの動作手順 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2) 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。 3) 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。 4) 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。 5) 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアにする。 6) 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。 ただし , 5) と 6) は 16 ビットデータによる同時書込みが可能です。 本モジュール内のレジスタを設定するときには必ず割込み許可レジスタを禁止状態に 設定しておかなくてはなりません。また , 割込み許可レジスタを禁止状態にする前に必 ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許 可状態時に誤って割込み要因が起こってしまうことを避けるためです。 155 第 6 章 外部割込み制御部 ■ 外部割込み要求レベル • 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス 幅は最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。 • 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要としま す。また割込み入力端子がアクティブレベルを保持し続けている限りは , 外部割込 み要因レジスタをクリアしても , 割込みコントローラへの割込み要求は発生し続け ます。 • 要求入力レベルがレベル設定のとき , 外部より要求入力が入ってその後 , 取り下げ られても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアク ティブのままです。 割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要が あります。 図 6.3-2 レベル設定時の要因保持回路のクリア 割込み入力 レベル検出 要因 F/F (要因保持回路) 許可ゲート 割込み コントローラ クリアしない限り要因を保持し続ける 図 6.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求 "H"レベル 割込み入力 割込みコントローラ への割込み要求 要因 F/Fのクリアによってインアクティブとなる <注意事項> • 割込み入力は , 最小 3 マシンサイクル必要です。 • STOP 時に外部端子を STCR スタンバイ制御レジスタ bit5 の HIZ ビットに "1" を設定 して端子出力をハイインピーダンスにしたとき , INT0 ∼ INT5 は PFR0 ポート機能レ ジスタの bit5 ∼ bit0 に "0" を設定することで , また INT6, INT7 は PFR7 ポート機能レ ジスタの bit0, bit2 に "1" を設定することで入力可能にできます。 156 第 6 章 外部割込み制御部 ■ 外部割込みを使用した STOP 状態からの復帰時における注意事項 STOP 状態時に , INT 端子へ最初に入力された外部割込み信号は非同期で入力され , STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち 時間が経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない 期間が存在します ( 図 6.3-4 の b+c+d 期間 )。STOP 解除後の外部入力信号を内部クロッ クに同期させるため , クロックが安定していない期間内は , その割込み要因を保持でき ないためです。 そのため , STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に 外部割込み信号を入力してください。 図 6.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) 発振安定待ち時間 (e)RUN (c)振動子の発振時間 157 第 6 章 外部割込み制御部 ■ STOP 状態からの復帰動作 現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。 ● STOP 遷移前の処理 外部割込みの設定 デバイスが STOP 状態に遷移する前に STOP 状態時の割込み入力パスを許可する必 要があります。これは PFR レジスタ (Port Function Register) で設定を行います。通 常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態ですので意識する必要 はありません。しかし ,STOP 状態では PFR レジスタ値により入力パスが制御され ています。 端子名 外部割込みによる STOP 状態からの復帰時の設定 P70/(RX1)/INT7 PFR7 の bit2 を "1" としてください。 P72/(RX0)/INT6 PFR7 の bit0 を "1" としてください。 P05/SEG29/INT5/D05 PFR0 の bit5 を "0" としてください。 P04/SEG28/INT4/D04 PFR0 の bit4 を "0" としてください。 P03/SEG27/INT3/D03 PFR0 の bit3 を "0" としてください。 P02/SEG26/INT2/D02 PFR0 の bit2 を "0" としてください。 P01/SEG25/INT1/D01 PFR0 の bit1 を "0" としてください。 P00/SEG24/INT0/D00 PFR0 の bit0 を "0" としてください。 外部割込みの入力 STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状 態となっています。この割込み入力がアサートされると直ちに内部 STOP 信号を立 ち下げる動作が行われます。同時に外部割込み回路では , ほかのレベル割込み入力 の同期化を行うように切り換わります。 ● レギュレータ安定待ち時間 内部 STOP 信号が立ち下ると STOP 時のレギュレータから RUN 時のレギュレータ へ切り換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前 に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間 として , 約 12μs のレギュレータの安定待ち時間を確保しています。この期間はク ロックが停止しています。 ● 振動子の発振時間 レギュレータ安定待ち時間の終了後 , クロックの発振が開始されます。振動子の発 振時間は使用される振動子により異なります。 ● 発振安定待ち時間 振動子の発振時間後にデバイス内部で発振安定待ち時間が確保されます。発振安定 待ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安 定待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が 開始されるとともに , STOP 状態からの復帰要因以外の外部割込み要因が受付け可 能になります。 158 第7章 REALOS 関連ハード REALOS 関連ハードは , リアルタイム OS により 使用されます。したがって , REALOS を使用する 場合にはユーザプログラムで使用することはでき ません。 遅延割込みモジュールおよびビットサーチモ ジュールの概要 , レジスタ構成および機能 , 動作に ついて説明します。 7.1 遅延割込みモジュール 7.2 ビットサーチモジュール 159 第 7 章 REALOS 関連ハード 遅延割込みモジュール 7.1 遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで す。 本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取消しを行うことができます。 ■ レジスタ一覧 DICR bit アドレス: 00000044H 7 6 5 4 3 2 1 0 − − − − − − − DLYI -------0B [R/W] ■ ブロックダイヤグラム 図 7.1-1 ブロックダイヤグラム R-bus DLYI 割込み要求 160 第 7 章 REALOS 関連ハード ■ レジスタ詳細説明 ● DICR(Delayed Interrupt Control Register) bit 7 アドレス: 00000044H − 6 − 5 − 4 − 3 − 2 − 1 0 − DLYI 初期値 -------0B [R/W] 遅延割込みを制御するレジスタです。 [bit0] DLYI DLYI 説 明 0 遅延割込み要因の解除・要求なし〔初期値〕 1 遅延割込み要因の発生 本ビットにより , 該当する割込み要因の発生・解除を制御します。 ■ 動作説明 遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用することに より , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことができます。 ● 割込み番号 遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。 本品種では , 遅延割込みを割込み番号 63(3FH) に割り当てています。 ● DICR の DLYI ビット このビットに "1" を書き込むことで遅延割込み要因が発生します。また , "0" を書き込 むことで遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアし , 併せてタスクの切換えを行うようにしてください。 161 第 7 章 REALOS 関連ハード 7.2 ビットサーチモジュール 入力レジスタに書き込まれたデータに対して "0", "1" または変化点を検索し , 検出 したビット位置を返します。 ■ レジスタ一覧 bit 31 0 アドレス:000003F0H BSD0 0 検出用データレジスタ アドレス:000003F4H BSD1 1 検出用データレジスタ アドレス:000003F8H BSDC 変化点検出用データレジスタ アドレス:000003FCH BSRR 検出結果レジスタ ■ ブロックダイヤグラム 図 7.2-1 ブロックダイヤグラム D-bus 入力ラッチ アドレスデコーダ 検出モード 1検出データ化 ビットサーチ回路 検索結果 162 第 7 章 REALOS 関連ハード ■ レジスタ詳細説明 ● 0 検出用データレジスタ (BSD0) bit 31 0 000003F0H リード / ライト→ ライトオンリ 初期値→ 不定 書き込んだ値に対して , 0 検出を行います。 リセットによる初期値は不定です。読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット /16 ビット長のデータ転送命令は使わないでください )。 ● 1 検出用データレジスタ (BSD1) bit 31 0 000003F4H リード / ライト→ リード / ライト可能 初期値→ 不定 データ転送には 32 ビット長のデータ転送命令を使用してください (8 ビット /16 ビット長のデータ転送命令は使わないでください )。 • 書込み時 書き込んだ値に対して , 1 検出します。 • 読出し時 ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する ときに使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー タレジスタのみ操作することで退避・復帰できます。 リセットによる初期値は不定です。 163 第 7 章 REALOS 関連ハード ● 変化点検出用データレジスタ (BSDC) bit 31 0 000003F8H リード / ライト→ ライトオンリ 初期値→ 不定 書き込んだ値に対して , 変化点の検出を行います。 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には 32 ビット長のデータ転送命令を使用してください (8 ビット /16 ビット長のデータ転送命令は使わないでください )。 ● 検出結果レジスタ (BSRR) bit 31 0 000003FCH リード / ライト→ リードオンリ 初期値→ 不定 0 検出 , 1 検出 , または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ れます。 164 第 7 章 REALOS 関連ハード ■ 動作説明 ● 0 検出 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 表 7.2-1 に検出した位置と返す数値の関係を示します。 "0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値をサーチ 結果として返します。 [ 実行例 ] 書込みデータ 読出し値 (10 進 ) 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 ● 1 検出 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 表 7.2-1 に検出した位置と返す数値の関係を示します。 "1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値をサーチ 結果として返します。 [ 実行例 ] 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 165 第 7 章 REALOS 関連ハード ● 変化点検出 変化点検出用データレジスタに書き込まれたデータを bit30 から LSB へスキャンし , MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 表 7.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 表 7.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 166 第 7 章 REALOS 関連ハード ■ 退避・復帰の処理 割込みハンドラ中でビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ い。 ① 1 検出用データレジスタを読み出し , この内容を保存する ( 退避 ) ② ビットサーチモジュールを使用 ③ ①で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 ) 以上の操作により, 次に検出結果レジスタを読み出したときに得られる値は, ①以前に ビットサーチモジュールに書き込まれた内容に応じたものとなります。最後に書き込 まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく元 に戻ります。 167 第 7 章 REALOS 関連ハード 168 第8章 16 ビットリロードタイマ 16 ビットリロードタイマの概要 , レジスタの構成 / 機能およびリロードタイマの動作について説明し ます。 8.1 16 ビットリロードタイマの概要 8.2 ブロックダイヤグラム 8.3 16 ビットリロードタイマのレジスタ 8.4 リロードタイマの動作 169 第 8 章 16 ビットリロードタイマ 8.1 16 ビットリロードタイマの概要 16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ スタ , 内部カウントクロック作成用プリスケーラおよびコントロールレジスタで構 成されています。 クロックソースとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周を選択可 能 ) と 外部トリガから選択できます。 ■ リロードタイマのレジスタ一覧 図 8.1-1 16 ビットリロードタイマのレジスタ一覧 コントロールステータス レジスタ (TMCSR) bit 15 14 アドレス ch.0 0000004EH ch.1 00000056H 13 12 11 10 9 8 − − − − CSL1 CSL0 MOD2 MOD1 7 6 5 4 3 2 1 0 MOD0 − OUTL RELD INTE UF CNTE TRG ch.2 0000005EH bit 16 ビットタイマレジスタ (TMR) bit アドレス ch.0 0000004AH ch.1 00000052H 15 0 ch.2 0000005AH 16 ビットリロードレジスタ (TMRLR) bit 15 アドレス ch.0 00000048H ch.1 00000050H ch.2 00000058H 170 0 第 8 章 16 ビットリロードタイマ ブロックダイヤグラム 8.2 リロードタイマのブロックダイヤグラムを示します。 図 8.2-1 リロードタイマのブロックダイヤグラム 16ビットリロードレジスタ (TMRLR) リロード RELD OUTL INTE UF CNTE TRG 16ビットタイマレジスタ(TMR) R-bus UF OUT CTL カウント イネーブル クロック セレクタ CSL1 CSL0 EXCK プリスケーラ IRQ 外部タイマ 出力 IN CTL プリスケーラ クリア CSL1 CSL0 該当PFRビット 外部トリガ 選択 外部トリガ入力 171 第 8 章 16 ビットリロードタイマ 8.3 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタについて説明します。 ■ コントロールステータスレジスタ (TMCSR) 図 8.3-1 コントロールステータスレジスタ (TMCSR) コントロールステータス レジスタ (TMCSR) bit 15 14 アドレス ch.0 0000004EH − − ch.1 00000056H ch.2 0000005EH リード / ライト 13 12 11 10 9 8 − − CSL1 CSL0 MOD2 MOD1 − 0 − 0 − 0 R/W R/W R/W R/W 初期値 − 0 0 0 0 0 bit 7 6 5 4 3 2 1 0 MOD0 − OUTL RELD INTE UF CNTE TRG R/W − 0 R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 リード / ライト 初期値 0 R/W : リード / ライト可能 16 ビットタイマの動作モードおよび割込みの制御を行います。 UF, CNTE, TRG ビット以外の書換えは , CNTE=0 のときに行うようにしてください。 [bit15 ∼ bit12] 未使用ビット 常に "0" が読み出されます。 [bit11, bit10] CSL1, CSL0 (Count source select) カウントソースセレクトビットです。カウントソースは内部クロックと外部イベン トを選択できます。選択可能なカウントソースは以下のとおりです。 カウントソース (φ: マシンクロック ) φ=32MHz φ=16MHz 内部クロック φ/21 ( 初期値 ) 62.5ns 125ns 1 内部クロック φ/23 250ns 0.5μs 1 0 内部クロック φ/25 1.0μs 2.0μs 1 1 外部イベント − − CSL1 CSL0 0 0 0 表に記載されていない設定は禁止です。 外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1, MOD0 ビットにより設定されます。 外部クロックに必要な最小パルス幅は 2 × T (T: マシンクロックサイクル ) です。 172 第 8 章 16 ビットリロードタイマ [bit9 ∼ bit7] MOD2 ∼ MOD0 (Mode) 動作モードを選択するビットです。カウントソースが「内部クロック」の場合と 「外部クロック」の場合で機能が変わります。 • 内部クロックモードのとき:リロードトリガ設定 • 外部クロックモードのとき:カウント有効エッジの設定 また , MOD2 は必ず "0" に設定してください。 [ 内部クロック選択時のリロードトリガ設定 ] カウントソースとして , 内部クロックが選択されている場合は MOD2 ∼ MOD0 ビッ トの設定により有効エッジが入力されるとリロードレジスタの内容をロードして カウント動作を継続します。 MOD2 MOD1 MOD0 0 0 0 ソフトウェアトリガ ( 初期値 ) 0 0 1 外部トリガ ( 立上りエッジ ) 0 1 0 外部トリガ ( 立下りエッジ ) 0 1 1 外部トリガ ( 両エッジ ) 1 X X 設定禁止 有効エッジ X : 不定 [ 外部クロック選択時の有効エッジ設定 ] カウントソースとして , 外部クロックイベントが設定されている場合は MOD2 ∼ MOD0 ビットの設定により有効エッジが入力されるとイベントをカウントします。 MOD2 MOD1 MOD0 有効エッジ X 0 0 − X 0 1 外部トリガ ( 立上りエッジ ) X 1 0 外部トリガ ( 立下りエッジ ) X 1 1 外部トリガ ( 両エッジ ) X X X 設定禁止 X : 不定 外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生します。 [bit6] 未使用ビット 常に "0" が読み出されます。 173 第 8 章 16 ビットリロードタイマ [bit5] OUTL 外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと "1" のとき では出力レベルが逆になります。 [bit4] RELD リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が "0000H" → "FFFFH" へのアンダフローと同時にリロードレジスタの内容をカウンタへロードしてカ ウント動作を続けます。 "0" のときワンショットモードになり , カウンタの値が "0000H" → "FFFFH" へのアン ダフローによりカウント動作を停止します。 PFR/EPFR OUTL RELD 0 X X 出力禁止 1 0 0 カウント中 "H" の矩形波 1 1 0 カウント中 "L" の矩形波 1 0 1 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 X : 不定 PFR/EPFR は , 該当する PFR/EPFR レジスタ内ビットの値を示します。 [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 の ときには何も起こりません。 174 第 8 章 16 ビットリロードタイマ ■ 16 ビットタイマレジスタ (TMR) 図 8.3-2 16 ビットタイマレジスタ (TMR) 16 ビットタイマレジスタ (TMR) bit アドレス ch.0 0000004AH ch.1 00000052H 15 14 13 12 11 10 9 8 ch.2 0000005AH リード / ライト R R R R R R R R 初期値 X X X X X X X X bit 7 6 5 4 3 2 1 0 リード / ライト R R R R R R R R 初期値 X X X X X X X X R X : リードオンリ : 不定 16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で す。 本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。 ■ 16 ビットリロードレジスタ (TMRLR) 図 8.3-3 16 ビットリロードレジスタ (TMRLR) 16 ビットリロードレジスタ(TMRLR) bit 15 アドレス ch.0 00000048H ch.1 00000050H 14 13 12 11 10 9 8 ch.2 00000058H リード / ライト W W W W W W W W 初期値 X X X X X X X X bit 7 6 5 4 3 2 1 0 リード / ライト W W W W W W W W 初期値 X X X X X X X X W X : ライトオンリ : 不定 本レジスタは , カウントの初期値を保持しておくためのレジスタです。初期値は不定で す。 本レジスタの書込みは必ず 16 ビットデータ転送命令で行ってください。 175 第 8 章 16 ビットリロードタイマ 8.4 リロードタイマの動作 リロードタイマの以下の動作について説明します。 • 内部クロック動作 • アンダフロー動作 ■ 内部クロック動作 内部クロックの分周クロックでタイマを動作させる場合 , カウントソースとしてマシ ンクロックの 2・8・32 分周のクロックから選択することができます。 カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。 TRG ビットによるトリガ入力は , タイマが起動状態 (CNTE = 1) のとき動作モードにか かかわらず常に有効です。 カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに T( 周辺系クロックマシンサイクル ) の時間がかかります。 図 8.4-1 カウンタの起動および動作 カウントクロック カウンタ リロードデータ -1 -1 -1 データロード CNTE(レジスタ) TRG(レジスタ) T ■ アンダフロー動作 カウンタの値が "0000H" から "FFFFH" になるときをアンダフローとしています。 したがっ て , 〔リロードレジスタの設定値+ 1〕カウントでアンダフローが発生します。 アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の ときカウンタは , "FFFFH" で停止します。 図 8.4-2 アンダフロー動作 カウントクロック カウンタ 0000H リロードデータ データロード アンダフローセット [RELD=1] カウントクロック カウンタ 0000H アンダフローセット [RELD=0] 176 FFFFH -1 -1 -1 第 8 章 16 ビットリロードタイマ ■ 出力端子機能 TOT0 ∼ TOT2 出力端子は , リロードモード時はアンダフローにより反転するトグル出 力として , ワンショットモード時はカウント中を示すパルス出力として機能します。出 力極性はレジスタの OUTL ビットにより設定できます。OUTL=0 のとき , トグル出力 は初期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 にすると出力波形は反転します。 図 8.4-3 出力端子機能 [RELD=1, OUTL=0] カウント開始 アンダフロー OUTL=1のときは反転 TOT0~TOT2 汎用ポート CNTE 起動トリガ 図 8.4-4 出力端子機能 [RELD=0, OUTL=0] カウント開始 アンダフロー TOT0~TOT2 OUTL=1で反転 汎用ポート CNTE 起動トリガ 起動トリガ待ち状態 177 第 8 章 16 ビットリロードタイマ ■ カウンタの動作状態 カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に よって決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ), CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE=1, WAIT=0 の動作状態 (RUN 状態 ) があります。 図 8.4-5 カウンタ状態遷移 ハードウェアによる状態遷移 リセット レジスタアクセスによる状態遷移 STOP CNTE=0,WAIT=1 カウンタ:停止時の値を保持 リセット直後は不定 CNTE=1 TRG=1 CNTE=1 TRG=0 RUN CNTE=1,WAIT=0 W AIT CNTE=1,WAIT=1 カウンタ:停止時の値を保持 リセット直後ロードするま では不定 RELD・UF TRG=1 カウンタ:動作 TRG=1 LOAD CNTE=1,WAIT=0 リロードレジスタの内 容をカウンタへロード RELD・UF ロード終了 ■ その他 リロードタイマの ch.2 の TOT2 出力は , LSI 内部で A/D コンバータに接続されていま す。したがって , リロードレジスタに設定された周期で A/D 変換を起動することがで きます。 ■ 注意事項 • 内部プリスケーラは , コントロールステータスレジスタの bit1( タイマ許可 :CNTE) が "1" に設定されている状態でトリガ ( ソフトウェアトリガあるいは外部トリガ ) がか けられることにより動作可能になります。 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ グセットが優先し , クリア動作は無効になります。 • 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった 場合には , 旧データがカウンタにロードされ , 新データがカウンタにロードされる のは次のリロードのタイミングとなります。 • 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には , ロー ド ( リロード ) 動作が優先されます。 178 第9章 PPG PPG の概要 , レジスタの構成 , 機能および PPG の 動作について説明します。 9.1 PPG の概要 9.2 PPG のブロックダイヤグラム 9.3 PPG のレジスタ 9.4 PPG の動作説明 179 第 9 章 PPG 9.1 PPG の概要 PPG は , 8 ビットのリロードタイマモジュールで , タイマ動作に応じたパルス出力制 御により , PPG 出力を行います。 ハードウェアとして , 8 ビットダウンカウンタ 8 個 , 8 ビットリロードレジスタ 16 個 , 制御レジスタ , 外部パルス出力 8 本 , 割込み出力 4 本を有します。 MB91245/S シリーズは , 8 ビット PPG として 8 チャネル分 , 16 ビット PPG として 4 チャネル分搭載しています。 ■ PPG の機能 • 8 ビット PPG 出力独立動作モード 8 チャネルの独立した PPG 出力動作が可能です。 ( 注意事項 ) 本品種で LCDC を使用する場合は , 奇数チャネルの出力 (PPG1, PPG3, PPG5, PPG7) は使用することができません。 • 16 ビット PPG 出力動作モード 4 チャネルの 16 ビットの PPG 出力動作が可能です。 • 8+8 ビット PPG 出力動作モード ch.(n+1) の出力を ch.(n) のクロック入力とすることにより , 任意周期の 8 ビット PPG 出力動作が可能です (n=0, 2, 4, 6)。 • 16+16 ビット PPG 出力動作モード ch.(n+3)+ch.(n+2) の 16 ビットプリスケーラ出力を ch.(n+1)+ch.(n) の 16 ビット PPG のクロック入力とするモードです (n=0, 4)。 • PPG 出力動作 任意周期・デューティ比のパルス波を出力します。 外付け回路により , D/A コンバータとしても使用可能です。 • 出力反転機能 PPG の出力値を反転させることが可能です。 180 第 9 章 PPG ■ PPG のレジスタ一覧 図 9.1-1 PPG のレジスタ一覧 PPG 起動レジスタ (TRG) bit アドレス 0001B1H 7 6 5 4 2 1 0 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 リード / ライト 初期値 出力反転レジスタ (REVC) bit アドレス 0001B3H R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00 リード / ライト 初期値 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 3 2 1 0 PPG0 ∼ PPG7 動作モード制御レジスタ (PPGC0 ∼ PPGC7) bit 7 6 5 4 アドレス ch.0 0001BCH ch.1 0001BDH ch.2 0001BEH ch.3 0001BFH ch.4 0001C8H ch.5 0001C9H ch.6 0001CAH ch.7 0001CBH 3 リード / ライト 初期値 PIEn PUFn INTMn PCS1 PCS0 MD1 * MD0 * - R/W R/W R/W R/W R/W R/W R/W - 0 0 0 0 0 0 0 X n=0∼7 *:MD1, MD0 は , 偶数チャネルのみ存在し , 奇数チャネルには存在し ません。奇数チャネルの初期値は不定です。書込みは意味があり ません。 R/W : リード / ライト可能 X : 不定 181 第 9 章 PPG ● リロードレジスタ : 8 ビット PPG モード リロードレジスタ H (PRLH0 ∼ PRLH7) bit 15 14 アドレス ch.0 0001B4H ch.1 0001B6H リード / R/W R/W ch.2 0001B8H ライト ch.3 0001BAH X X 初期値 ch.4 0001C0H ch.5 0001C2H ch.6 0001C4H ch.7 0001C6H リロードレジスタ L (PRLL0 ∼ PRLL7) bit 7 6 アドレス ch.0 0001B5H ch.1 0001B7H リード / R/W R/W ch.2 0001B9H ライト ch.3 0001BBH X X 初期値 ch.4 0001C1H ch.5 0001C3H ch.6 0001C5H ch.7 0001C7H R/W : リード / ライト可能 X : 不定 182 13 12 11 10 9 8 R/W R/W R/W R/W R/W R/W X X X X X X 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W X X X X X X 第 9 章 PPG ● リロードレジスタ : 16 ビット PPG モード リロードレジスタ H (PRLH0, PRLH2, PRLH4, PRLH6) bit 15 14 13 アドレス ch.0 0001B4H ch.2 0001B8H リード / R/W R/W R/W ch.4 0001C0H ライト ch.6 0001C4H X X X 初期値 bit リード / ライト 初期値 リード / ライト 初期値 11 10 9 8 R/W R/W R/W R/W R/W X X X X X 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X 12 11 10 9 8 R/W R/W R/W R/W R/W X X X X X リロードレジスタ L (PRLL0, PRLL2, PRLL4, PRLL6) bit 15 14 13 アドレス ch.0 0001B6H ch.2 0001BAH リード / R/W R/W R/W ch.4 0001C2H ライト ch.6 0001C6H X X X 初期値 bit 12 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X R/W : リード / ライト可能 X : 不定 183 第 9 章 PPG 9.2 PPG のブロックダイヤグラム PPG のブロックダイヤグラムを示します。 ■ 8 ビット PPG ch.0, ch.2, ch.4, ch.6 のブロックダイヤグラム 図 9.2-1 8 ビット PPG ch.0, ch.2, ch.4, ch.6 のブロックダイヤグラム ch.(n+1)のボロー マシンクロックの64分周 マシンクロックの16分周 マシンクロックの4分周 マシンクロック ポートへ PPG 出力ラッチ 反転 クリア PEN(n+1) カウントクロック 選択 S R Q PCNT(ダウンカウンタ) リロード "H"/"L"セレクト "H"/"L"セレクタ PRLLn PIEn PRLHn PUFn "L"側データバス "H"側データバス PPGCn / TRG n = 0,2,4,6 184 動作モード (制御) IRQn 第 9 章 PPG ■ 8 ビット PPG ch.1, ch.5 のブロックダイヤグラム 図 9.2-2 8 ビット PPG ch.1, ch.5 のブロックダイヤグラム ch.(n+1)のボロー マシンクロックの64分周 マシンクロックの16分周 マシンクロックの4分周 マシンクロック ポートへ PPG 出力ラッチ 反転 クリア PENn S R Q カウントクロック 選択 IRQn PCNT(ダウンカウンタ) ch.(n-1) のボロー リロード "H"/"L"セレクト "H"/"L"セレクタ PUFn PRLLn PIEn PRLHn "L"側データバス "H"側データバス PPGCn / TRG n = 1,5 動作モード (制御) 185 第 9 章 PPG ■ 8 ビット PPG ch.3, ch.7 のブロックダイヤグラム ポートへ マシンクロックの64分周 マシンクロックの16分周 マシンクロックの4分周 マシンクロック PPG 出力ラッチ 反転 クリア PENn S R Q カウントクロック 選択 IRQn PCNT(ダウンカウンタ) ch.(n-1) のボロー リロード "H"/"L"セレクト "H"/"L"セレクタ PUFn PRLLn PIEn PRLHn "L"側データバス "H"側データバス PPGCn / TRG n = 3,7 186 動作モード (制御) 第 9 章 PPG 9.3 PPG のレジスタ PPG のレジスタの詳細を説明します。 ■ PPGCn レジスタ (PPGn 動作モード制御レジスタ ) n=0, 1, 2, 3, 4, 5, 6, 7 PPG0 ∼ PPG7 動作モード制御レジスタ (PPGC0 ∼ PPGC7) bit 7 6 5 4 アドレス ch.0 0001BCH PIEn PUFn INTMn PCS1 ch.1 0001BDH リード / ch.2 0001BEH R/W R/W R/W R/W ライト ch.3 0001BFH 0 0 0 0 初期値 ch.4 0001C8H 3 2 1 0 PCS0 MD1 * MD0 * - R/W R/W R/W - 0 0 0 X n=0∼7 ch.5 0001C9H ch.6 0001CAH ch.7 0001CBH *:MD1, MD0 は , 偶数チャネルのみ存在し , 奇数チャネルには存在しませ ん。奇数チャネルの初期値は不定です。書込みは意味がありません。 R/W : リード / ライト可能 X : 不定 [bit7] PIEn(Ppg Interrupt Enable):PPG 割込み許可ビット PPG の割込み許可を以下のように制御します。 0 割込み禁止 1 割込み許可 • 本ビットが "1" のとき , PUFn が "1" になると割込み要求が発生します。 • 本ビットが "0" のときは , 割込み要求を発生しません。 • リセットにより , "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit6] PUFn(Ppg Underflow Flag):PPG カウンタアンダフロービット PPG カウンタアンダフロービットを以下のように制御します。 0 PPG のカウンタアンダフローを検出していません 1 PPG のカウンタアンダフローを検出しました • 8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ+ 8 ビット PPG モー ド時には , ch.0 のカウント値が "00H" から "FFH" になったときのアンダフローに より "1" にセットされます。 • 16 ビット PPG 1 チャネルモード時には , ch.1/ch.0 のカウント値が "0000H" から "FFFFH" になったときのアンダフローにより "1" にセットされます。 • "0" 書込みにより , "0" になります。 187 第 9 章 PPG • このビットへの "1" 書込みは意味がありません。 • リードモディファイライト (RMW) 系命令での読出し時は , "1" が読まれます。 • リセットにより , "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit5] INTMn(Interrupt Mode):割込みモードビット PUFn のビットの検出を PRLHn からのアンダフロー時のみに限定することができま す。 0 アンダフロー時 , PUFn を "1" にする 1 PRLHn からのアンダフロー時のみ , PUFn を "1" にする • リセットにより , "0" に初期化されます。 • 読出しおよび書込みが可能です。 • 本ビットを "1" にすると , PPG の波形の一周期出力時に割込みをかけることが可 能となります。 • 本ビットは , 割込み許可時に書き換えないでください。 [bit4, bit3] PCS1/PCS0(Ppg Count Select):カウントクロック選択ビット ダウンカウンタの動作クロックを以下のように選択します。 PCS1 PCS0 0 0 マシンクロック 0 1 マシンクロック /4 (250ns マシンクロック 16MHz 時 ) 1 0 マシンクロック /16 ( 1μs マシンクロック 16MHz 時 ) 1 1 マシンクロック /64 ( 4μs マシンクロック 16MHz 時 ) 動作モード (62.5ns マシンクロック 16MHz 時 ) • リセットにより , "00B" に初期化されます。 • 読出しおよび書込みが可能です。 [bit2, bit1] MD1/MD0(ppg count MoDe):動作モード選択ビット PPG タイマの動作モードを以下のように選択します。 MD1 MD0 0 0 8 ビット PPG 2 チャネル独立モード 0 1 8 ビットプリスケーラ+ 8 ビット PPG モード 1 0 16 ビット PPG モード 1 1 16 ビットプリスケーラ+ 16 ビット PPG モード 動作モード • リセットにより , "00B" に初期化されます。 • 読出しおよび書込みが可能です。 • 188 本ビットは偶数チャネルのみに存在します。 第 9 章 PPG [bit0] reserved bit 予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。 読出し値は不定です。 ■ PRLL/PRLH レジスタ ( リロードレジスタ : PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7) ) リロードレジスタ H (PRLH0 ∼ PRLH7) bit 15 14 アドレス ch.0 0001B4H ch.1 0001B6H リード / R/W R/W ch.2 0001B8H ライト ch.3 0001BAH X X 初期値 ch.4 0001C0H ch.5 0001C2H ch.6 0001C4H ch.7 0001C6H リロードレジスタ L (PRLL0 ∼ PRLL7) bit 7 6 アドレス ch.0 0001B5H ch.1 0001B7H リード / R/W R/W ch.2 0001B9H ライト ch.3 0001BBH X X 初期値 ch.4 0001C1H ch.5 0001C3H ch.6 0001C5H ch.7 0001C7H 13 12 11 10 9 8 R/W R/W R/W R/W R/W R/W X X X X X X 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W X X X X X X R/W : リード / ライト可能 X : 不定 ダウンカウンタ PCNT へのリロード値を保持するレジスタです。それぞれ , 以下に示 す役割を持っています。 レジスタ名 機能 PRLL "L" 側リロード値保持 PRLH "H" 側リロード値保持 どのレジスタも , 読出しおよび書込みが可能です。 189 第 9 章 PPG <注意事項> 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードで使用する場合には , プリスケーラ側の PRLL と PRLH に異なる値を設定す ると, PPG波形がサイクルごとに異なる場合があるので, プリスケーラ側のPRLLとPRLH は , 同じ値に設定することを推奨します。 16 ビット PPG で使われる場合は , 例えば , ch.0 + ch.1 の使用する場合のリロードアドレス の "H" 側アドレスは , 1B4H + 1B5H, "L" 側アドレスは 1B6H + 1B7H になります。よって "H" カウント値 = 1234H, "L" カウント値 = 5678H の場合は , 1B4H: 00010010B 1B5H: 00110100B 1B6H: 01010110B 1B7H: 01111000B になります。 ■ PPG 起動レジスタ (TRG) PPG 起動レジスタ (TRG) bit アドレス 0001B1H 7 6 5 4 3 2 1 0 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 リード / ライト 初期値 R/W : リード / ライト可能 [bit7 ∼ bit0] PEN07 ∼ PEN00 (Ppg ENable):PPG 動作許可ビット PPG の動作開始および動作モードを以下のように選択します。 PEN07 ∼ PEN00 動作状態 0 動作停止 ("L" レベル出力保持 ) 1 PPG 動作許可 • リセットにより , "0" に初期化されます。 • 読出しおよび書込みが可能です。 • 16 ビット PPG で使用する場合は , 偶奇数両方の該当する PEN ビットを同じ設定 にする必要があります。レジスタ設定時に偶奇数同時に許可 / 停止をしてくださ い。 190 第 9 章 PPG ■ 出力反転レジスタ (REVC) 出力反転レジスタ (REVC) bit アドレス 0001B3H 7 6 5 4 3 2 1 0 REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 リード / ライト 初期値 R/W: リード / ライト可能 [bit7 ∼ bit0] REV07 ∼ REV00 :出力反転ビット PPG の出力値を初期レベルも含めて反転します。 REV07 ∼ REV00 出力レベル 0 通常 1 反転 • リセットにより , "0" に初期化されます。 • 読出しおよび書込みが可能です。 • 単に , PPG 出力を反転するだけですので , 初期レベルも反転します。 また , リロードレジスタの "L", "H" の関係も逆になります。 • 16 ビット PPG で使う場合は , PPG(m) と PPG(m+1) どちらの端子からも同じ波形 が出るので , 使われる端子の REVXX を設定するだけで使用可能です。両方同じ 設定を行っても問題ありません。 191 第 9 章 PPG 9.4 PPG の動作説明 PPG には 8 ビット長の PPG ユニットが 8 チャネルあり , 独立モード以外に , 連結動 作させることにより , 8 ビットプリスケーラ+ 8 ビット PPG モードと 16 ビット PPG 1 チャネルモード , 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類 の動作を行うことができます。 8 ビット長の PPG ユニットそれぞれには , " L" 側と "H" 側の 2 本の 8 ビット長のリロー ドレジスタがあります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダ ウンカウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとに ダウンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値 を反転させます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した "L" 幅 /"H" 幅をもつパルス出力となります。 動作開始 / 再スタートは , レジスタのビット書込みによります。 リロード動作とパルス出力の関係を以下に示します。 リロード動作 端子出力変化 PRLH → PCNT PPGn [0 → 1] PRLL → PCNT PPGn [1 → 0] n=0∼7 また , PPGCn レジスタの bit7:PIEn が "1" のとき , カウンタの "00H" から "FFH" へのボ ロー (16 ビット PPG モードの場合には , "0000H" から "FFFFH" へのボロー ) によって割 込み要求が出力されます。 ● 動作モードについて 本ブロックは , 独立モード , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット PPG 1 チャネルモードと 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の 動作モードがあります。 • 独立モードは , 8 ビット PPG として独立に動作させる動作モードです。PPG(n) 端子 は , ch.(n) の PPG 出力が接続されます (n=0 ∼ 7)。 • 8 ビットプリスケーラ+ 8 ビット PPG モードは , 1 チャネルを 8 ビットプリスケー ラとして動作させ , そのボロー出力でカウントすることにより , 任意周期の 8 ビッ ト PPG 波形を出力できるようにする動作モードです。例えば , PPG1 端子は ch.1 の プリスケーラ出力が接続され , PPG0 端子は ch.0 の PPG 出力が接続されます。 • 16 ビット PPG 1 チャネルモードは , 2 つのチャネルを連結させ , 16 ビット PPG とし て動作させる動作モードです。例えば , ch.0 と ch.1 を連結させると PPG0 端子と PPG1 端子は , 両方とも 16 ビット PPG 出力が接続されます。 • 16 ビットプリスケーラ +16 ビット PPG モードは , 2 つのチャネルを連結させ , 16 ビット PPG とし , かつ残る 2 つのチャネルを連結させ , 16 ビットプリスケーラとし て起動させる動作モードです。 192 第 9 章 PPG ● PPG 出力動作について PPG は , TRG レジスタ (PPG 起動レジスタ ) の各チャネルのビットを "1" にセットする ことによって起動され , カウントを開始します。動作を開始した後は , TRG レジスタの 各チャネルビットに "0" を書き込むことによってカウント動作を停止し , 停止した後 , パルス出力は "L" レベルを保持します。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モード時には , プリスケーラチャネルを停止状態で , PPG チャネルを動作状態 に設定しないでください。 16 ビット PPG モード時には , 各チャネルの TRG レジスタの PENn をそれぞれ同時に開 始 / 停止の制御を行ってください (n=0 ∼ 7)。 以下に PPG 出力動作について説明します。 PPG 動作時は , 任意周波数 / 任意デューティ比 ( パルス波の "H" レベル期間と "L" レベ ル期間の比 ) のパルス波出力を連続して出力します。PPG はパルス波出力を開始する と , 動作停止を設定するまで停止しません。 図 9.4-1 PPG 出力動作 出力波形 PENn PENnにより 動作開始 ("L"側から) 出力端子 PPG T×(L+1) T×(H+1) スタート L:PRLLの値 H:PRLHの値 T:マシンクロック または タイマベースカウンタからの入力 (PPGCのクロックセレクトによる) n =0~15 ● リロード値とパルス幅の関係について リロードレジスタに書かれた値に "+1" した値に , カウントクロックの周期を掛けた値 が , 出力されるパルス幅となります。つまり , 8 ビット PPG 動作時のリロードレジスタ 値が "00H" のとき , および 16 ビット PPG 動作時のリロードレジスタ値が "0000H" のと きは, カウントクロック1周期分のパルス幅をもつことになりますので注意してくださ い。また , 8 ビット PPG 動作時のリロードレジスタ値が "FFH" のとき , カウントクロッ ク 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジスタ 値が "FFFFH" のときは , カウントクロック 65536 周期分のパルス幅をもつことになり ますので注意してください。 パルス幅の計算式を以下に示します。 Pl = T × (L + 1) Ph = T × (H + 1) { L : PRLL の値 H : PRLH の値 T : 入力クロック周期 Ph : "H" パルス幅 Pl : "L" パルス幅 193 第 9 章 PPG ● カウントクロックの選択について 本ブロックの動作に使用するカウントクロックは , 周辺クロックおよびタイムベース カウンタの入力を使用しており 4 種類のカウントクロック入力が選択できます。 カウントクロックは以下のように動作します。 PPGC0 ∼ PPGC7 レジスタ カウントクロック動作 PCS1 PCS0 0 0 カウントクロックは , 周辺クロックごとに 1 カウント 0 1 カウントクロックは , 周辺クロック 4 サイクルごとに 1 カウント 1 0 カウントクロックは , 周辺クロック 16 サイクルごとに 1 カウント 1 1 カウントクロックは , 周辺クロック 64 サイクルごとに 1 カウント ただし , 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モード時には , 先頭の PPG 以外の PPG の PPGC レジスタ中の bit4, bit3: PCS1, PCS0 の値は無効になります。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モードで , プリスケーラ側が動作状態で , PPG 側が停止状態であるときに , PPG 側の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意してくだ さい。 194 第 9 章 PPG ● パルスの端子出力の制御について 本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG0 ∼ PPG7 より出 力させることができます。 16 ビット PPG モードでは , PPG(m) と PPG(m+1) は同じ波形が出力されるので , どちら の外部端子出力を許可しても同じ出力を得ることができます (m = 0, 2, 4, 6)。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPGモードでは, プリスケーラ側は8ビットプリスケーラのトグル波形が出力され, PPG 側は 8 ビット PPG の波形が出力されます。このモードのときの出力波形の例を以下に 示します。 図 9.4-2 8 ビットプリスケーラ+ 8 ビット PPG 出力動作出力波形 Ph1 Pl1 PPG1 PPG0 Ph0 Pl0 L1 Pl1 = T x (L1 + 1) Ph1 = T x (L1 + 1) Pl0 = T x (L1 + 1) x (L0 + 1) Ph0 = T x (L1 + 1) x (H0 + 1) L0 H0 T Ph0 Pl0 Ph1 Pl1 :ch.1 の PRLL の値 および ch.1 の PRLH の値 :ch.0 の PRLL の値 :ch.0 の PRLH の値 :入力クロック周期 :PPG0 の "H" パルス幅 :PPG0 の "L" パルス幅 :PPG1 の "H" パルス幅 :PPG1 の "L" パルス幅 ( 注意事項 ) ch.1 の PRLL と ch.1 の PRLH は , 同じ値を設定することを推奨します。 ● 割込みについて 本モジュールの割込みは , リロード値がカウントアウトし , ボローが発生したときにア クティブになります。ただし , INTMn ビットを "1" にしたときは , PRLHn からのアン ダフロー時 ( ボロー ) のみアクティブになります。つまり , "H" 幅パルス終了時に割込 みが発生します。 8 ビット PPG モードおよび 8 ビットプリスケーラ+ 8 ビット PPG モードのときには , それぞれのカウンタのボローにより, それぞれの割込み要求が行われますが, 16ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードでは , 16 ビットカウ ンタのボローにより , PUF(m) と PUF(m + 1) が同時にセットされます。このため , 割 込み要因を一本化するために , PIE(m) または PIE(m+1) のどちらか一方のみを許可にす ることを推奨します。また , 割込み要因のクリアも PUF(m) と PUF(m+1) を同時に行う ことを推奨します (m = 0, 2, 4, 6)。 ● 各ハードウェアの初期値について 本ブロックの各ハードウェアは , リセット時に以下のように初期化されます。 < レジスタ > PPGC(n) → 0000000XB < パルス出力 > PPG(n) → "L" < 割込み要求 > IRQ(n) → "L" (n = 0 ∼ 7) 上記以外のハードウェアは初期化されません。 195 第 9 章 PPG ● PPG の組合せについて ch.0: PPGC ch.2: PPGC MD1 MD0 MD1 MD0 0 0 0 0 0 0 ch.0 ch.1 ch.2 ch.3 0 8 ビット PPG 8 ビット PPG 8 ビット PPG 8 ビット PPG 0 1 8 ビット PPG 8 ビット PPG 8 ビット PPG 0 1 0 8 ビット PPG 8 ビット PPG 0 0 1 1 0 1 0 0 8 ビット PPG 8 ビット プリスケーラ 8 ビット PPG 0 1 0 1 8 ビット PPG 8 ビット プリスケーラ 8 ビット PPG 0 1 1 0 8 ビット PPG 8 ビット プリスケーラ 0 1 1 1 1 0 0 0 16 ビット PPG 8 ビット PPG 8 ビット PPG 1 0 0 1 16 ビット PPG 8 ビット PPG 8 ビット プリスケーラ 1 0 1 0 16 ビット PPG 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 8 ビット プリスケーラ 16 ビット PPG 設定禁止 8 ビット PPG 8 ビット プリスケーラ 16 ビット PPG 設定禁止 16 ビット PPG 設定禁止 16 ビット PPG 16 ビットプリスケーラ ch.(4, 5, 6, 7) も , それぞれ , ch.(0, 1, 2, 3) と同じ動作組合せが可能です。 以下のように置き換えてください。 ch.0 = ch.4 { 196 ch.1 = ch.5 ch.2 = ch.6 ch.3 = ch.7 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) PWC の概要 , レジスタの構成 , 機能および動作に ついて説明します。 10.1 PWC の概要 10.2 PWC のレジスタ 10.3 PWC の動作説明 197 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) PWC の概要 10.1 入力信号のパルス幅測定機能です。 ■ PWC の機能 ハードウェアとして , 16 ビットアップカウンタ 1 個 , 入力パルス分周器 & 分周比制御 レジスタ 1 個 , 測定入力端子 1 本 , 16 ビット制御レジスタ 1 個を 1 チャネルとして , 合 計 1 チャネルを有し , これらによって以下の機能を実現します。 ● パルス幅測定機能 外部からのパルス入力の任意イベント間の時間を測定します。 基準となる内部クロックは 3 種類の中から選択可能です。 ( マシンクロックの 4/16/32 分周 ) "H" パルス幅 ( ↑∼↓ ) / "L" パルス幅 ( ↓∼↑ ) 各種測定モード 立上り周期 ( ↑∼↑ ) / 立下り周期 ( ↓∼↓ ) エッジ間測定 ( ↑または↓∼↓または↑ ) 8 ビット入力分周器で , 入力パルスを 2n 分周 (n=1, 2, 3, 4, 5, 6, 7, 8) して周期測定を行う ことが可能です。 測定終了時に割込み要求を発生することが可能です。 1 回のみの測定か連続測定かを選択することが可能です。 ■ PWC のレジスタ一覧 図 10.1-1 PWC のレジスタ一覧 アドレス bit15 ∼ bit8 bit7 ∼ bit0 000139H 198 PDIVR0 000130H 000131H PWCSR0 000132H 000133H PWCR0 PWC 分周比制御レジスタ 0 PWC コントロール / ステータスレジスタ 0 PWC データバッファレジスタ 0 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ PWC のブロックダイヤグラム 図 10.1-2 PWC のブロックダイヤグラム PWCR0リード エラー検出 16 / / 16 ERR PWCR0 内部クロック (マシンクロック/4) / 16 書込み許可 リロード データ転送 / 16 R-bus オーバフロー 制御ビット出力 フラグセットなど 測定開始エッジ 測定終了エッジ 2 クロック 分周器 23 クリア カウント許可 制御回路 開始エッジ 選択 2 クロック 16ビット アップカウンタ 終了エッジ 選択 CKS1/ CKS0 分周器クリア 分周 ON/OFF エッジ 検出 PWC0 8ビット 分周器 測定終了割込み要求 ERR CKS1/CKS0 オーバフロー割込み要求 15 / 分周比 選択 PWCSR0 2 / PDIVR0 199 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) 10.2 PWC のレジスタ PWC のレジスタの詳細を説明します。 ■ PWC コントロール / ステータスレジスタ (PWCSR) 図 10.2-1 PWCSR レジスタ (PWCSR) のビット構成 PWCSR0( 上位 ) アドレス: ch.0: 000130H bit リード / ライト 初期値 15 14 13 12 11 10 9 8 STRT R/W (0) STOP R/W (0) EDIR R (0) EDIE R/W (0) OVIR R/W (0) OVIE R/W (0) ERR R (0) − − (X) 7 6 5 4 3 2 1 0 CKS1 R/W (0) CKS0 R/W (0) − − (0) − − (0) SC R/W (0) PWCSR0( 下位 ) アドレス: ch.0: 000131H bit リード / ライト 初期値 MOD2 MOD1 MOD0 R/W R/W R/W (0) (0) (0) [bit15] STRT:カウンタスタートビット [bit14] STOP:カウンタストップビット 16 ビットアップカウンタの起動 / 再起動 / 停止を行うビットで , 読出し時にはカウ ンタの動作状態を表示します。以下にビット機能を示します。 ・書込み時機能 ( 動作制御 ) STRT STOP 0 0 機能なし / 動作に影響なし 0 1 カウンタ起動 / 再起動 ( カウント許可 )* 1 0 カウンタ動作強制停止 ( カウント禁止 )* 1 1 機能なし / 動作に影響なし 動作制御機能 *:クリアビット命令使用可能 ・読出し時機能 ( 動作状態表示 ) STRT STOP 0 0 カウンタ停止中(起動されていないかまたは測定終了) [ 初期値 ] 1 1 カウント動作中 ( 測定中 ) 動作状態表示 • リセット時:"00B" に初期化されます。 • 読出しおよび書込みが可能です。ただし , 書込み時と読出し時では上記のように 意味が異なります。 • リードモディファイライト (RMW) 系命令における読出し値はビットにかかわら ず "11B" です。 200 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) • カウンタの起動 / 停止のための STRT , STOP ビットへの書込みは , それぞれの ビットに対応するビット処理命令 ( ビットクリアなど ) を用いることが可能です が , 動作状態の読出しにはビット処理命令は使用できません ( 読むと必ず動作中 となりますので注意してください )。 [bit13] EDIR:測定終了割込み要求フラグ パルス幅測定モード時 , 測定終了したことを示すフラグです。測定終了割込み要求 が許可されているとき (bit12:EDIE=1) に本ビットがセットされると , 測定終了割込 み要求が発生します。 セット要因 パルス幅測定が終了するとセット (PWCR に測定結果が収納されている ) クリア要因 PWCR( 測定結果 ) をリードすることによりクリア • リセット時:"0" に初期化されます。 • 読出しのみ可能です。書込みしてもビット値は変化しません。 [bit12] EDIE:測定終了割込み要求許可ビット パルス幅測定モード時の測定終了割込み要求を以下のように制御します。 0 測定終了割込み要求出力禁止 (EDIR がセットされても割込みは発生せず ) [ 初期値 ] 1 測定終了割込み要求出力許可 (EDIR がセットされると割込みが発生する ) • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit11] OVIR:カウンタオーバフロー割込み要求フラグ 全モードにおいて , 16 ビットアップカウンタが "FFFFH" から "0000H" へオーバフ ローしたことを示すフラグです。カウンタオーバフロー割込み要求が許可されてい るとき (bit10:OVIE=1) に本ビットがセットされると , カウンタオーバフロー割込 み要求が発生します。 セット要因 カウンタオーバフローが発生するとセット ("FFFFH" から "0000H" へ ) クリア要因 "0" 書込みによりクリア • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能です。"1" を書 き込んでもビット値は変化しません。 • リードモディファイライト (RMW) 系命令における読出し値は , ビット値にかか わらず "1" です。 201 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) [bit10] OVIE:カウンタオーバフロー割込み要求許可ビット カウンタオーバフロー割込み要求を以下のように制御します。 0 オーバフロー割込み要求出力禁止 (OVIR がセットされても割込みは発生せず )[ 初期値 ] 1 オーバフロー割込み要求出力許可 (OVIR がセットされると割込みが発生する ) • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit9] ERR:エラーフラグ パルス幅測定モードの連続測定モード時において , PWCR 内の測定結果を読み出さ ないうちに次の測定が終了してしまったことを示すフラグです。この際 , PWCR の 値は新しい測定結果に更新され , 1 つ前の測定結果は消失します。測定は , 本ビット 値に関係なく続行されます。 セット要因 読み出していない測定結果が次の結果により消失するとセット クリア要因 PWCR( 測定結果 ) を読み出すことによりクリア • リセット時:"0" に初期化されます。 • 読出しのみ可能です。書込みしてもビット値は変化しません。 [bit8] (Reserved bit) 本ビットは予約ビットです。読出し値は不定です。必ず "0" を書き込んでください。 [bit7, bit6] CKS1, CKS0:クロック選択ビット 内部カウントを以下のように選択します。 CKS1 CKS0 0 0 マシンクロックの 4 分周クロック 0 1 マシンクロックの 16 分周クロック 1 0 マシンクロックの 32 分周クロック 1 1 設定禁止 カウントクロック選択 [ 初期値 ] • リセット時:"00B" に初期化されます。 • 読出しおよび書込みが可能です。ただし , "11B" を設定してはいけません。 ( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ さい。 [bit5, bit4] (Reserved bit) 本ビットは予約ビットです。これらのビットに書込みを行う場合は , "00B" にしてく ださい。 202 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) [bit3] SC:測定モード ( 単発 / 連続 ) 選択ビット 測定モードを以下のように選択します。 SC 測定モード選択 パルス幅測定モード時 0 単発測定モード [ 初期値 ] 1 回測定後停止 1 連続測定モード 連続測定:バッファレジスタ有効 • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 ( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ さい。 [bit2 ∼ bit0] MOD2 ∼ MOD0:動作モード / 測定エッジ選択ビット 動作モードおよび幅測定を行うエッジを以下のように選択します。 MOD2 MOD1 MOD0 0 0 0 全エッジ間パルス幅測定モード ( ↑ or ↓∼↓ or ↑ ) [ 初期値 ] 0 0 1 分周周期測定モード ( 入力分周器有効 ) 0 1 0 立上りエッジ間周期測定モード ( ↑∼↑ ) 0 1 1 "H" パルス幅測定モード ( ↑∼↓ ) 1 0 0 "L" パルス幅測定モード ( ↓∼↑ ) 1 0 1 立下りエッジ間周期測定モード ( ↓∼↓ ) 1 1 0 1 1 1 動作モード / 測定エッジ選択 設定禁止 • リセット時:"000B" に初期化されます。 • 読出しおよび書込みが可能です。 ( 注意事項 ) 起動後の書換えを禁止します。必ず起動前か停止後に書き込んでくだ さい。 203 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ PWCR レジスタ (PWC データバッファレジスタ ) 図 10.2-2 PWC データバッファレジスタ (PWCR) のビット構成 PWCR0( 上位 ) bit 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 R (0) R (0) R (0) R (0) R (0) R (0) R (0) R (0) アドレス: ch.0: 000132H PWCR0( 下位 ) アドレス: ch.0: 000133H bit リード / ライト 初期値 ● パルス幅測定モード 連続測定モード時 (PWCSR bit3:SC = 1) は , 前回の測定結果を保持するバッファレ ジスタとなります。この場合は読出しのみ可能で , 書込みしてもレジスタ値は変化 しません。 単発測定モード時 (PWCSR bit3:SC = 0) は , アップカウンタを直接アクセスできま す。この場合も , 読出しのみ可能で , 書込みしてもレジスタ値は変化しません。読 出しは随時可能で , カウント中のカウント値が得られます。測定終了後は測定結果 を保持します。 <注意事項> 本レジスタのアクセスは , 必ずハーフワードもしくはワード転送命令で行ってください。 • リセット時:"0000H" に初期化されます。 • 読出しのみ可能 204 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ PDIVR ( 分周比制御レジスタ ) 図 10.2-3 分周比制御レジスタ (PDIVR) のビット構成 PDIVR0 アドレス: ch.0: 000139H 7 6 5 4 3 2 1 0 − − (−) − − (−) − − (−) − − (−) − − (−) DIV2 R/W (0) DIV1 R/W (0) DIV0 R/W (0) bit リード / ライト→ 初期値→ 分周周期測定モード (PWCSR bit2 ∼ bit0:MOD2 ∼ MOD0 = 001B ) のときに使用する レジスタで , ほかのモードでは意味を持ちません。 分周周期測定モード時には , 測定端子に入力されたパルスを PDIVR に設定された分周 比により分周し , 分周後の 1 周期幅を測定します。分周比は以下のように選択します。 DIV2 DIV1 DIV0 0 0 0 21=2 分周 0 0 1 22=4 分周 0 1 0 23=8 分周 0 1 1 24=16 分周 1 0 0 25=32 分周 1 0 1 26=64 分周 1 1 0 27=128 分周 1 1 1 28=256 分周 分周比選択 [ 初期値 ] • リセット時:"000B" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> 起動後の書換えを禁止します。必ず起動前か停止後に書き込んでください。 205 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) PWC の動作説明 10.3 測定入力端子と 8 ビット入力分周などを組み込んでいます。PWC は , パルス幅測定 機能があり , 3 種類のカウントクロックを選択可能です。以下に , パルス幅測定機能 における基本機能 / 動作について示します。 ■ パルス幅測定機能 入力パルスの任意イベント間の時間・周期をカウンタで測定できます。 起動後 , 設定した測定開始エッジが入力されるまでカウントは行われません。開始エッ ジを検出するカウンタを "0000H" にクリア後 , カウントアップを開始し , 停止エッジを 検出するとカウントを停止します。この間のカウント値がパルス幅としてレジスタに 保存されます。 測定終了時およびオーバフロー発生時に割込み要求を発生できます。 測定終了後は測定モードに応じて以下のように動作します。 • 単発測定モード時 : 動作を停止します。 • 連続測定モード時 : カウンタ値をバッファレジスタに転送後 , 再度測定開始エッジ が入力されるまでカウントを停止します。 図 10.3-1 パルス幅測定動作(単発測定モード / "H" 幅測定) (実線はカウント値) PWC入力 被測定パルス カウント値 FFFFH カウントクリア 0000H 測定開始 カウントスタート カウントストップ 時間 EDIRフラグセット(測定終了) 図 10.3-2 パルス幅測定動作(連続測定モード / "H" 幅測定) (実線はカウント値) PWC入力 被測定パルス カウント値 FFFFH オーバフロー PWCRへ データ転送 PWCRへ データ転送 0000H カウントクリア 測定開始 カウントクリア カウントスタート カウントストップ カウントスタート OVIRフラグセット カウントストップ 時間 EDIRフラグセット(測定終了) 206 EDIRフラグセット間 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ カウントクロックの選択 カウンタのカウントクロックは , PWCSR レジスタの bit7, bit6:CKS1, CKS0 ビットの 設定によって , 内部クロックソースより 3 種類を選択できます。 選択できるカウントクロックは以下のとおりです。 PWCSR 選択される内部カウントクロック CKS1, CKS0 00B マシンクロックの 4 分周 01B マシンクロックの 16 分周 10B マシンクロックの 32 分周 [ 初期値 ] リセット後の初期値では , マシンクロックの 4 分周クロックが選択されています。 <注意事項> カウントクロックの選択は , 必ずカウンタ起動前に行ってください。 207 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ 動作モードの選択 各動作モード / 測定モードの選択は , PWCSR の設定により行います。 • 動作モードの設定 : PWCSR bit2 ∼ bit0:MOD2, MOD1, MOD0 ( パルス幅測定モードの選択 , 測定エッジの決定など ) • 測定モードの設定 : PWCSR bit3:SC ( 単発測定 / 連続測定の選択 ) モード設定ビットの組合せによる動作モードの選択の一覧を以下に示します。 SC 動作モード ↑または↓∼↑または↓ 全エッジ間測定 分周周期測定 (1 ∼ 256 分周 ) ↑∼↑ 立上り間周期測定 パルス幅測定 ↑∼↓ "H" パルス幅測定 ↓∼↑ "L" パルス幅測定 ↓∼↓ 立下り間周期測定 設定禁止 MOD2 MOD1 MOD0 単発測定:バッファ無効 0 0 0 0 連続測定:バッファ有効 1 0 0 0 単発測定:バッファ無効 0 0 0 1 連続測定:バッファ有効 1 0 0 1 単発測定:バッファ無効 0 0 1 0 連続測定:バッファ有効 1 0 1 0 単発測定:バッファ無効 0 0 1 1 連続測定:バッファ有効 1 0 1 1 単発測定:バッファ無効 0 1 0 0 連続測定:バッファ有効 1 1 0 0 単発測定:バッファ無効 0 1 0 1 連続測定:バッファ有効 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 リセット後の初期値では , 全エッジ間測定−単発測定モードが選択されています。 <注意事項> 起動モードの選択は , 必ずカウンタ起動前に行ってください。 208 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ パルス幅測定の起動と停止 各動作の起動 / 再起動 / 強制停止は , PWCSR の bit15, bit14:STRT, STOP ビットにより 行います。 パルス幅測定の起動 / 再起動は STRT ビット , 強制停止は STOP ビットと機能が分かれ ており , それぞれ "0" を書き込むことにより機能しますが , このとき , 両ビットに書き 込む値が排他でないと機能しません。ビット操作命令以外の命令にて ( バイト単位以 上にて ) 書き込む際は , 必ず以下に示す組合せを書き込んでください。 機能 STRT STOP パルス幅測定の起動 / 再起動 0 1 パルス幅測定の強制停止 1 0 ビット操作命令 ( ビットクリア命令 ) を用いる場合 , ハードウェアにより自動的に上記 の組合せにて書き込まれるため , 特に意識する必要がありません。 ● 起動後の動作 パルス幅測定モードの起動後は , 測定開始エッジが入力されるまでカウントは行われ ません。測定開始エッジ検出後 , 16 ビットアップカウンタを "0000H" にクリアし , カウ ントを開始します。 ● 再起動について パルス幅測定起動後 , 動作中に起動する (STRT ビットに "0" を書き込む ) ことを再起動 とよびます。再起動すると , 以下のような動作が行われます。 • 測定開始エッジ待ち状態の場合:動作に影響はありません。 • 測定中の場合 :カウントを停止し , 再度測定開始エッジ待ち状態 となります。この際測定終了エッジ検出と再起動 が同時になると , 測定終了フラグ(EDIR) がセット され , 連続測定モード時の場合は測定結果が PWCR に転送されます。 ● 停止について 単発測定モードでは , カウンタのオーバフローまたは測定終了により , 自動的にカウン ト動作を停止しますので , 特に意識する必要はありません。それ以外のモードや自動停 止する前に停止させたい場合は , 強制停止させる必要があります。 209 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ● 動作状態の確認 前述 STRT, STOP ビットは読出し時には動作状態表示ビットとして機能します。表示 される値は以下の内容を示します。 STRT STOP 0 0 カウンタ停止中 ( 測定開始エッジ待ち状態を除く ) 起動されていないか , または測定が終了したことを示します。 1 1 カウント動作中または測定開始エッジ待ち状態を示します。 動作状態 <注意事項> STRT, STOP のどちらのビットを読み出しても同じ値となります。ただし , リードモディ ファイライト (RMW) 系命令 ( ビット処理命令など ) にて本ビットを読み出すと常に "11B" になるため , これらの命令を使用して読み出さないでください。 ■ カウンタのクリア 16 ビットアップカウンタは , 以下に示す場合に "0000H" にクリアされます。 • リセット時 • パルス幅測定モードにて , 測定開始エッジを検出しカウントを開始する場合 210 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ パルス幅測定動作詳細 ● 単発測定と連続測定 パルス幅測定には , 1 回のみの測定を行うモードと連続して測定を行うモードがありま す。各モードは PWCSR の SC ビットによって選択します (「■ 動作モードの選択」を 参照 )。両モードにおける相違点は以下のとおりです。 • 単発測定モード: 1 回目の測定終了エッジが入力されるとカウンタのカウントは停 止し , PWCSR 中の測定終了フラグ (EDIR) がセットされ , 以降の 測定は行われません。ただし , 同時に再起動がかかった場合は測 定開始待ち状態となります。 • 連続測定モード: 測定終了エッジが入力されるとカウンタのカウントは停止し , PWCSR 中の測定終了フラグ(EDIR)がセットされ, 再度測定開始 エッジが入力されるまでカウントを停止します。再度 , 測定開始 エッジが入力されるとカウンタを "0000H" にクリアした後 , 測定 を開始します。測定終了時 , カウンタの測定結果は PWCR に転 送されます。 <注意事項> 測定モードの選択 / 変更は , 必ずカウンタ停止中に行ってください。 ● 測定結果データ 単発測定モードと連続測定モードでは , 測定結果とカウンタ値の扱い , PWCR の機能に 違いがあります。両モードにおける測定結果の相違点は以下のとおりです。 • 単発測定モード: PWCRを動作中に読み出すと測定中のカウント値が得られます。 PWCRを測定終了後に読み出すと測定結果データが得られます。 • 連続測定モード: 測定終了時 , カウンタ内の測定結果は PWCR に転送されます。 PWCRを読み出すと直前の測定結果が得られ, 測定動作中も前回 の測定結果を保持しています。測定中のカウント値は読み出せ ません。 連続測定モードにて測定結果を読み出さないうちに次の測定が終了してしまった場合, 前回の測定結果は新しい測定結果に消されてしまいます。この際 , PWCSR 中のエラー フラグ (ERR) がセットされます。エラーフラグ (ERR) は , PWCR を読み出すと自動的 にクリアされます。 211 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ● 測定モードとカウント動作 入力されたパルスのどこを測定するかによって, 測定モードを5種類のうちから選択す ることができます。さらに , 高い周波数のパルスの幅を精度よく測定できるように , 入 力されたパルスを任意分周して周期を測定するモードも用意されています。以下に , そ れらについて説明します。 測定モード MOD2 MOD1 MOD0 測定内容 (W:測定するパルス幅 ) W 全エッジ間パルス 幅測定 ↑カウント スタート 0 0 0 0 0 1 ↓カウント スタート (4 周分の例 ) ↑カウント スタート 0 1 W ↑カウントストップ ↑スタート W ↓ ストップ 分周比設定レジスタ PDIVR で選択した分周比だ け入力パルスを分周してその周期を測定します。 カウント ( 測定 ) 開始:起動直後の 立上りエッジ 検出時 カウント ( 測定 ) 終了:分周後の 1 周期終了時 W 立上りエッジ間 周期測定 W W ↑カウントストップ ↑スタート ↑ストップ ↑スタート 0 0 1 1 ↑カウント スタート W ↓カウント ストップ ↑ スタート ↓ ストップ "H" 期間の幅を測定します。 カウント ( 測定 ) 開始:立上りエッジ検出時 カウント ( 測定 ) 終了:立下りエッジ検出時 W W ↓カウント スタート "L" パルス幅測定 1 0 0 212 ↓カウント スタート 1 0 1 ↑カウント ストップ ↓ スタート ↑ ストップ "L" 期間の幅を測定します。 カウント ( 測定 ) 開始:立下りエッジ検出時 カウント ( 測定 ) 終了:立上りエッジ検出時 W 立下りエッジ間 周期測定 ↑ ストップ 立上りエッジ間の周期を測定します。 カウント ( 測定 ) 開始:立上りエッジ検出時 カウント ( 測定 ) 終了:立上りエッジ検出時 W "H" パルス幅測定 ↓ ストップ 連続して入力されるエッジ間の幅を測定します。 カウント ( 測定 ) 開始:エッジ検出時 カウント ( 測定 ) 終了:エッジ検出時 W 分周周期測定 W W ↓カウントストップ ↓スタート ↑ストップ ↑スタート W W ↓カウントストップ ↓スタート ↓ストップ ↓スタート ↓ ストップ 立下りエッジ間の周期を測定します。 カウント ( 測定 ) 開始:立下りエッジ検出時 カウント ( 測定 ) 終了:立下りエッジ検出時 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) どのモードでも , 測定起動後 , 測定開始エッジが入力されるまではカウンタはカウント 動作を行いません。測定開始エッジが入力されると , カウンタは "0000H" にクリアされ た後 , 測定終了エッジが入力されるまでの間 , カウントクロックごとにアップカウント を続けます。 測定終了エッジが入力されると , 以下の動作が行われます。 • PWCSR 中の測定終了フラグ (EDIR) がセットされます。 • カウンタのカウント動作が停止します ( 再起動と同時であった場合を除く )。 • 連続測定モード時:カウンタの値 (= 測定結果 ) が PWCR に転送され , 次の測定開始 エッジが入力されるまでカウントを停止して待ちます。 • 単発測定モード時:測定を終了します ( 再起動と同時であった場合を除く )。 連続測定モードの場合で , 全エッジ間パルス幅測定や周期測定などを行った場合 , 終了 エッジが次の測定開始エッジとなります。 ● 最小入力パルス幅について パルス幅測定入力端子 (PWC0) に入力できるパルスには以下の制限があります。 最小入力幅:マシンサイクル× 4 以上 (16MHz のマシンクロックの場合は , 0.25μs 以上とする ) 上記パルスより小さい幅のパルスを入力した場合の動作は保証できません。 ● パルス幅 / 周期算出方法 測定終了後 , PWCR に得られた測定結果データから , 被測定パルス幅 / 周期算出方法は 以下のように求められます。 TW : 被測定パルス幅 / 周期 [μs] TW = n × t ÷ DIV [μs] n : PWCR 内の測定結果データ t : カウントクロックの周期 [μs] DIV : 分周比レジスタ PDIVR で選択した分周比 ( 分周周期測定モード以外は "1" を代入 ) 213 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ● パルス幅 / 周期測定レンジ カウントクロックおよび入力分周器の分周比の選択の組合せにより , 測定可能なパル ス幅 / 周期のレンジが変化します。 一例として , マシンクロック ( 以下 φ とする )=16MHz 時の測定レンジの一覧表を以下 に示します。 分周比 DIV2, DIV1, DIV0 CKS1, CKS0= 00B(φ /4) 時 CKS1, CKS0= 01B(φ /16) 時 CKS1, CKS0= 10B(φ /32) 時 分周 なし − 0.25μs ∼ 16.4ms [250ns] 0.25μs ∼ 65.5ms [1.0μs] 0.25μs ∼ 131ms [2.0μs] 2 分周 000B 0.25μs ∼ 8.19ms [125ns] 0.25μs ∼ 32.8ms [0.5μs] 0.25μs ∼ 65.5ms [1.0μs] 4 分周 001B 0.25μs ∼ 4.10ms [62.5ns] 0.25μs ∼ 16.4ms [250ns] 0.25μs ∼ 32.8ms [0.5μs] 8 分周 010B 0.25μs ∼ 2.05ms [31.25ns] 0.25μs ∼ 8.19ms [125ns] 0.25μs ∼ 16.4ms [250ns] 16 分周 011B 0.25μs ∼ 1.02ms [15.6ns] 0.25μs ∼ 4.10ms [62.5ns] 0.25μs ∼ 8.19ms [125ns] 64 分周 100B 0.25μs ∼ 256μs [3.91ns] 0.25μs ∼ 1.024ms [15.6ns] 0.25μs ∼ 2.05ms [31.25ns] 256 分周 101B 0.25μs ∼ 64.0μs [0.98ns] 0.25μs ∼ 256μs [3.91ns] 0.25μs ∼ 512μs [7.81ns] − その他 設定禁止 マシンクロック φ = 16MHz 時 [ ] 内は 1 ビットあたりの分解能を示します。 ● 割込み要求発生 パルス幅測定モードにおいては , 以下の 2 つの割込み要求を発生することが可能です。 • カウンタのオーバフローによる割込み要求 測定中 , カウントアップによりオーバフローが発生するとオーバフローフラグが セットされ , オーバフロー割込み要求が許可されていると割込み要求が発生しま す。 • 測定終了による割込み要求 測定終了エッジを検出すると , PWCSR 中の測定終了フラグ (EDIR) がセットされ , 測定終了割込み要求が許可されていると割込み要求が発生します。 測定終了フラグ (EDIR) は , 測定結果 PWCR を読み出すと自動的にクリアされます。 214 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ● パルス幅測定動作フロー 各種設定 再起動 連続測定モード 測定開始エッジ検出 カウントクロック選択 動作/測定モード選択 割込みフラグクリア 割込み許可 測定入力端子選択 STRTビットにより起動 単発測定モード 測定開始エッジ検出 カウンタをクリア カウンタをクリア カウント開始 カウント開始 アップカウント アップカウント オーバフローの発生 → OVIRフラグセット オーバフローの発生 → OVIRフラグセット 測定終了エッジ検出 → EDIRフラグセット 測定終了エッジ検出 → EDIRフラグセット カウント停止 カウント停止 カウント値をPWCRに転送 動作停止 215 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ■ 注意事項 ● レジスタ書換えに関する注意事項 PWCSR レジスタの以下に示すビットは動作中に書き換えることを禁止します。書換え は必ず起動前か停止後に行ってください。 [bit7, bit6] CKS1, CKS0 :クロック選択ビット [bit3] SC :測定モード ( 単発 / 連続 ) 選択ビット [bit2 ∼ bit0] MOD2 ∼ MOD0 :動作モード / 測定エッジ選択ビット PDIVR レジスタは動作中に書き換えることを禁止します。書換えは必ず起動前か停止 後に行ってください。 ● PWCSR レジスタの STRT, STOP ビットについて 両ビットともに , 書込み時と読出し時では , 意味が異なるので注意してください (「■ PWC コントロール / ステータスレジスタ (PWCSR) 」を参照 )。 また , リードモディファイライト (RMW) 系命令における読出し値は , ビット値にかか わらず , "11B" です。このため , 動作状態の読出しには , ビット処理命令は使用できま せん ( 読むと必ず動作中となります ) ので注意してください。 カウンタの起動 / 停止のための STRT, STOP ビットへの書込みは , それぞれのビットに 対するビット処理命令 ( ビットクリア命令など ) を用いることが可能です。 ● カウンタのクリアについて パルス幅測定モードの場合 , 測定開始エッジでカウンタがクリアされますので , 起動前 にカウンタ中にあったデータは無効になります。 ● 最小入力パルス幅について パルス幅測定入力端子に入力できるパルスには , 以下の制限があります。 • 最小入力幅 :マシンサイクル× 4 ( マシンサイクルが 62.5ns 時 , ≧ 250ns) • 最大入力周波数:マシンクロックの 4 分周 ( マシンサイクルが 16MHz 時 , ≦ 4MHz) 上記パルスより小さい幅 , 高い周波数のパルスを入力した場合の動作は保証できませ ん。入力信号にそのようなノイズがのる可能性がある場合は , チップ外部でフィルタな どを通して除去してから入力してください。 ● 分周周期測定モードについて パルス幅測定モードのうちの分周周期測定モードでは , 入力パルスを分周するため , 測 定結果より算出して得られるパルス幅は平均値となりますので注意してください。 ● クロック選択ビットについて PWCSR レジスタの [bit7, bit6]CKS1, CKS0:クロック選択ビットにおいて "11B" は設定 禁止です。 ● 予約ビットについて PWCSR レジスタの bit8, bit5, bit4 は予約ビットになっています。このビットに書込み を行う場合は "0" にしてください。 216 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) ● 動作中の再起動について カウント動作を開始した後に再起動を行う場合は , そのタイミングによっては以下に 示すようなことが起こり得ます。 • パルス幅単発測定モード時 , 測定終了エッジと同時であった場合 再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は セットされます。 • パルス幅連続測定モード時 , 測定終了エッジと同時であった場合 再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は セットされ , その時点での測定結果は PWCR に転送されます。 以上のように , 動作中の再起動時には , フラグの動作に注意して割込み制御などを行う ようにしてください。 217 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) 218 第 11 章 メイン発振安定待ちタイマ メイン発振安定待ちタイマの概要 , レジスタの構 成 , 機能および動作について説明します。 11.1 メイン発振安定待ちタイマの概要 11.2 メイン発振安定待ちタイマのブロックダイヤグラム 11.3 メイン発振安定待ちタイマのレジスタ 11.4 メイン発振待ち割込みの動作 219 第 11 章 メイン発振安定待ちタイマ 11.1 メイン発振安定待ちタイマの概要 メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23 ビットのカウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタ イマ機能があります。 ■ メイン発振安定待ちタイマの概要 本タイマは , サブクロックで動作中に OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 に よってメイン発振を一度止めて再度発振させた場合に , 発振安定待ち時間を確保する ためにメインクロックを使用します。 インターバル時間は次の 3 種類の中から選択できます。 メインクロック周期 φ ( 注意事項 ) φ は内部ベースクロックの周期で , メイン発振の 2 倍の周期です。 220 インターバル時間 ( メイン発振 4MHz 時 ) φ × 211 (1.0ms) φ × 216 (32.7ms) φ × 214 (8.0ms) 第 11 章 メイン発振安定待ちタイマ 11.2 メイン発振安定待ちタイマのブロックダイヤグラム メイン発振安定待ちタイマのブロックダイヤグラムを示します。 ■ メイン発振安定待ちタイマのブロックダイヤグラム 図 11.2-1 メイン発振安定待ちタイマのブロックダイヤグラム メイン発振安定待ち タイマ用カウンタ 6 10 13 15 21 22 23 24 25 26 27 211 214 216 0 1 2 3 4 5 22 インターバル タイマセレクタ リセット (INIT) カウンタクリア回路 メイン発振安定待ち タイマ割込み メイン発振安定待ちタイマ 制御レジスタ(OSCR) WIF WIE WEN - - WS1 WS0 WCL : 内部ベースクロックの周期 メイン発振安定待ちタイマ メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。 カウンタクリア回路 OSCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリア します。 インターバルタイマセレクタ メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ 用の 1 種類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因にな ります。 メイン発振安定待ちレジスタ (OSCR) インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを 行います。 221 第 11 章 メイン発振安定待ちタイマ 11.3 メイン発振安定待ちタイマのレジスタ メイン発振安定待ちタイマのレジスタの詳細を説明します。 ■ メイン発振安定待ちタイマレジスタ (OSCR) 図 11.3-1 メイン発振安定待ちタイマ制御レジスタ OSCR bit 15 14 WIF WIE アドレス: 00000490H R/W R/W R/W: リード / ライト可能 W : ライトオンリ 13 WEN R/W 12 11 − − 10 WS1 R/W 9 WS0 R/W 8 WCL W 初期値 INIT 時 RST 時 アクセス 00H xxH R/W [bit15] WIF (timer Interrupt Flag) メイン発振安定待ち割込み要求フラグです。 選択されたインターバルタイマ用分周出力の立下りエッジによって "1" にセットさ れます。 このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出 力します。 0 メイン発振安定割込みの要求なし ( 初期値 ) 1 メイン発振安定割込みの要求あり • リセット (INIT) で "0" に初期化されます。 • 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書込み してもビット値は変化しません。 また , リードモディファイライト (RMW) 系命令での読出し値では常に "1" とな ります。 [bit14] WIE (timer Interrupt Enable) CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振 安定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力しま す。 0 メイン発振安定割込み要求出力禁止 ( 初期値 ) 1 メイン発振安定割込み要求出力許可 • リセット (INIT) で "0" に初期化されます。 • 読出しおよび書込みが可能です。 222 第 11 章 メイン発振安定待ちタイマ [bit13] WEN (timer enable) タイマ動作許可ビットです。 本ビットが "1" のときタイマはカウント動作を行います。 0 タイマ動作停止 ( 初期値 ) 1 タイマ動作 • リセット (INIT) で "0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit12, bit11] (reserved bit) 予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。 読出し値は不定です。 [bit10, bit9] WS1, WS0 (timer interval Select 1, 0) インターバルタイマの周期を選択します。 メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択し ます。 WS1 WS0 0 0 φ × 21 (1.0μs) ( 初期値 ) 0 1 φ × 211 (1.0ms) 1 0 φ × 216 (32.7ms) 1 1 φ × 214 (8.0ms) インターバルタイマ周期 ( メイン発振 4MHz 時 ) (φ は内部ベースクロックの周期で , メイン発振の 2 倍の周期です。) • リセット (INIT) で "00B" に初期化されます。 • このタイマを使用する場合 , WS1, WS0 ビットに適切な値を書込んで使用してく ださい。 • 読出しおよび書込みが可能です。 [bit8] WCL (timer CLear) • "0" 書込みでメイン発振安定待ちタイマを "0" にクリアします。 • 書込みは "0" のみ可能で , "1" を書込みしても動作に影響を与えません。 • 読出し値は常に "1" となります。 223 第 11 章 メイン発振安定待ちタイマ 11.4 メイン発振待ち割込みの動作 メイン発振待ち割込みの動作について説明します。 ■ メイン発振安定待ち割込みの動作 メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に セットします。そのとき , 割込み要求許可ビットを許可 (WIE=1) していると CPU へ割 込み要求が発生します。ただし , メインクロックが発振停止しているとき (「■ イン ターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン発振 安定待ち割込みは発生しません。 割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ い。なお , WIF ビットは , WIE ビットの値に関係なく , 指定した分周出力が立ち下ると セットされます。 リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS[1:0] ビット変更 時は , 必ず WIF ビットと WCL ビットを同時にクリア (WIF=WCL=0) してください。 • WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込 み要求が発生します。 • カウンタクリア(OSCR:WCL=1)と選択したビットのオーバフローが同時に起こった 場合は , WIF ビットのセットは行われません。 ■ インターバルタイマ機能の動作 メイン発振安定待ちタイマ用カウンタはメインクロックにてカウントアップを行いま すが , 以下の状態ではメインクロック発振が停止するため , カウント動作も停止しま す。 • WEN ビットが "0" のとき • ストップモードにおいて , メイン発振が停止する設定 ( スタンバイ制御レジスタ STCR の bit0 : OSCD1=1) でストップモードに移行すると , ストップモード中 , カウ ント動作が停止します。本品種では , リセット (INIT) 時 OSCD1=1 に初期化します ので , ストップモード中もメイン発振安定待ちタイマを動かしたい場合は , スタン バイ移行前に OSCD2=0 を設定してください。 • サブクロックモードで OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 に "1" を設定した ときは , メイン発振が停止しますのでタイマカウント動作も停止します。 カウンタをクリア (WCL=0) すると , "000000H" からカウント動作を行い , "7FFFFFH" に 達すると "000000H" に戻ってカウントを継続します。カウントアップ中に選択された インターバルタイマ用の分周出力に立下りエッジが発生すると , メイン発振安定待ち 割込み要求ビット (WIF) を "1" にセットします。つまり , クリアされた時間を基準にし て , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求を発生 します。 224 第 11 章 メイン発振安定待ちタイマ ■ クロック供給機能の動作 本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク ロックで動作する本メイン発振安定待ちタイマを使用します。 サブクロック動作にてメイン発振停止状態からメインクロックの発振安定待ちを確保 するためには , 次の手順で行ってください。 (1) メインクロックの発振安定に必要な時間を WS1, WS0 ビットに設定し , カウンタを "0" にクリアします (WS1, WS0= 発振安定待ち時間 , WCL=0 書込み )。発振安定待 ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行います (WIF=0, WIE=0 書込み )。 (2) メインクロックの発振を開始します (OSCCR bit0: OCSDS1=0 書込み )。 (3) プログラムにて , WIF フラグが "1" になるまで待ちます。 (4) WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま た , 割込みを許可した場合は , WIF=1 時に割込みが発生しますので , 割込みルーチ ンで発振安定待ち完了後の処理を行ってください。 サブクロックからメインクロックに切り換える場合も , (4) の WIF=1 の確認を待ってか ら行ってください ( 発振安定を待たずにメインクロックへ切り換えると , デバイス全体 に不安定なクロックが供給され , その後の動作は保証されません )。 ■ メイン発振安定待ちタイマ起動時のメインクロック移行時カウンタ状態 メイン発振安定待ちタイマを起動したとき , メインクロックへの移行時のカウンタ状 態を以下に示します。 図 11.4-1 メイン発振安定待ちタイマ起動時のメインクロック移行時カウンタ状態 7FFFFF H カウンタ値 メインクロック 発振安定待ち時間 ・タイマクリア(WCL=1) :0以外のとき ・インターバル時間設定(WS1, WS0=11B) ・メイン発振開始(OSCCR:OSCDS1=0) 割込みルーチンで クリア WIF(割込み要求) WIE(割込みマスク) クロックモード サブクロック メインクロック サブ→メインクロック変更 225 第 11 章 メイン発振安定待ちタイマ ■ メイン発振安定待ちタイマ使用時の注意事項 • 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。 • メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込み も発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を 停止しないでください。 • WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラ グセットが優先し , "0" クリアは無効となります。 ■ メインクロック ↔ サブクロック切換え例 メインクロック ↔ サブクロック切換え例を下記に示します。 図 11.4-2 メインクロック ↔ サブクロックの切換え例 メインラン サブラン 4MHz発振起動 RTC 32kHzの起動 PLL ON RTC割込み 終了 NO メイン発振安定待ち タイマ起動 YES メインクロック切換え 2分周→PLL メイン発振安定 ON INT PLL OFF YES ソースクロックの切換え 4MHz→32kHz ソースクロックの切換え 32kHz →4MHz メインクロック切換え 2分周→PLL 4MHzの発振停止 サブラン 226 メインラン NO 第 12 章 16 ビットフリーランタイマ 16 ビットフリーランタイマの概要 , レジスタの構 成 / 機能および 16 ビットフリーランタイマの動作 について説明します。 12.1 16 ビットフリーランタイマの概要 12.2 16 ビットフリーランタイマのレジスタ 12.3 16 ビットフリーランタイマの動作 227 第 12 章 16 ビットフリーランタイマ 12.1 16 ビットフリーランタイマの概要 16 ビットフリーランタイマの概要とブロックダイヤグラムを示します。 ■ 16 ビットフリーランタイマの特長 16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロール・ステータス レジスタより構成されています。本タイマのカウント値はアウトプットコンペア , イン プットキャプチャの基本時間 ( ベースタイマ ) として使用されます。 MB91245/S シリーズは , 16 ビットフリーランタイマを 2 つ搭載しており , 16 ビットフ リーランタイマ 0 がアウトプットコンペア 0, 1 およびインプットキャプチャ 0, 1 とし て利用されます。また , 16 ビットフリーランタイマ 1 がインプットキャプチャ 2, 3 の ベースタイマとして利用されます。 • カウントクロックは 4 種類から選択可能です。 • カウンタオーバフローにより割込みを発生することができます。 • モード設定により , アウトプットコンペアのコンペアレジスタ 0 (OCCP0) の値との 一致による 16 ビットフリーランタイマ 0 のカウンタの初期化が可能です。 ■ 16 ビットフリーランタイマのレジスタ一覧 図 12.1-1 16 ビットフリーランタイマのレジスタ一覧 TCDT0,TCDT1( 上位バイト ) bit アドレス: ch.0 0000D4H ch.1 0000D8H 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T9 T8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 7 6 5 4 3 2 1 0 T7 T6 T5 T4 T3 T2 T1 T0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 4 3 リード / ライト (R/W) (0) 初期値 TCDT0,TCDT1( 下位バイト ) bit アドレス: ch.0 0000D5H ch.1 0000D9H リード / ライト (R/W) (0) 初期値 TCCS0, TCCS1 bit アドレス: ch.0 0000D7H ch.1 0000DBH 7 6 5 ECLK IVF IVFE STOP MODE (R/W) (0) (R/W) (0) (R/W) (0) リード / ライト (R/W) (0) 初期値 228 (R/W) (0) 2 1 0 CLR CLK1 CLK0 (R/W) (0) (R/W) (0) (R/W) (0) 第 12 章 16 ビットフリーランタイマ ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 12.1-2 16 ビットフリーランタイマのブロックダイヤグラム 割込み IVF IVFE STOP MODE CLR CLK1 CLK0 R-bus ECLK 分周期 φ CK0 クロック選択 CK1 16ビットフリーランタイマ タイマデータレジスタ(TCDT) クロック 内部回路へ(T15~T00) コンパレータ0 (フリーランタイマ0の場合) 229 第 12 章 16 ビットフリーランタイマ 12.2 16 ビットフリーランタイマのレジスタ 16 ビットフリーランタイマで使用するレジスタの構成と機能について説明します。 ■ タイマデータレジスタ (TCDT) 図 12.2-1 タイマデータレジスタ (TCDT) のビット構成 TCDT0, TCDT1( 上位バイト ) bit 15 14 13 12 11 10 9 8 アドレス: ch.0 0000D4H ch.1 0000D8H T15 T14 T13 T12 T11 T10 T9 T8 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) リード / ライト (R/W) (0) 初期値 TCDT0, TCDT1( 下位バイト ) bit 7 6 5 4 3 2 1 0 アドレス: ch.0 0000D5H ch.1 0000D9H T7 T6 T5 T4 T3 T2 T1 T0 (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) リード / ライト (R/W) (0) 初期値 16 ビットフリーランタイマのカウント値を読み出すことのできるレジスタです。カウ ンタ値は , リセット時に "0000H" にクリアされます。このレジスタに書き込むことでタ イマ値を設定できます。 書込みは必ず停止状態 (STOP =1) で行ってください。アクセスはワード単位で行って ください。 タイマの初期化は次の要因で行われます。 • リセットによる初期化 • コントロール・ステータスレジスタのクリア (CLR) による初期化 • アウトプットコンペアのコンペアレジスタ 0(OCCP0) 値とタイマカウンタ値の一致 による 16 ビットフリーランタイマ 0 のカウンタの初期化 ( モード設定が必要です ) 230 第 12 章 16 ビットフリーランタイマ ■ タイマコントロールレジスタ (TCCS) 図 12.2-2 タイマコントロールレジスタ (TCCS) のビット構成 TCCS0, TCCS1 bit アドレス: ch.0 0000D7H ch.1 0000DBH 7 ECLK リード / ライト (R/W) (0) 初期値 6 IVF 5 IVFE 4 3 STOP MODE (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) 2 CLR 1 CLK1 0 CLK0 (R/W) (0) (R/W) (0) (R/W) (0) [bit7] ECLK 16 ビットフリーランタイマのカウントクロックソースとして , 内部クロックまたは 外部クロックを選択するビットです。クロックソースの選択は , アウトプットコン ペア , インプットキャプチャが停止状態で行ってください。 ECLK クロック選択 0 内部クロックソースを選択 [ 初期値 ] 1 外部端子 (CK0, CK1) を選択 <注意事項> 内部クロックを選択した場合は , TCDT レジスタの bit1, bit0 (CLK1, CLK0) にカウントク ロックの設定を行ってください。このカウントクロックがベースクロックとなります。ま た , FRCK よりクロックを入力する場合は , 対応する DDR ビットを "0" に設定してくださ い。 外部クロックに必要な最低パルス幅は , 2T です (T:周辺系クロックサイクル )。 外部クロックを指定しアウトプットコンペアを使用した場合 , コンペア一致および割込み は次のクロックサイクルで発生します。そのため , コンペア一致出力 , 割込みを発生させ るためには , コンペア一致後 , 最低 "1 クロックサイクル " を入力する必要があります。 [bit6] IVF 16 ビットフリーランタイマの割込み要求フラグです。 16 ビットフリーランタイマがオーバフローを起こした場合 , またはモード設定によ りアウトプットコンペアのコンペアレジスタ 0(OCCP0) とコンペアマッチして 16 ビットフリーランタイマ 0 のカウンタがクリアされた場合に本ビットは "1" にセッ トされます。 割込み要求許可ビット (IVFE) がセットされていると割込みが発生します。 本ビットは "0" 書込みによりクリアされます。リードモディファイライト (RMW) 系命令では常に "1" が読み出されます。 IVF 割込み要求フラグ 0 割込み要求なし [ 初期値 ] 1 割込み要求あり 231 第 12 章 16 ビットフリーランタイマ [bit5] IVFE 16 ビットフリーランタイマの割込み許可ビットです。 本ビットが "1" のとき , 割込みフラグ (IVF) に "1" がセットされると割込みが発生し ます。 IVFE 割込みイネーブル 0 割込み禁止 [ 初期値 ] 1 割込み許可 [bit4] STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。 STOP カウント動作 0 カウント許可 ( 動作 ) [ 初期値 ] 1 カウント禁止 ( 停止 ) <注意事項> 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 [bit3] MODE 16 ビットフリーランタイマの初期化条件を設定します。 本ビットが "0" のときは , リセットとクリアビット (bit2:CLR) でカウンタ値を初期 化することができます。 "1" のときは , リセットとクリアビット (bit2:CLR) のほかにアウトプットコンペア のコンペアレジスタ値との一致によりカウンタ値を初期化することができます。こ のとき 16 ビットフリーランタイマ ch.0 はアウトプットコンペアのコンペアレジス タ 0(OCCP0) との一致により初期化が行われます。 MODE 232 タイマの初期化条件 0 リセット , クリアビットによる初期化 [ 初期値 ] 1 リセット , クリアビット , コンペアレジスタによる初期化 第 12 章 16 ビットフリーランタイマ [bit2] CLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。 本ビットに "1" を書き込むことにより , タイマ値を "0000H" に初期化します。読出 し値は常に "0" です。CLR は "0" 書込みでリセットされます。 <注意事項> カウンタ値の初期化は , カウント値の変化点で行われます。本ビットに "1" 書込み後 , カ ウント値が変化する前に "0" を書き込んだ場合には , タイマ値は初期化されません。 タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。タ イマ停止中の CLR によるタイマクリアを禁止します。 [bit1, bit0] CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択するビットです。 本ビットに書込みの後 , 直ちにカウントクロックは変更されます。本ビットの変更 は , アウトプットコンペア , インプットキャプチャが停止状態で行ってください。 CLK1 CLK0 カウントクロック fccp=32MHz fccp=16MHz 0 0 fccp/22 125ns 250ns 0 1 fccp/24 0.5μs 1μs 1 0 fccp/25 1μs 2μs 1 1 fccp/26 2μs 4μs fccp:周辺系のクロック周波数 233 第 12 章 16 ビットフリーランタイマ 12.3 16 ビットフリーランタイマの動作 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作説明 カウンタ値は次の条件でクリアされます。 • オーバフローが発生したとき • アウトプットコンペアのコンペアレジスタ 0 (OCCP0) 値とコンペアマッチしたとき ( モード設定が必要 ) • 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき • タイマ停止中に TCDT に "0000H" を書き込んだとき • リセットをかけたとき 割込みは , オーバフローが発生したとき , アウトプットコンペアのコンペアレジスタ 0(OCCP0) 値とコンペアマッチしてカウンタがクリアされたときに発生します ( コンペ アマッチ割込みはモード設定が必要です )。 図 12.3-1 オーバフローによるカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット 割込み 234 第 12 章 16 ビットフリーランタイマ 図 12.3-2 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペアレジスタ BFFFH 割込み ■ 16 ビットフリーランタイマのクリアタイミング カウンタクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行わ れます。 リセットとソフトウェアでのカウンタクリアは , クリア発生と同時に行われますが , コ ンペアクリアレジスタ 0 との一致によるカウンタクリアはカウントタイミングに同期 して行われます。 図 12.3-3 16 ビットフリーランタイマのクリアタイミング コンペアクリアレジスタ値 N カウンタクリア カウンタ値 N 0000H ■ 16 ビットフリーランタイマのカウントタイミング 16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ ステムクロックで同期化した後 , 内部カウントクロックの立下りでカウントされます。 図 12.3-4 16 ビットフリーランタイマのカウントタイミング 外部クロック入力 内部クロック入力 カウンタ値 N N+1 235 第 12 章 16 ビットフリーランタイマ ■ 16 ビットフリーランタイマの注意事項 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ グセットが優先し , クリア動作は無効となります。 • コントロールレジスタの bit2 ( カウンタ初期ビット : CLR ) は , "1" が書き込まれた 後 , カウンタ値の初期化は , カウント値の変化点で行われます。本ビットに "1" を書 き込んだ後 , カウント値が変化する前に "0" を書き込んだ場合には , タイマ値は初期 化されません。 • カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有 効となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジ スタに "0000H" を書き込むようにしてください。 236 第 13 章 インプットキャプチャ インプットキャプチャの概要 , レジスタの構成 , 機 能および動作について説明します。 13.1 インプットキャプチャの概要 13.2 インプットキャプチャのレジスタ 13.3 インプットキャプチャの動作 237 第 13 章 インプットキャプチャ 13.1 インプットキャプチャの概要 インプットキャプチャの特長とブロックダイヤグラムを示します。 ■ インプットキャプチャの特長 本モジュールは外部から入力された信号の立上りエッジ , 立下りエッジまたは両エッ ジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保持する機能を 持っています。また , エッジ検出時に割込みを発生することができます。 インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジス タで構成されています。 各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。 • 外部入力の有効エッジを 3 種類から選択可能です。 - 立上りエッジ - 立下りエッジ - 両エッジ • 外部入力有効エッジを検出したときに割込みを発生することができます。 238 第 13 章 インプットキャプチャ ■ インプットキャプチャのレジスタ一覧 インプットキャプチャのレジスタ一覧は , 以下のとおりです。 図 13.1-1 インプットキャプチャのレジスタ一覧 IPCP( 上位バイト ) 14 13 12 11 10 アドレス: bit 15 0000ECH(IPCP3) CP15 CP14 CP13 CP12 CP11 CP10 0000EEH(IPCP2) 0000E4H(IPCP1) 0000E6H(IPCP0) リード / ライト 初期値 9 8 CP9 CP8 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) 7 6 5 4 3 2 1 0 CP7 CP6 CP5 CP4 CP3 CP2 CP1 CP0 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) 7 6 5 4 3 2 1 0 IPCP( 下位バイト ) アドレス: bit 0000EDH(IPCP3) 0000EFH(IPCP2) 0000E5H(IPCP1) 0000E7H(IPCP0) リード / ライト 初期値 ICS23 アドレス: bit 0000F3H ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (0) (0) (0) (0) (0) (0) (0) (0) 初期値 ICS01 アドレス: bit 7 6 5 4 3 2 1 0 0000EBH ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) 239 第 13 章 インプットキャプチャ ■ インプットキャプチャのブロックダイヤグラム 図 13.1-2 にインプットキャプチャのブロックダイヤグラムを示します。 図 13.1-2 インプットキャプチャのブロックダイヤグラム 16ビット タイマ(ch.0)カウント値 EG11 R-bus IN0 入力端子 エッジ 検出 キャプチャデータレジスタ ch.0 EG10 EG11 EG00 16ビット タイマ(ch.0)カウント値 ICP1 IN1 入力端子 エッジ 検出 キャプチャデータレジスタ ch.1 ICP0 ICE1 ICE0 割込み 割込み (注意事項)インプットキャプチャ 0, 1 の場合 240 第 13 章 インプットキャプチャ 13.2 インプットキャプチャのレジスタ インプットキャプチャで使用するレジスタの構成および機能について説明します。 ■ インプットキャプチャレジスタ (IPCP) 図 13.2-1 インプットキャプチャレジスタ (IPCP) のビット構成 IPCP( 上位バイト ) 14 13 12 11 10 アドレス: bit 15 0000ECH(IPCP3) CP15 CP14 CP13 CP12 CP11 CP10 0000EEH(IPCP2) 0000E4H(IPCP1) 0000E6H(IPCP0) 9 8 CP9 CP8 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) 7 6 5 4 3 2 1 0 CP7 CP6 CP5 CP4 CP3 CP2 CP1 CP0 (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) (R) (X) リード / ライト 初期値 IPCP( 下位バイト ) アドレス: bit 0000EDH(IPCP3) 0000EFH(IPCP2) 0000E5H(IPCP1) 0000E7H(IPCP0) リード / ライト 初期値 本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したときに , 16 ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。 このレジスタは 16 ビットデータまたは 32 ビットデータでアクセスしてください。書 込みはできません。 241 第 13 章 インプットキャプチャ ■ インプットキャプチャコントロールレジスタ (ICS) 図 13.2-2 インプットキャプチャコントロールレジスタ (ICS) のビット構成 ICS23 アドレス: 7 bit 6 5 4 3 2 1 0 0000F3H ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) ICS01 アドレス: 7 bit 6 5 4 3 2 1 0 0000EBH ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) [bit7, bit6] ICP3, ICP2 (ICP1, ICP0) インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると 本ビットを "1" にセットします。割込み許可ビット (ICE3 ∼ ICE0) がセットされて いると , 有効エッジを検出することにより割込みを発生することができます。本 ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リー ドモディファイライト (RMW) 系命令では "1" が読み出されます。 0:有効エッジ検出なし ( 初期値 ) 1:有効エッジ検出あり ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。 [bit5, bit4] ICE3, ICE2 (ICE1, ICE0) インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき , 割込みフラ グ(ICP3∼ICP0)が"1"にセットされるとインプットキャプチャ割込みが発生します。 0:割込み禁止 ( 初期値 ) 1:割込み許可 ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。 [bit3 ∼ bit0] EG31, EG30, EG21, EG20 (EG11, EG10, EG01, EG00) 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作も兼 用しています。 EGn1 EGn0 0 0 エッジ検出なし ( 停止状態 ) ( 初期値 ) 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑ & ↓ エッジ検出極性 EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。 242 第 13 章 インプットキャプチャ 13.3 インプットキャプチャの動作 インプットキャプチャの動作について説明します。 ■ インプットキャプチャの取込みタイミング インプットキャプチャは, 設定された有効エッジを検出すると, 16ビットフリーランタ イマの値をキャプチャレジスタに取り込んで割込みを発生させることができます。 図 13.3-1 インプットキャプチャの取り込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット IN0 IN1 IN2 データレジスタ0 不定 3FFFH 不定 データレジスタ1 データレジスタ2 不定 BFFFH BFFFH 7FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ2割込み キャプチャ0: 立上りエッジ キャプチャ1: 立下りエッジ キャプチャ2: 両エッジ 再度有効エッジにより割込み発生 ソフトウェアにより割込みクリア ■ 16 ビットインプットキャプチャの入力タイミング 図 13.3-2 に 16 ビットインプットキャプチャの入力タイミングの例を示します。 図 13.3-2 16 ビットインプットキャプチャの入力タイミング φ カウンタ値 インプットキャプチャ入力 N N+1 有効エッジ キャプチャ信号 キャプチャレジスタ値 N+1 割込み 243 第 13 章 インプットキャプチャ 244 第 14 章 アウトプットコンペア アウトプットコンペアの概要 , レジスタの構成 , 機 能および動作について説明します。 14.1 アウトプットコンペアの概要 14.2 アウトプットコンペアのレジスタ 14.3 アウトプットコンペアの動作 245 第 14 章 アウトプットコンペア 14.1 アウトプットコンペアの概要 アウトプットコンペアの特長とブロックダイヤグラムを示します。 ■ アウトプットコンペアの特長 アウトプットコンペアモジュールは , ビットコンペアレジスタ , コンペア出力ラッチお よび制御レジスタで構成されています。 16 ビットフリーランタイマ値がコンペアレジスタ値と一致すると , 出力レベルが反転 し , 割込みが発行されます。 • 2 つのコンペアレジスタは独立に使用できます。 出力端子と割込みフラグはコンペアレジスタに対応しています。 • 出力端子は 2 つのコンペアレジスタの対に基づいて制御できます。 出力端子は 2 つのコンペアレジスタを使用して反転させることができます。 • 出力端子の初期値を設定できます。 • コンペア ( 比較 ) が一致したとき割込みを発生させることができます。 ■ アウトプットコンペアのレジスタ一覧 図 14.1-1 アウトプットコンペアのレジスタ一覧 OCCP( 上位バイト ) アドレス: bit 000108H(OCCP1) 00010AH(OCCP0) 15 14 13 12 11 10 9 8 C15 C14 C13 C12 C11 C10 C9 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) OCCP( 下位バイト ) アドレス: bit 000109H(OCCP1) 00010BH(OCCP0) 7 6 5 4 3 2 1 0 C7 C6 C5 C4 C3 C2 C1 C0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) OCS01( 上位バイト ) bit 15 14 13 12 11 10 9 8 アドレス:000112H OTD1 OTD0 − − − CMOD − − リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (0) (1) (1) (0) (0) 初期値 (1) OCS01( 下位バイト ) bit アドレス:000113H 7 6 5 4 3 2 1 0 ICP1 ICP0 ICE1 ICE0 CST1 CST0 − − (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (0) (0) (0) (0) (1) (1) (0) (0) 初期値 246 第 14 章 アウトプットコンペア ■ アウトプットコンペアのブロックダイヤグラム 図 14.1-2 に , アウトプットコンペアのブロックダイヤグラムを示します。 図 14.1-2 アウトプットコンペアのブロックダイヤグラム OTD1 OTD0 コンペアレジスタ コンペア 出力用ラッチ コンペア回路 OTE0 出力(ch.0) R-bus コンペアレジスタ CMOD コンペア 出力用ラッチ コンペア回路 CST1 出力(ch.1) CST0 ICP1 16ビット フリーランタイマ(0) OTE1 ICP0 ICE1 ICE0 割込み出力 割込み出力 247 第 14 章 アウトプットコンペア 14.2 アウトプットコンペアのレジスタ アウトプットコンペアで使用するレジスタの構成および機能について説明します。 ■ コンペアレジスタ (OCCP) 図 14.2-1 コンペアレジスタ (OCCP) のビット構成 OCCP( 上位バイト ) アドレス: bit 000108H(OCCP1) 00010AH(OCCP0) 15 14 13 12 11 10 9 8 C15 C14 C13 C12 C11 C10 C9 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) OCCP( 下位バイト ) アドレス: bit 000109H(OCCP1) 00010BH(OCCP0) 7 6 5 4 3 2 1 0 C7 C6 C5 C4 C3 C2 C1 C0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス タは , 初期値不定ですのでコンペア値を設定してから起動を許可してください。本レジ スタは 16 ビットまたは 32 ビットでアクセスしてください。本レジスタ値と 16 ビット フリーランタイマ値が一致した場合 , コンペア信号が発生してアウトプットコンペア 割込みフラグをセットします。また , ポートファンクションレジスタ (PFR) の対応する OTE をセットし出力許可している場合は , コンペアレジスタに対応した出力レベルを 反転します。 248 第 14 章 アウトプットコンペア ■ アウトプットコントロールレジスタ (OCS) 図 14.2-2 アウトプットコントロールレジスタ (OCS) のビット構成 OCS01( 上位バイト ) bit 15 14 13 アドレス:000112H 12 11 10 CMOD 9 8 OTD1 OTD0 − − − − − リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (0) (1) (1) (0) (0) 初期値 (1) OCS01( 下位バイト ) bit 7 6 5 4 3 2 1 0 アドレス:000113H ICP1 ICP0 ICE1 ICE0 CST1 CST0 − − リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (1) (1) (0) (0) 初期値 (0) [bit15 ∼ bit13] 未使用ビット 読出しでは必ず "1" が読み出されます。 [bit12] CMOD 出力端子を許可した場合のコンペア一致における端子出力レベル反転動作を指定 します。 CMOD = 0 ( 初期値 ) のとき , コンペアレジスタに対応した端子の出力レベルを反転 します。 OC0:コンペアレジスタ 0 の一致によりレベルを反転します。 OC1:コンペアレジスタ 1 の一致によりレベルを反転します。 CMOD = 1 のとき OC0:コンペアレジスタ 0 の一致によりレベルを反転します。 OC1:コンペアレジスタ 0 と 1 の一致によりレベルを反転します。 [bit9, bit8] OTD1, OTD0 アウトプットコンペアレジスタの出力端子を許可した場合の端子出力レベルを指 定します。指定はコンペア動作を停止してから行ってください。読出し動作では , アウトプットコンペア端子出力が読み出されます。 0:コンペア端子出力を "0" にします ( 初期値 )。 1:コンペア端子出力を "1" にします。 249 第 14 章 アウトプットコンペア [bit7, bit6] ICP1, ICP0 アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリー ランタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1, ICE0) が許可されているときに本ビットが "1" にセットされると , アウトプットコン ペア割込みが発生します。本ビットは "0" 書込みによりクリアされ , "1" 書込みは意 味を持ちません。リードモディファイライト (RMW) 系命令では "1" が読み出され ます。 0:アウトプットコンペア一致なし ( 初期値 ) 1:アウトプットコンペア一致あり フリーランタイマに外部クロックを指定した場合 , コンペア一致および割込みは次 のクロックで発生します。そのため , コンペア一致出力および割込みを発生させる ためには , コンペア一致後 , フリーランタイマの外部クロックに最低 "1 クロック " を入力する必要があります。 [bit5, bit4] ICE1, ICE0 アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割 込みフラグ (ICP1, ICP0) が "1" にセットされるとアウトプットコンペア割込みが発 生します。 0:アウトプットコンペア割込み禁止 ( 初期値 ) 1:アウトプットコンペア割込み許可 [bit3, bit2] 未使用ビット 読出しでは必ず "1" が読み出されます。 [bit1, bit0] CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許 可する前に必ずコンペアレジスタ値およびアウトプットコントロールレジスタ値 を設定してください。 0:コンペア動作禁止 ( 初期値 ) 1:コンペア動作許可 アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビットフリーランタイマを停止させるとコンペア動作も停止します。 250 第 14 章 アウトプットコンペア 14.3 アウトプットコンペアの動作 アウトプットコンペアの動作について説明します。 ■ アウトプットコンペアの動作 アウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフリーランタイ マ値とを比較して , 一致したら割込みフラグをセットするとともに , 出力レベルを反転 することができます。 図 14.3-1 に , 1 チャネル独立でコンペア動作を行った場合 (CMOD =0 のとき ) の出力波 形例を示します。 図 14.3-1 コンペアレジスタ 0, 1 を使用した場合の出力波形例 ( 出力の初期値は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OP0出力 OP1出力 コンペア0割込み コンペア1割込み 251 第 14 章 アウトプットコンペア 図 14.3-2 に , 2 組のコンペアレジスタを使い , 出力レベルを変えた場合 (CMOD = 1 のと き ) の出力波形例を示します。 図 14.3-2 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "1") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH OP0出力 OP1出力 コンペア0割込み コンペア1割込み 252 第 14 章 アウトプットコンペア ■ 16 ビットアウトプットコンペアの動作タイミング 2 組のコンペアレジスタを使い , 出力レベルを変えることができます (CMOD = 1 のと き )。 アウトプットコンペアは , フリーランタイマと , 設定したコンペアレジスタの値が一致 したときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生する ことができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイ ミングに同期して行われます。 <コンペアレジスタライトタイミング> コンペアレジスタ書換え時には , カウンタ値とはコンペアしません。 カウンタ値 N N+1 N+2 N+3 一致信号は発生しない コンペアクリアレジスタ0値 M N+1 コンペアレジスタ0ライト コンペアクリアレジスタ1値 L N+3 コンペアレジスタ1ライト コンペア0停止 コンペア1停止 <コンペアマッチ , 割込みタイミング> カウントクロック カウンタ値 コンペアレジスタ値 N N+1 N+3 N+2 N コンペアマッチ 端子出力 割込み <端子出力タイミング> カウンタ値 コンペアレジスタ値 N N+1 N+1 N+1 N コンペアマッチ 端子出力 253 第 14 章 アウトプットコンペア 254 第 15 章 U-Timer U-Timer の概要 , レジスタの構成 , 機能および動作 について説明します。 15.1 U-Timer の概要 15.2 U-Timer のレジスタ 15.3 U-Timer の動作 255 第 15 章 U-Timer 15.1 U-Timer の概要 U-Timer (16 bit timer for UART baud rate generation) の概要とブロックダイヤグ ラムを示します。 ■ U-Timer の特長 U-Timer は , UART のボーレートを発生するための 16 ビットタイマです。チップの動 作周波数と U-Timer のリロード値の組合せで任意のボーレートを設定できます。 ■ U-Timer のレジスタ一覧 U-TIMER のレジスタ一覧は , 以下のとおりです。 図 15.1-1 U-Timer のレジスタ一覧 UTIM( 上位タイマ ) bit 15 B15 (R) (0) 14 B14 (R) (0) 13 B13 (R) (0) 12 B12 (R) (0) 11 B11 (R) (0) 10 B10 (R) (0) 9 B9 (R) (0) 8 B8 (R) (0) bit 7 B7 6 B6 5 B5 4 B4 3 B3 2 B2 1 B1 0 B0 リード / ライト 初期値 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) 15 B15 (W) (0) 14 B14 (W) (0) 13 B13 (W) (0) 12 B12 (W) (0) 11 B11 (W) (0) 10 B10 (W) (0) 9 B9 (W) (0) 8 B8 (W) (0) bit 7 B7 6 B6 5 B5 4 B4 3 B3 2 B2 1 B1 0 B0 リード / ライト 初期値 (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) (W) (0) アドレス :000064H リード / ライト 初期値 UTIM( 下位タイマ ) アドレス :000065H UTIMR( 上位タイマ ) bit アドレス :000064H リード / ライト 初期値 UTIMR( 下位タイマ ) アドレス :000065H UTIMC bit 7 6 UCC1 − リード / ライト (R/W) ( − ) (−) 初期値 (0) アドレス :000067H 5 4 3 2 1 0 UTIE UNDR CLKS UTST UTCR − ( − ) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (1) (−) DRCL bit アドレス :000066H 7 − リード / ライト (W) 初期値 ( − ) 256 6 5 4 3 2 1 0 − (W) (−) − (W) (−) − (W) (−) − (W) (−) − (W) (−) − (W) (−) − (W) (−) 第 15 章 U-Timer ■ U-Timer のブロックダイヤグラム 図 15.1-2 に , U-Timer のブロックダイヤグラムを示します。 図 15.1-2 U-Timer のブロックダイヤグラム 15 0 UTIMR (リロードレジスタ) UTIM (U-Timer) 制御 アンダフロー (周辺系クロック) F/F UARTへ 257 第 15 章 U-Timer 15.2 U-Timer のレジスタ U-Timer で使用するレジスタの構成および機能を説明します。 ■ U-Timer(UTIM) UTIM( 上位タイマ ) bit 15 B15 (R) (0) 14 B14 (R) (0) 13 B13 (R) (0) 12 B12 (R) (0) 11 B11 (R) (0) 10 B10 (R) (0) 9 B9 (R) (0) 8 B8 (R) (0) bit 7 B7 6 B6 5 B5 4 B4 3 B3 2 B2 1 B1 0 B0 リード / ライト 初期値 (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) (R) (0) アドレス :000064H リード / ライト 初期値 UTIM( 下位タイマ ) アドレス :000065H UTIM はタイマの値を示します。 16 ビット転送命令でアクセスしてください。 <注意事項> UART のモード 2 ( クロック同期モード ) で U-TIMER をボーレートとして使用する場合 , リロードレジスタ (UTIMR) に 0 を設定することは禁止です。 ■ リロードレジスタ (UTIMR) UTIMR( 上位タイマ ) bit アドレス :000064H リード / ライト 初期値 15 B15 (W) (0) 14 B14 (W) (0) 13 B13 (W) (0) 12 B12 (W) (0) 11 B11 (W) (0) 10 B10 (W) (0) 9 B9 (W) (0) 8 B8 (W) (0) 7 B7 (W) (0) 6 B6 (W) (0) 5 B5 (W) (0) 4 B4 (W) (0) 3 B3 (W) (0) 2 B2 (W) (0) 1 B1 (W) (0) 0 B0 (W) (0) UTIMR( 下位タイマ ) bit アドレス :000065H リード / ライト 初期値 UTIMR は UTIM がアンダフローしたときに , UTIM にリロードされる値を格納するレ ジスタです。 16 ビット転送命令でアクセスしてください。 258 第 15 章 U-Timer ■ U-Timer 制御レジスタ (UTIMC) UTIMC は U-Timer の動作を制御します。 UTIMC bit 7 6 UCC1 − リード / ライト (R/W) ( − ) (−) 初期値 (0) アドレス :000067H 5 4 3 2 1 0 UTIE UNDR CLKS UTST SUCR − ( − ) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (1) (−) [bit7] UCC1 (U-timer Count Control) UCC1 ビットは , U-Timer のカウントの方法を制御します。 UCC1 動作 0 通常動作。 α=2n+2 1 +1 モード α=2n+3 n :UTIM の設定値 α :UART に対する出力クロックの周期 UTIMC は , UART に対して通常の 2(n+1) の周期のクロックのほかに , 奇数分周を設 定できます。UCC1 を "1" に設定すると 2n+3 の周期を発生します。 設定例: • UTIM = 5, UCC1 = 0 → 発生周期 = 2n+2 = 12 サイクル • UTIM = 25, UCC1 = 1 → 発生周期 = 2n+3 = 53 サイクル • UTIM = 60, UCC1 = 0 → 発生周期 = 2n+2 = 122 サイクル [bit6, bit5] (Reserved bit) [bit4] UTIE (Reserved bit) 常に "0" を書き込んでください。 [bit3] UNDR (Underflow Flag) UNDR は , アンダフローが発生したことを示すフラグです。UNDR はリセット また は "0" 書込みによりクリアされます。 リードモディファイライト (RMW) 系命令の読出し時は , 常に "1" が読み出されま す。また , UNDR に対する "1" 書込みは無効です。 [bit2] CLKS (Reserved bit) 常に "0" を書き込んでください。 259 第 15 章 U-Timer [bit1] UTST (U-Timer Start) UTIM のスタートビットです。 0:停止。動作中でも "0" を書き込むことにより停止します。[ 初期値 ] 1:動作。動作中に "1" を書き込んでも動作は続行されます。 [bit0] UTCR (U-Timer Clear) UTCR に "0" を書き込むと UTIM は "0000H" にクリアされます (FF も "0" にクリア )。 読出しでは常に "1" が読み出されます。 <注意事項> • ストップ状態からスタートビット UTST を有効に ( スタート ) すると自動的にリロード します。 • ストップ状態からクリアビット UTCR とスタートビット UTST を同時に有効にする と , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。 • 動作中にクリアビット UTCR を有効にするとカウンタも "0" クリアされます。このた め , 出力波形にハザードが出力される場合があり , 上位側の U-Timer が誤動作する場合 があります。出力クロックを使用している場合には , 動作中にクリアビットによる初期 化を行わないでください。 • U-Timer コントロールレジスタの bit1(U-Timer スタートビット:UTST) および , bit0 (U-Timer のクリアビット:UTCR) をタイマ停止状態で同時に有効にすると , クリアし た後のカウンタロードのタイミングで同レジスタの bit3( アンダフローフラグ:UNDR) がセットされます。また , 内部ボーレートクロックは同タイミングで "H" レベルになり ます。 • UNDRビットのセットタイミングとクリアタイミングが重複した場合には,フラグセッ トが優先されクリア動作は無効となります。 • U-Timer リロードレジスタへの書込みとリロードのタイミングが重複した場合には旧 データがカウンタにロードされ , 新データがカウンタにロードされるのは次のリロー ドのタイミングとなります。 • タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク リアが最優先されます。 ■ DMA 割込みクリアレジスタ (DRCL) DMA 割込みクリアレジスタ (DRCL) は , DMA 転送を準備するために利用します。 DRCL bit アドレス :000066H 7 − リード / ライト (W) 初期値 ( − ) 6 5 4 3 2 1 0 − (W) (−) − (W) (−) − (W) (−) − (W) (−) − (W) (−) − (W) (−) − (W) (−) 初めて DMA を利用する際は , このレジスタに一度書込みを行ってから利用してくださ い。 260 第 15 章 U-Timer 15.3 U-Timer の動作 U-Timer のボーレートの計算を示します。 ■ ボーレートの計算 UART は対応する U-Timer のアンダフローフリップフロップ ( 図中 F/F) をボーレート 用クロックソースとして使用します。 ● 非同期 ( 調歩同期 ) モード UART は , U-Timer の出力を 16 分周して使用します。 n … U-Timer( リロード値 ) φ… 周辺系マシンクロック周波数 ( ギアにより変動 ) bps = φ / {(2n + 2) × 16} :UCC1 = 0 bps = φ / {(2n + 3) × 16} :UCC1 = 1 ● クロック同期モード n … U-Timer( リロード値 ) φ… 周辺系マシンクロック周波数 ( ギアにより変動 ) bps = φ / (2n + 2) :UCC1 = 0 bps = φ / (2n + 3) :UCC1 = 1 <注意事項> UART のモード 2 ( クロック同期モード ) で U-Timer をボーレートとして使用する場合 , リロードレジスタ (UTIMR) に 0 を設定することは禁止です。 261 第 15 章 U-Timer 262 第 16 章 外部バスインタフェース 外部バスインタフェース , 内部バスと外部のメモリ および I/O デバイスとのインタフェースを制御しま す。 16.1 外部バスインタフェースの概要 16.2 外部バスインタフェースのレジスタ 16.3 外部バスインタフェースのエンディアンとバスアクセ ス 16.4 外部バスインタフェースの通常バスインタフェース 16.5 外部バスインタフェースのレジスタ設定手順 16.6 外部バスインタフェース使用上の注意 263 第 16 章 外部バスインタフェース 16.1 外部バスインタフェースの概要 外部バスインタフェースの特長とブロックダイヤグラムを説明します。 ■ 外部バスインタフェースの特長 • 16 ビット長のアドレス出力 • データバス幅 , 8 ビット /16 ビット • 各種外部メモリ (8 ビット /16 ビット品 ) を直結できるほか , 複数のアクセスタイミ ングを混在制御可能 非同期 SRAM, 非同期 ROM/ フラッシュメモリ ( 複数ライトストローブ方式またはバ イトイネーブル方式 ) • 独立した 4 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ プセレクト出力が可能 CS0X, CS1X は , 64K/128K/256K/512K バイト単位で , "003FFFFFH" までの外部バス 領域に割り当てられた空間に設定可能 CS2X, CS3X は , 1M/2M/4M/8M バイト単位で , "00400000H" ∼ "00FFFFFFH" の空間 に設定可能 領域サイズによりバウンダリの制限あり <注意事項> 本品種では領域サイズを大きく指定しても , 64K バイトのイメージとなります。 • チップセレクト領域ごとに以下の機能を独立に設定可能 チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません ) 各種メモリ対応などのアクセスタイミングタイプ設定 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 ) データバス幅設定 (8 ビット /16 ビット ) - アクセスタイミングタイプごとに異なる詳細なタイミングを設定可能 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能 - オートウェイトは , 最大 7 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能 • 外部インタフェースの未使用端子は , 設定により汎用 I/O ポートとして使用可能 264 第 16 章 外部バスインタフェース ■ 外部バスインタフェースのブロックダイヤグラム 図 16.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。 図 16.1-1 外部バスインタフェースのブロックダイヤグラム 内部アドレスバス 32 内部データバス 32 外部データバス ライトバッファ スイッチ リードバッファ スイッチ データブロック アドレスブロック +1 または +2 外部アドレスバス アドレスバッファ ASR CS0X-CS3X ASZ コンパレータ 外部端子制御部 RDX WR0X, WR1X, ASX 全ブロック制御 レジスタ制御部 RDY SYSCLK 265 第 16 章 外部バスインタフェース ■ I/O 端子 外部バスインタフェースの端子です。 <通常バスインタフェース> A15 ∼ A00, D15 ∼ D0 CS0X, CS1X, CS2X, CS3X ASX, SYSCLK RDX WR0X, WR1X RDY ■ 外部バスインタフェースのレジスタ一覧 外部バスインタフェースのレジスタ構成は , 以下のとおりです。 図 16.1-2 外部バスインタフェースのレジスタ一覧 アドレス bit 31 24 23 16 15 8 7 00000640H ASR0 ACR0 00000644H ASR1 ACR1 00000648H ASR2 ACR2 0000064CH ASR3 ACR3 00000650H 予約 予約 00000654H 予約 予約 00000658H 予約 予約 0000065CH 予約 予約 00000660H AWR0 AWR1 00000664H AWR2 AWR3 00000668H 予約 予約 0000066CH 予約 予約 00000670H − − − − 00000674H − − − − 00000678H − − − − 0000067CH − − − − 00000680H CSER − − − 00000684H − − − − 00000688H − − − − 0000068CH − − − − … … … … … 000007F8H − − − − 000007FCH − MODR − − 予約:予約レジスタです。書き込む場合は , 必ず "0" を設定してください。 266 0 第 16 章 外部バスインタフェース 16.2 外部バスインタフェースのレジスタ 外部バスインタフェースのレジスタについて説明します。 ■ 外部バスインタフェースのレジスタ概要 外部バスインタフェースには , 以下の 6 種類のレジスタがあります。 • ASR0 ∼ ASR3(Area Select Register) • ACR0 ∼ ACR3(Area Configuration Register) • AWR0 ∼ AWR3(Area Wait Register) • IOWR0 ∼ IOWR3(I/O Wait Register for DMAC) • CSER(Chip Select Enable register) ■ ASR0 ∼ ASR3 (Area Select Register) 図 16.2-1 ASR0 ∼ ASR3 (Area Select Register) のビット構成 ASR0 bit 15 アドレス: 0000 0640H − ASR1 bit 15 アドレス: 0000 0644H − ASR2 bit 15 アドレス: 0000 0648H − ASR3 bit 15 アドレス: 0000 064CH − 8 … … − … … … − 8 … … … − … … … − 8 8 7 A23 6 A22 … … 1 A17 0 A16 初期値 0000H アクセス R/W 7 A23 6 A22 … 1 A17 0 A16 XXXXH R/W 7 A23 6 A22 … 1 A17 0 A16 XXXXH R/W 7 A23 6 A22 … 1 A17 0 A16 XXXXH R/W [bit15 ∼ bit8] (Reserved bit) 必ず , "0000H" を設定してください。 [bit7 ∼ bit0] A23 ∼ A16 ASR0 ∼ ASR3(Area Select Register 0 ∼ 3) は , CS0X ∼ CS3X の各チップセレクト領 域の開始アドレスを指定します。 開始アドレスは , A[23:16] の上位 12 ビットを設定できます。各チップセレクト領域 は, このレジスタに設定されたアドレスから始まり, ACR0∼ACR3レジスタのASZ1, ASZ0 ビットで設定された範囲をとります。 各チップセレクト領域のバウンダリは , ACR0 ∼ ACR3 レジスタの ASZ1, ASZ0 ビッ トの設定に従います。例えば , ASZ1, ASZ0 ビットにより , 1 M バイトの領域を設定し た場合は , ASR0 ∼ ASR3 レジスタの下位 4 ビットは無視され , A[23:20] ビットのみ 意味を持ちます。 267 第 16 章 外部バスインタフェース ASR0 レジスタは , INIT および RST により "00H" に初期化されます。ASR1 ∼ ASR3 は , INIT および RST によっては初期化されず不定となります。LSI の動作開始後 , CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR レジスタを設定してください。 <注意事項> ASR と ACR はワードアクセスで同時設定してください。 ASR, ACRをハーフワードでアクセスする場合にはASR設定後ACRを設定してください。 ■ ACR0 ∼ ACR3 (Area Configuration Register) 図 16.2-2 ACR0 ∼ ACR3 (Area Configuration Register) のビット構成 ACR0H bit 15 14 アドレス: 0000 0642H − − ACR0L bit 7 6 アドレス: 0000 0643H − − ACR1H bit 15 14 アドレス: 0000 0646H − − ACR1L bit 7 6 アドレス: 0000 0647H − − ACR2H bit 15 14 アドレス: 0000 064AH − − ACR2L bit 7 6 アドレス: 0000 064BH − − ACR3H bit 15 14 アドレス: 0000 064EH − − ACR3L bit 7 6 アドレス: 0000 064FH − − 13 ASZ1 12 ASZ0 11 10 DBW0 9 8 − − − 5 WREN 4 − 3 TYP3 2 TYP2 1 TYP1 0 TYP0 13 ASZ1 12 ASZ0 11 10 DBW0 9 8 − − 5 WREN 4 − 3 TYP3 2 TYP2 1 TYP1 13 ASZ1 12 ASZ0 11 10 DBW0 9 8 − − 5 WREN 4 − 3 TYP3 2 TYP2 13 ASZ1 12 ASZ0 11 − 10 DBW0 5 WREN 4 − 3 TYP3 2 TYP2 初期値 アクセス xx110*00B R/W 00000000B R/W − 0xxx0x00B R/W 0 TYP0 00x0xxxxB R/W − xxxx0x00B R/W 1 TYP1 0 TYP0 00x0xxxxB R/W 9 8 − − 01xx0x00B R/W 1 TYP1 0 TYP0 00x0xxxxB R/W *: モードベクタの WTH ビットと同じ値に自動設定 ACR0 ∼ ACR3(Area Configuration Register 0 ∼ 3) は , 各チップセレクト領域の機能を設 定します。 [bit15, bit14] (Reserved bit) 必ず , "00B" を設定してください。 268 第 16 章 外部バスインタフェース [bit13, bit12] ASZ1, ASZ0 = Area Size bit [1:0] 各チップセレクト領域のサイズを以下のとおり設定します。 ASZ1 ASZ0 レジスタ 各チップセレクト領域のサイズ 0 0 64K バイト 0 1 128K バイト (00020000H バイト , ASR A[23:17] ビット指定が有効 ) 1 0 256K バイト (00040000H バイト , ASR A[23:18] ビット指定が有効 ) 1 1 512K バイト (00080000H バイト , ASR A[23:19] ビット指定が有効 ) 0 0 1M バイト (00100000H バイト , ASR A[23:20] ビット指定が有効 ) 0 1 2M バイト (00200000H バイト , ASR A[23:21] ビット指定が有効 ) 1 0 4M バイト (00400000H バイト , ASR A[23:22] ビット指定が有効 ) 1 1 8M バイト (00800000H バイト , ASR A[23] ビット指定のみ有効 ) 設定 (00010000H バイト , ASR A[23:16] ビット指定が有効 ) ASR0/ASR1 ASR2/ASR3 CS0X, CS1X のみ 有効 CS2X, CS3X のみ 有効 ASZ1, ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各領 域のサイズを設定します。そのため , ASR には比較されないビットが存在します。 ACR0 の ASZ1, ASZ0 ビットは , RST により "11B" に初期化されますが , この設定に かかわらず RST 直後の CS0 領域は特別に "00000000H" から "00FFFFFFH" ( 全領域 ) に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され , 上記 の表に従ったサイズに設定されます。 <注意事項> 本品種では領域サイズを大きく指定しても , 64K バイトのイメージとなります。 [bit11] (Reserved bit) 必ず , "0" を設定してください。 [bit10] DBW0 = Data Bus Width[0] 各チップセレクト領域のデータバス幅を以下のとおり設定します。 DBW0 データバス幅 0 8 ビット 1 16 ビット ( ハーフワードアクセス ) ( バイトアクセス ) ACR0 の DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビットの 値と同じ値が自動的に書き込まれます。 [bit9, bit8] (Reserved bit) 必ず , "00B" を設定してください。 269 第 16 章 外部バスインタフェース [bit7] (Reserved bit) 必ず , "0" を設定してください。 [bit6] (Reserved bit) 必ず , "0" を設定してください。 [bit5] WREN = WRite ENable 各チップセレクト領域の書込みの許可・禁止を設定します。 WREN 書込み許可・禁止 0 書込み禁止 1 書込み許可 書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その アクセスは無視され , 外部アクセスを一切行いません。 データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。 [bit4] (Reserved bit) 必ず , "0" を設定してください。 [bit3 ∼ bit0] TYP3, TYP2, TYP1, TYP0 = TYPe select 各チップセレクト領域のアクセスタイプの設定を以下に示します。 TYP3 TYP2 TYP1 TYP0 アクセスタイプ 0 X X 通常アクセス ( 非同期 SRAM, I/O, single ROM/Flash) 1 X X 設定禁止 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 マスク領域設定 ( アクセスタイプは重複した領域のも のになります )* 各ビットは , 組み合せて設定します。 270 第 16 章 外部バスインタフェース *:CS 領域マスク設定機能 ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更 した領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP[3:0]=1111B を 設定し , マスク設定領域として機能させることができます。 マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定 は禁止します。 マスク設定領域へのアクセスは , 以下のような動作を行います。 - マスク設定領域に対応する CSX は有効とされません。 - ベース設定領域に対応する CSX が有効とされます。 - ACR の以下の設定はマスク設定領域側のものが有効になります。 bit10: DBW0:バス幅設定 bit5: WREN:ライト許可設定 ( 注意事項 ) この設定のみ , ベース設定領域と異なる設定は禁止します。 - ACR の以下の設定はベース設定領域側のものが有効になります。 bit[3:0] TYP[3:0]:アクセスタイプ設定 - AWR の設定はマスク設定領域側のものが有効になります。 マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設 定できます。ベース設定領域がない領域に対して , マスク設定領域を設けては いけません。また , マスク設定領域を複数重複させてはいけません。ASR およ び ACR:ASZ[1:0] ビットの設定には十分注意してください。 <注意事項> ライト許可設定をマスクで実現することはできません。 ライト許可設定は , ベースとなる CS 領域とマスク設定領域とで , 同じ設定にしてくださ い。 マスク設定領域でライト禁止を設定すると , その領域はマスクされずベース CS 領域とし て動作します。 ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定すると , ベー ス設定のない領域となり誤動作します。 271 第 16 章 外部バスインタフェース ■ AWR0 ∼ AWR3 (Area Wait Register) AWR0 ∼ AWR3 のレジスタ構成を以下に示します。 図 16.2-3 AWR0 ∼ AWR3 (Area Wait Register) のビット構成 AWR0H bit 15 アドレス: 0000 0660H − AWR0L bit 7 アドレス: 0000 0661H − AWR1H bit 15 アドレス: 0000 0662H − AWR1L bit 7 アドレス: 0000 0663H − AWR2H bit 15 アドレス: 0000 0664H − AWR2L bit 7 アドレス: 0000 0665H − AWR3H bit 15 アドレス: 0000 0666H − AWR3L bit 7 アドレス: 0000 0667H − 14 W14 13 W13 12 W12 11 10 9 8 − − − − 6 W06 5 3 − 4 W04 − 2 W02 1 W01 0 W00 14 W14 13 W13 12 W12 11 10 9 8 − − − 6 W06 5 3 − 4 W04 − 2 W02 14 W14 13 W13 12 W12 11 6 W06 5 − 4 W04 14 W14 13 W13 12 W12 6 W06 5 − 4 W04 初期値 アクセス 01110000B R/W 01011011B R/W − xxxx0000B R/W 1 W01 0 W00 xx0x1xxxB R/W 10 9 8 − − − − 0xxx0000B R/W 3 − 2 W02 1 W01 0 W00 xx0x1xxxB R/W 11 10 9 8 − − − − 0xxx0000B R/W 3 2 W02 1 W01 0 W00 0x0x1xxxB R/W − AWR0 ∼ AWR3 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。 ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP[3:0] ビット ) の設定により , 各ビット の動作が変わります。 [bit15] (Reserved bit) 必ず , "0" を設定してください。 [bit14 ∼ bit12] W14 ∼ W12 = ファーストアクセスウェイトサイクル (First Access Wait Cycle) 各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設 定します。 272 第 16 章 外部バスインタフェース CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。 W14 W13 W12 0 0 0 自動ウェイトサイクル 0 0 0 1 自動ウェイトサイクル 1 ファーストアクセスウェイトサイクル … … 1 1 0 自動ウェイトサイクル 6 1 1 1 自動ウェイトサイクル 7 [bit11 ∼ bit7] (Reserved bit) 必ず , "00000B" を設定してください。 [bit6] W06 = リード→ライトアイドルサイクル (Read → Write Idle Cycle) リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場 合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子 はハイインピーダンス状態を維持します。 リード後にライトが続く場合 , もしくは , リードの後に別のチップセレクト領域へ のアクセスが発生した場合に , 指定したアイドルサイクルを挿入します。 W06 リード→ライトアイドルサイクル 0 0 サイクル 1 1 サイクル [bit5] (Reserved bit) 必ず "0" を設定してください。 [bit4] W04 = ライトリカバリサイクル (Write Recovery Cycle) ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制 限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイ クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ ンスを維持します。 ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルが挿入されます。 W04 ライトリカバリサイクル 0 0 サイクル 1 1 サイクル 273 第 16 章 外部バスインタフェース [bit3] (Reserved bit) 必ず "1" を設定してください。 [bit2] W02 = アドレス→ CSX 遅延 (Address → CSX Delay) アドレス→ CSX 遅延設定は , CSX の立下りに対してアドレスなどが一定のセット アップを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際 にも CSX のエッジを必要とする場合などに設定します。 アドレスおよび ASX 出力から , CS0X ∼ CS3X 出力のディレイを設定します。 W02 アドレス→ CSX 遅延 0 遅延なし 1 遅延あり "0" を設定し , 遅延なしを選択した場合は , ASX のアサートと同じタイミングで CS0X ∼ CS3X がアサート開始されます。このとき , 同じチップセレクト領域に連 続したアクセスを実行した場合 , 両アクセスの間も CS0X ∼ CS3X はアサートを継 続したまま変化しないことがあります。 "1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック SYSCLK 出力の立 上りから CS0X ∼ CS3X がアサート開始されます。このとき , 同じチップセレクト 領域に連続したアクセスを実行した場合でも , 両アクセスの間に CS0X ∼ CS3X ネ ゲートタイミングが発生します。 CSX 遅延ありを選択した場合は , 遅延させた CSX のアサートからリード / ライトス トローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01 の CSX → RDX/WRX セットアップ設定と同等の動作となります )。 [bit1] W01 = CSX → RDX/WRX セットアップ延長サイクル (CSX → RDX/WRX setup) CSX → RDX/WRX セットアップ延長サイクルは , CSX アサート後 , リード / ライト ストローブをアサートするまでの期間を延長する場合に設定します。CSX アサート 後 , リード / ライトストローブをアサートする前に最低 1 サイクルのセットアップ 延長サイクルを挿入します。 W01 CSX → RDX/WRX セットアップ延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , 最速で , CSX アサート直後の外部メ モリクロック SYSCLK 出力の立上りから RDX/WR0X, WR1X が出力されます。 WR0X, WR1X は , 内部バスの状態により , 1 サイクル以上遅れることもあります。 "1" を設定し , 1 サイクルを選択した場合は , RDX/WR0X, WR1X とも , 必ず 1 サイ クル以上遅れて出力されます。 同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場 合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延 を挿入することにより , 毎アクセス時に CSX がいったんネゲートされるため , この 274 第 16 章 外部バスインタフェース セットアップ延長サイクルが有効となります。 W02 の CSX 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ トアップサイクルが有効となります。 [bit0] W00 = RDX/WRX → CSX ホールド延長サイクル (RDX/WRX → CSX Hold Cycle) RDX/WRX → CSX ホールド延長サイクルは , リード / ライトストローブネゲート後 , CSX ネゲートまでの期間を延長する場合に設定します。リード / ライトストローブ ネゲート後 , CSX をネゲートする前に 1 サイクルのホールド延長サイクルを挿入し ます。 W00 RDX/WRX → CSX ホールド延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , RDX/WR0X, WR1X がネゲートされた後 の外部メモリクロック SYSCLK 出力の立上りエッジよりホールド遅延経過後に , CS0X ∼ CS3X がネゲートされます。 "1" を設定し , 1 サイクルを選択した場合は , CS0X ∼ CS3X は 1 サイクル遅れてネ ゲートされます。 同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場 合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ イクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延を挿入す ることにより , 毎アクセス時に CSX がいったんネゲートされるため , このホールド 延長サイクルが有効となります。 ● 通常アクセスおよびアドレス / データマルチプレックスアクセス ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP[3:0] ビット ) に以下の設定を行った チップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレックスアクセ ス動作を行う領域となります。 TYP3 TYP2 TYP1 TYP0 0 0 x x 通常アクセス ( 非同期 SRAM, I/O, single ROM/Flash) 0 1 x x アドレスデータマルチプレックスアクセス (8/16 ビットバス幅限定 ) ( 設定禁止 ) アクセスタイプ 通常アクセスまたはアドレス / データマルチプレックスアクセス領域に対しての , AWR0 ∼ AWR3 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定です ので , 各領域を CSER レジスタによって有効にする前に設定を行ってください。 <注意事項> MB91245/S シリーズでは , アドレス / データマルチプレックスアクセス動作設定はできませ ん。 275 第 16 章 外部バスインタフェース ■ CSER (Chip Select Enable register ) bit 31 30 29 28 アドレス: 0000 0680H − − − − 27 CSE3 26 CSE2 25 CSE1 24 CSE0 初期値 アクセス 00000001B R/W 各チップセレクト領域の許可 / 禁止を設定します。 [bit31 ∼ bit28] (Reserved bit) 必ず , "0000B" を設定してください。 [bit27 ∼ bit24] CSE3 ∼ CSE0 = チップセレクト領域許可 (Chip select enable 0-3) CS0X ∼ CS3X の各チップセレクト領域許可ビットです。 初期値は , "0001B" で CS0 領域のみ許可されています。 "1" を書き込むことにより ASR0 ∼ ASR3, ACR0 ∼ ACR3, AWR0 ∼ AWR3 の設定に 従い動作します。 許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってくださ い。 CSE3 ∼ CSE0 領域コントロール 0 禁止 1 許可 CSE のビット 対応する CSX bit24 : CSE0 CS0X bit25 : CSE1 CS1X bit26 : CSE2 CS2X bit27 : CSE3 CS3X ● チップセレクト領域 外部バスインタフェースは全 4 領域分のチップセレクト領域が設定できます。 各領域のアドレス空間は ASR0 ∼ ASR3 (Area Select Register) と ACR0 ∼ ACR3 (Area Configuration Register) にて 16M バイトの空間のうち , CS0X, CS1X は , 64K/128K/256K/ 512K バイト単位で , "00000000H" ∼ "003FFFFFH" までの外部バス領域に割り当てられ た空間に , CS2X, CS3X は , 1M/2M/4M/8M バイト単位で , "00400000H" ∼ "00FFFFFFH" の空間に設定可能です。 これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス サイクル中に対応するチップセレクト信号 CS0X ∼ CS3X がアクティブ ("L" 出力 ) に なります。 276 第 16 章 外部バスインタフェース ASR および ASZ[1:0] の設定例 ・ASR1=0010H ACR1 → ASZ[1:0]=00B チップセレクト領域 1 は , "00100000H" ∼ "0010FFFFH" に割り当てられます。 ・ASR2=0040H ACR2 → ASZ[1:0]=00B チップセレクト領域 2 は ," 00400000H" ∼ "004FFFFFH" に割り当てられます。 ・ASR3=0081H ACR3 → ASZ[1:0]=11B チップセレクト領域 3 は , "00800000H" ∼ "00FFFFFFH" に割り当てられます。 このとき , ACR → ASZ[1:0] が 8M バイトの設定になっていますので , バウンダリは 8M バイト単位となり , ASR3[22:16] は無視されます。 リセット後は , ACR0 に書込みが行われるまでの間 , "00000000H"∼ "00FFFFFFH" がチッ プセレクト領域 0 に割り当てられます。 <注意事項> チップセレクト領域は , お互いにオーバラップしないように設定してください。 図 16.2-4 領域サイズによるバウンダリについて (初期値) (例) 00000000H 00000000H 00100000H 領域1 64Kバイト 00400000H 領域2 1Mバイト 領域0 領域3 00800000H 8Mバイト 00FFFFFFH 00FFFFFFH 277 第 16 章 外部バスインタフェース 16.3 外部バスインタフェースのエンディアンとバスアクセス エンディアンとバスアクセスについて説明します。 ■ エンディアンの概要 FR ファミリは特定の領域を除いて , チップセレクトごとにビッグエンディアンとリト ルエンディアンを切り換えて使用することができます。 ■ データバス幅と制御信号との関係 WRX[1:0] の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に 1 対 1 に対応します。 バスモード別に設定されたデータバス幅で使用されるデータバスのバイト位置とそれ に対応する制御信号を下記に示します。 • 通常バスインタフェース a) 16ビットバス幅 データバス 制御信号 D15 b) 8ビットバス幅 データバス 制御信号 WR0X WR1X D00 WR0X - - - - - - - - - - • 時分割入出力インタフェース a) 16ビットバス幅 データバス 出力アドレス b) 8ビットバス幅 制御信号 データバス 出力アドレス 制御信号 D15 A15~A8 WR0X A7~A0 WR1X D00 278 A7~A0 WR0X - - - - - - - - - - - - - - - 第 16 章 外部バスインタフェース ■ バスアクセス 本品種は , ビッグエンディアンで外部バスアクセスを行います。 ● データバス幅 • 16 ビットバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 AA D23 BB D15 CC D07 DD リード/ライト "00B" "10B" AA CC D15 BB DD D07 • 8 ビットバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 AA D23 BB D15 CC D07 DD リード/ライト "00B" "01B" "10B" "11B" AA BB CC DD D07 ● 外部バスアクセス 外部バスアクセス (16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バイトアクセ ス別に以下示します。また , 下記の項目についてもあわせて示します。 • アクセスバイト位置 • プログラムアドレスと出力アドレス • バスアクセス回数 をまとめます。 PA1/PA0 : プログラムで指定したアドレス下位 2 ビット 出力 A1/A0 : 出力するアドレスの下位 2 ビット : 出力するアドレスの先頭バイト位置 : アクセスするデータバイト位置 : バスアクセス回数 + ①∼④ FR ファミリは , ミスアラインエラーを検出しません。 したがってワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビットが "00B", "01B", "10B", "11B" であっても , 出力するアドレスの下位 2 ビットはすべて "00B" と なり , ハーフワードアクセスの場合には "00B", "01B" のときには "00B" に , "00B", "01B" のときには "10B" になります。 279 第 16 章 外部バスインタフェース • 16 ビットバス幅 (A) ワードアクセス (a) PA1/PA0=00B (b) PA1/PA0=01B →①出力A1/A0=00B ②出力A1/A0=10B MSB →①出力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ビット (B) ハーフワードアクセス (a) PA1/PA0=00B (b) PA1/PA0=01B →①出力A1/A0=00B ① 00 01 10 11 →①出力A1/A0=00B ① 00 01 10 11 (c)PA1/PA0=10B →①出力A1/A0=10B ① 00 01 10 11 (d)PA1/PA0=11B →①出力A1/A0=10B ① 00 01 10 11 (C) バイトアクセス (a) PA1/PA0=00B (b) PA1/PA0=01B →①出力A1/A0=00B ① 280 00 01 10 11 →①出力A1/A0=01B ① 00 01 10 11 (c)PA1/PA0=10B →①出力A1/A0=10B ① 00 01 10 11 (d)PA1/PA0=11B →①出力A1/A0=11B ① 00 01 10 11 第 16 章 外部バスインタフェース • 8 ビットバス幅 (A) ワードアクセス (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ビット (B) ハーフワードアクセス (a) PA1/PA0=00B (b) PA1/PA0=01B →①出力A1/A0=00B ②出力A1/A0=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 (C) バイトアクセス (a) PA1/PA0=00B (b) PA1/PA0=01B →①出力A1/A0=00B ① →①出力A1/A0=01B 00 01 ① (c)PA1/PA0=10B →①出力A1/A0=10B (d)PA1/PA0=11B →①出力A1/A0=11B 00 00 00 01 01 01 10 10 10 10 11 11 ① 11 ① 11 281 第 16 章 外部バスインタフェース ● 外部との接続例 図 16.3-1 に MB91245/S シリーズと外部装置との接続の例を示します。 図 16.3-1 外部との接続例 MB91245/Sシリーズ D08 WR0X D00 WR1X ~ D07 ~ D15 *:8ビットデバイスの場合は、MB91245/S シリーズのMSB側のデータバスを使用します。 0 1 0 D15 D08D07 D00 16ビットデバイス* D07 D00 8ビットデバイス* ("0"/"1" アドレス下位1ビット) ■ 外部アクセス (a) ワード (32 ビット ) アクセス ビッグエンディアンモード 内部レジスタ 外部端子 アドレス: "0" D31 "2" D15 AA 16 ビット バス幅 制御端子 BB AA CC WR0X BB DD WR1X D00 CC - - - DD - - - ① ② D00 内部レジスタ 外部端子 アドレス: "0" "1" 制御端子 "2" "3" D15 D31 AA BB CC DD WR0X BB - - - - - CC - - - - - DD - - - - - AA D00 8 ビット バス幅 D00 ① 282 ② ③ ④ 第 16 章 外部バスインタフェース (b) ハーフワード (16 ビット ) アクセス ビッグエンディアンモード 内部レジスタ 外部端子 制御端子 アドレス: "0" D31 D15 AA WR0X BB WR1X D00 AA - - BB - - D00 16 ビット バス幅 ① 内部レジスタ 外部端子 アドレス: D31 制御端子 "2" D15 D00 CC WR0X DD WR1X CC - - DD - - D00 ① 内部レジスタ 外部端子 アドレス: D31 制御端子 "0" "1" D15 AA BB WR0X D08 - - - AA - - - BB - - - ① ② D00 8 ビット バス幅 内部レジスタ 外部端子 アドレス: D31 制御端子 "2" "3" D15 CC DD WR0X D08 - - - CC - - - DD - - - ① ② D00 283 第 16 章 外部バスインタフェース (c) バイト (8 ビット ) アクセス ビッグエンディアンモード 内部レジスタ 外部端子 制御端子 アドレス: "0" D31 D15 AA WR0X - D00 - - AA D00 ① 内部レジスタ 外部端子 アドレス: D31 制御端子 "1" D15 - BB WR1X D00 - - BB D00 16 ビット バス幅 ① 内部レジスタ 外部端子 制御端子 アドレス: "2" D31 D15 CC WR0X - D00 - - CC D00 ① 内部レジスタ 外部端子 アドレス: D31 制御端子 "3" D15 - DD WR1X D00 - - DD D00 ① 284 第 16 章 外部バスインタフェース ビッグエンディアンモード 内部レジスタ 外部端子 制御端子 アドレス: "0" D31 D15 AA WR0X D08 - - - AA D00 ① 内部レジスタ 外部端子 アドレス: D31 制御端子 "1" D15 BB WR0X D08 - - - BB D00 8 ビット バス幅 ① 内部レジスタ 外部端子 アドレス: D31 制御端子 "2" D15 CC WR0X D08 - - - CC D00 ① 内部レジスタ 外部端子 アドレス: D31 制御端子 "3" D15 DD WR0X D08 - - - DD D00 ① 285 第 16 章 外部バスインタフェース 16.4 外部バスインタフェースの通常バスインタフェース 通常バスインタフェースでは , リードアクセス / ライトアクセスともに 2 クロックサ イクルが基本バスサイクルになります。 ■ 通常バスインタフェース 通常バスインタフェースにおける以下の動作について , タイミングチャートを示して 説明します。 • 基本タイミング ( アクセスが連続する場合 ) • WRnX +バイト制御タイプ • リード→ライトタイミング • ライト→ライトタイミング • 自動ウェイトタイミング • 外部ウェイトタイミング • CSnX 遅延設定 • CSnX → RDX/WRX セットアップ , RDX/WRnX → CSnX ホールド設定 ■ 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0] = 0000B, AWR = 0008H) 図 16.4-1 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0] = 0000B, AWR = 0008H) SYSCLK A[15:0] #2 #1 ASX CSnX RDX リード D[15:0] #2 #1 WRnX ライト D[15:0] #1 #2 • ASX は , バスアクセス開始サイクルに 1 サイクル有効にします。 • A[15:0] は , ワード / ハーフワード / バイト アクセスの先頭バイト位置のアドレスを バスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。 286 第 16 章 外部バスインタフェース • CS0X ∼ CS3X は , AWR0 ∼ AWR3 レジスタの W02 ビットが "0" のときは , ASX と 同じタイミングで有効にし , 連続するアクセスがあるときは , CS0X ∼ CS3X を無効 にしません。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0X ∼ CS3X を無効にし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイク ル後に無効にします。 • RDX, WR0X, WR1X は , バスアクセス第 2 サイクルから有効にします。AWR レジス タ W14 ∼ W12 ビットのウェイトサイクルを挿入した後に無効にします。RDX, WR0X, WR1X を有効にするタイミングは AWR レジスタ W01 ビットを "1" に設定 することにより 1 サイクル遅らせることができます。ただし , WR0X, WR1X は内部 状態により W01 ビットを "0" に設定した場合も第二サイクルより遅れることがあり ます。 • リードアクセスの場合 , RDX 有効後 , ウェイトサイクルが終了したサイクルの SYSCLK の立上りで D[15:0] を取り込みます。 • ライトアクセスの場合 , WR0X, WR1X を有効にしたタイミングから D[15:0] にデー タを出力します。 ■ リード → ライトタイミング (TYP[3:0]=0000B, AWR=0048H) 図 16.4-2 リード → ライトタイミング (TYP[3:0]=0000B, AWR=0048H) リード アイドル ライト SYSCLK A[23:0] ASX CSnX RDX WRnX D[31:16] • AWR レジスタ W06 ビットの設定により , 0 から 1 サイクルまでのアイドルサイク ル挿入が可能です。 • リード側の CS 領域の設定が有効になります。 • リードアクセスの次のアクセスがライトアクセスまたは別の領域へのアクセスで ある場合 , このアイドルサイクルを挿入します。 287 第 16 章 外部バスインタフェース ■ ライト → ライトタイミング (TYP[3:0]=0000B, AWR=0018H) 図 16.4-3 ライト → ライトタイミング (TYP[3:0]=0000B, AWR=0018H) ライト ライトリカバリ ライト SYSCLK A[23:0] ASX CSnX WRnX D[31:16] • AWR レジスタ W04 ビットの設定により , 0 から 1 サイクルまでのライトリカバリ サイクルを挿入可能です。 • すべてのライトサイクル後に , リカバリサイクルが発生します。 • 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ トリカバリサイクルは発生します。 288 第 16 章 外部バスインタフェース ■ 自動ウェイトタイミング (TYP[3:0]=0000B, AWR=2008H) 図 16.4-4 自動ウェイトタイミング (TYP[3:0]=0000B, AWR=2008H) 基本サイクル ウェイトサイクル SYSCLK A[23:0] ASX CSnX RDX リード D[31:16] WRnX ライト D[31:16] • AWR レジスタ W14 ∼ W12 ビット ( ファーストウェイトサイクル ) の設定により自 動ウェイトサイクルを 0 ∼ 7 まで設定可能です。 • 上図では , 自動ウェイトサイクルを 2 サイクル挿入し , 合計 4 サイクルのアクセス となっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル +( ファーストウェイトサイクル ) となります。ライトの場合は内部状態によりさら に長くなることがあります。 289 第 16 章 外部バスインタフェース ■ 外部ウェイトタイミング (TYP[3:0]=0001B, AWR=2008H) 図 16.4-5 外部ウェイトタイミング (TYP[3:0]=0001B, AWR=2008H) 基本サイクル 自動ウェイト2サイクル RDYによる ウェイトサイクル SYSCLK A[23:0] ASX CSnX RDX リード D[31:16] WRnX ライト D[31:16] RDY 解除 ウェイト ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることによ り外部ウェイトサイクルを挿入可能です。 上図において , 自動ウェイトサイクルによるウェイトが有効であるため , RDY 端子の 斜線部分は無効になります。自動ウェイトサイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。また , いったんウェイトサイクルを終了した後は , 次のア クセスサイクルの開始まで , RDY 入力端子の値は無効になります。 290 第 16 章 外部バスインタフェース ■ CSX 遅延設定 (TYP[3:0]=0000B, AWR=000CH) 図 16.4-6 CSX 遅延設定 (TYP[3:0]=0000B, AWR=000CH) アクセスサイクル アクセスサイクル SYSCLK A[23:0] ASX CSnX RDX リード D[31:16] WRnX ライト D[31:16] W02 ビットが "1" のときは ASX アサートの次のサイクルからアサートし , 連続するア クセスがある場合ネゲート期間を挿入します。 291 第 16 章 外部バスインタフェース ■ CSX → RDX/WRX セットアップ・RDX/WRnX → CSX ホールド設定 (TYP[3:0]=0000B, AWR=000BH) 図 16.4-7 CSX → RDX/WRX セットアップ・RDX/WRnX → CSX ホールド設定 (TYP[3:0]=0000B, AWR=000BH) アクセスサイクル SYSCLK A[23:0] ASX CSnX CSX->RDX/WRX Delay RDX/WRX->CSX Delay RDX リード D[31:16] WRnX ライト D[31:16] • AWR レジスタ W01 ビットを "1" に設定することにより , CSX → RDX/WRnX セッ トアップディレイを設定可能です。チップセレクトアサート後 , リード / ライトス トローブまでの期間を延長する場合に設定します。 • AWR レジスタ W00 ビットを "1" に設定することにより , RDX/WRnX → CSX ホー ルドディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレ クトネゲートまでの期間を延長する場合に設定します。 • CSX → RDX/WRnX セットアップディレイ (W01 ビット ) と RDX/WRnX → CSX ホー ルドディレイ (W00 ビット ) は独立に設定可能です。 • 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク セスする場合は , CSX → RDX/WRnX セットアップディレイ , RDX/WRnX → CSX ホールドディレイともに挿入されません。 • アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタ W02 ビット ) を "1" に 設定してください。 292 第 16 章 外部バスインタフェース 16.5 外部バスインタフェースのレジスタ設定手順 外部バスインタフェースのレジスタの設定手順を説明します。 ■ レジスタ設定手順 外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。 • レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し ない設定 ("0") にして行ってください。 "1" のまま設定を変更した場合 , その前後のアクセスは保証されません。 • レジスタの変更は以下の手順で行ってください。 ① 該当領域に対応する CSER のビットを "0" に設定してください。 ② ASR と ACR をワードアクセスで同時に設定してください。ASR, ACR をハーフ ワードでアクセスする場合には ASR 設定後 ACR を設定してください。 ③ AWR を設定してください。 ④ 該当領域に対する CSER のビットを設定してください。 • CS0X領域はリセット解除後から有効になっており, プログラム領域として使用して いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク ロックが低い初期状態で上記② , ③の設定を行ってください。その後 , クロックを 高速クロックに切り換えてください。 293 第 16 章 外部バスインタフェース 16.6 外部バスインタフェース使用上の注意 外部バスインタフェースの使用上の注意を説明します。 ■ 使用上の注意 WR0X, WR1X をライトストローブとして使用する領域 (TYP[3:0] = 0X0XB) と WRX を ライトストローブとして使用する領域 (TYP[3:0] = 0X1XB) とを混在させる設定にした 場合 , 使用するすべての領域にて , 必ず以下の設定を行ってください。 ・ リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください (AWR W06 = 1)。 ・ ライトリカバリサイクルを最低 1 サイクル以上設定してください (AWR W04 = 1)。 ただし ,WR0X,WR1X をライトストローブとして使用する領域 (TYP[3:0]= 0X0XB) で WR0X, WR1X が無効な (ROM のみ接続されている ) 場合は , 上記制限はありま せん。また , WRX をライトストローブとして使用する領域 (TYP[3:0] = 0X1XB) の 設定でアドレス→ RDX/WRX セットアップサイクル (W01 = 1), RDX/WRX →アド レスホールドサイクル(W00 = 1)をともに設定している場合も上記制限はありませ ん。 <制限理由> TYPE[3:0] = 0X1XB と設定して WRX をライトストローブとして使用する領域では , WR0X/WR1X 端子が , バイトイネーブル (UBX/LBX) 出力となります。この場合 , バ イトイネーブル出力はアドレスおよび CSX 出力と同一のタイミングで , 各バイト位 置のイネーブル信号を出力します。 このため , WR0X/WR1X 端子を非同期ライトストローブとして使用している領域へ のアクセスが前後にあった場合 , そちらの領域において , CSX と WR0X/WR1X 間の 交流規格を満足できなくなり , 誤書込みが発生する可能性があります。 リード→ライトアイドルサイクル, およびライトリカバリサイクルを設定した場合, これらのサイクルでは , CSX はアサートされません ("H" レベルを維持 ) ので , 上記 交流規格を満足することができます。 WR0X/WR1X 端子を非同期ライトストローブとして使用している領域にて , CSX と WR0X/WR1X 間の交流規格 ( セットアップおよびホールド ) に対し余裕がある場合 は , 本制限は必要ありません。 294 第 17 章 DMAC (DMA コントローラ ) DMAC の概要 , レジスタの構成 / 機能および動作に ついて説明します。 17.1 DMAC の概要 17.2 DMAC のレジスタ詳細説明 17.3 DMAC の動作説明 17.4 DMAC の動作フロー 17.5 DMAC のデータパス 295 第 17 章 DMAC (DMA コントローラ ) 17.1 DMAC の概要 DMAC は , DMA(Direct Memory Access) 転送を実現するためのモジュールです。 DMA 転送により , CPU を介さずに各種データ転送を高速に行うことが可能となり , システムのパフォーマンスを増加させます。 ■ ハードウェア構成 本モジュールは , 主に以下の回路およびレジスタより構成されます。 • 独立した DMA チャネル× 5 チャネル • 5 チャネル独立アクセス制御回路 • 20 ビット アドレスレジスタ ( リロード指定可能:ch.0 ∼ ch.3) • 24 ビットアドレスレジスタ ( リロード指定可能:ch.4) • 16 ビット 転送回数レジスタ ( リロード指定可能:各チャネル 1 本 ) • 4 ビットブロック回数レジスタ ( 各チャネル 1 本 ) • 2 サイクル転送 ■ 主要機能 本モジュールによるデータ転送には以下の機能があります。 複数チャネルの独立したデータ転送が可能 (5 チャネル ) • 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) • ch.0 - ch.1 間にて順位回転が可能 • DMAC 起動要因 - 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込みを含む ) - ソフトウェア要求 ( レジスタ書込み ) • 転送モード - バースト転送 / ステップ転送 / ブロック転送 - アドレッシングモード 20 ビット (24 ビット ) アドレス指定 ( 増加 / 減少 / 固定 ) ( アドレス増減幅は± 1, 2, 4 固定 ) - データの種類バイト / ハーフワード / ワード長 - シングルショット / リロード選択可能 296 第 17 章 DMAC (DMA コントローラ ) ■ DMAC のレジスタ概要 図 17.1-1 DMAC のレジスタ概要 ch.0 コントロール / ステータスレジスタ A bit 31 DMACA0 00000200H ch.0 コントロール / ステータスレジスタ B DMACB0 00000204H ch.1 コントロール / ステータスレジスタ A DMACA1 00000208H ch.1 コントロール / ステータスレジスタ B DMACB1 0000020CH ch.2 コントロール / ステータスレジスタ A DMACA2 00000210H ch.2 コントロール / ステータスレジスタ B DMACB2 00000214H ch.3 コントロール / ステータスレジスタ A DMACA3 00000218H ch.3 コントロール / ステータスレジスタ B DMACB3 0000021CH ch.4 コントロール / ステータスレジスタ A DMACA4 00000220H ch.4 コントロール / ステータスレジスタ B DMACB4 00000224H 全体制御レジスタ DMACR ch.0 転送元アドレスレジスタ bit 31 DMASA0 00001000H ch.0 転送先アドレスレジスタ DMADA0 00001004H ch.1 転送元アドレスレジスタ DMASA1 00001008H ch.1 転送先アドレスレジスタ DMADA1 0000100CH ch.2 転送元アドレスレジスタ DMASA2 00001010H ch.2 転送先アドレスレジスタ DMADA2 00001014H ch.3 転送元アドレスレジスタ DMASA3 00001018H ch.3 転送先アドレスレジスタ DMADA3 0000101CH ch.4 転送元アドレスレジスタ bit 31 DMASA4 00001020H ch.4 転送先アドレスレジスタ DMADA4 00001024H 24 23 16 15 8 7 0 00000240H 20 19 24 23 0 0 297 第 17 章 DMAC (DMA コントローラ ) ■ DMAC のブロックダイヤグラム 図 17.1-2 DMAC のブロックダイヤグラム カウンタ バスコントローラへ DMA転送要求 バッファ ライトパック セレクタ DMA起動 要因選択回路 & 要求受付け制御 DTC 2段レジスタ ペリフェラル起動要求/停止入力 DTCR カウンタ DSS[2:0] バッファ リード ライト リード/ライト制御 優先度回路 割込みコントローラへ 周辺割込みクリア BLK レジスタ TYPE.MOD,WS セレクタ セレクタ ライトバック 298 DMASA 2段レジスタ SADM,SASZ[7:0] SADR DMADA 2段レジスタ DADM,DASZ[7:0] DADR X-bus バス制御部 カウンタバッファ DMAコントロール ライトバック カウンタバッファ アクセス アドレス アドレスカウンタ バス制御部 状態遷移回路 バスコント ローラへ IRQ[4:0] ERIR,EDIR セレクタ MCLREQ 第 17 章 DMAC (DMA コントローラ ) 17.2 DMAC のレジスタ詳細説明 DMA コントローラで使用するレジスタの設定時の注意事項とレジスタの詳細につい て説明します。 ■ レジスタ設定時の注意 本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。 ビット名の後ろに *(アスタリスクマーク)が記述されているビットは , DMAC 転送中 に設定すると動作に影響を与えます。このビットの書換えは , DMAC 転送停止中 ( 起 動禁止状態または一時停止状態 ) に行ってください。 DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定 した場合は , 起動許可後に設定は有効になります。 DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000B または DMACA:PAUS = 1 の とき ) で設定した場合は , 一時停止解除後に設定は有効になります。 ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A [DMACA0 ∼ DMACA4] DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。 各ビット機能は以下に示すとおりです。 bit 31 30 29 28 27 26 25 24 23 IS[4:0] アドレス: DENB PAUS STRG ch.0 000200H ch.1 000208H ch.2 000210H ch.3 000218H ch.4 000220H 22 21 20 19 18 Reserved 17 16 BLK[3:0] リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W bit 15 14 13 11 11 10 9 8 7 6 5 4 3 2 1 0 DTC[15:0] リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ( 初期値:00000000 0000XXXX XXXXXXXX XXXXXXXXB) [bit31] DENB (Dma ENaBle) :DMA 動作許可ビット 各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。 起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま す。起動許可されていないチャネルに対して発生した転送要求は , すべて無効とな ります。起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" になり , 転送は停止します。 本ビットに "0" を書き込むと強制停止しますが , 必ず PAUS ビット [bit30:DMACA] で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一時停止 299 第 17 章 DMAC (DMA コントローラ ) しないで強制停止した場合は DMA は停止しますが転送データは保証されません。 停止の確認は DSS[2:0] ビット (bit18 ∼ bit16:DMACB) で行ってください。 DENB 機能 0 対応チャネル DMA 動作禁止 ( 初期値 ) 1 対応チャネル DMA 動作許可 • リセット時 , 停止要求が受け付けられた場合:"0" に初期化されます。 • 読出しおよび書込みが可能です。 • DMAC 全体制御レジスタ DMACR の bit15:DMAE ビットにより , 全チャネルの動 作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を維 持します。また , 本ビットにより動作が許可されている状態にて前記ビットによ り動作が禁止された場合 , 本ビットは "0" となり , 転送は中断します ( 強制停止 )。 [bit30] PAUS (PAUSe):一時停止指示 対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ ると , 再び本ビットがクリアされるまでの間は DMA 転送を行いません (DMA が停 止中は DSS ビットが "1XXB" になります )。 起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま す。 本ビットがセットされている間に新たに発生した転送要求は受け付けられますが , 本ビットをクリアしないと転送は開始しません (「17.3.2 転送要求の設定」を参照 )。 PAUS 機能 0 対応チャネル DMA 動作許可 ( 初期値 ) 1 対応チャネル DMA 動作一時停止 • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit29] STRG (Software TRiGger) :転送要求 対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開 始します。 ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操作は無効と なります。 300 第 17 章 DMAC (DMA コントローラ ) <注意事項> DMAE ビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合 , 転送要 求は有効となり転送を開始します。 また , PAUS ビットへの "1" 書込みと同時である場合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しません。 STRG 機能 0 無効 1 DMA 起動要求 • リセット時:"0" に初期化されます。 • 読出し値は常に "0" となります。 • 書込み値は "1" のみ有効で , "0" は動作に影響を与えません。 301 第 17 章 DMAC (DMA コントローラ ) [bit28 ∼ bit24] IS4 ∼ IS0 (Input Select) *:転送要因選択 転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ トウェア転送要求は本設定にかかわらず有効となります。 IS 機能 00000B ソフトウェア転送要求のみ 00001B ↓ 01111B 設定禁止 10000B UART0( 受信完了 ) 10001B LIN-UART0( 受信完了 ) 10010B LIN-UART1( 受信完了 ) 10011B UART0( 送信完了 ) 10100B LIN-UART0( 送信完了 ) 10101B LIN-UART1( 送信完了 ) 10110B 外部割込み 0 10111B 外部割込み 1 11000B リロードタイマ 0 11001B リロードタイマ 1 11010B リロードタイマ 2 なし − 11100B − 11101B − 11111B あり なし 11011B 11110B 転送停止要求 A/D コンバータ − • リセット時:"00000B" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1XXXXB), 選択した機能は , ICR レ ジスタで割込みを禁止状態にしてください。 また , 周辺機能の割込みによる DMA 起動を設定した状態で , ソフトウェア転送要求によ り DMA 転送を起動すると , 転送終了後 , 該当する周辺に対して要因クリアを行います。こ のため , 本来の転送要求をクリアしてしまう可能性がありますので , 周辺機能の割込みに よる DMA 起動を設定した状態では , ソフトウェア転送要求による起動を行わないでくだ さい。 302 第 17 章 DMAC (DMA コントローラ ) [bit23 ∼ bit20] 未使用ビット 読出し値は "0000B" 固定です。書込みは無効となります。 [bit19 ∼ bit16] BLK3 ∼ BLK0 (BLocK size) :ブロックサイズ指定 対応するチャネルのブロック転送時のブロックサイズを指定します。 本ビットに 設定した値が一回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し 回数 ) となります。ブロック転送を行わない場合は "01H" ( サイズ 1) を設定してく ださい。 BLK XXXXB 機能 対応チャネルのブロックサイズ指定 • リセット時:初期化されません。 • 読出しおよび書込みが可能です。 • 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。 • 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。 [bit15 ∼ bit0] DTC15 ∼ DTC0 (Dma Terminal Count register) *:転送回数レジスタ 転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。 すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設 定値をレジスタに戻します。 DTC XXXXH 機能 対応チャネルの転送回数指定 DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 )。DMA の転 送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了 します。よって , DMA 動作中の転送回数指定値を読み出すことはできません。 • リセット時:初期化されません。 • 読出しおよび書込みが可能です。DTC のアクセスは , 必ずハーフワード長または ワード長にてアクセスしてください。 • 読出し時の値は , カウント値となります。リロード値の読出しはできません。 303 第 17 章 DMAC (DMA コントローラ ) ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B [DMACB0 ∼ DMACB4] DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。 各ビット機能は以下に示すとおりです。 bit 31 アドレス: ch.0 000202H ch.1 00020CH ch.2 000214H ch.3 00021CH ch.4 000224H 30 29 TYPE[1:0] 28 MOD[1:0] 27 26 WS[1:0] 25 24 23 22 21 20 19 18 SADM DADM DTCR SADR DADR ERIE EDIE 17 16 DSS[2:0] リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W bit 15 14 13 11 11 10 9 8 7 6 5 SASZ[7:0] 4 3 2 1 0 DASZ[7:0] リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ( 初期値:00000000 00000000 XXXXXXXX XXXXXXXXB) [bit31, bit30] TYPE (TYPE) *:転送タイプ設定 対応チャネルの動作タイプを以下のように設定します。 2 サイクル転送モード:転送元アドレス (DMASA) と転送先アドレス (DMADA) を 設定して読出し動作と書込み動作を転送回数分繰り返して 転送するモードです。 TYPE 機能 00B 2 サイクル転送 ( 初期値 ) 01B 設定禁止 10B 設定禁止 11B 設定禁止 • リセット時:"00B" に初期化されます。 • 読出しおよび書込みが可能です。 • 必ず "00B" に設定してください。 [bit29, bit28] MOD1, MOD0 (MODe) * :転送モード設定 対応チャネルの動作モードを以下のように設定します。 MOD 機能 00B ブロック / ステップ転送モード ( 初期値 ) 01B バースト転送モード 10B 設定禁止 11B 設定禁止 • リセット時:"00B" に初期化されます。 • 読出しおよび書込みが可能です。 304 第 17 章 DMAC (DMA コントローラ ) [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" に初期化されます。 • 読出しおよび書込みが可能です。 305 第 17 章 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" に初期化されます。 • 読出しおよび書込みが可能です。 306 第 17 章 DMAC (DMA コントローラ ) [bit22] SADR (Source-ADdr.-reg. Reload) *:転送元アドレスレジスタリロード指定 対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス レジスタ値を初期設定値に戻します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。 本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し ている場合は , 増加したアドレスとなります )。 SADR 機能 0 転送元アドレスレジスタリロードを禁止 ( 初期値 ) 1 転送元アドレスレジスタリロードを許可 • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit21] DADR (Dest.-ADdr.-reg. Reload) *:転送先アドレスレジスタリロード指定 対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス レジスタ値を初期設定値に戻します。 その他 , 機能の詳細は bit22:SADR の内容と等価になります。 DADR 機能 0 転送先アドレスレジスタリロードを禁止 ( 初期値 ) 1 転送先アドレスレジスタリロードを許可 • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit20] ERIE (ERror Interrupt Enable) * :エラー割込み出力許可 エラー発生による終了時の割込み発生を制御します。 発生したエラーの内容は DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割 込みが発生するのではなく , 特定の終了要因の際のみ割込みが発生することに注意 してください (DSS2 ∼ DSS0 ビット説明を参照 )。 ERIE 機能 0 エラー割込み要求出力禁止 ( 初期値 ) 1 エラー割込み要求出力許可 • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 307 第 17 章 DMAC (DMA コントローラ ) [bit19] EDIE (EnD Interrupt Enable) *:終了割込み出力許可 正常終了時の割込み発生を制御します。 EDIE 機能 0 終了割込み要求出力禁止 ( 初期値 ) 1 終了割込み要求出力許可 • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 [bit18 ∼ bit16] DSS2 ∼ DSS0 (Dma Stop Status)*:転送停止要因表示 対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー ド ) を表示します。終了コードの内容は以下のとおりです。 DSS2 機能 割込み発生 0 初期値 なし 1 DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど ) なし DSS1, DSS0 00B 機能 初期値 01B なし − 10B 転送停止要求 11B 正常終了 割込み発生 なし エラー 終了 転送停止要求は , 周辺回路からの要求を使用した場合のみセットされます。 ( 注意事項 )「割込み発生」欄は , 発生可能な割込み要求の種類を示します。 • リセット時:"000B" に初期化されます。 • "000B" を書き込むことにより , クリアされます。 • 読出しおよび書込みが可能ですが , 本ビットへの書込みは "000B" のみ有効とな ります。 308 第 17 章 DMAC (DMA コントローラ ) [bit15 ∼ bit8] SASZ7 ∼ SASZ0 (Source Addr count SiZe) *:転送元アドレスカウント サイズ指定 対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。 本ビットに設定した値が一回の転送単位におけるアドレス増減幅となります。アド レスの増減は転送元アドレスカウントモード (SADM) の指定に従います。 SASZ 機能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時:初期化されません。 • 読出しおよび書込みが可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し てください。 [bit7 ∼ bit0] DASZ7 ∼ DASZ0 (Des Addr count SiZe) *:転送先アドレスカウント サイズ指定 対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。 本ビットに設定した値が一回の転送単位におけるアドレス増減幅となります。アド レスの増減は転送先アドレスカウントモード (DADM) の指定に従います。 DASZ 機能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時:初期化されません。 • 読出しおよび書込みが可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し てください。 309 第 17 章 DMAC (DMA コントローラ ) ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4] DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。 各ビット機能は以下に示すとおりです。 ● ch.0 ∼ ch.3 bit 31 30 29 28 27 26 25 24 23 22 21 20 アドレス: ch.0 001000H ch.1 001008H ch.2 001010H ch.3 001018H 19 18 17 16 DMASA0 ∼ DMASA3 [19:16] リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W bit 15 14 13 11 11 10 9 8 7 6 5 4 3 2 1 0 リード / ライト DMASA0 ∼ DMASA3 [15:0] R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB) bit 31 30 29 28 27 26 25 24 23 22 21 20 アドレス: ch.0 001004H ch.1 00100CH ch.2 001014H ch.3 00101CH 18 17 16 DMADA0 ∼ DMADA3 [19:16] bit 15 リード / ライト 19 14 13 11 11 10 9 8 7 6 5 4 3 2 1 0 DMADA0 ∼ DMADA3 [15:0] R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB) ● ch.4 bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DMASA4 [23:16] アドレス: ch.4 001020H リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W bit 15 14 13 11 11 10 9 8 7 6 5 4 3 2 1 0 リード / ライト DMASA4 [15:0] R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB) bit 31 30 29 28 27 26 25 24 23 22 20 19 18 17 16 1 0 DMADA4 [23:16] アドレス: ch.4 001024H bit 15 リード / ライト 21 14 13 11 11 10 9 8 7 6 5 4 3 2 DMADA4 [15:0] R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB) 310 第 17 章 DMAC (DMA コントローラ ) 転送元 / 転送先アドレスを格納するレジスタ群です。ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24 ビット長で構成されています。 [bit31 ∼ bit0] DMASA (DMA Source Addr) *:転送元アドレス設定 転送元アドレスの設定を行います。 [bit31 ∼ bit0] DMADA (DMA Destination Addr) *:転送先アドレス設定 転送先アドレスの設定を行います。 DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ ンタバッファに格納して 1 転送ごとに設定に従いアドレスカウントします。DMA の転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は 終了します。よって , DMA 動作中のアドレスカウンタ値を読み出すことはできませ ん。 すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先ア ドレスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に 自動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには 影響を与えません。 • リセット時:初期化されません。 • 読出しおよび書込みが可能です。本レジスタは , 必ず 32 ビットデータでアクセ スしてください。 • 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア ドレス値となります。リロード値の読出しはできません。したがって , 転送アド レスをリアルタイムで読出しすることはできません。 • 存在しない上位ビットには , "0" を設定してください。 <注意事項> 本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ に DMA 転送を行うことはできません。 311 第 17 章 DMAC (DMA コントローラ ) ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ [DMACR] DMAC5チャネル分全体の動作制御を行うレジスタです。本レジスタは必ずバイト長で アクセスしてください。 各ビット機能は以下に示すとおりです。 bit 31 アドレス: 000240H DMAE 30 29 28 - - PM01 27 26 25 24 23 22 21 20 19 18 17 16 - - - - - - - - DMAH[3:0] リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W bit 15 14 13 11 11 10 9 8 7 6 5 4 3 2 1 0 リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ( 初期値:0XX00000 XXXXXXXX XXXXXXXX XXXXXXXXB) [bit31] DMAE (DMA Enable) :DMA 動作許可 DMA 全チャネルの動作制御を行います。 本ビットにより DMA 動作が禁止されている場合 , 各チャネルの起動 / 停止の設定 や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。 転送中であったチャネルは要求を取り下げ , ブロック境界にて転送を停止します。 禁止状態にて , 各チャネルに対して行われる起動操作は , すべて無効となります。 本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作 が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対 する起動は行われません。 本 ビ ッ ト に "0" を 書 込 み す る と 強 制 停 止 し ま す が , 必 ず DMAH[3:0] ビ ッ ト (DMACR:bit27 ∼ bit24) で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) し てください。一時停止しないで強制停止した場合は DMA は停止しますが転送デー タは保証されません。停止の確認は DSS[2:0] ビット (DMACB:bit18 ∼ bit16) で行っ てください。 DMAE 機能 0 全チャネル DMA 動作禁止 ( 初期値 ) 1 全チャネル DMA 動作許可 • リセット時:"0" に初期化されます。 • 読出しおよび書込みが可能です。 312 第 17 章 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) されているチャネル に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送 を開始します。 DMAH3 ∼ DMAH0 0000B 0000B 以外 機能 全チャネル DMA 動作許可 ( 初期値 ) 全チャネル DMA 一時停止 • リセット時:"0000B" に初期化されます。 • 読出しおよび書込みが可能です。 [bit30, bit29, bit23 ∼ bit0] 未使用ビット 読出し値は不定です。 313 第 17 章 DMAC (DMA コントローラ ) 17.3 DMAC の動作説明 DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など について説明します。 ■ DMAC の概要 本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー タ転送を制御する多機能 DMA コントローラです。 314 第 17 章 DMAC (DMA コントローラ ) 17.3.1 DMAC の動作 DMAC の動作について説明します。 ■ DMAC の主要動作 • 各転送チャネルは , 独立に各種機能を設定します。 • 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ ん。 • 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント ローラの制御によりバス権を取得して転送を開始します。 • 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ ます。 ■ 転送モード DMA の各チャネルは , それぞれの DMACB レジスタの MOD[1:0] ビットで設定された 転送モードに従って転送動作を行います。 ● ブロック / ステップ転送 1 回の転送要求で 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受け 付けられるまでは DMA はバスコントローラに対し転送要求を停止します。 1 ブロック転送単位:設定されたブロックサイズ分 (DMACA:BLK[3:0]) ● バースト転送 1 回の転送要求で指定転送回数終了まで連続して転送を行います。 指定転送回数:ブロックサイズ分×転送回数分 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) ■ 転送タイプ ● 2 サイクル転送 ( 通常転送 ) DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行 います。 転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへ データを書込みします。 315 第 17 章 DMAC (DMA コントローラ ) ■ 転送アドレス アドレッシングは , 各チャネル転送元 / 転送先ごとに独立に設定します。 ● 2 サイクル転送でのアドレスの指定 あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値 をアドレスとしてアクセスします。 転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納 して転送を開始します。 1 回の転送 ( アクセス ) ごとに , アドレスカウンタにて次回アクセスアドレスを生成 ( 加算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッ ファの内容は , 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライ トバックされます。 そのため , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにし か更新されませんので , 転送中のアドレスをリアルタイムに知ることはできませ ん。 ■ 転送回数と転送終了 ● 転送回数 1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。 転送回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して 停止または再起動します。 転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更 新されません。 転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可され ている場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。 ● 転送終了 転送終了要因には以下のようなものがあり , 転送終了時は終了コードとして要因が 表示されます (DMACB:DSS[2:0])。 • 指定転送回数の終了 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) →正常終了 • 周辺回路からの転送停止要求の発生 →エラー • リセットの発生→初期値 各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込 みを発生可能です。 316 第 17 章 DMAC (DMA コントローラ ) 転送要求の設定 17.3.2 DMA 転送を起動する転送要求は , 以下の 2 種類があります。 • 内蔵周辺要求 • ソフトウェア要求 ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用することが できます。 ■ 内蔵周辺要求 内蔵周辺回路の割込み発生により , 転送要求を発生します。 チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します (DMACA:IS[4:0]=1XXXXB)。 <注意事項> 転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン トローラの設定を割込み禁止に設定してください (ICR レジスタ )。 ■ ソフトウェア要求 レジスタのトリガビットへの書込みにより転送要求を発生します (DMACA:STRG)。 内蔵周辺要求の転送要求とは独立で , 常に使用することができます。 起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントロー ラに対し DMA 転送要求を出力し転送を開始します。 <注意事項> 内蔵周辺要求を設定したチャネルに対してソフトウェア要求を行うと , 転送終了後 , 該当 する周辺に対して要因クリアを行います。このため , 本来の転送要求をクリアしてしまう 可能性がありますので , ソフトウェア要求を行わないでください。 317 第 17 章 DMAC (DMA コントローラ ) 17.3.3 転送シーケンス チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転送 モードを独立して設定することができます (DMACB:TYPE[1:0], MOD[1:0] の設定 ) 。 ■ 転送シーケンスの選択 レジスタの設定により以下のシーケンスが選択可能です。 • バースト 2 サイクル転送 • ブロック / ステップ 2 サイクル転送 ■ バースト 2 サイクル転送 1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転 送元 / 転送先アドレスは ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可能です。 転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。 [ バースト転送の特長 ] • 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送 を行います。 • 転送回数はブロックサイズ分×転送回数分になります (DMACA:BLK[3:0] × DMACA:DTC[15:0])。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送回数レジスタのリロード機能が有効である場合, 転送終了後より次の転送要 求を受け付けます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合, ブロック 転送単位の境目でチャネルを切り換え, そのチャネルの転送要求がクリアされる まで復帰しません。 周辺転送要求 バス動作 CPU 転送回数 SA DA 4 SA DA 3 SA DA 2 SA DA 1 転送終了(内部) (周辺転送要求,ブロック数=1,転送回数=4のときのバースト転送例) 318 CPU 0 第 17 章 DMAC (DMA コントローラ ) ■ ステップ / ブロック転送 2 サイクル転送 ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場 合は転送元 / 転送先アドレスは , ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可 能です。 ■ ステップ転送 ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。 〔ステップ転送の特長〕 • 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転 送を停止します ( バスコントローラに対し DMA 転送要求を取り下げる )。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合, 転送停止 後に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優 先順位は , 転送要求が同時に発生した場合のみ意味を持ちます。 ■ ブロック転送 ブロックサイズに "1" 以外を設定すると , ブロック転送シーケンスとなります。 [ ブロック転送の特長 ] 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ス テップ転送と全く同じ動作となります。 周辺転送要求 バス動作 CPU ブロック数 転送回数 SA DA SA 2 DA 1 2 CPU 0 SA DA SA 2 DA 1 1 転送終了(内部) (周辺転送要求,ブロック数=2,転送回数=2のときのブロック転送例) 319 第 17 章 DMAC (DMA コントローラ ) 17.3.4 DMA 転送全般 DMA 転送のブロックサイズとリロード動作について説明します。 ■ ブロックサイズ • 転送データの 1 転送単位は , ブロックサイズ指定レジスタに設定した数 ( ×データ 幅 ) のデータの集合となります。 • 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転 送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま す。 • 転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時 停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界に ならないと停止しません。これにより分割・一時停止を希望しないデータブロック のデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させ る原因ともなります。 • リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは 保証されません。 ■ リロード動作 本モジュールでは , チャネルごとに , 以下の 3 種類のリロード機能の設定が可能です。 • 転送回数レジスタリロード機能 指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受 付け待ちします。 全転送シーケンスを繰り返し行う際に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のまま となり , 以降の転送は行われません。 • 転送元アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定しま す。 転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が 終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 • 転送先アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定しま す。 転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が 終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了 後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。 320 第 17 章 DMAC (DMA コントローラ ) <注意事項> 動作モードとリロード動作の特殊な例 • 転送終了にていったん停止し , 再度入力検出から行いたい場合は , リロード指定を行わ ないようにしてください。 • バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となると リロード後いったん転送を中断し , 改めて転送要求入力が検出されるまで転送を行い ません。 321 第 17 章 DMAC (DMA コントローラ ) アドレッシングモード 17.3.5 各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。 転送シーケンスによって設定してください。 ここでは , その指定方法について説明します。 ■ アドレスレジスタ指定 • 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アド レスを , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してく ださい。 〔アドレスレジスタの特長〕 • ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24 ビット長のレジスタです。 〔アドレスレジスタの機能〕 • 毎アクセス時に読み出され , アドレスバスへ放出されます。 • 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ, 計算結果 のアドレスにてアドレスレジスタを更新します。 • アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に固定 / 加算 / 減算の うちより選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ 値によります (DMACB:SASZ, DASZ)。 • 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最 終アドレスにアドレス計算をした結果のアドレスが残されます。 • リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。 < 注意事項 > • 20 ビットまたは 24 ビット長フルアドレス計算の結果 , オーバフロー / アンダフローが 発生した場合でも , そのチャネルの転送は継続されます。オーバフロー / アンダフロー が発生しないよう各チャネルを設定してください。 • アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。 322 第 17 章 DMAC (DMA コントローラ ) 17.3.6 データの種類 1 回の転送で転送されるデータ長 ( データ幅 ) を 以下に示します。 • バイト • ハーフワード • ワード ■ アクセスアドレス バイト ・ハーフワード ・ワード DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは 無視されます。 • バイト :実際のアクセスアドレスとアドレス指定が一致します。 • ハーフワード :実際のアクセスアドレスは下位 1 ビット が "0" から始まる 2 バイ トとなります。 • ワード :実際のアクセスアドレスは下位 2 ビット が "00B" から始まる 4 バ イトとなります。 転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記の決まりに従ってアドレスが修正されてアクセスが行われます。 323 第 17 章 DMAC (DMA コントローラ ) 17.3.7 転送回数制御 転送回数は , 最大で 16 ビット 長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回 数指定値は転送回数レジスタ (DMACA:DTC) に設定します。 ■ 転送回数レジスタとリロード動作 レジスタ値は , 転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減 算されます。 このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され , そのチャネ ルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。 〔転送回数レジスタ群の特長〕 • 各レジスタ 16 ビット長です。 • すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。 • レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。 〔リロード動作〕 • リロード機能をもつレジスタで, リロード機能が許可されている場合にのみ有効 です。 • 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。 • 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると ともに, リロードレジスタより初期値を読み出し, 回数レジスタに書き込みます。 324 第 17 章 DMAC (DMA コントローラ ) CPU 制御 17.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 全体制御レジスタの DMAH[3:0] ビット に "0" 以外の値を書き込むことで起動し , "0" を書き込むことで停止します。 本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込み 要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このようにす ると , 以降 , DMA 転送は行いません。割込み処理への対応を行った後 , 復帰する前に DMAH[3:0] ビットの内容を 1 つ減少させます。もし , 多重割込みであれば DMAH[3:0] ビットの内容は , まだ "0" にならないため , 引き続いて DMA 転送は抑止されます。ま た , 多重割込みでなければ , DMAH[3:0] ビットの内容は "0" になるため , その後すぐに DMA 要求を有効にします。 <注意事項> • レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使 用することができません。 • DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてくださ い。 325 第 17 章 DMAC (DMA コントローラ ) 17.3.9 動作 DMA 転送の動作について説明します。 ■ 動作開始 DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動作 を許可しておく必要があります。 ● 全チャネル動作許可 DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら かじめ全チャネルの動作を許可する必要があります。許可されていない状態にて行っ た起動設定および発生した転送要求はすべて無効となります。 ● 転送起動 各チャネルの制御レジスタにある動作許可ビットにて , 転送動作を起動します。起動さ れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送 動作が開始されます。 ● 一時停止状態からの起動 各チャネルまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転送 動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場合 は , 要求を受け付けて保持します。一時停止を解除した時点より転送を開始します。 326 第 17 章 DMAC (DMA コントローラ ) 17.3.10 転送要求の受付けと転送 転送要求の受付けと転送の内容を説明します。 ■ 転送要求の受付けと転送 • 起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。 • 周辺割込み起動を選択した場合は , 転送要求がクリアされるまで DMAC は転送を続 けますがクリアされたら 1 転送単位で転送を停止します ( 周辺割込み起動 )。 周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで 行うようにしてください。 • 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に 受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネル を決定しています。 327 第 17 章 DMAC (DMA コントローラ ) 17.3.11 DMA による周辺割込みクリア DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に周 辺割込みを選択したときに機能します (IS [4:0]=1XXXXB のとき )。 周辺割込みのクリアは設定された起動要因にのみに行われます。すなわち IS [4:0] で設定された周辺機能のみクリアされます。 ■ 割込みクリアの発生タイミング 転送モードにより発生するタイミングが違います (「17.4 DMAC の動作フロー」を参 照 )。 [ ブロック / ステップ転送 ] ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号が発生 します。 [ バースト転送 ] バースト転送を選択した場合は , 指定転送回数がすべて終了するとクリア信号が発 生します。 328 第 17 章 DMAC (DMA コントローラ ) 17.3.12 一時停止 DMA 転送が , 一時停止する場合について説明します。 ■ 制御レジスタへの書込みによる一時停止の設定 (各チャネル独立または全チャネル 同時に設定 ) 一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って ください。 一時停止を解除すると , 転送を再開します。 ■ NMI/ ホールド抑止レベル割込み処理中 NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転 送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込 み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求はそのま ま保持され , NMI 処理の終了を待ちます。 要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。 329 第 17 章 DMAC (DMA コントローラ ) 17.3.13 動作終了 / 停止 DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止 することも可能です。 ■ 転送終了 リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了 コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA:DENB ビットをクリアする )。 リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロード し , 終了コードにて『正常終了』を表示した後 , 再度転送要求待ちとなります (DMACA:DENB ビットをクリアしない )。 ■ 全チャネル動作禁止 DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を 許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは 一切発生しません。 330 第 17 章 DMAC (DMA コントローラ ) エラーによる停止 17.3.14 指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー 発生による停止および強制停止があります。 ■ 周辺回路からの転送停止要求の発生 転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発 生するものがあります ( 例:通信系周辺における受信 / 送信エラーなど )。 この転送停止要求を受け取った DMAC は , 終了コードにて「転送停止要求」を表示し て対応するチャネルの転送を停止します。 <注意事項> • 周辺回路の転送停止要求の有無については , DMACA レジスタの bit28 ∼ bit24(IS4 ∼ IS0) 転送要因選択ビットの説明を参照してください。 • 各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してください。 331 第 17 章 DMAC (DMA コントローラ ) 17.3.15 DMAC 割込み制御 DMAC 割込み制御は , 転送要求となる周辺割込みとは独立に , チャネルごとに以下 の割込みを出力することが可能です。 ■ DMAC 割込み制御が出力できる割込み • 転送終了割込み : 正常終了した場合のみ発生 • エラー割込み : 周辺回路からの転送停止要求 ( 周辺に起因するエラー ) これらの割込みはすべて終了コードの内容に従って出力されます。 割込み要求のクリアは , DMACS の DSS2 ∼ DSS0( 終了コード ) に "000B" を書き込むこ とにより行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んでク リアしてください。 リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。 終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて いる終了コードに従います。 終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 )。 • リセット • "000B" 書込みによるクリア • 周辺停止要求 • 正常終了 • チャネル選択と制御 332 第 17 章 DMAC (DMA コントローラ ) 17.3.16 スリープ中の DMA 転送 DMAC は , スリープモード中でも動作させることができます。ここでは , スリープ 状態のときの DMA 転送について説明します。 ■ スリープモード中の DMA 転送の注意 スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。 - CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー プモードに入る前に設定を済ませておいてください。 - スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込み を選択した場合は , 割込みコントローラで割込みを禁止する必要があります。 同様に, DMAC終了割込みでスリープモードを解除しない場合は, 割込みを禁止にして ください。 333 第 17 章 DMAC (DMA コントローラ ) 17.3.17 チャネル選択と制御 転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各 機能を独立に設定することが可能です。 ■ チャネル間優先順位 同時に DMA 転送ができるのは 1 チャネルのみとなっているため , 各チャネル間には優 先順位が設定されます。 順位設定には , 固定 /回転の 2モードがありチャネルグループ (後述)ごとに選択します。 ● 固定モード チャネル番号の小さい順に固定されます。 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) 転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサ イズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で転送チャネル が高優先度側に切り換わります。 高優先度側の転送が終了すると , 元のチャネルの転送を再開します。 ch.0転送要求 ch.1転送要求 バス動作 CPU SA 転送チャネル DA SA ch.1 DA ch.0 SA DA ch.0 SA DA CPU ch.1 ch.0転送終了 ch.1転送終了 ● 回転モード (ch.0 - ch.1 間のみ ) 動作許可後の初期状態は固定モードと同じ順位に設定されますが , 1 転送終了ごと にそのチャネルの優先度は逆転します。よって , 同時に転送要求が出力されている 場合 , 1 転送単位ごとにチャネルが切り換わります。 連続 / バースト転送を設定した場合に効果のあるモードです。 ch.0転送要求 ch.1転送要求 バス動作 転送チャネル ch.0転送終了 ch.1転送終了 334 CPU SA DA ch.1 SA DA ch.0 SA DA ch.1 SA DA ch.0 CPU 第 17 章 DMAC (DMA コントローラ ) ■ チャネルグループ 優先順位の選択は , 以下の単位で設定します。 モード 優先度 備 考 固定 ch.0 > ch.1 − 回転 ch.0 > ch.1 ↑ ↓ ch.0 < ch.1 初期状態は上側の順位です 上側が転送されると反転します。 335 第 17 章 DMAC (DMA コントローラ ) 17.4 DMAC の動作フロー 次の各転送モードにおける動作フローチャートを示します。 ・ブロック転送 ・バースト転送 ■ ブロック転送 図 17.4-1 ブロック転送の動作フロー DMA停止 DENB→0 DENB=1 起動要求待機 リロード許可 起動要求 初期化 アドレス,転送回数,ブロック数 ロード 転送元アドレスアクセス アドレス演算 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 周辺割込み起動要因選択時のみ アドレス,転送回数,ブロック数 ライトバック 割込みクリア 割込みクリア発生 DTC=0 DMA転送終了 ( 特長 ) • すべての起動要因で起動可能 ( 選択 ) • すべての領域へのアクセス可能 • ブロック数の設定可能 • ブロック数終了で割込みクリア発行 • 指定転送回数終了で DMA 割込みを発行 336 DMA割込み発生 第 17 章 DMAC (DMA コントローラ ) ■ バースト転送 図 17.4-2 バースト転送の動作フロー DMA停止 DENB→0 DENB=1 起動要求待機 リロード許可 初期化 アドレス,転送回数,ブロック数 ロード 転送元アドレスアクセス アドレス演算 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 DTC=0 アドレス,転送回数,ブロック数 ライトバック 周辺割込み起動要因選択時のみ 割込みクリア DMA転送終了 割込みクリア発生 DMA割込み発生 ( 特長 ) • すべての起動要因で起動可能 ( 選択 ) • すべての領域へのアクセス可能 • ブロック数の設定可能 • 指定転送回数終了で割込みクリア , DMA 割込みを発行 337 第 17 章 DMAC (DMA コントローラ ) DMAC のデータパス 17.5 2 サイクル転送時のデータの動きを示します。 ■ 2 サイクル 転送時のデータの動作 6 種類の転送例を示します ( ほかの組合せは省略 )。 DMAC X-bus バスコントローラ D-bus データバッファ ライトサイクル I-bus CPU CPU I-bus 外部バスI/F DMAC リードサイクル X-bus バスコントローラ D-bus データバッファ F-bus F-bus RAM 外部バス I/F 外部領域=>外部領域 転送 I/O RAM I/O 外部領域=>内部RAM領域 転送 X-bus バスコントローラ D-bus データバッファ I-bus CPU CPU I-bus ライトサイクル X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バスI/F DMAC 外部バスI/F DMAC リードサイクル F-bus I/O RAM I/O X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus データバッファ F-bus RAM I/O 外部バス I/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 外部領域=>内蔵I/O領域 転送 F-bus RAM I/O ( 続く ) 338 第 17 章 DMAC (DMA コントローラ ) (続き) X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus F-bus RAM 外部バスI/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 内蔵I/O領域=>内蔵RAM領域 転送 F-bus RAM I/O I/O DMAC X-bus バスコントローラ D-bus データバッファ ライトサイクル I-bus CPU CPU I-bus 外部バスI/F DMAC リードサイクル X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バス I/F 内部RAM領域=>外部領域 転送 F-bus RAM I/O I/O CPU バスコントローラ D-bus データバッファ X-bus I-bus バスコントローラ D-bus データバッファ F-bus F-bus RAM I/O 外部バス I/F X-bus I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 内部RAM領域=>内蔵I/O領域 転送 RAM I/O 339 第 17 章 DMAC (DMA コントローラ ) 340 第 18 章 ステッパモータコントローラ ステッパモータコントローラの概要 , レジスタの構 成 / 機能および動作について説明します。 18.1 ステッパモータコントローラの概要 18.2 ステッパモータコントローラのレジスタ 18.3 ステッパモータコントローラの使用上の注意 341 第 18 章 ステッパモータコントローラ 18.1 ステッパモータコントローラの概要 ステッパモータコントローラの概要とブロックダイヤグラムを示します。 ■ ステッパモータコントローラの概要 ステッパモータコントローラは , 2 個の PWM パルス発生器 , 4 個のモータドライバ , セ レクタロジックにより構成されています。 4 種類のモータドライバには高出力ドライブ機能があり , 2 個のモータコイルの終端 4 箇所に直接接続できます。PWM パルス発生器およびセレクタロジックを組み合せるこ とによって , モータの回転を制御するよう設計されています。 同期のメカニズムは , 2 個の PWM の同期動作を保証します。 ■ ステッパモータコントローラのブロックダイヤグラム 図 18.1-1 に , ステッパモータコントローラのブロックダイヤグラムを示します。 図 18.1-1 ステッパモータコントローラのブロックダイヤグラム (ステッパモータコントローラ ch.0 の場合) マシンクロック CK プリスケーラ PWM1 パルス発生器 EN P2 P1 PWM1P0 セレクタ PWM1M0 PWM P0 PWM1 比較レジスタ PWM1 選択レジスタ CK PWM2 パルス発生器 CE EN セレクタ PWM2M0 PWM ロード PWM2 比較レジスタ 342 PWM2P0 BS PWM2 選択レジスタ 第 18 章 ステッパモータコントローラ ステッパモータコントローラのレジスタ 18.2 ステッパモータコントローラのレジスタの機能について説明します。 ■ ステッパモータコントローラのレジスタ一覧 図 18.2-1 に , ステッパモータコントローラのレジスタ一覧を示します。 図 18.2-1 ステッパモータコントローラのレジスタ一覧 PWC アドレス bit ch.0: 000169H ch.1: 000171H ch.2: 000179H ch.3: 000181H ch.4: 000189H ch.5: 000191H 7 6 5 4 3 2 1 0 − P2 P1 P0 CE − − TST (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (−) (0) (0) (0) (0) (−) (−) (0) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 初期値 PWC2 アドレス bit ch.0: 000164H ch.1: 00016CH ch.2: 000174H ch.3: 00017CH ch.4: 000184H ch.5: 00018CH (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 初期値 PWC1 アドレス bit ch.0: 000165H ch.1: 00016DH ch.2: 000175H ch.3: 00017DH ch.4: 000185H ch.5: 00018DH (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (X) (X) (X) (X) (X) (X) (X) (X) 15 14 13 12 11 10 9 8 BS P2 P1 P0 M2 M1 M0 初期値 PWS2 アドレス bit ch.0: 00016AH ch.1: 000172H ch.2: 00017AH ch.3: 000182H ch.4: 00018AH ch.5: 000192H − (−) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (−) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 − − P2 P1 P0 M2 M1 M0 (−) (−) (−) (−) 初期値 PWS1 アドレス bit ch.0: 00016BH ch.1: 000173H ch.2: 00017BH ch.3: 000183H ch.4: 00018BH ch.5: 000193H (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (0) (0) (0) (0) (0) (0) 初期値 343 第 18 章 ステッパモータコントローラ 18.2.1 PWM 制御レジスタ PWM 制御レジスタの機能について説明します。 ■ PWM 制御レジスタのビット構成 図 18.2-2 に , PWM 制御レジスタのビット構成を示します。 図 18.2-2 PWM 制御レジスタのビット構成 PWC アドレス 7 bit ch.0: 000169H ch.1: 000171H ch.2: 000179H ch.3: 000181H ch.4: 000189H ch.5: 000191H − (−) (−) 6 5 4 3 2 1 P2 P1 P0 CE − − (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) 0 TST (−) (−) (−) (−) (R/W) リード / ライト (0) 初期値 [bit6 ∼ bit4] P2 ∼ P0 : 動作クロック選択ビット このビットは , PWM パルス発生器のクロック入力信号を指定します。 表 18.2-1 に , PWM パルス発生器のクロック入力信号の設定内容を示します。 表 18.2-1 PWM パルス発生器のクロック入力信号 P2 P1 P0 クロック入力 0 0 0 マシンクロック (CLKP) 0 0 1 1/2 マシンクロック 0 1 0 1/4 マシンクロック 0 1 1 1/8 マシンクロック 1 0 0 予約 1 0 1 1/5 マシンクロック 1 1 0 1/6 マシンクロック 1 1 1 予約 [bit3] CE : カウント有効ビット このビットは , PWM パルス発生器の動作を有効にします。"1" に設定すると , PWM パルス発生器は動作を開始します。PWM1 パルス発生器の開始から 1 マシンクロッ クサイクル後に PWM2 パルス発生器が動作を開始することに注意してください。こ れによって , 出力ドライバからのスイッチングノイズが減少します。 [bit0] TST : テストビット このビットは , デバイステスト用です。ユーザアプリケーションにおいては , 常に "0" に設定しなければなりません。 344 第 18 章 ステッパモータコントローラ 18.2.2 PWM1, PWM2 コンペアレジスタ PWM1, PWM2 の 2 つの 8 ビットコンペアレジスタの内容は , PWM パルスの幅を決 定するものです。記憶された "00H" の値は PWM のデューティが 0% であることを 表し , "FFH" は 99.6%のデューティを表します。 ■ PWM1, PWM2 コンペアレジスタの機能 図 18.2-3 に , PWM1, PWM2 コンペアレジスタのビット構成を示します。 図 18.2-3 PWM1, PWM2 コンペアレジスタのビット構成 PWC2 アドレス bit ch.0: 000164H ch.1: 00016CH ch.2: 000174H ch.3: 00017CH ch.4: 000184H ch.5: 00018CH 15 14 13 12 11 10 9 8 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) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 初期値 PWC1 アドレス bit ch.0: 000165H ch.1: 00016DH ch.2: 000175H ch.3: 00017DH ch.4: 000185H ch.5: 00018DH (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (X) (X) (X) (X) (X) (X) (X) (X) 初期値 2 個の 8 ビットコンペアレジスタの内容は , PWM パルス幅を決定します。 格納された値が "00H" なら PWM デューティ 0% を表し , "FFH" はデューティ 99.6% を 表します。 図 18.2-4 に , コンペアレジスタの設定値と PWM パルス幅の関係を示します。 345 第 18 章 ステッパモータコントローラ 図 18.2-4 コンペアレジスタの設定値と PWM パルス幅の関係 1PWMサイクル 256 入力クロックサイクル レジスタ値 00H 80H 128入力クロックサイクル FFH 256入力クロックサイクル このレジスタは常時アクセス可能ですが , 修正値は PWM2 選択レジスタの BS ビット が "1" に設定された後で , 現行の PWM サイクル終了時にパルス幅に反映されます。 346 第 18 章 ステッパモータコントローラ 18.2.3 PWM1, PWM2 選択レジスタ PWM1, PWM2 選択レジスタの機能について説明します。 ■ PWM1, PWM2 選択レジスタの機能 図 18.2-5 に , PWM1, PWM2 選択レジスタのビット構成を示します。 図 18.2-5 PWM1, PWM2 選択レジスタのビット構成 PWS2 アドレス bit ch.0: 00016AH ch.1: 000172H ch.2: 00017AH ch.3: 000182H ch.4: 00018AH ch.5: 000192H 15 − (−) 14 13 12 11 10 9 8 BS P2 P1 P0 M2 M1 M0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (−) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 − − P2 P1 P0 M2 M1 M0 (−) (−) (−) (−) 初期値 PWS1 アドレス bit ch.0: 00016BH ch.1: 000173H ch.2: 00017BH ch.3: 000183H ch.4: 00018BH ch.5: 000193H (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト (0) (0) (0) (0) (0) (0) 初期値 [bit14] BS : 更新ビット このビットは , PWM 出力設定の同期調整用です。このビットが設定されるまでは , 両比較レジスタおよび両選択レジスタの修正はすべて出力信号に反映されません。 このビットが "1" に設定されると , PWM パルス発生器およびセレクタは , 現行の PWM サイクル終了時にレジスタの内容をロードします。 BS ビットは , 直後の PWM サイクル開始時に自動的に "0" にリセットされます。自動リセットと同時にソフト ウェアが BS ビットに "1" を設定すると , BS ビットは "1" に設定され ( そのまま変 わらず ), 自動リセットはキャンセルされます。 [bit13 ∼ bit11] P2 ∼ P0 : 出力選択ビット これらのビットは , PWM2P0 における出力信号を選択します。 [bit10 ∼ bit8] M2 ∼ M0 : 出力選択ビット これらのビットは , PWM2M0 における出力信号を選択します。 347 第 18 章 ステッパモータコントローラ [bit5 ∼ bit3] P2 ∼ P0 : 出力選択ビット これらのビットは , PWM1P0 における出力信号を選択します。 表 18.2-2 に , 出力レベルと選択ビットの関係を示します。 [bit2 ∼ bit0] M2 ∼ M0 : 出力選択ビット これらのビットは , PWM1M0 における出力信号を選択します。 表 18.2-2 に , 出力レベルと選択ビットの関係を示します。 表 18.2-2 出力レベルと選択ビットの関係 348 P2 P1 P0 PWMnP0 M2 M1 M0 PWMnM0 0 0 0 "L" 0 0 0 "L" 0 0 1 "H" 0 0 1 "H" 0 1 X PWM パルス 0 1 X PWM パルス 1 X X ハイインピーダンス 1 X X ハイインピーダンス 第 18 章 ステッパモータコントローラ 18.3 ステッパモータコントローラの使用上の注意 ステッパモータコントローラを使用するにあたっての注意点を示します。 ■ PWM 設定値変更時の注意 PWM コンペアレジスタ 1 (PWC1n), PWM コンペアレジスタ 2 (PWC2n), PWM 選択レジ スタ 1 (PWS1n) および PWM 選択レジスタ 2 (PWS2n) は常時アクセス可能ですが , PWM の "H" 幅設定を変更するまたは PWM 出力を変更するためには , これらのレジスタに設 定値を書き込んだ後 ( または同時に ), PWM 選択レジスタ 2 の BS ビットに "1" を書き 込む必要があります。 BS ビットが "1" にセットされると , 現在の PWM サイクルの終了時に新しい設定値が 有効になり , BS ビットは自動的にクリアされます。 また , BS ビットへの "1" 書込みと , PWM サイクル終了時の BS ビットのリセットが同 時に行われた場合は, "1"書込みが優先され, BSビットリセットはキャンセルされます。 349 第 18 章 ステッパモータコントローラ 350 第 19 章 サウンドジェネレータ サウンドジェネレータの概要 , レジスタの構成 / 機 能および動作について説明します。 19.1 サウンドジェネレータの概要 19.2 サウンドジェネレータのレジスタ 351 第 19 章 サウンドジェネレータ 19.1 サウンドジェネレータの概要 サウンドジェネレータの概要とブロックダイヤグラムを示します。 ■ サウンドジェネレータの構成 サウンドジェネレータは , 以下のレジスタおよびカウンタで構成されています。 • サウンドコントロールレジスタ • 周波数データレジスタ • 振幅データレジスタ • デクリメントグレードレジスタ • トーンカウントレジスタ • サウンド禁止レジスタ • PWM パルス生成器 • 周波数カウンタ • 減分カウンタ • トーンパルスカウンタ ■ サウンドジェネレータのブロックダイヤグラム 図 19.1-1 に , サウンドジェネレータのブロックダイヤグラムを示します。 図 19.1-1 サウンドジェネレータのブロックダイヤグラム クロック入力 プリスケーラ S2 8ビットPWM パルス生成器 CO CI EN PWM S1 トグル フリップ フロップ D Q EN 周波数 カウンタ CO EN リロード リロード 1/d 周波数データ レジスタ 振幅データ レジスタ DEC DEC 減分カウンタ CI CO EN SGA デクリメント グレードレジスタ 混合 トーンパルス カウンタ CI CO EN トーンカウント レジスタ SGO TONE INTE INT ST IRQ 352 第 19 章 サウンドジェネレータ 19.2 サウンドジェネレータのレジスタ サウンドジェネレータのレジスタの機能について説明します。 ■ サウンドジェネレータのレジスタ一覧 図 19.2-1 に , サウンドジェネレータのレジスタ一覧を示します。 図 19.2-1 サウンドジェネレータのレジスタ一覧 SGCR( 上位バイト ) bit アドレス :000092H 15 14 13 12 11 10 9 TST − − − − − BUSY DEC (R/W) リード / ライト (R/W) 初期値 SGCR( 下位バイト ) bit アドレス :000093H (−) (−) (−) (−) (−) (R) (0) (−) (−) (−) (−) (−) (0) (0) 7 6 5 4 3 2 1 0 S1 S0 TONE − − INTE INT ST リード / ライト (R/W) (R/W) (R/W) (−) (−) (0) (−) (−) 初期値 SGAR bit アドレス :000094H 8 (0) (0) (R/W) (R/W) (R/W) (0) (0) (0) 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 SGFR bit アドレス :000095H (0) (0) (0) (0) (0) (0) (0) (0) 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) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) bit 15 14 13 12 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 SGTR アドレス :000096H リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 SGDR bit アドレス :000097H (X) (X) (X) (X) (X) (X) (X) (X) 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) (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 2 1 0 − − − − − − − DBL リード / ライト (−) (−) (−) (−) (−) (−) (−) (R/W) 初期値 (−) (−) (−) (−) (−) (−) (−) (0) 初期値 SGDBL bit アドレス :000091H 353 第 19 章 サウンドジェネレータ 19.2.1 サウンドコントロールレジスタ サウンドコントロールレジスタの機能について説明します。 ■ サウンドコントロールレジスタのビット構成 図 19.2-2 に , サウンドコントロールレジスタのビット構成を示します。 図 19.2-2 サウンドコントロールレジスタのビット構成 SGCR( 上位バイト ) bit アドレス :000092H 15 14 13 12 11 10 9 TST − − − − − BUSY DEC (R/W) リード / ライト (R/W) 初期値 SGCR( 下位バイト ) bit アドレス :000093H (−) (−) (−) (−) (−) (R) (0) (−) (−) (−) (−) (−) (0) (0) 7 6 5 4 3 2 1 0 S1 S0 TONE − − INTE INT ST リード / ライト (R/W) (R/W) (R/W) (−) (−) (0) (−) (−) 初期値 8 (0) (0) (R/W) (R/W) (R/W) (0) (0) (0) 以下に , サウンドコントロールレジスタの各ビットの機能を説明します。 [bit15] TST : テストビット このビットは , デバイステスト用です。いずれのユーザアプリケーションにおいて も "0" に設定します。 [bit9] BUSY : ビジービット このビットは , サウンドジェネレータが動作中であるかどうかを示します。ST ビッ トを "1" に設定すると , このビットも "1" に設定されます。ST ビットを "0" にリセッ トし , 1 トーンサイクル終了時に動作が完了すると , このビットは "0" にリセットさ れます。このビットに対して出されるすべての書込み命令は無効となります。 [bit8] DEC : 自動デクリメント許可ビット DEC ビットは , デクリメントグレードレジスタとともに , サウンドの自動デクリメ ント用に設計されています。このビットを "1" に設定すると , デクリメントグレー ドレジスタが指定したトグルフリップフロップからのトーンパルス数を減分カウ ンタがカウントするごとに , 振幅データレジスタに記憶されている値は 1 つずつデ クリメントされます。 354 第 19 章 サウンドジェネレータ [bit7, bit6] S1, S0 : 動作クロック選択ビット これらのビットは , サウンドジェネレータ用のクロック入力信号を指定します。表 19.2-1 に , クロック入力信号の設定内容を示します。 表 19.2-1 クロック入力信号の設定内容 S1 S0 0 0 マシンクロック 0 1 1/2 マシンクロック 1 0 1/4 マシンクロック 1 1 1/8 マシンクロック クロック入力 [bit5] TONE : トーン出力ビット このビットを "1" に設定すると , SGO 信号はトグルフリップフロップからの単純方 形波形 ( トーンパルス ) になります。"1" 以外を設定した場合は , トーンパルスと PWM パルスの混合 ( 論理和 ) 信号になります。 [bit2] INTE : 割込み許可ビット このビットは , サウンドジェネレータの割込み信号を許可します。このビットが "1" で , INT ビットも "1" に設定されると , サウンドジェネレータは割込み信号を出力し ます。 [bit1] INT : 割込みビット トーンパルスカウンタが , トーンカウントレジスタおよびデクリメントグレードレ ジスタに指定したトーンパルス数をカウントすると , このビットは "1" に設定され ます。 このビットは , "0" を書き込むと "0" にリセットされます。"1" を書き込んでも無効 となります。リードモディファイライト (RMW) 系命令では , 常に "1" を読み出しま す。 [bit0] ST : スタートビット このビットは , サウンドジェネレータの動作開始用です。このビットが "1" である 間は , サウンドジェネレータは動作しています。 このビットを "0" にリセットすると , サウンドジェネレータは現行のトーンサイク ル終了時に動作を停止します。BUSY ビットは , サウンドジェネレータが完全に停 止したかどうかを示します。 355 第 19 章 サウンドジェネレータ 19.2.2 振幅データレジスタ 振幅データレジスタの機能について説明します。 ■ 振幅データレジスタのビット構成 図 19.2-3 に , 振幅データレジスタのビット構成を示します。 図 19.2-3 振幅データレジスタのビット構成 SGAR bit アドレス :000094H 15 14 13 12 11 10 9 8 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) 振幅データレジスタは , PWM パルスジェネレータのリロード値を記憶します。 レジスタ値はサウンドの振幅を表し , 各トーンサイクル終了時 , PWM パルスジェネ レータにリロードされます。 SGCR レジスタの DEC ビットが "1" で , 減分カウンタがリロード値に達すると , このレ ジスタ値は 1 つずつデクリメントされます。レジスタ値が "00H" になると , それ以上の デクリメントはしません。ただし , サウンドジェネレータは , ST ビットがクリアされ るまで動作し続けます。図 19.2-4 に , レジスタ値と PWM パルスの関係を示します。 図 19.2-4 レジスタ値と PWM パルスの関係 1 PWMサイクル 256入力クロックサイクル レジスタ値 00H 1 入力クロックサイクル B0H 128 入力クロックサイクル FEH 256 入力クロックサイクル FFH 256 入力クロックサイクル (注意事項)レジスタ値が"FFH"に設定されると, PWM信号は常に"1"となります。 356 第 19 章 サウンドジェネレータ 周波数データレジスタ 19.2.3 周波数データレジスタの機能について説明します。 ■ 周波数データレジスタのビット構成 図 19.2-5 に , 周波数データレジスタのビット構成を示します。 図 19.2-5 周波数データレジスタのビット構成 SGFR bit アドレス :000095H 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) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) 周波数データレジスタは , 周波数カウンタのリロード値を格納します。 格納された値は , サウンド ( またはトグルフリップフロップからのトーン信号 ) の周波 数を表します。レジスタ値は , トグル信号が遷移するたびにカウンタにリロードされま す。 図 19.2-6 に , トーン信号とレジスタ値の関係を示します。 図 19.2-6 トーン信号とレジスタの関係 1 トーンサイクル トーン信号 (レジスタ値+1)× (レジスタ値+1)× 1 PWMサイクル 1 PWMサイクル <注意事項> 動作中にレジスタ値を修正すると, 修正のタイミングによってデューティサイクルの50% が変更されることもありますので , 注意してください。 357 第 19 章 サウンドジェネレータ 19.2.4 トーンカウントレジスタ トーンカウントレジスタの機能について説明します。 ■ トーンカウントレジスタのビット構成 図 19.2-7 に , トーンカウントレジスタのビット構成を示します。 図 19.2-7 トーンカウントレジスタのビット構成 SGTR bit アドレス :000096H 15 14 13 12 11 10 9 8 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) トーンカウントレジスタは , トーンパルスカウンタのリロード値を格納します。トーン パルスカウンタにはトーンパルス数 ( またはデクリメント動作数 ) が累積され , リロー ド値になると SGCR レジスタの INT ビットを設定します。これらは , 割込みの頻度を 減少させるよう設計されています。 トーンパルスカウンタのカウント入力は , 減分カウンタからのキャリアウト信号と接 続されています。トーンカウントレジスタに "00H" が設定されると , トーンパルスカウ ンタは , 減分カウンタからのキャリアウト信号ごとに SGCR レジスタの INT ビットを 設定します。累積トーンパルス数は次式で表されます。 (( デクリメントグレードレジスタ値 )+1) × (( トーンカウントレジスタ値 )+1) すなわち , 両レジスタが "00H" に設定されると , トーンサイクルごとに SGCR レジスタ の INT ビットが設定されます。 358 第 19 章 サウンドジェネレータ 19.2.5 デクリメントグレードレジスタ デクリメントグレードレジスタの機能について説明します。 ■ デクリメントグレードレジスタの機能 図 19.2-8 に , デクリメントグレードレジスタのビット構成を示します。 図 19.2-8 デクリメントグレードレジスタのビット構成 SGDR bit アドレス :000097H 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) 初期値 (X) (X) (X) (X) (X) (X) (X) (X) デクリメントグレードレジスタは , 減分カウンタのリロード値を格納します。 この機能は , 振幅データレジスタに記憶した値を自動的にデクリメントするよう設計 されています。 SGCR レジスタの DEC ビットが "1" で , 減分カウンタがトーンパルス数をリロード値 までカウントすると , 振幅データレジスタに記憶された値は , トーンサイクル終了時に 1 つずつデクリメントされます。 この動作によって , より少ない CPU 介入でサウンドの自動デクリメントができるよう になります。 このレジスタが指定したトーンパルス数は , 「レジスタ値 +1」であることに注意して ください。デクリメントグレードレジスタが "00H" に設定されると , デクリメント動作 はトーンサイクルごとに行われます。 359 第 19 章 サウンドジェネレータ 19.2.6 サウンド禁止レジスタ サウンド禁止レジスタのビット構成を示します。 ■ サウンド禁止レジスタの機能 図 19.2-9 に , サウンド禁止レジスタのビット構成を示します。 図 19.2-9 サウンド禁止レジスタのビット構成 SGDBL bit 7 6 5 4 3 2 1 0 − − − − − − − DBL リード / ライト (−) (−) (−) (−) (−) (−) (−) (R/W) 初期値 (−) (−) (−) (−) (−) (−) (−) (0) アドレス :000091H このビットは , サウンドジェネレータのクロックを制御するために使用します。 このビットに "1" を書き込むと , サウンドジェネレータモジュールのクロックは使用不 可となります。"0" を設定すると , クロックがサウンドジェネレータモジュールに供給 されます。 このビットは , リセット時に "0" に初期化されます。読出しおよび書込みが可能です。 360 第 20 章 リアルタイムクロック リアルタイムクロックの概要 , レジスタの構成 / 機 能および動作について説明します。 20.1 リアルタイムクロックの概要 20.2 リアルタイムクロックのレジスタ 20.3 リアルタイムクロックの動作説明 361 第 20 章 リアルタイムクロック 20.1 リアルタイムクロックの概要 リアルタイムクロックの概要とブロックダイヤグラムを示します。 ■ リアルタイムクロックの概要 リアルタイムクロック ( ウォッチタイマ ) は , 以下のレジスタおよびカウンタなどで構 成されています。 • タイマ制御レジスタ • サブセカンドレジスタ • 秒 / 分 / 時間レジスタ • 1/2 クロック分周器 • 21 ビットプリスケーラ • 秒 / 分 / 時間カウンタ リアルタイムクロックの動作はリアルワールドタイマの動作と同じであり , リアル ワールドタイマ情報を提供します。 ■ リアルタイムクロックのブロックダイヤグラム 図 20.1-1 リアルタイムクロックのブロックダイヤグラム 発振 クロック 21ビット プリスケーラ 1/2クロック 分周器 CO EN サブセカンド レジスタ UPDT ST 秒カウンタ CI EN LOAD CO 分カウンタ 時間カウンタ CO 6ビット 6ビット CO 5ビット 秒/分/時間レジスタ INTE0 INT0 INTE1 INT1 INTE2 INT2 INTE3 INT3 IRQ 発振クロックは , OSCCR レジスタの RTCSRC ビットにより RTC へのソースクロック としてメインクロック (4MHz) またはサブクロック (32kHz) を選択することが可能で す。詳細は「3.12.7 クロック生成制御部のレジスタ詳細説明 ■ OSCCR: 発振制御レジ スタ」を参照してください。 362 第 20 章 リアルタイムクロック 20.2 リアルタイムクロックのレジスタ リアルタイムクロックのレジスタの機能について説明します。 ■ リアルタイムクロックのレジスタ一覧 図 20.2-1 に , リアルタイムクロックのレジスタ一覧を示します。 図 20.2-1 リアルタイムクロックのレジスタ一覧 クロック禁止レジスタ (WTDBL) bit 7 6 アドレス :00000145H − − − − 5 4 3 2 1 − − − − − − − − − − 0 DBL R/W タイマ制御レジスタ (WTCR) bit 15 14 13 12 11 10 9 8 アドレス :00000146H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0 R/W R/W R/W R/W R/W R/W R/W R/W bit アドレス :00000147H 7 6 5 TST2 TST1 TST0 R/W R/W R/W サブセカンドレジスタ (WTBR) bit 23 アドレス :00000149H − 22 21 − − bit 15 アドレス :0000014AH D15 R/W bit アドレス :0000014BH 4 − − 3 2 RUN UPDT R R/W 1 初期値 -------0B 初期値 00000000B − − 0 ST R/W 初期値 000-00-XB − − 20 D20 R/W 19 D19 R/W 18 D18 R/W 17 D17 R/W 16 D16 R/W 初期値 ---XXXXXB 14 D14 R/W 13 D13 R/W 12 D12 R/W 11 D11 R/W 10 D10 R/W 9 D9 R/W 8 D8 R/W 初期値 XXXXXXXXB 7 D7 R/W 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W 初期値 XXXXXXXXB 15 14 − − − − 13 S5 R/W 12 S4 R/W 11 S3 R/W 10 S2 R/W 9 S1 R/W 8 S0 R/W 初期値 --XXXXXXB 7 6 − − − − 5 M5 R/W 4 M4 R/W 3 M3 R/W 2 M2 R/W 1 M1 R/W 0 M0 R/W 初期値 --XXXXXXB 15 14 13 − − − − − − 12 H4 R/W 11 H3 R/W 10 H2 R/W 9 H1 R/W 8 H0 R/W 初期値 ---XXXXXB − 秒レジスタ (WTSR) bit アドレス :0000014EH 分レジスタ (WTMR) bit アドレス :0000014DH 時間レジスタ (WTHR) bit アドレス :0000014CH 363 第 20 章 リアルタイムクロック ■ クロック禁止レジスタ (WTDBL) 図 20.2-2 クロック禁止レジスタ (WTDBL) のビット構成 bit アドレス :00000145H 7 6 5 4 3 2 1 − − − − − − − − − − − − − − 0 DBL R/W 初期値 -------0B [bit0] DBL : クロック禁止 本ビットを "1" に設定すると , RTC モジュールのクロックは禁止されます。通常の 動作のためには , このビットを "0" に設定してください。本ビットは "0" に初期化 されます。読出しおよび書込みが可能です。 ■ タイマ制御レジスタ (WTCR) 図 20.2-3 タイマ制御レジスタ (WTCR) のビット構成 bit 15 14 13 12 11 10 9 8 アドレス :00000146H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B bit 7 6 5 アドレス :00000147H TST2 TST1 TST0 R/W R/W R/W 初期値 000-00-XB 4 − − 3 2 RUN UPDT R R/W 1 − − 0 ST R/W [bit15 ∼ bit8] INT3 ∼ INT0, INTE3 ∼ INTE0 : 割込みフラグおよび割込み許可フラグ INT0 から INT3 までは割込みフラグです。 このフラグは , 秒カウンタ , 分カウンタおよび時間カウンタがそれぞれオーバフロー した場合に設定されます。対応する INTE ビットが "1" の場合に INT ビットの設定 を行うと , ウォッチタイマは割込み信号を出します。本フラグは , 秒 / 分 / 時間の単 位で割込み信号を出すように設計されています。INT ビットに "0" を書き込むとフ ラグはクリアされ , "1" の書込みは無効です。INT ビットで動作するリードモディ ファイライト (RMW) 系命令はすべて "1" を読み出します。 [bit7 ∼ bit5] TST2 ∼ TST0 : テストビット 本ビットは , デバイステスト用です。すべてのユーザアプリケーションにおいて , "000B" に設定しなければなりません。 [bit3] RUN : フラグ 本ビットは読出しのみ可能です。読出し値が "1" の場合 , RTC モジュールが動作中 であることを示しています。 364 第 20 章 リアルタイムクロック [bit2] UPDT : 更新ビット UPDT ビットは , 秒 / 分 / 時間カウンタ値の修正用です。 カウンタ値を修正するには , 秒 / 分 / 時間レジスタに修正データを書き込みます。次 に UPDT ビットを "1" に設定します。レジスタ値は , 21 ビットプリスケーラからの CO 信号で ( 書き込んだ ), 次のサイクルでカウンタにロードされます。UPDT ビッ トは , カウンタ値が更新されるとハードウェアによりリセットされます。ただし , ソフトウェアによる設定動作とハードウェアによるリセット動作が同時に発生し た場合 , UPDT ビットはリセットされません。 UPDT ビットへの "0" の書込みは無効です。リードモディファイライト (RMW) 系命 令では , "0" は読出し値です。 [bit0] ST : スタートビット ST ビットを "1" に設定すると , ウォッチタイマはレジスタから秒 / 分 / 時間値をロー ドし , 動作を開始します。"0" にリセットした場合 , カウンタおよびプリスケーラは すべて "0" にリセットされ停止します。 本ビットは , カウンタ値の更新にも使用できます。ST ビットを "0" に設定し , RUN が "0" になるまで待ってからカウンタ値を更新して , ST ビットを "1" に設定します。 <注意事項> 初期設定の方法については 「20.3 リアルタイムクロックの動作説明」を参照してくださ い。 カウンタ値の変更を行う場合には ST ビットを使用することをお勧めします。 UPDT ビットによるカウンタ値の変更後 , クロック禁止レジスタ (WTDBL) によるクロッ クの停止を行う際には , 時間・分・秒レジスタの読出しを行い , 設定が反映されているこ とを確認した後にクロックの停止を行ってください。 365 第 20 章 リアルタイムクロック ■ サブセカンドレジスタ (WTBR) 図 20.2-4 サブセカンドレジスタ (WTBR) のビット構成 bit アドレス :00000149H 23 22 21 − − − − − − 20 D20 R/W 19 D19 R/W 18 D18 R/W 17 D17 R/W 16 D16 R/W 初期値 ---XXXXXB bit 15 アドレス :0000014AH D15 R/W 14 D14 R/W 13 D13 R/W 12 D12 R/W 11 D11 R/W 10 D10 R/W 9 D9 R/W 8 D8 R/W 初期値 XXXXXXXXB bit アドレス :0000014BH 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W 初期値 XXXXXXXXB 7 D7 R/W [bit20 ∼ bit0] D20 ∼ D0 : リロードデータ サブセカンドレジスタは , 21 ビットプリスケーラのリロード値を格納します。この 値は , リロードカウンタが "0" になるとリロードされます。3 バイトすべてを修正す る場合は , 書込み命令間にリロード動作が行われていないことを確認してくださ い。そうしないと , 21 ビットプリスケーラは , 新旧のデータバイトを結合した正し くない値をロードしてしまいます。一般的には , サブセカンドレジスタは , ST ビッ トが "0" の間に更新することが推奨されています。サブセカンドレジスタを "0" に 設定した場合 , 21 ビットプリスケーラは一切動作しません。 表 20.2-1 サブセカンドレジスタ設定表 WTBR レジスタ値 時間 366 f =4MHz f= 32kHz 0.5μs 0 − 1μs 1 − 10μs 19 − 100μs 199 − 1ms 1999 15 10ms 19999 159 100ms 199999 1599 500ms 999999 7999 1s 1999999 15999 1.04s 2097151 16776.2 10s − 159999 50s − 799999 65.5s − 1047999 第 20 章 リアルタイムクロック ■ 秒レジスタ (WTSR) 図 20.2-5 秒レジスタ (WTSR) のビット構成 bit アドレス :0000014EH 15 14 − − − − 13 S5 R/W 12 S4 R/W 11 S3 R/W 10 S2 R/W 9 S1 R/W 8 S0 R/W 初期値 --XXXXXXB 詳細説明は「■時間レジスタ (WTHR)」を参照してください。 ■ 分レジスタ (WTMR) 図 20.2-6 分レジスタ (WTMR) のビット構成 bit アドレス :0000014DH 7 6 − − − − 5 M5 R/W 4 M4 R/W 3 M3 R/W 2 M2 R/W 1 M1 R/W 0 M0 R/W 初期値 --XXXXXXB 詳細説明は「■時間レジスタ (WTHR)」を参照してください。 ■ 時間レジスタ (WTHR) 図 20.2-7 時間レジスタ (WTHR) のビット構成 bit アドレス :0000014CH 15 14 13 − − − − − − 12 H4 R/W 11 H3 R/W 10 H2 R/W 9 H1 R/W 8 H0 R/W 初期値 ---XXXXXB 秒 / 分 / 時間レジスタは , 時間情報を格納します。 時間情報は , 秒 , 分 , および時間の 2 進表記です。 本レジスタを読み出すと , カウンタ値だけを戻します。レジスタは書込み値と結合でき ますが , その書込みデータは UPDT ビットを "1" に設定した後に , カウンタにロードさ れます。 バイトレジスタは3つあるので, レジスタから出力された値に矛盾がないことを確認し てください。すなわち , 出力値「1 時間 , 59 分 , 59 秒」は , 「0 時間 , 59 分 , 59 秒」, 「1 時間 , 0 分 , 0 秒」, または「2 時間 , 0 分 , 0 秒」である可能性があります。 また , MCU の動作クロックが発振クロックの半分の場合 (PLL が停止している場合 ), 本 レジスタからの読出し値は破損していることがあります。これは , 読出し動作とカウン ト動作の同期調整のために起こります。したがって , 読出し命令のトリガには , 秒割込 みを使用することを推奨します。 <注意事項> このモジュールでは, 発振器に直結されたRTCクロックに比べて, R-basクロック (CLKP) が遅くないことを想定しています。該当しない場合は , レジスタにアクセスすると , 未定 義の値が読み出されます。 367 第 20 章 リアルタイムクロック 20.3 リアルタイムクロックの動作説明 リアルタイムクロックの動作を説明します。 ■ リアルタイムクロックの動作説明 RTC 起動の際には , 以下の設定を行う必要があります。 1) WTDBL bit0 に "0" を書き込みます。 2) WTCR bit0, ST(Start)ビットに"1"を書き込み, その後STビットに"0"を書き込みます。 3) WTBR に初期値 ( 任意の値 ) を書き込みます。 4) WTHR, WTMR, WTSR の各レジスタに初期値 ( 任意の値 ) を書き込みます。 5) WTCR レジスタ内 INT0 ∼ INT3 ビットに "0" を書き込み , 割込みフラグを初期化し てください。 6) WTCR レジスタ内 , INTE0 ∼ INTE3 の設定を行ってください。 割込み通知を有効にする場合は , 本設定を行ってください。 7) WTCR ST ビットに "1" を書き込み ,RTC の動作を開始してください。 <注意事項> RTC の内部レジスタへのアクセスが必要な場合には , WTDBL bit0 に "0" を書き込んだ後 にアクセスを行ってください。WTDBL bit0 が "1" の状態でアクセスを行うと , 読出し時 には不定な値が読み出され , 書込み時には書き込んだ値がレジスタに反映されません。 RTC を停止することにより , 内部レジスタの設定が初期化されます。そのため , 再起動を 行う際には必要となるレジスタ設定を行った後に , WTCR:ST ビットを "1" に設定してく ださい。 RTC のカウンタは , 通常 INITX/ ソフトウェアリセットでクリアされますが , 時分秒のレジ スタはクリアされず , 値が保持されます。 動作開始時にレジスタ値をクリアする場合は , 書 込みにて初期値を設定してください。 メインクロック RTC 動作をご使用の場合は , ストップモードへ遷移させる前にクロッ クソースを原発振入力の 1/2 に設定し , PLL を停止させ , さらに基本クロック分周レジ スタ 0, 1(DIVR0, DIVR1) により , CPU クロック (CLKB), 周辺クロック (CLKP), 外部イ ンタフェースクロック (CLKT) の各クロックを 8 分周以上の分周比に設定してから , ス トップモードへ遷移させてください。 368 第 21 章 UART UART の概要 , レジスタの構成 / 機能および UART の動作について説明します。 21.1 UART の概要 21.2 UART のレジスタ 21.3 UART の動作 21.4 UART の応用例 369 第 21 章 UART 21.1 UART の概要 UART は , 非同期 ( 調歩同期 ) 通信 , またはクロック同期通信を行うためのシリアル I/O ポートです。 ■ UART の特長 • 全二重ダブルバッファ • 非同期 ( 調歩同期 ), クロック同期通信が可能 • マルチプロセッサモードのサポート • 完全プログラマブルボーレート : 内蔵タイマにより任意のボーレートを設定可能 (「第 15 章 U-Timer」参照 )。 • 外部クロックによる自由なボーレートの設定が可能 • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 転送信号は NRZ 符号 ■ UART のブロックダイヤグラム 図 21.1-1 UART のブロックダイヤグラム 制御信号 U-Timer 受信割込み (CPUへ) SC(クロック) 送信クロック 外部クロック クロック SC 選択回路 送信割込み (CPUへ) 受信クロック 受信制御回路 SI(受信データ) 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット 検出回路 受信ビット カウンタ 受信パリティ カウンタ 受信パリティ カウンタ SO(送信データ) 受信状態判定回路 受信用シフタ DMA用 受信エラー発生信号 (DMACへ) 受信終了 SIDR 送信用シフタ 送信開始 SODR R-bus SMR レジスタ MD1 MD0 CS0 SCKE 370 SCR レジスタ PEN P SBL CL A/D REC RXE TXE SSR レジスタ PE ORE FRE RDRF TDRE BDS RIE TIE 制御信号 第 21 章 UART 21.2 UART のレジスタ UART で使用するレジスタの構成および機能について説明します。 ■ UART のレジスタ一覧 図 21.2-1 に , UART のレジスタ一覧を示します。 図 21.2-1 UART のレジスタ構成 SMR bit アドレス :000063H 7 MD1 6 MD0 5 − リード / ライト (R/W) (R/W) ( − ) (0) (−) 初期値 (0) 4 − (−) (−) 3 CS0 (W) (0) 2 1 0 − SCKE − ( − ) (R/W) ( − ) (0) (−) (−) SCR bit 15 14 13 12 11 10 9 8 PEN P SBL CL A/D REC RXE TXE リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (W) (R/W) (R/W) (0) (0) (0) (0) (1) (0) (0) 初期値 (0) アドレス :000062H SIDR/SODR bit アドレス :000061H 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (X) (X) (X) (X) (X) (X) (X) 初期値 (X) SSR bit アドレス :000060H リード / ライト 初期値 15 PE (R) (0) 14 ORE (R) (0) 13 12 11 10 9 8 FRE RDRF TDRE BDS RIE TIE (R) (R) (R) (R/W) (R/W) (R/W) (0) (0) (1) (0) (0) (0) ■ シリアルモードレジスタ (SMR) のビット構成 図 21.2-2 シリアルモードレジスタ (SMR) のビット構成 SMR bit 7 6 5 MD1 MD0 − リード / ライト (R/W) (R/W) ( − ) (0) (−) 初期値 (0) アドレス :000063H 4 − (−) (−) 3 CS0 (W) (0) 2 1 0 SCKE − − ( − ) (R/W) ( − ) (0) (−) (−) SMR は UART の動作モードを指定します。動作モードの設定は動作停止中に行い , 動 作中にこのレジスタへの書込みは行わないでください。 371 第 21 章 UART [bit7, bit6] MD1, MD0 (Mode Select) UART の動作モードを選択します。 モード MD1 MD0 0 0 0 非同期 ( 調歩同期 ) ノーマルモード [ 初期値 ] 1 0 1 非同期 ( 調歩同期 ) マルチプロセッサモード 2 1 0 クロック同期モード − 1 1 設定禁止 動作モード ( 注意事項 ) モード 1 のクロック非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台のスレーブ CPU が接続される使用方法です。本リソースでは , 受信デー タのデータ形式を判別できません。したがって , マルチプロセッサモードのマス タのみをサポートします。また , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に設定してください。 [bit5, bit4] (Reserved bit) 常に "1" を書き込んでください。 [bit3] CS0 (Clock Select) UART の動作クロックを選択します。 0:内蔵タイマ (U-Timer)[ 初期値 ] 1:外部クロック ( 注意事項 ) シリアルモードレジスタの bit3 による内 / 外ボーレートクロックの切換えは書込 み後 , 直ちに反映されるので , UART が停止状態のときに行ってください。 [bit2] (Reserved bit) 常に "0" を書き込んでください。 [bit1] SCKE (SCLK Enable) クロック同期モード ( モード 2) で通信を行う場合 , SCK 端子をクロック入力にする か , クロック出力端子として使用するかを指定します。 クロック非同期モード時または外部クロックモード時では"0"に設定してください。 0:クロック入力端子として機能します。[ 初期値 ] 1:クロック出力端子として機能します。 ( 注意事項 ) クロック入力端子として使うには , CS0 ビットを "1" にして外部クロックを選択 しておく必要があります。 [bit0] (Reserved bit) 常に "0" を書き込んでください。 372 第 21 章 UART ■ シリアルコントロールレジスタ (SCR) のビット構成 図 21.2-3 シリアルコントロールレジスタ (SCR) のビット構成 SCR bit 15 14 13 12 11 10 9 8 アドレス :000062H PEN P SBL CL A/D REC RXE TXE リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (W) (R/W) (R/W) (0) (0) (0) (0) (1) (0) (0) 初期値 (0) SCR はシリアル通信を行う場合の転送プロトコルを制御します。 [bit15] PEN (Parity Enable) シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定しま す。 0:パリティなし [ 初期値 ] 1:パリティあり ( 注意事項 ) パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) およびクロック同期 通信 ( モード 2) では , パリティを付加することはできません。 [bit14] P (Parity) パリティを付加してデータ通信を行うとき , 奇数 / 偶数パリティを指定します。 0:偶数パリティ [ 初期値 ] 1:奇数パリティ [bit13] SBL (Stop bit Length) 非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークであるストップビット のビット長を指定します。 0:1 ストップビット [ 初期値 ] 1:2 ストップビット [bit12] CL (Character Length) 送受信する 1 フレームのデータ長を指定します。 0:7 ビットデータ [ 初期値 ] 1:8 ビットデータ ( 注意事項 ) 7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) およびクロック同期 通信 ( モード 2) では 8 ビットデータとしてください。 373 第 21 章 UART [bit11] A/D (Address/Data) 非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信す るフレームのデータ形式を指定します。 0:データフレーム [ 初期値 ] 1:アドレスフレーム [bit10] REC (Receiver Error Clear) "0"を書き込むことで, SSRレジスタのエラーフラグ(PE, ORE, FRE)をクリアします。 "1" の書込みは無効であり , 読出しは常に "1" になります。 [bit9] RXE (Receiver Enable) UART の受信動作を制御します。 0:受信動作を禁止します。[ 初期値 ] 1:受信動作を許可します。 ( 注意事項 ) 受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止 した場合には , そのフレームの受信を完了し受信データバッファ SIDR レジスタ に受信データを格納したところで受信動作を停止します。 [bit8] TXE (Transmitter Enable) UART の送信動作を制御します。 0:送信動作を禁止します。[ 初期値 ] 1:送信動作を許可します。 <注意事項> 送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は , 送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止しま す。 374 第 21 章 UART ■ シリアルインプットデータレジスタ (SIDR) / シリアルアウトプットデータレジス タ (SODR) 図 21.2-4 シリアルインプットデータレジスタ (SIDR) / シリアルアウトプットデータレジスタ (SODR) のビット構成 SIDR bit 7 D7 (R) (X) 6 D6 (R) (X) 5 D5 (R) (X) 4 D4 (R) (X) 3 D3 (R) (X) 2 D2 (R) (X) 1 D1 (R) (X) 0 D0 (R) (X) bit 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 リード / ライト 初期値 (W) (X) (W) (X) (W) (X) (W) (X) (W) (X) (W) (X) (W) (X) (W) (X) アドレス :000061H リード / ライト 初期値 SODR アドレス :000061H 受信 / 送信用のデータバッファレジスタです。 データ長が 7 ビットの場合 , bit7(D7) は無効データとなります。SODR レジスタへの書 込みは , SSR レジスタの TDRE が "1" のときに行ってください。 <注意事項> 本レジスタへの書込み動作は , SODR レジスタへの書込みを意味します。また , 読出し動 作は SIDR レジスタからの読出しを意味します。 375 第 21 章 UART ■ シリアルステータスレジスタ (SSR) のビット構成 図 21.2-5 シリアルステータスレジスタ (SSR) のビット構成 SSR bit アドレス :000060H リード / ライト 初期値 15 PE (R) (0) 14 ORE (R) (0) 13 12 11 10 9 8 FRE RDRF TDRE BDS RIE TIE (R) (R) (R) (R/W) (R/W) (R/W) (0) (0) (1) (0) (0) (0) [bit15] PE (Parity Error) 受信時にパリティエラーが発生したときにセットされる割込み要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書 き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0:パリティエラーなし [ 初期値 ] 1:パリティエラー発生 [bit14] ORE (Over Run Error) 受信時にオーバランエラーが発生したときにセットされる割込み要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書 き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0:オーバランエラーなし [ 初期値 ] 1:オーバランエラー発生 [bit13] FRE (Framing Error) 受信時にフレーミングエラーが発生したときにセットされる割込み要求フラグで す。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書 き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0:フレーミングエラーなし [ 初期値 ] 1:フレーミングエラー発生 [bit12] RDRF (Receiver Data Register Full) SIDR レジスタに受信データがあることを示す割込み要求フラグです。 SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出 すと自動的にクリアされます。 0:受信データなし [ 初期値 ] 1:受信データあり 376 第 21 章 UART [bit11] TDRE (Transmitter Data Register Empty) SODR に送信データを書込み可能であることを示す割込み要求フラグです。 SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送 信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを 書き込めることを表します。 0:送信データの書込み禁止 1:送信データの書込み許可 [ 初期値 ] [bit10] BDS (Bit Direction Select) 転送方向選択ビットです。 0:最下位ビット (LSB) 側から転送を開始します。[ 初期値 ] 1:最上位ビット (MSB) 側から転送を開始します。 ( 注意事項 ) SIDR/SODR の更新後に本ビットの変更を行うと , そのデータは無効となります。 [bit9] RIE (Receiver Interrupt Enable) 受信割込みを制御します。 0:割込みを禁止します。[ 初期値 ] 1:割込みを許可します。 ( 注意事項 ) 受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受 信があります。 [bit8] TIE (Transmitter Interrupt Enable) 送信割込みを制御します。 0:割込みを禁止します。[ 初期値 ] 1:割込みを許可します。 ( 注意事項 ) 送信割込み要因は , TDRE による送信要求があります。 377 第 21 章 UART 21.3 UART の動作 UART には , 非同期 ( 調歩同期 ) モードとクロック同期モードの 2 種類の動作モード があります。非同期 ( 調歩同期 ) モードには , ノーマルモードとマルチプロセッサ モードがあります。以下に , 各動作モードにおける動作について説明します。 ■ UART の動作モード UART は , 以下に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設定する ことによりモードを切り換えることができます。 モード パリティ データ長 動作モード あり / なし 7 ビット あり / なし 8 ビット 非同期 ( 調歩同期 ) ノーマルモード 1 なし 8+1 ビット 非同期 ( 調歩同期 ) マルチプロセッサモード 2 なし 8 ビット クロック同期モード 0 ストップビット長 1 ビットまたは 2 ビット なし ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定 が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動 作しませんので設定しないでください。 ■ UART のクロック選択 ● 内部タイマ CS0 を "0" に設定して U-Timer を選択した場合は , U-Timer に設定したリロード値で ボーレートが決まります。このときのボーレートの算出式は以下のとおりです。 非同期 ( 調歩同期 ) φ/(16 × β) クロック同期 φ/β φ:周辺系マシンクロック周波数 β:U-Timer で設定した周期 (2n+2 または 2n+3, n はリロード値 ) 非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの -1% から +1% まで の範囲で転送が可能です。 ● 外部クロック CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロックの周 波数を f とすると以下のようになります。 非同期 ( 調歩同期 ) f/16 クロック同期 f ただし , f は最大 3.125MHz までです。 378 第 21 章 UART 非同期 ( 調歩同期 ) モード 21.3.1 UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ モード ) で使用するとき , 転送方式は非同期となります。 ■ 転送データフォーマット UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。 以下に転送データフォーマットを示します。 図 21.3-1 転送データフォーマット S1,S0 0 1 Start LSB 0 1 1 0 0 1 0 1 1 MSB Stop ---- (モード0) A/D Stop ---- (モード1) 転送されたデータは 01001101B 図に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット ("H" レ ベルデータ ) で終了します。 外部クロックを選択している場合は , 常にクロックを入力してください。 ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定することが できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。 また , マルチプロセッサモードではパリティを付加することができません。その代わり A/D ビットが必ず付加されます。 ■ 受信動作 SCR レジスタの RXE ビット (bit1) が "1" ならば , 常に受信動作が行われています。 受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー マットに従い 1 フレームデータの受信が行われます。1 フレームの受信が終わると , エ ラーが発生した場合にはエラーフラグのセットが行われた後 , RDRF フラグ (SSR レジ スタ bit4) がセットされます。このとき同じ SSR レジスタの RIE ビット (bit1) が "1" に セットされていれば CPU に対して受信割込みが発生します。SSR レジスタの各フラグ を調べ , 正常受信であれば SIDR レジスタを読み出して , エラーが発生していれば必要 な処理を行うようにしてください。 RDRF フラグは , SIDR レジスタを読み出すとクリアされます。 379 第 21 章 UART ■ 送信動作 SSR レジスタの TDRE フラグ (bit3) が "1" のとき , SODR レジスタに送信データを書き 込みます。ここで , SCR レジスタの TXE ビット (bit0) が "1" ならば送信が行われます。 SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開 始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな ります。このとき同じ SSR レジスタの TIE ビット (bit0) が "1" にセットされていれば CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットするよう に要求されます。 TDRE フラグは , SODR レジスタにデータをセットするといったんクリアされます。 380 第 21 章 UART 21.3.2 クロック同期モード UART を動作モード 2 で使用するとき , 転送方法はクロック同期となります。 ■ 転送データフォーマット UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。以下に送受信クロッ クとデータフォーマットとの関係を示します。 図 21.3-2 転送データフォーマット SODR書込み マーク SC RXE, TXE S1, S0 1 LSB 0 1 1 0 0 1 0 MSB - - - -(モード2) 転送されたデータは 01001101B 内部クロック (U-Timer) を選択している場合は , データを送信するとデータ受信用同期 クロックが自動的に生成されます。 外部クロックを選択している場合は , 送信側 UART かの送信用データバッファ SODR レジスタにデータがあることを (TDRE フラグが "0") を確かめた後 , 正確に 1 バイト分 のクロックを供給する必要があります。送信開始前と終了後は , 必ずマークレベルにし てください。 データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スター ト / ストップビットがないのでオーバランエラー以外のエラーの検出は行われません。 381 第 21 章 UART ■ 初期化 クロック同期モードを使用する場合の各制御レジスタの設定値を示します。 • SMR レジスタ MD1, MD0 :"10B" CS0 :クロック入力を指定 SCKE :内部タイマの場合 "1", 外部クロックの場合 "0" SOE :送信を行う場合 "1", 受信のみの場合 "0" • SCR レジスタ PEN :"0" P, SBL, A/D :これらのビットは意味を持ちません CL :"1" REC :"0"( 初期化のため ) RXE, TXE :少なくとも , どちらか一方を "1" • SSR レジスタ RIE :割込みを使用する場合 "1", 使用しない場合 "0" TIE :"0" ■ 送信開始 SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも必ず仮の 送信データを SODR レジスタに書き込む必要があります。 ■ 送信終了 SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス タの ORE ビットによって , 通信が正常に行われたことを確認してください。 382 第 21 章 UART 21.3.3 割込み発生およびフラグのセットタイミング UART の割込み発生およびフラグのセットタイミングを説明します。 UART は , 5 つのフラグと 2 つの割込み要因を持ちます。 フラグは , PE, ORE, FRE, RDRF, TDRE です。各フラグの意味は「22.2 LIN-UART のレ ジスタ一覧 ■シリアルステータスレジスタ (SSR)」を参照してください。 PE, ORE, FRE は , 受信時にエラーが発生したときセットされ , SCR レジスタの REC に "0" を書き込むとクリアされます。 RDRF は受信データが SIDR レジスタにロードされるとセットされ , SIDR レジスタを 読み出すことでクリアされます。ただし , モード 1 ではパリティ検出機能 , モード 2 で はパリティ検出機能とフレーミングエラー検出機能はありません。TDRE は , SODR レ ジスタが空になり書込み可能な状態になるとセットされ, SODRレジスタへ書込みを行 うとクリアされます。 割込み要因は , 送信用と受信用のものです。受信時は PE/ORE/FRE/RDRF により割込み を要求します。送信時は TDRE により割込みを要求します。各動作モードによる割込 みフラグのセットタイミングを以下に示します。 ● モード 0 の受信動作時 PE, ORE, FRE, RDRF は受信動作が終了し最後のストップビットを検出するときにフラ グがセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブのと きは , SIDR のデータは無効データとなります。 図 21.3-3 ORE, FRE, RDRF のセットタイミング ( モード 0) データ D6 D7 ストップ PE, ORE, FRE RDRF 受信割込み ● モード 1 の受信動作時 ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフラグ がセットされ , CPU への割込み要求が発生します。受信可能なデータ長は 8 ビットの ため最後の 9 ビット目のアドレス / データを示すデータは無効となります。ORE, FRE がアクティブのときは SIDR のデータは無効データとなります。 383 第 21 章 UART 図 21.3-4 ORE, FRE, RDRF のセットタイミング ( モード 1) データ D7 アドレス/データ ストップ ORE, FRE RDRF 受信割込み ● モード 2 の受信動作時 ORE, RDRF は受信動作が終了し , 最後のデータ (D7) を検出するときにフラグがセット され , CPU への割込み要求が発生します。ORE がアクティブのときは , SIDR のデータ は無効データとなります。 図 21.3-5 ORE, RDRF のセットタイミング データ D5 D6 D7 ORE RDRF 受信割込み ● モード 0, モード 1, モード 2 の送信動作時 TDRE は SODR レジスタへ書込みが行われるとクリアされ , 内部のシフトレジスタに 転送された後 , 次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要 求が発生します。送信動作中に SCR レジスタの TXE に "0"( モード 2 のときは RXE も 含む ) を書き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止して から UART の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0"( モー ド 2 のときは RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書 き込まれたデータは送信されます。 図 21.3-6 TDRE のセットタイミング ( モード 0, 1) SODR書込み TDRE CPUへ割込み要求をする SO割込み SO出力 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3 A/D ST:スタートビット D7~D0:データビット SP:ストップビット A/D:アドレス/データマルチプレクサ 384 第 21 章 UART 図 21.3-7 TDRE のセットタイミングモード ( モード 2) SODR書込み TDRE CPUへ割込み要求をする SO割込み SO出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D7~D0:データビット ■ 使用上の注意 通信モードの設定は動作停止中に行ってください。 モード設定中に送受信したデータは保証されません。 385 第 21 章 UART 21.4 UART の応用例 UART のモード 1 における応用例について説明します。 モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に 使用されます。このリソースでは , ホスト側の通信インタフェースのみサポートし ます。 ■ UART の応用例 図 21.4-1 モード 1 を使用したシステム構築例 SO SI ホストCPU SO SI スレーブCPU#0 SO SI スレーブCPU#1 通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス データとは , SCR レジスタの A/D が "1" のときのデータで , これにより通信先となるス レーブ CPU が選択され , ホスト CPU との通信が可能となります。通常データは , SCR レジスタの A/D が "0" のときのデータです。以下に , そのフローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの PEN ビットは "0" としてください。 386 第 21 章 UART 図 21.4-2 モード 1 使用時のフローチャート (ホストCPU) START 転送モードを"1"とする D0~D7にスレーブCPU を選択するデータをセッ トし, A/Dに "1"をセッ トして1バイト転送 A/Dに "0"をセット 受信動作許可 スレーブCPUと通信 NO 通信終了? YES NO 通信終了? YES 受信動作禁止 END 387 第 21 章 UART 388 第 22 章 LIN-UART LIN-UART の概要 , レジスタの構成 / 機能および動 作について説明します。 22.1 LIN-UART の概要 22.2 LIN-UART のレジスタ一覧 22.3 インプットキャプチャによるボーレート検出 22.4 LIN-UART の動作 22.5 UART 割込み 22.6 LIN-UART のクロック同期 22.7 フラグセットのタイミング 22.8 LIN-UART の特別仕様 22.9 LIN 通信動作 22.10 UART からの変更点 22.11 LIN-UART の制限事項 389 第 22 章 LIN-UART LIN-UART の概要 22.1 LIN-UART の概要およびブロックダイヤグラムを説明します。 ■ LIN-UART の概要 LIN(Local Interconnect Network)-UART は , 外部装置と非同期通信 , 同期通信をするため の汎用シリアルデータ通信インタフェースです。双方向通信機能 ( ノーマルモード ), マスタ / スレーブ型通信機能 ( マルチプロセッサモード ), LIN バスシステム ( マスタ / スレーブ動作 ) があります。 LIN-UART は通常の UART と類似していますが , ソフトウェアの互換性はありません。 表 22.1-1 UART の機能 項目 機能 データバッファ 全二重バッファ シリアル入力 5 回オーバサンプリング ( 非同期モードのみ ) 転送モード • クロック同期通信 ( スタート / ストップ同期 , スタートストップビット選択 ) • クロック非同期 ( スタート , ストップビット使用 ) ボーレート • 専用ボーレートジェネレータ (15 ビットリロードカウンタにより構成 ) • 外部クロック入力可能。また , リロードカウンタで調節可能 データ長 • 7 ビット ( 同期または LIN モード以外 ) • 8 ビット 信号 NRZ(Non Return to Zero), RZ(Return to Zero) 方式 スタートビット タイミング 非同期モード時は , スタートビット立下りエッジに同期 受信エラー検出 • フレーミングエラー • オーバランエラー • パリティエラー 割込み要求 • • • • マスタ / スレーブ型 通信機能 ( マルチ プロセッサモード ) 1( マスタ ) 対 N( スレーブ ) 間の通信可能 ( マスタ / スレーブシステムの両方をサポート ) 同期モード マスタまたはスレーブ機能 端子アクセス シリアル入出力端子の状態を直接読出し可能 LIN バス オプション • • • • • 同期シリアル クロック スタート / ストップビットで同期通信するために , SCK 端子に連続出力可能 390 受信割込み ( 受信完了 , 受信エラー検出 ) 送信割込み ( 送信完了 ) バスアイドル割込み LIN synch field 検出割込み マスタデバイス動作 スレーブデバイス動作 LIN Synch break 生成 LIN Synch break 検出 キャプチャに接続している LIN Synch field のスタート / ストップエッジ検出 第 22 章 LIN-UART ■ LIN-UART のブロックダイヤグラム 図 22.1-1 LIN-UART のブロックダイヤグラム (OTO, EXT, REST) CLK PE ORE FRE TIE RIE LBIE LBD BIE RBI TBI 送信クロックTRCK リロード カウンタ 受信クロックRSCK 割込み 発生回路 送信制御 送信制御 SCK 端子 スタート ビット検知 SIN 端子 送信開始回路 受信IRQ SEDGE IN (from ECCR) 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ TDRE 送信IRQ SOUT オーバ サンプリング ユニット 端子 INV RDRF 受信完了 SCU SIN LSYN (to ICU) LINブレーク, Synch Field 検知回路 SIN 受信シフト レジスタ 送信シフト レジスタ LINブレーク 発生 送信開始 バス アイドル 検知回路 エラー 検知 STR (to El2OS) RE ORE FRE RDR LBR LBL1 LBLD TDR RBI LB TBI 内部データバス PE ORE FRE RDRF TDRE BDS RIE TIE SSR レジスタ MD1 MD0 OTO EXT REST UPCL SCKE SOE SMR レジスタ PEN P SBL CL A/D CRW RXE TXE SCR レジスタ LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES ESCR レジスタ INV LBR MS 予約ビット SSM BIE RBI TBI ECCR レジスタ 391 第 22 章 LIN-UART 22.2 LIN-UART のレジスタ一覧 LIN-UART のレジスタの機能について説明します。 ■ LIN-UART のレジスタ一覧 MB91245/S シリーズは , "LIN-UART0", "LIN-UART1" および "LIN-UART2" の 3 つの LIN-UART から構成されており , LIN-UART0 は SIN3, SCK3, SOT3 端子 , LIN-UART1 は SIN4, SCK4, SOT4 端子 , LIN-UART2 は SIN5, SCK5, SOT5 端子に接続されています。 LIN-UART は , 以下のレジスタで構成されています。 LIN-UART0 アドレス +0 +1 0000B0H SCR3 ( シリアル制御レジスタ ) SMR3( シリアルモードレジスタ ) 0000B2H SSR3 ( シリアルステータスレジスタ ) RDR3/TDR3 ( 受信データ / 送信データレジスタ ) 0000B4H ESCR3( 拡張ステータス制御レジスタ ) ECCR3( 拡張通信制御レジスタ ) 0000B6H BGR13 ( ボーレートジェネレータレジスタ 1) BGR03 ( ボーレートジェネレータレジスタ 0) +0 +1 0000B8H SCR4 ( シリアル制御レジスタ ) SMR4( シリアルモードレジスタ ) 0000BAH SSR4 ( シリアルステータスレジスタ ) RDR4/TDR4 ( 受信データ / 送信データレジスタ ) 0000BCH ESCR4( 拡張ステータス制御レジスタ ) ECCR4( 拡張通信制御レジスタ ) 0000BEH BGR14 ( ボーレートジェネレータレジスタ 1) BGR04 ( ボーレートジェネレータレジスタ 0) +0 +1 0000C0H SCR5 ( シリアル制御レジスタ ) SMR5( シリアルモードレジスタ ) 0000C2H SSR5 ( シリアルステータスレジスタ ) RDR5/TDR5 ( 受信データ / 送信データレジスタ ) 0000C4H ESCR5( 拡張ステータス制御レジスタ ) ECCR5( 拡張通信制御レジスタ ) 0000C6H BGR15 ( ボーレートジェネレータレジスタ 1) BGR05 ( ボーレートジェネレータレジスタ 0) LIN-UART1 アドレス LIN-UART2 アドレス 392 第 22 章 LIN-UART ■ シリアル制御レジスタ (SCR) 図 22.2-1 シリアル制御レジスタ (SCR) のビット構成 初期値 アドレス: bit 15 14 13 12 11 10 9 8 ch.3 0000B0H ch.4 0000B8H ch.5 0000C0H R/W R/W R/W R/W R/W R/W R/W R/W 00000000B bit8 TXE 0 1 送信不可 送信可 bit9 RXE 0 1 受信不可 受信可 送信許可 受信許可 bit10 CRW* 1 0 1 受信エラーフラグビットのクリア 書込み 読出し 無効 すべてのエラーフラグの クリア(PE, FRE, OE) 常に”0” bit11 A/D アドレス/データ選択 読出し 書込み RMW読出し 0 受信データ ビット 送信データ 送信データ ビットの書込み ビットの読出し 1 受信アドレス 送信アドレス 送信アドレス ビット ビットの書込み ビットの読出し bit12 データ長選択(データフレーム) CL*2 7ビット 0 8ビット 1 bit13 ストップビット長選択 SBL*3 1ストップビット 0 1 2ストップビット bit14 パリティ選択 P 0 偶数パリティ選択 1 奇数パリティ選択 R/W : リード/ライト可能 : 初期値 bit15 パリティ許可 PEN*4 パリティ無効 0 パリティ有効 1 *1: 受信エラーフラグをクリアすると , 受信限定のステートマシンがリセットされるので新しいスター トビット ( モード 2 の場合 , 新しいデータフレーム ) を検出する準備ができます。受信動作を禁止 せずに受信エラーフラグをクリアにすると , そのタイミングで受信をいったん中断し , その後再開 します。このため , 受信再開時に正常なデータを受信しない場合があります。 *2: モード 2 とモード 3(LIN モード ) では , データ長 8 ビットに固定されますので , これらのモード時 に "0" を書き込んでも動作に影響を与えません。 *3: モード 3(LIN モード ) では , ストップビット長 1 ビットに固定されますので , このモード時に "1" を書き込んでも動作に影響を与えません。 *4: パリティビットは , モード 0 または拡張通信制御レジスタ (ECCR) のスタート / ストップ許可ビッ ト (SSM) が有効でモード 2 のときに付加されます。その他の設定の場合 , 本ビットに "1" を設定 しても動作に影響を与えません。 393 第 22 章 LIN-UART ■ シリアルモードレジスタ (SMR) 図 22.2-2 シリアルモードレジスタ (SMR) のビット構成 アドレス: bit ch.3 0000B1H ch.4 0000B9H ch.5 0000C1H 7 6 5 4 3 2 1 初期値 0 00000000 B R/W R/W R/W R/W R/W R/W R/W R/W bit0 SOE 0 1 シリアルデータ出力許可 SOT3端子無効 (Hi-Z) SOT3端子有効(Txデータ) bit1 シリアルクロック出力許可 SCKE 外部シリアルクロック入力 0 内部シリアルクロック出力 1 bit2 UPCL 0 1 UARTプログラムクリア(ソフトウェアリセット) 書込み 読出し 無効 常に”0” UARTをリセット bit3 通信再開リロードカウンタ 書込み 読出し REST 0 1 bit4 EXT 0 1 R/W 394 : リード/ライト可能 : 初期値 無効 カウンタ再スタート 常に”0” 外部シリアルクロック選択 内部ボーレート発生器の使用(リロードカウンタ) 外部シリアルクロックの使用 bit5 OTO 0 1 外部クロックの使用 bit6 MD0 0 1 0 1 bit7 MD1 0 0 1 1 直接外部クロック選択 ボーレート発生器と共に外部クロックの使用(リロードカウンタ) 動作モード選択 モード0 : 非同期通常モード モード1 : 非同期マルチプロセッサモード モード2 : 同期モード モード3 : 非同期LINモード 第 22 章 LIN-UART ■ シリアルステータスレジスタ (SSR) 図 22.2-3 シリアルステータスレジスタ (SSR) のビット構成 アドレス: bit 15 ch.3 0000B2H ch.4 0000BAH ch.5 0000C2H R *: 14 13 12 11 10 9 初期値 8 00001000 B R R R R R/W R/W R/W R/W : リード/ライト可能 R : リードオンリ : 初期値 bit8 TIE 0 1 送信割込み要求許可 送信割込み要求無効 送信割込み要求有効 bit9 RIE 0 1 受信割込み要求許可 受信割込み要求無効 受信割込み要求有効 bit10 BDS* 0 1 転送方向選択 LSBからデータ転送 MSBからデータ転送 bit11 TDRE 0 1 送信データエンプティ 送信データレジスタがフル 送信データレジスタが空 bit12 RDRF 0 1 受信データフル 受信データレジスタが空 受信データレジスタがフル bit13 FRE 0 1 フレーミング・エラーなし 受信中にフレーミング・エラー発生 bit14 ORE 0 1 オーバラン・エラーなし 受信中にオーバラン・エラー発生 bit15 PE 0 1 フレーミング・エラー オーバラン・エラー パリティ・エラー パリティ・エラーなし 受信中にパリティ・エラー発生 モード 3 (LIN モード ) では , BDS ビットは "0" に固定されるので , このモードで "1" を書き込んで も動作に影響を与えません。 395 第 22 章 LIN-UART ■ 受信データレジスタ (RDR) と送信データレジスタ (TDR) 図 22.2-4 受信データレジスタ (RDR) と送信データレジスタ (TDR) のビット構成 アドレス: bit ch.3 0000B3H ch.4 0000BBH ch.5 0000C3H 7 6 5 4 3 2 1 初期値 0 RDR: 00000000 B TDR : 11111111 B R/W R/W R/W R/W R/W R/W R/W R/W R/W リード ライト R/W 396 : リード/ライト可能 データレジスタ 受信データレジスタからの読出し 受信データレジスタへの書込み 第 22 章 LIN-UART ■ 拡張ステータス制御レジスタ (ESCR) 図 22.2-5 拡張ステータス制御レジスタ (ESCR) のビット構成 初期値 アドレス: bit 15 14 13 12 11 10 9 8 ch.3 0000B4H ch.4 0000BCH ch.5 0000C4H R/W R/W R/W R/W R/W R/W R/W R/W 00000X00 B bit8 SCES サンプリングクロックエッジ選択 (モード2) 立上りクロックエッジでサンプリング (通常) 0 立下りクロックエッジでサンプリング (変換クロック) 1 bit9 連続クロック出力許可 (モード2) CCO 連続クロック出力無効 0 連続クロック出力有効 1 bit10 SIOP 0 1 シリアル入力/出力端子への直接アクセス 読出し時 "0"をSOT3に設定 SIN3端子の実際の 値を返す "1"をSOT3に設定 書込み時 (SOPE= 1のとき) bit11 SOPE シリアル出力端子への直接アクセスの許可 シリアル出力端子への直接アクセス無効 0 シリアル出力端子への直接アクセス有効 1 bit12 LBL0 0 1 0 1 bit13 LBL1 0 0 1 1 LINブレーク長 LINブレーク長13 ビットタイマ LINブレーク長14 ビットタイマ LINブレーク長15 ビットタイマ LINブレーク長16 ビットタイマ bit14 LBD 1 0 LINブレーク検出 書込み時 読出し時 無視 LINブレーク検出 LINブレーク検出 LINブレーク検出なし フラグのクリア bit15 LINブレーク検出割込み許可 LBIE LINブレーク割込み無効 0 LINブレーク割込み有効 1 R/W X : : : リード/ライト可能 不定値 初期値 表 22.2-1 SOPE と SIOP の相互作用の説明 SOPE SIOP 0 R 1 R/W SIOP への書込み SIOP からの読出し 影響なし SIN の値を返す SOUT へ "0" または "1" 書込み SIN の値を返す SOPE が "1" のとき , SIOP の初期値は "1" です。 リードモディファイライト (RMW) サイクル有効時 , SIOP はリードサイクルでシリア ル出力端子 (SOUT) の値を返します。 397 第 22 章 LIN-UART ■ 拡張通信制御レジスタ (ECCR) 図 22.2-6 拡張通信制御レジスタ (ECCR) のビット構成 アドレス: bit 7 ch.3 0000B5H ch.4 0000BDH ch.5 0000C5H - 6 5 4 3 2 1 初期値 0 000000XX B W R/W R/W R/W R/W R R bit0 TBI 0 1 送信中 送信動作なし bit1 RBI 0 1 受信中 受信動作なし bit2 BIE 0 1 バスアイドル割込み無効 バスアイドル割込み有効 bit3 SSM 0 1 送信バスアイドル 受信バスアイドル バスアイドル割込み 同期データ形式での開始/停止ビット指定(モード2) 同期モード2で開始/停止ビット無効 同期モード2で開始/停止ビット有効 bit4 予約ビット : 本ビットは"0"に固定されます bit5 MS 0 1 マスタ/スレーブ選択(モード2) マスタモード (シリアルクロックの生成) スレーブモード (外部シリアルクロック受信) bit6 LBR 0 1 R/W R W X 398 : : : : : リード/ライト可能 リードオンリ ライトオンリ 不定値 初期値 bit7 INV 0 1 LINブレークビットの設定 書込み時 読出し時 無視 LINブレークの生成 常に"0"を返す 反転シリアルデータ 非反転シリアルデータ( NRZフォーマット) 反転シリアルデータ(RZフォーマット) 第 22 章 LIN-UART 22.2.1 ボーレート / リロードカウンタレジスタ (BGR) ボーレート / リロードカウンタレジスタ (BGR) は , シリアルクロックの分周比を設 定します。また , 送信リロードカウンタの正確な値を読み出すことも可能です。 ■ ボーレート / リロードカウンタレジスタ (BGR) レジスタはバイトアクセスもしくはハーフワードアクセスでの読出し / 書込みが可能 です。 図 22.2-7 ボーレート / リロードカウンタレジスタ BGR1 bit アドレス : 0000B6H 0000BEH 0000C6H 15 − 14 B14 13 B13 12 B12 11 B11 10 B10 9 B09 8 B08 リード / ライト ( − ) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) BGR0 bit アドレス : 0000B7H 0000BFH 0000C7H 7 B07 6 B06 5 B05 4 B04 3 B03 2 B02 1 B01 0 B00 リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 初期値 (0) [bit15] (Reserved bit) 予約ビットです。読出し値は常に "0" です。 [bit14 ∼ bit8] B14 ∼ B08 : ボーレートジェネレータレジスタ 1 BGR1 ボーレートジェネレータレジスタ 1 書込み リロード値のビット 14 ∼ 8 をカウンタへ書込み 読出し カウントビット 14 ∼ 8 の読出し [bit7 ∼ bit0] B07 ∼ B00 : ボーレートジェネレータレジスタ 0 BGR0 ボーレートジェネレータレジスタ 0 書込み リロード値のビット 7 ∼ 0 をカウンタへ書込み 読出し カウントビット 7 ∼ 0 の読出し 399 第 22 章 LIN-UART 22.3 インプットキャプチャによるボーレート検出 インプットキャプチャによるボーレート検出について説明します。 ■ インプットキャプチャによるボーレート検出 LIN-UART は LSYN 信号をもっており , ICU( インプットキャプチャ ) に接続されてい ます。ICU で , LSYN のパルス長を測定することにより , ボーレートを調整することが できます。ICU との LSYN 信号の接続はポート D ファンクションレジスタ PFRD ( ア ドレス 0000042DH ビット PFRD[2:0]) で制御されます。 IN0端子 0 1 LIN-UART0 LSYN IN ICU0 S フリーランタイマ0 PFRD[0] IN1端子 0 1 LIN-UART1 LSYN IN ICU1 S フリーランタイマ0 PFRD[1] 0 IN2端子 1 LIN-UART2 LSYN IN ICU2 S フリーランタイマ1 PFRD[2] PRF ビットを設定すると , ICU は入力端子 IN に接続されます。 PFR ビットをクリアすると , IN 端子はポートモード (Port D[2:0]) になり , LIN-UART は ICU に接続されます。 400 第 22 章 LIN-UART 22.3.1 UART のボーレート UART のシリアルクロックとして下記のいずれかを選択できます。 • 専用ボーレートジェネレータ ( リロードカウンタ ) • 外部クロック (SCK 端子からのクロック入力 ) • 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用 ■ UART のボーレート選択 図 22.3-1 にボーレート選択回路を示します。下記の 3 つからボーレートを選択可能で す。 ● 専用ボーレートジェネレータ ( リロードカウンタ ) の使用 UART には送信/受信シリアルクロックそれぞれに独立したリロードカウンタがあり ます。ボーレートは , ボーレートジェネレータレジスタ (BGR) の 15 ビットリロード値 により設定されます。 リロードカウンタは , ボーレートジェネレータレジスタの設定値でマシンクロックを 分周します。 ● 外部クロック (SCK 端子からのクロック入力 ) UART クロック入力端子 (SCK) からのクロック入力が直接ボーレートとして使用され ます。 ● 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用 外部クロックをデバイス内部でリロードカウンタと接続させることも可能です。この モードでは , 外部クロックは内部のマシンクロックの代わりに使用されます。 図 22.3-1 ボーレート選択回路 ( リロードカウンタ ) REST スタートビット 立下りエッジ検出 リロード値: v Rxc = 0? 受信15ビット リロードカウンタ セット リロード Rxc = v/2? F/F リセット 0 1 リロード値: v CLK SCK (外部 クロック 入力) EXT Txc = 0? 0 1 受信クロック セット 送信15ビット リロードカウンタ カウント値: Txc リロード OTO F/F Txc = v/2? 0 1 リセット 送信クロック 内部データバス EXT REST OTO SMR レジスタ BGR14 BGR13 BGR12 BGR11 BGR10 BGR9 BGR8 BGR1 レジスタ BGR7 BGR6 BGR5 BGR4 BGR3 BGR2 BGR1 BGR0 BGR0 レジスタ 401 第 22 章 LIN-UART ボーレートの設定 22.3.2 ボーレートの設定方法と , シリアルクロック周波数の算出結果を示します。 ■ ボーレートの算出 ボーレートジェネレータレジスタ (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 分周となります。 402 第 22 章 LIN-UART ■ マシンクロック周波数ごとのボーレート設定例 表 22.3-1 に , マシンクロック周波数とボーレートの設定例を示します。 表 22.3-1 マシンクロックごとのボーレート設定例 8MHz ボーレート (bps) 16MHz 20MHz 24MHz 32MHz リロード 値 dev. リロード 値 dev. リロード 値 dev. リロード 値 dev. リロード 値 dev. 4M - - - - 4 0 5 0 7 0 2M - - 7 0 9 0 11 0 15 0 1M 7 0 15 0 19 0 23 0 31 0 500000 15 0 31 0 39 0 47 0 63 0 460800 - - - - - - 51 -0.16 68 -0.64 250000 31 0 63 0 79 0 95 0 127 0 230400 - - - - - - 103 -0.16 138 0.08 153600 51 -0.16 103 -0.16 129 -0.16 155 -0.16 207 -0.16 125000 63 0 127 0 159 0 191 0 255 0 115200 68 -0.64 138 0.08 173 0.22 207 -0.16 277 0.08 76800 103 -0.16 207 -0.16 259 -0.16 311 -0.16 416 0.08 57600 138 0.08 277 0.08 346 -0.06 416 0.08 555 0.08 38400 207 -0.16 416 0.08 520 0.03 624 0 832 -0.04 28800 277 0.08 554 -0.01 693 -0.06 832 -0.03 1110 -0.01 19200 416 0.08 832 -0.03 1041 0.03 1249 0 1666 0.02 10417 767 0 1535 0 1919 0 2303 0 3071 0 9600 832 -0.04 1666 0.02 2083 0.03 2499 0 3332 -0.01 7200 1110 -0.01 2221 -0.01 2777 0.011 3332 -0.01 4443 -0.01 4800 1666 0.02 3332 -0.01 4166 0.01 4999 0 6666 0 2400 3332 -0.01 6666 0 8332 0 9999 0 13332 0 1200 6666 0 13332 0 16666 0 19999 0 26666 0 600 13332 0 26666 0 - - - - - - 300 26666 0 - - - - - - - - <注意事項> dev. : deviation unit ( 信号 ) 偏差の単位は "%" です。 最大同期ボーレートは , マシンクロックの 5 分周です。 403 第 22 章 LIN-UART ■ 外部クロックの使用 SMR の EXT ビットが設定されると , 外部端子 SCK がクロックとして選択されます。外 部クロック信号は内部 MCU クロックと同様に扱われます。SCK 端子に , 例えば 1.8432MHz の水晶発振子を接続し , PC-16550-UART のすべてのボーレートを選択する ためにリロードカウンタを使用するように設計されています。 "1 対 1" 外部クロック入力モード (SMR の OTO ビット ) が選択されていると , SCK 信 号が UART シリアルクロック入力へ直接接続されます。これは , UART 同期モード 2 でスレーブデバイスとして動作させるために必要です。 <注意事項> いずれの場合においても , クロック信号は UART 内部で MCU クロックと同期化されます。 これは分周できないクロック比は不安定な信号となることを意味します。 ■ カウント例 図 22.3-2 に , 送信/受信リロードカウンタの動作例を示します。ここではリロード値 を 832 としています。 図 22.3-2 リロードカウンタのカウント例 送信/受信クロック リロードカウンタ 001 000 832 831 830 829 828 827 412 411 410 リードカウント値 送信/受信クロック リロードカウンタ 417 416 415 414 413 <注意事項> シリアルクロック信号の立下りエッジは常に , [ (v + 1)/2 ] 後です。 404 第 22 章 LIN-UART 22.4 LIN-UART の動作 LIN-UART の動作について説明します。 ■ LIN-UART の動作モード LIN-UART は下記に示す 4 つの異なった動作モードをもっており , シリアルモードレジ スタ (SMR) の MD0, MD1 ビットにより決定されます。モード 0 と 2 は , 双方向シリア ル通信 , モード 1 は , マスタ / スレーブ型通信 , モード 3 は , LIN マスタ / スレーブ 型通信に利用されます。 データ長 動作モード パリティなし 0 ノーマルモード 1 マルチプロセッサ 2 ノーマルモード 3 LIN モード ストップ ビット長 データ ビット方向 *1 非同期 1 ビットまたは 2 ビット L/M 非同期 1 ビットまたは 2 ビット L/M 同期 0 ビット , 1 ビットまたは 2 ビット L/M 非同期 1 ビット L パリティあり 7 ビットか 8 ビット 7 ビットまたは 8 ビット + 1*2 - 8 ビット 8 ビット 同期方式 - *1: データビット転送方向 :LSB ファーストまたは MSB ファースト *2: "+1" は , 通信制御用に使用されるアドレス / データ形式選択ビット (A/D) を意味します。 <注意事項> モード 1 動作は , マスタ / スレーブ CPU を複数接続して通信することができます。 モード 3 では , UART 機能は , 通信フォーマットが固定されます。 送受信時にモードを切り換えたときは , 送受信データは保証できません。 以下の表に示されるように , シリアルモードレジスタ (SMR) の MD1 と MD0 ビットの 設定により , UART の動作モードを決定します。 MD1 MD0 モード 0 0 0 非同期 ( ノーマルモード ) 0 1 1 非同期 ( マルチプロセッサモード ) 1 0 2 同期 ( ノーマルモード ) 1 1 3 非同期 (LIN モード ) 記述 405 第 22 章 LIN-UART 非同期モード ( 動作モード 0 と 1) 時の動作 22.4.1 非同期モード ( 動作モード 0 と 1) 時の動作を説明します。 ■ 送受信データフォーマット 送受信データは , スタートビット ("L" レベル ) から始まり , ストップビット ("H" レベ ル ) で終了します。ビット転送方向 (LSB ファーストまたは MSB ファースト ) は , シリ アルステータスレジスタ (SSR) の転送方向選択ビット (BDS) で , 決定します。パリティ ありの場合 , パリティビットは , 常に最終データビットと最初のストップビットの間に 置かれます。 動作モード 0 では , データ長 7 ビットまたは 8 ビット , パリティの有無 , ストップビッ ト長 1 ビットまたは 2 ビットの選択ができます。 動作モード 1 では , データ長 7 ビットまたは 8 ビットに設定できます。本モードではパ リティを付加されませんが , アドレス / データ形式選択ビットが付加されます。ストッ プビット長 1 ビットまたは 2 ビットを選択することができます。 移動フレームのビット長計算式は以下のとおりです。 長さ =1+d+p+s (d = データビット数 [7 or 8], p = パリティ [0 or 1], s = ストップビット数 [1 or 2]) *1 *2 動作モード0 ST D0 D1 D2 D3 D4 D5 D6 D7/P SP SP 動作モード1 ST D0 D1 D2 D3 D4 D5 D6 D7 A/D SP *1 : D7(bit 7)パリティなし,データ長が8ビットの場合 P(パリティ)パリティあり,データ長7ビットの場合 *2 : SCRのSBLビットが"1"にセットされている場合のみ ST :スタートビット SP :ストップビット A/D :モード1(マルチプロセッサモード)のアドレスデータ選択ビット <注意事項> シリアルステータスレジスタ (SSR) の BDS ビットが "1" に設定されている場合 , データ は D7, D6…D1, D0, (P) の順で処理されます。 2 ストップビットに設定すると , 受信中 , 両方のストップビットを検出します。しかし , 受 信データフルフラグビット (RDRF) は , 最初のストップビットで "1" に設定されますが , 受 信動作がないと拡張通信制御レジスタ (ECCR) の受信バスアイドル検出フラグビット (RBI) は , 2 番目のストップビットの後に "1" に設定します。 2 番目のストップビットはマークレベルですが , バスのためにあります。 406 第 22 章 LIN-UART ■ 送信動作 シリアルステータスレジスタ (SSR) の送信データレジスタエンプティビット (TDRE) が "1" のとき , 送信データレジスタ (TDR) へ送信データを書き込みます。データが書き込 まれると TDRE フラグが "0" になります。シリアルステータスレジスタ (SCR) の送信 許可ビット (TXE) を "1"で許可すると , そのデータは送信用シフトレジスタに転送され , スタートビットから送信が始まります。その結果 , TDRE フラグは "1" に設定され , TDR レジスタに新しいデータを書き込むことができます。 送信割込み可能 ( シリアルステータスレジスタ (SSR) の送信割込み許可ビット (TIE) が "1") の場合 , 割込みは TDRE フラグによって発生します。TDRE フラグの初期値が "1" のため , TIE フラグが "1" に設定されると割込みが発生しますので注意してください。 ■ 受信動作 シリアルコントロールレジスタ (SCR) の受信許可ビット (RXE) が "1" であれば , 受信 動作を行います。 スタートビットを検出するとシリアル制御レジスタ (SCR) で設定したデータフォー マットに従い, 1フレームデータ受信が行われます。エラー発生により, 対応するエラー フラグ (PE, ORE, FRE) がセットされます。1 フレームの受信完了後 , データはシリアル シフトレジスタから受信データレジスタ (RDR) に転送され , シリアルステータスレジス タ (SSR) の受信データレジスタフルフラグビット (RDRF) が "1" に設定されます。受信 データ読出しによって , RDRF フラグはクリアされます。 受信割込み許可 ( シリアルステータスレジスタ (SSR) の受信割込み許可ビット (RIE) が "1") の場合 , 割込みは RDRF によって発生します。 <注意事項> RDRF フラグが "1" に設定されるときだけ , 受信データレジスタ (RDR) データは有効にな ります。 ■ ストップビット , エラー検出およびパリティ 送信時には , 1 ビットまたは 2 ビットのストップビットを選択することができます。ス トップビットを 2 ビット選択したとき , 両方のストップビットが受信時に検出されま す。2 番目のストップビット後に , 拡張通信制御レジスタ (ECCR) の受信バスアイドル 検出フラグビット (RBI) を設定します。 モード 0 で , パリティエラー , オーバランエラー , フレームエラー検出ができます。 モード 1 で , オーバランエラー , フレームエラー検出ができ , パリティエラー検出はで きません。 モード 0 ( もしくはモード 2 で , ECCR レジスタのスタート / ストップ許可ビット (SSM) を "1" に設定 ) 時にシリアルコントロールレジスタ (SCR) のパリティ許可ビット (PEN) を設定することにより , UART はパリティ計算 ( 送信時 ), パリティ検出 , およびチェッ ク ( 受信時 ) を行います。 SCR レジスタのパリティ選択ビット (P) がクリア ("0") されると偶数パリティ設定とな り , フラグが "1" にされると , 奇数パリティに設定されます。 407 第 22 章 LIN-UART 同期 ( モード 2) モード時の動作 22.4.2 同期 ( モード 2) モード時の動作を説明します。 ■ 送受信データフォーマット 同期モードでは , 8 ビットのデータは拡張通信制御レジスタ (ECCR) のスタート / ストッ プ許可ビット (SSM) が "0" ならば , スタート / ストップビットなしで転送されます。 同期動作モードのデータフォーマットを示します。 送信データ書込み マークレベル シリアルクロック(ノーマル) (CCO=0) 送信データ マークレベル 0 1 1 0 1 0 0 1 立上りサンプルエッジ(SCES=0),LSBファーストのとき ■ クロック供給 クロック同期 (I/O 拡張シリアル ) モードでは , 送受信ビット数に等しい数のクロックの 供給が必要です。注意点として , スタート / ストップビットありの通信時は , クロック サイクル数とスタート / ストップビットが付加された数とが一致していなければなり ません。 内部クロック ( 専用リロードカウンタ ) を選択しているときには , データ送信すると , データ受信用同期クロックが自動的に発生します。 外部クロックを選択しているときは , 送信データレジスタに送信データがあることを 確認した後 , 送信分のクロックを外部から発生 , 供給しなければなりません。また , 送 信開始前と終了後はマークレベル ("H") にしなければなりません。 拡張ステータス制御レジスタ (ESCR) のサンプリングクロックエッジ選択 (SCES) を "1" に設定すると UART のクロックが反転し , その結果 , クロックの立下りエッジで受信 データを抽出します。この場合 , シリアルデータが立下りエッジで有効であるか確認し てください。 ■ エラー検出 スタート / ストップビットなし ( 拡張通信制御レジスタ (ECCR) の スタート / ストップ 許可ビット (SSM を "0" に設定 ) を選択すると , オーバランエラーのみ検出可能です。 408 第 22 章 LIN-UART ■ 通信方法 同期モードを利用するときは , 下記の設定に初期化する必要があります。 ボーレートジェネレータレジスタ (BGR0/BGR1): 専用ボーレートリロードカウンタに必要なリロード値を設定 シリアルモードレジスタ (SMR): MD1, MD0 : "10B" ( モード 2) SCKE : "1" "0" SOE 専用ボーレートリロードカウンタ 外部クロック : "1" 送信 "0" 受信 シリアル制御レジスタ (SCR): RXE, TXE : 少なくともどちらかが "1" SSM=0( デフォルト ) のとき PEN, P : パリティなしのため , このビットは意味を持ちません。 SSM=1 のとき PEN : "1" パリティあり , "0" パリティなし P : "0" パリティ偶数 , "1" パリティ奇数 SBL, A/D : パリティ, ストップビット , アドレス / データ選択なしのため , この ビットは意味を持ちません。 CL : 自動的に 8 ビットに設定されるので , このビットは意味を持ちませ ん。 CRW : "1" ( エラーフラグは初期化でクリアして送受信を中断します )。 シリアルステータスレジスタ (SSR): BDS : "0" LSB ファースト , "1"MSB ファースト RIE : "1" 割込み利用 , "0 " 割込みなし TIE : "1" 割込み利用 , "0" 割込みなし 拡張通信制御レジスタ (ECCR): SSM : "0" スタート / ストップビットなし ( ノーマル ) : "1" スタート / ストップビット追加 ( 特別 ) MS : "0" マスタモード (UART はシリアルクロックを発生 ) : "1" スレーブモード (UART はマスタデバイスからシリアルクロック受信 ) 通信を始めるには , 送信データレジスタ (TDR) にデータを書き込んでください。 データを受信するには , SMR レジスタのシリアルデータ出力許可ビット (SOE) を無効 にして TDR にダミーデータを書き込んでください。 <注意事項> SCK 端子はクロック入出力兼用のために , 同時に送受信はできません。 409 第 22 章 LIN-UART 22.4.3 LIN 機能との操作 ( モード 3) LIN-UART は , LIN マスタ / スレーブ機能が動作します。この LIN 機能のために , モード 3 が提供されています。データフォーマットが固定され , 8 ビットデータを送 受信し , 1 スタート / ストップビットが付加され LSB ファーストになります。 ■ LIN マスタ動作 LIN マスタモードは , マスタですべてのボーレートを決定します。スレーブは , マスタ に同期しなければなりません。よって , スレーブ側では , ボーレートを設定する必要は ありません。 拡張通信制御レジスタ (ECCR) の LIN ブレーク生成ビット (LBR) に "1" を書き込むと , LIN ブレーク信号が SOUT 端子から 13 ビット∼ 16 ビット分 "L" レベルが出力されま す。この信号により LIN 通信を開始します。 その結果 , シリアルステータスレジスタ (SSR) の送信データエンプティフラグビット (TDRE) は "0" になり , LIN ブレーク後 "1" にセットされて送信割込み (SSR レジスタの 送信割込み許可ビット (TIE) が "1" のとき ) を発生させます。 LIN ブレークは , 拡張ステータス制御レジスタ (ESCR) の LIN ブレーク長ビット (LBL1/ LBL0) によって決められます。設定は以下のとおりです。 LBL1 LBL0 ブレークの長さ 0 0 13 ビットタイム 0 1 14 ビットタイム 1 0 15 ビットタイム 1 1 16 ビットタイム LIN ブレーク後に , 同期フィールド (55H) を送信します。受信割込みを防ぐために , ECCR レジスタの LBR フラグの "1" に書込みにより , TDRE フラグが "0" となりますが , 送信データレジスタ (TDR) に "55H" を書き込むことができます。内部の送信シフタは , LIN ブレークが終わり , TDR レジスタ値が移動するまで待っています。これにより , LIN ブレーク後 , スタートビット前の間 , 送信割込みは行いません。 410 第 22 章 LIN-UART ■ LIN スレーブ動作 LIN スレーブモードは , マスタボーレートに同期させます。受信が無効 ( シリアル制御 レジスタ (SCR) の受信許可ビット (RXE) が "0"), LIN synch 割込みが有効 ( 拡張ステー タスレジスタ (ESCR) の LIN ブレーク検出割込み許可ビット (LBIE) が "1") であれば , UART は受信割込みを発生します。LIN ブレークが検出されると , ESCR レジスタの LIN ブレーク検出ビット (LBD) がセットされ , このビットの "0" 書込みにより割込みは クリアされます。 次に , LIN ブレーク検出後 , LIN マスタのボーレートを分析します。キャプチャ内部信 号は LIN 同期フィールドの 1 回目の立下りエッジで "1" にセットされ , 5 回目の立下り エッジ後に "0" にセットされます。両方のエッジ検出時に , キャプチャ割込みが許可さ れていると割込みが発生します。 LIN 同期フィールド検出時の内部信号は , マスタのシリアルクロック 8 ビット分に相当 します。 以下の図に LIN メッセージフレームの形式と LIN-UART の動作を示します。 シリアル クロック シリアル 入力 (LINバス) LBD キャプチャ 内部信号 LINブレーク 同期フィールド 411 第 22 章 LIN-UART シリアル端子直接アクセス 22.4.4 シリアル端子直接アクセスについて説明します。 ■ シリアル端子直接アクセス LIN-UART はプログラマが , シリアル入出力端子に直接アクセスすることができます。 ソフトウェアにて , 拡張ステータスレジスタ (ESCR) のシリアル入出力端子アクセス設 定ビット (SIOP) を読み出すことにより , シリアル入力端子 (SIN) の状況をいつでもモ ニタすることができます。また , ESCR レジスタのシリアル出力端子アクセス許可ビッ ト (SOPE) を設定すると , ソフトウェアによりシリアル出力端子 (SOUT) の値を任意に 設定することができます。注意事項として , 送信用シフトレジスタデータなし ( 送信未 動作時 ) の場合にだけアクセス可能です。 LIN モードにおいて , 送信したデータの読出しまたは物理的に LIN バス線信号が間違っ ていたときのエラー処理に使用できます。 <注意事項> 出力端子にアクセスする前に , SIOP ビットに値を書き込んでください。 412 第 22 章 LIN-UART データフォーマット設定 22.4.5 データフォーマットの設定について説明します。 ■ データフォーマット設定 拡張通信制御レジスタ (ECCR) のシリアルデータ反転選択ビット (INV) を "1" に設定す ると , シリアルデータを反転させます。これは , 信号モードが "Return To Zero"(RZ) で あることを意味します。設定しなければ , SIN と SOT の信号モードは "Non Return To Zero"(NRZ 初期値 ) になります。 以下の図で 2 つの設定の違いを説明します。 SIN (NRZ) INV = 0 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SIN (RZ) INV = 1 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SOT (NRZ) INV = 0 ST D0 D1 D2 D3 D4 D5 D6 D7 SP SOT (RZ) INV = 1 ST D0 D1 D2 D3 D4 D5 D6 D7 SP <注意事項> LIN モード 3 を含むすべての操作モードで INV ビットを設定することができます。 413 第 22 章 LIN-UART 22.4.6 レジスタ / フラグビット レジスタ / フラグビットについて説明します。 ■ レジスタ / フラグビット LIN-UART (FL84) では , 送受信動作は設定しているモードに依存します。各モードに おいて , 無意味なフラグに設定 ( 例えば , LIN モード 3 でパリティを可能にする ) して も LIN-UART の動作は影響されません。また , これらのビットを読み出しても正しい 値を返します。 以下の表は各 UART モードの可能な設定について説明します。 ストップ ビット長 ビット長 - 1 ビット または 2 ビット 7 ビット または 8 ビット - - 2 (SSM=1) なし , 奇数 または偶数 1 ビット または 2 ビット 3 (LIN) - 1 ビット モード パリティ 0 なし , 奇数 または偶数 1 2 (SSM=0) 414 A/D ビット ○ - 8 ビット ビット 方向 LSB ファースト または MSB ファースト - - LSB ファースト SCES SSM - - - - ○ 0 INV ○ ○ 1 - - 第 22 章 LIN-UART 22.5 UART 割込み UART の割込みについて説明します。 ■ UART 割込み要因 UART は送受信の両方で割込みを使用します。 以下の原因において割込みは発生します。 • 受信データが受信データレジスタ (RDR) にセットされた場合 , または受信エラー発 生時 • 送信データが送信データレジスタ (TDR) から送信シフトレジスタに転送されたとき • LIN ブレーク検出 • バス動作していない場合 以下に割込みコントロールビットと割込み要因を示します。 割込み要 動作モード 送信 / 受信 / フラグ 求フラグ レジスタ 0 1 2 3 キャプチャ ビット 割込み要因 割込み要因 割込み要求 イネーブル フラグビット ビット のクリア 受信データの RDR 書込み 受信データの 読出し RDRF SSR ○ ○ ○ ○ ORE SSR ○ ○ ○ ○ オーバランエラー FRE SSR ○ ○ △ ○ フレーミングエラー PE SSR ○ × △ × パリティエラー LBR ESCR ○ × × ○ LIN synch break 検出 ESCR / LBIE (ESCR:LBD) へ の "0" 書込み TBI, RBI ECCR ○ ○ △ ○ バス動作なし ECCR / BIE データ受信 / データ送信 送信 TDRE SSR ○ ○ ○ ○ 送信レジスタが空 SSR /TIE 送信データの 書込み 8/16 ビット キャプチャ・ タイマ / カウンタ 1 ICP0 ICS01 ○ × × ○ LIN synch field の ICS01 / 1 回目の立下りエッジ ICE0 ICE0 一時無効 ICP0 ICS01 ○ × × ○ ICS01 / LIN synch field の 5 回目の立下りエッジ ICE0 ICE0 無効 受信 SSR / RIE 受信エラー フラグクリア ビット (SCR:CRE) へ の "1" の書込み ○:利用ビット △:ECCR(SSM=1) のみ使用可能 ×:未利用 415 第 22 章 LIN-UART ■ 受信割込み 以下に示す動作が受信モードで発生すると , シリアルステータスレジスタ (SSR) の各フ ラグビットは "1" に設定されます。 • データ受信完了 ( 例 ) 受信データのシリアル入力シフトレジスタから受信データレジスタ (RDR) へ の移動 :RDRF( 受信データフルフラグビット ) • オーバランエラー ( 例 ) RDRF=1, RDR の読出しエラー :ORE( オーバランエラーフラグビット ) • フレーミングエラー ( 例 ) ストップビット受信エラー :FRE( フレーミングエラーフラグビット ) • パリティエラー ( 例 ) パリティ検出エラー :PE( パリティエラーフラグビット ) 上記のフラグビットのいずれかが "1" のとき , 受信割込みが許可 (SSR レジスタの受信 割込み許可ビット (RIE) が "1") されていると , 受信割込み要求が発生します。 RDRF フラグは , 受信データレジスタ (RDR) を読み出すと , 自動的に "0" にクリアされ ます。 <注意事項> • RDRF フラグのリセットは上記の方法により行ってください。 エラーフラグはシリアル制御レジスタ (SCR) の受信エラーフラグクリアビット (CRE) に "1" を書き込むと , すべて "0" にクリアされます。 • RDRF フラグが "1" で , どんな誤りビットも設定されていない場合 , RDR レジスタは有 効なデータであることを示します。 • CRE フラグは書込み専用で , "1" 書込みのとき 1 クロックサイクル間 "1" を保持します。 ■ 送信割込み 送信データが送信データレジスタ (TDR) から送信シフトレジスタに転送される ( 送信 シフトレジスタが空で送信データがあるとき ) と , シリアルステータスレジスタ (SSR) の送信データレジスタエンプティフラグビット (TDRE) が "1" にセットされます。この 場合 , 送信割込みが許可 (SSR レジスタの送信割込み許可ビット (TIE) が "1") されてい ると , 送信割込み要求が発生します。 <注意事項> ハードウェア , ソフトウェアリセットの後の初期値は , "0" にクリアされるので , TIE フラ グが "1" ならば即 , 割込みが発生します。また , RDR にデータを書き込むことにより TDRE をリセットできます。 416 第 22 章 LIN-UART ■ LIN ブレーク割込み モード 0, 3 で , LIN スレーブ動作をする場合に機能します。 バス ( シリアル入力 ) が 13 ビットタイム以上 "0" になると , 拡張ステータス制御レジス タ (ESCR) の LIN ブレーク検出フラグビット (LBD) は "1" にセットされます。 <注意事項> LIN ブレーク検出を行う際には , 受信禁止 ( シリアル制御レジスタ (SCR) の受信許可ビッ ト (RXE) を "0") または受信割込み禁止 ( シリアルステータスレジスタ (SSR) の受信割込 み許可ビット (RIE) を "0") にしてください。この設定が許可になっていると , 9 ビットタ イム後受信にエラー割込みが発生しますので注意してください。その他の場合では , 受信 エラー割込みが最初に発生します。割込みハンドルルーチンは LBD =1 を待たなければな りません。 LIN ブレーク割込みと LBD フラグは , LBD フラグの "0" 書込みでクリアされます。こ れにより CPU は , 次に LIN マスタにシングルクロックを調整するため , LIN ブレーク の検出を確認します。 ■ LIN 同期フィールドエッジ検出割込み モード 0, 3 で , LIN スレーブ動作をする場合に機能します。LIN ブレーク検出後 , 内部 信号 LSYN(ICU に接続 ) は LIN 同期フィールドの 1 回目の立下りエッジで "1" にセッ トされ , 5 回目の立下りエッジ後に "0" にセットされます。両方のエッジ検出時に , キャ プチャは割込みを発生させます。各インプットキャプチャカウンタの差は , マスタのシ リアルクロック 8 ビット分に相当します。その値を 8 で分割した値を専用リロードカ ウンタに設定します。スタートビットの立下りエッジを検出すると , リロードカウンタ は自動的に再スタートします。 ■ バスアイドル 割込み SIN 端子に受信動作がなければ拡張通信制御レジスタ (ECCR) の受信バスアイドル検出 フラグビット (RBI) は "1" になり , SOUT 端子に送信動作がなければ ECCR レジスタの 送信バスアイドル検出フラグビット (TBI) は "1" になります。このとき , ECCR のバス アイドル割込みが許可 (ECCR レジスタのバスアイドル割込み許可ビット (BIE) が "1") され , バスアイドルフラグ両方 (TBI=RBI=1) のとき , 割込みが発生します。 <注意事項> シリアル出力端子直接アクセスが可能 (ESCR レジスタのシリアル出力端子直接アクセス 許可ビット (SOPE) が "1" のとき , SOUT 端子を "0" 固定に設定 (ESCR レジスタのシリア ル入出力端子アクセス設定ビット (SIOP) が "0") すると , 送信動作 (ECCR レジスタの TBI フラグが "1") がなくても TBI フラグは "0" にセットされます。 417 第 22 章 LIN-UART ソフトウェアリセット 22.5.1 LIN-UART のソフトウェアリセットについて説明します。 ■ ソフトウェアリセット LIN-UART が正常に動作しない場合 , MCU をリセットする代わりに LIN-UART のみを リセットしたい場合があります。シリアルモードレジスタ (SMR) のプログラマブルク リアビット (UPCL) はそのような機能を提供します。このビットに "1" を書き込むと , 直 ちに , UART をリセットします。このビットを再び "0" にセットする必要はありません。 <注意事項> シリアル出力端子直接アクセスが可能 (ESCR レジスタのシリアル出力端子直接アクセス 許可ビット (SOPE) が "1") のとき , SOUT 端子を "0" 固定に設定 (ESCR レジスタのシリ アル入出力端子アクセス設定ビット (SIOP) が "0") すると , 送信動作 (ECCR レジスタの TBI フラグが "1") がなくても TBI フラグは "0" にセットされます。リセットの際 , 送受信 状態のものは切断されます。レジスタの設定は維持されますが , 専用リロードカウンタ (FL85) は再スタートします。 本機能を利用の際には , データ消去を防ぐために , LIN-UART の SMR レジスタにいかな るコマンドを書き込むときには , "FBH" でマスクをかけることをお薦めします。 リロードカウンタ (FL85) リセットなしで , LIN-UART をリセットする代替手段は , 一 時的に受信 ( シリアル制御レジスタ (SCR) の受信許可ビット (RXE) を "0") または , 送 信 (SCR レジスタの送信許可ビット (TXE) を "0") 機能を無効にすることです。これに より , 受信 / 送信制御回路は内部的にリセットされます。また , 一時的に LIN-UART の 操作モードを変えることでも同じ効果があります。 受信限定のステートマシンのリセットは , 単にシリアル制御レジスタ (SCR) の受信エ ラーフラグクリアビット (CRE) に "1" を書き込むことにより行います。 418 第 22 章 LIN-UART 22.6 LIN-UART のクロック同期 LIN-UART のクロック同期について説明します。 ■ クロック同期 非同期モードで UART は , スタートビットの立下りエッジを検出して , ボーレートリ ロードカウンタ (FL85) を再開するために信号 (SEDGE) を発生させます。これにより , ビットタイム中でシリアルデータが抽出されます。 CLKP SIN (オーバサンプル) スタートビット データビット SIN 受信用シフタへ データサンプルタイム SEDGE (内部信号) リロードカウンタのリスタート RSCL (受信クロック) クロックフェーズ カットオフ ビットタイム 419 第 22 章 LIN-UART 22.7 フラグセットのタイミング 割込み発生とフラグセットのタイミングを説明します。 ■ 受信割込み発生とフラグセットのタイミング 受信完了時 ( シリアルステータスレジスタ (SSR) の受信データフルフラグビット (RDRF)), または受信エラー発生時 (SSR レジスタのパリティエラーフラグビット (PE), オーバランフラグビット (ORE), フレーミングエラービット (FRE)) に各フラグがセット されます。そのとき , 受信割込みが許可 (SSR レジスタの受信割込み許可ビット (RIE) が "1") されていると受信割込みが発生します。これらの割込みは , モード 0, 1 ( パリ ティエラーを除く ) の場合 , 最初のストップビットの検出 , モード 2 の場合 , 最終デー タビットが読み出されると発生します。 <注意事項> 受信エラーが発生したとき , 受信データレジスタ (RDR) のデータは無効となります。 受信データ (mode 0/3) ST D0 D1 D2 … D5 D6 D7/P SP ST 受信データ (mode 1) ST D0 D1 D2 … D5 D6 A/D SP ST 受信データ (mode 2) ST D0 D1 D2 … D4 D5 D6 D7 D0 PE*1, FRE RDRF ORE*2 (if RDRF = 1) 受信割込み発生 *1 : mode 1 または mode3では, PEフラグは使用できません。 ST : スタートビット SP : ストップビット A/D : Mode 1 (マルチプロセッサ) アドレス/データ選択 *2 : 受信データが読み出される前に(RPRF=1)に次のデータが転送されるとオーバラン(ORE)が発生します。 <注意事項> 上記一例のモード 0 および 3 はすべての設定可能な受信オプションを示していません。 送信割込み発生とフラグセットのタイミング受信データが読み出される前に(RDRF=1)に 次のデータが転送されるとオーバランエラー (ORE) が発生します。 Receive data RDRF ORE 420 第 22 章 LIN-UART ■ 送信割込み発生とフラグセットのタイミング 送信データレジスタ (TDR) に次のデータ書込みが可能な状態になると割込みが発生し ます。すなわち , 送信データレジスタ (TDR) データなしで , シリアルステータスレジ スタ(SSR)の送信割込み許可ビット(TIE)を"1"に設定すると, 送信割込みが発生します。 SSR レジスタの送信データエンプティフラグビット (TDRE) は , TDR レジスタの状態 を示します。TDRE ビットは「リードオンリ」のため , TDR レジスタにデータを書き 込むことによりクリアされます。 以下に, LIN-UARTの各モード設定時の送信動作とフラグセットのタイミングについて 一例を示します。 送信割込み発生 送信割込み発生 Mode 0, 1 or 3 : TDRに書込み TDRE シリアルアウトプット ST D0 D1 D2 D3 D4 D5 D6 D7 P SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP A/D A/D 送信割込み発生 送信割込み発生 Mode 2 : 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 : データビット A/D : アドレス/データ選択ビット (mode1) P : パリティ SP: ストップビット <注意事項> 上記一例のモード 0 はすべての設定可能な送信オプションを示していません。 421 第 22 章 LIN-UART ■ LIN ブレーク検出割込みとフラグ スレーブモードで LIN ブレークが検出されると , 拡張ステータス制御レジスタ (ESCR) の LIN ブレーク検出ビット (LBD) は "1" にセットされ , 同じく ESCR レジスタの LIN ブレーク検出割込み許可ビット (LBIE) が設定されていると割込みが発生します。 以下に , LIN ブレーク検出割込みとフラグのセットタイミングを示します。 シリアルクロック サイクル # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 受信 データ FRE (RXE=1) LBD (RXE=0) RXE=1なら受信割込み発生 RXE=0なら受信割込み発生 <注意事項> 受信可能 ( シリアル制御レジスタ (SCR) の受信許可ビット (RXE) が "1") かつ受信割込み 可能 ( シリアルステータスレジスタ (SSR) の受信割込み許可ビット (RIE) が "1") の場合 , SSR レジスタのフレーミングエラーフラグビット (FRE) は , LIN ブレーク割込みよりク ロックが 2 ビット分早くセットされるので , LIN ブレーク割込みを期待する場合は , RXE ビットを "0" にすることをお勧めします。 LBD ビットはモード 0, 3 のみサポートされます。 ■ LIN フィールドエッジ検出割込み LIN ブレーク検出後 , シリアル入力 (SIN 端子 ) の 1 回目の立下りエッジで LSYN 信号 (内部でインプットキャプチャ(ICU)に接続)をセットし, 5番目の立下りエッジでLSYN 信号をリセットします。したがって , ICU は両方のエッジ検出で動作します。最初の割 込み時の ICU カウンタレジスタ値は保持され , 2 回目の ICU カウンタレジスタ値から 最初の ICU カウンタレジスタ値を引いた値は , マスタのシリアルクロック 8 ビット分 に相当します。 シンクブレーク シンクフィールド 受信データ LSYN (ICUへ) IRQ from ICU CPUによる割込みクリア 422 識別 第 22 章 LIN-UART ■ バスアイドル割込みとフラグ シリアル入力シフトレジスタとシリアル出力レジスタの値がなく , 拡張通信制御レジ スタ (ECCR) のバスアイドル割込み許可ビット (BIE) が設定されている場合 , バスアイ ドル割込みを発生します。以下の図はバスアイドル割込みとフラグセットタイミング の関係を示します。 送信データ 受信データ TBI RBI IRQ : スタートビット : ストップビット : データビット <注意事項> 受信中に , 受信動作を禁止 ( シリアル制御レジスタ (SCR) の受信許可ビット (RXE) を "0") に した場合 , 拡張通信制御レジスタ (ECCR) の受信バスアイドル検出フラグ (RBI) は "1" になり ます。 シリアル出力可能 (ESCR レジスタのシリアル出力端子直接アクセス許可ビット (SOPE) が "1") のとき , SOUT 端子を "0" 固定に設定 (ESCR レジスタのシリアル入出力端子アクセス 設定ビット (SIOP) が "0") すると , 送信動作がなくても , TBI フラグが "0" になります。 423 第 22 章 LIN-UART 22.8 LIN-UART の特別仕様 LIN-UART の特別仕様を説明します。 ■ サンプリングクロックエッジ 拡張ステータス制御レジスタ(ESCR)のサンプリングクロックエッジ選択ビット(SCES) で, モード2のときに受信ビットが受信シフトレジスタに抽出されるサンプルエッジを 決定します。また , LIN-UART がマスタモード 2 であれば , このビットは発生している クロック信号を反転します。 シリアルクロック信号 (SCES=0) シリアルクロック信号 (SCES=1) データビット (LSBファーストの場合) または D0 D1 D2 D3 D4 D5 D6 D7 :サンプルクロックエッジ ■ 同期スタート / ストップビットモード モード 2 の同期モードで拡張通信制御レジスタ (ECCR) のスタート / ストップ許可ビッ ト (SSM) を設定すると , モード 0 のようにスタート / ストップビットをデータストリー ムに追加します。したがって , すべての追加ビットもクロック出力されます。 受信/送信クロック マークレベル (SCES= 0, CCO=0): 受信/送信クロック マークレベル (SCES= 1, CCO=0): データストリーム(SSM=1) ST (パリティなし, 1ストップビットの場合) SP データフレーム 424 第 22 章 LIN-UART ■ 連続シリアルクロックアウトプット出力 モード 2 で拡張ステータス制御レジスタ (ESCR) の連続クロック出力許可ビット (CCO) を設定すると , シリアルクロックを直接 SCK 端子に出力した後 , シフトクロックに同 期します。同期モードでスタートストップビットを使用するときに役立ちます。 受信/送信クロック (SCES=0, CCO=1): 受信/送信クロック (SCES=1, CCO=1): データストリーム(SSM=1) (パリティなし, 1ストップビットの場合) ST SP データフレーム 425 第 22 章 LIN-UART 22.9 LIN 通信動作 LIN-UART がマスタデバイスとして機能するときの動作を以下のフローチャートに 示します。 ■ LIN マスタ・スレーブ通信機能 UART を LIN 通信モード ( 動作モード 3) で動作させるには , 下図の設定が必要です。 図 22.9-1 UART の設定 SCR5, SMR5 bit 15 PEN モード 3 × 14 P × SSR5, TDR5/RDR5 bit 15 14 PE モード 3 × 13 SBL + 12 CL + 11 10 9 8 7 6 5 4 3 2 1 0 A/D CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SPE 0 1 1 0 0 0 1 × ◎ ◎ × ◎ 13 12 11 10 9 ORE FRE RDRF TDRE BDS RIE ◎ ◎ ◎ ◎ + ◎ 8 7 TIE 6 5 4 3 2 1 送信データのセット(書込み中) 受信データの保持(読出し中) 0 ◎ ESCR5, ECCR5 bit 15 14 13 12 11 10 9 8 LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS モード 3 ◎ ◎ ◎ ◎ × × × × ◎ : 使用ビット × : 未使用ビット 0/1 : ビットに "0" または "1" をセット + : 正しい値に自動的に設定 7 - 6 LBR ◎ 5 4 3 MS SCDE SSM × × × 2 1 BIE RBI × × 0 TBI × ■ LIN デバイス接続 下図は 1 台の LIN マスタ・デバイスと , もう 1 台の LIN スレーブデバイスの間の通信 システムを示しています。UART は LIN マスタとしても LIN スレーブとしても動作し ます。 図 22.9-2 小規模 LIN バスシステムの接続例 LINバス SOT SOT SIN LIN-マスタ 426 SIN 単線式 トランシーバ 単線式 トランシーバ LIN-スレーブ 第 22 章 LIN-UART ■ LIN UART マスタ 開始 初期化 モード3を設定 (8N1データ形式) TIE = 0, RIE = 0 メッセージを送信 ? NO YES スリープモードの送信 TDR = 80H TIE = 0 ブレークを送信 ECCRに"1" を書込み LBR; TIE = 1; フィールドの送信 TDR = 55H ウェイクアップ信号の送信 CPUからの ウェイクアップ ? YES TDRE = 1 Transm. Interrupt RIE = 0 TIE = 1 TDR = 80H NO RIE = 1 スリープモード を送信? YES NO NO 00H, 80H, C0H を受信? YES RIE = 0 Send Identify Field: TDR = Id スレーブへの 書込み? NO TIE = 0 RIE = 1 YES TIE = 1 スレーブへの書込み TIE = 0 エラー発生? NO YES エラー処理 スレーブからのデータ読出し RIE = 0 427 第 22 章 LIN-UART ■ LIN-UART スレーブ LIN-UART がスレーブデバイスとして機能するときの動作を以下のフローチャートに 示します。 開始 A B 初期化: モード3を設定 (8N1データ形式) スレーブ アドレス一致? エラー発生? C RIE = 0; LBIE = 1; RXE = 0 YES E NO C YES NO マスタが データ送信を要求? 待機 (スレーブ 動作) NO YES LBD = 1 LINブレーク割込み LIN増す宝の メッセージ待ち 割込みクリアのため にLBDへ"0"書込み ICU割込み許可 (両エッジ) 受信データ +checksum 80H 受信? (スリープモード) YES RIE = 0 TIE = 1 checksum計算 データ送信 S (次ページへ) 待機 (スレーブ 動作) ICU 割込み TIE = 0 NO C B ICU値の読出しと 保存 割込みクリア エラー発生? YES NO 待機 (スレーブ 動作) C ICU 割込み ICU値の読出し 新ボーレートの計算 計算値をリロード カウンタ(FL85)へ 設定 割込みクリア E エラーハンドラ Receive identifier RIE = 1; RXE = 1 C A ( 続く ) 428 第 22 章 LIN-UART ( 続き ) S CPUからの ウェイクアップ? YES ウェイクアップ信号の送信 RIE = 0 TIE = 1 TDR = 80H NO TIE = 0 RIE = 1 NO 00H, 80H, C0H を受信? YES RIE = 0 C 429 第 22 章 LIN-UART 22.10 UART からの変更点 LIN-UART の UART からの変更点を説明します。 ■ UART からの変更点 • 拡張ステータス制御レジスタ (ESCR) には次の機能があります。 - LIN 割込み発生機能 - シリアル入力 / 出力端子への直接アクセス (SIN, SOT) - サンプリングクロックエッジ選択ビット (SCES)( クロック反転 ) - モード 2( スタート / ストップビットあり ) 時 , 連続シリアルクロック出力 • 拡張通信制御レジスタ (ECCR) には次の機能があります。 - 同期モード時におけるスタート / ストップ許可 (SSM) - 同期モード時におけるマスタとスレーブ通信 (MS) - 送信アイドルと受信アイドルフラグによるバスアイドル割込み発生 • シリアルモードレジスタ (SMR) の変更 - LIN スレーブ機能とデータ形式固定のためのモード 3 を追加します。 - リロードカウンタ搭載のため , クロックセレクトビットを削除し , コントロール ビットに変更します。 • 通信プリスケーラ制御レジスタ (CPCR) を削除し , リロードカウンタに必要な 2 つの レジスタ (BGR1, BGR0) を追加します。 • モード 1 ( マルチプロセッサモード ) にて , マスタ / スレーブ機能を追加します。 • 送信 / 受信データフォーマットに関するフラグビットは , いつも「正しい」値を返し ます。例えば , プログラマがモード 3(LIN モード ) 時に , パリティ設定しようとして も PEN ビットは "0" を返します。 • 受信時 , シリアル制御レジスタ (SCR) のストップビット長選択ビット (SBL) が "1" のとき , 2 番目のストップビットがチェックされます。 • 非同期モード時 , 5 回サンプリング機能を追加します。 • 専用ボーレートジェネレータのために入力データと受信クロックを同期させるた め , SEDGE( スタートビット立下り検出 ) 信号が発生します。 • バージョン 2.0 対応のため , NRZ と RZ シグナルモードを追加します。 • ビット操作命令で , A/D ビットのリードモディファイライト (RMW) が 可能です。 LIN-UART は通常の UART と類似していますが , ソフトウェアの互換性はありません。 430 第 22 章 LIN-UART 22.11 LIN-UART の制限事項 LIN-UART の制限事項を説明します。 ■ 制限事項 • バスアイドル割込み許可ビット ECCR:BIE はリザーブビットとして常に "0" を書 き込むか , LIN で使用する場合はマスタと して使用してください。 • MODE2 スレーブ送信時に TXE=1 の状態で UART リセットを行わないでください。 必ず EXT=0 の状態で UART をリセットしてください。 • LIN-UART のデータ転送において CPU によるプログラム転送の後に DMA 転送を行 うと余分な転送が発生しますので, DMA転送を開始する前にシリアルステータスレ ジスタ (SSR) の送信イネーブルビット (TIE) および受信イネーブルビット (RIE) を いったんディセーブル ("0" 書込み ) してから使用してください。 431 第 22 章 LIN-UART 432 第 23 章 A/D コンバータ A/D コンバータの概要 , レジスタの構成 / 機能およ び A/D コンバータの動作について説明します。 23.1 A/D コンバータの概要 23.2 A/D コンバータのレジスタ 23.3 A/D コンバータの動作 433 第 23 章 A/D コンバータ 23.1 A/D コンバータの概要 A/D コンバータの特長およびブロックダイヤグラムを説明します。 ■ A/D コンバータの概要 A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10 ビットもしくは 8 ビットのデジタル値に変換する機能があります。入力信号は , 各アナログ入力端子から 選択し , 変換起動はソフトウェア , 内部クロック , 外部端子トリガの 3 種類から選択で きます。 ■ A/D コンバータの特長 A/D コンバータは , アナログ入力電圧をデジタル値に変換します。 A/D コンバータの特長は次のとおりです。 • 変換時間 1 チャネルあたり最小 3μs (16/32MHz のマシンクロック ) • サンプル & ホールド回路付き RC 型逐次比較変換方式を採用 • 10 ビットまたは 8 ビットの分解能 • アナログ入力は 32 チャネルからプログラムで選択 - シングル変換モード :1 チャネルを選択変換 - スキャン変換モード :連続した複数のチャネルを変換。最大 32 チャネルプログ ラム可能 - 連続変換モード :指定チャネルを繰り返し変換 - 停止変換モード :指定チャネルを変換したら一時停止して次の起動がかか るまで待機 ( 変換開始の同期が可能 ) • 割込み要求 A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることが できます。 • 起動要因を選択可能 起動要因には , ソフト , 外部トリガ ( 立下りエッジ ) またはタイマ ( 立上りエッジ ) が あります。 434 第 23 章 A/D コンバータ ■ A/D コンバータのブロックダイヤグラム 図 23.1-1 に , A/D コンバータのブロックダイヤグラムを示します。 図 23.1-1 A/D コンバータのブロックダイヤグラム MPX AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 AN10 AN11 AN12 AN13 AN14 AN15 AN16 AN17 AN18 AN19 AN20 AN21 AN22 AN23 AN24 AN25 AN26 AN27 AN28 AN29 AN30 AN31 AVCC AVRH/AVRL AVSS D/Aコンバータ 逐次比較レジスタ 比較器 サンプル& ホールド回路 内 部 デ タ バ ス 入 力 回 路 デ コ ダ データレジスタ A/D制御レジスタ0 A/D制御レジスタ1 動作クロック ATGX 端子 16ビット リロードタイマ CLKP プリスケーラ 435 第 23 章 A/D コンバータ ■ 入力インピーダンス A/D コンバータのサンプリング回路は次の等価回路で表されます。 図 23.1-2 入力インピーダンス Rin 13.6kΩ (AVCC≧4.0V) 2.52kΩ (AVCC≧4.5V) Rext アナログ信号 ソース ANx アナログスイッチ Cin:最大10.7pF ADC Rext はサンプリング時間(Tsamp)の最大時間を超えない値にしてください。 Rext = Tsamp/(7*Cin) - Rin 436 第 23 章 A/D コンバータ 23.2 A/D コンバータのレジスタ A/D コンバータのレジスタを説明します。 ■ A/D コンバータのレジスタ一覧 A/D コンバータには次のレジスタがあります。 • A/D コントロールステータスレジスタ • データレジスタ • サンプリングタイマ設定レジスタ • 開始 / 終了チャネル設定レジスタ 図 23.2-1 A/D コンバータのレジスタ配置 bit 15 8 7 0 ADCS1 ADCS0 ADCR1 ADCR0 ADCT1 ADCT0 ADSCH ADECH 8 ビット 8 ビット 図 23.2-2 A/D コンバータのレジスタ A/D コントロールステータスレジスタ上位 アドレス: 000154H 15 14 13 12 11 10 9 8 BUSY INT INTE PAUS STS1 STS0 STRT 予約 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) bit リード / ライト→ 初期値→ ADCS1 A/D コントロールステータスレジスタ下位 アドレス: 000155H 7 6 5 4 3 2 1 0 MD1 MD0 S10 ACH4 ACH3 ACH2 ACH1 ACH0 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 15 14 13 12 11 10 9 8 bit リード / ライト→ 初期値→ ADCS0 データレジスタ ( 上位 ) アドレス: 000156H bit − − − − − − D9 D8 リード / ライト→ (−) (−) (−) (−) (−) (−) (R) (R) 初期値→ (−) (−) (−) (−) (−) (−) (X) (X) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト→ (R) (R) (R) (R) (R) (R) (R) (R) 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) ADCR1 データレジスタ ( 下位 ) アドレス: 000157H bit ADCR0 ( 続く ) 437 第 23 章 A/D コンバータ ( 続き ) A/D 変換時間設定レジスタ上位 アドレス: 000158H 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) 7 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) 14 13 12 11 10 9 8 ADCT1 A/D 変換時間設定レジスタ下位 アドレス: 000159H bit リード / ライト→ 初期値→ ADCT0 A/D 開始チャネル設定レジスタ アドレス: 00015AH bit 15 − − − ANS4 ANS3 ANS2 ANS1 ANS0 リード / ライト→ (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値→ (−) (−) (−) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 − − − ANE4 ANE3 ANE2 ANE1 ANE0 リード / ライト→ (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値→ (−) (−) (−) (0) (0) (0) (0) (0) ADSCH A/D 終了チャネル設定レジスタ アドレス: 00015BH 438 bit ADECH 第 23 章 A/D コンバータ ■ アナログ入力許可レジスタ 図 23.2-3 アナログ入力許可レジスタ アナログ入力許可レジスタ ADERH bit 15 14 13 12 11 10 9 8 アドレス:000150H ADE31 ADE30 ADE29 ADE28 ADE27 ADE26 ADE25 ADE24 リード / ライト→ 初期値→ bit (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 アドレス:000151H ADE23 ADE22 ADE21 ADE20 ADE19 ADE18 ADE17 ADE16 リード / ライト→ 初期値→ ADERL bit (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 15 14 13 12 11 10 アドレス:000152H ADE15 ADE14 ADE13 ADE12 ADE11 ADE10 9 8 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) 7 6 5 4 3 2 1 0 アドレス:000153H 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 初期値→ アナログ入力に使用される端子に対応する ADE ビットに常に "1" を書き込んでくださ い。 アナログ入力に使用する端子は次のようにしてください。 • 0:ポート入力 / 出力モード • 1:アナログ入力モード • リセット時は "0" に初期化されます。 • 開始チャネル , 終了チャネルのアナログ入力許可レジスタには必ず "1" を書き込ん でください。 439 第 23 章 A/D コンバータ ■ A/D コントロールステータスレジスタ (ADCS1) 図 23.2-4 A/D コントロールステータスレジスタ (ADCS1) A/D コントロールステータスレジスタ上位 15 14 13 12 11 10 9 000154H BUSY 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) アドレス:bit 初期値→ 8 A/D コントロールステータスレジスタ(ADCS1) は , A/Dコンバータの制御およびステー タス表示を行います。 [bit15]BUSY (busy flag and stop) • 読出し時: A/D コンバータ動作表示用のビットです。 A/D 変換起動でセットされ最終チャネルの変換終了でクリアされま す。 • 書込み時: A/D 動作中に本ビットに "0" を書き込むと強制的に動作を停止しま す。連続 , 停止モード時の強制終了に利用します。 動作表示用のビットに "1" を書き込むことはできません。リードモディファイライ ト (RMW) 系命令では "1" が読み出されます。単発モードでは設定された最終チャ ネルの A/D 変換終了でクリアされます。 連続 , 停止モードでは "0" 書込みで停止するまでクリアされません。 リセット時に本ビットは "0" に初期化されます。 強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 [bit14]INT (interrupt) 変換データが ADCR に書き込まれるとセットされます。 bit13 (INTE) が "1" のときに本ビットがセットされると割込み要求が発生します。 クリアは "0" 書込みで行われます。 ( 注意事項 ) 本ビットの "0" 書込みクリアは A/D 停止中に行ってください。 リセット時に本ビットは "0" に初期化されます。 DMA を使用した場合は DMA 転送終了時に本ビットがクリアされます。 [bit13]INTE (Interrupt enable) 本ビットは変換終了による割込みの許可・禁止を指定します。 • 0:割込みの禁止 • 1:割込みの許可 リセット時に本ビットは "0" に初期化されます。 [bit12]PAUS (A/D converter pause) A/D 変換動作が一時的に停止した場合にセットされます。 A/D 変換結果を格納するレジスタが 1 つのため , 連続で変換した場合 , 変換結果を 440 第 23 章 A/D コンバータ DMA で転送しなければ前データが壊れてしまいます。 これを保護するためにデータレジスタの内容を DMA で転送しなければ , 次の変換 データが格納されないようになっています。この間 A/D 変換動作は停止します。 DMA で転送を終了すると A/D は変換を再開します。 このビットは DMA を使用したときのみ有効です。 • 本ビットのクリアは "0" 書込みでのみ可能です (DMA 転送終了ではクリアされま せん )。ただし , DMA 転送待ち状態のときはクリアできません。 • 変換データの保護機能に関しては「23.3 A/D コンバータの動作」を参照してく ださい。 • リセット時に本ビットは "0" に初期化されます。 [bit11, bit10]STS1, STS0 (Start source select) リセット時に本ビット群は "00B" に初期化されます。 本ビットの設定により A/D 起動要因を選択します。 STS1 STS0 0 0 ソフト起動 0 1 外部端子トリガでの起動とソフト起動 1 0 16 ビットリロードタイマでの起動とソフト起動 1 1 外部端子トリガ , 16 ビットリロードタイマでの起動とソフト起動 機能 2 つ以上の起動要因が許されているモードでは最初に生じた原因により A/D 変換が 起動されます。 起動源の設定は書き換えられると直ちに変わりますので , A/D 変換中に書き換える ときには注意してください。 • 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のと きに本ビットを書き換えて外部端子トリガ起動に設定すると A/D が起動する場 合があります。 • タイマ選択時は , 16 ビットリロードタイマ 2 が選択されます。 [bit9]STRT (Start) 本ビットに "1" を書き込むことにより A/D を起動 ( ソフト起動 ) します。 再起動をかけるときは , 再び "1" を書き込んでください。 リセット時に本ビットは "0" に初期化されます。 連続モード時および停止モード時は動作機能上 , 再起動はかかりません。"1" を書き 込む前に BUSY ビットをチェックしてください (BUSY ビットをクリアしてから起 動してください )。 強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。 [bit8] (Reserved bit) 本ビットには常に "0" を書き込んでください。 441 第 23 章 A/D コンバータ ■ A/D コントロールステータスレジスタ (ADCS0) 図 23.2-5 A/D コントロールステータスレジスタ (ADCS0) A/D コントロールステータスレジスタ下位 7 6 5 4 3 2 1 0 000155H MD1 MD0 S10 ACH4 ACH3 ACH2 ACH1 ACH0 リード / ライト→ (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 初期値→ A/D コントロールステータスレジスタ(ADCS0) は , A/Dコンバータの制御およびステー タス表示を行います。ADCS0 は A/D 変換動作中に書き換えないようにしてください。 [bit7, bit6]MD1, MD0 (A/D converter mode set) MD1, MD0 ビットは , 動作モードを設定します。 MD1 MD0 0 0 単発モード : 動作中の再起動はすべて可能 0 1 単発モード : 動作中の再起動不可能 1 0 連続モード : 動作中の再起動不可能 1 1 停止モード : 動作中の再起動不可能 動作モード ( 注意事項 ) A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中 の再起動ができます。このモードではソフトウェア起動 (STS1, STS0)=00B) のみ 設定可能です。再起動は下記の手順で行ってください。 1. INT ビットを "0" にクリアする 2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む • 単発モード ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変 換を連続して行いすべてのチャネルの変換が終了したら停止します。 • 連続モード ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変 換を繰り返し行います。 • 停止モード ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで 1 チャネ ルごとに A/D 変換を行い一時停止します。変換再開は起動要因発生によって行 われます。 リセット時には本ビット群は "00B" に初期化されます。 • 連続モード , 停止モードで A/D 変換を起動すると , BUSY ビットで強制終了する まで変換動作を続けます。 • 強制終了は BUSY ビットに "0" を書き込むことにより行われます。 • 強制終了後の起動時は ANS4 ∼ ANS0 の設定チャネルから変換されます。 442 第 23 章 A/D コンバータ • 単発 , 連続 , 停止の各モードでの再起動不可能はタイマ , 外部トリガ , ソフトすべ ての起動に適用されます。 [bit5]S10 • 本ビットは変換の分解能を指定します。"0" にセットされると 10 ビットの A/D 変換が行われます。そのほかの場合には 8 ビットの A/D 変換が行われてその結 果は ADCR0 に記憶されます。 • リセット時に本ビットは "0" に初期化されます。 [bit4 ∼ bit0]ACH4 ∼ ACH0 (Analog convert select channel) 本ビット群より現在 A/D 変換中のチャネルを表します。 ACH4 ACH3 ACH2 ACH1 ACH0 変換チャネル 0 0 0 0 0 AN0 0 0 0 0 1 AN1 0 0 0 1 0 AN2 0 0 0 1 1 AN3 0 0 1 0 0 AN4 0 0 1 0 1 AN5 0 0 1 1 0 AN6 0 0 1 1 1 AN7 0 1 0 0 0 AN8 0 1 0 0 1 AN9 0 1 0 1 0 AN10 0 1 0 1 1 AN11 0 1 1 0 0 AN12 0 1 1 0 1 AN13 0 1 1 1 0 AN14 0 1 1 1 1 AN15 1 0 0 0 0 AN16 1 0 0 0 1 AN17 1 0 0 1 0 AN18 1 0 0 1 1 AN19 1 0 1 0 0 AN20 1 0 1 0 1 AN21 1 0 1 1 0 AN22 1 0 1 1 1 AN23 1 1 0 0 0 AN24 1 1 0 0 1 AN25 1 1 0 1 0 AN26 1 1 0 1 1 AN27 1 1 1 0 0 AN28 1 1 1 0 1 AN29 443 第 23 章 A/D コンバータ ACH4 ACH3 ACH2 ACH1 ACH0 変換チャネル 1 1 1 1 0 AN30 1 1 1 1 1 AN31 • 読出し時 A/D 変換 (BUSY ビット= 1) の間 , 現在の変換チャネルを本ビット群で表します。 強制終了 (BUSY ビット= 0) により停止した場合は変換が停止されたチャネルを 表します。 • 書込み時 本ビット群への書込みは無効です。 • リセット時に本ビット群は "00000B" に初期化されます。 ■ データレジスタ (ADCR0, ADCR1) 図 23.2-6 データレジスタ (ADCR0, ADCR1) データレジスタ ( 上位 ) アドレス:bit 000156H 15 14 13 12 11 10 9 − − − − − − D9 D8 (R) (X) リード / ライト→ (−) (−) (−) (−) (−) (−) (R) 初期値→ (−) (−) (−) (−) (−) (−) (X) 8 データレジスタ ( 下位 ) アドレス:bit 000157H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 リード / ライト→ (R) (R) (R) (R) (R) (R) (R) (R) 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) データレジスタ (ADCR0, ADCR1) は , 変換の結果として生成されたデジタル値を記憶 するために使用されるものです。 ADCR0 は下位 8 ビットを記憶し , ADCR1 は変換結果の最上位の 2 ビットを記憶しま す。これらのレジスタ値は変換が完了するたびに書き換えられます。通常は最後の変 換値が本ビット群に記憶されます。 ADCR1 の bit10 ∼ bit15 からは常に "0" が読み出されます。 変換データの保護機能を利用できます (「23.3 A/D コンバータの動作」を参照 )。 444 第 23 章 A/D コンバータ ■ A/D 変換時間設定レジスタ (ADCT0, ADCT1) 図 23.2-7 A/D 変換時間設定レジスタ (ADCT0, ADCT1) A/D 変換時間設定レジスタ上位 15 14 13 12 11 10 9 8 000158H 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) アドレス:bit 初期値→ A/D 変換時間設定レジスタ下位 アドレス:bit 000159H リード / ライト→ 初期値→ 7 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) A/D 変換時間設定レジスタ (ADCT0, ADCT1) はアナログ入力のサンプリング時間およ び比較時間を制御します。本レジスタの設定で A/D の変換時間を設定します。 ADCT0, ADCT1 は A/D 変換動作中に書き換えないでください。 [bit15 ∼ bit10]CT5 ∼ CT0 (A/D compare time set) • 本ビット群の設定により比較操作時間のクロック分周値を指定します。 • CT5 ∼ CT0 の設定を "000001B"(01H) にすると分周なし (=CLKP) になります。 • CT5 ∼ CT0 の設定を "000000B"(00H) にしないでください。 • リセットにより本ビット群は "000100B"(04H) に初期化されます。 比較操作時間 (Compare Time) = CT 設定値× CLKP 周期× 10 + 4CLKP ( 注意事項 ) 比較操作時間が 500μs を超えないように設定してください。 [bit9 ∼ bit0]ST9 ∼ ST0 (Analog input sampling time set) • 本ビット群の設定によりアナログ入力のサンプリング時間を指定します。 • リセットにより本ビット群は "0000101100B"(02CH) に初期化されます。 サンプリング時間 (Sampling Time) = ST 設定値× CLKP 周期 • ST9 ∼ ST0 へ以下の値を設定することは禁止です。 "0000000010"(02H), "0000000001"(01H), "0000000000"(00H) 3 以上の値を設定してください。 ( 注意事項 ) サンプリング時間を 1.375μs 以下にしないでください。 • 必要サンプリング時間および ST 設定時間の算出は以下の計算で行ってください。 必要サンプリング時間 (Tsamp) = (Rext + Rin) × Cin × 7 ST9 ∼ ST0 設定値=必要サンプリング時間 (Tsamp) ÷ CLKP 周期 445 第 23 章 A/D コンバータ • ST の設定値は A/D のサンプリング時間が必要サンプリング時間以上になるよう に設定してください。 例 : クロック 32MHz, AVCC = 4.5V 以上 , Rext = 200kΩ の場合 Tsamp = (200 × 103 + 2.52 × 103) × 10.7 × 10-12 × 7 = 約 15.17μs = 15.17-6 ÷ 31.25-9 = 485.44 ST = 486(1E6H) 以上を設定してください。 • Rextの値により必要サンプリング時間が決まりますので変換時間を考慮してRext を決定してください。 • ST9∼ST0へ以下の値を設定することは禁止です。 3以上の値を設定してください。 "0000000010B"(02H), "0000000001B"(01H), "0000000000B"(00H) ■ 推奨設定値 最適な変換時間を達成するために , 以下の設定を推奨します。 (AVCC ≧ 4.5V, Rext ≦ 15kΩ) CLKP (MHz) 比較操作時間 (CT5 ∼ CT0) サンプリング時間 (ST9 ∼ ST0) 変換時間 (ms) 16 000010B(02H) 0000010110B(016H) 1.375 + 1.500 = 2.875 32 000100B(04H) 0000101100B(02CH) 1.375 + 1.375 = 2.750 ■ A/D 開始 / 終了チャネル設定レジスタ (ADSCH, ADECH) 図 23.2-8 A/D 開始 / 終了チャネル設定レジスタ (ADSCH, ADECH) A/D 開始チャネル設定レジスタ 15 14 13 12 11 10 9 8 − − − ANS4 ANS3 ANS2 ANS1 ANS0 リード / ライト→ (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値→ (−) (−) (−) (0) (0) (0) (0) (0) 5 4 3 2 1 0 アドレス:bit 00015AH A/D 終了チャネル設定レジスタ アドレス:bit 00015BH 7 6 − − − ANE4 ANE3 ANE2 ANE1 ANE0 リード / ライト→ (−) (−) (−) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値→ (−) (−) (−) (0) (0) (0) (0) (0) A/D 変換の開始チャネルと終了チャネルの設定レジスタです。 ADCSH, ADCEH は A/D 変換中に書き換えないでください。 • 本ビット群より A/D 変換の開始チャネルと終了チャネルを設定します。 • 同一のチャネルが ANS4 ∼ ANS0 および ANE4 ∼ ANE0 に書き込まれると , 変換は 1 つのチャネルに対してのみ行われます ( シングル変換 )。 446 第 23 章 A/D コンバータ • 連続モード , 停止モードを設定している場合は本ビット群で設定されたチャネルの 変換が終わると ANS4 ∼ ANS0 で設定された開始チャネルに戻ります。 • 設定チャネルが ANS > ANE の場合は ANS から変換が始まり 31 チャネルまで変換 したら 0 チャネルに戻り ANE まで変換します。 • リセットにより本ビット群は ANS=00000B, ANE=00000B に初期化されます。 例:チャネル設定 ANS=6 チャネル , ANE=3 チャネルで単発モードのとき変換は次 の順序で行われます。 6 チャネル → 7 チャネル → 8 チャネル → ••• → 31 チャネル → 0 チャネル → 1 チャネル → 2 チャネル → 3 チャネル [bit12 ∼ bit8]ANS4 ∼ ANS0 ( アナログ変換開始チャネル ) [bit4 ∼ bit0] ANE4 ∼ ANE0 ( アナログ変換終了チャネル ) ANS4 ANE4 ANS3 ANE3 ANS2 ANE2 ANS1 ANE1 ANS0 ANE0 開始 / 終了チャネル 0 0 0 0 0 AN0 0 0 0 0 1 AN1 0 0 0 1 0 AN2 0 0 0 1 1 AN3 0 0 1 0 0 AN4 0 0 1 0 1 AN5 0 0 1 1 0 AN6 0 0 1 1 1 AN7 0 1 0 0 0 AN8 0 1 0 0 1 AN9 0 1 0 1 0 AN10 0 1 0 1 1 AN11 0 1 1 0 0 AN12 0 1 1 0 1 AN13 0 1 1 1 0 AN14 0 1 1 1 1 AN15 1 0 0 0 0 AN16 1 0 0 0 1 AN17 1 0 0 1 0 AN18 1 0 0 1 1 AN19 1 0 1 0 0 AN20 1 0 1 0 1 AN21 1 0 1 1 0 AN22 447 第 23 章 A/D コンバータ 448 ANS4 ANE4 ANS3 ANE3 ANS2 ANE2 ANS1 ANE1 ANS0 ANE0 開始 / 終了チャネル 1 0 1 1 1 AN23 1 1 0 0 0 AN24 1 1 0 0 1 AN25 1 1 0 1 0 AN26 1 1 0 1 1 AN27 1 1 1 0 0 AN28 1 1 1 0 1 AN29 1 1 1 1 0 AN30 1 1 1 1 1 AN31 第 23 章 A/D コンバータ 23.3 A/D コンバータの動作 A/D コンバータには単発モード , 連続モード , 停止モードの 3 種類のモードがありま す。 A/D コンバータの動作を説明します。 ■ A/D コンバータの動作 A/D コンバータは逐次比較方式で作動し , 分解能は 10 ビットまたは 8 ビットを選択す ることができます。 この 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 −−→ 繰返し • ANS = 010B, ANE = 010B 開始 → AN2 → AN2 → AN2 −−→ 繰返し 連続モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し続けま す (BUSY ビットに "0" を書き込む→強制終了 )。強制終了を行うと変換中のものは途 中で止まってしまうため , 注意してください ( 強制終了した場合は変換レジスタは変換 完了した前データが格納されています )。 449 第 23 章 A/D コンバータ ■ 停止モード 停止モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい きますが 1 チャネル変換するたびに変換動作を一時停止します。一時停止を解除する にはもう一度起動を行ってください。 ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に戻 り変換動作を続けます。開始チャネルと終了チャネルが同じ (ANS=ANE) であれば変 換は一方のチャネルに対してのみ実行されます。 [例] • ANS = 00000B, ANE = 00011B 開始 → AN0 → 停止 → 起動 → AN1 → 停止 → 起動 → AN2 → 停止 → 起動 → AN3 → 停止 → 起動 → AN0 −−→繰返し • ANS = 010B, ANE = 010B 開始 → AN2 → 停止 → 起動 → AN2 → 停止 → 起動 → AN2 −−→ → 繰返し このときの起動要因は STS1, STS0 で設定されたものだけです。 このモードを使用することにより変換開始の同期をかけることが可能です。 <注意事項> A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動 ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能です。再 起動は下記の手順で行ってください。 1. INT ビットを "0" にクリアする 2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む 450 第 24 章 C_CAN C_CAN の機能と動作について説明します。 24.1 C_CAN の特長 24.2 C_CAN レジスタ機能 24.3 C_CAN の機能 451 第 24 章 C_CAN 24.1 C_CAN の特長 C_CAN は , シリアル通信用の標準プロトコルである CAN プロトコル ver2.0A/B に 準拠しており , 自動車や FA などの工業分野に広く使用されています。 ■ C_CAN の特長 C_CAN には以下の特長があります。 • CAN プロトコル ver2.0A/B をサポート • 1Mbps までのビットレートをサポート • メッセージオブジェクトごとの識別マスク • プログラマブル FIFO モードをサポート • マスク可能な割込み • 自己テスト動作用プログラマブルループバックモードをサポート • インタフェースレジスタを使用してメッセージバッファへのリード / ライト ■ C_CAN のブロックダイヤグラム 図 24.1-1 に , C_CAN のブロックダイヤグラムを示します。 図 24.1-1 C_CAN ブロックダイヤグラム CAN_TX CAN_RX CANコントローラ メッセージ RAM メッセージ ハンドラ C_CAN レジスタ群 452 割込み データOUT データIN アドレス[7:0] コントロール リセット クロック CPUインタフェース 第 24 章 C_CAN CAN コントローラ CAN プロトコルと送受信メッセージ転送のためのシリアル / パラレル変換用のシリ アルレジスタを制御します。 メッセージ RAM メッセージオブジェクトを格納します。 レジスタ群 C_CAN で使用されるすべてのレジスタです。 メッセージハンドラ メッセージ RAM と CAN コントローラを制御します。 CPU インタフェース FR ファミリの内部バスインタフェースを制御します。 453 第 24 章 C_CAN 24.2 C_CAN レジスタ機能 CAN レジスタは , 256 バイト (64 ワード ) のアドレス空間が割り当てられ , バイトも しくはワードのアクセスが可能です。メッセージ RAM への CPU のアクセスは , メッセージインタフェースレジスタを介して行います。 以下に , CAN レジスタおよびレジスタの機能を説明します。 ■ 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) 454 第 24 章 C_CAN ■ 全体コントロールレジスタ一覧 表 24.2-1 全体コントロールレジスタ一覧 レジスタ アドレス 備考 +0 +1 CAN 制御レジスタ (CTRLR) ベースアドレス 020000H bit[15:8] bit[7:0] CAN ステータスレジスタ (STATR) bit[7:0] 予約ビット ■ CAN ステー タスレジスタ (STATR) を 参照 予約ビット ■ CAN ステー タスレジスタ (STATR) を 参照 リセット値 : 00H リセット値 : 01H リセット値 : 00H リセット値 : 00H CAN ビットタイミング レジスタ (BTR) bit[15:8] bit[7:0] bit[15:8] RP, REC[6:0] TEC[7:0] TSeg2[2:0], TSeg1[3:0] リセット値 : 00H リセット値 : 00H リセット値 : 23H CAN 割込みレジスタ (INTR) bit[15:8] ベースアドレス 020008H bit[7:0] bit[7:0] STAR: BOff, EWarn, EPass= リードオンリ RxOk, TxOk, LEC= リード / ライト ERRCNT: リードオンリ BTR: Init(CTLR)=CCE (CTRLR)=1 時 , リセット値 : 書込み可能 01H SJW[1:0], BRP[5:0] CAN テストレジスタ (TESTR) bit[15:8] bit[7:0] ■ CAN テスト レジスタ (TESTR) を 参照 IntId[15:8] IntId[7:0] 予約ビット リセット値 : 00H リセット値 : 00H リセット値 : 00H CAN プリスケーラ拡張 レジスタ (BRPER) ベースアドレス 02000CH +3 bit[15:8] CAN エラーカウンタ (ERRCNT) ベースアドレス 020004H +2 INTR: リードオンリ TESTR: Test(CTRLR)=1 時 , 書込み可能 "Rx" は CAN_RX 端 子のレベル値を示し リセット値 : ます。 00H & 0br0000000H 予約ビット bit[15:8] bit[7:0] bit[15:8] bit[7:0] 予約ビット BRP[3:0] - - リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H BRP: CCE(CTLR)=1 時 , 書込み可能 455 第 24 章 C_CAN ■ メッセージインタフェースレジスタ一覧 表 24.2-2 メッセージインタフェースレジスタ一覧 (1 / 2) レジスタ アドレス 備考 +0 +1 IF 1 コマンド要求レジスタ (IF1CREQ) bit[15:8] ベースアドレス 020010H bit[7:0] ベースアドレス 020018H IF1 コマンドマスクレジスタ (IF1CMSK) bit[15:8] bit[7:0] Busy Mess. No. [5:0] 予約ビット リセット値 : 00H リセット値 : 01H リセット値 : 00H リセット値 : 00H bit[15:8] bit[7:0] bit[15:8] bit[7:0] MXtd. MDir, Msk[28:24] Msk[23:16] Msk[15:8] Msk[7:0] リセット値 : FFH リセット値 : FFH リセット値 : FFH リセット値 : FFH - IF1 アービトレーション レジスタ 2(IF1ARB2) IF1 アービトレーション レジスタ 1(IF1ARB1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] MsgVal, Xtd, Dir, ID[28:24] ID[23:16] ID[15:8] ID[7:0] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H bit[15:8] - bit[7:0] ■ IFx メッ ■ IFx メッ ベースアドレス セージ制御レ セージ制御レ 02001CH ジスタ ジスタ (IFxMCTR) を (IFxMCTR) を 参照 参照 リセット値 : 00H - IF1 マスクレジスタ 1 (IF1CMSK1) IF1 メッセージ制御レジスタ (IF1MCTR) 456 +3 ■ IFx コマン ドマスクレジ スタ (IFxCMSK) を 参照 IF1 マスクレジスタ 2 (IF1CMSK2) ベースアドレス 020014H +2 リセット値 : 00H 予約ビット bit[15:8] bit[7:0] - - リセット値 : 00H リセット値 : 00H - 第 24 章 C_CAN 表 24.2-2 メッセージインタフェースレジスタ一覧 (2 / 2) レジスタ アドレス 備考 +0 +1 IF1 データ A レジスタ 1 (IF1DTA1) ベースアドレス 020020H ベースアドレス 020024H ベースアドレス 020030H ベースアドレス 020034H +2 +3 IF1 データ A レジスタ 2 (IF1DTA2) bit[7:0] bit[15:8] bit[7:0] bit[15:8] Data[0] Data[1] Data[2] Data[3] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H IF1 データ B レジスタ 1 (IF1DTB1) IF1 データ B レジスタ 2 (IF1DTB2) bit[7:0] bit[15:8] bit[7:0] bit[15:8] Data[4] Data[5] Data[6] Data[7] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H IF1 データ A レジスタ 2 (IF1DTA2) IF1 データ A レジスタ 1 (IF1DTA1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] Data[3] Data[2] Data[1] Data[0] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H IF1 データ B レジスタ 2 (IF1DTB2) IF1 データ B レジスタ 1 (IF1DTB1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] Data[7] Data[6] Data[5] Data[4] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H バイト配列順序 : ビッグエンディアン バイト配列順序 : ビッグエンディアン バイト配列順序 : リトルエンディアン バイト配列順序 : リトルエンディアン 457 第 24 章 C_CAN ■ メッセージインタフェースレジスタ一覧 表 24.2-3 メッセージインタフェースレジスタ一覧 (1 / 2) レジスタ アドレス 備考 +0 +1 IF2 コマンド要求レジスタ (IF2CREQ) bit[15:8] ベースアドレス 020040H bit[7:0] ベースアドレス 020048H IF2 コマンドマスクレジスタ (IF2CMSK) bit[15:8] bit[7:0] Busy Mess. No. [5:0] 予約ビット リセット値 : 00H リセット値 : 01H リセット値 : 00H リセット値 : 00H 458 - IF2 マスクレジスタ 1 (IF2CMSK1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] MXtd. MDir, Msk[28:24] Msk[23:16] Msk[15:8] Msk[7:0] リセット値 : FFH リセット値 : FFH リセット値 : FFH リセット値 : FFH - IF2 アービトレーション レジスタ 2(IF2ARB2) IF2 アービトレーション レジスタ 1(IF2ARB1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] MsgVal, Xtd, Dir, ID[28:24] ID[23:16] ID[15:8] ID[7:0] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H - IF2 メッセージ制御レジスタ (IF2MCTR) ベースアドレス 02004CH +3 ■ IFx コマン ドマスクレジ スタ (IFxCMSK) 参 照 IF2 マスクレジスタ 2 (IF2CMSK2) ベースアドレス 020044H +2 予約ビット bit[15:8] bit[7:0] bit[7:0] bit[15:8] ■ IFx メッ セージ制御レ ジスタ (IFxMCTR) 参 照 ■ IFx メッ セージ制御レ ジスタ (IFxMCTR) 参 照 - - リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H - 第 24 章 C_CAN 表 24.2-3 メッセージインタフェースレジスタ一覧 (2 / 2) レジスタ アドレス 備考 +0 ベースアドレス 020050H ベースアドレス 020154H ベースアドレス 020160H ベースアドレス 020164H +1 +2 +3 IF2 データ A レジスタ 1 (IF2DTA1) IF2 データ A レジスタ 2 (IF2DTA2) bit[7:0] bit[15:8] bit[7:0] bit[15:8] Data[0] Data[1] Data[2] Data[3] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H IF2 データ B レジスタ 1 (IF2DTB1) IF2 データ B レジスタ 2 (IF2DTB2) bit[7:0] bit[15:8] bit[7:0] bit[15:8] Data[4] Data[5] Data[6] Data[7] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H IF2 データ A レジスタ 2 (IF2DTA2) IF2 データ A レジスタ 1 (IF2DTA1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] Data[3] Data[2] Data[1] Data[0] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H IF2 データ B レジスタ 2 (IF2DTB2) IF2 データ B レジスタ 1 (IF2DTB1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] Data[7] Data[6] Data[5] Data[4] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H バイト配列順序 : ビッグエンディ アン バイト配列順序 : ビッグエンディ アン バイト配列順序 : リトルエンディ アン バイト配列順序 : リトルエンディ アン 459 第 24 章 C_CAN ■ メッセージハンドラレジスタ一覧 表 24.2-4 メッセージハンドラレジスタ一覧 レジスタ アドレス 備考 +0 ベースアドレス 020180H ベースアドレス 020184H +1 ベースアドレス 020194H ベースアドレス 0201A0H ベースアドレス 0201A4H CAN 送信要求レジスタ 1 (TREQR1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] TxRqst[32-25] TxRqst[24-17] TxRqst[16-9] TxRqst[8-1] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H 32 メッセージバッファ以上をサポートするための予約領域 ( ■ CAN 送信要求レジスタ (TREQR1, TREQR2) 参照 ) ベースアドレス 0201B4 460 INTR1, 2: リードオンリ - CAN データ更新レジスタ 1 (NEWDT1) bit[15:8] bit[7:0] bit[15:8] NewDat[3225] NewDat[2417] NewData[169] NewData[8-1] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H bit[7:0] 32 メッセージバッファ以上をサポートするための予約領域 ( ■ CAN データ更新レジスタ (NEWDT1, NEWDT2) 参照 ) CAN 割込みペンディング レジスタ 2(INTPND2) CAN 割込みペンディング レジスタ 1(INTPND1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] IntPnd[32-25] IntPnd[24-17] IntPnd[16-9] IntPnd[8-1] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H 32 メッセージバッファ以上をサポートするための予約領域 ( ■ CAN 割込みペンディングレジスタ (INTPND1, INTPND2) 参照 ) CAN メッセージ有効 レジスタ 2(MSGVAL2) ベースアドレス 0201B0 +3 CAN 送信要求レジスタ 2 (TREQR2) CAN データ更新レジスタ 2 (NEWDT2) ベースアドレス 020190H +2 NEWDT1, 2: リードオンリ - INTPND1, 2: リードオンリ - CAN メッセージ有効 レジスタ 1(MSGVAL1) bit[15:8] bit[7:0] bit[15:8] bit[7:0] MsgVal[32-25] MsgVal[24-17] MsgVal[16-9] MsgVal[8-1] リセット値 : 00H リセット値 : 00H リセット値 : 00H リセット値 : 00H 32 メッセージバッファ以上をサポートするための予約領域 ( ■ CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) 参照 ) MSGVAL1, 2: リードオンリ - 第 24 章 C_CAN ■ クロックプリスケーラレジスタ 表 24.2-5 クロックプリスケーラレジスタ レジスタ アドレス 0001A8H 備考 +0 +1 +2 +3 CANPRE - - - bit[3:0] - - - CANPRE[3:0] - - - リセット値 : 00H - - - CAN プリスケーラ 461 第 24 章 C_CAN 24.2.1 全体コントロールレジスタ 全体コントロールレジスタは , CAN プロトコル制御および動作モードを制御し , ス テータス情報を提供します。 ■ CAN 制御レジスタ (CTRLR) 図 24.2-1 CAN 制御レジスタ (CTRLR) のビット構成 CAN 制御レジスタ ( 上位バイト ) bit 15 14 13 12 11 10 9 8 − − − − − − − − リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 Test CCE DAR − EIE SIE IE Init (R/W) (R/W) (R) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (1) アドレス : ch.0 020000H ch.1 020100H CAN 制御レジスタ ( 下位バイト ) bit アドレス : ch.0 020001H ch.1 020101H リード / ライト (R/W) 初期値 (0) CAN 制御レジスタ (CTRLR) は , CAN コントローラの動作モードを制御します。 [bit15 ∼ bit8] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 [bit7] Test: テストモード許可ビット Test 462 機能 0 通常動作 1 テストモード [ 初期値 ] 第 24 章 C_CAN [bit6] CCE: ビットタイミングレジスタ書込み許可ビット CCE 機能 0 CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ スタへの書込みを禁止します。 [ 初期値 ] 1 CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ スタへの書込みを許可します。Init ビットが "1" のときに有効です。 [bit5] DAR: 自動再送禁止ビット DAR 機能 0 調停負けまたはエラー検出時のメッセージの自動再送を許可します。 [ 初期値 ] 1 自動再送を禁止します。 CAN 仕様 (「ISO11898, 6.3.3 リカバリ処理」を参照 ) より , CAN コントローラは調 停負けあるいは転送中のエラー検出によりフレームの自動再送を行います。自動再 送する場合は , DAR ビットを "0" にリセットします。CAN を Time Triggered CAN(TTCAN, 「ISO11898-1」を参照 ) 環境で動作させるためには , DAR ビットに "1" を設定する必要があります。 ( 注意事項 ) DAR ビットに "1" を設定したモードでは , メッセージオブジェクト ( メッセージ オブジェクトについては「24.2.2 メッセージインタフェースレジスタ ■メッ セージオブジェクト」を参照 ) の TxRqst ビットと NewDat ビットの動作が異な ります。 • フレーム送信を開始したとき , メッセージオブジェクトの TxRqst が "0" にリセットされますが , NewDat ビットはセットされたままです。 • フレーム送信が正常終了すると NewDat は "0" にリセットされます。 送信が調停負けもしくはエラー検出すると , NewDat はセットされたままです。 送信を再開するためには , CPU により TxRqst に "1" を設定する必要があります。 [bit4] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 463 第 24 章 C_CAN [bit3] EIE: エラー割込みコード許可ビット EIE 機能 0 CAN ステータスレジスタの Boff または EWarn ビットの変化により , CAN 割込みレジスタへの割込みコードの設定を禁止します。 [ 初期値 ] 1 CAN ステータスレジスタの Boff または EWarn ビットの変化により , 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 464 機能 0 CAN コントローラ動作可能 1 初期化 [ 初期値 ] 第 24 章 C_CAN <注意事項> • バスオフリカバリシーケンス (「CAN 仕様 Rev. 2.0」を参照 ) は , Init ビットの設定 / 解 除によって短縮はできません。デバイスがバスオフになると , CAN コントローラ自身 が Init ビットを "1" にセットし , すべてのバス動作を停止します。バスオフ状態から Init ビットを "0" にクリアすると , バスアイドルが連続的に 129 回 (11 ビットのレセッシブ を 1 回とする ) 発生するまでバス動作を停止状態にします。バスオフリカバリシーケン ス実行後 , エラーカウンタをリセットします。 • CAN ビットタイミングレジスタへの書込みは , Init ビットおよび CCE ビットに "1" を 設定してください。 • 低消費電力モード ( 停止モード , クロックモード ) へ遷移する前に Init ビットに "1" を 書き込んで CAN コントローラの初期化を行ってください。 • CAN プリスケーラレジスタにより , CAN インタフェースに供給するクロックの分周比 を変更する場合は , Init ビットに "1" を設定後に CAN プリスケーラレジスタの変更を 行ってください。 465 第 24 章 C_CAN ■ CAN ステータスレジスタ (STATR) 図 24.2-2 CAN ステータスレジスタ (STATR) のビット構成 CAN ステータスレジスタ ( 上位バイト ) bit 15 14 13 12 11 10 9 8 − − − − − − − − リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 RxOk TxOk アドレス : ch.0 020002H ch.1 020102H CAN ステータスレジスタ ( 下位バイト ) bit アドレス : ch.0 020003H ch.1 020103H 7 BOff 6 EWarn EPass LEC リード / ライト (R) (R) (R) (R/W) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (1) CAN ステータスレジスタ (STATR) は , CAN ステータスおよび CAN バス状態を表示し ます。 [bit15 ∼ bit8] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 [bit7] BOff: バスオフビット BOff 機能 0 CAN コントローラはバスオフ状態でないことを示します。 [ 初期値 ] 1 CAN コントローラはバスオフ状態であることを示します。 [bit6] EWarn: ワーニングビット EWarn 466 機能 0 送信と受信カウンタがともに 96 未満であることを示します。 [ 初期値 ] 1 送信または受信カウンタが 96 以上であることを示します。 第 24 章 C_CAN [bit5] EPass: エラーパッシブビット EPass 機能 0 送信と受信カウンタがともに 128 未満 ( エラーアクティブ状態 ) で あることを示します。 [ 初期値 ] 1 受信カウンタは RP ビット =1, 送信カウンタが 128 以上 ( エラー パッシブ状態 ) であることを示します。 [bit4] RxOk: メッセージ正常受信ビット RxOk 機能 0 CAN バス上で正常なメッセージ通信が行われていない , またはバス アイドル状態であることを示します。 [ 初期値 ] 1 CAN バス上で正常なメッセージ通信が行われたことを示します。 [bit3] TxOk: メッセージ正常送信ビット TxOk 機能 0 バスアイドル状態もしくは正常なメッセージ送信が行われていない ことを示します。 [ 初期値 ] 1 正常なメッセージ送信が行われたことを示します。 <注意事項> RxOk および TxOk ビットは , CPU によってのみリセットされます。 467 第 24 章 C_CAN [bit2 ∼ bit0] LEC: ラストエラーコードビット LEC 状態 0 正常 1 Stuff エラー メッセージ内において 6 ビット以上連続してドミナン トまたはレセッシブを検出したことを示します。 2 Form エラー 受信されたフレームの固定フォーマット部が間違って 検出したことを示します。 3 Ack エラー 送信メッセージに対し , ほかのノードからアクノリッ ジされなかったことを示します。 4 bit1 エラー 調停フィールドを除くメッセージの送信データにおい て , レセッシブを送信したにもかかわらずドミナント を検出したことを示します。 5 bit0 エラー メッセージの送信データにおいて , ドミナントを送信 したにもかかわらずレセッシブを検出したことを示し ます。バスリカバリ中には , 11 ビットのレセッシブを 検出するごとにセットされます。このビットを読み出 すことによりバスリカバリシーケンスを監視できます。 6 CRC エラー 受信したメッセージの CRC データと計算した CRC の 結果が一致しなかったことを示します。 7 未検出 CPU によって LEC ビットに "7" の書込みを行ってから , LEC 値が "7" を読み出した場合 , その期間は送受信しな かったことを示します ( バスアイドル状態 )。 機能 正常に送信または受信されたことを示します。 [ 初期値 ] LEC ビットは CAN バス上で発生した最後のエラーを示すコードを保持します。メッ セージがエラーなしで転送 ( 受信 / 送信 ) 完了すると "0" にクリアされます。未検出 コード 7 は , コード更新をチェックするために 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 第 24 章 C_CAN ■ CAN エラーカウンタ (ERRCNT) 図 24.2-3 CAN エラーカウンタ (ERRCNT) のビット構成 CAN エラーカウンタレジスタ ( 上位バイト ) bit 15 14 13 12 RP アドレス : ch.0 020004H ch.1 020104H 11 10 9 8 REC6 ∼ REC0 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 0 CAN エラーカウンタレジスタ ( 下位バイト ) bit 7 6 5 TEC7 ∼ TEC0 アドレス : ch.0 020005H ch.1 020105H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) CAN エラーカウンタ (ERRCNT) は , 受信エラーパッシブ表示および受信エラーカウン タ , 送信エラーカウンタを示します。 [bit15] RP: 受信エラーパッシブ表示 RP 機能 0 受信エラーカウンタはエラーパッシブ状態でないことを示します。 [ 初期値 ] 1 受信エラーカウンタは CAN 仕様で定義されているエラーパッシブ 状態に到達したことを示します。 [bit14 ∼ bit8] REC6 ∼ REC0: 受信エラーカウンタ 受信エラーカウンタ値。受信エラーカウンタ値の範囲は 0 ∼ 127 です。 [bit7 ∼ bit0] TEC7 ∼ TEC0: 送信エラーカウンタ 送信エラーカウンタ値。送信エラーカウンタ値の範囲は 0 ∼ 255 です。 469 第 24 章 C_CAN ■ CAN ビットタイミングレジスタ (BTR) 図 24.2-4 CAN ビットタイミングレジスタ (BTR) のビット構成 CAN ビットタイミングレジスタ ( 上位バイト ) bit アドレス : ch.0 020006H ch.1 020106H 15 14 13 12 11 10 TSeg2 − 9 8 TSeg1 リード / ライト (R) (R/W) (R/W) (R/W) (R) (R) (R) (R) 初期値 (0) (0) (1) (0) (0) (0) (1) (1) 4 3 2 1 0 CAN ビットタイミングレジスタ ( 下位バイト ) bit 7 6 SJW アドレス : ch.0 020007H ch.1 020107H リード / ライト (R/W) 初期値 5 (0) BRP (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (1) CAN ビットタイミングレジスタ (BTR) は , プリスケーラおよびビットタイミングを設 定します。 [bit15] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 [bit14 ∼ bit12] TSeg2: タイムセグメント 2 設定ビット 有効設定値は 0 ∼ 7 です。TSeg2+1 の値がタイムセグメント 2 になります。 タイムセグメント 2 は , CAN 仕様のフェーズバッファセグメント (PHASE_SEG2) に 相当します。 [bit11 ∼ bit8] TSeg1: タイムセグメント 1 設定ビット 有効設定値は 1 ∼ 15 です。"0" の設定は禁止です。TSeg1+1 の値がタイムセグメン ト 1 になります。 タイムセグメント 1 は , CAN 仕様のプロパゲーションセグメント (PROP_SEG) + フェーズバッファセグメント 1(PHASE_SEG1) に相当します。 [bit7, bit6] SJW: 再同期化ジャンプ幅設定ビット 有効設定値は 0 ∼ 3 です。SJW+1 の値が再同期ジャンプ幅となります。 [bit5 ∼ bit0] BRP: ボーレートプリスケーラ設定ビット 有効設定値は 0 ∼ 63 です。BRP+1 の値がボーレートプリスケーラになります。 システムクロック (fsys) を分周して , CAN コントローラの基本単位時間 (tq) を決定 します。 470 第 24 章 C_CAN <注意事項> CAN 制御レジスタの CCE ビットと Init ビットが "1" にセットされているときに , CAN ビッ トタイミングレジスタおよび CAN プリスケーラ拡張レジスタを設定してください。 ■ CAN 割込みレジスタ (INTR) 図 24.2-5 CAN 割込みレジスタ (INTR) のビット構成 CAN 割込みレジスタ ( 上位バイト ) bit 15 14 13 12 11 10 9 8 IntId15 ∼ IntId8 アドレス : ch.0 020008H ch.1 020108H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 CAN 割込みレジスタ ( 下位バイト ) bit 7 6 IntId7 ∼ IntId0 アドレス : ch.0 020009H ch.1 020109H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) CAN 割込みレジスタ (INTR) は , メッセージ割込みコードおよびステータス割込みコー ドを表示します。 [bit15 ∼ bit0] IntId15 ∼ IntId0 IntId 機能 0000H 割込みなし 0001H ∼ 0020H 割込み要因はメッセージオブジェクトの番号を示します。 ( メッセージ割込みコード ) 0021H ∼ 7FFFH 未使用 8000H 8001H ∼ FFFFH CAN ステータスレジスタの変化による割込みを示します。 ( ステータス割込みコード ) 未使用 複数の割込みコードが保留中である場合 , CAN 割込みレジスタは優先度の高い割込み コードを示します。割込みコードが CAN 割込みレジスタにセットされていても優先度 の高い割込みコードが発生した場合には , CAN 割込みレジスタは優先度の高い割込み コードに更新されます。 471 第 24 章 C_CAN 優先度の高い割込みコードは , ステータス割込みコード (8000H), メッセージ割込み (0001H, 0002H, 0003H, ……, 0020H) の順になります。 IntId ビットが "0000H" 以外で , CAN 制御レジスタの IE ビットが "1" にセットされると , CPU への割込み信号がアクティブになります。IntId の値が "0000H" になる ( 割込み要 因がリセットされる ) もしくは CAN 制御レジスタの IE ビットが "0" にリセットされる と , 割込み信号はインアクティブになります。 対象となるメッセージオブジェクト ( メッセージオブジェクトについては「■メッセー ジオブジェクト」を参照 ) の IntPnd ビットを "0" にクリアすることでメッセージ割込 みコードはクリアされます。 ステータス割込みコードは CAN ステータスレジスタを読み出すことでクリアされま す。 472 第 24 章 C_CAN ■ CAN テストレジスタ (TESTR) 図 24.2-6 CAN テストレジスタ (TESTR) のビット構成 CAN テストレジスタ ( 上位バイト ) bit 15 14 13 12 11 10 9 8 − − − − − − − − リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) アドレス : ch.0 02000AH ch.1 02010AH CAN テストレジスタ ( 下位バイト ) bit 7 6 5 4 3 2 1 0 Rx Tx1 Tx0 LBack Silent Basic − − リード / ライト (R) (R/W) (R/W) (R) (R/W) (R/W) (R) (R) 初期値 (r) (0) (0) (0) (0) (0) (0) (0) アドレス : ch.0 02000BH ch.1 02010BH CAN テストレジスタ (TESTR) は , テストモードの設定および RX 端子のモニタを行い ます。 動作については , 「24.3 C_CAN の機能 ■テストモード」を参照してください。 [bit15 ∼ bit8] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 [bit7] Rx: Rx 端子モニタビット bit7 の Rx の初期値 (r) は , CAN バス上のレベルが表示されます。 Rx 機能 0 CAN バスはドミナントであることを示します。 1 CAN バスはレセッシブであることを示します。 [bit6, bit5] Tx1, Tx0: TX 端子コントロールビット Tx1, Tx0 機能 00B 通常動作 [ 初期値 ] 01B サンプリングポイントが TX 端子に出力されます。 10B TX 端子にドミナントを出力します。 11B TX 端子にレセッシブを出力します。 473 第 24 章 C_CAN [bit4] LBack: ループバックモード LBack 機能 0 ループバックモードを禁止します。 [ 初期値 ] 1 ループバックモードを許可します。 [bit3] Silent: サイレントモード Silent 機能 0 サイレントモードを禁止します。 [ 初期値 ] 1 サイレントモードを許可します。 [bit2] Basic: ベーシックモード Basic 機能 0 ベーシックモードを禁止します。[ 初期値 ] 1 ベーシックモードを許可します。 IF1 レジスタは送信メッセージとして , IF2 レジスタは受信メッセー ジとして使用されます。 [bit1, bit0] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 <注意事項> • CAN 制御レジスタの Test ビットを "1" にセットした後 , 本レジスタへ書き込んでくだ さい。テストモードが有効となるのは , CAN 制御レジスタの Test ビットが "1" のとき です。途中で CAN 制御レジスタの Test ビットを "0" にするとテストモードから通常 モードになります。 • Tx ビットを "00B" 以外に設定した場合 , メッセージを送信することができません。 474 第 24 章 C_CAN ■ CAN プリスケーラ拡張レジスタ (BRPER) 図 24.2-7 CAN プリスケーラ拡張レジスタ (BRPER) のビット構成 CAN プリスケーラ拡張レジスタ ( 上位バイト ) bit 15 14 13 12 11 10 9 8 − − − − − − − − リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 0 アドレス : ch.0 02000CH ch.1 02010CH CAN プリスケーラ拡張レジスタ ( 下位バイト ) bit 7 6 5 BRPE − − − − リード / ライト (R) (R) (R) (R) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) アドレス : ch.0 02000DH ch.1 02010DH CAN プリスケーラ拡張レジスタ (BRPER) は , CAN ビットタイミングで設定したプリ スケーラと組み合せることにより , CAN コントローラで使用するプリスケーラを拡張 します。 [bit15 ∼ bit4] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 [bit3 ∼ bit0] BRPE: ボーレートプリスケーラ拡張ビット CAN ビットタイミングレジスタの BRP と BRPE を組み合せることにより , 1023 ま でボーレートプリスケーラを拡張できます。 {BRPE(MSB:4 ビット ), BRP(LSB:6 ビット )} + 1 の値が CAN コントローラのプリ スケーラとなります。 475 第 24 章 C_CAN 24.2.2 メッセージインタフェースレジスタ メッセージインタフェースレジスタは , 2 組あり ,CPU からメッセージ RAM へのア クセスを制御するためのレジスタです。 ■ メッセージインタフェースレジスタの概要 メッセージ RAM への CPU アクセスを制御するために使用される 2 組のメッセージイ ンタフェースレジスタがあります。この 2 組のレジスタは , 転送された ( する ) データ ( メッセージオブジェクト ) をバッファすることで , メッセージ RAM への CPU アクセ スと CAN コントローラからのアクセスの競合を回避します。メッセージオブジェクト ( メッセージオブジェクトについては ,「■メッセージオブジェクト」を参照 ) は , メッ セージインタフェースレジスタとメッセージ RAM 間を一度に転送します。 テストベーシックモードを除き , 2 組のメッセージインタフェースレジスタの機能は同 一で , 独立して動作可能です。例えば , IF1 のメッセージインタフェースレジスタをメッ セージRAMへの書込み動作中に, IF2のメッセージインタフェースレジスタをメッセー ジ RAM からの読出しに使用することも可能です。表 24.2-6 に 2 組のメッセージイン タフェースレジスタを示します。 メッセージインタフェースレジスタは , コマンドレジスタ ( コマンド要求 , コマンドマ スクレジスタ ) と , このコマンドレジスタによって制御されるメッセージバッファレジ スタ ( マスク , アービトレーション , メッセージ制御 , データレジスタ ) から構成されま す。コマンドマスクレジスタは , データ転送の方向とメッセージオブジェクトのどの部 分が転送されるのかを示します。コマンド要求レジスタは , メッセージ番号の選択と , コマンドマスクレジスタに設定された動作を行います。 表 24.2-6 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 476 第 24 章 C_CAN ■ IFx コマンド要求レジスタ (IFxCREQ) 図 24.2-8 IFx コマンド要求レジスタ (IFxCREQ) のビット構成 IFx コマンド要求レジスタ ( 上位バイト ) bit 15 14 13 12 11 10 9 8 BUSY − − − − − − − リード / ライト (R/W) (R) (R) (R) (R) (R) (R) (R) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 アドレス : ch.0 020010H ch.1 020110H 初期値 (0) IFx コマンド要求レジスタ ( 下位バイト ) bit アドレス : ch.0 020011H ch.1 020111H 7 6 − − リード / ライト (R/W) 初期値 (0) Message Number (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) IFx コマンド要求レジスタ (IFxCREQ) は , メッセージ RAM のメッセージ番号の選択と メッセージ RAM とメッセージバッファレジスタ間の転送を行います。また , テストの ベーシックモードでは , IF1 を送信制御用に IF2 を受信制御用として使用します。 IFx コマンド要求レジスタへメッセージ番号を書き込むとすぐにメッセージ RAM と メッセージバッファレジスタ ( マスク , アービトレーション , メッセージ制御 , データ レジスタ ) とのメッセージ転送が開始されます。この書込み動作で , BUSY ビットが "1" にセットされ転送処理中であることを示します。その転送が終了すると, BUSYビッ トが "0" にリセットされます。 BUSY ビットが "1" のときに , CPU からメッセージインタフェースレジスタへアクセス が発生すると , BUSY ビットが "0" になるまで ( コマンド要求レジスタ書込み後 , クロッ クで 3 ∼ 6 サイクル期間 ), CPU をウェイトさせます。 テストのベーシックモードでは , BUSY ビットの使用方法が異なります。IF1 コマンド 要求レジスタは , 送信メッセージとして使用され , BUSY ビットに "1" をセットするこ とによりメッセージ送信開始を指示します。メッセージ転送が正常終了すると , BUSY ビットは "0" にリセットされます。また , BUSY ビットを "0" にリセットすることによ り , いつでもメッセージ転送を中断させることが可能です。 IF2 コマンド要求レジスタは , 受信メッセージとして使用され , BUSY ビットを "1" に セットすることにより , 受信したメッセージを IF2 メッセージインタフェースレジスタ に格納します。 477 第 24 章 C_CAN [bit15] BUSY: ビジーフラグビット • テストベーシックモード以外 BUSY 機能 0 メッセージインタフェースレジスタとメッセージ RAM 間でデー タ転送処理を行っていないことを示します。 [ 初期値 ] 1 メッセージインタフェースレジスタとメッセージ RAM 間でデー タ転送処理中であることを示します。 • テストベーシックモード - IF1 コマンド要求レジスタ BUSY 機能 0 メッセージ送信を禁止します。 1 メッセージ送信を許可します。 - IF2 コマンド要求レジスタ BUSY 機能 0 メッセージ受信を禁止します。 1 メッセージ受信を許可します。 [bit14 ∼ bit5] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 [bit4 ∼ bit0] Message Number: メッセージ番号 (32 message buffer CAN 用 ) Message Number 00H 01H ∼ 20H 21H ∼ 3FH 478 機能 設定禁止です。設定した場合 , 20H として解釈され , 20H が読 み出されます。 処理を行うメッセージ番号を設定します。 設定禁止です。設定した場合 , 01H ∼ 1FH として解釈され , 解釈された値が読み出されます。 第 24 章 C_CAN [bit4 ∼ bit0] Message Number: メッセージ番号 (128 message buffer CAN 用 ) Message Number 00H 01H ∼ 80H 81H ∼ FFH 機能 設定禁止です。設定した場合 , 20H として解釈され , 20H が読 み出されます。 処理を行うメッセージ番号を設定します。 設定禁止です。設定した場合 , 01H ∼ 7FH として解釈され , 解釈された値が読み出されます。 <注意事項> BUSY ビットは , 読出しと書込みが可能です。テストのベーシックモード時以外は , この ビットに何を書き込んでも動作に影響しません ( ベーシックモードについては , 「24.3 C_CAN の機能 ■テストモード」を参照 )。 479 第 24 章 C_CAN ■ IFx コマンドマスクレジスタ (IFxCMSK) 図 24.2-9 IFx コマンドマスクレジスタ (IFxCMSK) のビット構成 IFx コマンドマスクレジスタ ( 上位バイト ) bit 15 14 13 12 11 10 9 8 − − − − − − − − リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 Data A Data B アドレス : ch.0 020012H ch.1 020112H IFx コマンドマスクレジスタ ( 下位バイト ) bit アドレス : ch.0 020013H ch.1 020113H 7 6 Arb Control CIP TxRqst/ NewDat (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) WR/RD Mask リード / ライト (R/W) 初期値 (0) IFx コマンドマスクレジスタ (IFxCMSK) は , メッセージインタフェースレジスタとメッ セージ RAM 間の転送方向を制御し , どのデータを更新するかを設定します。また , テ ストのベーシックモードでは本レジスタは無効となります。 [bit15 ∼ bit8] (Reserved bit) 予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。 [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 ビット ) の設定に より違った意味になります。 480 第 24 章 C_CAN ● 転送方向がライトの場合 (WR/RD=1) [bit6] Mask: マスクデータ更新ビット Mask 機能 0 メッセージオブジェクト * のマスクデータ (ID マスク + MDir + MXtd) を更新しないことを示します。[ 初期値 ] 1 メッセージオブジェクト * のマスクデータ (ID マスク + MDir + MXtd) を更新することを示します。 *:「■メッセージオブジェクト」を参照してください。 [bit5] Arb: アービトレーションデータ更新ビット Arb 機能 0 メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd + MsgVal) を更新しないことを示します。 [ 初期値 ] 1 メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd + MsgVal) を更新することを示します。 *:「■メッセージオブジェクト」を参照してください。 [bit4] Control: 制御データ更新ビット Control 機能 0 メッセージオブジェクト * の制御データ (IFx メッセージ制御レジ スタ ) を更新しないことを示します。 [ 初期値 ] 1 メッセージオブジェクト * の制御データ (IFx メッセージ制御レジ スタ ) を更新することを示します。 *:「■メッセージオブジェクト」を参照してください。 [bit3] CIP: 割込みクリアビット 本ビットに "0" または "1" を設定しても CAN コントローラの動作に影響を与えませ ん。 481 第 24 章 C_CAN [bit2] TxRqst/NewDat: メッセージ送信要求ビット TxRqst/ NewDat 機能 0 メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst ビットを変更しないことを示します。 [ 初期値 ] 1 メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst ビットに "1" を設定 ( 送信要求 ) することを示します。 *: 「■メッセージオブジェクト」を参照してください。 [bit1] Data A: データ 0 ∼ 3 更新ビット Data A 機能 0 メッセージオブジェクト * のデータ 0 ∼ 3 を更新しないことを示し ます。 [ 初期値 ] 1 メッセージオブジェクト * のデータ 0 ∼ 3 を更新することを示しま す。 *:「■メッセージオブジェクト」を参照してください。 [bit0] Data B: データ 4 ∼ 7 更新ビット Data B 機能 0 メッセージオブジェクト * のデータ 4 ∼ 7 を更新しないことを示し ます。 [ 初期値 ] 1 メッセージオブジェクト * のデータ 4 ∼ 7 を更新することを示しま す。 *: 「■メッセージオブジェクト」を参照してください。 <注意事項> • IFx コマンドマスクレジスタの TxRqst/NewDat ビットが "1" に設定されると , IFx メッ セージ制御レジスタの TxRqst ビットの設定は無効となります。 • テストのベーシックモードでは本レジスタは無効となります。 482 第 24 章 C_CAN ● 転送方向がリードの場合 (WR/RD=0) [bit6] Mask: マスクデータ更新ビット Mask 機能 0 メッセージオブジェクト * から IFx マスクレジスタ 1, 2 へデータ (ID マスク + MDir + MXtd ) を転送しないことを示します。 [ 初期値 ] 1 メッセージオブジェクト * から IFx マスクレジスタ 1, 2 へデータ (ID マスク + MDir + MXtd ) を転送することを示します。 *:「■メッセージオブジェクト」を参照してください。 [bit5] Arb: アービトレーションデータ更新ビット Arb 機能 0 メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ (ID+ Dir + Xtd + MsgVal) を転送しないことを示します。 [ 初期値 ] 1 メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ (ID+ Dir + Xtd + MsgVal) を転送することを示します。 *:「■メッセージオブジェクト」を参照してください。 [bit4] Control: 制御データ更新ビット Control 機能 0 メッセージオブジェクト * から IFx メッセージ制御レジスタへデー タを転送しないことを示します。 [ 初期値 ] 1 メッセージオブジェクト * から IFx メッセージ制御レジスタへデー タを転送することを示します。 *:「■メッセージオブジェクト」を参照してください。 [bit3] CIP: 割込みクリアビット CIP 機能 0 メッセージオブジェクト * および CAN 割込みペンディングレジス タの IntPnd ビットを保持することを示します。[ 初期値 ] 1 メッセージオブジェクト * および CAN 割込みペンディングレジス タの IntPnd ビットを "0" にクリアすることを示します。 *:「■メッセージオブジェクト」を参照してください。 483 第 24 章 C_CAN [bit2] TxRqst/NewDat: データ更新ビット TxRqst/ NewDat 機能 0 メッセージオブジェクト * および CAN データ更新レジスタの NewDat ビットを保持することを示します。[ 初期値 ] 1 メッセージオブジェクト * および CAN データ更新レジスタの NewDat ビットを "0" にクリアすることを示します。 *: 「■メッセージオブジェクト」を参照してください。 [bit1] Data A: データ 0 ∼ 3 更新ビット Data A 機能 0 メッセージオブジェクト * および CAN データレジスタ A1, A2 の データを保持することを示します。 [ 初期値 ] 1 メッセージオブジェクト * および CAN データレジスタ A1, A2 の データを更新することを示します。 *:「■メッセージオブジェクト」を参照してください。 [bit0] Data B: データ 4 ∼ 7 更新ビット Data B 機能 0 メッセージオブジェクト * および CAN データレジスタ B1, B2 の データを保持することを示します。 [ 初期値 ] 1 メッセージオブジェクト * および CAN データレジスタ B1, B2 の データを更新することを示します。 *:「■メッセージオブジェクト 」を参照してください。 <注意事項> • メッセージオブジェクトへの読出しアクセスにより , IntPnd および NewDat ビットを "0" にリセットすることが可能です。ただし , IFx メッセージ制御レジスタの IntPnd お よび NewDat ビットには , 読出しアクセスによりリセットされる前の IntPnd, NewDat ビットが格納されます。 • テストのベーシックモードでは無効となります。 484 第 24 章 C_CAN ■ IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) 図 24.2-10 IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) のビット構成 IFx マスクレジスタ 2( 上位バイト ) bit 15 14 13 MXtd MDir res リード / ライト (R/W) (R/W) (R) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) 6 5 4 3 2 1 0 アドレス : ch.0 020014H ch.1 020114H 初期値 (1) 12 11 10 9 8 Msk28 ∼ Msk24 IFx マスクレジスタ 2( 下位バイト ) bit 7 Msk23 ∼ Msk16 アドレス : ch.0 020015H ch.1 020115H リード / ライト (R/W) 初期値 (1) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) 14 13 12 11 10 9 8 IFx マスクレジスタ 1( 上位バイト ) bit 15 アドレス : ch.0 020016H ch.1 020116H Msk15 ∼ Msk8 リード / ライト (R/W) 初期値 (1) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) 6 5 4 3 2 1 0 IFx マスクレジスタ 1( 下位バイト ) bit 7 Msk7 ∼ Msk0 アドレス : ch.0 020017H ch.1 020117H リード / ライト (R/W) 初期値 (1) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (1) (1) (1) (1) (1) (1) IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) は , メッセージ RAM のメッセージオブ ジェクトマスクデータをライト / リードするために用いられます。また , テストのベー シックモードでは , 設定されているマスクデータは無効となります。 各ビットの機能については , 「 ■メッセージオブジェクト」に記述されています。 本レジスタの予約ビット (IFx マスクレジスタ 2 の bit13) は "1" が読み出され , 書込み時 は "1" を書き込んでください。 485 第 24 章 C_CAN ■ IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2) 図 24.2-11 IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2) のビット構成 IFx アービトレーションレジスタ 2( 上位バイト ) bit アドレス : ch.0 020018H ch.1 020118H 15 14 13 MsgVal Xtd Dir (R/W) (R/W) (R/W) (R/W) (0) (0) (0) 4 リード / ライト (R/W) 初期値 (0) 12 11 10 9 8 (R/W) (R/W) (R/W) (0) (0) (0) (0) 3 2 1 0 ID28 ∼ ID24 IFx アービトレーションレジスタ 2( 下位バイト ) bit 7 6 5 ID23 ∼ ID16 アドレス : ch.0 020019H ch.1 020119H リード / ライト (R/W) 初期値 (0) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 12 11 10 9 8 IFx アービトレーションレジスタ 1( 上位バイト ) bit 15 14 13 ID15 ∼ ID8 アドレス : ch.0 02001AH ch.1 02011AH リード / ライト (R/W) 初期値 (0) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 0 IFx アービトレーションレジスタ 1( 下位バイト ) bit 7 6 5 アドレス : ch.0 02001BH ch.1 02011BH ID7 ∼ ID0 リード / ライト (R/W) 初期値 (0) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2) は , メッセージ RAM のメッ セージオブジェクトアービトレーションデータをライト / リードするために用いられ ます。また , テストのベーシックモードでは無効となります。 各ビットの機能については , 「 ■メッセージオブジェクト」に記述されています。 <注意事項> 送信途中でメッセージオブジェクトの MsgVal ビットを "0" にクリアした場合 , 送信が完 了した時点で CAN ステータスレジスタの TxOk ビットは "1" になりますが , メッセージオ ブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされませんので メッセージインタフェースレジスタによって TxRqst ビットを "0" にクリアしてください。 486 第 24 章 C_CAN ■ IFx メッセージ制御レジスタ (IFxMCTR) 図 24.2-12 IFx メッセージ制御レジスタ (IFxMCTR) のビット構成 IFx メッセージ制御レジスタ ( 上位バイト ) bit 15 14 13 12 NewDat MsgLst IntPnd UMask アドレス : ch.0 02001CH ch.1 02011CH リード / ライト (R/W) 初期値 (0) 11 10 TxIE RxIE RmtEn TxRqst 9 8 (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) 3 2 1 0 IFx メッセージ制御レジスタ ( 下位バイト ) bit アドレス : ch.0 02001DH ch.1 02011DH 7 6 5 4 EoB − − − (R) (R) (R) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) リード / ライト (R/W) 初期値 (0) ID3 ∼ ID0 IFx メッセージ制御レジスタ (IFxMCTR) は , メッセージ RAM のメッセージオブジェク ト制御データをライト / リードするために用いられます。また , テストのベーシック モードでは , IF1 メッセージ制御レジスタは無効となります。IF2 メッセージ制御レジ スタの NewDat と MsgLst は通常の動作を行い , DLC ビットは受信したメッセージの DLC を表示します。そのほかの制御ビットは無効 ("0") として動作します。 各ビットの機能については , 「 ■メッセージオブジェクト」に記述されています。 <注意事項> 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 ビット が格納されます。 487 第 24 章 C_CAN ■ IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) addr+0 addr+1 addr+2 addr+3 IFx Message Data A1 ( アドレス 20H & 50H) Data(0) Data(1) - - IFx Message Data A2 ( アドレス 22H & 52H) - - Data(2) Data(3) IFx Message Data B1 ( アドレス 24H & 54H) Data(4) Data(5) - - IFx Message Data B2 ( アドレス 26H & 56H) - - Data(6) Data(7) IFx Message Data A2 ( アドレス 30H & 60H) Data(3) Data(2) - - IFx Message Data A1 ( アドレス 32H & 62H) - - Data(1) Data(0) IFx Message Data B2 ( アドレス 34H & 64H) Data(7) Data(6) - - IFx Message Data B1 ( アドレス 36H & 66H) - - Data(5) Data(4) 図 24.2-13 IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) のビット構成 IFx データレジスタ IF1DTA1( 上位 ) bit 15 14 13 11 10 9 8 Data15 ∼ Data8 アドレス : ch.0 020020H ch.1 020120H リード / ライト (R/W) 初期値 IF1DTA1( 下位 ) 12 bit (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 Data7 ∼ Data0 アドレス : ch.0 020021H ch.1 020121H リード / ライト (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 IF1DTA2( 上位 ) Data15 ∼ Data8 アドレス : ch.0 020022H ch.1 020122H リード / ライト (R/W) 初期値 IF1DTA2( 下位 ) bit (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 Data7 ∼ Data0 アドレス : ch.0 020023H ch.1 020123H リード / ライト (R/W) 初期値 (0) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) ( 続く ) 488 第 24 章 C_CAN ( 続き ) IFx データレジスタ IF1DTB1( 上位 ) bit 15 14 13 11 10 9 8 Data15 ∼ Data8 アドレス : ch.0 020024H ch.1 020124H リード / ライト (R/W) 初期値 IF1DTB1( 下位 ) 12 bit (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 Data7 ∼ Data0 アドレス : ch.0 020025H ch.1 020125H リード / ライト (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 IF1DTB2( 上位 ) アドレス : ch.0 020026H ch.1 020126H Data15 ∼ Data8 リード / ライト (R/W) 初期値 IF1DTB2( 下位 ) bit (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 アドレス : ch.0 020027H ch.1 020127H Data7 ∼ Data0 リード / ライト (R/W) 初期値 (0) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) (0) (0) IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) は , メッ セージ RAM のメッセージオブジェクト送受信データをライト / リードするために用い られます。データフレームの送受信のみ使用され , リモートフレームの送受信には使用 されません。 ● 送信メッセージデータの設定 設定したデータは , MSB(bit7, bit15) より開始して Data(0), Data(1), … Data(15) の順で送 信されます。 ● 受信メッセージデータ 受信メッセージデータは , MSB(bit7, bit15) より開始して Data(0), Data(1), … Data(15) の 順で格納されます。 489 第 24 章 C_CAN <注意事項> • 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバイトに は不定データが書き込まれます。 • メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ ますので , 4 バイトのうち , ある一部のデータだけを更新することはできません。 490 第 24 章 C_CAN ■ メッセージオブジェクト メッセージ RAM には , 32( 品種によって 128 まで ) のメッセージオブジェクトがあり ます。メッセージ RAM への CPU アクセスと CAN コントローラからのアクセスの競 合を回避するために , CPU はメッセージオブジェクトへ直接 , アクセスできません。 これらのアクセスは , IFx メッセージインタフェースレジスタ経由で行います。 以下に , メッセージオブジェクトの構成と機能を説明します。 ● メッセージオブジェクトの構成 メッセージオブジェクト UMask MsgVal Msk28 ∼ MXtd Msk0 ID28 ∼ ID0 MDir EoB Dir DLC3 ∼ DLC0 Xtd New Dat Data0 Data1 MsgLst RxIE TxIE Data2 Data3 Data4 IntPnd RmtEn TxRqst Data5 Data6 Data7 <注意事項> メッセージオブジェクトは , CAN 制御レジスタの Init ビット , ハードウェアリセットでは 初期化されません。ハードウェアリセットの場合 , ハードウェアリセット解除後 , CPU に よってメッセージ RAM を初期化するかメッセージ RAM の MsgVal を "0" にしてください。 ● メッセージオブジェクトの機能 ID28 ∼ ID0, Xtd, Dir ビットは , メッセージを送信する場合 , ID とメッセージの種類特 定に使用されます。メッセージを受信する場合 , Msk28 ∼ Msk0, MXtd, MDir ビットと ともにアクセプタンスフィルタで使用されます。 アクセプタンスフィルタを通過したデータフレームもしくはリモートフレームは , メッセージオブジェクトに格納されます。Xtd は拡張フレームか標準フレームかを示し , Xtd が "1" の場合は 29 ビット ID( 拡張フレーム ) を , Xtd が "0" の場合は , 11 ビット ID( 標準フレーム ) を受信します。 受信したデータフレームもしくはリモートフレームが 1 つ以上のメッセージオブジェ クトと一致した場合は , 一致した最小のメッセージ番号に格納されます。詳細は , 「■メッセージオブジェクト 」の受信メッセージのアクセプタンスフィルタを参照して ください。 MsgVal: 有効メッセージビット MsgVal 機能 0 メッセージオブジェクトは無効です。 メッセージの送受信は行いません。 1 メッセージオブジェクトは有効です。 メッセージの送受信が可能となります。 491 第 24 章 C_CAN <注意事項> • CAN 制御レジスタ (CTRLR) の Init ビットを "0" にリセットする前と , ID28 ∼ ID0, Xtd, Dir, DLC3 ∼ DLC0 を変更する前には , メッセージオブジェクトの MsgVal ビットを必 ず初期化してください。 • 送信中に MsgVal ビットを "0" にすると送信が完了した時点で CAN ステータスレジス タ (STATR) の TxOk ビットは "1" になりますが , メッセージオブジェクトおよび CAN 送信要求レジスタ (TREQR) の 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 機能 0 29 ビット ID( 拡張フレーム ) を指示します。 1 11 ビット ID( 標準フレーム ) を指示します。 Msk28 ∼ Msk0: ID マスク Msk28 ∼ Msk0 492 機能 0 メッセージオブジェクトの ID と対応するビットをマスクします。 1 メッセージオブジェクトの ID と対応するビットをマスクしません。 第 24 章 C_CAN Xtd: 拡張 ID 許可ビット Xtd 機能 0 メッセージオブジェクトは 11 ビット ID( 標準フレーム ) が使用され ます。 1 メッセージオブジェクトは 29 ビット ID( 拡張フレーム ) が使用され ます。 MXtd: 拡張 ID マスクビット MXtd 機能 0 アクセプタンスフィルタで拡張 ID ビット (IDE) をマスクします。 1 アクセプタンスフィルタで拡張 ID ビット (IDE) をマスクしません。 <注意事項> 11 ビット ID( 標準フレーム ) がメッセージオブジェクトに設定されると , 受信したデータ フレームの ID は , ID28 ∼ ID18 へ書き込まれます。ID マスクは , Msk28 ∼ Msk18 が使用 されます。 Dir: メッセージ方向ビット Dir 機能 0 受信方向を示します。 TxRqst が "1" にセットされるとリモートフレームの送信を行い , TxRqst が "0" のときはアクセプタンスフィルタを通過したデータフレームを 受信します。 1 送信方向を示します。 TxRqst が "1" にセットされるとデータフレームを送信し , TxRqst が "0" で RmtEn が "1" にセットされている場合 , アクセプタンスフィルタを 通過したリモートフレームの受信によって , CAN コントローラ自身が TxRqst を "1" にセットします。 MDir: メッセージ方向マスクビット MDir 機能 0 アクセプタンスフィルタでメッセージ方向ビット (Dir) をマスクし ます。 1 アクセプタンスフィルタでメッセージ方向ビット (Dir) をマスクし ません。 493 第 24 章 C_CAN <注意事項> MDir ビットは常に "1" を設定してください。 EoB: エンドオブバッファビット ( 詳細は , 「24.3 C_CAN の機能 ■ FIFO バッファ機 能」を参照 ) EoB 機能 0 メッセージオブジェクトは FIFO バッファとして使用され , 最終メッ セージでないことを示します。 1 単一メッセージオブジェクトまたは FIFO バッファの最終メッセー ジオブジェクトを示します。 <注意事項> • EoB ビットは , 2 ∼ 32 メッセージの FIFO バッファを構成するために使用します。 • 単一メッセージオブジェクト (FIFO を使用しない場合 ) は , 必ず EoB ビットに "1" を設 定してください。 NewDat: データ更新ビット NewDat 機能 0 有効なデータがないことを示します。 1 有効なデータがあることを示します。 MsgLst: メッセージロスト MsgLst 機能 0 メッセージロストは発生していません。 1 メッセージロストが発生しています。 <注意事項> MsgLst ビットは Dir ビットが "0" のとき ( 受信方向 ) のみ有効です。 494 第 24 章 C_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 ビットはそのまま保 持し , リモートフレームを無視します。 495 第 24 章 C_CAN TxRqst: 送信要求ビット TxRqst 機能 0 送信アイドル状態 ( 送信中でもないし , 送信待ち状態でもない ) を示 します。 1 送信中または , 送信待ちであることを示します。 DLC3 ∼ DLC0: データ長コード DLC3 ∼ DLC0 機能 0∼8 データフレーム長は 0 ∼ 8 バイトです。 9 ∼ 15 設定禁止です。 設定された場合は , 8 バイト長となります。 <注意事項> データフレームを受信すると DLC ビットには , 受信した DLC が格納されます。 Data 0 ∼ Data7: データ 0 ∼ 7 データ 0 ∼ データ 7 496 機能 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 番目のデータバイト 第 24 章 C_CAN <注意事項> • CAN バスへのシリアル出力は , MSB(bit7 もしくは bit15) より出力します。 • 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバイトに は不定が書き込まれます。 • メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ ますので , 4 バイトのうち , ある一部のデータだけを更新することはできません。 497 第 24 章 C_CAN 24.2.3 メッセージハンドラレジスタ メッセージハンドラレジスタは , すべて読出し専用です。 メッセージオブジェクトの TxRqst, NewDat, IntPnd, MsgVal ビットと IntId ビット は , ステータスを表示します。 ■ CAN 送信要求レジスタ (TREQR1, TREQR2) 図 24.2-14 CAN 送信要求レジスタ (TREQR1, TREQR2) のビット構成 CAN 送信要求レジスタ 2( 上位バイト ) bit 15 14 13 アドレス : ch.0 020080H ch.1 020180H 12 11 10 9 8 TxRqst32 ∼ TxRqst25 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 CAN 送信要求レジスタ 2( 下位バイト ) bit 7 6 TxRqst24 ∼ TxRqst17 アドレス : ch.0 020081H ch.1 020181H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 13 12 11 10 9 8 CAN 送信要求レジスタ 1( 上位バイト ) bit 15 14 アドレス : ch.0 020082H ch.1 020182H TxRqst16 ∼ TxRqst9 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 CAN 送信要求レジスタ 1( 下位バイト ) bit 7 6 TxRqst8 ∼ TxRqst1 アドレス : ch.0 020083H ch.1 020183H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) CAN 送信要求レジスタ (TREQR1, TREQR2) は , 全メッセージオブジェクトの TxRqst ビットを表示します。TxRqst ビットを読み出すことにより , どのメッセージオブジェ クトの送信要求がペンディング中であるかチェックすることができます。 498 第 24 章 C_CAN TxRqst32 ∼ TxRqst1: 送信要求ビット TxRqst 機能 0 送信アイドル状態 ( 送信中でもないし , 送信待ち状態でもない ) を示 します。 1 送信中または送信待ちであることを示します。 TxRqst ビットのセット / リセット条件を以下に示します。 • セット条件 - IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "1" を設定し , IFx コマ ンド要求レジスタへの書込みにより特定オブジェクトの TxRqst にセットでき ます。 - IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0", IFx メッセージ制 御レジスタの TxRqst に "1" を設定した場合 , IFx コマンド要求レジスタへの書 込みにより特定オブジェクトの TxRqst にセットできます。 - Dir ビットが "1", RmtEn ビットを "1" に設定し , アクセプタンスフィルタを通 過したリモートフレームの受信によりセットされます。 • リセット条件 - IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0", IFx メッセージ制 御レジスタの TxRqst に "0" を設定した場合 , IFx コマンド要求レジスタへの書 込みにより特定オブジェクトの TxRqst をリセットできます。 - フレームの送信が正常終了するとリセットされます。 - Dir が "1", RmtEN が "0", UMask が "1" の場合 , アクセプタンスフィルタを通過 したリモートフレームの受信によりリセットされます。 32 メッセージバッファ以上を搭載する CAN マクロにおける送信要求ビットの確認 については以下の表を参照してください。 レジスタ ビット addr + 0 addr + 1 addr + 2 addr + 3 TREQR4, TREQR3 TxRqst 64 ∼ TxRqst33 ( アドレス 84H) TxRqst64 ∼ TxRqst57 TxRqst56 ∼ TxRqst49 TxRqst48 ∼ TxRqst41 TxRqst40 ∼ TxRqst33 TREQR6, TREQR5 TxRqst 96 ∼ TxRqst65 ( アドレス 88H) TxRqst96 ∼ TxRqst89 TxRqst88 ∼ TxRqst81 TxRqst80 ∼ TxRqst73 TxRqst72 ∼ TxRqst65 TREQ8, TREQR7 TxRqst 128 ∼ TxRqst97 ( アドレス 8CH) TxRqst128 ∼ TxRqst121 TxRqst120 ∼ TxRqst113 TxRqst112 ∼ TxRqst105 TxRqst104 ∼ TxRqst97 499 第 24 章 C_CAN ■ CAN データ更新レジスタ (NEWDT1, NEWDT2) 図 24.2-15 CAN データ更新レジスタ (NEWDT1, NEWDT2) のビット構成 CAN データ更新レジスタ 2( 上位バイト ) bit 15 14 13 12 11 10 9 8 NewDat32 ∼ NewDat25 アドレス : ch.0 020090H ch.1 020190H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 CAN データ更新レジスタ 2( 下位バイト ) bit 7 6 NewDat24 ∼ NewDat17 アドレス : ch.0 020091H ch.1 020191H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 13 12 11 10 9 8 CAN データ更新レジスタ 1( 上位バイト ) bit 15 14 NewDat16 ∼ NewDat9 アドレス : ch.0 020092H ch.1 020192H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 5 4 3 2 1 0 CAN データ更新レジスタ 1( 下位バイト ) bit 7 6 NewDat8 ∼ NewDat1 アドレス : ch.0 020093H ch.1 020193H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) CAN データ更新レジスタ (NEWDT1, NEWDT2) は , 全メッセージオブジェクトの NewDat ビットを表示します。NewDat ビットを読み出すことにより , どのメッセージ オブジェクトのデータが更新されたかチェックすることができます。 NewDat32 ∼ NewDat1: データ更新ビット NewDat32 ∼ NewDat1 500 機能 0 有効なデータがないことを示します。 1 有効なデータがあることを示します。 第 24 章 C_CAN NewDat ビットのセット / リセット条件を以下に示します。 • セット条件 - IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの NewDat に "1" を設定して , IFx コマンド要求レジスタの書込みにより特定オブ ジェクトにセットできます。 - アクセプタンスフィルタを通過したデータフレームの受信によりセットされ ます。 - Dir が "1", RmtEN が "0", UMask が "1" の場合 , アクセプタンスフィルタを通過 したリモートフレームの受信によりセットされます。 • リセット条件 - IFx コマンドマスクレジスタの WR/RD に "0", NewDat に "1" を設定した場合 , IFxコマンド要求レジスタの書込みにより特定オブジェクトのNewDatをリセッ トできます。 - IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの NewDat を "0" に設定した場合 , IFx コマンド要求レジスタの書込みにより特定 オブジェクトの NewDat をリセットできます。 - 送信用シフトレジスタ ( 内部レジスタ ) へデータを転送終了後 , リセットされ ます。 32 メッセージバッファ以上を搭載する CAN マクロにおけるデータ更新ビットの確 認については以下の表を参照してください。 レジスタ ビット addr + 0 addr + 1 addr + 2 addr + 3 NEWDT4, NEWDT3 NewDat 64 ∼ NewDat33 ( アドレス 94H) NewDat64 ∼ NewDat57 NewDat56 ∼ NewDat49 NewDat48 ∼ NewDat41 NewDat40 ∼ NewDat33 NEWDT6, NEWDT5 NewDat 96 ∼ NewDat65 ( アドレス 98H) NewDat96 ∼ NewDat89 NewDat88 ∼ NewDat81 NewDat80 ∼ NewDat73 NewDat72 ∼ NewDat65 NEWDT8, NEWDT7 NewDat 128 ∼ NewDat97 ( アドレス 9CH) NewDat128 ∼ NewDat121 NewDat120 ∼ NewDat113 NewDat112 ∼ NewDat105 NewDat104 ∼ NewDat97 501 第 24 章 C_CAN ■ CAN 割込みペンディングレジスタ (INTPND1, INTPND2) 図 24.2-16 CAN 割込みペンディングレジスタ (INTPND1, INTPND2) のビット構成 CAN 割込みペンディングレジスタ 2( 上位バイト ) bit 15 14 13 アドレス : ch.0 0200A0H ch.1 0201A0H 12 11 10 9 8 IntPnd32 ∼ IntPnd25 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 0 CAN 割込みペンディングレジスタ 2( 下位バイト ) bit 7 6 5 IntPnd24 ∼ IntPnd17 アドレス : ch.0 0200A1H ch.1 0201A1H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 12 11 10 9 8 CAN 割込みペンディングレジスタ 1( 上位バイト ) bit 15 14 13 IntPnd16 ∼ IntPnd9 アドレス : ch.0 0200A2H ch.1 0201A2H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 0 CAN 割込みペンディングレジスタ 1( 下位バイト ) bit 7 6 5 IntPnd8 ∼ IntPnd1 アドレス : ch.0 0200A3H ch.1 0201A3H リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) CAN 割込みペンディングレジスタ (INTPND1, INTPND2) は , 全メッセージオブジェク トの IntPnd ビットを表示します。IntPnd ビットを読み出すことにより , どのメッセー ジオブジェクトが割込みペンディング中であるかチェックすることができます。 IntPnd32 ∼ IntPnd1: 割込みペンディングビット IntPnd32 ∼ IntPnd1 502 機能 0 割込み要因がありません。 1 割込み要因があります。 第 24 章 C_CAN IntPnd ビットのセット / リセット条件を以下に示します。 • セット条件 - TxIE が "1" にセットされている場合 , フレームの正常送信完了によりセットさ れます。 - RxIE が "1" にセットされている場合 , アクセプタンスフィルタを通過したフ レームの正常受信完了によりセットされます。 - IFx コマンドマスクレジスタの WR/RD に "1", Control に "1", IFx メッセージ制 御レジスタの IntPnd に "1" を設定して , IFx コマンド要求レジスタ の書込みに より 特定オブジェクトの IntPnd にセットできます。 • リセット条件 - IFx コマンドマスクレジスタの WR/RD に "0", CIP に "1" を設定した場合 , IFx コマンド要求レジスタの書込みにより特定オブジェクトの IntPnd をリセッ トできます。 - IFx コマンドマスクレジスタの WR/RD に "1", Control に "1", IFx メッセージ制 御レジスタの IntPnd に "0" を設定して , IFx コマンド要求レジスタの書込みに より 特定オブジェクトの IntPnd をリセットできます。 32 メッセージバッファ以上を搭載する CAN マクロにおける割込みペンディング ビットの確認については以下の表を参照してください。 レジスタ ビット addr + 0 addr + 1 addr + 2 addr + 3 INTPND4, INTPND3 IntPnd 64 ∼ IntPnd33 ( アドレス A4H) IntPnd64 ∼ IntPnd57 IntPnd56 ∼ IntPnd49 IntPnd48 ∼ IntPnd41 IntPnd40 ∼ IntPnd33 INTPND6, INTPND5 IntPnd 96 ∼ IntPnd65 ( アドレス A8H) IntPnd96 ∼ IntPnd89 IntPnd88 ∼ IntPnd81 IntPnd80 ∼ IntPnd73 IntPnd72 ∼ IntPnd65 INTPND8, INTPND7 IntPnd 128 ∼ IntPnd97 ( アドレス ACH) IntPnd128 ∼ IntPnd121 IntPnd120 ∼ IntPnd113 IntPnd112 ∼ IntPnd105 IntPnd104 ∼ IntPnd97 503 第 24 章 C_CAN ■ CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) 図 24.2-17 CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) のビット構成 CAN メッセージ有効レジスタ 2( 上位バイト ) bit 15 14 13 アドレス : ch.0 0200B0H ch.1 0201B0H 12 11 10 9 8 MsgVal32 ∼ MsgVal25 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 0 CAN メッセージ有効レジスタ 2( 下位バイト ) bit 7 6 5 アドレス : ch.0 0200B1H ch.1 0201B1H MsgVal24 ∼ MsgVal17 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 12 11 10 9 8 CAN メッセージ有効レジスタ 1( 上位バイト ) bit 15 14 13 アドレス : ch.0 0200B2H ch.1 0201B2H MsgVal16 ∼ MsgVal9 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) 4 3 2 1 0 CAN メッセージ有効レジスタ 1( 下位バイト ) bit 7 6 5 アドレス : ch.0 0200B3H ch.1 0201B3H MsgVal8 ∼ MsgVal1 リード / ライト (R) (R) (R) (R) (R) (R) (R) (R) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) は , 全メッセージオブジェクト の MsgVal ビットを表示します。MsgVal ビットを読み出すことにより , どのメッセー ジオブジェクトが有効であるかチェックすることができます。 504 第 24 章 C_CAN MsgVal32 ∼ MsgVal1: メッセージ有効ビット MsgVal32 ∼ MsgVal1 機能 0 メッセージオブジェクトは無効です。 メッセージの送受信は行いません。 1 メッセージオブジェクトは有効です。 メッセージの送受信が可能となります。 MsgVal ビットのセット / リセット条件を以下に示します。 • セット条件 IFx アービトレーションレジスタ 2 の MsgVal に "1" を設定し , IFx コマンド要求 レジスタへの書込みにより特定オブジェクトの MsgVal をセットできます。 • リセット条件 IFx アービトレーションレジスタ 2 の MsgVal に "0" を設定し , IFx コマンド要求 レジスタの書込みにより特定オブジェクトの MsgVal をリセットできます。 32 メッセージバッファ以上を搭載する CAN マクロにおけるメッセージ有効ビット の確認については以下の表を参照してください。 レジスタ ビット addr + 0 addr + 1 addr + 2 addr + 3 MSGVAL4, MSGVAL3 MsgVal 64 ∼ MsgVal33 ( アドレス A4H) MsgVal64 ∼ MsgVal57 MsgVal56 ∼ MsgVal49 MsgVal48 ∼ MsgVal41 MsgVal40 ∼ MsgVal33 MSGVAL6, MSGVAL5 MsgVal 96 ∼ MsgVal65 ( アドレス A8H) MsgVal96 ∼ MsgVal89 MsgVal88 ∼ MsgVal81 MsgVal80 ∼ MsgVal73 MsgVal72 ∼ MsgVal65 MSGVAL8, MSGVAL7 MsgVal 128 ∼ MsgVal97 ( アドレス ACH) MsgVal128 ∼ MsgVal121 MsgVal120 ∼ MsgVal113 MsgVal112 ∼ MsgVal105 MsgVal104 ∼ MsgVal97 505 第 24 章 C_CAN CAN プリスケーラレジスタ (CANPRE) 24.2.4 CAN プリスケーラレジスタは , CAN インタフェースに供給するクロックの分周比を 定義するものです。本レジスタの値を変更する場合は , CAN 制御レジスタ (CTRLR) の初期化ビット (Init) を "1" にセットし , すべてのバス動作を停止してください。 ■ CAN プリスケーラレジスタ (CANPRE) 図 24.2-18 CAN プリスケーラレジスタ (CANPRE) のビット構成 CAN プリスケーラレジスタ bit アドレス : 0001A8H 15 14 13 12 - - - - 11 10 9 8 CANPRE CANPRE CANPRE CANPRE 3 2 1 0 リード / ライト (R) (R) (R) (R) (R/W) (R/W) (R/W) (R/W) 初期値 (0) (0) (0) (0) (0) (0) (0) (0) [bit15 ∼ bit12] (Reserved bit) 本ビットは "0" が読み出され , 書込みはレジスタに反映されません。 [bit11 ∼ bit8] CANPRE3 ∼ CANPRE0: CAN プリスケーラ設定ビット CANPRE3 ∼ CANPRE0 機能 0000B 設定禁止 0001B CAN クロックとしてシステムクロックの 1/2 周期が選択されます。 001XB CAN クロックとしてシステムクロックの 1/4 周期が選択されます。 01XXB CAN クロックとしてシステムクロックの 1/8 周期が選択されます。 1000B CAN クロックとしてシステムクロックの 2/3 周期が選択されます。 クロックのデューティ比は 67% となります。 1001B CAN クロックとしてシステムクロックの 1/3 周期が選択されます。 101XB CAN クロックとしてシステムクロックの 1/6 周期が選択されます。 11XXB CAN クロックとしてシステムクロックの 1/12 周期が選択されます。 <注意事項> • CANプリスケーラ設定ビットの変更は, CAN制御レジスタの初期化ビットを"1"にセッ トし , すべてのバス動作を停止させた後に行ってください。 • 本レジスタの設定により CAN インタフェースに供給するクロックは 16MHz 以下とし てください。 506 第 24 章 C_CAN 24.3 C_CAN の機能 CAN コントローラの動作と機能について説明します。 ■ メッセージオブジェクト メッセージ RAM のメッセージオブジェクト設定 (MsgVal, NewDat, IntPnd, TxRqst ビッ トを除く ) は , ハードウェアリセットによって初期化されません。そのため , メッセー ジオブジェクトを CPU で初期化するか , MsgVal ビットを無効 (MsgVal=0) に設定して ください。また , CAN ビットタイミングレジスタ (BTR) と CAN プリスケーラ拡張レ ジスタ (BRPER) の設定は , CAN 制御レジスタの Init ビットが "1" , CCE ビットが "1" の とき行ってください。 メッセージオブジェクトの設定は , メッセージインタフェースレジスタ (IFx マスクレ ジスタ , IFx アービトレーションレジスタ , IFx メッセージ制御レジスタ , IFx データレ ジスタ ) に設定した後 , IFx コマンド要求レジスタへのメッセージ番号の書込みにより , そのインタフェースレジスタのデータが指定されたメッセージオブジェクトへ転送さ れます。 CAN 制御レジスタの Init ビットが "0" にクリアされると CAN コントローラは動作を開 始します。アクセプタンスフィルタを通過した受信メッセージは , メッセージ RAM へ 格納されます。送信要求が保留されているメッセージは , メッセージ RAM から CAN コントローラのシフトレジスタへ転送され , CAN バスへの送信が行われます。 CPU は , メッセージインタフェースレジスタ経由で受信メッセージの読出しおよび送 信メッセージの更新を行います。また , CAN 制御レジスタおよび IFx メッセージ制御 レジスタ ( メッセージオブジェクト ) の設定に応じて , CPU への割込みが行われます。 ● メッセージ RAM とのデータ送受信 メッセージインタフェースレジスタとメッセージ RAM とのデータ転送を開始すると , IFx コマンド要求レジスタの BUSY ビットを "1" にセットします。転送完了後 , BUSY ビットは "0" にクリアされます ( 図 24.3-1 を参照 )。 IFx コマンドマスクレジスタは, 1つのメッセージオブジェクトの全データ転送か , デー タの部分転送を行うかを設定します。メッセージ RAM の構造上 , メッセージオブジェ クトの単一ビット / バイトの書込みは不可能となっており , 常に 1 つのメッセージオブ ジェクトの全データをメッセージ RAM へ書き込みます。したがって , メッセージイン タフェースレジスタからメッセージ RAM へのデータ転送は , リードモディファイライ ト (RMW) サイクルを実行しています。 507 第 24 章 C_CAN 図 24.3-1 メッセージインタフェースレジスタとメッセージ RAM のデータ転送 スタート NO IFxコマンド要求レジスタへ 書込み YES BUSY = 1 割込み = 0 NO YES WR/RD = 1 メッセージRAMからメッセージインタフェース レジスタへ読出し メッセージRAMからメッセージインタフェース レジスタへ読出し メッセージインタフェースレジスタからメッセージ RAMへの書込み BUSY = 0 割込み = 1 ■ メッセージ送信動作 ● メッセージ送信 メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送がない場合 , CAN メッセージ有効レジスタの MsgVal ビットと CAN 送信要求レジスタの TxRqst ビッ トを比較します。送信要求を保留している中で , 最高優先度の有効であるメッセージオ ブジェクトが送信用のシフトレジスタへ転送されます。そのときメッセージオブジェ クトの NewDat ビットは "0" にリセットされます。 正常に送信が完了したとき , メッセージオブジェクトに新たなデータがない (NewDat=0) 場合は , TxRqst ビットは "0" にリセットされます。TxIE が "1" にセットされている場合 は , 送信成功後に IntPnd ビットが "1" にセットされます。CAN コントローラが CAN バ ス上で調停に負けた場合 , あるいは転送中にエラーが発生した場合は , CAN バスがアイ ドルになり次第 , 直ちにメッセージの再送信が行われます。 ● 送信優先度 メッセージオブジェクトの送信優先度は , メッセージ番号によって決定します。メッ セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32( 搭載している最 大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 2 つ以上の送 信要求が保留されていると , 対応するメッセージオブジェクトの小さい番号順に転送 が行われます。 508 第 24 章 C_CAN ● 送信メッセージオブジェクトの設定 図 24.3-2 に送信メッセージオブジェクトの初期化を示します。 図 24.3-2 送信メッセージオブジェクトの初期化 MsgVal Arb Data Mask EoB Dir 1 appl. appl. appl. 1 1 New Dat MsgLst 0 0 RxIE TxIE 0 appl. Int Pnd RmtEn 0 TxRqst 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 を持つリモートフレームを受信し , その後 , 送信を 許可 (TxRqst ビットに "1" をセット ) するために使用されます。詳細は , 「■メッセージ 受信動作」のリモートフレームを参照してください。 <注意事項> 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" にリセットされます。 509 第 24 章 C_CAN <注意事項> • データを更新する場合は , IFx データレジスタ A もしくは IFx データレジスタ B の 4 バ イト単位で行ってください。 • データのみを更新する場合は , NewDat ビットと TxRqst ビットに "1" を設定してくだ さい。 ■ メッセージ受信動作 ● 受信メッセージのアクセプタンスフィルタ メッセージのアービトレーション / コントロールフィールド (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" にリセットされます。これは , リモートフ レーム送信処理中に要求データフレームを受信した場合 , 送信処理を防ぐために行わ れます。 510 第 24 章 C_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" に セットされます。メッセージオブジェクトのデータフィールドは変更されません。 ● 受信メッセージオブジェクトの設定 図 24.3-3 に受信メッセージオブジェクトの初期化を示します。 図 24.3-3 受信メッセージオブジェクトの初期化 MsgVal Arb Data Mask EoB Dir 1 appl. appl. appl. 1 0 New Dat MsgLst 0 0 RxIE TxIE appl. 0 Int Pnd RmtEn 0 0 TxRqst 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 を持つデータフレームの受信を許可するために 使用します。詳細は , 「■メッセージ受信動作」のデータフレーム受信を参照してくだ さい。 511 第 24 章 C_CAN <注意事項> IFx マスクレジスタの Dir ビットのマスク設定は禁止です。 ● 受信メッセージの処理 CPU はメッセージインタフェースレジスタを介して , 受信メッセージをいつでも読み 出すことが可能です。 通常 , IFx コマンドマスクレジスタに "007FH" を書き込みます。次にメッセージオブ ジェクトのメッセージ番号を IFx コマンド要求レジスタに書き込みます。この手順に よって , 指定されたメッセージ番号の受信メッセージをメッセージ RAM からメッセー ジインタフェースレジスタに転送します。このとき , IFx コマンドマスクレジスタの設 定により , メッセージオブジェクトの NewDat ビットと IntPnd ビットを "0" にクリアす ることが可能です。 受信メッセージの処理は , アクセプタンスフィルタにより調停ビットが一致した場合 , メッセージを受信します。メッセージオブジェクトでアクセプタンスフィルタのマス クを使用している場合は , マスク設定されたデータがアクセプタンスフィルタから除 外され , メッセージを受信するか判断します。 NewDat ビットは , メッセージオブジェクトが最後に読み出されてから , 新しいメッ セージが受信されたかを示します。 MsgLst ビットは , 受信したデータがメッセージオブジェクトから読み出されない状態 で次の受信データを受信したために前のデータを失ってしまったことを示します。 MsgLst ビットは自動的にリセットされません。 リモートフレーム送信処理中に , アクセプタンスフィルタにより一致するデータフ レームが受信された場合には , TxRqst ビットは自動的に "0" にリセットされます。 ■ FIFO バッファ機能 受信メッセージ処理におけるメッセージオブジェクトの FIFO バッファの構成およ び動作について説明します。 ● FIFO バッファの構成 FIFOバッファの受信メッセージオブジェクトの構成は, EoBビットを除いて, 受信メッ セージオブジェクトの構成と同じです (「■メッセージ受信動作の ●受信メッセージ オブジェクトの設定」を参照 )。 FIFO バッファは , 2 つ以上の受信メッセージオブジェクトを連結して使用します。こ の FIFO バッファへ受信メッセージを格納するためには , 受信メッセージオブジェクト のIDおよびマスクを使用する場合には, それらの設定を一致させなければなりません。 FIFO バッファの最初の受信メッセージオブジェクトは , 優先順位の高いメッセージ番 号の小さい番号となります。FIFO バッファの最後の受信メッセージオブジェクトは , EoB ビットに "1" をセットし , FIFO バッファブロックの終わりを示す必要があります (FIFO バッファ構成を使用するメッセージオブジェクトの最終メッセージオブジェク ト以外は , EoB ビットに "0" を設定してください )。 512 第 24 章 C_CAN <注意事項> • FIFO バッファで使用するメッセージオブジェクトの ID とマスク設定は必ず同じ設定 にしてください。 • FIFO バッファを使用しない場合は , 必ず EoB ビットに "1" を設定してください。 ● FIFO バッファによるメッセージ受信 受信メッセージが FIFO バッファの ID と受信メッセージの識別が一致した場合は , 最 小メッセージ番号の FIFO バッファの受信メッセージオブジェクトへ格納されます。 FIFO バッファの受信メッセージオブジェクトへメッセージが格納されると , この受信 メッセージオブジェクトの NewDat ビットが "1" にセットされます。EoB ビットが "0" の受信メッセージオブジェクトへ NewDat ビットをセットすると , CAN コントローラ による FIFO バッファ書込みは最後の受信メッセージオブジェクト (EoB ビット =1) に 到達するまで受信メッセージオブジェクトを保護し , 書込みは行われません。 最終FIFOバッファまで有効なデータが格納された状態で受信メッセージオブジェクト の NewDat ビットに "0" 書込み ( 書込み保護の解除 ) が行われないと , 次に受信された メッセージが最終メッセージオブジェクトへ書き込まれ , メッセージは上書きされて しまいます。 ● FIFO バッファからの読出し CPU が受信メッセージオブジェクトの内容を読み出すには , IFx コマンド要求レジスタ へ受信メッセージ番号を書き込むことによって , メッセージインタフェースレジスタ に転送され読み出すことができます。このとき , IFx コマンドマスクレジスタの WR/RD を "0"( リード ) および TxRqst/NewDat=1, ClrIntPnd=1 に設定し , NewDat ビットと IntPnd ビットを "0" にリセットしてください。 FIFO バッファの機能を保証するために , FIFO バッファの受信メッセージオブジェクト は , 必ず最小のメッセージ番号から読み出してください。 図 24.3-4 に FIFO バッファで連結されるメッセージオブジェクトの CPU の処理を示し ます。 513 第 24 章 C_CAN 図 24.3-4 FIFO バッファの CPU 処理 スタート メッセージ割込み CAN割込みレジスタ 読出し 8000 H 0000 H CAN割込みレジスタ値 8000 H , 0000 H以外 状態割込み処理実行 終了 (通常処理) メッセージ番号 = CAN割込みレジスタ値 IFxコマンド要求レジスタ(メッセージ番号) 書込み メッセージインタフェースレジスタ読出し: (リセット NewDat=0, IntPnd=0) IFxメッセージ制御レジスタ読出し NewDat = 1 NO YES IFxメッセージデータレジスタA,B 読出し YES EoB = 1 NO メッセージ番号 = メッセージ番号+1 ■ 割込み機能 複数の割込みが保留中である場合 , CAN 割込みレジスタは , 保留中の最高優先度の割 込みコードを示します。割込みコードが設定された時間順は無視され , 常に優先順位の 高い割込みコードが表示されます。CPU がクリアするまで割込みコードは保持されま す。 ステータス割込み (IntId ビットの 8000H) は , 最高優先度となります。 メッセージ割込みの優先度は , メッセージ番号の小さいメッセージが高く , 大きいメッ セージが低くなります。 メッセージ割込みは , メッセージオブジェクトの IntPnd ビットのクリアによってクリア されます。ステータス割込みは , CAN ステータスレジスタの読出しでクリアされます。 514 第 24 章 C_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 割込みペンディ ングレジスタで確認することができます (「24.2.3 メッセージハンドラレジスタ」を参 照 )。メッセージ割込みをクリアする場合 , 同時にメッセージデータを読み出すことは 可能であり , CAN 割込みレジスタで示されているメッセージ割込みをクリアすると次 に優先度の高い割込みが CAN 割込みレジスタにセットされ , 次の割込み処理を待つこ とになります。割込みがない場合には , CAN 割込みレジスタは 0000H を示します。 <注意事項> • ステータス割込み (IntId=8000H) は , CAN ステータスレジスタの読出しアクセスにより 割込みがクリアされます。 • CANステータスレジスタの書込みアクセスによるステータス割込み (IntId=8000H) は発 生しません。 ■ ビットタイミング CAN ネットワークの各 CAN ノードは , それぞれクロック発振器 ( 通常は水晶発振器 ) を持っています。ビットタイムのタイムパラメータは , CAN ノードごとに個別に構成 できます。CAN ノードの発振周期 (fosc) が異なっていても , 共通のビットレートを作 り出せます。 これらの発振器の周波数は , 温度や電圧の変化 , コンポーネントの悪化により少し異な ります。その変動が発振器の許容範囲 (df) 内である限りは , CAN ノードはビットスト リームへ再同期化することで異なるビットレートを保証できます。 CAN 仕様に応じて , ビットタイムは 4 つの区分に分けられ ( 図 24.3-5 を参照 ), 同期化 部 (Sync_Seg), 伝送時間部 (Prop_Seg), フェーズバッファ部 1 (Phase_Seg1), フェーズバッ 515 第 24 章 C_CAN ファ部 2(Phase_Seg2) で構成されます。それぞれの区分は , プログラマブルな時間量 ( 表 24.3-1 参照 ) からなります。ビットタイムの基本単位時間 (tq) は , CAN コントロー ラのシステムクロック fsys とボーレートプリスケーラ (BRP) で定義されます。 tq = BRP / fsys CAN のシステムクロック fsys は , クロック入力の周波数 ( 図 24.1-1 を参照 ) になりま す。同期化部の Sync_Seg は , CAN バスのエッジを期待するビットタイム内のタイミン グとなります。伝送時間部の Prop_Seg は , CAN ネットワーク内の物理的遅延時間を保 証します。フェーズバッファ部の Phase_Seg1, Phase_Seg2 は , サンプリングポイントを指 定します。再同期化ジャンプ幅 (SJW) は , エッジフェーズエラーを保証するために再 同期化時のサンプリングポイントの移動幅を定義します。 図 24.3-5 ビットタイミング 1ビットタイム(BT) Sync _Seg Prop_Seg Phase_Seg1 1 単位時間 (tq) Phase_Seg2 サンプリングポイント 表 24.3-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 再同期化ジャンプ幅 どちらかのフェーズバッファ部より長くなることはありません。 516 機能 時間量の長さ tq の定義 固定長 システムクロックへの同期化 第 24 章 C_CAN 図 24.3-6 に CAN コントローラにおけるビットタイミングを示します。 図 24.3-6 CAN コントローラにおけるビットタイミング 1ビットタイム(BT) Sync _Seg TEG1 1 単位時間 (tq) TEG2 サンプリングポイント 表 24.3-2 CAN コントローラのパラメータ パラメータ レンジ 機能 BRPE, BRP [0 ∼ 1023] Sync_Seg 1 tq TSEG1 [1 ∼ 15] tq サンプリングポイント前のタイムセグメントです。 Prop_Seg と Phase_Seg1 に相当します。 ビットタイミングレジスタにより制御可能です。 TSEG2 [0 ∼ 7] tq サンプリングポイント後のタイムセグメントです。 Phase_Seg2 に相当します。 ビットタイミングレジスタにより制御可能です。 SJW [0 ∼ 3] tq 再同期化ジャンプ幅です。 ビットタイミングレジスタにより制御可能です。 時間量の長さ tq の定義 ビットタイミングレジスタおよびプリスケーラ拡張レジスタにより 最大 1024 までプリスケーラを拡張できます。 システムクロックへの同期化 固定長 各パラメータの関係を以下に示します。 tq = ([BRPE, BRP] + 1) / fsys BT = Sync_Seg + TEG1 + TEG2 = (1+ (TSEG1 + 1) + (TSEG2 + 1)) × tq = (3 + TSEG1 + TSEG2) × tq 517 第 24 章 C_CAN ■ テストモード テストモードの設定方法および動作について説明します。 ● テストモード設定 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 バス上のトラフィック解析ができます。 図 24.3-7 にサイレントモードでの信号 CAN_TX と CAN_RX の CAN コントローラへの 接続を示します。 図 24.3-7 サイレントモードでの CAN コントローラ CAN_TX CAN_RX CANコントローラ Silentビット = 1 Tx Rx CAN Core ● ループバックモード CAN テストレジスタの LBack ビットを "1" にセットすることにより , CAN コントロー ラをループバックモードに設定できます。 ループバックモードは , 自己診断機能に使用できます。 ループバックモードでは , CAN コントローラ内部で TX 側と RX 側が接続され , CAN コントローラが送信したメッセージを RX 側で受信したメッセージとして扱い , アクセ 518 第 24 章 C_CAN プタンスフィルタを通過したメッセージを受信バッファに格納します。 図 24.3-8 にループバックモードでの信号 CAN_TX と CAN_RX の CAN コントローラへ の接続を示します。 図 24.3-8 ループバックモードの CAN コントローラ CAN_TX CAN_RX Tx Rx CANコントローラ CAN Core <注意事項> 外部信号から独立するため , データ / リモートフレームのアクノリッジスロットでのドミ ナントビットはサンプリングされません。そのため , 通常 , CAN コントローラはアクノ リッジエラーを発生しますが , 本テストモードではアクノリッジエラーを発生しないよう にしています。 ● サイレントモードとループバックモードの結合 CAN テストレジスタの LBack ビットと Silent ビットを同時に "1" にセットすることに より , ループバックモードとサイレントモードを結合させ動作することが可能です。 このモードは , 「ホットセルフテスト」用に使用できます。「ホットセルフテスト」と は , CAN コントローラがループバックモードでテストしたときに , CAN_TX 端子には レセッシブの固定出力および CAN_RX 端子からの入力は無効となりますので CAN シ ステムの動作に影響がないことを意味しています。 図 24.3-9 にサイレントモードとループバックモードを結合したときの信号 CAN_TX と CAN_RX の CAN コントローラへの接続を示します。 519 第 24 章 C_CAN 図 24.3-9 サイレントモードとループバックモードの結合された CAN コントローラ CAN_TX CAN_RX CANコントローラ LBackビットとSilentビット = 1 Tx CAN Core 520 Rx 第 24 章 C_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" として読み出さ れます。 521 第 24 章 C_CAN ● 端子 CAN_TX のソフトフェア制御 CAN 送信端子である CAN_TX には , 4 つの出力機能があります。 • シリアルデータ出力 ( 通常出力 ) • CAN コントローラのビットタイミングをモニタするための CAN サンプリングポイ ント信号出力 • ドミナント固定出力 • レセッシブ固定出力 ドミナントおよびレセッシブの固定出力は , CAN 受信端子の CAN_RX モニタ機能とと もに , CAN バスの物理層のチェックに使用することができます。 CAN_TX 端子の出力モードは , CAN テストレジスタの Tx1 と Tx0 ビットにより制御可 能です。 <注意事項> CAN メッセージ送信もしくはループバックモード , サイレントモード , ベーシックモード を使用する際は CAN_TX をシリアルデータ出力に設定する必要があります。 ■ ソフトウェア初期化 ソフトウェアでの初期化要因を以下に示します。 • ハードウェアリセット • 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 からのアクセスでしか実行できません。 522 第 24 章 C_CAN Init ビットが "0" にリセットされてから , 連続した 11 ビットのレセッシブの発生 ( =バ スアイドル ) を待つことにより , CAN バス上のデータ転送と同期化した後 , メッセージ の転送が行われます。 通常動作中にメッセージオブジェクトのマスク , ID, XTD, EoB, RmtEn を変更する場合 , MsgVal を無効に設定してから変更してください。 ■ CAN クロックプリスケーラ PLL 動作中の CAN クロック切換えについて説明します。 ● ブロックダイヤグラム CAN クロックプリスケーラの概要について以下のブロックダイヤグラムに示します。 CAN クロックプリスケーラレジスタの CANPRE ビットの設定に従い , CAN インタ フェースに供給されるクロックの分周比が決定されます。 図 24.3-10 CAN クロックプリスケーラのブロックダイヤグラム PLL CANクロック1 クロック 分周器 CANクロック0 X0 Div by CANPRE 523 第 24 章 C_CAN ● クロック切り換え手順 CAN クロックプリスケーラを使用したクロックの切換え方法については , 以下の手順 を推奨します。 図 24.3-11 CAN クロックプリスケーラを使用したクロックの切換え手順 CAN クロックの切換え 発振器 -> PLL CAN クロックの切換え PLL -> 発振器 CAN 制御レジスタの Init ビットをセット CAN 制御レジスタの Init ビットをセット PLL を有効にする プリスケーラ値をセット PLL ロック時間を確保 PLL を無効にする プリスケーラ値をセット CAN 制御レジスタの Init ビットを初期化 CAN 制御レジスタの Init ビットを初期化 524 第 24 章 C_CAN ● CAN クロックプリスケーラ設定 CAN クロックプリスケーラに設定可能な値を示します。 CAN インタフェースに供給されるクロックは , システムクロックを CAN クロックプリ スケーラの設定値に従い分周されたものとなります。 CANPRE[3:0] 機能 システムクロック: 32MHz 時 0000B 設定禁止 0001B CAN クロックとしてシステムクロックの 1/2 周期が選択さ れます。 16MHz 001XB CAN クロックとしてシステムクロックの 1/4 周期が選択さ れます。 8MHz 01XXB CAN クロックとしてシステムクロックの 1/8 周期が選択さ れます。 4MHz 1000B CAN クロックとしてシステムクロックの 2/3 周期が選択さ れます。 クロックのデューティ比は 67% となります。 21.33MHz ( 設定禁止 ) 1001B CAN クロックとしてシステムクロックの 1/3 周期が選択さ れます。 10.67MHz 101XB CAN クロックとしてシステムクロックの 1/6 周期が選択さ れます。 5.33MHz 11XXB CAN クロックとしてシステムクロックの 1/12 周期が選択 されます。 2.67MHz 設定禁止 <注意事項> • CANプリスケーラ設定ビットの変更は, CAN制御レジスタの初期化ビットを"1"にセッ トし , すべてのバス動作を停止させた後に行ってください。 • 本レジスタの設定により CAN インタフェースに供給するクロックは 16MHz 以下とし てください。 525 第 24 章 C_CAN 526 第 25 章 LCD コントローラ (LCDC) LCD コントローラ / ドライバ (LCDC) の概要 , レジ スタの構成 / 機能および動作について説明します。 25.1 LCD コントローラの概要 25.2 LCD コントローラのレジスタ 25.3 LCD コントローラの動作 527 第 25 章 LCD コントローラ (LCDC) 25.1 LCD コントローラの概要 LCD コントローラ / ドライバの特長とブロックダイヤグラムについて説明します。 ■ LCD コントローラの特長 LCD コントローラは , 表示用データメモリの内容をコモン出力とセグメント出力に よって LCD に直接表示します。 • LCD 駆動電源の分割抵抗を内蔵しています。 • 最大で 4 本のコモン出力 (COM0 ∼ COM3 端子 ) と 32 本のセグメント出力 (SEG0 ∼ SEG31 端子 ) が使用できます。 • 16 バイトの表示用データメモリを内蔵しています。 • デューティは , 1/2, 1/3, 1/4 から選択します。バイアスは 1/3 バイアス固定です。 • 駆動クロックには, 発振クロック(HCLK)またはサブクロック(SCLK)を使用します。 • LCD を直接駆動できます。 • COM0 ∼ COM3 端子 , SEG0 ∼ SEG31 端子は , 汎用入出力ポートとして使用できま す(コモン端子切換え レジスタ (LCDMR)とLCDコントローラ制御レジスタ1(LCR1) で切換え )。使用できるバイアス , デューティと使用するコモン出力は表 25.1-1 のと おりです。 表 25.1-1 バイアス , デューティ , コモン出力の組合せ バイアス 1/2 デューティ 出力モード 1/3 デューティ 出力モード 1/4 デューティ 出力モード ○ ○ ○ COM1 出力 , COM0 出力 COM2 出力∼ COM0 出力 COM3 出力∼ COM0 出力 1/3 バイアス 528 第 25 章 LCD コントローラ (LCDC) ■ LCD コントローラのブロックダイヤグラム 図 25.1-1 LCD コントローラのブロックダイヤグラム コモン端子切換えレジスタ(LCDCMR) - - - - COM3 COM2 COM1 COM0 4 LCD制御 レジスタ0 (LCR0) 内部分割抵抗 CSS REV VSEL BK MS1 MS0 FP1 FP0 内部データバス 発振 クロック サブ クロック 2 2 プリス ケーラ タイミング コントローラ 表示用データメモリ (16バイト) 交 流 化 回 路 端子 COM2 端子 SEG0 端子 SEG1 セ グ メ ン ト ド ラ イ バ 端子 SEG2 ・・・ コントローラ部 端子 COM1 ・・・ SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 端子 COM0 端子 COM3 32 6 LCDC制御レジスタ1 (LCR1) コ モ ン ド ラ イ バ 端子 SEG29 端子 SEG30 -:未定義ビット 端子 SEG31 ドライバ部 529 第 25 章 LCD コントローラ (LCDC) 25.2 LCD コントローラのレジスタ LCD コントローラ / ドライバのレジスタの機能について説明します。 ■ LCD コントローラのレジスタ一覧 LCDCMR アドレス : 000098H bit − (R/W) リード / ライト→ (0) 初期値→ LCR0 アドレス : 00009AH bit 15 CSS リード / ライト→ (R/W) (0) 初期値→ LCR1 アドレス : 00009BH 15 bit 7 SEG7 リード / ライト→ (R/W) (0) 初期値→ VRAMn (n=0, 2, 4, 6, 8, 10, 12, 14) bit 15 D15 アドレス : 00009CH(VRAM0) リード / ライト→ (R/W) (X) 00009EH(VRAM2) 初期値→ 0000A0H(VRAM4) 0000A2H(VRAM6) 0000A4H(VRAM8) 0000A6H(VRAM10) 0000A8H(VRAM12) 0000AAH(VRAM14) VRAMn (n=1, 3, 5, 7, 9, 11, 13, 15) bit 7 D07 アドレス : 00009DH(VRAM1) リード / ライト→ (R/W) (X) 00009FH(VRAM3) 初期値→ 0000A1H(VRAM5) 0000A3H(VRAM7) 0000A5H(VRAM9) 0000A7H(VRAM11) 0000A9H(VRAM13) 0000ABH(VRAM15) 530 14 13 − (R/W) (0) − (R/W) (0) 12 11 10 9 8 COM3 COM2 COM1 COM0 − (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) 14 13 12 11 10 9 8 − (R/W) (0) VSEL (R/W) (0) BK (R/W) (1) MS1 (R/W) (0) MS0 (R/W) (0) FP1 (R/W) (0) FP0 (R/W) (0) 6 5 4 3 2 1 0 SEG6 (R/W) (0) SEG5 (R/W) (0) SEG4 (R/W) (0) SEG3 (R/W) (0) SEG2 (R/W) (0) SEG1 (R/W) (0) SEG0 (R/W) (0) 14 D14 (R/W) (X) 13 D13 (R/W) (X) 12 D12 (R/W) (X) 11 D11 (R/W) (X) 10 D10 (R/W) (X) 9 D09 (R/W) (X) 8 D08 (R/W) (X) 6 5 4 3 2 1 0 D06 (R/W) (X) D05 (R/W) (X) D04 (R/W) (X) D03 (R/W) (X) D02 (R/W) (X) D01 (R/W) (X) D00 (R/W) (X) 第 25 章 LCD コントローラ (LCDC) ■ コモン端子切換えレジスタ (LCDCMR) 図 25.2-1 コモン端子切換えレジスタ (LCDCMR) のビット構成 LCDCMR bit アドレス : 000098H 15 − リード / ライト→ (R/W) (0) 初期値→ 14 13 12 − (R/W) (0) − (R/W) (0) 11 10 9 8 COM3 COM2 COM1 COM0 − (R/W) (R/W) (R/W) (R/W) (R/W) (0) (0) (0) (0) (0) [bit15 ∼ bit12] (Reserved bit) "0" 以外 , 書き込まないでください。 [bit11 ∼ bit8]COM3 ∼ COM0 : コモン端子イネーブルビット COM3 COM2 COM1 COM0 コモン出力 0 0 0 0 コモン出力不可 ( 初期値 ) 1 1 1 1 コモン出力可能 上記以外の設定 設定不可 上記の設定により , コモン出力を可能にするか選択します。本品種で LCD を利用す る際は , 必ず LCDCMR = 00001111B の設定を行ってください。 (注意事項) なお , 上記の設定のほかに , 対応する Port Function Register(PFR, EPER) の設定が 必要となります。詳細は , 「第 4 章 I/O ポート」を参照してください。 531 第 25 章 LCD コントローラ (LCDC) ■ LCD コントローラ制御レジスタ 0(LCR0) LCDコントローラ制御レジスタ0(LCR0)は, フレーム周期とフレーム周期発生用クロッ クの選択 , 表示モードと表示 / 非表示の選択 , または駆動電源の制御を行います。 図 25.2-2 LCD コントローラ制御レジスタ 0(LCR0) のビット構成 LCR0 bit アドレス : 00009AH 15 14 13 CSS − (R/W) (0) VSEL BK MS1 MS0 FP1 FP0 (R/W) (0) (R/W) (1) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) リード / ライト→ (R/W) (0) 初期値→ 12 11 10 9 8 [bit15]CSS:フレーム周期発生用クロック選択ビット LCD 表示のフレーム周期を発生するためのクロックを選択します。 CSS 動作 0 LCD コントローラドライバは 発振クロックで動作します。[ 初期値 ] 1 LCD コントローラドライバはサブクロックで動作します。 ( 注意事項 ) • サブクロックモードでは , 発振クロックの発振が停止するため , 発振クロックの 設定では動作しません。 • S サフィックスがある製品 ( 品種名に "S" がついている ) では "1" を設定しない でください。 [bit14] (Reserved bit) "0" 以外 , 書き込まないでください。 [bit13]VSEL:LCD 駆動電源制御ビット 内部分割抵抗の接続または切断を選択します。使用前に必ず "1" にセットしてくだ さい。 VSEL 動作 0 内部分割抵抗を切断します。[ 初期値 ] 1 内部分割抵抗を接続します。 [bit12]BK:ブランキング選択ビット LCD の表示 / 非表示を選択します。セグメント出力が非選択波形 ( 表示条件となら ない波形 ) となり , 非表示になります。 BK 532 動作 0 表示 1 非表示 [ 初期値 ] 第 25 章 LCD コントローラ (LCDC) [bit10, bit11]MS1, MS0:表示モード選択ビット 出力波形のデューティを 3 種類の中から選択して設定します。 設定したデューティ出力モードに対応して , 使用するコモン端子が決まります。 "00B" に設定した場合 , LCD コントローラドライバは表示動作を停止し , コモン / セ グメント端子は "L" レベルを出力します。 MS1 MS0 0 0 LCD 動作停止 0 1 1/2 デューティ出力モード ( 時分割数 =2) 1 0 1/3 デューティ出力モード ( 時分割数 =3) 1 1 1/4 デューティ出力モード ( 時分割数 =4) 動作 [bit8, bit9]FP1, FP0:フレーム周期選択ビット LCD 表示のフレーム周期を 4 種類の中から選択して設定します。 フレーム周波数 [Hz] FP1 FP0 0 メインクロック選択時 (CSS=0) サブクロック選択時 (CSS=1) 0 HCLK/(213 × N) SCLK/(23 × N) 0 1 HCLK/(214 × N) SCLK/(24 × N) 1 0 HCLK/(215 × N) SCLK/(25 × N) 1 1 HCLK/(216 × N) SCLK/(26 × N) HCLK : メインクロック利用時における周辺クロック周波数 SCLK : サブクロック入力周波数 N : 時分割数 ( 表示モード選択ビットの設定による ) ( 注意事項 ) 使用する LCD パネルのフレーム周波数に対応した最適なフレーム周期の設定を 行ってください。 533 第 25 章 LCD コントローラ (LCDC) ■ LCD コントローラ制御レジスタ 1(LCR1) 図 25.2-3 LCD コントローラ制御レジスタ 1(LCR1) のビット構成 LCR1 bit 7 6 5 4 3 2 1 0 SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 リード / ライト→ (R/W) (0) 初期値→ (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) (R/W) (0) アドレス : 00009BH [bit7 ∼ bit0] SEG7 ∼ SEG0 セグメント端子イネーブルビット SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 セグメント出力 0 0 0 0 0 0 0 0 セグメント出力不可 ( 初期値 ) 0 0 0 0 0 0 0 1 SEG00 ∼ SEG03 出力可能 0 0 0 0 0 0 1 1 SEG00 ∼ SEG07 出力可能 0 0 0 0 0 1 1 1 SEG00 ∼ SEG11 出力可能 0 0 0 0 1 1 1 1 SEG00 ∼ SEG15 出力可能 0 0 0 1 1 1 1 1 SEG00 ∼ SEG19 出力可能 0 0 1 1 1 1 1 1 SEG00 ∼ SEG23 出力可能 0 1 1 1 1 1 1 1 SEG00 ∼ SEG27 出力可能 1 1 1 1 1 1 1 1 SEG00 ∼ SEG31 出力可能 上記の設定により , 各セグメント出力を可能にするかを選択します。本品種で , LCD を利用する際には , 必ず , LCR1 = 11111111B の設定を行ってください。 なお , 上記の設定のほかに , 対応する Port Function Register(PFR, EPER) の設定が必 要となります。詳細は , 「第 4 章 I/O ポート」を参照してください。 534 第 25 章 LCD コントローラ (LCDC) ■ 表示用データメモリ (VRAM) 表示用データメモリは , 16 バイトのデータ RAM です。表示用データの設定に使用し ます。 図 25.2-4 表示用データメモリ (VRAM) のビット構成 VRAMn (n=0, 2, 4, 6, 8, 10, 12, 14) bit アドレス : 00009CH(VRAM0) 00009EH(VRAM2) 0000A0H(VRAM4) 0000A2H(VRAM6) 0000A4H(VRAM8) 0000A6H(VRAM10) 0000A8H(VRAM12) 0000AAH(VRAM14) 15 D15 リード / ライト→ (R/W) (X) 初期値→ VRAMn (n=1, 3, 5, 7, 9, 11, 13, 15) bit 7 D07 アドレス : 00009DH(VRAM1) リード / ライト→ (R/W) (X) 00009FH(VRAM3) 初期値→ 0000A1H(VRAM5) 0000A3H(VRAM7) 0000A5H(VRAM9) 0000A7H(VRAM11) 0000A9H(VRAM13) 0000ABH(VRAM15) 14 D14 (R/W) (X) 13 D13 (R/W) (X) 12 D12 (R/W) (X) 11 D11 (R/W) (X) 10 D10 (R/W) (X) 9 D09 (R/W) (X) 8 D08 (R/W) (X) 6 5 4 3 2 1 0 D06 (R/W) (X) D05 (R/W) (X) D04 (R/W) (X) D03 (R/W) (X) D02 (R/W) (X) D01 (R/W) (X) D00 (R/W) (X) VRAMの内容は, コモン信号のタイミングに同期して自動的に読み出され, セグメント 出力端子より出力されます。 VRAM の内容は , 表示用データメモリ (VRAM) への書換えと同時にセグメント出力端 子より出力されます。 コモン出力とセグメント出力に対応したビットを "1" に設定した場合は , セグメント出 力端子より選択波形が出力されます。"0" に設定した場合は , セグメント出力端子より 選択波形が出力されます。 VRAM のアクセスは , LCD コントローラの動作に関係なく , 任意のタイミングでリー ド / ライトできます。 次に , VRAM とコモン端子 , セグメント端子の対応表を示します。 535 第 25 章 LCD コントローラ (LCDC) 図 25.2-5 VRAM とコモン端子・セグメント端子の対応 VRAM0 VRAM1 VRAM2 VRAM3 VRAM4 VRAM5 VRAM6 VRAM7 VRAM8 VRAM9 VRAM10 VRAM11 VRAM12 VRAM13 VRAM14 VRAM15 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 bit11 bit15 bit3 bit7 COM3 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 bit10 bit14 bit2 bit6 COM2 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 bit9 bit13 bit1 bit5 COM1 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 bit8 bit12 bit0 bit4 COM0 SEG0 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 SEG8 SEG9 SEG10 SEG11 SEG12 SEG13 SEG14 SEG15 SEG16 SEG17 SEG18 SEG19 SEG20 SEG21 SEG22 SEG23 SEG24 SEG25 SEG26 SEG27 SEG28 SEG29 SEG30 SEG31 1/2 デューティ出力モードの場合に使用 される RAM 領域とコモン端子 1/3 デューティ出力モードの場合に使用 される RAM 領域とコモン端子 1/4 デューティ出力モードの場合に使用 される RAM 領域とコモン端子 536 第 25 章 LCD コントローラ (LCDC) 25.3 LCD コントローラの動作 LCD コントローラ / ドライバ (LCDC) の動作について説明します。 ■ LCD コントローラの動作 各レジスタに必要な設定を書き込んだ後にフレーム周期発生用クロックが発振してい る場合は, 表示用データメモリにあらかじめ設定された内容に従って, LCDを駆動する 波形がコモン / セグメント出力端子 (COM0 ∼ COM3, SEG0 ∼ SEG31) に出力されます。 LCD は , LCD コントローラ制御レジスタ 0 でのデューティの設定に従って (LCR0:MS1, MS0), 2 フレーム交流化波形により駆動されます。 表示モードが 1/2 デューティの場合の COM2, COM3 端子と , 1/3 デューティの場合の COM3 端子からは , 非選択レベルの波形が出力されます。 LCD の表示動作を停止した場合 (LCR0:MS1, MS0 = 00B) は , コモン / セグメント出力 端子はともに "L" レベルになります。 ■ フレーム周期発生用クロックの切換え LCD の表示動作中の場合でも , フレーム周期発生用クロックは切り換えることができ ます (LCR0:CSS)。ただし , LCD の表示可能なフレーム周期に切り換えた場合でも , 切 換えにより表示がちらつく可能性があります。 切換えによる表示のちらつきを防ぐため , LCD コントローラ制御レジスタ 0 のブラン キング選択ビットを "1" に設定し (LCR0:BK = 1), 非表示の状態にしてから , フレーム 周期発生用クロックを切り換えてください。 また , MS ビットを切り換える場合においても , 同様で , MS ビット切換え中は , 動作を 保証できませんので , LCD コントローラを停止してから切換えを行ってください。 ■ LCD の駆動波形 LCD パネルは , 直流で駆動すると素子が劣化するため , 2 フレーム交流化波形で駆動し ます。出力波形は , LCD 制御レジスタ 0 の表示モード選択ビットで (LCR0:MS1, MS0), 次の 3 種類から選択します。 1/2 デューティ出力モード ( 時分割定数 = 2) 1/3 デューティ出力モード ( 時分割定数 = 3) 1/4 デューティ出力モード ( 時分割定数 = 4) ■ ストップモードについて ストップモード動作モード時 , 動作を停止します ( コモン出力 , セグメント出力 )。 537 第 25 章 LCD コントローラ (LCDC) ■ LCD コントローラドライバ動作時の出力波形 (1/2 デューティ出力モード ) 1/2 デューティ出力モードの場合 , LCD の表示に使用されるのは , COM0 出力と COM1 出力のみです。COM2 出力 , COM3 出力は使用されません。 ● 1/3 バイアス・1/2 デューティ出力波形例 LCD では , コモン出力とセグメント出力の電位差が最大となった液晶素子が点灯しま す。 表示用データメモリの内容が表 25.3-1 の場合は , 出力波形が図 25.3-1 のようになりま す。 表 25.3-1 表示用データメモリの内容例 表示用データメモリの内容 セグメント 538 COM3 出力 COM2 出力 COM1 出力 COM0 出力 SEG n 出力 − − 0 0 SEG n+1 出力 − − 1 1 第 25 章 LCD コントローラ (LCDC) 図 25.3-1 1/3 バイアス・1/2 デューティ出力波形例 COM0出力 COM1出力 COM2出力 COM3出力 SEG n 出力 SEG n+1 出力 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 ON SEG n, COM0出力に対応する 液晶表示素子 OFF ON SEG n, COM1出力に対応する 液晶表示素子 OFF ON SEG n+1,COM0出力に対応する 液晶表示素子 OFF ON SEG n+1,COM1出力に対応する 液晶表示素子 OFF 539 第 25 章 LCD コントローラ (LCDC) ■ LCD コントローラドライバ動作時の出力波形 (1/3 デューティ出力モード ) 1/3 デューティ出力モードの場合 , LCD の表示に使用されるのは , COM0 出力 , COM1 出力 , COM2 出力です。COM3 出力は使用されません。 ● 1/3 バイアス・1/3 デューティ出力波形例 LCD では , コモン出力とセグメント出力の電位差が最大となった液晶素子が点灯しま す。 表示用データメモリの内容が表 25.3-2 の場合は , 出力波形が図 25.3-2 のようになりま す。 表 25.3-2 表示用データメモリの内容例 表示用データメモリの内容 セグメント 540 COM3 出力 COM2 出力 COM1 出力 COM0 出力 SEG n 出力 − 1 0 0 SEG n+1 出力 − 1 0 1 第 25 章 LCD コントローラ (LCDC) 図 25.3-2 1/3 バイアス・1/3 デューティ出力波形例 COM0出力 COM1出力 COM2出力 COM3出力 SEG n 出力 SEG n+1 出力 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 ON SEG n, COM0出力に対応する 液晶表示素子 OFF ON SEG n, COM1出力に対応する 液晶表示素子 OFF ON SEG n, COM2出力に対応する 液晶表示素子 OFF ON SEG n+1,COM0出力に対応する 液晶表示素子 OFF ON SEG n+1,COM1出力に対応する 液晶表示素子 OFF ON SEG n+1,COM2出力に対応する 液晶表示素子 OFF 541 第 25 章 LCD コントローラ (LCDC) ■ LCD コントローラ・ドライバ動作時の出力波形 (1/4 デューティ出力モード ) 1/4 デューティ出力モードの場合は LCD の表示用に , COM0 出力 , COM1 出力 , COM2 出力 , COM3 出力のすべてが使用されます。 ● 1/3 バイアス・1/4 デューティ出力波形例 LCD では , コモン出力とセグメント出力の電位差が最大となった液晶素子が点灯しま す。 表示用データメモリの内容が表 25.3-3 の場合は , 出力波形が図 25.3-3 のようになりま す。 表 25.3-3 表示用データメモリの内容例 表示用データメモリの内容 セグメント 542 COM3 出力 COM2 出力 COM1 出力 COM0 出力 SEG n 出力 0 1 0 0 SEG n+1 出力 0 1 0 1 第 25 章 LCD コントローラ (LCDC) 図 25.3-3 1/3 バイアス・1/4 デューティ出力波形例 COM0出力 COM1出力 COM2出力 COM3出力 SEG n 出力 SEG n+1 出力 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 V3 V2 V1 V0 ON SEG n, COM0出力に対応する 液晶表示素子 OFF ON SEG n, COM1出力に対応する 液晶表示素子 OFF ON SEG n, COM2出力に対応する 液晶表示素子 OFF ON SEG n, COM3出力に対応する 液晶表示素子 OFF ON SEG n+1,COM0出力に対応する 液晶表示素子 OFF ON SEG n+1,COM1出力に対応する 液晶表示素子 OFF ON SEG n+1,COM2出力に対応する 液晶表示素子 OFF ON SEG n+1,COM3出力に対応する 液晶表示素子 OFF 543 第 25 章 LCD コントローラ (LCDC) 544 第 26 章 32kHz クロック 補正ユニット 32kHz クロック補正ユニットの概要およびレジス タの構成 / 機能について説明します。 26.1 32kHz クロック補正ユニットの概要 26.2 32kHz クロック補正ユニットのレジスタ 26.3 アプリケーションノート 545 第 26 章 32kHz クロック 補正ユニット 26.1 32kHz クロック補正ユニットの概要 32kHz クロック補正モジュールは , 4MHz 発振クロックを基準にして 32kHz 発振ク ロックを補正できます。 ■ 補正ユニットの特長 このモジュールを使用すると , ソフトウェアによって , 32kHz クロックによって生成さ れた時間を 4MHz クロックによって測定できます。 ソフトウェアによる処理と , このモジュールの利用によって , 32kHz クロックの正確さ を 4MHz クロックの正確さに近づけることができます。32kHz クロック補正モジュー ルによる測定結果は , ソフトウェアにより処理できます。また , リアルタイムクロック モジュールに必要な設定を得ることができます。 このモジュールは , 32kHz クロックで動作するタイマと 4MHz クロックで動作するタイ マの 2 つのタイマから構成されています。32kHz タイマが 4MHz タイマをトリガし , 4MHz タイマの値がレジスタに格納されます。レジスタに格納された値はソフトウェ アで処理され , 必要なリアルタイムクロックモジュールの設定が計算されます。 ■ 32kHz クロック補正ユニットのブロックダイヤグラム 図 26.1-1 32kHz クロック補正ユニットのブロックダイヤグラム UC18CLK OSC4 CLK4G = OSC4 |~STRT |(READY & ~RUNS); gate CLK4G STRT READY RUNS OSC32 gate STRT CLKP CLKPG gate 32kHz タイマ CLK32G RSLEEPB CLKPG2 gate CUTD 4MHz タイマ RUN カウンタ(16ビット) STR TS RSLEEPB STRT UC18TRD RUN 同期 32->4 非同期 RST R UNS CUTR(24ビット) CUTR UC18TRR CLKPG2 = CLKP |(~STRT & RSLEEPB); READY READY STR T 同期 CLKP->32 非同期 RST STRT STRT RB STRT リセット READ Y 設定/リセット R UNSS1 R UNSS INTEN RBB RB 設定/リセット RSLEEPB RSLEEP INT RMWB RMW 設定 リセット UC18BUS READY PULSE CUCR(3ビット) INT_I INT 同期 4->CLKP INT_INT CUTR(24ビット) *_RDB *_RD *_WRB *_WR RSTB RST UC18IO CUTD(16ビット) CUTD UC18RBI FC18 546 第 26 章 32kHz クロック 補正ユニット ■ 32kHz クロック補正ユニットのタイミング 図 26.1-2 測定処理のタイミング 32 kHz STRT(CLKP) STRTS(32 kHz) RUN (32 kHz) RUNS (4 MHz) 32 kHzカウンタ(16ビット) 2 CUTD CUTD-1 1 0 新CUTR 旧CUTR 4 MHzカウンタ(24ビット) CUTD READY (32 kHz) READYPULSE (CLKP) INT (CLKP) ■ 32kHz クロック補正ユニットのクロック モジュールは , 4MHz クロック OSC4, 32kHz クロック OSC32, R-bus クロック CLKP の 3 つの異なるクロックにより動作します。それぞれのドメインは同期回路によって適合 されます。 3 つのクロックはすべてゲート制御されます。STRT が "0" の場合は , 32kHz と 4MHz のクロックのスイッチは OFF になります。CLKPG の制御信号は RSLEEPB であり , CLKPG2 の制御信号は RSLEEP と STRT の 2 ビットです。これらはハードウェアによっ て設定またはリセットされます。 クロック周波数は以下の要件を満足する必要があります。 クロック比 TOSC32 > 2 × TOSC4 + 3 × TCLKP TOSC4 < 1/2 × TOSC32 - 3/2 × TCLKP TCLKP < 1/3 × TOSC32 - 2/3 × TOSC4 表 26.1-1 有効クロック比の例 OSC32 通常動作 32kHz 31.25μs OSC4 4MHz CLKP 250ns 2MHz 以上 500ns 以下 547 第 26 章 32kHz クロック 補正ユニット 26.2 32kHz クロック補正ユニットのレジスタ 補正ユニットのレジスタ一覧および各レジスタの機能を説明します。 ■ 補正ユニットのレジスタ一覧 ● 補正ユニット制御レジスタ (CUCR) 図 26.2-1 補正ユニット制御レジスタ (CUCR) のビット構成 bit アドレス : 00015DH リード / ライト→ 初期値→ 15 − (R) (−) 14 − (R) (−) 13 12 − (R) (−) STRT (R/W) (0) 11 − (R) (−) 10 − (R) (−) 9 8 INT INTEN (R/W) (R/W) (0) (0) ● 32kHz タイマデータレジスタ (CUTD) 図 26.2-2 32kHz タイマデータレジスタ (CUTD) のビット構成 bit 548 15 14 13 12 11 10 9 TDD15 TDD14 TDD13 TDD12 TDD11 TDD10 TDD9 アドレス : 00015EH リード / ライト→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (0) (0) (0) (0) (0) (0) 初期値→ 8 TDD8 (R/W) (0) bit 7 TDD7 アドレス : 00015FH リード / ライト→ (R/W) (0) 初期値→ 0 TDD0 (R/W) (0) 6 TDD6 (R/W) (0) 5 TDD5 (R/W) (0) 4 TDD4 (R/W) (0) 3 TDD3 (R/W) (0) 2 TDD2 (R/W) (0) 1 TDD1 (R/W) (0) 第 26 章 32kHz クロック 補正ユニット ● 4MHz タイマデータレジスタ (CUTR) 図 26.2-3 4MHz タイマデータレジスタ (CUTR) のビット構成 CUTR1 bit アドレス : 000160H リード / ライト→ 初期値→ bit 15 14 13 12 11 10 9 8 − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) 7 6 5 4 3 2 1 0 TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16 アドレス : 000161H (R) (R) (R) (R) (R) (R) (R) (R) リード / ライト→ (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ CUTR2 bit 15 14 13 12 11 10 9 TDR15 TDR14 TDR13 TDR12 TDR11 TDR10 TDR9 アドレス : 000162H (R) (R) (R) (R) (R) (R) (R) リード / ライト→ (0) (0) (0) (0) (0) (0) (0) 初期値→ bit 7 TDR7 アドレス : 000163H (R) リード / ライト→ (0) 初期値→ 8 TDR8 (R) (0) 6 5 4 3 2 1 0 TDR6 (R) (0) TDR5 (R) (0) TDR4 (R) (0) TDR3 (R) (0) TDR2 (R) (0) TDR1 (R) (0) TDR0 (R) (0) ■ 補正ユニット制御レジスタ (CUCR) 図 26.2-4 補正ユニット制御レジスタ (CUCR) のビット構成 bit アドレス : 00015DH リード / ライト→ 初期値→ 15 14 13 12 11 10 − (R) (−) − (R) (−) − (R) (−) STRT (R/W) (0) − (R) (−) − (R) (−) 9 8 INT INTEN (R/W) (R/W) (0) (0) 制御レジスタ (CUCR) には , 次の機能があります。 • 補正測定の開始 / 停止 • 割込みの許可 / 禁止 • 補正測定の終了を示す [bit12] STRT: 補正開始 STRT 機能 0 補正停止 , モジュールスイッチオフ ( 初期値 ) 1 補正開始 STRT ビットがソフトウェアにより "1" に設定されると補正が開始します。 32kHz タ イマは , 32kHz タイマデータレジスタに格納された値からのカウントダウンを開始 し , 4MHz タイマは "0" からのカウントアップを開始します。 32kHz タイマが "0" に達すると , このビットはハードウェアにより "0" にリセットさ れます。 549 第 26 章 32kHz クロック 補正ユニット 補正処理中にソフトウェアによってこのビットに "0" が書き込まれると , 補正は直 ちに停止します。ソフトウェアによる "0" の書込みとハードウェアによる "0" への リセットが同時に発生した場合は , ハードウェアの動作がソフトウェアの動作に優 先します。 すなわち , 補正は適切に完了し , INT ビットは "1" に設定されます。補正中にこの ビットへ "1" を書き込んでも影響はありません。 [bit9] INT: 割込み INT 機能 0 補正中 / モジュールインアクティブ ( 初期値 ) 1 補正完了 このビットは補正の終了を示します。 補正開始後 , 32kHz タイマが "0" に達すると , 4MHz タイマデータレジスタは最後の 4MHz タイマ値を格納し , INT ビットは "1" に設定されます。 このビットに対してリードモディファイライト (RMW) 系命令を行うと "1" が読み 出され , このビットに "0" を書き込むとフラグがクリアされます (INT=0)。このビッ トに "1" を書き込んでも影響はありません。 割込みフラグ INT は , ハードウェアではリセットされません。そのため , 新たな補 正を開始する前にソフトウェアによりリセットする必要があります。リセットしな い場合の補正処理の終了は , STRT ビット (INT フラグは補正中も "1" のままです ) によってのみ知ることが可能です。 [bit8] INTEN: 割込み許可 INTEN 機能 0 割込み禁止 ( 初期値 ) 1 割込み許可 これは INT ビットに対応する割込み許可ビットです。 このビットが "1" に設定され , INT ビットがハードウェアにより設定されると , 補正 モジュールは CPU への割込み信号を送信します。INT ビット自体は INTEN ビット の影響を受けず , 割込み禁止の場合 (INTEN=0) でもハードウェアにより設定されま す。 550 第 26 章 32kHz クロック 補正ユニット ■ 32kHz タイマデータレジスタ (16 ビット ) (CUTD) 図 26.2-5 32kHz タイマデータレジスタ (16 ビット ) (CUTD) のビット構成 bit 15 14 13 12 11 10 9 TDD15 TDD14 TDD13 TDD12 TDD11 TDD10 TDD9 アドレス : 00015EH リード / ライト→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (1) (0) (0) (0) (0) (0) (0) 初期値→ bit 7 TDD7 アドレス : 00015FH リード / ライト→ (R/W) (0) 初期値→ 6 TDD6 (R/W) (0) 5 TDD5 (R/W) (0) 4 TDD4 (R/W) (0) 3 TDD3 (R/W) (0) 2 TDD2 (R/W) (0) 1 TDD1 (R/W) (0) 8 TDD8 (R/W) (0) 0 TDD0 (R/W) (0) 32kHz タイマデータレジスタ (CUTD) は , 補正期間 (32kHz リロード値 ) を決定する値 を保持します。 32.768kHz の水晶が使用される場合のデフォルト値は "8000H" であり , 1 秒の測定持続 時間に対応します。 このレジスタには , 補正がインアクティブ (STRT=0) になっている場合以外は書き込ん ではいけません。 32kHz タイマレジスタは補正の持続時間を指定する値を格納します。補正を開始する と , 格納された値が 32kHz タイマにロードされ , タイマは "0" に達するまでのカウント ダウンを開始します。 CUTD を "0000H" に初期化すると , アンダフローが発生し , 測定値は (FFFFH+1) × TOSC32 となります。 32kHz タイマは , 32kHz 発振クロックで動作します。 1 秒間の測定持続時間を達成するには , CUTD レジスタに "8000H"=32768(10 進 ) をロー ドする必要があります。この数値は水晶の正確な発振周波数 , FOSC=32768Hz から得ら れます。測定結果 (4.00MHz の水晶を使用する場合 ) の理想値を次の表に示します。 表 26.2-1 測定持続時間による理想的な測定結果 補正時間 (s) CUTD 値 CUTR 値 2 0000H 7A1200H 1.75 E000H 6ACFC0H 1.5 C000H 5B8D80H 1.25 A000H 4C4B40H 1 8000H 3D0900H 0.75 6000H 2DC6C0H 0.5 4000H 1E8480H 0.25 2000H 0F4240H STRT ビットへの "1" の書込みからハードウェアによる STRT のリセットまでにかかる 全処理時間は , 異なるクロックドメイン間の同期のために実際の補正測定時間より長 くなります。 処理時間は , (CUTD + 3) × TOSC32 となります。 正確な補正測定時間は , CUTD × TOSC32 となります。 551 第 26 章 32kHz クロック 補正ユニット ■ 4MHz タイマデータレジスタ (24 ビット ) (CUTR) 図 26.2-6 4MHz タイマデータレジスタ (24 ビット ) (CUTR) のビット構成 bit アドレス : 000160H リード / ライト→ 初期値→ bit 15 14 13 12 11 10 9 8 − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) − (R) (−) 7 6 5 4 3 2 1 0 TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16 アドレス : 000161H (R) (R) (R) (R) (R) (R) (R) (R) リード / ライト→ (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ bit 15 14 13 12 11 10 9 TDR15 TDR14 TDR13 TDR12 TDR11 TDR10 TDR9 アドレス : 000162H (R) (R) (R) (R) (R) (R) (R) リード / ライト→ (0) (0) (0) (0) (0) (0) (0) 初期値→ bit 7 TDR7 アドレス : 000163H (R) リード / ライト→ (0) 初期値→ 6 TDR6 (R) (0) 5 TDR5 (R) (0) 4 TDR4 (R) (0) 3 TDR3 (R) (0) 2 TDR2 (R) (0) 1 TDR1 (R) (0) 8 TDR8 (R) (0) 0 TDR0 (R) (0) タイマデータレジスタ (CUTR) は補正結果の値 (4MHz カウンタ ) を保持します。 補正の終了は , CUCR レジスタの INT ビットと STRT ビットにより示されます。 INT を "0" から "1" に変更し , STRT を "1" から "0" に変更すると , CUTR の値が有効に なります。 4MHz タイマデータレジスタは補正の結果を格納します。補正が開始されると , 4MHz タイマは "0" からのカウントアップを開始します。32kHz タイマが "0" に達すると , 4MHz タイマはカウントを停止し , ソフトウェアにより次の補正がトリガされるまでレ ジスタは補正結果を保持します。 補正中にこのレジスタを読み出して , 得られる値はランダムです。 ソフトウェアによりこのレジスタに書き込んでも影響はありません。 4MHz タイマは , 4MHz 発振クロックで動作します。 <注意事項> 補正中にこのレジスタを読み出すと , 得られる値はランダムです。 552 第 26 章 32kHz クロック 補正ユニット 26.3 アプリケーションノート 補正の正確さ , 電力消費 , 測定時間に関するアプリケーションノートを示します。 ■ 32kHz タイマデータレジスタの設定 32kHz タイマデータレジスタの設定は , 以下の方法で計算できます。 補正に 1s の持続時間が必要な場合は , "8000H"=32768Dec を 32kHz タイマデータレジス タに設定する必要があります。これは , 32.768kHz 発振クロックの 32,768 パルスを表し ます。 この設定により , 4MHz タイマデータレジスタ内に約 "3D0900H" の値が格納されます。 この値は , 4MHz 発振器の 4,000,000 パルスを表します。 表 26.3-1 32.768kHz 発振器と 4.0MHz 発振器による理想的な測定結果 (CUTR) 補正時間 (s) CUTD 値 CUTR 値 2 0000H 7A1200H 1.75 E000H 6ACFC0H 1.5 C000H 5B8D80H 1.25 A000H 4C4B40H 1 8000H 3D0900H 0.75 6000H 2DC6C0H 0.5 4000H 1E8480H 0.25 2000H 0F4240H 補正モジュールを使用する場合は , 補正の精度とともに電力消費が重要です。 553 第 26 章 32kHz クロック 補正ユニット 554 第 27 章 CPU 動作検出リセット回路 CPU 動作検出リセット回路の機能と動作について 説明します。 27.1 CPU 動作検出リセット回路の概要 27.2 CPU 動作検出リセット回路のレジスタ 27.3 CPU 動作検出リセット回路の動作 27.4 CPU 動作検出リセット回路使用上の注意 555 第 27 章 CPU 動作検出リセット回路 27.1 CPU 動作検出リセット回路の概要 CPU 動作検出リセット回路は , 原発振をカウントクロックとする 20 ビットのカウン タで , 起動後一定時間内にクリアされない場合 , 設定初期化リセットを発生します。 ■ CPU 動作検出リセット回路の特長 CPU 動作検出リセット回路は , プログラム暴走対策用のカウンタです。リセット後 , 自 動で起動します。起動後は , 一定時間内で定期的にクリアし続ける必要があります。プ ログラムが無限ループに陥るなどして , 一定時間以上クリアされない場合は内部リ セットを発生します。 表 27.1-1 CPU 動作検出リセット回路のインターバル時間 インターバル時間 発振クロックサイクル数 約 262ms 220 サイクル 発振クロック 4MHz 動作時の値 <注意事項> CPU が動作を停止するモードでは , 本回路は停止します。 本回路のカウンタのクリア条件を以下に示します。 • LVRC レジスタの CL ビットへの "0" 書込み • 内部リセット • メイン発振クロック停止 ( サブクロック使用時は必須 ) • スリープモードへの遷移 • RTC モードへの遷移 • STOP モードへの遷移 ■ CPU 動作検出リセット回路のブロックダイヤグラム CPU 動作検出リセット回路は , 次の 2 つのブロックで構成されています。 • CPU 動作検出回路 • CPU 動作検出リセット制御レジスタ (LVRC) 556 第 27 章 CPU 動作検出リセット回路 図 27.1-1 CPU 動作検出リセット回路のブロックダイヤグラム CPU動作検出回路 カウンタ OF 内部 リ セ ッ ト 発振クロック F/F クリア RESV0 RESV0 RESV0 RESV1 CL RESV0 RESV0 CPUF CPU検出リセット制御レジスタ (LVRC) 内部データバス ● CPU 動作検出回路 プログラム暴走対策用のカウンタです。起動後は , 一定時間内に定期的にクリアし続け る必要があります。 ● CPU 動作検出リセット制御レジスタ (LVRC) CPU 動作検出リセットフラグ , CPU 動作検出機能のカウンタクリアを行います。 ● CPU 動作検出リセット回路のリセット要因 CPU 動作検出回路のカウンタが , 一定時間以内にクリアされなかった場合に設定初期 化リセットを発生します。 CPU 動作検出リセット回路は , メイン発振のみで使用してください。サブ発振では使 用できません。 557 第 27 章 CPU 動作検出リセット回路 CPU 動作検出リセット回路のレジスタ 27.2 CPU 動作検出リセット制御レジスタ (LVRC) は , CPU 動作検出リセットフラグ , CPU 動作検出回路のカウンタクリアなどを行うレジスタです。 ■ CPU 動作検出リセット制御レジスタ (LVRC) 図 27.2-1 CPU 動作検出リセット制御レジスタ (LVRC) アドレス bit7 bit6 bit5 bit4 00057D H RESV0 RESV0 RESV0 RESV1 R/W R/W R/W R/W bit3 CL bit2 R/W 0 1 RESV0 CL 0 1 558 :リード/ライト可能 :不定値 :初期値 bit0 RESV0 RESV0 CPUF CPUF R/W X bit1 R/W R/W 初期値 00011000 B R/W CPU動作検出フラグビット 読出し時 書込み時 オーバフローしていない このビットのクリア オーバフローした 変化なし, ほかへの影響なし 予約ビット このビットへは必ず"0"を書き込んでください CPU動作検出回路クリアビット カウンタのクリア 変化なし, ほかへの影響なし RESV1 予約ビット このビットへは必ず"1"を書き込んでください RESV0 予約ビット このビットへは必ず"0"を書き込んでください 第 27 章 CPU 動作検出リセット回路 表 27.2-1 CPU 動作検出リセット制御レジスタ , 各ビット機能説明 ビット名 機能 RESV0: 予約ビット ( 注意事項 ) RESV0 ビットへは必ず "0" を書き込んでください。 RESV1: 予約ビット ( 注意事項 ) RESV1 ビットへは必ず "1" を書き込んでください。 CL: CPU 動作検出 クリアビット CPU 動作検出回路のカウンタクリアをするビットです。 CL ビットに "0" を書き込むと , CPU 動作検出回路のカウンタがクリアされ ます。 リード時は常に "1" となります。 bit2 RESV0: 予約ビット ( 注意事項 ) RESV0 ビットへは必ず "0" を書き込んでください。 bit1 RESV0: 予約ビット ( 注意事項 ) RESV0 ビットへは必ず "0" を書き込んでください。 CPUF: CPU 動作検出 フラグビット CPU 動作検出機能のカウンタがオーバフローすると , CPUF ビットが "1" にセットされます。 書込み時は "0" でクリアされ , "1" では CPUF ビットに影響を与えず変化し ません。 内部リセットでは初期化されず , 外部リセット入力で初期化されます。 bit7 ∼ bit5 bit4 bit3 bit0 559 第 27 章 CPU 動作検出リセット回路 27.3 CPU 動作検出リセット回路の動作 CPU 動作検出機能は , 一定間隔でカウンタをクリアしなければ内部リセットを発生 します。CPU の暴走を検出して内部リセットが発生した場合 , レジスタの内容は保 証できません。リセット解除後は動作安定待ち時間経過後 , リセットシーケンスを 実行した後にリセットベクタで指定されたアドレスからプログラムが再スタートし ます。 ■ CPU 動作検出リセット回路の動作 CPU 動作検出リセット回路は , リセット解除後 , 動作安定待ち時間を確保せずに CPU 動作検出を開始します。 560 第 27 章 CPU 動作検出リセット回路 27.4 CPU 動作検出リセット回路使用上の注意 CPU 動作検出リセット回路を使用するための注意点を示します。 ■ CPU 動作検出リセット回路使用上の注意 ● プログラムでの動作停止不可 CPU 動作検出リセット回路は , 電源投入後 , 連続で動作します。ソフトウェアでの動作 停止はできません。 ● CPU 動作検出機能のリセット発生抑止 CPU 動作検出機能によるリセット発生を抑止するためには , 一定時間ごとにカウンタ をクリアする必要があります。LVRC レジスタの CL ビットに "0" を書き込むことによ りカウンタをクリアし , リセット発生を抑止することができます。 ● カウンタのクリアと動作停止 CPU 動作検出機能は , CPU が動作を停止するモードでは , カウンタをクリアし , 動作を 停止します。 ● DMA 転送時の CPU 動作検出リセット D-bus 内に接続されているモジュール間の DMA 転送時は , CL ビットへの "0" 書込み不 可のため , 転送時間が連続して 262ms ( 原発振 4MHz 時 ) を超えると CPU 動作検出リ セットを発生します。 ● サブ動作モード移行時の注意 サブ動作モードに移行する場合 , メインクロックを停止するとともに , CPU 検出リセッ ト回路をクリアしてください。 ● CPU 動作検出動作モードの動作条件 • 本機能はメイン発振中でのみ使用できます。 • STOP/SLEEP/RTC モードでは本機能を使用できません。CPU 検出リセット回路をク リアしてから移行してください。 561 第 27 章 CPU 動作検出リセット回路 562 第 28 章 フラッシュメモリ フラッシュメモリの概要 , レジスタの構成 / 機能お よび動作について説明します。 28.1 フラッシュメモリの概要 28.2 フラッシュメモリのレジスタ 28.3 フラッシュメモリのアクセスモード 28.4 自動アルゴリズム起動方法 28.5 自動アルゴリズム実行状態 28.6 フラッシュメモリ書込み / 消去の詳細説明 28.7 セクタプロテクトオペレーション 563 第 28 章 フラッシュメモリ 28.1 フラッシュメモリの概要 MB91F248/S には 256K バイト (2M ビット ), MB91F249/S には 512K バイト (4M ビット ) の容量で , +3.3V 単一電源による全セクタ一括消去およびセクタ単位での消 去が可能で , FR-CPU によるハーフワード (16 ビット ) 単位での書込みが可能なフ ラッシュメモリを内蔵しています。 ■ フラッシュメモリの特長 このフラッシュメモリは , 内蔵の 3.3V 動作 256K バイト (MB91F248/S)/512K バイト (MB91F249/S) フラッシュメモリです。当社製 2M ビット (256K × 8/128K × 16/64K × 32) /4Mビット(512K×8/256K×16)フラッシュメモリMBM29LV200TC/MBM29LV400TC と同じもので ( 容量 , 一部セクタ構成を除いて ) あり , ROM ライタによるデバイス外部 からの書込みも可能です。また , MBM29LV200TC/MBM29LV400TC 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合には , ワード (32 ビット ) 単位での命令 / デー タ読出しが可能であり , デバイスの高速動作を実現できます。 シングルチップモードで動作するプログラムあるいは内 ROM 外バスモードで動作す るプログラムのどちらかを選択して書き込むことができます。 本書と併せて MBM29LV200TC/MBM29LV400TC データシートを参照してください。 フラッシュメモリマクロと FR-CPU インタフェース回路の組合せにより , 以下の機能を 実現します。 • CPU のプログラム / データ格納用メモリとして機能 - ROM として使用する際は 32 ビットバス幅でアクセス可能 - CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能 • 単体フラッシュメモリ製品の MBM29LV200TC/MBM29LV400TC 相当の機能 ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能 *: 自動プログラムアルゴリズム = Embedded Algorithm 本書では , FR-CPU からこのフラッシュメモリを使用する場合について解説しています。 ROM ライタからこのフラッシュメモリを使用する場合の詳細については , 別途「ROM ライタの取扱説明書」を参照してください。 ■ 自動アルゴリズム実行状態 CPU プログラミングモードにて自動アルゴリズムを起動した場合には , 内部レディ信 号 (RDY) により自動アルゴリズムの動作状態を知ることができます。このレディ信号 のレベルは , フラッシュメモリステータスレジスタの "RDY" ビットとして読み込むこ とができます。 "RDY" ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われてお り , 新たな書込みまたは消去コマンドを受け付けることはできません。また , フラッ シュメモリアドレスからのデータ読出しはできません。"RDY" ビットが "0" の期間に 読み出したデータはフラッシュメモリのステータスを示すハードウェアシーケンスフ ラグとなっています (「28.4 自動アルゴリズム起動方法」を参照 )。 564 第 28 章 フラッシュメモリ ■ ROM ライタによる書込み このフラッシュメモリは , ROM ライタを用いてデバイス外部より書込みを行うことが できます。この状態では , 単体フラッシュメモリ製品の MBM29LV200TC/MBM29LV 400TC 相当の端子機能がデバイス外部端子に割り当てられ , FR-CPU は動作を停止しま す。CPU モードとはアドレス線の接続が変更され , メモリ領域内のマッピングが変化 します。詳細については「対応 ROM ライタの仕様書」を参照してください。 ■ フラッシュメモリのブロックダイヤグラム 図 28.1-1 フラッシュメモリのブロックダイヤグラム (MB91F248/S) CPU フラッシュインタフェース フラッシュメモリ 制御信号 制御信号 A0~A17 A-1/A0~A17 アドレス DQ0~DQ15 DQ0~DQ15 制御信号 CPUコア データ 制御信号 フラッシュ ライタとの インタ アドレス フェース (フラッ シュモード 時) データ 565 第 28 章 フラッシュメモリ ■ フラッシュメモリのセクタ構成 フラッシュメモリのアドレスマッピングは , FR-CPU からのアクセス時と ROM ライタ でのアクセス時とでは異なります。図 28.1-2 と表 28.1-1 に FR-CPU からのアクセス時 におけるマッピングを , 図 28.1-5 に ROM ライタからのアクセス時におけるマッピング を示します。 ● FR-CPU からのアクセス時におけるマッピング 図 28.1-2 FR-CPU からのアクセス時におけるマッピング (MB91F248/S) 000F FFFFH FFFF FFFFH SA4(16K バイト ) SA9(16K バイト ) SA3(8K バイト ) SA8(8K バイト ) SA2(8K バイト ) SA7(8K バイト ) SA1(32K バイト ) SA6(32K バイト ) SA0(64K バイト ) SA5(64K バイト ) 000F 8000H 000F 7FFFH 000F 4000H 0010 0000H 000F 3FFFH 000F FFFFH 000F 0000H 000C 0000H フラッシュ メモリ 256 K バイト 000E FFFFH 000E 0000H 000D FFFFH 0000 0000H 000C 0000H bit 31 CPU モードでアクセス する場合のバイト位置 566 16 15 0 1 0 2 3 第 28 章 フラッシュメモリ 表 28.1-1 セクタアドレス一覧 (FR-CPU からのアクセス時 ) (MB91F248/S) セクタ アドレス アドレス範囲 対応ビット位置 セクタ容量 SA9 000F FFFFH ∼ 000F 8000H bit15 ∼ bit0 16K バイト SA8 000F 7FFFH ∼ 000F 4000H bit15 ∼ bit0 8K バイト SA7 000F 3FFFH ∼ 000F 0000H bit15 ∼ bit0 8K バイト SA6 000E FFFFH ∼ 000E 0000H bit15 ∼ bit0 32K バイト SA5 000D FFFFH ∼ 000C 0000H bit15 ∼ bit0 64K バイト SA4 000F FFFFH ∼ 000F 8000H bit31 ∼ bit16 16K バイト SA3 000F 7FFFH ∼ 000F 4000H bit31 ∼ bit16 8K バイト SA2 000F 3FFFH ∼ 000F 0000H bit31 ∼ bit16 8K バイト SA1 000E FFFFH ∼ 000 E 0000H bit31 ∼ bit16 32K バイト SA0 000D FFFFH ∼ 000C 0000H bit31 ∼ bit16 64K バイト 567 第 28 章 フラッシュメモリ 図 28.1-3 フラッシュメモリのブロックダイヤグラム (MB91F249/S) CPU フラッシュインタフェース フラッシュメモリ 制御信号 制御信号 A0~A18 A0~A18 制御信号 CPUコア アドレス DQ0~DQ15 DQ0~DQ15 データ 制御信号 フラッシュ ライタとの インタ アドレス フェース (フラッ シュモード 時) データ 図 28.1-4 FR-CPU からのアクセス時におけるマッピング (MB91F249/S) 000F FFFFH FFFF FFFFH 000F 8000H 000F 7FFFH 000F 4000H 000F 3FFFH 0010 0000H 000F 0000H 000F FFFFH 0008 0000H フラッシュ メモリ 512 K バイト 000E FFFFH 000E 0000H 000D FFFFH 000C 0000H 0000 0000H 000B FFFFH 000A 0000H 0009 FFFFH 0008 0000H SA6(16K バイト ) SA13(16K バイト ) SA5(8K バイト ) SA12(8K バイト ) SA4(8K バイト ) SA11(8K バイト ) SA3(32K バイト ) SA10(32K バイト ) SA2(64K バイト ) SA9(64K バイト ) SA1(64K バイト ) SA8(64K バイト ) SA0(64K バイト ) SA7(64K バイト ) bit 31 CPU モードでアクセス する場合のバイト位置 568 16 15 0 1 0 2 3 第 28 章 フラッシュメモリ 表 28.1-2 セクタアドレス一覧 (FR-CPU からのアクセス時 ) (MB91F249/S) セクタ アドレス アドレス範囲 対応ビット位置 セクタ容量 SA13 000F FFFFH ∼ 000F 8000H bit15 ∼ bit0 16K バイト SA12 000F 7FFFH ∼ 000F 4000H bit15 ∼ bit0 8K バイト SA11 000F 3FFFH ∼ 000F 0000H bit15 ∼ bit0 8K バイト SA10 000E FFFEH ∼ 000E 0000H bit15 ∼ bit0 32K バイト SA9 000D FFFEH ∼ 000C 0000H bit15 ∼ bit0 64K バイト SA8 000B FFFEH ∼ 000A 0000H bit15 ∼ bit0 64K バイト SA7 0009 FFFEH ∼ 0008 0000H bit15 ∼ bit0 64K バイト SA6 000F FFFCH ∼ 000F 8000H bit31 ∼ bit15 16K バイト SA5 000F 7FFCH ∼ 000F 4000H bit31 ∼ bit15 8K バイト SA4 000F 3FFCH ∼ 000F 0000H bit31 ∼ bit15 8K バイト SA3 000E FFFCH ∼ 000E 0000H bit31 ∼ bit15 32K バイト SA2 000D FFFCH ∼ 000C 0000H bit31 ∼ bit15 64K バイト SA1 000B FFFCH ∼ 000A 0000H bit31 ∼ bit15 64K バイト SA0 0009 FFFCH ∼ 0008 0000H bit31 ∼ bit15 64K バイト 569 第 28 章 フラッシュメモリ ● ROM ライタからのアクセス時におけるマッピング 図 28.1-5 ROM ライタからのアクセス時におけるアドレスマッピング (MB91F248/S) F_FFFFH 8 ビット× 2 000F FFFFH 000F C000H SA9(16K バイト ) 000F BFFFH 000F A000H SA8(8K バイト ) 000F 9FFFH 000F 8000H SA7(8K バイト ) 000F 7FFFH 000F 0000H SA6(32K バイト ) 000E FFFFH 000E 0000H SA5(64K バイト ) 000D FFFFH 000D C000H SA4(16K バイト ) 000D BFFFH 000D A000H SA3(8K バイト ) 000D 9FFFH 000D 8000H SA2(8K バイト ) 000D 7FFFH 000D 0000H SA1(32K バイト ) 000C FFFFH 000C 0000H SA0(64K バイト ) bit15 570 bit0 1 0 バイト位置 ( ライタで書く場合 ) 0 1 CPU がリードする場合 第 28 章 フラッシュメモリ 表 28.1-3 セクタアドレス一覧 (ROM ライタからのアクセス時 ) (MB91F248/S) アドレス範囲 セクタアドレス 対応ビット位置 セクタ容量 F_FFFFH 8 ビット× 2 bit15 ∼ bit0 - SA9(16K バイト ) 000F FFFFH ∼ 000F C000H bit15 ∼ bit0 16K バイト SA8(8K バイト ) 000F BFFFH ∼ 000F A000H bit15 ∼ bit0 8K バイト SA7(8K バイト ) 000F 9FFFH ∼ 000F 8000H bit15 ∼ bit0 8K バイト SA6(32K バイト ) 000F 7FFFH ∼ 000F 0000H bit15 ∼ bit0 32K バイト SA5(64K バイト ) 000E FFFFH ∼ 000E 0000H bit15 ∼ bit0 64K バイト SA4(16K バイト ) 000D FFFFH ∼ 000D C000H bit15 ∼ bit0 16K バイト SA3(8K バイト ) 000D BFFFH ∼ 000D A000H bit15 ∼ bit0 8K バイト SA2(8K バイト ) 000D 9FFFH ∼ 000D 8000H bit15 ∼ bit0 8K バイト SA1(32K バイト ) 000D 7FFFH ∼ 000D 0000H bit15 ∼ bit0 32K バイト SA0(64K バイト ) 000C FFFFH ∼ 000C 0000H bit15 ∼ bit0 64K バイト 571 第 28 章 フラッシュメモリ 図 28.1-6 ROM ライタからのアクセス時におけるアドレスマッピング (MB91F249/S) 000F FFFFH 000F C000H SA13(16K バイト ) 000F BFFFH 000F A000H SA12(8K バイト ) 000F 9FFFH 000F 8000H SA11(8K バイト ) 000F 7FFFH 000F 0000H SA10(32K バイト ) 000E FFFFH 000E 0000H SA9(64K バイト ) 000D FFFFH 000D 0000H SA8(64K バイト ) 000C FFFFH 000C 0000H SA7(64K バイト ) 000B FFFFH 000B C000H SA6(16K バイト ) 000B BFFFH 000B A000H SA5(8K バイト ) 000B 9FFFH 000B 8000H SA4(8K バイト ) 000B 7FFFH 000B 0000H SA3(32K バイト ) 000A FFFFH 000A 0000H SA2(64K バイト ) 0009 FFFFH 0009 0000H SA1(64K バイト ) 0008 FFFFH 0008 0000H SA0(64K バイト ) bit15 572 bit0 1 0 バイト位置 ( ライタで書く場合 ) 0 1 CPU がリードする場合 第 28 章 フラッシュメモリ 表 28.1-4 セクタアドレス一覧 (ROM ライタからのアクセス時 ) (MB91F249/S) アドレス範囲 セクタアドレス 対応ビット位置 セクタ容量 SA13(16K バイト ) 000F FFFFH ∼ 000F C000H bit15 ∼ bit0 16K バイト SA12(8K バイト ) 000F BFFFH ∼ 000F A000H bit15 ∼ bit0 8K バイト SA11(8K バイト ) 000F 9FFFH ∼ 000F 8000H bit15 ∼ bit0 8K バイト SA10(32K バイト ) 000F 7FFFH ∼ 000F 0000H bit15 ∼ bit0 32K バイト SA9(64K バイト ) 000E FFFFH ∼ 000E 0000H bit15 ∼ bit0 64K バイト SA8(64K バイト ) 000D FFFFH ∼ 000D 0000H bit15 ∼ bit0 64K バイト SA7(64K バイト ) 000C FFFFH ∼ 000D 0000H bit15 ∼ bit0 64K バイト SA6(16K バイト ) 000B FFFFH ∼ 000B C000H bit15 ∼ bit0 16K バイト SA5(8K バイト ) 000B BFFFH ∼ 000B A000H bit15 ∼ bit0 8K バイト SA4(8K バイト ) 000B 9FFFH ∼ 000B 8000H bit15 ∼ bit0 8K バイト SA3(32K バイト ) 000B 7FFFH ∼ 000B 0000H bit15 ∼ bit0 32K バイト SA2(64K バイト ) 000A FFFFH ∼ 000A 0000H bit15 ∼ bit0 64K バイト SA1(64K バイト ) 0009 FFFFH ∼ 0009 0000H bit15 ∼ bit0 64K バイト SA0(64K バイト ) 0008 FFFFH ∼ 0008 0000H bit15 ∼ bit0 64K バイト 573 第 28 章 フラッシュメモリ 28.2 フラッシュメモリのレジスタ フラッシュメモリにはフラッシュメモリステータスレジスタ (FLCR) とフラッシュ メモリウェイトレジスタ (FLWC) の 2 つのレジスタがあります。 ■ フラッシュメモリのレジスタ一覧 図 28.2-1 に , フラッシュメモリのレジスタ一覧を示します。 図 28.2-1 フラッシュメモリのレジスタ一覧 bit7 0 フラッシュメモリウェイトレジスタ (FLWC) bit7 0 フラッシュメモリステータスレジスタ (FLCR) 表 28.2-1 アドレスマップ レジスタ アドレス ブロック +0 +1 +2 +3 007000H FLCR[R/W] B 01XX1000 - - - フラッシュ インタフェース 007004H FLWC[R/W] B 00000011 - - - フラッシュ インタフェース 574 第 28 章 フラッシュメモリ ■ フラッシュメモリステータスレジスタ (FLCR) 図 28.2-2 フラッシュメモリステータスレジスタ (FLCR) のビット構成 7 アドレス bit 007000H リード / ライト 初期値 6 5 4 3 2 1 0 − − BIRE − RDY − WE − R/W R/W R/W R R R/W R/W R/W 0 1 X X 1 0 0 0 フラッシュメモリステータスレジスタ (FLCR) は , CPU に対する割込みの制御やフラッ シュメモリへの書込みの制御を行います。CPU でのみアクセスすることが可能です。 ライタ搭載時はアクセスできません。 このレジスタは , リードモディファイライト (RMW) 系命令ではアクセスしないでくだ さい。 以下に,フラッシュメモリステータスレジスタ(FLCR)の各ビットの機能を説明します。 [bit7] (Reserved bit) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 [bit6] (Reserved bit) このビットは予約ビットです。このビットは常に "1" を書き込んでください。 [bit5] BIRE: Burn In ROM Enable Burn In ROM モードにおいてフラッシュメモリと領域の重なる Burn In ROM へのア クセスを制御します。 BIRE 機能 0 Burn In ROM へのアクセスができません 1 Burn In ROM へアクセス可能です 本ビットの設定は , BIRM (Burn In ROM) 入力が "1" のときにのみ有効です。 [bit4] (Reserved bit) このビットは予約ビットです。このビットはリードオンリで書込みは動作に影響を 与えません。 [bit3] RDY : 自動アルゴリズムの動作状態を表示します。 RDY 機能 0 書込み / 読出し動作中で , データの書込み , 読出し , 消去コマンドの 受付けはできません 1 データの書込み , 読出し , 消去コマンドの受付けが可能です RDY 信号は , フラッシュROM への書込みを行ってから動作状態を示すまでに 90ns 必要です。 575 第 28 章 フラッシュメモリ フラッシュROM が書込み / 読出しを受付け可能かをチェックする信号ですので , 書 込み終了判定には使わないでください。書込み終了判定は , データポーリングで 行ってください。 [bit2] (Reserved bit) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 [bit1] WE : CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込み を制御します。 本ビットが "0" の間は, フラッシュメモリへのデータおよびコマンドの書込みは, す べて無効になります。また , フラッシュメモリからのデータ読出しは , 32 ビットア クセスで行われます。 本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有 効となり , 自動アルゴリズムの起動が可能となります。 ただし , フラッシュメモリからのデータの読出しおよび書込みは 16 ビットアクセス になります。フラッシュメモリへのアクセスは 16 ビットアクセスのみを使用して ください。32 ビットおよび 8 ビットのアクセスは禁止します。 本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズムが停止しているこ とを確認してから行ってください。 RDY ビットが "0" の間 , 本ビットを書き換えることはできません。 WE 機能 0 フラッシュメモリへの書込み禁止 , および 32 ビット読出しモード 1 フラッシュメモリへの書込み許可 , および 16 ビット読出しモード [bit0] (Reserved bit) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 ■ フラッシュウェイトレジスタ (FLWC) 図 28.2-3 フラッシュウェイトレジスタ (FLWC) のビット構成 アドレス bit 007004H リード / ライト 初期値 7 6 5 4 3 2 1 0 - - FAC1 FAC0 - R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 1 1 WTC2 WTC1 WTC0 フラッシュウェイトレジスタ(FLWC)は , CPUモードにおいてフラッシュメモリのウェ イト制御を行います。 以下に , フラッシュウェイトレジスタ (FLWC) の各ビットの機能を説明します。 [bit7, bit6] (Reserved bit) これらのビットは予約ビットです。これらのビットは常に "0" を書き込んでくださ い。 576 第 28 章 フラッシュメモリ [bit5, bit4] FAC1, FAC0 : 内部書込み信号のパルス幅制御ビット FAC1 FAC0 ATDIN EQIN 0 0 0.5 clock 1 clock( デフォルト ) 0 1 1 clock 1.5 clock 1 0 1.5 clock 2 clock 1 1 2 clock 2.5 clock ( 注意事項 ) ATDIN, EQIN は内部書込み信号です。通常はデフォルト設定で使用してください。 [bit3] (Reserved bit) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 [bit2 ∼ bit0] WTC2 ∼ WTC0 : ウェイトサイクル制御ビット 本ビットはフラッシュアクセス時のウェイトサイクル数を制御します。 WTC2 WTC1 WTC0 ウェイト サイクル FLASH リード時 FLASH ライト時 0 0 0 - 設定禁止 設定禁止 0 0 1 1 33MHz まで動作可能 設定禁止 0 1 0 2 33MHz まで動作可能 設定禁止 0 1 1 3 33MHz まで動作可能 33MHz まで動作可能 ( デフォルト ) 1 0 0 4 設定禁止 設定禁止 1 0 1 5 設定禁止 設定禁止 1 1 0 6 設定禁止 設定禁止 1 1 1 7 設定禁止 設定禁止 ( 注意事項 ) • FAC1, FAC0 で設定したサイクル以上になるように設定してください。 • 初期値は書込み用の設定になっています。読出しのみを行う場合 (FLCR WE=0 設定の場合 ) ウェイトサイクル 1 (WTC2, WTC1,WTC 0 = 001B) と設定することで最高速で読 出しが可能になります。 577 第 28 章 フラッシュメモリ 28.3 フラッシュメモリのアクセスモード FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。 • ROM モード 32 ビット長データを一括で読み出すことができますが , 書込みはできません。 • プログラミングモード 32 ビット長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長での書 込みが可能になります。 ■ FR-CPU ROM モード (32/16/8 ビット , 読出しのみ ) FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括 読出しが可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできま せん。 ● モードの指定方法 • フラッシュメモリステータスレジスタの WE ビットが "0" のとき , このモードとな ります。 • CPU 動作時でのリセット解除後は常にこのモードになります。 • CPU 動作時以外ではこのモードにすることができません。 ● 動作内容 フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で読 み出します。 読出しにかかるサイクル数は 2 サイクル /1 ワード (1 ウェイト ) です。これにより FRCPU に対し , ウェイトなしで命令を供給することができます。 ● 制限事項 ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。この モードでは , フラッシュメモリへのコマンド / データともに書込みはできません。 ■ FR-CPU プログラミングモード (16 ビット , 読出し / 書込み ) データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア クセスは不可能ですので,このモードで動作している間はフラッシュメモリ上のプログ ラムは実行が不可能となります。 ● モード指定の方法 • フラッシュメモリステータスレジスタ (FLCR) の WE ビットが "1" のときに , この モードとなります。 • CPU 動作時でのリセット解除後は WE ビットが "0" になっています。このモードに するためには "1" を書き込んでください。再度 "0" を書き込むかリセットの発生に より WE ビットが "0" になると ROM モードに戻ります。 • フラッシュメモリステータスレジスタ (FLCR) の RDY ビットが "0" の期間は WE ビットを書き換えることができません。RDY ビットが "1" になったことを確認して から WE ビットを書き換えてください。 578 第 28 章 フラッシュメモリ ● 動作内容 • フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長データを 一括で読み出します。 読出しにかかるサイクル数は 4 サイクル / ハーフワード (3 ウェイト ) です。 • フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動することが できます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが可 能となります。自動アルゴリズムの詳細については , 次ページ以降を参照してくだ さい。 ● 制限事項 • ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。こ のモードではワード (32 ビット ) 長でデータを読み出すことを禁止します。 • 本モードではワード (32 ビット ) 長データを読み出すことを禁止します。 • プログラミングアクセスモード切換えで , WE ビットを書き換える際には「■フラッ シュメモリステータスレジスタ (FLCR)」の制限事項に従って書き換えてください。 ■ フラッシュメモリモード MD2 ∼ MD0 端子を "111B" に設定してリセットをかけると , CPU は機能を停止します。 このときフラッシュメモリインタフェース回路の機能により , ポート 2 ∼ポート B の 一部の信号がフラッシュメモリ本体の制御信号と直結状態になり,外部端子からフラッ シュメモリ本体への直接制御が可能になります。イメージとしてフラッシュメモリが 単体として外部端子に現れてくるモードであり,主にフラッシュメモリライタを用いた 書込み / 消去を行う際に設定します。このモードでは , 2M ビット /4M ビットフラッ シュメモリの自動アルゴリズムの持つすべてのオペレーションが使用可能です。 579 第 28 章 フラッシュメモリ ■ MBM29LV200TC/MBM29LV400TC とのフラッシュメモリ制御信号の対応 表 28.3-1 に , MBM29LV200TC/MBM29LV400TC とのフラッシュメモリ制御信号の対応 を示します。 表 28.3-1 MBM29LV200TC/MBM29LV400TC とのフラッシュメモリ制御信号の対応 MB91F248/S, MB91F249/S 外部制御端子 MBM29LV200TC/ MBM29LV400TC 外部端子 フラッシュメモリモード FR-CPU モード 通常オペレーション VID 印加端子 RESET RSTX RSTX MD1 RY/BY なし RY/BY - BYTE 内部 "H" 固定 BYTEX - WEX - OEX MD2 CE CEX - A17 ∼ A10*1 A18 ∼ A11 - A16 ∼ A10*2 A17 ∼ A11 - A10 MD0 A8 ∼ A0 A9 ∼ A1 - A-1 A0 - なし - D7 ∼ D0 - WE OE A9 内部制御信号 +I/F 回路による制御 内部アドレスバス DQ15 ∼ DQ8 内部データバス DQ7 ∼ DQ0 *1:MB91F249/S *2:MB91F248/S 580 第 28 章 フラッシュメモリ 自動アルゴリズム起動方法 28.4 フラッシュメモリに対する書込み / 消去は , フラッシュメモリ自身が持つ自動アルゴ リズムを起動することで行います。 ■ コマンドオペレーション 自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 ∼ 6 回のハーフワード (16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。不正なア ドレスとデータを書き込んだり,誤った順番でアドレスとデータを書き込んだりすると フラッシュメモリは読出しモードにリセットされます。 表 28.4-1 に , コマンドの一覧を示します。 表 28.4-1 コマンド一覧 アク コマンド セス シーケンス 回数 読出し / リセット 読出し / リセット プログラム 第 1 書込み サイクル 第 2 書込み サイクル 第 3 書込み サイクル 第 4 書込み / 読出しサイクル 第 5 書込み サイクル 第 6 書込み サイクル アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ 1 XXXXH F0H - - - - - - - - - - 4 D5557H AAH CAAABH 55H D5557H F0H RA RD - - - - 4 D5557H AAH CAAABH 55H D5557H A0H チップ消去 6 D5557H AAH CAAABH 55H D5557H 80H PA D5557H PD AAH CAAABH 55H D5557H 10H セクタ消去 6 D5557H AAH CAAABH 55H D5557H 80H D5557H AAH CAAABH 55H SA 30H セクタ消去一時停止 アドレス =XXXXH, データ =B0H の入力でセクタ消去中の消去一時停止 セクタ消去再開 アドレス =XXXXH, データ =30H の入力でセクタ消去一時停止後 , 消去再開 連続モード 3 D5557H AAH CAAABH 55H D5557H 20H - - - - - - 連続書込み 2 XXXXH A0H PA - - - - - - - - 連続モード リセット 2 XXXXH 90H XXXXH PD F0H or 00H - - - - - - - - ワードモード / バイトモードともにコマンドは同じで , 表記されていないビットのデータは任意 RA:読出しアドレス PA:書込みアドレス SA:セクタアドレス ( セクタ内の任意の 1 アドレスを指定。表 28.1-1 を参照 ) RD:読出しデータ PD:書込みデータ ● リード ( 読出し )/ リセットコマンド タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー タを読み出します。フラッシュメモリは , ほかのコマンドが入力されるまで読出し状態 を保ちます。 フラッシュメモリは , 電源投入時 , 自動的に読出し / リセットにセットされます。この 場合は , データ読出しにコマンドは必要ありません。 581 第 28 章 フラッシュメモリ ● プログラム ( 書込み ) CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書 込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし て , 最後の書込みサイクルでメモリへの書込みが開始されます。 自動書込みアルゴリズムコマンドシーケンス実行後は,フラッシュメモリはそれ以上の 外部からの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適切 な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動作 は , データポーリング機能により , bit7 のデータがこのビットに書き込んだデータに一 致したとき終了し (「28.5 自動アルゴリズム実行状態 ■ハードウェアシーケンスフ ラグ」を参照 ), このときをもって読出しモードに戻り , これ以上書込みアドレスを受 付けなくなります。この結果 , フラッシュメモリはこの時点で次の有効アドレスを要求 します。このようにデータポーリングは , メモリが書込み中であることを示します。 書込み中はフラッシュメモリに書込みされたすべてのコマンドが無視されます。もし 書込み中にハードウェアリセットが起動されると , 書き込んでいるアドレスのデータ は保証されません。書込みはどのようなアドレスの順番でも , また , セクタの境界を越 えても可能です。書込みによって , データ 0 をデータ 1 に戻すことはできません。デー タ 0 にデータ 1 を書き込むと , データポーリングアルゴリズムにより , 素子が不良と判 定されるか見かけ上データ 1 が書き込まれたように見えるかのどちらかです。しかし , リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作のみ がデータ 0 をデータ 1 にすることができます。図 28.4-1 に , 書込みコマンドを使った 書込み手順を示します。 図 28.4-1 書込みコマンドを使った書込み手順 書込み開始 書込みコマンドシーケンス デバイスのデータポーリング 次アドレス NO 最終 アドレス? YES 書込み完了 582 第 28 章 フラッシュメモリ ● チップ消去 チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に , 2 つの " アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。 チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。 チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。自動消去アルゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消 去する前に "0" データに書き込んで検証します ( プリプログラム )。この動作中には , フラッシュメモリは外部からの制御は必要としません。 自動消去はコマンドシーケンス中の書込みで開始され , bit7 が "1" になったときに終了 し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セクタ 消去時間×全セクタ数 + チップ書込み時間 ( プリプログラム )」となります。 図 28.4-2 に , チップ消去コマンドを使ったチップ消去手順を示します。 ● セクタ消去 セクタ消去は , 6 回のアクセスで行われます。 2 つの " アンロック " サイクルがあり , 引 き続き " セットアップ " コマンドを書き込み , その後さらに 2 つの " アンロック " サイ クルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始 まります。最後のセクタ消去コマンドの書込みから 50μs のタイムアウト期間中 , 次の セクタ消去コマンドの受付けが可能です。 複数のセクタ消去は前述したような 6 つのバスサイクルを書き込むことで同時に受付 け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去 コマンド (30H) を引き続き書き込むことで行います。最後のセクタ消去コマンドの書込 みから 50μs のタイムアウト期間終了により , セクタ消去が開始されます。すなわち , 複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50μs 以内に入力 する必要があり , それ以降ではコマンドは受け付けられないことがあります。引き続く セクタ消去コマンドが有効かどうかは bit3 にてモニタ可能です (「28.5 自動アルゴリ ズム実行状態 ■ハードウェアシーケンスフラグ」を参照 )。 タイムアウト中のセクタ消去コマンドまたは消去一時停止以外のいかなるコマンドも 読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そのセ クタを再度消去することにより消去が完了します。セクタ消去バッファへのセクタア ドレス入力は , セクタのどのような組合せや数 (0 ∼ 6) からでも実行可能です。セクタ 消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありません。フ ラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行います ( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響も受 けません。これらの動作中は , フラッシュメモリは外部からの制御は必要としません。 自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50μs のタイムアウト期間 の後に開始され , bit7 のデータが "1" になったとき (「28.5 自動アルゴリズム実行状態 ■ハードウェアシーケンスフラグ」を参照 ) 終了し , フラッシュメモリは読出しモー ドに戻ります。ほかのコマンドは無視されます。データポーリングは消去されたセク タ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間 + セクタ 書込み時間 ( プリプログラム )) ×消去セクタ数」となります。 図 28.4-2 に , チップ消去コマンドを使ったチップ消去手順を示します。 583 第 28 章 フラッシュメモリ 図 28.4-2 チップ消去コマンドを使ったチップ消去手順 消去開始 チップ消去/セクタ消去 コマンドシーケンス デバイスのデータポーリング またはトグルビットの完了 書込み完了 ● 消去一時停止 消去一時停止コマンドは,ユーザがセクタ消去中にフラッシュメモリの自動アルゴリズ ムを一時停止して,消去中でないセクタからのデータ読出しと書込みを可能にするもの です。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視さ れます。消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイ ムアウト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト 期間中に入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開 コマンドが書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンド の入力の際のアドレスは任意であってかまいません。 セクタ消去動作中に消去一時停止コマンドが入力されると,フラッシュメモリが消去動 作を停止するために最大 20μs の時間がかかります。フラッシュメモリが消去一時停止 モードに入ると , レディ / ビジー出力と bit7 が "1" を出力し , bit6 がトグル動作をやめ ます。消去しているセクタのアドレスを入力し , bit6 と bit7 の読出し値をモニタするこ とによって , 消去動作を停止しているかどうかを確かめられます。さらに , 消去一時停 止コマンドの書込みは無視されます。消去動作が停止したとき , フラッシュメモリは消 去一時停止読出しモードになります。このモードでのデータの読出しはデータが消去 一時停止していないセクタに有効となりますが , それ以外は標準的な読出しと同じで す。消去一時停止読出し中 , その消去一時停止したセクタからの連続的な読出しに対し ては , bit2 はトグル動作をします (「28.5 自動アルゴリズム実行状態 ■ハードウェア シーケンスフラグ」を参照 )。 消去一時停止読出しモードに入った後,ユーザは書込みのコマンドシーケンスを書き込 むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時停 止書込みモードとなります。このモードでの書込みは , データが消去一時停止していな いセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時停 止書込みモード中,その消去一時停止したセクタからの連続的な読出しに対しては,bit2 はトグル動作をします。消去一時停止ビット (bit6) によって検出できます。 ( 注意事項 ) bit6 はどんなアドレスに対しても読出し可能ですが , bit7 は書込みアドレスに対し て読出しを行わなければなりません。セクタ消去動作を再開するためには , 再開コ マンド (30H) を入力する必要があります。この時点でさらに再開コマンドを入力し ても無視されます。他方 , 消去一時停止コマンドはフラッシュメモリが消去再開し た後に入力することができます。 584 第 28 章 フラッシュメモリ 28.5 自動アルゴリズム実行状態 このフラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フラッシュメモリ内部の動作状態や動作完了したことをフラッシュメモリ外部に知 らせるハードウェアを持ちます。1 つはレディ / ビジー信号 , もう 1 つはハードウェ アシーケンスフラグです ■ レディ / ビジー信号 (RDY/BUSYX) フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と して , ハードウェアシーケンスフラグのほかに , レディ / ビジー信号を持っています。 このレディ / ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッ シュメモリステータスレジスタの RDY ビットとして読み出すことが可能です。また , このレディ/ ビジー信号の立上りにより , CPU に対して割込み要求を発生することも可 能です (「28.1 フラッシュメモリの概要」を参照 )。 RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込みまたは消去動作中で す。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読出 し値が "1" のときフラッシュメモリは読出し / 書込みまたは消去動作待ちの状態です。 ■ ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは,自動アルゴリズム実行中にフラッシュメモリの任意 のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことによりデータとして得 られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの状 態を示します。図 28.5-1 に , ハードウェアシーケンスフラグの構成を示します。 図 28.5-1 ハードウェアシーケンスフラグの構成 ハードウェア読出し時 bit 15 8 7 ( 不定 ) 0 ハードウェアシーケンスフラグ bit 7 バイト読出し時 ( 奇数アドレスのみ ) 0 ハードウェアシーケンスフラグ ハーフワード , バイトアクセス時 bit 7 6 5 4 3 2 1 0 DPOLL TOGGLE TLOVER 不定 SETIMR TOGGL2 不定 不定 なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ い。 585 第 28 章 フラッシュメモリ 表 28.5-1 に , ハードウェアシーケンスフラグ状態一覧を示します。 表 28.5-1 ハードウェアシーケンスフラグ状態一覧 状 自動書込み動作 自動消去時の書込み / 消去動作 実行中 消去 一時 停止 タイム リミット 超過 DPOLL (bit7) TOGGLE (bit6) TLOVER (bit5) SETIMR (bit3) TOGGL2 (bit2) 反転データ 0 トグル 0 0 1 トグル 態 1 1 トグル 1 0 読出し ( 消去中のセクタ ) 0 0 トグル 読出し ( 消去していないセクタ ) データ データ データ データ データ トグル 0 0 自動書込み動作 反転データ トグル 1 0 1*1 1 自動消去時の書込み / 消去動作 0 トグル 1 1 *2 書込み ( 消去していないセクタ ) 反転データ *1: 消去一時停止書込み中 , その書込みされているアドレスの読出しに対し , bit2 は論理 "1" を出力 します。しかし , 消去一時停止しているセクタからの連続的な読出しに対し bit2 はトグル動作を します。 *2: bit5 が "1" のとき ( タイムリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対しては bit2 はトグル動作をし , ほかのセクタへの読出しに対してはトグル動作しません。 以下に , 各ビットの説明をします。 [bit7]DPOLL: データポーリング • 自動書込み動作中 自動書込みアルゴリズム実行中に読出しを行うと , フラッシュメモリは bit7 に最 後に書き込まれたデータの反転データを出力します。自動書込みアルゴリズム終 了時に読出しアクセスを行うと , フラッシュメモリはアドレス信号の指し示す番 地の読出しデータの bit7 を出力します。 • 自動消去動作中 自動消去アルゴリズム実行中に読出しを行うと , フラッシュメモリはアドレス信 号の指し示す番地によらず "0" を出力します。同様に終了時には "1" を出力しま す。 • セクタ消去一時停止中 セクタ消去一時停止中に読出しを行うと,フラッシュメモリはアドレス信号の指し 示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属 さないのであれば , アドレス信号の指し示す番地の読出し値の bit7 を出力します。 後述の bit6 のトグルビットとともに参照することで , 現在セクタ消去一時停止状態 にあるか否か , どのセクタが消去中であるかの判定が可能です。 ( 注意事項 ) 自動アルゴリズムの動作が終了に近づくと , bit7( データポーリング ) は読出し動作 中 , 非同期的に変化します。これはフラッシュメモリが動作状態の情報を bit7 に送 り出し , そして確定したデータをその次に送り出すことを意味します。フラッシュ メモリが自動アルゴリズムを終了したとき , また , bit7 が確定データを出力している ときでも , ほかのビットはまだ不確定です。ほかのビットの確定データは , 連続し た読出しの実行によって読み出されます。 586 第 28 章 フラッシュメモリ [bit6]TOGGLE: トグルビット • 自動書込み / 消去動作中 自動書込みまたは消去アルゴリズム実行中に連続した読出しを行うと , フラッ シュメモリは "1" と "0" をトグルする結果を bit6 に出力します。自動書込みまた は消去アルゴリズムが終了すると , 連続した読出しに対して bit6 のトグル動作を やめ , 有効なデータを出力します。 トグルビットは各コマンドシーケンスの差以後の書込みサイクルの後から有効 になります。 なお , 書込みの際 , 書き込もうとしたセクタが書換え保証されているセクタの場 合は , 約 2μs の間トグル動作した後 , データに書き換えることなくトグル動作を 終わります。消去の際 , もし選択されたすべてのセクタが書込み保証されている 場合には , トグルビットは約 100μs トグル動作をし , その後データを書き換えな いで読出しモードに戻ります。 • セクタ消去一時停止中 セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指 し示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタ に属さないのであれば , アドレス信号の指し示す番地の読出し値の bit6 を出力し ます。 [bit5]TLOVER: タイミングリミット超過 自動書込み / 消去動作中 bit5 は自動アルゴリズムの実行がフラッシュメモリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを示します。この状態において bit5 は "1" を出力します。すなわち , 自動アルゴリズムが動作中で , このフラグが "1" を 出力した場合は , 書込みまたは消去が失敗したことを示します。 bit5 は , 消去することなく非ブランクの部分に書き込もうとすると , フェイルと なります。この場合 , bit7( データポーリング ) から確定データを読むことができ ず , bit6( トグルビット ) はトグリングしたままとなります。この状態でタイムリ ミットを超えると , bit5 に "1" が出力されます。この場合は , フラッシュメモリ が不良なのではなく , 正しく使用されなかったということを表していることに注 意してください。もし , この状態が発生したときには , リセットコマンドを実行 してください。 587 第 28 章 フラッシュメモリ [bit3]SETIMR: セクタ消去タイマ セクタ消去動作中 最初のセクタ消去コマンドシーケンス実行後 , セクタ消去ウェイト期間中になりま す。bit3 は , この期間中 "0" を , セクタ消去ウェイト期間を超えてしまっている場合 は "1" を出力します。データポーリングとトグルビットは最初のセクタ消去コマン ドシーケンスの実行後から有効となります。 データポーリング機能やトグルビット機能により,消去アルゴリズムが実行中を示し ている場合にこのフラグが "1" であれば , 内部で制御される消去が始まっており , 続 けてのコマンドライトはデータポーリングかトグルビットが消去の終了を示すまで 無視されます ( 消去一時停止コードの入力のみ受付けます )。このフラグが "0" の場 合 , フラッシュメモリは追加のセクタ消去コードの書込みを受付けます。このことを 確認するために,引き続くセクタ消去コードの書込みに先立ってソフトウェアでこの フラグの状態をチェックすることを推奨します。もし , 2 回目の状態チェックで "1" であったなら , 追加セクタ消去コードは受け付けられていない可能性があります。セ クタ消去一時停止中に読出しを行うと,フラッシュメモリはアドレス信号の指し示す 番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さない のであれば , アドレス信号の指し示す番地の読出し値の bit3 を出力します。 [bit2]TOGGL2: トグルビット 2 セクタ消去動作中 このトグルビットは , bit6 のトグルビットに加えて , フラッシュメモリが自動消 去動作中であるか , 消去一時停止中であるかを検出することに使われます。自動 消去中に消去しているセクタから連続して読出しを行うとbit2がトグル動作をし ます。フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止して いるセクタから連続して読出しを行うと bit2 はトグル動作をします。 フラッシュメモリが消去一時停止書込みモードのときは , 消去一時停止していな いセクタからアドレスを連続して読み出すと bit2 は "1" が読み出されます。bit6 は bit2 と違い , 通常の書込み , 消去または消去一時停止書込み動作中にのみトグ ル動作をします。 例えば , bit2 と bit6 は , 消去一時停止読出しモードを検出するために , 一緒に使わ れます (bit2 はトグル動作をするが , bit6 はトグル動作をしない )。さらに bit2 は 消去しているセクタの検出にも使われます。フラッシュメモリが消去動作のとき は , bit2 は消去しているセクタからの読出しならばトグル動作をします。 588 第 28 章 フラッシュメモリ ■ ハードウェアシーケンスフラグの使用例 先に述べたハードウェアシーケンスフラグを用いることで,フラッシュメモリ内部の自 動アルゴリズムの状態判定が可能です。例として図 28.5-2, 図 28.5-3 に , 書込み / 消去 判定のフローチャートを , それぞれデータポーリング機能を用いた場合と , トグルビッ ト機能を用いた場合について示します。 図 28.5-2 データポーリング機能を用いた書込み / 消去判定のフローチャート 書込み/消去開始 VA = 書込みアドレス 読出し(D0~D7) アドレス=VA YES D7=Data ? = セクタ消去動作に消去されてい るセクタのアドレス = チップ消去動作中に保護されて いないセクタアドレス * : D7はD5と同時に変わるので D5=1であっても D7は再チェック する必要が あります。 NO NO D5=1 ? YES 読出し(D0~D7) アドレス=VA D7=Data ? * YES NO 書込み/消去 失敗 書込み/消去 完了 589 第 28 章 フラッシュメモリ 図 28.5-3 トグルビット機能を用いた書込み / 消去判定のフローチャート 書込み/消去開始 読出し(D0~D7) アドレス= "H" または "L" D6=トグル ? NO YES NO D5=1 ? YES 読出し(D0~D7) アドレス= "H" または "L" D6=トグル ? NO YES 書込み/消去 失敗 書込み/消去 完了 D5 が "1" に変わるのと同時に D6 はトグル動作をやめるので , D5=1 であっても , D6 は再チェックする必要があります。 590 第 28 章 フラッシュメモリ 28.6 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ ぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の手順 フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , 消去再開の動作がコマンドシーケンス ( 表 28.4-1 を参照 ) のバスへのライト サイクルを行うことで自動アルゴリズムを実行することが可能です。それぞれのバス へのライトサイクルは必ず続けて行う必要があります。また , 自動アルゴリズムはデー タポーリング機能などで終了時を知ることができます。正常終了後は読出し / リセッ ト状態に戻ります。 各動作について , 下記の順に示します。 1. 読出し / リセット状態にする 2. データを書き込む 3. 全データを消去する ( チップ全消去 ) 4. 任意のデータを消去する ( セクタ消去 ) 5. セクタ消去を一時停止する 6. セクタ消去を再開する ■ フラッシュメモリの読出し / リセット状態 フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 ( 表 28.41 を参照 ) の読出し / リセットコマンドを , フラッシュメモリ内の対象セクタに続けて 送ることで実行可能です。 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません , 何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。 ■ フラッシュメモリのデータ書込み フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス ( 表 28.4-1 を参照 ) の書込みコマンドをフラッシュメモリ内の対象セクタに続けて 送ることで実行可能です。4 サイクル目に目的のアドレスへのデータライトが終了した 時点で , 自動アルゴリズムが起動され自動書込みが開始します。 591 第 28 章 フラッシュメモリ ● アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ スへのワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが , 1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。 ● データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ "1" を書き込むと , データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が 終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミング リミット超過フラグ (DQ6) がエラーと判定するか , あるいは見かけ上データ "1" が書き 込まれたように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデー タを読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすること ができます。 自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意 が必要です。 ● フラッシュメモリ書込み手順 図 28.6-1 にフラッシュメモリ書込みの手順の例を示します。 ハードウェアシーケンスフラグ (「28.5 自動アルゴリズム実行状態」を参照 ) を用いる ことでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書 込み終了の確認にデータポーリングフラグ (DQ7) を用いています。 フラグチェックのために読み出すデータは最後に書込みを行ったアドレスからの読出 しとなります。 データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変 わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ ングフラグビット (DQ7) は再チェックする必要があります。 トグルビットフラグ (DQ6) でも同様にタイミングリミット超過フラグビット (DQ5) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再 チェックする必要があります。 592 第 28 章 フラッシュメモリ 図 28.6-1 フラッシュメモリ書込み手順の例 書込み開始 FLCR:WE(bit1) フラッシュメモリ書込み 許可 書込みコマンドシーケンス ①D5557H←AA H ②CAAABH←55 H ③D5557H←A0 H ④書込みアドレス←書込みデータ 内部アドレスリード データポーリング (DQ7) 次アドレス Data Data 0 タイミングリミット (DQ5) 1 内部アドレスリード Data データポーリング (DQ7) Data 書込みエラー 最終アドレス FLCR:WE(bit1) フラッシュメモリ書込み禁止 ハードウェアシーケンス 書込み完了 フラグによる確認 ■ フラッシュメモリのデータを消去する ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 (「28.4 自動アルゴリズム起動方法」を参照 ) のチップ消去コマンドを , フラッシュメモリ内の 対象セクタに続けて送ることで実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます。6 サイクル目の書込みが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。 593 第 28 章 フラッシュメモリ ■ フラッシュメモリの任意データ消去 ( セクタ消去 ) フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス (「28.5 自 動アルゴリズム実行状態」を参照 ) のセクタ消去コマンドを , フラッシュメモリ内の対 象セクタに続けて送ることで実行可能です。 ● セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書込みすること により 50μs のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上 記の処理に引き続き消去する目的のセクタ内のアドレスに消去コード(30H)を書込みし ます。 ● 複数のセクタを指定するときの注意 最後のセクタ消去コードの書込みから 50μs のセクタ消去ウェイト期間終了により消去 が開始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアド レスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50μs 以内に入力す る必要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去 コードのライトが有効かどうかはセクタ消去タイマ ( ハードウェアシーケンスフラグ DQ3) によって調べることができます。 なお , このときセクタ消去タイマをリードするアドレスは , 消去しようとしているセク タを指すようにします。 ● フラッシュメモリのセクタ消去手順 ハードウェアシーケンスフラグ (「28.5 自動アルゴリズム実行状態」を参照 ) を用いる ことでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図 28.6-2 に フラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の確認にトグ ルビットフラグ (DQ6) を用いています。 フラグチェックのために読み出すデータは , 消去しようとしているセクタからの読出 しとなりますので注意が必要です。 トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもトグルビットフラグ (DQ6) は再チェックする必要があります。 データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と 同時に変わるので , データポーリングフラグを再チェックする必要があります。 594 第 28 章 フラッシュメモリ 図 28.6-2 フラッシュメモリのセクタ消去手順の例 消去開始 FLCR:WE(bit1) フラッシュメモリ消去許可 消去コマンドシーケンス ①D5557H ←AA H ②CAAABH←55 H ③D5557H ←80 H ④D5557H ←AA H ⑤CAAABH←55 H 1 セクタ消去タイマ(DQ3) 0 ⑥消去セクタへコード入力(30H) 内部アドレスリード YES 消去セクタがほかにあるか NO 内部アドレスリード 1 内部アドレスリード 2 トグルビット(DQ6) データ1(DQ6)=データ 2(DQ6) 次セクタ YES NO 0 タイミングリミット (DQ5) 1 NO 内部アドレスリード 1 内部アドレスリード 2 トグルビット(DQ6) データ1(DQ6)=データ2(DQ6) YES 消去エラー 最終セクタ NO YES FLCR:WE(bit1) フラッシュメモリ消去禁止 ハードウェアシーケンス フラグによる確認 消去完了 595 第 28 章 フラッシュメモリ ■ フラッシュメモリセクタ消去の一時停止 フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス (「28.4 自動 アルゴリズム起動方法」を参照 ) のセクタ消去一時停止コマンドをフラッシュメモリ 内に送ることで実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込 みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) の書込みを行うことで実施されますが , このときアドレスは フラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の 消去一時停止コマンドは無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去 ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20μs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セク タ消去コマンドあるいはセクタ消去再開コマンド発行後 , 20μs 以上後に行ってくださ い。 ■ フラッシュメモリセクタ消去の再開 一時停止したセクタ消去を再開させるには , コマンドシーケンス (「28.4 自動アルゴリ ズム起動方法」を参照 ) のセクタ消去再開コマンドをフラッシュメモリ内に送ること で実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態からセクタ消去を再開するためのコマンドです。このコマンドは消去再開コード (30H) の書込みを行うことで実施されますが , このときのアドレスはフラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 596 第 28 章 フラッシュメモリ 28.6.1 フラッシュメモリ使用上の注意 MB91F248/MB91F249 のフラッシュメモリに関する注意を以下に示します。 ■ フラッシュメモリ使用上の注意 ● リセット (INITX) の入力 読出し中で自動アルゴリズムが起動していないときにリセットを入力するには , "L" レ ベル幅として最低 500ns を確保する必要があります。この場合 , リセット起動後フラッ シュメモリからデータを読み出すまでに , 最低 500ns が必要となります。同様に , 書込 み / 消去中で自動アルゴリズムが起動しているときにリセットを入力するには , "L" レ ベル幅として最低 500ns を確保する必要があります。この場合 , フラッシュメモリを初 期化するために実行中の動作を停止した後 , データを読み出すまでに 20μs が必要とな ります。 書込み中にリセットすると , 書き込まれているデータは不定となります。消去中のハー ドウェアリセットや電源切断により , 消去されているセクタは使用不可となる可能性 があります。 ● ソフトウェアリセット , ウォッチドッグタイマリセットの取消し CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ 状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。これは , リ セット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリズムが 続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメモリユニッ トが読出し状態になることが妨げられる可能性があるためです。これらのリセット条 件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。 ● フラッシュメモリへのプログラムアクセス 自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。 CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム 領域を RAM などの別の領域に切り換え後 , 書込み / 消去を開始する必要があります。 この場合 , 割込みベクタを含むセクタ (SA6) が消去されると , 書込み / 消去割込み処理 を実行できません。 同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込 みソースは無効となります。 ● ホールド機能 CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求 の受付けが許可されたとき , コントロールステータスレジスタ (FLCR) の WE ビットが 必ず "0" になっているようにしてください。 ● VID の適用 セクタプロテクト動作に必要な VID の印加は , 電源が ON のとき開始し , 終了する必要 があります。 597 第 28 章 フラッシュメモリ 28.7 セクタプロテクトオペレーション このフラッシュメモリには不正な書込み / 消去に対し , セクタ単位でこれを無効にす るセクタ保護機能があります。一度保護設定されたセクタはデバイスが破壊しない 限り , その設定を持ち続けますが , 一時的であれば保護を解除し , 書込み / 消去を行 うことも可能です。これらの操作はセクタプロテクトオペレーションを通して行わ れます。 セクタプロテクトオペレーションには書込み / 消去のような自動アルゴリズムはあり ません。また , 通常モードには対応せず , フラッシュメモリモードでのみ実行可能で す。 このため , 主にフラッシュメモリライタを用いた外部端子制御で行われるべきもの です。 ■ セクタプロテクトオペレーション一覧 セクタプロテクトオペレーションには , 以下の 3 種類があります。 • イネーブルセクタプロテクト • ベリファイセクタプロテクト • セクタプロテクト一時解除 表 28.7-1 に , それぞれの端子設定を示します。 表 28.7-1 端子設定 オペレーション CEX OEX WEX A1 イネーブル セクタプロテクト "L" "H" "L" "L" "H" "L" セクタ アドレス - ベリファイ セクタプロテクト "L" "L" "H" "L" "H" "L" セクタ アドレス セクタプロテクト 一時解除 - - - - - A2 - A7 - A17 ∼ A13 D0 ∼ D15 RSTX MD2 MD1 MD0 "H" VID "H" VID コード 出力 * "H" "H" "H" VID - "H" "H" VID "H" *:セクタプロテクト時は "01H", セクタアンプロテクト時は "00H" を出力 598 第 28 章 フラッシュメモリ ■ イネーブルセクタプロテクト イネーブルセクタプロテクトでは,フラッシュメモリ内部の保護回路への書込みを行い ます。 このオペレーションにより 10 個のセクタのどのセクタの組合せでも書込みも消去も無 効にすることができます。 なお , MB91F248/MB91F249 ではすべてのセクタが保護解除された状態で出荷されま す。このオペレーションでは , まずアドレス信号に保護すべきセクタのセクタアドレス (MB91F248: A17, A16, A15, A14, A13, MB91F249: A18, A17, A16, A15, A14, A13) の設定 が必要となります。セクタとセクタアドレスの対応は , 表 28.1-1 を参照してください。 保護回路の書込みは , MD2 と MD0 に VID(=12V) を印加し , CEX=0 にした後 , WEX パ ルスの立下りで開始され , 立上りで終了します。 なお , セクタアドレスは WEX パルスの間中一定に保たなければなりません。セクタ保 護は一度設定されると , 取り消すことができません。また , 保護されたセクタへは , こ れ以降書込み / 消去は不可能となります。 ■ ベリファイセクタプロテクト ベリファイセクタプロテクトでは,フラッシュメモリ内部の保護回路の書込みに対する 検証 ( ベリファイ ) を行います。このオペレーションでは , まず CEX と OEX を "0" に し , WEX を "1" にしたまま MD0 に VID を印加 ( マージンモード ) します。(A7, A2, A1)=(0, 1, 0) の条件で , アドレス信号をあるセクタアドレスにして読み出すと , 保護さ れたセクタでは出力 DQ0 に "1" が出力されます。保護されていないセクタでは , "00H" が読み出されます。図 28.7-1 に , イネーブルセクタプロテクト , ベリファイセク タプロテクトを用いたセクタ保護のアルゴリズムを示します。 599 第 28 章 フラッシュメモリ 図 28.7-1 イネーブルセクタプロテクトおよびベリファイセクタプロテクトを用いたセクタ保護 アルゴリズム 開始 セクタアドレスのセットアップ A17~A13 PLSCNT=1 MD2=MD0=VID, MD1="H" A1=CEX=WEX="L" OEX=RSTX="H" WEXパルス印加 WEX=MD2="H " CEX=OEX="L" (MD0はVIDのまま) セクタアドレスSAの読出し (アドレス=SA、A1="L" A2="H",A7="L") NO NO データ=01H ? YES PLSCNT=50 ? YES ほかにセクタ保護? MD0のVIDを解除 リセットコマンドの書込み NO MD0のVIDを解除 リセットコマンドの書込み Fail セクタ保護完了 600 YES 第 28 章 フラッシュメモリ ■ セクタプロテクト一時解除 イネーブルセクタプロテクトにより保護されたセクタはデバイスが破壊しない限り,書 込み / 消去ができませんが , セクタプロテクト一時解除のオペレーションでは , 以前に 設定されたセクタ保護情報の一時的解除を可能にします。このオペレーションは , MD1 に VID を印加し続けることで設定されます。この間 , 以前に設定されたセクタ保護情 報は無視され , すべてのセクタに書込み / 消去が可能となります。MD1 を "1" (=3.3V) に戻すと , このオペレーションは解除され , 以前に保護されたすべてのセクタが再び保 護されます。図 28.7-2 に , セクタプロテクト一時解除のアルゴリズムを示します。 図 28.7-2 セクタプロテクト一時解除のアルゴリズム 開始 MD1=VID*1 消去または書込み動作実行 MD1="H" セクタ保護解除終了*2 *1:すべての保護されたセクタの保護を解除します。 *2:前に保護されていたセクタが再びセクタ保護されます。 601 第 28 章 フラッシュメモリ 602 第 29 章 シリアル書込み接続例 シリアル書込み基本構成 , シリアルオンボード書込 みに使用する端子 , シリアル書込み接続例 , および フラッシュマイコンプログラマシステム構成につ いて説明します。 29.1 MB91F24x/S シリアル書込み接続例 29.2 MB91F24x/S シリアル書込み ( 非同期 ) 接続例 603 第 29 章 シリアル書込み接続例 29.1 MB91F24x/S シリアル書込み接続例 MB91F24x/S ではフラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサ ポートしています。 ■ MB91F24x/S シリアル書込み基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/ AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。 図 29.1-1 MB91F24x/S シリアル書込み接続の基本構成 ホストインタフェースケーブル (AZ201) 汎用共通ケーブル (AZ210) RS232C AF200 フラッシュマイ コンプログラマ + メモリカード CLK 同期シリアル MB91F24x/S ユーザシステム スタンドアロンで動作可能 <注意事項> AF200 フラッシュマイコンプログラマの機能・操作方法および接続用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株式会社にお問い合わ せください。 604 第 29 章 シリアル書込み接続例 ■ 富士通標準シリアルオンボード書込みに使用する端子 表 29.1-1 富士通標準シリアルオンボード書込みに使用する端子の機能 端 子 機 能 MD2, MD1, MD0 補足説明 フラッシュマイコンプログラマから書込みモードに 制御します。 フラッシュシリアル書込みモード:MOD2, MOD1, MOD0=100B モード端子 ( 参考 ) シングルチップモード:MOD2, MOD1, MOD0=000B X0, X1 発振用端子 書込みモード時に , CPU 内部動作クロックは PLL ク ロック 1 逓倍となっています。したがって , 発振ク ロック周波数が , 内部動作クロックとなりますので , シリアル書換え時に使用する発振子は 1MHz ∼ 16MHz となります。 P10, P11 書込みプログラム起動端子 P10 に "L" レベル , P11 に "H" レベルを入力してくだ さい。 INITX リセット端子 SIN0 シリアルデータ入力端子 SOT0 シリアルデータ出力端子 SCK0 シリアルクロック入力端子 − UART をクロック同期モードとして使用します。 VCC 電源電圧供給端子 書込み電圧をユーザシステムから供給する場合には フラッシュマイコンプログラマとの接続は必要あり ません。 接続時にはユーザ側の電源と短絡しないようにして ください。 VSS GND 端子 フラッシュマイコンプログラマの GND と共通にし ます。 <注意事項> P10, P11, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制御 回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書 込み中はユーザ回路を切り離すことができます。接続例を参照 )。 AF200 書込み制御端子 MB91F24x/S 書込み制御端子 AF200 /TICS端子 ユーザ回路 605 第 29 章 シリアル書込み接続例 ■ シリアル書込み接続例 ( ユーザ電源使用時 ) ユーザ電源使用時におけるシリアル書込み接続例を下記に示します。 なお , モード端子 MOD2, MOD0 にはフラッシュマイコンプログラマ (AF200) の TAUX3, TMODE より MOD2 = 1, MOD0 = 0 が入力されます ( シリアル書換えモード:MOD2, MOD1, MOD0 = 100B)。 図 29.1-2 MB91F24x/S 内部ベクタモード時 シリアル書込み接続例 ( ユーザ電源使用時 ) AF200 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10 -28S (19) 10k MB91F24x/S MOD2 MOD1 10k TMODE MOD0 (12) 10k X0 4MHz X1 TAUX (23) P10 10k /TICS (10) ユーザ回路 10k /TRES (5) INITX 10k ユーザ回路 TTXD (13) SIN TRXD (27) SOT0 TCK (6) SCK0 TVcc GND (2) (7,8, 14,15, 21,22, 1,28) 3,4,9,11,16,17,18, 20,24,25,26ピン は開放 VCC ユーザ電源 VSS 14ピン 1ピン DX10-28S 28ピン DX10-28S:ライトアングルタイプ 606 P11 15ピン コネクタ(ヒロセ電機製)のピン配列 第 29 章 シリアル書込み接続例 <注意事項> • P10, P11, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制 御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア ル書込み中はユーザ回路を切り離すことができます )。 AF200 書込み制御端子 MB91F24x/S 書込み制御端子 AF200 /TICS端子 ユーザ回路 • AF200 との接続はユーザ電源が OFF の状態で行ってください。 607 第 29 章 シリアル書込み接続例 ■ シリアル書込み接続例 ( フラッシュマイコンプログラマから電源供給時 ) フラッシュマイコンプログラマ (AF200) からの電源使用時におけるシリアル書込み接 続例を下記に示します。 なお , モード端子 MOD2, MOD0 にはフラッシュマイコンプログラマ (AF200) の TAUX3, TMODE より MOD2 = 1, MOD0 = 0 が入力されます ( シリアル書換えモード:MOD2, MOD1, MOD0 =100B)。 図 29.1-3 MB91F24x/S 内部ベクタモード時 シリアル書込み接続例 ( ライタから電源供給時 ) AF200 フラッシュマイコン プログラマ ユーザシステム コネクタ DX10-28S MB91F24x/S 10k MOD2 MOD1 (19) TAUX3 10k TMODE (12) MOD0 10k X0 4M Hz X1 (23) TAUX P10 10k (10) /TICS ユーザ回路 /TRES 10k INITX (5) 10k P11 ユーザ回路 TTXD (13) SIN0 TRXD (27) SOT0 TCK (6) SCK0 Vcc (3) GND (7,8, 14,15, 21,22, 1,28) VCC ユーザ電源 VSS 14ピン 電源レギュレータ AZ264 2,4,9,11,16,17,18, 20,24,25,26ピン は開放 DX10-28S:ライトアングルタイプ 608 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)の ピン配列 第 29 章 シリアル書込み接続例 <注意事項> • P10, P11, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制 御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア ル書込み中はユーザ回路を切り離すことができます )。 AF200 書込み制御端子 MB91F24x/S 書込み制御端子 AF200 /TICS端子 ユーザ回路 • AF200 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF200 から供給するときはユーザ電源と短絡しないでください。 609 第 29 章 シリアル書込み接続例 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ユーザ電源使用時におけるフラッシュマイコンプログラマ (AF200) との最小限の接続 例を下記に示します。 フラッシュメモリ書込み時に , 各端子を下記のように設定することにより , MOD2, MOD1, MOD0, P10, P11 とフラッシュマイコンプログラマとの接続は必要ありません ( シリアル書換えモード:MOD2, MOD1, MOD0 = 100B)。 図 29.1-4 ユーザ電源使用時 AF200 フラッシュマイコン プログラマ ユーザシステム MB91F24x/S シリアル書換え時1 MOD2 シリアル書換え時0 MOD1 MOD0 シリアル書換え時0 X0 4MHz X1 シリアル書換え時0 P10 10kΩ ユーザ回路 P11 シリアル書換え時1 ユーザ回路 コネクタ DX10-28S /TRES (5) INITX TTXD (13) SIN0 TRXD (27) SOT0 (6) SCK0 (2) VCC TCK TVcc GND (7,8, 14,15 ,21,2 2,1,2 ユーザ電源 14 ピン 3,4,9,10,11,12,16,17, 18,19,20,23,24,25,26 ピンは開放 610 1 ピン DX 10-28S 28 ピン DX10-28S:ライトアングルタイプ VSS 15 ピン コネクタ(ヒロセ電機製)の ピ ン 配 列 第 29 章 シリアル書込み接続例 <注意事項> • SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制御回路が必 要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中 はユーザ回路を切り離すことができます )。 AF200 書込み制御端子 MB91F24x/S 書込み制御端子 AF200 /TICS端子 ユーザ回路 • AF200 との接続はユーザ電源が OFF の状態で行ってください。 611 第 29 章 シリアル書込み接続例 ■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) フラッシュマイコンプログラマ (AF200) からの電源供給時におけるフラッシュマイコ ンプログラマ (AF200) との最小限の接続例を下記に示します。 フラッシュメモリ書込み時に , 各端子を下記のように設定することにより , MOD2, MOD1, MOD0, P10, P11 とフラッシュマイコンプログラマとの接続は必要ありません。 ( シリアル書換えモード:MD2, MD1, MD0 = 100B) 図 29.1-5 フラッシュマイコンプログラマから電源供給時 AF200 フラッシュマイコン プログラマ ユーザシステム MB91F24x/S シリアル書換え時 1 MOD2 シリアル 書換え時 0 MOD1 MOD0 シリアル書換え時 0 X0 4MHz X1 P10 シリアル 書換え時 0 ユーザ回路 P11 シリアル書換え時 1 ユーザ回路 コネクタ DX10-28S (5) (13) (27) (6) /TRES TTXD TRXD TCK Vcc (3) GND (7,8, 14,15, 21,22, 1,28) 電源レギュレータ AZ264 INITX SIN0 SOT0 SCK0 VCC ユーザ電源 14ピン VSS 1ピン 2,4,9,10,11,12 DX10-28S 16,17,18,19,20 23,24,25,26ピン 28ピン 15ピン は開放 DX10-28S:ライトアングルタイプコネクタ(ヒロセ電機製)のピン配列 612 第 29 章 シリアル書込み接続例 <注意事項> • SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制御回路が必 要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中 はユーザ回路を切り離すことができます )。 AF200 書込み制御端子 MB91F24x/S 書込み制御端子 AF200 /TICS端子 ユーザ回路 • AF200 との接続はユーザ電源が OFF の状態で行ってください。 • 書込み電源を AF200 から供給するときはユーザ電源と短絡しないでください。 613 第 29 章 シリアル書込み接続例 ■ AF200 フラッシュマイコンプログラ マシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) AF220/AF210/AF120/AF110 フラッシュマイコンプログラマ ( 横河ディジタルコン ピュータ株式会社製 ) のシステム構成を示します。 型格 本 体 機能 AF220 /AC4P イーサネットインタフェースモデル /100V ∼ 220V 電源アダプタ AF210 /AC4P スタンダードモデル /100V ∼ 220V 電源アダプタ AF120 /AC4P 単キーイーサネットインタフェースモデル /100V ∼ 220V 電源アダプタ AF110 /AC4P 単キーモデル /100V ∼ 220V 電源アダプタ AZ221 ライタ専用 PC-AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ:1m FF003 富士通製 FR フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P2 2M バイト PC Card ( オプション ) フラッシュメモリ容量 128K バイトまで /P4 4M バイト PC Card ( オプション ) フラッシュメモリ容量 512K バイトまで お問い合わせ先:横河ディジタルコンピュータ株式会社 電話:042-333-6224 ■ 原発振クロック周波数について フラッシュメモリ書込み時に使用可能な原発振クロックは 4.0MHz です。 ■ その他の注意事項 シリアルライタを用いてフラッシュメモリ書込み時のポート状態は , 書込みに使用し ている端子を除きリセット状態と同じです。 614 第 29 章 シリアル書込み接続例 29.2 MB91F24x/S シリアル書込み ( 非同期 ) 接続例 MB91F24x/S のシリアル書込み ( 非同期 ) の接続例を示します。 ■ MB91F24x/S シリアル書込み ( 非同期 ) 基本構成 図 29.2-1 MB91F24x/S シリアル書込み ( 非同期 ) 接続の基本構成 ユーザシステム RS232Cドライバ RS232C UARTによる通信 MB91F24x/S パソコンから RS232C を使いユーザシステムに実装されているフラッシュ内蔵マイコ ンのフラッシュメモリの書換えを行うことができます。 なお , ユーザシステム上に RS232C ドライバがあり , マイコンの UART と通信できるこ とが条件となります。 615 第 29 章 シリアル書込み接続例 ■ プログラマによるオンボード書換え接続例 ユーザシステム MB91F24x/S シリアル 書換え時 1 1 MD2 0 シリアル 1 書換え時 0 0 10 シリアル 書換え時 0 MD1 10 1 MD0 0 1 0 1 P10 シリアル書換え時 0 ユーザ回路 0 シリアル書換え時 0 P11 ユーザ回路 X0 4MHz X1 RS232C ドライバ INITX SIN SOT UARTによる通信 RS232C MD2, MD1, MD0 端子 , P10, P11 端子は PC 側からは制御できませんので , ユーザシステ ム上で設定してください。また , シリアル書換え中は MD2, MD1, MD0 端子 , P10, P11 端子の設定後 , INITX を "L" から "H" にすることによりシリアル書換えモードとなりま すので , PC からシリアル書換え可能となります。 シリアル書換え終了後 , MD2, MD1, MD0 端子は通常使われるモードに , P10, P11 端子 はユーザ回路側に切り換え , INITX を "L" から "H" にすることによりユーザプログラム を実行します。 <注意事項> 将来的に , 横河ディジタルコンピュータ製シリアルプログラマを用いた量産書込みを行う 場合には , 各品種のハードウェアマニュアルに記載のシリアル書込み接続例を参考に , シ リアルクロック端子のパターンを基板上に引いておくことをお勧めします。 616 第 29 章 シリアル書込み接続例 ■ 本プログラマがオンボード書換えに使用する端子 表 29.2-1 MB91F24x/S 用設定 端 子 機 能 補足説明 MD2, MD1, MD0 モード端子 フラッシュ書換え時に制御してください。 MD2="H", MD1=MD0="L" に設定することによりフ ラッシュ書換えモードになります。 P10, P11 書込みプログラム起動端子 フラッシュ書換えモード時に P10=P11="L" に設定しま す。 INITX リセット端子 MD2, MD1, MD0 端子 , P10, P11 端子をフラッシュ書換 えモードに設定してからリセットを解除してください。 SIN0 シリアルデータ入力端子 UART を使用します。 SOT0 シリアルデータ出力端子 UART を使用します。 X0, X1 発振用端子 書込みモード時に , CPU 内部動作クロックは PLL ク ロック 1 逓倍となっております。したがって , 発振ク ロック周波数が , 内部動作クロックとなりますので , シ リアル書換え時に使用する発振子は 1MHz ∼ 16MHz となります。 VCC 電源電圧 - VSS GND 端子 - 617 第 29 章 シリアル書込み接続例 ■ 各端子のタイミングチャート マイコンの各端子には , INITX 端子の入力を基準にし , 下記のようなタイミングで入力 を行ってください。 INITX の立上りに対する各信号のセットアップ時間とホールド時間の最小値である P10, P11 は書込みプログラム起動端子を , SIN0 はシリアルデータ入力端子を示してい ます。 "H" INITX 5tcp "L" MD0 "H" tcp "L" "H" MD1 tcp "L" "H" MD2 tcp "L" "H" P10,P11 tcp tcp×250 "L" "H" SIN0 "L" 618 tcp ×3500(Min) データ 付録 付録として , I/O マップ , 割込みベクタ , 端子状態 一覧 , リトル・エンディアン領域を利用する際の注 意事項 , 命令一覧 , および使用上の注意事項につい て記載しています。 付録 A I/O マップ 付録 B 割込みベクタ 付録 C リセットによる各端子状態 付録 D リトル・エンディアン領域を利用する際の注意事項 付録 E 命令一覧表 付録 F 使用上の注意 619 付録 付録 A I/O マップ メモリ空間領域と周辺リソースの各レジスタの対応を示します。 ■ I/O マップ [ 表の見方 ] アドレス 00000H +0 PDR0 [R/W] B XXXXXXXX レジスタ +1 +2 PDR1 [R/W]B PDR2 [R/W]B XXXXXXXX XXXXXXXX +3 PDR3 [R/W]B XXXXXXXX ブロック T-unit ポートデータレジスタ リード/ライト属性, アクセス単位 (B:バイト, H:ハーフワード, W:ワード) リセット後のレジスタ初期値 レジスタ名(1コラムのレジスタが4n番地, 2コラムが4n+1番地・・・) 最左のレジスタ番地(ワードでアクセスした際は, 1コラム目の レジスタがデータのMSB側となる。) <注意事項> レジスタのビット値は , 以下のように初期値を表します。 "1":初期値 "1" "0":初期値 "0" "X":初期値 "X" "-" :その位置に物理的にレジスタがない 記述されていないデータアクセス属性によるアクセスは禁止です。 620 付録 A I/O マップ 表 A-1 I/O マップ (1 / 12) レジスタ アドレス +0 +1 +2 +3 00000000H PDR0[R/W] B,H XXXXXXXX PDR1[R/W] B,H XXXXXXXX PDR2[R/W] B,H 00000000 PDR3[R/W] B,H XXXX0000 00000004H PDR4[R/W] B,H XXXXXXXX PDR5[R/W] B,H XXXXXXXX PDR6[R/W] B,H XXXXXXXX PDR7[R/W] B,H ----XXXX 00000008H PDR8[R/W] B,H XXXXXXXX PDR9[R/W] B,H XXXXXXXX PDRA[R/W] B,H ----XXXX PDRB[R/W] B,H XXXXXXXX 0000000CH PDRC[R/W] B,H ----XXXX PDRD[R/W] B,H 0000XXXX PDRE[R/W] B,H XXXXXXXX PDRF[R/W] B,H XXXXXXXX 00000010H PDRG[R/W] B,H ----XXXX − − − ブロック ポートデータ レジスタ 00000014H ∼ 0000003CH − 00000040H EIRR0 [R/W] B,H,W ENIR0 [R/W] B,H,W 00000000 00000000 00000044H DICR [R/W] B,H,W -------0 00000048H 0000004CH 予約 ELVR0 [R/W] B,H,W 00000000 00000000 外部割込み (INT0 ∼ INT7) − 遅延割込み / 割込み コントローラ HRCL[R/W] B 0--11111 TMRLR0[W] H,W XXXXXXXX XXXXXXXX − TMR0[R] H,W XXXXXXXX XXXXXXXX TMCSR0[R/W] B,H,W ----0000 00000000 予約 TMRLR1[W] H,W XXXXXXXX XXXXXXXX TMR1[R] H,W XXXXXXXX XXXXXXXX 00000054H − TMCSR1[R/W] B,H,W ----0000 00000000 00000058H TMRLR2[W] H,W XXXXXXXX XXXXXXXX TMR2[R] H,W XXXXXXXX XXXXXXXX − TMCSR2[R/W] B,H,W ----0000 00000000 00000050H 0000005CH 00000060H 00000064H SSR[R/W] B,H,W 00001000 SIDR[R/W] B,H,W XXXXXXXX SCR[R/W,W] B,H,W SMR[R/W, W] B,H,W 00000100 00--0-0- UTIM[R] H (UTIMR[W] H) 00000000 00000000 DRCL[W] B -------- UTIMC[R/W] B 0--00001 リロード タイマ 0 リロード タイマ 1 リロード タイマ 2 UART0 U-Timer0 00000068H ∼ 0000008CH − 00000090H − SGDBL[R/W] B -------0 00000094H SGAR[R/W] B,H,W 00000000 SGFR[R/W] B,H,W XXXXXXXX 予約 SGCR[R/W, R] B,H,W 0------00 000--000 SGTR[R/W] B,H,W XXXXXXXX SGDR[R/W] B,H,W XXXXXXXX サウンド ジェネレータ 621 付録 表 A-1 I/O マップ (2 / 12) レジスタ アドレス 00000098H +0 +1 +2 +3 LCDCMR[R/W] B,H,W 00000000 − LCR0 [R/W] B,H,W 00010000 LCR1 [R/W] B,H,W 00000000 0000009CH VRAM0 [R/W] B,H,W VRAM1[R/W] B,H,W VRAM2 [R/W] B,H,W VRAM3 [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000000A0H VRAM4 [R/W] B,H,W VRAM5 [R/W] B,H,W VRAM6 [R/W] B,H,W VRAM7 [R/W] B,H,W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000000A4H VRAM8 [R/W] B,H,W VRAM9 [R/W] B,H,W VRAM10[R/W]B,H,W XXXXXXXX XXXXXXXX XXXXXXXX 000000A8H VRAM12[R/W] B,H,W XXXXXXXX VRAM13[R/W] B,H,W XXXXXXXX VRAM14[R/W]B,H,W XXXXXXXX ブロック LCD コントローラ VRAM11[R/W] B,H,W XXXXXXXX VRAM15[R/W] B,H,W XXXXXXXX 000000ACH ∼ 000000AFH 000000B0H − SCR3 [R/W] B,H,W 00000000 ESCR3[R/W] B,H,W 000000B4H 00000X00 000000B8H SCR4 [R/W] B,H,W 00000000 ESCR4[R/W] B,H,W 000000BCH 00000X00 000000C0H SCR5 [R/W] B,H,W 00000000 ESCR5[R/W] B,H,W 000000C4H 00000X00 予約 SMR3 [R/W] B,H,W SSR3 [R/W, R] B,H,W 00000000 00001000 ECCR3[R/W, R, W] B,H,W 000000XX RDR4/TDR4 [R/W] B,H,W − LIN-UART1 BGR14[R/W] B,H,W BGR04[R/W] B,H,W 00000000 00000000 SMR5 [R/W] B,H,W SSR5 [R/W, R] B,H,W 00000000 00001000 ECCR5[R/W, R, W] B,H,W 000000XX LIN-UART0 BGR13[R/W] B,H,W BGR03[R/W] B,H,W 00000000 00000000 SMR4 [R/W] B,H,W SSR4 [R/W, R] B,H,W 00000000 00001000 ECCR4[R/W, R, W] B,H,W 000000XX RDR3/TDR3 [R/W] B,H,W − RDR5/TDR5 [R/W] B,H,W − LIN-UART2 BGR15[R/W] B,H,W BGR05 [R/W] B,H,W 00000000 00000000 000000C8H ∼ 000000D0H − 予約 000000D4H TCDT0 [R/W] H,W 00000000 00000000 − TCCS0 [R/W] B,H,W 16 ビットフリー 00000000 ランタイマ 0 000000D8H TCDT1 [R/W] H,W 00000000 00000000 − TCCS1 [R/W] B,H,W 16 ビットフリー 00000000 ランタイマ 1 000000DCH ∼ 000000E0H 000000E4H 000000E8H 622 − IPCP1 [R] H,W XXXXXXXX XXXXXXXX − − 予約 IPCP0 [R] H,W XXXXXXXX XXXXXXXX − ICS01 [R/W] B,H,W 00000000 16 ビット インプット キャプチャ 0, 1 付録 A I/O マップ 表 A-1 I/O マップ (3 / 12) レジスタ アドレス 000000ECH 000000F0H +0 +1 +2 IPCP3 [R] H,W XXXXXXXX XXXXXXXX − +3 IPCP2 [R] H,W XXXXXXXX XXXXXXXX − ICS23 [R/W] B,H,W 00000000 − ブロック 16 ビット インプット キャプチャ 2, 3 000000F4H ∼ 00000104H 00000108H − OCCP1 [R/W] H,W XXXXXXXX XXXXXXXX 0000010CH − 00000110H − 予約 OCCP0 [R/W] H,W XXXXXXXX XXXXXXXX − − − OCS01 [R/W] B,H,W 11101100 00001100 16 ビット アウトプット コンペア 00000114H ∼ 0000012CH − 予約 00000130H PWCSR0[R/W] B,H,W 0000000X 00000000 PWCR0[R] H,W 00000000 00000000 00000134H − − 00000138H PDIVR0[R/W] B,H,W -----000 − PWC タイマ − − 0000013CH ∼ 00000140H − WTDBL [R/W] B ------0 00000144H − 00000148H − 0000014CH WTHR [R/W] B,H ---XXXXX 予約 WTCR [R/W, R] B,H 00000000 000-00-X WTBR [R/W] B ---XXXXX XXXXXXX XXXXXXXX WTMR [R/W] B,H --XXXXXX WTSR [R/W] B --XXXXXX リアルタイム クロック − 00000150H ADERH[R/W] B,H,W 00000000 00000000 ADERL[R/W] B,H,W 00000000 00000000 00000154H ADCS1[R/W] B,H,W ADCS0[R/W] B,H,W 00000000 00000000 00000158H ADCT1[R/W] B,H,W ADCT0[R/W] B,H,W ADSCH[R/W] B,H,W ADECH[R/W] B,H,W 00010000 00101100 ---00000 ---00000 ADCR1[R] B,H,W ------XX ADCR0[R] B,H,W XXXXXXXX 0000015CH CUCR[R/W, R] B,H,W -------- ---0--00 CUTD[R/W] B,H,W 10000000 00000000 00000160H CUTR1[R] B,H,W -------- 00000000 CUTR2[R] B,H,W 00000000 00000000 A/D コンバータ クロック 補正ユニット 623 付録 表 A-1 I/O マップ (4 / 12) レジスタ アドレス 00000164H 00000168H 0000016CH 00000170H 00000174H +0 +1 PWC20[R/W] B,H,W PWC10[R/W] B,H,W XXXXXXXX XXXXXXXX − PWC0[R/W] B -0000--0 +2 +3 − 予約 PWS20[R/W] B,H,W PWS10[R/W] B,H,W -0000000 --000000 PWC21[R/W] B,H,W PWC11[R/W] B,H,W XXXXXXXX XXXXXXXX − PWC1[R/W] B -0000--0 − PWS21[R/W] B,H,W PWS11[R/W] B,H,W -0000000 --000000 PWC22[R/W] B,H,W PWC12[R/W] B,H,W XXXXXXXX XXXXXXXX 00000178H − PWC2[R/W] B -0000--0 00000180H − PWC3[R/W] B -0000--0 ブロック − PWS22[R/W] B,H,W PWS12[R/W] B,H,W -0000000 --000000 ステッパモータ コントローラ PWC23[R/W] B,H,W PWC13[R/W] B,H,W 0000017CH − XXXXXXXX XXXXXXXX 00000184H 00000188H 0000018CH 00000190H PWS23[R/W] B,H,W PWS13[R/W] B,H,W -0000000 --000000 PWC24[R/W] B,H,W PWC14[R/W] B,H,W XXXXXXXX XXXXXXXX − PWC4[R/W] B -0000--0 − PWS24[R/W] B,H,W PWS14[R/W] B,H,W -0000000 --000000 PWC25[R/W] B,H,W PWC15[R/W] B,H,W XXXXXXXX XXXXXXXX − PWC5[R/W] B -0000--0 − PWS25[R/W] B,H,W PWS15[R/W] B,H,W -0000000 --000000 00000194H ∼ 000001A4H 000001A8H − CANPRE[R/W]B,H,W 00000000 予約 00000000 000001ACH 予約 − − − CAN プリスケーラ 予約 000001B0H − TRG[R/W] B,H,W 00000000 − REVC[R/W] B,H,W 00000000 000001B4H PRLH0[R/W]B,H,W XXXXXXXX PRLL0[R/W]B,H,W XXXXXXXX PRLH1[R/W]B,H,W XXXXXXXX PRLL1[R/W]B,H,W XXXXXXXX 000001B8H PRLH2[R/W]B,H,W XXXXXXXX PRLL2[R/W]B,H,W XXXXXXXX PRLH3[R/W]B,H,W XXXXXXXX PRLL3[R/W]B,H,W XXXXXXXX 000001BCH PPGC0[R/W]B,H,W 0000000X PPGC1[R/W]B,H,W 0000000X PPGC2[R/W]B,H,W 0000000X PPGC3[R/W]B,H,W 0000000X 000001C0H PRLH4[R/W]B,H,W XXXXXXXX PRLL4[R/W]B,H,W XXXXXXXX PRLH5[R/W]B,H,W XXXXXXXX PRLL5[R/W]B,H,W XXXXXXXX 000001C4H PRLH6[R/W]B,H,W XXXXXXXX PRLL6[R/W]B,H,W XXXXXXXX PRLH7[R/W]B,H,W XXXXXXXX PRLL7[R/W]B,H,W XXXXXXXX 000001C8H PPGC4[R/W]B,H,W 0000000X PPGC5[R/W]B,H,W 0000000X PPGC6[R/W]B,H,W 0000000X PPGC7[R/W]B,H,W 0000000X PPG0 000001CCH ∼ 000001FCH 624 − 予約 付録 A I/O マップ 表 A-1 I/O マップ (5 / 12) レジスタ アドレス +0 +1 +2 +3 00000200H DMACA0[R/W] B,H,W *1 00000000_0000XXXX_ XXXXXXXX_XXXXXXXX 00000204H DMACB0[R/W] B,H,W 00000000_00000000_XXXXXXXX_XXXXXXXX 00000208H DMACA1[R/W] B,H,W *1 00000000_0000XXXX_ XXXXXXXX_XXXXXXXX 0000020CH DMACB1[R/W] B,H,W 00000000_00000000_XXXXXXXX_XXXXXXXX 00000210H DMACA2[R/W] B,H,W *1 00000000_0000XXXX_ XXXXXXXX_XXXXXXXX 00000214H DMACB2[R/W] B,H,W 00000000_00000000_XXXXXXXX_XXXXXXXX 00000218H DMACA3[R/W] B,H,W *1 00000000_0000XXXX_ XXXXXXXX_XXXXXXXX 0000021CH DMACB3[R/W] B,H,W 00000000_00000000_XXXXXXXX_XXXXXXXX 00000220H DMACA4[R/W] B,H,W *1 00000000_0000XXXX_ XXXXXXXX_XXXXXXXX 00000224H DMACB4[R/W] B,H,W 00000000_00000000_XXXXXXXX_XXXXXXXX ブロック DMA コントローラ 00000228H ∼ 0000023CH 00000240H 予約 DMACR[R/W] B 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXX 00000244H ∼ 000003ECH − 予約 000003F0H BSD0 [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000003F4H BSD1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000003F8H BSDC [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000003FCH BSRR [R] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ビットサーチ 00000400H DDR0[R/W] B,H,W 00000000 DDR1[R/W] B,H,W 00000000 DDR2[R/W] B,H,W 11111111 DDR3[R/W] B,H,W 00001111 00000404H DDR4[R/W] B,H,W 00000000 DDR5[R/W] B,H,W 00000000 DDR6[R/W] B,H,W 00000000 DDR7[R/W] B,H,W ----0000 00000408H DDR8[R/W] B,H,W 00000000 DDR9[R/W] B,H,W 00000000 DDRA[R/W] B,H,W ----0000 DDRB[R/W] B,H,W 00000000 0000040CH DDRC[R/W] B,H,W ----0000 DDRD[R/W] B,H,W 1111---- DDRE[R/W] B,H,W 00000000 DDRF[R/W] B,H,W 00000000 00000410H DDRG[R/W] B,H,W ----0000 − − − データ方向 レジスタ 625 付録 表 A-1 I/O マップ (6 / 12) レジスタ アドレス +0 +1 +2 +3 ブロック 00000414H ∼ 0000041CH − 予約 00000420H PFR0[R/W] B,H,W 00000000 PFR1[R/W] B,H,W 00000000 PFR2[R/W] B,H,W 00000000 PFR3[R/W] B,H,W 00000000 00000424H PFR4[R/W] B,H,W 00000000 PFR5[R/W] B,H,W 00000000 − PFR7[R/W] B,H,W ----0000 00000428H − − PFRA[R/W] B,H,W ----0000 PFRB[R/W] B,H,W 00000000 0000042CH PFRC[R/W] B,H,W ----0000 PFRD[R/W] B,H,W 00000000 PFRE[R/W] B,H,W 00000000 − 00000430H PFRG[R/W] B,H,W ----0000 − − − ポート ファンクション レジスタ 00000434H ∼ 0000043CH − 予約 00000440H 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 00000444H 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 00000448H ICR08[R/W] B,H,W ---11111 ICR09[R/W] B,H,W ---11111 ICR10[R/W] B,H,W ---11111 ICR11[R/W] B,H,W ---11111 0000044CH ICR12[R/W] B,H,W ---11111 ICR13[R/W] B,H,W ---11111 ICR14[R/W] B,H,W ---11111 ICR15[R/W] B,H,W ---11111 00000450H ICR16[R/W] B,H,W ---11111 ICR17[R/W] B,H,W ---11111 ICR18[R/W] B,H,W ---11111 ICR19[R/W] B,H,W ---11111 00000454H 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 00000458H ICR24[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 0000045CH ICR28[R/W] B,H,W ---11111 ICR29[R/W] B,H,W ---11111 ICR30[R/W] B,H,W ---11111 ICR31[R/W] B,H,W ---11111 00000460H ICR32[R/W] B,H,W ---11111 ICR33[R/W] B,H,W ---11111 ICR34[R/W] B,H,W ---11111 ICR35[R/W] B,H,W ---11111 00000464H ICR36[R/W] B,H,W ---11111 ICR37[R/W] B,H,W ---11111 ICR38[R/W] B,H,W ---11111 ICR39[R/W] B,H,W ---11111 00000468H ICR40[R/W] B,H,W ---11111 ICR41[R/W] B,H,W ---11111 ICR42[R/W] B,H,W ---11111 ICR43[R/W] B,H,W ---11111 0000046CH ICR44[R/W] B,H,W ---11111 ICR45[R/W] B,H,W ---11111 ICR46[R/W] B,H,W ---11111 ICR47[R/W] B,H,W ---11111 割込み コントローラ 00000470H ∼ 0000047CH − 予約 00000480H RSRR [R/W] B,H,W 10000000 STCR [R/W] B,H,W 00110011 TBCR [R/W] B,H,W 00XXXX11 00000484H CLKR [W] B,H,W 00000000 WPR [R/W] B,H,W XXXXXXXX DIVR0 [R/W] B,H,W DIVR1 [R/W] B,H,W 00000011 00000000 626 CTBR [W] B,H,W XXXXXXXX クロック コントロール ユニット 付録 A I/O マップ 表 A-1 I/O マップ (7 / 12) レジスタ アドレス 00000488H +0 +1 +2 +3 − − OSCCR [R/W] B X000XXX0 − 0000048CH 00000490H − OSCR [R/W] B 000--001 − ブロック クロック コントロール ユニット 予約 − − メイン発振安定 待ちタイマ 00000494H ∼ 000004F8H 000004FCH − PSCR[W] B XXXXXXXX − 予約 − − ポート入力レベ ル選択レジスタ 00000500H ∼ 0000053CH − 予約 00000540H PILR0[R/W] B,H,W 00000000 PILR1[R/W] B,H,W 00000000 − − 00000544H − PILR5[R/W] B,H,W 0------- − − 00000548H − − − − 0000054CH − 予約 − − 00000550H 予約 − − − ポート入力レベ ル選択 レジスタ 00000554H ∼ 00000578H 0000057CH − 予約 LVRC[R/W] B,H,W 00011000 予約 予約 予約 CPU 動作検出 00000580H ∼ 000005FCH − 予約 00000600H − − EPFR2[R/W] B,H,W 00000000 EPFR3[R/W] B,H,W 00000000 00000604H EPFR4[R/W] B,H,W 00000000 EPFR5[R/W] B,H,W 00000000 − − 00000608H − − − − 0000060CH − EPFRD[R/W] B,H,W 00000000 − − 00000610H EPFRG[R/W] B,H,W ----0000 − − − 拡張ポート ファンクション レジスタ 00000614H ∼ 0000063CH − 予約 627 付録 表 A-1 I/O マップ (8 / 12) レジスタ アドレス +0 +1 +2 +3 00000640H ASR0 [R/W] B,H,W 00000000 00000000 ACR0 [R/W] B,H,W 1111XX00 00000000 00000644H ASR1 [R/W] B,H,W XXXXXXXX XXXXXXXX ACR1 [R/W] B,H,W 0XXX0X00 00X0XXXX 00000648H ASR2 [R/W] B,H,W XXXXXXXX XXXXXXXX ACR2 [R/W] B,H,W XXXX0X00 00X0XXXX 0000064CH ASR3 [R/W] B,H,W XXXXXXXX XXXXXXXX ACR3 [R/W] B,H,W 01XX0X00 00X0XXXX 00000650H ∼ 0000065CH ブロック 外部バスインタ フェース 予約 00000660H AWR0 [R/W] B,H,W 01110000 01011011 AWR1 [R/W] B,H,W XXXX0000 XX0X1XXX 00000664H AWR2 [R/W] B,H,W 0XXX0000 XX0X1XXX AWR3 [R/W] B,H,W 0XXX0000 0X0X1XXX 00000668H ∼ 0000067CH 00000680H − CSER[R/W] B,H,W 00000001 − 予約 − − 外部バスインタ フェース 00000684H ∼ 000007F8H 000007FCH − 予約 − MODR *2 − − − − − − 00000800H ∼ 00000FFCH 00001000H DMASA0[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00001004H DMADA0[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00001008H DMASA1[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0000100CH DMADA1[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00001010H DMASA2[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00001014H DMADA2[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00001018H DMASA3[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0000101CH DMADA3[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00001020H DMASA4[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 00001024H DMADA4[R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 628 予約 DMA コントローラ 付録 A I/O マップ 表 A-1 I/O マップ (9 / 12) レジスタ アドレス +0 +1 +2 +3 ブロック 00001028H ∼ 00006FFCH − 予約 00007000H FLCR[R/W] 01XX1000 − − − 00007004H FLWC[R/W] 00000011 − − − フラッシュ メモリインタ フェース ( 量産品のみ ) 00007008H ∼ 0000FFFCH − 予約 00020000H CTRLR0 STATR0 00020004H ERRCNT0 BTR0 00020008H INTR0 TESTR0 0002000CH BRPER0 − 00020010H IF1CREQ0 IF1CMSK0 00020014H IF1MSK20 IF1MSK10 00020018H IF1ARB20 IF1ARB10 0002001CH IF1MCTR0 − 00020020H IF1DTA10 IF1DTA20 00020024H IF1DTB10 IF1DTB20 00020028H ∼ 0002002CH − 00020030H 予約 (IF1 data mirror, little endian byte ordering) 00020034H ∼ 0002003CH − CAN0 00020040H IF2CREQ0 IF2CMSK0 00020044H IF2MSK20 IF2MSK10 00020048H IF2ARB20 IF2ARB10 0002004CH IF2MCTR0 − 00020050H IF2DTA10 IF2DTA20 00020054H IF2DTB10 IF2DTB20 00020058H ∼ 0002005CH − 00020060H 予約 (IF2 data mirror, little endian byte ordering) 00020064H − ∼ 0002007CH 00020080H 00020084H TREQR20 TREQR10 予約 (32..128 Message buffer) 629 付録 表 A-1 I/O マップ (10 / 12) レジスタ アドレス +0 +1 +2 +3 ブロック 00020088H − ∼ 0002008CH 00020090H NEWDT20 00020094H NEWDT10 予約 (32..128 Message buffer) 00020098H − ∼ 0002009CH 000200A0H CAN0 INIPND20 000200A4H INIPND10 予約 (32..128 Message buffer) 000200A8H ∼ 000200ACH 000200B0H − MESVAL20 000200B4H MESVAL10 予約 (32..128 Message buffer) 00020100H CTRLR1 STATR1 00020104H ERRCNT1 BTR1 00020108H INTR1 TESTR1 0002010CH BRPER1 − 00020110H IF1CREQ1 IF1CMSK1 00020114H IF1MSK21 IF1MSK11 00020118H IF1ARB21 IF1ARB11 0002011CH IF1MCTR1 − 00020120H IF1DTA11 IF1DTA21 00020124H IF1DTB11 IF1DTB21 00020128H ∼ 0002012CH − 00020130H 予約 (IF1 data mirror, little endian byte ordering) CAN1 00020134H ∼ 0002013CH − 00020140H IF2CREQ1 IF2CMSK1 00020144H IF2MSK21 IF2MSK11 00020148H IF2ARB21 IF2ARB11 0002014CH IF2MCTR1 − 00020150H IF2DTA11 IF2DTA21 00020154H IF2DTB11 IF2DTB21 00020158H ∼ 0002015CH 630 − 付録 A I/O マップ 表 A-1 I/O マップ (11 / 12) レジスタ アドレス 00020160H +0 +1 +2 +3 ブロック 予約 (IF2 data mirror, little endian byte ordering) 00020164H − ∼ 0002017CH 00020180H TREQR21 00020184H TREQR11 予約 (32..128 Message buffer) 00020188H ∼ 0002018CH 00020190H − NEWDT21 00020194H NEWDT11 CAN1 予約 (32..128 Message buffer) 00020198H − ∼ 0002019CH 000201A0H INTPND21 000201A4H INTPND11 予約 (32..128 Message buffer) 000201A8H − ∼ 000201ACH 000201B0H 000201B4H MESVAL21 MESVAL11 予約 (32..128 Message buffer) 00380000H ∼ 003FFFFCH − F-bus RAM 32KB − F-bus RAM 24KB − F-bus RAM 16KB − F-bus RAM 8KB − User ROM 512 Kbytes (MB91F249/S) − User ROM 256KB (MB91F248/S, MB91248/S) − User ROM 128KB (MB91247/S) 003A0000H ∼ 003FFFFCH 003C0000H ∼ 003FFFFCH 003E0000H ∼ 003FFFFCH 000A0000H ∼ 000FFFFCH 000C0000H ∼ 000FFFFCH 000E0000H ∼ 000FFFFCH 631 付録 表 A-1 I/O マップ (12 / 12) レジスタ アドレス +0 +1 +2 000A0000H ∼ 000FFFFCH − +3 ブロック User ROM 512KB (MB91F249/S) *1:DMACA0 ∼ DMACA4 の下位 16 ビット (DTC[15:0]) は , バイトでのアクセスはできません。 *2:このレジスタは , モードベクタフェッチにより設定されます。ユーザからはアクセスできません。 <注意事項> • ライトオンリビットのあるレジスタに対してリードモディファイライト (RMW) 系 の命令を行わないでください。 • 632 予約または ( − ) の領域のデータは不定です。 付録 B 割込みベクタ 付録 B 割込みベクタ 付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには , MB91245/S シリーズの割込み要因と割込みベクタ / 割込み制御レジスタの割当てが 記載されています。 ■ ベクタテーブル ICR: 割込みコントローラ内に設けられたレジスタで割込みの各要求に対する割込み レベルを設定します。ICR は割込み要求の各々に対応して用意されています。 TBR: EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。 TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタ アドレスとなります。 TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。 1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR + (3FCH − 4 × vct) vctadr: ベクタアドレス vctofs: ベクタオフセット vct: ベクタ番号 633 付録 付表 B-1 ベクタテーブル (1 / 2) 割込み番号 割込み要因 10 進 16 進 割込みレベル DMA オフ TBR デフォルト 起動 セット のアドレス 要因 リセット 0 0 − 3FCH 000FFFFCH − モードベクタ 1 1 − 3F8H 000FFFF8H − システム予約 2 2 − 3F4H 000FFFF4H − システム予約 3 3 − 3F0H 000FFFF0H − システム予約 4 4 − 3ECH 000FFFECH − システム予約 5 5 − 3E8H 000FFFE8H − システム予約 6 6 − 3E4H 000FFFE4H − コプロセッサ不在トラップ 7 7 − 3E0H 000FFFE0H − コプロセッサエラートラップ 8 8 − 3DCH 000FFFDCH − INTE 命令 9 9 − 3D8H 000FFFD8H − システム予約 10 0A − 3D4H 000FFFD4H − システム予約 11 0B − 3D0H 000FFFD0H − − 3CCHH 000FFFCCH − − 3C8H 000FFFC8H − 000FFFC4H − ステップトレーストラップ NMI 要求 (tool) 12 13 0C 0D 未定義命令例外 14 0E − 3C4H NMI 要求 15 0F 15(FH) 固定 3C0H 000FFFC0H − 外部割込み 0 16 10 ICR00 3BCH 000FFFBCH 6 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 7 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H − 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H − ICR04 3ACH 000FFFACH − ICR05 3A8H 000FFFA8H − ICR06 3A4H 000FFFA4H − ICR07 3A0H 000FFFA0H 000FFF9CH − 8 外部割込み 4 外部割込み 5 外部割込み 6 外部割込み 7 20 21 22 23 14 15 16 17 リロードタイマ 0 アンダフロー 24 18 ICR08 39CH リロードタイマ 1 アンダフロー 25 19 ICR09 398H 000FFF98H 9 リロードタイマ 2 アンダフロー 26 1A ICR10 394H 000FFF94H 10 UART0( 受信完了 , 受信エラー ) 27 1B ICR11 390H 000FFF90H 0 UART0( 送信完了 ) 28 1C ICR12 38CH 000FFF8CH 3 LIN-UART0( 受信完了 , 受信エラー , LIN Synch break, バスアイドル ) 29 1D ICR13 388H 000FFF88H 1 LIN-UART0( 送信完了 ) 30 1E ICR14 384H 000FFF84H 4 LIN-UART1( 受信完了 , 受信エラー , LIN Synch break, バスアイドル ) 31 1F ICR15 380H 000FFF80H 2 LIN-UART1( 送信完了 ) 32 20 ICR16 37CH 000FFF7CH 5 LIN-UART2( 受信完了 , 受信エラー , LIN Synch break, バスアイドル ) 33 21 ICR17 378H 000FFF78H − CAN0 受信・送信完了 , ノードステータス遷移 35 23 ICR19 370H 000FFF70H − 634 付録 B 割込みベクタ 付表 B-1 ベクタテーブル (2 / 2) 割込み番号 割込み要因 10 進 16 進 割込みレベル DMA オフ TBR デフォルト 起動 セット のアドレス 要因 CAN1 受信・送信完了 , ノードステータス遷移 36 24 ICR20 36CH 000FFF6CH − システム予約 37 25 ICR21 368H 000FFF68H − システム予約 38 26 ICR22 364H 000FFF64H − システム予約 39 27 ICR23 360H 000FFF60H − PWC( 測定終了 ) 40 28 ICR24 35CH 000FFF5CH − PWC( オーバフロー ) 41 29 ICR25 358H 000FFF58H − DMAC 転送終了 , 転送エラー 42 2A ICR26 354H 000FFF54H A/D コンバータ 43 2B ICR27 350H 000FFF50H − 14 リアルタイムクロック 時分秒オーバフロー , 補正終了 44 2C ICR28 34CH 000FFF4CH − システム予約 45 2D ICR29 348H 000FFF48H − メイン発振安定待ちタイマ 46 2E ICR30 344H 000FFF44H − タイムベースタイマオーバフロー 47 2F ICR31 340H 000FFF40H − PPG0/1 アンダフロー 48 30 ICR32 33CH 000FFF3CH − PPG2/3 アンダフロー 49 31 ICR33 338H 000FFF38H − PPG4/5 アンダフロー 50 32 ICR34 334H 000FFF34H − PPG6/7 アンダフロー 51 33 ICR35 330H 000FFF30H − 16 ビットフリーランタイマ 0 オーバフロー および OCU0 コンペアマッチクリア 52 34 ICR36 32CH 000FFF2CH − 16 ビットフリーランタイマ 1 オーバフロー 53 35 ICR37 328H 000FFF28H − ICU0( 取込み ) 54 36 ICR38 324H 000FFF24H − ICU1( 取込み ) 55 37 ICR39 320H 000FFF20H − ICU2( 取込み ) 56 38 ICR40 31CH 000FFF1CH − ICU3( 取込み ) 57 39 ICR41 318H 000FFF18H − OCU0( 一致 ) 58 3A ICR42 314H 000FFF14H − ICR43 310H 000FFF10H − ICR44 30CH 000FFF0CH − ICR45 308H 000FFF08H − ICR46 304H 000FFF04H − ICR47 300H 000FFF00H − − 2FCH 000FFEFCH − − 2F8H 000FFEF8H − 2F4H 000FFEF4H ∼ 2C0H ∼ 000FFEC0H 2BCH 000FFEBCH ∼ 000H ∼ 000FFC00H OCU1( 一致 ) システム予約 システム予約 サウンドジェネレータ指定カウント完了 59 60 61 62 3B 3C 3D 3E 遅延割込み要因ビット 63 3F システム予約 (REALOS にて使用 ) 64 40 システム予約 (REALOS にて使用 ) 65 41 システム予約 66 ∼ 79 42 ∼ 4F − INT 命令で使用 80 ∼ 255 50 ∼ FF − − − 635 付録 付録 C リセットによる各端子状態 リセットによる各端子の状態について説明します。 ■ リセット中の端子の状態 リセット中の端子の状態は , モード端子 (MD2 ∼ MD0=00XB) の設定によって決定され ます。 ● 内部ベクタモード設定時 (MD2, MD1, MD0 = 000B) I/O端子(周辺機能端子)はハイインピーダンス(MB91245シリーズでは, SEG0∼SEG11/ COM0 ∼ COM3 は , "L" 出力 ) になり , モードデータの読出し先は内部 ROM になります。 ● 外部ベクタモード設定時 (MD2, MD1, MD0 = 001B) I/O端子(周辺機能端子)はハイインピーダンス(MB91245シリーズでは, SEG0∼SEG11/ COM0 ∼ COM3 は , "L" 出力 ) になり , モードデータの読出し先は外部 ROM になります。 <注意事項> リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器 が誤動作しないように配慮してください。 内部ベクタモードでは , モードデータは内部 (Flash)ROM 領域に格納してください。 外バスモードにおいてアドレスデータマルチプレックスのみをサポートします。外部バス 使用時には , アクセスタイプをアドレスデータマルチプレックスに設定してください。 リセット中の各端子の状態は , 付表 C-1 を参照してください。 636 付録 C リセットによる各端子状態 付表 C-1 モード別端子状態表 (1 / 2) シングルチップモード STOP 初期値 端子名 機能名 SLEEP INITX="L" 時 INITX="H" 時 HIZ=0 HIZ=1 INITX INITX 入力可 入力可 X0 X0 Hi-Z or 入力可 Hi-Z or 入力可 X1 X1 X0A X0A X1A X1A MD0 MD0 MD1 MD1 MD2 MD2 P00 P00/SEG24/INT0/D00 P01 P01/SEG25/INT1/D01 P02 P02/SEG26/INT2/D02 P03 P03/SEG27/INT3/D03 P04 P04/SEG28/INT4/D04 P05 P05/SEG29/INT5/D05 P06 P06/SEG30/D06 P07 P07/SEG31/ATGX/D07 P10 ∼ P17 P10 ∼ P17/SEG16 ∼ SEG23/ D08 ∼ D15 P20 ∼ P27 P20 ∼ P27/SEG0 ∼ SEG7/A00 ∼ A07 P30 ∼ P33 P30 ∼ P33/SEG8 ∼ SEG11/A08 ∼ A11 P34 ∼ P37 P34 ∼ P37/SEG12 ∼ SEG15/ A12 ∼ A15 P40 P40/SIN0 P41 P41/SOT0 P42 P42/SCK0 P43 P43/SIN3 P44 P44/SOT3 P45 P45/SCK3 P46 P46/SGA/ASX P47 P47/SGO/SYSCLK P50 P50/SIN4/CK0/CS0X P51 P51/SOT4/CS1X "H" 出力 or 入力 "H" 出力 or 入力 可 可 入力可 入力可 入力可 Hi-Z or 入力可 Hi-Z or 入力可 "H" 出力 or 入力 "H" 出力 or 入力 可 可 入力可 出力 Hi-Z 入力可 出力 Hi-Z 入力可 "L" 出力 "L" 出力 出力 Hi-Z 入力可 出力 Hi-Z 入力可 入力可 P: 直前状態保持 LCDC 出力時 動 作 or 出力保持 , その他 F: LCDC 出力時 出力Hi-Z/ 動作 or 出力保 持 , PFR0 レジス PFR0 レジスタ タ =0 時 INT0-5 =0 時 INT0-5 入 力可 入力可 P: 直前状態 LCDC 出力時 動 保持, 作 or 出力保持 , F:LCDC 出力時 その他 出力 Hi-Z/ 動作 or 出力保持 P: 直前状態 入力 0 固定 その他 Hi-Z 保持 F: 通常動作 P: 直前状態保持 F: 出力保持 or Hi-Z 出力 Hi-Z/ 入力 0 固定 637 付録 付表 C-1 モード別端子状態表 (2 / 2) シングルチップモード 機能名 P52 P52/SCK4/CS2X P53 P53/SIN5/CK1/CS3X P54 P54/SOT5/RDX P55 P55/SCK5/WR0X P56 P56/OUT0/WR1X P57 P57/OUT1/RDY P60 ∼ P67 P60 ∼ P67/AN0 ∼ AN7 P70 P70/RX0/INT6 P71 P71/TX0 P72 P72/RX1/INT7 P73 P73/TX0 P80 ∼ P87 P80 ∼ P87/AN16 ∼ AN23 P90 ∼ P97 P90 ∼ P97/AN24 ∼ AN31 PA0 ∼ PA3 PA0 ∼ PA3/ PWMxxx ∼ PWMxxx PB0 ∼ PB7 PB0 ∼ PB7/ PWMxxx ∼ PWMxxx PC0 ∼ PC3 PC0 ∼ PC3/ PWMxxx ∼ PWMxxx PD0 PD0/TIN0/IN0/PWC0 PD1 PD1/TIN1 PD2 PD2/TIN2 PD3 PD3/IN3 PD4 PD4/COM0/PPG1 PD5 PD5/COM1/PPG3 PD6 PD6/COM2/PPG5 PD7 PD7/COM3/PPG7 PE0-PE7 PE0-PE7/ PWMxxx-PWMxxx PF0-PF7 PF0-PF7/AN8-AN15 PG0 PG0/PPG0 PG1 PG1/TOT0/PPG2 PG2 PG2/TOT1/PPG4 PG3 PG3/TOT2/PPG6 SLEEP INITX="L" 時 INITX="H" 時 HIZ=0 HIZ=1 P: 直前状態保持 F: 出力保持 or Hi-Z 出力 Hi-Z/ 入力 0 固定 P: 直前状態保持 出力 Hi-Z/ PFR7 F: 出力保持 , レジスタ=1時 INT6 入力可 INT6 入力可 出力 Hi-Z 入力可 638 STOP 初期値 端子名 出力 Hi-Z 入力可 出力 Hi-Z/ P: 直前状態保持 , P: 直前状態 F:Hi-Z 入力 0 固定 保持 P: 直前状態保持 出力 Hi-Z/ PFR7 F: 通常動作 F: 出力保持 , レジスタ=1 時 INT7 入力可 INT7 入力可 P: 直前状態保持 F: 出力保持 or Hi-Z 入力可 入力可 入力可 出力 Hi-Z/ 入力 0 固定 Hi-Z 入力 0 固定 "L" 出力 P: 直前状態保持 LCDC: 出力 or 保持 PPG: 出力保持 "L" 出力 P: 直前状態 保持 F: 通常動作 出力 Hi-Z 入力可 出力 Hi-Z 入力可 P:直前状態 保持 F: 出力保持 or Hi-Z 出力 Hi-Z/ 入力 0 固定 付録 C リセットによる各端子状態 付表 C-2 モード別端子状態表 (1 / 3) 外部バスモード STOP 初期値 8 ビット INITX INITX="L" INITX="H" 時 時 入力可 入力可 SLEEP 入力可 X0 X1 X0A X1A MD0 HIZ=0 HIZ=1 入力可 入力可 MD2 P00/SEG24/ INT0 P01/SEG25/ INT1 P02/SEG26/ INT2 P03/SEG27/ INT3 P04/SEG28/ INT4 P05/SEG29/ INT5 P06/SEG30 ← Hi-Z or 入 Hi-Z or 入 力可 力可 "H" 出力 "H" 出力 or 入力可 or 入力可 ← 入力可 入力可 出力 Hi-Z 出力 Hi-Z 入力可 入力可 P: 直前状 P: 直前状 態保持 態保持 F: 通常動作 F:LC DC 出力時動 作 or 出力 保持 , PF R0 レジス タ =0 時 INT0-5 入 力可 Hi-Z D0 ∼ D15 "L" 出力 A08 ∼ A11 出力 Hi-Z 入力可 "H" 出力 出力 Hi-Z 入力可 F: アドレ ス出 力 P: 直前状 態保持 , F:LC DC 出力時動 作 or 出力 保持その 他 Hi-Z Hi-Z LCDC 出 力時動作 or 出力保 持 その他出 力 Hi-Z/ PFR0 レジ スタ =0 時 INT0-5 入 力可 LCDC 出 力時 動作 or 出力保 持 , その他 出力 Hi-Z / 入力 0 固定 出力 Hi-Z/ F: アドレ 入力 0 固定 ス出力 F: 通常動 P: 直前状 態保持 作 P: 直前状 F: 出力保 持 or Hi-Z 態保持 P: 直前状 態保持 , ASX:"H" 出力 , F: 通常動作 P: 直前状 態保持 , ASX:"H" 出力 , F: 出力保持 CLK 出力 P: 直前状 態保持 CLK:CL K 出力 F: 通常動作 P: 直前状 態保持 CLK:"H" or "L" 出力 F: 通常動作 "H" 出力 P47/SGO/ SYSCLK 入力可 入力可 入力可 HIZ=0 HIZ=1 入力可 入力可 Hi-Z or 入 Hi-Z or 入 力可 力可 "H" 出力 "H" 出力 or 入力可 or 入力可 ← Hi-Z or 入 Hi-Z or 入 力可 力可 "H" 出力 "H" 出力 or 入力可 or 入力可 ← ← 入力可 入力可 ← D00 出力 Hi-Z 出力 Hi-Z 入力可 入力可 Hi-Z Hi-Z 出力 Hi-Z/ 入力 0 固定 F: アドレ ス出力 F: アドレ ス出力 D01 D02 D03 D04 D05 A00 ∼ A07 P46/SGA/ASX INITX="L" INITX="H" 時 時 SLEEP ← P07/SEG31/ ATGX A12 ∼ A15 P40/SIN0 P41/SOT0 P42/SCK0 P43/SIN3 P44/SOT3 P45/SCK3 ← Hi-Z or 入 Hi-Z or 入 力可 力可 "H" 出力 "H" 出力 or 入力可 or 入力可 MD1 STOP 初期値 (8bit と同じ ) 16 ビット D06 D07 D08 ∼ D15 A00 ∼ A07 "L" 出力 "H" 出力 A08 ∼ A11 A12 ∼ A15 出力 Hi-Z 入力可 P40/SIN0 出力 Hi-Z 入力可 P41/SOT0 P42/SCK0 P43/SIN3 P44/SOT3 P45/SCK3 P46/SGA/ASX "H" 出力 P47/SGO/ SYSCLK F: 通常動 P: 直前状 態保持 作 P: 直前状 F: 出力保 持 or Hi-Z 態保持 P: 直前状 P: 直前状 態保持 態保持 ASX:"H" ASX:"H" 出力 , 出力 , F: 通常動作 F: 出力保持 CLK 出力 P: 直前状 態保持 , CLK:CL K 出力 F: 通常動作 P: 直前状 態保持 , CLK:"H" or "L" 出力 F: 通常動作 639 付録 付表 C-2 モード別端子状態表 (2 / 3) 外部バスモード STOP 初期値 8 ビット P50/SIN4/ CK0/CS0X P51/SOT4/ CS1X P52/SCK4/ CS2X P53/SIN5/ CK1/CS3X P54/SOT5/ RDX P55/SCK5/ WR0X P56/OUT0 P57/OUT1/ RDY 640 INITX="L" INITX="H" 時 時 出力 Hi-Z 入力可 "H" 出力 SLEEP HIZ=0 バスコン トロール : "H" 出力 P: 直前状 態保持 F: 通常動作 P: 直前状 態保持 F: 通常動 作 , EPFR =0 時 :"H" 出力 RDY 入力 P: 直前状 態保持 F: 通常状態 RDY 入力 HIZ=1 INITX="L" INITX="H" 時 時 バスコン 出力 Hi-Z/ P50/SIN4/CK0/ 出力 Hi-Z CS0X トロール : 入力 0 固 入力可 "H" 出力 P51/SOT4/ 定 CS1X P: 直前状 態保持 P52/SCK4/ F: 出力保 CS2X 持 or Hi-Z P53/SIN5/CK1/ CS3X P54/SOT5/RDX P: 直前状 態保持 F: 出力保 持 , EPFR =0 時 :"H" 出力 P: 直前状 態保持 F: 出力保持 RDY 入力 STOP 初期値 (8bit と同じ ) 16 ビット "H" 出力 SLEEP HIZ=0 バスコン トロール : "H" 出力 P: 直前状 態 保持 F: 通常動作 バスコン 出力 Hi-Z/ トロール : 入力 0 固定 "H" 出力 P: 直前状 態 保持 F: 出力保 持 or Hi-Z P55/SCK5/ WR0X P56/OUT0/ WR1X P57/OUT1/ RDY HIZ=1 RDY 入力 P: 直前状 P: 直前状 態保持 態保持 F: 通常状態 F: 出力保持 RDY 入力 RDY 入力 付録 C リセットによる各端子状態 付表 C-2 モード別端子状態表 (3 / 3) 外部バスモード STOP 初期値 8 ビット INITX="L" INITX="H" 時 時 16 ビット HIZ=0 STOP 初期値 (8bit と同じ ) SLEEP HIZ=1 INITX="L" INITX="H" 時 時 SLEEP HIZ=0 HIZ=1 P60 ∼ P77/ AN0 ∼ AN7 P70/RX0/INT6 P71/TX0 P72/RX1/INT7 P80 ∼ P87/ AN16 ∼ AN23 P90 ∼ P97/ AN24 ∼ AN31 PA0 ∼ PA3/ PWMxxxPWMxxx PB0 ∼ PB7/ PWMxxx ∼ PWMxxx PC0 ∼ PC3/ PWMxxx ∼ PWMxxx PD0/TIN0/ IN0/PWC0 PD1/TIN1 PD2/TIN2 PD3/IN3 PD4/COM0/ PPG1 PD5/COM1/ PPG3 PD6/COM2/ PPG5 PD7/COM3/ PPG7 シングルチップモードと同じ PE0 ∼ PE7/ PWMxxx ∼ PWMxxx PF0 ∼ PF7/ AN8 ∼ AN15 PG0/PPG0 PG1/TOT0/ PPG2 PG2/TOT1/ PPG4 PG3/TOT2/ PPG6 641 付録 付録 D リトル・エンディアン領域を利用する際の注意事項 リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明します。 • C コンパイラ • アセンブラ • リンカ • デバッガ ■ C コンパイラ (fcc911) C言語でプログラミングをするにあたって, リトルエンディアン領域に対して次のよう な操作を行ったときは , 動作が保証できませんのでご注意ください。 - 初期値付き変数の配置 - 構造体代入 - 文字列操作関数を使った文字型配列以外の操作 - 文字列操作関数使用時の -K lib オプションの指定 - double 型 , long double 型の利用 - スタックのリトルエンディアン領域への配置 ● 初期値付き変数の配置 リトルエンディアン領域に , 初期値付きの変数を配置することはできません。 コンパイラは , リトルエンディアンの初期値を生成する機能を持っていません。リトル エンディアン領域に変数を配置することはできますが , 初期値を設定することはでき ません。 プログラムの先頭で , 初期値を設定する処理を行ってください。 [ 例 ] リトルエンディアン領域の変数 little_data に初期値を設定する場合 extern int little_data; void little_init(void) { little_data = 初期値 ; } void main(void) { little_init(); ... } 642 付録 D リトル・エンディアン領域を利用する際の注意事項 ● 構造体代入 構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造 体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を 行うと , 正しい結果が得られません。 構造体のメンバをそれぞれ代入してください。 [ 例 ] リトルエンディアン領域の構造体変数 little_st に構造体代入する場合 struct tag { char c; int i; } normal_st; extern struct tag little_st; #define STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i; void main(void) { STRMOVE(little_st,normal_st); } また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと きには , 前述の方法においても正しい結果が得られません。 構造体のメンバの配置が一致しないときは , リトルエンディアン領域に構造体変数を 配置しないでください。 ● 文字列操作関数を使った文字型配列以外の操作 標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま す。このためリトルエンディアン領域に配置された char, unsigned char, signed char 型以 外の型を持つ領域に対し , 文字列操作関数を使った処理を行うと , 正しい結果が得られ ません。 このような処理は行わないでください。 [ 不具合例 ] memcpy でのワードデータの転送 int big = 0x01020304; /* ビッグエンディアン領域 */ extern int little; /* リトルエンディアン領域 */ memcpy(&little,&big, 4); /* memcpy による転送 */ 上記の実行結果は (ビッグエンディアン領域) 01 02 03 04 (リトルエンディアン領域) → memcpy → 01 02 03 04 03 02 01 となり , ワードデータの転送結果としては誤りになります。 (正しい結果) 04 643 付録 ● 文字列操作関数使用時の -K lib オプションの指定 -K lib オプションを指定すると , コンパイラはいくつかの文字列操作関数に対し , イン ライン展開を行います。このとき , 最適な処理を選択するためハーフワードまたはワー ドごとの処理に変更される場合があります。 このためリトルエンディアン領域に対する処理が正しく実行されません。 リトルエンディアン領域に対し文字列操作関数を使った処理を行っているときは , -K lib オプションを指定しないでください。 -K lib オプションを包含する -O 4 オプションや -K speed オプションも同様に指定しな いでください。 ● double 型 , long double 型の利用 double 型および long double 型へのアクセスは , 上位 1 ワード , 下位 1 ワードをそれぞれ アクセスする方法で行われます。このため , リトルエンディアン領域に配置された double 型 , long double 型変数に対するアクセスは , 正しい結果が得られません。 リトルエンディアン領域に割り当てられた同一型の変数どうしの代入は可能ですが , 最適化の結果これらの代入が定数の代入に置き換えられるときもあります。 double 型および long double 型変数をリトルエンディアン領域に配置しないでください。 [ 不具合例 ] double 型データの転送 double big = 1.0; /* ビッグエンディアン領域 */ extern int little; /* リトルエンディアン領域 */ little = big; /* double 型データの転送 */ 上記の実行結果は (ビッグエンディアン領域) 3f f0 00 00 00 00 00 (リトルエンディアン領域) 00 → 00 00 f0 3f 00 00 00 00 00 00 f0 3f となり , double 型データの転送結果としては誤りになります。 (正しい結果) 00 00 00 00 ● スタックのリトルエンディアン領域への配置 リトルエンディアン領域にスタックの一部あるいは全部が配置された場合 , 動作を保 証しません。 644 付録 D リトル・エンディアン領域を利用する際の注意事項 ■ アセンブラ (fasm911) FR のアセンブラ言語でプログラミングをするにあたって , リトルエンディアン領域に 関して注意して頂きたい項目を以下に示します。 ● セクションについて リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク ションとして定義してください。 もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど の指定をした場合には , MB91245/S シリーズでのアクセス動作は保証できなくなりま す。 [例] /* 正しいリトルエンディアン領域のセクション定義 */ .SECTION Little_Area, DATA, ALIGN=4 Little_Word: .RES.W 1 Little_Half: .RES.H 1 Little_Byte: .RES.B 1 ● データのアクセスについて リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー タへのアクセスは , 必ずデータサイズと同じサイズでアクセスしてください。 [例] LDI #0x01020304, r0 LDI #Little_Word, r1 LDI #0x0102, r2 LDI #Little_Half, r3 LDI #0x01, r4 LDI #Little_Byte, r5 /* 32 ビットデータは , ST 命令 ( や LD 命令など ) でアクセスします。*/ ST r0, @r1 /* 16 ビットデータは , STH 命令 ( や LDH 命令など ) でアクセスします。*/ STH r2, @r3 645 付録 /* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/ STB r4, @r5 本品種でデータサイズと異なるサイズでアクセスした場合には , その値の保証はでき ません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使って 一度にアクセスした場合にはデータの値の保証はできません。 ■ リンカ (flnk911) リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ ン配置で注意して頂きたい項目を以下に示します。 ● セクション種別の制限 リトルエンディアン領域には , 初期値なしデータセクションのみ配置することができ ます。 リトルエンディアン領域に初期値付きデータセクション , スタックセクション , および コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス 解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。 ● エラーの未検出 リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ アン領域に配置したセクションの内容を十分にご確認のうえ使用してください。 646 付録 D リトル・エンディアン領域を利用する際の注意事項 ■ デバッガ (sim911, eml911, mon911) ● シミュレータデバッガ リトルエンディアン領域を示すような , メモリ空間指定コマンドはありません。 したがって , メモリ操作コマンドや , メモリを操作する命令実行は , ビッグエンディア ンとして扱われます。 ● エミュレータデバッガ , モニタデバッガ 以下のコマンドでリトルエンディアン領域をアクセスした場合に , 正常な値として扱 われませんので注意してください。 − set memory/show memory/enter/examine/set watch コマンド → 浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定・表示と もにできません。 − search memory コマンド → halfword, word のデータの検索を行った場合 , 指定した値で検索が行われませ ん。 − 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む ) → 正常な命令コードが設定・表示ともにできません ( リトルエンディアン領域には , 命令コードを配置しないようにしてくださ い )。 − call/show call コマンド → スタック領域が, リトルエンディアン領域に置かれた場合, 正常に動作しませ ん (リトルエンディアン領域にスタック領域を配置しないようにしてください)。 647 付録 付録 E 命令一覧表 FR ファミリの命令一覧表です。 ■ 命令一覧表 [ 命令一覧表の読み方 ] ニーモニック ADD Rj, Rj *ADD #s5, Rj , , (1) 型 A C , , OP AG A4 , , CYC 1 1 , , (3) (4) (5) (2) NZVC 動 作 CCCC Ri + Rj -> Rj CCCC Ri + s5 -> Ri , , , , (6) 備考 (7) (1) 命令名が示されています。 * 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。 (2) オペランドに指定可能なアドレッシングモードを記号で示されています。 記号の意味は , 「・アドレッシングモードの記号 ( 次項 ) 」を参照してください。 (3) 命令フォーマットが示されています。 (4) 命令コードが 16 進数表示されています。 (5) マシンサイクル数を表しています。 a: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。 b: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。 ただし, LD動作の対象となるレジスタを直後の命令が参照する場合には, イン タロックがかかり , 実行サイクル数が+ 1 増加します。 c: 直後の命令が , R15 または SSP または USP に対し , 読出しあるいは書込みを行 う命令であるとき , あるいは命令フォーマット A の命令であるとき , インタ ロック がかかり , 実行サイクル数は+ 1 増加して 2 となります。 d; 直後の命令が MDH/MDL を参照する場合 , インタロックがかかり , 実行サイク ル数は増加して 2 となります。 a, b, c, d とも最小は 1 サイクルです。 (6) フラグ変化を表しています。 フラグ変化 C - 0 1 ・・・ 変化する ・・・ 変化しない ・・・ クリア ・・・ セット (7) 命令動作が表記されています。 648 N Z V C フラグの意味 ネガティブフラグ ・・・ ・・・ ゼロフラグ ・・・ オーバフラグ ・・・ キャリフラグ 付録 E 命令一覧表 ● アドレッシングモードの記号 Ri : レジスタ直接 (R0 ∼ R15, AC, FP, SP) Rj : レジスタ直接 (R0 ∼ R15, AC, FP, SP) R13 : レジスタ直接 (R13, AC) Ps : レジスタ直接 ( プログラムステータスレジスタ ) Rs : レジスタ直接 (TBR,RP, SSP, USP, MDH, MDL) Cri : レジスタ直接 (CR0 ∼ CR15) CRj : レジスタ直接 (CR0 ∼ CR15) #i8 : 符号なし 8 ビット即値 ( − 128 ∼ 255) ( 注意事項 ) − 128 ∼− 1 は , 128 ∼ 255 として扱います。 #i20 : 符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF) ( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。 #i32 : 符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF) ( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF とし て扱います。 #s5 : 符号付き 5 ビット即値 (-16 ∼ 15) #s10 : 符号付き 10 ビット即値 (-512 ∼ 508 4 の倍数のみ ) #u4 : 符号なし 4 ビット即値 (0 ∼ 15) #u5 : 符号なし 5 ビット即値 (0 ∼ 31) #u8 : 符号なし 8 ビット即値 (0 ∼ 255) #u10 : 符号なし 10 ビット即値 (0 ∼ 1020 4 の倍数のみ ) @dir8 : 符号なし 8 ビット直接アドレス (0 ∼ 0XFF) @dir9 : 符号なし 9 ビット直接アドレス (0 ∼ 0X1FE 2 の倍数のみ ) @dir10 : 符号なし 10 ビット直接アドレス (0 ∼ 0X3FC 4 の倍数のみ ) label9 : 符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC 2 の倍数のみ ) label12 : 符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC 2 の倍数のみ ) label20 : 符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF) label32 : 符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF) @Ri : レジスタ間接 (R0 ∼ R15, AC, FP, SP) @Rj : レジスタ間接 (R0 ∼ R15, AC, FP, SP) @(R13,Rj) : レジスタ相対間接 (Rj: R0 ∼ R15, AC, FP, SP) @(R14,disp10) : レジスタ相対間接 (disp10: -0X200 ∼ 0X1FC 4 の倍数のみ ) @(R14,disp9) : レジスタ相対間接 (disp9: -0X100 ∼ 0XFE 2 の倍数のみ ) @(R14,disp8) : レジスタ相対間接 (disp8: -0X80 ∼ 0X7F) @(R15,udisp6) : レジスタ相対間接 (udisp6: 0 ∼ 60 4 の倍数のみ ) @Ri+ : ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP) @R13+ : ポストインクリメント付きレジスタ間接 (R13, AC) @SP+ : スタックポップ @-SP : スタックプッシュ (reglist) : レジスタリスト 649 付録 ● 命令フォーマット 図 E-1 命令フォーマット MSB ┌────── A B LSB 16bit ──────┐ OP Rj Ri 8 4 4 OP i8/O8 Ri 4 8 4 C OP u4/m4 Ri 8 4 4 ADD,ADDN,CMP,LSL,LSR,ASR命令のみ *C ’ OP 7 D F 5 4 8 OP SUB-OP Ri 8 4 4 OP rel11 5 650 Ri u8/rel8/dir/ reglist 8 OP E s5/u5 11 付録 E 命令一覧表 付表 E-1 加減算 ニーモニック ADD Rj, Ri *ADD #s5, Ri 型 A C’ OP A6 A4 CYCLE NZVC 1 1 動作 CCCC Ri+Rj->Ri CCCC Ri+s5->Ri ADD #u4, Ri ADD2 #u4, Ri ADDN Rj, Ri ADDN Rj, Ri *ADDN #s5, Ri C C A A C’ A4 A5 A7 A2 A0 1 1 1 1 1 CCCC CCCC CCCC ------- Ri+extu(i4)->Ri Ri+extu(i4)->Ri Ri+Rj+c->Ri Ri+Rj->Ri Ri+s5->Ri ADDN #u4, Ri ADDN2 #u4, Ri SUB Rj, Ri SUBC Rj, Ri SUBN Rj, Ri C C A A A A0 A1 AC AD AE 1 1 1 1 1 ------CCCC CCCC ---- Ri+extu(i4)->Ri Ri+extu(i4)->Ri Ri-Rj->Ri Ri-Rj-c->Ri Ri-Rj->Ri ニーモニック CMP Rj, Ri *CMP #s5, Ri 型 A C’ OP AA A8 1 1 CCCC Ri-Rj CCCC Ri-s5 アセンブラでは上位 1 ビットを符号と見る CMP #u4, Ri CMP2 #u4, Ri C C A8 A9 1 1 CCCC Ri-extu(i4) CCCC Ri-extu(i4) ゼロ拡張 マイナス拡張 備考 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き加算 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き減算 付表 E-2 比較演算 CYCLE NZVC 動作 備考 651 付録 付表 E-3 論理演算 ニーモニック AND Rj, Ri AND Rj, @Ri ANDH Rj, @Ri ANDB Rj, @Ri OR Rj, Ri OR Rj, @Ri ORH Rj, @Ri ORB Rj, @Ri EOR Rj, Ri EOR Rj, @Ri EORH Rj, @Ri EORB Rj, @Ri 型 A A A A A A A A A A A A OP 82 84 85 86 92 94 95 96 9A 9C 9D 9E CYCLE NZVC 1 1+2a 1+2a 1+2a 1 1+2a 1+2a 1+2a 1 1+2a 1+2a 1+2a CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-- RMW 動作 Ri & = Rj (Ri) & = Rj (Ri) & = Rj (Ri) & = Rj Ri | = Rj (Ri) | = Rj (Ri) | = Rj (Ri) | = Rj Ri ^ = Rj (Ri) ^ = Rj (Ri) ^ = Rj (Ri) ^ = Rj ○ ○ ○ ○ ○ ○ ○ ○ ○ 備考 ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト 付表 E-4 ビット操作命令 ニーモニック BANDL #u4, @Ri BANDH #u4, @Ri *BAND #u8, @Ri *1 BORL #u4, @Ri BORH #u4, @Ri *BOR #u8, @Ri *2 BEORL #u4, @Ri BEORH #u4, @Ri *BEOR #u8, @Ri *3 BTSTL #u4, @Ri BTSTH #u4, @Ri 型 OP CYCLE NZVC 動作 C 80 1+2a ---- (Ri)&=(0xF0+u4) C 81 1+2a ---- (Ri)&=((u4<<4)+0x0F) ---- (Ri)&=u8 RMW 備考 ○ ○ - 下位 4 ビットを操作 上位 4 ビットを操作 C C 90 91 1+2a 1+2a ---------- (Ri) | = u4 (Ri) | = (u4<<4) (Ri) | = u8 ○ ○ - 下位 4 ビットを操作 上位 4 ビットを操作 C C 98 99 1+2a 1+2a ---------- (Ri) ^ = u4 (Ri) ^ = (u4<<4) (Ri) ^ = u8 ○ ○ - 下位 4 ビットを操作 上位 4 ビットを操作 C C 88 89 2+a 2+a 0C-- (Ri) & u4 CC-- (Ri) & (u4<<4) - 下位 4 ビットをテスト 上位 4 ビットをテスト *1 アセンブラは , u8&0x0F でビットが立っていれば , BANDL を生成し , u8&0xF0 でビットが立ってい れば , BANDH を生成する。BANDL, BANDH 両方生成する場合もある。 *2 アセンブラは , u8&0x0F でビットが立っていれば , BORL を生成し , u8&0xF0 でビットが立っていれ ば , BORH を生成する。BORL, BORH 両方生成する場合もある。 *3 アセンブラは , u8&0x0F でビットが立っていれば , BEORL を生成し , u8&0xF0 でビットが立ってい れば , BEORH を生成する。BEORL, BEORH 両方生成する場合もある。 652 付録 E 命令一覧表 付表 E-5 乗除算 ニーモニック MUL Rj,Ri MULU Rj,Ri MULH Rj,Ri MULUH Rj,Ri DIV0S Ri DIV0U Ri DIV1 Ri DIV2 Ri DIV3 DIV4S *DIV Ri 型 A A A A E E E E E E OP AF AB BF BB 97-4 97-5 97-6 97-7 9F-6 9F-7 CYCLE NZVC 5 5 3 3 1 1 d 1 1 1 36 CCCCCCCC-CC--------C-C -C-C -------C-C 動作 Ri * Rj -> MDH, MDL Ri * Rj -> MDH, MDL Ri * Rj -> MDL Ri * Rj -> MDL 備考 32bit*32bit=64bit 符号なし 16bit*16bit=32bit 符号なし ステップ演算 32bit/32bit=32bit MDL / Ri -> MDL , MDL % Ri -> MDH *1 *DIVU Ri -C-C MDL / Ri -> MDL , MDL % Ri -> MDH *2 *1 DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成する。命令コード長は , 72 バイトとなる。 *2 DIV0U, DIV1 × 32 を生成する。命令コード長は , 66 バイトとなる。 付表 E-6 シフト ニーモニック LSL Rj, Ri *LSL #u5, Ri(u5:0 ∼ 31) LSL #u4, Ri LSL2 #u4, Ri LSR Rj, Ri *LSR #u5, Ri(u5:0 ∼ 31) LSR #u4, Ri LSR2 #u4, Ri ASR Rj, Ri *ASR #u5, Ri (u5:0 ∼ 31) ASR #u4, Ri ASR2 #u4, Ri 型 A C’ C C A C’ C C A C’ C C OP B6 B4 B4 B5 B2 B0 B0 B1 BA B8 B8 B9 CYCLE NZVC 1 1 1 1 1 1 1 1 1 1 1 1 CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C 動作 Ri << Rj -> Ri Ri << u5 -> Ri Ri << u4 -> Ri Ri <<(u4+16) -> Ri Ri >> Rj -> Ri Ri >> u5 -> Ri Ri >> u4 -> Ri Ri >>(u4+16) -> Ri Ri >> Rj -> Ri Ri >> u5 -> Ri Ri >> u4 -> Ri Ri >>(u4+16) -> Ri 備考 論理シフト 論理シフト 算術シフト 付表 E-7 即値セット /16 ビット /32 ビット即値転送命令 ニーモニック LDI:32 #i32, Ri LDI:20 #i20, Ri LDI:8 #i8, Ri *LDI # {i8|i20|i32} ,Ri 型 E C B OP 9F-8 9B C0 CYCLE NZVC 3 2 1 ---------- 動作 備考 i32 -> Ri 上位 12bit はゼロ拡張 i20 -> Ri 上位 24bit はゼロ拡張 i8 -> Ri {i8 | i20 | i32} -> Ri * * 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行う。 即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択される。 653 付録 付表 E-8 メモリロード ニーモニック LD @Rj, Ri LD @(R13,Rj), Ri LD @(R14,disp10),Ri LD @(R15,udisp6),Ri LD @R15+, Ri LD @R15+, Rs LD @R15+, PS LDUH @Rj, Ri LDUH @(R13,Rj), Ri LDUH @(R14,disp9), Ri LDUB @Rj, Ri LDUB @(R13,Rj), Ri LDUB @(R14,disp8), Ri 型 A A B C E E E A A B A A B OP 04 00 2 03 07-0 07-8 07-9 05 01 4 06 02 6 CYCLE NZVC b b b b b b 1+a+b b b b b b b ------------------CCCC ------------------- 動作 (Rj)->Ri (R13+Rj)->Ri (R14+disp10)->Ri (R15+udisp6)->Ri (R15)->Ri,R15+=4 (R15)->Rs,R15+=4 (R15)->PS, R15+=4 (Rj)->Ri (R13+Rj)->Ri (R14+disp9)->Ri (Rj)->Ri (R13+Rj)->Ri (R14+disp8)->Ri 備考 Rs: 特殊レジスタ * ゼロ拡張 ゼロ拡張 ゼロ拡張 ゼロ拡張 ゼロ拡張 ゼロ拡張 *: ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。 disp10/4->o8, disp9/2->o8, disp8->o8, disp10, disp9, disp8 は符号付き , udisp6/4->o4 udisp6 は符号なし。 付表 E-9 メモリストア ニーモニック ST Ri,@Rj ST Ri,@(R13,Rj) ST Ri,@(R14,disp10) ST Ri,@(R15,udisp6) ST Ri,@-R15 ST Rs,@-R15 ST PS,@-R15 STH Ri,@Rj STH Ri,@(R13,Rj) STH Ri,@(R14,disp9) STB Ri,@Rj STB Ri,@(R13,Rj) STB Ri,@(R14,disp8) 型 A A B C E E E A A B A A B OP 14 10 3 13 17-0 17-8 17-9 15 11 5 16 12 7 CYCLE NZVC a a a a a a a a a a a a a ---------------------------------------- 動作 Ri->(Rj) Ri->(R13+Rj) Ri->(R14+disp10) Ri->(R15+udisp6) R15-=4,Ri->(R15) R15-=4, Rs->(R15) R15-=4, PS->(R15) Ri->(Rj) Ri->(R13+Rj) Ri->(R14+disp9) Ri->(Rj) Ri->(R13+Rj) Ri->(R14+disp8) 備考 ワード ワード ワード Rs: 特殊レジスタ * ハーフワード ハーフワード ハーフワード バイト バイト バイト *: ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。 disp10/4->o8, disp9/2->o8, disp8->o8, disp10, disp9, disp8 は符号付き , udisp6/4->o4 udisp6 は , 符号な し。 付表 E-10 レジスタ間転送 MOV MOV MOV MOV MOV ニーモニック Rj, Ri Rs, Ri Ri, Rs PS, Ri Ri, PS 型 A A E E E OP 8B B7 B3 17-1 07-1 CYCLE NZVC 1 1 1 1 c *: 特殊レジスタ Rs : TBR,RP, USP, SSP, MDH, MDL 654 動作 ---- Rj -> Ri ---- Rs -> Ri ---- Ri -> Rs ---- PS -> Ri CCCC Ri -> PS 備考 汎用レジスタ間転送 Rs: 特殊レジスタ Rs: 特殊レジスタ * 付録 E 命令一覧表 付表 E-11 通常分岐 ( 遅延なし ) OP CYCLE NZVC ニーモニック JMP @Ri CALL label12 CALL @Ri RET INT #u8 型 E E F E D 97-0 D0 97-1 97-2 1F 2 2 2 2 3+3a ---------------- INTE E 9F-3 3+3a ---- RETI BRA label9 BNO label9 BEQ label9 E D D D 97-3 E0 E1 E2 2+2A 2 1 2/1 CCCC ---------- 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 D D D D D D D D D D D D D E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 ---------------------------------------- 動作 備考 Ri -> PC PC+2->RP , PC+2+(label12-PC-2)->PC PC+2->RP ,Ri->PC RP -> PC リターン SSP-=4, PS->(SSP), SSP-=4, PC+2->(SSP), 0->I フラグ , 0->S フラグ , (TBR+0x3FC-u8 × 4)->PC SSP-=4, PS->(SSP), SSP-=4, PC+2->(SSP), 0->S フラグ ,(TBR+0x3D8)->PC エミュレータ用 (R15)->PC,R15-=4,(R15)->PS,R15-=4 PC+2+(label9-PC-2)->PC 非分岐 if(Z==1) then PC+2+(label9-PC-2)->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 <注意事項> • CYCLE 数の「2/1」は , 分岐するとき "2", 分岐しないとき "1" であることを示します。 • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を 設定します。 (label12-PC-2)/2->rel11, (label9-PC-2)/2->rel8, label12, label9 は符号付き。 • RETI 命令を実行するときは S フラグが "0" であることが必要です。 655 付録 付表 E-12 遅延分岐 OP CYCLE NZVC ニーモニック JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D label9 BNO:D label9 BEQ:D label9 型 E F E E D D D 9F-0 D8 9F-1 9F-2 F0 F1 F2 1 1 1 1 1 1 1 ---------------------- BNE:D label9 BC:D label9 BNC:D label9 BN:D label9 BP:D label9 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 D D D D D D D D D D D D D F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 1 1 1 1 1 1 1 1 1 1 1 1 1 ---------------------------------------- 動作 備考 Ri -> PC PC+4->RP , PC+2+(label12-PC-2)->PC PC+4->RP ,Ri->PC RP -> PC リターン PC+2+(label9-PC-2)->PC 非分岐 if(Z==1) then PC+2+(label9-PC-2)->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 <注意事項> • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を 設定します。 (label12-PC-2)/2->rel11, (label9-PC-2)/2->rel8, label12, label9 は符号付き。 • 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。 • 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル 命令です。複数サイクル命令は置けません。 656 付録 E 命令一覧表 付表 E-13 その他 ニーモニック 型 NOP E ANDCCR #u8 D ORCCR #u8 D STILM #u8 D ADDSP #s10 *1 D E EXTSB Ri EXTUB Ri E EXTSH Ri E EXTUH Ri E LDM0 (reglist) D LDM1 (reglist) D OP 9F-A 83 93 87 A3 97-8 97-9 97-A 97-B 8C CYCLE NZVC 1 c c 1 1 1 1 1 1 8D ---cccc cccc ------------------------- *LDM (reglist) ---*2 STM0 (reglist) D 8E ---- STM1 (reglist) D 8F ---- *STM (reglist) ---*3 ENTER #u10 D 0F 1+a ---- LEAVE E 9F-9 b ---- XCHB @Rj, Ri A 8A 2a ---- *4 動作 何も変化しない CCR and u8 -> CCR CCR or u8 -> CCR i8 -> ILM R15 += s10 符号拡張 8->32bit ゼロ拡張 8->32bit 符号拡張 16->32bit ゼロ拡張 16->32bit (R15)->reglist, R15 インクリメント (R15)->reglist, R15 インクリメント (R15)->reglist, R15 インクリメント R15 デクリメント , reglist->(R15) R15 デクリメント , reglist->(R15) R15 デクリメント , reglist->(R15) R14 -> (R15 - 4), R15 - 4 -> R14, R15 - u10 -> R15 R14 + 4 -> R15, (R15 - 4) -> R14 Ri -> TEMP (Rj) -> Ri TEMP -> (Rj) RMW 備考 - ロードマルチ R0-R7 - ロードマルチ R8-R15 - ロードマルチ R0-R15 - ストアマルチ R0-R7 - ストアマルチ R8-R15 - ストアマルチ R0-R15 - 関数の入口処理 - 関数の出口処理 ○ セマフォ管理用 バイトデータ ILM 即値セット ADD SP 命令 *1: s10 はアセンブラが , s10/4 を計算して s8 にして値を設定する。s10 は符号付き。 *2: reglist で , R0-R7 のいずれかの指定があれば , LDM0 を生成し , R8-R15 のいずれかの指定があれば , LDM1 を生成する。LDM0, LDM1 両方生成する場合もある。 *3: reglist で , R0-R7 のいずれかの指定があれば , STM0 を生成し , R8-R15 のいずれかの指定があれば , STM1 を生成する。STM1, STM0 両方生成する場合もある。 *4: u10 はアセンブラが , u10/4 を計算して u8 にして値を設定する。u10 は符号なし。 <注意事項> • LDM0 (reglist) , LDM1 (reglist) の実行サイクル数は , 指定されたレジスタ数が n の とき , a × (n-1)+b+1 サイクルとなります。 • STM0 (reglist), STM1 (reglist) の実行サイクル数は , 指定されたレジスタ数が n のと き , a × n+1 サイクルとなります。 657 付録 付表 E-14 20 ビット通常分岐マクロ命令 ニーモニック *CALL20 label20,Ri *BRA20 label20,Ri *BEQ20 label20,Ri *BNE20 label20,Ri *BC20 label20,Ri *BNC20 label20,Ri *BN20 label20,Ri *BP20 label20,Ri *BV20 label20,Ri *BNV20 label20,Ri *BLT20 label20,Ri *BGE20 label20,Ri *BLE20 label20,Ri *BGT20 label20,Ri *BLS20 label20,Ri *BHI20 label20,Ri 動作 次の命令のアドレス ->RP, label20->PC label20->PC if(Z==1) then label20->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL20 (1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri CALL @Ri [ 参考 2] BRA20 (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri JMP @Ri [ 参考 3] Bcc20 (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は cc の背反条件 LDI:20 #label20,Ri JMP @Ri false: 658 付録 E 命令一覧表 付表 E-15 20 ビット遅延分岐マクロ命令 ニーモニック *CALL20:D label20,Ri 動作 次の命令のアドレス +2->RP, label20->PC label20->PC if(Z==1) then label20->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 *BRA20:D label20,Ri *BEQ20:D label20,Ri *BNE20:D label20,Ri *BC20:D label20,Ri *BNC20:D label20,Ri *BN20:D label20,Ri *BP20:D label20,Ri *BV20:D label20,Ri *BNV20:D label20,Ri *BLT20:D label20,Ri *BGE20:D label20,Ri *BLE20:D label20,Ri *BGT20:D label20,Ri *BLS20:D label20,Ri *BHI20:D label20,Ri 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL20:D (1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL:D label12 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri CALL:D @Ri [ 参考 2] BRA20:D (1) label20-PC-2 が ,-0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA:D label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri JMP:D @Ri [ 参考 3] Bcc20:D (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc:D label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は , cc の背反条件 LDI:20 #label20,Ri JMP:D @Ri false: 659 付録 付表 E-16 32 ビット通常分岐マクロ命令 ニーモニック *CALL32 label32,Ri 動作 次の命令のアドレス ->RP, label32->PC label32->PC if(Z==1) then label32->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 *BRA32 label32,Ri *BEQ32 label32,Ri *BNE32 label32,Ri *BC32 label32,Ri *BNC32 label32,Ri *BN32 label32,Ri *BP32 label32,Ri *BV32 label32,Ri *BNV32 label32,Ri *BLT32 label32,Ri *BGE32 label32,Ri *BLE32 label32,Ri *BGT32 label32,Ri *BLS32 label32,Ri *BHI32 label32,Ri 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL32 (1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri CALL @Ri [ 参考 2] BRA32 (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri JMP @Ri [ 参考 3] Bcc32 (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は , cc の背反条件 LDI:32 #label32,Ri JMP @Ri false: 660 付録 E 命令一覧表 付表 E-17 32 ビット遅延分岐マクロ命令 ニーモニック *CALL32D label32,Ri *BRA32:D label32,Ri *BEQ32:D label32,Ri *BNE32:D label32,Ri *BC32:D label32,Ri *BNC32:D label32,Ri *BN32:D label32,Ri *BP32:D label32,Ri *BV32:D label32,Ri *BNV32:D label32,Ri *BLT32:D label32,Ri *BGE32:D label32,Ri *BLE32:D label32,Ri *BGT32:D label32,Ri *BLS32:D label32,Ri *BHI32:D label32,Ri 動作 次の命令のアドレス +2->RP, label32->PC label32->PC if(Z==1) then label32->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL32:D (1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL:D label12 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri CALL:D @Ri [ 参考 2] BRA32:D (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA:D label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri JMP:D @Ri [ 参考 3] Bcc32:D (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc:D label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は , cc の背反条件 LDI:32 #label32,Ri JMP:D @Ri false: 661 付録 付表 E-18 ダイレクトアドレッシング ニーモニック DMOV @dir10, R13 DMOV R13, @dir10 DMOV @dir10, @R13+ DMOV @R13+, @dir10 DMOV @dir10, @-R15 DMOV @R15+, @dir10 DMOVH @dir9, R13 DMOVH R13, @dir9 DMOVH @dir9, @R13+ DMOVH @R13+, @dir9 DMOVB @dir8, R13 DMOVB R13, @dir8 DMOVB @dir8, @R13+ DMOVB @R13+, @dir8 型 D D D D D D D D D D D D D D OP CYCLE NZVC 08 18 0C 1C 0B 1B 09 19 0D 1D 0A 1A 0E 1E b a 2a 2a 2a 2a b a 2a 2a b a 2a 2a ------------------------------------------- 動作 (dir10)-> R13 R13 ->(dir10) (dir10)->(R13),R13+=4 (R13)->(dir10),R13+=4 R15-=4,(R15)->(dir10) (R15)->(dir10),R15+=4 (dir9)-> R13 R13 ->(dir9) (dir9)->(R13),R13+=2 (R13)->(dir9),R13+=2 (dir8)-> R13 R13 ->(dir8) (dir8)->(R13),R13++ (R13)->(dir8),R13++ 備考 ワード ワード ワード ワード ワード ワード ハーフワード ハーフワード ハーフワード ハーフワード バイト バイト バイト バイト ( 注意事項 ) dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。 dir8->dir, dir9/2->dir, dir10/4->dir dir8, dir9, dir10 は符号なし。 付表 E-19 リソース命令 ニーモニック LDRES @Ri+, #u4 型 C OP CYCLE NZVC BC a ---- STRES #u4, @Ri+ C BD a ---- 動作 (Ri)->u4 のリソース Ri+=4 u4 のリソース ->(Ri) Ri+=4 備考 u4: チャネル番号 u4: チャネル番号 ( 注意事項 ) 本品種では , チャネル番号を持つリソースを搭載していないので , 使用できません。 付表 E-20 コプロセッサ制御命令 {CRi | CRj} := CR0 | CR1 | CR2 | CR3 | CR4 | CR5 | CR6 | CR7 | CR8 | CR9 | CR10 | CR11 | CR12 | CR13 | CR14 || CR15 u4: := チャネル指定 u8: := コマンド指定 ニーモニック 型 OP CYCLE NZVC 動作 備考 COPOP #u4, #u8, CRj, CRi E 9F-C 2+a ---- 演算指示 COPLD #u4, #u8, Rj, CRi E 9F-D 1+2a ---- Rj -> CRi エラートラップなし COPST #u4, #u8, CRj, Ri E 9F-E 1+2a ---- CRj -> Ri COPSV #u4, #u8, CRj, Ri E 9F-F 1+2a ---- CRj -> Ri ( 注意事項 ) 本品種では , コプロセッサを搭載していないため使用できません。 662 付録 F 使用上の注意 付録 F 使用上の注意 使用上の注意事項です。 ■ 共通事項 ● クロック制御部 INITX 端子への "L" 入力時には , 発振安定待ち時間を確保してください。 ● 兼用ポートの機能切換え PORT と兼用端子の切換えは , PFR ( ポートファンクションレジスタ ) で行います。た だし , バス端子は外バスの設定により切り換わります。 <注意事項> 本品種は , 外バスモードをサポートしておりません。 ● D-bus メモリ コード領域を , D-bus 上のメモリに設定しないでください。 D-bus へは命令フェッチを行いませんので , D-bus 領域へ命令フェッチを行った場合 , 誤ったデータをコードとして解釈するため , 暴走する可能性があります。 663 付録 ● 低消費電力モード (1) スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカ ウンタ制御レジスタの bit8 SYNCS ビットにて設定します ) を使用したうえで , 以下 のシーケンスを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0x0481) ldi #Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ stb rl,@r0 ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0x0483) ldi #0xA5, rl ; クリアコマンド (1) stb rl,@r2 ; CTBR への A5 ライト ldi #0xA5, rl ; クリアコマンド (2) stb rl,@r2 ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 nop nop nop nop (2) モニタデバッガを使用される場合は , 以下のことに注意してください。 - 上記命令列に対して , ブレークポイントを設定しないでください。 - 上記命令列に対して , ステップ実行を行わないでください。 664 付録 F 使用上の注意 ● PS レジスタに関する注意事項 一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ 使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり する場合があります。 いずれの場合も , EIT から復帰後以降に , 正しく再処理を行うように設計されています ので , EIT 前後の動作は仕様どおりの処理を行います。 1. DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b) ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ レークした場合 , 以下のような動作を行う場合があります。 (1) D0, D1 フラグが , 先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。 (3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に 更新されます。 2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために OR CCR, ST ILM, MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。 (1) PS レジスタが , 先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。 (3) EIT から復帰後 , 上記命令が実行され , PS レジスタが (1) と同じ値に更新されま す。 ● ウォッチドッグタイマ機能について 本品種が備えているウォッチドッグタイマ機能は , プログラムが一定時間内にリセッ ト延期動作を行うことを監視し , プログラムの暴走によりリセット延期動作が行われ なかったときに , CPU をリセットするための機能です。そのため , いったんウォッチ ドッグタイマ機能を有効にすると , リセットをかけるまで動作を続けます。 例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い ます。この例外にあてはまる条件については ,「3.12.7 クロック生成制御部のレジスタ 詳細説明の ■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ」を 参照してください。 ■ デバッグ関連の注意事項 ● RETI 命令のステップ実行 ステップ実行する際 , 割込みが頻繁に発生する環境下では , RETI をステップ実行後に 該当割込み処理ルーチンだけを繰り返して実行します。その結果 , メインルーチンや割 込みレベルの低いプログラムの実行が行われなくなります。 回避のために , RETI 命令をステップ実行しないでください。 または , 該当割込みルーチンのデバッグが不要になった段階で , 該当割込みを禁止して デバッグを行ってください。 ● オペランドブレーク システムスタックポインタのアドレスを含む領域に対するアクセスを , データイベン トブレークの対象に設定しないでください。 665 付録 ● フラッシュメモリの未使用領域実行 フラッシュメモリの未使用領域 ( データが FFFFH) を誤って実行してしまうと , ブレー クを受け付けない状態になってしまいます。これを回避するために , デバッガのコード イベントのアドレスマスク機能を使用して , 未使用領域の命令アクセス時にブレーク させることを推奨いたします。 ● パワーオンデバッグ パワーオンデバッグで電源をOFFにするときは, 次の3条件をすべて満たす状態で行っ てください。 (1) ユーザ電源が 0.9VCC から 0.5VCC まで低下する時間が 25 μs 以上 ( 注意事項 ) 2 電源の場合は , VCC は外部 I/O 電源電圧のことを指します。 (2) CPU 動作周波数が 1MHz 以上 (3) ユーザプログラム実行中 ●NMI 要求 (tool) に対する割込みハンドラ ICE 未接続の状態において , ICE からのブレーク要求のみでセットされる要因フラグが , DSU 端子へのノイズなどの影響で誤って立ってしまった場合の誤動作を防ぐため , 次の プログラムを割込みハンドラに追加してください。なお , このプログラムを追加した状 態で ICE を使用しても問題ありません。 追加場所 次の割込みハンドラ 割込み要因 : NMI 要求 (tool) 割込み番号 : 13 (10 進 ) , 0D (16 進 ) オフセット : 3C8H TBR がデフォルトのアドレス : 000FFFC8H 追加プログラム STM (R0, R1) LDI #B00H, R0 LDI #0, R1 STB R1, @R0 LDM (R0, R1) RETI 666 ; B00H は DSU のブレーク要因レジスタのアドレス ; ブレーク要因レジスタをクリア 索引 Numerics A 2 サイクル 転送時 2 サイクル 転送時のデータの動作 .....................338 A/D コンバータ A/D コンバータの概要 ........................................ 434 A/D コンバータの動作 ........................................ 449 A/D コンバータの特長 ........................................ 434 A/D コンバータのブロックダイヤグラム ........435 A/D コンバータのレジスタ一覧 ........................ 437 ACR ACR0 ∼ ACR3 (Area Configuration Register) ..........................................................................268 ADCR データレジスタ (ADCR0,ADCR1) .....................444 ADCS A/D コントロールステータスレジスタ (ADCS0) ..........................................................................442 A/D コントロールステータスレジスタ (ADCS1) ..........................................................................440 ADCT A/D 変換時間設定レジスタ (ADCT0,ADCT1) ..........................................................................445 ADSCH A/D 開始 / 終了チャネル設定レジスタ (ADSCH,ADECH) ...........................................446 AF200 AF200 フラッシュマイコンプログラ マシステム 構成 ( 横河ディジタルコンピュータ株式会社 製 ) ....................................................................614 ASR ASR0 ∼ ASR3 (Area Select Register) .................. 267 AWR AWR0 ∼ AWR3 (Area Wait Register) ................. 272 B BGR ボーレート/リロードカウンタレジスタ (BGR) ..........................................................................399 BRPER CAN プリスケーラ拡張レジスタ (BRPER) ..........................................................................475 BTR CAN ビットタイミングレジスタ (BTR) ........... 470 BUSYX レディ / ビジー信号 (RDY/BUSYX) .................. 586 C CAN CAN クロックプリスケーラ ............................... 523 CAN レジスタの種類 ...........................................454 CANPRE CAN プリスケーラレジスタ (CANPRE) ........... 506 C_CAN C_CAN の特長 ......................................................452 C_CAN のブロックダイヤグラム ...................... 452 667 CCR CCR (Condition Code Register) ...............................37 CLKB CPU クロック (CLKB) ............................................85 CLKP 周辺クロック (CLKP) .............................................85 CLKR CLKR : クロックソース制御レジスタ .................97 CLKT 外部バスクロック (CLKT) ....................................85 CPU CPU ...........................................................................32 CPU 動作検出リセット回路 CPU 動作検出リセット回路の動作 ....................560 CPU 動作検出リセット回路の特長 ....................556 CPU 動作検出リセット回路のブロックダイヤグ ラム ..................................................................556 CPU 動作検出リセット回路使用上 CPU 動作検出リセット回路使用上の注意 ........561 CSER CSER (Chip Select Enable register ) ......................276 CSX CSX 遅延設定 (TYP[3:0]=0000B,AWR=000CH) ..........................................................................291 CSX → RDX/WRX セットアップ・RDX/WRnX → CSX ホールド設定 (TYP[3:0]=0000B, AWR=000BH) ...................292 CTBR CTBR : タイムベースカウンタクリアレジスタ ............................................................................96 CTRLR CAN 制御レジスタ (CTRLR) ...............................462 CUCR 補正ユニット制御レジスタ (CUCR) ..................549 CUTD 32kHz タイマデータレジスタ (16 ビット ) (CUTD) ..........................................................................551 CUTR 4MHz タイマデータレジスタ (24 ビット ) (CUTR) ..........................................................................552 C コンパイラ C コンパイラ (fcc911) ..........................................642 D DDR データ方向レジスタ (DDR:DDR0 ∼ DDRG) ..........................................................................123 DIVR DIVR0: 基本クロック分周設定レジスタ 0 ........101 DIVR1: 基本クロック分周設定レジスタ 1 ........103 DMA DMA 転送と割込み ..............................................325 DMA 抑止 ..............................................................325 DMAC DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 DMAC 全体制御 レジスタ [DMACR] .........................................312 DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 コントロール / ス テータスレジスタ A[DMACA0 ∼ DMACA4] ..........................................................................299 668 DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 コントロール / ス テータスレジスタ B[DMACB0 ∼ DMACB4] ..........................................................................304 DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 転送元 / 転送先アド レス設定レジスタ [DMASA0 ∼ DMASA4/ DMADA0 ∼ DMADA4] ................................. 310 DMAC の概要 ....................................................... 314 DMAC の主要動作 ............................................... 315 DMAC のブロックダイヤグラム .......................298 DMAC のレジスタ概要 .......................................297 DMAC 割込み制御が出力できる割込み ........... 332 DMA 転送 スリープモード中の DMA 転送の注意 ............. 333 DRCL DMA 割込みクリアレジスタ (DRCL) ................ 260 E ECCR 拡張通信制御レジスタ (ECCR) .......................... 398 EIRR 割込み許可レジスタ (EIRR : External Interrupt Request Register) .............................................. 153 EIT EIT ( 例外 , 割込み , トラップ ) ............................ 49 EIT ( 例外・割込み・トラップ ) の特長 ............. 49 EIT からの復帰 ....................................................... 49 EIT の動作 ...............................................................60 EIT の割込みレベル ...............................................50 EIT ベクタテーブル ...............................................54 EIT 要因 ................................................................... 49 EIT 要因受理の優先度 ...........................................58 ELVR 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) ...................154 ENIR 外部割込み要因レジスタ (ENIR : ENable Interrupt request Register) ............................................... 152 EPFR ポート機能レジスタ (PFR,EPFR:Port Function Register) ...........................................................125 ERRCNT CAN エラーカウンタ (ERRCNT) .......................469 ESCR 拡張ステータス制御レジスタ (ESCR) ............... 397 F FIFO FIFO バッファ機能 ............................................... 512 FLCR フラッシュメモリステータスレジスタ (FLCR) ..........................................................................575 FLWC フラッシュウェイトレジスタ (FLWC) ..............576 FR60 FR60Lite CPU ............................................................ 2 FR-CPU FR-CPU ROM モード (32/16/8 ビット , 読出しのみ ) ...................... 579 FR-CPU プログラミングモード (16 ビット , 読出し / 書込み ) ........................579 H HRCL HRCL(Hold Request Cancel Level register) ..........140 ホールドリクエスト取下げ要求機能 (HRCL) の 使用例 ..............................................................146 I I I フラグ ....................................................................50 I/O I/O ピン ..................................................................266 I/O マップ I/O マップ ..............................................................620 ICR 割込み制御レジスタ (ICR) ....................................52 割込み制御レジスタ (ICR) のビット構成 .........139 割込み制御レジスタ (ICR) のマッピング ...........52 ICS インプットキャプチャコントロールレジスタ (ICS) .................................................................242 IFxARB IFx アービトレーションレジスタ 1,2 (IFxARB1,IFxARB2) .......................................486 IFxCMSK IFx コマンドマスクレジスタ (IFxCMSK) .........480 IFxCREQ IFx コマンド要求レジスタ (IFxCREQ) ..............477 IFxDTA IFx データレジスタ A1,A2,B1,B2 (IFxDTA1,IFxDTA2,IFxDTB1,IFxDTB2) ..........................................................................488 IFxDTB IFx データレジスタ A1,A2,B1,B2 (IFxDTA1,IFxDTA2,IFxDTB1,IFxDTB2) ..........................................................................488 IFxMCTR IFx メッセージ制御レジスタ (IFxMCTR) .........487 IFxMSK IFx マスクレジスタ 1,2(IFxMSK1,IFxMSK2) ..........................................................................485 ILM ILM ...........................................................................40 割込みレベルマスク (ILM) ....................................51 INIT 設定初期化リセット (INIT) ...................................71 リセット (INIT) の解除時 ......................................79 INITX ストップモード中の INITX 端子による復帰に ついて ................................................................70 INTPND CAN 割込みペンディングレジスタ (INTPND1,INTPND2) .....................................502 INTR CAN 割込みレジスタ (INTR) ..............................471 IPCP インプットキャプチャレジスタ (IPCP) ............241 L LCD LCD の駆動波形 ................................................... 537 LCDCMR コモン端子切換えレジスタ (LCDCMR) ............531 LCD コントローラ LCD コントローラの動作 ................................... 537 LCD コントローラの特長 ................................... 528 LCD コントローラのブロックダイヤグラム ..........................................................................529 LCD コントローラのレジスタ一覧 ...................530 LCD コントローラ・ドライバ動作時の出力波形 (1/4 デューティ出力モード ) ........................ 542 LCD コントローラドライバ LCD コントローラドライバ動作時の出力波形 (1/2 デューティ出力モード ) ........................ 538 LCD コントローラドライバ動作時の出力波形 (1/3 デューティ出力モード ) ........................ 540 LCR LCD コントローラ制御レジスタ 0(LCR0) ........532 LCD コントローラ制御レジスタ 1(LCR1) ........534 LIN LIN UART マスタ ................................................. 427 LIN スレーブ動作 ................................................. 411 LIN デバイス接続 ................................................. 426 LIN 同期フィールドエッジ検出割込み ............. 417 LIN フィールドエッジ検出割込み .....................422 LIN ブレーク検出割込みとフラグ .....................422 LIN ブレーク割込み .............................................417 LIN マスタ動作 ..................................................... 410 LIN マスタ・スレーブ通信機能 .........................426 LIN-UART LIN-UART スレーブ .............................................428 LIN-UART の概要 ................................................. 390 LIN-UART の動作モード .................................... 405 LIN-UART のブロックダイヤグラム ................ 391 LIN-UART のレジスタ一覧 ................................392 LVRC CPU 動作検出リセット制御レジスタ (LVRC) ..........................................................................558 M MB91245/S MB91245/S シリーズのメモリマップ .................. 27 MB91F24x/S MB91F24x/S シリアル書込み ( 非同期 ) 基本構成 ..........................................................................615 MB91F24x/S シリアル書込み基本構成 ..............604 MBM29LV400C MBM29LV400C とのフラッシュメモリ制御信号 の対応 .............................................................. 581 MSGVAL CAN メッセージ有効レジスタ (MSGVAL1,MSGVAL2) ................................. 504 N NEWDT CAN データ更新レジスタ (NEWDT1,NEWDT2) ..........................................................................500 669 NMI NMI/ ホールド抑止レベル割込み処理中 ...........329 割込み・NMI に対するレベルマスク ..................51 O OCCP コンペアレジスタ (OCCP) ..................................248 OCS アウトプットコントロールレジスタ (OCS) ..........................................................................249 OSCCR OSCCR: 発振制御レジスタ .................................104 OSCR メイン発振安定待ちタイマレジスタ (OSCR) ..........................................................................222 P PC PC (Program Counter) ..............................................41 PDIVR PDIVR( 分周比制御レジスタ ) ............................205 PDR ポートデータレジスタ (PDR:PDR0 ∼ PDRG) ..........................................................................121 PFR ポート機能レジスタ (PFR,EPFR:Port Function Register) ................125 PILR 入力レベル選択レジスタ (PILR) ........................131 PLL PLL 選択時の異常状態からの復帰時 ..................79 PLL 逓倍率 ...............................................................83 PLL 動作許可 ...........................................................82 発振安定待ち・メイン PLL ロック待ち時間 ............................................................................84 PPG 8 ビット PPG ch.0,ch.2,ch.4,ch.6 のブロック ダイヤグラム ..................................................184 8 ビット PPG ch.1,ch.5 のブロックダイヤグラム ..........................................................................185 8 ビット PPG ch.3,ch.7 のブロックダイヤグラム ..........................................................................186 PPG の機能 ............................................................180 PPG のレジスタ一覧 ............................................181 PPGCn PPGCn レジスタ (PPGn 動作モード制御レジスタ ) n=0, 1, 2, 3, 4, 5, 6, 7 ........................................187 PRLH PRLL/PRLH レジスタ ( リロードレジスタ :PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7) .........................189 PRLL PRLL/PRLH レジスタ ( リロードレジスタ :PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7) .........................189 PS PS (Program Status) ..................................................36 PSCR ポート状態制御レジスタ (PSCR) .......................132 PS レジスタ PS レジスタに関する注意事項 .............................40 670 PWC PWC の機能 ...........................................................198 PWC のブロックダイヤグラム ........................... 199 PWC のレジスタ一覧 ...........................................198 PWCR PWCR レジスタ (PWC データバッファレジスタ ) ..........................................................................204 PWCSR PWC コントロール / ステータスレジスタ (PWCSR) .......................................................... 200 PWM PWM1,PWM2 コンペアレジスタの機能 ........... 345 PWM1,PWM2 選択レジスタの機能 ...................347 PWM 制御レジスタのビット構成 ...................... 344 PWM 設定値変更時の注意 ..................................349 R RDR 受信データレジスタ (RDR) と送信データレジス タ (TDR) .......................................................... 396 RDX CSX → RDX/WRX セットアップ・RDX/WRnX → CSX ホールド設定 (TYP[3:0]=0000B, AWR=000BH) ..................................................292 RDY レディ / ビジー信号 (RDY/BUSYX) .................. 586 REVC 出力反転レジスタ (REVC) ..................................191 ROM ライタ ROM ライタによる書込み ..................................565 RP RP (Return Pointer) ..................................................41 RSRR RSRR : リセット要因レジスタ / ウォッチドッグタ イマ制御レジスタ ............................................ 88 RST 動作初期化リセット (RST) ................................... 72 S SCR SCR (System Condition code Register) .................... 39 シリアルコントロールレジスタ (SCR) のビット 構成 .................................................................. 373 シリアル制御レジスタ (SCR) ............................. 393 SIDR シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ (SODR) .............................................................375 SODR シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ (SODR) .............................................................375 SMR シリアルモードレジスタ (SMR) のビット構成 ..........................................................................371 シリアルモードレジスタ (SMR) ........................ 394 SSP SSP (System Stack Pointer) ...................................... 41 システムスタックポインタ (SSP) ........................ 53 SSR シリアルステータスレジスタ (SSR) のビット構成 ..........................................................................376 シリアルステータスレジスタ (SSR) ..................395 STATR CAN ステータスレジスタ (STATR) ...................466 STCR STCR : スタンバイ制御レジスタ .........................91 STOP 状態 STOP 状態からの復帰動作 ..................................158 T TBCR TBCR : タイムベースカウンタ制御レジスタ ............................................................................94 TBR TBR (Table Base Register) .......................................41 テーブルベースレジスタ (TBR) ...........................54 TCCS タイマコントロールレジスタ (TCCS) ...............231 TCDT タイマデータレジスタ (TCDT) ..........................230 TDR 受信データレジスタ (RDR) と送信データレジス タ (TDR) ...........................................................396 TESTR CAN テストレジスタ (TESTR) ...........................473 TMCSR コントロールステータスレジスタ (TMCSR) ..........................................................................172 TMR 16 ビットタイマレジスタ (TMR) .......................175 TMRLR 16 ビットリロードレジスタ (TMRLR) ..............175 TREQR CAN 送信要求レジスタ (TREQR1,TREQR2) ..........................................................................498 TRG PPG 起動レジスタ (TRG) .....................................190 U-Timer U-Timer の特長 ..................................................... 256 U-Timer のブロックダイヤグラム .....................257 U-Timer のレジスタ一覧 .....................................256 V VRAM 表示用データメモリ (VRAM) ............................. 535 W WPR WPR : ウォッチドッグリセット発生延期レジスタ ..........................................................................100 WRX CSX → RDX/WRX セットアップ・RDX/WRnX → CSX ホールド設定 (TYP[3:0]=0000B, AWR=000BH) ..................................................292 WTBR サブセカンドレジスタ (WTBR) .........................366 WTCR タイマ制御レジスタ (WTCR) ............................. 364 WTDBL クロック禁止レジスタ (WTDBL) ...................... 364 WTHR 時間レジスタ (WTHR) .........................................367 WTMR 分レジスタ (WTMR) ............................................ 367 WTSR 秒レジスタ (WTSR) .............................................. 367 U UART LIN UART マスタ .................................................427 UART の応用例 .....................................................386 UART からの変更点 .............................................430 UART のクロック選択 .........................................378 UART の動作モード .............................................378 UART の特長 .........................................................370 UART のブロックダイヤグラム .........................370 UART のレジスタ一覧 .........................................371 UART 割込み要因 .................................................415 USP USP (User Stack Pointer) ..........................................42 UTIM U-Timer(UTIM) ......................................................258 UTIMC U-Timer 制御レジスタ (UTIMC) .........................259 UTIMER リロードレジスタ (UTIMER) ..............................258 671 あ か アウトプットコンペア 16 ビットアウトプットコンペアの動作タイミン グ 253 アウトプットコンペアの動作 .............................251 アウトプットコンペアの特長 .............................246 アウトプットコンペアのブロックダイヤグラム ..........................................................................247 アウトプットコンペアのレジスタ一覧 .............246 アクセスアドレス アクセスアドレス .................................................323 アセンブラ アセンブラ (fasm911) ...........................................645 アドレスレジスタ アドレスレジスタ指定 .........................................322 アナログ アナログ入力許可レジスタ .................................439 アンダフロー アンダフロー動作 .................................................176 外部アクセス 外部アクセス ........................................................ 282 外部クロック 外部クロックの使用 ............................................ 404 外部バスインタフェース 外部バスインタフェースの特長 ........................ 264 外部バスインタフェースのブロックダイヤグラム ..........................................................................265 外部バスインタフェースのレジスタ一覧 ........266 外部バスインタフェースのレジスタ概要 ........267 外部割込み 外部割込み制御部のブロックダイヤグラム ..........................................................................150 外部割込み制御部のレジスタ一覧 .................... 150 外部割込み制御部のレジスタ詳細 .................... 151 外部割込みの動作 ................................................155 外部割込みの動作手順 ........................................ 155 外部割込み要因レジスタ (ENIR : ENable Interrupt request Register) ............................................... 152 外部割込み要求レベル ........................................ 156 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) ...................154 外部割込みを使用した STOP 状態からの復帰時に おける注意事項 .............................................. 157 概要 概要 ..........................................................................67 カウンタ カウンタのクリア ................................................210 カウンタの動作状態 ............................................ 178 カウント カウント例 ............................................................ 404 カウントクロック カウントクロックの選択 .................................... 207 い イネーブルセクタプロテクト イネーブルセクタプロテクト .............................600 インターバルタイマ インターバルタイマ機能の動作 .........................224 インピーダンス 入力インピーダンス .............................................436 インプットキャプチャ 16 ビットインプットキャプチャの入力タイミン グ ......................................................................243 インプットキャプチャの特長 .............................238 インプットキャプチャの取込みタイミング ..........................................................................243 インプットキャプチャのブロックダイヤグラム ..........................................................................240 インプットキャプチャのレジスタ一覧 .............239 う ウェイトタイミング 外部ウェイトタイミング (TYP[3:0]=0001B,AWR=2008H) .....................290 自動ウェイトタイミング (TYP[3:0]=0000B,AWR=2008H) .....................289 ウォッチドッグ サブ RUN でメイン発振停止中のウォッチドッグ リセット発生時 ................................................79 え エラー エラー検出 .............................................................408 ストップビット , エラー検出およびパリティ ..........................................................................407 エンディアン エンディアンの概要 .............................................278 672 き 基本タイミング 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0]=0000B,AWR=0008H) .....................286 共通事項 共通事項 ................................................................ 663 く クロック CPU クロック (CLKB) ...........................................85 クロック供給 ........................................................ 408 クロック供給機能の動作 .................................... 225 クロック生成制御 ..................................................80 周辺クロック (CLKP) ............................................ 85 メインクロック⇔サブクロック切換え例 ........226 クロック生成制御部 クロック生成制御部のブロックダイヤグラム ............................................................................87 クロック同期 クロック同期 ........................................................ 419 クロックプリスケーラレジスタ クロックプリスケーラレジスタ ........................ 461 け 原発振クロック 原発振クロック周波数について .........................614 こ コマンドオペレーション コマンドオペレーション .....................................582 さ サウンド禁止レジスタ サウンド禁止レジスタの機能 .............................360 サウンドコントロール サウンドコントロールレジスタのビット構成 ..........................................................................354 サウンドジェネレータ サウンドジェネレータの構成 .............................352 サウンドジェネレータのブロックダイヤグラム ..........................................................................352 サウンドジェネレータのレジスタ一覧 .............353 サンプリングクロックエッジ サンプリングクロックエッジ .............................424 し システムスタックポインタ システムスタックポインタ (SSP) ........................53 自動アルゴリズム 自動アルゴリズム実行状態 .................................564 周波数データレジスタ 周波数データレジスタのビット構成 .................357 受信動作 受信動作 .........................................................379, 407 受信割込み 受信割込み発生とフラグセットのタイミング ..........................................................................420 出力端子 出力端子機能 .........................................................177 主要機能 主要機能 .................................................................296 乗除算レジスタ 乗除算レジスタ (Multiply & Divide register) ............................................................................42 初期化 初期化 .....................................................................382 設定初期化リセット (INIT) ...................................71 シリアル シリアル端子直接アクセス .................................412 シリアルオンボード書込み 富士通標準シリアルオンボード書込みに使用する 端子 ..................................................................605 シリアル書込み MB91F24x/S シリアル書込み ( 非同期 ) 基本構成 ..........................................................................615 MB91F24x/S シリアル書込み基本構成 ..............604 シリアル書込み接続例 ( フラッシュマイコン プログラマから電源供給時 ) ........................608 シリアル書込み接続例 ( ユーザ電源使用時 ) ..........................................................................606 シリアルクロックアウトプット 連続シリアルクロックアウトプット出力 ..........................................................................425 振幅データレジスタ 振幅データレジスタのビット構成 .................... 356 す 推奨設定値 推奨設定値 ............................................................ 446 スタンバイ スタンバイからの復帰 ........................................ 155 スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 145 ステッパモータコントローラ ステッパモータコントローラの概要 ................ 342 ステッパモータコントローラのブロック ダイヤグラム ..................................................342 ステッパモータコントローラのレジスタ一覧 ..........................................................................343 ストップビット ストップビット , エラー検出およびパリティ ..........................................................................407 同期スタート / ストップビットモード ............. 424 ストップモード ストップモードからの復帰時 ..............................79 ストップモード中の INITX 端子による復帰 について ............................................................ 70 ストップモード中の外部割込みによる復帰 について ............................................................ 70 ストップモードについて .................................... 537 せ 制御レジスタ 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に設 定 ) ....................................................................329 制限事項 制限事項 ................................................................ 431 セクタプロテクト セクタプロテクト一時解除 ................................602 セクタプロテクトオペレーション セクタプロテクトオペレーション一覧 ............599 全体コントロールレジスタ 全体コントロールレジスタ一覧 ........................ 455 そ 送受信データ 送受信データフォーマット ........................406, 408 送信開始 送信開始 ................................................................ 382 送信終了 送信終了 ................................................................ 382 送信動作 送信動作 ........................................................380, 407 送信割込み 送信割込み発生とフラグセットのタイミング ..........................................................................421 673 ソースクロック ソースクロックの選択 ...........................................81 その他 その他 .....................................................................178 ソフトウェア初期化 ソフトウェア初期化 .............................................522 ソフトウェア要求 ソフトウェア要求 .................................................317 ソフトウェアリセット ソフトウェアリセット .........................................418 た 退避 退避・復帰の処理 .................................................167 タイマデータレジスタ 32kHz タイマデータレジスタの設定 .................553 タイミングチャート 各端子のタイミングチャート .............................618 タイムベースカウンタ タイムベースカウンタ .........................................106 ダイレクトアドレッシング ダイレクトアドレッシング領域 .....................26, 45 端子機能 端子機能説明 ...........................................................10 端子配列図 端子配列図 .................................................................9 単発モード 単発モード .............................................................449 ち 遅延スロット 遅延スロット付き動作 ...........................................46 遅延スロットなし動作 ...........................................48 遅延スロットの注意事項 .......................................63 チャネル間優先順位 チャネル間優先順位 .............................................334 チャネルグループ チャネルグループ .................................................335 注意 使用上の注意 .................................................294, 385 注意事項 その他の注意事項 .................................................614 注意事項 .........................................................178, 216 つ 通信方法 通信方法 .................................................................409 て 停止モード 停止モード .............................................................450 低消費電力 低消費電力モード .................................................112 データアクセス データアクセス .......................................................44 データバス データバス幅と制御信号との関係 .....................278 674 データフォーマット データフォーマット設定 .................................... 413 テーブルベース テーブルベースレジスタ (TBR) ...........................54 デクリメントグレードレジスタ デクリメントグレードレジスタの機能 ............359 テストモード テストモード ........................................................ 518 デバイス状態 デバイス状態と各遷移 ........................................ 109 デバッガ デバッガ (sim911,eml911,mon911) ...................... 647 デバッグ デバッグ関連の注意事項 .................................... 665 電源投入時 電源投入時の発振安定待ち時間について ..........70 転送 ステップ / ブロック転送 2 サイクル転送 ......... 319 ステップ転送 ........................................................ 319 転送アドレス ........................................................ 316 転送シーケンスの選択 ........................................ 318 転送タイプ ............................................................ 315 転送モード ............................................................ 315 バースト 2 サイクル転送 .................................... 318 ブロック転送 ........................................................ 319 転送回数 転送回数と転送終了 ............................................ 316 転送回数レジスタ 転送回数レジスタとリロード動作 .................... 324 転送終了 転送終了 ................................................................ 330 転送停止要求 周辺回路からの転送停止要求の発生 ................ 331 転送データ 転送データフォーマット ............................379, 381 転送要求 転送要求の受付けと転送 .................................... 327 と 同期スタート 同期スタート / ストップビットモード ............. 424 動作開始 動作開始 ................................................................ 326 動作禁止 全チャネル動作禁止 ............................................ 330 動作説明 動作説明 ........................................................161, 165 動作モード 動作モード ......................................................64, 120 動作モードの選択 ................................................208 トーンカウントレジスタ トーンカウントレジスタのビット構成 ............358 取扱い上の注意 デバイス取扱い上の注意 ...................................... 22 な 内蔵周辺機能 内蔵周辺機能 ............................................................ 2 内蔵周辺要求 内蔵周辺要求 ........................................................ 317 内部アーキテクチャ 内部アーキテクチャ ...............................................31 内部アーキテクチャの特長 ...................................30 内部クロック 内部クロック動作 .................................................176 に 入出力回路形式 入出力回路形式 .......................................................18 は バースト転送 バースト転送 .........................................................337 ハードウェア ハードウェア構成 .................................................296 ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ .........................586 ハードウェアシーケンスフラグの使用例 .........590 バイトオーダリング バイトオーダリング ...............................................43 バスアイドル バスアイドル 割込み ............................................417 バスアイドル割込みとフラグ .............................423 バスアクセス バスアクセス .........................................................279 バスインタフェース 通常バスインタフェース .....................................286 バスクロック 外部バスクロック (CLKT) ....................................85 バスコンバータ 32 ビット←→ 16 ビット バスコンバータ ...........32 ハーバード ←→ プリンストン バスコンバータ ............................................................................33 バスモード バスモード ...............................................................64 パッケージ パッケージ外形寸法図 .............................................8 発振安定 電源投入時の発振安定待ち時間について ...........70 発振安定待ち・メイン PLL ロック待ち時間 ............................................................................84 メイン発振安定待ちタイマ起動時のメインクロッ ク移行時カウンタ状態 ..................................225 メイン発振安定待ちタイマ使用時の注意事項 ..........................................................................226 メイン発振安定待ちタイマの概要 .....................220 メイン発振安定待ちタイマのブロックダイヤグラ ム ......................................................................221 メイン発振安定待ちタイマレジスタ (OSCR) ..........................................................................222 メイン発振安定待ち割込みの動作 .....................224 リセット要因と発振安定待ち時間 .......................69 パリティ ストップビット , エラー検出およびパリティ ..........................................................................407 パルス パルス幅測定機能 .................................................206 パルス幅測定動作詳細 .........................................211 パルス幅測定の起動と停止 .................................209 汎用レジスタ 汎用レジスタ .......................................................... 36 ひ ビットオーダリング ビットオーダリング .............................................. 43 ビットタイミング ビットタイミング ................................................515 品種構成 品種構成一覧 ............................................................ 5 ふ 復帰 退避・復帰の処理 ................................................167 フラグ レジスタ / フラグビット .....................................414 フラグセット 受信割込み発生とフラグセットのタイミング ..........................................................................420 送信割込み発生とフラグセットのタイミング ..........................................................................421 フラッシュマイコンプログラマ フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源使用時 ) ........................ 610 フラッシュマイコンプログラマとの最小限の 接続例 ( ライタから電源供給時 ) ................ 612 フラッシュメモリ フラッシュメモリ書込み / 消去の手順 ............. 592 フラッシュメモリ使用上の注意 ........................ 598 フラッシュメモリセクタ消去の一時停止 ........597 フラッシュメモリセクタ消去の再開 ................ 597 フラッシュメモリのセクタ構成 ........................ 566 フラッシュメモリのデータ書き込む ................ 592 フラッシュメモリのデータを消去する ( チップ消去 ) ................................................. 594 フラッシュメモリの特長 .................................... 564 フラッシュメモリの任意データ消去 ( セクタ消去 ) ................................................. 595 フラッシュメモリのブロックダイヤグラム ..........................................................................565 フラッシュメモリの読出し / リセット状態 ..........................................................................592 フラッシュメモリのレジスタ一覧 .................... 574 フラッシュメモリモード .................................... 580 フリーランタイマ 16 ビットフリーランタイマのカウント タイミング ......................................................235 16 ビットフリーランタイマのクリアタイミング . 235 16 ビットフリーランタイマの注意事項 ........... 236 16 ビットフリーランタイマの動作説明 ........... 234 16 ビットフリーランタイマの特長 ...................228 16 ビットフリーランタイマのブロック ダイヤグラム ..................................................229 16 ビットフリーランタイマのレジスタ一覧 ..........................................................................228 フレーム周期発生用クロック フレーム周期発生用クロックの切換え ............537 675 プログラマ プログラマによるオンボード書換え接続例 ..........................................................................616 本プログラマがオンボード書換えに使用する端 ..........................................................................617 プログラミングモデル 基本プログラミングモデル ...................................35 プログラムアクセス プログラムアクセス ...............................................44 ブロックサイズ ブロックサイズ .....................................................320 ブロックダイヤグラム ブロックダイヤグラム .............................7, 160, 162 ブロック転送 ブロック転送 .........................................................336 分周 クロック分周 ...........................................................86 へ メッセージインタフェースレジスタ メッセージインタフェースレジスタ一覧 ..................................................................456, 458 メッセージインタフェースレジスタの概要 ..........................................................................476 メッセージオブジェクト メッセージオブジェクト ............................491, 507 メッセージ受信動作 メッセージ受信動作 ............................................ 510 メッセージ送信動作 メッセージ送信動作 ............................................ 508 メッセージハンドラレジスタ メッセージハンドラレジスタ一覧 .................... 460 メモリマップ MB91245/S シリーズのメモリマップ .................. 27 メモリマップ .......................................................... 45 も ベクタテーブル ベクタテーブル .....................................................633 ベクタテーブル初期領域 .......................................45 ベリファイセクタプロテクト ベリファイセクタプロテクト .............................600 モード モードフェッチ ......................................................75 モード設定 モード設定 .............................................................. 65 モード端子 モード端子 .............................................................. 75 ほ ゆ ポート ポート基本ブロックダイヤグラム .....................118 ホールド NMI/ ホールド抑止レベル割込み処理中 ...........329 ホールドリクエスト ホールドリクエスト取下げ要求 (Hold Request Cancel Request) .......................144 ホールドリクエスト取下げ要求機能 (HRCL) の 使用例 ..............................................................146 ボーレート UART のボーレート選択 .....................................401 インプットキャプチャによるボーレート検出 ..........................................................................400 ボーレートの計算 .................................................261 ボーレートの算出 .................................................402 マシンクロック周波数ごとのボーレート設定例 ..........................................................................403 補正ユニット 32kHz クロック補正ユニットのクロック .........547 32kHz クロック補正ユニットのタイミング ..........................................................................547 32kHz クロック補正ユニットのブロック ダイヤグラム ..................................................546 補正ユニットの特長 .............................................546 補正ユニットのレジスタ一覧 .............................548 優先順位判定 優先順位判定 ........................................................ 141 め 命令 命令一覧表 .............................................................648 命令概要 ...................................................................33 676 ら ライトタイミング ライト → ライトタイミング (TYP[3:0]=0000B,AWR=0018H) .....................288 リード → ライトタイミング (TYP[3:0]=0000B,AWR=0048H) .....................287 り リアルタイムクロック リアルタイムクロックの概要 ............................362 リアルタイムクロックの動作説明 .................... 368 リアルタイムクロックのブロックダイヤグラム ..........................................................................362 リアルタイムクロックのレジスタ一覧 ............363 リセット 外部端子のリセットタイミング .......................... 73 外部リセット端子のブロックダイヤグラム ............................................................................73 設定初期化リセット (INIT) ................................... 71 動作初期化リセット (RST) ................................... 72 リセット .................................................................. 76 リセット (INIT) の解除時 ...................................... 79 リセット中の端子の状態 .................................... 636 リセット動作の概要 .............................................. 74 リセット要因 .......................................................... 67 リセット要因と発振安定待ち時間 ...................... 69 リセット要因ビットとリセット要因の対応 ............................................................................77 リセット要因ビットの注意事項 ...........................78 リロード リロード動作 .........................................................320 リロードタイマ リロードタイマのレジスタ一覧 .........................170 リンカ リンカ (flnk911) .....................................................646 れ レジスタ レジスタ / フラグビット .....................................414 レジスタ一覧 .................................................160, 162 レジスタ詳細説明 .........................................161, 163 レジスタ設定 レジスタ設定時の注意 .........................................299 レジスタ設定手順 .................................................293 連続モード 連続モード .............................................................449 わ 割込み 受信割込み ............................................................ 416 ストップモード中の外部割込みによる復帰 について ............................................................ 70 送信割込み ............................................................ 416 割込み機能 ............................................................ 514 割込み許可レジスタ (EIRR : External Interrupt Request Register) .............................................. 153 割込みクリアの発生タイミング ........................ 328 割込みコントローラの主要機能 ........................ 136 割込みコントローラのハードウェア構成 ........136 割込みコントローラのブロックダイヤグラム ..........................................................................138 割込みコントローラのレジスタ一覧 ................ 137 割込みスタック ......................................................53 割込み制御レジスタ (ICR) ....................................52 割込み制御レジスタ (ICR) のマッピング ........... 52 割込みレベルマスク (ILM) ................................... 51 割込み・NMI に対するレベルマスク .................. 51 677 678 CM71-10136-2 富士通マイクロエレクトロニクス・CONTROLLER MANUAL FR60Lite 32 ビット・マイクロコントローラ MB91245/S Series ハードウェアマニュアル 2009 年 4 月 第 2 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 プロモーション推進部