本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通半導体デバイス CONTROLLER MANUAL CM71-10127-2 FR60Lite 32 ビット・マイクロコントローラ MB91260B Series ハードウェアマニュアル FR60Lite 32 ビット・マイクロコントローラ MB91260B Series ハードウェアマニュアル 開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。 『Check Sheet』は , 下記サポートページに掲載されています。 URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html 『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を リストにしたものです。 富士通株式会社 はじめに ■ 本書の目的と対象読者 富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。 FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理が要求 される組込み制御用に各種 I/O リソースを内蔵したマイクロコントローラです。 DVD プレーヤ , プリンタ , TV, PDP 制御用等 , 高性能な CPU 処理パワーを要求される 組込み用途に最適な仕様となっています。 本品種は , CPU として FR ファミリと互換性のある FR60Lite を使用しています。 本書は , 実際に MB91260B シリーズを使用して製品を開発される技術者を対象に , MB91260B シリーズの機能や動作について解説したものです。本書をご一読ください。 ■ 商標 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. ■ サンプルプログラム FRファミリの周辺機能を動作させるためのサンプルプログラムを無償で提供しており ます。当社マイコンの動作仕様や使用方法の確認などにお役立てください。 マイコンサポート情報 http://jp.fujitsu.com/microelectronics/products/micom/support/ * サンプルプログラムについては , 予告なしに変更することがあります。本ソフトは , 標準的な動作や使い方を示したものですので,お客様のシステム上でご使用の際は十分 評価の上でご使用ください。また , これらの使用に起因し生じた損害については , 当社 は一切その責任を負いません。 ■ 本書の全体構成 本書は , 以下に示す 18 の章 , および付録から構成されています。 第1章 概要 この章では , MB91260B シリーズの特長 , ブロックダイヤグラム , 機能概要など全体 を知るための基本的なことがらについて説明します。 第2章 デバイスの取扱いについて この章では , MB91260B シリーズの取扱い上の注意について説明します。 第3章 CPU および制御部 この章では , FR ファミリの機能を知るために , アーキテクチャ , 仕様 , 命令などの 基本的なことがらについて説明します。 i 第4章 I/O ポート この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。 第5章 割込みコントローラ この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , 動作 , およびホー ルドリクエスト取下げ要求機能の使用例について説明します。 第6章 外部割込み・NMI 制御部 この章では , 外部割込み・NMI 制御部の概要 , レジスタの構成 / 機能 , および動作に ついて説明します。 第7章 REALOS 関連ハード この章では , REALOS 関連ハードの遅延割込みモジュールとビットサーチモジュー ルについて , 概要 , レジスタの構成 / 機能 , および動作を説明します。 第8章 リロードタイマ この章では , リロードタイマの概要 , レジスタの構成 / 機能 , および動作について説 明します。 第9章 PPG この章では , PPG の概要 , レジスタの構成 / 機能 , および動作について説明します。 第 10 章 PWC (Pulse Width Count:パルス幅測定 ) この章では, PWC の概要 , レジスタの構成 /機能 , および動作について説明します。 第 11 章 多機能タイマ この章では , 多機能タイマの概要 , レジスタの構成 / 機能および動作について説明し ます。 第 12 章 U-TIMER (16 bit timer for UART baud rate generation) この章では , U-TIMER の概要 , レジスタの構成 / 機能および動作について説明しま す。 第 13 章 UART この章では, UARTの概要とレジスタの構成/機能, および動作について説明します。 第 14 章 8/10 ビット A/D コンバータ この章では , 8/10 ビット A/D コンバータの概要 , レジスタの構成 / 機能 , および動作 について説明します。 第 15 章 積和演算回路 この章では , 積和演算回路の特長 , レジスタの構成 / 機能 , および積和演算マクロ ( 定義と各命令 ) について説明します。 第 16 章 DMAC (DMA コントローラ ) この章では , DMAC (DMA コントローラ ) の概要 , レジスタの構成 / 機能 , および動 作について説明します。 第 17 章 フラッシュメモリ この章では , フラッシュメモリの概要 , レジスタの構成 / 機能 , アクセスモード , 自 動アルゴリズムおよびセクタプロテクトオペレーションについて説明します。 第 18 章 シリアル書込み接続 この章では , シリアル書込みの基本構成 , および接続例について説明します。 ii 付録 付録として , I/O マップ , 割込みベクタ , 端子状態一覧 , リトル・エンディアン領域 を利用する際の注意事項 , 命令一覧 , および使用上の注意事項について記載してい ます。 iii • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認 ください。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当 社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従 いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性 が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承 ください。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該 当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。 Copyright ©2005-2006 FUJITSU LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 第2章 2.1 第3章 概要 .............................................................................................................1 概要 ........................................................................................................................................ 2 ブロックダイヤグラム............................................................................................................ 4 外形寸法図.............................................................................................................................. 5 端子配列図.............................................................................................................................. 7 端子機能一覧表 ...................................................................................................................... 9 入出力回路形式 .................................................................................................................... 19 デバイスの使用上の注意...........................................................................23 デバイスの使用上の注意 ...................................................................................................... 24 CPU および制御部 ....................................................................................27 3.1 メモリ空間............................................................................................................................ 28 3.2 内部アーキテクチャ ............................................................................................................. 30 3.3 プログラミングモデル.......................................................................................................... 35 3.4 データ構造............................................................................................................................ 42 3.5 ワードアライメント ............................................................................................................. 43 3.6 メモリマップ ........................................................................................................................ 44 3.7 分岐命令 ............................................................................................................................... 47 3.8 EIT ( 例外・割込み・トラップ ) ........................................................................................... 50 3.8.1 割込みレベル .............................................................................................................. 51 3.8.2 ICR (Interrupt Control Register )................................................................................. 53 3.8.3 SSP (System Stack Pointer)....................................................................................... 54 3.8.4 TBR (Table Base Register) ........................................................................................ 55 3.8.5 多重 EIT 処理.............................................................................................................. 58 3.8.6 動作 ............................................................................................................................ 60 3.9 動作モード............................................................................................................................ 64 3.10 リセット ( デバイス初期化 ) ................................................................................................. 66 3.11 クロック生成制御 ................................................................................................................. 73 3.11.1 PLL 制御 ..................................................................................................................... 74 3.11.2 発振安定待ち・PLL ロック待ち時間.......................................................................... 75 3.11.3 クロック分配 .............................................................................................................. 77 3.11.4 クロック分周 .............................................................................................................. 78 3.11.5 クロック生成制御部のブロック図.............................................................................. 79 3.11.6 クロック生成制御部のレジスタ詳細説明................................................................... 80 3.11.7 クロック制御部が持つ周辺回路 ................................................................................. 92 3.12 デバイス状態制御 ................................................................................................................. 95 第4章 4.1 4.2 4.3 I/O ポート................................................................................................103 I/O ポートの概要 ................................................................................................................ 104 I/O ポートのレジスタ ......................................................................................................... 106 アナログ入力ポート ........................................................................................................... 112 v 第5章 5.1 5.2 5.3 割込みコントローラ................................................................................115 概要 .................................................................................................................................... 116 割込みコントローラのレジスタ ......................................................................................... 120 割込みコントローラの動作................................................................................................. 122 第6章 6.1 6.2 6.3 外部割込み・NMI 制御部 ........................................................................131 外部割込み /NMI 制御部の概要........................................................................................... 132 外部割込み /NMI 制御部のレジスタ.................................................................................... 133 外部割込み /NMI 制御部の動作........................................................................................... 135 第7章 7.1 7.2 7.3 7.4 7.5 7.6 REALOS 関連ハード ..............................................................................141 遅延割込みモジュール........................................................................................................ 142 遅延割込みモジュールのレジスタ...................................................................................... 143 遅延割込みモジュールの動作 ............................................................................................. 144 ビットサーチモジュール .................................................................................................... 145 ビットサーチモジュールのレジスタ .................................................................................. 146 ビットサーチモジュールの動作 ......................................................................................... 148 第8章 8.1 8.2 8.3 8.4 16 ビットリロードタイマ .......................................................................151 概要 .................................................................................................................................... 152 16 ビットリロードタイマのブロックダイヤグラム ........................................................... 153 16 ビットリロードタイマのレジスタ................................................................................. 154 16 ビットリロードタイマの動作 ........................................................................................ 158 第9章 9.1 9.2 9.3 9.4 PPG(Programable Pulse Generator) ...................................................163 概要 .................................................................................................................................... 164 ブロックダイヤグラム........................................................................................................ 167 PPG のレジスタ ................................................................................................................. 171 動作説明 ............................................................................................................................. 176 第 10 章 10.1 10.2 10.3 10.4 PWC (Pulse Width Count: パルス幅測定 )............................................183 概要 .................................................................................................................................... 184 ブロックダイヤグラム........................................................................................................ 185 PWC のレジスタ ................................................................................................................ 186 動作説明 ............................................................................................................................. 192 第 11 章 多機能タイマ...........................................................................................203 11.1 概要 .................................................................................................................................... 204 11.2 ブロックダイヤグラム........................................................................................................ 206 11.3 多機能タイマの端子 ........................................................................................................... 212 11.4 多機能タイマのレジスタ .................................................................................................... 213 11.4.1 コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) / コンペアクリアレジスタ (CPCLRH, CPCLRL)........................................................ 218 11.4.2 タイマデータレジスタ (TCDTH, TCDTL) ................................................................ 220 11.4.3 タイマ状態制御レジスタ (TCCSH, TCCSL) ............................................................ 221 11.4.4 A/D トリガ制御レジスタ (ADTRGC)........................................................................ 227 11.4.5 アウトプットコンペアバッファレジスタ (OCCPBH0 ∼ OCCPBH5, OCCPBL0 ∼ OCCPBL5)/ アウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5)........................................................ 228 vi 11.4.6 11.4.7 11.4.8 11.4.9 11.4.10 11.4.11 11.4.12 11.4.13 コンペア制御レジスタ (OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5)............................. 230 コンペアモード制御レジスタ (OCMOD).................................................................. 237 インプットキャプチャデータレジスタ (IPCPH0 ∼ IPCPH3, IPCPL0 ∼ IPCPL3)................................................................ 239 インプットキャプチャ状態制御 /PPG 出力制御レジスタ (ICSH23, ICSL23, PICSH01, PICSL01) ................................................................... 240 16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2)........................................................ 247 16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2)...................................... 248 波形制御レジスタ (SIGCR1, SIGCR2)..................................................................... 257 A/D 起動コンペアレジスタ (ADCOMP0, ADCOMP1, ADCOMP2, ADCOMPC) ................................................. 260 11.5 多機能タイマ割込み ........................................................................................................... 262 11.6 多機能タイマの動作 ........................................................................................................... 266 11.6.1 16 ビットフリーランタイマの動作 .......................................................................... 267 11.6.2 16 ビットアウトプットコンペアの動作 ................................................................... 273 11.6.3 16 ビットインプットキャプチャの動作 ................................................................... 283 11.6.4 波形ジェネレータの動作 .......................................................................................... 285 11.6.4.1 タイマモードの動作 ............................................................................................ 289 11.6.4.2 デッドタイムタイマモード時の動作................................................................... 291 11.6.4.3 DTTI 端子制御の動作 .......................................................................................... 295 11.6.5 A/D 起動コンペアの動作 .......................................................................................... 297 11.7 多機能タイマの使用上の注意 ............................................................................................. 298 11.8 多機能タイマのプログラム例 ............................................................................................. 301 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) .....................305 12.1 概要 .................................................................................................................................... 306 12.2 レジスタ説明 ...................................................................................................................... 308 12.3 動作説明 ............................................................................................................................. 311 第 13 章 13.1 13.2 13.3 13.4 13.5 UART ......................................................................................................313 概要 .................................................................................................................................... 314 レジスタ詳細説明 ............................................................................................................... 317 UART の動作 ...................................................................................................................... 323 応用例 ................................................................................................................................. 329 ボーレートと U-TIMER のリロード値の設定例 ................................................................. 331 第 14 章 8/10 ビット A/D コンバータ....................................................................333 14.1 概要 .................................................................................................................................... 334 14.2 構成 .................................................................................................................................... 335 14.3 端子 .................................................................................................................................... 338 14.4 レジスタ ............................................................................................................................. 340 14.4.1 A/D チャネル制御レジスタ (ADCH) ......................................................................... 341 14.4.2 A/D モード設定レジスタ (ADMD) ............................................................................ 343 14.4.3 A/D 制御ステータスレジスタ (ADCS)...................................................................... 346 14.4.4 A/D データレジスタ (ADCD).................................................................................... 349 14.4.5 アナログ入力制御レジスタ (AICR) .......................................................................... 350 14.5 割込み ................................................................................................................................. 351 14.6 動作説明 ............................................................................................................................. 352 14.7 A/D 変換データ保護機能 .................................................................................................... 356 vii 14.8 使用上の注意 ...................................................................................................................... 357 第 15 章 15.1 15.2 15.3 15.4 概要 .................................................................................................................................... 360 レジスタ説明 ...................................................................................................................... 365 動作説明 ............................................................................................................................. 370 命令詳細説明 ...................................................................................................................... 374 第 16 章 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 積和演算回路...........................................................................................359 DMAC (DMA コントローラ ) ..................................................................379 概要 .................................................................................................................................... 380 DMAC のレジスタ .............................................................................................................. 383 DMAC の動作 ..................................................................................................................... 397 転送要求の設定 .................................................................................................................. 399 転送シーケンス .................................................................................................................. 400 DMA 転送全般 .................................................................................................................... 402 動作フローチャート ........................................................................................................... 410 データパス.......................................................................................................................... 412 第 17 章 フラッシュメモリ ...................................................................................415 17.1 フラッシュメモリの概要 .................................................................................................... 416 17.2 レジスタ ............................................................................................................................. 421 17.2.1 フラッシュメモリステータスレジスタ (FLCR)........................................................ 422 17.2.2 フラッシュウェイトレジスタ (FLWC) ..................................................................... 424 17.3 フラッシュメモリのアクセスモード .................................................................................. 426 17.4 自動アルゴリズム起動方法................................................................................................. 428 17.5 自動アルゴリズム実行状態................................................................................................. 432 17.6 セクタプロテクトオペレーション...................................................................................... 438 第 18 章 シリアル書込み接続................................................................................443 18.1 概要 .................................................................................................................................... 444 付録 付録 A 付録 B 付録 C 付録 D 付録 E 付録 F 索引 ................................................................................................................449 I/O マップ ....................................................................................................................... 450 ベクタテーブル .............................................................................................................. 458 各 CPU ステートにおける端子状態 ............................................................................... 462 リトル・エンディアン領域を利用する際の注意事項..................................................... 465 命令一覧表...................................................................................................................... 471 使用上の注意 .................................................................................................................. 486 ................................................................................................................491 viii 本版での主な変更内容 ページ i 55,56 変更内容(詳細は本文を参照してください。 ) ■ サンプルプログラム を追加 表 3.8-3 ベクタテーブル を変更 ( 命令ブレーク例外 → システム予約 ) ( オペランドブレークトラップ → システム予約 ) 68 ● ウォッチドッグリセット を変更 (WPR ( ウォッチドッグリセット発生延期レジスタ ) → CTBR ( タイムベースカウンタ クリアレジスタ )) 73 ■ ソースクロックの選択 を変更 (・φ はソースクロックを 2 分周または ,PLL 発振させた基本クロックを指します。し たがって , システムベースクロックは , 上記の内部ベースクロック発生のところで生 成されるクロックです。の文を追加 ) 79 図 3.11-1 ブロックダイヤグラム を変更 ([ ウォッチドッグ制御部]の WPR レジスタ の部分を削除 ) 81 [ ビット 9, ビット 8] WT1,WT0 (Watchdog interval Time select) の表を変更 (WPR → CTBR) 82 ■ STCR : スタンバイ制御レジスタ を変更 86 ■ CTBR : タイムベースカウンタクリアレジスタ を変更 ( ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリア を行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延 期されます。詳細は , 「3.11.7 クロック制御部が持つ周辺回路」の項を参照してくだ さい。の文を追加 ) 89 ■ WPR: ウォッチドッグリセット発生延期レジスタ を削除 92 ● ウォッチドッグタイマ の ウォッチドッグリセットの発生延期 を変更 (WPR ( ウォッチドッグリセット発生延期レジスタ ) → CTBR ( タイムベースカウンタ クリアレジスタ ) ) 98 ● スリープモード を変更 100 ● ストップモード を変更 123 表 5.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 3) を変更 ( 命令ブレーク例外 → システム予約 ) ( オペランドブレークトラップ → システム予約 ) 138 ■ 外部割込みを使用した STOP 状態からの復帰時における注意事項 を追加 139 ■ STOP 状態からの復帰動作について を追加 314 ■ UART の特長 を変更 (・DRCL レジスタへの書込み動作による DMAC の割込み要因クリア の記述を削除 ) ix ページ 変更内容(詳細は本文を参照してください。 ) 315 ■ レジスタ一覧 を変更 (DRCL の部分を削除 ) 322 ■ DRCL を削除 328 ■ 使用上の注意 を変更 ( 割込みによる DMA 転送を最初に起動する前に DRCL レジスタに書き込んでくださ い。の文を削除 ) 373 <注意事項> を追加 451, 456 表 A-1 I/O マップ において , 下記レジスタのレジスタの欄を変更 (DRCL0, DRCL1, DRCL2, WPR) 456 表 A-1 I/O マップを変更 (*3: 予約レジスタです。アクセス禁止です。の文を追加 ) 459 表 B-1 ベクタテーブル (1 / 3) を変更 ( 命令ブレーク例外 → システム予約 ) ( オペランドブレークトラップ → システム予約 ) 487 ● 低消費電力モード を変更 x 第1章 概要 MB91260B シリーズの特長 , ブロックダイヤグラ ム , 機能概要など全体を知るための基本的なことに ついて説明します 。 1.1 概要 1.2 ブロックダイヤグラム 1.3 外形寸法図 1.4 端子配列図 1.5 端子機能一覧表 1.6 入出力回路形式 1 第 1 章 概要 概要 1.1 MB91260B シリーズは高速処理を要求される組込み制御用途向けに設計された汎用 の富士通 32 ビット RISC マイクロコントローラです。CPU には , FR ファミリと互 換の FR60Lite を使用しています。 ■ 特長 ● FR60Lite CPU • 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段 • 最大動作周波数 : 33 MHz ( 原発振 4.192 MHz 原発振 8 逓倍 (PLL クロック逓倍方式 )) • 16 ビット固定長命令 ( 基本命令 ) • 命令実行速度 : 1 命令 /1 サイクル • メモリ−メモリ間転送命令 , ビット処理命令 , バレルシフト命令など : 組込み用途に適した命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : C 言語対応命令 • レジスタのインターロック機能 : アセンブラ記述も容易に可能 • 乗算器の内蔵 / 命令レベルでのサポート • 符号付き 32 ビット乗算 : 5 サイクル • 符号付き 16 ビット乗算 : 3 サイクル • 割込み (PC/PS 退避 ) : 6 サイクル (16 プライオリティレベル ) • ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に 実行可能 • FR ファミリとの命令互換 ● 内蔵周辺機能 • 内蔵 ROM 容量と ROM タイプ マスク ROM: 128 K バイト (MB91263B), 256 K バイト (MB91264B) フラッシュ ROM:256 K バイト (MB91F264B) • 内蔵 RAM 容量 : 8 K バイト • A/D コンバータ ( 逐次比較型 ) 分解能 : 10 ビット : 8 チャネル× 1 ユニット , 2 チャネル× 2 ユニット 変換時間 : 1.2 µs ( 最小変換時間システムクロック 33 MHz 時 ) 1.35 µs ( 最小変換時間システムクロック 20 MHz 時 ) • 外部割込み入力 : 10 チャネル • ビットサーチモジュール (REALOS 使用 ) 1 ワード中の MSB ( 上位ビット ) から最初の "1" → "0" 変化ビット位置をサーチす る機能 2 第 1 章 概要 • UART ( 全二重ダブルバッファ方式 ): 3 チャネル パリティあり / なし選択可能 非同期 ( 調歩同期 )/ クロック同期通信の選択可能 専用ボーレートタイマ (U-TIMER) を各チャネルに内蔵 外部クロックを転送クロックとして使用可能 パリティ , フレーム , オーバランエラー検出機能あり • 8/16 ビット PPG タイマ : 16 チャネル (8 ビット時 ) / 8 チャネル (16 ビット時 ) • 16 ビットリロードタイマ : 3 チャネル ( カスケードモードあり , リロードタイマ 0 の 出力なし ) • 16 ビットフリーランタイマ : 1 チャネル • 16 ビット PWC タイマ : 2 チャネル • インプットキャプチャ : 4 チャネル ( フリーランタイマと連動 ) • アウトプットコンペア : 6 チャネル ( フリーランタイマと連動 ) • 波形ジェネレータ アウトプットコンペア出力 , 16 ビット PPG タイマ 0, 16 ビットデッドタイマを使用 してさまざまな波形を生成できます。 • 積和演算回路 RAM: 命令 RAM 256 × 16 ビット XRAM 64 × 16 ビット YRAM 64 × 16 ビット 積和演算 (16 ビット× 16 ビット+ 40 ビット ) を 1 サイクル実行 演算結果は 40 ビットから 16 ビットへの丸め処理で抽出 • DMAC (DMA Controller): 5 チャネル 内蔵ペリフェラル割込み , ソフトウェアによって転送起動が可能 • ウォッチドッグタイマ • 低消費電力モード スリープ / ストップ機能 ● その他 • パッケージ : QFP-100, LQFP-100 • CMOS 0.35 µm テクノロジ • 電源 1 電源 [Vcc=4.0 V ∼ 5.5 V] 3 第 1 章 概要 1.2 ブロックダイヤグラム MB91260B シリーズのブロックダイヤグラムを示します。 ■ MB91260B シリーズのブロックダイヤグラム 図 1.2-1 MB91260B シリーズのブロックダイヤグラム FR 60Lite CPU コア 32 32 DMAC 5チャネル ビットサーチ 積和マクロ バス コンバータ ROM 128 Kバイト/ ROM 256 Kバイト/ Flash 256 Kバイト RAM 8 Kバイト X0,X1 MD0~MD2 INIT クロック 制御 32 32 to 16 アダプタ 16 割込み コントローラ INT0~INT9 NMI SIN0~SIN2 SOT0~SOT2 SCK0~SCK2 10チャネル 外部割込み PORT I/F 3チャネル 16ビット リロードタイマ 2チャネル 16ビット PWCタイマ 3チャネル UART 8チャネル 8/16ビット PPGタイマ PORT TIN0~TIN2 TOT1,TOT2 PWI0,PWI1 PPG0~PPG15 3チャネル U-TIMER AVcc ADTG0 AN0~AN7 AVRH0 ADTG1 AVRH1 AN8,AN9 ADTG2 AVRH2 AN10,AN11 4 多機能タイマ 8チャネル 入力 8/10ビット A/D-0 2チャネル 入力 8/10ビット A/D-1 2チャネル 入力 8/10ビット A/D-2 フリーランタイマ 1チャネル CKI インプットキャプチャ 4チャネル IC0~IC3 アウトプットコンペア 6チャネル 波形ジェネレータ RTO0~RTO5 DTTI 第 1 章 概要 外形寸法図 1.3 MB91260B シリーズには ,2 種類のパッケージが用意されています。図 1.3-1 , 図 1.3-2 に MB91260B の外形寸法図を示します。 ■ FPT-100P-M05 の外形寸法図 図 1.3-1 FPT-100P-M05 の外形寸法図 プラスチック・LQFP, 100 ピン (FPT-100P-M05) リードピッチ 0.50mm パッケージ幅× パッケージ長さ 14.0 × 14.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX 質量 0.65g コード (参考) P-LFQFP100-14×14-0.50 プラスチック・LQFP, 100 ピン (FPT-100P-M05) 注 1) * 印寸法はレジン残りを含まず。 注 2) 端子幅および端子厚さはメッキ厚を含む。 注 3) 端子幅はタイバ切断残りを含まず。 16.00±0.20(.630±.008)SQ * 14.00±0.10(.551±.004)SQ 75 51 76 50 0.08(.003) Details of "A" part +0.20 100 26 25 1 C 2003 FUJITSU LIMITED F100007S-c-4-6 0.20±0.05 (.008±.002) 0.08(.003) M 0.10±0.10 (.004±.004) (Stand off) 0 ~8 "A" 0.50(.020) +.008 1.50 –0.10 .059 –.004 (Mounting height) INDEX 0.145±0.055 (.0057±.0022) 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) 0.25(.010) 単位: mm (inches) 注意:括弧内の値は参考値です。 5 第 1 章 概要 ■ FPT-100P-M06 の外形寸法図 図 1.3-2 FPT-100P-M06 の外形寸法図 プラスチック・ QFP, 100 ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 14.00 × 20.00mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 3.35mm MAX コード (参考) P-QFP100-14×20-0.65 (FPT-100P-M06) プラスチック・QFP, 100 ピン (FPT-100P-M06) 注 1) * 印寸法はレジン残りを含まず。 注 2) 端子幅および端子厚さはメッキ厚を含む。 注 3) 端子幅はタイバ切断残りを含まず。 23.90±0.40(.941±.016) * 20.00±0.20(.787±.008) 80 51 81 50 0.10(.004) 17.90±0.40 (.705±.016) *14.00±0.20 (.551±.008) INDEX Details of "A" part 100 1 30 0.65(.026) "A" C 6 0.25(.010) +0.35 3.00 –0.20 +.014 .118 –.008 (Mounting height) 0~8 31 2002 FUJITSU LIMITED F100008S-c-5-5 0.32±0.05 (.013±.002) 0.13(.005) M 0.17±0.06 (.007±.002) 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) 0.25±0.20 (.010±.008) (Stand off) 単位: mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 1.4 端子配列図 MB91260B シリーズの端子配列図を示します。 ■ 端子配列図 P22/SCK0 P21/SOT0 P20/SIN0 P17 P16/PPG15 X0 X1 Vss Vcc P15/PPG14 P14/PPG13 P13/PPG12 P12/PPG11 P11/PPG10 P10/PPG9 P07/PPG8 P06/PPG7 P05/PPG6 P04/PPG5 P03/PPG4 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 図 1.4-1 QFP-100 P23/SIN1 1 80 P02/PPG3 P24/SOT1 2 79 P01/PPG2 P25/SCK1 3 78 P00/PPG1 P26/INT6 4 77 INIT P27/INT7 5 76 MD0 P50 6 75 MD1 P51/TIN0 7 74 MD2 P52/TIN1 8 73 NMI P53/TIN2 9 72 P77/ADTG2 P54/INT0 10 71 P76/ADTG1 P55/INT1 11 70 P75/ADTG0 P56/INT2 12 69 P74/PWI1 P57/INT3 13 68 Vss PG0/CKI/INT4 14 67 Vcc PG1/PPG0/INT5 15 66 P73/PWI0 PG2 16 65 P72/DTTI Vcc 17 64 P71/TOT2 Vss 18 63 P70/TOT1 C 19 62 P63/INT9 PG3/SIN2 20 61 P62/INT8 PG4/SOT2 21 60 P61/IC3 PG5/SCK2 22 59 P60/IC2 P40 23 58 P37/IC1 P41 24 57 P36/IC0 P42 25 56 P35/RTO5 P43 26 55 P34/RTO4 P44 27 54 P33/RTO3 P45 28 53 P32/RTO2 P46 29 52 P31/RTO1 P47 30 51 P30/RTO0 TOP VIEW 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 PE1/AN11 PE0/AN10 AVRH2 ACC AVcc AVRH1 AVss PD1/AN9 PD0/AN8 AVRH0 PC7/AN7 PC6/AN6 PC5/AN5 PC4/AN4 PC3/AN3 PC2/AN2 PC1/AN1 PC0/AN0 Vcc Vss FPT-100P-M06 7 第 1 章 概要 8 P24/SOT1 P23/SIN1 P22/SCK0 P21/SOT0 P20/SIN0 P17 P16/PPG15 X0 X1 Vss Vcc P15/PPG14 P14/PPG13 P13/PPG12 P12/PPG11 P11/PPG10 P10/PPG9 P07/PPG8 P06/PPG7 P05/PPG6 P04/PPG5 P03/PPG4 P02/PPG3 P01/PPG2 P00/PPG1 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 図 1.4-2 LQFP-100 P25/SCK1 1 75 INIT P26/INT6 2 74 MD0 P27/INT7 3 73 MD1 P50 4 72 MD2 P51/TIN0 5 71 NMI P52/TIN1 6 70 P77/ADTG2 P53/TIN2 7 69 P76/ADTG1 P54/INT0 8 68 P75/ADTG0 P55/INT1 9 67 P74/PWI1 P56/INT2 10 66 Vss P57/INT3 11 65 Vcc 64 P73/PWI0 PG0/CKI/INT4 12 PG1/PPG0/INT5 13 PG2 14 Vcc Vss TOP VIEW 63 P72/DTTI 62 P71/TOT2 15 61 P70/TOT1 16 60 P63/INT9 C 17 59 P62/INT8 PG3/SIN2 18 58 P61/IC3 PG4/SOT2 19 57 P60/IC2 PG5/SCK2 20 56 P37/IC1 P40 21 55 P36/IC0 P41 22 54 P35/RTO5 P42 23 53 P34/RTO4 P43 24 52 P33/RTO3 P44 25 51 P32/RTO2 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 P45 P46 P47 PE1/AN11 PE0/AN10 AVRH2 ACC AVcc AVRH1 AVss PD1/AN9 PD0/AN8 AVRH0 PC7/AN7 PC6/AN6 PC5/AN5 PC4/AN4 PC3/AN3 PC2/AN2 PC1/AN1 PC0/AN0 Vcc Vss P30/RTO0 P31/RTO1 FPT-100P-M05 第 1 章 概要 端子機能一覧表 1.5 MB91260B シリーズの端子機能の一覧を示します。 ■ 端子機能一覧表 表 1.5-1 端子機能一覧表 (1 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 SIN1 1 2 3 4 99 D 汎用入出力ポートです。UART1 のデータ入力指定が禁止のときに有効 になります。 SOT1 UART1 のデータ出力です。この機能は UART1 のデータ出力指定が許 可のときに有効になります。 100 D P24 汎用入出力ポートです。UART1 のデータ出力指定が禁止のときに有効 になります。 SCK1 UART1 のクロック入出力です。この機能は UART1 のクロック出力指 定が許可のときに有効になります。 1 D P25 汎用入出力ポートです。この機能は UART1 のクロック出力指定が禁止 のときに有効になります。 INT6 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 2 E 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 INT7 3 E 4 P50 C TIN0 7 5 C P51 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 P27 6 UART1 のデータ入力です。UART1 が入力動作をしている間は , この入 力を随時使用しますので , 意図的に行う以外はポートによる出力を停止 させておく必要があります。 P23 P26 5 機能説明 汎用入出力ポートです。シングルチップモードのときに有効になりま す。 リロードタイマ 0 の外部トリガ入力です。トリガ入力を許可している 間は , この入力を随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 汎用入出力ポートです。この機能はリロードタイマ 0 の外部クロック 入力指定が禁止のときに有効になります。 9 第 1 章 概要 表 1.5-1 端子機能一覧表 (2 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 TIN1 8 9 6 C 汎用入出力ポートです。この機能はリロードタイマ 1 の外部クロック 入力指定が禁止のときに有効になります。 TIN2 リロードタイマ 2 の外部トリガ入力です。トリガ入力を許可している 間は , この入力を随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 7 C 汎用入出力ポートです。この機能はリロードタイマ 2 の外部クロック 入力指定が禁止のときに有効になります。 INT0 8 E INT1 9 E INT2 10 E INT3 14 10 11 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 P56 13 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 P55 12 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 P54 11 リロードタイマ 1 の外部トリガ入力です。トリガ入力を許可している 間は , この入力を随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 P52 P53 10 機能説明 E 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 P57 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 CKI フリーランタイマの外部クロック入力端子です。フリーランタイマの 外部クロック入力として選択した場合は , この入力を随時使用しますの で , 意図的に行う以外はポートによる出力を停止させておく必要があり ます。 12 E INT4 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 PG0 汎用入出力ポートです。フリーランタイマの外部クロック入力指定お よび外部割込み入力指定が禁止のときに有効になります。 第 1 章 概要 表 1.5-1 端子機能一覧表 (3 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 PPG タイマ 0 の出力です。この機能は PPG タイマ 0 の出力指定が許可 のときに有効になります。 PPG0 15 13 INT5 E 14 PG2 C 汎用入出力ポートです。 D UART2 のデータ入力です。UART2 が入力動作をしている間は , この入 力を随時使用しますので , 意図的に行う以外はポートによる出力を停止 させておく必要があります。 SIN2 20 21 22 18 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 汎用入出力ポートです。PPG タイマ 0 の出力指定および外部割込み入 力が禁止のときに有効になります。 PG1 16 機能説明 PG3 汎用入出力ポートです。UART2 のデータ入力指定が禁止のときに有効 になります。 SOT2 UART2 のデータ出力です。この機能は UART2 のデータ出力指定が許 可のときに有効になります。 19 D PG4 汎用入出力ポートです。UART2 のデータ出力指定が禁止のときに有効 になります。 SCK2 UART2 のクロック入出力です。この機能は UART2 のクロック出力指 定が許可のときに有効になります。 20 D 汎用入出力ポートです。この機能は UART2 のクロック出力指定が禁止 のときに有効になります。 PG5 23 21 P40 C 汎用入出力ポートです。 24 22 P41 C 汎用入出力ポートです。 25 23 P42 C 汎用入出力ポートです。 26 24 P43 C 汎用入出力ポートです。 27 25 P44 C 汎用入出力ポートです。 28 26 P45 C 汎用入出力ポートです。 29 27 P46 C 汎用入出力ポートです。 30 28 P47 C 汎用入出力ポートです。 AN11 31 29 G PE1 A/D コンバータのアナログ入力です。AICR2 レジスタの指定がアナロ グ入力のときに有効となります。 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 11 第 1 章 概要 表 1.5-1 端子機能一覧表 (4 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 AN10 32 38 39 41 42 43 44 45 46 30 G A/D コンバータのアナログ入力です。AICR2 レジスタの指定がアナロ グ入力のときに有効となります。 PE0 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN9 A/D コンバータのアナログ入力です。AICR1 レジスタの指定がアナロ グ入力のときに有効となります。 36 G PD1 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN8 A/D コンバータのアナログ入力です。AICR1 レジスタの指定がアナロ グ入力のときに有効となります。 37 G PD0 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN7 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 39 G PC7 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN6 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 40 G PC6 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN5 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 41 G PC5 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN4 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 42 G PC4 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN3 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 43 G PC3 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN2 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 44 G PC2 12 機能説明 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 第 1 章 概要 表 1.5-1 端子機能一覧表 (5 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 AN1 47 48 45 G 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 AN0 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 46 G 汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに 有効になります。 RTO0 49 J RTO1 50 J RTO2 51 J RTO3 52 J RTO4 53 J RTO5 54 J P35 多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ 出力が許可のときに有効となります。 汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止 のときに有効になります。 P34 56 多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ 出力が許可のときに有効となります。 汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止 のときに有効になります。 P33 55 多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ 出力が許可のときに有効となります。 汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止 のときに有効になります。 P32 54 多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ 出力が許可のときに有効となります。 汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止 のときに有効になります。 P31 53 多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ 出力が許可のときに有効となります。 汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止 のときに有効になります。 P30 52 A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ グ入力のときに有効となります。 PC1 PC0 51 機能説明 多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ 出力が許可のときに有効となります。 汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止 のときに有効になります。 13 第 1 章 概要 表 1.5-1 端子機能一覧表 (6 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 IC0 57 58 59 60 55 D 汎用入出力ポートです。この機能はインプットキャプチャトリガ入力 指定が禁止のときに有効になります。 IC1 インプットキャプチャ 1 のトリガ入力です。インプットキャプチャト リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン プットキャプチャ入力として選択した場合は , この入力を随時使用しま すので , 意図的に行う以外はポートによる出力を停止させておく必要が あります。 56 D P37 汎用入出力ポートです。この機能はインプットキャプチャトリガ入力 指定が禁止のときに有効になります。 IC2 インプットキャプチャ 2 のトリガ入力です。インプットキャプチャト リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン プットキャプチャ入力として選択した場合は , この入力を随時使用しま すので , 意図的に行う以外はポートによる出力を停止させておく必要が あります。 57 D P60 汎用入出力ポートです。この機能はインプットキャプチャトリガ入力 指定が禁止のときに有効になります。 IC3 インプットキャプチャ 3 のトリガ入力です。インプットキャプチャト リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン プットキャプチャ入力として選択した場合は , この入力を随時使用しま すので , 意図的に行う以外はポートによる出力を停止させておく必要が あります。 58 D 汎用入出力ポートです。この機能はインプットキャプチャトリガ入力 指定が禁止のときに有効になります。 INT8 59 E INT9 60 E P63 14 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 P62 62 インプットキャプチャ 0 のトリガ入力です。インプットキャプチャト リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン プットキャプチャ入力として選択した場合は , この入力を随時使用しま すので , 意図的に行う以外はポートによる出力を停止させておく必要が あります。 P36 P61 61 機能説明 外部割込み入力です。対応する外部割込みを許可している間は , この入 力を随時使用していますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき に有効になります。 第 1 章 概要 表 1.5-1 端子機能一覧表 (7 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 TOT1 63 64 65 66 69 70 71 72 61 C 機能説明 リロードタイマ 1 の出力です。この機能はリロードタイマ出力許可の ときに有効になります。 P70 汎用入出力ポートです。この機能はリロードタイマ出力指定が禁止の ときに有効になります。 TOT2 リロードタイマ 2 の出力です。この機能はリロードタイマ出力許可の ときに有効になります。 62 C P71 汎用入出力ポートです。この機能はリロードタイマ出力指定が禁止の ときに有効になります。 DTTI 多機能タイマの波形ジェネレータ出力 RTO0 ∼ RTO5 を制御する入力 信号です。この機能は DTTI 入力が許可のときに有効になります。 63 D P72 汎用入出力ポートです。この機能は DTTI 入力指定が禁止のときに有効 になります。 PWI0 PWC タイマ 0 のパルス幅カウンタ入力です。この機能は PWC タイマ 0 のパルス幅カウンタ入力が許可のときに有効になります。 64 D P73 汎用入出力ポートです。この機能は PWC タイマ 0 のパルス幅カウンタ 入力指定が禁止のときに有効になります。 PWI1 PWC タイマ 1 のパルス幅カウンタ入力です。この機能は PWC タイマ 1 のパルス幅カウンタ入力が許可のときに有効になります。 67 D P74 汎用入出力ポートです。この機能は PWC タイマ 1 のパルス幅カウンタ 入力指定が禁止のときに有効になります。 ADTG 0 A/D コンバータ 0 の外部トリガ入力です。A/D の起動要因として選択し た場合は , この入力を随時使用しますので , 意図的に行う以外はポート 出力を停止させておく必要があります。 68 C P75 汎用入出力ポートです。この機能は , A/D コンバータ 0 の外部トリガ入 力指定が禁止のときに有効になります。 ADTG 1 A/D コンバータ 1 の外部トリガ入力です。A/D の起動要因として選択し た場合は , この入力を随時使用しますので , 意図的に行う以外はポート 出力を停止させておく必要があります。 C 69 P76 汎用入出力ポートです。この機能は , A/D コンバータ 1 の外部トリガ入 力指定が禁止のときに有効になります。 ADTG 2 A/D コンバータ 2 の外部トリガ入力です。A/D の起動要因として選択し た場合は , この入力を随時使用しますので , 意図的に行う以外はポート 出力を停止させておく必要があります。 70 C 汎用入出力ポートです。この機能は , A/D コンバータ 2 の外部トリガ入 力指定が禁止のときに有効になります。 P77 73 71 NMI H NMI(Non Maskable Interrupt) 入力です。 74 72 MD2 K モード端子 2 です。この端子の設定により基本動作モードを設定しま す。Vcc または Vss に接続してください。 15 第 1 章 概要 表 1.5-1 端子機能一覧表 (8 / 10) 端子番号 端子名 入出力 回路 形式 QFP LQFP 機能説明 75 73 MD1 K モード端子 1 です。この端子の設定により基本動作モードを設定しま す。Vcc または Vss に接続してください。 76 74 MD0 K モード端子 0 です。この端子の設定により基本動作モードを設定しま す。Vcc または Vss に接続してください。 77 75 INIT I 外部リセット入力です。 PPG1 78 79 80 81 82 83 84 85 76 C P00 汎用入出力ポートです。この機能は , PPG タイマ 1 の出力指定が禁止の ときに有効になります。 PPG2 PPG タイマ 2 の出力です。この機能は PPG タイマ 2 の出力指定が許可 のときに有効になります。 77 C P01 汎用入出力ポートです。この機能は , PPG タイマ 2 の出力指定が禁止の ときに有効になります。 PPG3 PPG タイマ 3 の出力です。この機能は PPG タイマ 3 の出力指定が許可 のときに有効になります。 78 C P02 汎用入出力ポートです。この機能は , PPG タイマ 3 の出力指定が禁止の ときに有効になります。 PPG4 PPG タイマ 4 の出力です。この機能は PPG タイマ 4 の出力指定が許可 のときに有効になります。 79 C P03 汎用入出力ポートです。この機能は , PPG タイマ 4 の出力指定が禁止の ときに有効になります。 PPG5 PPG タイマ 5 の出力です。この機能は PPG タイマ 5 の出力指定が許可 のときに有効になります。 80 C P04 汎用入出力ポートです。この機能は , PPG タイマ 5 の出力指定が禁止の ときに有効になります。 PPG6 PPG タイマ 6 の出力です。この機能は PPG タイマ 6 の出力指定が許可 のときに有効になります。 81 C P05 汎用入出力ポートです。この機能は , PPG タイマ 6 の出力指定が禁止の ときに有効になります。 PPG7 PPG タイマ 7 の出力です。この機能は PPG タイマ 7 の出力指定が許可 のときに有効になります。 82 C P06 汎用入出力ポートです。この機能は , PPG タイマ 7 の出力指定が禁止の ときに有効になります。 PPG8 PPG タイマ 8 の出力です。この機能は PPG タイマ 8 の出力指定が許可 のときに有効になります。 83 C P07 16 PPG タイマ 1 の出力です。この機能は PPG タイマ 1 の出力指定が許可 のときに有効になります。 汎用入出力ポートです。この機能は , PPG タイマ 8 の出力指定が禁止の ときに有効になります。 第 1 章 概要 表 1.5-1 端子機能一覧表 (9 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 PPG9 86 87 88 89 90 91 84 C 機能説明 PPG タイマ 9 の出力です。この機能は PPG タイマ 9 の出力指定が許可 のときに有効になります。 P10 汎用入出力ポートです。この機能は , PPG タイマ 9 の出力指定が禁止の ときに有効になります。 PPG10 PPG タイマ 10 の出力です。この機能は PPG タイマ 10 の出力指定が許 可のときに有効になります。 85 C P11 汎用入出力ポートです。この機能は , PPG タイマ 10 の出力指定が禁止 のときに有効になります。 PPG11 PPG タイマ 11 の出力です。この機能は PPG タイマ 11 の出力指定が許 可のときに有効になります。 86 C P12 汎用入出力ポートです。この機能は , PPG タイマ 11 の出力指定が禁止 のときに有効になります。 PPG12 PPG タイマ 12 の出力です。この機能は PPG タイマ 12 の出力指定が許 可のときに有効になります。 87 C P13 汎用入出力ポートです。この機能は , PPG タイマ 12 の出力指定が禁止 のときに有効になります。 PPG13 PPG タイマ 13 の出力です。この機能は PPG タイマ 13 の出力指定が許 可のときに有効になります。 88 C P14 汎用入出力ポートです。この機能は , PPG タイマ 13 の出力指定が禁止 のときに有効になります。 PPG14 PPG タイマ 14 の出力です。この機能は PPG タイマ 14 の出力指定が許 可のときに有効になります。 89 C 汎用入出力ポートです。この機能は , PPG タイマ 14 の出力指定が禁止 のときに有効になります。 P15 94 92 X1 A クロック ( 発振 ) 出力です。 95 93 X0 A クロック ( 発振 ) 入力です。 PPG15 96 94 C 汎用入出力ポートです。この機能は , PPG タイマ 15 の出力指定が禁止 のときに有効になります。 P16 97 95 P17 C 汎用入出力ポートです。 D UART0 のデータ入力です。UART0 が入力動作をしている間は , この入 力を随時使用しますので , 意図的に行う以外は ポートによる出力を停止 させておく必要があります。 SIN0 98 96 P20 PPG タイマ 15 の出力です。この機能は PPG タイマ 15 の出力指定が許 可のときに有効になります。 汎用入出力ポートです。UART0 のデータ入力指定が禁止のときに有効 になります。 17 第 1 章 概要 表 1.5-1 端子機能一覧表 (10 / 10) 端子番号 端子名 QFP LQFP 入出力 回路 形式 SOT0 99 100 97 D 機能説明 UART0 のデータ出力です。この機能は UART0 のデータ出力指定が許 可のときに有効になります。 P21 汎用入出力ポートです。UART0 のデータ出力指定が禁止のときに有効 になります。 SCK0 UART0 のクロック入出力です。この機能は UART0 のクロック出力指 定が許可のときに有効になります。 98 D 汎用入出力ポートです。この機能は UART0 のクロック出力指定が禁止 のときに有効になります。 P22 [ 電源・GND 端子 ] 端子番号 端子名 機能説明 QFP LQFP 18, 50, 68, 93 16, 48, 66, 91 Vss GND 端子です。すべて同電位でお使いください。 17, 49, 67, 92 15, 47, 65, 90 Vcc 電源端子です。すべて同電位でお使いください。 35 33 AVcc A/D コンバータ用のアナログ電源端子です。 33 31 AVRH2 A/D コンバータ 2 用のアナログ基準電源端子です。 36 34 AVRH1 A/D コンバータ 1 用のアナログ基準電源端子です。 40 38 AVRH0 A/D コンバータ 0 用のアナログ基準電源端子です。 37 35 AVss 19 17 C 34 32 ACC 18 A/D コンバータ用のアナログ GND 端子です。 内部レギュレータ用のコンデンサ結合端子です。 アナログ用のコンデンサ結合端子です。 第 1 章 概要 入出力回路形式 1.6 MB91260B シリーズの入出力回路形式を示します。 ■ 入出力回路形式 表 1.6-1 入出力回路形式 (1 / 3) 分類 回路形式 備考 高速用 ( メインクロック原発振 ) X1 クロック入力 発振帰還抵抗 : 約 1 MΩ A X0 スタンバイ制御 プルアップ制御 • CMOS レベル出力 • CMOS レベル入力 デジタル出力 • スタンバイ制御あり C デジタル出力 R デジタル入力 • プルアップ制御あり プルアップ抵抗値=約 50 kΩ (Typ) • IOL = 4 mA スタンバイ制御 プルアップ制御 • CMOS レベル出力 • CMOS レベルヒステリシス入力 デジタル出力 • スタンバイ制御あり D デジタル出力 R デジタル入力 • プルアップ制御あり プルアップ抵抗値=約 50 kΩ (Typ) • IOL = 4 mA スタンバイ制御 19 第 1 章 概要 表 1.6-1 入出力回路形式 (2 / 3) 分類 回路形式 備考 プルアップ制御 • CMOS レベル出力 • CMOS レベルヒステリシス入力 デジタル出力 • スタンバイ制御なし E デジタル出力 R デジタル入力 • プルアップ制御あり プルアップ抵抗値=約 50 kΩ (Typ) • IOL = 4 mA • アナログ /CMOS レベル入出力端子 - CMOS レベル出力 デジタル出力 - CMOS レベル入力 ( スタンバイ制御付き ) G デジタル出力 - アナログ入力 (AICR レジスタの対応するビット デジタル入力 が "1" のときアナログ入力が有効に スタンバイ制御 なります ) R アナログ入力 • IOL=4 mA • CMOS レベルヒステリシス入力 • スタンバイ制御なし H R デジタル入力 • CMOS レベルヒステリシス入力 R • プルアップ抵抗付き プルアップ抵抗値=約 50 kΩ (Typ) I • スタンバイ制御なし R デジタル入力 20 第 1 章 概要 表 1.6-1 入出力回路形式 (3 / 3) 分類 回路形式 備考 • CMOS レベル出力 • CMOS レベルヒステリシス入力 デジタル出力 • スタンバイ制御あり J デジタル出力 R • IOL = 12 mA デジタル入力 スタンバイ制御 • CMOS レベル入力 • スタンバイ制御なし K R デジタル入力 21 第 1 章 概要 22 第2章 デバイスの使用上の注意 MB91260B シリーズの使用上の注意について説明 します。 2.1 デバイスの使用上の注意 23 第 2 章 デバイスの使用上の注意 2.1 デバイスの使用上の注意 ラッチアップ防止および端子処理などの使用上の注意について説明します。 ■ デバイスの使用上の注意 ● ラッチアップ防止のために CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した 場合 , または VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象 を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に 至ることがありますので使用に際しては最大定格を超えることのないよう十分に注意 してください。 ● 未使用入力端子の処理について 使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま すので , プルアップまたはプルダウンなどの処理をしてください。 ● 電源端子について VCC または VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止 するためにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要輻 射の低減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流 規格を遵守などのために , 必ずそれらすべてを外部で同電位の電源およびグランドに 接続してください。また , 電流供給源からできるかぎり低インピーダンスで本デバイス の VCC, VSS に接続するような配慮をお願いします。 さらに , 本デバイスの近くで , VCC 端子と VSS 端子との間に 0.1 µF 程度のセラミックコンデン サをバイパスコンデンサとして接続することをお勧めいたします。 ● 水晶発振回路について X0 端子 , X1 端子の近辺のノイズは本デバイスの誤動作の原因となります。X0 端子と X1 端子および水晶発振子 ( あるいはセラミック発振子 ) さらにグランドへのバイパス コンデンサはできるかぎり近くに配置するようにプリント板を設計してください。ま た , X0 端子 , X1 端子の回りをグランドで囲むようなプリント板アートワークは安定し た動作を期待できますので , 強くお勧めいたします。 ● モード端子 (MD0 ∼ MD2) について これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤ってテス トモードに入ってしまうことを防ぐために, プリント板上の各モード端子とVCC またはVSS 間 のパターン長をできるかぎり短くし , これらを低インピーダンスで接続するようにしてくだ さい。 ● 電源投入時について 電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。ま た, 電源投入直後は, 発振回路の発振安定待ち時間およびレギュレータの安定待ち時間 を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の 間持続してください (INIT 端子による INIT では , 発振安定待ち時間の設定は最小値に 初期化されています ) 。 24 第 2 章 デバイスの使用上の注意 ● 電源投入時の原発振入力について 電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。 ● PLL クロックモード動作中の注意について 本デバイスで , PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ ク入力が停止した場合 , 本デバイスは PLL 内部の自励発振回路の自走周波数で動作を 継続し続ける場合があります。この動作は保証外の動作です。 ● 外部クロックについて 外部クロックを使用する際には原則として X0 端子 , また , X1 端子には X0 と逆相のク ロックを同時に供給してください。ただし , STOP モード ( 発振停止モード ) を併用す る場合は , STOP モード時に X1 端子が "H" 出力で停止しますので , 出力どうしの衝突 を避けるために , 外部に 1 kΩ 程度の抵抗を入れるようにしてください。 下図に外部クロック使用方法例について示します。 図 2.1-1 外部クロック使用例 X0 ~ X1 MB91260Bシリーズ ● C 端子について 本品種はレギュレータを内蔵しており , C 端子にはレギュレータ用に 0.1 µF 程度のバ スコンデンサを必ず入れてください。 図 2.1-2 C 端子について C MB91260Bシリーズ 0.1 F Vss GND ● ACC 端子について 本品種は , A/D コンバータを内蔵しており , ACC 端子と AVss 端子の端子間には , 0.1 µF 程度のコンデンサを必ず入れてください。 図 2.1-3 ACC 端子について ACC MB91260Bシリーズ AVss 0.1 F 25 第 2 章 デバイスの使用上の注意 26 第3章 CPU および制御部 MB91260B シリーズの CPU コアの機能を知るた めに , アーキテクチャ , 仕様 , 命令などの基本的な ことについて説明します。 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 デバイス状態制御 27 第 3 章 CPU および制御部 3.1 メモリ空間 MB91260B シリーズの論理アドレス空間は 4 G バイト (2 32 番地 ) あり , CPU はリ ニアにアクセスを行います。 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ スを指定できます。 ダイレクトアドレッシング領域は , アクセスするデータのサイズにより , 以下のように 異なります。 • バイトデータアクセス • ハーフワードデータアクセス : 000H ∼ 1FFH • ワードデータアクセス : 000H ∼ 0FFH : 000H ∼ 3FFH ■ メモリマップ 図 3.1-1 メモリマップ 0000 0000H バイトデータ 0000 0100H 0000 0200H ハーフワードデータ ワードデータ 0000 0400H ~ ~ 000F FC00H ベクタテーブル 初期領域 000F FFFFH ~ FFFF FFFFH 28 ~ ダイレクト アドレッシング領域 第 3 章 CPU および制御部 図 3.1-2 MB91F264B, MB91264B のメモリマップ シングルチップモード 0000 0000H I/O ダイレクト アドレッシング領域 0000 0400H I/O 0001 0000H 0003 E000H I/Oマップを参照 アクセス禁止 内蔵RAM 8 Kバイト 0004 0000H アクセス禁止 000C 0000H 内蔵ROM 256 Kバイト 0010 0000H アクセス禁止 FFFF FFFFH 図 3.1-3 MB91263B のメモリマップ シングルチップモード 0000 0000H I/O ダイレクト アドレッシング領域 0000 0400H I/O 0001 0000H I/Oマップを参照 アクセス禁止 0003 E000H 内蔵RAM 8 Kバイト 0004 0000H アクセス禁止 000E 0000H 0010 0000H 内蔵ROM 128 Kバイト アクセス禁止 FFFF FFFFH 29 第 3 章 CPU および制御部 3.2 内部アーキテクチャ FR60Lite CPU は , RISC アーキテクチャを採用し , 組込み用途向けの高機能命令を 導入した高性能コアです。 ■ 特長 • RISC アーキテクチャの採用 基本命令 : 1 命令 1 サイクル • 32 ビットアーキテクチャ 汎用レジスタ 32 ビット× 16 本 • 4 G バイトのリニアなメモリ空間 • 乗算器の搭載 32 ビット× 32 ビット乗算 : 5 サイクル 16 ビット× 16 ビット乗算 : 3 サイクル • 割込み処理機能の強化 高速応答速度 (6 サイクル ) 多重割込みのサポート レベルマスク機能 (16 レベル ) • I/O 操作用命令の強化 メモリ−メモリ転送命令 ビット処理命令 • 高いコード効率 基本命令語長 : 16 ビット • 低消費電力 スリープモード・ストップモード • クロック分周比設定機能 ■ 内部アーキテクチャ FR60Lite の CPU は , 命令バスとデータバスが独立したハーバードアーキテクチャ構造 を採用しています。 32 ビット←→ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周 辺リソースとのインタフェースを実現します。ハーバード←→プリンストンバスコン バータは I-bus, D-bus 双方に接続され , CPU とバスコントローラとのインタフェースを 実現します。 30 第 3 章 CPU および制御部 図 3.2-1 内部アーキテクチャ FR CPU I-bus 内蔵RAM 内蔵ROM D-bus 32 32 32 32 ハーバード プリンストン バスコンバータ F-bus 32 32 X-bus 32 32 24 外バス アドレス 32ビット⇔16ビット バスコンバータ バスコントローラ データ 16 16 R-bus 周辺/ポート <注意事項> 外バス機能はサポートしていません。 31 第 3 章 CPU および制御部 ■ CPU CPU は 32 ビット 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 │ └─────┼─────┼─────┼─────┼─────┼─────┐ 命令6 │ IF │ ID │ EX │ MA │ WB │ └─────┴─────┴─────┴─────┴─────┘ 命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。 命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ リウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い 場合も命令の実行速度が低下します。 ■ 32 ビット←→ 16 ビットバスコンバータ 32 ビット幅で高速アクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus との インタフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。 CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16 ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路の一部に はアクセス幅に関して制限のあるものがあります。 32 第 3 章 CPU および制御部 ■ ハーバード←→プリンストンバスコンバータ CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ フェースを実現します。 CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 , 外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構 造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス アクセス順位が常に最適化されたものになります。 ■ 命令概要 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算とビット操作お よびダイレクトアドレッシング命令をサポートしています。命令セットの一覧は「付録 E」に示します。各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れた メモリ使用効率を持ちます。 命令セットは以下の機能グループに分けることができます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ● 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シ フト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演 算や , アドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算命令を持ちます。また , レジスタに即値をセットする即値転送命 令や , レジスタ間転送命令も備えています。 算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行 います。 ● ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺リソース (I/O) への読出しと書込みにも使用されます。 ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま た , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ ジスタ間接のメモリアドレッシングも可能です。 ● 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと 持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ いては後述します。 33 第 3 章 CPU および制御部 ● 論理演算とビット操作 論理演算命令は汎用レジスタ間 , または汎用レジスタとメモリ ( および I/O) 間で AND, OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/ O) の内容を直接操作できます。メモリアドレッシングは一般的なレジスタ間接です。 ● ダイレクトアドレッシング ダイレクトアドレッシング命令は I/O と汎用レジスタ間 , または I/O とメモリ間のアク セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す ることにより , 高速 , 高効率なアクセスを行えます。一部の命令についてはレジスタイ ンクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも可能です。 ● その他 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 34 第 3 章 CPU および制御部 3.3 プログラミングモデル MB91260B シリーズのプログラミングモデルについて説明します。 ■ 基本プログラミングモデル 図 3.3-1 基本プログラミングモデル 32ビット 〔初期値〕 XXXX XXXXH R0 … R1 汎用レジスタ … … R12 … … R13 … … … … AC R14 XXXX XXXXH FP R15 0000 0000H SP プログラムカウンタ PC プログラムステータス PS - ILM - SCR CCR テーブルベースレジスタ TBR リターンポインタ RP システムスタックポインタ SSP ユーザスタックポインタ USP 乗除算結果レジスタ MDH MDL 35 第 3 章 CPU および制御部 ■ レジスタ ● 汎用レジスタ 32ビット 〔初期値〕 XXXX R0 R1 … … … … R12 R13 AC R14 FP R15 SP XXXXH … … … … … XXXX XXXXH 0000 0000H レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およびメ モリアクセスのポインタとして使用されます。 16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために 一部の命令が強化されています。 R13: 仮想アキュムレータ R14: フレームポインタ R15: スタックポインタ リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , "00000000H" (SSP の値 ) とな ります。 ● PS (Program Status) プログラムステータスを保持するレジスタで , ILM, SCR と CCR の 3 つのパートに分か れています。 図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。 書込みは無効です。 ビット位置→ 31 20 16 10 87 0 ┌──────────┬────┬────┬──┬───────┐ │ │ │ │ │ │ └──────────┴┴┴┴┴┴────┴┴┴┴┴┴┴┴┴┴┴┘ └─┬──┘ └┬─┴───┬───┘ ILM SCR CCR ● CCR (Condition Code Register) 36 7 6 5 4 3 2 1 0 Å| Å| S I N Z V C [ 初期値 ] -00XXXXB 第 3 章 CPU および制御部 [ ビット 5] S: スタックフラグ R15 として使用されるスタックポインタを指定します。 値 内容 0 SSP が R15 として使用されます。 EIT 発生時 , 自動的に "0" となります。 ( ただし , スタックに退避される値はクリアされる前の値です。) 1 USP が R15 として使用されます。 リセットにより "0" にクリアされます。 RETI 命令実行時は "0" にしてください。 [ ビット 4] I: 割込み許可フラグ ユーザ割込み要求の許可・禁止を制御します。 値 内容 0 ユーザ割込みを禁止します。 INT 命令実行時 , "0" にクリアされます。 ( ただし , スタック退避させる値はクリアする前の値です。) 1 ユーザ割込みを許可します。 ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されます。 リセットにより "0" にクリアされます。 [ ビット 3] N: ネガティブフラグ 演算結果を "2" の補数で表現された整数とみなしたときの符号を示します。 値 内容 0 演算結果が正の値であったことを示します。 1 演算結果が負の値であったことを示します。 リセットによる初期状態は不定です。 [ ビット 2]Z : ゼロフラグ 演算結果が "0" であったかどうかを示します。 値 内容 0 演算結果が "0" 以外の値であったことを示します。 1 演算結果が "0" であったことを示します。 リセットによる初期状態は不定です。 37 第 3 章 CPU および制御部 [ ビット 1] V : オーバフローフラグ 演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 , オーバフローが生じたかどうかを示します。 値 内容 0 演算の結果 , オーバフローは生じていないことを示します。 1 演算の結果 , オーバフローが生じたことを示します。 リセットによる初期状態は不定です。 [ ビット 0] C : キャリフラグ 演算により, 最上位ビットからのキャリ, またはボローが発生したかどうかを示しま す。 値 内容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 リセットによる初期状態は不定です。 ● SCR (System Condition code Register) 10 9 8 D1 D0 T [ 初期値 ] XX0B [ ビット 10, ビット 9] D1, D0 : ステップ除算用フラグ ステップ除算実行時の中間データを保持します。 除算処理の実行途中に , 変更してはいけません。 ステップ除算実行途中に他の処理を行う場合は , PS レジスタの値を退避・復帰する ことによりステップ除算の再開が保証されます。 リセットによる初期状態は不定です。 DIV0S 命令の実行により被除数と除数を参照して設定されます。 DIV0U 命令の実行により , 強制的にクリアされます。 [ ビット 8] T : ステップトレーストラップフラグ ステップトレーストラップを有効にするかどうかを指定するフラグです。 値 内容 0 ステップトレーストラップを無効にします。 1 ステップトレーストラップを有効にします。 このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となります。 リセットにより "0" に初期化されます。 ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用 時 , ユーザプログラム中で使用することはできません。 38 第 3 章 CPU および制御部 ● ILM 20 19 18 17 16 ILM4 ILM3 ILM2 ILM1 ILM0 [ 初期値 ] 01111B 割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク に使用されます。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。 プログラムから設定可能な値には制限があります。 元の値が 16 ∼ 31 のとき 新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令の実行後は , ( 指定した値+ 16) という値が転送されます。 元の値が 0 ∼ 15 のとき 0 ∼ 31 の任意の値が設定可能です。 リセットにより , 15 (01111B) に初期化されます。 [PS レジスタに関する注意事項 ] 一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ 使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり する場合があります。 いずれの場合も EIT から復帰後以降に , 正しく再処理を行うように設計されています ので , EIT 前後の動作は仕様どおりの処理を行います。 1. DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b) ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ レークした場合 , 以下のような動作を行う場合があります。 (1) D0, D1 フラグが先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み・NMI またはエミュレータ ) を実行します。 (3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に 更新されます。 2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR, STILM, MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。 (1) PS レジスタが先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。 (2) EITから復帰後, 上記命令が実行され, PSレジスタが(1)と同じ値に更新されます。 39 第 3 章 CPU および制御部 ● PC (Program Counter) 31 0 PC [ 初期値 ] XXXXXXXXH [ ビット 31 ∼ビット 0] プログラムカウンタで実行している命令のアドレスを示しています。 命令の実行を伴う PC の更新時に , ビット 0 は "0" に設定されます。ビット 0 が "1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。 ただし, その場合でもビット0は無効であり, 命令は2の倍数のアドレスに置く必要が あります。 リセットによる初期値は不定です。 ● TBR (Table Base Register) 31 0 TBR [ 初期値 ] 000FFC00H テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。 リセットによる初期値は , "000FFC00H" です。 ● RP (Return Pointer) 31 0 RP [ 初期値 ] XXXXXXXXH リターンポインタで , サブルーチンから復帰するアドレスを保持します。 CALL 命令実行時 , PC の値が RP に転送されます。 RETI 命令実行時 , RP の内容が PC に転送されます。 リセットによる初期値は不定です。 ● SSP (System Stack Pointer) 31 SSP 0 [ 初期値 ] 00000000H SSP は , システムスタックポインタです。 S フラグが "0" のとき , 汎用レジスタの R15 として機能します。 SSP を明示的に指定することも可能です。また , EIT 発生時に , PS と PC を退避するス タックを指定するスタックポインタとしても使用されます。 リセットによる初期値は "00000000H" です。 40 第 3 章 CPU および制御部 ● USP (User Stack Pointer) 31 0 USP [ 初期値 ] XXXXXXXXH USP は , ユーザスタックポインタです。 S フラグが "1" のとき , 汎用レジスタの R15 として機能します。 USP を明示的に指定することも可能です。 リセットによる初期値は不定です。 RETI 命令で使用することはできません。 ● 乗除算レジスタ : MDH, MDL (Multiply & Divide register) 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: 商 41 第 3 章 CPU および制御部 データ構造 3.4 MB91260B シリーズのデータ配置には次の 2 種類があります。 • ビットオーダリング • バイトオーダリング ■ ビットオーダリング ビットオーダリングとして , リトルエンディアンを採用しています。 図 3.4-1 ビットオーダリング ビット 31 29 30 27 28 25 26 23 24 21 22 19 20 17 18 15 16 13 14 11 12 9 10 7 8 5 6 3 4 MSB 1 2 0 LSB ■ バイトオーダリング バイトオーダリングとして , ビッグエンディアンを採用しています。 図 3.4-2 バイトオーダリング MSB LSB ビット31 23 15 7 0 メモリ 10101010B 11001100B 11111111B 00010001B │ │ ビット │7 0 │ ↑ ↑ ↑ ↑ ├────┤ │ │ │ │ n 番地│10101010B│←──────┘ │ │ │ ├────┤ │ │ │ (n+1) 番地│11001100B│←───────────┘ │ │ ├────┤ │ │ (n+2) 番地│11111111B│←────────────────┘ │ ├────┤ │ (n+3) 番地│00010001B│←─────────────────────┘ ├────┤ │ │ │ │ 42 第 3 章 CPU および制御部 3.5 ワードアライメント 命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデータ 幅で異なります。 ■ プログラムアクセス MB91260Bシリーズのプログラムは, "2"の倍数のアドレスに配置する必要があります。 PC のビット 0 は , 命令の実行に伴う PC の更新時に "0" に設定されます。"1" になる可 能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし , そ の場合でもビット 0 は無効であり , 命令は "2" の倍数のアドレスに置かなくてはなりま せん。 奇数アドレスの例外はありません。 ■ データアクセス データアクセスを行う際 , その幅により以下のように強制的なアライメントがアドレ スに対して施されます。 ワードアクセス : アドレスは , "4" の倍数 ( 最下位 2 ビットは強制的に "00B") ハーフワードアクセス : アドレスは , "2" の倍数 ( 最下位ビットは強制的に "0") バイトアクセス : − ワードおよびハーフワードアクセス時に , 一部のビットが強制的に "0" にされるのは実 効アドレスの計算結果に対してです。例えば , @ (R13, Ri) のアドレッシングモードの 場合 , 加算前のレジスタは ( たとえ最下位ビットが "1" であっても ) そのまま計算に使 用され , 加算結果の下位ビットがマスクされます。計算前のレジスタがマスクされるわ けではありません。 [ 例 ] LD @ (R13, R2) , R0 R13 00002222 H R2 00000003 H +) 加算結果 00002225 H ↓ 下位2ビット強制マスク アドレス端子 00002224 H 43 第 3 章 CPU および制御部 3.6 メモリマップ MB91260B シリーズでのメモリマップを示します。 ■ メモリマップ アドレス空間は 32 ビットリニアです。 図 3.6-1 にメモリマップを示します。 図 3.6-1 メモリマップ 0000 0000H バイトデータ 0000 0100H 0000 0200H ハーフワードデータ ワードデータ 0000 0400H ~ ~ 000F FC00H ベクタテーブル 初期領域 000F FFFFH ~ FFFF FFFFH 44 ~ ダイレクト アドレッシング領域 第 3 章 CPU および制御部 図 3.6-2 MB91F264B, MB91264B のメモリマップ シングルチップモード 0000 0000H I/O ダイレクト アドレッシング領域 0000 0400H I/O 0001 0000H 0003 E000H I/Oマップを参照 アクセス禁止 内蔵RAM 8 Kバイト 0004 0000H アクセス禁止 000C 0000H 内蔵ROM 256 Kバイト 0010 0000H アクセス禁止 FFFF FFFFH 図 3.6-3 MB91263B のメモリマップ シングルチップモード 0000 0000H I/O ダイレクト アドレッシング領域 0000 0400H I/O 0001 0000H I/Oマップを参照 アクセス禁止 0003 E000H 内蔵RAM 8 Kバイト 0004 0000H アクセス禁止 000E 0000H 0010 0000H 内蔵ROM 128 Kバイト アクセス禁止 FFFF FFFFH 45 第 3 章 CPU および制御部 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ ングにより , 命令中で直接オペランドアドレスを指定できます。 ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。 • バイトデータ (8 ビット ) • ハーフワードデータ (16 ビット ) :000H ∼ 1FFH • ワードデータ (32 ビット ) :000H ∼ 3FFH :000H ∼ 0FFH ■ ベクタテーブル初期領域 "000FFC00H" ∼ "000FFFFFH" の領域は EIT ベクタテーブル初期領域です。 EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。 46 第 3 章 CPU および制御部 3.7 分岐命令 分岐命令には , 遅延スロット付きの動作と遅延スロットなしの動作を指定できます。 ■ 遅延スロット付き動作 ● 命令 以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。 JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D label9 BNO:D label9 BEQ:D label9 BNE:D label9 BC:D label9 BNC:D label9 BN:D label9 BP:D label9 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 ● 動作説明 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延 スロット」とよびます ) に置かれた命令を実行した後に分岐します。分岐動作の前に 遅延スロットの命令を実行するため , 見掛け上の実行速度が 1 サイクルとなります。そ のかわり, 遅延スロットに有効な命令を入れることができないときは, NOP命令を置い てください。 [例] 命令の並び ; ADD R1, R2 ; BRA:D LABEL ; 分岐命令 MOV R2, R3 ; 遅延スロット : 分岐の前に実行される … R3, @R4 ; 分岐先 LABEL : ST 条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置 かれた命令は実行されます。 遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の 更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで 記述された順番で実行されます。 以下に , 具体的な説明をします。 (1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更 新しても影響を受けません。 [例] LDI:32 #Label, JMP:D @R0 LDI:8 #0, R0 ; Label に分岐 R0 ; 分岐先アドレスには影響を与えない。 … 47 第 3 章 CPU および制御部 (2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受 けません。 [例] ; これより前に設定された RP の示すアドレスへ分岐 RET:D MOV R8, RP ; リターン動作には影響を与えない。 … (3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。 [例] ADD #1, R0 BC:D Overflow ; フラグ変化 ; 上記の命令の実行結果により分岐 ; このフラグ更新は上記分岐命令では参照しない。 ANDCCR#0 … (4) CALL:D 命令の遅延スロット中の命令で RP を参照すると , CALL:D 命令により更新 された内容が読み出されます。 [例] ; RP を更新して分岐 CALL:D Label MOV RP, R0 ; 上記 CALL:D の実行結果の RP を転送 … ● 制限事項 (1) 遅延スロット内で実行できる命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 • 1 サイクル命令 • 分岐命令ではないこと • 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」, 「a」, 「b」, 「c」 または「d」と記載された命令です。 (2) ステップトレーストラップ 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト ラップは発生しません。 (3) 割込み・NMI 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理 しません。 (4) 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと き , 未定義命令は NOP 命令として動作します。 48 第 3 章 CPU および制御部 ■ 遅延スロットなし動作 ● 命令 以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN BP BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS BHI label9 label9 label9 label9 ● 動作説明 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が 分岐前に実行されることはありません。 [例] ; 命令の並び ADD R1, R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2, R3 ; 実行されない … LABEL ST R3, @R4 ; 分岐先 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。 遅延スロットに適当な命令を入れることができないために NOP を明記した遅延スロッ ト付き分岐命令に比べ , 命令コード効率を上げることができます。 遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そうでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率 を両立させることができます。 49 第 3 章 CPU および制御部 3.8 EIT ( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生により , そのプログラムの実行を中 断し , 他のプログラムを実行することを指します。例外 (Exception), 割込み (Interrupt), トラップ (Trap) の総称です。 ■ EIT( 例外・割込み・トラップ ) 例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命令か ら再実行します。 割込みとは , 実行中のコンテキストとは無関係に発生する事象です。イベント要因は , ハードウェアです。 トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコールの ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か ら再実行します。 ■ 特長 • 割込みに多重割込みをサポート • 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 ) • トラップ命令 (INT) • エミュレータ起動用 EIT ( ハードウェア / ソフトウェア ) ■ EIT 要因 EIT 要因を以下に示します。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) NMI • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ ■ EIT からの復帰 EIT から復帰するためには RETI 命令を実行します。 50 第 3 章 CPU および制御部 3.8.1 割込みレベル 割込みレベルは 0 ∼ 31 あり , 5 ビットで管理されます。 ■ 割込みレベル 各レベルの割当てを以下に示します。 表 3.8-1 割込みレベル レベル 割込み要因 2 進数 10 進数 00000B 0 ( システム予約 ) … … … … … … 00011B 3 ( システム予約 ) 00100B 4 00101B 5 ( システム予約 ) … … … … … … 01110B 14 ( システム予約 ) 01111B 15 NMI ( ユーザ用 ) 10000B 16 割込み 10001B 17 割込み … … … … … … 11110B 30 割込み 11111B 31 ─ { INTE 命令 ステップトレーストラップ 注意事項 ILM の元の値が 16 ∼ 31 のとき , この範囲の値をプログラムにより ILM に設定することはできません。 ILM 設定時 , ユーザ割込み禁止 ICR 設定時 , 割込み禁止 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップおよび INT 命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 51 第 3 章 CPU および制御部 ■ I フラグ 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR のビット 4 として設 けられています。 値 内容 0 割込みを禁止します。 INT 命令実行時は "0" にクリアされます ( ただし , スタック退避させる値はクリアする前の値です ) 。 1 割込みを許可します。 割込み要求のマスク処理は , ILM の保持する値により制御されます。 ■ ILM 割込みレベルマスク値を保持する PS レジスタ ( ビット 20 ∼ビット 16) です。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。 プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値 として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令の実行後は , ( 指定 した値+ 16) という値が転送されます。 元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。設定するためには STILM 命令を使用します。 ■ 割込み・NMI に対するレベルマスク NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.8-1) が ILM の保持するレベルマスク値と比較されます。比較した結果 , 次の条件が成立した ときはマスクされ , 要求は受理されません。 要因の持つ割込みレベル ≧ レベルマスク値 52 第 3 章 CPU および制御部 3.8.2 ICR (Interrupt Control Register ) 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを 設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O 空間にマッピングされており , CPU からはバスを通してアクセスされます。 ■ ICR ビット構成 ICR00 ∼ ICR47 7 6 5 4 3 2 1 0 アドレス 000440H ∼ 00046FH − − − − − − ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W 初期値 ---11111B [R/W, R] [ ビット 4] ICR4 ICR4 は , 常に "1" です。 [ ビット 3 ∼ビット 0] ICR3 ∼ ICR0 対応する割込み要因の割込みレベルの下位 4 ビットです。 ビット 4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定できます。 読出し・書込み可能です。 ■ ICR マッピング 割込み要因と割込み制御レジスタ , および割込みベクタを表 3.8-2 に示します。 なお , 割込みに関する詳細は「第 5 章 割込みコントローラ」を参照してください。 表 3.8-2 割込み要因と割込み制御レジスタ , 割込みベクタ 対応する割込みベクタ 割込み要因 割込み制御レジスタ 番号 アドレス 16 進 10 進 IRQ00 ICR00 00000440H 10H 16 TBR + 3BCH IRQ01 ICR01 00000441H 11H 17 TBR + 3B8H IRQ02 ICR02 00000442H 12H 18 TBR + 3B4H … … … … … … … … … … … … IRQ45 ICR45 0000046DH 3DH 61 TBR + 308H IRQ46 ICR46 0000046EH 3EH 62 TBR + 304H IRQ47 ICR47 0000046FH 3FH 63 TBR + 300H TBR 初期値 : "000FFC00H" 53 第 3 章 CPU および制御部 3.8.3 SSP (System Stack Pointer) EIT の受理および復帰動作時のデータ退避・復帰用スタックを示すポインタとして 使用されます。 EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加 算されます。 31 0 SSP [ 初期値 ] 00000000H SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。 リセットによる初期値は "00000000H" です。 ■ 割込みスタック SSP により示される領域で , PC および PS の値が退避・復帰されます。割込み後は SSP の示すアドレスに PC, (SSP + 4) のアドレスに PS が格納されています。 図 3.8-1 割込みスタック [例] SSP [割込み前] 80000000H [割込み後] SSP 7FFFFFF8H メモリ 54 80000000H 80000000H 7FFFFFFCH 7FFFFFFCH 7FFFFFF8H 7FFFFFF8H PS PC 第 3 章 CPU および制御部 3.8.4 TBR (Table Base Register) EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。 ■ TBR(Table Base Register) 31 0 TBR [ 初期値 ] 000FFC00H TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ スとなります。 リセットによる初期値は "000FFC00H" です。 ■ EIT ベクタテーブル TBR の示すアドレスから 1 K バイトの領域が EIT 用ベクタ領域となっています。 1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR + (3FCH − 4 × vct) vctadr: ベクタアドレス vctofs: ベクタオフセット vct: ベクタ番号 加算結果の下位 2 ビット は常に "00B" として扱われます。 "000FFC00H" ∼ "000FFFFFH" の領域がリセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。 なお , アーキテクチャ上のベクタテーブルを表 3.8-3 に示します。 表 3.8-3 ベクタテーブル (1 / 3) 割込み要因 割込み番号 割込みレベル オフセット TBR デフォルト のアドレス 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 55 第 3 章 CPU および制御部 表 3.8-3 ベクタテーブル (2 / 3) 割込み要因 割込み番号 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 システム予約 11 0B − 3D0H 000FFFD0H ステップトレーストラップ 12 0C − 3CCH 000FFFCCH NMI 要求 (tool) 13 0D − 3C8H 000FFFC8H 未定義命令例外 14 0E 3C4H 000FFFC4H NMI 要求 15 0F − 15(FH) 固定 3C0H 000FFFC0H 外部割込み 0 16 10 ICR00 3BCH 000FFFBCH 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H 外部割込み 4 20 14 ICR04 3ACH 000FFFACH 外部割込み 5 21 15 ICR05 3A8H 000FFFA8H 外部割込み 6 22 16 ICR06 3A4H 000FFFA4H 外部割込み 7 23 17 ICR07 3A0H 000FFFA0H リロードタイマ 0 24 18 ICR08 39CH 000FFF9CH リロードタイマ 1 25 19 ICR09 398H 000FFF98H リロードタイマ 2 26 1A ICR10 394H 000FFF94H UART0 ( 受信 ) 27 1B ICR11 390H 000FFF90H UART0 ( 送信 ) 28 1C ICR12 38CH 000FFF8CH DTTI 29 1D ICR13 388H 000FFF88H DMAC0 ( 終了 , エラー ) 30 1E ICR14 384H 000FFF84H DMAC1 ( 終了 , エラー ) 31 1F ICR15 380H 000FFF80H DMAC2/3/4 ( 終了 , エラー ) 32 20 ICR16 37CH 000FFF7CH 000FFF78H 56 UART1 ( 受信完了 ) 33 21 ICR17 378H UART1 ( 送信完了 ) 34 22 ICR18 374H 000FFF74H UART2 ( 受信完了 ) 35 23 ICR19 370H 000FFF70H UART2 ( 送信完了 ) 36 24 ICR20 36CH 000FFF6CH 積和 PPG0 37 25 ICR21 368H 000FFF68H 38 26 ICR22 364H 000FFF64H PPG1 39 27 ICR23 360H 000FFF60H PPG2/3 40 28 ICR24 35CH 000FFF5CH PPG4/5/6/7 41 29 ICR25 358H 000FFF58H PPG8/9/10/11/12/13/14/15 42 2A ICR26 354H 000FFF54H 外部割込み 8/9 43 2B ICR27 350H 000FFF50H 波形 0( アンダフロー ) 44 2C ICR28 34CH 000FFF4CH 波形 1( アンダフロー ) 45 2D ICR29 348H 000FFF48H 波形 2( アンダフロー ) 46 2E ICR30 344H 000FFF44H タイムベースタイマ オーバフロー フリーランタイマ ( コンペアクリア ) 47 2F ICR31 340H 000FFF40H 48 30 ICR32 33CH 000FFF3CH 第 3 章 CPU および制御部 表 3.8-3 ベクタテーブル (3 / 3) 割込み要因 割込み番号 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 フリーランタイマ ( ゼロ検出 ) 49 31 ICR33 338H 000FFF38H A/D0 50 32 ICR34 334H 000FFF34H A/D1 51 33 ICR35 330H 000FFF30H A/D2 52 34 ICR36 32CH 000FFF2CH PWC0 ( 測定完了 ) 53 35 ICR37 328H 000FFF28H PWC1 ( 測定完了 ) 54 36 ICR38 324H 000FFF24H PWC0 ( オーバフロー ) 55 37 ICR39 320H 000FFF20H PWC1 ( オーバフロー ) 56 38 ICR40 31CH 000FFF1CH ICU 0 ( 取込み ) 57 39 ICR41 318H 000FFF18H ICU 1 ( 取込み ) 58 3A ICR42 314H 000FFF14H ICU 2/3 ( 取込み ) 59 3B ICR43 310H 000FFF10H 000FFF0CH OCU0/1 ( 一致 ) 60 3C ICR44 30CH OCU2/3 ( 一致 ) 61 3D ICR45 308H 000FFF08H OCU4/5 ( 一致 ) 62 3E ICR46 304H 000FFF04H 遅延割込み要因ビット システム予約 (REALOS にて使用 ) 63 3F ICR47 300H 000FFF00H 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 000FFEC4H システム予約 78 4E − 2C4H システム予約 79 4F − 2C0H 000FFEC0H 80 50 2BCH 000FFEBCH ∼ 255 ∼ FF ∼ 000H ∼ 000FFC00H INT 命令で使用 − *: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス "000FFFFCH" , "000FFFF8H" が使用されます。 57 第 3 章 CPU および制御部 3.8.5 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU は 1 つの 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 INTE 命令 ILM = 4 他の要因は破棄されます。 4 INT 命令 I フラグ= 0 5 コプロセッサ不在トラップ コプロセッサエラートラップ 6 ユーザ割込み ILM =受理した要因のレベル 7 NMI ( ユーザ用 ) ILM = 15 8 NMI ( エミュレータ用 ) ILM = 4 9 ステップトレーストラップ ILM = 4 ― EIT 要因を受理した後の他の要因に対するマスクの処理を考慮すると , 同時に発生した EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。 58 第 3 章 CPU および制御部 表 3.8-5 EIT ハンドラの実行順序 ハンドラの実行順序 要因 1 リセット * 2 未定義命令例外 3 INTE 命令 * 4 ステップトレーストラップ 5 NMI ( ユーザ用 ) 6 INT 命令 7 ユーザ割込み 8 コプロセッサ不在トラップ , コプロセッサエラートラップ *: 他の要因は破棄されます。 [例] 図 3.8-2 多重 EIT 処理 メインルーチン NMIのハンドラ INT命令 のハンドラ 優先度 (高) NMI発生 ①最初に実行 (低) INT命令実行 ②次に実行 59 第 3 章 CPU および制御部 3.8.6 動作 EIT の動作について説明します。 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示します。また , 「次 の命令のアドレス」とは , EIT を検出した命令により , 以下を意味します。 • LDI: 32 のとき : PC + 6 • LDI: 20, COPOP, COPLD, COPST, COPSV のとき : PC + 4 • その他の命令のとき : PC + 2 「動作」における ( ) はレジスタの指すアドレスを表します。 ■ ユーザ割込み・NMI の動作 ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理 の可否が判定されます。 ● 割込み要求受理の可否判定 1. 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を 保持するものが選択されます。 比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持する 値が , NMI についてはあらかじめ定められた定数が使用されます。 2. 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持 つ割込み要求が選択されます。 3. 割込みレベル ≧ レベルマスク値 のとき , 割込み要求はマスクされ受理されません。 割込みレベル < レベルマスク値 のとき , 4. へ。 4. 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み 要求はマスクされ , 受理されません。I フラグが "1" ならば 5. へ。 選択された割込み要求が NMI であるとき , I フラグの値にかかわらず 5. へ。 5. 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。 EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に 対応した割込み番号を使用して , CPU は以下のように動作します。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. 受理した要求の割込みレベル → ILM 6. "0" → S フラグ 7. (TBR +受理した割込み要求のベクタオフセット ) → PC 割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス に移行します。 60 第 3 章 CPU および制御部 ■ INT 命令の動作 INT #u8 u8 で示されるベクタの割込みハンドラへ分岐します。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. PC + 2 → (SSP) 5. "0" → I フラグ 6. "0" → S フラグ 7. (TBR + 3FCH − 4 × u8) → PC ■ INTE 命令の動作 INTE ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. PC + 2 → (SSP) 5. "00100B" 6. "0" → ILM → S フラグ 7. (TBR + 3D8H) → PC INTE 命令およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用 しないでください。また , ステップ実行中は INTE による EIT の発生はありません。 ■ ステップトレーストラップの動作 PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。 ● ステップトレーストラップ検出の条件 • T フラグ = 1 • 遅延分岐命令ではないとき • INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき • 以上の条件が成立すると , 命令動作の切れ目でブレークします。 61 第 3 章 CPU および制御部 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "00100B" 6. "0" → ILM 7. (TBR + 3CCH) → PC → S フラグ Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく なります。 T フラグをセットした次の命令からトラップが発生します。 ■ 未定義命令例外の動作 命令のデコード時に未定義命令を検出すると , 未定義命令例外が発生します。 ● 未定義命令例外の検出条件 • 命令のデコード時に未定義命令であることを検出 • 遅延スロット外に置かれている ( 遅延分岐命令の直後ではないこと ) • 以上の条件が成立すると , 未定義命令例外が発生し , ブレークします。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. PC → (SSP) 5. "0" → S フラグ 6. (TBR + 3C4H) → PC PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 ■ コプロセッサ不在トラップ 実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ サ不在トラップが発生します。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 62 5. "0" → S フラグ 6. (TBR + 3E0H) → PC 第 3 章 CPU および制御部 ■ コプロセッサエラートラップ コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを操 作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生します。 ● 動作 1. SSP − 4 → SSP 2. PS → (SSP) 3. SSP − 4 → SSP 4. 次の命令のアドレス → (SSP) 5. "0" → S フラグ 6. (TBR + 3DCH) → PC ■ RETI 命令の動作 RETI 命令は , EIT 処理ルーチンから復帰する命令です。 ● 動作 1. (R15) → PC 2. R15 + 4 → R15 3. (R15) → PS 4. R15 + 4 → R15 RETI 命令は , S フラグが "0" の状態で実行する必要があります。 <注意事項> 分岐命令の遅延スロットには , EIT に関して制約があります。 「3.7 分岐命令」を参照してください。 63 第 3 章 CPU および制御部 3.9 動作モード MB91260B シリーズの動作モードには , バスモードとアクセスモードがあります。 ただし , シングルチップモードのみサポートします。 ■ 動作モード バスモード シングルチップ ● バスモード バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し , モード設定端子 (MD2, MD1, MD0) で指定します。 <注意事項> 本品種では , 外バスモードをサポートしておりません。 ■ バスモード バスモードの詳細は 「3.6 メモリマップ」を参照してください。 ● シングルチップモード 内部 I/O, 内蔵 RAM, 内蔵 ROM が有効で , それ以外の領域へのアクセスは無効である モードです。外部端子は , 周辺リソースまたは汎用ポートとして機能します。バス端子 としては機能しません。 <注意事項> 本品種では , 外バスモードをサポートしておりません。 ■ モード設定 動作モードの設定は , モード端子 (MD2, MD1, MD0)とモードデータによって行います。 ● モード端子 MD2, MD1, MD0 の 3 端子で , モードベクタ , リセットベクタフェッチに関する指定を 行います。 表に示した設定以外は禁止です。 64 第 3 章 CPU および制御部 モード端子 MD2, MD1, MD0 モード名 リセットベクタ アクセス領域 0 0 0B 内 ROM モードベクタ 内部 備考 <注意事項> MD2, MD1, MD0: 000B 以外の設定は禁止です。 ● モードデータ モードベクタフェッチ (「3.10 リセット ( デバイス初期化 ) ■リセットシーケンス」を 参照 ) によって内部のモードレジスタ (MODR) に書き込むデータを モードデータとよ びます。 モードレジスタに設定が行われた後 , 本レジスタの設定に従った動作モードで動作し ます。 モードデータは , すべてのリセット要因で設定されます。また , ユーザプログラムから は設定することはできません。 <モードデータ詳細説明> 31 20 29 28 27 26 25 24 0 0 0 0 0 1 1 1 動作モード設定ビット [ ビット 31 ∼ビット 24] 予約ビット 必ず "00000111B" を設定してください。"00000111B" 以外の値を設定したときの動作 は保証できません。 <注意事項> モードベクタに設定するモードデータは, "0x000FFFF8H"にバイトデータとして配置する 必要があります。 MB91260B シリーズは , バイトエンディアンとしてビッグエンディアンを採用しています ので , 下図のように , ビット 31 ∼ビット 24 の最上位バイトに配置してください。 31 24 23 16 15 8 7 0 誤 0x000FFFF8H XXXXXXXXB XXXXXXXXB XXXXXXXXB Mode 正 0x000FFFF8H Mode XXXXXXXXB XXXXXXXXB XXXXXXXXB 0x000FFFFCH リセットベクタ 65 第 3 章 CPU および制御部 3.10 リセット ( デバイス初期化 ) 本品種の初期化であるリセット動作について示します。 リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動 作を停止し , 状態を初期化します。この状態をリセット状態とよびます。 リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェ ア動作を開始します。このリセット状態から動作開始にまでの一連の動作をリセッ トシーケンスとよびます。 ■ リセットレベル リセット動作は , 2 種類のレベルに分けられ , それぞれ発生要因および初期化の内容が 異なります。各リセットレベルについて以下に示します。 ● 設定初期化リセット (INIT) すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび ます。 設定初期化リセット (INIT) により初期化される主な内容は以下のとおりです。 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) • 内部クロックに関するすべての設定 (クロックソース選択, PLL制御, 分周比設定) • 外部バスの CS0 領域に関するすべての設定 • その他端子状態に関するすべての設定 • 動作初期化リセット (RST) で初期化されるすべての箇所 詳細はそれぞれの機能の説明を参照してください。 なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) を行ってください。 ● 動作初期化リセット (RST) プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ びます。 設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。 動作初期化リセット (RST) により初期化される主な内容は以下のとおりです。 • プログラム動作 • CPU および内部バス • 周辺回路のレジスタ設定値 • I/O ポート設定 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) 詳細はそれぞれの機能の説明を参照してください。 66 第 3 章 CPU および制御部 ■ リセット要因 過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことによ り知ることが可能です。 各解説にあるレジスタ , フラグの詳細な説明は ,「3.11.5 クロック生成制御部のブロッ ク図 」, 「3.11.6 クロック生成制御部のレジスタ詳細説明 」を参照してください。 各リセット発生要因と発生するリセットレベルについて以下に示します。 ● INIT 端子入力 ( 設定初期化リセット端子 ) 外部端子の INIT 端子は , 設定初期化リセット端子として機能します。 本端子へ "L" レベル入力を行っている間 , 設定初期化リセット (INIT) 要求が発生しま す。 本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ れます。 本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ ジスタ ) 中のビット 15:INIT ビットがセットされます。 本端子要求による設定初期化リセット (INIT) は , すべてのリセット要因中で最強のも のであり , すべての入力・動作・状態よりも優先されます。 なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) を行ってください。 また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子に よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。 • 発生要因 : 外部 INIT 端子への "L" レベル入力 • 解除要因 : 外部 INIT 端子への "H" レベル入力 • 発生レベル : 設定初期化リセット (INIT) • 対応フラグ : ビット 15:INIT ●STCR:SRST ビット書込み ( ソフトウェアリセット ) STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットに "0" が書き込まれると , ソフトウェアリセット要求が発生します。 ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。 要求が受け付けられ動作初期化リセット (RST) が発生するとソフトウェアリセット要 求は解除されます。 ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR ( リセット要因レジスタ ) 中のビット 11:SRST ビットがセットされます。 ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース カウンタ制御レジスタ ) 中のビット 9:SYNCR ビットがセットされている場合 ( 同期リ セットモード ) , すべてのバスアクセスが停止した後でないと発生しません。 このため , バスの使用状況によっては動作初期化リセット (RST) が発生するまでに長 時間を要する場合があります。 • 発生要因 : STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットへの "0" 書 込み • 解除要因 : 動作初期化リセット (RST) の発生 • 発生レベル : 動作初期化リセット (RST) 67 第 3 章 CPU および制御部 • 対応フラグ : ビット 11:SRST ●ウォッチドッグリセット RSRR ( ウォッチドッグタイマ制御レジスタ ) に対し書込みを行うと , ウォッチドッグ タイマが起動します。その後 , RSRR 中のビット 9, 8:WT1,WT0 ビットにて設定した周 期内に CTBR ( タイムベースカウンタクリアレジスタ ) への A5H/5AH 書込みが行われ ないと , ウォッチドッグリセット要求が発生します。 ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付 けられ設定初期化リセット (INIT) が発生するか , または動作初期化リセット (RST) が 発生すると , ウォッチドッグリセット要求は解除されます。 ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合, RSRR ( リセット要因レジスタ ) 中のビット 13:WDOG ビットがセットされます。 なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 では , 発振安定待ち時間の設定は初期化されません。また , メインランおよびサブラン 中にメイン発振を停止しない場合は , 発振安定待ち時間を確保しません。 • 発生要因 : ウォッチドッグタイマの設定周期経過 • 解除要因 : 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生 • 発生レベル : 設定初期化リセット (INIT) • 対応フラグ : ビット 13:WDOG ■ リセットシーケンス リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。 リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。 各リセットレベルにおけるリセットシーケンスの動作内容について以下に示します。 ● 設定初期化リセット (INIT) 解除シーケンス 設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し ます。ただし , メインランおよびサブラン中にメイン発振を停止しない場合のウォッチ ドッグリセットでは , (2) の発振安定待ち時間を確保しません。 (1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移 (2) 発振安定待ち時間 (STCR のビット 3, ビット 2:OS1, OS0 にて設定 ) の間 , 動作初期 化リセット (RST) 状態を保持 , 内部クロック停止 (3) 動作初期化リセット (RST) 状態 , 内部クロック動作開始 (4) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 (5) "000FFFF8H" 番地よりモードベクタの読出し (6) MODR ( モードレジスタ ) へモードベクタの書込み (7) "000FFFFCH" 番地よりリセットベクタの読出し (8) PC ( プログラムカウンタ ) へリセットベクタの書込み (9) PC ( プログラムカウンタ ) の示す番地よりプログラム動作開始 68 第 3 章 CPU および制御部 ● 動作初期化リセット (RST) 解除シーケンス 動作初期化リセットは , ソフトウェアリセットで発生します。 動作初期化リセット (RST) 要求が解除されると , デバイスは以下の動作を順に実行し ます。 (1) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 (2) "000FFFF8H" 番地よりモードベクタの読出し (3) MODR ( モードレジスタ ) へモードベクタの書込み (4) "000FFFFCH" 番地よりリセットベクタの読出し (5) PC ( プログラムカウンタ ) へリセットベクタの書込み (6) PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始 ■ 発振安定待ち時間 デバイスの原発振が停止していたか , またはその可能性がある状態から復帰したとき , 自動的に発振安定待ち状態に遷移します。本機能により発振開始後の安定していない 発振器出力を使用しないようにします。 発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベース カウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定待ち 時間の経過を待ちます。 発振安定待ち動作の詳細について以下に示します。 ● 発振安定待ち発生要因 発振安定待ち発生要因を以下に示します。 (1) 設定初期化リセット (INIT) の解除時 各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態 へ遷移します。 発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。 なお , INIT 端子による初期化時は発振安定待ち時間は最小値に設定されるため , 発 振安定待ちは行いません。INIT 端子の入力幅にて発振安定待ち時間を確保してくだ さい。 (2) ストップモードからの復帰時 ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。ただし , 設 定初期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ遷 移します。 発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと 遷移します。 • 有効な外部割込み要求入力 (NMI 含む ) の発生による復帰時 → 通常動作状態へ遷移します。 • 設定初期化リセット (INIT) 要求による復帰時 → 設定初期化リセット (INIT) 状態へ遷移します。 69 第 3 章 CPU および制御部 (3) PLL 選択時の異常状態からの復帰時 PLL をソースクロックとして動作しているときに PLL 制御に何らかの異常 * が発 生した場合 , PLL ロックタイムの確保のために自動的に発振安定待ち時間に遷移し ます。 発振安定待ち時間経過後は , 通常動作状態へ遷移します。 *: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生などです。 ● 発振安定待ち時間の選択 発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計測されます。 発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ ウンタはいったん初期化された後 , 発振安定待ち時間の計測を開始します。 STCR ( スタンバイ制御レジスタ ) の ビット 3, ビット 2:OS1, OS0 ビットにより , 発振安 定待ち時間を 4 種類のうちから選択して設定できます。 いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初 期化されません。それ以外の設定初期化リセット (INIT) や動作初期化リセット (RST) では , リセット発生以前に設定した発振安定待ち時間が保持されます。 発振安定待ち時間として選択可能な4種類の設定は, それぞれ以下の用途を想定してあ ります。 • OS1, OS0 = "00B" : 発振安定待ち時間なし ( ストップモードでメイン発振は停止させないで , PLL 発振器 を停止させる場合 ) <注意事項> クロックソースとしてメイン PLL クロックを使用中で OSCD1=0 でのストップモードか らの復帰の際には , 必ず , STCR の OS1, OS0 ビットを OS1, OS0=00B 以外の設定にして メイン PLL のロック待ち時間を確保してください。 • OS1, OS0 = "01B" : PLL ロック待ち時間 ( 外部クロック入力や , ストップモードで発振器を停止させな い場合 ) • OS1, OS0 = "10B" : 発振安定待ち時間 ( 中 ) ( セラミック振動子などの安定が速い発振子を使用する場合 ) • OS1, OS0 = "11B" : 発振安定待ち時間 ( 長 ) ( 一般の水晶発振子などを使用する場合 ) なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) を行ってください。 また , 下記状態では , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子によ る INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。 • 電源投入直後の INIT 端子入力 • ストップモードで発振停止中の INIT 端子入力 70 第 3 章 CPU および制御部 • クロックソースとしてサブクロック選択中かつメイン発振停止状態での INIT 端 子入力 したがって, 安定発振を行うためには, INIT 端子入力はメインクロックの発振安定待ち 時間を満たす期間 , "L" レベルを入力してください。 ■ リセット動作モード 動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモード の 2 つのモードがあり , TBCR ( タイムベースカウンタ制御レジスタ ) 中の ビット 9:SYNCR ビットによってどちらのモードで動作するかを設定します。 本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。 設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。 各モード動作について以下に示します。 ● 通常リセット動作 動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状 態への遷移を行う動作を通常リセット動作とよびます。 本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動 作状態にかかわらず , 即時にリセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結 果を保証できません。しかし , 動作初期化リセット (RST) 要求を確実に受け付けること が可能です。 TBCR ( タイムベースカウンタ制御レジスタ ) 中の ビット 9:SYNCR ビットが "0" のと き , 通常リセットモードとなります。 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。 ● 同期リセット動作 動作初期化リセット (RST) 要求が発生した際に , すべてのバスアクセスが停止した後 , 動作初期化リセット (RST) 状態への遷移を行う動作を同期リセット動作とよびます。 本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行 われている間は , リセット (RST) 状態への遷移は行いません。 上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され ます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため , すべてのバスアクセスの結果を保証できます。しかし , バスアクセスが何らかの理由に より停止しない場合 , その間各要求を受け付けることができなくなります ( このような 場合でも , 設定初期化リセット (INIT) は即座に有効となります )。 バスアクセスが停止しない要因は , 外部拡張バスインタフェースに対し RDY ( レディ 要求 ) が入力され続け , バスウェイトが有効となっている場合です。 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。 71 第 3 章 CPU および制御部 <注意事項> • DMA コントローラについては , 各要求の受付けにより転送停止を行いますので , 各状 態への遷移を遅延させることはありません。 • TBCR ( タイムベースカウンタ制御レジスタ ) の ビット 9:SYNCR ビットが "1" のとき , 同期リセットモードとなります。 72 第 3 章 CPU および制御部 3.11 クロック生成制御 各クロック生成とその制御について示します。 内部動作クロックは以下のようにして生成されます。 • ベースクロックの生成 : ソースクロックを 2 分周または PLL 発振させ , 基本ク ロックを生成します。 • 各内部クロックの生成 : ベースクロックを分周し , 各部に供給する動作クロック を生成します。 各解説にあるレジスタ , フラグの詳細な説明は , 「3.11.5 クロック生成制御部のブ ロック図」, 「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照してくださ い。 ■ ソースクロックの選択 ソースクロックの選択について解説します。 外部発振端子である X0/X1 端子入力に発振子を接続し , 内蔵発振回路にて生成した原 発振がソースクロックとなります。 外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。 外部発振端子および内蔵発振回路は , メインクロックを動作中に任意に切り換えて使 用することが可能です。 メインクロック : X0/X1 端子入力から生成し , 高速クロックとして使用することを想定 しています。 内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。 • メインクロックを 2 分周したもの • メインクロックを PLL で逓倍したもの φ はソースクロックを 2 分周または ,PLL 発振させた基本クロックを指します。したがっ て , システムベースクロックは , 上記の内部ベースクロック発生のところで生成される クロックです。 ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって 行います。 73 第 3 章 CPU および制御部 3.11.1 PLL 制御 メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍 率設定を制御することができます。 各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。 ■ PLL 動作許可 メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の ビット 10: PLL1EN ビットの設定によって行います。 PLL1EN ビットは , 設定初期化リセット (INIT) 後は "0" に初期化され , メイン PLL の発 振動作は停止しています。停止中は , ソースクロックとしてメイン PLL 出力を選択す ることはできません。 プログラム動作を開始後は , クロックソースとして使用するメイン PLL の逓倍率を設 定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する ことを推奨致します。 ソースクロックとしてメイン PLL 出力を選択している間は , PLL は動作停止させるこ とはできません。レジスタへの書込みは無効となります。ストップモードに移行する 際などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分周したものに選択し直した後 , PLL を停止させてください。 なお , STCR ( スタンバイ制御レジスタ ) の ビット 0:OSCD1 ビットにより , ストップ モード中の発振が停止するように設定してある場合 , PLL はストップモード遷移時に 自動的に停止しますので , 動作停止をあらためて設定する必要はありません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作を開始します。ストップモー ド中 , メイン発振を停止させないで , PLL 発振を停止させる場合は , メイン発振は自動 では停止しません ( このときのストップモードからの復帰時は必ず PLL のロック待ち 時間を確保してください ) 。この場合は , 必要であればストップモード移行前にあらか じめ動作停止を設定してください。 ■ PLL 逓倍率 メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の ビット 14 ∼ビット 12:PLL1S2, PLL1S1, PLL1S0 ビットによって設定します。 これらのビットは,設定初期化リセット (INIT) 後は全ビット"0"に初期化されています。 ● PLL 逓倍設定 PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ マ割込みを使用することを推奨致します。 動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを PLL 以外に切り 換えてから変更してください。逓倍率変更後は , 上記と同様にロック待ち時間経過後に ソースクロックを切り換えてください。 PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設 定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が 経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り 換えた場合は , プログラム動作は停止しません。 74 第 3 章 CPU および制御部 3.11.2 発振安定待ち・PLL ロック待ち時間 ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち時 間が必要です (「3.10 リセット ( デバイス初期化 ) ■発振安定待ち時間」を参照 )。 PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待 ち時間が必要です。 ■ 電源投入後の待ち時間 電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。 発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に 初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時 間により確保します。 この状態において , PLL は動作許可されていないため , ロック待ち時間をここでは考慮 する必要がありません。 ■ 設定初期化後の待ち時間 設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで は , 設定された発振安定待ち時間を内部的に発生します。 INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されている ため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。また , メ インランおよびサブラン中にメイン発振を停止しない場合のウォッチドッグリセット では , 発振安定待ち時間を確保しません。 これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間 をここでは考慮する必要がありません。 ■ PLL 動作許可後の待ち時間 プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過 しないとその PLL 出力を使用してはいけません。 ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプログ ラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ割込 みを使用することを推奨致します。 ■ PLL 逓倍率変更後の待ち時間 プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち 時間が経過しないとその PLL 出力を使用してはいけません。 ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプログ ラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ割込 みを使用することを推奨致します。 75 第 3 章 CPU および制御部 ■ ストップモード復帰後の待ち時間 プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて 設定された時間の発振安定待ち時間を内部的に発生します。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止さ せる設定の場合 , その発振回路の発振安定待ち時間または 使用している PLL のロック 待ち時間のうち, 長い方の時間が必要となります。ストップモードに遷移させる前に,あ らかじめ長い方の発振安定待ち時間を設定しておいてください。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止 させない設定においても , PLL は動作を停止します。よって , ストップモードに遷移さ せる前に , あらかじめ発振安定待ち時間を OS1, OS0=0, 0 以外の設定にしてください。 76 第 3 章 CPU および制御部 3.11.3 クロック分配 ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを それぞれ作成します。 内部動作クロックは , 全部で 3 種類あり , それぞれが独立に分周比を設定することが できます。 ■ CPU クロック (CLKB) CPU と内部メモリおよび内部バスに使用されるクロックです。 本クロックを使用する回路を以下に示します。 • CPU • 内蔵 RAM, 内蔵 ROM • ビットサーチモジュール • I-bus, D-bus, F-bus, X-bus • DMA コントローラ • On chip Debug Support Unit (DSU) 動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは 設定しないで ください。 ■ 周辺クロック (CLKP) 周辺リソースおよびペリフェラルバスに使用されるクロックです。 周辺クロックを使用する回路を以下に示します。 • ペリフェラル ( 周辺 ) バス • クロック制御部 ( バスインタフェース部のみ ) • 割込みコントローラ • I/O ポート • 外部割込み入力 , UART, 16 ビットタイマなどの周辺リソース 動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで ください。 ■ 外部バスクロック (CLKT) 外部拡張バスインタフェースに使用されるクロックです。 本クロックを使用する回路を以下に示します。 • 外部拡張バスインタフェース • 外部 CLK 出力 動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで ください。 ただし , MB91260B シリーズでは , 外バスモードをサポートしておりません。 77 第 3 章 CPU および制御部 3.11.4 クロック分周 内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定できます。 この機能により , 各回路に最適な動作周波数を設定できます。 分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分 周設定レジスタ 1) によって設定します。各レジスタには各クロックに対応する 4 ビッ トずつの設定ビットがあり , ( レジスタ設定値+ 1) がそのクロックのベースクロックに 対する分周比となります。分周比設定が奇数であっても , 常にデューティ比は 50% と なります。 設定値の変更があった場合 , 設定後 , 次のクロックの立上りから変更後の分周比が有効 となります。 分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の 設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。 初期状態からソースクロックを高速なものに変更する前に必ず分周比の設定を行って ください。 <注意事項> ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波 数を超える設定をした場合 , 動作は保証されませんので十分にご注意願います ( ソースクロック選択の変更設定との順序を間違えないよう , 特に留意願います ) 。 78 第 3 章 CPU および制御部 3.11.5 クロック生成制御部のブロック図 クロック生成制御部のブロック図を示します。図中のレジスタの詳細は , 「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照してください。 ■ ブロックダイヤグラム 図 3.11-1 ブロックダイヤグラム R-bus [クロック生成部] セレクタ 外部バスクロック分周 セレクタ 周辺クロック分周 停止制御 CPUクロック分周 セレクタ DIVR0,DIVR1レジスタ CPUクロック 周辺クロック 外部バスクロック X0 X1 発振回路 セレクタ CLKRレジスタ PLL メイン 発振 1/2 [ストップ・スリープ制御部] 内部割込み ストップ状態 STGRレジスタ 内部リセット 状態遷移 制御回路 スリープ状態 リセット発生 FF リセット発生 FF 内部リセット(RST) 内部リセット(INIT) [リセット要因回路] INIT端子 RSRRレジスタ [ ウォッチドッグ制御部] ウォッチドッグFF カウンタクロック タイムベースカウンタ CTBRレジスタ セレクタ TBCRレジスタ 割込み許可 オーバフロー検出FF タイムベースタイマ 割込み要求 MB91260B シリーズでは , 外バスモードをサポートしておりません。 79 第 3 章 CPU および制御部 3.11.6 クロック生成制御部のレジスタ詳細説明 クロック発生制御部において使用するレジスタの機能を説明します。 ■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ bit 15 14 13 12 11 10 9 8 アドレス:000480H INIT R 1 − R 0 WDOG R 0 − R 0 SRST R 0 − R 0 * × * × * × × * × * * × WT1 R/W 0 0 0 WT0 R/W 0 0 0 初期値 (INIT 端子 ) 初期値 (INIT) 初期値 (RST) 「*」…要因により変化します。 「×」…初期化されません。 直前に発生したリセットの要因の保持 , ウォッチドッグタイマの周期設定 , および起動 制御を行うレジスタです。 本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す までの間に複数回のリセットが発生した場合 , リセット要因フラグは , 累積され , 複数 のフラグがセットされることになります。 本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ ト (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。 [ ビット 15] INIT (INITialize reset occured) INIT 端子入力によるリセット (INIT) の発生の有無を示します。 0 INIT 端子入力による INIT は発生していません。 1 INIT 端子入力による INIT が発生しました。 • 読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [ ビット 14] (reserved ビット ) [ ビット 13] WDOG (WatchDOG reset occured) ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。 0 ウォッチドッグタイマによる INIT は発生していません。 1 ウォッチドッグタイマによる INIT が発生しました。 • INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [ ビット 12] (reserved ビット ) 80 第 3 章 CPU および制御部 [ ビット 11] SRST (Software ReSeT occured) STCRレジスタのSRSTビット書込み (ソフトウェアリセット) によるリセット (RST) の発生の有無を示します。 0 ソフトウェアリセットによる RST は発生していません。 1 ソフトウェアリセットによる RST が発生しました。 • INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [ ビット 10] (reserved ビット ) [ ビット 9, ビット 8] WT1,WT0 (Watchdog interval Time select) ウォッチドッグタイマの周期を設定します。 本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の うちから選択します。 ウォッチドッグリセットの発生を 抑止するために最低限必要な CTBR への書込み間隔 CTBR への最終 5AH 書込みから WT1 WT0 0 0 φ × 216 ( 初期値 ) φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 ウォッチドッグリセットが 発生するまでの時間 ( 注意事項 )φ は内部ベースクロックの周期です。 • リセット (RST) により "00B" に初期化されます。 • 読出し可能で , 書込みはリセット (RST) 後 1 回のみ有効で , それ以降の書込みは 無効です。 81 第 3 章 CPU および制御部 ■ STCR : スタンバイ制御レジスタ bit 7 6 アドレス:000481H STOP SLEEP R/W R/W 0 0 初期値 (INIT 端子 ) 0 0 初期値 (INIT) 0 0 初期値 (RST) 5 4 3 2 1 0 HIZ R/W 1 1 SRST R/W 1 1 1 OS1 R/W 0 OS0 R/W 0 × × × × − R/W 1 1 OSCD1 R/W 1 1 × × × デバイスの動作モードを制御するレジスタです。 ストップ , スリープの 2 種類のスタンバイモードへの遷移 , ストップモード中の端子お よび発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行 を行います。 <注意事項> スタンバイモードに移行する場合は , 同期スタンバイモード (TBCR: タイムベースカウン タ制御レジスタのビット 8:SYNCS ビットにて設定します ) を使用したうえで , 以下の シーケンスを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0x0481) ldi #Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ stb rl,@r0 ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0x0483) ldi #0xA5, rl ; クリアコマンド (1) stb rl,@r2 ; CTBR への A5 ライト ldi #0xA5, rl ; クリアコマンド (2) stb rl,@r2 ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 nop nop nop nop スタンバイ制御レジスタ (STCR) の各ビットの機能を以下に示します。 82 第 3 章 CPU および制御部 [ ビット 7] STOP (STOP mode) ストップモードへの遷移を指示します。ビット 6:SLEEP ビットと本ビット両方に "1" を書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。 0 ストップモードへの遷移は行いません ( 初期値 ) 。 1 ストップモードへ遷移します。 • リセット (RST) およびストップ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 6] SLEEP (SLEEP mode) スリープモードへの遷移を指示します。ビット 7:STOP ビットと本ビット両方に "1" を書き込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップモードへ遷 移します。 0 スリープモードへの遷移は行いません ( 初期値 ) 。 1 スリープモードへ遷移します。 • リセット (RST) およびスリープ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 5] HIZ (HIZ mode) ストップモード時の端子状態を制御します。 0 ストップモード遷移前の端子状態を維持します。 1 ストップモード中は端子出力をハイインピーダンス状態にします ( 初期値 ) 。 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 4] SRST (Software ReSeT) ソフトウェアリセット (RST) の発行を指示します。 0 ソフトウェアリセットを発行します。 1 ソフトウェアリセットの発行は行いません ( 初期値 ) 。 • リセット (RST) により "1" に初期化されます。 • 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。 [ ビット 3, ビット 2] OS1, OS0 (Oscillation Stabilization time select) リセット (INIT) 後 , およびストップモード復帰後などにおける発振安定待ち時間を 設定します。 本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選 択します。 83 第 3 章 CPU および制御部 OS1 OS0 発振安定待ち時間 * メイン発振 4 MHz の場合 0 0 φ × 21 ( 初期値 ) 1.0 µs 0 1 φ × 211 1.0 ms 1 0 φ × 216 32.7 ms 1 1 φ × 222 2.0 s *:φ は内部ベースクロックの周期であり , メイン発振の 2 倍の周期です。 • INIT 端子入力によるリセット (INIT) により "00B" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 1] (reserved ビット ) 予約ビットです。本ビットへは常に "1" を書き込んでください。 [ ビット 0] OSCD1 (Oscillation Disable mode for XIN1) メイン発振入力 (X0, X1) における , ストップモード時の発振停止を制御します。 0 ストップモード中もメイン発振は停止しませんが , PLL 発振は停止します。 1 ストップモード中はメイン発振を停止します ( 初期値 )。 • リセット (INIT) により "1" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> クロックソースとしてメイン PLL クロックを使用中で OSCD1=0 でのストップモードか らの復帰の際には , 必ず , STCR の OS1, OS0 ビットを OS1, OS0=00B 以外の設定にして メイン PLL のロック待ち時間を確保してください。 ■ TBCR : タイムベースカウンタ制御レジスタ bit 15 14 13 12 11 10 アドレス:000482H TBIF R/W 0 0 TBIE R/W 0 0 TBC2 R/W × × TBC1 R/W × × TBC0 R/W × × − R/W × × 初期値 (INIT) 初期値 (RST) 9 8 SYNCR SYNCS R/W R/W 0 0 × × タイムベースタイマ割込みなどを制御するレジスタです。 タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択 , およびリセット動 作のオプション機能の設定を行います。 タイムベースカウンタ制御レジスタ (TBCR) の各ビットの機能を以下に示します。 [ ビット 15] TBIF (TimeBasetimer Interrupt Flag) タイムベースタイマ割込みフラグです。 タイムベースカウンタが設定されたインターバル時間 ( ビット 13 ∼ビット 11:TBC2 ∼ TBC0 ビットにて設定 ) を経過したことを示します。 84 第 3 章 CPU および制御部 ビット 14:TBIE ビットにより割込み発生が許可 (TBIE=1) されているときに , 本ビッ トが "1" になると , タイムベースタイマ割込み要求が発生します。 クリア要因 命令による "0" の書込み セット要因 設定されたインターバル時間の経過 ( タイムベースカウンタ出力の立下りエッジ検出 ) • リセット (RST) により "0" に初期化されます。 • 読出し / 書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込みして もビット値は変化しません。また , リードモディファイライト系命令での読出し 値は , 常に "1" となります。 [ ビット 14] TBIE (TimeBasetimer Interrupt Enable) タイムベースタイマ割込み要求出力許可ビットです。 タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま す。本ビットが "1" のときに , ビット 15:TBIF ビットが "1" になると , タイムベース タイマ割込み要求が発生します。 0 タイムベースタイマ割込み要求の出力を禁止 します ( 初期値 ) 。 1 タイムベースタイマ割込み要求の出力を許可します。 • リセット (RST) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 13 ∼ビット 11] TBC2 ∼ TBC0 (TimeBasetimer Counting time select) タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定し ます。 本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選 択します。 TBC2 TBC1 TBC0 タイマインターバル時間 * 原発振 4 MHz かつ PLL が 8 逓倍の場合 0 0 0 φ × 211 64 µs 0 0 1 φ × 212 128 µs 0 1 0 φ × 213 256 µs 0 1 1 φ × 222 131 ms 1 0 0 φ × 223 262 ms 1 0 1 φ × 224 524 ms 1 1 0 φ × 225 1048 ms 1 1 1 φ × 226 2097 ms *:φ は内部ベースクロックの周期であり , メイン PLL の出力周期です。 • 初期値は不定です。割込みを許可する前に必ず値を設定してください。 85 第 3 章 CPU および制御部 • 読出しおよび書込みが可能です。 [ ビット 10] (reserved ビット ) 予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。 [ ビット 9] SYNCR (SYNChronous Reset enable) 同期リセット動作許可ビットです。 動作初期化リセット (RST) 要求またはハードウェアスタンバイ要求が発生した際に , 即座にリセット (RST) またはハードウェアスタンバイ遷移を行う通常リセット動作 を行うか , すべてのバスアクセスが停止した後に動作初期化リセット (RST) または ハードウェアスタンバイ遷移を行う同期リセット動作を行うかを選択します。 0 通常リセット動作を行います ( 初期値 ) 。 1 同期リセット動作を行います 。 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 8] SYNCS (SYNChronous Standby enable) 同期スタンバイ動作許可ビットです。 スタンバイモード (スリープモードまたはストップモード) を使用する際は, 必ず"1" を設定してください。 0 通常スタンバイ動作を行います ( 初期値 ) 。 1 同期スタンバイ動作を行います。 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 ■ CTBR : タイムベースカウンタクリアレジスタ bit 7 6 5 4 3 2 1 0 アドレス:000483H D7 W × × D6 W × × D5 W × × D4 W × × D3 W × × D2 W × × D1 W × × D0 W × × 初期値 (INIT) 初期値 (RST) タイムベースカウンタを初期化するためのレジスタです。 本レジスタに連続して "A5H" , "5AH" を書き込むと , "5AH" 書込みの直後にタイムベー スカウンタを全ビット "0" にクリアします。"5AH" 書込みと "5AH" 書込みの間の時間 に制限はありませんが , "A5H" 書込みの後に "5AH" 以外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH" を書き込んでもクリア動作は行いません。 ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを 行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ れます。詳細は , 「3.11.7 クロック制御部が持つ周辺回路」の項を参照してください。 本レジスタの読出し値は不定です。 86 第 3 章 CPU および制御部 <注意事項> 本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ チドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。 ■ CLKR : クロックソース制御レジスタ bit 15 アドレス:000484H − R/W 0 初期値 (INIT) 初期値 (RST) × 14 13 12 PLL1S2 PLL1S1 PLL1S0 R/W R/W R/W 0 0 0 × × × 11 10 − R/W 0 9 8 PLL1EN CLKS1 CLKS0 R/W R/W R/W 0 0 0 × × × × 内部ベースクロックとなるクロックソースの選択やメイン PLL の制御を行うレジスタ です。 本レジスタにてクロックソースを選択します。また , メイン PLL の動作許可および逓 倍率の選択を制御します。 [ ビット 15] (reserved ビット ) 予約ビットです。本ビットへは常に "0" を書き込んでください。 [ ビット 14 ∼ビット 12] PLL1S2 ∼ PLL1S0 (PLL1 ratio Select 2 ∼ 0) メイン PLL の逓倍率選択ビットです。 メイン PLL の逓倍率を , 下記の組合せのうちから選択します。 本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し ます。また , 動作可能な上限周波数を超える設定をしないでください。 PLL1S2 PLL1S1 PLL1S0 メイン PLL 逓倍率 メイン発振 4 MHz の場合 *1 0 0 0 × 1 ( 等倍 ) *2 φ = 250 ns ( 4 MHz 時 ) 0 0 1 × 2 (2 逓倍 ) φ = 125 ns ( 8 MHz 時 ) 0 1 0 × 3 (3 逓倍 ) φ = 83.33 ns ( 12 MHz 時 ) 0 1 1 × 4 (4 逓倍 ) φ = 62.50 ns ( 16 MHz 時 ) 1 0 0 × 5 (5 逓倍 ) φ = 50.00 ns ( 20 MHz 時 ) 1 0 1 × 6 (6 逓倍 ) φ = 41.67 ns ( 24 MHz 時 ) 1 1 0 × 7 (7 逓倍 ) φ = 35.71 ns ( 28 MHz 時 ) 1 1 1 × 8 (8 逓倍 ) φ = 31.25 ns ( 32 MHz 時 ) *1:φ は内部ベースクロックの周期です。 *2: 等倍時は , 8 MHz 以上を入力してください。 • リセット (INIT) により "000B" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 11] (reserved ビット ) 予約ビットです。本ビットへは常に "0" を書き込んでください。 87 第 3 章 CPU および制御部 [ ビット 10] PLL1EN (PLL1 ENable) メイン PLL の動作許可ビットです。 本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し ます。また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択するこ とを禁止します ( ビット 9, 8:CLKS1, CLKS0 ビットの設定を参照 )。 STCR の ビット 0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であっ てもメイン PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。 0 メイン PLL 停止 ( 初期値 ) 1 メイン PLL 動作許可 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 9, ビット 8] CLKS1, CLKS0 (CLocK source Select) 使用するクロックソースを設定します。 本ビットに書き込む値により, クロックソースを下表に示す3種類のうちから選択しま す。 CLKS1 CLKS0 0 0 X0/X1 からの原発振入力の 2 分周 ( 初期値 ) 0 1 設定禁止 1 0 メイン PLL 1 1 設定禁止 クロックソース設定 • リセット (INIT) により "00B" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> ビット 9:CLKS1 が "1" の間は ビット 8:CLKS0 の値を変更することができません。 [ 変更可能な組合せ ] "00B" → "10B" "10B" → "00B" 上記の組合せ以外は設定禁止です。 88 第 3 章 CPU および制御部 ● DIVR0: 基本クロック分周設定レジスタ 0 bit 15 14 13 12 11 10 9 8 アドレス:000486H B3 R/W 0 B2 R/W 0 B1 R/W 0 B0 R/W 0 P3 R/W 0 P2 R/W 0 P1 R/W 1 P0 R/W 1 × × × × × × × × 初期値 (INIT) 初期値 (RST) 各内部クロックの ベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , CPU および内部バスのクロック (CLKB) と周辺回路およびペリフェ ラルバスクロック (CLKP) との分周比の設定を行います。 ソースクロックの選択 , メイン PLL の逓倍率の設定および 分周比の設定の組合せによ り , 上限周波数を超える設定をした場合 , 動作は保証されませんので , 十分ご注意願い ます。また , ソースクロック選択の変更設定との順序を間違えないように注意してくだ さい。 本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周 比が有効となります。 [ ビット 15 ∼ビット 12] B3 ∼ B0 (clkB divide select 3 ∼ 0) CPU クロック (CLKB) クロック分周比設定ビットです。 CPU と内部メモリおよび内部バスのクロック (CLKB) のクロック分周比を設定しま す。 本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに対 する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数を超える周波数になる分周比は設定しないでください。 B3 B2 B1 B0 クロック分周比 * クロック周波数 : 原発振 4 MHz およびメイン PLL8 逓倍の場合 0 0 0 0 φ 32 MHz ( 初期値 ) 0 0 0 1 φ × 2 (2 分周 ) 16 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8 MHz 0 1 0 0 φ × 5 (5 分周 ) 6.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33 MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57 MHz 0 1 1 1 φ × 8 (8 分周 ) 4 MHz … 1 … 1 … 1 … 1 … … 2 MHz φ × 16 (16 分周 ) *:φ は内部ベースクロックの周期です。 • リセット (INIT) により "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 11 ∼ビット 8] P3 ∼ P0 (clkP divide select 3 ∼ 0) 周辺クロック (CLKP) クロック分周比設定ビットです。 周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。 89 第 3 章 CPU および制御部 本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベース クロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま す。 動作可能な上限周波数を超える周波数になる分周比は設定しないでください。 P3 P2 P1 P0 クロック分周比 * クロック周波数 : 原発振 4 MHz およびメイン PLL8 逓倍の場合 0 0 0 0 φ 32 MHz 0 0 0 1 φ × 2 (2 分周 ) 16 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8 MHz ( 初期値 ) 0 1 0 0 φ × 5 (5 分周 ) 6.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33 MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57 MHz 0 1 1 1 φ × 8 (8 分周 ) 4 MHz … 1 … 1 … 1 … 1 … … 2 MHz φ × 16 (16 分周 ) *:φ はシステムベースクロックの周期です。 • リセット (INIT) により "0011B" に初期化されます。 • 読出しおよび書込みが可能です。 ● DIVR1: 基本クロック分周設定レジスタ 1 bit 7 6 5 4 3 2 1 0 アドレス:000487H T3 R/W 0 T2 R/W 0 T1 R/W 0 T0 R/W 0 − R/W 0 − R/W 0 − R/W 0 − R/W 0 × × × × × × × × 初期値 (INIT) 初期値 (RST) 各内部クロックのベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , 外部バスインタフェースのクロック (CLKT) の分周比の設定を行い ます。 ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周 波数を超える設定をした場合 , 動作は保証されませんので十分ご注意願います。また , ソースクロック選択の変更設定との順序を間違えないように注意してください。 本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周 比が有効となります。 [ ビット 7 ∼ビット 4] T3 ∼ T0 (clkT divide select 3 ∼ 0) 外部バスクロック (CLKT) クロック分周比設定ビットです。 外部バスインタフェースのクロック (CLKT) のクロック分周比を設定します。 本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま す。 動作可能な上限周波数を超える周波数になる分周比は設定しないでください。 90 第 3 章 CPU および制御部 T3 T2 T1 T0 クロック分周比 * クロック周波数 : 原発振 4 MHz およびメイン PLL8 逓倍の場合 0 0 0 0 φ 32 MHz ( 初期値 ) 0 0 0 1 φ × 2 (2 分周 ) 16 MHz 0 0 1 0 φ × 3 (3 分周 ) 10.7 MHz 0 0 1 1 φ × 4 (4 分周 ) 8 MHz 0 1 0 0 φ × 5 (5 分周 ) 6.4 MHz 0 1 0 1 φ × 6 (6 分周 ) 5.33 MHz 0 1 1 0 φ × 7 (7 分周 ) 4.57 MHz 0 1 1 1 φ × 8 (8 分周 ) 4 MHz … … … … … … 1 1 1 1 φ × 16 (16 分周 ) 2 MHz *:φ はシステムベースクロックの周期です。 • リセット (INIT) により "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 本品種では , 外部バスインタフェースを使用しないため , "1111B" (16 分周 ) に設定す ることを推奨致します。 <注意事項> MB91260B シリーズでは , 外バスモードをサポートしておりません。 [ ビット 3 ∼ビット 0] (reserved ビット ) • リセット (INIT) により "0000B" に初期化されます。 • 本ビットへの書込みは , 常に "0000B" を書き込んでください。 91 第 3 章 CPU および制御部 3.11.7 クロック制御部が持つ周辺回路 クロック制御部内の周辺回路機能について説明します。 ■ タイムベースカウンタ クロック制御部には, 26ビット長のタイムベースカウンタがあり, 内部ベースクロック で動作しています。 タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10 リセット ( デバイス初期化 ) ■発振安定待ち時間」を参照 ) のほか , 以下の用途に使用されます。 • ウォッチドッグタイマ システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビット 出力を用いて計測します。 • タイムベースタイマ タイムベースカウンタ出力を用いて , インターバル割込みを発生します。 これらの機能について以下に示します。 ● ウォッチドッグタイマ ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。 プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生 延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット (INIT) 要求を発生します。 ウォッチドッグタイマの起動と周期設定 ウォッチドッグタイマは, リセット (RST) 後の1回目のRSRR (リセット要因レジスタ/ ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。このとき , ウォッチドッグタイマのインターバル時間をビット 9, 8:WT1,WT0 ビットにより設定 します。インターバル時間の設定は , この最初の書込みで設定した時間のみが有効と なり , それ以降の書込みはすべて無視されます。 ウォッチドッグリセットの発生延期 いったんウォッチドッグタイマを起動すると , プログラムで定期的に CTBR ( タイム ベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデータを書き込む必 要があります。この操作により , ウォッチドッグリセット発生用フラグが初期化さ れます。 ウォッチドッグリセットの発生 ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出 時にフラグがセットされていると , ウォッチドッグリセットとして設定初期化リ セット (INIT) 要求を発生します。 ウォッチドッグタイマの停止 いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す るまでは , ウォッチドッグタイマを停止することはできません。 動作初期化リセット (RST) の発生する以下の状態ではウォッチドッグタイマは停止 し , 再度プログラム動作にて起動するまでは機能しません。 92 第 3 章 CPU および制御部 - 動作初期化リセット (RST) 状態 - 設定初期化リセット (INIT) 状態 - 発振安定待ちリセット (RST) 状態 ウォッチドッグタイマの一時停止 ( 自動発生延期 ) ウォッチドッグタイマは , CPU のプログラム動作が停止している場合にはいったん ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生 を延期します。プログラム動作の停止とは具体的には以下の動作を示します。 - スリープ状態 - ストップ状態 - 発振安定待ち RUN 状態 - D-bus ( データバス ) に対する DMA 転送中 - エミュレータデバッガを使用中のブレーク中 また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発生 用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。 ● タイムベースタイマ タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生 用タイマです。メイン PLL のロック待ち時間やサブクロックなどの発振安定待ち時間 など , 最大で { ベースクロック× 227} サイクルまでの比較的長時間の時間計測を行う 用途に適しています。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出 すると , タイムベースタイマ割込み要求を発生します。 タイムベースタイマの起動とインターバル設定 タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) のビット 13 ∼ ビット 11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは常 に検出されているため , インターバル時間の設定後は , まず , ビット 15:TBIF ビット をクリアした後 , ビット 14:TBIE ビットを "1" にして割込み要求出力を許可してくだ さい。 インターバル時間を変更する際は , あらかじめビット 14:TBIE ビットを "0" にして割 込み要求出力を禁止しておいてください。 タイムベースカウンタはこれらの設定に影響されず , 常にカウント動作を行ってい ますので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ イムベースカウンタをクリアしてください。クリアしないと , 割込み許可直後に割 込み要求が発生することがあります。 93 第 3 章 CPU および制御部 プログラムによるタイムベースカウンタのクリア CTBR ( タイムベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデータ を書き込むと , "5AH" 書込みの直後に , タイムベースカウンタを全ビット "0" にクリ アします。"A5H" 書込みと "5AH" 書込み間の時間は制限がありませんが , "A5H" 書込 みの後に "5AH" 以外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH" を 書き込んでもクリア動作は行いません。 このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期 されます。 デバイス状態によるタイムベースカウンタのクリア タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビットが "0" に クリアされます。 - ストップ状態 - 設定初期化リセット (INIT) 状態 - ハードウェアスタンバイ状態 特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し てしまうことがあり得ます。そのため , ストップモードを設定する前にはタイムベー スタイマ割込みを禁止し , タイムベースタイマを使用しないようにしてください。 それ以外の状態については , 動作初期化リセット (RST) が発生するため , タイムベー スタイマ割込みは自動的に禁止されます。 94 第 3 章 CPU および制御部 3.12 デバイス状態制御 MB91260B シリーズの各種状態とその制御について説明します。 ■ デバイス状態と各遷移 状態遷移を図 3.12-1 に示します。 図 3.12-1 デバイス状態の遷移 1 INIT端子=0(INIT) 2 INIT端子=1(INIT解除) 3 発振安定待ち終了 4 リセット(RST)解除 5 ソフトウェアリセット(RST) 6 スリープ(命令書込み) 7 ストップ(命令書込み) 8 割込み 9 クロックを必要としない外部割込み 10 ウォッチドッグリセット(INIT) 遷移要求の優先順位 最強 ↓ ↓ ↓ ↓ 最弱 パワーオン 1 設定初期化リセット(INIT) 発振安定待ち終了 動作初期化リセット(RST) 割込み要求 ストップ スリープ 設定初期化 (INIT) 2 メインクロックモード 1 メイン発振安定待ち リセット メインストップ 9 1 3 1 プログラムリセット (RST) 発振安定待ちRUN 3 7 1 6 メインスリープ 5 メインRUN 1 4 10 1 8 本品種のデバイスの動作状態には以下のものがあります。 ● RUN 状態 ( 通常動作 ) プログラム実行状態です。 すべての内部クロックが供給され , すべての回路が動作可能な状態です。ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバスクロッ クのみ停止しています。 各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ セットモードの場合と一部要求に対する状態遷移動作が異なります。詳細は ,「3.10 リ セット ( デバイス初期化 ) ● 同期リセット動作」を参照してください。 95 第 3 章 CPU および制御部 ● スリープ状態 プログラム停止状態です。プログラム動作により遷移します。 CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモリ および内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。 有効な割込み要求の発生により, 本状態は解除され, RUN状態 (通常動作) へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移 します。 ● ストップ状態 デバイス停止状態です。プログラム動作により遷移します。 すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路およびメイン PLL は設定により停止させることが可能です。また , 設定により外部端子を一律ハイ インピーダンスにすることが可能です ( 一部端子を除く )。 特定の ( クロックを必要としない ) 有効な割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷 移します。 ● 発振安定待ち RUN 状態 デバイス停止状態です。ストップ状態からの復帰後に遷移します。 クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていたメイン PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷 移します。 ● 発振安定待ちリセット (RST) 状態 デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復 帰後に遷移します。 クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていたメイン PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 内部回路に対し , 動作初期化リセット (RST) を出力します。 設定された発振安定待ち時間の経過により , 発振安定待ちリセット (RST) 状態へ遷移 します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 96 第 3 章 CPU および制御部 します。 ● 動作初期化リセット (RST) 状態 プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定 待ちリセット (RST) 状態の終了により遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は 一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて いたメイン PLL は動作しています。 内部回路に対し , 動作初期化リセット (RST) を出力します。 動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初 期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後 だった場合は , 設定初期化リセットシーケンスを実行します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 ● 設定初期化リセット (INIT) 状態 全設定初期化状態です。設定初期化リセット (INIT) 要求の受付けにより遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は すべて初期化されます。発振回路は動作しますが , メイン PLL は動作を停止します。 すべての内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , そ れ以外では動作します。 内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力 します。 設定初期化リセット (INIT) 要求の消失により, 本状態は解除され, 発振安定待ちリセッ ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期 化リセットシーケンスを実行します。 ● 各状態遷移要求の優先順位 どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求 は特定の状態でしか発生しませんので , その状態でしか有効になりません。 [ 最強 ] 設定初期化リセット (INIT) 要求 ↓ 発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安 定待ち RUN 状態のみ発生 ) ↓ 動作初期化リセット (RST) 要求 ↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 ) ↓ ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 ) [ 最弱 ] スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 ) 97 第 3 章 CPU および制御部 ■ 低消費電力モード 本品種の状態のうち , 各低消費電力モードとその使用方法について説明します。 本品種の低消費電力モードには , 以下のものがあります。 • スリープモード レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。 • ストップモード レジスタ書込みにより , デバイスをストップ状態へ遷移させます。 以下 , 各モードについて説明します。 ● スリープモード STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットに "1" を書き込むと , スリー プモードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発 生するまでは , スリープ状態を維持します。 スリープ状態については , 「3.12 デバイス状態制御 ●スリープ状態」も参照してくだ さい。 スリープモードへの移行 スリープモードに移行する場合は , 同期スタンバイモード (TBCR: タイムベースカウン タ制御レジスタのビット 8:SYNCS ビットにて設定します ) を使用したうえで , 以下の シーケンスを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0x0481) ldi #Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ stb rl,@r0 ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0x0483) ldi #0xA5, rl ; クリアコマンド (1) stb rl,@r2 ; CTBR への A5 ライト ldi #0xA5, rl ; クリアコマンド (2) stb rl,@r2 ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 nop nop nop nop STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットと本ビット両方に "1" を書き 込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 98 第 3 章 CPU および制御部 スリープ状態で停止する回路 CPU のプログラム実行 以下は , DMA 転送が発生した場合は動作します。 • ビットサーチモジュール • 各種内蔵メモリ • 内部 / 外部バス ただし , MB91260B シリーズでは , 外バスモードをサポートしておりません。 スリープ状態で停止しない回路 • 発振回路 • 動作許可されたメイン PLL • クロック発生制御部 • 割込みコントローラ • 周辺回路 • 時計タイマ • メイン発振安定待ちタイマ • DMA コントローラ • On chip Debug Support Unit (DSU) スリープ状態からの復帰要因 • 有効な割込み要求の発生 ICR レジスタの設定が , 割込み禁止 (1111B) 以外の割込み要求が発生すると , スリープ モードは解除され , RUN 状態 ( 通常動作 ) へ遷移します。このとき , CPU の PS レジス タの I フラグを "1" に設定して割込みの受付けを許可状態にし , スリープ復帰後 , 割込 みハンドラを実行するようにしてください。 ICR レジスタの設定が , 割込み禁止 (1111B) の割込み要求が発生しても , スリープモー ドは解除されません。 • 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 • 動作初期化リセット (RST) 要求の発生 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 各要因の優先順位については ,「3.12 デバイス状態制御 ●各状態遷移要求の優先順位」 を参照してください。 同期スタンバイ動作 タイムベースカウンタ制御レジスタ (TBCR) のビット 8(SYNCS ビット ) に "1" が設定 してある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込 みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出すことに よってスリープ状態へ遷移します。 スリープモードを使用する場合は , 「スリープモードへの移行」にあるシーケンスを 必ず使用してください。 99 第 3 章 CPU および制御部 ● ストップモード STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットに "1" を書き込むと , ストッ プモードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発 生するまでは , ストップ状態を維持します。 ストップ状態については , 「3.12 デバイス状態制御 ●ストップ状態」も参照してくだ さい。 ストップモードへの移行 ストップモードに移行する場合は , 同期スタンバイモード (TBCR: タイムベースカウン タ制御レジスタのビット 8:SYNCS ビットにて設定します ) を使用したうえで , 以下の シーケンスを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0x0481) ldi #Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ stb rl,@r0 ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0x0483) ldi #0xA5, rl ; クリアコマンド (1) stb rl,@r2 ; CTBR への A5 ライト ldi #0xA5, rl ; クリアコマンド (2) stb rl,@r2 ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub @r0, rl nop ; STCR ダミーリード ; タイミング調整用の NOP × 5 nop nop nop nop STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットと本ビット両方に "1" を書 き込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 ストップ状態で停止する回路 下記を除くすべての内部回路 ストップ状態で停止しない回路 • 停止するよう設定されていない発振回路 STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してあると き , ストップ状態中のメインクロック用発振回路は停止しません。 • 動作許可されていて , かつ停止するよう設定されていない発振回路に接続されたメ イン発振回路 STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してあると き , CLKR ( クロックソース制御レジスタ ) のビット 10:PLL1EN ビットに "1" を設定 100 第 3 章 CPU および制御部 すると , ストップ状態中のメイン発振回路は停止しませんが , PLL 発振回路は停止 します。 ストップ状態での端子のハイインピーダンス制御 STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "1" を設定すると , ストップ 状態中の端子出力がハイインピーダンス状態になります。本制御の対象となる端子は , 「付録 C 各 CPU ステートにおける端子状態」を参照してください。 STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "0" を設定すると , ストップ 状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は , 「付録 C 各 CPU ステートにおける端子状態」を参照してください。 ストップ状態からの復帰要因 • 特定の ( クロックを必要としない ) 有効な割込み要求の発生 一部の外部割込みおよび NMI 入力端子のみが有効です。 ICR レジスタの設定が , 割込み禁止 (1111B) 以外の割込み要求が発生すると , ス トップモードは解除され , 発振安定待ち RUN 状態へ遷移します。このとき , CPU の PS レジスタの I フラグを "1" に設定して割込みの受付けを許可状態にし , ス トップ復帰後 , 割込みハンドラを実行するようにしてください。 ICR レジスタの設定が , 割込み禁止 (1111B) の割込み要求が発生しても , ストップ モードは解除されません。 • 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 • 動作初期化リセット (RST) 要求の発生 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 各要因の優先順位については「 , 3.12 デバイス状態制御 ●各状態遷移要求の優先順位」 を参照してください。 ストップモード時のクロックソース選択 自励発振モードでは , ストップモードを設定する前に , メインクロックの 2 分周をソー スクロックとするようあらかじめ選択しておいてください。詳細は , 「3.11.1 PLL 制 御」を参照してください。 なお , 分周比の設定に関しては , 通常動作時と制限事項は同じです。 同期スタンバイ動作 タイムベースカウンタ制御レジスタ (TBCR) のビット 8(SYNCS ビット ) に "1" が設定 してある場合 , 同期スタンバイ動作が許可されます。この場合 , STOP ビットへの書込 みのみではストップ状態へは遷移しません。その後 , STCR レジスタを読み出すことに よってストップ状態へ遷移します。 ストップモードを使用する場合は ,「ストップモードへの移行」にあるシーケンスを必 ず使用してください。 101 第 3 章 CPU および制御部 102 第4章 I/O ポート I/O ポートの概要 , レジスタの構成 , および機能に ついて説明します。 4.1 I/O ポートの概要 4.2 I/O ポートのレジスタ 4.3 アナログ入力ポート 103 第 4 章 I/O ポート I/O ポートの概要 4.1 MB91260B シリーズは , 各端子に対応する外部バスインタフェースやペリフェラル が入出力として端子を使用しない設定になっているとき , I/O ポートとして使用する ことができます。 ■ ポート基本ブロックダイヤグラム プルアップ付き I/O ポートは , 以下のレジスタにより構成されています。 • PDR( ポートデータレジスタ /Port Data Register) • DDR( ポート方向レジスタ /Data Direction Register) • PFR( ポート機能レジスタ /Port Function Register) • PCR( プルアップ抵抗制御レジスタ /Pull-up Control Register) ポートの基本的な構成を図 4.1-1 に示します。 図 4.1-1 I/O ポートの基本ブロックダイヤグラム ペリフェラル入力 ポートバス プルアップ抵抗 (約50 k ) 0 1 ペリフェラル出力 PDRリード 1 PDR 0 端子 PFR DDR PCR PCR=0:プルアップ抵抗なし PCR=1:プルアップ抵抗あり DDR:Data Direction Register PDR:Port Data Register PFR:Port Function Register PCR:Pull-up Control Register ■ I/O ポートのモード ● ポート入力モード時 (PFR="0" & DDR="0") PDR 読出し : 対応する外部端子のレベルが読み出されます。 PDR 書込み : PDR に設定値が書き込まれます。 ● ポート出力モード時 ( PFR="0" & DDR="1") PDR 読出し : PDR の値が読み出されます。 PDR 書込み : PDR の値が対応する外部端子に出力されます。 104 第 4 章 I/O ポート ● ペリフェラル出力モード時 ( PFR="1" & DDR="x") PDR 読出し : 対応するペリフェラル出力の値が読み出されます。 PDR 書込み : PDR に設定値が書き込まれます。 <注意事項> • ポートへのアクセスは , バイトアクセスで行ってください。 • ストップモード時 (HIZ=0) には , プルアップ抵抗制御レジスタの設定が優先されます。 • ストップモード時 (HIZ=1) には , プルアップ抵抗制御レジスタの設定は無効となりま す。 105 第 4 章 I/O ポート 4.2 I/O ポートのレジスタ I/O ポートで使用するレジスタの構成および機能について説明します。 ■ Port Data Register (PDR:PDR0 ∼ PDR7, PDRC, PDRD, PDRE, PDRG) PDR0 7 P07 6 P06 5 P05 4 P04 3 P03 2 P02 1 P01 0 P00 初期値 XXXXXXXXB アクセス R/W 7 P17 6 P16 5 P15 4 P14 3 P13 2 P12 1 P11 0 P10 初期値 XXXXXXXXB アクセス R/W 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 XXXXXXXXB アクセス R/W 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 XXXXXXXXB アクセス R/W 7 P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 P40 初期値 XXXXXXXXB アクセス R/W アドレス:00000005H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 XXXXXXXXB アクセス R/W PDR6 7 6 5 4 3 2 1 0 − P63 P62 P61 P60 アドレス:00000000H PDR1 アドレス:00000001H PDR2 アドレス:00000002H PDR3 アドレス:00000003H PDR4 アドレス:00000004H PDR5 アドレス:00000006H − − − 初期値 アクセス R/W ----XXXXB PDR7 7 6 5 4 3 2 1 0 アドレス:00000007H P77 P76 P75 P74 P73 P72 P71 P70 初期値 XXXXXXXXB アクセス R/W PDRC 7 PC7 6 PC6 5 PC5 4 PC4 3 PC3 2 PC2 1 PC1 0 PC0 初期値 XXXXXXXXB アクセス R/W アドレス:0000000CH PDRD 7 6 5 4 3 2 アドレス:0000000DH − − − − − − 1 PD1 0 PD0 初期値 アクセス R/W - - - - - - X XB PDRE 7 6 5 4 3 2 1 0 アドレス:0000000EH − − − − − − PE1 PE0 初期値 アクセス R/W - - - - - - X XB PDRG 7 6 5 4 3 2 1 0 − PG5 PG4 PG3 PG2 PG1 PG0 アドレス:00000010H − 初期値 アクセス R/W --XXXXXX B PDR0∼PDR7, PDRC, PDRD, PDRE, PDRG は, I/Oポートの入出力データレジスタです。 対応する DDR0 ∼ DDR7, DDRC, DDRD, DDRE, DDRG, PFR0 ∼ PFR2, PFR7, PFRG で入 出力制御が行われます。 106 第 4 章 I/O ポート ■ Data Direction Register (DDR:DDR0 ∼ DDR7, DDRC, DDRD, DDRE, DDRG) DDR0 7 P07 6 P06 5 P05 4 P04 3 P03 2 P02 1 P01 0 P00 初期値 00000000B アクセス R/W 7 P17 6 P16 5 P15 4 P14 3 P13 2 P12 1 P11 0 P10 初期値 00000000B アクセス R/W 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 00000000B アクセス R/W アドレス:00000403H 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 00000000B アクセス R/W DDR4 7 6 5 4 3 2 1 0 アドレス:00000404H P47 P46 P45 P44 P43 P42 P41 P40 初期値 00000000B アクセス R/W DDR5 アドレス:00000405H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 00000000B アクセス R/W DDR6 7 6 5 4 3 2 1 0 アドレス:00000406H − − − − P63 P62 P61 P60 初期値 ----0000B アクセス R/W DDR7 7 P77 6 P76 5 P75 4 P74 3 P73 2 P72 1 P71 0 P70 初期値 00000000B アクセス R/W 初期値 00000000B アクセス R/W 初期値 - - - - - - 0 0B アクセス R/W 初期値 - - - - - - 0 0B アクセス R/W 初期値 --000000 B アクセス R/W アドレス:00000400H DDR1 アドレス:00000401H DDR2 アドレス:00000402H DDR3 アドレス:00000407H DDRC 7 6 5 4 3 2 1 0 アドレス:0000040CH PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 DDRD 7 6 5 4 3 2 1 0 アドレス:0000040DH − − − − − − PD1 PD0 DDRE 7 6 5 4 3 2 1 0 アドレス:0000040EH − − − − − − PE1 PE0 DDRG 7 6 5 4 3 2 1 0 アドレス:00000410H − − PG5 PG4 PG3 PG2 PG1 PG0 DDR0 ∼ DDR7, DDRC, DDRD, DDRE, DDRG は , 対応する I/O ポートの入出力方向を ビット単位で制御します。 PFR=0 のとき DDR=0: ポート入力 DDR=1: ポート出力 PFR=1 のとき DDR=0: ペリフェラル入力 DDR=1: ペリフェラル出力 107 第 4 章 I/O ポート ■ Pull-up Control Register (PCR:PCR0 ∼ PCR7, PCRG) PCR0 7 P07 6 P06 5 P05 4 P04 3 P03 2 P02 1 P01 0 P00 初期値 00000000B アクセス R/W 7 P17 6 P16 5 P15 4 P14 3 P13 2 P12 1 P11 0 P10 初期値 00000000B アクセス R/W 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 00000000B アクセス R/W 7 P37 6 P36 5 4 3 2 1 0 アドレス:00000603H − − − − − − 初期値 00------B アクセス R/W PCR4 7 6 5 4 3 2 1 0 アドレス:00000604H P47 P46 P45 P44 P43 P42 P41 P40 初期値 00000000B アクセス R/W PCR5 アドレス:00000605H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 00000000B アクセス R/W PCR6 7 6 5 4 3 2 1 0 アドレス:00000606H − − − − P63 P62 P61 P60 初期値 - - - - 0 0 0 0B アクセス R/W PCR7 7 P77 6 P76 5 P75 4 P74 3 P73 2 P72 1 P71 0 P70 初期値 00000000B アクセス R/W 初期値 --000000B アクセス R/W アドレス:00000600H PCR1 アドレス:00000601H PCR2 アドレス:00000602H PCR3 アドレス:00000607H PCRG 7 6 5 4 3 2 1 0 アドレス:00000610H − − PG5 PG4 PG3 PG2 PG1 PG0 PCR0 ∼ PCR7, PCRG は , 対応する I/O ポートのプルアップ抵抗制御を行います。 PCR=0: プルアップ抵抗なし PCR=1: プルアップ抵抗あり P30 ∼ P35, PC0 ∼ PC7, PD0 ∼ PD1, PE0 ∼ PE1 に は , プルアップ抵抗はありません。 108 第 4 章 I/O ポート ■ Port Function Register (PFR:PFR0 ∼ PFR2, PFR7, PFRG) PFR0 7 PFR1 7 6 5 4 3 2 1 0 6 5 4 3 2 1 0 初期値 アクセス 00000000 アドレス:00000420H PPG8E PPG7E PPG6E PPG5E PPG4E PPG3E PPG2E PPG1E R/W B アドレス:00000421H − PFR2 7 6 アドレス:00000422H − − PFR7 7 6 PPG15E PPG14E PPG13E PPG12E PPG11E PPG10E PPG9E 5 4 SCK1E SO1E 5 4 3 − 3 2 1 SCK0E SO0E 2 1 0 − 0 アドレス:00000427H − − − − − − PFRG 7 6 5 4 3 2 1 0 アドレス:00000430H − − − − PPG0E − SCK2E SO2E TO2E TO1E 初期値 アクセス -0000000B R/W 初期値 アクセス --00-0 0-B R/W 初期値 - - - - - - 0 0B アクセス R/W 初期値 アクセス - - 0 0 - - 0 -B R/W PFR0 ∼ PFR2, PFR7, PFRG は , 対応するペリフェラルの出力をビット単位で制御しま す。 PFR の空きビットには , 必ず "0" を書いてください。 109 第 4 章 I/O ポート 以下に各 PFR レジスタについてその初期値と機能をまとめます。 レジスタ ビット ビット名 0 PPG1E 1 2 3 設定値 機能 0 汎用 ポート 1 PPG タイマ 1 出力 0 汎用 ポート 1 PPG タイマ 2 出力 0 汎用 ポート 1 PPG タイマ 3 出力 0 汎用 ポート 1 PPG タイマ 4 出力 0 汎用 ポート 1 PPG タイ 5 出力 0 汎用 ポート 1 PPG タイマ 6 出力 0 汎用 ポート 1 PPG タイマ 7 出力 0 汎用 ポート 1 PPG タイマ 8 出力 0 汎用 ポート 1 PPG タイマ 9 出力 0 汎用 ポート 1 PPG タイマ 10 出力 0 汎用 ポート 1 PPG タイマ 11 出力 0 汎用 ポート 1 PPG タイマ 12 出力 0 汎用 ポート 1 PPG タイマ 13 出力 0 汎用 ポート 1 PPG タイマ 14 出力 0 汎用 ポート 1 PPG タイマ 15 出力 [ 初期値 ] [ 初期値 ] PPG2E [ 初期値 ] PPG3E [ 初期値 ] PPG4E PFR0 4 5 6 7 0 1 2 PFR1 3 4 5 6 110 [ 初期値 ] PPG5E [ 初期値 ] PPG6E [ 初期値 ] PPG7E [ 初期値 ] PPG8E [ 初期値 ] PPG9E [ 初期値 ] PPG10E [ 初期値 ] PPG11E [ 初期値 ] PPG12E [ 初期値 ] PPG13E [ 初期値 ] PPG14E PPG15E [ 初期値 ] 第 4 章 I/O ポート レジスタ ビット ビット名 1 SO0E 2 設定値 機能 0 汎用 ポート 1 UART0 のデータ出力 0 汎用 ポート 1 UART0 のクロック入出力 0 汎用 ポート 1 UART1 のデータ出力 0 汎用 ポート 1 UART1 のクロック入出力 0 汎用 ポート 1 リロードタイマ 1 出力 0 汎用 ポート 1 リロードタイマ 2 出力 0 汎用 ポート 1 PPG タイマ 0 出力 0 汎用 ポート 1 UART2 のデータ出力 0 汎用 ポート 1 UART2 のクロック入出力 [ 初期値 ] [ 初期値 ] SCK0E PFR2 4 5 0 [ 初期値 ] SO1E [ 初期値 ] SCK1E [ 初期値 ] TO1E PFR7 1 1 PFRG 4 5 [ 初期値 ] TO2E [ 初期値 ] PPG0E [ 初期値 ] SO2E [ 初期値 ] SCK2E 111 第 4 章 I/O ポート 4.3 アナログ入力ポート 8/10 ビット A/D コンバータの端子のブロック図およびレジスタの構成を示します。 ■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム 図 4.3-1 AN0 ∼ AN11 端子のブロックダイヤグラム AICR0, AICR1, AICR2 PDR(ポートデータレジスタ) アナログ入力 PDRリード 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御 <注意事項> • 入力ポートとして使用する端子は , 対応する DDR レジスタのビットを "0" に設定し , か つ外部端子にプルアップ抵抗を付加してください。また , AICR レジスタの対応する ビットを "0" に設定してください。 • アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設 定してください。 このときのPDRレジスタの読出し値は, PDRのレジスタ値になります。 112 第 4 章 I/O ポート ■ アナログ入力制御レジスタ (AICR:AICR0 ∼ AICR2) AICR0 7 6 5 4 3 2 1 0 初期値 アクセス アドレス:0000007EH AN7E AN6E AN5E AN4E AN3E AN2E AN1E AN0E 00000000B R/W AICR1 7 6 5 4 3 2 アドレス:00000086H − − − − − − AICR2 7 6 5 4 3 2 アドレス:0000008EH − − − − − − 1 0 AN9E AN8E 1 0 AN11E AN10E 初期値 ------00B アクセス 初期値 ------00B アクセス R/W R/W AICR は , 対応する I/O ポートの各端子を以下のように制御します。 AICR=0: ポート入力モード AICR=1: アナログ入力モード リセットで "0" になります。 113 第 4 章 I/O ポート 114 第5章 割込みコントローラ 割込みコントローラの概要 , レジスタの構成 / 機能 , 割込みコントローラの動作 , およびホールドリクエ スト取下げ要求機能の使用例について説明します。 5.1 概要 5.2 割込みコントローラのレジスタ 5.3 割込みコントローラの動作 115 第 5 章 割込みコントローラ 5.1 概要 割込みコントローラは , 割込みの受付け / 調停処理を行います。 ■ ハードウェア構成 本モジュールは , 以下のレジスタおよび回路より構成されます。 • ICR レジスタ • 割込み優先度判定回路 • 割込みレベル , 割込み要因 ( ベクタ ) 発生部 • ホールドリクエスト取下げ要求発生部 ■ 主要機能 本モジュールには , 主に以下のような機能があります。 • NMI 要求 / 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み要因伝達 (CPU へ ) • NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復 帰指示 (CPU へ ) • DMAC へのホールドリクエスト取下げ要求発生 116 第 5 章 割込みコントローラ ■ レジスタ一覧 図 5.1-1 レジスタ一覧 (1/2) 7 5 4 3 2 1 0 ←ビット No. − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR00 − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR01 − − − 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 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR07 ICR3 ICR2 ICR1 ICR0 ICR08 アドレス 00000440H − 00000441H − 00000442H 00000447H − 6 − 00000448H − − − ICR4 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 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR15 ICR3 ICR2 ICR1 ICR0 ICR16 0000044FH − − 00000450H − − − ICR4 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 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR23 ICR3 ICR2 ICR1 ICR0 ICR24 00000457H − − 00000458H − − − ICR4 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 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR31 R R/W R/W R/W R/W 0000045FH − − 117 第 5 章 割込みコントローラ 図 5.1-1 レジスタ一覧 (2/2) 5 4 3 2 1 0 ←ビット No. − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR32 − − ICR4 ICR3 ICR2 ICR1 ICR0 ICR33 − − − 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 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR38 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR39 ICR3 ICR2 ICR1 ICR0 ICR40 − 00000461H − 00000462H 00000466H 00000467H − − 6 − − 00000468H − − − ICR4 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 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR46 − ICR4 ICR3 ICR2 ICR1 ICR0 ICR47 − R LVL4 R/W LVL3 R/W LVL2 R/W LVL1 R/W LVL0 HRCL R R/W R/W R/W R/W 0000046EH 0000046FH 00000045H 118 7 アドレス 00000460H − − MHALTI − − − 第 5 章 割込みコントローラ ■ ブロックダイヤグラム 図 5.1-2 ブロックダイヤグラム UNMI WAKEUP (LEVEL ≠111111B のとき "1" ) 優先度判定 NMI NMI 処理 5 / LVL4~LVL0 HLDREQ 取下げ 要求 LEVEL判定 RI00 ・ ・ ・ RI47 (DLYIRQ) ICR00 ・ ・ ・ ICR47 MHALTI LEVEL, VECTOR 判定 6 / VECTOR 発生 VCT5~VCT0 R-bus 119 第 5 章 割込みコントローラ 5.2 割込みコントローラのレジスタ 割込みコントローラのレジスタ構成および機能について説明します。 ■ 割込み制御レジスタ (ICR:ICR00 ∼ ICR47) ビット No. → 7 6 5 4 3 2 1 0 アドレス 000440H ∼ 00046FH − − − ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W ICR00 ∼ ICR47 初期値 ---11111B 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割 込み要求の割込みレベルを設定します。 [ ビット 4 ∼ビット 0] ICR4 ∼ ICR0 割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。 本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定されたレベルマ スク値以上の場合は , CPU 側にて割込み要求はマスクされます。 リセットにより , "11111B" に初期化されます。 設定可能な割込みレベル設定ビットと割込みレベルの対応を表 5.2-1 に示します。 表 5.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応 ICR4 ICR3 ICR2 ICR1 ICR0 0 0 0 0 0 0 0 1 1 1 0 14 0 1 1 1 1 15 NMI 1 0 0 0 0 16 設定可能な最強レベル 1 0 0 0 1 17 (強) 1 0 0 1 0 18 1 0 0 1 1 19 1 0 1 0 0 20 1 0 1 0 1 21 1 0 1 1 0 22 1 0 1 1 1 23 1 1 0 0 0 24 1 1 0 0 1 25 1 1 0 1 0 26 1 1 0 1 1 27 1 1 1 0 0 28 1 1 1 0 1 29 1 1 1 1 0 30 1 1 1 1 1 31 割込みレベル システム 予約 (弱) 割込み禁止 ICR4 は "1" 固定で , "0" を書き込むことはできません。 120 第 5 章 割込みコントローラ ■ Hold Request Cancel Level register (HRCL) アドレス 00000045H 7 6 5 4 3 2 1 0 ←ビット No. MHALTI − − LVL4 R LVL3 R/W LVL2 R/W LVL1 R/W LVL0 R/W 0--11111B ( 初期値 ) R/W HRCL ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。 [ ビット 7] MHALTI MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1" にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後で 通常の割込みルーチンと同様にクリアしてください。 [ ビット 4 ∼ビット 0] LVL4 ∼ LVL0 バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定し ます。 本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した場 合は , バスマスタに対してホールドリクエスト取下げ要求を出します。 LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。 121 第 5 章 割込みコントローラ 5.3 割込みコントローラの動作 割込みコントローラの以下の動作について説明します。 • 優先順位判定 • NMI • ホールドリクエストの取下げ要求 • スタンバイモード ( ストップ / スリープ ) からの復帰 ■ 優先順位判定 本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選 択し , その要因の割込みレベルと割込み要因を CPU へ出力します。 割込み要因の優先順位判定基準は , 次のとおりです。 1. NMI 2. 以下の条件を満たす要因 • 割込みレベルの数値が 31 以外 (31 は割込み禁止 ) • 割込みレベルの数値が最も小さい要因 • その中で , 最も小さい割込み要因を持つ要因 上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし て 31(11111B) を出力します。そのときの割込み番号は不定です。 割込み要因と割込み番号 , 割込みレベルの関係を表 5.3-1 に示します。 122 第 5 章 割込みコントローラ 表 5.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 3) 割込み番号 割込み要因 割込みレベル オフセット 10 進 16 進 TBR デフォルト のアドレス RN リセット 0 00 − 3FCH 000FFFFCH − モードベクタ 1 01 − 3F8H 000FFFF8H − システム予約 2 02 − 3F4H 000FFFF4H − システム予約 3 03 − 3F0H 000FFFF0H − システム予約 4 04 − 3ECH 000FFFECH − システム予約 5 05 − 3E8H 000FFFE8H − システム予約 6 06 − 3E4H 000FFFE4H − コプロセッサ不在トラップ 7 07 − 3E0H 000FFFE0H − コプロセッサエラートラップ 8 08 − 3DCH 000FFFDCH − INTE 命令 9 09 − 3D8H 000FFFD8H − システム予約 10 0A − 3D4H 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 − 外部割込み 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 8 リロードタイマ 1 25 19 ICR09 398H 000FFF98H 9 リロードタイマ 2 26 1A ICR10 394H 000FFF94H 10 UART0 ( 受信完了 ) 27 1B ICR11 390H 000FFF90H 0 UART0 ( 送信完了 ) 28 1C ICR12 38CH 000FFF8CH 3 123 第 5 章 割込みコントローラ 表 5.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 3) 割込み番号 割込み要因 割込みレベル オフセット 10 進 16 進 TBR デフォルト のアドレス RN DTTI 29 1D ICR13 388H 000FFF88H − DMAC0 ( 終了 , エラー ) 30 1E ICR14 384H 000FFF84H − DMAC1 ( 終了 , エラー ) 31 1F ICR15 380H 000FFF80H − DMAC2/3/4 ( 終了 , エラー ) 32 20 ICR16 37CH 000FFF7CH − UART1 ( 受信完了 ) 33 21 ICR17 378H 000FFF78H 1 UART1 ( 送信完了 ) 34 22 ICR18 374H 000FFF74H 4 UART2 ( 受信完了 ) 35 23 ICR19 370H 000FFF70H 2 UART2 ( 送信完了 ) 36 24 ICR20 36CH 000FFF6CH 5 積和 37 25 ICR21 368H 000FFF68H - PPG0 38 26 ICR22 364H 000FFF64H − PPG1 39 27 ICR23 360H 000FFF60H − PPG2/3 40 28 ICR24 35CH 000FFF5CH − PPG4/5/6/7 41 29 ICR25 358H 000FFF58H − PPG8/9/10/11/12/13/14/15 42 2A ICR26 354H 000FFF54H − 外部割込み 8/9 43 2B ICR27 350H 000FFF50H − 波形 0( アンダフロー ) 44 2C ICR28 34CH 000FFF4CH − 波形 1( アンダフロー ) 45 2D ICR29 348H 000FFF48H − 波形 2( アンダフロー ) 46 2E ICR30 344H 000FFF44H − タイムベースタイマ オーバフロー 47 2F ICR31 340H 000FFF40H − フリーランタイマ ( コンペアクリア ) 48 30 ICR32 33CH 000FFF3CH − フリーランタイマ ( ゼロ検出 ) 49 31 ICR33 338H 000FFF38H − A/D0 50 32 ICR34 334H 000FFF34H − A/D1 51 33 ICR35 330H 000FFF30H − A/D2 52 34 ICR36 32CH 000FFF2CH − PWC0 ( 測定完了 ) 53 35 ICR37 328H 000FFF28H − PWC1 ( 測定完了 ) 54 36 ICR38 324H 000FFF24H − PWC0 ( オーバフロー ) 55 37 ICR39 320H 000FFF20H − PWC1 ( オーバフロー ) 56 38 ICR40 31CH 000FFF1CH − ICU 0 ( 取込み ) 57 39 ICR41 318H 000FFF18H − 124 第 5 章 割込みコントローラ 表 5.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 3) 割込み番号 割込み要因 割込みレベル オフセット 10 進 16 進 TBR デフォルト のアドレス RN ICU 1 ( 取込み ) 58 3A ICR42 314H 000FFF14H − ICU 2/3 ( 取込み ) 59 3B ICR43 310H 000FFF10H − OCU0/1 ( 一致 ) 60 3C ICR44 30CH 000FFF0CH − OCU2/3 ( 一致 ) 61 3D ICR45 308H 000FFF08H − OCU4/5 ( 一致 ) 62 3E ICR46 304H 000FFF04H − 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H − システム予約 (REALOS にて使用 ) 64 40 − 2FCH 000FFEFCH − システム予約 (REALOS にて使用 ) 65 41 − 2F8H 000FFEF8H − システム予約 66 42 − 2F4H 000FFEF4H − システム予約 67 43 − 2F0H 000FFEF0H − システム予約 68 44 − 2ECH 000FFEECH − システム予約 69 45 − 2E8H 000FFEE8H − システム予約 70 46 − 2E4H 000FFEE4H − システム予約 71 47 − 2E0H 000FFEE0H − システム予約 72 48 − 2DCH 000FFEDCH − システム予約 73 49 − 2D8H 000FFED8H − システム予約 74 4A − 2D4H 000FFED4H − システム予約 75 4B − 2D0H 000FFED0H − システム予約 76 4C − 2CCH 000FFECCH − システム予約 77 4D − 2C8H 000FFEC8H − システム予約 78 4E − 2C4H 000FFEC4H − システム予約 79 4F − 2C0H 000FFEC0H − 80 50 2BCH 000FFEBCH ∼ ∼ ∼ ∼ 255 FF 000H 000FFC00H INT 命令で使用 − − 125 第 5 章 割込みコントローラ ■ 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" にクリアしてください。 ■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request) 優先度の高い割込み処理を CPU のホールド中 (DMA 転送中 ) に行う場合は , ホールド リクエスト発生元においてリクエストを取り下げてもらう必要があります。この取下 げ要求発生の基準となる割込みレベルを HRCL レジスタに設定します。 ● 発生基準 HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合 は , DMAC に対してホールドリクエスト取下げ要求を発生します。 HRCL レジスタの割込みレベル> 優先度判定後の割込みレベル→取下げ要求発生 HRCL レジスタの割込みレベル≦ 優先度判定後の割込みレベル→取下げ要求なし 取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効 であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割 込み要因をクリアしてください。また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっているため , 取下げ要求が有効になっています。 ● 設定可能なレベル HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。 "11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また , "10000B" に設定した場合は , NMI でのみ取下げ要求を発生します。 ホールドリクエスト取下げ要求発生となる割込みレベルの設定を表 5.3-2 に示します。 126 第 5 章 割込みコントローラ 表 5.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定 HRCL レジスタ 取下げ要求発生となる割込みレベル 17 NMI, 割込みレベル 16 18 NMI, 割込みレベル 16, 17 31 ∼ NMI のみ ∼ 16 NMI, 割込みレベル 16 ∼ 30[ 初期値 ] リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割 込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値 に設定してください。 ■ スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。 NMI を含む , 周辺からの割込み要求 ( 割込みレベルが 11111B 以外 ) が 1 つでも発生す ると , クロック制御部に対してストップモードからの復帰要求を発生します。 優先度判定部は , ストップ復帰後クロックが供給された後 , 動作を再開しますので , 優 先度判定部の結果が出るまでの間 ,CPU は命令を実行します。 スリープ状態からの復帰においても同様に動作します。また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。 <注意事項> • NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効 な入力レベルを NMI 端子に与えるようにしてください。 • ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺の 制御レジスタにて割込みレベルを "11111B" にしてください。 ■ ホールドリクエスト取下げ要求機能 (HRCL) の使用例 DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホールド リクエストを取り下げてもらってホールド状態を解除する必要があります。ここでは , 割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先 動作を実現します。 127 第 5 章 割込みコントローラ ● 制御レジスタ HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) HRCL に設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に 対してホールドリクエスト取下げ要求を発生します。その基準となるレベルを設定 します。 ICR ( 割込み制御レジスタ ) 使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し ます。 ● ハードウェア構成 各信号の流れを図 5.3-1 に示します。 図 5.3-1 各信号の流れ 本モジュール IRQ バスアクセス要求 MHALTI I-UNIT (ICR) (HRCL) DHREQ: D-busホールドリクエスト DHREQ DMAC バス コンバータ CPU DHACK D-busホールドアクノリッジ IRQ : 割込み要求 MHALTI: ホールドリクエスト 取下げ要求 DHACK ● シーケンス 図 5.3-2 割込みレベル HRCL < ICR (LEVEL) RUN CPU バスホールド 割込み処理 ① バスアクセス要求 ② バスホールド(DMA転送) 割込みルーチンの例 ① 割込み要因クリア DHREQ ~ DHACK ② RETI IRQ LEVEL MHALTI 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。 多重割込みの場合を 図 5.3-3 に示します。 128 第 5 章 割込みコントローラ 図 5.3-3 割込みレベル HRCL < ICR( 割込みⅠ ) < ICR( 割込みⅡ ) RUN バスホールド 割込みI 割込み処理II 割込み処理I バスホールド(DMA転送) CPU バスアクセス要求 DHREQ DHACK IRQ1 IRQ2 LEVEL MHALTI 割込みルーチンの例 ① , ③割込み要因クリア ∼ ② , ④ RETI 上記例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した場 合を示しています。 HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は , DHREQ は "L" レベルになっています。 <注意事項> HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。 129 第 5 章 割込みコントローラ 130 第6章 外部割込み・NMI 制御部 外部割込み /NMI 制御部の概要 , レジスタの構成 / 機能 , および動作について説明します。 6.1 外部割込み /NMI 制御部の概要 6.2 外部割込み /NMI 制御部のレジスタ 6.3 外部割込み /NMI 制御部の動作 131 第 6 章 外部割込み・NMI 制御部 6.1 外部割込み /NMI 制御部の概要 外部割込み制御部は , NMI および INT0 ∼ INT9 に入力される外部割込み要求の制御 を行います。 外部割込み入力は , 検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下 りエッジ " から選択できます。 ■ レジスタ一覧 外部割込み /NMI 制御部のレジスタ一覧を示します。 外部割込み要因レジスタ 7 6 5 4 3 2 1 0 初期値 EIRR0 アドレス : 00000040H ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 00000000B [R/W] EIRR1 アドレス : 000000B8H − − − − − − ER9 ER8 - - - - - - 0 0B [R/W] 7 6 5 4 3 2 1 0 初期値 ENIR0 アドレス : 00000041H EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 00000000B [R/W] ENIR1 アドレス : 000000B9H − − − − − − EN9 EN8 - - - - - - 0 0B [R/W] 15 14 13 12 11 10 9 8 初期値 ELVR0 アドレス : 00000042H LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 00000000B [R/W] ELVR1 アドレス : 000000BAH − − − − − − − − - - - - - - - -B [R/W] 7 6 5 4 3 2 1 0 初期値 ELVR0 アドレス : 00000043H LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 00000000B [R/W] ELVR1 アドレス : 000000BBH − − − − LB9 LA9 LB8 LA8 - - - - 0 0 00B [R/W] ビット No. → 割込み許可レジスタ ビット No. → 外部割込み要求レベル設定レジスタ ビット No. → ビット No. → ■ ブロックダイヤグラム 外部割込み /NMI 制御部のブロックダイヤグラムを図 6.1-1 に示します。 図 6.1-1 ブロックダイヤグラム 10 外部割込み許可レジスタ 割込み要求 132 11 10 10 ゲート 要因 F/F エッジ検出回路 外部割込み要因レジスタ 外部割込み要求レベル設定レジスタ 11 INT0~INT9 NMI 第 6 章 外部割込み・NMI 制御部 6.2 外部割込み /NMI 制御部のレジスタ 外部割込み /NMI 制御部で使用するレジスタの構成および機能について説明します。 ■ 割込み許可レジスタ [ENIR (ENIR0, ENIR1) : ENable Interrupt request Register] ビット No. → ENIR0 アドレス : 00000041H ENIR1 アドレス : 000000B9H 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 初期値 00000000B [R/W] − EN9 EN8 - - - - - - 0 0B [R/W] − − − − − ENIR レジスタは外部割込み要求出力のマスク制御を行います。このレジスタの "1" を 書かれたビットに対応する割込み要求出力は許可され (INT0 の許可を EN0 が制御 ) , 割 込みコントローラに対して要求が出力されます。"0" が書かれたビットの対応する端子 は割込み要因を保持しますが , 割込みコントローラに対しては要求を発生しません。 ENIR1 レジスタのビット 7 ∼ビット 2 には , 必ず "0" を書き込んでください。 NMI に対する許可ビットは , 存在しません。 ■ 外部割込み要因レジスタ [EIRR (EIRR0, EIRR1) : External Interrupt Request Register] ビット No. → EIRR0 アドレス : 00000040H EIRR1 アドレス : 000000B8H 7 6 5 4 3 2 1 0 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 初期値 00000000B [R/W] − ER9 ER8 - - - - - - 0 0B [R/W] − − − − − EIRR レジスタは読出し時には対応する外部割込み要求があることを示し , 書込み時に はこの要求を示すフリップフロップの内容をクリアするレジスタです。 この EIRR レジスタを読み出したときに "1" であった場合 , そのビットに対応する端子 に外部割込み要求があることを示します。また , このレジスタに "0" を書き込むと , 対 応するビットの要求フリップフロップがクリアされます。 "1" の書込みは無効です。 リード・モディファイ・書込みの読出し時には "1" が読まれます。 NMI に対するフラグは , ユーザからアクセスできません。 133 第 6 章 外部割込み・NMI 制御部 ■ 外部割込み要求レベル設定レジスタ [ELVR (ELVR0, ELVR1) : External LeVel Register] 15 14 13 12 11 10 9 8 ELVR0 アドレス : 00000042H LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 初期値 00000000B [R/W] ELVR1 アドレス : 000000BAH − − − − − − − − - - - - - - - -B [R/W] ビット No. → 7 6 5 4 3 2 1 0 ELVR0 アドレス : 00000043H LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 初期値 00000000B [R/W] ELVR1 アドレス : 000000BBH − − − − LB9 LA9 LB8 LA8 - - - - 0 0 0 0B [R/W] ビット No. → ELVR は要求検出の選択を行うレジスタです。INT0 ∼ INT9 に 2 ビットずつが割り当て られていて , 以下のような設定になります。要求入力がレベルの場合 , EIRR の各ビッ トをクリアしても入力がアクティブレベルならば該当するビットは再びセットされま す。 ストップ状態からの復帰に使用する場合は , "H" レベル , または "L" レベル要求に設定 してください。 表 6.2-1 ELVR 割当て表 LBx, LAx 動作 0 0B "L" レベルで要求あり 0 1B "H" レベルで要求あり 1 0B 立上りエッジで要求あり 1 1B 立下りエッジで要求あり NMI の検出レベルは , 常に立下りエッジです。また , ストップ状態からの復帰に NMI を使用する場合は , "L" レベル検出となります。 134 第 6 章 外部割込み・NMI 制御部 6.3 外部割込み /NMI 制御部の動作 要求レベル , 許可レジスタの設定後 , 対応する端子に ELVR レジスタで設定された要 求が入力されると , 本モジュールは割込みコントローラに対して割込み要求信号を発 生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本リソースからの割込みが最も優先順位が高かったときに該当する割込みが発生し ます。 ■ 外部割込みの動作について 外部割込みの動作を図 6.3-1 に示します。 図 6.3-1 外部割込みの動作 割込み 割込みコントローラ 外部割込み CPU リソース 要求 ELVR ENIR IL ICRyy EIRR CMP ICRxx CMP ILM 要因 ■ スタンバイからの復帰について クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要 求を "H" レベル , または "L" レベル要求に設定してください。 エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。 使用しないチャネルは , スタンバイに入る前に必ずディセーブル状態にしてください。 ■ 外部割込みの動作手順について 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 許可レジスタの対象となるビットをディセーブル状態にする。 3. 要求レベル設定レジスタの対象となるビットを設定する。 4. 要因レジスタの対象となるビットをクリアする。 5. 許可レジスタの対象となるビットをイネーブル状態にする。 ( ただし , 4. と 5. は 16 ビットデータによる同時書込み可能。) 本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態 に設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前に 必ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み 許可状態時に誤って割込み要因が起こってしまうことを避けるためです。 135 第 6 章 外部割込み・NMI 制御部 ■ 外部割込み要求レベルについて 1. 要求レベルがエッジ要求時 , エッジがあったことを検出するためには , パルス幅は 最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。 2. 要求入力レベルがレベル設定時 , 外部より要求入力が入ってその後 , 取り下げられ ても内部に要因保持回路が存在するため , 割込みコントローラへの要求はアクティ ブのままです。 割込みコントローラへの要求を取り下げるには外部割込み要因レジスタをクリアする 必要があります。 図 6.3-2 レベル設定時の外部割込み要因レジスタのクリア 割込み入力 レベル検出 外部割込み要因レジスタ (要因保持回路) 許可ゲート 割込み コントローラ クリアしない限り要因を保持し続ける 図 6.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求 "H"レベル 割込み入力 割込みコントローラ への割込み要求 136 外部割込み要因レジスタのクリアによってインアクティブとなる 第 6 章 外部割込み・NMI 制御部 ■ NMI 1. NMI は , ユーザ割込みの中で最強の割込みで , マスクすることはできません。 例外として , NMI の使用前に ILM を設定しないで NMI を起動すると , NMI 要因は 検出されますが , CPU は NMI 要求を受け付けません。このとき , ILM を NMI が受 け付けられるレベルに設定されるまで , NMI 要因は保持され続けます。このため , リセット後 , ILM を 16 以上の値に設定した後 , NMI を使用してください。また , NMI の内部要因フラグは CPU からアクセスできませんので , リセット後の NMI 端子は "H" レベルを保持してください。 2. NMI の受付けは下記のとおりです。 通常時 :立下りエッジ ストップ時 :"L" レベル 3. NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力 されるとストップ状態が解除され発振安定待ち時間がとられます。 NMI 要求検出部は NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割 込みの受付け , もしくは , リセットでのみクリアされます。 なお , このビットは読出し / 書込みできません。 図 6.3-4 NMI 要求検出 (NMIフラグ) 0 NMI要求 (ストップ解除) Q SX 立下り エッジ検出 R NMI 1 STOP クリア (RST,割込み アクノリッジ) 137 第 6 章 外部割込み・NMI 制御部 ■ 外部割込みを使用した STOP 状態からの復帰時における注意事項 STOP 状態時に , INT 端子への最初に入力された外部割込み信号は非同期で入力され , STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち 時間経過するまでの期間においては , 他の外部割込み信号の入力を認識できな期間が 存在します ( 図 6.3-5 の b+c+d 期間 )。STOP 解除後の外部入力信号を内部クロックに 同期させるため , クロックが安定していない期間内は , その割込み要因を保持できない ためです。 そのため , STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に 外部割込み信号を入力してください。 図 6.3-5 STOP 状態からの外部割込みによる復帰動作のシーケンス INT1 INT0 内部STOP Regulator 12uS High Low 内部動作(RUN) 命令実行(run) X0 内部Clock 割込みフラグクリア INTR0 INTE0 ‘1’(STOPモードに遷移前にenableへ設定) INTR1 INTE1 ‘1’(STOPモードに遷移前にenableへ設定) (a)STOP (b)レギュレータ安定待ち時間 (d)発振安定待ち時間 (c) 振動子の発振時間 138 (e)RUN 第 6 章 外部割込み・NMI 制御部 ■ STOP 状態からの復帰動作について 現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。 ● STOP 遷移前の処理 外部割込みの設定 デバイスが STOP 状態に遷移する前に STOP 状態時の割込み入力パスを許可する必 要があります。これは PFR レジスタ (Port Function Register) で設定を行います。通 常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態ですので意識する必要 はありません。しかし STOP 状態では PFR レジスタ値により入力パスが制御されて おります。 端子名 外部割込みによる STOP 状態からの復帰時の設定 P63/INT9 PCR6 の bit3 を "0" としてください。 P62/INT8 PCR6 の bit2 を "0" としてください。 P26/INT7 PCR2 の bit7 を "0" としてください。 P27/INT6 PCR2 の bit6 を "0" としてください。 P62/INT5/PPG0 PCR6 の bit1 を "0" としてください。 P60/INT4/CKI PCR6 の bit0 を "0" としてください。 P57/INT3 PFR5 の bit7 を "0" としてください。 P56/INT2 PFR5 の bit6 を "0" としてください。 P55/INT1 PFR5 の bit5 を "0" としてください。 P54/INT0 PFR5 の bit4 を "0" としてください。 外部割込みの入力 STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状 態となっています。この割込み入力がアサートされると直ちにに内部 STOP 信号を 立ち下げる動作が行われます。同時に外部割込み回路では他のレベル割込み入力の 同期化を行うように切り換わります。 ● レギュレータ安定待ち時間 内部 STOP 信号が立ち下がると STOP 時のレギュレータから RUN 時のレギュレー タへ切換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前 に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間 として , 約 12µs のレギュレータの安定待ち時間を確保しています。この期間はク ロックが停止しています。 ● 振動子の発振時間 レギュレータ安定待ち時間が終了後 , クロックの発振が開始されます。振動子の発 振時間は使用される振動子により異なります。 ● 発振安定待ち時間 振動子の発振時間後にデバイス内部で発振安定待ち時間がとられます。発振安定待 ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安定 139 第 6 章 外部割込み・NMI 制御部 待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が開 始されると共に , STOP からの復帰要因以外の外部割込み要因が受け付け可能にな ります。 140 第7章 REALOS 関連ハード REALOS 関連ハードは , リアルタイム OS により 使用されます。したがって , REALOS を使用する 場合にはユーザプログラムで使用することはでき ません。 7.1 遅延割込みモジュール 7.2 遅延割込みモジュールのレジスタ 7.3 遅延割込みモジュールの動作 7.4 ビットサーチモジュール 7.5 ビットサーチモジュールのレジスタ 7.6 ビットサーチモジュールの動作 141 第 7 章 REALOS 関連ハード 7.1 遅延割込みモジュール 遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで す。 本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取消しを行うことができます ■ レジスタ一覧 アドレス 00000044H 7 6 5 4 3 2 1 0 ←ビット No. − − − − − − − DLYI [R/W] DICR ■ ブロックダイヤグラム 図 7.1-1 ブロックダイヤグラム R‐bus DLYI 割込み要求 142 第 7 章 REALOS 関連ハード 7.2 遅延割込みモジュールのレジスタ 遅延割込みモジュールで使用するレジスタの構成および機能について説明します。 ■ DICR (Delayed Interrupt Control Register) アドレス 000044H 7 6 5 4 3 2 1 − − − − − − − 0 DLYI [R/W] 初期値 -------0B 遅延割込みを制御するレジスタです。 [ ビット 0] DLYI DLYI 説明 0 遅延割込み要因の解除・要求なし〔初期値〕 1 遅延割込み要因の発生 本ビットにより , 該当する割込み要因の発生・解除を制御します。 143 第 7 章 REALOS 関連ハード 7.3 遅延割込みモジュールの動作 遅延割込みは , タスク切換え用の割込みを発生します。本機能により , ソフトウェア で CPU に対して割込み要求の発生 , 取消しを行うことができます。 ■ 割込み番号 遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。 本品種では , 遅延割込みを割込み番号 63 (3FH) に割り当てています。 ■ DICR の DLYI ビット このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き 込むことで , 遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアし , 併せてタスクの切換えを行うようにしてください。 144 第 7 章 REALOS 関連ハード 7.4 ビットサーチモジュール 入力レジスタに書き込まれたデータに対して , "0", "1" または変化点を検索し , 検出 したビット位置を返します。 ■ レジスタ一覧 ビットサーチモジュールのレジスタ一覧を図 7.4-1 に示します。 図 7.4-1 レジスタ一覧 アドレス 000003F0H 31 0 BSD0 0 検出用データレジスタ 000003F4H BSD1 1 検出用データレジスタ 000003F8H BSDC 変化点検出用データレジスタ 000003FCH BSSR 検出結果レジスタ ■ ブロックダイヤグラム 図 7.4-2 ブロックダイヤグラム D-bus 入力ラッチ アドレスデコーダ 検出モード 1検出データ化 ビットサーチ回路 検索結果 145 第 7 章 REALOS 関連ハード 7.5 ビットサーチモジュールのレジスタ ビットサーチモジュールで使用するレジスタの構成および機能について説明します。 ■ 0 検出用データレジスタ (BSD0) アドレス 000003F0H 31 0 リード / ライト→ W 初期値→ 不定 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX B 書き込んだ値に対して , 0 検出を行います。 リセットによる初期値は不定です。読出し値は不定です。 データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト 長のデータ転送命令は使わないでください )。 ■ 1 検出用データレジスタ (BSD1) アドレス 000003F4H 31 0 リード / ライト→ R/W 初期値→ 不定 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト 長のデータ転送命令は使わないでください )。 • 書込み時 書き込んだ値に対して , "1" を検出します。 • 読出し時 ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避 / 復帰する ときに使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー タレジスタのみ操作することで退避 / 復帰できます。 リセットによる初期値は不定です。 146 第 7 章 REALOS 関連ハード ■ 変化点検出用データレジスタ (BSDC) 31 アドレス 000003F8H 0 リード / ライト→ W 初期値→ 不定 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB 書き込んだ値に対して , 変化点の検出を行います。 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト 長のデータ転送命令は使わないでください )。 ■ 検出結果レジスタ (BSRR) アドレス 000003FCH 31 0 リード / ライト→ R 初期値→ 不定 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX B 0 検出 , 1 検出 , または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ れます。 147 第 7 章 REALOS 関連ハード 7.6 ビットサーチモジュールの動作 ビットサーチモジュールの 3 種類の動作について説明します。 • 0 検出 • 1 検出 • 変化点検出 ■ 0 検出 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す数値の関係は , 表 7.6-1 のとおりです。 "0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値を検出結 果として返します。 [ 実行例 ] 書込みデータ 読出し値 (10 進 ) 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 ■ 1 検出 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値との関係は , 表 7.6-1 のとおりです。 "1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値を検出結 果として返します。 [ 実行例 ] 書込みデータ 148 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 第 7 章 REALOS 関連ハード ■ 変化点検出 変化点検出用データレジスタに書き込まれたデータをビット 30 から LSB へスキャン し , MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値は , 表 7.6-1 の示すとおりです。 変化点が存在しないときは , 32 を返します。 変化点検出では , 結果として "0" を返すことはありません。 [ 実行例 ] 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 表 7.6-1 ビット位置と返す値 (10 進 ) 検出した ビット位置 返す値 検出した ビット位置 返す値 検出した ビット位置 返す値 検出した ビット位置 返す値 31 0 23 8 15 16 7 24 30 1 22 9 14 17 6 25 29 2 21 10 13 18 5 26 28 3 20 11 12 19 4 27 27 4 19 12 11 20 3 28 26 5 18 13 10 21 2 29 25 6 17 14 9 22 1 30 24 7 16 15 8 23 0 31 存在しないときは , 32 を返します。 149 第 7 章 REALOS 関連ハード ■ 退避・復帰の処理 割込みハンドラ中でビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ い。 1. 1 検出用データレジスタを読み出し , この内容を保存する ( 退避 ) 。 2. ビットサーチモジュールを使用する。 3. 1. で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )。 以上の操作により , 次に検出結果レジスタを読み出したときに得られる値は , 1. 以前に ビットサーチモジュールに書き込まれた内容に応じたものとなります。最後に書き込 まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく元 に戻ります。 150 第8章 16 ビットリロードタイマ 16 ビットリロードタイマの概要 , レジスタの構成 / 機能 , および 16 ビットリロードタイマの動作につ いて説明します。 8.1 概要 8.2 16 ビットリロードタイマのブロックダイヤグラム 8.3 16 ビットリロードタイマのレジスタ 8.4 16 ビットリロードタイマの動作 151 第 8 章 16 ビットリロードタイマ 8.1 概要 16 ビットタイマは , 16 ビット のダウンカウンタ , 16 ビット のリロードレジスタ , 内部カウント , クロック作成用プリスケーラ , コントロールレジスタで構成されてい ます。 クロックソースとして内部クロック 3 種類 ( マシンクロックの 2/8/32/64/128 分周ま で選択可能 ) , 外部トリガから選択できます。 本品種では , 本タイマを 3 チャネル内蔵しています。 リロードタイマ 0 の端子への出力はありません。 ■ レジスタ一覧 コントロールステータスレジスタ (TMCSR:TMCSR0 ∼ TMCSR2) TMCSR0 アドレス 00004EH TMCSR1 アドレス 000056H TMCSR2 アドレス 00005EH リード / ライト→ 初期値→ リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 − − − CSL2 CSL1 CSL0 − (X) − (X) − (X) R/W R/W R/W R/W R/W (0) (0) (0) (0) (0) 7 6 5 4 3 2 1 0 MOD0 OUTL RELD INTE UF CNTE TRG R/W − R R/W R/W R/W R/W R/W R/W (0) (0) (0) (0) (0) (0) (0) (0) ←ビット No. MOD2 MOD1 ←ビット No. 16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2) 15 14 13 12 11 10 9 8 リード / ライト→ R R R R R R R R 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 2 1 0 リード / ライト→ R − R R R R R R R 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) TMR0 アドレス 00004AH TMR1 アドレス 000052H TMR2 アドレス 00005AH ←ビット No. ←ビット No. 16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼ TMRLR2) 15 14 13 12 11 10 9 8 リード / ライト→ W W W W W W W W 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) 7 6 5 4 3 2 1 0 リード / ライト→ W − W W W W W W W 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) TMRLR0 アドレス 000048H TMRLR1 アドレス 000050H TMRLR2 アドレス 000058H 152 ←ビット No. ←ビット No. 第 8 章 16 ビットリロードタイマ 8.2 16 ビットリロードタイマのブロックダイヤグラム リロードタイマのブロックダイヤグラムを示します。 ■ リロードタイマのブロックダイヤグラム 図 8.2-1 リロードタイマのブロックダイヤグラム 16ビットリロードレジスタ (TMRLR0~TMRLR2) リロード RELD 16ビットダウンカウンタ (TMR0~TMR2) UF OUTL INTE OUT CTL カウント イネーブル IRQ UF CNTE R-bus TRG CSL2 クロック セレクタ 外部タイマ出力 TOT1(P70) TOT2(P71) CSL1 CSL0 EXCK プリスケーラ IN プリスケーラ クリア CTL CSL2 CSL1 CSL0 TO1E, TO2E 外部トリガ 選択 PFR7のビット 外部トリガ入力 TIN0(P51) TIN1(P52) TIN2(P53) 153 第 8 章 16 ビットリロードタイマ 8.3 16 ビットリロードタイマのレジスタ リロードタイマのレジスタの構成と機能について説明します。 ■ コントロールステータスレジスタ (TMCSR:TMCSR0 ∼ TMCSR2) コントロールステータスレジスタ (TMCSR) 15 アドレス 14 13 12 11 10 CSL1 CSL0 9 8 ←ビット No. TMCSR0:00004EH − − − CSL2 TMCSR1:000056H − (X) − (X) − (X) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ←リード / ライト ←初期値 7 6 5 4 3 2 1 0 ←ビット No. MOD0 − R (0) OUTL RELD INTE UF CNTE TRG R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) TMCSR2:00005EH R/W (0) MOD2 MOD1 ←リード / ライト ←初期値 16 ビットタイマの動作モードおよび割込みの制御を行います。 UF, CNTE, TRG ビット以外の書換えは , CNTE=0 のときに行うようにしてください。 [ ビット 12 ∼ビット 10] CSL2, CSL1, CSL0 (Count source select) カウントソースセレクトビットです。カウントソースは内部クロックと外部トリガ を選択できます。選択可能なカウントソースは以下のとおりです。 CSL2 CSL1 CSL0 カウントソース (φ: マシンクロック ) φ=32MHz φ=16MHz 0 0 0 内部クロック φ/21 ( 初期値 ) 62.5 ns 125 ns 0 0 1 内部クロック φ/23 250 ns 0.5 µs 0 1 0 内部クロック φ/25 1.0 µs 2.0 µs 0 1 1 外部トリガ − − 1 0 0 設定禁止 − − 1 0 1 内部クロック φ/26 2.0 µs 4.0 µs 1 1 0 内部クロック φ/27 4.0 µs 8.0 µs 1 1 1 ch.1 タイマ出力 (ch.2 のみ設定可能 ) ch.1 ch.1 外部トリガをカウントソースに設定した場合のカウント有効エッジは MOD1, MOD0 ビットにより設定されます。 外部トリガに必要な最小パルス幅は , 2 × T (T: マシンクロックサイクル ) です。 CSL2, CSL1, CSL0=111B は , ch.1 + ch.2 のカスケード接続で , ch.2 のレジスタのみ設定 可能です。ch.1 では設定禁止です。 154 第 8 章 16 ビットリロードタイマ [ ビット 9 ∼ビット 7] MOD2, MOD1, MOD0 (Mode) 動作モードを選択するビットです。カウントソースが「内部クロック」の場合と「外 部トリガ」の場合で機能が変わります。 • 内部クロックモードのとき : リロードトリガ設定 • 外部トリガモードのとき : カウント有効エッジの設定 また , MOD2 は必ず "0" を設定してください。 [ 内部クロック選択時のリロードトリガ設定 ] カウントソースとして , 内部クロックが選択されている場合は , MOD2 ∼MOD0ビッ トの設定により有効エッジが入力されるとリロードレジスタの内容をロードしてカ ウント動作を継続します。 MOD2 MOD1 MOD0 有効エッジ 0 0 0 ソフトウェアトリガ ( 初期値 ) 0 0 1 外部トリガ ( 立上りエッジ ) 0 1 0 外部トリガ ( 立下りエッジ ) 0 1 1 外部トリガ ( 両エッジ ) 1 X X 設定禁止 [ 外部トリガ選択時の有効エッジ設定 ] カウントソースとして , 外部クロックが設定されている場合は , MOD2 ∼MOD0ビッ トの設定により外部トリガの有効エッジをカウントします。 MOD2 MOD1 MOD0 有効エッジ X 0 0 − X 0 1 外部トリガ ( 立上りエッジ ) X 1 0 外部トリガ ( 立下りエッジ ) X 1 1 外部トリガ ( 両エッジ ) X X X 設定禁止 外部トリガ選択時のリロードは , ソフトウェアトリガとアンダフローで発生します。 [ ビット 6] 未使用ビットです。 常に "0" が読み出されます。 [ ビット 5] OUTL 外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと "1" のときで は出力レベルが逆になります。 155 第 8 章 16 ビットリロードタイマ [ ビット 4] RELD リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が "0000H" → "FFFFH" へのアンダフローと同時にリロードレジスタの内容をカウンタへロード してカウント動作を続けます。 "0" のときワンショットモードになり , カウンタの値が "0000H" → "FFFFH" へのアン ダフローによりカウント動作を停止します。 TOxE OUTL RELD 0 X X 出力禁止 1 0 0 カウント中 "H" の矩形波 1 1 0 カウント中 "L" の矩形波 1 0 1 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 TOxE は PFR7(Port Function Register) 中の TO1E, TO2E を示します。ただし , リロー ドタイマ 0 の端子への出力はありません。 [ ビット 3] INTE 割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を発生 します。"0" のときは割込み要求を発生しません。 [ ビット 2] UF タイマ割込み要求フラグです。カウンタの値が "0000H" → "FFFFH" へのアンダフロー により "1" にセットされます。"0" の書込みによってクリアされます。 このビットへの "1" の書込みは意味がありません。 リードモディファイライト系命令における読出しでは , "1" が読み出されます。 [ ビット 1] CNTE タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動トリ ガ待ち状態になります。"0" の書込みによりカウント動作は停止します。 [ ビット 0] TRG ソフトウェアトリガビットです。"1" の書込みによりソフトウェアトリガが発生し , リロードレジスタの内容をカウンタへロードしてカウント動作を開始します。 "0" の書込みは意味を持ちません。読出し値は常に "0" です。 本レジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。CNTE=0 のと きには何も起こりません。 156 第 8 章 16 ビットリロードタイマ ■ TMR レジスタ (16 ビットタイマレジスタ ) 16 ビットタイマレジスタ (TMR) アドレス 15 14 13 12 11 10 9 8 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) ←リード / ライト ←初期値 7 6 5 4 3 2 1 0 ←ビット No. R (X) − R (X) R (X) R (X) R (X) R (X) R (X) R (X) ←リード / ライト ←初期値 ←ビット No. TMR0:00004AH TMR1:000052H TMR2:00005AH 16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で す。読出しは必ず 16 ビットデータ転送命令で行ってください。 ■ TMRLR レジスタ (16 ビットリロードレジスタ ) 16 ビットリロードレジスタ (TMRLR) アドレス 15 14 13 12 11 10 9 8 W (X) W (X) W (X) W (X) W (X) W (X) W (X) W (X) ←リード / ライト ←初期値 7 6 5 4 3 2 1 0 ←ビット No. W (X) − W (X) W (X) W (X) W (X) W (X) W (X) W (X) ←リード / ライト ←初期値 ←ビット No. TMRLR0:000048H TMRLR1:000050H TMRLR2:000058H カウントの初期値を保持しておくためのレジスタです。初期値は不定です。読出しは 必ず 16 ビットデータ転送命令で行ってください。 157 第 8 章 16 ビットリロードタイマ 8.4 16 ビットリロードタイマの動作 リロードタイマの動作について説明します。 ■ 内部クロック動作 内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ ンクロックの 2, 8, 32, 64, 128 分周のクロックから選択できます。 カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビット によるトリガ入力は , タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に 有効です。 カウンタの起動およびカウンタの動作について , 図 8.4-1 に示します。 カウントスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに , T (T: 周辺系クロックマシンサイクル ) の時間が必要です。 図 8.4-1 カウンタの起動および動作 カウントクロック カウンタ -1 リロードデータ データロード CNTE(レジスタ) TRG(レジスタ) T 158 -1 -1 第 8 章 16 ビットリロードタイマ ■ アンダフロー動作 カウンタの値が "0000H" から "FFFFH" になるときをアンダフローと定義しています。し たがって , [ リロードレジスタの設定値+ 1] カウントでアンダフローが発生します。 アンダフロー発生時コントロールステータスレジスタの RELD ビットが "1" のとき , リ ロードレジスタの内容をカウンタへロードしてカウント動作を継続します。RELD ビッ トが "0" のとき , カウンタは "FFFFH" で停止します。 アンダフローが発生すると , コントロールステータスレジスタの UF ビットをセットし ます。このときに INTE ビットが "1" の場合 , 割込み要求を発生します。 アンダフロー発生時の動作について図 8.4-2 に示します。 図 8.4-2 アンダフロー動作 カウントクロック カウンタ 0000H リロードデータ -1 -1 -1 データロード アンダフローセット [RELD=1] カウントクロック カウンタ 0000H FFFFH アンダフローセット [RELD=0] 159 第 8 章 16 ビットリロードタイマ ■ 出力端子機能 TOT1, TOT2 出力端子は , リロードモード時はアンダフローにより反転するトグル出力 として , ワンショットモード時はカウント中を示すパルス出力として機能します。出力 極性はレジスタの OUTL ビットにより設定できます。OUTL=0 のときトグル出力は初 期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 にす ると出力波形は反転します。 図 8.4-3 出力端子機能 [RELD=1, OUTL=0] カウント開始 アンダフロー OUTL=1のときは 反転 TOT1,TOT2 汎用ポート CNTE 起動トリガ 図 8.4-4 出力端子機能 [RELD=0, OUTL=0] カウント開始 アンダフロー OUTL=1で 反転 TOT1,TOT2 汎用ポート CNTE 起動トリガ 起動トリガ待ち状態 160 第 8 章 16 ビットリロードタイマ ■ カウンタの動作状態 カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に よって決まっています。設定可能な状態として CNTE=0,WAIT=1 の停止状態 (STOP 状 態 ) , CNTE=1,WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1,WAIT=0 の動作 状態 (RUN 状態 ) があります。各状態の遷移を図 8.4-5 に示します。 図 8.4-5 カウンタ状態遷移 ハードウェアによる状態遷移 リセット レジスタアクセスによる状態遷移 STOP CNTE=0,WAIT=1 カウンタ: 停止時の値を保持 リセット直後は不定 CNTE="1" TRG="0" WAITST CNTE="1" TRG="1" RUN CNTE=1,WAIT=1 カウンタ: 停止時の値を保持 リセット直後ロード するまでは不定 RELD・UF TRG="1" CNTE=1,WAIT=0 カウンタ: 動作 TRG="1" RELD・UF LOAD CNTE=1,WAIT=0 リロードレジスタの内容をカウンタへロード ロード終了 ■ 注意点 • 内部プリスケーラは , コントロールステータスレジスタのビット 1 ( タイマ許可 : CNTE) が "1" に設定されている状態でトリガ ( ソフトトリガ , あるいは 外部トリガ ) が発生することにより動作可能になります。 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ グセットが優先し , クリア動作は無効になります。 • 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった 場合には , 旧データがカウンタにロードされ , 新しいデータがカウンタにロードさ れるのは , 次のリロードのときになります。 • 16 ビットタイマレジスタは , ロードとカウントのタイミングが重複した場合には , ロード ( リロード ) 動作の方が優先されます。 161 第 8 章 16 ビットリロードタイマ 162 第9章 PPG(Programable Pulse Generator) PPG(Programable Pulse Generator) タイマの概 要 , レジスタの構成 / 機能および動作について説明 します。 9.1 概要 9.2 ブロックダイヤグラム 9.3 PPG のレジスタ 9.4 動作説明 163 第 9 章 PPG(Programable Pulse Generator) 9.1 概要 PPG は , 8 ビットのリロードタイマモジュールで , タイマ動作に応じたパルス出力制 御により , PPG 出力を行います。 ハードウェアとして , 8 ビットダウンカウンタ 16 個 , 8 ビットリロードレジスタ 32 個 , 制御レジスタ , 外部パルス出力 16 本 , 割込み出力 16 本を有します。 MB91260B シリーズは , 8 ビット PPG として 16 チャネル分 , 16 ビット PPG とし て 8 チャネル分を内蔵しています。 ■ PPG の機能 ● 8 ビット PPG 出力独立動作モード 独立した PPG 出力動作が可能です。 ● 16 ビット PPG 出力動作モード 1 チャネルの 16 ビットの PPG 出力動作が可能です。 ● 8+8 ビット PPG 出力動作モード ch(n+1) の出力を ch(n) のクロック入力とすることにより , 任意周期の 8 ビット PPG 出 力動作が可能です (n=0, 2, 4, 6, 8, 10, 12, 14)。 ● 16+16 ビット PPG 出力動作モード ch(n+3)+ch(n+2) の 16 ビットプリスケーラ出力を ch(n+1)+ch(n) の 16 ビット PPG のク ロック入力とするモードです (n=0, 4, 8, 12)。 ● PPG 出力動作 任意周期・デューティ比のパルス波を出力します。 外付け回路により , D/A コンバータとしても使用可能です。 ● 出力反転機能 PPG の出力値を反転させることが可能です。 ■ レジスタ一覧 • PPG 起動レジスタ (TRG) 15 14 13 12 11 10 9 8 ←ビット No. アドレス : 000130H PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08 R/W R/W R/W R/W R/W R/W R/W リード / ライト→ R/W (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ 7 6 5 4 3 2 1 0 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 リード / ライト→ 初期値→ 164 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ←ビット No. 第 9 章 PPG(Programable Pulse Generator) • 出力反転レジスタ (REVC) 15 14 13 12 11 10 9 8 ←ビット No. アドレス : 000134H REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08 R/W R/W R/W R/W R/W R/W R/W リード / ライト→ R/W (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ 7 6 5 4 3 2 1 0 ←ビット No. REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00 リード / ライト→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) • GATE 機能制御レジスタ (GATEC) 7 6 5 4 3 2 1 0 アドレス : 000133H − − − − − − STGR EDGE リード / ライト→ 初期値→ − (X) − (X) − (X) − (X) − (X) − (X) R/W (0) R/W (0) ←ビット No. • PPG0 ∼ PPG15 動作モード制御レジスタ (PPGC0 ∼ PPGC15) Bit7 アドレス: ch.0:000108 H ch.1:000109 H ch.2:00010A H ch.3:00010B H ch.4:000114 H ch.5:000115 H ch.6:000116 H ch.7:000117 H ch.8:000120 H ch.9:000121 H ch.10:000122 H ch.11:000123 H ch.12:00012C H ch.13:00012D H ch.14:00012E H ch.15:00012F H Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 * * Bit0 PIEn PUFn PCS1 PCS0 MD1 MD0 - PEN07 PEN06 INTMn PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN07 PEN06 PEN05 PEN04 PEN03 PEN01 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN00 PEN07 PEN06 PEN05 PEN04 リード/ライト → R/W 初期値 → (0) R/W (0) R/W (0) R/W (0) n = 0 ~ 15 R/W (0) R/W (0) R/W (0) - (X) *:MD1,MD0は、偶数チャネルのみ存在し、奇数チャ ネルには存在しません。奇数チャネルの初期値は 不定です。ライトは意味がありません。 ● リロードレジスタ : 8 ビット PPG モード • リロードレジスタ H (PRLH0 ∼ PRLH15) アドレス: ch.0 :000100 H ch.1 :000102 H ch.2 :000104 H ch.3 :000106 H ch.4 :00010C H ch.5 :00010E H ch.6 :000110 H ch.7 :000112 H ch.8 :000118 H ch.9 :00011A H ch.10:00011C H ch.11:00011E H ch.12:000124 H ch.13:000126 H ch.14:000128 H ch.15:00012A H Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 リード/ライト → R/W 初期値 → (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) 165 第 9 章 PPG(Programable Pulse Generator) • リロードレジスタ L (PRLL0 ∼ PRLL15) アドレス: ch.0 :000101 H ch.1 :000103 H ch.2 :000105 H ch.3 :000107 H ch.4 :00010D H ch.5 :00010F H ch.6 :000111 H ch.7 :000113 H ch.8 :000119 H ch.9 :00011B H ch.10:00011D H ch.11:00011F H ch.12:000125 H ch.13:000127 H ch.14:000129 H ch.15:00012B H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN07 PEN06 PEN05 PEN04 PEN03 PEN01 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN00 PEN07 PEN06 PEN05 PEN04 リード/ライト → R/W 初期値 → (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) ● リロードレジスタ : 16 ビット PPG モード • リロードレジスタ H (PRLH0, PRLH2, PRLH4, PRLH6, PRLH8, PRLH10, PRLH12, PRLH14) Bit15 リード/ライト → R/W 初期値→ (X) Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 リード/ライト → R/W 初期値→ (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) アドレス: ch.0 :000100 H ch.2 :000104 H ch.4 :00010C H ch.6 :000110 H ch.8 :000118 H ch.10:00011C H ch.12:000124 H ch.14:000128 H • リロードレジスタ L (PRLL0, PRLL2, PRLL4, PRLL6, PRLL8, PRLL10, PRLL12, PRLL14) Bit15 リード/ライト → R/W 初期値→ (X) Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 リード/ライト → R/W 初期値→ (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) アドレス: ch.0 :000102 H ch.2 :000106 H ch.4 :00010E H ch.6 :000112 H ch.8 :00011A H ch.10:00011E H ch.12:000126 H ch.14:00012A H 166 Bit14 第 9 章 PPG(Programable Pulse Generator) 9.2 ブロックダイヤグラム PPG のブロックダイヤグラムを示します。 ■ ブロックダイヤグラム 図 9.2-1 8 ビット PPG ch.0, ch.2, ch.4, ch.6, ch.8, ch.10, ch.12, ch.14 のブロックダイヤグラム ch(n+1)のボロー マシンクロックの64分周 マシンクロックの16分周 マシンクロックの4分周 マシンクロック ポートへ PPG 出力ラッチ クリア 反転 PEN(n+1) カウントクロック 選択 S R PCNT(ダウンカウンタ) Q IRQn リロード H/Lセレクト H/Lセレクタ PRLLn PRLBHn PRLHn PIEn PUFn "L"側データバス "H"側データバス PPGCn/TRG n = 0,2,4,6,8,10,12,14 動作モード (制御) 167 第 9 章 PPG(Programable Pulse Generator) 図 9.2-2 8 ビット PPG ch.1, ch.5, ch.9, ch.13 のブロックダイヤグラム ch(n+1)のボロー マシンクロックの64分周 マシンクロックの16分周 マシンクロックの4分周 マシンクロック ポートへ PPG 出力ラッチ 反転 クリア PENn S R カウントクロック 選択 Q IRQn PCNT(ダウンカウンタ) ch(n-1) のボロー リロード "H"/"L"セレクト H/Lセレクタ PRLLn PRLBHn PUFn PIEn PRLHn "L"側データバス "H"側データバス PPGCn/TRG n = 1,5,9,13 168 動作モード (制御) 第 9 章 PPG(Programable Pulse Generator) 図 9.2-3 8 ビット PPG ch.3, ch.7, ch.11, ch.15 のブロックダイヤグラム ポートへ マシンクロックの64分周 マシンクロックの16分周 マシンクロックの4分周 マシンクロック PPG 出力ラッチ 反転 クリア PENn S R カウントクロック 選択 Q IRQn PCNT(ダウンカウンタ) ch(n-1) のボロー リロード "H"/"L"セレクト H/Lセレクタ PRLLn PRLBHn PUFn PIEn PRLHn "L"側データバス "H"側データバス PPGCn/TRG n = 3,7,11,15 動作モード (制御) 169 第 9 章 PPG(Programable Pulse Generator) 図 9.2-4 ゲート機能のブロックダイヤグラム TRGレジスタより PEN00 PEN01 レベル検出 セレクタ 0 1 PPG ch0のPEN00 セレクタ 多機能タイマの GATEより セレクタ PPG ch1のPEN01 STGR 0 1 170 0 X 1 X 1 X EDGE GATEC MD1 MD0 ch0 MD1 MD0 ch1 第 9 章 PPG(Programable Pulse Generator) 9.3 PPG のレジスタ PPG のレジスタ詳細説明します。 ■ PPGn 動作モード制御レジスタ (PPGC:PPGC0 ∼ PPGC15) PPGC0 ∼ PPGC15 動作モード制御レジスタ (PPGCn) n=0 ∼ 15 アドレス: ch. 0 :000108H ch. 1 :000109H ch. 2 :00010AH ch. 3 :00010BH ch. 4 :000114H ch. 5 :000115H ch. 6 :000116H ch. 7 :000117H ch. 8 :000120H ch. 9 :000121H ch. 10 :000122H ch. 11 :000123H ch. 12 :00012CH ch. 13 :00012DH ch. 14 :00012EH ch. 15 :00012FH リード / ライト→ 初期値→ Bit 7 PIEn R/W (0) Bit 6 Bit 5 Bit 4 PUFn INTMn PCS1 R/W R/W R/W (0) (0) (0) Bit 3 PCS0 R/W (0) Bit 2 MD1 R/W (0) Bit 1 MD0 R/W (0) Bit 0 − − (X) [ ビット 7] PIEn(Ppg Interrupt Enable) : PPG 割込み許可ビット PPG の割込み許可を以下のように制御します。 0 割込み禁止 1 割込み許可 • 本ビットが "1" のとき , PUFn が "1" になると割込み要求が発生します。 • 本ビットが "0" のときは , 割込み要求を発生しません。 • リセットにより , "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 6] PUFn(Ppg Underflow Flag) : PPG カウンタアンダフロービット PPG カウンタアンダフロービットを以下のように制御します。 0 PPG のカウンタアンダフローを検出していません 1 PPG のカウンタアンダフローを検出しました • 8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ+ 8 ビット PPG モー ド時には , ch.0 のカウント値が "00H" から "FFH" になったときのアンダフローに より "1" にセットされます。 • 16 ビット PPG 1 チャネルモード時には , ch.1/ch.0 のカウント値が "0000H" から "FFFFH" になったときのアンダフローにより "1" にセットされます。 • "0" の書込みにより , "0" になります。 171 第 9 章 PPG(Programable Pulse Generator) • このビットへの "1" の書込みは意味がありません。 • リードモディファイライトへの読出し時は , "1" が読まれます。 • リセットにより , "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 5] INTMn(Interrupt Mode) : 割込みモードビット PUFn のビットの検出を PRLBHn からのアンダフロー時のみに限定することができ ます。 0 アンダフロー時 , PUFn を "1" にする 1 PRLBHn からのアンダフロー時のみ , PUFn を "1" にする • リセットにより , "0" に初期化されます。 • 読出し / 書込み可能です。 • 本ビットを "1" にすれば , PPG の波形の 1 周期出力時に割込みを発生することが 可能となります。 • 本ビットは , 割込み許可時に書き換えないでください。 [ ビット 4, ビット 3] PCS1/PCS0(Ppg Count Select) : カウントクロック選択ビット ダウンカウンタの動作クロックを以下のように選択します。 PCS1 PCS0 0 0 マシンクロック (62.5 ns マシンクロック 16 MHz 時 ) 0 1 マシンクロック /4 (250 ns マシンクロック 16 MHz 時 ) 1 0 マシンクロック /16 (1 µs マシンクロック 16 MHz 時 ) 1 1 マシンクロック /64 (4 µs マシンクロック 16 MHz 時 ) 動作モード • リセットにより , "00B" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 2, ビット 1] MD1/MD0(ppg count MoDe) : 動作モード選択ビット PPG タイマの動作モードを以下のように選択します。 MD1 MD0 0 0 8 ビット PPG 2 チャネル独立モード 0 1 8 ビットプリスケーラ+ 8 ビット PPG モード 1 0 16 ビット PPG モード 1 1 16 ビットプリスケーラ+ 16 ビット PPG モード 動作モード • リセットにより , "00B" に初期化されます。 • 読出し / 書込み可能です。 • 本ビットは偶数チャネルのみに存在します。 172 第 9 章 PPG(Programable Pulse Generator) ■ リロードレジスタ (PRLL/PRLH) リロードレジスタH(PRLH0~PRLH15) アドレス: ch.0:000100 H ch.1:000102 H ch.2:000104 H ch.3:000106 H ch.4:00010C H ch.5:00010E H ch.6:000110 H ch.7:000112 H ch.8:000118 H ch.9:00011A H ch.10:00011C H ch.11:00011E H ch.12:000124 H ch.13:000126 H ch.14:000128 H ch.15:00012A H Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 リード/ライト → R/W 初期値→ (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) リロードレジスタL(PRLL0~PRLL15) Bit7 アドレス: ch.0:000101 H ch.1:000103 H ch.2:000105 H ch.3:000107 H ch.4:00010D H ch.5:00010F H ch.6:000111 H ch.7:000113 H ch.8:000119 H ch.9:00011B H ch.10:00011D H ch.11:00011F H ch.12:000125 H ch.13:000127 H ch.14:000129 H ch.15:00012B H Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN07 PEN06 PEN05 PEN04 PEN03 PEN01 PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 PEN00 PEN07 PEN06 PEN05 PEN04 リード/ライト → R/W 初期値→ (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) ダウンカウンタ PCNT へのリロード値を保持するレジスタです。それぞれ , 以下に示 す役割を持っています。 レジスタ名 機能 PRLL "L" 側リロード値保持 PRLH "H" 側リロード値保持 どのレジスタも , 読出し / 書込み可能です。 <注意事項> 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードで使用する場合には , プリスケーラ側の PRLL と PRLH に異なる値を設定す ると, PPG波形がサイクルごとに異なる場合があるので, プリスケーラ側のPRLLとPRLH は , 同じ値に設定することを推奨します。 173 第 9 章 PPG(Programable Pulse Generator) ■ PPG 起動レジスタ (TRG) PPG 起動レジスタ (TRG) 15 14 13 12 11 10 9 8 ←ビット No. アドレス : 000130H PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08 R/W R/W R/W R/W R/W R/W R/W リード / ライト→ R/W (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ 7 6 5 4 3 2 1 0 ←ビット No. PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00 リード / ライト→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) [ ビット 15 ∼ビット 0] PEN15 ∼ PEN0 (Ppg ENable) : PPG 動作許可ビット PPG の動作開始および動作モードを以下のように選択します。 PEN15 ∼ PEN0 動作状態 0 動作停止 ("L" レベル出力保持 ) 1 PPG 動作許可 • リセットにより , "0" に初期化されます。 • 読出し / 書込み可能です。 ■ 出力反転レジスタ (REVC) 出力反転レジスタ (REVC) 15 14 13 12 11 10 9 8 ←ビット No. アドレス : 000134H REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08 R/W R/W R/W R/W R/W R/W R/W リード / ライト→ R/W (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ 7 6 5 4 3 2 1 0 ←ビット No. REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00 R/W (0) リード / ライト→ 初期値→ R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) [ ビット 15 ∼ビット 0] REV15 ∼ REV0 : 出力反転ビット PPG の出力値を初期レベルも含めて反転します。 REV15 ∼ REV0 出力レベル 0 通常 1 反転 • リセットにより , "0" に初期化されます。 • 読出し / 書込み可能です。 • 単に , PPG 出力を反転するだけですので , 初期レベルも反転します。 また , リロードレジスタの "L", "H" の関係も逆になります。 174 第 9 章 PPG(Programable Pulse Generator) ■ GATE 機能制御レジスタ (GATEC ) GATE 機能制御レジスタ (GATEC) 7 6 5 4 3 2 1 0 アドレス : 000133H − − − − − − STGR EDGE リード / ライト→ 初期値→ − (X) − (X) − (X) − (X) − (X) − (X) R/W (0) R/W (0) ←ビット No. [ ビット 1] STGR: ゲート機能選択ビット 多機能タイマからの起動信号を用いるか , TRG レジスタによる起動を行うかを以下 のように選択します。 STGR 動作モード 0 TRG レジスタによる起動 1 多機能タイマからの起動信号による起動 • リセットにより , "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 0] EDGE: 起動有効エッジ選択ビット 多機能タイマからの起動有効エッジを以下のように選択します。 EDGE 動作モード 0 立上り起動→立下り停止 *1 1 立下り起動→立上り停止 *2 • リセットにより , "0" に初期化されます。 • 読出し / 書込み可能です。 *1: "H" の間 , 起動します。 *2: "L" の間 , 起動します。 175 第 9 章 PPG(Programable Pulse Generator) 9.4 動作説明 PPG には , 8 ビット長の PPG ユニットが 16 チャネルあり , 独立モード以外に , 連 結動作させることにより , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット PPG 1 チャネルモードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の動作を行うことができます。 ■ 動作概要 8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが , "L" 側と "H" 側の 2 本あります (PRLL, PRLH) 。このレジスタに書き込まれた値が , 8 ビットダウン カウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとにダウ ンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反 転させます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した "L" 幅 / "H" 幅をもつパルス出力となります。 動作開始 / 再スタートは , レジスタのビット書込みによります。 リロード動作とパルス出力の関係を以下に示します。 リロード動作 PRLH → PCNT PRLL → PCNT 端子出力変化 PPGn [0 → 1] PPGn [1 → 0] n=0 ∼ 15 また , PPGCn レジスタのビット 7: PIEn が "1" のとき , カウンタの "00H" から "FFH" へ のボロー (16 ビット PPG モードの場合には , "0000H" から "FFFFH" へのボロー) によっ て割込み要求が出力されます。 ■ 動作モードについて PPG は , 独立モード , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット PPG 1 チャネルモードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の動 作モードがあります。 • 独立モードは , 8 ビット PPG として独立に動作させる動作モードです。PPG(n) 端 子は , ch(n) の PPG 出力が接続されます。(n=0 ∼ 15) • 8 ビットプリスケーラ+ 8 ビット PPG モードは , 1 チャネルを 8 ビットプリスケー ラとして動作させ , そのボロー出力でカウントすることにより , 任意周期の 8 ビッ ト PPG 波形を出力できるようにする動作モードです。例えば , PPG1 端子は , ch.1 のプリスケーラ出力が接続され , PPG0 端子は , ch.0 の PPG 出力が接続されます。 • 16 ビット PPG 1 チャネルモードは , 2 つのチャネルを連結させ , 16 ビット PPG と して動作させる動作モードです。例えば , ch.0 と ch.1 を連結させると , PPG0 端子 と PPG1 端子は , 両方とも 16 ビット PPG 出力が接続されます。 176 第 9 章 PPG(Programable Pulse Generator) ■ PPG 出力動作について PPG は , TRG レジスタ (PPG 起動レジスタ ) の各チャネルのビットを "1" にセットする ことによって起動され , カウントを開始します。動作を開始した後は , TRG レジスタの 各チャネルビットに "0" を書き込むことによってカウント動作を停止し , 停止した後 , パルス出力は "L" レベルを保持します。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モード時には , プリスケーラチャネルを停止状態で , PPG チャネルを動作状態 に設定しないでください。 16 ビット PPG モード時には , 各チャネルの TRG レジスタの PENn をそれぞれ , 同時に 開始 / 停止の制御を行ってください (n=0 ∼ 15) 。 以下に PPG 出力動作について説明します。 PPG 動作時は , 任意周波数 / 任意デューティ比 ( パルス波の "H" レベル期間と "L" レベ ル期間の比 ) のパルス波出力を連続して出力します。PPG はパルス波出力を開始する と , 動作停止を設定するまで停止しません。 PPG の出力動作および出力波形を図 9.4-1 に示します。 図 9.4-1 PPG 出力動作および出力波形 PENn 出力端子 PPG PENnにより 動作開始 (”L”側から) T×(L+1) T×(H+1) スタート n=0~15 L:PRLLの値 H:PRLHの値 T:マシンクロック ( , /4, /16) または タイマベースカウンタからの入力 (PPGCのクロックセレクトによる) ■ リロード値とパルス幅の関係について リロードレジスタに書かれた値に " + 1" した値に , カウントクロックの周期を掛けた 値が出力されるパルス幅となります。つまり , 8 ビット PPG 動作時のリロードレジス タ値が "00H" のとき , および 16 ビット PPG 動作時のリロードレジスタ値が "0000H" の ときは, カウントクロック1周期分のパルス幅をもつことになりますので注意してくだ さい。また , 8 ビット PPG 動作時のリロードレジスタ値が "FFH" のとき , カウントク ロック 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジ スタ値が "FFFFH" のときは , カウントクロック 65536 周期分のパルス幅をもつことに なりますので注意してください。 パルス幅の計算式を以下に示します。 Pl = T × (L + 1) Ph = T × (H + 1) { L : PRLL の値 H : PRLH の値 T : 入力クロック周期 Ph: "H" パルス幅 Pl: "L" パルス幅 177 第 9 章 PPG(Programable Pulse Generator) ■ カウントクロックの選択について PPG の動作に使用するカウントクロックは , 周辺クロックおよびタイムベースカウン タの入力を使用しており , 4 種類のカウントクロック入力が選択できます。 カウントクロックは以下のように動作します。 PPGC0 ∼ PPGC15 レジスタ カウントクロック動作 PCS1 PCS0 0 0 カウントクロックは , 周辺クロックごとに 1 カウント 0 1 カウントクロックは , 周辺クロック 4 サイクルごとに 1 カウント 1 0 カウントクロックは , 周辺クロック 16 サイクルごとに 1 カウント 1 1 カウントクロックは , 周辺クロック 64 サイクルごとに 1 カウント 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モードで , プリスケーラ側が動作状態で PPG 側が停止状態であるときに , PPG 側の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意してくだ さい。 ■ パルスの端子出力の制御について PPG の動作によって生成されたパルス出力は , 外部端子 PPG0 ∼ PPG15 より出力させ ることができます。 16 ビット PPG モードでは , PPG(m) と PPG(m+1) は同じ波形が出力されるので , どちら の外部端子出力を許可しても同じ出力を得ることができます (m=0, 2, 4, 6, 8, 10, 12, 14) 。 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ ト PPG モードでは , プリスケーラ側は 8 ビットプリスケーラのトグル波形が出力され , PPG 側は 8 ビット PPG の波形が出力されます。このモードのときの出力波形の例を図 9.4-2 に示します。 178 第 9 章 PPG(Programable Pulse Generator) 図 9.4-2 8+8PPG モードおよび 16+16PPG モードの出力波形 Ph1 Pl1 PPG1 PPG0 Ph0 Pl1= Ph1= Pl0= Ph0= T T T T × × × × Pl0 (L1+1) (L1+1) (L1+1) × (L0+1) (L1+1) × (H0+1) 注意:ch.1のPRLLとch.1のPRLHは, 同じ値を設定することを 推奨します。 L1 :ch.1のPRLLの値 および ch.1のPRLHの値 L0 :ch.0 のPRLLの値 H0 :ch.0 のPRLHの値 T :入力クロック周期 Ph0:PPG0の"H"パルス幅 Pl0:PPG0の"L"パルス幅 Ph1:PPG1の"H"パルス幅 Pl1:PPG1の"L"パルス幅 ■ 割込みについて 本モジュールの割込みは , リロード値がカウントアウトし , ボローが発生したときにア クティブになります。ただし , INTMn ビットを "1" にしたときは , PRLBHn からのアン ダフロー時 ( ボロー ) のみアクティブになります。つまり , "H" 幅パルス終了時に割込 みが発生します。 8 ビット PPG モードおよび 8 ビットプリスケーラ+ 8 ビット PPG モードのときには , それぞれのカウンタのボローにより, それぞれの割込み要求が行われますが, 16ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードでは , 16 ビットカウ ンタのボローにより , PUF(m) と PUF(m + 1) が同時にセットされます。このため , 割 込み要因を一本化するために , PIE(m) または PIE(m+1) のどちらか一方のみを許可にす ることを推奨します。また , 割込み要因のクリアも PUF(m) と PUF(m+1) を同時に行う ことを推奨します (m = 0, 2, 4, 6, 8, 10, 12, 14) 。 ■ GATE 機能について 多機能タイマからの信号により , PPG を起動→停止させることができます。 • 8 ビット PPG モード , 8 ビットプリスケーラ+ 8 ビット PPG モードにおいて , PPG ch.0 を本機能により起動できます。 • 16 ビット PPG モード , 16 ビットプリスケーラ+ 16 ビット PPG モードにおいて , PPG ch.0, ch.1 を本機能により起動できます。 各モードの起動切換えは , 各 PPG の MD レジスタの設定によって定まります。 • PPG ch.0: MD1, MD0 = 0, X 時 , PPG ch.0 が起動 (8 ビット PPG) • PPG ch.0: MD1, MD0 = 1, X 時 , PPG ch.0, ch.1 が起動 (16 ビット PPG) EDGE ビットと多機能タイマの信号により , PPG の起動有効期間の制御ができます。 EDGE ビットと多機能タイマによる PPG カウント動作を図 9.4-3 に示します。 179 第 9 章 PPG(Programable Pulse Generator) 図 9.4-3 EDGE ビットと多機能タイマによる PPG カウント動作 EDGE=0(立上り起動 → 立下り停止) 多機能タイマ信号 PPGカウント 開始 停止 開始 停止 開始 EDGE=1(立下り起動 → 立上り停止) 多機能タイマ信号 PPGカウント 開始 ■ PPG の初期値について PPG は , リセット時に以下のように初期化されます。 <レジスタ> PPGC(n) → 0000000XB TRG → 0000000000000000B REVC → 0000000000000000B GATEC → XXXXXX00B <パルス出力> PPG(n) → "L" <割込み要求> IRQ(n) → "L" (n=0 ∼ 15) 上記以外のレジスタは , 初期化されません。 180 第 9 章 PPG(Programable Pulse Generator) ■ PPG の組合せについて 各 PPG の動作モードの組合せは , 以下のとおりです。 ch.0: PPGC ch.2: PPGC MD1 MD0 MD1 MD0 0 0 0 0 0 0 ch.0 ch.1 ch.2 ch.3 0 8 ビット PPG 8 ビット PPG 8 ビット PPG 8 ビット PPG 0 1 8 ビット PPG 8 ビット PPG 8 ビット PPG 8 ビット プリスケーラ 0 1 0 8 ビット PPG 8 ビット PPG 0 0 1 1 0 1 0 0 8 ビット PPG 8 ビット プリスケーラ 8 ビット PPG 8 ビット PPG 0 1 0 1 8 ビット PPG 8 ビット プリスケーラ 8 ビット PPG 8 ビット プリスケーラ 0 1 1 0 8 ビット PPG 8 ビット プリスケーラ 0 1 1 1 1 0 0 0 16 ビット PPG 8 ビット PPG 8 ビット PPG 1 0 0 1 16 ビット PPG 8 ビット PPG 8 ビット プリスケーラ 1 0 1 0 16 ビット PPG 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 16 ビット PPG 設定禁止 16 ビット PPG 設定禁止 16 ビット PPG 設定禁止 16 ビット PPG 16 ビットプリスケーラ ch(4, 5, 6, 7), ch(8, 9, 10, 11), ch(12, 13, 14, 15) も , それぞれ , ch(0, 1, 2, 3) と同じ動作組合せが可能です。 以下のように置き換えてください。 { ch.0=ch.4/ch.8/ch.12 ch.1=ch.5/ch.9/ch.13 ch.2=ch.6/ch.10/ch.14 ch.3=ch.7/ch.11/ch.15 181 第 9 章 PPG(Programable Pulse Generator) 182 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) PWC (Pulse Width Count: パルス幅測定 ) タイマ の概要 , レジスタの構成 / 機能および動作について 説明します。 10.1 概要 10.2 ブロックダイヤグラム 10.3 PWC のレジスタ 10.4 動作説明 183 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) 概要 10.1 16 ビットアップカウンタ 1 個 , 入力パルス分周器 & 分周比制御レジスタ 1 個 , 測定 入力端子 1 本 , 16 ビット制御レジスタ 1 個を 1 チャネルとして , 合計 2 チャネルを 有しています。 ■ パルス幅測定機能 外部から入力されたパルス入力の任意イベント間の時間を測定します。 基準となる内部クロックは 3 種類の中から選択可能です ( マシンクロックの 4/16/32 分 周 )。 "H" パルス幅 ( ↑∼↓ ) /" L" パルス幅 ( ↓∼↑ ) 各種測定モード 立上り周期 ( ↑∼↑ ) / 立下り周期 ( ↓∼↓ ) エッジ間測定 ( ↑ or ↓∼↓ or ↑ ) 8 ビット入力分周器で , 入力パルスを 2n 分周 (n=1, 2, 3, 4, 5, 6, 7, 8) して周期測定を行う ことが可能です。 測定終了時に割込み要求を発生することが可能です。 1 回のみの測定か , 連続測定かを選択することが可能です。 ■ レジスタ一覧 アドレス Bit 15 ∼ Bit 8 Bit 7 ∼ Bit 0 0000E9H PDIVR0 0000E0H 0000E1H PWCSR0 0000E2H 0000E3H PWCR0 0000EBH 0000E5H PWCSR1 0000E6H 0000E7H PWCR1 184 コントロール / ステータスレジスタ 0 データバッファレジスタ 0 PDIVR1 0000E4H 分周比制御レジスタ 0 分周比制御レジスタ 1 コントロール / ステータスレジスタ 1 データバッファレジスタ 1 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ブロックダイヤグラム 10.2 PWC のブロックダイヤグラムを示します。 ■ PWC のブロックダイヤグラム 図 10.2-1 PWC のブロックダイヤグラム PWCR0/PWCR1リード エラー検出 16 / / 16 ERR PWCR0/PWCR1 内部クロック (マシンクロック/4) / 16 書込み許可 リロード データ転送 / 16 16ビット アップカウンタ クリア カウント許可 制御ビット出力 フラグセットなど 制御回路 終了エッジ 選択 開始エッジ 選択 測定開始エッジ 測定終了エッジ 22 クロック 23 オーバフロー R-bus クロック CKS1/ CKS0 分周器クリア 分周 ON/OFF 入力波形 比較器 エッジ 検出 ERR PWI0 PWI1 8ビット 分周器 PIS1/PSI0 測定終了割込み要求 分周器 CKS1/CKS0 オーバフロー割込み要求 15 / 分周比 選択 PWCSR0/PWCSR1 2 / PDIVR0/PDIVR1 185 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) 10.3 PWC のレジスタ PWC のレジスタ詳細を説明します。 ■ PWC コントロール / ステータスレジスタ (PWCSR:PWCSR0/PWCSR1) PWCSR0/PWCSR1( 上位 ) ビット No. → ch.0: 0000E0H ch.1: 0000E4H リード / ライト→ 初期値→ 15 14 13 12 11 10 9 8 STRT STOP EDIR EDIE OVIR OVIE ERR − R/W (0) R/W (0) R (0) R/W (0) R/W (0) R/W (0) R (0) − (0) 7 6 5 4 3 2 1 0 CKS1 CKS0 PIS1 PIS0 SC R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) PWCSR0/PWCSR1( 下位 ) ビット No. → ch.0: 0000E1H ch.1: 0000E5H リード / ライト→ 初期値→ MOD2 MOD1 MOD0 R/W (0) R/W (0) R/W (0) [ ビット 15] STRT: カウンタスタートビット [ ビット 14] STOP: カウンタストップビット 16 ビットアップカウンタの起動 / 再起動 / 停止を行うビットで , 読出し時にはカウン タの動作状態を表示します。以下にビット機能を示します。 [ 書込み時機能 ( 動作制御 )] STRT STOP 0 0 機能なし / 動作に影響なし 0 1 カウンタ起動 / 再起動 ( カウント許可 ) * 1 0 カウンタ動作強制停止 ( カウント禁止 ) * 1 1 機能なし / 動作に影響なし 動作制御機能 *: クリアビット命令使用可能 [ 読出し時機能 ( 動作状態表示 )] 186 STRT STOP 0 0 カウント停止中 ( 起動されていないか , または測定終了 ) [ 初期値 ] 1 1 カウント動作中 ( 測定中 ) 動作状態表示 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。ただし , 書込み時と読出し時では上記のように意味が 異なります。 • リードモディファイライト系命令における読出しでは, 動作にかかわらず"11B"が 読み出されます。 • カウンタの起動 / 停止のための STRT, STOP ビットへの書込みは , それぞれのビッ トに対応するビット処理命令 ( ビットクリアなど ) を用いることが可能ですが , 動 作状態の読出しにはビット処理命令は使用できません ( 読むと必ず動作中となり ますので注意してください ) 。 [ ビット 13] EDIR: 測定終了割込み要求フラグ パルス幅測定モード時 , 測定終了したことを示すフラグです。測定終了割込み要求 が許可されているとき ( ビット 12: EDIE=1) に , 本ビットがセットされると , 測定終 了割込み要求が発生します。 セット要因 パルス幅測定が終了するとセット (PWCR0, PWCR1 に測定結果が 収納される ) クリア要因 PWCR0, PWCR1 ( 測定結果 ) を読み出すことによりクリア • リセット時 : "0" に初期化されます。 • 読出しのみ可能です。書込みしてもビット値は変化しません。 [ ビット 12] EDIE: 測定終了割込み要求許可ビット パルス幅測定モード時の測定終了割込み要求を以下のように制御します。 0 測定終了割込み要求出力禁止 (EDIR がセットされても割込みは発生せず ) [ 初期値 ] 1 測定終了割込み要求出力許可 (EDIR がセットされると割込みが発生する ) • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 11] OVIR: カウンタオーバフロー割込み要求フラグ 全モードにおいて , 16 ビットアップカウンタが "FFFFH" から "0000H" へオーバフロー したことを示すフラグです。カウンタオーバフロー割込み要求が許可されていると き ( ビット 10: OVIE=1) に本ビットがセットされると , カウンタオーバフロー割込み 要求が発生します。 セット要因 カウンタオーバフローが発生するとセット ("FFFFH" から "0000H" へ ) クリア要因 "0" 書込みによりクリア 187 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。ただし , 書込みは "0" のみ可能です。"1" を書込みして もビット値は変化しません。 • リードモディファイライト系命令における読出し値は, ビット値にかかわらず"1" です。 [ ビット 10] OVIE: カウンタオーバフロー割込み要求許可ビット カウンタオーバフロー割込み要求を以下のように制御します。 0 オーバフロー割込み要求出力禁止 (OVIR がセットされても割込みは発生せず ) [ 初期値 ] 1 オーバフロー割込み要求出力許可 (OVIR がセットされると割込みが発生する ) • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 9] ERR: エラーフラグ パルス幅測定モードの連続測定モード時において , PWCR0, PWCR1 内の測定結果を 読み出さないうちに , 次の測定が終了してしまったことを示すフラグです。この際 , PWCR0, PWCR1 の値は新しい測定結果に更新され , 1 つ前の測定結果は消失します。 測定は , 本ビット値に関係なく続行されます。 セット要因 読み出していない測定結果が次の結果により消失するとセット クリア要因 PWCR0, PWCR1 ( 測定結果 ) を読み出すことによりクリア • リセット時 : "0" に初期化されます。 • 読出しのみ可能です。書込みしてもビット値は変化しません。 [ ビット 8] (Reserved) 本ビットは予約ビットです。読出し値は "0" です。 必ず , "0" を書き込んでください。 [ ビット 7, ビット 6] CKS1, CKS0: クロック選択ビット 内部カウントを以下のように選択します。 188 CKS1 CKS0 0 0 マシンクロックの 4 分周クロック [ 初期値 ] 0 1 マシンクロックの 16 分周クロック 1 0 マシンクロックの 32 分周クロック 1 1 設定禁止 カウントクロック選択 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。ただし , "11B" を設定してはいけません。 • 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。 [ ビット 5, ビット 4] PIS1, PIS0: パルス幅測定入力端子選択ビット これらのビットは , パルス幅測定入力端子を選択します。 PIS1 PIS0 0 0 (PWI0 端子を選択 ) [ 初期値 ] 0 1 2 入力比較選択 ( 立上りエッジ比較 ) 1 0 2 入力比較選択 ( 立下りエッジ比較 ) 1 1 設定禁止 入力クロック選択 • リセット時 "00B" に初期化されます。 • 読出し / 書込みが可能です。ただし , "11B" は設定してはいけません。 • このビットは , PWC ch.0 のみに有効です (PWI0/PWI1 を入力として使用します )。 詳細は「10.4 動作説明 ■パルス幅測定動作詳細」を参照してください。 • 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。 [ ビット 3] SC: 測定モード ( 単発 / 連続 ) 選択ビット 測定モードを以下のように選択します。 SC 測定モード選択 パルス幅測定モード時 0 単発測定モード [ 初期値 ] 1 回測定後停止 1 連続測定モード 連続測定 : バッファレジスタ有効 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 • 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。 [ ビット 2 ∼ビット 0] MOD2, MOD1, MOD0: 動作モード / 測定エッジ選択ビット 動作モードおよび幅測定を行うエッジを以下のように選択します。 189 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) MOD2 MOD1 MOD0 0 0 0 全エッジ間パルス幅測定モード ( ↑ or ↓∼↓ or ↑ ) [ 初期値 ] 0 0 1 分周周期測定モード ( 入力分周器有効 ) 0 1 0 立上りエッジ間周期測定モード ( ↑∼↑ ) 0 1 1 "H" パルス幅測定モード ( ↑∼↓ ) 1 0 0 "L" パルス幅測定モード ( ↓∼↑ ) 1 0 1 立下りエッジ間周期測定モード ( ↓∼↓ ) 1 1 0 1 1 1 動作モード / 測定エッジ選択 設定禁止 • リセット時 : "000B" に初期化されます。 • 読出し / 書込み可能です。 • 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。 ■ PWC データバッファレジスタ (PWCR0, PWCR1) PWCR0/PWCR1( 上位 ) ビット No. → ch.0: 0000E2H ch.1: 0000E6H 15 14 13 12 11 10 9 8 リード / ライト→ 初期値→ R (0) R (0) R (0) R (0) R (0) R (0) R (0) R (0) 7 6 5 4 3 2 1 0 R (0) R (0) R (0) R (0) R (0) R (0) R (0) R (0) PWCR0/PWCR1( 下位 ) ビット No. → ch.0: 0000E3H ch.1: 0000E7H リード / ライト→ 初期値→ ● パルス幅測定モード 連続測定モード時 (PWCSR0, PWCSR1 ビット 3: SC=1) は , 前回の測定結果を保持する バッファレジスタとなります。この場合は読出しのみ可能で , 書き込んでもレジスタ値 は変化しません。 単発測定モード時 (PWCSR0, PWCSR1 ビット 3: SC=0) は , アップカウンタを直接アク セスする窓口となります。この場合も , 読出しのみ可能で , 書き込んでもレジスタ値は 変化しません。読出しは随時可能で , カウント中のカウント値が得られます。測定終了 後は , 測定結果を保存します。 本レジスタのアクセスは , 必ずハーフワードもしくはワード転送命令で行ってくださ い。 • リセット時 : "0000H" に初期化されます。 • 読出しのみ可能 190 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ■ 分周比制御レジスタ (PDIVR) PDIVR0/PDIVR1 ビット No. → ch.0: 0000E9H ch.1: 0000EBH リード / ライト→ 初期値→ 7 6 5 4 3 2 1 0 − − − − − DIV2 DIV1 DIV0 − (X) − (X) − (X) − (X) − (X) R/W (0) R/W (0) R/W (0) 分周周期測定モード (PWCSR0, PWCSR1 ビット 2, 1, 0: MOD2, MOD1, MOD0=001B) の ときに使用するレジスタで , ほかのモードでは意味を持ちません。 分周周期測定モード時には , 本レジスタにより設定された分周比だけ測定端子に入力 されたパルスを分周し , 分周後の 1 周期幅を測定します。分周比は以下のように選択し ます。 DIV2 DIV1 DIV0 分周比選択 0 0 0 21=2 分周 [ 初期値 ] 0 0 1 22=4 分周 0 1 0 23=8 分周 0 1 1 24=16 分周 1 0 0 25=32 分周 1 0 1 26=64 分周 1 1 0 27=128 分周 1 1 1 28=256 分周 • リセット時 : "000B" に初期化されます。 • 読出し / 書込み可能です。 • 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。 191 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) 10.4 動作説明 測定入力端子と 8 ビット入力分周などを組み込んでいます。PWC は , パルス幅測定 機能があり , 3 種類のカウントクロックを選択可能です。パルス幅測定機能における 基本機能および動作について説明します。 ■ パルス幅測定機能 入力パルスの任意イベント間の時間・周期をカウンタで測定できます。 起動後 , 設定した測定開始エッジが入力されるまでカウントは行われません。開始エッ ジを検出するカウンタを "0000H" にクリア後 , カウントアップを開始し , 停止エッジを 検出するとカウントを停止します。この間のカウント値がパルス幅としてレジスタに 保存されます。 測定終了時 , およびオーバフロー発生時に割込み要求を発生できます。 測定終了後は , 測定モードに応じて以下のように動作します。 • 単発測定モード時 : 動作を停止します。 • 連続測定モード時 : カウンタ値をバッファレジスタに転送後 , 再度測定開始エッ ジが入力されるまでカウントを停止します。 図 10.4-1 パルス幅測定動作 ( 単発測定モード / "H" 幅測定 ) (実線はカウント値) PWC入力 被測定パルス カウント値 FFFFH 0000H カウントクリア 測定開始 カウントスタート カウントストップ 時間 EDIRフラグセット(測定終了) 図 10.4-2 パルス幅測定動作 ( 連続測定モード / "H" 幅測定 ) (実線はカウント値) PWC入力 被測定パルス カウント値 オーバフロー FFFFH PWCRへデータ転送 カウントクリア 0000H 測定開始 PWCRへデータ転送 カウントクリア カウントスタート カウントストップ カウントスタート OVIRフラグセット カウントストップ 時間 EDIRフラグセット(測定終了) 192 EDIRフラグセット 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ■ カウントクロックの選択 カウンタのカウントクロックは , PWCSR0, PWCSR1 レジスタのビット 7, ビット 6: CKS1, CKS0 の設定によって , 内部クロックソースのうち 3 種類を選択できます。 選択できるカウントクロックは以下のとおりです。 PWCSR0, PWCSR1 選択される内部カウントクロック CKS1, CKS0 00B マシンクロックの 4 分周 [ 初期値 ] 01B マシンクロックの 16 分周 10B マシンクロックの 32 分周 リセット後の初期値では , マシンクロックの 4 分周クロックが選択されています。 カウントクロックの選択は , 必ずカウンタ起動前に行ってください。 ■ 動作モードの選択 各動作モード / 測定モードの選択は , PWCSR0, PWCSR1 の設定により行います。 • 動作モードの設定 : PWCSR0, PWCSR1 ビット 2 ∼ビット 0: MOD2, MOD1, MOD0 ( パルス幅測定モードの選択 , 測定エッジの決定など ) • 測定モードの設定 : PWCSR0, PWCSR1 ビット 3: SC ( 単発測定 / 連続測定の選択 ) モード設定ビットの組合せによる動作モードの選択の一覧を以下に示します。 動作モード パルス幅 測定 SC MOD2 MOD1 MOD0 ↑ or ↓∼↑ or ↓ 全エッジ間測定 単発測定 : バッファ無効 0 0 0 0 連続測定 : バッファ有効 1 0 0 0 分周周期測定 (1 ∼ 256 分周 ) 単発測定 : バッファ無効 0 0 0 1 連続測定 : バッファ有効 1 0 0 1 ↑∼↑立上り間 周期測定 単発測定 : バッファ無効 0 0 1 0 連続測定 : バッファ有効 1 0 1 0 ↑∼↓ "H" パルス幅測定 単発測定 : バッファ無効 0 0 1 1 連続測定 : バッファ有効 1 0 1 1 ↓∼↑ "L" パルス幅測定 単発測定 : バッファ無効 0 1 0 0 連続測定 : バッファ有効 1 1 0 0 ↓∼↓立下り間 周期測定 単発測定 : バッファ無効 0 1 0 1 連続測定 : バッファ有効 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 設定禁止 リセット後の初期値では , 全エッジ間測定−単発測定モードが選択されています。 193 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) <注意事項> 起動モードの選択は , 必ずカウンタ起動前に行ってください。 ■ パルス幅測定の起動と停止 各動作の起動 / 再起動 / 強制停止は , PWCSR0, PWCSR1 のビット 15, ビット 14: STRT, STOP ビットにより行います。 パルス幅測定の起動 / 再起動は STRT ビット , 強制停止は STOP ビットと機能が分かれ ており , それぞれ , "0" を書き込むことにより機能しますが , 両ビットに書き込む値が 排他でないと機能しません。ビット操作命令以外の命令によって ( バイト単位以上 ) 書 き込む際は , 必ず以下に示す組合せを書き込んでください。 機能 STRT STOP パルス幅測定の起動 / 再起動 0 1 パルス幅測定の強制停止 1 0 ビット操作命令 ( ビットクリア命令 ) を用いる場合 , ハードウェアにより自動的に上記 組合せにて書き込まれるため , 特に意識する必要がありません。 ● 起動後の動作 パルス幅測定モードの起動後の動作は , 以下のとおりです。 パルス幅測定モード : 測定開始エッジが入力されるまでカウントは行われません。 測定開始エッジ検出後 , 16 ビットアップカウンタを "0000H" にク リアし , カウントを開始します。 ● 再起動について パルス幅測定起動後 , 動作中に起動をかける (STRT ビットに "0" を書き込む ) ことを再 起動とよびます。再起動をかけると , 以下のような動作が行われます。 測定開始エッジ待ち状態の場合 , 動作に影響はありません。測定中の場合 , カウントを 停止し , 再度測定開始エッジ待ち状態となります。この際 , 測定終了エッジ検出と再起 動が同時になると , 測定終了フラグ (EDIR) がセットされ , 連続測定モード時は測定結 果が PWCR0, PWCR1 に転送されます。 ● 停止について 単発測定モードでは , カウンタのオーバフローまたは測定終了により , 自動的にカウン ト動作を停止しますので , 特に意識する必要はありません。それ以外のモードや自動停 止する前に停止させたい場合は , 強制停止させる必要があります。 2 入力比較選択時 選択されている PWI1 のエッジが強制停止の前に入っていないと , 再起動後 1 回目の 測定結果が誤ったものとなります。強制停止は PWI1 のエッジの入力後にしてくだ さい。 194 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ● 動作状態の確認 STRT, STOP ビットは読出し時には動作状態表示ビットとして機能します。表示される 値は以下の内容を示します。 STRT STOP 0 0 カウンタ停止中 ( 測定開始エッジ待ち状態を除く ) 起動されていないか , または測定が終了したことを示します。 1 1 カウント動作中 , または測定開始エッジ待ち状態 動作状態 STRT, STOP のどちらのビットを読み出しても同じ値となります。ただし , リードモ ディファイライト系命令 ( ビット処理命令など ) にて本ビットを読み出すと常に "11B" になるため , これらの命令を使用して読み出さないでください。 ■ カウンタのクリア 16 ビットアップカウンタは , 以下に示す場合に "0000H" にクリアされます。 • リセット時 • パルス幅測定モードにて , 測定開始エッジを検出しカウントを開始する場合 ■ パルス幅測定動作詳細 ● 単発測定と連続測定 パルス幅測定には , 1 回のみの測定を行うモードと連続して測定を行うモードがありま す。各モードは PWCSR0, PWCSR1 の SC ビットによって選択します (「■動作モード の選択」を参照 ) 。両モードにおける相違点は以下のとおりです。 • 単発測定モード : 1 回目の測定終了エッジが入力されるとカウンタのカウントは 停止し , PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) がセッ トされ , 以降の測定は行われません。ただし , 同時に再起動が かかった場合は測定開始待ち状態となります。 • 連続測定モード : 測定終了エッジが入力されるとカウンタのカウントは停止し , PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) がセットされ , 再度測定開始エッジが入力されるまでカウントを停止します。 再度 , 測定開始エッジが入力されるとカウンタを "0000H" にク リアした後 , 測定を開始します。測定終了時 , カウンタの測定 結果は PWCR0, PWCR1 に転送されます。 測定モードの選択 / 変更は , 必ずカウンタ停止中に行ってください。 195 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ● 測定結果データ 単発測定モードと連続測定モードでは, 測定結果とカウンタ値の扱い, PWCR0, PWCR1 の機能に違いがあります。両モードにおける測定結果の相違点は以下のとおりです。 • 単発測定モード : PWCR0, PWCR1 を動作中に読み出すと測定中のカウント値が 得られます。 PWCR0, PWCR1 を測定終了後に読み出すと測定結果データが 得られます。 • 連続測定モード : 測定終了時, カウンタ内の測定結果はPWCR0, PWCR1に転送さ れます。 PWCR0, PWCR1 を読み出すと直前の測定結果が得られ , 測定動 作中も前回の測定結果を保持しています。測定中のカウント値 は読み出せません。 連続測定モードにて , 測定結果を読み出さないうちに次の測定が終了してしまった場 合 , 前回の測定結果は新しい測定結果に消されてしまいます。この際 , PWCSR0, PWCSR1 中のエラーフラグ (ERR) がセットされます。エラーフラグ (ERR) は , PWCR0, PWCR1 を読み出すと自動的にクリアされます。 ● 入力端子の選択 PWC は , 2 チャネル用意されており ,パルス幅カウント用の信号入力に使用する端子は , PWI0, PWI1 の 2 チャネルがあります。したがって , チャネルごとに単独での使用も可 能です。また , 入力端子 PWI0, PWI1 については , PWCSR0 中の PIS1, PIS0 の組合せで , 各入力波形の立上り / 立下り間の時間を測定することができます。この際に使用する PWCR0, PWCR1 レジスタは , PWI0 を使用しますので注意してください。このとき , PWC内部測定波形の"H"幅を測定します。 MOD2, MOD1, MOD0の設定は無視されます。 図 10.4-3 入力波形と内部測定波形 PWI0 入力波形 PWI1 入力波形 PIS1,PIS0=01 時の PWC内部測定波形 PIS1,PIS0=10 時の PWC内部測定波形 立上り/立下り間の時間は, この内部測定波形の"H"幅 を測定します • 2 入力比較の場合 , 立上り / 立下り検出でも PWI0 からカウントを開始し , PWI1 で カウントを停止してください。 • 立上りと立下りの検出モードを変える場合 , 必ず測定終了後に行ってください。 196 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ● 測定モードとカウント動作 入力されたパルスのどこを測定するかによって, 測定モードは5種類のうちから選択で きます。さらに , 高い周波数のパルスの幅を精度よく測定できるように , 入力されたパ ルスを任意分周して周期を測定するモードも用意されています。以下に , それらについ て説明します。 測定モード MOD2 MOD1 MOD0 測定内容 (W: 測定するパルス幅 ) W 全エッジ間パルス 幅測定 ↑カウント スタート 0 0 0 W 0 0 1 1 W ↓ ストップ W W ↑カウント スタート 0 W ↑カウントストップ ↑スタート 分周比設定レジスタ PDIVR0, PDIVR1 で選択した 分周比だけ入力パルスを分周してその周期を測定 します。 カウント ( 測定 ) 開始 : 起動直後の立上りエッジ 検出時 カウント ( 測定 ) 終了 : 分周後の 1 周期終了時 W 立上りエッジ間 周期測定 ↑カウントストップ ↑ストップ ↑スタート ↑スタート 0 ↑ ストップ 立上りエッジ間の周期を測定します。 カウント ( 測定 ) 開始 : 立上りエッジ検出時 カウント ( 測定 ) 終了 : 立上りエッジ検出時 W "H" パルス幅測定 ↓ ストップ 連続して入力されるエッジ間の幅を測定します。 カウント ( 測定 ) 開始 : エッジ検出時 カウント ( 測定 ) 終了 : エッジ検出時 ↓カウント スタート (4分周の例) 分周周期測定 W W ↓カウントストップ ↑ストップ ↓スタート ↑スタート 0 1 1 ↑カウント スタート W ↓カウント ストップ "H" 期間の幅を測定します。 カウント ( 測定 ) 開始 : 立上りエッジ検出時 カウント ( 測定 ) 終了 : 立下りエッジ検出時 W W "L" パルス幅測定 1 0 0 ↓カウント スタート ↓カウント スタート 1 0 1 ↑カウント ストップ ↓ スタート ↑ ストップ "L" 期間の幅を測定します。 カウント ( 測定 ) 開始 : 立下りエッジ検出時 カウント ( 測定 ) 終了 : 立上りエッジ検出時 W 立上りエッジ間 周期測定 ↓ ストップ ↑ スタート W W ↓カウントストップ ↓ストップ ↓スタート ↓スタート ↓ ストップ 立下りエッジ間の周期を測定します。 カウント ( 測定 ) 開始 : 立下りエッジ検出時 カウント ( 測定 ) 終了 : 立下りエッジ検出時 197 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) どのモードでも , 測定起動後 , 測定開始エッジが入力されるまではカウンタはカウント 動作を行いません。測定開始エッジが入力されると , カウンタは "0000H" にクリアされ た後 , 測定終了エッジが入力されるまでの間 , カウントクロックごとにアップカウント を続けます。 測定終了エッジが入力されると , 以下の動作が行われます。 1. PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) がセットされます。 2. カウンタのカウント動作が停止します ( 再起動と同時であった場合を除く ) 。 3. 連続測定モード時 : カウンタの値 (= 測定結果 ) が PWCR0, PWCR1 に転送され , 次の 測定開始エッジが入力されるまでカウントを停止して待ちま す。 4. 単発測定モード時 : 測定を終了します ( 再起動と同時であった場合を除く ) 。 連続測定モードの場合で , 全エッジ間パルス幅測定や周期測定などを行った場合 , 終了 エッジが次の測定開始エッジとなります。 ● 最小入力パルス幅について パルス幅測定入力端子 (PWI1, PWI0) に入力できるパルスには以下の制限があります。 最小入力幅 : マシンサイクル× 4 以上 (16 MHz のマシンクロックの場合は , 0.25 µs 以上とする ) 上記パルスより小さい幅のパルスを入力した場合の動作は保証できません。 ● パルス幅 / 周期算出方法 測定終了後 , PWCR0, PWCR1 に得られた測定結果データから , 被測定パルス幅 / 周期算 出方法は以下のように求められます。 TW : 被測定パルス幅 / 周期 [ µs] TW = n × t ÷ DIV [µs] n : PWCR0, PWCR1 内の測定結果データ t : カウントクロックの周期 [ µs] DIV : 分周比レジスタ PDIVR0,PDIVR1 で 選択した分周比 ( 分周周期測定モード以外は "1" を代入 ) 198 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ● パルス幅 / 周期測定レンジ カウントクロック , および入力分周器の分周比の選択の組合せにより , 測定可能なパル ス幅 / 周期のレンジが変化します。 一例として , マシンクロック ( 以下 φ とする )=16 MHz 時の測定レンジの一覧表を以下 に示します。 CKS1, CKS0=00B CKS1, CKS0=01B CKS1, CKS0=10B (φ/4) 時 (φ/16) 時 (φ/32) 時 − 0.25 µs ∼ 16.4 ms [250 ns] 0.25 µs ∼ 65.5 ms [1.0 µs] 0.25 µs ∼ 131 ms [2.0 µs] 2 分周 000B 0.25 µs ∼ 8.19 ms [125 ns] 0.25 µs ∼ 32.8 ms [0.5 µs] 0.25 µs ∼ 65.5 ms [1.0 µs] 4 分周 001B 0.25 µs ∼ 4.10 ms [62.5 ns] 0.25 µs ∼ 16.4 ms [250 ns] 0.25 µs ∼ 32.8 ms [0.5 µs] 8 分周 010B 0.25 µs ∼ 2.05 ms [31.25 ns] 0.25 µs ∼ 8.19 ms [125 ns] 0.25 µs ∼ 16.4 ms [250 ns] 16 分周 011B 0.25 µs ∼ 1.02 ms [15.6 ns] 0.25 µs ∼ 4.10 ms [62.5 ns] 0.25 µs ∼ 8.19 ms [125 ns] 64 分周 100B 0.25 µs ∼ 256 µs [3.91 ns] 0.25 µs ∼ 1.024 ms [15.6 ns] 0.25 µs ∼ 2.05 ms [31.25 ns] 256 分周 101B 0.25 µs ∼ 64.0 µs [0.98 ns] 0.25 µs ∼ 256 µs [3.91 ns] 0.25 µs ∼ 512 µs [7.81 ns] − その他 分周比 DIV2, DIV1, DIV0 分周無 し 設定禁止 • マシンクロック φ = 16 MHz 時 • [ ] 内は 1 ビットあたりの分解能を示します。 ●割込み要求発生 パルス幅測定モードにおいては , 以下の 2 つの割込み要求を発生することが可能です。 • カウンタのオーバフローによる割込み要求 測定中 , カウントアップによりオーバフローが発生するとオーバフローフラグが セットされ , オーバフロー割込み要求が許可されていると割込み要求が発生しま す。 • 測定終了による割込み要求 測定終了エッジを検出すると , PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) が セットされ , 測定終了割込み要求が許可されていると割込み要求が発生します。 測定終了フラグ (EDIR) は , 測定結果 PWCR0, PWCR1 を読み出すと自動的にクリ アされます。 199 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ● パルス幅測定動作フロー 各種設定 再起動 カウントクロック選択 動作/測定モード選択 割込みフラグクリア 割込み許可 測定入力端子選択 STRTビットにより起動 単発測定モード 連続測定モード 測定開始エッジ検出 カウンタをクリア カウンタをクリア カウント開始 カウント開始 アップカウント アップカウント オーバフローの発生 → OVIRフラグセット オーバフローの発生 → OVIRフラグセット 測定終了エッジ検出 → EDIRフラグセット 測定終了エッジ検出 → EDIRフラグセット カウント停止 カウント停止 カウント値をPWCRに転送 200 測定開始エッジ検出 動作停止 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ■ 注意事項 ● レジスタ書換えに関する注意事項 PWCSR0, PWCSR1 レジスタの以下に示すビットは動作中に書き換えることを禁止し ます。書換えは必ず起動前か停止後に行ってください。 [ ビット 7, ビット 6] CKS1, CKS0: クロック選択ビット [ ビット 5, ビット 4] PIS1, PIS0: パルス幅測定入力端子選択ビット [ ビット 3] SC: 測定モード ( 単発 / 連続 ) 選択ビット [ ビット 2 ∼ビット 0] MOD2, MOD1, MOD0: 動作モード / 測定エッジ選択ビット PDIVR レジスタは動作中に書き換えることを禁止します。書換えは必ず起動前か停止 後に行ってください。 ● PWCSR0, PWCSR1 レジスタの STRT, STOP ビットについて 両ビット共に , 書込み時と読出し時では意味が異なるので注意してください (「10.3 PWC のレジスタ」を参照 ) 。また , リードモディファイライト系命令における読出し値 は , ビット値にかかわらず "11B" です。このため , 動作状態の読出しには , ビット処理 命令は使用できません ( 読むと必ず動作中となります ) ので注意してください。 カウンタの起動 / 停止のための STRT, STOP ビットへの書込みは , それぞれのビットに 対するビット処理命令 ( ビットクリア命令など ) を用いることが可能です。 ● カウンタのクリアについて パルス幅測定モードの場合 , 測定開始エッジでカウンタがクリアされますので , 起動前 にカウント中であったデータは無効になります。 ● 最小入力パルス幅について パルス幅測定入力端子に入力できるパルスには , 以下の制限があります。 • 最小入力幅 : マシンサイクル× 4 ( マシンサイクルが 62.5 ns 時 , ≧ 250 ns) • 最大入力周波数: マシンクロックの4分周 (マシンサイクルが16 MHz時, ≦ 4 MHz) 上記パルスより小さい幅 , 高い周波数のパルスを入力した場合の動作は保証できませ ん。入力信号にそのようなノイズがのる可能性がある場合は , チップ外部でフィルタな どを通して除去した後 , 入力してください。 ● 分周周期測定モードについて パルス幅測定モードのうちの分周周期測定モードでは , 入力パルスを分周するため , 測 定結果より算出して得られるパルス幅は平均値となりますので注意してください。 ● クロック選択ビットについて PWCSR0, PWCSR1 レジスタの [ ビット 7, ビット 6] CKS1, CKS0: クロック選択ビット において "11B" は設定禁止です。 ● 予約ビットについて PWCSR0, PWCSR1 レジスタの [ ビット 8] は予約ビットになっています。このビットに 書込みを行う場合は , 必ず "0" にしてください。 201 第 10 章 PWC (Pulse Width Count: パルス幅測定 ) ● 動作中の再起動について カウント動作を開始した後に再起動を行う場合は , そのタイミングによっては以下に 示すようなことが起こり得ます。 • パルス幅単発測定モード時 , 測定終了エッジと同時であった場合 再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は セットされます。 • パルス幅連続測定モード時 , 測定終了エッジと同時であった場合 再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は セットされ , その時点での測定結果は PWCR0, PWCR1 に転送されます。 以上のように , 動作中の再起動時には , フラグの動作に注意して割込み制御などを行う ようにしてください。 202 第 11 章 多機能タイマ 多機能タイマ ( フリーランタイマ , アウトプットコ ンペア , インプットキャプチャ , PPG タイマ , 波形 ジェネレータ , A/D 起動コンペアにより構成 ) の概 要 , レジスタの構成 / 機能および動作について説明 します。 11.1 概要 11.2 ブロックダイヤグラム 11.3 多機能タイマの端子 11.4 多機能タイマのレジスタ 11.5 多機能タイマ割込み 11.6 多機能タイマの動作 11.7 多機能タイマの使用上の注意 11.8 多機能タイマのプログラム例 203 第 11 章 多機能タイマ 11.1 概要 多機能タイマは , 1 つの 16 ビットフリーランタイマ , 6 つの 16 ビットアウトプット コンペア , 4 つの 16 ビットインプットキャプチャ , 8 チャネルの 8/16 ビット PPG タイマ , および 1 つの波形ジェネレータ , 3 個の A/D 起動コンペアから構成されてい ます。この波形ジェネレータを使用すると , 12 個の別々の波形を 16 ビットフリーラ ンタイマから出力することができ , 入力パルス幅と外部クロックサイクルを測定す ることもできます。 ■ 多機能タイマの構成 ● 16 ビットフリーランタイマ ( × 1) • 16 ビットフリーランタイマは 16 ビットアップ / ダウンカウンタ , 制御レジスタ , 16 ビットコンペアクリアレジスタ ( バッファレジスタを持っています ) , およびプ リスケーラから構成されています。 • 9種類のカウンタ動作クロック (φ, φ/2,φ/4,φ/8,φ/16,φ/32,φ/64,φ/128,φ/256)を選択でき ます (φ: マシンクロック ) 。 • コンペアクリア割込みは , コンペアクリアレジスタと 16 ビットフリーランタイマ が比較され , 一致した場合に生成されます。ゼロ検出割込みは , 16 ビットフリー ランタイマがカウント値 "0" を検出している間に生成されます。 • コンペアクリアレジスタは , 選択可能なバッファレジスタを持っています ( この バッファレジスタに書き込まれたデータはコンペアクリアレジスタへ転送されま す ) 。16 ビットフリーランタイマが停止し , バッファにデータが書き込まれると , 転送は直ちに実行されます。16 ビットフリーランタイマの動作中にタイマ値 "0" が検出されると , バッファからデータが転送されます。 • アップカウントモードにおいてリセットやソフトウェアクリア , あるいはコンペ アクリアレジスタとのコンペア一致が発生すると, カウンタ値は"0000H"にリセッ トされます。 • このカウンタの出力値は , 多機能タイマのアウトプットコンペアとインプットキャ プチャのクロックカウントとして使用できます。 • "1" 検出またはコンペア一致時に , A/D コンバータの起動が可能です。 ● 16 ビットアウトプットコンペア ( × 6) • 16 ビットアウトプットコンペアは , 6 つの 16 ビットコンペアレジスタ ( 選択可能 なバッファレジスタを持っています ) , コンペア出力ラッチ , コンペア制御レジス タから構成されています。16 ビットフリーランタイマ値とコンペアレジスタが一 致すると , 割込みが生成され出力レベルが反転します。 • 6 つのコンペアレジスタは , 別々に動作させることができます。出力端子と割込み フラグは , 各コンペアレジスタに対応しています。 • 2 つのコンペアレジスタを対 ( ペア ) にして出力端子を制御することができます。 2 つのコンペアレジスタを一緒に使用することによって出力端子を反転させます。 • 各出力端子の初期値を設定することができます。 • 割込みはアウトプットコンペアレジスタが16ビットフリーランタイマと一致した 場合に生成されます。 204 第 11 章 多機能タイマ ●16 ビットインプットキャプチャ ( × 4) • インプットキャプチャは, 4つの独立した外部入力端子と, この端子に対応するキャ プチャレジスタおよびキャプチャ制御レジスタから構成されています。外部端子 において入力信号のエッジを検出すると , 16 ビットフリーランタイマの値をキャ プチャレジスタへ格納することができ , また , 割込みも同時に生成されます。 • 外部入力信号の 3 種類のトリガエッジ ( 立上りエッジ , 立下りエッジおよびその両 方のエッジ ) を選択することができ , また , トリガエッジが立上りエッジであるか 立下りエッジであるかを示すレジスタを持っています。 • 4 つのインプットキャプチャを別々に動作させることができます。 • 割込みは外部入力からの有効エッジが検出されると生成されます。 ● 8/16 ビット PPG タイマ ( × 8) PPG タイマ 0 は , 波形ジェネレータへ PPG 信号を供給するために使用します。PPG タ イマ 0 の詳細については , 「第 9 章 PPG(Programable Pulse Generator)」を参照してくだ さい。 ● 波形ジェネレータ • 波形ジェネレータは , 3 つの 16 ビットデッドタイマレジスタ , 3 つのタイマ制御レ ジスタおよび 1 つの 16 ビット波形制御レジスタから構成されています。 • 波形ジェネレータは , リアルタイム出力 , 16 ビット PPG 波形出力 , ノンオーバラッ プ 3 相波形出力 ( インバータ制御用 ) , および DC チョッパ波形出力を生成するこ とができます。 • 16 ビットデッドタイマのデッドタイムに基づいてノンオーバラップ波形出力を生 成することができます ( デッドタイムタイマ機能 ) 。 • 2 チャネルモード時にリアルタイムアウトプットを動作させることにより , ノン オーバラップ波形出力を生成することができます ( デッドタイムタイマ機能 ) 。 • リアルタイムアウトプットコンペア一致を検出すると GATE 信号が生成され , こ の信号により PPG タイマの動作が開始または停止します (GATE 機能 ) 。 • リアルタイムアウトプットコンペア一致が検出されると 16 ビットデッドタイマが アクティブになり , PPG 動作の制御用 GATE 信号を生成することによって , PPG タ イマ 0 を容易に開始または停止させることができます (GATE 機能 ) 。 • DTTI 端子を使用することによって , 強制的に停止を制御することができます。 • DTTI レジスタにより , 強制的に停止を制御することも可能です。 ●AD 起動コンペア ( × 3) • 16ビットフリーランタイマ値とコンペアレジスタが一致したときに, A/Dコンバー タを起動することができます。 • コンペア 0 が A/D コンバータのユニット 0 を起動できます。 • コンペア 1 が A/D コンバータのユニット 1 を起動できます。 • コンペア 2 が A/D コンバータのユニット 2 を起動できます。 205 第 11 章 多機能タイマ 11.2 ブロックダイヤグラム 多機能タイマのブロックダイヤグラムを示します。 ■ 多機能タイマのブロックダイヤグラム 図 11.2-1 多機能タイマのブロックダイヤグラム リアルタイム I/O RTO0 → 端子 RTO0(U) RTO1 → 端子 RTO1(X) 割込み 割込み 割込み 割込み 割込み 割込み → アウトプットコンペア0 → アウトプットコンペア1 → アウトプットコンペア2 → アウトプットコンペア3 → アウトプットコンペア4 → アウトプットコンペア5 RT0~RT5 バッファからの カウンタ値 データ転送 RTO4 → 端子 RTO4(W) RT0~RT5 RTO5 → 端子 RTO5(Z) DTTI ← 端子 DTTI 割込み 割込み → ゼロ検出 割込み → コンペアクリア →16ビットデッド タイマ0,1,2 割込み → DTTI立下り エッジ検出 PPG0 ← PPG0 A/Dトリガ 内部データバス RTO3 → 端子 RTO3(Y) 波形ジェネレータ 波形ジ ェネレータ 16ビットアウト ビットアウト プットコンペア 16ビット ビット フリーランタイマ GATE → GATE EXCK カウンタ値 割込み 割込み 割込み 割込み 16ビットインプット ビットインプット IC0 キャプチャ RTO2 → 端子 RTO2(V) 端子 CKI インプットキャプチャ0 インプットキャプチャ1 インプットキャプチャ2 インプットキャプチャ3 端子 IC0 IC1 端子 IC1 IC2 端子 IC2 IC3 端子 IC3 カウンタ値 A/D起動コンペア A/D 起動コンペア A/Dコンバータのユニット0 起動 A/Dコンバータのユニット1 起動 A/Dコンバータのユニット2 起動 206 第 11 章 多機能タイマ 図 11.2-2 16 ビットフリーランタイマのブロックダイヤグラム STOP MODE STOP UP/UP-DOWN SCLR CLK2 CLK1 CLK0 プリスケーラ CLR ゼロ検出回路 停止 アップ/アップダウン 16ビットフリーランタイマ ビットフリーランタイマ ゼロ検出 (アウトプットコンペアへ) CK インプットキャプチャおよび アウトプットコンペアへ 16ビットコンペア ビットコンペア クリアレジスタ 転送 コンペア回路 コンペアクリア一致 (アウトプットコンペアへ) 内部データバス 16ビットコンペアクリア ビットコンペアクリア バッファレジスタ I0 O I1 セレク セレクタ セレクタ I0 O I1 割込み I0 O I1 セレク セレクタ マスク回路 MSI2 MSI1 MSI0 ICLR ICRE IRQZF 割込み IRQZE I0 O I1 セレクタ AD1起動 (AD起動コンペアへ) I0 O I1 セレクタ SEL2 SEL1 AD2E AD2起動 (AD起動コンペアへ) AD1E 207 第 11 章 多機能タイマ 図 11.2-3 16 ビットアウトプットコンペアのブロックダイヤグラム フリーランタイマからのカウント値 BUF0 BTS0 コンペアバッファレジスタ フリーランタイマからの ゼロ検出 フリーランタイマからの コンペアクリア一致 I0 O I1 セレクタ 転送 コンペアレジスタ 0,2,4 BUF1 BTS1 コンペア回路 内部データバス I0 O I1 セレク セレクタ コンペアバッファレジスタ 転送 コンペアレジスタ 1,3,5 CMOD コンペア回路 IOP1 IOP0 IOE1 T Q RT0,RT2,RT4 (波形ジェネレータ) T Q RT1,RT3,RT5 (波形ジェネレータ) IOE0 割込み 割込み 208 第 11 章 多機能タイマ 図 11.2-4 16 ビットインプットキャプチャのブロックダイヤグラム フリーランタイマからのカウント値 キャプチャレジスタ 0 エッジ検出 ICP0 ICE0 EG01 IC0 EG00 割込み0 内部データバス キャプチャレジスタ 1 エッジ検出 ICP1 ICE1 EG11 IC1 EG10 割込み1 エッジ検出 キャプチャレジスタ 2 ICP2 ICE2 EG21 EG20 IC2 IEI2 割込み2 エッジ検出 キャプチャレジスタ 3 ICP3 ICE3 EG31 EG30 IC3 IEI3 割込み3 (注意事項) インプットキャプチャ0,1には、検出エッジレジスタはありません。 209 第 11 章 多機能タイマ 図 11.2-5 波形ジェネレータのブロックダイヤグラム DTTI SIGCR2 DTTI SIGCR1 DCK2 DCK1 DCK0 NRSL DTIF NWS1 DTIE ノイズキャンセル DTTI 制御回路 分周器 NWS0 PICSH01 PGEN1 PGEN0 DTCR0 TMD8 GATE0/GATE1 TMD7 TMD6 GTEN5 GATE (PPG0 へ) GTEN4 TO0 波形制御 RT0 セレクタ デッドタイム ジェネレータ 16ビットデッドタイマレジスタ ビットデッドタイマレジスタ0 内部データバス PICSH01 PGEN3 RTO0(U) RTO2(V) RTO4(W) RTO1(X) X PGEN2 DTCR1 TMD5 U 出力制御 コンペア回路 出力制御 16ビット ビット タイマ タイマ0 出力制御 セレクタ TO1 RT1 GATE2/GATE3 TMD4 TMD3 GTEN3 GTEN2 TO2 波形制御 RT2 TO3 16ビット タイマ1 コンペア回路 セレク セレクタ デッドタイム ジェネレータ ビットデッドタイマレジスタ1 16ビットデッドタイマレジスタ PICSH01 PGEN5 RTO3(Y) V Y PGEN4 DTCR2 TMD2 セレクタ RT3 GATE4/GATE5 TMD1 TMD0 GTEN1 GTEN0 TO4 波形制御 RT4 TO5 16ビット タイマ 2 PPG0 210 コンペア回路 セレクタ 16ビットデッドタイマレジスタ ビットデッドタイマレジスタ2 デッドタイム ジェネレータ セレクタ RT5 W Z RTO5(Z) 第 11 章 多機能タイマ 図 11.2-6 A/D 起動コンペアのブロックダイヤグラム フリーランタイマからのカウント値 コンペアレジスタ 0 一致 内部データバス コンペア回路 A/D0 起動 コンペア許可 コンペアレジスタ 1 A/D1 起動 (フリーランタイマより) A/D1 起動 一致 コンペア回路 コンペア許可 コンペアレジスタ 2 A/D2 起動 (フリーランタイマより) A/D2 起動 一致 コンペア回路 コンペア許可 CE2 CE1 CE0 211 第 11 章 多機能タイマ 11.3 多機能タイマの端子 多機能タイマの端子について説明します。 ■ 多機能タイマの端子 表 11.3-1 多機能タイマの端子 端子名 端子機能 I/O 形式 プルアップ オプション スタンバイ 制御 端子設定 ポート 7 入出力 , DTTI あり 端子を入力ポートとして設 定する (DDR7: ビット 2=0) ポート G 入出力 , PG0/INT4/ 外部割込み入力 , CKI 外部クロック なし 端子を入力ポートとして設 定する (DDRG: ビット 0=0) P72/DTTI P36/IC0 ポート 3 入出力 , インプット キャプチャ 0 P37/IC1 ポート 3 入出力 , インプット キャプチャ 1 P60/IC2 ポート 6 入出力 , インプット キャプチャ 2 端子を入力ポート 6 として 設定する (DDR6: ビット 0=0) P61/IC3 ポート 6 入出力 , インプット キャプチャ 3 端子を入力ポートとして設 定する (DDR6: ビット 1=0) P30/RTO0 (U) ポート 3 入出力 , RTO0 端子を入力ポートとして設 定する (DDR3: ビット 6=0) 選択可能 端子を入力ポートとして設 定する (DDR3: ビット 7=0) CMOS 出力 , CMOS ヒス テリシス 入力 あり RTO0 出力を設定する (OCSH1:OTE0=1, DDR3: ビット 0=1) P31/RTO1 (X) ポート 3 入出力 , RTO1 RTO1 出力を設定する (OCSH1:OTE1=1, DDR3: ビット 1=1) P32/RTO2 (V) ポート 3 入出力 , RTO2 RTO2 出力を設定する (OCSH3:OTE0=1, DDR3: ビット 2=1) なし P33/RTO3 (Y) ポート 3 入出力 , RTO3 RTO3 出力を設定する (OCSH3:OTE1=1, DDR3: ビット 3=1) P34/RTO4 (W) ポート 3 入出力 , RTO4 RTO4 出力を設定する (OCSH5:OTE0=1, DDR3: ビット 4=1) P35/RTO5 (Z) ポート 3 入出力 , RTO5 RTO5 出力を設定する (OCSH5:OTE1=1, DDR3: ビット 5=1) DDRx : ポート方向レジスタ OCSHx : コンペア制御レジスタ 212 第 11 章 多機能タイマ 11.4 多機能タイマのレジスタ 多機能タイマのレジスタについて説明します。 ■ 16 ビットフリーランタイマのレジスタ コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 上位 ) CPCLRBH/CPCLRH Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 アドレス : 0000A4H CL15 W R (1) CL14 W R (1) CL13 W R (1) CL12 W R (1) CL11 W R (1) CL10 W R (1) CL09 W R (1) CL08 W R (1) CPCLRBH ライト→ CPCLRH リード→ 初期値→ コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 下位 ) CPCLRBL/CPCLRL CPCLRBL ライト→ CPCLRL リード→ 初期値→ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 CL07 W R (1) CL06 W R (1) CL05 W R (1) CL04 W R (1) CL03 W R (1) CL02 W R (1) CL01 W R (1) CL00 W R (1) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 T15 R/W (0) T14 R/W (0) T13 R/W (0) T12 R/W (0) T11 R/W (0) T10 R/W (0) T09 R/W (0) T08 R/W (0) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 T07 R/W (0) T06 R/W (0) T05 R/W (0) T04 R/W (0) T03 R/W (0) T02 R/W (0) T01 R/W (0) T00 R/W (0) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 MSI2 R/W (0) MSI1 R/W (0) MSI0 R/W (0) ICLR R/W (0) ICRE R/W (0) Bit4 Bit3 Bit2 Bit1 Bit0 CLK3 R/W (0) CLK2 R/W (0) CLK1 R/W (0) CLK0 R/W (0) タイマデータレジスタ ( 上位 ) TCDTH アドレス : 0000A6H リード / ライト→ 初期値→ タイマデータレジスタ ( 下位 ) TCDTL リード / ライト→ 初期値→ タイマ状態制御レジスタ ( 上位 ) TCCSH アドレス : 0000A8H リード / ライト→ 初期値→ ECKE IRQZF IRQZE R/W R/W R/W (0) (0) (0) タイマ状態制御レジスタ ( 下位 ) TCCSL Bit7 アドレス : 0000A9H リード / ライト→ 初期値→ BFE R/W (0) Bit6 Bit5 STOP MODE SCLR R/W R/W R/W (1) (0) (0) A/D トリガ制御レジスタ ADTRGC Bit7 アドレス : 0000ABH リード / ライト→ 初期値→ − − (X) Bit6 − − (X) Bit5 − − (X) Bit4 Bit3 Bit2 Bit1 Bit0 − − (X) SEL2 R/W (0) SEL1 R/W (0) AD2E R/W (0) AD1E R/W (0) 213 第 11 章 多機能タイマ ■ 16 ビットアウトプットコンペアのレジスタ アプトプットコンペアバッファレジスタ , アプトプットコンペアレジスタ ( 上位 ) OCCPBH0 ∼ OCCPBH5/ OCCPH0 ∼ OCCPH5 アドレス : 000090H 000092H 000094H 000096H 000098H 00009AH OCCPBH ライト→ OCCPH リード→ 初期値→ Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 OP15 W R (0) OP14 W R (0) OP13 W R (0) OP12 W R (0) OP11 W R (0) OP10 W R (0) OP09 W R (0) OP08 W R (0) アプトプットコンペアバッファレジスタ , アプトプットコンペアレジスタ ( 下位 ) OCCPBL0 ∼ OCCPBL5/ Bit7 OCCPL0 ∼ OCCPL5 OP07 W OCCPBL ライト→ R OCCPL リード→ (0) 初期値→ Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OP06 W R (0) OP05 W R (0) OP04 W R (0) OP03 W R (0) OP02 W R (0) OP01 W R (0) OP00 W R (0) Bit12 コンペア制御レジスタ 1,3,5( 上位 ) OCSH1, OCSH3, OCSH5 Bit15 Bit14 Bit13 Bit11 Bit10 Bit9 Bit8 − − (X) BTS1 R/W (1) BTS0 CMOD OTE1 R/W R/W R/W (1) (0) (0) OTE0 R/W (0) OTD1 R/W (0) OTD0 R/W (0) OCSL0, OCSL2, OCSL4 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 アドレス : 00009DH 00009FH 0000A1H IOP1 R/W (0) IOP0 R/W (0) IOE1 R/W (0) IOE0 R/W (0) BUF1 R/W (1) BUF0 R/W (1) CST1 R/W (0) CST0 R/W (0) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 − − (X) − − (X) アドレス : 00009CH 00009EH 0000A0H リード / ライト→ 初期値→ コンペア制御レジスタ 0,2,4( 下位 ) リード / ライト→ 初期値→ コンペアモード制御レジスタ OCMOD アドレス : 0000A2H 214 リード / ライト→ 初期値→ MOD15 MOD14 MOD13 MOD12 MOD11 MOD10 R/W R/W R/W R/W R/W R/W (0) (0) (0) (0) (0) (0) 第 11 章 多機能タイマ ■ 16 ビットインプットキャプチャのレジスタ インプットキャプチャデータレジスタ ( 上位 ) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 CP15 R リード→ (X) 初期値→ CP14 R (X) CP13 R (X) CP12 R (X) CP11 R (X) CP10 R (X) CP09 R (X) CP08 R (X) IPCPH0 ∼ IPCPH3 アドレス : 0000ACH 0000AEH 0000B0H 0000B2H インプットキャプチャデータレジスタ ( 下位 ) IPCPL0 ∼ IPCPL3 リード→ 初期値→ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 CP07 R (X) CP06 R (X) CP05 R (X) CP04 R (X) CP03 R (X) CP02 R (X) CP01 R (X) CP00 R (X) Bit12 Bit11 Bit10 Bit9 Bit8 IEI2 R (0) インプットキャプチャ状態制御レジスタ (ch.2,ch.3)( 上位 ) ICSH23 Bit15 アドレス :0000B6H リード→ 初期値→ − − (X) Bit14 − − (X) Bit13 − − (X) − − (X) − − (X) − − (X) IEI3 R (0) インプットキャプチャ状態制御レジスタ (ch.2,ch.3)( 下位 ) ICSL23 アドレス :0000B7H リード / ライト→ 初期値→ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ICP3 R/W (0) ICP2 R/W (0) ICE3 R/W (0) ICE2 R/W (0) EG31 R/W (0) EG30 R/W (0) EG21 R/W (0) EG20 R/W (0) Bit10 Bit9 Bit8 − − (X) − − (X) PPG 出力制御 / インプットキャプチャ状態制御レジスタ (ch.0,ch.1)( 上位 ) PICSH01 Bit15 アドレス :0000B4H Bit14 Bit13 Bit12 Bit11 PGEN5 PGEN4 PGEN3 PGEN2 PGEN1 PGEN0 ライト→ 初期値→ W (0) W (0) W (0) W (0) W (0) W (0) インプットキャプチャ状態制御レジスタ (ch.0,ch.1)( 下位 ) PICSL01 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 アドレス :0000B5H ICP1 R/W (0) ICP0 R/W (0) ICE1 R/W (0) ICE0 R/W (0) EG11 R/W (0) EG10 R/W (0) EG01 R/W (0) EG00 R/W (0) リード / ライト→ 初期値→ 215 第 11 章 多機能タイマ ■ 波形ジェネレータのレジスタ 16 ビットデッドタイマレジスタ ( 上位 ) TMRRH0, TMRRH1, TMRRH2 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 アドレス : 0000BCH 0000BEH 0000C0H TR15 R/W TR14 R/W TR13 R/W TR12 R/W TR11 R/W TR10 R/W TR09 R/W TR08 R/W (X) (X) (X) (X) (X) (X) (X) (X) リード / ライト→ 初期値→ 16 ビットデッドタイマレジスタ ( 下位 ) Bit7 TMRRL0, TMRRL1, TMRRL2 TR07 リード / ライト→ R/W (X) 初期値→ Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TR06 R/W (X) TR05 R/W (X) TR04 R/W (X) TR03 R/W (X) TR02 R/W (X) TR01 R/W (X) TR00 R/W (X) Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 16 ビットデッドタイマ制御レジスタ 0 DTCR0 Bit15 アドレス :0000C4H リード / ライト→ 初期値→ DMOD0 GTEN1 GTEN0 TMIF0 TMIE0 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) Bit6 Bit5 Bit4 Bit3 TMD2 TMD1 TMD0 R/W R/W R/W (0) (0) (0) 16 ビットデッドタイマ制御レジスタ 1 DTCR1 Bit7 アドレス :0000C5H リード / ライト→ 初期値→ DMOD1 GTEN3 GTEN2 TMIF1 TMIE1 R/W (0) Bit2 Bit1 Bit0 R/W (0) R/W (0) R/W (0) R/W (0) TMD5 TMD4 TMD3 R/W R/W R/W (0) (0) (0) Bit14 Bit13 Bit12 Bit11 Bit10 16 ビットデッドタイマ制御レジスタ 2 DTCR2 Bit15 アドレス :0000C6H リード / ライト→ 初期値→ DMOD2 GTEN5 GTEN4 TMIF2 TMIE2 Bit9 Bit8 TMD8 TMD7 TMD6 R/W R/W R/W (0) (0) (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) Bit7 Bit6 Bit5 Bit4 Bit3 DTIE R/W (0) DTIF R/W (0) NRSL R/W (0) DCK2 R/W (0) DCK1 R/W (0) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 − − (X) − − (X) − − (X) − − (X) − − (X) − − (X) − − (X) DTTI R/W (1) 波形制御レジスタ 1 SIGCR1 アドレス :0000C9H リード / ライト→ 初期値→ Bit2 Bit1 Bit0 DCK0 NWS1 NWS0 R/W R/W R/W (0) (0) (0) 波形制御レジスタ 2 SIGCR2 アドレス :0000CBH リード / ライト→ 初期値→ 216 第 11 章 多機能タイマ ■ A/D 起動コンペアのレジスタ コンペアレジスタ 0,1,2( 上位 ) ADCOMP0/ADCOMP1/ADCOMP2 アドレス : ch.0: 0000CCH ch.1: 0000CEH ch.2: 0000D0H リード / ライト→ 初期値→ Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 CMP15 CMP14 CMP13 CMP12 CMP11 CMP10 CMP09 CMP08 R/W R/W R/W R/W R/W R/W R/W R/W (0) (0) (0) (0) (0) (0) (0) (0) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 コンペアレジスタ 0,1,2( 下位 ) ADCOMP0/ADCOMP1/ADCOMP2 CMP07 CMP06 CMP05 CMP04 CMP03 CMP02 CMP01 CMP00 R/W R/W R/W R/W R/W R/W R/W リード / ライト→ R/W (0) (0) (0) (0) (0) (0) (0) (0) 初期値→ 制御レジスタ ADCOMPC アドレス :0000D3H リード / ライト→ 初期値→ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 − − (X) − − (X) − − (X) − − (X) − − (X) CE2 R/W (0) CE1 R/W (0) CE0 R/W (0) 217 第 11 章 多機能タイマ 11.4.1 コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) / コンペアクリアレジスタ (CPCLRH, CPCLRL) コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) は , コンペアクリアレジ スタ (CPCLRH, CPCLRL) に存在する 16 ビットバッファレジスタです。 CPCLRBH, CPCLRBL レジスタと CPCLRH, CPCLRL レジスタは , 両方とも同じア ドレスに存在します。 ■ コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) コンペアクリアバッファレジスタ ( 上位 ) CPCLRBH アドレス :0000A4H ライト→ 初期値→ Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 CL15 W (1) CL14 W (1) CL13 W (1) CL12 W (1) CL11 W (1) CL10 W (1) CL09 W (1) CL08 W (1) コンペアクリアバッファレジスタ ( 下位 ) CPCLRBL ライト→ 初期値→ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 CL07 W (1) CL06 W (1) CL05 W (1) CL04 W (1) CL03 W (1) CL02 W (1) CL01 W (1) CL00 W (1) コンペアクリアバッファレジスタは , コンペアクリアレジスタ (CPCLRH, CPCLRL) と 同じアドレスに存在するバッファレジスタです。バッファ機能が無効になるか ( タイ マ状態制御レジスタ下位 (TCCSL) の BFE: ビット 7=0) , またはフリーランタイマが停 止すると , コンペクリアバッファレジスタの値が直ちにコンペアクリアレジスタへ転 送されます。バッファ機能が有効になると , 16 ビットフリーランタイマのカウント値 "0" が検出されたときに値がコンペアクリアレジスタへ転送されます。 このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご 使用ください。 218 第 11 章 多機能タイマ ■ コンペアクリアレジスタ (CPCLRH, CPCLRL) コンペアクリアレジスタ ( 上位 ) CPCLRH Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 アドレス :0000A4H CL15 R (1) CL14 R (1) CL13 R (1) CL12 R (1) CL11 R (1) CL10 R (1) CL09 R (1) CL08 R (1) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 CL07 R (1) CL06 R (1) CL05 R (1) CL04 R (1) CL03 R (1) CL02 R (1) CL01 R (1) CL00 R (1) リード→ 初期値→ コンペアクリアレジスタ ( 下位 ) CPCLRL アドレス :0000A5H リード→ 初期値→ コンペアクリアレジスタは , 16 ビットフリーランタイマのカウント値と比較するため に使用します。アップカウントモード時は , このレジスタが 16 ビットフリーランタイ マのカウント値と一致すると , 16 ビットフリーランタイマは "0000H" にリセットされ ます。アップダウンカウントモード時は , このレジスタが 16 ビットフリーランタイマ のカウント値と一致すると , 16 ビットフリーランタイマはアップカウントからダウン カウントに変わるか , またはゼロ検出時にダウンカウントからアップカウントに変わ ります。 このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご 使用ください。 219 第 11 章 多機能タイマ 11.4.2 タイマデータレジスタ (TCDTH, TCDTL) タイマデータレジスタ (TCDTH, TCDTL) は , 16 ビットフリーランタイマのカウント 値を読み出すために使用します。 ■ タイマデータレジスタ (TCDTH, TCDTL) タイマデータレジスタ ( 上位 ) TCDTH Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 アドレス :0000A6H T15 R/W (0) T14 R/W (0) T13 R/W (0) T12 R/W (0) T11 R/W (0) T10 R/W (0) T09 R/W (0) T08 R/W (0) TCDTL Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 アドレス :0000A7H T07 R/W (0) T06 R/W (0) T05 R/W (0) T04 R/W (0) T03 R/W (0) T02 R/W (0) T01 R/W (0) T00 R/W (0) リード / ライト→ 初期値→ タイマデータレジスタ ( 下位 ) リード / ライト→ 初期値→ タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すために 使用します。カウント値は , リセットが発生すると直ちに "0000H" にクリアされます。 タイマ値は , このレジスタへ値を書き込むことで設定することができます。ただし , 値 の書込みはタイマの停止中 ( タイマ状態制御レジスタ下位 (TCCSL) の STOP: ビット 6=1) でなければなりません。タイマデータレジスタへアクセスする場合は , ハーフワー ドもしくはワードアクセス命令をご使用ください。 16 ビットフリーランタイマは , 以下の要因が発生すると直ちに初期化されます。 • リセット • タイマ状態制御レジスタ (TCCSL) のクリアビット (SCLR: ビット 4) =1 • アップカウントモード ( タイマ状態制御レジスタ下位 (TCCSL) の MODE: ビット 5=0) 時におけるコンペアクリアレジスタとタイマカウント値の一致 220 第 11 章 多機能タイマ 11.4.3 タイマ状態制御レジスタ (TCCSH, TCCSL) タイマ状態制御レジスタ (TCCSH, TCCSL) は , 16 ビットフリーランタイマの動作を 制御するために使用する 16 ビットレジスタです。 ■ タイマ状態制御レジスタ , 上位バイト (TCCSH) タイマ状態制御レジスタ(上位) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 ECKE IRQZF IRQZE MSI2 MSI1 MSI0 ICLR ICRE R/W R/W R/W R/W R/W R/W R/W R/W ICRE TCCSH アドレス:0000A8H 初期値:00000000B コンペアクリア割込み要求許可ビット 0 割込み要求を禁止する 1 割込み要求を許可する コンペアクリア割込みフラグビット ICLR 読出し 書込み 0 コンペアクリア一致なし このビットをクリアする 1 コンペアクリア一致あり このビットに影響を与えない MSI2 MSI1 MSI0 0 0 0 1回目の一致が発生したときに割込み生成 0 0 1 2回目の一致が発生したときに割込み生成 0 1 0 3回目の一致が発生したときに割込み生成 0 1 1 4回目の一致が発生したときに割込み生成 1 0 0 5回目の一致が発生したときに割込み生成 1 0 1 6回目の一致が発生したときに割込み生成 1 1 0 7回目の一致が発生したときに割込み生成 1 1 1 8回目の一致が発生したときに割込み生成 IRQZE 割込みマスク選択ビット ゼロ検出割込み要求許可ビット 0 割込み要求を禁止にする 1 割込み要求を許可する IRQZF ゼロ検出割込みフラグビット 読出し 書込み 0 ゼロが検出されない このビットをクリアする 1 ゼロが検出される このビットに影響を与えない ECKE クロック選択ビット 0 内部クロック 1 外部クロック R/W:リード/ライト可能 :初期値 221 第 11 章 多機能タイマ 表 11.4-1 タイマ状態制御レジスタ , 上位バイト (TCCSH) (1 / 2) ビット名 機能 • このビットは , 内部クロックまたは外部クロックを 16 ビットフリー ランタイマのカウントクロックとして選択するために使用します。 • このビットに "0" を設定した場合 : 内部クロックが選択されます。カウントクロック周波数を選択する ためには , TCCSL レジスタのクロック周波数選択ビット (CLK3 ∼ ECKE: ビット 15 クロック選択 ビット CLK0: ビット 3 ∼ビット 0) も選択しなければなりません。 • このビットに "1" を設定した場合 : 外部クロックが選択されます。外部クロックは , "CKI" 端子から入力 されます。したがって , ポート方向レジスタ (DDR1) のビット 7 へ "0" を書き込んで外部クロック入力を有効にしなければなりません。 ( 注意事項 ) カウントクロックは , このビットが設定されると直ちに変更されま す。したがって , このビットの変更は , アウトプットコンペアとイン プットキャプチャが停止している間でなければなりません。 • 16 ビットフリーランタイマのカウント値が "0000H" のとき , このビッ トには "1" がセットされます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ( 注意事項 ) アップダウンカウントモード ( タイマ状態制御レジスタ下位 (TCCSL) の MODE: ビット 5=1) 時は , 割込みマスク選択ビット ( タイマ状態制 御レジスタ上位 (TCCSH) の MSI2 ∼ MSI0: ビット 12 ∼ビット 10 が IRQZF: ビット 14 ゼロ検出割込み "000B" 以外 ) で設定した割込みが発生したときにこのビットに "1" が フラグビット 設定されます。割込みが発生しないときは , このビットに "1" は設定 されません。 アップカウントモード (MODE: ビット 5=0) 時は , MSI2 ∼ MSI0: ビッ ト 12 ∼ビット 10 の値とは無関係に , このビットはゼロ検出が発生す るたびに設定されます。 タイマカウントクロックがマシンサイクル (φ) の場合 ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をしても , このビッ トは設定されません。 タイマカウントクロックがマシンサイクル (φ) の分周の場合 ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をすると , このビッ トは設定されます。 IRQZE: このビットと割込みフラグビット (IRQZF: ビット 14) に "1" が設定され ビット 13 ゼロ検出割込み ると , CPU に対する割込み要求が生成されます。 要求許可ビット 222 第 11 章 多機能タイマ 表 11.4-1 タイマ状態制御レジスタ , 上位バイト (TCCSH) (2 / 2) ビット名 機能 • これらのビットは , アップカウントモード (MODE=0) 時はコンペア クリア割込みのマスク回数を設定するために使用します。アップダ ウンカウントモード (MODE=1) 時は , ゼロ検出割込みのマスク回数 ビット 10 MSI2 ∼ MSI0: ビット 11 割込みマスク ビット 12 選択ビット を設定するために使用します。 • このビットに "0" を設定した場合 : 割込み要因はマスクされません。 ( 注意事項 ) 割込み要因を 2 回マスクし , 3 回目の割込みを処理する際には , これ らのビットに "010B" を設定しなければなりません。 読出し値はマスクされたカウント値です。 • コンペアクリア値と 16 ビットフリーランタイマ値が一致すると , こ のビットには "1" が設定されます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ビット 9 ICLR: ( 注意事項 ) コンペアクリア アップカウントモード ( タイマ状態制御レジスタ下位 (TCCSL) の 割込みフラグ MODE: ビット 5=0) 時は , 割込みマスク選択ビット ( タイマ状態制御 ビット レジスタ上位 (TCCSH) の MSI2 ∼ MSI0: ビット 12 ∼ 10 が "000B" 以 外 ) で設定した割込みが発生したときにこのビットに "1" が設定され ます。割込みが発生しないときは , このビットに "1" は設定されませ ん。 アップダウンカウントモード (MODE=1) 時は , MSI2 ∼ MSI0 ビット の値とは無関係に , このビットはコンペアクリアが発生するたびに設 定されます。 ビット 8 ICRE: コンペア このビットとコンペアクリア割込みフラグビット(ICLR: ビット9) に"1" クリア割込み が設定されると , CPU に対する割込み要求が生成されます。 要求許可ビット 223 第 11 章 多機能タイマ ■ タイマ制御レジスタ , 下位バイト (TCCSL) タイマ状態制御レジスタ(下位) Bit7 BFE R/W Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 STOP MODE SCLR CLK3 CLK2 CLK1 CLK0 R/W R/W R/W R/W R/W R/W R/W TCCSL アドレス:0000A9H 初期値:01000000B クロック周波数選択ビット CLK3 CLK2 CLK1 CLK0 カウント クロック 0 0 0 0 φ 0 0 0 1 0 0 1 0 0 0 1 =32MHz =16MHz =8MHz =4MHz =1MHz 31.25 ns 62.5 ns 125 ns 0.25 µs 1 µs φ/2 62.5 ns 125 ns 0.25 ms 0.5 µs 2 µs φ/4 125 ns 0.25 µs 0.5 µs 1 µs 4 µs 1 φ/8 0.25 µs 0.5 µs 1 µs 2 µs 8 µs 0 1 0 0 φ/16 0.5 µs 1 µs 2 µs 4 µs 16 µs 0 1 0 1 φ/32 1 µs 2 µs 4 µs 8 µs 32 µs 0 1 1 0 φ/64 2 µs 4 µs 8 µs 16 µs 64 µs 0 1 1 1 φ/128 4 µs 8 µs 16 µs 32 µs 128 µs 1 0 0 0 φ/256 8 µs 16 µs 32 µs 64 µs 256 µs - - - - その他 設定禁止 - :マシンサイクル SCLR 0 1 MODE このビットに影響を与えない 常に"0"を読み出す カウンタを"0000H"に初期化 タイマカウントモードビット アップカウントモード 1 アップダウンカウントモード タイマ許可ビット 0 カウントを許可する(カウント開始する) 1 カウントを禁止する(カウント停止する) BFE 224 書込み 0 STOP R/W:リード/ライト可能 :初期値 タイマクリアビット 読出し コンペアクリアバッファ許可ビット 0 コンペアクリアバッファを無効にする 1 コンペアクリアバッファを有効にする 第 11 章 多機能タイマ 表 11.4-2 タイマ状態制御レジスタ , 下位バイト (TCCSL) (1 / 2) ビット名 機能 • このビットは , コンペアクリアバッファを有効にするために使用しま す。 • このビットに "0" を設定した場合 : ビット 7 コンペアクリアバッファは無効になります。したがって , コンペアク BFE: コンペア リアレジスタ (CPCLRH, CPCLRL) に直接書き込むことが可能です。 クリア バ ッ フ ァ 許 可 • このビットに "1" を設定した場合 : ビット コンペアクリアバッファは有効になります。コンペアクリアバッファ に書き込まれ保持されていたデータは , 16 ビットフリーランタイマか らのカウント値 "0" が検出されると , コンペアクリアレジスタへ転送さ れます。 • このビットは , 16 ビットフリーランタイマのカウントを停止 / 開始す るために使用します。 • このビットに "0" を設定した場合 : 16 ビットフリーランタイマのカウ ビット 6 STOP: タイマ許可 ビット ントは開始します。 • このビットに "1" を設定した場合 : 16 ビットフリーランタイマのカウ ントは停止します。 ( 注意事項 ) 16 ビットフリーランタイマが停止すると , アウトプットコンペアの動 作も停止します。 • このビットは , 16 ビットフリーランタイマのカウントモードを選択す るために使用します。 • このビットに "0" を設定した場合 : アップカウントモードが選択されます。タイマは , カウント値がコン ペアクリアレジスタと一致して "0000H" にリセットされるまでカウン トアップし , その後 , 再びカウントアップします。 ビット 5 MODE: タイマ カウント モードビット • このビットに "1" を設定した場合 : アップダウンカウントモードが選択されます。タイマは , カウント値 がコンペアクリアレジスタと一致するまでカウントアップし , その後 ダウンカウントに変わります。その後 , カウント値が "0000H" に達する と再びアップカウントに変わります。 • このビットは , タイマが動作中であっても停止されていても書込みが 可能です。タイマが動作中の場合は , このビットに書き込まれた値は バッファに入れられ , その後 , タイマ値が "0000H" になるとバッファの 値によりカウントモードが変わります。 225 第 11 章 多機能タイマ 表 11.4-2 タイマ状態制御レジスタ , 下位バイト (TCCSL) (2 / 2) ビット名 機能 • このビットは , 16 ビットフリーランタイマを "0000H" に初期化するた めに使用します。 • このビットに "0" を設定した場合 : 意味はありません。 • このビットに "1" を設定した場合 : 16 ビットフリーランタイマは , "0000H" に初期化されます。 SCLR: ビット 4 タイマクリア ビット • 読出し値は , 必ず "0" です。 ( 注意事項 ) タイマカウントクロックがマシンサイクル (φ) の場合 このビットに "1" を書き込んでも , ゼロ検出割込みフラグはセットされ ず , ゼロ検出割込みは発生されません。 タイマカウントクロックがマシンサイクル (φ) の分周の場合 このビットに "1" を書き込むと , ゼロ検出割込みフラグはセットされ , 割込み許可の場合 , ゼロ検出割込みが発生します。 • このビットは , 16 ビットフリーランタイマのカウントクロック周波数 ビット 3 を選択するために使用します。 CLK3 ∼ CLK0: ビット 2 クロック周波数 • カウントクロックは , これらのビットが設定されると直ちに変更され ビット 1 選択ビット ます。したがって , これらのビットの変更は , アウトプットコンペアと ビット 0 インプットキャプチャが停止している間でなければなりません。 226 第 11 章 多機能タイマ 11.4.4 A/D トリガ制御レジスタ (ADTRGC) フリーランタイマのコンペア一致時 , もしくはゼロ検出時に A/D トリガ信号出力を 制御します。 ■ A/D トリガ制御レジスタ (ADTRGC) A/Dトリガ制御レジスタ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 - - - - SEL2 SEL1 AD2E AD1E - - - - R/W R/W R/W R/W AD1E A/D1トリガ出力許可ビット 0 禁止 1 許可 AD2E A/D2トリガ出力許可ビット 0 禁止 1 許可 SEL1 R/W:リード/ライト可能 :初期値 - :未使用ビット ADTRGC アドレス:0000ABH 初期値:XXXX0000B A/D1トリガ要因選択ビット 0 ゼロ検出時 1 コンペア一致時 SEL2 A/D2トリガ要因選択ビット 0 ゼロ検出時 1 コンペア一致時 表 11.4-3 A/D トリガ制御レジスタ (ADTRGC) ビット名 ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 ビット 1 ビット 0 機能 • 読出し値は不定です。 未使用ビット • このビットへの書込みは動作に影響しません。 SEL2: A/D2 トリガ要因 選択ビット SEL1: A/D1 トリガ要因 選択ビット AD2E: A/D2 トリガ出力 許可ビット AD1E: A/D1 トリガ出力 許可ビット A/D2 のトリガをフリーランタイマのゼロ検出時に出力するか , コン ペア一致時に出力するかの選択ビットです。 A/D1 のトリガをフリーランタイマのゼロ検出時に出力するか , コン ペア一致時に出力するかの選択ビットです。 • "0" のとき , A/D2 トリガ信号は出力されません。 • "1" のとき , 出力許可となります。 • "0" のとき , A/D1 トリガ信号は出力されません。 • "1" のとき , 出力許可となります。 227 第 11 章 多機能タイマ 11.4.5 アウトプットコンペアバッファレジスタ (OCCPBH0 ∼ OCCPBH5, OCCPBL0 ∼ OCCPBL5)/ アウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5) アウトプットコンペアバッファレジスタ (OCCPBH, OCCPBL) は , アウトプットコ ンペアレジスタ (OCCPH, OCCPL) 用の 16 ビットバッファレジスタです。 OCCPBH, OCCPBL レジスタと OCCPH, OCCPL レジスタは , 両方とも同じアドレ スに存在しています。 ■ アウトプットコンペアバッファレジスタ (OCCPBH:OCCPBH0 ∼ OCCPBH5, OCCPBL:OCCPBL0 ∼ OCCPBL5) アウトプットコンペアバッファレジスタ ( 上位 ) OCCPBH0 ∼ OCCPBH5 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 アドレス : 000090H 000092H 000094H 000096H 000098H 00009AH OP15 W (0) OP14 W (0) OP13 W (0) OP12 W (0) OP11 W (0) OP10 W (0) OP09 W (0) OP08 W (0) ライト→ 初期値→ アウトプットコンペアバッファレジスタ ( 下位 ) OCCPBL0 ∼ OCCPBL5 ライト→ 初期値→ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OP07 W (0) OP06 W (0) OP05 W (0) OP04 W (0) OP03 W (0) OP02 W (0) OP01 W (0) OP00 W (0) アウトプットコンペアバッファレジスタは , アウトプットコンペアレジスタ (OCCPH, OCCPL) 用のバッファレジスタです。バッファ機能が無効になるか ( コンペア制御レジ スタ下位 (OCSL0, OCSL2, OCSL4) のBUF1, BUF0: ビット3, ビット2=11B) , またはフリー ランタイマが停止すると , アウトプットコンペアバッファレジスタの値は , 直ちにアウ トプットコンペアレジスタへ転送されます。バッファ機能が有効になると ( コンペア制 御レジスタ下位 (OCSL0, OCSL2, OCSL4) の BUF1, BUF0: ビット 3, 2=00B) , 値はコンペア 制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の転送選択ビット (BTS1, BTS0: ビット 14, ビット 13) に従ってコンペアクリア一致時 , またはゼロ検出時に転送されます。 このレジスタへアクセスする場合 , ハーフワードもしくはワードアクセス命令をご使 用ください。 228 第 11 章 多機能タイマ ■ アウトプットコンペアレジスタ (OCCPH:OCCPH0 ∼ OCCPH5,OCCPL:OCCPL0 ∼ OCCPL5) アウトプットコンペアレジスタ ( 上位 ) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 OP15 R リード→ (0) 初期値→ OP14 R (0) OP13 R (0) OP12 R (0) OP11 R (0) OP10 R (0) OP09 R (0) OP08 R (0) OCCPH0 ∼ OCCPH5 アドレス : 000090H 000092H 000094H 000096H 000098H 00009AH アウトプットコンペアレジスタ ( 下位 ) Bit7 OCCPL0 ∼ OCCPL5 OP07 R リード→ (0) 初期値→ Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OP06 R (0) OP05 R (0) OP04 R (0) OP03 R (0) OP02 R (0) OP01 R (0) OP00 R (0) アウトプットコンペアレジスタは , 16 ビットフリーランタイマのカウント値と比較す るために使用する 16 ビットレジスタです。タイマの動作を有効にする前にアウトプッ トコンペアバッファレジスタ (OCCPBH, OCCPBL) に値を設定してください。 アウトプットコンペアレジスタの値が 16 ビットフリーランタイマのカウント値と一致 すると , コンペア信号が生成され, アウトプットコンペア割込みフラグビット ( コンペア 制御レジスタ下位 OCSL0, OCSL2, OCSL4 の IOP1, IOP0: ビット 7, ビット 6) が設定され ます。出力レベルが設定されると ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の OTD1, OTD0: ビット 9, ビット 8) , アウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5) に対応する出力レベル波形ジェネレータ RTO0 ∼ RTO5 を反転させることができます。 このレジスタへアクセスする場合 , ハーフワードもしくはワードアクセス命令をご使 用ください。 229 第 11 章 多機能タイマ コンペア制御レジスタ (OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5) 11.4.6 コンペア制御レジスタは , RT0 ∼ RT5 の出力レベル , 出力許可 , 出力レベル反転 モード , コンペア動作許可 , コンペア一致割込み許可およびコンペア一致割込みフラ グを制御するために使用します。 ■ コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5) コンペア制御レジスタ(上位) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 - BTS1 BTS0 CMOD OTE1 OTE0 OTD1 OTD0 - R/W R/W R/W R/W R/W R/W R/W Bit8 読出し 書込み RT0,RT2,RT4の現出力値 1 RT0,RT2,RT4が"1"を出力 読出し 書込み RT1,RT3,RT5の現出力値 1 RT0,RT2,RT4が"0"を出力 出力レベルビット OTD1 0 OCSH1,OCSH3,OCSH5 アドレス:00009CH 00009EH 0000A0H 初期値:X1100000B 出力レベルビット OTD0 0 Bit9 OTE0 RT1,RT3,RT5が"0"を出力 RT1,RT3,RT5が"1"を出力 出力許可ビット 0 汎用入出力ポート 1 波形ジェネレータ出力端子(RTO0,RTO2,RTO4) OTE1 出力許可ビット 0 汎用入出力ポート 1 波形ジェネレータ出力端子(RTO1,RTO3,RTO5) 出力レベル反転モードビット CMOD MOD1x=0 MOD1x=1 0 RT0,RT2,RT4:レベルは,コンペアレジスタ0,2,4と の一致が発生すると直ちに反転する アップカウント時の一致時は"1"にセット RT1,RT3,RT5:レベルは,コンペアレジスタ1,3,5と ダウンカウント時の一致時は"0"にリセット の一致が発生すると直ちに反転する 1 RT0,RT2,RT4:レベルは、コンペアレジスタ0,2,4と の一致が発生すると直ちに反転する アップカウント時の一致時は"0"にリセット RT1,RT3,RT5:レベルは,コンペアレジスタ ダウンカウント時の一致時は"1"にセット (0または)(2または3)(4または5)と の一致が発生すると直ちに反転する x = 0~5 BTS0 バッファ転送選択ビット 0 ゼロ検出が発生すると転送が起動(ch.0, ch.2, ch.4) コンペアクリア一致が発生すると転送が起動(ch.0, ch.2, ch.4) 1 R/W:リード/ライト可能 :初期値 -:未使用 230 BTS1 バッファ転送選択ビット 0 ゼロ検出が発生すると転送が起動(ch.1, ch.3, ch.5) 1 コンペアクリア一致が発生すると転送が起動(ch.1, ch.3, ch.5) 第 11 章 多機能タイマ 表 11.4-4 コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5) (1 / 3) ビット名 ビット 15 未使用ビット 機能 • 読出し値は不定です。 • このビットへの書込みは動作に影響しません。 • このビットは , アウトプットコンペアバッファレジスタ (OCCPBH0, OCCPBH2, OCCPBH4, OCCPBL0, OCCPBL2, OCCPBL4) からアウトプットコンペアレジスタ (OCCPH1, OCCPH3,OCCPH5, OCCPL1, OCCPL3, OCCPL5) へのデータ転送時期を選択するために BTS1: ビット 14 バッファ転送 選択ビット 使用します。 • このビットに "0" を設定した場合 : データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出さ れると起動します。 • このビットに "1" を設定した場合 : データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が 発生すると起動します。 • このビットは , アウトプットコンペアバッファレジスタ (OCCPBH0, OCCPBH2, OCCPBH4, OCCPBL0, OCCPBL2, OCCPBL4) からアウトプットコンペアレジスタ (OCCPH1, OCCPH3,OCCPH5, OCCPL1, OCCPL3, OCCPL5) へのデータ転送時期を選択するために BTS0: ビット 13 バッファ転送 選択ビット 使用します。 • このビットに "0" を設定した場合 : データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出さ れると起動します。 • このビットに "1" を設定した場合 : データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が 発生すると起動します。 231 第 11 章 多機能タイマ 表 11.4-4 コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5) (2 / 3) ビット名 機能 • このビットは , 端子出力が有効の間 (OTE1=1 または OTE0=1) に一致 が発生した場合に端子出力レベル反転モードを直ちに切り換えるた めに使用します。 • このビットに "0" を設定した場合 : コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=0 のとき - RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペア レジスタ 0, 2, 4 が一致すると直ちに反転します。 - RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペア レジスタ 1, 3, 5 が一致すると直ちに反転します。 コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=1 のとき - アップカウント時に一致したときは , "1" にセット CMOD: - ダウンカウント時に一致したときは , "0" にリセット ビット 12 出力レベル反転 • このビットに "1" を設定した場合 : モードビット コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=0 のとき - RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペア レジスタ 0, 2, 4 が一致すると直ちに反転します。 - RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペア レジスタ (0 または 1) (2 または 3) (4 または 5) が一 致すると直ちに反転します。 コンペアレジスタ 0, 2, 4 と 1, 3, 5 が同じ値の場合は , ただ 1 つのコ ンペアレジスタが使用される場合と同じ動作になります。 コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=1 のとき - アップカウント時に一致したときは , "0" にリセット - ダウンカウント時に一致したときは , "1" にセット • このビットは , ポートへの波形ジェネレータ出力 (RTO1, RTO3, RTO5) を許可するために使用します。 • このビットの初期値は "0" です。 OTE1: ( 注意事項 ) ビット 11 出力許可ビット 波形ジェネレータが無効 (16 ビットデッドタイマ制御レジスタ下位 (DTCR0, DTCR1, DTCR2) の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼ TMD6: ビット 2 ∼ビット 0=000B) の場合は , RTO1, RTO3, RTO5 はア ウトプットコンペアと同じ値を出力します。 • このビットは , ポートへの波形ジェネレータ出力 (RTO0, RTO2, RTO4) を許可するために使用します。 • このビットの初期値は "0" です。 OTE0: ( 注意事項 ) ビット 10 出力許可ビット 波形ジェネレータが無効 (16 ビットデッドタイマ制御レジスタ下位 (DTCR0, DTCR1, DTCR2) の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼ TMD6: ビット 2 ∼ビット 0=000B) の場合は , RTO0, RTO2, RTO4 はア ウトプットコンペアと同じ値を出力します。 232 第 11 章 多機能タイマ 表 11.4-4 コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5) (3 / 3) ビット名 機能 • このビットは , アウトプットコンペア 1, 3, 5 (RT1, RT3, RT5) の端子 出力レベルを変更するために使用します。 ビット 9 OTD1: 出力レベル ビット • コンペア端子出力の初期値は "0" です。 • 値を書き込む場合は , 必ず前もってコンペア動作を停止させてくだ さい。このビットの読出し値は , RT1, RT3, RT5 におけるアウトプッ トコンペア値を示します。 • このビットは , アウトプットコンペア 0, 2, 4 (RT0, RT2, RT4) の端子 出力レベルを変更するために使用します。 ビット 8 OTD0: 出力レベル ビット • コンペア端子出力の初期値は "0" です。 • 値を書き込む場合は , 必ず前もってコンペア動作を停止させてくだ さい。このビットの読出し値は , RT0, RT2, RT4 におけるアウトプッ トコンペア値を示します。 233 第 11 章 多機能タイマ ■ コンペア制御レジスタ , 下位バイト (OCSL0, OCSL2, OCSL4) コンペア制御レジスタ(下位) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 IOP1 IOP0 IOE1 IOE0 BUF1 BUF0 CST1 CST0 R/W R/W R/W R/W R/W R/W R/W R/W CST0 コンペアレジスタ0,2,4のコンペア動作を禁止する 1 コンペアレジスタ0,2,4のコンペア動作を許可する コンペア動作許可ビット 0 コンペアレジスタ1,3,5のコンペア動作を禁止する 1 コンペアレジスタ1,3,5のコンペア動作を許可する BUF0 コンペアバッファ無効ビット 0 コンペアレジスタ0,2,4のコンペアバッファを有効にする 1 コンペアレジスタ0,2,4のコンペアバッファを無効にする BUF1 コンペアバッファ無効ビット 0 コンペアレジスタ1,3,5のコンペアバッファを有効にする 1 コンペアレジスタ1,3,5のコンペアバッファを無効にする IOE0 コンペア一致割込み許可ビット 0 コンペアレジスタ0,2,4のコンペア一致割込みを禁止する 1 コンペアレジスタ0,2,4のコンペア一致割込みを許可する IOE1 コンペア一致割込み許可ビット 0 コンペアレジスタ1,3,5のコンペア一致割込みを禁止する 1 コンペアレジスタ1,3,5のコンペア一致割込みを許可する IOP0 コンペア一致割込みフラグビット 0 読出し 書込み コンペアレジスタ0,2,4の コンペア一致割込みが発生しない このビットをクリアする 1 コンペアレジスタ0,2,4の コンペア一致割込みが発生する IOP1 0 1 234 コンペア動作許可ビット 0 CST1 R/W:リード/ライト可能 :初期値 OCSL0,OCSL2,OCSL4 アドレス:00009DH 00009FH 0000A1H 初期値:00001100B このビットに影響を与えない コンペア一致割込みフラグビット 読出し 書込み コンペアレジスタ1,3,5の このビットをクリアする コンペア一致割込みが発生しない コンペアレジスタ1,3,5の このビットに影響を与えない コンペア一致割込みが発生する 第 11 章 多機能タイマ 表 11.4-5 コンペア制御レジスタ , 下位バイト (OCSL0, OCSL2, OCSL4) (1 / 2) ビット名 機能 • このビットは , コンペアレジスタ 1, 3, 5 が 16 ビットフリーランタイ マの値と一致したことを示す割込みフラグです。 • このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値 ビット 7 IOP1: コンペア一致 割込みフラグ ビット に一致した場合に "1" が設定されます。 • コンペア一致割込み許可ビット (IOE1: ビット 5) が " 許可 " になって いる間にこのビットが設定されると , アウトプットコンペア割込み が発生します。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 • このビットは , コンペアレジスタ 0, 2, 4 が 16 ビットフリーランタイ マの値と一致したことを示す割込みフラグです。 • このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値 ビット 6 IOP0: コンペア一致 割込みフラグ ビット に一致した場合に "1" が設定されます。 • コンペア一致割込み許可ビット (IOE0: ビット 4) が " 許可 " になって いる間にこのビットが設定されると , アウトプットコンペア割込み が発生します。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 • このビットは , コンペアレジスタ 1, 3, 5 のアウトプットコンペア割 ビット 5 IOE1: コンペア一致 割込み許可 ビット 込みを " 許可 " にするために使用します。 • このビットに "1" が書き込まれている間にコンペア一致割込みフラ グビット (IOP1: ビット 7) が設定されると , アウトプットコンペア割 込みが発生します。 • このビットは , コンペアレジスタ 0, 2, 4 のアウトプットコンペア割 ビット 4 IOE0: コンペア一致 割込み許可 ビット 込みを " 許可 " にするために使用します。 • このビットに "1" が書き込まれている間にコンペア一致割込みフラ グビット (IOP0: ビット 7) が設定されると , アウトプットコンペア割 込みが発生します。 ビット 3 ビット 2 BUF1: コンペア バッファ無効 ビット BUF0: コンペア バッファ無効 ビット • このビットは , アウトプットコンペアレジスタ 1, 3, 5 のバッファ機 能を無効にするために使用します。 • このビットに "0" を設定した場合 : バッファ機能が有効になります。 • このビットは , アウトプットコンペアレジスタ 0, 2, 4 のバッファ機 能を無効にするために使用します。 • このビットに "0" を設定した場合 : バッファ機能が有効になります。 235 第 11 章 多機能タイマ 表 11.4-5 コンペア制御レジスタ , 下位バイト (OCSL0, OCSL2, OCSL4) (2 / 2) ビット名 機能 • このビットは , 16 ビットフリーランタイマとコンペアレジスタ 1, 3, 5 の間のコンペア動作を許可するために使用します。 • コンペア動作を許可する場合は , 必ず前もってコンペアレジスタ 1, ビット 1 CST1: コンペア動作 許可ビット 3, 5 とタイマデータレジスタ (TCDTH, TCDTL) に値を書き込んでく ださい。 ( 注意事項 ) アウトプットコンペアは , 16 ビットフリーランタイマクロックと同 期化されるので , 16 ビットフリーランタイマを停止するとコンペア 動作も停止します。 • このビットは , 16 ビットフリーランタイマとコンペアレジスタ 0, 2, 4 の間のコンペア動作を許可するために使用します。 • コンペア動作を許可する場合は , 必ず前もってコンペアレジスタ 0, ビット 0 236 CST0: コンペア動作 許可ビット 2, 4 とタイマデータレジスタ (TCDTH, TCDTL) に値を書き込んでく ださい。 ( 注意事項 ) アウトプットコンペアは , 16 ビットフリーランタイマクロックと同 期化されるので , 16 ビットフリーランタイマを停止するとゼロ検出 , コンペア動作も停止します。 第 11 章 多機能タイマ 11.4.7 コンペアモード制御レジスタ (OCMOD) コンペアモード制御レジスタは , コンペア一致時の出力レベルを反転モードもしく はセット , リセットを行うかの制御を行います。 ■ コンペアモード制御レジスタ (OCMOD) コンペアモード制御レジスタ Bit15 Bit14 Bit13 Bit12 Bit11 - - MOD15 MOD14 MOD13 - - R/W R/W R/W Bit10 Bit9 Bit8 MOD12 MOD11 MOD10 R/W R/W R/W 初期値:XX000000B ch.0コンペア一致出力設定ビット MOD10 0 前出力値の反転 1 CMODによって“1”にセットもしくは“0”にリセット MOD11 ch.1 コンペア一致出力設定ビット 0 前出力値の反転 1 CMODによって“1”にセットもしくは“0”にリセット ch.2 コンペア一致出力設定ビット MOD12 0 前出力値の反転 1 CMODによって“1”にセットもしくは“0”にリセット ch.3 コンペア一致出力設定ビット MOD13 0 前出力値の反転 1 CMODによって“1”にセットもしくは“0”にリセット MOD14 ch.4コンペア一致出力設定ビット 0 前出力値の反転 1 CMODによって“1”にセットもしくは“0”にリセット ch.5コンペア一致出力設定ビット MOD15 R/W:リード/ライト可能 :初期値 -:未使用 OCMOD アドレス:0000A2H 0 前出力値の反転 1 CMODによって“1”にセットもしくは“0”にリセット 237 第 11 章 多機能タイマ 表 11.4-6 コンペアモード制御レジスタ (OCMOD) ビット名 ビット 15, 未使用ビット ビット 14 ビット 13 ビット 12 ビット 11 ビット 10 ビット 9 ビット 8 238 MOD15: ch.5 コンペア一致 出力設定ビット MOD14: ch.4 コンペア一致 出力設定ビット MOD13: ch.3 コンペア一致 出力設定ビット MOD12: ch.2 コンペア一致 出力設定ビット MOD11: ch.1 コンペア一致 出力設定ビット MOD10: ch.0 コンペア一致 出力設定ビット 機能 • 読出し値は不定です。 • このビットへの書込みは動作に影響しません。 • このビットによりアウトプットコンペアの出力のコンペア一 致時の動作を指示します。 • 初期値は "0" です。 • "0" のときは , 一致時に出力値を反転します。 • "1" のときは , 一致時に出力値を "1" にセット , もしくは "0" に リセットします。セット / リセットの切換えはコンペア制御レ ジスタ (OCSH) の CMOD ビットにて設定します。 • 値を書き込む場合は , 必ず前もってコンペア動作を停止させて ください。 • CMOD の設定は , ch.0, ch.1 と ch.2, ch.3 と ch.4, ch.5 で設定となり ます。 - ch.0, ch.1 で独立してリセット / セットの設定はできません。 - ch.2, ch.3 で独立してリセット / セットの設定はできません。 - ch.4, ch.5 で独立してリセット / セットの設定はできません。 第 11 章 多機能タイマ 11.4.8 インプットキャプチャデータレジスタ (IPCPH0 ∼ IPCPH3, IPCPL0 ∼ IPCPL3) インプットキャプチャデータレジスタは , 入力波形の有効エッジが検出されたとき のフリーランタイマのカウント値を保持するために使用します。 ■ インプットキャプチャデータレジスタ (IPCPH: IPCPH0 ∼ IPCPH3, IPCPL: IPCPL0 ∼ IPCPL3) インプットキャプチャデータレジスタ ( 上位 ) IPCPH0 ∼ IPCPH3 アドレス : 0000ACH 0000AEH 0000B0H 0000B2H ビット 15 ビット 14 ビット 13 ビット 12 ビット 11 ビット 10 ビット 9 ビット 8 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 リード→ R R R R R R R R 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) インプットキャプチャデータレジスタ ( 下位 ) IPCPL0 ∼ IPCPL3 ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 CP07 CP06 CP05 CP04 CP03 CP02 ビット 1 ビット 0 CP01 CP00 リード→ R R R R R R R R 初期値→ (X) (X) (X) (X) (X) (X) (X) (X) このレジスタは , 対応する外部端子入力波形の有効エッジが検出されたときのフリー ランタイマ値を格納するために使用します。このレジスタへアクセスする場合は , ハー フワードもしくはワードアクセス命令をご使用ください。 このレジスタにデータを書き込むことはできません 。 239 第 11 章 多機能タイマ 11.4.9 インプットキャプチャ状態制御 /PPG 出力制御レジスタ (ICSH23, ICSL23, PICSH01, PICSL01) インプットキャプチャ状態制御 /PPG 出力制御レジスタ (ICSH23, ICSL23, PICSH01, PICSL01) は , エッジ選択 , 割込み要求許可 , 割込み要求フラグおよび PPG 出力を制御するために使用します。また , インプットキャプチャ 2, 3 において 検出された有効なエッジを示すためにも使用します。 ■ インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 上位バイト (ICSH23) インプットキャプチャ状態制御レジスタ(上位) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 - - - - - - IEI3 IEI2 - - - - - - R R IEI2 R :リードのみ :初期値 -:未使用 240 有効エッジ指示ビット(インプットキャプチャ2) 0 立下りエッジが検出される 1 立上りエッジが検出される IEI3 ICSH23 アドレス:0000B6H 初期値:XXXXXX00B 有効エッジ指示ビット(インプットキャプチャ3) 0 立下りエッジが検出される 1 立上りエッジが検出される 第 11 章 多機能タイマ 表 11.4-7 インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 上位バイト (ICSH23) ビット名 ビット 15 ビット 14 ビット 13 未使用ビット ビット 12 ビット 11 ビット 10 機能 • 読出し値は不定です。 • このビットへの書込みは動作に影響しません。 • このビットは , キャプチャレジスタ 3 の有効エッジ指示ビットであり , 立上りエッジまたは立下りエッジが検出されたことを示します。 ビット 9 IEI3: 有効エッジ指示 ビット ( インプット キャプチャ 3) • 立下りエッジが検出されると , このビットに "0" が書き込まれます。 • 立上りエッジが検出されると , このビットに "1" が書き込まれます。 • このビットは読出し専用ビットです。 ( 注意事項 ) インプットキャプチャ状態制御レジスタ下位 (ICSL23) の EG31, EG30: ビット 3, ビット 2=00B の場合 , 読出し値は意味がありません。 • このビットは , キャプチャレジスタ 2 の有効エッジ指示ビットであり , 立上りエッジまたは立下りエッジが検出されたことを示します。 ビット 8 IEI2: • 立下りエッジが検出されると , このビットに "0" が書き込まれます。 有効エッジ指示 • 立上りエッジが検出されると , このビットに "1" が書き込まれます。 ビット ( インプット • このビットは , 読出し専用ビットです。 キャプチャ 2) ( 注意事項 ) インプットキャプチャ状態制御レジスタ下位 (ICSL23) の EG21, EG20: ビット 1, ビット 0=00B の場合 , 読出し値は意味がありません。 241 第 11 章 多機能タイマ ■ インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 下位バイト (ICSL23) インプットキャプチャ状態制御レジスタ(下位) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ICP3 IP2 ICE3 ICE2 EG31 EG30 EG21 EG20 R/W R/W R/W R/W R/W R/W R/W R/W EG21 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される EG30 エッジ選択ビット(インプットキャプチャ3) 0 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される ICE2 割込み要求許可ビット(インプットキャプチャ2) 0 割込み要求を禁止する 1 割込み要求を許可する ICE3 割込み要求許可ビット(インプットキャプチャ3) 0 割込み要求を禁止する 1 割込み要求を許可する ICP2 割込み要求フラグビット(インプットキャプチャ2) 読出し 書込み 0 有効エッジが検出されない このビットはクリアされる 1 有効エッジが検出される このビットは影響を受けない ICP3 242 エッジ選択ビット(インプットキャプチャ2) 0 EG31 R/W:リード/ライト可能 :初期値 EG20 ICSL23 アドレス:0000B7H 初期値:00000000B 割込み要求フラグビット(インプットキャプチャ3) 読出し 書込み 0 有効エッジが検出されない このビットはクリアされる 1 有効エッジが検出される このビットは影響を受けない 第 11 章 多機能タイマ 表 11.4-8 インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 下位バイト (ICSL23) ビット名 機能 • このビットは , インプットキャプチャ3 の割込み要求フラグとして使 用します。 ビット 7 ICP3: 割込み要求 フラグビット ( インプット キャプチャ 3) • このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定されます。 • 割込み許可ビット (ICE3: ビット 5) が設定されている間に有効エッジ が検出されると , 直ちに割込みを生成することができます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 • このビットは , インプットキャプチャ2 の割込み要求フラグとして使 用します。 ビット 6 ICP2: 割込み要求 フラグビット ( インプット キャプチャ 2) • このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定されます。 • 割込み許可ビット (ICE2: ビット 4) が設定されている間に有効エッジ が検出されると , 直ちに割込みを生成することができます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ビット 5 ICE3: • このビットは , インプットキャプチャ3 のインプットキャプチャ割込 割込み要求許可 み要求を許可するために使用します。 ビット • これらのビットに "1" が設定されている間に割込みフラグ (ICP3: ビッ ( インプット ト7) が設定されると, インプットキャプチャ3割込みが生成されます。 キャプチャ 3) ビット 4 ICE2: • このビットは , インプットキャプチャ2 のインプットキャプチャ割込 割込み要求許可 み要求を許可するために使用します。 ビット • これらのビットに "1" が設定されている間に割込みフラグ (ICP2: ビッ ( インプット ト6) が設定されると, インプットキャプチャ2割込みが生成されます。 キャプチャ 2) • これらのビットは , インプットキャプチャ3 の外部入力の有効エッジ ビット 3 ビット 2 EG31, EG30: エッジ選択 ビット ( インプット キャプチャ 3) EG21, EG20: エッジ選択 ビット ( インプット キャプチャ 2) • これらのビットは , インプットキャプチャ2 の外部入力の有効エッジ ビット 1 ビット 0 極性を指定するために使用します。 • これらのビットは , インプットキャプチャ3 の動作を有効にするため にも使用します。 極性を指定するために使用します。 • これらのビットは , インプットキャプチャ2 の動作を有効にするため にも使用します。 243 第 11 章 多機能タイマ ■ PPG 出力制御レジスタ上位バイト (PICSH01) PPG出力制御 レジスタ(上位) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 PGEN5 PGEN4 PGEN3 PGEN2 PGEN1 PGEN0 - - W W W W W W - - PPG出力許可ビット PGEN0 0 RTO0へのPPG0出力を禁止する 1 RTO0へのPPG0出力を許可する PPG出力許可ビット PGEN1 0 RTO1へのPPG0出力を禁止する 1 RTO1へのPPG0出力を許可する PPG出力許可ビット PGEN2 0 RTO2へのPPG0出力を禁止する 1 RTO2へのPPG0出力を許可する PPG出力許可ビット PGEN3 0 RTO3へのPPG0出力を禁止する 1 RTO3へのPPG0出力を許可する PPG出力許可ビット PGEN4 0 RTO4へのPPG0出力を禁止する 1 RTO4へのPPG0出力を許可する PPG出力許可ビット PGEN5 0 PICSH01 アドレス:0000B4H 初期値:000000--B RTO5へのPPG0出力を禁止する 1 RTO5へのPPG0出力を許可する W:ライトオンリ :初期値 (注意事項) 本レジスタは、ライトのみ可能です。リードは禁止です。 表 11.4-9 PPG 出力制御レジスタ上位バイト (PICSH01) ビット名 ビット 15 ビット 14 ビット 13 ビット 12 ビット 11 ビット 10 244 機能 • これらのビットは , RTO0 ∼ RTO5 への PPG0 出力を選択するために PGEN5 ∼ PGEN0: PPG 出力許可 ビット 使用します。 • 書込みのみ可能です。読出しは禁止です。 第 11 章 多機能タイマ ■ PPG 出力制御レジスタ下位バイト (PICSL01) PPG出力制御レジスタ(下位) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 R/W R/W R/W R/W R/W R/W R/W R/W EG01 EG00 0 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される EG11 EG10 0 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される ICE0 エッジ選択ビット(インプットキャプチャ0) エッジ選択ビット(インプットキャプチャ1) 割込み要求許可ビット(インプットキャプチャ0) 0 割込み要求を禁止する 1 割込み要求を許可する ICE1 割込み要求許可ビット(インプットキャプチャ1) 0 割込み要求を禁止する 1 割込み要求を許可する ICP0 割込み要求フラグビット(インプットキャプチャ0) 読出し 書込み 0 有効エッジが検出されない このビットはクリアされる 1 有効エッジが検出される このビットは影響を受けない ICP1 R/W:リード/ライト可能 :初期値 PICSL01 アドレス:0000B5H 初期値:00000000B 割込み要求フラグビット(インプットキャプチャ1) 読出し 書込み 0 有効エッジが検出されない このビットはクリアされる 1 有効エッジが検出される このビットは影響を受けない 245 第 11 章 多機能タイマ 表 11.4-10 PPG 出力制御レジスタ下位バイト (PICSL01) ビット名 機能 • このビットは , インプットキャプチャ1 の割込み要求フラグとして使 用します。 ビット 7 ICP1: 割込み要求 フラグビット ( インプット キャプチャ 1) • このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定されます。 • 割込み許可ビット (ICE1: ビット 5) が設定されている間に有効エッジ が検出されると , 直ちに割込みが生成されます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 • このビットは , インプットキャプチャ0 の割込み要求フラグとして使 用します。 ビット 6 ICP0: 割込み要求 フラグビット ( インプット キャプチャ 0) • このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定されます。 • 割込み許可ビット (ICE0: ビット 4) が設定されている間に有効エッジ が検出されると , 直ちに割込みが生成されます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ビット 5 ICE1: • このビットは , インプットキャプチャ1 のインプットキャプチャ割込 割込み要求許可 み要求を許可するために使用します。 ビット • このビットに "1" が設定されている間に割込みフラグ (ICP1: ビット ( インプット 7) が設定されると , インプットキャプチャ 1 割込みが生成されます。 キャプチャ 1) ビット 4 ICE0: • このビットは , インプットキャプチャ0 のインプットキャプチャ割込 割込み要求許可 み要求を許可するために使用します。 ビット • このビットに "1" が設定されている間に割込みフラグ (ICP0: ビット ( インプット 6) が設定されると , インプットキャプチャ 0 割込みが生成されます。 キャプチャ 0) • これらのビットは , インプットキャプチャ1 の外部入力の有効エッジ ビット 3 ビット 2 EG11, EG10: エッジ選択 ビット ( インプット キャプチャ 1) EG01, EG00: エッジ選択 ビット ( インプット キャプチャ 0) • これらのビットは , インプットキャプチャ0 の外部入力の有効エッジ ビット 1 ビット 0 246 極性を指定するために使用します。 • これらのビットは , インプットキャプチャ1 の動作を有効にするため にも使用します。 極性を指定するために使用します。 • これらのビットは , インプットキャプチャ0 の動作を有効にするため にも使用します。 第 11 章 多機能タイマ 16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) 11.4.10 16 ビットデッドタイマレジスタは , 16 ビットデッドタイマのコンペア値を保持しま す。 ■ 16 ビットデッドタイマレジスタ (TMRRH: TMRRH0 ∼ TMRRH2, TMRRL:TMRRL0 ∼ TMRRL2) 16 ビットデッドタイマレジスタ ( 上位 ) TMRRH0,TMRRH1,TMRRH2 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 アドレス : 0000BCH 0000BEH 0000C0H TR15 TR14 TR13 TR12 TR11 TR10 TR09 TR08 R/W R/W R/W R/W R/W R/W R/W R/W (X) (X) (X) (X) (X) (X) (X) (X) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TR07 TR06 TR05 TR04 TR03 TR02 TR01 TR00 R/W R/W R/W R/W R/W R/W R/W R/W (X) (X) (X) (X) (X) (X) (X) (X) リード / ライト→ 初期値→ 16 ビットデッドタイマレジスタ ( 下位 ) TMRRL0,TMRRL1,TMRRL2 リード / ライト→ 初期値→ これらのレジスタは , 16 ビットデッドタイマの比較値を格納するために使用します。 これらのレジスタ値は , 16 ビットデッドタイマが動作を開始するとリロードされます。 タイマ動作中にこれらのレジスタに値が再書込みされると , 新たに書き込まれた値は 次回のタイマ開始 / 動作時に有効になります。 このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご 使用ください。 デッドタイムタイマモード時は , これらのレジスタはノンオーバラップ時間を設定す るために使用します。 ノンオーバラップ時間 = ( 設定値 ) ×選択されたクロック タイマモード時は , これらのレジスタは PPG0 タイマ動作の GATE 時間を設定するため に使用します。 GATE 時間 = ( 設定値 ) ×選択されたクロック <注意事項> デッドタイムタイマモード時およびタイマモード時は , これらのレジスタに "0000H" を設 定することはできません。 247 第 11 章 多機能タイマ 11.4.11 16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2) 16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2) は , 波形ジェネレータの動 作モード , 割込み要求許可 , 割込み要求フラグ , GATE 信号許可および出力レベル極 性を制御するために使用します。 ■ 16 ビットデッドタイマ制御レジスタ (DTCR0) 16ビットデッドタイマ制御レジスタ Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 DMOD0 GTEN1 GTEN0 TMIF0 TMIE0 TMD2 TMD1 TMD0 R/W R/W R/W R/W R/W R/W R/W R/W TMD1 TMD0 0 0 0 波形ジェネレータが停止する 0 0 1 RT信号が"H"の間にPPG0タイマがパルスを出力する 各RT信号の立上りエッジがトリガとなり16ビット デッドタイマが起動する。PPG0タイマは16ビット デッドタイマが停止するまでパルスを出力する (タイマモード) 0 1 0 1 0 0 1 1 1 TMIE0 0 1 TMIF0 0 1 動作モードビット RT信号でノンオーバラップ信号を生成する (デッドタイムタイマモード) PPG0タイマでノンオーバラップ信号を生成する (デッドタイムタイマモード) 禁止 割込み要求許可ビット,ソフトウェアトリガビット 16ビットデッドタイマでアンダフローが発生されても割込みを 生成しない。 16ビットデッドタイマでアンダフローが発生されると割込みを 生成する。 割込み要求フラグビット 読出し 書込み カウンタのアンダフローが 検出されない カウンタのアンダフローが 検出される このビットはクリアされる このビットは影響を受けない GATE信号制御ビット0 GTEN0 0 GATE信号は、RT0で制御されない(非同期モード) 1 GATE信号は、RT0で制御される(同期モード) GATE信号制御ビット1 GTEN1 0 GATE信号は、RT1で制御されない(非同期モード) 1 GATE信号は、RT1で制御される(同期モード) 出力極性制御ビット DMOD0 248 DTCR0 アドレス:0000C4H 初期値:00000000B TMD2 その他 R/W:リード/ライト可能 :初期値 Bit8 0 通常極性出力 1 反転極性出力 第 11 章 多機能タイマ 表 11.4-11 16 ビットデッドタイマ制御レジスタ (DTCR0) (1 / 2) ビット名 機能 • このビットは , デッドタイムタイマモードにおいて U/V/W の出力を 設定するために使用します。 DMOD0: ビット 15 出力極性制御 ビット GTEN1: ビット 14 GATE 信号制御 ビット 1 GTEN0: ビット 13 GATE 信号制御 ビット 0 • このビットを設定すると , U/V/W の出力極性は反転します。 ( 注意事項 ) このビットは , デッドタイムタイマモードが選択されていない場合 (TMD2: ビット 10=0) は意味がありません。 このビットは , RT1 で PPG0 タイマの GATE 信号出力を制御するため に使用します。 このビットは , RT0 で PPG0 タイマの GATE 信号出力を制御するため に使用します。 • このビットは , 16 ビットデッドタイマの割込み要求フラグとして使 用します。 • このビットは , 16 ビットデッドタイマでアンダフローが発生すると "1" が設定されます。 • このビットに "0" を書き込むと , このビットはクリアされます。"1" TMIF0: ビット 12 割込み要求 フラグビット を書き込んでも , このビットは影響されません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ( 注意事項 ) このビットは , TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "000B" また は "001B" の場合のみ機能し , ほかの値の場合は必ず "0" になります。 ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット デッドタイマ 0 でアンダフローが発生する ) が同時に発生した場合 は , ソフトウェアクリアがハードウェアセットよりも優先され , この ビットはクリアされます。 • このビットは , 16 ビットデッドタイマのソフトウェアトリガビット および割込み許可ビットとして使用します。 • TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "000B" または "001B" の場 合 , このビットは 16 ビットデッドタイマのソフトウェアトリガとし TMIE0: 割込み要求許可 ビット 11 ビット , ソフト ウェアトリガ ビット て使用されます。このビットを "0" から "1" へ変更すると , 16 ビッ トデッドタイマのトリガとなり , 値がリロードされダウンカウント が開始します。 • このビットが "1" であり , 割込み要求フラグビット (TMIF0: ビット 12) が "1" の場合 , 割込み要求が CPU へ送られます。 ( 注意事項 ) 16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書き込む前に必ず "0" を書き込んでください。 249 第 11 章 多機能タイマ 表 11.4-11 16 ビットデッドタイマ制御レジスタ (DTCR0) (2 / 2) ビット名 機能 • これらのビットは , 波形ジェネレータの動作モードを選択するため に使用します。 • TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "000B" の場合 , アウトプッ トコンペアの RT0 と RT1 の信号は , RTO0 と RTO1 のそれぞれから 出力されます。また , 16 ビットデッドタイマはリロードタイマとし ても使用することができます。 • TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "001B" の場合 , アウトプッ トコンペアの RT0 と RT1 の信号は , PPG0 出力が禁止 (PPG 出力制 ビット 10 TMD2 ∼ TMD0: ビット 9 動作モード ビット 8 ビット 御 / インプットキャプチャ状態制御レジスタ上位 (PICSH01) の PGEN0: ビット 10=0, PGEN1: ビット 11=0) になると , RTO0 と RTO1 のそれぞれから出力されます。また , 16 ビットデッドタイマはリ ロードタイマとしても使用することができます。 ( 注意事項 ) デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず RT1 に対して 2 チャネルモード ( コンペア制御レジスタ上位 (OCSH1) の CMOD: ビット 12=1) を選択してください。 TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "111B" の場合 , RTO0 の出 力と RTO1 の出力は , PPG 出力制御 / インプットキャプチャ状態制 御レジスタ上位 (PICSH01) の PGEN0: ビット 10=0, PGEN1: ビット 11=0 の設定に依存しません。 250 第 11 章 多機能タイマ ■ 16 ビットデッドタイマ制御レジスタ (DTCR1) 16ビットデッドタイマ制御レジスタ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 DMOD1 GTEN3 GTEN2 TMIF1 TMIE1 TMD5 TMD4 TMD3 R/W R/W R/W R/W R/W R/W R/W R/W TMD5 TMD4 TMD3 0 0 0 波形ジェネレータが停止する 0 0 1 RT信号が"H"の間にPPG0タイマがパルスを出力する 0 1 0 1 0 0 1 1 1 動作モードビット 各RT信号の立上りエッジがトリガとなり 16ビットデッドタイマが起動する。 PPG0タイマは16ビットデッドタイマが 停止するまでパルスを出力する(タイマモード) RT信号でノンオーバラップ信号を生成する (デッドタイムタイマモード) PPG0タイマでノンオーバラップ信号を生成する (デッドタイムタイマモード) その他 TMIE1 0 1 TMIF1 0 1 禁止 割込み要求許可ビット,ソフトウェアトリガビット 16ビットデッドタイマでアンダフローが発生されても割込みを 生成しない 16ビットデッドタイマでアンダフローが発生されると割込みを 生成する 割込み要求フラグビット 読出し 書込み カウンタのアンダフローが 検出されない カウンタのアンダフローが 検出される このビットはクリアされる このビットは影響を受けない GATE信号制御ビット2 GTEN2 0 GATE信号はRT2で制御されない(非同期モード) 1 GATE信号はRT2で制御される(同期モード) GATE信号制御ビット3 GTEN3 0 GATE信号はRT3で制御されない(非同期モード) 1 GATE信号はRT3で制御される(同期モード) 出力極性制御ビット DMOD1 R/W:リード/ライト可能 :初期値 DTCR1 アドレス:0000C5H 初期値:00000000B 0 通常極性出力 1 反転極性出力 251 第 11 章 多機能タイマ 表 11.4-12 16 ビットデッドタイマ制御レジスタ (DTCR1) (1 / 2) ビット名 機能 • このビットは , デッドタイムタイマモードにおいて U/V/W の出力を 設定するために使用します。 ビット 7 DMOD1: 出力極性制御 ビット • このビットを設定すると , U/V/W の出力極性は反転します。 ( 注意事項 ) このビットは , デッドタイムタイマモードが選択されていない場合 (TMD5: ビット 2=0) は意味がありません。 このビットは , RT3 で PPG0 タイマの GATE 信号出力を制御するために ビット 6 GTEN3: GATE 信号制御 ビット 3 ビット 5 GTEN2: GATE 信号制御 ビット 2 使用します。 このビットは , RT2 で PPG0 タイマの GATE 信号出力を制御するために 使用します。 • このビットは , 16 ビットデッドタイマの割込み要求フラグとして使 用します。 • このビットは , 16 ビットデッドタイマでアンダフローが発生すると "1" が設定されます。 • このビットに "0" を書き込むと , このビットはクリアされます。"1" ビット 4 TMIF1: 割込み要求 フラグビット を書き込んでも , このビットは影響されません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ( 注意事項 ) このビットは , (TMD5 ∼ TMD3: ビット 2 ∼ビット 0) が "000B" また は "001B" の場合のみ機能し , ほかの値の場合は必ず "0" になります。 ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット デッドタイマ 1 でアンダフローが発生する ) が同時に発生した場合は , ソフトウェアクリアがハードウェアセットよりも優先され , このビッ トはクリアされます。 • このビットは , 16 ビットデッドタイマのソフトウェアトリガビット および割込み許可ビットとして使用します。 • TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "000B" または "001B" の場合 , このビットは 16 ビットデッドタイマのソフトウェアトリガとして使 ビット 3 TMIE1: 割込み要求許可 ビット , ソフトウェア トリガビット • 用されます。このビットを "0" から "1" へ変更すると , 16 ビットデッ ドタイマのトリガとなり , 値がリロードされダウンカウントが開始 します。 このビットが "1" であり , 割込み要求フラグビット (TMIF1: ビット 4) が "1" の場合 , 割込み要求が CPU へ送られます。 ( 注意事項 ) 16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書き込む前に必ず "0" を書き込んでください。 252 第 11 章 多機能タイマ 表 11.4-12 16 ビットデッドタイマ制御レジスタ (DTCR1) (2 / 2) ビット名 機能 • これらのビットは , 波形ジェネレータの動作モードを選択するため に使用します。 • TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "000B" の場合 , アウトプット コンペアの RT2 と RT3 の信号は , RTO2 と RTO3 のそれぞれから出 力されます。また , 16 ビットデッドタイマはリロードタイマとして も使用することができます。 • TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "001B" の場合 , アウトプット コンペアの RT2 と RT3 の信号は , PPG0 出力が禁止 (PPG 出力制御 / ビット 2 ビット 1 ビット 0 TMD5 ∼ TMD3: 動作モード ビット インプットキャプチャ状態制御レジスタ上位 (PICSH01) の PGEN2: ビット 12=0, PGEN3: ビット 13=0) になると , RTO2 と RTO3 のそれぞ れから出力されます。また , 16 ビットデッドタイマはリロードタイ マとしても使用することができます。 ( 注意事項 ) デッドタイムタイマモードで波形ジェネレータを動作させるには , 必 ず RT3 に対して 2 チャネルモード ( コンペア制御レジスタ上位 (OCSH3) の CMOD: ビット 12=1) を選択してください。 TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "111B" の場合 , RTO2 の出力 と RTO3 の出力は , PPG 出力制御 / インプットキャプチャ状態制御レ ジスタ上位 (PICSH01) の PGEN2: ビット 12=0, PGEN3: ビット 13=0 の 設定に依存しません。 253 第 11 章 多機能タイマ ■ 16 ビットデッドタイマ制御レジスタ (DTCR2) 16ビットデッドタイマ制御レジスタ Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 DMOD2 GTEN5 GTEN4 TMIF2 TMIE2 TMD8 TMD7 TMD6 R/W R/W R/W R/W R/W R/W R/W R/W TMD8 TMD7 TMD6 0 0 0 波形ジェネレータが停止する 0 0 1 RT信号が"H"の間にPPG0タイマがパルスを出力する 各RT信号の立上りエッジがトリガとなり 16ビットデッドタイマが起動する。 PPG0タイマは16ビットデッドタイマが 停止するまでパルスを出力する(タイマモード) 0 1 0 1 0 0 1 1 1 動作モードビット RT信号でノンオーバラップ信号を生成する (デッドタイムタイマモード) PPG0タイマでノンオーバラップ信号を生成する (デッドタイムタイマモード) その他 TMIE2 0 1 TMIF2 0 1 禁止 割込み要求許可ビット,ソフトウェアトリガビット 16ビットデッドタイマでアンダフローが発生されても割込みを 生成しない 16ビットデッドタイマでアンダフローが発生されると割込みを 生成する 割込み要求フラグビット 読出し このビットはクリアされる このビットは影響を受けない GATE信号制御ビット4 0 GATE信号はRT4で制御されない(非同期モード) 1 GATE信号はRT4で制御される(同期モード) GATE信号制御ビット5 GTEN5 0 GATE信号はRT5で制御されない(非同期モード) 1 GATE信号はRT5で制御される(同期モード) 出力極性制御ビット DMOD2 254 書込み カウンタのアンダフローが 検出されない カウンタのアンダフローが 検出される GTEN4 R/W:リード/ライト可能 :初期値 DTCR2 アドレス:0000C6H 初期値:00000000B 0 通常極性出力 1 反転極性出力 第 11 章 多機能タイマ 表 11.4-13 16 ビットデッドタイマ制御レジスタ (DTCR2) (1 / 2) ビット名 機能 • このビットは , デッドタイムタイマモードにおいて U/V/W の出力を 設定するために使用します。 DMOD2: ビット 15 出力極性制御 ビット • このビットを設定すると , U/V/W の出力極性は反転します。 ( 注意事項 ) このビットは , デッドタイムタイマモードが選択されていない場合 (TMD8: ビット 10=0) は意味がありません。 このビットは , RT5 で PPG0 タイマの GATE 信号出力を制御するために GTEN5: ビット 14 GATE 信号制御 ビット 5 使用します。 このビットは , RT4 で PPG0 タイマの GATE 信号出力を制御するために GTEN4: ビット 13 GATE 信号制御 ビット 4 使用します。 • このビットは , 16 ビットデッドタイマの割込み要求フラグとして使 用します。 • このビットは , 16 ビットデッドタイマでアンダフローが発生すると "1" が設定されます。 • このビットに "0" を書き込むと , このビットはクリアされます。"1" TMIF2: ビット 12 割込み要求 フラグビット を書き込んでも , このビットは影響されません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ( 注意事項 ) このビットは , TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "000B" または "001B" の場合のみ機能し , ほかの値の場合は必ず "0" になります。 ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット デッドタイマ 2 でアンダフローが発生する ) が同時に発生した場合は , ソフトウェアクリアがハードウェアセットよりも優先され , このビッ トはクリアされます。 • このビットは , 16 ビットデッドタイマのソフトウェアトリガビット および割込み許可ビットとして使用します。 • TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "000B" または "001B" の場合 TMIE2: 割込み要求許可 ビット , ビット 11 ソフト ウェアトリガ • ビット , このビットは 16 ビットデッドタイマのソフトウェアトリガとして 使用されます。このビットを "0" から "1" へ変更すると , 16 ビット デッドタイマのトリガとなり , 値がリロードされ , ダウンカウントが 開始します。 このビットが"1"であり, 割込み要求フラグビット (TMIF2: ビット12) が "1" の場合 , 割込み要求が CPU へ送られます。 ( 注意事項 ) 16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書き込む前に必ず "0" を書き込んでください。 255 第 11 章 多機能タイマ 表 11.4-13 16 ビットデッドタイマ制御レジスタ (DTCR2) (2 / 2) ビット名 機能 • これらのビットは , 波形ジェネレータの動作モードを選択するため に使用します。 • TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "000B" の場合 , アウトプッ トコンペアの RT4 と RT5 の信号は , RTO4 と RTO5 のそれぞれから 出力されます。また , 16 ビットデッドタイマはリロードタイマとし ても使用することができます。 • TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "001B" の場合 , アウトプッ トコンペアの RT4 と RT5 の信号は , PPG0 出力が禁止 (PPG 出力制御 ビット 10 TMD8 ∼ TMD6: ビット 9 動作モード ビット 8 ビット / インプットキャプチャ状態制御レジスタ上位 (PICSH01) の PGEN4: ビット 14=0, PGEN5: ビット 15=0) になると , RTO4 と RTO5 のそれぞ れから出力されます。また , 16 ビットデッドタイマはリロードタイ マとしても使用することができます。 ( 注意事項 ) デッドタイムタイマモードで波形ジェネレータを動作させるには , 必 ず RT5 に対して 2 チャネルモード ( コンペア制御レジスタ上位 (OCSH5) の CMOD: ビット 12=1) を選択してください。 TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "111B" の場合 , RTO4 の出力 と RTO5 の出力は , PPG 出力制御 / インプットキャプチャ状態制御レ ジスタ上位 (PICSH01) の PGEN4: ビット 14=0, PGEN5: ビット 15=0 の 設定に依存しません。 256 第 11 章 多機能タイマ 11.4.12 波形制御レジスタ (SIGCR1, SIGCR2) 波形制御レジスタは , 動作クロック周波数 , ノイズキャンセル機能有効 , DTTI 入力 有効および DTTI 割込みを制御するために使用します。 ■ 波形制御レジスタ 1 (SIGCR1) 波形制御レジスタ1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 DTIE DTIF NRSL DCK2 DCK1 DCK0 NWS1 NWS0 R/W R/W R/W R/W R/W R/W R/W R/W NWS1 NWS0 0 0 4サイクルノイズをキャンセル DTTIノイズ幅選択ビット 0 1 8サイクルノイズをキャンセル 1 0 16サイクルノイズをキャンセル 1 1 32サイクルノイズをキャンセル DCK2 DCK1 DCK0 0 0 0 φ (62.5 ns, φ=16 MHz) 0 0 1 φ/2 (125 ns, φ=16 MHz) 0 1 0 φ/4 (250 ns, φ=16 MHz) 0 1 1 φ/8 (500 ns, φ=16 MHz) 1 0 0 φ/16 (1 ms, φ=16 MHz) 1 0 1 φ/32 (2 ms, φ=16 MHz) 1 1 0 φ/64 (4 ms, φ=16 MHz) 1 1 1 禁止 NRSL 動作クロック選択ビット ノイズキャンセル機能有効ビット 0 DTTI入力のノイズキャンセル回路が無効 1 DTTI入力のノイズキャンセル回路が有効 DTIF DTTI割込みフラグビット 読出し 書込み 0 割込み要求なし このビットはクリアされる 1 割込み要求あり このビットは影響を受けない DTIE R/W:リード/ライト可能 :初期値 SIGCR1 アドレス:0000C9H 初期値:00000000B DTTI入力有効ビット 0 DTTI入力を無効にする 1 DTTI入力を有効にする 257 第 11 章 多機能タイマ 表 11.4-14 波形制御レジスタ 1 (SIGCR1) ビット名 ビット 7 DTIE: DTTI 入力有効 ビット 機能 このビットは , RTO0 ∼ RTO5 端子の出力レベル制御用 DTTI 信号を有 効にするために使用します。 • このビットは , DTTI の割込みフラグです。 • DTTI 入力が有効になり (DTIE: ビット 7=1) , DTTI の "L" レベルが検 出されると, このビットが設定され, 割込み要求がCPUへ送られます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 ビット 6 DTIF: DTTI 割込み フラグビット • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時では , 必ず "1" が読み出されます。 ( 注意事項 ) ノイズキャンセル機能が有効になった場合 (NRSL: ビット 5=1) , ノイ ズパルス幅が渡されると , このビットには "1" が設定されます。 ソフトウェアクリア ("0" 書込み ) とハードウェアセット (DTTI の "L" レベル検出 ) が同時に発生した場合は , ソフトウェアクリアがハード ウェアセットよりも優先され , このビットはクリアされます。 • このビットは , ノイズキャンセル機能を有効にするために使用します。 • ノイズキャンセル回路は , カウンタでオーバフローが発生するまで "L" レベルが保持されると , DTTI 入力信号を受け取ります。カウンタ ビット 5 は , "L" レベル入力で操作される n ビットカウンタです。n は , NWS1, NRSL: NWS0 ビット : 1, 0 の設定に基づいて 2, 3, 4 または 5 のいずれかの値 ノイズ になります。 キャンセル 機能有効ビット ( 注意事項 ) ノイズパルス幅をキャンセルするには , 約 2n マシンサイクルが必要 になります。 ノイズキャンセル回路を選択すると , 内部クロックが停止するモード ( 停止モードなど ) 時は入力が無効になります。 ビット 4 ビット 3 ビット 2 DCK2 ∼ DCK0: これらのビットは , 16 ビットデッドタイマの動作クロックを選択するた 動作クロック めに使用します。 選択ビット ビット 1 ビット 0 NWS1, NWS0: DTTI ノイズ幅 選択ビット 258 これらのビットは , 除去する DTTI 端子ノイズパルス幅を選択するため に使用します。 第 11 章 多機能タイマ ■ 波形制御レジスタ 2 (SIGCR2) 波形制御レジスタ2 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 - - - - - - - DTTI - - - - - - - R/W DTTI R/W:リード/ライト可能 :初期値 - :未使用ビット SIGCR2 アドレス:0000CBH 初期値:XXXXXXX1B ソフトDTTI設定ビット 1 DTTIクリア 0 DTTIセット 表 11.4-15 波形制御レジスタ 2 (SIGCR2) ビット名 ビット 7 ∼ ビット 1 未使用ビット ビット 0 DTTI: ソフト DTTI 設定ビット 機能 • 読出し値は不定です。 • このビットへの書込みは動作に影響しません。 • "0" を書き込むと , DTTI のセットとなります。 • "1" を書き込むとクリアされます。 ( 注意事項 ) 外部入力 DTTI と OR をとっているため , DTTI は外部入 力レベルによります。 259 第 11 章 多機能タイマ 11.4.13 A/D 起動コンペアレジスタ (ADCOMP0, ADCOMP1, ADCOMP2, ADCOMPC) コンペアレジスタ 0, 1, 2 は , フリーランタイマの値と一致したときに A/D コンバー タ 0, 1, 2 を起動させます。コンペアレジスタは , コンペア値を書き込むために使用 します。制御レジスタは , コンペア一致時の A/D コンバータへの起動要求の許可ま たは禁止を行います。 ■ コンペアレジスタ 0, 1, 2 (ADCOMP0, ADCOMP1, ADCOMP2) ADCOMP0/ ADCOMP1/ADCOMP2 コンペアレジスタレジスタ 0,1,2( 上位 ) ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 ビット 1 ビット 0 CMP15 CMP14 CMP13 CMP12 CMP11 CMP10 CMP09 CMP08 R/W R/W R/W R/W R/W R/W R/W R/W アドレス : ch.0: 0000CCH ch.1: 0000CEH ch.2: 0000D0H 初期値:00000000B コンペアレジスタレジスタ 0,1,2( 下位 ) ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 ビット 1 ビット 0 CMP07 CMP06 CMP05 CMP04 CMP03 CMP02 CMP01 CMP00 R/W R/W R/W R/W R/W R/W R/W R/W 初期値:00000000B R/W:リード / ライト可能 コンペアレジスタは , 16 ビットフリーランタイマのカウント値と比較するためのデー タを書き込むレジスタで , フリーランタイマとコンペア値が一致したときに , A/D コン バータを起動させることができます。 コンペアレジスタに書き込まれた値は , すぐに比較動作されます。 コンペアレジスタへの書込みは , ワードもしくはハーフワード命令で行ってください。 260 第 11 章 多機能タイマ ■ 制御レジスタ (ADCOMPC) 制御レジスタ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 - - - - - CE2 CE1 CE0 - - - - - R/W R/W R/W CE0 A/D0コンペア起動許可ビット 0 コンペア禁止 1 コンペア許可 CE1 A/D1コンペア起動許可ビット 0 コンペア禁止 1 コンペア許可 CE2 R/W:リード/ライト可能 :初期値 - :未使用ビット ADCOMPC アドレス:0000D3H 初期値:XXXXX000B A/D2コンペア起動許可ビット 0 コンペア禁止 1 コンペア許可 表 11.4-16 制御レジスタ (ADCOMPC) ビット名 機能 ビット 7 ∼ ビット 3 未使用ビット • 読出し値は不定です。 ビット 2 • このビットに "1" を書き込むと , コンペア一致時に A/D ユニット 2 に CE2: 対して起動要求を出力します。 A/D2 コンペア 起動許可ビット • このビットに "0" を書き込むと , コンペア禁止となります。 ビット 1VVVV • このビットに "1" を書き込むと , コンペア一致時に A/D ユニット 1 に CEI: 対して起動要求を出力します。 A/D1 コンペア 起動許可ビット • このビットに "0" を書き込むと , コンペア禁止となります。 ビット 0 • このビットに "1" を書き込むと , コンペア一致時に A/D ユニット 0 に CE0: 対して起動要求を出力します。 A/D0 コンペア 起動許可ビット • このビットに "0" を書き込むと , コンペア禁止となります。 • このビットへの書込みは動作に影響しません。 261 第 11 章 多機能タイマ 11.5 多機能タイマ割込み 多機能タイマは , 16 ビットフリーランタイマ割込み , 16 ビットアウトプットコンペ ア割込み , 16 ビットインプットキャプチャ割込みおよび波形ジェネレータ割込みを 生成することができます。 ■ 16 ビットフリーランタイマ割込み 16 ビットフリーランタイマの割込み制御ビットと割込み要因を表 11.5-1 に示します。 表 11.5-1 16 ビットフリーランタイマの割込み制御ビットと割込み要因 16 ビットフリーランタイマ コンペアクリア ゼロ検出 割込み要求フラグビット タイマ状態レジスタ上位 (TCCSH) の ICLR: ビット 9 タイマ状態レジスタ上位 (TCCSH) の IRQZF: ビット 14 割込み要求許可ビット タイマ状態レジスタ上位 (TCCSH) の ICRE: ビット 8 タイマ状態レジスタ上位 (TCCSH) の IRQZE: ビット 13 割込み要因 16 ビットフリーランタイマ値が コンペアクリアレジスタ (CPCLRH, CPCLRL) と一致する 16 ビットフリーランタイマ値が "0" になる 16 ビットフリーランタイマの値がコンペアクリアレジスタ (CPCLRH, CPCLRL) と一 致すると , タイマ状態レジスタ (TCCSH) の ICLR: ビット 9 に "1" が設定されます。こ の状態において割込み要求が許可 (TCCSH レジスタの ICRE: ビット 8=1) になると , 割 込み要求が割込みコントローラへ出力されます。 タイマ値が "0000H" になると , タイマ状態制御レジスタ (TCCSH) の IRQZF: ビット 14 に "1" が設定されます。この状態において割込み要求が許可 (TCCSH レジスタの IRQZE: ビット 13=1) になると , 割込み要求が割込みコントローラへ出力されます。 262 第 11 章 多機能タイマ ■ 16 ビットアウトプットコンペア割込み 16 ビットアウトプットコンペアの割込み制御ビットと割込み要因を表 11.5-2 に示しま す。 表 11.5-2 16 ビットアウトプットコンペア 0 ∼ 5 の割込み制御ビットと割込み要因 16 ビットアウトプット コンペア 0, 1 16 ビットアウトプット コンペア 2, 3 16 ビットアウトプット コンペア 4, 5 割込み要求 フラグビット コンペア制御レジスタ下 コンペア制御レジスタ下 コンペア制御レジスタ下 位 (OCSL0) の IOP1, IOP0 位 (OCSL2) の IOP1, IOP0 位 (OCSL4) の IOP1, IOP0 ( ビット 7, ビット 6) ( ビット 7, ビット 6) ( ビット 7, ビット 6) 割込み要求許可 ビット コンペア制御レジスタ下 コンペア制御レジスタ下 コンペア制御レジスタ下 位 (OCSL0) の IOE1, IOE 位 (OCSL2) のIOE1, IOE0 位 (OCSL4) のIOE1, IOE0 0 ( ビット 5, ビット 4) ( ビット 5, ビット 4) ( ビット 5, ビット 4) 割込み要因 16 ビットフリーランタイ マ値がアウトプットコン ペアレジスタ (OCCPH0, OCCPH1, OCCPL0, OCCPL1) と一致する 16 ビットフリーランタイ マ値がアウトプットコン ペアレジスタ (OCCPH2, OCCPH3, OCCPL2, OCCPL3) と一致する 16 ビットフリーランタイ マ値がアウトプットコン ペアレジスタ (OCCPH4, OCCPH5, OCCPL4, OCCPL5) と一致する 16 ビットフリーランタイマ値がアウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5) と一致 する と , コ ンペア 制御 レジ スタ 下位 (OCSL0, OCSL2, OCSL4) の IOP1, IOP0: ビット 7, ビット 6 が "1" に設定されます。この状態において割 込み要求が許可 (OCSL0, OCSL2, OCSL4レジスタのIOE1, IOE0: ビット5, ビット4=11B) になると , 割込み要求が割込みコントローラへ出力されます。 263 第 11 章 多機能タイマ ■ 16 ビットインプットキャプチャ割込み 16 ビットインプットキャプチャの割込み制御ビットと割込み要因を表 11.5-3 に示しま す。 表 11.5-3 16 ビットインプットキャプチャ 0 ∼ 3 の割込み制御ビットと割込み要因 16 ビットインプットキャプチャ 0, 1 16 ビットインプットキャプチャ 2, 3 割込み要求フラグビット インプットキャプチャ状態制御 レジスタ下位 (PICSL01) の ICP1, ICP0 ( ビット 7, ビット 6) インプットキャプチャ状態制御 レジスタ下位 (ICSL23) の ICP3, ICP2 ( ビット 7, ビット 6) 割込み要求許可ビット インプットキャプチャ状態制御 レジスタ下位 (PICSL01) の ICE1, ICE0 ( ビット 5, ビット 4) インプットキャプチャ状態制御 レジスタ下位 (ICSL23) の ICE3, ICE2 ( ビット 5, ビット 4) 割込み要因 有効なエッジが IC0, IC1 端子で検 出される 有効なエッジが IC2, IC3 端子で検 出される 16 ビットインプットキャプチャでは , 有効なエッジが IC0, IC1, IC2, IC3 端子で検出さ れると , インプットキャプチャ状態制御レジスタ (PICSL01, ICSL23) の ICP3, ICP2, ICP1, ICP0: 共にビット 7, ビット 6 に "11B" が設定されます。この状態において割込み 要求が許可 (PICSL01, ICSL23 レジスタの ICE3, ICE2, ICE1, ICE0: 共にビット 5, ビット 4=11B) になると , 割込み要求は割込みコントローラへ出力されます。 264 第 11 章 多機能タイマ ■ 波形ジェネレータ割込み 波形ジェネレータの割込み制御ビットと割込み要因を表 11.5-4 に示します。 表 11.5-4 波形ジェネレータの割込み制御ビットと割込み要因 波形ジェネレータ 16 ビットデッドタイマ 0, 1, 2 DTTI0 割込み要求フラグビット 16 ビットデッドタイマ制御レジス タ上位 , 下位 (DTCR0, DTCR1, DTCR2) の TMIF0 ∼ TMIF2 ( 上位 はビット 12, 下位はビット 4) 波形制御レジスタ 1 (SIGCR1) の DTIF ( ビット 6) 割込み要求許可ビット 16 ビットデッドタイマ制御レジス タ上位 , 下位 (DTCR0, DTCR1, DTCR2) の TMIE0 ∼ TMIE2 ( 上位 はビット 11, 下位はビット 3) 割込み要因 16 ビットデッドタイマ 0, 1, 2 アン ダフロー − DTTI で "L" レベルが検出される 波形ジェネレータでは , 16 ビットデッドタイマのアンダフローが発生し , かつ DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビッ ト 2 ∼ビット 0) が "000B" または "001B" のとき , 16 ビットデッドタイマ制御レジスタ (DTCR0, DTCR1, DTCR2) の TMIF0 ∼ TMIF2 ( 上位ビット 12, 下位ビットは 4) には "1" が設定されます。この状態において割込み要求が許可 (DTCR0, DTCR1, DTCR2, レジス タの TMIE0 ∼ TMIE2 ( 上位はビット 11, 下位はビット 3) =1) になると , 割込み要求は 割込みコントローラへ出力されます。 265 第 11 章 多機能タイマ 11.6 多機能タイマの動作 多機能タイマの動作について説明します。 ■ 多機能タイマの動作 ● 16 ビットフリーランタイマ 16 ビットフリーランタイマはカウント動作を許可すると , タイマデータレジスタ (TCDTH, TCDTL) に設定されている値からカウントアップを開始します。カウント値 は , 16 ビットアウトプットコンペアと 16 ビットインプットキャプチャの基準時間とし て使用されます。 ● 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアは , " 指定されたアウトプットコンペアレジスタに設定 されている値 " と "16 ビットフリーランタイマ値 " の比較に使用します。一致が検出さ れた場合は , 割込みフラグが設定され出力レベルは反転します。 ● 16 ビットインプットキャプチャ 16 ビットインプットキャプチャは , 指定された有効なエッジを検出するために使用し ます。 有効なエッジが検出されると, 割込みフラグが設定され, 16ビットフリーランタイマ値 が取り出され , インプットキャプチャデータレジスタへ格納されます。 ● 波形ジェネレータ 波形ジェネレータは , リアルタイム出力 (RTO0 ∼ RTO5) , 16 ビット PPG タイマ 0, 16 ビットデッドタイマを使用してさまざまな波形 ( デッドタイムを含む ) を生成します。 ● A/D 起動コンペア 16 ビットフリーランタイマの値が指示値となったときに , A/D 起動を行います。 266 第 11 章 多機能タイマ 11.6.1 16 ビットフリーランタイマの動作 16 ビットフリーランタイマは , リセット完了後 , タイマデータレジスタ (TCDTH, TCDTL) に設定されている値からカウントアップを開始します。カウント値は , 16 ビットアウトプットコンペアと 16 ビットインプットキャプチャの基準時間として使 用されます。 ■ タイマクリア 16 ビットフリーランタイマのカウント値は , 下記のいずれかの場合にクリアされます。 • アップカウントモード (TCCSL レジスタの MODE: ビット 5=0) によってコンペア クリアレジスタとの一致が検出された場合 • 動作中に TCCSL レジスタの SCLR: ビット 4 に "1" が書き込まれた場合 • 停止中に TCDTH, TCDTL レジスタに "0000H" が書き込まれた場合 • リセットされた場合 リセットされると , カウンタは直ちにクリアされます。コンペアクリアレジスタとの一 致が発生した場合は , カウンタはカウントタイミングと同期してクリアされます。 図 11.6-1 16 ビットフリーランタイマのクリアタイミング コンペアクリア レジスタ値 N コンペア一致 カウント値 N 0000H ■ タイマモード 16 ビットフリーランタイマでは , 以下のどちらかのモードを選択できます。 • アップカウントモード (TCCSL レジスタの MODE: ビット 5=0) • アップダウンカウントモード (TCCSL レジスタの MODE: ビット 5=1) アップカウントモード時は , カウンタは事前に設定されているタイマデータレジスタ (TCDTH, TCDTL) からカウントを開始し , カウント値がコンペアクリアレジスタ (CPCLRH, CPCLRL) の値と一致するまでカウントアップし , 次にカウンタは "0000H"に クリアされた後 , 次に再びカウントアップします。 アップダウンカウントモード時は , カウンタは事前に設定されているタイマデータレ ジスタ (TCDTH, TCDTL) からカウントを開始し , カウント値がコンペアクリアレジス タ (CPCLRH, CPCLRL) の値と一致するまでカウントアップし , 次にカウントがアップ カウントからダウンカウントに変わり , カウンタ値が "0000H" に達するまでカウントダ ウンした後 , 再びカウントアップします。 モードビット (TCCSL レジスタの MODE: ビット 5) には , タイマが動作中であろうと停 止していようと , いつでも値を書き込むことができます。タイマ動作中にこのビットに 267 第 11 章 多機能タイマ 書き込まれた値はバッファに入れられ , カウントモードはタイマ値が "0000H" になると 変わります。 図 11.6-2 タイマ動作中にタイマモードを変える カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H リセット 時間 タイマ動作開始 アップカウントモードに変わる アップダウンカウントモードに変わる コンペアクリア BFFFH バッファレジスタ TCCSL:MODE ■ コンペアクリアバッファ コンペアクリアレジスタ (CPCLRH, CPCLRL) には , 有効または無効にすることができ るバッファ機能が存在します。バッファ機能が有効 (TCCSL レジスタの BFE: ビット 7=1) の場合は , コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) に書き込ま れたデータは , 16 ビットフリーランタイマ値 "0" が検出されると CPCLRH, CPCLRL レ ジスタに転送されます。バッファ機能が無効 (TCCSL ビットの BFE: ビット 7=0) の場 合は , CPCLRBH, CPCLRBL レジスタは透過であり , データは CPCLRH, CPCLRL レジ スタに直接書き込むことができます。 268 第 11 章 多機能タイマ 図 11.6-3 コンペアクリアバッファが無効 (TCCSL レジスタ BFE: ビット 7=0) 時のアップカウント モードによる動作 カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 タイマ動作開始 コンペアクリア一致 ゼロ検出 リセット コンペアクリア バッファレジスタ コンペアクリア BFFFH 7FFFH FFFFH BFFFH 7FFFH FFFFH レジスタ 図 11.6-4 コンペアクリアバッファが有効 (TCCSL レジスタ BFE: ビット 7=1) 時のアップカウント モードによる動作 カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 タイマ動作開始 コンペアクリア一致 ゼロ検出 リセット コンペアクリア バッファレジスタ コンペアクリア BFFFH FFFFH 7FFFH BFFFH 7FFFH レジスタ FFFFH 図 11.6-5 コンペアクリアバッファが有効 (TCCSL レジスタ BFE: ビット 7=1) 時のアップダウン カウントモードによる動作 カウント値 コンペアクリア一致 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 タイマ動作開始 ゼロ検出 リセット コンペアクリア バッファレジスタ コンペアクリア BFFFH BFFFH 7FFFH FFFFH 7FFFH FFFFH レジスタ 269 第 11 章 多機能タイマ ■ タイマ割込み 16 ビットフリーランタイマでは , 以下の 2 つの割込みを発生できます。 • コンペアクリア割込み • ゼロ検出割込み コンペアクリア割込みは , タイマ値がコンペアクリアレジスタ (CPCLRH, CPCLRL) の 値と一致すると発生されます。 ゼロ検出割込みは , タイマ値が "0000H" に達すると発生されます。 <注意事項> • タイマカウントクロックがマシンサイクル (φ) の場合 ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をしても , ゼロ検出割込みフラグは セットされず , ゼロ検出割込みは発生しません。 • タイマカウントクロックがマシンサイクル (φ) の分周の場合 ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をすると , ゼロ検出割込みフラグは セットされ , 割込み許可の場合 , ゼロ検出割込みが発生します。 図 11.6-6 アップカウントモード (TCCSL レジスタ MODE:ビット 5=0) で生成された割込み N-1 カウント値 N 0 1 コンペアクリア割込み ゼロ検出割込み 図 11.6-7 アップダウンカウントモード (TCCSL レジスタ MODE:ビット 5=1) で生成された割込み N-1 カウント値 N N-1 0 コンペアクリア割込み ゼロ検出割込み ■ 割込みマスク機能 TCCSH レジスタの MSI2 ∼ MSI0: ビット 12 ∼ビット 10 を設定すると , 割込み要求を マスクすることができます。MSI2 ∼ MSI0 ビットは , カウント値が "000B" に達すると 値をリロードする 3 ビットリロードダウンカウンタです。カウント値は , MSI2 ∼ MSI0 ビットに直接書き込むことによってもロードすることができます。マスクカウントは , MSI2 ∼ MSI0 ビットに設定された値です。MSI2 ∼ MSI0 ビットが "000B" になると割 込み要因はマスクされません。 割込み要因は , カウントモード (TCCSL レジスタの MODE: ビット 5) によって異なりま す。アップカウントモード時は , コンペアクリア割込みのみをマスクすることができ , ゼロ検出割込みは "0" が検出されるたびに発生されます。アップダウンカウントモー ド時は , ゼロ検出割込みのみをマスクすることができ , コンペアクリア割込みはコンペ アクリアが検出されるたびに発生されます。 270 第 11 章 多機能タイマ <注意事項> • タイマカウントクロックがマシンサイクル (φ) の場合 ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をしても , ゼロ検出割込みフラグは セットされず , ゼロ検出割込みは発生しません。 • タイマカウントクロックがマシンサイクル (φ) の分周の場合 ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をすると , ゼロ検出割込みフラグは セットされ , 割込み許可の場合 , ゼロ検出割込みが発生します。 図 11.6-8 アップカウントモードでマスクされるコンペアクリア割込み カウント値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H タイマ動作開始 1回目 3回目 2回目 4回目 リセット ゼロ検出 割込み ソフトウェアクリア TCCSH:MSI2~MSI0=000B コンペアクリア TCCSH:MSI2~MSI0=001B 割込み TCCSH:MSI2~MSI0=010B 注意事項:ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。 図 11.6-9 アップダウンカウントモードでマスクされるゼロ検出割込み カウント値 FFFFH 1回目 2回目 3回目 4回目 5回目 6回目 BFFFH 7FFFH 3FFFH 0000H 時間 タイマ動作開始 1回目 2回目 3回目 4回目 5回目 6回目 リセット コンペアクリア 割込み ソフトウェアクリア TCCSH:MSI2~MSI0=000B ゼロ検出 割込み TCCSH:MSI2~MSI0=001B TCCSH:MSI2~MSI0=010B 注意事項:ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。 271 第 11 章 多機能タイマ ■ 選択された外部カウントクロック 16 ビットフリーランタイマは , 入力クロック ( 内部クロックまたは外部クロック ) に基 づいてインクリメントされます。外部クロックが選択されると , 外部クロックモード (TCCSH レジスタの ECKE: ビット 15=1) が選択された後 , 16 ビットフリーランタイマ は , 外部入力の初期値が "1" の場合 , 立上りエッジでカウントアップを開始します。そ の後は両エッジでカウントアップします。外部入力の初期値が "0" の場合 , 立下りエッ ジでカウントアップを開始します。その後は両エッジでカウントアップします。 図 11.6-10 16 ビットフリーランタイマのカウントタイミング 外部クロック入力 TCCSH:ECKEビット カウントクロック N カウント値 N+1 N+2 ■ フリーランタイマによる A/D 起動 16 ビットフリーランタイマのコンペア一致時 , もしくはゼロ検出時に A/D1 および A/D2 の起動が可能です。起動要因は , A/D トリガ制御レジスタ (ADTRGC) の A/D トリガ要 因選択ビット (SEL1, SEL2: ビット 2, ビット 3) で選択することが可能です。 A/D 起動信号は , A/D トリガ制御レジスタ (ADTRGC) の A/D トリガ出力許可 / 禁止ビッ ト (AD1E, AD2E: ビット 0, ビット 1) により , コンペア一致時 , もしくはゼロ検出時で も A/D 起動信号を停止することが可能です。 <注意事項> A/D 起動信号の出力を禁止しているときに , 起動要因のコンペア一致 , もしくはゼロ検出 が出力されている場合 , A/D 起動信号の出力を許可すると , 許可と同時に A/D 起動信号が 出力されます。 272 第 11 章 多機能タイマ 11.6.2 16 ビットアウトプットコンペアの動作 アウトプットコンペアは , " 指定されたコンペアクリアレジスタに設定されている 値 " と "16 ビットフリーランタイマの値 " の比較に使用します。一致が検出された 場合は , 割込みフラグが設定され , 出力レベルが反転します。 フリーランタイマのカウントピークでコンペアレジスタ値が一致したときは , 一致 信号を無視します。 ■ 16 ビットアウトプットコンペアの動作 ( 反転モード , MOD15 ∼ MOD10=0) コンペア動作は , 各チャネル ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の CMOD: ビット 12=0) において実行することができます。 図 11.6-11 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際 の出力波形例 ( フリーランタイマはアップカウントモード ) カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ 0 BFFFH コンペアレジスタ 1 7FFFH RT0 RT1 コンペア0 割込み コンペア1 割込み 273 第 11 章 多機能タイマ 図 11.6-12 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際 の出力波形例 ( フリーランタイマはアップダウンカウントモード ) カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ 0 BFFFH コンペアレジスタ 1 7FFFH RT0 RT1 コンペア0 割込み コンペア1 割込み ● 出力レベルは , 一対のコンペアレジスタ ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の CMOD: ビット 12=1) を使用して変更することができます。 図 11.6-13 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一対で使用した際 の出力波形例 ( フリーランタイマはアップカウントモード ) カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ 0 BFFFH コンペアレジスタ 1 7FFFH RT0 RT1 コンペア0 割込み コンペア1 割込み 274 コンペア0に対応 コンペア0と1に対応 第 11 章 多機能タイマ 図 11.6-14 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一緒に使用した際 の出力波形例 ( フリーランタイマはアップダウンカウントモード ) カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ 0 BFFFH コンペアレジスタ 1 7FFFH RT0 コンペア0に対応 RT1 コンペア0と1に対応 コンペア0 割込み コンペア1 割込み ● コンペアバッファが無効になったときの出力レベル 図 11.6-15 コンペアバッファが無効になっているときの出力波形例 ( フリーランタイマはアップカウントモード ) カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H タイマ動作開始 時間 コンペアクリア一致 リセット コンペアクリア バッファレジスタ0 コンペアクリア レジスタ 0 コンペア クリア一致 BFFFH 3FFFH BFFFH BFFFH 3FFFH BFFFH RT0 割込み 275 第 11 章 多機能タイマ ● コンペアクリア一致発生時にコンペアバッファが選択されたときの出力レベル 図 11.6-16 コンペアバッファが有効になったときの出力波形例 ( フリーランタイマはアップダウンカウントモード ) カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 タイマ動作開始 コンペアクリア一致 ゼロ検出 リセット コンペアバッファ レジスタ 0 コンペアレジスタ 0 RT0 割込み 276 BFFFH 3FFFH BFFFH BFFFH 3FFFH BFFFH 第 11 章 多機能タイマ ■ 16 ビットアウトプットコンペアの動作 ( セット / リセットモード , MOD15 ∼ MOD10=1) カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ 0 BFFFH コンペアレジスタ 2 7FFFH RT0 RT2 コンペア0 割込み コンペア2 割込み ch.0は, アップカウント:セット, ダウンカウント:リセット ch.2は, アップカウント:リセット,ダウンカウント:セット ※ ch.0 一致で “1”となったままとなります。ch.2は常に “0” のままです。 カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ 0 BFFFH コンペアレジスタ 2 7FFFH RT0 RT2 コンペア0 割込み コンペア2 割込み ch.0 は, アップカウント:セット, ダウンカウント:リセット ch.2 は, アップカウント:リセット,ダウンカウント:セット 277 第 11 章 多機能タイマ ■ 16 ビットアウトプットコンペアタイミング フリーランタイマがコンペアレジスタ値と一致すると , アウトプットコンペアはコン ペア一致信号を生成して出力を反転し , 割込みを発生します。コンペア一致が発生する と , 出力はカウンタのカウントタイミングと同期して反転します。 図 11.6-17 コンペアレジスタ割込みタイミング N+1 N カウント値 N コンペアレジスタ コンペア一致 割込み 図 11.6-18 端子出力の変化タイミング カウント値 コンペアレジスタ コンペア一致信号 端子出力 278 N N N+1 N N+1 第 11 章 多機能タイマ ■ 16 ビットアウトプットコンペアとフリーランタイマの動作について ● フリーランタイマがアップカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H 時間 コンペアバッファ レジスタ BFFFH CFFFH BFFFH コンペアレジスタ BFFFH CFFFH 0000H BFFFH BFFFH 0000H 0000H BFFFH 0000H CFFFH 0000H CFFFH 0000H RT アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時 ● フリーランタイマがアップカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H 時間 コンペアバッファ レジスタ BFFFH CFFFH BFFFH コンペアレジスタ BFFFH CFFFH 0000H BFFFH BFFFH 0000H 0000H BFFFH 0000H CFFFH 0000H CFFFH 0000H RT アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時 279 第 11 章 多機能タイマ ● フリーランタイマがアップダウンカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H 時間 コンペアバッファ レジスタ BFFFH CFFFH コンペアレジスタ BFFFH BFFFH BFFFH CFFFH 0000H FFFFH 0000H BFFFH 0000H FFFFH RT 初期値[0] RT 初期値[1] アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時 アウトプットコンペア出力は一致時, 出力反転する場合 ● フリーランタイマがアップダウンカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H コンペアバッファ 時間 レジスタ BFFFH CFFFH BFFFH 0000H FFFFH コンペアレジスタ BFFFH CFFFH BFFFH 0000H FFFFH R T 初期値[0] RT 初期値[1] アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時 アウトプットコンペア出力は一致時, 出力反転する場合 280 0000H 0000H 第 11 章 多機能タイマ ● フリーランタイマがアップダウンカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H 時間 コンペアバッファ レジスタ コンペアレジスタ BFFFH CFFFH BFFFH 0000H FFFFH 0000H BFFFH BFFFH CFFFH BFFFH 0000H FFFFH RT 初期値[0] RT 初期値[1] アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時 アウトプットコンペア出力は, アップカウント時の一致は"1"にセット, ダウンカウント時の一致は"0"にリセットする場合 ● フリーランタイマがアップダウンカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H 時間 コンペアバッファ レジスタ コンペアレジスタ BFFFH CFFFH BFFFH 0000H FFFFH BFFFH CFFFH BFFFH 0000H FFFFH 0000H 0000H RT 初期値[0] RT 初期値[1] アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時 アウトプットコンペア出力は, アップカウント時の一致は"1"にセット, ダウンカウント時の一致は"0"にリセットする場合 281 第 11 章 多機能タイマ ● フリーランタイマがアップダウンカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H 時間 コンペアバッファ レジスタ BFFFH CFFFH BFFFH 0000H FFFFH 0000H コンペアレジスタ BFFFH BFFFH CFFFH BFFFH 0000H FFFFH RT初期値[0] RT初期値[1] アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時 アウトプットコンペア出力は, アップカウント時の一致は"0"にリセット, ダウンカウント時の一致は"1"にセットする場合 ● フリーランタイマがアップダウンカウントの場合 フリーランタイマ カウント値 CFFFH BFFFH 0000H 時間 コンペアバッファ レジスタ コンペアレジスタ BFFFH CFFFH BFFFH 0000H FFFFH BFFFH CFFFH BFFFH 0000H FFFFH RT 初期値[0] RT 初期値[1] アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時 アウトプットコンペア出力は, アップカウント時の一致は"0"にリセット, ダウンカウント時の一致は"1"にセットする場合 282 0000H 0000H 第 11 章 多機能タイマ 16 ビットインプットキャプチャの動作 11.6.3 インプットキャプチャは , 指定された有効なエッジを検出するために使用します。 有効なエッジが検出されると , 割込みフラグが設定され , 16 ビットフリーランタイ マの値がキャプチャレジスタへロードされます。 ■ 16 ビットインプットキャプチャの動作 図 11.6-19 インプットキャプチャタイミング例 カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット IC0 IC1 IC例 キャプチャ レジスタ 0 キャプチャ レジスタ 1 キャプチャ レジスタ 例 不定 3FFFH 7FFFH 不定 不定 BFFFH 3FFFH キャプチャ 0 割込み キャプチャ 1 割込み キャプチャ 例 割込み 再度、有効エッジにより割込み生成 ソフトウェアにより、割込みクリア キャプチャ 0 : 立上りエッジ キャプチャ 1 : 立下りエッジ キャプチャ例 : 両方のエッジ 283 第 11 章 多機能タイマ ■ 16 ビットインプットキャプチャ入力タイミング 図 11.6-20 入力信号に対する 16 ビットインプットキャプチャタイミング例 マシンクロック φ カウント値 インプット キャプチャ入力 N N+1 有効なエッジ キャプチャ信号 キャプチャレジスタ 割込み 284 N+1 第 11 章 多機能タイマ 波形ジェネレータの動作 11.6.4 波形ジェネレータは , リアルタイム出力 (RTO0 ∼ RTO5) , 16 ビット PPG タイマ 0, 16 ビットデッドタイマ 0, 1, 2 を使用してさまざまな波形 ( デッドタイムを含む ) を 生成することができます。 ■ RTO0 ∼ RTO5 と GATE の出力状態 表 11.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (1 / 2) TMD2 TMD1 TMD0 GTEN5 PGEN5 ∼ ∼ GTEN0 PGEN0 RTO0 ∼ RTO5 GATE 0 0 0 X X リアルタイム出力 RTx (16 ビットアウトプットコンペア出力 ) 常に "0" 0 0 1 X 0 リアルタイム出力 RTx (16 ビットアウトプットコンペア出力 ) (RTx & GTENx) *3 0 0 1 0 1 RTx が "H" の期間に PPG0 のパルスを出力 *1 常に "0" 0 0 1 1 1 RTx が "H" の期間に GATE 信号により起動さ れた PPG0 のパルスを出力 (RT0/RT1/ RT2/RT3/ RT4/RT5) RT0, RT1 の立上りエッジにより 16 ビット デッドタイマ 0 を起動し , 16 ビットデッドタ イマ 0 がアンダフローするまで "H" を出力 X 0 0 1 1 0 0 X 0 RT2, RT3 の立上りエッジにより 16 ビット デッドタイマ 1 を起動し , 16 ビットデッドタ イマ 1 がアンダフローするまで "H" を出力 X RT4, RT5 の立上りエッジにより 16 ビット デッドタイマ 2 を起動し , 16 ビットデッドタ イマ 2 がアンダフローするまで "H" を出力 0 RT0, RT1 の立上りエッジにより 16 ビット デッドタイマ 0 を起動し , 16 ビットデッドタ イマ 0 がアンダフローするまで PPG0 のパル スを出力 *1 0 RT2, RT3 の立上りエッジにより 16 ビット デッドタイマ 1 を起動し , 16 ビットデッドタ イマ 1 がアンダフローするまで PPG0 のパル スを出力 *1 0 1 タイマ動作 期間中は "H" を出力 *4 常に "0" RT4, RT5 の立上りエッジにより 16 ビット デッドタイマ 2 を起動し , 16 ビットデッドタ イマ 2 がアンダフローするまで PPG0 のパル スを出力 *1 285 第 11 章 多機能タイマ 表 11.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (2 / 2) TMD2 TMD1 TMD0 0 1 1 GTEN5 PGEN5 ∼ ∼ GTEN0 PGEN0 0 0 0 1 RT0, RT1 の立上りエッジにより 16 ビット デッドタイマ 0 を起動し , 16 ビットデッドタ イマ 0 がアンダフローするまで , GATE 信号 により起動された PPG0 のパルスを出力 1 RT2, RT3 の立上りエッジにより 16 ビット デッドタイマ 1 を起動し , 16 ビットデッドタ イマ 1 がアンダフローするまで , GATE 信号 により起動された PPG0 のパルスを出力 1 1 RT4, RT5 の立上りエッジにより 16 ビット デッドタイマ 2 を起動し , 16 ビットデッドタ イマ 2 がアンダフローするまで , GATE 信号 により起動された PPG0 のパルスを出力 X RT1 でノンオーバラップ信号を生成 *2 X X X 1 1 1 1 1 0 1 1 その他 RT3 でノンオーバラップ信号を生成 *2 RT5 X X GATE RTO0 ∼ RTO5 タイマ動作 期間中は "H" を出力 *4 常に "0" でノンオーバラップ信号を生成 *2 PPG0 でノンオーバラップ信号を生成 GATE 信号により起動された PPG0 でノン オーバラップ信号を生成 常に "0" 常に "0" (RT0/RT1/ RT2/RT3/ RT4/RT5) 常に "0" *1: あらかじめ PPG0 を起動しておく必要があります。 *2: ノンオーバラップ信号を生成するには , 必ず RT1, RT3, RT5 に対して 2 チャネル モード ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の CMOD: ビット 12=1) を選択してください。 *3: GTENx ビットに "1" を設定した RTx から GATE 信号が生成されます。 *4: GTENx ビットに "1" を設定した RTx によって起動されるタイマの動作期間中に , GATE 信号が生成されます。複数の GATEx ビットに "1" を設定した場合 , GATE 信号は各々のタイマ動作期間中の信号を OR した信号となります。 <注意事項> RTO0, RTO1 は , 16 ビットデッドタイマ制御レジスタ上位 (DTCR0) の TMD2 ∼ TMD0: ビット 10 ∼ビット 8 により , RTO2, RTO3 は (DTCR1) 下位レジスタの TMD5 ∼ TMD3: ビット 2 ∼ビット 0 により , RTO4, RTO5 は上位レジスタ (DTCR2) の TMD8 ∼ TMD6: ビット 10 ∼ビット 8 により制御されます。 286 第 11 章 多機能タイマ ■ PPG0 出力制御 RTO0 ∼ RTO5 端子への PPG0 出力は , PPG 出力制御 / インプットキャプチャ状態制御 レジスタ上位 (PICSH01) の PGEN5 ∼ PGEN0: ビット 15 ∼ビット 10 で許可にすること ができます。 ■ ゲートトリガされた PPG0 出力 波形ジェネレータでは , リアルタイム出力 RTO0 ∼ RTO5 により , GATE 信号を生成す ることができ , 16 ビットデッドタイマ 0, 1, 2 では PPG0 カウントをトリガとして動作 することができます。1 つの 16 ビットデッドタイマ 0, 1, 2 で 2 つのリアルタイム出力 (RTO0/RTO2/RTO4, RTO1/RTO3/RTO5) が操作され , 6 つの別々のゲート信号が生成さ れます。これら 6 つのゲート信号は論理和がとられて GATE 信号を生成し , PPG0 カウ ントのトリガとなります。また , PGEN0 ∼ PGEN5 信号を使用すると , PPG0 のみを使 用することで RTO0 ∼ RTO5 端子に 6 つの異なる波形を出力することができます。 ● PGENx, GTENx がアクティブ (PGENx, GTENx=1) であり , 16 ビットデッドタイマ制御レジ スタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0=001B のとき , または GTENx がアク ティブで TMD8 ∼ TMD0=111B のときの信号生成 図 11.6-21 RTx が "H" のときの GATE 信号の生成 16ビットフリーランタイマ カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H コンペア レジスタ 0 コンペア レジスタ 1 時間 BFFFH 7FFFH RT0 RT1 GATE0 GATE1 GATE 287 第 11 章 多機能タイマ ● GTENx がアクティブ (DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0=010B) であると きの RTx 立上りエッジから 16 ビットデッドタイマ 0, 1, 2 アンダフローまでにおける GATE 信号の生成 図 11.6-22 RTx 立上りエッジから 16 ビットデッドタイマアンダフローまでにおける GATE 信号の生成 16ビットフリーランタイマ カウント値 FFFFH BFFFH 7FFFH 3FFFH 000H 時間 コンペア レジスタ 0 コンペア レジスタ 1 BFFFH 7FFFH RT0 RT1 G ATE0 GAT E1 16ビットデッドタイマ0の 時間 16ビットデッドタイマ0の 時間 GAT E <注意事項> 各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビットデッ ドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に 対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して使用されます。した がって , RT を使用して既に動作中のタイマの起動を試みてはなりません。このような試 みを行った場合 , GATE 信号出力が拡張され , その結果 , 誤動作が発生する場合がありま す。 288 第 11 章 多機能タイマ 11.6.4.1 タイマモードの動作 RTO0 ∼ RTO5 端子の立上りエッジが検出されると , 16 ビットデッドタイマに値が リロードされて , 16 ビットデッドタイマがカウントダウンを開始します。PPG タイ マ 0 は , 16 ビットデッドタイマでアンダフローが発生するまで RTO0 ∼ RTO5 端子 へ出力し続けます。 ■ タイマモードの動作 ● RT立上りエッジから16ビットデッドタイマアンダフローまでにおけるPPG0出力パルス生 成 (DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下 位はビット 2 ∼ビット 0) =010B) 図 11.6-23 TMD2 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビット 2 ∼ビット 0) が "010B" のと きに生成される波形 < レジスタの設定 > PCSR : XXXXH TCDTH,TCDTL : XXXXH TCCSH,TCCSL : XXXXXXXX X0X0XXXXB PDUT : XXXXH CPCLRH,CPCLRL : XXXXH (サイクルの設定) PCNT : XXXXH OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値) PICS01 : XXH(PPG0出力選択) OCSH0~OCSH5,OCSL0~OCSL5 : -XX0XXXX XXXXXX11B DTCR0~DTCR2 : 011XX010B TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定) SIGCR1 : XXXXXX00B (DTTI入力と16ビットデッドタイマカウントクロック設定) 注記:"X"動作に従って設定しなければならない 16ビットフリーランタイマ カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 PPG0 コンペア レジスタ 0 BFFFH コンペア レジスタ 1 7FFFH RT0 RT1 GATE RTO0 RTO1 16ビットデッドタイマ0の 時間 16ビットデッドタイマ0の 時間 289 第 11 章 多機能タイマ <注意事項> 各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビットデッ ドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に 対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して使用されます。した がって , RT を使用して , 既に動作中の PPG0 の起動を試みてはなりません。このような 試みを行った場合は , GATE 信号出力が拡張され , その結果 , 誤動作が発生する場合があ ります。 290 第 11 章 多機能タイマ 11.6.4.2 デッドタイムタイマモード時の動作 デッドタイムジェネレータは , リアルタイム出力 (RT1, RT3, RT5) , もしくは PPG0 タイマパルス出力を入力し , 外部端子 (RTO0 ∼ RTO5) へノンオーバラップ信号 ( 反 転信号 ) を出力します。 ■ デッドタイムタイマモード時の動作 ● 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御 レジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位 はビット 2 ∼ビット 0) =100B) DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 が "0" ( 通常極性 ) であるノン オ ー バ ラ ッ プ 信号 を 選 択 す る と , 16 ビ ッ ト デ ッ ド タ イ マ レ ジ ス タ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオーバラップ時間に相当する遅 延が適用されます。この遅延は RT1, RT3, RT5 端子の立上りエッジまたは立下りエッ ジで適用されます。RT1, RT3, RT5 パルス幅が , 設定されているノンオーバラップ時間 より小さい場合は , 16 ビットデッドタイマは , その次の RT エッジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 レジスタ値からカウントダウンを再開します。 図 11.6-24 通常極性の RT1,RT3,RT5 によるノンオーバラップ信号生成 < レジスタの設定 > OCCPH0~OCCPH5, OCCPL0~OCCPL5 : XXXXH (コンペア値) TCDTH,TCDTL : XXXXH OCSH0~OCSH5, OCSL0~OCSL5 : -XX1XXXX XXXXXX11B TCCSH,TCCSL : X--XXXXX X0X0XXXXB DTCR0~DTCR2 : 0XXXX100B CPCLRH,CPCLRL : XXXXH (サイクルの設定) TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定) SIGCR1 : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) 注記:"X"動作に従って設定しなければならない 16ビットデッドタイマ0 カウント値 TMRR0設定値 時間 RT1 RTO0(U) RTO1(X) 2マシンサイクル 2マシンサイクル 端子名 出力信号 RTO0 (U) 遅延された信号がRT1の立上りエッジで適用される RTO2 (V) 遅延された信号がRT3の立上りエッジで適用される RTO4 (W) 遅延された信号がRT5の立上りエッジで適用される RTO1 (X) 遅延された反転信号がRT1の立下りエッジで適用される RTO3 (Y) 遅延された反転信号がRT3の立下りエッジで適用される RTO5 (Z) 遅延された反転信号がRT5の立下りエッジで適用される 291 第 11 章 多機能タイマ ● 反転極性の RT1, RT3, RT5 によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御 レジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位 はビット 2 ∼ビット 0) =100B) DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位はビット 15, 下位はビッ ト 7) が "1" ( 反転極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタ イマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオー バラップ時間に相当する遅延が適用されます。この遅延は , RT1, RT3, RT5 の立上り エッジまたは立下りエッジで適用されます。RT1, RT3, RT5 パルス幅が設定されている ノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマはその次の RT エッ ジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からカウントダウンを再開します。 図 11.6-25 反転極性の RT1,RT3,RT5 によるノンオーバラップ信号生成 < レジスタの設定 > OCCPH0~OCCPH5, OCCPL0~OCCPL5 : XXXXH (コンペア値) TCDTH,TCDTL : XXXXH OCSH0~OCSH5, OCSL0~OCSL5 : -XX1XXXX XXXXXX11B TCCSH,TCCSL : XXXXXXXX X0X0XXXXB DTCR0~DTCR2 : 0XXXX100B CPCLRH,CPCLRL : XXXXH (サイクルの設定) TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定) SIGCR1 : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) 注記:"X"動作に従って設定しなければならない 16ビットデッドタイマ0 カウント値 TMRR0設定値 時間 RT1 RTO0(U) RTO1(X) 2マシンサイクル 2マシンサイクル 端子名 292 出力信号 RTO0 (U) 遅延された反転信号がRT1の立上りエッジで適用される RTO2 (V) 遅延された反転信号がRT3の立上りエッジで適用される RTO4 (W) 遅延された反転信号がRT5の立上りエッジで適用される RTO1 (X) 遅延された信号がRT1の立下りエッジで適用される RTO3 (Y) 遅延された信号がRT3の立下りエッジで適用される RTO5 (Z) 遅延された信号がRT5の立下りエッジで適用される 第 11 章 多機能タイマ ● 通常極性の PPG によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御レジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビット 2 ∼ビット 0) =111B) DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位はビット 15, 下位はビッ ト 7) が "0" ( 通常極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタ イマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオー バラップ時間に相当する遅延が適用されます。この遅延は , PPG0 タイマパルス信号ま たは反転信号の立上りエッジで適用されます。PPG0 タイマパルス幅が設定されている ノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのそ の次のエッジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からカウントダウンを 再開します。 図 11.6-26 通常極性の PPG0 タイマによるノンオーバラップ信号生成 < レジスタの設定 > TCDTH,TCDTL : XXXXH PCSR : XXXXH TCCSH,TCCSL : XXXXXXXX X0X0XXXXB PDUT : XXXXH CPCLRH,CPCLRL : XXXXH (サイクルの設定) PCNT : XXXXH OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値) OCSH0~OCSH5,OCSL0~OCSL5 : -XX1XXXX XXXXXX11B DTCR0~DTCR2 : 0XXXX111B TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定) SIGCR1 : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) 注記:"X"動作に従って設定しなければならない 16ビットデッドタイマ0 カウント値 TMRR0設定値 時間 PPG0 RTO0(U) RTO1(X) 2マシンサイクル 2マシンサイクル 端子名 出力信号 RTO0 (U) 遅延された信号がPPG0の立上りエッジで適用される RTO2 (V) 遅延された信号がPPG0の立上りエッジで適用される RTO4 (W) 遅延された信号がPPG0の立上りエッジで適用される RTO1 (X) 遅延された反転信号がPPG0の立下りエッジで適用される RTO3 (Y) 遅延された反転信号がPPG0の立下りエッジで適用される RTO5 (Z) 遅延された反転信号がPPG0の立下りエッジで適用される 293 第 11 章 多機能タイマ ● 反転極性の PPG によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御レジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビット 2 ∼ビット 0) =111B) DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位はビット 15, 下位はビッ ト 7) が "1" ( 反転極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタ イマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオー バラップ時間に相当する遅延が適用されます。この遅延は , PPG0 タイマパルス信号ま たは反転信号の立上りエッジで適用されます。PPG0 タイマパルス幅が設定されている ノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのそ の次のエッジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からカウントダウンを 再開します。 図 11.6-27 反転極性の PPG0 タイマによるノンオーバラップ信号生成 < レジスタの設定 > TCDTH,TCDTL : XXXXH PCSR : XXXXH TCCSH,TCCSL : XXXXXXXX X0X0XXXXB PDUT : XXXXH CPCLRH,CPCLRL : XXXXH (サイクルの設定) PCNT : XXXXH OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値) OCSH0~OCSH5,OCSL0~OCSL5 : -XX1XXXX XXXXXX11B DTCR0~DTCR2 : 1XXXX111B TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定) SIGCR1 : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) 注記:"X"動作に従って設定しなければならない 16ビットデッドタイマ0 カウント値 TMRR0設定値 時間 PPG0 RTO0(U) RTO1(X) 2マシンサイクル 2マシンサイクル 端子名 294 出力信号 RTO0 (U) 遅延された反転信号がPPG0の立下りエッジで適用される RTO2 (V) 遅延された反転信号がPPG0の立下りエッジで適用される RTO4 (W) 遅延された反転信号がPPG0の立下りエッジで適用される RTO1 (X) 遅延された信号がPPG0の立下りエッジで適用される RTO3 (Y) 遅延された信号がPPG0の立下りエッジで適用される RTO5 (Z) 遅延された信号がPPG0の立下りエッジで適用される 第 11 章 多機能タイマ 11.6.4.3 DTTI 端子制御の動作 波形制御レジスタ 1 (SIGCR1) の DTIE: ビット 7 に "1" を設定すると , RTO0 ∼ RTO5 出力を DTTI 端子で制御することができます。DTTI 端子の "L" レベルが検出 されると , RTO0 ∼ RTO5 出力は割込みフラグ (SIGCR レジスタの DTIF;ビット 6) がクリアされるまで非動作レベルに固定されます。RTO0 ∼ RTO5 の非動作レベル は , これらの端子を共用しているポートデータレジスタ (PDR) を使ってソフトウェ ア的に設定することができます。また , データディレクションレジスタ (DDR) を 使って入力ポートとしておけば Hi-Z 出力となります。 ■ DTTI 端子入力の動作 DTTI 端子入力の "L" が検出された場合でも , タイマは波形ジェネレータが動作してい る間は動作を継続しますが , 波形は外部端子 RTO0 ∼ RTO5 へは出力されません。 図 11.6-28 DTTI 入力が有効のときの動作 < レジスタの設定 > CPCLRH,CPCLRL : XXXXH (サイクルの設定) TCDTH,TCDTL : XXXXH TCCSH,TCCSL : XXXXXXXX X0X0XXXXB OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値) DTCR0~DTCR2 : 0XXXX100B OCSH0~OCSH5,OCSL0~OCSL5 : -XX1XXXX XXXXXX11B PDRx : XXXXXX00B(非動作レベルの設定) TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定) SIGCR1 : 1XXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) 注記:"X"動作に従って設定しなければならない 16ビットフリーランタイマ カウント値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 コンペア レジスタ 0 BFFFH コンペア レジスタ 1 3FFFH RT1 RTO0 RTO1 DTTI0 DTIF 出力非動作 ソフトウェアリセット 295 第 11 章 多機能タイマ ■ 波形制御レジスタ 2 (SIGCR2) の DTTI の動作 波形制御レジスタ 2 の DTTI: ビット 0 の出力は , DTTI 端子入力と OR をとって DTTI 入力となるようになっています。したがって , 本レジスタを "0" に設定すると常に DTTI 入力状態となり , DTTI 端子の入力は無意味です。 本レジスタに , "1" を書き込んでクリアされると , DTTI 端子入力の値が用いられます。 ■ DTTI 端子ノイズキャンセル機能 波形制御レジスタ 1 (SIGCR1) の NRSL: ビット 5 に "1" を設定すると , DTTI 端子入力 のノイズキャンセル機能が有効になります。ノイズキャンセル機能が有効になると , 出 力端子 (RTO0 ∼ RTO5) を非動作レベルに固定するために要する時間が 4, 8, 16 または 32 マシンサイクル (SIGCR1 レジスタの NWS1, NWS0: ビット 1, ビット 0 で選択 ) だけ 遅延します。ノイズキャンセル回路はリソースを使用するので , 発振が停止するモード ( 停止モードなど ) 時において DTTI 入力が有効になった場合でも入力は無効になりま す。 ■ DTTI 割込み DTTI の "L" レベルが検出されると , ノイズキャンセル時間が経過した後で DTTI 割込 みフラグ (SIGCR1 レジスタの DTIF: ビット 6) に "1" が設定され , 割込み要求は割込み コントローラへ送信されます。 図 11.6-29 DTTI 割込みタイミング DTTI SIGCR1レジスタ DTIFビット SIGCR1レジスタのNWS1,NWS0ビットで 制御されるノイズキャンセル時間 SIGCR1レジスタのDTIFビットに ソフトウェアで"0"を書き込む <注意事項> • ノイズキャンセル時間内に SIGCR1 レジスタの NWS1, NWS0 ビットの値が変化した場 合は , さらに大きな (NWS1, NWS0) ノイズサイクル値が有効になります。 • SIGCR1レジスタのDTIF: ビット6は, ソフトウェアでのみクリアすることができます。 296 第 11 章 多機能タイマ 11.6.5 A/D 起動コンペアの動作 16 ビットフリーランタイマの値が指示値となったときに , A/D 起動を行うことがで きます。 ■ A/D 起動 3 ユニットある A/D コンバータ起動ができます。 • A/D 起動コンペア 0 → A/D ユニット 0 起動 • A/D 起動コンペア 1 → A/D ユニット 1 起動 • A/D 起動コンペア 2 → A/D ユニット 2 起動 ■ A/D 起動許可 コンペアレジスタに値をセットし , 制御レジスタ (ADCOMPC) の CE0, CE1, CE2: ビッ ト 0, ビット 1, ビット 2 に "1" をセットした場合 , フリーランタイマとコンペアレジス タ値が一致したときに A/D コンバータに対して起動信号を発生します。 CE0, CE1, CE2 を "0" にセットすると , フリーランタイマとコンペアレジスタ値が一致 しても A/D コンバータに対して起動信号は発生しません。 コンペアレジスタは , 起動許可中に書き込んだ場合 , すぐに書き込んだ値と一致比較を 行います。 297 第 11 章 多機能タイマ 11.7 多機能タイマの使用上の注意 多機能タイマの使用上の注意を以下に示します。 ■ 16 ビットフリーランタイマの使用上の注意 ● プログラムによる設定上の注意 • リセットを実行するとタイマ値が "0000H" になりますが , ゼロ検出割込みフラグ は設定されません。 • タイマモードビット (TCCSL レジスタの MODE: ビット 5) は , バッファを持って いるので , ゼロ検出後に変更されたタイマモードが有効になります。 • ソフトウェアクリア (TCCSL レジスタの SCLR: ビット 4=1) は , タイマを初期化し ます。このとき , タイマカウントクロックがマシンサイクル (φ) の場合 , ゼロ検出 割込みを発生しません。タイマカウントクロックがマシンサイクル (φ) の分周の 場合 , ゼロ検出割込みが発生されます。 • コンペア値とカウント値が一致しているときにカウントを開始する場合は , コン ペアクリアフラグは設定されません。 ●割込みの注意 • タイマ状態制御レジスタ上位 (TCCSH) の IRQZF: ビット 14 に "1" を設定し , 次に 割込み要求を許可すると (TCCSH レジスタの IRQZE: ビット 13=1) , 制御は割込み 処理から戻ることができません。IRQZF: ビット 14 は , 必ずクリアしてください。 • タイマ状態制御レジスタ上位 (TCCSH) の ICLR: ビット 9 に "1" を設定し , 次に割 込み要求を許可すると (TCCSH レジスタの ICRE: ビット 8=1) , 制御は割込み処理 から戻ることができません。ICLR: ビット 9 は , 必ずクリアしてください。 ■16 ビットアウトプットコンペアの使用上の注意 ● 割込みの注意 コンペア制御レジスタ下位 (OCSL0, OCSL2, OCSL4) の IOP1, IOP0: ビット 7, ビット 6 に "11B" を設定し , 次に割込み要求を許可にすると (OCSL レジスタの IOE1, IOE0: ビッ ト 6, ビット 5=11B) , 制御は割込み処理から戻ることができません。IOP0, IOP1 ビット は , 必ずクリアしてください。 ■ 16 ビットインプットキャプチャの使用上の注意 ● 割込みの注意 • インプットキャプチャ状態制御レジスタ下位 (PICSL01, ICSL23) の ICP3, ICP2, ICP1, ICP0 ( ともにビット 7, ビット 6) に "1" を設定し , 次に割込み要求を許可に すると (PICCSL01, ICSL23 レジスタの ICE3, ICE2, ICE1, ICE0 ( ともにビット 5, ビット 4) =11B) , 制御は割込み処理から戻ることができません。ICP3, ICP2, ICP1, ICP0 ( ともにビット 7, ビット 6) は , 必ずクリアしてください。 • インプットキャプチャ端子 (IC) レベルが , ICP3, ICP2, ICP1, ICP0 がビット設定さ れてから割込みルーチンが処理されるまでの間に切り換わると , ICP3, ICP2 の有 効エッジ指示ビット (ICSH23 レジスタの IEI3, IEI2: ビット 9, ビット 8) は検出され た最新のエッジを示します。 298 第 11 章 多機能タイマ <注意事項> ICP1, ICP0 の有効エッジ指示ビットはありません。 ■ 波形ジェネレータの使用上の注意 ● プログラムによる設定上の注意 • 波形ジェネレータが動作中 (DTCR0, DTCR1, DTCR2 レジスタの TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼ TMD6 が "001B", "010B", "100B" または "111B") に , 16 ビ ッ ト デ ッ ド タ イ マ 制 御 レ ジ ス タ (DTCR0, DTCR1, DTCR2) の TMD8, TMD5, TMD2 ( 上位はビット 10, 下位はビット 2) , TMD7, TMD4, TMD1 ( 上位はビット 9, 下位はビット 1) , TMD6, TMD3, TMD0 ( 上位はビット 8, 下位はビット 0) ビット値 を変更する場合は , トリガソースおよび 16 ビットデッドタイマがカウント中でな いことを必ず確認してください。この操作を行わない場合は , 以前のトリガでス ケジュールされた出力が原因となり , 予期しない波形が RTO 端子から出力されま す。ただし , RTO 出力は , タイマでアンダフローが発生したり , 新しいトリガソー スで再トリガされたりすると , 正常動作に戻ります。 • トリガソースとは , DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位はビッ ト 10 ∼ビット 8, 下位はビット 2 ∼ビット 0) が "001B" の場合は "RT の "H" レベル " であり , TMD8 ∼ TMD0 ビットが "010B" の場合は "RT の立上りエッジ " であり , TMD8 ∼ TMD0 ビットが "100B" の場合は , "RT の立上りまたは立下りエッジ " であ り , TMD8 ∼ TMD0 ビットが "111B" の場合は "PPG0 の立上りエッジまたは立下り エッジ " です。 例えば , TMD8 ∼ TMD0 ビットが "100B" から "111B" へ変更すると , 下記の手順を実 行することができます。 1. 16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) を "0001H" のような非常に小さな値を設定する。 2. RTO1, RTO3, RTO5 の出力を "L" または "H" に設定し , タイマ 0, 1, 2 でアンダフ ローが発生するまで待つ。 3. モードビット (TMD8 ∼ TMD0) および対応する設定を変更する。 4. 修正された出力波形が , 1 マシンサイクル後 , RTO 端子に現れる。 • タイマがカウント中に 16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に値が書き込まれると , この新しい値は次のタイマトリガ時 に有効になります。タイマレジスタへアクセスする場合は , 必ずハーフワードもし くはワード転送命令をご使用ください。 • タイマがカウントしてない場合のみ , 波形制御レジスタ 1 (SIGCR1) の DCK2 ∼ DCK0: ビット 4 ∼ビット 2 を変更してください。 • ノイズキャンセル機能が無効になった場合のみ , 波形制御レジスタ 1 (SIGCR1) の NWS1, NWS0: ビット 1, ビット 0 を変更してください。 299 第 11 章 多機能タイマ ● 割込みの注意 • 16 ビットデッドタイマ制御レジスタ (DTCR0, DTCR1, DTCR2) の TMIF2 ∼ TMIF0 ( 上位はビット 12, 下位はビット 4) に "1" を設定し , 次に割込み要求を許可にする と (DTCR0, DTCR1, DTCR2 レジスタの TMIE2 ∼ TMIE0 ( 上位はビット 11, 下位は ビット 3) =1) , 制御は割込み処理から戻ることができません。TMIF ビットは , 必 ずクリアしてください。 • 波形制御レジスタ 1 (SIGCR1) の DTIF: ビット 6 に "1" を設定すると , 制御は割込 み処理から戻ることができません。DTIF ビットは , 必ずクリアしてください。 300 第 11 章 多機能タイマ 11.8 多機能タイマのプログラム例 多機能タイマのプログラム例を示します。 ■ 16 ビットフリーランタイマのプログラム例 ● 処理 • 16 ビットフリーランタイマで 4 ms のときコンペアクリア割込みを発生します。 • 本タイマはアップカウントモード時にコンペアクリアタイマの再生成のために使 用します。 • 16 MHz は , マシンクロック用で , 62.5 ns はカウントクロック用です。 ● コーディング例 ICR32 .EQU 000460H ;16 ビットフリーランタイマのコンペアクリア割込み TCCSH .EQU 0000A8H ;制御レジスタ ;タイマ制御状態レジスタ CPCLRBH.EQU 0000A4H ;コンペアクリアバッファレジスタ ;--------------- メインプログラム ---------------------------------------------ORG C0000H START: ; : ANDCCR #0EFH LDI #ICR32,r0 ;スタックポインタ (SP) が既に初期化されているもの ;と仮定 ;割込み禁止 LDI #00H,r1 STB r1,@r0 LDI #CPCLRBH,r0;16 ビットフリーランタイマのアップカウントモード LDI #0FA00H,r1 ;時に 4 ms でコンペアクリア割込みを発生するための STH r1,@r0 ;値をコンペアクリアバッファレジスタに設定 LDI #TCCSH,r3 ;アップカウントダウンモード , LDI #0110H,r1 ;62.5 ns カウントクロック設定 , STH r1,@r3 ;コンペアクリア割込み許可 , ;割込みレベル 16 ( 最強 ) ;コンペアクリア割込みフラグビットのクリア , ;割込みマスクを禁止 , ;タイマクリア , 動作許可 STILM LOOP #14H ;PS 中の ILM をレベル 20 に設定 ORCCR #10H ;割込み許可 LDI LDI #00H,r0 #01H,r1 ;無限ループ BRA LOOP ; ;--------------- 割込みプログラム ---------------------------------------------WARI LDI #0100H,r1 ANDH r1,@r3 ; : ; ユーザ処理 ;割込み要求フラグをクリア 301 第 11 章 多機能タイマ ; : : 割込みから復帰 RETI ;--------------- ベクタ設定 ---------------------------------------------------VECT .ORG FFFF8H .DATA.W WARI .ORG FFFF8H ;割込みルーチンの設定 .DATA.W 0x07000000;シングルチップモードの設定 .DATA.W START .END ;リセットベクタの設定 ■ 16 ビットアウトプットコンペアのプログラム例 ● 処理 • 16 ビットフリーランタイマのカウント値がアウトプットコンペア用と一致したと きアウトプットコンペア一致が発生します。 • 16 ビットフリーランタイマがアップダウンカウントモード時に使用します。 • 16 MHz は , マシンクロック用で , 62.5 ms は 16 ビットフリーランタイマ 0 のカウ ントクロック用です。 ●コーディング例 ICR44 EQU 00046CH ;アウトプットコンペア 0/1 割込みレジスタ TCCSH EQU 0000A8H ;タイマ制御状態レジスタ CPCLRBH EQU 0000A4H ;コンペアクリアバッファレジスタ OCCPBH0 EQU 000090H ;アウトプットコンペアバッファレジスタ 0 OCCPBH1 EQU 000092H ;アウトプットコンペアバッファレジスタ 1 OCSH1 EQU 00009CH ;コンペア制御レジスタ ;--------------- メインプログラム ---------------------------------------------START: ; ;スタックポインタ (SP) が既に初期化されて : ANDCCR #0EFH LDI #ICR44,r0 302 いるものと仮定 ;割込み禁止 LDI #00H,r1 STB r1,@r0 ;割込みレベル 16 ( 最強 ) LDI #CPCLRBH,r0 ;16 ビットフリーランタイマのコンペアクリ ア ;バッファレジスタに設定 LDI STH #0FFFFH,r1 r1,@r0 LDI LDI STH #OCCPBH0,r0 #0BFFFH,r1 r1,@r0 ;アウトプットコンペアレジスタ 0 を設定 LDI LDI STH #OCCPBH1,r0 #07FFFH,r1 r1,@r0 ;アウトプットコンペアレジスタ 1 を設定 LDI #OCSH1,r3 ;アウトプットコンペア出力を有効 LDI #6C33H,r2 ;コンペア一致割込み 0/1 を許可 第 11 章 多機能タイマ r2,@r3 ;割込みフラグビットのクリア LDI #TCCSH,r0 ;アップカウントダウンモード , LDI #0010H,r1 ;タイマクリア , 動作許可 STH r1,@r0 STILM #14H ;PS 中の ILM をレベル 20 に設定 ORCCR #10H ;割込み許可 LDI LDI #00H,r0 #01H,r1 ;無限ループ BRA LOOP ; STH LOOP ;--------------- 割込みプログラム ---------------------------------------------WARI: ANDH r2,@r3 ; : ; ; ユーザ処理 : ;割込みレジスタフラグをクリア : 割込みから復帰 RETI ;--------------- ベクタ設定 ---------------------------------------------------VECT .ORG FFFF8H ;割込みルーチンの設定 .DATA.W .ORG WARI FFFF8H .DATA.W 0x07000000 ;シングルチップモードの設定 .DATA.W .END START ;リセットベクタの設定 303 第 11 章 多機能タイマ 304 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) U-TIMER の概要 , レジスタの構成 , 機能 , および動 作について説明します。 12.1 概要 12.2 レジスタ説明 12.3 動作説明 305 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) 12.1 概要 U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップ の動作周波数と U-TIMER のリロード値の組合せで任意のボーレートを設定できま す。また , カウントアンダフローで割込みを発生するので , インターバルタイマとし ても使用可能です。 本品種は , 本タイマを 3 チャネル内蔵しています。インターバルタイマとして使用 する場合 2 組の U-TIMER をカスケードして使用でき , 最大 232 × φ のインターバル をカウントできます。 カスケード接続できる組合せは , ch0 と ch1 または ch0 と ch2 のみです。 ■ レジスタ一覧 15 8 7 0 (R) UTIM0 ∼ UTIM2 UTIMR0 ∼ UTIMR2 UTIMC0 ∼ UTIMC2 306 (W) (R/W) 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) ■ ブロックダイヤグラム 図 12.1-1 U-TIMER のブロックダイヤグラム 15 0 UTIMR0~UTIMR2(リロードレジスタ) load 15 0 UTIM0~UTIM2(タイマ) クロック アンダフロー (周辺系クロック) MUX ch.0 のみ コントロール f.f. UARTへ U-タイマ1 アンダフロー 307 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) 12.2 レジスタ説明 U-TIMER で使用するレジスタの構成および機能について説明します。 ■ U-TIMER (UTIM: UTIM0 ∼ UTIM2) UTIM ch.0 アドレス : 00000064H 15 14 2 1 0 b15 b14 b2 b1 b0 ch.1 アドレス : 0000006CH R 0 ch.2 アドレス : 00000074H ←アクセス ←初期値 UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。 ■ リロードレジスタ (UTIMR: UTIMR0 ∼ UTIMR2) UTIMR ch.0 アドレス : 00000064H 15 14 2 1 0 b15 b14 b2 b1 b0 ch.1 アドレス : 0000006CH W 0 ch.2 アドレス : 00000074H ←アクセス ←初期値 UTIMR は , UTIM がアンダフローしたときに UTIM にリロードされる値を格納するレ ジスタです。 このレジスタは必ず 16 ビット転送命令でアクセスしてください。 ■ U-TIMER コントロールレジスタ (UTIMC: UTIMC0 ∼ UTIMC2) UTIMC ch.0 アドレス : 00000067H ch.1 アドレス : 0000006FH ch.2 アドレス : 00000077H 7 6 5 4 3 UCC1 − − UTIE UNDR CLKS UTST UTCR R/W 0 − − − − R/W 0 R/W 0 2 R/W 0 1 R/W 0 0 R/W 1 ←アクセス ←初期値 UTIMC は , U-TIMER の動作を制御します。 このレジスタは , 必ずバイト転送命令でアクセスしてください。 [ ビット 7] 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 の周期を発生します。 308 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) 設定例 : • UTIMR=5, UCC1=0 ──→発生周期 = 2n+2 = 12 サイクル • UTIMR=25, UCC1=1 ──→発生周期 = 2n+3 = 53 サイクル • UTIMR=60, UCC1=0 ──→発生周期 = 2n+2 = 122 サイクル U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定し てください。 [ ビット 6, ビット 5] (reserved) [ ビット 4] UTIE (U-TIMER Interrupt Enable) UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。 0 : 割込み禁止 [ 初期値 ] 1 : 割込み許可 [ ビット 3] UNDR (UNDeR flow flag) UNDR は , アンダフローが発生したことを示すフラグです。UTIE が "1" で UNDR が セットされるとアンダフロー割込みが発生します。UNDR はリセット , または "0" 書 込みによりクリアされます。 リードモディファイライト系命令の読出し時は , 常に "1" が読み出されます。また , UNDR に対する "1" 書込みは無効です。 [ ビット 2] CLKS (CLocK Select) CLKS は , U-TIMER の ch0 と ch1 のカスケード指定ビットです。 0: クロックソースは , 周辺系クロック (φ) [ 初期値 ] 1: U-TIMER ソースクロックタイミングとして , ch0 のアンダフロー信号を使用 ( ブロック図の f.f) CLKS は ch1, ch2 でのみ有効です。ch0 では常に "0" にしてください。 <注意事項> φ ( 周辺系クロック= CLKP) は , ギアの設定により周期が変わります。 [ ビット 1] UTST (U-TIMER STart) U-TIMER の動作許可ビットです。 0: 停止。動作中でも "0" 書込みで停止します [ 初期値 ]。 1: 動作。動作中に "1" を書き込んでも動作は続行されます。 [ ビット 0] UTCR (U-TIMER CleaR) UTCRに"0"を書き込むとU-TIMER は"0000H"にクリアされます(f.f. も"0"にクリア) 。 常に "1" が読まれます。 309 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) <注意事項> ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリロード します。 ① ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートする と , カウンタを "0" クリアして直後のカウントダウンでアンダフローが発生します。 ② 動作中にクリアビット UTCR をアサートすると , カウンタも "0" クリアされます。こ のため , 出力 波形にヒゲ状の短いパルスが出力される場合があり , UART やカスケー ドモードの上位側の U-TIMER が誤動作する可能性があります。出力クロックを使用し ている場合には , 動作中にクリアビット によるクリアを行わないでください。 ③ カスケードモードで , 下位側の UTIMR( リロードレジスタ ) に "0" または "1" をセット すると正しくカウントされません。 ④ U-TIMER コントロールレジスタのビット 1 (U-TIMER スタートビット : UTST) および ビット 0 (U-TIMER のクリアビット : UTCR) をタイマ停止状態で同時にアサートする と , クリアした後のカウンタロードのタイミングで同レジスタのビット 3 ( アンダフ ローフラグ : UNDR) がセットします。また , 内部ボーレートクロックは同タイミング で "H" レベルになります。 ⑤ 割込み要求セットタイミングとクリアタイミングが重複した場合には , フラグセット が優先され , クリア動作は無効となります。 ⑥ ch.0 をカスケードモードで使用しない場合や本モジュールを単にタイマ機能として使 用する場合は , U-TIMER コントロールレジスタのビット 2 ( 基準クロック選択ビット : CLKS) には常に "0" を書き込んでください。また , "CLKS" の設定変更は , 本モジュー ルが動作停止の状態で行ってください。 ⑦ U-TIMER リロードレジスタへの書込みとリロードのタイミングが重複した場合には , 旧データがカウンタにロードされ , 新データがカウンタにロードされるのは次のリ ロードのタイミングとなります。 ⑧ タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク リアが最優先されます。 ⑨ CLK 同期モードを使用する場合 , UTIMR のリロード値は "3" 以上に設定してください。 310 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) 12.3 動作説明 U-TIMER のボーレートの計算およびカスケードモードについて説明します。 ■ ボーレートの計算 UART は , 対応する U-TIMER (U-TIMER0 -> UART0, U-TIMER1 -> UART1, U-TIMER2 -> UART2)のアンダフローフリップフロップ (図中 f.f.)をボーレート用クロックソースとし て使用します。 ● 非同期 ( 調歩同期 ) モード UART は , U-TIMER の出力を 16 分周して使用します。 UCC1=0 時 bps = φ (2n+2) × 16 n … UTIMR (リロード値) φ … 周辺系マシンクロック周波数 (ギアにより変動) UCC1=1 時 bps = φ (2n+3) × 16 最大 bps 33 MHz 515625 bps ● CLK 同期モード UCC1=0 時 bps = φ (2n+2) UCC1=1 時 bps = n … UTIMR (リロード値) (nは"3"以上としてください) φ … 周辺系マシンクロック周波数 (ギアにより変動) φ (2n+3) 最大 bps 33 MHz 4125000 bps 311 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) ■ カスケードモード U-TIMER チャネル 0 と 1 はカスケードモードで使用できます。 例 ) UTIMR ch.0 を "0003H" に , UTIMR ch.1 を "0100H" に設定した場合 図 12.3-1 φ UTIM ch0 00H 03H 02H 01H 00H 03H 02H 01H 00H 03H 02H 01H 00H 03H 02H 01H 00H 03H 02H 01H f.f. ch0 UTIM ch1 f.f. ch1 312 0002H 0001H 0000H 0100H 第 13 章 UART UART の概要 , レジスタの構成 / 機能 , および UART の動作について説明します。 13.1 概要 13.2 レジスタ詳細説明 13.3 UART の動作 13.4 応用例 13.5 ボーレートと U-TIMER のリロード値の設定例 313 第 13 章 UART 13.1 概要 UART は , 非同期 ( 調歩同期 ) 通信または CLK 同期通信を行うためのシリアル I/O ポートです。MB91260B シリーズは , UART を 3 チャネル内蔵します。 ■ UART の特長 • 全二重ダブルバッファ • 非同期 ( 調歩同期 ) , クロック同期通信が可能 • マルチプロセッサモードのサポート • 完全プログラマブルボーレート • 内蔵タイマにより任意のボーレートを設定可能 ( 第 12 章 U-TIMER (16-bit timer for UART baud rate generation) を参照 ) • 外部クロックによる自由なボーレートの設定が可能 • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 転送信号は NRZ 符号 • 割込みによる DMA 転送の起動が可能 314 第 13 章 UART ■ レジスタ一覧 15 8 7 0 SCR SMR (R/W) SSR SIDR(R)/SODR(W) (R/W) 8 ビット 8 ビット 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 ORE FRE BDS RIE TIE 7 6 5 4 3 2 1 0 MD1 MD0 − − CS0 − SCKE − 7 6 5 4 3 2 1 0 PEN P SBL CL A/D REC RXE TXE RDRF TDRE シリアルインプットレジスタ シリアルアウトプットレジスタ (SIDR/SODR) シリアルステータスレジスタ (SSR) シリアルモードレジスタ (SMR) シリアルコントロールレジスタ (SCR) 315 第 13 章 UART ■ UART のブロックダイヤグラム 図 13.1-1 UART のブロックダイヤグラム 制御信号 受信割込み (CPUへ) U-タイマより SCK(クロック) 送信クロック クロック 選択回路 外部クロック SCK SIN(受信データ) 送信割込み (CPUへ) 受信クロック 受信制御回路 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ SOT(送信データ) 受信状態判定回路 受信用シフタ 送信用シフタ 受信終了 SIDR 送信開始 SODR DMA用 受信エラー発生信号 (DMACへ) R-bus MD1 MD0 SMR レジスタ CS0 SCKE SCR レジスタ PEN P SBL CL A/D REC RXE TXE SSR レジスタ PE ORE FRE RDRF TDRE BDS RIE TIE 制御信号 316 第 13 章 UART レジスタ詳細説明 13.2 UART で使用するレジスタの構成および機能について説明します。 ■ シリアルモードレジスタ (SMR: SMR0 ∼ SMR2) SMR アドレス ch.0 000063H ch.1 00006BH ch.2 000073H Bit7 MD1 R/W Bit6 MD0 R/W Bit5 Bit4 − − Bit3 CS0 W Bit2 − Bit1 SCKE R/W Bit0 − 初期値 00--0-0-B SMR は , UART の動作モードを指定します。動作モードの設定は動作停止中に行い , 動 作中にこのレジスタへの書込みは行わないでください。 [ ビット 7, ビット 6] MD1, MD0 (MoDe select) UART の動作モードを選択します。 表 13.2-1 動作モード選択 モード MD1 MD0 0 0 0 非同期 ( 調歩同期 ) : ノーマルモード [ 初期値 ] 1 0 1 非同期 ( 調歩同期 ) : マルチプロセッサモード 2 1 0 CLK 同期モード − 1 1 設定禁止 動作モード <注意事項> モード 1 の CLK 非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台のス レーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を判別で きません。したがって , マルチプロセッサモード のマスタのみをサポートします。また , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に設定してくだ さい。 [ ビット 5, ビット 4] (reserved) 常に "1" を書き込んでください。 [ ビット 3] CS0(Clock Select) UART の動作クロックを選択します。 0 : 内蔵タイマ (U-TIMER) [ 初期値 ] 1 : 外部クロック [ ビット 2] (reserved) 常に "0" を書き込んでください。 317 第 13 章 UART [ ビット 1] SCKE (SCLK Enable) クロック同期モード ( モード 2) で通信を行う場合 , SCK 端子をクロック入力端子に するか , クロック出力端子として使うかを指定します。 クロック 非同期モード時または外部クロックモード時では"0"に設定してください。 0: クロック入力端子として機能します。[ 初期値 ] 1: クロック出力端子として機能します。 <注意事項> クロック入力端子として使うには , CS0 ビットを "1" にして外部クロックを選択しておく 必要があります。 [ ビット 0] (Reverse) : 未使用ビットです。 ■ シリアルコントロールレジスタ (SCR: SCR0 ∼ SCR2) SCR アドレス ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 ビット 1 ビット 0 初期値 ch.0 000062H PEN P SBL CL A/D REC RXE TXE 00000100B ch.1 00006AH R/W R/W R/W R/W R/W W R/W R/W ch.2 000072H SCR はシリアル通信を行う場合の転送プロトコルを制御します。 [ ビット 7] PEN (Parity Enable) : シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定します。 0: パリティなし [ 初期値 ] 1: パリティあり <注意事項> パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , パ リティを付加することはできません。 [ ビット 6] P (Parity) : パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。 0: 偶数パリティ [ 初期値 ] 1: 奇数パリティ [ ビット 5] SBL (Stop Bit Length ) : 非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークであるストップビット のビット長を指定します。 0: 1 ストップビット [ 初期値 ] 1: 2 ストップビット 318 第 13 章 UART [ ビット 4] CL (Character Length) : 送受信する 1 フレームのデータ長を指定します。 0: 7 ビットデータ [ 初期値 ] 1: 8 ビットデータ <注意事項> 7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , 8 ビットデータとしてください。 [ ビット 3] A/D (Address/Data) : 非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信する フレームのデータ形式を指定します。 0: データフレーム [ 初期値 ] 1: アドレスフレーム [ ビット 2] REC (Receiver Error Clear) : "0" を書き込むことで , SSR レジスタのエラーフラグ (PE, ORE, FRE) をクリアしま す。 "1" 書込みは無効であり , 読出し値は常に "1" になります。 [ ビット 1] RXE (Receiver Enable ) : UART の受信動作を制御します。 0: 受信動作を禁止します。[ 初期値 ] 1: 受信動作を許可します。 <注意事項> 受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合 には , そのフレームの受信を完了し受信データバッファ SIDR レジスタに受信データをス トアしたところで受信動作を停止します。 [ ビット 0] TXE (Transmitter Enable) : UART の送信動作を制御します。 0: 送信動作を禁止します。[ 初期値 ] 1: 送信動作を許可します。 <注意事項> 送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は , 送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。 319 第 13 章 UART ■ シリアルインプットデータレジスタ (SIDR: SIDR0 ∼ SIDR2) シリアルアウトプットデータレジスタ (SODR: SODR0 ∼ SODR2) SIDR アドレス ch.0 000061H ch.1 000069H ch.2 000071H Bit7 D7 R Bit6 D6 R Bit5 D5 R Bit4 D4 R Bit3 D3 R Bit2 D2 R Bit1 D1 R Bit0 D0 R 初期値 不定 Bit7 D7 W Bit6 D6 W Bit5 D5 W Bit4 D4 W Bit3 D3 W Bit2 D2 W Bit1 D1 W Bit0 D0 W 初期値 不定 SODR アドレス ch.0 000061H ch.1 000069H ch.2 000071H 本レジスタは , 受信 / 送信用のデータバッファレジスタです。 データ長が 7 ビットの場合 SIDR, SODR のビット 7 (D7) は無効データとなります。 BDS=1 のときは , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側を 入れ替えるため , 見かけ上ビット 0(D0) が無視されたように見えます。 SODRレジスタへの書込みは, SSR レジスタのTDREが"1"のときに書き込んでください。 <注意事項> このアドレスへの書込みは SODR レジスタへの書込みを , 読出しは SIDR レジスタの読 出しを意味します。 ■ シリアルステータスレジスタ (SSR: SSR0 ∼ SSR2) SSR アドレス ch.0 000060H ch.1 000068H ch.2 000070H Bit7 PE R Bit6 ORE R Bit5 FRE R Bit4 Bit3 RDRF TDRE R R Bit2 BDS R/W Bit1 RIE R/W Bit0 TIE R/W 初期値 00001000B SSR は UART の動作状態を表すフラグで構成されています。 [ ビット 7] PE (Parity Error ) : 受信時にパリティエラーが発生したときにセットされる割込み要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビット ( ビット 10) に "0" を書き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0: パリティエラーなし [ 初期値 ] 1: パリティエラーが発生 [ ビット 6] ORE (Over Run Error) : 受信時にオーバランエラーが発生したときにセットされる割込み要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書き 込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0: オーバランエラーなし [ 初期値 ] 1: オーバランエラー発生 320 第 13 章 UART [ ビット 5] FRE (FRaming Error ) : 受信時にフレーミングエラーが発生したときにセットされる割込み要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書き 込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 0: フレーミングエラーなし [ 初期値 ] 1: フレーミングエラー発生 <注意事項> • シリアルモードレジスタのビット 3 による内 / 外ボーレートクロックの切換えは , 書込 み後 , すぐに反映されるので UART が動作停止状態のときに行ってください。 • シリアルモードレジスタのビット 3 はライトオンリです。 [ ビット 4] RDRF (Receiver Data Register Full ) : SIDR レジスタに受信データがあることを示す割込み要求フラグです。 SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出す と自動的にクリアされます。 0: 受信データなし [ 初期値 ] 1: 受信データあり [ ビット 3] TDRE (Transmitter Data Register Empty ) : SODR に送信データを書き込めることを示す割込み要求フラグです。 SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送信 用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを書き 込めることを表します。 0: 送信データの書込み禁止 1: 送信データの書込み許可 [ 初期値 ] [ ビット 2] BDS(Bit Direction Select) 転送方向選択ビットです。 0: 最下位ビット (LSB) 側から転送します。[ 初期値 ] 1: 最上位ビット (MSB) 側から転送します。 <注意事項> シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ替えるた め SODR レジスタへデータを書き込んだ後 , このビットを書き換えると , そのデータは無 効になります。 ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合は , 書込 み前の BDS の値に従い , SODR レジスタへの書込みが行われます。 321 第 13 章 UART [ ビット 1] RIE (Receiver Interrupt Enable ) : 受信割込みを制御します。 0: 割込みを禁止します。[ 初期値 ] 1: 割込みを許可します。 <注意事項> 受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信があ ります。 [ ビット 0] TIE (Transmitter Interrupt Enable) : 送信割込みを制御します。 0: 割込みを禁止します。[ 初期値 ] 1: 割込みを許可します。 <注意事項> 送信割込み要因は , TDRE による送信要求があります。 322 第 13 章 UART UART の動作 13.3 UART には , 非同期 ( 調歩同期 ) モードとクロック同期モードがあり , さらに非同期 モードにはノーマルモードとプロセッサモードがあります。これら各動作モードに おける動作について説明します。 ■ 動作モード UART は , 表 13.3-1 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設 定することによりモードを切り換えることができます。 表 13.3-1 UART の動作モード モード パリティ データ長 有/無 7 有/無 8 1 無 8+1 2 無 8 0 動作モード 非同期 ( 調歩同期 ) : ノーマルモード ストップビット長 1 ビットまたは 2 ビット 非同期 ( 調歩同期 ) : マルチプロセッサモード クロック同期モード 無 ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定 が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動 作しませんので設定しないでください。 ■ UART のクロック選択 ● 内部タイマ CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード値で ボーレートが決まります。このときのボーレートの算出式は , 次のとおりです。 非同期 ( 調歩同期 ) φ/ (16 × β) クロック同期 φ/β φ: 周辺系マシンクロック周波数 β: U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 [n ≧ 3]) 非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの− 1% ∼+ 1% まで の範囲で転送が可能です。 ● 外部クロック CS0 を"1"に設定して外部クロックを選択した場合のボーレートは, 外部クロックの 周 波数を φ とすると次のようになります。 非同期 ( 調歩同期 ) : φ/16 クロック同期 : φ ただし , φ は最大 3.125 MHz までです。 323 第 13 章 UART ■ 非同期 ( 調歩同期 ) モード ● 転送データフォーマット UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 13.3-1 に , データ フォーマットを示します。 図 13.3-1 転送データフォーマット ( モード 0, 1) SIN,SOT 0 1 0 Start LSB 1 1 0 0 1 0 1 1 MSB Stop A/D Stop (モード0) (モード1) 転送されたデータは 01001101B 図 13.3-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始 まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット ("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロック を入力してください。 ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定することが できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。 また , マルチプロセッサモードではパリティを付加することはできません。そのかわり , A/D ビットが必ず付加されます。 ● 受信動作 SCR レジスタの RXE ビット ( ビット 1) が "1" ならば , 常に受信動作が行われています。 受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー マットに従い 1 フレームデータの受信が行われます。1 フレームの受信が終わると , エ ラーが発生した場合にはエラーフラグのセットが行われた後 RDRF フラグ(SSRレジス タ ビット 4 ) がセットされます。このとき同じ SSR レジスタの RIE ビット ( ビット 1) が "1" にセットされていれば CPU に対して受信割込みが発生します。SSR レジスタの 各フラグを調べ , 正常受信なら SIDR レジスタを読み出して , エラーが発生していれば 必要な処理を行うようにしてください。 RDRF フラグは , SIDR レジスタを読み出すとクリアされます。 ● 送信動作 SSR レジスタの TDRE フラグ ( ビット 3) が "1" のとき , SODR レジスタに送信データ を書き込みます。ここで , SCR レジスタの TXE ビット ( ビット 0) が "1" なら送信が行 われます。 SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開 始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな ります。このとき同じ SSR レジスタの TIE ビット ( ビット 0) が "1" にセットされてい れば CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットする ように要求します。 TDRE フラグは , SODR レジスタにデータをセットするといったんクリアされます。 324 第 13 章 UART ■ クロック同期モード ● 転送データフォーマット UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 13.3-2 に , 送受信クロックとデータとの関係を示します。 図 13.3-2 転送データフォーマット ( モード 2) SODR書込み マーク SCK RXE,TXE SIN,SOT 1 LSB 0 1 1 0 0 1 0 MSB (モード2) 転送されたデータは 01001101B 内部クロック (U-TIMER ) を選択している場合は , データを送信するとデータ受信用同 期クロックが自動的に生成されます。また , 外部クロックを選択している場合は , 送信 側 UART の送信用データバッファ SODR レジスタにデータがあること (TDRE フラグ が "0") を確かめた後 , 正確に 1 バイト分のクロックを供給する必要があります。また , 送信開始前と終了後は , 必ずマークレベルにしてください。 データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スター ト / ストップビットがないのでオーバランエラー以外のエラー検出は行われません。 ● 初期化 CLK 同期モードを使用する場合の各制御レジスタの設定値を示します。 ① SMR レジスタ MD1, MD0 : "10B" CS : クロック入力を指定 SCKE : 内部タイマの場合 1, 外部クロックの場合 "0" ② SCR レジスタ PEN : "0" P, SBL, A/D : これらのビットは意味を持ちません CL : "1" REC : "0" ( 初期化するため ) RXE,TXE : 少なくとも , どちらか一方を "1" 325 第 13 章 UART ③ SSR レジスタ RIE : 割込みを使用する場合 "1", 割込みを使用しない場合 "0" TIE : "0" ● 通信開始 SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の 送信データを SODR レジスタに書き込む必要があります。 ● 通信終了 SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス タの ORE ビットによって , 通信が正常に行われたかを判断してください。 ■ 割込み発生およびフラグのセットタイミング 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 のデータは無効データとなります。 図 13.3-3 ORE, FRE, RDRF のセットタイミング ( モード 0) データ PE,ORE,FRE RDRF 受信割込み 326 D6 D7 Stop 第 13 章 UART ● モード 1 の受信動作時 ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラグ がセットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8 ビッ トのため最後の 9 ビット目のアドレス / データを示すデータは無効データとなります。 ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。 図 13.3-4 ORE, FRE, RDRF のセットタイミング ( モード 1) D7 データ アドレス/データ Stop ORE,FRE RD 受信割込み ● モード 2 の受信動作時 ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット され , CPU への割込み要求が発生します。ORE がアクティブ時は , SIDR のデータは無 効データとなります。 図 13.3-5 ORE, RDRF のセットタイミング ( モード 2) データ D5 D6 D7 ORE RDRF 受信割込み 327 第 13 章 UART ● モード 0, モード 1, モード 2 の送信動作時 TDRE は SODR レジスタへ書き込まれるとクリアされ , 内部のシフトレジスタに転送 されます。次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要求 が発生します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含 む ) を書き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止した後 , UART の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込 まれたデータは送信されます。 図 13.3-6 TDRE のセットタイミング ( モード 0, 1) SODR書込み TDRE CPUへ割込みを要求する SOT割込み SOT出力 ST D0 D1 D2 D3 D4 D5 D6 D7 ST:スタートビット D0~D7:データビット SP:ストップビット A/D :アドレス/データマルチプレクサ SP SP ST A/D D0 D1 D2 D3 図 13.3-7 TDRE のセットタイミング ( モード 2) SODR書込み TDRE CPUへ割込みを要求する SOT割込み D0 D1 D2 D3 SOT出力 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 ■ 使用上の注意 SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の 送信データを SODR レジスタに書き込む必要があります。 通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ は保証されません。 328 第 13 章 UART 13.4 応用例 UART の応用例を示します。モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に使用されます。 ■ 応用例 モード 1 を使用した場合のシステム構築例を図 13.4-1 に示します。このリソースでは , ホスト側の通信インタフェースのみサポートします。 図 13.4-1 モード 1 を使用時のシステム構築例 SOT SIN ホストCPU SOT SIN スレーブCPU#0 SOT SIN スレーブCPU#1 通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス データとは , SCR レジスタの A/D が "1" のときのデータで , それにより通信先となるス レーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR レジスタの A/D が "0" のときのデータです。図 13.4-2 にフローチャートを示します。 このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの PEN ビットは "0" としてください。 329 第 13 章 UART 図 13.4-2 モード 1 使用時の通信フローチャート (ホスト CPU ) SWTART 転送モードを"1"とする D0~D7にスレーブCPUを 選択するデータ, A/Dに"1"をセットし 1バイト転送 A/D に"0"をセット 受信動作許可 スレーブ CPU と通信 通信終了? NO YES ほかの スレーブCPUと 通信 NO YES 受信動作禁止 END 330 第 13 章 UART 13.5 ボーレートと U-TIMER のリロード値の設定例 ボーレートと U-TIMER のリロード値の設定例を示します。 ■ ボーレートと U-TIMER のリロード値の設定例 表中の周波数は , 周辺クロック周波数を表します。また , UCC1 は , U-TIMER の UTIMC レジスタ UCC1 ビットに設定する値です。 表中の " − " 部は , 誤差が± 1% を超えてしまうため使用できないことを示します。 表 13.5-1 非同期 ( 調歩同期 ) モード ボーレート ms 33 MHz 20 MHz 16.5 MHz 10 MHz 1200 833.33 858(UCC1=0) 520(UCC1=0) 428(UCC1=1) 259(UCC1=1) 2400 416.67 428(UCC1=1) 259(UCC1=1) 214(UCC1=0) 129(UCC1=0) 4800 208.33 214(UCC1=0) 129(UCC1=0) 106(UCC1=0) 64(UCC1=0) 9600 104.17 106(UCC1=1) 64(UCC1=0) 52(UCC1=1) 31(UCC1=1) 19200 52.08 52(UCC1=1) 31(UCC1=1) 26(UCC1=0) ── 38400 26.04 26(UCC1=0) ── 12(UCC1=1) ── 57600 17.36 17(UCC1=0) ── 8(UCC1=0) ── 10400 96.15 98(UCC1=0) 59(UCC1=0) 48(UCC1=1) 29(UCC1=0) 31250 32.00 32(UCC1=0) 19(UCC1=0) 15(UCC1=1) 9(UCC1=0) 62500 16.00 15(UCC1=1) 9(UCC1=0) ── 4(UCC1=0) 表 13.5-2 CLK 同期モード ボーレート ms 33 MHz 20 MHz 16.5 MHz 10 MHz 250 K 4.00 65(UCC1=0) 39(UCC1=0) 32(UCC1=0) 19(UCC1=0) 500 K 2.00 32(UCC1=0) 19(UCC1=0) 15(UCC1=1) 9(UCC1=0) 1M 1.00 15(UCC1=1) 9(UCC1=0) 7(UCC1=0)* 4(UCC1=0) *: ± 1% 以上の誤差あり 331 第 13 章 UART 332 第 14 章 8/10 ビット A/D コンバータ 10 ビット A/D コンバータの概要 , レジスタの構成 / 機能 , および動作について説明します。 14.1 概要 14.2 構成 14.3 端子 14.4 レジスタ 14.5 割込み 14.6 動作説明 14.7 A/D 変換データ保護機能 14.8 使用上の注意 333 第 14 章 8/10 ビット A/D コンバータ 14.1 概要 8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10 ビットもしくは 8 ビットのデジタル値に変換する機能があります。入力信号は 8 チャネルのアナログ入力端子から選択し , 変換起動はソフトウェア , 内部クロック , 外部端子トリガの 3 種類から選択できます。 ■ 8/10 ビット A/D コンバータの機能 アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) をデジタル値に A/D 変換す る機能があり , 次の特長をもっています。 • 変換時間は , 最小 1.2 µs( マシンクロック 33MHz 時 , サンプリング時間含む ) です。 • 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。 • 10 ビットまたは 8 ビットの分解能が選択できます。 • アナログ入力端子は 8 チャネルからプログラムで選択可能です。 • A/D 変換終了時に割込み要求を発生できます。 • 割込み許可の状態では変換データ保護機能が働くため , 連続変換してもデータの 欠落がありません。 • 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 もしくは多機能タ イマ ( 立上りエッジ ) , 外部端子トリガ ( 立下りエッジ ) から選択できます。 変換モードは 3 種類あります。 表 14.1-1 8/10 ビット A/D コンバータの変換モード 変換モード シングル変換動作 スキャン変換動作 単発変換モード 指定したチャネル (1 チャネル のみ ) を 1 回変換して終了。 連続した複数のチャネル ( 最大 8 チャネルまで指定可能 ) を 1 回変換して終了。 連続変換モード 指定したチャネル (1 チャネル のみ ) を繰り返し変換。 連続した複数のチャネル ( 最大 8 チャネルまで指定可能 ) を繰 り返し変換。 停止変換モード 指定したチャネル (1 チャネル のみ ) を 1 回変換したら一時 停止し , 次の起動がかかるま で待機。 連続した複数のチャネル ( 最大 8 チャネルまで指定可能 ) を変 換。ただし , 1 チャネル変換ご とに一時停止し , 次の起動がか かるまで待機。 • 本品種では , 8 チャネルのアナログ入力をもつユニット 0 と , 2 チャネルのアナロ グ入力をもつユニット 1, 2 の 3 ユニットを搭載しています。 • ユニット 0 の起動要因は , リロードタイマ 1 と多機能タイマの信号の OR となって います。多機能タイマによる起動許可をしたときにリロードタイマ 1 を動作させ ると , 両方の起動要因により A/D ユニット 0 は起動します。 334 第 14 章 8/10 ビット A/D コンバータ 14.2 構成 8/10 ビット A/D コンバータは , 次の 11 種類のブロックで構成されています。 • A/D 制御ステータスレジスタ (ADCS) • A/D チャネル制御レジスタ (ADCH) • A/D モード設定レジスタ (ADMD) • A/D データレジスタ (ADCD) • クロックセレクタ (A/D 変換起動用入力クロックセレクタ ) • デコーダ • アナログチャネルセレクタ • サンプルホールド回路 • D/A コンバータ • コンパレータ • コントロール回路 ■8/10 ビット A/D コンバータのブロックダイヤグラム 図 14.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム AVcc *1 AN2 AN3 AN4 AVRL MPX D/Aコンバータ AN10,AN8,AN0 AN11,AN9,AN1 AVRH1 AVRH2 入 力 回 路 逐次比較レジスタ 比較器 AN5 AN6 R-bus AN7 サンプル& ホールド回路 デコーダ A/Dデータレジスタ A/Dチャネル制御レジスタ A/Dモード設定レジスタ 多機能タイマ 16ビットリロードタイマ1 A/D制御ステータスレジスタ *2 外部端子トリガ 動作クロック プリスケーラ 335 第 14 章 8/10 ビット A/D コンバータ *1: ユニット 0: AN0 ∼ AN7 の 8 チャネル ユニット 1: AN8, AN9 の 2 チャネル ユニット 2: AN10, AN11 の 2 チャネル *2: ユニット 0: 16 ビットリロードタイマ 1 or 多機能タイマ ( リロードタイマ 1 か , 多機能タイマのいずれかで起動 ) ユニット 1: 多機能タイマ ユニット 2: 多機能タイマ ● A/D 制御ステータスレジスタ (ADCS) 一時停止および変換確認 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , A/D 変 換の分解能を選択する機能があります。 ● A/D チャネル制御レジスタ (ADCH) A/D チャネルの選択をする機能があります。 ● A/D モード設定レジスタ (ADMD) 変換モードの選択と, A/D変換のコンペア時間やサンプリング時間を設定する機能があり ます。 ● A/D データレジスタ (ADCD) A/D 変換結果を格納するレジスタです。 ● クロックセレクタ A/D 変換起動クロックを選択するセレクタです。起動クロックには , 16 ビットリロー ドタイマチャネル 1 出力 , 多機能タイマ , または外部端子トリガが選択できます。 • ユニット 0 は , 16 ビットリロードタイマチャネル 1 出力 • ユニット 1, 2 は , 多機能タイマにより起動可能 ● デコーダ A/D チャネル制御レジスタ (ADCH) の ANE0 ∼ ANE2, ANS0 ∼ ANS2 ビットの設定か ら , 使用するアナログ入力端子を選択する回路です。 ● アナログチャネルセレクタ 8 本のアナログ入力端子の中から使用する端子を選択する回路です。 • ユニット 0 は , 8 本のアナログ入力 • ユニット 1, 2 は , 2 本のアナログ入力 ● サンプルホールド回路 アナログチャネルセレクタで選択された入力電圧を保持する回路です。A/D 変換を起 動した直後の入力電圧をサンプルホールドすることで , A/D 変換中 ( 比較中 ) の入力電 圧の変動の影響を受けずに変換できます。 ● D/A コンバータ サンプルホールドされた入力電圧と比較するための基準電圧を発生します。 ● コンパレータ サンプルホールドされた入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定 します。 336 第 14 章 8/10 ビット A/D コンバータ ● コントロール回路 コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了すると , 変 換結果を A/D データレジスタ (ADCD) に格納し , 割込み要求を発生します。 337 第 14 章 8/10 ビット A/D コンバータ 14.3 端子 8/10 ビット A/D コンバータの端子および端子のブロックダイヤグラムを示します。 ■ 8/10 ビット A/D コンバータの端子 A/D コンバータの端子は , 汎用ポートと兼用になっています。表 14.3-1 に端子の機能 , 入出力形式 , 8/10 ビット A/D コンバータ使用時の設定などを示します。 表 14.3-1 8/10 ビット A/D コンバータの端子 機能 端子名 端子機能 チャネル 0 PC0/AN0 チャネル 1 PC1/AN1 チャネル 2 PC2/AN2 チャネル 3 PC3/AN3 チャネル 4 PC4/AN4 チャネル 5 PC5/AN5 チャネル 6 PC6/AN6 チャネル 7 PC7/AN7 チャネル 8 PD0/AN8 チャネル 9 ポート D 入出力 / PD1/AN9 アナログ入力 プル アップ 設定 スタン バイ 制御 ポート E 入出力 / アナログ入力 チャネル 11 PE1/AN11 端子の使用に必要な I/O ポートの設定 ポート C を入力設定 (DDRC: ビット 0 ∼ ビット 7=0) アナログ入力に設定 (AICR0: ビット 0 ∼ ビット 7=1) ポート C 入出力 / アナログ入力 チャネル 10 PE0/AN10 338 入出力形式 CMOS 出力 / CMOS 入力 または アナログ入力 なし あり ポート D を入力設定 (DDRD: ビット 0, ビット 1=0) アナログ入力に設定 (AICR1: ビット 0, ビット 1=1) ポート E を入力設定 (DDRE: ビット 0, ビット 1=0) アナログ入力に設定 (AICR2: ビット 0, ビット 1=1) 第 14 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム 図 14.3-1 AN0 ∼ AN11 端子のブロックダイヤグラム AICR0,AICR1, AICR2 PDR(ポートデータレジスタ) アナログ入力 PDRリード 出力ラッチ PDRライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御 <注意事項> • 入力ポートとして使用する端子は , 対応する DDR レジスタのビットを "0" に設定し , か つ外部端子にプルアップ抵抗を付加してください。また , AICR レジスタの対応する ビットを "0" に設定してください。 • アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設 定してください。このときの PDR レジスタの読出し値は "0" になります。 339 第 14 章 8/10 ビット A/D コンバータ 14.4 レジスタ 8/10 ビット A/D コンバータのレジスタ一覧を示します。 ■ 8/10 ビット A/D コンバータのレジスタ一覧 図 14.4-1 8/10 ビット A/D コンバータのレジスタ一覧 ビット 00007EH 340 15 14 13 12 11 10 9 8 7 6 5 4 3 AICR0 000086H AICR1 00008EH AICR2 000078H ADCH0 00007CH ADCS0 00007AH ADCD01 ADCD00 000080H ADCH1 ADMD1 000084H ADCS1 000082H ADCD11 ADCD10 000088H ADCH2 ADMD2 00008CH ADCS2 00008AH ADCD21 ADMD0 ADCD20 2 1 0 第 14 章 8/10 ビット A/D コンバータ A/D チャネル制御レジスタ (ADCH) 14.4.1 A/D チャネル制御レジスタは , A/D 変換チャネルの選択をする機能があります。 ■ A/D チャネル制御レジスタ (ADCH: ADCH0 ∼ ADCH2) アドレス: Bit15 ch0 000078H ch1 000080H - ch2 000088H リード/ライト→ - 初期値 → (X) R/W:リード/ライト可能 :初期値 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 - ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 - (X) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ANE2 0 0 0 0 1 1 1 1 ANE1 0 0 1 1 0 0 1 1 ANE0 0 1 0 1 0 1 0 1 A/D変換終了チャネル選択ビット ANS2 0 0 0 0 1 1 1 1 ANS1 0 0 1 1 0 0 1 1 ANS0 0 1 0 1 0 1 0 1 A/D変換開始チャネル選択ビット ch.0 ch.1 ch.2 ch.3 ch.4 ch.5 ch.6 ch.7 ch.0 ch.1 ch.2 ch.3 ch.4 ch.5 ch.6 ch.7 <注意事項> • A/D ユニット 0 は , ch.0 ∼ ch.7 = AN0 ∼ AN7 • A/D ユニット 1 は , ch.0, ch.1 = AN8, AN9 (ch.2 ∼ ch.7 は空き ) • A/D ユニット 2 は , ch.0, ch.1 = AN10, AN11 (ch.2 ∼ ch.7 は空き ) • A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , "0" を書き込んでください。 • A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。 341 第 14 章 8/10 ビット A/D コンバータ 表 14.4-1 A/D チャネル制御レジスタ (ADCH) の各ビットの機能説明 ビット名 ビット 15 未使用ビット ビット 14 機能 • 読出し値は不定です。 • このビットへの書込みは動作に影響しません。 • A/D 変換の開始チャネルの設定および変換中チャネル番号を確認す ANS2 ∼ ANS0: ビット 13 A/D 変換開始 ∼ ビット 11 チャネル選択 ビット るビットです。 • A/D 変換を起動するとこれらのビットに書き込まれたチャネルから A/D 変換を開始します。 • A/D 変換中は , 変換中のチャネル番号が読めます。停止変換モードで の一時停止中は , 直前に変換したチャネルの番号が読めます。 • A/D 変換の終了チャネルの設定を行うビットです。 • A/D 変換を起動するとこれらのビットに書き込まれたチャネルまで A/D 変換を行います。 • ANS2∼ ANS0と同じチャネルを設定するとそのチャネルのみ変換を 行います。また , 連続変換モードまたは停止変換モードを設定してい るときは , これらのビットで設定されたチャネルまでの変換が終わ ると ANS2 ∼ ANS0 で設定された開始チャネルに戻ります。設定チャ ネルが開始チャネル>終了チャネルのときは , 開始チャネルから AN7 まで変換し , さらに AN0 から終了チャネルまで変換し , 1 度目 ANE2 ∼ ANE0: ビット 10 の変換動作を終了します。 A/D 変換終了 ∼ チャネル選択 ( 注意事項 ) ビット 8 ビット A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) に開始チャネルを 設定した後に , A/D 変換モード選択ビット (MD1, MD0) および A/D 変 換終了チャネル選択ビット (ANE2 ∼ ANE0) をリードモディファイラ イト系命令で設定しないでください。 ANS2 ∼ ANS0 ビットは A/D 変換動作が開始するまでは前回の変換 チャネルが読み出されるため , ANS2 ∼ ANS0 ビットに開始チャネル を設定した後に , MD1, MD0 ビットおよび ANE2 ∼ ANE0 ビットを リードモディファイライト系命令で設定した場合 , ANE2 ∼ ANE0 ビットの値が書き換わる可能性があります。 342 第 14 章 8/10 ビット A/D コンバータ 14.4.2 A/D モード設定レジスタ (ADMD) A/D モード設定レジスタは , 変換モードの選択と A/D 変換のコンペア時間やサンプ リング時間を設定する機能があります。 ■ A/D モード設定レジスタ (ADMD: ADMD0 ∼ ADMD2) アドレス: ch0 000079H ch1 000081H ch2 000089H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 MD1 MD0 STS1 STS0 CT1 CT0 ST1 ST0 リード/ライト→ 初期値 → R/W (0) R/W (0) R/W (0) R/W (0) R/W (1) R/W (1) R/W (1) R/W (1) ST1 0 0 1 1 ST0 0 1 0 1 サンプリング時間設定ビット 9マシンサイクル (450 ns @ 20 MHz)* 15マシンサイクル (450 ns @ 33 MHz)* 17マシンサイクル (510 ns @ 33 MHz)* 28マシンサイクル (840 ns @ 33 MHz)* *:マシンサイクルで450 ns以上となるように設定してください。 CT1 0 0 1 1 CT0 0 1 0 1 コンペア時間設定ビット 12マシンサイクル(750 ns @ 16 MHz) * 18マシンサイクル(720 ns @ 25 MHz) * 24マシンサイクル(720 ns @ 33 MHz) * 48マシンサイクル(1440 ns @ 33 MHz)* *:マシンサイクルで720 ns以上となるように設定してください。 STS1 STS0 0 0 0 1 A/D起動要因選択ビット ソフトウェア起動 外部端子トリガ(立下りエッジ)または ソフトウェア起動 1 0 多機能タイマ*起動(立上りエッジ)または ソフトウェア起動 1 1 外部端子トリガ( 立下りエッジ) または 多機能タイマ*起動(立上りエッジ)または ソフトウェア起動 *:ユニット0の場合は, 16ビットリロードタイマ1または 多機能タイマ R/W:リード/ライト可能 :初期値 MD1 0 0 1 1 MD0 0 1 0 1 A/D変換モード選択ビット 単発変換モード1(動作中の再起動可能) 単発変換モード2(動作中の再起動不可) 連続変換モード(動作中の再起動不可) 停止変換モード(動作中の再起動不可) 343 第 14 章 8/10 ビット A/D コンバータ 表 14.4-2 A/D モード設定レジスタ (ADMD) の各ビットの機能説明 (1 / 2) ビット名 機能 • A/D 変換機能時の変換モードを選択するビットです。 • MD1, MD0 の 2 ビット値によって , 単発変換モード 1, 単発変換 モード 2, 連続変換モード , 停止変換モードのいずれかが選択さ れます。 • それぞれのモードの意味は , 以下のとおりです。 ビット 7 ビット 6 MD1, MD0: A/D 変換 モード選択 ビット 単発変換モード 1 : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D 変換を連 続して 1 度だけします。動作中の再起動が 可能です。 単発変換モード 2 : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D 変換を連 続して 1 度だけします。動作中の再起動は できません。 連続変換モード : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D 変換を連 続して , BUSY ビットで強制停止するまで繰 り返し行います。動作中の再起動はできま せん。 停止変換モード : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D 変換を 1 チャネルことに一時停止しながら , BUSY ビットで強制停止するまで繰り返します。 動作中の再起動はできません。一時停止中 の再起動は , STS1, STS0 ビットで選択した 起動要因の発生によります。 ( 注意事項 ) • 単発 , 連続 , 停止の各変換モードの再起動不可はタイマ , 外部ト リガ , ソフトすべての起動に適用されます。 • ビットの書換えは , 必ず変換動作前の A/D 動作が停止している 状態で行ってください。 • A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合 は , A/D 変換中の再起動ができます。このモードではソフトウェ ア起動 (STS1,STS0="00B" のみ設定可能です。再起動は下記の手 順で行ってください。 1. INT ビットを "0" にクリアする 2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合 は , A/D 変換中の再起動はできません。 A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行わ れずに A/D 変換は終了し , データレジスタ (ADCR1/ADCR0) に は "300H" が格納されます。したがって , A/D 変換再起動と終了 が同時に発生しないように再起動をかけてください。 344 第 14 章 8/10 ビット A/D コンバータ 表 14.4-2 A/D モード設定レジスタ (ADMD) の各ビットの機能説明 (2 / 2) ビット名 機能 • A/D 変換の起動要因の選択を行います。 • 起動要因が兼用になっている場合には , 最初に発生した起動要 ビット 5 ビット 4 STS1, STS0: A/D 起動要因 選択ビット 因で起動します。 ( 注意事項 ) 起動要因は書換えと同時に変更されますので , A/D 変換動作中 に書き換える場合には , 目的とする起動要因がない状態で切り 換えてください。 A/D 変換時のコンペア時間を選択するビットです。 アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , この ビットに設定された時間後に変換結果のデータが確定し , A/D コン トロールステータスレジスタ (ADCD) に格納されます。 ビット 3 ビット 2 CT1, CT0: コンペア時間 設定ビット ( 注意事項 ) • CT1, CT0=00B, 10B, 11B のとき , コンペア時間は 720 ns 以上とし , CT1, CT0=01B のとき , コンペア時間は 900 ns 以上となるように 設定しなければ , 正常なアナログ変換値が得られない場合があ ります。 • ビットの書換えは , 必ず変換動作前の A/D 動作が停止している 状態で行ってください。 A/D 変換時のサンプリング時間を選択するビットです。 A/D が起動されると , このビットに設定された時間 , アナログ入力 ビット 1 ビット 0 ST1, ST0: サンプリング 時間設定 ビット が取り込まれます。 ( 注意事項 ) • サンプリング時間は 450 ns 以上となるように設定しなければ , 正常なアナログ変換値が得られない場合があります。 • ビットの書換えは , 必ず変換動作前の A/D 動作が停止している 状態で行ってください。 345 第 14 章 8/10 ビット A/D コンバータ 14.4.3 A/D 制御ステータスレジスタ (ADCS) A/D 制御ステータスレジスタは , 一時停止および変換確認 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , A/D 変換の分解能を選択する機能があります。 ■ A/D 制御ステータスレジスタ (ADCS: ADCS0 ∼ ADCS2) 00007CH 000084H 00008CH リード/ライト→ 初期値 → Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 BUSY INT INTE PAUS S10 - START - R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) - (X) W (0) - (0) START 0 1 S10 0 1 A/D変換分解能選択ビット 10ビット分解能(D9~D0) 8ビット分解能(D7~D0) PAUS 0 1 一時停止フラグビット A/D変換動作の一時停止は発生していない A/D変換動作が一時停止中 INTE 0 1 割込み要求許可ビット 割込み要求出力の禁止 割込み要求出力の許可 INT 0 1 BUSY R/W :リード/ライト可能 W :ライトオンリ :初期値 346 A/D変換起動ビット (ソフトウェア起動時のみ有効) A/D変換機能を起動しない A/D変換機能を起動する 0 1 割込み要求フラグビット リード時 ライト時 A/D変換未終了 A/D変換終了 ビットクリア 変化なし、ほかへの影響なし A/D変換中ビット リード時 ライト時 A/D変換停止中 A/D変換動作中 A/D変換強制停止 変化なし、ほかへの影響なし 第 14 章 8/10 ビット A/D コンバータ 表 14.4-3 A/D 制御ステータスレジスタ (ADCS) の各ビットの機能説明 (1 / 2) ビット名 機能 • A/D コンバータの動作表示ビットです。 • 読出し時 , このビットが "0" であれば A/D 変換停止中であるこ とを示し , "1"であれば A/D 変換動作中であることを示します。 • 書込み時 , このビットへの "0" の書込みによって A/D 変換動作 ビット 15 BUSY: A/D 変換中ビット は強制的に停止されます。"1" の書込みでは変化せず , ほかへ の影響はありません。 • リードモディファイライト時の読出しは , "1" が読み出されま す。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, START=1) を同時に しないでください。 • A/D 変換によって A/D データレジスタにデータがセットされ れば , このビットは "1" にセットされます。 • このビットと割込み要求許可ビット (ADCS: INTE) が "1" のと き , 割込み要求を発生します。 ビット 14 INT: 割込み要求フラグ ビット • 書込み時は , "0" でこのビットがクリアされ , "1" では変化せず , ほかへの影響はありません。 • リードモディファイライト時の読出しは , "1" が読み出されま す。 ( 注意事項 ) このビットへの "0" 書込みによるクリアは , A/D 停止中に行っ てください。 ビット 13 INTE: 割込み要求許可 ビット • CPU への割込み出力の許可 / 禁止をするビットです。 • このビットと割込み要求フラグビット (ADCS: INT) が"1"のと き , 割込み要求を発生します。 347 第 14 章 8/10 ビット A/D コンバータ 表 14.4-3 A/D 制御ステータスレジスタ (ADCS) の各ビットの機能説明 (2 / 2) ビット名 機能 • A/D 変換動作が一時停止したときに "1" にセットされます。 この A/D コンバータには , A/D データレジスタが 1 つしかな いため , 連続変換モードを使用したときに旧変換結果の CPU による読出しが完了していなければ , 新しい変換結果の書込 みにより旧変換データは失われてしまいます。したがって , 連 続変換モードを使用するときは , 基本的には変換終了ごとに ビット 12 PAUS: 一時停止フラグ ビット 変換結果をメモリに転送するように設定しておく必要があり ます。ただし , 多重割込みなどで変換データの転送が次の変換 に間に合わない場合が想定できます。このビットはそのとき の対処として考えられた機能で , 変換終了後にデータレジス タの内容を転送するまでの間 , このビットを "1" にセットし , そ の間は A/D 変換は停止し , 次の変換データを格納しないよう になっています。 • リードモディファイライト時の読出しは , "1" が読み出されま す。 • A/D 変換の分解能を選択するビットです。 • このビットに "0" を書き込むと 10 ビット分解能が選択され , ビット 11 S10: A/D 変換分解能 選択ビット "1" を書き込むと 8 ビット分解能が選択されます。 ( 注意事項 ) • 分解能によって , 使用されるデータビットが異なります。 • ビットの書換えは , 必ず変換動作前の A/D 動作が停止してい る状態で行ってください。 ビット 10 未使用ビット • 読出し値は不定です。 • このビットへの書込みは , 動作に影響しません。 • A/D 変換動作をソフトウェア的に起動するビットです。 • このビットに "1" を書き込むと A/D 変換が起動します。 ビット 9 START: A/D 変換起動 ビット • 停止変換モード時は , このビットによる再起動はかかりませ ん。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, START=1) を同時に しないでください。 ビット 8 348 予約ビット 必ず , "0" を書き込んでください。 第 14 章 8/10 ビット A/D コンバータ 14.4.4 A/D データレジスタ (ADCD) A/D データレジスタは , A/D 変換結果を格納するレジスタです。 ■ A/D データレジスタ (ADCD: ADCD00, ADCD01, ADCD10, ADCD11, ADCD20, ADCD21) 00007AH 000082H 00008AH Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 - - - - - - D9 D8 - (X) - (X) - (X) - (X) - (X) R (X) R (X) リード/ライト→ - 初期値 →(X) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 D7 D6 D5 D4 D3 D2 D1 D0 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) D9~D0 R:リードのみ A/Dデータビット 変換データ 表 14.4-4 A/D データレジスタ (ADCD) の各ビットの機能説明 ビット名 ビット 15 ∼ ビット 10 機能 • 読出し値は不定です。 未使用ビット • このビットへの書込みは , 動作に影響しません。 • A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに 書き換えられます。 • 通常は , 最終変換値が格納されます。 • 本レジスタの初期値は不定です。 ビット 9 ∼ ビット 0 D9 ∼ D0: データビット ( 注意事項 ) • 変換データ保護機能があります。 • A/D 変換中に本ビットにデータを書き込まないようにしてくだ さい。 • D9, D8 は , 8 ビット分解能を選択したとき , "0" が読み出されま す。 349 第 14 章 8/10 ビット A/D コンバータ 14.4.5 アナログ入力制御レジスタ (AICR) アナログ入力制御レジスタは , アナログ入力を制御するレジスタです。 ■ アナログ入力制御レジスタ (AICR: AICR0 ∼ AICR2) Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 AN7E AN6E AN5E AN4E AN3E AN2E AN1E AN0E リード/ライト→ R/W 初期値 →(0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) AICR0 00007EH AN7E, AN0E 0 1 AICR1 000086H Bit15 - リード/ライト→ - 初期値 →(X) Bit14 Bit13 Bit12 - - - (X) - (X) Bit11 Bit10 Bit9 Bit8 - - - AN9E AN8E - (X) - (X) - (X) R/W (0) R/W (0) AN9E, AN8E 0 1 AICR2 00008EH アナログ入力許可ビット アナログ入力禁止 アナログ入力許可 アナログ入力許可ビット アナログ入力禁止 アナログ入力許可 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 - - - - - - AN11E AN10E - (X) - (X) - (X) - (X) - (X) R/W (0) R/W (0) リード/ライト→ - 初期値 →(X) AN11E, AN10E R/W : リード/ライト可能 :初期値 0 1 アナログ入力許可ビット アナログ入力禁止 アナログ入力許可 表 14.4-5 アナログ入力制御レジスタ (AICR) の各ビットの機能説明 ビット名 (AICR0) ビット 15 ∼ ビット 8 (AICR1, AICR2) ビット 9, ビット 8 (AICR1, AICR2) ビット 15 ∼ ビット 10 350 機能 • このビットが "0" の場合 , アナログ入力は禁止されます。 AN7E ∼ AN0E, AN9E, AN8E, AN11E, AN10E: アナログ入力許可 ビット • このビットが "1" の場合 , アナログ入力が許可されます。 • アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設定してください。このときの PDR レジスタの読出し値は "0" になります。 • 読出し値は不定です。 未使用ビット • このビットへの書込みは , 動作に影響しません。 第 14 章 8/10 ビット A/D コンバータ 14.5 割込み 8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ れることで , 割込み要求を発生させることができます。 ■ 8/10 ビット A/D コンバータの割込み 8/10ビットA/Dコンバータの割込み制御ビットと割込み要因は, 表 14.5-1 のようになっ ています。 表 14.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因 8/10 ビット A/D コンバータ 割込み要求フラグビット ADCS: INT 割込み要求許可ビット ADCS: INTE 割込み要因 A/D 変換結果の A/D データレジスタへの書込み A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCD) にセットされ ると , A/D 制御ステータスレジスタ (ADCS) の INT ビットが "1" にセットされます。こ のとき , 割込み要求が許可 (ADCS: INTE=1) されていると , 割込みコントローラに割込 み要求を出力します。 351 第 14 章 8/10 ビット A/D コンバータ 14.6 動作説明 8/10 ビット A/D コンバータには , 単発変換モード , 連続変換モード , 停止変換モー ドの 3 種類のモードがあります。各モードでの動作説明をします。 ■ 単発変換モードの動作 単発変換モードは , ANS(ANS0 ∼ ANS2) ビットと ANE(ANE0 ∼ ANE2) ビットで設定さ れたアナログ入力を順次変換していき , ANE ビットで設定された終了チャネルまで変 換が終わると A/D 変換は停止します。開始チャネルと終了チャネルが同じ (ANS=ANE) ときは ANS ビットで指定した 1 チャネルだけの変換となります。単発変換モードで動 作させるには , 図 14.6-1 の設定が必要です。 図 14.6-1 単発変換モードでの設定 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADCH/ ADMD − − ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1 ◇ ADCS ADCD BUSY INT ◇ ◇ INTE PAUS S10 ◇ − ◇ ◇ ◇ ◇ ◇ − − − − − − ◆ ◆ ◆ ◆ ◆ ◆ ◇ ◇ ◇ ◇ ◇ ◇ ◇ CT0 ST1 ST0 ◇ ◇ ◇ START 予約 ◇ 0 変換データを格納 AICR ◆ ◆ ◇:使用ビット ◆:使用する端子の対応するビットに "1" を設定 0 :"0" を設定 参考 : 単発変換モードでの変換順序の例を以下に示します。 ANS=000B, ANE=011B のとき : AN0 → AN1 → AN2 → AN3 →終了 ANS=110B, ANE=010B のとき : AN6 → AN7 → AN0 → AN1 → AN2 →終了 ANS=011B, ANE=011B のとき : AN3 →終了 352 第 14 章 8/10 ビット A/D コンバータ <注意事項> • A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ ネルとなっております。 • A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。 • A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。 • A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起 動ができます。このモードではソフトウェア起動 (STS1,STS0="00B") のみ設定可能で す。再起動は下記の手順で行ってください。 1. INT ビットを "0" にクリアする 2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起 動はできません。 A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了 し , データレジスタ (ADCR1/0) には "300H" が格納されます。したがって , A/D 変換再 起動と終了が同時に発生しないように再起動をかけてください。 353 第 14 章 8/10 ビット A/D コンバータ ■ 連続変換モードの動作 連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定 されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが 同じとき (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変 換モードで動作させるには , 図 14.6-2 に示す設定が必要です。 図 14.6-2 連続変換モードでの設定 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADCH/ ADMD − − ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1 ◇ ADCS ADCD BUSY INT ◇ ◇ INTE PAUS S10 ◇ − ◇ ◇ ◇ ◇ ◇ − − − − − − ◆ ◆ ◆ ◆ ◆ ◆ ◇ ◇ 1 ◇ ◇ ◇ ◇ CT0 ST1 ST0 ◇ ◇ ◇ START 予約 ◇ 0 変換データを格納 AICR ◆ ◆ ◇:使用ビット ◆:使用する端子の対応するビットに "1" を設定 0:"0" を設定 1:"1" を設定 参考 : 連続変換モードでの変換順序の例を以下に示します。 • ANS=000B, ANE=011B のとき : AN0 → AN1 → AN2 → AN3 → AN0 →繰返し • ANS=110B, ANE=010B のとき : AN6 → AN7 → AN0 → AN1 → AN2 → AN6 →繰返し • ANS=011B, ANE=011B のとき : AN3 → AN3 →繰返し <注意事項> • A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ ネルとなっております。 • A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。 • A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。 354 第 14 章 8/10 ビット A/D コンバータ ■ 停止変換モードの動作 停止変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を 1 チャネル ごとに一時停止しながら変換していき , ANE ビットで設定された終了チャネルまで変 換が終わると ANS ビットで設定されたアナログ入力に戻り , A/D 変換と一時停止の動 作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS ビットで 指定したチャネルだけの変換を繰り返します。一時停止時の変換の再起動は , STS1, STS0 ビットで指定した起動要因を発生します。停止変換モードで動作させるには , 図 14.6-3 の設定が必要です。 図 14.6-3 停止変換モードでの設定 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADCH/ ADMD − − ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1 ◇ ADCS BUSY INT ADCD ◇ ◇ INTE PAUS S10 ◇ − ◇ ◇ ◇ ◇ ◇ − − − − − − ◆ ◆ ◆ ◆ ◆ ◆ ◇ ◇ 1 1 ◇ ◇ ◇ CT0 ST1 ST0 ◇ ◇ ◇ START 予約 ◇ 0 変換データを格納 AICR ◆ ◆ ◇:使用ビット ◆:使用する端子の対応するビットに "1" を設定 0:"0" を設定 1:"1" を設定 参考 : 停止変換モードでの変換順序の例を以下に示します。 • ANS=000B, ANE=011B のとき : AN0 →一時停止→ AN1 →一時停止→ AN2 →一時停止→ AN0 →繰返し • ANS=110B, ANE=001B のとき : AN6→一時停止→AN7→一時停止→AN0→一時停止→AN1→一時停止→AN6→繰返し • ANS=011B, ANE=011B のとき : AN3 →一時停止→ AN3 →一時停止→繰返し <注意事項> • A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ ネルとなっております。 • A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。 • A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。 355 第 14 章 8/10 ビット A/D コンバータ 14.7 A/D 変換データ保護機能 割込み許可状態で A/D 変換を実行すると , 変換データ保護機能が働きます。 ■ A/D 変換データ保護機能 この A/D コンバータでは , 変換データ格納用のデータレジスタが 1 つしかないので , A/ D 変換をすると , 変換終了時にデータレジスタ内の格納データを書き換えます。そのた め , 変換データのメモリへの転送が間に合わないと前回のデータが一部欠落します。こ の対策として , 割込み許可 (INTE=1) のときは , 以下のようにデータ保護機能が働くよ うになっています。 変換データが A/D データレジスタ (ADCD) に格納されると A/D 制御ステータスレジス タ (ADCS) の INT ビットが "1" にセットされます。この INT ビットが "1" の間 , 次の変 換終了後も ADCD への変換データの格納は行われず , PAUS ビットをセットし , A/D は 一時停止状態になります。一時停止中 , 直前の変換データを保持しています。一時停止 状態の解除は , INT ビットのクリアにより行われます。一時停止状態解除後 , 保持して いた変換データを ADCD に格納し , 次の動作に移行します。 <注意事項> • 変換データ保護機能は , 割込み許可 (ADCS: INTE=1) 状態でしか動作しません。 • 一時停止中に再起動をかけると待機データが壊れます。 356 第 14 章 8/10 ビット A/D コンバータ 14.8 使用上の注意 8/10 ビット A/D コンバータを使用するときの注意点を示します。 ■ 8/10 ビット A/D コンバータ使用上の注意 ● アナログ入力端子 A/D 入力端子はポートの入出力端子と兼用になっており , ポート方向レジスタ (DDR) とアナログ入力許可レジスタ (AICR) で切り換えて , 使用するようになっています。ア ナログ入力として使用する端子では , DDR の対応するビットに "0" を書き込んでポー ト設定を入力にした上で , AICR レジスタでアナログ入力モード (AICRx=1) に設定して , ポート側の入力ゲートを固定してください。ポート入力モード (AICRx=0) の状態では 中間レベルの信号が入力されるとゲートに入力リーク電流が流れます。 ● 内部タイマで使用するときの注意 A/D コンバータを内部タイマで起動するとき , A/D 制御ステータスレジスタ (ADMD) の STS1, STS0 ビットで設定しますが , このとき , 内部タイマの入力値はインアクティ ブ側 ( 内部タイマのときは "L") にしておいてください。アクティブ側にしておくと , ADMD レジスタへの書込みと同時に動作し始めるときがあります。 ● A/D コンバータの電源・アナログ入力の投入順序 A/D コンバータの電源 (AVCC, AVRH0, AVRH1, AVRH2) および , アナログ入力 (AN0 ∼ AN11) への印加は , 必ずデジタル電源 (VCC) の投入後か同時に投入してください。また , 電源切断時は A/D コンバータの電源およびアナログ入力の切断後にデジタル電源 (VCC) を切断するか同時に切断してください。 ● A/D コンバータの電源電圧について ラッチアップ防止のため , A/D コンバータの電源 (AVCC) は , デジタル電源 (VCC) の電 圧を超えないようにしてください。 ● A/D ユニット 1, 2 の設定について A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ ネルとなっております。そのため , A/D ユニット 1, 2 の使用時 , A/D チャネル制御レジ スタ (ADCH) の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。ま た , 必ず , "ANS0 ≦ ANE0" となるように設定してください。 ● A/D 変換の再起動について A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起 動ができます。このモードではソフトウェア起動 (STS1,STS0="00B") のみ設定可能で す。再起動は下記の手順で行ってください。 1. INT ビットを "0" にクリアする 2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起 動はできません。 A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了 357 第 14 章 8/10 ビット A/D コンバータ し , データレジスタ (ADCR1/ADCR0) には "300H" が格納されます。したがって , A/D 変 換再起動と終了が同時に発生しないように再起動をかけてください。 358 第 15 章 積和演算回路 積和演算回路の特長 , レジスタの構成 / 機能 , およ び積和演算マクロ ( 定義と各命令 ) について説明し ます。 15.1 概要 15.2 レジスタ説明 15.3 動作説明 15.4 命令詳細説明 359 第 15 章 積和演算回路 15.1 概要 積和演算回路の特長 , レジスタ一覧 , ブロックダイヤグラムおよび命令定義を示しま す。 ■ 特長 • 高速積和演算 (1 システムクロックサイクル ) • データ形式 : 16 ビット固定小数点 (16 × 16 + 40 ビット ) • 命令領域 : 256 × 16 ビット • データ領域 : 64 × 16 ビット× 2 組 • 丸め処理可能 • 飽和処理可能 • 加算項目数 : 最大 64 項 • 命令 : MAC 命令 , STR 命令 , JMP 命令 • 遅延処理 : 64 × 16 ビット内で自由に転送可能 • 固定小数点方式 : Q8 ∼ Q15 の内から選択可能 • プログラム実行制御 : 8 とおりの命令を選択可能 • 変数モニタ : 8 × 16 ビットまでの計算結果をプログラム停止させずに モニタ可能 360 第 15 章 積和演算回路 ■ レジスタ一覧 15 8 7 0 アドレス :39EH 予約領域 アドレス :3A0H DSP-PC ( プログラムカウンタ ) アドレス :3A2H DSP-LY( 遅延レジスタ ) 上位 DSP-LY( 遅延レジスタ ) 下位 Read/Write アドレス :3A4H DSP-OT0( 出力キュー 0) 上位 DSP-OT0( 出力キュー 0) 下位 Read アドレス :3A6H DSP-OT1( 出力キュー 1) 上位 DSP-OT1( 出力キュー 1) 下位 Read アドレス :3A8H DSP-OT2( 出力キュー 2) 上位 DSP-OT2( 出力キュー 2) 下位 Read アドレス :3AAH DSP-OT3( 出力キュー 3) 上位 DSP-OT3( 出力キュー 3) 下位 Read アドレス :3ACH 予約領域 予約領域 アクセス禁止 アドレス :3AEH 予約領域 予約領域 アクセス禁止 アドレス :3B0H DSP-OT4( 出力キュー 4) 上位 DSP-OT4( 出力キュー 4) 下位 Read アドレス :3B2H DSP-OT5( 出力キュー 5) 上位 DSP-OT5( 出力キュー 5) 下位 Read アドレス :3B4H DSP-OT6( 出力キュー 6) 上位 DSP-OT6( 出力キュー 6) 下位 Read アドレス :3B6H DSP-OT7( 出力キュー 7) 上位 DSP-OT7( 出力キュー 7) 下位 Read アクセス禁止 DSP-CSR ( コントロール / ステータス ) Read/Write アドレス: 積和演算 アドレス マクロ C000H 00H : X-RAM (係数RAM)...64×16ビット C07EH Read/Write : 3FH アドレス: 積和演算 アドレス マクロ C080H 00H : Y-RAM (変数RAM)...64×16ビット Read/Write : C0FEH 3FH アドレス: 積和演算 アドレス マクロ C100H 00H : C2FEH (注意事項) I-RAM (命令RAM)...64×16ビット Read/Write : FFH ・CPUから上記レジスタ/RAM領域への書込みは, 必ず偶数番地へのハーフワード (またはワード)転送命令で行ってください。 ・RAM領域へのCPUの転送命令によるバイト書込みや読出しは可能です。 ただし, 積和演算回路としてこのRAM領域を使用する場合は, 必ず偶数番地への ハーフワード (またはワード) 転送命令で行ってください。 361 第 15 章 積和演算回路 ■ ブロックダイヤグラム 積和演算回路のブロックダイヤグラムを図 15.1-1 に , 概略説明を表 15.1-1 に示します。 図 15.1-1 積和演算回路のブロックダイヤグラム 動作制御部 DSP-CSR 命令制御部 DSP-PC 命令デコード部 I-RAM IF DEC1 (256×16ビット) DEC 演算部 X-RAM (64×16ビット) Y-RAM 40 ADD 16 16 MUL 40 ACC 40 RND 16 CLP 32 (64×16ビット) 遅延レジスタ DSP-LY LY-DLY MPX DSP-OT0~DSP-OT7 変数モニタ 362 第 15 章 積和演算回路 表 15.1-1 ブロックダイヤグラム概略説明 ブロック レジスタ 機能 積和演算マクロの動作制御レジスタです。CPU および servo block から 以下の動作を制御します。 動作制御部 DSP-CSR • 計算開始 / 終了指示 • 割込み制御 • プログラムフロー制御 (積和演算マクロの条件付き分岐命令に使用) DSP-PC プログラムカウンタ CPU から設定した先頭番地よりプログラム実行を開始します。 I-RAM 256 × 16 ビットの命令 RAM です。 積和演算マクロが計算停止中 , CPU から読出し / 書込みできます。 計算開始前に CPU から命令コードをロードしてください。 IF 命令フェッチレジスタです。 DEC1* DEC* 命令デコーダです。 X-RAM 64 × 16 ビットのデータ RAM です。 積和演算マクロが計算停止時 , CPU から読出し / 書込みできます。 計算開始前に CPU から係数をロードしてください。 Y-RAM 64 × 16 ビットのデータ RAM です。 積和演算マクロが計算停止時 , CPU から読出し / 書込みできます。 計算開始前に CPU から変数をロードしてください。 MUL* 16 × 16 → 32 ビット乗算器です。 ADD* 32 + 40 → 40 ビット 加算器です。 ACC* 40 ビットのアキュムレータです。 CLP* RND* SLQ* 40 → 16 ビット転送時 , 範囲外の 16 ビットデータ時に最大値に飽和し ます。 40 → 16 ビット転送時 , 下位ビットの丸め処理を行います。 40 → 16 ビット転送時 , 転送ビットを選択します。 遅延レジスタ DSP-LY LY-DLY* 遅延レジスタです。 積和演算時 , 変数値を保持し , Y-RAM に書き戻すことができます。 変数モニタ出力 DSP-OT0 ∼ DSP-OT7 変数モニタ出力レジスタです。 Y-RAM の 0 ∼ 7 番地の内容と同じ値を保持しています。 計算中 (Y-RAM のアクセス禁止中 ) に Y-RAM の 0 ∼ 7 番地の値をモ ニタできます。 命令制御部 演算部 *:CPU からアクセス不可 363 第 15 章 積和演算回路 ■ 命令定義 積和演算マクロの命令は , 大きく分けて 3 種類 (MAC/STR/JMP 命令 ) あります。以下 の説明では , 3 種類 以外の命令を表記上使用していますが , その場合下記に示す命令の 階層構成となります。 ・MAC命令 積和命令(CLAC ビット = 0) 乗算命令(CLAC ビット = 1) ・STR命令 HLT命令(HLT ビット = 1) INT命令(SIRQ ビット = 1) ・JMP命令 無条件分岐命令(COND ビット = 0) 条件付き分岐命令(COND ビット = 1) HLT命令(HLT ビット = 1) INT命令(SIRQ ビット = 1) 364 第 15 章 積和演算回路 レジスタ説明 15.2 積和演算回路で使用するレジスタの構成および機能について説明します。 ■ DSP-CSR ( コントロール / ステータスレジスタ ) コントロール / ステータスレジスタは 8 ビット長のレジスタであり , 積和演算マクロの ステート切換え/CPUへの割込みのコントロールおよび積和演算マクロの状態を示す各 種フラグより構成されています。また , 積和演算マクロの条件付き分岐命令の条件設定 も本レジスタで設定を行います。 本レジスタは , 8 ビットレジスタで外部より常に読出し / 書込み可能です。 ● コントロール機能 • 積和演算マクロのステート ( 計算の開始 / 停止 ) の遷移 (GoDSP and HltDSP) • CPU に対する割込みマスク (IeDSP) • 積和演算マクロの条件付き分岐命令の条件設定 (USR2, USR1, USR0) • 積和演算マクロのステート ( 計算の開始 / 停止 ) の遷移 (GoDSP and HltDSP) • CPU に対する割込みマスク (IeDSP) • 積和演算マクロの条件付き分岐命令の条件設定 (USR2, USR1, USR0) ● ステータス機能 • 積和演算マクロの現在のステート取得フラグ (RunDSP) • 割込み要求フラグ (IrqDSP) • 飽和処理フラグ (SatDSP) DSP-CSR Bit7 アドレス : 3A1H Bit6 Bit5 USR2 USR1 USR0 IrqDSP IeDSP HltDSP GoDSP Write USR1 USR0 IrqDSP IeDSP − − SatDSP USR2 Bit4 Bit3 Bit2 Bit1 (R) (R/W) (R/W) (R/W) (R/W) (R/W) (W) 0 0 0 0 0 0 0 Bit0 RunDSP Read (R/W) ←リード / ライト 0 ←初期値 [ ビット 7] SatDSP ( 飽和処理フラグ ) : リードオンリ • 計算途中で飽和処理を行ったことを保持するステータスフラグです。 • STR 命令で飽和処理を指示し (CLP = 1) , 実際に飽和処理が行われた場合にセッ トされます。また , 計算中一度セットされると次の計算開始まで値を保持してい ます。 • 本ビットは計算開始によりクリアされます。 Set 要因 : 計算途中で STR 命令による飽和処理が行われた場合セット Clear 要因 : 計算開始によりクリア [ 初期値 ] • リセット時 : "0" に初期化されます ( 飽和処理なし )。 • 読出しのみ可能です。書込みしてもビット値は変化しません。 365 第 15 章 積和演算回路 [ ビット 6 ∼ビット 4] USR2, USR1, USR0 ( ジャンプ条件設定ビット ) : Read/Write • 本ビットは , 積和演算マクロの条件付き分岐命令 (COND ビット =1 のとき ) で参 照され , 本ビット値と条件付き分岐命令の UBP フラグが一致 ( 条件成立 ) すると ジャンプします。すなわち , この条件付き分岐命令と計算命令を組み合わせるこ とで 8 種類の計算ルーチンを CPU 側から切換え可能です。 • リセット時 : "000B" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 3] IrqDSP ( 割込み要求フラグ ) : Read/Write • 積和演算マクロのソフトウェア割込み要求が発生したことを示すフラグです。割 込み要求が許可されているとき (IeDSP = 1) に , 本ビットがセットされると CPU に対し割込み要求を発生します。 • 積和演算マクロの割込み要求は STR 命令 /JMP 命令の SIRQ ビットを "1" にする ことで , ソフトウェア的に発生させます。 Set 要因 : 積和演算マクロのソフトウェア割込み (STR 命令 /JMP 命令 ) 発生に よりセット Clear 要因 : "0" 書込みによりクリア [ 初期値 ] • リセット時 : "0" に初期化されます ( 割込み要求なし ) 。 • 読出し / 書込み可能です。ただし , 書込みは "0" のみ可能で "1" を書き込んでも ビット値は変化しません。 • リードモディファイライト命令における読出し値は , ビット値にかかわらず常に "1" です。 [ ビット 2] IeDSP ( 割込み要求許可ビット ) : Read/Write • CPU に対する割込み要求 (IrqDSP = 1) を以下のように制御します。 0: 割込み要求出力禁止 (IrqDSP がセットされても割込み発生せず ) [ 初期値 ] 1: 割込み要求出力許可 (IrqDSP がセットされると割込み発生する ) • リセット時 : "0" に初期化されます ( 割込み要求出力禁止 )。 • 読出し / 書込み可能です。 [ ビット 1] HltDSP ( 計算停止 ) : Write only • 計算の強制停止ビットです。 • 本ビットに "1" を書き込むと , 計算実行中 (RunDSP = 1) であれば実行中の命令が 終了後 (2 サイクルであれば 2 サイクル後 ) 計算を停止し RunDSP フラグがクリア されます。 • 計算停止中の場合 , 何も影響を与えません。 • 本ビットにより強制停止させた場合 , DSP-PC は停止した命令の次の命令アドレ スを指していますので , 命令の継続実行が可能です。 - "1" 書込みにより強制停止 - "0" 書込みは無効。読出しは常に "0" • リセット時 : "0" に初期化されます。 366 第 15 章 積和演算回路 [ ビット 0] GoDSP ( 計算開始 ) : Write only RunDSP ( 計算実行中フラグ ) : Read only • GoDSP ビットに "1" を書き込むことにより , 計算の開始を指示します。計算停止 中 (RunDSP = 0) であれば計算の起動となり , RunDSP フラグがセットされます。 既に計算実行中 (RunDSP = 1) であれば , 何も影響を与えません。 • RunDSP フラグは , 計算を実行中であることを示します。計算の開始でセットさ れ , HltDSP ビットへの "1" 書込みまたは積和演算マクロの HLT 命令実行でクリ アされます。 • 計算実行中 (RunDSP = 1) は , DSP-PC, DSP-LY, X-RAM, Y-RAM, I-RAM は CPU か らアクセスできません。DSP-CSR, DSP-OT0 ∼ DSP-OT7 のみがモニタできます。 • 計算を開始するには , 起動と同時またはそれ以前に DSP-PC へ計算ルーチンの先 頭アドレスを格納する必要があります。 (1) 書込み時機能 (GoDSP: 計算開始 ) 0: 機能なし / 動作に影響なし 1: 計算停止中の場合 → 計算開始 計算実行中の場合 → 何も影響がありません (2) 読出し時機能 (RunDSP: 計算実行中フラグ ) 0: 計算を停止中である [ 初期値 ] クリア要因→ HltDSP 1 書込みおよび HLT 命令実行 1: 計算を実行中である Set 要因→ 計算開始 • リセット時 : "0" に初期化されます ( 計算停止中 )。 • 読出し / 書込み可能です。ただし , 書込み時と読出し時では , 上記のように意味 が異なります。 • リードモディファイライト命令における読出し値は , ビット値にかかわらず常に "0" です。 ■ DSP-PC ( プログラム・カウンタ ) プログラム・カウンタは 8 ビット長のカウンタであり , 積和演算マクロで実行する命令 コードが格納されているメモリ (I-RAM) アドレスを示しています。プログラム・カウン タは命令の実行により自動的に更新されますが , 積和演算マクロの JMP により書き換え ることができます。また , 計算停止中でのみ CPU よりアクセス (R/W) 可能であり , 計算 開始と同時またはそれ以前に DSP-PC へ計算ルーチンの先頭アドレスを格納する必要が あります。 HLT 命令実行後 , または DSP-CSR の HltDSP へ 1 書込み後 , DSP-PC は停止した命令の 次のアドレスを指しており , 再度 GoDSP をセットすることにより継続してプログラム を実行できます。 367 第 15 章 積和演算回路 DSP-PC アドレス : 0003A0H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 − − − − − − − − (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) X X X X X X X Write Read (R/W) ←リード / ライト X ←初期値 • リセット時 : 不定となります。 • 読出し / 書込み可能ですが , 積和演算マクロが計算停止中 (DSP-CSR: RunDSP = 0) でのみアクセス可能です。 • 計算実行中 (DSP-CSR: RunDSP = 1) では , バスから切り離されるため CPU からの アクセスはできなくなります。 368 第 15 章 積和演算回路 ■ DSP-LY ( 遅延レジスタ ) DSP-LY は 16 ビット長のレジスタであり , 積和演算マクロの MAC 命令の遅延書込み ビット (LDLY) が "1" のときに使用されます。計算中 (DSP-CSR: RunDSP = 1) はアク セスができません。 • MAC 命令の LDLY ビットが "1" のときは , 次の 2 つの動作を順次実行します。 ① DSP-LY レジスタの内容を LY-DLY レジスタに転送する。 ② MAC 命令で選択した Y-RAM の読出しデータを DSP-LY レジスタに格納する。 • MAC 命令の STLY ビットが "1" のときは , MAC 命令実行後に LY-DLY レジスタ の値を MAC 命令で選択した Y-RAM のアドレスへ書き込みます。このとき , 実行 時間は 2 サイクルになります。 DSP-LY bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Write アドレス : 0003A2H Read (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) X X X X X X X (R/W) ←リード / ライト X ←初期値 • リセット時 : 不定となります。 • 読出し / 書込み可能ですが , DSP-LY が計算停止中 (DSP-CSR: RunDSP = 0) でのみ アクセスが可能です。計算実行中 (DSP-CSR: RunDSP = 1) では , バスから切り離 されるため CPU からのアクセスはできなくなります。 ■ DSP-OT0 ∼ DSP-OT7 ( 変数モニタレジスタ ) 変数モニタレジスタとして , 16 ビットのレジスタを 8 個もちます。電源投入時の初期 状態を除き , Y-RAM の 0 ∼ 7 番地と同じ内容を保持しています。CPU より常に読出し のみ可能であり , 計算中であっても Y-RAM の 0 ∼ 7 番地の内容をモニタできます。 DSP-OT0 ∼ DSP-OT7 bit 15 14 13 12 11 10 DSP-OT0 DSP-OT1 DSP-OT2 DSP-OT3 DSP-OT4 DSP-OT5 DSP-OT6 DSP-OT7 0003A4H 0003A6H 0003A8H 0003AAH 0003B0H 0003B2H 0003B4H 0003B6H 9 8 7 6 5 4 3 2 1 0 Read Only (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) ←リード / ライト X X X X X X X X X X X X X X X X ←初期値 • リセット時 : 不定となります。 • 常に読出しのみ可能です。積和演算マクロがプログラム実行中であっても読出し 可能です。 369 第 15 章 積和演算回路 15.3 動作説明 積和演算回路の動作モードおよび命令定義について説明します。 ■ 動作モード 積和演算マクロの動作は , DSP-CSR レジスタの操作により制御されます。 積和演算マクロの状態としては , 以下の 2 種類の状態があり , 停止状態で GoDSP ビッ トに "1" を書き込むか Servo Block から GODSPSV 信号を入力することにより , 積和演 算マクロはプログラム実行を開始します。また , 停止中と計算中とでは CPU からアク セス可能なレジスタおよびメモリに違いがあります。 HltDSP = 1 or HLT Stopped RunDSP = 0 Running RunDSP = 1 GoDSP = 1 各状態について説明します。 • 停止中 : 積和演算マクロは停止状態です。 CPU から命令 RAM (I-RAM), データ RAM (X-RAM and Y-RAM) および 積和演算マクロの全レジスタがアクセスできます。 HltDSP に "1" を書き込むか HLT 命令の実行により , 本状態に遷移しま す。また , システムリセット時は本状態に初期化されます。 • 計算中 : 積和演算マクロは計算状態です。 停止状態から GoDSP ビットに "1" を書き込むと , 本状態に遷移し現在 の DSP-PC( プログラムカウンタ ) からプログラム実行を開始します。 HltDSP ビットに "1" を書き込むか HLT 命令が実行されると , 停止状態 に遷移しプログラム実行を停止します。 CPU からは , DSP-CSR, DSP-OT0 ∼ DSP-OT7 レジスタのみアクセスで きます ( その他のレジスタおよび RAM はアクセス禁止 *)。 *: アクセス禁止ですが , R/W した場合は以下のようになります。 書込み → 何も影響ありません ( 書き込まれません )。 読出し → 不定 370 第 15 章 積和演算回路 ■ 命令動作 DSP-CSR レジスタの GoDSP ビットに "1" を書き込むと , 積和演算マクロは現在の DSPPC ( プログラムカウンタ ) から命令実行を開始します (CPU の動作と並列して動作しま す)。 実行に先立って , I-RAM および DSP-PC の値を設定してください (DSP-CSR と DSP-PC は同時設定が可能です ) 。 積和演算マクロの命令実行が開始されると , 以下の動作制御が行われます。 • 積和演算マクロで HLT 命令 * を実行すると , その命令実行が終了後 , 停止状態に 遷移します。 このとき , DSP-PC は HLT 命令の次のアドレスを指した状態で停止します。 • JMP 命令や STR 命令実行時 , CPU に割込み要求を発生させることができます ( 割 込みマスク可能 )。 • DSP-CSR の USR0 ∼ USR2 ビットを参照する条件付き分岐命令を使用し , プログ ラムフローの切換えを行います。 *: HLT 命令とは , JMP, STR 命令の HLT ビットが "1" である命令のことです。 ■ 演算機能 積和演算マクロは , 2 組の 16 ビットデータ RAM (X-RAM and Y-RAM) を持ち , 積和 ( お よび乗算 ) 命令実行時 , 各組の RAM データを読み込んで符号付き積和 ( および乗算 ) 演算を行い , 40 ビットのアキュムレータに格納します。以下にデータ形式を示します。 15 ×) 39 +) 0 S X-RAM S Y-RAM 31 0 S .... S 乗算結果 (32ビット) S 積和命令直前のAcc S ACC (Accumulator) <注意事項> • 乗算命令の場合は , 乗算結果を 40 ビットに符号拡張した値がアキュムレータに格納さ れます ( 直前のアキュムレータの内容はゼロクリアされます )。 • "S" は符号ビットを示します。 積和命令を数多く繰り返してアキュムレータがオーバフローした場合は , 結果が保証 されません。 積和命令は連続して 512 回以上行わないでください。 371 第 15 章 積和演算回路 ■ 遅延書込み機能 積和 ( および乗算 ) 命令実行時 , 以下の転送動作も併せて行うことができます。本転送 と演算処理を併用することで , デジタルフィルタにおけるデータの遅延処理が容易に 実現できます。 • Y-RAM からの読出し値を DSP-LY レジスタに格納 • 命令実行前の DSP-LY レジスタ値を , LY-DLY レジスタを経由で Y-RAM の読出し アドレスに遅延書込み ■ 演算結果の転送処理 アキュムレータに格納された計算結果を X/Y-RAM へ転送する場合 , 16 ビット幅で転 送されますが , その際 , 以下に示す位取り処理が行われて転送されます。 • 出力ビット選択 40 ビットのアキュムレータのうち , 以下に示すビット幅を選択できます。 ビット 27 ∼ 12 (Q12 フォーマット ) ビット 28 ∼ 13 (Q13 フォーマット ) ビット 29 ∼ 14 (Q14 フォーマット ) ビット 30 ∼ 15 (Q15 フォーマット ) ビット 23 ∼ 8 (Q8 フォーマット ) ビット 24 ∼ 9 (Q9 フォーマット ) ビット 25 ∼ 10 (Q10 フォーマット ) ビット 26 ∼ 11 (Q11 フォーマット ) • 丸め処理 選択した出力ビットの LSB の直下のビット値を 0 捨 1 入します。 • 飽和処理 丸め後の 16 ビットデータの符号ビット (MSB) と , アキュムレータ内の上位ビット の比較をして異なるビットがある場合 , 飽和処理が行われます。飽和結果は , ア キュムレータの符合ビット (MSB) によって以下の値になります。 アキュムレータの符号が "0" の場合→正の最大値 "7FFFH" に飽和されます。 アキュムレータの符号が "1" の場合→負の最大値 "8000H" に飽和されます。 以下に例を示します。 372 第 15 章 積和演算回路 図 15.3-1 39 ........... 28 27 ............... 12 11 ............ 0 7 F F H F F F F H F F F F H 0 0 0 0 H アキュムレータ (ビット27~ビット12選択):位取り選択 1 +) 0 F F F (アキュムレータのBit 11):丸め処理 H Bit 15 比較 (正の最大値に飽和):飽和処理 飽和処理 7 F F F H 転送データ ■ 変数モニタ出力 積和演算マクロは , Y-RAM の 0 ∼ 7 番地の内容を常に保持しているレジスタ (DSP-OT0 ∼ DSP-OT7) があります。Y-RAM の 0 ∼ 7 番地にデータ書込みが行われた際 (CPU から の書込み , STR 命令による書込み , 遅延書込み ), DSP-OT0 ∼ DSP-OT7 レジスタにも同 じ値が格納されます。 計算中は CPU からの Y-RAM へのアクセスが禁止されますが , CPU で参照したい計算 結果を STR 命令で Y-RAM の 0 ∼ 7 番地へ格納することによって CPU から常に計算結 果を参照することができます。 <注意事項> 積和演算マクロにおいて DMA 転送を使用する場合は , • CPU クロックは周辺クロックにと同じもしくは速い設定にしてください。 • CPU クロックが周辺クロックよりも遅い場合 , DMA 転送は正しく動作しません。 373 第 15 章 積和演算回路 15.4 命令詳細説明 積和演算回路で使用する命令の詳細説明を示します。 ■ MAC 命令 動作 : ACC ← ACC + X data × Y data LY-DLY ← DSP-LY DSP-LY ← Y data (LDLY = 1) Y-RAM ← LY-DLY (STLY = 1) 説明 : アキュムレータに X-RAM の X データと Y-RAM の Y データの乗算 値を加算します。 同時に DSP-LY レジスタの内容を LY-DLY レジスタへ転送します。 ワード数 : サイクル数: 1 ワード (16 ビット幅 ) 1 システムクロック cycle (STLY = 1 のとき 2 サイクルになります。 ) 動作コード : Bit 15 14 13 12 1 CLAC STLY LDLY 11...................6 5....................0 X-Addr Y-Addr [ ビット 14] CLAC (Clear ACC) 本ビットをセットすることにより乗算命令として機能します。 0: ACC ← ACC + X data × Y data [ 積和命令 ] 1: ACC ← 0 + X data × Y data [ 乗算命令 ] [ ビット 13] STLY (Store LY) • このビットが "1" のときに以下の動作を行います。"0" の場合は演算のみ実行さ れます。 • 演算後 , さらに LY-DLY レジスタの内容を , Y-RAM の Y-Addr 番地へ格納します。 • 本ビットをセットした場合のみ実行時間が 2 サイクルとなります。 [ ビット 12] LDLY (Load LY) • このビットが "1" のときに以下の動作を行います。"0" の場合は演算のみ実行さ れます。 • 演算時に Y-RAM の Y-Addr 番地の内容を DSP-LY レジスタにも格納します。 [ ビット 11 ∼ビット 6] X-Addr (X-RAM Address) X-RAM 内の X データを指定するためのアドレス指定ビットです。 374 第 15 章 積和演算回路 [ ビット 5 ∼ビット 0] Y-Addr (Y-RAM Address) Y-RAM 内の Y データを指定するためのアドレス指定ビットです。 図 15.4-1 X-Addr Y-Addr X-RAM if (STLY==1) then Store Y-RAM if (LDLY==1) then Load X data Y data Multiply-Add Calculator DSP-Y LY-DLY CPU bus ■ STR 命令 ( 転送命令 ) 動作 : Data RAM ← Accumulator 説明: アキュムレータの 40 ビットデータを RND/CLP/SLQ フラグの指示 により 16 ビットデータに変換し , SLY フラグと X/Y-Addr の指示す るデータ RAM へ格納します。 ワード数 : 1 ワード (16 ビット幅 ) サイクル数 : 1 システムクロック cycle 動作コード : Bit 15 14 13 12 11 10 9..........7 6 5...............0 0 1 HLT SIRQ RND CLP SLQ SLY X/Y-Addr [ ビット 13] HLT (HLT 命令指示フラグ ) 本ビットをセットすることにより , 命令実行後に積和演算マクロはプログラム実行 を停止します。 DSP-CSR レジスタの RunDSP フラグはクリアされます。 [ ビット 12] SIRQ (INT 命令指示フラグ ) 本ビットをセットすることにより , 命令実行後に CPU に対する割込み要求を発生さ せ , DSP-CSR レジスタの IrqDSP フラグをセットします。 [ ビット 11] RND (Rounding) SLQ ビット指示された 16 ビットデータに対し , 丸め処理を指示するビットです。 丸め処理は 16 ビットデータの LSB より 1 つ下位のビットを 0 捨 1 入します。 375 第 15 章 積和演算回路 [ ビット 10] CLP (Clipping) アキュムレータの計算結果が , SLQ ビットで指示された 16 ビットデータに対して オーバフローした値である場合 , 16 ビットデータに対して飽和処理を指示するビッ トです。 実際には , アキュムレータの MSB(39 ビット ) から 16 ビットデータの MSB(SLQ 指 示 ) が同じ値でない場合に飽和処理が行われます。丸め処理の指定があった場合は , 丸め処理の結果に対して比較されます。 丸め処理前のアキュムレータの値が正のときは正の最大値 (7FFFH) に , 負の場合は 負の最大値 (8000H) が転送されます。 丸め処理および飽和処理によりアキュムレータの符号は反転することなく , 符号は 保存されます。 [ ビット 9 ∼ビット 7] SLQ アキュムレータからデータ RAM へ転送するビット位置を指定します。 SLQ ビット オーバフロー判定ビット 転送 16 ビット Data 丸めビット 固定小数点方式 0 0 0B ビット 39 ∼ビット 27 ビット 27 ∼ビット 12 ビット 11 Q12 0 0 1B ビット 39 ∼ビット 28 ビット 28 ∼ビット 13 ビット 12 Q13 0 1 0B ビット 39 ∼ビット 29 ビット 29 ∼ビット 14 ビット 13 Q14 0 1 1B ビット 39 ∼ビット 30 ビット 30 ∼ビット 15 ビット 14 Q15 1 0 0B ビット 39 ∼ビット 23 ビット 23 ∼ビット 8 ビット 7 Q8 1 0 1B ビット 39 ∼ビット 24 ビット 24 ∼ビット 9 ビット 8 Q9 1 1 0B ビット 39 ∼ビット 25 ビット 25 ∼ビット 10 ビット 9 Q10 1 1 1B ビット 39 ∼ビット 26 ビット 26 ∼ビット 11 ビット 10 Q11 [ ビット 6] SLY 転送先を指定します。 0:X-RAM 1:Y-RAM [ ビット 5 ∼ビット 0] X/Y Addr (RAM Address) データ RAM の直接アドレス指定 ■ JMP 命令 ( 分岐命令 ) 動作 : 説明 : ワード数 : サイクル数 : 動作コード : 376 [ 条件成立時 ] DSP-PC ← J-Addr8 [ 条件不成立時 ] DSP-PC ← DSP-PC + 1 条件が成立したとき分岐し , 成立しなければ何も実行しません。 1 ワード (16 ビット幅 ) 1 システムクロック cycle 第 15 章 積和演算回路 Bit 15 14 13 12 11 10.........8 7..............0 0 0 HLT SIRQ COND UBP J-Addr8 [ ビット 13] HLT (HLT 命令指示フラグ ) 本ビットをセットすることにより , 命令実行後に積和演算マクロはプログラム実行 を停止します。 DSP-CSR レジスタの RunDSP フラグはクリアされます。 [ ビット 12] SIRQ (INT 命令指示フラグ ) 本ビットをセットすることにより , 命令実行後に CPU に対する割込み要求を発生さ せます。 DSP-CSR レジスタの IrqDSP フラグをセットします。 [ ビット 11] COND (CONDition) 0: 無条件分岐 1: 条件付き分岐 [ ビット 10 ∼ ビット 8] UBP2 ∼ UBP0 ( 条件指定 ) 条件付き分岐時の条件を設定します。DSP-CSR レジスタの USR2 ∼ USR0 ビットと 本ビットが一致すると条件成立となります。 無条件分岐のときは , "000B" に設定する必要があります。 [ ビット 7 ∼ビット 0] J-Addr8 (Jump Address) 分岐先のアドレス指定 377 第 15 章 積和演算回路 378 第 16 章 DMAC (DMA コントローラ ) DMA コントローラ (DMAC) の概要 , レジスタの構 成 / 機能 , および DMA コントローラ (DMAC) の動 作について説明します。 16.1 概要 16.2 DMAC のレジスタ 16.3 DMAC の動作 16.4 転送要求の設定 16.5 転送シーケンス 16.6 DMA 転送全般 16.7 動作フローチャート 16.8 データパス 379 第 16 章 DMAC (DMA コントローラ ) 16.1 概要 DMAC は , DMA (Direct Memory Access) 転送を実現するためのモジュールです。 DMA 転送により , CPU を介さずに各種データ転送を高速に行うことが可能となり , システムのパフォーマンスを向上させます。 ■ ハードウェア構成 本モジュールは , 主に以下のものより構成されます。 • 独立した DMA チャネル× 5 チャネル • 5 チャネル独立アクセス制御回路 • 20 ビットアドレスレジスタ ( リロード指定可能 : ch.0 ∼ ch.3) • 24 ビットアドレスレジスタ ( リロード指定可能 : ch.4) • 16 ビット転送回数レジスタ ( リロード指定可能 : 各チャネル 1 本 ) • 4 ビットブロック回数レジスタ ( 各チャネル 1 本 ) • Two-cycle transfer ■ 主要機能 本モジュールによるデータ転送には主に以下のような機能があります。 複数チャネルの独立したデータ転送が可能 (5 チャネル ) (1) 優先順位 (ch.0>ch.1>ch.2>ch.3>ch.4) (2) ch.0 と ch.1 間にて順位回転が可能 (3) DMAC 起動要因 • 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込み含む ) • ソフトウェア要求 ( レジスタ書込み ) (4) 転送モード • バースト転送 / ステップ転送 / ブロック転送 • アドレッシングモード 20 ビット (24 ビット ) アドレス指定 ( 増加 / 減少 / 固定 ) ( アドレス増減幅は± 1, 2, 4 固定 ) • データの種類バイト / ハーフワード / ワード長 • シングルショット / リロード選択可能 380 第 16 章 DMAC (DMA コントローラ ) ■ レジスタ一覧 (bit) ch.0 コントロール / ステータスレジスタ A DMACA0 00000200H 〃 〃 レジスタ B DMACB0 00000204H ch.1 コントロール / ステータスレジスタ A DMACA1 00000208H 〃 〃 レジスタ B DMACB1 0000020CH ch.2 コントロール / ステータスレジスタ A DMACA2 00000210H 〃 〃 レジスタ B DMACB2 00000214H ch.3 コントロール / ステータスレジスタ A DMACA3 00000218H 〃 〃 レジスタ B DMACB3 0000021CH ch.4 コントロール / ステータスレジスタ A DMACA4 00000220H DMACB4 00000224H 〃 〃 レジスタ B 31 24 (bit) ch.0 転送元アドレスレジスタ 〃 ch.1 転送元アドレスレジスタ 〃 転送先 〃 〃 ch.2 転送元アドレスレジスタ 〃 転送先 〃 〃 ch.3 転送元アドレスレジスタ 〃 転送先 〃 20 19 15 08 07 00 〃 ch.4 転送元アドレスレジスタ 〃 00 DMASA0 00001000H DMADA0 00001004H DMASA1 00001008H DMADA1 0000100CH DMASA2 00001010H DMADA2 00001014H DMASA3 00001018H DMADA3 0000101CH (bit) 〃 転送先 〃 16 DMACR 00000240H 全体制御レジスタ 〃 転送先 〃 23 31 24 23 00 DMASA4 00001020H DMADA4 00001024H 381 第 16 章 DMAC (DMA コントローラ ) ■ ブロックダイヤグラム 図 16.1-1 ブロックダイヤグラム カウンタ バスコントローラへ DMA転送要求 DMA起動 要因選択回路 & 要求受付け制御 セレクタ ライトバック バッファ DTC 2段レジスタ CR ペリフェラル起動要求/停止入力 DTCR カウンタ DSS3~DSS0 バッファ 優先度回路 割込みコントローラへ リード ライト リード/ライト制御 周辺割込みクリア BLK レジスタ TYPE.MOD,WS ライトバック 382 DMASA 2段レジスタ DADM,SASZ7~SASZ0 SADR DMADA 2段レジスタ DADM,DASZ7~DASZ0 DADR X-bus バス制御部 カウンタバッファ セレクタ セレクタ アドレス DMAコントロール ライトバック カウンタバッファ アクセス アドレスカウンタ バス制御部 状態遷移回路 バスコント ローラへ IRQ4~IRQ0 ERIE,EDIE セレクタ MCLREQ 第 16 章 DMAC (DMA コントローラ ) DMAC のレジスタ 16.2 DMAC で使用するレジスタの構成および機能について説明します。 ■ レジスタ設定時の注意 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがありま す。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。 以降で説明する各レジスタのビット名についている * マークは DMAC 転送中に設定す ると動作に影響するビットを示します。このビットの書換えは DMAC 転送停止中 ( 起 動禁止状態または一時停止状態 ) に行ってください。 DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定 した場合は , 起動許可後に設定は有効になります。 DMA転送の一時停止状態(DMACR:DMAH3∼DMAH0≠0000B またはDMACA:PAUS=1 のとき ) で設定した場合は , 一時停止解除後に設定は有効になります。 ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A [DMACA0 ∼ DMACA4] DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。 各ビット機能は以下に示すとおりです。 bit 31 30 29 28 27 DENB PAUS STRG bit 15 14 13 26 25 24 23 22 IS4 ∼ IS0 12 10 10 21 20 19 8 7 6 17 16 BLK3 ∼ BLK0 − 9 18 5 4 3 2 1 0 DTC15 ∼ DTC0 ( 初期値:00000000000000000000000000000000B) [ ビット 31]DENB (Dma ENaBle) : DMA 動作許可ビット 各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。 起動されたチャネルは, 転送要求が発生し受け付けられるとDMA転送を開始します。 起動許可されていないチャネルに対して発生した転送要求はすべて無効となります。 起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" にな り , 転送は停止します。 本ビットに "0" を書き込むと強制停止しますが , 必ず PUAS ビット [DMACA: ビッ ト 30] で DMA を一時停止状態にした後 , 強制停止 ("0" 書込み ) してください。一 時停止しないで強制停止した場合は DMA は停止しますが転送データは保証されま せん。停止の確認は DSS2 ∼ DSS0 ビット (DMACB: ビット 18 ∼ビット 16) で行っ てください。 DENB 機能 0 対応チャネル DMA 動作禁止 ( 初期値 ) 1 対応チャネル DMA 動作許可 • リセット時 , 停止要求が受け付けられた場合 : "0" に初期化されます。 383 第 16 章 DMAC (DMA コントローラ ) • 読出し / 書込み可能です。 • DMAC 全体制御レジスタ DMACR のビット 15:DMAE ビットにより , 全チャネル の動作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を 維持します。また , 本ビットにより動作が許可されている状態にて前記ビットに より動作が禁止された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。 [ ビット 30]PAUS (PAUSe) : 一時停止指示 対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ ると , 再び本ビットがクリアされるまでの間は DMA 転送を行いません (DMA が停 止中は DSS ビットが "1xxB" になります ) 。 起動前に本ビットをセットした後 , 起動した場合 , 一時停止状態のままとなります。 本ビットがセットされている間に新たに発生した転送要求は受け付けられますが, 本ビットをクリアしないと転送は開始しません ( 転送要求の受付けと転送の項を 参照 ) 。 PAUS 機能 0 対応チャネル DMA 動作許可 ( 初期値 ) 1 対応チャネル DMA 一時停止 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 29]STRG (Software TRiGger) : 転送要求 対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むとレ ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開 始します。ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操 作は無効となります。 <注意事項> DMAE ビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合 , 転送要 求は有効となり転送を開始します。また , PAUS ビットへの "1" 書込みと同時である場合 , 転送要求は有効となりますが PAUS ビットを "0" に戻すまで DMA 転送は開始しません。 STRG 機能 0 無効 1 DMA 起動要求 • リセット時 : "0" に初期化されます。 • 読出し値は常に "0" となります。 • 書込み値は "1" のみ有効で , "0" は動作に影響を与えません。 384 第 16 章 DMAC (DMA コントローラ ) [ ビット 28 ∼ビット 24]IS4 ∼ IS0 (Input Select)*: 転送要因選択 転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ トウェア転送要求は本設定にかかわらず有効となります。 IS 機能 00000B ソフトウェア転送要求のみ 00001B ↓ 01111B 設定禁止 ↓ 設定禁止 10000 UART0 ( 受信完了 ) 10001B UART1 ( 受信完了 ) 10010B UART2 ( 受信完了 ) 10011B UART0 ( 送信完了 ) 10100B UART1 ( 送信完了 ) 10101B UART2 ( 送信完了 ) 10110B 外部割込み 0 10111B 外部割込み 1 11000B リロードタイマ 0 11001B リロードタイマ 1 11010B リロードタイマ 2 11011B 積和マクロ 11100B PPG0 11101B PPG1 11110B PPG2 11111B PPG4 転送停止要求 なし あり なし • リセット時 : "00000B" に初期化されます。 • 読出し / 書込み可能です。 <注意事項> • 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1xxxxB), 選択した機能は , ICR レジスタで割込みを禁止状態にしてください。 • 周辺機能の割込みによる DMA 起動を設定した状態でソフトウェア転送要求により DMA 転送を起動すると , 転送終了後 , 該当する周辺に対して要因クリアを行います。こ のため , 本来の転送要求をクリアしてしまう可能性がありますので , 周辺機能の割込み による DMA 起動を設定した状態では , ソフトウェア転送要求による起動を行わないで ください。 385 第 16 章 DMAC (DMA コントローラ ) [ ビット 23 ∼ビット 20](Reserved) : 未使用ビット 読出し値は "0000B" 固定です。書込みは無効となります。 [ ビット 19 ∼ビット 16]BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定 対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設 定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し回 数 ) となります。ブロック転送を行わない場合は "01H" ( サイズ 1) を設定してくだ さい。 BLK XXXX 機能 対応チャネルのブロックサイズ指定 • リセット時 : "0000B" に初期化されます。 • 読出し / 書込み可能です。 • 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。 • 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。 [ ビット 15 ∼ビット 00]DTC15 ∼ DTC00 (Dma Terminal Count register) *: 転送回数レジスタ 転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。 すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設 定値をレジスタに戻します。 DTC XXXX 機能 対応チャネルの転送回数指定 DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウン タバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 ) 。DMA の転送終 了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了します。 よって , DMA 動作中の転送回数指定値を読み出すことはできません。 • リセット時 : "00000000_00000000B" に初期化されます。 • 読出し / 書込み可能です。DTC のアクセスは , 必ずハーフワード長またはワード 長にてアクセスしてください。 • 読出し時の値はカウント値となります。リロード値の読出しはできません。 386 第 16 章 DMAC (DMA コントローラ ) ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B [DMACB0 ∼ DMACB4] DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。 各ビット機能は以下に示すとおりです。 bit 31 30 TYPE1, TYPE0 bit 15 14 29 28 MOD1, MOD0 13 12 27 26 25 24 23 22 21 20 19 18 17 16 WS1, WS0 SADM DADM DTCR SADR DADR ERIE EDIE DSS2 ∼ DSS0 10 2 10 9 8 7 SASZ7 ∼ SASZ0 6 5 4 3 1 0 DASZ7 ∼ DASZ0 ( 初期値:00000000_00000000_00000000_00000000B) [ ビット 31, ビット 30]TYPE1, TYPE0 (TYPE) *: 転送タイプ設定 対応チャネルの動作タイプを以下のように設定します。 two-cycle 転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設 定して読出し動作と書込み動作を転送回数分繰り返して転送するモードです。 TYPE 機能 00B two-cycle 転送 ( 初期値 ) 01B 設定禁止 10B 設定禁止 11B 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 • 必ず "00B" に設定してください。 [ ビット 29, ビット 28]MOD1, MOD0 (MODe)* : 転送モード設定 対応チャネルの動作モードを以下のように設定します。 MOD 機能 00B ブロック / ステップ転送モード ( 初期値 ) 01B バースト転送モード 10B 設定禁止 11B 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 387 第 16 章 DMAC (DMA コントローラ ) [ ビット 27, ビット 26]WS1, WS0 (Word Size) : 転送データ幅選択 対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で 指定回数分の転送を行います。 WS 機能 00B バイト単位で転送 ( 初期値 ) 01B ハーフワード単位で転送 10B ワード幅単位で転送 11B 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 25]SADM (Source-ADdr. count-Mode select) *: 転送元アドレスカウント モード指定 対応するチャネルの転送元アドレスの 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1 転送後に加算 / 減算され , 転送終了時に次回アクセス用アドレスが対応するアドレ スレジスタ (DMASA) に書き込まれます。 よって , DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン ト幅 (SASZ, DASZ) を "0" としてください。 SADM 機能 0 転送元アドレスは増加します。( 初期値 ) 1 転送元アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 388 第 16 章 DMAC (DMA コントローラ ) [ ビット 24]DADM (Destination-ADdr. Count-Mode select) *: 転送先アドレスカウント モード指定 対応するチャネルの転送先アドレスの 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス レジスタ (DMADA) に書き込まれます。 よって , DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン ト幅 (SASZ, DASZ) を "0" としてください。 DADM 機能 0 転送先アドレスは増加します。( 初期値 ) 1 転送先アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 23]DTCR (DTC-reg. Reload)*: 転送回数レジスタリロード指定 対応するチャネルの転送回数レジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値 を初期設定値に戻して停止し , 転送要求 (STRG または IS 設定による起動要求 ) 待 ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません )。 DENB=0 または DMAE=0 を設定すると強制停止します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 , DENB ビットはクリアされます。 DTCR 機能 0 転送回数レジスタリロードを禁止 ( 初期値 ) 1 転送回数レジスタリロードを許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 389 第 16 章 DMAC (DMA コントローラ ) [ビット22]SADR (Source-ADdr.-reg. Reload) *: 転送元アドレスレジスタリロード指定 対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス レジスタ値を初期設定値に戻します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても転送終了にて停止するシングルショット動作となります。この場 合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。 本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し ている場合は , 増加したアドレスとなります ) 。 SADR 機能 0 転送元アドレスレジスタリロード禁止 ( 初期値 ) 1 転送元アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 21]DADR (Dest.-ADdr.-reg. Reload)*: 転送先アドレスレジスタリロード指定 対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス レジスタ値を初期設定値に戻します。 その他 , 機能の詳細はビット 22:SADR の内容と等価になります。 DADR 機能 0 転送先アドレスレジスタリロード禁止 ( 初期値 ) 1 転送先アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 20]ERIE (ERror Interrupt Enable)* : エラー割込み出力許可 エラー発生による終了時の割込み発生を制御します。発生したエラーの内容は DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割込みが発生するのではな く , 特定の終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼ DSS0 ビットを参照 ) 。 ERIE 機能 0 エラー割込み要求出力禁止 ( 初期値 ) 1 エラー割込み要求出力許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 390 第 16 章 DMAC (DMA コントローラ ) [ ビット 19]EDIE (EnD Interrupt Enable) *: 終了割込み出力許可 正常終了時の割込み発生を制御します。 EDIE 機能 0 終了割込み要求出力禁止 ( 初期値 ) 1 終了割込み要求出力許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 18 ∼ビット 16]DSS2 ∼ DSS0 (Dma Stop Status)*: 転送停止要因表示 対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー ド ) を表示します。終了コードの内容は以下のとおりです。 DSS2 機能 割込み発生 0 初期値 なし 1 DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど ) なし DSS1, DSS0 00 機能 初期値 01 なし − 10 転送停止要求 11 正常終了 割込み発生 なし エラー 終了 転送停止要求は , 周辺回路からの要求を使用した場合のみセットされます。 <注意事項> 「割込み発生」欄は , 発生可能な割込み要求の種類を示します。 • リセット時 : "000B" に初期化されます。 • "000B" を書き込むことによりクリアされます。 • 読出し / 書込み可能ですが , 本ビットへの書込みは "000B" のみ有効となります。 391 第 16 章 DMAC (DMA コントローラ ) [ ビット 15 ∼ビット 8]SASZ7 ∼ SASZ0 (Source Addr count SiZe) *: 転送元アドレス カウントサイズ指定 対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減は転送元アドレスカウントモード (SADM) の指定に従います。 SASZ 機能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時 : "00000000B" に初期化されます。 • 読出し / 書込み可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定して ください。 [ ビット 7 ∼ビット 0]DASZ7 ∼ DASZ0 (Des Addr count SiZe) *: 転送先アドレスカウントサイズ指定 対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減は転送先アドレスカウントモード (DADM) の指定に従います。 DASZ 機能 00H アドレス固定 01H バイト単位で転送 02H ハーフワード単位で転送 04H ワード単位で転送 上記以外 設定禁止 • リセット時 : "00000000B" に初期化されます。 • 読出し / 書込み可能です。 • アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定して ください。 392 第 16 章 DMAC (DMA コントローラ ) ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4] DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。 各ビット機能は以下に示すとおりです。 • ch.0 ∼ ch.3 bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DMASA0 ∼ DMASA3[19:16] bit 15 14 13 12 10 10 9 8 7 6 5 4 3 2 1 0 DMASA0 ∼ DMASA3[15:0] ( 初期値:00000000_00000000_00000000_00000000B) bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DMADA0 ∼ DMADA3[19:16] bit 15 14 13 12 10 10 9 8 7 6 5 4 3 2 1 0 DMADA0 ∼ DMADA3[15:0] ( 初期値:00000000_00000000_00000000_00000000B) • ch.4 bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 2 1 0 DMASA4[23:16] bit 15 14 13 12 10 10 9 8 7 6 5 4 3 DMASA4[15:0] ( 初期値:00000000_00000000_00000000_00000000B) bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 2 1 0 DMADA4[23:16] bit 15 14 13 12 10 10 9 8 7 6 5 4 3 DMADA4[15:0] ( 初期値:00000000_00000000_00000000_00000000B) 転送元 / 転送先アドレスを格納するレジスタ群です。ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24 ビット長で構成されています。 [ ビット 31 ∼ビット 0]DMASA (DMA Source Addr) *: 転送元アドレス設定 転送元アドレスの設定を行います。 [ ビット 31 ∼ビット 0]DMADA (DMA Destination Addr) *: 転送先アドレス設定 転送先アドレスの設定を行います。 DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ ンタバッファに格納して 1 転送ごとに設定に従いアドレスカウントします。DMA の 転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終 了します。 よって , DMA 動作中のアドレスカウンタ値を読み出すことはできません。 393 第 16 章 DMAC (DMA コントローラ ) すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先ア ドレスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に 自動的に初期設定値をレジスタに戻します。この際 , 他のアドレスレジスタには影 響を与えません。 • リセット時 : "00000000_00000000_00000000_00000000B" に初期化されます。 • 読出し / 書込み可能です。本レジスタは , 必ず 32 ビットデータでアクセスしてく ださい。 • 読出し時の値は, 転送中は転送前のアドレス値, 転送終了時には次のアクセスアド レス値となります。リロード値の読出しはできません。よって , 転送アドレスを リアルタイムで読み出すことはできません。 • 存在しない上位ビットには "0" を設定してください。 <注意事項> 本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ に DMA 転送を行うことはできません。 394 第 16 章 DMAC (DMA コントローラ ) ■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ [DMACR] DMAC5 チャネル分全体の動作制御を行うレジスタです。本レジスタは必ずバイト長で アクセスしてください。 各ビット機能は以下に示すとおりです。 bit bit 31 29 28 − − PM01 15 14 13 12 10 10 − − − − − − DMAE 30 27 26 25 24 DMAH3 ∼ DMAH0 23 22 21 20 19 18 17 16 − − − − − − − − 9 8 7 6 5 4 3 2 1 0 − − − − − − − − − − ( 初期値:0XX00000XXXXXXXXXXXXXXXXXXXXXXXXB) [ ビット 31]DMAE (DMA Enable) : DMA 動作許可 DMA 全チャネルの動作制御を行います。 本ビットにより DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止の設 定や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。転送中であっ たチャネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて 各チャネルに対して行われる起動操作はすべて無効となります。 本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作 が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対 する起動は行われません。 本ビットに "0" を書き込むと強制停止しますが , 必ず DMAH3 ∼ DMAH0 ビット (DMACR: ビット 27 ∼ビット 24) で DMA を一時停止状態にした後 , 強制停止 ("0" 書込み ) してください。一時停止しないで強制停止した場合はDMAは停止しますが転送デー タは保証されません。停止の確認は DSS2 ∼ DSS0 ビット (DMACB: ビット 18 ∼ ビット 16) で行ってください。 DMAE 機能 0 全チャネル DMA 動作禁止 ( 初期値 ) 1 全チャネル DMA 動作許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 28]PM01 (Priority Mode ch.0, 1 robin) : チャネル優先度回転 ch.0, ch.1 の優先度を転送ごとに順位を回転させるときに設定します。 PM01 機能 0 優先順位固定 (ch.0 > ch.1) ( 初期値 ) 1 優先順位回転 (ch.1 > ch.0) • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 395 第 16 章 DMAC (DMA コントローラ ) [ ビット 27 ∼ビット 24]DMAH3 ∼ DMAH0 (DMA Halt) : DMA 一時停止 DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本 ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。 起動前に本ビットをセットして起動した場合 , 全チャネルが一時停止のままとなり ます。 本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル に発生した転送要求はすべて有効となり , 本ビットをクリアすることにより転送を 開始します。 DMAH 機能 0000B 全チャネル DMA 動作許可 ( 初期値 ) 0000B 以外 全チャネル DMA 一時停止 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 30, ビット 29, ビット 23 ∼ビット 0](Reserved) : 未使用ビットです。 読出し値は不定です。 396 第 16 章 DMAC (DMA コントローラ ) 16.3 DMAC の動作 DMAC は , CPU の命令動作を介することなく高速にデータ転送を制御する多機能 DMA コントローラです。 ■ 主要動作 • 各転送チャネルは , 独立に各種機能を設定します。 • 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ ん。 • 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント ローラの制御によりバス権を取得して転送を開始します。 • 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ ます。 ■ 転送モード DMA の各チャネルは , それぞれの DMACB レジスタの MOD1, MOD0 ビットで設定さ れた転送モードに従って転送動作を行います。 ● ブロック / ステップ転送 1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受 け付けられるまでは DMA はバスコントローラに対し転送要求を停止します。 1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK3 ∼ BLK0) ● バースト転送 1 回の転送要求にて指定転送回数終了まで連続して転送を行います。 指定転送回数 : ブロックサイズ分×転送回数分 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) ■ 転送タイプ ● two-cycle 転送 ( 通常転送 ) DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行 います。 転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへ データを書き込みます。 ■ 転送アドレス アドレッシングには以下のようなものがあり , チャネル転送元 / 転送先ごとに独立 に設定します。 ● two-cycle 転送でのアドレスの指定 あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値 をアドレスとしてアクセスします。 転送要求を受け付けると DMA はレジスタからアドレスを一時記憶バッファに格納 して転送を開始します。 1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 397 第 16 章 DMAC (DMA コントローラ ) ( 加算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッ ファの内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライト バックされます。 よって , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか 更新されませんので転送中のアドレスをリアルタイムに知ることはできません。 ■ 転送回数と転送終了 ● 転送回数 1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。転 送回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停 止または再起動します。 転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更 新されません。 転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可され ている場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。 ● 転送終了 転送終了要因には以下のようなものがあり , 終了時は終了コードとして要因が表示さ れます (DMACB:DSS2 ∼ DSS0)。 • 指定転送回数の終了 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) => 正常終了 • 周辺回路からの転送停止要求の発生 => エラー • リセットの発生 => リセット 各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを 発生可能です。 398 第 16 章 DMAC (DMA コントローラ ) 16.4 転送要求の設定 DMA 転送を起動する転送要求は , 内蔵周辺要求とソフトウェア要求の 2 種類があり ます。ソフトウェア要求については , 他の要求の設定にかかわらず常に使用するこ とができます。 ■ 内蔵周辺要求 内蔵周辺回路の割込み発生により , 転送要求を発生します。 チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します。 (DMACA: IS4 ∼ IS0 =1xxxxB) <注意事項> 転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン トローラの設定を割込み禁止に設定してください (ICR レジスタ )。 ■ ソフトウェア要求 レジスタのトリガビットへの書込みにより転送要求を発生します (DMACA:STRG)。 上記の転送要求とは独立で , 常に使用することができます。 起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに 対し DMA 転送要求を出力し転送を開始します。 <注意事項> 内蔵周辺要求を設定したチャネルに対してソフトウェア要求を行うと , 転送終了後 , 該当 する周辺に対して要因クリアを行います。このため , 本来の転送要求をクリアしてしまう 可能性がありますので , ソフトウェア要求を行わないでください。 399 第 16 章 DMAC (DMA コントローラ ) 16.5 転送シーケンス チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転 送モードを独立して設定することができます (DMACB: TYPE[1:0], MOD[1:0] の設 定 )。 ■ 転送シーケンスの選択 レジスタの設定により以下のシーケンスが選択可能です。 • バースト two-cycle 転送 • ブロック / ステップ two-cycle 転送 ■ バースト two-cycle 転送 1 回の転送要因にて指定転送回数の転送を続けて行います。two-cycle 転送の場合は転 送元 / 転送先アドレスは ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可能です。 転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。 ● バースト転送の特長 • 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送 を行います。 • 転送回数はブロックサイズ分×転送回数分になります。 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要 求を受け付けます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック 転送単位の境目でチャネルを切り換え, そのチャネルの転送要求がクリアされる まで復帰しません。 図 16.5-1 周辺転送要求 , ブロック数= 1, 転送回数= 4 のときのバースト転送例 周辺転送要求 バス動作 転送回数 CPU DA SA 4 SA DA 3 SA DA 2 転送終了(内部) (周辺転送要求,ブロック数=1,転送回数=4のときのバースト転送例) 400 SA DA 1 CPU 0 第 16 章 DMAC (DMA コントローラ ) ■ ステップ / ブロック転送 two-cycle 転送 ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場 合は転送元 / 転送先アドレスは , ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可 能です。 ● ステップ転送 ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。 ステップ転送の特長 • 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送 を停止します ( バスコントローラに対し DMA 転送要求を取り下げる ) 。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止 後にチャネルを切り換えて続けて転送を開始します。ステップ転送における優先 順位は , 転送要求が同時に発生した場合のみ意味を持ちます。 ● ブロック転送 ブロックサイズを "1" 以外に設定すると , ブロック転送シーケンスとなります。 ブロック転送の特長 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ プ転送と全く同じ動作となります。 図 16.5-2 周辺転送要求 , ブロック数= 2, 転送回数= 2 のときのブロック転送例 周辺転送要求 バス動作 CPU ブロック数 転送回数 DA SA SA 2 DA 1 2 CPU 0 SA DA SA 2 DA 1 1 転送終了(内部) 401 第 16 章 DMAC (DMA コントローラ ) 16.6 DMA 転送全般 DMA 転送の動作全般について説明します。 ■ ブロックサイズ • 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) のデータの集合となります。 • 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転 送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま す。 • 転送中により高位の優先順位の転送要求が受け付けられた場合 , または転送の一時 停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界に ならないと停止しません。これにより分割・一時停止を希望しないデータブロック のデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させ る原因ともなります。 • リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは 保証されません。 ■ リロード動作 本モジュールでは , チャネルごとに以下の 3 種類のリロード機能の設定が可能です。 ● 転送回数レジスタリロード機能 指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受付 け待ちします。 全転送シーケンスを繰り返し行う際に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のままとな り , 以降の転送は行われません。 ● 転送元アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定します。 転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。 リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了 時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 ● 転送先アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定します。 転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。 リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了 時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了 後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。 402 第 16 章 DMAC (DMA コントローラ ) <注意事項> 動作モードとリロード動作の特殊な例 • 転送終了にていったん停止し , 再度入力検出から行いたい場合は , リロード指定を行わ ないようにしてください。 • バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となると リロード後いったん転送を中断し , あらためて転送要求入力が検出されるまで転送を 行いません。 ■ アドレッシングモード 各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。 転送シーケンスによって設定してください。 ● アドレスレジスタ指定 two-cycle 転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アドレス を , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してください。 アドレスレジスタの特長 ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24 ビット長のレジスタです。 アドレスレジスタの機能 • 毎アクセス時に読み出され , アドレスバスへ放出されます。 • 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結 果のアドレスにてアドレスレジスタを更新します。 • アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に加算 / 減算の内よ り選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値に よります (DMACB:SASZ, DASZ)。 • 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最 終アドレスにアドレス計算をした結果のアドレスが残されます。 • リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。 <注意事項> • 20 ビットまたは 24 ビット長フルアドレス計算の結果 , オーバフロー / アンダフローが 発生した場合でも , そのチャネルの転送は継続されます。オーバフロー / アンダフロー が発生しないように各チャネルを設定してください。 • アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。 ■ データの種類 1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。 • バイト • ハーフワード • ワード DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは 無視されます。 403 第 16 章 DMAC (DMA コントローラ ) • ワード … 実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バ イトとなります。 • ハーフワード … 実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイ トとなります。 • バイト … 実際のアクセスアドレスとアドレス指定が一致します。 転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記のきまりに従ってアドレスが修正されてアクセスが行われます。 ■ 転送回数制御 転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回数指 定値は転送回数レジスタ (DMACA:DTC) に設定します。 レジスタ値は転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減 算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され , そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。 転送回数レジスタ群の特長 • 各レジスタ 16 ビット長です。 • すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。 • レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。 リロード動作 • リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有 効です。 • 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。 • 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると 共に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。 ■ CPU 制御 DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発行 します。 バスコントローラはバス動作の切れ目にて内部バス使用権を DMA に明け渡し , DMA 転送が開始されます。 ● DMA 転送と割込み • DMA 転送中は , 基本的には転送終了まで割込みの受付けを停止します。 • 割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転送 終了まで割込み処理動作を停止します。 • 例外として , NMI 要求または割込みコントローラにて設定されたホールド抑止レ ベルより高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロッ ク ) の境界にてバスコントローラへの転送要求を一時取り下げ , 割込み要求がクリ アされるまでは転送を一時停止状態にします。この間 , 転送要求は内部で保持さ れます。割込み要求がクリアされた後に再度 DMAC はバスコントローラへ転送要 求を発行してバス使用権を取得し , DMA 転送を再開します。 404 第 16 章 DMAC (DMA コントローラ ) ●DMA 抑止 • DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転送を中断して 該当割込みルーチンへ分岐します。この機構は割込み要求がある限り有効ですが , 割込み要因をクリアすると抑止機構が働かなくなり, 割込み処理ルーチン内でDMA 転送を再開します。このため , DMA 転送を中断するレベルの割込み要因の処理ルー チン内で , 割込み要因クリア後の DMA 再転送開始を抑止したいときは , DMA 抑止 機能を使用します。 DMA 抑止機能は , DMA 全体制御レジスタの DMAH3 ∼ DMAH0 ビットに "0" 以外の値を書くことで起動し , "0" を書くことで停止します。 • 本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込 み要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このよう にすると , 以降 , DMA 転送は行いません。割込み処理への対応を行った後 , 復帰す る前に DMAH3 ∼ DMAH0 ビットの内容を "1" 減少させます。もし , 多重割込みで あれば DMAH3 ∼ DMAH0 ビットの内容は , まだ "0" にならないため , 引き続いて DMA 転送は抑止されます。また , 多重割込みでなければ , DMAH3 ∼ DMAH0 ビッ トの内容は "0" になるため , その後すぐに DMA 要求を有効にします。 <注意事項> • レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使 用することができません。 • DMA タスクの優先順位は必ず他の割込みレベルより 15 レベルは上に置いてください。 ■ 動作開始 DMA 転送の開始はチャネルごとに独立に制御しますが , その前に全チャネルの動作を 許可しておく必要があります。 ● 全チャネル動作許可 DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら かじめ全チャネルの動作を許可する必要があります。許可されていない状態にて行っ た起動設定および発生した転送要求はすべて無効となります。 ● 転送起動 各チャネルの制御レジスタにある動作許可ビットにて転送動作を起動します。起動さ れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送 動作が開始されます。 ● 一時停止状態からの起動 各チャネルまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転送 動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場合 は要求を受け付けて保持します。一時停止を解除した時点から転送を開始します。 405 第 16 章 DMAC (DMA コントローラ ) ■ 転送要求の受付けと転送 • 起動後 , 各チャネルに対し設定した転送要求のサンプリングが開始されます。 • 周辺割込み起動を選択した場合は , 転送要求がクリアされるまで DMAC は転送を 続けます。クリアされると 1 転送単位で転送を停止します ( 周辺割込み起動 ) 。 周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリア で行うようにしてください。 • 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも常に 受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネ ルを決定しています。 ■ DMA による周辺割込みクリア • 本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要 因に周辺割込みを選択したときに機能します (IS4 ∼ IS0=1xxxxB のとき )。 • 周辺割込みのクリアは設定された起動要因にのみ行われます。つまり , IS4 ∼ IS0 で設定された周辺機能のみクリアされます。 ● 割込みクリアの発生タイミング 転送モードにより発生するタイミングが違います (「16.7 動作フローチャート」を参 照)。 [ ブロック / ステップ転送 ] ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生 します。 [ バースト転送 ] バースト転送を選択した場合は , 指定転送回数がすべて終了したらクリア信号は発 生します。 ■ 一時停止 DMA 転送は , 以下の場合に一時停止します。 ● 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に 設定 ) 一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って ください。 一時停止を解除すると転送を再開します。 ● NMI/ ホールド抑止レベル割込み処理中 NMI 要求またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転 送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込 み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求はそのま ま保持され , NMI 処理の終了を待ちます。 要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。 406 第 16 章 DMAC (DMA コントローラ ) ■ 動作終了 / 停止 DMA 転送の終了はチャネルごとに独立に制御しますが , 全チャネルの動作を禁止する ことも可能です。 ● 転送終了 リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了 コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA: DENB ビットをクリアする )。 リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロードし , 終了コードにて 「正常終了」 を表示した後 , 再度転送要求待ちとなります (DMACA: DENB ビットをクリアしない )。 ● 全チャネル動作禁止 DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を 許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは 一切発生しません。 ■ エラーによる停止 指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー発 生による停止および強制停止があります。 ● 周辺回路よりの転送停止要求の発生 転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発 生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。 この転送停止要求を受け取った DMAC は , 終了コードにて『転送停止要求』を表示し て対応するチャネルの転送を停止します。 <注意事項> • 周辺回路の転送停止要求の有無については , DMACA レジスタのビット 28 ∼ビット 24(IS4 ∼ IS0) 転送要因選択ビットの説明を参照してください。 • 各転送停止要求の発生条件についての詳細は , 各周辺回路の説明を参照してください。 ■ DMAC 割込み制御 転送要求となる周辺割込みとは独立に , DMAC チャネルごとに以下の割込みを出力す ることが可能です。 • 転送終了割込み:正常終了した場合のみ発生する • エラー割込み:周辺回路からの転送停止要求 ( 周辺に起因するエラー ) これら割込みはすべて終了コードの内容に従って出力されます。 割込み要求のクリアは , DMACS の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む ことにより行います。 なお , 終了コードは再起動する際には必ず "000B" を書き込んでクリアしてください。 リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。 終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し 407 第 16 章 DMAC (DMA コントローラ ) た場合は優先判断を行った結果を表示します。この際に発生する割込みは表示されて いる終了コードに従います。 終了コードの表示の優先順位を以下に示します ( 上から優先度の高い順 ) 。 • リセット • "000B" 書込みによるクリア • 周辺停止要求 • 正常終了 • チャネル選択と制御 ■ スリープモード中の DMA 転送 DMAC は , スリープモード中でも動作させることができます。 スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。 - CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー プモードに入る前に設定は済ませておいてください。 - スリープモードは割込みで解除されますので , DMAC 起動要因で周辺での割込み を選択した場合は , 割込みコントローラで割込みを禁止する必要があります。 同様に, DMAC終了割込みでスリープモードを解除したくない場合は, 割込みを禁止に してください。 ■ チャネル選択と制御 転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各機 能を独立に設定することが可能です。 ● チャネル間優先順位 DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され ます。 順位設定には, 固定/回転の2モードがありチャネルグループ (後述) ごとに選択します。 (1) 固定モード チャネル番号の小さい順に固定されます。 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4) 転送中により高い優先度の転送要求が受け付けられた場合, 1転送単位 (ブロックサ イズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で転送チャネル が高優先度側に切り換わります。 高優先度側の転送が終了すると , 元のチャネルの転送を再開します。 ch.0転送要求 ch.1転送要求 バス動作 CPU 転送チャネル SA DA SA ch.1 DA ch.0 SA DA ch.0 SA DA CPU ch.1 ch.0転送終了 ch.1転送終了 (2) 回転モード (ch.0, ch.1 間のみ ) 動作許可後の初期状態は固定モードと同じ順位に設定されますが , 1 転送終了ごと にそのチャネルの優先度は逆転します。よって , 同時に転送要求が出力されている 408 第 16 章 DMAC (DMA コントローラ ) 場合 , 1 転送単位ごとにチャネルが切り換わります。 連続 / バースト転送を設定した場合に効果のあるモードです。 ch.0転送要求 ch.1転送要求 バス動作 CPU 転送チャネル SA DA ch.1 SA DA ch.0 SA DA ch.1 SA DA CPU ch.0 ch.0転送終了 ch.1転送終了 ● チャネルグループ 優先順位の選択は , 以下の単位で設定します。 モード 優先度 固定 ch.0>ch.1 ch.0>ch.1 回転 ↑↓ 備考 初期状態は上側の順位です。 上側が転送されると反転します。 ch.0<ch.1 409 第 16 章 DMAC (DMA コントローラ ) 16.7 動作フローチャート DMAC のブロック転送およびバースト転送の動作フローチャートを示します。 ■ ブロック転送 図 16.7-1 ブロック転送フローチャート DMA停止 DENB=>0 DENB=1 起動要求待機 リロード許可 起動要求 初期化 アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 周辺割込み起動要因選択時のみ アドレス,転送回数,ブロック数 ライトバック 割込みクリア 割込みクリア発生 DTC=0 DMA転送終了 ブロック転送 ・すべての起動要因で起動(選択)可能 ・すべての領域へのアクセス可能 ・ブロック数の設定可能 ・ブロック数終了で割込みクリア発行 ・指定転送回数終了でDMA割込みを発行 410 DMA割込み発生 第 16 章 DMAC (DMA コントローラ ) ■ バースト転送 図 16.7-2 バースト転送フローチャート DMA停止 DENB=>0 DENB=1 起動要求待機 リロード許可 初期化 アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 DTC=0 アドレス,転送回数,ブロック数 ライトバック 周辺割込み起動要因選択時のみ 割込みクリア DMA転送終了 割込みクリア発生 DMA割込み発生 バースト転送 ・すべての起動要因で起動(選択)可能 ・すべての領域へのアクセス可能 ・ブロック数の設定可能 ・指定転送回数終了で割込みクリア,DMA割込みを発行 411 第 16 章 DMAC (DMA コントローラ ) 16.8 データパス DMAC を使用したデータ転送例を示します ( 他の組合せは省略 )。 ■ two-cycle 転送時のデータの動き • 転送例を 6 種類を図示します ( 他の組合せは省略 )。 CPU I-bus X-bus バスコントローラ D-bus データバッファ ライトサイクル I-bus X-bus バスコントローラ D-bus データバッファ F-bus F-bus RAM 外部バス I/F リードサイクル DMAC CPU DMAC 外部バスI/F 外部領域=>外部領域 転送 I/O RAM I/O X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バスI/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バス I/F 外部領域=>内部RAM領域転送 F-bus I/O RAM I/O X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus データバッファ F-bus RAM I/O 外部バス I/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バスI/F 外部領域=>内蔵I/O領域 転送 F-bus RAM I/O (続く) 412 第 16 章 DMAC (DMA コントローラ ) X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus F-bus RAM 外部バスI/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バスI/F 内蔵I/O領域=>内蔵RAM領域転送 F-bus I/O RAM I/O X-bus バスコントローラ D-bus データバッファ I-bus X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バスI/F CPU I-bus DMAC ライトサイクル CPU DMAC リードサイクル 外部バスI/F 内部RAM領域=>外部領域転送 F-bus I/O RAM I/O DMAC X-bus CPU I-bus バスコントローラ D-bus データバッファ ライトサイクル X-bus I-bus CPU リードサイクル 外部バスI/F DMAC バスコントローラ D-bus データバッファ F-bus F-bus RAM I/O 外部バスI/F 内部RAM領域=>内蔵I/O領域転送 RAM I/O (続き) 413 第 16 章 DMAC (DMA コントローラ ) 414 第 17 章 フラッシュメモリ フラッシュメモリの概要 , レジスタの構成 / 機能 , アクセスモード , 自動アルゴリズムおよびセクタプ ロテクトオペレーションについて説明します。 17.1 フラッシュメモリの概要 17.2 レジスタ 17.3 フラッシュメモリのアクセスモード 17.4 自動アルゴリズム起動方法 17.5 自動アルゴリズム実行状態 17.6 セクタプロテクトオペレーション 415 第 17 章 フラッシュメモリ 17.1 フラッシュメモリの概要 MB91F264B には 256 K バイト (2 M ビット ) の容量で ,+3.3 V 単一電源による全セ クタ一括消去 , およびセクタ単位での消去が可能で , FR-CPU によるハーフワード (16 ビット ) 単位での書込みが可能なフラッシュメモリを内蔵しています。 ■ フラッシュメモリの概要 このフラッシュメモリは , 内蔵の 3.3 V 動作 256 K バイトフラッシュメモリです。当社 製 4 M ビット (512 K バイト× 8/256 K バイト× 16) フラッシュメモリ MBM29LV400TC と同じもので ( 容量 , 一部セクタ構成を除いて ) あり , ROM ライタによるデバイス外部 からの書込みも可能です。また , MBM29LV400TC 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合には , ワード (32 ビット ) 単位での命令 / データ読出しが可能 であり , デバイスの高速動作を実現できます。 本書と併せて MBM29LV400TC データシートも参照してください。 フラッシュメモリマクロと FR-CPU インタフェース回路の組合せにより , 以下の機能を 実現します。 • CPU のプログラム / データ格納用メモリとして機能 - ROM として使用する際は 32 ビットバス幅でアクセス可能 - CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム* ) が可能 • 単体フラッシュメモリ製品の MBM29LV400TC 相当の機能 ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム* ) が可能 * : 自動プログラムアルゴリズム = Embedded AlgorithmTM ここでは , FR-CPU からこのフラッシュメモリを使用する場合について解説していま す。 ROM ライタからこのフラッシュメモリを使用する場合の詳細については , 別途 ROM ライタの取扱説明書を参照してください。 ■ 自動アルゴリズム実行状態 CPU プログラミングモードにて自動アルゴリズムを起動した場合には , 内部レディ信 号 (RDY) により自動アルゴリズムの動作状態を知ることができます。このレディ信号 のレベルは , フラッシュメモリステータスレジスタの RDY ビットとして読むことがで きます。 RDY ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われてお り , 新たな書込みまたは消去コマンドを受け付けることはできません。また , フラッ シュメモリアドレスからのデータ読出しはできません。RDY ビットが "0" の期間に読 み出したデータはフラッシュメモリのステータスを示すハードウェアシーケンスフラ グとなっています (「17.4 自動アルゴリズム起動方法」を参照 )。 416 第 17 章 フラッシュメモリ ■ ROM ライタによる書込み このフラッシュメモリは , ROM ライタを用いてデバイス外部より書込みを行うことが できます。この状態では , 単体フラッシュメモリ製品の MBM29LV400TC 相当の端子 機能がデバイス外部端子に割り当てられ , FR-CPU は動作を停止します。CPU モードと はアドレス線の接続が変更され , メモリ領域内のマッピングが変化します。詳細につい ては『対応 ROM ライタの仕様書』を参照してください。 ■ フラッシュメモリのブロックダイヤグラム 図 17.1-1 フラッシュメモリのブロックダイヤグラム CPU フラッシュインタフェース CPUコア フラッシュメモリ 制御信号 制御信号 A0~A17 A0~A17 制御信号 アドレス DQ0~DQ15 DQ0~DQ15 データ 制御信号 アドレス データ フラッシュ ライタ との インタ フェース (フラッシュ モード時) 417 第 17 章 フラッシュメモリ ■ フラッシュメモリのセクタ構成 フラッシュメモリのアドレスマッピングは , FR-CPU からのアクセス時と ROM ライタ でのアクセス時とでは異なります。図 17.1-2 と表 17.1-1 に FR-CPU からのアクセス時 におけるマッピングを , 図 17.1-3 に ROM ライタからのアクセス時におけるマッピング を示します。 ● FR-CPU からのアクセス時におけるマッピング 図 17.1-2 FR-CPU からのアクセス時におけるマッピング 000F_FFFFH FFFF_FFFFH SAA4(16 Kバイト) SAA9(16 Kバイト) 000F_8000H 000F_7FFFH 0010_0000H 000F_FFFFH 000C_0000H SAA3(8 Kバイト) SAA8(8 Kバイト) SAA2(8 Kバイト) SAA7(8 Kバイト) 000F_4000H 000F_3FFFH フラッシュ メモリ 256Kバイト 000F_0000H 000E_FFFFH SAA1(32 Kバイト) SAA6(32 Kバイト) 000E_0000H 000D_FFFFH SAA0(64 Kバイト) SAA5(64 Kバイト) 000C_0000H 0000_0000H Bit 31 CPUモードでアクセス モードでアクセス する場合のバイト位置 16 15 0 1 0 2 3 表 17.1-1 セクタアドレス一覧 (FR-CPU からのアクセス時 ) 418 セクタ アドレス アドレス範囲 対応ビット位置 セクタ容量 SAA9 F_8002, 3H ∼ F_FFFE, FH ビット 15 ∼ 0 16 K バイト SAA8 F_4002, 3H ∼ F_7FFE, FH ビット 15 ∼ 0 8 K バイト SAA7 F_0002, 3H ∼ F_3FFE, FH ビット 15 ∼ 0 8 K バイト SAA6 E_0002, 3H ∼ E_FFFE, FH ビット 15 ∼ 0 32 K バイト SAA5 C_0002, 3H ∼ D_FFFE, FH ビット 15 ∼ 0 64 K バイト SAA4 F_8000, 1H ∼ F_FFFC, DH ビット 31 ∼ 15 16 K バイト SAA3 F_4000, 1H ∼ F_7FFC, DH ビット 31 ∼ 15 8 K バイト SAA2 F_0000, 1H ∼ F_3FFC, DH ビット 31 ∼ 15 8 K バイト SAA1 E_0000, 1H ∼ E_FFFC, DH ビット 31 ∼ 15 32 K バイト SAA0 C_0000, 1H ∼ D_FFFC, DH ビット 31 ∼ 15 64 K バイト 第 17 章 フラッシュメモリ ● ROM ライタからのアクセス時におけるマッピング 図 17.1-3 ROM ライタからのアクセス時におけるアドレスマッピング F_FFFFH F_C000H F_BFFFH F_A000H F_9FFFH F_8000H F_7FFFH F_0000H E_FFFFH E_0000H D_FFFFH D_C000H D_BFFFH D_A000H D_9FFFH D_8000H D_7FFFH D_0000H C_FFFFH C_0000H SAA9(16 Kバイト) SAA8(8 Kバイト) SAA7(8 Kバイト) SAA6(32 Kバイト) SAA5(64 Kバイト) SAA4(16 Kバイト) SAA3(8 Kバイト) SAA2(8 Kバイト) SAA1(32 Kバイト) SAA0(64 Kバイト) 0 ビット位置 15 1 0 バイト位置 (ライタで書く場合) 0 1 CPUがリードする場合 419 第 17 章 フラッシュメモリ 表 17.1-2 セクタアドレス一覧 (ROM ライタからのアクセス時 ) 420 セクタ アドレス アドレス範囲 対応ビット位置 セクタ容量 SAA9 F_C000H ∼ F_FFFFH ビット 15 ∼ビット 0 16 K バイト SAA8 F_A000H ∼ F_BFFFH ビット 15 ∼ビット 0 8 K バイト SAA7 F_8000H ∼ F_9FFFH ビット 15 ∼ビット 0 8 K バイト SAA6 F_0000H ∼ F_7FFFH ビット 15 ∼ビット 0 32 K バイト SAA5 E_0000H ∼ E_FFFFH ビット 15 ∼ビット 0 64 K バイト SAA4 D_C000H ∼ D_FFFFH ビット 15 ∼ビット 0 16 K バイト SAA3 D_A000H ∼ D_BFFFH ビット 15 ∼ビット 0 8 K バイト SAA2 D_8000H ∼ D_9FFFH ビット 15 ∼ビット 0 8 K バイト SAA1 D_0000H ∼ D_7FFFH ビット 15 ∼ビット 0 32 K バイト SAA0 C_0000H ∼ C_FFFFH ビット 15 ∼ビット 0 64 K バイト 第 17 章 フラッシュメモリ レジスタ 17.2 フラッシュメモリにはフラッシュメモリステータスレジスタ (FLCR) とフラッシュ メモリウェイトレジスタ (FLWC) の 2 種類のレジスタがあります。 ■ フラッシュメモリのレジスタ一覧 図 17.2-1 に , フラッシュメモリのレジスタ一覧を示します。 図 17.2-1 フラッシュメモリのレジスタ一覧 Bit7 0 フラッシュメモリステータスレジスタ (FLCR) Bit7 0 フラッシュメモリウェイトレジスタ (FLWC) 表 17.2-1 アドレスマップ レジスタ アドレス ブロック +0 +1 +2 +3 007000H FLCR[R/W] B 0110X000 − − − 007004H FLWC[R/W] B 00000011 − フラッシュ インタフェース − − 421 第 17 章 フラッシュメモリ 17.2.1 フラッシュメモリステータスレジスタ (FLCR) フラッシュメモリステータスレジスタ (FLCR) は , フラッシュメモリの動作状態を示 すレジスタです。 ■ フラッシュメモリステータスレジスタ (FLCR) の構成 このレジスタは , CPU に対する割込みの制御やフラッシュメモリへの書込みの制御を 行います。CPU でのみアクセスすることが可能です。ライタ搭載時はアクセスできま せん。 このレジスタは , リードモディファイライト系命令ではアクセスしないでください。 図 17.2-2 に , フラッシュメモリステータスレジスタ (FLCR) のビット構成を示します。 図 17.2-2 フラッシュメモリステータスレジスタ (FLCR) のビット構成 アドレス 007000H 7 6 5 4 3 2 1 0 − R/W 0 − R/W 1 − R/W 1 − R 0 RDY R X − R/W 0 WE R/W 0 − R/W 0 ←ビット No. ←属性 ←初期値 以下に,フラッシュメモリステータスレジスタ(FLCR)の各ビットの機能を説明します。 [ ビット 7] (reserved) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 [ ビット 6] (reserved) このビットは予約ビットです。このビットは常に "1" を書き込んでください。 [ ビット 5] (reserved) このビットは予約ビットです。このビットは常に "1" を書き込んでください。 [ ビット 4] (reserved) このビットは予約ビットです。このビットはリードオンリで書込みは動作に影響を 与えません。 [ ビット 3] RDY : 自動アルゴリズムの動作状態を示します。 RDY 機能 0 書込み / 読出し動作中で , データの書込み , 読出しおよび消去コマンド の受付けは不可 1 データの読出し , 書込みおよび消去コマンドの受付けが可能 [ ビット 2] (reserved) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 422 第 17 章 フラッシュメモリ [ ビット 1] WE : CPU モードにおけるフラッシュメモリへのデータおよびコマンドの 書込みを制御します。 本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みはすべて 無効になります。また , フラッシュメモリからのデータ読出しは , 32 ビットアクセスで 行われます。 本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有効と なり , 自動アルゴリズムの起動が可能となります。ただし , フラッシュメモリからの データの読出しおよび書込みは 16 ビットアクセスになります。フラッシュメモリへの アクセスは 16 ビットアクセスのみを使用してください。32 ビット , 8 ビットのアクセ スは禁止します。 本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズムが停止していることを 確認した後 , 行ってください。 RDY ビットが "0" の間 , 本ビットを書き換えることはできません。 WE 機能 0 フラッシュメモリへの書込み禁止 , および 32 ビット読出しモード 1 フラッシュメモリへの書込み許可 , および 16 ビット読出しモード [ ビット 0] (reserved) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 ● 制限事項 本レジスタの WE ビットを書き換える場合には必ず下記の命令シーケンスを F-bus RAM 上 (CPU 内部に搭載されている RAM) で実行してください。また , レジスタ書換 え時には , DMA, 割込み , スタンバイ動作は行わないでください。 命令シーケンス : 1: NOP 2: NOP 3: NOP 4: NOP 5: NOP 6: MUL R2,R3 7: STB R11,@R12 8: MUL R2,R3 9: NOP //32 ビットダミー乗算 // レジスタ書換え //32 ビットダミー乗算 423 第 17 章 フラッシュメモリ フラッシュウェイトレジスタ (FLWC) 17.2.2 フラッシュウェイトレジスタ (FLWC) は , CPU モードにおいてフラッシュメモリの ウェイト制御を行います。 ■ フラッシュウェイトレジスタ (FLWC) の構成 図 17.2-3 に , フラッシュウェイトレジスタ (FLWC) のビット構成を示します。 図 17.2-3 フラッシュウェイトレジスタ (FLWC) のビット構成 アドレス 007004H 7 6 5 4 3 − R 0 − R/W 0 FAC1 R/W 0 FAC0 R/W 0 − R/W 0 2 1 0 ←ビット No. WTC2 WTC1 WTC0 R/W R/W R/W ←属性 0 1 1 ←初期値 以下に , フラッシュウェイトレジスタ (FLWC) の各ビットの機能を説明します。 [ ビット 7, ビット 6] (reserved) これらのビットは予約ビットです。 これらのビットは常に "0" を書き込んでください。 [ ビット 5, ビット 4] FAC1, FAC0 : 内部書込み信号のパルス幅制御ビット FAC1 FAC0 ATDIN EQIN 0 0 0.5 clock 1 clock 0 1 1 clock 1.5 clock 1 0 1.5 clock 2 clock 1 1 2 clock 2.5 clock ( 初期値 : デフォルト ) <注意事項> • ATDIN, EQIN は内部書込み信号です。通常はデフォルト設定で使用してください。 • マスク品は常に "00B" を書き込んでください。 [ ビット 3] (reserved) このビットは予約ビットです。このビットは常に "0" を書き込んでください。 424 第 17 章 フラッシュメモリ [ ビット 2 ∼ビット 0] WTC2 ∼ WTC0 : ウェイトサイクル制御ビット 本ビットはフラッシュアクセス時のウェイトサイクル数を制御します。 WTC2 WTC1 WTC0 Wait Cycle 読出し時 書込み時 0 0 0 - 設定禁止 設定禁止 0 0 1 1 33 MHz まで動作可能 設定禁止 0 1 0 2 33 MHz まで動作可能 設定禁止 0 1 1 3 33 MHz まで動作可能 33 MHz まで動作可能 1 0 0 4 設定禁止 設定禁止 1 0 1 5 設定禁止 設定禁止 1 1 0 6 設定禁止 設定禁止 1 1 1 7 設定禁止 設定禁止 ( 初期値 ) <注意事項> • FAC1, FAC0 で設定したサイクル以上になるように設定してください。 • 初期値は書込み用の設定になっています。読出しのみを行う場合 (FLCR WE=0 設定の場合 ) wait cycle 1 (WTC2 ∼ WTC0 = 001B) と設定することで 最高速で読出しが可能になります。 • マスク品の初期値は , wait cycle 3 (WTC2 ∼ WTC0 = 011B) で読み出されます。 wait cycle 1 (WTC2 ∼ WTC0 = 001B) と設定することで最高速で読出しが可能にな ります。 425 第 17 章 フラッシュメモリ 17.3 フラッシュメモリのアクセスモード FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。 • ROM モードワード (32 ビット ) 長データを一括で読み出すことができますが , 書込みはできません。 • プログラミングモードワード (32 ビット ) 長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長での書込みが可能になります。 ■ FR-CPU ROM モード (32/16/8 ビット , 読出しのみ ) FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括 読出しが可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできま せん。 ● モードの指定方法 • フラッシュメモリステータスレジスタの WE ビットが "0" のとき , このモードと なります。 • CPU 動作時でのリセット解除後は常にこのモードになります。 • CPU 動作時以外ではこのモードにすることができません。 ● 動作内容 フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で読 み出します。 読出しにかかるサイクル数は 2 サイクル /1 ワード (1 ウェイト ) です。これにより FRCPU に対し , ウェイトなしで命令を供給することができます。 ● 制限事項 ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。この モードでは , フラッシュメモリへのコマンド / データともに書込みはできません。 ■ FR-CPU プログラミングモード (16 ビット , 読出し / 書込み ) データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア クセスは不可能ですので,このモードで動作している間はフラッシュメモリ上のプログ ラムは実行が不可能となります。 ● モード指定の方法 • フラッシュメモリステータスレジスタ (FLCR) の WE ビットが "1" のときこのモー ドとなります。 • CPU 動作時でのリセット解除後は WE ビットが "0" になっています。このモード にするためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセッ トの発生により WE ビットが "0" になると ROM モードに戻ります。 • フラッシュメモリステータスレジスタ (FLCR) の RDY ビットが "0" の期間は WE ビットを書き換えることができません。RDY ビットが "1" になったことを確認し た後 , WE ビットを書き換えてください。 426 第 17 章 フラッシュメモリ ● 動作内容 • フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長データ を一括で読み出します。 • 読出しにかかるサイクル数は 4 サイクル / ハーフワード (3 ウェイト ) です。 • フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動すること ができます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが 可能となります。自動アルゴリズムの詳細については ,「17.4 自動アルゴリズム 起動方法」および「17.5 自動アルゴリズム実行状態」を参照してください。 ● 制限事項 • ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。こ のモードではワード (32 ビット ) 長でデータを読み出すことを禁止します。 • 本モードではワード (32 ビット ) 長データを読み出すことを禁止します。 • プログラミングアクセスモード切換えで , WE ビットを書き換える際には「17.2.1 フラッシュメモリステータスレジスタ (FLCR)」の制限事項に従って書き換えてく ださい。 427 第 17 章 フラッシュメモリ 自動アルゴリズム起動方法 17.4 フラッシュメモリに対する書込み / 消去は , フラッシュメモリ自身が持つ自動アルゴ リズムを起動することで行います。 ● コマンドオペレーション 自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 ∼ 6 回のハーフワード (16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。不正なア ドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込んだりすると フラッシュメモリは読出しモードにリセットされます。 フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を表 17.4-1 に示します。 表 17.4-1 コマンド一覧 コマンド シーケンス 読出し / リセット 読出し / リセット プログラム アク セス 回数 第 1 書込み サイクル 第 2 書込み サイクル 第 3 書込み サイクル 第 4 書込み / 読出しサイクル 第 5 書込み サイクル 第 6 書込み サイクル アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ 1 XXXXH F0H − − − − − − − − − − 4 D5557H AAH CAAABH 55H D5557H F0H RA RD − − − − 4 D5557H AAH CAAABH 55H D5557H A0H チップ消去 6 D5557H AAH CAAABH 55H D5557H 80H PA D5557H PD AAH − CAAABH − 55H − D5557H − 10H セクタ消去 6 D5557H AAH CAAABH 55H D5557H 80H D5557H AAH CAAABH 55H SA 30H セクタ消去一時停止 アドレス ="XXXXH", データ ="B0H" の入力でセクタ消去中の消去一時停止 セクタ消去再開 D5557H 3 オートセレクト アドレス ="XXXXH", データ ="30H" の入力でセクタ消去一時停止後 , 消去再開 AAH CAAABH 55H D5557H 90H − − − − − AAH CAAABH 55H D5557H 20H − − − − − − PD F0H or 00H − − − − − − − − − − − − − − − − 連続モード 3 D5557H 連続書込み 2 XXXXH A0H PA 連続モード リセット 2 XXXXH 90H XXXXH − ワードモード / バイトモード共にコマンドは同じで , 表記されていないビットのデータ は任意です。 RA: 読出しアドレス PA: 書込みアドレス SA: セクタアドレス ( セクタ内の任意の 1 アドレスを指定 ) RD: 読出しデータ PD: 書込みデータ 428 第 17 章 フラッシュメモリ ● リード ( 読出し )/ リセットコマンド タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー タを読み出します。フラッシュメモリは , ほかのコマンドが入力されるまで読出し状態 を保ちます。 フラッシュメモリは , 電源投入時自動的に読出し / リセットにセットされます。この場 合は , データ読出しにコマンドは必要ありません。 ● プログラム ( 書込み ) CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書 込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし て , 最後の書込みサイクルでメモリへの書込みが開始されます。 自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上の 外部からの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適切 な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動作 は , データポーリング機能によりビット 7 のデータがこのビットに書き込んだデータと 一致したとき終了し 「 ( 17.5 自動アルゴリズム実行状態 ■ ハードウェアシーケンスフラ グ」を参照 ), このときをもって読出しモードに戻り , これ以上書込みアドレスは受け付 けなくなります。この結果 , フラッシュメモリはこの時点で次の有効アドレスを要求し ます。このようにデータポーリングは , メモリが書込み中であることを示します。 書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。もし , 書込み中にハードウェアリセットが起動されると書き込んでいるアドレスのデータは 保証されません。書込みはどのようなアドレスの順番でも , また , セクタの境界を超え ても可能です。書込みによってデータ 0 をデータ 1 に戻すことはできません。データ 0 にデータ 1 を書き込むと , データポーリングアルゴリズムにより素子が不良と判定さ れるか , または見かけ上データ 1 が書き込まれたように見えるかのどちらかです。しか し , リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作 のみが 0 データを 1 データにすることができます。 図 17.4-1 に , 書込みコマンドを使っ た書込み手順を示します。 図 17.4-1 書込みコマンドを使った書込み手順 書込み開始 書込みコマンドシーケンス デバイスのデータポーリング 次アドレス NO ラスト アドレス? YES 書込み完了 429 第 17 章 フラッシュメモリ ● チップ消去 チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に , 2 つの " アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。 チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。 チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。自動消去アルゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消 去する前に "0" のパターンに書き込んで検証します ( プリプログラム )。この動作中に は , フラッシュメモリは外部からの制御は必要としません。 自動消去はコマンドシーケンス中の書込みで開始され , ビット 7 が "1" になったときに 終了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セ クタ消去時間×全セクタ数 + チップ書込み時間 ( プリプログラム )」となります。 チップ消去コマンドを使ったチップ消去手順を図 17.4-2 に , 示します。 ● セクタ消去 セクタ消去は , 6 回のアクセスで行われます。 2 つの " アンロック " サイクルがあり , 引 き続き " セットアップ " コマンドを書込みし , その後さらに 2 つの " アンロック " サイ クルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始 まります。最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次の セクタ消去コマンドの受付けが可能です。 複数のセクタ消去は前述したような 6 回のバスサイクルを書き込むことで同時に受付 け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去 コマンド (30H) を引き続き書き込むことで行います。最後のセクタ消去コマンドの書込 みから 50 µs のタイムアウト期間終了により , セクタ消去が開始されます。すなわち , 複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50 µs 以内に入力 する必要があり , それ以降ではコマンドは受け付けられないことがあります。引き続く セクタ消去コマンドが有効かどうかはビット 3 にてモニタ可能です (「17.5 自動アル ゴリズム実行状態 ■ ハードウェアシーケンスフラグ」を参照 )。 タイムアウト中のセクタ消去コマンド , または消去一時停止以外のいかなるコマンド も読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , その セクタを再度消去することにより消去が完了します。セクタ消去バッファへのセクタ アドレス入力は , セクタのどのような組合せや数 (0 ∼ 6) からでも実行可能です。セク タ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありません。フ ラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行います ( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響も受 けません。これらの動作中は , フラッシュメモリは外部からの制御は必要としません。 自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間 の後に開始され , ビット 7 のデータが "1" になったとき (「17.5 自動アルゴリズム実行 状態 ■ ハードウェアシーケンスフラグ」を参照 ) 終了し , フラッシュメモリは読出し モードに戻ります。ほかのコマンドは無視されます。データポーリングは消去された セクタ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間 + セ クタ書込み時間 ( プリプログラム )) ×消去セクタ数」となります。 チップ消去コマンドを使ったチップ消去手順を図 17.4-2 に , 示します。 430 第 17 章 フラッシュメモリ 図 17.4-2 チップ消去コマンドを使ったチップ消去手順 消去開始 チップ消去/セクタ消去 コマンドシーケンス デバイスのデータポーリング またはトグルビットの完了 書込み完了 ● 消去一時停止 消去一時停止コマンドは,ユーザがセクタ消去中にフラッシュメモリの自動アルゴリズ ムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするもの です。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視さ れます。消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイ ムアウト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト 期間中に入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開 コマンドが書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンド の入力の際のアドレスは任意であってかまいません。 セクタ消去動作中に消去一時停止コマンドが入力されると,フラッシュメモリが消去動 作を停止するために最大 20 µs の時間がかかります。フラッシュメモリが消去一時停止 モードに入ると , レディ / ビジー出力とビット 7 が "1" を出力し , ビット 6 がトグル動 作をやめます。消去しているセクタのアドレスを入力し , ビット 6 とビット 7 の読出し 値をモニタすることによって , 消去動作を停止しているかどうかを確かめられます。さ らに , 消去一時停止コマンドの書込みは無視されます。消去動作が停止したとき , フ ラッシュメモリは消去一時停止読出しモードになります。このモードでのデータの読 出しはデータが消去一時停止していないセクタに有効となりますが,それ以外は標準的 な読出しと同じです。消去一時停止読出し中 , その消去一時停止したセクタからの連続 的な読出しに対しては , ビット 2 はトグル動作をします (「17.5 自動アルゴリズム実行 状態 ■ ハードウェアシーケンスフラグ」を参照 )。 消去一時停止読出しモードに入った後,ユーザは書込みのコマンドシーケンスを書き込 むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時停 止書込みモードとなります。このモードでの書込みは , データが消去一時停止していな いセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時停 止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対しては , ビット 2 はトグル動作をします。消去一時停止ビット ( ビット 6) によって検出できます。 使用上の注意として , ビット 6 はどんなアドレスに対しても読出し可能ですが , ビット 7 は書込みアドレスに対して読出しを行わなければなりません。セクタ消去動作を再開 するためには , 再開コマンド (30H) を入力する必要があります。この時点でさらに再開 コマンドを入力しても無視されます。他方 , 消去一時停止コマンドはフラッシュメモリ が消去再開した後に入力することができます。 431 第 17 章 フラッシュメモリ 17.5 自動アルゴリズム実行状態 このフラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フラッシュメモリ内部の動作状態や動作完了したことをレディ / ビジー信号および ハードウェアシーケンスフラグによって知ることができます。 ■ レディ / ビジー信号 (RDY/BUSY) フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と して , ハードウェアシーケンスフラグのほかにレディ / ビジー信号を持っています。こ のレディ/ ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッシュ メモリステータスレジスタの RDY ビットとして読み出すことが可能です。また , この レディ/ ビジー信号の立上りにより , CPU に対して割込み要求を発生することも可能で す (「17.1 フラッシュメモリの概要」を参照 )。 RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込みまたは消去動作中で す。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読出 し値が "1" のときフラッシュメモリは読出し / 書込みまたは消去動作待ちの状態です。 ■ ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは,自動アルゴリズム実行中にフラッシュメモリの任意 のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことにより , データとして 得られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの 状態を示します。ハードウェアシーケンスフラグの構成を図 17.5-1 に示します。 図 17.5-1 ハードウェアシーケンスフラグの構成 ハードウェア読出し時 15 8 7 ( 不定 ) 0 ←ビット No. 0 ←ビット No. ハードウェアシーケンスフラグ 7 バイト読出し時 ( 奇数アドレスのみ ) ハードウェアシーケンスフラグ ハーフワード . バイトアクセス時 7 6 5 4 3 2 1 0 DPOLL TOGGLE TLOVER 不定 SETIMR TOGGL2 不定 不定 ←ビット No. なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ い。 ハードウェアシーケンスフラグ状態一覧を表 17.5-1 に示します。 432 第 17 章 フラッシュメモリ 表 17.5-1 ハードウェアシーケンスフラグ状態一覧 状態 実行中 自動書込み動作 自動消去時の書込み / 消去動作 消去 読出し ( 消去中のセクタ ) 一時 読出し ( 消去していないセクタ ) 停止 書込み ( 消去していないセクタ ) タイム 自動書込み動作 リミット 自動消去時の書込み / 消去動作 超過 *1 : DPOLL ( ビット 7) TOGLLE TLOVER SETIMR TOGGL2 ( ビット 6) ( ビット 5) ( ビット 3) ( ビット 2) 反転データ 0 1 トグル トグル 1 0 0 0 0 1 0 データ データ 反転データ 反転データ トグル トグル データ 0 1 データ 0 0 0 トグル 1 1 1 トグル トグル データ 1 *1 1 *2 消去一時停止書込み中 , その書込みされているアドレスの読出しに対し , ビット 2 は論理 "1" を出力します。 しかし , 消去一時停止しているセクタからの連続的な読出しに対しビット 2 はト グル動作をします。 *2 : ビット 5 が "1" のとき ( タイムリミット超過 ), 書込み / 消去中セクタへの連続的 な読出しに対してはビット 2 はトグル動作をし , 他のセクタへの読出しに対して はトグル動作しません。 以下に , 各ビットの説明します。 [ ビット 7]DPOLL: データポーリング • 自動書込み動作中 自動書込みアルゴルズム実行中に読出しを行うと , フラッシュメモリはビット 7 に最後に書き込まれたデータの反転データを出力します。自動書込みアルゴリズ ム終了時に読出しアクセスを行うと , フラッシュメモリはアドレス信号の指し示 す番地の読出しデータのビット 7 を出力します。 • 自動消去動作中 自動消去アルゴリズム実行中に読出しを行うと , フラッシュメモリはアドレス信 号の指し示す番地によらず "0" を出力します。同様に , 終了時には "1" を出力しま す。 • セクタ消去一時停止中 セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指 し示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタ に属さないのであれば , アドレス信号の指し示す番地の読出し値のビット 7 を出 力します。後述のビット 6 のトグルビットとともに参照することで , 現在セクタ 消去一時停止状態にあるか否か , どのセクタが消去中であるかの判定が可能です。 433 第 17 章 フラッシュメモリ <注意事項> 自動アルゴリズムの動作が終了に近づくと , ビット 7( データポーリング ) は読出し動作中 , 非同期的に変化します。 これはフラッシュメモリが動作状態の情報をビット 7 に送り出し , そして確定したデータをその次に送り出すことを意味します。フラッシュメモリが自動ア ルゴリズムを終了したとき , また , ビット 7 が確定データを出力しているときでも , ほかの ビットはまだ不確定です。ほかのビットの確定データは , 連続した読出しの実行によって 読み出されます。 [ ビット 6]TOGGLE: トグルビット • 自動書込み / 消去動作中 自動書込みまたは消去アルゴリズム実行中に連続した読出しを行うと , フラッ シュメモリは "1" と "0" をトグルする結果をビット 6 に出力します。自動書込み または消去アルゴリズムが終了すると , 連続した読出しに対してビット 6 のトグ ル動作をやめ , 有効なデータを出力します。 トグルビットは各コマンドシーケンスの差以後の書込みサイクルの後から有効 になります。 なお , 書込みの際 , 書き込もうとしたセクタが書換え保証されているセクタの場 合は , 約 2 µs の間トグル動作した後 , データに書き換えることなくトグル動作を 終わります。消去の際 , もし選択されたすべてのセクタが書込み保証されている 場合には , トグルビットは約 100 µs トグル動作をし , その後データを書き換えな いで読出しモードに戻ります。 • セクタ消去一時停止中 セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指 し示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタ に属さないのであれば , アドレス信号の指し示す番地の読出し値のビット 6 を出 力します。 [ ビット 5]TLOVER: タイミングリミット超過 自動書込み / 消去動作中 ビット 5 は自動アルゴリズムの実行がフラッシュメモリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを示します。この状態においてビット 5 は "1" を出力します。すなわち , 自動アルゴリズムが動作中で , このフラグが "1" を出力した場合は , 書込みまたは消去が失敗したことを示します。 ビット 5 はまた , 消去することなく非ブランクの部分に書き込もうとするとフェ イルとなります。この場合 , ビット 7( データポーリング ) から確定データを読む ことができず , また , ビット 6( トグルビット ) はトグリングしたままとなります。 この状態でタイムリミットを超えると , ビット 5 に "1" が出力されます。この場 合は , フラッシュメモリが不良なのではなく正しく使用されなかったということ を表していることに注意してください。もし , この状態が発生したときには , リ セットコマンドを実行してください。 434 第 17 章 フラッシュメモリ [ ビット 3]SETIMR: セクタ消去タイマ セクタ消去動作中 最初のセクタ消去コマンドシーケンス実行後 , セクタ消去ウェイト期間中になり ます。ビット 3 は , この期間中 "0" を , セクタ消去ウェイト期間を超えてしまって いる場合は "1" を出力します。データポーリングとトグルビットは最初のセクタ 消去コマンドシーケンスの実行後から有効となります。 データポーリング機能やトグルビット機能により , 消去アルゴリズムが実行中を 示している場合 , このフラグが "1" であれば内部で制御される消去が始まっており , 続けてのコマンド書込みはデータポーリングかトグルビットが消去の終了を示 すまで無視されます ( 消去一時停止コードの入力のみ受け付けます )。このフラグ が "0" の場合 , フラッシュメモリは追加のセクタ消去コードの書込みを受け付けま す。このことを確認するために , 引き続くセクタ消去コードの書込みに先立って ソフトウェアでこのフラグの状態をチェックすることを推奨します。もし , 2 回目 の状態チェックで "1" であったなら , 追加セクタ消去コードは受け付けられていな い可能性があります。セクタ消去一時停止中に読出しを行うと , フラッシュメモ リはアドレス信号の指し示す番地が消去中のセクタに属するならば "1" を出力し ます。消去中のセクタに属さないのであれば , アドレス信号の指し示す番地の読 出し値のビット 3 を出力します。 [ ビット 2]TOGGL2: トグルビット 2 セクタ消去動作中 このトグルビットは , ビット 6 のトグルビットに加えて , フラッシュメモリが自動 消去動作中であるか , 消去一時停止中であるかを検出することに使われます。自 動消去中に消去しているセクタから連続して読出しを行うとビット 2 がトグル動 作をします。フラッシュメモリが消去一時停止読出しモードならば , 消去一時停 止しているセクタから連続して読出しを行うとビット 2 はトグル動作をします。 フラッシュメモリが消去一時停止書込みモードのときは , 消去一時停止していな いセクタからアドレスを連続して読み出すとビット 2 は "1" が読み出されます。 ビット 6 はビット 2 と違い , 通常の書込み , 消去または消去一時停止書込み動作 中にのみトグル動作をします。 例えば , ビット 2 とビット 6 は , 消去一時停止読出しモードを検出するために一 緒に使われます ( ビット 2 はトグル動作をしますが , ビット 6 はトグル動作をしま せん )。さらに , ビット 2 は消去しているセクタの検出にも使われます。フラッ シュメモリが消去動作のときは , ビット 2 は消去しているセクタからの読出しな らばトグル動作をします。 435 第 17 章 フラッシュメモリ ■ ハードウェアシーケンスフラグの使用例 ハードウェアシーケンスフラグを用いることで,フラッシュメモリ内部の自動アルゴリ ズムの状態判定が可能です。例として , 図 17.5-2 , 図 17.5-3 にそれぞれデータポーリン グ機能を用いた場合と , トグルビット機能を用いた場合の書込み / 消去判定のフロー チャートを示します。 図 17.5-2 データポーリング機能を用いた書込み / 消去判定のフローチャート 書込み/消去開始 VA = 書込みアドレス = セクタ消去動作に消去されて いるセクタのアドレス = チップ消去動作中に保護され ていないセクタアドレス 読出し(D0~D7) アドレス=VA D7=Data ? YES * : D7はD5と同時に変わるので例 えばD5="1"であってもD7は再 チェックする必要があります。 NO NO D5=1 ? YES 読出し(D0~D7) アドレス=VA * D7=Data ? YES NO 書込み/消去 不可 436 書込み/消去 可 第 17 章 フラッシュメモリ 図 17.5-3 トグルビット機能を用いた書込み / 消去判定のフローチャート 書込み/消去開始 読出し(D0~D7) アドレス= "H" または "L" D6=トグル ? NO YES NO D5=1 ? YES 読出し(D0~D7) アドレス= "H" または "L" D6=トグル ? * NO YES 書込み/消去 不可 書込み/消去 可 *:D5が"1"に変わるのと同時にD6はトグル動作をやめるので, たとえD5="1"であっても,D6は再チェックする必要があります。 437 第 17 章 フラッシュメモリ 17.6 セクタプロテクトオペレーション フラッシュメモリには不正な書込み / 消去に対し , セクタ単位でこれを無効にするセ クタ保護機能を持ちます。一度 , 保護設定されたセクタはデバイスが破壊しない限り , その設定を持ち続けますが , 一時的であれば保護を解除し , 書込み / 消去を行うこと も可能です。これらの操作はセクタプロテクトオペレーションを通して行われます。 セクタプロテクトオペレーションには書込み / 消去のような自動アルゴリズムはあり ません。また , 通常モードには対応せず , フラッシュメモリモードでのみ実行可能で す。このため , 通常はフラッシュメモリライタを用いた外部端子制御で行われます。 ■ セクタプロテクトオペレーション一覧 セクタプロテクトオペレーションには , • イネーブルセクタプロテクト • ベリファイセクタプロテクト • セクタプロテクト一時解除 の 3 種類があります。 表 17.6-1 に , それぞれの端子設定を示します。 表 17.6-1 端子設定 オペレーション イネーブル セクタプロテクト ベリファイ セクタプロテクト セクタプロテクト 一時解除 CEX OEX WEX A1 A2 A7 L H L L H L L L H L H L - - - - - - A17 ∼ A13 D0 ∼ D15 セクタ アドレス セクタ アドレス - H VID H VID コード 出力 * H H H VID - - H H VID H * : セクタプロテクト時は "01H", セクタアンプロテクト時は "00H" を出力 438 RSTX MD2 MD1 MD0 第 17 章 フラッシュメモリ ■ イネーブルセクタプロテクト イネーブルセクタプロテクトでは,フラッシュメモリ内部の保護回路への書込みを行い ます。 このオペレーションにより 10 個のセクタのどのセクタの組合せでも書込みも消去も無 効にすることができます。なお , MB91F264B ではすべてのセクタが保護解除された状 態で出荷されます。このオペレーションでは , まずアドレス信号に保護すべきセクタの セクタアドレス (A17, A16, A15, A14, A13) の設定が必要となります。セクタとセクタ アドレスの対応は , 表 17.1-1 を参照してください。 保護回路の書込みは , MD2 と MD0 に VID (=12 V) を印加し , CEX=0 にした後 ,WEX パ ルスの立下りで開始され , 立上りで終了します。 なお , セクタアドレスは WEX パルスの間中一定に保たなければなりません。セクタ保 護は一度設定されると , 取り消すことができません。また , 保護されたセクタへは , こ れ以降書込み / 消去は不可能となります。 ■ ベリファイセクタプロテクト ベリファイセクタプロテクトでは,フラッシュメモリ内部の保護回路の書込みに対する 検証 ( ベリファイ ) を行います。このオペレーションでは , まず CEX と OEX を "0" に し ,WEX を "1" にしたまま MD0 に VID を印加 ( マージンモード ) します。(A7, A2, A1)=(0, 1, 0) の条件でアドレス信号をあるセクタアドレスにして読み出すと , 保護され たセクタでは出力 DQ0 に "1" が出力されます。保護されていないセクタでは , "00H" が 読み出されます。イネーブルセクタプロテクト , ベリファイセクタプロテクトを用いた セクタ保護のアルゴリズムを図 17.6-1 に , 示します。 439 第 17 章 フラッシュメモリ 図 17.6-1 イネーブルセクタプロテクトおよび ベリファイセクタプロテクトを用いたセクタ保護アルゴリズム 開始 セクタアドレスのセットアップ A17~A13 PLSCNT=1 MD2=MD0=VID、 MD1=HA1=CEX=WEX="L" OEX=RSTX="H" WEXパルス印加 タイムアウト100µs WEX=MD2="H" CEX=OEX="L" (MD0はVIDのまま) セクタアドレスSAの読出し (アドレス=SA、A1="L" A2="H"、A7="L") NO データ=01H ? YES NO PLSCNT=50 ? YES MD0のVIDを解除 リセットコマンドを書き込み ほかにセクタ 保護 ? NO MD0のVIDを解除 リセットコマンドを書き込み 不可 セクタ保護完了 440 YES 第 17 章 フラッシュメモリ ■ セクタプロテクト一時解除 イネーブルセクタプロテクトにより保護されたセクタはデバイスが破壊しない限り,書 込み / 消去ができませんが , セクタプロテクト一時解除のオペレーションでは , 以前に 設定されたセクタ保護情報の一時的解除を可能にします。このオペレーションは , MD1 に VID を印加し続けることで設定されます。この間 , 以前に設定されたセクタ保護情 報は無視され , すべてのセクタに書込み / 消去が可能となります。MD1 を "1" (=3.3 V) に戻すと , このオペレーションは解除され , 以前に保護されたすべてのセクタが再び保 護されます。セクタプロテクト一時解除のアルゴリズムを図 17.6-2 に示します。 図 17.6-2 セクタプロテクト一時解除のアルゴリズム 開始 MD1=VID *1 消去または書込み動作実行 MD1="H" セクタ保護解除終了 *2 *1:すべての保護されたセクタの保護を 解除します。 *2:前に保護されていたセクタが再びセ クタ保護されます。 441 第 17 章 フラッシュメモリ 442 第 18 章 シリアル書込み接続 シリアル書込みの基本構成 , および接続例について 説明します。 18.1 概要 443 第 18 章 シリアル書込み接続 18.1 概要 MB91F264B ではフラッシュメモリのシリアルオンボード書込み ( 富士通標準 ) をサ ポートしています。その仕様について説明します。 ■ シリアル書込み基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/ AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。シングルチップ モードで動作するプログラムで書き込むことができます。MB91F264B シリアル書込み 接続の基本構成について図 18.1-1 に示します。 図 18.1-1 シリアル書込み接続の基本構成 ホストインタフェースケーブル 汎用共通ケーブル(AZ210) RS232C AF220/AF210/ AF120/AF110 フラッシュマイ コンプログラマ CLK同期シリアル MB91F264B ユーザシステム + メモリカード スタンドアロンで動作可能 <注意事項> AF210 フラッシュマイコンプログラマの機能・操作方法および接続用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株式会社にお問い合わ せください。 444 第 18 章 シリアル書込み接続 ■ 富士通標準シリアルオンボード書込みに使用する端子 端子 機能 補足説明 MD2, MD1, モード端子 MD0 書込みモードに制御します。 フラッシュシリアル書込みモード : MD2, MD1, MD0=1, 0, 0 参考 : シングルチップモード : MD2, MD1, MD0=0, 0, 0 P44, P45 書込みプログラム起動端子 P44 に "L" レベル , P45 に "H" レベルを入力してください。 INIT リセット端子 SIN0 シリアルデータ入力端子 SOT0 シリアルデータ出力端子 SCK0 シリアルクロック入力端子 VCC 電源電圧供給端子 書込み電圧をユーザシステムから供給してください。接続 時にはユーザ側の電源と短絡しないようにしてください。 VSS GND 端子 フラッシュマイコンプログラマの GND と共通にします。 − UART の ch.0 リソースをクロック同期モードとして使用 します。 <注意事項> • P44, P45, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 以下に示 す制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路を切り離すことができます )。 AF220/AF210/ AF120/AF110 書込み制御端子 MB91F264B 書込み制御端子 10 k AF220/AF210/ AF120/AF110 /TICS端子 ユーザ回路 • AF200 との接続はユーザ電源が OFF の状態で行ってください。 445 第 18 章 シリアル書込み接続 ■ シリアル書込み接続例 図 18.1-2 MB91F264B シリアル書込み接続例 AF200 フラッシュマイコン プログラマ ユーザシステム コネクタ TAUX3 (19) シリアル書換え時 1 シリアル書換え時 0 TMODE MB91F264B DX10-28S (12) シリアル書換え時 0 MD2 74 MD1 75 MD0 76 P44 27 10 k 10 k 10 k ユーザ回路 シリアル書換え時 0 WDT (18) /TICS (10) シリアル書換え時 1 10 k ユーザ回路 P45 28 INITX 77 (5) ▼ TRXD (13) (27) ▼ ▼ SIN0 SOT0 98 99 TCK (6) ▼ SCK0 100 TVcc (2) /TRES TTXD GND (14,15, 1,28) Vcc (17,35,49, 67,92) Vss (18,37,50, 68,93) ユーザ電源(5.0 V) 14ピン 1ピン D X 10-28S 3,4,9,11,16,17,18, 20,23,24,25,26ピン はオープン 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 DX10-28S:ライトアングルタイプ ▼:10 k プルアップ 446 第 18 章 シリアル書込み接続 ■ AF200 フラッシュマイコンプログラマシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) 型格 機能 本 AF220 体 AF210 /AC4P イーサネットインタフェースモデル /100 V ∼ 220 V 電源アダプタ /AC4P スタンダードモデル /100 V ∼ 220 V 電源アダプタ AF120 /AC4P 単キーイーサネットインタフェースモデル /100 V ∼ 220 V 電源アダプタ AF110 /AC4P 単キーモデル /100 V ∼ 220 V 電源アダプタ AZ221 ライタ専用 PC-AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ : 1 m FF201 富士通製 FR フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P4 4 M バイト PC Card ( 別売品 ) フラッシュメモリ容量 512 K バイトまで 問い合せ先 : 横河ディジタルコンピュータ株式会社機器事業部 電話 : 042-333-6224 ■ 原発振クロック周波数について フラッシュメモリ書込み時に使用可能な原発振クロックは 4.0 MHz となっています。 ■ その他の注意事項 シリアルライタを用いてフラッシュメモリ書込み時のポート状態は , 書込みに使用し ている端子を除きリセット状態と同じです。 447 第 18 章 シリアル書込み接続 448 付録 I/O マップ , 割込みベクタ , 端子状態一覧 , リトル・ エンディアン領域を利用する際の注意事項 , 命令一 覧 , および使用上の注意事項について記載していま す。 付録 A I/O マップ 付録 B ベクタテーブル 付録 C 各 CPU ステートにおける端子状態 付録 D リトル・エンディアン領域を利用する際の注意事項 付録 E 命令一覧表 付録 F 使用上の注意 449 付録 付録 A I/O マップ メモリ空間領域と周辺リソースの各レジスタの対応を示します。 ■ I/O マップ [ 表の見方 ] アドレス 000000 H +0 PDR0 [R/W] XXXXXXXX レジスタ +1 +2 PDR1 [R/W] PDR2 [R/W] XXXXXXXX XXXXXXXX +3 PDR3 [R/W] XXXXXXXX ブロック T-unit ポートデータレジスタ 読出し/書込み アトリビュート リセット後のレジスタ初期値 レジスタ名(1コラムのレジスタが4n番地, 2コラムが4n+2番地・・・) 最左のレジスタ番地(ワードでアクセスした際は, 1コラム目の レジスタがデータのMSB側となる。) <注意事項> • レジスタのビット値は , 以下のように初期値を表します。 "1" : 初期値 "1" "0" : 初期値 "0" "X" : 初期値 "X" "-" : その位置に物理的にレジスタがない • DMACA0 ∼ DMACA4 の下位 16 ビット (DTC15 ∼ DTC0) は , バイトでのアクセスは できません。 450 付録 A I/O マップ 表 A-1 I/O マップ (1 / 7) レジスタ アドレス ブロック +0 +1 +2 +3 000000H PDR0 [R/W] B XXXXXXXX PDR1 [R/W] B XXXXXXXX PDR2 [R/W] B XXXXXXXX PDR3 [R/W] B XXXXXXXX 000004H PDR4 [R/W] B XXXXXXXX PDR5 [R/W] B XXXXXXXX PDR6 [R/W] B ----XXXX PDR7 [R/W] B XXXXXXXX 000008H ポートデータ レジスタ __________________ 00000CH PDRC [R/W] B XXXXXXXX PDRD [R/W] B ------XX PDRE [R/W] B ------XX ________ 000010H PDRG [R/W] B --XXXXXX ________ ________ ________ 000014H ∼ 00003CH __________________ 000040H EIRR0 [R/W] B,H,W 00000000 ENIR0 [R/W] B,H,W 00000000 000044H DICR [R/W] B,H,W -------0 HRCL [R/W,R] B,H,W 0--11111 予約 ELVR0 [R/W] B,H,W 00000000 00000000 ________ ________ TMRLR0 [W] H,W XXXXXXXX XXXXXXXX TMR0 [R] H,W XXXXXXXX XXXXXXXX 00004CH ________ TMCSR0 [R/W,R] B,H,W ---00000 00000000 000050H TMRLR1 [W] H,W XXXXXXXX XXXXXXXX TMR1 [R] H,W XXXXXXXX XXXXXXXX 000054H ________ TMCSR1 [R/W,R] B,H,W ---00000 00000000 000058H TMRLR2 [W] H,W XXXXXXXX XXXXXXXX TMR2 [R] H,W XXXXXXXX XXXXXXXX ________ TMCSR2 [R/W,R] B,H,W ---00000 00000000 000048H 00005CH 000060H 000064H 000068H 00006CH 000070H 000074H SSR0 [R/W,R] B,H,W 00001000 SIDR0[R]/SODR0 [W] B,H,W ADCH0 [R/W] B,H,W XX000000 00007CH ADCS0[R/W,W] B,H,W 00000X00 リロード タイマ 1 リロード タイマ 2 UART0 DRCL0 --------*3 UTIMC0 [R/W] B 0--00001 U-TIMER0 SCR1 [R/W] B,H,W 00000100 SMR1 [R/W] B,H,W 00--0-0- UART1 DRCL1 --------*3 UTIMC1 [R/W] B 0--00001 U-TIMER1 SCR2 [R/W] B,H,W 00000100 SMR2 [R/W] B,H,W 00--0-0- UART2 DRCL2 --------*3 UTIMC2 [R/W] B 0--00001 U-TIMER2 ADMD0 [R/W] B,H,W 00001111 ADCD01 [R] B,H,W XXXXXXXX ADCD00 [R] B,H,W XXXXXXXX ________ AICR0 [R/W] B,H,W 00000000 ________ XXXXXXXX SIDR1,SODR1 [R/W]B,H,W XXXXXXXX SIDR2,SODR2 [R/W] B,H,W XXXXXXXX UTIM2 [R] H / UTIMR2 [W] H 00000000 00000000 000078H リロード タイマ 0 SMR0 [R/W,W] B,H,W 00--0-0- UTIM1 [R] H / UTIMR1 [W] H 00000000 00000000 SSR2 [R/W,R] B,H,W 00001000 遅延割込み / ホールド リクエスト SCR0 [R/W] B,H,W 00000100 UTIM0 [R] H / UTIMR0 [W] H 00000000 00000000 SSR1 [R/W,R] B,H,W 00001000 外部割込み (INT0~INT7) A/D コンバータ 0 / AICR0 451 付録 表 A-1 I/O マップ (2 / 7) レジスタ アドレス ブロック +0 +1 +2 +3 000080H ADCH1 [R/W] B,H,W XXXX0XX0 ADMD1 [R/W] B,H,W 00001111 ADCD11 [R] B,H,W XXXXXXXX ADCD10 [R] B,H,W XXXXXXXX 000084H ADCS1[R/W,W] B,H,W 00000X00 ________ AICR1 [R/W] B,H,W ------00 ________ 000088H ADCH2 [R/W] B,H,W XXXX0XX0 ADMD2 [R/W] B,H,W 00001111 ADCD21 [R] B,H,W XXXXXXXX ADCD20 [R] B,H,W XXXXXXXX 00008CH ADCS2[R/W,W] B,H,W 00000X00 ________ AICR2 [R/W] B,H,W ------00 ________ 000090H OCCPBH0, OCCPBL0[W]/OCCPH0, OCCPL0 [R] H,W OCCPBH1, OCCPBL1[W]/OCCPH1, OCCPL1 [R] H,W 00000000 00000000 00000000 00000000 000094H OCCPBH2, OCCPBL2[W]/OCCPH2, OCCPL2 [R] H,W OCCPBH3, OCCPBL3[W]/OCCPH3, OCCPL3 [R] H,W 00000000 00000000 00000000 00000000 000098H OCCPBH4, OCCPBL4[W]/OCCPH4, OCCPL4 [R] H,W OCCPBH5, OCCPBL5[W]/OCCPH5, OCCPL5 [R] H,W 00000000 00000000 00000000 00000000 AICR1 OCSH1 [R/W] B,H,W X1100000 OCSL0 [R/W] B,H,W 00001100 OCSH3 [R/W] B,H,W X1100000 OCSL2 [R/W] B,H,W 00001100 0000A0H OCSH5 [R/W] B,H,W X1100000 OCSL4 [R/W] B,H,W 00001100 OCMOD [R/W] B,H,W XX000000 ________ 0000A8H TCDTH, TCDTL [R/W] H,W 00000000 00000000 CPCLRBH, CPCLRBL[W]/CPCLRH, CPCLRL[R] H,W 11111111 11111111 TCCSH [R/W] B,H,W 00000000 TCCSL [R/W] B,H,W 01000000 ________ ADTRGC [R/W] B,H,W XXXX0000 0000ACH IPCPH0, IPCPL0 [R] H,W XXXXXXXX XXXXXXXX IPCPH1, IPCPL1 [R] H,W XXXXXXXX XXXXXXXX 0000B0H IPCPH2, IPCPL2 [R] H,W XXXXXXXX XXXXXXXX IPCPH3, IPCPL3 [R] H,W XXXXXXXX XXXXXXXX 0000B4H PICSH01 [W] B,H,W 000000-- PICSL01 [R/W] B,H,W 00000000 0000B8H EIRR1 [R/W] B,H,W ------00 ENIR1 [R/W] B,H,W ------00 0000BCH TMRRH0, TMRRL0 [R/W] H,W XXXXXXXX XXXXXXXX 0000C0H TMRRH2, TMRRL2 [R/W] H,W XXXXXXXX XXXXXXXX ICSH23 [R] B,H,W XXXXXX00 ELVR1 [R/W] B,H,W -------- ----0000 ________ ________ DTCR2 [R/W] B,H,W 00000000 ________ 0000C8H ________ SIGCR1 [R/W] B,H,W 00000000 ________ SIGCR2 [R/W] B,H,W XXXXXXX1 ADCOMP2 [R/W] H,W 00000000 00000000 0000D4H ∼ 0000DCH 452 16 ビット ICU 外部割込み (INT8,INT9) 波形ジェネレータ DTCR1 [R/W] B,H,W 00000000 0000D0H 16 ビット フリーランタイマ TMRRH1, TMRRL1 [R/W] H,W XXXXXXXX XXXXXXXX DTCR0 [R/W] B,H,W 00000000 ADCOMP0 [R/W] H,W 00000000 00000000 16 ビット OCU ICSL23 [R/W] B,H,W 00000000 0000C4H 0000CCH A/D コンバータ 2 / AICR2 00009CH 0000A4H A/D コンバータ 1 / ADCOMP1 [R/W] H,W 00000000 00000000 ________ ________________ ADCOMPC [R/W] B,H,W XXXXX000 A/D COMP 予約 付録 A I/O マップ 表 A-1 I/O マップ (3 / 7) レジスタ アドレス ブロック +0 +1 +2 +3 0000E0H PWCSR0 [R/W,R] B,H,W 00000000 00000000 PWCR0 [R] H,W 00000000 00000000 0000E4H PWCSR1 [R/W,R] B,H,W 00000000 00000000 PWCR1 [R] H,W 00000000 00000000 0000E8H ________ PDIVR0 [R/W] B,H,W XXXXX000 0000ECH ∼ 000FCH ________ PDIVR1 [R/W] B,H,W XXXXX000 _________________ 予約 000100H PRLH0 [R/W] B,H,W XXXXXXXX PRLL0 [R/W] B,H,W XXXXXXXX PRLH1 [R/W] B,H,W XXXXXXXX PRLL1 [R/W] B,H,W XXXXXXXX 000104H PRLH2 [R/W] B,H,W XXXXXXXX PRLL2 [R/W] B,H,W XXXXXXXX PRLH3 [R/W] B,H,W XXXXXXXX PRLL3 [R/W] B,H,W XXXXXXXX 000108H PPGC0 [R/W] B,H,W 0000000X PPGC1 [R/W] B,H,W 0000000X PPGC2 [R/W] B,H,W 0000000X PPGC3 [R/W] B,H,W 0000000X 00010CH PRLH4 [R/W] B,H,W XXXXXXXX PRLL4 [R/W] B,H,W XXXXXXXX PRLH5 [R/W] B,H,W XXXXXXXX PRLL5 [R/W] B,H,W XXXXXXXX 000110H PRLH6 [R/W] B,H,W XXXXXXXX PRLL6 [R/W] B,H,W XXXXXXXX PRLH7 [R/W] B,H,W XXXXXXXX PRLL7 [R/W] B,H,W XXXXXXXX 000114H PPGC4 [R/W] B,H,W 0000000X PPGC5 [R/W] B,H,W 0000000X PPGC6 [R/W] B,H,W 0000000X PPGC7 [R/W] B,H,W 0000000X 000118H PRLH8 [R/W] B,H,W XXXXXXXX PRLL8 [R/W] B,H,W XXXXXXXX PRLH9 [R/W] B,H,W XXXXXXXX PRLL9 [R/W] B,H,W XXXXXXXX 00011CH PRLH10 [R/W] B,H,W XXXXXXXX PRLL10 [R/W] B,H,W XXXXXXXX PRLH11 [R/W] B,H,W XXXXXXXX PRLL11 [R/W] B,H,W XXXXXXXX 000120H PPGC8 [R/W] B,H,W 0000000X PPGC9 [R/W] B,H,W 0000000X PPGC10 [R/W] B,H,W 0000000X PPGC11 [R/W] B,H,W 0000000X 000124H PRLH12 [R/W] B,H,W XXXXXXXX PRLL12 [R/W] B,H,W XXXXXXXX PRLH13 [R/W] B,H,W XXXXXXXX PRLL13 [R/W] B,H,W XXXXXXXX 000128H PRLH14 [R/W] B,H,W XXXXXXXX PRLL14 [R/W] B,H,W XXXXXXXX PRLH15 [R/W] B,H,W XXXXXXXX PRLL15 [R/W] B,H,W XXXXXXXX 00012CH PPGC12 [R/W] B,H,W 0000000X PPGC13 [R/W] B,H,W 0000000X PPGC14 [R/W] B,H,W 0000000X PPGC15 [R/W] B,H,W 0000000X 000130H TRG [R/W] B,H,W 00000000 00000000 ________ GATEC [R/W] B,H,W XXXXXX00 000134H REVC [R/W] B,H,W 00000000 00000000 ________ ________ 000138H ∼ 0001FCH ______________ PWC PPG 0 ∼ PPG15 予約 453 付録 表 A-1 I/O マップ (4 / 7) レジスタ アドレス ブロック +0 +1 +2 +3 000200H DMACA0 [R/W] B,H,W *1 00000000 00000000 00000000 00000000 000204H DMACB0 [R/W] B,H,W 00000000 00000000 00000000 00000000 000208H DMACA1 [R/W] B,H,W *1 00000000 00000000 00000000 00000000 00020CH DMACB1 [R/W] B,H,W 00000000 00000000 00000000 00000000 000210H DMACA2 [R/W] B,H,W *1 00000000 00000000 00000000 00000000 000214H DMACB2 [R/W] B,H,W 00000000 00000000 00000000 00000000 000218H DMACA3 [R/W] B,H,W *1 00000000 00000000 00000000 00000000 00021CH DMACB3 [R/W] B,H,W 00000000 00000000 00000000 00000000 000220H DMACA4 [R/W] B,H,W *1 00000000 00000000 00000000 00000000 000224H DMACB4 [R/W] B,H,W 00000000 00000000 00000000 00000000 000228H ∼ 00023CH ________ 予約 000240H DMACR [R/W] B 0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX DMAC 000244H ∼ 000398H ________ 予約 DMAC 00039CH ________ ________ 0003A0H DSP-PC [R/W] XXXXXXXX DSP-CSR [R/W,R,W] 00000000 ________ ________ DSP-LY [R/W] XXXXXXXX XXXXXXXX 0003A4H DSP-OT0 [R] XXXXXXXX XXXXXXXX DSP-OT1 [R] XXXXXXXX XXXXXXXX 0003A8H DSP-OT2 [R] XXXXXXXX XXXXXXXX DSP-OT3 [R] XXXXXXXX XXXXXXXX 0003ACH ________ ________ ________ ________ 0003B0H DSP-OT4 [R] XXXXXXXX XXXXXXXX DSP-OT5 [R] XXXXXXXX XXXXXXXX 0003B4H DSP-OT6 [R] XXXXXXXX XXXXXXXX DSP-OT7 [R] XXXXXXXX XXXXXXXX 0003B8H ∼ 0003ECH ________ 0003F0H BSD0 [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F4H BSD1 [R/W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F8H BSDC [W] W XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003FCH BSRR [R] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 454 積和 予約 ビットサーチ 付録 A I/O マップ 表 A-1 I/O マップ (5 / 7) レジスタ アドレス ブロック +0 +1 +2 +3 000400H DDR0 [R/W] B 00000000 DDR1 [R/W] B 00000000 DDR2 [R/W] B 00000000 DDR3 [R/W] B 00000000 000404H DDR4 [R/W] B 00000000 DDR5 [R/W] B 00000000 DDR6 [R/W] B ----0000 DDR7 [R/W] B 00000000 000408H ________ ________ ________ ________ 00040CH DDRC [R/W] B 00000000 DDRD [R/W] B ------00 DDRE [R/W] B ------00 ________ 000410H DDRG [R/W] B --000000 ________ ________ ________ 000414H ∼ 00041CH ________ 予約 000420H PFR0 [R/W] B 00000000 PFR1 [R/W] B -0000000 PFR2 [R/W] B --00-00- ________ 000424H ________ ________ ________ PFR7 [R/W] B ------00 000428H ________ ________ ________ ________ 00042CH ________ ________ ________ ________ 000430H PFRG [R/W] B --00--0- ________ ________ ________ 000434H ∼ 00043CH ________ ICR00 [R/W,R] B,H,W ----1111 ICR01 [R/W,R] B,H,W ----1111 ICR02 [R/W,R] B,H,W ----1111 ICR03 [R/W,R] B,H,W ----1111 000444H ICR04 [R/W,R] B,H,W ----1111 ICR05 [R/W,R] B,H,W ----1111 ICR06 [R/W,R] B,H,W ----1111 ICR07 [R/W,R] B,H,W ----1111 000448H ICR08 [R/W,R] B,H,W ----1111 ICR09 [R/W,R] B,H,W ----1111 ICR10 [R/W,R] B,H,W ----1111 ICR11 [R/W,R] B,H,W ----1111 00044CH ICR12 [R/W,R] B,H,W ----1111 ICR13 [R/W,R] B,H,W ----1111 ICR14 [R/W,R] B,H,W ----1111 ICR15 [R/W,R] B,H,W ----1111 000450H ICR16 [R/W,R] B,H,W ----1111 ICR17 [R/W,R] B,H,W ----1111 ICR18 [R/W,R] B,H,W ----1111 ICR19 [R/W,R] B,H,W ----1111 000454H ICR20 [R/W,R] B,H,W ----1111 ICR21 [R/W,R] B,H,W ----1111 ICR22 [R/W,R] B,H,W ----1111 ICR23 [R/W,R] B,H,W ----1111 000458H ICR24 [R/W,R] B,H,W ----1111 ICR25 [R/W,R] B,H,W ----1111 ICR26 [R/W,R] B,H,W ----1111 ICR27 [R/W,R] B,H,W ----1111 00045CH ICR28 [R/W,R] B,H,W ----1111 ICR29 [R/W,R] B,H,W ----1111 ICR30 [R/W,R] B,H,W ----1111 ICR31 [R/W,R] B,H,W ----1111 000460H ICR32 [R/W,R] B,H,W ----1111 ICR33 [R/W,R] B,H,W ----1111 ICR34 [R/W,R] B,H,W ----1111 ICR35 [R/W,R] B,H,W ----1111 000464H ICR36 [R/W,R] B,H,W ----1111 ICR37 [R/W,R] B,H,W ----1111 ICR38 [R/W,R] B,H,W ----1111 ICR39 [R/W,R] B,H,W ----1111 000468H ICR40 [R/W,R] B,H,W ----1111 ICR41 [R/W,R] B,H,W ----1111 ICR42 [R/W,R] B,H,W ----1111 ICR43 [R/W,R] B,H,W ----1111 00046CH ICR44 [R/W,R] B,H,W ----1111 ICR45 [R/W,R] B,H,W ----1111 ICR46 [R/W,R] B,H,W ----1111 ICR47 [R/W,R] B,H,W ----1111 ____________ ポート機能 レジスタ 予約 000440H 000470H ∼ 00047CH データ方向 レジスタ 割込み コントローラ 予約 455 付録 表 A-1 I/O マップ (6 / 7) レジスタ アドレス ブロック +0 +1 +2 +3 000480H RSRR [R/W] B,H,W 10000000 STCR [R/W] B,H,W 00110011 TBCR [R/W] B,H,W 00XXXX00 CTBR [W] B,H,W XXXXXXXX 000484H CLKR [R/W] B,H,W 00000000 WPR --------*3 DIVR0 [R/W] B,H,W 00000011 DIVR1 [R/W] B,H,W 00000000 000488H ∼ 0005FCH ____________ クロック制御 ユニット 予約 000600H PCR0 [R/W] B 00000000 PCR1 [R/W] B 00000000 PCR2 [R/W] B 00000000 PCR3 [R/W] B 00------ 000604H PCR4 [R/W] B 00000000 PCR5 [R/W] B 00000000 PCR6 [R/W] B ----0000 PCR7 [R/W] B 00000000 000608H ________ ________ ________ ________ 00060CH ________ ________ ________ ________ 000610H PCRG [R/W] B --000000 ________ ________ ________ 000614H ∼ 000FFCH ________ 001000H DMASA0 [R/W] W 00000000 00000000 00000000 00000000 001004H DMADA0 [R/W] W 00000000 00000000 00000000 00000000 001008H DMASA1 [R/W] W 00000000 00000000 00000000 00000000 00100CH DMADA1 [R/W] W 00000000 00000000 00000000 00000000 001010H DMASA2 [R/W] W 00000000 00000000 00000000 00000000 001014H DMADA2 [R/W] W 00000000 00000000 00000000 00000000 001018H DMASA3 [R/W] W 00000000 00000000 00000000 00000000 00101CH DMADA3 [R/W] W 00000000 00000000 00000000 00000000 001020H DMASA4 [R/W] W 00000000 00000000 00000000 00000000 001024H DMADA4 [R/W] W 00000000 00000000 00000000 00000000 001028H ∼ 006FFCH ________ プルアップ コントローラ 予約 DMAC 予約 007000H FLCR [R, R/W] 0110X000 ________ ________ ________ 007004H FLWC [R, R/W] *2 00000011 ________ ________ ________ 007008H ________ ________ ________ ________ 00700CH ________ ________ ________ ________ 007010H ________ ________ ________ ________ 456 フラッシュ 付録 A I/O マップ 表 A-1 I/O マップ (7 / 7) レジスタ アドレス ブロック +0 +1 +2 007014H ∼ 00BFFCH __________________ 00C000H ∼ 00C07CH X-RAM ( 係数 RAM) [R/W] 64 × 16 ビット 00C080H ∼ 00C0FCH Y-RAM ( 変数 RAM) [R/W] 64 × 16 ビット 00C100H ∼ 00C2FCH I-RAM ( 命令 RAM) [R/W] 256 × 16 ビット 00C300H ∼ 00FFFCH ________ +3 予約 積和 予約 *1: DMACA0 ∼ DMACA4 の下位 16 ビット (DTC15 ∼ DTC0) は , バイトでのアクセス はできません。 *2: FLWC(7004H)の初期値は, EVAツール上は"00010011B"です。EVA品にて, "00000011B" を書き込んでも動作にかわりはありません。 *3: 予約レジスタです。アクセス禁止です。 <注意事項> • ライトオンリビットのあるレジスタに対して RMW 系の命令を行わないでくださ い。 • 予約または ( − ) の領域のデータは不定です。 457 付録 付録 B ベクタテーブル 付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには , MB91260B の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載され ています。 ■ ベクタテーブル ICR: 割込みコントローラ内に設けられたレジスタで割込みの各要求に対する割込み レベルを設定します。ICR は割込み要求の各々に対応して用意されています。 TBR: EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。 TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスがベクタア ドレスとなります。 TBR の示すアドレスから 1 K バイトの領域が EIT 用ベクタ領域となっています。 1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR + (3FCH − 4 × vct) 458 vctadr: ベクタアドレス vctofs: ベクタオフセット vct: ベクタ番号 付録 B ベクタテーブル 表 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 − 外部割込み 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 8 リロードタイマ 1 25 19 ICR09 398H 000FFF98H 9 リロードタイマ 2 26 1A ICR10 394H 000FFF94H 10 UART0 ( 受信完了 ) 27 1B ICR11 390H 000FFF90H 0 UART0 ( 送信完了 ) 28 1C ICR12 38CH 000FFF8CH 3 DTTI 29 1D ICR13 388H 000FFF88H − DMAC0 ( 終了 , エラー ) 30 1E ICR14 384H 000FFF84H − DMAC1 ( 終了 , エラー ) 31 1F ICR15 380H 000FFF80H − 459 付録 表 B-1 ベクタテーブル (2 / 3) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォルト のアドレス RN 10 進 16 進 DMAC2/3/4 ( 終了 , エラー ) 32 20 ICR16 37CH 000FFF7CH − UART1 ( 受信完了 ) 33 21 ICR17 378H 000FFF78H 1 UART1 ( 送信完了 ) 34 22 ICR18 374H 000FFF74H 4 UART2 ( 受信完了 ) 35 23 ICR19 370H 000FFF70H 2 UART2 ( 送信完了 ) 36 24 ICR20 36CH 000FFF6CH 5 積和 37 25 ICR21 368H 000FFF68H − PPG0 38 26 ICR22 364H 000FFF64H − PPG1 39 27 ICR23 360H 000FFF60H − PPG2/3 40 28 ICR24 35CH 000FFF5CH − PPG4/5/6/7 41 29 ICR25 358H 000FFF58H − PPG8/9/10/11/12/13/14/15 42 2A ICR26 354H 000FFF54H − 外部割込み 8/9 43 2B ICR27 350H 000FFF50H − 波形 0( アンダフロー ) 44 2C ICR28 34CH 000FFF4CH − 波形 1( アンダフロー ) 45 2D ICR29 348H 000FFF48H − 波形 2( アンダフロー ) 46 2E ICR30 344H 000FFF44H − タイムベースタイマ オーバフロー 47 2F ICR31 340H 000FFF40H − フリーランタイマ ( コンペアクリア ) 48 30 ICR32 33CH 000FFF3CH − フリーランタイマ ( ゼロ検出 ) 49 31 ICR33 338H 000FFF38H − A/D0 50 32 ICR34 334H 000FFF34H − A/D1 51 33 ICR35 330H 000FFF30H − A/D2 52 34 ICR36 32CH 000FFF2CH − PWC0 ( 測定完了 ) 53 35 ICR37 328H 000FFF28H − PWC1 ( 測定完了 ) 54 36 ICR38 324H 000FFF24H − PWC0 ( オーバフロー ) 55 37 ICR39 320H 000FFF20H − PWC1 ( オーバフロー ) 56 38 ICR40 31CH 000FFF1CH − ICU0 ( 取込み ) 57 39 ICR41 318H 000FFF18H − ICU1 ( 取込み ) 58 3A ICR42 314H 000FFF14H − ICU2/3 ( 取込み ) 59 3B ICR43 310H 000FFF10H − OCU0/1 ( 一致 ) 60 3C ICR44 30CH 000FFF0CH − OCU2/3 ( 一致 ) 61 3D ICR45 308H 000FFF08H − OCU4/5 ( 一致 ) 62 3E ICR46 304H 000FFF04H − 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H − 460 付録 B ベクタテーブル 表 B-1 ベクタテーブル (3 / 3) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォルト のアドレス RN 10 進 16 進 システム予約 (REALOS にて使用 ) 64 40 − 2FCH 000FFEFCH − システム予約 (REALOS にて使用 ) 65 41 − 2F8H 000FFEF8H − システム予約 66 42 − 2F4H 000FFEF4H − システム予約 67 43 − 2F0H 000FFEF0H − システム予約 68 44 − 2ECH 000FFEECH − システム予約 69 45 − 2E8H 000FFEE8H − システム予約 70 46 − 2E4H 000FFEE4H − システム予約 71 47 − 2E0H 000FFEE0H − システム予約 72 48 − 2DCH 000FFEDCH − システム予約 73 49 − 2D8H 000FFED8H − システム予約 74 4A − 2D4H 000FFED4H − システム予約 75 4B − 2D0H 000FFED0H − システム予約 76 4C − 2CCH 000FFECCH − システム予約 77 4D − 2C8H 000FFEC8H − システム予約 78 4E − 2C4H 000FFEC4H − システム予約 79 4F − 2C0H 000FFEC0H − 80 50 2BCH 000FFEBCH ∼ ∼ ∼ ∼ 255 FF 000H 000FFC00H INT 命令で使用 − − 461 付録 付録 C 各 CPU ステートにおける端子状態 各 CPU ステートにおける端子状態について記載されています。 ■ 各 CPU ステートにおける端子状態 端子の状態に対する語句は以下の意味を持ちます。 • 入力可能 入力機能が使用可能な状態であることを意味する。 • 入力 0 固定 端子からすぐの入力ゲートで外部入力を遮断して内部へ "0" を伝えている状態。 • 出力 Hi-Z 端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンスにする ことを意味する。 • 出力保持 本モードになる直前に出力していた状態をそのまま出力することを意味する。 つまり , 出力のある内蔵周辺が動作中であればその内蔵周辺に従い出力を行い , ポートなどとして出力している場合にはその出力を保持する。 • 直前の状態を保持 本モードになる直前に出力していた状態をそのまま出力 , あるいは入力であれば 入力可能を意味する。 462 付録 C 各 CPU ステートにおける端子状態 [ シングルチップモード ] 表 C-1 各 CPU ステートにおける端子状態 (1 / 2) 端子番号 QFP LQFP イニシャライズ時 端子名 機能 1 99 P23 SIN1 2 100 P24 SOT1 3 1 P25 SCK1 4, 5 2, 3 INIT=L *1 INIT=H *2 入力可能 ポート 10 8 P54 INT0 11 9 P55 INT1 12 10 P56 INT2 13 11 P57 INT3 14 12 PG0 CKI/INT4 15 13 PG1 PPG0/INT5 16 14 PG2 ポート 20 18 PG3 SIN2 21 19 PG4 SOT2 22 20 PG5 SCK2 23 ∼ 30 21 ∼ 28 P40 ∼ P47 ポート 入力可能 出力 Hi-Z/ 入力不可 PC7 ∼ AN7 ∼ AN0 PC0 51 ∼ 56 49 ∼ 54 P30 ∼ P35 出力 Hi-Z/ 入力 0 固定 入力可能 出力 Hi-Z/ 入力 0 固定 入力可能 直前状態保持 直前状態保持 出力 Hi-Z/ 入力 0 固定 RTO0 ∼ RTO5 57, 58 55, 56 P36, P37 IC0, IC1 59, 60 57, 58 P60, P61 IC2, IC3 61, 62 59, 60 P62, P63 INT8, INT9 63, 64 61, 62 P70, P71 入力可能 HIZ=1 出力 Hi-Z/ 入力不可 38, 39 36, 37 PD1, PD0 AN9, AN8 39 ∼ 46 入力可能 直前状態保持 直前状態保持 31, 32 29, 30 PE1, PE0 AN11, AN10 41 ∼ 48 HIZ=0 直前状態保持 直前状態保持 P26, P27 INT6, INT7 6 ∼ 9 4 ∼ 7 P50 ∼ 53 ストップ時 スリープ時 入力可能 入力可能 入力可能 TOT1, TOT2 65 63 P72 DTTI 66 64 P73 PWI0 69 67 P74 PWI1 70 68 P75 ADTG0 71 69 P76 ADTG1 72 70 P77 ADTG2 73 71 NMI NMI 直前状態保持 直前状態保持 入力可能 入力可能 入力可能 入力可能 出力 Hi-Z/ 入力 0 固定 入力可能 463 付録 表 C-1 各 CPU ステートにおける端子状態 (2 / 2) 端子番号 QFP LQFP イニシャライズ時 端子名 機能 78 76 P00 PPG1 79 77 P01 PPG2 80 78 P02 PPG3 81 79 P03 PPG4 82 80 P04 PPG5 83 81 P05 PPG6 84 82 P06 PPG7 85 83 P07 PPG8 86 84 P10 PPG9 87 85 P11 PPG10 88 86 P12 PPG11 89 87 P13 PPG12 90 88 P14 PPG13 91 89 P15 PPG14 96 94 P16 PPG15 97 95 P17 ポート 98 96 P20 SIN0 99 97 P21 SOT0 100 98 P22 SCK0 ストップ時 スリープ時 INIT=L *1 INIT=H *2 出力 Hi-Z/ 入力不可 出力 Hi-Z/ 出力 Hi-Z/ 直前状態保持 直前状態保持 入力 0 固定 入力不可 HIZ=0 *1: INIT=L: INIT が "L" の期間の端子状態を示します。 *2: INIT=H: INIT が , "L" から "H" へ遷移した直後の端子状態を示します。 464 HIZ=1 付録 D リトル・エンディアン領域を利用する際の注意事項 付録 D リトル・エンディアン領域を利用する際の注意事項 リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明します。 • C コンパイラ • アセンブラ • リンカ • デバッガ ■ C コンパイラ (fcc911) C言語でプログラミングをするにあたって, リトルエンディアン領域に対して次のよう な操作を行ったときは , 動作が保証できませんのでご注意ください。 - 初期値付き変数の配置 - 構造体代入 - 文字列操作関数を使った文字型配列以外の操作 - 文字列操作関数使用時の -K lib オプションの指定 - double 型 , long double 型の利用 - スタックのリトルエンディアン領域への配置 ● 初期値付き変数の配置 リトルエンディアン領域に初期値付きの変数を配置することはできません。 コンパイラは , リトルエンディアンの初期値を生成する機能を持っていません。リトル エンディアン領域に変数を配置することはできますが , 初期値を設定することはでき ません。 プログラムの先頭で初期値を設定する処理を行ってください。 [ 例 ] リトルエンディアン領域の変数 little_data に初期値を設定する場合 extern int little_data; void little_init(void) { little_data = 初期値 ; } void main(void) { little_init(); ... } 465 付録 ● 構造体代入 構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造 体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を 行うと正しい結果が得られません。 構造体のメンバをそれぞれ代入してください。 [ 例 ] リトルエンディアン領域の構造体変数 little_st に構造体代入する場合 struct tag { char c; int i; } normal_st; extern struct tag little_st; #define STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i; void main(void) { STRMOVE(little_st,normal_st); } また , 構造体のメンバの配置はコンパイラごとに違うので , 他のコンパイラでコンパイ ルされた構造体とはメンバの配置が違っていることが考えられます。このようなとき には , 前述の方法においても正しい結果が得られません。 構造体のメンバの配置が一致しないときは , リトルエンディアン領域に構造体変数を 配置しないでください。 ● 文字列操作関数を使った文字型配列以外の操作 標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま す。このため , リトルエンディアン領域に配置された char, unsigned char, signed char 型 以外の型を持つ領域に対し , 文字列操作関数を使った処理を行うと正しい結果が得ら れません。 このような処理は行わないでください。 [ 不具合例 ] memcpy でのワードデータの転送 int big = 0x01020304; /* ビッグエンディアン領域 */ extern int little; /* リトルエンディアン領域 */ memcpy(&little,&big, 4); /* memcpy による転送 */ 上記の実行結果は (ビッグエンディアン領域) 01 02 03 04 (リトルエンディアン領域) → memcpy → 01 となり , ワードデータの転送結果としては誤りになる。 (正しい結果) 466 04 03 02 01 02 03 04 付録 D リトル・エンディアン領域を利用する際の注意事項 ● 文字列操作関数使用時の -K lib オプションの指定 -K lib オプションを指定すると , コンパイラはいくつかの文字列操作関数に対しインラ イン展開を行います。このとき , 最適な処理を選択するためハーフワードまたはワード ごとの処理に変更される場合があります。 このため , リトルエンディアン領域に対する処理が正しく実行されません。 リトルエンディアン領域に対し文字列操作関数を使った処理を行っているときは , -K lib オプションを指定しないでください。 -K lib オプションを包含する -O 4 オプションや -K speed オプションも同様に指定しな いでください。 ● double 型 , long double 型の利用 double 型および long double 型へのアクセスは , 上位 1 ワード , 下位 1 ワードをそれぞれ アクセスする方法で行われます。このため , リトルエンディアン領域に配置された double 型 , long double 型変数に対するアクセスは正しい結果が得られません。 リトルエンディアン領域に割り当てられた同一型の変数どうしの代入は可能ですが , 最適化の結果これらの代入が定数の代入に置き換えられるときもあります。 double 型および long double 型変数をリトルエンディアン領域に配置しないでください。 [ 不具合例 ] double 型データの転送 double big = 1.0; /* ビッグエンディアン領域 */ extern int little; /* リトルエンディアン領域 */ little = big; /* double 型データの転送 */ 上記の実行結果は (ビッグエンディアン領域) 3f f0 00 00 00 00 00 (リトルエンディアン領域) 00 → 00 00 f0 3f 00 00 00 00 00 00 00 f0 3f となり , double 型データの転送結果としては誤りになる。 (正しい結果) 00 00 00 ● スタックのリトルエンディアン領域への配置 リトルエンディアン領域にスタックの一部あるいは全部が配置された場合 , 動作を保 証しません。 467 付録 ■ アセンブラ (fasm911) FR のアセンブラ言語でプログラミングをするにあたって , リトルエンディアン領域に 関して注意していただきたい項目を以下に示します。 ● セクションについて リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク ションとして定義してください。 もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど の指定をした場合には , MB91260B シリーズでのアクセス動作は保証できなくなりま す。 [例] /* 正しいリトルエンディアン領域のセクション定義 */ .SECTION Little_Area, DATA, ALIGN=4 Little_Word: .RES.W 1 Little_Half: .RES.H 1 Little_Byte: .RES.B 1 ● データのアクセスについて リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値はエン ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー タへのアクセスは , 必ずデータサイズと同じサイズでアクセスしてください。 [例] LDI #0x01020304, r0 LDI #Little_Word, r1 LDI #0x0102, r2 LDI #Little_Half, r3 LDI #0x01, r4 LDI #Little_Byte, r5 /* 32 ビットデータは , ST 命令 ( や LD 命令など ) でアクセスします。*/ ST r0, @r1 /* 16 ビットデータは , STH 命令 ( や LDH 命令など ) でアクセスします。*/ STH 468 r2, @r3 付録 D リトル・エンディアン領域を利用する際の注意事項 /* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/ STB r4, @r5 本品種でデータサイズと異なるサイズでアクセスした場合にはその値の保証はできま せん。例えば , 連続する 2 つの 16 ビットデータを 32 ビットアクセス命令を使って一度 にアクセスした場合にはデータの値の保証はできません。 ■ リンカ (flnk911) リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ ン配置で注意していただきたい項目を以下に示します。 ● セクション種別の制限 リトルエンディアン領域には , 初期値なしデータセクションのみ配置することができ ます。 リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび コードセクションを配置した場合 , リンカの内部ではビッグエンディアンでアドレス 解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。 ● エラーの未検出 リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し た配置が行われてもエラーメッセージを通知することはありません。リトルエンディ アン領域に配置したセクションの内容を十分にご確認のうえご使用ください。 469 付録 ■ デバッガ (sim911, eml911, mon911) ● シミュレータデバッガ リトルエンディアン領域を示すようなメモリ空間指定コマンドはありません。 したがって , メモリ操作コマンドやメモリを操作する命令実行はビッグエンディアン として扱われます。 ● エミュレータデバッガ , モニタデバッガ 以下のコマンドでリトルエンディアン領域をアクセスした場合に , 正常な値として扱 われませんので注意してください。 − set memory/show memory/enter/examine/set watch コマンド → 浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定・表示と もにできません。 − search memory コマンド → ハーフワード , ワードのデータの検索を行った場合, 指定した値で検索が行わ れません。 − 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む ) → 正常な命令コードが設定・表示ともにできません ( リトルエンディアン領域には , 命令コードを配置しないようにしてくださ い )。 − call/show call コマンド → スタック領域がリトルエンディアン領域に置かれた場合, 正常に動作しません (リトルエンディアン領域にスタック領域を配置しないようにしてください)。 470 付録 E 命令一覧表 付録 E 命令一覧表 FR ファミリーの命令一覧表です。 ■ 命令一覧表 [ 命令一覧表の読み方 ] ニーモニック ADD Rj, Rj *ADD #s5, Rj , , (1) 型 A C , , OP AG A4 , , CYC 1 1 , , (3) (4) (5) (2) NZVC 動 作 CCCC Ri + Rj -> Rj CCCC Ri + s5 -> Ri , , , , (6) 備考 (7) (1) 命令名が示されています。 * 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。 (2) オペランドに指定可能なアドレッシングモードを記号で示されています。 記号の意味は , 「・アドレッシングモードの記号 ( 次項 ) 」を参照してください。 (3) 命令フォーマットが示されています。 (4) 命令コードが 16 進数表示されています。 (5) マシンサイクル数を表しています。 a: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。 b: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。 ただし, LD動作の対象となるレジスタを直後の命令が参照する場合には, イン タロックがかかり , 実行サイクル数が+ 1 増加します。 c: 直後の命令が , R15 または SSP または USP に対し , 読出しあるいは書込みを行 う命令であるとき , あるいは命令フォーマット A の命令であるとき , インタ ロック がかかり , 実行サイクル数は+ 1 増加して 2 となります。 d; 直後の命令が MDH/MDL を参照する場合 , インタロックがかかり , 実行サイク ル数は増加して 2 となります。 a, b, c, d とも最小は 1 サイクルです。 (6) フラグ変化を表しています。 フラグ変化 C - 0 1 ・・・ 変化する ・・・ 変化しない ・・・ クリア ・・・ セット N Z V C フラグの意味 ネガティブフラグ ・・・ ・・・ ゼロフラグ ・・・ オーバーフラグ ・・・ キャリフラグ (7) 命令動作が表記されています。 471 付録 ● アドレッシングモードの記号 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 とし て扱います。 472 #s5 : 符号付き 5 ビット即値 (-16 ∼ 15) #s10 : 符号付き 10 ビット即値 (-512 ∼ 508 4 の倍数のみ ) #u4 : 符号なし 4 ビット即値 (0 ∼ 15) #u5 : 符号なし 5 ビット即値 (0 ∼ 31) #u8 : 符号なし 8 ビット即値 (0 ∼ 255) #u10 : 符号なし 10 ビット即値 (0 ∼ 1020 4 の倍数のみ ) @dir8 : 符号なし 8 ビット直接アドレス (0 ∼ 0XFF) @dir9 : 符号なし 9 ビット直接アドレス (0 ∼ 0X1FE 2 の倍数のみ ) @dir10 : 符号なし 10 ビット直接アドレス (0 ∼ 0X3FC 4 の倍数のみ ) label9 : 符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC 2 の倍数のみ ) label12 : 符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC 2 の倍数のみ ) label20 : 符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF) label32 : 符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF) @Ri : レジスタ間接 (R0 ∼ R15, AC, FP, SP) @Rj : レジスタ間接 (R0 ∼ R15, AC, FP, SP) @(R13,Rj) : レジスタ相対間接 (Rj: R0 ∼ R15, AC, FP, SP) @(R14,disp10) : レジスタ相対間接 (disp10: -0X200 ∼ 0X1FC 4 の倍数のみ ) @(R14,disp9) : レジスタ相対間接 (disp9: -0X100 ∼ 0XFE 2 の倍数のみ ) @(R14,disp8) : レジスタ相対間接 (disp8: -0X80 ∼ 0X7F) @(R15,udisp6) : レジスタ相対間接 (udisp6: 0 ∼ 60 4 の倍数のみ ) @Ri+ : ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP) @R13+ : ポストインクリメント付きレジスタ間接 (R13, AC) @SP+ : スタックポップ @-SP : スタックプッシュ (reglist) : レジスタリスト 付録 E 命令一覧表 ● 命令フォーマット 図 E-1 命令フォーマット MSB ┌────── A B LSB 16bit ──────┐ OP Rj Ri 8 4 4 OP i8/O8 Ri 4 8 4 C OP u4/m4 Ri 8 4 4 ADD,ADDN,CMP,LSL,LSR,ASR命令のみ *C ’ OP 7 D OP 8 E F s5/u5 Ri 5 4 u8/rel8/dir/ reglist 8 OP SUB-OP Ri 8 4 4 OP rel11 5 11 473 付録 付表 E-1 加減算 ニーモニック ADD Rj, Ri *ADD #s5, Ri 型 A C’ OP A6 A4 CYCLE NZVC 1 1 動作 CCCC Ri+Rj->Ri CCCC Ri+s5->Ri ADD #u4, Ri ADD2 #u4, Ri ADDN Rj, Ri ADDN Rj, Ri *ADDN #s5, Ri C C A A C’ A4 A5 A7 A2 A0 1 1 1 1 1 CCCC CCCC CCCC ------- Ri+extu(i4)->Ri Ri+extu(i4)->Ri Ri+Rj+c->Ri Ri+Rj->Ri Ri+s5->Ri ADDN #u4, Ri ADDN2 #u4, Ri SUB Rj, Ri SUBC Rj, Ri SUBN Rj, Ri C C A A A A0 A1 AC AD AE 1 1 1 1 1 ------CCCC CCCC ---- Ri+extu(i4)->Ri Ri+extu(i4)->Ri Ri-Rj->Ri Ri-Rj-c->Ri Ri-Rj->Ri ニーモニック CMP Rj, Ri *CMP #s5, Ri 型 A C’ OP AA A8 1 1 CCCC Ri-Rj CCCC Ri-s5 アセンブラでは上位 1 ビットを符号と見る CMP #u4, Ri CMP2 #u4, Ri C C A8 A9 1 1 CCCC Ri-extu(i4) CCCC Ri-extu(i4) ゼロ拡張 マイナス拡張 備考 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き加算 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き減算 付表 E-2 比較演算 474 CYCLE NZVC 動作 備考 付録 E 命令一覧表 付表 E-3 論理演算 ニーモニック AND Rj, Ri AND Rj, @Ri ANDH Rj, @Ri ANDB Rj, @Ri OR Rj, Ri OR Rj, @Ri ORH Rj, @Ri ORB Rj, @Ri EOR Rj, Ri EOR Rj, @Ri EORH Rj, @Ri EORB Rj, @Ri 型 A A A A A A A A A A A A OP 82 84 85 86 92 94 95 96 9A 9C 9D 9E CYCLE NZVC 1 1+2a 1+2a 1+2a 1 1+2a 1+2a 1+2a 1 1+2a 1+2a 1+2a CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-- RMW 動作 Ri & = Rj (Ri) & = Rj (Ri) & = Rj (Ri) & = Rj Ri | = Rj (Ri) | = Rj (Ri) | = Rj (Ri) | = Rj Ri ^ = Rj (Ri) ^ = Rj (Ri) ^ = Rj (Ri) ^ = Rj ○ ○ ○ ○ ○ ○ ○ ○ ○ 備考 ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト 付表 E-4 ビット操作命令 ニーモニック BANDL #u4, @Ri BANDH #u4, @Ri *BAND #u8, @Ri *1 BORL #u4, @Ri BORH #u4, @Ri *BOR #u8, @Ri *2 BEORL #u4, @Ri BEORH #u4, @Ri *BEOR #u8, @Ri *3 BTSTL #u4, @Ri BTSTH #u4, @Ri 型 OP CYCLE NZVC 動作 C 80 1+2a ---- (Ri)&=(0xF0+u4) C 81 1+2a ---- (Ri)&=((u4<<4)+0x0F) ---- (Ri)&=u8 RMW ○ ○ - 備考 下位 4 ビットを操作 上位 4 ビットを操作 C C 90 91 1+2a 1+2a ---------- (Ri) | = u4 (Ri) | = (u4<<4) (Ri) | = u8 ○ ○ - 下位 4 ビットを操作 上位 4 ビットを操作 C C 98 99 1+2a 1+2a ---------- (Ri) ^ = u4 (Ri) ^ = (u4<<4) (Ri) ^ = u8 ○ ○ - 下位 4 ビットを操作 上位 4 ビットを操作 C C 88 89 2+a 2+a 0C-- (Ri) & u4 CC-- (Ri) & (u4<<4) - 下位 4 ビットをテスト 上位 4 ビットをテスト *1 アセンブラは , u8&0x0F でビットが立っていれば , BANDL を生成し , u8&0xF0 でビットが立ってい れば , BANDH を生成する。BANDL, BANDH 両方生成する場合もある。 *2 アセンブラは , u8&0x0F でビットが立っていれば , BORL を生成し , u8&0xF0 でビットが立っていれ ば , BORH を生成する。BORL, BORH 両方生成する場合もある。 *3 アセンブラは , u8&0x0F でビットが立っていれば , BEORL を生成し , u8&0xF0 でビットが立ってい れば , BEORH を生成する。BEORL, BEORH 両方生成する場合もある。 475 付録 付表 E-5 乗除算 型 OP MUL Rj,Ri MULU Rj,Ri MULH Rj,Ri MULUH Rj,Ri A A A A AF AB BF BB 5 5 3 3 CCCCCCCC-CC-- DIV0S Ri DIV0U Ri DIV1 Ri DIV2 Ri DIV3 DIV4S *DIV Ri E E E E E E 97-4 97-5 97-6 97-7 9F-6 9F-7 1 1 d 1 1 1 36 ---ステップ演算 ---32bit/32bit=32bit -C-C -C-C -------C-C MDL / Ri -> MDL , MDL % Ri -> MDH ニーモニック CYCLE NZVC *1 *DIVU Ri -C-C *2 動作 備考 Ri * Rj -> MDH, MDL Ri * Rj -> MDH, MDL Ri * Rj -> MDL Ri * Rj -> MDL 32bit*32bit=64bit 符号なし 16bit*16bit=32bit 符号なし MDL / Ri -> MDL , MDL % Ri -> MDH 付表 E-6 シフト 型 OP LSL Rj, Ri *LSL #u5, Ri(u5:0 ∼ 31) LSL #u4, Ri LSL2 #u4, Ri A C’ C C B6 B4 B4 B5 1 1 1 1 CC-C CC-C CC-C CC-C Ri << Rj -> Ri Ri << u5 -> Ri Ri << u4 -> Ri Ri <<(u4+16) -> Ri 論理シフト LSR Rj, Ri *LSR #u5, Ri(u5:0 ∼ 31) LSR #u4, Ri LSR2 #u4, Ri A C’ C C B2 B0 B0 B1 1 1 1 1 CC-C CC-C CC-C CC-C Ri >> Rj -> Ri Ri >> u5 -> Ri Ri >> u4 -> Ri Ri >>(u4+16) -> Ri 論理シフト ASR Rj, Ri *ASR #u5, Ri (u5:0 ∼ 31) ASR #u4, Ri ASR2 #u4, Ri A C’ C C BA B8 B8 B9 1 1 1 1 CC-C CC-C CC-C CC-C Ri >> Rj -> Ri Ri >> u5 -> Ri Ri >> u4 -> Ri Ri >>(u4+16) -> Ri 算術シフト ニーモニック CYCLE NZVC 動作 備考 付表 E-7 即値セット /16 ビット /32 ビット即値転送命令 ニーモニック 型 OP LDI:32 #i32, Ri LDI:20 #i20, Ri LDI:8 #i8, Ri *LDI # {i8|i20|i32} ,Ri E C B 9F-8 9B C0 *3 CYCLE NZVC 3 2 1 ---------- 動作 i32 -> Ri i20 -> Ri i8 -> Ri 備考 上位 12bit はゼロ拡張 上位 24bit はゼロ拡張 {i8 | i20 | i32} -> Ri *1 DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成する。命令コード長は , 72 バイトとなる。 *2 DIV0U, DIV1 × 32 を生成する。命令コード長は , 66 バイトとなる。 *3 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行う。 即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択される。 476 付録 E 命令一覧表 付表 E-8 メモリロード 型 OP A A B C E E E 04 00 2 03 07-0 07-8 07-9 b b b b b b 1+a+b ------------------CCCC LDUH @Rj, Ri LDUH @(R13,Rj), Ri LDUH @(R14,disp9), Ri A A B 05 01 4 b b b LDUB @Rj, Ri LDUB @(R13,Rj), Ri LDUB @(R14,disp8), Ri A A B 06 02 6 b b b ニーモニック LD LD LD LD LD LD LD @Rj, Ri @(R13,Rj), Ri @(R14,disp10),Ri @(R15,udisp6),Ri @R15+, Ri @R15+, Rs @R15+, PS CYCLE NZVC 動作 備考 (Rj)->Ri (R13+Rj)->Ri (R14+disp10)->Ri (R15+udisp6)->Ri (R15)->Ri,R15+=4 (R15)->Rs,R15+=4 (R15)->PS, R15+=4 Rs: 特殊レジスタ * ---------- (Rj)->Ri (R13+Rj)->Ri (R14+disp9)->Ri ゼロ拡張 ゼロ拡張 ゼロ拡張 ---------- (Rj)->Ri (R13+Rj)->Ri (R14+disp8)->Ri ゼロ拡張 ゼロ拡張 ゼロ拡張 *: ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。 disp10/4->o8, disp9/2->o8, disp8->o8, disp10, disp9, disp8 は符号付き , udisp6/4->o4 udisp6 は符号なし。 付表 E-9 メモリストア ニーモニック ST Ri,@Rj ST Ri,@(R13,Rj) ST Ri,@(R14,disp10) ST Ri,@(R15,udisp6) ST Ri,@-R15 ST Rs,@-R15 ST PS,@-R15 STH Ri,@Rj STH Ri,@(R13,Rj) STH Ri,@(R14,disp9) STB Ri,@Rj STB Ri,@(R13,Rj) STB Ri,@(R14,disp8) 型 A A B C E E E A A B A A B OP 14 10 3 13 17-0 17-8 17-9 15 11 5 16 12 7 CYCLE NZVC 動作 備考 a ---- Ri->(Rj) ワード a ---- Ri->(R13+Rj) ワード a ---- Ri->(R14+disp10) ワード a ---- Ri->(R15+udisp6) a ---- R15-=4,Ri->(R15) a ---- R15-=4, Rs->(R15) Rs 特殊レジスタ a ---- R15-=4, PS->(R15) * a ---- Ri->(Rj) ハーフワード a ---- Ri->(R13+Rj) ハーフワード a ---- Ri->(R14+disp9) ハーフワード ---- Ri->(Rj) a バイト a ---- Ri->(R13+Rj) バイト a ---- Ri->(R14+disp8) バイト *: ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。 disp10/4->o8, disp9/2->o8, disp8->o8, disp10, disp9, disp8 は符号付き , udisp6/4->o4 udisp6 は , 符号な し。 付表 E-10 レジスタ間転送 MOV MOV MOV MOV MOV ニーモニック Rj, Ri Rs, Ri Ri, Rs PS, Ri Ri, PS 型 A A E E E OP 8B B7 B3 17-1 07-1 CYCLE NZVC 動作 1 ---- Rj -> Ri 1 ---- Rs -> Ri 1 ---- Ri -> Rs 1 ---- PS -> Ri c CCCC Ri -> PS 備考 汎用レジスタ間転送 Rs: 特殊レジスタ Rs: 特殊レジスタ * *: 特殊レジスタ Rs : TBR,RP, USP, SSP, MDH, MDL 477 付録 付表 E-11 通常分岐 ( 遅延なし ) ニーモニック JMP @Ri CALL label12 CALL @Ri RET INT #u8 型 E E F E D OP 97-0 D0 97-1 97-2 1F CYCLE NZVC 動作 備考 2 ---- Ri -> PC 2 ---- PC+2->RP , PC+2+(label12-PC-2)->PC 2 ---- PC+2->RP ,Ri->PC 2 ---- RP -> PC リターン 3+3a ---- SSP-=4, PS->(SSP), SSP-=4, PC+2->(SSP), 0->I フラグ , 0->S フラグ , (TBR+0x3FC-u8 × 4)->PC 3+3a ---- SSP-=4, PS->(SSP), SSP-=4, PC+2->(SSP), 0->S フラグ ,(TBR+0x3D8)->PC INTE E 9F-3 RETI BRA label9 BNO label9 BEQ label9 E D D D 97-3 E0 E1 E2 2+2A 2 1 2/1 CCCC ---------- BNE label9 BC label9 BNC label9 BN label9 BP label9 BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS label9 BHI label9 D D D D D D D D D D D D D E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 ---------------------------------------- エミュレータ用 (R15)->PC,R15-=4,(R15)->PS,R15-=4 PC+2+(label9-PC-2)->PC 非分岐 if(Z==1) then PC+2+(label9-PC-2)->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 <注意事項> • CYCLE 数の「2/1」は , 分岐するとき "2", 分岐しないとき "1" であることを示します。 • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を 設定します。 (label12-PC-2)/2->rel11, (label9-PC-2)/2->rel8, label12, label9 は符号付き。 • 478 RETI 命令を実行するときは S フラグが "0" であることが必要です。 付録 E 命令一覧表 付表 E-12 遅延分岐 ニーモニック JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D label9 BNO:D label9 BEQ:D label9 型 E F E E D D D OP 9F-0 D8 9F-1 9F-2 F0 F1 F2 BNE:D label9 BC:D label9 BNC:D label9 BN:D label9 BP:D label9 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 D D D D D D D D D D D D D F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF CYCLE NZVC 動作 備考 1 ---- Ri -> PC 1 ---- PC+4->RP , PC+2+(label12-PC-2)->PC 1 ---- PC+4->RP ,Ri->PC 1 ---- RP -> PC リターン 1 ---- PC+2+(label9-PC-2)->PC 1 ---- 非分岐 1 ---- if(Z==1) then PC+2+(label9-PC-2)->PC 1 ---- ↑ s/Z==0 1 ---- ↑ s/C==1 1 ---- ↑ s/C==0 1 ---- ↑ s/N==1 1 ---- ↑ s/N==0 1 ---- ↑ s/V==1 1 ---- ↑ s/V==0 1 ---- ↑ s/V xor N==1 1 ---- ↑ s/V xor N==0 1 ---- ↑ s/(V xor N) or Z==1 1 ---- ↑ s/(V xor N) or Z==0 1 ---- ↑ s/C or Z==1 1 ---- ↑ s/C or Z==0 <注意事項> • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を 設定します。 (label12-PC-2)/2->rel11, (label9-PC-2)/2->rel8, label12, label9 は符号付き。 • 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。 • 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル 命令です。複数サイクル命令は置けません。 479 付録 付表 E-13 その他 ニーモニック NOP ANDCCR #u8 ORCCR #u8 STILM #u8 ADDSP #s10*1 EXTSB Ri EXTUB Ri EXTSH Ri EXTUH Ri LDM0 (reglist) 型 E D D D D E E E E D OP 9F-A 83 93 87 A3 97-8 97-9 97-A 97-B 8C LDM1 (reglist) D 8D *LDM (reglist) *2 STM0 (reglist) D 8E STM1 (reglist) D 8F *STM (reglist) *3 ENTER #u10 D 0F *4 LEAVE E 9F-9 XCHB @Rj, Ri A 8A CYCLE NZVC 動作 1 ---- 何も変化しない c cccc CCR and u8 -> CCR c cccc CCR or u8 -> CCR 1 ---- i8 -> ILM 1 ---- R15 += s10 ---- 符号拡張 8->32bit 1 1 ---- ゼロ拡張 8->32bit 1 ---- 符号拡張 16->32bit ---- ゼロ拡張 16->32bit 1 ---- (R15)->reglist, R15 インクリメント ---- (R15)->reglist, R15 インクリメント ---- (R15)->reglist, R15 インクリメント ---- R15 デクリメント , reglist->(R15) ---- R15 デクリメント , reglist->(R15) ---- R15 デクリメント , reglist->(R15) 1+a ---- R14 -> (R15 - 4), R15 - 4 -> R14, R15 - u10 -> R15 b ---- R14 + 4 -> R15, (R15 - 4) -> R14 2a ---- Ri -> TEMP (Rj) -> Ri TEMP -> (Rj) RMW 備考 ILM 即値セット ADD SP 命令 ロードマルチ R0-R7 - ロードマルチ R8-R15 - ロードマルチ R0-R15 - ストアマルチ R0-R7 - ストアマルチ R8-R15 - ストアマルチ R0-R15 - 関数の入口処理 - 関数の出口処理 ○ セマフォ管理用 バイトデータ *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 サイクルとなります。 480 付録 E 命令一覧表 付表 E-14 20 ビット通常分岐マクロ命令 ニーモニック *CALL20 label20,Ri *BRA20 label20,Ri *BEQ20 label20,Ri *BNE20 label20,Ri *BC20 label20,Ri *BNC20 label20,Ri *BN20 label20,Ri *BP20 label20,Ri *BV20 label20,Ri *BNV20 label20,Ri *BLT20 label20,Ri *BGE20 label20,Ri *BLE20 label20,Ri *BGT20 label20,Ri *BLS20 label20,Ri *BHI20 label20,Ri 動作 次の命令のアドレス ->RP, label20->PC label20->PC if(Z==1) then label20->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL20 (1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri CALL @Ri [ 参考 2] BRA20 (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri JMP @Ri [ 参考 3] Bcc20 (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は cc の背反条件 LDI:20 #label20,Ri JMP @Ri false: 481 付録 付表 E-15 20 ビット遅延分岐マクロ命令 ニーモニック *CALL20:D label20,Ri 動作 次の命令のアドレス +2->RP, label20->PC label20->PC if(Z==1) then label20->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 *BRA20:D label20,Ri *BEQ20:D label20,Ri *BNE20:D label20,Ri *BC20:D label20,Ri *BNC20:D label20,Ri *BN20:D label20,Ri *BP20:D label20,Ri *BV20:D label20,Ri *BNV20:D label20,Ri *BLT20:D label20,Ri *BGE20:D label20,Ri *BLE20:D label20,Ri *BGT20:D label20,Ri *BLS20:D label20,Ri *BHI20:D label20,Ri 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL20:D (1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL:D label12 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri CALL:D @Ri [ 参考 2] BRA20:D (1) label20-PC-2 が ,-0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA:D label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:20 #label20,Ri JMP:D @Ri [ 参考 3] Bcc20:D (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc:D label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は , cc の背反条件 LDI:20 #label20,Ri JMP:D @Ri false: 482 付録 E 命令一覧表 付表 E-16 32 ビット通常分岐マクロ命令 ニーモニック *CALL32 label32,Ri 動作 次の命令のアドレス ->RP, label32->PC label32->PC if(Z==1) then label32->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 *BRA32 label32,Ri *BEQ32 label32,Ri *BNE32 label32,Ri *BC32 label32,Ri *BNC32 label32,Ri *BN32 label32,Ri *BP32 label32,Ri *BV32 label32,Ri *BNV32 label32,Ri *BLT32 label32,Ri *BGE32 label32,Ri *BLE32 label32,Ri *BGT32 label32,Ri *BLS32 label32,Ri *BHI32 label32,Ri 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL32 (1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri CALL @Ri [ 参考 2] BRA32 (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri JMP @Ri [ 参考 3] Bcc32 (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は , cc の背反条件 LDI:32 #label32,Ri JMP @Ri false: 483 付録 付表 E-17 32 ビット遅延分岐マクロ命令 ニーモニック *CALL32D label32,Ri *BRA32:D label32,Ri *BEQ32:D label32,Ri *BNE32:D label32,Ri *BC32:D label32,Ri *BNC32:D label32,Ri *BN32:D label32,Ri *BP32:D label32,Ri *BV32:D label32,Ri *BNV32:D label32,Ri *BLT32:D label32,Ri *BGE32:D label32,Ri *BLE32:D label32,Ri *BGT32:D label32,Ri *BLS32:D label32,Ri *BHI32:D label32,Ri 動作 次の命令のアドレス +2->RP, label32->PC label32->PC if(Z==1) then label32->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備考 Ri: テンポラリレジスタ 参考 1 参照 Ri: テンポラリレジスタ 参考 2 参照 Ri: テンポラリレジスタ 参考 3 参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ [ 参考 1] CALL32:D (1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL:D label12 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri CALL:D @Ri [ 参考 2] BRA32:D (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA:D label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 LDI:32 #label32,Ri JMP:D @Ri [ 参考 3] Bcc32:D (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc:D label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成 します。 Bxcc false xcc は , cc の背反条件 LDI:32 #label32,Ri JMP:D @Ri false: 484 付録 E 命令一覧表 付表 E-18 ダイレクトアドレッシング ニーモニック DMOV @dir10, R13 DMOV R13, @dir10 DMOV @dir10, @R13+ DMOV @R13+, @dir10 DMOV @dir10, @-R15 DMOV @R15+, @dir10 DMOVH @dir9, R13 DMOVH R13, @dir9 DMOVH @dir9, @R13+ DMOVH @R13+, @dir9 DMOVB @dir8, R13 DMOVB R13, @dir8 DMOVB @dir8, @R13+ DMOVB @R13+, @dir8 型 D D D D D D D D D D D D D D OP 08 18 0C 1C 0B 1B 09 19 0D 1D 0A 1A 0E 1E CYCLE NZVC 動作 b ---- (dir10)-> R13 a ---- R13 ->(dir10) 2a ---- (dir10)->(R13),R13+=4 2a ---- (R13)->(dir10),R13+=4 2a ---- R15-=4,(R15)->(dir10) 2a ---- (R15)->(dir10),R15+=4 ---- (dir9)-> R13 b ---- R13 ->(dir9) a ---- (dir9)->(R13),R13+=2 2a 2a ---- (R13)->(dir9),R13+=2 b ---- (dir8)-> R13 ---- R13 ->(dir8) a ---- (dir8)->(R13),R13++ 2a ---- (R13)->(dir8),R13++ 2a 備考 ワード ワード ワード ワード ワード ワード ハーフワード ハーフワード ハーフワード ハーフワード バイト バイト バイト バイト ( 注意事項 ) dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。 dir8->dir, dir9/2->dir, dir10/4->dir dir8, dir9, dir10 は符号なし。 付表 E-19 リソース命令 ニーモニック LDRES @Ri+, #u4 型 C OP BC STRES #u4, @Ri+ C BD CYCLE NZVC 動作 a ---- (Ri)->u4 のリソース Ri+=4 a ---- u4 のリソース ->(Ri) Ri+=4 備考 u4: チャネル番号 u4: チャネル番号 ( 注意事項 ) 本品種では , チャネル番号を持つリソースを搭載していないので , 使用できません。 付表 E-20 コプロセッサ制御命令 {CRi | CRj} := CR0 | CR1 | CR2 | CR3 | CR4 | CR5 | CR6 | CR7 | CR8 | CR9 | CR10 | CR11 | CR12 | CR13 | CR14 || CR15 u4: := チャネル指定 u8: := コマンド指定 ニーモニック 型 OP CYCLE NZVC 動作 備考 COPOP #u4, #u8, CRj, Cri E 9F-C 2+a ---- 演算指示 COPLD #u4, #u8, Rj, Cri E 9F-D 1+2a ---- Rj -> CRi エラートラップなし COPST #u4, #u8, CRj, Ri E 9F-E 1+2a ---- CRj -> Ri COPSV #u4, #u8, CRj, Ri E 9F-F 1+2a ---- CRj -> Ri ( 注意事項 ) 本品種では , コプロセッサを搭載していないため使用できません。 485 付録 付録 F 使用上の注意 使用上の注意事項です。 ■ 共通事項 ● クロック制御部 INIT への "L" 入力時には , 発振安定待ち時間を確保してください。 ● 兼用ポートの機能切換え PORT と兼用端子の切換えは , PFR ( ポートファンクションレジスタ ) で行います。た だし , バス端子は外バスの設定により切り換わります。 <注意事項> 本品種は , 外バスモードをサポートしておりません。 ● D-bus メモリ コード領域を D-bus 上のメモリに設定しないでください。 D-bus へは命令フェッチを行いませんので , D-bus 領域へ命令フェッチを行った場合 , 誤ったデータをコードとして解釈するため暴走する可能性があります。 486 付録 F 使用上の注意 ● 低消費電力モード (1) スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカ ウンタ制御レジスタのビット 8: SYNCS ビットにて設定します ) を使用したうえで , 以下のシーケンスを必ず使用してください。 /* STCR ライト */ ldi #_STCR, R0 ; STCR レジスタ (0x0481) ldi #Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ stb rl,@r0 ; STCR へのライト /* STBR ライト */ ldi #_CTBR, r2 ; CTBR レジスタ (0x0483) ldi #0xA5, rl ; クリアコマンド (1) stb rl,@r2 ; CTBR への A5 ライト ldi #0xA5, rl ; クリアコマンド (2) stb rl,@r2 ; CTBR への A5 ライト /* ここでタイムベースカウンタクリア */ ldub @r0, rl ; STCR リード /* 同期スタンバイ遷移開始 */ ldub nop @r0, rl ; STCR ダミーリード ; タイミング調整用の NOP × 5 nop nop nop nop (2) モニタデバッガを使用される場合は , 以下のことを行わないでください。 - 上記命令列に対して , ブレークポイントを設定しないでください。 - 上記命令列に対して , ステップ実行を行わないでください。 487 付録 ● PS レジスタに関する注意事項 一部の命令で PS レジスタを先行処理しているため , 下記の例外動作によりデバッガご 使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり する場合があります。 いずれの場合も , EIT から復帰後以降に正しく再処理を行うように設計されていますの で , EIT 前後の動作は仕様どおりの処理を行います。 1. DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b) ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ レークした場合 , 以下のような動作を行う場合があります。 (1) D0, D1 フラグが先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み・NMI またはエミュレータ ) を実行します。 (3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に 更新されます。 2. ユーザ割込み・NMI 要因が発生している状態で割込みを許可するために ORCCR, STILM, MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。 (1) PS レジスタが先行して更新されます。 (2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。 (3) EIT から復帰後 , 上記命令が実行され , PS レジスタが (1) と同じ値に更新されま す。 ● ウォッチドッグタイマ機能について 本品種が備えているウォッチドッグタイマ機能はプログラムが一定時間内にリセット 延期動作を行うことを監視し , プログラムの暴走によりリセット延期動作が行われな かったときに CPU をリセットするための機能です。そのため , いったんウォッチドッ グタイマ機能を有効にすると , リセットをかけるまで動作を続けます。 例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い ます。この例外にあてはまる条件については , ウォッチドッグタイマの機能説明の項を 参照してください。 ■ デバッグ関連の注意事項 ● RETI 命令のステップ実行 ステップ実行する際 , 割込みが頻繁に発生する環境下では , RETI をステップ実行後に 該当割込み処理ルーチンだけを繰り返して実行します。その結果 , メインルーチンや割 込みレベルの低いプログラムの実行が行われなくなります。 回避のために , RETI 命令をステップ実行しないでください。または , 該当割込みルー チンのデバッグが不要になった段階で , 該当割込みを禁止してデバッグを行ってくだ さい。 ● オペランドブレーク システムスタックポインタのアドレスを含む領域に対するアクセスをデータイベント ブレークの対象に設定しないでください。 488 付録 F 使用上の注意 ● フラッシュメモリの未使用領域実行 フラッシュメモリの未使用領域 ( データが 0XFFFFH) を誤って実行してしまうと , ブ レークを受け付けない状態になってしまいます。これを回避するために , デバッガの コードイベントのアドレスマスク機能を使用して , 未使用領域の命令アクセス時にブ レークさせることを推奨いたします。 ● パワーオンデバッグ パワーオンデバッグで電源をOFFにするときは, 次の3条件をすべて満たす状態で行っ てください。 (1) ユーザ電源が 0.9 VCC から 0.5 VCC まで低下する時間が 25 µs 以上 <注意事項> 2 電源の場合は , VCC は外部 I/O 電源電圧のことを指します。 (2) CPU 動作周波数が 1 MHz 以上 (3) ユーザプログラム実行中 ●NMI 要求 (tool) に対する割込みハンドラ ICE 未接続の状態において , ICE からのブレーク要求のみでセットされる要因フラグが , DSU 端子へのノイズなどの影響で誤って立ってしまった場合の誤動作を防ぐため , 次 のプログラムを割込みハンドラに追加してください。 なお , このプログラムを追加した状態で ICE を使用しても問題ありません。 追加場所 次の割込みハンドラ 割込み要因 : NMI 要求 (tool) 割込み番号 : 13 (10 進 ) , 0D (16 進 ) オフセット : 3C8H TBR がデフォルトのアドレス : 000FFFC8H 追加プログラム STM (R0, R1) LDI #B00H, R0 LDI #0, R1 STB R1, @R0 LDM (R0, R1) ; B00H は DSU のブレーク要因レジスタのアドレス ; ブレーク要因レジスタをクリア RETI 489 付録 490 索引 Numerics 0 検出 0 検出 ......................................................................148 0 検出用データレジスタ 0 検出用データレジスタ (BSD0) ........................146 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアタイミング ..........................................................................278 16 ビットアウトプットコンペアと フリーランタイマの動作について ..............279 16 ビットアウトプットコンペアの使用上の注意 ..........................................................................298 16 ビットアウトプットコンペアの動作 ( セット / リセットモード , MOD15 ∼ MOD10=1) ....................................277 16 ビットアウトプットコンペアの動作 ( 反転モード , MOD15 ∼ MOD10=0) ...........273 16 ビットアウトプットコンペアの プログラム例 ..................................................302 16 ビットアウトプットコンペアの レジスタ ..........................................................214 16 ビットアウトプットコンペア割込み ............263 16 ビットインプットキャプチャ 16 ビットインプットキャプチャ入力タイミング ..........................................................................284 16 ビットインプットキャプチャの使用上の注意 ..........................................................................298 16 ビットインプットキャプチャの動作 ............283 16 ビットインプットキャプチャのレジスタ ..........................................................................215 16 ビットインプットキャプチャ割込み ............264 16 ビットタイマレジスタ TMR レジスタ (16 ビットタイマレジスタ ) ..........................................................................157 16 ビットデッドタイマ制御レジスタ 16 ビットデッドタイマ制御レジスタ (DTCR0) ..........................................................................248 16 ビットデッドタイマ制御レジスタ (DTCR1) ...........................................................................251 16 ビットデッドタイマ制御レジスタ (DTCR2) ...........................................................254 16 ビットデッドタイマレジスタ 16 ビットデッドタイマレジスタ (TMRRH: TMRRH0 ∼ TMRRH2, TMRRL:TMRRL0 ∼ TMRRL2) .....................247 16 ビットフリーランタイマ 16 ビットフリーランタイマの使用上の注意 ..........................................................................298 16 ビットフリーランタイマのプログラム例 ...........................................................................301 16 ビットフリーランタイマのレジスタ ............213 16 ビットフリーランタイマ割込み ....................262 16 ビットリロードレジスタ TMRLR レジスタ (16 ビットリロードレジスタ ) ...........................................................................157 1 検出 1 検出 ..................................................................... 148 1 検出用データレジスタ 1 検出用データレジスタ (BSD1) ........................ 146 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................357 8/10 ビット A/D コンバータの機能 ...................334 8/10 ビット A/D コンバータの端子 ...................338 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..........................112, 339 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................335 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................340 8/10 ビット A/D コンバータの割込み ............... 351 491 索引 A A/D A/D 起動 .................................................................297 A/D 起動許可 .........................................................297 フリーランタイマによる A/D 起動 ....................272 A/D 起動コンペア A/D 起動コンペアのレジスタ .............................217 A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................357 8/10 ビット A/D コンバータの機能 ....................334 8/10 ビット A/D コンバータの端子 ....................338 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..........................112, 339 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................335 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................340 8/10 ビット A/D コンバータの割込み ................351 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ (ADCS:ADCS0 ∼ ADCS2) .............................346 A/D チャネル制御レジスタ A/D チャネル制御レジスタ (ADCH:ADCH0 ∼ ADCH2) ...........................341 A/D データレジスタ A/D データレジスタ (ADCD:ADCD00,ADCD01,ADCD10,ADCD11, ADCD20,ADCD21) .........................................349 A/D トリガ制御レジスタ A/D トリガ制御レジスタ (ADTRGC) .................227 A/D 変換データ A/D 変換データ保護機能 .....................................356 A/D モード設定レジスタ A/D モード設定レジスタ (ADMD:ADMD0 ∼ ADMD2) ........................343 ADCD A/D データレジスタ (ADCD:ADCD00,ADCD01,ADCD10,ADCD11, ADCD20,ADCD21) .........................................349 ADCH A/D チャネル制御レジスタ (ADCH:ADCH0 ∼ ADCH2) ...........................341 ADCOMP コンペアレジスタ 0,1,2 (ADCOMP0,ADCOMP1,ADCOMP2) ............260 ADCOMPC 制御レジスタ (ADCOMPC) .................................261 ADCS A/D 制御ステータスレジスタ (ADCS:ADCS0 ∼ ADCS2) .............................346 ADMD A/D モード設定レジスタ (ADMD:ADMD0 ∼ ADMD2) ........................343 ADTRGC A/D トリガ制御レジスタ (ADTRGC) .................227 AF200 AF200 フラッシュマイコンプログラマシステム構 成 ( 横河ディジタルコンピュータ株式会社製 ) ...........................................................................447 492 AICR アナログ入力制御レジスタ (AICR:AICR0 ∼ AICR2) ........................113, 350 B BSD 0 検出用データレジスタ (BSD0) ........................ 146 1 検出用データレジスタ (BSD1) ........................ 146 BSDC 変化点検出用データレジスタ (BSDC) ..............147 BSRR 検出結果レジスタ (BSRR) ..................................147 BUSY レディ / ビジー信号 (RDY/BUSY) .....................432 C CLKB CPU クロック (CLKB) ...........................................77 CLKP 周辺クロック (CLKP) ............................................ 77 CLKR CLKR : クロックソース制御レジスタ ................. 87 CLKT 外部バスクロック (CLKT) ....................................77 CPCLRBH コンペアクリアバッファレジスタ (CPCLRBH,CPCLRBL) ..................................218 CPCLRBL コンペアクリアバッファレジスタ (CPCLRBH,CPCLRBL) ..................................218 CPCLRH コンペアクリアレジスタ (CPCLRH,CPCLRL) ..........................................................................219 CPCLRL コンペアクリアレジスタ (CPCLRH,CPCLRL) ..........................................................................219 CPU CPU ........................................................................... 32 CPU 制御 ................................................................ 404 FR-CPU ROM モード (32/16/8 ビット , 読出しのみ ) ...................... 426 FR-CPU プログラミングモード (16 ビット , 読出し / 書込み ) .......................426 CPU クロック CPU クロック (CLKB) ...........................................77 CPU ステート 各 CPU ステートにおける端子状態 ...................462 CTBR CTBR : タイムベースカウンタクリアレジスタ ............................................................................86 C コンパイラ C コンパイラ (fcc911) .......................................... 465 D Data Direction Register Data Direction Register (DDR:DDR0 ∼ DDR7,DDRC,DDRD,DDRE, DDRG) .............................................................107 索引 DDR Data Direction Register (DDR:DDR0 ∼ DDR7,DDRC,DDRD,DDRE, DDRG) ..............................................................107 DICR DICR (Delayed Interrupt Control Register) ............143 DICR の DLYI ビット ...........................................144 DLYI ビット DICR の DLYI ビット ...........................................144 DMA DMA による周辺割込みクリア ..........................406 DMAC DMAC-ch0,1,2,3,4DMAC 全体制御レジスタ ..........................................................................395 DMAC-ch0,1,2,3,4 コントロール / ステータス レジスタ A ......................................................383 DMAC-ch0,1,2,3,4 コントロール / ステータス レジスタ B .......................................................387 DMAC-ch0,1,2,3,4 転送元 / 転送先アドレス設定 レジスタ ..........................................................393 DMAC 割込み制御 ................................................407 DMAC 全体制御レジスタ DMAC-ch0,1,2,3,4 DMAC 全体制御レジスタ ..........................................................................395 DMA 転送 スリープモード中の DMA 転送 .........................408 DSP-CSR DSP-CSR ( コントロール / ステータスレジスタ ) ...........................................................................365 DSP-LY DSP-LY ( 遅延レジスタ ) .....................................369 DSP-OT DSP-OT0 ∼ DSP-OT7 ( 変数モニタレジスタ ) ..................................369 DSP-PC DSP-PC ( プログラム・カウンタ ) .....................367 DTCR 16 ビットデッドタイマ制御レジスタ (DTCR0) ...........................................................................248 16 ビットデッドタイマ制御レジスタ (DTCR1) ..........................................................................251 16 ビットデッドタイマ制御レジスタ (DTCR2) ..........................................................................254 DTTI DTTI 端子入力の動作 ...........................................295 DTTI 端子ノイズキャンセル機能 ......................296 DTTI 割込み ...........................................................296 波形制御レジスタ 2 (SIGCR2) の DTTI の動作 ..........................................................................296 E EIRR 外部割込み要因レジスタ [EIRR (EIRR0,EIRR1): External Interrupt Request] ............................................................133 EIT EIT( 例外・割込み・トラップ ) ............................50 EIT からの復帰 .......................................................50 EIT ベクタテーブル ...............................................55 EIT 要因 ...................................................................50 EIT 要因受理の優先度 ...........................................58 ELVR 外部割込み要求レベル設定レジスタ [ELVR (ELVR0,ELVR1) : External LeVel Register] ...........................................................134 eml911 デバッガ (sim911, eml911, mon911) .................... 470 ENIR 割込み許可レジスタ [ENIR (ENIR0,ENIR1):ENable Interrupt request Register] ...........................................................133 F fasm911 アセンブラ (fasm911) ...........................................468 fcc911 C コンパイラ (fcc911) .......................................... 465 FLCR フラッシュメモリステータスレジスタ (FLCR) の 構成 .................................................................. 422 flnk911 リンカ (flnk911) ....................................................469 FLWC フラッシュウェイトレジスタ (FLWC) の構成 ..........................................................................424 FPT-100P-M05 FPT-100P-M05 の外形寸法図 ..................................5 FPT-100P-M06 FPT-100P-M06 の外形寸法図 ..................................6 FR-CPU FR-CPU ROM モード (32/16/8 ビット , 読出しのみ ) ...................... 426 FR-CPU プログラミングモード (16 ビット , 読出し / 書込み ) .......................426 G GATE RTO0 ∼ RTO5 と GATE の出力状態 ................. 285 GATEC GATE 機能制御レジスタ (GATEC ) ...................175 GATE 機能 GATE 機能について .............................................179 GATE 機能制御レジスタ GATE 機能制御レジスタ (GATEC ) ...................175 H Hold Request Cancel Level register Hold Request Cancel Level register (HRCL) ..........................................................................121 HRCL Hold Request Cancel Level register (HRCL) ..........................................................................121 ホールドリクエスト取下げ要求機能 (HRCL) の 使用例 .............................................................. 127 493 索引 I I/O ポート I/O ポートのモード ..............................................104 I/O マップ I/O マップ ..............................................................450 ICR ICR ビット構成 .......................................................53 ICR マッピング .......................................................53 割込み制御レジスタ (ICR:ICR00 ∼ ICR47) .....................................120 ICSH インプットキャプチャ状態制御レジスタ (ch2,ch3), 上位バイト (ICSH23) ....................240 ICSL インプットキャプチャ状態制御レジスタ (ch2,ch3), 下位バイト (ICSL23) .....................242 ILM ILM ...........................................................................52 INT INT 命令の動作 .......................................................61 INTE INTE 命令の動作 .....................................................61 Interrupt NMI (Non Maskable Interrupt) ...............................126 IPCPH インプットキャプチャデータレジスタ (IPCPH:IPCPH0 ∼ IPCPH3, IPCPL:IPCPL0 ∼ IPCPL3) .............................239 IPCPL インプットキャプチャデータレジスタ (IPCPH:IPCPH0 ∼ IPCPH3, IPCPL:IPCPL0 ∼ IPCPL3) .............................239 I フラグ I フラグ ....................................................................52 J JMP 命令 JMP 命令 ( 分岐命令 ) ...........................................376 M MAC 命令 MAC 命令 ...............................................................374 MB91260B MB91260B シリーズのブロックダイヤグラム ..............................................................................4 MOD 16 ビットアウトプットコンペアの動作 ( セット / リセットモード , MOD15 ∼ MOD10=1) ....................................277 16 ビットアウトプットコンペアの動作 ( 反転モード , MOD15 ∼ MOD10=0) ...........273 mon911 デバッガ (sim911, eml911, mon911) ....................470 N NMI NMI .........................................................................137 494 NMI (Non Maskable Interrupt) ............................... 126 ユーザ割込み・NMI の動作 ..................................60 割込み・NMI に対するレベルマスク .................. 52 O OCCPBH アウトプットコンペアバッファレジスタ (OCCPBH:OCCPBH0 ∼ OCCPBH5, OCCPBL:OCCPBL0 ∼ OCCPBL5) ............... 228 OCCPBL アウトプットコンペアバッファレジスタ (OCCPBH:OCCPBH0 ∼ OCCPBH5, OCCPBL:OCCPBL0 ∼ OCCPBL5) ............... 228 OCCPH アウトプットコンペアレジスタ (OCCPH:OCCPH0 ∼ OCCPH5, OCCPL:OCCPL0 ∼ OCCPL5) .......................229 OCCPL アウトプットコンペアレジスタ (OCCPH:OCCPH0 ∼ OCCPH5, OCCPL:OCCPL0 ∼ OCCPL5) .......................229 OCMOD コンペアモード制御レジスタ (OCMOD) ..........................................................................237 OCSH コンペア制御レジスタ , 上位バイト (OCSH1,OCSH3,OCSH5) ............................... 230 OCSL コンペア制御レジスタ , 下位バイト (OCSL0,OCSL2,OCSL4) ................................. 234 P PCR Pull-up Control Register (PCR:PCR0 ∼ PCR7,PCRG) .......................... 108 PDIVR 分周比制御レジスタ (PDIVR) ............................. 191 PDR Port Data Register (PDR:PDR0 ∼ PDR7,PDRC,PDRD,PDRE, PDRG) .............................................................. 106 PFR Port Function Register (PFR:PFR0 ∼ PFR2,PFR7,PFRG) .................. 109 PICSH PPG 出力制御レジスタ上位バイト (PICSH01) ..........................................................................244 PICSL PPG 出力制御レジスタ下位バイト (PICSL01) ........................................................................... 245 PLL PLL 逓倍率 .............................................................. 74 PLL 逓倍率変更後の待ち時間 ..............................75 PLL 動作許可 .......................................................... 74 PLL 動作許可後 PLL 動作許可後の待ち時間 ..................................75 Port Data Register Port Data Register (PDR:PDR0 ∼ PDR7,PDRC,PDRD,PDRE, PDRG) .............................................................. 106 索引 Port Function Register Port Function Register (PFR:PFR0 ∼ PFR2,PFR7,PFRG) ..................109 PPG PPG0 出力制御 ......................................................287 PPG 出力動作について ........................................177 PPG の機能 ............................................................164 PPG の組み合わせについて ................................181 PPG の初期値について ........................................180 ゲートトリガされた PPG0 出力 .........................287 PPGC PPGn 動作モード制御レジスタ (PPGC:PPGC0 ∼ PPGC15) .............................171 PPGn 動作モード制御レジスタ PPGn 動作モード制御レジスタ (PPGC:PPGC0 ∼ PPGC15) .............................171 PPG 起動レジスタ PPG 起動レジスタ (TRG) .....................................174 PPG 出力制御レジスタ PPG 出力制御レジスタ下位バイト (PICSL01) ..........................................................................245 PPG 出力制御レジスタ上位バイト (PICSH01) ..........................................................................244 PRLH リロードレジスタ (PRLL/PRLH) ........................173 PRLL リロードレジスタ (PRLL/PRLH) ........................173 Pull-up Control Register Pull-up Control Register(PCR:PCR0 ∼ PCR7,PCRG) ..........................................................................108 PWC PWC のブロックダイヤグラム ...........................185 PWCR PWC データバッファレジスタ (PWCR0,PWCR1) ..........................................................................190 PWCSR PWC コントロール / ステータスレジスタ (PWCSR:PWCSR0/PWCSR1) .........................186 PWC コントロール / ステータスレジスタ PWC コントロール / ステータスレジスタ (PWCSR:PWCSR0/PWCSR1) .........................186 PWC データバッファレジスタ PWC データバッファレジスタ (PWCR0,PWCR1) ..........................................................................190 R RDY レディ / ビジー信号 (RDY/BUSY) ......................432 RETI RETI 命令の動作 .....................................................63 REVC 出力反転レジスタ (REVC) ..................................174 ROM FR-CPU ROM モード (32/16/8 ビット , 読出しのみ ) ......................426 ROM ライタ ROM ライタによる書込み ..................................417 RSRR RSRR : リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ........................................80 RTO RTO0 ∼ RTO5 と GATE の出力状態 ................. 285 S SCR シリアルコントロールレジスタ (SCR: SCR0 ∼ SCR2) .....................................318 SIDR シリアルインプットデータレジスタ (SIDR: SIDR0 ∼ SIDR2), シリアルアウトプットデータレジスタ (SODR:SODR0 ∼ SODR2) ............................320 SIGCR 波形制御レジスタ 1 (SIGCR1) ............................257 波形制御レジスタ 2 (SIGCR2) ............................259 波形制御レジスタ 2 (SIGCR2) の DTTI の動作 ..........................................................................296 sim911 デバッガ (sim911, eml911, mon911) .................... 470 SMR シリアルモードレジスタ (SMR: SMR0 ∼ SMR2) ..........................................................................317 SODR シリアルインプットデータレジスタ (SIDR:SIDR0 ∼ SIDR2), シリアルアウトプットデータレジスタ (SODR:SODR0 ∼ SODR2) ............................320 SSR シリアルステータスレジスタ (SSR: SSR0 ∼ SSR2) ...................................... 320 STCR STCR : スタンバイ制御レジスタ .........................82 STOP 状態 STOP 状態からの復帰動作について .................. 139 外部割込みを使用した STOP 状態からの復帰時に おける注意事項 .............................................. 138 STR 命令 STR 命令 ( 転送命令 ) .......................................... 375 T TBCR TBCR : タイムベースカウンタ制御レジスタ ............................................................................84 TBR TBR(Table Base Register) ........................................ 55 TCCSH タイマ状態制御レジスタ , 上位バイト (TCCSH) ........................................................................... 221 TCCSL タイマ制御レジスタ , 下位バイト (TCCSL) ........................................................................... 224 TCDTH タイマデータレジスタ (TCDTH,TCDTL) ..........................................................................220 TCDTL タイマデータレジスタ (TCDTH,TCDTL) ........................................................................... 220 TMCSR コントロールステータスレジスタ (TMCSR:TMCSR0 ∼ TMCSR2) .................... 154 495 索引 TMRLR TMRLR レジスタ (16 ビットリロードレジスタ ) ......................157 TMRRH 16 ビットデッドタイマレジスタ (TMRRH:TMRRH0 ∼ TMRRH2, TMRRL:TMRRL0 ∼ TMRRL2) .....................247 TMRRL 16 ビットデッドタイマレジスタ (TMRRH:TMRRH0 ∼ TMRRH2, TMRRL:TMRRL0 ∼ TMRRL2) .....................247 TMR レジスタ TMR レジスタ (16 ビットタイマレジスタ ) ..........................157 TRG PPG 起動レジスタ (TRG) .....................................174 two-cycle 転送 ステップ / ブロック転送 two-cycle 転送 ............401 バースト two-cycle 転送 .......................................400 two-cycle 転送時のデータの動き ........................412 U UART UART のクロック選択 .........................................323 UART の特長 .........................................................314 UART のブロックダイヤグラム .........................316 UTIM U-TIMER(UTIM: UTIM0 ∼ UTIM2) ...................308 UTIMC U-TIMER Control register (UTIMC: UTIMC0 ∼ UTIMC2) .....................308 UTIMR Reload register (UTIMR: UTIMR0 ∼ UTIMR2) .....................308 U-TIMER U-TIMER(UTIM: UTIM0 ∼ UTIM2) ...................308 ボーレートと U-TIMER のリロード値の設定例 ..........................................................................331 U-TIMER Control register U-TIMER Control register (UTIMC: UTIMC0 ∼ UTIMC2) .....................308 あ アーキテクチャ 内部アーキテクチャ .............................................. 30 アウトプットコンペア 16 ビットアウトプットコンペアと フリーランタイマの動作について ..............279 16 ビットアウトプットコンペアの使用上の注意 ..........................................................................298 16 ビットアウトプットコンペアの動作 ( セット / リセットモード , MOD15 ∼ MOD10=1) .................................... 277 16 ビットアウトプットコンペアの動作 ( 反転モード , MOD15 ∼ MOD10=0) ..........273 16 ビットアウトプットコンペアのプログラム例 ..........................................................................302 16 ビットアウトプットコンペアのレジスタ ..........................................................................214 16 ビットアウトプットコンペア割込み ........... 263 アウトプットコンペアバッファレジスタ アウトプットコンペアバッファレジスタ (OCCPBH:OCCPBH0 ∼ OCCPBH5, OCCPBL:OCCPBL0 ∼ OCCPBL5) ............... 228 アウトプットコンペアレジスタ アウトプットコンペアレジスタ (OCCPH:OCCPH0 ∼ OCCPH5, OCCPL:OCCPL0 ∼ OCCPL5) .......................229 アセンブラ アセンブラ (fasm911) ...........................................468 アドレッシングモード アドレッシングモード ........................................ 403 アドレッシング領域 ダイレクトアドレッシング領域 .................... 28, 46 アナログ入力制御レジスタ アナログ入力制御レジスタ (AICR:AICR0 ∼ AICR2) ........................113, 350 アルゴリズム 自動アルゴリズム実行状態 ................................416 アンダフロー アンダフロー動作 ................................................159 い 一時停止 一時停止 ................................................................ 406 イネーブルセクタプロテクト イネーブルセクタプロテクト ............................439 インプットキャプチャ 16 ビットインプットキャプチャ入力タイミング ..........................................................................284 16 ビットインプットキャプチャの使用上の注意 ..........................................................................298 16 ビットインプットキャプチャの動作 ........... 283 16 ビットインプットキャプチャのレジスタ ..........................................................................215 16 ビットインプットキャプチャ割込み ........... 264 インプットキャプチャ状態制御レジスタ インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 下位バイト (ICSL23) ...................242 インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 上位バイト (ICSH23) .................. 240 496 索引 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCPH:IPCPH0 ∼ IPCPH3, IPCPL:IPCPL0 ∼ IPCPL3) .............................239 う ウォッチドッグタイマ制御レジスタ RSRR : リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ........................................80 え エラー エラーによる停止 .................................................407 演算機能 演算機能 .................................................................371 演算結果 演算結果の転送処理 .............................................372 お 応用例 応用例 .....................................................................329 オーダリング バイトオーダリング ...............................................42 ビットオーダリング ...............................................42 か 外形寸法図 FPT-100P-M05 の外形寸法図 ..................................5 FPT-100P-M06 の外形寸法図 ..................................6 外部バスクロック 外部バスクロック (CLKT) ....................................77 外部割込み 外部割込みの動作手順について .........................135 外部割込みの動作について .................................135 外部割込み要求レベルについて .........................136 外部割込みを使用した STOP 状態からの復帰時に おける注意事項 ..............................................138 外部割込み要因レジスタ 外部割込み要因レジスタ [EIRR (EIRR0,EIRR1): External Interrupt Request] ............................................................133 外部割込み要求レベル設定レジスタ 外部割込み要求レベル設定レジスタ [ELVR (ELVR0,ELVR1) : External LeVel Register] ............................................................134 カウンタ カウンタのクリア .................................................195 カウンタの動作状態 .............................................161 カウントクロック カウントクロックの選択 .....................................193 カウントクロックの選択について .....................178 選択された外部カウントクロック .....................272 カスケードモード カスケードモード .................................................311 き 基本プログラミングモデル 基本プログラミングモデル ..................................35 共通事項 共通事項 ................................................................ 486 く クロック クロック同期モード ............................................ 325 クロック周波数 原発振クロック周波数について ........................ 447 クロックソース制御レジスタ CLKR : クロックソース制御レジスタ ................. 87 け ゲートトリガ ゲートトリガされた PPG0 出力 .........................287 検出結果レジスタ 検出結果レジスタ (BSRR) ..................................147 原発振 原発振クロック周波数について ........................ 447 こ コプロセッサ コプロセッサエラートラップ ..............................63 コプロセッサ不在トラップ ..................................62 コントロール / ステータスレジスタ DMAC-ch.0,1,2,3,4 コントロール / ステータス レジスタ A ......................................................383 DMAC-ch.0,1,2,3,4 コントロール / ステータス レジスタ B ......................................................387 DSP-CSR ( コントロール / ステータスレジスタ ) ..........................................................................365 コントロールステータスレジスタ コントロールステータスレジスタ (TMCSR:TMCSR0 ∼ TMCSR2) .................... 154 コンパイラ C コンパイラ (fcc911) .......................................... 465 コンペア A/D 起動コンペアのレジスタ ............................217 コンペアクリアバッファ コンペアクリアバッファ .................................... 268 コンペアクリアバッファレジスタ コンペアクリアバッファレジスタ (CPCLRBH,CPCLRBL) ..................................218 コンペアクリアレジスタ コンペアクリアレジスタ (CPCLRH,CPCLRL) ........................................................................... 219 コンペア制御レジスタ コンペア制御レジスタ , 下位バイト (OCSL0,OCSL2,OCSL4) ................................. 234 コンペア制御レジスタ , 上位バイト (OCSH1,OCSH3,OCSH5) ............................... 230 コンペアモード制御レジスタ コンペアモード制御レジスタ (OCMOD) ........................................................................... 237 497 索引 コンペアレジスタ コンペアレジスタ 0,1,2 (ADCOMP0,ADCOMP1,ADCOMP2) ............260 し 自動アルゴリズム 自動アルゴリズム実行状態 .................................416 周辺クロック 周辺クロック (CLKP) .............................................77 周辺割込み DMA による周辺割込みクリア ..........................406 初期化後 設定初期化後の待ち時間 .......................................75 出力端子 出力端子機能 .........................................................160 出力反転レジスタ 出力反転レジスタ (REVC) ..................................174 主要機能 主要機能 .........................................................116, 380 主要動作 主要動作 .................................................................397 初期値 PPG の初期値について ........................................180 シリアルアウトプットデータレジスタ シリアルインプットデータレジスタ (SIDR:SIDR0 ∼ SIDR2), シリアルアウトプットデータレジスタ (SODR:SODR0 ∼ SODR2) .............................320 シリアルインプットデータレジスタ シリアルインプットデータレジスタ (SIDR: SIDR0 ∼ SIDR2), シリアルアウトプットデータレジスタ (SODR:SODR0 ∼ SODR2) .............................320 シリアルオンボード 富士通標準シリアルオンボード書込みに使用する 端子 ..................................................................445 シリアル書込み シリアル書込み基本構成 .....................................444 シリアル書込み接続例 .........................................446 シリアルコントロールレジスタ シリアルコントロールレジスタ (SCR: SCR0 ∼ SCR2) .....................................318 シリアルステータスレジスタ シリアルステータスレジスタ (SSR: SSR0 ∼ SSR2) ......................................320 シリアルモードレジスタ シリアルモードレジスタ (SMR: SMR0 ∼ SMR2) ..........................................................................317 信号 レディ / ビジー信号 (RDY/BUSY) ......................432 す スタック 割込みスタック .......................................................54 スタンバイ スタンバイからの復帰について .........................135 スタンバイ制御レジスタ STCR : スタンバイ制御レジスタ .........................82 498 スタンバイモード スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 127 ステップ / ブロック転送 ステップ / ブロック転送 two-cycle 転送 ........... 401 ステップトレーストラップ ステップトレーストラップの動作 ...................... 61 ストップ スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 127 ストップモード ストップモード復帰後の待ち時間 ...................... 76 スリープ スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 127 スリープモード スリープモード中の DMA 転送 .........................408 スロット 遅延スロット付き動作 .......................................... 47 遅延スロットなし動作 .......................................... 49 せ 制御レジスタ 制御レジスタ (ADCOMPC) ................................. 261 セクタ フラッシュメモリのセクタ構成 ........................ 418 セクタプロテクト セクタプロテクト一時解除 ................................441 セクタプロテクトオペレーション セクタプロテクトオペレーション一覧 ............438 セット / リセットモード 16 ビットアウトプットコンペアの動作 ( セット / リセットモード , MOD15 ∼ MOD10=1) .................................... 277 そ ソースクロック ソースクロックの選択 .......................................... 73 ソフトウェア ソフトウェア要求 ................................................399 た 退避 退避・復帰の処理 ................................................150 タイマ タイマ割込み ........................................................ 270 タイマクリア タイマクリア ........................................................ 267 タイマ状態制御レジスタ タイマ状態制御レジスタ , 上位バイト (TCCSH) ........................................................................... 221 タイマ制御レジスタ タイマ制御レジスタ , 下位バイト (TCCSL) ........................................................................... 224 タイマデータレジスタ タイマデータレジスタ (TCDTH,TCDTL) ..........................................................................220 索引 タイマモード タイマモード .........................................................267 タイマモードの動作 .............................................289 タイムベースカウンタ タイムベースカウンタ ...........................................92 タイムベースカウンタクリアレジスタ CTBR : タイムベースカウンタクリアレジスタ ............................................................................86 タイムベースカウンタ制御レジスタ TBCR : タイムベースカウンタ制御レジスタ ............................................................................84 ダイレクトアドレッシング領域 ダイレクトアドレッシング領域 .....................28, 46 多機能タイマ 多機能タイマの構成 .............................................204 多機能タイマの端子 .............................................212 多機能タイマの動作 .............................................266 多機能タイマのブロックダイヤグラム .............206 端子機能一覧表 端子機能一覧表 .........................................................9 端子状態 各 CPU ステートにおける端子状態 ...................462 端子配列図 端子配列図 .................................................................7 単発変換モード 単発変換モードの動作 .........................................352 ち 遅延書込み 遅延書込み機能 .....................................................372 遅延スロット 遅延スロット付き動作 ...........................................47 遅延スロットなし動作 ...........................................49 遅延レジスタ DSP-LY ( 遅延レジスタ ) .....................................369 チャネル選択 チャネル選択と制御 .............................................408 注意 使用上の注意 .........................................................328 レジスタ設定時の注意 .........................................383 注意事項 その他の注意事項 .................................................447 注意事項 .................................................................201 調歩同期 非同期 ( 調歩同期 ) モード ..................................324 て 停止 エラーによる停止 .................................................407 停止変換モード 停止変換モードの動作 .........................................355 低消費電力モード 低消費電力モード ...................................................98 逓倍率 PLL 逓倍率 ...............................................................74 逓倍率変更後 PLL 逓倍率変更後の待ち時間 ..............................75 データアクセス データアクセス .......................................................43 データの種類 データの種類 ........................................................ 403 デッドタイムタイマモード デッドタイムタイマモード時の動作 ................ 291 デバイス デバイス状態と各遷移 .......................................... 95 デバイスの取扱い デバイスの取扱いについて ..................................24 デバッガ デバッガ (sim911, eml911, mon911) .................... 470 デバッグ デバッグ関連の注意事項 .................................... 488 電源投入後 電源投入後の待ち時間 .......................................... 75 転送アドレス 転送アドレス ........................................................ 397 転送回数 転送回数と転送終了 ............................................ 398 転送回数制御 転送回数制御 ........................................................ 404 転送シーケンス 転送シーケンスの選択 ........................................ 400 転送終了 転送回数と転送終了 ............................................ 398 転送タイプ 転送タイプ ............................................................ 397 転送命令 STR 命令 ( 転送命令 ) .......................................... 375 転送モード 転送モード ............................................................ 397 転送元 / 転送先アドレス設定レジスタ DMAC-ch.0,1,2,3,4 転送元 / 転送先アドレス設定 レジスタ .......................................................... 393 転送要求 転送要求の受付けと転送 .................................... 405 と 同期モード クロック同期モード ............................................ 325 動作開始 動作開始 ................................................................ 405 動作概要 動作概要 ................................................................ 176 動作終了 動作終了 / 停止 ..................................................... 406 動作モード 動作モード .............................................. 64, 323, 370 動作モードについて ............................................ 176 動作モードの選択 ................................................193 リセット動作モード .............................................. 71 特長 特長 ........................................................2, 30, 50, 360 トラップ EIT( 例外・割込み・トラップ ) ...........................50 コプロセッサエラートラップ ..............................63 コプロセッサ不在トラップ ..................................62 な 内蔵周辺要求 内蔵周辺要求 ........................................................ 399 499 索引 内部アーキテクチャ 内部アーキテクチャ ...............................................30 内部クロック 内部クロック動作 .................................................158 に 反転モード 16 ビットアウトプットコンペアの動作 ( 反転モード , MOD15 ∼ MOD10=0) ..........273 ひ 入出力回路形式 入出力回路形式 .......................................................19 入力タイミング 16 ビットインプットキャプチャ入力タイミング ..........................................................................284 ビジー信号 レディ / ビジー信号 (RDY/BUSY) .....................432 ビットオーダリング ビットオーダリング .............................................. 42 非同期 非同期 ( 調歩同期 ) モード ..................................324 の ふ ノイズキャンセル DTTI 端子ノイズキャンセル機能 ......................296 富士通標準 富士通標準シリアルオンボード書込みに 使用する端子 ..................................................445 復帰 スタンバイからの復帰について ........................ 135 スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 127 退避・復帰の処理 ................................................150 フラグ I フラグ .................................................................... 52 フラッシュウェイトレジスタ フラッシュウェイトレジスタ (FLWC) の構成 ..........................................................................424 フラッシュマイコンプログラマシステム AF200 フラッシュマイコンプログラマ システム構成 ( 横河ディジタルコンピュータ 株式会社製 ) ....................................................447 フラッシュメモリ フラッシュメモリの概要 .................................... 416 フラッシュメモリのセクタ構成 ........................ 418 フラッシュメモリのブロック ダイヤグラム ..................................................417 フラッシュメモリのレジスタ一覧 .................... 421 フラッシュメモリステータスレジスタ フラッシュメモリステータスレジスタ (FLCR) の 構成 .................................................................. 422 フリーランタイマ 16 ビットアウトプットコンペアと フリーランタイマの動作について ..............279 16 ビットフリーランタイマの使用上の注意 ..........................................................................298 16 ビットフリーランタイマのプログラム例 ..........................................................................301 16 ビットフリーランタイマのレジスタ ........... 213 16 ビットフリーランタイマ割込み ...................262 フリーランタイマによる A/D 起動 ...................272 プリンストンバスコンバータ ハーバード←→プリンストンバスコンバータ ............................................................................33 プログラミング FR-CPU プログラミングモード (16 ビット , 読出し / 書込み ) .......................426 プログラミングモデル 基本プログラミングモデル ..................................35 プログラムアクセス プログラムアクセス .............................................. 43 は バースト two-cycle 転送 バースト two-cycle 転送 .......................................400 バースト転送 バースト転送 .........................................................411 ハードウェア ハードウェア構成 .................................................380 ハードウェア構成 ハードウェア構成 .................................................116 ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ .........................432 ハードウェアシーケンスフラグの使用例 ..........................................................................436 ハーバード ハーバード←→プリンストンバス コンバータ ........................................................33 バイトオーダリング バイトオーダリング ...............................................42 波形ジェネレータ 波形ジェネレータの使用上の注意 .....................299 波形ジェネレータのレジスタ .............................216 波形ジェネレータ割込み .....................................265 波形制御レジスタ 波形制御レジスタ 1 (SIGCR1) ............................257 波形制御レジスタ 2 (SIGCR2) ............................259 波形制御レジスタ 2 (SIGCR2) の DTTI の動作 ..........................................................................296 バスコンバータ 32 ビット←→ 16 ビットバスコンバータ ............32 バスモード バスモード ...............................................................64 発振安定待ち時間 発振安定待ち時間 ...................................................69 パルス パルスの端子出力の制御について .....................178 パルス幅測定動作詳細 .........................................195 パルス幅 リロード値とパルス幅の関係について .............177 パルス幅測定 パルス幅測定機能 .........................................184, 192 パルス幅測定の起動と停止 .................................194 500 索引 プログラム例 16 ビットアウトプットコンペアのプログラム例 ..........................................................................302 16 ビットフリーランタイマのプログラム例 ..........................................................................301 プログラム・カウンタ DSP-PC ( プログラム・カウンタ ) .....................367 ブロックサイズ ブロックサイズ .....................................................402 ブロックダイヤグラム 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..........................112, 339 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................335 MB91260B シリーズのブロックダイヤグラム ..............................................................................4 PWC のブロックダイヤグラム ...........................185 UART のブロックダイヤグラム .........................316 多機能タイマのブロックダイヤグラム .............206 フラッシュメモリのブロックダイヤグラム ..........................................................................417 ブロックダイヤグラム ..........79, 119, 132, 142, 145, 167, 307, 362, 382 ポート基本ブロックダイヤグラム .....................104 リロードタイマのブロックダイヤグラム ..........................................................................153 ブロック転送 ブロック転送 .........................................................410 分岐命令 JMP 命令 ( 分岐命令 ) ...........................................376 分周比制御レジスタ 分周比制御レジスタ (PDIVR) .............................191 ホールドリクエスト取下げ要求 ホールドリクエスト取下げ要求 (Hold Request Cancel Request) ........................ 126 ホールドリクエスト取下げ要求機能 (HRCL) の 使用例 .............................................................. 127 ボーレート ボーレートと U-TIMER のリロード値の設定例 ..........................................................................331 ボーレートの計算 ................................................311 保護機能 A/D 変換データ保護機能 .................................... 356 へ 命令 JMP 命令 ( 分岐命令 ) .......................................... 376 MAC 命令 .............................................................. 374 STR 命令 ( 転送命令 ) .......................................... 375 命令定義 ................................................................ 364 命令動作 ................................................................ 371 命令一覧表 命令一覧表 ............................................................ 471 命令概要 命令概要 .................................................................. 33 メモリマップ メモリマップ .................................................... 28, 44 ベクタテーブル EIT ベクタテーブル ...............................................55 ベクタテーブル .....................................................458 ベクタテーブル初期領域 .......................................46 ベリファイセクタプロテクト ベリファイセクタプロテクト .............................439 変化点検出 変化点検出 .............................................................149 変化点検出用データレジスタ 変化点検出用データレジスタ (BSDC) ..............147 変換データ A/D 変換データ保護機能 .....................................356 変換モード 単発変換モードの動作 .........................................352 停止変換モードの動作 .........................................355 連続変換モードの動作 .........................................354 変数モニタ 変数モニタ出力 .....................................................373 変数モニタレジスタ DSP-OT0 ∼ DSP-OT7 ( 変数モニタレジスタ ) ..................................369 ほ ポート ポート基本ブロックダイヤグラム .....................104 ま マスク 割込みマスク機能 ................................................270 待ち時間 PLL 逓倍率変更後の待ち時間 ..............................75 PLL 動作許可後の待ち時間 ..................................75 ストップモード復帰後の待ち時間 ...................... 76 設定初期化後の待ち時間 ...................................... 75 電源投入後の待ち時間 .......................................... 75 マッピング ICR マッピング ....................................................... 53 み 未定義命令 未定義命令例外の動作 .......................................... 62 め も モード 非同期 ( 調歩同期 ) モード ..................................324 モード設定 モード設定 .............................................................. 64 モニタ出力 変数モニタ出力 ....................................................373 ゆ ユーザ ユーザ割込み・NMI の動作 ..................................60 優先順位判定 優先順位判定 ........................................................ 122 501 索引 優先度 EIT 要因受理の優先度 ...........................................58 り リセット リセットシーケンス ...............................................68 リセット動作モード ...............................................71 リセット要因 ...........................................................67 リセットレベル .......................................................66 リセット要因レジスタ RSRR : リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ........................................80 リロードタイマ リロードタイマのブロックダイヤグラム ..........................................................................153 リロード値 ボーレートと U-TIMER のリロード値の 設定例 ..............................................................331 リロード値とパルス幅の関係について .............177 リロード動作 リロード動作 .........................................................402 リロードレジスタ リロードレジスタ (PRLL/PRLH) ........................173 リンカ リンカ (flnk911) .....................................................469 れ 例外 EIT( 例外・割込み・トラップ ) ............................50 未定義命令例外の動作 ...........................................62 レジスタ TMRLR レジスタ (16 ビットリロードレジスタ ) ......................157 レジスタ ...................................................................36 レジスタ一覧 レジスタ一覧 ................117, 132, 142, 145, 152, 164, 184, 306, 315, 361, 381 レジスタ設定 レジスタ設定時の注意 .........................................383 502 レディ レディ / ビジー信号 (RDY/BUSY) .....................432 レベルマスク 割込み・NMI に対するレベルマスク .................. 52 連続変換モード 連続変換モードの動作 ........................................ 354 わ 割込み 16 ビットアウトプットコンペア割込み ........... 263 16 ビットインプットキャプチャ割込み ........... 264 16 ビットフリーランタイマ割込み ...................262 8/10 ビット A/D コンバータの割込み ............... 351 DMAC 割込み制御 ............................................... 407 DMA による周辺割込みクリア .......................... 406 DTTI 割込み .......................................................... 296 EIT( 例外・割込み・トラップ ) ...........................50 外部割込みの動作手順について ........................ 135 外部割込みの動作について ................................135 外部割込み要求レベルについて ........................ 136 タイマ割込み ........................................................ 270 波形ジェネレータ割込み .................................... 265 ユーザ割込み・NMI の動作 ..................................60 割込みスタック ......................................................54 割込みについて ....................................................179 割込み発生およびフラグのセットタイミング ..........................................................................326 割込み番号 ............................................................ 144 割込みマスク機能 ................................................270 割込みレベル .......................................................... 51 割込み・NMI に対するレベルマスク .................. 52 割込み許可レジスタ 割込み許可レジスタ [ENIR (ENIR0,ENIR1):ENable Interrupt request Register] ...........................................................133 割込み制御レジスタ 割込み制御レジスタ (ICR:ICR00 ∼ ICR47) ........................................................................... 120 CM71-10127-2 富士通半導体デバイス • CONTROLLER MANUAL FR60Lite 32 ビット・マイクロコントローラ MB91260B Series ハードウェアマニュアル 2006 年 8 月 第 2 版発行 発行 富士通株式会社 編集 営業推進統括部 営業推進部 電子デバイス事業本部