本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM71-10119-2 FR60 32 ビット マイクロコントローラ MB91310 シリーズ ハードウェアマニュアル FR60 32 ビット マイクロコントローラ MB91310 シリーズ ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目 をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛顧を賜り厚 くお礼申し上げます。 MB91310 シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理 が要求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , シングル チップマイクロコントローラです。32 ビット CPU がアクセスする広大なアドレス空間 をサポートするために , 外部バスアクセスが基本となっていますが , CPU の命令実行を 高速化するために 16KB の RAM ( データ用 ) を内蔵しています。 ディジタルビデオカメラ , ナビゲーションシステム , DVD プレイヤーなど , 高性能な CPU 処理パワーを要求される組込み用途に最適な仕様となっています。 MB91310 シリーズは , FR30 ファミリ CPU をベースにバスアクセスの強化を行い , より 高速での使用に対応した FR60 ファミリです。 本書は , 実際に MB91310 シリーズを使用して製品を開発される技術者を対象に , MB91310 シリーズの機能や動作について解説したものです。本書をご一読ください。 なお , 各種命令の詳細については , 『インストラクションマニュアル』をご参照くださ い。 ■ 商標 FR は , FUJITSU RISC controller の略で , 富士通マイクロエレクトロニクス株式会社の製 品です。 そのほか , 本書で登場するシステム名 , 製品名はそれぞれの会社もしくは組織の商標で す。 ■ ライセンス 本製品には,お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使 用されることを条件に,Philips 社 I2C 特許がライセンスされております。 Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to use,these components in an I2C system provided that the system conforms to the I2C Standard Specification as defined by Philips. ■ 本書の全体構成 本書は , 以下に示す 21 の章 , および付録から構成されています。 第1章 概要 この章では , MB91310 シリーズの特長 , ブロックダイヤグラム , 機能概要など全体 を知るための基本的なことがらについて説明します。 第2章 デバイスの取扱いについて この章では , MB91310 シリーズの取扱い上の注意について説明します。 第3章 CPU および制御部 この章では , FR ファミリの機能を知るために , アーキテクチャ , 仕様 , 命令などの 基本的なことがらについて説明します。 i 第4章 外部バスインタフェース この章では , 外部バスインタフェースの各機能 , および動作について説明します。 第5章 I/O ポート この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。 第6章 U-TIMER この章では , U-TIMER の概要 , レジスタの構成 / 機能および動作について説明しま す。 第7章 16 ビットリロードタイマ この章では , 16 ビットリロードタイマの概要 , レジスタの構成 / 機能 , および動作に ついて説明します。 第8章 PPG タイマ この章では , PPG タイマの概要 , レジスタの構成 / 機能 , および動作について説明し ます。 第9章 多機能タイマ この章では , 多機能タイマの概要 , レジスタ構成 / 機能 , および動作について説明し ています。 第 10 章 16 ビットパルス幅カウンタ この章では , 16 ビットパルス幅カウンタの概要 , レジスタの構成 / 機能 , および動作 について説明します。 第 11 章 割込みコントローラ この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , 動作 , およびホー ルドリクエスト取下げ要求機能の使用例について説明します。 第 12 章 外部割込み・NMI 制御部 この章では , 外部割込み・NMI 制御部の概要 , レジスタの構成 / 機能 , および動作に ついて説明します。 第 13 章 REALOS 関連ハード この章では , REALOS 関連ハードの遅延割込みモジュールとビットサーチモジュー ルについて , 概要 , レジスタの構成 / 機能 , および動作を説明します。 第 14 章 10 ビット A/D コンバータ この章では , 10 ビット A/D コンバータの概要 , レジスタの構成 / 機能 , および動作 について説明します。 第 15 章 UART この章では, UARTの概要とレジスタの構成/機能, および動作について説明します。 第 16 章 I2C インタフェース この章では , I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作につい て説明します。 第 17 章 DMAC (DMA コントローラ ) この章では , DMAC (DMA コントローラ ) の概要 , レジスタの構成 / 機能 , および動 作について説明します。 ii 第 18 章 USB ファンクション この章では , USB ファンクションの概要 , レジスタの構成 / 機能 , 動作 , および補足 事項について説明します。 第 19 章 USB ホストインタフェース この章では , USB ホストインタフェースの概要 , およびレジスタの概要 / 機能につ いて説明します。 第 20 章 OSDC この章では , OSDC の特長 , ブロックダイヤグラム , 表示機能 , 制御機能 , および表 示制御コマンドについて説明します。 第 21 章 FLASH メモリ この章では , フラッシュメモリの概要 , レジスタの構成 / 機能および動作について説 明します。 付録 付録として , I/O マップ , 割込みベクタ , ドットクロック生成用 PLL, USB クロック , 外部バスインタフェースの設定 , および命令一覧について , 本文に記載できなかっ た細かい内容や , プログラミングのときに参照することがらを記載しています。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright© 2004-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 第2章 2.1 第3章 概要 ............................................................................................................ 1 特長 ........................................................................................................................................ 2 ブロックダイヤグラム............................................................................................................ 6 外形寸法図.............................................................................................................................. 7 端子配列図.............................................................................................................................. 8 端子機能一覧表 ...................................................................................................................... 9 入出力回路形式 .................................................................................................................... 15 デバイスの取扱いについて ...................................................................... 21 デバイスの取扱いについて................................................................................................... 22 CPU および制御部 ................................................................................... 25 3.1 メモリ空間............................................................................................................................ 26 3.2 内部アーキテクチャ ............................................................................................................. 27 3.3 プログラミング・モデル ...................................................................................................... 32 3.4 データ構造............................................................................................................................ 39 3.5 ワードアライメント ............................................................................................................. 40 3.6 メモリマップ ........................................................................................................................ 41 3.7 分岐命令 ............................................................................................................................... 42 3.8 EIT( 例外・割込み・トラップ ) ............................................................................................ 46 3.8.1 割込みレベル .............................................................................................................. 47 3.8.2 ICR(Interrupt Control Register)................................................................................. 49 3.8.3 SSP(System Stack Pointer)........................................................................................ 50 3.8.4 TBR (Table Base Register) ........................................................................................ 51 3.8.5 多重 EIT 処理.............................................................................................................. 55 3.8.6 EIT の動作 .................................................................................................................. 57 3.9 動作モード............................................................................................................................ 61 3.10 リセット ( デバイス初期化 ) ................................................................................................. 64 3.10.1 リセットレベル .......................................................................................................... 65 3.10.2 リセット要因 .............................................................................................................. 66 3.10.3 リセットシーケンス ................................................................................................... 68 3.10.4 発振安定待ち時間....................................................................................................... 69 3.10.5 リセット動作モード ................................................................................................... 71 3.11 クロック生成制御 ................................................................................................................. 73 3.11.1 PLL 制御 ..................................................................................................................... 74 3.11.2 発振安定待ち・PLL ロック待ち時間.......................................................................... 76 3.11.3 クロック分配 .............................................................................................................. 78 3.11.4 クロック分周 .............................................................................................................. 80 3.11.5 クロック生成制御部のブロックダイヤグラム............................................................ 81 3.11.6 クロック生成制御部のレジスタ詳細説明................................................................... 82 3.11.7 クロック制御部が持つ周辺回路 ................................................................................. 98 3.12 デバイス状態制御 ............................................................................................................... 102 3.12.1 低消費電力モード..................................................................................................... 106 3.13 時計タイマ.......................................................................................................................... 111 3.14 メイン発振安定待ちタイマ................................................................................................. 117 v 第4章 外部バスインタフェース........................................................................ 123 4.1 概要 .................................................................................................................................... 124 4.2 レジスタ説明 ...................................................................................................................... 129 4.3 チップセレクト領域 ........................................................................................................... 152 4.4 エンディアンとバスアクセス ............................................................................................. 154 4.4.1 Big endian のバスアクセス ...................................................................................... 155 4.4.2 Little endian のバスアクセス .................................................................................... 162 4.4.3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 167 4.5 通常バスインタフェース .................................................................................................... 173 4.6 バーストアクセス (first wait cycle:1, page wait cycle:1) (TYP[3:0]=0000B, AWR=3208H) ............................................................................................................................................ 184 4.7 4.8 4.9 4.10 4.11 4.12 アドレス / データマルチプレクスインタフェース ............................................................. 186 プリフェッチ動作 ............................................................................................................... 189 DMA アクセス .................................................................................................................... 193 バスアービトレーション .................................................................................................... 199 レジスタ設定手順 ............................................................................................................... 201 使用上の注意 ...................................................................................................................... 202 第5章 5.1 5.2 I/O ポート............................................................................................... 203 I/O ポートの概要 ................................................................................................................ 204 I/O ポートのレジスタ ......................................................................................................... 206 第6章 6.1 6.2 6.3 U-TIMER ................................................................................................ 211 概要 .................................................................................................................................... 212 U-TIMER のレジスタ.......................................................................................................... 213 動作説明 ............................................................................................................................. 216 第7章 7.1 7.2 7.3 16 ビットリロードタイマ ...................................................................... 217 16 ビットリロードタイマの概要 ........................................................................................ 218 16 ビットリロードタイマのレジスタ................................................................................. 220 16 ビットリロードタイマの動作説明................................................................................. 224 第8章 8.1 8.2 8.3 8.4 PPG(Programable Pulse Generator) .................................................. 227 概要 .................................................................................................................................... 228 PPG タイマのレジスタ ...................................................................................................... 231 動作説明 ............................................................................................................................. 237 PPG タイマの注意事項 ...................................................................................................... 240 第9章 9.1 9.2 9.3 多機能タイマ.......................................................................................... 241 多機能タイマの概要 ........................................................................................................... 242 多機能タイマのレジスタ .................................................................................................... 244 多機能タイマの動作 ........................................................................................................... 252 第 10 章 16 ビットパルス幅カウンタ................................................................... 255 10.1 16 ビットパルス幅カウンタの概要 .................................................................................... 256 10.2 16 ビットパルス幅カウンタのレジスタ ............................................................................. 257 10.3 16 ビット幅パルスカウンタの動作 .................................................................................... 263 vi 第 11 章 11.1 11.2 11.3 11.4 割込みコントローラ............................................................................... 267 割込みコントローラの概要................................................................................................. 268 割込みコントローラのレジスタ ......................................................................................... 271 割込みコントローラの動作................................................................................................. 273 ホールドリクエスト取り下げ要求機能 (HRCR) の使用例.................................................. 280 第 12 章 外部割込み・NMI 制御部 ....................................................................... 283 12.1 外部割込み /NMI 制御部の概要........................................................................................... 284 12.2 外部割込み /NMI 制御部のレジスタ.................................................................................... 285 12.3 外部割込み /NMI 制御部の動作........................................................................................... 287 第 13 章 13.1 13.2 13.3 13.4 13.5 13.6 REALOS 関連ハード ............................................................................. 291 遅延割込みモジュール........................................................................................................ 292 遅延割込みモジュールのレジスタ...................................................................................... 293 遅延割込みモジュールの動作 ............................................................................................. 294 ビットサーチモジュール .................................................................................................... 295 ビットサーチモジュールのレジスタ .................................................................................. 296 ビットサーチモジュールの動作 ......................................................................................... 298 第 14 章 10 ビット A/D コンバータ...................................................................... 301 14.1 10 ビット A/D コンバータの概要 ....................................................................................... 302 14.2 10 ビット A/D コンバータのレジスタ ................................................................................ 304 14.3 10 ビット A/D コンバータの動作 ....................................................................................... 307 第 15 章 UART ..................................................................................................... 309 15.1 UART の概要 ...................................................................................................................... 310 15.1.1 UART マクロにおける送受信転送の組み合わせ ...................................................... 312 15.2 UART のレジスタ ............................................................................................................... 313 15.3 UART の動作 ...................................................................................................................... 320 15.4 割込み発生およびフラグのセットタイミング.................................................................... 324 15.5 UART の応用例................................................................................................................... 327 15.6 ボーレートと U-TIMER のリロード値の設定例 ................................................................. 329 第 16 章 16.1 16.2 16.3 16.4 I2C インタフェースの概要.................................................................................................. 332 I2C インタフェースのレジスタ .......................................................................................... 335 I2C インタフェースの動作.................................................................................................. 350 動作フローチャート ........................................................................................................... 355 第 17 章 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 I2C インタフェース ................................................................................ 331 DMAC(DMA コントローラ ) .................................................................. 357 DMA コントローラ (DMAC) 概要 ....................................................................................... 358 DMA コントローラ (DMAC) のレジスタ ............................................................................ 361 DMA コントローラの動作 .................................................................................................. 374 転送要求の設定 .................................................................................................................. 378 転送シーケンス .................................................................................................................. 379 DMA 転送全般 .................................................................................................................... 383 動作フローチャート ........................................................................................................... 392 データパス.......................................................................................................................... 395 vii 第 18 章 USB ファンクション.............................................................................. 399 18.1 USB ファンクションの概要 ............................................................................................... 400 18.2 USB インタフェースのレジスタ ........................................................................................ 402 18.2.1 データ送受信用レジスタ (END POINT 用 ).............................................................. 403 18.2.2 ステータスレジスタ ................................................................................................. 406 18.2.3 コントロールレジスタ ............................................................................................. 413 18.3 USB ファンクションの動作 ............................................................................................... 424 18.3.1 データ転送フロー..................................................................................................... 425 18.3.2 CPU アクセス動作説明 ............................................................................................ 431 18.3.3 DMA 動作説明 .......................................................................................................... 434 18.3.4 割込み要因一覧 ........................................................................................................ 438 18.3.5 ENDPOINT BUFFER の設定.................................................................................... 439 18.3.6 ソフトウェア制御例 ( 暫定 )..................................................................................... 441 18.4 補足事項 ............................................................................................................................. 450 18.4.1 ダブルバッファ ........................................................................................................ 451 18.4.2 ボード上の D+ 終端抵抗制御について ..................................................................... 455 18.4.3 USB 標準要求コマンドに対するマクロの自動応答内容 .......................................... 456 18.4.4 デフォルト状態での USB マクロの動作 .................................................................. 458 18.4.5 SUSPEND 時の USB クロック制御 ......................................................................... 459 18.4.6 USB コネクタの接続 / 未接続の検知........................................................................ 460 18.4.7 UCLK48 の精度 ........................................................................................................ 461 18.4.8 コントロール転送時の転送許可 BFOK の設定......................................................... 462 18.4.9 コントロール転送における注意点............................................................................ 463 18.4.9.1 USB BUS RESET 後のマクロの状態 .................................................................. 465 第 19 章 USB ホストインタフェース................................................................... 467 19.1 USB ホストインタフェースの概要..................................................................................... 468 19.2 USB ホストインタフェースのレジスタ ............................................................................. 470 第 20 章 OSDC..................................................................................................... 485 20.1 特長 .................................................................................................................................... 486 20.2 表示機能 ............................................................................................................................. 489 20.2.1 画面構成 ................................................................................................................... 490 20.2.2 画面表示形式 ............................................................................................................ 491 20.2.3 画面出力制御 ............................................................................................................ 492 20.2.4 画面表示位置制御..................................................................................................... 493 20.2.4.1 画面表示位置オフセット..................................................................................... 499 20.2.5 フォントメモリ構成 ................................................................................................. 501 20.2.6 表示メモリ (VRAM) 構成.......................................................................................... 502 20.2.7 表示メモリ (VRAM) 書込み ...................................................................................... 503 20.2.8 パレット構成 ............................................................................................................ 505 20.2.9 文字表示 ................................................................................................................... 506 20.2.9.1 文字色.................................................................................................................. 510 20.2.9.2 イタリック表示 ................................................................................................... 511 20.2.9.3 アンダライン表示................................................................................................ 514 20.2.9.4 文字ふちどり....................................................................................................... 515 20.2.9.5 行拡大表示 .......................................................................................................... 523 20.2.9.6 グラフィック文字表示 ........................................................................................ 527 20.2.9.7 ブリンク制御....................................................................................................... 531 viii 20.2.9.8 透明 / 半透明制御 ................................................................................................ 535 20.2.10 文字背景表示 ............................................................................................................ 537 20.2.10.1 影付背景右文字結合表示..................................................................................... 539 20.2.10.2 影付背景下行結合表示 ( 文字背景 )..................................................................... 541 20.2.10.3 文字背景拡張表示................................................................................................ 543 20.2.11 行背景表示 ............................................................................................................... 545 20.2.11.1 影付背景下行結合表示 ( 行背景 ) ........................................................................ 547 20.2.12 画面背景表示 ............................................................................................................ 553 20.2.12.1 画面背景文字表示................................................................................................ 554 20.2.12.2 画面背景色表示 ................................................................................................... 557 20.2.13 スプライト文字表示 ................................................................................................. 558 20.3 制御機能 ............................................................................................................................. 561 20.3.1 ドットクロック制御 ................................................................................................. 562 20.3.2 同期信号入力 ............................................................................................................ 566 20.3.2.1 垂直同期制御....................................................................................................... 567 20.3.2.2 水平同期制御....................................................................................................... 569 20.3.2.3 フィールド制御 ................................................................................................... 571 20.3.3 表示信号出力 ............................................................................................................ 574 20.3.4 表示期間制御 ............................................................................................................ 576 20.3.5 同期制御 ................................................................................................................... 578 20.3.6 割込み制御 ............................................................................................................... 581 20.3.7 OSDC 動作制御........................................................................................................ 584 20.4 表示制御コマンド ............................................................................................................... 586 20.4.1 表示制御コマンド一覧 ............................................................................................. 587 20.4.2 VRAM 書込みアドレス設定 ( コマンド 0) ................................................................ 589 20.4.3 文字データ設定 ( コマンド 1・コマンド 2) .............................................................. 590 20.4.4 行制御データ設定 ( コマンド 3・コマンド 4) .......................................................... 592 20.4.5 画面出力制御 ( コマンド 5-00・コマンド 5-1) ......................................................... 594 20.4.6 表示位置制御 ( コマンド 5-2・コマンド 5-3) ........................................................... 595 20.4.7 文字垂直サイズ制御 ( コマンド 6-0) ........................................................................ 596 20.4.8 影付背景枠色制御 ( コマンド 6-1) ............................................................................ 597 20.4.9 透明色制御 ( コマンド 6-2)....................................................................................... 598 20.4.10 グラフィック色制御 ( コマンド 6-3) ........................................................................ 599 20.4.11 画面背景文字制御 ( コマンド 7-1・コマンド 7-3) .................................................... 601 20.4.12 スプライト文字制御 ( コマンド 8-1・コマンド 8-2・コマンド 9-0・コマンド 9-1) ................................................................................................................................. 603 20.4.13 20.4.14 20.4.15 20.4.16 20.4.17 20.4.18 20.4.19 第 21 章 同期制御 ( コマンド 11-0) ........................................................................................ 605 ドットクロック制御 ( コマンド 11-1, 11-2, 11-3) .................................................... 606 入出力端子制御 ( コマンド 13-0・コマンド 13-1).................................................... 608 表示期間制御 ( コマンド 14-0, 14-1, 14-2, 14-3)...................................................... 609 割込み制御 ( コマンド 15-0)..................................................................................... 611 パレット制御 ( コマンド 16-0 ∼コマンド 16-15) .................................................... 612 OSDC 動作制御 ( コマンド 17-0, コマンド 17-1)..................................................... 613 FLASH メモリ........................................................................................ 615 21.1 フラッシュメモリの概要 .................................................................................................... 616 21.2 フラッシュメモリのレジスタ ............................................................................................. 620 21.3 フラッシュメモリのアクセスモード ................................................................................. 623 21.4 フラッシュメモリ自動アルゴリズム .................................................................................. 625 ix 21.5 自動アルゴリズム実行状態の確認...................................................................................... 629 21.6 フラッシュメモリ書込み / 消去 .......................................................................................... 634 21.6.1 読出し / リセット状態 .............................................................................................. 635 21.6.2 データ書込み ............................................................................................................ 636 21.6.3 データ消去 ( チップ消去 ) ........................................................................................ 638 21.6.4 データ消去 ( セクタ消去 ) ........................................................................................ 639 21.6.5 セクタ消去の一時停止 ............................................................................................. 641 21.6.6 セクタ消去の再開..................................................................................................... 642 21.7 制限および注意事項 ........................................................................................................... 643 付録 付録 A 付録 B 付録 C 付録 D 付録 E 付録 F 付録 G 付録 H H.1 索引 ............................................................................................................... 645 I/O マップ ...................................................................................................................... 646 割込みベクタ ................................................................................................................. 663 ドットクロック生成用 PLL について ............................................................................ 666 USB クロックについて.................................................................................................. 667 USB IO 低消費電力モードについて ............................................................................ 669 外部バスインタフェースの設定について...................................................................... 670 端子状態一覧 ................................................................................................................. 672 命令一覧 ........................................................................................................................ 674 FR ファミリの命令一覧表 .......................................................................................... 677 ............................................................................................................... 693 x 本版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) 2.1 デバイスの取扱い について 「■ 電源投入 / 切断時の注意事項」を変更 「■ 同期モードのソフトウェアリセットについて」および 「■ 低消費電力モード」を追加 3.10.2 リセット要因 「■ ウォッチドッグリセット 」を変更 (WPR ( ウォッチドッグリセット発生延期レジスタ ) → CTBR ( タイムベースカウンタクリアレジスタ )) 72 3.10.5 リセット動作 モード 「■ 同期リセット動作」の「注意事項」を変更 81 3.11.5 クロック生成制 「図 3.11-1 ブロックダイヤグラム」を変更 御部のブロックダイヤ グラム 23, 24 67 83 84 3.11.6 クロック生成制 御部のレジスタ詳細説 明 「■ WPR:ウォッチドッグリセット発生延期レジスタ」を削 除 94 106, 107 「■ STCR : スタンバイ制御レジスタ」に < 注意事項 > を追加 [bit9]: SYNCR (SYNChronous Reset enable) に「注意事項」を追 加 89 98 [bit9,8] WT1, WT0 (Waychdog interval Time select) の 表を変更 (WPR → CTBR) 3.11.7 クロック制御部 が持つ周辺回路 「ウォッチドッグリセットの発生延期」を変更 (WPR ( ウォッチドッグリセット発生延期レジスタ ) → CTBR ( タイムベースカウンタクリアレジスタ )) 低消費電力モード 「■ 低消費電力モード」に , 「スリープモードへの移行」と 「ストップモードへの移行」を追加 208 5.2 I/O ポートのレジス 「■ Port Function Register(PFR)」を変更 (PFR0 ∼ PFR4 → PFR0 ∼ PFR3) タ 232 8.2 PPG タイマのレジ スタ 「[bit11, bit10] CKS1, CKS0: カウントクロック選択ビット」の 表を変更 (φ/2 → φ) 286 12.2 外部割込み /NMI 制御部のレジスタ 「■ 外部割込要求レベル設定レジスタ (ELVR : External LeVel Register)」に < 注意事項 > を追加 287 12.3 外部割込み /NMI 制御部の動作 「■ 外部割込みの動作手順について」を変更 312 15.1.1 UART マクロに おける送受信転送の組 み合わせ 363 17.2 DMA コントロー 「[bit28 ∼ bit24]: IS4 ∼ IS0 (Input Select) * : 転送要因選択」の ラ (DMAC) のレジスタ 表を変更 391 17.6 DMA 転送全般 15.1.1 項全体を追加 「■ 外部端子と内部動作タイミングに関する補足」を削除 xi ページ 408 変更内容(詳細は本文を参照してください。) 18.2.2 ステータスレジ スタ 「■ ST5」の「・ビット構成」および 「表 18.2-5 bit 解説」を変 更 410 413 「■ ST3」の「・ビット構成」および 「表 18.2-3 bit 解説」を変 更 18.2.3 コントロールレ ジスタ 416 「■ CONT1」の「・ビット構成」および 「表 18.2-8 bit 解説」 を変更 「■ CONT3」の ( 注意事項 ) を変更 419, 420 「■ CONT9」の「・ビット構成」および 「表 18.2-16 bit 解説」 を変更 420 「■ CONT10」の「・ビット構成」および 「表 18.2-17 bit 解説」 を変更 421 「■ TTSIZE」の ( 注意事項 ) を変更 422 「■ TRSIZE」の ( 注意事項 ) を変更 423 「表 18.2-18 レジスタマップ」を変更 (0006_007E → 0006_FFFE) 652 付録 A I/O マップ 「表 A-1 I/O マップ」の Address 000414H を変更 (Register PFR4 → "-") 「表 A-1 I/O マップ」の Address 000484H を変更 653 (Register WPR を削除 ) 「表 A-2 I/O マップ」を変更 (00060070H − 0006007DH → 00060070H − 0006FFFBH) (0006007EH → 0006FFFCH, Register を "RESET" に変更 ) 661 (00060080H − 0007FFFFH → 00070000H − 0007FFFFH) 663 ∼ 665 670 671 付録 B 割込みベクタ 「■ 割込みベクタ」の表を変更 付録 F 外部バスインタ 「● CS2 領域 :USB ファンクションが接続されています。」を フェースの設定につい 変更 て 「■ 推奨設定例」を変更 変更箇所は , 本文中のページ左側の│によって示しています。 xii 第1章 概要 この章では , MB91310 シリーズの特長 , ブロック ダイヤグラム , 機能概要など全体を知るための基本 的なことがらについて説明します。 1.1 特長 1.2 ブロックダイヤグラム 1.3 外形寸法図 1.4 端子配列図 1.5 端子機能一覧表 1.6 入出力回路形式 1 第 1 章 概要 1.1 特長 FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理を 要求される組込制御用に各種 I/O リソースを内蔵した , シングルチップマイクロコン トローラです。 TV, PDP 制御用など , 高性能な CPU 処理パワーを要求される組込み用途に最適な仕 様となっています。 本品種は , FR30 ファミリ CPU をベースにバスアクセスの強化を行い , より高速で の使用に対応した FR60 ファミリです。 ■ FR CPU • 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段 • 動作周波数 40MHz (PLL 使用 : 原発振 10MHz) • 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル • メモリ - メモリ間転送 , ビット処理 , バレルシフトなどの命令 : 組込み用途に適した 命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : 高級言語対応命令 • レジスタインターロック機能 : アセンブラ記述の容易化 • 乗算器の内蔵 / 命令レベルでのサポート - 符号付 32 ビット乗算 : 5 サイクル - 符号付 16 ビット乗算 : 3 サイクル • 割込み (PC, PS の退避 ): 6 サイクル , 16 プライオリティレベル • ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に 実行可能 • CPU 内の 4 ワードのキューにより , 命令の先取り機能を追加 • FR ファミリとの命令互換 ■ バスインタフェース 本バスインタフェースは , マクロ接続に使用されます。(USB, OSDC) • 動作周波数 Max 20MHz • 16 ビットデータ入出力 (USB, OSDC とのインタフェース ) • 最小 64Kbyte 単位で設定可能な完全独立な 8 領域のチップセレクト出力が可能 CS1, CS2, CS3 の領域は以下のように予約されています。CS0, CS4 ∼ CS7 は使用で きません。 - CS1 領域 : USB ホスト - CS2 領域 : USB ファンクション - CS3 領域 : OSDC • 基本バスサイクル : 2 サイクル • 領域ごとにプログラマブルでウェイト挿入可能な自動ウエイトサイクル発生機構 CS1, CS2, CS3 は予約されていますので設定は固定になります。 2 第 1 章 概要 ■ 内蔵 RAM • 16KB の容量の RAM を搭載 • 本 RAM はデータの他 , 命令コードを書き込むことにより命令用 RAM として使用で きます。 ■ DMAC (DMA Controller) • 5 チャネル (ch.0, ch.1 → USB ファンクションに接続 ) • 3 つの転送要因 ( 内部ペリフェラル / ソフトウェア ) • アドレシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 ) • 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 ) • 転送データサイズは 8/16/32 ビットから選択可能 ■ ビットサーチモジュール (REALOS 使用 ) 1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ ■ リロードタイマ (REALOS 用 1ch 含む ) • 16 ビットタイマ : 3 チャネル • 内部クロックは 2/8/32 分周から選択可能 ■ UART • 全二重ダブルバッファ • 5 チャネル • パリティあり / なし選択可能 • 非同期 ( 調歩同期 ), CLK 同期通信の選択可能 • 専用ボーレート用タイマ内蔵 • 外部クロックを転送クロックとして使用可能 • 豊富なエラー検出機能あり ( パリティ , フレーム , オーバラン ) ■ I2C インタフェース • 4 チャネル搭載 (ch.3 は 2 ポートで使用可能 ) • マスタ / スレーブ送受信 • クロック同期化機能 • 転送方向検出機能 • バスエラー検出機能 • 標準モード (Max 100kbps)/ 高速モード (Max 400kbps) に対応 • アビトレーション機能 • スレーブアドレス / ゼネラルコールアドレス検出機能 • スタートコンディションの繰り返し発生および検出機能 • 10 ビット / 7 ビットスレーブアドレス ■ 割込みコントローラ • 外部割込み : 合計 5 本 ( マスク不可割込み端子 (NMI)1 本と通常割込み端子 (INT3 ∼ INT0)4 本 ) • 内部ペリフェラルからの割込み • マスク不可割込み以外は , 優先レベルをプログラマブルに設定可能 (16 レベル ) 3 第 1 章 概要 • STOP 時の Wake Up 用として使用可能 ■ A/D コンバータ • 10 ビット分解能 , 10 チャネル • 逐次比較変換型 : 変換時間 : 約 10 µs • 変換モード ( 単発変換モード , スキャン変換モード ) • 起動要因 ( ソフトウェア / 外部トリガ ) ■ PPG • 4 チャネル搭載 • 16 ビットダウンカウンタ , 周期設定用バッファ付 16 ビットデータレジスタ • 内部クロックは 1/4/16/64 分周から選択可能 ■ PWC • 1 チャネル (1 入力 ) 搭載 • 16 ビットアップカウンタ • 簡易 LPF デジタルフィルタ搭載 ■ 多機能タイマ • ローパスフィルタにより設定クロック以下のノイズを除去 • 7 種類のクロック信号を使った細かい設定によるパルス幅計測が可能 • 端子入力からのイベントカウント機能 • 7 種類のクロックおよび , 外部入力クロックを使用したインターバルタイマ機能 ■ USB ホスト機能 • USB1.0 仕様 • パラメータ用の 8KB の RAM を内蔵 ■ USB ファンクション機能 • USB1.1 仕様の Fullspeed・ダブルバッファ • CONTROL IN/OUT, BULK IN/OUT, INTERRUPT IN ■ OSDC 機能 • 高品位 OSDC を内蔵 • アナログ RGB I/F (DAC 内蔵 ) • デジタル RGB I/F • ドットクロック生成用 PLL 内蔵 ■ その他のインターバルタイマ • 16 ビットタイマ : 3 チャネル (U-TIMER) • ウォッチドッグタイマ ■ I/O ポート 最大 72 ポート ■ その他の特長 • クロックソースとして発振回路内蔵 • リセット端子として INIT を用意 4 第 1 章 概要 • その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり • 低消費電力モードとしてストップモードとスリープモードをサポート • ギア機能 • タイムベースタイマ内蔵 • パッケージ : LQFP-144, 0.5mm ピッチ , 20mm × 20mm • CMOS テクノロジ : 0.25 µm • 電源電圧 : 3.3 V ± 0.3V, 2.5 V ± 0.2V, 2 電源 5 第 1 章 概要 1.2 ブロックダイヤグラム 図 1.2-1 に , MB91310 のブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 1.2-1 ブロックダイヤグラム FR CPU Core DSU*1 32 Flash 512KB 32 RAM 16KB Bus DMAC5ch 32 16 USB function Font ROM FLASH 512 KB*2 ROM 168 KB*2 UART 5ch U-TIMER 5ch PWC 1ch PPG 4ch USB host OSDC I2C 4ch A/D 10ch *1: DSU は MB91FV310A のみ搭載です。 *2: FONT ROM として , MB91FV310A は FLASH 512KB が , MB91F312A は MASK ROM 168KB が搭載されています。 6 第 1 章 概要 外形寸法図 1.3 MB91310 には , 1 種類のパッケージが用意されています。図 1.3-1 に , MB91310 の 外形寸法を示します。 ■ 外形寸法図 図 1.3-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) 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) 0.10±0.10 (.004±.004) (Stand off) 0.25(.010) M ©2003-2008 FUJITSU MICROELECTRONICS LIMITED F144019S-c-4-7 C (Mounting height) 2003 FUJITSU LIMITED F144019S-c-4-6 単位:mm (inches) 注意:括弧内の値は参考値です。 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/package/jp-search/ 7 第 1 章 概要 1.4 端子配列図 MB91310 の端末配列を示します。 ■ 端子配列図 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 DCKO VOB1 VOB2 VDDE VDDI VSS R2 R1 R0 G2 G1 G0 B2 B1 B0 UHP UHM UDP UDM VDDE VDDI X1B VSS X0B P74 P73 P72 P71 P70 ICD3 * ICD2 * ICD1 * ICD0 * ICS2 * ICS1 * ICS0 * 図 1.4-1 端子配列図 DOCKI FH VSYNC HSYNC VGS CPO VSS VDDI(PLL) VDDR(2.5V) VREF(1.1V) VRO(2.7KΩ) RCOMP(0.1µF) ROUT VSSR VDDG(2.5V) GCOMP(0.1µF) GOUT VSSG VDDB(2.5V) BCOMP(0.1µF) BOUT VSSB AVCC AVRH AVSS/AVRL AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 P00/SCL0 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 TOP VIEW LQFP-144 MB91FV310A MB91F312 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 IBREAK * ICLK * TRST * VSS VDDI VDDE NMI P65/INT3 P64/INT2 P63/INT1 P62/INT0 P61 P60/ATRG P57/TRG3 P56/TRG2 P55/TRG1 P54/TRG0 P53/TMI3 P52/TMI2 P51/TMI1 P50/TMI0 MD3 MD2 MD1 MD0 P47/PPG3 P46/PPG2 P45/PPG1 P44/PPG0 X1A VSS X0A VDDI VDDE P43/TMO3 P42/TMO2 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 P41/TMO1 P40/TMO0 P36/RIN P35/TO2 P34/TO1 P33/TO0 P32/SCK4/TIN2 P31/SO4/TIN1 P30/SI4/TIN0 P25/SCK3 P24/SO3 P23/SI3 P22/SCK2 P21/SO2 P20/SI2 P17/SCK1 P16/SO1 P15/SI1 P14/SCK0 P13/SO0 P12/SI0 P11/SDA4 P10/SDA3 P07/SCL4 P06/SCL3 P05/SDA2 P04/SCL2 INIT X1 VSS X0 VDDI VDDE P03/SDA1 P02/SCL1 P01/SDA0 *: MB91FV310A における TRST, ICS2 ∼ ICS0, ICD3 ∼ ICD0, ICLK, IBREAK の各端子 は MB91F312A ではオープン端子ですので接続しないでください。 8 第 1 章 概要 端子機能一覧表 1.5 MB91310 の端子機能の一覧を示します。 ■ 端子機能一覧 表 1.5-1 に端子機能の一覧を示します。 表 1.5-1 端子機能一覧表 (1 / 6) Pin No. Pin Name I/O circuit type Function 1 DOCKI D ドットクロック入力 2 FH D 水平同期出力 3 VSYNC D 垂直同期入力 4 HSYNC D 水平同期入力 5 VGS - ガードバンドグランド 6 CPO K チャージポンプ出力 7 VSS - ドットクロック PLL グランド 8 VDDI(PLL) - ドットクロック PLL 電源 9 VDDR(2.5V) - R 用 D/A 電源 10 VREF(1.1V) K 電圧リファレンス入力 11 VRO(2.7kΩ) K 抵抗接続端子 12 RCOMP(0.1µF) K 容量接続端子 13 ROUT K R 出力 ( アナログ ) 14 VSSR - R 用 D/A グランド 15 VDDG(2.5V) - G 用 D/A 電源 16 GCOMP(0.1µF) K 容量接続端子 17 GOUT K G 出力 ( アナログ ) 18 VSSG - G 用 D/A グランド 19 VDDB(2.5V) - B 用 D/A 電源 20 BCOMP(0.1µF) K 容量接続端子 21 BOUT K B 出力 ( アナログ ) 22 VSSB - B 用 D/A グランド 23 AVCC - A/D 電源 24 AVRH - A/D 基準電源 25 AVSS - A/D グランド 26 AN0 E アナログ入力 27 AN1 E アナログ入力 28 AN2 E アナログ入力 29 AN3 E アナログ入力 30 AN4 E アナログ入力 31 AN5 E アナログ入力 9 第 1 章 概要 表 1.5-1 端子機能一覧表 (2 / 6) Pin No. Pin Name I/O circuit type 32 AN6 E アナログ入力 33 AN7 E アナログ入力 34 AN8 E アナログ入力 35 AN9 E アナログ入力 36 P00 C 汎用ポートです。 SCL0 37 P01 I2C クロック端子 C SDA0 38 P02 39 P03 汎用ポートです。 I2C データ端子 C SCL1 汎用ポートです。 I2C クロック端子 C SDA1 汎用ポートです。 I2C データ端子 40 VDDE - 3.3V 電源 41 VDDI(PLL) - 2.5V 電源 42 X0 A 10MHz 発振端子 43 VSS - グランド 44 X1 A 10MHz 発振端子 45 INIT B イニシャル ( リセット ) 端子 46 P04 C 汎用ポートです。 SCL2 47 P05 I2C クロック端子 C SDA2 48 P06 49 P07 N P10 N P11 N P12 N P13 C P14 SCK0 汎用ポートです。 UART0 シリアル入力 C SO0 54 汎用ポートです。 I2C データ端子 SI0 53 汎用ポートです。 I2C データ端子 SDA4 52 汎用ポートです。 I2C クロック端子 SDA3 51 汎用ポートです。 I2C クロック端子 SCL4 50 汎用ポートです。 I2C データ端子 SCL3 10 Function 汎用ポートです。 UART0 シリアル出力 C 汎用ポートです。 UART0 クロック入出力 第 1 章 概要 表 1.5-1 端子機能一覧表 (3 / 6) Pin No. 55 Pin Name P15 I/O circuit type C SI1 56 P16 P17 C P20 C P21 C P22 C P23 C P24 C P25 C 65 66 67 P30 C C UART4 シリアル入力 TIN0 リロードタイマ 0 トリガ入力 P31 C UART4 シリアル出力 TIN1 リロードタイマ 1 トリガ入力 P32 C 汎用ポートです。 SCK4 UART4 クロック入出力 TIN2 リロードタイマ 2 トリガ入力 P33 C P34 P35 P36 P40 TMO0 汎用ポートです。 リロードタイマ 0 出力 C 汎用ポートです。 リロードタイマ 1 出力 C 汎用ポートです。 リロードタイマ 2 出力 C RIN 71 汎用ポートです。 SO4 TO2 70 汎用ポートです。 SI4 TO1 69 汎用ポートです。 UART3 クロック入出力 TO0 68 汎用ポートです。 UART3 シリアル出力 SCK3 64 汎用ポートです。 UART3 シリアル入力 SO3 63 汎用ポートです。 UART2 クロック入出力 SI3 62 汎用ポートです。 UART2 シリアル出力 SCK2 61 汎用ポートです。 UART2 シリアル入力 SO2 60 汎用ポートです。 UART1 クロック入出力 SI2 59 汎用ポートです。 UART1 シリアル出力 SCK1 58 汎用ポートです。 UART1 シリアル入力 SO1 57 Function 汎用ポートです。 PWC 入力 C 汎用ポートです。 多機能タイマ 0 出力 11 第 1 章 概要 表 1.5-1 端子機能一覧表 (4 / 6) Pin No. 72 Pin Name P41 I/O circuit type C TMO1 73 P42 P43 C 汎用ポートです。 多機能タイマ 2 出力 C TMO3 汎用ポートです。 多機能タイマ 3 出力 75 VDDE - 3.3V 電源 76 VDDI - 2.5V 電源 77 X0A A 32kHz 発振端子 78 VSS - グランド 79 X1A A 32kHz 発振端子 80 P44 C 汎用ポートです。 PPG0 81 P45 PPG0 出力 C PPG1 82 P46 83 P47 汎用ポートです。 PPG1 出力 C PPG2 汎用ポートです。 PPG2 出力 C PPG3 汎用ポートです。 PPG3 出力 84 MD0 F モード端子 85 MD1 F モード端子 86 MD2 F モード端子 87 MD3 F モード端子 ( グランド ) 88 P50 C 汎用ポートです。 TMI0 89 P51 多機能タイマ 0 入力 C TMI1 90 P52 91 P53 C P54 C P55 C P56 TRG2 汎用ポートです PPG0 トリガ入力 C TRG1 94 汎用ポートです。 多機能タイマ 3 入力 TRG0 93 汎用ポートです。 多機能タイマ 2 入力 TMI3 92 汎用ポートです。 多機能タイマ 1 入力 TMI2 12 汎用ポートです。 多機能タイマ 1 出力 TMO2 74 Function 汎用ポートです PPG1 トリガ入力 C 汎用ポートです PPG2 トリガ入力 第 1 章 概要 表 1.5-1 端子機能一覧表 (5 / 6) Pin No. 95 Pin Name P57 I/O circuit type C TRG3 96 P60 Function 汎用ポートです PPG3 トリガ入力 C ATRG 汎用ポートです A/D 変換トリガ入力 97 P61 C 汎用ポートです 98 P62 J 汎用ポートです INT0 99 P63 外部割込み入力 0 J INT1 100 P64 外部割込み入力 1 J INT2 101 P65 汎用ポートです 汎用ポートです 外部割込み入力 2 J INT3 汎用ポートです 外部割込み入力 3 102 NMI G NMI 入力 103 VDDE - 3.3V 電源 104 VDDI - 2.5V 電源 105 VSS - グランド 106 TRST B DSU ツールリセット (MB91F312A ではオープン端子で すのでほかと接続しないでください ) 107 ICLK C DSU クロック (MB91F312A ではオープン端子ですので ほかと接続しないでください ) 108 IBREAK L DSU ブレーク (MB91F312A ではオープン端子ですので ほかと接続しないでください ) 109 ICS0 M DSU ステータス (MB91F312A ではオープン端子ですの でほかと接続しないでください ) 110 ICS1 M DSU ステータス (MB91F312A ではオープン端子ですの でほかと接続しないでください ) 111 ICS2 M DSU ステータス (MB91F312A ではオープン端子ですの でほかと接続しないでください ) 112 ICD0 H DSU データ (MB91F312A ではオープン端子ですのでほ かと接続しないでください ) 113 ICD1 H DSU データ (MB91F312A ではオープン端子ですのでほ かと接続しないでください ) 114 ICD2 H DSU データ (MB91F312A ではオープン端子ですのでほ かと接続しないでください ) 115 ICD3 H DSU データ (MB91F312A ではオープン端子ですのでほ かと接続しないでください ) 116 P70 I 汎用ポートです 117 P71 C 汎用ポートです 118 P72 C 汎用ポートです 13 第 1 章 概要 表 1.5-1 端子機能一覧表 (6 / 6) Pin No. Pin Name I/O circuit type Function 119 P73 C 汎用ポートです 120 P74 C 汎用ポートです 121 X0B A 48MHz 発振端子 122 VSS - グランド 123 X1B A 48MHz 発振端子 124 VDDI - 2.5V 電源 125 VDDE - 3.3V 電源 126 UDM 127 UDP 128 UHM 129 UHP 130 B0 D RGB デジタル出力 131 B1 D RGB デジタル出力 132 B2 D RGB デジタル出力 133 G0 D RGB デジタル出力 134 G1 D RGB デジタル出力 135 G2 D RGB デジタル出力 136 R0 D RGB デジタル出力 137 R1 D RGB デジタル出力 138 R2 D RGB デジタル出力 139 VSS - グランド 140 VDDI - 2.5V 電源 141 VDDE - 3.3V 電源 142 VOB2 D 半透明色期間出力 143 VOB1 D OSD 表示期間出力 144 DCKO D ドットクロック出力 14 USB-Function USB USB-Function USB-Host USB USB-Host 第 1 章 概要 1.6 入出力回路形式 MB91310 の入出力回路形式を示します。 ■ 入出力回路形式 表 1.6-1 に MB91310 の入出力回路形式を示します。 表 1.6-1 入出力回路形式 (1 / 5) 分類 A 回路形式 備考 • 発振回路 X1 クロック入力 X0 スタンバイ制御 B • CMOS ヒステリシス入力 プルアップ抵抗付き ディジタル入力 C ディジタル出力 • CMOS レベル出力 CMOS レベルヒステリシス 入力 スタンバイ制御あり ディジタル出力 ディジタル入力 スタンバイ制御 15 第 1 章 概要 表 1.6-1 入出力回路形式 (2 / 5) 分類 回路形式 備考 D 2.5V ディジタル出力 • 2.5VCMOS レベル出力 CMOS レベルヒステリシス 入力 スタンバイ制御あり ディジタル出力 ディジタル入力 スタンバイ制御 E • アナログ入力スイッチ付き アナログ入力 制御 F • CMOS レベル入力 スタンバイ制御なし ディジタル入力 16 第 1 章 概要 表 1.6-1 入出力回路形式 (3 / 5) 分類 回路形式 備考 G • CMOS レベルヒステリシス 入力 スタンバイ制御なし ディジタル入力 H ディジタル出力 • CMOS レベル出力 ヒステリシス入力 スタンバイ制御あり プルダウン抵抗付き ディジタル出力 ディジタル入力 スタンバイ制御 I ディジタル出力 • CMOS レベル出力 ヒステリシス入力 スタンバイ制御あり プルアップ抵抗付き ディジタル出力 ディジタル入力 スタンバイ制御 17 第 1 章 概要 表 1.6-1 入出力回路形式 (4 / 5) 分類 回路形式 備考 J ディジタル出力 • CMOS レベル出力 CMOS レベルヒステリシス 入力 スタンバイ制御なし ディジタル出力 ディジタル入力 K • アナログ端子 L • CMOS ヒステリシス入力 プルダウン抵抗付き ディジタル入力 M • CMOS レベル出力 オープンドレイン 制御 ディジタル出力 18 第 1 章 概要 表 1.6-1 入出力回路形式 (5 / 5) 分類 回路形式 備考 N オープンドレイン 制御 • I2C 用 2 ポート CMOS ヒステリシス入力 CMOS 出力 ストップ制御付き ディジタル出力 ディジタル入力 制御 ディジタル入力 オープンドレイン 制御 ディジタル出力 19 第 1 章 概要 20 第2章 デバイスの取扱いについて この章では , MB91310 シリーズの取扱い上の注意 について説明します。 2.1 デバイスの取扱いについて 21 第 2 章 デバイスの取扱いについて 2.1 デバイスの取扱いについて この節では , ラッチアップ防止 , および端子処理について説明します。 ■ ラッチアップ防止のために CMOS IC では入力端子や出力端子に VDD より高い電圧や VSS より低い電圧を印加し た場合 , または , VDD ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現 象を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊 に至ることがありますので使用に際しては最大定格を超えることのないよう十分に注 意してください。 ■ 未使用入力端子の処理について 使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま すので , プルアップまたは , プルダウンなどの処理をしてください。 ■ 電源端子について VDD・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた めにデバイス内部で同電位にすべきもの同士を接続してありますが , 不要輻射の低減・ グラウンドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を遵 守などのために , 必ずそれらすべてを外部で電源およびグラウンドに接続してくださ い。また , 電流供給源からできるかぎり低インピーダンスで本デバイスの VDD, VSS に 接続するように配慮してください。 さらに , 本デバイスの近くで , VDD と VSS の間に 0.1 µF 程度のセラミックコンデンサ をバイパスコンデンサとして接続することをお勧めします。 ■ 水晶発振回路について X0, X1 端子の近辺のノイズは本デバイスの誤動作のもととなります。X0 と X1 および 水晶発振子 ( あるいはセラミック発振子 ) さらにグラウンドへのバイパスコンデンサは できるかぎり近くに配置するようにプリント板を設計してください。 また , X0, X1 端子の回りをグラウンドで囲むようなプリント板アートワークは安定し た動作を期待できますので , 強くお勧めします。 ■ モード端子 (MD0 ∼ MD3) について これらの端子は , VDD または VSS に直接つないで使用してください。ノイズにより誤っ てテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子と VDD または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで接 続するようにしてください。 ■ ツールリセット端子 (TRST) について この端子はツールを使用しない場合 , 必ず INIT と同じ信号を入れてください。量産品 におきましても同様な処理をお願いします。 22 第 2 章 デバイスの取扱いについて ■ 電源投入時について 電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。 また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください。(INIT 端子 による INIT では , 発振安定待ち時間の設定は最小値に初期化されています。) ■ 電源投入時の原振入力について 電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。 ■ 電源投入 / 切断時の注意事項 ● VDDI( 内部電源 2.5V 系 ) と VDDE( 外部端子電源 3.3V 系 ) の電源投入 / 切断時の注意事項 VDDI( 内部 ) が切断されている条件で VDDE( 外部 ) のみを継続的 (1 分間を目安 ) に印 加することは , LSI の信頼性上の問題がありますので避けてください。 VDDE ( 外部 ) を OFF 状態から ON 状態に復帰させる際には , 電源ノイズなどの影響に より , 回路の内部状態が保持できない場合があります。 投入時 VDDI( 内部 ) → VDDE( 外部 ) →アナログ→信号 切断時 信号→ アナログ→ VDDE( 外部 ) → VDDI( 内部 ) ■ 同期モードのソフトウェアリセットについて 同期モードのソフトウェアリセットを使用するときは , STCR( スタンバイ制御レジス タ ) の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。 • 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する • NMI を使用しない ■ 制限事項 ● クロック制御部 INIT への "L" 入力時には , 発振安定待ち時間を確保してください。 ● ビットサーチモジュール BSD0, BSD1, BDSC レジスタはワードアクセスのみです。 ● I/O ポート ポートへのアクセスはバイトアクセスのみです。 23 第 2 章 デバイスの取扱いについて ■ 低消費電力モード スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタの bit8: SYNCS ビットにて設定します ) を使用したうえで , 以下のシーケン スを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0481H) ldi stb #_Val_of_Stby, rl rl, @r0 ; Val_of_Stby は , STCR へのライトデータ ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0483H) ldi stb ldi stb #0xA5, rl rl, @r2 #0xA5, rl rl, @r2 ; クリアコマンド (1) ; CTBR への A5 ライト ; クリアコマンド (2) ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop nop nop nop nop 24 @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 第3章 CPU および制御部 この章では , MB91310 の機能を知るために , アー キテクチャ , 仕様 , 命令などの基本的なことがらに ついて説明します。 3.1 メモリ空間 3.2 内部アーキテクチャ 3.3 プログラミング・モデル 3.4 データ構造 3.5 ワードアライメント 3.6 メモリマップ 3.7 分岐命令 3.8 EIT( 例外・割込み・トラップ ) 3.9 動作モード 3.10 リセット ( デバイス初期化 ) 3.11 クロック生成制御 3.12 デバイス状態制御 3.13 時計タイマ 3.14 メイン発振安定待ちタイマ 25 第 3 章 CPU および制御部 3.1 メモリ空間 FR ファミリの論理アドレス空間は 4 Gbyte (232 番地 ) あり , CPU はリニアにアクセ スを行います。 ■ メモリマップ ● ダイレクトアドレシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレシング領域とよび , 命令中で直接オペランドのアドレス を指定できます。 ダイレクト領域は , アクセスするデータのサイズにより , 以下の様に異なります。 0 ∼ 0FFH • byte data access : • half word data access : 0 ∼ 1FFH 0 ∼ 3FFH • word data access : 下図に , 各本品種のメモリ空間を示します。 図 3.1-1 メモリマップ MB91FV310A 0000 0000H I/O ダイレクト アドレッシング 領域 I/O I/O I/Oマップ参照 I/O 0000 0400H 0001 0000H 0003 C000H 0004 0000H 0005 0000H 0005 8000H 0006 0000H 0007 0000H 0007 8000H 0008 0000H 0010 0000H 0018 0000H 0020 0000H アクセス禁止 アクセス禁止 内蔵RAM 内蔵RAM USB-HOST(REG) USB-HOST(RAM) USB-FUNC アクセス禁止 OSDC FlashROM1 512KB USB-HOST(REG) USB-HOST(RAM) USB-FUNC アクセス禁止 OSDC FlashROM1 512KB FlashROM2 512KB 外部領域 FFFF FFFFH 26 MB91F312A プログラム フォント MASKROM2 168KB 外部領域 第 3 章 CPU および制御部 内部アーキテクチャ 3.2 FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向け た高機能命令を導入した , 高性能コアです。 ■ 特長 ● RISC アーキテクチャの採用 基本命令 : 1 命令 1 サイクル ● 32 ビットアーキテクチャ 汎用レジスタ : 32 ビット× 16 本 ● 4GB のリニアなメモリ空間 ● 乗算器の搭載 • 32 ビット× 32 ビット乗算 : 5 サイクル • 16 ビット× 16 ビット乗算 : 3 サイクル ● 割込み処理機能の強化 • 高速応答速度 (6 サイクル ) • 多重割込みのサポート • レベルマスク機能 (16 レベル ) ● I/O 操作用命令の強化 • メモリ - メモリ転送命令 • ビット処理命令 ● 高いコード効率 基本命令語長 : 16 ビット ● 低消費電力 スリープモード・ストップモード ● ギア機能 27 第 3 章 CPU および制御部 ■ 内部アーキテクチャ FR の CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造を採用 しています。 32bit ←→ 16bit バスコンバータは 32bit バス (F-BUS) に接続され , CPU と周辺リソース とのインタフェースを実現します。ハーバード←→プリンストン バスコンバータは I-BUS, D-BUS 双方に接続され , CPU とバスコントローラとのインタフェースを実現し ます。 図 3.2-1 内部アーキテクチャ FR CPU Dバス Iバス 32 Iアドレス 32 ハーバード 外部アドレス 24 Iデータ 32 プリンストン バス コンバータ 32 32ビット アドレス 32 16ビット データ 32 バスコンバータ 16 Fバス Rバス 周辺リソース 28 内部I/O バスコントローラ 外部データ 16 第 3 章 CPU および制御部 ● CPU CPU は 32bit RISC の FR アーキテクチャをコンパクトにインプリメントしたものです。 1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用してい ます。パイプラインは以下のステージから構成されています。 • 命令フェッチ (IF): 命令アドレスを出力し , 命令をフェッチします。 • 命令デコード (ID): フェッチした命令をデコードします。レジスタの読み出しも 行います。 • 実行 (EX): 演算を実行します。 • メモリアクセス (MA): メモリに対するロードまたはストアのアクセスを行います。 • ライトバック (WB): 演算結果 ( またはロードされたメモリデータ ) をレジスタに 書き込みます。 図 3.2-2 命令パイプライン CLK 命令1 WB 命令2 MA WB 命令3 EX MA WB 命令4 ID EX MA WB 命令5 IF ID EX MA WB IF ID EX MA 命令6 WB 命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。 命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ リウエイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い 場合も命令の実行速度が低下します。 ● 32bit ←→ 16bit バスコンバータ 32bit 幅で高速アクセスされる F-BUS と , 16bit 幅でアクセスされる R-BUS とのインタ フェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。 CPU から R-BUS に対し 32bit 幅のアクセスがあった場合 , このバスコンバータがそれ を 2 回の 16bit 幅アクセスに変換してアクセスします。内蔵周辺回路の一部にはアクセ ス幅に関して制限があります。 ● ハーバード←→プリンストン バスコンバータ CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ フェースを実現します。 CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 , 外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構 29 第 3 章 CPU および制御部 造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ け , バスコントローラへのアクセスを制御します。この働きにより , 外部へのバスアク セス順位が常に最適化されます。 ■ 命令概要 FR は , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算とビット 操作およびダイレクトアドレッシング命令をサポートしています。命令セットの一覧 は「付録 H 命令一覧」を参照してください。各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効率を持ちます。 命令セットは以下の機能グループに分けられます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ● 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) とシフト命令 ( 論理シフト , 算術演算シフト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や , ア ドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算命令を持ちます。 また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま す。 算術演算命令は , すべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算し ます。 ● ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺回路 (I/O) への読出しと書込みにも使用されます。 ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ スプレースメント付きレジスタ間接やレジスタインクリメント・ディクリメント付き レジスタ間接のメモリアドレッシングも可能です。 ● 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと 持たないものがあり , 用途に応じて最適化できます。分岐命令の詳細については後述し ます。 ● 論理演算とビット操作 論理演算命令は汎用レジスタ間 , または汎用レジスタとメモリ ( および I/O) 間で AND, OR, EOR の論理演算を行えます。またビット操作命令はメモリ ( および I/O) の内容を 直接操作できます。メモリアドレッシングは一般的なレジスタ間接です。 30 第 3 章 CPU および制御部 ● ダイレクトアドレッシング ダイレクトアドレッシング命令は I/O と汎用レジスタ間 , または I/O とメモリ間のアク セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す ることにより , 高速 , 高効率なアクセスを行えます。一部の命令についてはレジスタイ ンクリメント・ディクリメント付きレジスタ間接のメモリアドレッシングも可能です。 ● その他 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 31 第 3 章 CPU および制御部 3.3 プログラミング・モデル この節では , プログラミングモデルの詳細について説明します。 ■ 基本プログラミングモデル 図 3.3-1 基本プログラミングモデル 32 [ R0 ] XXXX XXXX H H R1 R12 R13 A C R14 F P XXXX XXXX R15 S P 0000 0000 H PC PS TBR RP SSP USP MDH MDL 32 ILM SCR CCR 第 3 章 CPU および制御部 ■ レジスタ ● 汎用レジスタ 図 3.3-2 汎用レジスタ 32 [ ] R0 XXXX XXXX H H R1 R12 R13 A C R14 F P XXXX XXXX R15 S P 0000 0000 H レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およびメ モリアクセスのポインタとして使用されます。 16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために 一部の命令が強化されています。 R13: 仮想アキュムレータ R14: フレームポインタ R15: スタックポインタ リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) となり ます。 ● PS (Program Status) プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパートに分か れています。 図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。 書込みは無効です。 31 20 16 ILM 10 8 7 SCR 0 CCR 33 第 3 章 CPU および制御部 ● CCR (Condition Code Register) bit 7 6 5 4 3 2 1 0 [初期値] - - S I N Z V C --00XXXX B [bit5] スタックフラグ R15 として使用されるスタックポインタを指定します。 値 内容 0 SSP が R15 として使用されます。 EIT 発生時 , 自動的に "0" となります。 ( ただし , スタックに退避される値はクリアされる前の値です。) 1 USP が R15 として使用されます。 リセットにより "0" にクリアされます。 RETI 命令実行時は "0" にしてください。 [bit4] 割込み許可フラグ ユーザ割込み要求の許可・禁止を制御します。 値 内容 0 ユーザ割込み禁止。 INT 命令実行時 , "0" にクリアされます。 ( ただし , スタック退避させる値はクリアする前の値です。) 1 ユーザ割込み許可。 ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されます。 リセットにより "0" にクリアされます。 [bit3] ネガティブフラグ 演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。 値 内容 0 演算結果が正の値であったことを示します。 1 演算結果が負の値であったことを示します。 リセットによる初期状態は不定です。 34 第 3 章 CPU および制御部 [bit2] ゼロフラグ 演算結果が 0 であったかどうかを示します。 値 内容 0 演算結果が 0 以外の値であったことを示します。 1 演算結果が 0 であったことを示します。 リセットによる初期状態は不定です。 [bit1] オーバフローフラグ 演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 , オーバフローが生じたかどうかを示します。 値 内容 0 演算の結果 , オーバフローは生じていないことを示します。 1 演算の結果 , オーバフローが生じたことを示します。 リセットによる初期状態は不定です。 [bit0] キャリフラグ 演算により , 最上位ビットからのキャリ , またはボローが発生したかどうかを示しま す。 値 内容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 リセットによる初期状態は不定です。 35 第 3 章 CPU および制御部 ● SCR (System Condition code Register) bit 10 9 8 [初期値] D0 T XX0B D1 [bit10, bit9] ステップ除算用フラグ ステップ除算実行時の中間データを保持します。 除算処理の実行途中に , 変更してはいけません。 ステップ除算実行途中に他の処理を行う場合は , PS レジスタの値を退避・復帰するこ とによりステップ除算の再開が保証されます。 リセットによる初期状態は不定です。 DIV0S 命令の実行により被除数と除数を参照して設定されます。 DIV0U 命令の実行により , 強制的にクリアされます。 [bit8] ステップトレーストラップフラグ ステップトレーストラップを有効にするかどうかを指定するフラグです。 値 内容 0 ステップトレーストラップ無効 1 ステップトレーストラップ有効 このとき , ユーザ用 NMI とユーザ割込みが全て割込み禁止となります。 リセットにより "0" に初期化されます。 ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用時 , ユーザプログラム中では使用できません。 ● ILM bit 20 19 ILM4 ILM3 18 17 16 ILM2 ILM1 ILM0 [初期値] 01111B 割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク に使用されます。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。 プログラムから設定可能な値には制限があります。 元の値が 16 ∼ 31 の時 新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると , ( 指定した値 +16) という値が転送されます。 元の値が 0 ∼ 15 の時 0 ∼ 31 の任意の値が設定可能です。 リセットにより , 15(01111B) に初期化されます。 36 第 3 章 CPU および制御部 ● PC (Program Counter) bit 31 PC 0 [初期値] XXXXXXXXH [bit31 ∼ bit0] プログラムカウンタで , 実行している命令のアドレスを示しています。 命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。bit0 が "1" になる可能性 があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。 ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があり ます。 リセットによる初期値は不定です。 ● TBR (Table Base Register) bit 31 TBR 0 [初期値] 000FFC00H テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。 リセットによる初期値は , 000FFC00H です。 ● RP (Return Pointer) bit 31 RP 0 [初期値] XXXXXXXXH リターンポインタで , サブルーチンから復帰するアドレスを保持します。 CALL 命令実行時 , PC の値がこの RP に転送されます。 RET 命令実行時 , RP の内容が PC に転送されます。 リセットによる初期値は不定です。 ● SSP (System Stack Pointer) bit 31 SSP 0 [初期値] 00000000H SSP は , システムスタックポインタです。 S フラグが "0" のとき , R15 として機能します。 SSP を明示的に指定することも可能です。 また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして も使用されます。 リセットによる初期値は 00000000H です。 37 第 3 章 CPU および制御部 ● USP (User Stack Pointer) bit 31 0 [初期値] USP XXXXXXXXH 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 …… 商 38 第 3 章 CPU および制御部 データ構造 3.4 MB91310 のデータ配置には , 次の 2 つがあります。 • ビットオーダリング • バイトオーダリング ■ ビットオーダリング FR ファミリでは, ビットオーダリングとして , リトルエンディアンを採用しています。 図 3.4-1 ビットオーダリング bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MSB LSB ■ バイトオーダリング FR ファミリでは, バイトオーダリングとして , ビッグエンディアンを採用しています。 図 3.4-2 バイトオーダリング MSB LSB 0 bit 31 15 23 7 10101010 11001100 11111111 00010001 メモリ bit 7 0 n番地 10101010 (n+1)番地 11001100 (n+2)番地 11111111 (n+3)番地 00010001 39 第 3 章 CPU および制御部 3.5 ワードアライメント 命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデー タ幅で異なります。 ■ プログラムアクセス FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。 PC の bit0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。 "1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで す。 ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置かなくては なりません。 奇数アドレス例外はありません。 ■ データアクセス FR ファミリでは , データアクセスを行う際 , その幅により以下の様に強制的な アライ ンメントがアドレスに対して施されます。 word access : アドレスは , 4 の倍数 ( 最下位 2bit は強制的に 00) half word access : アドレスは , 2 の倍数 ( 最下位 bit は強制的に 0) byte access : ─ ワードおよびハーフワードデータアクセス時に, 一部のビットが強制的に0にされるの は , 実効アドレスの計算結果に対してです。例えば , @(R13, Ri) のアドレシングモード の場合 , 加算前のレジスタは ( たとえ最下位ビットが 1 であっても ) そのまま計算に使 用され , 加算結果の下位ビットがマスクされます。計算前のレジスタがマスクされる わけではありません。 [ 例 ] LD @(R13, R2), R0 R13 00002222H R2 00000003H +) 00002225H 00002224H 40 第 3 章 CPU および制御部 3.6 メモリマップ この節では , MB91310 のメモリマップを示します。 ■ メモリマップ アドレス空間は 32 ビットリニアです。 図 3.6-1 にメモリマップを示します。 図 3.6-1 メモリマップ 0000 0000H 0000 0100H 0000 0200H 0000 0400H 000F FC00H 000F FFFFH FFFF FFFFH ● ダイレクトアドレシング領域 アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ ングにより , 命令中で直接オペランドアドレスを指定できます。 ダイレクトアドレス指定可能なアドレス領域の大きさは, データ長ごとに異なります。 • バイトデータ (8 ビット ) : 0 ∼ 0FFH • ハーフワードデータ (16 ビット ) : 0 ∼ 1FFH • ワードデータ (32 ビット ) : 0 ∼ 3FFH ● ベクタテーブル初期領域 000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。 EIT 処理時に使用されるベクタテーブルは , TBR を書き換えることにより任意の アド レスに配置可能ですが, リセットによる初期化によってこのアドレスに配置されます。 41 第 3 章 CPU および制御部 分岐命令 3.7 FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を 指定できます。 ■ 遅延スロット付き動作 ● 命令 以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。 JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D label9 BNO:D label9 BEQ:D label9 BNE:D label9 BC:D label9 BNC:D label9 BN:D label9 BP:D label9 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 ● 動作説明 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延 スロット」とよびます ) に置かれた命令を実行した後に , 分岐します。分岐動作の前に 遅延スロットの命令を実行するため , 見掛け上の実行速度が 1 サイクルとなります。そ の代わり, 遅延スロットに有効な命令を入れられないときは, NOP命令を置いてくださ い。 [例] ; 命令の並び ADD R1, BRA:D LABEL MOV R2, R3, R2 ; ; 分岐命令 R3 ; 遅延スロット …… 分岐の前に 実行される @R4 ; 分岐先 ... LABEL : ST 条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置 かれた命令は実行されます。 遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の 更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで 記述された順番で実行されます。 以下に , 具体的な説明をします。 42 第 3 章 CPU および制御部 (1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を 更新しても影響を受けません。 [例] LDI:32 #Label, JMP:D @R0 LDI:8 #0, R0 R0 ; Label に分岐 ; 分岐先アドレスには影響を与えない。 ... (2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響 を受けません。 [例] RET:D MOV R8, RP ; これより前に設定された RP の示すアドレス へ分岐 ; リターン動作には影響を与えない。 ... (3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。 [例] ADD #1, BC:D ANDCCR R0 ; フラグ変化 Overflow ; 上記の命令の実行結果により分岐 #0 ; このフラグ更新は上記分岐命令では参照しな い。 ... (4) CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により 更新された内容が読み出されます。 [例] CALL:D Label MOV RP, R0 ; RP を更新して分岐 ; 上記 CALL:D の実行結果の RP を転送 ... 43 第 3 章 CPU および制御部 ● 制限事項 (1) 遅延スロットに置ける命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 • 1 サイクル命令 • 分岐命令ではないこと • 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」または「a」または 「b」または「c」または「d」と記載された命令です。 (2) ステップトレーストラップ 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト ラップは発生しません。 (3) 割込み・NMI 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理 しません。 (4) 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと き , 未定義命令は NOP 命令として動作します。 ■ 遅延スロットなし動作 ● 命令 以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN label9 BP label9 BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS label9 BHI label9 ● 動作説明 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が分 岐前に実行されることはありません。 [例] ; 命令の並び ADD R1, R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2, R3 ; 実行されない R3, @R4 ; 分岐先 ... LABEL : 44 ST 第 3 章 CPU および制御部 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。 遅延スロットに適当な命令を入れられないために NOP を明記した遅延スロット付き分 岐命令に比べ , 命令コード効率を上げられます。 遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を 両立させられます。 45 第 3 章 CPU および制御部 3.8 EIT( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断 しほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), ト ラップ (Trap) の総称です。 ■ EIT( 例外・割込み・トラップ ) 例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令か ら再実行します。 割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハー ドウェアです。 トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か ら再実行します。 ■ 特長 • 割込みに多重割込みをサポート • 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 ) • トラップ命令 (INT) • エミュレータ起動用 EIT( ハードウェア / ソフトウェア ) ■ EIT 要因 EIT 要因として , 次のものがあります。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) • NMI • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ ■ EIT からの復帰 • RETI 命令 46 第 3 章 CPU および制御部 3.8.1 割込みレベル 割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。 ■ 割込みレベル 各レベルの割り当ては , 以下の通りです。 表 3.8-1 割込みレベル レベル 割込み要因 2 進数 10 進数 00000 0 ( システム予約 ) … … … … … … 00011 3 ( システム予約 ) 00100 4 ┌ INTE 命令 ┤ └ ステップトレーストラップ 00101 5 ( システム予約 ) … … … … … … 01110 14 ( システム予約 ) 01111 15 NMI ( ユーザ用 ) 10000 16 割込み 10001 17 割込み … … … … … … 11110 30 割込み 11111 31 ─ 注意事項 ILM の元の値が 16 ∼ 31 のとき , この範囲の値をプログラムによ り ILM に設定できません。 ILM 設定時 , ユーザ割込み禁止 ICR 設定時 , 割込み禁止 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT 命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 47 第 3 章 CPU および制御部 ■ I フラグ 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 として設けら れています。 値 内容 0 割込み禁止。 INT 命令実行時 "0" にクリアされます。 ( ただし , スタック退避させる値はクリアする前の値です。) 1 割込み許可。 割込み要求のマスク処理は , ILM の保持する値により制御されます。 ■ 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.8-1 ) が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したとき はマスクされ , 要求は受理されません。 要因の持つ割込みレベル ≧ レベルマスク値 48 第 3 章 CPU および制御部 3.8.2 ICR(Interrupt Control Register) 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを 設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O 空間にマッピングされており , CPU からはバスを通してアクセスされます。 ■ ICR ビット構成 bit 7 6 5 - - - 4 3 2 1 0 ICR4 ICR3 ICR2 ICR1 ICR0 R R/W R/W R/W R/W 初期値 ---11111B [bit4]ICR4 ICR4 は , 常に "1" です。 [bit3 ∼ bit0]ICR3 ∼ ICR0 対応する割込み要因の割込みレベルの下位4ビットです。リード・ライト可能です。 bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定できます。 ■ ICR マッピング 表 3.8-2 割込み要因と割込み制御レジスタ , 割込みベクタ 対応する割込みベクタ 割込み要因 番号 割込み制御レジスタ Address 16 進 10 進 IRQ00 ICR00 00000440H 10H 16 TBR + 3BCH IRQ01 ICR01 00000441H 11H 17 TBR + 3B8H IRQ02 ICR02 00000442H 12H 18 TBR + 3B4H ... ... ... ... ... ... ... ... ... ... ... ... IRQ45 ICR45 0000046DH 3DH 61 TBR + 308H IRQ46 ICR46 0000046EH 3EH 62 TBR + 304H IRQ47 ICR47 0000046FH 3FH 63 TBR + 300H TBR 初期値 : 000F FC00H 注意事項 「第 11 章 割込みコントローラ」を参照してください。 49 第 3 章 CPU および制御部 3.8.3 SSP(System Stack Pointer) EIT の受理および復帰動作時のデータ退避・復活用スタックを示すポインタとして 使用されます。 ■ SSP(System Stack Pointer) bit 31 0[ SSP ] 00000000H EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加 算されます。 リセットによる初期値は 00000000H です。 SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。 ■ 割込みスタック SSP により示される領域で , PC および PS の値が退避・復活されます。割込み後は SSP の示すアドレスに PC, (SSP+4) のアドレスに PS が格納されています。 図 3.8-1 割込みスタック [ ] SSP 80000000H 7FFFFFFCH 7FFFFFF8H 50 [ ] 80000000H [ SSP 80000000H 7FFFFFFCH 7FFFFFF8H ] 7FFFFFF8H PS PC 第 3 章 CPU および制御部 3.8.4 TBR (Table Base Register) EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。 ■ TBR (Table Base Register) bit 31 0[ TBR ] 000FFC00H TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ スとなります。 リセットによる初期値は 000FFC00H です。 ■ EIT ベクタテーブル TBR の示すアドレスから 1KB の領域が , EIT 用ベクタ領域となっています。 1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR + (3FC H − 4 × vct) vctadr: ベクタアドレス vctofs: ベクタオフセット vct : ベクタ番号 加算結果の下位 2bit は常に "00" として扱われます。 000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。なおアーキテクチャ上のベク タテーブルを表 3.8-3 に示します。 51 第 3 章 CPU および制御部 表 3.8-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 マスク可能要因 *2 27 1B ICR11 390H 000FFF90H マスク可能要因 *2 28 1C ICR12 38CH 000FFF8CH マスク可能要因 *2 29 1D ICR13 388H 000FFF88H マスク可能要因 *2 30 1E ICR14 384H 000FFF84H マスク可能要因 *2 31 1F ICR15 380H 000FFF80H マスク可能要因 *2 32 20 ICR16 37CH 000FFF7CH 52 第 3 章 CPU および制御部 表 3.8-3 ベクタテーブル (2 / 3) 割込み要因 割込み番号 割込みレベ ル オフセット TBR デフォルト のアドレス 10 進 16 進 マスク可能要因 *2 33 21 ICR17 378H 000FFF78H マスク可能要因 *2 34 22 ICR18 374H 000FFF74H マスク可能要因 *2 35 23 ICR19 370H 000FFF70H マスク可能要因 *2 36 24 ICR20 36CH 000FFF6CH マスク可能要因 *2 37 25 ICR21 368H 000FFF68H マスク可能要因 *2 38 26 ICR22 364H 000FFF64H マスク可能要因 *2 39 27 ICR23 360H 000FFF60H マスク可能要因 *2 40 28 ICR24 35CH 000FFF5CH マスク可能要因 *2 41 29 ICR25 358H 000FFF58H マスク可能要因 *2 42 2A ICR26 354H 000FFF54H マスク可能要因 *2 43 2B ICR27 350H 000FFF50H マスク可能要因 *2 44 2C ICR28 34CH 000FFF4CH マスク可能要因 *2 45 2D ICR29 348H 000FFF48H マスク可能要因 *2 46 2E ICR30 344H 000FFF44H タイムベースタイマオーバフロー 47 2F ICR31 340H 000FFF40H マスク可能要因 *2 48 30 ICR32 33CH 000FFF3CH マスク可能要因 *2 49 31 ICR33 338H 000FFF38H マスク可能要因 *2 50 32 ICR34 334H 000FFF34H マスク可能要因 *2 51 33 ICR35 330H 000FFF30H マスク可能要因 *2 52 34 ICR36 32CH 000FFF2CH マスク可能要因 *2 53 35 ICR37 328H 000FFF28H マスク可能要因 *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 53 第 3 章 CPU および制御部 表 3.8-3 ベクタテーブル (3 / 3) 割込み要因 割込み番号 割込みレベ ル オフセット TBR デフォルト のアドレス 10 進 16 進 システム予約 67 43 − 2F0H 000FFEF0H システム予約 68 44 − 2ECH 000FFEECH システム予約 69 45 − 2E8H 000FFEE8H システム予約 70 46 − 2E4H 000FFEE4H システム予約 71 47 − 2E0H 000FFEE0H システム予約 72 48 − 2DCH 000FFEDCH システム予約 73 49 − 2D8H 000FFED8H システム予約 74 4A − 2D4H 000FFED4H システム予約 75 4B − 2D0H 000FFED0H システム予約 76 4C − 2CCH 000FFECCH システム予約 77 4D − 2C8H 000FFEC8H システム予約 78 4E − 2C4H 000FFEC4H システム予約 79 4F − 2C0H 000FFEC0H INT 命令で使用 80 | 255 50 | FF − 2BCH | 00H 000FFEBCH | 000FFC00H *1: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス 000FFFFCH, 000FFFF8H が使用されます。 *2: マスク可能要因は各品種により定義されます。本品種におけるベクタテーブルは 「付録 B 割込みベクタ」を参照してください。 54 第 3 章 CPU および制御部 3.8.5 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU はひとつの EIT 要因を選択して受理 し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返 します。 EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要 因のハンドラの命令を実行します。 そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は , 次の 2 つの要素により決まります。 • EIT 要因受理の優先順位 • 受理した場合にほかの要因をどのようにマスクするか ■ EIT 要因受理の優先度 EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの 要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で す。 必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。 EIT 要因受理の優先度は , 表 3.8-4 のようになっています。 表 3.8-4 EIT 要因の受理の優先度とほかの要因へのマスク 受理の優先順位 要因 ほかの要因に対するマスク 1 リセット ほかの要因は破棄されます。 2 未定義命令例外 取消 3 INT 命令 I フラグ= 0 4 コプロセッサ不在トラップ コプロセッサエラートラップ 5 ユーザ割込み ILM =受理した要因のレベル 6 NMI ( ユーザ用 ) ILM = 15 7 (INTE 命令 ) ILM = 4 * 8 NMI ( エミュレータ用 ) ILM = 4 9 ステップトレーストラップ ILM = 4 10 INTE 命令 ILM = 4 ― *: INTE 命令とエミュレータ用 NMI が同時に発生したときのみ優先度が 6 になります。 ( 本品種ではエミュレータ用 NMI をデータアクセスによるブレークに使用していま す) EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し た EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。 55 第 3 章 CPU および制御部 表 3.8-5 EIT ハンドラの実行順序 ハンドラの実行順序 要因 1 リセット *1 2 未定義命令例外 3 ステップトレーストラップ *2 4 INTE 命令 *2 5 NMI ( ユーザ用 ) 6 INT 命令 7 ユーザ割込み 8 コプロセッサ不在トラップ , コプロセッサエラートラップ *1: ほかの要因は破棄されます。 *2: INTE 命令をステップ実行した時はステップトレーストラップの EIT のみ発生しま す。INTE による要因は無視されます。 [例] 図 3.8-2 多重 EIT 処理 56 第 3 章 CPU および制御部 3.8.6 EIT の動作 この項では , EIT の動作について説明します。 ■ EIT の動作 以下の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すもの とします。 また , 「次の命令のアドレス」とは , EIT を検出した命令が下記のようになっているこ とを意味します。 • LDI:32 のとき …… PC+6 • LDI:20, COPOP, COPLD, COPST, COPSV のとき …… PC+4 • その他の命令 のとき …… PC+2 ■ ユーザ割込み・NMI の動作 ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理 の可否が判定されます。 ● 割込み要求受理の可否判定 1. 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を 保持するものが選択されます。 比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持する 値が , NMI についてはあらかじめ定められた定数が使用されます。 2. 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持 つ割込み要求が選択されます。 3. 割込みレベル ≧ レベルマスク値 のとき , 割込み要求はマスクされ受理されない。 割込みレベル < レベルマスク値 のとき , 4 へ。 4. 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み 要求はマスクされ , 受理されません。I フラグが "1" ならば 5 へ。 選択された割込み要求が NMI であるとき , I フラグの値にかかわらず 5 へ。 5. 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。 EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に 対応した割込み番号を使用して , CPU は以下のように動作します。 注意事項 〔動作〕における ( ) はレジスタの指すアドレスを表します。 57 第 3 章 CPU および制御部 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. 受理した要求の割込みレベル → ILM 6. "0" → S フラグ 7. (TBR+ 受理した割込要求のベクタオフセット ) → PC 割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス に遷移します。 ■ 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. "00100" → ILM 6. "0" → S フラグ 7. (TBR+3D8H) → PC INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用 しないでください。 また , ステップ実行中は INTE による EIT の発生はありません。 58 第 3 章 CPU および制御部 ■ ステップトレーストラップの動作 PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに しておくと , 1 命令実行ごとにトラップが発生し , ブレイクします。 ● ステップトレーストラップ検出の条件 • T フラグ = 1 • 遅延分岐命令ではないとき。 • INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。 以上の条件が成立すると , 命令動作の切れ目でブレイクします。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "00100" → 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 として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 59 第 3 章 CPU および制御部 ■ コプロセッサ不在トラップ 実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ サ不在トラップが発生します。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "0" → S フラグ 6. (TBR+3E0H) → PC ■ コプロセッサエラートラップ コプロセッサを使用するしている時にエラーが発生した場合 , 次にそのコプロセッサ を操作するコプロセッサ命令を実行した時 , コプロセッサエラートラップが発生しま す。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "0" → S フラグ 6. (TBR+3DCH) → PC ■ RETI 命令の動作 RETI 命令は , EIT 処理ルーチンから復帰する命令です。 ● 動作 1. (R15) → PC 2. R15+4 → R15 3. (R15) → PS 4. R15+4 → R15 RETI 命令は , S フラグが "0" の状態で実行する必要があります。 ■ 遅延スロットの注意事項 分岐命令の遅延スロットには , EIT に関して制約があります。 「3.7 分岐命令」を参照してください。 60 第 3 章 CPU および制御部 3.9 動作モード 動作モードには , バスモードとアクセスモードがあります。この節では , それぞれの モードについて説明します。 ■ 動作モード 16 8 ● バスモード バスモードとは, 内部ROMの動作と外部アクセス機能の動作を制御するモードを指し, モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し ます。 ● アクセスモード アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の WTH1, WTH0 ビットと ACR0 ∼ ACR7(Area Configuration Register) 内の DBW1 , DBW0 ビットで指定します。 ■ バスモード FR シリーズには , 次に示す 3 つのバスモードがあります。 詳細は 「3.1 メモリ空間」を参照してください。 ● バスモード 0( シングルチップモード ) 内部 I/O, D-bus RAM , F-bus RAM , F-bus ROM が有効で , それ以外の領域へのアクセス は無効であるモードです。 外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機 能しません。 ● バスモード 1( 内 ROM 外バスモード ) 内部 I/O, D-bus RAM , F-bus RAM, F-bus ROM が有効で , 外部アクセスが可能な領域へ のアクセスは外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子と して機能します。 ● バスモード 2( 外 ROM 外バスモード ) 内部 I/O, D-bus RAM が有効で , F-bus RAM, F-bus ROM へのアクセスを禁止にして全て のアクセスが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子と して機能します。 61 第 3 章 CPU および制御部 ■ モード設定 FR シリーズでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作モー ドの設定を行います。 ● モード端子 MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。 モード端子 MD2, MD1, MD0 モード名 リセットベクタ アクセス領域 000 内ROMモードベクタ 内部 001 外ROMモードベクタ 外部 備考 バス幅はモードレジスタで設定 ただし , 表に示した設定以外は禁止とします。 ● モードレジスタ (MODR) モードベクタフェッチ (「3.10.3 リセットシーケンス」」を参照してください。) によっ てモードレジスタに書き込むデータを , モードデータとよびます。 モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定に従った動作モード で動作します。 モードレジスタは , 全てのリセット要因で設定されます。また , ユーザプログラムから は書き込むことはできません。 注意事項 従来 FR シリーズのモードレジスタのアドレス (0000_07FFH) には何も存在しません。 エミュレータモードでは , 書き換え可能です。この場合 , 8 ビット長のデータ転送命令 を使用してください。16/32 ビット長の転送命令では書き込めません。 図 3.9-1 レジスタ詳細説明 bit MODR 000FFFF8H 7 6 5 4 3 2 1 0 初期値 0 0 0 0 0 ROMA WTH1 WTH0 XXXXXXXXB 動作モード設定ビット [bit7 ∼ bit3] 予約ビット 「必ず "00000" を設定してください。"00000" 以外の値を設定した時の動作は保障でき ません。」 62 第 3 章 CPU および制御部 [bit2] ROMA( 内部 ROM イネーブルビット ) 内部 F-bus RAM, F-bus ROM 領域を有効にするかどうかを設定します。 ROMA 0 機能 外 ROM モード 備考 内蔵 F-bus RAM は有効 , 内部 ROM 領域 (80000H ∼ 100000H) が外部領域になります。 1 内 ROM モード 内蔵 F-bus RAM , F-bus ROM が有効になります。 [bit1, bit0] WTH1, WTH0( バス幅指定ビット ) 外バスモード時のバス幅指定の設定を行います。 外バスモード時 , この値が ACR(CS0 領域 ) の DBW ビットに設定されます。 WTH1 WTH0 0 0 8 ビットバス幅 0 1 16 ビットバス幅 1 0 ― 設定禁止 1 1 シングルチップモード シングルチップモード 機能 備考 外バスモード 63 第 3 章 CPU および制御部 3.10 リセット ( デバイス初期化 ) 本品種の初期化であるリセット動作について解説します。 ■ 概要 リセット要因が発生すると , デバイスは全てのプログラムおよびハードウェア動作を 停止し , 状態を初期化します。この状態をリセット状態とよびます。 リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア 動作を開始します。 このリセット状態から動作開始にいたる一連の動作をリセット シーケンスとよびます。 64 第 3 章 CPU および制御部 3.10.1 リセットレベル 本品種のリセット動作は , 2 種類のレベルに分けられ , それぞれ発生要因および初期 化の内容が異なります。 以下 , 各リセットレベルについて解説します。 ■ 設定初期化リセット (INIT) 全ての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよびま す。 設定初期化リセット (INIT) により初期化される主な内容は以下の通りです。 ● 設定初期化リセット (INIT) による初期化箇所 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) • 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 ) • 外部バスの CS0 領域に関するすべての設定 • その他端子状態に関するすべての設定 • 動作初期化リセット (RST) で初期化される全ての箇所 詳細はそれぞれの機能の解説を参照してください。 なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。 ■ 動作初期化リセット (RST) プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ びます。 設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。 動作初期化リセット (RST) により初期化される主な内容は以下の通りです。 ● 動作初期化リセット (RST) による初期化箇所 • プログラム動作 • CPU および内部バス • 周辺回路のレジスタ設定値 • I/O ポート設定 • 外部バスの CS0 領域に関する全ての設定 詳細はそれぞれの機能の解説を参照してください。 65 第 3 章 CPU および制御部 3.10.2 リセット要因 本品種における各リセット発生要因と発生するリセットレベルについて解説します。 過去に発生したリセット要因は , RSRR( リセット要因レジスタ ) を読み出すことに より知ることが可能です。 ( 各解説にあるレジスタ , フラグの詳細な説明は ,「 3.11.5 クロック生成制御部のブ ロックダイヤグラム」, 「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照し てください。) ■ NIT 端子入力 ( 設定初期化リセット端子 ) 外部端子の INIT 端子は , 設定初期化リセット端子として機能します。 本端子へ"L"レベル入力を行っている間, 設定初期化リセット(INIT)要求が発生します。 本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ れます。 本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR( リセット要因レ ジスタ ) の bit15:INIT ビットがセットされます。 本端子要求による設定初期化リセット (INIT) は , すべてのリセット要因中で最強のも のであり , すべての入力・動作・状態よりも優先されます。 なお , 電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。 また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください。(INIT 端子 による INIT では , 発振安定待ち時間の設定は最小値に初期化されています。) 発生要因 : 外部 INIT 端子への "L" レベル入力 解除要因 : 外部 INIT 端子への "H" レベル入力 発生レベル : 設定初期化リセット (INIT) 対応フラグ : bit15:INIT ■ STCR:SRST ビット書込み ( ソフトウェアリセット ) STCR( スタンバイ制御レジスタ ) 中の bit4:SRST ビットに "0" が書き込まれると , ソフ トウェアリセット要求が発生します。 ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。 要求が受け付けられ動作初期化リセット (RST) が発生するとソフトウェアリセット要 求は解除されます。 ソフトウェアリセット要求による動作初期化リセット(RST) が発生した場合, RSRR( リ セット要因レジスタ ) 中の bit11:SRST ビットがセットされます。 ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR( タイムベース カウンタ制御レジスタ ) 中の bit9:SYNCR ビットがセットされている場合 ( 同期リセッ トモード ), すべてのバスアクセスが停止してからでないと発生しません。 66 第 3 章 CPU および制御部 このため, バスの使用状況によっては動作初期化リセット (RST)が発生するまでに長時 間を要する場合があります。 同期モードのソフトウェアリセットの使用に関しては , TBCR( タイムベースカウンタ 制御レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。 発生要因 : STCR( スタンバイ制御レジスタ ) の bit4:SRST ビットへの "0" が書 き込み 解除要因 : 動作初期化リセット (RST) の発生 発生レベル : 動作初期化リセット (RST) 対応フラグ : bit11:SRST ■ ウォッチドッグリセット RSRR( ウォッチドッグタイマ制御レジスタ ) に対し書込みを行うと , ウォッチドッグタ イマが起動します。その後 , RSRR 中の bit9, bit8:WT1, WT0 ビットにて設定した周期内 に CTBR( タイムベースカウンタクリアレジスタ ) への A5H/5AH 書込みが行われないと , ウォッチドッグリセット要求が発生します。 ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付 けられ設定初期化リセット (INIT) が発生するか , または動作初期化リセット (RST) が 発生すると , ウォッチドッグリセット要求は解除されます。 ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レジスタ ) 中の bit13:WDOG ビットがセットされます。 なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 では , 発振安定待ち時間の設定は初期化されません。 発生要因 : ウォッチドッグタイマの設定周期経過 解除要因 : 設定初期化リセット(INIT)または動作初期化リセット(RST)の発生 発生レベル : 設定初期化リセット (INIT) 対応フラグ : bit13:WDOG 67 第 3 章 CPU および制御部 3.10.3 リセットシーケンス リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。 リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。 以下 , 各リセットレベルにおけるリセットシーケンスの動作内容について解説しま す。 ■ 設定初期化リセット (INIT) 解除シーケンス 設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し ます。 1. 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移 2. 発振安定待ち時間 (STCR の bit3, bit2:OS1, OS0 にて設定 ) の間 , 動作初期化リセット (RST) 状態を保持 , 内部クロック停止 3. 動作初期化リセット (RST) 状態 , 内部クロック動作開始 4. 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 5. 000FFFF8H 番地より , モードベクタの読出し 6. 000007FDH 番地の MODR( モードレジスタ ) へ , モードベクタの書込み 7. 000FFFFCH 番地より , リセットベクタの読出し 8. PC( プログラムカウンタ ) へ , リセットベクタの書込み 9. PC( プログラムカウンタ ) の示す番地より , プログラム動作開始 ■ 動作初期化リセット (RST) 解除シーケンス 動作初期化リセット(RST)要求が解除されると, デバイスは以下の動作を順に実行しま す。 1. 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 2. 000FFFF8H 番地より , モードベクタの読出し 3. 000007FDH 番地の MODR( モードレジスタ ) へ , モードベクタの書込み 4. 000FFFFCH 番地より , リセットベクタの読出し 5. PC( プログラムカウンタ ) へ , リセットベクタの書込み 6. PC( プログラムカウンタ ) の示す番地より , プログラム動作開始 68 第 3 章 CPU および制御部 3.10.4 発振安定待ち時間 デバイスの原発振が停止していたかまたはその可能性がある状態から復帰したとき , 自動的に発振安定待ち状態に遷移します。 本機能により発振開始後の安定していない発振器出力を使用しないようにします。 発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー スカウンタのみが動作して , STCR( スタンバイ制御レジスタ ) にて設定された安定 待ち時間の経過を待ちます。 以下 , 発振安定待ち動作の詳細について解説します。 ■ 発振安定待ち発生要因 要因を以下に示します。 ● 設定初期化リセット (INIT) の解除時 各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ 遷移します。 発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。 ● ストップモードからの復帰時 ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。 ただし , 設定初期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ 遷移します。 発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷 移します。 • 有効な外部割込み要求入力 (NMI 含む ) の発生による復帰時 → 通常動作状態へ遷移します。 • 設定初期化リセット (INIT) 要求による復帰時 → 動作初期化リセット (RST) 状態へ遷移します。 • 動作初期化リセット (RST) 要求による復帰時 → 動作初期化リセット (RST) 状態へ遷移します。 ● PLL 選択時の異常状態の発生よりの復帰時 PLL をソースクロックとして動作している時に , PLL 制御に何らかの異常 * が発生した 場合 , PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。 発振安定待ち時間経過後は , 通常動作状態へ遷移します。 *: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など。 ■ 発振安定待ち時間の選択 発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計時されます。 発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ ウンタは , いったん初期化された後 , 発振安定待ち時間の計測を開始します。 69 第 3 章 CPU および制御部 STCR( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 ビットにより , 発振安定待ち時 間を 4 種類のうちから選択して設定できます。 いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初 期化されません。 それ以外の , ウォッチドッグリセットによる設定初期化リセット (INIT) や , 動作初期化リセット (RST) では , リセット発生以前に設定した発振安定待ち 時間が保持されます。 発振安定待ち時間の選択の 4 種類の設定は , それぞれ以下の用途を想定してあります。 • OS1, OS0 = 00 : 発振安定待ち時間なし ( ストップモードで PLL も発振器を停止させない場合 ) • OS1, OS0 = 01 : PLL ロック待ち時間 ( ストップモードで発振器を停止させない場合 ) • OS1, OS0 = 10 : 発振安定待ち時間 ( 中 ) ( セラミック振動子等の安定が速い発振子を使用する場合 ) • OS1, OS0 = 11 : 発振安定待ち時間 ( 長 ) ( 一般の水晶発振子等を使用する場合 ) なお, 電源投入直後は必ずINIT端子にて設定初期化リセット(INIT)をかけてください。 また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください。(INIT 端子 による INIT では , 発振安定待ち時間の設定は最小値に初期化されています。) 70 第 3 章 CPU および制御部 3.10.5 リセット動作モード 動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー ドの 2 つのモードがあり , TBCR( タイムベースカウンタ制御レジスタ ) の bit9:SYNCR ビットによってどちらのモードで動作するかを設定します。 本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。 設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。 以下 , 各モード動作について解説します。 ■ 通常リセット動作 動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状態 への遷移を行う動作を , 通常リセット動作とよびます。 本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動 作状態に関わらず , 即時にリセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結 果を保証できません。しかし , それら要求を確実に受け付けることが可能です。 TBCR( タイムベースカウンタ制御レジスタ ) の bit9:SYNCR ビットが "0" の時 , 通常リ セットモードとなります。 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。 ■ 同期リセット動作 動作初期化リセット(RST)要求が発生した際に, 全てのバスアクセスが停止してから動 作初期化リセット (RST) 状態への遷移を行う動作を , 同期リセット動作とよびます。 本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行 われている間は , リセット (RST) 状態への遷移は行いません。 上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され ます。 各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点では全てのバスアクセスが停止しているため , 全 てのバスアクセスの結果を保証できます。 しかし , バスアクセスが何らかの理由により停止しない場合 , その間各要求を受け付け ることができなくなります ( この様な場合でも , 設定初期化リセット (INIT) は即座に有 効となります )。バスアクセスが停止しない要因には以下の物があげられます。 外部拡張バスインタフェースに対し BRQ( バス解放要求 ) が入力され続け , BGRNT( バ ス解放アクノリッジ ) が有効となっている場合で , 内部バスから新たなバスアクセス要 求が発生している様な場合。 外部拡張バスインタフェースに対し RDY( レディ要求 ) が入力され続け , バスウェイト が有効となっている場合。また , 以下の場合においては , 最終的には各状態へ遷移しま すが , 遷移するまでに長時間かかってしまいます。 71 第 3 章 CPU および制御部 注意事項 • DMA コントローラについては , 各要求の受け付けにより転送停止を行いますので , 各 状態への遷移を遅延させることはありません。 • TBCR( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR ビットが "1" の時 , 同期 リセットモードとなります。 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。 • 同期モードのソフトウェアリセットの使用に関しては , TBCR( タイムベースカウンタ 制御レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。 72 第 3 章 CPU および制御部 3.11 クロック生成制御 この節では , クロックの発生とその制御について説明します。 ■ 概要 本品種の内部動作クロックは以下の様にして生成されます。 • ソースクロックの選択 : クロックの供給源を選択します。 • ベースクロックの生成 : ソースクロックを 2 分周または PLL 発振させ , 基本クロッ クを生成します。 • 各内部クロックの生成 : ベースクロックを分周し , 各部に供給する 4 種類の動作ク ロックを生成します。 以下 , 各クロック生成とその制御について解説します。 ( 各解説にあるレジスタ , フラグの詳細な説明は , この「 3.11.5 クロック生成制御部の ブロックダイヤグラム」, 「 3.11.6 クロック生成制御部のレジスタ詳細説明」を参照し てください。) ■ ソースクロックの選択 ソースクロックの選択について解説します。 外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて生 成した原発振がソースクロックとなります。 外部バスクロックを含む全てのクロック供給源は , 本品種自身となります。 外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2種類を使用で き , 動作中に任意に切り換えて使用することが可能です。 • メインクロック : X0/X1端子入力から生成し, 高速クロックとして使用することを 想定しています。 • サブクロック : X0A/X1A 端子入力から生成し , 低速クロックとして使用するこ とを想定しています。 メイン , サブそれぞれのクロックは , それぞれ独立に制御可能な内蔵メイン PLL, サブ クロックを用いて逓倍されます。 内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。 • メインクロックを 2 分周したもの • メインクロックをメイン PLL で逓倍したもの • サブクロックをそのもの ソースクロックの選択制御は , CLKR( クロックソース制御レジスタ ) の設定によって 行います。 73 第 3 章 CPU および制御部 3.11.1 PLL 制御 メイン / サブ 2 種類のソースクロックに対応した PLL 発振回路それぞれについて , 動作 ( 発振 ) 許可・禁止と逓倍率設定を独立に制御することが可能です。 各制御は , CLKR( クロックソース制御レジスタ ) の設定によって行います。 以下 , 各制御内容について解説します。 ■ PLL 動作許可 メイン PLL 発振動作の許可 / 停止は , CLKR( クロックソース制御レジスタ ) の bit10:PLL1EN ビットの設定によって行います。 サブクロック発振動作の許可 / 停止は , CLKR( クロックソース制御レジスタ ) の bit11:PLL2EN ビットの設定によって行います。 PLL1EN, PLL2EN ビットとも , 設定初期化リセット (INIT) 後は "00" に初期化され , PLL の発振動作は停止しています。停止中は , ソースクロックとして PLL 出力を選択でき ません。 プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設 定しかつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する と良いでしょう。 ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること はできません ( レジスタへの書込みは無効となります )。ストップモードに移行する際 などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分 周したものに選択し直した後 , PLL を停止させてください。 なお , STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットや bit1:OSCD2 ビットによ り , ストップモード中の発振が停止するように設定してある場合 , 対応する PLL はス トップモード遷移時に自動的に停止しますので , 動作停止を改めて設定する必要はあ りません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作を開始し ます。ストップモード中の発振が停止しないように設定してある場合は , PLL は自動 では停止しません。この場合は , 必要であればストップモード移行前にあらかじめ動 作停止を設定してください。 74 第 3 章 CPU および制御部 ■ PLL 逓倍率 メイン PLL の逓倍率は , CLKR( クロックソース制御レジスタ ) の bit14 ∼ bit12:PLL1S2, PLL1S1, PLL1S0 ビットによって設定します。 どちらのビットも設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。 ● PLL 逓倍率設定 PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソー スクロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタ イマ割込みを使用すると良いでしょう。 動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを該当 PLL 以外に 切り換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過 後にソースクロックを切り換えてください。 PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設 定書き換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間 が経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切 り換えた場合は , プログラム動作は停止いたしません。 75 第 3 章 CPU および制御部 3.11.2 発振安定待ち・PLL ロック待ち時間 ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち 時間が必要となります。 (「3.10.4 発振安定待ち時間」参照してください。) PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待 ち時間が必要となります。 以下 , 各種ケースにおける待ち時間について解説します。 ■ 電源投入後の待ち時間 電源投入後は, まずメインクロック用発振回路の発振安定待ち時間が必要となります。 発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に 初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時 間により確保します。 この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ こでは考慮する必要がありません。 ■ 設定初期化後の待ち時間 設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで は , 設定された発振安定待ち時間を内部的に発生します。 INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されてい るため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。 プログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が 発生した場合の解除時には , プログラムにて設定された時間の発振安定待ち時間を内 部的に発生します。 これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間 はここでは考慮する必要がありません。 ■ PLL 動作許可後の待ち時間 プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過 しないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょ う。 ■ PLL 逓倍率変更後の待ち時間 プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち 時間が経過しないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょ う。 76 第 3 章 CPU および制御部 ■ ストップモード復帰後の待ち時間 プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて 設定された時間の発振安定待ち時間を内部的に発生します。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止 させる設定であった場合 , その発振回路の発振安定待ち時間と使用している PLL の ロック待ち時間のうち長い方の時間が必要となります。ストップモードに遷移させる 前に , あらかじめその発振安定待ち時間を設定しておいてください。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止 させない設定であった場合は , PLL は自動では動作停止しません。よって , PLL を停止 させない限り発振安定待ち時間は必要となりません。ストップモードに遷移させる前 に , あらかじめ発振安定待ち時間を最小値に設定しておくと良いでしょう。 77 第 3 章 CPU および制御部 3.11.3 クロック分配 ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを それぞれ作成します。 内部動作クロックは , 全部で 3 種類あり , それぞれが独立に分周比を設定できます。 以下に , 各内部動作クロックについて解説します。 ■ CPU クロック (CLKB) CPU と内部メモリおよび内部バスに使用されるクロックです。 本クロックを使用する回路には , 以下の様なものがあります。 • CPU • 命令キャッシュ • 内蔵 RAM, 内蔵 ROM • ビットサーチモジュール • I バス , D バス , X バス , F バス • DMA コントローラ • DSU 動作可能な上限周波数は 40 MHz ですので , これを越える周波数になる逓倍率と分周比 の組み合わせは設定しないでください。 ■ 周辺クロック (CLKP) 周辺回路およびペリフェラルバスに使用されるクロックです。 本クロックを使用する回路には , 以下の様なものがあります。 • ペリフェラル ( 周辺 ) バス • クロック制御部 ( バスインタフェース部のみ ) • 割込みコントローラ • 周辺 I/O ポート ( ポート *, ポート *) • I/O ポートバス • 外部割込み入力 • UART • 16 ビットタイマ • A/D コンバータ • フリーランタイマ • リロードタイマ • アップダウンカウンタ • I2C インタフェース • PPG 動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる逓倍率と分周比 の組み合わせは設定しないでください。 78 第 3 章 CPU および制御部 ■ 外部バスクロック (CLKT) 外部拡張バスインタフェースに使用されるクロックです。 本クロックを使用する回路には , 以下の様なものがあります。 • 外部拡張バスインタフェース • 外部 CLK 出力 動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる逓倍率と分周比 の組み合わせは設定しないでください。 79 第 3 章 CPU および制御部 3.11.4 クロック分周 各内部動作クロックは , それぞれ独立に , ベースクロックよりの分周比を設定できま す。 この機能により , 各回路に最適な動作周波数を設定できます。 ■ クロック分周 分周比は , DIVR0( 基本クロック分周設定レジスタ 0) および DIVR1( 基本クロック分周 設定レジスタ 1) にて設定します。各レジスタには各クロックに対応する 4 ビットずつ の設定ビットがあり , ( レジスタ設定値 +1) がそのクロックのベースクロックに対する 分周比となります。分周比設定が奇数であっても , 常に Duty は 50 となります。 設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効 となります。 分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の 設定が維持されます。設定初期化リセット(INIT)の発生によってのみ初期化されます。 初期状態では , 周辺クロック (CLKP) 以外は全て分周比が 1 となりますので , ソースク ロックを高速なものに変更する前に必ず分周比の設定を行ってください。 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組み合わせで , 上限周波数を越える設定をした場 合 , 動作は保証されません。くれぐれもご注意願います ( ソースクロック選択の変更設 定との順序を間違えないように特に留意願います )。 80 第 3 章 CPU および制御部 クロック生成制御部のブロックダイヤグラム 3.11.5 以下にクロック生成制御部のブロックダイヤグラムを示します。図中のレジスタの 詳細な解説は , 「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照してくだ さい。 ■ ブロックダイヤグラム 図 3.11-1 ブロックダイヤグラム 周辺停止制御レジスタ [ クロック生成部 ] DIVR0,DIVR1レジスタ R | B U S CPU クロック分周 セレクタ タ 外部バスクロック分周 セレクタ メイン発振 安定待ちタイマ (サブ選択時用) メイン発振 1/2 X0A X1A 外部バスクロック セレクタ PLL 発振回路 各周辺クロック CLKR レジスタ X0 X1 周辺停止制御 セレクタ 停止制御 周辺クロック分周 CPU クロック サブ発振 発振回路 時計タイマ [ ストップ・スリープ制御部] 内部割込み STCR レジスタ ストップ状態 状態遷移 制御回路 内部リセット スリープ状態 リセット発生 F/F リセット発生 F/F 内部リセット(RST) 内部リセット(INIT) [ リセット要因回路] INIT端 子 RSRR レジスタ [ ウォッチドッグ制御部] ウォッチドッグ F/F タイムベースカウンタ カウンタクロック CTBR レジスタ セレクタ タ TBCR レジスタ 割込み許可 オーバフロー検出 F/F タイムベースタイマ 割込み要求 81 第 3 章 CPU および制御部 3.11.6 クロック生成制御部のレジスタ詳細説明 この項では , クロック発生制御部で使用するレジスタの機能について説明します。 ■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ bit アドレス:00000480H 初期値 (INIT端子) 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 8 INIT - WDOG - SRST - WT1 WT0 R 1 R 0 R 0 * x * x R 0 x R 0 * x R 0 x * * R 0 0 0 R/W 0 0 0 * x 「*」…要因により変化します。 「×」…初期化されません。 直前に発生したリセットの要因の保持 , およびウォッチドックタイマの周期設定およ び起動制御を行うレジスタです。 本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す までの間に複数回のリセットが発生した場合 , リセット要因フラグは , 累積され , 複数 のフラグがセットされることになります。 本レジスタに書込むと , ウォッチドッグタイマが起動されます。それ以降は , リセット (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。 [bit15]: INIT (INITialize reset occured) INIT 端子入力によるリセット (INIT) の発生の有無を示します。 0 INIT 端子入力による INIT は発生していません。 1 INIT 端子入力による INIT が発生しました。 • Read 直後に "0" に初期化されます。 • Read 可能で , Write はビット値に影響を与えません。 [bit14]: (reserved bit) [bit13]: WDOG (WatchDOG reset occured) ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。 0 ウォッチドッグタイマによる INIT は発生していません。 1 ウォッチドッグタイマによる INIT が発生しました。 • INIT 端子入力によるリセット (INIT), または Read 直後に "0" に初期化されます。 82 第 3 章 CPU および制御部 • Read 可能で , Write はビット値に影響を与えません。 [bit12]: (reserved bit) [bit11]: SRST (Software ReSeT occured) STCR レジスタの SRST ビット書込み ( ソフトウェアリセット ) によるリセット (RST) の発生の有無を示します。 0 ソフトウェアリセットによる RST は発生していません。 1 ソフトウェアリセットによる RST が発生しました。 • INIT 端子入力によるリセット (INIT), または Read 直後に "0" に初期化されます。 • Read 可能で , Write はビット値に影響を与えません。 [bit10]: (reserved bit) [bit9, bit8]: WT1, WT0 (Watchdog interval Time select) ウォッチドッグタイマの周期を設定します。 本ビットに書き込む値により, ウォッチドッグタイマの周期を下表に示す4種類のうち から選択します。 WT1 WT0 ウォッチドッグリセットの発生 を抑止するために最低限必要な CTBR への書込み間隔 CTBR への最終 5AH 書込みから ウォッチドッグリセットが発生 するまでの時間 0 0 φ × 216 ( 初期値 ) φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 (φ はシステムベースクロックの周期 ) • リセット (RST) により "00" に初期化されます。 • Read可能で, Writeはリセット(RST)後1回のみ有効で, それ以降のWriteは無効です。 83 第 3 章 CPU および制御部 ■ STCR : スタンバイ制御レジスタ bit 7 6 5 4 3 2 1 0 アドレス:00000481H STOP SLEEP HIZ SRST OS1 OS0 OSCD2 OSCD1 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 (INIT端子) 0 0 1 1 0 0 1 1 初期値 (HSTX)* 初期値 (INIT) 初期値 (RST) 0 0 0 0 0 0 1 1 x 1 1 1 1 x x 1 x x 1 1 x 1 1 x *: INIT 端子による初期化と同時の場合のみ。それ以外は INIT 時と同じ。 デバイスの動作モードを制御するレジスタです。 ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を 行います。 同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制 御レジスタ ) の bit9:SYNCR ビットの制限事項を参照してください。 <注意事項> スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタの bit8: SYNCS ビットにて設定します ) を使用したうえで , 以下のシーケン スを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0481H) ldi stb #_Val_of_Stby, rl rl, @r0 ; Val_of_Stby は , STCR へのライトデータ ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0483H) ldi stb ldi stb #0xA5, rl rl, @r2 #0xA5, rl rl, @r2 ; クリアコマンド (1) ; CTBR への A5 ライト ; クリアコマンド (2) ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop nop nop nop nop 84 @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 第 3 章 CPU および制御部 [bit7]: STOP (STOP mode) ストップモードへの遷移を指示します。bit6:SLEEP ビットと本ビット両方に "1" を書 き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。 0 ストップモードへの遷移は行いません。( 初期値 ) 1 ストップモードへ遷移します。 • リセット (RST) およびストップ復帰要因により "0" に初期化されます。 • Read および Write が可能です。 [bit6]: SLEEP (SLEEP mode) スリープモードへの遷移を指示します。bit7:STOP ビットと本ビット両方に "1" を書き 込んだ場合は , bit7:STOP ビットの方が優先となり , ストップモードへ遷移します。 0 スリープモードへの遷移は行いません。( 初期値 ) 1 スリープモードへ遷移します。 • リセット (RST) およびスリープ復帰要因により "0" に初期化されます。 • Read および Write が可能です。 [bit5]: HIZ (HIZ mode) ストップモード時の端子状態を制御します。 0 ストップモード遷移前の端子状態を維持します。 1 ストップモード中は端子出力をハイインピーダンス状態にします。( 初期値 ) • リセット (INIT) により "0" に初期化されます。 • Read および Write が可能です。 [bit4]: SRST (Software ReSeT) ソフトウェアリセット (RST) の発行を指示します。 0 ソフトウェアリセットを発行します。 1 ソフトウェアリセットの発行は行いません。( 初期値 ) • リセット (RST) により "1" に初期化されます。 • Read および Write が可能です。Read 値は , 常に "1" となります。 同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制 御レジスタ ) の bit9:SYNCR ビットの制限事項を参照してください。 85 第 3 章 CPU および制御部 [bit3, bit2]: OS1, OS0 (Oscillation Stabilization time select) リセット (INIT) 後 , およびストップモード復帰後などにおける , 発振安定待ち時間を設 定します。 本ビットに書き込む値により, 発振安定待ち時間を下表に示す4種類のうちから選択し ます。 OS1 OS0 発振安定待ち時間 原発振 10MHz の場合 0 0 φ × 21 ( 初期値 ) 0.4 [µs] 0 1 φ × 211 410 [µs] 1 0 φ × 216 13.1 [ms] 1 1 φ × 222 839 [ms] (φ はシステムベースクロックの周期 , この場合は原発振入力の 2 倍の周期 ) • INIT 端子入力によるリセット (INIT) により "00" に初期化されます。 ただし , INIT 端子入力と HSTX 端子入力によるリセット (INIT) が同時に有効であっ た場合 , "11" に初期化されます。 • Read および Write が可能です。 [bit1]: OSCD2 (OSCillation Disable mode for XIN2) サブ発振入力 (XIN2) における , ストップモード時の発振停止を制御します。 0 ストップモード中もサブ発振は停止しません。 1 ストップモード中はサブ発振を停止します。( 初期値 ) • リセット (INIT) により "1" に初期化されます。 • Read および Write が可能です。 [bit0]: OSCD1 (OSCillation Disable mode for XIN1) メイン発振入力 (XIN1) における , ストップモード時の発振停止を制御します。 0 ストップモード中もメイン発振は停止しません。 1 ストップモード中はメイン発振を停止します。( 初期値 ) • リセット (INIT) により "1" に初期化されます。 • Read および Write が可能です。 86 第 3 章 CPU および制御部 ■ TBCR : タイムベースカウンタ制御レジスタ bit 15 アドレス: 00000482H TBIF 初期値 (INIT) 初期値 (RST) 0 0 R/W 14 13 12 11 TBIE TBC2 TBC1 TBC0 0 0 R/W x x R/W x x R/W x x R/W 10 9 - SYNCR x x R/W 0 x R/W 8 0 x R/W タイムベースタイマ割込みなどを制御するレジスタです。 タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , および リセット動作のオプション機能の設定を行います。 [bit15]: TBIF (Time Base timer Interrupt Flag) タイムベースタイマ割込みフラグです。 タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11:TBC2 ∼ TBC0 ビッ トにて設定 ) を経過したことを示します。 bit14:TBIE ビットにより割込み発生が許可 (TBIE= 1 ) されている時に , 本ビットが "1" になると , タイムベースタイマ割込み要求が発生します。 クリア要因 命令による "0" の書込み セット要因 設定されたインターバル時間の経過 ( タイムベースカウンタ出力の 立下りエッジ検出 ) • リセット (RST) により "0" に初期化されます。 • Read/Write 可能です。ただし Write は "0" のみ可能で , "1" を Write してもビット値 は変化しません。 また , リードモディファイライト系命令での Read 値は , 常に "1" となります。 87 第 3 章 CPU および制御部 [bit14]: TBIE (Time Base timer Interrupt Enable) タイムベースタイマ割込み要求出力許可ビットです。 タイムベースカウンタのインターバル時間経過による割込み要求出力を制御します。 本ビットが "1" の時に , bit15:TBIF ビットが "1" になると , タイムベースタイマ割込み 要求が発生します。 0 タイムベースタイマ割込み要求出力禁止 ( 初期値 ) 1 タイムベースタイマ割込み要求出力許可 • リセット (RST) により "0" に初期化されます。 • Read および Write が可能です。 [bit13 ∼ bit11]: TBC2, TBC1, TBC0 (Time Base timer Counting time select) タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定しま す。 本ビットに書き込む値により, インターバル時間を下表に示す8種類のうちから選択し ます。 TBC2 TBC1 TBC0 タイマインターバル時間 原発振 10MHz および PLL が 4 逓倍の場合 0 0 0 φ × 211 51.2 [µs] 0 0 1 φ × 212 102 [µs] 0 1 0 φ × 213 205 [µs] 0 1 1 φ × 222 105 [ms] 1 0 0 φ × 223 210 [ms] 1 0 1 φ × 224 419 [ms] 1 1 0 φ × 225 839 [ms] 1 1 1 φ × 226 1678 [ms] (φ はシステムベースクロックの周期 ) • 初期値は不定です。割込みを許可する前に必ず値を設定してください。 • Read および Write が可能です。 [bit10]: (reserved bit) 予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。 88 第 3 章 CPU および制御部 [bit9]: SYNCR (SYNChronous Reset enable) 同期リセット動作許可ビットです。 動作初期化リセット (RST) 要求が発生した際に , 即座にリセット (RST) を行う通常リ セット動作を行うか, 全てのバスアクセスが停止してから動作初期化リセット(RST)を 行う同期リセット動作を行うかを選択します。 0 通常リセット動作 ( 初期値 ) 1 同期リセット動作 ・リセット (INIT) により "0" に初期化されます。 ・Read および Write が可能です。 注意事項 同期モードのソフトウェアリセットを使用するときは , STCR( スタンバイ制御レジスタ ) の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。 • 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する • NMI を使用しない [bit8]: SYNCS (SYNChronous Standby enable) 同期スタンバイ動作許可ビットです。 スタンバイ要求 ( スリープモード要求またはストップモード要求 ) を発生する際 , STCR レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバイ動作を 行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読み出すことに よってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択します。 0 通常スタンバイ動作 ( 初期値 ) 1 同期スタンバイ動作 • リセット (INIT) により "0" に初期化されます。 • Read および Write が可能です。 89 第 3 章 CPU および制御部 ■ CTBR : タイムベースカウンタクリアレジスタ bit アドレス: 00000483H 初期値 (INIT) 初期値 (RST) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 x x W x x W x x W x x W x x W x x W x x W x x W タイムベースカウンタを初期化するためのレジスタです。 本レジスタに連続して {A5H}, {5AH} を書き込むと , {5AH} 書き込みの直後にタイム ベースカウンタを全ビット "0" にクリアします。{A5H} 書込みと {5AH} 書込みの間の 時間は制限がありませんが , {A5H} 書込みの後に {5AH} 以外のデータを書き込むと , 再 度 {A5H} を書き込まないと {5AH} を書き込んでもクリア動作は行いません。 ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを 行いますので,これらの条件が発生するとウォッチドッグリセットは自動的に延期され ます。ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合では , ウォッ チドッグリセットは延期されませんので , 長時間外部バスをホールドする場合は , ス リープモードにしてからホールド要求 (BRQ) を入力してください。 本レジスタの読出し値は不定です。 注意事項 本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ チドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。 ■ CLKR : クロックソース制御レジスタ bit 15 14 13 12 11 10 9 8 アドレス: 00000484H PLL2S0 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) x x x x x x x x システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ です。 本レジスタにてクロックソースを 3 種類 ( ※本品種では 2 種類 ) のうちから選択しま す。また , メイン・サブ 2 系統の PLL それぞれの動作許可および逓倍率の選択を制御 します。 [bit15]: PLL2S0 (PLL2 ratio Select 0) サブクロックの逓倍率選択ビットです。 サブクロックの逓倍率を , 2 種類のうちから選択します。 90 第 3 章 CPU および制御部 本品種では , 本ビットへの書込みは常に "0" を書き込んでください。 0 逓倍率設定 1 ( 初期値 ) 1 逓倍率設定 1 • リセット (INIT) により "0" に初期化されます。 • Read および Write が可能です。 [bit14 ∼ bit12]: PLL1S2, PLL1S1, PLL1S0 (PLL1 ratio Select 2-0) メイン PLL の逓倍率選択ビットです。 メイン PLL の逓倍率を , 8 種類 ( 本品種では 4 種類 ) のうちから選択します。 本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えを禁止し ます。 動作可能な上限周波数は 40 MHz ですので , これを越える設定をしないでください。 PLL1S2 PLL1S1 PLL1S0 メインPLL逓倍率 0 0 0 × 1 ( 等倍 ) 原発振10[MHz]の場合, φ=100[ns] (10[MHz]) 0 0 1 × 2 (2 逓倍 ) 原発振 10[MHz] の場合 , φ = 50[ns] (20[MHz]) 0 1 0 × 3 (3 逓倍 ) 原発振 10[MHz] の場合 , φ = 33[ns] (30[MHz]) 0 1 1 × 4 (4 逓倍 ) 原発振 10[MHz] の場合 , φ = 25[ns] (40[MHz]) 1 0 0 × 5 (5 逓倍 ) 本品種では未サポート 1 0 1 × 6 (6 逓倍 ) 本品種では未サポート 1 1 0 × 7 (7 逓倍 ) 本品種では未サポート 1 1 1 × 8 (8 逓倍 ) 本品種では未サポート (φ はシステムベースクロックの周期 ) • リセット (INIT) により "000" に初期化されます。 • Read および Write が可能です。 [bit11]: PLL2EN (PLL2 ENable) サブクロックの動作許可ビットです。 本ビットは , クロックソースとしてサブクロックを選択している間は書き換えを禁止 します。 また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択することを禁止 します (bit9, bit8:CLKS1, CLKS0 ビットの設定による )。 STCR の bit1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であってもサ ブクロックは停止します。ストップモードよりの復帰後は動作許可に戻ります。 91 第 3 章 CPU および制御部 0 サブクロック停止 ( 初期値 ) 1 サブクロック動作許可 • リセット (INIT) により "0" に初期化されます。 • Read および Write が可能です。 [bit10]: PLL1EN (PLL1 ENable) メイン PLL の動作許可ビットです。 本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えを禁止し ます。 また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択することを禁止 します (bit9, bit8:CLKS1, CLKS0 ビットの設定による )。 STCR の bit1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であってもメ イン PLL は停止します。ストップモードよりの復帰後は動作許可に戻ります。 0 メイン PLL 停止 ( 初期値 ) 1 メイン PLL 動作許可 • リセット (INIT) により "0" に初期化されます。 • Read および Write が可能です。 [bit9, bit8]: CLKS1, CLKS0 (CLocK source Select) FR コアで使用するクロックソースを設定します。 本ビットに書き込む値により, クロックソースを下表に示す3種類のうちから選択しま す。 なお , bit9:CLKS1 が "1" の間は bit8:CLKS0 の値を変更できません。 変更不可能な組み合わせ 変更可能な組み合わせ "00" → "11" "00" → "01" または "10" "01" → "10" "01" → "11" または "00" "10" → "01" または "11" "10" → "00" "11" → "00" または "10" "11" → "01" このため , INIT 後の状態からサブクロックを選択したい場合は , まず "01" を書き込ん だ後に , "11" を書き込む様にしてください。 92 第 3 章 CPU および制御部 サブクロックのソースである X0A/X1A よりの原発振入力の 2 分周は選択できません。 CLKS1 CLKS0 クロックソース設定 0 0 X0/X1 よりの原発振入力の 2 分周 ( 初期値 ) 0 1 X0/X1 よりの原発振入力の 2 分周 1 0 メイン PLL 1 1 サブクロック • リセット (INIT) により "00" に初期化されます。 • Read および Write が可能です。 93 第 3 章 CPU および制御部 ■ DIVR0: 基本クロック分周設定レジスタ 0 bit 15 14 13 12 11 10 9 8 アドレス: 00000486H B3 B2 B1 B0 P3 P2 P1 P0 初期値 (INIT) 初期値 (RST) R/W 0 x R/W 0 x R/W 0 x R/W 0 x R/W 0 x R/W 0 x R/W 1 x R/W 1 x 各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , CPU および内部バスのクロック (CLKB) と , 周辺回路およびペリフェ ラルバスクロック (CLKP) の分周比の設定を行います。 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組み合わせで , 上限周波数を越える設定をした場 合 , 動作は保証されません。くれぐれもご注意願います ( ソースクロック選択の変更設 定との順序を間違えないように注意願います )。 本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周 比が有効となります。 [bit15 ∼ bit12]: B3, B2, B1, B0 (clkB divide select 3-0) CPU クロック (CLKB) クロック分周比設定ビットです。 CPUと内部メモリおよび内部バスのクロック(CLKB)のクロック分周比を設定します。 本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに対 する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 40 MHz ですので , これを越える周波数になる分周比は設定し ないでください。 B3 B2 B1 B0 クロック分周比 クロック周波数:原発振 10[MHz] および PLL4 逓倍の場合 0 0 0 0 φ 40 [MHz] ( 初期値 ) 0 0 0 1 φ × 2 (2 分周 ) 20 [MHz] 0 0 1 0 φ × 3 (3 分周 ) 13.3[MHz] 0 0 1 1 φ × 4 (4 分周 ) 10 [MHz] 0 1 0 0 φ × 5 (5 分周 ) 8 [MHz] 0 1 0 1 φ × 6 (6 分周 ) 6.67[MHz] 0 1 1 0 φ × 7 (7 分周 ) 5.71[MHz] 0 1 1 1 φ × 8 (8 分周 ) 5 [MHz] … … … … … … 1 1 1 1 φ × 16 (16 分周 ) 2.5 [MHz] (φ はシステムベースクロックの周期 ) • リセット (INIT) により "0000" に初期化されます。 • Read および Write が可能です。 94 第 3 章 CPU および制御部 [bit11 ∼ bit8]: P3, P2, P1, P0 (clkP divide select 3 ∼ 0) 周辺クロック (CLKP) クロック分周比設定ビットです。 周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。 本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベース クロックに対する分周比(クロック周波数)を下表に示す16種類のうちから選択します。 動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる分周比は設定し ないでください。 P3 P2 P1 P0 クロック分周比 クロック周波数:原発振 10[MHz] および PLL4 逓倍の場合 0 0 0 0 φ 設定禁止 0 0 0 1 φ × 2 (2 分周 ) 20 [MHz] 0 0 1 0 φ × 3 (3 分周 ) 13.3[MHz] 0 0 1 1 φ × 4 (4 分周 ) 10 [MHz] ( 初期値 ) 0 1 0 0 φ × 5 (5 分周 ) 8 [MHz] 0 1 0 1 φ × 6 (6 分周 ) 6.67[MHz] 0 1 1 0 φ × 7 (7 分周 ) 5.71[MHz] 0 1 1 1 φ × 8 (8 分周 ) 5 [MHz] … … … … … … 1 1 1 1 φ × 16 (16 分周 ) 2.5 [MHz] (φ はシステムベースクロックの周期 ) • リセット (INIT) により "0011" に初期化されます。 • Read および Write が可能です。 95 第 3 章 CPU および制御部 ■ DIVR1: 基本クロック分周設定レジスタ 1 bit アドレス: 00000487H 初期値 (INIT) 初期値 (RST) 7 6 5 4 3 2 1 0 T3 R/W 0 x T2 R/W 0 x T1 R/W 0 x T0 R/W 0 x R/W 0 x R/W 0 x R/W 0 x R/W 0 x 各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を行 います。 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組み合わせで , 上限周波数を越える設定をした場 合 , 動作は保証されません。くれぐれもご注意願います ( ソースクロック選択の変更設 定との順序を間違えないように注意願います )。 本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周 比が有効となります。 [bit7 ∼ bit4]: T3, T2, T1, T0 (clkT divide select 3 ∼ 0) 外部バスクロック (CLKT) クロック分周比設定ビットです。 外部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。 本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる分周比は設定し ないでください。 T3 T2 T1 T0 クロック分周比 クロック周波数:原発振 10[MHz] および PLL4 逓倍の場合 0 0 0 0 φ 設定禁止 0 0 0 1 φ × 2 (2 分周 ) 20 [MHz] 0 0 1 0 φ × 3 (3 分周 ) 13.3[MHz] 0 0 1 1 φ × 4 (4 分周 ) 10 [MHz] 0 1 0 0 φ × 5 (5 分周 ) 8 [MHz] 0 1 0 1 φ × 6 (6 分周 ) 6.67[MHz] 0 1 1 0 φ × 7 (7 分周 ) 5.71[MHz] 0 1 1 1 φ × 8 (8 分周 ) 5 [MHz] … … … … … … 1 1 1 1 φ × 16 (16 分周 ) 2.5 [MHz] (φ はシステムベースクロックの周期 ) • リセット (INIT) により "0000" に初期化されます。 • Read および Write が可能です。 [bit3 ∼ bit0]: (reserved bit) 96 第 3 章 CPU および制御部 ■ OSCCR : 発振制御レジスタ bit アドレス: 0000048AH 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 R/W x x R/W x x R/W x x R/W x x R/W x x R/W x x R/W x x 8 OSCDS1 R/W 0 x サブクロック動作時のメイン発振を制御するレジスタです。 [bit8]: OSCDS1 (OSCilattion Disable on Sub clock for XIN1) サブクロック選択中のメイン発振停止ビットです。 クロックソースとしてサブクロック選択中に , 本ビットに "1" を書き込むとメイン発振 を停止します。 本ビットは , メインクロックを選択中は "1" を書くことはできません。 本ビットが "1" の間はメインクロックを選択することを禁止します。本ビットを "0" に してメイン発振の安定を待ってからメインクロックに切り替えてください。この時, メ イン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。 また, 本ビットによってメイン発振を停止させた状態で, INITによってクロックソース がメインクロックに切り替わった場合もメイン発振安定待ち時間が必要になります。 この時 , STCR( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 の設定がメイン発振安 定待ち時間を満たさない場合 , 復帰後の動作が保証されません。この様な場合は , STCR:OS1, OS0 ビットはサブ発振安定待ち時間およびメイン発振安定待ち時間両方を 満たした値を設定してください。INIT 端子による INIT 時は , メイン発振が安定するま で INIT 端子に "L" を入力し続ける必要があります。 発振安定待ちについては , 「3.11.2 発振安定待ち・PLL ロック待ち時間」も参照くだ さい。 0 サブクロック実行中 , メイン発振を停止しません。( 初期値 ) 1 サブクロック実行中 , メイン発振を停止します。 • リセット (INIT) により "0" に初期化されます。 • Read および Write が可能です。 97 第 3 章 CPU および制御部 3.11.7 クロック制御部が持つ周辺回路 クロック制御部が持つ周辺回路機能について以下に解説します。 ■ タイムベースカウンタ クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク ロックで動作しています。 タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10.4 発振安定待ち時間」を参 照願います ) の他 , 以下の用途に使用されます。 • ウォッチドッグタイマ システムの暴走検出用のウォッチドッグタイマを , タイムベースカウンタのビット 出力を用いて計測します。 • タイムベースタイマ タイムベースカウンタ出力を用いて , インターバル割込みを発生します。 以下 , これらの機能について解説します。 ● ウォッチドッグタイマ ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。 プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生 延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット (INIT) 要求を発生します。 ウォッチドッグタイマの起動と周期設定 ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR( リセット要因レジス タ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。この 時 , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビットにより 設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみが 有効となり , それ以降の書込みは全て無視されます。 ウォッチドッグリセットの発生延期 いったんウォッチドッグタイマを起動すると , プログラムで定期的に CTBR( タイム ベースカウンタクリアレジスタ ) に対して {A5H}, {5AH} の順でデータを書込む必要 があります。この操作により , ウォッチドッグリセット発生用フラグが初期化され ます。 ウォッチドッグリセットの発生 ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ ウンタ出力の立ち下がりエッジによってセットされます。2 度目の立ち下がりエッ ジの検出時にフラグがセットされていると , ウォッチドッグリセットとして設定初 期化リセット (INIT) 要求を発生します。 ウォッチドッグタイマの停止 いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す るまでは , ウォッチドッグタイマを停止できません。 動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停 止し , 再度プログラム動作にて起動するまでは , 機能しません。 98 第 3 章 CPU および制御部 • 動作初期化リセット (RST) 状態 • 設定初期化リセット (INIT) 状態 • 発振安定待ちリセット (RST) 状態 ウォッチドッグタイマの一時停止 ( 自動発生延期 ) ウォッチドッグタイマは , CPU のプログラム動作が停止している場合には , いった んウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発 生を延期します。プログラム動作の停止とは具体的には以下の動作を示します。 • スリープ状態 • ストップ状態 • 発振安定待ち RUN 状態 • D バス ( データバス ) に対する DMA 転送中 • エミュレーションモード また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発 生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。 ● タイムベースタイマ タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生 用タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最大で { ベースクロック× 227} サイクルまでの , 比較的長時間の時間計測を行う用途 に適しています。 設定したインターバルに対応するタイムベースカウンタの出力の立ち下がりエッジを 検出すると , タイムベースタイマ割込み要求を発生します。 タイムベースタイマの起動とインターバル設定 タイムベースタイマは , TBCR( タイムベースカウンタ制御レジスタ ) の bit13 ∼ bit11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。 設定したインターバルに対応するタイムベースカウンタの出力の立ち下がりエッ ジは常に検出されているため , インターバル時間の設定後はまず bit15:TBIF ビット をクリアしてから , bit14:TBIE ビットを "1" にして割込み要求出力を許可してくだ さい。 インターバル時間を変更する際は , あらかじめ bit14:TBIE ビットを "0" にして割込 み要求出力を禁止しておいてください。 タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていま すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ イムベースカウンタをクリアしてください。そうでないと , 割込み許可直後に割込 み要求が発生することもあり得ます。 プログラムによるタイムベースカウンタのクリア CTBR( タイムベースカウンタクリアレジスタ ) に対して {A5H}, {5AH} の順でデー タを書込むと , {5AH} 書込みの直後に , タイムベースカウンタを全ビット "0" にクリ アします。{A5H} 書込みと {5AH} 書込みの間の時間は制限がありませんが , {A5H} 書込みの後に{5AH}以外のデータを書き込むと, 再度{A5H}を書き込まないと{5AH} を書き込んでもクリア動作は行いません。 99 第 3 章 CPU および制御部 このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ セット発生用フラグも初期化され , ウォッチドッグリセットの発生が , いったん延 期されます。 デバイス状態によるタイムベースカウンタのクリア タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にク リアされます。 • ストップ状態 • 設定初期化リセット (INIT) 状態 特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し てしまうことがあり得ます。そのため , ストップモードを設定する前には , タイム ベースタイマ割込みを禁止し , タイムベースタイマを使用しない様にしてくださ い。 それ以外の状態については, 動作初期化リセット(RST)が発生するため, タイムベー スタイマ割込みは自動的に禁止されます。 ■ 時計タイマ クロックソースの選択や分周設定の影響を受けず, 32kHzのサブクロックに同期してカ ウントアップする 15 ビットのフリーランタイマです。 サブクロックの安定待ち時間の計時や , サブクロックを用いて一定周期ごとに処理し たい用途に使用します。 時計タイマはサブクロック動作時にカウントアップを行いますが , STCR( スタンバイ 制御レジスタ ) の bit1:OSCD2 が "1" の設定でストップモードに移行させると時計タイ マも停止します。ストップモードで停止させたくない場合は , ストップモードに移行さ せる前に OSCD2 ビットに "0" を設定し , サブクロックを停止させない様にしてくださ い。 時計タイマを用いてクロックソースをメインクロックからサブクロックに切り替える 場合は , 以下の手順で行います。 • 時計タイマを発振安定待ち時間に設定しておきます。必要であれば 0 クリアも行っ てください。 • CLKR( クロックソースレジスタ ) の bit11:PLL2EN を "1" にしてサブクロックの発振 を開始します。 • 時計タイマを用いてサブクロックが安定するまで待ちます。この時 , 時 計割込みを 使用して発振安定待ち時間を確保してください。 • サブクロック安定後 , CLKR( クロックソースレジスタ ) の bit9, bit8:CLKS1, CLKS0 にてメインクロックからサブクロックに切り替えます。 安定を待たずサブクロックに切り替えると , 不安定なクロックが供給され , その後の動 作は保証されませんので, 必ず安定を待った後にサブクロックに切り替えてください。 時計タイマの詳細については ,「 3.13 時計タイマ」を参照ください。 100 第 3 章 CPU および制御部 ■ メイン発振安定待ちタイマ ( サブクロック選択時用 ) クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン トアップする 26 ビットのフリーランタイマです。 サブクロック動作中のメイン発振安定待ち時間の計時に使用します。 サブクロックで動作中 , OSCCR( 発振制御レジスタ ) の bit8:OSCDS1 にて , メイン発振 の制御が行えますが , メイン発振を停止させた後で再度発振開始させた際に , 本タイマ を用いて発振安定待ち時間を計時します。 メインクロックを停止させたサブクロック動作状態からメインクロックに切り替える 際は , 下記の手順で行います。 • メイン発振安定待ちタイマをクリアします。 • OSCCR( 発振制御レジスタ ) の bit8:OSCDS1 を "0" にしてメイン発振を開始します。 • メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。 • メインクロック安定後 , CLKR( クロックソースレジスタ ) の bit9, bit8:CLKS1, CLKS0 にてサブクロックからメインクロックに切り替えます。 安定を待たずメインクロックに切り替えると , 不安定なクロックが供給され , その後の 動作は保証されませんので , 必ず安定を待った後にメインクロックに切り替えてくだ さい。 メイン発振安定待ちタイマの詳細については , 「 3.14 メイン発振安定待ちタイマ」を 参照ください。 101 第 3 章 CPU および制御部 3.12 デバイス状態制御 本品種の各種状態とその制御について解説します。 ■ デバイス状態と各遷移 本品種のデバイスの状態遷移を下記に示します。 図 3.12-1 デバイス状態の遷移 1 2 3 4 5 6 7 8 9 10 11 12 13 INIT端子=0(INIT) INIT端子=1(INIT解除) 発振安定待ち終了 リセット(RST) 解除 ソフトウェアリセット(RST) スリープ(命令書込み) ストップ(命令書込み) 割込み クロックを必要としない外部割込み メイン→サブ切換え(命令書込み) サブ→メイン切換え(命令書込み) ウォッチドックリセット(INIT) サブスリープ(命令書込み) 遷移要求の優先順位 パワーオン 最強 ↓ ↓ ↓ ↓ 最弱 1 設定初期化リセット(INIT) 発振安定待ち終了 動作初期化リセット(RST) 割込み要求 ストップ スリープ 設定初期化 (INIT) 2 メインクロックモード 1 メインストップ メイン発振安定待ち リセット 3 9 1 発振安定待ち RUN プログラムリセット (RST) 3 1 1 7 メインスリープ 5 4 12 メイン RUN 6 1 1 8 10 サブクロックモード 1 11 8 サブスリープ 12 サブ RUN 13 1 1 3 発振安定待ち RUN 1 7 5 4 プログラムリセット (RST) 1 9 サブストップ *2 (時計状態 ) 補足 *1)クロックソースをメイン←→サブに切り換える場合は,RUN状態にて,切換え後のクロックが安定供給さ れている状態にて,クロックソースレジスタ(CLKR)-bit1:bit0(CLKS1,CLKS0)ビットを切り換えてください。 *2)時計タイマ以外を停止(時計状態)させるには,サブRUN状態にてスタンバイ制御レジスタ(STCR) bit1:OSCD2を0に設定した状態でストップモードに移行してください。 本品種のデバイスの動作状態には以下のものがあります。 102 第 3 章 CPU および制御部 ■ RUN 状態 ( 通常動作 ) プログラム実行状態です。 全ての内部クロックが供給され , 全ての回路が動作可能な状態です。 ただし , 16bit 周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバス クロックのみ停止しています。 各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ セットモードの場合と一部要求に対する状態遷移動作が異なります。詳細は , 「3.10.5 リセット動作モード」を参照願います。 ■ スリープ状態 プログラム停止状態です。プログラム動作により遷移します。 CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。命令キャッシュ は停止し , 各種内蔵メモリおよび内部 / 外部バスは DMA コントローラが要求しない限 り停止状態です。 有効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移しま す。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移し ます。 ■ ストップ状態 デバイス停止状態です。プログラム動作により遷移します。 すべての内部回路が停止します。内部クロックは全て停止し , 発振回路および PLL は 設定により停止させることが可能です。 また , 設定により , 外部端子を一律ハイインピーダンスにすることが可能です。( 一部 端子を除く ) 特定の ( クロックを必要としない ) 有効な割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移 します。 ■ 発振安定待ち RUN 状態 デバイス停止状態です。ストップ状態よりの復帰後に遷移します。 クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて の内部回路が停止します。内部クロックは全て停止しますが , 発振回路および動作許 可されていた PLL は動作しています。 ストップ状態等での外部端子のハイインピーダンス制御は解除されます。 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 103 第 3 章 CPU および制御部 動作初期化リセット (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 端子への "L" レベル入力期間は停止しますが , それ以外では 動作します。 内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力 します。 設定初期化リセット (INIT) 要求の消失により , 本状態は解除され , 発振安定待ちリセッ ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期 化リセットシーケンスを実行します。 104 第 3 章 CPU および制御部 ■ 各状態遷移要求の優先順位 どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求 は特定の状態でしか発生しませんので , その状態でしか有効になりません。 【最強】 設定初期化リセット (INIT) 要求 ↓ 発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 ) ↓ 動作初期化リセット (RST) 要求 ↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 ) ↓ ストップモード要求 ( レジスタ書込み )(RUN 状態のみ発生 ) 【最弱】 スリープモード要求 ( レジスタ書込み )(RUN 状態のみ発生 ) 105 第 3 章 CPU および制御部 3.12.1 低消費電力モード 本品種の状態のうち , 各低消費電力モードとその使用方法について解説します。 ■ 低消費電力モード 本品種の低消費電力モードには , 以下のものがあります。 • スリープモード レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。 • ストップモード レジスタ書込みにより , デバイスをストップ状態へ遷移させます。 以下 , 各モードについて解説します。 ● スリープモード STCR( スタンバイ制御レジスタ ) の bit6:SLEEP ビットに "1" を書き込むと , スリープ モードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発生 するまでは , スリープ状態を維持します。 STCR( スタンバイ制御レジスタ ) の bit7:STOP ビットと本ビット両方に "1" を書き込ん だ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 スリープ状態については , 次のページを参照願います。 スリープモードへの移行 スリープモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタの bit8:SYNCS ビットにて設定します ) を使用した上で , 以下のシーケン スを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0481H) ldi stb #_Val_of_Stby, rl rl, @r0 ; Val_of_Stby は , STCR へのライトデータ ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0483H) ldi stb ldi stb #0xA5, rl rl, @r2 #0xA5, rl rl, @r2 ; クリアコマンド (1) ; CTBR への A5 ライト ; クリアコマンド (2) ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop nop nop nop nop 106 @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 第 3 章 CPU および制御部 ストップモードへの移行 ストップモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタの bit8:SYNCS ビットにて設定します ) を使用した上で , 以下のシーケン スを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0481H) ldi stb #_Val_of_Stby, rl rl, @r0 ; Val_of_Stby は , STCR へのライトデータ ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0483H) ldi stb ldi stb #0xA5, rl rl, @r2 #0xA5, rl rl, @r2 ; クリアコマンド (1) ; CTBR への A5 ライト ; クリアコマンド (2) ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop nop nop nop nop @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 スリープ状態で停止する回路 • CPU のプログラム実行 • データキャッシュ • ビットサーチモジュール (DMA 転送が発生した場合は動作します。) • 各種内蔵メモリ (DMA 転送が発生した場合は動作します。) • 内部 / 外部バス (DMA 転送が発生した場合は動作します。) スリープ状態で停止しない回路 • 発振回路 • 動作許可された PLL • クロック発生制御部 • 割込みコントローラ • 周辺回路 • DMA コントローラ • DSU 107 第 3 章 CPU および制御部 スリープ状態からの復帰要因 • 有効な割込み要求の発生 割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, スリープモー ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR に割込みレベル として割込み禁止 (1FH) を設定してください。 • 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 • 動作初期化リセット (RST) 要求の発生 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 注意事項 各要因の優先順位については ,「 3.12 デバイス状態制御」の「■ 各状態遷移要求の優先 順位」を参照願います。 通常スタンバイ動作と同期スタンバイ動作 TBCR( タイムベースカウンタ制御レジスタ ) の bit8:SYNCS ビットに "1" を設定し てある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書 込みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出す ことによってスリープ状態へ遷移します。 SYNCS ビットに "0" を設定してある場合 , 通常スタンバイ動作となり , SLEEP ビッ トへの書込みのみでスリープ状態へ遷移します。 通常スタンバイ動作時は , CPU クロック (CLKB) に対して周辺クロック (CLKP) の 分周比が大きく設定してあると , 実際に SLEEP ビットへの書込みが行われるまでに 多くの命令を実行してしまいます。このため , SLEEP ビットへの書込み命令の後 , 最低でも {5+(CPU クロックの分周比 / 周辺クロックの分周比 )} 命令以上の NOP 命 令を配置しなけれれば , それ以降の命令がスリープ状態への遷移前に実行されてし まいます。 同期スタンバイ動作時は , 実際に SLEEP ビットへの書込みが行われた後 , STCR レ ジスタの読み出しが完了するまではスリープ状態へ遷移しません。STCR レジスタ の読出し値が CPU に格納されるまでは , CPU がバスを使用しているためです。こ のため , CPU クロック (CLKB) と周辺クロック (CLKP) の分周比の関係がいかなる 設定においても , SLEEP ビットへの書込み命令と STCR レジスタの読出し命令の後 に , 2 命令のみ NOP 命令を配置するのみで , それ以降の命令がスリープ状態への遷 移前に実行されることを防ぐことができます。 ● ストップモード STCR( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むと , ストップモー ドとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生する までは , ストップ状態を維持します。 108 第 3 章 CPU および制御部 STCR( スタンバイ制御レジスタ ) の bit6:SLEEP ビットと本ビット両方に "1" を書き込 んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 ストップ状態については , 「 3.12 デバイス状態制御」の「■ ストップ状態」も参照願 います。 ストップ状態で停止する回路 • 停止するよう設定された発振回路 STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "1" が設定してある時 , ス トップ状態中のサブクロック用発振回路を停止状態にします。 STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してある時 , ス トップ状態中のメインクロック用発振回路を停止状態にします。 • 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "1" が設定してある時 , CLKR( クロックソース制御レジスタ ) の bit11:PLL2EN ビットに "1" が設定してあっ ても , ストップ状態中のサブクロック用 PLL を停止状態にします。 STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してある時 , CLKR( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してあっ ても , ストップ状態中のメインクロック用 PLL を停止状態にします。 • 下記のストップ状態で停止しない回路を除くすべての内部回路 ストップ状態で停止しない回路 • 停止するよう設定されていない発振回路 STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "0" が設定してある時 , ス トップ状態中のサブクロック用発振回路は停止しません。 STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してある時 , ス トップ状態中のメインクロック用発振回路は停止しません。 • 動作許可されていて , PLL かつ停止するよう設定されていない発振回路に接続された STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "0" が設定してある時 , CLKR( クロックソース制御レジスタ ) の bit11:PLL2EN ビットに "1" が設定してある と , ストップ状態中のサブクロック用 PLL は停止しません。 STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してある時 , CLKR( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してある と , ストップ状態中のメインクロック用 PLL は停止しません。 ストップ状態での端子のハイインピーダンス制御 STCR( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "1" が設定してあると , ストッ プ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる端 子は , 「付録 G 端子状態一覧」を参照願います。 STCR( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "0" が設定してあると , ストッ プ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は , 「付録 G 端子状態一覧」を参照願います。 109 第 3 章 CPU および制御部 ストップ状態からの復帰要因 • 特定の ( クロックを必要としない ) 有効な割込み要求の発生 外部割込み入力端子 (INTn 端子 ), メイン発振中のメイン発振安定待ちタイマ割込み , および , サブ発振中の時計割込みのみが有効です。 割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, ストップモー ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生しても , ストップモードを解除したくない場合は , 該当する ICR に割込みレベル として割込み禁止 (1FH) を設定してください。 • 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 • 動作初期化リセット (RST) 要求の発生 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 注意事項 各要因の優先順位については , 「 3.12 デバイス状態制御」の「■ 各状態遷移要求の優先 順位」を参照願います。 ストップモード時のクロックソース選択 ストップモードを設定する前に , メインクロックの 2 分周をソースクロックとする ようあらかじめ選択しておいてください。詳細は , 「3.11.1 PLL 制御」を参照願い ます。 なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。 通常スタンバイ動作と同期スタンバイ動作 TBCR( タイムベースカウンタ制御レジスタ ) の bit8:SYNCS ビットに "1" を設定し てある場合 , 同期スタンバイ動作が許可されます。この場合 , STOP ビットへの書込 みのみではストップ状態へは遷移しません。その後 , STCR レジスタを読み出すこ とによってストップ状態へ遷移します。 SYNCS ビットに "0" を設定してある場合 , 通常スタンバイ動作となり , STOP ビッ トへの書込みのみでストップ状態へ遷移します。 通常スタンバイ動作時は , CPU クロック (CLKB) に対して周辺クロック (CLKP) の 分周比が大きく設定してあると , 実際に STOP ビットへの書込みが行われるまでに 多くの命令を実行してしまいます。このため , STOP ビットへの書込み命令の後 , 最 低でも {5+(CPU クロックの分周比 / 周辺クロックの分周比 )} 命令以上の NOP 命令 を配置しなけれれば , それ以降の命令がストップ状態への遷移前に実行されてしま います。 同期スタンバイ動作時は , 実際に STOP ビットへの書込みが行われた後 , STCR レジ スタの読み出しが完了するまではストップ状態へ遷移しません。STCR レジスタの 読出し値が CPU に格納されるまでは , CPU がバスを使用しているためです。この ため , CPU クロック (CLKB) と周辺クロック (CLKP) の分周比の関係がいかなる設 定においても , STOP ビットへの書込み命令と STCR レジスタの読出し命令の後に , 2 命令のみ NOP 命令を配置するのみで , それ以降の命令がストップ状態への遷移前 に実行されることを防ぐことができます。 110 第 3 章 CPU および制御部 時計タイマ 3.13 時計タイマはサブクロックに同期してカウントアップする 15 ビットのフリーランカ ウンタで , 一定の時間間隔で繰返し割込みを発生するインターバルタイマ機能があ ります。 インターバル時間は次の 4 種類の中から選択できます。 ■ 時計タイマ 表 3.13-1 時計タイマのタイマインターバル時間 サブクロック周期 インターバル時間 1/FCL ( 約 30.5 µs) 210/FCL (31.25ms) ( 注意事項 )FCL はサブクロック発 213/FCL (0.25s) 振周波数 214/FCL (0.50s) 215/FCL (1.00s) ■ ブロック図 図 3.13-1 ブロックダイヤグラム 時計タイマ用 カウンタ F CL 0 1 2 1 2 3 2 2 2 3 2 4 4 2 5 5 2 6 6 2 7 7 2 8 8 9 10 11 12 13 14 9 2 2 1 0 211 2 1 2 2 1 3 2 1 4 2 1 5 (31.25ms) インター バル タイマ セレクタ (0.25s) (0.5s) (1.0s) リセット (INIT) カウンタ クリア回路 時計割込み 時計タイマ 制御レジスタ(WPCR) WIF WIE - - - WS1 WS0 WCL F CL : サブクロック原発振 ( )内の数字は,サブクロック原発振32.768KHzの場合の周期 111 第 3 章 CPU および制御部 ● 時計タイマ サブクロック原発振をカウントクロックとする 15 ビットのアップカウンタです。 ● カウンタクリア回路 WPCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし ます。 ● インターバルタイマセレクタ 時計タイマ用カウンタの 4 種類の分周出力からインターバルタイマ用の 1 種類を選択 する回路で , 選択した分周出力の立下がりエッジが割込み要因になります。 ● 時計タイマ制御レジスタ (WPCR) インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い ます。 ■ レジスタ説明 bit 15 WPCR 0000 048C H WIF R/W 14 WIE R/W 13 12 11 10 WS1 R/W 9 WS0 R/W 8 WCL W 初期値 INIT時 RST時 00H xxH アクセス R/W [bit15]: WIF (Watch timer Interrupt Flag) 時計割込み要求フラグです。 選択されたインターバルタイマ用分周出力の立ち下がりエッジによって "1" にセット されます。 このビットと割込み要求許可ビットが "1" のとき , 時計割込み要求を出力します。 0 時計割込みの要求なし ( 初期値 ) 1 時計割込みの要求あり • リセット (INIT) で "0" に初期化されます。 • Read および Write が可能です。ただし Write は "0" のみ可能で , "1" を Write しても ビット値は変化しません。 • また , リードモディファイライト系命令での Read 値では常に "1" となります。 [bit14]: WIE (Watch timer Interrupt Enable) CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットと時計割込み要 求フラグビットが "1" のとき , 時計割込み要求を出力します。 0 時計割込み要求出力禁止 ( 初期値 ) 1 時計割込み要求出力許可 • リセット (INIT) で "0" に初期化されます。 • Read および Write が可能です。 112 第 3 章 CPU および制御部 [bit13 ∼ bit11] (reserved bit) 予約ビットです。書込み時は "0" を書き込んでください。("1" 書込み禁止 ) 読出し値は不定です。 [bit10, bit9]: WS1, WS0 (Watch timer intervel Select 1, 0) インターバルタイマの周期を選択します。 時計タイマ用カウンタの出力ビットの下記 4 種類のうちから選択します。 WS1 WS0 インターバルタイマ周期 (FCL=32.768kHz 時 ) 0 0 210 / FCL (31.25ms) ( 初期値 ) 0 1 213 / FCL (0.25s) 1 0 214 / FCL (0.50s) 1 1 215 / FCL (1.00s) • リセット (INIT) で "00" に初期化されます。 • Read および Write が可能です。 [bit8]: WCL (Watch timer CLear) "0" 書込みで時計タイマを 0 にクリアします。 Write は "0" のみ可能で , "1" を Write しても動作に影響を与えません。 • Read 値は常に "1" となります。 113 第 3 章 CPU および制御部 ■ 時計割込み 時計タイマ用カウンタがサブクロックでカウント動作し , 設定したインターバル時間 が経過すると , 時計割込み要求フラグ (WIF) を "1" にセットします。そのとき , 割込み 要求許可ビットを許可 (WIE= 1 ) していると CPU へ割込み要求が発生します。ただし , サブクロックが発振停止している時 (「■ インターバルタイマ機能の動作」を参照 ) で はカウント動作も停止しますので , 時計割込みは発生しません。 割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる とセットされます。 注意事項 リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1, WS0 ビットの変 更時は , 必ず WIF, WCL ビットを同時にクリア (WIF=WCL=0) してください。 参考 • WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , ただちに割込 み要求が発生します。 • カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場 合は , WIF ビットのセットは行われません。 ■ インターバルタイマ機能の動作 時計タイマ用カウンタはサブクロックが発振中は常にカウントアップをしていますが, 以下の状態時はサブクロック発振が停止するため , カウント動作が停止します。 クロックソースレジスタ CLKR の bit11:PLL2EN が "0" の時。本品種では , リセット (INIT) 時 , PLL2EN を "0" に初期化しますので , 時計タイマを使用する場合は , PLL2EN に "1" を書き込んでサブクロックを発振させてください。 ストップモードでサブ発振が停止する設定 ( スタンバイ制御レジスタ STCR の bit1:OSCD2= 1 ) でストップモードに移行すると , ストップモード中 , カウント動作が停 止します。本品種では , リセット (INIT) 時 OSCD2= 1 に初期化しますので , ストップ モード中も時計タイマを動かしたい場合は, スタンバイ移行前にOSCD2= 0 を設定して ください。 カウンタをクリア (WCL= 0 ) すると , "0000H" からカウント動作を行い , "7FFFH" に達 すると , "0000H" に戻ってカウントを継続します。カウントアップ中に選択されたイン ターバルタイマ用の分周出力に立ち下がりエッジが発生すると , 時計割込み要求ビッ ト (WIF) を "1" にセットします。つまり , クリアされた時間を基準にして , 選択された インターバル時間ごとに時計割込み要求を発生することになります。 114 第 3 章 CPU および制御部 ■ クロック供給機能の動作 本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ ンタが使用されますが , クロックソースとしてメインクロックを選択中にサブクロッ クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にサブクロッ クで動作する本時計タイマを使用します。 メインクロック動作からサブクロックの発振安定待ちを行うには , 次の手順でおこ なってください。 1. 時計タイマのインターバル時間を 1s(FCL=32.768kHz 時 ) にし , カウンタを "0" にク リアします。(WS1, WS0= 11 , WCL= 0 書込み ) 発振安定待ち完了後の処理を割込み で行いたい場合は , 割込みフラグの初期化も行います。(WIF= 0 , WIE= 1 書込み ) 2. サブクロックの発振を開始します。(CLKR bit11:PLL2EN= 1 書き込み ) 3. プログラムにて , WIF フラグが "1" になるまで待ちます。 4. WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま た , 割込みを許可した場合は , WIF= 1 時に割込みが発生しますので , 割込みルーチ ンで発振安定待ち完了後の処理を行ってください。メインクロックからサブクロッ クに切り替える場合も , (4) の WIF=1 の確認を待ってから行ってください。( 発振安 定を待たずにサブクロックへ切り替えると , デバイス全体に不安定なクロックが供 給され , その後の動作は保証されません。) 115 第 3 章 CPU および制御部 ■ 時計タイマの動作 時計タイマを起動したとき , サブクロックへの移行時 , サブクロック動作でストップ モードへ移行時のカウンタ状態を以下に示します。 図 3.13-2 ストップモードへの移行時のカウンタ状態 7FFF H カウンタ値 4000 H サブクロック 発振安定待ち時間 ・タイマクリア(WCL=1) ※0 以外の時 ・インターバル時間設定 (WS1,WS0=11B) ・サブ発振開始(CLKR:PLL2EN=1) インターバル時間 割込みルーチンでクリア WIF クロックソース メインクロック サブクロック ストップ * 1 クロックモード RUN ・ インターバル時間を変更 (WS1,WS0=10B) ・ メイン→サブクロック変更 RUN ストップモード移行命令 *1) STCR:OSCD2=0( ストップ時発振停止しない )設定時 ■ 時計タイマ使用時の注意事項 • 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。 • サブクロックが発振停止中は時計タイマも停止しますので , 時計割込みも発生しま せん。時計割込みを使った処理を行う場合は , サブクロックの発振を停止しないで ください。 • WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラ グセットが優先し , "0" クリアは無効となります。 116 第 3 章 CPU および制御部 メイン発振安定待ちタイマ 3.14 メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23 ビットのフリーランカウンタで , 一定の時間間隔で繰返し割込みを発生するイン ターバルタイマ機能があります。 本タイマは , サブクロックで動作中に OSCCR( 発 振制御レジスタ ) の bit8:OSCDS1 によってメイン発振を一度止めて再度発振させた 場合に , メインクロックを発振安定待ち時間の確保に使用します。インターバル時 間は次の 3 種類の中から選択できます。 ■ 概要 メインクロック周期 インターバル時間 1/FCL ( 約 100ns) 212/FCL (410µs) ( 注意事項 ) FCL はメインク ロック発振周波数 217/FCL (13.1ms) 223/FCL (839ms) ■ ブロックダイヤグラム 図 3.14-1 ブロックダイヤグラム メイン発振安定待ち タイマ用カウンタ F CL 0 1 2 3 4 5 6 7 8 11 16 22 21 22 23 24 25 26 27 28 29 21 2 21 7 22 3 (410µs) インター バルタイマ セレクタ リセット (INIT) メイン発振安定待ち タイマ割込み メイン発振安定待ち タイマ制御レジスタ (OSCR) (13.1ms) (839ms) WIF WIE WS1 カウンタ クリア回路 WS0 WCL F CL: メインクロック原発振 ()内の数字は,メインクロック原発振10 MHzの場合の周期 117 第 3 章 CPU および制御部 ● メイン発振安定待ちタイマ メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。 ● カウンタクリア回路 OSCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし ます。 ● インターバルタイマセレクタ メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用 の1種類を選択する回路で, 選択した分周出力の立下がりエッジが割込み要因になりま す。 ● メイン発振安定待ちレジスタ (OSCR) インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い ます。 ■ レジスタ説明 bit 15 OSCR 0000 0490H WIF 14 WIE R/W R/W 13 12 11 10 WS1 R/W 9 WS0 R/W 8 WCL W 初期値 INIT時 RST時 00 H xx H アクセス R/W [bit15]: WIF (Watch timer Interrupt Flag) メイン発振安定待ち割込み要求フラグです。 選択されたインターバルタイマ用分周出力の立ち下がりエッジによって "1" にセット されます。 このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出力し ます。 0 メイン発振安定割込みの要求なし ( 初期値 ) 1 メイン発振安定割込みの要求あり • リセット (INIT) で "0" に初期化されます。 • Read および Write が可能です。ただし Write は "0" のみ可能で , "1" を Write しても ビット値は変化しません。 • また , リードモディファイライト系命令での Read 値では常に "1" となります。 [bit14]: WIE (Watch timer Interrupt Enable) CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振安 定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力します。 0 メイン発振安定割込み要求出力禁止 ( 初期値 ) 1 メイン発振安定割込み要求出力許可 • リセット (INIT) で "0" に初期化されます。 118 第 3 章 CPU および制御部 • Read および Write が可能です。 [bit13 ∼ bit11] (reserved bit) 予約ビットです。書込み時は "0" を書き込んでください。("1" 書込み禁止 ) 読出し値は不定です。 [bit10, bit9]: WS1, WS0 (Watch timer intervel Select 1, 0) インターバルタイマの周期を選択します。 メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択しま す。 WS1 WS0 インターバルタイマ周期 (FCL=10MHz 時 ) 0 0 設定禁止 0 1 212 / FCL (410µs) ( 初期値 ) 1 0 217 / FCL (13.1ms) 1 1 223 / FCL (839ms) • リセット (INIT) で "00" に初期化されます。 • Read および Write が可能です。 [bit8]: WCL (Watch timer CLear) "0" 書込みでメイン発振安定待ちタイマを 0 にクリアします。 Write は "0" のみ可能で , "1" を Write しても動作に影響を与えません。 • Read 値は常に "1" となります。 119 第 3 章 CPU および制御部 ■ メイン発振安定待ち割り込み メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に セットします。そのとき , 割込み要求許可ビットを許可 (WIE= 1 ) していると CPU へ 割込み要求が発生します。ただし , メインクロックが発振停止している時 (「■ イン ターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン発振 安定待ち割込みは発生しません。 割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる とセットされます。 注意事項 リセット解除後に割込み要求出力を許可 (WIE= 1 ) する場合および WS1, WS0 ビット変更 時は , 必ず WIF と WCL ビットを同時にクリア (WIF=WCL=0) してください。 参考 • WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , ただちに割込 み要求が発生します。 • カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場 合は , WIF ビットのセットは行われません。 ■ インターバルタイマ機能の動作 メイン発振安定待ちタイマ用カウンタはメインクロックが発振中は常にカウントアッ プをしていますが , 以下の状態時はメインクロック発振が停止するため , カウント動作 が停止します。 • ストップモードでメイン発振が停止する設定 ( スタンバイ制御レジスタ STCR の bit0:OSCD1= 1 ) でストップモードに移行すると , ストップモード中 , カウント動作 が停止します。本品種では , リセット (INIT) 時 OSCD1= 1 に初期化しますので , ス トップモード中もメイン発振安定待ちタイマを動かしたい場合は , スタンバイ移行 前に OSCD2= 0 を設定してください。 カウンタをクリア (WCL= 0 ) すると , "0000H" からカウント動作を行い , "7FFFH" に達 すると , "0000H" に戻ってカウントを継続します。カウントアップ中に選択されたイン ターバルタイマ用の分周出力に立ち下がりエッジが発生すると , メイン発振安定待ち 割込み要求ビット (WIF) を "1" にセットします。つまり , クリアされた時間を基準にし て , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求を発生 することになります。 120 第 3 章 CPU および制御部 ■ クロック供給機能の動作 本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク ロックで動作する本メイン発振安定待ちタイマを使用します。 サブクロック動作にてメインクロックの発振安定待ちを行うには , 次の手順でおこ なってください。 1. メインクロックの発振安定に必要な時間を WT1, WT0 ビットに設定し , カウンタを "0" にクリアします。(WT1, WT0= 発振安定待ち時間 , WCL= 0 書込み ) 発振安定待 ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行います。 (WIF= 0 , WIE= 0 書込み ) 2. メインクロックの発振を開始します。(OSCCR bit8:OCSDS1= 1 書込み ) 3. プログラムにて , WIF フラグが "1" になるまで待ちます。 4. WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま た , 割込みを許可した場合は , WIF= 1 時に割込みが発生しますので , 割込みルーチ ンで発振安定待ち完了後の処理を行ってください。サブクロックからメインクロッ クに切り替える場合も , (4) の WIF= 1 の確認を待ってから行ってください。( 発振安 定を待たずにメインクロックへ切り替えると , デバイス全体に不安定なクロックが 供給され , その後の動作は保証されません。) ■ メイン発振安定待ちタイマの動作 メイン発振安定待ちタイマを起動したとき , メインクロックへの移行時のカウンタ状 態を以下に示します。 図 3.14-2 メインクロックへの移行時のカウンタ状態 7FFFFF H カウンタ値 メインクロック 発振安定待ち時間 ・タイマクリア(WCL=1) ※0 以外の時 ・インターバル時間設定(WS1,WS0=11B) ・メイン発振開始(OSCCR:OSCDS1=0) 割込みルーチンでクリア WIF(割込み要求) WIE(割込みマスク) クロックモード サブクロック メインクロック ・ サブ→メインクロック変更 121 第 3 章 CPU および制御部 ■ メイン発振安定待ちタイマ使用時の注意事項 • 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。 • メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込み も発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を 停止しないでください。 • WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラ グセットが優先し , "0" クリアは無効となります。 122 第4章 外部バスインタフェース 外部バスインタフェースは , チップ内部で各種機能 マクロの接続に使用されています。 本章では , 外部バスインタフェースの各機能 , およ び動作について説明します。 4.1 概要 4.2 レジスタ説明 4.3 チップセレクト領域 4.4 エンディアンとバスアクセス 4.5 通常バスインタフェース 4.6 バーストアクセス (first wait cycle:1, page wait cycle:1) (TYP[3:0]=0000B, AWR=3208H) 4.7 アドレス / データマルチプレクスインタフェース 4.8 プリフェッチ動作 4.9 DMA アクセス 4.10 バスアービトレーション 4.11 レジスタ設定手順 4.12 使用上の注意 123 第 4 章 外部バスインタフェース 概要 4.1 外部バスインタフェースは , チップ内部で各種機能マクロの接続に使用されていま す。 CS1, CS2, CS3 の領域は USB ホスト , USB ファンクションと OSDC に接続されて います。 CS0, CS4 ∼ CS7 は使用することができません。 各領域の設定に関しては「付録 F 外部バスインタフェースの設定について」を参照 してください。 ■ 特長 ● 最大 32bit 長 (4Gbyte 空間 ) のアドレス出力 ● 各種外部メモリ (8bit/16bit/32bit 品 ) を直結できる他 , 複数のアクセスタイミングを混在制御 可能 • 非同期 SRAM, 非同期 ROM/FLASH メモリ ( 複数ライトストローブ方式またはバイ トイネーブル方式 ) • ページモード ROM/FLASH メモリ ( ページサイズ 2/4/8 が可能 ) • バーストモード ROM/FLASH メモリ (MBM29BL160D/161D/162D など ) • アドレス / データマルチプレクスバス (8bit/16bit 幅のみ ) • 同期メモリ (ASIC 内蔵メモリなど *) *: SynchronousSRAM は直結できません。 ● 独立した8個のバンク (チップセレクト領域)を設定でき, それぞれに対応したチップセレク ト出力が可能 • 各領域のサイズは 64Kbyte の倍数単位で設定可能 (1 チップセレクト領域あたり 64Kbyte ∼ 2Gbyte) • 各領域は論理アドレス空間上の任意の位置に設定可能 ( 領域サイズによりバウンダ リの制限あり ) ● 各チップセレクト領域ごとに以下の機能が独立に設定可能 • チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません ) • 各種メモリ対応などのアクセスタイミングタイプ設定 • 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 ) • データバス幅設定 (8bit/16bit/32bit) • バイトオーダリングのエンディアン設定 ( ビッグまたはリトル ) ( 注意事項 ) CS0 領域は , ビッグエンディアンのみ可能 • 書込み禁止設定 ( 読出し専用領域 ) • 内蔵キャッシュへの取込み許可・禁止設定 • プリフェッチ機能の許可・禁止設定 • 最大バースト長設定 (1, 2, 4, 8) 124 第 4 章 外部バスインタフェース ● アクセスタイミングタイプごとに異なる詳細なタイミングが設定可能 • 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能 • オートウェイトは , 最大 15 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) • 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O 領 域) • ファーストアクセスウェイトとページウェイトが設定可能 ( バースト・ページモー ド ROM/FLASH 領域 ) • 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能 ● DMA によるフライバイ転送が可能 • メモリと I/O 間の 1 アクセスでの転送が可能 • メモリウェイトサイクルをフライバイ時に I/O のウェイト周期に同期させることが 可能 • 転送元アクセスのみを延長してホールドタイムを確保することが可能 • フライバイ転送時固有のアイドル / リカバリサイクルを設定することが可能 ● BRQ と BGRNT を使用した外部バスアービトレーションが可能 ● 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能 125 第 4 章 外部バスインタフェース ■ ブロックダイヤグラム 図 4.1-1 ブロックダイヤグラム 内部アドレスバス 32 内部データバス 32 外部データバス MUX write buffer switch read buffer switch DATA BLOCK ADDRESS BLOCK +1 or +2 外部アドレスバス address buffer ASR CS0~CS7 ASZ comparator 外部端子制御部 全block制御 resisters & control 126 RD WR0,WR1, WR2,WR3 AS,BAA BRQ BGRNT RDY 第 4 章 外部バスインタフェース ■ I/O ピン 外部バスインタフェースの信号です。 ● 通常バスインタフェース • A31 ∼ A00, D31 ∼ D00 (AD15 ∼ AD00) • CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7 • AS, SYSCLK, MCLK • RD • WR, WR0(UUB), WR1(ULB), WR2(LUB), WR3(LLB) • RDY, BRQ, BGRNT ● メモリインタフェース • MCLK, SYSCLK • LBA(=AS), BAA ( バースト ROM/FLASH 用 ) ● DMA インタフェース • IOWR, IORD • DACK0, DACK1, DACK2 • DREQ0, DREQ1, DREQ2 • DEOP0/DSTP0, DEOP1/DSTP1, DEOP2/DSTP2 127 第 4 章 外部バスインタフェース ■ レジスタ一覧 アドレス bit 31 00000640H ASR0 ACR0 00000644H ASR1 ACR1 00000648H ASR2 ASR2 0000064CH ASR3 ACR3 00000650H ASR4 ACR4 00000654H ASR5 ACR5 00000658H ASR6 ACR6 0000065CH ASR7 ACR7 00000660H AWR0 AWR1 00000664H AWR2 AWR3 00000668H AWR4 AWR5 0000066CH 00000670H 24 23 16 15 AWR6 MCRA MCRB 8 7 0 AWR7 予約 予約 00000674H 予約 予約 予約 予約 00000678H IOWR0 IOWR1 IOWR2 予約 0000067CH 予約 予約 予約 予約 00000680H CSER CHER 予約 TCR 予約 予約 00000684H RCR 00000688H 予約 予約 予約 予約 0000068CH 予約 予約 予約 予約 予約 予約 予約 予約 予約 (MODR) 予約 予約 000007F8H 000007FCH 予約 : 予約レジスタです。書き込む場合は , 必ず "0" を設定してください。 MODR はユーザプログラムからはアクセスできません。 128 第 4 章 外部バスインタフェース 4.2 レジスタ説明 本節では , 外部バスインタフェースで使用するレジスタの構成 , および機能について 説明します。 ■ ASR0 ∼ ASR7 (Area Select Register) ● ASR0 ∼ ASR7 (Area Select Register) の構成 初期値 ASR0 bit 15 0000 0640H A31 ASR1 bit 15 0000 0644H A31 ASR2 bit 15 0000 0648H A31 ASR3 bit 15 0000 064CH A31 ASR4 bit 15 0000 0650H A31 ASR5 bit 15 0000 0654H A31 ASR6 bit 15 0000 0658H A31 ASR7 bit 15 0000 065CH A31 14 13 A30 A29 14 13 A30 A29 14 13 A30 A29 14 13 A30 A29 14 13 A30 A29 14 13 A30 A29 14 13 A30 A29 14 13 A30 A29 12 12 12 12 12 12 12 12 2 1 0 INIT時 RST時 アクセス A18 A17 A16 0000H 0000H R/W 2 1 0 A18 A17 A16 xxxxH xxxxH R/W 2 1 0 A18 A17 A16 xxxxH xxxxH R/W 2 1 0 A18 A17 A16 xxxxH xxxxH R/W 2 1 0 A18 A17 A16 xxxxH xxxxH R/W 2 1 0 A18 A17 A16 xxxxH xxxxH R/W 2 1 0 A18 A17 A16 xxxxH xxxxH R/W 2 1 0 A18 A17 A16 xxxxH xxxxH R/W 129 第 4 章 外部バスインタフェース ● ASR0 ∼ ASR7 (Area Select Register) のビット機能 ASR0 ∼ ASR7(Area Select Register 0 ∼ 7) は , CS0 ∼ CS7 の各チップセレクト領域の開 始アドレスを指定します。 開始アドレスは , A[31:16] の上位 16 ビットを設定できます。各チップセレクト領域は , このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR7 レジスタの ASZ[3:0] ビットで設定された範囲をとります。 各チップセレクト領域のバウンダリは , ACR0 ∼ ACR7 レジスタの ASZ[3:0] ビットの 設定に従います。例えば , ASZ[3:0] ビットにより , 1MByte の領域を設定した場合は , ASR0∼ASR7レジスタの下位4ビットは無視され, A[31:20]ビットのみ意味を持ちます。 ASR0 レジスタは , INIT および RST により , 0000H に初期化されます。ASR1 ∼ ASR7 は , INIT および RST によっては初期化されず , 不定となります。LSI の動作開始後 , CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR レ ジスタを設定してください。 130 第 4 章 外部バスインタフェース ■ ACR0 ∼ ACR7 (Area Configuration Register) ● ACR0 ∼ ACR7 (Area Configuration Register) の構成 初期値 ACR0H bit 15 14 13 12 11 10 9 8 INIT時 RST時 0000 0642H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 1111**00B 1111**00B ACR0L bit 7 6 5 0000 0643H SREN PFEN WREN ACR1H bit 15 14 13 4 0 12 3 2 1 bit 7 6 5 4 TYP3 TYP2 TYP1 TYP0 00000000B 00000000B R/W 11 10 9 8 3 2 1 bit 15 14 13 12 11 10 R/W 0 0000 0647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 ACR2H R/W 0 0000 0646H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB ACR1L アクセス 9 xxxxxxxxB xxxxxxxxB R/W 8 0000 064AH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR2L bit 7 6 5 4 3 2 1 0 0000 064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR3H bit 15 14 13 12 11 10 9 8 0000 064EH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR3L bit 7 6 5 4 3 2 1 0 0000 064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR4H bit 14 13 12 11 10 9 8 ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB 0000 0652H ACR4L 15 bit 7 6 5 4 3 2 1 0 0000 0653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 ACR5H bit 15 0000 0656H ACR5L 14 13 12 11 10 9 6 5 4 3 2 1 xxxxxxxxB xxxxxxxxB R/W 8 ASZ3 ASZ2 ASZ1 ASZ0 DBW1DBW0 BST1 BST0 bit 7 R/W xxxxxxxxB xxxxxxxxB R/W 0 0000 0657H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W 131 第 4 章 外部バスインタフェース ACR6H bit 15 13 12 11 10 9 初期値 INIT時 RST時 8 アクセス ASZ3 ASZ2 ASZ1 ASZ0 DBW1DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W 0000 065AH ACR6L 14 bit 7 6 5 4 3 2 1 0 0000 065BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR7H bit 15 0000 065EH ACR7L bit 14 13 12 11 10 9 8 ASZ3 ASZ2 ASZ1 ASZ0 DBW1DBW0 BST1 BST0 7 6 5 4 3 2 1 xxxxxxxxB xxxxxxxxB R/W 0 0000 065FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ● ACR0 ∼ ACR7 (Area Configuration Register) のビット機能 ACR0 ∼ ACR7(Area Configuration Register 0 ∼ 7) は , 各チップセレクト領域の機能を設 定します。 [bit15 ∼ bit12] ASZ[3:0] = Area Size Bit [3:0] 各チップセレクト領域のサイズを以下のとおり設定します。 表 4.2-1 領域サイズ設定 (1 / 2) ASZ3 ASZ2 ASZ1 ASZ0 各チップセレクト領域のサイズ 0 0 0 0 64 Kbyte (00010000H byte, ASR A[31:16] ビット指定が有効 ) 0 0 0 1 128 Kbyte (00020000H byte, ASR A[31:17] ビット指定が有効 ) 0 0 1 0 256 Kbyte (00040000H byte, ASR A[31:18] ビット指定が有効 ) 0 0 1 1 512 Kbyte (00080000H byte, ASR A[31:19] ビット指定が有効 ) 0 1 0 0 1 Mbyte (00100000H byte, ASR A[31:20] ビット指定が有効 ) 0 1 0 1 2 Mbyte (00200000H byte, ASR A[31:21] ビット指定が有効 ) 0 1 1 0 4 Mbyte (00400000H byte, ASR A[31:22] ビット指定が有効 ) 0 1 1 1 8 Mbyte (00800000H byte, ASR A[31:23] ビット指定が有効 ) 1 0 0 0 16 Mbyte (01000000H byte, ASR A[31:24] ビット指定が有効 ) 1 0 0 1 32 Mbyte (02000000H byte, ASR A[31:25] ビット指定が有効 ) 1 0 1 0 64 Mbyte (04000000H byte, ASR A[31:26] ビット指定が有効 ) 1 0 1 1 128 Mbyte (08000000H byte, ASR A[31:27] ビット指定が有効 ) 1 1 0 0 256 Mbyte (10000000H byte, ASR A[31:28] ビット指定が有効 ) 1 1 0 1 512 Mbyte (20000000H byte, ASR A[31:29] ビット指定が有効 ) 132 第 4 章 外部バスインタフェース 表 4.2-1 領域サイズ設定 (2 / 2) ASZ3 ASZ2 ASZ1 ASZ0 各チップセレクト領域のサイズ 1 1 1 0 1024 Mbyte (40000000H byte, ASR A[31:30] ビット指定が有効 ) 1 1 1 1 2048 Mbyte (80000000H byte, ASR A[31] ビット指定が有効 ) ASZ[3:0] では , ASR とのアドレス比較のビット数を変更させることにより , 各領域 のサイズを設定します。そのため ASR は比較されないビットが存在します。 ACR0 の ASZ[3:0] ビットは , RST により 1111B (0FH) に初期化されますが , この設定 にかかわらず RST 直後の CS0 領域は特別に 00000000H から FFFFFFFFH ( 全領域 ) に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され , 上記 の表に従ったサイズに設定されます。 [bit11, bit10] DBW[1:0] = Data Bus Width [1:0] 各チップセレクト領域のデータバス幅を以下のとおり設定します。 表 4.2-2 チップセレクト領域のデータバス幅の設定 DBW1 DBW0 データバス幅 0 0 8 bit ( バイトアクセス ) 0 1 16 bit ( ハーフワードアクセス ) 1 0 32 bit ( ワードアクセス ) 1 1 Reserved 設定禁止 ACR0 の DBW[1:0] ビットは , リセットシーケンス中にモードベクタの WTH ビット の値と同じ値が自動的に書き込まれます。 [bit9, bit8] BST[1:0] = Burst Size [1:0] 各チップセレクト領域の最大バースト長を以下のとおり設定します。 表 4.2-3 チップセレクト領域の最大バースト長の設定 BST1 BST0 最大バースト長 0 0 1 ( シングルアクセス ) 0 1 2 バースト ( アドレス境界 1 ビット ) 1 0 4 バースト ( アドレス境界 2 ビット ) 1 1 8 バースト ( アドレス境界 3 ビット ) シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスま たはバス幅を超えるサイズのデータの読み出しを行った場合のみ , バースト長から 決まるアドレス境界内で連続したバーストアクセスを行います。 バス幅 32 ビット領域の最大バースト長は 4 バースト以下しか設定してはいけませ 133 第 4 章 外部バスインタフェース ん。2 バースト以下を推奨します。 バス幅 16 ビット領域の最大バースト長は 4 バースト以下しか設定してはいけませ ん。2 バースト以下を推奨します。 シングルアクセス以外のバースト長設定を行った領域では RDY 入力を無視します。 [bit7] SREN = ShaRed ENable 各チップセレクト領域の BRQ/BGRNT による共有の許可・禁止を以下のとおり設定 します。 表 4.2-4 チップセレクト領域の BRQ/BGRNT による共有の許可・禁止の設定 SREN 共有の許可・禁止 0 BRQ/BGRNT による共有を禁止 (CSX はハイインピーダンスになりません ) 1 BRQ/BGRNT による共有を許可 (CSX はハイインピーダンスになります ) 共有が許可された領域は , バス開放中 (BGRNT=Low 出力中 ) はチップセレクト出力 (CSnX) がハイインピーダンスになります。 共有が禁止された領域は , バス開放中 (BGRNT=Low 出力中 ) もチップセレクト出力 (CSnX) がハイインピーダンスになりません。 CSER により許可された全ての領域の共有が許可されている場合のみ , アクセスス トローブ出力 (AS, BAA, RD, WR0, WR1, WR2, WR3, WR など ) がハイインピーダン スになります。 [bit6] PFEN = PreFetch ENable 各チップセレクト領域のプリフェッチの許可・禁止を以下のとおり設定します。 表 4.2-5 チップセレクト領域のプリフェッチの許可・禁止の設定 PFEN プリフェッチ許可・禁止 0 プリフェッチ禁止 1 プリフェッチ許可 プリフェッチが許可された領域に対しての読出しを行うと , それに続くアドレスに 対し先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレス に対し内部バスからのアクセスがあると , 外部アクセスを行わずにプリフェッチ バッファに先読みされたデータを返します。 詳細は「4.8 プリフェッチ動作」を参照してください。 134 第 4 章 外部バスインタフェース [bit5] WREN = WRite ENable 各チップセレクト領域の書込みの許可・禁止を設定します。 表 4.2-6 チップセレクト領域の書込みの許可・禁止の設定 WREN 書込み許可・禁止 0 書込み禁止 1 書込み許可 書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その アクセスは無視され , 外部アクセスを一切行いません。 データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。 [bit4] LEND = Little ENDian select 各チップセレクト領域のバイトオーダリングを設定します。 表 4.2-7 チップセレクト領域のバイトオーダリングの設定 LEND バイトオーダリング 0 Big Endian 1 Little Endian ACR0 の LEND ビットには , 必ず "0" を設定してください。CS0 領域はビッグエン ディアンのみをサポートします。 [bit3 ∼ bit0] TYP[3:0] = TYPe select 各チップセレクト領域のアクセスタイプを以下のとおり設定します。 表 4.2-8 チップセレクト領域のアクセスタイプの設定 (1 / 2) TYP3 TYP2 TYP1 TYP0 アクセスタイプ 0 0 x x 通常アクセス ( 非同期 SRAM, I/O, single/page/burst-ROM/FLASH) 1 x x アドレスデータマルチプレクスアクセス (8/16bit バス幅限定 ) x x 0 RDY 端子による WAIT 挿入無効 x 1 RDY 端子による WAIT 挿入有効 ( バースト時は無効 ) 0 x WR0∼WR3端子をライトストローブとして使用(WRは"H"固定) 1 x WR 端子をライトストローブとして使用 *1 135 第 4 章 外部バスインタフェース 表 4.2-8 チップセレクト領域のアクセスタイプの設定 (2 / 2) TYP3 TYP2 TYP1 TYP0 アクセスタイプ 1 0 0 0 設定禁止 1 設定禁止 0 1 0 設定禁止 0 1 1 設定禁止 1 0 0 設定禁止 1 0 1 設定禁止 1 1 0 設定禁止 1 1 1 マスク領域設定 ( アクセスタイプは重複した領域のものになりま す ) *2 *1: この設定をした場合 , WR0 ∼ WR3 は , 各バイトのイネーブルとして使用できます。 *2: CS 領域マスク設定機能 各ビットは , 組み合わせて設定します。 各アクセスタイプごとの動作詳細は , 動作解説の項を参照してください。 ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した 領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP[3:0]=1111 を設定し , マ スク設定領域として機能させることができます。 マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は 禁止します。 マスク設定領域へのアクセスは , 以下のような動作を行います。 • マスク設定領域に対応する CSX はアサートされません。 • ベース設定領域に対応する CSX がアサートされます。 • ACR の以下の設定はマスク設定領域側のものが有効になります。 - bit11, bit10 DBW[1:0]: バス幅設定 - bit9, bit8 BST[1:0]: バースト長設定 - bit7 SREN: 共有許可設定 - bit6 PFEN: プリフェッチ許可設定 - bit5 WREN: ライト許可設定 ( この設定のみ , ベース設定領域と異なる 設定は禁止します。) • bit4 LEND: リトルエンディアン設定 ACR の以下の設定はベース設定領域側のものが有効になります。 - bit[3:0] TYP[3:0]: アクセスタイプ設定 • AWR の設定はマスク設定領域側のものが有効になります。 • CHER の設定はマスク設定領域側のものが有効になります。 マスク設定領域は , 他の CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定でき ます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけませ 136 第 4 章 外部バスインタフェース ん。ASR および ACR:ASZ[3:0] ビットの設定には充分注意してください。 制限事項 • ライト許可設定をマスクでは実現できません。 • ライト許可設定は , ベースとなる CS 領域と , マスク設定領域とで , 同じ設定と してください。 • マスク設定領域でライト禁止を設定すると , その領域はマスクされずベース CS 領域として動作します。 • ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定する と , ベース設定のない領域となり , 誤動作します。 137 第 4 章 外部バスインタフェース ■ AWR0 ∼ AWR7 (Area Wait Register) ● AWR0 ∼ AWR7 (Area Wait Register) の構成 初期値 AWR0H bit 31 30 29 28 27 26 25 24 0000 0660H W15 W14 W13 W12 W11 W10 W09 W08 AWR0L bit 23 22 21 19 18 17 16 W06 W05 W04 W03 W02 W01 W00 14 13 12 11 W15 W14 W13 W12 W11 W10 W09 W08 7 6 5 4 3 2 1 0 0000 0663H W07 W06 W05 W04 W03 W02 W01 W00 AWR2H bit 31 30 29 28 27 26 25 24 W14 W13 W12 W11 W10 W09 W08 23 22 21 20 19 18 17 16 W07 W06 W05 W04 W03 W02 W01 W00 AWR3H bit 15 14 13 12 11 10 0000 0666H W15 W14 W13 W12 W11 W10 W09 W08 3 2 1 0 W03 W02 W01 W00 0000 0661H W07 AWR1H bit 15 0000 0662H AWR1L bit 0000 0664H W15 AWR2L bit 0000 0665H AWR3L bit 7 0000 0667H W07 6 W06 5 W05 20 4 W04 10 9 9 31 30 29 28 27 26 25 24 W15 W14 W13 W12 W11 W10 W09 W08 23 22 21 20 19 18 17 16 W07 W06 W05 W04 W03 W02 W01 W00 14 13 12 11 10 W13 W12 W11 W10 W09 W08 3 2 1 0 W03 W02 W01 W00 0000 0669H AWR5H bit 15 0000 066AH AWR5L bit 0000 066BH W15 7 W07 W14 6 W06 5 W05 4 W04 9 31 30 29 28 27 26 25 24 W14 W13 W12 W11 W10 W09 W08 23 AWR6L bit 0000 066DH W07 22 21 20 19 18 W06 W05 W04 W03 W02 bit 138 17 W01 11111111B R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W 8 W15 AWR6H 0000 066CH 11111111B 8 AWR4H bit bit RST時 アクセス 01111111B R/W 8 0000 0668H AWR4L INIT時 01111111B xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W 16 W00 第 4 章 外部バスインタフェース 初期値 AWR7H 15 bit 0000 066EH W15 13 12 11 W14 W13 W12 W11 7 bit AWR7L 0000 066FH 14 6 W07 5 W06 4 W05 W04 10 W10 9 W09 8 W08 3 2 1 0 W03 W02 W01 W00 INIT時 RST時 アクセス xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W AWR0 ∼ AWR7 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。 ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP[3:0] ビット ) の設定により , 各ビット の働きが変わります。 ● 通常アクセスおよびアドレス / データマルチプレクスアクセス ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP[3:0] ビット ) に以下の設定を行った チップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレクスアクセス 動作を行う領域となります。 表 4.2-9 通常アクセスまたはアドレス / データマルチプレクスアクセス動作を行う領域 TYP3 TYP2 TYP1 TYP0 アクセスタイプ 0 0 x x 通常アクセス ( 非同期 SRAM, I/O, single/page/burst-ROM/FLASH) 0 1 x x アドレスデータマルチプレクスアクセス (8/16bit バス幅限定 ) 通常アクセスまたはアドレス / データマルチプレクスアクセス領域に対しての , AWR0 ∼ AWR7 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各領域を CSER レジスタによって有効にする前に , 設定を行ってください。 ● AWR0 ∼ AWR7 (Area Wait Register) のビット機能 [bit15 ∼ bit12] W15 ∼ W12 = ファーストアクセスウェイトサイクル (First Access Wait Cycle) 各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設 定します。バーストアクセスサイクル以外は , このウェイト設定のみ使用されま す。 CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。 表 4.2-10 自動ウェイトサイクル数の設定(ファーストアクセス時) W15 W14 W13 W12 ファーストアクセスウェイトサイクル 0 0 0 0 自動ウェイトサイクル 0 0 0 0 1 自動ウェイトサイクル 1 … 1 1 … 1 1 自動ウェイトサイクル 15 139 第 4 章 外部バスインタフェース [bit11 ∼ bit8] W11 ∼ W08 = ページ内アクセスウェイトサイクル (Inpage Access Wait Cycle) バーストアクセス時 , ページ内アクセスサイクルに挿入するオートウェイトサイク ル数を設定します。バーストアクセスサイクル以外では , 意味を持ちません。 表 4.2-11 自動ウェイトサイクル数の設定 ( バーストアクセス時 ) W11 W10 W09 W08 ページ内アクセスウェイトサイクル 0 0 0 0 自動ウェイトサイクル 0 0 0 0 1 自動ウェイトサイクル 1 … 1 1 … 1 1 自動ウェイトサイクル 15 ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同 じ値を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイ ムは同じにはならないことに注意してください ( ページ内アクセスサイクルでは , アドレス出力遅延が含まれるため )。 [bit7, bit6] W07, W06 = リード→ライトアイドルサイクル (Read → Write Idle Cycle) リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場 合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま す。アイドルサイクル中は全てのチップセレクト信号をネゲートし , データ端子は ハイインピーダンス状態を維持します。 リード後にライトが続く場合 , もしくは , リードの後に別のチップセレクト領域へ のアクセスが発生した場合に , 指定したアイドルサイクルを挿入します。 表 4.2-12 アイドルサイクルの設定内容 140 W07 W06 リード→ライトアイドルサイクル 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル 第 4 章 外部バスインタフェース [bit5, bit4] W05, W04 = ライトリカバリサイクル (Write Recovery Cycle) ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制 限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサ イクル中は全てのチップセレクト信号をネゲートし , データ端子はハイインピーダ ンスを維持します。 ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルが挿入されます。 表 4.2-13 書込みリカバリサイクル数の設定内容 W05 W04 ライトリカバリサイクル 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル [bit3] W03 = WR0 ∼ WR3, WR 出力タイミング選択 WR0∼WR3, WR 出力タイミング設定は, ライトストローブ出力を, 非同期ストロー ブとして使用するか , 同期ライトイネーブルとして使用するかを選択します。非同 期ストローブとすることにより通常メモリ /IO に対応し , 同期イネーブルとするこ とによりクロック同期のメモリ /IO(ASIC 内蔵メモリなど ) に対応します。 表 4.2-14 WR 出力タイミング選択の設定内容 W03 WR0 ∼ WR3, WR 出力タイミング選択 0 MCLK 同期ライトイネーブル出力 (AS="L" から有効 ) 1 非同期ライトストローブ出力 ( 通常動作 ) 同期ライトイネーブルとした場合 (AWR:W03 ビットが "0"), 以下の様な動作となり ます。 • 同期ライトイネーブル出力のタイミングは , 外部メモリアクセスクロックの MCLK 出力の立ち上がりエッジで取り込まれることを前提としたタイミングに なります。非同期ストローブ出力とはタイミングが異なります。 • WR0 ∼ WR3, WR 端子出力は , AS 端子出力がアサートされているタイミングか ら , 同期ライトイネーブル出力をアサートします。外部バスへのライトが行わ れる場合 , 同期ライトイネーブル出力は "L" を出力します。外部バスからのリー ドが行われる場合 , 同期ライトイネーブル出力は "H" を出力します。 • 同期ライトイネーブル出力をアサートした次のクロックサイクルにて,外部デー タ出力端子よりライトデータを出力します。内部バスの都合によりライトデー タを出力できなかった場合 , ライトデータが出力できるまで同期ライトイネー ブル出力のアサートを延長することがあります。 141 第 4 章 外部バスインタフェース • リードストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容に 関わらず , 非同期リードストローブとして機能します。データの入出力方向制 御にそのまま用いてください。 同期ライトイネーブル出力を使用する場合 , 以下の制限があります。 • 以下の追加ウェイト設定はしないでください。 - CSX → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いて ください ) - ファーストアクセスウェイトサイクル設定 (AWR:W15 ∼ W12 ビットは常 に "0000B" を書いてください ) • 以下のアクセスタイプ設定 (ACR レジスタ中の TYP[3:0] ビット (bit[3:0])) は設定 しないでください。 - アドレス / データマルチプレクスバス設定 (ACR:TYP2 ビットは常に "0" を 書いてください ) - WR0 ∼ WR3 をライトストローブとして使用する設定 (ACR:TYP1 ビット は常に "0" を書いてください ) • RDY 入力有効設定 (ACR:TYP0 ビットは常に "0" を書いてください ) 同期ライトイネーブル出力の場合 , バースト長は常に 1(ACR:BST[1:0] ビットに "00B") を設定してください。 [bit2] W02 = アドレス→ CSX 遅延 (Address → CSX Delay) アドレス→ CSX 遅延設定は , CSX の立下りに対してアドレスなどが一定のセット アップを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際 にも CSX のエッジを必要とする場合などに設定します。 アドレスおよび AS 出力から , CS0 ∼ CS7 出力のディレイを設定します。 表 4.2-15 CS0 ∼ CS7 出力のディレイの設定内容 W02 アドレス→ CSX 遅延 0 遅延なし 1 遅延あり "0"を設定し,遅延なしを選択した場合は, ASのアサートと同じタイミングでCSX0∼ CSX7 がアサート開始されます。このとき , 同じチップセレクト領域に連続したア クセスを実行した場合 , 両アクセスの間も CS0 ∼ CS7 はアサートを継続したまま変 化しないことがあります。 "1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック MCLK 出力の立ち 上がりから CS0 ∼ CS7 がアサート開始されます。このとき , 同じチップセレクト領 域に連続したアクセスを実行した場合でも , 両アクセスの間に CS0 ∼ CS7 ネゲート タイミングが発生します。 CSX 遅延ありを選択した場合は , 遅延させた CSX のアサートから , リード / ライト ストローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します。 (W01 の CSX → RD/WR セットアップ設定と同等の動作となります。) 142 第 4 章 外部バスインタフェース アドレス→ CSX 遅延設定は , 同一領域に対し出力される DACKX 信号 ( 基本モー ド ) にも同様に作用します。基本モードでの DACKX 出力は , その領域に対する CSX と同じ波形となります。 [bit1] W01 = CSX → RD/WR セットアップ延長サイクル (CSX → RD/WR setup) CSX → RD/WR セットアップ延長サイクルは , CSX アサート後 , リード / ライトス トローブをアサートするまでの期間を延長する場合に設定します。CSX アサート 後 , リード / ライトストローブをアサートする前に最低 1 サイクルのセットアップ 延長サイクルを挿入します。 表 4.2-16 CSX → RD/WR セットアップ延長サイクルの設定内容 W01 CSX → RD/WR セットアップ延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , 最速で , CSX アサート直後の外部メモ リクロック MCLK 出力の立ち上がりから RD/WR0 ∼ WR3/WR が出力されます。 WR0 ∼ WR3/WR は , 内部バスの状態により , 1 サイクル以上遅れることもあります。 "1" を設定し , 1 サイクルを選択した場合は , RD/WR0 ∼ WR3/WR とも , 必ず 1 サイ クル以上遅れて出力されます。 同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場 合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延 を挿入することにより , 毎アクセス時に CSX がいったんネゲートされるため , この セットアップ延長サイクルが有効となります。 W02 の CSX 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ トアップサイクルが有効となります。 [bit0] W00 = RD/WR → CSX ホールド延長サイクル (RD/WR → CSX Hold Cycle) RD/WR → CSX ホールド延長サイクルは , リード / ライトストローブネゲート後 , CSX ネゲートまでの期間を延長する場合に設定します。リード / ライトストローブ ネゲート後 , CSX をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入 します。 表 4.2-17 RD/WR → CSX ホールド延長サイクルの設定内容 W00 RD/WR → CSX ホールド延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , RD/WR0 ∼ WR3/WR がネゲートされた 後の外部メモリクロック MCLK 出力の立ち上がりエッジよりホールド遅延経過後 に , CS0 ∼ CS7 がネゲートされます。 "1" を設定し , 1 サイクルを選択した場合は , CS0 ∼ CS7 は 1 サイクル遅れてネゲー 143 第 4 章 外部バスインタフェース トされます。 同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場 合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ イクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延を挿入す ることにより , 毎アクセス時に CSX がいったんネゲートされるため , このホールド 延長サイクルが有効となります。 144 第 4 章 外部バスインタフェース ■ IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC) ● IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC) の構成 IOWR0 bit 0000 0688H IOWR1 bit 30 29 28 27 RYE0 HLD0 WR01 WR00 IW03 bit 23 0000 0689H IOWR2 31 22 21 20 14 13 12 25 24 IW02 IW01 IW00 18 17 16 IW12 IW11 IW10 10 9 8 IW22 IW21 IW20 19 RYE1 HLD1 WR11 WR10 IW13 15 26 11 0000 068AH RYE2 HLD2 WR21 WR20 IW23 初期値 INIT時 RST時 アクセス xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W xxxxxxxxB xxxxxxxxB R/W ● IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC) のビット機能 DMA フライバイアクセス時の , 各種ウェイトを設定します。 [bit31, bit23, bit15] RYE0, RYE1, RYE2 = RDY 機能設定 (ReadY Enable0, 1, 2) DMA フライバイアクセス時のチャネル 0 ∼ 2 の各チャネルごとの RDY によるウェ イト制御の設定を行います。 表 4.2-18 RDY によるウェイト制御の設定内容 RYEn RDY 機能設定 0 I/O アクセスに対する RDY 入力は無効となります。 1 I/O アクセスに対する RDY 入力が有効になります。 "1" を設定することにより , 該当するチャネルのフライバイ転送時 , RDY 端子によ るウェイト挿入が可能となります。IOWR, IORD は RDY 端子がイネーブルになる まで , 延長されます。また , メモリ側の RD/WR0 ∼ WR3/WR もそれに同期して延長 されます。 フライバイ転送相手のチップセレクト領域が ACR レジスタにより RDY 有効に設定 されていれば , IOWR 側の RYEn ビットとは関係なく , RDY 端子によるウェイト挿 入が可能となります。また , フライバイ転送相手のチップセレクト領域で ACR レジ スタにより RDY 無効にされている場合でも , IOWR 側の RYEn ビットにより RDY 有効に設定されていれば , フライバイアクセス時のみ , RDY 端子によるウェイト挿 入が可能となります。 [bit30, bit22, bit14] HLD0, HLD1, HLD2 = ホールドウェイト設定 (HoLD wait control) DMAフライバイアクセス時の, 転送元アクセス側のリードストローブ信号のホール ドサイクルを制御します。 表 4.2-19 ホールドウェイトの設定内容 HLDn ホールドウェイト設定 0 ホールド延長サイクルを挿入しません。 1 ホールド延長サイクルを挿入し , リードサイクルを 1 サイクル延長します。 145 第 4 章 外部バスインタフェース "0" 設定時は , 転送元アクセス側のリードストローブ信号 ( メモリ→ I/O の場合は RD, I/O →メモリの場合は IORD) とライトストローブ信号 ( メモリ→ I/O の場合は IOWR, I/O →メモリの場合は , WR0 ∼ WR3 および WR) は同じタイミングで , 出力 されます。 "1"設定時は, 転送元アクセス側データの転送先に対するホールドタイムを確保する ため , ライトストローブ信号に対し , リードストローブ信号を , 1 サイクル長く出力 します。 [bit29, 28, 21, 20, 13, 12] WR0, 1, 2 = I/O アイドルサイクル設定 (I/O Idle Wait) DMA フライバイアクセス時に , 連続した I/O アクセスに対するアイドルサイクルを 設定します。 表 4.2-20 I/O アイドルサイクルの設定内容 WRn1 WRn0 I/O アイドルサイクル設定 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル アイドルサイクルを 1 サイクル以上設定した場合 , DMA フライバイアクセス時に , I/O アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイド ルサイクル中は , 全ての CSX およびストローブ出力はネゲートされ , データ端子は ハイインピーダンスとなります。 [bit27-24, 19-16, 11-8] IW03-00, IW13-10, IW23-20 = I/Oウェイトサイクル(I/O access Wait) DMAフライバイアクセス時の, I/Oアクセスの自動ウェイトサイクルを指定します。 IWn3 IWn2 IWn1 IWn0 I/O ウェイトサイクル 0 0 0 0 0 サイクル 0 0 0 1 1 サイクル … 1 1 … 1 1 15 サイクル ウェイトサイクルの挿入数は , 転送元と転送先とでのデータの同期のため , IWnn ビットによる I/O 側の設定とフライバイ転送相手 ( メモリなど ) のウェイト設定の うち , 大きいほうを使用します。そのため , IWnn ビットに設定したサイクル数より 多いウェイトが挿入される場合があります。 146 第 4 章 外部バスインタフェース ■ CSER (Chip Select Enable register) ● CSER (Chip Select Enable register) の構成 初期値 INIT時 RST時 アクセス 0000 0680H CSE7 CSE6 CSE5 CSE4 CSE3 CSE2 CSE1 CSE0 00000001B 00000001B R/W bit 31 30 29 28 27 26 25 24 ● CSER (Chip Select Enable register) のビット機能 各チップセレクト領域の許可 / 禁止を設定します。 [bit31 ∼ bit24] CSE[7:0] = チップセレクト領域許可 (Chip select enable 0 ∼ 7) CS0 ∼ CS7 の各チップセレクト領域許可ビットです。 初期値は , 00000001B で CS0 領域のみ許可されています。 "1" を書き込むことにより ASR0 ∼ ASR7, ACR0 ∼ ACR7, AWR0 ∼ AWR7 の設定に 従い , 動作します。 CSE[7:0] 領域コントロール 0 禁止 1 許可 表 4.2-21 チップセレクト領域許可ビットの対応する CSnX CSE のビット 対応する CSX bit24:CSE0 CS0 bit25:CSE1 CS1 bit26:CSE2 CS2 bit27:CSE3 CS3 bit28:CSE4 CS4 bit29:CSE5 CS5 bit30:CSE6 CS6 bit31:CSE7 CS7 147 第 4 章 外部バスインタフェース ■ CHER (CacHe Enable Register) ● CHER (CacHe Enable Register) の構成 初期値 INIT時 RST時 アクセス CHE7 CHE6 CHE5 CHE4 CHE3 CHE2 CHE1 CHE0 11111111B 111111111B R/W bit 23 0000 0681H 22 21 20 19 18 17 16 ● CHER (CacHe Enable Register) の機能 各チップセレクト領域から読み込んだデータの内蔵キャッシュへの取込みを制御しま す。 [bit24 ∼ bit17] CHE[7:0]= キャッシュ領域設定 (Cache Enable 7 ∼ 0) 各チップセレクト領域ごとに , 内蔵キャッシュへの取込みの許可・禁止を指定しま す。 表 4.2-22 内蔵キャッシュへの取込みの許可・禁止の設定内容 148 CHEn キャッシュ領域設定 0 非キャッシュ領域 ( 該当する領域よりリードしたデータをキャッシュに保 存しません ) 1 キャッシュ領域 ( 該当する領域よりリードしたデータをキャッシュに保存 します ) 第 4 章 外部バスインタフェース ■ TCR (Terminal and timing Control Register) ● TCR (Terminal and timing Control Register) の構成 初期値 7 bit 6 5 4 0000 0683H BREN PSUS PCLR Reserved 3 2 1 0 INIT RST OHT1 OHT0 RDW1 RDW0 00000000B 0000xxxxB Access W ● TCR (Terminal and timing Control Register) のビット機能 共通端子機能設定やタイミング制御など , 外部バスインタフェースコントローラ全般 に関わる機能を制御します。 [bit7] BREN = BRQ 入力許可設定 (BRQ enable) BRQ 端子入力を許可し , 外部バス共有を可能にします。 表 4.2-23 BRQ 入力許可の設定内容 BREN BRQ 入力許可設定 0 BRQ/BGRNT によるバス共有をしません。BRQ 入力は無効となります。 1 BRQ/BGRNT によるバス共有を行います。BRQ 入力は有効となります。 初期状態 ("0") のときは , BRQ の入力を無視します。 "1" を設定すると , BRQ 入力が "H" になった後 , バス開放が可能になった時点で , バ スを開放 ( ハイインピーダンス制御 ) し BGRNT をアクティブ ("L" 出力 ) にします。 [bit6] PSUS = プリフェッチ抑止 (Prefetch SUSpend) 全ての領域に対するプリフェッチの一時停止を制御します。 表 4.2-24 プリフェッチの一時停止の設定内容 PSUS プリフェッチ制御 0 プリフェッチ許可 1 プリフェッチ抑止 "1" を設定すると , "0" を書き込むまでの間 , 新規のプリフェッチ動作を行いません。 この間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファ の内容は消去されませんので , プリフェッチを再開する前に bit5:PCLR ビット機能 によりプリフェッチバッファのクリアを行ってください。 149 第 4 章 外部バスインタフェース [bit5] PCLR = プリフェッチバッファ全クリア (Prefetch buffer CleaR) プリフェッチバッファの全ての内容をクリアします。 表 4.2-25 プリフェッチバッファ制御の設定内容 PCLR プリフェッチバッファ制御 0 通常状態 1 プリフェッチバッファクリア "1" を書き込むと 1 度だけプリフェッチバッファを全てクリアします。バッファク リアが完了すると自動的にビット値は "0" に戻ります。PSUS ビットでプリフェッ チを中断 ("1" に設定 ) しておいてからバッファのクリアを行ってください (PSUS と PCLR の両ビットに同時に "10B" を書き込んで結構です )。 [bit4] 予約 = 予約ビット 予約ビットです。必ず "0" を設定してください。 [bit3, bit2] OHT[1:0] = 出力ホールド遅延選択 (Output Hold Throttle) 外部メモリクロック MCLK 出力に対する外部制御信号出力のホールドのための遅 延値の調整を行います。 表 4.2-26 出力ホールド遅延選択の設定内容 OHT1 OHT0 出力ホールド遅延選択 0 0 SYSCLK/MCLK の立ち下がりから出力します。 0 1 SYSCLK/MCLK の立ち上がりから (3ns) 遅延させて出力します。 1 0 SYSCLK/MCLK の立ち上がりから (4ns) 遅延させて出力します。 1 1 SYSCLK/MCLK の立ち上がりから (5ns) 遅延させて出力します。 遅延値は typical 条件下における目標値です。 非 同 期 の リ ー ド お よ び ラ イ ト ス ト ロ ー ブ (RD/WR0/WR1/WR2/WR3/WR/IOWR/ IORD), および遅延させた CSX の立ち下がりタイミングは , この遅延値調整の対象 にはなりません。 OHT[1:0] は動作中に書き換えても誤動作しませんが , タイミング切換え時に一時外 部バス動作が停止します。 150 第 4 章 外部バスインタフェース [bit1, bit0] RDW[1:0] = ウェイトサイクル短縮 (ReDuce Wait cycle) 全てのチップセレクト領域およびフライバイ用 I/O チャネルに対し , 自動アクセス サイクルウェイトの設定値を, AWRレジスタの設定値はそのままで自動ウェイトサ イクルのみ一律に削減します。アイドルサイクルやリカバリサイクル , セットアッ プやホールドサイクルの設定には影響しません。 表 4.2-27 ウェイトサイクル短縮の設定内容 RDW1 RDW0 ウェイトサイクル短縮 0 0 通常ウェイト (AWR0 ∼ AWR7 の設定値 ) 0 1 AWR0 ∼ AWR7 の設定値の 1/2 (1bit 右シフト ) 1 0 AWR0 ∼ AWR7 の設定値の 1/4 (2bit 右シフト ) 1 1 AWR0 ∼ AWR7 の設定値の 1/8 (3bit 右シフト ) この機能は , ベースクロックを低速にしている間や , 外部バスクロックの分周比設 定を大きくしている間など , 低速クロックで動作している間 , 過剰なアクセスサイ クルウェイトがかかることを防ぐためのものです。 通常このような場合にウェイトサイクルを設定し直すには , 全ての AWR をそれぞ れ書き換えなければなりませんが , RDW[1:0] ビットの機能を使うと , 全ての AWR の設定は高速クロックの時の設定のままで , アクセスサイクルウェイトのみ 1 度に 削減できます。 クロックを高速に戻す前に, 必ずRDW[1:0]ビットは"00B"に設定し直してください。 注意事項 TCR レジスタは書込み専用レジスタ ( 読出しはできません ) TCR レジスタは , ライトのみ可能です。 TCR レジスタ値をリードできません。 151 第 4 章 外部バスインタフェース 4.3チップセレクト領域 外部バスインタフェースは全 8 領域分のチップセレクト領域が設定できます。 本節では , チップセレクト領域を説明します。 ■ チップセレクト領域 各領域のアドレス空間は ASR0 ∼ ASR7(Area Select Register) と ACR0 ∼ ACR7(Area Configuration Register) で 4Gbyte の空間に , 最小 64Kbyte 単位で任意に配置できます。 これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス サイクル中に対応するチップセレクト信号 CS0 ∼ CS7 がアクティブ ("L" 出力 ) になり ます。 ● ASR および ASZ[3:0] の設定例 1. ASR1=0003H ACR1- >ASZ[3:0]=0000B 0003FFFFH に割り当てられます。 チップセレクト領域 1 は , 00030000H から 2. ASR2=0FFCH ACR2- >ASZ[3:0]=0010B チップセレクト領域 2 は , 0FFC0000H から 10000000H に割り当てられます。 3. ASR3=0011H ACR3- >ASZ[3:0]=0100B 00200000H に割り当てられます。 チップセレクト領域 3 は , 00100000H から このとき , ACR- >ASZ[3:0] が 1Mbyte の設定になっていますので , バウンダリは 1Mbyte 単位となり , ASR3[19:16] は無視されます。 リセット後は , ACR0 に書込みが行われるまでの間 , 00000000H ∼ FFFFFFFFH がチップ セレクト領域 0 に割り当てられます。 注意事項 チップセレクト領域は , お互いにオーバラップしない様に設定してください。 152 第 4 章 外部バスインタフェース 図 4.3-1 チップセレクト領域の設定例 ( ( ) ) 00000000H 00000000H 00030000H 1 64 KB 3 1 MB 2 256 KB 00040000H 0 00100000H 00200000H 0FFC0000H 0FFFFFFFH FFFFFFFFH FFFFFFFFH 153 第 4 章 外部バスインタフェース 4.4 エンディアンとバスアクセス WR[3:0] の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に 1 対 1 に対応します。 下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト 位置とそれに対応する制御信号をまとめます。 ■ データバス幅と制御信号との関係 図 4.4-1 通常バスインタフェース 図 4.4-2 時分割入出力インタフェース 154 第 4 章 外部バスインタフェース 4.4.1 Big endian のバスアクセス FR ファミリは CS0 領域を除いて , 各チップセレクトごとに Big endian/Little endian を切り替えて使用可能です。 ACR レジスタの LEND ビットを "0" に設定し た場合は , その領域は Big endian として扱います。 通常 FR ファミリは , Big endian で外部バスアクセスを行います。 ■ データフォーマット 内部レジスタと外部データバスとの関係は以下のようになります。 図 4.4-3 ワードアクセス (LD, ST 命令実行時 ) 図 4.4-4 ハーフワードアクセス (LDUH, STH 命令実行時 ) 図 4.4-5 バイトアクセス (LDUB, STB 命令実行時 ) 155 第 4 章 外部バスインタフェース ■ データバス幅 図 4.4-6 32 ビットバス幅 図 4.4-7 16 ビットバス幅 図 4.4-8 8 ビットバス幅 156 第 4 章 外部バスインタフェース ■ 外部バスアクセス 外部バスアクセス (32 ビット /16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バ イトアクセス別に , 下記をまとめます。 • アクセスバイト位置 • プログラムアドレスと出力アドレス • バスアクセス回数 表 4.4-1 PA1/PA0 : プログラムで指定したアドレス下位 2bit 出力 A1/A0 : 出力するアドレスの下位 2bit : 出力するアドレスの先頭バイト位置 : アクセスするデータバイト位置 : バスアクセス回数 + (1) ∼ (4) FR ファミリは , ミスアラインエラーを検出しません。 従ってワードアクセスの場合には, プログラムで指定したアドレス下位2ビットが"00", "01", "10", "11" であっても , 出力するアドレスの下位 2bit は全て "00" となり , ハーフ ワードアクセスの場合には "00", "01" のときには "00" に , "00", "01" のときには "10" に なります。 157 第 4 章 外部バスインタフェース ● 32bit bus 幅 (A) Word access (a) PA1/PA0=00 →(1) 出力A1/A0=00 MSB (b) PA1/PA0=01 →(1) 出力A1/A0=00 (d)PA1/PA0=11 →(1) 出力A1/A0=00 LSB (1) (1) 00 (c)PA1/PA0=10 →(1) 出力A1/A0=00 01 10 (1) 11 00 01 10 11 (1) 00 01 10 11 00 01 10 11 32bit (B) Halfword access (a) PA1/PA0=00 →(1) 出力A1/A0=00 (b) PA1/PA0=01 →(1) 出力A1/A0=00 (1) (1) 00 01 10 11 (c)PA1/PA0=10 →(1) 出力A1/A0=10 (1) 00 01 10 11 (d)PA1/PA0=11 →(1) 出力A1/A0=10 (1) 00 01 10 11 00 01 10 11 (C) Byte access (a) PA1/PA0=00 →(1) 出力A1/A0=00 (1) (1) 00 158 (b) PA1/PA0=01 →(1) 出力A1/A0=01 01 10 11 (c)PA1/PA0=10 →(1) 出力A1/A0=10 (1) (1) 00 01 10 11 (d)PA1/PA0=11 →(1) 出力A1/A0=11 00 01 10 11 00 01 10 11 第 4 章 外部バスインタフェース ● 16bit bus 幅 (A) Word access (a) PA1/PA0=00 (1) 出力A1/A0=00 (2) 出力A1/A0=10 MSB (b) PA1/PA0=01 (1) 出力A1/A0=00 (2) 出力A1/A0=10 (c) PA1/PA0=10 (1) 出力A1/A0=00 (2) 出力A1/A0=10 (d) PA1/PA0=11 (1) 出力A1/A0=00 (2) 出力A1/A0=10 LSB (1) 00 01 (1) 00 01 (1) 00 01 (1) 00 01 (2) 10 11 (2) 10 11 (2) 10 11 (2) 10 11 (B) Halfword access (a) PA1/PA0=00 (1) 出力A1/A0=00 (1) 00 01 10 11 (b) PA1/PA0=01 (1) 出力A1/A0=00 (1) 00 01 10 11 (c) PA1/PA0=10 (1) 出力A1/A0=10 (1) 00 01 10 11 (d) PA1/PA0=11 (1) 出力A1/A0=10 (1) 00 01 10 11 (C) Byte access (a) PA1/PA0=00 (1) 出力A1/A0=00 (1) 00 01 10 11 (b) PA1/PA0=01 (1) 出力A1/A0=01 (1) 00 01 10 11 (c) PA1/PA0=10 (1) 出力A1/A0=10 (1) 00 01 10 11 (d) PA1/PA0=11 (1) 出力A1/A0=11 (1) 00 01 10 11 159 第 4 章 外部バスインタフェース ● 8bit bus 幅 (A) Word access (a) PA1/PA0=00 (1) 出力A1/A0=00 (2) 出力A1/A0=01 (3) 出力A1/A0=10 (4) 出力A1/A0=11 (b) PA1/PA0=01 (1) 出力A1/A0=00 (2) 出力A1/A0=01 (3) 出力A1/A0=10 (4) 出力A1/A0=11 (c) PA1/PA0=10 (1) 出力A1/A0=00 (2) 出力A1/A0=01 (3) 出力A1/A0=10 (4) 出力A1/A0=11 (d) PA1/PA0=11 (1) 出力A1/A0=00 (2) 出力A1/A0=01 (3) 出力A1/A0=10 (4) 出力A1/A0=11 MSB LSB (1) 00 (1) 00 (1) 00 (1) 00 (2) 01 (2) 01 (2) 01 (2) 01 (3) 10 (3) 10 (3) 10 (3) 10 (4) 11 (4) 11 (4) 11 (4) 11 8bit (B) Halfword access (a) PA1/PA0=00 (1) 出力A1/A0=00 (2) 出力A1/A0=01 (b) PA1/PA0=01 (1) 出力A1/A0=00 (2) 出力A1/A0=01 (c) PA1/PA0=10 (1) 出力A1/A0=10 (2) 出力A1/A0=11 (d) PA1/PA0=11 (1) 出力A1/A0=10 (2) 出力A1/A0=11 (1) 00 (1) 00 00 00 (2) 01 (2) 01 01 01 10 10 (1) 10 (1) 10 11 11 (2) 11 (2) 11 (C) Byte access (a) PA1/PA0=00 (1) 出力A1/A0=00 (1) 00 01 160 (b) PA1/PA0=01 (1) 出力A1/A0=00 (1) (c) PA1/PA0=10 (1) 出力A1/A0=10 (d) PA1/PA0=11 (1) 出力A1/A0=10 00 00 00 01 01 01 10 10 10 10 11 11 (1) 11 (1) 11 第 4 章 外部バスインタフェース ■ 外部との接続例 図 4.4-9 外部バスインタフェースと外部バスデバイスとの接続例 D31 W | R D24 0 X D23 W | R D16 1 X 00 01 D31 D24D23 D15 W | R D08 2 X 10 D16D15 D07 W | R D00 3 X *) 16ビット/8ビットデバイスの場合は,本LSIの MSB側のデータバスを使用します。 11 D08D07 0 D00 D15 *) 1 D08D07 0 D00 D07 D00 *) 32ビットデバイス 16ビットデバイス 8ビットデバイス ("00"~"11" アドレス下位2ビット) ("0"/"1" アドレス下位1ビット) 161 第 4 章 外部バスインタフェース 4.4.2 Little endian のバスアクセス FR ファミリは CS0 領域を除いて , 各チップセレクトごとに Big endian/Little endian を切り替えて使用可能です。 ACR レジスタの LEND ビットを "1" に設定し た場合は , その領域は Little endian として扱います。 FR ファミリの Little Endian バスアクセスは , big endian 時のバスアクセス動作を 利用し , 基本的には big endian 時の出力アドレスの順番と制御信号の出力は同じ で , データバスのバイト位置をバス幅に応じてスワップすることにより実現してい ます。 接続時には , big endian 領域と little endian 領域を物理的に分ける必要があります ので , 充分注意が必要です。 ■ 概要 • 出力するアドレスの順番は big endian/little endian で変わりません。 • word access : big endian のアドレス A1, A0=00 に対応する MSB 側のバイトデータ が , little endian では LSB 側のバイトデータになります。 word アクセスの場合は , word 内の 4byte 全ての byte 位置が反転します。 • half word access : big endian のアドレス A0 に対応する MSB 側のバイトデータが , little endian では LSB 側のバイトデータになります。 half word access の場合は , half word 内の 2byte の byte 位置が反転します。 • byte access : big endian/little endian とも同じです。 • 32/16/8 ビットバス幅で使用するデータバス / 制御信号は , big endian/little endian で変 わりません。 ■ Little endian 領域に対する制限事項 • Little endian 領域に対してプリフェッチを許可している場合は , その領域に対するア クセスは必ずワードアクセスにて行ってください。 プリフェッチバッファに読み 込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行わ れず , 誤ったデータを読み込んでしまいます。 これは , エンディアン変換機構の ハードウェア的な制限によるものです。 • Little endian 領域には , 命令コードを配置しないでください。 • 32 ビット幅リトルエンディアン領域へのアクセスはワードアクセス限定 外部バス 32 ビット幅に設定した領域で , かつリトルエンディアン領域に設定している 場合 , その領域に対するアクセスはワードサイズでのみアクセス ( リード / ライト ) し てください。 ハーフワード , またはバイトサイズでのアクセス ( リード / ライト ) は正しく実行され ません。 162 第 4 章 外部バスインタフェース ■ データフォーマット 内部レジスタと外部データバスとの関係は以下のようになります。 図 4.4-10 ワードアクセス (LD, ST 命令実行時 ) 図 4.4-11 ハーフワードアクセス (LDUH, STH 命令実行時 ) 図 4.4-12 バイトアクセス (LDUB, STB 命令実行時 ) 163 第 4 章 外部バスインタフェース ■ データバス幅 図 4.4-13 32 ビットバス幅 図 4.4-14 16 ビットバス幅 図 4.4-15 8 ビットバス幅 164 第 4 章 外部バスインタフェース ■ 外部との接続例 図 4.4-16 32bit バス幅 D31 W | R D24 0 X D23 W | R D16 1 X 00 D31 D15 W | R D08 2 X 01 D24D23 D07 W | R D00 3 X 10 D16D15 11 D08D07 11 D00 D31 10 D24D23 ビッグエンディアン領域 00 01 D16D15 D08D07 D00 リトルエンディアン領域 図 4.4-17 16bit バス幅 D31 W | R D24 0 X D23 W | R D16 1 X 0 D15 1 D08D07 0 D00 ビッグエンディアン領域 D15 1 D08D07 D00 リトルエンディアン領域 165 第 4 章 外部バスインタフェース 図 4.4-18 8bit バス幅 D31 W | R D24 0 X D07 D00 ビッグエンディアン領域 166 D07 D00 リトルエンディアン領域 第 4 章 外部バスインタフェース ビッグエンディアンとリトルエンディアンの外部ア クセスの比較 4.4.3 バス幅に対するワードアクセス , ハーフワードアクセス , およびバイトアクセスにつ いて , ビッグエンディアンとリトルエンディアンの外部アクセスの比較を示します。 ■ Word アクセス big endian mode 32bit バス幅 内部Reg 外部端子 little endian mode 制御端子 Address 下位 2bit:"0" D31 内部Reg 外部端子 D31 D31 D31 AA AA WR0X AA AA WR0X BB BB WR1X BB BB WR1X CC CC WR2X CC CC WR2X DD WR3X DD WR3X DD D00 D00 DD D00 D00 ① 16bit バス幅 ① 内部 Reg 外部端子 D31 内部Reg 制御端子 CC WR0X AA BB DD WR1X BB BB D31 制御端子 D31 DD BB WR0X CC AA WR1X CC - - - DD - - - ① ② D16 CC - - - DD - - - ① ② D00 内部 Reg 外部端子 D31 外部端子 address: "0" "2" address: D31 AA AA D16 8bit バス幅 制御端子 Address 下位 2bit:"0" address: "0" "1" "2" "3" D31 AA AA BB CC DD D24 BB - - - - D00 制御端子 内部Reg 外部端子 制御端子 address: "0" "1" "2" "3" D31 D31 AA WR0X DD CC BB AA WR0X D24 - BB - - - - - CC - - - - - DD - - - - - CC - - - - - DD - - - - - D00 D00 ① ② ③ ④ ① ② ③ ④ 167 第 4 章 外部バスインタフェース ■ Half word アクセス big endian mode 32bit バス幅 内部Reg 外部端子 little endian mode 制御端子 内部Reg Address 下位 2bit:"0" D31 D31 AA WR0X BB WR0X BB WR1X AA WR1X AA - BB D00 - AA - BB D00 D00 ① ① 内部Reg 外部端子 制御端子 内部Reg address: "2" D31 D31 CC DD D00 D31 外部端子 D31 - - - - CC WR2X DD WR3X D00 内部Reg CC DD D00 外部端子 制御端子 D16 BB CC WR3X D00 内部Reg 外部端子 制御端子 D31 D31 AA WR0X BB WR0X BB WR1X AA WR1X - - - - - - - - D00 AA D16 BB D00 ① 内部Reg 外部端子 ① 制御端子 内部Reg address: "2" D31 DD D16 外部端子 制御端子 address: "2" D31 CC D31 D31 CC WR0X DD WR0X DD WR1X CC WR1X - - - - - - - - D00 CC DD D16 D00 ① 168 WR2X address: "0" D31 AA DD ① address: "0" D31 制御端子 address: "2" ① 16bit バス幅 制御端子 address: "0" D31 D31 D00 外部端子 ① 第 4 章 外部バスインタフェース big endian mode 8bit バス幅 内部Reg 外部端子 address: D31 制御端子 AA BB D00 AA BB WR0X - - - - - - - - - address: D31 制御端子 CC DD AA BB DD WR0X - - - - - - - - - D00 ① ② WR0X - - - - - - - - - ① ② 制御端子 "2" "3" D31 D24 CC DD D00 AA 外部端子 address: D31 CC BB D00 内部Reg "2" "3" D31 D24 D24 ② 外部端子 制御端子 D31 D00 ① 外部端子 address: "0" "1" D31 D00 内部Reg 内部Reg "0" "1" D31 D24 D00 little endian mode DD CC WR0X - - - - - - - - - ① ② D00 169 第 4 章 外部バスインタフェース ■ Byte アクセス big endian mode 32bit バス幅 内部Reg 外部端子 little endian mode 制御端子 内部Reg address: "0" D31 D31 AA D00 D31 WR0X AA - - - - - AA D00 D00 ① 外部端子 ① 制御端子 内部Reg address: "1" D31 外部端子 D31 D31 - - WR1X BB - BB D00 BB D00 - D00 ① 外部端子 ① 制御端子 内部Reg address: "2" D31 D31 CC D00 外部端子 D31 - - - - WR2X CC - D00 CC D00 外部端子 - ① 制御端子 内部Reg address: "3" D31 D31 DD D00 170 制御端子 D31 - - - - - - WR3X DD D00 ① 外部端子 address: "3" D31 DD D00 WR2X D00 ① 内部Reg 制御端子 address: "2" D31 CC WR1X - - D00 内部Reg 制御端子 address: "1" D31 BB WR0X - D00 内部Reg 制御端子 address: "0" D31 AA 外部端子 DD D00 ① WR3X 第 4 章 外部バスインタフェース big endian mode 16bit バス幅 内部Reg 外部端子 little endian mode 制御端子 内部Reg address: "0" D31 制御端子 address: "0" D31 D31 AA 外部端子 D31 WR0X AA - WR0X - D16 D16 - - - AA D00 - AA D00 ① 内部Reg 外部端子 ① 制御端子 内部Reg address: "1" D31 外部端子 address: "1" D31 D31 D31 - BB D16 - WR1X BB D16 - - BB 制御端子 D00 WR1X - - BB D00 ① 内部Reg 外部端子 ① 制御端子 内部Reg address: "2" D31 D31 D31 WR0X CC - D16 - D00 WR0X - D16 - CC 制御端子 address: "2" D31 CC 外部端子 - - CC D00 ① 内部Reg 外部端子 ① 制御端子 内部Reg address: "3" D31 外部端子 address: "3" D31 D31 D31 - DD D16 - WR1X DD D16 - - DD D00 制御端子 WR1X - - DD D00 ① ① 171 第 4 章 外部バスインタフェース big endian mode 8bit バス幅 内部Reg 外部端子 little endian mode 制御端子 内部Reg address: "0" D31 D31 D24 D31 WR0X AA D24 - - - D00 - AA D00 ① 内部Reg 外部端子 ① 制御端子 内部Reg address: "1" D31 D31 D24 外部端子 D31 WR0X BB D24 - - - D00 WR0X - - BB 制御端子 address: "1" D31 BB - BB D00 ① 内部Reg 外部端子 ① 制御端子 内部Reg address: "2" D31 D31 D24 外部端子 D31 WR0X CC D24 - - - D00 WR0X - - CC 制御端子 address: "2" D31 CC - CC D00 ① 内部Reg 外部端子 ① 制御端子 内部Reg address: "3" D31 D31 D24 外部端子 D31 WR0X DD D24 - - - DD - DD D00 ① WR0X - - D00 制御端子 address: "3" D31 DD 172 WR0X - - AA 制御端子 address: "0" D31 AA 外部端子 ① 第 4 章 外部バスインタフェース 4.5 通常バスインタフェース 通常バスインタフェースでは , リードアクセス / ライトアクセス共に 2 クロックサイ クルが基本バスサイクルになります。 ■ 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0] = 0000B, AWR = 0008H) 図 4.5-1 基本タイミング ( アクセスが連続する場合 ) • AS は , バスアクセス開始サイクルに 1 サイクルアサートします。 • A[31:0] は , word/half word/byte アクセスの先頭バイト位置のアドレスをバスアクセ ス開始サイクルからバスアクセス終了サイクルまで出力します。 • CS0 ∼ CS7 は , AWR0 ∼ AWR7 レジスタの W02 ビットが "0" の時は , AS と同じタ イミングでアサートし , 連続するアクセスがある場合 CS0 ∼ CS7 がネゲートしませ ん。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼ CS7 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネゲー トします。 • RD, WR0 ∼ WR3 は , バスアクセス第 2 サイクルからアサートします。AWR レジス タ W15 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0 ∼ WR3 をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設定する ことにより 1 サイクル遅らせることができます。ただし , WR0 ∼ WR3 は内部状態 によりW01ビットを"0"に設定した場合も第2サイクルより遅れることがあります。 • TYP[3:0]=0x0xB のように WR0 ∼ WR3 を使用する設定の場合 WR は "H" 固定です。 • リードアクセスの場合 , RD アサート後ウェイトサイクルが終了したサイクルの MCLK の立上りで D[31:0] を取り込みます。 • ライトアクセスの場合 , WR0 ∼ WR3 をアサートしたタイミングから D[31:0] にデー タを出力します。 173 第 4 章 外部バスインタフェース ■ WR+byte-control タイプ (TYP[3:0] = 0010B, AWR = 0008H) 図 4.5-2 WR+ バイト制御タイプのタイミングチャート • AS, CSnX, RD, A[31:0], D[31:0] は , (1) 基本タイミングと同様の動作を行います。 • WR は , バスアクセス第 2 サイクルからアサートします。AWR レジスタ W15 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0 ∼ WR3 をアサー トするタイミングは AWR レジスタ W01 ビットを "1" に設定することにより 1 サイ クル遅らせることができます。ただし , 内部状態により W01 ビットを "0" に設定し た場合も第 2 サイクルより遅れることがあります。((1) 基本タイミングの WR0 ∼ WR3 と同様の動作を行います。) • WR0 ∼ WR3 は , バイトイネーブル信号 (UUB, ULB, LUB, LLB) としてアクセスする バイト位置を負論理で示します。バスアクセス開始サイクルからバスサイクル終了 までアサートします。アドレスと同じタイミングで変化します。リード / ライトア クセス共にアクセスするバイト位置を示します。 • ライトアクセスの場合 , WR をアサートしたタイミングから D[31:0] にデータを出力 します。 • TYP[3:0]=0x0xB (WR0 ∼ WR3 使用 ), TYP[3:0]=0x1xB(WR+byte control) の領域を混在 させる場合には , 使用する全ての領域にて , 必ず以下の設定を行ってください。( 詳 細は注意事項を参照してください。) - リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください。 - ライトリカバリサイクルを最低 1 サイクル以上設定してください。 174 第 4 章 外部バスインタフェース ■ リード → ライトタイミング (TYP[3:0]=0000B, AWR=0048H) 図 4.5-3 リード → ライトのタイミングチャート • AWR レジスタ W07, W06 ビットの設定により , 0 ∼ 3 サイクルまでのアイドルサイ クル挿入が可能です。 • リード側の CS 領域の設定が有効になります。 • リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで ある場合このアイドルサイクルを挿入します。 175 第 4 章 外部バスインタフェース ■ ライト → ライトタイミング (TYP[3:0]=0000B, AWR=0018H) 図 4.5-4 ライト → ライトのタイミングチャート • AWR レジスタ W05, W04 ビットの設定により , 0 ∼ 3 サイクルまでのライトリカバ リサイクルを挿入可能です。 • 全てのライトサイクル後に , リカバリサイクルが発生します。 • 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ トリカバリサイクルは発生します。 176 第 4 章 外部バスインタフェース ■ 自動ウェイトタイミング (TYP[3:0]=0000B, AWR=2008H) 図 4.5-5 自動ウェイトサイクルのタイミングチャート • AWR レジスタ W15 ∼ W12 ビット (first wait cycle) の設定により自動ウェイトサイ クルを ,0 ∼ 15 まで設定可能です。 • 上図では , 自動ウェイトサイクルを 2 サイクル挿入し合計 4 サイクルのアクセスと なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル +(first wait cycle) となります。ライトの場合は内部状態によりさらに長くなること があります。 177 第 4 章 外部バスインタフェース ■ 外部ウェイトタイミング (TYP[3:0]=0001B, AWR=2008H) 図 4.5-6 外部ウェイトサイクルのタイミングチャート • ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに より外部ウェイトサイクルを挿入可能です。 178 第 4 章 外部バスインタフェース ■ 同期ライトイネーブル出力タイミング (TYP[3:0]=0000B, AWR=0000H) 図 4.5-7 同期ライトイネーブル出力のタイミングチャート 同期ライトイネーブルとした場合 (AWR:W03 ビットが "0"), 以下の様な動作となりま す。 • WR0 ∼ WR3, WR 端子出力は , AS 端子出力がアサートされているタイミングで , 同 期ライトイネーブル出力をアサートします。外部バスへのライトが行われる場合 , 同期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行われる 場合 , 同期ライトイネーブル出力は "H" を出力します。 • 同期ライトイネーブル出力をアサートした次のクロックサイクルにて , 外部データ 出力端子よりライトデータを出力します。内部バスの都合によりライトデータを出 力できなかった場合 , ライトデータが出力できるまで同期ライトイネーブル出力の アサートを延長することがあります。 • リードストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容に関わ らず , 非同期リードストローブとして機能します。データの入出力制御にそのまま 用いてください。 同期ライトイネーブル出力を使用する場合 , 以下の制限があります。 • 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の追 加ウェイト設定はしないでください。 - CSX → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください ) - ファーストウェイトサイクル設定 (AWR:W15 ∼ W12 ビットは常に "0000" を書い てください ) • 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下のア クセスタイプ設定 (ACR レジスタ中の TYP[3:0] ビット (bit[3:0])) は設定しないでく ださい。 - マルチプレクスバス設定 (ACR:TYP2 ビットは常に "0" を書いてください ) - RDY 入力有効設定 (ACR:TYP0 ビットは常に "0" を書いてください ) • 同期ライトイネーブル出力の場合 , バースト長は常に 1(BST[1:0] ビットに "0") を設 定してください。 179 第 4 章 外部バスインタフェース ■ CSX 遅延設定 (TYP[3:0]=0000B, AWR=000CH) 図 4.5-8 CSX 遅延設定の動作タイミングチャート • W02 ビットが "1" の時は AS アサートの次のサイクルからアサートし , 連続するア クセスがある場合ネゲート期間を挿入します。 180 第 4 章 外部バスインタフェース ■ CSX → RD/WR セットアップ・RD/WR → CSX ホールド設定 (TYP[3:0]=0000B, AWR=000BH) 図 4.5-9 CSX → RD/WR セットアップ , RD/WR → CSX ホールド設定のタイミングチャート MCLK A[31:0] ASX CSnX CSX->RDX/WRX Delay RDX/WRX->CSX Delay RDX READ D[31:0] WRnX WRITE D[31:0] • AWR レジスタ W01 ビットを "1" に設定することにより , CSX → RD/WR セットアッ プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー ブまでの期間を延長する場合に設定します。 • AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CSX ホールド ディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレクト ネゲートまでの期間を延長する場合に設定します。 • CSX → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CSX ホールドディ レイ (W00 ビット ) は独立に設定可能です。 • 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク セスする場合は , CSX → RD/WR セットアップディレイ , RD/WR → CSX ホールド ディレイ共に挿入されません。 • アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタ W02 ビット ) を "1" に 設定してください。 181 第 4 章 外部バスインタフェース ■ DMA fly-by 転送 (I/O →メモリ )(TYP[3:0]=0000B, AWR=0008H, IOWR=51H) 図 4.5-10 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート ( メモリ側のウェイト設定なしの場合 ) • IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード サイクルを 1 サイクル延長します。 • IOWR0 ∼ IOWR2 レジスタの IW[3:0] ビットの設定により , 0 ∼ 15 サイクルまでの ウェイトサイクルを挿入可能です。 • メモリ側にもウェイトの設定がある場合 (AWR:W15 ∼ W12 が "0" でないとき ) は , I/O ウェイト (IW[3:0] ビット ) と比較して大きいほうの値をウェイトサイクルとして 使用します。 182 第 4 章 外部バスインタフェース ■ DMA fly-by 転送 ( メモリ→ I/O) (TYP[3:0]=0000B, AWR=0008H, IOWR=51H) 図 4.5-11 DMA フライバイ転送 ( メモリ→ I/O) のタイミングチャート ( メモリ側のウェイト設定なしの場合 ) • IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード サイクルを 1 サイクル延長します。 • IOWR0 ∼ IOWR2 レジスタの WR[1:0] ビットの設定により , 0 ∼ 3 サイクルまでの ライトリカバリサイクルを挿入可能です。 • ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルを挿入します。 • IOWR0 ∼ IOWR2 レジスタの IW[3:0] ビットの設定により , 0 ∼ 15 サイクルまでの ウェイトサイクルを挿入可能です。 • メモリ側にもウェイトの設定がある場合 (AWR:W15 ∼ W12 が "0" でないとき ) は , I/O ウェイト (IW[3:0] ビット ) と比較して大きいほうの値をウェイトサイクルとして 使用します。 183 第 4 章 外部バスインタフェース 4.6 バーストアクセス (first wait cycle:1, page wait cycle:1) (TYP[3:0]=0000B, AWR=3208H) 外部バスインタフェースにおいては , 1 回のアクセスシーケンスで複数のデータを連 続して転送する動作を , バーストアクセスとよびます。 バーストアクセス以外の通 常のアクセスサイクルを , シングルアクセスとよびます。 ここで言う 1 回のアクセ スシーケンスとは , AS および CSX のアサートから始まり , CSX がネゲートされる までを示します。 複数のデータとは , その領域に設定されたバス幅単位で 2 単位以 上のデータを示します。 本節では , バーストアクセスの動作について説明します。 ■ バーストアクセスの動作 図 4.6-1 バーストアクセスのタイミングチャート • バーストサイクルは, ページモードROMなどの非同期メモリやバーストフラッシュ メモリなど , まとまったデータを読む際のアクセスサイクルの効率化の他 , 通常の 非同期メモリよりの読出しにも使用できます。 • バーストサイクル時のアクセスシーケンスは , 以下の 2 種類のサイクルに分かれま す。 - ファーストアクセスサイクル バーストアクセスの開始サイクルで , 通常のシングルアクセスサイクルと同じ動 作を行います。 - ページアクセスサイクル ファーストアクセスサイクルに引き続き , CSX や RD( リードストローブ ) をア サートしたまま行うサイクルです。 シングルサイクル時とは異なるウェイトサ 184 第 4 章 外部バスインタフェース イクルを設定できます。 バースト長設定から決定されるアドレスバウンダリ内 にある間 , ページアクセスサイクルは繰り返し行われます。アドレスバウンダリ 内のアクセスが終了するとバーストアクセスは終了となり , CSX がネゲートされ ます。 • AWR レジスタ W15 ∼ W12 ビットの設定により , 0 ∼ 15 サイクルの第 1 ウェイトサ イクルを挿入可能です。このとき , ファーストアクセスサイクルは最小でウェイト サイクル +2 サイクルとなります。( 上記タイミング図では 3 サイクル ) • AWR レジスタ W11 ∼ W08 ビットの設定により , 0 ∼ 15 サイクルのページウェイト サイクルを挿入可能です。このとき , ページアクセスサイクルはページウェイトサ イクル +1 サイクルとなります。( 上記タイミング図では 2 サイクル ) • ACR レジスタ BST ビットの設定により , バースト長を 1, 2, 4, 8 に設定可能です。 バースト長を 1 に設定するとシングルアクセスとなり , 第 1 サイクルのみが繰り返 されます。ただし , データバス幅 32 ビット (ACR レジスタ BST ビットを "10B") に 設定した場合は , バースト長を 4 以下に設定してください ( バースト長 8 に設定し た場合は誤動作します )。 • バーストアクセスを有効にした場合 , プリフェッチアクセスまたは設定したデータ バス幅よりも大きなサイズで転送を行うときにバーストアクセスを行います。例え ば , データバス幅を 8 ビット , バースト長を 4 に設定した領域に word アクセスを 行った場合 byte アクセスを 4 回ではなく , 4 バースト 1 回のアクセスを行います。 • バースト設定を行った領域では , RDY 入力は無視されますので TYP[3:0]=0xx1B に 設定しないでください。 • LBA, BAA 信号は , バースト FLASH メモリ用で , LBA でアクセスの開始を示し BAA でアドレスのインクリメントを指示します。 • バーストアクセス中設定したウェイト後に A[31:0] の更新を行います。 185 第 4 章 外部バスインタフェース 4.7 アドレス / データマルチプレクスインタフェース 本節では , アドレス / データマルチプレクスインタフェースの動作として , 以下の 3 つの場合について説明します。 • 外部ウェイトなし • 外部ウェイトあり • CSX → RD/WR セットアップ設定 ■ 外部ウェイトなし (TYP[3:0]=0100B, AWR=0008H) 図 4.7-1 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトなし ) MCLK A[31:0] address[31:0] ASX CSnX RDX READ D[31:16] address[15:0] data[15:0] WEX WRITE D[31:16] address[15:0] data[15:0] • ACR レジスタ TYP[3:0]=01xxB と設定することによりアドレス / データマルチプレ • • • • • • 186 クスインタフェース設定が可能です。 アドレス / データマルチプレクスインタフェースに設定した場合 , データバス幅 (DBW[1:0] ビット ) の設定は 8 ビットもしくは 16 ビットに設定してください。32 ビット幅はサポートしていません。 アドレス / データマルチプレクスインタフェースでは , アドレス出力サイクル 2 サ イクル + データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり ます。 アドレス出力サイクルでは , 出力アドレスラッチ信号として AS をアサートします。 A[31:0] には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先頭 を示すアドレスを出力しますので , アドレス / データマルチプレクスインタフェー スで 8/16 ビット以上のアドレスを使用したい場合に使用してください。 自動ウェイト (AWR:W15 ∼ W12), リード→ライトアイドルサイクル (AWR:W07, W06), ライトリカバリ (AWR:W05, W04), アドレス→ CSX 遅延 (AWR:W02), CSX → RD/WR セットアップ遅延 (AWR:W01), RD/WR → CSX ホールド遅延 (AWR:W00) の 設定は , 通常インタフェースと同様に設定可能です。 アドレス / データマルチプレクスインタフェースを設定した領域では , バースト長 を "1"(DBW[1:0]=00B) に設定してください。 第 4 章 外部バスインタフェース ■ 外部ウェイトあり (TYP[3:0]=0101B, AWR=1008H) 図 4.7-2 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトあり ) MCLK A[31:0] address[31:0] ASX CSnX RDX READ D[31:16] address[15:0] data[15:0] WRX WRITE D[31:16] address[15:0] data[15:0] 外部ウェイト 解除 RDY • ACR レジスタ TYP[3:0]=01x1B と設定することにより , アドレス / データマルチプレ クスインタフェースにおいて RDY 入力を有効とすることが可能です。 187 第 4 章 外部バスインタフェース ■ CSX → RD/WR セットアップ設定 (TYP[3:0]=0101B, AWR=100BH) 図 4.7-3 アドレス / データマルチプレクスインタフェースのタイミングチャート (CSX → RD/WR セットアップ設定 ) MCLK A[31:0] address[31:0] ASX CSnX RDX READ D[31:16] address[15:0] data[15:0] WRX WRITE D[31:16] address[15:0] data[15:0] • CSX → RD/WR セットアップ遅延 (AWR:W01) を "1" に設定すると , 上図のようにマ ルチプレクスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立ち 上がりエッジで直接ラッチすることが可能となります。MCLK を使用せずに AS を ALE(Address Latch Enable) ストローブとして使用したい場合にこの設定を用いてく ださい。 188 第 4 章 外部バスインタフェース 4.8 プリフェッチ動作 本節では , プリフェッチ動作について説明します。 ■ 機能概要 外部バスインタフェースコントローラは 8 ビット× 16 本で構成されるプリフェッチ バッファを内蔵しています。 TCR レジスタの PSUS ビットが "0" の場合 , ACR レジスタの PFEN ビットをセット ("1") してある領域に対するリードアクセスが発生すると , それ以降続くアドレスに対して プリフェッチを行い , プリフェッチバッファ内に蓄積します。 蓄積されたアドレスに対し内部バスからのアクセスがあると , 外部アクセスを行わず にプリフェッチバッファに先読みされたデータを返します。これにより , 外部バス領 域への連続したアクセスでの待ち時間を少なくすることができます。 ● プリフェッチによる外部アクセスを開始する基本条件 プリフェッチによる外部バスアクセスは, 以下の条件が揃っている場合に発生します。 • TCR レジスタの PSUS ビットが "0" であること。 • スリープまたはストップモードでないこと。 • プリフェッチ許可されたチップセレクト領域への外部バスリードアクセスが行わ れたこと。ただし , DMA アクセスおよびリードモディファイライト系命令による リードアクセスを除きます。 • プリフェッチアクセス以外の外部バスアクセス要求 ( プリフェッチを許可していな い領域への外部バス領域アクセスや , 外部バス領域との間の DMA 転送など ) が発生 していないこと。 • 次の 1 回のプリフェッチアクセスで取り込む部分のプリフェッチバッファがすべて 空であること。 これらの条件が成立する間 , プリフェッチアクセスを続けます。なお , プリフェッチア クセス後に , プリフェッチを許可していない領域への外部バス領域アクセスが発生し た後でも , プリフェッチバッファクリア条件が発生しない限り , プリフェッチ許可領域 へのプリフェッチアクセスは引き続き行われます。 複数のプリフェッチ許可領域と複数のプリフェッチ禁止領域とを混在させてアクセス を行っている場合 , プリフェッチバッファは常に最後にアクセスされたプリフェッチ 許可領域に対するプリフェッチを行い , そのデータを保持しています。この場合 , プリ フェッチ禁止領域へのアクセスはプリフェッチバッファの状態には一切影響をおよぼ さないため , プリフェッチ禁止のデータアクセスとプリフェッチ許可の命令フェッチ とが混在しても , プリフェッチバッファ内のデータを無駄にすることはありません。 ● プリフェッチアクセスの一時停止と任意クリア TCR レジスタの PSUS ビットに "1" をセットすると , プリフェッチは一時停止します。 PSUS ビットに "0" を設定すると再開します。この時ミス発生 , PCLR ビットのセット などのバッファクリアが発生しなければ , バッファ内容は保持されます。 TCR レジスタの PCLR ビットに "1" をセットすると , プリフェッチバッファを全てクリ アします。バッファのクリアは , PSUS ビットをセットし , プリフェッチを中断してい 189 第 4 章 外部バスインタフェース る時に行ってください。 アドレス上位 16 ビットが変化する境界 = チップセレクト領域の最小単位 (64Kbyte 毎 ) では , プリフェッチは , いったん停止します。境界を越えた場合 , いったんバッファ リードミスが発生し , 引き続き新しい領域でプリフェッチを開始します。 ● 1 回のプリフェッチアクセス動作の単位 1 回のプリフェッチアクセスの単位は , ACR レジスタの DBW ビット ( バス幅 ) と BST ビット ( バースト長 ) によって決まります。 プリフェッチアクセスは常に DBW ビットで設定されたバス幅いっぱいのサイズでア クセスし , BST ビットにて設定されたバースト長の回数のアクセスを 1 回のアクセス で行います。つまり , BST ビットに "00B" 以外を設定した場合 , プリフェッチアクセス は常にページモード / バーストモードでのアクセスとなります。対応していない ROM/ RAM やアクセスタイム不足には注意してください (AWR レジスタの W15 ∼ W08 ビッ トに適切な値を設定してください )。 バーストアクセス時は , バースト長に依存したアドレスバウンダリ内でしか連続アク セスを行いません。そのため , バッファの空き byte 数が例えば 4byte あったとしても , バウンダリをまたいでいる場合 , 4byte 分を 1 回でアクセスできません ( プリフェッチ バッファ先頭が xxxxxx0EH で , バッファに 4byte 空きがあり , バス幅 16bit であっても , 2 バーストを設定した場合は , 次のプリフェッチアクセスでは xxxxxx0EH と xxxxxx0FH の 2byte しか取り込みません )。 例) バス幅 16bit, バースト長 2 を設定した領域 → 1 回のプリフェッチでバッファに読み込まれるデータ量は , 4byte 分となります。 この場合 , プリフェッチバッファに 4byte 分の空きができるまでプリフェッチアク セスは行われません。 バス幅 8bit, バースト長 8 を設定した領域 → 1 回のプリフェッチでバッファに読み込まれるデータ量は , 8byte 分となります。 この場合 , プリフェッチバッファに 8byte 分の空きができるまでプリフェッチアク セスは行われません。 ● バースト長設定とプリフェッチ効率 「● 1 回のプリフェッチアクセス動作の単位」で解説した 1 回のプリフェッチアクセス が行われている間に , プリフェッチアクセス以外の外部バスアクセス要求や , プリ フェッチバッファへのミスが発生した場合でも , 実行中のプリフェッチバッファのア クセスが終了するまでは , それらアクセス要求は待たされます。 そのため , バースト長をあまり大きく設定いたしますと , プリフェッチ以外のバスアク セスの効率や反応が低下します。反面, バースト長を1に設定しますと, バースト/ペー ジアクセスメモリを接続している場合でも常にシングルアクセスを行うため , 読み込 みサイクルの無駄が多く発生します。 また , 1 回のプリフェッチアクセスで読み込まれるデータが多い設定ですと , それだけ プリフェッチバッファの空きができないとプリフェッチアクセスが開始できないため, プリフェッチバッファへのアクセス頻度が少ないと外部バスがアイドル状態になり易 190 第 4 章 外部バスインタフェース くなります。たとえば , バス幅が 16bit・バースト長 8 を設定した場合 , 1 回のプリフェッ チでバッファに読み込まれるデータ量は , 16byte 分となるため , プリフェッチバッファ がすべて空にならないと , 新たなプリフェッチアクセスができなくなります。 これらの事を念頭に置いた上で , 使用状況・環境に応じて最適なバースト長設定を調整 してください。一般に , バースト / ページアクセスのできない非同期メモリを接続する 場合は , バースト長は 1( シングルアクセス ) を設定するのが最適です。逆に , バースト / ページアクセスサイクルの短いメモリを接続する場合は , バースト長は 1( シングルア クセス ) 以外を設定するのが最適です。こちらの場合は , バス幅に応じて 1 回で 8byte( バッファの半分 ) を読み込む設定をするのが最適ですが , 外部アクセスの頻度や外部ア クセスクロックの分周比設定などによっても条件は変わってきます。 ● プリフェッチバッファからの読込み プリフェッチバッファ内にストアされたデータは , 内部バスからのアクセスでアドレ スが一致した物があれば読み出され , 外部へのアクセスを行いません。バッファの読 み込みは順方向であればアドレスが連続していなくてもヒット可能 ( 最大 16byte) です ので, 短い前方への分岐などでも極力外部バスへの2度読みが発生しないようになって います。 内部バスからのアクセスで , 現在プリフェッチアクセス中のアドレスが一致した場合 , プリフェッチアクセスが完了してデータが取り込まれるまでの間は , 内部に対しウェ イトを返します。この場合 , バッファミス扱いにはなりません。 DMA 転送でのリードにて , プリフェッチバッファ内のアドレスが一致した場合は , プ リフェッチバッファ内のデータは使用されず , 外部バスから新たに読み込みを行いま す。この場合, バッファミス扱いになりますが, 引き続きプリフェッチを継続はせずに, プリフェッチ許可領域への新たな外部アクセスが発生するまでは , プリフェッチアク セスを行いません。 ● プリフェッチバッファのクリア , 更新 プリフェッチバッファは , 以下の条件のいずれかが成立した場合にすべてクリアされ ます。 • TCR レジスタの PCLR ビットに "1" が書き込まれた時。 • バッファリードミス ( 後述 ) が発生した時。 • バッファライトヒット ( 後述 ) が発生した時。 プリフェッチバッファは , 以下の条件が成立した場合に一部のみクリアされます。 • バッファリードヒットが発生した時。 この場合 , ヒットしたアドレス以前のバッ ファのみクリアされます。 バッファリードミスとは , 以下のものを示します。 • プリフェッチ許可領域へのリードアクセスで , バッファ内のアドレスに一致するも のがない場合。 この場合 , 外部バスに対し新たにアクセスを行います。 この際の リードデータは , バッファ内にはストアされませんが , 続くアドレスからプリ フェッチアクセスを開始し , バッファにストアしていきます。 • プリフェッチ許可領域へのリードアクセスで , リードモディファイライト系命令に よるリードである場合。この場合 , 外部バスに対し新たにアクセスを行います。こ の際のリードデータは , バッファ内にはストアされませんし , 続けてプリフェッチ アクセスは行いません ( 次にそのアドレスに対しライトが行われるため )。 191 第 4 章 外部バスインタフェース • プリフェッチ許可領域へのリードアクセスで , DMA 転送によるリードである場合。 この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは , バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません。 バッファライトヒットとは , 以下のものを示します。 • プリフェッチ許可領域へのライトアクセスで , バッファ内のアドレスに1byteでも一 致するものがあった場合。この場合 , 外部バスに対し新たにアクセスを行いますが , プリフェッチアクセスは , 新たなリードアクセスが発生するまでは行われません。 ● プリフェッチ許可領域に対する制限事項 リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に対 するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファに読 み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行わ れず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機構のハード ウェア的な制限によるものです。 192 第 4 章 外部バスインタフェース 4.9 DMA アクセス 本節では , DMA アクセス動作について説明します。 ■ DMA fly-by 転送 (I/O →メモリ ) (TYP[3:0]=0000B, AWR=0008H, IOWR=41H) 図 4.9-1 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート ( メモリ側のウェイト設定なしの場合 ) 基本サイクル I/Oウェイト I/Oホールド サイクル *1 ウェイト*2 MCLK A[31:0] memory address ASX CSnX WRnX D[31:0] DACKnX FR30 互換 モード EOPnX 基本 モード DACKnX EOPnX IORDX DREQn デマンドモード時の センスタイミング • AWR レジスタ W01 ビットを "1" に設定することにより , CSX → RD/WR セットアッ プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー ブまでの期間を延長する場合に設定します。 • AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CSX ホールド ディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレクト ネゲートまでの期間を延長する場合に設定します。 • CSX → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CSX ホールドディ レイ (W00 ビット ) は独立に設定可能です。 • 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク 193 第 4 章 外部バスインタフェース セスする場合は , CSX → RD/WR セットアップディレイ , RD/WR → CSX ホールド ディレイ共に挿入されません。 • アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタ W02 ビット ) を "1" に 設定してください。 ● 解説 データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサイ クルにより延長された , 3 バスサイクル分のリードストローブが発生しています。受け 取り側であるメモリに対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル 分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライトス トローブには影響を与えません。ただし , アドレスと CS 信号は , fly-by によるバスア クセスサイクル終了まで保持されます。 194 第 4 章 外部バスインタフェース ■ DMA fly-by 転送 ( メモリ→ I/O) (TYP[3:0]=0000B, AWR=0008H, IOWR=41H) 図 4.9-2 DMA フライバイ転送 ( メモリ→ I/O) ( メモリ側のウェイト設定なしの場合 ) 基本サイクル I/Oウェイト I/Oホールド サイクル *1 ウェイト*2 MCLK A[31:0] memory address ASX CSnX RDX D[31:0] DACKnX FR30 互換 モード EOPnX 基本 モード DACKnX EOPnX IOWRX DREQn デマンドモード時の センスタイミング • IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード サイクルを 1 サイクル延長します。 • IOWR0 ∼ IOWR2 レジスタの WR[1:0] ビットの設定により , 0 ∼ 3 サイクルまでの ライトリカバリサイクルを挿入可能です。 • ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルを挿入します。 • IOWR0 ∼ IOWR2 レジスタの IW[3:0] ビットの設定により , 0 ∼ 15 サイクルまでの ウェイトサイクルを挿入可能です。 • メモリ側にもウェイトの設定がある場合 (AWR:W15 ∼ W12 が "0" でないとき ) は , I/O ウェイト (IW[3:0] ビット ) と比較して大きいほうの値をウェイトサイクルとして 使用します。 ● 解説 データ出力側であるメモリに対して , I/O ウェイトサイクルと I/O ホールドウェイトサ イクルにより延長された , 3 バスサイクル分のリードストローブが発生しています。受 け取り側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル分 のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライトスト ローブには影響を与えません。ただし , アドレスと CS 信号は , fly-by によるバスアク セスサイクル終了まで保持されます。 195 第 4 章 外部バスインタフェース ■ two-cycle 転送 ( 内部 RAM →外部 I/O, RAM, 外部 I/O, RAM →内部 RAM もタイミングは同じ ) (TYP[3:0]=0000B, AWR=0008H, IOWR=00H) 図 4.9-3 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) のタイミングチャート (I/O 側のウェイト設定なしの場合 ) MCLK A[31:0] I/O address ASX CSnX(I/O側) WRnX D[31:0] DACKnX FR30 互換 モード EOPnX 基本 モード DACKnX EOPnX DREQn デマンドモード時の センスタイミング • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 • DACKnX/EOPnX は , 内部 RAM アクセスのサイクルでは出力されません。 196 第 4 章 外部バスインタフェース ■ two-cycle 転送 ( 外部→ I/O) (TYP[3:0]=0000B, AWR=0008H, IOWR=00H) 図 4.9-4 2 サイクル転送 ( 外部→ I/O) のタイミングチャート ( メモリ , I/O のウェイト設定なしの場合 ) MCLK A[31:0] memory address idle I/O address ASX CSnX RDX CSnX WRnX D[31:0] DACKnX FR30 互換 モード EOPnX 基本 モード DACKnX EOPnX DREQn • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 • 基本モードでは DACKnX/EOPnX は転送元バスアクセス , 転送先バスアクセスの両 方で出力されます。 197 第 4 章 外部バスインタフェース ■ two-cycle 転送 (I/O →外部 ) (TYP[3:0]=0000B, AWR=0008H, IOWR=00H) 図 4.9-5 2 サイクル転送 (I/O →外部 ) のタイミングチャート ( メモリ , I/O のウェイト設定なしの場合 ) MCLK A[31:0] I/O address idle memory address ASX CSnX WRnX CSnX RDX D[31:0] DACKnX FR30 互換 モード EOPnX 基本 モード DACKnX EOPnX DREQn • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 • 基本モードでは DACKnX/EOPnX は転送元バスアクセス , 転送先バスアクセスの両 方で出力されます。 198 第 4 章 外部バスインタフェース 4.10 バスアービトレーション バス権開放 , およびバス権獲得のタイミングチャートを示します。 ■ バスアービトレーション 図 4.10-1 バス権開放のタイミングチャート MCLK A23~A0 ASX CSnX * RDX リード D31~D16 BRQ BGRNTX 1サイクル 199 第 4 章 外部バスインタフェース 図 4.10-2 バス権獲得のタイミングチャート MCLK A23~A0 ASX CSnX * WRX ライト D31~D16 BRQ BGRNTX 1サイクル • TRC レジスタ BREN ビットを "1" に設定することにより , BRQ/BGRNT によるバス アービトレーションを行うことができます。 • バス権開放時は , 端子をハイインピーダンスにしてから 1 サイクル後に BGRNT を アサートします。 • バス権獲得時は , BGRNT をネゲートしてから 1 サイクル後に各端子をアクティブに します。 • CSnX は , ACR0 ∼ ACR7 レジスタの SREN ビットがセットしてある場合のみハイイ ンピーダンスにします。 • CSER レジスタで許可している領域が全て共有許可 (ACR レジスタ SREN ビットが "1") の場合 , AS, BAA, RD, WR, WR0 ∼ WR3 をハイインピーダンスにします。 200 第 4 章 外部バスインタフェース 4.11 レジスタ設定手順 外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。 ■ レジスタ設定手順 • レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し ない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前後の アクセスは保証されません。 • レジスタの変更は以下の手順で行ってください。 1. 該当領域に対応する CSER のビットを "0" に設定してください。 2. ASR と ACR をワードアクセスで同時に設定してください。 3. AWR を設定してください。 4. 該当領域に対応する CHER のビットを設定してください。 5. 該当領域に対する CSER のビットを設定してください。 • CS0 領域はリセット解除後から有効になっており , プログラム領域として使用して いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク ロックが低い初期状態で上記②∼④の設定を行ってください。そのあと , クロック を高速クロックに切り替えてください。 • プリフェッチ許可を設定した領域のレジスタ値の変更は以下の手順で行ってくだ さい。 1. 該当領域に対応する CSER のビットを "0" に設定してください。 2. TCRレジスタPSUSビットおよびPCLRビットを共に"1"に設定してください。 3. ASR と ACR をワードアクセスにて同時に設定してください。 4. AWR を設定してください。 5. 該当領域に対応する CHER のビットを設定してください。 6. TCR レジスタ PSUS ビットおよび PCLR ビットに "0" を設定してください。 7. 該当領域に対応する CSER のビットを "1" に設定してください。 201 第 4 章 外部バスインタフェース 4.12 使用上の注意 外部バスインタフェースを使用する上で注意しなければならない事項について説明 します。 ■ 使用上の注意 WR0 ∼ WR3 をライトストローブとして使用する領域 (TYP[3:0]=0x0xB) と WR をライ トストローブとして使用する領域 (TYP[3:0]=0x1xB) を混在させる設定にした場合 , 使用する全ての領域にて , 必ず以下の設定を行ってください。 • リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください。(AWR :W07, W06=00B 以外 ) • ライトリカバリサイクルを最低 1 サイクル以上設定してください。(AWR:W05, W04=00B 以外 ) ただし , WR0 ∼ WR3 をライトストローブとして使用する領域 (TYP[3:0]=0x0xB) で WR0 ∼ WR3 が無効な (ROM のみ接続されている ) 場合は , 上記制限はありません。また , WR をライトストローブとして使用する領域 (TYP[3:0]=0x1xB) の設定でアドレス→ RD/ WR セットアップサイクル (W01=1), RD/WR →アドレスホールドサイクル (W00=1) を 共に設定している場合も上記制限はありません。 ● 制限理由 TYP[3:0]=0x1xB と設定して WR をライトストローブとして使用する領域では , WR0/ WR1 端子が , バイトイネーブル (UBX/LBX) 出力となります。この場合 , バイトイネー ブル出力はアドレスおよび CSX 出力と同一のタイミングで , 各バイト位置のイネーブ ル信号を出力します。 このため , WR0/WR1 端子を非同期ライトストローブとして使用している領域へのアク セスが前後にあった場合 , そちらの領域において , CSX と WR0/WR1 間の AC 規格を満 足できなくなり , 誤書込みが発生する可能性があります。 リード→ライトアイドルサイクル , およびライトリカバリサイクルを設定した場合 , こ れらサイクルでは , CSX はアサートされません ("H" レベルを維持 ) ので , 上記 AC 規 格を満足できます。 WR0/WR1 端子を非同期ライトストローブとして使用している領域にて , CSX と WR0/ WR1 間の AC 規格 ( セットアップおよびホールド ) に対し余裕がある場合は , 本制限は 必要ありません。 202 第5章 I/O ポート この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。 5.1 I/O ポートの概要 5.2 I/O ポートのレジスタ 203 第 5 章 I/O ポート 5.1 I/O ポートの概要 この節では , I/O ポートの概要を説明します。 ■ ポート基本ブロックダイヤグラム 本LSIは, 各端子に対応するペリフェラルが入出力として端子を使用しない設定になっ ているとき , I/O ポートとして使用できます。 下図にポートの基本的な構成を示します。 図 5.1-1 I/O ポートの基本ブロックダイヤグラム I/O ポートは , PDR( ポートデータレジスタ /Port Data Register) と DDR( ポート方向レジ スタ /Data Direction Register) と PFR( ポート機能レジスタ /Port Function Register) で構成 されています。 204 第 5 章 I/O ポート ■ I/O ポートのモード ● ポート入力モード時 (PFR= 0 & DDR= 0 ) • PDR リード : 対応する外部端子のレベルが読み出されます。 • PDR ライト :PDR に設定値が書き込まれます。 ● ポート出力モード時 (PFR= 0 & DDR= 1 ) • PDR リード :PDR の値が読み出されます。 • PDR ライト :PDR の値が対応する外部端子に出力されます。 ● ペリフェラル出力モード時 (PFR= 1 & DDR= 1 ) • PDR リード : 対応する外部端子のレベルが読み出されます。 • PDR ライト :PDR に設定値が書き込まれます。 ● ペリフェラル入力モード時 (PFR= 1 & DDR= 0 ) • PDR リード : 対応する外部端子のレベルが読み出されます。 • PDR ライト :PDR に設定値が書き込まれます。 ( 注意事項 ) ポート関連レジスタへのアクセスは , バイトアクセス で行ってください。 DDR レジスタの値が有効になるのは , PFR レジスタを切り替えて汎用端子としたときで す。 205 第 5 章 I/O ポート 5.2 I/O ポートのレジスタ この節では , I/O ポートで使用するレジスタの構成 , および機能について説明します。 ■ Port Data Register(PDR) 図 5.2-1 Port Data Register(PDR) の構成 bit 7 PDR0 アドレス:00000010 H P07 6 P06 5 P05 4 P04 3 P03 2 P02 1 P01 0 P00 初期値 アクセス XXXXXXXXB R/W PDR1 bit 7 アドレス:00000011 H P17 6 P16 5 P15 4 P14 3 P13 2 P12 1 P11 0 P10 初期値 アクセス XXXXXXXXB R/W PDR2 bit アドレス:00000012 H 7 - 6 - 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 アクセス --XXXXXXB R/W PDR3 bit アドレス:00000013 H 7 - 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 アクセス -XXXXXXX B R/W bit 7 PDR4 アドレス:00000014 H P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 P40 初期値 アクセス XXXXXXXXB R/W bit 7 PDR5 アドレス:00000015 H P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 アクセス XXXXXXXXB R/W bit PDR6 アドレス:00000016 H 7 - 6 - 5 P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 アクセス --XXXXXX B R/W bit PDR7 アドレス:00000017 H 7 - 6 - 5 - 4 P74 3 P73 2 P72 1 P71 0 P70 初期値 アクセス ---XXXXX B R/W PDR0 ∼ PDR7 は , I/O ポートの入出力データレジスタです。 対応する DDR0 ∼ DDR7, PFR0 ∼ PFR3 で , 入出力制御が行われます。 206 第 5 章 I/O ポート ■ Data Direction Register(DDR) 図 5.2-2 Data Direction Register(DDR) の構成 bit 7 DDR0 アドレス:00000400 H P07 6 P06 5 P05 4 P04 3 P03 2 P02 1 P01 0 P00 初期値 アクセス 00000000B R/W bit DDR1 7 アドレス:00000401 H P17 6 P16 5 P15 4 P14 3 P13 2 P12 1 P11 0 P10 初期値 アクセス 00000000B R/W bit DDR2 アドレス:00000402 H 7 - 6 - 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 アクセス --000000B R/W bit DDR3 アドレス:00000403 H 7 - 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 アクセス -0000000B R/W bit 7 DDR4 アドレス:00000404 H P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 P40 初期値 アクセス 00000000B R/W bit 7 DDR5 アドレス:00000405 H P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 アクセス 00000000B R/W bit DDR6 アドレス:00000406 H 7 - 6 - 5 P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 アクセス --000000B R/W bit DDR7 アドレス:00000407 H 7 - 6 - 5 - 4 P74 3 P73 2 P72 1 P71 0 P70 初期値 アクセス ---00000B R/W DDR0 ∼ DDR7 は , 対応する I/O ポートの入出力方向をビット単位で制御します。 • PFR=0 の時 DDR=0:ポート入力 DDR=1:ポート出力 • PFR=1 の時 DDR=0:周辺出力 DDR=1:周辺出力 207 第 5 章 I/O ポート ■ Port Function Register(PFR) 図 5.2-3 Port Function Register(PFR) の構成 bit 7 PFR0 アドレス: 00000410H I2CTST 6 5 - - 4 3 2 1 I2CE4 I2CE3 I2CE2 I2CE1 0 I2CE0 初期値 0--00000B 初期値 bit 7 PFR1 6 5 4 3 2 1 0 アドレス: 00000411H UART3 SCKE3 UART2 SCKE2 UART1 SCKE1 UART0 SCKE0 00000000B bit 7 PFR2 アドレス: 00000412H TOE2 6 5 TOE1 TOE0 4 - 3 - 2 - 1 0 UART4 SCKE4 初期値 000---00B 初期値 bit 7 PFR3 6 5 4 3 2 1 0 アドレス: 00000413H TME3 TME2 TME1 TME0 PPGE3 PPGE2 PPGE1 PPGE0 00000000B アクセス R/W アクセス R/W アクセス R/W アクセス R/W リセット時はポート機能になります。 PFR0 ∼ PFR3 は , 対応するペリフェラルの出力を機能単位で制御します。 ペリフェラル入力として使用する端子は , DDR レジスタで入力設定にしてください。 ( 注意事項 ) PFR0 の bit7[I2CTST] は必ず "0" にしてください。 I2CE3 と I2CE4 が両方 "1" のときは , SCL3・SCK3 が SCL4・SCK4 とブリッジされます。 208 第 5 章 I/O ポート ■ Port Function Register(PFR) の初期値と機能 以下に各 PFR レジスタについてその初期値と機能をまとめます。 表 5.2-1 PFR レジスタの初期値と機能 Register name PFR0 Bit name I2CTST I2CE4 I2CE3 I2CE2 I2CE1 I2CE0 PFR1 UART3 SCKE3 UART2 SCKE2 UART1 SCKE1 UART0 SCKE0 Bit value Function 0 I2C テスト用ビットです。 1 設定禁止 0 汎用ポートとして機能します。 1 SCL4, SDA4 として機能します。(I2C ch.4 と接続 ) 0 汎用ポートとして機能します。 1 SCL3, SDA3 として機能します。(I2C ch.3 と接続 ) 0 汎用ポートとして機能します。 1 SCL2, SDA2 として機能します。(I2C ch.2 と接続 ) 0 汎用ポートとして機能します。 1 SCL1, SDA1 として機能します。(I2C ch.1 と接続 ) 0 汎用ポートとして機能します。 1 SCL0, SDA0 として機能します。(I2C ch.0 と接続 ) 0 汎用ポートとして機能します。 1 0 SO3 出力として機能します。 汎用ポートとして機能します。 1 SCK3 出力として機能します。 0 汎用ポートとして機能します。 1 SO2 出力として機能します。 0 汎用ポートとして機能します。 1 SCK2 出力として機能します。 0 汎用ポートとして機能します。 1 SO1 出力として機能します。 0 汎用ポートとして機能します。 1 SCK1 出力として機能します。 0 汎用ポートとして機能します。 1 SO0 出力として機能します。 0 汎用ポートとして機能します。 1 SCK0 出力として機能します。 209 第 5 章 I/O ポート 表 5.2-1 PFR レジスタの初期値と機能 Register name PFR2 Bit name Bit value UART4 0 汎用ポートとして機能します。 1 SO4 出力として機能します。 0 汎用ポートとして機能します。 1 SCK4 出力として機能します。 0 汎用ポートとして機能します。 1 TO2 出力として機能します。 0 汎用ポートとして機能します。 1 TO1 出力として機能します。 0 汎用ポートとして機能します。 1 TO0 出力として機能します。 0 汎用ポートとして機能します。 1 TMO3 出力として機能します。 0 汎用ポートとして機能します。 1 TMO2 出力として機能します。 0 汎用ポートとして機能します。 1 TMO1 出力として機能します。 0 汎用ポートとして機能します。 1 TMO0 出力として機能します。 0 汎用ポートとして機能します。 1 PPG3 出力として機能します。 0 汎用ポートとして機能します。 1 PPG2 出力として機能します。 0 汎用ポートとして機能します。 1 PPG1 出力として機能します。 0 汎用ポートとして機能します。 1 PPG0 出力として機能します。 SCKE4 TOE2 TOE1 TOE0 PFR3 TME3 TME2 TME1 TME0 PPGE3 PPGE2 PPGE1 PPGE0 210 Function 第6章 U-TIMER この章では , U-TIMER の概要 , レジスタの構成 , 機 能 , および動作について説明します。 6.1 概要 6.2 U-TIMER のレジスタ 6.3 動作説明 211 第 6 章 U-TIMER 6.1 概要 この節では , U-TIMER(16 bit timer for UART baud rate generation) の概要とブ ロックダイヤグラムを示します。 ■ U-TIMER の概要 U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの動 作周波数と, U-TIMERのリロード値の組み合わせで任意のボーレートを設定できます。 本品種は , 本タイマを 5 チャネル内蔵しています。 ■ レジスタ一覧 bit 15 8 7 UTIM UTIMR 0 (R) (W) (R/W) UTIMC ■ ブロックダイヤグラム 図 6.1-1 U-TIMER のブロックダイヤグラム 0 bit 15 UTIMR(リロードレジスタ) ロード bit 15 0 UTIM(timer) クロック φ (周辺系クロック) アンダフロー コントロール f.f. 212 UARTへ 第 6 章 U-TIMER 6.2 U-TIMER のレジスタ この節では , U-TIMER で使用するレジスタの構成 , および機能について説明します。 ■ UTIM (U-TIMER) 図 6.2-1 UTIM(U-TIMER) のビット構成 bit 14 2 1 0 b15 b14 000064H 00006CH 000074H R 00007CH 0 000084H b2 b1 b0 UTIM ch.0 アドレス: ch.1 アドレス: ch.2 アドレス: ch.3 アドレス: ch.4 アドレス: 15 R アクセス 0 初期値 UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。 ■ UTIMR(reload register) 図 6.2-2 UTIMR(reload register) のビット構成 bit 14 2 1 0 b15 b14 000064H 00006CH 000074H R 00007CH 0 000084H b2 b1 b0 UTIMR ch.0 アドレス: ch.1 アドレス: ch.2 アドレス: ch.3 アドレス: ch.4 アドレス: 15 W アクセス 0 初期値 UTIMR は , UTIM がアンダフローした時に UTIM にリロードされる値を格納するレジ スタです。 このレジスタは必ず 16 ビット転送命令でアクセスしてください。 ■ UTIMC(U-TIMER Control register) UTIMC は , U-TIMER の動作を制御します。 このレジスタは , 必ずバイト転送命令でアクセスしてください。 図 6.2-3 UTIMC(U-TIMER Control register) のビット構成 bit UTIMC ch.0 アドレス: ch.1 アドレス: ch.2 アドレス: ch.3 アドレス: ch.4 アドレス: 7 UCC1 000067H 00006FH R/W 0 000077H 00007FH 000087H 6 5 4 3 2 1 0 UTIE UNDR CLKS UTST UTCR R/W 0 R/W 0 R/W 0 R/W 0 R/W 1 アクセス 初期値 213 第 6 章 U-TIMER ■ レジスタ説明 [bit7] UCC1 (U-timer Count Control 1) UCC1 ビットは , U-TIMER のカウントの仕方を制御します。 UCC1 動作 0 通常動作 . α = 2n+2 〔初期値〕 1 +1 モード α = 2n+3 n: UTIMR の設定値 α: UART に対する出力クロックの周期 U-TIMER は , UART に対して通常の 2(n+1) の周期のクロックの他に奇数分周を設 定できます。 UCC1 を "1" に設定すると 2n+3 の周期を発生します。 設定例 : 1.UTIMR=5, UCC1=0 : 発生周期 = 2n+2 = 12 サイクル 2.UTIMR=25, UCC1=1: 発生周期 = 2n+3 = 53 サイクル 3.UTIMR=60, UCC1=0: 発生周期 = 2n+2 = 122 サイクル U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定し てください。 [bit6, bit5] (reserved) [bit4] UTIE (U-Timer Interrupt Enable) UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。 0 : 割込み禁止 〔初期値〕 1 : 許可 ( 注意事項 ) 本製品では U-Timer 割込みがないので常に "0" を書き込んでください。 [bit3] UNDR (UNDeR flow flag) UNDR は , アンダフローが発生したことを示すフラグです。UNDR はリセット , ま たは "0" 書込みによりクリアされます。リードモディファイライト系命令のリード 時は , 常に "1" が読み出されます。 また , UNDR に対する "1" 書込みは無効です。 [bit2] CLKS (CLocK Select) このビットは 常に "0" を書き込んでください。 214 第 6 章 U-TIMER [bit1] UTST (U-Timer STart) U-TIMER の動作許可ビットです。 0: 停止。動作中でも "0" ライトで停止します。〔初期値〕 1: 動作。動作中に "1" を書き込んでも動作は続行されます。 [bit0] UTCR (U-Timer CleaR) UTCRに"0"を書き込むとU-TIMER は0000H にクリアされます(f.f. も"0"にクリア) 。 常に "1" が読まれます。 ( 注意事項 ) • ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリロー ドします。 • ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートする と , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。 • 動作中にクリアビット UTCR をアサートすると , カウンタも "0" クリアされます。この ため , 出力波形にヒゲ状の短いパルスが出力される場合があり , UART が誤動作する可 能性があります。 出力クロックを使用している場合には , 動作中にクリアビットによるクリアを行わな いでください。 • U-TIMER コントロールレジスタの bit1(U-TIMER スタートビット :UTST) および , bit0 (U-TIMER のクリアビット :UTCR) をタイマ停止状態で同時にアサートすると , クリア した後のカウンタロードのタイミングで同レジスタのbit3(アンダフローフラグ:UNDR) がセットします。また , 内部ボーレートクロックは同タイミングで High レベルになり ます。 • アンダフローフラグセットタイミングとクリアタイミングが重複した場合には , フラ グセットが優先され , クリア動作は , 無効となります。 • UTIMC(U-TIMer Control register) の bit4(UTIE) および bit0(CLKS) には常に "0" を書き込 んでください。 • U-TIMER リロードレジスタへの書込みとリロードのタイミングが重複した場合に は , 旧データがカウンタにロードされ , 新データがカウンタにロードされるのは , 次の リロードのタイミングとなります。 • タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク リアが最優先されます。 215 第 6 章 U-TIMER 6.3 動作説明 この節では , U-TIMER のボーレートの計算について説明します。 ■ ボーレートの計算 UART は , 対応する U-TIMER (U-TIMER0 → UART0, U-TIMER1 → UART1, U-TIMER2 → UART2, U-TIMER3 → UART3, U-TIMER4 → UART4) のアンダフローフリップフロッ プ ( ブロック図中 f.f.) をボーレート用クロックソースとして使用します。 ● 非同期 ( 調歩同期 ) モード UART は , U-TIMER の出力を 16 分周して使用します。 φ bps = (2n+2) 16 UCC 1=0 時 n: UTIMR (リロード値) φ: 周辺クロック周波数 (ギアにより変動) φ bps = (2n+3) 16 UCC 1=1時 最大 bps 周辺クロック (CLKP) 20.275MHz 時 633438bps ● CLK 同期モード φ bps = (2n+2) bps = φ UCC 1=0 時 n: UTIMR (リロード値) φ: 周辺クロック周波数 (ギアにより変動) UCC 1=1時 (2n+3) 最大 bps 周辺クロック (CLKP) 20.27MHz 時 10135000bps 216 第7章 16 ビットリロードタイマ この章では , 16 ビットリロードタイマの概要 , レ ジスタの構成 / 機能 , および 16 ビットリロードタ イマの動作について説明します。 7.1 16 ビットリロードタイマの概要 7.2 16 ビットリロードタイマのレジスタ 7.3 16 ビットリロードタイマの動作説明 217 第 7 章 16 ビットリロードタイマ 16 ビットリロードタイマの概要 7.1 16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内 部カウント , カウント用クロック作成用プリスケーラ , コントロールレジスタで構成 されています。 ■ 16 ビットリロードタイマの概要 カウント用クロックソースとして内部クロック 3 種類 ( 周辺クロックの 2 / 8 / 32 分周 選択可能 ), 外部イベントから選択できます。 割込みによる DMA 転送の起動が可能です。 本製品では 本タイマを 3 チャネル内蔵しています。 ■ レジスタ一覧 図 7.1-1 16 ビットリロードタイマレジスタ 15 bit 14 13 12 11 CSL1 7 bit MOD0 6 5 4 3 RELD INTE 10 9 8 CSL0 MOD2 MOD1 2 UF 1 0 CNTE TRG コントロールステータスレジスタ (TMCSR) bit 15 0 16ビットタイマレジスタ (TMR) bit 15 0 16ビットリロードレジスタ (TMRLR) 218 第 7 章 16 ビットリロードタイマ ■ ブロックダイヤグラム 図 7.1-2 16 ビットリロードタイマのブロックダイヤグラム 16ビットリロードレジスタ (TMRLR) 16 7 リロード 16 RELD 16ビットダウンカウンタ (TMR) UF OUT CTL. R- BUS カウントイネーブル INTE UF リトリガ クロックセレクタ 2 EXCK IRQ CSL1 CNTE CSL0 TRG 外部タイマ出力 (TOT0~TOT2) IN CTL. TOE0~TOE2 φ φ PFRK 内のビット φ 21 23 25 MOD2 MOD1 MOD0 外部 トリガ 選択 外部トリガ入力(TI) 周辺クロック入力 3 219 第 7 章 16 ビットリロードタイマ 7.2 16 ビットリロードタイマのレジスタ この節では , 16 ビットリロードタイマで使用するレジスタの構成と機能について説 明します。 ■ コントロールステータスレジスタ (TMCSR) 図 7.2-1 コントロールステータスレジスタ (TMCSR) のビット構成 TMCSR bit 15 14 13 12 アドレス: ch.0 00004EH ch.1 000056 H bit ch.2 00005EH (R/W) (R/W) 7 6 5 MOD0 R/W R R/W 11 10 9 8 初期値 CSL1 CSL0 MOD2 MOD1 R/W R/W R/W R/W 4 3 2 1 0 RELD INTE UF CNTE TRG R/W R/W R/W R/W R/W --XX0000 00000000 B 16 ビットタイマの動作モード , および割込みの制御をします。 UF, CNTE, TRG ビット以外のビットの書換えは , CNTE= 0 のときに行うようにしてく ださい。 同時書込みは可能です。 13, 12, 5 ビットに write する際は必ず "0" を書き込んでください。 [bit13] (Reserved) write する際は必ず "0" を書き込んでください。 [bit12] (Reserved) write する際は必ず "0" を書き込んでください。 [bit11, bit10] CSL1, CSL0 (Conut source SeLect) カウントソースセレクトビットです。カウントソースは , 内部クロックと外部イベ ントを選択できます。選択可能なカウントソースを , 表 7.2-1 に示します。 また外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1, MOD0 ビットにより設定されます。 表 7.2-1 CSL ビット設定カウントソース CSL1 CSL0 カウントソース (φ:マシンクロック ) 0 0 内部クロック φ/21 (ch.0 ∼ ch.2) 0 1 内部クロック φ/23 (ch.0 ∼ ch.2) 1 0 内部クロック φ/25 (ch.0 ∼ ch.2) 1 1 外部イベント (ch.0 ∼ ch.2) 外部クロックに必要な最小パルス幅は , 2•T(T: 周辺系クロックマシンサイクル ) で す。 220 第 7 章 16 ビットリロードタイマ [bit9, bit8, bit7] MOD2, MOD1, MOD0 (MODe) 動作モードを選択するビットです。カウントソースが「内部クロック」の場合と 「外部イベント」の場合で機能が変わります。 内部クロックのとき : リロードトリガ設定 外部イベントのとき : カウント有効エッジの設定 また , MOD2 は必ず "0" を設定してください。 内部クロック選択時のリロードトリガ設定 カウントソースとして , 内部クロック (CSL1, CSL0=00, 01, 10) が選択されて いる場合は MOD2 ∼ MOD0 ビットの設定により有効エッジが入力されると リロードレジスタの内容をロードしてカウント動作を継続します。内部ク ロック選択時の MOD2 ∼ MOD0 の設定を表 7.2-2 に示します。 表 7.2-2 MOD2 ∼ MOD0 の設定方法 MOD2 MOD1 MOD0 有効エッジ 0 0 0 ソフトウェアトリガ 0 0 1 外部トリガ ( 立ち上がりエッジ ) 0 1 0 外部トリガ ( 立ち下がりエッジ ) 0 1 1 外部トリガ ( 両エッジ ) 1 X X 設定禁止 ( 注意事項 ) 表中の "X" は , 任意の値を示します。 外部イベント選択時の有効エッジ設定 カウントソースとして , 外部クロックイベント (CSL1, CSL0=11) が選択され ている場合の MOD2 ∼ MOD0 の設定により , 有効エッジが入力されるとイベ ントをカウントします。 外部イベント選択時の MOD2 ∼ MOD0 の設定を表 7.2-3 に示します。 表 7.2-3 MOD2 ∼ MOD0 の設定方法 MOD2 MOD1 MOD0 X 0 0 - X 0 1 外部イベント ( 立ち上がりエッジ ) X 1 0 外部イベント ( 立ち下がりエッジ ) X 1 1 外部イベント ( 両エッジ ) 有効エッジ ( 注意事項 ) 表中の "X" は , 任意の値を示します。 外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生し ます。 221 第 7 章 16 ビットリロードタイマ [bit6] (reserved) 未使用ビットです。読出し時に常に "0" が読めます。 [bit5] (Reserved) write する際は必ず "0" を書き込んでください。 [bit4] RELD : リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへロード してカウント動作を続けます。 "0" のときワンショットモードになり , カウンタの値が 0000H → FFFFH へのアンダ フローによりカウント動作を停止します。 [bit3] INTE : 割込み要求許可ビットです。"1" のとき , UF ビットが "1" になると割込み要求を発 生します。"0" のときは , 割込み要求を発生しません。 [bit2] UF : タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフロー により "1" にセットされます。"0" の書込みによってクリアされます。 このビットへの "1" 書込みは , 意味がありません。 リードモディファイライト系命令における読出し時には , "1" が読み出されます。 [bit1] CNTE : タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動ト リガ待ち状態になります。"0" 書込みによりカウント動作は停止します。 [bit0] TRG : ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。 "0" 書込み動作は意味を持ちません。読出し値は , 常に "0" です。 このレジスタによるトリガ入力は , CNTE= 1 のときのみ有効となります。 CNTE= 0 のときには , 何も起こりません。 222 第 7 章 16 ビットリロードタイマ ■ 16 ビットタイマレジスタ (TMR) 図 7.2-2 16 ビットタイマレジスタ (TMR) のビット構成 bit 15 TMR アドレス: ch.0 00004AH ch.1 000052H ch.2 00005AH R 初期値 0 XXXXH R R R R R R R 16 ビットタイマのカウント値を読出す事ができるレジスタです。初期値は不定です。 このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。 ■ 16 ビットリロードレジスタ (TMRLR) 図 7.2-3 16 ビットリロードレジスタ (TMRLR) のビット構成 bit 15 TMRLR アドレス: ch.0 000048H ch.1 000050H ch.2 000058H W 0 初期値 XXXXH W W W W W W W 16 ビットリロードレジスタは , カウントの初期値を保持しておくレジスタです。 初期値は不定です。このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行っ てください。 223 第 7 章 16 ビットリロードタイマ 7.3 16 ビットリロードタイマの動作説明 この節では , 16 ビットリロードタイマの動作について説明します。 ■ 動作説明 ● クロック動作 内部クロックを分周したクロックでタイマを動作させる場合 , カウントソースとして 周辺クロックの 2•8•32 分周のクロックから選択できます。 カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ ジスタの CNTE ビットと TRG ビットの両方に "1" を書込んでください。 TRG ビットによるトリガ入力は , タイマが起動状態のとき (CNTE= 1 ) 動作モードに係 わらず常に有効です。 カウンタの起動 , カウンタの動作について , 図 7.3-1 に示します。 カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに , T(T: 周辺クロックサイクル ) の時間がかかります。 図 7.3-1 カウンタの起動 , および動作 カウントクロック リロードデータ カウンタ データロード CNTE (レジスタ) TRG (レジスタ) T 224 -1 -1 -1 第 7 章 16 ビットリロードタイマ ● アンダフロー動作 カウンタの値が 0000H から FFFFH になる時をアンダフローとしています。従って ,〔リ ロードレジスタの設定値 +1〕カウントでアンダフローが発生することになります。 アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の ときカウンタは , FFFFH で停止します。 アンダフローによりコントロールレジスタの UF ビットがセットされ , INTE ビットが "1" のとき割込要求を発生します。 アンダフロー動作について図 7.3-2 に示します。 図 7.3-2 アンダフロー動作 0000H -1 -1 -1 [RELD=1] 0000H FFFFH [RELD=0] 225 第 7 章 16 ビットリロードタイマ ● カウンタの動作状態 カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に よって決まっています。設定可能な状態として CNTE= 0 , WAIT= 1 の停止状態 (STOP 状態 ), CNTE= 1 , WAIT= 1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE= 1 , WAIT= 0 の動作状態 (RUN 状態 ) があります。各状態の遷移を図 7.3-3 に示します。 図 7.3-3 カウンタ状態遷移 リセット ハードウェアによる状態遷移 STOP CNTE=0, WAIT=1 レジスタアクセスによる状態遷移 カウンタ: 停止時の値を保持 リセット直後は不定 CNTE=1 TRG=0 WAIT CNTE=1 TRG=1 CNTE=1, WAIT=1 カウンタ: 停止時の値を保持 リセット直後,ロードする までは不定 RUN カウンタ: 動作 RELD UF TRG=1 CNTE=1, WAIT=0 TRG=1 LOAD CNTE=1, WAIT=0 リロードレジスタの 内容をカウンタへロード RELD UF ロード終了 ■ 注意点 • 内部プリスケーラは , コントロールステータスレジスタのビット 1( タイマ許可 :CNTE) が "1" に設定されている状態でトリガがかけられることにより動作可能にな ります。 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ グセットが優先し , クリア動作は無効になります。 • 16 ビットタイマリロードレジスタへの書き込みはとリロードのタイミングが重な った場合には , 旧データがカウンタにロードされ新データがカウンタにロードされ るのは , 次のリロードの時になります。 • 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には , ロード ( リロード ) 動作の方が優先されます。 226 第8章 PPG(Programable Pulse Generator) この章では , PPG(Programable Pulse Generator) タイマの概要 , レジスタの構成 / 機能および動作に ついて説明します。 8.1 概要 8.2 PPG タイマのレジスタ 8.3 動作説明 8.4 PPG タイマの注意事項 227 第 8 章 PPG(Programable Pulse Generator) 8.1 概要 PPG は , 精度の高い PWM 波形を効率良く出力できます。 本品種は , PPG タイマを 4 チャネル内蔵しています。 ■ 概要 • 各チャネルは , 16 ビットダウンカウンタ , 周期設定用バッファ付 16 ビットデータレ ジスタ , デューティ設定用バッファ付 16 ビットコンペアレジスタ , 端子制御部から 構成されます。 • 16 ビットダウンカウンタのカウントクロックは , 4 種類から選択が可能です。 - 周辺クロック φ, φ/4, φ/16, φ/64 • カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化できます。 • 各チャネルごとに PPG 出力 (PPG0 ∼ PPG3) があります。 • レジスタ概要 - 周期設定レジスタ : バッファ付 , リロード用データレジスタ バッファからの転送は起動トリガ検出 およびカウンタボローにより行います。カ ウンタボローにより PPG 出力は反転します。 - デューティ設定レジスタ : バッファ付 , コンペアレジスタ 本レジスタ値とカウンタ値一致により PPG 出力は反転します。 • 端子制御概要 - デューティ一致で , "1" にセット。( 優先 ) - カウンタボローで , "0" にリセット。 - 出力値固定モードがあり , オール "L" ( または "H") を簡単に出力できます。 - 極性指定も可能です。 • 割込要求は , 以下の組合せから選択して発生できます。 - 本タイマ起動 ( ソフトトリガ もしくは トリガ入力 ) - カウンタボロー発生 ( 周期一致 ) - デューティ一致発生 - カウンタボロー発生 ( 周期一致 ) または , デューティ一致発生 • ソフトウェア , またはほかのインターバルタイマで複数チャネルの同時起動が設定 できます。また , 動作中の再起動も設定可能です。 228 第 8 章 PPG(Programable Pulse Generator) ■ レジスタ一覧 図 8.1-1 レジスタ一覧 アドレス bit 15 0 Access 00000120H PTMR0 R ch.0 タイマレジスタ 00000122H PCSR0 W ch.0 周期設定レジスタ 00000124H PDUT0 W ch.0 デューティ設定レジスタ R/W ch.0 コントロールステータスレジスタ 00000126H PCNH0 PCNL0 00000128H PTMR1 R ch.1 タイマレジスタ 0000012AH PCSR1 W ch.1 周期設定レジスタ 0000012CH PDUT1 W ch.1 デューティ設定レジスタ R/W ch.1 コントロールステータスレジスタ 0000012EH PCNH1 PCNL1 00000130H PTMR2 R ch.2 タイマレジスタ 00000132H PCSR2 W ch.2 周期設定レジスタ 00000134H PDUT2 W ch.2 デューティ設定レジスタ R/W ch.2 コントロールステータスレジスタ 00000136H PCNH2 PCNL2 00000138H PTMR3 R ch.3 タイマレジスタ 0000013AH PCSR3 W ch.3 周期設定レジスタ 0000013CH PDUT3 W ch.3 デューティ設定レジスタ R/W ch.3 コントロールステータスレジスタ 0000013EH PCNH3 PCNL3 │ 229 第 8 章 PPG(Programable Pulse Generator) ■ ブロックダイヤグラム 図 8.1-2 全体構成 外部TRG0 TRG 入力 PPGタイマ ch.0 PPG0 外部TRG1 TRG 入力 PPGタイマ ch.1 PPG1 外部TRG2 TRG 入力 PPGタイマ ch.2 PPG2 外部TRG3 TRG 入力 PPGタイマ ch.3 PPG3 図 8.1-3 1 チャネル分 PCRS PDUT プリスケーラ 1/1 1/4 1/16 1/64 cmp CK ロード 16 bit ダウンカウンタ スタート ボロー PPGマスク PPG出力 S Q 周辺クロック R 反転bit イネーブル TRG入力 エッジ検出 ソフトトリガ 230 割込み 選択 IRQ 第 8 章 PPG(Programable Pulse Generator) 8.2 PPG タイマのレジスタ この節では , PPG タイマのレジスタについて説明します。 ■ コントロールステータス レジスタ 図 8.2-1 コントロールステータスレジスタ (PCNH,PCNL) のビット構成 PCNH bit 15 14 13 12 11 10 9 アドレス ch.0 000126H ch.1 00012EH CNTE STGR MDSE RTRG CKS1 CKS0 PGMS ch.2 000136H R/W R/W R/W R/W R/W R/W R/W ch.3 00013EH 0 0 0 0 0 0 0 PCNL bit 7 6 5 4 3 2 アドレス ch.0 000127H ch.1 00012FH EGS1 EGS0 IREN IRQF IRS1 IRS0 ch.2 000137H R/W R/W R/W R/W R/W R/W ch.3 00013FH 0 0 0 0 0 0 1 8 属性 初期値 動作中の書換 0 OSEL ─ ─ R/W 0 × 属性 初期値 動作中の書換 [bit15] CNTE: タイマ許可ビット 16 ビットダウンカウンタの動作を許可するビットです。 0 停止 ( 初期値 ) 1 許可 [bit14] STGR: ソフトウェアトリガビット このビットに "1" を書き込むことによりソフトウェアトリガが掛かります。 STGR ビットの読出し値は , 常に "0" です。 [bit13] MDSE: モード選択ビット 連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択 します。 0 PWM 動作 ( 初期値 ) 1 ワンショット動作 231 第 8 章 PPG(Programable Pulse Generator) [bit12] RTRG: 再起動許可ビット ソフトウェアトリガ , またはトリガ入力による再起動を許可するビットです。 0 再起動禁止 ( 初期値 ) 1 再起動許可 [bit11, bit10] CKS1, CKS0: カウントクロック選択ビット 16 ビットダウンカウンタのカウントクロックを選択します。 CKS1 CKS0 0 0 φ ( 初期値 ) 0 1 φ/4 1 0 φ/16 1 1 φ/64 周期 φ: 周辺クロック [bit9] PGMS:PPG 出力マスク選択ビット このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値 に関わらず PPG 出力を "0" または , "1" にマスクすることができます。 表 8.2-1 PGMS に "1" 書込み時の PPG 出力 極性 PPG 出力 通常極性 L 出力 反転極性 H 出力 通常極性時にオール "H" または , 反転極性時にオール "L" を出力したい場合は , 周 期設定レジスタとデューティ設定レジスタに同値をライトすれば上記マスク値の 反転を出力できます。 [bit8]: 未使用ビットです。 232 第 8 章 PPG(Programable Pulse Generator) [bit7, bit6] EGS1, EGS0: トリガ入力エッジ選択ビット ジェネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。 どのモードを選択していてもソフトトリガのビットに "1" を書き込むとソフトトリ ガは有効になります。 EGS1 EGS0 0 0 無効 ( 初期値 ) 0 1 立上がりエッジ 1 0 立下りエッジ 1 1 両エッジ エッジ選択 [bit5] IREN: 割込み要求許可ビット 0 禁止 ( 初期値 ) 1 許可 [bit4] IRQF: 割込み要求フラグ bit5 IREN が許可されていて bit3, bit2 IRS1, IRS0 にて選択した割込み要因が発生す ると , 本ビットがセットされ CPU に割込み要求を発生します。 本ビットは , "0" 書込みによりクリアされます。 "1" を書き込んでもビット値は変化しません。 リードモディファイライト系命令におけるリード値は , ビット値に関わらず "1" で す。 [bit3, bit2] IRS1, IRS0: 割込み要因選択ビット bit4 IRQF をセットする要因を選択します。 IRS1 IRS0 0 0 ソフトウェアトリガ , またはトリガ入力あり ( 初期値 ) 0 1 カウンタボロー発生 ( 周期一致 ) 1 0 デューティ一致発生 1 1 カウンタボロー発生 ( 周期一致 ), またはデューティ一致発生 割込み要因 [bit1] (reserved) 未使用ビットです。 233 第 8 章 PPG(Programable Pulse Generator) [bit0] OSEL: PPG 出力極性指定ビット PPG 出力の極性を設定します。 bit9 PGMS との組合せで , 以下のようになります。 表 8.2-2 PPG 出力極性指定組合せ PGMS OSEL 0 0 通常極性 ( 初期値 ) 0 1 反転極性 1 0 出力 "L" 固定 1 1 出力 "H" 固定 PPG 出力 表 8.2-3 PPG 出力極性指定 極性 234 リセット後 デューティ一致 カウンタボロー 通常極性 "L" 出力 立上りエッジ 立下りエッジ 反転極性 "H" 出力 立下りエッジ 立上りエッジ 第 8 章 PPG(Programable Pulse Generator) ■ PCSR(PPG 周期設定レジスタ ) 図 8.2-2 PCSR(PPG 周期設定レジスタ ) のビット構成 bit PCSR アドレス: ch.0 000122H ch.1 00012AH ch.2 000132H ch.3 00013AH 15 14 7 13 6 属性 初期値 12 5 11 4 10 3 9 2 8 1 0 ライトのみ 不定 周期を設定するための , バッファ付レジスタです。バッファからの転送は , カウンタボ ローで行われます。 周期設定レジスタの初期設定時 , および書換え時は , 周期設定レジスタの書込み後 , 必 ずデューティ設定レジスタへの書込み動作を行ってください。 本レジスタは , 16 ビットデータでアクセスしてください。 ■ PDUT(PPG デューティ設定レジスタ ) 図 8.2-3 PDUT(PPG デューティ設定レジスタ ) のビット構成 bit PDUT アドレス: ch.0 000124H ch.1 00012CH ch.2 000134H ch.3 00013CH 15 14 7 13 6 属性 初期値 12 5 11 4 10 3 9 2 8 1 0 ライトのみ 不定 デューティを設定するための , バッファ付レジスタです。バッファからの転送は , カウ ンタボローで行われます。 周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に オール "H" を , 反転極性時にオール "L" を出力します。 PCSR < PDUT となるような値を設定しないでください。PPG 出力は不定となります。 本レジスタは , 16 ビットデータでアクセスしてください。 235 第 8 章 PPG(Programable Pulse Generator) ■ PTMR(PPG タイマレジスタ ) 図 8.2-4 PTMR(PPG タイマレジスタ ) のビット構成 bit PDMR アドレス: ch.0 000120H ch.1 000128H ch.2 000130H ch.3 000138H 15 14 7 属性 初期値 13 6 12 5 11 4 10 3 リードのみ FFFFH 16 ビットダウンカウンタの値を読み出すことができます。 本レジスタは , 16 ビットデータでアクセスしてください。 236 9 2 8 1 0 第 8 章 PPG(Programable Pulse Generator) 動作説明 8.3 PWM 動作では , 起動トリガの検出時より連続してパルスを出力します。 ■ PWM 動作 PWM 動作では , 起動トリガの検出時より連続してパルスを出力できます。 出力パルスの周期は , PCSR 値を変えることにより制御でき , またデューティ比は , PDUT 値を変えることにより制御できます。 ( 注意事項 ) PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。 ● PWM 動作タイミングチャート 図 8.3-1 再起動禁止の場合 立上りエッジ検出 トリガは無視されます。 起動 トリガ m n 0 PPG (1) (2) T: カウントクロック周期 m : PCSR値 n : PDUT値 (1) = T (n+1) ms (2) = T (m+1) ms 図 8.3-2 再起動許可の場合 立上りエッジ検出 トリガにより再起動します。 起動 トリガ m n 0 PPG (1) (2) 237 第 8 章 PPG(Programable Pulse Generator) ■ ワンショット動作 ワンショット動作では , トリガにより任意の幅の単一パルスを出力できます。 再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。 ● ワンショット動作タイミングチャート 図 8.3-3 再起動禁止の場合 立上りエッジ検出 トリガは無視されます。 起動 トリガ m n 0 PPG (1) (2) 図 8.3-4 再起動許可の場合 立上りエッジ検出 トリガにより再起動します。 起動 トリガ m n 0 PPG (1) (2) 238 第 8 章 PPG(Programable Pulse Generator) ■ 割込み要因とタイミングチャート 図 8.3-5 割込み要因とタイミングチャート (PPG 出力は , 通常極性 ) 2.5T 0003 0002 0001 0000 0003 PPG 起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T (T: カウントク ロック周期 ) を必要とします。 ■ PPG 出力オール "L" または , オール "H" の出力方法例 図 8.3-6 PPG 出力をオール "L" にする出力方法例 PPG デューティ 値を小さく していく ボローによる割込みでPGMS(マスクビット)に "1"を書き込みます。 また, ボローによる割込みでPGMS(マスクビット)に "0"を書き込めば,ひげを出力することなくPWM波形を 出力できます。 図 8.3-7 PPG 出力をオール "H" にする出力方法例 PPG デューティ 値を大きく していく コンペア一致による割込みでデューティ設定 レジスタに周期設定レジスタ値と同じ値を 書き込みます。 239 第 8 章 PPG(Programable Pulse Generator) 8.4 PPG タイマの注意事項 この節では , PPG タイマの使用に関して , 注意すべき点を説明します。 ■ PPG タイマの注意事項 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ グセットが優先され , クリア動作は , 無効となります。 • PPG コントロールレジスタの bit11, bit10( カウントロック選択ビット CKS1 および , CKS0) は , 書き込み後すぐに反映されるので , 設定変更は , カウント停止状態で行っ てください。 • PPG ダウンカウンタ (PPGC:16 ビットダウンカウンタ ) は , ロードとカウントのタイ ミングが重複した場合は , ロード動作の方を優先します。 240 第9章 多機能タイマ この章では , 多機能タイマの概要 , レジスタの構成 / 機能 , および動作について説明します。 9.1 多機能タイマの概要 9.2 多機能タイマのレジスタ 9.3 多機能タイマの動作 241 第 9 章 多機能タイマ 9.1 多機能タイマの概要 多機能タイマは 16 ビットのアップカウンタ 4 チャネルで構成されています。この節 では , 多機能タイマの概要について説明します。 ■ 多機能タイマの概要 多機能タイマの機能には , 以下の特長があります。 • ローパスフィルタにより設定クロック以下のノイズを除去 • 7 種類のクロック信号を使った細かい設定によるパルス幅計測が可能 • 端子入力からのイベントカウント機能 • 7 種類のクロックおよび , 外部入力クロックを使用したインターバルタイマ機能 ■ レジスタ一覧 図 9.1-1 レジスタ一覧 bit 15 0000F0H 0000F2H 0000F4H 0000F6H 0000F8H 0000FAH 0000FCH 0000FEH 000100H 000102H 000104H 000106H 000108H 00010AH 00010CH 00010EH 000110H 242 8 7 0 (R/W) T0LPCR T0CCR (R/W) T0TCR T0R T0DRR (R/W) (R/W) T0CRR T1LPCR T1CCR (R/W) T1TRR T1R (R/W) (R/W) T1DRR (R/W) T1CRR T2LPCR T2CCR (R/W) T2TRR T2R (R/W) T2DRR (R/W) T2CRR (R/W) T3LPCR T3CCR (R/W) T3TRR T3R (R/W) (R/W) T3DRR (R/W) T3CRR アクセス禁止 TTEST 第 9 章 多機能タイマ ■ ブロックダイヤグラム 図 9.1-2 ブロックダイヤグラム CLKP TO C CKI CK 16 bit Counter CNT CPIB EN CLR CPIA LPF CLKP OUT 243 第 9 章 多機能タイマ 9.2 多機能タイマのレジスタ この節では , 多機能タイマで使用するレジスタの構成 , および機能について説明しま す。 ■ TxLPCR ( ローパスフィルタ制御レジスタ ) 図 9.2-1 TxLPCR ( ローパスフィルタ制御レジスタ ) のビット構成 bit TxLPCR 0000F0H アドレス 0000F8H 000100H 000108H 15 14 13 12 11 10 9 8 初期値 FCx1 FCx0 FxEN R/W R/W 00000000B R/W TxLPCR は , 各入力端子に対するローパスフィルタ の設定を行います。8 ビットでのア クセスが可能なレジスタです。本フィルタは論理的にノイズを除去している関係上 , ノ イズ除去幅 +2 サイクル分だけ入力波形に対して出力波形はディレイを持ちます。 [bit15 ∼ bit11](reserved) 未使用ビットです。書込みは無視 , リード値は常に "0" です。 [bit10, bit9]FCx1, FCx0 ( フィルタクロック選択フラグ ) : LPF の動作クロックを選択します。 表 9.2-1 動作クロック選択 FCx1 FCx0 0 0 0.2 µs [ 初期値 ] 0 1 0.4 µs 1 0 0.8 µs 1 1 1.6 µs ノイズ除去幅 (@20.27 MHz) [bit8 ]FxEN( フィルタ動作許可フラグ ): フィルタを使用するかしないかの設定をします。 0: フィルタを使用しません。〔初期値〕 1: フィルタを使用します。 244 第 9 章 多機能タイマ ■ TxCCR ( キャプチャ制御レジスタ ) 図 9.2-2 TxCCR ( キャプチャ制御レジスタ ) のビット構成 bit TxCCR 0000F1H アドレス 0000F9H 000101H 000109H 7 6 CPF R/0 5 4 3 2 1 0 CPST CPED CPIE CPOV CPMD CPIS R/W R/W R/W R/0 R/W 初期値 00000000B R/W TxCCR は , キャプチャモード時のカウント , エッジ , 割込みの設定を行います。 8 ビットでのアクセスが可能なレジスタです。動作中 ( 全体レジスタの ST=1) に本レジ スタ書き換えた場合 , タイマの動作は保証できません , 必ず停止状態 (ST= 0) で書き換 えてください。 [bit7]CPF( キャプチャエッジ検出フラグ ): キャプチャ終了エッジを検出したことを示します。 0 : キャプチャエッジなし。〔初期値〕 1 : キャプチャエッジあり。 本ビットへの "1" 書込みは無効です。 ( 注意事項 ) 本フラグへのハードと CPU からの同時書込みはハードからの書込みが優先します。 [bit6](reserved) 未使用ビットです。書込みは無視 , リード値は常に "0" です。 [bit5]CPST( キャプチャ開始エッジ選択フラグ ): キャプチャ開始エッジの極性を設定します。 0 : 立ち上りエッジ。〔初期値〕 1 : 立ち下りエッジ。 [bit4]CPED( キャプチャ終了エッジ選択フラグ ): キャプチャ終了エッジの極性を設定します。 0 : 立ち上りエッジ。〔初期値〕 1 : 立ち下りエッジ。 [bit3]CPIE( キャプチャ割込み許可フラグ ): キャプチャ終了を要因とした割込みの許可をします。 0 : キャプチャ割込み禁止。〔初期値〕 1 : キャプチャ割込み許可。 本ビットが 1 のときに CPF=1 となると CPU に対して割込みを発生します。 245 第 9 章 多機能タイマ [bit2]CPOV( キャプチャオーバフロー検出フラグ ): キャプチャモードのフリーランモードにてカウンタが FFFFH から 0000H へのオー バフローを検出したことを示します。 0 : キャプチャオーバフローなし。〔初期値〕 1 : キャプチャオーバフローあり。 ( 注意事項 ) • 本ビットへの "1" 書込みは無効です。 • 本フラグへのハードと CPU からの同時書込みはハードからの書込みが優先します。 [bit1]CPMD( キャプチャカウントモードフラグ ): キャプチャカウンタのカウントモードを設定します。 0 : フリーランモード 〔初期値〕 1 : 上限コンペアモード [bit0]CPIS( キャプチャ入力選択フラグ ): キャプチャ用の入力信号を選択します。 0 : CPIA 入力使用 1 : CPIB 入力使用 246 〔初期値〕 第 9 章 多機能タイマ ■ TxTCR ( タイマ設定レジスタ ) 図 9.2-3 TxTCR ( タイマ設定レジスタ ) のビット構成 bit TxTCR 0000F2H アドレス 0000FAH 000102H 00010AH 15 14 13 TCF TSES TCC R/0 R/W R/W 12 11 10 9 8 TIE CINV TCS2 TCS1 TCS0 R/W R/W R/W R/W 初期値 00000000B R/W TxTCR レジスタはタイマの動作を制御します。8 ビットでのアクセスが可能なレジス タです。 動作中 ( 全体レジスタの ST=1) に本レジスタ書き換えた場合 , タイマの動作は保証でき ません。必ず停止状態 (ST= 0) で書き換えてください。 [bit15]TCF( タイマコンペア一致検出フラグ ): タイマのコンペア一致を検出したことを示します。 0 : コンペア一致なし。〔初期値〕 1 : コンペア一致あり。 ( 注意事項 ) • 本ビットへの "1" 書込みは無効です。 • 本フラグへのハードと CPU からの同時書込みはハードからの書込みが優先します。 [bit14]TSES( タイマスタトエッジ選択フラグ ) タイマのスタートエッジの設定を行います。 0 : 立ち上りエッジ〔初期値〕 1 : 立ち下りエッジ [bit13]TCC( タイマカウントクリア設定フラグ ): タイマがコンペア一致をしたときにカウンタをクリアする設定をします。 0 : カウントクリアあり。〔初期値〕 1 : カウントクリアなし。 [bit12]TIE( タイマ割込み許可フラグ ): タイマ割込みを許可します。 0 : タイマ割込み禁止。〔初期値〕 1 : タイマ割込み許可。 本ビットが "1" のときに TCF=1 となると CPU に対して割込みを発生します。 247 第 9 章 多機能タイマ [bit11]CINV( タイマクロック反転フラグ ): 外部端子からのタイマ入力のクロックを反転します。 0 : クロック立ち上りでカウントアップ 〔初期値〕 1 : クロック立ち下りでカウントアップ [bit10 ∼ bit8]TCS2 ∼ TCS0( タイマクロック選択フラグ ): タイマクロックを選択します。 ( 注意事項 ) イベントカウントモードを使用するときは本ビットを "111" に設定してください。 TCS bit 248 選択クロック , ソース TCS2 TCS1 TCS0 分周比 周期 (@20.27 MHz) 0 0 0 φ x 23 0.4 µs 0 0 1 φ x 25 1.6 µs 0 1 0 φ x 27 6.3 µs 0 1 1 φ x 29 25.3 µs 1 0 0 φ x 210 50.5 µs 1 0 1 φ x 212 202.1 µs 1 1 0 φ x 214 808.3 µs 1 1 1 外部クロック 第 9 章 多機能タイマ ■ TxR ( タイマ全体制御レジスタ ) 図 9.2-4 TxR ( タイマ全体制御レジスタ ) のビット構成 bit TxR 0000F3H アドレス 0000FBH 000103H 00010BH 7 6 5 4 3 2 1 TST2 TST1 MD1 MD0 R/W R/W R/W R/W 0 初期値 ST 00000000B R/W TxR レジスタはタイマの全体動作制御を制御します。 8 ビットでのアクセスが可能なレジスタです。 [bit7 ∼ bit5](reserved) 未使用端子です。書込みは無視 , リード値は常に "0" です。 [bit4, bit3]TST2, TST1( テストビット ) 常に "0" を書き込んでください。 [bit2, bit1 ]MD1, MD0 ( タイマ選択フラグ ): タイマ動作を選択します。 MD1 MD0 0 0 インターバルタイマ ( 初期値 ) 0 1 イベントカウント 1 0 キャプチャ 1 1 設定禁止 選択モード [bit0]ST( タイマ動作開始フラグ ) 0 : タイマ動作を禁止します。〔初期値〕 1 : タイマ動作を許可します。 ST= 0 にする前には CPIE および TIE を "0" に設定してください。 ST= 0 になるのと同時に割込み要因が発生した場合は ST= 0 でありながら割込みが 発生してしまいます。 249 第 9 章 多機能タイマ ■ TxDRR ( タイマコンペアデータレジスタ ) 図 9.2-5 TxDRR ( タイマコンペアデータレジスタ ) のビット構成 bit 15 14 TxDRR 0000F4H D15 D14 アドレス 0000FCH 000104H R/W R/W 00010CH 7 6 bit D7 D6 R/W R/W 13 12 11 10 9 8 D13 D12 D11 D11 D9 D8 R/W R/W R/W R/W R/W 5 4 3 2 1 0 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W 初期値 不定 R/W 初期値 不定 R/W 本レジスタは , タイマのコンペアデータを格納するレジスタです。このレジスタのデー タとタイマカウンタの値を比較しコンペア一致を出力します。 したがって , タイマモードに於いてはインターバル時間を設定し , 外部イベントモード ではイベント回数を設定して使用してください。また , キャプテャモードに於いてはカ ウント上限値を入力します。本レジスタの 8 ビットアクセスは禁止です。本レジスタ に 0 を設定すると , 216 カウントします。 ■ TxCRR ( キャプチャデータレジスタ ) 図 9.2-6 TxCRR ( キャプチャデータレジスタ ) のビット構成 bit 15 14 TxCRR 0000F6H D15 D14 アドレス 0000FEH 000106H R/W R/W 00010EH bit 7 6 D7 D6 R/W R/W 13 12 11 10 9 8 D13 D12 D11 D11 D9 D8 R/W R/W R/W R/W R/W R/W 5 4 3 2 1 0 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W 本レジスタは , キャプチャの値を読み出すレジスタです。 本レジスタに書き込むことで初期値を入れることも可能です。 本レジスタの 8 ビットアクセスは禁止です。 250 R/W 初期値 不定 初期値 不定 第 9 章 多機能タイマ ■ TTEST ( テスト用レジスタ ) 図 9.2-7 TTEST ( テスト用レジスタ ) のビット構成 bit TTEST 000110H アドレス bit 15 14 13 12 11 10 9 8 D15 D14 D13 D12 D10 D11 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W 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 本レジスタは , テスト専用レジスタです。アクセスしないでください。 251 第 9 章 多機能タイマ 9.3 多機能タイマの動作 本タイマはインターバルタイマ , イベントカウント , キャプチャモードの 3 種類の動 作モードを持ちます。 以下に各モードの動作概要を説明します。本モジュールのトグル出力はどのモード においても初期値は "0" です。 ■ インターバルタイマモード インターバルタイマモードにおいては 7 種類のクロックソースから選択されたクロッ クを用いてタイマカウントを行い , トグル出力を行い , またコンペアレジスタ値と一致 した場合に割込みを発生する機能があります。動作状態を下図に示します。 図 9.3-1 インターバルタイマモードの動作状態 0xFFFF 0x0000 252 第 9 章 多機能タイマ ■ イベントカウントモード 端子入力のエッジ検出を行いその回数にてカウントを行うモードです。 カウンタの値がコンペアレジスタと一致すると TCF が 1 となりその際に TIE=1 だと割 込みを発生します。コンペア一致したときにカウンタをクリアできます。 図 9.3-2 イベントカウントモードの動作状態 0 4 1 2 3 4 3 ■ キャプチャモード 外部端子入力のエッジからエッジまでの幅を計測できます。計測用のクロックは 7 種 類から選択でき , 開始 , 終了エッジは立ち上がりおよび立下りのどちらかを選択できま す。キャプチャの値は , フリーランモードでは終了エッジが来たときのカウント値が キャプチャされ , 上限値コンペアモードでは終了エッジが来る前に上限値コンペア値 と一致した場合は上限値が , 一致しなかった場合は終了エッジのときのキャプチャ値 が入力されます。下記にフリーランモードの場合における , 立ち上がりエッジでカウン ト開始 , 立下りエッジで終了の場合の例を示します。 図 9.3-3 キャプチャモードでの立上り・立下りの例 0xFFFF 0x0000 xxxx 7777 253 第 9 章 多機能タイマ ■ ローパスフィルタについて 本モジュールには外部端子入力ごとに 1 つづつのローパスフィルタが内蔵されていま す。 本フィルタに於いて , 4 種類の幅にてノイズの除去を論理的に行うことが可能です。 図 9.3-4 ローパスフィルタでのノイズ除去 0 1 0 254 0 1 2 2 1 0 2 1 0 1 1 0 1 0 2 第 10 章 16 ビットパルス幅カウンタ この章では , 16 ビットパルス幅カウンタの概要 , レジスタの構成 / 機能 , および動作について説明し ます。 10.1 16 ビットパルス幅カウンタの概要 10.2 16 ビットパルス幅カウンタのレジスタ 10.3 16 ビット幅パルスカウンタの動作 255 第 10 章 16 ビットパルス幅カウンタ 10.1 16 ビットパルス幅カウンタの概要 16 ビットパルス幅カウンタは , 外部からの入力信号のパルス幅を 16 ビットのアップ カウンタで測定するカウンタです。 ■ 16 ビットパルス幅カウンタ PWC は外部からの入力信号のパルス幅を 16 ビットのアップカウンタで測定します。 ハードウェアとして , 16 ビットアップカウンタ 1 個 , 8 ビット制御レジスタ 3 個と , PWC データレジスタ , PWC 上限データレジスタ , LPF などから構成されています。 • データレジスタ転送時に割込み要求を発生 ■ レジスタ構成 図 10.1-1 レジスタ一覧 アドレス 000090H 000094H 000098H 00009CH bit 15 8 7 0 PWCCL PWCCH PWCD PWCC2 Reserve PWCUD PWC制御レジスタ PWCデータレジスタ PWC制御レジスタ PWC上限データレジスタ ■ ブロックダイヤグラム 図 10.1-2 ブロックダイヤグラム 上限値レジスタ カウントクロック サンプリング間隔 カウントクロック カウントクリア LPF PMI オーバフロー 上限値 5 キャプチャレジスタ 制御回路 4 制御 ビット フラグセット PWCD サンプリング間隔選択 カウントクロック選択 PWCCH PWCCL IRQ 内部バス 256 16ビットカウンタ 第 10 章 16 ビットパルス幅カウンタ 10.2 16 ビットパルス幅カウンタのレジスタ この節では , 16 ビットパルス幅カウンタで使用するレジスタの構成 , および機能に ついて説明します。 ■ PWC 制御レジスタ (PWCCL) 図 10.2-1 PWC 制御レジスタ (PWCCL) のビット構成 bit PWCCL 7 INT ( R/W ) 6 INTE ( R/W ) 5 OVFL ( R/W ) 4 OVFLE ( R/W ) 3 2 1 0 ST (R/W) 初期値 0000--00B [bit7]:INT PWC データレジスタにキャプチャデータを転送したことを示すフラグです。キャ プチャデータ転送割込み要求が許可されている時 , (bit6:INTE=1) 本ビットがセット されると割込み要求が発生します。 リードモディファイライト系命令では "1" がリードされます。 0 割込み要因クリア 1 キャプチャ・データあり [bit6]:INTE キャプチャデータ転送割込み要求許可ビットです。 0 割込み要求禁止 1 割込み要求許可 [bit5] :OVFL 16 ビットアップカウンタが FFFFH から 0000H へオーバフローしたことを示すフラ グですオーバフロー割込み要求が許可されている時 , (bit4:OVFLE=1) 本ビットが セットされると割込み要求が発生します。 リードモディファイライト系命令では "1" がリードされます。 0 割込み要因クリア 1 オーバフロー発生 [bit4]:OVFLE オーバフロー割込み要求許可ビットです。 0 割込み要求禁止 1 割込み要求許可 257 第 10 章 16 ビットパルス幅カウンタ [bit3, bit2]: 未使用ビットです。 [bit1]:Reserved 予約ビットです。ライト時は必ず "0" を書いてください。 [bit0]:ST PWC スタート・ビットです。 0 PWC 停止 1 PWC 動作 ( 注意事項 ) 本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく ださい。 258 第 10 章 16 ビットパルス幅カウンタ ■ PWC 制御レジスタ (PWCCH) 図 10.2-2 PWC 制御レジスタ (PWCCH) のビット構成 bit 7 PWCCH TEST1 (R/W) 6 TEST0 (R/W) 5 ( 4 CSLF1 (R/W) ) 3 CSLF0 (R/W) 2 CS2 (R/W) 1 CS1 (R/W) 0 CS0 (R/W) 初期値 00-00000B [bit7, bit6]:TEST1, TEST0 テスト・ビットです。 "1" を書込み禁止 [bit5]: 未使用ビットです。 [bit4, bit3]:CSLF1, CSLF0 LPF のサンプリング間隔を以下から選択します。 CSLF1 CSLF0 サンプリング間隔 0 0 φ × 26 0 1 φ × 28 1 0 φ × 210 1 1 φ × 212 (φ はシステムベースクロックの周期 ) [bit2, bit1, bit0]:CS2, CS1, CS0 内部カウントクロックを以下のように選択します。 CS2 ∼ CS0 カウントクロック選択 0 0 0 φ 0 0 1 φ × 26 0 1 0 φ × 28 0 1 1 φ × 210 1 0 0 φ × 212 (φ はシステムベースクロックの周期 ) ( 注意事項 ) 本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく ださい。 259 第 10 章 16 ビットパルス幅カウンタ ■ PWC・データ・レジスタ (PWCD) 図 10.2-3 PWC・データ・レジスタ (PWCD) のビット構成 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 (R) (R) (R) (R) (R) (R) (R) (R) PWCD bit PWCD 初期値 XXXX XXXXB 初期値 XXXX XXXXB パルス幅の計測値を格納するレジスタです。入力信号のエッジでのみキャプチャ値を 取り込みます。 オーバフロー時と上限値を越したときは取り込みません。 ( 注意事項 ) 本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく ださい。 260 第 10 章 16 ビットパルス幅カウンタ ■ PWC 制御レジスタ 2(PWCC2) 図 10.2-4 PWC 制御レジスタ 2(PWCC2) のビット構成 7 bit PWCC2 UPINT ( R/W ) 6 UPINTE ( R/W ) 5 LOW ( R/W ) 4 3 2 1 0 初期値 000-----B [bit7]:UPINT 設定した上限値レジスタの値までカウントしたことを示すフラグです。上限値割込 み要求が許可されている時 , (bit6:UPINTE=1) 本ビットがセットされると割込み要求 が発生します。 リードモディファイライト系命令では "1" がリードされます。 0 割込み要因クリア ( 初期値 ) 1 上限値オーバカウントあり [bit6]:UPINTE 上限値割込み要求許可ビットです。本ビットに "1" が設定されているとカウンタ値 と上限設定レジスタとの比較を行います。 0 割込み要求禁止 ( 初期値 ) 1 割込み要求許可 [bit5] :LOW データレジスタに入っているキャプチャ値が LOW 幅を示すことを表します。 0 HIGH 幅測定終了 ( 初期値 ) 1 LOW 幅測定終了 ( 注意事項 ) 本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく ださい。 261 第 10 章 16 ビットパルス幅カウンタ ■ PWC・上限値設定レジスタ (PWCUD) 図 10.2-5 PWC・上限値設定レジスタ (PWCUD) のビット構成 bit PWCUD bit PWCUD 15 14 13 12 11 10 9 8 ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) 7 6 5 4 3 2 1 0 ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) ( R/W ) 初期値 XXXX XXXXB 初期値 XXXX XXXXB パルス幅測定の上限値を格納するレジスタです。 本レジスタは各幅に対応しますので , H 幅 , L 幅にかかわらず上限値を越したパルスを 測定しますと , PWCC2 レジスタの UPINT ビットがセットされます。また , 本レジスタ をカウンタ値が越した場合でもカウントは連続して行われ , 停止しません。 また , 本レジスタの初期値は不定ですので , PWCC2 レジスタの UPINTE ビットに "1" を書いて上限値比較をする前に上限値をライトしてください。 ( 注意事項 ) 本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく ださい。 262 第 10 章 16 ビットパルス幅カウンタ 10.3 16 ビット幅パルスカウンタの動作 PWC は 16 ビットアップカウンタ , 8 ビット制御レジスタ 3 個 , PWC データレジス タ , 上限値設定レジスタ , LPF などから構成され , パルス幅を測定します。また , カ ウントクロックは , 5 種類から選択可能です。 ■ パルス幅カウント動作 PWC は , PMI 信号の立上りおよび , 立下りエッジでカウンタ値のキャプチャとカウン タのクリアを行います。クリアされたカウンタは , そのままカウント動作を継続しま す。またキャプチャを行うと , 割込みを発生します。 カウンタ値が "FFFFH" から "0000H" になるとオーバフローによる割込みを発生します。 図 6-11-2. にこれらの動作を示します。 図 10.3-1 PWC 動作図 ST (動作許可) 上限値割込みをセットする がキャプチャはしない PMI入力 エッジ エッジ FFFFH 上限値 mmmH カウント値 0000H PWCD xxxxH aaaaH bbbbH ccccH ddddH eeeeH INT UPINT OVFL LOW ( 注意事項 ) 動作許可後 (ST=1) の最初のエッジでは , キャプチャはしません。 263 第 10 章 16 ビットパルス幅カウンタ ■ カウントクロックの選択 カウンタのカウントクロックは , 5 種類から選択できます。 選択できるカウントクロックは , 以下のとおりです。 表 10.3-1 カウントクロックの選択 CS2 CS1 CS0 カウントクロック選択 PLL4 逓倍 (40MHz) PLL オフ ( 原振 10MHz) 0 0 0 CLKP 50ns 200ns 0 0 1 φ × 26 *1 1.6µs 6.3µs 0 1 0 φ × 28 *1 6.3µs 25.3µs 0 1 1 φ × 210 *1 25.3µs 101.0µs 1 0 0 φ × 212 *1 101.0µs 404.1µs (CLKP は周辺クロック , φ はシステムベースクロックの周期 ) ■ LPF のサンプリング間隔について LPF のサンプリング間隔を以下の設定から選択できます。 表 10.3-2 LPF のサンプリング間隔 CSLF1 CSLF0 サンプリング間隔 0 0 φ × 26 0 1 1 1 PLL4 逓倍 (40MHz) PLL オフ ( 原振 10MHz) * 1.6µs 6.3µs φ × 28 * 6.3µs 25.3µs 0 φ × 210 * 25.3µs 101.0µs 1 φ × 212 * 101.0µs 404.1µs (φ はシステムベースクロックの周期 ) *: 設定時の注意 PWC の動作クロックは , CLKP です。カウントクロック , LPF のサンプリングクロッ クは φ で動作します。 よって PWC の動作クロックよりカウントクロック , LPF のサンプリングクロック のほうが早いと正しく動作しません。 周期 : PWC の動作クロック× 4 <カウントクロック PWC の動作クロック× 4 < LPF のサンプリングクロック の条件を守ってください。 例 :CLKP 20MHz 時 : 50ns × 4 <カウントクロック (φ × 26:1.6µs) 問題なし 264 CLKP 10MHz 時 100ns × 4 <カウントクロック (φ × 26:1.6µs) 問題なし CLKP 5MHz 時 200ns × 4 <カウントクロック (φ × 26:1.6µs) 問題なし CLKP 0.3MHz 時 3300ns × 4 <カウントクロック (φ × 26:1.6µs) 設定禁止 第 10 章 16 ビットパルス幅カウンタ 図 10.3-2 LPF の動作 Lが除去されます Hが除去されます 入力信号 サンプリングクロック LPF出力 Hが除去されます Lが除去されます 入力信号 サンプリングクロック LPF出力 ■ 割込み要求発生 以下の 3 つの割込み要求を発生することが可能です。 ● キャプチャデータ転送よる割込み要求 PWC データレジスタにキャプチャデータを転送すると割込みフラグがセットされ , 割 込み要求が許可されていると割込み要求が発生します。 ● カウンタのオーバフローによる割込み要求 測定中 , カウンタ値が "FFFFH" から "0000H" へオーバフローするとオーバフローフラグ がセットされ , 割込み要求が許可されていると割込み要求が発生します。 オーバフローではキャプチャはしません。 ● カウンタ中の上限値レジスタを超えてカウントした場合の割込み要求 測定中 , カウンタ値が上限設定レジスタの値より大きくなった場合上限フラグがセッ トされ , 割込み要求が許可されていると割込み要求が発生します。 265 第 10 章 16 ビットパルス幅カウンタ 266 第 11 章 割込みコントローラ この章では , 割込みコントローラの概要 , レジスタ の構成 / 機能 , 割込みコントローラの動作 , および ホールドリクエスト取下げ要求機能の使用例につ いて説明します。 11.1 割込みコントローラの概要 11.2 割込みコントローラのレジスタ 11.3 割込みコントローラの動作 11.4 ホールドリクエスト取り下げ要求機能 (HRCR) の 使用例 267 第 11 章 割込みコントローラ 11.1 割込みコントローラの概要 割込みコントローラは , 割込み受付 / 調停処理をつかさどります。 ■ ハードウェア構成 本モジュールは , 以下のものより構成されます。 • ICR レジスタ • 割込み優先度判定回路 • 割込みレベル , 割込み番号 ( ベクタ ) 発生部 • HOLD リクエスト取り下げ要求発生部 ■ 主要機能 本モジュールには , 主に以下の様な機能があります。 • NMI 要求 / 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み番号伝達 (CPU へ ) • NMI/ 割込みレベルが "11111" 以外の割込み発生によるストップモードからの復帰指 示 (CPU へ ) • バスマスタへの HOLD リクエスト取り下げ要求発生 268 第 11 章 割込みコントローラ ■ レジスタ一覧 図 11.1-1 レジスタ一覧 bit 7 6 5 4 3 2 1 0 : 00000440H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR00 : 00000441H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR01 : 00000442H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR02 : 00000443H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR03 : 00000444H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR04 : 00000445H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR05 : 00000446H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR06 : 00000447H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR07 : 00000448H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR08 : 00000449H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR09 : 0000044AH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR10 : 0000044BH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR11 : 0000044CH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR12 : 0000044DH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR13 : 0000044EH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR14 : 0000044FH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR15 : 00000450H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR16 : 00000451H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR17 : 00000452H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR18 : 00000453H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR19 : 00000454H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR20 : 00000455H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR21 : 00000456H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR22 : 00000457H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR23 : 00000458H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR24 : 00000459H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR25 : 0000045AH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR26 : 0000045BH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR27 : 0000045CH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR28 : 0000045DH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR29 : 0000045EH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR30 : 0000045FH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR31 R R/W R/W R/W R/W 269 第 11 章 割込みコントローラ bit 7 6 5 : 00000460H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR32 : 00000461H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR33 : 00000462H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR34 : 00000463H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR35 : 00000464H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR36 : 00000465H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR37 : 00000466H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR38 : 00000467H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR39 : 00000468H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR40 : 00000469H -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR41 : 0000046AH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR42 : 0000046BH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR43 : 0000046CH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR44 : 0000046DH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR45 : 0000046EH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR46 : 0000046FH -- -- -- ICR4 ICR3 ICR2 ICR1 ICR0 ICR47 R R/W R/W R/W R/W MHALTI R/W -- -- LVL4 LVL3 LVL2 LVL1 LVL0 HRCL R R/W R/W R/W R/W : 0000045H 4 3 2 ■ ブロックダイヤグラム 図 11.1-2 ブロックダイヤグラム 270 1 0 第 11 章 割込みコントローラ 11.2 割込みコントローラのレジスタ この節では , 割込みコントローラのレジスタ構成 , および機能について説明します。 ■ ICR(Interrupt Control Register) 図 11.2-1 ICR(Interrupt Control Register) のビット構成 bit 7 6 5 -- -- -- 4 3 2 1 ICR4 ICR3 ICR2 R R/W R/W 0 ICR1 ICR0 R/W 初期値 ---11111B R/W 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割 込み要求の割込みレベルを設定します。 [bit4 ∼ bit0] ICR4 ∼ ICR0 割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。 本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。 リセットにより , "11111B" に初期化されます。 設定可能な割込みレベル設定ビットと割込みレベルの対応を表 11.2-1 に示します。 表 11.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応 ICR4 * ICR3 ICR2 ICR1 ICR0 割込みレベル 0 0 0 0 0 0 0 1 1 1 0 14 0 1 1 1 1 15 NMI 1 0 0 0 0 16 設定可能な最強レベル 1 0 0 0 1 17 1 0 0 1 0 18 1 0 0 1 1 19 1 0 1 0 0 20 1 0 1 0 1 21 1 0 1 1 0 22 1 0 1 1 1 23 1 1 0 0 0 24 1 1 0 0 1 25 1 1 0 1 0 26 1 1 0 1 1 27 1 1 1 0 0 28 1 1 1 0 1 29 1 1 1 1 0 30 1 1 1 1 1 31 システム予約 (強) (弱) 割込み禁止 * : ICR4 は "1" 固定で , "0" を書き込むことはできません。 271 第 11 章 割込みコントローラ ■ HRCL(Hold Request Cancel Level register) 図 11.2-2 HRCL(Hold Request Cancel Level register) のビット構成 bit 7 アドレス: 00000045H MHALTI R/W 6 5 -- -- 4 3 2 1 0 LVL4 LVL3 LVL2 LVL1 LVL0 R R/W R/W R/W 初期値 0--11111B R/W ホールドリクエスト取り下げ要求発生のためのレベル設定レジスタです。 [bit7] MHALTI MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1" にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後 で通常の割込みルーチンと同様にクリアしてください。 [bit4 ∼ bit0] LVL4 ∼ LVL0 バスマスタへのホールドリクエスト取り下げ要求を出すための割込みレベルを設 定します。 本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した 場合は , バスマスタに対してホールドリクエスト取り下げ要求を出します。 LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。 272 第 11 章 割込みコントローラ 11.3 割込みコントローラの動作 この節では , 割込みコントローラの動作の , 以下の項目について説明します。 • 優先順位判定 • NMI • ホールドリクエスト取下げ要求 • スタンバイモード ( ストップ / スリープ ) からの復帰 ■ 優先順位判定 本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選 択し , その要因の割込みレベルと割込み番号を CPU へ出力します。 割込み要因の優先順位判定基準は , 次の通りです。 1. NMI 2. 以下の条件を満たす要因 - 割込みレベルの数値が 31 以外。(31 は割込禁止 ) - 割込みレベルの数値が最も小さい要因。 - その中で , 最も小さい割込番号を持つ要因。 上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし て 31(11111B) を出力します。その時の割込み番号は不定です。 割込み要因と割込み番号 , 割込みレベルの関係をに示します。 下表の内容は 実際の製品とは異なります 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 4) 割込み番号 割込み要因 割込みレベ ル オフ セット TBR のデ フォルトア ドレス RN 10 進 16 進 リセット 0 00 − 3FCH 000FFFFCH − モードベクタ 1 01 − 3F8H 000FFFF8H − システム予約 2 02 − 3F4H 000FFFF4H − システム予約 3 03 − 3F0H 000FFFF0H − システム予約 4 04 − 3ECH 000FFFECH − システム予約 5 05 − 3E8H 000FFFE8H − システム予約 6 06 − 3E4H 000FFFE4H − コプロセッサ不在トラップ 7 07 − 3E0H 000FFFE0H − コプロセッサエラートラップ 8 08 − 3DCH 000FFFDCH − INTE 命令 9 09 − 3D8H 000FFFD8H − 273 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 4) 割込み番号 割込み要因 割込みレベ ル オフ セット TBR のデ フォルトア ドレス RN 10 進 16 進 命令ブレーク例外 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 6 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 7 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H 11 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H 12 外部割込み 4 (USB-function) 20 14 ICR04 3ACH 000FFFACH 13 外部割込み 5 (USB-Host) 21 15 ICR05 3A8H 000FFFA8H 14 外部割込み 6 (OSDC) 22 16 ICR06 3A4H 000FFFA4H − 外部割込み 7 (MS-IF) 23 17 ICR07 3A0H 000FFFA0H − リロードタイマ 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 UART1 ( 受信完了 ) 28 1C ICR12 38CH 000FFF8CH 1 UART2 ( 受信完了 ) 29 1D ICR13 388H 000FFF88H 2 UART0 ( 送信完了 ) 30 1E ICR14 384H 000FFF84H 3 UART1 ( 送信完了 ) 31 1F ICR15 380H 000FFF80H 4 UART2 ( 送信完了 ) 32 20 ICR16 37CH 000FFF7CH 5 DMAC0 ( 終了 , エラー ) 33 21 ICR17 378H 000FFF78H − DMAC1 ( 終了 , エラー ) 34 22 ICR18 374H 000FFF74H − DMAC2 ( 終了 , エラー ) 35 23 ICR19 370H 000FFF70H − DMAC3 ( 終了 , エラー ) 36 24 ICR20 36CH 000FFF6CH − DMAC4 ( 終了 , エラー ) 37 25 ICR21 368H 000FFF68H − 274 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 4) 割込み番号 割込み要因 割込みレベ ル オフ セット TBR のデ フォルトア ドレス RN 10 進 16 進 A/D 38 26 ICR22 364H 000FFF64H 15 PPG0 39 27 ICR23 360H 000FFF60H − PPG1 40 28 ICR24 35CH 000FFF5CH − PPG2 41 29 ICR25 358H 000FFF58H − PPG3 42 2A ICR26 354H 000FFF54H − PWC 43 2B ICR27 350H 000FFF50H − システム予約 44 2C ICR28 34CH 000FFF4CH − システム予約 45 2D ICR29 348H 000FFF48H − メイン発振待ち 46 2E ICR30 344H 000FFF44H − タイムベースタイマオーバフロー 47 2F ICR31 340H 000FFF40H − システム予約 48 30 ICR32 33CH 000FFF3CH − 時計タイマ 49 31 ICR33 338H 000FFF38H − I2C ch.0 50 32 ICR34 334H 000FFF34H − I2C ch.1 51 33 ICR35 330H 000FFF30H − I2C ch.2 52 34 ICR36 32CH 000FFF2CH − I2C ch.3 53 35 ICR37 328H 000FFF28H − UART3 ( 受信完了 ) 54 36 ICR38 324H 000FFF24H − UART4 ( 受信完了 ) 55 37 ICR39 320H 000FFF20H − UART3 ( 送信完了 ) 56 38 ICR40 31CH 000FFF1CH − UART4 ( 送信完了 ) 57 39 ICR41 318H 000FFF18H − 多機能タイマ 0 58 3A ICR42 314H 000FFF14H − 多機能タイマ 1 59 3B ICR43 310H 000FFF10H − 多機能タイマ 2 60 3C ICR44 30CH 000FFF0CH − 多機能タイマ 3 61 3D ICR45 308H 000FFF08H − システム予約 62 3E ICR46 304H 000FFF04H − 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H − システム予約 (REALOS にて使用 *1) 64 40 − 2FCH 000FFEFCH − 275 第 11 章 割込みコントローラ 表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (4 / 4) 割込み番号 割込み要因 割込みレベ ル オフ セット TBR のデ フォルトア ドレス RN 10 進 16 進 システム予約 (REALOS にて使用 *1) 65 41 − 2F8H 000FFEF8H − システム予約 66 42 − 2F4H 000FFEF4H − システム予約 67 43 − 2F0H 000FFEF0H − システム予約 68 44 − 2ECH 000FFEECH − システム予約 69 45 − 2E8H 000FFEE8H − システム予約 70 46 − 2E4H 000FFEE4H − システム予約 71 47 − 2E0H 000FFEE0H − システム予約 72 48 − 2DCH 000FFEDCH − システム予約 73 49 − 2D8H 000FFED8H − システム予約 74 4A − 2D4H 000FFED4H − システム予約 75 4B − 2D0H 000FFED0H − システム予約 76 4C − 2CCH 000FFECCH − システム予約 77 4D − 2C8H 000FFEC8H − システム予約 78 4E − 2C4H 000FFEC4H − システム予約 79 4F − 2C0H 000FFEC0H − INT 命令で使用 80 | 255 50 | FF − 2BCH | 000H 000FFEBCH | 000FFC00H − 276 第 11 章 割込みコントローラ ■ NMI(Non Maskable Interrupt) NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま す。 そのため , 他の割込み要因と同時発生の場合は常に NMI が選択されます。 ● NMI が発生すると , CPU に対して次の情報を伝えます。 割込みレベル :15(01111B) 割込み番号 :15(0001111B) ● NMI 検出 NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュールでは NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。 ● NMI による DMA 転送の抑止 NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送が 抑止されます。DMA 転送の抑止を解除したい場合は , NMI ルーチンの最後にて MHALTI ビットを "0" にクリアしてください。 277 第 11 章 割込みコントローラ ■ ホールドリクエスト取り下げ要求 (Hold Request Cancel Request) 優先度の高い割込み処理を , CPU のホールド中に行いたい場合は , ホールドリクエスト 発生元においてリクエストを取り下げてもらう必要があります。この取り下げ要求発 生の基準となる割込みレベルを HRCL レジスタに設定します。 ● 発生基準 HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合 は , ホールドリクエスト取り下げ要求を発生します。 HRCL レジスタの割込みレベル>優先度判定後の割込みレベル→取り下げ要求発生 HRCL レジスタの割込みレベル≦優先度判定後の割込みレベル→取り下げ要求なし 取り下げ要求発生原因となった割込み要因をクリアしない限り , この取り下げ要求は 有効であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応す る割込み要因をクリアしてください。 また , NMI を使用した時は , HRCL レジスタの MHALTI ビットが "1" となっているた め , 取り下げ要求が有効になっています。 ● 設定可能なレベル HRCL レジスタに設定可能な値は , ICR と同様に 10000B から 11111B までです。 11111B に設定した場合は全ての割込みレベルに対して取り下げ要求を発生し , また , 10000B に設定した場合は NMI でのみ取り下げ要求を発生することになります。 ホールドリクエスト取り下げ要求発生となる割込みレベルの設定を表 11.3-2 に示しま す。 表 11.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定 HRCL レジスタ 取り下げ要求発生となる割込みレベル 16 NMI のみ 17 NMI, 割込みレベル 16 18 NMI, 割込みレベル 16, 17 ∼ ∼ 31 NMI, 割込みレベル 16 ∼ 30[ 初期値 ] リセット後は , 全ての割込みレベルに対して DMA 転送を抑止します。すなわち , 割込 みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値に 設定してください。 278 第 11 章 割込みコントローラ ■ スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが 11111 以外 ) が 1 つでも発 生すると , クロック制御部に対してストップモードからの復帰要求を発生します。 優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優 先度判定部の結果が出るまでの間 CPU は命令を実行することになります スリープ状態からの復帰においても , 同様に動作します。 また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。 ( 注意事項 ) • NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効 な入力を検出するように NMI の設定を行ってください。 • ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺 の制御レジスタにて割込みレベルを 11111 にしてください。 279 第 11 章 割込みコントローラ 11.4 ホールドリクエスト取り下げ要求機能 (HRCR) の使用例 DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホール ドリクエスト を取り下げてもらってホールド状態を解除する必要があります。ここ では , 割込みを利用して DMA に対してホールドリクエスト の取り下げ , すなわち , CPU の優先動作を実現します。 ■ 制御レジスタ HRCL( ホールドリクエスト キャンセル レベル 設定レジスタ ): 本モジュール 本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に対してホールドリクエスト 取り下げ要求を発生します。その基準となるレ ベルを設定します。 ICR: 本モジュール 使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し ます。 ■ ハードウェア構成 各信号の流れは , 次のようになっています。 図 11.4-1 各信号の流れ IRQ MHALTI I-UNIT DHREQ DMA B-UNIT CPU (ICR) (HRCL) 280 DHACK DHREQ: D DHACK: D IRQ: MHALTI: 第 11 章 割込みコントローラ ■ シーケンス 図 11.4-2 割込みレベル HRCL < ICR(LEVEL) 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。 多重割込みの場合を , 以下に示します。 図 11.4-3 割込みレベル HRCL < ICR( 割込み I) < ICR( 割込み II) 割込みルーチンの例 ① , ③割込要因クリア ∼ ② , ④ RETI 上記例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した場 合を示しています。HRCL レジスタに設定した割込みレベルより高い割込みレベルが 発生している間は , DHREQ はさがっています。 ■ 注意事項 HRCL レジスタと ICR に設定する割込みレベルの関係には , 充分注意してください。 281 第 11 章 割込みコントローラ 282 第 12 章 外部割込み・NMI 制御部 この章では , 外部割込み /NMI 制御部の概要 , レジ スタの構成 / 機能 , および動作について説明しま す。 12.1 外部割込み /NMI 制御部の概要 12.2 外部割込み /NMI 制御部のレジスタ 12.3 外部割込み /NMI 制御部の動作 283 第 12 章 外部割込み・NMI 制御部 外部割込み /NMI 制御部の概要 12.1 外部割込み制御部は ,NMI および INT0 ∼ INT7 に入力される外部割込み要求の制御 を行うブロックです。 検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下りエッジ " から選 択できます (NMI 以外 ) 。 INT4 ∼ INT7 はチップ内部で USB ホスト・USB ファンクション・OSDC の割込み 要求に接続されています。 ■ レジスタ一覧 図 12.1-1 レジスタ一覧 bit bit bit 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 15 14 13 12 11 10 9 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 5 4 3 2 1 0 LB2 LA2 LB1 LA1 LB0 LA0 bit 7 LB3 6 LA3 (ENIR) (EIRR) 外部割込み許可レジスタ 外部割込み要因レジスタ 8 (ELVR) 要求レベル設定レジスタ ■ ブロックダイヤグラム 図 12.1-2 ブロックダイヤグラム R BUS 8 割込み 要求 割込み許可レジスタ 3 要因 F/F エッジ検出回路 3 INT0~INT3 NMI 8 16 284 ゲート 割込み要因レジスタ 要求レベル設定レジスタ 第 12 章 外部割込み・NMI 制御部 12.2 外部割込み /NMI 制御部のレジスタ この節では , 外部割込み /NMI 制御部で使用するレジスタの構成 , および機能につい て説明します。 ■ 割込み許可レジスタ (ENIR : ENable Interrupt request Register) 図 12.2-1 割込み許可レジスタ (ENIR : ENable Interrupt request Register) のビット構成 bit 7 ENIR アドレス: 000041H EN7 6 5 4 3 2 1 0 EN6 EN5 EN4 EN3 EN2 EN1 EN0 初期値 00000000B [R/W] ENIRn は外部割込み要求出力のマスク制御を行います。このレジスタの "1" を書かれ たビットに対応する割込み要求出力は許可され (INT0 の許可を EN0 が制御 ), 割込みコ ントローラに対して要求が出力されます。"0" が書かれたビットの対応する端子は割込 み要因を保持しますが , 割込みコントローラに対しては要求を発生しません。 NMI に対するマスクビットは , 存在しません。 ■ 外部割込み要因レジスタ (EIRR : External Interrupt Request Register) 図 12.2-2 外部割込み要因レジスタ (EIRR : External Interrupt Request Register) のビット構成 bit 15 EIRR アドレス: 000040H ER7 14 13 12 11 10 9 8 ER6 ER5 ER4 ER3 ER2 ER1 ER0 初期値 00000000B [R/W] EIRRn は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの 要求を示すフリップフロップ (NMI フラグ ) 内容をクリアするレジスタです。この EIRR レジスタを読み出した時に "1" であった場合 , そのビットに対応する端子に外部割込み 要求があることを示します。 また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク リアされます。 "1" の書込みは無効です。 リード・モディファイ・ライトのリード時には "1" が読まれます。 NMI フラグは , ユーザからリード / ライトできません。 ( 参照 ) NMI フラグについては , 図 12.3-4 を参照してください。 285 第 12 章 外部割込み・NMI 制御部 ■ 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) 図 12.2-3 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) のビット構成 ELVRn は要求検出の選択を行うレジスタです。INT0 ∼ INT15 に 2 ビットづつが割当 てられていて , 以下のような設定になります。要求入力がレベルの場合 , EIRR の各ビッ トをクリアしても入力がアクティブレベルならば該当するビットは再びセットされま す。 表 12.2-1 ELVR 割り当て表 LBx LAx 動作 00 L レベルで要求あり 01 H レベルで要求あり 10 立上りエッジで要求あり 11 立下りエッジで要求あり NMI は常にその立下りエッジが検出されます ( ストップ時を除く )。 ストップ時は , L レベル検出となります。 INT はストップ時 , H レベル検出にしてください。 <注意事項> 外部割込み要求レベルを変更すると , 内部で割込み要因が発生する場合がありますので , 外部割込み要求レベル変更後に外部割込み要因レジスタ (EIRR) をクリアしてください。 外部割込み要因レジスタをクリアする際はいったん , 外部割込み要求レベルレジスタを読 み出してからクリアの書き込みを行ってください。 286 第 12 章 外部割込み・NMI 制御部 12.3 外部割込み /NMI 制御部の動作 要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された 要求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号 を発生します。 ■ 外部割込みの動作について 割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本リソース からの割込みが最も優先順位が高かったときに , 該当する割込みが発生します。 図 12.3-1 外部割込みの動作 ■ スタンバイからの復帰について クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要 求は H レベル要求となります。 エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。 ■ 外部割込みの動作手順について 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。 3. 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。 4. 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。 5. 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアする。 6. 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。 ( ただし , 5. と 6. は 16 ビットデータによる同時書込み可 ) 本モジュール内のレジスタを設定するときには必ず許可レジスタを禁止状態に設定し ておかなくてはなりません。また , 許可レジスタを許可状態にする前に必ず要因レジス タをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に 誤って割込み要因が起こってしまうことを避けるためです。 287 第 12 章 外部割込み・NMI 制御部 ■ 外部割込み要求レベルについて 1. 要求レベルがエッジ要求の時 , エッジがあったことを検出するためには , パルス幅 は最小 3 マシンサイクル ( 周辺クロックマシンサイクル ) 必要とします。 2. 要求入力レベルがレベル設定の時 , 外部より要求入力が入ってその後取り下げられ ても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティ ブのままです。 割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり ます。 図 12.3-2 レベル設定時の要因保持回路のクリア 図 12.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求 288 第 12 章 外部割込み・NMI 制御部 ■ NMI 1. NMI は , ユーザ割込みの中で最強の割込みで , マスクすることは , 不可能です。例外 として , リセット直後から ILM を設定するまではマスクされます。 2. NMI の受け付けは下記の通りです。 - 通常時 : 立下りエッジ - STOP 時 : "L" レベル 3. NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力 されるとストップ状態が解除され発振安定待ち時間が取られます。 の発振安定待ち時間内に NMI 端子を "H" レベルに戻すと NMI 要因がなくなってし まい動作再開後 NMI 処理が行われません。ストップ状態解除後に NMI 処理を行い たい場合は , NMI 端子を "L" レベルのままにして , NMI 処理ルーチン内で "H" レベ ルに戻すようにしてください。 NMI 要求検出部は NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割込み の受付け , もしくは , リセットでのみクリアされます。なお , このビットはリード / ラ イトできません。 図 12.3-4 NMI 要求検出 (NMIフラグ) NMI要求 Q SX (ストップ解除) R 0 立下り エッジ検出 NMI 1 ストップ φ クリア (RST,interrupt acknowledge) 289 第 12 章 外部割込み・NMI 制御部 290 第 13 章 REALOS 関連ハード この章では , REALOS 関連ハードの , 遅延割込み モジュールとビットサーチモジュールについて説 明します。REALOS 関連ハードは , リアルタイム OS により使用されます。 したがって , REALOS を使用する場合にはユーザ プログラムで使用できません。 13.1 遅延割込みモジュール 13.2 遅延割込みモジュールのレジスタ 13.3 遅延割込みモジュールの動作 13.4 ビットサーチモジュール 13.5 ビットサーチモジュールのレジスタ 13.6 ビットサーチモジュールの動作 291 第 13 章 REALOS 関連ハード 13.1 遅延割込みモジュール 遅延割込みモジュールは , タスク切り換え用の割込みを発生するためのモジュール です。 本モジュールを使用することで , ソフトウェアで CPU に対して割込要求の発生 / 取 消しを行うことができます。 ■ レジスタ一覧 図 13.1-1 レジスタ一覧 bit 7 6 5 4 3 アドレス: 00000044H 2 1 0 DLYI [R/W] ■ ブロックダイヤグラム 図 13.1-2 ブロックダイヤグラム 292 DICR 第 13 章 REALOS 関連ハード 13.2 遅延割込みモジュールのレジスタ この節では , 遅延割込みモジュールで使用するレジスタの構成 , および機能について 説明します。 ■ DICR(Delayed Interrupt Control Register) 図 13.2-1 DICR(Delayed Interrupt Control Register) のビット構成 7 bit 6 5 4 3 2 1 0 DLYI 初期値 -------0B [R/W] 遅延割込みを制御するレジスタです。 [bit0] DLYI DLYI 説明 0 遅延割込み要因の解除・要求なし〔初期値〕 1 遅延割込み要因の発生 本ビットにより , 該当する割込み要因の発生・解除を制御します。 293 第 13 章 REALOS 関連ハード 13.3 遅延割込みモジュールの動作 遅延割込みは , タスク切り換え用の割込みを発生するものです。本機能を使用する ことにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことが できます。 ■ 割込み番号 遅延割込みは, 最も大きな割込み番号に対応した割込み要因に割り当てられています。 本品種では , 遅延割込みを , 割込み番号 63(3FH) に割り当てています。 ■ DICR の DLYI ビット このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き 込むことで , 遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアし , 合わせてタスクの切り換えを行うようにしてください。 294 第 13 章 REALOS 関連ハード 13.4 ビットサーチモジュール 入力レジスタに書き込まれたデータに対して , 0 または 1 または変化点を検索し , 検 出したビット位置を返します。 ■ レジスタ一覧 図 13.4-1 レジスタ一覧 bit 31 0 アドレス:000003F0 H BSD0 0検出用データレジスタ アドレス:000003F4 H BSD1 1検出用データレジスタ アドレス:000003F8 H BSDC 変化点検出用データレジスタ アドレス:000003FC H BSRR 検出結果レジスタ ■ ブロックダイヤグラム 図 13.4-2 ブロックダイヤグラム 295 第 13 章 REALOS 関連ハード 13.5 ビットサーチモジュールのレジスタ この節では , ビットサーチモジュールで使用するレジスタの構成 , および機能につい て説明します。 ■ 0 検出用データレジスタ (BSD0) 図 13.5-1 0 検出用データレジスタ (BSD0) のビット構成 bit 31 0 000003F0H リード/ライト 初期値 ライトオンリ 不定 書き込んだ値に対して , 0 検出を行います。 リセットによる初期値は不定です。読出し値は不定です。 データ転送には , 32bit 長のデータ転送命令を使用してください。 (8bit, 16bit 長のデータ転送命令は , 使わないでください。) ■ 1 検出用データレジスタ (BSD1) 図 13.5-2 1 検出用データレジスタ (BSD1) のビット構成 bit 31 0 000003F4H リード/ライト 初期値 リード/ライト可能 不定 データ転送には , 32bit 長のデータ転送命令を使用してください。 (8bit, 16bit 長のデータ転送命令は , 使わないでください。) 書込み時 書き込んだ値に対して , 1 を検出します。 読出し時 ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハ ンドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避復帰する 時に使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用データレ ジスタのみ操作することで退避復帰できます。 リセットによる初期値は不定です。 296 第 13 章 REALOS 関連ハード ■ 変化点検出用データレジスタ (BSDC) 図 13.5-3 変化点検出用データレジスタ (BSDC) のビット構成 bit 31 0 000003F8H リード/ライト 初期値 ライトオンリ 不定 書き込んだ値に対して , 変化点の検出を行います。 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32bit 長のデータ転送命令を使用してください。 (8bit, 16bit 長のデータ転送命令は , 使わないでください。) ■ 検出結果レジスタ (BSRR) 図 13.5-4 検出結果レジスタ (BSRR) のビット構成 bit 31 0 000003FCH リード/ライト 初期値 リードオンリ 不定 0 検出 , 1 検出 , または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ れます。 297 第 13 章 REALOS 関連ハード 13.6 ビットサーチモジュールの動作 ビットサーチモジュールは , 次の 3 つの動作を行います。 • 0 検出 • 1 検出 • 変化点検出 ■ 0 検出 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と , 返す数値の関係は , 表 13.6-1 のとおりです。 "0" が存在しないとき , ( すなわち FFFFFFFFH という数値のとき ) 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 11111111111111111111000000000000B 11111000010010011110000010101010B 10000000000000101010101010101010B 11111111111111111111111111111111B 読出し値 (10 進 ) (FFFFF000H) (F849E0AAH) (8002AAAAH) (FFFFFFFFH → 20 →5 →1 → 32 ■ 1 検出 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値との関係は , 表 13.6-1 のとおりです。 "1" が存在しないとき , ( すなわち 00000000H という数値のとき ) 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 00100000000000000000000000000000B 00000001001000110100010101100111B 00000000000000111111111111111111B 00000000000000000000000000000001B 00000000000000000000000000000000B 298 読出し値 (10 進 ) (20000000H) (01234567H) (0003FFFFH) (00000001H) (00000000H) →2 →7 → 14 → 31 → 32 第 13 章 REALOS 関連ハード ■ 変化点検出 変化点検出用データレジスタに書き込まれたデータを , bit30 から LSB へスキャンし , MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値は , 表 13.6-1 の示すとおりです。 変化点が存在しないときは , 32 を返します。 変化点検出では , 結果として 0 を返すことはありません。 【実行例】 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B 00000001001000110100010101100111B 00000000000000111111111111111111B 00000000000000000000000000000001B 00000000000000000000000000000000B 11111111111111111111000000000000B 11111000010010011110000010101010B 10000000000000101010101010101010B 11111111111111111111111111111111B (20000000H) (01234567H) (0003FFFFH) (00000001H) 00000000H) FFFFF000H) F849E0AAH) 8002AAAAH) (FFFFFFFFH) →2 →7 → 14 → 31 → 32 → 20 →5 →1 → 32 表 13.6-1 ビット位置と返す値 (10 進 ) 検出した bit 位置 返す値 検出した bit 位置 返す値 検出した bit 位置 返す値 検出した bit 位置 返す値 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 299 第 13 章 REALOS 関連ハード ■ 退避・復帰の処理 割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ い。 1. 1 検出用データレジスタを読出し , この内容を保存する ( 退避 ) 2. ビッチサーチモジュールを使用 3. 1. で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 ) 以上の操作により , 次に検出結果レジスタを読み出した時に得られる値は , 1. 以前に , ビットサーチモジュールに書き込まれた内容に応じたものとなります。 最後に書き 込まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく 元に戻ります。 300 第 14 章 10 ビット A/D コンバータ この章では , 10 ビット A/D コンバータの概要 , レ ジスタの構成 / 機能 , および動作について説明しま す。 14.1 10 ビット A/D コンバータの概要 14.2 10 ビット A/D コンバータのレジスタ 14.3 10 ビット A/D コンバータの動作 301 第 14 章 10 ビット A/D コンバータ 14.1 10 ビット A/D コンバータの概要 10 ビット逐次比較形 A/D コンバータで , ソフトによる変換起動と外部トリガによる 変換起動モードを有します。 ■ 10 ビット A/D コンバータの特長 • 変換時間 10 µs( サンプリング 7.8 µs, 変換 2.2 µs) fch:@20MHz 時 • A/D 変換結果用レジスタ 各チャネルごとに用意 • チャネル・スキャン機能あり ■ レジスタ構成 図 14.1-1 レジスタ構成 アドレス 15 00020H 00022H 00024H 00026H 00028H 0002AH 0002CH 0002EH 00030H 00032H 00034H 00036H 00038H 0 ADCTH ADCTL ADCH ADAT0 ADAT1 ADAT2 ADAT3 ADAT4 ADAT5 ADAT6 ADAT7 ADAT8 ADAT9 TEST A/Dステータス・制御レジスタ A/アナログ入力選択レジスタ A/D変換データch.0 A/D変換データch.1 A/D変換データch.2 A/D変換データch.3 A/D変換データch.4 A/D変換データch.5 A/D変換データch.6 A/D変換データch.7 A/D変換データch.8 A/D変換データch.9 A/D変換部テストレジスタ (アクセス禁止) 図 14.1-2 A/D コンバータ構成図 A/D AN0~AN9 外部端子(ATRG) 302 ATRG IRQ 第 14 章 10 ビット A/D コンバータ ■ ブロックダイヤグラム 図 14.1-3 ブロックダイヤグラム バッファ × 10 D/A コンバータ 部 デ ー タ 内 P X M AN9 AN8 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 コンパレータ コントロールロジック S/H A/D ス バ チャネル & ステータス コントロールロジック 外部端子 ATRG IRQ 303 第 14 章 10 ビット A/D コンバータ 10 ビット A/D コンバータのレジスタ 14.2 この節では , 10 ビット A/D コンバータで使用するレジスタの構成 , および機能につ いて説明します。 ■ A/DC 制御レジスタ (ADCTH, ADCTL) 図 14.2-1 A/DC 制御レジスタ (ADCTH, ADCTL) のビット構成 bit ADCTH bit ADCTL 15 "0" 14 "0" 13 "0" 12 "0" 11 "0" 10 "0" 9 TRG 8 STR (R) (R) (R) (R) (R) (R) (R/W) (R/W) 7 ASS3 6 ASS2 5 ASS1 4 ASS0 3 BUSY 2 "0" 1 INT 0 INTE (R) (R) (R) (R) (R) (R) (R/W) (R/W) 初期値 0000 0000B 初期値 0000 0000B [bit15 ∼ bit10]:Don't Care 常に "000000B" がリードされます。 [bit9]:TRG 0 外部端子トリガでの起動禁止 1 外部端子トリガでの起動 TRG=1 のとき外部端子 (ATRG) 入力の立ち上りエッジを検出して A/D 変換を起動 します。 A/D 変換中にエッジ検出された場合は無視されます。 [bit8]:STR A/D 変換スタート・ビットです。 0 影響なし 1 ソフト起動 / 再起動 ( 変換中の書き込み ) このビットをリードした場合 , 常に "0" が読み出されます。 [bit7 ∼ bit4]:ASS3 ∼ ASS0 選択されているアナログチャネルがリードできます。 bit3:BUSY=1 のときに有効なデータがリードできます。 0∼9 304 選択チャネル 第 14 章 10 ビット A/D コンバータ [bit3]:BUSY A/D 変換中を示すフラグです。 0 変換中でない 1 変換中 [bit2]:Don't Care 常に "0" がリードされます。 [bit1]:INT A/D 変換終了フラグです。 0 変換なし。または , 変換中 1 変換完了 [bit0]:INTE A/D 変換割込み許可ビットです。 0 割込み禁止 1 割込み許可 INT=1 の時 INTE=1 なら割込み要求を発生します。 ( 注意事項 ) 本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく ださい。 ■ ソフト変換アナログ入力選択レジスタ 図 14.2-2 ソフト変換アナログ入力選択レジスタのビット構成 bit ADCH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 "0" "0" "0" "0" "0" "0" i9 i8 i7 i6 i5 i4 i3 i2 i1 i0 初期値 00 00 H (R/W) [bit15 ∼ bit10]:Don't Care 常に "0" がリードされます。 305 第 14 章 10 ビット A/D コンバータ [bit9 ∼ bit0]:i9 ∼ i0 ソフト変換用アナログ入力選択ビットです。 0 入力非選択 1 入力選択 複数の入力が選択されている場合には , 選択されている入力全てに対し順次 , 変換 されます。 ■ A/D 変換結果レジスタ (0 ∼ 9ch) 図 14.2-3 A/D 変換結果レジスタ (0 ∼ 9ch) のビット構成 bit ADAT0~ADAT9 15 14 13 12 11 10 "0" "0" "0" "0" "0" "0" 9 8 d9 7 d8 d7 (R) 6 5 4 3 2 1 0 d6 d5 d4 d3 d2 d1 d0 1 0 初期値 00 00H [bit15 ∼ bit10]:Don't Care 常に "000000B" がリードされます。 [bit9 ∼ bit0]:d9 ∼ d0 各チャネルに対応した A/D 変換結果が格納されます。 ■ A/D 変換部テストレジスタ 図 14.2-4 A/D 変換部テストレジスタのビット構成 bit 15 14 13 12 11 TEST 10 9 8 7 6 TEST (R/W) [bit15 ∼ bit0]:TEST A/D 変換部テスト用レジスタ。 ( 注意事項 ) 本レジスタにはアクセスしないでください。 306 5 4 3 2 初期値 00 00 H 第 14 章 10 ビット A/D コンバータ 14.3 10 ビット A/D コンバータの動作 この節では , ソフト変換 , および外部トリガ変換による A/D 動作について説明しま す。 ■ ソフト変換による A/D 動作 ソフト変換による A/D 変換を行うには , まず , アナログ入力端子 AN0 ∼ AN9 の 10 本 のうちから必要なチャネルを選択します。ADCH レジスタの対応するビットに "1" を 書き込むことより有効となります。 ● 単一チャンネルの場合 変換用アナログ入力端子として 1 チャンネルのみを選択した場合。ADCTH レジスタの STR ビットに "1" を書き込むことより , ソフト変換動作が開始され , ADCTL レジスタ の BUSY ビットは "1" にセットされます。 変換動作中に STR ビットに再度 "1" を書き込むと変換動作は初期化され , 再び変換が 開始されます。 A/D 変換動作が終了すると , ADCTL レジスタの BUSY ビットは "0" にリセットされ , ADCTL レジスタの INT ビットは "1" にセットされます。これらのステータス・ビット を読むことにより変換動作の終了を判別できます。また変換完了の割込みを発生した い場合は , ADCTL レジスタの INTE ビットを "1" にしておきます。 ● 複数チャンネルの場合 ( スキャン変換 ) 変換用アナログ入力端子として複数のチャンネルを選択した場合 , 自動的に各チャネ ル選択の有無を調べ , 順次チャネル切替えと A/D 変換の起動をし , 変換結果を各チャネ ルに対応したレジスタへ格納します。 変換したいチャンネルを ADCH レジスタの対応ビットに "1" を書込み選択をし ADCTH レジスタの STR ビットに "1" を書き込むことより , 変換動作を開始し , ADCTL レジス タの BUSY ビットは "1" にセットされます。変換チャンネルは 0 から 9 の順で選択さ れ , ADCH レジスタで選択されていないチャンネルは変換を行わずに次の選択されて いるチャンネルの変換に移ります。 変換動作中に STR ビットに再度 "1" を書き込むと変換動作は初期化され , 再びチャネ ル 0 から 9 の順で選択されたチャネルの変換を開始します。 全ての選択したチャネルの A/D 変換動作が終了すると , ADCTL レジスタの BUSY ビッ トは "0" にリセットされ , ADCTL レジスタの INT ビットは "1" にセットされます。ま た , 変換完了の割込みを発生したい場合は , ADCTL レジスタの INTE ビットを "1" にし ておきます。 A/D 変換された結果は , 各チャネルのレジスタに格納されます。 ■ 外部トリガ変換による A/D 動作 外部トリガ起動を許可した場合 (ADCTH:TRG=1) には , 外部端子 (ATRG) 入力の立ち上 りエッジを検出して A/D 変換を開始します。外部トリガ許可の状態でソフト起動した 場合も起動します。また , A/D 起動中に再度外部端子 (ATRG) 入力の立ち上りエッジを 検出した場合には変換動作は初期化され , 再び最初から変換を開始します。 307 第 14 章 10 ビット A/D コンバータ 308 第 15 章 UART この章では , UART の概要 , レジスタの構成 / 機能 , および UART の動作について説明します。 15.1 UART の概要 15.2 UART のレジスタ 15.3 UART の動作 15.4 割込み発生およびフラグのセットタイミング 15.5 UART の応用例 15.6 ボーレートと U-TIMER のリロード値の設定例 309 第 15 章 UART UART の概要 15.1 UART は , 非同期 ( 調歩同期 ) 通信 , または CLK 同期通信を行うためのシリアル I/O ポートで , 以下の特長があります。本品種は , UART を 5 チャネル内蔵します。 ■ UART の特長 • 全二重ダブルバッファ • 非同期 ( 調歩同期 ), CLK 同期通信が可能 • マルチプロセッサモードのサポート • 完全プログラマブルボーレート 内蔵タイマにより任意のボーレートを設定可能 (「第 6 章 U-TIMER」参照 ) • 外部クロックによる自由なボーレートの設定が可能 • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 転送信号は NRZ 符号 • UART Ch0 ∼ 2 は 割込みによる DMA 転送の起動が可能 (Ch3, 4 は DMA 起動不可 ) • DRCL レジスタへの書込み動作による DMAC の割込み要因クリア ■ レジスタ一覧 図 15.1-1 レジスタ一覧 15 8 7 0 SCR SMR (R/W) SSR SIDR(R)/SODR(W) (R/W) DRCL (W) 8bit bit bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 7 6 5 4 3 2 1 0 PE bit 7 ORE FRE RDRF TDRE BDS RIE 6 MD1 MD0 bit bit 310 8bit TIE 5 4 3 2 1 0 - - CS0 - - - 1 0 7 6 5 4 3 2 PEN P SBL CL A/D REC 7 6 5 4 3 2 1 0 - - - - - - - - RXE TXE シリアルインプットレジスタ シリアルアウトプットレジスタ (SIDR /SODR) シリアルステータスレジスタ (SSR) シリアルモードレジスタ (SMR) シリアルコントロールレジスタ (SCR) (DRCL) 第 15 章 UART ■ ブロックダイヤグラム 図 15.1-2 ブロックダイヤグラム 制御信号 受信割込み (CPUへ) SCK(クロック) 送信クロック U-TIMERより クロック 選択回路 受信クロック 送信割込み (CPUへ) 外部クロック SCK 受信制御回路 SI(受信データ) 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ SO(送信データ) 受信用シフタ 受信状態判定回路 送信用シフタ 送信開始 受信終了 SIDR SODR DMA用 受信エラー発生信号 (DMACへ) R-BUS MD1 MD0 SMR レジスタ CS0 SCR レジスタ PEN P SBL CL A/D REC RXE TXE SSR レジスタ PE ORE FRE RDRF TDRE BDS RIE TIE 制御信号 311 第 15 章 UART 15.1.1 UART マクロにおける送受信転送の組み合わせ UART マクロにおける送受信転送の組み合わせについて説明します。 1 つの UART マクロにおける送受信転送の組み合わせについて , 表 15.1-1 に示します。 「混在転送」とは , プログラム転送と DMA 転送を切り換えて使用する場合を示します。 表 15.1-1 UART/SIO 送受信転送の組み合わせ UART/SIO 送信 DMA 転送 プログラム転送 混在転送 使用しない DMA 転送 × × × × プログラム転送 ○ ○ × ○ 混在転送 × × × × 使用しない ○ ○ × ○ UART/SIO 受信 表中の○は , DRCL レジスタによるクリアが必要でない組み合わせになります。 表中の×は , DMA を利用した転送ができない組合わせになります。この組合わせで DMAC エラー処理もしくは DMA 転送とプログラム転送の切換えのために DRCL レジ スタをクリアすると , 片側の DMA 要求ステートマシンがクリアされてしまいます。そ のため , 例えば UART/SIO 送信では 1 つの余分なデータが出力され , UART 受信では 1 回余分にシリアルインプットデータレジスタ (SIDR) をリードすることになります。 312 第 15 章 UART 15.2 UART のレジスタ 本節では ,UART で使用するレジスタの構成 , および機能について説明します。 ■ SMR ( シリアルモードレジスタ ) 図 15.2-1 SMR ( シリアルモードレジスタ ) のビット構成 6 bit 7 SMR アドレス ch.0 000063H MD1 MD0 ch.1 00006BH ch.2 000073H R/W R/W ch.3 00007BH ch.4 000083H 5 4 3 CS0 2 1 0 初期値 00--0---B W SMR は , UART の動作モードを指定します。動作モードの設定は動作停止中に行い , 動 作中にこのレジスタへの書込みは行わないでください。 [bit7, bit6]MD1, MD0 (MoDe select) : UART の動作モードを選択します。 表 15.2-1 動作モード選択 モード MD1 MD0 動作モード 0 0 0 非同期 ( 調歩同期 ) ノーマルモード〔初期値〕 1 0 1 非同期 ( 調歩同期 ) マルチプロセッサモード 2 1 0 クロック同期モード − 1 1 設定禁止 ( 注意事項 ) モード 1 のクロック非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台の スレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を判 別できません。従って , マルチプロセッサモード のマスタのみをサポートします。 また , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に 設定し てください。 [bit5, bit4](reserved) 常に "1" を書き込んでください。 [bit3]CS0(Clock Select) UART の動作クロックを選択します。 0 : 内蔵タイマ (U-TIMER) 〔初期値〕 1 : 外部クロック [bit2, bit1](reserved) 常に "0" を書き込んでください。 [bit0](ReverseReserved): 未使用ビットです。 313 第 15 章 UART ■ SCR ( シリアルコントロールレジスタ ) 図 15.2-2 SCR ( シリアルコントロールレジスタ ) のビット構成 SCR bit 7 アドレス: ch.0 000062H ch.1 00006AH ch.2 000072H ch.3 00007AH ch.4 000082H 6 5 4 3 PEN P SBL CL A/D R/W R/W R/W R/W R/W 2 1 0 REC RXE TXE W R/W R/W 初期値 00000100B SCR はシリアル通信を行う場合の転送プロトコルを制御します。 [bit7]PEN (Parity Enable): シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定しま す。 0: パリティなし 〔初期値〕 1: パリティあり ( 注意事項 ) パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) およびクロック同期通信 ( モード 2) では , パリティを付加できません。 [bit6]P (Parity): パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。 0: 偶数パリティ 〔初期値〕 1: 奇数パリティ [bit5]SBL (Stop Bit Length): 非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークである , ストップビッ トのビット長を指定します。 0: 1 ストップビット 〔初期値〕 1: 2 ストップビット [bit4]CL(Character Length): 送受信する 1 フレームのデータ長を指定します。 0: 7 ビットデータ 〔初期値〕 1: 8 ビットデータ 314 第 15 章 UART ( 注意事項 ) 7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) およびクロック同期通信 ( モード 2) では , 8 ビットデータとしてください。 [bit3]A/D (Address/Data): 非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信す るフレームのデータ形式を指定します。 0: データフレーム 〔初期値〕 1: アドレスフレーム [bit2]REC (Receiver Error Clear): "0" を書き込む事で , SSR レジスタのエラーフラグ (PE, ORE, FRE) をクリアします。 "1" 書込みは無効であり , 読出し値は常に "1" になります。 [bit1]RXE (Receiver Enable): UART の受信動作を制御します。 0: 受信動作を禁止します。〔初期値〕 1: 受信動作を許可します。 ( 注意事項 ) 受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合 には , そのフレームの受信を完了し受信データバッファ SIDR レジスタに受信データをス トアしたところで受信動作を停止します。 [bit0]TXE(Transmitter Enable): UART の送信動作を制御します。 0: 送信動作を禁止します。〔初期値〕 1: 送信動作を許可します。 ( 注意事項 ) 送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は , 送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。 315 第 15 章 UART ■ SIDR (シリアルインプットデータレジスタ)/SODR (シリアルアウトプットデータ レジスタ ) 図 15.2-3 SIDR ( シリアルインプットデータレジスタ )/SODR ( シリアルアウトプットデータレジス タ ) のビット構成 bit 7 SIDR アドレス: ch.0 000061H ch.1 000069H ch.2 000071H ch.3 000079H ch.4 000081H SODR アドレス: 同上 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R R R R R R R bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 W W W W W W W 初期値 不定 R 不定 W 本レジスタは , 受信 / 送信用のデータバッファレジスタです。 データ長が 7bit の場合 SIDR, SODR の bit7(D7) は無効データとなります。BDS= 1 の時 は , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側を入れかえるた め , 見かけ上 bit0(D0) が無視されたように見えます。 SODRレジスタへの書込みは, SSR レジスタのTDREが"1"の時に書き込んでください。 ( 注意事項 ) このアドレスへのライトは SODR レジスタへの書込みを , リードは SIDR レジスタの読 出しを意味します。 316 第 15 章 UART ■ SSR ( シリアルステータスレジスタ ) 図 15.2-4 SSR ( シリアルステータスレジスタ ) のビット構成 SSR bit 7 アドレス: ch.0 000060H ch.1 000068H ch.2 000070H ch.3 000078H ch.4 000080H PE 6 5 4 3 2 ORE FRE RDRF TDRE BDS R R R R R R/W 1 0 RIE TIE R/W R/W 初期値 00001000B SSR は UART の動作状態を表すフラグで構成されています。 [bit7]PE(Parity Error): 受信時にパリティエラーが発生したときにセットされる , 割込み要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビット (bit10) に "0" を書き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0: パリティエラーなし 〔初期値〕 1: パリティエラーが発生 [bit6]ORE (Over Run Error): 受信時にオーバランエラーが発生したときにセットされる , 割込み要求フラグで す。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書 き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0: オーバランエラーなし 〔初期値〕 1: オーバランエラー発生 [bit5]FRE (FRaming Error): 受信時にフレーミングエラーが発生したときにセットされる , 割込み要求フラグで す。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書 き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0: フレーミングエラーなし 〔初期値〕 1: フレーミングエラー発生 ( 注意事項 ) • シリアルモードレジスタの bit3(CS0) による内 / 外ボーレートクロックの切り替えは書 込み後 , すぐに反映されるので , UART が動作停止状態の時に行ってください。 • シリアルモードレジスタの bit3(CS0) はライトオンリです。 317 第 15 章 UART [bit4]RDRF(Receiver Data Register Full): SIDR レジスタに受信データがあることを示す , 割込み要求フラグです。 SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出 すと自動的にクリアされます。 0: 受信データなし 〔初期値〕 1: 受信データあり [bit3]TDRE(Transmitter Data Register Empty): SODR に送信データを書き込めることを示す , 割込み要求フラグです。 SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送 信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを 書き込めることを表します。 0: 送信データの書込み禁止 1: 送信データの書込み許可 〔初期値〕 [bit2]BDS(Bit Direction Select) 転送方向選択ビットです。 0: 最下位ビット (LSB) 側から転送します。〔初期値〕 1: 最上位ビット (MSB) 側から転送します。 ( 注意事項 ) シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入換えるため SODR レジスタへデータを書き込んだ後 , このビットを書換えると , そのデータは無効に なります。 ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合には , 書 き換え前の BDS の値に従い , SODR レジスタへの書き込みが行われます。 [bit1]RIE (Receiver Interrupt Enable): 受信割込みを制御します。 0: 割込みを禁止します。〔初期値〕 1: 割込みを許可します。 ( 注意事項 ) 受信割込要因は , PE, ORE, FRE によるエラー発生の他 , RDRF による正常受信がありま す。 [bit0]TIE (Transmitter Interrupt Enable): 送信割込みを制御します。 0: 割込みを禁止します。〔初期値〕 1: 割込みを許可します。 ( 注意事項 ) 送信割込み要因は , TDRE による送信要求があります。 318 第 15 章 UART ■ DRCL 図 15.2-5 DRCL のビット構成 DRCL Address: ch.0 000066H ch.1 00006EH ch.2 000076H ch.1 00007EH ch.2 000086H bit 7 6 5 4 3 2 1 0 初期値 -- -- -- -- -- -- -- -- --------B W W W W W W W W DMAC の割込み要因をクリアするためのレジスタです。任意の値を書き込むことに よって DMAC への割込み要因がクリアされます。本レジスタは , 必ずバイトでアクセ スしてください。 割込みが発生すると , DMAC 転送が終了し DMAC が DMAC 割込み要因をクリアする まで DMAC 要因を保持します。 DMAC を起動しない割込み処理により , 各種「割込み要求フラグ」がクリアされても , DMAC の割込み要因は保持したままとなります。 このため , DMAC の割込み要因が残ったまま , DMAC 起動要因に , UART を指定し DMAC を動作許可すると , 各種「割込み要求フラグ」がセットされていないにもかか わらず , DMAC が起動され意図しない動作をします。 従いまして , 初めて DMAC を起動する際 , または , DMAC 移動以前に , DMAC を起動 しない割込みを用いて UART を使用している場合 , このレジスタを利用して DMAC の 割込み要因をクリアしてください。 ( このレジスタは書込み専用です。) 319 第 15 章 UART UART の動作 15.3 UART には , 非同期 ( 調歩同期 ) モードと CLK モードの 2 種類の動作モードがあり ます。 非同期 ( 調歩同期 ) モードには , ノーマルモードとマルチプロセッサモードがありま す。 この節では , 各動作モードにおける動作について説明します。 ■ UART の動作モード UART は , 表 15.3-1 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設 定することによりモードを切換えることができます。 表 15.3-1 UART の動作モード モード パリティ データ長 動作モード ストップビット長 0 有/無 7 非同期 ( 調歩同期 ) ノーマルモード 有/無 8 1 ビット または 2 ビット 1 無 8+1 非同期(調歩同期) マルチプロセッサモード 2 無 8 クロック同期モード 無 ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定 が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動 作しませんので , 設定しないでください。 ■ UART のクロック選択 ● 内部タイマ CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード値で ボーレートが決まります。このときのボーレートの算出式は , 次の通りです。 非同期 ( 調歩同期 ) φ /(8 × β ) クロック同期 φ / β φ : 周辺クロック周波数 β : U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 ) 非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの− 1% ∼ +1% までの 範囲で転送が可能です。 ● 外部クロック CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロックの周 波数を f とすると次のようになります。 非同期 ( 調歩同期 ) f/8 クロック同期 f ただし , f は最大 3.125MHz までです。 320 第 15 章 UART ■ 非同期 ( 調歩同期 ) モード ● 転送データフォーマット UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。図 15.3-1 に , データ フォーマットを示します。 図 15.3-1 転送データフォーマット ( モード 0,1) SI, SO 0 1 0 1 1 0 0 1 0 1 1 Start LSB MSB Stop ─────(モード0) A/D Stop ───(モード1) 転送されたデータは 01001101B 図 15.3-1 に示すように , 転送データは必ずスタートビット ("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 レジスタをリードするとクリアされます。 ● 送信動作 SSR レジスタの TDRE フラグ (bit3 ) が "1" のとき , SODR レジスタに送信データを書き 込みます。ここで , SCR レジスタの TXE ビット (bit0) が "1" なら送信が行われます。 SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開 始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな ります。このとき同じ SSR レジスタの TIE ビット (bit0) が "1" にセットされていれば CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットするよう に要求します。 TDRE フラグは , SODR レジスタにデータをセットすると , いったんクリアされます。 321 第 15 章 UART ■ クロック同期モード ● 転送データフォーマット UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。図 15.3-2 に , 送受信 クロックとデータとの関係を示します。 図 15.3-2 転送データフォーマット ( モード 2) SODR書込み マーク SCK RXE, TXE SI, SO 1 0 1 1 0 0 1 0 LSB MSB ───(モード2) 転送されたデータは 01001101B 内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同 期クロックが自動的に生成されます。 また , 外部クロックを選択している場合は , 送信側 UART の送信用データバッファ SODR レジスタにデータがあること (TDRE フラグが "0") を確かめた後 , 正確に 1 バイ ト分のクロックを供給する必要があります。また , 送信開始前と終了後は , 必ずマーク レベルにしてください。 データ長は 8 ビットのみとなり , パリティを付加できません。また , スタート / ストッ プビットがないのでオーバランエラー以外のエラー検出は行われません。 ● 初期化 クロック同期モードを使用する場合の , 各制御レジスタの設定値を示します。 SMR レジスタ MD1, MD0: 10 CS0: クロック入力を指定 PFR( ポートファンクション ) レジスタ SCKE: 内部タイマの場合 1, 外部クロックの場合 0 UART: 送信を行う場合 1, 受信のみの場合 0 SCR レジスタ 322 PEN: 0 P, SBL, A/D: これらのビットは意味を持ちません CL: 1 REC: 0 ( 初期化するため ) 第 15 章 UART RXE, TXE: 少なくとも , どちらか一方を 1 SSR レジスタ RIE: 割込みを使用する場合 1, 割込みを使用しない場合 0 TIE: 0 ● 通信開始 SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の 送信データを SODR レジスタに書き込む必要があります。 ● 通信終了 SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス タの ORE ビットによって , 通信が正常に行われたかを判断してください。 323 第 15 章 UART 15.4 割込み発生およびフラグのセットタイミング UART には , 5 つのフラグと 2 つの割込み要因を持ちます。 5 つのフラグは , PE/ORE/FRE/RDRF/TDRE です。PE はパリティエラー , ORE は オーバランエラー , FRE はフレーミングエラーのことで , 受信時エラーが発生した 時にセットされ , SCR レジスタの REC に "0" を書込むとクリアされます。RDRF は受信データが SIDR レジスタにロードされるとセットされ , SIDR レジスタを読出 すことでクリアされます。但し , モード 1 ではパリティ検出機能 , モード 2 ではパリ ティ検出機能とフレーミングエラー検出機能はありません。TDRE は , SODR レジ スタが空になり書込み可能な状態になるとセットされ , SODR レジスタへ書込むと クリアされます。 ■ 割込み発生およびフラグのセットタイミング 2 つの割込み要因は , 受信用のものと送信用のものです。受信時は , PE/ORE/FRE/RDRF により割込みを要求します。送信時は , TDRE により割込みを要求します。各動作モー ドによる割込みフラグのセットタイミングを以下に示します。 ● モード 0 の受信動作時 PE, ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出する時にフラグ がセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。 図 15.4-1 ORE, FRE, RDRF のセットタイミング ( モード 0) ● モード 1 の受信動作時 ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出する時にフラグが セットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8bit のた め最後の 9bit 目のアドレス / データを示すデータは無効データとなります。ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。 324 第 15 章 UART 図 15.4-2 ORE, FRE, RDRF のセットタイミング ( モード 1) ● モード 2 の受信動作時 ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出する時にフラグがセットさ れ , CPU への割込要求が発生します。ORE がアクティブ時は , SIDR のデータは無効 データとなります。 図 15.4-3 ORE, RDRF のセットタイミング ( モード 2) ● モード 0, モード 1, モード 2 の送信動作時 TDRE は SODR レジスタへ書き込まれるとクリアされ , 内部のシフトレジスタに転送 され次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要求が発生 します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 の時は RXE も含む ) を書 き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止してから UART の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 の時は RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込まれたデー タは送信されます。 325 第 15 章 UART 図 15.4-4 TDRE のセットタイミング ( モード 0, 1) 図 15.4-5 TDRE のセットタイミング ( モード 2) ■ 使用上の注意 SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の 送信データを SODR レジスタに書き込む必要があります。 通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ は保証されません。 割込みによる DMA 転送を最初に起動する前に DRCL レジスタにライトしてください。 326 第 15 章 UART 15.5 UART の応用例 UART の使用例を示します。モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に使用されます。 ■ UART の使用例 図 15.5-1 に , モード 1 を使用した場合のシステム構築例を示します。このリソースでは , ホスト側の通信インタフェースのみサポートします。 図 15.5-1 モード 1 を使用時のシステム構築例 通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス データとは , SCR レジスタの A/D が "1" の時のデータで , それにより通信先となるス レーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR レジスタの A/D が "0" の時のデータです。図 15.5-2 にそのフローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの PEN ビットは "0" としてください。 327 第 15 章 UART 図 15.5-2 モード 1 使用時の通信フローチャート (ホストCPU) START 転送モードを1とする D0~D7にスレーブCPUを選 択するデータ,A/Dに"1"を セットし,1バイト転送 A/Dに"0"をセット 受信動作許可 スレーブ CPU と通信 NO 通信終了? YES 他の NO スレーブ CPUと 通信 YES 受信動作禁止 END 328 第 15 章 UART 15.6 ボーレートと U-TIMER のリロード値の設定例 ボーレートと U-TIMER のリロード値の設定例を示します。 ■ ボーレートと U-TIMER のリロード値の設定例 以下に , ボーレートと U-TIMER のリロード値の設定例を示します。 表中の周波数は , 周辺クロック周波数を表します。また , UCC1 は , U-TIMER の UTIMC レジスタ UCC1 ビットに設定する値です。 下記 U-Timer リロード値は 10 進数で表示してあります。 表 15.6-1 非同期 ( 調歩同期 ) モード ボーレート ms φ =20.27MHz 527(UCC1=0) φ =10.135MHz 1200 833.33 263(UCC1=0) 2400 416.67 263(UCC1=0) 131(UCC1=0) 4800 208.33 131(UCC1=0) 65(UCC1=0) 9600 104.17 65(UCC1=0) 32(UCC1=0) 19200 52.08 32(UCC1=0) 15(UCC1=1) 38400 26.04 15(UCC1=1) 7(UCC1=1) * 57600 17.36 10(UCC1=0) 4(UCC1=1) 115200 8.681 4(UCC1=1) 2(UCC1=0) * 10400 96.15 60(UCC1=0) 29(UCC1=1) 31250 32.00 * 19(UCC1=0) 9(UCC1=0) * 62500 16.00 * 9(UCC1=0) 4(UCC1=0) * φ : 周辺クロック周波数 * ± 1% 以上の誤差あり 表 15.6-2 クロック同期モード ボーレート ms φ =20.27MHz φ =10.135MHz 250K 4.00 39(UCC1=1) 19(UCC1=1) * 500K 2.00 19(UCC1=1) * 9(UCC1=0) * 1M 1.00 9(UCC1=0) * 4(UCC1=0) * φ : 周辺クロック周波数 * ± 1% 以上の誤差あり 329 第 15 章 UART 330 第 16 章 I2C インタフェース この章では , I2C インタフェースの概要 , レジスタ の構成 / 機能 , および I2C インタフェースの動作に ついて説明します。 16.1 I2C インタフェースの概要 16.2 I2C インタフェースのレジスタ 16.3 I2C インタフェースの動作 16.4 動作フローチャート 331 第 16 章 I2C インタフェース 16.1 I2C インタフェースの概要 I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートです。 ■ I2C インタフェースの特長 I2C バス上のマスタ / スレーブデバイスとして動作し , 以下の特長があります。 • マスタ / スレーブ送受信 • アビトレーション機能 • クロック同期化機能 • スレーブアドレス / ゼネラルコールアドレス検出機能 • 転送方向検出機能 • 反復「START」条件発生および検出機能 • バスエラー検出機能 • 10 ビット /7 ビット スレーブアドレス • マスタモード時スレーブアドレス受信アクノリッジ制御 • 複合スレーブアドレス対応 • 送信 , バスエラー時に割込み可能 • 標準モード (Max.100kbps)/ 高速モード (Max.400kbps) に対応 ■ レジスタ一覧 図 16.1-1 バスコントロールレジスタ (IBCR) アドレス: ch.0 ch.1 ch.2 ch.3 0000B4 H 0000C4 H 0000D4 H 0000E4 H 14 bit 15 BER BEIE 初期値 13 SCC 12 MSS 11 10 9 ACK GCAA INTE 8 INT R/W R/W W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 図 16.1-2 バスステータスレジスタ (IBSR) アドレス: ch.0 ch.1 ch.2 ch.3 332 0000B5 H 0000C5 H 0000D5 H 0000E5 H bit 7 BB 初期値 6 RSC 5 AL 4 LRB 3 TRX 2 AAS 1 GCA 0 ADT R R R R R R R R 0 0 0 0 0 0 0 0 第 16 章 I2C インタフェース 図 16.1-3 10 ビットスレーブアドレスレジスタ (ITBA) アドレス: ch.0 ch.1 ch.2 ch.3 0000B6 H 0000C6 H 0000D6 H 0000E6 H bit 15 14 13 12 11 10 9 TA9 8 TA8 R R R R R R R/W R/W 0 0 0 0 0 0 0 0 bit 7 TA7 6 TA6 5 TA5 4 TA4 3 TA3 2 TA2 1 TA1 0 TA0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 8 TM8 R/W 初期値 初期値 図 16.1-4 10 ビットスレーブアドレスマスクレジスタ (ITMK) アドレス: ch.0 ch.1 ch.2 ch.3 0000B8 H 0000C8 H 0000D8 H 0000E8 H bit 15 14 ENTB RAL R/W R 初期値 bit 0 bit 7 TM7 R/W 初期値 1 13 12 11 10 R R R R 9 TM9 R/W 0 1 1 1 1 1 1 6 TM6 R/W 5 TM5 R/W 4 TM4 R/W 3 TM3 R/W 2 TM2 R/W 1 TM1 R/W 0 TM0 R/W 1 1 1 1 1 1 1 2 SA2 R/W 0 1 SA1 R/W 0 0 SA0 R/W 0 図 16.1-5 7 ビットスレーブアドレスレジスタ (ISBA) アドレス: ch.0 ch.1 ch.2 ch.3 0000BB H 0000CB H 0000DB H 0000EB H bit 7 R 0 初期値 6 SA6 R/W 0 5 SA5 R/W 0 4 SA4 R/W 0 3 SA3 R/W 0 図 16.1-6 7 ビットスレーブアドレスマスクレジスタ (ISMK) アドレス: ch.0 ch.1 ch.2 ch.3 0000BA H 0000CA H 0000DA H 0000EA H 14 13 12 11 10 9 8 bit 15 ENSB SM6 SM5 SM4 SM3 SM2 SM1 SM0 R/W R/W R/W R/W R/W R/W R/W R/W 0 1 1 1 1 1 1 1 初期値 図 16.1-7 データレジスタ (IDAR) アドレス: ch.0 ch.1 ch.2 ch.3 0000BD H 0000CD H 0000DD H 0000ED H bit 初期値 7 D7 R/W 0 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 10 CS2 R/W 1 9 CS1 R/W 1 8 CS0 R/W 1 図 16.1-8 クロックコントロールレジスタ (ICCR) アドレス: ch.0 ch.1 ch.2 ch.3 0000BE H 0000CE H 0000DE H 0000EE H bit 15 TEST W 初期値 0 14 R 0 13 EN R/W 0 12 CS4 R/W 1 11 CS3 R/W 1 333 第 16 章 I2C インタフェース 図 16.1-9 クロックディゼーブルレジスタ (IDBL) アドレス: ch.0 ch.1 ch.2 ch.3 bit 0000BF H 0000CF H 0000DF H 0000EF H 初期値 7 6 5 4 3 2 1 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 DBL R/W 0 ■ ブロックダイヤグラム 図 16.1-10 ブロックダイヤグラム ICCR EN I 2C 動作許可 Rバス IDBL DBL ICCR クロック許可 クロック分周2 CS4 CS3 CS2 CS1 CS0 2 3 4 5 Sync 32 シフトクロック発生 クロック選択2 (1/12) シフトクロック エッジ変化タイミング IBSR BB RSC CLKP バスビジィ リピートスタート Lastビット LRB スタート・ストップ コンディション検出 エラー 送/受 TRX 2 ADT I C 入出力 Firstバイト AL アビトレーションロスト検出 SCL0~SCL3 SCL3 IBCR I2 C 入出力 BER BEIE 割込み要求 INTE INT IBCR IRQ SDA3 終了 SCC スタート MSS マスタ スタート・ストップ ACK 許可 コンディション発生 ACK GCAA SDA0~SDA3 GC-ACK 許可 SDA4 レジスタ IDAR IBSR スレーブ AAS グローバルコール GCA スレーブアドレス 比較 ISMK FNSB ITMK ENTB RAL ITBA 334 SCL4 ITMK ISBA ISMK 第 16 章 I2C インタフェース 16.2 I2C インタフェースのレジスタ この節では , I2C インタフェースで使用するレジスタの構成 , および機能について説 明します。 ■ IBSR( バスステータスレジスタ ) 図 16.2-1 バスステータスレジスタ (IBSR) のビット構成 アドレス: ch.0 ch.1 ch.2 ch.3 0000B5 H 0000C5 H 0000D5 H 0000E5 H bit 7 BB 初期値 6 RSC 5 AL 4 LRB 3 TRX 2 AAS 1 GCA 0 ADT R R R R R R R R 0 0 0 0 0 0 0 0 このレジスタは , 全ビット読出し専用です。 I2C が動作停止 (ICCR:EN= 0 ) すると全ビッ トクリアされます。 [bit7]:BB(Bus Busy) I2C バスの状態を示すビットです。 0 「STOP」条件を検出した。 1 「START」条件を検出した。( バス使用中 ) [bit6]:RSC(Repeated Start Condition) 反復「START」条件検出ビットです。 0 反復「START」条件は検出されていない。 1 バス使用中に , 反復「START」条件を検出した。 このビットは , スレーブ・アドレス転送終了 (ADT= 0 ), または「STOP」条件の検出 でクリアされます。 [bit5]:AL(Arbitration Lost) アービトレーションロスト検出ビットです。 0 アービトレーションロスが検出されていない。 1 マスタ送信中にアービトレーションロスが発生した。 このビットは INT ビットへの "0" 書き込み , または IBCR レジスタ中の MSS ビット に "1" を書き込むことによってクリアされます。 335 第 16 章 I2C インタフェース アービトレーションロストが発生する例 : • データ送信が SCL の立ち上がりエッジで SDA ライン上のデータと一致し ない • データのファーストビットで , ほかのマスタによって , 反復「START」条 件が発生した。 • I2Cインタフェースが, ほかのスレーブデバイスによってSCLラインが"L" にドライブされているために , 「START」条件 , または「STOP」条件を 生成できない。 [bit4]:LRB(Last Received Bit) アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。 0 スレーブアクノロッジを検出した。 1 スレーブアクノロッジを検出していない。 アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。 「START」条件または「STOP」条件の検出でクリアされます。 [bit3]:TRX(Transferring data) データ転送中に送信状態を示すビットです。 0 データ送信中でない 1 データ送信中 1 セット : マスタモードで「START」条件が生成されたスレーブモードでリード アクセス時 ( 送信 ), 第 1 バイトの転送終了 マスタモードで送信中 0 セット : バスがアイドル状態 (IBCR:BB= 0 ) アービトレーションロス発生 マスタ割込み中 (MSS= 1 , INT= 1 ) に SCC に "1" が書き込まれた。 マスタ割込み中 (MSS= 1 , INT= 1 ) に MSS ビットがクリアされた。 スレーブ時 , 転送の最後にアクノリッジが発生しなかった。 スレーブモードでの受信中 マスタモードでのスレーブからデータ受信中 [bit2]:AAS(Addressed As Slave) スレーブ・アドレッシング検出ビットです。 0 スレーブに指定されていない。 1 スレーブに指定された。 ( 反復 )「START」または「STOP」条件の検出でクリアされます。 336 第 16 章 I2C インタフェース 7/10 ビットのスレーブアドレスを検出した時にセットされます。 [bit1]:GCA(General Call Address) ゼネラルコールアドレス (00H) 検出ビットです。 0 スレーブとして , ゼネラルコールアドレスを受信していない。 1 スレーブとして , ゼネラルコールアドレスを受信した。 ( 反復 )「START」または「STOP」条件の検出でクリアされます。 [bit0]:ADT(Address Data Transfer) スレーブ・アドレス受信検出ビットです。 0 受信データがスレーブ・アドレスでない。( またはバス開放中 ) 1 受信データがスレーブ・アドレスである。 「START」の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ・ アドレスのヘッダが検出されると , 第 2 バイトのあとクリアされ , それ以外の時は , 第 1 バイトのあとでクリアされます。 第 1 バイト / 第 2 バイトのあととは • マスタ割込み (IBCR:MSS= 1 , INT= 1 ) 中に MSS ビットに "0" が書き込まれた • マスタ割込み (IBCR:MSS= 1 , INT= 1 ) 中に SCC ビットに "1" が書き込まれた • INT ビットがクリアされた • マスタ, またはスレーブとして転送対象でなければ, 全ての転送バイトの最初 337 第 16 章 I2C インタフェース ■ IBCR( バスコントロールレジスタ ) 図 16.2-2 バスコントロールレジスタ (IBCR) のビット構成 アドレス: ch.0 ch.1 ch.2 ch.3 0000B4 H 0000C4 H 0000D4 H 0000E4 H 14 bit 15 BER BEIE 初期値 13 SCC 12 MSS 11 10 9 ACK GCAA INTE 8 INT R/W R/W W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 I2C インタフェースが停止 (ICCR:EN= 0 ) すると , BER, BEIE ビットを除き全てのビッ トがクリアされます。 [bit15]:BER(Bus ERror) バスエラー割込み要求フラグビットです。このビットは , リードモディファイ系の 命令では , 常に "1" が読まれます。 表 16.2-1 ライト時 0 バスエラー割込み要求フラグをクリアする。 1 意味をもちません。 表 16.2-2 リード時 0 バスエラーは検出されていない。 1 エラーコンディションを検出した。 このビットがセットされた場合 , ICCR レジスタの EN ビットはクリアされ , I2C イ ンタフェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を 除き IBSR と IBCR レジスタの全てのビットはクリアされます。このビットは , I2C インタフェースを再度イネーブル (EN=1) する前にクリアしてください。 "1" がセットされる場合 1. 「START」条件 , または「STOP」条件が不正な場所で検出された。( スレー ブ・アドレス転送中 , データ転送中 ) 2. 10 ビットリードアクセス時に , 第 1 バイトにて 10 ビットライトアクセス する前に , リードアクセスのスレーブ・アドレスヘッダが受信された。 3. マスタモードで転送中に「STOP」条件が検出された。 1., 2. の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正バスエラーレポートを抑止するために , 最初の「STOP」条件の受信後フ ラグセットされる。 338 第 16 章 I2C インタフェース [bit14]:BEIE(Bus Error Interrupt Enable) バスエラー割込み許可ビットです。 0 バスエラー割込み禁止。 1 バスエラー割込み許可。 このビットが "1" の時 , BER ビットが "1" がセットされると割込みを発生します。 [bit13]:SCC(Start Condition Continue) 反復「START」条件発生ビットです。 表 16.2-3 ライト時 0 意味をもちません。 1 マスタ転送時に反復「START」条件を発生させる。 このビットの読出し値は常に "0" です。 マスタモード (MSS= 1 , INT= 1 ) 中にこのビットに "1" を書き込むと , 反復「START」 条件が発生し , 自動的に INT ビットをクリアします。 [bit12]:MSS(Master Slave Select) マスタ / スレーブの選択ビットです。 0 スレーブモードとなります。 1 マスタモードとなり「START」条件を発生し IDAR レジスタの値を スレーブアドレスとして送信します。 • このビットは , マスタ送信中にアービトレーションロスが発生した場合クリア され , スレーブモードになります。 • マスタ割込みフラグセット中 (MSS= 1 , INT= 1 ) に "0" を書き込むと INT ビット は自動的にクリアされ , 「STOP」条件が発生し転送が終了します。注 )MSS ビッ トは直接的なリセットとして機能します。 「STOP」条件の発生は , IBSR レジス タの BB ビットを調査することによって確認できます。 • バスがアイドル中 (MSS= 0 , BB= 0 ) に "1" を書き込むと「START」条件が発生 し , IDAR の値が送信されます。 • バス使用中 (BB= 1, TRX= 0, MSS= 0 ) に "1" を書き込むと I2C インタフェースは バスが開放されるまで待ち , 送信を開始します。その間に I2C インタフェースは ライトアクセスを伴うスレーブとしてアドレス指定されると , 転送終了後にバ スは開放されます。その間 , スレーブとして送信中の場合 (IBCR:AAS=1,TRX=1 ), バスが開放されてもデータ送信しません。I2C インタフェースがスレーブ (IBSR:AAS=1 ) として指定されたか , 次の割込み時にデータを送信が正常終了に した (IBCR:MSS= 1 ) か , 不正終了した (IBSR:AL= 1 ) かどうか確認することが重 要となります。 339 第 16 章 I2C インタフェース [bit11]:ACK(ACKnowledge) データを受信許可ビットに従いアクノリッジを発生するビットです。 0 データ受信に対しアクノリッジを発生しない。 1 データ受信に対しアクノリッジを発生する。 • このビットは , スレーブ時のスレーブ・アドレス受信時には無効となります。I2C インタフェースが 7 ビット , または 10 ビットのスレーブ・アドレス指定を検出 したとき , 対応するイネーブルビット (ENTB:ITMK, ENSB:ISMK) がセットされ ていると , アクノリッジを返します。 • このビットへの書込みは , 割込みフラグセット中 (INT= 1 ), またはバスが開放中 (IBSR:BB= 0 ), I2C インタフェースが停止中 (ICCR:EN= 0 ) に行ってください。 [bit10]:GCAA(General Call Address Ackowledge) ゼネラルコールアドレスを受信した場合のアクノリッジ発生許可ビットです。 0 ゼネラルコールアドレスを受信に対しアクノリッジ発生しない。 1 ゼネラルコールアドレスを受信に対しアクノリッジ発生する。 このビットへの書込みは , 割込みフラグセット中 (INT= 1 ), またはバスが開放中 (IBSR:BB= 0 ), I2C インタフェースが停止中 (ICCR:EN= 0 ) に行ってください。 [bit9]:INTE(INTerrupt Enable) 割込み許可ビットです。 0 割込み禁止 1 割込み許可 このビットが "1" の時 , INT ビットが "1" なら割込みを発生します。 340 第 16 章 I2C インタフェース [bit8]:INT(INTerrupt) 転送終了割込み要求フラグビットです。このビットは , リードモディファイ系の命 令では常に "1" が読み出されます。 表 16.2-4 ライト時 0 転送終了割込み要求フラグをクリアする。 1 意味をもちません。 表 16.2-5 リード時 0 転送が終了していない , または転送対象でない , バスが開放状態で ある。 1 アクノリッジビットを含めた 1 バイト転送が終了した時に次の条件 に該当する場合セットされます。 • バスマスタである。 • スレーブ・アドレスに指定された。 • ゼネラルコールアドレスを受信した。 • アービトレーションロスが起こった。 スレーブ・アドレスに指定されているとき , アクノリッジを含むス レーブ・アドレス受信の最後にセットされます。 このビットが "1" の時 , SCL ラインは『L レベル』に保たれます。このビットへ "0" を書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行い , 反復 「START」条件 , または「STOP」条件を生成します。 このビットは , SCC ビット , または MSS ビットに "1" が書き込まれると , クリアさ れます。 ( 注意事項 ) SCC, MSS, INT ビットの競合について SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 反復「START」条件 , または 「STOP」条件発生の競合が起こります。この時の優先度は次のようになります。 1. 次のバイト転送と「STOP」条件発生 INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先され , 「STOP」条件が発生されます。 2. 次のバイト転送と「START」条件発生 INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先され , 反復「START」条件が発生し IDAR の値が送信されます。 3. 反復「START」条件発生と「STOP」条件発生 SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先されま す。「STOP」条件が発生し I2C インタフェースはスレーブモードになります。 341 第 16 章 I2C インタフェース ■ ICCR( クロックコントロールレジスタ ) 図 16.2-3 クロックコントロールレジスタ (ICCR) のビット構成 アドレス: ch.0 ch.1 ch.2 ch.3 bit 15 TEST W 初期値 0 0000BE H 0000CE H 0000DE H 0000EE H 14 R 0 13 EN R/W 0 12 CS4 R/W 1 11 CS3 R/W 1 10 CS2 R/W 1 9 CS1 R/W 1 8 CS0 R/W 1 [bit15]: テストビットです。 必ず "0" を書いてください。 [bit14]: 未使用ビットです。 必ず "0" を書いてください。 [bit13]:EN(ENable) I2C インタフェース動作許可ビットです。 0 動作禁止 1 動作許可 このビットが "0" の時 , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く ) の各 ビットはクリアされます。バスエラー発生 (IBCR:BER= 1 ) によりこのビットはクリア されます。 ( 注意事項 ) 動作禁止にすると , I2C インタフェースは , 直ちに送受信を停止します。 [bit12 ∼ bit8]: CS4 ∼ CS0(Clock Period Select 4 ∼ 0) シリアルクロックの周波数を設定するビットです。 このビットは , I2C インタフェースを動作禁止 (EN= 0 ) にするか , EN ビットがクリ アされたときにのみ書込み可能です。 シフトクロックの周波数 fsck は次式のように設定されます。 φ fsck= n 342 12+16 N > φ : 周辺クロック (= CLKP) 第 16 章 I2C インタフェース 表 16.2-6 レジスタ設定 n CS4 CS3 CS2 CS1 CS0 1 0 0 0 0 1 2 0 0 0 1 0 3 0 0 0 1 1 ••• ••• ••• ••• ••• ••• 31 1 1 1 1 1 CS4 ∼ CS0=00000 は設定禁止です。 100kbps 周辺クロック周波数 CLKP[MHz] 400kbps n fsck n fsck 20.2 16 97.5 3 389.8 13.5 10 99.4 2 337.8 10.1 7 101.4 1 362.0 6.76 4 105.6 1 241.3 5.79 4 90.5 1 206.8 5.07 3 97.5 1 181.0 343 第 16 章 I2C インタフェース ■ 10 ビットスレーブアドレスレジスタ (ITBA) 図 16.2-4 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成 アドレス: ch.0 ch.1 ch.2 ch.3 0000B6 H 0000C6 H 0000D6 H 0000E6 H 初期値 初期値 bit 15 14 13 12 11 10 9 TA9 8 TA8 R R R R R R R/W R/W 0 0 0 0 0 0 0 0 bit 7 TA7 6 TA6 5 TA5 4 TA4 3 TA3 2 TA2 1 TA1 0 TA0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 このレジスタの書き換えは動作停止中に行ってください。(ICCR:EN= 0 ) [bit15 ∼ bit10]: リード時は常に "0" です。 [bit9 ∼ bit0]: 10 ビットスレーブアドレスビット (A9 ∼ A0) 10 ビットアドレスが有効 (ITMK:ENTB= 1 ) のとき , スレーブモードでスレーブ・ア ドレスを受信すると , 受信アドレスと ITBA と比較します。 アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信 されます。 第 1, 第 2 バイト受信データと ITBA レジスタと比較されます。一致が検出されると , アクノリッジ信号が , マスタデバイスに送信し , AAS ビットがセットされます。 I2C インタフェースは , 反復「START」条件のあと 10 ビットリードアクセスのアド レスヘッダの受信に応答します。 スレーブ・アドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー ブ・アドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS(IBSR レジスタ ) が "1" のときのみです。 344 第 16 章 I2C インタフェース ■ 10 ビットスレーブアドレスマスクレジスタ (ITMK) 図 16.2-5 10 ビットスレーブアドレスマスクレジスタ (ITMK) アドレス: ch.0 ch.1 ch.2 ch.3 0000B8 H 0000C8 H 0000D8 H 0000E8 H bit 15 14 ENTB RAL R/W R 初期値 bit 12 11 10 R R R 0 1 1 6 TM6 R/W 5 TM5 R/W 1 1 0 bit 7 TM7 R/W 初期値 13 1 R 9 TM9 R/W 8 TM8 R/W 1 1 1 1 4 TM4 R/W 3 TM3 R/W 2 TM2 R/W 1 TM1 R/W 0 TM0 R/W 1 1 1 1 1 [bit15]: ENTB 10 ビットスレーブアドレス許可ビット 10 ビットスレーブアドレス動作許可ビットです。 0 10 ビットスレーブアドレス動作禁止 1 10 ビットスレーブアドレス動作許可 このビットへの書込みは , I2C インタフェースが停止状態 (ICCR:EN= 0 ) で行ってく ださい。 [bit14]: RAL スレーブアドレス長ビット このビットは , スレーブアドレス長を示します。 0 7 ビットスレーブアドレス 1 10 ビットスレーブアドレス このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可 (ENTB= 1 かつ ENSB= 1) になっている場合に , 10 ビット , 7 ビットスレーブアドレ ス動作のどちらの転送長が有効になるかの決定に使用できます。 このビットは AAS ビット (IBSR) が "1" のときに有効です。 このビットはインタフェースの動作を禁止 (ICCR:EN= 0 ) したときにクリアされま す。 このビットはリードのみ可能です。 [bit13 ∼ bit10]: 未使用ビットです。 リード時は常に "1" が読まれます。 345 第 16 章 I2C インタフェース [bit9 ∼ bit0]: 10 ビットスレーブアドレスマスクビット このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。 このレジスタへの書込みは , I2C インタフェースが動作禁止 (ICCR:EN= 0 ) のとき 行ってください。 0 当該ビットをスレーブアドレス比較に使用しない 1 当該ビットをスレーブアドレス比較に使用する このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ リッジを送信することが可能になります。このレジスタを , 10 ビットスレーブアド レス比較に使用されるときに , このビットを "1" にセットしてください。受信した スレーブアドレスは , ITBA に上書きされます。ASS= 1 (IBSR) の時 ITBA レジスタ を読み出すことによって実際の指定されたフレーブ・アドレスを特定できます。 ITMKの TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9 ∼TM0の値が"1"のときはITBAのアドレスが有効になり"0"の時は無効になります。 例: ITBA アドレス 00100101 11B ITMK アドレス 11111111 00B のとき スレーブアドレスは 00100101 00B ∼ 00100101 11B の空間になります。 346 第 16 章 I2C インタフェース ■ 7 ビットスレーブアドレスレジスタ (ISBA) 図 16.2-6 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成 アドレス: ch.0 ch.1 ch.2 ch.3 0000BB H 0000CB H 0000DB H 0000EB H bit 初期値 7 R 0 6 SA6 R/W 0 5 SA5 R/W 0 4 SA4 R/W 0 3 SA3 R/W 0 2 SA2 R/W 0 1 SA1 R/W 0 0 SA0 R/W 0 このレジスタの書き換えは動作停止中に行ってください。(ICCR:EN= 0 ) [bit7]: 未使用ビットです。 リード時は "0" です。 [bit6 ∼ bit0]: スレーブアドレスビット (SA6 ∼ SA0) スレーブモードでスレーブ・アドレスを受信した時 , 7 ビットスレーブアドレスが 許可 (ISMK:ENSB= 1 ) されていると , 受信スレーブ・アドレスと ISBA と比較を行 います。スレーブ・アドレス一致が検出されると , マスタに対してアクノリッジを 送信し , AAS ビットをセットします。 I2C インタフェースは , 反復「START」条件のあと 7 ビットリードアクセスのアド レスヘッダの受信にアクノリッジを返します。 スレーブ・アドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー ブ・アドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS(IBSR レジスタ ) が "1" のときのみです。 I2C インタフェースは , 10 ビットスレーブ・アドレス指定 , またはゼネラルコール が受信されたとき , ISBA と受信スレーブ・アドレスとの比較を行いません。 347 第 16 章 I2C インタフェース ■ 7 ビットスレーブアドレスマスクレジスタ (ISMK) 図 16.2-7 7BIT スレーブアドレスマスクレジスタ (ISMK) のビット構成 アドレス: ch.0 ch.1 ch.2 ch.3 0000BA H 0000CA H 0000DA H 0000EA H 14 13 12 11 10 9 8 bit 15 ENSB SM6 SM5 SM4 SM3 SM2 SM1 SM0 R/W R/W R/W R/W R/W R/W R/W R/W 0 1 1 1 1 1 1 1 初期値 本レジスタの書き換えは動作停止中に行ってください。(ICCR:EN= 0 ) [bit15]: ENSB 7 ビットスレーブアドレス許可ビット 7 ビットスレーブアドレス動作許可ビットです。 0 7 ビットスレーブアドレス動作禁止 1 7 ビットスレーブアドレス動作許可 [bit14 ∼ bit8]: 7 ビットスレーブアドレスマスクビット (SM6 ∼ SM0) このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。 0 当該ビットをスレーブアドレス比較に使用しない 1 当該ビットをスレーブアドレス比較に使用する このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノ リッジを送信することが可能になります。このレジスタを , 7 ビットスレーブアド レス比較に使用されるときに , このビットを "1" にセットしてください。受信した スレーブアドレスは , ISBA に上書きされます。ASS= 1 (IBSR) の時 ISBA レジスタ を読み出すことによって実際の指定されたフレーブ・アドレスを特定できます。 I2C インタフェースが許可になった後 , スレーブ・アドレス (ISBA) は , 受信動作に よって書き換えられるため , ISMK が書き換えたときは , ISMK を再設定しないと期 待通りの動作をしないことがあります。 ISMKのSM6∼SM0の各ビットがISBAのアドレスの各ビットに対応しておりSM6∼ SM0 の値が "1" のときは ISBA のアドレスが有効になり "0" の時は無効になります。 例: ISBA アドレス 0010111B ISMK アドレス 1111100B のとき スレーブアドレスは 0010100B ∼ 0010111B の空間になります。 348 第 16 章 I2C インタフェース ■ データレジスタ (IDAR) 図 16.2-8 データレジスタ (IDAR) アドレス: ch.0 ch.1 ch.2 ch.3 0000BD H 0000CD H 0000DD H 0000ED H bit 初期値 7 D7 R/W 0 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 [bit7 ∼ bit0]: データビット (D7 ∼ D0) シリアル転送に使用されるデータレジスタであり , MSB から転送されます。 このレジスタの書込み側はダブルバッファになっており , バスが使用中(BB=1)であ る場合 , 書き込みデータはシリアル転送用のレジスタにロードされます。INT ビッ ト (IBCR) がクリアされるか , バスがアイドル状態 (IBSR:BB= 0 ) のとき転送データ は内部転送レジスタにロードされます。 読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー タは INT ビット (IBCR) がセットされている場合のみ有効です。 ■ クロックディセーブルレジスタ (IDBL) 図 16.2-9 クロックディゼーブルレジスタ (IDBL) アドレス: ch.0 ch.1 ch.2 ch.3 0000BF H 0000CF H 0000DF H 0000EF H bit 初期値 7 6 5 4 3 2 1 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 DBL R/W 0 [bit0]: クロックディセーブルビット (DBL) このビットは I2C インタフェース用の動作クロック供給の許可 , 停止を指示します。 低消費電力時に使用できます。 0 I2C のクロックを供給します。 1 I2C のクロックを停止します。I2C ラインは開放されます。 本ビットは , リセットにより "0" に初期化されます。 本ビットに "1" を書き込むと , 本レジスタ (IDBL) を除き , 読出し値は不定値となり , 本ビット ( 本レジスタ ) 以外の書込みは無効になります。 ( 注意事項 ) このビットを "1" にすると I2C は送受信中でも直ちに停止します。 349 第 16 章 I2C インタフェース 16.3 I2C インタフェースの動作 I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL) の 2 本の双方向バスラインにり転送が行われます。 I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) を有し , ワイヤード論理を可能にします。 ■「START」条件 バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ ンタフェースはマスタモードとなり , 「START」条件を発生します。そのとき , スレー ブ・アドレスとして IDAR レジスタの値を送信します。 バスマスタモードで割込みフラグがセットされている時 (IBCR:MSS= 1 , INT= 1 ), SCC ビットに "1" を書き込むことで , 反復「START」条件が生成されます。 バス使用時 (IBSR:BB= 1 , TRX= 0 , IBCR:MSS= 0 または IBCR:INT= 0 ) に , MSS ビット に "1" を書き込むとバスが開放され , 送信が開始されます。 スレーブモード時ライト ( 受信 ) アクセスされると , 転送終了しバスが開放された後 , 送信開始します。そのとき , インタフェースがデータ送信中であれば , バスが開放され ても送信しません。 インタフェースは , 次のことをチェックする必要があります。 • スレーブとして指定された (IBCR:MSS= 0 , IBSR:AAS= 1 ) かどうか。 • 次の割込みで , データバイトを正常に送れた (IBSR:AL= 1 ) かどうか ■「STOP」条件 マスタモード (IBCR:MSS= 1, INT= 1 ) 時に , MSS ビットに "0" を書き込むと , 「STOP」 条件を発生し , スレーブモードになります。ほかの条件での , MSS に "0" 書込みは , 無 視されます。 MSS ビットがクリアされたあと , 「STOP」条件を生成しようとします。 「STOP」条件 を生成する前に , SCL ラインが "L" にドライブされているときは , 生成されません。次 のバイトが転送されたあと割込みが生成されます。 ( 注意事項 ) MSS ビットに "0" を書き込んでから , 「STOP」条件を発生するまでに時間を要します。 「STOP」条件を発生前に I2C インタフェースを動作禁止 (IDBL:DBL=1 または ICCR:EN= 0 ) にすると , 直ちに動作停止し SCL ラインに不正クロックが発生します。 I2C インタフェースを動作禁止する際には , 「STOP」条件を発生を確認 (IBSR:BB=0) し たのち , 動作を禁止 (IDBL:DBL= 1 または ICCR:EN= 0 ) してください。 350 第 16 章 I2C インタフェース ■ スレーブアドレス検出 スレーブモードでは , 「START」条件発生後 , BB=1 にセットされ , マスタからの送信 データを IDAR レジスタへ受信します。 ● 7 ビットスレーブアドレス動作許可の場合 (ISMK:ENSB= 1 ) 8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。このと き , ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合 , AAS=1 にセットし , マスタに対してアクノリッジを送信します。そ の後 , 受信データの bit0( 受信後の IDAR レジスタの bit0) を反転して TRX ビットへ格 納します。 ● 10 ビットスレーブアドレス動作許可の場合 (ITMK:ENTB= 1 ) 10 ビットアドレスのヘッダ部 (11110, TA1, TA0, write) を検出したらマスタに対してア クノリッジを送信し受信データの bit0 を反転して TRX ビットへ格納します。このとき 割込みは発生しません。 続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。このと き ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信しま す。このとき割込みが発生します。 スレーブとしてアドレス指定され , 反復「START」条件を検出した場合 , 10 ビットア ドレスのヘッダ部 (11110, TA1, TA0, read) を受信後に AAS に "1" をセットし , 割込みを 発生します。 10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ (ISBA) を搭載しているので , 両方の動作許可 (ISMK:ENSB=1 , ITMK:ENTB=1) をするこ とにより, 10ビットアドレス/7ビットアドレスに対してアクノリッジを送信できます。 スレーブモード時 (AAS= 1 ) の受信スレーブアドレス長は , ITMK レジスタの RAL ビッ ト に よ っ て 決 定 し ま す。マ ス タ モ ー ド 時 は , 両 方 の 動 作 を 禁 止 (ISMK:ENSB= 0, ITMK:ENTB= 0 ) することにより , I2C インタフェースにスレーブアドレスを生成しな いことが可能です。 全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできます。 351 第 16 章 I2C インタフェース ■ スレーブアドレスマスク スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各 ビットに対してマスクできます。マスクレジスタに "1" をセットされたビットはアド レス比較を行いますが , "0" に設定されているビットは無視されます。スレーブモード (IBSR:AAS= 1 ) 時 , 受信スレーブアドレスは , ITBA(10 ビットアドレス時 ), ISBA(7 ビッ トアドレス時 ) レジスタから読み出せます。 ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの モニターとして使用できます。 ( 注意事項 ) ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを 返すので , この機能は , リアルバスモニターとはなりません。 ■ マスタアドレッシング マスタモードでは , 「START」条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタ の内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを 受信すると , 送信データの bit0( 送信後の IDAR レジスタの bit0) を反転して TRX ビッ トへ格納します。この動作は , 反復「START」条件でも実行されます。 ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第 1 バイトは , 10 ビットシーケンスを示すヘッダ '1 1 1 1 0 A9 A8 0' であり , 続いて , 第 2 バイトでスレー ブアドレスの下位 8 ビット (A7-A0) を送信します。 リード 10 ビットスレーブデバイスは上記のバイトを送信し , 反復「START」条件とと もに , リードアクセスを示すヘッダ '1 1 1 1 0 A9 A8 1' を生成します。 7 ビットスレーブ アクセス 10 ビットスレーブ アクセス ライト 「START」条件 -A6 A5 A4 A3 A2 A1 A0 0 リード 「START」条件 -A6 A5 A4 A3 A2 A1 A0 1 ライト 「START」条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0 リード 「START」条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0 - 反復「START」条件 -1 1 1 1 0 A9 A8 1 ■ アービトレーション マスタ送信時に , 他のマスタも同時にデータを送信している場合 , アービトレーション が起こります。自身の送信データが "1", SDA ライン上のデータが "L" レベルの場合 , 自身はアービトレーションを失ったと見なし , AL=1 にセットします。 インタフェースがデータの最初のビットで , 不要な「START」条件を検出されるか 「START」条件 , 「STOP」条件の生成が失敗した場合 , AL=1 がセットされます。 アービトレーションロスが発生すると , MSS=0, TRX=0 となり , スレーブ受信モードと なり , 自身のスレーブアドレスを受信するとアクノリッジを返します。 352 第 16 章 I2C インタフェース ■ アクノリッジ アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット (IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択できます。 スレーブモード時のデータ送信 ( 他のマスタからのリードアクセス ) に , マスタからア クノリッジが無くても , TRX ビットは "0" にセットし , 受信モードになります。これに より , マスタはスレーブが SCL ラインを開放した時に , ストップコンディションを発 生できます。 マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか どうかをチェックできます。 ■ バスエラー 以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に なります。 • データ転送中 (ACK ビット含む ) の I2C バス 上の基本規定違反の検出 • マスタ一時のストップコンディション検出 • バスアイドル時の I2C バス上の基本規定違反の検出 ( 注意事項 ) 10 ビットアドレス Disable 時に於いても 10 ビットモードアドレッシングのバスエラーは 検出されます。 ■ エラーを発生しない通信エラー マスタモード送信時 , SCL ラインにノイズ等で不正クロックが発生すると , I2C インタ フェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ラインに "L" を出したまま , ハングアップすることがあります。このようなクロックの不正に対 し , エラー (AL= 1 , BER= 1 ) が発生しません。 この場合次の方法でエラー処理をしてください。 1. MSS= 1 , TRX= 1 , INT= 1 の時 , LRB= 1 であれば , 通信エラーと判断。 2. ここで , EN= 0 とし , その後 EN= 1 とすることにより , 擬似的に SCL が 1 クロック 発生します。 これにより , スレーブにバスを開放させます。 EN= 0 から EN= 1 の期間は , スレーブ側が , クロックと認識できる期間 ( 送信クロッ クの "H" 期間と同じ程度 ) としてください。 3. EN= 0 の時点で , IBSR, IBCR はクリアされますので , 「START」コンディションか ら再送信処理をしてください。このとき , BSS= 0 による「STOP」コンディション は生成されません。 このとき , EN= 1 から MSS= 1 (「START」コンディション ) までに , "n × 7 × tCPP" 以上の時間を空けてください。 例 : 高速モードの場合 : 6 × 7 × 30.3 ≒ 1.273 µ s 標準モードの場合 :27 × 7 × 30.3 ≒ 5.727 µ s 353 第 16 章 I2C インタフェース ( 注意事項 ) BER がセットされている場合は , EN= 0 でクリアされませんのでクリア後 , 再送信してく ださい。 ■ その他 • アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド レッシングされていなかった場合をソフトで判断しなければならない。 アービトレーションロストするとハード的にスレーブになるが , 1 バイト転送終了 後 , CLK ライン , DATA ライン双方を "L" に引っ張る。このため , アドレッシングさ れていなければ , 即座に CLK ライン , DATA ラインを開放し , アドレッシングされ ていた場合には , スレーブ送信または , スレーブ受信の準備をしてから , CLK ライ ン , DATA ラインを開放する必要がある。( すべてソフトにて処理する必要がありま す。) • I2 C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点で , あるい割込み条 件に該当していた場合 , 割込み要因がたつ仕様になっています。1 つの割込みで , 複 数の割込み条件を判断しなければならないため , 割込みルーチン内で , 各フラグを チェックしなければ , なりません。1 バイト転送終了時点での割込み条件を下記に 示します。 - バスマスタであった場合 - アドレスされたスレーブであった場合 - ゼネラルコールアドレスを受信した場合 - アービストレーションロストが生じた場合 • アービトレーションロストを検出した場合 , 即座に割込み要因が立つのではなく , 1 バイト転送終了した時点で要因は立ちます。 アービトレーションロストを検出するとハード的にスレーブになるが , スレーブに なっても , 割込み要因をたてるために , トータル 9 クロック出力する。よって , 即座 に割込み要因が立たないため , アービトレーションロスト後に処理を行う事はでき ない。 354 第 16 章 I2C インタフェース 16.4 動作フローチャート この節では , 次の動作例のフローチャートを示します。 • メインルーチン • 割込みルーチン ■ メインルーチン 図 16.4-1 メインルーチン 開始 スレーブアドレス を設定 バスエラー割込み許可 I2Cの動作許可 YES マスタ受信動作 NO マスタ送信 送信データバイト数 のセット マスタ受信 受信データバイト数 のセット スレーブアドレスセット 受信 (データ方向ビット=0) スレーブアドレスセット 送信 (データ方向ビット=0) YES YES BBbit = 1 ? NO NO スレーブアドレス送信 スタートコンディション発生 BBbit = 0 ? BBbit = 1 ? スレーブアドレス受信 スタートコンディション発生 YES BBbit = 0 ? NO ALbit = 1 ? YES NO I2Cの動作禁止 YES NO ALbit = 1 ? YES NO I2Cの動作禁止 355 第 16 章 I2C インタフェース ■ 割込みルーチン 図 16.4-2 割込みルーチン 2 1 開始 STOPコンディション発生 YES バスエラーは 生じたか 2 RETI NO ALは生じたか I2Cの初期設定 YES 3 3 I2Cの動作許可 3 アクノリッジ 発生許可 RETI 1 スレーブプログラムの 割込みルーチンへ NO マスタか NO YES NO ACKは返ってきたか YES データ方向ビット TRX bit = 1 ? NO YES 残りの送信バイト数=0? NO 残りの受信バイト数=0? YES 1 転送終了割込み 要因クリア 残りの受信バイト数=1? アクノリッジ発生許可 アクノリッジ発生禁止 第1バイト目の受信か ? ADTbit = 1 ? YES 受信バイト数のデクリメント 受信データをRAMへ格納 転送終了割込み 要因クリア RETI 356 YES NO NO RETI 1 NO 送信倍と数のデクリメント 送信データのセット YES 第 17 章 DMAC(DMA コントローラ ) この章では , DMA コントローラ (DMAC) の概要 , レジスタの構成 / 機能 , および DMA コントローラ (DMAC) の動作について説明します。 17.1 DMA コントローラ (DMAC) 概要 17.2 DMA コントローラ (DMAC) のレジスタ 17.3 DMA コントローラの動作 17.4 転送要求の設定 17.5 転送シーケンス 17.6 DMA 転送全般 17.7 動作フローチャート 17.8 データパス 357 第 17 章 DMAC(DMA コントローラ ) 17.1 DMA コントローラ (DMAC) 概要 本モジュールは , FR ファミリデバイスにて DMA(Direct Memory Access) 転送を実 現するためのモジュールです。 本モジュールの制御による DMA 転送により , CPU を介さずに各種データ転送を高 速に行うことが可能となり , システムのパフォーマンスを増加させます。 外部転送要求端子には USB ファンクションのエンドポイント 1・2 の DMA 転送要 求がチップ内部で接続されています。USB ホストには DMA 転送要求機能はありま せん。 ■ ハードウェア構成 本モジュールは , 主に以下のものより構成されます。 • 独立した DMA チャネル× 5ch • 5ch 独立アクセス制御回路 • 32bit アドレスレジスタ ( リロード指定可 : 各チャネル 2 本 ) • 16bit 転送回数レジスタ ( リロード指定可 : 各チャネル 1 本 ) • 4 ビットブロック回数レジスタ ( 各チャネル 1 本 ) • 外部転送要求入力 DREQ0, DREQ1(ch.0, ch.1, ch.2 のみ ) • 外部転送要求受付出力 DACK0, DACK1(ch.0, ch.1, ch.2 のみ ) • DMA 終了出力 DEOP0, DEOP1, DEOP2(ch.0, ch.1, ch.2 のみ ) • fly-by transfer (memory to I/O , I/O to memory) (ch.0, ch.1, ch.2 のみ ) • Two-cycle transfer ■ 主要機能 本モジュールによるデータ転送には主に以下の様な機能があります。 • 複数チャネルの独立したデータ転送が可能 (5ch) - 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) - ch.0, ch.1 間にて順位回転が可能 • DMAC 起動要因 - 外部専用端子入力 ( エッジ検出 / レベル検出 ch.0 ∼ ch.2 のみ ) - 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込み含む ) - ソフトウェア要求 ( レジスタ書込み ) • 転送モード - デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 - アドレシングモード 32bit フルアドレス指定 ( 増加 / 減少 / 固定 ) ( アドレス増減幅は− 255 ∼+ 255 まで指定可能 ) - データの種類 byte/halfword/word 長 - シングルショット / リロード選択可能 358 第 17 章 DMAC(DMA コントローラ ) ■ レジスタ一覧 図 17.1-1 レジスタ一覧 (bit) ch.0コントロール/ステータスレジスタA 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 転送元アドレスレジスタ 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 転送元アドレスレジスタ DMASA4 00001020H ch.4 転送先アドレスレジスタ DMADA4 00001024H 31 24 23 16 15 8 7 0 00000240H 359 第 17 章 DMAC(DMA コントローラ ) ■ ブロックダイヤグラム 図 17.1-2 ブロックダイヤグラム カウンタ バッファ セレクタ DMA起動要因 選択回路 & 要求受付制御 ライトバック バスコントローラへ DMA転送要求 ペリフェラル起動要求/停止入力 外部端子起動要求/停止入力 DTC 2段レジスタ DTCR カウンタ DSS[3:0] バッファ Read Write リード/ライト 制御 優先度回路 ERIR,EDIR セレクタ 割込みコントローラへ 外部割込みクリア BLK register MCLREQ TYPE.MOD,WS セレクタ カウンタバッファ X-bus DMAコントロール DSAD 2段レジスタ SADM,SASZ[7:0] SADR ライトバック セレクタ アドレス カウンタバッファ アクセス アドレスカウンタ バス制御部 バス コントロ ーラへ DDNO register DDAD 2段レジスタ DADM,DASZ[7:0] DADR ライトバック DMAC 5ch ブロックダイヤグラム 360 バス制御部 セレクタ 状態遷移回路 DDNO IRQ[4:0] 第 17 章 DMAC(DMA コントローラ ) 17.2 DMA コントローラ (DMAC) のレジスタ この節では , DMA コントローラ (DMAC) で使用するレジスタの構成 , および機能に ついて説明します。 ■ レジスタ設定時の注意 本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。 以降で説明する各レジスタのビット機能についている「*マーク」は DMAC 転送中に 設定すると動作に影響するビットです。このビットの書き換えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。 DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定 した場合は , 起動許可後に設定は有効になります。 DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000 または DMACA:PAUS=1 のと き ) で設定した場合は , 一時停止解除後に設定は有効になります。 ■ DMAC-ch.0, 1, 2, 3, 4 コントロール / ステータスレジスタ A[DMACA0 ∼ 4] DMAC各チャネルの動作制御を行うレジスタで, 各チャネル毎に独立して存在します。 各ビット機能は以下に示す通りです。 図 17.2-1 DMAC-ch.0, 1, 2, 3, 4 コントロール / ステータスレジスタ A[DMACA0 ∼ 4] のビット構成 bit 31 30 29 28 27 15 14 13 25 24 23 IS[4:0] DENB PAUS STRG bit 26 12 11 ( 10 22 21 20 19 DDNO[3:0] 9 8 7 6 5 18 17 16 BLK[3:0] 4 3 2 1 0 DTC[15:0] : 00000000_0000XXXX_XXXXXXXX_XXXXXXXX bit) [bit31]: DENB (Dma ENaBle) :DMA 動作許可ビット 各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。 起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま す。 起動許可されていないチャネルに対して発生した転送要求は , 全て無効となりま す。 起動されたチャネルの転送が指定回数分全て終了した場合 , 本ビットは "0" になり , 転送は停止します。 本ビットに "0" をライトすると強制停止しますが , 必ず PAUS ビット [DMACA:bit30] で DMA を一時停止状態にしてから強制停止 ("0" ライト ) してください。一時停止 しないで強制停止した場合は DMA は停止しますが転送データは保証されません。 停止の確認は DSS[2:0] ビット (DMACB:bit18 ∼ bit16) で行ってください。 DENB 0 機能 対応チャネル DMA 動作禁止 ( 初期値 ) 361 第 17 章 DMAC(DMA コントローラ ) DENB 1 機能 対応チャネル DMA 動作許可 • リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。 • リード / ライト可能です。 • DMAC 全体制御レジスタ DMACR の bit15:DMAE ビットにより , 全チャネル の動作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状 態を維持します。また , 本ビットにより動作が許可されている状態にて前記 ビットにより動作が禁止された場合 , 本ビットは "0" となり , 転送は中断しま す ( 強制停止 )。 [bit30]: PAUS (PAUSe): 一時停止指示 対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません。(DMA が 停止中は DSS ビットが "1xx" になります ) 起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま す。 本ビットがセットされている間に新たに発生した転送要求は受け付けられますが , 本ビットをクリアしないと転送は開始しません。(「17.6 DMA 転送全般」を参照 ) PAUS 機能 0 対応チャネル DMA 動作許可 ( 初期値 ) 1 対応チャネル DMA 動作一時停止 • リセット時 :"0" に初期化されます。 • リード / ライト可能です。 [bit29]: STRG (Software TRiGger) : 転送要求 対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開 始します。 ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操作は無効と なります。 ( 注意事項 ) DMAE ビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合 , 転送要 求は有効となり , 転送を開始します。 また , PAUS ビットへの "1" 書込みと同時である場 合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しませ ん。 362 第 17 章 DMAC(DMA コントローラ ) STRG 機能 0 無効 1 DMA 起動要求 • リセット時 :"0" に初期化されます。 • リード値は常に "0" となります。 • ライト値は "1" のみ有効で , "0" は動作に影響を与えません。 [bit28 ∼ bit24]: IS4 ∼ IS0 (Input Select) * : 転送要因選択 転送要求の要因を以下の様に選択します。ただし , STRG ビット機能によるソフト ウェア転送要求は本設定に関わらず有効となります。 IS 機能 00000 ハードウェア 00001 ↓ 01101 設定禁止 ↓ 設定禁止 01110 外部端子 (DREQ) H レベル or ↑エッジ 01111 外部端子 (DREQ) L レベル or ↓エッジ 10000 UART0 ( 受信完了 ) 10001 UART1 ( 受信完了 ) 10010 UART2 ( 受信完了 ) 10011 UART0 ( 送信完了 ) 10100 UART1 ( 送信完了 ) 10101 UART2 ( 送信完了 ) 10110 外部割込み 0 10111 外部割込み 1 11000 リロードタイマ 0 11001 リロードタイマ 1 11010 リロードタイマ 2 11011 外部割込み 2 11100 外部割込み 3 11111 PPG0 11110 PPG1 11111 PPG2 • リセット時 :00000 に初期化されます。 • リード / ライト可能です。 363 第 17 章 DMAC(DMA コントローラ ) ( 注意事項 ) • 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1xxxx), 選択した機能は , ICR レジスタで割込みを禁止状態にしてください。 • デマンド転送モードを選択した場合は , IS[4:0]=01110, 01111 のみ設定可能です。他の 要因での起動は禁止。 • 外部要求入力は , ch.0, ch.1, ch.2 のみ有効です。ch.3, ch.4 は外部要求入力は選択でき ません。またレベル検出かエッジ検出かはモード設定により決定されます。( デマンド 転送はレベル , ほかはエッジ検出になります ) [bit23 ∼ bit20]: DDNO3 ∼ DDNO0 ( ダイレクトアクセスナンバー ) * : 内蔵周辺への fly-by 機能 対応するチャネルで使用する転送先 / 元の内蔵周辺を指定します。 表 17.2-1 ダイレクトアクセスナンバー DDNO Function 0000 設定禁止 0001 未使用 0010 未使用 0011 未使用 0100 未使用 0101 未使用 0110 未使用 0111 未使用 1000 未使用 1001 未使用 1010 未使用 1011 未使用 1100 未使用 1101 未使用 1110 未使用 1111 設定禁止 • リセット時 :0000 に初期化されます。 • リード / ライト可能です。 ( 注意事項 ) 本品種はこの機能はサポートされません。書込みデータは無視されます。 364 第 17 章 DMAC(DMA コントローラ ) [bit19 ∼ bit16]: BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定 対応するチャネルのブロック転送時のブロックサイズを指定します。 本ビットに 設定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰り返 し回数 ) となります。ブロック転送を行わない場合は 01H ( サイズ 1) を設定してく ださい。( デマンド転送時は本レジスタ値は無視されます。サイズ 1 となります。) BLK XXH 機能 対応チャネルのブロックサイズ指定 • リセット時 : 初期化されません。 • リード / ライト可能です。 • 全ビット "0" を指定した場合 , ブロックサイズは 16word となります。 • リード時は , 常にブロックサイズ ( リロード値 ) が読み出されます。 [bit15 ∼ bit0]: DTC (Dma Terminal Count register) * : 転送回数レジスタ 転送回数を格納するレジスタです。各レジスタは 16bit 長で構成されています。 全てのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタの リロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設定 値をレジスタに戻します。 DTC XXXXH 機能 対応チャネルの転送回数指定 DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 )。DMA の転 送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了 します。よって DMA 動作中の転送回数指定値を読み出すことはできません。 • リセット時 : 初期化されません。 • リード / ライト可能です。DTC のアクセスは , 必ず halfword 長または word 長 にてアクセスしてください。 • リード時の値は , カウント値となります。リロード値のリードはできません。 • リセット時 : 初期化されません。 365 第 17 章 DMAC(DMA コントローラ ) ■ DMAC-ch.0, 1, 2, 3, 4 コントロール / ステータスレジスタ B [DMACB0 ∼ 4] DMAC 各チャネルの動作制御を行うレジスタで , 各チャネル毎に独立して存在します。 各ビット機能は以下に示す通りです。 図 17.2-2 DMAC-ch.0, 1, 2, 3, 4 bit 31 30 29 28 コントロール / ステータスレジスタ B [DMACB0 ∼ 4] のビット構 成 27 26 25 24 23 22 21 20 19 18 TYPE[1:0] MOD[1:0] WS[1:0] SADM DADM DTCR SADR DADR ERIE EDIE bit 15 14 13 12 11 10 9 8 7 6 SASZ[7:0] ( 5 4 3 17 16 DSS[2:0] 2 1 0 DASZ[7:0] : 00000000_00000000_XXXXXXXX_XXXXXXXX bit) [bit31, bit30]: TYPE1, TYPE0 (TYPE) *: 転送タイプ設定 対応チャネルの動作タイプを以下の様に設定します。 two-cycle 転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設 定してリード動作とライト動作を転送回数分繰り返して転送するモード。転送元 / 転送先ともに全領域 (32bitADDRESS) 指定可能です。 fly-by 転送モード : 転送先アドレス (DMADA) に memory アドレスを設定すること により外部 ( 外部転送を 1cycle で行うモード。memory アドレスは必ず外部領域を 指定してください。 TYPE 機能 00 two-cycle 転送 ( 初期値 ) 01 Fly-by: Memory → I/O 転送 10 Fly-by: I/O → memory 転送 11 設定禁止 • リセット時 : "00" に初期化されます。 • リード / ライト可能です。 [bit29, bit28]: MOD1, MOD0 (MODe) * : 転送モード設定 対応チャネルの動作モードを以下の様に設定します。 MOD 機能 00 ブロック / ステップ転送モード ( 初期値 ) 01 バースト転送モード 10 デマンド転送モード 11 設定禁止 • リセット時 : "00" に初期化されます。 366 第 17 章 DMAC(DMA コントローラ ) • リード / ライト可能です。 [bit27, bit26]: WS1, WS0 (Word Size) : 転送データ幅選択 対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で 指定回数分の転送を行います。 WS 機能 00 Byte 単位で転送 ( 初期値 ) 01 Halfword 単位で転送 10 Word 幅単位で転送 11 設定禁止 • リセット時 : "00" に初期化されます。 • リード / ライト可能です。 [bit25]: SADM (Source-ADdr. count-Mode select) * : 転送元アドレスカウントモード指 定 対応するチャネルの転送元アドレスの , 1 転送毎のアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス レジスタ (DMASA) に書き込まれます。 よって DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン ト幅 (SASZ, DASZ) を 0 としてください。 SADM 機能 0 転送元アドレスは増加します。( 初期値 ) 1 転送元アドレスは減少します。 • リセット時 : "0" に初期化されます。 • リード / ライト可能です。 [bit24]: DADM (Destination-ADdr. Count-Mode select) * : 転送先アドレスカウント モード指定 対応するチャネルの転送先アドレスの , 1 転送毎のアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス レジスタ (DMADA) に書き込まれます。 よって DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン 367 第 17 章 DMAC(DMA コントローラ ) ト幅 (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" に初期化されます。 • リード / ライト可能です。 [bit22]: SADR (Source-ADdr.-reg. Reload) * : 転送元アドレスレジスタリロード指定 対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス レジスタ値を初期設定値に戻します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。 本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し ている場合は , 増加したアドレスとなります )。 SADR 368 機能 0 転送元アドレスレジスタリロードを禁止 ( 初期値 ) 1 転送元アドレスレジスタリロードを許可 第 17 章 DMAC(DMA コントローラ ) • リセット時 : "0" に初期化されます。 • リード / ライト可能です。 [bit21]: DADR (Dest.-ADdr.-reg. Reload) * : 転送先アドレスレジスタリロード指定 対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス レジスタ値を初期設定値に戻します。 その他 , 機能の詳細は bit22:SADR の内容と等価になります。 DADR 機能 0 転送先アドレスレジスタリロードを禁止 ( 初期値 ) 1 転送先アドレスレジスタリロードを許可 • リセット時 : "0" に初期化されます。 • リード / ライト可能です。 [bit20]: ERIE (ERror Interrupt Enable) * : エラー割込み出力許可 エラー発生による終了時の割込み発生を制御します。 発生したエラーの内容は DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割込みが発生するのではな く , 特定の終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼ DSS0 ビット説明参照のこと )。 ERIE Function 0 エラー割込み要求出力禁止 ( 初期値 ) 1 エラー割込み要求出力許可 • リセット時 : "0" に初期化されます。 • リード / ライト可能です。 [bit19]: EDIE (EnD Interrupt Enable) * : 終了割込み出力許可 正常終了時の割込み発生を制御します。 EDIE 機能 0 終了割込み要求出力禁止 ( 初期値 ) 1 終了割込み要求出力許可 • リセット時 : "0" に初期化されます。 • リード / ライト可能です。 369 第 17 章 DMAC(DMA コントローラ ) [bit18 ∼ bit16]: DSS2 ∼ DSS0 (Dma Stop Status) * : 転送停止要因表示 対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビット のコード ( 終了コー ド ) を表示します。終了コードの内容は以下の通りです。 DSS 機能 割込み発生 000 初期値 なし x01 アドレスエラー ( アンダ / オーバフロー ) エラー x10 転送停止要求 エラー x11 正常終了 1xx DMA 一時停止中 (DMAH, PAUS ビット , 割込み等 ) 終了 None 転送停止要求は , 周辺回路からの要求と外部端子 DSTP 機能を使用した場合のみ セットされます。 ( 注意事項 ) 「割込み発生」欄は , 発生可能な割込み要求の種類を示す。 • リセット時 :"000" に初期化されます。 • "000" を書き込むことにより , クリアされます。 • リード / ライト可能ですが , 本ビットへの書込みは "000" のみ有効となります。 [bit15 ∼ bit8]: SASZ (Source Addr count SiZe) * : 転送元アドレスカウントサイズ指定 対応するチャネルの 1 転送毎の転送元アドレス (DMASA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送元アドレスカウントモード (SADM) の指定に従います。 SASZ XXH 機能 転送元アドレスの増減幅を指定します。0 ∼ 255 • リセット時 : 初期化されません。 • リード / ライト可能です。 [bit7 ∼ bit0]: DASZ (Des Addr count SiZe) * : 転送先アドレスカウントサイズ指定 対応するチャネルの 1 転送毎の転送先アドレス (DMADA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送先アドレスカウントモード (DADM) の指定に従います。 DASZ XXH 機能 転送先アドレスの増減幅を指定します。0 ∼ 255 • リセット時 : 初期化されません。 • リード / ライト可能です。 370 第 17 章 DMAC(DMA コントローラ ) ■ DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4] DMAC各チャネルの動作制御を行うレジスタで, 各チャネル毎に独立して存在します。 各ビット機能は以下に示す通りです。 図 17.2-3 DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼ DMASA4] のビット構成 bit 31 30 29 28 27 26 25 bit 15 14 13 12 11 10 9 24 23 22 21 DMASA[31:16] 8 7 6 5 DMASA[15:0] 20 19 18 17 16 4 3 2 1 0 (初期値: XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXビット) bit 31 30 29 28 27 26 25 bit 15 14 13 12 11 10 9 24 23 22 21 DMADA[31:16] 8 7 6 5 DMADA[15:0] 20 19 18 17 16 4 3 2 1 0 (初期値: XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXビット) 転送元 / 転送先アドレスを格納するレジスタ群です。各レジスタは 32 ビット長で構成 されています。 [bit31 ∼ bit0]: DMASA (DMA Source Addr) * : 転送元アドレス設定 転送元アドレスの設定を行います。 [bit31 ∼ bit0]: DMADA (DMA Destination Addr) * : 転送先アドレス設定 転送先アドレスの設定を行います。 DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウン タバッファに格納して 1 転送毎に設定に従いアドレスカウントします。DMA の転送終 了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了します。 よって DMA 動作中のアドレスカウンタ値を読み出すことはできません。 全てのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先アドレス レジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に 初期設定値をレジスタに戻します。この際 , 他のアドレスレジスタには影響を与えま せん。 • リセット時 : 初期化されません。 • リード / ライト可能です。本レジスタは , 必ず 32 ビットデータ でアクセスしてくだ さい。 • リード時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスアド レス値となります。リロード値のリードはできません。よって転送アドレスをリア ルタイムでリードできません。 ( 注意事項 ) 本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ に DMA 転送を行うことはできません。 371 第 17 章 DMAC(DMA コントローラ ) ■ DMAC-ch.0 ∼ ch.4 DMAC 全体制御レジスタ [DMACR] DMAC 5ch 分全体の動作制御を行うレジスタです。本レジスタは必ず バイト長でアク セスしてください。 各ビット機能は以下に示す通りです。 図 17.2-4 DMAC-ch.0 ∼ ch.4 DMAC 全体制御レジスタ [DMACR] のビット構成 bit 31 DMAE bit 15 - 30 14 - 29 28 - PM01 13 12 - 27 26 25 DMAH[3:0] 11 10 9 - 24 8 - 23 7 - 22 6 - 21 5 - 20 4 - 19 3 - 18 2 - 17 1 - 16 0 - (初期値: 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXX_ビット) [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" に初期化されます。 • リード / ライト可能です。 [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" に初期化されます。 372 第 17 章 DMAC(DMA コントローラ ) • リード / ライト可能です。 [bit27 ∼ bit24]: DMAH (DMA Halt) :DMA 一時停止 DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本 ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。 起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと なります。 本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送 を開始します。 DMAH 0000 0000 以外 機能 全チャネル DMA 動作許可 ( 初期値 ) 全チャネル DMA 一時停止 • リセット時 : "0" に初期化されます。 • リード / ライト可能です。 [bit30, bit29, bit23 ∼ bit0]: (Reserved): 未使用ビットです。 リ−ド値は不定です。 ■ その他の機能 本品種は , 外部転送用として DACK, DEOP, DREQ の端子がありますが汎用ポートを兼 用になっております。 この機能を使用するときはポート機能から DMA 端子機能に切り換える必要がありま す。 PFR レジスタの設定で切り換えてください。 373 第 17 章 DMAC(DMA コントローラ ) 17.3 DMA コントローラの動作 本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速に データ転送を制御する多機能 DMA コントローラです。 ■ 主要動作 • 各転送チャネルは , 独立に各種機能を設定します。 • 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ ん。 • 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント ローラの制御によりバス権を取得して転送を開始します。 • 転送は各チャネルごとに独立に設定されたモード設定に従ったシーケンスで行わ れます。 ■ 転送モード DMA の各チャネルは , それぞれの DMACB レジスタの MOD[1:0] ビットで設定された 転送モードに従って転送動作を行います。 ● ブロック / ステップ転送 1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受付け られるまでは DMA はバスコントローラに対し転送要求を停止します。 1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK[3:0]) ● バースト転送 1 回の転送要求にて指定転送回数終了まで連続して転送を行います。 指定転送回数 : DMACA:DTC[15:0]) ブロックサイズ分×転送回数分 (DMACA:BLK[3:0] × ● デマンド転送 外部からの転送要求入力 (DREQ 端子のレベル検出 ) 終了か , 指定転送回数終了までは 連続して転送を行います。 デマンド転送での指定転送回数は設定した転送回数分 (DMACA:DTC[15:0]) となりま す。ブロックサイズは "1" 固定となりレジスタ値は無視されます。 374 第 17 章 DMAC(DMA コントローラ ) ■ 転送タイプ ● two-cycle 転送 ( 通常転送 ) DMA コントローラの動作は , リード動作とライト動作を 1 つの単位として動作を行い ます。 転送元レジスタのアドレスからデータをリードして転送先レジスタのアドレスへデー タをライトします。 ● fly-by 転送 (memory to IO) DMA コントローラの動作は , リード動作を 1 つの単位として動作を行います。 fly-by 転送を設定して DMA 転送を行うと DMA はバスコントローラに対し fly-by 転送 (read) 要求を出しバスコントローラは外部インタフェースに fly-by 転送 (read) をさせま す。 ● fly-by 転送 (IO to memory) DMA コントローラの動作は , ライト動作を 1 つの単位として動作を行います。 他は fly-by 転送 (memory to IO) と同等です。 本品種での fly-by 転送のアクセス領域は必ず外部領域でなければいけません。 375 第 17 章 DMAC(DMA コントローラ ) ■ 転送アドレス アドレシングには以下の様なものがあり , 各チャネル転送元 / 転送先ごとに独立に設定 します。 two-cycle 転送と fly-by 転送でのアドレス設定レジスタ (DMASA, DMADA) の指定方法 は異なります。 ● two-cycle 転送でのアドレスの指定 あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を アドレスとしてアクセスします。 転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し て転送を開始します。 1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加 算 / 減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの 内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバックさ れます。 よってアドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか更新 されませんので転送中のアドレスをリアルタイムに知ることはできません。 ● fly-by 転送でのアドレスの指定 fly-by 転送では転送先アドレスレジスタ (DMADA) から読み出した値をアドレスとして アクセスします。転送元アドレスレジスタ (DMASA) は無視されます。設定するアド レスは必ず外部領域にしてください。 転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し て転送を開始します。 1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加 算 / 減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの 内容は 1 ブロック転送単位終了ごとにレジスタ (DMADA) へライトバックされます。 よってアドレスレジスタ (DMADA) 値は , 1 ブロック転送単位ごとにしか更新されませ んので転送中のアドレスをリアルタイムに知ることはできません。 376 第 17 章 DMAC(DMA コントローラ ) ■ 転送回数と転送終了 ● 転送回数 1 ブロック転送単位終了ごとに , 転送回数レジスタをディクリメント ( − 1) します。転 送回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止ま たは再起動 (1) します。 転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新 されません。 転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて いる場合はレジスタ値を初期化して転送待ち状態になります。(DMACB:DTCR) ● 転送終了 転送終了要因には , 以下の様なものがあり , 終了時は終了コードとして要因が表示され ます。(DMACB:DSS[2:0]) • 指定転送回数の終了 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) = > 正常終了 • 周辺回路または外部端子 (DSTP) からの転送停止要求の発生 = > エラー • アドレスエラーの発生 = > エラー • リセットの発生 = > リセット 各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを 発生可能です。 377 第 17 章 DMAC(DMA コントローラ ) 転送要求の設定 17.4 DMA 転送を起動する転送要求は , 以下の 3 種類があります。 ソフトウェア要求につ いては , 他の要求の設定に関わらず常に使用できます。 ■ 外部転送要求端子 各チャンネル毎に 1 本用意された入力端子への入力により , 転送要求を発生します。 本品種ではチャネル 0 ∼ 2 のみ対応しています。(DREQ0, 1, 2) この際の有効入力は , 転送タイプと起動要因設定により次の要因が選択されます。 ● エッジ検出 転送タイプが ブロック / ステップ / バースト転送のときはエッジ検出が選択されます。 • 立ち下がりエッジ検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01110 の とき • 立ち上がりエッジ検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01111 の とき 転送タイプが デマンド転送のときはレベル検出が選択されます。 • "H" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01110 のとき • "L" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01111 のとき ■ 内蔵周辺要求 内蔵周辺回路の割込み発生により , 転送要求を発生します。 各チャネル毎に , どの周辺の割込みにより転送要求を発生するかを設定します。 (DMACA:IS[4:0]=1xxxx) 外部転送要求とは同時に使用できません。 ( 注意事項 ) 転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン トローラの設定を割込み禁止に設定してください。(ICR レジスタ ) ■ ソフトウェア要求 レジスタのトリガビットへの書込みにより , 転送要求を発生します。(DMACA:STRG) 上記 2 つの転送要求とは独立で , 常に使用できます。 起動 ( 転送許可 ) と同時にソフトウェア要求をおこなった場合 , 直後にバスコントロー ラに対し DMA 転送要求を出力し転送を開始します。 378 第 17 章 DMAC(DMA コントローラ ) 17.5 転送シーケンス 各チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと 転送モードを独立して設定できます。(DMACB:TYPE[1:0], MOD[1:0] の設定 ) ■ 転送シーケンスの選択 レジスタの設定により以下のシーケンスが選択可能である。 • バースト two-cycle 転送 • デマンド two-cycle 転送 • ブロック / ステップ two-cycle 転送 • バースト fly-by 転送 • デマンド fly-by 転送 • ブロック / ステップ fly-by 転送 ■ バースト two-cycle 転送 1 回の転送要因にて指定転送回数の転送を続けて行う。two-cycle 転送の場合は転送元 / 転送先アドレスは 32 ビット全領域指定可能です。 転送要因は , 周辺転送要求 / ソフトウェア転送要求 / 外部端子 (DREQ) エッジ入力検出 要求を選択できます。 表 17.5-1 指定可能転送アドレス表 転送元アドレス指定 方向 転送先アドレス指定 32 ビット全領域指定可能 => 32 ビット全領域指定可能 ● バースト転送の特徴 • 転送要求を 1 回受け付けると , 転送回数レジスタが 0 になるまで連続して転送を行 います。 転 送 回 数 は ブ ロ ッ ク サ イ ズ 分 × 転 送 回 数 分 に な り ま す。(DMACA:BLK[3:0] × DMACA:DTC[15:0]) • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求 を受け付けます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転 送単位の境目でチャネルを切替え , そのチャネルの転送要求がクリアされるまで復 帰しません。 379 第 17 章 DMAC(DMA コントローラ ) 図 17.5-1 外部端子立上りエッジ起動 , ブロック数 =1, 転送回数 =4 のときのバースト転送例 ■ バースト fly-by 転送 転送領域が外部領域のみであること , 転送単位がリード (memory to IO) またはライト (IO to memory) だけであることを除けば two-cycle 転送と同じです。 表 17.5-2 指定可能転送アドレス表 380 転送元アドレス指定 方向 転送先アドレス指定 指定不要 ( 無効 ) なし 外部領域 第 17 章 DMAC(DMA コントローラ ) ■ デマンド転送 two-cycle 転送 転送要求として , 外部端子の "H" または "L" レベルを選択している場合のみ , デマンド 転送シーケンスとなります。( レベル選択は , DMACA:IS[4:0] にて設定する ) ● 連続転送の特徴 • 転送要求を 1 回の転送ごとにチェックし , 外部からの入力レベルが設定した転送要 求レベルの間は要求をクリアせずに連続して転送を行います。外部入力が変化する と要求がクリアされ , 転送は転送の境目にて停止します。これを指定転送回数終了 まで繰り返します。 • その他はバースト転送と同等に動作します。 図 17.5-2 外部端子 H レベル起動 , ブロック数 =1, 転送回数 =3 のときのデマンド転送例 表 17.5-3 指定可能転送アドレス表 転送元アドレス指定 方向 転送先アドレス指定 外部領域 => 外部領域 外部領域 => 内蔵 IO 外部領域 => 内蔵 RAM 内蔵 IO => 外部領域 内蔵 RAM => 外部領域 ( 注意事項 ) • デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して ください。デマンド転送モード時は , DMA 転送を外バスタイミングに合わせているた め必ず外部領域へのアクセスが必要になります。 • デマンド転送時は , 転送元 / 転送先共に SDRAM 領域はサポートしていませんので設定 禁止です。 ■ デマンド転送 fly-by 転送 転送領域が外部領域のみであること , 転送単位がリード (memory to IO) またはライト (IO to memory) だけであることを除けば two-cycle 転送と同じです。 表 17.5-4 指定可能転送アドレス表 転送元アドレス指定 方向 転送先アドレス指定 指定不要 ( 無効 ) なし 外部領域 381 第 17 章 DMAC(DMA コントローラ ) ■ ステップ / ブロック転送 two-cycle 転送 ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場 合は転送元 / 転送先アドレスは 32 ビット全領域指定可能です。 表 17.5-5 指定可能転送アドレス表 転送元アドレス指定 方向 転送先アドレス指定 32 ビット全領域指定可能 => 32 ビット全領域指定可能 ● ステップ転送 ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。 ● ステップ転送の特徴 • 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を 停止します。( バスコントローラに対し DMA 転送要求を取り下げる ) • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止後 に , チャネルを切替えて続けて転送を開始します。ステップ転送における優先順位 は , 転送要求が同時に発生した場合のみ意味を持ちます。 ● ブロック転送 ブロックサイズを "1" 以外を設定すると , ブロック転送シーケンスとなります。 ● ブロック転送の特徴 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ プ転送と全く同じ動作となります。 図 17.5-3 外部端子立上りエッジ起動 , ブロック数 =2, 転送回数 =2 のときのブロック転送例 図 17.5-4 ■ ステップ / ブロック転送 two-cycle 転送 fly-by 転送 転送領域が外部領域のみであること , 転送単位がリード (memory to IO) またはライト (IO to memory) だけであることを除けば two-cycle 転送と同じです。 表 17.5-6 指定可能転送アドレス表 382 転送元アドレス指定 方向 転送先アドレス指定 指定不要 ( 無効 ) なし 外部領域 第 17 章 DMAC(DMA コントローラ ) 17.6 DMA 転送全般 この項では , DMA 転送のブロックサイズとリロード動作について説明します。 ■ ブロックサイズ • 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) のデータの集合となります。 • 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転 送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま す。 • 転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時 停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界に ならないと停止しません。これにより分割・一時停止を希望しないデータブロック のデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させ る原因ともなります。 • リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容等は保 証されません。 ■ リロード動作 本モジュールでは , 各チャネル毎に , 以下の 3 種類のリロード機能の設定が可能です。 ● 転送回数レジスタリロード機能 指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受付 待ちします。 全転送シーケンスを繰返し行う際に設定します。 リロード指定をしない場合, 指定回数の転送終了後は回数レジスタ値が0のままとなり, 以降の転送は行われません。 ● 転送元アドレスレジスタリロード機能 指定回数の転送が終了した後, 転送元アドレスレジスタに初期設定値を再設定します。 転送元アドレス領域内で固定領域から繰返し転送する場合に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が終 了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 ● 転送先アドレスレジスタリロード機能 指定回数の転送が終了した後, 転送先アドレスレジスタに初期設定値を再設定します。 転送先アドレス領域内で固定領域へ繰返し転送する場合に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が終 了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 • 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了 後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。 383 第 17 章 DMAC(DMA コントローラ ) ● 動作モードとリロード動作の特殊な例 • 外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ のままリロードして転送を継続します。この場合も終了コードはセットされます。 • 転送終了にて , いったん停止し , 再度入力検出から行いたい場合は , リロード指定を 行わないようにしてください。 • バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となる とリロード後 , いったん転送を中断し , あらためて転送要求入力が検出されるまで 転送を行いません。 ■ アドレシングモード 各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。 指定方法には下記の方法があります。転送シーケンスによって設定してください。 ● アドレスレジスタ指定 • two-cycle 転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アド レスを , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してく ださい。 • fly-by 転送モードでは , 転送先アドレス設定レジスタ (DMASA) にはメモリアドレス を設定してください。このときの転送先アドレス設定レジスタ (DMADA) の値は無 視されます。 ● アドレスレジスタの特徴 最大 32bit 長のレジスタです。32bit 長の場合メモリマップ上の全空間がアクセス可能 です。 ● アドレスレジスタの機能 • 毎アクセス時に読み出され , アドレスバスへ放出されます。 • 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の アドレスにてアドレスレジスタを更新します。 • アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より 選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま す。(DMACB:SASZ, DASZ) • 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終 アドレスにアドレス計算をした結果のアドレスが残されます。 • リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。 ( 注意事項 ) • 32bit 長フルアドレス計算の結果オーバフロー / アンダフローが発生した場合 , アドレ スエラーとして検出され , そのチャネルの転送を中止します ( 転送停止要因表示 (DSS ビット ) の終了コードに関する項目を参照してください )。 • アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。 • デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して ください。 • DMAC により DMAC 自身のレジスタへの転送は行わないでください。 384 第 17 章 DMAC(DMA コントローラ ) ■ データの種類等 1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下の内から選択します。 • byte • halfword • word DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは 無視されます。 • word …実際のアクセスアドレスは下位 2bit が "00" から始まる 4byte となります。 • halfword…実際のアクセスアドレスは下位 1bit が "0" から始まる 2byte となります。 • byte …実際のアクセスアドレスとアドレス指定が一致します。 転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記のきまりに従ってアドレスが修正されてアクセスが行われます。 ■ 転送回数制御 転送回数は , 最大で 16bit 長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回数指定値 は転送回数レジスタ (DMACA:DTC) に設定します。 レジスタ値は転送開始時に一時記憶バッファへに格納され , 転送回数カウンタにより 減算されます。 このカウンタ値が "0" となった時 , 指定回数の転送終了として検出され , そのチャネルの転送停止または再起動受け付け待ち ( リロード指定時 ) が行われます。 ● 転送回数レジスタ群の特徴 • 各レジスタ 16bit 長です。 • 全てのレジスタはそれぞれ専用リロードレジスタを持ちます。 • レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。 ● リロード動作 • リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で す。 • 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。 • 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると共 に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。 ■ CPU 制御 DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発行 します。 バスコントローラはバス動作の切れ目にて内部バス使用権をDMAにあけわたし, DMA 転送が開始されます。 ● DMA 転送と割込み • DMA 転送中は , 基本的には転送終了まで割込みの受け付けは停止します。 • また割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転 送終了まで割込み処理動作は停止します。 385 第 17 章 DMAC(DMA コントローラ ) • 例外として , NMI 要求 , または割込みコントローラにて設定されたホールド抑止レ ベルより高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロッ ク ) の境界にてバスコントローラはの転送要求を一時取り下げ , 割込み要求がクリ アされるまでは転送を一時停止状態にします。この間転送要求は内部で保持されま す。割込み要求がクリアされた後に再度 DMAC はバスコントローラは転送要求を 発行してバス使用権を取得し , 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 レベルは上に置いてくださ い。 ■ ホールド調停 デバイスが外部バス拡張モードで動作している場合 , 外部からのホールド機能が使用 可能となります。この際の , 外部ホールド要求と本モジュールによる DMA 転送要求と の関係は , 以下に示す通りとなります。 ● 外部ホールド中の DMA 転送要求 DMA 転送を開始しますが , 外部バス領域へのアクセスがあった場合 , その時点で DMA 転送を一時停止します。外部ホールドが解除され次第 , DMA 転送を再開します。 ● DMA 転送中の外部ホールド要求 外部ホールド状態となります。DMA 転送による外部バス領域へのアクセスがあった場 合 , その時点で DMA 転送は一時停止します。外部ホールドが解除され次第 , DMA 転 送を再開します。 ● DMA 転送要求と外部ホールド要求の同時発生 外部ホールド状態となり , また内部では DMA 転送を開始します。DMA 転送による外 部バス領域へのアクセスがあった場合 , その時点で DMA 転送は一時停止します。外部 ホールドが解除され次第 , DMA 転送を再開します。 386 第 17 章 DMAC(DMA コントローラ ) ■ 動作開始 DMA 転送の開始は , 各チャネルごとに独立に制御しますが , その前に全チャネルの動 作を許可しておく必要があります。 ● 全チャネル動作許可 DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら かじめ全チャネルの動作を許可する必要があります。許可されていない状態にて行っ た起動設定 , および発生した転送要求はすべて無効となります。 ● 転送起動 各チャネルごとの制御レジスタにある動作許可ビットにて , 転送動作を起動します。起 動されたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送動作が開始されます。 ● 一時停止状態よりの起動 各チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転送動作を起動しても一時停止状態を維持してします。この間に転送要求が発生した 場合は , 要求を受け付け保持します。一時停止を解除した時点より転送を開始します。 ■ 転送要求の受付と転送 • 起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。 • 外部端子起動要因でエッジ検出を選択した場合 , 転送要求が検出されると転送要求 クリア条件を満たすまで DMAC 内部で要求を保持します。( ブロック / ステップ / バースト転送で外部端子起動要因を選択したとき ) • 外部端子起動要因でレベル検出 , または周辺割込み起動を選択した場合は , 転送要 求がクリアされるまで DMAC は転送を続けますがクリアされたら 1 転送単位で転 送を停止します。( デマンド転送 / 周辺割込み起動 ) • 周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで 行うようにしてください。 • 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に 受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネル を決定しています。 ■ DMA による周辺割込みクリア 本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に周 辺割込みを選択したときに機能します。(IS[4:0]=1xxxx のとき ) 周辺割込みのクリアは設定された起動要因にのみ行われます。つまり IS[4:0] で設定さ れた周辺機能のみクリアされます。 ● 割込みクリアの発生タイミング 転送モードにより発生するタイミングが違います。(「17.7 動作フローチャート」を参 照) [ ブロック / ステップ転送 ] ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生 します。 387 第 17 章 DMAC(DMA コントローラ ) [ バースト転送 ] バースト転送を選択した場合は , 指定転送回数が全て終了したらクリア信号は発生 します。 [ デマンド転送 ] デマンド転送では外部端子からの起動要求のみサポートするためクリア信号はで ません。 ■ 一時停止 DMA 転送は , 以下の場合に一時停止します。 ● 制御レジスタへの書込みによる一時停止の設定(各チャネル独立または全チャネル同時に設 定) 一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って ください。 一時停止を解除すると , 転送を再開します。 ● NMI/ ホールド抑止レベル割込み処理中 NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転 送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込 み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その まま保持され , NMI 処理の終了を待ちます。 要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。 ■ 動作終了 / 停止 DMA 転送の終了は , 各チャネルごとに独立に制御しますが , 全チャネルの動作を禁止 することも可能です。 ● 転送終了 リロード動作が有効でない場合 , 転送回数レジスタが 0 になると転送を停止し , 終了 コードにて『正常終了』を表示した後 , 以降の転送要求は無効となります。 (DMACA:DENB ビットをクリアする ) リロード動作が有効である場合 , 転送回数レジスタが 0 になると初期値をリロードし , 終了コードにて『正常終了』を表示した後 , 再度転送要求待ちとなります。 (DMACA:DENB ビットをクリアしない ) ● 全チャネル動作禁止 DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を 許可しても , 各チャネルごとに再起動しなおさないと , 転送は行われません。この場合 , 割込みは一切発生しません。 ■ エラーによる停止 指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー発 生による停止および強制停止があります。 ● 周辺回路よりの転送停止要求の発生 転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発 388 第 17 章 DMAC(DMA コントローラ ) 生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど )。 この転送停止要求を受け取った DMAC は , 終了コードにて『転送停止要求』を表示し て対応するチャネルの転送を停止します。 IS 00000 01111 10000 10010 10011 11111 ( 注意事項 ) 各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してください。 ● アドレスエラーの発生 各アドレシングモードにて , 以下に示す様な不適切なアドレシングが行われた時 , アド レスエラーとして検出されます。(32bit アドレス指定時に , アドレスカウンタにてオー バ / アンダフローが発生した場合 ) アドレスエラーを検出すると , 終了コードにて『アドレスエラーの発生』を表示して対 応するチャネルの転送を停止します。 ■ DMAC 割込み制御 転送要求となる周辺割込みとは独立に , DMAC 各チャネルごとに以下の割込みを出力 することが可能です。 • 転送終了割込み : 正常終了した場合のみ発生する。 • エラー割込み : 周辺回路よりの転送停止要求 ( 周辺に起因するエラー ) アドレスエラーの発生 ( ソフトウェアに起因するエラー ) これら割込みはすべて終了コードの内容に従って出力されます。 割込み要求のクリアは , DMACS の DSS2 ∼ DSS0( 終了コード ) に "000" を書き込むこ とにより行います。なお , 終了コードは再起動する際には必ず "000" を書き込んでクリ アしてください。 リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。 終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて いる終了コードに従います。 389 第 17 章 DMAC(DMA コントローラ ) 終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 )。 1. リセット 2. "000" 書き込みによるクリア 3. 周辺停止要求または , 外部端子入力 (DSTP) の停止要求 4. 正常終了 5. アドレスエラー検出による停止 6. チャネル選択と制御 ■ スリープ中の DMA 転送 • DMAC は , スリープモード中でも動作させることができます。 • スリープモードでの動作を期待する場合次のことに注意する必要があります。 - CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー プモードに入る前に設定は済ませておいてください。 - スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込み を選択した場合は , 割込みコントローラで割込みを禁止する必要があります。 同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし てください。 ■ チャネル選択と制御 転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各機 能を独立に設定することが可能です。 ● チャネル間優先順位 DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され ます。 順位設定には , 固定 / 回転の 2 モードがありチャネルグループ ( 後述 ) 毎に選択します。 固定モード チャネル番号の小さい順に固定されます。 (ch.0 >ch.1 >ch.2 >ch.3 >ch.4) 転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサ イズ指定レジスタに設定した数×データ幅 )) の転送が終了した時点で , 転送チャネ ルが高優 先度側に切り替わります。 高優先度側の転送が終了すると , 元のチャネルの転送を再開します。 回転モード (ch.0-ch.1 間のみ ) 動作許可後の初期状態は (1) と同じ順位に設定されますが , 1 転送終了ごとにその チャネルの優先度は逆転します。よって , 同時に転送要求が出力されている場合 , 1 転送単位ごとにチャネルが切り替わります。 3 90 第 17 章 DMAC(DMA コントローラ ) 連続 / バースト転送を設定した場合に効果のあるモードです。 ch.0 転送要求 ch.1 転送要求 バス動作 CPU SA 転送チャネル DA ch.1 SA DA ch.0 SA DA SA ch.1 DA CPU ch.0 ch.0 転送終了 ch.1 転送終了 ● チャネルグループ 優先順位の選択は , 以下の単位で設定します。 MODE Priority Remarks 固定 ch.0 > ch.1 − 回転 ch.0 > ch.1 ↑↓ ch.0 < ch.1 初期状態は上側の順位です 上側が転送されると反転します。 391 第 17 章 DMAC(DMA コントローラ ) 17.7 動作フローチャート この節では , 次の各転送モードにおける動作フローチャートを示します。 • ブロック転送 • バースト転送 • デマンド転送 ■ 動作フローチャート 図 17.7-1 ブロック転送 DMA停止 DENB=>0 DENB=1 リロード許可 起動要求待機 起動要求 初期化 アドレス,転送回数,ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は 1回のアクセス 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 アドレス,転送回数,ブロック数 ライトバック 周辺割込み 起動要因選択時のみ 割込みクリア DTC=0 DMA転送終了 ブロック転送 ・すべての起動要因で起動できる(選択)。 ・すべての領域へのアクセスができる。 ・ブロック数の設定可能。 ・ブロック数終了で割込みクリア発行。 ・指定転送回数終了でDMA割込みを発行。 392 割込み クリア発生 DMA割込み発生 第 17 章 DMAC(DMA コントローラ ) 図 17.7-2 バースト転送 DMA停止 DENB=>0 DENB=1 リロード許可 起動要求待機 初期化 アドレス,転送回数,ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は 1回のアクセス 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 DTC=0 アドレス,転送回数,ブロック数 ライトバック 周辺割込み起動要因選択時のみ 割込み クリア DMA転送終了 割込みクリア発生 DMA割込み発生 バースト転送 ・すべての起動要因で起動できる(選択)。 ・すべての領域へのアクセスができる。 ・ブロック数の設定可能。 ・指定転送回数終了で割込みクリア,DMA割込みを発行。 393 第 17 章 DMAC(DMA コントローラ ) 図 17.7-3 デマンド転送 DMA停止 DENB=>0 なし リロード許可 DENB=1 起動要求待機 起動要求あり 初期化 アドレス,転送回数,ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は 1回のアクセス 転送先アドレスアクセス アドレス演算 転送回数-1 アドレス,転送回数,ブロック数 ライトバック DTC=0 割込み クリア DMA転送終了 周辺割込み起動要因選択時のみ 割込みクリア発生 DMA割込み発生 デマンド転送 ・外部端子(DREQ)からの要求(レベル検出)のみ受付け。他の要因での起動禁止。 ・外部領域へのアクセスは必須条件(外部領域へのアクセスが次の起動要因となるため)。 ・ブロック数は,設定に関係なく1固定になる。 ・指定転送回数終了で割込みクリア,DMA割込みを発行。 394 第 17 章 DMAC(DMA コントローラ ) 17.8 データパス この節では , 2 サイクル転送時 , およびフライバイ転送時のデータの動きを図で示し ます。 ■ two-cycle 転送時のデータの動き 395 第 17 章 DMAC(DMA コントローラ ) 396 第 17 章 DMAC(DMA コントローラ ) ■ fly-by 転送時のデータの動き DMAC CPU リードサイクル I-bus X-bus バスコントローラ D-bus メモリ MB91xxx 外部バス I/F フライバイ転送(メモリからIO) RDX,CSxXでメモリリードする。 データバッファ RDX,DACKでIOライトする。 RAM IO F-bus IO SDRAMでのフライバイ転送は不可。 CPU D-bus X-bus バスコントローラ データバッファ メモリ DMAC リードサイクル I-bus WR0X/1X,DACKでIOリードする。 F-bus RAM WR0X/1X,CSxXでメモリライトする。 IO IO MB91xxx 外部バス I/F フライバイ転送 (IOからメモリ) SDRAMでのフライバイ転送は不可。 397 第 17 章 DMAC(DMA コントローラ ) 398 第 18 章 USB ファンクション この章では , USB ファンクションの概要 , レジス タの構成と機能 , 動作 , および補足事項について説 明します。 18.1 USB ファンクションの概要 18.2 USB インタフェースのレジスタ 18.3 USB ファンクションの動作 18.4 補足事項 399 第 18 章 USB ファンクション USB ファンクションの概要 18.1 本マクロは , プロトコルエンジン部分 , データ転送に必要となる物理 ENDPOINT(FIFO), および CPU DMA I/F 等から構成されており , USB FUNCTION DEVICE としてのプロトコル処理を行います。 ■ USB ファンクションの概要 マクロは以下のブロックから構成されます。 ● USB プロトコルエンジン アプリケーション ( ソフトウェア ) 側の負担を軽くするため , 基本的な USB の通信プ ロトコルを処理します。 ( 注意事項 ) 以下の内容についてはアプリケーション側での対応が必要です。 • CLASS / VENDOR REQUEST の処理 • STANDERD REQUEST の SYNCH_FRAME の処理 SET_DESCRIPTOR / GET_DESCRIPTOR ● ENDPOINT 用 FIFO コントロール用 IN 8Byte OUT 8Byte Bulk 転送用 IN 64Byte × 2( ダブルバッファ ) OUT 64Byte × 2( ダブルバッファ ) Interrupt 転送用 IN 8Byte ● ENDPOINT <- > プロトコルエンジン I/F( 内部 BUS I/F) 回路 ● レジスタ群 ● CPU DMA I/F 回路 CPU I/F :16bit DMA I/F :16bit ● 本マクロは SELF POWERED DEVICE として動作します。 本マクロの ENDPOINT 構成を以下に示します。 表 18.1-1 USB ファンクションのエンドポイント構成 ENDPOINT CONFIGURATION INTERFACE ALTERNATE TRANS TYPE MaxPacketSize(BYTE) 0 ― ― ― CONTROL 8 1 1 0 0 BULK(OUT) 64 2 1 0 0 BULK(IN) 64 3 1 0 0 INTERRUPT(IN) 8 400 / 第 18 章 USB ファンクション ■ ブロックダイヤグラム 図 18.1-1 ブロックダイヤグラム 401 第 18 章 USB ファンクション 18.2 USB インタフェースのレジスタ この節では , USB インタフェースはで使用するレジスタの構成 , および機能につい て説明します。 ■ USB インタフェースのレジスタ USB インタフェースは , 外部メモリインタフェースを経由して CS2 領域に接続されて います。( 第 3 章 , 第 5 章参照 )。 USB インタフェースの内部レジスタに対して , バイトアクセスは禁止です。 ■ レジスタ表記説明 記述例 15*1 14 アドレス : 0000-0000H 13 12 *3 R*4 11 10 9 8 7 6 5 4 3 2 1 0 XXXXXXXXXXXXXXXXB *2 R R R R 初期値 *5 R R R R R R R R R R R *1: レジスタのビット位置 (15 ∼ 0) を示します。 *2: レジスタのビット名を示します。 *3: レジスタが物理的にないことを示します。読み出した場合 "0" となります。 *4: 各ビットの読出し・書込みが可能かどうかを示します。 W: 書込みのみ可能 R: 読出しのみ可能 R/W: 読み書き可能 *5: リセット (RESET=0) 後の各ビット値を示します。 "X": 不定を示します。 "0": "0" を示します。 "1": "1" を示します。 ( 注意事項 ) レジスタは 16bit 単位でアクセスします。 402 第 18 章 USB ファンクション 18.2.1 データ送受信用レジスタ (END POINT 用 ) これらのレジスタを読み書きすることで ENDPOINT のデータを読み書きします。 ■ FIFO0o • 機能 ENDPOINT0 (CONTROL OUT ENDPOINT) 用 8 BYTES FIFO • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 初期値 XXXXXXXXXXXXXXXXB アドレス : 0006-0000H R R R R R R R R R R R R R R R R ( 注意事項 ) USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。 格納するデータが 1Byte のみの場合は , [15:8] に格納します。 ■ FIFO0i • 機能 ENDPOINT0 (CONTROL IN ENDPOINT) 用 8 BYTES FIFO • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 初期値 XXXXXXXXXXXXXXXXB アドレス : 0006-0002H W W W W W W W W W W W W W W W W ( 注意事項 ) USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。 格納するデータが 1Byte のみの場合は , [15:8] に格納します。 403 第 18 章 USB ファンクション ■ FIFO1 • 機能 ENDPOINT1 (BULK OUT ENDPOINT) 用 64BYTES FIFO • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 初期値 XXXXXXXXXXXXXXXXB アドレス : 0006-0004H R R R R R R R R R R R R R R R R ( 注意事項 ) • USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。 格納するデータが 1Byte のみの場合は , [15:8] に格納します。 • FIFO1 は DoubleBuffer(64Bytes × 2) となっています。FIFO の切り換えは以下のタイ ミングで起こります。 - USB バス側 :ACK の転送が起きると切り換わります。 - CPU バス側 : レジスタ CONT3 の BFOK1 を 1 にセットすることで切り換わります。 なお , DMA 転送の場合は自動で CONT3 の BFOK1 がセットされますので , そのタイ ミングで切り換わります。 ■ FIFO2 • 機能 ENDPOINT2 (BULK IN ENDPOINT) 用 64BYTES FIFO • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 初期値 XXXXXXXXXXXXXXXXB アドレス : 0006-0006H W W W W W W W W W W W W W W W W ( 注意事項 ) • USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。 格納するデータが 1Byte のみの場合は , [15:8] に格納します。 • FIFO2 は DoubleBuffer(64Bytes × 2) となっています。FIFO の切り換えは以下のタイ ミングで起こります。 - USB バス側 :ACK の転送が起きると切り換わります。 - CPU バス側 : レジスタ CONT3 の BFOK2 を 1 にセットすることで切り換わります。 なお , DMA 転送の場合は自動で CONT3 の BFOK2 がセットされますので , そのタイ ミングで切り換わります。 404 第 18 章 USB ファンクション ■ FIFO3 • 機能 ENDPOINT3 (INTERRUPT IN ENDPOINT) 用 8BYTES FIFO • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 初期値 XXXXXXXXXXXXXXXXB アドレス : 0006-0008H W W W W W W W W W W W W W W W W ( 注意事項 ) USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。 格納するデータが 1Byte のみの場合は , [15:8] に格納します。 405 第 18 章 USB ファンクション 18.2.2 ステータスレジスタ これらのレジスタを読む事で , 内部のステータスを監視します。 ■ ST1 • 機能 USB 転送の ACK/NACK の監視 , 割込み要因ビット • ビット構成 15 14 13 12 11 アドレス : 0006-0062H 10 9 8 7 6 5 4 3 2 1 0 N A C K 3 A C K 3 N A C K 2 A C K 2 N A C K 1 A C K 1 N A C K 0 i A C K 0 i N A C K 0 o A C K ------0000000000 B 0 o 初期値 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 表 18.2-1 bit 解説 名前 極性 機能 ACK0o ActiveHigh ENDPOINT0 の OUT 転送において , デバイスが ACK ハンドシェー クを受信したことを示します。 NACK0o ActiveHigh ENDPOINT0 の OUT 転送において , デバイスが NACK ハンドシェー クを受信したこと , またはストール状態で転送要求を受信したこと , またはパケットにエラーを検知した事を示します。 ACK0i ActiveHigh ENDPOINT0 の IN 転送において , デバイスが ACK ハンドシェ―ク を受信した事を示します。 NACK0i ActiveHigh ENDPOINT0 の IN 転送において , ストール状態で転送要求を受信し たこと , または TimeOut したことを示します。 ACKn (n:1 ∼ 3) ActiveHigh ENDPOINT[n] の転送において , デバイスが ACK ハンドシェ―クを 送受したことを示します。 NACKn (n:1∼3) ActiveHigh OUT 転送用 ENDPOINT[n] の転送において , デバイスが NACK ハン ドシェークを送信したこと , またはストール状態で転送要求を受信 したこと , またはパケットにエラーを検知したことを示します。 IN 転送用 ENDPOINT[n] の転送において , ストール状態で転送要求 を受信したこと , または TimeOut したことを示します。 ( 注意事項 ) • 各 bit は 1 を書き込むことで 0 にクリアされます。0 書込みは無効です。 • ACK1, NACK1, ACK2, NACK2 は DoubleBuffer に対応してレジスタを 2 面持っていま す。DoubleBuffer の面が切り替わると同時に ACK1, NACK1, ACK2, NACK2 の面も切 り替わります。アプリケーション側から Read/Write できるレジスタの面は , Read/Write できる FIFO の面と同じになります。 406 第 18 章 USB ファンクション ■ ST2 • 機能 bit 解説を参照の事 • ビット構成 15 14 13 アドレス : 0006-0068H 12 11 10 9 8 7 6 5 4 3 2 1 0 D C T 6 D C T 5 D C T 4 D C T 3 D C T 2 D C T 1 D C ---------0000000 B T 0 R R R R R R R 初期値 表 18.2-2 bit 解説 名前 極性 機能 DCT[6:0] ActiveHigh FIFO に対して , USB バス側から Read/Write が行われたデータのバイト数 を示します。 USB 転送が正常に終了し , ACK ハンドシェークを送受した時点で更新され ます。 407 第 18 章 USB ファンクション ■ ST3 • 機能 bit 解説を参照の事 • ビット構成 アドレス: 0006-006AH 15 14 S T D R E Q 2 S T D R E Q 1 R R 13 12 11 10 9 8 7 6 5 4 3 2 1 E P O o N U L L C F G V A L S E T U P C F E N D S O F S U S P R/W R R/W R R/W R 0 初期値 00-------0000000B 表 18.2-3 bit 解説 名前 極性 機能 - - 予約ビット , WRITE 可能ですが USB の転送には影響しません。READ 時は "1" あるいは "0" を示します。 SUSP ActiveHigh 本デバイスがサスペンドになるとセットされて , サスペンドから抜ける とリセットされます。 SOF ActiveHigh SOF パケットを受信したことを示します。 一度セットされると 0 を書き込むまで保持されます。 CFEND ActiveHigh デバイスの初期化が終了したことを示します。 SETUP ActiveHigh SETUP パケットを受信したことを示します。 マクロが自動応答しないコマンドを受信し ACK で応答した時点でセッ トされます。自動応答を行うコマンドに対してはセットされません。 Control 転送で SETUP パケット以外の OUT 転送のデータを受信し ACK で応答した時点でリセットされます。 CFGVAL - 現在の Configuration 値を示します。 マクロは BUS RESET および Set Configuration0 を受信した場合にデフォ ルト状態に遷移します。CFGVAL はデフォルト状態では "0" を示します。 EPOoNULL ActiveHigh ENDPOINT0 の OUT 側で長さ 0 のデータパケットを受信したことを示し ます。一度セットされると 0 を書き込むまで保持されます。 STDREQ1 ActiveHigh DREQ1 がアサートしていることを示します。 STDREQ2 ActiveHigh DREQ2 がアサートしていることを示します。 ( 注意事項 ) bit0 と bit2 と bit4 に対する書込みは , 0 書込みのみ有効です。 408 第 18 章 USB ファンクション ■ ST4 • 機能 bit 解説を参照の事 • ビット構成 15 14 13 12 アドレス : 0006-006CH 11 10 9 8 7 6 5 4 3 2 1 0 F M R 10 F M R 9 F M R 8 F M R 7 F M R 6 F M R 5 F M R 4 F M R 3 F M R 2 F M R 1 F M -----00000000000 B R 0 R R R R R R R R R R R 初期値 表 18.2-4 bit 解説 名前 極性 機能 FMR[10:0] - 最新の USB 受信フレーム No を示します。 受信フレーム No は SOF パケットから抽出します。 409 第 18 章 USB ファンクション ■ ST5 • 機能 割込み要因 bit。bit 解説を参照の事。 • ビット構成 15 アドレス : 0006-006EH 14 L P E N D R/W 13 12 11 S E T C F G U S B R E S E T 10 R/W R/W 9 8 7 6 5 4 3 2 1 0 S T S T A L L 3 S T S T A L L 2 S T S T A L L 1 S T S T A L L 0 T R C V E N D T T R S E N D R R R R 初期値 0--00-----000000B R/W R/W 表 18.2-5 bit 解説 名前 極性 機能 TTRSEND ActiveHigh BULKIN FIFO からトータル送信バイト数分のデータの送信を終 了したことを示します。 TRCVEND ActiveHigh BULKOUT FIFO からトータル受信バイト数分のデータの読出し を終了したことを示します。 STSTALLn(n:0∼3) ActiveHigh ENDPOINT[n] がストール状態であることを示します。ストール が解除されるとリセットされます。 USBRESET ActiveHigh USB BUS RESET がかかったことを示します。 SETCFG ActiveHigh Set Configurationを受信し, ACKを返した場合にセットされます。 USB BUS RESET がかかるとリセットされます。 LPEND ActiveHigh ループバックが終了したことを示します。 ( 注意事項 ) • STSTALL を除く各ビットは "1" を書き込むことで "0" にクリアされます。"0" 書込みは 無効です。 • STSTALLがセットされるのと同時に, レジスタST1のNACKビットもセットされます。 • TTRSEND をリセットする場合は CONT10 の TTCNTEN=0 を設定して TTSIZE カウン タを使用しない状態にしてから "0" を書き込んでください。 TRCVEND をリセットする場合は CONT10 の TRCNTEN=0 を設定して TRSIZE カウ ンタを使用しない状態にしてから "0" を書き込んでください。 • TTRSEND と TRCVEND を含むレジスタ ST5 の全てのビットは割込み要因となります。 • USBRESET は D+, D- を同時に 2.5 µs 以上 "L" とすることで "1" となります。 410 第 18 章 USB ファンクション ■ RSIZE0 • 機能 ENDPOINT0 (CONTROL OUT ENDPOINT) の最新転送量を示します。 • ビット構成 15 14 アドレス : 0006-0040H 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R S I Z E 03 R S I Z E 02 R S I Z E 01 R S I ------------0000 B Z E 00 R R R R 初期値 表 18.2-6 bit 解説 名前 極性 機能 RSIZE0[3:0] - ENDPOINT0 (CONTROL OUT ENDPOINT) の最新転送量を示します。 ( 注意事項 ) RSIZE0 はマクロが ACK を送信した時点で更新されます。 411 第 18 章 USB ファンクション ■ RSIZE1 • 機能 ENDPOINT1 (BULK OUT ENDPOINT) の最新転送量を示します。 • ビット構成 15 14 13 アドレス : 0006-0044H 12 11 10 9 8 7 6 5 4 3 2 1 0 R S I Z E 16 R S I Z E 15 R S I Z E 14 R S I Z E 13 R S I Z E 12 R S I Z E 11 R S I ---------0000000 B Z E 10 R R R R R R R 初期値 表 18.2-7 bit 解説 名前 極性 機能 RSIZE1[6:0] - ENDPOINT1 (BULK OUT ENDPOINT) の最新転送量を示します。 ( 注意事項 ) • RSIZE1レジスタはDoubleBufferに対応してレジスタを2面持っています。 DoubleBuffer の面が切り替わると同時に RSIZE1 の面も切り替わります。アプリケーション側から Read できるレジスタの面は , Read/Write できる FIFO の面と同じになります。 • RSIZE1 はマクロが ACK を送信した時点で更新されます。 412 第 18 章 USB ファンクション 18.2.3 コントロールレジスタ これらのレジスタを読み書きすることで , デバイスを制御します。 ■ CONT1 • 機能 デバイスの初期化 , デバイスのリジューム設定 • ビット構成 アドレス : 0006-0022H 15 14 13 L P S T A R T I O D I S A U T O B F O K 12 11 10 R E S U M R/W R/W R/W R/W 9 8 7 6 5 4 3 2 1 0 初期値 S T A L L 3 S T A L L 2 S T A L L 1 S T A L L 0 C F G E N 000--0-----00000B R/W R/W R/W R/W R/W 表 18.2-8 bit 解説 名前 極性 機能 CFGEN ActiveHigh 本ビットに "1" を書き込むことで , 初期化 (ENDPOINT BUFFER の 設定 ) を実施します。"1" をセットすると "0" を書き込むまで保持 します。 初期化 (ENDPOINT BUFFER の設定 ) を実行した後は , マクロをリ セットするまで初期化(ENDPOINT BUFFERの設定)は行えません。 STALLn(n:0 ∼ 3) ActiveHigh ENDPOINT[n] をストール状態にします。 NOTE: 本ビットは自己リセットのレジスタです。 "1" 書込みの後に自動的に "0" に戻ります。 RESUM ActiveHigh 本デバイスがサスペンド (ST3: SUSP=1) 状態になったときの リ ジューム要求の設定です (1: リジューム要求設定 ) 。 レジスタ ST3: SUSP=1 の場合に "1" 書込み有効です。 本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的 に "0" に戻ります。 AUTOBFOK ActiveHigh "1" をセットすることで , EXDPOINT0 の OUT 側の受信バイト数が 0 のとき , 自動で EXDPOINT0 の OUT 側 USB 転送を許可します。 このとき , ST1: ACK0o の割込み要因はアサートされません。 (CONT3: BFOK0 ビットを自動で "1" にセットします ) IODIS ActiveHigh 本ビットを "1" をセットすることで , SUSPEND 信号 ( マクロ出力 信号 ) をアサートします。 SUSPEND 信号は本ビットがセットされたとき , または本デバイス がサスペンド状態のときアサートされます。 LPSTART ActiveHigh 本ビットを "1" にセットすることで , ループバックを開始します。 本ビットは自己リセットのレジスタです。ループバック終了後に 自動的に "0" に戻ります。 413 第 18 章 USB ファンクション ( 注意事項 ) • CFGEN に対する書込みは , "1" 書込みのみ有効です。 • STALL は STALL をセットした ENDPOINT に転送要求があり STALL ハンドシェーク を送信した時点でリセットされます。 ■ CONT2 • 機能 FIFO の初期化 • ビット構成 15 14 アドレス : 0006-0024H 13 12 11 10 9 8 7 6 5 4 3 2 1 0 I N I 3 I N I 2 I N I 1 I N I 0 i I N I 0 o 初期値 -----------00000B R/W R/W R/W R/W R/W 表 18.2-9 bit 解説 名前 極性 機能 INI0o ActiveHigh 本ビットを "1" にセットすることで , FIFO0o のアドレスカウンタを初期化します。同 時にレジスタ ST1 の ACK0o, NACK0o, レジスタ RSIZE0, レジスタ CONT3 の BFOK0o を初期化します。 本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。 INI0i ActiveHigh 本ビットを "1" にセットすることで , FIFO0i のアドレスカウンタを初期化します。同時 にレジスタ ST1 の ACK0i, NACK0i, レジスタ CONT3 の BFOK0i, レジスタ CONT10 の LSTD0 を初期化します。 本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。 INI1 ActiveHigh 本ビットを "1" にセットすることで , FIFO1 のアドレスカウンタを初期化します。同時 にダブルバッファの切り替えの状態 , レジスタ ST1 の ACK1, NACK1, レジスタ RSIZE1, レジスタ CONT3 の BFOK1, レジスタ TRSIZE を初期化します。 本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。 INI2 ActiveHigh 本ビットを "1" にセットすることで , FIFO2 のアドレスカウンタを初期化します。同時 にダブルバッファの切り替えの状態 , レジスタ ST1 の ACK2, NACK2, レジスタ CONT3 の BFOK2, レジスタ CONT10 の LSTD2, レジスタ TTSIZE を初期化します。 本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。 INI3 ActiveHigh 本ビットを "1" にセットすることで , FIFO3 のアドレスカウンタを初期化します。レジ スタ ST1 の ACK3, NACK3, レジスタ CONT3 の BFOK3, レジスタ CONT10 の LSTD3 を 初期化します。 本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。 414 第 18 章 USB ファンクション ( 注意事項 ) • CONT2 に対する書込みは , "1" 書込みのみ有効です。 CONT2 は "1" 書込みの後に自動的に "0" に戻るレジスタなので , 通常 CPU から READ する場合は常に "0" です。 • DoubleBuffer(ENDPOINT1, ENDPOINT2) に対応して 2 面構成となるレジスタ (ST1, RSIZE1, CONT3, CONT10) のビットは , INI1 あるいは INI2 をセットすることで両面が 初期化されます。 • INIn(n;0o, 0i, 1, 2, 3) のセットによって初期化される FIFO およびレジスタは , INIn ビッ トをセットしてから FMCLK0 で 9 サイクル経過するまで READ/WRITE できません。 ■ CONT3 • 機能 ENDPOINT ごとの USB 転送許可の設定 • ビット構成 15 14 13 12 11 10 9 アドレス : 0006-0026H 8 7 6 5 4 3 2 1 0 B F O K 3 B F O K 2 B F O K 1 B F O K 0 i B F O K 0 o 初期値 -----------00000B R/W R/W R/W R/W R/W 表 18.2-10 bit 解説 名前 極性 機能 BFOK0o ActiveHigh ENDPOINT0 の OUT 側の USB 転送を許可します。 BFOK0i ActiveHigh ENDPOINT0 の IN 側の USB 転送を許可します。 BFOKn(n:1 ∼ 3) ActiveHigh ENDPOINT[n] の USB 転送を許可します。 415 第 18 章 USB ファンクション ( 注意事項 ) • ステータスレジスタST1のACK0oまたはACK0iがセットされていると,そのENDPOINT に対して BFOK はセットできません。ただし , NACK0o または NACK0i がセットされ ていても BFOK はセットできます。 デバイスの初期化が終了した時点 ( ステータスレジスタ ST3 の CFEND がセットされ た時点 ), あるいはコントロールレジスタ CONT2 の INIn がセットされると BFOK は次 の値にセットされます。 IN 転送用エンドポイント BFOK=0 OUT 転送用エンドポイント BFOK=1 • BFOK1, BFOK2 ( ダブルバッファのエンドポイント ) は "1" 書込みのみ有効です。 CONT3 に 1 をセットした後 , FIFO を BUSY にしたい場合は , CONT4 あるいは CONT5 をセットしてください。 • BFOK1, BFOK2( ダブルバッファのエンドポイント ) を "1" にセットすると , ダブルバッ ファの面が切り替わります。同時にレジスタの面も切り替わります。アプリケーショ ン側から Read/Write できるレジスタの面は , Read/Write できる FIFO の面と同じにな ります。アプリケーション側からアクセスできるレジスタの面は片面のみですので , 裏 面になっているレジスタにはアクセスできません。 • BFOK の各ビットは , その ENDPOINT で ACK の転送が起こった時点でリセットされ ます。 • BFOK の各ビットは , CONT2 の INI ビットをセットすることにより "0" にリセットさ れます。 416 第 18 章 USB ファンクション ■ CONT4 • 機能 ENDPOINT ごとの USB BUSY の設定 • ビット構成 15 14 13 12 11 10 9 8 7 6 5 アドレス : 0006-0028H 4 3 2 1 0 F I F O B U S Y 3 F I F O B U S Y 2 F I F O B U S Y 1 F I F O B U S Y 0 i F I F O B U S Y 0 o 初期値 -----------00000B R/W R/W R/W R/W R/W 表 18.2-11 bit 解説 名前 極性 機能 FIFOBUSYn (n:0o, 0i, 1 ∼ 3) ActiveLow ENDPOINT[n] を BUSY にします ( 注意事項 ) CPU アクセスにより転送を行う場合は , FIFOBUSYn を "1" にセットします。また FIFOBUSYn を 0 にすることで , HOST PC に対して BUSY を宣言することが可能になり ます。この場合 , HOST PC からのトークンに対して NACK ハンドシェークを返します。 DMA により転送を行う場合は常に "0" に設定します。 ■ CONT5 • 機能 ENDPOINT ごとの USB BUSY の設定 • ビット構成 15 アドレス : 0006-002AH 14 13 12 11 10 9 8 7 6 5 4 3 2 D F I F O B U S Y 2 D F I F O B U S Y 1 R/W R/W 1 0 初期値 ------------00--B 417 第 18 章 USB ファンクション 表 18.2-12 bit 解説 名前 極性 機能 DFIFOBUSYn (n:1, 2) ActiveLow ENDPOINT[n] を BUSY にします ( 注意事項 ) • DMAにより転送を行う場合は, DFIFOBUSYnを"1"にセットします。またDFIFOBUSYn を "0" にすることで , HOST PC に対して BUSY を宣言することが可能になります。こ の場合 , HOST PC からのトークンに対して NACK ハンドシェークを返します。CPU アクセスにより転送を行う場合は常に "0" に設定します。 • MDREQn ビットを "0" にして , DREQ をマスクしてから , DFIFOBUSYn を "0" にして ください。 ■ CONT6 • 機能 ENDPOINT ごとの DREQ のマスク • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 アドレス : 0006-002CH 3 2 M D R E Q 2 M D R E Q 1 R/W R/W 1 0 初期値 ------------00--B 表 18.2-13 bit 解説 名前 極性 機能 MDREQn(n:1, 2) ActiveLow ENDPOINT[n] の転送での DREQn のアサートをマスクします。 ■ CONT7 • 機能 ENDPOINT ごとの ACK 要因による IRQ のマスク • ビット構成 15 アドレス : 0006-002EH 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 M A C K 3 M A C K 2 M A C K 1 M A C K 0 i M A C K 0 o R/W R/W R/W R/W R/W 418 初期値 -----------00000B 第 18 章 USB ファンクション 表 18.2-14 bit 解説 名前 極性 機能 MACK0o ActiveLow ENDPOINT0 の OUT 側転送での ACK による IRQ のアサートをマ スクします。 MACK0i ActiveLow ENDPOINT0 の IN 側転送での ACK による IRQ のアサートをマス クします。 MACKn(n:1 ∼ 3) ActiveLow ENDPOINT[n] の転送での ACK による IRQ のアサートをマスクし ます。 ■ CONT8 • 機能 ENDPOINT ごとの NACK 要因による IRQ のマスク • ビット構成 15 14 13 12 11 10 9 8 7 6 5 アドレス : 0006-0030H 4 3 2 1 0 M N A C K 3 M N A C K 2 M N A C K 1 M N A C K 0 i M N A C K 0 o 初期値 -----------00000B R/W R/W R/W R/W R/W 表 18.2-15 bit 解説 名前 極性 機能 MNACK0o ActiveLow ENDPOINT0 の OUT 側転送での NACK による IRQ のアサートを マスクします。 MNACK0i ActiveLow ENDPOINT0 の IN 側転送での NACK による IRQ のアサートをマ スクします。 MNACKn(n:1∼3) ActiveLow ENDPOINT[n] の転送での NACK による IRQ のアサートをマスク します。 ■ CONT9 • 機能 ENDPOINT ごとの STALL 要因による IRQ のマスク • ビット構成 15 アドレス : 0006-0032H 14 13 12 11 10 9 8 7 M L P E N D M S E T C F G M U S B R E S E T R/W R/W R/W 6 5 4 3 2 1 0 M S T A L L 3 M S T A L L 2 M S T A L L 1 M S T A L L 0 初期値 0--0----0---0000B R/W R/W R/W R/W 419 第 18 章 USB ファンクション 表 18.2-16 bit 解説 名前 極性 機能 MSTALLn(n:0 ∼ 3) ActiveLow ENDPOINT[n] の STALL による IRQ のアサートをマスクします。 MUSBRESET ActiveLow USB BUS RESET による IRQ のアサートをマスクします。 MSETCFG ActiveLow SETCFG による IRQ をマスクします。 MLPEND ActiveLow LPEND による IRQ のアサートをマスクします。 ■ CONT10 • 機能 bit 解説を参照の事 • ビット構成 15 アドレス : 0006-0034H 14 13 12 D R E Q C N T R/W 11 10 9 8 N U L L S E T 3 N U L L S E T 2 N U L L S E T 0 D M A M O D E R/W R/W R/W R/W 7 6 5 4 3 2 1 L S T D 3 L S T D 2 L S T D 0 T R C N T E N T T C N T E N O D D 0 初期値 0---000--000000-B R/W R/W R/W R/W R/W R/W 表 18.2-17 bit 解説 名前 極性 機能 LSTDn(n:0, 2, 3) ActiveHigh ENDPOINT[n] へのラストパケットの書込みを通知します。 ラストデータの書込み前に設定します。 ODD ActiveHigh 奇数バイト数のショートパケットの書込みを通知します。 ラストデータの書込み前に設定します。 TTCNTEN ActiveHigh トータル送信バイト数カウンタを Enable にします。 TRCNTEN ActiveLow トータル受信バイト数カウンタを Enable にします。 DMAMODE ActiveHigh DMA をシングル転送とします。 1: シングル転送 , 0: ブロック転送 NULLSETn(n:0, 2, 3) ActiveHigh Null パケットを自動送信させる場合に 1 にセットします。 DREQCNT - トータル転送バイト数分のデータの転送が終了した後の DREQ のアサートを制御します。 1: トータル転送バイト数分のデータの転送が終了した後は , 次 のトータル転送バイト数の設定を行うまで DREQ はアサート しません。 0: トータル転送バイト数分のデータの転送が終了した後も , DREQ をアサートします。 420 第 18 章 USB ファンクション ( 注意事項 ) • LSTD はラストパケット送信後に ACK を受信することによって自動でリセットされま すので , CPU 側からリセットを行う必要はありません。 ODD はラストデータ書き込み終了後に自動でリセットされますので , CPU 側からリ セットを行う必要はありません。 • NULLSET はコントロール転送のデータステージ , バルク IN 転送 , インタラプト IN 転 送で有効です。NULLSET を "1" にセットしておくことで , ラストパケットのサイズが マックスパケットサイズだった場合に, ラストパケット送信後の転送要求で自動にNull パケットを送信します。なお , このビットはコントロール転送のステータスステージの 0Byte のパケットを制御するものではありません。 • LSTD2 は DoubleBuffer に対応してレジスタを 2 面持っています。DoubleBuffer の面が 切り替わると同時に LSTD2 の面も切り替わります。アプリケーション側から Read/ Write できるレジスタの面は , Read/Write できる FIFO の面と同じになります。 • LSTD2 は NOTE3 に記載の動作をしますので , LSTD2 の値が "0" に変化することは , ラ ストパケット転送終了を意味するものではありません。 • NULLSET=1 の場合は , NULL パケットの転送が ACK で終了した時点 (ACK を受信し た時点 ) で ACK による割込みがアサートします。 NULLSET=0 の場合は , ラストパケットの転送が ACK で終了した時点 (ACK を受信し た時点 ) で ACK による割込みがアサートします。 • DREQCNT ビットの値にかかわらず , トータル受信バイト数カウンタ TRSIZE 分のデー タの読出しが終了した時点で次の受信データが FIFO に格納されたいない場合は DREQ1 はアサートしません。 ■ TTSIZE • 機能 BULKIN トータル送信バイト数の設定およびカウント • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 初期値 0001000100010001B アドレス : 0006-0036H 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 ( 注意事項 ) • 送信用 FIFO に送信データを書込むとカウントダウンします。 • TTSIZE カウンタを使用する場合は TTSIZE=0000H 以外の値を設定した後 , CONT10 の TTCNTEN=1 としてから FIFO への WRITE アクセスを始めてください。 なお , CONT10 の TTCNTEN=1 の場合に TTSIZE=0000H と設定した状態で FIFO への WRITE アクセスは行わないでください。 • TTSIZE は , CONT6 の MDREQ2 を "0" に設定して ,DREQ2 をマスクした状態で設定し てください。 421 第 18 章 USB ファンクション ■ TRSIZE • 機能 BULKOUT トータル受信バイト数の設定およびカウント • ビット構成 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 初期値 0001000100010001B アドレス : 0006-0038H 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 ( 注意事項 ) • 受信用 FIFO から受信データを読み出すとカウントダウンします。 • TRSIZE カウンタを使用する場合は TRSIZE=0000H 以外の値を設定した後 , CONT10 の TRCNTEN=1 としてから FIFO への READ アクセスを始めてください。 なお , CONT10 の TRCNTEN=1 の場合に TRSIZE=0000H と設定した状態で FIFO への READ アクセスは行わないでください。 • TRSIZE は , CONT6 の MDREQ1 を "0" に設定して ,DREQ1 をマスクした状態で設定 してください。 ■ RESET USB 動作開始時には同期 RESET を USB クロックで 16 クロック以上入力する必要があ ります。USB の RESET に関しましては , 「付録 D USB クロックについて」を参照く ださい。 422 第 18 章 USB ファンクション ■ レジスタマップ 表 18.2-18 レジスタマップ アドレス レジスタ名 0006_0000 FIFO0o 0006_0002 FIFO0i 0006_0004 FIFO1 0006_0006 FIFO2 0006_0008 FIFO3 Reserved 0006_0022 CONT1 0006_0024 CONT2 0006_0026 CONT3 0006_0028 CONT4 0006_002A CONT5 0006_002C CONT6 0006_002E CONT7 0006_0030 CONT8 0006_0032 CONT9 0006_0034 CONT10 0006_0036 TTSIZE 0006_0038 TRSIZE Reserved 0006_0040 RSIZE0 Reserved 0006_0044 RSIZE1 Reserved 0006_0062 ST1 Reserved 0006_0068 ST2 0006_006A ST3 0006_006C ST4 0006_006E ST5 Reserved 0006_FFFE RESET 423 第 18 章 USB ファンクション 18.3 USB ファンクションの動作 この節では , USB ファンクションのデータ転送フローと CPU アクセス動作 , および DMA 動作について説明します。 ■ USB ファンクションの動作 18.3.1 データ転送フロー 18.3.2 CPU アクセス動作説明 18.3.3 DMA 動作説明 18.3.4 割込み要因一覧 18.3.5 ENDPOINT BUFFER の設定 18.3.6 ソフトウェア制御例 ( 暫定 ) 424 第 18 章 USB ファンクション 18.3.1 データ転送フロー この項では , USB ファンクションのデータ転送フローについて説明します。 ■ コントロール転送の SETUP ステージ ( 一部を除く標準コマンド ) HOST からの標準コマンドのほとんどの場合 , デバイス側 CPU の負荷をなくすために プロトコルエンジンが全て自動で処理を行います。デバイス側の CPU は何も処理を行 う必要はありません。また , デバイス側 CPU へ , これらのコマンドを受信した事を通 知しません。自動処理を行う標準コマンドは下記の通りです。 • CLEAR_FEATURE • GET_CONFIGURATION • GET_INTERFACE • GET_STATUS • SET_ADDRESS • SET_CONFIGURATION • SET_FEATURE • SET_INTERFACE 図 18.3-1 コントロール転送の SETUP ステージ ( 一部を除く標準コマンド ) のフロー *1: USB からコントロール転送のセットアップステージが受信されるとプロトコルエ ンジンは端子 SETUP をアサートし , ステータスレジスタの SETUP ビットをセット します。 *2: プロトコルエンジンは , GET_DESCRIPTOR / SET_DESCRIPTOR / SYNC_FRAME 以 外のスタンダードコマンドの場合にセットアップステージ ? が終了すると , ステー タスレジスタの NACK0S ビットをセットします。この場合 , プロトコルエンジンが コマンドに必要な処理を行うので , ENDPOINT 用 FIFO にはデータは書き込まれま せん。 ( 注意事項 ) CPU(アプリケーション)による処理は必要ありません。 セットアップステージを正常に受信した場合 , USB に ACK ハンドシェークを転送し , エ ラーがあれば何も転送しません (TimeOut です )。 425 第 18 章 USB ファンクション ■ コントロール転送の SETUP ステージ ( クラスコマンド・ベンダコマンド , および一 部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME)) HOST からのクラスコマンド・ベンダコマンドと一部標準コマンド (GET_DESCRIPTOR/SET_DESCRIPTOR/SYNCH_FRAME) は , ENDPOINT 0 OUT 転送 用 FIFO に書き込まれます。 図 18.3-2 コントロール転送の SETUP ステージ ( クラスコマンド・ベンダコマンド , および一部の標 準コマンド (GET_DESCRIPTOR/SET_DESCRIPTOR/SYNCH_FRAME)) のフロー *1: USB にてコントロール転送のセットアップステージが開始されると , プロトコルエ ンジンは 端子 SETUP をアサートしてステータスレジスタの SETUP ビットをセッ トします。 *2: プロトコルエンジンは , GET_DESCRIPTOR / SET_DESCRIPTOR / SYNC_FRAME, または , クラスコマンドやベンダコマンドを受信した場合 , FIFO0o にセットアップ ステージ中のデータを書き込み転送量レジスタをカウントアップします。 *3: セットアップステージが正常に終了するとプロトコルエンジンは USB に対して ACK ハンドシェークを送信します。この時点でステータスレジスタ ST1 の ACK0o ビットがセットされ転送量レジスタの値がステータスレジスタの RSIZE0 にロード されます。また端子 IRQ をアサートしてセットアップステージのデータが受信され た事を外部に知らせます。 エラー等により正常に終了しなかった場合は , USB に対しては何も返さないと共に 受信したデータを破棄しステータスレジスタの NACK0o をセットします。 *4: CPU I/F への読み出し動作により FIFO0o から有効データを読み出します。 ( 注意事項 ) アプリケーションにより受信データのコマンドをデコードして処理する必要があります。 426 第 18 章 USB ファンクション ■ コントロール転送の STATUS ステージ ( 一部を除く標準コマンド ) GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME を除く下記の標準コマンド の場合 , プロトコルエンジンが全て処理を行い , デバイス内部のステータスレジスタに 変化はありません。割込み信号 IRQ もアサートされません。 • CLEAR_FEATURE • GET_CONFIGURATION • GET_INTERFACE • GET_STATUS • SET_ADDRESS • SET_CONFIGURATION • SET_FEATURE • SET_INTERFACE ■ コントロール転送の STATUS ステージ ( クラスコマンド・ベンダコマンド , および 一部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME)) コントロールライトの場合 プロトコルエンジンが USB へ 0 バイトのデータを転送し , 正常終了するとステータ スレジスタの ACK0i がセットされ , この時 , 端子 IRQ がアサートされます。 次の転送に備えて , IRQ のディアサート ( ステータスレジスタの ACK0i のリセット ) とコントロールレジスタの BFOK0i のセットをアプリケーションから行なう必要が あります。 ( 注意事項 ) 0 バイトの転送に関してアプリケーションから設定する必要はありません。 コントロールリードの場合 プロトコルエンジンが USB から 0 バイトのデータを受信します。 ( 注意事項 ) RSIZE0 レジスタが示す受信転送量は 0 バイトです。 転送が正常に終了すると , ステータスレジスタの ACK0o がセットされ , この時 , 端 子 IRQ がアサートされます。 次の転送に備えて , IRQ のディアサート ( ステータスレジスタの ACK0o のリセット ) とコントロールレジスタのBFOK0o のセットをアプリケーションから行なう必要が あります。 427 第 18 章 USB ファンクション ■ コントロール (DATA ステージ )/ バルク OUT 転送 転送データは ENDPOINT OUT 転送用 FIFO に書き込まれ , Local Bus Interface から読み 出しを行います。 図 18.3-3 コントロール (DATA ステージ )/ バルク OUT 転送のフロー *1: USBからOUT方向の転送が開始されると, プロトコルエンジンは転送先ENDPOINT アドレスを出力し , CRC チェック / ビットストリッピング / シリアルーパラレル変 換等を実行しながら転送データを順次内部バスへ出力します。 ( 注意事項 ) • OUT 方向の転送が開始された時点で , コントロールレジスタの転送先 ENDPOINT の BFOKビットがセットされていない場合は, プロトコルエンジンがUSBに対してNACK ハンドシェークを出力し転送が終了します。 • OUT 方向の転送が開始された時点で , コントロールレジスタの転送先 ENDPOINT の STALL ビットがセットされている場合は , プロトコルエンジンが USB バスに対し STALL ハンドシェークを出力し転送が終了します。この時 , ステータスレジスタ ST1 の NACK ビット , ST5 の STSTALL ビットがセットされます。 *2: 受信されたデータは内部バスを経由し転送先 ENDPOINT 用 FIFO に書き込まれ , 転 送量レジスタがカウント UP されます。 *3: 転送が 1 パケット分正常に終了すると , プロトコルエンジンは USB に対して ACK ハンドシェークを出力します。この時点でステータスレジスタの ACK ビットがセッ トされ , 転送量レジスタの値が RSIZE0 レジスタもしくは RSIZE1 レジスタにロード されます。また , 端子 IRQ をアサートして 1 パケット分の転送が終了したことを外 部に知らせます。転送途中でエラーを検知した場合 , ステータスレジスタの NACK ビットがセットされ転送が終了します。 *4: CPU I/F よりリード動作で ENDPOINT 用 FIFO から有効データを読み出せます。 428 第 18 章 USB ファンクション ( 注意事項 ) • CPU 読出しは , DATAO[15:0] から 2 バイト単位で読み出します。 • BulkOUT 転送において , 正常に受信したパケットのデータサイズが 0 バイトの場合は マクロは割込みを上げません。 ■ コントロール (DATA ステージ )/ バルク / インタラプト IN 転送 ENDPOINT IN 転送用 FIFO に Local Bus Interface から書き込まれたデータが , プロトコ ルエンジンにより USB BUS へ転送されます。 図 18.3-4 コントロール (DATA ステージ )/ バルク / インタラプト IN 転送のフロー *1: USB への IN 転送開始前に CPU I/F から書き込み動作により ENDPOINT 用 FIFO に データを書き込みます。 ( 注意事項 ) CPU から DATAI[15:0] へ有効データを 2 バイト単位で書き込みます。 429 第 18 章 USB ファンクション *2: コントロールレジスタの転送元 ENDPOINT の BFOK をセットすることで , 以後 USB から IN 転送の要求が ENDPOINT に発生すればこれが処理されます ( 注意事項 ) • BFOK をセットする以前に ENDPOINT に IN 転送要求があった場合には , ステータス レジスタの NACK ビットがセットされて , USB に NACK ハンドシェークを返します。 • IN 転送要求があった時点で , コントロールレジスタの STALL ビットがセットされてい ると , USB に STALL ハンドシェークを返します。 この時ステータスレジスタ ST1 の NACK ビット , ST5 の STSTALL ビットがセットさ れます。 *3: プロトコルエンジンは , USB に IN 転送要求があると ENDPOINT 用 FIFO から , FIFO に書き込まれたバイト数分のみ転送データを読み出します。 *4: プロトコルエンジンは , ENDPOINT 用 FIFO から読み出したデータに対してパラレ ル−シリアル変換 , CRC の生成 , ビットスタッフィング等を実行したデータを USB へ出力します。この時 , 転送が正常に終了すると (ACK ハンドシェークを受信すれ ば ), ステータスレジスタの ACK ビットをセットします。もし , 転送に失敗した場 合には NACK ビットをセットします。 ( 注意事項 ) 転送に失敗した場合は , FIFO のデータは初期化されません。次の IN 転送要求に対し , 同 じデータを自動的に再送信します。 430 第 18 章 USB ファンクション 18.3.2 CPU アクセス動作説明 この項では , USB ファンクションの CPU アクセス動作について説明します。 ■ CPU IN 転送 CPU IN 転送は , IN 転送用 FIFO にデータを書き込んだ後 , レジスタへ転送許可 BFOK をセットします。また , マクロはトータルの送信バイト数をカウントする機能を備えて おり , これを用いることによってラストパケットの送信設定を簡略化できます。このカ ウンタを動作させずに IN 転送を行うことも可能です。カウンタを用いる場合と用いな い場合ではラストパケットの送信時の設定に違いがあります。 ● トータル送信バイト数カウンタ (16bit) 送信させるデータのトータルバイト数をカウントします。FIFO にデータを書き込むと カウントダウンします。トータル送信バイト数カウンタを用いる場合は , システム側よ りトータル送信バイト数 TTSIZE を設定します。なお , トータル送信バイト数カウンタ はコントロール転送には適用できません。 ● データ送信 エンドポイントバッファに 1 パケット ( 最大値 64Bytes) のデータを書き込み終了後 , シ ステム側よりレジスタの転送許可 bit BFOK を書き込むことにより送信が行われます。 ● ラストパケット ラストパケットの送信にはトータル送信バイト数カウンタを用いる場合と用いない場 合で設定に違いがあります。それぞれについて以下に示します。 トータル送信バイトカウンタを用いる場合 ラストパケットのパケットサイズ (*) によって以下の動作をします。 • マックスサイズパケット パケットの送信が終了後 , Null パケットの自動送信を行います。レジスタ NULLSET の設定により , Null パケットは自動送信させないことも可能です。 • 偶数バイトショートパケット パケットの送信は送信許可ビット BFOK を設定した時点でおこります。 • 奇数バイトショートパケット 偶数バイトショートパケットと同様。 トータル送信バイトカウンタを用いない場合 ラストデータ通知をレジスタ LSTD への設定 ( ラストデータ書き込み前に設定 ) に よって行います。 ラストパケットのパケットサイズ * によって以下の動作をします。 • マックスサイズパケット パケットの送信が終了後 , Null パケットの自動送信を行います。レジスタの NULL_SET の設定により Null パケットは自動送信させないことも可能です。 • 偶数バイトショートパケット パケットの送信は転送許可ビット BFOK を設定した時点でおこります。 • 奇数バイトショートパケット 431 第 18 章 USB ファンクション ラストデータの書込みを行う前に , レジスタの奇数バイトパケット通知 bit ODD を設定します。 パケットの送信は転送許可ビット BFOK を設定した時点でおこります。 *: ラストパケットのパケットサイズ マックスサイズパケット…パケットサイズが最大値 (64Bytes) のパケット 偶数バイトショートパケット…パケットサイズが最大値未満であり , かつその 数が偶数のパケット 奇数バイトショートパケット…パケットサイズが最大値未満であり , かつその 数が奇数のパケット ( 注意事項 ) NULL パケットの自動送信を行う設定にしている場合は , 最後のデータを書き込んだ後 , NULL パケットが正常に送信終了するまで割込みは上がりません。 NULL パケットの自動送信を行わない設定にしている場合は , 最後のデータを書き込んだ 後 , 最後のパケットが正常に送信終了するまで割込みは上がりません。 表 18.3-1 CPU IN 転送時のレジスタ設定対応表 ラストパケット以外 ラストパケット TTSIZE ( レジスタ ) BFOK ( レジスタ ) 使用 ○ LSTD ( レジスタ ) ODD ( レジスタ ) マックスサイズパケット 偶数サイズバイトパケット 奇数サイズバイトパケット ラストパケット以外 ラストパケット 未使用 マックスサイズパケット ○ 偶数サイズバイトパケット ○ 奇数サイズバイトパケット ○ ○ : 設定が必要 432 ○ 第 18 章 USB ファンクション ■ CPU OUT 転送 CPU OUT 転送は , OUT 転送用 FIFO に格納された受信データを読み出した後 , レジス タへ転送許可 BFOK をセットします。また , マクロはトータルの受信バイト数をカウ ントする機能を備えており , これを用いることによって全ての受信データの読出しが 完了したことを知ることができます。このカウンタを動作させずに OUT 転送を行うこ とも可能です。その場合はトータルの転送が終了したことを知らせる割込みはあがり ません。送信完了時の ACK 割込みを受けて CPU により転送終了を判断する必要があ ります。 ● データ受信 エンドポイントバッファに読出し可能データが格納されると, マクロが割込み要求IRQ をあげます。受信したデータのサイズは受信データサイズレジスタ RSIZE に格納され ます。受信データサイズレジスタ RSIZE を読んだ後 , そのサイズ分のデータを読み出 します。エンドポイントからデータを読み出した後 , システム側よりレジスタの転送許 可ビット BFOK を設定します。 ● トータル受信バイト数カウンタ (16bit) マクロはトータルの受信データバイト数をカウントするトータル受信バイト数カウン タを備えています。 トータル受信バイト数カウンタは , CPU が FIFO に格納された受信データを読み出すこ とによってカウントダウンします。カウンタ初期値はレジスタ TRSIZE に設定します。 受信データを全て読み出し , カウント値が "0" になると割込み IRQ があがります。こ れにより全てのデータの読出しが完了したことを知ることができます。なお , トータル 受信バイト数カウンタはコントロール転送には適用できません。 ( 注意事項 ) BulkOUT 転送において , 正常に受信したパケットのデータサイズが 0Byte の場合はマクロ は割込みを上げません 433 第 18 章 USB ファンクション 18.3.3 DMA 動作説明 この項では , USB ファンクションの DMA 動作について説明します。 本マクロの DMA 転送はシングル転送 / ブロック転送に対応します。 コントロールレジスタ CONT10 の DMAMODE の設定によりシングル転送 / ブロッ ク転送の選択ができます。 DMA 転送は Bulk IN/OUT 転送で可能です。 DMA 転送では , 0Byte 以外の転送を行うことが可能です。 ■ DMA IN 転送 DMA IN 転送は , IN 転送用 FIFO にデータを書き込んだ後 , 自動でレジスタへ転送許可 BFOK がセットされます。また , マクロはトータルの送信バイト数をカウントする機能 を備えており , これを用いることによってラストパケットの送信を自動で行います。 ● トータル送信バイト数カウンタ (16bit) 送信させるデータのトータルバイト数をカウントします。FIFO にデータを書き込むと カウントダウンします。トータル送信バイト数カウンタは , システム側よりトータル送 信バイト数 TTSIZE を設定します。なお , トータル送信バイト数カウンタはコントロー ル転送 , インタラプト転送には適用できません。 ● データ送信 データ送信は FIFO が Full(64Bytes) になった時点で自動におこります。あるいは , ラス トパケットの書込みが終了した時点で起こります。ラストパケットの送信ついては次 に示します。 ● ラストパケットの送信 ラストパケットのパケットサイズ (*) によって以下の動作をします。 マックスサイズパケット パケットの送信はトータル送信バイト数 TTSIZE 分のデータを書き込み終わった時 点で自動でおこります。パケットの送信が終了後 , Null パケットの自動送信を行い ます。レジスタの NULLSET の設定により , Null パケットは自動送信させないこと も可能です。 偶数バイトショートパケット パケットの送信はトータル送信バイト数 TTSIZE 分のデータを書き込みが終わった 時点で自動におこります。 奇数バイトショートパケット 偶数バイトショートパケットと同様。 *: ラストパケットのパケットサイズ マックスサイズパケット : パケットサイズが最大値 (64Bytes) のパケット 偶数バイトショートパケット : パケットサイズが最大値未満であり , かつその数が 偶数のパケット 奇数バイトショートパケット : パケットサイズが最大値未満であり , かつその数が 奇数のパケット 434 第 18 章 USB ファンクション ( 注意事項 ) NULL パケットの自動送信を行う設定にしている場合は , 最後のデータを書き込んだ後 , NULL パケットが正常に送信終了するまで次の DREQ は上がりません。 NULL パケットの自動送信を行わない設定にしている場合は , 最後のデータを書き込んだ 後 , 最後のパケットが正常に送信終了するまで次の DREQ は上がりません。 ■ DMA OUT 転送 DMA OUT 転送は , OUT 転送用 FIFO に格納された受信データを読み出した後 , マクロ が自動的にレジスタへ転送許可 BFOK をセットします。また , マクロはトータルの受 信バイト数をカウントする機能を備えており , これを用いることによって全ての受信 データの読み出しが完了したことを知ることができます。このカウンタを動作させず に OUT 転送を行うことも可能です。その場合はトータルの転送が終了したことを知ら せる割込みはあがりません。マクロ外部で判断する必要があります。 ● データ受信 エンドポイントバッファに読出し可能データが格納されると , マクロが DREQ をあげ ます。FIFO からデータを読み出し終わると , マクロは自動的に転送許可 BFOK をセッ トします。 ● トータル受信データバイト数カウンタ (16bit) マクロはトータルの受信データバイト数をカウントするトータル受信バイト数カウン タを備えています。 トータル受信バイト数カウンタは , DMAC が FIFO に格納された受信データを読み出す ことによってカウントダウンします。カウンタ初期値はレジスタ TRSIZE に設定しま す。受信データを全て読み出し , カウント値が "0" になると割込み IRQ があがります。 これにより全てのデータの読出しが完了したことを知ることができます。なお , トータ ル受信バイト数カウンタはコントロール転送には適用できません。 ( 注意事項 ) DMA OUT 転送終了後に CPU で Bulk OUT 転送を行う場合は , レジスタ CONT2 の INI1 をセットすることによって , レジスタ ST1 の両面の ACK, NACK 割込み要因ビットを初期 化する必要があります。 435 第 18 章 USB ファンクション ■ DMA シングル転送 READ/WRITE Timing Chart FR はブロック / ステップ転送に対応します。 436 第 18 章 USB ファンクション ■ DMA ブロック転送 READ/WRITE Timing Chart FR はデマンド転送に対応します。 437 第 18 章 USB ファンクション 18.3.4 割込み要因一覧 表 18.3-2 に , USB ファンクションの割込み要因の一覧を示します。 ■ 割込み要因一覧 表 18.3-2 割込み要因一覧 割込み要因 CPU アクセス DMA アクセス ステータス bit マスク bit IN 転送時にエンドポイントが書き込み許 可状態となる ○ ― レジスタ ST1 を参照 レ ジ ス タ CONT7を参照 OUT 転送時にエンドポイントが読み出し 許可状態となる ○ ― レジスタ ST1 を参照 レ ジ ス タ CONT7を参照 マクロが Nack を送受 ○ ○ レジスタ ST1 を参照 レ ジ ス タ CONT8を参照 送信用エンドポイントからトータルの送 信データを送信完了 ○ ○ レジスタ ST5 TTRSEND ― 受信用エンドポイントからトータルの受 信データ読み出し完了 ○ ○ レジスタ ST5 TRCVEND ― デバイスがストール状態になる ○ ○ レジスタ ST5 STALLn レ ジ ス タ CONT9を参照 USB BUS RESET がかかる ○ ○ レジスタ ST5 USBRESET レ ジ ス タ CONT9を参照 ( ○ ; 割込み IRQ がアサート ) 438 第 18 章 USB ファンクション ENDPOINT BUFFER の設定 18.3.5 本マクロのプロトコルエンジンは電源投入時およびリセット後 , ENDPOINT に関す る設定をプロトコルエンジン内の ENDPOINT BUFFER に書き込む必要があります。 設定は各 ENDPOINT 毎に 5 バイト必要であり , 全部で 20 バイトが必要となります。 ■ ENDPOINT BUFFER の設定 図 18.3-5 エンドポイントバッファ設定のフロー ■ 設定方法 1: ハードウェアリセット / ソフトウェアリセットのタイミングにしたがってマクロの リセットを解除します。 *2: FIFO2 に 20 バイトのデータを CPU から書き込みます。 20 バイトの内容は次項を参照願います。 *3: *2 が完了した後 , コントロールレジスタ CONT1 の CFGEN ビットをセットします。 *4: *3 をトリガにして , プロトコルエンジンが 20 バイトのデータを FIFO2 から自動的 に読み出します , これにより , プロトコルエンジン内の ENDPOINT BUFFER が設定 されます。 *5: 設定が完了するとステータスレジスタ ST3 の CFEND ビットがセットされます。 ( 注意事項 ) *3 の CFGEN ビットをセットしてから *5 の CFEND ビットがセットされるまでには約 3.4 µ s の時間がかか ります。 439 第 18 章 USB ファンクション ■ 設定内容 以下のデータをデバイスの初期化のため , FIFO2 に CPU から書き込みます。 データの書き込み順は下の表において 1 行目を先頭に以下 2 行目 , 3 行目 , .., 10 行目の 順です。 各行の MSB は左側のビットです。 表 18.3-3 エンドポイントバッファの設定内容 440 ENDPOINT BUFFER 設定データ [15] [0] 16 進 0000000000000000 0x0000 0001000010000000 0x1080 0000000000010100 0x0014 0010000010000000 0x2080 1000000000000001 0x8001 0010010000101000 0x2428 1000000010000000 0x8080 0000001000110100 0x0234 0011100000010000 0x3810 1000000000000011 0x8003 第 18 章 USB ファンクション 18.3.6 ソフトウェア制御例 ( 暫定 ) この項では , USB ファンクションのソフトウェア制御例を示します。 ■ セットアップ制御例 図 18.3-6 セットアップの制御例 441 第 18 章 USB ファンクション ■ CPU アクセス受信時の制御例 図 18.3-7 CPU アクセス受信時の制御例 442 第 18 章 USB ファンクション 443 第 18 章 USB ファンクション ■ CPU アクセス送信時の制御例 図 18.3-8 CPU アクセス送信時の制御例 444 第 18 章 USB ファンクション 445 第 18 章 USB ファンクション ■ ラストパケット送信データの書き込み 図 18.3-9 ラストパケット送信データの書き込み 446 第 18 章 USB ファンクション ■ DMA 受信時の制御例 図 18.3-10 DMA 受信時の制御例 447 第 18 章 USB ファンクション ■ DMA 送信時の制御例 図 18.3-11 送信動作 送信動作開始 コントロールレジスタTTSIZEに トータル受信バイト数書込み トータル送信バイト数カウンタを 使用する場合は、FIFOにデータを書 き込む前にこれらの設定をを行い ます。 コントロールレジスタCONT10の TTCNTENビットを1にセット コントロールレジスタCONT4の FIFOBUSY2ビットを0にリセット コントロールレジスタCONT5の DFIFOBUSY2ビットを1にセット コントロールレジスタCONT6の MDREQ2ビットを1にセット DREQアサート NO YES 送信用 FIFO に送信データを書込み (2バイト) IRQアサート NO YES ステータスレジスタST5の 割込み要因ビットTTRSENDを読出し * 送信動作終了 448 *: トータル送信バイト数カウンタを用 いない場合は割込みは発生しません。 トータルの転送の終了はマクロ外部 で判断する必要があります。 第 18 章 USB ファンクション 図 18.3-12 ラストパケット送信データの書き込み 449 第 18 章 USB ファンクション 18.4 補足事項 USB ファンクションコントローラマクロの使用上の補足事項を記述します。 ■ 補足事項 18.4.1 ダブルバッファ 18.4.2 ボード上の D+ 終端抵抗制御について 18.4.3 USB 標準要求コマンドに対するマクロの自動応答内容 18.4.4 デフォルト状態での USB マクロの動作 18.4.5 SUSPEND 時の USB クロック制御 18.4.6 USB コネクタの接続 / 未接続の検知 18.4.7 UCLK48 の精度 18.4.8 コントロール転送時の転送許可 BFOK の設定 18.4.9 コントロール転送における注意点 450 第 18 章 USB ファンクション 18.4.1 ダブルバッファ 本マクロは , Bulk 転送用エンドポイントにダブルバッファ (64Byte × 2) を有してま す。 IN 転送時 , USB データ送信中に , システム側より次パケットデータを送信 FIFO に 書き込むことができます。 OUT 転送時 , システム側よりデータ読み出し中に , 次パケットの受信を行うことが できます。 ダブルバッファの切り替えはパケット単位で行います。 ■ Bulk IN 転送 (CPU WRITE/USB READ) タイミングチャート 図 18.4-1 に Bulk IN 転送時のダブルバッファのタイミングチャートおよび動作図を示 します。 タイミングチャート中の IRQ は , コントロールレジスタ CONT8 MNACK の設定により NACK でアサートしない場合について示しています。 図 18.4-1 の説明を以下に示します。 1. CPU より送信用 FIFO(a) にデータを書き込みます。 2. FIFO(a) が Full(64Bytes) の状態になり転送許可 BFOK をセットすると , USB 側から 送信が始まります。これと同時に CPU には FIFO(b) が見えることになり , 次の送信 用データを書き込むことができます。 3. FIFO(b) の書込みが終了した時点で , 転送許可 BFOK をセットします。同時に CPU には FIFO(a) が見えることになりますが , FIFO(a) の USB 送信が終了していないの で CPU 側の書込みはできません。 FIFO(a) の送信が終了しエラーがなければ ACK(ACK1) が返って来ます。 4. ACK(ACK1) が返ると FIFO(a) は書込み許可の状態となります。CPU 側から次のデー タを書き込みます。また , USB 側からは FIFO(b) が見えることになります。FIFO(b) には送信許可状態のデータがすでにあるので , USB 側は送信を始めます。 5. FIFO(a) の書込みが終了した時点で , 転送許可 BFOK をセットします。同時に CPU には FIFO(b) が見えることになりますが , FIFO(b) の USB 送信が終了していないの で CPU 側の書込みはできません。 FIFO(b) の送信が終了しエラーがあると NACK が返って来ます。 6. NACK が返ると USB 側は FIFO(b) のデータの再送信を始めます。CPU 側は FIFO(b) の USB 送信が終了していないので書込みはできません。 FIFO(b) の送信が終了しエラーがなければ ACK(ACK2) が返って来ます。 7. ACK(ACK2) が返ると FIFO(b) は書込み許可の状態となりますが , LAST PACKET の 送信終了まで割込みは上がりません。 451 第 18 章 USB ファンクション 図 18.4-1 Bulk IN 転送 (CPU 書込み /USB 読出し ) タイミングチャート 452 第 18 章 USB ファンクション ■ Bulk OUT 転送 (CPU READ/USB WRITE) タイミングチャート 図 18.4-2 に Bulk OUT 転送時のダブルバッファのタイミングチャートおよび動作図を 示します。 タイミングチャート中の IRQ は , コントロールレジスタ CONT8 MNACK の設定により NACK でアサートしない場合について示しています。 図 18.4-2 の説明を以下に示します。 1. USB 側より FIFO(a) に受信データが書き込まれます。 FIFO(a) に 1 パケット分の受信データが格納され , エラーがなければマクロが ACK(ACK1) を返します。 2. ACK(ACK1) を返すと , FIFO(a) は読出し可能となり , CPU 側より読出しを始めます。 また , USB 側には FIFO(b) が見えることになり , FIFO(b) に次のパケットの受信を始 めます。 3. CPU 側から FIFO(a) のデータの読出しを終了した時点で , 転送許可 BFOK をセット します。CPU 側には FIFO(b) が見えることになりますが , USB 側の書込みが終了し ていないので読出しはできません。 FIFO(b) に 1 パケット分の受信データが格納され , エラーがあるとマクロが NACK を返します。 4. NACK を返すと FIFO(b) には再受信が始まります。CPU 側からは読出しはできませ ん。 FIFO(b) に 1 パケット分の受信データが格納され , エラーがなければマクロが ACK(ACK2) を返します。 5. ACK(ACK2) を返すと , FIFO(b) は読出し可能となり , CPU 側より読出しを始めます。 また , USB 側には FIFO(a) が見えることになり , FIFO(a) に次のパケットの受信を始 めます。 453 第 18 章 USB ファンクション 図 18.4-2 Bulk OUT 転送 (CPU 読出し /USB 書込み ) タイミングチャート 454 第 18 章 USB ファンクション 18.4.2 ボード上の D+ 終端抵抗制御について アプリケーション ( ファームウェア ) の初期化ルーチンにかかる時間を確保する目的 で , ボード上の USB の D+ 信号の終端抵抗を CUT する制御を実施する場合の本マク ロに関する注意点を説明します。 ■ ボード上の D+ 終端抵抗制御 ハブが下流側 USB ポートの接続を感知するのは , ファンクションデバイスの次の状況 が満足された時です。 • USB が接続されている状態での電源投入 • 電源投入済みで USB に接続 USBの仕様では, ファンクションデバイスはハブがポートの接続を感知してから100ms 以内にトランザクションを受け取ることができる状態になっていなければなりませ ん。 本マクロは上で説明したハブが USB ポートの接続を感知する条件が成立すると , リ セット処理に続いて ENDPOINT BUFFER の設定シーケンスが必要です。 ファームウェアが , リセットや ENDPOINT BUFFER の設定を含めた初期化ルーチンに 100ms 以上の時間を必要とする場合には , ボード上の USB の D+ 信号の終端抵抗を CUT する制御によりポートが接続されてもハブに接続を感知させない方法があります。こ の場合の本マクロの注意点は以下の点です。 ( 注意事項 ) • ENDPOINT BUFFER の設定は , リセットが解除されてから開始します。 • 終端抵抗を接続する制御はファームウェアの ENDPOINT BUFFER の設定が完了して から行います。 455 第 18 章 USB ファンクション 18.4.3 USB 標準要求コマンドに対するマクロの自動応答内容 本マクロは USB 標準要求コマンドに対して , アプリケーション側の負荷を軽くする ために自動応答処理します。 ただし , 以下の USB 標準要求コマンドに対してはアプリケーション側での処理が必 要です。 SET_DESCRIPTOR / GET_DESCRIPTOR / SYNCH_FRAME の処理 ■ USB 標準要求コマンドに対するマクロの自動応答内容 表 18.4-1 に本マクロが自動応答処理する USB 標準要求コマンドとその自動応答内容を 示します。 自動応答内容は USB Function Ver1.1 に準拠します。 表 18.4-1 USB 標準要求コマンドとその自動応答内容 本マクロが自動応答処理する USB 標準要求コマンド 自動応答内容 Data Stage Status Stage Device:DEVICE_REMOTE_WAKEUP ― NULLデータ返送 ENDPOINT:ENDPOINT_STALL 本マクロがサポートしている ENDPOINT 番号 ― NULLデータ返送 ENDPOINT:ENDPOINT_STALL 本マクロがサポートしていない ENDPOINT 番号 ― STALL 応答 GET_CONFIGURATION 現在の Configuration 値を返送 NULLデータ受信 GET_INTERF ACE 本マクロがサポートしているInterface 番号 現在の Alternate 値を返送 NULLデータ受信 本マクロがサポートしていない Interface 番号 STALL 応答 ― Device 現在のデバイスの電源の状態お よび REMOTE_WAKEUP 機能の 有効 / 無効を返送 NULLデータ受信 ENDPOINT: 本マクロがサポートしている ENDPOINT 番号 現在の ENDPOINT_STALL の状 態を返送 NULLデータ受信 ENDPOINT: 本マクロがサポートしていない ENDPOINT 番号 STALL 応答 ― ― NULLデータ返送 CLEAR_FEAT URE GET_STATUS SET_ADDRESS 456 第 18 章 USB ファンクション 表 18.4-1 USB 標準要求コマンドとその自動応答内容 本マクロが自動応答処理する USB 標準要求コマンド SET_CONFIG URATION SET_FEATUR E SET_INTERFA CE 自動応答内容 Data Stage Status Stage 本マクロがサポートしている Configuration 番号 ― NULLデータ返送 本マクロがサポートしていない Configuration 番号 ― STALL 応答 Device:DEVICE_REMOTE_WAKEUP ― NULLデータ返送 ENDPOINT:ENDPOINT_STALL 本マクロがサポートしている ENDPOINT番号(ENDPOINT0を除く) ― NULLデータ返送 ENDPOINT:ENDPOINT_STALL 本マクロがサポートしていない ENDPOINT 番号または ENDPOINT0 ― STALL 応答 本マクロがサポートしているInterface 番号および Alternate 番号 ― NULLデータ返送 本マクロがサポートしていない Interface 番号または Alternate 番号 ― STALL 応答 457 第 18 章 USB ファンクション 18.4.4 デフォルト状態での USB マクロの動作 本 USB マクロはリセット解除後にはデフォルト状態となっています。 また , 本 USB マクロは Configuration が 1 のコンフィグレーション状態をとること ができます。 ■ デフォルト状態での USB マクロの動作 USB HOST からの送信されてきた SET_CONFIGURATION コマンドが Configuration=1 の設定要求であった場合に , マクロはコンフィグレーション状態に遷移します。 デフォルト状態では , ENDPOINT0 のみが使用できます。その他の ENDPOINT は使用 できません。仮に ENDPOINT0 以外の ENDPOINT に転送要求がきた場合はマクロは何 も応答せずに TimeOut となります。 コンフィグレーション状態では , 全ての ENDPOINT が使用できます。 デフォルト状態 , コンフィグレーション状態での ENDPOINT0 ∼ 3 のマクロの応答を以 下に示します。 表 18.4-2 コンフィグレーション状態でのエンドポイント 0 ∼ 3 のマクロの応答 デフォルト状態 コンフィグレーション状態 ENDPOINT0 使用可 転送要求が来ると応答します。 使用可 転送要求が来ると応答します。 ENDPOINT1 ∼ 3 使用不可 転送要求が来ても TimeOut します。 使用可 転送要求が来ると応答します。 458 第 18 章 USB ファンクション 18.4.5 SUSPEND 時の USB クロック制御 本 USB マクロは SUSPEND 状態に移行すると , SUSPEND 信号をアサートします。 また , この時 , レジスタ ST3 の SUSP が 1 にセットされます。 消費電力を抑えるために , 本マクロが SUSPEND 状態に移行した際に , SUSPEN ビットにより USB クロックを停止させることが可能です。 ■ SUSPEND 時の USB クロック制御例 サスペンド時の USB クロック制御は , 例えば以下の順序で行われます。 1. マクロが SUSPEND 信号をアサート 2. UCLK48 停止 3. SUSPEND 信号がディアサート 4. UCLK48 を再始動 , USB マクロへ 48MHz のクロックを入力 5. HOST からの転送待機 USB Ver1.1 の規格では , SUSPEND から抜けた USB ファンクションは 10ms 以内に HOSTからの転送を受け付ける準備ができていなくてならないという規定があります。 そのため , USB クロックを停止させた場合は , USB マクロが SUSPEND から抜けてか ら 10ms 以内に安定した USB クロックを入力する必要があります。 459 第 18 章 USB ファンクション 18.4.6 USB コネクタの接続 / 未接続の検知 本 USB マクロには , USB コネクタの接続 / 未接続を検知する機能は実装しておりま せん。以下の方法で検知してください。 ■ USB コネクタの接続 / 未接続の検知 USB ファンクションは USB のコネクタが接続されているか , 切断されているかを D+, D- の信号から判断できません。 USB コネクタの接続 / 未接続は , マクロ外部において VBUS の検知により行う必要が あります。 コネクタ接続時 :VBUS=5V コネクタ未接続時 :VBUS=0V ボード上で VBUS の変化を検知して , MPU に割込みを上げるなどの方法が考えられま す。 コネクタの接続を検出した際は , USB マクロにリセットをかける必要があります。 460 第 18 章 USB ファンクション 18.4.7 UCLK48 の精度 UCLK48 のクロック精度について説明します。 ■ UCLK48 の精度 USB Ver1.1 の規格では , D+, D- データ信号について 2 つの規格があります。 UCLK48 へのクロック入力は , 水晶発振モジュールから 48MHz を供給してください。 PLL をご使用になる場合は , 特にクロック精度に注意してください。 ● データ−レート ( 長期的 ) 規格 デバイス装置は (LSI だけではなくて装置として )2500ppm( + / − 0.25%) の精度が必要 です。 USB 規格で 2500ppm の精度が要求されるのは 12MHz に対してですが , USB マクロは 48MHz のクロックエッジの中から , データに同期したクロックエッジを選択して 12MHz のクロックとするため , 48MHz に対して 2500ppm よりも高い精度が必要となり ます。 このため , UCLK48 には必要条件として 2500ppm よりも高い精度が必要となります。 ● 短期的な規格 デバイス装置は(LSIだけではなくて装置として)次のジッタを満たす必要があります。 • 1 回目のクロスポイントまで+ / − 1ns 以内のジッタ • 2 回目のクロスポイントまで+ / − 2ns 以内のジッタ 毎回 D+, D- 信号が変化することがあるので , 48MHz のクロックの各エッジに対して + / − 1ns の精度が必要となります。 461 第 18 章 USB ファンクション 18.4.8 コントロール転送時の転送許可 BFOK の設定 コントロール転送のセットアップステージにおいて , マクロがコマンドを受信し ACK 応答するためには , レジスタ CONT3 の BFOK0o が 1 にセットされている必要 があります。BFOK0o が 0 の場合は TimeOut します。これは , マクロが自動処理す るコマンドのセットアップステージにおいても同様です。 ■ BFOK の設定 コントロール転送時の BFOK0i, BFOK0o の設定について以下に示します。 マクロが自動処理するリクエストの場合 • セットアップステージ - ACK 応答させるためには BFOK0o=1 セットする必要があります。 - BFOK0o=0 の場合は TimeOut します。 • データステージ - IN : 対象のリクエストはありません。 - OUT :BFOK0o の設定値に関わらず ACK 応答 • ステータスステージ - IN :BFOK0i の設定値に関わらず ACK 応答 - OUT :BFOK0o の設定値に関わらず ACK 応答 マクロが自動処理しないリクエストの場合 • セットアップステージ - ACK 応答させるためには BFOK0o=1 セットする必要があります。 • データステージ - IN :ACK 応答させるためには BFOK0i=1 セットする必要があります。 - OUT :ACK 応答させるためには BFOK0o=1 セットする必要があります。 • ステータスステージ 462 - IN :ACK 応答させるためには BFOK0i=1 セットする必要があります。 - OUT :ACK 応答させるためには BFOK0o=1 セットする必要があります。 第 18 章 USB ファンクション 18.4.9 コントロール転送における注意点 コントロール転送における注意点を以下に示します。 ■ BFOK0o の設定の優先順位 USB の規格では , USB ファンクションはセットアップステージで ACK 応答することの みが許されています。ACK 応答できない場合は TimeOut します。 セットアップステージで TimeOut が 3 回続くと USB ホストはファンクションデバイス を切り離します。そのため , セットアップステージでは必ず ACK 応答させることが望 ましい制御となります。 ステータスステージが ACK 応答で終了すると , BFOK0o はリセットされます。次に セットアップステージで ACK 応答させるためには , セットアップステージが始まる前 に BFOK0o の設定をすることが必要ですので , BFOK0o の設定の優先順位はできるだ け上位にしてください。 なお , この事はマクロが自動処理しないコマンドの場合に該当します。マクロが自動処 理するコマンドの場合には ACK の転送があっても BFOK0o はリセットされません。 ■ GET_DESCRIPTOR コマンドでのデータステージの中断 自動応答では無い GET_DESCRIPTOR コマンドの場合に , 初めにホストが要求してく る IN 転送データのバイト数未満でも , ホストが途中でデータステージを止めてしまう ことがあります。そのため , 先に IN 転送用 FIFO へデータを書き込んでおいても , 以下 に示すようにデータをホストが全て持っていかない場合があります。 セットアップステージ (16 バイト要求 ) ↓ データステージ CPU から IN 転送用 FIFO へ 8 バイト ( データ A) ライト ホストから IN 転送要求 ファンクションが 8 バイト送信 ACK 受信 CPU から IN 転送用 FIFO へ 8 バイト ( データ B) ライト ( 注意事項 ) ここでホストがデータステージを止めてしまうことがあります。 ↓ ステータスステージ OUT 転送で 0 バイト受信 ここで , 既に FIFO に書いてあるデータ B は , 次の IN 転送要求がくる前に破棄し FIFO を初期化する必要があります。上記のようにホストが途中でデータを持っていくのを 止めたことを知るには , USB RESET による割込みを検出する方法が考えられます。あ るいは以下のように ACK の割込み要因を見る方法が考えられます。 463 第 18 章 USB ファンクション データステージ : 割込み要因 ACK0i がセット ステータスステージ : 割込み要因 ACK0o がセット ( データステージが続いているのであれば ACK0i がセットされ る) 割込み要因が ACK0i から ACK0o に替わったことによって , データステージからステー タスステージに移ったことが判断できます。 464 第 18 章 USB ファンクション 18.4.9.1 USB BUS RESET 後のマクロの状態 この項では , USB BUS RESET 後のマクロの状態について説明します。 ■ USB BUS RESET 後のマクロの状態 USB BUS RESET によって , マクロのレジスタの設定値および FIFO の状態はリセット されません。USB BUS RESET 後に USB の転送を始めるためには , アプリケーション によってレジスタおよびFIFOの状態を転送をはじめる前の初期状態に戻すことが必要 です。 また , ENDPOINT BUFFER の初期設定値も USB BUS RESET によって初期化されずに 初期設定値を保持していますので , ENDPOINT BUFFER の設定は再度行う必要はあり ません。 なお , USB BUS RESET によってマクロは USB の Default に遷移します。 465 第 18 章 USB ファンクション 466 第 19 章 USB ホストインタフェース この章では , USB ホストインタフェースの概要と , レジスタの構成 / 機能について説明します。 19.1 USB ホストインタフェースの概要 19.2 USB ホストインタフェースのレジスタ 467 第 19 章 USB ホストインタフェース 19.1 USB ホストインタフェースの概要 本インタフェースは FR IF, SRAM IF をもった USB ホスト コントローラです。 ■ USB ホストインタフェース 本マクロは OHCI 準拠の USB HOST CONTROLLER で , 次ページ以降に示す特徴を有 します。 本マクロはリトルエンディアンにて動作をしますので , CS1 の ACR1 レジスタの LEND ビットは "1" に設定してから使用してください。 本マクロへのアクセスはワード (32 ビット ) アクセス命令を使用してください。その際 の動作モードは DBW を 10(32 ビットモード ) にし , ワードアクセス命令以外は使用し ないでください。また , ビット操作命令を実施するとバイトアクセスを行ってしまうた め , ビット操作命令は使用しないでください。 • USB Specification Version 1.0 準拠 • OpenHCI Specification Version 1.0a 準拠 ( 但し , レガシー関連未対応 ) • HOST CONTROLLER 機能 ( 参考 ) OHCI の仕様につきましては , 下記の URL を参照してください。 http://www.compaq.com/productinfo/development/openhci.html また , 本インタフェースは USB Version 1.0 対応ですが , USB Version 1.0 と 1.1 の違いに つきましては , 下記の URL を参照してください。主な違いは Interrupt OUT 転送への対応 が追加されたことです。 http://www.usb.org/developers/data/usbplus.zip 468 第 19 章 USB ホストインタフェース ■ ブロックダイヤグラム 図 19.1-1 に本マクロのブロック構成図を示す。 図 19.1-1 ブロックダイヤグラム 469 第 19 章 USB ホストインタフェース 19.2 USB ホストインタフェースのレジスタ USB ホストは , 外部メモリインタフェースを経由して CS1 領域に接続されていま す。( 第 3 章 , 第 5 章参照 )。 ■ USB ホスト マクロ内レジスタ USB ホスト マクロ内レジスタに対するレジスタ マップを表 19.2-1 に示します。 表 19.2-1 USB ホスト マクロ内レジスタ マップ 470 CPU バスアドレス (CS1 領域内 ) レジスタ 0x0005_0000 HcRevision 0x0005_0004 HcControl 0x0005_0008 HcCommandStatus 0x0005_000C HcInterruptStatus 0x0005_0010 HcInterruptEnable 0x0005_0014 HcInterruptDisable 0x0005_0018 HcHCCA 0x0005_001C HcPeriodCurrentED 0x0005_0020 HcControlHeadED 0x0005_0024 HcControlCurrentED 0x0005_0028 HcBulkHeadED 0x0005_002C HcBulkCurrentED 0x0005_0030 HcDoneHead 0x0005_0034 HcFmInterval 0x0005_0038 HcFmRemaining 0x0005_003C HcFmNumber 0x0005_0040 HcPeriodicStart 0x0005_0044 HcLSThreshold 0x0005_0048 HcRhDescriptorA 0x0005_004C HcRhDescriptorB 0x0005_0050 HcRhStatus 0x0005_0054 HcRhPortStatus[1] 0x0005_0058 HcRhPortStatus[2] 0x0005_005C ∼ 0x0005_7FFF Reserved 第 19 章 USB ホストインタフェース ■ SRAM 領域 CPU から見たアドレス領域 (CS1 領域 ) CS1 内 アドレス : 0x0005_8000 ∼ 0x0005_9FFFF (8Kbyte 領域 ) USB から見たアドレス領域 内部 PCI バスアドレス : 0x4000_0000 ∼ 0x4000_1FFF(8Kbyte 領域 ) ■ HcRevision Register ビット リセット 名称 R/W 説明 7∼0 REV 10H R Revision OHCI specification の版数を示す。 本マクロは 1.0 をサポートしますので 10H 固定となる。 31∼8 ― 01H R Reserved ■ HcControl Register HcControl レジスタは, ホストコントローラのオペレーティング・モードを設定します。 RemoteWakeupConnected 以外のビットは , ホストコントローラ・ドライバからのみ書き 換え可能です。 ビット 名称 リセット R/W 説明 1, 0 CBSR 00B R/W ControlBulkServiceRatio BULK Endpoint ごとの Control Endpoint へのサービスの回数を記 述する。N-1 が N 回の Control Endpoint へのサービスを示す。 ( 例 00=1Control Endpoint, 11 = 4Control Endpoint) 2 PLE 0B R/W PeriodicListEnable このビットがセットされると Periodic(interrupt と isochronous) の list の処理がイネーブルとなる。本マクロはフレームの周期的な 転送を行うまえにこのビットをチェックする。 3 IE 0B R/W IsochronousEnable このビットがクリアされるとPeriodicListEnableがセットされてい ても isochronous の list の処理はディセーブルされる。( この場合 interrupt ED は処理される。) 本マクロは isochronous ED を処理す る毎にこのビットをチェックする。 4 CLE 0B R/W ControlListEnable このビットがセットされると Control の list の処理がイネーブルと なる。 5 BLE 0B R/W BulkListEnable このビットがセットされると Bulk の List の処理がイネーブルと なる。 7, 6 HCFS 00B R/W HostControllerFunctionalState この領域は本マクロの State をセットします。本マクロ自身では DownPort からのリジューム信号を検知するとステートを USBSuspend から USBResume へ変化させる。 00:USBReset 01:USBResume 10:USBOperational 11:USBSuspend 471 第 19 章 USB ホストインタフェース ビット 名称 リセット R/W 説明 8 IR 0B R/W InterruptRouting このビットは割込みの経路を示す。 0:割込みは通常の機能 (INT) の経路 1:割込みは SMI の経路 9 RWC 0B R RemoteWakeupConnected このビットはホストコントローラがremote wakeup signalをサポー トするかどうかを示す。本マクロは remote wakeup signal をサポー トしないので "0" にハードコーディドされている。 10 RWE 0B R/W RemoteWakeupEnable このビットはホストコントローラが remote wakeup signal をサ ポートする場合 , その動作をイネーブルする。本マクロは remote wakeup signal をサポートしないのでこのビットは使用されない。 31 ∼ 11 ― 0H ― Reserved Read/Write 0’s ■ HcCommandStatus Register HcCommandStatus レジスタは , ホストコントローラの状態を反映することだけでなく , ホストコントローラ・ドライバによって出された命令を受けるためにも使われます。 ビット 名称 リセット R/W 説明 0 HCR 0B R/W HostControllerReset このビットはソフトウェアリセットを始めるためにセットされ る。 このビットはリセット動作完了後本マクロ自身によりクリアさ れる。 1 CLF 0B R/W ControlListFilled Control list にアクティブな ED があることを示すためにセットす る。ソフトウェアまたは本マクロ自身がセットし , 本マクロ自身 が Control list の先頭を処理し始める度にクリアされる。 2 BLF 0B R/W BulkListFilled Bulk list にアクティブなEDがあることを示すためにセットする。 ソフトウェアまたは本マクロ自身がセットし , 本マクロ自身が Bulk list の先頭を処理し始める度にクリアされる。 3 OCR 0B R/W OwnershipChangeRequest ソフトウェアによりセットされると , このビットにより HcInterruptStatus レジスタの OwnershipChange がセットされる。こ のビットはソフトウェアによりクリアされる。 15 ∼ 4 ― 0H ― Reserved Read/Write 0’s 17, 16 SOC 00B 31∼18 ― 0H 472 SchedulingOverrunCount この領域は HcInterruptStatus レジスタの ScheduleOverrunbit がセッ トされる度にインクリメントされる。カウントは "11" の次ぎは "00" となる。 ― Reserved Read/Write 0’s 第 19 章 USB ホストインタフェース ■ HcInterruptStatus Register HcInterruptStatus レジスタは , ハードウェア割込みの要因となる状態を示します。ハー ドウェア割込みを発生するには , HcInterruptEnable Register を設定して MIE ビットを セットします。ホストコントローラが各ビットをセットしますが , クリアはしません。 ホストコントローラ・ドライバは , "1" を書き込むことで , そのビットをクリアできま すが , セットすることはできません。 ビット 名称 リセット R/W 説明 0 SO 0B R/W SchedulingOverrun ListProcessorがScheduleOverrunを発生したと判断した時点でセッ トする。 1 WDH 0B R/W WritebackDoneHead 本マクロが HccaDoneHead へ HcDoneHead を書き終えるとセット する。 2 SF 0B R/W StartofFrame Flame Managemanet ブロックが 'Start of Frame' のイベント 信号を発生させるとセットする。 3 RD 0B R/W ResumeDetected 本マクロがダウンポートでリジューム信号を検知するとセット する。 4 UE 0B R UnrecoverableError このイベントは本マクロではサポートしていない。 '0' にハードコーディドされている。書き込みは無効。 5 FNO 0B R/W FrameNumberOverflow FrameNumber の 15bit が変化するとセットする。 6 RHSC 0B R/W RootHubStatusChange HcRhStatus または HcRhPortStatus レジスタの内容が変化した場合 にセットされる。本ビットは HcRhStatus または HcRhPortStatus レジスタの内容をクリアすることでクリアされます。 29∼7 ― 0H ― Reserved Read/Write 0’s 30 OC 0B R/W OwnershipChange HcCommandStatus レジスタの OwnershipChangeRequest ビットが セットされるとこのビットがセットされる。 31 ― 0H ― Reserved Read/Write 0’s 473 第 19 章 USB ホストインタフェース ■ HcInterruptEnable Register HcInterruptEnable レジスタはハードウェア割込みの生成をコントロールします。割込み 要因の設定を有効にして , MIE をセットすることでハードウェア割込みが有効になり ます。 ビット 名称 リセット R/W 説明 0 SO 0B R/W A SchedulingOverrunEnable 0: 無効 1:Schedule Overrun による割込みをイネーブルとする。 1 WDH 0B R/W B WritebackDoneHeadEnable 0: 無効 1:Writeback Done Head による割込みをイネーブルとする。 2 SF 0B R/W C StartOfFrameEnable 0: 無効 1:Start Of Frame による割込みをイネーブルとする。 3 RD 0B R/W D ResumeDetectedEnable 0: 無効 1:Resume Detected による割込みをイネーブルとする。 4 UE 0B R/W E UnrecoverableErrorEnable このビットはサポートしていない。このビットへの書込みは無 効。 5 FNO 0B R/W F FrameNumberOverflowEnable 0: 無効 1:Frame Number Overflow による割込みをイネーブルとする。 6 RHSC 0B R/W G RootHubStatusChangeEnable 0: 無効 1:Root Hub Status Change による割込みをイネーブルとする。 29∼7 ― 0H ― Reserved 30 OC 0B R/W H OwnershipChangeEnable 0: 無効 1:Ownership Change による割込みをイネーブルとする。 31 MIE 0B R/W I MasterInterruptEnable このビットはグローバルな割り込みイネーブル。 "1" をライトすることで上記の各イネーブルビットを通して割 込みがイネーブルされる。 474 第 19 章 USB ホストインタフェース ■ HcInterruptDisable Register HcInterruptDisable レジスタは HcInterruptEnable レジスタと組になっています。"1" を書 き込むと , HcInterruptEnable レジスタの対応するビットがクリアされます。"0" を書き 込んでもHcInterruptEnableレジスタの値は変わりません。リードでは, HcInterruptDisable レジスタの値ではなく , HcInterruptEnable レジスタの値が読み出されます。 ビット 名称 リセット R/W 説明 0 SO 0B R/W 0: 無効 1:Schedule Overrun による割込みをディセーブルとする。 1 WDH 0B R/W 0: 無効 1:Writeback Done Head による割込みをディセーブルとする。 2 SF 0B R/W 0: 無効 1:Start Of Frame による割込みをディセーブルとする。 3 RD 0B R/W 0: 無効 1:Resume Detected による割込みをディセーブルとする。 4 UE 0B R/W このビットはサポートしていない。このビットへの書込みは無 効。 5 FNO 0B R/W 0: 無効 1:Frame Number Overflow による割込みをディセーブルとする。 6 RHSC 0B R/W 0: 無効 1:Root Hub Status Change による割込みをディセーブルとする。 29 ∼ 7 ― 0H ― Reserved 30 OC 0B R/W 0: 無効 1:Ownership Change による割込みをディセーブルとする。 31 ME 0B R/W このビットはグローバルな割込みディセーブル。 "1" をライトすることで全ての割込みがディセーブルされる。 475 第 19 章 USB ホストインタフェース ■ HcHCCA Register HcHCCA レジスタは , ホストコントローラ・コミュニケーション・エリアの物理アド レスを示します。アライメントの最小単位は 256bytes のため , 下位 7 ∼ 0 ビットは "0" 固定になっています。ホストコントローラ・コミュニケーション・エリアについては , OpenHCI 仕様書の Chapter 4 を参照してください。 名称 ビット リセット R/W 説明 7∼0 − 00H R Reserved 31 ∼ 8 HCCA 000000H R/W HCCA HCCA ベースアドレスへのポインタ ■ HcPeriodCurrentED Register HcPeriodCurrentED レジスタは , 現在の Isochronous または Interrupt エンドポイント・ ディスクリプタの物理アドレスを示します。 ビット 名称 リセット R/W 説明 3∼0 − 0H − Reserved Read/Write 0’s 31∼4 PCED 0000000H R/W PeriodCurrentED カレントの Periodic list ED へのポインタ ■ HcControlHeadED Register HcControlHeadED レジスタは , コントロール・リストの最初のエンドポイント・ディス クリプタの物理アドレスを示します。 ビット 名称 リセット R/W 説明 3∼0 − 0H − Reserved Read/Write 0’s 31 ∼ 4 CHED 0H R/W ControlHeadED Control List Head ED へのポインタ ■ HcControlCurrentED Register HcControlCurrentED レジスタは , コントロール・リストの現在のエンドポイント・ディ スクリプタの物理アドレスを示します。 ビット 名称 リセット R/W 説明 3∼0 − 0H − Reserved Read/Write 0’s 31∼4 CCED 0000000H R/W ControlCurentED カレントの Control list ED へのポインタ 476 第 19 章 USB ホストインタフェース ■ HcBulkHeadED Register HcBulkHeadED レジスタは , バルク・リストの最初のエンドポイント・ディスクリプタ の物理アドレスを示します。 ビット 名称 リセット R/W 説明 3∼0 − 0H − Reserved Read/Write 0’s 31∼4 BHED 0000000H R/W HcBulkHeadED Bulk List Head ED へのポインタ ■ HcBulkCurrentED Register HcBulkCurrentED レジスタは , バルク・リストにある現在のエンドポイントの物理アド レスを示します。 ビット 名称 リセット R/W 説明 3∼0 − 0H − Reserved Read/Write 0’s 31 ∼ 4 BCED 0000000H R/W BulkCurrentED カレントの Bulk list ED へのポインタ ■ HcDoneHead Register HcDoneHead レジスタは , Done queue に加えられた , 最後に完了したトランスファー・ ディスクリプタの物理アドレスを示します。 ビット 名称 リセット R/W 説明 3∼0 − 0H − Reserved Read/Write 0’s 31 ∼ 4 DH 0000000H R/W DoneHead カレントの Done list Head ED へのポインタ 477 第 19 章 USB ホストインタフェース ■ HcFmInterval Register HcFmInterval レジスタは , bit13 ∼ bit0 の値でフレームのビット・タイム・インターバ ル ( 連続したフレームの SOF の間隔 ) を示します。bit30 ∼ bit16 の値は , フルスピー ド・マキシマム・パケット・サイズを表します。 名称 ビット リセット R/W 説明 13 ∼ 0 FI 2EDFH R/W FrameInterval この領域は ( ビット時間− 1) でフレームの長さを記述する。 例えば 1 フレーム 12000 ビット時間の場合 11, 999 が記述され る。 15, 14 − 00B − Reserved Read/Write 0’s 30∼16 FSMPS 0H FSLargestDataPacket この領域には各フレームの最初に Largest Data Packet Counter にロードされた値が記述される。 31 FIT 0H FrameIntervalToggle このビットはホストコントローラドライバが FrameInterval レ ジスタへ新しい値をロードする度にホストコントローラドラ イバによりトグルされる。 ■ HcFmRemaining Register HcFmRemaining レジスタは , 14 ビットの減算カウンタで , 現在のフレームの残り時間 を示します。 ビット 名称 リセット R/W 説明 13 ∼ 0 FR 0H R FrameRemaining 本マクロが USBOprerational ステートにある時にこの 14 ビット の領域が 12MHz のクロック周期でディクリメントされる。 カウント値が 0 となった時 ( つまりフレームの最後に来た時 ) FrameInterval の値がロードされる。 また本マクロが USBOprerational ステートへ遷移した場合にも ロードされる。 30∼14 − 0H − Reserved Read/Write 0’s 31 FRT 0B R FrameRemainingToggle FrameRemaining がロードされるときに FrameIntervalToggle が ロードされる。 478 第 19 章 USB ホストインタフェース ■ HcFmNumber Register HcFmNumber レジスタは , 16 ビットのカウンタで , ホストコントローラとホストコン トローラ・ドライバのイベント発生間隔のタイミング・リファレンスを与えます。 ビット 名称 リセット R/W 説明 15 ∼ 0 FN 0000H R FrameNumber この 16 ビットのインクリメントカウンタ領域は FrameRemaining がロードされると同時にインクリメントされ る。 FFFFH の次ぎは 0000H へカウントされる。 31∼16 − 0000H − Reserved Read/Write 0’s ■ HcPeriodicStart Register HcPeriodicStart レジスタは , 14 ビットの値で , ホストコントローラが周期的なリストの 処理を開始すべき最初の時間を与えます。 ビット 名称 リセット R/W 説明 13 ∼ 0 PS 0H R/W PeriodicStart このビットはリストプロセッサがフレーム中で周期的な転送 用の list の処理を始めることを決定するために使用する値を記 述する。 31∼14 − 0H − Reserved Read/Write 0’s ■ HcLSThreshold Register HcLSThreshold レジスタは , 11 ビットの値で , ホストコントローラが EOF の前に 8bytes の LS パケットを送信することをコミットするかどうかを決定するのに用います。 ビット 名称 リセット R/W 説明 11 ∼ 0 LST 628H R/W LSThreshold このビットはフレームマネージメントブロックがカレントフ レーム中でロウスピードトランザクションをスタートさせる かどうかを決定するために使用する値を記述する。 31∼12 − 0H − Reserved Read/Write 0’s 479 第 19 章 USB ホストインタフェース ■ HcRhDescriptorA Register HcRhDescriptorA レジスタは , Root Hub の設定を記述する 2 つのレジスタの最初のひと つです。 ビット 名称 リセット R/W 説明 7∼0 NDP 02H R NumberDownstreamPorts 本マクロは 2 つのダウンポートをサポートする 8 PSM 0B R/W PowerSwitchingMode 本マクロは Global power switching mode をサポートする。 よって Write 0 が必要。 このビットは NoPowerSwitching がクリアされている場合のみ 有効 0:Global Switching 1:Individual Switching 9 NPS 0B R/W NoPowerSwitching 本マクロは Global power switching mode をサポートする。 よって外部の Port Powr Switching 装置のサポートを記述する "0" である必要がある。 0: Port は power switch で制御される。 1: Port は常に ON 10 DT 0B R DeviceType 本マクロは compound デバイスである。 11 OCPM 0B R/W OverCurrentProtectionMode 本マクロは Global over-current report をサポートする。よって Write 0 が必要。このビットは NoOverCurrentProtection がクリア されている場合のみ 有効 0:Global over-current 1:Individual over-current 12 NOCP 0B R/W NoOverCurrentProtection 本マクロは Global over-current reporting をサポートする。よっ て外部の Port over-current 装置のサポートを記述する "0" である 必要がある。 0: over-current Status は Report される。 1: over-current Status は Report されない。 23∼13 − 0H − Reserved Read/Write 0’s 31∼24 POTP GT 01H R/W PowerOnToPowerGoodTime 電源投入より安定するまでの時間を 2ms 単位で記述する。 本マクロは [24:25] のみがリードライト可能。 480 第 19 章 USB ホストインタフェース ■ HcRhDescripterB Register HcRhDescripterB レジスタは , Root Hub の設定を記述する 2 つ目のレジスタです。この レジスタは , システム・インプリメンテーションに一致するように初期化の際に書き込 みます。 ビット 名称 リセット R/W 説明 15 ∼ 0 DR 0000H R/W DeviceRemovable 本マクロのポートは取り外し可能がデフォルトである。 0: デバイスが取り外し不可能である。 1: デバイスが取り外し可能である。 ビットとポートの関係は bit0:reserved bit1:port1 bit2:port2 bit3 ∼ bit15 サポート無し。read/write '0' 31∼16 PPCM 0000H R/W PortPowerControlMask Global Power Control コマンドの影響を受けるかどうか示す。 この領域は NoPowerSwitching がクリアされ , PowerSwitchingMode がセットされている場合に有効となる。 0:Global Power Control コマンドの影響を受ける。 1:Global Power Control コマンドの影響を受けない。 ビットとポートの関係は bit16:reserved bit17:port1 bit18:port2 ビット 9 ∼ 32 サポート無し。read/write 0 481 第 19 章 USB ホストインタフェース ■ HcRhStatus Register HcRhStatus レジスタは , 2 つの部分に分けられます。下位 16 ビットはハブ・ステータ ス・フィールドで , 上位 16 ビットはハブ・ステータス・チェンジ・フィールドです。 Reserved ビットには , 常に 0 を書き込まなければなりません。 ビット 名称 リセット R/W 説明 0 LPS 0B R/W (read) LocalPowerStatus サポート無 (write) ClearGlobalPower 1 書き込み : port に対する ClearGlobalPower コマンドの発行 0 書き込み : 無効。 1 OCI ― R OverCurrentIndicator このビットは OVRCUR PIN の状態を反映する。 NoOverCurrentProtection と OverCurrentProtectionMode がクリア されている場合に有効 0: Over Current 無 1: Over Current 条件 14 ∼ 2 − 0H ― Reserved Read/Write 0’s 15 DRWE 0B R/W (read) DeviceRemoteWakeupEnable このビットはリモートウェィクアップのイベントによるポー トの ConnectStatusChange をイネーブルとする。 0: ディセーブル 1: イネーブル (write) SetRemoteWakeupEnable 1 書き込み:SetRemoteWakeupEnable のセット 0 書き込み:無効 16 LPSC 0B R/W (read) LocalPowerStatusChange 未サポート常に "0" read (write) SetGlobalPower 1 書き込み:SetGlobalPower コマンドの発行 0 書き込み:無効 17 OCIC 0B R/W OverCurrentIndicatorChange 本ビットは OverCurrentIndicator が変化するとセットされる。 1 書込み:このビットのクリア 0 書込み:無効 30∼18 ― 0H ― Reserved Read/Write 0’s 31 CRWE 0B W (write) ClearRemoteWakeupEnable 1 書込み:DeviceRemoteWakeupEnable のクリア 0 書込み:無効 482 第 19 章 USB ホストインタフェース ■ HcRhPortStatus Register HcRhPortStatus レジスタは , 各ポートのコントロールと , ポートのイベントのレポート に用います。HcRhPortStatus[1] はポート 1 用 , HcRhPortStatus[2] はポート 2 用です。下 位 16 ビットはポート・ステータスを反映し , 上位 16 ビットはステータス・チェンジ・ ビットを反映します。幾つかのステータス・ビットは特殊な書き込みの仕組みを持っ ています。詳細は各ビットの説明を参照してください。もし , ポート・ステータスの書 き換え時にトランザクションが進行した場合には , トランザクションの完了まで延期 して , その結果のポート・ステータスの書き換えを行わなければなりません。 ビット 名称 リセット R/W 説明 0 CCS 0B R/W (read) CurrentConnectStatus 0 : 現在このポートにデバイスが接続されていない。 1 : 現在このポートにデバイスが接続されている。 ( 注意事項 ) DeviceRemoveable がセットされていると , このビッ トは常に "1" である。 (write) ClearPortEnable "1" を書き込むと PortEnableStatus をクリアする。 0 : 書込みは無効。 1 PES 0B R/W (read) PortEnableStatus 0 : ポートはディセーブルされている。 1 : ポートはイネーブルされている。 (write) SetPortEnable "1" を書き込むと PortEnableStatus をセットする。 0 : 書込みは無効。 2 PSS 0B R (read) PortSuspendStatus 0 : ポートはサスペンドされていない 1 : ポートはサスペンドされている (write) SetPortSuspend "1" を書き込むと PortSuspendStatus をセットする。 0 : 書込みは無効。 3 POCI 0B R/W (read) PortOverCurrentIndicator 本マクロはポートごとの過電流条件を報告しない。 このビットは OVRCUR 端子の状態を反映する。 NonOverCurrentProtection がクリアされ OverCurrentProtectionMode がセットされている場合のみ有効。 0 : このポートの電流は正常 1 : このポートに過電流状態が発生 (write) ClearSuspendStatus 1 : 書込みはポートにリジュームシーケンスを実行。 0 : 書込みは無効。 4 PRS 0B R/W (read) PortResetStatus 0 : リセット信号はアクティブでない。 1 : リセット信号はアクティブ (write) SetPortReset 1 : 書込みは PortResetStatus をセットする。 0 : 書込みは無効。 7∼5 − 0H − Reserved Read/Write 0’s 483 第 19 章 USB ホストインタフェース ビット 名称 リセット R/W 説明 8 PPS 0B R/W (read)PortPowerStatus このビットは power switching モードに関らずポートの電源状 態を示す。 0 : ポートの電源はオフ 1 : ポートの電源はオン ( 注意事項 ) NoPowerSwitching がセットされている場合この ビットは常に "1" がリードされる。 (write)SetPortPower 1 : 書込みは PortPowerStatus をセットされる。 0 : 書込みは無効。 9 LSDA 0B R/W (read)LowSpeedDeviceAttached このビットは接続されたデバイスのスピードを示す。 0 : Full Speed デバイス 1 : Low Speed デバイス (write)ClearPortPower 1 : 書込みは PortPowerStatus をクリアする。 0 : 書込みは無効。 15∼10 − 0H − Reserved Read/Write 0’s 16 CSC 0B R/W ConnectStatusChange このビットは接続または切断のイベントの検知を示す。 0 : 接続または切断のイベントなし。 1 : 接続または切断を検知 1 : 書込みによりクリアされる。 0 : 書込みは無効。 17 PESC 0B R/W PortEnableStatusChange このビットはハードウェアにより (PortEnableStatus のクリア ) でポートがディセーブルされていることを示す。 0 : ポートはディセーブルされている。 1 : PortEnableStatus はクリアされた。 18 PSSC 0B R/W PortSuspendStatusChange このビットはポートへのリジュームシーケンスの終了を示す。 0 : ポートはレジュームされていない。 1 : ポートのリジュームが終了した。 19 OCIC 0B R/W PortOverCurrentIndicatorChange このビットは OverCurrentIndicator が変化するとセットされる。 "1" を書き込むことでクリアされる。 0 書込みは無効。 20 PRSC 0B R/W PortResetStatusChange このビットはポートリセット信号の終了を示す。 0 : ポートリセットは完了していない。 1 : ポートリセットは完了。 31∼21 − 0H − Reserved Read/Write 0’s 484 第 20 章 OSDC この章では , OSDC ( オンスクリーン・ディスプレ イ・コントローラ ) の特長 , ブロックダイヤグラム , 表示機能 , 制御機能 , および表示制御コマンドにつ いて説明します。 20.1 特長 20.2 表示機能 20.3 制御機能 20.4 表示制御コマンド 485 第 20 章 OSDC 特長 20.1 OSDCM203 は , 表示画面構成は最大 42 桁× 16 行 , 1 文字の構成は最大 24 ドット × 32 ドットの大容量 , 高精度表示可能なオンスクリーン・ディスプレイ・コント ローラです。内蔵のパレット回路により 512 色中 16 色の色表示設定が可能です。 また , スプライト機能 , 画面背景文字機能 , グラフィック機能などにより , 多彩な表 示が可能となります。 ■ 特長 OSDCM203 の特長を , 以下に示します。 ● メイン画面表示容量 最大 42 桁× 16 行 ( 最大 672 文字 ) ● 文字構成 L サイズ ( 横 )24 ドット× ( 縦 )2h ドット * M サイズ ( 横 )18 ドット× ( 縦 )2h ドット * S サイズ ( 横 )12 ドット× ( 縦 )2h ドット * *:h=9 ∼ 16 • L, M, S サイズは文字単位に設定可能です。 • h の値は画面単位で 2 種類設定し , 行単位に 2 種類から選択できます。 ● 文字種類 1792 文字種内蔵 ( 注意事項 ) グラフィック文字は , 連続する 4 文字分を使用します。 ● 表示モード • 通常文字 / グラフィック文字 ( 文字単位設定 ) • ふちどり表示 ( 横ふちどり / パターン背景 )( 画面単位設定 ) • 文字背景 ( ベタ / 影付背景 )( 文字単位設定 ) • イタリック表示 ( 文字単位設定 ) • アンダライン表示 ( 文字単位設定 ) • 行背景 ( ベタ / 影付背景 )( 行単位設定 ) • 拡大 ( 標準 , 横 2 倍 , 縦 2 倍 , 縦 2 倍×横 2 倍 , 横 4 倍 , 縦 4 倍 , 縦 4 倍×横 4 倍等 ) ( 行単位設定 ) • ブリンク - ブリンク文字指定 ( 文字単位設定 ) 486 第 20 章 OSDC - ブリンクモード設定 ( 文字単位設定 ) - ブリンク周期 , デューティ比 ( 画面単位設定 ) ● スプライト文字表示 ( グラフィック文字のみ使用可 ) メイン画面上に 1 ブロック ( 最大 , 横 2 文字×縦 2 文字構成 ) 表示が可能です。( 縦横 2 ドット単位の表示位置移動が可能 ) ● 画面背景文字表示 ( グラフィック文字のみ使用可 ) メイン画面下に繰返しパターン ( 最大 , 横 2 文字×縦 2 文字構成 ) 表示が可能です。 ● 表示色 • 文字色 / 文字背景色 : 各 512 色中 16 色 ( 文字単位設定 ) • 行背景色 / 文字ふちどり色 : 各 512 色中 16 色 ( 行単位設定 ) • 画面背景色 : 512 色中 16 色 ( 画面単位設定 ) • グラフィック文字ドット色 : 512 色中 16 色 ( ドット単位設定 ) • 影付背景枠色 ( ハイライト / シャドウ ): 各 512 色中 16 色 ( 画面単位設定 ) ● 表示位置制御 • メイン画面水平表示位置 : 4 ドット単位に設定可能 • メイン画面垂直表示位置 : 4 ドット単位に設定可能 • スプライト画面水平表示位置 : 2 ドット単位に設定可能 • スプライト画面垂直表示位置 : 2 ドット単位に設定可能 • 行間隔制御 : 2 ドット単位に設定可能 ( 行単位設定 ) ● 文字 / 色信号出力 • R[2:0], G[2:0], B[2:0]: OSD 色デジタル出力信号 • ROUT, GOUT, BOUT: OSD 色アナログ出力信号 *1 • VOB1: OSD 表示期間信号 *2 • VOB2: OSD 半透明表示期間信号 *2 *1: DAC 出力信号。DAC により R, G, B は各 8 レベル出力。 *2: VOB1, VOB2 はデジタル / アナログ共通です ● 割込み機能 • 行表示終了割込み • 垂直同期信号検出割込み • VRAM フィル終了割込み ● クロック周波数 最大周波数 :90MHz 487 第 20 章 OSDC ■ ブロックダイヤグラム OSDCM203 に , OSDC 周辺のブロックダイヤグラムを示します。 図 20.1-1 ブロックダイヤグラム 割込み CPU へ Fontデータ FLASH Font I/F DAC 制御信号 DAC F-BUS VRAM データ VRAM I/F RAM OSDCM203 Digital 用RGB 表示期間信号 PLL 制御信号 OSDC レジスタ制御信号 488 PLL VREF VRO VDDR RCOMP VSSR VDDG GCOMP VSSG VDDB BCOMP VSSB ROUT GOUT BOUT R[2:0] G[2:0] B[2:0] VOB1 VOB2 DCKO DOCKI FH VSYNC HSYNC CPO VGS VDDI(8:PLL 用) 第 20 章 OSDC 20.2 表示機能 この章では , OSDC の表示機能について説明します。 ■ 表示機能 20.2.1 画面構成 20.2.2 画面表示形式 20.2.3 画面出力制御 20.2.4 画面表示位置制御 20.2.5 フォントメモリ構成 20.2.6 表示メモリ (VRAM) 構成 20.2.7 表示メモリ (VRAM) 書込み 20.2.8 パレット構成 20.2.9 文字表示 20.2.10 文字背景表示 20.2.11 行背景表示 20.2.12 画面背景表示 20.2.13 スプライト文字表示 489 第 20 章 OSDC 画面構成 20.2.1 表示画面は , 各画面要素を組み合わせて構成されます。 ■ 画面構成 表示画面は , 表 20.2-1 に示す各画面要素を組み合わせて構成されます。 表 20.2-1 表示画面の画面要素 表示画面名 上位層 画面構成 表示位置制御 1 個 ( 最大 2 × 2 文字構成 ) 水平 / 垂直 : 2 ドット 文字 ( +縁取り ) 42 桁× 16 行 水平 / 垂直 : 4 ドット 文字背景 42 桁× 16 行 ( 文字と同時制御 ) 行背景 16 行 ( 文字と同時制御 ) 画面背景文字 1 種 ( 最大 2 × 2 文字構成 ) 固定 画面背景 ( 単色全画面表示 ) 固定 スプライト文字 メイン画面 下位層 ■ 画面構成図 図 20.2-1 に , 画面の構成図を示します。 図 20.2-1 画面構成図 同期元映像 画面背景(画面背景色) 画面背景文字 ××××××××××××××××××× ×××××××××××××××××××××××××× × 0 行 行背景(行背景色) 1 行 文字背景(文字背景色) 2行 3 行 文字+ふちどり 4行 5行 6行 7行 8行 17 行 10 行 ← スプライト文字 11 行 12 行 13 行 14 行 15 行 ××× 42 桁 行背景の影付背景影枠は,文字表示より優先表示されます。 (注意事項) また,文字背景の影付背景影枠は,文字表示および行背景の 影付背景影枠より優先表示されます。 490 第 20 章 OSDC 画面表示形式 20.2.2 表 20.2-2 に , 各表示画面の要素について表示形式を示します。 ■ 画面表示形式 表 20.2-2 画面表示形式 表示画面 名 表示形式 画面背景 非表示 表示 画面背景 非表示 文字 表示 ( 注意事項 ) グラフィック文字のみ使用可 文字構成 1 文字構成 横 2 文字構成 縦 2 文字構成 縦 2 ×横 2 文字構成 メ イ ン 画 面 行 背 景 非表示 行間隔 ベタ背景表示 影付背景凹表示 影付背景 下行結合 影付背景凸表示 文 字 背 景 独立 結合 非表示 ベタ背景表示 影付背景凹表示 影付背景凸表示 文 字 0 ∼ 14 ドット 影付背景 右文字結合 独立 結合 影付背景 下行結合 独立 文字背景拡張 ( 行間隔設定が "0" 以外のとき 有意 ) 通常 通常 拡張 結合 グラフィック文字 通 常 文 字 非表示 ( 空白文字 ) 表 示 ふちどり出力制御 非表示 ふちどり形 横ふちどり 1 式 文字背景無のみ表示 横ふちどり 2 ふちどり種 非表示 右ふちどり 影付背景以外で表示 パターン背景 1 左ふちどり 全表示 パターン背景 2 左右ふちどり イタリック 出力制 非表示 御 イタリック表示 アン ダ ラ イン 出 非表示 力制御 アンダライン表示 スプライ 非表示 ト文字 表示 ( 注意事項 ) グラフィック文字のみ使用可 文字構成 1 文字構成 横 2 文字構成 縦 2 文字構成 縦 2 ×横 2 文字構成 491 第 20 章 OSDC 20.2.3 画面出力制御 表 20.2-3 に , 画面出力制御の制御対象と制御ビットとの関係を示します。 ■ 画面出力制御 表 20.2-3 画面出力制御 表示画面制御 制御対象 制御ビット名 ( 制御単位 ) 文字 + ふちどり + 文字背景 + 行背景 DSP ( 画面単位 ) 文字 + ふちどり + 文字背景 文字 M8 ∼ M0 ( 文字単位 ) 文字ふちどり 文字背景 行背景 LDS ( 行単位 ) LFD ∼ LFA ( 行単位 ) MM1, MM0 ( 文字単位 ) MIT, MUL LM1, LM0 ( 行単位 ) 画面背景文字 PDS ( 画面単位 ) 画面背景色 UDS ( 画面単位 ) スプライト文字 SDS ( 画面単位 ) 492 第 20 章 OSDC 20.2.4 画面表示位置制御 OSDCM203 では , メイン画面・画面背景文字・画面背景色・スプライト文字の各表 示位置について , それぞれ独立に制御できます。 ■ メイン画面の表示位置制御 文字 , 文字ふちどり , 文字背景 , 行背景の表示位置は同時に制御されます。 ● 垂直表示位置 : 垂直表示位置制御 ( コマンド 5-2)Y8 ∼ Y0 ビット 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。 0 ∼ 2044 ドット , 4 ドット単位設定。 ● 水平表示位置 : 水平表示位置制御 ( コマンド 5-3)X8 ∼ X0 ビット 水平同期信号 (HSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。 0 ∼ 2044 ドット , 4 ドット単位設定。 ● 行間隔 : 行制御データ設定 1( コマンド 3)LW2 ∼ LW0 ビット 文字の上下の間隔領域をドット数で設定。 文字の上部と下部の 2 箇所それぞれに設定値分の間隔を確保します。 0 ∼ 14 ドット , 2 ドット単位 , 各行独立設定。 ( 注意事項 ) 行縦拡大指定時の行間隔は拡大表示されます。 図 20.2-2 に , メイン画面の表示位置を示します。 493 第 20 章 OSDC 図 20.2-2 メイン画面の表示位置 ←VSYNC位置 ・・・ HSYNC位置 ↓ 0行 行間隔 垂直表示位置*1 水平表示位置*2 文字 文字 文字 文字 文字 文字 文字 文字 文字 ・・・ 行間隔 1行 2行 文字 文字 文字 文字 文字 文字 文字 文字 文字 ・・・ 行背景(水平) 表示位置*3 ・ ・ ・ 494 文字 文字 文字 文字 文字 文字 文字 文字 文字 ・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 第 20 章 OSDC ● 垂直表示位置について ( 図 20.2-2 の *1 を参照 ) 垂直表示位置の内部カウントは , 以下の図に示すように , 垂直同期信号 (VSYNC 端子入 力信号 ) 同期パルスの 1Hsync 周期後から開始します。 図 20.2-3 に , メイン画面垂直表示位置のカウントタイミングを示します。 図 20.2-3 メイン画面垂直表示位置のカウントタイミング ( 注意事項 ) VSYNC および HSYNC が図 20.2-3 の場合には , 入出力制御 2( コマンド 13-1) の垂直同期 検出 HSYNC エッジ選択制御 (VHE ビット ) 設定により表示開始位置は変わりません。 ● 水平表示位置について ( 図 20.2-2 の *2 を参照 ) 水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン ド 13-1 HE ビットにより制御 ) から設定値 + 数ドットクロック後 (「20.2.4.1 画面表示 位置オフセット」参照 ) となります。 ● 行背景表示位置について ( 図 20.2-2 の *3 を参照 ) 行背景の水平表示位置は , 水平同期パルス有意エッジ ( コマンド 13-1 HE ビットにより 制御 ) から数ドットクロック後 (「20.2.4.1 画面表示位置オフセット」参照 ) の位置と なります。 ( 参考 ) 行背景の垂直表示位置については , 垂直表示位置制御 ( コマンド 5-2)Y8 ∼ Y0 ビットに制 御され , メイン画面の文字と同時に表示位置を移動させることができます。 <注意事項> 垂直表示位置制御は , 同期制御 ( コマンド 11-0) のインタレース制御 (IN ビット ) 設定の内 容により異なります。( 詳細は , 「20.3.5 同期制御」を参照してください。) 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力 信号 ) 同期パルス入力後一定期間は , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF 状態となります。 495 第 20 章 OSDC ■ 画面背景文字の表示位置制御 図 20.2-4 に , 画面背景文字の表示位置を示します。 図 20.2-4 画面背景文字の表示位置 ● 垂直表示位置について ( 図 20.2-4 の *1 を参照 ) 垂直表示位置は , 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスの 1Hsync 周期後固 定です。図 20.2-3 と同様です。 ● 水平表示位置について ( 図 20.2-2 の *2 を参照 ) 水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン ド 13-1 HE ビットにより制御 ) から数ドットクロック後 (「20.2.4.1 画面表示位置オフ セット」参照 ) の位置となります。 <注意事項> 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力 信号 ) 同期パルス入力後一定期間 , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF 状 態となります。 496 第 20 章 OSDC ■ 画面背景色の表示位置制御 図 20.2-5 に , 画面背景色の表示位置を示します。 図 20.2-5 画面背景色の表示位置 ● 垂直表示位置について ( 図 20.2-5 の *1 を参照 ) 垂直表示位置は , 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルス後縁直後です。 図 20.2-6 に , 画面背景色垂直表示開始位置を示します。 図 20.2-6 画面背景色垂直表示開始位置 ● 水平表示位置について ( 図 20.2-5 の *2 を参照 ) 水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン ド 13-1 HE ビットにより制御 ) から数ドットクロック後 (「20.2.4.1 画面表示位置オフ セット」参照 ) の位置となります。 <注意事項> 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力 信号 ) 同期パルス入力後一定期間 , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF 状 態となります。 497 第 20 章 OSDC ■ スプライト文字の表示位置制御 スプライト文字 , およびスプライト文字ふちどりの表示位置を制御します。 ● スプライト文字垂直表示位置 : スプライト文字制御 4( コマンド 9-0)SY9 ∼ SY0 ビット 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。 0 ∼ 2046 ドット , 2 ドット単位設定。 ● スプライト文字水平表示位置 : スプライト文字制御 5( コマンド 9-1)SX9 ∼ SX0 ビット 水平同期信号 (HSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。 0 ∼ 2046 ドット , 2 ドット単位設定。 図 20.2-7 に , スプライト文字の表示位置を示します。 図 20.2-7 スプライト文字の表示位置 ● 垂直表示位置について ( 図 20.2-7 の *1 を参照 ) 垂直表示位置基準は , メイン画面と同じく , 垂直同期信号 (VSYNC 端子入力信号 ) 同期 パルス信号の 1H 後です。図 20.2-3 参照。 ● 水平表示位置について ( 図 20.2-7 の *2 を参照 ) 水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン ド 13-1 HE ビットにより制御 ) から , " 設定値 + 数ドットクロック後 (「20.2.4.1 画面 表示位置オフセット」参照 )" の位置となります。 <注意事項> 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力 信号 ) 同期パルス入力後一定期間 , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF 状 態となります。 498 第 20 章 OSDC 20.2.4.1 画面表示位置オフセット メイン画面・画面背景文字・画面背景色・スプライト文字の各表示位置について , それぞれ表示オフセットがあります。また , 画面背景文字・スプライト文字表示を 行わない場合はメイン画面表示のオフセット値を減少することが可能です。 ■ 画面表示位置オフセット 表 20.2-4 , 表 20.2-5 , 表 20.2-6 に , 水平表示位置オフセット値を示します。 表示位置オフセットは , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルスの有意エッ ジ ( コマンド 13 ∼ 1 HE ビットにより制御 ) からのドットクロック数となります。 また , 画面背景文字動作制御停止 ( コマンド 7-1)PCUT ビットおよびスプライト文字動 作制御停止 ( コマンド 8-1)SCUT ビットにより , 各動作制御を停止することにより , メ イン画面のオフセット値を減少することが可能となります。 ● メイン画面 , スプライト文字および画面背景文字を同時に表示する場合のオフセット値は 以下のとおりです。 表 20.2-4 水平表示位置オフセット値 ( その 1) 表示画面 オフセット値 スプライト文字 120 メイン画面 ( 文字 ) 150 メイン画面 (行背景) 50 画面背景文字 122 画面背景色 50 ( 注意事項 ) オフセット値の単位は , ドットクロック数です。 ● スプライト文字もしくは画面背景文字のどちらかを動作制御停止した場合のオフセット値 は以下のとおりです。 表 20.2-5 水平表示位置オフセット値 ( その 2) 表示画面 オフセット値 (PCUT=1) オフセット値 (SCUT=1) スプライト文字 72 - メイン画面 ( 文字 ) 102 102 メイン画面 ( 行背景 ) 50 50 画面背景文字 - 74 画面背景色 50 50 ( 注意事項 ) オフセット値の単位は , ドットクロック数です。 499 第 20 章 OSDC <注意事項> 画面背景文字動作制御停止 (PCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の PDS ビットを "0" とし , 画面背景文字表示を行わないでください。 スプライト文字動作制御停止 (SCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の SDS ビットを "0" とし , スプライト文字表示を行わないでください。 ● メイン画面のみの表示を行う場合のオフセット値は以下のとおりです。 表 20.2-6 水平表示位置オフセット値 ( その 3) 表示画面 オフセット値 スプライト文字 - メイン画面 ( 文字 ) 69 メイン画面 (行背景) 50 画面背景文字 - 画面背景色 50 ( 注意事項 ) オフセット値の単位は , ドットクロック数です。 <注意事項> 画面背景文字動作制御停止 (PCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の PDS ビットを "0" とし , 画面背景文字表示を行わないでください。 スプライト文字動作制御停止 (SCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の SDS ビットを "0" とし , スプライト文字表示を行わないでください。 500 第 20 章 OSDC 20.2.5 フォントメモリ構成 フォントは , 1 文字を 24 ドット× 32 ドットで構成し , 全 1792 文字分の容量を持っ ています。 • 1792 文字を任意にユーザが設定できます。 < 注意 事項 > 空白文字も予約設定されていません。必要な場合は , 任意の文字 コードに設定してください。 • 任意にグラフィック文字 / 通常文字の設定が可能です。 ( ただし , グラフィック文字 1 文字は通常文字 4 文字分のデータを使用します。) ■ フォントメモリ構成 図 20.2-8 に , フォントメモリ構成を示します。 図 20.2-8 フォントメモリ構成 501 第 20 章 OSDC 20.2.6 表示メモリ (VRAM) 構成 表示メモリは , 文字単位の設定を行う文字 RAM と , 行単位の設定を行う行 RAM と で構成されています。 • 文字 RAM: 水平 42 桁× 16 行 ( 全 672 文字 ) • 行 RAM :16 行 ■ 表示メモリと表示画面 文字 RAM は , 表示文字に 1 対 1 に対応しています。行 RAM は , 表示行に 1 対 1 に対 応しています。 図 20.2-9 に , 表示メモリの構成を示します。 図 20.2-9 表示メモリ構成 502 第 20 章 OSDC 20.2.7 表示メモリ (VRAM) 書込み 表示メモリの書込みは , OSDC 制御アドレス "00H" ∼ "08H" に OSDC コマンドを設 定して行います。 • 文字 RAM 1 文字書込み • 文字 RAM 複数文字一括書込み • 行 RAM 書込み ■ 表示メモリ書込み OSDC 制御アドレス "00H" ∼ "08H" に対して OSDC コマンドを発行することにより表 示メモリ書込みを行います。 ■ 文字 RAM 1 文字書込み 任意の文字データを , 文字 RAM 内の任意のアドレスに書き込みます。 図 20.2-10 に , 文字 RAM の書込み手順を示します。 図 20.2-10 文字 RAM 書込み手順 *1: 前回の文字 RAM 書込みに継続して連続アドレスに書き込む場合は省略可能です。 *2: 文字データ設定 1 内容が , 前回の設定から変更されていない場合は省略可能です。 503 第 20 章 OSDC ■ 文字 RAM 複数文字一括書込み (VRAM フィル ) 任意の文字データを , 文字 RAM 内の任意のアドレスから最終アドレスまで書込みま す。 図 20.2-11 に , 複数文字一括書込み (VRAM フィル ) の , 文字 RAM 書込みの手順を示し ます。 図 20.2-11 文字 RAM 複数文字一括書込み (VRAM フィル ) 手順 *: VRAM フィル終了時は , VRAM フィル終了割込み要因が設定されます。 VRAM フィル実行時間は , ドットクロック周波数に依存します。1 画面全体の設定 での目安値を示します。 ドットクロック 90MHz 時 約 0.1 ms VRAM フィル実行中は , コマンド 1-4 の発行は禁止です。 VRAM フィル実行中にコマンド 0(FL=0) の発行が行われると , VRAM フィルは強制 終了します。 強制終了後 , VRAM 書込みアドレス設定には , コマンド 0 の再発行が必要です。 ■ 行 RAM 書込み 任意の行データを , 行 RAM 内の任意のアドレスに書込みます。 図 20.2-12 に , 行 RAM の書込み手順を示します。 図 20.2-12 行 RAM 書込み手順 *1: 行 RAM フィル機能はありません ( フィル指定は禁止 )。 *2: 行データ設定 1 内容が , 前回の設定から変更されていない場合は省略可能です。 *3: 行 RAM 書込みによるアドレスインクリメントは行われません。 従って , 行単位に行アドレス設定を行う必要があります。 504 第 20 章 OSDC 20.2.8 パレット構成 パレットは , OSDC が出力する 4 ビットの色コードを 9 ビットの色コードに変換し ます。 ■ パレット RAM 構成 パレットにより , OSDC に設定する 4 ビットの色コードから RGB それぞれ 3 ビットの 色コードに変換します。 図 20.2-13 に , パレットの設定アドレスおよび OSDC 設定色コードとの対応構成を示し ます。 図 20.2-13 パレット構成 505 第 20 章 OSDC 20.2.9 文字表示 表示文字のサイズは , 水平 , 垂直の設定が可能です。 フォント ROM/RAM 中の指定文字データの左上端ドットから指定サイズのデータを 切り出して表示します。 ■ 文字水平サイズ制御 ( 文字単位設定 ) 表 20.2-7 に , 文字データ設定 1( コマンド 1):MS1, MS0 ビットの , 文字水平サイズを示 します。 表 20.2-7 文字水平サイズ制御 MS1 MS0 文字水平サイズ 0 0 S サイズ:12 ドット 0 1 M サイズ:18 ドット 1 0 L サイズ:24 ドット 1 1 ( 設定禁止 ) ■ 行文字垂直サイズ種制御 ( 行単位設定 ) 表 20.2-8 に , 行制御データ設定 1( コマンド 3):LHS ビットの , 行文字垂直サイズ種を示 します。 表 20.2-8 行文字垂直サイズ種制御 LHS 行文字垂直サイズ種 0 文字垂直サイズ A 1 文字垂直サイズ B ■ 文字垂直サイズ A/ 文字垂直サイズ B 表 20.2-9 に文字垂直サイズ制御 ( コマンド 6-0):HA2 ∼ HA0 ビット /HB2 ∼ HB0 ビッ トの , 文字垂直サイズ A/B を示します。 表 20.2-9 文字垂直サイズ A/ 文字垂直サイズ B 506 HA2/HB2 HA1/HB1 HA0/ HB0 文字垂直サイズA/文字垂直サイズB 0 0 0 18 ドット 0 0 1 20 ドット 0 1 0 22 ドット 0 1 1 24 ドット 1 0 0 26 ドット 1 0 1 28 ドット 1 1 0 30 ドット 1 1 1 32 ドット 第 20 章 OSDC ■ 表示例 ● フォント ROM/RAM 内容 図 20.2-14 に , フォント ROM/RAM 内容の表示例を示します。 図 20.2-14 フォント ROM 内容の表示例 ● 表示例 1( 垂直文字サイズ =32 ドット ) 図 20.2-15 に , 垂直文字サイズ =32 ドットの場合の表示例を示します。 図 20.2-15 垂直文字サイズ =32 ドットの場合の表示例 507 第 20 章 OSDC ● 表示例 2( 垂直文字サイズ =22 ドット ) 図 20.2-16 に , 垂直文字サイズ =22 ドットの場合の表示例を示します。 図 20.2-16 垂直文字サイズ =22 ドットの場合の表示例 ■ 応用表示例 ● L サイズのみ使用時の表示例 図 20.2-17 に , L サイズのみ使用時の表示例を示します。 図 20.2-17 L サイズのみ使用時の表示例 ● LMS サイズ混在使用による表示例 図 20.2-18 に , LMS サイズ混在使用による表示例を示します。 図 20.2-18 LMS サイズ混在使用による表示例 508 第 20 章 OSDC ● LMS サイズ , 垂直サイズ可変による表示例 図 20.2-19 に , LMS サイズ , 垂直サイズ可変による表示例を示します。 図 20.2-19 LMS サイズ , 垂直サイズ可変による表示例 509 第 20 章 OSDC 20.2.9.1 文字色 16 色の文字色を , 文字単位で設定できます。 ■ 文字色 (16 色 , 文字単位設定 ) 文字データ設定 1( コマンド 1)MC3 ∼ MC0 に , 色コードを設定することにより文字単 位に文字色の設定が可能です。 <注意事項> OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。 DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの 読出しアドレスとなります。 510 第 20 章 OSDC イタリック表示 20.2.9.2 イタリック表示は , 文字ドットを傾けて表示する機能です。文字単位の設定が可能 です。 ■ イタリック表示制御 文字データ設定 1( コマンド 1)MIT ビットにより文字単位にイタリック属性の設定が可 能です。 表 20.2-10 イタリック文字制御 ( 文字単位設定 ) MIT イタリック文字制御 0 通常文字 1 イタリック文字 ■ イタリック表示ルール イタリック指定文字の右側の文字が非イタリック指定文字の場合は , 非イタリック指 定文字もイタリック表示となります。( 図 20.2-20 - ① ) イタリック表示によりイタリック表示となった非イタリック表示文字から非イタリッ ク表示文字へ , イタリック文字ドットがはみ出す場合は , ドットははみ出しません。 ( 図 20.2-20 - ② ) イタリック表示によりはみ出したドット色は , はみ出した文字領域の色設定に依存し ます。( 図 20.2-20 - ③ ) 文字影付背景表示の右枠がある場合には , イタリック文字ドットがはみ出す場合は , ドットははみ出しません。( 図 20.2-20 - ④ ) イタリック表示は , 文字属性の文字色 , 文字背景色 , グラフィック文字 , アンダライン , 文字影付背景に対して反映されません。 511 第 20 章 OSDC ■ 表示例 図 20.2-20 に , イタリック表示例を示します。 図 20.2-20 イタリック文字表示例 イタリック文字表示例 MIT=0 MIT=0 イタリック文字表示例 MIT=1 MIT=0 MM=10 MM=11 MR=1 MR=0 MIT=0 MIT=0 イタリック文字表示例 MIT=1 MIT=0 MIT=0 イタリック文字表示例 MIT=1 MIT=0 MIT=0 イタリック文字表示例 MIT=1 MIT=0 MM=10 MM=01 MR=0 MR=0 ※MM:文字背景制御(コマンド1) ※MR:影付背景右文字結合制御(コマンド2) 512 MIT=1 第 20 章 OSDC ■ イタリック文字起点 イタリック文字の傾き起点は , 文字の高さに依存せず縦 32 ×横 24 ドットの左下となり ます。 図 20.2-21 , 図 20.2-22 にイタリック状態について示します。 図 20.2-21 縦 32 ドット表示時のイタリック状態 図 20.2-22 縦 18 ドット表示時のイタリック状態 <注意事項> イタリック文字表示の傾きの起点は , 文字の高さに依存せず縦 32 ×横 24 ドットの左下と なります。 513 第 20 章 OSDC アンダライン表示 20.2.9.3 アンダライン表示は , 文字下方に横線を表示する機能です。文字単位の設定が可能 です。 ■ アンダライン表示制御 文字データ設定 1( コマンド 1)MUL 設定により文字単位にアンダライン属性の設定が 可能です。 表 20.2-11 アンダライン制御 ( 文字単位設定 ) MUL アンダライン制御 0 通常文字 1 アンダライン表示 ■ アンダライン表示ルール アンダラインは , 文字の垂直サイズ制御に依存し , 最下位ドットから垂直上方向の 3, 4 ドット目に表示されます。 ■ 表示例 図 20.2-23 に , アンダライン表示例を示します。 図 20.2-23 アンダライン表示例 514 第 20 章 OSDC 文字ふちどり 20.2.9.4 文字ふちどりは , 文字ドットの周囲にふちどりを表示する機能です。 ■ ふちどり出力制御 文字背景種により , ふちどりの有無を制御できます。 4 種を行単位に設定できます。 表 20.2-12 に , 行制御データ設定 1( コマンド 3):LFD, LFC ビットの , ふちどり出力制御 を示します。 表 20.2-12 ふちどり出力制御 ( 行単位設定 ) ふちどり出力制御 ( 行単位設定 ) 文字背景種 ( 文字単位設定 ) LFD LFC MM1 MM0 表示内容 0 0 0 0 非表示 × 0 1 ベタ背景 × 1 0 影付背景凹 × 1 1 影付背景凸 × 0 0 非表示 ○ 0 1 ベタ背景 × 1 0 影付背景凹 × 1 1 影付背景凸 × 0 0 非表示 ○ 0 1 ベタ背景 ○ 1 0 影付背景凹 × 1 1 影付背景凸 × 0 0 非表示 ○ 0 1 ベタ背景 ○ 1 0 影付背景凹 ○ 1 1 影付背景凸 ○ 0 1 1 1 0 1 ふちどり出力 ×:非表示 ( パターン背景 1, 2 の時は , 「パターン背景なし」の表示になります。) ○:表示 515 第 20 章 OSDC ■ ふちどり形式制御 ふちどりは , 画面単位で設定を行う 4 種類の形式と , 行単位の設定で行う 4 種類の制御 の組合せで表示されます。 ● ふちどり形式制御 ( 画面単位設定 ) 画面単位でのふちどり形式制御により, 横ふちどりやパターン背景といった4種類の表 示形式を選択して使用できます。 パターン背景 1( および 2) は , 横ふちどり 1 ドット ( および 2 ドット ) では表現できな い縦方向のふちどりの表現が可能です。但し , パターン背景 1( および 2) 形式用にフォ ントデータをデザインする必要があり , またこのフォントデータを他の形式 ( ふちどり 1 ドット等 ) で表示すると , 表示形状が崩れる場合があります。 表 20.2-13 に , 画面出力制御 2( コマンド 5-1):FM1, FM0 ビットの , ふちどり形式制御を 示します。 表 20.2-13 ふちどり形式制御 ( 画面単位設定 ) ふちどり形式制御 ふちどり形式 FM1 FM0 0 0 横ふちどり 1 ドット 0 1 横ふちどり 2 ドット 1 0 パターン背景 1 1 1 パターン背景 2 • 横ふちどり 1 ドット文字ドット ( 原画データ ) の左右両端 * に , ふちどりを 1 ドット 付加して表示します。 • 横ふちどり 2 ドット文字ドット ( 原画データ ) の左右両端 * に , ふちどりを 2 ドット 付加して表示します。 • パターン背景 1 フォントデータの 1 が水平方向に 2 ビット以上連続している場合 , 連続ビット数 -1 の数の文字ドット , およびその左右両端 * にパターン背景が 1 ドッ ト表示されます。 • パターン背景 2 フォントデータの 1 が水平方向に 2 ビット以上連続している場合 , 連続ビット数 -1 の数の文字ドット , およびその左右両端 * にパターン背景が 2 ドッ ト表示されます。 *: LFB, LFA ビットの制御で , 非表示 , 左右何方かの表示が可能です。 516 第 20 章 OSDC ● ふちどり制御 ( 行単位設定 ) 行単位でのふちどり制御により , 左右どちら ( または左右両方 ) にふちどりドット表示 させるか選択して使用できます。 表 20.2-14 に , 行制御データ設定 1( コマンド 3):LFB, LFA ビットの , ふちどり制御を示 します。 表 20.2-14 ふちどり制御 ( 行単位設定 ) ふちどり制御 ふちどり出力 LFB LFA 0 0 非表示 0 1 右ふちどり 1 0 左ふちどり 1 1 左右ふちどり 517 第 20 章 OSDC ■ 表示例 ● 横ふちどり 1 ドット (FM1, FM0=0, 0) 表示例 図 20.2-24 に , 横ふちどり 1 ドット (FM1, FM0=0, 0) の場合の表示例を示します。 図 20.2-24 横ふちどり 1 ドット (FM1, FM0=0, 0) 表示例 518 第 20 章 OSDC ● 横ふちどり 2 ドット (FM1, FM0=0, 1) 表示例 図 20.2-25 に , 横ふちどり 2 ドット (FM1, FM0=0, 1) の場合の表示例を示します。 図 20.2-25 横ふちどり 2 ドット (FM1, FM0=0, 1) 表示例 519 第 20 章 OSDC ● パターン背景 1(FM1, FM0=1, 0) の表示例 図 20.2-26 に , パターン背景 1(FM1, FM0=1, 0) の場合の表示例を示します。 図 20.2-26 パターン背景 1 (FM1, FM0=1, 0) の表示例 520 第 20 章 OSDC ● パターン背景 2(FM1, FM0=1, 1) の表示例 図 20.2-27 に , パターン背景 2(FM1, FM0=1, 1) の場合の表示例を示します。 図 20.2-27 パターン背景 2 (FM1, FM0=1, 1) の表示例 521 第 20 章 OSDC ■ ふちどり色 行制御データ設定 1( コマンド 3)LF3 ∼ LF0 に , 色コードを設定することにより行単位 にふちどり色を設定できます。 ■ ふちどり表示ルール • ふちどりドットの左右隣接文字領域への表示は , 自文字と隣接文字の文字背景種が 同一の場合にのみ可能となります。 • ふちどりドットの行左端または行右端の文字領域外への表示は , 行端文字の文字背 景種が文字背景なしの場合にのみ可能となります。 • 行拡大制御時 ( 行制御データ設定 2( コマンド 4) の LG1, LG0 ビット設定が "0, 0" 以 外の場合 ) は , ふちどりドットも拡大表示されます。 <注意事項> OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。 DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの 読出しアドレスとなります。 522 第 20 章 OSDC 行拡大表示 20.2.9.5 行拡大表示は , 文字 / 文字背景 / 行背景 ( 行間隔部を含む ) の表示サイズを制御する 機能です。縦横方向に個別 , および同時設定が可能です。 影付背景の影枠部分 , およびふちどりドットも拡大制御されます。また , 行拡大表示 指定行以降の行は表示位置が下方に移動します。 ■ 行拡大制御 ( 行単位設定 ) 表 20.2-15 , 表 20.2-16 に , 行制御データ設定 2( コマンド 4):LGX1, LGX0, LGY1, LGY0 ビットの , 行拡大制御を示します。 表 20.2-15 行拡大制御 ( 行単位設定 ) LGY1 LGY0 表示サイズ 0 0 標準サイズ 0 1 縦 2 倍サイズ 1 0 設定禁止 1 1 縦 4 倍サイズ 表 20.2-16 行拡大制御 ( 行単位設定 ) LGX1 LGX0 表示サイズ 0 0 標準サイズ 0 1 横 2 倍サイズ 1 0 設定禁止 1 1 横 4 倍サイズ 523 第 20 章 OSDC ■ 行拡大表示例 図 20.2-28 に , 標準 , 横 2 倍 , 横 4 倍 , 縦 2 倍 , 縦 4 倍 , 縦横 2 倍 , 縦横 4 倍の各サイズ の行拡大表示例を示します。 図 20.2-28 行拡大表示例 • 標準サイズ • 横 2 倍サイズ • 横 4 倍サイズ 524 第 20 章 OSDC • 縦 2 倍サイズ • 縦 4 倍サイズ 525 第 20 章 OSDC • 縦横 2 倍サイズ • 縦 2 倍横 4 倍サイズ 526 第 20 章 OSDC グラフィック文字表示 20.2.9.6 グラフィック文字表示は , フォントメモリに設定してある 4 文字分のドットパター ンをもとに , 24 ドット× 32 ドット× 16 色のグラフィックとして表示する機能で す。1 ドット単位に 16 色の表示が可能です。 ■ 文字 / グラフィック文字制御 ( 文字単位設定 ) グラフィック文字は , フォント RAM 内の連続する 4 文字使用します。グラフィック文 字表示を行う場合は文字コードの下位 2bit を 0 に設定してください。 表 20.2-17 に , 各文字コード設定をしめします。 表 20.2-17 グラフィック文字指定コード 表示層 文字コード 任意設定 bit 固定設定 bit "0" を設定してください。 メイン画面 M10 ∼ M2 M1. M0 画面背景文字 PM10 ∼ PM2 PM1, PM0 スプライト SM10 ∼ SM2 SM1, SM0 <注意事項> グラフィック文字は対応する OSDC パターンエディタ (PED/WIN) を使用して作成してく ださい。 表 20.2-18 , および表 20.2-29 に , 文字データ設定 2( コマンド 2):MG ビットの , 文字 / グ ラフィック文字制御を示します。 表 20.2-18 文字 / グラフィック文字制御 ( 文字単位設定 ) MG 文字 / グラ フィック文 字制御 0 通常文字 1 グラフィッ ク文字 527 第 20 章 OSDC 図 20.2-29 文字 / グラフィック文字制御 ( 文字単位設定 ) Graphic display example (MG = 1) (MM1 = 1, MM0 = 1) (MM1 = 1, MM0 = 0) ( 注意事項 ) グラフィック表示時にも影付き背景表示が可能。 528 第 20 章 OSDC ■ グラフィック色ふちどり色置換制御 ( 画面単位設定 ) 表 20.2-19 にグラフィック色制御 ( コマンド 6-3):GFC ビットの , グラフィック色ふちど り色置換制御を示します。 この制御では , グラフィック文字内の任意色 (GF3 ∼ GF0 ビット指定色 ) を行制御デー タ設定 1( コマンド 3) で設定したふちどり色 (LF3 ∼ LF0) 内容に置換します。 表 20.2-19 グラフィック色ふちどり色置換制御 ( 画面単位設定 ) GFC グラフィック色ふちどり色置換制御 0 指定色の置換をしない。 1 指定色をふちどり色で置換する。 ■ ふちどり色置換色コード ( 画面単位設定 ) 図 20.2-30 に , グラフィック色制御 ( コマンド 6-3):GF3 ∼ GF0 ビットの置換例を示しま す。 図 20.2-30 ふちどり色置換色コード ( 画面単位設定 ) の置換例 GF3 ~ GF0: 置換色指定 LF3 ~ LF0 (コマンド3): ふちどり色 ふちどり色に置換 GF=1 GF=0 フォントRAMの色情報で表示 指定された色が置換されて表示 <注意事項> グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON( 透 明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色ふちどり色置 換色と透明色制御 ( コマンド 6-2) の透明色 (TC3 ∼ TC0) が同一設定の場合は , ふちどり 色置換が優先されます。 グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON( 透 明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換するふちどり色 ( 行制御 データ設定 1( コマンド 3) のふちどり色 (LF3 ∼ LF0)) と透明色制御 ( コマンド 6-2) の透 明色 (TC3 ∼ TC0) が同一設定の場合は , 透明色となり , 下位層色が表示されます。 グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつグラフィック色ふちどり 色置換制御 ON(GFC ビット =1 設定 ) の場合 , 文字色置換色 (GC3 ∼ GC0 ビット ) 設定内 容とふちどり色置換色 (GF3 ∼ GF0 ビット ) 設定内容は , 異なる色を設定してください。 529 第 20 章 OSDC ■ グラフィック色文字置換制御 ( 画面単位設定 ) 表 20.2-20 に , グラフィック色制御 ( コマンド 6-3):GCC ビットの , グラフィック色文字 置換制御を示します。 この制御では , グラフィック文字内の任意色 (GC3 ∼ GC0 ビット指定色 ) を文字データ 設定 1( コマンド 1) で設定した文字色 (MC3 ∼ MC0) 内容に置換します。 表 20.2-20 グラフィック色文字置換制御 ( 画面単位設定 ) GCC グラフィック色文字色置換制御 0 指定色の置換をしない。 1 指定色を文字色で置換する。 ■ 文字色置換色 ( 画面単位設定 ) 図 20.2-31 に , グラフィック色制御 ( コマンド 6-3):GC3 ∼ GC0 ビットの置換例を示し ます。 図 20.2-31 文字色置換色コード ( 画面単位設定 ) の置換例 GC3~GC0: 置換色指定 MC3~MC0(コマンド1): 文字色 GC = 1 文字色に置換 GC = 0 フォントRAMの色情報で表示 指定された色が置換されて表示 <注意事項> グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透明色 制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色文字色置換色と透 明色制御 ( コマンド 6-2) の透明色 (TC3 ∼ TC0) が同一設定の場合は , 文字色置換が優先 されます。 グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透明色 制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換する文字色 ( 文字データ設定 1( コマンド 1) の文字色 (MC3 ∼ MC0)) と透明色制御 ( コマンド 6-2) の透明色 (TC3 ∼ TC0) が同一設定の場合は , 透明色となり , 下位層色が表示されます。 グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつグラフィック色ふちどり 色置換制御 ON(GFC ビット =1 設定 ) の場合 , 文字色置換色 (GC3 ∼ GC0 ビット ) 設定内 容とふちどり色置換色 (GF3 ∼ GF0 ビット ) 設定内容は , 異なる色コードを設定してくだ さい。 530 第 20 章 OSDC ブリンク制御 20.2.9.7 OSDCM203 では , 文字単位にブリンク ( 点滅 ) 表示の設定が可能です。また , ブリ ンク表示では , 周期の設定 , デューティ比の設定も可能です。 ■ ブリンク制御 ( 文字単位設定 ) 表 20.2-21 に , 文字データ設定 2( コマンド 2):MBL ビット , MBB ビットの , ブリンク制 御を示します。 表 20.2-21 ブリンク制御 ( 文字単位設定 ) MBL MBB ブリンク制御 0 0 ブリンク OFF ( 通常の表示 ) 1 0 文字ブリンク ON 0 1 文字背景ブリンク ON 1 1 文字+文字背景ブリンク ON ■ 表示例 図 20.2-32 から図 20.2-37 に背景色の違いによる , ブリンク表示例を示します。 図 20.2-32 背景なし(MM1, MM0=0, 0)のブリンク表示例 531 第 20 章 OSDC 図 20.2-33 ベタ表示 (MM1, MM0=0, 1) のブリンク表示例 1 図 20.2-34 ベタ表示 (MM1, MM0=0, 1) のブリンク表示例 2 MBL=1 MBB=0 図 20.2-35 ベタ表示 (MM1, MM0=0, 1) のブリンク表示例 3 532 第 20 章 OSDC 図 20.2-36 影付表示 (MM1, MM0=1, 1) のブリンク表示例 図 20.2-37 背景なしグラフィック (MM1, MM0=0, 0) のブリンク表示例 MBL=1 MBB=0 ■ ブリンク表示の周期 表 20.2-22 に , 画面出力制御 2( コマンド 5-1):BT1, BT0 ビットの , ブリンク表示の周期 を示します。 表 20.2-22 ブリンク周期制御 ( 画面単位設定 ) BT1 BT0 ブリンク周期 0 0 16 × VSYNC 0 1 32 × VSYNC 1 0 48 × VSYNC 1 1 64 × VSYNC 533 第 20 章 OSDC ■ デューティ比の設定 表 20.2-23 に , 画面出力制御 2( コマンド 5-1):BD1, BD0 ビットの , ブリンクデューティ 制御を示します。 表 20.2-23 ブリンクデューティ 制御 ( 画面単位設定 ) 534 BD1 BD0 ( 点:滅 ) ブリンクデューティ 0 0 1:0 ( 常に表示 ) 0 1 1:1 1 0 1:3 1 1 3:1 第 20 章 OSDC 透明 / 半透明制御 20.2.9.8 任意の表示色を透明 / 半透明制御により , その下位層色を表示できます。また , 半透 明制御においては , 半透明表示期間を出力します。これにより , 外部で半透明処理を 行うことが可能です。 ■ 透明制御 ( 画面単位設定 ) 表 20.2-24 に , 透明 ( コマンド 6-2):TCC ビットの , 透明制御を示します。 表 20.2-24 透明制御 ( 画面単位設定 ) TCC 透明制御 0 透明色制御を行わない。 1 透明色制御を行う。 図 20.2-38 に , 透明制御 ( コマンド 6-2):TC3 ∼ TC0 ビットの , 透明色の設定例を示しま す ( 図中の■部分を透明色に設定した場合 )。 図 20.2-38 透明色設定例 535 第 20 章 OSDC ■ 半透明制御 ( 画面単位設定 ) 表 20.2-25 に , 半透明制御 ( コマンド 6-2):HCC ビットの , 透明制御を示します。 表 20.2-25 透明制御 ( 画面単位設定 ) 」 透明制御 ( 画面単位設定 ) HCC 透明制御 0 半透明色制御を行わない。 1 半透明色制御を行う。 図 20.2-39 に , 半透明制御 ( コマンド 6-2):HC3 ∼ HC0 ビットの , 透明色の設定例を示し ます 図 20.2-39 半透明色設定例 [半透明指定色] 画面背景色(又は同期元映像) 画面背景文字 メイン画面文字 文字背景 スプライト文字 HC=1 HC3~HC0:□(半透明指定色) HC=0 このラスタでの VOB2端子の出力例 (正論理出力指定時) VOB2 536 第 20 章 OSDC 文字背景表示 20.2.10 文字背景は 4 種 , 文字背景色は 16 色 , それぞれ文字単位で設定可能です。 ■ 文字背景制御 ( 文字単位設定 ) 表 20.2-26 に , 文字データ設定 1( コマンド 1):MM1, MM0 ビットの , 文字背景制御を示 します。 表 20.2-26 文字背景制御 ( 文字単位設定 ) MM1 MM0 文字背景 0 0 背景なし ( 非表示 ) 0 1 ベタ背景 1 0 影付背景凹 1 1 影付背景凸 ■ 影付背景ハイライト色 (16 色 , 画面単位設定 ) 影付背景枠色制御 ( コマンド 6-1)BH3 ∼ BH0 に , 色コードを設定することにより影付 背景ハイライト色を設定できます。 ■ 影付背景シャドウ色 (16 色 , 画面単位設定 ) 影付背景枠色制御 ( コマンド 6-1)BS3 ∼ BS0 に , 色コードを設定することにより影付背 景シャドウ色を設定できます。 ■ 文字背景色 (16 色 , 文字単位設定 ) 文字データ設定 1( コマンド 1)MB3 ∼ MB0 に , 色コードを設定することにより文字背 景色を設定できます。 <注意事項> OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。 DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの 読出しアドレスとなります。 537 第 20 章 OSDC ■ 表示例 図 20.2-40 に各背景制御時の表示例を示します。 図 20.2-40 文字背景表示の表示例 ( 注意事項 ) 影付背景枠は自文字領域内の周辺 2 ドットに表示されます。 538 第 20 章 OSDC 影付背景右文字結合表示 20.2.10.1 影付背景右文字結合表示は , 自文字の影枠の右辺と次 ( 右隣接 ) 文字の左辺を非表示 とする機能です。これにより , 水平方向の複数文字単位の影付背景表示が可能とな ります。 ■ 影付背景右文字結合制御 ( 文字単位設定 ) 表 20.2-27 に , 文字データ設定 2( コマンド 2):MR ビットの , 影付背景右文字結合制御を 示します。 表 20.2-27 影付背景右文字結合制御 ( 文字単位設定 ) MR 影付背景右文字結合制御 0 OFF 1 ON ■ 表示例 ● 影付背景独立 図 20.2-41 に , 影付背景独立の表示例を示します。 図 20.2-41 影付背景独立表示例 ( = OFF) ( = OFF) ( = OFF) 539 第 20 章 OSDC ● 影付背景結合表示例 図 20.2-42 に , 影付背景結合の表示例を示します。 図 20.2-42 影付背景結合表示例 ( 540 = ON) ( = ON) ( = OFF) 第 20 章 OSDC 影付背景下行結合表示 ( 文字背景 ) 20.2.10.2 影付背景下行結合表示 , および文字背景拡張表示を行うことにより , 自行の文字影枠 下辺と次 ( 直下 ) 行文字の影枠上辺を非表示とすることができます ( 自行に , 影付背 景下行結合表示 , および文字背景拡張表示を行い , 次行に文字背景拡張表示を行う必 要があります )。 これにより , 垂直方向の複数文字単位の影付背景表示が可能となります。 ■ 影付背景下行結合制御 ( 行単位設定 ) 表 20.2-28 に , 行制御データ設定 2( コマンド 4):LD ビットの , 影付背景下行結合制御を 示します。 表 20.2-28 影付背景下行結合制御 ( 行単位設定 ) LD 影付背景下行結合制御 0 OFF 1 ON ■ 表示例 図 20.2-43 に , 影付背景行結合の表示例を示します。 図 20.2-43 影付背景行結合表示例 541 第 20 章 OSDC <注意事項> 文字背景拡張表示が指定されないときは , 文字背景に対する影付背景下行結合表示指定は 無効となります ( 影付背景下行結合表示指定は行背景に対しては有効です )。 542 第 20 章 OSDC 文字背景拡張表示 20.2.10.3 文字背景拡張表示は , 文字背景を行間隔部に拡張して表示する機能です。 また , 文字背景の影付背景下行結合表示を行う場合は , この設定は必要です。 ■ 文字背景拡張制御 ( 行単位設定 ) 表 20.2-29 に , 行制御データ設定 2( コマンド 4):LE ビットの , 文字背景拡張制御を示し ます。 表 20.2-29 文字背景拡張制御 ( 行単位設定 ) LE 文字背景拡張制御 0 OFF ( 通常表示 ) 1 ON ( 拡張表示 ) ■ 表示例 ● 文字背景拡張 =OFF 図 20.2-44 に文字背景拡張 =OFF の場合の表示例を示します。 図 20.2-44 文字背景拡張 =OFF 表示例 543 第 20 章 OSDC ● 文字背景拡張 =ON 図 20.2-45 に文字背景拡張 =ON の場合の表示例を示します。 図 20.2-45 文字背景拡張 =ON 表示例 544 第 20 章 OSDC 行背景表示 20.2.11 行背景は , 文字の行領域とその左右領域 , およびその上下の行間隔領域の表示を制御 する機能です。 ■ 行背景制御 ( 行単位設定 ) 表 20.2-30 に , 行制御データ設定 2( コマンド 4):LM1, LM0 ビットの , 行背景制御を示し ます。 表 20.2-30 行背景制御 ( 行単位設定 ) LM1 LM0 行背景 0 0 背景なし ( 非表示 ) 0 1 ベタ背景 1 0 影付背景凹 *1 1 1 影付背景凸 *2 *1: 影付背景凹表示は , 自行領域内の上辺 2 ドットにハイライト色を表示し , 下辺各 2 ドットにシャドウ色を表示するものです。 *2: 影付背景凸表示は , 自行領域内の上辺 2 ドットにシャドウ色を表示し , 下辺各 2 ドッ トにハイライト色を表示するものです。 ■ 行背景色 (16 色 , 行単位設定 ) 行制御データ設定 2( コマンド 4)L3 ∼ L0 に , 色コードを設定することにより行単位に 行背景色を設定できます。 ■ 影付背景ハイライト色 (16 色 , 画面単位設定 ) 影付背景枠色制御 ( コマンド 6-1):BH3 ∼ BH0 ビット ( 注 ) 文字背景の影付背景表示と共用しています。 ■ 影付背景シャドウ色 (16 色 , 画面単位設定 ) 影付背景枠色制御 ( コマンド 6-1):BS3 ∼ BS0 ビット ( 注 ) 文字背景の影付背景表示と共用しています。 <注意事項> OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。 DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの 読出しアドレスとなります。 545 第 20 章 OSDC ■ 表示例 図 20.2-46 に , 行背景の表示例を示します。 図 20.2-46 行背景表示例 546 第 20 章 OSDC 影付背景下行結合表示 ( 行背景 ) 20.2.11.1 影付背景下行結合は , 行背景の影付背景結合表示を可能とする機能です。 自行の行背景影枠の下ラインと , 次行の行背景影枠の上ラインが非表示となります。 ■ 影付背景下行結合制御 ( 行単位設定 ) 表 20.2-31 に , 行制御データ設定 2( コマンド 4):LD ビットの , 影付背景下行結合制御を 示します。 表 20.2-31 影付背景下行結合制御 ( 行単位設定 ) LD 影付背景下行結合制御 0 OFF 1 ON ■ 表示例 図 20.2-47 に , 影付背景下行結合の表示例を示します。 図 20.2-47 影付背景下行結合表示例 <注意事項> 影付背景下行結合表示は , 文字背景と行背景に対して同時に結合制御を行います。 ただし , 文字背景拡張表示 OFF の場合 , 影付背景文字の結合制御は行われません。 図 20.2-48 から図 20.2-52 に , 文字影付背景表示と行影付背景表示の組合せによる表示 例を示します。 547 第 20 章 OSDC 図 20.2-48 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 1) 548 第 20 章 OSDC 図 20.2-49 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 2) 549 第 20 章 OSDC 図 20.2-50 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 3) 550 第 20 章 OSDC 図 20.2-51 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 4) 551 第 20 章 OSDC 図 20.2-52 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 5) 552 第 20 章 OSDC 20.2.12 画面背景表示 画面背景表示には , 画面背景文字表示と画面背景色表示の 2 つの機能があります。 ■ 画面背景表示 ● 画面背景文字表示 同一構成の文字ブロックを , 横 2 文字×縦 2 文字の 4 文字で繰返し表示することによっ て , 画面全体にグラフィック文字を表示します。 ● 画面背景色表示 最下層出力として , 画面全体に背景色を表示します。 553 第 20 章 OSDC 画面背景文字表示 20.2.12.1 画面背景文字表示は , 最大横 2 文字×縦 2 文字ブロックを , 画面全体に繰返し表示す る機能です。画面背景文字表示はグラフィック文字のみ可能です。 ■ 画面背景文字表示の構成 図 20.2-53 に , 画面背景文字の表示例を示します。 図 20.2-53 画面背景文字表示例 ■ 画面背景文字表示の制御 ● 画面背景文字出力制御 表 20.2-32 に , 画面出力制御 1( コマンド 5-0):PDS ビットの , 画面背景文字出力制御を示 します。 表 20.2-32 画面背景文字出力制御 PDS 画面背景文字出力 0 OFF 1 ON ● 画面背景文字コード 画面背景文字制御 1( コマンド 7-1):PM10 ∼ PM0 ビット PM1=0, PM0=0 を設定してください。 <注意事項> 画面背景文字は , グラフィック文字の L サイズ表示のみ使用可能です。 554 第 20 章 OSDC ● 画面背景文字垂直サイズ制御 表 20.2-33 に , 画面背景文字制御 4( コマンド 7-3):PH2 ∼ PH0 ビットの , 画面背景文字 垂直サイズ制御を示します。 表 20.2-33 画面背景文字垂直サイズ制御 PH2 PH1 PH0 画面背景文字垂直サイズ 0 0 0 18 ドット 0 0 1 20 ドット 0 1 0 22 ドット 0 1 1 24 ドット 1 0 0 26 ドット 1 0 1 28 ドット 1 1 0 30 ドット 1 1 1 32 ドット ● 画面背景文字構成制御 表 20.2-34 に , 画面背景文字制御 1( コマンド 7-1):PD1, PD0 ビットの , 画面背景文字構 成を示します。 表 20.2-34 画面背景文字構成制御 PD1 PD0 画面背景文字構成 0 0 1 文字構成 0 1 横 2 文字構成 1 0 縦 2 文字構成 1 1 縦 2 文字×横 2 文字構成 図 20.2-54 に画面背景文字の構成例を示します。 555 第 20 章 OSDC 図 20.2-54 画面背景文字構成例 556 第 20 章 OSDC 画面背景色表示 20.2.12.2 画面背景色は , 表示画面の最下位層出力として , 画面全体に背景色を表示する機能で す。 ■ 画面背景出力制御 表 20.2-35 に , 画面出力制御 1( コマンド 5-0):UDS ビットの , 画面背景出力制御を示し ます。 表 20.2-35 画面背景出力制御 UDS 画面背景色出力 0 OFF 1 ON ■ 画面背景色制御 画面背景文字制御 4( コマンド 7-3)U3 ∼ U0 に , 色コードを設定することにより画面背 景色を設定できます。 <注意事項> OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。 DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの 読出しアドレスとなります。 557 第 20 章 OSDC スプライト文字表示 20.2.13 スプライト文字は , 表示画面の最上位層に文字を表示する機能です。スプライト表 示は , グラフィック文字のみ表示可能です。 ■ スプライト文字の構成 図 20.2-55 に , スプライト文字の表示例を示します。 図 20.2-55 スプライト文字表示例 ■ スプライト文字表示制御 ● スプライト文字出力制御 表 20.2-36 に , 画面出力制御 1( コマンド 5-0):SDS ビットの , スプライト文字出力制御を 示します。 表 20.2-36 スプライト文字出力制御 SDS スプライト文字出力 0 OFF 1 ON ● スプライト文字コード スプライト文字制御 1( コマンド 8-1):SM10 ∼ SM0 ビット。 SM1=0, SM0=0 を設定してください。 <注意事項> スプライト文字は , グラフィック文字の L サイズの表示となります。 558 第 20 章 OSDC ● スプライト文字垂直表示位置制御 スプライト文字制御 3( コマンド 9-0):SY9 ∼ SY0 ビット 0 ∼ 2046 ドット , 2 ドット単位設定。 ● スプライト文字水平表示位置制御 スプライト文字制御 4( コマンド 9-1):SX9 ∼ SX0 ビット 0 ∼ 2046 ドット , 2 ドット単位設定。 ● スプライト文字垂直サイズ制御 表 20.2-37 に , スプライト文字制御 3( コマンド 8-2):SH2 ∼ SH0 ビットの , スプライト 文字垂直サイズ制御を示します。 表 20.2-37 スプライト文字垂直サイズ制御 SH2 SH1 SH0 スプライト文字垂直サイズ 0 0 0 18 ドット 0 0 1 20 ドット 0 1 0 22 ドット 0 1 1 24 ドット 1 0 0 26 ドット 1 0 1 28 ドット 1 1 0 30 ドット 1 1 1 32 ドット ● スプライト文字構成制御 表 20.2-38 に , スプライト文字制御 2( コマンド 8-1):SD1, SD0 ビットの , スプライト文 字構成制御を示します。また , 図 20.2-56 に , スプライト文字の構成例を示します。 表 20.2-38 スプライト文字構成制御 SD1 SD0 スプライト文字構成 0 0 1 文字構成 0 1 横 2 文字構成 1 0 縦 2 文字構成 1 1 縦 2 文字×横 2 文字構成 559 第 20 章 OSDC 図 20.2-56 スプライト文字構成例 560 第 20 章 OSDC 20.3 制御機能 この章では , OSDC の制御機能について説明します。 ■ 制御機能 20.3.1 ドットクロック制御 20.3.2 同期信号入力 20.3.3 表示信号出力 20.3.4 表示期間制御 20.3.5 同期制御 20.3.6 割込み制御 20.3.7 OSDC 動作制御 561 第 20 章 OSDC 20.3.1 ドットクロック制御 ドットクロック制御は , 外部ドットクロック入力 , または内部 VCO 生成ドットク ロック入力を選択可能です。コマンド 11-1, 11-2, 11-3, 17-0 によりドットクロック 制御が可能です。 ■ 入力ドットクロック選択制御 表 20.3-1 に , ドットクロック制御 1( コマンド 17 ∼ 1):DCK ビットのドットクロック選 択制御を示します。内部 VCO 生成ドットクロックを使用する場合には , コマンド 111, 11-2, 11-3 の VCO 関連制御を設定後に本コマンドにより , 入力ドットクロックの選 択を行ってください。 表 20.3-1 ドットクロック選択制御 DCK ドットクロック制御 0 外部ドットクロック入力 ( 初期状態 ) 1 内部 VCO 生成ドットクロック入力 ■ 外部ドットクロック入力 外部発振によるクロックを入力します。 このクロックは入力される水平同期信号に同期していることが前提となります。 ■ 内部 VCO 生成ドットクロック入力 ● ドットクロック回路構成 IC 内部の VCO 発生クロックを内部プリスケーラ等の制御によりドットクロックとし て使用します。 図 20.3-1 にドットクロックの回路構成概略図を示します。 図 20.3-1 ドットクロック回路構成概略図 DHRS設定 HSYNC * 位相比較器 FH * カウンタ CPO * VSEL[2:0]設定 VC設定 プリスケーラ DP[1:0]設定 内部 ドットクロック セレクタ VCO DK[11:0]設定 DCO設定 DOCKI * * : HSYNC,FH,DOCKI,DCKO,CPO端子は外部端子です。 562 DCKO * 第 20 章 OSDC ● ドットクロックプリスケーラ制御 表 20.3-2 に , ドットクロック制御 1( コマンド 11-1):DP1, DP0 ビットの , ドットクロッ クプリスケーラ制御を示します。 表 20.3-2 ドットクロックプリスケーラ制御 DP1 DP0 ドットクロックプリスケーラ構成 0 0 VCO 発振クロック÷ 1 0 1 VCO 発振クロック÷ 2 1 0 VCO 発振クロック÷ 4 1 1 VCO 発振クロック÷ 8 ● 位相比較エッジ選択制御 表 20.3-3 に , ドットクロック制御 1( コマンド 11-1):DHRS ビットの , 位相比較エッジ選 択制御を示します。 表 20.3-3 位相比較エッジ選択制御 DHRS 位相比較エッジ選択制御 0 HSYNC(______) 立上りエッジ 1 HSYNC(______) 立下りエッジ ( 注意事項 ) 入力が , 負論理の場合。 ● ドットクロック制御 ドットクロック制御 2( コマンド 11-2):DK10 ∼ DK0 ビットに , 水平同期幅に必要なク ロック数を設定することにより , 入力された水平同期信号に同期したドットクロック を生成します。 ● VCO 発振制御 ドットクロック制御 3( コマンド 11-3):VC ビットの , VCO 発振制御を示します。 表 20.3-4 VCO 発振制御 VC VCO 発振制御 0 VCO 発振停止状態 1 VCO 発振状態 563 第 20 章 OSDC ● 発振 VCO 選択制御 表 20.3-5 に , ドットクロック制御 3( コマンド 11-3):VSL[2:0] ビットの , VCO 選択制御 を示します。 表 20.3-5 発振 VCO 選択制御 VSL2 VSL1 VSL0 VCO 選択構成 VCO 発振保証周波数帯域 0 0 0 VCO1 20MHz ∼ 40MHz 0 0 1 VCO2 39MHz ∼ 53MHz 0 1 0 VCO3 51MHz ∼ 70MHz 0 1 1 VCO4 65MHz ∼ 91MHz 1 0 0 VCO5 90MHz ∼ 125MHz 1 0 1 VCO6 124MHz ∼ 160MHz 1 1 0 - 設定禁止 1 1 1 - 設定禁止 ( 注意事項 )VCO の発振保証帯域は OSDC の動作保証周波数とは異なります。 ● VCO 位相比較器制御 表 20.3-6 に , ドットクロック制御 3( コマンド 11 ∼ 3):PDE ビットの , 位相比較制御を 示します。 表 20.3-6 位相比較器制御 PDE 位相比較器制御 0 停止 1 通常動作 ● VCO チャージポンプ制御 表 20.3-7 に , ドットクロック制御 3( コマンド 11 ∼ 3):CPE ビットの , チャージポンプ 制御を示します。 表 20.3-7 チャージポンプ制御 564 CPE チャージポンプ制御 0 停止 1 通常動作 第 20 章 OSDC ● VCO チャージポンプ BIAS 電流制御 表 20.3-8 に , ドットクロック制御 3( コマンド 11 ∼ 3):CHG[1:0] ビットの , チャージポ ンプ BIAS 電流制御を示します。 表 20.3-8 チャージポンプ BIAS 電流制御 CHG1 CHG0 チャージポンプ BIAS 電流制御 0 0 約 100 µA 0 1 約 500 µA 1 0 約 1mA 1 1 設定禁止 ■ 出力ドットクロック制御 DCKO 端子のドットクロック出力を制御します。 表 20.3-9 に , ドットクロック制御 1( コマンド 11 ∼ 1):DCO ビットの出力ドットクロッ ク選択制御を示します。 表 20.3-9 出力ドットクロック制御 DCO 出力ドットクロック制御 0 ドットクロック出力 OFF 1 ドットクロック出力 ON 565 第 20 章 OSDC 20.3.2 同期信号入力 ここでは , 同期信号入力における , 垂直同期検出 , および水平同期動作について示し ます。 ■ 同期信号入力 ● 垂直同期制御 水平同期パルスの前縁または後縁時に垂直同期信号のレベルを検知し , その変化を検 出します。 ● 水平同期制御 水平同期動作には , 前縁動作および後縁動作があり , 選択可能です。 ● フィールド制御 インタレース表示を行う際のフィールド状態を , 垂直同期信号の立下りを監視するこ とでフィールド状態を検出します。 566 第 20 章 OSDC 垂直同期制御 20.3.2.1 垂直同期検出は , 水平同期パルスの前縁または後縁時に垂直同期信号のレベルを検 知し , その変化を検出する機能です。画面の垂直表示位置はこの検出位置に依存し ます。 ■ 垂直同期検出 垂直同期動作は , 入出力端子制御 2( コマンド 13 ∼ 1) の垂直同期検出 HSYNC エッジ 選択制御 , および垂直同期信号入力論理制御の設定が必要です。 垂直同期検出 HSYNC エッジ選択制御は入力する水平同期信号と垂直同期信号の位相 をを考慮して設定します。また , VSYNC 端子入力論理制御は , 入力垂直同期信号の論 理に合わせて設定します。 表 20.3-10 , 表 20.3-11 に , 各制御を示します。 表 20.3-10 垂直同期検出 HSYNC エッジ選択 VHE 垂直同期検出 HSYNC エッジ 0 HSYNC 前縁にて垂直同期を検出 1 HSYNC 後縁にて垂直同期を検出 表 20.3-11 垂直同期信号入力論理制御 IVX 垂直同期信号入力論理 0 VSYNC 端子は負論理信号入力 1 VSYNC 端子は正論理信号入力 ■ 垂直同期検出動作例 図 20.3-2 , 図 20.3-3 に , 垂直同期検出の動作例を示します。 図 20.3-2 垂直同期信号を水平同期前縁にて検出動作 (VHE=0, IVX=0, IHX=0) 図 20.3-3 垂直同期信号を水平同期後縁にて検出動作 (VHE=1, IVX=0, IHX=0) 567 第 20 章 OSDC <注意事項> 垂直同期検出 HSYNC エッジ選択 (VHE) および水平同期動作エッジ選択 (HE) に次の設定 を行った場合にメイン画面, スプライト画面, 画面背景文字表示に以下の制限があります。 • 設定条件 - 垂直同期検出 HSYNC エッジ選択 : VHE=1 ( 水平同期信号後縁にて垂直同期信号検 出) - 水平同期動作エッジ選択 : HE=1 ( 水平同期前縁にて水平同期制御動作 ) • 制限事項 - メイン画面表示 : 垂直表示位置制御 ( コマンド 5-2):Y8 ∼ Y0 ビット設定を "000H" とした場合に , メイン画面は表示不可能となります。 設定値 "001H" 以上とすることにより表示可能となります。 - スプライト画面表示 : スプライト文字垂直表示位置制御 ( コマンド 9-0):SY9 ∼ SY0 ビット設定を "000H" とした場合に , スプライト画面は表示不 可能となります。 設定値 "001H" 以上とすることで表示可能となります。 - 画面背景文字表示 : 568 表示不可能となります。 第 20 章 OSDC 水平同期制御 20.3.2.2 水平同期動作では , 水平同期前縁動作または後縁動作を選択可能です。 ■ 水平同期動作 水平同期動作は , 入出力端子制御 2( コマンド 13-1) の水平同期動作エッジ選択 , および 水平同期信号入力論理制御の設定が必要です。 表 20.3-12 , 表 20.3-13 に水平同期動作エッジ選択を示します。 表 20.3-12 水平同期動作エッジ選択 HE 水平同期動作エッジ 0 後縁動作 1 前縁動作 表 20.3-13 水平同期信号入力論理制御 IHX 水平同期信号入力論理 0 HSYNC 端子は負論理信号入力 1 HSYNC 端子は正論理信号入力 ■ 水平同期動作例 図 20.3-4 , 図 20.3-5 に , 水平同期の動作例を示します。 図 20.3-4 水平同期後縁動作 (HE=0, IHX=0) 図 20.3-5 水平同期前縁動作 (HE=1, IHX=0) 569 第 20 章 OSDC <注意事項> 垂直同期検出 HSYNC エッジ選択 (VHE) および水平同期動作エッジ選択 (HE) に次の設定 を行った場合にメイン画面, スプライト画面, 画面背景文字表示に以下の制限があります。 • 設定条件 - 垂直同期検出 HSYNC エッジ選択 : VHE=1 ( 水平同期信号後縁にて垂直同期信号検 出) - 水平同期動作エッジ選択 : HE=1 ( 水平同期前縁にて水平同期制御動作 ) • 制限事項 - メイン画面表示 : 垂直表示位置制御 ( コマンド 5-2):Y8 ∼ Y0 ビット設定を "000H" とした場合に , メイン画面は表示不可能となります。 設定値 "001H" 以上とすることにより表示可能となります。 - スプライト画面表示 : スプライト文字垂直表示位置制御 ( コマンド 9-0):SY9 ∼ SY0 ビット設定を "000H" とした場合に , スプライト画面は表示不 可能となります。 設定値 "001H" 以上とすることで表示可能となります。 - 画面背景文字表示 : 570 表示不可能となります。 第 20 章 OSDC 20.3.2.3 フィールド制御 インタレース表示 ( 入力同期信号がインタレースタイミングの表示 ) を行う場合に , 入力垂直同期信号と入力水平同期信号の位相タイミングからフィールド判別が可能 です。このフィールド判別結果により , フォントの表示ラスタ ( 偶数 / 奇数 ) を選択 出力制御します。 ドットクロック外部入力動作でインタレース表示を行う場合には , コマンド 112(DK[10:0] ビット ) に水平同期信号期間のクロック数を設定する必要があります ノンインタレース表示を行う場合は , 制御の必要はありません。 ■ フィールド検出制御 同期制御 ( コマンド 11-0):IN ビットのインタレース設定時に , 入力される水平同期信号 および垂直同期信号の位相状態から , インタレース表示を行うためのフィールドを検 出します。 • フィールド判別制御は , 水平同期信号の同期パルス前縁から前後の H/4 の位置にお いて , 垂直同期信号のレベルを観測し , 垂直同期パルス前縁を検出して行います。こ の検出位置近傍に垂直同期信号のレベル変化がありますと , フィールド判別が正し くできない場合があります。また , 垂直同期信号の同期パルス近傍に水平同期信号 の周期変化がありますと , 正しくフィールド判別できないことがあります。このよ うな場合は , 外部回路にて水平同期信号を安定させてから入力してください。 • フィールド検出タイミング "H/4" は , ドットクロック制御 2( コマンド 11-2):DK10 ∼ DK0 ビットに設定する , 水平同期周期のクロック数を 1H として算出します。 <注意事項> インタレースを行う場合 , 各フィールドに表示されるフォントの表示ラスタについては 「 20.3.5 同期制御 」を参照ください。 571 第 20 章 OSDC 図 20.3-6 に , インタレース表示を行うための垂直同期信号 (VSYNC 端子入力信号 ) と 水平同期信号 (HSYNC 端子入力信号 ) の入力タイミングを示します。 図 20.3-6 フィールド検出タイミング [ ] H/4 [ H/4 ] H/4 H/4 <注意事項> インタレースを行う場合 , 各フィールドに表示されるフォントの表示ラスタについては , 「 20.3.5 同期制御 」を参照ください。 572 第 20 章 OSDC ■ フィールド補正制御 ● フィールド補正制御 フィールド補正制御は , フィールド検出制御により生成したフィールド状態において 表示されるフォントの偶数ラスタ表示フィールドと奇数ラスタ表示フィールドの表示 状態を変換する機能です。インタレース表示出力にて , 各フィールドへの表示出力が正 しく行われない ( 出力フィールドが異なる ) 場合に , 表示出力を補正します。 同期制御 ( コマンド 11-0):FC ビットのフィールド補正制御により , 各フィールド出力の 交換が可能です。 表 20.3-14 に , 同期制御 ( コマンド 11-0) のフィールド 0 補正制御 (FC) を示します。 表 20.3-14 フィールド補正 FC フィールド補正 0 補正なし 1 補正あり 573 第 20 章 OSDC 表示信号出力 20.3.3 以下に表示信号の出力タイミングを示します。 ■ 表示信号出力タイミング 表示信号出力 表示期間信号 :VOB1 表示色コード :RGB 半透明表示期間信号 :VOB2 ■ 表示信号出力例 1 図 20.3-7 に , 文字色表示 ON, 文字背景色表示 ON, ふちどり色表示 ON 時の出力例を示 します。 図 20.3-7 文字色表示 ON, 文字背景色表示 ON, ふちどり色表示 ON 時の出力例 0 1 2 3 4 5 6 7 8 9 A B RGB VOB1 0 1 2 3 4 5 6 7 8 9 A B ( ) <注意事項> VOB1 出力が非アクティブ期間は , OSDC マクロはパレットアドレス 0H の色コードが出 力されます。(DCX=0 の場合 ) 574 第 20 章 OSDC ■ 表示信号出力例 2 水平同期信号 (HSYNC), 垂直同期信号 (VSYNC) の入力による , 表示不可期間を示しま す。 図 20.3-8 , 図 20.3-9 に , 同期信号入力時の表示不可期間を示します。 図 20.3-8 HSYNC 入力信号による表示出力マスク動作例 図 20.3-9 VSYNC 入力信号による表示出力マスク動作例 575 第 20 章 OSDC 表示期間制御 20.3.4 表示期間制御には , 次の 2 つがあります。 • 垂直表示期間制御 • 水平表示期間制御 また , この機能により水平 , および垂直ブランキング制御が可能です。 ■ 垂直表示期間制御 垂直表示期間制御は , 垂直表示期間を内部生成し , 表示信号出力制御を行うものです。 垂直表示期間では , 垂直方向の表示出力を行います。コマンド設定により表示期間の設 定が可能です。 図 20.3-10 に垂直表示期間制御動作を示します。 図 20.3-10 垂直表示期間制御動作 垂直表示期間の開始および終了タイミングは , 下記のとおり設定できます。 垂直表示開始タイミング表示期間制御 1( コマンド 14-0): DYS10 ∼ 0 ビット 0 ∼ 2047 Hsync 数 , 1Hsync 単位の設定です。 垂直表示終了タイミング表示期間制御 2( コマンド 14-1): DYE10 ∼ 0 ビット 0 ∼ 2047 Hsync 数 , 1Hsync 単位の設定です。 <注意事項> 次の設定を行った場合には , 表示終了タイミング設定は無効となり , 同期信号が入力され るまで表示出力可能期間となります。 DYS[10:0]( 垂直表示開始タイミング ) ≧ DYE[1:0]( 垂直表示終了タイミング ) 576 第 20 章 OSDC ■ 水平表示期間制御 水平表示期間制御は , 水平表示期間を内部生成し , 表示信号出力制御を行うものです。 水平表示期間では , 水平方向の表示出力を行います。コマンド設定により表示期間の設 定が可能です。 入出力端子制御 ( コマンド 13-0) の水平同期動作エッジ選択 (HE ビット ) 制御により , 次の 2 種の動作を行います。 • 水平同期動作エッジ後縁 (HE ビット =0) 時動作 • 水平同期動作エッジ前縁 (HE ビット =1) 時動作 図 20.3-11 に , 水平表示期間制御動作を示します。 図 20.3-11 水平表示期間制御動作 • 水平同期動作エッジ後縁 (HE ビット =0) 時動作 • 水平同期動作エッジ前縁 (HE ビット =1) 時動作 水平表示期間の開始および終了タイミングは , 下記のとおり設定できます。 水平表示開始タイミング表示期間制御 3( コマンド 14-2): DXS10∼0ビット0∼2047 ドットクロック数, 1ドットクロック単位の設定です。 水平表示終了タイミング表示期間制御 4( コマンド 14-3): DXE10∼0ビット0∼2047 ドットクロック数, 1ドットクロック単位の設定です。 <注意事項> 次の設定を行った場合には , 表示終了タイミング設定は無効となり , 同期信号が入力され るまで表示出力可能期間となります。 DXS[10:0]( 水平表示開始タイミング ) ≧ DXE[1:0]( 水平表示終了タイミング ) 577 第 20 章 OSDC 同期制御 20.3.5 同期制御 ( コマンド 11-0) のインタレース / ノンインタレース制御 (IN ビット ) 設定 により , インタレースおよびノンインタレース表示が可能です。 ■ 同期制御 ( 縦拡大制御 ) 表 20.3-15 に , 同期制御を示します。 表 20.3-15 同期制御 IN 縦拡大制御 0 インタレース動作 1 ノンインタレース動作 ■ 表示例 図 20.3-12 に , フォント原画データを示します。 図 20.3-12 フォント原画データ 24 32 No. 0 1 2 3 4 5 6 30 31 578 第 20 章 OSDC インタレース表示例 (IN=0 設定 ) を図 20.3-13 に示します。 インタレース表示は ,「20.3.2.3 フィールド制御」により検出されるフィールド A およ びフィールド B に , フォント原画データの異なるドットを表示することにより表示画 像を構成します。 図 20.3-13 インタレース表示例 No. 0 No. n n+1 2 n+2 4 n+3 6 n+15 30 No. No. n 1 n+1 3 n+2 5 n+3 n+15 30 ( )n <注意事項> インタレース表示において表示するフォントデータの表示ラスタが反転する場合には , フィールド補正制御 ( コマンド 11-0):FC ビットの制御により補正が可能です。 579 第 20 章 OSDC ノンインタレース表示例 (IN=1 設定 ) を図 20.3-14 に示します。 ノンインタレース表示は , フォント原画データを順次出力することで画像を構成しま す。 図 20.3-14 ノンインタレース表示例 No. n n+1 n+2 n+3 n+4 n+5 n+6 No. 0 1 2 3 4 5 6 n+30 n+31 30 31 ( 580 )n 第 20 章 OSDC 20.3.6 割込み制御 OSDC 制御割込みには次の 3 種の要因があります。 • 行表示終了検出 • 垂直同期信号検出 • VRAM フィル終了検出 CPU への割込み要求は , 3 種の OR となります。 ■ 割込み制御 割込み制御は , 内部動作状態により発生する割込みを制御するものです。 割込み制御 ( コマンド 15-0) の , 割込み要因フラグ , および割込み発生制御により割込 み制御を行います。 ● 割込み要因フラグ 割込み要因フラグは , 要因が発生した場合 "1" が設定されます。 一度セットされたフラグをクリアするには , 要因フラグに "0" を書込みます。 割込み要因フラグには , 次の 3 種のフラグがあります。 • 行表示終了フラグ ( コマンド 15-0:LIF ビット ) • 垂直同期信号入力フラグ ( コマンド 15-0:VIF ビット ) • VRAM フィル終了フラグ ( コマンド 15-0:FIF ビット ) 行表示終了フラグ 図 20.3-15 に示す , 各行の最終ラスタおよび先頭行開始直前ラスタ部分の行終了検 出ラインの表示終了が , 行表示終了要因となります。 581 第 20 章 OSDC 図 20.3-15 行表示終了検出動作 ● 垂直同期信号入力フラグ 内部垂直同期信号の立下りを検出します。 図 20.3-16 に , 垂直同期信号検出ポイントが垂直同期信号入力要因となります。 図 20.3-16 垂直同期信号検出動作 ● VRAM フィル終了フラグ VRAM フィルコマンド ( コマンド 0-2) により起動した VRAM 設定が終了した場合に VRAM フィル終了要因となります。 582 第 20 章 OSDC ● 割込み許可制御 割込み発生を制御します。 割込み発生制御には , 次の 3 種の割込みがあります。 ・行表示終了割込み ( コマンド 15-0:LIE ビット ) 表 20.3-16 に行表示割込み制御を示します。 表 20.3-16 行表示割込み制御 LIE 行表示終了割込み 0 割込みを禁止 1 割込みを許可 ・垂直同期信号入力割込み ( コマンド 15-0:VIE ビット ) 表 20.3-17 に垂直同期信号入力割込み制御を示します。 表 20.3-17 垂直同期信号入力割込み制御 VIE 垂直同期信号入力割込み 0 割込みを禁止 1 割込みを許可 ・VRAM フィル終了割込み ( コマンド 15-0:FIE ビット ) 表 20.3-18 に VRAM フィル終了割込み制御を示します。 表 20.3-18 VRAM フィル終了割込み制御 FIE VRAM フィル終了割込み 0 割込みを禁止 1 割込みを許可 583 第 20 章 OSDC 20.3.7 OSDC 動作制御 OSDC の動作制御を行います。 ■ OSDC 動作制御 OSDC の制御を行うには , 予め必要に合わせて入力ドットクロック選択設定 , DAC 設 定 , 出力端子設定を行い , OSDC をアクティブ状態にする必要があります。 ● 入力ドットクロック選択制御 表 20.3-19 に , OSDC 動作制御 1( コマンド 17-0):DCK ビットの , 入力ドットクロック制 御を示します。 VCO 発振クロックを選択する場合には , クロック制御 1, クロック制御 2, クロック制御 3 の VCO 関連の設定を行ってから本ビットを有効にしてください。 表 20.3-19 入力ドットクロック選択制御 DCK ドットクロック制御 0 外部ドットクロック入力 1 内部 VCO 生成ドットクロック入力 ● DAC 制御 表 20.3-20 に , OSDC 動作制御 1( コマンド 17-0):DPD ビットの , DAC 制御を示します。 表 20.3-20 DAC 制御 584 DPD DAC 制御 0 停止状態 1 動作状態 第 20 章 OSDC ● 出力端子制御 表 20.3-21 に , OSDC 動作制御 2( コマンド 17 ∼ 1):ANO, DGO, FHO ビットの , 出力端子 制御を示します。 表 20.3-21 出力端子制御 ANO アナログ RGB 出力端子制御 0 アナログ RGB 出力 OFF 1 アナログ RGB 出力 ON DGO デジタル RGB 端子出力制御 0 デジタル RGB 出力 OFF 1 デジタル RGB 出力 ON FHO FH 端子出力制御 0 FH 端子出力 OFF 1 FH 端子出力 ON ● OSDC アクティブ制御 表 20.3-22 に , OSDC 動作制御 2( コマンド 17 ∼ 1):OSDEN ビットの , OSDC アクティブ 制御を示します。 表 20.3-22 OSDC アクティブ制御 OSDEN OSDC アクティブ制御 0 OSDC 使用不可能状態 1 OSDC 使用可能状態 585 第 20 章 OSDC 20.4 表示制御コマンド この章では , OSDC の表示制御コマンドについて説明します。 ■ 表示制御コマンド 20.4.1 表示制御コマンド一覧 20.4.2 VRAM 書込みアドレス設定 ( コマンド 0) 20.4.3 文字データ設定 ( コマンド 1・コマンド 2) 20.4.4 行制御データ設定 ( コマンド 3・コマンド 4) 20.4.5 画面出力制御 ( コマンド 5-00・コマンド 5-1) 20.4.6 表示位置制御 ( コマンド 5-2・コマンド 5-3) 20.4.7 文字垂直サイズ制御 ( コマンド 6-0) 20.4.8 影付背景枠色制御 ( コマンド 6-1) 20.4.9 透明色制御 ( コマンド 6-2) 20.4.10 グラフィック色制御 ( コマンド 6-3) 20.4.11 画面背景文字制御 ( コマンド 7-1・コマンド 7-3) 20.4.12 スプライト文字制御 ( コマンド 8-1・コマンド 8-2・コマンド 9-0・コマンド 9-1) 20.4.13 同期制御 ( コマンド 11-0) 20.4.14 ドットクロック制御 ( コマンド 11-1, 11-2, 11-3) 20.4.15 入出力端子制御 ( コマンド 13-0・コマンド 13-1) 20.4.16 表示期間制御 ( コマンド 14-0, 14-1, 14-2, 14-3) 20.4.17 割込み制御 ( コマンド 15-0) 20.4.18 パレット制御 ( コマンド 16-0 ∼コマンド 16-15) 20.4.19 OSDC 動作制御 ( コマンド 17-0, コマンド 17-1) 586 第 20 章 OSDC 表示制御コマンド一覧 20.4.1 表示制御コマンドを示します。表 20.4-1 に , 表示制御コマンドの一覧を示します。 ■ 表示制御コマンド一覧 表 20.4-1 表示制御コマンド一覧 アドレス 下位 8bit データ OSDC コマンド No. 15 14 13 12 11 AY3 AY2 AY1 AY0 MBL MBB MS1 MS0 MM1 M10 M9 00 0 FL 02 1 MIT MUL 04 2 MR MG 06 3 LHS 08 4 LDS LGY1 10 9 8 機能 7 6 5 4 3 2 AX5 MM0 MB3 MB2 MB1 M8 M7 M6 M5 M4 1 0 AX4 AX3 AX2 AX1 AX0 MB0 MC3 MC2 MC1 MC0 文字データ設定 1 M3 M2 M1 M0 文字データ設定 2 VRAM アドレス LW2 LW1 LW0 LFD LFC LFB LFA LF3 LF2 LF1 LF0 行制御データ設定 1 LGY0 LGX1 LGX0 LD LE LM1 LM0 L3 L2 L1 L0 行制御データ設定 2 SDS UDS PDS DSP 画面出力制御 1 FM1 FM0 BT1 BT0 BD1 BD0 画面出力制御 2 0A 5-00 0C 5-1 0E 5-2 Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 垂直表示位置制御 10 5-3 X8 X7 X6 X5 X4 X3 X2 X1 X0 水平表示位置制御 12 6-0 HB2 HB1 HB0 HA2 HA1 HA0 文字垂直サイズ制御 14 6-1 BH3 BH2 BH1 BH0 BS3 BS2 BS1 BS0 影付背景色制御 16 6-2 TCC HCC TC3 TC2 TC1 TC0 HC3 HC2 HC1 HC0 透明 / 半透明色制御 18 6-3 GFC GCC GF3 GF2 GF1 GF0 GC3 GC2 GC1 GC0 グラフィック色制御 PM9 PM8 PM7 1A 7-1 1C 7-3 1E 8-1 20 8-2 PCUT SCUT PD1 SD1 PD0 PM10 SD0 SM10 SM9 SM8 SM7 SBL PM6 PM5 PM4 PM3 PM2 PM1 PM0 画面背景文字制御 1 PH2 PH1 PH0 U3 U2 U1 U0 画面背景文字制御 2 SM3 SM2 SM1 SM0 SM6 SM5 SM4 SH2 SH1 SH0 スプライト文字制御 1 スプライト文字制御 2 22 9-0 SY9 SY8 SY7 SY6 SY5 SY4 SY3 SY2 SY1 SY0 スプライト文字制御 3 24 9-1 SX9 SX8 SX7 SX6 SX5 SX4 SX3 SX2 SX1 SX0 スプライト文字制御 4 26 11-0 28 11-1 DHRS DCO クロック制御 1 2A 11-2 クロック制御 2 2C 11-3 2E 13-0 30 13-1 32 14-0 IN DK11 DK10 DYS10 DK9 DYS9 DK8 S 同期制御 FC DR1 DR0 DP1 DP0 DK7 DK6 DK5 DK4 DK3 DK2 DK1 DK0 VC VSL2 VSL1 VSL0 CHG1 CHG0 CPE PDE クロック制御 3 OHX OBX OCX 入出力端子制御 1 DYS0 表示期間制御 1 VHE HE DYS8 DYS7 DYS6 DYS5 DYS4 DYS3 IHX IVX DYS2 DYS1 入出力端子制御 2 34 14-1 DYE10 DYE9 DYE8 DYE7 DYE6 DYE5 DYE4 DYE3 DYE2 DYE1 DYE0 表示期間制御 2 36 14-2 DXE10 DXE9 DXE8 DXE7 DXE6 DXE5 DXE4 DXE3 DXE2 DXE1 DXE0 表示期間制御 3 DXE7 DXE6 DXE5 DXE4 DXE3 DXE2 DXE1 DXE0 表示期間制御 4 FIE LIE VIE 割込み制御 38 14-3 DXE10 DXE9 DXE8 3A 15-0 FIF LIF VIF 3C 16-0 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 0 3E 16-1 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 1 40 16-2 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 2 42 16-3 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 3 44 16-4 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 4 46 16-5 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 5 48 16-6 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 6 4A 16-7 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 7 4C 16-8 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 8 4E 16-9 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 9 50 16-10 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 10 52 16-11 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 11 54 16-12 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 12 56 16-13 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 13 58 16-14 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 14 5A 16-15 PLR2 PLR1 PLR0 PLG2 PLG1 PLG0 PLB2 PLB1 PLB0 Palette 15 5C 17-0 DCK DOF OSDC 動作制御 1 5E 17-1 OSDEN ANO OSDC 動作制御 2 FHO DGO 587 第 20 章 OSDC ( 注意事項 ) リセット入力 (RESET 端子への High レベル信号入力 ) により , 画面出力制御 1A の SDS, UDS, PDS, DSP 各ビット , および入出力端子制御 1 の OHX, OBX, OCX ビットは "0" に 初期化されます。その他のレジスタビット , および VRAM 内容は不定です。 リセット入力後は , すべてのレジスタビットおよび全 VRAM( 文字データおよび行制御 データ ) の設定を行ってください。 588 第 20 章 OSDC VRAM 書込みアドレス設定 ( コマンド 0) 20.4.2 コマンド 0 は , VRAM の書込みアドレスの設定 , および VRAM フィルの指定をする コマンドです。 ■ コマンド 0(VRAM 書込みアドレス設定 ) ● アドレス : 00H ● 形式 bit 15 14 13 12 11 10 FL 0 0 0 AY3 AY2 AY3~AY0: 行アドレス (0~17H) AX5~AX0: 列アドレス (0~27H) 9 8 AY1 AY0 7 0 6 0 5 4 3 2 1 0 AX5 AX4 AX3 AX2 AX1 AX0 FL: VRAM フィル指定 (0: OFF, 1: ON) ● 機能 VRAM の書込みアドレスの設定 , および VRAM フィルの指定を行います。 文字データ設定 ( コマンド 1, 2 発行 ) 前の行 / 列アドレス設定と , 行制御データ設定 ( コマンド 3, 4 発行 ) 前の行アドレス設定を行います。 VRAM フィルは文字データ設定 2( コマンド 2) の実行により起動します。 ● 補足説明 • 通常の書込み (1 文字データ , または 1 行制御データの書込み ) では , VRAM フィル 指定を OFF(FL=0) 設定としてください。 • 本コマンド発行により設定した VRAM 書込みアドレスは , 文字データ設定 2( コマ ンド 2) の実行後に自動的にインクリメントされます ( 最終列の次は次行先頭列へ , 最終行最終列の次は先頭行先頭列へインクリメントされます )。 • VRAM フィル機能とは , コマンド 0 で指定した行・列アドレスから , 最終行 (24 行 )・ 最終列 (40 列 ) までの文字 VRAM に , 文字データ設定 1, 2( コマンド 1, 2) で指定し た同一文字データを設定する機能です。VRAM フィルは , 文字データ設定 2( コマン ド 2) の発行により起動します。実行終了後は VRAM フィル割込みの発生が可能で す。VRAM フィル実行中は , コマンド 1-4 の発行を行わないでください。 ( 注意事項 ) • 行制御データ設定 ( コマンド 3, 4 発行 ) 時は , 列アドレス (AX5 ∼ AX0) は無視されま す。また , 行制御データ設定後に自動アドレスインクリメントは行いません。 • VRAM フィル指定は , 文字データ設定 ( コマンド 1, 2) 時にのみ有効です。 589 第 20 章 OSDC 文字データ設定 ( コマンド 1・コマンド 2) 20.4.3 コマンド 1 で文字データを設定し , コマンド 2 を実行することによって VRAM 設定 を行い , 画面上に反映します。 ■ コマンド 1( 文字データ設定 1) ● アドレス : 02H ● 形式 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MIT MUL MBL MBB MS1 MS0 MM1 MM0 MB3 MB2 MB1 MB0 MC3 MC2 MC1 MC0 MC3~MC0: 文字色 (16色) MB3~MB0: 文字背景色 (16色) MM1, MM0: 文字背景制御 (0, 0: OFF) (0, 1: ベタ表示) (1, 0: 影付き凹表示) (1, 1: 影付き凸表示) MBL, MBB: Blinking control (0, 0: ブリンクOFF) (0, 1: ブリンクOFF) (1, 0: 文字/緑取りドットブリンク) (1, 1: 文字/緑取りドット/文字背景ブリンク) MIT: イタリック制御 (0: イタリックOFF) (1: イタリックN) MS1, MS0: MUL: 文字水平サイズ制御 0, 0: 12ドット 0, 1: 18ドット 1, 0: 24ドット 1, 1: - アンダライン制御 (0: アンダライン OFF) (1: アンダライン ON) ● 機能 文字データを設定します。文字データ設定 2( コマンド 2) を実行することにより , VRAM 設定を行い , 画面上に反映します。 ● 補足説明 • 文字色 , 文字背景色 , 文字背景種 , 文字水平サイズ , イタリック表示 , アンダライン 表示は , それぞれ文字単位に自由に組み合わせて設定を行うことができます。 • 影付背景表示は , 文字データ設定 2( コマンド 2) の MR ビット , および行制御データ 設定 2( コマンド 4) の LD, LE ビットの組合せにより , 上下左右の結合表示を行うこ とが可能です。 • 影付背景の枠色の設定は , 影付背景枠色制御 ( コマンド 6-1) で行います。 • ブリンク制御を ON(MBL=1) 設定することにより , 画面出力制御 2( コマンド 5-1) の BT1, BT0, BD1, BD0 ビットの設定内容に従って , ブリンク ( 点滅 ) 表示を行います。 590 第 20 章 OSDC ■ コマンド 2( 文字データ設定 2) ● アドレス : 04H ● 形式 bit 15 14 MR MG 13 12 0 0 11 0 10 9 8 7 6 5 4 3 2 1 0 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 影付き背景右文字結合制御 (0: 右結合しない) (1: 右結合する) MR: MG: 文字/グラフィック文字制御 (0: 文字, 1: グラフィック文字) M10~M0: 文字コード (000H~6FFH: 1,792文字種) ● 機能 VRAM 書込みアドレス設定 ( コマンド 0) で指定した VRAM に , 文字データ設定 1( コ マンド 1) で設定した文字データと共に本設定データを書き込みます。 本コマンド実行後に VRAM 書込みアドレスは自動インクリメントされます。 ● 補足説明 影付背景右文字結合制御ビット (MR) は , 文字データ設定 1( コマンド 1) の影付背景指 定 (MM1=1 設定 ) を行った文字に対してのみ作用します。 ( 注意事項 ) 電源投入時には , VRAM 内容は不定となりますので , 必ず表示開始前に全 VRAM データの 設定を行ってください。 591 第 20 章 OSDC 行制御データ設定 ( コマンド 3・コマンド 4) 20.4.4 コマンド 3 で行制御データを設定し , コマンド 4 の実行によって行 VRAM 設定を行 い , 画面に反映します。 ■ コマンド 3( 行制御データ設定 1) ● アドレス : 06H ● 形式 bit 15 0 14 13 12 11 0 0 LHS 0 10 9 8 LW2 LW1 LW0 LHS: 行文字垂直サイズ種制御 (0: 文字垂直サイズA) (1: 文字垂直サイズB) LW2~LW0: 行間隔制御 (0~14ドット, 2ドット単位) LF3~LF0: ふちどり色 (16色) 7 6 LFD LFC 5 4 3 2 1 0 LFB LFA LF3 LF2 LF1 LF0 LFD, LFC: 縁取り出力制御 (0, 0: 全OFF) (0, 1: 文字背景なし文字のみふちどりON) (1, 0: 文字背景なし/ぺタ文字のみふちどりON) (1, 1: ふちどり出力ON) LFB, LFA: ふちり制御 (0, 0: ふちどりOFF) (0, 1: 右ふちどり) (1, 0: 左ふちどり) (1, 1: 左右ふちどり) ● 機能 行制御データを設定します。行制御データ設定 2( コマンド 4) の実行によって行 VRAM 設定を行い , 画面に反映します。 ● 補足説明 行文字垂直サイズ種制御 (LHS ビット ) で選択する文字垂直サイズ A/B の内容の設定は , 文字垂直サイズ制御 ( コマンド 6-0) にて行います。 ふちどり形式の設定は , 画面出力制御 2( コマンド 5-1) のふちどり形式制御 (FM1, FM0 ビット ) にて行います。 592 第 20 章 OSDC ■ コマンド 4( 行制御データ設定 2) ● アドレス : 08H ● 形式 bit 15 14 13 0 0 0 12 11 10 9 8 LDS LGY1 LGY0 LGX1 LGX0 7 6 5 4 3 2 1 0 LD LE LM1 LM0 L3 L2 L1 L0 行文字出力制御 (0: OFF, 1: ON) LE: 文字背景拡張制御 (0: 通常, 1: 拡張) LGY1, LGY0: 行縦拡大制御 (0, 0: 標準) (0, 1: 縦2倍) (1, 0: 設定禁止) (1, 1: 縦4倍) LD: 影付き背景下行結合制御 (0: 独立, 1: 下行結合) (1: 画面背景文字表示動作停止) LDS: LGX1, LGX0: 行横拡大制御 (0, 0: 標準) (0, 1: 縦2倍) (1, 0: 設定禁止) (1, 1: 縦4倍) LM1, LM0: 行背景制御 (0, 0: OFF) (0, 1: ベタ表示) (1, 0: 影付き凹表示) (1, 1: 影付き凸表示) L3~L0: 行背景色 (16色) ● 機能 VRAM 書込みアドレス設定 ( コマンド 0) で指定した行アドレスの行 VRAM に , 行制御 データ設定 1( コマンド 3) で設定した行制御データと共にこの設定データを書き込みま す。 ● 補足説明 影付背景下行結合制御 (LD ビット ) は , 文字影付背景と行影付背景に対して作用しま す。詳細は , 「20.2.11.1 影付背景下行結合表示 ( 行背景 )」を参照してください。 ( 注意事項 ) • 電源投入時には , VRAM 内容は不定となりますので , 必ず表示開始前に全 VRAM デー タの設定を行ってください。 • このコマンド発行による , VRAM 書込みアドレスの自動インクリメントは行われませ ん。行制御データを設定する行ごとに , VRAM 書込みアドレス設定 ( コマンド 0) が必 要です。 593 第 20 章 OSDC 画面出力制御 ( コマンド 5-00・コマンド 5-1) 20.4.5 コマンド 5-00 およびコマンド 5-1 は , 画面表示出力を制御するコマンドです。 ■ コマンド 5-00( 画面出力制御 1A) ● アドレス : 0AH ● 形式 bit 15 14 13 12 11 10 0 0 0 0 0 0 9 0 8 0 スプライト文字出力制御 (0: OFF, 1: ON) SDS: UDS: 画面背景出力制御 (0: OFF, 1: ON) 7 6 5 4 3 SDS UDS PDS DSP 2 0 1 0 0 0 0 PDS: 画面背景文字出力制御 (0: OFF, 1: ON) DSP: 表示出力制御 (文字+ふちどり+文字背景+行背景の制御) (0: OFF, 1: ON) ● 機能 画面表示出力の制御を行います。 ■ コマンド 5-1( 画面出力制御 2) ● アドレス : 0CH ● 形式 bit 15 14 13 12 11 10 0 0 0 0 0 0 9 8 7 6 5 4 FM1 FM0 BT1 BT0 BD1 BD0 BT1, BT0: ブリンク周期制御 (0, 0 : 16V) (0, 1 : 32V) (1, 0 : 48V) (1, 1 : 64V) 3 2 1 0 0 0 0 0 FM1, FM0: ふちどり形式制御 (0, 0: 横ふちどり1ドット) (0, 1: 横ふちどり2ドット) (1, 0: パターン背景1) (1, 1: パターン背景2) BD1, BD0: ブリンクデューティ制御 (0, 0: 点:滅 = 1:0, 常に表示) (0, 1: 点:滅 = 1:1) (1, 0: 点:滅 = 1:3) (1, 1: 点:滅 = 3:1) ● 機能 画面表示出力の制御を行います。 ● 補足説明 ブリンク周期制御およびブリンクデューティ制御は , 文字データ設定 2( コマンド 2) で ブリンク制御指定 (MBL=1 設定 ) を行った文字 , およびスプライト文字制御 2( コマン ド 8-2) でスプライト文字ブリンク制御指定 (SBL=1 設定 ) を行ったスプライト文字に対 して制御を行います。 594 第 20 章 OSDC 表示位置制御 ( コマンド 5-2・コマンド 5-3) 20.4.6 コマンド 5-2 は垂直 , コマンド 5-3 は水平の画面の表示位置を制御するコマンドで す。 ■ コマンド 5-2( 垂直表示位置制御 ) ● アドレス : 0EH ● 形式 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Y8~Y0: 垂直表示位置制御 (0~2044, 4ドット単位) ● 機能 メイン画面の垂直表示位置の制御を行います。 ■ コマンド 5-3( 水平表示位置制御 ) ● アドレス : 10H ● 形式 bit 15 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 X8 X7 X6 X5 X4 X3 X2 X1 X0 X8~X0: 水平表示位置制御 (0~2044, 4ドット単位) ● 機能 メイン画面の水平表示位置の制御を行います。 595 第 20 章 OSDC 文字垂直サイズ制御 ( コマンド 6-0) 20.4.7 コマンド 6-0 は , 文字の表示垂直サイズ A, B を制御するコマンドです。 ■ コマンド 6-0( 文字垂直サイズ制御 ) ● アドレス : 12H ● 形式 bit 15 0 14 13 12 11 10 9 8 7 6 5 4 3 0 0 0 0 0 0 0 0 HB2 HB1 HB0 0 2 HA2 1 0 HA1 HA0 HB2~HB0: 文字垂直サイズB制御 (18~32ドット, 2ドット単位) HA2~HA0: 文字垂直サイズA制御 (18~32ドット, 2ドット単位) ● 機能 文字の表示垂直サイズ A, B を制御します。 ● 補足説明 メイン画面は行単位に文字垂直サイズ A/B を選択して表示できます。行データ設定 1 ( コマンド 3) の行文字垂直サイズ種制御 (LHS ビット ) で文字垂直サイズ種 A/B を選択 し , このコマンドで A/B それぞれの文字表示垂直ドット数を設定します。 596 第 20 章 OSDC 影付背景枠色制御 ( コマンド 6-1) 20.4.8 コマンド 6-1 は , 影付背景の枠色を制御するコマンドです。 ■ コマンド 6-1( 影付背景枠色制御 ) ● アドレス : 14H ● 形式 bit 15 0 14 13 12 11 10 9 8 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 BH3 BH2 BH1 BH0 BS3 BS2 BS1 BS0 BH3~BH0: 影付き背景枠ハイライト色 (16色) BS3~BS0: 影付き背景枠シャドウ色 (16色) ● 機能 影付背景の枠色の制御を行います。 ● 補足説明 • 文字データ設定 1( コマンド 1) で影付文字背景指定 (MM1=1 設定 ) した文字 , および 行制御データ設定 2( コマンド 4) で影付行背景指定 (LM1=1 設定 ) をした行について , 影付背景の枠色を設定します。 • 表 20.4-2 に , 影付背景枠ハイライト色およびシャドウ色の表示部位を示します。 表 20.4-2 影付背景枠ハイライト色およびシャドウ色の表示部位 文字背景 行背景 影付背景凹表示 影付背景凸表示 影付背景凹表示 影付背景凸表示 影付背景枠ハイライト色 下辺 , 右辺 上辺 , 左辺 下辺 上辺 影付背景枠シャドウ色 上辺 , 左辺 下辺 , 右辺 上辺 下辺 597 第 20 章 OSDC 透明色制御 ( コマンド 6-2) 20.4.9 コマンド 6-2 は , 透明色を制御するコマンドです。 ■ コマンド 6-2( 透明色制御 ) ● アドレス : 16H ● 形式 bit 15 14 13 12 11 10 0 0 0 0 0 0 9 8 7 TCC HCC TC3 6 5 4 3 2 1 0 TC2 TC1 TC0 HC3 HC2 HC1 HC0 TCC: 透明色制御 (0: OFF, 1: ON) TC3~TC0: 透明色コード (16色) HCC: 半透明色制御 (0: OFF, 1: ON) HC3~HC0: 半透明色コード (16色) ● 機能 透明色および半透明色の制御を行います。 ● 補足説明 • 透明色コード (TC3 ∼ TC0) に任意色コードを設定し , かつ透明色制御 ON(TCC=1) 設 定を行うことにより , 任意の色表示部分を非表示とすることができます。その任意 色部分は下位層の表示出力を行います。 • 半透明色コード(HC3∼HC0)に任意色コードを設定し,かつ半透明色制御ON(HCC=1) 設定を行うことにより , 任意の色表示部分を非表示とし , 同時に非表示期間を VOB2 端子より出力できます。その任意色部分は下位層の表示出力を行います。 ( 注意事項 ) VOB2 端子からの半透明期間信号は , メイン画面の文字・縁取り・グラフィック以外のエ リアに対して行われます。 598 第 20 章 OSDC 20.4.10 グラフィック色制御 ( コマンド 6-3) コマンド 6-3 は , グラフィック文字の任意指定色を文字色 , またはふちどり色に置換 表示するコマンドです。 ■ コマンド 6-3( グラフィック色制御 ) ● アドレス : 18H ● 形式 bit 15 0 14 13 12 11 10 0 0 0 0 0 9 8 7 6 5 4 3 GFC GCC GF3 GF2 GF1 GF0 GC3 2 1 0 GC2 GC1 GC0 GFC: グラフィック色ふちどり色置換制御 (0: OFF, 1: ON) GF3~GF0: ふちどり色置換色コード (16色) GCC: グラフィック色文字色置換制御 (0: OFF, 1: ON) GC3~GC0: 文字色置換色コード (16色) ● 機能 グラフィック文字内の任意色を , 文字色 , またはふちどり色に置換表示します。 ● 補足説明 • GFC=1 設定によりグラフィック文字内の任意色 (GF3 ∼ GF0 ビット指定色 ) を , 行 制御データ設定 1( コマンド 3) で設定したふちどり色 (LF3 ∼ LF0) 内容に置換します。 • GCC=1 設定によりグラフィック文字内の任意色 (GC3 ∼ GC0 ビット指定色 ) を , 文 字データ設定 1( コマンド 1) で設定した文字色 (MC3 ∼ MC0) 内容に置換します。 • グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON( 透明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色ふち どり色置換色コードと透明色制御 ( コマンド 6-2) の透明色コード (TC3 ∼ TC0) が同 一設定の場合は , ふちどり色置換が優先されます。 • グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON( 透明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換するふちどり色 コード ( 行制御データ設定 1( コマンド 3) のふちどり色 (LF3 ∼ LF0)) と透明色制御 ( コマンド 6-2) の透明色コード (TC3 ∼ TC0) が同一設定の場合は , 透明色となり , 下位層色が表示されます。 • グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透 明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色文字色 置換色コードと透明色制御 ( コマンド 6-2) の透明色コード (TC3-TC0) が同一設定の 場合は , 文字色置換が優先されます。 • グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透 明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換する文字色コード ( 文字データ設定 1( コマンド 1) の文字色 (MC3 ∼ MC0)) と透明色制御 ( コマンド 62) の透明色コード (TC3 ∼ TC0) が同一設定の場合は , 透明色となり , 下位層色が表 示されます。 599 第 20 章 OSDC • グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつグラフィック色ふ ちどり色置換制御 ON(GFC ビット =1 設定 ) の場合 , 文字色置換色コード (GC3 ∼ GC0 ビット ) 設定内容とふちどり色置換色コード (GF3 ∼ GF0 ビット ) 設定内容は , 異なる色コードを設定してください。 ( 注意事項 ) このコマンド設定は , メイン画面のグラフィック文字の色表示にのみ適用されます。スプ ライト文字および画面背景文字ドット色には影響を与えません。 600 第 20 章 OSDC 画面背景文字制御 ( コマンド 7-1・コマンド 7-3) 20.4.11 コマンド 7-1 およびコマンド 7-3 は , 画面背景文字 , および画面背景色を制御するコ マンドです。 ■ コマンド 7-1( 画面背景文字制御 1) ● アドレス : 1AH ● 形式 bit 15 14 13 12 11 0 PD1 PD0 0 PCUT 10 9 8 7 6 5 4 3 2 1 PM10 PM9 PM8 PM7 PM6 PM5 PM4 PM3 PM2 PM1 PD1, PD0: 画面背景文字構成制御 (0, 0: 1文字) (0, 1: 横2文字) (1, 0: 縦2文字) (1, 1: 縦2×横2文字) 0 PM0 PM10~PM0: 画面背景文字コード (000H~6FCH 448種) PCUT: 画面背景文字動作制御 (0: 画面背景文字表示可能) (1: 画面背景文字表示動作停止) ● 機能 画面背景文字の制御を行います。 ● 補足説明 • 画面出力制御 1A( コマンド 5-00) の画面背景文字出力制御を ON(PDS=1) 設定するこ とにより , 画面背景文字表示を行います。 • 画面背景文字制御 2( コマンド 7-3) の画面背景文字垂直サイズ制御 (PH2 ∼ PH0) 設 定により , 画面背景文字垂直サイズを制御できます。 • 画面背景文字動作制御を動作停止に設定 (PCUT=1) することにより , メイン画面等 の水平表示位置オフセット値を減少することが可能です。 ( 注意事項 ) • 画面背景文字はグラフィック文字表示のみ可能です。 • 画面背景文字のグラフィック色については , グラフィック色制御 ( コマンド 6-3) のグ ラフィック色ふちどり色置換制御 , およびグラフィック色文字色置換制御はできませ ん。 • 画面背景文字動作制御により表示制御を停止する際には , 画面出力制御 1( コマンド 500) の画面背景文字出力制御を OFF に設定 (PDS=0) してください。 601 第 20 章 OSDC ■ コマンド 7-3( 画面背景文字制御 2) ● アドレス : 1CH ● 形式 bit 15 0 14 13 12 11 0 0 0 0 10 0 9 0 8 7 6 5 4 3 2 1 0 0 0 PH2 PH1 PH0 U3 U2 U1 U0 PH2~PH0: 画面背景文字垂直サイズ制御 (18~32ドット, 2ドット単位) U3~U0: 画面背景色 (16色) ● 機能 画面背景文字および画面背景色の制御を行います。 ● 補足説明 • 画面出力制御 1A( コマンド 5-00) の画面背景出力制御を ON(UDS=1) 設定することに より , 画面背景色を表示します。 • 画面出力制御 1A( コマンド 5-00) の画面背景文字出力制御を ON(PDS=1) 設定するこ とにより , 画面背景文字を表示します。 602 第 20 章 OSDC スプライト文字制御 ( コマンド 8-1・コマンド 8-2・ コマンド 9-0・コマンド 9-1) 20.4.12 コマンド 8-1, コマンド 8-2, コマンド 9-0, およびコマンド 9-1 は , スプライト文字を 制御するコマンドです。 ■ コマンド 8-1( スプライト文字制御 1) ● アドレス : 1EH ● 形式 bit 15 SCUT 14 0 13 12 SD1 SD0 11 0 10 9 8 7 6 5 4 SM10 SM9 SM8 SM7 SM6 SM5 SM4 SD1, SD0: スプライト文字構成制御 (0, 0: 1文字) (0, 1: 横2文字) (1, 0: 縦2文字) (1, 1: 縦2 × 横2文字) 3 2 1 0 SM3 SM2 SM1 SM0 SM10~SM0: スプライト文字コード (000H~6FCH : 448種) SCUT: スプライト動作制御 (0: スプライト表示可能) (1: スプライト制御動作停止) ● 機能 スプライト文字の制御を行います。 ● 補足説明 • 画面出力制御 1A( コマンド 5-00) のスプライト文字出力制御を ON(SDS=1) 設定する ことにより , スプライト文字を表示します。 • スプライト文字の表示位置は , スプライト文字制御 3( コマンド 9-0) とスプライト文 字制御 4( コマンド 9-1) に設定します。 • スプライト文字制御 2( コマンド 8-2) のスプライト文字垂直サイズ制御 (SH2 ∼ SH0) に表示垂直サイズを設定します。 • スプライト文字制御 2( コマンド 8-2) のスプライト文字ブリンク制御 (SBL ビット ) にてブリンク ON/OFF の制御を行います。 • スプライト文字のブリンク周期 , ブリンクデューティは , 画面出力制御 2( コマンド 5-1) の BT1, BT0, BD1, BD0 ビットの設定内容に制御されます。 • スプライト動作制御を動作停止に設定 (SCUT=1) することにより , メイン画面等の 水平表示位置オフセット値を減少することが可能です。 ( 注意事項 ) • スプライト文字はグラフィック文字表示のみ可能です。 • スプライト文字のグラフィック色については , グラフィック色制御 ( コマンド 6-3) の グラフィック色ふちどり色置換制御 , およびグラフィック色文字色置換制御はできま せん。 • スプライト動作制御により表示制御を停止する際には , 画面出力制御 1( コマンド 5-00) のスプライト文字出力制御を OFF に設定 (SDS=0) してください。 603 第 20 章 OSDC ■ コマンド 8-2( スプライト文字制御 2) ● アドレス : 20H ● 形式 bit 15 0 14 13 12 11 0 0 0 0 10 9 8 7 6 5 0 0 SBL 0 SH2 SH1 SBL: スプライト文字ブリンク制御 (0: OFF, 1: ON) 4 SH0 3 2 1 0 0 0 0 0 SH2~SH0: スプライト文字垂直サイズ制御 (18~32ドット, 2ドット単位) ● 機能 スプライト文字の制御を行います。 ● 補足説明 スプライト文字制御 1( コマンド 8-1) の補足説明を参照してください。 ■ コマンド 9-0( スプライト文字制御 3) ● アドレス : 22H ● 形式 bit 15 0 14 13 12 11 10 0 0 0 0 0 9 8 7 6 5 4 3 2 1 SY9 SY8 SY7 SY6 SY5 SY4 SY3 SY2 0 SY1 SY0 SY9~SY0: スプライト文字垂直表示位置制御 (0~2046, 2ドット単位) ● 機能 スプライト文字の垂直表示位置制御を行います。 ● 補足説明 スプライト文字制御 1( コマンド 8-1) の補足説明を参照してください。 ■ コマンド 9-1( スプライト文字制御 4) ● アドレス : 24H ● 形式 bit 15 0 14 13 12 11 10 0 0 0 0 0 9 8 7 6 5 4 3 2 0 SX9 SX8 SX7 SX6 SX5 SX4 SX3 SX2 SX1 SX0 SX9~SX0: スプライト文字水平表示位置制御 (0~2046, 2ドット単位) ● 機能 スプライト文字の水平表示位置制御を行います。 ● 補足説明 スプライト文字制御 1( コマンド 8-1) の補足説明を参照してください。 604 1 第 20 章 OSDC 同期制御 ( コマンド 11-0) 20.4.13 コマンド 11-0 は , 同期表示を制御するコマンドです。 ■ コマンド 11-0( 同期制御 ) ● アドレス : 26H ● 形式 bit 15 14 13 12 11 10 0 0 0 0 0 0 IN: 同期制御 (0: インタレース) (1: ノンインタレース) 9 0 8 0 7 0 FC: 6 5 4 IN 0 FC 3 0 2 0 1 0 0 0 フィールド補正制御 (0: 補正なし, 1: 補正あり) ● 機能 インタレース / ノンインタレースの制御を行います。 ● 補足説明 フィールド補正制御 (FC) は , インタレース表示 (IN=0) 時のみ有効となります。 605 第 20 章 OSDC ドットクロック制御 ( コマンド 11-1, 11-2, 11-3) 20.4.14 コマンド 11-1, コマンド 11-2, およびコマンド 11-3 は , ドットクロックを制御する コマンドです。 ■ コマンド 11-1( ドットクロック制御 1) ● アドレス : 28H ● 形式 bit 15 14 13 12 11 0 0 0 0 0 10 9 0 8 0 7 0 DP1, DP0: ドットクロック分周制御 (0, 0 : 1/1) (0, 1 : 1/2) (1, 0 : 1/4) (1, 1 : 1/8) DHRS: 6 0 0 5 4 3 DP1 DP0 2 0 1 0 0 DHRS DCO DCO : ドットクロック出力端子制御 (0: OFF, 1: ON) 位相比較エッジ選択 (0: 水平同期信号立上がりエッジ) *パックポーチ側エッジ (1: 水平同期信号立下りエッジ) *フロントポーチ側エッジ ● 機能 ドットクロック制御を行います。 ■ コマンド 11-2( ドットクロック制御 2) ● アドレス : 2AH ● 形式 bit 15 0 14 13 12 0 0 0 11 10 9 8 DK11 DK10 DK9 DK8 7 DK7 6 5 DK6 DK5 4 3 DK4 DK3 2 DK2 1 0 DK1 DK0 DK11~DK0: ドットクロック分周数 (1ドット単位: Min = 129クロック, Max = 4096クロック) ● 機能 使用するドットクロックの周波数を調整します。 ● 補足説明 プリスケーラ ( コマンド 11-1:DP1, DP0) で生成されたドットクロックを水平同期信号 周期まで分周する値 (1 ドット単位 ) を設定します。 606 第 20 章 OSDC ■ コマンド 11-3( ドットクロック制御 3) ● アドレス : 2CH ● 形式 bit 15 0 14 13 12 11 10 9 8 7 0 0 0 0 0 0 0 VC VSL2 VSL1 VSL0 CHG1 CHG0 CPE PDE VSL2~VSL0: VCO選択制御 (0, 0, 0 : VCO1) (0, 0, 1 : VCO2) (0, 1, 0 : VCO3) (0, 1, 1 : VCO4) (1, 0, 0 : VCO5) (1, 0, 1 : VCO6) (その他設定禁止) CPE: チャージポンプ制御 (0: OFF, 1: ON) 6 5 4 3 2 1 VC: VCO発信制御 (0: OFF, 1: ON) PDE: 位相比較器制御 (0: OFF, 1: ON) 0 CHG1, CHG0: チャージポンプBIAS電流制御 (0, 0 : 約100 µA) (0, 1 : 約500 µA) (1, 0 : 約1 mA) (1, 1 : 設定禁止) ● 機能 ドットクロックの発振制御をおこないます。 607 第 20 章 OSDC 入出力端子制御 ( コマンド 13-0・コマンド 13-1) 20.4.15 コマンド 13-0 およびコマンド 13-1 は , 入出力端子を制御するコマンドです。 ■ コマンド 13-0( 入出力端子制御 1) ● アドレス : 2EH ● 形式 bit 15 0 14 13 12 11 10 9 8 7 6 5 4 3 0 0 0 0 0 0 0 0 0 0 0 0 OCX: 表示色信号出力論理制御 (0: 正論理, 1: 負論理) OBX: 表示出力期間信号出力論理制御 (0: 正論理, 1: 負論理) OHX: 半透明期間信号出力論理制御 (0: 正論理, 1: 負論理) 2 1 0 OHX OBX OCX ● 機能 入出力端子の制御を行います。 ● 補足説明 • 垂直同期検出 HSYNC エッジ選択 (VHE) 設定により , 垂直同期信号と水平同期信号 の入力位相タイミングによる , 垂直方向ブレ現象の発生を回避できます。詳細は 「 20.3.2.1 垂直同期制御 」を参照してください。 • OSDC 表示色信号出力論理制御は , パレット入力前の色情報の論理を反転します。パ レットにより変換される色情報についての制御は行いません。 ■ コマンド 13-1( 入出力端子制御 2) ● アドレス : 30H ● 形式 bit 15 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 VHE HE 0 0 0 0 IHX IVX 0 VHE: 垂直同期検出HSYNCエッジ選択 (0: 前縁, 1: 後縁) IHX: 水平同期信号入力論理制御 (0: 負論理, 1: 正論理) 水平同期動作エッジ選択 (0: 後縁, 1: 前縁) IVX: 垂直同期信号入力論理制御 (0: 負論理, 1: 正論理) HE: ● 機能 入出力端子の制御を行います。 608 第 20 章 OSDC 表示期間制御 ( コマンド 14-0, 14-1, 14-2, 14-3) 20.4.16 コマンド 14-0, コマンド 14-1, コマンド 14-2, およびコマンド 14-3 は , 表示期間を制 御するコマンドです。 ■ コマンド 14-0( 表示期間制御 1) ● アドレス : 32H ● 形式 bit 15 0 14 13 12 11 0 0 0 0 10 9 8 7 6 5 4 3 2 1 0 DYS10 DYS9 DYS8 DYS7 DYS6 DYS5 DYS4 DYS3 DYS2 DYS1 DYS0 DYS10~DYS0: 垂直方向表示開始制御 (0~2047; 1ドット単位) ● 機能 垂直方向の表示開始タイミングを制御します。 ■ コマンド 14-1( 表示期間制御 2) ● アドレス : 34H ● 形式 bit 15 14 13 12 11 0 0 0 0 0 10 9 8 7 6 5 4 3 2 1 0 DYE10 DYE9 DYE8 DYE7 DYE6 DYE5 DYE4 DYE3 DYE2 DYE1 DYE0 DYE10~DYE0: 垂直方向表示終了制御 (0~2047; 1ドット単位) ● 機能 垂直方向の表示終了タイミングを制御します。 609 第 20 章 OSDC ■ コマンド 14-2( 表示期間制御 3) ● アドレス : 36H ● 形式 bit 15 14 13 12 11 0 0 0 0 0 10 9 8 7 6 5 4 3 2 1 0 DXS10 DXS9 DXS8 DXS7 DXS6 DXS5 DXS4 DXS3 DXS2 DXS1 DXS0 DXS10~DXS0: 水平方向表示開始制御 (0~2047; 1ドット単位) ● 機能 水平方向の表示開始タイミングを制御します。 ■ コマンド 14-3( 表示期間制御 4) ● アドレス : 38H ● 形式 bit 15 0 14 13 12 11 0 0 0 0 10 9 8 7 6 4 3 2 1 0 DXE10 DXE9 DXE8 DXE7 DXE6 DXE5 DXE4 DXE3 DXE2 DXE1 DXE0 DXE10~DXE0: 水平方向表示終了制御 (0~2047; 1ドット単位) ● 機能 水平方向の表示終了タイミングを制御します。 610 5 第 20 章 OSDC 20.4.17 割込み制御 ( コマンド 15-0) コマンド 15-0 は割込みを制御するコマンドです。 ■ コマンド 15-0( 割込み制御 ) ● アドレス : 3AH ● 形式 bit 15 14 13 12 11 0 0 0 0 0 10 9 8 FIF LIF VIF 7 0 6 5 0 0 FIF: VRAMフィル終了フラグ (0: VRAMフィル終了なし, 1: VRAMフィル終了) LIF: 行表示終了フラグ (0: 行表示終了なし, 1: 行表示終了) VIF: VSYNC検出フラグ (0: 正論理, 1: 負論理) FIE: VRAMフィル終了割込み制御 (0: 割込み禁止, 1: 割込み許可) LIE: 行表示終了割込み制御 (0: 割込み禁止, 1: 割込み許可) VIE: VSYNC検出割込み制御 (0: 割込み禁止, 1: 割込み許可) 4 0 3 0 2 1 0 FIE LIE VIE ● 機能 割込み制御を行います。 FIF, LIF, VIF に一度セットされたフラグをクリアするには "0" を書き込みます。 611 第 20 章 OSDC パレット制御 ( コマンド 16-0 ∼コマンド 16-15) 20.4.18 コマンド 16-0 ∼コマンド 16-15 は , パレット値を制御するコマンドです。 ■ コマンド 16-0 ∼コマンド 16-15( パレット制御 ) ● アドレス : 以下の表参照 ● 形式 アドレス コマンド ( 下位 No. 15 ∼ 11 8bit) データ 10 9 8 7 6 5 4 3 2 1 0 3C 16-0 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 3E 16-1 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 40 16-2 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 42 16-3 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 44 16-4 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 46 16-5 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 48 16-6 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 4A 16-7 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 4C 16-8 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 4E 16-9 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 50 16-10 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 52 16-11 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 54 16-12 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 56 16-13 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 58 16-14 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 5A 16-15 00000 PLR2 PLR1 PLR0 0 PLG2 PLG1 PLG0 0 PLB2 PLB1 PLB0 PLR2 ∼ PLR0: 赤色信号パレット値 PLG2 ∼ PLG0: 緑色信号パレット値 PLB2 ∼ PLB0: 青色信号パレット値 ● 機能 パレット値を制御します。 ● 補足説明 • OSDC の 4bit 色コード "0" ∼ "F" について " コマンド 16-0" ∼ " コマンド 16-15" に , パレット値を設定することにより , RGB の色設定をおこないます。 • 色コードには , 以下の種類があります。文字 (MC3 ∼ MC0) 文字背景色 (MB3 ∼ MB0) 縁取り色 (LF3 ∼ LF0) 行背景色 (L3 ∼ L0) 影付背景枠色 (BH3 ∼ BH0, BS3 ∼ BS0) グラフィック色制御 (GF3 ∼ GF0, GC3 ∼ GC0) 画面背景色 (U3 ∼ U0) グラフィック色 612 第 20 章 OSDC 20.4.19 OSDC 動作制御 ( コマンド 17-0, コマンド 17-1) コマンド 17-0, コマンド 17-1 は OSDC の初期動作制御を行います。 ■ コマンド 17-0(OSDC 動作制御 1) ● アドレス : 5CH ● 形式 bit 15 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 DCK 0 0 0 DPD DCK: 入力ドットクロック選択制御 (0: 外部ドットクロック入力, 1: 内部PLL生成ドットクロック入力) DPD: DAC Enable (0: OSDC DACアクセスOFF, 1: OSDC DACアクセスON) ● 機能 OSDC 関連リソースのアクセス制御を行います。 ● 補足説明 各ENABLE制御は, コマンド17-1のOSDC ENABLEをONにした後に制御してください。 ■ コマンド 17-1(OSDC 動作制御 2) ● アドレス : 5EH ● 形式 bit 15 0 14 13 12 11 10 0 0 0 0 0 9 0 8 7 0 0 DGO: ANO: Analog系出力制御 (0: 出力OFF, 1: 出力ON) FHO: FH出力制御 (0: 出力OFF, 1: 出力ON) OSDEN: OSDC Enable (0: OSDC動作OFF, 1: OSDC動作ON) 6 5 0 0 4 3 OSDEN 0 2 1 0 FHO DGO ANO Digital系出力制御 (0: 出力OFF, 1: 出力ON) ● 機能 OSDC の動作制御をおこないます。 613 第 20 章 OSDC ● 補足説明 • Analog 系出力および Digital 系出力のいずれかが出力 ON 状態では , 両系の出力に共 通である VOB1, VOB2 信号は出力されます。 • VOB1, VOB2 出力も OFF にするためには , Analog 系出力および Digital 系出力を出 力 OFF にする必要があります。 • OSDC ENABLE は , 外部より正常なクロック入力がある場合 , もしくは内蔵 PLL が 正常発振した状態で制御する必要があります。 614 第 21 章 FLASH メモリ この章では , フラッシュメモリの概要 , レジスタの 構成 / 機能および動作について説明します。 21.1 フラッシュメモリの概要 21.2 フラッシュメモリのレジスタ 21.3 フラッシュメモリのアクセスモード 21.4 フラッシュメモリ自動アルゴリズム 21.5 自動アルゴリズム実行状態の確認 21.6 フラッシュメモリ書込み / 消去 21.7 制限および注意事項 615 第 21 章 FLASH メモリ 21.1 フラッシュメモリの概要 本製品は 512kbyte(4Mbit) の容量で , 3V 単一電源による全セクター一括消去 , およ びセクタ単位での消去と FR-CPU によるハーフワード (16bit) 単位での書込みが可能 なフラッシュメモリを内蔵しています。 ■ フラッシュメモリの概要 このフラッシュメモリは , 内蔵の 3V 動作 512KB フラッシュメモリです。このフラッ シュメモリは , 当社製 4M ビットフラッシュメモリ MBM29LV400 と ( 一部セクタ構成 を除いて ) 同じものであり , ROM ライタによるデバイス外部からの書込みも可能です。 また , MBM29LV400 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合には , ワード (32bit) 単位の命令 / データ読出しが可能であり , デバイスの高速動作を実現でき ます。 本書と併せて MBM29LV400 データシートもご参照ください。 本製品では, フラッシュメモリマクロとFR-CPUインタフェース回路の組み合わせによ り , 以下の機能を実現します。 • CPU のプログラム / データ格納用メモリとして機能 - ROM として使用する際は 32bit バス幅でアクセス可能 - CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *1) が可能 • 単体フラッシュメモリ製品の MBM29LV400 相当の機能 - ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能 ここでは , FR-CPU から本フラッシュメモリを使用する場合について記載しています。 ROMライタから本フラッシュメモリを使用する場合の詳細につきましては, 別途ROM ライタの取り扱い説明書を参照ください。 *: 自動プログラムアルゴリズム = Embedded Algorithm 616 第 21 章 FLASH メモリ ■ ブロックダイヤグラム 図 21.1-1 ブロックダイヤグラム RDY/BUSYX 立上がりエッジ検出 フラッシュメモリ 8M bit 制御信号生成 RESETX BYTEX OEX WEX CE RDY WE バス制御信号 FA18-0 アドレスバッファ FA18-0 DI15- 0 DO31-0 データバッファ FD31-0 FR-Fバス (命令/データ) ■ メモリマップ FLASH メモリのアドレスマッピングは FLASH メモリモードと CPU モードでは異なり ます。以下に各モードでのマッピングを示します。 617 第 21 章 FLASH メモリ 図 21.1-2 メモリマップ Flash CPU 0000_0000 I/O, etc 0008_0000 8 bit/16 bit 64 bit FLASH/ Mask-ROM 512k Byte 0010_0000 0018_0000 FLASH 512k Byte FFFF_FFFF 001F_FFFF 64Bit-Flash メモリ 1 つに対して CPU モードでは 64bit アクセスを行います。Flash モー ドでは 8bit/16bit 幅になります。 ■ セクタアドレス表 図 21.1-3 に , CPU モードのフラッシュのセクタ配置を示します。 618 第 21 章 FLASH メモリ 図 21.1-3 CPU モードのフラッシュのセクタ配置 7FFFFH 5FFFFH SA43 (16K) 3FFFFH SA40 (16K) 7C000H 7BFFFH 5C000H 5BFFFH SA42 (8K) 7A000H 79FFFH 3BFFFH 59FFFH SA31 (32K) 50000H 4FFFFH 60000H CPU Bit 63 56,55 Flash Bit 15 8,7 0 15 SA19 (32K) 10000H 8,7 0 SA18 (64K) 20000H 32 31 15 24,23 8,7 000C_0000H 000B_FFFFH 0FFFFH SA22 (64K) 40,39 000E_0000H 000D_FFFFH 30000H 40000H 48 47 SA32 (8K) 18000H 17FFFH 2FFFFH SA26 (64K) 000E_8000H 000E_7FFFH 19FFFH SA23 (32K) 000F_0000H 000E_FFFFH SA33 (8K) 1A000H SA35 (8K)38000H 37FFFH 70000H SA30 (64K) 1BFFFH 39FFFH SA27 (32K) 6FFFFH 1C000H SA36 (8K)3A000H SA38 (8K) 58000H 57FFFH 000F_FFFFH SA34 (16K) 3C000H SA39 (8K) 5A000H SA41 (8K) 78000H 77FFFH 1FFFFH SA37 (16K) 00000H 16 15 8,7 0 8,7 15 FLASH (little endian) +1/+0 +1/+0 +1/+0 +1/+0 CPU (big endian) +0/+1 +2/+3 +4/+5 +6/+7 0008_0000H 0 0 619 第 21 章 FLASH メモリ 21.2 フラッシュメモリのレジスタ フラッシュメモリにはフラッシュコントロール / ステータスレジスタ (FLCR) とフ ラッシュメモリウェイトレジスタ (FMWT) の 2 つのレジスタがあります。 ■ FLCR: フラッシュコントロール / ステータスレジスタ (CPU モード ) FLASH メモリの動作状態を示すレジスタです。FLASH メモリへの書込み制御等を行 います。 CPU モードでのみアクセスすることが可能です。本レジスタは , リードモディファイ ライト系命令ではアクセスしないでください。 bit7 bit6 bit5 bit4 00007000H bit3 bit2 bit1 RDY R/W (0) R/W (1) R/W (1) R (0) R (1) bit0 WE R/W (0) R/W (0) R/W (0) [bit7] Reserve: 予約ビットです。 必ず "0" を設定してください。 [bit6, bit5] Reserve: 予約ビットです。 必ず "1" を設定してください。 [bit4] Reserve: 予約ビットです。 リセット時 :"0" に初期化されます。 [bit3] RDY: 自動アルゴリズム ( 書込み / 消去 ) の動作状態を表示します。 本ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われてお り , 新たな書込み , また消去コマンドを受け付けることはできません。また , FLASH メモリアドレスからのデータ読出しはできません。 読出したデータは FLASH メモリのステータスを示します。 620 0 書込み / 消去動作中で , データの読出しや書込み / 消去コマンドの受付はでき ません 1 データの読出しおよび書込み / 消去コマンドの受付が可能です。 • リセット時 :"0" に初期化されます。 • Read のみ可能です。Write は本ビット値に影響を与えません。 第 21 章 FLASH メモリ [bit2] Reserve: 予約ビットです。 必ず "0" を設定してください。 [bit1] WE(Write Enable): CPU モードにおける FLASH メモリへのデータおよびコマンドの書込みを制御しま す。 本ビットが "0" の間は , FLASH メモリへのデータおよびコマンドの書込みはすべて 無効になります。 また, FLASHメモリからのデータ読出しが倍速化します(32bitアクセスを行います)。 本ビットが "1" の間は , FLASH メモリへのデータおよびコマンドの書込みが有効と なり , 自動アルゴリズムの起動が可能となります。但し , FLASH メモリからのデー タ読出しは低速になります (16bit アクセスを行います )。 本ビットの書き換えは , 必ず RDY ビットにより自動アルゴリズム ( 書込み / 消去 ) が停止していることを確認してから行ってください。RDY ビットが "0" の間は , 本 ビットの値を書き換えることができません。 ( 注意事項 ) • 本ビットの書換えは必ず RDY ビットにより自動アルゴリズムが停止していることを確 認してから行ってください。RDY ビットが "0" の間本ビットを書き換える事はできま せん。 • WE=1 のときは命令アクセス要求には応答せず , データアクセス要求にのみ応答しま す。 FLASHメモリモードにおいては, 本ビットの状態に関わらず書込み動作が有効とな ります。 0 FLASH メモリへの書込み禁止 , および読出しの倍速化 1 FLASH メモリへの書込み許可 , および読出しの低速化 • リセット時 :"0" に初期化されます。 • Read/Write 可能です。 [bit0]Reserve: 予約ビットです。 必ず "0" を設定してください。 621 第 21 章 FLASH メモリ ■ FMWT: ウェイトレジスタ CPU モードにおいて , FLASH メモリのウェイト制御を行います。 bit7 bit6 00007004H R (0) bit5 bit4 FAC1 FAC0 R/W (1) R/W (1) R/W (1) bit3 bit2 bit1 bit0 WTC2 WTC1 WTC0 R/W (0) R/W (0) R/W (1) R/W (0) [bit7, bit6]Reserve: 予約ビットです。 必ず "01" を設定してください。 [bit5, bit4]FAC1, FAC0 : ATDIN, EQIN の H 幅を指定します。 FAC1 FAC0 ATDIN EQIN 0 0 0.5 clock 1.0 clock 0 1 1.0 clock 1.5 clock 1 0 1.5 clock 2.0 clock 1 1 0.5 clock 1.5 clock 備考 40MHz ( 初期値 ) [bit3]Reserve: 予約ビットです。 必ず "0" を設定してください。 [bit2 ∼ bit0]WTC2, WTC1, WTC0 : Wait Cycle bit FLASH メモリのウェイト制御をします。 WTC2 WTC1 WTC0 Wait cycle 0 0 0 設定禁止 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 備考 40MHz ( 初期値 ) ● FLASH アクセスタイミング FLASHマクロのアクセスタイム・アクセスサイクル数は以下の組み合わせになります。 読出し 40M Time 50ns 90ns cycle 3(2) 4(3) ( ) 内は WTC レジスタ値 622 書込み 40M 第 21 章 FLASH メモリ 21.3 フラッシュメモリのアクセスモード FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。 • ROM モード ワード (32bit) 長データを一括で読み出すことができますが , 書込みはできませ ん。 • プログラミングモード ワード (32bit) 長アクセスは禁止されていますが , ハーフワード (16bit) 長での書 き込みが可能になります。 ■ FR-CPU ROM モード (32bit, Read のみ ) FR-CPU の内蔵 ROM として機能するモードです。ワード (32bit) 長データの一括読出し が可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできません。 ● モードの指定方法 • フラッシュメモリステータスレジスタの "WE" ビットが "0" のとき , 本モードとなり ます。 • CPU 動作時でのリセット解除後は常に本モードになります。 • CPU 動作時以外では本モードにすることができません。 ● 動作内容 フラッシュメモリ領域の読出し時 , メモリよりワード (32bit) 長データを一括で読み出 します。 ● 制限事項 • ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。 • 本モードでは , フラッシュメモリへのコマンド / データともに書込みはできません。 623 第 21 章 FLASH メモリ ■ FR-CPU プログラミングモード (16bit, Read/Write) データの消去 / 書込みが可能になるモードです。ワード (32bit) 長データの一括アクセ スは不可能ですので , 本モードで動作している間はフラッシュメモリ上のプログラム は実行が不可能となります。 ● モードの指定方法 • フラッシュメモリステータスレジスタの "WE" ビットが "1" のとき本モードとなり ます。 • CPU 動作時でのリセット解除後は "WE" ビットが "0" になっています。本モードに するためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセットの 発生により "WE" ビットが "0" になると ROM モードに戻ります。 • フラッシュメモリステータスレジスタの "RDY" ビットが "0" の期間は "WE" ビット を書き換えることができません。"RDY" ビットが "1" になったことを確認してから "WE" ビットを書き換えてください。 ● 動作内容 • フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16bit) 長データを一括 で読み出します。 • フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動できます。 自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが可能となりま す。自動アルゴリズムの詳細については , 自動アルゴリズムの項を参照してくださ い。 ● 制限事項 • ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。 • 本モードではワード (32bit) 長でデータを読みだすことを禁止します。 ■ 自動アルゴリズム実行状態 CPU プログラミングモードにて自動実行アルゴリズムを起動した場合には , 内部レ ディ/ ビジー信号 (RDY/BUSYX) により自動実行アルゴリズムの動作状態を知ることが できます。このレディ / ビジー信号のレベルはフラッシュメモリステータスレジスタ の "RDY" ビットとして読むことができます。 "RDY" ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われて おり, 新たな書込み, または消去コマンドを受け付けることはできません。また, フラッ シュメモリアドレスからのデータ読み出しはできません。 "RDY" ビットが "0" の期間に読みだしたデータは , フラッシュメモリのステータスを示 すハードウェアシーケンスフラグとなっています。 624 第 21 章 FLASH メモリ 21.4 フラッシュメモリ自動アルゴリズム フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセッ ト , 書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停 止と再開の制御が可能です。 ■ コマンドシーケンス 自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 ∼ 6 回のハーフワード (16bit) データの連続書込みを実行します。これをコマンドとよびます。 不正なアドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込ん だりすると , フラッシュメモリはリードモードにリセットされます。 表 21.4-1 にフラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示します。 ( アドレスは CPU から見たアドレス ) 表 21.4-1 コマンドシーケンス表 コマンド シーケンス バス 1st バスライト 2nd バスラ 3rdバスライト 4th バスライト 5th バスラ 6th バスライ ライト サイクル イトサイク サイクル サイクル イトサイク トサイクル サイクル ル ル FMA DIN F0F0H FMA DIN FMA DIN FMA DIN FMA DIN ---- --- --- --- --- FMA DIN --- --- --- 読出し / リセット 1 AXXXXH 読出し / リセット 4 AAAAAH AAAAH A5555H 5555H AAAAAH FOFOH RA RD --- --- --- --- 書込み 4 AAAAAH AAAAH A5555H 5555H AAAAAH A0A0H PA PD --- --- --- --- チップ消去 6 AAAAAH AAAAH A5555H 5555H AAAAAH 8080H AAAAAH AAAAH A5555H 5555H AAAAAH 1010H セクタ消去 6 AAAAAH AAAAH A5555H 5555H AAAAAH 8080H AAAAAH AAAAH A5555H 5555H --- --- SA 3030H RA :FLASH メモリ読出しアドレス PA :FLASH メモリ書込みアドレス SA :FLASH メモリ消去セクタアドレス(セクタ内の任意の 1アドレスを指定します ) RD :FLASH メモリ読出しデータ PD :FLASH メモリ書込みデータ FMA : アドレス DIN : 書込みデータ 625 第 21 章 FLASH メモリ ● リード ( 読出し ) / リセットコマンド フラッシュメモリを読出し / リセットモードにセットします。フラッシュメモリは , ほ かのコマンドが入力されるまで読出し状態を保ちます。フラッシュメモリは , 電源投入 時自動的に読出し / リセットモードにセットされます。この場合は , データ読出しコマ ンドは必要ありません。 タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー タを読み出します。 ● プログラム ( 書込み ) CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書 き込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サイクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そ して最後の書込みサイクルでメモリへの書込みが開始されます。 自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上 の外部よりの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適 切な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動 作は , データポーリング機能により , bit7 のデータがこのビットに書き込んだデータに 一致したとき終了し (「21.5 自動アルゴリズム実行状態の確認」参照 ), このときをもっ て読出しモードに戻り , これ以上書込みアドレスは受け付けなくなります。この結果 , フラッシュメモリはこの時点で次の有効アドレスを要求します。このようにデータ ポーリングは , メモリが書込み中であることを示します。 書込み中はフラッシュメモリにライトされたすべてのコマンドが無視されます。もし 書込み中にハードウェアリセットが起動されると書き込んでいるアドレスのデータは 保証されません。 書込みはどのようなアドレスの順番でも , またセクタの境界を越えても可能です。書込 みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデータ "1" を書き込むと , データ・ポーリングアルゴリズムにより , 素子が不良と判定されるか , あるいは見かけ上データ "1" が書き込まれたように見えるかのどちらかです。しかし , リセット / 読出しモードでデータを読みだすとデータは "0" のままです。消去動作のみ が "0" データを "1" データにすることができます。 ● チップ消去 チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。まず最初に 2 つ の " アンロック " サイクルがあり , 引き続き " セットアップ " コマンドがライトされま す。 チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。 チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。自動消去アルゴリズム実行中にはフラッシュメモリは自動的にすべてのセルを消 去する前に "0" のパターンに書き込んで検証します ( プリプログラム )。この動作中に は , フラッシュメモリは外部からの制御は必要としません。 自動消去はコマンドシーケンス中の書き込みで開始され , bit7 が "1" になったときに終 了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セク タ消去時間×全セクタ数 + チップ書込み時間 ( プリプログラム )」となります。 626 第 21 章 FLASH メモリ ● セクタ消去 セクタ消去は , 6 回のアクセスで行われます。2 つの " アンロック " サイクルがあり , 引 き続き " セットアップ " コマンドをライトし , その後さらに 2 つの " アンロック " サイ クルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始 まります。最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次の セクタ消去コマンドの受け付けが可能です。 複数のセクタ消去は前述したような 6 つのバスサイクルをライトすることで同時に受 け付け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ 消去コマンド (30H) を引き続きライトすることで行います。最後のセクタ消去コマンド の書き込みから 50 µs のタイムアウト期間終了により , セクタ消去が開始されます。つ まり , 複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50 µs 以内 に入力する必要があり , それ以降ではコマンドは受け付けられないことがあります。引 き続くセクタ消去コマンドが有効かどうかは bit3 にてモニタ可能です (「21.5 自動ア ルゴリズム実行状態の確認」参照 )。 タイムアウト中のセクタ消去コマンド , あるいは消去一時停止以外のいかなるコマン ドも読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そ のセクタを再度消去することにより消去が完了します。セクタ消去バッファへのセク タアドレス入力は , セクタのどのような組み合わせや数 (0 から 6) からでも実行可能で す。 セクタ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。フラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行い ます ( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響 も受けません。これらの動作中はフラッシュメモリは外部からの制御は必要としませ ん。 自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間 の後に開始され , bit7 のデータが "1" になったとき終了し , フラッシュメモリは読出し モードに戻ります。ほかのコマンドは無視されます。データポーリングは消去された セクタ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間 + セ クタ書込み時間 ( プリプログラム )) ×消去セクタ数」となります。 ● 消去一時停止 消去一時停止コマンドは , ユーザがセクタ消去中にフラッシュメモリの自動アルゴリ ズムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするも のです。このコマンドはセクタ消去中のみ有効で , チップ消去や書き込みの動作中は無 視されます。消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去 タイムアウト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムア ウト期間中に入力されるとただちにタイムアウトを終了し , 消去動作を中断します。消 去再開コマンドがライトされると消去動作が再開されます。消去一時停止 , 消去再開コ マンドの入力の際のアドレスは任意であってかまいません。 セクタ消去動作中に消去一時停止コマンドが入力されると , フラッシュメモリが消去 動作を停止するのに最大 20 µs の時間がかかります。フラッシュメモリが消去一時停止 モードに入ると , レディ / ビジー出力と bit7 が "1" を出力し , bit6 がトグル動作をやめ ます。消去しているセクタのアドレスを入力し bit6 と bit7 の読出し値をモニタするこ とによって , 消去動作を停止しているかどうかを確かめられます。さらに , 消去一時停 止コマンドのライトは無視されます。 627 第 21 章 FLASH メモリ 消去動作が停止したとき , フラッシュメモリは消去一時停止読出しモードになります。 このモードでのデータの読出しはデータが消去一時停止していないセクタに有効とな りますが , それ以外は標準的な読出しと同じです。消去一時停止読出し中 , その消去一 時停止したセクタからの連続的な読出しに対しては , bit2 はトグル動作をします。 消去一時停止読出しモードに入った後 , ユーザは書込みのコマンドシーケンスをライ トすることによりフラッシュメモリに書込みができます。この書込みモードは , 消去一 時停止書込みモードとなります。このモードでの書込みは , データが消去一時停止して いないセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一 時停止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対して は , bit2 はトグル動作をします。消去一時停止ビット (bit6) によって検出できます。 使用上の注意として , bit6 はどんなアドレスに対しても読出し可能ですが , bit7 は書込 みアドレスに対して読み出しを行わなければなりません。 セクタ消去動作を再開するためには , 再開コマンド (30H) を入力する必要があります。 この時点でさらに再開コマンドを入力しても無視されます。他方 , 消去一時停止コマン ドはフラッシュメモリが消去再開した後に入力できます。 628 第 21 章 FLASH メモリ 21.5 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了した事を知らせるハードウェアを持ちま す。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内蔵 フラッシュメモリの動作状態の確認ができます。 ■ レディ / ビジー信号 (RDY/BUSYX) フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と して , ハードウェアシーケンスフラグの他に , レディ / ビジー信号を持っています。こ のレディ/ ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッシュ メモリステータスレジスタの "RDY" ビットとして読みだすことが可能です。また , こ のレディ/ ビジー信号の立ち上がりにより , CPU に対して割込み要求を発生することも 可能です。 "RDY" ビットの読出し値が "0" のとき , フラッシュメモリは書込み , あるいは消去動作 中です。このときは書込みコマンドも消去コマンドも受け付けません。"RDY" ビット の読出し値が "1" のときフラッシュメモリは読出し / 書込み , あるいは消去動作待ちの 状態です。 ■ ハードウェアシーケンスフラグ bit 15 ( ( 8 7 0 bit 7 0 ) ) ( 注意事項 ) ワード読出しは禁止。(FR-CPU プログラミングモードのみ使用してください。) ハードウェアシーケンスフラグは , 自動アルゴリズム実行中にフラッシュメモリの任 意のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことによりデータとして 得られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの 状態を示します。 ROM1 の自動アルゴリズム実行中は ROM1 の任意のアドレスを , ROM2 の自動アルゴ リズム実行中は ROM2 の任意のアドレスを指定してください。 (half-word, byte bit ) 7 DPOL 6 TOGG 5 TLOV 4 ( ) 3 SETI 2 TOGG 1 ( 0 ) ( ) なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FR-CPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくだ さい。 629 第 21 章 FLASH メモリ 表 21.5-1 ハードウェアシーケンスフラグ状態一覧 DPOLL 状態 実行中 TOGGLE TLOVER SETIMR TOGGL2 反転データ トグル 0 0 1 自動消去動作 0 トグル 0 1 トグル 消去 消去一時停止読出し 一時停止 ( 消去一時停止して モード いるセクタ ) 1 1 0 0 トグル *1 消去一時停止読出し ( 消去一時停止して いないセクタ ) データ データ データ データ データ 消去一時停止読出し ( 消去一時停止して いるセクタ ) 反転データ トグル *2 0 0 1*3 反転データ トグル 1 0 1 0 トグル 1 1 *4 0 トグル 1 1 *4 自動書込み動作 タイム 自動書込み動作 リミット 自動消去動作 超過 消去一時停止時の書込み動作 *1: 消去一時停止セクタからの連続的な読出し時に , TOGGLE2 はトグル動作をします。 *2: どんなアドレスからの連続的な読出し時でも , TOGGLE はトグル動作をします。 *3: 消去一時停止書込み中 , その書込みされているアドレスの読出し時 , TOGGLE2 は "1" となります。 しかし , 消去一時停止しているセクタからの連続的な読出し時は , TOGGLE2 はトグル動作をし ます。 *4: TLOVER が "1" のとき ( タイムリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対して , TOGGLE2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。 表中の各ビットは , [bit7]:DPOLL データポーリング [bit6]:TOGGLE トグルビット [bit5]:TLOVER タイムリミット超過 [bit3]:SETIMR セクタ消去タイマ [bit2]:TOGGL2 トグルビット 2 を示します。それぞれについては , 以下に簡単に説明します。 630 第 21 章 FLASH メモリ [bit7]:DPOLL データポーリングフラグ データポーリングフラグは , 自動アルゴリズム実行が進行中もしくは終了状態であ る事をデータポーリング機能によって知らせるためのフラグです。 書込み動作時 自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリ はアドレスの指し示す番地によらず , 最後に書込まれたデータの bit7 の反転 データを出力します。自動書込みアルゴリズム終了時にリードアクセスする と , フラッシュメモリはアドレスの指し示す番地の読出し値の bit7 を出力し ます。 チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去し ているセクタから, チップ消去時はアドレスの指し示す番地に関係なく, リー ドアクセスするとフラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレ スの指し示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタ でなければアドレスの指し示す番地の読出し値の bit7 を出力します。トグル ビットフラグとともに参照することで, 現在セクタ一時停止状態であるか, ど のセクタが消去中であるかの判定が可能です。 ( 注意事項 ) 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ の読出しは , データポーリングフラグの終了を受けて他のビットの出力が可能となりま す。このため自動アルゴリズム終了後のデータの読出しは , データポーリング終了を確認 したリードアクセスの次に行うようにしてください。 [bit6]:TOGGLE トグルビットフラグ トグルビットフラグはデータポーリングフラグと同様に , 主に自動アルゴリズム実 行が進行中 , もしくは終了状態である事をトグルビット機能によって知らせるため のフラグです。 書込み / チップ • セクタ消去時 自動書込みアルゴリズムおよびチップ•セクタ消去アルゴリズム実行中に, 連 続したリードアクセスを行うと , フラッシュメモリはアドレスの指し示す番 地によらず , リードごとに "1" と "0" を交互に出力するトグル状態を出力しま す。自動書込みアルゴリズムおよびチップ / セクタ消去アルゴリズム終了時 に連続したリードアクセスを行うとフラッシュメモリは bit6 のトグル動作を 止め , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 セクタ消去一時停止時 セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレ スの指し示す番地が消去中のセクタに属するならば , "1" を出力します。消去 中のセクタに属さないのであれば , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。 631 第 21 章 FLASH メモリ ( 参考 ) 書込みの際 , 書込もうとしているセクタが書き換え保護されているセクタの場合は , 約 2 µs のトグル動作をした後 , データを書き換える事なくトグル動作を終わります。消 去の際, 選択された全てのセクタが書き換え保護されている場合トグルビットは約100 µs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。 [bit5]:TLOVER タイミングリミット超過フラグ タイミングリミット超過フラグは , 自動アルゴリズムの実行がフラッシュメモリ内 部に規定された時間 ( 内部パルス回数 ) を越えてしまった事を知らせるフラグです。 書込み / チップ • セクタ消去時 書込みまたは, チップ•セクタ消去自動アルゴリズム起動後にリードアクセス すると , 規定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間 を越えてしまっている場合は "1" を出力します。これは , 自動アルゴリズム が実行中か終了状態にあるか無関係ですので , 書込み / 消去が成功したか失 敗したかの判定が可能です。すなわち , このフラグが "1" を出力した時 , デー タポーリング機能もしくはトグルビット機能により自動アルゴリズムがまだ 実行中であれば , 書込みが失敗していると判断することができます。例えば , "0" が書込まれているフラッシュメモリアドレスに "1" を書込もうとすると フェイルが発生します。この場合フラッシュメモリはロックされ , 自動アル ゴリズムは終了しません。したがって , データポーリングフラグから有効な データが出力されません。またトグルビットフラグはトグル動作を止めず , タイムリミットを越え , タイミングリミット超過フラグは "1" を出力します。 この状態はフラッシュメモリが不良ではなく , 正しく使用されなかったとい う事を表しています。この状態が発生した時は , リセットコマンドを実行し てください。 [bit3]:SETIMR セクタ消去タイマフラグ セクタ消去タイマフラグは , セクタ消去コマンド起動後セクタ消去ウェイト期間中 であるか否かを知らせるフラグです。 セクタ消去動作時 セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコ マンドを発行したセクタのアドレス信号の指し示す番地によらず , セクタ消 去ウェイト期間中であれば "0" を , セクタ消去ウェイト期間を越えてしまっ ている場合は "1" を出力します。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中 を示している場合, このフラグが"1"であれば内部で制御される消去が始まっ ています。続けてのセクタ消去コードのライト , または消去一時停止以外の コマンドは , 消去が終了されるまで無視されます。このフラグが "0" であれ ばフラッシュメモリは, 追加のセクタ消去コードのライトを受け付けます。こ の事を確認するために , 引き続くセクタ消去コードのライトに先立ちこのフ ラグの状態をチェックすることを推奨します。もし 2 回目の状態チェックで "1" であったなら追加セクタの消去コードは受け付けられてない可能性があ 632 第 21 章 FLASH メモリ ります。 セクタ消去動作時 セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレ スの指し示す番地が , 消去中のセクタに属するならば "1" を出力します。消 去中のセクタに属さないのであれば , アドレスの指し示す番地の読出し値の bit3(DATA:3) を出力します。 [bit2]:TOGGL2 トグルビットフラグ 2 このトグルビットフラグは bit6 のトグルビットに加えて , フラッシュメモリが自動 消去動作中であるか , 消去一時停止中であるかをトグルビット機能によって知らせ るためのフラグです。 書込み / チップ • セクタ消去時 トグルビット ( bit2 ) と同様のトグル動作をします。 セクタ消去一時停止時 フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止してい るセクタから連続して読み出しを行うと bit2 はトグル動作をします。消去一 時停止書込みモードのときは , 消去一時停止していないセクタのアドレスか ら連続して読み出すと bit2 は "1" が読み出されます。bit6 は bit2 と違い , 通常 の書込み, 消去, あるいは消去一時停止書込み動作中にのみトグル動作をしま す。 ( 参考 ) bit2 と bit6 は , 消去一時停止読出しモードを検出するために , 同時に使われます ( bit2 は トグル動作をするが bit6 はトグル動作をしない )。さらに bit2 は消去しているセクタの検 出にも使われます。フラッシュメモリが消去動作のときは , bit2 は消去しているセクタか らの読み出しならばトグル動作をします。 633 第 21 章 FLASH メモリ 21.6 フラッシュメモリ書込み / 消去 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ ぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去 フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , 消去再開の動作がコマンドシーケンスのバスへのライトサイクルを行う事 で自動アルゴリズムを実行することが可能です。それぞれのバスへのライトサイクル は必ず続けて行う必要があります。また , 自動アルゴリズムはデータ • ポーリング機能 などで終了時を知る事ができます。正常終了後は読出し / リセット状態に戻ります。 634 第 21 章 FLASH メモリ 21.6.1 読出し / リセット状態 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ 読出し / リセット状態 フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表の読出し / リセットコマンドを , フラッシュメモリ内の対象セクタに続けて送る事で実行可能で す。 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 通りのコマンドシーケ ンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。読出し / リセット状態では通常のリードアクセスでデー タを読み出せます。マスク ROM と同様に CPU からのプログラムアクセスが可能です。 通常読出しでのデータ読出しにこのコマンドは必要ありません , 何らかの理由でコマ ンドが正常に終了しなかった時など , 自動アルゴリズムを初期化する場合に主にこの コマンドを使用します。 635 第 21 章 FLASH メモリ 21.6.2 データ書込み 書込みコマンドを発行し , フラッシュメモリにデータ書込みを行う手順について説 明します。 ■ データ書込み フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表の書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送る事で実行 可能です。4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動ア ルゴリズムが起動され自動書込みが開始します。 ● アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ スへのハーフワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが , 1 回の書込みコマンドによって書き込まれるデータは 1 ハーフワードのみです。 ● データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ "1" を書き込むと , データポーリングアルゴリズムまたは , トグル動作が終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を越えタイミングリミット 超過フラグがエラーと判定するか , あるいは見かけ上データ "1" が書き込まれた様に見 えるかのどちらかとなります。しかし , 読出し / リセット状態でデータを読み出すと データは "0" のままです。消去動作のみが "0" データを "1" にすることができます。自 動書込み実行中は全てのコマンドが無視されます。書込み中にハードウェアリセット が起動されると , 書き込んでいるアドレスのデータは保証されませんので注意が必要 です。 ● フラッシュメモリ書込み手順 図 21.6-1 にフラッシュメモリ書込みの手順の例を示します。ハードウェアシーケンス フラグを用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能で す。 ここでは , 書込み終了の確認にデータポーリングフラグ (DPOLL) を用いています。 フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読込 みとなります。 データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同 時に変わるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であっても データポーリングフラグビット (DPOLL) は再チェックする必要があります。 トグルビットフラグ (TOGGLE) でも同様にタイミングリミット超過フラグビット (TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (TOGGLE) を再チェックする必要があります。 636 第 21 章 FLASH メモリ 図 21.6-1 フラッシュメモリ書込み手順の例 ( ハーフワードアクセス ) 書込み開始 FLCR: WE (bit5) フラッシュメモリ書込み許可 書込みコマンドシーケンス AAAAA AAAA A5555 5555 AAAAA A0A0 書込みアドレス 書込みデータ 内部アドレスリード 次アドレス データポーリング (DPOLL) Data タイミングリミット (TLOVER) 内部アドレスリード Data 書込みエラー データポーリング (DPOLL) 最終アドレス NO YES FLCR: WE (bit5) フラッシュメモリ書込み禁止 ハードウェアシーケンスフラグによる確認 書込み完了 637 第 21 章 FLASH メモリ 21.6.3 データ消去 ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データ消去を行う手順につい て説明します。 ■ データ消去 ( チップ消去 ) フラッシュメモリから全てのデータを消去するには , コマンドシーケンス表のチップ 消去コマンドを , フラッシュメモリ内の対象セクタに続けて送る事で実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます , 6 サイクル目のライトが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的に全てのセルを消去する前に "0" を書き込んで検証します。 638 第 21 章 FLASH メモリ 21.6.4 データ消去 ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のセクタ消去を行う手順に ついて説明します。セクタごとの消去が可能であり , 複数のセクタを同時に指定す ることも可能です。 ■ データ消去 ( セクタ消去 ) フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表のセク タ消去コマンドを, フラッシュメモリ内の対象セクタに続けて送る事で実行可能です。 ● セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) をライトすること により 50 µs のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上 記の処理に引き続き消去する目的のセクタ内のアドレスに消去コード(30H)をライトし ます。 ● 複数のセクタを指定する時の注意 最後のセクタ消去コードのライトから50 µsのセクタ消去ウェイト期間終了により消去 が開始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアド レスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µs 以内に入力す る必要があり , それ以降では受け付けられない事があります。引き続くセクタ消去コー ドのライトが有効かどうかはセクタ消去タイマ ( ハードウェア • シーケンス • フラグ SETIMR) によって調べる事ができます。なおこの時 , セクタ消去タイマをリードする アドレスは , 消去しようとしているセクタを指すようにします。 ● セクタ消去手順 ハードウェア • シーケンス • フラグを用いる事でフラッシュメモリ内部の自動アルゴリ ズムの状態判定が可能です。図 21.6-2 にフラッシュメモリセクタ消去の手順の例を示 します。ここでは , 消去終了の確認にトグルビットフラグ (TOGGLE) を用いています。 フラグチェックのために読込むデータは , 消去しようとしているセクタからの読込み となりますので , 注意が必要です。 トグルビットフラグ (TOGGLE) は , タイミングリミット超過フラグ (TLOVER) が "1" に 変わるのと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であってもトグルビットフラグ (TOGGLE) は再チェックする必要が あります。 データポーリングフラグ (DPOLL) でも同様に , タイミングリミット超過フラグ (TLOVER) と同時に変わるので , データポーリングフラグ (DPOLL) を再チェックする 必要があります。 639 第 21 章 FLASH メモリ 図 21.6-2 セクタ消去手順の例 消去開始 FLCR: WE (bit5) フラッシュメモリ消去許可 セクタ消去タイマ 0 1 消去コマンドシーケンス AAAA AAAAA 5555 A5555 8080 AAAAA 5555 A5555 1010 AAAAA 消去セクタへコード入力 (30H) YES 消去セクタが 他にあるか? NO 内部アドレスリード1 内部アドレスリード 次セクタ 内部アドレスリード2 トグルビット(TOGGLE) データ1 = データ2 Yes No ハードウェア シーケンスフラグ による確認 0 タイミングリミット (TLOVER) 1 内部アドレスリード1 内部アドレスリード2 NO トグルビット(TOGGLE) データ1 = データ2 YES 消去エラー 最終セクタ YES FLCR: WE (bit5) フラッシュメモリ消去禁止 消去完了 640 NO 第 21 章 FLASH メモリ 21.6.5 セクタ消去の一時停止 セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタから , データを読み出す事が可 能です。 ■ セクタ消去の一時停止 フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表のセクタ 消去一時停止コマンドを , フラッシュメモリ内に続けて送る事で実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込 みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) のライトを行う事で実施されますが , この時アドレスはフ ラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の消 去一時停止コマンドは無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去 ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 15 µs の時間の後 , 消去一時停止状態に入ります。 641 第 21 章 FLASH メモリ 21.6.6 セクタ消去の再開 セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ セクタ消去の再開 一時停止したセクタ消去を再開させるには , コマンドシーケンス表のセクタ消去再開 コマンドを , フラッシュメモリ内に続けて送る事で実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード (30H) のライトを行う事で実施されますが , この時のアドレスはフラッシュメモリ領域 内の任意のアドレスを指すようにします。なお , セクタ消去中のセクタ消去再開コマ ンドの発行は無視されます。 642 第 21 章 FLASH メモリ 21.7 制限および注意事項 ここでは FLASH メモリを使用する上で注意しなければならない事項について説明 します。 ■ 制限および注意事項 • 以下の領域 (I-Bus) に対してのライトアクセスは行わないでください。 0000_0300H ∼ 0000_037FH 0000_03E4H ∼ 0000_03E7H 0000_8000H ∼ 0000_BFFFH 0001_0000H ∼ 0001_FFFFH • FMCS レジスタの WE= 0 の状態で FLASH メモリへのライトアクセスを行わないで ください。 • FMCS レジスタの WE= 1 の状態で FLASH メモリに対してのライト連続アクセスを 行わないでください。その場合 , 必ず "NOP"1 命令以上あけるようにしてください。 例 ) FLASH へのコマンドライト ( コマンドシーケンス ) ⇒ FLASH リード ldi #0xAAAA, r0 ldi #0x5555, r1 ldi #0xAAAAA, r6 ldi #0xA5555, r7 ldi #0xA0A0, r8 ldi # PA, r2 ldi # PD, r3 sth r0, @r6 : 必ず "NOP"1 命令以上あけてください。 nop sth r1, @r7 : 必ず "NOP"1 命令以上あけてください。 nop sth r8, @r6 : 必ず "NOP"1 命令以上あけてください。 nop sth r3, @r2 nop : 必ず "NOP"1 命令以上あけてください。 • CPU モード時 , FLASH メモリへのライトアクセスはハーフワードのみ可能です。バ イトライトアクセスは行わないでください。 • FMCS レジスタの WE, FIXE, BIRE を書き換えた直後に FLASH メモリ領域への分岐 命令を実行しないでください。 FLASH 領域に分岐する際には , 下記プログラム例に従い , 一度 FMCS レジスタの値 を読み出してから分岐してください。 STB R1, @R2 // WE=OFF LDUB @R2, R1 // FMCS 値ダミー Read 643 第 21 章 FLASH メモリ BRA _flash_address //FLASH 領域への分岐 • セクタプロテクトは使用できません。 • FLASH 書込み直後のリードの値は保証できません。 書込み後読み出す場合は , 以下のように必ずダミーリードを入れてからリードして ください。 644 STH r0, @r1 // Flash 書込み LDUH @r2, r4 // ダミー読込み LDUH @r3, r4 // ポーリングデータ読込み 付録 付録では , I/O マップ , 割込みベクタ , ドットク ロック生成用 PLL, USB クロック , 外部バスインタ フェースの設定 , および命令一覧について , 本文に 記載できなかった細かいところや , プログラミング するときに参照することがらを記載しています。 付録 A I/O マップ 付録 B 割込みベクタ 付録 C ドットクロック生成用 PLL について 付録 D USB クロックについて 付録 E USB IO 低消費電力モードについて 付録 F 外部バスインタフェースの設定について 付録 G 端子状態一覧 付録 H 命令一覧 645 付録 付録 A I/O マップ I/O マップについて説明します。 ■ I/O マップの見方 メモリ空間領域と周辺リソースの各レジスタの対応を示します。 図 A-1 表の見方 address 000000H register +1 +2 +3 block PDR1[R/W] PDR2[R/W] PDR3[R/W] T-unit XXXXXXXX XXXXXXXX Port Data Register XXXXXXXX +0 PDR0[R/W] XXXXXXXX リード/ライトアトリビュート リセット後のレジスタ初期値 レジスタ名 (1コラムのレジスタが4n番地, 2コラムが4n+2番地...) 最左のレジスタ番地 (ワードでアクセスした際は, 1コラム目のレジスタがデータのMSB側となる。) ( 注意事項 ) レジスタのビット値は , 以下のように初期値を表します。 • "1" : 初期値 "1" • "0" : 初期値 "0" • "X" : 初期値 "X" • "-" : その位置に物理的にレジスタがない 646 付録 A I/O マップ 表 A-1 I/O マップ (1 / 12) Register Address Block +0 +1 +2 +3 000000H | 00000FH - - - - 000010H PDR0[R/W] XXXXXXXX PDR1[R/W] XXXXXXXX PDR2[R/W] --XXXXXX PDR3[R/W] -XXXXXX 000014H PDR4[R/W] XXXXXXXX PDR5[R/W] XXXXXXXX PDR6[R/W] --XXXXXX PDR7[R/W] ---XXXXX 000018H - - - - 00001CH - - - - 000020H ADCTH[R/W] XXXXXX00 ADCTL[R/W] 00000X00 Reserved R-bus Port Data Register ADCH[R/W] 00000000_00000000 000024H ADAT0[R] XXXXXX00_00000000 ADAT1[R] XXXXXX00_00000000 000028H ADAT2[R] XXXXXX00_00000000 ADAT3[R] XXXXXX00_00000000 00002CH ADAT4[R] XXXXXX00_00000000 ADAT5[R] XXXXXX00_00000000 000030H ADAT6[R] XXXXXX00_00000000 ADAT7[R] XXXXXX00_00000000 000034H ADAT8[R] XXXXXX00_00000000 ADAT9[R] XXXXXX00_00000000 10bit A/D converter 000038H - - - - 00003CH - - - - 000040H EIRR [R/W] 00000000 ENIR [R/W] 00000000 ELVR [R/W] 00000000 000044H DICR [R/W] -------0 HRCL [R/W] 0--11111 - Reserved TMRLR0 [W] XXXXXXXX XXXXXXXX TMR0 [R] XXXXXXXX XXXXXXXX 00004CH - TMCSR0 [R/W] ----0000 00000000 000050H TMRLR1 [W] XXXXXXXX XXXXXXXX TMR1 [R] XXXXXXXX XXXXXXXX - TMCSR1 [R/W] ----0000 00000000 000048H Ext int DLYI/I-unit Reload Timer 0 Reload Timer 1 000054H 647 付録 表 A-1 I/O マップ (2 / 12) Register Address Block +0 000058H +1 +2 +3 TMRLR2 [W] XXXXXXXX XXXXXXXX TMR2 [R] XXXXXXXX XXXXXXXX - TMCSR2 [R/W] ----0000 00000000 Reload Timer 2 00005CH 000060H 000064H 000068H 00006CH 000070H 000074H 000078H 00007CH 000080H SSR [R/W] 00001-00 SIDR [R/W] XXXXXXXX UTIM [R] (UTIMR [W]) 00000000 00000000 SSR [R/W] 00001-00 SIDR [R/W] XXXXXXXX UTIM [R] (UTIMR [W]) 00000000 00000000 SSR [R/W] 00001-00 SIDR [R/W] XXXXXXXX UTIM [R] (UTIMR [W]) 00000000 00000000 SSR [R/W] 00001-00 SIDR [R/W] XXXXXXXX UTIM [R] (UTIMR [W]) 00000000 00000000 SSR [R/W] 00001-00 SIDR [R/W] XXXXXXXX SCR [R/W] 00000100 SMR [R/W] 00--0-0- DRCL [W] -------- UTIMC [R/W] 0--00001 SCR [R/W] 00000100 SMR [R/W] 00--0-0- DRCL [W] -------- UTIMC [R/W] 0--00001 SCR [R/W] 00000100 SMR [R/W] 00--0-0- DRCL [W] -------- UTIMC [R/W] 0--00001 SCR [R/W] 00000100 SMR [R/W] 00--0-0- DRCL [W] -------- UTIMC [R/W] 0--00001 SCR [R/W] 00000100 SMR [R/W] 00--0-0- DRCL [W] -------- UTIMC [R/W] 0--00001 000084H UTIM [R] (UTIMR [W]) 00000000 00000000 000088H -------- -------- 00008CH -------- -------- UART0 U-TIMER 0 UART1 U-TIMER 1 UART2 U-TIMER 2 UART3 U-TIMER 3 UART4 U-TIMER 4 Reserved 000090H 000094H PWCCL[R/W] 0000--00 PWCCH[R/W] 00-00000 PWCD[R] XXXXXXXX_XXXXXXXX -------- -------- -------- -------PWC 000098H 00009CH PWCC2[R/W] 000----- Reserved -------- -------- PWCUD[R] XXXXXXXX_XXXXXXXX -------- -------- 0000A0H -------- -------- -------- -------- 0000A4H -------- -------- -------- -------- Reserved 648 付録 A I/O マップ 表 A-1 I/O マップ (3 / 12) Register Address Block +0 +1 +2 +3 0000A8H -------- -------- -------- -------- 0000ACH -------- -------- -------- -------- 0000B0H - - - - 0000B4H IBCR [R/W] 00000000 IBSR [R/W] 00000000 0000B8H ITMK [R/W] 00----11 11111111 0000BCH - 0000C0H 0000C4H ITBA [R/W] ------00 00000000 ISMK [R/W] 01111111 ISBA [R/W] 00000000 IDAR [R/W] 00000000 ICCR [R/W] 0-011111 IDBL [R/W] -------0 - - - - IBCR [R/W] 00000000 IBSR [R/W] 00000000 0000C8H ITMK [R/W] 00----11 11111111 0000CCH - 0000D0H 0000D4H ISBA [R/W] 00000000 IDAR [R/W] 00000000 ICCR[R/W] 0-011111 IDBL [R/W] -------0 - - - - IBCR [R/W] 00000000 IBSR [R/W] 00000000 ITMK [R/W] 00----11 11111111 0000DCH - 0000E0H 0000E4H ISBA [R/W] 00000000 IDAR [R/W] 00000000 ICCR [R/W] 0-011111 IDBL [R/W] -------0 - - - - IBCR [R/W] 00000000 IBSR [R/W] 00000000 ITMK [R/W] 00----11 11111111 0000ECH - 0000F0H T0LPCR [R/W] -----000 Reserved I2C interface ch.1 Reserved ITBA [R/W] ------00 00000000 ISMK [R/W] 01111111 0000E8H I2C interface ch.0 ITBA [R/W] ------00 00000000 ISMK [R/W] 01111111 0000D8H Reserved I2C interface ch.2 Reserved ITBA [R/W] ------00 00000000 ISMK [R/W] 01111111 ISBA [R/W] 00000000 IDAR [R/W] 00000000 ICCR [R/W] 0-011111 IDBL [R/W] -------0 T0CCR [R/W] 0-010000 T0TCR [R/W] 00000000 T0R [R/W] ---00000 I2C interface ch.3 多機能タイマ 649 付録 表 A-1 I/O マップ (4 / 12) Register Address Block +0 0000F4H 0000F8H 0000FCH 000100H 000104H 000108H 00010CH +1 T0DRR [R/W] XXXXXXXX XXXXXXXX T1LPCR [R/W] -----000 T1CCR [R/W] 0-000000 T1DRR [R/W] XXXXXXXX XXXXXXXX T2LPCR [R/W] -----000 T2CCR [R/W] 0-000000 T2DRR [R/W] XXXXXXXX XXXXXXXX T3LPCR [R/W] -----000 T3CCR [R/W] 0-000000 T3DRR [R/W] XXXXXXXX XXXXXXXX 000110H - 000120H PTMR0 [R] 11111111_11111111 000124H PDUT0 [W] XXXXXXXX_XXXXXXXX 000128H PTMR1 [R] 11111111_11111111 00012CH PDUT1 [W] XXXXXXXX_XXXXXXXX 000130H PTMR2 [R] 11111111_11111111 00134H PDUT2 [W] XXXXXXXX_XXXXXXXX 000138H PTMR3 [R] 11111111_11111111 00013CH PDUT3 [W] XXXXXXXX_XXXXXXXX - +2 +3 T0CRR [R/W] XXXXXXXX XXXXXXXX T1TCR[R/W] 00000000 T1R [R/W] ---00000 T1CRR [R/W] XXXXXXXX XXXXXXXX T2TCR [R/W] 00000000 T2R [R/W] ---00000 多機能タイマ T2CRR [R/W] XXXXXXXX XXXXXXXX T3TCR [R/W] 00000000 T3R [R/W] ---00000 T3CRR [R/W] XXXXXXXX XXXXXXXX - - Reserved PCSR0 [W] XXXXXXXX_XXXXXXXX PPG0 PCNH0 [R/W] 00000000 PCNL0 [R/W] 00000000 PCSR1 [W] XXXXXXXX_XXXXXXXX PPG1 PCNH1 [R/W] 00000000 PCNL1 [R/W] 00000000 PCSR2 [W] XXXXXXXX_XXXXXXXX PPG2 PCNH2 [R/W] 00000000 PCNL2 [R/W] 00000000 PCSR3[W] XXXXXXXX_XXXXXXXX PPG3 000140H | 0001FCH 650 - - PCNH3 [R/W] 00000000 PCNL3 [R/W] 00000000 - - Reserved 付録 A I/O マップ 表 A-1 I/O マップ (5 / 12) Register Address Block +0 +1 +2 +3 000200H DMACA0 [R/W] 00000000 0000XXXX XXXXXXXX XXXXXXXX 000204H DMACB4 [R/W] 00000000 00000000 00000000 00000000 000208H DMACA1 [R/W] 00000000 0000XXXX XXXXXXXX XXXXXXXX 00020CH DMACB4 [R/W] 00000000 00000000 00000000 00000000 000210H DMACA2 [R/W] 00000000 0000XXXX XXXXXXXX XXXXXXXX 000214H DMACB4 [R/W] 00000000 00000000 00000000 00000000 000218H DMACA3 [R/W] 00000000 0000XXXX XXXXXXXX XXXXXXXX 00021CH DMACB4 [R/W] 00000000 00000000 00000000 00000000 000220H DMACA4 [R/W] 00000000 0000XXXX XXXXXXXX XXXXXXXX 000224H DMACB4 [R/W] 00000000 00000000 00000000 00000000 000228H - 00022CH | 00023CH - 000240H DMACR [R/W] 0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX 000244H | 0002FCH - 000300H | 0003ECH - DMAC Reserved DMAC 651 付録 表 A-1 I/O マップ (6 / 12) Register Address Block +0 +1 +2 +3 0003F0H BSD0 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F4H BSD1 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F8H BSDC [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003FCH BSRR [R] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX Bit Search Module 000400H DDR0 [R/W] 00000000 DDR1 [R/W] 00000000 DDR2 [R/W] --000000 DDR3 [R/W] -0000000 000404H DDR4 [R/W] 00000000 DDR5 [R/W] 00000000 DDR6 [R/W] --000000 DDR7 [R/W] ---00000 000408H - - - - 00040CH - - - - 000410H PFR0 [R/W] 0--00000 PFR1 [R/W] 00000000 PFR2 [R/W] 000---00 PFR3 [R/W] 00000000 000414H - - - - 000418H - - - - 00041CH - - - - 000420H | 00043CH 652 - R-bus Port Direction Register R-bus Port Function Register Reserved 付録 A I/O マップ 表 A-1 I/O マップ (7 / 12) Register Address Block +0 +1 +2 +3 000440H ICR00 [R/W] ---11111 ICR01 [R/W] ---11111 ICR02[R/W] ---11111 ICR03 [R/W] ---11111 000444H ICR04 [R/W] ---11111 ICR05 [R/W] ---11111 ICR06 [R/W] ---11111 ICR07 [R/W] ---11111 000448H ICR08 [R/W] ---11111 ICR09 [R/W] ---11111 ICR10 [R/W] ---11111 ICR11 [R/W] ---11111 00044CH ICR12 [R/W] ---11111 ICR13 [R/W] ---11111 ICR14 [R/W] ---11111 ICR15 [R/W] ---11111 000450H ICR16 [R/W] ---11111 ICR17 [R/W] ---11111 ICR18 [R/W] ---11111 ICR19 [R/W] ---11111 000454H ICR20 [R/W] ---11111 ICR21 [R/W] ---11111 ICR22 [R/W] ---11111 ICR23 [R/W] ---11111 000458H ICR24 [R/W] ---11111 ICR25 [R/W] ---11111 ICR26 [R/W] ---11111 ICR27 [R/W] ---11111 00045CH ICR28 [R/W] ---11111 ICR29 [R/W] ---11111 ICR30 [R/W] ---11111 ICR31 [R/W] ---11111 000460H ICR32 [R/W] ---11111 ICR33 [R/W] ---11111 ICR34 [R/W] ---11111 ICR35 [R/W] ---11111 000464H ICR36 [R/W] ---11111 ICR37 [R/W] ---11111 ICR38 [R/W] ---11111 ICR39 [R/W] ---11111 000468H ICR40 [R/W] ---11111 ICR41 [R/W] ---11111 ICR42 [R/W] ---11111 ICR43 [R/W] ---11111 00046CH ICR44 [R/W] ---11111 ICR45 [R/W] ---11111 ICR46 [R/W] ---11111 ICR47 [R/W] ---11111 STCR [R/W] 00110011 (*2) TBCR [R/W] 00XXXX00 (*1) CTBR [W] XXXXXXXX - DIVR0 [R/W] 00000011 (*1) DIVR1[R/W] 00000000 (*1) 000470H | 00047CH Interrupt Control unit - 000480H RSRR [R/W] 10000000 (*2) 000484H CLKR [R/W] 00000000 (*1) Clock Control unit OSCCR [R/W] XXXXXXX0 000488H 00048CH WPCR [R/W] B 00---000 時計タイマ 000490H OSCR [R/W] B 00---000 メイン発振安定時 間待ちタイマ 653 付録 表 A-1 I/O マップ (8 / 12) Register Address Block +0 +1 000494H | 0005FCH +2 +3 - Reserved 000600H - - - - 000604H - - - - 000608H - - - - 00060CH - - - - 000610H - - - - 000614H - - - - 000618H - - - - 00061CH - - - - 000620H - 000624H - 000628H | 00063FH - 654 T-unit Port Direction Register T-unit Port Function Register Reserved 付録 A I/O マップ 表 A-1 I/O マップ (9 / 12) Register Address Block +0 +1 +2 +3 000640H ASR0 [R/W] 00000000 00000000 (*1) ACR0 [R/W] 1111XX00 00000000 (*1) 000644H ASR1 [R/W] XXXXXXXX XXXXXXXX (*1) ACR1 [R/W] XXXXXXXX XXXXXXXX (*1) 000648H ASR2 [R/W] XXXXXXXX XXXXXXXX (*1) ACR2 [R/W] XXXXXXXX XXXXXXXX (*1) 00064CH ASR3 [R/W] XXXXXXXX XXXXXXXX (*1) ACR3 [R/W] XXXXXXXX XXXXXXXX (*1) 000650H ASR4 [R/W] XXXXXXXX XXXXXXXX (*1) ACR4 [R/W] XXXXXXXX XXXXXXXX (*1) 000654H ASR5 [R/W] XXXXXXXX XXXXXXXX (*1) ACR5 [R/W] XXXXXXXX XXXXXXXX (*1) 000658H ASR6 [R/W] XXXXXXXX XXXXXXXX (*1) ACR6 [R/W] XXXXXXXX XXXXXXXX (*1) 00065CH ASR7 [R/W] XXXXXXXX XXXXXXXX (*1) ACR7 [R/W] XXXXXXXX XXXXXXXX (*1) 000660H AWR0 [R/W] 01111111 111111111 (*1) AWR1 [R/W] XXXXXXXX XXXXXXXX (*1) 000664H AWR2 [R/W] XXXXXXXX XXXXXXXX (*1) AWR3 [R/W] XXXXXXXX XXXXXXXX (*1) 000668H AWR4 [R/W] XXXXXXXX XXXXXXXX (*1) AWR5 [R/W] XXXXXXXX XXXXXXXX (*1) 00066CH AWR6 [R/W] XXXXXXXX XXXXXXXX (*1) AWR7 [R/W] XXXXXXXX XXXXXXXX (*1) 000670H - 000674H - 000678H IOWR0 [R/W] XXXXXXXX IOWR1 [R/W] XXXXXXXX 00067CH 000680H - - TCR [R/W] 00000000 CSER [R/W] 00000001 CSHR [R/W] 11111111 000684H - 000684H | 0007F8H - 0007FCH IOWR2 [R/W] XXXXXXXX T-unit - MODR [W] XXXXXXXX Reserved - - 655 付録 表 A-1 I/O マップ (10 / 12) Register Address Block +0 +1 000800H | 000AFCH +2 +3 - Reserved 000B00H ESTS0 [R/W] X0000000 ESTS1 [R/W] XXXXXXXX ESTS2 [R] 1XXXXXXX - 000B04H ECTL0 [R/W] 0X000000 ECTL1 [R/W] 00000000 ECTL2 [W] 000X0000 ECTL3 [R/W] 00X00X11 000B08H ECNT0 [W] XXXXXXXX ECNT1 [W] XXXXXXXX EUSA [W] XXX00000 EDTC [W] 0000XXXX 000B0CH EWP1 [R] 00000000 00000000 - 000B10H EDTR0 [W] XXXXXXXX XXXXXXXX EDTR1 [W] XXXXXXXX XXXXXXXX 000B14H | 000B1CH - 000B20H EIAC [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B24H EIA1 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B28H EIA2 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B2CH EIA3 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B30H EIA4 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B34H EIA5 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B38H EIA6 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B3CH EIA7 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B40H EDTA [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B44H EDTM [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B48H EOAC [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 656 DSU 付録 A I/O マップ 表 A-1 I/O マップ (11 / 12) Register Address Block +0 +1 +2 +3 000B4CH EOA1 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B50H EPCR [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B54H EPSR [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B58H EIAM0 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B5CH EIAM1 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B60H EOAM0/EODM0 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B64H EOAM1/EODM1 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B68H EODC [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B6CH EOD1 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000B70H | 000FFCH - 001000H DMASA0 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 001004H DMADA0 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 001008H DMASA1 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 00100CH DMADA1 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 001010H DMASA2 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 001014H DMADA2 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 001018H DMASA3 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 00101CH DMADA3 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 001020H DMASA4 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DSU Reserved DMAC 657 付録 表 A-1 I/O マップ (12 / 12) Register Address Block +0 +1 +2 +3 001024H DMADA4 [R/W] XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX 001028H | 006FFCH - 007000H FLCR [R/W] 0110_X000 007004H FLWC [R/W] 0001_0011 DMAC Reserved Program FLASH I/F 007008H | 00707CH - - Reserved 007080H | 0070FCH Reserved 007100H FNCR [R/W] 0110_X000 007104H FNWC [R/W] 0001_0011 FONT FLASH I/F - *1:リセットレベルで初期値が異なるレジスタです。表示は , INIT レベルのものです。 *2:リセットレベルで初期値が異なるレジスタです。表示は , INIT 端子による INIT レベルのもので す。 658 付録 A I/O マップ 表 A-2 I/O マップ (1 / 4) Register Address Block +0 +1 +2 00050000H HR (HcRevision) [R] 00000000_00000000_00000001_00010000 00050004H HC (HcControl) [R/W] 00000000_00000000_00000000_00000000 00050008H HCS (HcCommandStatus) [R/W] 00000000_00000000_00000000_00000000 0005000CH HIS (HcInterruptStatus) [R/W] 00000000_00000000_00000000_00000000 00050010H HIE (HcInterruptEnable) [R/W] 00000000_00000000_00000000_00000000 00050014H HID (HcInterruptDisable) [R/W] 00000000_00000000_00000000_00000000 00050018H HHCCA (HcHCCA) [R/W] 00000000_00000000_00000000_00000000 0005000CH HPCED (HcPeriodCurrentED) [R/W] 00000000_00000000_00000000_00000000 00050020H HCHED (HcControlHeadED) [R/W] 00000000_00000000_00000000_00000000 00050024H HCCED (HcControlCurrentED) [R/W] 00000000_00000000_00000000_00000000 00050028H HBHED (HcBulkHeadED) [R/W] 00000000_00000000_00000000_00000000 0005002CH HBCED (HcBulkCurrentED) [R/W] 00000000_00000000_00000000_00000000 00050030H HDH (HcDoneHead) [R/W] 00000000_00000000_00000000_00000000 00050034H HFI (HcFmInterval) [R/W] 00000000_00000000_00101110_11011111 00050038H HFR (HcFmRemeining) [R] 00000000_00000000_00000000_00000000 0005003CH HFN (HcFmNumber) [R] 00000000_00000000_00000000_00000000 00050040H HPS (HcPeriodicStart) [R/W] 00000000_00000000_00000000_00000000 00050044H HLST (HcLSThreshold) [R/W] 00000000_00000000_00000110_00101000 00050048H HRDA (HcRhDescriptorA) [R/W] 00000001_00000000_00000000_00000010 +3 USB Host 659 付録 表 A-2 I/O マップ (2 / 4) Register Address Block +0 +1 +2 +3 0005004CH HRDB (HcRhDescriptorB) [R/W] 00000000_00000000_00000000_00000000 00050050H HRS (HcRhStatus) [R/W] 00000000_00000000_00000000_000000X0 00050054H HRPS1 (HcRhPortStatus[1]) [R/W] 00000000_00000000_00000000_00000X00 00050058H HRPS2 (HcRhPortStatus[2]) [R/W] 00000000_00000000_00000000_00000X00 0005005CH | 00057FFFH RESERVED 00058000H | 00059FFFH SRAM 8KB 0005A000H | 0005FFFFH RESERVED 00060000H FIFO0o [R] XXXXXXXX_XXXXXXXX FIFO0i [W] XXXXXXXX_XXXXXXXX 00060004H FIFO1 [R] XXXXXXXX_XXXXXXXX FIFO2 [W] XXXXXXXX_XXXXXXXX 00060008H FIFO3 [R] XXXXXXXX_XXXXXXXX - 0006000CH | 0006001FH -------RESERVED 00060020H RESERVED CONT1 [R/W] 000XX0XX_XXX00000 00060024H CONT2 [R/W] XXXXXXXX_XXX00000 CONT3 [R/W] XXXXXXXX_XXX00000 00060028H CONT4 [R/W] XXXXXXXX_XXX00000 CONT5 [R/W] XXXXXXXX_XXXX00XX 0006002CH CONT6 [R/W] XXXXXXXX_XXXX00XX CONT7 [R/W] XXXXXXXX_XXX00000 00060030H CONT8 [R/W] XXXXXXXX_XXX00000 CONT9 [R/W] 0XX0XXX_0XX0000 00060034H CONT10 [R/W] 0XXX000X_X000000X TTSIZE [R/W] 00010001_00010001 660 USB Host USB Function 付録 A I/O マップ 表 A-2 I/O マップ (3 / 4) Register Address Block +0 00060038H +1 +2 TRSIZE [R/W] 00010001_00010001 +3 RESERVED -------RESERVED 0006003CH 00060040H RSIZE0 [R] XXXXXXXX_XXXX0000 RESERVED 00060044H RSIZE1 [R] XXXXXXXX_X0000000 RESERVED 00060048H | 0006005FH 00060060H -------RESERVED RESERVED ST1 [R/W] XXXXXX00_00000000 -------RESERVED 00060064H 00060068H ST2 [R] XXXXXXXX_XXX00000 ST3 [R/W] 00XXXXXX_XXX00000 0006006CH ST4 [R/W] XXXXX000_00000000 ST5 [R/W] 0XX00XXX_XX000000 00060070H | 0006FFFBH 0006FFFCH 00070000H | 0007FFFFH USB Function -------RESERVED USBIO -------- RESET 000-0--- - - -------RESERVED RESERVED 00078000H OSD_VADR [R/W] XXXXXXXX_XXXXXXXX OSD_CD1 [R/W] XXXXXXXX_XXXXXXXX 00078004H OSD_CD2 [R/W] XXXXXXXX_XXXXXXXX OSD_RCD1 [R/W] XXXXXXXX_XXXXXXXX 00078008H OSD_RCD2 [R/W] XXXXXXXX_XXXXXXXX OSD_SOC1 [R/W] XXXXXXXX_0000XXXX 0007800CH OSD_SOC2 [R/W] XXXXXXXX_XXXXXXXX OSD_VDPC [R/W] XXXXXXXX_XXXXXXXX 00078010H OSD_HDPC [R/W] XXXXXXXX_XXXXXXXX OSD_CVSC [R/W] XXXXXXXX_XXXXXXXX 00078014H OSD_SBFCC [R/W] XXXXXXXX_XXXXXXXX OSD_THCC [R/W] XXXXXXXX_XXXXXXXX OSDC 661 付録 表 A-2 I/O マップ (4 / 4) Register Address Block +0 +1 +2 +3 00078018H OSD_GFCC [R/W] XXXXXXXX_XXXXXXXX OSD_SBCC1 [R/W] XXXXXXXX_XXXXXXXX 0007801CH OSD_SBCC2 [R/W] XXXXXXXX_XXXXXXXX OSD_SPCC1 [R/W] XXXXXXXX_XXXXXXXX 00078020H OSD_SPCC2 [R/W] XXXXXXXX_XXXXXXXX OSD_SPCC3 [R/W] XXXXXXXX_XXXXXXXX 00078024H OSD_SPCC4 [R/W] XXXXXXXX_XXXXXXXX OSD_SYNCC [R/W] XXXXXXXX_XXXXXXXX 00078028H OSD_DCLKC1 [R/W] XXXXXXXX_XXXXXXXX OSD_DCLKC2 [R/W] XXXXXXXX_XXXXXXXX 0007802CH OSD_DCLKC3 [R/W] XXXXXXXX_XXXXXXXX OSD_IOC1 [R/W] XXXXXXXX_XXXXXXXX 00078030H OSD_IOC2 [R/W] XXXXXXXX_XXXXXXXX OSD_DPC1 [R/W] XXXXXXXX_XXXXXXXX 00078034H OSD_DPC2 [R/W] XXXXXXXX_XXXXXXXX OSD_DPC3 [R/W] XXXXXXXX_XXXXXXXX 00078038H OSD_DPC4 [R/W] XXXXXXXX_XXXXXXXX OSD_IRC [R/W] XXXXXXXX_XXXXXXXX 0007803CH OSD_PLT0 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT1 [R/W] XXXXXXXX_XXXXXXXX 00078040H OSD_PLT2 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT3 [R/W] XXXXXXXX_XXXXXXXX 00078044H OSD_PLT4 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT5 [R/W] XXXXXXXX_XXXXXXXX 00078048H OSD_PLT6 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT7 [R/W] XXXXXXXX_XXXXXXXX 0007804CH OSD_PLT8 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT9 [R/W] XXXXXXXX_XXXXXXXX 00078050H OSD_PLT10 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT11 [R/W] XXXXXXXX_XXXXXXXX 00078054H OSD_PLT12 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT13 [R/W] XXXXXXXX_XXXXXXXX 00078058H OSD_PLT14 [R/W] XXXXXXXX_XXXXXXXX OSD_PLT15 [R/W] XXXXXXXX_XXXXXXXX 0007805CH OSD_ACT1 [R/W] XXXXXXXX_XXXXXXXX OSD_ACT2 [R/W] XXXXXXXX_XXXXXXXX OSDC 00078060H | 0007FFFFH 662 -------RESERVED RESERVED 付録 B 割込みベクタ 付録 B 割込みベクタ 付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには , MB91310 の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載されて います。 ■ 割込みベクタ 付表 B-1 割込みベクタテーブル (1 / 3) 割込み番号 オフセッ ト TBR デフォル ト のアドレス RN 10 進 16 進 割込み レベル リセット 0 00 − 3FCH 000FFFFCH − モードベクタ 1 01 − 3F8H 000FFFF8H − システム予約 2 02 − 3F4H 000FFFF4H − システム予約 3 03 − 3F0H 000FFFF0H − システム予約 4 04 − 3ECH 000FFFECH − システム予約 5 05 − 3E8H 000FFFE8H − システム予約 6 06 − 3E4H 000FFFE4H − コプロセッサ不在トラップ 7 07 − 3E0H 000FFFE0H − コプロセッサエラートラップ 8 08 − 3DCH 000FFFDCH − INTE 命令 9 09 − 3D8H 000FFFD8H − 命令ブレーク例外 10 0A − 3D4H 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 6 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 7 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H 11 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H 12 外部割込み 4 (USB-function) 20 14 ICR04 3ACH 000FFFACH − 外部割込み 5 (USB-Host) 21 15 ICR05 3A8H 000FFFA8H − 外部割込み 6 (OSDC) 22 16 ICR06 3A4H 000FFFA4H − 外部割込み 7 23 17 ICR07 3A0H 000FFFA0H − リロードタイマ 0 24 18 ICR08 39CH 000FFF9CH 8 割込み要因 663 付録 付表 B-1 割込みベクタテーブル (2 / 3) 割込み番号 オフセッ ト TBR デフォル ト のアドレス RN 10 進 16 進 割込み レベル リロードタイマ 1 25 19 ICR09 398H 000FFF98H 9 リロードタイマ 2 26 1A ICR10 394H 000FFF94H 10 UART0 ( 受信完了 ) 27 1B ICR11 390H 000FFF90H 0 UART1 ( 受信完了 ) 28 1C ICR12 38CH 000FFF8CH 1 UART2 ( 受信完了 ) 29 1D ICR13 388H 000FFF88H 2 UART0 ( 送信完了 ) 30 1E ICR14 384H 000FFF84H 3 UART1 ( 送信完了 ) 31 1F ICR15 380H 000FFF80H 4 UART2 ( 送信完了 ) 32 20 ICR16 37CH 000FFF7CH 5 DMAC0 ( 終了 , エラー ) 33 21 ICR17 378H 000FFF78H − DMAC1 ( 終了 , エラー ) 34 22 ICR18 374H 000FFF74H − DMAC2 ( 終了 , エラー ) 35 23 ICR19 370H 000FFF70H − DMAC3 ( 終了 , エラー ) 36 24 ICR20 36CH 000FFF6CH − DMAC4 ( 終了 , エラー ) 37 25 ICR21 368H 000FFF68H − A/D 38 26 ICR22 364H 000FFF64H − PPG0 39 27 ICR23 360H 000FFF60H 13 PPG1 40 28 ICR24 35CH 000FFF5CH 14 PPG2 41 29 ICR25 358H 000FFF58H 15 PPG3 42 2A ICR26 354H 000FFF54H − PWC 43 2B ICR27 350H 000FFF50H − システム予約 44 2C ICR28 34CH 000FFF4CH − システム予約 45 2D ICR29 348H 000FFF48H − メイン発振待ち 46 2E ICR30 344H 000FFF44H − タイムベースタイマオーバフ ロー 47 2F ICR31 340H 000FFF40H − システム予約 48 30 ICR32 33CH 000FFF3CH − 時計タイマ 49 31 ICR33 338H 000FFF38H − I2C ch.0 50 32 ICR34 334H 000FFF34H − I2C ch.1 51 33 ICR35 330H 000FFF30H − I2C ch.2 52 34 ICR36 32CH 000FFF2CH − I C ch.3 53 35 ICR37 328H 000FFF28H − UART3 ( 受信完了 ) 54 36 ICR38 324H 000FFF24H − UART4 ( 受信完了 ) 55 37 ICR39 320H 000FFF20H − UART3 ( 送信完了 ) 56 38 ICR40 31CH 000FFF1CH − 割込み要因 2 664 付録 B 割込みベクタ 付表 B-1 割込みベクタテーブル (3 / 3) 割込み番号 オフセッ ト TBR デフォル ト のアドレス RN 39 ICR41 318H 000FFF18H − 多機能タイマ 0 58 3A ICR42 314H 000FFF14H − 多機能タイマ 1 59 3B ICR43 310H 000FFF10H − 多機能タイマ 2 60 3C ICR44 30CH 000FFF0CH − 多機能タイマ 3 61 3D ICR45 308H 000FFF08H − システム予約 62 3E ICR46 304H 000FFF04H − 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H − システム予約 (REALOS にて使用 ) 64 40 − 2FCH 000FFEFCH − システム予約 (REALOS にて使用 ) 65 41 − 2F8H 000FFEF8H − システム予約 66 42 − 2F4H 000FFEF4H − システム予約 67 43 − 2F0H 000FFEF0H − システム予約 68 44 − 2ECH 000FFEECH − システム予約 69 45 − 2E8H 000FFEE8H − システム予約 70 46 − 2E4H 000FFEE4H − システム予約 71 47 − 2E0H 000FFEE0H − システム予約 72 48 − 2DCH 000FFEDCH − システム予約 73 49 − 2D8H 000FFED8H − システム予約 74 4A − 2D4H 000FFED4H − システム予約 75 4B − 2D0H 000FFED0H − システム予約 76 4C − 2CCH 000FFECCH − システム予約 77 4D − 2C8H 000FFEC8H − システム予約 78 4E − 2C4H 000FFEC4H − システム予約 79 4F − 2C0H 000FFEC0H − 80 50 2BCH 000FFEBCH INT 命令で使用 255 FF − ∼ 57 ∼ UART4 ( 受信完了 ) ∼ 16 進 ∼ 10 進 割込み レベル 割込み要因 000H 000FFC00H − 665 付録 付録 C ドットクロック生成用 PLL について ドットクロック生成用の内蔵 PLL には , 発振周波数に応じた 6 個の VCO がありま す。 ■ ドットクロック生成用 PLL ドットクロック生成用の内蔵 PLL は , 下図のような LPF を CPO 端子に接続する必要が あります。 図 C-1 CPO 端子接続 R CPO C2 C1 LPF の定数については , 発振周波数に依存しますので , 推奨値に関しては , お問い合わ せください。下記に例を示します。 HSYNC (kHz) PLL (MHz) 分周比 出力ク ロック (MHz) VCO n m 15.75 1204 2 37.93 18.96 VCO1 31.5 1304 1 41.08 41.08 33.75 1320 1 44.55 45 1404 1 48 1428 1 CHG [1:0] 外部 LPF R (Ω) C1 (µF) C2 (pF) 10 915 0.22 None VCO2 10 915 0.22 None 44.55 VCO2 10 915 0.22 None 63.18 63.18 VCO3 10 2K 0.068 2700 68.54 68.54 VCO3 10 2K 0.068 2700 ● ドットクロックについて OSDC マクロ未使用の場合は DCKO 端子に "0" レベルを入力してください 。 666 付録 D USB クロックについて 付録 D USB クロックについて USB クロックは 48MHz の外付け水晶発振子による発振 , または外部からの 48MHz クロック入力によって供給されます。 ■ RESET (USB クロック ) 外付け水晶発振子の場合 , その発振の制御は CPU 用水晶発振子と同じ制御になります。 つまり , 以下のモードの時は USB クロックの水晶発振は停止します。 • メインクロックモードのストップモード時 • サブクロックモード時 上記モードへの遷移時と上記モードからの復帰時は USB クロック発振が安定していな いため , USB ホストマクロが「CLOCK PULSE WIDTH ERROR」となる事があります。 この問題を回避するため , 上記状態遷移前に USB ホストマクロのソフトウェアリセッ ト発生レジスタによって USB ホストをリセット状態にしておいてください。 また , USB マクロ未使用の場合は X0B 端子には "0" レベルを入力してください 図 D-1 USB クロックの構成 CS2X領域 bit 7 6 USB-F0x0006FFFE OVRCUR RST 0 0 5 USB-HRST 0 4 − 3 OSDRST 0 2 1 0 − − − 初期値 OVRCUR:USB ホストの過電流検出ポートへ伝わります。 USB-F-RST:USB ファンクションのリセット信号です。"1" の書込みでリセット , "0" の 書込みでクリアします。 USB-H-RST:USB ホストのリセット信号です。"1" の書込みでリセット , "0" の書込みで クリアします。 MS-RST: メモリスティックのリセット信号です。"1" の書込みでリセット , "0" の書き 込みでクリアします。 OSD-RST:OSDC のリセット信号です。"1" の書込みでリセット , "0" の書込みでクリア します。 667 付録 ( 注意事項 ) USB ホストと OSDC は , 対応するリセットビットを "1" に設定している時にレジスタア クセスを行なうと , 応答が返らないため , CPU が停止してしまいます ( 外部インタフェー スを RDY 許可で使用するため ) 。 また , USB ホスト・OSDC へのクロックが供給されていない状態でも同様に CPU が停止 してしまいます。 USB ホスト・OSDC へアクセスを行なう時は , 下記の状態で使用してください。 • 対応するリセットビットが "0" クリアされている状態 • 対応するクロックが供給されている状態 668 付録 E USB IO 低消費電力モードについて 付録 E USB IO 低消費電力モードについて MB91310 シリーズの USB IO には USB を使用しない場合のための低消費電力モー ドが搭載されています。低消費電力モードは下記低消費電力モードレジスタを使用 して設定します。 ■ USBIOLPW (USB IO 低消費電力モード設定レジスタ ) CS2X area bit 7 0 0x0006FFFC 初期値 0x00 / Write Only ● 使用方法 0x0006FFFC 番地にデータ 0x55 をライトすることで USB IO を低消費電力モードに遷 移させることができます。本レジスタは初期値は 0x00 となっており , USB 動作時は 0x00 にする必要があります。低消費電力モードから復帰し USB 動作を開始する前に必 ず 0x0006FFFC 番地に 0x00 を書き込んでください。 669 付録 付録 F 外部バスインタフェースの設定について 本品種では , USB ホスト・USB ファンクション・OSDC がチップ内部で外部バスイ ンタフェース経由で接続されています。 ■ 外部バスインタフェースの設定について これらのマクロへアクセスするために , 外部バスインタフェースの各種レジスタを設 定する必要があります。 以下に , 各レジスタの設定概要と , 推奨設定例を示します。 ● CS0 領域 : デフォルト領域 ( 未使用 ) CS0 領域は , リセット解除後に 4GB の全領域を示すようになっていますので , 他のチッ プセレクト領域と重ならない領域に設定します。 設定例では 0x0020_0000 以降の領域に設定しています。 ● CS1 領域 :USB ホスト , USB ホスト用メモリが接続されています。 USB ホストは 32bit 幅のマクロで , リトルエンディアンで動作し , 外部レディが必要で すので , DBW を 10(32bit), TYP を 0001( 外部レディあり ), LEND を "1"( リトルエンディ アン ), 自動ウェイト (W15 ∼ W12) を 01(1 ウェイト ) としています。その他に , 非同期 ライトストローブ (W03), ライトリカバリサイクル (W05, W04), リードライトアイドル サイクル (W07, W06) を設定しています。 アドレスは 0x0005_0000 からの最低領域サイズ 64KB を設定しています。 ● CS2 領域 :USB ファンクションが接続されています。 USB ファンクションは 16bit 幅のマクロで , DBW を 01(16bit), TYP を 0000( 外部レディ なし ), 自動ウェイトを 02(2 ウェイト ) としています。 アドレスは 0x0006_0000 からの最低領域サイズ 64KB を設定しています。 ● CS3 領域 :OSDC が接続されています。 各マクロは 16bit 幅で , OSDC は外部レディが必要ですので , DBW を 01(16bit), TYP を 0001( 外部レディあり ), 自動ウェイトを 00(0 ウェイト ) としています。 アドレスは 0x0007_0000 からの最低領域サイズ 64KB を設定しています。 670 付録 F 外部バスインタフェースの設定について ■ 推奨設定例 // ** start initial header program // CS0 : not use ldi #0x5400, r3 ldi sth ldi ldi #_ACR0, r4 r3, @r4 #_AWR0, r6 #0x0098, r5 sth r5, @r6 ldi #_ASR0, r7 ldi #0x0020, r5 sth r5, @r7 // CS1 : USB-Host(32bit) ldi #0x0831, r3 ldi sth ldi ldi sth ldi ldi #_ACR1, r8 r3, @r8 #0x0005, r3 #_ASR1, r9 r3, @r9 #_AWR1, r4 #0x1098, r5 sth r5, @r4 // CS2 : USB-Func(16bit) ldi #0x0420, r3 ldi sth ldi ldi sth ldi ldi #_ACR2, r8 r3, @r8 #0x0006, r3 #_ASR2, r9 r3, @r9 #_AWR2, r4 #0x200D, r5 sth r5, @r4 // CS3 : OSDC(16bit) ldi #0x0421, r3 ldi sth ldi ldi sth ldi ldi #_ACR3, r8 r3, @r8 #0x0007, r3 #_ASR3, r9 r3, @r9 #_AWR3, r4 #0x0098, r5 sth r5, @r4 ldi ldi stb #_CSER, r0 #0x0f, r1 r1, @r0 // ASZ[3:0]=0101, DBW[1:0]=01, BST[1:0]=00, // SREN=0, PFEN=0, WREN=0, LEND=0, TYP[3:0]=0000 // ACR0 for CS0 area access mode // set bus-width & area size // AWR0 for CS0 area access wait // W02 = 0: CS delay = 0 // W01 = 1: RD delay = 1 // W05, 04=01: WR, WR delay = 0 // W07, 06=10: RD, WR delay = 2 // W15-12=0000: auto wait = 0 // set bus-wait // ASR0 for CS0 area base address // set CS0 0x0020_0000 - 0x003f_ffff // ASZ[3:0]=0000, DBW[1:0]=10, BST[1:0]=00, // SREN=0, PFEN=0, WREN=1, LEND=1, TYP[3:0]=0001 // CS1 0x0005_0000-0x0005_ffff // AWR1 for CS1 area access wait // W02 = 0: CS delay = 0 // W01 = 1: RD delay = 1 // W05, 04=01: WR, WR delay = 0 // W07, 06=10: RD, WR delay = 2 // W15-12=0001: auto wait = 1 // set bus-wait // ASZ[3:0]=0000, DBW[1:0]=01, BST[1:0]=00, // SREN=0, PFEN=0, WREN=1, LEND=0, TYP[3:0]=0000 // CS2 0x0006_0000-0x0006_ffff // AWR2 for CS2 area access wait // W02 = 0: CS delay = 0 // W01 = 1: RD delay = 1 // W05, 04=00: WR, WR delay = 0 // W07, 06=00: RD, WR delay = 0 // W15-12=0010: auto wait = 2 // set bus-wait // ASZ[3:0]=0000, DBW[1:0]=01, BST[1:0]=00, // SREN=0, PFEN=0, WREN=1, LEND=0, TYP[3:0]=0001 // CS3 0x0007_0000-0x0007_ffff // AWR3 for CS3 area access wait // W02 = 0: CS delay = 0 // W01 = 1: RD delay = 1 // W05, 04=01: WR, WR delay = 0 // W07, 06=10: RD, WR delay = 2 // W15-12=0000: auto wait = 0 // set bus-wait // // CS0, CS1, CS2, CS3 enable 671 付録 付録 G 端子状態一覧 表 G-1 に端子状態一覧表を示します。 ■ 端子状態一覧 表 G-1 端子状態一覧 ( 1 / 2 ) Pin name 指定機能名 機能名 1 DOCKI − 2 FH − SLEEP HZ=0 HZ=1 INTX=L 時 INTX=H 時 DOCKI 入力状態 入力状態 入力状態 入力状態 入力状態 FH "L" 出力 "L" 出力 直前状態保持 直前状態保持 直前状態保持 入力状態 入力状態 入力状態 入力状態 入力状態 出力 Hi-Z 入力可 出力 Hi-Z 入力可 直前状態保持 直前状態保持 出力 Hi-Z 入力 0 固定 3 VSYNC − VSYNC 4 HSYNC − HSYNC 36 P00 SCL0 P00 37 P01 SDA0 P01 38 P02 SCL1 P02 39 P03 SDA1 P03 46 P04 SCL2 P04 47 P05 SDA2 P05 48 P06 SCL3 P06 49 P07 SCL4 P07 50 P10 SDA3 P10 51 P11 SDA4 P11 52 P12 SI0 P12 53 P13 SO0 P13 54 P14 SCK0 P14 55 P15 SI1 P15 56 P16 SO1 P16 57 P17 SCK1 P17 58 P20 SI2 P20 59 P21 SO2 P21 60 P22 SCK2 P22 61 P23 SI3 P23 62 P24 SO3 P24 63 P25 SCK3 P25 64 P30 SI4/TIN0 P30 65 P31 SO4/TIN1 P31 66 P32 SCK4/TIN2 P32 67 P33 TO0 P33 68 P34 TO1 P34 69 P35 TO2 P35 70 P36 RIN P36 71 P40 TMO0 P40 72 P41 TMO1 P41 73 P42 TMO2 P42 672 STOP 初期値 備考 付録 G 端子状態一覧 表 G-1 端子状態一覧 ( 2 / 2 ) Pin name 指定機能名 74 P43 TMO3 P43 80 P44 PPG0 P44 81 P45 PPG1 P45 82 P46 PPG2 P46 83 P47 PPG3 P47 88 P50 TMI0 P50 89 P51 TMI1 P51 90 P52 TMI2 P52 91 P53 TMI3 P53 92 P54 TRG0 P54 93 P55 TRG1 P55 94 P56 TRG2 P56 95 P57 TRG3 P57 96 P60 ATRG P60 97 P61 - P61 98 P62 INT0 P62 99 P63 INT1 P63 100 P64 INT2 P64 101 P65 INT3 P65 機能名 102 NMI − NMI 109 ICS0 − ICS0 110 ICS1 − ICS1 111 ICS2 − ICS2 112 ICD0 − ICD0 113 ICD1 − ICD1 114 ICD2 − ICD2 115 ICD3 − ICD3 116 P70 − P70 117 P71 − P71 118 P72 − P72 119 P73 − P73 120 P74 − P74 126 UDM − UDM 127 UDP − UDP 128 UHM − UHM 129 UHP − UHP 130 B0 − B0 131 B1 − B1 132 B2 − B2 133 G0 − G0 134 G1 − G1 135 G2 − G2 136 R0 − R0 137 R1 − R1 138 R2 − R2 142 VOB2 − VOB2 143 VOB1 − VOB1 144 DCKO − DCKO STOP 初期値 INTX=L 時 出力 Hi-Z 入力可 SLEEP INTX=H 時 出力 Hi-Z 入力可 HZ=0 HZ=1 直前状態保持 出力 Hi-Z 入力 0 固定 直前状態保持 P: 直前状態保持 F: 入力可 入力状態 入力状態 備考 入力状態 入力状態 P: 出力 Hi-Z F: 入力可 入力状態 MB91F312 ではオープン端 子です。 出力 Hi-Z 入力可 出力 Hi-Z 入力 0 固定 出力 Hi-Z 入力可 直前状態保持 直前状態保持 直前状態保持 "L" 出力 "L" 出力 " 673 付録 付録 H 命令一覧 FR ファミリの命令一覧表を示します。その前に , 命令一覧を理解するために次の事 項について説明します。 ・命令一覧表の読み方 ・アドレッシングモードの記号 ・命令フォーマット ■ 命令一覧表の読み方 ニーモニック OP 型 CYCLE NZVC 動作 備考 ADD Rj, Rj A AG 1 CCCC Ri+Rj → Rj *ADD #s5, Rj C A4 1 CCCC Ri+s5 → Ri , , , , , , , , , , , , ↓ 3. ↓ 4. ↓ 5. ↓ 6. ↓ 7. ↓ 1. ↓ 2. 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: セット N : ネガティブフラグ Z : ゼロフラグ V : オーバフラグ C: キャリフラグ 7. 命令動作が表記されています。 674 付録 H 命令一覧 ■ アドレッシングモードの記号 表 H-1 アドレッシングモードの記号説明 記号 意味 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 ∼ 0X1FC4 の倍数のみ ) @(R14, disp9) レジスタ相対間接 (disp9:-0X100 ∼ 0XFE2 の倍数のみ ) @(R14, disp8) レジスタ相対間接 (disp8:-0X80 ∼ 0X7F) @(R15, udisp6) レジスタ相対間接 (udisp6:0 ∼ 604 の倍数のみ ) @Ri+ ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP) @R13+ ポストインクリメント付きレジスタ間接 (R13, AC) @SP+ スタックポップ @-SP スタックプッシュ (reglist) レジスタリスト 675 付録 ■ 命令フォーマット 表 H-2 命令フォーマット 型 命令フォーマット A B C C’ D E F 676 ADD, ADDN, CMP, LSL, LSR, ASR 命令のみ 付録 H 命令一覧 H.1 FR ファミリの命令一覧表 FR ファミリの命令一覧表を下記の命令順に記載します。 ■ FR ファミリの命令一覧表 表 H.1-1 加減算命令 表 H.1-2 比較演算命令 表 H.1-3 論理演算命令 表 H.1-4 ビット操作命令 表 H.1-5 乗除算命令 表 H.1-6 シフト命令 表 H.1-7 即値セット /16 ビット /32 ビット即値転送命令 表 H.1-8 メモリロード命令 表 H.1-9 メモリストア命令 表 H.1-10 レジスタ間転送命令 表 H.1-11 通常分岐 ( 遅延なし ) 命令 表 H.1-12 遅延分岐命令 表 H.1-13 その他の命令 表 H.1-14 20 ビット通常分岐マクロ命令 表 H.1-15 20 ビット遅延分岐マクロ命令 表 H.1-16 32 ビット通常分岐マクロ命令 表 H.1-17 32 ビット遅延分岐マクロ命令 表 H.1-18 ダイレクトアドレッシング命令 表 H.1-19 リソース命令 表 H.1-20 コプロセッサ制御命令 677 付録 ■ 加減算命令 表 H.1-1 加減算命令 ニーモニック 型 OP CYCLE NZVC 動作 ADD Rj, Ri A A6 1 CCCC Ri+Rj → Ri *ADD #s5, Ri C' A4 1 CCCC Ri+s5 → Ri アセンブラでは上位 1 ビットを符号と見る ADD #u4, Ri C A4 1 CCCC Ri+extu(i4) → Ri ゼロ拡張 ADD2 #u4, Ri C A5 1 CCCC Ri+extu(i4) → Ri マイナス拡張 ADDCRj, Ri A A7 1 CCCC Ri+Rj+c → Ri キャリ付き加算 備考 ADDN Rj, Ri A A2 1 ---- Ri+Rj → Ri *ADDN #s5, Ri C' A0 1 ---- Ri+s5 → Ri アセンブラでは上位 1 ビットを符号と見る ADDN #u4, Ri C A0 1 ---- Ri+extu(i4) → Ri ゼロ拡張 Ri+extu(i4) → Ri マイナス拡張 ADDN2 #u4, Ri C A1 1 ---- SUB Rj, Ri A AC 1 CCCC RiRj → Ri SUBC Rj, Ri A AD 1 CCCC RiRj c → Ri SUBN Rj, Ri A AE 1 ---- Ri-Rj → Ri キャリ付き減算 ■ 比較演算命令 表 H.1-2 比較演算命令 ニーモニック 型 OP CYCLE NZVC 動作 CMP Rj, Ri *CMP #s5, Ri A C' AA A8 1 1 CCCC CCCC Ri-Rj Ri-s5 CMP #u4, Ri C A8 1 CCCC Ri-extu(i4) ゼロ拡張 CMP2 #u4, Ri C A9 1 CCCC Ri-extu(i4) マイナス拡張 備考 アセンブラでは上位 1 ビットを符号と見る ■ 論理演算命令 表 H.1-3 論理演算命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 AND Rj, Ri A 82 1 CC-- Ri &=Rj ワード AND Rj, @Ri A 84 1+2a CC-- (Ri) &=Rj ワード ANDH Rj, @Ri A 85 1+2a CC-- (Ri) &=Rj ハーフワード ANDB Rj, @Ri A 86 1+2a CC-- (Ri) &=Rj バイト OR Rj, Ri A 92 1 CC-- Ri | =Rj ワード OR Rj, @Ri A 94 1+2a CC-- (Ri) | =Rj ワード ORH Rj, @Ri A 95 1+2a CC-- (Ri) | =Rj ハーフワード ORB Rj, @Ri A 96 1+2a CC-- (Ri) | =Rj バイト EOR Rj, Ri A 9A 1 CC-- Ri ^ =Rj ワード EOR Rj, @Ri A 9C 1+2a CC-- (Ri) ^ =Rj ワード EORH Rj, @Ri A 9D 1+2a CC-- (Ri) ^ =Rj ハーフワード EORB Rj, @Ri A 9E 1+2a CC-- (Ri) ^ =Rj バイト 678 付録 H 命令一覧 ■ ビット操作命令 表 H.1-4 ビット操作命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 BANDL #u4, @Ri C 80 1+2a ---- (Ri) &=(0xF0+u4) 下位 4 ビットを操作 C 81 1+2a ---- (Ri) &=((u4< <4)+0x0F) 上位 4 ビットを操作 ---- (Ri) &=u8 BANDH #u4, @Ri *BAND #u8, @Ri *1 BORL #u4, @Ri C 90 1+2a ---- (Ri) | =u4 下位 4 ビットを操作 BORH #u4, @Ri C 91 1+2a ---- (Ri) | =(u4< <4) 上位 4 ビットを操作 ---- (Ri) | =u8 *BOR #u8, @Ri *2 BEORL #u4, @Ri BEORH #u4, @Ri *BEOR #u8, @Ri C 98 1+2a ---- (Ri) ^ =u4 下位 4 ビットを操作 C 99 1+2a ---- (Ri) ^ =(u4< <4) 上位 4 ビットを操作 ---- (Ri) ^ =u8 *3 BTSTL #u4, @Ri C 88 2+a 0C-- (Ri) &u4 下位 4 ビットテスト BTSTH #u4, @Ri C 89 2+a CC-- (Ri) &(u4< <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 の両方を生成する場合もあります。 ■ 乗除算命令 表 H.1-5 乗除算命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 MUL Rj, Ri A AF 5 CCC- Ri*Rj → MDH, MDL 32bit*32bit=64bit MULU Rj, Ri A AB 5 CCC- Ri*Rj → MDH, MDL 符号なし MULH Rj, Ri A BF 3 CC-- Ri*Rj → MDL 16bit*16bit=32bit MULUH Rj, Ri A BB 3 CC-- Ri*Rj → MDL 符号なし DIV0S Ri E 97-4 1 ---- ステップ演算 DIV0U Ri E 97-5 1 ---- 32bit/32bit=32bit DIV1 Ri E 97-6 d -C-C DIV2 Ri E 97-7 1 -C-C DIV3 E 9F-6 1 ---- DIV4S E 9F-7 1 ---- 36 -C-C *DIV Ri *1 MDL/Ri → MDL, MDL%Ri → MDH *DIVU Ri *2 -C-C MDL/Ri → MDL, MDL%Ri → MDH *1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。 *2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。 679 付録 ■ シフト命令 表 H.1-6 シフト命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 LSL Rj, Ri A B6 1 CC-C Ri < <Rj → Ri 論理シフト *LSL #u5, Ri(u5:0 ∼ 31) C' B4 1 CC-C Ri < <u5 → Ri LSL #u4, Ri C B4 1 CC-C Ri < <u4 → Ri LSL2 #u4, Ri C B5 1 CC-C Ri < <(u4+16)→Ri LSR Rj, Ri A B2 1 CC-C Ri > >Rj → Ri *LSR #u5, Ri(u5:0 ∼ 31) C' B0 1 CC-C Ri > >u5 → Ri LSR #u4, Ri C B0 1 CC-C Ri > >u4 → Ri LSR2 #u4, Ri C B1 1 CC-C Ri > >(u4+16)→Ri ASR Rj, Ri A BA 1 CC-C Ri > >Rj → Ri *ASR #u5, Ri(u5:0 ∼ 31) C' B8 1 CC-C Ri > >u5 → Ri ASR #u4, Ri C B8 1 CC-C Ri > >u4 → Ri ASR2 #u4, Ri C B9 1 CC-C Ri > >(u4+16)→Ri 論理シフト 算術シフト ■ 即値セット /16 ビット /32 ビット即値転送命令 表 H.1-7 即値セット /16 ビット /32 ビット即値転送命令 ニーモニック 型 OP CYCLE NZVC 動作 LDI:32 #i32, Ri E 9F-8 3 ---- i32 → Ri LDI:20#i20, Ri C 9B 2 ---- i20 → Ri 上位 12 ビットはゼロ拡張 LDI:8#i8, Ri B C0 1 ---- i8 → Ri 上位 24 ビットはゼロ拡張 *LDI#{i8 | i20 | i32}, Ri *: 680 * 備考 {i8 | i20 | i32}→ Ri 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。 即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。 付録 H 命令一覧 ■ メモリロード命令 表 H.1-8 メモリロード命令 ニーモニック 型 OP CYCLE NZVC 動作 LD @Rj, Ri A 04 b ---- (Rj) → Ri LD @(R13, Rj), Ri A 00 b ---- (R13+Rj) → Ri LD @(R14, disp10), Ri B 20 b ---- (R14+disp10) → Ri LD @(R15, udisp6), Ri C 03 b ---- (R15+udisp6) → Ri LD @R15+, Ri E 07-0 b ---- (R15) → Ri, R15+=4 LD @R15+, Rs E 07-8 b ---- (R15) → Rs, R15+=4 LD @R15+, PS E 07-9 1+a+b CCCC (R15) → PS, R15+=4 LDUH @Rj, Ri A 05 b ---- (Rj) → Ri ゼロ拡張 LDUH @(R13, Rj), Ri A 01 b ---- (R13+Rj) → Ri ゼロ拡張 LDUH @(R14, disp9), Ri B 40 b ---- (R14+disp9) → Ri ゼロ拡張 LDUB @Rj, Ri A 06 b ---- (Rj) → Ri ゼロ拡張 LDUB @(R13, Rj), Ri A 02 b ---- (R13+Rj) → Ri ゼロ拡張 LDUB @(R14, disp8), Ri B 60 b ---- (R14+disp8) → Ri ゼロ拡張 備考 Rs: 特殊レジスタ * *: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL <注意事項> ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま す。 - disp10/4 → o8, disp9/2 → o8, disp8 → o8 ; disp10, disp9, disp8 は符号付きです。 - udisp6/4 → o4 ; udisp6 は , 符号なしです。 681 付録 ■ メモリストア命令 表 H.1-9 メモリストア命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 ST Ri, @Rj A 14 a ---- Ri → (Rj) ワード ST Ri, @(R13, Rj) A 10 a ---- Ri → (R13+Rj) ワード ST Ri, @(R14, disp10) B 30 a ---- Ri → (R14+disp10) ワード ST Ri, @(R15, udisp6) C 13 a ---- Ri → (R15+udisp6) ST Ri, @-R15 E 17-0 a ---- R15-=4, Ri → (R15) ST Rs, @-R15 E 17-8 a ---- R15-=4, Rs → (R15) ST PS, @-R15 E 17-9 a ---- R15-=4, PS → (R15) STH Ri, @Rj A 15 a ---- Ri → (Rj) ハーフワード STH Ri, @(R13, Rj) A 11 a ---- Ri → (R13+Rj) ハーフワード STH Ri, @(R14, disp9) B 50 a ---- Ri → (R14+disp9) ハーフワード STB Ri, @Rj A 16 a ---- Ri → (Rj) バイト STB Ri, @(R13, Rj) A 12 a ---- Ri → (R13+Rj) バイト STB Ri, @(R14, disp8) B 70 a ---- Ri → (R14+disp8) バイト Rs: 特殊レジスタ * *: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL <注意事項> ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま す。 - disp10/4 → o8, disp9/2 → o8, disp8 → o8 ; disp10, disp9, disp8 は符号付きです。 - udisp6/4 → o4 ; udisp6 は , 符号なしです。 ■ レジスタ間転送命令 表 H.1-10 レジスタ間転送命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 MOV Rj, Ri A 8B 1 ---- Rj → Ri 汎用レジスタ間転送 MOV Rs, Ri A B7 1 ---- Rs → Ri Rs: 特殊レジスタ * MOV Ri, Rs E B3 1 ---- Ri → Rs Rs: 特殊レジスタ * MOV PS, Ri E 17-1 1 ---- PS → Ri MOV Ri, PS E 07-1 c CCCC Ri → PS *: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL 682 付録 H 命令一覧 ■ 通常分岐 ( 遅延なし ) 命令 表 H.1-11 通常分岐 ( 遅延なし ) 命令 ニーモニック 型 OP CYCLE NZVC 動作 JMP @Ri E 97-0 2 ---- Ri → PC CALL label12 F D0 2 ---- PC+2 → RP, CALL @Ri E 97-1 2 ---- PC+2 → RP, Ri → PC RET E 97-2 2 ---- RP → PC INT #u8 D 1F 3+3a ---- SSP-=4, PS → (SSP), 備考 PC+2+(label12-PC-2) →PC リターン SSP-=4, PC+2 → (SSP), 0→Iフラグ, 0→Sフラグ, (TBR+0x3FC-u8×4)→PC INTE E 9F-3 3+3a ---- SSP-=4, PS → (SSP), エミュレータ用 SSP-=4, PC+2 → (SSP), 0 → S フラグ , (TBR+0x3D8) → PC RETI E 97-3 2+2A CCCC BRA label9 D E0 2 ---- PC+2+(label9-PC-2) → PC 非分岐 if(Z==1)then (R15) → PC, R15-=4, (R15) → PS, R15-=4 BNO label9 D E1 1 ---- BEQ label9 D E2 2/1 ---- BNE label9 D E3 2/1 ---- ↑ s/Z==0 BC label9 D E4 2/1 ---- ↑ s/C==1 BNC label9 D E5 2/1 ---- ↑ s/C==0 BN label9 D E6 2/1 ---- ↑ s/N==1 BP label9 D E7 2/1 ---- ↑ s/N==0 BV label9 D E8 2/1 ---- ↑ s/V==1 BNV label9 D E9 2/1 ---- ↑ s/V==0 PC+2+(label9-PC-2) → PC BLT label9 D EA 2/1 ---- ↑ s/VxorN==1 BGE label9 D EB 2/1 ---- ↑ s/VxorN==0 BLE label9 D EC 2/1 ---- ↑ s/(VxorN)orZ==1 BGT label9 D ED 2/1 ---- ↑ s/(VxorN)orZ==0 BLS label9 D EE 2/1 ---- ↑ s/CorZ==1 BHI label9 D EF 2/1 ---- ↑ s/CorZ==0 <注意事項> • CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき 1 であることを示します。 • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定 します。 (label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8 ; label12, label9 は符号付きです。 • RETI 命令を実行するときは , S フラグが "0" であることが必要です。 683 付録 ■ 遅延分岐命令 表 H.1-12 遅延分岐命令 ニーモニック 型 OP CYCLE NZVC 動作 JMP:D @Ri E 9F-0 1 ---- Ri → PC CALL:D label12 F D8 1 ---- PC+4 → RP, 備考 PC+2+(label12-PC-2) → PC CALL:D @Ri E 9F-1 1 ---- PC+4 → RP, Ri → PC RET:D E 9F-2 1 ---- RP → PC BRA:D label9 D F0 1 ---- PC+2+(label9-PC-2) → PC BNO:D label9 D F1 1 ---- 非分岐 BEQ:D label9 D F2 1 ---- if(Z==1)then リターン PC+2+(label9-PC-2) → PC BNE:D label9 D F3 1 ---- ↑ s/Z==0 BC:D label9 D F4 1 ---- ↑ s/C==1 BNC:D label9 D F5 1 ---- ↑ s/C==0 BN:D label9 D F6 1 ---- ↑ s/N==1 BP:D label9 D F7 1 ---- ↑ s/N==0 BV:D label9 D F8 1 ---- ↑ s/V==1 BNV:D label9 D F9 1 ---- ↑ s/V==0 BLT:D label9 D FA 1 ---- ↑ s/VxorN==1 BGE:D label9 D FB 1 ---- ↑ s/VxorN==0 BLE:D label9 D FC 1 ---- ↑ s/(VxorN)orZ==1 BGT:D label9 D FD 1 ---- ↑ s/(VxorN)orZ==0 BLS:D label9 D FE 1 ---- ↑ s/CorZ==1 BHI:D label9 D FF 1 ---- ↑ s/CorZ==0 <注意事項> • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定 します。 (label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8 ; label12, label9 は符号付きです。 • 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。 • 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令 です。複数サイクル命令は置けません。 684 付録 H 命令一覧 ■ その他の命令 表 H.1-13 その他の命令 ニーモニック 型 OP CYCLE NZVC 動作 NOP E 9F-A 1 ---- 何も変化しない ANDCCR #u8 D 83 c CCCC CCR and u8 → CCR ORCCR #u8 D 93 c CCCC CCRor u8 → CCR STILM #u8 D 87 1 ---- D A3 1 ---- i8 → ILM R15+=s10 符号拡張 8 → 32bit ADDSP #s10 EXTSB Ri *1 E 97-8 1 ---- EXTUB Ri E 97-9 1 ---- ゼロ拡張 8 → 32bit EXTSH Ri E 97-A 1 ---- 符号拡張 16 → 32bit EXTUH Ri E 97-B 1 ---- ゼロ拡張 16 → 32bit LDM0(reglist) D 8C ---- (R15) → reglist, LDM1(reglist) D 8D ---- 備考 ILM 即値セット ADDSP 命令 ロードマルチ R0-R7 R15 インクリメント (R15) → reglist, ロードマルチ R8-R15 R15 インクリメント *LDM (reglist) ---- *2 (R15) → reglist, ロードマルチ R0-R15 R15 インクリメント STM0(reglist) D 8E ---- R15 ディクリメント , ストアマルチ R0-R7 reglist → (R15) STM1(reglist) D 8F ---- R15 ディクリメント , ストアマルチ R8-R15 reglist → (R15) *STM (reglist) *3 ---- R15 ディクリメント , ---- R14 → (R15-4), ストアマルチ R0-R15 reglist → (R15) ENTER #u10 *4 D 0F 1+a 関数の入口処理 R15-4 → R14, R15-u10 → R15 LEAVE E 9F-9 b ---- XCHB @Rj, Ri A 8A 2a ---- R14+4 → R15, 関数の出口処理 (R15-4) → R14 Ri → TEMP セマフォ管理用 (Rj) → Ri バイトデータ TEMP → (Rj) *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 サイクルとなります。 685 付録 ■ 20 ビット通常分岐マクロ命令 表 H.1-14 20 ビット通常分岐マクロ命令 ニーモニック 動作 備考 *CALL20 label20, Ri 次の命令のアドレス→ RP, Ri: テンポラリレジスタ ( 参考 1 参照 ) label20 → PC *BRA20 label20, Ri label20 → PC Ri: テンポラリレジスタ ( 参考 2 参照 ) *BEQ20 label20, Ri if(Z==1)thenlabel20 → PC Ri: テンポラリレジスタ ( 参考 3 参照 ) *BNE20 label20, Ri ↑ s/Z==0 ↑ *BC20 label20, Ri ↑ s/C==1 ↑ *BNC20 label20, Ri ↑ s/C==0 ↑ *BN20 label20, Ri ↑ s/N==1 ↑ *BP20 label20, Ri ↑ s/N==0 ↑ *BV20 label20, Ri ↑ s/V==1 ↑ *BNV20 label20, Ri ↑ s/V==0 ↑ *BLT20 label20, Ri ↑ s/VxorN==1 ↑ *BGE20 label20, Ri ↑ s/VxorN==0 ↑ *BLE20 label20, Ri ↑ s/(VxorN)orZ==1 ↑ *BGT20 label20, Ri ↑ s/(VxorN)orZ==0 ↑ *BLS20 label20, Ri ↑ s/CorZ==1 ↑ *BHI20 label20, Ri ↑ s/CorZ==0 ↑ 参考 : • CALL20 -label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:20 #label20, Ri CALL @Ri • BRA20 -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:20 #label20, Ri JMP @Ri • Bcc20 -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 Bxcc false xcc は , cc の背反条件 LDI:20 #label20, Ri JMP @Ri false: 686 付録 H 命令一覧 ■ 20 ビット遅延分岐マクロ命令 表 H.1-15 20 ビット遅延分岐マクロ命令 ニーモニック 動作 備考 *CALL20:D label20, Ri 次の命令のアドレス +2 → RP, Ri: テンポラリレジスタ ( 参考 1 参照 ) label20 → PC *BRA20:D label20, Ri label20 → PC Ri: テンポラリレジスタ ( 参考 2 参照 ) *BEQ20:D label20, Ri if(Z==1)thenlabel20 → PC Ri: テンポラリレジスタ ( 参考 3 参照 ) *BNE20:D label20, Ri ↑ s/Z==0 ↑ *BC20:D label20, Ri ↑ s/C==1 ↑ *BNC20:D label20, Ri ↑ s/C==0 ↑ *BN20:D label20, Ri ↑ s/N==1 ↑ *BP20:D label20, Ri ↑ s/N==0 ↑ *BV20:D label20, Ri ↑ s/V==1 ↑ *BNV20:D label20, Ri ↑ s/V==0 ↑ *BLT20:D label20, Ri ↑ s/VxorN==1 ↑ *BGE20:D label20, Ri ↑ s/VxorN==0 ↑ *BLE20:D label20, Ri ↑ s/(VxorN)orZ==1 ↑ *BGT20:D label20, Ri ↑ s/(VxorN)orZ==0 ↑ *BLS20:D label20, Ri ↑ s/CorZ==1 ↑ *BHI20:D label20, Ri ↑ s/CorZ==0 ↑ 参考 : • CALL20:D -label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL:D label12 -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:20 #label20, Ri CALL:D @Ri • BRA20:D -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA:D label9 -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:20 #label20, Ri JMP:D @Ri • Bcc20:D -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc:D label9 -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 Bxcc false xcc は , cc の背反条件 LDI:20 #label20, Ri JMP:D @Ri false: 687 付録 ■ 32 ビット通常分岐マクロ命令 表 H.1-16 32 ビット通常分岐マクロ命令 ニーモニック 動作 備考 *CALL32 label32, Ri 次の命令のアドレス→ RP, Ri: テンポラリレジスタ ( 参考 1 参照 ) label32 → PC *BRA32 label32, Ri label32 → PC *BEQ32 label32, Ri if(Z==1)thenlabel32 → PC Ri: テンポラリレジスタ ( 参考 3 参照 ) *BNE32 label32, Ri ↑ s/Z==0 ↑ *BC32 label32, Ri ↑ s/C==1 ↑ *BNC32 label32, Ri ↑ s/C==0 ↑ *BN32 label32, Ri ↑ s/N==1 ↑ *BP32 label32, Ri ↑ s/N==0 ↑ *BV32 label32, Ri ↑ s/V==1 ↑ *BNV32 label32, Ri ↑ s/V==0 ↑ *BLT32 label32, Ri ↑ s/VxorN==1 ↑ *BGE32 label32, Ri ↑ s/VxorN==0 ↑ *BLE32 label32, Ri ↑ s/(VxorN)orZ==1 ↑ *BGT32 label32, Ri ↑ s/(VxorN)orZ==0 ↑ *BLS32 label32, Ri ↑ s/CorZ==1 ↑ *BHI32 label32, Ri ↑ s/CorZ==0 ↑ Ri: テンポラリレジスタ ( 参考 2 参照 ) 参考 : • CALL32 -label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:32 #label32, Ri CALL @Ri • BRA32 -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:32 #label32, Ri JMP @Ri • Bcc32 -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 Bxcc false xcc は , cc の背反条件 LDI:32 #label32, Ri JMP @Ri false: 688 付録 H 命令一覧 ■ 32 ビット遅延分岐マクロ命令 表 H.1-17 32 ビット遅延分岐マクロ命令 ニーモニック 動作 備考 *CALL32:D label32, Ri 次の命令のアドレス +2 → RP, Ri:テンポラリレジスタ(参考1参照) label32 → PC *BRA32:D label32, Ri label32 → PC Ri:テンポラリレジスタ(参考2参照) *BEQ32:D label32, Ri if(Z==1)thenlabel32 → PC Ri:テンポラリレジスタ(参考3参照) *BNE32:D label32, Ri ↑ s/Z==0 ↑ *BC32:D label32, Ri ↑ s/C==1 ↑ *BNC32:D label32, Ri ↑ s/C==0 ↑ *BN32:D label32, Ri ↑ s/N==1 ↑ *BP32:D label32, Ri ↑ s/N==0 ↑ *BV32:D label32, Ri ↑ s/V==1 ↑ *BNV32:D label32, Ri ↑ s/V==0 ↑ *BLT32:D label32, Ri ↑ s/VxorN==1 ↑ *BGE32:D label32, Ri ↑ s/VxorN==0 ↑ *BLE32:D label32, Ri ↑ s/(VxorN)orZ==1 ↑ *BGT32:D label32, Ri ↑ s/(VxorN)orZ==0 ↑ *BLS32:D label32, Ri ↑ s/CorZ==1 ↑ *BHI32:D label32, Ri ↑ s/CorZ==0 ↑ 参考 : • CALL32:D -label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL:D label12 -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:32 #label32, Ri CALL:D @Ri • BRA32:D -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA:D label9 -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 LDI:32 #label32, Ri JMP:D @Ri • Bcc32:D -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc:D label9 -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう に命令を生成します。 Bxcc false xcc は , cc の背反条件 LDI:32 #label32, Ri JMP:D @Ri false: 689 付録 ■ ダイレクトアドレッシング命令 表 H.1-18 ダイレクトアドレッシング命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 DMOV @dir10, R13 D 08 b ---- (dir10) → R13 ワード DMOV R13, @dir10 D 18 a ---- R13 → (dir10) ワード DMOV @dir10, @R13+ D 0C 2a ---- (dir10) → (R13), R13+=4 ワード DMOV @R13+, @dir10 D 1C 2a ---- (R13) → (dir10), R13+=4 ワード DMOV @dir10, @-R15 D 0B 2a ---- R15-=4, (R15) → (dir10) ワード DMOV @R15+, @dir10 D 1B 2a ---- (R15) → (dir10), R15+=4 ワード DMOVH @dir9, R13 D 09 b ---- (dir9) → R13 ハーフワード DMOVH R13, @dir9 D 19 a ---- R13 → (dir9) ハーフワード DMOVH @dir9, @R13+ D 0D 2a ---- (dir9) → (R13), R13+=2 ハーフワード DMOVH @R13+, @dir9 D 1D 2a ---- (R13) → (dir9), R13+=2 ハーフワード DMOVB @dir8, R13 D 0A b ---- (dir8 → R13 バイト DMOVB R13, @dir8 D 1A a ---- R13 → (dir8) バイト DMOVB @dir8, @R13+ D 0E 2a ---- (dir8) → (R13), R13++ バイト DMOVB @R13+, @dir8 D 1E 2a ---- (R13) → (dir8), R13++ バイト <注意事項> dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。 dir8 → dir, dir9/2 → dir, dir10/4 → dir ; dir8, dir9, dir10 は符号なしです。 ■ リソース命令 表 H.1-19 リソース命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 LDRES @Ri+, #u4 C BC a ---- (Ri)→u4のリソース u4: チャンネル番号 Ri+=4 STRES #u4, @Ri+ C BD a ---- u4 のリソース→ (Ri) u4: チャンネル番号 Ri+=4 <注意事項> MB91340 シリーズでは, チャネル番号を持つリソースを搭載していないので , 使用できま せん。 690 付録 H 命令一覧 ■ コプロセッサ制御命令 表 H.1-20 コプロセッサ制御命令 ニーモニック 型 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 備考 エラートラップなし <注意事項> • {CRi|CRj}:= CR0|CR1|CR2|CR3|CR4|CR5|CR6|CR7|CR8|CR9|CR10|CR11|CR12| CR13|CR14|CR15 - u4:= チャンネル指定 - u8:= コマンド指定 • MB91310 シリーズでは , コプロセッサを搭載していないため使用できません。 691 付録 692 索引 A A/D コンバータ 10 ビット A/D コンバータの特長 .......................302 A/D コンバータ .........................................................4 A/D 変換結果レジスタ A/D 変換結果レジスタ (0 ∼ 9ch) .......................306 A/D 変換部テストレジスタ A/D 変換部テストレジスタ .................................306 ACR ACR0 ∼ ACR7 (Area Configuration Register) ..........................131 ADCTH A/DC 制御レジスタ (ADCTH,ADCTL) ..............304 ADCTL A/DC 制御レジスタ (ADCTH,ADCTL) ..............304 ASR ASR0 ∼ ASR7 (Area Select Register) ...................129 AWR AWR0 ∼ AWR7 (Area Wait Register) .................138 B BFOK BFOK0o の設定の優先順位 .................................463 BFOK の設定 .........................................................462 BSD 0 検出用データレジスタ (BSD0) ........................296 1 検出用データレジスタ (BSD1) ........................296 BSDC 変化点検出用データレジスタ (BSDC) ..............297 BSRR 検出結果レジスタ (BSRR) ...................................297 BUSYX レディ / ビジー信号 (RDY/BUSYX) ...................629 Byte アクセス Byte アクセス ........................................................170 C CHER CHER (CacHe Enable Register) .............................148 CLKB CPU クロック (CLKB) ............................................78 CLKP 周辺クロック (CLKP) .............................................78 CLKR CLKR : クロックソース制御レジスタ .................90 CLKT 外部バスクロック (CLKT) ....................................79 CONT CONT1 ....................................................................413 CONT10 ..................................................................420 CONT2 ....................................................................414 CONT3 ....................................................................415 CONT4 ....................................................................417 CONT5 ....................................................................417 CONT6 ....................................................................418 CONT7 ....................................................................418 CONT8 ....................................................................419 CONT9 ....................................................................419 CPU CPU 制御 ................................................................ 385 FR CPU ....................................................................... 2 CPU アクセス CPU アクセス受信時の制御例 ............................442 CPU アクセス送信時の制御例 ............................444 CSER CSER (Chip Select Enable register) .......................147 CSX CSX 遅延設定 (TYP[3:0]=0000B,AWR=000CH) ..........................................................................180 CSX → RD/WR セットアップ設定 (TYP[3:0]=0101B,AWR=100BH) .................... 188 CSX → RD/WR セットアップ・ RD/WR → CSX ホールド設定 (TYP[3:0]=0000B, AWR=000BH) ...................181 CTBR CTBR : タイムベースカウンタクリアレジスタ ............................................................................90 D D+ 終端抵抗制御 ボード上の D+ 終端抵抗制御 ............................. 455 DDR Data Direction Register(DDR) ............................... 207 DICR DICR(Delayed Interrupt Control Register) ............293 DIVR DIVR0: 基本クロック分周設定レジスタ 0 ......... 94 DIVR1: 基本クロック分周設定レジスタ 1 ......... 96 DLYI DICR の DLYI ビット .......................................... 294 DMAC DMAC (DMA Controller) .......................................... 3 DMACA DMAC-ch.0,1,2,3,4 コントロール / ステータス レジスタ A[DMACA0 ∼ 4] ........................... 361 DMACB DMAC-ch.0,1,2,3,4 コントロール / ステータス レジスタ B [DMACB0 ∼ 4] .......................... 366 DMACR DMAC-ch.0 ∼ ch.4 DMAC 全体制御レジスタ [DMACR] .........................................................372 DMADA DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定 レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4] ........................................................ 371 DMASA DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定 レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4] ........................................................ 371 693 DMA 受信時 DMA 受信時の制御例 ..........................................447 DMA 送信時 DMA 送信時の制御例 ..........................................448 DRCL DRCL ......................................................................319 E EIRR 外部割込み要因レジスタ (EIRR : External Interrupt Request Register) ..............................................285 EIT EIT 要因受理の優先度 ...........................................55 EIT( 例外・割込み・トラップ ) ............................46 EIT からの復帰 .......................................................46 EIT の動作 ...............................................................57 EIT ベクタテーブル ...............................................51 EIT 要因 ...................................................................46 ELVR 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) ...................286 ENDPOINT BUFFER ENDPOINT BUFFER の設定 ................................439 ENIR 割込み許可レジスタ (ENIR : ENable Interrupt request Register) ...............................................285 F FIFO FIFO0i .....................................................................403 FIFO0o ....................................................................403 FIFO1 ......................................................................404 FIFO2 ......................................................................404 FIFO3 ......................................................................405 FLCR FLCR: フラッシュコントロール / ステータス レジスタ (CPU モード ) .................................620 fly-by 転送 DMA fly-by 転送 (I/O →メモリ ) (TYP[3:0]=0000B,AWR=0008H,IOWR=41H) ..........................................................................193 DMA fly-by 転送 (I/O →メモリ )(TYP[3:0]=0000B,AWR=0008H,IOWR=51H) ..........................................................................182 DMA fly-by 転送 ( メモリ→ I/O) (TYP[3:0]=0000B,AWR=0008H,IOWR=41H) ..........................................................................195 DMA fly-by 転送 ( メモリ→ I/O) (TYP[3:0]=0000B,AWR=0008H,IOWR=51H) ..........................................................................183 FMWT FMWT: ウェイトレジスタ ..................................622 FR FR-CPU プログラミングモード (16bit,Read/Write) ...........................................................................624 G GET_DESCRIPTOR GET_DESCRIPTOR コマンドでのデータステージ の中断 .............................................................. 463 H Half word アクセス Half word アクセス ............................................... 168 HcBulkCurrentED Register HcBulkCurrentED Register .................................... 477 HcBulkHeadED Register HcBulkHeadED Register ........................................ 477 HcCommandStatus Register HcCommandStatus Register ................................... 472 HcControl Register HcControl Register ................................................. 471 HcControlCurrentED Register HcControlCurrentED Register ................................476 HcControlHeadED Register HcControlHeadED Register ................................... 476 HcDoneHead Register HcDoneHead Register ............................................ 477 HcFmInterval Register HcFmInterval Register ............................................ 478 HcFmNumber Register HcFmNumber Register ...........................................479 HcFmRemaining Register HcFmRemaining Register .......................................478 HcHCCA Register HcHCCA Register ..................................................476 HcInterruptDisable Register HcInterruptDisable Register ................................... 475 HcInterruptEnable Register HcInterruptEnable Register .................................... 474 HcInterruptStatus Register HcInterruptStatus Register ...................................... 473 HcLSThreshold Register HcLSThreshold Register .........................................479 HcPeriodCurrentED Register HcPeriodCurrentED Register ................................. 476 HcPeriodicStart Register HcPeriodicStart Register .........................................479 HcRevision Register HcRevision Register ............................................... 471 HcRhDescripterB Register HcRhDescripterB Register .....................................481 HcRhDescriptorA Register HcRhDescriptorA Register .....................................480 HcRhPortStatus Register HcRhPortStatus Register ........................................ 483 HcRhStatus Register HcRhStatus Register ............................................... 482 HRCL HRCL(Hold Request Cancel Level register) ..........................................................................272 I I/O I/O ピン .................................................................. 127 694 I/O ポート I/O ポート ..................................................................4 I/O ポートのモード ..............................................205 I/O マップ I/O マップの見方 ..................................................646 I2C I2C インタフェース ..................................................3 I2C インタフェースの特長 ..................................332 IBCR IBCR( バスコントロールレジスタ ) ...................338 IBSR IBSR( バスステータスレジスタ ) .......................335 ICCR ICCR( クロックコントロールレジスタ ) ...........342 ICR ICR(Interrupt Control Register) ..............................271 ICR ビット構成 .......................................................49 ICR マッピング .......................................................49 IDAR データレジスタ (IDAR) .......................................349 IDBL クロックディセーブルレジスタ (IDBL) ............349 ILM ILM ...........................................................................48 INIT INIT 端子入力 ( 設定初期化リセット端子 ) ............................................................................66 設定初期化リセット (INIT) ...................................65 設定初期化リセット (INIT) 解除シーケンス ............................................................................68 INT INT 命令の動作 .......................................................58 INTE INTE 命令の動作 .....................................................58 IOWR IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC) ..........................................................................145 ISBA 7 ビットスレーブアドレスレジスタ (ISBA) ..........................................................................347 ISMK 7 ビットスレーブアドレスマスクレジスタ (ISMK) ..............................................................348 ITBA 10 ビットスレーブアドレスレジスタ (ITBA) ..........................................................................344 ITMK 10 ビットスレーブアドレスマスクレジスタ (ITMK) .............................................................345 I フラグ I フラグ ....................................................................48 L Little endian Little endian 領域に対する制限事項 ...................162 LPF LPF のサンプリング間隔について .....................264 M MD モード端子 (MD0 ∼ MD3) について ................... 22 N NMI NMI ......................................................................... 289 NMI(Non Maskable Interrupt) ................................277 ユーザ割込み・NMI の動作 ..................................57 割込み・NMI に対するレベルマスク .................. 48 O OSCCR OSCCR : 発振制御レジスタ ..................................97 OSDC OSDC 機能 .................................................................4 OSDC 動作制御 ..................................................... 584 P PCSR PCSR(PPG 周期設定レジスタ ) ........................... 235 PDR Port Data Register(PDR) ........................................ 206 PDUT PDUT(PPG デューティ設定レジスタ ) ..............235 PFR Port Function Register(PFR) ..................................208 Port Function Register(PFR) の初期値と機能 ..........................................................................209 PLL PLL 逓倍率 .............................................................. 75 PLL 動作許可 .......................................................... 74 PPG PPG ............................................................................. 4 PPG 出力 PPG 出力オール 'L' または , オール 'H' の 出力方法例 ......................................................239 PPG タイマ PPG タイマの注意事項 ........................................ 240 PTMR PTMR(PPG タイマレジスタ ) ............................. 236 PWC PWC ............................................................................4 PWCC2 PWC 制御レジスタ 2(PWCC2) ............................261 PWCCH PWC 制御レジスタ (PWCCH) ............................. 259 PWCCL PWC 制御レジスタ (PWCCL) ............................. 257 PWCD PWC・データ・レジスタ (PWCD) .................... 260 PWCUD PWC・上限値設定レジスタ (PWCUD) ..............262 PWM PWM 動作 .............................................................. 237 695 R T RD TBCR TBCR : タイムベースカウンタ制御 レジスタ ............................................................ 87 TBR TBR (Table Base Register) .......................................51 TCR TCR (Terminal and timing Control Register) ........................................................................... 149 TMCSR コントロールステータスレジスタ (TMCSR) ........................................................................... 220 TMR 16 ビットタイマレジスタ (TMR) .......................223 TMRLR 16 ビットリロードレジスタ (TMRLR) ..............223 TRSIZE TRSIZE ................................................................... 422 TRST ツールリセット端子 (TRST) について ................22 TTEST TTEST ( テスト用レジスタ ) ............................... 251 TTSIZE TTSIZE ................................................................... 421 TxCCR TxCCR ( キャプチャ制御レジスタ ) .................. 245 TxCRR TxCRR ( キャプチャデータレジスタ ) ..............250 TxDRR TxDRR ( タイマコンペアデータレジスタ ) ..........................................................................250 TxLPCR TxLPCR ( ローパスフィルタ制御レジスタ ) ............. 244 TxR TxR ( タイマ全体制御レジスタ ) ........................ 249 TxTCR TxTCR ( タイマ設定レジスタ ) .......................... 247 CSX → RD/WR セットアップ設定 (TYP[3:0]=0101B,AWR=100BH) ....................188 RDY レディ / ビジー信号 (RDY/BUSYX) ...................629 RESET RESET ....................................................................422 RESET (USB クロック ) .......................................667 RETI RETI 命令の動作 .....................................................60 ROM モード FR-CPU ROM モード (32bit,Read のみ ) ............623 RSIZE RSIZE0 ....................................................................411 RSIZE1 ....................................................................412 RSRR RSRR : リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ........................................82 RST 動作初期化リセット (RST) ....................................65 動作初期化リセット (RST) 解除シーケンス ............................................................................68 S SCR SCR ( シリアルコントロールレジスタ ) ...........314 SIDR SIDR ( シリアルインプットデータレジスタ )/ SODR ( シリアルアウトプットデータ ..........................................................................316 SMR SMR ( シリアルモードレジスタ ) ......................313 SODR SIDR ( シリアルインプットデータレジスタ )/ SODR ( シリアルアウトプットデータ ..........................................................................316 SRAM SRAM 領域 ............................................................471 SSP SSP(System Stack Pointer) .......................................50 SSR SSR ( シリアルステータスレジスタ ) ................317 ST ST1 ..........................................................................406 ST2 ..........................................................................407 ST3 ..........................................................................408 ST4 ..........................................................................409 ST5 ..........................................................................410 START 「START」条件 ......................................................350 STCR STCR : スタンバイ制御レジスタ .........................84 STCR:SRST ビット書込み ( ソフトウェアリセット ) ................................66 STOP 「STOP」条件 .........................................................350 696 U UART UART ..........................................................................3 UART のクロック選択 ........................................ 320 UART の使用例 ..................................................... 327 UART の動作モード ............................................ 320 UART の特長 .........................................................310 UCLK48 UCLK48 の精度 ..................................................... 461 USB SUSPEND 時の USB クロック制御例 ................ 459 USB BUS RESET 後のマクロの状態 .................. 465 USB インタフェースのレジスタ ........................ 402 USB コネクタの接続 / 未接続の検知 ................ 460 USB 標準要求コマンドに対するマクロの 自動応答内容 ..................................................456 USB ファンクション機能 ........................................ 4 USB ファンクションの概要 ................................400 USB ファンクションの動作 ................................424 USB ホスト マクロ内レジスタ ........................... 470 USB ホストインタフェース ................................468 USB ホスト機能 ........................................................4 デフォルト状態での USB マクロの動作 ...........458 USBIOLPW USBIOLPW (USB IO 低消費電力モード設定レジ スタ ) ................................................................669 UTIM UTIM (U-TIMER) ..................................................213 UTIMC UTIMC(U-TIMER Control register) ......................213 U-TIMER U-TIMER の概要 ...................................................212 ボーレートと U-TIMER のリロード値の設定例 ..........................................................................329 UTIMR UTIMR(reload register) ..........................................213 V VCO 内部 VCO 生成ドットクロック入力 ..................562 W Word アクセス Word アクセス .......................................................167 WR CSX → RD/WR セットアップ設定 (TYP[3:0]=0101B,AWR=100BH) ....................188 WR+byte-control タイプ WR+byte-control タイプ (TYP[3:0]=0010B,AWR=0008H) .....................174 あ アーキテクチャ 内部アーキテクチャ .............................................. 28 アービトレーション アービトレーション ............................................ 352 アクノリッジ アクノリッジ ........................................................ 353 アドレシングモード アドレシングモード ............................................ 384 アドレッシングモード アドレッシングモードの記号 ............................675 アンダライン アンダライン表示制御 ........................................ 514 アンダライン表示ルール .................................... 514 い イタリック イタリック表示制御 ............................................ 511 イタリック表示ルール ........................................ 511 イタリック文字起点 ............................................ 513 一時停止 一時停止 ................................................................ 388 イベントカウント イベントカウントモード .................................... 253 色置換色コード ふちどり色置換色コード ( 画面単位設定 ) ..........................................................................529 色置換制御 グラフィック色ふちどり色置換制御 ( 画面単位設定 ) .............................................529 インターバルタイマ インターバルタイマモード ................................252 う ウォッチドッグ ウォッチドッグリセット ...................................... 67 お 応用表示例 応用表示例 ............................................................ 508 か 外形寸法図 外形寸法図 ................................................................ 7 外部ウェイト 外部ウェイトあり (TYP[3:0]=0101B,AWR=1008H) .....................187 外部ウェイトなし (TYP[3:0]=0100B,AWR=0008H) .....................186 外部トリガ変換 外部トリガ変換による A/D 動作 .......................307 外部バス 外部バスアクセス ................................................157 外部バスインタフェース 外部バスインタフェースの設定について ..........................................................................670 697 概要 概要 .............................................64, 73, 117, 162, 228 カウンタ 16 ビットパルス幅カウンタ ................................256 カウントクロック カウントクロックの選択 .....................................264 書込み データ書込み .........................................................636 各状態遷移要求 各状態遷移要求の優先順位 .................................105 影付背景 影付背景下行結合制御 ( 行単位設定 ) ..................................................................541, 547 影付背景シャドウ色 (16 色 , 画面単位設定 ) ..................................................................537, 545 影付背景ハイライト色 (16 色 , 画面単位設定 ) ..................................................................537, 545 影付背景右文字結合制御 ( 文字単位設定 ) ..........................................................................539 加減算 加減算命令 .............................................................678 画面構成 画面構成 .................................................................490 画面構成図 .............................................................490 画面出力制御 画面出力制御 .........................................................492 画面背景 画面背景色制御 .....................................................557 画面背景出力制御 .................................................557 画面背景表示 .........................................................553 画面背景文字表示の構成 .....................................554 画面背景文字表示の制御 .....................................554 画面表示 画面表示オフセット .............................................499 画面表示形式 .........................................................491 き 機能 機能概要 .................................................................189 その他の機能 .........................................................373 キャプチャ キャプチャモード .................................................253 行 RAM 行 RAM 書込み ......................................................504 行拡大制御 行拡大制御 ( 行単位設定 ) ...................................523 行拡大表示例 行拡大表示例 .........................................................524 行背景 行背景色 (16 色 , 行単位設定 ) ............................545 行背景制御 ( 行単位設定 ) ...................................545 く グラフィック文字 文字 / グラフィック文字制御 ( 文字単位設定 ) ..............................................527 クロック クロック供給機能の動作 .............................115, 121 クロック分周 ...........................................................80 ソースクロックの選択 ...........................................73 698 クロック同期 クロック同期モード ............................................ 322 け 検出 0 検出 ..................................................................... 298 1 検出 ..................................................................... 298 変化点検出 ............................................................ 299 原振入力 電源投入時の原振入力について .......................... 23 こ コプロセッサ コプロセッサエラートラップ ..............................60 コプロセッサ不在トラップ ..................................60 コプロセッサ制御 コプロセッサ制御命令 ........................................ 691 コマンド コマンド 0(VRAM 書込みアドレス設定 ) ..........................................................................589 コマンド 1( 文字データ設定 1) ........................... 590 コマンド 11-0( 同期制御 ) ................................... 605 コマンド 11-1( ドットクロック制御 1) ............. 606 コマンド 11-2( ドットクロック制御 2) ............. 606 コマンド 11-3( ドットクロック制御 3) ............. 607 コマンド 13-0( 入出力端子制御 1) .....................608 コマンド 13-1( 入出力端子制御 2) .....................608 コマンド 14-0( 表示期間制御 1) .........................609 コマンド 14-1( 表示期間制御 2) .........................609 コマンド 14-2( 表示期間制御 3) .........................610 コマンド 14-3( 表示期間制御 4) .........................610 コマンド 15-0( 割込み制御 ) ............................... 611 コマンド 16-0 ∼コマンド 16-15 ( パレット制御 ) ..........................................................................612 コマンド 17-0(OSDC 動作制御 1) .......................613 コマンド 17-1(OSDC 動作制御 2) .......................613 コマンド 2( 文字データ設定 2) ........................... 591 コマンド 3( 行制御データ設定 1) .......................592 コマンド 4( 行制御データ設定 2) .......................593 コマンド 5-00( 画面出力制御 1A) ...................... 594 コマンド 5-1( 画面出力制御 2) ........................... 594 コマンド 5-2( 垂直表示位置制御 ) .....................595 コマンド 5-3( 水平表示位置制御 ) .....................595 コマンド 6-0( 文字垂直サイズ制御 ) ................. 596 コマンド 6-1( 影付背景枠色制御 ) .....................597 コマンド 6-2( 透明色制御 ) ................................. 598 コマンド 6-3( グラフィック色制御 ) ................. 599 コマンド 7-1( 画面背景文字制御 1) ...................601 コマンド 7-3( 画面背景文字制御 2) ...................602 コマンド 8-1( スプライト文字制御 1) ............... 603 コマンド 8-2( スプライト文字制御 2) ............... 604 コマンド 9-0( スプライト文字制御 3) ............... 604 コマンド 9-1( スプライト文字制御 4) ............... 604 コマンドシーケンス コマンドシーケンス ............................................ 625 さ サイズ 文字垂直サイズ A/ 文字垂直サイズ B ...............506 サイズ種制御 行文字垂直サイズ種制御 ( 行単位設定 ) ...........506 サイズ制御 文字水平サイズ制御 ( 文字単位設定 ) ...............506 し シーケンス シーケンス .............................................................281 自動アルゴリズム 自動アルゴリズム実行状態 .................................624 シフト シフト命令 .............................................................680 主要機能 主要機能 .........................................................268, 358 主要動作 主要動作 .................................................................374 消去 セクタ消去の一時停止 .........................................641 セクタ消去の再開 .................................................642 データ消去 ( セクタ消去 ) ...................................639 データ消去 ( チップ消去 ) ...................................638 乗除算 乗除算命令 .............................................................679 状態 RUN 状態 ( 通常動作 ) ..........................................103 ストップ状態 .........................................................103 スリープ状態 .........................................................103 設定初期化リセット (INIT) 状態 ........................104 デバイス状態と各遷移 .........................................102 動作初期化リセット (RST) 状態 .........................104 発振安定待ち RUN 状態 ......................................103 発振安定待ちリセット (RST) 状態 .....................104 す 推奨設定例 推奨設定例 .............................................................671 水晶発振回路 水晶発振回路について ...........................................22 垂直同期検出 垂直同期検出 .........................................................567 垂直同期検出動作例 .............................................567 垂直表示期間制御 垂直表示期間制御 .................................................576 水平同期動作 水平同期動作 .........................................................569 水平同期動作例 水平同期動作例 .....................................................569 水平表示期間制御 水平表示期間制御 .................................................577 スタンバイ スタンバイからの復帰について .........................287 スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................279 ステップトレーストラップ ステップトレーストラップの動作 .......................59 スプライト文字 スプライト文字の構成 ........................................ 558 スプライト文字表示制御 .................................... 558 スレーブアドレス スレーブアドレス検出 ........................................ 351 スレーブアドレスマスク .................................... 352 せ 制御 制御機能 ................................................................ 561 制限 制限および注意事項 ............................................ 643 制限事項 制限事項 .................................................................. 23 セクタ セクタアドレス表 ................................................618 接続例 外部との接続例 ............................................161, 165 設定 設定内容 ................................................................ 440 設定方法 ................................................................ 439 セットアップ セットアップ制御例 ............................................ 441 そ 即値 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................680 その他 その他 ....................................................................354 ソフトウェア要求 ソフトウェア要求 ................................................378 ソフト変換 ソフト変換による A/D 動作 ............................... 307 ソフト変換アナログ入力選択レジスタ ソフト変換アナログ入力選択レジスタ ............305 た 退避 退避・復帰の処理 ................................................300 タイマ インターバルタイマ機能の動作 ................114, 120 その他のインターバルタイマ ................................4 メイン発振安定待ちタイマ ( サブクロック選択時用 ) ............................. 101 メイン発振安定待ちタイマ使用時の 注意事項 .......................................................... 122 メイン発振安定待ちタイマの動作 .................... 121 タイミング 外部ウェイトタイミング (TYP[3:0]=0001B,AWR=2008H) .....................178 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0]=0000B,AWR=0008H) .....................173 自動ウェイトタイミング (TYP[3:0]=0000B,AWR=2008H) .....................177 同期ライトイネーブル出力タイミング (TYP[3:0]=0000B,AWR=0000H) .....................179 699 ライト → ライトタイミング (TYP[3:0]=0000B,AWR=0018H) .....................176 リード → ライトタイミング (TYP[3:0]=0000B,AWR=0048H) .....................175 タイムベースカウンタ タイムベースカウンタ ...........................................98 ダイレクトアドレッシング ダイレクトアドレッシング命令 .........................690 多機能タイマ 多機能タイマ .............................................................4 多機能タイマの概要 .............................................242 端子 端子機能一覧 .............................................................9 端子状態一覧 .........................................................672 未使用入力端子の処理について ...........................22 端子配列図 端子配列図 .................................................................8 ち 遅延スロット 遅延スロット付き動作 ...........................................42 遅延スロットなし動作 ...........................................44 遅延スロットの注意事項 .......................................60 遅延分岐 20 ビット遅延分岐マクロ命令 ............................687 32 ビット遅延分岐マクロ命令 ............................689 遅延分岐命令 .........................................................684 チップセレクト チップセレクト領域 .............................................152 チャネル選択 チャネル選択と制御 .............................................390 注意 使用上の注意 .................................................202, 326 制限および注意事項 .............................................643 注意点 .....................................................................226 注意事項 注意事項 .................................................................281 調歩同期 非同期 ( 調歩同期 ) モード ..................................321 つ 通常分岐 20 ビット通常分岐マクロ命令 ............................686 32 ビット通常分岐マクロ命令 ............................688 通常分岐 ( 遅延なし ) 命令 ..................................683 通信エラー エラーを発生しない通信エラー .........................353 て 停止 エラーによる停止 .................................................388 動作終了 / 停止 ......................................................388 低消費電力 低消費電力モード ...........................................24, 106 データ データの種類等 .....................................................385 データフォーマット .............................................163 700 データアクセス データアクセス ......................................................40 データバス データバス幅 ................................................156, 164 データバス幅と制御信号との関係 .................... 154 データフォーマット データフォーマット ............................................ 155 デューティ比 デューティ比の設定 ............................................ 534 電源 電源端子について ..................................................22 電源投入 電源投入 / 切断時の注意事項 ............................... 23 電源投入時 電源投入時について .............................................. 23 転送 Bulk IN 転送 (CPU WRITE/USB READ) タイミング チャート .......................................................... 451 Bulk OUT 転送 (CPU READ/USB WRITE) タイミン グチャート ......................................................453 CPU IN 転送 .......................................................... 431 CPU OUT 転送 ......................................................433 DMA IN 転送 .........................................................434 DMA OUT 転送 ..................................................... 435 DMA シングル転送 READ/WRITE Timing Chart ........................................................................... 436 DMA ブロック転送 READ/WRITE Timing Chart ........................................................................... 437 fly-by 転送時のデータの動き ..............................397 two-cycle 転送時のデータの動き ........................ 395 two-cycle 転送 ........................................................ 196 two-cycle 転送 (I/O →外部 ) (TYP[3:0]=0000B,AWR=0008H,IOWR=00H) ........................................................................... 198 two-cycle 転送 ( 外部→ I/O) (TYP[3:0]=0000B,AWR=0008H,IOWR=00H) ..........................................................................197 外部転送要求端子 ................................................378 コントロール (DATA ステージ )/ バルク OUT 転送 ................................................................. 428 コントロール (DATA ステージ )/ バルク / インタラプト IN 転送 .................................... 429 コントロール転送の SETUP ステージ ( 一部を除く標準コマンド ) .........................425 コントロール転送の SETUP ステージ ( クラスコマンド・ベンダコマンド , および 一部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME)) ........................................................................... 426 コントロール転送の STATUS ステージ ( 一部を除く標準コマンド ) .........................427 コントロール転送の STATUS ステージ ( クラスコマンド・ベンダコマンド , および 一部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME)) ........................................................................... 427 ステップ / ブロック転送 two-cycle 転送 ........... 382 ステップ / ブロック転送 two-cycle 転送 fly-by 転送 .................................................................. 382 スリープ中の DMA 転送 .....................................390 デマンド転送 fly-by 転送 .....................................381 デマンド転送 two-cycle 転送 ............................... 381 転送アドレス ........................................................ 376 転送回数制御 .........................................................385 転送回数と転送終了 .............................................377 転送シーケンスの選択 .........................................379 転送タイプ .............................................................375 転送モード .............................................................374 転送要求の受付と転送 .........................................387 バースト fly-by 転送 .............................................380 バースト two-cycle 転送 .......................................379 と 同期信号入力 同期信号入力 .........................................................566 同期制御 同期制御 ( 縦拡大制御 ) .......................................578 動作 動作モード ...............................................................61 動作開始 動作開始 .................................................................387 動作終了 動作終了 / 停止 ......................................................388 動作説明 動作説明 .................................................................224 透明制御 透明制御 ( 画面単位設定 ) ...................................535 特長 その他の特長 .............................................................4 特長 .....................................................27, 46, 124, 486 時計タイマ 時計タイマ .....................................................100, 111 時計タイマ使用時の注意事項 .............................116 時計タイマの動作 .................................................116 ドットクロック 外部ドットクロック入力 .....................................562 出力ドットクロック制御 .....................................565 ドットクロック生成用 PLL ................................666 内部 VCO 生成ドットクロック入力 ..................562 入力ドットクロック選択制御 .............................562 な 内蔵 RAM 内蔵 RAM ...................................................................3 内蔵周辺要求 内蔵周辺要求 .........................................................378 に 入出力回路形式 入出力回路形式 .......................................................15 は バーストアクセス バーストアクセスの動作 .....................................184 ハードウェア ハードウェア構成 .................................268, 280, 358 ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ .........................629 バイトオーダリング バイトオーダリング ...............................................39 バスアービトレーション バスアービトレーション .................................... 199 バスインタフェース バスインタフェース ................................................ 2 バスエラー バスエラー ............................................................ 353 バスモード バスモード .............................................................. 61 発振安定待ち 発振安定待ち時間の選択 ...................................... 69 発振安定待ち発生要因 .......................................... 69 パルス幅 パルス幅カウント動作 ........................................ 263 パレット RAM パレット RAM 構成 .............................................505 半透明制御 半透明制御 ( 画面単位設定 ) ............................... 536 ひ 比較演算 比較演算命令 ........................................................ 678 ビットオーダリング ビットオーダリング .............................................. 39 ビットサーチモジュール ビットサーチモジュール (REALOS 使用 ) ........... 3 ビット操作 ビット操作命令 ....................................................679 非同期 非同期 ( 調歩同期 ) モード ..................................321 表示 表示機能 ................................................................ 489 表示メモリ書込み ................................................503 表示メモリと表示画面 ........................................ 502 表示位置制御 画面背景色の表示位置制御 ................................497 画面背景文字の表示位置制御 ............................496 スプライト文字の表示位置制御 ........................ 498 メイン画面の表示位置制御 ................................493 表示信号出力 表示信号出力タイミング .................................... 574 表示信号出力例 表示信号出力例 1 ................................................. 574 表示信号出力例 2 ................................................. 575 表示制御 表示制御コマンド ................................................586 表示制御コマンド一覧 ........................................ 587 表示例 表示例 ...........................507, 512, 514, 518, 531, 538, 539, 541, 543, 546, 547, 578 ふ フィールド検出 フィールド検出制御 ............................................ 571 フィールド補正制御 フィールド補正制御 ............................................ 573 フォントメモリ フォントメモリ構成 ............................................ 501 ふちどり ふちどり色 ............................................................ 522 ふちどり形式制御 ................................................516 701 ふちどり出力制御 .................................................515 ふちどり表示ルール .............................................522 復帰 退避・復帰の処理 .................................................300 フラッシュメモリ フラッシュメモリ書込み / 消去 .........................634 フラッシュメモリの概要 .....................................616 ブリンク制御 ブリンク制御 ( 文字単位設定 ) ...........................531 ブリンク表示 ブリンク表示の周期 .............................................533 フローチャート 動作フローチャート .............................................392 プログラミングモード FR-CPU プログラミングモード (16bit,Read/Write) ..........................................................................624 プログラミングモデル 基本プログラミングモデル ...................................32 プログラムアクセス プログラムアクセス ...............................................40 ブロックサイズ ブロックサイズ .....................................................383 ブロック図 ブロック図 .............................................................111 ブロックダイヤグラム ブロックダイヤグラム .......................6, 81, 117, 126, 212, 219, 230, 243, 256, 270, 284, 292, 295, 303, 311, 334, 360, 401, 469, 488, 617 ほ ポート ポート基本ブロックダイヤグラム .....................204 ホールド ホールド調停 .........................................................386 ホールドリクエスト ホールドリクエスト取り下げ要求 (Hold Request Cancel Request) ................................................278 ボーレート ボーレートの計算 .................................................216 補足事項 補足事項 .................................................................450 ま マスタアドレッシング マスタアドレッシング .........................................352 待ち時間 PLL 逓倍率変更後の待ち時間 ..............................76 PLL 動作許可後の待ち時間 ..................................76 ストップモード復帰後の待ち時間 .......................77 設定初期化後の待ち時間 .......................................76 電源投入後の待ち時間 ...........................................76 め 命令 FR ファミリの命令一覧表 ...................................677 その他の命令 .........................................................685 未定義命令例外の動作 ...........................................59 702 命令概要 .................................................................. 30 命令フォーマット ................................................676 命令一覧表 命令一覧表の読み方 ............................................ 674 メインルーチン メインルーチン ....................................................355 メモリ メモリマップ ........................................................ 617 メモリストア メモリストア命令 ................................................682 メモリマップ メモリマップ .................................................... 26, 41 メモリロード メモリロード命令 ................................................681 も モード モード設定 .............................................................. 62 文字 RAM 文字 RAM 1 文字書込み ...................................... 503 文字 RAM 複数文字一括書込み (VRAM フィル ) ..........................................................................504 文字色 文字色 (16 色 , 文字単位設定 ) ............................510 文字色置換色 文字色置換色 ( 画面単位設定 ) ........................... 530 文字置換制御 グラフィック色文字置換制御 ( 画面単位設定 ) ..........................................................................530 文字背景 文字背景色 (16 色 , 文字単位設定 ) .................... 537 文字背景拡張制御 ( 行単位設定 ) .......................543 文字背景制御 ( 文字単位設定 ) ........................... 537 ゆ 優先順位判定 優先順位判定 ........................................................ 273 よ 読出し 読出し / リセット状態 .........................................635 ら ラストパケット送信 ラストパケット送信データの書き込み ............446 ラッチアップ ラッチアップ防止のために ..................................22 り リセット 通常リセット動作 ..................................................71 同期モードのソフトウェアリセットについて ............................................................................23 同期リセット動作 ..................................................71 読出し / リセット状態 .........................................635 リソース命令 リソース命令 .........................................................690 リロード リロード動作 .........................................................383 リロードタイマ 16 ビットリロードタイマの概要 ........................218 リロードタイマ (REALOS 用 1ch 含む ) ................3 れ レジスタ コントロールステータス レジスタ ....................231 制御レジスタ .........................................................280 レジスタ ...................................................................33 レジスタ一覧 .................................128, 212, 218, 229, 242, 269, 284, 292, 295, 310, 332, 359 レジスタ構成 .................................................256, 302 レジスタ設定時の注意 .........................................361 レジスタ設定手順 .................................................201 レジスタ説明 .........................................112, 118, 214 レジスタ表記説明 .................................................402 レジスタマップ .....................................................423 レジスタ間転送 レジスタ間転送命令 .............................................682 ろ ローパスフィルタ ローパスフィルタについて .................................254 論理演算 論理演算命令 ........................................................ 678 わ 割込み DMAC 割込み制御 ............................................... 389 DMA による周辺割込みクリア .......................... 387 外部割込みの動作手順について ........................ 287 外部割込みの動作について ................................287 外部割込み要求レベルについて ........................ 288 時計割込み ............................................................ 114 メイン発振安定待ち割込み ................................120 ユーザ割込み・NMI の動作 ..................................57 割込みコントローラ ................................................ 3 割込みスタック ......................................................50 割込み制御 ............................................................ 581 割込み発生およびフラグのセットタイミング ..........................................................................324 割込み要因一覧 ....................................................438 割込み要因とタイミングチャート .................... 239 割込み要求発生 ....................................................265 割込みルーチン ....................................................356 割込みレベル .......................................................... 47 割込み・NMI に対するレベルマスク .................. 48 割込み番号 割込み番号 ............................................................ 294 割込みベクタ 割込みベクタ ........................................................ 663 ワンショット ワンショット動作 ................................................238 703 704 CM71-10119-2 富士通マイクロエレクトロニクス • CONTROLLER MANUAL FR60 32 ビットマイクロコントローラ MB91310 シリーズ ハードウェアマニュアル 2008 年 4 月 第 2 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 販売戦略部