本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通半導体デバイス CONTROLLER MANUAL CM71-10116-2 FR30 32 ビット・マイクロコントローラ MB91151A Series ハードウェアマニュアル FR30 32 ビット・マイクロコントローラ MB91151A Series ハードウェアマニュアル 開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。 『Check Sheet』は , 下記サポートページに掲載されています。 URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html 『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を リストにしたものです。 富士通株式会社 はじめに ■ 本書の目的と対象読者 MB91151A シリーズ ( 以降 , MB91151A と表記します ) は , 新しい RISC アーキテクチャ の CPU をコアとした「32 ビット・シングルチップ・マイクロコントローラ FR30 の 1 つとして開発された製品で , CD/DVD 用のマイクロコントローラです。 本書は , 実際にこの MB91151A を使用して製品を開発される技術者の方を対象に , MB91151A の機能や動作について解説したものです。本書をご一読ください。なお , 各種命令の詳細については ,『インストラクション・マニュアル』をご参照ください。 ■ 商標 FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。 i ■ 本書の全体構成 本書は , 以下に示す 19 の章および付録から構成されています。 第1章 概要 この章では , MB91151A の特長 , ブロックダイヤグラム , 機能概要など全体を知るた めの基本的なことについて説明します。 第2章 デバイスの取扱いについて この章では , MB91151A の取扱い上の注意について説明します。 第3章 メモリ , CPU および制御部 この章では , FR ファミリの CPU コアの機能を知るために , アーキテクチャ , 仕様 , 命令などの基本的なことについて説明します。 第4章 バスインタフェース この章では , バスインタフェースの概要およびバス動作について説明します。 第5章 I/O ポート この章では , I/O ポートの概要 , 各ポートのブロックダイヤグラムおよびレジスタの 構成 / 機能について説明します。 第6章 8/16 ビットアップダウンカウンタ / タイマ この章では , 8/16 ビットアップダウンカウンタ / タイマの概要 , ブロックダイヤグラ ム , レジスタの構成 / 機能および 8/16 ビットアップダウンカウンタ / タイマの動作 について説明します。 第7章 16 ビットリロードタイマ この章では , 16 ビットリロードタイマの概要 , ブロックダイヤグラム , レジスタの 構成 / 機能および 16 ビットリロードタイマの動作について説明します。 第8章 PPG タイマ この章では , PPG タイマの概要 , ブロックダイヤグラム , レジスタの構成 / 機能およ び PPG タイマの動作について説明します。 第9章 多機能タイマ この章では , 多機能タイマの概要 , ブロックダイヤグラム , レジスタの構成 / 機能お よび多機能タイマの動作について説明します。 第 10 章 外部割込み制御部 この章では , 外部割込み制御部の概要 , レジスタの構成 / 機能および外部割込み制御 部の動作について説明します。 第 11 章 遅延割込みモジュール この章では , 遅延割込みモジュールの概要 , レジスタの構成 / 機能および遅延割込み モジュールの動作について説明します。 第 12 章 割込みコントローラ この章では , 割込みコントローラの概要 , ブロックダイヤグラム , レジスタの構成 / 機能および割込みコントローラの動作について説明します。 ii 第 13 章 8/10 ビット A/D コンバータ この章では , 8/10 ビット A/D コンバータの概要 , ブロックダイヤグラム , 端子 , レジ スタの構成 / 機能 , 割込み , 動作 , A/D 変換データ保護機能および 8/10 ビット A/D コンバータの使用上の注意事項について説明します。 第 14 章 8 ビット D/A コンバータ この章では , 8 ビット D/A コンバータの概要 , ブロックダイヤグラム , レジスタの構 成 / 機能および 8 ビット D/A コンバータの動作について説明します。 第 15 章 UART この章では , UART の概要 , ブロックダイヤグラム , 端子 , レジスタの構成 / 機能 , 割込み , タイミング , ボーレート , 動作および UART の使用上の注意事項について 説明します。 第 16 章 DMA コントローラ (DMAC) この章では , DMAC の概要 , ブロックダイヤグラム , レジスタの一覧 / 詳細 , 動作 , 注意事項 , DMA 転送要式要因および DMAC のタイミングについて説明します。 第 17 章 ビットサーチモジュール この章では , ビットサーチモジュールの概要 , レジスタの構成 / 機能およびビット サーチモジュールの待避・復帰の処理について説明します。 第 18 章 周辺ストップ制御 この章では , 周辺ストップ制御の概要 , レジスタの構成 / 機能について説明します。 第 19 章 シリアル起動 この章では , シリアル起動の概要および通信モードについて説明します。 付録 付録には , I/O マップ , 割込みベクタ , 各 CPU ステートにおける端子状態 , リトルエ ンディアン領域を利用する際の注意事項および命令一覧を掲載しています。 iii • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認 ください。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当 社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従 いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ), ならびに極めて高い信頼性 が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承 ください。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該 当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。 Copyright ©2002-2006 FUJITSU LIMITED All rights reserved. iv 本書の読み方 ■ 本書の記述形式 以下に本書で使用する主要な用語に関しての説明を示します。 用語 意味 I-bus 内部インストラクション用の 16 ビット幅のバスです。FR ファミリは , 内 部ハーバードアーキテクチャを採用しているため , 命令とデータは独立し たバスです。I-bus には , バスコンバータが接続されます。 D-bus 内部 32 ビット幅のデータバスです。D-bus には , 内部リソースが接続さ れます。 C-bus 内部マルチプレクスバスです。スイッチを通して I-bus と D-bus に接続さ れます。C-bus には外部インタフェースモジュールが接続されます。外部 データバスは , データと命令がマルチプレクスされます。 R-bus 内部 16 ビット幅のデータバスです。R-bus は , アダプタを通して D-bus に 接続されます。 R-bus には , 各種 I/O, クロック発生部 , 割込みコントローラが接続されま す。 R-bus は 16 ビット幅でかつアドレス , データがマルチプレクスされるた め , CPU がこれらのリソースにアクセスする場合 , 複数サイクルの時間が かかります。 E-unit 演算実行ユニットです。 φ システムクロック。R-bus につながる各内蔵リソースに対してクロック発 生部から出力されるクロック。最速で原発振と同周期ですが , クロック発 生部 GCR レジスタの PCK1, 0 で 1, 1/2, 1/4, 1/8( または 1/2, 1/4, 1/8, 1/16) に分周されたクロックとなります。 θ システムクロック。R-bus 以外のバスに接続されるリソースと CPU の動 作クロック。 最速で原発振と同周期ですが , クロック発生部 GCR レジスタの CCK1, 0 で 1, 1/2, 1/4, 1/8( または 1/2, 1/4, 1/8, 1/16) に分周されたクロックとなりま す。 v vi 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 第2章 2.1 2.2 2.3 第3章 概要 ............................................................................................................ 1 特長 ........................................................................................................................................ 2 ブロックダイヤグラム............................................................................................................ 4 外形寸法図.............................................................................................................................. 5 端子配列 ................................................................................................................................. 7 端子機能説明 ........................................................................................................................ 10 入出力回路形式 .................................................................................................................... 17 デバイスの取扱いについて ...................................................................... 21 デバイス取扱い上の注意 ...................................................................................................... 22 各デバイス使用上の注意 ...................................................................................................... 24 電源投入 ............................................................................................................................... 25 メモリ空間 , CPU および制御部 .............................................................. 27 3.1 メモリ空間............................................................................................................................ 28 3.2 CPU アーキテクチャ ............................................................................................................ 29 3.3 命令キャッシュ .................................................................................................................... 32 3.4 プログラミングモデル.......................................................................................................... 40 3.5 データ構造............................................................................................................................ 46 3.6 ワードアライメント ............................................................................................................. 47 3.7 特別なメモリ領域 ................................................................................................................. 48 3.8 命令概要 ............................................................................................................................... 49 3.8.1 遅延スロット付き分岐命令 ........................................................................................ 51 3.8.2 遅延スロットなし分岐命令 ........................................................................................ 53 3.9 EIT( 例外・割込み・トラップ ) ............................................................................................ 54 3.9.1 割込みレベル .............................................................................................................. 55 3.9.2 割込みスタック .......................................................................................................... 56 3.9.3 EIT ベクタテーブル.................................................................................................... 57 3.9.4 多重 EIT 処理.............................................................................................................. 59 3.9.5 EIT 動作...................................................................................................................... 61 3.10 リセットシーケンス ............................................................................................................. 65 3.11 動作モード............................................................................................................................ 66 3.12 クロック発生部 ( 低消費電力メカニズム ) ........................................................................... 68 3.12.1 リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) ......... 70 3.12.2 スタンバイ制御レジスタ (STCR)............................................................................... 72 3.12.3 タイムベースタイマクリアレジスタ (CTBR)............................................................. 73 3.12.4 ギア制御レジスタ (GCR) ........................................................................................... 74 3.12.5 ウォッチドッグリセット発生延期レジスタ (WPR) ................................................... 76 3.12.6 DMA 要求抑止レジスタ (PDRR) ................................................................................ 77 3.12.7 PLL 制御レジスタ (PCTR).......................................................................................... 78 3.12.8 ウォッチドッグ機能 ................................................................................................... 79 3.12.9 ギア機能 ..................................................................................................................... 81 3.12.10 リセット要因保持....................................................................................................... 83 3.12.11 PLL のクロック設定例 ............................................................................................... 85 3.13 低消費電力モード ................................................................................................................. 88 vii 3.13.1 3.13.2 3.13.3 第4章 ストップ状態 .............................................................................................................. 89 スリープ状態 .............................................................................................................. 92 低消費電力モードの状態遷移図 ................................................................................. 95 バスインタフェース................................................................................. 97 4.1 バスインタフェースの概要................................................................................................... 98 4.2 バスインタフェースのブロックダイヤグラム.................................................................... 100 4.3 バスインタフェースのレジスタ ......................................................................................... 101 4.3.1 エリア選択レジスタ (ASR1 ∼ ASR5) とエリアマスクレジスタ (AMR1 ∼ AMR5) ................................................................................................................................. 102 4.3.2 エリアモードレジスタ 0(AMD0) .............................................................................. 105 4.3.3 エリアモードレジスタ 1(AMD1) .............................................................................. 107 4.3.4 エリアモードレジスタ 32(AMD32) .......................................................................... 108 4.3.5 エリアモードレジスタ 4(AMD4) .............................................................................. 109 4.3.6 エリアモードレジスタ 5(AMD5) .............................................................................. 110 4.3.7 外部端子制御レジスタ 0(EPCR0) ............................................................................ 111 4.3.8 外部端子制御レジスタ 1(EPCR1) ............................................................................ 114 4.3.9 リトルエンディアンレジスタ (LER) ........................................................................ 115 4.4 バス動作 ............................................................................................................................. 116 4.4.1 データバス幅と制御信号との関係............................................................................ 117 4.4.2 ビッグエンディアンのバスアクセス ........................................................................ 118 4.4.3 リトルエンディアンのバスアクセス ........................................................................ 124 4.4.4 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 128 4.5 バスタイミング .................................................................................................................. 132 4.5.1 基本リードサイクル ................................................................................................. 133 4.5.2 基本ライトサイクル ................................................................................................. 135 4.5.3 各モードでのリードサイクル................................................................................... 137 4.5.4 各モードでのライトサイクル................................................................................... 139 4.5.5 リード / ライト混在サイクル.................................................................................... 141 4.5.6 自動ウェイトサイクル ............................................................................................. 142 4.5.7 外部ウェイトサイクル ............................................................................................. 143 4.5.8 外部バスリクエスト ................................................................................................. 144 4.6 内部クロック逓倍動作 ( クロックダブラ ) ......................................................................... 145 4.7 外部バス動作のプログラム例 ............................................................................................. 146 第5章 I/O ポート............................................................................................... 149 5.1 5.2 5.3 5.4 I/O ポートの概要 ................................................................................................................ 150 基本入出力ポートのブロックダイヤグラム ....................................................................... 151 入出力ポート ( プルアップ抵抗付き ) のブロックダイヤグラム ........................................ 152 入出力ポート ( オープンドレイン出力機能 , プルアップ抵抗付き ) のブロックダイヤグラム ............................................................................................................................................ 153 5.5 5.6 5.7 5.8 5.9 5.10 入出力ポート ( オープンドレイン出力機能付き ) のブロックダイヤグラム ...................... 155 ポートデータレジスタ (PDR2 ∼ PDRL)............................................................................ 156 データ方向レジスタ (DDR2 ∼ DDRL) ............................................................................... 158 プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) .................................................................. 160 オープンドレイン制御レジスタ (OCRH, OCRI) ................................................................ 161 アナログ入力制御レジスタ (AICR)..................................................................................... 162 viii 第6章 8/16 ビットアップダウンカウンタ / タイマ ........................................... 163 6.1 8/16 ビットアップダウンカウンタ / タイマの概要............................................................. 164 6.2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム................................ 166 6.3 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 .............................................. 168 6.3.1 カウンタコントロールレジスタ H/L ch0 (CCRH0/CCRL0 ) .................................... 169 6.3.2 カウンタコントロールレジスタ H/L ch1 (CCRH1/CCRL1) ..................................... 172 6.3.3 カウンタステータスレジスタ 0/1(CSR 0, CSR1) .................................................... 173 6.3.4 アップダウンカウントレジスタ 0/1(UDCR0, UDCR1) ............................................ 175 6.3.5 リロード / コンペアレジスタ 0/1(RCR 0, RCR1)..................................................... 176 6.4 カウントモード選択の動作................................................................................................. 177 6.5 リロード / コンペア機能の動作 .......................................................................................... 180 6.6 アップダウンカウントレジスタ (UDCR0, UDCR1) へのデータの書込み .......................... 183 第7章 16 ビットリロードタイマ ...................................................................... 185 7.1 16 ビットリロードタイマの概要 ........................................................................................ 186 7.2 16 ビットリロードタイマのブロックダイヤグラム ........................................................... 187 7.3 16 ビットリロードタイマのレジスタ一覧.......................................................................... 188 7.3.1 コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) ..................................... 189 7.3.2 16 ビットタイマレジスタ (TMR0 ∼ TMR3)/16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) ....................................................................................................................... 191 7.4 7.5 7.6 第8章 内部クロック動作 ............................................................................................................... 192 アンダフロー動作 ............................................................................................................... 193 カウンタの動作状態 ........................................................................................................... 195 PPG タイマ ............................................................................................ 197 8.1 PPG タイマの概要.............................................................................................................. 198 8.2 PPG タイマのブロックダイヤグラム................................................................................. 199 8.3 PPG タイマのレジスタ ...................................................................................................... 201 8.3.1 コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) ............ 203 8.3.2 PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) .......................................................... 207 8.3.3 PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) ................................................ 208 8.3.4 PWM タイマレジスタ (PTMR0 ∼ PTMR5).............................................................. 209 8.3.5 ジェネラルコントロールレジスタ 1(GCN1) ............................................................ 210 8.3.6 ジェネラルコントロールレジスタ 2(GCN2) ............................................................ 213 8.4 PWM 動作........................................................................................................................... 214 8.5 ワンショット動作 ............................................................................................................... 216 8.6 PWM タイマの割込み要因とタイミングチャート.............................................................. 218 8.7 ジェネラルコントロールレジスタを使った複数チャネルの起動 ....................................... 220 第9章 多機能タイマ.......................................................................................... 221 9.1 多機能タイマの概要 ........................................................................................................... 222 9.2 多機能タイマのブロックダイヤグラム............................................................................... 224 9.3 多機能タイマのレジスタ .................................................................................................... 225 9.3.1 16 ビットフリーランタイマのレジスタ ................................................................... 226 9.3.2 アウトプットコンペアのレジスタ............................................................................ 229 9.3.3 インプットキャプチャのレジスタ............................................................................ 232 9.4 多機能タイマユニットの動作 ............................................................................................. 234 9.4.1 16 ビットフリーランタイマ部 ................................................................................. 235 9.4.2 16 ビットアウトプットコンペア.............................................................................. 237 ix 9.4.3 16 ビットインプットキャプチャ.............................................................................. 239 第 10 章 外部割込み制御部 .................................................................................. 241 10.1 外部割込み制御部の概要 .................................................................................................... 242 10.2 外部割込み制御部のレジスタ ............................................................................................. 243 10.2.1 割込み許可レジスタ (ENIR0, ENIR1)....................................................................... 244 10.2.2 外部割込み要因レジスタ (EIRR0, EIRR1) ............................................................... 245 10.2.3 外部割込み要求レベル設定レジスタ (ELVR0,ELVR1)............................................. 246 10.3 外部割込み制御部の動作 .................................................................................................... 247 10.4 外部割込み要求レベル........................................................................................................ 248 第 11 章 遅延割込みモジュール ........................................................................... 249 11.1 遅延割込みモジュールの概要 ............................................................................................. 250 11.2 遅延割込み制御レジスタ (DICR) ........................................................................................ 251 11.3 遅延割込みモジュールの動作 ............................................................................................. 252 第 12 章 割込みコントローラ............................................................................... 253 12.1 割込みコントローラの概要................................................................................................. 254 12.2 割込みコントローラのブロックダイヤグラム.................................................................... 255 12.3 割込み制御のレジスタ........................................................................................................ 256 12.3.1 割込み制御レジスタ (ICR00 ∼ ICR47) .................................................................... 258 12.3.2 ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL).................................. 259 12.4 優先順位判定 ...................................................................................................................... 260 12.5 スタンバイモード ( ストップ / スリープ ) からの復帰 ....................................................... 263 12.6 ホールドリクエスト取下げ要求 ......................................................................................... 264 12.7 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 ..................................................... 265 第 13 章 8/10 ビット A/D コンバータ................................................................... 269 13.1 8/10 ビット A/D コンバータの概要 .................................................................................... 270 13.2 8/10 ビット A/D コンバータのブロックダイヤグラム........................................................ 271 13.3 8/10 ビット A/D コンバータの端子 .................................................................................... 273 13.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 275 13.4.1 A/D 制御ステータスレジスタ 1(ADCS1).................................................................. 276 13.4.2 A/D 制御ステータスレジスタ 0(ADCS0).................................................................. 278 13.4.3 A/D データレジスタ (ADCR) .................................................................................... 281 13.5 割込み ................................................................................................................................. 283 13.6 8/10 ビット A/D コンバータの動作 .................................................................................... 284 13.7 A/D 変換データ保護機能 .................................................................................................... 287 13.8 8/10 ビット A/D コンバータの使用上の注意 ...................................................................... 288 第 14 章 8 ビット D/A コンバータ........................................................................ 289 14.1 8 ビット D/A コンバータの概要 ......................................................................................... 290 14.2 8 ビット D/A コンバータのブロックダイヤグラム............................................................. 291 14.3 8 ビット D/A コンバータのレジスタ .................................................................................. 292 14.3.1 D/A コントロールレジスタ (DACR0, DACR1, DACR2)........................................... 293 14.3.2 D/A データレジスタ (DADR2, DADR1, DADR0)...................................................... 294 14.4 8 ビット D/A コンバータの動作説明 .................................................................................. 295 x 第 15 章 UART ..................................................................................................... 297 15.1 UART の概要 ...................................................................................................................... 298 15.2 UART のブロックダイヤグラム ......................................................................................... 300 15.3 UART の端子 ...................................................................................................................... 302 15.4 レジスタ ............................................................................................................................. 304 15.4.1 制御レジスタ (SCR0 ∼ SCR3) ................................................................................ 305 15.4.2 モードレジスタ (SMR0 ∼ SMR3)............................................................................ 307 15.4.3 ステータスレジスタ (SSR0 ∼ SSR3)...................................................................... 309 15.4.4 インプットデータレジスタ (SIDR0 ∼ SIDR3), アウトプットデータレジスタ (SODR0 ∼ SODR3) ...................................................................................................... 311 15.4.5 通信プリスケーラコントロールレジスタ (CDCR) ................................................... 313 15.5 UART の割込み................................................................................................................... 315 15.6 受信割込み発生とフラグセットのタイミング.................................................................... 317 15.7 送信割込み発生とフラグセットのタイミング.................................................................... 318 15.8 ボーレート.......................................................................................................................... 319 15.8.1 専用ボーレートジェネレータによるボーレート ...................................................... 321 15.8.2 内部タイマ (16 ビットリロードタイマ 0) によるボーレート................................... 324 15.8.3 外部クロックによるボーレート ............................................................................... 326 15.9 UART の動作 ...................................................................................................................... 327 15.9.1 非同期モード ( 動作モード 0, 1) 時の動作................................................................ 329 15.9.2 同期モード ( 動作モード 2) 時の動作 ....................................................................... 332 15.9.3 双方向通信機能 ( ノーマルモード ) .......................................................................... 334 15.9.4 マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 336 15.10 UART の使用上の注意........................................................................................................ 338 第 16 章 DMA コントローラ (DMAC) .................................................................. 339 16.1 DMA コントローラの概要 .................................................................................................. 340 16.2 DMA コントローラのブロックダイヤグラム...................................................................... 341 16.3 DMA コントローラのレジスタ ........................................................................................... 342 16.3.1 DMAC パラメータディスクリプタポインタ (DPDP) ............................................... 343 16.3.2 DMAC コントロールステータスレジスタ (DACSR) ................................................ 344 16.3.3 DMAC 端子コントロールレジスタ (DATCR) ........................................................... 346 16.3.4 RAM 上のディスクリプタ内レジスタ ...................................................................... 348 16.4 DMA コントローラの転送モード........................................................................................ 351 16.4.1 ステップ転送 ( シングル / ブロック転送 ) ................................................................ 354 16.4.2 連続転送 ................................................................................................................... 355 16.4.3 バースト転送 ............................................................................................................ 356 16.4.4 DREQ センスモードによる違い............................................................................... 357 16.5 転送受付信号出力と転送終了信号出力............................................................................... 359 16.6 DMA コントローラに関する注意事項 ................................................................................ 360 16.7 DMA コントローラのタイミング図 .................................................................................... 362 16.7.1 ディスクリプタアクセス部のタイミング図 ............................................................. 363 16.7.2 データ転送部のタイミング図................................................................................... 365 16.7.3 連続転送モードでの転送停止タイミング図 ............................................................. 366 16.7.4 転送の終了動作タイミング図................................................................................... 368 第 17 章 ビットサーチモジュール........................................................................ 371 17.1 ビットサーチモジュールの概要 ......................................................................................... 372 17.2 ビットサーチモジュールのレジスタ .................................................................................. 373 xi 17.3 ビットサーチモジュールの動作と退避 / 復帰処理 ............................................................. 375 第 18 章 周辺ストップ制御 .................................................................................. 379 18.1 周辺ストップ制御の概要 .................................................................................................... 380 18.2 周辺ストップ制御のレジスタ ............................................................................................. 381 第 19 章 シリアル起動.......................................................................................... 385 19.1 シリアル起動の概要と設定方法 ......................................................................................... 386 19.2 シリアル起動の通信モード................................................................................................. 387 付録 ............................................................................................................... 399 付録 A I/O マップ............................................................................................... 400 付録 B 割込みベクタ.......................................................................................... 407 付録 C 各 CPU ステートにおける端子状態 ....................................................... 410 付録 D リトルエンディアン領域を利用する際の注意事項 ................................ 417 C コンパイラ (fcc911) ............................................................................................................... 418 アセンブラ (fasm911) ............................................................................................................... 421 リンカ (flnk911) ......................................................................................................................... 423 デバッガ (sim911, eml911, mon911) ........................................................................................ 424 付録 E 命令一覧................................................................................................. 425 FR ファミリの命令一覧表 ......................................................................................................... 429 索引 ............................................................................................................... 443 xii 本版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) - レジスタ名を変更 ( カウンタ制御レジスタ ハイ / ロウ ch0(CCR H/L ch0) →カウンタコントロールレジ スタ H/L ch0(CCRH0/CCRL0)) ( カウンタ制御レジスタ ハイ / ロウ ch1(CCR H/L ch1) →カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1)) ( 割込み許可レジスタ (ENIRn) →割込み許可レジスタ (ENIR0, ENIR1)) ( 外部割込み要因レジスタ (EIRRn) →外部割込み要因レジスタ (EIRR0, EIRR1)) ( アナログ入力許可レジスタ (AICK) →アナログ入力許可レジスタ (AICR)) (D/A コンバータデータレジスタ 0(DADR0) → D/A データレジスタ 0(DADR0)) (D/A コンバータデータレジスタ 1(DADR1) → D/A データレジスタ 1(DADR1)) ( 通信プリスケーラ制御レジスタ (CDCR) →通信プリスケーラコントロールレジス タ (CDCR)) - 端子名を変更 (DREQn → DREQ0 ∼ DREQ2) (DACKn → DACK0 ∼ DACK2) (DACKn → DREQ0 ∼ DREQ2) (WRn → WR0, WR1) (DEOPn → DEOP0 ∼ DEOP2) 2 ● バスインタフェース を変更 (16 ビットアドレス出力→ 24 ビットアドレス出力 ) 4 図 1.2-1 ブロックダイヤグラム (MB91V151A, MB91151A) を変更 11 表 1.5-1 端子機能一覧 (2 / 7) Pin No.55 を変更 ( 外部リセット出力→外部リセット入力です。) 12 表 1.5-1 端子機能一覧 (3 / 7) Pin No.69 ∼ 74 を変更 15 表 1.5-1 端子機能一覧 (6 / 7) Pin No.116 を変更 (DMA 外部転送終了出力が禁止の場合 , ポートとして使用できます。の文を追加 ) 16 表 1.5-1 端子機能一覧 (7 / 7) Pin No.132 ∼ 139 を変更 (AIC レジスタ→ AICR レジスタ ) 18 表 1.6-1 入出力回路形式 (2 / 3) 分類 N を変更 (AIC の対応する→ AICR の対応する ) 23 ● 水晶発振回路について を変更 ( 各量産品において,ご使用される発振子メーカに発振評価依頼をしてください。の 文を追加 ) 24 ■ ウォッチドッグタイマ機能について を追加 25 ● 電源電圧不安定 , もしくは電源遮断時の扱いについて を追加 28 図 3.1-1 MB91V151A, MB91151A のメモリマップ を変更 76 [ ビット 7 ∼ビット 0] D7 ∼ D0 を変更 ( ただし , ストップ , スリープ時は自動的にクリアを行いますので , これらの条件が 発生すると , ウォッチドッグリセットは自動的に延期されます。の文を削除 ) xiii ページ 変更内容(詳細は本文を参照してください。) 79 図 3.12-3 ウォッチドッグ制御部のブロックダイヤグラム を変更 (WTx → WT1,WT0) 80 ■ プログラム以外のリセット延期要因 を追加 81 図 3.12-6 ギア制御部のブロックダイヤグラム を変更 87 ■ アセンブラのソース例 (PLL 系への切換え動作の例 ) を変更 (DBLACK → DBLAK) 123,127 図 4.4-9 外部デバイスとの接続例 , 図 4.4-15 外部デバイスとの接続例 (16 ビットバス 幅 ) および 図 4.4-16 外部デバイスとの接続例 (8 ビットバス幅 ) を変更 (MB91151 → MB91151A) 143 【動作説明】を変更 ( 自動ウェイトサイクル中は RDY の検出はせず , 自動ウェイトサイクル後検出しま す。→自動ウェイトの最終サイクルから RDY を検出します。) 150 ■ I/O ポートのレジスタ を変更 ( オープンドレイン制御レジスタ (ODCR) →オープンドレイン制御レジスタ (OCR)) 151 <注意事項> を変更 (AICK(Analog Input Control register on port-K) → AICR (Analog Input Control register)) 166 図 6.2-1 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch0) を 変更 167 図 6.2-2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch1) を 変更 168 図 6.3-1 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 を変更 175 ■ アップダウンカウントレジスタ 0/1(UDCR 0, UDCR1) を変更 (D17 D16 D15 D14 D13 D12 D11 D10 → D15 D14 D13 D12 D11 D10 D09 D08) 176 ■ リロード / コンペアレジスタ 0/1(RCR 0, RCR1) を変更 (D17 D16 D15 D14 D13 D12 D11 D10 → D15 D14 D13 D12 D11 D10 D09 D08) 179 ● 4 逓倍モード を変更 (USS1,USS0,DSS1,DSS0 による→ CCRH の CES1, CES0 による ) 183 表 6.6-1 ZIN 端子機能選択 を変更 187 図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム を変更 200 図 8.2-2 PPG タイマ 1 チャネル分のブロックダイヤグラム を変更 (CK →クロック ) 201,202 図 8.3-1 PPG タイマのレジスタ一覧 を変更 203 [ ビット 14] STGR: ソフトウェアトリガビット を変更 (TGR → STGR) 224 図 9.2-1 多機能タイマのブロックダイヤグラム を変更 227 [ ビット 4] MODE を変更 (bit3:CLR →ビット 3:SCLR) 229 ■ コンペアレジスタ (OCCP0 ∼ OCCP7) に<注意事項> を追加 230 [ ビット 9, ビット 8] ODT1, ODT0 を変更 ( アウトプットコンペアレジスタ→コンペアレジスタ ) xiv ページ 変更内容(詳細は本文を参照してください。) 231 <注意事項> を変更 ( アウトプットコンペアレジスタ→コンペアレジスタ ) 232 [ ビット 7, ビット 6] ICP3, ICP2, ICP1, ICP0 を変更 ([bit 15,14,7,6] → [ ビット 7, ビット 6]) 233 [ ビット 5, ビット 4] ICE3, ICE2, ICE1, ICE0 を変更 ([bit 13,12,5,4] → [ ビット 5, ビット 4]) 233 [ ビット 3 ∼ビット 0] EG31/EG30, EG21/EG20, EG11/EG10, EG01/EG00 を変更 ([bit 11-8,3-0] → [ ビット 3 ∼ビット 0]) 237 図 9.4-5 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期は "0") お よび 図 9.4-6 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0") を変更 (RTO0 →アウトプットコンペア 0) (RTO1 →アウトプットコンペア 1) 238 <注意事項> を変更 ( アウトプットコンペアレジスタ→コンペアレジスタ ) 239 図 9.4-8 16 ビットインプットキャプチャの取込みタイミング例 を変更 243 図 10.2-1 外部割込み制御部のレジスタ一覧 を変更 246 表 10.2-1 外部割込み要求レベル設定表 を変更 (LBx → LB15 ∼ LB0) (Lax → LA15 ∼ LA0) 247 図 10.3-1 外部割込みの動作 を変更 (IL →割込みレベル ) 247 ■ 外部割込みの動作手順 を変更 (1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポート に設定する。の文を追加 ) 255 図 12.2-1 割込みコントローラのブロックダイヤグラム を変更 (RI00 →リソース割込み 00) (RI47 →リソース割込み 47) (HLDREQ →ホールドリクエスト ) 256,257 12.3 割込み制御のレジスタ を変更 ( 割込みコントローラのレジスタ→割込み制御のレジスタ ) 260,261 表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 を変更 265 図 12.7-1 ホールドリクエスト取下げ要求信号の流れ を変更 271 図 13.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム を変更 (AVR ±→ AVRH AVRL) 274 図 13.3-1 PK0/AN0 ∼ PK7/AN7 端子のブロックダイヤグラム を変更 (ADER → AICR) ((SPL=1) を削除 ) 276 図 13.4-2 A/D 制御ステータスレジスタ 1(ADCS1) のレジスタ構成と機能概要 を変更 280 <注意事項> を追加 281 図 13.4-4 A/D データレジスタ (ADCR) のレジスタ構成と機能概要 を変更 (AD データビット→ A/D 変換分解能選択ビット ) xv ページ 変更内容(詳細は本文を参照してください。) 288 ● アナログ入力端子 を変更 294 ■ D/A データレジスタ (DADR2, DADR1, DADR0) を変更 ([bit 23 ∼ 16] DADR2 → [ ビット 23 ∼ビット 16] DA27 ∼ DA20) ([bit 15 ∼ 8] DADR1 → [ ビット 15 ∼ビット 8] DA17 ∼ DA10) ([bit 7 ∼ 0] DADR0 → [ ビット 7 ∼ビット 0] DA07 ∼ DA00) 306 [ ビット 10] REC: 受信エラーフラグクリアビット を変更 (FRE,DRE,PE → FRE, ORE, PE) 314 <注意事項> を追加 322 表 15.8-2 同期ボーレート分周比の選択 および 表 15.8-3 非同期ボーレート分周比の 選択 を変更 (SCKI の列を削除 ) 322 <注意事項> を追加 323 ● 内部タイマ の <注意事項> を削除 326 ■ 外部クロックによるボーレート を変更 (・外部クロックを入力するポートを入力設定にする。を追加 ) 329 ● 転送データフォーマット を変更 ( 動作モード 0 では , パリティなしのときのデータは 7 ビット長 , パリティありのと きのデータは 8 ビット長に固定されています。→動作モード 0 のノーマルモードで は , データ長は 7 ビットまたは 8 ビットに設定が可能です。) 335 図 15.9-8 双方向通信フローの例 を変更 (UODR → SODR) 344,345 ■ DMAC コントロールステータスレジスタ (DACSR) を変更 (DERn → DER7 ∼ DER0) (DEDn → DED7 ∼ DED0) (DIEn → DIE7 ∼ DIE0) (DOEn → DOE7 ∼ DOE0) 346,347 ■ DMAC 端子コントロールレジスタ (DATCR) を変更 (LSn1,LSn0 → LS21, LS20, LS11, LS10, LS01, LS00) (AKSEn → AKSE2 ∼ AKSE0) (AKDEn → AKDE2 ∼ AKDE0) (EPSEn → EPSE2 ∼ EPSE0) (EPDEn → EPDE2 ∼ EPDE0) 401 ∼ 406 付表 A-1 I/O マップ を変更 407 ∼ 409 付表 B-1 割込みベクタ を変更 xvi 第1章 概要 この章では , MB91151A の特長 , ブロックダイヤグ ラム , 機能概要など全体を知るための基本的なこと について説明します 。 1.1 特長 1.2 ブロックダイヤグラム 1.3 外形寸法図 1.4 端子配列 1.5 端子機能説明 1.6 入出力回路形式 1 第 1 章 概要 1.1 特長 MB91151A は 32 ビット RISC ∼ CPU(FR30) をコアとした , CD/DVD 用のマイクロ コントローラです。 ■ MB91151A の特長 ● CPU • 32 ビット RISC(FR30), ロード / ストアアーキテクチャ , 5 段パイプライン • 汎用レジスタ :32 ビット× 16 本 • 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル • メモリ - メモリ間転送 , ビット処理 , バレルシフト等の命令 : 組込み用途に適した命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロード / ストア命令 : 高級言語対応命令 • レジスタインターロック機能 : アセンブラ記述の容易化 • 遅延スロット付分岐命令 : 分岐処理時のオーバヘッドの低減 • 乗算器の内蔵 / 命令レベルでのサポート - 符号付 32 ビット乗算 :5 サイクル - 符号付 16 ビット乗算 :3 サイクル - 割込み (PC, PS の退避 ):6 サイクル , 16 プライオリティレベル ● バスインタフェース • 24 ビットアドレス出力 , 8/16 ビットデータ入出力 • 基本バスサイクル :2 クロックサイクル • 各種メモリに対するインタフェースのサポート • 未使用データ / アドレス端子は , 入出力ポートとして使用可能 • リトルエンディアンモードサポート ● 内蔵 RAM • 命令 RAM:2K バイト • データ RAM:32K バイト ● DMAC • 転送パラメータを主記憶上に配置するディスクリプタ形式の DMAC • 内部と外部合わせて最大 8 要因の転送が可能 • 外部要因は 3 チャネル ● ビットサーチモジュール 1 ワード中の MSB からの最初の 1/0 に変化ビットの位置を 1 サイクルでサーチ 2 第 1 章 概要 ● タイマ • 16 ビット :OCU × 8 チャネル , ICU × 4 チャネル , フリーランタイマ× 1 チャネル • 8/16 ビット : アップダウンタイマ / カウンタ (8 ビット× 2 チャネルまたは 16 ビット × 1 チャネル ) • 16 ビット :PPG タイマ× 6 チャネル , 出力パルスの周期・デューティを任意に可変 が可能 • 16 ビット : リロードタイマ× 4 チャネル ● D/A コンバータ 8 ビット× 3 チャネル ● A/D コンバータ ( 逐次比較型 ) • 10 ビット× 8 チャネル • 逐次変換方式 ( 変換時間 5.0 µs@33MHz) • シングル変換・スキャン変換の選択ができ , 単発 / 連続 / 停止変換モードの設定が可能 • ハード / ソフトによる変換スタート機能 ● シリアル I/O • UART × 4 チャネル , いずれも LSB/MSB 切換え機能付きクロック同期シリアル転送 が可能 • シリアルデータ出力およびシリアルクロック出力はプッシュプル / オープンドレイ ンのソフトウェアによる選択が可能 • 専用ボーレートジェネレータとして16ビットタイマ(U-Timer) 内蔵:任意のボーレー トを発生 ● クロック切換え機能 ギア機能 : 基本クロックに対する動作クロック比を CPU および周辺のそれぞれで独 立に 1:1, 1:2, 1:4, 1:8 の 4 種から設定可能 ● 割込みコントローラ • 外部割込み入力 ( 合計 16 チャネル ) 立上り / 立下り /"H" レベル /"L" レベルの設定が可能 • 内部割込み要因 リソースによる割込み , 遅延割込み ● その他の特長 • リセット要因 パワーオンリセット / ウォッチドッグタイマ / ソフトウェアリセット / 外部リセット • 低消費電力モード スリープモード / ストップモード • パッケージ PGA-299(MB91V151A) LQFP-144(MB91151A) • CMOS テクノロジ (0.35 µm) • 電源 3.15V ∼ 3.6V 3 第 1 章 概要 ブロックダイヤグラム 1.2 ここでは , MB91151A のブロックダイヤグラムを示します。 ■ MB91V151A, MB91151A のブロックダイヤグラム 図 1.2-1 に , MB91V151A, MB91151A のブロックダイヤグラムを示します。 図 1.2-1 ブロックダイヤグラム (MB91V151A, MB91151A) MODE (4) ~ MD0 MD1 MD2 RST PORT3/2( ) ~ ~ ~ PORT I(6) UART 4チャネル U-Timer 4チャネル 外部バス CTL 16ビット リロードタイマ RAM 2Kバイト 16ビット フリーランタイマ 1チャネル PI0/SIN2 PI1/SOT2 PI2/SCK2/T02 PI3/SIN3 PI4/SOT3 PI5/SCK3/T03 6チャネル PORT J (2 ) 16ビット PPG クロック制御 4チャネル 16ビット アウトプットキャプチャ 割込み コントローラ 16チャネル 8ビット 3アウトプット D/Aコンバータ DA(3) 外部割込み 10ビット 8インプット A/Dコンバータ PORT F(5) 8ビット アップダウン カウンタ 2チャネル 8チャネル PORT K(8) インプットキャプチャ PORT C(8) 4 PH0/SIN0 PH1/SOT0 PH2/SCK0/T00 PH3/SIN1 PH4/SOT1 PH5/SCK1/T01 Output Compare PPG UART TOX: Reload Timer PJ0 PJ1 16ビット OSC (2) PORT D(8) 外部割込み PL7/DACK2 PL6/DREQ2 PL5/DEOP1 PL4/DACK1 PL3/DREQ1 PL2/DEOP0(O) PL1/DACK0(O) PL0/DREQ0(I) PD7/INT15/ATG(I) PD6/INT14/DEOP2 PD5/INT13/ZIN1/TRG5 PD4/INT12/ZIN0/TRG4 PD3/INT11/BIN1/TRG3 PD2/INT10/AIN1/TRG2 PD1/INT9/BIN0(I)/TRG1 PD0/INT8/AIN0(I)/TRG0 PC7/INT7/CS3 PC6/INT6/CS2 PC5/INT5/CS1 PC4/INT4/CS0 PC3/INT3 PC2/INT2 PC1/INT1 PC0/INT0(I) C-bus 4チャネル PORT L(8) アップダウン カウンタ PORT 8(7) A/D DMAC R-bus D-bus I-bus P86/CLK(O) P85/WR1(O) P84/WR0 P83/RD(O) P82/BRQ(I) P81/BGRNT(O) P80/RDY(I) X0 (I) X1 (I) D-bus PG5/PPG5 PG4/PPG4 PG3/PPG3 PG2/PPG2 PG1/PPG1 PG0/PPG0 PORT H(6) ~ Clock ビットサーチ PE7/OC7 PE6/OC6 PE5/OC5 PE4/OC4 PE3/OC3 PE2/OC2 PE1/OC1 PE0/OC0 PORT G(6) ~ ~ DMAC DMAC 8チャネル 24 P40/A00 Bus Control 32Kバイト PORT6/5/ 4 ( ) ~ P50/A08 P47/A07 データRAM 16 P60/A16 P57/A15 Address 1Kバイト PORT E(8) P30/D24 P27/D23 P20/D16 P67/A23(O) D-bus I-bus 命令 キャッシュ P37/D31(IO) DATA FR30 CPU コア PK0/AN0 PK1/AN1 PK2/AN2 PK3/AN3 PK4/AN4 PK5/AN5 PK6/AN6 PK7/AN7 PF4 PF3/IN3 PF2/IN2 PF1/IN1 PF0/IN0 DA2 DA1 DA0 A/D Input Capture 第 1 章 概要 1.3 外形寸法図 MB91151A には , 2 種類のパッケージが用意されています。 ■ PGA-299C-A01 の外形寸法図 図 1.3-1 PGA-299C-A01 の外形寸法図 リードピッチ セラミック・PGA, 299ピン 2.54mm(100mil) 20 ピンマトリックス 封止方法 メタルシール (PGA-299C-A01) セラミック・PGA, 299ピン (PGA-299C-A01) 2.41±0.10 (.095±.004) 1.65±0.10 (.065±.004) 0.46 +- 0.13 0.05 (.018 +- .005 .002 ) 30.48±0.31 (1.200±.012) 35.56±0.41 (1.400±.016) INDEX AREA 3.94±0.10 (.155±.004) 52.32±0.56 SQ (2.060±.022) 5.59 (.220) MAX 1994 FUJITSU LIMITED R299001SC-2-2 2.54 (.100) MAX 1.27 (.050) DIA TYP (4 PLCS) 48.26 (19.00) REF 2.54±0.25 (.100±.010) 1.27±0.25 (.050±.010) + .016 3.40 +- 0.41 0.36 (.134 - .014 ) INDEX AREA 単位:mm(inches) 注意:括弧内の値は参考値です。 5 第 1 章 概要 ■ FPT-144P-M08 の外形寸法図 図 1.3-2 FPT-144P-M08 の外形寸法図 プラスチック・LQFP, 144 ピン (FPT-144P-M08) プラスチック・LQFP, 144 ピン (FPT-144P-M08) リードピッチ 0.50mm パッケージ幅× パッケージ長さ 20.0 × 20.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX 質量 1.20g コード(参考) P-LFQFP144-20×20-0.50 注 1)* 印寸法はレジン残りを含まず。レジン残りは, 片側 +0.25(.010)MAX 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 22.00±0.20(.866±.008)SQ * 20.00±0.10(.787±.004)SQ 108 0.145±0.055 (.006±.002) 73 109 72 0.08(.003) Details of "A" part +0.20 1.50 –0.10 +.008 .059 –.004 0 ~8 INDEX 144 37 "A" LEAD No. 1 36 0.50(.020) C 6 2003 FUJITSU LIMITED F144019S-c-4-6 0.22±0.05 (.009±.002) 0.08(.003) 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) (Mounting height) 0.10±0.10 (.004±.004) (Stand off) 0.25(.010) M 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 端子配列 1.4 ここでは , MB91151A の端子配列をパッケージ別に示します。 ■ MB91V151A(PGA-299C-A01) の端子配列 図 1.4-1 に , MB91V151A(PGA-299C-A01) の端子配列を示します。また , この配列の端 子番号の対応表を , 表 1.4-1 に示します。 図 1.4-1 端子配列 (MB91V151A(PGA-299C-A01)) 3 299 296 293 277 274 270 268 278 275 262 254 247 257 252 250 245 233 230 224 2 298 292 289 286 283 280 276 269 264 263 258 251 248 243 240 237 234 225 221 5 10 4 297 291 287 284 279 271 265 261 256 249 242 239 235 229 228 219 218 8 13 6 300 295 290 285 281 272 267 259 255 246 241 236 231 226 223 215 207 25 16 11 7 1 288 282 273 266 260 253 244 238 232 227 222 217 212 202 27 19 15 12 9 220 216 213 209 199 32 23 18 17 14 214 211 210 205 195 34 26 24 21 20 208 206 204 201 203 22 33 31 30 28 198 197 196 194 200 29 39 38 35 36 192 193 191 190 187 37 40 41 43 42 186 185 188 189 179 50 44 46 47 48 178 180 181 183 172 53 51 54 56 58 170 171 174 176 184 45 55 60 61 64 164 167 168 173 182 49 59 63 66 70 159 162 165 169 177 52 62 67 72 77 82 88 94 103 110 116 123 133 139 145 153 157 161 166 175 57 65 73 76 81 86 91 96 105 109 117 122 131 136 141 147 151 156 163 158 68 69 78 79 85 89 92 99 106 111 115 121 129 135 138 142 148 154 160 155 71 75 84 87 90 93 98 101 108 113 114 119 126 130 134 137 140 144 150 152 74 80 83 95 100 102 107 97 104 112 125 128 118 120 124 127 132 143 146 149 294 PGA-299C-A01 (Bottom View) 7 第 1 章 概要 表 1.4-1 端子番号対応表 (MB91V151A(PGA-299C-A01) No. 端子名 1 P20/D16 8 2 3 4 VSS OPEN P21/D17 No. 端子名 51 P81/BGRNT 52 P82/BRQ 53 VCC 54 P83/RD No. 端子名 101 PK1/AN1 No. 端子名 151 PD4/INT12/ZIN0 No. 端子名 201 OPEN No. 端子名 251 OPEN 102 PK2/AN2 103 PK3/AN3 104 OPEN 152 VSS 153 PD5/INT13/ZIN1 154 PD6/INT14/DEOP2 202 OPEN 203 VCC 204 IHIT3 252 OPEN 253 OPEN 254 VCC 5 VCC 55 P84/WR0 105 PK4/AN4 6 P22/D18 56 106 PK5/AN5 206 IHIT1 256 MODEN2 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 P23/D19 VSS P24/D20 P25/D21 P26/D22 P27/D23 P30/D24 P31/D25 P32/D26 P33/D27 P34/D28 P35/D29 P36/D30 P37/D31 P40/A00 VCC P41/A01 P42/A02 P43/A03 P44/A04 P45/A05 P46/A06 VSS P47/A07 P50/A08 P51/A09 P52/A10 P53/A11 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 P85/WR1 P86/CLK PL0/DREQ0 PL1/DACK0 PL2/DEOP0 PL3/DREQ1 PL4/DACK1 PL5/DEOP1 PL6/DREQ2 PL7/DACK2 OPEN OPEN VCC OPEN OPEN VSS OPEN OPEN VCC OPEN MD0 MD1 MD2 VCC VSS X0 X1 VCC 155 VCC 156 PD7/INT15/ATG 205 IHIT2 255 MODEN3 PK6/AN6 PK7/AN7 DAVC DAVS DA0 VSS DA1 DA2 PH0/SIN0 PH1/SOT0 PH2/SCK0/TO0 PH3/SIN1 PH4/SOT1 PH5/SCK1/TO1 PI0/SIN2 PI1/SOT2 PI2/SCK2/TO2 PI3/SIN3 VCC PI4/SOT3 PI5/SCK3/TO3 VSS OPEN OPEN OPEN OPEN PJ0 PJ1 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 PE0/OC0 VSS PE1/OC1 PE2/OC2 PE3/OC3 PE4/OC4 PE5/OC5 PE6/OC6 PE7/OC7 VCC PF0/IN0 PF1/IN1 PF2/IN2 PF3/IN3 PF4 VCC PG0/PPG0 PG1/PPG1 PG2/PPG2 PG3/PPG3 PG4/PPG4 PG5/PPG5 VSS OPEN OPEN OPEN OPEN OPEN 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 IHIT0 OPEN OPEN OPEN VCC MOD31 MOD30 MOD29 MOD28 MOD27 MOD26 VSS MOD25 MOD24 VCC MOD23 MOD22 VSS MOD21 MOD20 MOD19 MOD18 MOD17 VCC MOD16 MOD15 VSS MOD14 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 MODEN1 MODEN0 OPEN OPEN OPEN VSS VCC OPEN OPEN OPEN VSS OPEN VCC OPEN OPEN OPEN OPEN OPEN VCC OPEN OPEN VSS OPEN OPEN OPEN OPEN OPEN OPEN 35 36 37 38 39 40 41 42 P54/A12 P55/A13 VCC P56/A14 P57/A15 P60/A16 P61/A17 P62/A18 85 86 87 88 89 90 91 92 RST OPEN ICLK ICS0 ICS1 ICS2 ICD0 ICD1 ICD2 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 VSS PC0/INT0 PC1/INT1 PC2/INT2 PC3/INT3 PC4/INT4/CS0 PC5/INT5/CS1 PC6/INT6/CS2 185 186 187 188 189 190 191 192 OPEN OPEN VCC OPEN OPEN OPEN MCLK 235 236 237 238 239 240 241 242 MOD13 MOD12 MOD11 MOD10 MOD9 VCC MOD8 MOD7 285 286 287 288 289 290 291 292 OPEN VCC OPEN OPEN OPEN OPEN OPEN OPEN 43 44 45 46 47 48 49 50 P63/A19 P64/A20 P65/A21 P66/A22 P67/A23 P80/RDY VCC VSS 93 94 95 96 97 98 99 100 ICD3 BREAK AVCC AVRH VSS AVRL AVSS PK0/AN0 143 144 145 146 147 148 149 150 VCC PC7/INT7/CS3 PD0/INT8/AIN0 VSS PD1/INT9/BIN0 PD2/INT10/AIN1 VCC PD3/INT11/BIN1 193 194 195 196 197 198 199 200 243 244 245 246 247 248 249 250 MOD6 MOD5 MOD4 MOD3 VSS MOD2 MOD1 MOD0 293 294 295 296 297 298 299 300 VCC OPEN OPEN VSS OPEN OPEN VCC OPEN MRST VCC DHIT5 DHIT4 DHIT3 DHIT2 DHIT1 DHIT0 VSS 第 1 章 概要 ■ MB91151A(FPT-144P-M08) の端子配列 図 1.4-2 に , MB91151A(FPT-144P-M08) の端子配列を示します。 DA0 DA1 DA2 VCC PL7/DACK2 PL6/DREQ2 PL5/DEOP1 PL4/DACK1 PL3/DREQ1 PL2/DEOP0 PL1/DACK0 PL0/DREQ0 PH0/SIN0 PH1/SOT0 PH2/SCK0/TO0 PH3/SIN1 PH4/SOT1 122 121 120 119 118 117 116 115 114 113 112 111 110 109 128 127 DAVC DAVS AVSS 131 130 129 126 125 124 123 OPEN VCC PK7/AN7 PK6/AN6 PK5/AN5 PK4/AN4 PK3/AN3 PK2/AN2 PK1/AN1 PK0/AN0 AVRL AVRH AVCC OPEN 141 140 139 138 137 136 135 134 133 132 OPEN VSS 144 143 142 図 1.4-2 端子配列 (MB91151A(FPT-144P-M08)) P20/D16 1 108 PH5/SCK1/TO1 P21/D17 2 107 PI0/SIN2 P22/D18 3 106 PI1/SOT2 P23/D19 4 105 PI2/SCK2/TO2 P24/D20 5 104 PI3/SIN3 P25/D21 6 103 PI4/SOT3 P26/D22 7 102 PI5/SCK3/TO3 P27/D23 8 101 VSS VSS PJ0 9 100 P30/D24 10 99 PJ1 P31/D25 11 98 VSS P32/D26 12 97 VCC P33/D27 13 96 PG5/PPG5 P34/D28 14 95 PG4/PPG4 P35/D29 15 94 PG3/PPG3 P36/D30 16 93 PG2/PPG2 92 PG1/PPG1 91 PG0/PPG0 P37/D31 17 P40/A00 18 P41/A01 19 90 PF4 P42/A02 20 89 P43/A03 21 88 PF3/IN3 PF2/IN2 P44/A04 22 87 PF1/IN1 P45/A05 23 86 PF0/IN0 P46/A06 24 85 PE7/OC7 P47/A07 25 84 PE6/OC6 VSS 26 83 PE5/OC5 VCC 27 82 PE4/OC4 P50/A08 28 81 PE3/OC3 P51/A09 29 80 PE2/OC2 P52/A10 30 79 PE1/OC1 P53/A11 31 78 PE0/OC0 P54/A12 32 77 VCC P55/A13 33 76 PD7/ATG/INT15 P56/A14 34 75 PD6/DEOP2/INT14 P57/A15 35 74 PD5/ZIN1/INT13/TRG5 P60/A16 36 73 PD4/ZIN0/INT12/TRG4 Top View PD2/AIN1/INT10/TRG2 PD3/BIN1/INT11/TRG3 69 70 71 72 68 VCC PD0/AIN0/INT8/TRG0 PD1/BIN0/INT9/TRG1 62 63 64 65 PC2/INT2 PC3/INT3 PC4/INT4/CS0 66 67 60 61 PC0/INT0 PC1/INT1 PC5/INT5/CS1 PC6/INT6/CS2 PC7/INT7/CS3 58 59 VSS 57 X1 X0 53 54 55 56 MD0 RST VCC 50 51 52 P85/WR1 P86/CLK MD2 MD1 40 41 42 43 44 45 46 47 48 49 P64/A20 P65/A21 P66/A22 P67/A23 VSS P80/RDY P81/BGRNT P82/BRQ P83/RD P84/WR0 37 38 39 P61/A17 P62/A18 P63/A19 FPT-144P-M08 9 第 1 章 概要 1.5 端子機能説明 表 1.5-1 に , MB91151A の端子の機能一覧を示します。 ■ 端子機能説明 表 1.5-1 端子機能一覧 (1 / 7) Pin No. 端子名 1 2 3 4 5 6 7 8 P20/D16 P21/D17 P22/D18 P23/D19 P24/D20 P25/D21 P26/D22 P27/D23 10 11 12 13 14 15 16 17 P30/D24 P31/D25 P32/D26 P33/D27 P34/D28 P35/D29 P36/D30 P37/D31 18 19 20 21 22 23 24 25 28 29 30 31 32 33 34 35 P40/A00 P41/A01 P42/A02 P43/A03 P44/A04 P45/A05 P46/A06 P47/A07 P50/A08 P51/A09 P52/A10 P53/A11 P54/A12 P55/A13 P56/A14 P57/A15 36 37 38 39 40 41 42 43 P60/A16 P61/A17 P62/A18 P63/A19 P64/A20 P65/A21 P66/A22 P67/A23 10 回路形式 機能説明 C 外部データバスのビット 16 ∼ビット 23 です。 外バス 16 ビットモードの場合のみ有効となります。 シングルチップおよび外バス 8 ビットモードの場合 は , ポートとして使用できます。 外部データバスのビット 24 ∼ビット 31 です。 シングルチップモードの場合は , ポートとして使用で きます。 C 外部アドレスバスのビット 0 ∼ビット 15 です。 外バスモードの場合に有効となります。 シングルチップモードの場合は , ポートとして使用で きます。 F 外部アドレスバスのビット 16 ∼ビット 23 です。 アドレスバスが未使用の場合は , ポートとして使用で きます。 O 第 1 章 概要 表 1.5-1 端子機能一覧 (2 / 7) Pin No. 端子名 45 P80/RDY 46 47 48 49 50 51 回路形式 機能説明 C 外部 RDY 入力です。 この機能は外部 RDY 入力が許可の場合に有効となり ます。 実行中のバスサイクルが完了しない場合に "0" を入力 します。 外部 RDY 入力が未使用の場合は , ポートとして使用 できます。 F 外部バス開放受付出力です。 この機能は外部バス開放受付出力が許可の場合に有 効となります。 外部バスを開放した場合に "L" を出力します。 外部バス開放受付出力が禁止の場合は , ポートとして 使用できます。 C 外部バス開放要求入力です。 この機能は外部バス開放要求入力が許可の場合に有 効となります。 外部バスを開放する場合に "1" を入力します。 外部バス開放要求入力が未使用の場合は , ポートとし て使用できます。 F 外部バスリードストローブ出力です。 この機能は外部バスリードストローブ出力が許可の 場合に有効となります。 外部バスリードストローブ出力が禁止の場合は , ポー トとして使用できます。 F 外部バスライトストローブ出力です。 この機能は外バスモードの場合に有効となります。 シングルチップモードの場合は , ポートとして使用で きます。 F 外部バスライトストローブ出力です。 この機能は外バスモードかつバス幅 16 ビットの場合 に有効となります。 シングルチップモードまたは外バス 8 ビットの場合 は , ポートとして使用できます。 F システムクロック出力です。 外部バス動作周波数と同じクロックを出力します。 未使用の場合は , ポートとして使用できます。 P81/BGRNT P82/BRQ P83/RD P84/WR0 P85/WR1 P86/CLK 52 53 54 MD2 MD1 MD0 G 55 RST B 外部リセット入力です。 57 58 X1 X0 A 高速クロック用発振端子です。 モード端子です。 VCC または VSS に直接つないで使用してください。 これらの端子により MCU の基本動作モードを設定し ます。 11 第 1 章 概要 表 1.5-1 端子機能一覧 (3 / 7) Pin No. 端子名 60 61 62 63 PC0/INT0 PC1/INT1 PC2/INT2 PC3/INT3 64 65 66 67 PC4/INT4/CS0 PC5/INT5/CS1 PC6/INT6/CS2 PC7/INT7/CS3 69 70 71 72 73 74 75 12 PD0/AIN0/INT8/ TRG0 PD1/BIN0/INT9/ TRG1 PD2/AIN1/INT10/ TRG2 PD3/BIN1/INT11/ TRG3 PD4/ZIN0/INT12/ TRG4 PD5/ZIN1/INT13/ TRG5 回路形式 機能説明 H 外部割込み要求入力の 0 ∼ 3 です。 対応する外部割込みを許可している間はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 このポートはスタンバイ時も入力が許可されますの で , スタンバイの解除用に使用できます。 外部割込み要求入力が未使用の場合は , ポートとして 使用できます。 H チップセレクト出力と外部割込み要求入力の 4 ∼ 7 の兼用です。 チップセレクト出力禁止時に外部割込み要求 , もしく はポートとして使用できます。 対応する外部割込みを許可している間はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 このポートはスタンバイ時も入力が許可されますの で , スタンバイの解除用に使用できます。 外部割込み要求入力 , チップセレクト出力が未使用の 場合は , ポートとして使用できます。 H 外部割込み要求入力の 8 ∼ 13 です。 対応する外部割込みを許可している間はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 [AIN0, AIN1 ,BIN0 ,BIN1 ,ZIN0 ,ZIN1] アップダウンタ イマの入力です。 [TRG0 ∼ TRG5] PPG 外部トリガの入力です。 入力を許可している場合はこの入力を随時使用して いますので , 意図的に行う以外はポートによる出力を 停止させておく必要があります。 外部割込み要求入力 , アップタイマカウンタの入力 , PPG の外部トリガの入力が未使用の場合は , ポート として使用できます。 H 外部割込み要求入力の 14 です。 対応する外部割込みを許可している間はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 [DEOP2] DMA 外部転送終了出力です。 この機能は DMAC の外部転送終了出力指定が許可の 場合に有効となります。 外部割込み要求入力 , DMA 外部転送終了出力として 未使用の場合は , ポートとして使用できます。 PD6/DEOP2/INT14 第 1 章 概要 表 1.5-1 端子機能一覧 (4 / 7) Pin No. 端子名 76 PD7/ATG/INT15 78 79 80 81 82 83 84 85 PE0/OC0 PE1/OC1 PE2/OC2 PE3/OC3 PE4/OC4 PE5/OC5 PE6/OC6 PE7/OC7 86 87 88 89 PF0/IN0 PF1/IN1 PF2/IN2 PF3/IN3 90 PF4 91 92 93 94 95 96 回路形式 機能説明 H 外部割込み要求入力の 15 です。 対応する外部割込みを許可している間はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 [ATG] A/D コンバータ外部トリガ入力です。 A/D の起動要因として選択した場合はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 外部割込み要求入力 , A/D コンバータ外部トリガ入力 として未使用の場合は , ポートとして使用できます。 アウトプットコンペアの出力です。 アウトプットコンペア出力指定が禁止の場合は , ポー トとして使用できます。 F F インプットキャプチャの入力です。 この機能はインプットキャプチャが入力動作の場合 に有効になります。 インプットキャプチャの入力が未使用の場合は , ポー トとして使用できます。 F 汎用の入出力ポートです。 PG0/PPG0 PG1/PPG1 PG2/PPG2 PG3/PPG3 PG4/PPG4 PG5/PPG5 F PPG タイマ出力です。 この機能は PPG タイマの出力指定が許可の場合に有 効になります。 PPG タイマの出力指定が禁止の場合は , ポートとし て使用できます。 99 PJ1 Q 汎用の入出力ポートです。 100 PJ0 Q 汎用の入出力ポートです。 102 PI5/SCK3/TO3 P UART3 のクロック入出力 , リロードタイマ 3 の出力 です。 UART3 のクロック出力禁止時 , リロードタイマ 3 の 出力許可を行うと , リロードタイマ 3 を出力すること ができます。 UART3 のクロック出力 , リロードタイマ出力を共に 禁止の場合は , ポートとして使用できます。 P UART3 のデータ出力です。 この機能は UART3 のデータ出力指定が許可の場合に 有効となります。 UART3 のクロック出力指定が禁止の場合は , ポート として使用できます。 103 PI4/SOT3 13 第 1 章 概要 表 1.5-1 端子機能一覧 (5 / 7) Pin No. 端子名 104 PI3/SIN3 105 106 107 108 109 110 14 回路形式 機能説明 P UART3 のデータ入力です。 UART3 が入力動作をしている間はこの入力を随時使 用していますので , 意図的に行う以外はポートによる 出力を停止させておく必要があります。 UART3 のデータ入力が未使用の場合は , ポートとし て使用できます。 P UART2 のクロック入出力 , リロードタイマ 2 の出力 です。 UART2 のクロック出力禁止時 , リロードタイマ 2 の 出力許可を行うと , リロードタイマ 2 を出力すること ができます。 UART2 のクロック出力 , リロードタイマ出力を共に 禁止の場合は , ポートとして使用できます。 P UART2 のデータ出力です。 この機能は UART2 のデータ出力指定が許可の場合に 有効となります。 UART2 のクロック出力指定が禁止の場合は , ポート として使用できます。 P UART2 のデータ入力です。 UART2 が入力動作をしている間はこの入力を随時使 用していますので , 意図的に行う以外はポートによる 出力を停止させておく必要があります。 UART2 のデータ入力が未使用の場合は , ポートとし て使用できます。 P UART1 のクロック入出力 , リロードタイマ 1 の出力 です。 UART1 のクロック出力禁止時 , リロードタイマ 1 の 出力許可を行うと , リロードタイマ 1 を出力すること ができます。 UART1 のクロック出力 , リロードタイマ出力を共に 禁止の場合は , ポートとして使用できます。 P UART1 のデータ出力です。 この機能は UART1 のデータ出力指定が許可の場合に 有効となります。 UART1 のクロック出力指定が禁止の場合は , ポート として使用できます。 P UART1 のデータ入力です。 UART1 が入力動作をしている間はこの入力を随時使 用していますので , 意図的に行う以外はポートによる 出力を停止させておく必要があります。 UART1 のデータ入力が未使用の場合は , ポートとし て使用できます。 PI2/SCK2/TO2 PI1/SOT2 PI0/SIN2 PH5/SCK1/TO1 PH4/SOT1 PH3/SIN1 第 1 章 概要 表 1.5-1 端子機能一覧 (6 / 7) Pin No. 端子名 111 PH2/SCK0/TO0 112 113 114 115 116 117 118 回路形式 機能説明 P UART0 のクロック入出力 , リロードタイマ 0 の出力 です。 UART0 のクロック出力禁止の場合 , リロードタイマ 0 の出力許可を行うと , リロードタイマ 0 を出力する ことができます。 UART0 のクロック出力 , リロードタイマ出力を共に 禁止の場合は , ポートとして使用できます。 P UART0 のデータ出力です。 この機能は UART0 のデータ出力指定が許可の場合に 有効となります。 UART0 のクロック出力指定が禁止の場合は , ポート として使用できます。 P UART0 のデータ入力です。 UART0 が入力動作をしている間はこの入力を随時使 用していますので , 意図的に行う以外はポートによる 出力を停止させておく必要があります。 UART0 のデータ入力が未使用の場合は , ポートとし て使用できます。 F DMA 外部転送要求入力です。 DMAC の転送要因として選択した場合はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 DMA 外部転送要求入力が未使用の場合は , ポートと して使用できます。 F DMA 外部転送要求受付出力です。 この機能は DMAC の外部転送要求受付出力指定が許 可の場合に有効となります。 DMAC の転送要求受付出力指定が禁止の場合は , ポートとして使用できます。 F DMA 外部転送終了出力です。 この機能は DMAC の外部転送終了出力指定が許可の 場合に有効となります。 DMA 外部転送終了出力が禁止の場合 , ポートとして 使用できます。 F DMA 外部転送要求入力です。 DMAC の転送要因として選択した場合はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 DMA 外部転送要求入力が未使用の場合は , ポートと して使用できます。 F DMA 外部転送要求受付出力です。 この機能は DMAC の外部転送要求受付出力指定が許 可の場合に有効となります。 DMAC の転送要求受付出力指定が禁止の場合は , ポートとして使用できます。 PH1/SOT0 PH0/SIN0 PL0/DREQ0 PL1/DACK0 PL2/DEOP0 PL3/DREQ1 PL4/DACK1 15 第 1 章 概要 表 1.5-1 端子機能一覧 (7 / 7) Pin No. 端子名 119 PL5/DEOP1 120 121 回路形式 機能説明 F DMA 外部転送終了出力です。 この機能は DMAC の外部転送終了出力指定が許可の 場合に有効となります。 DMA 外部転送終了出力が禁止の場合 , ポートとして 使用できます。 F DMA 外部転送要求入力です。 DMAC の転送要因として選択した場合はこの入力を 随時使用していますので , 意図的に行う以外はポート による出力を停止させておく必要があります。 DMA 外部転送要求入力が未使用の場合は , ポートと して使用できます。 F DMA 外部転送要求受付出力です。 この機能は DMAC の外部転送要求受付出力指定が許 可の場合に有効となります。 DMAC の転送要求受付出力指定が禁止の場合は , ポートとして使用できます。 PL6/DREQ2 PL7/DACK2 123 124 125 DA2 DA1 DA0 - D/A コンバータの出力です。 この機能は D/A コンバータの出力指定が許可の場合 に有効になります。 126 DAVS - D/A コンバータの電源端子です。 127 DAVC - D/A コンバータの電源端子です。 128 AVCC - A/D コンバータ用 VCC 電源です。 129 AVRH - A/D コンバータ基準電圧 ( 高電位側 ) です。 この端子の投入 / 切断は必ず VCC に AVRH 以上の電 位が印加してある状態で行ってください。 130 AVRL - A/D コンバータ基準電圧 ( 低電位側 ) です。 131 AVSS - A/D コンバータ用 VSS 電源です。 132 133 134 135 136 137 138 139 PK0/AN0 PK1/AN1 PK2/AN2 PK3/AN3 PK4/AN4 PK5/AN5 PK6/AN6 PK7/AN7 27, 56, 68, 77, 97, 122, 140 VCC 9,26,44, 59,98, 101,144 VSS N A/D コンバータアナログ入力です。 AICR レジスタの指定がアナログ入力の場合に有効と なります。 A/D コンバータアナログ入力が未使用の場合は , ポー トとして使用できます。 - デジタル回路の電源端子です。 必ず全 VCC 端子に電源を接続して使用してください。 - デジタル回路の接地レベルです。 必ず全 VSS 端子に電源を接地して使用してください。 ( 注意事項 )上記の大部分の端子は , xxxx/Pxx といったように I/O ポートとリソースの入出力がマルチ プレクスされます。 これらの端子でポートとリソースの出力同士が競合した場合 , リソースが優先されます。 16 第 1 章 概要 1.6 入出力回路形式 表 1.6-1 に , MB91151A の入出力回路の形式を示します。 ■ 入出力回路形式 表 1.6-1 入出力回路形式 (1 / 3) 分類 回路 備考 A X1 Xout 高速発振回路 発振帰還抵抗 = 約 1MΩ X0 スタンバイ制御信号 B CMOS ヒステリシス入力端子 CMOS ヒステリシス入力 ( スタンバイ制御なし ) プルアップ抵抗あり デジタル入力 C Pout Nout CMOS レベル入出力端子 CMOS レベル出力 CMOS レベル入力 ( スタンバイ制御付き ) IOL=4mA CMOS入力 スタンバイ制御 F Pout Nout CMOS ヒステリシス入出力端子 CMOS レベル出力 CMOS ヒステリシス入力 ( スタンバイ制御付き ) IOL=4mA CMOSヒステリシス入力 スタンバイ制御 17 第 1 章 概要 表 1.6-1 入出力回路形式 (2 / 3) 分類 回路 備考 G CMOS レベル入力端子 CMOS レベル入力 ( スタンバイ制御なし ) デジタル入力 H プルアップ制御 R Pout Nout プルアップコントロール付き CMOS ヒステリシス入出力端子 CMOS レベル出力 CMOS ヒステリシス入力 ( スタンバイ制御なし ) プルアップ抵抗値 = 約 50kΩ(Typ) IOL=4mA CMOSヒステリシス入力 N Pout Nout CMOS入力 アナログ /CMOS レベル入出力端子 CMOS レベル出力 CMOS レベル入力 ( スタンバイ制御付き ) アナログ入力 (AICR の対応するビットが "1" の場 合アナログ入力が有効になります ) IOL=4mA スタンバイ制御 アナログ入力 O プルアップ制御 R Pout Nout プルアップコントロール付き CMOS ヒステリシス入出力端子 CMOS レベル出力 CMOS ヒステリシス入力 ( スタンバイ制御付き ) プルアップ抵抗値 = 約 50kΩ(Typ) IOL=4mA CMOSヒステリシス入力 スタンバイ制御 18 第 1 章 概要 表 1.6-1 入出力回路形式 (3 / 3) 分類 回路 P 備考 プルアップ制御 R オープンドレイン制御 Nout CMOSヒステリシス入力 プルアップコントロール付き CMOS ヒステリシス入出力端子 CMOS レベル出力 ( オープンドレイン制御付き ) CMOS ヒステリシス入力 ( スタンバイ制御付き ) プルアップ抵抗値 = 約 50kΩ(Typ) IOL=4mA スタンバイ制御 Q Nout オープンドレイン入出力端子 5V 耐圧 CMOS ヒステリシス入力 ( スタンバイ制御付き ) IOL=15mA COMSヒステリシス入力 スタンバイ制御 19 第 1 章 概要 20 第2章 デバイスの取扱いについて この章では , MB91151A の取扱い上の注意につい て説明します。 2.1 デバイス取扱い上の注意 2.2 各デバイス使用上の注意 2.3 電源投入 21 第 2 章 デバイスの取扱いについて 2.1 デバイス取扱い上の注意 ここでは , ラッチアップ防止 , 端子処理および回路の取扱いについて説明します。 ■ ラッチアップ防止 CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した 場合または VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象を 生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に至 ることがありますので,使用に際しては最大定格を超えることのないよう十分に注意し てください。 ■ 端子処理 ● 未使用端子の処理について 使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま すので , プルアップまたはプルダウンなどの処理をしてください。 ● OPEN 端子の処理について OPEN 端子は , 必ず開放にして使用してください。 ● 出力端子の処理について 出力端子を電源やほかの出力端子とショートしたり,大きな容量負荷を接続すると大電 流が流れる場合があります。このような状態が長時間続くとデバイスが劣化しますの で , 使用に際しては最大定格を超えることのないよう十分に注意してください。 ● モード (MD0 ∼ MD2) 端子について これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤っ てテストモードに入ってしまうことを防ぐために,プリント板上の各モード端子とVCC または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで接続す るようにしてください。 ● 電源端子について VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた めに , デバイス内部で同電位にすべきもの同士を接続してありますが , 不要輻射の低 減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を 遵守などのために , 必ずそれらすべてを外部で電源およびグランドに接続してくださ い。 また , 電流供給源からできる限り低インピーダンスで本デバイスの VCC, VSS に接続す るような配慮をお願いいたします。さらに , 本デバイスの近くで , VCC と VSS の間に 0.1 µF 程度のセラミックコンデンサをバイパスコンデンサとして接続するようにして ください。 22 第 2 章 デバイスの取扱いについて ■ 回路の取扱い ● 水晶発振回路について X0, X1 端子の近辺のノイズは , 本デバイスの誤動作の原因となります。X0 と X1 およ び水晶発振子 ( またはセラミック発振子 ) さらにグランドへのバイパスコンデンサは , できる限り近くに配置するようにプリント板を設計してください。 X0, X1 端子の回りをグランドで囲むようなプリント板アートワークは安定した動作を 期待できますので , 強くお勧めいたします。 各量産品において,ご使用される発振子メーカに発振評価依頼をしてください。 23 第 2 章 デバイスの取扱いについて 2.2 各デバイス使用上の注意 ここでは , 外部リセット入力および外部クロック使用上の注意について説明します。 ■ 外部リセット入力について RST端子に"L"レベルを入力し,内部が確実にリセット状態となるためには, RST端子の "L" レベル入力が最低 5 マシンサイクル必要です。 ■ 外部クロックについて 外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク ロックを同時に供給してください。ただし , STOP モード ( 発振停止モード ) を併用す る場合は , STOP モード時に X1 端子が "H" 出力で停止しますので , 出力同士の衝突を 避けるために , 外部に 1kΩ 程度の抵抗を入れるようにしてください。 図 2.2-1 に , 外部クロック使用方法例を示します。 図 2.2-1 外部クロック使用例 X0 ~ X1 M B 9 1 151A ■ PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を 継続し続ける場合があります。この動作は保証外の動作です。 ■ ウォッチドッグタイマ機能について FR ファミリが備えているウォッチドッグタイマ機能は , プログラムが一定時間内にリ セット延期動作を行うことを監視し,プログラムの暴走によりリセット延期動作が行わ れなかったときに , CPU をリセットするための機能です。そのため , いったんウォッチ ドッグタイマ機能を有効にすると , リセットをかけるまで動作を続けます。 例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い ます。この例外にあてはまる条件については ,「3.12.8 ウォッチドッグ機能」を参照し てください。 24 第 2 章 デバイスの取扱いについて 2.3 電源投入 ここでは , 電源投入時の注意事項 , 電源投入および時計機能を使用していない場合の 注意について説明します。 ■ 電源投入時の注意 ● 電源投入時について 電源投入時には , 必ず RST 端子を "L" レベル状態から開始し , 電源が VCC レベルになっ てから , 最低でも内部動作クロックの 5 サイクル分の時間を確保してから "H" レベル にしてください。 ● 原発振入力について 電源投入時は , 必ず発振安定待ちが解除されるまでの間クロックを入力してください。 ● パワーオンリセットについて 電源投入時および電源電圧が動作保証電圧を下回った場合の再投入時は,必ずパワーオ ンリセットをかけてください。 ● 電源投入順序について 電源投入は , VCC → AVCC → AVRH の順に投入し , 切断時はこの逆の順序で行ってく ださい。 ● A/D コンバータについて A/D コンバータを使用しない場合においても , AVCC=VCC レベル , AVSS=VSS レベルに 接続してください。 ● D/A コンバータについて D/A コンバータを使用しない場合においても , DAVC=VCC レベル , DAVS=VSS レベル に接続してください。 ● 電源電圧不安定 , もしくは電源遮断時の扱いについて 電源電圧が動作保証電圧の下限を下回った場合は,デバイス内部の状態が不定になりま すので , 次のいずれかの方法でデバイスを初期化してください。 • 方法 1 : 原発振の 221 期間以上 , 外部リセットを入力する。 • 方法 2 : パワーオンリセットが発生する電圧 (VCC=0.2V 以下 ) から電源を投入する。 25 第 2 章 デバイスの取扱いについて 26 第3章 メモリ空間 , CPU および制御部 この章では , FR ファミリの CPU コアの機能を知 るために , アーキテクチャ , 仕様 , 命令などの基本 的なことについて説明します。 3.1 メモリ空間 3.2 CPU アーキテクチャ 3.3 命令キャッシュ 3.4 プログラミングモデル 3.5 データ構造 3.6 ワードアライメント 3.7 特別なメモリ領域 3.8 命令概要 3.9 EIT( 例外・割込み・トラップ ) 3.10 リセットシーケンス 3.11 動作モード 3.12 クロック発生部 ( 低消費電力メカニズム ) 3.13 低消費電力モード 27 第 3 章 メモリ空間 , CPU および制御部 3.1 メモリ空間 FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク セスを行います。 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレッシング領域と呼び,命令中で直接オペランドのアドレス を指定できます。 ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。 • バイトデータアクセス :000H ∼ 0FFH • ハーフワードデータアクセス :000H ∼ 1FFH • ワードデータアクセス :000H ∼ 3FFH ■ MB91V151A, MB91151A のメモリマップ 図 3.1-1 に , MB91V151A, MB91151A のメモリマップを示します。 図 3.1-1 MB91V151A, MB91151A のメモリマップ 外バスモード シリアル起動モード I/O I/O ダイレクト アドレッシング 領域 I/O I/O I/Oマップ参照 アクセス禁止 アクセス禁止 内蔵RAM 32KB 内蔵RAM 32KB アクセス禁止 アクセス禁止 0000 0000H 0000 0400H 0000 0800H 0000 1000H 0000 9000H 0001 0000H 0001 0000H 外部領域 アクセス禁止 0008 0000H 0008 0800H 0009 0800H 0008 0000H 内蔵RAM 2KB 内蔵RAM 2KB アクセス禁止 アクセス禁止 0008 0800H 000F F800H シリアルROM 2KB 0010 0000H 外部領域 アクセス禁止 FFFF FFFFH 28 FFFF FFFFH 第 3 章 メモリ空間 , CPU および制御部 3.2 CPU アーキテクチャ FR CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向けた高機能 命令を導入した , 高性能コアです。 ■ CPU アーキテクチャの特長 • RISC アーキテクチャの採用 • 基本命令 :1 命令 1 サイクル • 32 ビットアーキテクチャ - 汎用レジスタ 32 ビット× 16 本 • 4G バイトのリニアなメモリ空間 • 乗算器の搭載 - 32 ビット× 32 ビット乗算 :5 サイクル - 16 ビット× 16 ビット乗算 :3 サイクル • 割込み処理機能の強化 - 高速応答速度 (6 サイクル ) - 多重割込みのサポート - レベルマスク機能 (16 レベル ) • I/O 操作用命令の強化 - メモリ - メモリ転送命令 - ビット処理命令 • 高いコード効率 - 基本命令語長 :16 ビット • 低消費電力 - スリープモード / ストップモード ■ 内部アーキテクチャ FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構 造を採用しています。 32 ビット ↔ 16 ビット バスコンバータはデータバス (D-bus) に接続され , CPU と周辺 リソースとのインタフェースを実現します。 ハーバード ↔ プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ スコントローラとのインタフェースを実現します。 図 3.2-1 に , 内部アーキテクチャの構造を示します。 29 第 3 章 メモリ空間 , CPU および制御部 図 3.2-1 内部アーキテクチャの構造 FR CPU D-bus I-bus ハーバード プリンストン 32ビット バスコンバータ 16ビット バスコンバータ R-bus C-bus 周辺機器 バスコントローラ ● CPU CPU は , 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの です。1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用 しています。パイプラインは以下のステージから構成されています。 • 命令フェッチ (IF) : 命令アドレスを出力し , 命令をフェッチします。 • 命令デコード (ID) : フェッチした命令をデコードします。レジスタの読出しも 行います。 • 実行 (EX) : 演算を実行します。 • メモリアクセス (MA) : メモリに対するロードまたはストアのアクセスを行います。 • ライトバック (WB) : 演算結果 ( またはロードされたメモリデータ ) をレジスタに 書き込みます。 図 3.2-2 に , 命令パイプラインを示します。 図 3.2-2 命令パイプライン CLK 30 命令1 命令2 命令3 命令4 WB MA EX ID 命令5 命令6 IF WB MA EX WB MA WB ID IF EX ID MA EX WB MA WB 第 3 章 メモリ空間 , CPU および制御部 命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。 命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ リウェイトを伴ったロード / ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い 場合も命令の実行速度が低下します。 ● 32 ビット ↔ 16 ビット バスコンバータ 32 ビット幅で高速アクセスされる D-bus と , 16 ビット幅でアクセスされる R-bus との インタフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。 CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16 ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路の一部に はアクセス幅に関して制限のあるものがあります。 ● ハーバード ↔ プリンストン バスコンバータ CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ フェースを実現します。 CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 , 外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構 造です。 このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつけ , バス コントローラへのアクセスの制御を行います。この働きにより , 外部へのバスアクセス 順位が常に最適化されたものになります。 また , CPU のバス待ち時間をなくすための 2 ワードのライトバッファと , 命令フェッチ のために 1 ワードのプリフェッチバッファを持っています。 31 第 3 章 メモリ空間 , CPU および制御部 3.3 命令キャッシュ 命令キャッシュは , 一時記憶メモリです。命令コードを外部の低速メモリからアクセ スする場合 , 一度アクセスしたコードを内部に保持する役目を果たし , 2 回目以降の アクセス速度を速めるために使用します。 命令キャッシュ , 命令キャッシュタグはソフトウェアで直接リード・ライトアクセス はできません。また , 命令キャッシュを一度 ON してから OFF にする場合には , 必 ず「■ 本品種の I-Cache を使用するときの設定方法 」の注意事項に記載されている サブルーチンをご使用ください。 ■ 本体構成 • FR ファミリの基本命令長 2 バイト • ブロックの配置方式 2 ウェイセットアソシアティブ方式 • ブロック 1 ウェイは 32 ブロック構成 1 ブロックは 16 バイト (=4 サブブロック ) 1 サブブロックは 4 バイト (=1 バスアクセス単位 ) 図 3.3-1 命令キャッシュ構成 4バイト ウェイ1 4バイト 4バイト 4バイト I2 I1 I0 サブブロック2 サブブロック1 サブブロック0 ブロック0 キャッシュタグ サブブロック3 サブブロック2 サブブロック1 サブブロック0 ブロック31 キャッシュタグ サブブロック3 サブブロック2 サブブロック1 サブブロック0 ブロック0 サブブロック3 サブブロック2 サブブロック1 サブブロック0 ブロック31 ・・・ ・・・ I3 サブブロック3 キャッシュタグ 32ブロック 4バイト キャッシュタグ 32 ・・・ 32ブロック ・・・ ウェイ2 第 3 章 メモリ空間 , CPU および制御部 図 3.3-2 命令キャッシュタグ ウェイ1 31 09 08 空き 03 TAGV 02 空き アドレスタグ 07 SBV3 06 SBV2 05 SBV1 04 SBV0 サブブロックバリッド LRU エントリロック 00 ETLK 01 00 ETLK TAGバリッド ウェイ2 31 09 08 空き 03 TAGV 02 アドレスタグ 07 SBV3 01 LRU 06 SBV2 05 SBV1 04 SBV0 サブブロックバリッド 空き TAGバリッド エントリロック [ ビット 31 ∼ビット 9] アドレスタグ 対応するブロックにキャッシュされている命令のメモリアドレスの上位 23 ビット がストアされています。 ブロック i のサブブロック k に格納されている命令データのメモリアドレス IA は , IA= アドレスタグ × 211 + i × 24 + k × 22 となります。 CPU からアクセス要求された命令アドレスの一致を検査するために使用します。タ グ検査の結果に従い , 以下のような動作をします。 1)要求された命令データがキャッシュ内に存在するとき ( ヒット ), キャッシュから CPU へサイクル内にデータを転送します。 2)要求された命令データがキャッシュ内に存在しないとき ( ミス ), 外部アクセスで 取得されたデータを CPU とキャッシュが同時に取得します。 [ ビット 7 ∼ビット 4] SBV3 ∼ SBV0: サブブロックバリッド サブブロックバリッドを "1" に設定したとき , 対応するサブブロックにタグで示さ れたアドレスの現行命令データがエントリされています。サブブロックには , 通常 2 命令が格納されます ( 即値転送命令を除く ) 。 [ ビット 3] TAGV TAG: バリッドビット アドレスタグの値が有効かどうかを示します。このビットが"0"のときはサブバリッ ドビットに無関係に,このブロックはインバリッド状態になります(フラッシュ時)。 [ ビット 1] LRU ( ウェイ 1 のみ ) ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最 後にアクセスしたエントリがウェイ 1・2 のどちらであるかを示します。LRU=1 の ときはウェイ 1 の , LRU=0 のときはウェイ 2 のセットのエントリが最後にアクセス したことを示します。 33 第 3 章 メモリ空間 , CPU および制御部 [ ビット 0] ETLK: エントリロック タグに相当するブロック内の全エントリをキャッシュにロックします。ETLK=1 の ときにロック状態で , キャッシュミス時にエントリは更新されません。ただし , 無 効なサブブロックは更新されます。 ウェイ 1, 2 ともにエントリロックされているときにキャッシュミスした場合は , キャッシュミス判定の 1 サイクルをロスした後 , 外部メモリをアクセスします。 ■ 制御レジスタ構成 ICHCR(I-CacHe Control Register) は , 命令キャッシュの動作を制御します。 ICHCR への書込みは , 以降 3 サイクル以内にフェッチされる命令のキャッシュ動作に 影響を与えません。 図 3.3-3 命令キャッシュ制御レジスタ ICHCR (I-CacHe Control Register) (ウェイ1,2共用で1本) bit ICHCR アドレス:000003E7H 7 - - 6 - - 5 GBLK R/W 4 ALFL R/W 3 EOLK R/W 2 ELKR R/W 1 FLSH R/W 0 ENAB R/W 初期値 --000000B グローバルロック オートロックフェイル エントリオートロック エントリロック解除 フラッシュ イネーブル [ ビット 5] GBLK: グローバルロック すべてのカレントエントリをキャッシュにロックします。GBLK=1 のとき , キャッ シュ内の有効なエントリはミス時に更新されません。ただし , 無効なサブブロック は更新されます。その際の命令データフェッチ動作は , ロックしていないときと同 様です。 [ ビット 4] ALFL: オートロックフェイル すでにロックしているエントリをさらにロックしようとすると ALFL=1 にセットさ れます。エントリオートロック中のエントリの更新が , すでにロックされているエ ントリに対して行われようとしたとき , ユーザの意図に反して新たなエントリが キャッシュ中にロックされません。このようなプログラムのデバッグのために参照 します。"0" 書込みでクリアされます。 [ ビット 3] EOLK: エントリオートロック 命令キャッシュ内の各エントリに対して , オートロッキングの有効・無効を切り換 えます。 EOLK=1 のときにアクセス ( ミス時のみ ) されたエントリは , キャッシュタグ内の エントリロックビットがハードウェアで "1" にセットされることにより , ロックさ れます。ロックされたエントリは以後 , キャッシュミス時の更新の対象になりませ ん。ただし , 無効なサブブロックは更新されます。確実にロックするためには一度 フラッシュした後 , このビットをセットしてください。 [ ビット 2] ELKR: エントリロック解除 す べ て の キ ャ ッ シ ュ タ グ 中 の エ ン ト リ ロ ッ ク ビ ッ ト の ク リ ア を 指 定 し ま す。 ELKR=1 にセットされた次のサイクルで , すべてのキャッシュタグ中のエントリ ロックビットが "0" にクリアされます。ただし , 本ビットの内容が保持されるのは 1 クロックサイクルのみであり , 2 クロックサイクル以降は "0" にクリアされます。 34 第 3 章 メモリ空間 , CPU および制御部 <注意事項> 命令キャッシュイネーブル (ENAB=1) 時にエントリロック解除 (ELKR=1) しないでくださ い。 [ ビット 1] FLSH: フラッシュ 命令キャッシュのフラッシュを指定します。FLSH=1 のとき , キャッシュの内容が フラッシュされます。ただし , 本ビットの内容が保持されるのは 1 クロックサイク ルのみであり , 2 クロックサイクル以降は "0" にクリアされます <注意事項> 命令キャッシュイネーブル (ENAB=1) 時にフラッシュ (FLSH=1) しないでください。 [ ビット 0] ENAB: イネーブル 命令キャッシュのイネーブル・ディセーブルを切り換えます。ENAB=0 のときディ セーブル状態で , CPU からの命令アクセスは , キャッシュを介さず外部に対して直 接行われます。ディセーブル状態では , キャッシュの内容は保存されます。 ■ 各動作モードの状態 ● 各動作モード時のキャッシュの状態 ディセーブル / フラッシュはビット操作命令等で , そのビットだけ変化させた場合の状 態を示しています。 35 第 3 章 メモリ空間 , CPU および制御部 表 3.3-1 各動作モード時のキャッシュの状態 リセット直後 フラッシュ 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 アドレスタグ 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 サブブロック バリッド 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 エントリロック 内容は不定 直前の状態を保持 ディセーブル中書換え不可能 直前の状態を保持 ( 要エントリロック解除 ) TAG バリッド 内容は不定 直前の状態を保持 ディセーブル中フラッシュ可能 すべてのエントリが インバリッド グローバル ロック アンロック 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 オートロック フェイル フェイルなし 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 エントリ オートロック アンロック 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 エントリロック 解除 解除なし 直前の状態を保持 ディセーブル中書換え可能 直前の状態を保持 イネーブル ディセーブル ディセーブル 直前の状態を保持 フラッシュ フラッシュ しない 直前の状態を保持 ディセーブル中書換え可能 メモリアクセス直後の サイクルでフラッシュ。 以後 "0" に戻る。 キャッシュ メモリ タ LRU グ 制 御 レ ジ ス タ ディセーブル ● キャッシュのエントリ更新 キャッシュのエントリ更新は , 表 3.3-2 のように行います。 表 3.3-2 キャッシュのエントリ更新 アンロック ロック ヒット 更新しない 更新しない ミス メモリをロードし , キャッシュの エントリの内容を更新する。 タグミスの場合は更新しない。 サブブロックインバリッドの場合は更新する。 36 第 3 章 メモリ空間 , CPU および制御部 ■ 命令キャッシュのキャッシュ可能領域 • 命令キャッシュは , すべての空間をキャッシュ可能とします。 • 内蔵 ROM 搭載品では , 内蔵 ROM もキャッシュの対象とします。 • 外部領域 , 内蔵 ROM 以外の空間への命令アクセスが行われないことを , 前提にして います。したがって , I/O 領域の制御レジスタ等へ命令アクセスが行われてもキャッ シュの対象となります。 • DMA 転送で外部メモリの内容が更新されたとしても , キャッシュの内容とのコヒー レンシはとりません。 このような場合はキャッシュをフラッシュすることで , コヒー レンシを保ってください。 ■ 本品種の I-Cache を使用するときの設定方法 1)初期化 I-Cache を使い始める最初はキャッシュの中身をクリアしておく必要があります。 レジスタの Flash ビットと ELKR ビットを "1" にして , 過去のデータを消去します。 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00000110,r1 // FLSH ビット (1 ビット ) // ELKR ビット (2 ビット ) stb r1,@r0 // レジスタへ書込み これで , キャッシュが初期化されます。 また , キャッシュを使用開始後にクリアする場合は必ずキャッシュディセーブルの 状態で行ってください。 ldi ldi ldi ldi stb #0x000003e7,r0 #0B00000000,r1 r1,@r0 #0B00000010,r1 r1,@r0 // // // // // I-Cache コントロールレジスタのアドレス FLSH ビット (1 ビット ) レジスタへ書込み FLSH ビット (1 ビット ) レジスタへ書込み 2)キャッシュを有効 (ON) にする I-Cache を有効にするには ENAB ビットを "1" にします。 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00000001,r1 // ENAB ビット (0 ビット ) stb r1,@r0 // レジスタへ書込み これ以降の命令アクセスがキャッシュに取り込まれていきます。 キャッシュの有効化は , キャッシュの初期化と同時に行うこともできます。 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00000111,r1 // ENAB ビット (0 ビット ) // FLSH ビット (1 ビット ) // ELKR ビット (2 ビット ) stb r1,@r0 // レジスタへ書込み 3)キャッシュを無効 (OFF) にする I-Cache を無効にするには ENAB ビットを "0" にします。 キャッシュを無効 (OFF) にする場合に命令キャッシュと CPU とのアドレス整合性 を保つため以下のプログラム例のように解除後にNOP, RET, JMPによってタイミン グ同期を行ってください。 37 第 3 章 メモリ空間 , CPU および制御部 ● サブルーチンで無効にする場合 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00000000,r1 // ENAB ビット (0 ビット ) stb r1,@r0 // レジスタへ書込み nop // タイミング同期のため nop を 3 回実行 nop nop ret // タイミング同期のため ret を 3 回実行 ret ret ● プログラムの途中で無効にする場合 ldi #chche_off,r2 // キャッシュ OFF 後の飛び先指定 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00000000,r1 // ENAB ビット (0 ビット ) stb r1,@r0 // レジスタへ書込み nop // タイミング同期のため nop を 3 回実行 nop nop jmp @r2 jmp @r2 jmp @r2 chche_off: // タイミング同期のため jmp を 3 回実行 // ラベル この状態 ( リセット後の状態と同じ ) では , キャッシュはないのと同じで , 何もしま せん。 キャッシュのオーバヘッドが気になる処理のときは, OFFにすることを推奨します。 4)キャッシュの内容をすべてロックする。 現在 I-Cache に入っている命令がキャッシュから追い出されないようにロックしま す。レジスタの GBLK ビットを "1" にします。 ENAB ビットも "1" にしないと , キャッシュが OFF となり , キャッシュ内のロック した命令が使われません。 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00100001,r1 // ENAB ビット (0 ビット ) // GBLK ビット (5 ビット ) stb r1,@r0 // レジスタへ書込み 5)特定の命令をキャッシュにロックする。 特定の命令群 ( サブルーチン等 ) をキャッシュにロックするには , それらの命令を 実行する前に EOLK ビットを "1" にします。 ロックした命令は高速な内部 ROM のようにアクセスされます。 38 第 3 章 メモリ空間 , CPU および制御部 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00001001,r1 // ENAB ビット (0 ビット ) // EOLK ビット (3 ビット ) stb r1,@r0 // レジスタへ書込み メモリのウェイト数によりますが , stb 命令の次以降の命令から有効になります。 ロックしたい命令群が終わった所で EOLK ビットを "0" にします。 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00000001,r1 // ENAB ビット (0 ビット ) // EOLK ビット (3 ビット ) stb r1,@r0 // レジスタへ書込み 6)キャッシュのロックを解除する。 上記 5) でロックした命令のロック情報を解除します。 ldi #0x000003e7,r0 // I-Cache コントロールレジスタのアドレス ldi #0B00000000,r1 // キャッシュディセーブル stb r1,@r0 // レジスタへ書込み ldi #0B00000100,r1 // ELKR ビット (2 ビット ) stb r1,@r0 // レジスタへ書込み ロック情報だけ解除されるので , ロックされていた命令は , LRU ビットの状態に応 じて順次新しい命令に置き換わります。 39 第 3 章 メモリ空間 , CPU および制御部 3.4 プログラミングモデル ここでは , 基本のプログラミングモデルおよび各レジスタについて説明します。 ■ 基本プログラミングモデル 図 3.4-1 に , 基本プログラミングモデルを示します。 図 3.4-1 基本プログラミングモデル 32ビット長 〔初期値〕 XXXX XXXXH XXXX XXXXH プログラムカウンタ プログラムステータス テーブルベースレジスタ R12 R13 R14 R15 AC FP SP PC PS TBR リターンポインタ … … 汎用レジスタ … R0 R1 XXXX XXXX XXXX 0000 XXXX XXXXH - ILM - SCR CCR 000F FC00H RP XXXX XXXXH システムスタックポインタ SSP 0000 0000H ユーザスタックポインタ USP XXXX XXXXH 乗除算結果レジスタ MDH MDL XXXX XXXXH XXXX XXXXH ■ 汎用レジスタ 図 3.4-2 に , 汎用レジスタの構成を示します。 図 3.4-2 汎用レジスタの構成 32ビット 〔初期値〕 XXXX XXXXH XXXX XXXXH R0 R1 ~ R12 R13 R14 R15 AC FP SP ~ ~ 40 XXXXH XXXXH XXXXH 0000H XXXX XXXX XXXX 0000 XXXXH XXXXH XXXXH 0000H 第 3 章 メモリ空間 , CPU および制御部 レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータおよびメ モリアクセスのポインタとして使用されます。 16 本のレジスタのうち , 以下に示すレジスタは特殊な用途を想定しており , そのために 一部の命令が強化されています。 • R13: 仮想アキュムレータ • R14: フレームポインタ • R15: スタックポインタ リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H(SSP の値 ) となり ます。 ■ PS(Program Status) プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパートに分か れています。 図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。 書込みは無効です。 ビット位置→ 31 20 16 10 8 7 0 PS ILM SCR CCR ● CCR(Condition Code Register) CCR 7 6 5 4 3 2 1 0 − − S I N Z V C [ 初期値 ] --00XXXXB [ ビット 5] S: スタックフラグ R15 として使用されるスタックポインタを指定します。 値 内容 0 SSP が R15 として使用されます。EIT 発生時 , 自動的に "0" となります。 ( ただし , スタックに退避される値はクリアされる前の値です。) 1 USP が R15 として使用されます。 リセットにより "0" にクリアされます。 RETI 命令の実行は , SSP を選択してください。 41 第 3 章 メモリ空間 , CPU および制御部 [ ビット 4] I: 割込み許可フラグ ユーザ割込み要求の許可・禁止を制御します。 値 内容 0 ユーザ割込み禁止。INT 命令実行時 , "0" にクリアされます。 ( ただし , スタック退避させる値はクリアする前の値です。) 1 ユーザ割込み許可。 ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されま す。 リセットにより "0" にクリアされます。 [ ビット 3] N: ネガティブフラグ 演算結果を "2" の補数で表現された整数とみなしたときの符号を示します。 値 内容 0 演算結果が正の値であったことを示します。 1 演算結果が負の値であったことを示します。 リセットによる初期状態は不定です。 [ ビット 2] Z: ゼロフラグ 演算結果が "0" であったかどうかを示します。 値 内容 0 演算結果が "0" 以外の値であったことを示します。 1 演算結果が "0" であったことを示します。 リセットによる初期状態は不定です。 [ ビット 1] V: オーバフローフラグ 演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 , オーバフローが生じたかどうかを示します。 値 内容 0 演算の結果 , オーバフローは生じていないことを示します。 1 演算の結果 , オーバフローが生じたことを示します。 リセットによる初期状態は不定です。 42 第 3 章 メモリ空間 , CPU および制御部 [ ビット 0] C: キャリフラグ 演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示しま す。 値 内容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 リセットによる初期状態は不定です。 ● SCR(System Condition code Register) SCR 10 9 8 D1 D0 T [ 初期値 ] XX0B [ ビット 10, ビット 9] D1, D0: ステップ除算用フラグ ステップ除算実行時の中間データを保持します。除算処理の実行途中は , 変更して はいけません。 ステップ除算実行途中にほかの処理を行う場合は , PS レジスタの値を退避・復帰す ることによりステップ除算の再開が保証されます。リセットによる初期状態は不定 です。 DIV0S 命令の実行により被除数と除数を参照して設定されます。 DIV0U 命令の実行により , 強制的にクリアされます。 [ ビット 8] T: ステップトレーストラップフラグ ステップトレーストラップを有効にするかどうかを指定するフラグです。 値 内容 0 ステップトレーストラップ無効 1 ステップトレーストラップ有効。このとき , ユーザ用 NMI とユーザ割 込みがすべて割込み禁止となります。 リセットにより "0" に初期化されます。ステップトレーストラップの機能はエミュ レータが使用します。エミュレータ使用時 , ユーザプログラム中で使用することは できません。 43 第 3 章 メモリ空間 , CPU および制御部 ● ILM 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) に初期化されます。 ■ PC(Program Counter) 31 0 PC [ 初期値 ] XXXXXXXXH プログラムカウンタで , 実行している命令のアドレスを示しています。命令の実行を伴 う PC の更新時に , ビット 0 は "0" に設定されます。 ビット 0 が "1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場 合だけです。 ただし , その場合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が あります。 リセットによる初期値は不定です。 ■ TBR(Table Base Register) 31 0 TBR [ 初期値 ] 000FFC00H テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。リセットによる初期値は , 000FFC00H です。 ■ RP(Return Pointer) 31 RP 0 [ 初期値 ] XXXXXXXXH リターンポインタで , サブルーチンから復帰するアドレスを保持します。CALL 命令実 行時, PCの値がこのRPに転送され, RET命令実行時は, RPの内容がPCに転送されます。 リセットによる初期値は不定です。 44 第 3 章 メモリ空間 , CPU および制御部 ■ SSP(System Stack Pointer) 31 0 SSP [ 初期値 ] 00000000H SSP は , システムスタックポインタです。 S フラグが "0" のとき , R15 として機能します。SSP を明確に指定することも可能です。 また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして も使用されます。 リセットによる初期値は 00000000H です。 ■ USP(User Stack Pointer) 31 0 USP [ 初期値 ] XXXXXXXXH USP は , ユーザスタックポインタです。S フラグが "1" のとき , R15 として機能します。 USP を明確に指定することも可能です。 リセットによる初期値は不定です。 RETI 命令を使用する場合は , SSP を使用してください。 ■ 乗除算レジスタ (Multiply & Divide register) 31 乗除算結果格 納レジスタ MDH MDL 0 [ 初期値 ] XXXXXXXXH XXXXXXXXH 乗除算用のレジスタで , 各々 32 ビット長です。リセットによる初期値は不定です。 ● 乗算実行時 32 ビット× 32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除算結 果格納レジスタに格納されます。 • MDH: 上位 32 ビット • MDL: 下位 32 ビット 16 ビット× 16 ビットの乗算のときは , 以下のように結果が格納されます。 • MDH: 不定 • MDL: 結果 32 ビット ● 除算実行時 計算開始時 , 被除数を MDL に格納します。 DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果が MDL と MDH に格納されます。 • MDH: 剰余 • MDL: 商 45 第 3 章 メモリ空間 , CPU および制御部 データ構造 3.5 FR ファミリのデータ配置は , 次のようになっています。 • ビットオーダリングの場合 : リトルエンディアン • バイトオーダリングの場合 : ビッグエンディアン ■ ビットオーダリング FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。 図 3.5-1 に , ビットオーダリングのデータ配置を示します。 図 3.5-1 ビットオーダリングのデータ配置 bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MSB LSB ■ バイトオーダリング FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。 図 3.5-2 に , バイトオーダリングのデータ配置を示します。 図 3.5-2 バイトオーダリングのデータ配置 MSB bit 31 メモリ 46 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 15 7 0 10101010 11001100 11111111 00010001 bit 7 n 番地 (n+1) 番地 (n+2) 番地 (n+3) 番地 LSB 23 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 第 3 章 メモリ空間 , CPU および制御部 3.6 ワードアライメント 命令やデータは , バイト単位でアクセスするため , 配置するアドレスは命令長やデー タ幅によって異なります。 ■ プログラムアクセス FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。PC の ビット 0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。"1" になる可能性 があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし , その場 合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置かなくてはなりません。 奇数アドレス例外はありません。 ■ データアクセス FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ インメントがアドレスに対して施されます。 • ワードアクセス : アドレスは , 4 の倍数 ( 最下位 2 ビットは強制的に "00") • ハーフワードアクセス : アドレスは , 2 の倍数 ( 最下位 ビットは強制的に "0") • バイトアクセス : − ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる のは , 実効アドレスの計算結果に対してです。例えば ,@(R13,Ri) のアドレッシングモー ドの場合 , 加算前のレジスタは ( たとえ最下位ビットが "1" であっても ) そのまま計算 に使用され , 加算結果の下位ビットがマスクされます。 計算前のレジスタがマスクされるわけではありません。 [ 例 ] LD @(R13,R2),R0 R13 R2 00002222H 00000003H +) 加算結果 アドレス端子 00002225H ↓ 下位2ビット強制マスク 00002224H 47 第 3 章 メモリ空間 , CPU および制御部 3.7 特別なメモリ領域 ここでは , MB91151A のメモリマップを示します。 ■ MB91151A のメモリマップ アドレス空間は 32 ビットリニアです。 図 3.7-1 に , MB91151A のメモリマップを示します。 図 3.7-1 MB91151A のメモリマップ 0000 0000H 0000 0100H 0000 0200H バイトデータ ハーフワードデータ ダイレクトアドレッシング領域 ワードデータ 0000 0400H 000F FC00H ベクタテーブル初期領域 000F FFFFH FFFF FFFFH ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ ングにより , 命令中で直接オペランドアドレスを指定することができます。 ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。 • バイトデータ (8 ビット ) : 000H ∼ 0FFH • ハーフワードデータ (16 ビット ) : 000H ∼ 1FFH • ワードデータ (32 ビット ) : 000H ∼ 3FFH ■ ベクタテーブル初期領域 000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。 EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。 48 第 3 章 メモリ空間 , CPU および制御部 3.8 命令概要 FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理 演算とビット操作およびダイレクトアドレッシング命令をサポートしています。命 令セットの一覧は ,「付録 E 命令一覧」を参照してください。各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効率を持ちます。 命令セットは以下の機能グループに分けることができます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ■ 命令概要 ● 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付演算や , アドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算命令を持ちます。 また,レジスタに即値をセットする即値転送命令や,レジスタ間転送命令も備えています。 算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行 います。 ● ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺回路 (I/O) への読出しと書込みにも使用されます。 ロードとストアは , バイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。 また , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令については ディスプレースメント付レジスタ間接やレジスタインクリメント・デクリメント付レ ジスタ間接のメモリアドレッシングも可能です。 ● 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと 持たないものがあり , 用途に応じて最適化を行うことができます。 分岐命令の詳細については「3.8.1 遅延スロット付き分岐命令」を参照してください。 ● 論理演算とビット操作 論理演算命令は汎用レジスタ間または汎用レジスタとメモリ(およびI/O)間でAND, OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/O) の 内容を直接操作することができます。メモリアドレッシングは一般的なレジスタ間接で す。 49 第 3 章 メモリ空間 , CPU および制御部 ● ダイレクトアドレッシング ダイレクトアドレッシング命令は I/O と汎用レジスタ間または I/O とメモリ間のアクセ スに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定する ことにより , 高速 , 高効率なアクセスを行うことができます。一部の命令についてはレ ジスタインクリメント・デクリメント付レジスタ間接のメモリアドレッシングも可能 です。 ● その他 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張等を行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 50 第 3 章 メモリ空間 , CPU および制御部 3.8.1 遅延スロット付き分岐命令 ここでは , 分岐命令のうち , 遅延スロットを持つものについて説明します。 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 遅延スロットに置かれ た命令を実行した後に , 分岐します。 ■ 遅延スロット付き分岐命令 遅延スロット付きの分岐命令には , 以下の命令があります。 JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D Label9 BNO:D label9 BEQ:D label9 BNE:D label9 BC:D Label9 BNC:D label9 BN:D label9 BP:D label9 BV:D Label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D Label9 BGT:D label9 BLS:D label9 BHI:D label9 ■ 遅延スロット付き分岐命令の動作 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延 スロット」と呼びます ) に置かれた命令を実行した後に , 分岐します。 分岐動作の前に遅延スロットの命令を実行するため , 見掛け上の実行速度が 1 サイクル となります。その代わり , 遅延スロットに有効な命令を入れることができないときは , NOP 命令を置かなくてはなりません。 [例] ; 命令の並び ADD R1,R2 ; BRA:D LABEL ; 分岐命令 MOV R2,R3 ; 遅延スロット …… 分岐の前に実行される … LABEL : ST R3,@R4 ; 分岐先 条件分岐命令の場合,分岐条件が成立する場合も成立しない場合も遅延スロットに置か れた命令は実行されます。 遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の 更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで 記述された順番で実行されます。 以下に , 具体例を示します。 • JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更 新しても影響を受けません。 51 第 3 章 メモリ空間 , CPU および制御部 [例] LDI:32 #Label,R0 JMP:D @R0 LDI:8 #0, ; Label に分岐 R0 ; 分岐先アドレスには影響を与えない。 … • RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受 けません。 [例] RET:D MOV ; これより前に設定された RP の示すアドレスへ分岐 R8, RP ; リターン動作には影響を与えない。 … Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。 [例] ADD #1, R0 BC:D Overflow ANDCCR #0 ; フラグ変化 ; 上記の命令の実行結果により分岐 ; このフラグ更新は上記分岐命令では参照しない。 … • CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更 新された内容が読み出されます。 [例] CALL:D Label MOV RP, ; RP を更新して分岐 R0 ; 上記 CALL:D の実行結果の RP を転送 … ■ 遅延スロット付き分岐命令の制限事項 ● 遅延スロットに置くことができる命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 • 1 サイクル命令 • 分岐命令ではないこと • 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」,「a」,「b」,「c」, ま たは「d」と記載された命令です。 ● ステップトレーストラップ 遅延スロットを持つ分岐命令の実行と遅延スロットの間では,ステップトレーストラッ プは発生しません。 ● 割込み・NMI 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し ません。 ● 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき , 未定義命令は NOP 命令として動作します。 52 第 3 章 メモリ空間 , CPU および制御部 3.8.2 遅延スロットなし分岐命令 ここでは , 分岐命令のうち , 遅延スロットを持たないものについて説明します。 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。 ■ 遅延スロットなし分岐命令 遅延スロットなしの分岐命令には , 以下の命令があります。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN label9 BP label9 BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS label9 BHI label9 ■ 遅延スロットなし分岐命令の動作 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が分 岐前に実行されることはありません。 [例] ; 命令の並び ADD R1,R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2,R3 ; 実行されない … LABEL ST R3,@R4 ; 分岐先 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。これは , 遅延スロットに適当な命令を入れることができ ないために NOP を明記した遅延スロット付き分岐命令に比べ , 命令コード効率を上げ ることができます。遅延スロットに有効な命令を設置できるときは遅延スロット付き の動作を選択し , そうでないときは遅延スロットなしの動作を選択することで , 実行速 度とコード効率を両立させることが可能となります。 53 第 3 章 メモリ空間 , CPU および制御部 3.9 EIT( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断 し , ほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), トラップ (Trap) の総称です。 ■ EIT ● 例外 例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令か ら再実行します。 ● 割込み 割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハー ドウェアです。 ● トラップ トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か ら再実行します。 ■ EIT 要因 EIT 要因として , 次のものがあります。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ ■ EIT からの復帰 EIT からの復帰には , RETI 命令を使用します。 ■ EIT の注意事項 ● 遅延スロット 分岐命令の遅延スロットには , EIT に関して制約があります。 詳しくは ,「3.8.1 遅延スロット付き分岐命令」を参照してください。 54 第 3 章 メモリ空間 , CPU および制御部 3.9.1 割込みレベル 割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。 ■ 割込みレベル 各レベルの割当てを , 表 3.9-1 に示します。 表 3.9-1 割込みレベル 割込みレベル 2 進数 10 進数 00000 0 00001 1 00010 2 00011 3 00100 4 00101 ∼ 01110 5 ∼ 14 01111 15 割込み要因 注意事項 ─ ILM の元の値が 16 ∼ 31 のとき , この範囲の値をプログラムによ り ILM に設定することはできま せん。 INTE 命令 , ステップトレーストラップ ( システム予約 ) ( システム予約 :NMI) 10000 ∼ 11110 16 ∼ 30 割込み 11111 31 ─ ILM 設定時 , ユーザ割込み禁止 ─ ICR 設定時 , 割込み禁止 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップ , そして INT 命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 ■ 割込みに対するレベルマスク 割込み要求が発生したときは , 割込み要因の持つ割込みレベルが ILM の保持するレベ ルマスク値と比較されます。そして , 次の条件が成立したときはマスクされ , 要求は受 理されません。 要因の持つ割込みレベル ≧ レベルマスク値 55 第 3 章 メモリ空間 , CPU および制御部 3.9.2 割込みスタック システムスタックポインタ (SSP) により示される領域で , PC および PS の値が退 避・復帰されます。割込み後は SSP の示すアドレスに PC, (SSP+4) のアドレスに PS が格納されています。 ■ 割込みスタック 図 3.9-1 に割込みスタックの動作図を示します。 図 3.9-1 割込みスタック動作図 [例] SSP [割込み前] 80000000H SSP メモリ 80000000H 7FFFFFFCH 7FFFFFF8H 56 [割込み後] 7FFFFFF8H メモリ 80000000H 7FFFFFFCH 7FFFFFF8H PS PC 第 3 章 メモリ空間 , CPU および制御部 3.9.3 EIT ベクタテーブル テーブルベースレジスタ (TBR) は , EIT 用ベクタテーブルの先頭アドレスを示すレ ジスタです。 TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。 ■ ベクタテーブル 1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR +(03FCH - 4 × vct) vctadr : ベクタアドレス vctofs : ベクタオフセット vct : ベクタ番号 加算結果の下位 2 ビットは常に "00" として扱われます。 000FFC00H ∼ 000FFFFFH の領域が , リセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。なおアーキテクチャ上のベク タテーブルを , 表 3.9-2 に示します。 57 第 3 章 メモリ空間 , CPU および制御部 表 3.9-2 ベクタテーブル ベクタ番号 ベクタアドレス 説明 0 00H 000FFFFCH 1 01H TBR + 03F8H システム予約 2 02H TBR + 03F4H システム予約 3 03H TBR + 03F0H システム予約 4 04H TBR + 03ECH システム予約 5 05H TBR + 03E8H システム予約 6 06H TBR + 03E4H システム予約 7 07H TBR + 03E0H コプロセッサ不在トラップ 8 08H TBR + 03DCH コプロセッサエラートラップ 9 09H TBR + 03D8H INTE 命令 10 0AH TBR + 03D4H 命令ブレーク例外 11 0BH TBR + 03D0H オペランドブレークトラップ 12 0CH TBR + 03CCH ステップトレーストラップ 13 0DH TBR + 03C8H システム予約 NMI( エミュレータ用 ) 14 0EH TBR + 03C4H 未定義命令例外 15 0FH TBR + 03C0H システム予約 (NMI) 16 10H TBR + 03BCH マスク可能割込み要因 #0 (IRQ0) 17 ∼ 63 11H ∼ 3FH TBR + 03B8H ∼ TBR + 0300H リセット マスク可能割込み要因 #1 (IRQ2) ∼ マスク可能割込み要因 #47 (IRQ47) 64 40H TBR + 02FCH システム予約 (REALOS にて使用 ) 65 41H TBR + 02F8H システム予約 (REALOS にて使用 ) 66 ∼ 255 42H ∼ FFH TBR + 02F4H ∼ TBR + 0000H INT 命令 58 第 3 章 メモリ空間 , CPU および制御部 3.9.4 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま す。 EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要 因のハンドラの命令を実行します。 そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラ実行順序は , 次 の 2 つの要素により決まります。 • EIT 要因受理の優先順位 • 受理した場合にほかの要因をどのようにマスクするか ■ EIT 要因受理の優先順位 EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの 要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で す。必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。 EIT 要因受理の優先度は , 表 3.9-3 のようになっています。 表 3.9-3 EIT 要因の受理の優先度とほかの要因へのマスク 受理の優先順位 要因 ほかの要因に対するマスク 1 リセット ほかの要因は破棄されます。 2 未定義命令例外 取消し INT 命令 I フラグ =0 3 コプロセッサ不在トラップ なし コプロセッサエラートラップ 4 ユーザ割込み ILM= 受理した要因のレベル 5 (NMI) ILM=15 7 INTE 命令 ILM=4 8 ステップトレーストラップ ILM=4 EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し た EIT 要因の各ハンドラの実行順序は , 表 3.9-4 のようになります。 59 第 3 章 メモリ空間 , CPU および制御部 表 3.9-4 EIT ハンドラの実行順序 ハンドラの実行順序 要因 1 リセット *1 2 未定義命令例外 3 ステップトレーストラップ *2 4 INTE 命令 *2 5 (NMI) 6 INT 命令 7 ユーザ割込み 8 コプロセッサ不在トラップ コプロセッサエラートラップ *1: ほかの要因は破棄されます。 *2: INTE 命令をステップ実行した場合は , ステップトレーストラップの EIT のみ発 生します。INTE による要因は無視されます。 図 3.9-2 に , 多重 EIT 処理の例を示します。 図 3.9-2 多重 EIT 処理の例 メインルーチン NMIの ハンドラ 優先度 ↓ (高)NMI 発生 INT命令の ハンドラ (1)最初に実行 (低)INT命令実行 (2)次に実行 60 第 3 章 メモリ空間 , CPU および制御部 3.9.5 EIT 動作 ここでは , EIT の動作について説明します。 以下の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すも のとします。 また ,「次の命令のアドレス」とは , EIT を検出した命令が下記のようになっている ことを意味します。 • LDI:32 のとき……… PC+6 • LDI:20, COPOP, COPLD, COPST, COPSV のとき……… PC+4 • その他の命令のとき……… PC+2 ■ ユーザ割込みの動作 ユーザ割込み要求が発生すると , 以下の順序で要求受理の可否が判定されます。 ● 割込み要求受理の可否判定 1)同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を 保持するものが選択されます。比較に使用されるレベルは , マスク可能割込みにつ いては対応する ICR の保持する値が使用されます。 2)同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持 つ割込み要求が選択されます。 3)選択された割込み要求の割込みレベルをILMにより決定されるレベルマスク値と比 較します。 - 割込みレベル ≧ レベルマスク値のとき , 割込み要求はマスクされ受理されな い。 - 割込みレベル < レベルマスク値のとき , 4) へ。 4)選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み 要求はマスクされ , 受理されません。I フラグが "1" ならば 5) へ。 5)上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。 ● 動作 EIT 要求検出時にユーザ割込みの要求が受理されると , 受理された割込み要求に対応し た割込み番号を使用して , CPU は以下のように動作します。 以下 1) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。 1)SSP-4 → SSP 2)PS → (SSP) 3)SSP-4 → SSP 4)次の命令のアドレス → (SSP) 5)受理した要求の割込みレベル → ILM 6)"0" → S フラグ 7)(TBR + 受理した割込み要求のベクタオフセット ) → PC 61 第 3 章 メモリ空間 , CPU および制御部 割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス に遷移します。 ■ INT 命令の動作 INT #u8:u8 で示されるベクタの割込みハンドラへ分岐します。 以下 1) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。 ● 動作 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) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。 ● 動作 1)SSP-4 → SSP 2)PS → (SSP) 3)SSP-4 → SSP 4)PC+2 → (SSP) 5)"00100" → ILM 6)"0" → S フラグ 7)(TBR + 3D8H) → PC INTE 命令およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用 しないでください。 また , ステップ実行中は INTE による EIT の発生はありません。 ■ ステップトレーストラップの動作 PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに しておくと , 一命令実行ごとにトラップが発生し , ブレークします。 ● ステップトレーストラップ検出の条件 1)T フラグ = 1 2)遅延分岐命令でないとき。 3)INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。 4)以上の条件が成立すると , 命令動作の切れ目でブレークします。 62 第 3 章 メモリ空間 , CPU および制御部 ● 動作 以下 1) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。 1)SSP-4 → SSP 2)PS → (SSP) 3)SSP-4 → SSP 4)次の命令のアドレス → (SSP) 5)"00100" → ILM 6)"0" → S フラグ 7)(TBR + 3CCH) → PC T フラグをセットしてステップトレーストラップをイネーブルにしたとき , ユーザ用の NMI とユーザ割込みは禁止状態となります。 また , INTE 命令による EIT は発生しなくなります。 ■ 未定義命令例外の動作 命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま す。 ● 未定義命令例外の検出条件 1)命令のデコード時に , 未定義命令であることを検出。 2)遅延スロット外に置かれている ( 遅延分岐命令の直後ではない )。 3)以上の条件が成立すると , 未定義命令例外が発生し , ブレークします。 ● 動作 以下 1) ∼ 6) の ( ) 内は , レジスタの指すアドレスを表します。 1)SSP-4 → SSP 2)PS → (SSP) 3)SSP-4 → SSP 4)PC → (SSP) 5)"0" → S フラグ 6)(TBR + 3C4H) → PC PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 ■ コプロセッサ不在トラップ 実装されていないコプロセッサを使用するコプロセッサ命令を実行すると,コプロセッ サ不在トラップが発生します。 63 第 3 章 メモリ空間 , CPU および制御部 ● 動作 以下 1) ∼ 6) の ( ) 内は , レジスタの指すアドレスを表します。 1)SSP-4 → SSP 2)PS → (SSP) 3)SSP-4 → SSP 4)次の命令のアドレス → (SSP) 5)"0" → S フラグ 6)(TBR + 3E0H) → PC ■ コプロセッサエラートラップ コプロセッサを使用しているときにエラーが発生した場合,次にそのコプロセッサを操 作するコプロセッサ命令を実行したときに , コプロセッサエラートラップが発生しま す。 <注意事項> 本製品にコプロセッサは搭載されていません。 ● 動作 以下 1) ∼ 6) の ( ) 内は , レジスタの指すアドレスを表します。 1)SSP-4 → SSP 2)PS → (SSP) 3)SSP-4 → SSP 4)次の命令のアドレス → (SSP) 5)"0" → S フラグ 6)(TBR + 3DCH) → PC ■ RETI 命令の動作 RETI 命令は , EIT 処理ルーチンから復帰する命令です。 ● 動作 以下 1) ∼ 4) の ( ) 内は , レジスタの指すアドレスを表します。 1)(R15) → PC 2)R15+4 → R15 3)(R15) → PS 4)R15+4 → R15 PS, PC を復帰するために参照するスタックポインタは , S フラグの内容に応じて選択さ れる点に注意してください。割込みハンドラ内で R15( スタックポインタ ) を操作する 命令を実行する場合は , S フラグを "1" にして USP を R15 として使用し , RETI 命令の 前に必ず S フラグを "0" に戻してください。 64 第 3 章 メモリ空間 , CPU および制御部 3.10 リセットシーケンス ここでは , CPU を動作状態にするときのリセットについて説明します。 ■ リセット要因 リセット要因は以下のとおりです。 • 外部リセット端子からの入力 • スタンバイ制御レジスタ (STCR) の SRST ビット操作によるソフトウェアリセット • ウォッチドッグタイマのカウントアップ • パワーオンリセット ■ リセットによる初期化 リセット要因が発生すると , CPU は初期化されます。 ● 外部リセット端子 , ソフトウェアリセットからの解除 • 端子を定められた状態に設定します。 • デバイス内部の各リソースを , リセット状態にします。制御レジスタは , あらかじ め決められた値に初期化されます。 • クロックとして , 最も遅いギアが選択されます。 ■ リセットシーケンス リセット要因が解除されると , CPU は以下のリセットシーケンスを実行します。 (000FFFFCH) → PC <注意事項> リセット後は , モードレジスタの設定により動作モードの設定が必要です。 65 第 3 章 メモリ空間 , CPU および制御部 動作モード 3.11 FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で , 動 作モードの制御を行います。 ■ 動作モード 動作モードには , バスモードとアクセスモードがあります。 バス・モード アクセス・モード シングルチップ 内ROM外バス 32ビット・バス幅 16ビット・バス幅 外ROM外バス 8ビット・バス幅 ● バスモード バスモードとは ,内部ROM の動作と外部アクセス機能の動作を制御するモードを指し , モード設定端子 (MD2, MD1, MD0) とモードレジスタ (MODR) の M1, M0 ビットで指定 します。 ● アクセスモード アクセスモードとは,外部データバス幅を制御するモードを示し,モード設定端子(MD2, MD1, MD0) と AMD0/AMD1/AMD32/AMD4/AMD5(Address Mode Register) 内の BW1, BW0 ビットで指定します。 ■ モード端子 MD2, MD1, MD0 の 3 端子で , 表 3.11-1 に示すように動作の指定を行います。 表 3.11-1 モード端子と設定モード モード端子 モード名 リセット ベクトル アクセス領域 外部データ バス幅 備考 MD2 MD1 MD0 0 0 0 外部ベクタモード 0 外部 8 ビット 0 0 1 外部ベクタモード 1 外部 16 ビット 0 1 0 外部ベクタモード 2 外部 32 ビット 0 1 1 内部ベクタモード 内部 (モードレジスタ) シングルチップモード * 1 - - 外部バスモード - - - 本品種では使用禁止 使用禁止 *:本品種では使用禁止 ■ モードデータ リセット後 CPU が "0000 07FFH" に書き込むデータをモードデータと呼びます。 "0000 07FFH" に存在するのはモードレジスタ (MODR) で , 本レジスタに設定した後は 本レジスタの設定モードで動作します。モードレジスタには , リセット後 1 度だけしか 書き込むことができません。 66 第 3 章 メモリ空間 , CPU および制御部 本レジスタによる設定値は , 書込み直後に有効となります。 MODR アドレス: bit 0000 07FFH 7 6 5 4 3 2 1 0 初期値 アクセス M1 M0 * * * * * * XXXXXXXXB W バス・モード設定ビット [ ビット 7, ビット 6] M1, M0 バスモード設定ビットです。モードレジスタ書込み後のバスモードの指定を行います。 M1 M0 0 0 シングルチップモード 0 1 内 RAM 外バスモード ─ 1 0 外バスモード ─ 1 1 機能 備考 本品種では設定禁止 ─ 設定禁止 注 ) 本品種では , 上記のうち "01", "10" のみ設定してください。 [ ビット 5 ∼ビット 0] * システム予約ビットです。 <注意事項> これらのビットには , 常に "0" を書き込んでください。 ● MODR 書込み時の注意点 MODR に書き込む前には必ず AMD0 ∼ AMD5 を設定し , 各 CS(Chip Select) 領域のバス 幅を決定してください。 MODR にはバス幅を設定するビットはありません。 バス幅に関しては , MODR 書込み前はモード端子 MD2 ∼ MD0 の値が , MODR 書込み 後は AMD0 ∼ AMD5 の BW1, BW0 の設定値が有効になります。 例えば , 外部リセットベクタは通常領域 0(CS0 がアクティブな領域 ) で行いますが , そ のときのバス幅は MD2 ∼ MD0 端子で決まります。MD2 ∼ MD0 でそのときのバス幅 を 32 ビットもしくは 16 ビットに設定し AMD0 には何も設定しないまま MODR に書 込みを行ってしまうと , AMD0 のバス幅の初期値は 8 ビットになっているため , 領域 0 はMODRに書込み後8ビットバスモードに遷移してバス動作してしまい,誤動作します。 このような問題を防ぐため , MODR を書き込む前には必ず AMD0 ∼ AMD5 を設定して おくことが必要です。 MODR書込み RST(リセット) バス幅指定:MD2,MD1,MD0 → AMD0~AMD5のBW1,BW0 67 第 3 章 メモリ空間 , CPU および制御部 3.12 クロック発生部 ( 低消費電力メカニズム ) クロック発生部は , 以下の機能を受け持つモジュールです。 • CPU クロック生成 ( ギア機能を含む ) • 周辺クロック生成 ( ギア機能を含む ) • リセット発生および要因の保持 • スタンバイ機能 • PLL( 逓倍回路 ) 内蔵 ■ クロック発生部のレジスタ構成 図 3.12-1 クロック発生部のレジスタ構成を示します。 図 3.12-1 クロック発生部のレジスタ構成 アドレス 000480H 000481H 000482H 000483H 000484H 000485H 000488H 68 7 0 RSRR/WTCR STCR PDRR CTBR GCR WPR PCTR リセット要因 / ウォッチドッグ周期制御レジスタ スタンバイ制御レジスタ DMA 要求抑止レジスタ タイムベースタイマクリアレジスタ ギア制御レジスタ ウォッチドッグリセット発生延期レジスタ PLL 制御レジスタ 第 3 章 メモリ空間 , CPU および制御部 ■ クロック発生部のブロックダイヤグラム 図 3.12-2 に , クロック発生部のブロックダイヤグラムを示します。 図 3.12-2 クロック発生部のブロックダイヤグラム [ギア制御部] GCRレジスタ CPUギア 周辺ギア X0 X1 発振 回路 CPUクロック MPX 1/2 内部 クロック 生成回路 内部Busクロック 内部周辺クロック PLL [ストップ・スリープ制御部] 内部割込み 内部リセット STCRレジスタ STOP状態 DMA要求 SLEEP状態 CPU Hold要求 状態遷移 PDRRレジスタ 制御回路 リセット 発生 F/F 内部リセット パワー・オン検出回路 V CC [リセット要因回路] R RSRRレジスタ GND RST端子 [ウォッチドッグ制御部] WPRレジスタ ウォッチ ドッグ F/F カウント クロック CTBRレジスタ タイムベースタイマ 69 第 3 章 メモリ空間 , CPU および制御部 3.12.1 リセット要因レジスタ (RSRR) とウォッチドッグ周 期制御レジスタ (WTCR) リセット要因レジスタ (RSRR) は , 発生したリセットの種別を保持するレジスタで , ウォッチドッグ周期制御レジスタ (WTCR) は , ウォッチドッグタイマの周期を指定 するレジスタです。 ■ リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) のレジス タ構成は , 以下のとおりです。 RSRR/WTCR bit 7 アドレス :000480H PONR (R) 6 − (−) 5 4 WDOG ERST (R) (R) 3 2 1 0 SRST − WT1 WT0 (R) (−) (W) (W) Power ON 後の初期値 1-XX X-00B [ ビット 7] PONR 本ビットが "1" であると , 直前に発生したリセットはパワーオンリセットであった ことを示します。本ビットが "1" の場合は , 本レジスタの本ビット以外の内容は無 効となります。 [ ビット 6] (Reserved) 本ビットは予約ビットです。読出し値は不定です。 [ ビット 5] WDOG 本ビットが"1"であると,直前に発生したリセットはウォッチドッグリセットであっ たことを示します。 [ ビット 4] ERST 本ビットが "1" であると , 直前に発生したリセットは外部リセット端子に起因する リセットであったことを示します。 [ ビット 3] SRST 本ビットが "1" であると , 直前に発生したリセットはソフトウェアリセット要求に 起因するリセットであったことを示します。 [ ビット 2] (Reserved) 本ビットは予約ビットです。読出し値は不定です。 70 第 3 章 メモリ空間 , CPU および制御部 [ ビット 1, ビット 0] WT1, WT0 本ビットは , ウォッチドッグの周期を指定するものです。本ビットと選択する周期 は以下のような関係があります。本ビットはすべてのリセットにより初期化されま す。 ウォッチドッグリセットの発生を抑止する WPR への最終 5AH 書込みからウォッチ ために最低限必要な WPR への書込み間隔 ドッグリセットが発生するまでの時間 WT1 WT0 0 0 φ × 215( 初期値 ) φ × 215 ∼ φ × 216 0 1 φ × 217 φ × 217 ∼ φ × 218 1 0 φ × 219 φ × 219 ∼ φ × 220 1 1 φ × 221 φ × 221 ∼ φ × 222 ただし , φ は GCR の CHC=1 の場合は X0 の 2 倍 , GCR の CHC=0 の場合は X0 の 1 倍の周期となります。 71 第 3 章 メモリ空間 , CPU および制御部 3.12.2 スタンバイ制御レジスタ (STCR) スタンバイ制御レジスタ (STCR) は , スタンバイ動作の制御と発振安定待ち時間の指 定を行うレジスタです 。 ■ スタンバイ制御レジスタ (STCR) スタンバイ制御レジスタ (STCR) のレジスタ構成は , 以下のとおりです。 STCR bit アドレス :000481H 7 STOP 6 SLEP 5 HIZX 4 SRST (R/W) (R/W) (R/W) (W) 3 2 OSC1 OSC0 (R/W) (R/W) 1 0 − − (−) (−) 初期値 0001 11--B [ ビット 7] STOP 本ビットに "1" を書き込むと内部周辺のクロック停止 , 内部 CPU のクロック停止 , および発振の停止を行うストップ状態になります。 [ ビット 6] SLEP 本ビットに "1" を書き込むと内部 CPU のクロック停止を行うスタンバイ状態になり ます。なお , STOP ビットと本ビット両方に "1" を書き込んだ場合は , STOP ビット の方が優先となりますので , ストップ状態になります。 [ ビット 5] HIZX 本ビットに "1" を書き込んだ状態でストップ状態になるとデバイスの端子をハイイ ンピーダンスにします。 [ ビット 4] SRST 本ビットに "0" を書き込むとソフトウェアリセット要求を発生します。 リード値は不定です。 [ ビット 3, ビット 2] OSC1, OSC0 本ビットは , 発振安定待ち時間を指定するものです。本ビットと選択する周期は以 下のような関係があります。本ビットはパワーオンリセットにより初期化され , そ れ以外のリセット要因では影響を受けません。 OSC1 OSC0 0 0 φ × 23 0 1 φ × 216 1 0 φ × 218 1 1 φ × 213 発振安定待ち時間 80ms × 2 × 8 ( 初期値 ) ただし ,φ は GCR の CHC=1 の場合は X0 の 2 倍 , GCR の CHC=0 の場合は X0 の 1 倍の周期となります。 [ ビット 1, ビット 0] (Reserved) 本ビットは予約ビットです。読出し値は不定です。 72 第 3 章 メモリ空間 , CPU および制御部 タイムベースタイマクリアレジスタ (CTBR) 3.12.3 タイムベースタイマクリアレジスタ (CTBR) は , タイムベースタイマの内容を 0 初期 化するためのレジスタです 。 ■ タイムベースタイマクリアレジスタ (CTBR) タイムベースタイマクリアレジスタ (CTBR) のレジスタ構成は , 以下のとおりです。 CTBR bit アドレス :000483H 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 (W) (W) (W) (W) (W) (W) (W) (W) 初期値 XXXX XXXXB [ ビット 7 ∼ビット 0] D7 ∼ D0 本レジスタに連続して A5H, 5AH を書き込むと , 5AH の直後にタイムベースタイマ を "0" にクリアします。本レジスタの読出し値は不定です。A5H ライトと 5AH ライ トの間の時間は制限がありません。 <注意事項> 本レジスタを使用してタイムベースタイマをクリアすると , 発振安定待ち間隔 , ウォッチ ドッグ周期およびタイムベースを使用している周辺の周期が一時的に変動します。 73 第 3 章 メモリ空間 , CPU および制御部 ギア制御レジスタ (GCR) 3.12.4 ギア制御レジスタ (GCR) は , CPU, 周辺系クロックのギア機能を制御するレジスタ です 。 ■ ギア制御レジスタ (GCR) ギア制御レジスタ (GCR) のレジスタ構成は , 以下のとおりです。 GCR bit アドレス :000484H 7 CCK1 6 5 4 3 CCK0 DBLAK DBLON PCK1 2 PCK0 − 0 CHC (R/W) (R/W) (R/W) (−) (R/W) (R) (R/W) (R/W) 1 初期値 1100 11-1B [ ビット 7, ビット 6] CCK1, 0 本ビットは , CPU 系のギア周期を指定するものです。本ビットと選択する周期は以 下のような関係があります。本ビットはリセットにより初期化されます。 CCK1 CCK0 CHC 0 0 0 PLL × 1 0 1 0 PLL × 1/2 1 0 0 PLL × 1/4 1 1 0 PLL × 1/8 0 0 1 原発振× 1/2 0 1 1 原発振× 1/2 × 1/2 1 0 1 原発振× 1/2 × 1/4 1 1 1 原発振× 1/2 × 1/8 CPU 系マシンクロック ( 原発振 :X0 からの入力周波数 ) ( 初期値 ) [ ビット 5] DBLAK 本ビットは , クロックダブラの動作状態を示すビットです。リードオンリであり , ライトは無視されます。本ビットはリセットにより初期化されます。 バス周波数の切換えにはタイムラグがありますが , 実際に動作が切り換わったかど うかは本ビットで確認できます。 DBLAK 74 内部 : 外部の動作周波数 0 1:1 で動作中 1 2:1 で動作中 ( 初期値 ) 第 3 章 メモリ空間 , CPU および制御部 [ ビット 4] DBLON 本ビットは , クロックダブラの動作状態を指定するビットです。本ビットはリセッ トにより初期化されます。 DBLON 内部 : 外部の動作周波数 0 1:1 で動作 1 2:1 で動作 ( 初期値 ) [ ビット 3, ビット 2] PCK1, PCK0 本ビットは , 周辺系のギア周期を指定するものです。本ビットと選択する周期は以 下のような関係があります。本ビットはリセットにより初期化されます。 PCK1 PCK0 CHC 0 0 0 PLL × 1 0 1 0 PLL × 1/2 1 0 0 PLL × 1/4 1 1 0 PLL × 1/8 0 0 1 原発振× 1/2 0 1 1 原発振× 1/2 × 1/2 1 0 1 原発振× 1/2 × 1/4 1 1 1 原発振× 1/2 × 1/8 周辺系マシンクロック ( 原発振 :X0 からの入力周波数 ) ( 初期値 ) [ ビット 0] CHC 本ビットは , 発振回路の 1/2 分周系と PLL 系の 2 種類のいずれを基本クロックとし て使用するかを選択します。 "1" にすると 1/2 分周系に , "0" にすると PLL 系になります。 75 第 3 章 メモリ空間 , CPU および制御部 ウォッチドッグリセット発生延期レジスタ (WPR) 3.12.5 ウォッチドッグリセット発生延期レジスタ (WPR) は , ウォッチドッグタイマ用フ リップフロップをクリアするレジスタです。本レジスタを用いてウォッチドッグリ セットの発生を延期させます。 ■ ウォッチドッグリセット発生延期レジスタ (WPR) ウォッチドッグリセット発生延期レジスタ (WPR) のレジスタ構成は , 以下のとおりで す。 WPR bit アドレス :000485H 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 (W) (W) (W) (W) (W) (W) (W) (W) 初期値 XXXX XXXXB [ ビット 7 ∼ビット 0] D7 ∼ D0 本レジスタに連続して A5H, 5AH を書き込むと , 5AH の直後にウォッチドッグタイ マ用フリップフロップを "0" にクリアし , ウォッチドッグリセットの発生を延期さ せます。 本レジスタの読出し値は不定です。A5H と 5AH の間の時間は制限がありませんが , 以下の表の期間内に両データの書込みを終えないとウォッチドッグリセットを発 生します。 STCR ウォッチドッグリセットの発生を抑止する WPR への最終 5AH 書込みからウォッチ ために最低限必要な WPR への書込み間隔 ドッグリセットが発生するまでの時間 WT1 WT0 0 0 φ × 215 φ × 215 ∼ φ × 216 0 1 φ × 217 φ × 217 ∼ φ × 218 1 0 φ × 219 φ × 219 ∼ φ × 220 1 1 φ × 221 φ × 221 ∼ φ × 222 ただし ,φ は GCR の CHC=1 の場合は X0 の 2 倍 , GCR の CHC=0 の場合は PLL の 1 倍の周期となります。 76 第 3 章 メモリ空間 , CPU および制御部 DMA 要求抑止レジスタ (PDRR) 3.12.6 DMA 要求抑止レジスタ (PDRR) は , DMA 要求を一時的に抑止して , CPU 動作させ るレジスタです。 ■ DMA 要求抑止レジスタ (PDRR) DMA 要求抑止レジスタ (PDRR) のレジスタ構成は , 以下のとおりです。 PDRR bit アドレス :000482H 15 14 13 12 11 10 9 8 − − − − D3 D2 D1 D0 (−) (−) (−) (−) (R/W) (R/W) (R/W) (R/W) 初期値 ---- 0000B [ ビット 11 ∼ビット 8] D3 ∼ D0 本ビットに "0" 以外の値を書き込むと , 以降の DMA から CPU への DMA 転送を抑 止します。以降 , 本ビットの内容を "0" にしない限り , DMA は使えなくなります。 <注意事項> PDRR レジスタは単独では使用しないでください。必ず HRCL レジスタと組み合わせて 使ってください。 77 第 3 章 メモリ空間 , CPU および制御部 PLL 制御レジスタ (PCTR) 3.12.7 PLL 制御レジスタ (PCTR) は , PLL の発振を制御するレジスタです。 本レジスタは , GCR の CHC が "1" のときのみ設定を変更可能です。 ■ PLL 制御レジスタ (PCTR) PLL 制御レジスタ (PCTR) のレジスタ構成は , 以下のとおりです。 PCTR bit15 bit14 SLCT1 SLCT0 (R/W) (R/W) アドレス 000488H bit13 bit12 − (−) − (−) bit11 VSTP (R/W) bit10 bit9 bit8 − (−) − (−) − (−) 初期値 00XX 0XXXB [ ビット 15, ビット 14] SLCT1, SLCT0 本ビットは , PLL の逓倍率を制御するものです。電源投入時のみ初期化されます。 本ビットの設定は GCR の CHC を "0" にしたときの内部動作周波数になります。 SLCT1 SLCT0 内部動作周波数 ( 原振 :16.5MHz の場合 ) 0 0 8.25 MHz 動作 [ 初期値 ] 0 1 16.5 MHz 動作 1 X 33.0 MHz 動作 [ ビット 13, ビット 12, ビット 10 ∼ビット 8] 予約ビット 常に "0" を書いてください。読出し値は不定です。 [ ビット 11] VSTP 本ビットは , PLL の発振を制御するものです。電源投入時および外部リセットによ り初期化されます。 なお PLL を停止して使用する場合は , リセット解除後に毎回停止させる必要があり ます。 VSTP PLL 動作 0 発振 1 発振停止 [ 初期値 ] <注意事項> ストップモードに移行すると , 本ビットの設定にかかわらず , PLL は停止します。 78 第 3 章 メモリ空間 , CPU および制御部 3.12.8 ウォッチドッグ機能 ウォッチドッグ機能は , プログラムの暴走状態を検出する機能です。プログラムの暴 走などによりウォッチドッグリセット延期レジスタへの A5H, 5AH 書込みが定められ た時間内に行われなかった場合 , ウォッチドッグタイマよりウォッチドッグリセット 要求が発生します。 ■ ウォッチドッグ制御部のブロックダイヤグラム 図 3.12-3 に , ウォッチドッグ制御部のブロックダイヤグラムを示します。 図 3.12-3 ウォッチドッグ制御部のブロックダイヤグラム MPX タイム ベースタイマ リセット発生 エッジ検出 F/F ウォッチ ドッグ 内部リセット ラッチ 状態デコーダ F/F リセット状態遷移要求信号 CTBR WT1,WT0 クリア 状態遷移 制御回路 WPR A5&5A RSRR WDOG 内部バス ■ ウォッチドッグタイマの起動 ウォッチドッグタイマは , ウォッチドッグ制御レジスタ (WTCR) への書込みにより動 作を開始します。このとき , ウォッチドッグタイマのインターバル時間を WT1, WT0 ビットにより設定します。インターバル時間の設定は , 最初の書込みで設定した時間だ けが有効となり , それ以降の設定は無視されます。 [例] LDI:8 #10000000b,R1 ; WT1,0=10 LDI:32 #WTCR,R2 STB R1,@R2 ; ウォッチドッグ起動 79 第 3 章 メモリ空間 , CPU および制御部 ■ リセット発生延期 一度 , ウォッチドッグタイマを起動すると , プログラムで定期的にウォッチドッグリ セット延期レジスタ (WPR) に対して定期的に A5H, 5AH を書き込む必要があります。 ウォッチドッグリセット用フリップフロップは,タイムベースタイマの選択したタップ の立下りを記憶し , 2 回目の立下りで本フリップフロップがクリアされていないと , リ セットが生成されます。 図 3.12-4 に , ウォッチドッグタイマの動作タイミングを示します。 図 3.12-4 ウォッチドッグタイマの動作タイミング タイムベースタイマ・オーバフロー ウォッチドッグフリップフロップ WTEライト ウォッチドッグ起動 ウォッチドッグクリア ↑ウォッチドッグリセット発生 ■ プログラム以外のリセット延期要因 ウォッチドッグタイマは次の要因により自動的にリセット発生を延期します。 1. ストップ,スリープ 2. DMA 転送 3. エミュレータデバッガ,モニタデバッガを使用時のブレーク中 4. INTE 命令の実行 5. ステップトレーストラップ (PS レジスタの T=1 による 1 命令ごとのブレーク ) <注意事項> • 最初の A5H と次の 5AH の間 , 書込み間隔の規定はありません。ウォッチドッグの延期 は 2 回の 5AH の書込み間隔が WT1,WT0 ビットで指定した時間内であり , かつそれら の間に 1 回の A5H の書込みがあることでのみ行えます。 • 最初の A5H の後 , 書込みが 5AH 以外であったときは , 最初の A5H の書込みがあったこ とを無効にします。このため , 再度 A5H の書込みを行う必要があります。 ■ タイマベースタイマ タイマベースタイマは,ウォッチドッグタイマへのクロック供給および発振安定時間待 ち用のタイマとして使用されています。動作クロック φ は GCR の CHC=1 の場合は X0 の 2 倍 , CHC=0 場合は X0 の 1 倍の周期となります。 図 3.12-5 に , タイマベースタイマの構成を示します。 図 3.12-5 タイマベースタイマの構成 φ 80 1/21 1/22 1/23 ・ ・ ・ ・ ・ ・ 1/218 1/219 1/220 1/221 第 3 章 メモリ空間 , CPU および制御部 ギア機能 3.12.9 ギア機能は , クロックを間引いて供給する機能です。CPU 用と周辺用の 2 種の独立 な回路があり , 異なるギア比でも CPU と周辺の間でのデータの送受を行うことがで きます。さらに , 原クロックの選択として , 発振回路からのクロックと同周期のク ロックを使用するかまたは 1/2 分周回路を通したクロックを使用するかの指定が行 えます。 ■ ギア制御部のブロックダイヤグラム 図 3.12-6 に , ギア制御部のブロックダイヤグラムを示します。 図 3.12-6 ギア制御部のブロックダイヤグラム CPU系ギア 間隔指示信号 内部バス PCK1,PCK0 CHC 発振 回路 1/2 (2逓倍) 選択回路 X0 X1 周辺クロック 系統ギア 間隔生成回路 内部クロック生成回路選択回路 CPUクロック 系統ギア 間隔生成回路 CCK1,CCK0 CPUクロック 内部バスクロック 内部周辺クロック PLL 周辺系ギア 間隔指示信号 ■ 設定 CPU のクロックの制御であればギア制御レジスタ (GCR) の CCK1, CCK0 ビットを , 周 辺のクロックの制御であれば同レジスタの PCK1, PCK0 ビットを , それぞれ望む値に設 定することで , 希望するギア比に設定することができます。 81 第 3 章 メモリ空間 , CPU および制御部 [ 例 1] LDI:32 #GCR,R2 LDI:8 #11111100b,R1 ; CCK=11,PCK=11,CHC=0 STB R1,@R2 ; CPU clock=1/8f,Periferal clock=1/8f,f=direct LDI:8 #01111000b,R1 ; CCK=01,PCK=10,CHC=0 STB R1,@R2 ; CPU clock=1/2f,Periferal clock=1/4f,f=direct LDI:8 #00111000b,R1 ; CCK=00,PCK=10,CHC=0 STB R1,@R2 ; CPU clock=f,Periferal clock=1/4f,f=direct LDI:8 #00110000b,R1 ; CCK=00,PCK=00,CHC=0 STB R1,@R2 ; CPU clock=f,Periferal clock=f,f=direct LDI:8 #10110000b,R1 ; CCK=10,PCK=00,CHC=0 STB R1,@R2 ; CPU clock=1/4f,Periferal clock=f,f=direct ギア制御レジスタの CHC ビットを "1" にすると 1/2 分周回路の出力を原クロックとし て選択し , "0" にすると発振回路からのクロックと同周期のクロックをそのまま使用し ます。原クロックを切り換えるために , CPU 系と周辺系は同時に変化します。 [ 例 2] LDI:8 #01110001b,R1 ; CCK=01,PCK=00,CHC=1 LDI:32 #GCR,R2 STB R1,@R2 ; CPU clock=1/2f,Periferal clock=f,f=1/2xtal LDI:8 #00110001b,R1 ; CCK=00,PCK=00,CHC=1 STB R1,@R2 ; CPU clock=f,Periferal clock=f,f=1/2xtal LDI:8 #00110000b,R1 ; CCK=00,PCK=00,CHC=0 STB R1,@R2 ; CPU clock=f,Periferal clock=f,f=direct 図 3.12-7 に , ギア切換えのタイミングを示します。 図 3.12-7 ギア切換えのタイミング 原クロック CPU クロック(a) CPU クロック(b) 周辺クロック(a) 周辺クロック(b) CHC CCK値 PCK値 82 01 00 00 第 3 章 メモリ空間 , CPU および制御部 3.12.10 リセット要因保持 リセット要因保持回路は , 直前に発生したリセットの要因を保持する機能です。読出 しにより全フラグを "0" にします。読み出さない限り , 一度立った要因フラグは消え ません。 ■ リセット要因保持回路のブロックダイヤグラム 図 3.12-8 に , リセット要因保持回路のブロックダイヤグラムを示します。 図 3.12-8 リセット要因保持回路のブロックダイヤグラム ウォッチドッグタイマ リセット検出回路 リセット入力回路 RST端子 PONR PONR - - WDOG WDOG ERST ERST SRST SRST - - 内部バス パワーオン検出 SRST 状態 遷移 回路 デコーダ .or. ■ 設定 本機能を使用するにあたっての特別な設定は不要です。リセットエントリアドレスに 置くプログラムの初めの方に , リセット要因レジスタの読出しと , 適切なプログラムへ 分岐する命令を置くようにします。 [例] RESET-ENTRY LDI:32 #RSRR,R10 LDI:8 #10000000B,R2 LDUB @R10,R1 ; GET RSRR VALUE INTO R1 MOV R1,R10 ; R10 USED AS A TEMPORARY REGISTER AND R2,R10 ; WAS PONR RESET? BNE PONR-RESET LSR #1,R2 ; POINT NEXT BIT MOV R1,R10 ; R10 USED AS A TEMPORARY REGISTER AND R2,R10 ; WAS WATCH DOG RESET? BNE WDOG-RESET … 83 第 3 章 メモリ空間 , CPU および制御部 <注意事項> • PONR ビットが "1" の場合は , それ以外のビットの内容は不定として扱ってください。 また , このため , リセット要因をチェックする必要がある場合には必ず先頭にパワーオ ンリセット確認の命令を置いてください。 • パワーオンリセットのチェック以外のリセット要因チェックは,任意の位置で行うこと ができます。優先度は , チェックした順番で決まります。 84 第 3 章 メモリ空間 , CPU および制御部 PLL のクロック設定例 3.12.11 ここでは , PLL クロック設定例とアセンブラのソース例について説明します。 ■ PLL のクロック設定例 図 3.12-9 に , PLL を使用した 33MHz 動作への切換え手順の例を示します。 図 3.12-9 PLL のクロック設定例 No CHC = 1 CHC ← 1 Yes DBLON = 1 Yes PLL 関係の設定を行う場合は必ずクロックを 2 分周系 に切り換えた後に行います。 No ダブラを ON にすることで ,CPU=1/1 にギアが固定とな ります。 周辺系は任意に設定が可能です。 DBLON ← 1 DBLAK=1 Yes No ( 注意事項 ):外部バスを使用しない場合はダブラを使用 する必要はありません。その場合 CPU の ギアも任意に設定できます。 No VSTP=0 Yes VSTP ← 0 WAIT 300µs SLCT1 ← 1 PLL が停止している場合は再起動します。ただし PLL の再起動時は , 安定するまでの待ち時間 300 µs 以上を , ソフトウェアで取る必要があります。 PLL からの出力タップを 33MHz に切り換える。 クロックを 2 分周系から PLL に切り換える。 CHC ← 0 <注意事項> • ここに記載した DBLON, VSTP, SLCT1 の各ビットの設定順序の指定は特にありませ ん。 • PLL の再起動時には , 安定するまでの待ち時間 300 µs 以上を , ソフトウェアで必ず取っ てください。 また , キャッシュ ON/OFF などで待ち時間の不足を起こさないように注意してくださ い。 85 第 3 章 メモリ空間 , CPU および制御部 ■ クロック系統参考図 図 3.12-10 に , クロック系統参考図を示します。 図 3.12-10 クロック系統参考図 2分周系入力 1/2 16.5MHz 原振入力 PLL系入力 PLL 1/2 1/2 VSTP 33MHz 16.5MHz CHC 1 0 SLCT1,0 1X 01 00 CCK1,0 1/1 1/2 1/4 1/8 DBLON 周辺系ギア PCK1,0 1/1 1/2 1/4 1/8 PCTR レジスタ GCR レジスタ ■ アセンブラのソース例 (PLL 系への切換え動作の例 ) ; ******************************************* PLL Sample Program ; ******************************************* ; Load Setting Data ldi:20 #GCR,R0 ldi:20 #PCTR,R1 ldi:8 #GCR_MASK,R2 ; GCR_MASK = 0000 0001 b ldi:8 #PCTR_MASK,R3 ; PCTR_MASK = 0000 1000 b ldub @R0,R4 ; read GCR register ldub @R1,R5 ; read PCTR register st PS,@-R15 ; push processor status stilm #0x0 ; disable interrupt and R4,R2 beq CHC_0 bra CHC_1 borl #0001B,@r0 call VCO_RUN call DOUBLER_ON ; CHC_0: ; to 1/2 clock @r0=GCR register CHC_1: PLL_SET_END: ld 86 @R15+,PS バス系 CPU系ギア 1/2 8.25MHz ; CPU系 ; pop processor status 周辺系 第 3 章 メモリ空間 , CPU および制御部 ; ******************************************* ; VCO Setting ; ******************************************* VCO_RUN: st R3,@-R15 ; push R3 ldi:8 #PCTR _MASK,R3 ; PCTR_MASK = 0000 1000 b and R5,R3 ; PCTR → VSTP=1 ? beq LOOP_300US_END ; if VSTP = 0 return st R2,@-R15 ; push R2 for Loop counter bandl #0111B,@r1 ; set VSTP = 0 ldi:20 #0x41A,R2 ; wait 300 µs ; 300 µs = 160ns(6.25MHz)* 7 * 300(834)cycle WAIT_300US: add2 #(-1),R2 ; 834h/2 = 41Ah (if cache on) bne WAIT_300US ; ld @R15+,R2 ; Pop R2 ld @R15+,R3 ; Pop R3 LOOP_300US_END: ret ; ******************************************* ; doubler ON ; ******************************************* DOUBLER_ON: borh #0001B,@r0 ; doubler ON btsth #0010B,@r0 ; check DBLAK beq LOOP_DBLON1 ; loop while DBLAK = 0 bandl #1110B,@r0 ; to 1/1(PLL)clock LOOP_DBLON1: nop nop nop nop nop nop ret 87 第 3 章 メモリ空間 , CPU および制御部 3.13 低消費電力モード 低消費電力モードには , ストップ状態とスリープ状態があります。 ■ ストップ状態の概要 ストップ状態とは , すべての内部クロックを停止し , 発振回路の動作停止した状態をい います。この状態になると , 消費電力を最低限に抑えることができます。 ストップ状態への移行は , 命令によるスタンバイ制御レジスタ (STCR) への書込みに よって行います。 ストップ状態からの復帰は , 以下のいずれかで行います。 • 割込み要求 ( ただし , ストップ状態中でも割込み要求が発生可能な周辺に限る ) • RST 端子への "L" レベルの印加 ストップ状態ではすべての内部クロックが停止しますので , 復帰用の割込みを生成 できるもの以外の内蔵周辺は停止状態になります。 ■ スリープ状態の概要 スリープ状態とは , CPU クロックと内部バスクロックを停止した状態をいいます。こ の状態では , CPU 動作不要な状況での消費電力をある程度抑えることができます。 スリープ状態への移行は , 命令によるスタンバイ制御レジスタ (STCR) への書込みに よって行います。 スリープ状態からの復帰は , 以下のいずれかで行います。 • 割込み要求 • リセット要因の発生 スリープ状態では周辺クロックは動作しますので,内蔵周辺による割込みで解除ができ ます。 ■ 低消費電力モードの動作一覧 表 3.13-1 に , 低消費電力モードの動作一覧を示します。 表 3.13-1 低消費電力モードの動作一覧表 発振器 動作状態 内部クロック 遷移条件 周辺 端子 解除方法 ○ ○ ○ − × ○ ○ ○ リセット 割込み × × × * 外部リセット 外部割込み 標準 CPU/ 内部バス 周辺 − ○ ○ スリープ STCR の SLEP=1 ○ ストップ STCR の STOP=1 × ラン ○ : 動作 × : 停止 * : STCR の HIZX=0 で前の状態保持 , HIZX=1 でハイインピーダンス状態 88 第 3 章 メモリ空間 , CPU および制御部 ストップ状態 3.13.1 ストップ状態とは , すべての内部クロックを停止し , 発振回路の動作停止した状態を いいます。この状態になると , 消費電力を最低限に抑えることができます。 ■ ストップ制御部のブロックダイヤグラム 図 3.13-1 に , ストップ制御部のブロックダイヤグラムを示します。 図 3.13-1 ストップ制御部のブロックダイヤグラム STOP状態遷移要求信号 停止信号 STCR STOP CPU クロック 生成 内部バス クロック 生成 内部DMA クロック 生成 CPU 固定許可 CPUクロック 内部クロック生成回路 内部割込み 内部リセット 状態遷移制御回路 clear 状態デコーダ 内部バス 内部周辺 クロック 生成 CPU 固定要求 STOP状態表示信号 クロック停止 要求信号 内部バスクロック 内部DMAクロック 外部バスクロック 内部周辺クロック クロック解除 要求信号 ■ ストップ状態への移行 ● 命令を用いてストップ状態にする方法 ストップ状態にするためには , STCR のビット 7 へ "1" を書き込みます。 ストップ要求を発行したのち , CPU が内部バスを使用していない状態になった後で , CPU クロック→内部バスクロック→内部 DMA クロック→内部周辺クロックの順にク ロックを停止します。発振回路の停止は内部周辺クロック停止と同時に行います。 <注意事項> 命令を用いてストップ状態にするためには , 必ず下記ルーチンを使用してください。 (1)STCR へ書き込む前には , GCR の [CCK1,CCK0] と [PCK1,PCK0] ビットの組に同じ値 を設定し , CPU 系クロックと周辺系クロックのギア比を同一にしてください。 (2)そのとき , GCR の CHC ビットには必ず "1" を設定し , 1/2 分周系のクロックを選択し てください。 GCR の CHC ビットを "0" の状態でストップ状態にすることは禁止です。 (3)STCR への書込み直後には , 最低 6 個の連続する NOP 命令が必要です。 (4)ストップ状態にする前にクロックダブラを OFF にしてください。 89 第 3 章 メモリ空間 , CPU および制御部 ● 設定方法 LDI:8 #00000001b,R1 ; CPU= 周辺ギア比 ,CHC=1 LDI:32 #GCR,R2 STB R1,@R2 LDI:8 #10010000b,R1 ; STOP=1 LDI:32 #STCR,R2 STB R1,@R2 NOP ; NOP ; NOP ; NOP ; NOP ; NOP ; ■ ストップ状態からの復帰 ストップ状態からの復帰は割込みとリセットの発生で行うことができます。 ● 割込みによる復帰 周辺の機能に付随する割込み許可ビットが有効であれば,周辺の割込みの発生によりス トップ状態から復帰します。 ストップ状態から通常動作状態へは , 以下の手順で行います。 1)割込み発生 2)発振回路動作再開 3)発振安定待ち 4)安定後 , 内部周辺クロック供給再開 5)内部バスクロック供給再開 6)内部 CPU クロック供給再開 発振安定待ち時間後のプログラム実行は , 以下のようになります。 • 発生した割込みのレベルが CPU の ILM, I フラグで許可されている場合 レジスタ退避を行った後に , 割込みベクタを取り込んで割込み処理ルーチンより実 行 • 発生した割込みのレベルが CPU の ILM, I フラグで禁止されている場合 ストップ状態に入れた命令以降の命令より実行 90 第 3 章 メモリ空間 , CPU および制御部 ● RST 端子による復帰 ストップ状態からの通常動作状態へは , 以下の手順で行います。 1)RST 端子への "L" レベル印加 2)内部リセット発生 3)発振回路動作再開 4)発振安定待ち 5)安定後 , 内部周辺クロック供給再開 6)内部バスクロック供給再開 7)内部 CPU クロック供給再開 8)リセットベクタ 取込み 9)リセットエントリアドレスより命令の実行再開 <注意事項> • 周辺からの割込み要求がすでに発生している場合は , ストップ状態にならず , 書込みは 無視されます。 • パワーオンリセット以外では発振安定待ち時間中のすべての内部クロック供給は行わ れません。パワーオンリセットでは内部状態の初期化を行う必要があるため , すべての 内部クロックの供給を行います。 91 第 3 章 メモリ空間 , CPU および制御部 スリープ状態 3.13.2 スリープ状態とは , CPU クロックと内部バスクロックを停止した状態をいいます。 この状態では , CPU 動作不要な状況での消費電力をある程度抑えることができます。 ■ スリープ制御部のブロックダイヤグラム 図 3.13-2 に , スリープ制御部のブロックダイヤグラムを示します。 図 3.13-2 スリープ制御部のブロックダイヤグラム Sleep状態遷移要求信号 停止信号 STCR SLEP × 内部バス クロック 生成 内部DMA クロック生成 外部バス クロック生成 CPUクロック × 内部クロック生成回路 内部割込み 内部リセット 状態遷移制御回路 クリア CPU クロック 生成 状態デコーダ 内部バス 内部周辺 クロック 生成 内部バスクロック 内部DMAクロック 外部バスクロック 内部周辺クロック Sleep状態表示信号 クロック停止 要求信号 クロック解除 要求信号 ■ スリープ状態への移行 スリープ状態にするためには , STCR のビット 7 へ "0", ビット 6 へ "1" を書き込みます。 スリープ要求を発行したのち , CPU が内部バスを使用していない状態になったあとで , CPU クロック→内部バスクロックの順にクロックを停止します。 <注意事項> スリープ状態にするためには , 必ず下記ルーチンを使用してください。 (1)STCR へ書き込む前には , GCR の [CCK1,CCK0] と [PCK1,PCK0] ビットの組に同じ値 を設定し , CPU 系クロックと周辺系クロックのギア比を同一にしてください。 (2)GCR の CHC ビットは任意です。 (3)STCR への書込み直後には , 最低 6 個の連続する NOP 命令が必要です。 92 第 3 章 メモリ空間 , CPU および制御部 ● 設定方法 LDI:8 #11001100b,R1 ; CPU= 周辺ギア比 ( 左記は原振× 1/8 の例 ), CHC は任意 LDI:32 #GCR,R2 STB R1,@R2 LDI:8 #01010000b,R1 ; SLEP=1 LDI:32 #STCR,R2 STB R1,@R2 NOP ; NOP ; NOP ; NOP ; NOP ; NOP ; ■ スリープ状態からの復帰 スリープ状態からの復帰は割込みまたはリセットの発生で行うことができます。 ● 割込みによる復帰 周辺の機能に付随する割込み許可ビットが有効であれば,周辺の割込みの発生によりス リープ状態から復帰します。 スリープ状態から通常動作状態へは , 以下の手順で行います。 1)割込み発生 2)内部バスクロック供給再開 3)内部 CPU クロック供給再開 クロック供給後のプログラム実行は , 以下のようになります。 • 発生した割込みのレベルが CPU の ILM, I フラグで許可されている場合 レジスタ退避を行った後に , 割込みベクタを取り込んで割込み処理ルーチンより実 行 • 発生した割込みのレベルが CPU の ILM, I フラグで禁止されている場合 スリープ状態に入れた命令以降の命令より実行 ● リセット要求による復帰 スリープ状態からの通常動作状態へは , 以下の手順で行います。 1)内部リセット発生 2)内部バスクロック供給再開 3)内部 CPU クロック供給再開 4)リセットベクタ取込み 5)リセットエントリアドレスより命令の実行再開 93 第 3 章 メモリ空間 , CPU および制御部 <注意事項> • STCR に書き込む命令に続く数命令は実行完了することがありえます。このため , 直後 に割込み要求の取消しや分岐命令などを置くと,一見予想と違う動作を行うように見え ることがあります。 • 周辺からの割込み要求がすでに発生している場合は , スリープ状態になりません。 • スリープ中の DMA 転送動作は , 使用できません。スリープ状態にする前に必ず DMA 転送動作を動作禁止にしてください。 • スリープ状態にする前にクロックダブラを OFF にしてください。 94 第 3 章 メモリ空間 , CPU および制御部 低消費電力モードの状態遷移図 3.13.3 図 3.13-3 に , 低消費電力モードの状態遷移図を示します。 ■ 低消費電力モードの状態遷移図 図 3.13-3 低消費電力モードの状態遷移図 パワーオン リセット中 発振安定待ち メイン発振開始 (1) CPUはストップ状態 メイン停止 (2) リセット中 メイン発振 (2) (5) (2) (2) CPUはストップ状態 メイン発振開始 (1) (3) (6) (9) スリープ メイン発振 (4) 2分周クロック動作 メイン発振 (7) (8) (1): 発振安定終了 (2): リセット (3): リセット解除 (4): 割込み (5): 外部割込み (6): STOP モード (7): PLL (8): 2 分周 (9): SLEEP モード PLLクロック動作 メイン発振 (2) 95 第 3 章 メモリ空間 , CPU および制御部 96 第4章 バスインタフェース この章では , バスインタフェースの概要およびバス 動作について説明します。 4.1 バスインタフェースの概要 4.2 バスインタフェースのブロックダイヤグラム 4.3 バスインタフェースのレジスタ 4.4 バス動作 4.5 バスタイミング 4.6 内部クロック逓倍動作 ( クロックダブラ ) 4.7 外部バス動作のプログラム例 97 第 4 章 バスインタフェース 4.1 バスインタフェースの概要 バスインタフェースは , 外部メモリおよび外部 I/O のインタフェースを制御します。 ■ バスインタフェースの特長 • 24 ビット (16M バイト ) のアドレス出力 • 16/8 ビットのバス幅の設定が可能 • プログラマブルな自動メモリウェイト ( 最大で 7 サイクル分 ) の挿入 • リトルエンディアンモードサポート • 未使用のアドレス / データ端子は I/O ポートとして使用可能 • 外部バスが 25MHz を超える使用は禁止です。 • クロックダブラの使用時 , バス速度は CPU 速度の 1/2 になります。 ■ チップセレクト領域 バスインタフェースには全 6 種類のチップセレクト領域が用意されます。 各領域の位置はASR1∼ASR5(Area Select Register)とAMR1∼AMR5(Area Mask Register) で 4G バイトの空間に , 最小 64K バイト単位で任意に配置することができます。 <注意事項> 領域 0 は , ASR1 ∼ ASR5 によって指定された領域以外の空間に割り当てられます。 リセット時は , 00010000H ∼ 0005FFFFH 以外の外部領域が領域 0 です ( 本品種ではチップセレクト出力端子はチップセレクト領域 0 ∼ 3 の 4 本のみです )。 図 4.1-1 の (a) に , 領域 1 から領域 5 を 00100000H ∼ 0014FFFFH に 64K バイト単位で配 置した例を示します。また , 図 4.1-1 の (b) に , 領域 1 を 00000000H ∼ 0007FFFFH の 512K バイト , 領域 2 から領域 5 を 00100000H ∼ 004FFFFFH に 1M バイト単位で配置し た例を示します。 98 第 4 章 バスインタフェース 図 4.1-1 チップセレクト領域配置例 00000000H 00000000H CS1 (512Kバイト) 00080000H CS0 (512Kバイト) CS0 (1Mバイト) 00080000H 000FFFFFH CS2 (1Mバイト) 001FFFFFH 000FFFFFH CS1 (64Kバイト) 0010FFFFH CS3 (1Mバイト) CS2 (64Kバイト) 002FFFFFH 0011FFFFH CS3 (64Kバイト) 0012FFFFH CS4 (1Mバイト) CS4 (64Kバイト) 0013FFFFH 003FFFFFH CS5 (64Kバイト) CS5 (1Mバイト) 0014FFFFH 004FFFFFH CS0 CS0 (a) (b) ■ バスインタフェース バスインタフェースには , 通常バスインタフェースがあり , インタフェースはあらかじ め決められた領域でのみ使用が可能です。 表 4.1-1 に , 各チップセレクト領域と , 使用可能なインタフェース機能との対応を示し ます。 AMD(Area MoDe register) によって , これらのどのインタフェースを使用するかどうか を選択します。 表 4.1-1 チップセレクト領域と使用できるインタフェースモード 選択できるバスインタフェース 領域 備考 通常バス 時分割 DRAM 0 ○ - - - 1∼3 ○ - - - 4∼5 ○ - - - ( 注意事項 ) 本品種では時分割 , DRAM は使用できません。 ● バスサイズ指定 各領域はレジスタの設定によりバス幅の任意指定が可能です。 99 第 4 章 バスインタフェース バスインタフェースのブロックダイヤグラム 4.2 図 4.2-1 に , バスインタフェースのブロックダイヤグラムを示します。 ■ バスインタフェースのブロックダイヤグラム 図 4.2-1 バスインタフェースのブロックダイヤグラム データバス MUX アドレスバス A-Out ライト バッファ スイッチ リード バッファ スイッチ 外部データバス データブロック アドレスブロック +1or+2 アドレス バッファ 外部アドレスバス シフタ inpage 4 コンパ レータ ASR AMR CS0~CS3 3 外部端子制御部 RD WR0,WR1 全ブロック制御 レジスタ & コントロール 100 4 BRQ BGRNT RDY CLK 第 4 章 バスインタフェース 4.3 バスインタフェースのレジスタ 図 4.3-1 に , バスインタフェースのレジスタ構成を示します。 ■ バスインタフェースのレジスタ構成 図 4.3-1 バスインタフェースのレジスタ構成 アドレス 15 8 7 0 00060CH ASR1 エリア選択レジスタ 1 00060EH AMR1 エリアマスクレジスタ 1 000610H ASR2 エリア選択レジスタ 2 000612H AMR2 エリアマスクレジスタ 2 000614H ASR3 エリア選択レジスタ 3 000616H AMR3 エリアマスクレジスタ 3 000618H ASR4 エリア選択レジスタ 4 00061AH AMR4 エリアマスクレジスタ 4 00061CH ASR5 エリア選択レジスタ 5 00061EH AMR5 エリアマスクレジスタ 5 000620H AMD0 AMD1 エリアモードレジスタ 0 / エリアモードレジスタ 1 000622H AMD32 AMD4 エリアモードレジスタ 32 / エリアモードレジスタ 4 000624H AMD5 − エリアモードレジスタ 5 000626H RFCR 00062CH DMCR4 DRAM 制御レジスタ 4 00062EH DMCR5 DRAM 制御レジスタ 5 000628H EPCR0 外部端子制御レジスタ 0 リフレッシュ制御レジスタ 00062AH − EPCR1 外部端子制御レジスタ 1 0007FEH LER MODR リトルエンディアンレジスタ / モードレジスタ ( 注意事項 ) 本品種では , 部分に対する機能端子は準備されておりませんので , これらのレ ジスタに対するアクセスは行わないでください。 101 第 4 章 バスインタフェース 4.3.1 エリア選択レジスタ (ASR1 ∼ ASR5) とエリアマス クレジスタ (AMR1 ∼ AMR5) エリア選択レジスタ (ASR1 ∼ ASR5) とエリアマスクレジスタ (AMR1 ∼ AMR5) は , チップセレクト領域 1 ∼ 5 アドレス空間の範囲を指定します。 ■ エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR) エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR) のレジスタ構成は , 以下の とおりです。 ● エリア選択レジスタ (ASR1 ∼ ASR5) 15 14 13 ASR1 A31 A30 ASR2 A31 ASR3 12 2 1 0 初期値 アクセス A29 A18 A17 A16 0001H W A30 A29 A18 A17 A16 0002H W A31 A30 A29 A18 A17 A16 0003H W ASR4 A31 A30 A29 A18 A17 A16 0004H W ASR5 A31 A30 A29 A18 A17 A16 0005H W ● エリアマスクレジスタ (AMR1 ∼ AMR5) 15 14 13 AMR1 A31 A30 AMR2 A31 AMR3 12 2 1 0 初期値 アクセス A29 A18 A17 A16 0000H W A30 A29 A18 A17 A16 0000H W A31 A30 A29 A18 A17 A16 0000H W AMR4 A31 A30 A29 A18 A17 A16 0000H W AMR5 A31 A30 A29 A18 A17 A16 0000H W エリア選択レジスタ(ASR)とエリアマスクレジスタ(AMR)は,チップセレクト領域1∼5 のアドレス空間の範囲を指定します。 ASR1 ∼ ASR5 はアドレスの上位 16 ビット (A31 ∼ A16) を指定し , AMR1 ∼ AMR5 で 対応するアドレスビットをマスクします。AMR1 ∼ AMR5 の各ビットは "0" で care, "1" で don't care を示します。 "care" とは ASR の設定値が "0" の場合は "0", "1" の場合は "1" としてアドレス空間を示 し "don't care" の場合には ASR の設定値にかかわらず , "0", "1" 両方の場合のアドレス空 間を示します。 以下に ASR と AMR の組合せによる , 各チップセレクト領域指定の例を示します。 102 第 4 章 バスインタフェース [ 例 1] ASR1 = 00000000 00000011B AMR1 = 00000000 00000000B 上記を設定した場合 , ASR1 に "1" を設定したビットに対応する AMR1 のビットは "0" のため , 領域 1 のアドレス空間は , 以下の 64K バイトになります。 00000000 00000011 00000000 00000000B (00030000H) : 00000000 00000011 11111111 11111111B (0003FFFFH) [ 例 2] ASR2 = 00001111 11111111B AMR2 = 00000000 00000011B 上記を設定した場合 , AMR2 に "0" を設定したビットに対応する ASR2 の設定値は "1", "0" をそのまま care し , AMR2 に "1" を設定したビットに対応する ASR2 のビットは , "0" もしくは "1" の don't care になることから , 領域 2 のアドレス空間は , 以下の 256K バイトになります。 00001111 11111100 00000000 00000000B (0FFC0000H) : 00001111 11111111 11111111 11111111B (0FFFFFFFH) 領域 1 ∼ 5 の各領域のアドレス空間は , ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で , 4G バイト の空間に最小 64K バイト単位で任意に配置することができます。これらのレジスタに よって指定された領域の内 , 領域 1 に対してバスアクセスを行うと , 対応するリード / ラ イト端子 (RD, WR0, WR0) が "L" 出力となります。 なお , 領域 0 は ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で設定された領域以外の空間が割り 当てられ , リセット時は ASR1 ∼ ASR5 と AMR1 ∼ AMR5 の初期値により 0001000H ∼ 0005FFFFH 以外の領域が割り当てられています。 <注意事項> チップセレクト領域は , お互いにオーバラップしないように設定してください。 103 第 4 章 バスインタフェース 図 4.3-2 に , チップセレクト領域を設定したマップの例を示します。 図 4.3-2 チップセレクト領域を設定したマップの例 (初期値) (例1・2) 00000000H 00000000H 領域0 領域0 00010000H 領域1 64Kバイト 00020000H 00030000H 領域2 64Kバイト 00030000H 領域1 00040000H 領域3 64Kバイト 00040000H 領域0 0FFC0000H 領域4 64Kバイト 領域2 00050000H 領域5 00060000H 64Kバイト 10000000H 領域0 FFFFFFFFH 104 64Kバイト 領域0 FFFFFFFFH 256Kバイト 第 4 章 バスインタフェース 4.3.2 エリアモードレジスタ 0(AMD0) エリアモードレジスタ 0(AMD0) は , チップセレクト領域 0(ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で指定された領域以外の領域 ) の動作モードを指定します。リセット時は領域 0 が選択されます。 ■ エリアモードレジスタ 0(AMD0) エリアモードレジスタ 0(AMD0) のレジスタ構成は , 以下のとおりです。 AMD0 bit 7 アドレス:000620H − 6 − 5 4 − BW1 3 2 1 0 BW0 WTC2 WTC1 WTC0 初期値 ---00111B アクセス R/W [ ビット 4, ビット 3] BW1, BW0(Bus Width bit) BW1, BW0 は , 領域 1 のバス幅を指定します。 BW1 BW0 バス幅 0 0 8 ビット 0 1 16 ビット 1 0 Reserved 1 1 Reserved ( 注意事項 )BW1, BW0 の初期値は共に "0" ですが , リード時 MODR を書き込むま ではレジスタの値ではなく , MD1, MD0 の端子レベルが読まれます。 [ ビット 2 ∼ビット 0] WTC2 ∼ WTC0(Wait Cycle bit) WTC は ,通常バスインタフェース動作時の自動挿入ウェイトサイクル数を指定します。 WTC2 WTC1 WTC0 挿入ウェイトサイクル数 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 AMD0 の WTC2 ∼ WTC0 はリセット時に "111B" に設定され , リセット解除直後のバス アクセスでは自動的に 7 サイクルのウェイトが挿入されます。 105 第 4 章 バスインタフェース <注意事項> • MODR を書き込む前には必ず使用する AMD0 ∼ AMD5 の BW1, BW0 を設定してくだ さい。 • モードレジスタ (MODR) 設定後は , 外部領域に対しては AMD0 ∼ AMD5 で設定されて いるバス幅が有効になります。 • MODR 書込み後の BW1, BW0 の変更は行わないでください。誤動作の原因になります。 MODR write RST(リセット) ↓ → AMD0~5レジスタの内容が有効 106 第 4 章 バスインタフェース 4.3.3 エリアモードレジスタ 1(AMD1) エリアモードレジスタ 1(AMD1) は , チップセレクト領域 1(ASR1 と AMR1 で指定さ れた領域 ) の動作モードを指定します。 ■ エリアモードレジスタ 1(AMD1) エリアモードレジスタ 1(AMD1) のレジスタ構成は , 以下のとおりです。 AMD1 bit アドレス:000621H 7 MPX 6 − 5 4 − BW1 3 2 1 0 初期値 BW0 WTC2 WTC1 WTC0 0--00000B アクセス R/W [ ビット 7] MPX(MultiPleX bit) MPX は , アドレス / データ入出力の時分割入出力インタフェースを制御します。 0 通常バスインタフェース ( 通常バスインタフェース ) 1 設定禁止 [ ビット 4, ビット 3] BW1, BW0(Bus Width bit) BW1, BW0 は , 領域 1 のバス幅を指定します。 BW1 BW0 バス幅 0 0 8 ビット 0 1 16 ビット 1 0 Reserved 1 1 Reserved [ ビット 2 ∼ビット 0] WTC2 ∼ WTC0(Wait Cycle bit) WTC は , 通常バスインタフェース動作時の自動挿入ウェイトサイクル数を指定しま す。動作は AMD0 の WTC2 ∼ WTC0 と同様ですが , リセットで "000B" に初期化さ れ , 挿入ウェイトサイクル数は "0" になります。 107 第 4 章 バスインタフェース 4.3.4 エリアモードレジスタ 32(AMD32) エリアモードレジスタ 32(AMD32) は , チップセレクト領域 2(ASR2 と AMR2 で指 定された領域 ) とチップセレクト領域 3(ASR3 と AMR3 で指定された領域 ) の動作 モードを指定します。 領域 2, 3 のバス幅は , BW1, BW0 のビットで一括して同じバス幅を制御し , 自動 ウェイトサイクルはそれぞれの領域で独立に設定できます。 ■ エリアモードレジスタ 32(AMD32) エリアモードレジスタ 32(AMD32) のレジスタ構成は , 以下のとおりです。 AMD32 bit アドレス:000622H 7 6 5 BW1 BW0 4 3 2 1 0 初期値 アクセス 00000000 WT32 WT31 WT30 WT22 WT21 WT20 R/W B [ ビット 7, ビット 6] BW1, BW0(Bus Width bit) BW1, BW0 は , 領域 2・領域 3 のバス幅を指定します。 BW1 BW0 バス幅 0 0 8 ビット 0 1 16 ビット 1 0 Reserved 1 1 Reserved [ ビット 5 ∼ビット 3] WT32 ∼ WT30(Wait Cycle bit) WT32 ∼ WT30 は , 領域 3 のメモリアクセス時の自動挿入ウェイトサイクル数を指 定します。 動作は AMD0 の WTC2 ∼ WTC0 と同様です。リセットで "000B" に初期化され , 挿 入ウェイトサイクル数は "0" になります。 [ ビット 2 ∼ビット 0] WT22 ∼ WT20(Wait Cycle bit) WT22 ∼ WT20 は , 領域 2 のメモリアクセス時の自動挿入ウェイトサイクル数を指 定します。 動作は AMD0 の WTC2 ∼ WTC0 と同様です。リセットで "000B" に初期化され , 挿 入ウェイトサイクル数は "0" になります。 108 第 4 章 バスインタフェース 4.3.5 エリアモードレジスタ 4(AMD4) エリアモードレジスタ 4(AMD4) は , チップセレクト領域 4(ASR4 と AMR4 で指定さ れた領域 ) の動作モードを指定します。 ■ エリアモードレジスタ 4(AMD4) エリアモードレジスタ 4(AMD4) のレジスタ構成は , 以下のとおりです。 AMD4 bit アドレス:000623H 7 6 DRME − 5 4 − BW1 3 2 1 0 初期値 BW0 WTC2 WTC1 WTC0 0--00000B アクセス R/W [ ビット 7] DRME(DRaM Enable bit) DRME は , 領域 4 に対して通常バスインタフェースか DRAM インタフェースかを 選択します。 0 通常バスインタフェース ( 通常バスインタフェース ) 1 設定禁止 [ ビット 4, ビット 3] BW1, BW0(Bus Width bit) BW1, BW0 は , 領域 4 のバス幅を指定します。 BW1 BW0 バス幅 0 0 8 ビット 0 1 16 ビット 1 0 Reserved 1 1 Reserved [ ビット 2 ∼ビット 0] WTC2 ∼ WTC0(Wait Cycle bit) WTC は , 通常バスインタフェース動作時の自動挿入ウェイトサイクル数を指定しま す。動作は AMD0 の WTC2 ∼ WTC0 と同様ですが , リセットで "000B" に初期化さ れ , 挿入ウェイトサイクル数は "0" になります。 109 第 4 章 バスインタフェース 4.3.6 エリアモードレジスタ 5(AMD5) エリアモードレジスタ 5(AMD5) は , チップセレクト領域 5(ASR5 と AMR5 で指定さ れた領域 ) の動作モードを指定します。 ■ エリアモードレジスタ 5(AMD5) エリアモードレジスタ 5(AMD5) のレジスタ構成は , 以下のとおりです。 AMD5 bit アドレス:000624H 7 DRME 6 − 5 4 − BW1 3 2 1 0 初期値 BW0 WTC2 WTC1 WTC0 0--00000B 各ビットは AMD4 と同様の意味を持ちます。 「4.3.5 エリアモードレジスタ 4(AMD4)」を参照してください。 110 アクセス R/W 第 4 章 バスインタフェース 4.3.7 外部端子制御レジスタ 0(EPCR0) 外部端子制御レジスタ 0(EPCR0) は , 各信号の出力を制御します。 出力許可の場合は各バスモードで所望のタイミングを出力し , 入力有効の場合は外部 からの入力信号を受け付けます。 出力禁止・入力無効の場合は I/O ポートとして使用できます。 ■ 外部端子制御レジスタ 0(EPCR0) 外部端子制御レジスタ 0(EPCR0) のレジスタ構成は , 以下のとおりです。 EPCR0 bit アドレス:000628H 15 14 13 12 − − − − 7 6 5 4 − CKE − − 11 10 9 WRE RDXE RDYE 3 2 1 8 BRE 初期値 ----1100B アクセス W 0 初期値 アクセス W COE3 COE2 COE1 COE0 -1111111B [ ビット 11] WRE(WRite pulse output Enable bit) WRE は , ライトパルス WR0, WR1 を出力するかどうかを選択します。 リセット時は出力許可となります。 0 出力禁止 1 出力許可 ( 初期値 ) ライトパルスは , WRE ビットを "1" に設定していても , AMD で設定されたバス幅 に応じてI/O ポートとして使用することができます(例えば8ビットモードではWR1 は出力されず , 対応する端子は I/O ポートとして使用できます )。 [ ビット 10] RDXE(ReaDX pulse output Enable bit) RDXE は , リードパルス RD を出力するかどうかを選択します。 リセット時は出力許可となります。 0 出力禁止 ( 設定禁止 ) 1 出力許可 ( 初期値 ) [ ビット 9] RDYE(ReaDY input Enable bit) RDYE は , RDY 入力を以下のように制御します。 リセット時は入力無効となります。 0 RDY 入力無効 ( 初期値 ) 1 RDY 入力有効 111 第 4 章 バスインタフェース [ ビット 8] BRE(Bus Request Enable bit) BRE は , BRQ と BGRNT を以下のように制御します。 リセット時は BRQ の入力は無効 , BGRNT の出力禁止となります。 0 BRQ の入力無効 , BGRNT の出力禁止 ( 端子は I/O ポートとして機能 ) ( 初期値 ) 1 BRQ の入力有効 , BGRNT の出力許可 [ ビット 6] CKE(ClocK output Enable bit) CKE は , CLK ( 外部バスの動作クロック波形 ) の出力イネーブルビットです。 0 出力禁止 1 出力許可 ( 初期値 ) 本ビットはリセット時に "1" に初期化され , CLK は出力許可状態になります。 [ ビット 5, ビット 4] 空で , 本ビットへの書込みは無意味です。 初期値は , "1" です。 [ ビット 3] COE3(Chip select Output Enable) COE3 は , CS3 の出力を制御します。 リセット時は出力許可となります。 0 出力禁止 1 出力許可 ( 初期値 ) [ ビット 2] COE2(Chip select Output Enable) COE2 は , CS2 の出力を制御します。 リセット時は出力許可となります。 0 出力禁止 1 出力許可 ( 初期値 ) [ ビット 1] COE1(Chip select Output Enable) COE1 は , CS1 の出力を制御します。 リセット時は出力許可となります。 112 0 出力禁止 1 出力許可 ( 初期値 ) 第 4 章 バスインタフェース [ ビット 0] COE0(Chip select Output Enable) COE0 は , CS0 の出力を制御します。 リセット時は出力許可となります。 0 出力禁止 ( 設定禁止 ) 1 出力許可 ( 初期値 ) 本品種では , このビットには常に "1" を設定してください。 113 第 4 章 バスインタフェース 4.3.8 外部端子制御レジスタ 1(EPCR1) 外部端子制御レジスタ 1(EPCR1) は , アドレス信号の出力を制御します。 ■ 外部端子制御レジスタ 1(EPCR1) 外部端子制御レジスタ 1(EPCR1) のレジスタ構成は , 以下のとおりです。 EPCR1 bit アドレス:00062AH 15 14 13 12 11 10 9 8 − − − − − − − − 7 6 5 4 3 2 1 0 AE23 AE22 AE21 AE20 AE19 AE18 AE17 初期値 --------B AE23 ∼ AE16 は対応するアドレスを出力するかどうかを指定します。 出力禁止の場合は , I/O ポートとして使用できます。 出力禁止 1 出力許可 ( 初期値 ) AE23 ∼ AE16 は , リセットによって "FFH" に初期化されます。 114 W 初期値 アクセス AE16 11111111B W [ ビット 7 ∼ビット 0] AE23 ∼ AE16(Address output Enable 23 ∼ 16) 0 アクセス 第 4 章 バスインタフェース リトルエンディアンレジスタ (LER) 4.3.9 本品種のバスアクセスは通常全領域ビッグエンディアンで行いますが , LER を設定 することにより , 領域 1 ∼ 5 のどれか 1 領域をリトルエンディアン領域として扱う ことができます。 ただし , 領域 0 はリトルエンディアン対象外です。 LER レジスタには , リセット後 1 度だけしか書き込むことができません。 ■ リトルエンディアンレジスタ (LER) リトルエンディアンレジスタ (LER) のレジスタ構成は , 以下のとおりです。 LER bit アドレス:0007FEH 7 6 5 4 3 2 1 0 − − − − − LE2 LE1 LE0 初期値 -----000B アクセス W [ ビット 2 ∼ビット 0] LE2 ∼ LE0: リトルエンディアンの設定をします。 LE2 LE1 LE0 0 0 0 リセット後の初期値 , リトルエンディアン領域なし 0 0 1 領域 1 がリトルエンディアン , 領域 0, 2 ∼ 5 はビッグエンディアン 0 1 0 領域 2 がリトルエンディアン , 領域 0 ∼ 1, 3 ∼ 5 はビッグエンディアン 0 1 1 領域 3 がリトルエンディアン , 領域 0 ∼ 2, 4 ∼ 5 はビッグエンディアン 1 0 0 領域 4 がリトルエンディアン , 領域 0 ∼ 3, 5 はビッグエンディアン 1 0 1 領域 5 がリトルエンディアン , 領域 0 ∼ 4 はビッグエンディアン モード MODR (MODe Register) モードレジスタ (MODR) については ,「3.11 動作モード」を参照してください。 115 第 4 章 バスインタフェース 4.4 バス動作 ここでは , バス動作の基本事項として , 以下の項目について説明します。 • データバス幅と制御信号との関係 • ビッグエンディアンのバスアクセス • リトルエンディアンのバスアクセス • 外部アクセスの比較 ■ データバス幅と制御信号との関係 通常バスインタフェー スでのデータバス幅と制御信号の関係について説明します。 ■ ビッグエンディアンのバスアクセス 外部アクセスについて , 次の項目を説明します。 • データフォーマット • データバス幅 • 外部バスアクセス • 外部デバイスとの接続例 ■ リトルエンディアンのバスアクセス 外部アクセスについて , 次の項目を説明します。 • リトルエンディアンとビッグエンディアンとの相違点 • データフォーマット • データバス幅 • 外部デバイスとの接続例 ■ ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ビッグエンディアンとリトルエンディアンの外部アクセスの比較として,バス幅に対す るワードアクセス , ハーフワードアクセスおよびバイトアクセスについて説明します。 116 第 4 章 バスインタフェース 4.4.1 データバス幅と制御信号との関係 WR0, WR1の制御信号は,ビッグエンディアン/リトルエンディアンやデータバス幅に 関係なくデータバスのバイト位置に常に 1 対 1 に対応します。 ■ データバス幅と制御信号との関係 図 4.4-1 に , 設定されたデータバス幅で使用される本品種のデータバスのバイト位置と それに対応する制御信号をまとめます。 図 4.4-1 通常バスインタフェースでのデータバス幅と制御信号 (a) 16ビットバス幅 data bus D31 (b) 8ビットバス幅 制御信号 : WR0 : WR1 data bus D31 制御信号 : WR0 - : - D24 D16 - : - - : - - : - - : - (D23~D 1 6 は 未 使 用 ) 117 第 4 章 バスインタフェース 4.4.2 ビッグエンディアンのバスアクセス リトルエンディアンレジスタ (LER) を設定しない領域に対しては , ビッグエンディ アンで外部バスアクセスを行います。 FR ファミリは , 通常ビッグエンディアンです。 ■ データフォーマット 図 4.4-2 ∼図 4.4-4 に , データフォーマットごとの内部レジスタと外部データバスとの 関係を示します。 ● ワードアクセス (LD, ST 命令実行時 ) 図 4.4-2 内部レジスタと外部データバスとの関係 ( ワードアクセス ) 内部レジスタ D31 AA D23 BB D15 CC D07 DD 外部バス D31 AA CC BB DD D23 ● ハーフワードアクセス (LDUH, STH 命令実行時 ) 図 4.4-3 内部レジスタと外部データバスとの関係 ( ハーフワードアクセス ) 内部レジスタ 外部バス D31 D31 AA D23 D23 BB D15 AA D07 BB 118 第 4 章 バスインタフェース ● バイトアクセス (LDUB, STB 命令実行時 ) 図 4.4-4 内部レジスタと外部データバスとの関係 ( バイトアクセス ) (a) 出力アドレス下位 "0" 内部レジスタ 外部バス D31 (b) 出力アドレス下位 "1" 内部レジスタ 外部バス D31 D31 D23 D23 D31 AA D23 D23 AA D15 D15 D07 D07 AA AA ■ データバス幅 図 4.4-5 および図 4.4-6 に , データバス幅ごとの内部レジスタと外部データバスとの関 係を示します。 ● 16 ビットバス幅 図 4.4-5 内部レジスタと外部データバスとの関係 (16 ビットバス幅 ) 内部レジスタ 外部バス 出力アドレス下位 "00" "10" D31 D31 AA Read/Write AA CC D23 D23 BB BB DD D15 CC D07 DD ● 8 ビットバス幅 図 4.4-6 内部レジスタと外部データバスとの関係 (8 ビットバス幅 ) 内部レジスタ 内部アドレス下位 外部バス "00""01""10""11" D31 Read/Write AA D31 AA BB CC DD D23 BB D15 CC D07 DD 119 第 4 章 バスインタフェース ■ 外部バスアクセス 図 4.4-7 および図 4.4-8 に , 以下の状態の外部バスアクセスを示します。 • データバス幅 :16 ビットバス幅 /8 ビットバス幅 • データフォーマット : ワード / ハーフワード / バイトアクセス また , 図中には , 各状態のアクセスバイト位置 , プログラムアドレスと出力アドレスお よびバスアクセス回数をまとめます。 本 LSI は , ミスアラインエラーを検出しません。 したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット が "00", "01", "10", "11" であっても , 出力するアドレスの下位 2 ビットはすべて "00" と なり , ハーフワードアクセスの場合には "00", "01" のときは "00" に , "10", "11" のとき には "10" になります。 120 第 4 章 バスインタフェース ● 16 ビットバス幅 図 4.4-7 ビッグエンディアンの外部バスアクセス (16 ビットバス幅 ) (A)ワードアクセス (a)PA1/PA0="00" → ( 1 ) 出 力 A1/A0="00" (2) 出 力 A1/A0="10" MSB LSB (b)PA1/PA0="01" → ( 1 ) 出 力 A1/A0="00" (2) 出 力 A1/A0="10" (c)PA1/PA0="10" → ( 1 ) 出 力 A1/A0="00" (2) 出 力 A1/A0="10" (d)PA1/PA0="11" → ( 1 ) 出 力 A1/A0="00" (2) 出 力 A1/A0="10" (1)→ 00 01 (1)→ 00 01 (1)→ 00 01 (1)→ 00 01 (2)→ 10 11 (2)→ 10 11 (2)→ 10 11 (2)→ 10 11 16bit (B)ハーフワードアクセス (a)PA1/PA0="00" → ( 1 ) 出 力 A1/A0="00" (1)→ 00 01 10 11 (b)PA1/PA0="01" →( 1 ) 出 力 A1/A0="00" (1)→ 00 01 10 11 (c)PA1/PA0="10" →(1) 出 力 A1/A0="10" (1)→ 00 01 10 11 (d)PA1/PA0="11" →(1) 出 力 A1/A0="10" (1)→ 00 01 10 11 (C)バイトアクセス (a)PA1/PA0="00" → ( 1 ) 出 力 A1/A0="00" (1)→ 00 01 10 11 PA1/PA0 出 力 A1/A0 + (1)~(4) (b)PA1/PA0="01" →( 1 ) 出 力 A1/A0="01" (1)→ 00 01 10 11 (c)PA1/PA0="10" →(1) 出 力 A1/A0="10" (1)→ 00 01 10 11 (d)PA1/PA0="11" →(1) 出 力 A1/A0="11" (1)→ 00 01 10 11 : プ ロ グ ラ ム で 指 定 し た ア ド レ ス 下 位 2 ビット : 出 力 す る ア ド レ ス の 下 位 2ビ ッ ト :出力するアドレスの先頭バイト位置 :アクセスするデータバイト位置 :バスアクセス回数 121 第 4 章 バスインタフェース ● 8 ビットバス幅 図 4.4-8 ビッグエンディアンの外部バスアクセス (8 ビットバス幅 ) (A)ワードアクセス (a)PA1/PA0="00" (b)PA1/PA0="01" (c)PA1/PA0= "10" (d)PA1/PA0="11" → ( 1 ) 出 力 A1/A0="00" →( 1 ) 出 力 A1/A0="00" →( 1 ) 出 力 A1/A0="00" →( 1 ) 出 力 A1/A0="00" (2) 出 力 A 1 / A 0 = "01" (2) 出 力 A1/A0="01" (2) 出 力 A1/A0="01" (2) 出 力 A 1 / A 0 = "01" (3) 出 力 A 1 / A 0 = "10" (3) 出 力 A1/A0="10" (3) 出 力 A1/A0="10" (3) 出 力 A 1 / A 0 = "10" (4) 出 力 A 1 / A 0 = "11" (4) 出 力 A1/A0="11" (4) 出 力 A1/A0="11" (4) 出 力 A 1 / A 0 = "11" MSB LSB (1)→ 00 (1)→ 00 (1)→ 00 (1)→ 00 (2)→ 01 (2)→ 01 (2)→ 01 (2)→ 01 (3)→ 10 (3)→ 10 (3)→ 10 (3)→ 10 (4)→ 11 (4)→ 11 (4)→ 11 (4)→ 11 8bit (B)ハーフワードアクセス (a)PA1/PA0="00" (b)PA1/PA0="01" (c)PA1/PA0="10" (d)PA1/PA0="11" → ( 1 ) 出 力 A1/A0="00" →( 1 ) 出 力 A1/A0="00" →(1) 出 力 A1/A0="10" →(1) 出 力 A1/A0="10" (2) 出 力 A 1 / A 0 = "01" (2) 出 力 A1/A0="01" (2) 出 力 A 1 / A 0 = "01" (2) 出 力 A1/A0="01" (1)→ 00 (1)→ 00 00 00 (2)→ 01 (2)→ 01 01 01 10 10 (1)→ 10 (1)→ 10 11 11 (2)→ 11 (2)→ 11 (C)バイトアクセス (a)PA1/PA0="00" (b)PA1/PA0="01" (c)PA1/PA0="10" (d)PA1/PA0="11" → ( 1 ) 出 力 A1/A0="00" →( 1 ) 出 力 A1/A0="01" →(1) 出 力 A1/A0="10" →(1) 出 力 A1/A0="11" (1)→ 00 00 00 00 01 01 01 10 10 (1)→ 10 10 11 11 11 01 PA1/PA0 出 力 A1/A0 + (1)~(4) 122 (1)→ : プ ロ グ ラ ム で 指 定 し た ア ド レ ス 下 位 2 ビット : 出 力 す る ア ド レ ス の 下 位 2ビ ッ ト :出力するアドレスの先頭バイト位置 :アクセスするデータバイト位置 :バスアクセス回数 (1)→ 11 第 4 章 バスインタフェース ■ 外部デバイスとの接続例 図 4.4-9 に , MB91151A と外部デバイスの接続例を示します。 図 4.4-9 外部デバイスとの接続例 MB91151A D31 D23 D 2 4 WR0 D 1 6 WR1 D15 0 1 D08 D07 D00 16ビットデバイス* X D07 D00 8ビットデバイス* ("0"Address下 位 1 ビ ッ ト ,"X"はA d d r e s s 下 位 1ビットが"0","1"可 ) *:16ビット/8ビットデバイスの場合は,本品種の M S B 側のdata busを使用します。 123 第 4 章 バスインタフェース 4.4.3 リトルエンディアンのバスアクセス リトルエンディアンレジスタ (LER) を設定した領域に対しては , リトルエンディア ンで外部バスアクセスを行います。 MB91151A のリトルエンディアンバスアクセスは , ビッグエンディアン時のバスア クセス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番と制御 信号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップすることに より実現しています。 接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける必 要がありますので , 十分注意が必要です。 ■ リトルエンディアンとビッグエンディアンの相違点 出力するアドレスの順番はビッグエンディアン / リトルエンディアンによって変わり ません。 また , 16 ビット /8 ビットバス幅で使用するデータバス制御信号は , ビッグエンディア ン / リトルエンディアンによって変わりません。 データフォーマットごとの相違を以下に示します。 ● ワードアクセス ビッグエンディアンのアドレス "00B" に対応する MSB 側のバイトデータが , リトルエ ンディアンでは LSB 側のバイトデータになります。 ワードアクセスの場合は , ワード内の 4 バイトすべてのバイト位置が反転します。 "00" → "11", "01" → "10", "10" → "01", "11" → "00" ● ハーフワードアクセス ビッグエンディアンのアドレス "0" に対応する MSB 側のバイトデータが , リトルエン ディアンでは LSB 側のバイトデータになります。 ハーフワードアクセスの場合は , ハーフワード内の 2 バイトのバイト位置がひっくりか えります。 "0" → "1", "1" → "0" ● バイトアクセス ビッグエンディアン / リトルエンディアンとも同じです。 124 第 4 章 バスインタフェース ■ データフォーマット 図 4.4-10 ∼図 4.4-12 に , データフォーマットごとの内部レジスタと外部データバスと の関係を示します。 ● ワードアクセス (LD, ST 命令実行時 ) 図 4.4-10 内部レジスタと外部データバスとの関係 ( ワードアクセス ) 内部レジスタ 外部バス D31 D31 AA DD BB BB CC AA D23 D23 D15 CC D07 DD ● ハーフワードアクセス (LDUH, STH 命令実行時 ) 図 4.4-11 内部レジスタと外部データバスとの関係 ( ハーフワードアクセス ) 内部レジスタ 外部バス D31 D31 BB D23 D23 AA D15 AA D07 BB ● バイトアクセス (LDUB, STB 命令実行時 ) 図 4.4-12 内部レジスタと外部データバスとの関係 ( バイトアクセス ) (a)出力アドレス下位"0" 内部レジスタ 外部バス D31 (b) 出力アドレス下位"1" 内部レジスタ 外部バス D31 D31 D23 D23 D31 AA D23 D23 AA D15 D15 D07 D07 AA AA 125 第 4 章 バスインタフェース ■ データバス幅 図 4.4-13 および図 4.4-14 に , データバス幅ごとの内部レジスタと外部データバスとの 関係を示します。 ● 16 ビットバス幅 図 4.4-13 内部レジスタと外部データバスとの関係 (16 ビットバス幅 ) 内部レジスタ 外部バス 出力アドレス下位 "00""10" D31 D31 AA リード/ライト DD BB D23 D23 BB CC AA D15 CC D07 DD ● 8 ビットバス幅 図 4.4-14 内部レジスタと外部データバスとの関係 (8 ビットバス幅 ) 内部レジスタ 外部バス 出力アドレス下位 "00" "01" "10" "11" D31 AA DD D23 BB D15 CC D07 DD 126 D31 リード/ライト CC BB AA 第 4 章 バスインタフェース ■ 外部デバイスとの接続例 図 4.4-15 および図 4.4-16 に , データバス幅ごとの , MB91151A と外部デバイスとの接続 例を示します。 ● 16 ビットバス幅 図 4.4-15 外部デバイスとの接続例 (16 ビットバス幅 ) MB91151A D31 D23 D 2 4 WR0 D 1 6 WR1 ビッグエンディアン領域 リトルエンディアン領域 WR0 WR1 D31-24 D23-16 WR0 WR1 D31-24 D23-16 MSB LSB D15 D08 D07 D00 MSB D15 LSB D08 D07 D00 ● 8 ビットバス幅 図 4.4-16 外部デバイスとの接続例 (8 ビットバス幅 ) MB91151A D31 D23 D 2 4 WR0 D 1 6 WR1 ビッグエンディアン領域 D07 D00 リトルエンディアン領域 D07 D00 ( 注意事項 )本品種にはチップセレクト出力がありませんので , 外部でアドレスをデコー ドする必要があります。 127 第 4 章 バスインタフェース 4.4.4 ビッグエンディアンとリトルエンディアンの外部ア クセスの比較 表 4.4-1 ∼表 4.4-3 に , データバス幅およびデータフォーマットごとの , ビッグエン ディアンとリトルエンディアンの外部アクセスの比較を示します。 ■ ワードアクセス 表 4.4-1 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( ワードアクセス ) バス幅 16 ビットバス幅 ビッグエンディアンモード 内部reg D31 外部端子 リトルエンディアンモード 制御端子 内部reg 外部端子 address:"0" "2" D31 AA AA CC WR0 AA DD BB WR0 BB WR1 BB CC AA WR1 - - - - - - CC BB DD D16 DD address:"0" "2" D31 - - - D31 CC - - - D00 D16 DD D00 (1) (2) 8 ビットバス幅 内部reg 外部端子 (1) (2) 制御端子 内部reg address:"0" "1" "2" "3" D31 AA AA BB CC DD BB 外部端子 制御端子 address:"0" "1" "2" "3" D31 D31 WR0 D31 AA DD CC BB AA - - - - - BB - - - - - CC - - - - - CC DD - - - - - D24 DD D24 (1) (2) (3) (4) WR0 - - - - - - - - - - D00 D00 128 制御端子 (1) (2) (3) (4) 第 4 章 バスインタフェース ■ ハーフワードアクセス 表 4.4-2 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( ハーフワードアクセス ) バス幅 16 ビットバス幅 ビッグエンディアンモード 内部reg 外部端子 制御端子 address:"0" D31 D31 D00 AA WR0 BB WR1 AA D16 - - BB - - リトルエンディアンモード 内部reg 外部端子 address:"0" D31 D31 BB AA D00 D16 BB 制御端子 D31 D31 CC WR0 DD WR1 CC D16 - - DD - - D00 WR1 - - - - D31 CC D16 DD 制御端子 DD WR0 CC WR1 - - - - D00 (1) 内部reg 外部端子 制御端子 address:"0" "1" D31 D31 AA BB WR0 - - AA D24 BB D00 内部reg 外部端子 address:"0" "1" 制御端子 D31 D31 BB AA - - - WR0 - D24 - - - - - - AA BB D00 D00 内部reg 外部端子 address:"2" "3" D31 D31 DD CC 制御端子 WR0 CC - 制御端子 WR0 - - DD D00 (1) (2) - D24 - D00 - - 内部reg 外部端子 address:"2" "3" D31 D31 DD CC - DD - (1) (2) D24 CC - - D00 (1) (2) D00 AA 内部reg 外部端子 address:"2" D31 (1) 8 ビットバス幅 WR0 (1) (1) 内部reg 外部端子 address:"2" 制御端子 - D00 (1) (2) 129 第 4 章 バスインタフェース ■ バイトアクセス 表 4.4-3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( バイトアクセス ) (1 / 2) バス幅 16 ビットバス幅 ビッグエンディアンモード 内部Reg 外部端子 address:"0" D31 制御端子 リトルエンディアンモード 内部Reg 外部端子 address:"0" D31 D31 AA D31 WR0 AA - D16 - AA WR0 - D16 - - AA - D00 D00 (1) 内部Reg 外部端子 address:"1" D31 D31 (1) 制御端子 内部Reg 外部端子 address:"1" D31 BB - WR1 BB - D16 WR1 - D16 - BB D00 制御端子 D31 - - BB D00 (1) 内部Reg 外部端子 address:"2" D31 D31 CC (1) 制御端子 WR0 内部Reg 外部端子 address:"2" D31 D31 CC - D16 CC 制御端子 WR0 - D16 - - D00 - CC - D00 (1) 内部Reg 外部端子 address:"3" D31 D31 (1) 制御端子 内部Reg 外部端子 address:"3" D31 D31 - DD DD WR1 DD D16 - D00 WR1 - DD - D00 (1) 制御端子 - - D16 130 制御端子 (1) 第 4 章 バスインタフェース 表 4.4-3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( バイトアクセス ) (2 / 2) バス幅 8 ビットバス幅 ビッグエンディアンモード 内部Reg 外部端子 address:"0" D31 制御端子 リトルエンディアンモード 内部Reg 外部端子 address:"0" D31 D31 AA D31 AA WR0 - D24 - - D00 WR0 - D24 - AA 制御端子 AA - D00 (1) 内部Reg 外部端子 address:"1" D31 (1) 制御端子 内部Reg 外部端子 address:"1" D31 D31 BB D24 制御端子 D31 BB WR0 WR0 - - D24 - - BB - D00 BB - D00 (1) 内部Reg 外部端子 address:"2" D31 D31 CC (1) 制御端子 WR0 内部Reg 外部端子 address:"2" D31 D31 CC - 制御端子 WR0 - D24 D24 - CC - - D00 CC - D00 (1) 内部Reg 外部端子 address:"3" D31 D31 DD (1) 制御端子 WR0 内部Reg 外部端子 address:"3" D31 D31 DD - D24 D24 - DD WR0 - - - D00 制御端子 DD - D00 (1) (1) 131 第 4 章 バスインタフェース 4.5 バスタイミング ここでは , 以下の各モードでのバスアクセスの動作の詳細について示します。 • 通常バスアクセス • ウェイトサイクル • 外部バスリクエスト ■ 通常バスアクセス 通常バスインタフェースでは , リードサイクル / ライトサイクルともに "2 クロックサ イクル " が基本バスサイクルになります。以降では , その 2 サイクルを "BA1", "BA2" で表します。 通常バスアクセスには , 以下のサイクルがあります。 • 基本リードサイクル • 基本ライトサイクル • 各モードでのリードサイクル • 各モードでのライトサイクル • リード / ライト混在サイクル ■ ウェイトサイクル ウェイトサイクルは前のサイクルを継続して行うモードであり,ウェイトが解除される まで "BA1 サイクル " を繰り返します。 ウェイトサイクルには , 以下の 2 種類があります。 • AMD レジスタの WTC2 ∼ WTC0 ビットによる「自動ウェイトサイクル」 • RDY 端子を使用する「外部ウェイトサイクル」 ■ 外部バスリクエスト 外部バスリクエストには , 以下の 2 種類があります。 • バス権解放 • バス権獲得 132 第 4 章 バスインタフェース 基本リードサイクル 4.5.1 ここでは , 基本リードサイクルの動作について示します。 ■ 基本リードサイクルタイミング 図 4.5-1 に , バス幅 :16 ビット , アクセス : ワード , CS0 領にアクセスする場合の基本 リードサイクルのタイミング例を示します。 <注意事項> 本品種には CS4, CS5 出力はありません。 図 4.5-1 基本リードサイクルのタイミング例 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 #0 #2 #0 #1 ↑ #2 #3 ↑ RD WR0 WR1 (CS0) (CS1) (CS2) (CS3) (DACK0) (DEOP0) アドレス上位側の ハーフワード アクセス アドレス下位側の ハーフワード アクセス ( 注意事項 ) A23 ∼ 00 の "#" は , アドレスの下位 2 ビットを表します。 D31 ∼ 16 の "#" は , リードデータのバイトアドレスを表します。 (DACK0)(DEOP0) は DMAC のバスサイクルを表します。 " ↑ " は , リードデータの取込みタイミングを表します。 133 第 4 章 バスインタフェース 【動作説明】 • CLK は外部バスの動作クロックを出力します。 クロックダブラ OFF 時は CPU 系と外部バス系の動作クロックは 1:1 の関係にあり , CLK も CPU 系と同周波数のクロックを出力します。またクロックダブラ ON のと きには CPU 系と外部バス系は 1:1/2 の関係になり , CLK は CPU 系の 1/2 の周波数を 出力します。 ギアがかかったときには , ギア比に応じて CLK の周波数も下がります。 • A23 ∼ A00( アドレス 23 ∼ 00) は , リードサイクルのワード / ハーフワード / バイト アクセスの先頭バイト位置のアドレスをバスサイクルの開始 (BA1) から出力しま す。上記例の場合 , 16 ビットバス幅でワードアクセスを行うため , 1 回目のバスサ イクルでワードアクセスの上位 16 ビットのアドレス ( 下位 2 ビット "0") を , 2 回目 のバスサイクルで下位 16 ビットのアドレス ( 下位 2 ビット "2") を出力します。 • D31 ∼ D16( データ 31 ∼ 16) は , 外部メモリ , I/O からのリードデータを表します。 リードサイクルの場合は , RD の立上りで D31 ∼ D16 を取り込みます。なお , リー ドサイクルの場合は , バス幅やワード / ハーフワード / バイトアクセスに関係なく , RD の立上りで D31 ∼ D16 のすべてを取り込み , 取り込んだデータが有効かどうかの 判断はチップ内部で行います。 • RD は外部データバスのリードストローブ信号であり , BA1 の立下りでアサートし , BA2 の立下りでネゲートします。 • リードサイクルの場合は WR0, WR1 はネゲート状態です。 • CS0 ∼ CS3( 領域チップセレクト ) 信号の出力は , A23 ∼ A00 と同タイミングでバス サイクルの開始 (BA1) からアサートされます。CS0 ∼ CS3 はアドレス出力をデコー ドして作っており , アドレス出力が変化して ASR レジスタ , AMR レジスタで設定し たチップセレクト領域が変わらない限り変化しません。 • DACK0 ∼ DACK2, DEOP0 ∼ DEOP2 は DMA の外部バスサイクルで出力されます。 出力するかどうかは DMAC のレジスタ設定により決定され , 出力タイミングは RD と同じです。 134 第 4 章 バスインタフェース 基本ライトサイクル 4.5.2 ここでは , 基本ライトサイクルの動作について示します。 ■ 基本ライトサイクルタイミング 図 4.5-2 に , バス幅 :8 ビット , アクセス : ワード , CS0 領域のアクセスの場合の基本ラ イトサイクルのタイミング例を示します。 <注意事項> 本品種には CS4, CS5 出力はありません。 図 4.5-2 基本ライトサイクルのタイミング例 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 RD WR0 WR1 (CS0) (CS1) (CS2) (CS3) (DACK0) (DEOP0) #0 #0 #1 #1 #2 #2 #3 #3 アドレス下位2ビット アドレス下位2ビット アドレス下位2ビット アドレス下位2ビット "0"のバイトアクセス "1"のバイトアクセス "2"のバイトアクセス "3"のバイトアクセス 135 第 4 章 バスインタフェース 【動作説明】 • A23 ∼ A00( アドレス 23 ∼ 00) は , ライトサイクルのワード / ハーフワード / バイト アクセスの先頭バイト位置のアドレスをバスサイクルの開始 (BA1) から出力しま す。上記例の場合 , 8 ビットバス幅でワードアクセスを行うため , まずワードアクセ スの先頭バイト ( アドレス下位 "0") のアドレスを出力し , その後は順々に先頭バイ トから +1 のアドレス ("1"), +2 のアドレス ("2"), +3 のアドレス ("3") を出力します。 • D31 ∼ D16( データ 31 ∼ 16) は , 外部メモリ , I/O へのライトデータを表します。ラ イトサイクルの場合は , ライトデータをバスサイクルの開始 (BA1) から出力し , バ スサイクルの終了 (BA2 の終了 ) で High-Z にします。 上記例の場合は , 8 ビットデータバス幅のため , D31 ∼ D24 にライトデータが出力さ れます。 • ライトサイクルでは RD はネゲート状態です。 • WR0, WR1 は外部データバスのライトストローブ信号であり , BA1 の立下りでア サートし , BA2 の立下りでネゲートします。 D31 ∼ D24 は WR0, D23 ∼ D16 は WR1 と , それぞれ対応するデータバスに応じて アサートされます。上記例の場合は 8 ビットデータバス幅のため , WR0 のみアサー トされます。 • チップセレクト領域 0 ∼ 5 の最大バス幅が 8 ビットの場合 , すなわち , 設定された すべての領域が 8 ビットの場合は , D23 ∼ D16 と WR1 は自動的に I/O ポートになり , ハイインピーダンス (Hi-Z) となります。 上記例はD23∼D16とWR1がI/Oポートとして使用される場合を示しています。また, チップセレクト領域 0 ∼ 5 のうち , バス幅がどれか 1 領域でも 16 ビットに設定され ていると , D23 ∼ D16 と WR1 は I/O ポートして使用できませんのでご注意ください。 端子 D31 ∼ D24 WR0 D23 ∼ D16 WR1 16 ビット D31 ∼ D24 WR0 D23 ∼ D16 WR1 8 ビット D31 ∼ D24 WR0 I/O ポート 最大バス幅 • DACK0 ∼ DACK2, DEOP0 ∼ DEOP2 は DMA の外部バスサイクルで出力されます。 出力するかどうかはDMACのレジスタ設定により決定され,出力タイミングはWR0, WR1 と同じです。 136 第 4 章 バスインタフェース 各モードでのリードサイクル 4.5.3 図 4.5-3 ∼図 4.5-7 に , 各モードでのリードサイクルの動作タイミング例を示しま す。 ■ 各モードでのリードサイクルタイミング ● バス幅 :16 ビット , アクセス : ハーフワード 図 4.5-3 リードサイクルのタイミング例 1 BA1 BA2 BA1 BA2 CLK #0 A23~A00 D31~D24 D23~D16 RD #2 #0 #1 #2 #3 ● バス幅 :16 ビット , アクセス : バイト 図 4.5-4 リードサイクルのタイミング例 2 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 RD #0 #1 #0 X #2 X #1 #3 #2 X X #3 X:無効データ入力 ● バス幅 :8 ビット , アクセス : ワード 図 4.5-5 リードサイクルのタイミング例 3 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 RD #0 #1 #0 #2 #1 #3 #2 #3 137 第 4 章 バスインタフェース ● バス幅 :8 ビット , アクセス : ハーフワード 図 4.5-6 リードサイクルのタイミング例 4 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 RD #0 #1 #2 #0 #3 #1 #2 #3 ● バス幅 :8 ビット , アクセス : バイト 図 4.5-7 リードサイクルのタイミング例 5 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 RD 138 #0 #1 #0 #2 #1 #3 #2 #3 第 4 章 バスインタフェース 4.5.4 各モードでのライトサイクル 図 4.5-8 ∼図 4.5-12 に , 各モードでのライトサイクルの動作タイミング例を示しま す。 ■ 各モードでのライトサイクルタイミング ● バス幅 :16 ビット , アクセス : ワード 図 4.5-8 ライトサイクルのタイミング例 1 BA1 BA2 BA1 BA2 CLK #0 #0 #1 A23~A00 D31~D24 D23~D16 WR0 WR1 #2 #2 #3 ● バス幅 :16 ビット , アクセス : ハーフワード 図 4.5-9 ライトサイクルのタイミング例 2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 WR0 WR1 #0 #0 #1 #2 #2 #3 ● バス幅 :16 ビット , アクセス : バイト 図 4.5-10 ライトサイクルのタイミング例 3 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 WR0 WR1 #0 #0 X #1 X #1 #2 #2 X #3 X #3 X:無効データ出力 139 第 4 章 バスインタフェース ● バス幅 :8 ビット , アクセス : ハーフワード 図 4.5-11 ライトサイクルのタイミング例 4 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~A00 D31~D24 D23~D16 WR0 WR1 #0 #0 #1 #1 #2 #2 #3 #3 ● バス幅 :8 ビット , アクセス : バイト 図 4.5-12 ライトサイクルのタイミング例 5 BA1 BA2 BA1 BA2 BA1 BA2 BA1 CLK A23~A00 D31~D24 D23~D16 WR0 WR1 140 #0 #0 #1 #1 #2 #2 #3 #3 BA 第 4 章 バスインタフェース リード / ライト混在サイクル 4.5.5 ここでは , リード / ライト混在サイクルの動作について示します。 ■ リード / ライト混在サイクルタイミング 図 4.5-13 に , CS0 領域 : バス幅 16 ビット , アクセス : ワードリードの場合および CS1 領 域 : バス幅 8 ビット , アクセス : ハーフワードライトの場合の , リード / ライト混在サ イクルのタイミング例を示します。 <注意事項> 本品種には CS4, CS5 出力はありません。 図 4.5-13 リード / ライト混在サイクルのタイミング例 BA1 BA2 BA1 BA2 Idle BA1 BA2 BA1 BA Idle CLK A23~A00 D31~D24 D23~D16 #0 #2 #0 #1 #2 #3 #0 #0 X #1 #1 X RD WR0 WR1 (CS0) (CS1) ワードリードサイクル CS0領域 ハーフワードライトサイクル CS1領域 【動作説明】 • 上記の例は , チップセレクト領域の切り換わりに , アイドルサイクル ( 何もバスサイ クルを行っていないサイクル ) が挿入された場合を表しています。 バスサイクルの間にアイドルサイクルが挿入された場合は , アドレスは次のバスサ イクルが開始されるまで前のバスサイクルのアドレスをそのまま出力し続けます。 それに伴い , 出力しているアドレスに対応する CS0 ∼ CS3 もアサートし続けます。 • 上記の例は , 16 ビット /8 ビットバスの混在です。 最大バス幅が 16 ビットのため , 8 ビットアクセス領域 (CS1 領域 ) でも D23 ∼ D16 と WR1 は I/O ポートになりません。D23 ∼ D16 は不定データが出力され , WR1 は ネゲート状態になります。 141 第 4 章 バスインタフェース 4.5.6 自動ウェイトサイクル ここでは , 自動ウェイトサイクルの動作について示します。 ■ 自動ウェイトサイクルタイミング 図 4.5-14 に , バス幅 :16 ビット , アクセス : ハーフワードリード / ライトの場合の , 自動 ウェイトサイクルのタイミング例を示します。 図 4.5-14 自動ウェイトサイクルのタイミング例 BA1 BA1 BA2 BA1 BA1 BA2 CLK A23~A00 D31~D16 RD WR0,WR1 (DACK0) (DEOP0) #0 #0:1 #2 #2,3 wait wait リード ライト 【動作説明】 • 自動ウェイトサイクルは , それぞれのチップセレクト領域の AMD レジスタの WTC2 ∼ WTC0 ビットを設定することにより実現できます。 • 上記の場合は , WTC ビットに "001B" を設定して , 通常バスサイクルに 1 ウェイトの バスサイクルを挿入した例を示しており , その場合は「通常バスサイクル 2 クロッ ク」+「ウェイトサイクル 1 クロック」の「計 3 クロックバスサイクル」になります。 自動ウェイトは最大 7 クロックサイクルまで ( その場合通常バスサイクルは 9 クロッ クサイクル ) 設定することができます。 142 第 4 章 バスインタフェース 4.5.7 外部ウェイトサイクル ここでは , 外部ウェイトサイクルの動作について示します。 ■ 外部ウェイトサイクルタイミング 図 4.5-15 に , バス幅 :16 ビット , アクセス : ハーフワードの場合の , 外部ウェイトサイ クルのタイミング例を示します。 図 4.5-15 外部ウェイトサイクルのタイミング例 BA1 BA1 BA1 BA1 BA1 BA2 CLK A23~A00 リード D31~D16 RD ライト D31~D16 WR0,WR1 #0 #0:1 #0,1 wait wait wait RDY RDY 自動 ウェイト RDYによるウェイト バスサイクル 【動作説明】 • 外部ウェイトサイクルは , EPCR0 の RDYE ビットを "1" に設定し , 外部 RDY 端子の 入力を有効にすることにより実現できます。 • 外部 RDY を使用する場合は , 必ず 1 クロック以上の自動ウェイトサイクル , すなわ ち AMD の WTC2 ∼ WTC0 ビットに "001B" 以上の値を設定してください。 自動ウェイトの最終サイクルから RDY を検出します。 • また外部 RDY は , CLK 端子出力の立下りに同期して入力してください。 CLK の立下り時点で外部 RDY が "L" レベルならばウェイトサイクルとなり , 同じ BA1 サイクルを繰り返します。また "H" レベルのときにはウェイトサイクル終了と 判断し , BA2 サイクルに遷移します。 143 第 4 章 バスインタフェース 4.5.8 外部バスリクエスト ここでは , 外部バスリクエストの動作について示します。 ■ バス権解放 図 4.5-16 に , バス権解放のタイミング例を示します。 図 4.5-16 バス権解放のタイミング例 CLK A23~A00 D31~D16 RD #0:1 #0:1 Hi-Z Hi-Z Hi-Z BRQ BGRNT 1サイクル 【動作説明】 • EPCR0 の BRE ビットを "1" に設定することにより , BRQ, BGRNT によるバスアービ トレーションを行うことができます。 • バス権解放時は,端子をハイインピーダンス(Hi-Z)にしてから1サイクル後にBGRNT をアサートします。 ■ バス権獲得 図 4.5-17 に , バス権獲得のタイミング例を示します。 図 4.5-17 バス権獲得のタイミング例 CLK A23~A00 D31~D16 RD Hi-Z Hi-Z Hi-Z BRQ BGRNT 1サイクル 【動作説明】 • EPCR0 の BRE ビットを "1" に設定することにより , BRQ, BGRNT によるバスアービ トレーションを行うことができます。 • バス権獲得時は , BGRNT をネゲートしてから 1 クロック後に各端子をアクティブに します。 144 第 4 章 バスインタフェース 4.6 内部クロック逓倍動作 ( クロックダブラ ) MB91151A は , クロック逓倍回路を持っており , CPU 内部はバスインタフェースの 2 倍 , 1 倍のいずれかの周波数で動作します。どちらのクロックを選択した場合で も , バスインタフェースは CLK 出力端子に同期して動作します。 CPU からの外部アクセス要求が発生した場合 , CLK 出力の立上りを待って外部への アクセスを開始します。 ■ クロック選択方法 2 倍 , 1 倍のクロック選択の方法は ,「3.12.4 ギア制御レジスタ (GCR)」を参照してくだ さい。 クロック選択の変更は , チップ動作中でも任意に行うことができます。クロック選択の 切換え中はバス動作が一時抑止されます。また , リセット時にはクロック選択は自動的 に 1 倍になります。 ● 2 倍クロック 図 4.6-1 に , バス幅 :16 ビット , アクセス : ワードの場合の , 2 倍クロックのタイミング 例を示します。 図 4.6-1 2 倍クロックのタイミング例 内部クロック 内部命令アドレス N + 2 N 内部命令データ D D + 2 CLK出力 外部アドレスバス N 外部データバス N + 4 N + 2 D + 2 D 外部RD プリフェッチ 外部アクセス(命令フェッチ) ● 1 倍クロック 図 4.6-2 に , バス幅 :16 ビット , アクセス : ワードの場合の , 1 倍クロックのタイミング 例を示します。 図 4.6-2 1 倍クロックのタイミング例 内部クロック 内部命令アドレス N N + 2 内部命令データ D D + 2 CLK出力 外部アドレスバス 外部データバス N + 4 N + 2 N D D + 2 外部RD 外部アクセス(命令フェッチ) プリフェッチ 145 第 4 章 バスインタフェース 4.7 外部バス動作のプログラム例 ここでは , 外部バスを動作させるための簡単なプログラム例を示します。 ■ プログラム例の仕様 ● レジスタの設定 • 領域 - 領域 0(AMD0):16 ビット , 通常バス , 自動ウェイト 0 - 領域 1(AMD1):16 ビット , 通常バス , 自動ウェイト 2 - 領域 2(AMD32):16 ビット , 通常バス , 自動ウェイト 1 - 領域 3(AMD32):16 ビット , 通常バス , 自動ウェイト 1 - 領域 4(AMD4):16 ビット , DRAM, ページサイズ 256, 1CAS/2WE, ウェイトあり , CBR リフレッシュ - 領域 5(AMD5):16 ビット , DRAM, ページサイズ 512, 2CAS/1WE, ウェイトなし , CBR リフレッシュ • ほかのバス - リフレッシュ (RFCR): ウェイトなし , 1/8 設定 - 外部端子 (EPCR0): 外部 RDY 受付け , BRQ, BGRNT のアービトレーション - 外部端子 (DSCR):DRAM 端子の設定 - リトルエンディアン (LER): 領域 2 ● その他の注意点 • MD2, MD1, MD0 は "001" 外部ベクタは 16 ビットモード。 • 領域 0 を同じバス幅に設定してから , モードレジスタ (MODR) を設定する。 • 領域 1 ∼ 5 はオーバラップしないように設定する。 <注意事項> 本品種では DRAM 制御の機能はありません。またチップセレクト出力もありません。 146 第 4 章 バスインタフェース ■ 外部バス動作のプログラム例 本プログラムは説明のためにバイトレジスタはバイトで,ハーフワードレジスタはハー フワードで書込みを行っています。 // 各レジスタ設定 init_epcr ldi:20 #0xffff,r0 // 外部端子設定 // 外部 RDY ウェイト , BRQ, BGRNT バスアービト レーション init_dscr ldi:20 #0x628,r1 // epcr0 レジスタ アドレス 設定 sth r0,@r1 // epcr0 レジスタ ライト ldi:8 #0xff,r0 // DRAM 端子設定 // RAS, CAS,WE init_amd0 init_amd1 init_amd32 init_amd4 init_amd5 init_dmcr4 ldi:20 #0x625,r1 // dscr レジスタ アドレス設定 stb r0,@r1 // dscr レジスタ ライト ldi:8 #0x08,r0 // 16 ビットバス , 0-wait ldi:20 #0x620,r1 // amd0 レジスタ アドレス設定 stb r0,@r1 // amd0 レジスタ ライト ldi:8 #0x0a,r0 // 16 ビットバス , 2-wait ldi:20 #0x621,r1 // amd1 レジスタ アドレス設定 stb r0,@r1 // amd1 レジスタ ライト ldi:8 #0x49,r0 // 通常 , 16 ビットバス , 1-wait ldi:20 #0x622,r1 // amd32 レジスタ アドレス 設定 stb r0,@r1 // amd32 レジスタ ライト ldi:8 #0x88,r0 // DRAM, 16 ビットバス ldi:20 #0x623,r1 // amd4 レジスタ アドレス設定 stb r0,@r1 // amd4 レジスタ ライト ldi:8 #0x88,r0 // DRAM, 16 ビットバス ldi:20 #0x624,r1 // amd5 レジスタ アドレス設定 stb r0,@r1 // amd5 レジスタ ライト ldi:20 #0x0c90,r0 // page size=256,Q1/Q4-wait,Page // 1CAS-2WE, CBR, パリティ なし init_dmcr5 ldi:20 #0x62c,r1 // dmcr4 レジスタ アドレス 設定 sth r0,@r1 // dmcr4 レジスタ ライト ldi:20 #0x10c0,r0 // page size=512,Q1/Q4-wait なし ,Page // 2CAS-1WE, CBR, パリティ なし init_rfcr init_asr ldi:20 #0x62e,r1 // dmcr5 レジスタ アドレス 設定 sth r0,@r1 // dmcr5 レジスタ ライト ldi:20 #0x0205,r0 // REL=2,R1W/R3W-wait なし ,refresh, 1/8 ldi:20 #0x626,r1 // rfcr レジスタ アドレス設定 sth r0,@r1 // rfcr レジスタ ライト ldi:32 #0x0013001,r0 // asr1, amr1 レジスタ設定値 147 第 4 章 バスインタフェース init_ler init_modr ldi:32 #0x0015001,r1 // asr2, amr2 レジスタ設定値 ldi:32 #0x0017001,r2 // asr3, amr3 レジスタ設定値 ldi:32 #0x0019001,r3 // asr4, amr4 レジスタ設定値 ldi:32 #0x001b001,r4 // asr5, amr5 レジスタ設定値 ldi:20 #0x60c,r5 // asr1, amr1 レジスタ アドレス 設定 ldi:20 #0x610,r6 // asr2, amr2 レジスタ アドレス 設定 ldi:20 #0x614,r7 // asr3, amr3 レジスタ アドレス 設定 ldi:20 #0x618,r8 // asr4, amr4 レジスタ アドレス 設定 ldi:20 #0x61C,r9 // asr5, amr5 レジスタ アドレス 設定 st r0,@r5 // asr1, amr1 レジスタ ライト st r1,@r6 // asr2, amr2 レジスタ ライト st r2,@r7 // asr3, amr3 レジスタ ライト st r3,@r8 // asr4, amr4 レジスタ ライト st r4,@r9 // asr5, amr5 レジスタ ライト ldi:8 #0x02,r0 // CS2 リトルエンディアン ldi:20 #0x7fe,r1 // ler レジスタ アドレス 設定 stb r0,@r1 // ler レジスタ ライト ldi:8 #0x80,r0 // 外 ROM 外バス ldi:20 #0x7ff,r1 // modr レジスタ アドレス設定 stb r0,@r1 // modr レジスタ ライト ldi:32 #0x00136da0,r0 // CS1 アドレス ldi:32 #0x00151300,r1 // CS2 アドレス ldi:32 #0x00196434,r2 // CS4 アドレス ( ページ内 ) ldi:32 #0x0019657c,r3 // CS4 アドレス ( ページ内 ) ldi:32 #0x00196600,r4 // CS4 アドレス ( ページ外 ) ldi:32 #0x001a6818,r5 // CS5 アドレス ( ページ内 ) ldi:32 #0x001a6b8c,r6 // CS5 アドレス ( ページ内 ) ldi:32 #0x001a6c00,r7 // CS5 アドレス ( ページ外 ) ld @r0,r8 // CS1 data word load lduh @r1,r9 // CS2 data halfword load ld @r2,r10 // CS4 data word load ldub @r3,r11 // CS4 data byte load st r8,@r4 // CS4 data word store sth r9,@r5 // CS5 data half word store st r10,@r6 // CS5 data word store stb r11,@r7 // CS5 data byte store // 外部バスアクセス adr_set bus_acc 148 第5章 I/O ポート この章では , I/O ポートの概要 , 各ポートのブロッ クダイヤグラムおよびレジスタの構成について説 明します。 5.1 I/O ポートの概要 5.2 基本入出力ポートのブロックダイヤグラム 5.3 入出力ポート ( プルアップ抵抗付き ) のブロックダイヤ グラム 5.4 入出力ポート ( オープンドレイン出力機能 , プルアップ 抵抗付き ) のブロックダイヤグラム 5.5 入出力ポート ( オープンドレイン出力機能付き ) のブ ロックダイヤグラム 5.6 ポートデータレジスタ (PDR2 ∼ PDRL) 5.7 データ方向レジスタ (DDR2 ∼ DDRL) 5.8 プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) 5.9 オープンドレイン制御レジスタ (OCRH, OCRI) 5.10 アナログ入力制御レジスタ (AICR) 149 第 5 章 I/O ポート 5.1 I/O ポートの概要 ここでは , I/O ポートのブロックダイヤグラムとレジスタについての概要を示しま す。 ■ 各ポートのブロックダイヤグラム MB91151Aは,各端子に対応するリソースが入出力として端子を使用しない設定になっ ているとき , I/O ポートとして使用することができます。 ポートデータレジスタ (PDR) の読出し値は , ポートが入力に設定されている場合は端 子のレベルが読み出されます。また , 出力に設定されている場合にはデータレジスタの 値が読み出されます。これはリードモディファイライトでのリードでも同じです。 入力設定から出力設定に変更する場合,あらかじめデータレジスタに出力データを設定 しますが , このときにリードモディファイライト系の命令 ( ビットセットなど ) を使用 しますと , リードしたデータは端子からの入力データであり , データレジスタのラッチ の値ではありませんので注意が必要です。 MB91151A の I/O ポートには , 以下の種類があります。 • 基本入出力ポート • プルアップ抵抗付き入出力ポート • オープンドレイン出力機能 , プルアップ抵抗付き入出力ポート • オープンドレイン出力機能付き入出力ポート ■ I/O ポートのレジスタ I/O ポートは , 以下のレジスタで構成されています。 • ポートデータレジスタ (PDR) • データ方向レジスタ (DDR) • プルアップ抵抗制御レジスタ (PCR) • オープンドレイン制御レジスタ (OCR) • アナログ入力制御レジスタ (AICR) 150 第 5 章 I/O ポート 5.2 基本入出力ポートのブロックダイヤグラム ここでは , 基本入出力ポートのブロックダイヤグラムを示します。 ■ 基本入出力ポートのブロックダイヤグラム 図 5.2-1 に , 基本入出力ポートのブロックダイヤグラムを示します。 図 5.2-1 基本入出力ポートのブロックダイヤグラム Data Bus リソース入力 0 1 PDR read pin 0 PDR リソース出力 1 リソース出力許可 DDR PDR : Port Data Register DDR : Data Direction Register I/O ポートは , PDR( ポートデータレジスタ /Port Data Register) と DDR( ポート方向レジ スタ /Data Direction Register) で構成されています。 • 入力モード (DDR=0) 時 - PDR リード時 : 対応する外部端子のレベルが読み出されます。 - PDR ライト時 :PDR に設定値が書き込まれます。 • 出力モード (DDR=1) 時 - PDR リード時 :PDR の値が読み出されます。 - PDR ライト時 :PDR の値が対応する外部端子に出力されます。 この機能を持つポートは , P20 ∼ P27, P30 ∼ P37, P40 ∼ P47, P50 ∼ P57, P80 ∼ P86, PE0 ∼ PE7, PF0 ∼ PF4, PG0 ∼ PG5, PK0 ∼ PK7, PL0 ∼ PL7 です。 <注意事項> • アナログ端子 (A/D) のリソースとポートの切換え制御は AICR で行います。 AICR (Analog Input Control register): ポート K をアナログに使用するか , 汎用ポートと して使用するかを制御します . 0: 汎用ポート 1: アナログ入力 (A/D) 151 第 5 章 I/O ポート 5.3 入出力ポート ( プルアップ抵抗付き ) のブロックダイヤ グラム ここでは , プルアップ抵抗付き入出力ポートのブロックダイヤグラムを示します。 ■ プルアップ抵抗付き入出力ポートのブロックダイヤグラム 図 5.3-1 に , プルアップ抵抗付き入出力ポートのブロックダイヤグラムを示します。 図 5.3-1 プルアップ抵抗付き入出力ポートのブロックダイヤグラム Data Bus リソース入力 0 1 PDR read pin 0 PDR リソース出力 1 リソース出力許可 DDR PCR PDR : Port Data Register DDR : Data Direction Register PCR : Pull-up Control Register この機能を持つポートは , P60 ∼ P67, PD0 ∼ PD7, PC0 ∼ PC7 です。 <注意事項> • プルアップ抵抗制御レジスタ (PCR): プルアップ抵抗 ON/OFF 制御を行います。 0: プルアップ抵抗なし 1: プルアップ抵抗あり • ストップモード時でもプルアップ抵抗制御レジスタの設定が優先されます。 • 当該端子を外バス端子として使用する場合は , 本機能は使用禁止です。本レジスタに "1" を書き込まないようにしてください。 152 第 5 章 I/O ポート 5.4 入出力ポート ( オープンドレイン出力機能 , プルアップ 抵抗付き ) のブロックダイヤグラム ここでは , オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロック ダイヤグラムを示します。 ■ オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロックダイヤグ ラム 図 5.4-1 に , オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロック ダイヤグラムを示します。 図 5.4-1 オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロックダイヤグラム Data Bus リソース入力 0 1 PDR read pin 0 PDR リソース出力 1 リソース出力許可 DDR OCR PCR PDR DDR OCR PCR : : : : Port Data Register Data Direction Register OpenDrain Control Register Pull-up Control Register この機能を持つポートは , PH0 ∼ PH5, PI0 ∼ PI5 です。 153 第 5 章 I/O ポート <注意事項> • プルアップ抵抗制御レジスタ (PCR): プルアップ抵抗 ON/OFF 制御を行います。 0: プルアップ抵抗なし 1: プルアップ抵抗あり • オープンドレイン制御レジスタ (OCR): 出力モード時のオープンドレイン制御を行いま す。 0: 出力モード時標準出力ポート 1: 出力モード時オープンドレイン出力ポート 入力モード時は意味を持ちません ( 出力 Hi-Z)。 入出力モードはデータ方向レジスタ (DDR) で決まります。 • ストップモード時でもプルアップ抵抗制御レジスタの設定が優先されます。 • 該当端子を外バス端子として使用する場合は , 両機能とも使用禁止です。両レジスタに "1" を書き込まないようにしてください。 154 第 5 章 I/O ポート 5.5 入出力ポート ( オープンドレイン出力機能付き ) のブ ロックダイヤグラム ここでは , オープンドレイン出力機能付き入出力ポートのブロックダイヤグラムを示 します。 ■ オープンドレイン出力付き入出力ポートのブロックダイヤグラム 図 5.5-1 に , オープンドレイン出力機能付き入出力ポートのブロックダイヤグラムを示 します。 図 5.5-1 オープンドレイン出力機能付き入出力ポートのブロックダイヤグラム データバス RMW リソース出力 リソース入力 RMW=0 RMW=1 PDR read 端子 PDR PDR : ポートデータレジスタ この機能を持つポートは , PJ0, PJ1 です。 <注意事項> • 入力ポート , リソース入力として使用する場合は , PDR, リソース出力を "1" としてく ださい。 • RMW によるリード時は , 端子の値ではなく PDR の値が読み込まれます。 155 第 5 章 I/O ポート 5.6 ポートデータレジスタ (PDR2 ∼ PDRL) ポートデータレジスタ (PDR2 ∼ PDRL) は , I/O ポートの入出力データレジスタで す。 対応するデータ方向レジスタ (DDR2 ∼ DDRL) で , 入出力制御が行われます。 ■ ポートデータレジスタ (PDR) ポートデータレジスタ (PDR) のレジスタ構成を , 以下に示します。 PDR2 アドレス:000001H PDR3 アドレス:000000H PDR4 アドレス:000007H 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 PDR5 7 6 5 4 3 2 1 0 アドレス:000006H P57 P56 P55 P54 P53 P52 P51 P50 初期値 XXXXXXXXB アクセス R/W PDR6 アドレス:000005H 7 P67 6 P66 5 P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 XXXXXXXXB アクセス R/W PDR8 7 6 5 4 3 2 1 0 アドレス:00000BH − P86 P85 P84 P83 P82 P81 P80 初期値 -XXXXXXXB アクセス R/W PDRC 7 PC7 6 PC6 5 PC5 4 PC4 3 PC3 2 PC2 1 PC1 0 PC0 初期値 XXXXXXXXB アクセス R/W 7 PD7 6 PD6 5 PD5 4 PD4 3 PD3 2 PD2 1 PD1 0 PD0 初期値 XXXXXXXXB アクセス R/W アドレス:000013H PDRD アドレス:000012H PDRE 7 6 5 4 3 2 1 0 アドレス:000011H PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 初期値 XXXXXXXXB アクセス R/W PDRF 7 6 5 アドレス:000010H − − − 4 PF4 3 PF3 2 PF2 1 PF1 0 PF0 初期値 ---XXXXXB アクセス R/W PDRG 7 6 5 4 3 2 1 0 − PG5 PG4 PG3 PG2 PG1 PG0 初期値 --XXXXXXB アクセス R/W 初期値 --XXXXXXB アクセス R/W アドレス:000017H − PDRH 7 6 5 4 3 2 1 0 アドレス:000016H − − PH5 PH4 PH3 PH2 PH1 PH0 ( 続く ) 156 第 5 章 I/O ポート ( 続き ) PDRI 7 6 5 4 3 2 1 0 アドレス:000015H − − PI5 PI4 PI3 PI2 PI1 PI0 初期値 --XXXXXXB アクセス R/W PDRJ 7 6 5 4 3 2 アドレス:000014H − − − − − − 1 PJ1 0 PJ0 初期値 ------11B アクセス R/W PDRK 7 PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 PK0 初期値 XXXXXXXXB アクセス R/W 7 PL7 6 PL6 5 PL5 4 PL4 3 PL3 2 PL2 1 PL1 0 PL0 初期値 XXXXXXXXB アクセス R/W アドレス:00001BH PDRL アドレス:00001AH 157 第 5 章 I/O ポート 5.7 データ方向レジスタ (DDR2 ∼ DDRL) データ方向レジスタ (DDR2 ∼ DDRL) は , 対応する I/O ポートの入出力方向を , 以下 のようにビット単位で制御します。 • DDR=0: ポート入力 • DDR=1: ポート出力 ■ データ方向レジスタ (DDR) データ方向レジスタ (DDR) のレジスタ構成を , 以下に示します。 DDR2 アドレス:000601H DDR3 アドレス:000600H DDR4 アドレス:000607H DDR5 アドレス:000606H DDR6 アドレス:000605H 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 00000000B アクセス W 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 00000000B アクセス W 7 P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 P40 初期値 00000000B アクセス W 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 00000000B アクセス W 7 P67 6 P66 5 P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 00000000B アクセス W DDR8 7 6 5 4 3 2 1 0 アドレス:00060BH − P86 P85 P84 P83 P82 P81 P80 初期値 -0000000B アクセス W DDRC 7 PC7 6 PC6 5 PC5 4 PC4 3 PC3 2 PC2 1 PC1 0 PC0 初期値 00000000B アクセス R/W 7 PD7 6 PD6 5 PD5 4 PD4 3 PD3 2 PD2 1 PD1 0 PD0 初期値 00000000B アクセス R/W アドレス:0000FDH 7 PE7 6 PE6 5 PE5 4 PE4 3 PE3 2 PE2 1 PE1 0 PE0 初期値 00000000B アクセス R/W DDRF 7 6 5 4 3 2 1 0 PF3 PF2 PF1 PF0 初期値 ---00000B アクセス R/W 初期値 --000000B アクセス R/W 初期値 --000000B アクセス R/W アドレス:0000FFH DDRD アドレス:0000FEH DDRE アドレス:0000FCH − − − PF4 DDRG 7 6 5 4 3 2 1 0 アドレス:000103H − − PG5 PG4 PG3 PG2 PG1 PG0 DDRH 7 6 5 4 3 2 1 0 − PH5 PH4 PH3 PH2 PH1 PH0 アドレス:000102H − ( 続く ) 158 第 5 章 I/O ポート ( 続き ) DDRI 7 6 5 4 3 2 1 0 アドレス:000101H − TEST PI5 PI4 PI3 PI2 PI1 PI0 初期値 -0000000B アクセス R/W DDRK 7 PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 PK0 初期値 00000000B アクセス R/W 7 PL7 6 PL6 5 PL5 4 PL4 3 PL3 2 PL2 1 PL1 0 PL0 初期値 00000000B アクセス R/W アドレス:000107H DDRL アドレス:000106H <注意事項> DDRI のビット 6 はテストビットです。必ず "0" を書き込んでください。 リード値は "0" です。 159 第 5 章 I/O ポート 5.8 プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) プルアップ抵抗制御レジスタ (PCR6, PCRI) は , 対応する I/O ポートの入力モード時 のプルアップ抵抗制御を , 以下のように行います。 • PCR=0: 入力モード時プルアップ抵抗なし • PCR=1: 入力モード時プルアップ抵抗あり 出力モード時は意味を持ちません ( プルアップ抵抗なし )。 ■ プルアップ抵抗制御レジスタ (PCR) プルアップ抵抗制御レジスタ (PCR) のレジスタ構成を , 以下に示します。 PCR6 アドレス:000631H PCRC アドレス:0000F7H 7 P67 6 P66 5 P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 00000000B アクセス R/W 7 PC7 6 PC6 5 PC5 4 PC4 3 PC3 2 PC2 1 PC1 0 PC0 初期値 00000000B アクセス R/W 初期値 00000000B アクセス R/W 初期値 --000000B アクセス R/W 初期値 --000000B アクセス R/W PCRD 7 6 5 4 3 2 1 0 アドレス:0000F6H PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 PCRH 7 6 5 4 3 2 1 0 アドレス:0000F5H − − PH5 PH4 PH3 PH2 PH1 PH0 PCRI 7 6 5 4 3 2 1 0 アドレス:0000F4H − − PI5 PI4 PI3 PI2 PI1 PI0 160 第 5 章 I/O ポート 5.9 オープンドレイン制御レジスタ (OCRH, OCRI) オープンドレイン制御レジスタ (OCRH,OCRI) は , 対応する I/O ポートの出力モード 時のオープンドレイン制御を , 以下のように行います。 • OCR=0: 出力モード時標準出力ポート • OCR=1: 出力モード時オープンドレイン出力ポート 入力モード時は意味を持ちません ( 出力 Hi-Z)。 ■ オープンドレイン制御レジスタ (OCR) オープンドレイン制御レジスタ (OCR) のレジスタ構成を , 以下に示します。 OCRH 7 6 5 4 3 2 1 0 アドレス:0000F9H − − PH5 PH4 PH3 PH2 PH1 PH0 OCRI 7 6 5 4 3 2 1 0 − PI5 PI4 PI3 PI2 PI1 PI0 アドレス:0000F8H − 初期値 --000000B アクセス R/W 初期値 --000000B アクセス R/W 161 第 5 章 I/O ポート 5.10 アナログ入力制御レジスタ (AICR) アナログ入力制御レジスタ (AICR) は , 対応する I/O ポートの各端子を以下のように 制御します。 • AICR=0: ポート入力モード • AICR=1: アナログ入力モード リセットで "0" になります。 ■ アナログ入力制御レジスタ (AICR) アナログ入力制御レジスタ (AICR) のレジスタ構成を , 以下に示します。 AICR アドレス:0000EBH 162 7 PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 PK0 初期値 00000000B アクセス R/W 第6章 8/16 ビットアップダウン カウンタ / タイマ この章では , 8/16 ビットアップダウンカウンタ / タ イマの概要 , ブロックダイヤグラム , レジスタの構 成 / 機能および 8/16 ビットアップダウンカウンタ / タイマの動作について説明します。 6.1 8/16 ビットアップダウンカウンタ / タイマの概要 6.2 8/16 ビットアップダウンカウンタ / タイマのブロック ダイヤグラム 6.3 8/16 ビットアップダウンカウンタ / タイマのレジスタ 一覧 6.4 カウントモード選択の動作 6.5 リロード / コンペア機能の動作 6.6 アップダウンカウントレジスタ (UDCR0, UDCR1) への データの書込み 163 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.1 8/16 ビットアップダウンカウンタ / タイマの概要 8/16 ビットアップダウンカウンタ / タイマは , 以下により構成されるアップダウンカ ウンタ / タイマです。 • イベント入力端子 6 本 • 8 ビットアップ / ダウンカウンタ× 2 本 • 8 ビットリロード / コンペアレジスタ× 2 本 • 制御回路 ■ 8/16 ビットアップダウンカウンタ / タイマの特長 • 8 ビットカウントレジスタにより , 0 ∼ 255 (00H ∼ FFH) の範囲でカウント可能です (16 ビット× 1 動作モードでは 0 ∼ 65,535 (0000H ∼ FFFFH) の範囲でカウント可能 )。 • カウントクロックの選択による , 以下の 4 種類のカウントモードがあります。 - タイマモード - アップ / ダウンカウンタモード - 位相差カウントモード (2 逓倍 ) - 位相差カウントモード (4 逓倍 ) • タイマモード時には , 33.3MHz 動作時のカウントクロックとして , 以下の内部クロッ ク 2 種類が選択可能です。 - 60ns(16.67MHz:2 分周 ) - 240ns(4.17MHz:8 分周 ) • アップ / ダウンカウントモード時には , 以下の 4 種の外部端子入力信号の検出エッ ジが選択可能です。 - 立下りエッジ検出 - 立上りエッジ検出 - 立下り / 立上りエッジ両エッジ検出 - エッジ検出禁止 • 位相差カウントモードは , モータ等のエンコーダのカウントに適し , エンコーダの A 相 , B 相 , Z 相出力をそれぞれ入力することで , 高精度で回転角度 , 回転数等のカウ ントを容易に行うことが可能です。 • ZIN 端子は , 以下の 2 種類の機能を選択可能 ( すべてのモードで有効 ) です。 - カウンタクリア機能 - ゲート機能 164 第 6 章 8/16 ビットアップダウン カウンタ / タイマ • コンペア機能およびリロード機能を有し , 以下のように , それぞれの機能のみで , ま た組み合わせても使用可能で , 両機能を組み合わせて使用することで任意幅での アップダウンカウントを行うことが可能です。 - コンペア機能 ( コンペア時割込み要求出力 ) - コンペア機能 ( コンペア時割込み要求出力およびカウンタクリア ) - リロード機能 ( アンダフロー時割込み要求出力およびリロード ) - コンペア / リロード機能 ( コンペア時割込み要求出力およびカウンタクリア , ア ンダフロー時割込み要求出力およびリロード ) - コンペア / リロード禁止 • カウント方向フラグにより , 直前のカウント方向を識別可能です。 • コンペア一致時 , リロード ( アンダフロー) 時またはオーバフロー時およびカウント 方向が変わった場合の割込みの発生を , それぞれ個別に制御可能です。 165 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.2 8/16 ビットアップダウンカウンタ / タイマのブロック ダイヤグラム ここでは , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラムを示し ます。 ■ 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム ● ch0 図 6.2-1 に , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch0) を 示します。 図 6.2-1 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch0) データバス CGE1 ZIN0 CGE0 8ビット RCR0(リロード/ コンペアレジスタ0) CGSC CTUT リロード制御 UCRE RLDE エッジ/レベル検出 カウンタ クリア UDCC 8ビット UDCR0(アップ/ダウン カウントレジスタ0) Carry CES1 CES0 CMS1 CMS0 UDFF CITE AIN0 BIN0 アップダウン カウント クロック選択 プリスケーラ カウントクロック UDF1 UDF0 CDCF CFIE CSTR 割込み出力 CLKS 166 UDIE OVFF CMPF 第 6 章 8/16 ビットアップダウン カウンタ / タイマ ● ch1 図 6.2-2 に , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch1) を 示します。 図 6.2-2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch1) データバス 8ビット CGE1 ZIN1 CGE0 RCR1(リロード/ コンペアレジスタ1) CGSC CTUT リロード制御 UCRE RLDE エッジ/レベル検出 カウンタ クリア UDCC 8ビット UDCR1(アップ/ダウン カウントレジスタ1) CMPF UDFF CMS1 CMS0 CES1 CES0 OVFF M16E CITE UDIE Carry AIN1 BIN1 アップダウン カウント クロック選択 プリスケーラ カウントクロック UDF1 UDF0 CDCF CFIE CSTR 割込み出力 CLKS 167 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 8/16 ビットアップダウンカウンタ / タイマのレジスタ 一覧 6.3 ここでは , 8/16 ビットアップダウンカウンタ / タイマのレジスタの一覧を示します。 ■ 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 図 6.3-1 に , 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧を示します。 図 6.3-1 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 31 24 23 8 7 0 RCR1 RCR0 UDCR1 UDCR0 CCRH0 CCRL0 − CSR0 CCRH1 CCRL1 − CSR1 bit アドレス:00005FH bit アドレス:00005EH bit アドレス:00005DH bit アドレス:00005CH 7 6 5 4 3 2 1 0 D07 D06 D05 D04 D03 D02 D01 D00 15 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D09 D08 7 6 5 4 3 2 1 0 D07 D06 D05 D04 D03 D02 D01 D00 15 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D09 D08 6 5 4 3 2 1 7 bit アドレス:000063H CSTR 000067H bit アドレス:000061H 000065H 7 − CITE bit アドレス:000064H UDIE CMPF OVFF UDFF UDF1 アップダウン カウントレジスタ ch0 (UDCR0) アップダウン カウントレジスタ ch1 (UDCR1) リロードコンペア レジスタ ch0 (RCR0) リロードコンペア レジスタ ch1 (RCR1) カウンタステータス レジスタ ch0,1 UDF0 (CSR0,1) 0 カウンタステータス レジスタ ch0,1 CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 (CCRL0,1) 6 15 14 bit アドレス:000060H M16E CDCF 168 16 15 5 13 CFIE 15 14 13 − CDCF CFIE 4 3 2 1 0 カウンタコントロール レジスタ ch0 CLKS CMS1 CMS0 CES1 CES0 (CCRH0) 12 11 10 9 8 カウンタコントロール レジスタ ch1 CLKS CMS1 CMS0 CES1 CES0 (CCRH1) 12 11 10 9 8 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.1 カウンタコントロールレジスタ H/L ch0 (CCRH0/ CCRL0 ) ここでは , カウンタコントロールレジスタ ハイ / ロー ch0(Counter Control Register High/Low ch0) について示します。 ■ カウンタコントロールレジスタ H/L ch0(CCRH0/CCRL0) カウンタコントロールレジスタ H/L ch0 のレジスタ構成は以下のとおりです。 bit 15 アドレス : 000060H M16E R/W 7 000061H − 14 13 12 CDCF R/W CFIE R/W CLKS R/W 6 5 4 11 10 CMS1 CMS0 R/W R/W 3 9 8 CES1 R/W CES0 R/W 2 1 CTUT UCRE RLDE UDCC CGSC CGE1 R/W R/W R/W W R/W R/W 0 CGE0 R/W 初期値 00000000B 初期値 -000X000B [ ビット 15] M16E:16 ビットモード許可設定ビット 8 ビット× 2 チャネル /16 ビット× 1 チャネル動作モード選択 ( 切換え ) ビットです。 M16E 16 ビットモード許可設定 0 8 ビット× 2 チャネル動作モード ( 初期値 ) 1 16 ビット× 1 チャネル動作モード [ ビット 14] CDCF: カウント方向転換フラグ カウント方向が変わった場合にセットされるフラグです。カウント起動中にカウン ト方向がアップ→ダウンまたはダウン→アップに切り換わった場合に "1" にセット されます。 • "0" の書込みでクリアされます。 • "1" の書込みは無視され , 本ビットの値は変化しません。 CDCF 方向転換検出 0 方向転換は行われていない ( 初期値 ) 1 方向転換が 1 回以上行われた [ ビット 13] CFIE: カウント方向転換割込みイネーブルビット CDCF がセットされた場合の , CPU に対しての割込み出力を制御するビットです。カ ウント起動中に一度でもカウント方向が切り換わった場合に割込みを発生します。 CFIE 方向転換割込み出力 0 方向転換割込み出力禁止 ( 初期値 ) 1 方向転換割込み出力許可 169 第 6 章 8/16 ビットアップダウン カウンタ / タイマ [ ビット 12] CLKS: 内蔵プリスケーラ選択ビット タイマモード選択時に , 内蔵プリスケーラの周波数を選択するビットです。 タイマモードでのみ有効で , このときはダウンカウントのみとなります。 CLKS 選択内部クロック 0 2 マシンサイクル ( 初期値 ) 1 8 マシンサイクル [ ビット 11, ビット 10] CMS1, CMS0: カウントモード選択ビット カウントモードを選択するビットです。 CMS1 CMS0 0 0 タイマモード〔ダウンカウント〕( 初期値 ) 0 1 アップ / ダウンカウントモード 1 0 位相差カウントモード 2 逓倍 1 1 位相差カウントモード 4 逓倍 カウントモード [ ビット 9, ビット 8] CES1, CES0: カウントクロックエッジ選択ビット アップ / ダウンカウントモード時において , 外部端子 AIN および BIN の検出エッジ を選択するビットです。 アップ / ダウンカウントモード以外では , この設定は無効です。 CES1 CES0 0 0 エッジ検出禁止 ( 初期値 ) 0 1 立下りエッジ検出 1 0 立上りエッジ検出 1 1 立上り / 立下り両エッジ検出 選択エッジ [ ビット 6] CTUT: カウンタライトビット RCR から UDCR へのデータ転送を行います。 このビットに "1" を書き込むと RCR から UDCR にデータが転送されます。 "0" の書込みは無効であり , 読出し値は常に "0" です。 カウント動作中 (CSR の CSTR ビットが "1" のとき ) に本ビットに "1" を書き込まな いでください。 170 第 6 章 8/16 ビットアップダウン カウンタ / タイマ [ ビット 5] UCRE:UDCR クリアイネーブルビット コンペアによる UDCR のクリアを制御するビットです。 コンペア発生によるクリア以外の UDCR クリア機能 (ZIN 端子によるものなど ) に は影響しません。 UCRE コンペアによるカウンタのクリア 0 カウンタクリア禁止 ( 初期値 ) 1 カウンタクリア許可 [ ビット 4] RLDE: リロードイネーブルビット リロード機能の起動を制御するビットです。リロード機能起動時に UDCR がアンダ フローを発生した場合に RCR の値を UDCR に転送します。 RLDE リロード機能 0 リロード機能禁止 ( 初期値 ) 1 リロード機能許可 [ ビット 3] UDCC:UDCR クリアビット UDCR をクリアするビットです。このビットに "0" を書き込むと UDCR が 0000H に クリアされます。 "1" の書込みは無効であり , 読出し値は不定です。 [ ビット 2] CGSC: カウンタクリア / ゲート選択ビット 外部端子 ZIN の機能を選択するビットです。 CGSC ZIN の機能 0 カウンタクリア機能 ( 初期値 ) 1 ゲート機能 [ ビット 1, ビット 0] CGE1, CGE0: カウンタクリア / ゲートエッジ選択ビット 外部端子 ZIN の検出エッジ / レベルを選択するビットです。 CGE1 CGE0 0 0 エッジ検出禁止 ( 初期値 ) レベル検出禁止 ( カウントディセーブル ) 0 1 立下りエッジ "L" レベル 1 0 立上りエッジ "H" レベル 1 1 設定禁止 設定禁止 カウンタクリア機能選択時 ゲート機能選択時 171 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.2 カウンタコントロールレジスタ H/L ch1 (CCRH1/ CCRL1) ここでは , カウンタ制御レジスタ H/L ch1(Counter Control Register High/Low ch1) について示します。 ■ カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1) カウンタ制御レジスタ H/L ch1 のレジスタ構成は以下のとおりです。 bit アドレス : 000064H 15 14 13 12 − R/W CDCF R/W CFIE R/W CLKS R/W 6 5 4 7 000065H − 11 10 CMS1 CMS0 R/W R/W 3 2 9 8 CES1 R/W CES0 R/W 1 CTUT UCRE RLDE UDCC CGSC CGE1 R/W R/W R/W W R/W R/W 0 CGE0 R/W 初期値 -0000000B 初期値 -000X000B 各ビットの詳細は ,「6.3.1 カウンタコントロールレジスタ H/L ch0 (CCRH0/CCRL0 )」 を参照してください。 172 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.3 カウンタステータスレジスタ 0/1(CSR 0, CSR1) ここでは , カウンタステータスレジスタ (Counter Status Register 0/1) について示 します。 ■ カウンタステータスレジスタ 0/1(CSR 0, CSR1) カウンタステータスレジスタ 0/1 のレジスタ構成は以下のとおりです。 bit 7 アドレス : 000063H CSTR 000067H R/W 6 5 CITE R/W UDIE R/W 4 3 CMPF OVFF R/W R/W 2 1 0 UDFF R/W UDF1 R UDF0 R 初期値 00000000B [ ビット 7] CSTR: カウント起動ビット UDCR のカウント動作の起動 / 停止を制御するビットです。 CSTR 動作内容 0 カウント動作停止 ( 初期値 ) 1 カウント動作起動 [ ビット 6] CITE: コンペア割込み出力制御ビット CMPF がセットされた ( コンペアが発生した ) 場合に , CPU への割込み出力を行う かの許可 / 禁止を制御するビットです。 CITE コンペア割込み出力 0 コンペア割込み出力禁止 ( 初期値 ) 1 コンペア割込み出力許可 [ ビット 5] UDIE: オーバフロー / アンダフロー割込み出力制御ビット OVFF/UDFF がセットされた ( オーバフロー/ アンダフローが発生した ) 場合に , CPU への割込み出力を行うかの許可 / 禁止を制御するビットです。 UDIE オーバフロー / アンダフロー割込み出力 0 オーバフロー / アンダフロー割込み出力の禁止 ( 初期値 ) 1 オーバフロー / アンダフロー割込み出力の許可 173 第 6 章 8/16 ビットアップダウン カウンタ / タイマ [ ビット 4] CMPF: コンペア検出フラグ UDCR の値と RCR の値の比較結果が等しくなったことを示すフラグです。 "0" の書込みのみ可能で , "1" の書込みはできません。 CMPF フラグ内容 0 比較結果が一致していない ( 初期値 ) 1 比較結果が一致した [ ビット 3] OVFF: オーバフロー検出フラグ オーバフローの発生を示すフラグです。 "0" の書込みのみ可能で , "1" の書込みはできません。 OVFF フラグ内容 0 オーバフローなし ( 初期値 ) 1 オーバフローあり [ ビット 2] UDFF: アンダフロー検出フラグ アンダフローの発生を示すフラグです。 "0" の書込みのみ可能で , "1" の書込みはできません。 UDFF フラグ内容 0 アンダフローなし ( 初期値 ) 1 アンダフローあり [ ビット 1, ビット 0] UDF1, UDF0: アップダウンフラグ 直前のカウント動作 ( アップ / ダウン ) を示すビットです。 読出しのみ可能で , 書込みはできません。 174 UDF1 UDF0 0 0 入力なし ( 初期値 ) 0 1 ダウンカウント 1 0 アップカウント 1 1 アップ / ダウン同時発生 検出エッジ 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.4 アップダウンカウントレジスタ 0/1(UDCR0, UDCR1) ここでは , アップダウンカウントレジスタ 0/1(Up Down Count Register 0/1) につい て示します。 ■ アップダウンカウントレジスタ 0/1(UDCR 0, UDCR1) アップダウンカウントレジスタ 0/1 のレジスタ構成は以下のとおりです。 bit 15 14 13 12 11 10 9 8 アドレス : 00005EH UDCR1 D15 R D14 R D13 R D12 R D11 R D10 R D09 R D08 R 7 6 5 4 3 2 1 0 00005FH UDCR0 D07 R D06 R D05 R D04 R D03 R D02 R D01 R D00 R 初期値 00000000B 初期値 00000000B 本レジスタは , 8 ビットカウントレジスタです。内部プリスケーラまたは AIN 端子 , BIN 端子の入力によってアップ / ダウンカウント動作を行います。また , 16 ビットカウン トモードでは , 16 ビットカウントレジスタとして動作します。この場合 , 上位 8 ビット 側の制御レジスタの設定値は動作上無効になります。 本レジスタは , 直接書込み動作を行うことができません。本レジスタに書込みを行う場 合は , RCR を介して行う必要があります。本レジスタに書き込みたい値をまず RCR に 書き込み , この後 CCRL レジスタの CTUT ビットに "1" を書き込むことで RCR から本 レジスタに転送されます ( ソフトウェアによるリロード )。 本レジスタは , 16 ビットモード起動時には 16 ビット一度に読み出してください。 175 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.5 リロード / コンペアレジスタ 0/1(RCR 0, RCR1) ここでは , リロード / コンペアレジスタ 0/1(Reload/Compare Register 0/1) につい て示します。 ■ リロード / コンペアレジスタ 0/1(RCR 0, RCR1) リロード / コンペアレジスタ 0/1 のレジスタ構成は以下のとおりです。 bit 15 14 13 12 11 10 9 8 アドレス : 00005CH RCR1 D15 W D14 W D13 W D12 W D11 W D10 W D09 W D08 W 7 6 5 4 3 2 1 0 00005DH RCR0 D07 W D06 W D05 W D04 W D03 W D02 W D01 W D00 W 初期値 00000000B 初期値 00000000B 本レジスタは , 8 ビットリロード / コンペアレジスタです。本レジスタにより , リロー ド値およびコンペア値を設定します。リロード値とコンペア値は同一であり , リロード 機能およびコンペア機能を起動することで 00H ∼本レジスタ値の間(16ビット動作モー ド :0000H ∼本レジスタ値 ) でアップ / ダウンカウントが可能になります。 本レジスタは書込みのみ可能で , 読出しはできません。カウント停止中に CCR0, CCR1 レジスタの CTUT ビットに "1" を書き込むことで , 本レジスタの値を UDCR に転送す ることが可能です ( ソフトウェアによるリロード )。 本レジスタは , 16 ビットを一度に書き込んでください。 176 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.4 カウントモード選択の動作 本タイマ / カウンタには , 4 種類のカウントモードがあります。これらのカウント モードの選択は , CCR レジスタの CMS1, CMS0 ビットで制御します。 ■ カウントモード選択 表 6.4-1 に , カウントモード選択を示します。 表 6.4-1 カウントモード選択 CMS1, CMS0 カウントモード 00B タイマモード〔ダウンカウント〕 01B アップ / ダウンカウントモード 10B 位相差カウントモード 2 逓倍 11B 位相差カウントモード 4 逓倍 ■ タイマモード〔ダウンカウント〕 タイマモードでは , 内部プリスケーラの出力をダウンカウントします。内蔵プリスケー ラについては , CCRH レジスタの CLKS ビットによって 2 マシンサイクル /8 マシンサ イクルの選択が可能です。 ■ アップ / ダウンカウントモード アップダウンカウントモードでは , 外部端子 AIN および BIN の入力をカウントするこ とでアップ / ダウンカウントを行います。AIN 端子の入力はアップカウントを , BIN 端 子の入力はダウンカウントをそれぞれ制御します。 表 6.4-2 に示すように , AIN 端子 , BIN 端子の入力はエッジ検出され , CCRH レジスタ の CES1, CES0 ビットによって検出エッジの選択が可能です。 表 6.4-2 検出エッジ選択 CES1, CES0 検出エッジ 00B エッジ検出禁止 01B 立下りエッジ検出 10B 立上りエッジ検出 11B 立下り / 立上り両エッジ検出 177 第 6 章 8/16 ビットアップダウン カウンタ / タイマ ■ 位相差カウントモード (2 逓倍 /4 逓倍 ) 位相差カウントモードでは , エンコーダの出力信号 A 相 , B 相の位相差をカウントする ため , AIN 端子の入力エッジ検出時に BIN 端子の入力レベルを , BIN 端子の入力エッジ 検出時に AIN 端子の入力レベルを検出し , カウントを行います。 2 逓倍 /4 逓倍モードでは , AIN 端子入力と BIN 端子入力の位相差について , AIN 端子 の方が早い場合にアップカウントを, BIN端子の方が早い場合にダウンカウントを行い ます。 ● 2 逓倍モード 2 逓倍モードでは , BIN 端子の立上り / 立下り両方のエッジのタイミングで AIN 端子の 値を検出することで , 以下のようにカウントを行います。 • BIN 端子の立上りエッジで検出した AIN 端子の値が "H" の場合 , アップカウント • BIN 端子の立上りエッジで検出した AIN 端子の値が "L" の場合 , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "H" の場合 , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "L" の場合 , アップカウント 図 6.4-1 に , 位相差カウントモード (2 逓倍 ) の動作概略を示します。 図 6.4-1 位相差カウントモード (2 逓倍 ) 動作概略 AIN 端子 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ BIN 端子 カウント値 0 +1 1 +1 2 +1 3 +1 4 +1 5 -1 4 +1 5 -1 4 -1 3 -1 2 -1 1 -1 0 ● 4 逓倍モード 4 逓倍モードでは , BIN 端子の立上り / 立下り両エッジのタイミングで AIN 端子の値を 検出し , また AIN 端子の立上り / 立下り両方のエッジのタイミングで BIN 端子の値を 検出することで , 以下のようにカウントを行います。 • BIN 端子の立上りエッジで検出した AIN 端子の値が "H" の場合 , アップカウント • BIN 端子の立上りエッジで検出した AIN 端子の値が "L" の場合 , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "H" の場合 , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "L" の場合 , アップカウント • AIN 端子の立上りエッジで検出した BIN 端子の値が "H" の場合 , ダウンカウント • AIN 端子の立上りエッジで検出した BIN 端子の値が "L" の場合 , アップカウント • AIN 端子の立下りエッジで検出した BIN 端子の値が "H" の場合 , アップカウント • AIN 端子の立下りエッジで検出した BIN 端子の値が "L" の場合 , ダウンカウント 178 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 図 6.4-2 に , 位相差カウントモード (4 逓倍 ) の動作概略を示します。 図 6.4-2 位相差カウントモード (4 逓倍 ) 動作概略 AIN 端子 ↓ ↑↓ ↑ ↓ ↑↓ ↑ ↓ ↑ ↑ ↑ ↑ ↓ ↑ ↓↑ ↓ ↑ ↓↑ BIN 端子 カウント値 +1 +1+1 +1 0 1 2 3 4 +1 +1 +1 +1 +1 5 6 7 8 9 +1 10 -1 9 +1 10 -1 9 -1 8 -1 -1 -1 -1 -1 -1 -1 7 6 5 4 3 2 1 エンコーダ出力のカウントの際には A 相を AIN 端子に , B 相を BIN 端子に , Z 相を ZIN 端子に入力することで , 高精度で回転角度や回転数のカウント , 回転方向の検出等が可 能です。 なお , このカウントモード選択時は , CCRH の CES1, CES0 による検出エッジの選択は 無効です。 179 第 6 章 8/16 ビットアップダウン カウンタ / タイマ リロード / コンペア機能の動作 6.5 本カウンタには , リロード機能およびコンペア機能があります。この 2 つの機能は 組み合わせて処理を行うことが可能です。 ■ リロード / コンペア機能 表 6.5-1 に , リロード / コンペア機能の組合せの設定例を示します。 表 6.5-1 リロード / コンペア機能選択の例 RLDE, UCRE リロード / コンペア機能 00B リロード / コンペア禁止 ( 初期値 ) 01B コンペア許可 10B リロード許可 11B リロード / コンペア許可 ■ リロード機能起動時 リロード機能起動時は,アンダフロー発生の次のダウンカウントクロックのタイミング で RCR の値を UDCR に転送します。このとき , UDFF がセットされると共に割込み要 求を発生します。 ダウンカウントを行わないモードでは , 本機能の起動は無効となります。 図 6.5-1 に , リロード機能の動作概略を示します。 図 6.5-1 リロード機能動作概略 (0FFFFH) 0FFH リロード,割込み発生 リロード,割込み発生 RCR 00H アンダフロー 180 アンダフロー 第 6 章 8/16 ビットアップダウン カウンタ / タイマ ■ コンペア機能起動時 コンペア機能は , タイマモード以外のすべてのモードで使用可能です。コンペア機能起 動時は , RCR と UDCR の値が一致した場合に , CMPF がセットされると共に割込み要 求を発生します。また , コンペアクリア機能起動時は , その次のアップカウントクロッ クのタイミングで UDCR をクリアします。 アップカウントを行わないモードでは , 本機能の起動は無効となります。 図 6.5-2 に , コンペア機能の動作概略を示します。 図 6.5-2 コンペア機能動作概略 (0FFFFH) 0FFH コンペア一致 コンペア一致 RCR 00H カウンタクリア,割込み発生 カウンタクリア,割込み発生 ■ リロード / コンペア機能同時起動時 リロード / コンペア機能起動時は , 任意幅でのアップ / ダウンカウントが可能です。 リロード機能により , アンダフロー時に起動して RCR の値を UDCR に転送します。ま た , コンペア機能により , RCR と UDCR の値が一致した場合に UDCR をクリアします。 この両機能を利用して , 0000H ∼ RCR の値の間でアップ / ダウンカウントを行います。 図 6.5-3 に , リロード / コンペア機能同時起動時の動作概略を示します。 図 6.5-3 リロード / コンペア機能同時起動時動作概略 0FFH コンペア一致 コンペア一致 リロード リロード アンダフロー アンダフロー リロード コンペア一致 RCR 00H カウンタクリア カウンタクリア アンダフロー カウンタクリア コンペア一致時またはリロード ( アンダフロー ) 時に CPU に割込みを発生することが できます。 また , これらの割込み出力のイネーブルは個別に制御可能です。 181 第 6 章 8/16 ビットアップダウン カウンタ / タイマ UDCR に対しリロードおよびクリアを行う場合のタイミングについて , カウント起動 中と停止中では異なります。 • カウント動作中にリロードまたはクリアのイベントが発生した場合は , すべてカウ ントクロックに同期して行われます ( 図は 0080H をリロードした場合 )。 065H UDCR 066H 080H リロード/ クリアイベント 081H このクロックに同期する カウント クロック • カウント動作中にリロードおよびクリアのイベントが発生した場合で , カウントク ロック同期待ち ( 同期させるためのカウント入力を待っている状態 ) のままカウン トを停止させた場合は , 停止した時点でリロードおよびクリアが行われます ( 図は 0080H をリロードした場合 )。 UDCR 065H 066H 080H リロード/ クリアイベント カウント クロック カウント イネーブル イネーブル(カウント許可) ディセーブル(カウント禁止) • カウント停止中にリロードおよびクリアのイベントが発生した場合は , イベント発 生時点で行われます ( 図は 0080H をリロードした場合 )。 UDCR 065H 080H リロード/ クリアイベント コンペアによるクリアについては , UDCR と RCR の値が一致し , さらにアップカウン トが行われた場合にクリアが行われます。UDCR と RCR の値が一致した場合において も , その後ダウンカウントやカウント停止になった場合は , クリアは行われません。 クリア / リロードのタイミングについて , クリアについてはリセット入力以外のすべて のイベントで , またリロードもすべてのイベントにおいて上記タイミングに従います。 クリアイベントとリロードイベントが同時期に発生した場合はクリアイベントが優先 となります。 182 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.6 アップダウンカウントレジスタ (UDCR0, UDCR1) への データの書込み アップダウンカウントレジスタ (UDCR) へは , データバスから直接データを書き込 むことはできません。ここでは , 書込みの手順 , カウンタのクリアおよびフラグなど について示します。 ■ アップダウンカウントレジスタ (UDCR) へのデータの書込み UDCR に任意のデータを書き込む場合は , 以下のような手順で書き込む必要がありま す。 1)UDCR に書き込むデータを , まず RCR に書き込む (RCR のデータは失われるので注 意 )。 2)CCR の CTUT に "1" を書き込むことにより , RCR から UDCR にデータが転送される。 以上の動作は , カウント停止中 (CSR の CSTR ビットが "0" の場合 ) に行ってください。 カウンタのクリアについては , 上記以外の方法以外に以下のような方法があります。 • リセット入力によるクリア ( 初期化 ) • ZIN 端子からのエッジ入力によるクリア • CCR の UDCC に "0" を書き込むことによるクリア • コンペア機能によるクリア これらの書込みは , カウント起動 / 停止にかかわらず行うことができます。 ■ カウントクリア / ゲート機能 ZIN 端子は CCR レジスタの CGSC ビットによって , カウントクリア機能またはゲート 機能を選択して使用可能です。 カウントクリア機能起動時は , ZIN 端子によりカウンタのクリアを行います。ZIN 端子 のどのエッジ入力でカウントクリアを行うかを CCRL レジスタの CGE1, CGE0 ビット で制御可能です。 ゲート機能起動時は, ZIN端子によりカウントのイネーブル/ディセーブルを行います。 ZIN 端子のどのレベル入力でイネーブルとするかを CCR レジスタの CGE1, CGE0 ビッ トで制御可能です。 本機能は , すべてのモードで有効です。 表 6.6-1 に , ZIN 端子の機能選択を示します。 表 6.6-1 ZIN 端子機能選択 CGSC ZIN 端子の機能 CGE1, CGE0 0 カウンタクリア機能 00B 検出禁止 検出禁止 1 ゲート機能 01B 立上りエッジ "L" レベル 10B 立下りエッジ "H" レベル カウンタクリア機能時 ゲート機能時 183 第 6 章 8/16 ビットアップダウン カウンタ / タイマ ■ カウント方向フラグ カウント方向フラグ (UDF1, UDF0) は , アップ / ダウンカウント時に , 直前のカウント がアップカウントであったかダウンカウントであったかを示します。AIN, BIN 両端子 の入力から生成されたカウントクロックから判断して,カウントのたびにフラグを書き 換えます。モータの制御等で , 現在の回転方向を知りたい場合等にこのフラグをみるこ とで回転方向を判別できます。 表 6.6-2 に , カウント方向フラグを示します。 表 6.6-2 カウント方向フラグ UDF1, UDF0 カウント方向 01B ダウンカウント 10B アップカウント 11B アップ / ダウン同時発生 ( カウント動作は行われない ) ■ カウント方向転換フラグ カウント方向転換フラグ (CDCF) は , カウント方向がアップ ↔ ダウンで切り換わった 場合にセットされます。また , このフラグがセットされると同時に CPU に対して割込 み要求を発生させることができます。この割込みとカウント方向フラグを参照するこ とにより , カウント方向がどちらからどちらへ変化したかを判断することができます。 ただし , 方向転換の期間が短く , 連続して発生した場合などは , 方向転換後のフラグの 示す方向が元に戻り同一方向となる場合がありますので注意が必要です。 表 6.6-3 に , カウント方向転換フラグを示します。 表 6.6-3 カウント方向転換フラグ CDCF カウント方向転換検出 0 方向転換なし 1 方向転換あり (1 回以上 ) ■ コンペア検出フラグ コンペア検出フラグ (CMPF) は , カウント動作中に UDCR の値と RCR の値が等しく なった場合にセットされます。カウントアップ一致のほか , リロードイベント発生によ る一致 , カウント起動時にすでに一致している場合もセットされます。 ただし , ダウンカウントにより一致した場合 ( アンダフローによるリロードでのコンペ アは除く ) は , 一致とみなしません。この場合 , フラグはセットされません。 ■ 8 ビット× 2 チャネル , 16 ビット× 1 チャネル動作 このモジュールは , 8 ビットアップダウンカウンタ× 2 チャネルまたは 16 ビットアッ プダウンカウンタ× 1 チャネルとして使用できます。CCRH0 レジスタの M16E ビット に "0" を書き込むことにより , 8 ビット× 2 チャネルモードとなり , "1" を書き込むこと により , 16 ビット× 1 チャネルモードとなります。 16 ビット× 1 チャネルとして動作する場合 , CSR0, CCRL0, CCRH0, レジスタが有効と なり, CSR1, CCRL1, CCRH1レジスタは使用できません。また, 入力端子は, AIN0, BIN0, ZIN0 端子が有効となり , AIN1, BIN1, ZIN1 端子は使われません。 184 第7章 16 ビットリロードタイマ この章では , 16 ビットリロードタイマの概要 , ブ ロックダイヤグラム , レジスタの構成 / 機能および 16 ビットリロードタイマの動作について説明しま す。 7.1 16 ビットリロードタイマの概要 7.2 16 ビットリロードタイマのブロックダイヤグラム 7.3 16 ビットリロードタイマのレジスタ一覧 7.4 内部クロック動作 7.5 アンダフロー動作 7.6 カウンタの動作状態 185 第 7 章 16 ビットリロードタイマ 7.1 16 ビットリロードタイマの概要 16 ビットリロードタイマは , 以下により構成されています。 • 16 ビットのダウンカウンタ • 16 ビットのリロードレジスタ • 内部カウントクロック作成用プリスケーラ • コントロールレジスタ ■ 16 ビットリロードタイマの特長 • 入力クロックとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周 ) から選択 できます。 • 割込みによる DMA 転送の起動が可能です。 • 本品種は , 本タイマを 4 チャネル内蔵しています。 • リロードタイマの ch2 の TO 出力は , LSI 内部で A/D コンバータに接続されていま す。したがって , リロードレジスタに設定された周期で A/D 変換を起動することが 可能です。 186 第 7 章 16 ビットリロードタイマ 16 ビットリロードタイマのブロックダイヤグラム 7.2 図 7.2-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 ■ 16 ビットリロードタイマのブロックダイヤグラム 図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム 16 16ビット リロードレジスタ 8 リロード RELD 16 OUTE 16ビットダウンカウンタ UF R-bus 2 OUT CTL. GATE OUTL 2 INTE CSL1 UF CSL0 CNTE IRQ クロックセレクタ 2 TRG IN CTL. φ φ φ - - - 21 23 25 リトリガ 3 プリスケーラ クリア PWM (ch0,ch1) A/D (ch2) MOD2 MOD1 φ 内部クロック MOD0 3 187 第 7 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタ一覧 7.3 図 7.3-1 に , 16 ビットリロードタイマのレジスタ一覧を示します。 ■ 16 ビットリロードタイマのレジスタ一覧 図 7.3-1 16 ビットリロードタイマのレジスタ一覧 15 14 13 12 11 10 - - - - CSL1 CSL0 7 6 5 4 3 2 1 0 RELD INTE UF CNTE TRG MOD0 OUTE OUTL 15 9 8 コントロールステータスレジスタ MOD2 MOD1 (TMCSR0 ∼ TMCSR3) 0 16 ビットタイマレジスタ (TMR0 ∼ TMR3) 15 0 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) 188 第 7 章 16 ビットリロードタイマ 7.3.1 コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) は , 16 ビットタイマの動 作モードおよび割込みの制御をします。 UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにして ください。 同時書込みは可能です。 ■ コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) コントロールステータスレジスタ (TMCSR) のレジスタ構成は以下のとおりです。 TMCSR 11 10 9 8 7 6 5 4 3 アドレス : 000032H CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE 00003AH R/W R/W R/W R/W R/W R/W R/W R/W R/W 000042H 00004AH 2 1 0 UF CNTE TRG R/W R/W R/W 初期値 -000H [ ビット 11, ビット 10] CSL1, CSL0(Conut clock SeLect) カウントクロックセレクトビットです。 選択されるクロックソースを , 表 7.3-1 に示します。 表 7.3-1 CSL ビット設定クロックソース CSL1 CSL0 0 0 φ/21 0 1 φ/23 1 0 φ/25 1 1 設定禁止 クロックソース (φ: マシンクロック ) [ ビット 9, ビット 8, ビット 7] MOD2, MOD1, MOD0 (MODe) 動作モードを設定するビットです。 必ず "0" を設定してください。 [ ビット 6] OUTE (OUTput Enable) 出力許可ビットです。"0" のとき , TO 端子は汎用ポートになり , "1" のとき , TO 端 子はタイマ出力端子になります。 出力波形は , リロードモード時はトグル出力となり , ワンショットモード時はカウ ント中を示す矩形波出力になります。 [ ビット 5] OUTL TO端子の出力レベルを設定するビットです。本ビットが"0"のときと"1"のときでは, 端子レベルが逆になります。 189 第 7 章 16 ビットリロードタイマ [ ビット 4] RELD リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへロード してカウント動作を続けます。 "0" のときカウンタの値が 0000H → FFFFH へのアンダフローによりカウント動作を 停止します。 表 7.3-2 OUTE, OUTL, RELD の設定方法 OUTE OUTL RELD 0 × × 汎用ポート 1 0 0 カウント中 "H" の矩形波 1 1 0 カウント中 "L" の矩形波 1 0 1 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 注 ) 表中の " × " は , 任意の値を示します。 [ ビット 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 のときには , 何も起こりません。 190 第 7 章 16 ビットリロードタイマ 16 ビットタイマレジスタ (TMR0 ∼ TMR3)/16 ビット リロードレジスタ (TMRLR0 ∼ TMRLR3) 7.3.2 16 ビットタイマレジスタ (TMR0 ∼ TMR3) は , 16 ビットタイマのカウント値を読み 出すことができるレジスタです。初期値は不定です。 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) は , カウントの初期値を保持し ておくレジスタです。初期値は不定です。 ■ 16 ビットタイマレジスタ (TMR0 ∼ TMR3) 16 ビットタイマレジスタ (TMR) のレジスタ構成を以下に示します。 TMR 初期値 0 ~ ~ ~ ~ アドレス : 15 00002EH 000036H 00003EH 000046H R R R R ... R R R R R X X X X ... X X X X X <注意事項> このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。 ■ 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) 16 ビットリロードレジスタ (TMRLR) のレジスタ構成を以下に示します。 TMRLR 初期値 0 ~ ~ ~ ~ アドレス : 15 00002CH 000034H 00003CH 000044H W W W W ... W W W W W X X X X ... X X X X X <注意事項> このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行ってください。 191 第 7 章 16 ビットリロードタイマ 7.4 内部クロック動作 内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ ンクロックの 2, 8, 32 分周のクロックから選択することができます。 ■ 内部クロック動作 カウント許可と同時にカウント動作を開始したい場合は,コントロールステータスレジ スタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビットに よるトリガ入力は , タイマが起動状態のとき (CNTE="1") 動作モードにかかわらず常に 有効です。 カウンタの起動 , カウンタの動作について , 図 7.4-1 に示します。 カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに , T(T: 周辺系クロックマシンサイクル ) の時間がかかります。 図 7.4-1 カウンタの起動および動作 カウントクロック カウンタ リロードデータ データロード CNTE(レジスタ) TRG(レジスタ) T 192 -1 -1 -1 第 7 章 16 ビットリロードタイマ 7.5 アンダフロー動作 カウンタの値が 0000H から FFFFH になる場合をアンダフローとしています。した がって ,〔リロードレジスタの設定値 +1〕カウントでアンダフローが発生すること になります。 ■ アンダフロー動作 アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の ときカウンタは , FFFFH で停止します。 アンダフローによりコントロールレジスタの UF ビットがセットされ , INTE ビットが "1" のとき割込み要求を発生します。 図 7.5-1 に , アンダフロー動作について示します。 図 7.5-1 アンダフロー動作 カウントクロック カウンタ 0000H リロードデータ -1 -1 -1 データロード アンダフローセット [RELD=1] カウントクロック カウンタ 0000H FFFFH アンダフローセット [RELD=0] 193 第 7 章 16 ビットリロードタイマ ■ 出力端子機能 TO0 ∼ TO3 出力端子は , リロードモード時はアンダフローにより反転するトグル出力 として , ワンショットモード時はカウント中を示すパルス出力として機能します。出力 極性は , レジスタの OUTL ビットにより設定できます。OUTL=0 のときトグル出力は , 初期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 に すると出力波形は , 反転します。 図 7.5-2 および図 7.5-3 に , 出力端子機能を示します。 図 7.5-2 16 ビットリロードタイマの出力端子機能 (1) カウント開始 アンダフロー TO0~TO3 OUTL=1のときは反転 汎用ポート CNTE 起動トリガ [RELD=1, OUTL=0] 図 7.5-3 16 ビットリロードタイマの出力端子機能 (2) カウント開始 アンダフロー TO0~TO3 OUTL=1のときは反転 汎用ポート CNTE 起動トリガ 起動トリガ待ち状態 [RELD=0, OUTL=0] 194 第 7 章 16 ビットリロードタイマ カウンタの動作状態 7.6 カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号 によって決まっています。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ), CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE=1, WAIT=0 の動作状態 (RUN 状態 ) があります。 ■ カウンタの動作状態 各状態の遷移を , 図 7.6-1 に示します。 図 7.6-1 カウンタ状態遷移 ハードウェアによる状態遷移 リセット レジスタアクセスによる状態遷移 STOP CNTE=0,WAIT=1 カウンタ:停止時の値を保持 リセット直後は不定 CNTE=1 TRG=0 WAIT CNTE=1 TRG=1 CNTE=1,WAIT=1 RUN カウンタ:停止時の値を保持 リセット直後ロードするまで は不定 カウンタ:動作 RELD・UF TRG=1 LOAD CNTE=1,WAIT=0 TRG=1 CNTE=1,WAIT=0 リロードレジスタの内容をカウンタへロード RELD・UF ロード終了 195 第 7 章 16 ビットリロードタイマ 196 第8章 PPG タイマ この章では , PPG タイマの概要 , ブロックダイヤ グラム , レジスタの構成 / 機能および PPG タイマ の動作について説明します。 8.1 PPG タイマの概要 8.2 PPG タイマのブロックダイヤグラム 8.3 PPG タイマのレジスタ 8.4 PWM 動作 8.5 ワンショット動作 8.6 PWM タイマの割込み要因とタイミングチャート 8.7 ジェネラルコントロールレジスタを使った複数チャネル の起動 197 第 8 章 PPG タイマ 8.1 PPG タイマの概要 PPG タイマは , 精度の高い PWM 波形を効率良く出力することができます。 MB91151A は , PPG タイマを 6 チャネル内蔵しています。 各チャネルは , 以下のものから構成されています。 • 16 ビットダウンカウンタ • 周期設定用バッファ付 16 ビットデータレジスタ • デューティ設定用バッファ付 16 ビットコンペアレジスタ • 端子制御部 ■ PPG タイマの特長 • 16 ビットダウンカウンタのカウントクロックは , 以下の 4 種類から選択が可能です。 - 内部クロック :φ - 内部クロック :φ/4 - 内部クロック :φ/16 - 内部クロック :φ/64 • カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化することができます。 • チャネルごとに PWM 出力があります。 • レジスタ - 周期設定レジスタ : バッファ付 , リロード用データレジスタです。 - デューティ設定レジスタ : バッファ付 , コンペアレジスタです。 - バッファからの転送は , カウンタボローで行います。 • 端子制御 - デューティ一致で , "1" にセットします ( 優先 )。 - カウンタボローで , "0" にリセットします。 - 出力値固定モードがあり , オール "L"( または "H") を簡単に出力できます。 - 極性指定も可能です。 • 割込み要求は , 以下の組合せから選択して発生することができます。また , 割込み 要求によって , DMA 転送起動が可能です。 - 本タイマ起動 - カウンタボロー発生 ( 周期一致 ) - デューティ一致発生 - カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生 • ソフトウェアまたは , ほかのインターバルタイマで複数チャネルの同時起動が設定 できます。また , 動作中の再起動も設定可能です。 198 第 8 章 PPG タイマ 8.2 PPG タイマのブロックダイヤグラム 図 8.2-1 に PPG タイマ全体 , 図 8.2-2 に PPG タイマ 1 チャネル分の , ブロックダイ ヤグラムを示します。 ■ PPG タイマ全体のブロックダイヤグラム 図 8.2-1 PPG タイマ全体のブロックダイヤグラム 16ビットリロード タイマ ch0 TRG入力 PWMタイマ ch0 TRG入力 PWMタイマ ch1 TRG入力 PWMタイマ ch2 TRG入力 PWMタイマ ch3 外部TRG4 TRG入力 PWMタイマ ch4 外部TRG5 TRG入力 PWMタイマ ch5 PWM0 ジェネラル 16ビットリロード タイマ ch1 コントロール レジスタ1 ジェネラル コントロール レジスタ2 外部TRG0~TRG3 4 (要因選択) 4 PWM1 PWM2 PWM3 PWM4 PWM5 199 第 8 章 PPG タイマ ■ PPG タイマ 1 チャネル分のブロックダイヤグラム 図 8.2-2 PPG タイマ 1 チャネル分のブロックダイヤグラム PCSR PDUT プリスケーラ 1/1 1/4 クロック ロード CMP 1/16 1/64 16ビット ダウンカウンタ 周辺系クロック スタート ボロー PPGマスク S Q PWM出力 R 反転ビット T R G 入力 エッジ検出 ソフトトリガ 200 割込み選択 イネーブル IRQ 第 8 章 PPG タイマ 8.3 PPG タイマのレジスタ 図 8.3-1 に , PPG タイマのレジスタ一覧を示します。 ■ PPG タイマのレジスタ一覧 図 8.3-1 PPG タイマのレジスタ一覧 アドレス 15 0 R/W ジェネラルコントロールレジスタ 1 GCN1 00000094H 00000097H GCN2 R/W ジェネラルコントロールレジスタ 2 00000098H PTMR0 R ch0 PWM タイマレジスタ 0000009AH PCSR0 W ch0 PWM 周期設定レジスタ 0000009CH PDUT0 W ch0 PWM デューティ設定レジスタ 0000009EH PCNH0 PCNL0 R/W ch0 コントロールステータスレジスタ 000000A0H PTMR1 R ch1 PWM タイマレジスタ 000000A2H PCSR1 W ch1 PWM 周期設定レジスタ 000000A4H PDUT1 W ch1 PWM デューティ設定レジスタ 000000A6H PCNH1 PCNL1 R/W ch1 コントロールステータスレジスタ 000000A8H PTMR2 R ch2 PWM タイマレジスタ 000000AAH PCSR2 W ch2 PWM 周期設定レジスタ 000000ACH PDUT2 W ch2 PWM デューティ設定レジスタ 000000AEH PCNH2 PCNL2 R/W ch2 コントロールステータスレジスタ ( 続く ) 201 第 8 章 PPG タイマ ( 続き ) 図 8.3-1 PPG タイマのレジスタ一覧 アドレス 15 0 000000B0H PTMR3 R ch3 PWM タイマレジスタ 000000B2H PCSR3 W ch3 PWM 周期設定レジスタ 000000B4H PDUT3 W ch3 PWM デューティ設定レジスタ 000000B6H PCNH3 PCNL3 R/W ch3 コントロールステータスレジスタ 000000B8H PTMR4 R ch4 PWM タイマレジスタ 000000BAH PCSR4 W ch4 PWM 周期設定レジスタ 000000BCH PDUT4 W ch4 PWM デューティ設定レジスタ 000000BEH PCNL4 R/W ch4 コントロールステータスレジスタ 000000C0H PTMR5 R ch5 PWM タイマレジスタ 000000C2H PCSR5 W ch5 PWM 周期設定レジスタ 000000C4H PDUT5 W ch5 PWM デューティ設定レジスタ 000000C6H 202 PCNH4 PCNH5 PCNL5 R/W ch5 コントロールステータスレジスタ 第 8 章 PPG タイマ 8.3.1 コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) は , PWM タイマの制御およびステータス表示をします。PWM タイマ動作中に書換え不可能な ビットがありますので注意してください。 ■ コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) のレジスタ構 成は以下のとおりです。 PCNH bit 15 14 13 12 CNTE STGR MDSE RTRG アドレス : ch0 00009EH R/W R/W R/W ch1 0000A6H R/W ch2 0000AEH 0 0 0 0 ch3 0000B6H ○ ○ × × ch4 0000BEH ch5 0000C6H 11 CKS1 R/W 10 9 CKS0 PGMS R/W R/W 8 - ←属性 0 0 0 - ←初期値 × × ○ - ←動作中の書換え 1 0 PCNL bit 7 アドレス : ch0 00009FH EGS1 ch1 0000A7H R/W ch2 0000AFH 0 ch3 0000B7H × ch4 0000BFH ch5 0000C7H 6 5 4 3 2 EGS0 R/W IREN R/W IRQF R/W IRS1 R/W IRS0 R/W 0 0 0 0 0 × ○ ○ × × POEN OSEL R/W R/W ←属性 0 0 ←初期値 × × ←動作中の書換え [ ビット 15] CNTE: タイマ許可ビット 16 ビットダウンカウンタの動作を許可するビットです。 0 停止 1 許可 ( 初期値 ) [ ビット 14] STGR: ソフトウェアトリガビット このビットに "1" を書き込むことによりソフトウェアトリガがかかります。 STGR ビットの読出し値は , 常に "0" です。 [ ビット 13] MDSE: モード選択ビット 連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択 します。 0 PWM 動作 ( 初期値 ) 1 ワンショット動作 203 第 8 章 PPG タイマ [ ビット 12] RTRG: 再起動許可ビット ソフトウェアトリガまたはトリガ入力による再起動を許可するビットです。 0 再起動禁止 ( 初期値 ) 1 再起動許可 [ ビット 11, ビット 10] CKS1, CKS0: カウンタクロック選択ビット 16 ビットダウンカウンタのカウントクロックを選択します。 CKS1 CKS0 0 0 φ ( 初期値 ) 0 1 φ/4 1 0 φ/16 1 1 φ/64 周期 φ: 周辺系マシンクロック [ ビット 9] PGMS:PWM 出力マスク選択ビット このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値 にかかわらず PWM 出力を "0" または "1" にマスクすることができます。以下に , PGMS に "1" を書き込んだときの PWM 出力を示します。 極性 PWM 出力 通常極性 "L" 出力 反転極性 "H" 出力 通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期 設定レジスタとデューティ設定レジスタに同値をライトすれば上記マスク値の反 転を出力することができます。 [ ビット 8] 未使用ビットです。 [ ビット 7, ビット 6] EGS1, EGS0: トリガ入力エッジ選択ビット ジェネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。 どのモードを選択していてもソフトトリガのビットに "1" を書き込むとソフトトリ ガは有効になります。 204 第 8 章 PPG タイマ EGS1 EGS0 0 0 無効 ( 初期値 ) 0 1 立上りエッジ 1 0 立下りエッジ 1 1 両エッジ エッジ選択 [ ビット 5] IREN: 割込み要求許可ビット 割込み要求を許可するビットです。 0 禁止 1 許可 ( 初期値 ) [ ビット 4] IRQF: 割込み要求フラグ ビット 5 IREN が許可されていて ビット 3, 2, IRS1, IRS0 にて選択した割込み要因が 発生すると , 本ビットがセットされ CPU に割込み要求を発生します。また , DMA 転送の起動を選択している場合は , DMA 転送が起動されます。 本ビットのクリアは , "0" の書込みと DMAC からのクリア信号で行われます。 "1" を書き込んでもビット値は変化しません。 リードモディファイライト系命令におけるリード値は , ビット値にかかわらず "1" です。 [ ビット 3, ビット 2] IRS1, IRS0: 割込み要因選択ビット ビット 4 IRQF をセットする要因を選択します。 IRS1 IRS0 0 0 ソフトウェアトリガまたはトリガ入力あり ( 初期値 ) 0 1 カウンタボロー発生 ( 周期一致 ) 1 0 デューティ一致発生 1 1 カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生 割込み要因 [ ビット 1] POEN: PWM 出力許可ビット "1" に設定することにより , PWM 出力が端子から出力されます。 0 汎用ポート ( 初期値 ) 1 PWM 出力端子 205 第 8 章 PPG タイマ [ ビット 0] OSEL: PWM 出力極性指定ビット PWM 出力の極性を設定します。 ビット 9 PGMS との組合せで , 以下のようになります。 PGMS OSEL 0 0 通常極性 ( 初期値 ) 0 1 反転極性 1 0 出力 "L" 固定 1 1 出力 "H" 固定 極性 206 リセット後 通常極性 "L" 出力 反転極性 "H" 出力 PWM 出力 デューティ一致 カウンタボロー 第 8 章 PPG タイマ PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) 8.3.2 PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) は , 周期を設定するための , バッファ付 レジスタです。バッファからの転送は , カウンタボローで行われます。 ■ PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) のレジスタ構成は以下のとおりです。 PCSR bit アドレス : ch0 00009AH ch1 0000A2H ch2 0000AAH ch3 0000B2H ch4 0000BAH ch5 0000C2H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 属性 →ライトオンリ 初期値→不定 <注意事項> • 周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタの書込み後 , 必ず デューティ設定レジスタへの書込み動作を行ってください。 • 本レジスタは , 16 ビットデータでアクセスしてください。 207 第 8 章 PPG タイマ PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) 8.3.3 PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) は , デューティを設定するための , バッファ付レジスタです。バッファからの転送は , カウンタボローで行われます。 ■ PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) PWM デューティ設定レジスタ (PDUT0∼ PDUT5) のレジスタ構成は以下のとおりです。 PDUT bit アドレス : ch0 00009CH ch1 0000A4H ch2 0000ACH ch3 0000B4H ch4 0000BCH ch5 0000C4H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 属性 →ライトオンリ 初期値→不定 周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に オール "H" を , 反転極性時にオール "L" を出力します。 <注意事項> • PCSR < PDUT となるような値を設定しないでください。PWM 出力は不定となります。 • 本レジスタは , 16 ビットデータでアクセスしてください。 208 第 8 章 PPG タイマ PWM タイマレジスタ (PTMR0 ∼ PTMR5) 8.3.4 PWM タイマレジスタ (PTMR0 ∼ PTMR5) は , 16 ビットダウンカウンタの値を読み 出すことができるレジスタです。 ■ PWM タイマレジスタ (PTMR0 ∼ PTMR5) PWM タイマレジスタ (PTMR0 ∼ PTMR5) のレジスタ構成は以下のとおりです。 PTMR 0 ∼ PTMR 5 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 アドレス : ch0 000098H ch1 0000A0H ch2 0000A8H ch3 0000B0H ch4 0000B8H ch5 0000C0H 属性 →リードオンリ 初期値→ 11111111 11111111B <注意事項> 本レジスタは , 16 ビットデータでアクセスしてください。 209 第 8 章 PPG タイマ 8.3.5 ジェネラルコントロールレジスタ 1(GCN1) ジェネラルコントロールレジスタ 1(GCN1) は , PWM タイマのトリガ入力の要因を 選択するレジスタです。 ■ ジェネラルコントロールレジスタ 1(GCN1) ジェネラルコントロールレジスタ 1(GCN1) のレジスタ構成は以下のとおりです。 GCN1 bit アドレス : 000094H bit 15 14 13 12 TSEL 33 ∼ TSEL 30 R/W R/W R/W R/W 11 10 9 8 TSEL 23 ∼ TSEL 20 R/W R/W R/W R/W 0 0 1 1 0 0 1 0 7 6 5 4 3 2 1 0 TSEL 13 ∼ TSEL 10 R/W R/W R/W R/W 0 0 0 1 TSEL 03 ∼ TSEL 00 R/W R/W R/W R/W 0 0 0 0 [ ビット 15 ∼ビット 12] TSEL33 ∼ TSEL30:ch3 トリガ入力選択ビット TSEL33 ∼ TSEL30 210 ch3 トリガ入力 0 0 0 0 GCN2 の EN0 ビット 0 0 0 1 GCN2 の EN1 ビット 0 0 1 0 GCN2 の EN2 ビット 0 0 1 1 GCN2 の EN3 ビット ( 初期値 ) 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 × 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 × × 設定禁止 ←属性 ←初期値 ←属性 ←初期値 第 8 章 PPG タイマ [ ビット 11 ∼ビット 8] TSEL23 ∼ TSEL20:ch2 トリガ入力選択ビット TSEL23 ∼ TSEL20 ch2 トリガ入力 0 0 0 0 GCN2 の EN0 ビット 0 0 0 1 GCN2 の EN1 ビット 0 0 1 0 GCN2 の EN2 ビット ( 初期値 ) 0 0 1 1 GCN2 の EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 × 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 × × 設定禁止 [ ビット 7 ∼ビット 4] TSEL13 ∼ TSEL10:ch1 トリガ入力選択ビット TSEL13 ∼ TSEL10 ch1 トリガ入力 0 0 0 0 GCN2 の EN0 ビット 0 0 0 1 GCN2 の EN1 ビット ( 初期値 ) 0 0 1 0 GCN2 の EN2 ビット 0 0 1 1 GCN2 の EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 × 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 × × 設定禁止 211 第 8 章 PPG タイマ [ ビット 3 ∼ビット 0] TSEL03 ∼ TSEL00:ch0 トリガ入力選択ビット TSEL03 ∼ TSEL00 212 ch0 トリガ入力 0 0 0 0 GCN2 の EN0 ビット ( 初期値 ) 0 0 0 1 GCN2 の EN1 ビット 0 0 1 0 GCN2 の EN2 ビット 0 0 1 1 GCN2 の EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 × 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 × × 設定禁止 第 8 章 PPG タイマ ジェネラルコントロールレジスタ 2(GCN2) 8.3.6 ジェネラルコントロールレジスタ 2(GCN2) は , ソフトウェアによって , 起動トリガ を発生させるためのレジスタです。 ■ ジェネラルコントロールレジスタ 2(GCN2) ジェネラルコントロールレジスタ 2(GCN2) のレジスタ構成は以下のとおりです。 GCN2 bit アドレス : 000097H 7 - 6 - 5 - 4 - 3 EN3 2 EN2 1 EN1 0 EN0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 ←属性 ←初期値 GCN1 で本レジスタの EN ビットを選択した場合 , レジスタの値がそのまま PWM タイ マのトリガ入力に伝わります。 コントロールステータスレジスタの EGS1, EGS0 ビットで選択したエッジをソフト ウェアで発生させることにより , 複数チャネルの PWM タイマを同時に起動することが できます。 <注意事項> 本ビットのビット 7 ∼ビット 4 には , 必ず 0 を書き込んでください。 213 第 8 章 PPG タイマ 8.4 PWM 動作 PWM 動作では , 起動トリガの検出時より連続してパルスを出力することができま す。 出力パルスの周期は , PCSR 値を変えることにより制御することができ , またデュー ティ比は , PDUT 値を変えることにより制御できます。 ■ PWM 動作 ● 再起動禁止の場合 図 8.4-1 に , トリガの再起動を禁止した場合の PWM 動作のタイミングチャートを示し ます。 図 8.4-1 PWM 動作のタイミングチャート ( トリガ再起動禁止 ) 立上りエッジ検出 トリガは無視されます 起動 トリガ m n O PWM A B T: カウントクロック周期 m: PCSR値 n: PDUT値 214 第 8 章 PPG タイマ ● 再起動許可の場合 図 8.4-2 に , トリガの再起動を許可した場合の PWM 動作のタイミングチャートを示し ます。 図 8.4-2 PWM 動作のタイミングチャート ( トリガ再起動許可 ) 立上りエッジ検出 トリガにより再起動します 起動 トリガ m n O PWM A B T: カウントクロック周期 m: PCSR値 n: PDUT値 <注意事項> PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。 215 第 8 章 PPG タイマ 8.5 ワンショット動作 ワンショット動作では , トリガにより任意の幅の単一パルスを出力することができま す。 再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。 ■ ワンショット動作 ● 再起動禁止の場合 図 8.5-1 に , トリガの再起動を禁止した場合のワンショット動作のタイミングチャート を示します。 図 8.5-1 ワンショット動作のタイミングチャート ( トリガ再起動禁止 ) 立上りエッジ検出 トリガは無視されます 起動 トリガ m n O PWM A B T: カウントクロック周期 m: PCSR値 n: PDUT値 216 第 8 章 PPG タイマ ● 再起動許可の場合 図 8.5-2 に , トリガの再起動を許可した場合のワンショット動作のタイミングチャート を示します。 図 8.5-2 ワンショット動作のタイミングチャート ( トリガ再起動許可 ) 立上りエッジ検出 トリガにより再起動します 起動 トリガ m n O PWM A B T: カウントクロック周期 m: PCSR値 n: PDUT値 217 第 8 章 PPG タイマ PWM タイマの割込み要因とタイミングチャート 8.6 ここでは , 割込み要因とタイミングチャートについて示します。 ■ PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) 図 8.6-1 に , PWM タイマの割込み要因とタイミングチャートを示します。 <注意事項> 起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T(T: カウントクロッ ク周期 ) を必要とします。 図 8.6-1 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) 起動トリガ 最大2.5T ロード クロック カウント値 X 0003 0002 0001 0000 0003 PWM クロック 有効エッジ デューティ一致 カウンタボロー ■ PWM 出力オール "L" またはオール "H" の出力方法例 ● PWM 出力をオール "L" レベルにする例 図 8.6-2 に , PWM 出力をオール "L" にする出力方法例を示します。 図 8.6-2 PWM 出力をオール "L" レベルにする例 PWM デューティ値 を小さくして いく 218 ボローによる割込みでPGMS(マスクビット)に "1"を書き込みます。 また,ボローによる割込みでPGMS(マスクビット)に "0"を書き込めば,ヒゲを出力することなく PWM波形を出力できます。 第 8 章 PPG タイマ ● PWM 出力をオール "H" レベルにする例 図 8.6-3 に , PWM 出力をオール "H" にする出力方法例を示します。 図 8.6-3 PWM 出力をオール "H" レベルにする例 PWM デューティ値 を大きくして いく コンペア一致による割込みでデューティ設定 レジスタに,周期設定レジスタ値と同じ値を 書き込みます。 219 第 8 章 PPG タイマ 8.7 ジェネラルコントロールレジスタを使った複数チャネ ルの起動 GCN1 レジスタで起動トリガを選択することにより , 複数チャネルを同時に起動するこ とができます。ここでは , GCN2 レジスタを使ったソフトウェア起動の例を示します。 ■ ジェネラルコントロールレジスタを使った複数チャネルの起動 ● 設定手順 1)PCSR に周期を設定します。 2)PDUT にデューティを設定します。 必ず PCSR → PDUT の順で書込みを行ってください。 3)GCN1 で , 起動するチャネルのトリガ入力要因を決めます。 ここでは , GCN2 を使うので , 初期設定のままとします。 (ch0 → EN0, ch1 → EN1, ch2 → EN2, ch3 → EN3) 4)起動するチャネルのコントロールステータスレジスタを設定します。 - CNTE:1 → タイマ動作を許可 - STGR:0 → GCN2 で起動するので , ここでは起動しない - MDSE:0 → PWM 動作 - RTRG:0 → 再起動禁止とする - CSK1, CSK0:00 → カウントクロック = φ - PGMS:0 → 出力マスクしない ( ビット 8:0 → 未使用ビット , 何を設定しても構い ません ) - EGS1, EGS0:01 → 立上りエッジ起動 - IREN:1 → 割込み要求許可 - IRQF:0 → 割込み要因をクリア - IRS1, IRS0:01 → カウンタボロー発生で割込み要求発生 - POEN:1 → PWM 出力許可 - OSEL:0 → 通常極性 5)GCN2 にデータを書き込むことで , 起動トリガを発生させます。 上記の設定で ch0 と ch1 を同時に起動させる場合 , GCN2 の EN0, EN1 に "1" を書き込 みます。立上りエッジが発生し , PWM0, PWM1 からパルスが出力されます。 ● 16 ビットリロードタイマを使用して起動する場合 上記 3) の GCN1 レジスタで要因として 16 ビットリロードタイマを選択し , 5) で GCN2 の代わりに 16 ビットリロードタイマを起動します。 また , コントロールステータスレジスタの設定を以下のようにします。 • RTRG:1 → 再起動許可とする • EGS1, EGS0:11 → 両エッジ起動 16ビットリロードタイマ出力をトグル出力設定にすることにより,一定時間ごとにPPG タイマを再起動することも可能です。 220 第9章 多機能タイマ この章では , 機能タイマの概要 , ブロックダイヤグ ラム , レジスタの構成 / 機能および機能タイマの動 作について説明します。 9.1 多機能タイマの概要 9.2 多機能タイマのブロックダイヤグラム 9.3 多機能タイマのレジスタ 9.4 多機能タイマユニットの動作 221 第 9 章 多機能タイマ 9.1 多機能タイマの概要 多機能タイマユニットは , 以下のもので構成されています。 • 16 ビットフリーランタイマ 1 本 • 16 ビットアウトプットコンペア 8 本 • 16 ビットインプットキャプチャ 4 本 • 16 ビット PPG タイマ 6 チャネル 本機能を用いることにより 16 ビットフリーランタイマをベースにした波形出力が可 能であり , また , 入力パルス幅測定 , 外部クロック周期の測定が可能です。 ■ 多機能タイマの構成 ● 16 ビットフリーランタイマ ( × 1) 16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールレジスタ , 16 ビットコンペアクリアレジスタ , プリスケーラより構成されています。本カウンタの出 力値はアウトプットコンペア , インプットキャプチャの基本時間 ( ベースタイマ ) とし て使用されます。 • カウンタ動作クロックは 8 種類から選択可能です。内部クロック 8 種類 (φ, φ/2, φ/4, φ/8, φ/16, φ/32, φ/64, φ/128) φ: マシンクロック • 割込みはカウンタ値のオーバフロー , コンペアクリアレジスタとのコンペアマッチ により発生することができます ( コンペアマッチはモード設定が必要です )。 • カウンタ値は , リセット , ソフトクリア , コンペアクリアレジスタとのコンペアマッ チにより "0000H" に初期化することができます。 ● アウトプットコンペア ( × 8) アウトプットコンペアは 8 本の 16 ビットコンペアレジスタ , コンペア出力用ラッチ , コントロールレジスタより構成されています。16 ビットフリーランタイマ値とコンペ アレジスタ値が,一致したとき出力レベルを反転すると共に割込みを発生することがで きます。 • 8 本のコンペアレジスタを独立して動作が可能です。各コンペアレジスタに対応し た出力端子と割込みフラグを持っています。 • 2 本のコンペアレジスタをペアにして出力端子を制御することが可能です。コンペ アレジスタ 2 本を使用して出力レベルを反転することが可能です。 • 各出力端子の初期値を設定することが可能です。 • 割込みはコンペア一致により発生可能です。 222 第 9 章 多機能タイマ ● インプットキャプチャ ( × 4) インプットキャプチャは独立した 4 本の外部入力端子と対応したキャプチャレジスタ , コントロールレジスタにより構成されています。外部入力端子から入力された信号の 任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ に保持し , 同時に割込みを発生することができます。 • 外部入力信号の有効エッジ ( 立上りエッジ , 立下りエッジ , 両エッジ ) を選択可能。 • 4 本のインプットキャプチャは独立して動作が可能。 • 割込みは外部入力信号の有効エッジにより発生が可能。 ● 16 ビット PPG タイマ ( × 6) 「第 8 章 PPG タイマ」を参照してください。 223 第 9 章 多機能タイマ 多機能タイマのブロックダイヤグラム 9.2 図 9.2-1 に , 多機能タイマユニットのブロックダイヤグラムを記載します。 ■ 多機能タイマのブロックダイヤグラム 図 9.2-1 多機能タイマのブロックダイヤグラム φ 割込み IVF IVFE STOP MODE SCLR CLK2 CLK1 分周器 CLK0 クロック 16ビットフリーランタイマ R-bus 16ビットコンペアクリアレジスタ (ch6のコンペアレジスタ) 割込み コンペア回路 CST0 コンペアレジスタ 0/2/4/6 コンペア回路 コンペアレジスタ 1/3/5/7 T Q OC0/2/4/6 T Q OC1/3/5/7 CMOD セレ クト コンペア回路 IOP1 IOP0 IOE1 IOE0 割込み 割込み IN 0/2 エッジ検出 キャプチャデータレジスタ 0/2 EG11 EG10 EG01 エッジ検出 キャプチャデータレジスタ 1/3 ICP0 ICP1 ICE0 EG00 IN 1/3 ICE1 割込み 割込み 224 第 9 章 多機能タイマ 9.3 多機能タイマのレジスタ ここでは , 多機能タイマユニットのレジスタ一覧について説明します。 ■ 多機能タイマのレジスタ 多機能タイマのレジスタ一覧については ,「付録 A I/O マップ」を参照してください。 225 第 9 章 多機能タイマ 9.3.1 16 ビットフリーランタイマのレジスタ 16 ビットフリーランタイマのレジスタには , 次の 3 つのレジスタがあります。 • データレジスタ (TCDT) • コンペアクリアレジスタ • タイマコントロールステータスレジスタ (TCCS) ■ データレジスタ (TCDT) データレジスタ (TCDT) のレジスタ構成は以下のとおりです。 タイマデータレジスタ ( 上位 ) リード / ライト→ 初期値→ 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) 00008CH タイマデータレジスタ ( 下位 ) リード / ライト→ 初期値→ データレジスタ (TCDT) は , 16 ビットフリーランタイマのカウント値を読み出すこと のできるレジスタです。カウンタ値は , リセット時に "0000H" にクリアされます。この レジスタに書き込むことでタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行っ てください。このレジスタは , ワードアクセスしてください。 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • コントロールステータスレジスタのクリア (SCLR) による初期化 • コンペアクリアレジスタ (ch6 のコンペアレジスタ ) 値とタイマカウンタ値の一致に よる初期化 ( モード設定が必要です。) ■ コンペアクリアレジスタ コンペアクリアレジスタは , 16 ビットフリーランタイマと比較する 16 ビット長のコン ペアレジスタです。アウトプットコンペアの ch6 のコンペアレジスタが使用されます。 本レジスタ値と 16 ビットフリーランタイマ値が一致した場合 , 16 ビットフリーランタ イマ値を "0000H" に初期化して , コンペアクリア割込みフラグをセットします。また , 割込み動作を許可している場合は , CPU に対して割込み要求を行います。 ■ タイマコントロールステータスレジスタ (TCCS) タイマコントロールステータスレジスタ (TCCS) のレジスタ構成は以下のとおりです。 タイマコントロールレジスタ ( 上位 ) リード / ライト→ 初期値→ bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ECLK R/W (0) − − (−) − − (−) − − (−) − − (−) − − (−) − − (−) − − (−) bit5 bit4 bit3 00008EH タイマコントロールレジスタ ( 下位 ) リード / ライト→ 初期値→ 226 bit7 bit6 IVF R/W (0) IVFE R/W (0) STOP MODE SCLR R/W R/W R/W (0) (0) (0) bit2 bit1 bit0 CLK2 R/W (0) CLK1 R/W (0) CLK0 R/W (0) 第 9 章 多機能タイマ [ ビット 15] ECLK 本ビットには , 必ず "0" を書き込んでください。 0 内部クロックソースを選択 ( 初期値 ) 1 設定禁止 [ ビット 14 ∼ビット 8] 未使用ビットです。 [ ビット 7] IVF 16 ビットフリーランタイマの割込み要求フラグです。16 ビットフリーランタイマ がオーバフローを起こしたときに本ビットは "1" にセットされます。割込み要求許 可ビット ( ビット 6:IVFE) がセットされていると割込みが発生します。本ビットは "0" の書込みによりクリアされます。"1" の書込みは意味を持ちません。リードモ ディファイライト系命令では , 常に "1" が読み出せます。 0 割込み要求なし ( 初期値 ) 1 割込み要求あり [ ビット 6] IVFE 16 ビットフリーランタイマの割込み許可ビットです。本ビットが "1" のとき , 割込 みフラグ ( ビット 7:IVF) が "1" にセットされると割込みが発生します。 0 割込み禁止 ( 初期値 ) 1 割込み許可 [ ビット 5] STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。"1" の書込み 時にタイマのカウント停止 , "0" の書込み時にタイマのカウントを開始します。 0 カウント許可 ( 動作 )( 初期値 ) 1 カウント禁止 ( 停止 ) <注意事項> 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 [ ビット 4] MODE 16 ビットフリーランタイマの初期化条件を設定します。"0" の場合は , リセットと クリアビット ( ビット 3:SCLR) でカウンタ値を初期化可能です。"1" の場合は , リ セットとクリアビット ( ビット 3:SCLR) のほかにアウトプットコンペアのコンペア レジスタ 6 の値との一致によりカウンタ値を初期化することができます。 227 第 9 章 多機能タイマ 0 リセット , クリアビットによる初期化 ( 初期値 ) 1 リセット , クリアビット , コンペアレジスタ 6 による初期化 <注意事項> カウンタ値の初期化はカウント値の変化点で行われます。 [ ビット 3] SCLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。 "1" の書込み時にカウンタを "0000H" に初期化します。"0" を書き込んでも意味を持 ちません。リード値は , 常に "0" です。カウンタ値の初期化は , カウント値の変化点 で行われます。 SCLR フラグの意味 0 意味を持ちません ( 初期値 )。 1 カウンタ値を "0000H" に初期化します。 <注意事項> タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。 [ ビット 2, ビット 1, ビット 0] CLK2, CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択するビットです。本ビットに 書込み後すぐにクロックは変更されますのでアウトプットコンペア , インプット キャプチャが停止状態のときに変更してください。 φ=16MHz φ=8MHz φ=4MHz φ=1MHz CLK2 CLK1 CLK0 0 0 0 φ 62.5ns 125ns 0.25 µs 1 µs 0 0 1 φ/2 125ns 0.25 µs 0.5 µs 2 µs 0 1 0 φ/4 0.25 µs 0.5 µs 1 µs 4 µs 0 1 1 φ/8 0.5 µs 1 µs 2 µs 8 µs 1 0 0 φ/16 1 µs 2 µs 4 µs 16 µs 1 0 1 φ/32 2 µs 4 µs 8 µs 32 µs 1 1 0 φ/64 4 µs 8 µs 16 µs 64 µs 1 1 1 φ/128 8 µs 16 µs 32 µs 128 µs φ= マシンクロック 228 カウントクロック 第 9 章 多機能タイマ アウトプットコンペアのレジスタ 9.3.2 アウトプットコンペアのレジスタには , 次の 2 つのレジスタがあります。 • コンペアレジスタ (OCCP0 ∼ OCCP7) • アウトプットコントロールレジスタ (OCS0 ∼ OCS7) ■ コンペアレジスタ (OCCP0 ∼ OCCP7) コンペアレジスタ (OCCP0 ∼ OCCP7) のレジスタ構成は以下のとおりです。 000076H 000074H 00007AH 000078H 00007EH 00007CH 000082H 000080H リード/ライト→ 初期値→ bit14 bit15 コンペアレジスタ上位 リード/ライト→ 初期値→ bit12 bit11 bit10 bit9 bit8 OP15 OP14 OP13 OP12 OP11 OP10 OP09 OP08 R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) bit7 コンペアレジスタ下位 bit13 bit6 bit5 bit4 bit3 bit2 bit1 bit0 OP07 OP06 OP05 OP04 OP03 OP02 OP01 OP00 R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) R/W (X) コンペアレジスタ (OCCP0 ∼ OCCP7) は , 16 ビットフリーランタイマと比較する 16 ビッ ト長のコンペアレジスタです。本レジスタ値は , 初期値不定ですので設定してから起動 を許可してください。本レジスタはワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致した場合,コンペア信号が発生してアウトプットコン ペア割込みフラグをセットします。また , 出力許可している場合は , コンペアレジスタ に対応した出力レベルを反転します。 <注意事項> コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペア 動作禁止の状態で行い , コンペア一致と書込みが同時に発生しないようにしてください。 ■ アウトプットコントロールレジスタ (OCS0 ∼ OCS7) アウトプットコントロールレジスタ(OCS0∼OCS7)のレジスタ構成は以下のとおりです。 bit15 アウトプットコントロールレジスタ上位 000086H 000084H 00008AH 000088H リード/ライト→ 初期値→ リード/ライト→ 初期値→ bit13 bit12 bit11 bit10 bit9 - - - CMOD OTE1 OTE0 OTD1 OTD0 R/W (X) R/W (X) R/W (X) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit7 アウトプットコントロールレジスタ下位 bit14 bit6 bit5 bit4 bit3 bit2 bit1 IOP1 IOP0 IOE1 IOE0 - - CST1 CST0 R/W (0) R/W (0) R/W (0) R/W (0) R/W (X) R/W (X) R/W (0) R/W (0) bit8 bit0 ここでは , ch0, ch1 について説明しますので , ch2, ch3, ch4, ch5, ch6, ch7 はそれぞれ ch0 → ch2, ch4, ch6, ch1 → ch3, ch5, ch7 と読み換えてください。 229 第 9 章 多機能タイマ [ ビット 12] CMOD 端子出力を許可した場合 (OTE1=0 or OTE0=1) のコンペア一致における端子出力レ ベル反転動作モードを切り換えます。 • CMOD=0 のとき ( 初期値 ) はコンペアレジスタに対応した端子の出力レベルを反 転します。 - OC0: コンペアレジスタ 0 の一致によりレベルを反転します。 - OC1: コンペアレジスタ 1 の一致によりレベルを反転します。 • CMOD=1 のときのコンペアレジスタ 0 は , CMOD=0 と同じく出力レベルを反転 しますが , コンペアレジスタ 1 に対応した端子 (OC1) の出力レベルは , コンペア レジスタ 0 の一致とコンペアレジスタ 1 の一致の両方で出力レベルを反転しま す。コンペアレジスタ 0 と 1 が同じ値の場合は , コンペアレジスタ 1 本のときと 同じ動作をします。 - OC0: コンペアレジスタ 0 の一致によりレベルを反転します。 - OC1: コンペアレジスタ 0 と 1 の一致によりレベルを反転します。 [ ビット 11, ビット 10] OTE1, OTE0 アウトプットコンペアの端子出力を許可するビットです。 0 汎用ポート (PE0 ∼ PE7) として動作します ( 初期値 )。 1 アウトプットコンペア端子出力になります。 OTE1: アウトプットコンペア 1 に対応 OTE0: アウトプットコンペア 0 に対応 [ ビット 9, ビット 8] ODT1, ODT0 コンペアレジスタの端子出力を許可した場合の端子出力レベルを変更する場合に 使用します。コンペア端子出力の初期値は "0" となります。書込み時はコンペア動 作を停止してから行ってください。読出し時は , アウトプットコンペア端子出力値 が読み出せます。 0 コンペア端子出力を "0" にします ( 初期値 )。 1 コンペア端子出力を "1" にします。 ODT1: アウトプットコンペア 1 に対応 ODT0: アウトプットコンペア 0 に対応 [ ビット 7, ビット 6] IOP1, IOP0 アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリー ランタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (IOE1, IOE0) が許可されているときに本ビットが "1" セットされるとアウトプットコンペ ア割込みが発生します。本ビットは "0" の書込みによりクリアされ "1" の書込みで は意味を持ちません。リードモディファイライト系の命令では "1" が読めます。 230 第 9 章 多機能タイマ 0 アウトプットコンペア一致なし ( 初期値 ) 1 アウトプットコンペア一致あり IOP1: アウトプットコンペア 1 に対応 IOP0: アウトプットコンペア 0 に対応 [ ビット 5, ビット 4] IOE1, IOE0 アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割 込みフラグ (IOP1, IOP0) が "1" にセットされるとアウトプットコンペア割込みが発 生します。 0 アウトプットコンペア割込み禁止 ( 初期値 ) 1 アウトプットコンペア割込み許可 IOE1: アウトプットコンペア 1 に対応 IOE0: アウトプットコンペア 0 に対応 [ ビット 3, ビット 2] 未使用ビットです。 [ ビット 1, ビット 0] CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許 可する前に必ずコンペアレジスタ値およびアウトプットデータレジスタ値を設定 してください。 0 コンペア動作禁止 ( 初期値 ) 1 コンペア動作許可 CST1: アウトプットコンペア 1 に対応 CST0: アウトプットコンペア 0 に対応 <注意事項> • コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペ アをディセーブルの状態で行い,コンペア一致と書込みが同時に発生しないようにして ください。 • アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビッ トフリーランタイマを停止させるとコンペア動作も停止します。 231 第 9 章 多機能タイマ 9.3.3 インプットキャプチャのレジスタ インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。 • インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) • インプットキャプチャコントロールレジスタ (ICS01, ICS23) ■ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) のレジスタ構成は以下のとお りです。 bit15 インプットキャプチャデータレジスタ上位 リード/ライト→ 初期値→ 00006AH 000068H 00006EH 00006CH リード/ライト→ 初期値→ bit13 bit12 bit11 bit10 bit9 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) bit7 インプットキャプチャデータレジスタ下位 bit14 bit6 bit5 bit4 bit3 bit2 bit1 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) bit8 bit0 インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) は , 対応した外部端子入力波形 の有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。 ワードアクセスしてください。書込みはできません。 ■ インプットキャプチャコントロールレジスタ (ICS01, ICS23) インプットキャプチャコントロールレジスタ (ICS01, ICS23) のレジスタ構成は以下の とおりです。 キャプチャコントロールレジスタ (ICS23) リード / ライト→ 初期値→ 000073H 000071H キャプチャコントロールレジスタ (ICS01) リード / ライト→ 初期値→ 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) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 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) [ ビット 7, ビット 6] ICP3, ICP2, ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると 本ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセッ トされていると有効エッジを検出することにより割込みを発生することができま す。本ビットは , "0" の書込みによりクリアされます。"1" の書込みは意味を持ちま せん。リードモディファイライト系の命令では "1" が読み出せます。 0 有効エッジ検出なし ( 初期値 ) 1 有効エッジ検出あり ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。 232 第 9 章 多機能タイマ [ ビット 5, ビット 4] ICE3, ICE2, ICE1, ICE0 インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発 生します。 0 割込み禁止 ( 初期値 ) 1 割込み許可 ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。 [ ビット 3 ∼ビット 0] EG31/EG30, EG21/EG20, EG11/EG10, EG01/EG00 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可 も兼用しています。 EG31 EG30 0 0 エッジ検出なし ( 停止状態 )( 初期値 ) 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑ & ↓ エッジ検出極性 EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。 233 第 9 章 多機能タイマ 9.4 多機能タイマユニットの動作 ここでは , 多機能タイマユニットの動作について説明します。 ■ 多機能タイマの動作説明 ● 16 ビットフリーランタイマ 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを 開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプッ トキャプチャの基準時間となります。 ● 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフリー ランタイマ値との値を比較して一致すると , 割込みフラグをセットするとともに , 出力 レベルを反転することができます。 ● 16 ビットインプットキャプチャ 16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することができ ます。 234 第 9 章 多機能タイマ 9.4.1 16 ビットフリーランタイマ部 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作説明 カウンタ値は , 次の条件でクリアされます。 • オーバフローが発生したとき。 • コンペアクリアレジスタ ( アウトプットコンペア ch6 のコンペアレジスタ ) 値とコ ンペアマッチしたとき ( モード設定が必要 )。 • 動作中に TCCS レジスタの SCLR ビットに "1" を書き込んだとき。 • タイマ停止中に TCDT レジスタに "0000H" を書き込んだとき。 割込みは , オーバフローが発生したとき , コンペアクリアレジスタ値とコンペアマッチ してカウンタがクリアされたとき発生することができます ( コンペアマッチ割込みは , モード設定が必要です )。 図 9.4-1 にオーバフローによるカウンタクリア , 図 9.4-2 にコンペアクリアレジスタ値 とコンペアマッチしたときのカウンタクリアを示します。 図 9.4-1 オーバフローによるカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み 235 第 9 章 多機能タイマ 図 9.4-2 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア カウンタ値 FFFFH 一致 一致 BFFFH 7FFFH 3FFFH 時間 0000H リセット コンペアレジスタ BFFFH 割込み ■ 16 ビットフリーランタイマのクリアタイミング カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行 われます。リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われ ますが,コンペアクリアレジスタとの一致によるカウンタクリアはカウントタイミング に同期して行われます。 図 9.4-3 に , フリーランタイマのクリアタイミングを示します。 図 9.4-3 フリーランタイマのクリアタイミング φ N コンペアクリアレジスタ値 コンペアマッチ N カウンタ値 0000 ■ 16 ビットフリーランタイマのカウントタイミング 16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により カウントアップされます。外部クロック選択時は,立上りエッジ↑でカウントされます。 図 9.4-4 に , 16 ビットフリーランタイマのカウントタイミングを示します。 図 9.4-4 16 ビットフリーランタイマのカウントタイミング φ 外部クロック入力 カウントクロック カウンタ値 236 N N+1 第 9 章 多機能タイマ 9.4.2 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアでは , 設定されたコンペアレジスタ値と 16 ビットフ リーランタイマ値との値を比較して一致したら割込みフラグをセットするとともに , 出力レベルを反転することができます。 ■ 16 ビットアウトプットコンペアの動作説明 ● CMOD=0 1 チャネル独立でコンペア動作を行うことができます (CMOD=0 の場合 )。 図 9.4-5 に , コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期は "0") を 示します。 図 9.4-5 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0 コンペアレジスタ1 BFFFH 7FFFH アウトプットコンペア0 アウトプットコンペア1 コンペア0割込み コンペア1割込み ● CMOD=1 のとき 1 2組のコンペアレジスタを使い出力レベルを変えることができます(CMOD=1のとき1)。 図 9.4-6 に , コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0") を示します。 図 9.4-6 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0") カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ0 コンペアレジスタ1 BFFFH 7FFFH アウトプットコンペア0 アウトプットコンペア1 コンペア0割込み コンペア1割込み 237 第 9 章 多機能タイマ ■ 16 ビットアウトプットコンペアのタイミング 2組のコンペアレジスタを使い出力レベルを変えることができます(CMOD=1のとき1)。 アウトプットコンペアは,フリーランタイマと設定したコンペアレジスタの値が一致し たときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生するこ とができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイミ ングに同期して行われます。 図 9.4-7 に , 16 ビットアウトプットコンペアのタイミングを示します。 図 9.4-7 16 ビットアウトプットコンペアのタイミング φ N カウンタ値 コンペアクリアレジスタ値 N + 1 N コンペアマッチ 割込み カウンタ値 コンペアクリアレジスタ値 N N + 1 N N + 1 N コンペアマッチ 端子出力 <注意事項> コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペア をディセーブルの状態で行い , コンペア一致と書込みが同時に発生しないようにしてくだ さい。 238 第 9 章 多機能タイマ 16 ビットインプットキャプチャ 9.4.3 16 ビットインプットキャプチャでは , 設定された有効エッジを検出すると , 16 ビッ トフリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生すること ができます。 ■ 16 ビットインプットキャプチャの動作 図 9.4-8 に , 16 ビットインプットキャプチャの取込みタイミング例を示します。 図 9.4-8 16 ビットインプットキャプチャの取込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット IN0 IN1 IN例 3FFFH 不定 データレジスタ0 BFFFH 不定 データレジスタ1 BFFFH 不定 データレジスタ例 7FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ例割込み キャプチャ0=立上りエッジ キャプチャ0=立下りエッジ キャプチャ例=両エッジ(例として) 再度有効エッジにより割込み発生 ソフトウェアにより割込みクリア ■ 16 ビットインプットキャプチャの入力タイミング 図 9.4-9 に , 16 ビットインプットキャプチャの入力タイミングを示します。 図 9.4-9 16 ビットインプットキャプチャの入力タイミング φ カウンタ値 N N+1 インプットキャプチャ入力 有効エッジ キャプチャ信号 キャプチャレジスタ値 N+1 割込み 239 第 9 章 多機能タイマ 240 第 10 章 外部割込み制御部 この章では , 外部割込み制御の概要 , レジスタの構 成 / 機能および外部割込み制御の動作について説明 します。 10.1 外部割込み制御部の概要 10.2 外部割込み制御部のレジスタ 10.3 外部割込み制御部の動作 10.4 外部割込み要求レベル 241 第 10 章 外部割込み制御部 10.1 外部割込み制御部の概要 外部割込み制御部は , INT0 ∼ INT15 に入力される外部割込み要求の制御を行うブ ロックです。検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下り エッジ " から選択できます。 ■ 外部割込み制御部のブロックダイヤグラム 図 10.1-1 に , 外部割込み制御部のブロックダイヤグラムを示します。 図 10.1-1 外部割込み制御部のブロックダイヤグラム R-bus 16 割込み 要求 16 割込み許可レジスタ ゲート 要 因 F/F 16 割込み要因レジスタ 32 要求レベル設定レジスタ 242 エッジ検出回路 16 INT0~ INT15 第 10 章 外部割込み制御部 外部割込み制御部のレジスタ 10.2 図 10.2-1 に , 外部割込み制御部のレジスタ一覧を示します。 ■ 外部割込み制御部のレジスタ一覧 図 10.2-1 外部割込み制御部のレジスタ一覧 bit bit bit bit bit bit bit bit 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 7 6 5 4 3 2 1 0 EN15 EN14 EN13 EN12 EN11 EN10 EN9 EN8 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 15 14 13 12 11 10 9 8 ER15 ER14 ER13 ER12 ER11 ER10 ER9 ER8 15 14 13 12 11 10 9 8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 15 14 13 12 11 10 9 8 LB15 LA15 LB14 LA14 LB13 LA13 LB12 LA12 7 6 5 4 3 2 1 0 LB11 LA11 LB10 LA10 LB9 LA9 LB8 LA8 外部割込み許可レジスタ (ENIR0) 外部割込み許可レジスタ (ENIR1) 外部割込み要因レジスタ (EIRR0) 外部割込み要因レジスタ (EIRR1) 外部割込み要求レベル 設定レジスタ (ELVR0) 外部割込み要求レベル 設定レジスタ (ELVR0) 外部割込み要求レベル 設定レジスタ (ELVR1) 外部割込み要求レベル 設定レジスタ (ELVR1) 243 第 10 章 外部割込み制御部 10.2.1 割込み許可レジスタ (ENIR0, ENIR1) 割込み許可レジスタ (ENIR0, ENIR1) は , 外部割込み要求出力のマスク制御を行いま す。 ■ 割込み許可レジスタ (ENIR0, ENIR1:ENable Interrupt request Register n) 割込み許可レジスタ (ENIR0, ENIR1) のレジスタ構成は以下のとおりです。 ENIR0 アドレス:0000C9H ENIR1 7 6 5 4 3 2 1 0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 7 6 5 4 3 2 1 初期値 00000000B アクセス R/W 00000000B R/W 0 アドレス:0000CBH EN15 EN14 EN13 EN12 EN11 EN10 EN9 EN8 このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の 許可を EN0 が制御 ), 割込みコントローラに対して要求が出力されます。"0" が書かれ たビットの対応する端子は割込み要因は保持しますが,割込みコントローラに対しては 要求を発生しません。 244 第 10 章 外部割込み制御部 10.2.2 外部割込み要因レジスタ (EIRR0, EIRR1) 外部割込み要因レジスタ (EIRR0, EIRR1) は , 読出し時には対応する外部割込み要求 があることを示し , 書込み時にはこの要求を示すフリップフロップ内容をクリアする レジスタです。 ■ 外部割込み要因レジスタ (EIRR0, EIRR1:External Interrupt Request Register n) 外部割込み要因レジスタ (EIRR0, EIRR1) のレジスタ構成は以下のとおりです。 EIRR0 アドレス:0000C8H EIRR1 15 14 13 12 11 10 9 8 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 15 14 13 12 11 10 9 初期値 00000000B アクセス R/W 00000000B R/W 8 アドレス:0000CAH ER15 ER14 ER13 ER12 ER11 ER10 ER9 ER8 このレジスタの読出し時が "1" のとき , このビットに対応する端子に外部割込み要求が あることを示します。また , このレジスタに "0" を書き込むと , 対応するビットの要求 フリップフロップがクリアされます。"1" の書込みは無効です。 リードモディファイライトのリード時には "1" が読み出されます。 245 第 10 章 外部割込み制御部 10.2.3 外部割込み要求レベル設定レジスタ (ELVR0,ELVR1) 外部割込み要求レベル設定レジスタ (ELVR0,ELVR1) は , 要求検出の選択を行うレジ スタです。 ■ 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1:External LeVel Register) 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1) のレジスタ構成は以下のとおり です。 ELVR0 15 14 13 12 11 10 9 8 アドレス:0000CCH LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 7 6 5 4 3 2 1 0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 15 14 13 12 11 10 9 8 ELVR1 アドレス:0000CEH LB15 LA15 LB14 LA14 LB13 LA13 LB12 LA12 7 6 5 4 3 LB11 LA11 LB10 LA10 LB9 2 1 0 LA9 LB8 LA8 初期値 00000000B アクセス R/W 初期値 00000000B アクセス R/W 初期値 00000000B アクセス R/W 初期値 00000000B アクセス R/W INT0 ∼ INT15 に 2 ビットずつが割り当てられていて , 以下のような設定になります。 要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな らば該当するビットは再びセットされます。 表 10.2-1 に , 外部割込み要求レベル設定を示します。 表 10.2-1 外部割込み要求レベル設定表 246 LB15 ∼ LB0 LA15 ∼ LA0 動作 0 0 "L" レベルで要求あり 0 1 "H" レベルで要求あり 1 0 立上りエッジで要求あり 1 1 立下りエッジで要求あり 第 10 章 外部割込み制御部 10.3 外部割込み制御部の動作 要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された 要求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を 発生します。 ■ 外部割込みの動作 割込みコントローラ内で同時発生した割込みの優先順位を識別した結果,本リソースか らの割込みが最も優先順位が高かったときに , 該当する割込みが発生します。 図 10.3-1 に , 外部割込みの動作を示します。 図 10.3-1 外部割込みの動作 外部割込み 割込みコントローラ CPU リソース要 求 ELVR CMP EIRR ENIR 割込み レベル ICR Y Y ICR X X CMP ILM 要因 ■ ストップからの復帰 エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。 ■ 外部割込みの動作手順 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1)外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2)許可レジスタの対象となるビットを禁止状態にする。 3)要求レベル設定レジスタの対象となるビットを設定する。 4)要因レジスタの対象となるビットをクリアする。 5)許可レジスタの対象となるビットを許可状態にする。 ただし , 4) と 5) は , 16 ビットデータによる同時書込みが可能です。 本モジュール内のレジスタを設定する場合には,必ず許可レジスタを禁止状態に設定し ておかなくてはなりません。また , 許可レジスタを許可状態にする前に必ず要因レジス タをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に 誤って割込み要因が起こってしまうことを避けるためです。 247 第 10 章 外部割込み制御部 10.4 外部割込み要求レベル 要求レベルがエッジ要求の場合 , エッジがあったことを検出するためには , パルス幅 は最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。 要求入力レベルがレベル設定の場合 , 外部より要求が入力され , その後取り下げられ ても内部に要因保持回路が存在するため , 割込みコントローラへの要求はアクティブ のままです。 割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があ ります。 ■ 外部割込み要求レベル 図 10.4-1 に , レベル設定時の要因保持回路のクリア , 図 10.4-2 に割込み許可時の割込み 要因と割込みコントローラへの割込み要求を示します。 図 10.4-1 レベル設定時の要因保持回路のクリア 割込み入力 レベル検出 要 因 F/F (要因保持回路) 許可ゲート 割込み コントローラへ クリアしない限り要因を保持し続ける 図 10.4-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 割込み入力 "H"レ ベ ル 割込みコントローラ への割込み要求 要 因 F/Fの ク リ ア に よ っ て インアクティブとなる 248 第 11 章 遅延割込みモジュール この章では , 遅延割込みモジュールの概要 , レジス タの構成 / 機能および遅延割込みモジュールの動作 について説明します。 11.1 遅延割込みモジュールの概要 11.2 遅延割込み制御レジスタ (DICR) 11.3 遅延割込みモジュールの動作 249 第 11 章 遅延割込みモジュール 11.1 遅延割込みモジュールの概要 遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで す。 本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取消しを行うことができます。 ■ 遅延割込みモジュールのブロックダイヤグラム 遅延割込み発生部のブロックダイヤグラムについては「12.2 , 割込みコントローラのブ ロックダイヤグラム」を参照してください。 ■ 遅延割込みモジュールのレジスタ一覧 図 11.1-1 に , 遅延割込みモジュールのレジスタ一覧を示します。 図 11.1-1 遅延割込みモジュールのレジスタ一覧 アドレス 000430H 250 7 6 5 4 3 2 1 0 − − − − − − − DLYI R/W ←ビット No. DICR 第 11 章 遅延割込みモジュール 11.2 遅延割込み制御レジスタ (DICR) 遅延割込み制御レジスタ (DICR) は , 遅延割込みを制御するレジスタです。 ■ 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) 遅延割込み制御レジスタ (DICR) のレジスタ構成は以下のとおりです。 7 000430H 6 − − 5 − 4 − 3 − 2 − 1 0 − DLYI R/W ←ビット No. -------0B ( 初期値 ) [ ビット 0] DLYI 本ビットにより , 該当する割込み要因の発生および解除を制御します。 DLYI 説明 0 遅延割込み要因の解除・要求なし ( 初期値 ) 1 遅延割込み要因の発生 251 第 11 章 遅延割込みモジュール 11.3 遅延割込みモジュールの動作 遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用すること により , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことができ ます。 ■ 割込み番号 遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。 本品種では , 遅延割込みを , 割込み番号 63(3FH) に割り当てています。 ■ DICR の DLYI ビット このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き 込むことで , 遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。 252 第 12 章 割込みコントローラ この章では , 割込みコントローラの概要 , ブロック ダイヤグラム , レジスタの構成 / 機能および割込み コントローラの動作について説明します。 12.1 割込みコントローラの概要 12.2 割込みコントローラのブロックダイヤグラム 12.3 割込み制御のレジスタ 12.4 優先順位判定 12.5 スタンバイモード ( ストップ / スリープ ) からの復帰 12.6 ホールドリクエスト取下げ要求 12.7 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 253 第 12 章 割込みコントローラ 12.1 割込みコントローラの概要 割込みコントローラは , 割込み受付 / 調停を処理するモジュールです。 ■ 割込みコントローラのハードウェア構成 本モジュールは , 以下のものにより構成されます。 • 割込み制御レジスタ (ICR レジスタ:ICR00 ∼ ICR47) • 割込み優先度判定回路 • 割込みレベル , 割込み番号 ( ベクタ ) 発生部 • ホールドリクエスト取下げ要求発生部 ■ 割込みコントローラの主要機能 本モジュールには , 主に以下のような機能があります。 • 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み番号伝達 (CPU へ ) • 割込み発生によるストップモードからの復帰指示 • バスマスタへのホールドリクエスト取下げ要求発生 254 第 12 章 割込みコントローラ 12.2 割込みコントローラのブロックダイヤグラム 図 12.2-1 に , 割込みコントローラのブロックダイヤグラムを示します。 ■ 割込みコントローラのブロックダイヤグラム 図 12.2-1 割込みコントローラのブロックダイヤグラム INTO *2 IM 優先度判定 OR NMI NMI処 理 5 / 5 /4 LEVEL, LEVEL判 定 ICR00 リソース 割込み00 VECTOR VECTOR 判定 6 / 発生 ホールド リクエスト 取下げ 要求 LEVEL4~ LEVEL0 *3 HLDCAN 6 VCT5~ VCT0 ICR47 リソース 割込み47 (DLYIRQ) *1 DLYI R-bus *1: DLYI は , 遅延割込み部を意味します ( 詳細は ,「第 11 章 遅延割込みモジュール」を参照し てください )。 *2: INTO は , スリープ , ストップ時のクロック制御部に対するウェイクアップ信号です。 *3: HLDCAN は , CPU 以外のバスマスタに対するバス明け渡し要求信号です。 ( 注意事項 ) 本品種には , NMI 機能はありません。 255 第 12 章 割込みコントローラ 12.3 割込み制御のレジスタ 図 12.3-1 に , 割込み制御のレジスタ一覧を示します。 ■ 割込み制御のレジスタ一覧 図 12.3-1 割込み制御のレジスタ一覧 アドレス 7 6 5 4 3 2 1 0 ←ビット No. 00000400H − − − − ICR3 ICR2 ICR1 ICR0 ICR00 00000401H − − − − ICR3 ICR2 ICR1 ICR0 ICR01 00000402H − − − − ICR3 ICR2 ICR1 ICR0 ICR02 00000403H − − − − ICR3 ICR2 ICR1 ICR0 ICR03 00000404H − − − − ICR3 ICR2 ICR1 ICR0 ICR04 00000405H − − − − ICR3 ICR2 ICR1 ICR0 ICR05 00000406H − − − − ICR3 ICR2 ICR1 ICR0 ICR06 ICR2 ICR1 ICR0 ICR07 00000407H − − − − ICR3 00000408H − − − − ICR3 ICR2 ICR1 ICR0 ICR08 00000409H − − − − ICR3 ICR2 ICR1 ICR0 ICR09 0000040AH − − − − ICR3 ICR2 ICR1 ICR0 ICR10 0000040BH − − − − ICR3 ICR2 ICR1 ICR0 ICR11 0000040CH − − − − ICR3 ICR2 ICR1 ICR0 ICR12 0000040DH − − − − ICR3 ICR2 ICR1 ICR0 ICR13 0000040EH − − − − ICR3 ICR2 ICR1 ICR0 ICR14 ICR2 ICR1 ICR0 ICR15 0000040FH − − − − ICR3 00000410H − − − − ICR3 ICR2 ICR1 ICR0 ICR16 00000411H − − − − ICR3 ICR2 ICR1 ICR0 ICR17 00000412H − − − − ICR3 ICR2 ICR1 ICR0 ICR18 00000413H − − − − ICR3 ICR2 ICR1 ICR0 ICR19 00000414H − − − − ICR3 ICR2 ICR1 ICR0 ICR20 00000415H − − − − ICR3 ICR2 ICR1 ICR0 ICR21 00000416H − − − − ICR3 ICR2 ICR1 ICR0 ICR22 ICR2 ICR1 ICR0 ICR23 00000417H − − − − ICR3 00000418H − − − − ICR3 ICR2 ICR1 ICR0 ICR24 00000419H − − − − ICR3 ICR2 ICR1 ICR0 ICR25 0000041AH − − − − ICR3 ICR2 ICR1 ICR0 ICR26 0000041BH − − − − ICR3 ICR2 ICR1 ICR0 ICR27 0000041CH − − − − ICR3 ICR2 ICR1 ICR0 ICR28 0000041DH − − − − ICR3 ICR2 ICR1 ICR0 ICR29 0000041EH − − − − ICR3 ICR2 ICR1 ICR0 ICR30 − ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W ICR31 0000041FH − − − ( 続く ) 256 第 12 章 割込みコントローラ ( 続き ) アドレス 7 6 5 4 3 2 1 0 ←ビット No. 00000420H − − − − ICR3 ICR2 ICR1 ICR0 ICR32 00000421H − − − − ICR3 ICR2 ICR1 ICR0 ICR33 ICR2 ICR1 ICR0 ICR34 00000422H − − − − ICR3 00000423H − − − − ICR3 ICR2 ICR1 ICR0 ICR35 00000424H − − − − ICR3 ICR2 ICR1 ICR0 ICR36 00000425H − − − − ICR3 ICR2 ICR1 ICR0 ICR37 00000426H − − − − ICR3 ICR2 ICR1 ICR0 ICR38 00000427H − − − − ICR3 ICR2 ICR1 ICR0 ICR39 00000428H − − − − ICR3 ICR2 ICR1 ICR0 ICR40 00000429H − − − − ICR3 ICR2 ICR1 ICR0 ICR41 ICR2 ICR1 ICR0 ICR42 0000042AH − − − − ICR3 0000042BH − − − − ICR3 ICR2 ICR1 ICR0 ICR43 0000042CH − − − − ICR3 ICR2 ICR1 ICR0 ICR44 0000042DH − − − − ICR3 ICR2 ICR1 ICR0 ICR45 0000042EH − − − − ICR3 ICR2 ICR1 ICR0 ICR46 0000042FH − − − − − − − − ICR2 R/W LVL2 R/W ICR1 R/W LVL1 R/W ICR0 R/W LVL0 R/W ICR47 00000431H ICR3 R/W LVL3 R/W HRCL 257 第 12 章 割込みコントローラ 12.3.1 割込み制御レジスタ (ICR00 ∼ ICR47) 割込み制御レジスタ (ICR00 ∼ ICR47) は , 割込み制御レジスタです。各割込み入力 に対して 1 つずつ設けられており , 対応する割込み要求の割込みレベルを設定しま す。 ■ 割込み制御レジスタ (ICR00 ∼ ICR47:Interrupt Control Register) 割込み制御レジスタ (ICR00 ∼ ICR47) のレジスタ構成は以下のとおりです。 アドレス 000400H ∼ 00042FH 7 6 5 4 3 2 1 0 − − − − ICR3 ICR2 ICR1 ICR0 R/W R/W R/W R/W ←ビット No. ----1111B ( 初期値 ) [ ビット 3 ∼ビット 0] ICR3 ∼ ICR0 割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。 本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。 リセットにより , 1111B に初期化されます。 設定可能な割込みレベル設定ビットと割込みレベルの対応を表 12.3-1 に示します。 表 12.3-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" 固定です。 258 割込みレベル システム予約 (強) (弱) 割込み禁止 第 12 章 割込みコントローラ 12.3.2 ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) は , ホールドリクエスト 取下げ要求発生のためのレベル設定レジスタです。 ■ ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL:Hold Request Cancel Level register) ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のレジスタ構成は以下の とおりです。 アドレス 000431H 7 6 5 4 3 2 1 0 − − − − LVL3 LVL2 LVL1 LVL0 R/W R/W R/W R/W ←ビット No. ----1111B ( 初期値 ) [ ビット 3 ∼ビット 0] LVL3 ∼ 0 バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定 します。 本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した 場合は , バスマスタに対してホールドリクエスト取下げ要求を出します。 259 第 12 章 割込みコントローラ 優先順位判定 12.4 本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選 択し , その要因の割込みレベルと割込み番号を CPU へ出力します。 ■ 優先順位判定 割込み要因の優先順位判定基準は , 次のとおりです。 1)NMI 2)以下の条件を満たす要因 - 割込みレベルの数値が "31" 以外 ("31" は割込み禁止 )。 - 割込みレベルの数値が最も小さい要因。 - その中で , 最も小さい割込み番号を持つ要因。 割込み要因と割込み番号 , 割込みレベルの関係を表 12.4-1 に示します。 表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 2) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォル トのアドレス 10 進 16 進 (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 外部割込み 8 ∼ 15 24 18 ICR08 39CH 000FFF9CH システム予約 25 19 ICR09 398H 000FFF98H UART0( 受信完了 ) 26 1A ICR10 394H 000FFF94H UART1( 受信完了 ) 27 1B ICR11 390H 000FFF90H UART2( 受信完了 ) 28 1C ICR12 38CH 000FFF8CH UART3( 受信完了 ) 29 1D ICR13 388H 000FFF88H システム予約 30 1E ICR14 384H 000FFF88H UART0( 送信完了 ) 31 1F ICR15 380H 000FFF80H UART1( 送信完了 ) 32 20 ICR16 37CH 000FFF7CH UART2( 送信完了 ) 33 21 ICR17 378H 000FFF78H 260 第 12 章 割込みコントローラ 表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 2) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォル トのアドレス 10 進 16 進 UART3( 送信完了 ) 34 22 ICR18 374H 000FFF74H システム予約 35 29 ICR19 370H 000FFF70H DMAC( 終了 , エラー ) 36 24 ICR20 36CH 000FFF6CH リロードタイマ 0 37 25 ICR21 368H 000FFF68H リロードタイマ 1 38 26 ICR22 364H 000FFF64H リロードタイマ 2 39 27 ICR23 360H 000FFF60H リロードタイマ 3 40 28 ICR24 35CH 000FFF5CH システム予約 41 29 ICR25 358H 000FFF58H A/D 42 2A ICR26 354H 000FFF54H PPG0 43 2B ICR27 350H 000FFF50H PPG1 44 2C ICR28 34CH 000FFF4CH PPG2 45 2D ICR29 348H 000FFF48H PPG3 46 2E ICR30 344H 000FFF44H PPG4 47 2F ICR31 340H 000FFF40H PPG5 48 30 ICR32 33CH 000FFF3CH U/D カウンタ 0 49 31 ICR33 338H 000FFF38H U/D カウンタ 1 50 32 ICR34 334H 000FFF34H ICU0( 取込み ) 51 33 ICR35 330H 000FFF30H ICU1( 取込み ) 52 34 ICR36 32CH 000FFF2CH ICU2( 取込み ) 53 35 ICR37 328H 000FFF28H ICU3( 取込み ) 54 36 ICR38 324H 000FFF24H OCU0( 一致 ) 55 37 ICR39 320H 000FFF20H OCU1( 一致 ) 56 38 ICR40 31CH 000FFF1CH OCU2( 一致 ) 57 39 ICR41 318H 000FFF18H OCU3( 一致 ) 58 3A ICR42 314H 000FFF14H OCU4/5( 一致 ) 59 3B ICR43 310H 000FFF10H OCU6/7( 一致 ) 60 3C ICR44 30CH 000FFF0CH システム予約 61 3D ICR45 308H 000FFF08H 16 ビット フリーラン タイマ 62 3E ICR46 304H 000FFF04H 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H 261 第 12 章 割込みコントローラ ■ 割込み要因の解除 割込みルーチンにおける , 割込み要因解除のための命令と RETI 命令の間には制限があ ります。 詳細は ,「第 3 章 メモリ空間 , CPU および制御部」を参照してください。 262 第 12 章 割込みコントローラ 12.5 スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。 ■ スタンバイモード ( ストップ / スリープ ) からの復帰 周辺からの割込み要求が 1 つでも発生すると , クロック制御部に対してストップモード からの復帰要求を発生します。 優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので,優先 度判定部の結果が出るまでの間 CPU は命令を実行することになります。 スリープ状態からの復帰においても , 同様に動作します。 また , スリープ時は , 本モジュール内のレジスタはアクセス可能です。 <注意事項> ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺の制 御レジスタにて割込み要求出力を禁止してください。スタンバイからの復帰要求信号は , 全割込み要因の単なる論理和出力のため , ICR レジスタに設定した割込みレベルの内容は 加味されません。 263 第 12 章 割込みコントローラ 12.6 ホールドリクエスト取下げ要求 優先度の高い割込み処理を CPU のホールド中に行いたい場合は , ホールドリクエス ト発生元においてリクエストを取り下げてもらう必要があります。この取下げ要求 発生の基準となる割込みレベルを HRCL レジスタに設定します。 ■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request) の発生基準 HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合 は , ホールドリクエスト取下げ要求を発生します。 • HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル → 取下げ要求発生 • HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル → 取下げ要求なし 取下げ要求発生原因となった割込み要因をクリアしない限り,この取下げ要求は有効で あり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割込 み要因をクリアしてください。 ■ ホールドリクエスト取下げ要求の設定可能なレベル HRCLレジスタに設定可能な値は, ICRレジスタと同様に"0000B"から"1111B"までです。 "1111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また , "0000B" に設定した場合は NMI でのみ取下げ要求を発生することになります。 ホールドリクエスト取下げ要求発生となる割込みレベルの設定を表 12.6-1 に示しま す。 表 12.6-1 ホールドリクエスト取下げ要求発生となる割込みレベルの設定 HRCL レジスタ 取下げ要求発生となる割込みレベル 16 (NMI のみ ) 17 割込みレベル 16 18 割込みレベル 16, 17 : : 31 割込みレベル 16 ∼ 30 ( 初期値 ) <注意事項> リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割込 みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値に設 定してください。 264 第 12 章 割込みコントローラ 12.7 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 DMA 転送中に CPU が優先度の高い処理を行いたいときは , DMA に対してホールド リクエストを取り下げてもらってホールド状態を解除する必要があります。ここで は , 割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作を実現します。 ■ 制御レジスタ ● HRCL( ホールドリクエスト キャンセル レベル 設定レジスタ ): 本モジュール 本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベルを設定 します。 ● ICR: 本モジュール 使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定しま す。 ● PDRR(DMA 要求抑止レジスタ ): クロック制御部 DMA からのホールドリクエストを一時的に抑止するためのレジスタです。割込み要因 のクリアにより , 再びホールド状態に戻るのを防ぐためのレジスタです。本レジスタの 値が 0000B のときのみ DMA からのホールドリクエストを CPU へ伝えます。使用方法 としては , 割込みルーチンの先頭で本レジスタの内容をインクリメントし , ルーチンの 出口でデクリメントしてください。 ■ ハードウェア構成 各信号の流れは , 図 12.7-1 のようになっています。 図 12.7-1 ホールドリクエスト取下げ要求信号の流れ 本モジュール IRQ (ICR) (HRCL) クロック制御部 HRQ DMA HRCR DHRQ (PDRR) CPU HACK DHRQ : DMA ホールドリクエスト HRQ : ホールドリクエスト HACK : ホールドアクノリッジ IRQ : 割込み要求 HRCR : ホールドリクエスト取下げ要求 265 第 12 章 割込みコントローラ ■ ホールドリクエスト取下げ要求シーケンス ● 割込みルーチンの例 図 12.7-2 に , 割込みレベル HRCL > a の場合のホールドリクエスト取下げ要求シーケ ンスのタイミング例を示します。 図 12.7-2 ホールドリクエスト取下げ要求シーケンスのタイミング例 ( 割込みレベル HRCL > a) RUN バスホールド CPU 割込み処理 バスホールド(DMA転送) (3)(4) (1)(2) DHRQ HRQ HACK IRQ a LEVEL HRCR 0000 PDRR 0001 0000 (1) PDRR インクリメント (2) 割込み要因クリア (3) PDRR デクリメント (4) RETI 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して HRCR をアクティブにします。これによって DMA は ホールドリクエストを取り下げ , CPU はホールド状態から復帰して割込み処理を行い ます。割込みルーチンでは , PDRR をインクリメントし割込み要因をクリアします。こ れにより割込みレベルは変化し , HRCR がインアクティブになり DMA は再びホールド リクエストを出すようになります。しかし , PDRR が 0 ではないので , このホールドリ クエストは遮断されています。PDRR をデクリメントすることで , 初めてホールドリク エストが CPU に伝わり再び DMA 転送が行われるようになります。 266 第 12 章 割込みコントローラ ● 多重割込みルーチンの例 多重割込みの場合を , 図 12.7-3 に示します。 図 12.7-3 ホールドリクエスト取下げ要求シーケンスのタイミング例 (HRCL > a > b) RUN バスホールド 割込みI (1) CPU 割込み処理I 割込み処理II (7)(8) (5)(6) (2) バスホールド (3)(4) DHRQ HRQ HACK IRQ1 IRQ2 a b a LEVEL HRCR 0000 PDRR 0001 0002 0001 0000 (1),(5) PDRR インクリメント (2),(6) 割込み要因クリア (3),(7) PDRR デクリメント (4),(8) RETI 上記例では,割込みルーチンを実行中にそれより優先度の高い割込みが発生した場合を 示しています。ここでも , 各割込みルーチンの先頭で PDRR をインクリメントし , ルー チンの出口でデクリメントすることによって,不用意にホールドリクエストが出るのを 防ぐことができます。 <注意事項> • PDRR のインクリメント / デクリメントは , DMA 転送中 (CPU ホールド中 ) に処理さ せたい割込みルーチンの先頭と出口で必ず行うようにしてください。これを行わない と , 割込みルーチンの途中で再び DMA 転送が行われてしまいます。 • 逆に , PDRR のインクリメント / デクリメントを通常の割込みルーチンでは行わないで ください。割込みルーチン実行中に DMA 転送が行えず , パフォーマンスを落とすこと になります。 • HRCL レジスタと ICR レジスタに設定する割込みレベルの関係には , 十分注意してく ださい。 267 第 12 章 割込みコントローラ 268 第 13 章 8/10 ビット A/D コンバータ この章では , 8/10 ビット A/D コンバータの概要 , ブロックダイヤグラム , 端子 , レジスタの構成 / 機 能および 8/10 ビット A/D コンバータの動作につい て説明します。 13.1 8/10 ビット A/D コンバータの概要 13.2 8/10 ビット A/D コンバータのブロックダイヤグラム 13.3 8/10 ビット A/D コンバータの端子 13.4 8/10 ビット A/D コンバータのレジスタ 13.5 割込み 13.6 8/10 ビット A/D コンバータの動作 13.7 A/D 変換データ保護機能 13.8 8/10 ビット A/D コンバータの使用上の注意 269 第 13 章 8/10 ビット A/D コンバータ 13.1 8/10 ビット A/D コンバータの概要 8/10 ビット A/D コンバータは , アナログ入力端子に入力されたアナログ電圧 ( 入力 電圧 ) をデジタル値に A/D 変換する機能をもつモジュールです。 ■ 8/10 ビット A/D コンバータの特長 8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10 ビッ トもしくは 8 ビットのデジタル値に変換する機能があります。入力信号は , 8 チャネル のアナログ入力端子から選択し , 変換起動は , ソフトウェア , 内部クロック , 外部端子 トリガの 3 種類から選択できます。 8/10 ビット A/D コンバータの特長を以下に示します。 • 変換時間は , 最小 5.0 µs( マシンクロック 33MHz 時 , サンプリング時間含む ) です。 • 変換方式は , サンプルホールド回路付 RC 逐次変換比較方式です。 • 10 ビットまたは 8 ビットの分解能が選択できます。 • アナログ入力端子は 8 チャネルからプログラムで選択可能です。 • A/D 変換終了時に割込み要求を発生できます。 • 割込み許可の状態では変換データ保護機能が働くため , 連続変換してもデータの欠 落がありません。 • 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 2( 立上りエッジ ), 外部 端子トリガ ( 立下りエッジ ) から選択できます。 ■ 8/10 ビット A/D コンバータの変換モード 変換モードは , 表 13.1-1 に示す 3 種類があります。 表 13.1-1 8/10 ビット A/D コンバータの変換モード 変換モード シングル変換動作 単発変換モード 指定したチャネル (1 チャネルのみ ) を 1 回変換して終了 連続した複数のチャネル ( 最大 8 チャネ ルまで指定可能 ) を 1 回変換して終了 連続変換モード 指定したチャネル (1 チャネルのみ ) を繰り返し変換 連続した複数のチャネル ( 最大 8 チャネ ルまで指定可能 ) を繰り返し変換 停止変換モード 指定したチャネル (1 チャネルのみ ) を 1 回変換したら一時停止し , 次の 起動がかかるまで待機 連続した複数のチャネル ( 最大 8 チャネ ルまで指定可能 ) を変換 ただし , 1 チャネル変換ごとに一時停止し , 次の起動がかかるまで待機 270 スキャン変換動作 第 13 章 8/10 ビット A/D コンバータ 13.2 8/10 ビット A/D コンバータのブロックダイヤグラム 図 13.2-1 に , 8/10 ビット A/D コンバータのブロックダイヤグラムを示します。 ■ 8/10 ビット A/D コンバータのブロックダイヤグラム 図 13.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム AVSS AVRH AVRL AVSS MPX D/Aコンバータ 入力回路 逐次比較レジスタ 比較器 R-bus AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 サンプル& ホールド回路 デコーダ データレジスタ ADCR A/D制御レジスタ1 A/D制御レジスタ2 16ビットリロードタイマ2 外部端子トリガ φ ADCS1,2 動作クロック プリスケーラ 各ブロックの機能を以下に示します。 ● A/D 制御ステータスレジスタ (ADCS1, ADCS2) ソフトウェアによる起動 , 起動トリガの選択 , 変換モードの選択 , A/D 変換チャネルの 選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換中の 表示をします。 ● A/D データレジスタ (ADCR) A/D 変換結果を格納するレジスタであり , A/D 変換の分解能を選択する機能もありま す。 ● クロックセレクタ A/D 変換起動クロックを選択するセレクタです。起動クロックには , 16 ビットリロー ドタイマ ch2 出力または外部端子トリガが選択できます。 271 第 13 章 8/10 ビット A/D コンバータ ● デコーダ A/D 制御ステータスレジスタ (ADCS1) の ANE0 ∼ ANE2, ANS0 ∼ ANS2 ビットの設定 から , 使用するアナログ入力端子を選択する回路です。 ● アナログチャネルセレクタ 8 本のアナログ入力端子の中から使用する端子を選択する回路です。 ● サンプルホールド回路 アナログチャネルセレクタで選択された入力電圧を保持する回路です。A/D 変換を起 動した直後の入力電圧をサンプルホールドすることで , A/D 変換中 ( 比較中 ) の入力電 圧の変動の影響を受けずに変換できます。 ● D/A コンバータ サンプルホールドされた入力電圧と比較するための , 基準電圧を発生します。 ● コンパレータ サンプルホールドされた入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定 します。 ● コントロール回路 コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了すると , 変 換結果を A/D データレジスタ (ADCR) に格納し , 割込み要求を発生します。 272 第 13 章 8/10 ビット A/D コンバータ 13.3 8/10 ビット A/D コンバータの端子 8/10 ビット A/D コンバータの端子および端子のブロックダイヤグラムを示します。 ■ 8/10 ビット A/D コンバータの端子 A/D コンバータの端子は , 汎用ポートと兼用になっています。表 13.3-1 に端子の機能 , 入出力形式 , 8/10 ビット A/D コンバータ使用時の設定などを示します。 表 13.3-1 8/10 ビット A/D コンバータの端子 機能 端子名 ch0 PK0/AN0 ch1 PK1/AN1 ch2 PK2/AN2 ch3 PK3/AN3 ch4 PK4/AN4 ch5 PK5/AN5 ch6 PK6/AN6 ch7 PK7/AN7 端子機能 入出力形式 プルアップ スタンバイ 端子の使用に必要な I/O ポートの設定 設定 制御 CMOS 出力 / ポート K CMOS ヒス 入出力 / テリシス入 なし アナログ入力 力またはア ナログ入力 なし ポート K を入力設定 (DDRK: ビット 0 ∼ ビット 7=0) アナログ入力に設定 (AICK: ビット 0 ∼ ビット 7=1) 273 第 13 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム 図 13.3-1 に , 8/10 ビット A/D コンバータの端子のブロックダイヤグラムを示します。 図 13.3-1 PK0/AN0 ∼ PK7/AN7 端子のブロックダイヤグラム AICR PDR(ポートデータレジスタ) アナログ入力 内部バスデータ PDR リード 出力ラッチ PDR ライト 端子 DDR(ポート方向レジスタ) 方向ラッチ DDRライト DDRリード スタンバイ制御 <注意事項> • 入力ポートとして使用する端子は , 対応する DDRK レジスタのビットを "0" に設定し , かつ外部端子にプルアップ抵抗を付加してください。 また AICR レジスタの対応するビットを "0" に設定してください。 • アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設 定してください。このときの PDRK レジスタの読出し値は "0" になります。 274 第 13 章 8/10 ビット A/D コンバータ 13.4 8/10 ビット A/D コンバータのレジスタ 図 13.4-1 に , 8/10 ビット A/D コンバータのレジスタ一覧を示します。 ■ 8/10 ビット A/D コンバータのレジスタ一覧 図 13.4-1 8/10 ビット A/D コンバータのレジスタ一覧 15 14 13 12 11 10 9 8 7 0000EBH 0000E6H 0000E4H 6 5 4 3 2 1 0 AICR ADCS1 ADCS0 ADCR 275 第 13 章 8/10 ビット A/D コンバータ A/D 制御ステータスレジスタ 1(ADCS1) 13.4.1 A/D 制御ステータスレジスタ 1(ADCS1) は , ソフトウェアによる起動 , 起動トリガの 選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換中 の確認をするレジスタです。 ■ A/D 制御ステータスレジスタ 1(ADCS1) 図 13.4-2 に , A/D 制御ステータスレジスタ 1(ADCS1) のレジスタ構成と機能概要を示し ます。 図 13.4-2 A/D 制御ステータスレジスタ 1(ADCS1) のレジスタ構成と機能概要 0000E6H bit15 bit14 bit13 bit12 bit11 bit10 BUSY INT INTE PAUS STS1 STS0 STRT bit9 RESV bit8 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) W (0) R/W (0) RESV bit7・・・・bit0 (ADCS0) 予約ビット このビットへは必ず "0" を書き込んでください。 A/D変換起動ビット (ソフトウェア起動時のみ有効) STRT 0 A/D変換機能を起動しない 1 A/D変換機能を起動する STS1 STS0 A/D起動要因選択ビット 0 0 ソフトウェア起動 0 1 ゼロ検出起動またはソフトウェア起動 1 0 16ビットリロードタイマ起動またはソフトウェア起動 1 1 ゼロ検出起動、16ビットリロードタイマ起動 ソフトウェア起動 PAUS 一時停止フラグビット 0 A/D変換動作の一時停止は発生していない 1 A/D変換動作が一時停止中 INTE 割込み要求許可ビット 0 割込み要求出力の禁止 1 割込み要求出力の許可 割込み要求フラグビット INT リード時 0 A/D変換未終了 このビットのクリア 1 A/D変換終了 変化なし,他への影響なし 変換中ビット BUSY R/W:リード/ライト可能 W :ライトオンリ 0,1:初期値 276 ライト時 リード時 ライト時 0 A/D変換停止中 A/D変換強制停止 1 A/D変換動作中 変化なし,他への影響なし 第 13 章 8/10 ビット A/D コンバータ [ ビット 15] BUSY: 変換中ビット • A/D コンバータの動作表示ビットです。 • リード時 , このビットが "0" であれば A/D 変換停止中であることを示し , "1" であ れば A/D 変換動作中であることを示します。 • ライト時 , このビットへの "0" の書込みによって A/D 変換動作は強制的に停止さ れます。"1" の書込みでは , 変化せずほかへの影響はありません。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでく ださい。 [ ビット 14] INT: 割込み要求フラグビット • A/D 変換によって A/D データレジスタにデータがセットされれば , このビットは "1" にセットされます。 • このビットと割込み要求許可ビット (ADCS:INTE) が "1" のとき , 割込み要求を発 生します。 • 書込み時は , "0" でこのビットがクリアされ , "1" では変化せずほかへの影響はあ りません。 ( 注意事項 ) このビットの"0"書込みによるクリアは, A/D停止中に行ってください。 [ ビット 13] INTE: 割込み要求許可ビット • CPU への割込み出力の許可 / 禁止をするビットです。 • このビットと , 割込み要求フラグビット (ADCS:INT) が "1" のとき , 割込み要求を 発生します。 [ ビット 12] PAUS: 一時停止フラグビット • A/D 変換動作が一時停止したときに "1" にセットされます。 • この A/D コンバータには , A/D データレジスタが 1 つしかないため , 連続変換モー ドを使用したときに旧変換結果の CPU による読出しが完了していなければ , 新し い変換結果の書込みにより旧変換データは失われてしまいます。したがって , 連 続変換モードを使用するときは , 基本的には変換終了ごとに変換結果をメモリに 転送するように設定しておく必要があります。ただし多重割込みなどで変換デー タの転送が次の変換に間に合わない場合が想定できます。このビットはそのとき の対処として考えられた機能で , 変換終了後にデータレジスタの内容を転送する までの間 , このビットを "1" にセットし , その間は A/D 変換は停止し , 次の変換 データを格納しないようになっています。 [ ビット 11, ビット 10] STS1, STS0:A/D 起動要因選択ビット • A/D 変換の起動要因の選択を行います。 • 起動要因が兼用になっている場合には , 最初に発生した起動要因で起動します。 ( 注意事項 ) 起動要因は , 書換えと同時に変更されますので , A/D 変換動作中に書き 換える場合には,目的とする起動要因がない状態で切り換えてください。 [ ビット 9] STRT:A/D 変換起動ビット • A/D 変換動作をソフトウェア的に起動するビットです。 • このビットに "1" を書き込むと A/D 変換が起動します。 • 停止変換モード時は , このビットによる再起動はかかりません。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでく ださい。 [ ビット 8] RESV: 予約ビット ( 注意事項 ) このビットへは必ず "0" を書き込んでください。 277 第 13 章 8/10 ビット A/D コンバータ A/D 制御ステータスレジスタ 0(ADCS0) 13.4.2 A/D 制御ステータスレジスタ 0(ADCS0) は , 変換モードの選択と A/D 変換チャネル の選択をするレジスタです。 ■ A/D 制御ステータスレジスタ 0(ADCS0) 図 13.4-3 に , A/D 制御ステータスレジスタ 0(ADCS0) のレジスタ構成と機能概要を示し ます。 図 13.4-3 A/D 制御ステータスレジスタ 0(ADCS0) のレジスタ構成と機能概要 0000E7H bit15・・・・・bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 (ADCS1) MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ANE2 ANE1 ANE0 A/D変換終了チャネル選択ビット 0 0 0 AN0端子 0 0 1 AN1端子 0 1 0 AN2端子 0 1 1 AN3端子 1 0 0 AN4端子 1 0 1 AN5端子 1 1 0 AN6端子 1 1 1 AN7端子 A/D変換開始チャネル選択ビット ANS2 ANS1 ANS0 停止中 R/W:リード/ライト可能 0,1:初期値 278 変換中の 読出し 停止変換モード で一時停止中 の読出し 変換中の チャネル 番号 直前に 変換した チャネル番号 0 0 0 AN0端子 0 0 1 AN1端子 0 1 0 AN2端子 0 1 1 AN3端子 1 0 0 AN4端子 1 0 1 AN5端子 1 1 0 AN6端子 1 1 1 AN7端子 MD1 MD0 0 0 単発変換モード1(動作中の再起動可能) 0 1 単発変換モード2(動作中の再起動不可) 1 0 連続変換モード (動作中の再起動不可) 1 1 停止変換モード (動作中の再起動不可) A/D変換モード選択ビット 第 13 章 8/10 ビット A/D コンバータ [ ビット 7, ビット 6] MD1, MD0:A/D 変換モード選択ビット • A/D 変換機能時の変換モードを選択するビットです。 • MD1, MD0 の 2 ビット値によって , 単発変換モード 1, 単発変換モード 2, 連続変 換モード , 停止変換モードのいずれかが選択されます。 • それぞれのモードの意味は , 以下のとおりです。 - 単発変換モード 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 ビットで選択した起動要因の発生によります。 ( 注意事項 ) 単発 , 連続 , 停止の各変換モードの再起動不可はタイマ , 外部トリガ , ソフトすべての起動に適用されます。 [ ビット 5, ビット 4, ビット 3] ANS2, ANS1, ANS0:A/D 変換開始チャネル選択ビット • A/D変換の開始チャネルの設定および変換中チャネル番号の確認を行うビット です。 • A/D 変換を起動すると , これらのビットに書き込まれたチャネルから A/D 変換を 開始します。 • A/D 変換中は , 変換中のチャネル番号が読み出せます。停止変換モードでの一時 停止中は , 直前に変換したチャネルの番号が読み出せます。 [ ビット 2, ビット 1, ビット 0] ANE2, ANE1, ANE0:A/D 変換終了チャネル選択ビット • A/D 変換の終了チャネルの設定を行うビットです。 • A/D変換を起動するとこれらのビットに書き込まれたチャネルまでA/D変換を行 います。 • ANS2 ∼ ANS0 と同じチャネルを設定するとそのチャネルのみ変換を行います。 また,連続変換モードまたは停止変換モードを設定しているときは,これらのビッ トで設定されたチャネルまでの変換が終わると ANS2 ∼ ANS0 で設定された開始 チャネルに戻ります。設定チャネルが 開始チャネル>終了チャネルのときは , 開 始チャネルから AN7 まで変換し , さらに AN0 から終了チャネルまで変換し , 1 度 目の変換動作を終了します。 279 第 13 章 8/10 ビット A/D コンバータ <注意事項> • A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) に開始チャネルを設定したあ とに , A/D 変換モード設定ビット (MD1,MD0) および A/D 変換終了チャネル選択ビット (ANE2, ANE1, ANE0) をリードモディファイライト系命令で設定しないでください。 • ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換チャネルが読 み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネルを設定したあとに , MD1, MD0 ビットおよび ANE2, ANE1, ANE0 ビットをリードモディファイライト系命令で設 定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。 280 第 13 章 8/10 ビット A/D コンバータ 13.4.3 A/D データレジスタ (ADCR) A/D データレジスタ (ADCR) は , A/D 変換結果を格納するレジスタであり , A/D 変換 の分解能を選択する機能もあります。 ■ A/D データレジスタ (ADCR) 図 13.4-4 に , A/D データレジスタ (ADCR) のレジスタ構成と機能概要を示します。 図 13.4-4 A/D データレジスタ (ADCR) のレジスタ構成と機能概要 0000E4H bit9 bit8 D9 D8 - (X) R (X) R (X) bit5 bit4 bit3 bit2 bit1 bit0 D5 D4 D3 D2 D1 D0 R (X) R (X) R (X) R (X) R (X) R (X) bit15 bit14 bit13 bit12 bit11 bit10 S10 ST1 ST0 CT1 CT0 - W (0) W (0) W (1) W (0) W (1) bit7 bit6 D7 D6 R (X) R (X) D0~D9 A/Dデータビット 変換データ CT1 CT0 0 0 0 1 1 0 1 1 ST1 ST0 0 0 0 1 1 0 1 1 S10 R :リードオンリ W :ライトオンリ 0,1:初期値 コンペア時間設定ビット サンプリング時間設定ビット A/D変換分解能選択ビット 0 10ビット分解能モード(D9~D0) 1 8ビット分解能モード(D7~D0) 281 第 13 章 8/10 ビット A/D コンバータ [ ビット 15] S10:A/D 変換分解能選択ビット • A/D 変換の分解能を選択するビットです。 • このビットに "0" を書き込むと 10 ビット分解能が選択され , "1" を書き込むと 8 ビット分解能が選択されます。 ( 注意事項 ) 分解能によって , 使用されるデータビットが異なります。 [ ビット 14, ビット 13] ST1, ST0: サンプリング時間設定ビット • A/D 変換時のサンプリング時間を選択するビットです。 • A/D が起動されると , このビットに設定された時間 , アナログ入力が取り込まれ ます。 ( 注意事項 ) 16MHz 動作時に "00", 8MHz 用の設定を行うと正常なアナログ電圧を 取り込めない場合があります。 [ ビット 12, ビット 11] CT1, CT0: コンペア時間設定ビット • A/D 変換時のコンペア時間を選択するビットです。 • アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , このビットに設定さ れた時間後に変換結果のデータが確定し , このレジスタのビット 9 ∼ビット 0 に 格納されます。 ( 注意事項 ) 16MHz動作時に"00", 8MHz用の設定を行うと正常なアナログ変換値が 得られない場合があります。 [ ビット 10] 空きビット [ ビット 9 ∼ビット 0] D9 ∼ D0 • A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに書き換えられます。 • 通常は , 最終変換値が格納されます。 • 本レジスタの初期値は不定です。 ( 注意事項 ) 変換データ保護機能があります。 A/D 変換中に本ビットにデータを書き込まないようにしてください。 <注意事項> S10 ビットの書換えは必ず変換動作前の A/D 動作が停止の状態で行ってください。変換 後の書換えをしたときは , ADCR の内容が不定となります。 ADCR レジスタの読出しは , 10 ビットモードを指定したときには必ずワード転送命令を 使用してください。 282 第 13 章 8/10 ビット A/D コンバータ 13.5 割込み 8/10 ビット A/D コンバータは , A/D 変換で , A/D データレジスタにデータがセット されることで , 割込み要求を発生させることができます。 ■ 8/10 ビット A/D コンバータの割込み 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因を , 表 13.5-1 に示します。 表 13.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因 8/10 ビット A/D コンバータ 割込み要求フラグビット ADCS1:INT 割込み要求許可ビット ADCS1:INTE 割込み要因 A/D 変換結果の A/D データレジスタへの書込み A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR) にセットされ ると , A/D 制御ステータスレジスタ (ADCS1) の INT ビットが "1" にセットされます。 このとき , 割込み要求が許可 (ADCS1:INTE=1) されていると , 割込みコントローラに割 込み要求を出力します。 283 第 13 章 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータの動作 13.6 8/10 ビット A/D コンバータには , 単発変換モード , 連続変換モード , 停止変換モード の 3 種類のモードがあります。以下に , 各モードでの動作を説明します。 ■ 単発変換モードの動作 単発変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し ていき , ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換は停止し ます。開始チャネルと終了チャネルが同じ (ANS=ANE) ときは ANS ビットで指定した 1 チャネルだけの変換となります。単発変換モードで動作させるには , 図 13.6-1 の設定 が必要です。 図 13.6-1 単発変換モードでの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ADCS0, BUSY INT INTE PAUS STS1 STS0 ADCS1 ◇ ◇ ◇ ◇ ◇ ◇ ADCR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ ◆ STRT ◇ bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 0 ◇ ◇ − ◇ ◇ ◇ ◇ ◇ ◇ 変換データを格納 AICK ◆ ◆ ◆ ◇:使用ビット ◆:使用する端子の対応するビットに "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 →終了 284 第 13 章 8/10 ビット A/D コンバータ ■ 連続変換モードの動作 連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定 されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが 同じとき (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変 換モードで動作させるには , 図 13.6-2 に示す設定が必要です。 図 13.6-2 連続変換モードでの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ADCS0, BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 ADCS1 0 1 0 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ADCR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ ◆ − 変換データを格納 AICK ◆ ◆ ◆ ◇:使用ビット ◆:使用する端子の対応するビットに "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 →繰返し 285 第 13 章 8/10 ビット A/D コンバータ ■ 停止変換モードの動作 停止変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を 1 チャネル ごとに一時停止しながら変換していき , ANE ビットで設定された終了チャネルまで変 換が終わると ANS ビットで設定されたアナログ入力に戻り , A/D 変換と一時停止の動 作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS ビットで 指定したチャネルだけの変換を繰り返します。一時停止時の変換の再起動は , STS1, STS0 ビットで指定した起動要因を発生します。停止変換モードで動作させるには , 図 図 13.6-3 の設定が必要です。 図 13.6-3 停止変換モードでの設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ADCS0, BUSY INT INTE PAUS STS1 STS0 ADCS1 ◇ ◇ ◇ ◇ ◇ ◇ ADCR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ ◆ STRT ◇ bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 0 − 1 0 ◇ ◇ ◇ ◇ ◇ ◇ 変換データを格納 AICK ◆ ◆ ◆ ◇:使用ビット ◆:使用する端子の対応するビットに "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 →一時停止→繰返し 286 第 13 章 8/10 ビット A/D コンバータ 13.7 A/D 変換データ保護機能 割込み許可状態で A/D 変換を実行すると , 変換データ保護機能が働きます。 ■ A/D 変換データ保護機能 A/D コンバータは , 変換データ格納用のデータレジスタが 1 つしかないため , A/D 変換 をすると , 変換終了時に , データレジスタ内の格納データを書き換えます。したがって , 変換データのメモリへの転送が間に合わないと前回のデータが一部欠落することにな ります。この対策として , 割込み許可 (INTE=1) のときは , 以下のようにデータ保護機 能が働くようになっています。 変換データが A/D データレジスタ (ADCR) に格納されると A/D 制御ステータスレジス タ 1(ADCS1) の INT ビットが "1" にセットされます。この INT ビットが "1" の間 , A/D 変換は一時停止状態になります。割込みルーチン内で , A/D データレジスタ (ADCR) を メモリなどに転送した後 , INT ビットをクリアすると停止状態が解除されます。 <注意事項> • 変換データ保護機能は , 割込み許可 (ADCS1:INTE=1) 状態でしか動作しません。 • 一時停止中に再起動をかけると待機データが壊れます。 287 第 13 章 8/10 ビット A/D コンバータ 13.8 8/10 ビット A/D コンバータの使用上の注意 ここでは , 8/10 ビット A/D コンバータを使用するときの注意点を示します。 ■ 8/10 ビット A/D コンバータ使用上の注意 ● アナログ入力端子 A/D 入力端子はポート K の入出力端子と兼用になっており , ポート K 方向レジスタ (DDRK) とアナログ入力許可レジスタ (AICR) で切り換えて , 使用するようになってい ます。アナログ入力として使用する端子では , DDRR の対応するビットに "0" を書き込 んでポート設定を入力にしたうえで , AICR レジスタでアナログ入力モードに設定し , ポート側の入力ゲートを固定してください。ポート入力モードの状態では中間レベル の信号が入力されると , ゲートに入力リーク電流が流れます。 ● 内部タイマで使用するときの注意 A/D コンバータを内部タイマで起動するとき , A/D 制御ステータスレジスタ 1(ADCS1) の STS1, STS0 ビットで設定しますが , このとき内部タイマの入力値は , インアクティ ブ側 ( 内部タイマのときは "L") にしてください。アクティブ側にすると , ADCS レジス タへの書込みと同時に動作し始める場合があります。 ● A/D コンバータの電源・アナログ入力の投入順序 A/D コンバータの電源 (AVCC, AVRH, AVRL) およびアナログ入力 (AN0 ∼ AN7) への印 加は , 必ずデジタル電源 (VCC) の投入後かまたは同時に投入してください。また , 電源 切断時は , A/D コンバータの電源およびアナログ入力の切断後にデジタル電源 (VCC) を 切断するかまたは同時に切断してください。 ● A/D コンバータの電源電圧について ラッチアップ防止のため , A/D コンバータの電源 (AVCC) は , デジタル電源 (VCC) の電 圧を超えないようにしてください。 288 第 14 章 8 ビット D/A コンバータ この章では , 8 ビット D/A コンバータの概要 , ブ ロックダイヤグラム , レジスタの構成 / 機能および 8 ビット D/A コンバータの動作について説明しま す。 14.1 8 ビット D/A コンバータの概要 14.2 8 ビット D/A コンバータのブロックダイヤグラム 14.3 8 ビット D/A コンバータのレジスタ 14.4 8 ビット D/A コンバータの動作説明 289 第 14 章 8 ビット D/A コンバータ 14.1 8 ビット D/A コンバータの概要 8 ビット D/A コンバータは , 8 ビット分解能 , R-2R 方式の D/A コンバータです。 ■ 8 ビット D/A コンバータの特長 D/A コンバータ 3 チャネル内蔵しており , D/A 制御レジスタにてそれぞれ独立に出力制 御を行うことができます。 290 第 14 章 8 ビット D/A コンバータ 14.2 8 ビット D/A コンバータのブロックダイヤグラム 8 ビット D/A コンバータは , 次の 3 つのブロックで構成されています。 • 8 ビット抵抗ラダー • データレジスタ • コントロールレジスタ ■ 8 ビット D/A コンバータのブロックダイヤグラム 図 14.2-1 に , 8 ビット D/A コンバータのブロックダイヤグラムを示します。 図 14.2-1 8 ビット D/A コンバータのブロックダイヤグラム R-bus DA17~DA10 DA27~DA20 DA07~DA00 DAVC DAVC DAVC DA27 DA17 DA07 DA20 DA10 DA00 DAE2 スタンバイ制御 DAE1 スタンバイ制御 DAE0 スタンバイ制御 D/A出力 ch2 D/A出力 ch1 D/A出力 ch0 ■ 8 ビット D/A コンバータの端子 D/A コンバータの端子は専用端子となっています。 291 第 14 章 8 ビット D/A コンバータ 14.3 8 ビット D/A コンバータのレジスタ 図 14.3-1 に , 8 ビット D/A コンバータのレジスタ一覧を示します。 ■ 8 ビット D/A コンバータのレジスタ一覧 図 14.3-1 8 ビット D/A コンバータのレジスタ一覧 bit DADR0 000E3H bit DADR1 000E2H bit DADR2 000E1H bit DACR0 000DFH bit DACR1 000DEH bit DACR2 000DDH 292 7 6 5 4 3 2 1 DA07 DA06 DA05 DA04 DA03 DA02 DA01 15 14 13 12 11 10 9 DA17 DA16 DA15 DA14 DA13 DA12 DA11 23 22 21 20 19 18 17 DA27 DA26 DA25 DA24 DA23 DA22 DA21 7 6 5 4 3 2 1 − − − − − − − 15 14 13 12 11 10 9 − − − − − − − 23 22 21 20 19 18 17 − − − − − − − 0 DA00 D/A データレジスタ 0 8 DA10 D/A データレジスタ 1 16 DA20 D/A データレジスタ 2 0 DAE0 D/A コントロールレジスタ 0 8 DAE1 D/A コントロールレジスタ 1 16 DAE2 D/A コントロールレジスタ 2 第 14 章 8 ビット D/A コンバータ D/A コントロールレジスタ (DACR0, DACR1, DACR2) 14.3.1 D/A コントロールレジスタ (DACR0, DACR1, DACR2) は , D/A コンバータ出力の許 可 / 禁止を行うレジスタです。 ■ D/A コントロールレジスタ (DACR0, DACR1, DACR2) D/A コントロールレジスタ (DACR0, DACR1, DACR2) のレジスタ構成は以下のとおり です。 bit DACR0 0000DFH 7 6 5 4 3 2 1 0 − − − − − − − DAE0 初期値 -------0B 初期値 -------0B 初期値 -------0B R/W bit DACR1 0000DEH 15 14 13 12 11 10 9 8 − − − − − − − DAE1 R/W bit DACR2 0000DDH 23 22 21 20 19 18 17 16 − − − − − − − DAE2 R/W [ ビット 0] DAE2, DAE1, DAE0 • DAE2, DAE1, DAE0 は , それぞれ ch2, ch1, ch0 の出力制御を行います。 • "1" の場合 , D/A 出力の許可 , "0" の場合 , D/A 出力を禁止します。 • リセットにより , "0" に初期化されます。また , リード / ライト可能です。 • 出力禁止時 , D/A コンバータ出力端子は "0" レベル出力となります。 293 第 14 章 8 ビット D/A コンバータ D/A データレジスタ (DADR2, DADR1, DADR0) 14.3.2 D/A データレジスタ (DADR2, DADR1, DADR0) は , D/A コンバータの出力電圧設定 を行うレジスタです。 ■ D/A データレジスタ (DADR2, DADR1, DADR0) D/A データレジスタ (DADR2, DADR1, DADR0) のレジスタ構成は以下のとおりです。 bit DADR0 0000E3H bit DADR1 0000E2H bit DADR2 0000E1H 7 6 5 4 3 2 1 0 DA07 DA06 DA05 DA04 DA03 DA02 DA01 DA00 初期値 R/W R/W R/W R/W R/W R/W R/W R/W 15 14 13 12 11 10 9 8 DA17 DA16 DA15 DA14 DA13 DA12 DA11 DA10 初期値 R/W R/W R/W R/W R/W R/W R/W R/W 23 22 21 20 19 18 17 16 DA27 DA26 DA25 DA24 DA23 DA22 DA21 DA20 初期値 R/W R/W R/W R/W R/W R/W R/W R/W XXXXXXXXB XXXXXXXXB XXXXXXXXB [ ビット 23 ∼ビット 16] DA27 ∼ DA20 • D/A コンバータ ch2 の出力電圧設定を行います。 • リセットによって初期化されません。リード / ライト可能です。 [ ビット 15 ∼ビット 8] DA17 ∼ DA10 • D/A コンバータ ch1 の出力電圧設定を行います。 • リセットによって初期化されません。リード / ライト可能です。 [ ビット 7 ∼ビット 0] DA07 ∼ DA00 • D/A コンバータ ch0 の出力電圧設定を行います。 • リセットによって初期化されません。リード / ライト可能です。 294 第 14 章 8 ビット D/A コンバータ 14.4 8 ビット D/A コンバータの動作説明 D/A データレジスタ (DADR) に D/A 出力値をセットし , D/A コントロールレジスタ (DACR) の該当する D/A 出力チャネルの許可ビットを "1" にセットすることによっ て , D/A 出力が開始されます。 ■ 8 ビット D/A コンバータの動作 D/A 出力の禁止を行うと , D/A コンバータは "0" 出力状態にクリアされ , 直流電流の流 れる経路は , 遮断されます。これは , ストップモード時にも同様です。 D/A コンバータの出力には , バッファアンプを内蔵していません。また , 出力にアナロ グスイッチ ( ≒ 100Ω) を直列に挿入していますので , 外部の出力負荷には必要とされ るセットリング時間を考慮し , 十分注意してください。 D/A コンバータの出力電圧は , 0V から 255/256 × DAVC の範囲となります。DAVC 電 圧を外部で調節することによって , 出力電圧範囲を変えることが可能です。 D/A コンバータの出力電圧の論理値を表 14.4-1 に示します。 表 14.4-1 8 ビット D/A コンバータの出力電圧の論理値 DA07 ∼ DA00 DA17 ∼ DA10 DA27 ∼ DA20 の設定値 8 ビット D/A コンバータ 00H 0/256 × DAVC(=0V) 01H 1/256 × DAVC 02H 2/256 × DAVC : : FDH 253/256 × DAVC FEH 254/256 × DAVC FFH 255/256 × DAVC 295 第 14 章 8 ビット D/A コンバータ 296 第 15 章 UART この章では , UART の概要 , ブロックダイヤグラム , 端子 , レジスタの構成 / 機能および UART の動作に ついて説明します。 15.1 UART の概要 15.2 UART のブロックダイヤグラム 15.3 UART の端子 15.4 レジスタ 15.5 UART の割込み 15.6 受信割込み発生とフラグセットのタイミング 15.7 送信割込み発生とフラグセットのタイミング 15.8 ボーレート 15.9 UART の動作 15.10 UART の使用上の注意 297 第 15 章 UART 15.1 UART の概要 UART は , 外部装置と同期通信もしくは非同期通信 ( 調歩同期 ) をするための , 汎用 のシリアルデータ通信インタフェースです。通常の双方向通信機能 ( ノーマルモー ド ) だけではなく , マスタ / スレーブ型通信機能 ( マルチプロセッサモード : マスタ 側だけサポート ) があります。 ■ UART の特長 UART は , ほかの CPU や周辺装置とシリアルデータの送受信をする汎用シリアルデー タ通信インタフェースで , 表 15.1-1 に示す機能をもっています。 表 15.1-1 UART の機能 機能 データバッファ 全二重ダブルバッファ 転送モード クロック同期 ( スタート / ストップビットなし ) クロック非同期 ( 調歩周期 ) ボーレート 専用ボーレートジェネレータあり , 8 種類選択可能 外部クロック入力可能 内部クロック ( 各チャネルに対応する 16 ビットリロードタイマか ら供給される内部クロックを利用可能 ) データ長 7 ビット ( 非同期ノーマルモード時のみ ) 8 ビット 信号方式 NRZ(Non Return to Zero) 方式 受信エラー検出 フレーミングエラー オーバランエラー パリティエラー ( マルチプロセッサモード時は不可 ) 割込み要求 受信割込み ( 受信完了 , 受信エラー検出 ) 送信割込み ( 送信完了 ) マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) 1( マスタ ) 対 n( スレーブ ) 間の通信が可能 ( マスタ側だけサポート ) <注意事項> UART は , クロック同期転送時にスタートビット / ストップビットは付加されず , データ だけ転送されます。 298 第 15 章 UART 表 15.1-2 に , UART の動作モードを示します。 表 15.1-2 UART の動作モード データ長 動作モード 同期方式 パリティなし 0 ノーマルモード 1 マルチプロセッサモード 2 ノーマルモード ストップビット長 パリティあり 7 ビットまたは 8 ビット 非同期 8+1*1 ― 非同期 8 ― 同期 1 ビットまたは 2 ビット *2 なし ― : 設定不可 *1 :"+1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。 *2 : 受信時のストップビットは 1 ビットのみ検出可能です。 299 第 15 章 UART 15.2 UART のブロックダイヤグラム 図 15.2-1 に , UART のブロックダイヤグラムを示します。 ■ UART のブロックダイヤグラム 図 15.2-1 UART のブロックダイヤグラム コントロールバス 受信割込み信号 #26~29* 専用ボーレート ジェネレータ 送信割込み信号 #31~34* 送信クロック クロック セレクタ 16ビット リロードタイマ 受信クロック <SCK0~SCK3> 受信制御回路 端子 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ 受信用 シフトレジスタ 送信用 シフトレジスタ <SOT0~SOT3> 端子 <SIN0~SIN3> 端子 受信状態判定回路 SIDR0~SIDR3 受信終了 SODR0~SODR3 送信開始 受信エラー 発生信号 (CPUへ) 内部データバス SMR0~ SMR3 レジスタ MD1 MD0 CS2 CS1 CS0 SCKE SOE *:割込み番号 300 SCR0~ SCR3 レジスタ PEN P SBL CL A/D REC RXE TXE SSR0~ SSR3 レジスタ PE ORE FRE RDRF TDRE BDS RIE TIE 第 15 章 UART 各ブロックの機能を以下に示します。 ● クロックセレクタ 専用ボーレートジェネレータ , 外部入力クロック , 内部クロック (16 ビットリロードタ イマから供給されるクロック ) から送受信クロックを選択します。 ● 受信制御回路 受信制御回路は , 受信ビットカウンタ , スタートビット検出回路および受信パリティカ ウンタで構成されています。受信ビットカウンタは受信データのカウントをして , 設定 したデータ長に応じて , 1 データの受信を完了すれば , 受信割込み要求を発生します。 スタートビット検出回路は , シリアル入力信号からスタートビットを検出する回路で , スタートビットを検出すると設定された転送速度に応じてシフトしながら SIDR0 ∼ SIDR3 レジスタにデータを書き込みます。受信パリティカウンタは , 受信データのパ リティを計算します。 ● 送信制御回路 送信制御回路は , 送信ビットカウンタ , 送信スタート回路および送信パリティカウンタ で構成されています。送信ビットカウンタは送信データのカウントをして , 設定した データ長に応じて , 1 データの送信を完了すれば , 送信割込み要求を発生します。送信 スタート回路は , SODR0 ∼ SODR3 の書込みで送信動作を開始します。送信パリティ カウンタは , パリティありのとき送信するデータのパリティビットを生成します。 ● 受信用シフトレジスタ SIN 端子から入力された受信データを , 1 ビットずつビットシフトしながら取込み , 受 信終了すれば , SIDR0 ∼ SIDR3 レジスタに受信データを転送します。 ● 送信用シフトレジスタ SODR0 ∼ SODR3 に書き込まれたデータを送信用シフトレジスタに転送し , 1 ビットず つシフトしながら SOT 端子に出力します。 ● モードレジスタ 1(SMR0 ∼ SMR3) 動作モードの選択 , クロック入力ソースの選択 , 専用ボーレートジェネレータの設定 , 専用ボーレートジェネレータ使用時のクロックレート ( クロック分周値 ) の選択 , シリ アルデータの端子への出力許可 / 禁止 , クロックの端子への出力許可 / 禁止を設定しま す。 ● 制御レジスタ 1(SCR0 ∼ SCR3) パリティの有無の設定 , パリティの選択 , ストップビット長の設定 , データ長の設定 , モード 1 でのフレームデータ形式の選択 , フラグのクリア , 送信の許可 / 禁止 , 受信の 許可 / 禁止の設定をします。 ● ステータスレジスタ 1(SSR0 ∼ SSR3) 送受信やエラーの状態の確認と送受信割込み要求の許可 / 禁止の設定をします。 ● インプットデータレジスタ 1(SIDR0 ∼ SIDR3) 受信データを保持するレジスタです。シリアル入力が変換されてこのレジスタに格納 されます。 ● アウトプットデータレジスタ 1(SODR0 ∼ SODR3) 送信データを設定するレジスタです。このレジスタに書き込まれたデータが , シリアル 変換されて出力されます。 301 第 15 章 UART 15.3 UART の端子 UART の端子および端子のブロックダイヤグラムを示します。 ■ UART の端子 UART の端子は , 汎用ポートと兼用になっています。表 15.3-1 に端子の機能 , 入出力形 式および UART 使用時の設定などを示します。 表 15.3-1 UART の端子 (1 / 2) 入出力形式 プル アップ 選択 スタン バイ 制御 オープン ドレイン 制御 端子の使用に 必要な設定 端子名 端子機能 PH0/SIN0 ポート H 入出力 / シリアルデータ入力 入力ポートに設定 (DDRH: ビット 0=0) PH1/ SOT0 ポート H 入出力 / シリアルデータ出力 出力許可に設定 (SMR0:SOE=1) CMOS 出力 / CMOS あり ヒステリシス入力 あり あり クロック入力時入 力ポートに設定 (DDRH: ビット 2=0) PH2/ SCK0/ TO0 ポート H 入出力 / シリアルクロック 入出力 PH3/SIN1 ポート H 入出力 / シリアルデータ入力 入力ポートに設定 (DDRH: ビット 3=0) PH4/ SOT1 ポート H 入出力 / シリアルデータ出力 出力許可に設定 (SMR1:SOE=1) クロック出力時出 力許可に設定 (SMR0:SCKE=1) CMOS 出力 / CMOS あり ヒステリシス入力 あり あり クロック入力時入 力ポートに設定 (DDRH ビット 5=0) PH5/ SCK1/ TO1 ポート H 入出力 / シリアルクロック 入出力 PI0/SIN2 ポート I 入出力 / シリアルデータ入力 入力ポートに設定 (DDRI: ビット 0=0) PI1/SOT2 ポート I 入出力 / シリアルデータ出力 出力許可に設定 (SMR2:SOE=1) PI2/ SCK2/ TO2 302 ポート I 入出力 / シリアルクロック 入出力 クロック出力時出 力許可に設定 (SMR1:SCKE=1) CMOS 出力 / CMOS あり ヒステリシス入力 あり あり クロック入力時入 力ポートに設定 (DDRI: ビット 2=0) クロック出力時出 力許可に設定 (SMR2:SCKE=1) 第 15 章 UART 表 15.3-1 UART の端子 (2 / 2) スタン バイ 制御 オープン ドレイン 制御 端子の使用に 必要な設定 端子機能 PI3/SIN3 ポート I 入出力 / シリアルデータ入力 入力ポートに設定 (DDRI: ビット 3=0) PI4/SOT3 ポート I 入出力 / シリアルデータ出力 出力許可に設定 (SMR3:SOE=1) PI5/ SCK3/ TO3 入出力形式 プル アップ 選択 端子名 ポート I 入出力 / シリアルクロック 入出力 CMOS 出力 / CMOS ヒステリシ あり ス入力 あり あり クロック入力時入 力ポートに設定 (DDRI: ビット 5=0) クロック出力時出 力許可に設定 (SMR3:SCKE=1) ■ UART の端子のブロックダイヤグラム 図 15.3-1 に , UART の端子のブロックダイヤグラムを示します。 図 15.3-1 UART の端子のブロックダイヤグラム Data Bus リソース入力 0 1 PDR read pin 0 PDR リソース出力 1 リソース出力許可 DDR OCR PCR PDR DDR OCR PCR : : : : ポートデータレジスタ データ方向レジスタ オープンドレイン制御レジスタ プルアップ抵抗制御レジスタ 303 第 15 章 UART 15.4 レジスタ 図 15.4-1 に , UART のレジスタ一覧を示します。 ■ UART のレジスタ一覧 図 15.4-1 UART のレジスタ一覧 アドレス ch0:00001EH,00001FH ch1:000022H, 000023H ch2:000026H, 000027H ch3:00002AH, 00002BH ch0:00001CH,00001DH ch1:000020H, 000021H ch2:000024H, 000025H ch3:000028H, 000029H ch0:00004EH ch1:00004CH ch2:000052H ch3:000050H 304 bit15...............................................bit8 bit7...............................................bit0 SCR ( 制御レジスタ ) SMR ( モードレジスタ ) SSR ( ステータスレジスタ ) SIDR/SODR ( インプット / アウトプット データレジスタ ) CDCR ( 通信プリスケーラ コントロールレジスタ ) 空き 第 15 章 UART 15.4.1 制御レジスタ (SCR0 ∼ SCR3) 制御レジスタ (SCR0 ∼ SCR3) は , パリティの設定 , ストップビット長やデータ長の 選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリア , 送受信 動作の許可 / 禁止を設定するレジスタです。 ■ 制御レジスタ (SCR0 ∼ SCR3) 図 15.4-2 に , 制御レジスタ (SCR0 ∼ SCR3) のレジスタ構成と機能概要を示します。 図 15.4-2 制御レジスタ (SCR0 ∼ SCR3) のレジスタ構成と機能概要 アドレス bit15 ch0: 0000_001EH ch1: 0000_0022H ch2: 0000_0026H ch3: 0000_002AH PEN P SBL R/W R/W R/W bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7.............bit0 CL A/D REC RXE TXE (SMR) R/W R/W W R/W R/W R/W:リード / ライト可能 W:ライトオンリ TXE 初期値 00000100B 送信動作許可ビット CL データ長選択ビット 0 送信動作を禁止 0 7 ビット 1 送信動作を許可 1 8 ビット RXE 受信動作許可ビット SBL ストップビット長選択ビット 0 受信動作を禁止 0 1 ビット長 1 受信動作を許可 1 2 ビット長 REC 受信エラーフラグクリアビット 0 FRE, ORE, PE フラグをクリア 1 変化なし , 他への影響なし A/D 0 1 アドレス / データ選択ビット パリティ選択ビット P パリティありのとき (PEN=1) のみ有効 0 偶数パリティ 1 奇数パリティ PEN 送信許可ビット データフレーム 0 パリティなし アドレスフレーム 1 パリティあり 0, 1:下線付は初期値 [ ビット 15] PEN: パリティイネーブルビット シリアルデータに対して , パリティビットの付加 ( 送信時 ) および検出 ( 受信時 ) をす るどうかを選択します。 ( 注意事項 ) 動作モード 1, 2 を選択した場合は , パリティは使用できません。このビッ トは常に "0" を設定してください。 305 第 15 章 UART [ ビット 14] P: パリティ選択ビット パリティあり (PEN=1) のとき , 奇数パリティ / 偶数パリティを選択します。 [ ビット 13] SBL: ストップビット長選択ビット 非同期転送モード時の送信データのフレームエンドマークである , ストップビット のビット長を選択します。 ( 注意事項 ) 受信時は , 常にストップビットの 1 ビット目だけを検出します。 [ ビット 12] CL: データ長選択ビット 送受信データのデータ長を指定します。 ( 注意事項 ) 7 ビットを選択できるのは , 動作モード 0( 非同期 ) だけです。動作モー ド 1 ( マルチプロセッサモード ), 動作モード 2( 同期 ) では , 必ず 8 ビッ ト (CL=1) を選択してください。 [ ビット 11] A/D: アドレス / データ選択ビット • マルチプロセッサモード ( モード 1) で , 送受信するフレームのデータ形式を指定 します。 • このビットが"0"のとき通常データとなり, "1"のときアドレスデータとなります。 [ ビット 10] REC: 受信エラーフラグクリアビット • ステータスレジスタ (SSR) の FRE, ORE, PE フラグをクリアするビットです。 • このビットに "0" を書き込むと , FRE, ORE, PE フラグがクリアされ , "1" の書込み では , 変化せず他への影響はありません。 ( 注意事項 ) UART 動作中の受信割込み許可状態では , FRE, ORE, PE フラグのいず れかが "1" であるときのみ , REC ビットをクリアしてください。 [ ビット 9] RXE: 受信動作許可ビット • UART の受信動作を制御します。 • このビットが "0" のとき , 受信動作は禁止となり , "1" のとき受信動作が許可とな ります。 ( 注意事項 ) 受信中に受信動作を禁止したときには , そのフレームの受信を完了し , 受信データバッファ (SIDR0 ∼ SIDR3) に受信データを格納した時点で 受信動作を停止します。 [ ビット 8] TXE: 送信動作許可ビット • UART の送信動作を制御します。 • このビットが "0" のとき , 送信動作は禁止となり , "1" のとき送信動作が許可とな ります。 ( 注意事項 ) 送信中に送信動作を禁止したときには , 送信データバッファ (SODR0 ∼ SODR3) にデータがなくなった後で送信動作を停止します。"0" の書込み は , SODR0 ∼ SODR3 にデータを書き込んだ後は , 一定の期間を置いて 行ってください。一定の期間は , クロック非同期転送モード時は , ボー レートの 1/16 時間です。クロック同期転送モード時は , ボーレートの時 間です。 306 第 15 章 UART モードレジスタ (SMR0 ∼ SMR3) 15.4.2 モードレジスタ (SMR0 ∼ SMR3) は , 動作モードの選択 , ボーレートクロックの選 択,シリアルデータとクロックの端子への出力許可 / 禁止を設定するレジスタです。 ■ モードレジスタ (SMR0 ∼ SMR3) 図 15.4-3 に , モードレジスタ (SMR0 ∼ SMR3) のレジスタ構成と機能概要を示します。 図 15.4-3 モードレジスタ (SMR0 ∼ SMR3) のレジスタ構成と機能概要 アドレス bit15.............bit8 bit7 bit6 (SCR) MD1 MD0 CS2 R/W R/W R/W ch0: 0000_001FH ch1: 0000_0023H ch2: 0000_0027H ch3: 0000_002BH bit5 bit4 bit3 bit2 bit1 bit0 CS1 CS0 − SCKE SOE R/W R/W − R/W R/W R/W:リード / ライト可能 初期値 00000-00B SOE シリアルデータ出力許可ビット 0 汎用入出力ポートにします。 1 UART のシリアルデータ出力端子にします。 SCKE シリアルクロック出力許可ビット 0 汎用入出力ポートまたは UART のクロック入力端子にします。 1 UART のクロック出力端子にします。 CS2 ∼ CS0 クロック選択ビット "000B" ∼ "101B" 専用ボーレートジェネレータによるボーレートです。 "110B" 内部タイマ (16 ビットリロードタイマ ) によるボーレートです。 "111B" UART のクロック出力端子にします。 MD1 動作モード選択ビット MD0 動作モード 0 0 0 非同期 ( ノーマルモード ) 0 1 1 非同期 ( マルチプロセッサモード ) 1 0 2 同期 ( ノーマルモード ) 1 1 - 設定禁止 0, 1:下線付は初期値 307 第 15 章 UART [ ビット 7, ビット 6] MD1, MD0: 動作モード選択ビット これらのビットにより動作モードを選択します。 ( 注意事項 ) 動作モード 1( マルチプロセッサモード ) は , マスタスレーブ型通信の マスタとしてのみ使用できます。UART は , 受信時にアドレス / データ 判別機能がないためスレーブとしては使用できません。 [ ビット 5, ビット 4, ビット 3] CS2 ∼ CS0: クロック選択ビット • ボーレートのクロックソースを選択します。専用ボーレートジェネレータを選択 した場合には , 同時にボーレートも決定されます。 • 専用ボーレートジェネレータ選択時は非同期転送モード時 5 種類 , 同期転送モー ド時 3 種類の計 8 種類のボーレートが選択できます。 • クロック入力は , 専用ボーレートジェネレータ , 16 ビットリロードタイマ , 外部 クロック (SCK0 ∼ SCK3 端子 ) より選択できます。 [ ビット 2] 空きビットです。 [ ビット 1] SCKE: シリアルクロック出力許可ビット • シリアルクロックの入出力を制御するビットです。 • このビットが "0" のとき , SCK0 ∼ SCK3 端子は汎用入出力ポートまたはシリアル クロック入力端子となり , "1" のときシリアルクロック出力端子となります。 ( 注意事項 ) SCK0 ∼ SCK3 端子をシリアルクロック入力 (SCKE=0) として使用すると きは , 対応するポートを入力ポートに設定してください。また , クロッ ク選択ビット (SMR0 ∼ SMR3:CS2 ∼ CS0=111B) によって外部クロック を選択してください。 ( 注意事項 ) シリアルクロック出力 (SCKE=1) として使用するときは , 外部クロック 以外 (SMR0 ∼ SMR3:CS2 ∼ CS0=111B 以外 ) を選択してください。 ( 注意事項 ) シリアルクロック出力許可 (SCKE=1) は , 同期通信時のみ使用してくだ さい。 ( 参考 ) SCK0 ∼ SCK3 端子がシリアルクロック出力 (SCKE=1) のときは , 汎用入出力 ポートの状態にかかわらずシリアルクロック出力端子として機能します。 [ ビット 0] SOE: シリアルデータ出力許可ビット • シリアルデータの出力を許可 / 禁止するビットです。 • このビットが "0" のとき , SOT0 ∼ SOT3 端子は , 汎用入出力ポートとなり "1" の ときシリアルデータ出力端子 (SOT0 ∼ SOT3) となります。 ( 参考 ) シリアルデータ出力 (SOE=1) のときは , 汎用入出力ポートの状態にかかわら ず SOT0 ∼ SOT3 端子として機能します。 308 第 15 章 UART 15.4.3 ステータスレジスタ (SSR0 ∼ SSR3) ステータスレジスタ (SSR0 ∼ SSR3) は , 送受信やエラーの状態の確認 , 割込みの許 可 / 禁止を設定するレジスタです。 ■ ステータスレジスタ (SSR0 ∼ SSR3) 図 15.4-4 に,ステータスレジスタ(SSR0∼SSR3)のレジスタ構成と機能概要を示します。 図 15.4-4 ステータスレジスタ (SSR0 ∼ SSR3) のレジスタ構成と機能概要 アドレス ch0: 0000_001CH ch1: 0000_0020H ch2: 0000_0024H ch3: 0000_0028H bit15 bit14 bit13 PE R ORE R FRE R bit12 bit11 bit10 bit9 bit8 bit7.............bit0 RDRF TDRE R R BDS R/W RIE R/W TIE R/W (SIDR/SODR) R/W:リード / ライト可能 R:リードオンリ TIE 送信割込み要求許可ビット 初期値 00001000B RDRF 受信データフルフラグビット 0 送信割込み要求出力を禁止 0 受信データなし 1 送信割込み要求出力を許可 1 受信データあり RIE 受信割込み要求許可ビット FRE フレーミングエラーフラグビット 0 受信割込み要求出力を禁止 0 フレーミングエラーなし 1 受信割込み要求出力を許可 1 フレーミングエラーあり BDS 転送方向選択ビット ORE オーバランエラーフラグビット 0 LSB ファースト ( 最下位ビットから転送 ) 0 オーバランエラーなし 1 MSB ファースト ( 最下位ビットから転送 ) 1 オーバランエラーあり TDRE 送信データエンプティフラグビット PE 0 送信データあり ( 送信データの書込み禁止 ) 0 パリティエラーなし 1 送信データなし ( 送信データの書込み許可 ) 1 パリティエラーあり パリティエラーフラグビット 0, 1:下線付は初期値 [ ビット 15] PE: パリティエラーフラグビット • 受信時に , パリティエラーが発生すると "1" にセットされ , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込むとクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 • このフラグがセットされたときには,インプットデータレジスタ(SIDR0∼SIDR3) のデータは無効です。 309 第 15 章 UART [ ビット 14] ORE: オーバランエラーフラグビット • 受信時にオーバランが発生すると , "1" にセットされ , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込むと "0" にクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 • このフラグがセットされたときには,インプットデータレジスタ(SIDR0∼SIDR3) のデータは無効です。 [ ビット 13] FRE: フレーミングエラーフラグビット • 受信時にフレーミングエラーが発生すると "1" にセットされ , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込むと "0" にクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 • このフラグがセットされたときには,インプットデータレジスタ(SIDR0∼SIDR3) のデータは無効です。 [ ビット 12] RDRF: 受信データフルフラグビット • インプットデータレジスタ (SIDR0 ∼ SIDR3) の状態を示すフラグです。 • SIDR0 ∼ SIDR3 に受信データがロードされると , このビットは "1" にセットされ , SIDR0 ∼ SIDR3 を読み出すと "0" にクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 [ ビット 11] TDRE: 送信データエンプティフラグビット • アウトプットデータレジスタ (SODR0 ∼ SODR3) の状態を示すフラグです。 • SODR0 ∼ SODR3 に送信データを書き込むと , このビットは "0" にクリアされ , データが送信用シフトレジスタにロードされ送信が開始されると "1" にセットさ れます。 • このビットと TIE ビットが "1" のとき , 送信割込み要求を出力します。 ( 注意事項 ) 初期状態でこのビットは "1"(SODR0 ∼ SODR3 空 ) にセットされてい ます。 [ ビット 10] BDS: 転送方向選択ビット シリアルデータを最下位ビット側から先に転送するか (LSB ファースト , BDS=0), 最 上位ビット側から先に転送するか(MSBファースト, BDS=1)を選択するビットです。 ( 注意事項 ) シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下 位側を入れ替えるため SIDR0 ∼ SIDR3 レジスタへデータを書き込んだ 後 , このビットを書き換えると , そのデータは無効になります。 [ ビット 9] RIE: 受信割込み要求許可ビット • CPU への受信割込み要求出力の許可 / 禁止をするビットです。 • このビットと受信データフラグビット (RDRF) が "1" のとき , もしくは , このビッ トといずれか 1 つの以上のエラーフラグビット (PE, ORE, FRE) が "1" のとき , 受 信割込み要求を出力します。 [ ビット 8] TIE: 送信割込み要求許可ビット • CPU への送信割込み要求出力の許可 / 禁止をするビットです。 • このビットと TDRE ビットが "1" のとき , 送信割込み要求を出力します。 310 第 15 章 UART 15.4.4 インプットデータレジスタ (SIDR0 ∼ SIDR3), アウト プットデータレジスタ (SODR0 ∼ SODR3) インプットデータレジスタ (SIDR0 ∼ SIDR3) は , シリアルデータ受信用レジスタ で , アウトプットデータレジスタ (SODR0 ∼ SODR3) は , シリアルデータ送信用レ ジスタです。SIDR0 ∼ SIDR3 レジスタと SODR0 ∼ SODR3 レジスタは同一アドレ スに配置されています。 ■ インプットデータレジスタ (SIDR0 ∼ SIDR3) インプットデータレジスタ (SIDR0 ∼ SIDR3) のレジスタ構成は以下のとおりです。 アドレス bit15.............bit8 ch0: 0000_001DH ch1: 0000_0021H ch2: 0000_0025H ch3: 0000_0029H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 D6 D5 D4 D3 D2 D1 D0 R R R R R R R R R:リードオンリ X:不定 初期値 XXXXXXXXB 受信したデータが格納されるレジスタです。SIN0 ∼ SIN3 端子に送られてきたシリア ルデータ信号がシフトレジスタで変換されて , このレジスタに格納されます。データ長 が 7 ビットのとき , 上位 1 ビット (D7) は無効データとなります。受信データが , この レジスタに格納されれば , 受信データフルフラグビット (SSR0 ∼ SSR3:RDRF) が "1" に セットされ , このとき受信割込み要求が許可されていれば受信割込みが発生します。 SIDR0 ∼ SIDR3 は , ステータスレジスタ (SSR0 ∼ SSR3) の RDRF ビットが "1" のとき に読み出してください。RDRF ビットは SIDR0 ∼ SIDR3 を読み出すと , 自動的に "0" にクリアされます。なお , 受信エラーが発生 (SSR0 ∼ SSR3:PE, ORE, FRE のいずれか が "1") したとき , SIDR0 ∼ SIDR3 のデータは無効となります。 311 第 15 章 UART ■ アウトプットデータレジスタ (SODR0 ∼ SODR3) アウトプットデータレジスタ (SODR0 ∼ SODR3) のレジスタ構成は以下のとおりです。 アドレス bit15.............bit8 ch0: 0000_001DH ch1: 0000_0021H ch2: 0000_0025H ch3: 0000_0029H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 D6 D5 D4 D3 D2 D1 D0 W W W W W W W W W:ライトオンリ X:不定 初期値 XXXXXXXXB 送信許可状態のとき , 送信するデータをこのレジスタに書き込むと , 送信データが送信 用シフトレジスタに転送され , シリアルデータに変換されて , シリアルデータ出力端子 (SOT0 ∼ SOT3 端子 ) から送出されます。データ長が 7 ビットのとき , 上位 1 ビット (D7) は無効データとなります。 送信データがこのレジスタに書き込まれると , 送信データエンプティフラグ (SSR0 ∼ SSR3:TDRE) が "0" にクリアされ , 送信用シフトレジスタへの転送が終了すれば , "1" に セットされます。TDRE ビットが "1" のとき , 次の送信用データを書き込むことができ ます。このとき , 送信割込み要求出力が許可されていれば送信割込みが発生します。次 の送信データの書込みは , 送信割込みの発生によるか , または TDRE ビットが "1" のと きにしてください。 <注意事項> SODR0 ∼ SODR3 は書込み専用のレジスタで , SIDR0 ∼ SIDR3 は読込み専用のレジスタ です。しかし , 同一アドレスに配置されているため書込み値と読出し値は異なります。そ のため , リードモディファイライト (RMW) 動作をする命令は使用できません。 312 第 15 章 UART 15.4.5 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) は , マシンクロックの 分周を制御するレジスタです。 ■ 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) UART の動作クロックは , マシンクロックを分周することにより得られます。この通信 プリスケーラによって,マシンサイクルに対して一定のボーレートが得られように設計 されています。通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) のレジス タ構成は以下のとおりです。 アドレス ch0: 0000_004EH ch1: 0000_004CH ch2: 0000_0052H ch3: 0000_0050H bit15 MD bit14 bit13 bit12 − bit11 DIV3 bit10 DIV2 bit9 DIV1 bit8 DIV0 − − R/W − − − R/W R/W R/W R/W R/W:リード / ライト可能 初期値 0---0000B [ ビット 15] MD(Machine clock devide mode select) 通信プリスケーラの動作許可ビットです。 0: 通信プリスケーラは停止します。 1: 通信プリスケーラは動作します。 313 第 15 章 UART [ ビット 11 ∼ビット 8] DIV3 ∼ DIV0(DIVide 3 ∼ DIVide 0) 表 15.4-1 に示す値に従い , マシンクロックの分周比を決定します。 表 15.4-1 通信プリスケーラ MD DIV3 DIV2 DIV1 DIV0 div 0 − − − − 停止 1 0 0 0 0 1 1 0 0 0 1 2 1 0 0 1 0 3 1 0 0 1 1 4 1 0 1 0 0 5 1 0 1 0 1 6 1 0 1 1 0 7 1 0 1 1 1 8 1 1 0 0 0 9 1 1 0 0 1 10 1 1 0 1 0 11 1 1 0 1 1 12 1 1 1 0 0 13 1 1 1 0 1 14 1 1 1 1 0 15 1 1 1 1 1 16 <注意事項> • 分周比を変えた場合はクロックの安定時間として 2 周期分の時間を置いてから通信を 行ってください。 • 同時転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。 - CS2 ∼ CS0=000B - CS2 ∼ CS0=001B かつ DIV3 ∼ DIV0=0000B 314 第 15 章 UART UART の割込み 15.5 UART には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を発生させ ることができます。 • 受信データがインプットデータレジスタ (SIDR0 ∼ SIDR3) にセットされたとき , または受信エラーが発生したとき。 • 送信データがアウトプットデータレジスタ (SODR0 ∼ SODR3) から送信用シフト レジスタに転送されたとき。 ■ UART の割込み UART の割込み制御ビットと割込み要因を , 表 15.5-1 に示します。 表 15.5-1 UART の割込み制御ビットと割込み要因 送受信 受信 送信 割込み要求 フラグ ビット 動作モード 割込み要因 0 1 2 割込み要因 割込み要求フラグの 許可ビット クリア RDRF ○ ○ ○ 受信データをバッファ (SIDR0 ∼ SIDR3) へ ロード ORE ○ ○ ○ オーバランエラー発生 FRE ○ ○ × フレーミングエラー発生 PE ○ × × パリティエラー発生 TDRE ○ ○ ○ 送信バッファ (SODR0 ∼ SSR0 ∼ SSR3:TIE SODR3) が空 受信データの読出し SSR0 ∼ SSR3:RIE 受信エラーフラグ クリアビット (SCR0 ∼ SCR3:REC) への "0" の書込み 送信データの書込み ○ : 使用ビット × : 未使用ビット ● 受信割込み 受信モード時は , データ受信完了 (SSR0 ∼ SSR3:RDRF), オーバランエラー発生 (SSR0 ∼ SSR3:ORE), フレーミングエラー発生 (SSR0 ∼ SSR3:FRE), パリティエラー発生 (SSR0 ∼ SSR3:PE) によってステータスレジスタ中のそれぞれに対応するフラグビットが "1" に セットされます。これらのフラグビットのいずれかが "1" のとき , 受信割込みが許可 (SSR0∼SSR3:RIE=1)されていると受信割込み要求を割込みコントローラに出力します。 受信データフルフラグ (SSR0 ∼ SSR3:RDRF) は , インプットデータレジスタ (SIDR0 ∼ SIDR3) を読み出すと , 自動的に "0" にクリアされます。受信エラーフラグ (SSR0 ∼ SSR3:PE, ORE, FRE) は , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込め ば , すべて "0" にクリアされます。 315 第 15 章 UART ● 送信割込み 送信データがアウトプットデータレジスタ (SODR0 ∼ SODR3) から転送用シフトレジ スタに転送されたとき , ステータスレジスタ (SSR0 ∼ SSR3) の TDRE ビットが "1" に セットされます。このとき , 送信割込みが許可 (SSR0 ∼ SSR3:TIE=1) されていると , 送 信割込み要求を割込みコントローラに出力します。 ■ UART に関連する割込み 表 15.5-2 に , UART 関連する割込みの一覧を示します。 表 15.5-2 UART に関連する割込み 割込み制御レジスタ 割込み要因 ベクタテーブルアドレス 割込み番号 レジスタ名 アドレス オフセット TBR デフォルト のアドレス UART0 受信割込み #26(1AH) ICR10 00040AH 394H 000FFF94H UART1 受信割込み #27(1BH) ICR11 00040BH 390H 000FFF90H UART2 受信割込み #28(1CH) ICR12 00040CH 38CH 000FFF8CH UART3 受信割込み #29(1DH) ICR13 00040DH 388H 000FFF88H UART0 送信割込み #31(1FH) ICR15 00040FH 380H 000FFF80H UART1 送信割込み #32(20H) ICR16 000410H 37CH 000FFF7CH UART2 送信割込み #33(21H) ICR17 000411H 378H 000FFF78H UART3 送信割込み #34(22H) ICR18 000412H 374H 000FFF74H 316 第 15 章 UART 受信割込み発生とフラグセットのタイミング 15.6 受信時の割込みとしては , 受信完了 (SSR0 ∼ SSR3:RDRF) および受信エラーの発生 (SSR0 ∼ SSR3:PE, ORE, FRE) があります。 ■ 受信割込み発生とフラグセットのタイミング 受信時は , ストップビットの検出 ( 動作モード 0 ∼ 4 のとき ) もしくは , データの最終 ビット (D7) の検出 ( 動作モード 2 のとき ) によって , 受信データがインプットデータ レジスタ 1(SIDR0 ∼ SIDR3) に格納されます。このとき , 受信エラーが発生していれば エラーフラグ (SSR0 ∼ SSR3:PE, ORE, FRE) がセットされ , その後 , 受信データフルフ ラグ (SSR0 ∼ SSR3:RDRF) が "1" にセットされます。各モードともいずれかのエラー フラグが "1" のとき , SIDR0 ∼ SIDR3 の値は無効データです。 ● 動作モード 0( 非同期 , ノーマルモード ) ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあれば , エラーフラ グ (PE, ORE, FRE) がセットされます。 ● 動作モード 1( 非同期 , マルチプロセッサモード ) ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあれば , エラーフラ グ (ORE, FRE) がセットされます。パリティエラーの検出はできません。 ● 動作モード 2( 同期 , ノーマルモード ) 受信データの最終ビット (D7) 検出時に RDRF がセットされ , 受信エラーがあれば , エ ラーフラグ (ORE) がセットされます。パリティエラーおよびフレーミングエラーの検 出はできません。図 15.6-1 に , 受信動作とフラグセットのタイミングについて示しま す。 図 15.6-1 受信動作とフラグセットのタイミング 受信データ (動作モード0) ST D0 D1 D5 D6 D7/P SP 受信データ (動作モード1) ST D0 D1 D6 D7 A/D SP D0 D1 D4 D5 D6 D7 受信データ (動作モード2) PE,ORE,FRE* RDRF * :PEフラグはモード1では使用できません PE,FREフラグはモード2では使用できません ST:スタートビット SP:ストップビット A/D:モード2(マルチプロセッサモード)のアドレス/データ選択ビット 受信割込み発生 ● 受信割込み発生のタイミング 受信割込みが許可 (SSR0 ∼ SSR3:RIE=1) されているときに , RDRF, PE, ORE, FRE のい ずれかのフラグが "1" にセットされると , その直後に受信割込み要求が発生します。 317 第 15 章 UART 送信割込み発生とフラグセットのタイミング 15.7 送信時の割込みは , アウトプットデータレジスタ (SODR0 ∼ SODR3) に次のデータ の書込みが可能な状態になると発生します。 ■ 送信割込み発生とフラグセットのタイミング 送信データエンプティフラグビット (SSR0 ∼ SSR3:TDRE) は , アウトプットデータレジ スタ (SODR0 ∼ SODR3) に書き込まれたデータが , 送信用シフトレジスタに転送され , 次のデータ書込みが可能な状態になると "1" にセットされます。SODR0 ∼ SODR3 に送 信データを書き込むと , TDRE は "0" にクリアされます。図 15.7-1 に送信動作とフラグ セットのタイミングについて示します。 図 15.7-1 送信動作とフラグセットのタイミング [動作モード0,1] 送信割込み発生 送信割込み発生 SODR書込み TDRE SOUT出力 ST D0 D1 D2 D3 D4 D5 送信割込み発生 [動作モード2] D6 D7 SP A/D SP ST D0 D1 D2 D3 D2 D3 D4 D5 D6 D7 送信割込み発生 SODR書込み TDRE SOUT出力 ST D0~D7 SP A/D D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 :スタートビット :データビット :ストップビット :アドレス/データ選択ビット ● 送信割込み要求発生のタイミング 送信割込みが許可 (SSR0 ∼ SSR3:TIE=1) されるときに , TDRE フラグが "1" にセットさ れるとその直後に送信割込み要求が発生します。 <注意事項> 初期状態で TDRE ビットが "1" のため , 送信割込みを許可 (TIE=1) すると直ちに送信完了 割込みが発生します。TDRE ビットはリードオンリビットで , アウトプットデータレジス タ (SODR0 ∼ SODR3) に新規データを書き込むしかクリアする方法がありませんので , 送信割込み許可のタイミングに注意してください。 318 第 15 章 UART 15.8 ボーレート UART の送受信クロックは , 次のいずれかを選択できます。 • 専用ボーレートジェネレータ • 内部クロック (16 ビットリロードタイマ ) • 外部クロック (SCK 端子入力のクロック ) ■ UART ボーレート選択 ボーレートの選択回路は図 15.8-1 のようになっており , ボーレートは次の 3 種類の中 から 1 種類を選択できます。 ● 専用ボーレートジェネレータによるボーレートの選択 UARTは専用ボーレートジェネレータを内蔵しており,モードレジスタ(SMR0∼SMR3) で , 8 種類のボーレートから 1 種類を選択できます。マシンクロックの周波数とモード レジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットによって , 非同期もしくは , クロック 同期ボーレートを選択します。 ● 内部タイマによるボーレート 16 ビットリロードタイマ 0 ∼ 3 から供給される内部クロックを , そのまま ( 同期のと き ) もしくは 16 分周 ( 非同期 ) して , ボーレートとして使用します。リロード値の設定 で自由にボーレートを設定できます。 ● 外部クロックによるボーレート UART のクロック入力端子から入力されたクロックを , そのまま ( 同期のとき ) もしく は 16 分周 ( 非同期のとき ) して , ボーレートとして使用します。外部で自由にボーレー トを設定できます。 319 第 15 章 UART ■ UART ボーレート選択回路 図 15.8-1 に , UART ボーレートの選択回路を示します。 図 15.8-1 UART ボーレート選択回路 SMR0~SMR3:CS2/CS1/CS0 (クロック選択ビット) クロックセレクタ "000B"~"101B"のとき [専用ボーレートジェネレータ] 分周回路 φ (同期) 1/2,1/4,1/8分周の いずれか選択 プリスケーラ (非同期) 内部固定分周比を選択 [内部タイマ] TMCSR0~TMCSR3:CSL1,CSL0 2 "110B"のとき クロックセレクタ φ ダウン カウンタ UF 1/1(同期) 1/16(非同期) φ /2 φ /8 φ /32 16ビットリロードタイマ0~3 [ 外部クロック ] "111B"のとき SCK0~SCK3 1/1(同期) 1/16(非同期) 端子 SMR0~SMR3:MD1 (クロック同期/非同期の選択) φ:内部周辺クロック 320 ボーレート 第 15 章 UART 15.8.1 専用ボーレートジェネレータによるボーレート UART の転送クロックとして , 専用ボーレートジェネレータの出力クロックを選択 したときの設定可能なボーレートを示します。 ■ 専用ボーレートジェネレータによるボーレート 専用ボーレートジェネレータで , 転送クロックを生成するときは , マシンクロックが , マシンクロックプリスケーラで分周された後 , クロックセレクタで選択される転送ク ロック分周比で分周されます。マシンクロック分周比は , 非同期 / 同期共通ですが , 転 送クロック分周比は , 非同期と同期で , 別々に内部設定された値を選択するようになっ ています。 実際の転送レートは , 次式で与えられます。 • 非同期ボーレート = φ × ( プリスケーラ分周比 ) × ( 非同期転送クロック分周比 ) • 同期ボーレート = φ × ( プリスケーラ分周比 ) × ( 同期転送クロック分周比 ) φ: マシンクロック周波数 ● プリスケーラによる分周比 ( 非同期 / 同期共通 ) マシンクロックの分周比は , 表 15.8-1 に示すように CDCR レジスタの DIV3 ∼ DIV0 ビットで指定します。 表 15.8-1 マシンクロックプリスケーラによる分周比の選択 MD DIV3 DIV2 DIV1 DIV0 div 0 − − − − 停止 1 0 0 0 0 1 1 0 0 0 1 2 1 0 0 1 0 3 1 0 0 1 1 4 1 0 1 0 0 5 1 0 1 0 1 6 1 0 1 1 0 7 1 0 1 1 1 8 1 1 0 0 0 9 1 1 0 0 1 10 1 1 0 1 0 11 1 1 0 1 1 12 1 1 1 0 0 13 1 1 1 0 1 14 1 1 1 1 0 15 1 1 1 1 1 16 321 第 15 章 UART ● 同期転送クロック分周比 同期ボーレートの分周比は , 表 15.8-2 に示すようにモードレジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットで指定します。 表 15.8-2 同期ボーレート分周比の選択 CS2 CS1 CS0 CLK 同期時 算出式 0 0 0 禁止 禁止 0 0 1 16MHz (φ ÷ div)/2 0 1 0 8MHz (φ ÷ div)/4 0 1 1 4MHz (φ ÷ div)/8 1 0 0 2MHz (φ ÷ div)/16 1 0 1 1MHz (φ ÷ div)/32 ただし , φ はマシンサイクル , φ = 32.0MHz, div = 1 で算出しています。 <注意事項> 同時転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。 • CS2 ∼ CS0=000B • CS2 ∼ CS0=001B かつ DIV3 ∼ DIV0=0000B ● 非同期転送クロック分周比 非同期ボーレートの分周比は , 表 15.8-3 に示すようにモードレジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットで指定します。 表 15.8-3 非同期ボーレート分周比の選択 CS2 CS1 CS0 非同期 ( 調歩同期 ) 算出式 0 0 0 76.8kHz (φ ÷ div)/(8 × 13 × 2) 0 0 1 38.4kHz (φ ÷ div)/(8 × 13 × 4) 0 1 0 19.2kHz (φ ÷ div)/(8 × 13 × 8) 0 1 1 9.6kHz (φ ÷ div)/(8 × 13 × 16) 1 0 0 500kHz (φ ÷ div)/(8 × 2 × 2) 1 0 1 250kHz (φ ÷ div)/(8 × 2 × 4) ただし , φ はマシンサイクル , φ = 31.9488MHz, div = 2 で算出しています。 322 第 15 章 UART ● 内部タイマ CS2 ∼ CS0 を 110B に設定して内部タイマを選択した場合のボーレートの算出式 ( リ ロードタイマを使用した場合の例 ) は次式のようになります。 • 非同期 ( 調歩同期 ) (φ ÷ N)/(16 × 2 × (n + 1)) • CLK 同期 (φ ÷ N)/(2 × (n + 1)) N: タイマのカウントクロックソース , n: タイマのリロード値 ● 外部クロック CS2 ∼ CS0 を 111B に設定して外部クロックを選択した場合のボーレートは , 外部ク ロックの周波数を f とすると次のようになります。 • 非同期 ( 調歩同期 ) f/16 • CLK 同期 f’ ただし , f の最大はマシンクロックの 1/2 まで , f ’ の最大はマシンクロックの 1/8 までで す。 323 第 15 章 UART 15.8.2 内部タイマ (16 ビットリロードタイマ 0) によるボー レート UART の転送クロックとして , 16 ビットリロードタイマ 0 から供給される内部ク ロックを選択するときの設定とボーレートの計算式を示します。 ■ 内部タイマ (16 ビットリロードタイマ 0) によるボーレート モードレジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットに "110B" を書き込むと , 内部タ イマによるボーレートが選択されます。ボーレートは , 16 ビットリロードタイマ 0 の プリスケーラ分周比とリロード値の選択で , 自由に設定できます。図 15.8-2 に , 内部タ イマによるボーレート選択回路を示します。 図 15.8-2 内部タイマ (16 ビットリロードタイマ 0) によるボーレート選択回路 SMR0~SMR3:CS2/CS1/CS0="110B" (内部タイマ選択) クロックセレクタ 16ビットリロードタイマ0出力 (プリスケーラ分周値と リロード値によって周波数指定) 1/1(同期) 1/16(非同期) ボーレート SMR0~SMR3:MD1 (クロック同期/非同期の選択) ● ボーレート計算式 φ bps 非同期ボーレート = X(n+1) × 2 × 16 φ bps 同期ボーレート = X(n+1) × 2 φ : マシンクロック周波数 X :16 ビットリロードタイマ 0 のプリスケーラによる分周比 (21, 23, 25) n :16 ビットリロードタイマ 0 のリロード値 (0 ∼ 65,535) 324 第 15 章 UART ●リロード値の設定例 ( マシンクロック :31.9488MHz のとき ) 表 15.8-4 に , ボーレートとリロード値を示します。 表 15.8-4 ボーレートとリロード値 リロード値 ボーレート (bps) クロック非同期 ( 調歩同期 ) クロック同期 X=21 ( マシンサイクルの 2 分周 ) X=23 ( マシンサイクルの 8 分周 ) X=21 ( マシンサイクルの 2 分周 ) X=23 ( マシンサイクルの 8 分周 ) 38400 12 ― 207 51 19200 25 ― 415 103 9600 51 12 831 207 4800 103 25 1,663 415 2400 207 51 3,327 831 1200 415 103 6,655 1,663 600 831 207 13,311 3,327 300 1,663 415 26,623 6,655 X :16 ビットリロードタイマ 0 のプリスケーラによる分周比 - : 設定禁止 325 第 15 章 UART 15.8.3 外部クロックによるボーレート UART の転送クロックとして , 外部クロックを選択するときの設定とボーレートの計 算式を示します。 ■ 外部クロックによるボーレート 外部クロックによるボーレートを選択するには , 次の 3 つの設定が必要です。 • モードレジスタ (SMR0 ∼ SMR3) の SCKE ビットに "0" としてください。 • モードレジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットに "111B" に書き込んで , 外部 クロック入力によるボーレートを選択します。 • 外部クロックを入力するポートを入力設定にする。 図 15.8-3 に示すように, SCK0∼SCK3端子から入力された外部クロックをもとに,ボー レートを選択します。内部の分周比は固定されていますので , ボーレートを変更するに は外部の入力クロックの周期を変更する必要があります。 図 15.8-3 外部クロックによるボーレート選択回路 SMR0~SMR3:CS2/CS1/CS0="111B" (外部クロック選択) クロックセレクタ SCK0~SCK3 1/1(同期) 1/16(非同期) 端子 ボーレート SMR0~SMR3:MD1 (クロック同期/非同期の選択) ● ボーレート計算式 • 非同期ボーレート = f/16 • 同期ボーレート =f f: 外部クロック周波数 (f は最大 , [ 周辺系動作クロック ]/8 までです。31.9488MHz で最大 3.9936MHz) 326 第 15 章 UART 15.9 UART の動作 UART には , 通常の双方向シリアル通信機能 ( 動作モード 0, 2) のほかに , マスタス レーブ型接続の通信機能 ( 動作モード 1) があります。 ■ UART の動作 ● 動作モード UART の動作モードはモード 0 ∼ 2 の 3 種類があり , 表 15.9-1 に示すように CPU 間の 接続方式やデータ転送方式で選択することができます。 表 15.9-1 UART の動作モード データ長 動作モード 同期方式 パリティなし 0 ノーマルモード 1 マルチプロセッサ モード 2 ノーマルモード 7 ビットまたは 8 ビット *1 ストップビット長 パリティあり 非同期 1 ビットまたは 2 ビット *2 8+1 ― 非同期 8 ― 同期 なし ― : 設定不可 *1 :"+1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。 *2 : 受信時のストップビットは 1 ビットのみ検出可 <注意事項> UART の動作モード 1 は , マスタスレーブ型接続時のマスタ時だけに使用されます。 ● CPU 間接続方式 1 対 1 接続 ( ノーマルモード ) とマスタスレーブ型接続 ( マルチプロセッサモード ) の どちらかを選択できます。どちらの方式でも , データ長 , パリティ有無 , 同期方式など は , すべての CPU で統一しておく必要があり , 動作モードを次のように選択します。 • 1 対 1 接続では , 2 つの CPU で動作モード 0, 2 のいずれかの同じ方式を採用する必 要があります。非同期方式では動作モード 0 を , 同期方式では動作モード 2 を選択 してください。 • マスタ / スレーブ型接続では , 動作モード 1 を使用します。動作モード 1 を選択し , マスタとして使用してください。なお , この接続ではパリティなしを選択してくだ さい。 ● 同期方式 動作モードで , 非同期方式 ( 調歩同期 ) もしくはクロック同期方式のどちらかを選択で きます。 327 第 15 章 UART ● 信号方式 UART は , NRZ(Non Return to Zero) 形式のデータだけを扱えます。 ● 動作許可 UART は , 送信 , 受信のそれぞれに対して , TXE( 送信 ), RXE( 受信 ) の動作許可ビット があり , 送受信動作を制御することができます。動作中に , 動作禁止したときは , 次の ようになります。 • 受信中 ( 受信用シフトレジスタにデータが入力されているとき ) に受信動作を禁止 したときには , そのフレームの受信を完了し , インプットデータレジスタ (SIDR0 ∼ SIDR3) に受信データを格納したところで受信動作を停止します。 • 送信中 ( 送信用シフトレジスタからデータが出力されているとき ) に送信動作を禁 止したときは , アウトプットデータレジスタ (SODR0 ∼ SODR3) にデータがなくなっ た後に送信動作を停止します。 328 第 15 章 UART 15.9.1 非同期モード ( 動作モード 0, 1) 時の動作 UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ モード ) で使用するとき , 転送方式は非同期となります。 ■ 非同期モード ( 動作モード 0, 1) 時の動作 ● 転送データフォーマット 転送データは必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット 長の転送が LSB ファーストで行われ , ストップビット ("H" レベル ) で終了します。 • 動作モード 0 のノーマルモードでは , データ長は 7 ビットまたは 8 ビットに設定が 可能です。 • 動作モード 1 では , データは 8 ビット長固定で , パリティは付加されず , そのかわり に A/D( アドレス / データ選択ビット ) が付加されています。 図 15.9-1 に , 非同期モード時のデータフォーマットを示します。 図 15.9-1 転送データフォーマット ( 動作モード 0, 1) [動作モード0] [動作モード1] ST D0 D1 D2 D3 D4 D5 D6 * D7/P SP ST D0 D1 D2 D3 D4 D5 D6 D7 A/D SP * :D7(ビット7)・・パリティなしのとき P(パリティ)・・パリティありのとき ST :スタートビット SP :ストップビット A/D :動作モード1(マルチプロセッサモード)のアドレス/データ選択ビット ● 送信動作 送信データエンプティフラグビット (SSR0 ∼ SSR3:TDRE) が "1" のとき , アウトプット データレジスタ (SODR0 ∼ SODR3) に送信データを書き込みます。ここで , 送信動作が 許可 (SCR0 ∼ SCR3:TXE=1) されていると送信します。 送信データが送信用シフトレジスタに転送され , 送信が開始されると TDRE フラグが 再び "1" にセットされ , 次の送信データをセットできるようになります。このとき , 送信割込み要求が許可 (SSR0 ∼ SSR3:TIE=1) されていれば , 送信割込み要求を出力 して SODR0 ∼ SODR3 に送信データをセットするように要求します。TDRE フラグ は , SODR0 ∼ SODR3 に送信データを書き込むと "0" にクリアされます。 329 第 15 章 UART ● 受信動作 受信動作が許可 (SCR0 ∼ SCR3:RXE=1) されていると , 常に受信動作が行われていま す。スタートビットを検出すると , 制御レジスタ (SCR0 ∼ SCR3) で決められたデータ フォーマットに従って 1 フレームデータの受信が行われます。1 フレームの受信が終わ ると , エラーが発生したときにはエラーフラグのセットが行われた後 , 受信データフル フラグビット (SSR0 ∼ SSR3:RDRF) が "1" にセットされます。このとき受信割込み要 求が許可 (SSR0 ∼ SSR3:RIE=1) されていれば受信割込み要求を出力します。ステータ スレジスタ (SSR0 ∼ SSR3) の各フラグを調べ , 正常受信ならインプットデータレジス タ (SIDR0 ∼ SIDR3) をリードして , エラーが発生していればエラー処理をするように してください。RDRF フラグは , SIDR0 ∼ SIDR3 から受信データをリードすると "0" に クリアされます。 ● スタートビット検出方法 スタートビットを検出するには , 以下のように設定してください。 • 通信期間直前は通信線を必ず "H" ( マークレベルを付加 ) にしてください。 • 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE=H) にしてください。 • 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE=H) にしないでください。 正しいデータが受信できません。 • ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H" ( マー クレベル ) の間に受信禁止 (RXE=L) にしてください。 図 15.9-2 正常動作 通信期間 非通信期間 マークレベル スタートビット SIN (01010101B送信) RXE ST 非通信期間 スタートビット データ D1 D0 D2 D3 D4 D5 D6 D7 SP 受信クロック サンプリングクロック ●受信クロック(8パルス) マイコン側の認識 ST D0 ●受信クロックを16分周してサンプリングクロックを生成 D3 D5 D7 D1 D6 D2 D4 SP (01010101B受信) 以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ (SIN) が正しく認識されませんので注意してください。 • 通信線が "L" の期間に , 受信許可 (RXE=H) に設定した場合の動作例 図 15.9-3 異常動作 通信期間 非通信期間 マークレベル SIN スタートビット ST ST 認識 D0 (01010101B送信) 非通信期間 スタートビット データ D0 D1 D2 D3 D4 D5 D6 D7 D1 D2 D3 D4 D5 D6 D7 SP SP RXE 受信クロック サンプリングクロック マイコン側の認識 (01010101B受信) PE,ORE,FRE ●受信エラー発生 330 第 15 章 UART ● ストップビット 送信時には 1 ビットまたは 2 ビットを選択できます。ただし , 受信側では , 常に最初の 1 ビットだけを判別します。 ● エラー検出 • モード 0 では , パリティエラー, オーバランエラー, フレームエラーが検出できます。 • モード 1 では , オーバラン , フレームエラーが検出でき , パリティエラーは検出でき ません。 ● パリティ 0 パリティは , 動作モード 0( 非同期 , ノーマルモード ) のときにだけ使用できます。制御 レジスタ (SCR0 ∼ SCR3) の PEN ビットでパリティの有無を , P ビットで偶数パリティ / 奇数パリティを設定できます。動作モード 1( 非同期 , マルチプロセッサモード ) および 動作モード 2( 同期 , ノーマルモード ) では , パリティの使用はできません。パリティ有 効時の送受信データを , 図 15.9-4 に示します。 図 15.9-4 パリティ有効時の送信データ SIN0-SIN3 ST SP 1 SOT0-SOT3 1 1 0 0 0 ST 1 SOT0-SOT3 0 0 1 1 0 0 ST:スタートビット SP:ストップビット 0 1 1 データ 0 0 SP 偶数パリティの送信 (SCR0-3:P=0) SP 奇数パリティの送信 (SCR0-3:P=1) 1 ST 1 偶数パリティにて受信時 パリティエラー発生 (SCR0-3:P=0) 0 パリティ ( 注意事項 ) 動作モード 1, 2 では , パリティは使用できません。 331 第 15 章 UART 15.9.2 同期モード ( 動作モード 2) 時の動作 UART 動作モード 2( ノーマルモード ) で使用するとき , 転送方式はクロック同期と なります。 ■ 同期モード ( 動作モード 2) 時の動作 ● 転送データフォーマット 同期モードでは , 8 ビットデータを LSB ファーストで転送し , スタートビット , ストッ プビットは付加されません。図 15.9-5 に , クロック同期モード時のデータフォーマッ トを示します。 図 15.9-5 転送データフォーマット ( 動作モード 2) 送信データ書込み 送受信クロック マークレベル RXE,TXE 送受信データ 1 LSB 0 1 1 データ 0 0 1 0 MSB ● クロック供給 クロック同期方式では , 送受信ビット数に等しい数のクロックの供給が必要になりま す。 • 内部クロック ( 専用ボーレートジェネレータまたは内部タイマ ) を選択していると きは , データを送信するとデータ受信用同期クロックが自動的に生成されます。 • 外部クロックを選択しているときは送信側 UART のアウトプットデータレジスタ (SODR0 ∼ SODR3) にデータがあること (SSR0 ∼ SSR3:TDRE=0) を確かめた後 , 正 確に 1 バイト分のクロックを外部から供給する必要があります。また , 送信開始前 と終了後は , 必ずマークレベル ("H") にする必要があります。 ● エラー検出 オーバランエラーだけ検出可能で , パリティエラー, フレーミングエラーは検出できま せん。 332 第 15 章 UART ● 初期化 同期モードを使用するときの , 各制御レジスタの設定値を示します。 [ モードレジスタ (SMR0 ∼ SMR3)] • MD1,MD0 : "10B" • CS2, CS1, CS0: クロックセレクタのクロック入力を指定 • SCKE : 専用ボーレートジェネレータまたは内部タイマのとき "1", クロック出力 , 外部クロック ( クロック入力 ) のとき "0" • SOE : 送信するとき "1", 受信だけのとき "0" [ 制御レジスタ (SCR0 ∼ SCR3)] • PEN : "0" • P,SBL,A/D : これらのビットは意味を持ちません • CL : "1"(8 ビットデータ ) • REC : "0"( 初期化するため , エラーフラグクリア ) • RXE,TXE : 少なくとも , どちらか一方を "1" [ ステータスレジスタ (SSR0 ∼ SSR3)] • RIE : 割込みを使用するとき "1", 割込みを使用しないとき "0" • TIE : "0" ● 通信開始 アウトプットデータレジスタ (SODR0 ∼ SODR3) への書込みで通信を開始します。受 信する場合でも通信を開始するときは , 必ず仮のデータを SODR0 ∼ SODR3 に書き込 む必要がありますので , 注意してください。 ● 通信終了 1 フレームのデータ送受信が終了すると , ステータスレジスタ (SSR0 ∼ SSR3) の RDRF フラグが "1" にセットされます。受信時は , オーバランエラーフラグビット (SSR0 ∼ SSR3:ORE) をチェックし , 通信が正常に行われたかどうかを判断してください。 333 第 15 章 UART 15.9.3 双方向通信機能 ( ノーマルモード ) 動作モード 0, 2 で , 1 対 1 接続の通常のシリアル双方向通信をすることができます。 同期方式は , 動作モード 0 のときは非同期 , 動作モード 2 のときは同期となります。 ■ 双方向通信機能 UART をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 15.9-6 の設定が 必要です。 図 15.9-6 UART の動作モード 0 の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCR1, SMR1 モード 0 → モード 2 → SSR1, SIDR1/SODR1 モード 0 → モード 2 → PEN P SBL CL AD ◎ 0 ◎ × ◎ × ◎ 1 ◎ × PE ◎ × ORE FRE RDRF TDRE ◎ ◎ ◎ × ◎ ◎ REC RXE TXE MD1 MD0 CS2 CS1 CS0 ◎ 0 ◎ ◎ ◎ ◎ − RIE TIE ◎ ◎ ◎ ◎ ◎ ◎ ◎ 1 ◎ 0 ◎ ◎ ◎ ◎ ◎ ◎ ×:未定義ビット 1:"1" を設定 0:"0" を設定 ● CPU 間接続 図 15.9-7 に示すように , 2 つの CPU を相互に接続します。 図 15.9-7 UART の双方向通信の接続例 SOT1 SOT1 SIN1 SCK1 CPU-1 334 SCKE SOE ◎ ◎ 送信データを設定 ( ライト時 ) / 受信データを保持 ( リード時 ) ◎:使用ビット SIN1 出力 − 入力 SCK1 CPU-2 ◎ ◎ 第 15 章 UART ● 通信手順 通信は , 任意なタイミングで , 送信データが準備できたときに送信側から開始します。 受信側で送信データを受け取ると定期的に , ANS( 本例では 1 バイトごと ) を返します。 図 15.9-8 に , 双方向通信フローの一例を示します。 図 15.9-8 双方向通信フローの例 (送信側) (受信側) スタート スタート 動作モード設定 ("0","2"いずれか) 動作モード設定 (送信側に合わせる) データ送信 SODRに1バイトデータを セットして通信 受信データあり NO YES 受信データ読出しと処理 受信データあり NO YES 受信データ読出しと処理 データ送信 (ANS) 1バイトデータ送信 335 第 15 章 UART 15.9.4 マスタ / スレーブ型通信機能 ( マルチプロセッサモー ド) UART は , 複数 CPU のマスタ / スレーブ型接続による通信が可能であり , 動作モー ド 1 を使用します。ただし , UART は , マスタとしてだけ使用可能です。 ■ マスタ / スレーブ型通信機能 UART をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 15.9-9 の 設定が必要です。 図 15.9-9 UART の動作モード 1 の設定 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCR1, SMR1 SSR1, SIDR1/SODR1 PEN P SBL CL AD 0 × ◎ 1 ◎ PE × REC RXE TXE MD1 MD0 CS2 CS1 CS0 ORE FRE RDRF TDRE ◎ ◎ ◎ 0 ◎ ◎ − RIE TIE ◎ ◎ ◎ 0 1 ◎ ◎ ◎ − SCKE SOE 0 ◎ 送信データを設定 ( ライト時 ) / 受信データを保持 ( リード時 ) ◎:使用ビット ×:未定義ビット 1:"1" を設定 0:"0" を設定 ● CPU 間接続 図 15.9-10 に示すように , 2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレー ブ CPU を接続して , 通信システムを構成します。UART は , マスタ CPU としてだけ使 用可能です。 図 15.9-10 UART のマスタスレーブ型通信の接続例 SOT1 SIN1 マスタ CPU SOT SIN スレーブ CPU #0 SOT SIN スレーブ CPU #1 ● 機能選択 マスタ / スレーブ型通信では , 表 15.9-2 に示すように , 動作モードとデータ転送方式を 選択してください。 336 第 15 章 UART 表 15.9-2 マスタ / スレーブ型通信機能の選択 動作モード マスタ CPU スレーブ CPU アドレス 送受信 モード 1 データ 送受信 ― データ A/D="1" + 8 ビットアドレス A/D="0" + 8 ビットデータ パリティ 同期方式 ストップ ビット なし 非同期 1 ビットまたは 2 ビットデータ ● 通信手順 通信はマスタ CPU がアドレスデータを送信することで始まります。アドレスデータと は , A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択します。各ス レーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレスと一致 するとき , マスタ CPU との通信 ( 通常データ ) をします。 図 15.9-11 に , マスタ / スレーブ型通信 ( マルチプロセッサモード ) のフローチャート を示します。 図 15.9-11 マスタ / スレーブ型通信フローチャート (マスタCPU) START 動作モードを"1"とする SIN端子をシリアルデータ 入力に設定 D0~D7にスレーブ CPUを選択する1バイト データ(アドレスデータ)を セットして送信 (A/D=1) A/Dに "0" をセット 受信動作許可 スレーブCPUと通信 通信終了? NO YES 他の スレーブCPUと 通信 NO YES 受信動作許可 END 337 第 15 章 UART 15.10 UART の使用上の注意 UART を使用するときの注意点を示します。 ■ UART 使用上の注意 ● 動作許可 UART には , 送信 , 受信のそれぞれに対して制御レジスタ (SCR0 ∼ SCR3) に TXE ( 送 信 ), RXE ( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では , 送受信と も動作禁止であるため , 転送前に動作を許可する必要があります。また , 必要に応じて 動作禁止にして , 転送を中止することもできます。 ● 通信モードの設定 通信モードの設定は , 停止中に行ってください。送受信中にモード設定をすると , その ときに送受信されたデータは保証されません。 ● 同期モード UART のクロック同期モード ( 動作モード 2) は , クロック制御 (I/O 拡張シリアル ) 方 式を採用しており , スタートビット , ストップビットは , データに付加されません。 ● 送信割込み許可のタイミング 送信データエンプティフラグビット (SSR0 ∼ SSR3:TDRE) はデフォルト ( 初期値 ) が "1" ( 送信データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR0 ∼ SSR3:TIE=1) すると直ちに , 送信割込み要求が発生します。必ず , 送信データを準備し てから , TIE フラグを "1" にしてください。 338 第 16 章 DMA コントローラ (DMAC) この章では , DMA コントローラの概要 , ブロック ダイヤグラム , レジスタの構成 / 機能および DMA コントローラの動作について説明します。 16.1 DMA コントローラの概要 16.2 DMA コントローラのブロックダイヤグラム 16.3 DMA コントローラのレジスタ 16.4 DMA コントローラの転送モード 16.5 転送受付信号出力と転送終了信号出力 16.6 DMA コントローラに関する注意事項 16.7 DMA コントローラのタイミング図 339 第 16 章 DMA コントローラ (DMAC) 16.1 DMA コントローラの概要 DMA コントローラは , MB91151A に内蔵されているモジュールで , DMA(Direct Memory Access) 転送を行います。 ■ DMA コントローラの特長 • 8 チャネル • 以下の 3 種類の転送モード - シングル / ブロック転送 - バースト転送 - 連続転送 • アドレス全領域とアドレス全領域の間での転送 • 最大 65536 回の転送回数 • 転送終了時割込み機能 • 転送アドレス増加 / 減少をソフトウェアで選択可能 • 以下の端子×各 3 本 - 外部転送要求入力端子 - 外部転送要求受付出力端子 - 外部転送終了出力端子 340 第 16 章 DMA コントローラ (DMAC) 16.2 DMA コントローラのブロックダイヤグラム 図 16.2-1 に , DMA コントローラのブロックダイヤグラムを示します。 ■ DMA コントローラのブロックダイヤグラム 図 16.2-1 DMA コントローラのブロックダイヤグラム 3 DREQO~DREQ2 内蔵リソース 転送要求 3 エッジ/レベル 検出回路 3 DACKO~DACK2 DEOPO~DEOP2 割込み要求 3 8 シーケンサ 5 スイッチャ DPDP DACSR データバス データバッファ DATCR モード BLK減 BLK DMACT 増/減 SADR DADR 341 第 16 章 DMA コントローラ (DMAC) 16.3 DMA コントローラのレジスタ 図 16.3-1 に , DMA コントローラのレジスタ一覧を示します。 ■ DMA コントローラのレジスタ一覧 図 16.3-1 DMA コントローラのレジスタ一覧 [DMAC 内:DMAC 内部レジスタ ] 31 0 000200H DPDP 000204H DACSR 000208H DATCR [RAM 上:DMA ディスクリプタ ] 31 0 DPDP + 0H DMA ch0 ディスクリプタ DPDP + 0CH DMA ch1 ディスクリプタ : : DPDP + 54H DMA ch7 ディスクリプタ 342 第 16 章 DMA コントローラ (DMAC) 16.3.1 DMAC パラメータディスクリプタポインタ (DPDP) DMAC パラメータディスクリプタポインタ (DPDP) は , DMAC の内部レジスタで , RAM 上にある DMAC 用ディスクリプタテーブルの先頭アドレスを格納するレジス タです。 DPDP のビット 6 ∼ビット 0 は常に "0" で , 設定可能なディスクリプタの先頭アド レスは 128 バイト単位となります。 ■ DMAC パラメータディスクリプタポインタ (DPDP) DMAC パラメータディスクリプタポインタ (DPDP) のレジスタ構成は以下のとおりで す。 31 7 6 000200H 0 0000000 初期値:0000000B 初期値:不定 • リセット時 : 初期化されません。 • リード / ライト可能です。 • 本レジスタへのアクセスには , 32 ビット転送命令を使用してください。 各チャネルの動作モードを指定するディスクリプタは , 表 16.3-1 に示すように , DPDP で指定される以下のアドレスに置かれます。 表 16.3-1 各チャネルのディスクリプタアドレス DMA チャネル ディスクリプタアドレス DMA チャネル ディスクリプタアドレス 0 DPDP + 0(00H) 4 DPDP + 48(30H) 1 DPDP + 12(0CH) 5 DPDP + 60(3CH) 2 DPDP + 24(18H) 6 DPDP + 72(48H) 3 DPDP + 36(24H) 7 DPDP + 84(54H) 343 第 16 章 DMA コントローラ (DMAC) 16.3.2 DMAC コントロールステータスレジスタ (DACSR) DMAC コントロールステータスレジスタ (DACSR) は , DMAC の内部レジスタで , DMAC 全体に関する制御 , ステータスを示すレジスタです。 ■ DMAC コントロールステータスレジスタ (DACSR) DMAC コントロールステータスレジスタ (DACSR) のレジスタ構成を以下に示します。 000204H 31 30 29 28 27 26 25 24 初期値 DER7 DED7 DIE7 DOE7 DER6 DED6 DIE6 DOE6 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 23 22 21 20 19 18 17 16 初期値 DER5 DED5 DIE5 DOE5 DER4 DED4 DIE4 DOE4 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 15 14 13 12 11 10 9 8 初期値 DER3 DED3 DIE3 DOE3 DER2 DED2 DIE2 DOE2 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 7 6 5 4 3 2 1 0 初期値 DER1 DED1 DIE1 DOE1 DER0 DED0 DIE0 DOE0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W [ ビット 31, 27, 23, 19, 15, 11, 7, 3] DER7 ∼ DER0 (DMA ERror) ch7 ∼ ch0 の DMA 要求発生元にエラーが発生して , DMA 転送処理を中断したこと を示します。 0: エラーはありません。 1: エラーが発生しました。 エラーが発生するか否かは , DMA 要求発生元 ( リソース ) により異なります。エ ラーが発生しない DMA 要求発生元もあります。 • リセット時 :"0" に初期化されます。 • リード / ライト可能ですが , 本ビットへの書込みは , "0" のみ有効です。 • リードモディファイライト系の命令による読出し時は , "1" が読み出されます。 [ ビット 30, 26, 22, 18, 14, 10, 6, 2] DED7 ∼ DED0 (DMA EnD) ch7 ∼ ch0 の DMA 転送が終了したことを示します。 0:DMA 転送動作は終了していません。 1: カウンタが "0" になった , または転送要求発生元でエラーが発生したことを示 します。 • リセット時 :"0" に初期化されます。 • リード / ライト可能ですが , 本ビットへの書込みは , "0" のみ有効です。 344 第 16 章 DMA コントローラ (DMAC) • リードモディファイライト系の命令による読出し時は , "1" が読み出されます。 [ ビット 29, 25, 21, 17, 13, 9, 5, 1] DIE7 ∼ DIE0 (DMA Interrupt Enable) ch7 ∼ ch0 の DMA 転送終了時 (DED7 ∼ DED0 が 1 になったとき ) に割込み要求を 発生させるか否かを指定します。 0: 割込み禁止 1: 割込み許可 • リセット時 :"0" に初期化されます。 • リード / ライト可能です。 [ ビット 28, 24, 20, 16, 12, 8, 4, 0] DOE7 ∼ DOE0 (DMA Operation Enable) ch7 ∼ ch0 の DMA 転送動作を許可します。 0: 動作禁止 1: 動作許可 • 該当するチャネルの DMA 転送が完了すると (DED7 ∼ DED0 が 1 になると ), DOE7 ∼ DOE0 は 0 にクリアされます。 • 転送の完了によるクリア動作と , バスからの書込みによるセット動作が同時に行 われた場合は , セット動作が優先されます。 • リセット時 :"0" に初期化されます。 • リード / ライト可能です。 345 第 16 章 DMA コントローラ (DMAC) 16.3.3 DMAC 端子コントロールレジスタ (DATCR) DMAC 端子コントロールレジスタ (DATCR) は , DMAC の内部レジスタで , 外部転送 要求入力端子 , 外部転送要求受付出力端子 , 外部転送終了出力端子に関する制御を行 うレジスタです。 ■ DMAC 端子コントロールレジスタ (DATCR) DMAC 端子コントロールレジスタ (DATCR) のレジスタ構成を以下に示します。 31 24 000208H XXXXXXXXB − 23 22 21 20 − − LS21 LS20 R/W R/W R/W R/W R/W R/W 13 12 11 10 9 8 15 14 − − 19 18 17 16 AKSE2 AKDE2 EPSE2 EPDE2 LS11 LS10 R/W R/W R/W R/W R/W R/W 3 2 1 0 7 6 5 4 − − LS01 LS00 R/W R/W 初期値 AKSE1 AKDE1 EPSE1 EPDE1 AKSE0 AKDE0 EPSE0 EPDE0 R/W R/W R/W 初期値 XXXX0000B 初期値 XXXX0000B 初期値 XXXX0000B R/W [ビット21, 20, 13, 12, 5, 4] LS21, LS20, LS11, LS10, LS01, LS00 転送要求入力検出レ ベル選択 該当する外部転送要求入力端子 DREQn の検出レベルを以下のように選択します。 LS21, LS11, LS01 LS20, LS10, LS00 0 0 立上りエッジ検出 0 1 立下りエッジ検出 1 0 "H" レベル検出 1 1 "L" レベル検出 動作制御機能 • リセット時 : 不定です。 • リード / ライト可能です。 • 連続転送モードを使用するときは , "H" レベル検出または "L" レベル検出を設定して ください。 346 第 16 章 DMA コントローラ (DMAC) [ ビット 19, ビット 11, ビット 3] AKSE2 ∼ AKSE0 [ ビット 18, ビット 10, ビット 2] AKDE2 ∼ AKDE0 転送要求受付出力信号を発生するタイミングを指定します。また , 転送要求受付出 力信号の端子からの出力機能の許可 / 禁止も指定します。 AKSE2 ∼ AKSE0 AKDE2 ∼ AKDE0 0 0 転送受付出力禁止 0 1 転送受付出力許可 , 転送先データアクセス時に出力 1 0 転送受付出力許可 , 転送元データアクセス時に出力 1 1 転送受付出力許可および転送先データアクセス時に出力 動作制御機能 • リセット時 :"00B" に初期化されます。 • リード / ライト可能です。 [ ビット 17, ビット 9, ビット 1] EPSE2 ∼ EPSE0 [ ビット 16, ビット 8, ビット 0] EPDE2 ∼ EPDE0 転送終了出力信号を発生するタイミングを指定します。また , 転送終了出力信号の 端子からの出力機能の許可 / 禁止も指定します。 EPSE2 ∼ EPSE0 EPDE2 ∼ EPDE0 0 0 転送終了出力禁止 0 1 転送終了出力許可 , 転送先データアクセス時に出力 1 0 転送終了出力許可 , 転送元データアクセス時に出力 1 1 転送終了出力許可 , 転送元および転送先データアクセス 時に出力 動作制御機能 • リセット時 :"00B" に初期化されます。 • リード / ライト可能です。 347 第 16 章 DMA コントローラ (DMAC) 16.3.4 RAM 上のディスクリプタ内レジスタ RAM 上のディスクリプタ内レジスタは , DMA 転送における , チャネルごとの設定情 報を格納するレジスタです。 チャネルあたり 12 バイトの大きさを持ち , DPDP により示されるアドレスのメモリ が使用されます。 チャネルごとのディスクリプタの先頭アドレスは , 表 16.3-1 を参照してください。 ■ ディスクリプタ先頭ワード ディスクリプタ先頭ワードのレジスタ構成は以下のとおりです。 31 16 DMACT R/W 15 14 13 12 11 10 9 8 BLK − R/W 7 6 5 4 3 2 1 0 SCS1 SCS0 DCS1 DCS0 WS1 WS0 MOD1 MOD0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値:不定 [ ビット 31 ∼ビット 16] DMACT 転送回数指定 DMA 転送を行う回数を指定します。0000H を設定すると , 65536 回の転送を行いま す。 1 回転送を行うたびに , 値が 1 ずつ減少します。 [ ビット 15 ∼ビット 12] 空き [ ビット 11 ∼ビット 8] BLK ブロックサイズ指定 シングル / ブロック転送モードにおける , 転送ブロックサイズを指定します。 "0" を設定すると , ブロックサイズとしては 16 が指定されたことになります。シン グル転送を行うときは , "1" を指定してください。 348 第 16 章 DMA コントローラ (DMAC) [ ビット 7, ビット 6] SCS1, SCS0 転送元アドレス更新モード指定 [ ビット 5, ビット 4] DCS1, DCS0 転送先アドレス更新モード指定 転送元および転送先アドレスの 1 転送ごとの更新モードを指定します。 以下の組合せの指定が可能です。 SCS1 SCS0 DCS1 DCS0 転送元アドレス 転送先アドレス 0 0 0 0 アドレス増加 アドレス増加 0 0 0 1 アドレス増加 アドレス減少 0 0 1 0 アドレス増加 アドレス固定 0 1 0 0 アドレス減少 アドレス増加 0 1 0 1 アドレス減少 アドレス減少 0 1 1 0 アドレス減少 アドレス固定 1 0 0 0 アドレス固定 アドレス増加 1 0 0 1 アドレス固定 アドレス減少 1 0 1 0 アドレス固定 アドレス固定 その他 設定禁止 アドレスを更新するモードにおける増減の単位は , 転送データサイズの指定に応じ て , 以下のようになります。 転送データサイズ アドレス増減の単位 バイト (8 ビット ) ± 1 バイト ハーフワード (16 ビット ) ± 2 バイト ワード (32 ビット ) ± 4 バイト [ ビット 3, ビット 2] WS1, WS0 転送データサイズを指定します。 WS1 WS0 0 0 バイト 0 1 ハーフワード 1 0 ワード 1 1 設定禁止 転送データサイズ 349 第 16 章 DMA コントローラ (DMAC) [ ビット 1, ビット 0] MOD1, MOD0 転送モード指定 転送モードを指定します。 MOD1 MOD0 0 0 シングル / ブロックモード 0 1 バーストモード 1 0 連続転送モード 1 1 設定禁止 動作モード 連続転送モードが使用できるのは , ch0 ∼ 2 だけです。 ■ ディスクリプタ第 2 ワード ディスクリプタ第 2 ワードのレジスタ構成は以下のとおりです。 31 0 SADR R/W 転送元アドレスを格納します。 アドレス更新モードの指定 (SCS1, SCS0 ビット ) に基づき , 転送動作に応じて値が更新 されます。 転送データサイズがハーフワード長のときは 2 の倍数のアドレスを , ワード長のときは "4" の倍数のアドレスを指定してください。 ■ ディスクリプタ第 3 ワード ディスクリプタ第 3 ワードのレジスタ構成は以下のとおりです。 31 0 DADR R/W 転送先アドレスを格納します。 アドレス更新モードの指定 (DCS1, DCS0 ビット ) に基づき , 転送動作に応じて値が更 新されます。 転送データサイズがハーフワード長のときは 2 の倍数のアドレスを , ワード長のときは "4" の倍数のアドレスを指定してください。 350 第 16 章 DMA コントローラ (DMAC) 16.4 DMA コントローラの転送モード DMA コントローラには , 以下の 3 つの転送モードがあります。 • シングル / ブロック転送モード • 連続転送モード • バースト転送モード ■ シングル / ブロック転送モード 1)初期化ルーチンでディスクリプタの設定を行います。 2)プログラムによって , DMA 転送要求発生元の初期化を行います。内部周辺回路を 転送要求発生元とする場合は , 割込み要求を許可にします。同時に , 割込みコント ローラの ICR レジスタは割込み禁止にします。 3)プログラムによって,所望するDACSRのDOE7∼DOE0ビットに"1"を書き込みます。 この時点で DMA に関する設定は完了です。 4)DMAC が DMA 転送要求入力を検出すると , CPU にバス権確保を要求します。 5)CPU がバス権を移譲すると , DMAC はディスクリプタにある 3 ワードの情報をバス を経由してアクセスします。 6)DMACT の減算を行い , ディスクリプタ内の情報に従った転送を BLK で指定された 回数 , または DMACT が "0" になるまで行います。データの転送中 , 転送要求受付 出力信号を出力します ( 外部転送要求入力使用の場合 )。減算した DMACT が "0" に なったとき , データ転送中に転送終了出力信号を出力します。 7)転送要求入力をクリアします。 8)SADR または DADR の増加減を行って , DMACT の値とともにディスクリプタに書 き戻します。 9)CPU にバス権を返します。 10)DMACT の値が "0" であった場合 , DACSR の DED7 ∼ DED0 を "1" にするとともに , 割込み許可になっていれば CPU に割込み発生します。 1 回あたりの最低所要サイクル数は , ディスクリプタを内蔵 RAM に格納し , データを 外部バス間で転送 , データ長がバイトの場合は , 以下のようになります。 • 転送元・転送先アドレスともに固定のとき :(6+5 × BLK) サイクル • 転送元・転送先アドレスの一方のみ固定のとき :(7+5 × BLK) サイクル • 転送元・転送先アドレスの両方が増加または減少のとき :(8+5 × BLK) サイクル ■ 連続転送モード 1)初期化ルーチンでディスクリプタの設定を行います。 2)プログラムによって , DMA 転送要求発生元の初期化を行います。外部転送要求入 力端子を , "H" または "L" レベル検出に設定します。 3)プログラムによって,所望するDACSRのDOE7∼DOE0ビットに"1"を書き込みます。 この時点で DMA に関する設定は完了です。 4)DMAC が DMA 転送要求入力を検出すると , CPU にバス権確保を要求します。 351 第 16 章 DMA コントローラ (DMAC) 5)CPU がバス権を移譲すると , DMAC はディスクリプタにある 3 ワードの情報をバス を経由してアクセスします。 6)DMACT の減算を行って , ディスクリプタ内の情報に従った転送を 1 回行います。 データの転送中 , 転送要求受付出力信号を出力します。減算した DMACT が "0" に なったとき , データ転送中に転送終了出力信号を出力します。 7)DMACT の値が "0" ではなく , 周辺からの DMA 要求がまだ存在する場合は , 再び 6) から繰り返します。 8)DMACT の値が "0" であるか , 周辺からの DMA 要求が解除されたら , SADR または DADR に増加減を行い , DMACT の値とともにディスクリプタに書き戻します。 9)CPU にバス権を返します。 10)カウンタの値が "0" であった場合 , DACSR の DED7 ∼ DED0 を "1" にするとともに , 割込み許可になっていれば CPU に割込みを発生します。 1 回あたりの最低所要サイクル数は , ディスクリプタを内蔵 RAM に格納し , データを 外部バス間で転送 , データ長がバイトの場合は , 以下のようになります。 • 転送元・転送先アドレスともに固定のとき :(6+5 × n) サイクル • 転送元・転送先アドレスの一方のみ固定のとき :(7+5 × n) サイクル • 転送元・転送先アドレスの両方が増加または減少のとき :(8+5 × n) サイクル ■ バースト転送モード 1)初期化ルーチンでディスクリプタの設定を行います。 2)プログラムによって , DMA 転送要求発生元の初期化を行います。内部周辺回路を転 送要求元とする場合は , 割込み要求を許可にします。同時に , 割込みコントローラ の ICR は割込み禁止にします。 3)プログラムにより , 所望する DACSR の DOE7 ∼ DOE0 ビットに "1" を書き込みます。 この時点で DMA に関する設定は完了です。 4)DMAC が DMA 転送要求入力を検出すると , CPU にバス権確保を要求します。 5)CPU がバス権を移譲すると , DMAC はディスクリプタにある 3 ワードの情報をバス を経由してアクセスします。 6)DMACT の減算を行いながら , ディスクリプタ内の情報に従った転送を DMACT で 設定した回数だけ行います。データの転送中 , 転送要求受付出力信号を出力します ( 外部転送要求入力使用の場合 )。減算した DMACT が "0" になったとき , データ転 送中に転送終了出力信号を出力します。 7)SADR または DADR の増加減を行って , DMACT の値とともにディスクリプタに書 き戻します。 8)CPU にバス権を返します。 9)DACSR の DED7 ∼ DED0 を "1" にするとともに , 割込み許可になっていれば CPU に割込みを発生します。 1 回あたりの最低所要サイクル数は , ディスクリプタを内蔵 RAM に格納し , データを 外部バス間で転送 , データ長がバイトの場合 , 以下のようになります。 • 転送元・転送先アドレスともに固定のとき :(6+5 × n) サイクル • 転送元・転送先アドレスの一方のみ固定のとき :(7+5 × n) サイクル • 転送元・転送先アドレスの両方が増加または減少のとき :(8+5 × n) サイクル 352 第 16 章 DMA コントローラ (DMAC) ■ リクエストのセンスと各転送モードの組合せ 図 16.4-1 に , リクエストのセンスと各転送モードの組合せを示します。 図 16.4-1 リクエストのセンスと各転送モードの組合せ リクエストセンス 転送モード 転送の単位 エッジセンス ステップ動作モード シングル転送 レベルセンス バースト転送モード ブロック転送 連続転送モード ■ DREC 信号のセンスモード ● エッジセンス ステップ転送 ( シングル / ブロック ) およびバースト転送にて使用可能です。 DMA 要求を , ( アクティブ ) エッジにより検出します。 DMAC 転送中は外部 DREQ の入力はマスクされているので , 次転送のためのアクティ ブエッジは , 直前の DMA 転送における転送先 DACK のアクティブエッジ以降である 必要があります。ステップ転送時には注意してください。 ● レベルセンス ステップ転送 ( シングル / ブロック ) および連続・バースト転送にて使用可能です。 DMA 要求を ( アクティブ ) レベルにより検出します。 <注意事項> レベルセンス , エッジセンスともに , DACK 信号の電気的特性は , 最小 2tCYC[ns] です。 エッジセンスの場合は , DACK のネゲート期間も同様に最小 2tCYC[ns] 必要です。 353 第 16 章 DMA コントローラ (DMAC) 16.4.1 ステップ転送 ( シングル / ブロック転送 ) ステップ転送 ( シングル / ブロック転送 ) は , 1 回の転送要求で , 1 回の DMA 転送を 行う転送モードです。DREQ 入力はエッジ , レベルの選択が可能です。 ■ ステップ転送 ( シングル / ブロック転送 ) ステップ転送では , 1DMA 転送ごとに , CPU にバス権が譲渡されます ( サイクルスチー ル的に転送が行われます )。 1 転送単位は , ブロックサイズにて決定され , ブロックサイズを大きくすれば DMAC の 転送レートは向上しますが , CPU の実行スループットは低下します。 図 16.4-2 に , CLK ダブラ使用 , 内部ディスクリプタ , ブロックサイズ =1 の場合の , ス テップ転送のタイミング例を示します。 図 16.4-2 ステップ転送のタイミング例 ステップ転送[CLKダブラ使用,内部ディスクリプタ,ブロックサイズ=1] CLK DREQ DACK ディスクリプタ アクセス Internal D-Abus External Abus 354 CPUの DATA bus使用可能期間 転送先 転送先 転送先 転送先 第 16 章 DMA コントローラ (DMAC) 16.4.2 連続転送 連続転送は , 転送要求 [DREQ] がアクティブレベルを保持し続けている間 , DMA 転 送を行う転送モードです。DREQ 入力はレベルセンスのみ可能です。 ■ 連続転送 連続転送では , 転送回数レジスタが "0" になるか , もしくは DREQ 入力のネゲートによ り , CPU へバス権を譲渡します。 図 16.4-3 に , CLK ダブラ使用 , 内部ディスクリプタの場合の , 連続転送のタイミング例 を示します。 図 16.4-3 連続転送のタイミング例 連続転送[CLKダブラ使用,内部ディスクリプタ] CLK ディスクリプタ アクセス DREQ DACK Internal D-Abus External Abus CPUの DATA bus使用可能期間 転送先 転送先 転送先 転送先 355 第 16 章 DMA コントローラ (DMAC) 16.4.3 バースト転送 バースト転送は , 1 回の転送要求 [DREQ] で設定された転送回数分の DMA 転送をす べて行う転送モードです。DREQ 入力はレベルセンスもしくは , エッジセンスの選 択が可能です。 ■ バースト転送 バースト転送では , 転送回数レジスタが "0" になることにより , DMA 転送を終了し , CPU へバス権を譲渡します。 図 16.4-4 に , CLK ダブラ使用 , 内部ディスクリプタの場合の , バースト転送のタイミン グ例を示します。 図 16.4-4 バースト転送のタイミング例 バースト転送[CLKダブラ使用,内部ディスクリプタ] CLK DREQ ディスクリプタ アクセス DACK Internal D-Abus External Abus CPUの DATA bus使用可能期間 転送先 転送先 転送先 転送先 DEOP2~DEOP0 DMACT=1 356 DMACT=0 第 16 章 DMA コントローラ (DMAC) 16.4.4 DREQ センスモードによる違い DREQ センスモードには , レベルモードとエッジモードがあります。ここでは , それ ぞれの注意事項について示します。 ■ レベルモード時の注意事項 レベルセンスモード時には , DMAC 転送のオーバランに注意が必要です。 転送先アクセス時の DACK ↑エッジまでに DREQ をネゲートしてください。 図 16.4-5 に , レベルモード時のタイミングを示します。 図 16.4-5 レベルモード時のタイミング 最大1サイクル CLK DREQ DREQ DACK DREQ(NG) 1回の転送要求に対して,2回 転送してしまいます。 ソースリード ディスティネーションライト 内部D-A ディスクリプタライト ディスクリプタリード External 転送先 A bus 転送先 A B A: 要求フラグのクリアポイント エッジセンス時の次 DREQ のセンス開始ポイント 連続転送モード時の次 DREQ のセンス開始ポイント B: レベルセンスモードで , シングル , ブロック転送時における次 DREQ のセンス開始ポイント ( 注意事項 )DREQ から DMA 起動までのタイミングは , ほぼ最速の場合を記載しています。 357 第 16 章 DMA コントローラ (DMAC) ■ エッジモード時の注意事項 エッジセンスモード時には , DMAC 要求フラグのクリアポイント以降に , 次の DREQ エッジを入力する必要があります。それ以前に入力されたエッジは無視されますので , 注意してください。 また , エッジを認識させるためにネゲート期間として最小 2tCYC[ns] 必要です。 転送先アクセス時の DACK ↓エッジ以降に , 図 16.4-6 に示す DREQ を入力してくださ い。 図 16.4-6 に , エッジモード時のタイミングを示します。 図 16.4-6 エッジモード時のタイミング CLK DREQ DACK DREQ(NG) アクティブエッジが早い DREQ(NG) DREQ(NG) ディスティネーションライト 最小2tCYC[ns]が満足されて いない。 内部D-Abus ディスクリプタライト External A bus 転送先 転送先 A B A: 要求フラグのクリアポイント エッジセンス時の次 DREQ のセンス開始ポイント 連続転送モード時の次 DREQ のセンス開始ポイント B: レベルセンスモードで , シングル , ブロック転送時における次 DREQ のセンス開始ポイント ( 注意事項 )DREQ から DMA 起動までのタイミングは , ほぼ最速の場合を記載しています。 358 第 16 章 DMA コントローラ (DMAC) 16.5 転送受付信号出力と転送終了信号出力 ch0, ch1, ch2 には , 転送要求受付信号と転送終了信号出力を端子から出力する機能 があります。 転送受付信号出力では , 端子からの転送要求入力を受理して DMA 転送を行うとき , DMAC から転送要求受付信号が出力されます。 転送終了信号出力では , 端子からの転送要求入力を受理して DMA 転送を行い , DMACT カウンタが "0" となって転送を終了するとき , DMAC から転送終了信号が 出力されます。 ■ 転送受付信号出力 転送要求受付信号は , アクティブローのパルスで , 転送データのアクセスに伴って出力 されます。転送元アクセスに同期して出力するのか , 転送先アクセスに同期して出力す るのか , またはその両方で出力するのか , を DATCR 中の AKSE2 ∼ AKSE0, AKDE2 ∼ AKDE0 ビットにて指定可能です。 ■ 転送終了信号出力 転送終了信号は , アクティブローのパルスで , 最終転送データのアクセスに伴って出力 されます。転送元アクセスに同期して出力するのか , 転送先アクセスに同期して出力す るのか , またはその両方で出力するのかを DATCR 中の EPSE2 ∼ EPSE0, EPDE2 ∼ EPDE0 ビットにて指定可能です。 359 第 16 章 DMA コントローラ (DMAC) 16.6 DMA コントローラに関する注意事項 DMA コントローラを使用するうえでの注意事項を示します。 ■ チャネル間優先順位 本 DMAC は , 1 つのチャネルの DMA 転送要求により一度起動されると , ほかのチャネ ルの DMA 転送要求が発生しても実行中の転送が終了するまでほかのチャネルの転送 要求は受理されず , 保留されます。 DMAC が DMA 転送要求を検出するときに , 複数のチャネルの要求が同時にアクティ ブになっていた場合 , 受理するチャネルは以下の優先度に従って決まります。 ( 強 ) ch0 > ch1 > ch2 > ch3 > ch4 > ch5 > ch6 > ch7( 弱 ) 複数のチャネルの要求が同時に発生した場合 , 1 つのチャネルの DMA 転送を実行した 後 , 次のチャネルの DMA 転送を行う前に , 一度 CPU にバスの制御が戻ります。 ■ リソースの割込み要求を DMA 転送要求として使用する場合の注意 DMAC 転送を望む場合 , 該当する割込みの割込みコントローラ内の割込みレベルは割 込み禁止にする必要があります。 また , 逆に , 割込み発生を望む場合 , DMAC 内の DMAC 動作許可ビットを禁止状態にし , 割込みレベルを適切な値にする必要があります。 ■ 優先度の高い割込み発生時の DMA 転送抑止 FR ファミリには , DMA 転送要求の発生による DMA 転送の実行中に , より優先度の高 い割込み要求が発生した場合 , DMA 転送を停止させる機能があります。 ● HRCL レジスタ 割込みコントローラの HRCL レジスタ (Hold Request Cancel Level register) を操作するこ とにより , 割込み要求の発生時に , DMA 転送動作を停止させることができます。 周辺回路からの割込み要求が発生したときに,その割込み要求に設定された割込みレベ ルが , HRCL レジスタに設定された割込みレベルよりも強い値であった場合 , DMAC の DMA 転送動作が抑止されます。DMA 転送動作の実行中であれば , 転送動作の切れ目 で動作を中止し , バス権を CPU に開放します。DMA 転送要求の発生待ちの状態であ れば , DMA 転送要求が発生しても保留する状態になります。 リセット後 , HRCL レジスタは最も弱いレベル (31) に設定されるので , すべての割込み 要求に対して DMA 転送動作は抑止されることになります。割込み要求が発生してい てもDMA転送を動作させたいときは, HRCLレジスタを必要な値に設定してください。 ● PDRR レジスタ HRCL レジスタの指定による DMA 転送動作の抑止機能は , より高い優先度の割込み要 求がアクティブなときのみ有効です。そのため , 例えば割込みハンドラのプログラム中 で割込み要求をクリアすると , その時点で HRCL レジスタによる DMA 転送の抑止は解 除され , CPU がバス権を失ってしまう場合があります。 ほかの割込み要求を受理できるように割込み要求はクリアして , かつ DMA 転送動作は 抑止するために , クロック制御部の PDRR レジスタが用意されています。 割込みハンドラ中で PDRR に 0 以外の値を書き込むと , DMA 転送動作は抑止されます。 DMA 転送動作の抑止を解除したいとき , PDRR に "0" を書き込んでください。 360 第 16 章 DMA コントローラ (DMAC) ■ スリープモード中の DMA 転送動作 スリープモード中の DMA 転送動作は使用できません。スリープモードにする前に必 ず DMA 転送動作を動作禁止に設定してください。 ■ DMAC 内部レジスタへの転送動作 転送先アドレスとして , DMAC の内部レジスタは指定しないでください。表 16.6-1 に , DMA 転送要求要因の一覧を示します。 表 16.6-1 DMA 転送要求要因一覧 チャネル番号 転送要求要因 0 外部転送要求入力端子 DREQ0 1 外部転送要求入力端子 DREQ1 2 外部転送要求入力端子 DREQ2 3 PPG ch0 4 UART ch0 受信 5 UART ch0 送信 6 16 ビットリロードタイマ ch0 7 A/D コンバータ ● DMAC 転送要求元のエラーステータス DACSR の DER7 ∼ DER0 ビットで DMA 要求発生元にエラーが発生したことを通知で きるのは , ch4 だけです。 UART ch0 の受信割込みを DMA 転送要求として使用しているときに , 以下のエラーが 発生すると , DER4 ビットが "1" となります。 • パリティエラー • オーバランエラー • フレーミングエラー 361 第 16 章 DMA コントローラ (DMAC) 16.7 DMA コントローラのタイミング図 以下の動作のタイミングを示します。 • ディスクリプタアクセス部 • データ転送部 • 連続転送モードでの転送停止 • 転送の終了 ■ タイミング図で使用している記号 表 16.7-1 に , 以降のタイミング図中で使用している記号の意味を示します。 表 16.7-1 タイミング図で使用している記号 記号 #0 ディスクリプタ No.0 #0H ディスクリプタ No.0 のビット 31 ∼ビット 16 #0L ディスクリプタ No.0 のビット 15 ∼ビット 0 #1 ディスクリプタ No.1 #1H ディスクリプタ No.1 のビット 31 ∼ビット 16 #1L ディスクリプタ No.1 のビット 15 ∼ビット 0 #2 ディスクリプタ No.2 #2H ディスクリプタ No.2 のビット 31 ∼ビット 16 #2L ディスクリプタ No.2 のビット 15 ∼ビット 0 #1/2 ディスクリプタ No.1 または No.2(SCS1, SCS0, DCS1, DCS0 により 決まる ) #1/2H ディスクリプタ No.1 または No.2 のビット 31 ∼ビット 16 #1/2L ディスクリプタ No.1 または No.2 のビット 15 ∼ビット 0 S 362 意味 転送元 SH 転送元のビット 31 ∼ビット 16 SL 転送元のビット 15 ∼ビット 0 D 転送先 DH 転送先のビット 31 ∼ビット 16 DL 転送先のビット 15 ∼ビット 0 第 16 章 DMA コントローラ (DMAC) 16.7.1 ディスクリプタアクセス部のタイミング図 ディスクリプタアクセス部のタイミング図を示します。 ■ ディスクリプタアクセス部 ● 要求端子入力モード : レベル , ディスクリプタアドレス : 外部 (A) CLK DREQ0~DREQ2 Addr端子 #0H Data端子 #0L #0H #1H #0L #1L #1H #2L #2H #1L #2H S #2L S RD WR0,WR1 DACK0~DACK2 DEOP0~DEOP2 ● 要求端子入力モード : レベル , ディスクリプタアドレス : 内部 (A) 内部 KB CLK DREQ0~DREQ2 Addr端子 S Data端子 S RD WR0,WR1 DACK0~DACK2 DEOP0~DEOP2 ● 要求端子入力モード : エッジ , ディスクリプタアドレス : 外部 (A) CLK DREQ0~DREQ2 Addr端子 Data端子 #0H #0L #0H #1H #0L #1L #1H #2H #1L #2L #2H S #2L S RD WR0,WR1 DACK0~DACK2 DEOP0~DEOP2 363 第 16 章 DMA コントローラ (DMAC) ● 要求端子入力モード : エッジ , ディスクリプタアドレス : 内部 (A) CLK DREQ0~DREQ2 S Addr端子 S Data端子 RD WR0,WR1 DACK0~DACK2 DEOP0~DEOP2 <注意事項> DREQ0 ∼ DREQ2 の発生から DMAC 動作開始までの部分については , 最も早い条件の場 合を示してあります。 実際の動作では , CPU の命令フェッチやデータアクセスによるバスの競合があるため , DMAC の動作開始が遅れる場合があります。 364 第 16 章 DMA コントローラ (DMAC) 16.7.2 データ転送部のタイミング図 データ転送部のタイミング図を示します。 ■ データ転送部 , 16/8 ビットデータ ● 転送元領域 : 外部 , 転送先領域 : 外部 CLK DREQ0~DREQ2 Addr端子 S #2 Data端子 #2 D S S D D S S D D S S D D S D RD WR0,WR1 W W W DACK0~DACK2 DEOP0~DEOP2 (A) ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM (A) CLK DREQ0~DREQ2 Addr端子 S #2 Data端子 #2 S S S S S S S RD WR0,WR1 DACK0~DACK2 DEOP0~DEOP2 ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 (A) CLK DREQ0~DREQ2 Addr端子 Data端子 #2 #2 D D D D D D D D RD WR0,WR1 W W W W DACK0~DACK2 DEOP0~DEOP2 365 第 16 章 DMA コントローラ (DMAC) 16.7.3 連続転送モードでの転送停止タイミング図 連続転送モードでの転送停止のタイミング図を示します。 ■ 連続転送モードでの転送停止 ( いずれか一方のアドレスは固定である場合 ), 16/8 ビットデータ ● 転送元領域 : 外部 , 転送先領域 : 外部 CLK DREQ0~DREQ2 Addr端子 D Data端子 D S S D #0H #1/2H #1/2L D #0H #1/2H #1/2L RD WR0,WR1 W W W W W DACK0~DACK2 DEOP0~DEOP2 ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM CLK DREQ0~DREQ2 Addr端子 S S Data端子 S S #0H #1/2H #1/2L #0H #1/2H #1/2L RD WR0,WR1 W DACK0~DACK2 DEOP0~DEOP2 ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 CLK DREQ0~DREQ2 Addr端子 D D D #0H #1/2H #1/2L Data端子 D D D #0H #1/2H #1/2L W W RD WR0,WR1 DACK0~DACK2 DEOP0~DEOP2 366 W W W W W W 第 16 章 DMA コントローラ (DMAC) ■ 連続転送モードでの転送停止 ( 両方のアドレスが変化する場合 ), 16/8 ビットデータ ● 転送元領域 : 外部 , 転送先領域 : 外部 CLK DREQ0~DREQ2 Addr端子 D Data端子 D S S D #0H #1H #1L #2H #2L D #0H #1H #1L #2H #2L RD WR0,WR1 W W W W W W W DACK0~DACK2 DEOP0~DEOP2 ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM CLK DREQ0~DREQ2 Addr端子 S Data端子 S S S #0H #1H #1L #2H #2L #0H #1H #1L #2H #2L RD WR0,WR1 W W W W W DACK0~DACK2 DEOP0~DEOP2 ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 CLK DREQ0~DREQ2 Addr端子 D D D #0H #1H #1L #2H #2L Data端子 D D D #0H #1H #1L #2H #2L RD WR0,WR1 W W W W W W W W DACK0~DACK2 DEOP0~DEOP2 367 第 16 章 DMA コントローラ (DMAC) 転送の終了動作タイミング図 16.7.4 転送の終了動作のタイミング図を示します。 ■ 転送の終了動作 ( いずれか一方のアドレスは固定である場合 ) ● バス幅 : 16 ビット , データ長 : 8/16 ビット CLK Addr端子 D Data端子 D S D S S D S D #0H #1/2H #1/2L D #0H #1/2H #1/2L RD WR0,WR1 W W W W W W AKSE=1 DACK0~ DACK2 AKDE=1 両方とも1 EPSE=1 DEOP0~ EPDE=1 DEOP2 両方とも1 ● バス幅 : 16 ビット , データ長 : 32 ビット CLK Addr端子 SH Data端子 RD SL D DL DH DL SH AKSE=1 両方とも1 EPSE=1 DEOP0~ EPDE=1 DEOP2 両方とも1 SL D DL #0H #1/2H #1/2L DH DL #0H #1/2H #1/2L H W DACK0~ AKDE=1 DACK2 SL SH H WR0,WR1 368 SL SH W W W W W W 第 16 章 DMA コントローラ (DMAC) ■ 転送の終了動作 ( 両方のアドレスが変化する場合 ) ● バス幅 : 16 ビット , データ長 : 8/16 ビット CLK Addr端子 D Data端子 D S D S S D S D #0H #1H #1L #2H #2L D #0H #1H #1L #2H #2L RD W WR0,WR1 W W W W W W W D DL #0H #1H #1L DH DL #0H #1H #1L AKSE=1 DACK0~ AKDE=1 DACK2 両方とも1 EPSE=1 DEOP0~ EPDE=1 DEOP2 両方とも1 ● バス幅 : 16 ビット , データ長 : 32 ビット CLK Addr端子 Data端子 SH SL SH SL D DL DH DL SH H RD SL H W WR0,WR1 SL SH W W W W W W AKSE=1 DACK0~ AKDE=1 DACK2 両方とも1 EPSE=1 DEOP0~ EPDE=1 DEOP2 両方とも1 CLK Addr端子 #2H #2L Data端子 #2H #2L RD WR0,WR1 W W 369 第 16 章 DMA コントローラ (DMAC) 370 第 17 章 ビットサーチモジュール この章では , ビットサーチモジュールの概要 , レジ スタの構成 / 機能およびビットサーチモジュールの 動作について説明します。 17.1 ビットサーチモジュールの概要 17.2 ビットサーチモジュールのレジスタ 17.3 ビットサーチモジュールの動作と退避 / 復帰処理 371 第 17 章 ビットサーチモジュール 17.1 ビットサーチモジュールの概要 ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0", "1" または変化点を検索し , 検出したビット位置を返す機能をもつモジュールです。 ■ ビットサーチモジュールのブロックダイヤグラム 図 17.1-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。 図 17.1-1 ビットサーチモジュールのブロックダイヤグラム D-bus 入力ラッチ アドレス デコーダ 検出モ ー ド 1検出データ化 ビットサーチ回路 検索結果 ■ ビットサーチモジュールのレジスタ一覧 図 17.1-2 に , ビットサーチモジュールのレジスタ一覧を示します。 図 17.1-2 ビットサーチモジュールのレジスタ一覧 アドレス 0003F0H 372 31 0 BSD0 0 検出用データレジスタ 0003F4H BSD1 1 検出用データレジスタ 0003F8H BSDC 変化点検出用データレジスタ 0003FCH BSRR 検出結果レジスタ 第 17 章 ビットサーチモジュール 17.2 ビットサーチモジュールのレジスタ ビットサーチモジュールのレジスタには , 以下の 4 つがあります。 • 0 検出用データレジスタ (BSD0) • 1 検出用データレジスタ (BSD1) • 変化点検出用データレジスタ (BSDC) • 検出結果レジスタ (BSRR) ■ 0 検出用データレジスタ (BSD0) 0 検出用データレジスタ (BSD0) のレジスタ構成は以下のとおりです。 アドレス 0003F0H 31 0 R/W → ライトオンリ 初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 書き込んだ値に対して 0 検出を行います。 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください )。 ■ 1 検出用データレジスタ (BSD1) アドレス 0003F4H 31 0 R/W → リード / ライト可能 初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は使わないでください )。 ● 書込み時 書き込んだ値に対して "1" を検出します。 ● 読出し時 ビットサーチモジュールの内部状態の退避用データが読み出されます。 割込みハンドラなどがビットサーチモジュールを使用する場合に元の状態を退避復帰 するときに使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用データレ ジスタのみ操作することで退避復帰できます。 リセットによる初期値は不定です。 373 第 17 章 ビットサーチモジュール ■ 変化点検出用データレジスタ (BSDC) 変化点検出用データレジスタ (BSDC) のレジスタ構成は以下のとおりです。 アドレス 0003F8H 31 0 R/W → ライトオンリ 初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 書き込んだ値に対して , 変化点の検出を行います。 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は使わないでください )。 ■ 検出結果レジスタ (BSRR) 検出結果レジスタ (BSRR) のレジスタ構成は以下のとおりです。 アドレス 0003FCH 31 0 R/W → リードオンリ 初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0 検出 , 1 検出または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは,最後に書き込んだデータレジスタによって決定され ます。 374 第 17 章 ビットサーチモジュール 17.3 ビットサーチモジュールの動作と退避 / 復帰処理 ここでは , ビットサーチモジュールの 0 検出 , 1 検出および変化点検出の動作と退 避 / 復帰処理について示します。 ■ 0 検出 0 検出では , 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャ ンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す数値の関係は , 表 17.3-1 に示すとおりです。 "0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 読出し値 (10 進 ) 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 ■ 1 検出 1 検出では , 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャ ンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値との関係は , 表 17.3-1 のとおりです。 "1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 375 第 17 章 ビットサーチモジュール ■ 変化点検出 変化点検出では , 変化点検出用データレジスタに書き込まれたデータを , ビット 30 か ら LSB へスキャンし , MSB の値と比較します。 最初に MSB と異なる値を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値は , 表 17.3-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 表 17.3-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 376 第 17 章 ビットサーチモジュール ■ 退避・復帰の処理 割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ い。 1)1 検出用データレジスタを読出し , この内容を保存する ( 退避 ) 2)ビットサーチモジュールを使用 3)1) で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 ) 以上の操作により , 次に検出結果レジスタを読み出した時に得られる値は , 1) 以前に , ビットサーチモジュールに書き込まれた内容に応じたものとなります。 最後に書き込まれたデータレジスタが 0 検出用または変化点検出用であっても , 上記手 順で正しく元に戻ります。 377 第 17 章 ビットサーチモジュール 378 第 18 章 周辺ストップ制御 この章では , 周辺ストップ制御の概要およびレジス タの構成 / 機能について説明します。 18.1 周辺ストップ制御の概要 18.2 周辺ストップ制御のレジスタ 379 第 18 章 周辺ストップ制御 18.1 周辺ストップ制御の概要 周辺ストップ制御は , 使用しないリソースのクロックを停止させ , より低消費電力化 を可能とする機能です。 ■ 周辺ストップ制御のレジスタ一覧 図 18.1-1 に , 周辺ストップ制御のレジスタ一覧を示します。 図 18.1-1 周辺ストップ制御のレジスタ一覧 アドレス 000090H bit7...........................................bit0 STPR0 000091H STPR1 000092H STPR2 ■ 周辺ストップ制御の動作と注意事項 各ビットそれぞれ対応するリソースのクロックを停止することができます。 クロックを停止させたリソースは当然ながら起動できません。また , 停止中のリソース のレジスタをアクセスしないでください。 使用中のリソースに対して本機能を用いて停止させないでください。 380 第 18 章 周辺ストップ制御 18.2 周辺ストップ制御のレジスタ 周辺ストップ制御のレジスタには , 以下の 3 つがあります。 • ストップ制御レジスタ 0(STPR0) • ストップ制御レジスタ 1(STPR1) • ストップ制御レジスタ 2(STPR2) ■ ストップ制御レジスタ 0(STPR0) ストップ制御レジスタ 0(STPR0) のレジスタ構成は以下のとおりです。 アドレス 000090H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ST07 ST06 ST05 ST04 − − − − 初期値 0000----B (R/W) [ ビット 7] ST07 0 UART0 動作許可 1 UART0 動作停止 [ ビット 6] ST06 0 UART1 動作許可 1 UART1 動作停止 [ ビット 5] ST05 0 UART2 動作許可 1 UART2 動作停止 [ ビット 4] ST04 0 UART3 動作許可 1 UART3 動作停止 381 第 18 章 周辺ストップ制御 ■ ストップ制御レジスタ 1(STPR1) ストップ制御レジスタ 1(STPR1) のレジスタ構成は以下のとおりです。 アドレス 000091H bit7 ST17 bit6 ST16 bit5 ST15 bit4 ST14 bit3 ST13 bit2 − [ ビット 7] ST17 0 リロードタイマ 0 動作許可 1 リロードタイマ 0 動作停止 [ ビット 6] ST16 0 リロードタイマ 1 動作許可 1 リロードタイマ 1 動作停止 [ ビット 5] ST15 0 リロードタイマ 2 動作許可 1 リロードタイマ 2 動作停止 [ ビット 4] ST14 0 リロードタイマ 3 動作許可 1 リロードタイマ 3 動作停止 [ ビット 3] ST13 0 フリーランタイマ動作許可 1 フリーランタイマ動作停止 [ ビット 1] ST11 0 アップダウンカウンタ動作許可 1 アップダウンカウンタ動作停止 [ ビット 0] ST10 382 0 A/D コンバータ動作許可 1 A/D コンバータ動作停止 bit1 ST11 bit0 ST10 初期値 00000-00B (R/W) 第 18 章 周辺ストップ制御 ■ ストップ制御レジスタ 2(STPR2) ストップ制御レジスタ 2(STPR2) のレジスタ構成は以下のとおりです。 アドレス 000092H bit7 ST27 bit6 ST26 bit5 ST25 bit4 ST24 bit3 ST23 bit2 ST22 bit1 bit0 − − 初期値 000000--B (R/W) [ ビット 7] ST27 0 PPG0 動作許可 1 PPG0 動作停止 [ ビット 6] ST26 0 PPG1 動作許可 1 PPG1 動作停止 [ ビット 5] ST25 0 PPG2 動作許可 1 PPG2 動作停止 [ ビット 4] ST24 0 PPG3 動作許可 1 PPG3 動作停止 [ ビット 3] ST23 0 PPG4 動作許可 1 PPG4 動作停止 [ ビット 2] ST22 0 PPG5 動作許可 1 PPG5 動作停止 383 第 18 章 周辺ストップ制御 384 第 19 章 シリアル起動 この章では , シリアル起動の概要および通信モード について説明します。 19.1 シリアル起動の概要と設定方法 19.2 シリアル起動の通信モード 385 第 19 章 シリアル起動 19.1 シリアル起動の概要と設定方法 本モードは , 内蔵の専用 ROM による内蔵 RAM (2K バイト ) へのシリアル書込みおよ び RAM プログラム起動モードです。本品種内蔵の UARTch1 を用いて通信を行いま すが , 外付けフラッシュなどへのデータ転送用として使用できます。また , 外部端子の 設定により同期通信 , 非同期通信ともに選択可能ですが , 非同期通信については , マシ ンクロック 25MHz ( 原振周波数 12.5MHz) でボーレート 9600bps, マシンクロック 33MHz ( 原振周波数 16.5MHz) でボーレート 9600bps の選択も可能です ( マシンクロック 36MHz/ 原振周波数 18MHz の場合は , 非同期通信を用いたシリアル 起動はできませんのでご注意願います )。 ■ 設定方法 表 19.1-1 設定方法 外部端子名 MD2 MD1 MD0 PG5 PG4 非同期通信モード ( マシンクロック 33MHz) 1 1 0 1 0 0 非同期通信モード ( マシンクロック 25MHz) 1 1 0 1 0 1 同期通信モード 1 1 0 1 1 0 仕様 386 PG3 第 19 章 シリアル起動 19.2 シリアル起動の通信モード シリアル起動の通信モードには , 以下の 3 つがあります。 • 非同期通信モード ( マシンクロック 33MHz) • 非同期通信モード ( マシンクロック 25MHz) • 同期モード ■ シリアル起動の通信モード ● 非同期通信モード ( マシンクロック 33MHz) UARTch1 の非同期 ( ノーマルモード ) モードでシリアル通信を行います。 マシンクロック 33MHz ( 外部水晶発振器 16.5MHz) でボーレート 9600bps になります。 シリアルの設定はデータ長 :8 ビット , ストップビット長 :1 ビット , パリティなし , LSB ファーストです。 ● 非同期通信モード ( マシンクロック 25MHz) UARTch1 の非同期 ( ノーマルモード ) モードでシリアル通信を行います。 マシンクロック 25MHz ( 外部水晶発振器 12.5MHz) でボーレート 9600bps になります。 シリアルの設定はデータ長 :8 ビット , ストップビット長 :1 ビット , パリティなし , LSB ファーストです。 ● 同期通信モード UARTch1 の同期 ( ノーマルモード ) モードでシリアル通信を行います。ボーレートの 選択は , 外部クロック入力により自由に設定できます ( 外部クロックがそのままボー レート )。外部クロック入力の最大値は周辺系動作クロックの 1/8 です ( 周辺系動作ク ロックの設定は PLL 系最速です )。シリアル設定はデータ長 :8 ビット , パリティなし , LSB ファーストです。 いずれのモードも 1)コマンドデータ (00H) 2)ダウンロード先 RAM アドレス 4 バイト (00080400H ∼ 000807FFH) 3)ダウンロードバイト数 4 バイト ( 最大 000003FFH) の 3 つのダウンロード情報データを FR 側へ順に上位バイトから 1 バイトずつ与えさら に , これらの SUM チェックデータ ( データをすべて加えて下位 8 ビットを取り出し ) を与えることにより , RAM へのダウンロードルーチンに入ります。次に , RAM にダウ ンロードしたいデータを同じく FR 側へ順に上位バイトから 1 バイトずつ与え , SUM チェックデータを与えると転送終了後そのまま RAM にジャンプしダウンロードされ たプログラムが実行されます。 例として表 19.2-1 を示します。 387 第 19 章 シリアル起動 表 19.2-1 非同期モードで RAM アドレス 00080400H へ 0000005BH バイトのデータ を転送する場合 PC など FR 側 ① 00H → − ② 00H → − ③ 08H → − ④ 04H → − ⑤ 00H → − ⑥ 00H → − ⑦ 00H → − ⑧ 00H → − ⑨ 5BH → − SUM チェックデータ ⑩ 67H → − FR 側からのアクノリッジ ⑪ − ← 01H データ送信 ⑫ DATA → − SUM チェックデータ ⑬ * → − コマンドデータ ダウンロード先アドレス ダウンロードバイト数 (91 バイト ) *:送信データをすべて加えて下位 8 ビットを取り出します。 詳細動作については次項以降の専用 ROM 内プログラムのフローチャートを参照し てください。なお , UART の詳細動作 , 端子および全端子状態などについては ,「第 15 章 UART」の項または「付録 C 各 CPU ステートにおける端子状態」の項を参照 してください。 388 第 19 章 シリアル起動 図 19.2-1 メインプログラムフローチャート START PG5~PG3=3'b100? 非同期33MHz PG5~PG3=3'b101? 非同期25MHz PG5~PG3=3'b110? 同期 禁止 非同期25MHz (注意事項)UART1設定について 非同期33MHz 同期 非同期33MHz時 ・非同期モード(内部タイマ使用) ・ボーレート9600bps (水晶発振器16.5MHz時) ・データ長8ビット ・ストップビット1ビット ・パリティなし 非同期25MHz時 ・非同期モード(内部タイマ使用) ・ボーレート9600bps (水晶発振器12.5MHz時) ・データ長8ビット ・ストップビット1ビット ・パリティなし 同期時 ・同期モード(外部クロック使用) ・データ長8ビット ・パリティなし ギア設定(PLL系最速) UART1設定(注) MAIN コマンド受信 受信コマンド①=00H? (DOWN LOAD) No DOWN LOAD RAMへJUMP コマンドエラー 389 第 19 章 シリアル起動 ■ コマンド一覧 FR 側に発行されるコマンドおよび FR 側からの応答信号の一覧を示します。 表 19.2-2 コマンド一覧 FR 側 PC など ダウンロード − ← 00H リセット − ← 18H コマンド コマンド 受信応答 390 コマンド異常 ( 受信コマンド & F0H) | 04H → − SUM チェック異常 { 受信コマンド (00H) & F0H} | 02H → − RESET コマンド受信 11H → − DOWN LOAD コマンド受信 01H → − 第 19 章 シリアル起動 図 19.2-2 サブルーチン " コマンド受信 " フローチャート : 非同期モード時 (25MHz・33MHz 共通 ) コマンド受信 1バイト受信 (コマンドデータ) No 受信データ有 ? 1バイトデータ受信①(コマンドデータ) Yes 受信データ①=18H? RESET 8バイト受信 (ダウンロード情報データ) ダウンロード先アドレス4バイト + ダウンロードバイト数4バイト No 受信データ有 ? 1バイトデータ受信②~⑨ (ダウンロード情報データ) ・受信データ格納アドレスインクリメント ・受信回数カウント No 受信回数=8回 ? 1バイト受信(SUMチェックデータ) No 受信データ有 ? 1バイトデータ受信⑩(SUMチェックデータ) ①~⑨を加えて下位8ビット取出し:α No ⑩=α ?(SUMチェック) SUMチェックエラー EXIT 391 第 19 章 シリアル起動 図 19.2-3 サブルーチン "DOWN LOAD" フローチャート : 非同期モード時 (25MHz・33MHz 共通 ) DOWN LOAD 1バイト送信(コマンド正常受信応答) 1バイト送信(01H) RAMにダウンロード No 受信データ有 ? 1バイトデータ受信 ・受信データ格納アドレスインクリメント ・受信回数カウント 受信回数=ダウンロード バイト数 ? No 1バイト受信(SUMチェックデータ) No 受信データ有 ? 1バイトデータ受信⑬(SUMチェックデータ) 受信データすべてを加えて下位8ビット取出し:β No ⑬=β ?(SUMチェック) EXIT 392 SUMチェックエラー 第 19 章 シリアル起動 図 19.2-4 サブルーチン " コマンドエラー " フローチャート : 非同期モード時 (25MHz・33MHz 共通 ) 1バイト送信 (コマンド異常受信応答) コマンドエラー 送信データ作成 ・受信コマンドデータ取出し ・{(受信コマンドデータ)&(F0H)}|(04H) 1バイト送信 MAIN 図 19.2-5 サブルーチン "SUM チェックエラー " フローチャート : 非同期モード時 (25MHz・33MHz 共通 ) 1バイト送信 (SUMチェック異常応答) SUMチェックエラー 送信データ作成 ・受信コマンドデータ取出し ・{(受信コマンドデータ)&(F0H)}|(02H) 1バイト送信 MAIN 図 19.2-6 サブルーチン "RESET" フローチャート : 非同期モード時 (25MHz・33MHz 共通 ) 1バイト送信 (RESETコマンド受信応答) RESET 1バイト送信(11H) MAIN 393 第 19 章 シリアル起動 図 19.2-7 サブルーチン " コマンド受信 " フローチャート : 同期モード時 コマンド受信 PH4/SOT1"L"出力 1バイト送信(ダミー):00H 1バイト受信(コマンドデータ) No 受信データ有 ? 1バイトデータ受信①(コマンドデータ) Yes 受信データ①=18H ? RESET ・1バイト送信(ダミー):00H ・PH4/SOT1"反転"出力 8バイト受信(ダウンロード情報データ) ダウンロード先アドレス4バイト + ダウンロードバイト数4バイト No 受信データ有 ? ・1バイト送信(ダミー):00H ・PH4/SOT1“反転”出力 1バイトデータ受信②~⑨(ダウンロード情報データ) ・受信データ格納アドレスインクリメント ・受信回数カウント No 受信回数=8回 ? 1バイト受信(SUMチェックデータ) No 受信データ有 ? PH4/SOT1"H"出力 1バイトデータ受信⑩(SUMチェックデータ) ①~⑨を加えて下位8ビット取出し:α No ⑩=α?(SUMチェック) EXIT 394 SUMチェックエラー 第 19 章 シリアル起動 図 19.2-8 サブルーチン "DOWN LOAD" フローチャート : 同期モード時 ( 続く ) DOWN LOAD 1バイト送信(コマンド正常受信応答) ・PH4/SOT1"L"出力 ・シリアル出力許可 ・PH4/SOT1"H"出力 1バイト送信 (01H) No 受信データ有 ? ダミー受信 汎用入出力切換え(シリアル出力禁止) DOWN LOAD ダミー受信 PH4/SOT1 "反転"出力 B No 受信データ有 ? ダミー受信 PH4/SOT1 "反転"出力 A 395 第 19 章 シリアル起動 図 19.2-8 サブルーチン "DOWN LOAD" フローチャート : 同期モード時 ( 続き ) A RAMにダウンロード No 受信データ有 ? 1バイトデータ受信 ・受信データ格納アドレスインクリメント ・受信回数カウント No 受信回数=ダウンロードバイト数? B 1バイト受信 (SUMチェックデータ) No 受信データ有 ? PH4/SOT1"H"出力 ・1バイト受信データ⑬受信 ・受信データすべてを加えて下位8ビット取出し:β No ⑬=β ?(SUMチェック) EXIT 396 SUMチェックエラー 第 19 章 シリアル起動 図 19.2-9 サブルーチン " コマンドエラー " フローチャート : 同期モード時 1バイト送信(コマンド異常受信応答) コマンドエラー 送信データ作成 ・受信コマンドデータ取出し ・{(受信コマンドデータ)&(F0H)}|(04H) ・PH4/SOT1"L"出力 ・シリアル出力許可 ・PH4/SOT1"H"出力 1バイト送信 No 受信データ有 ? ダミー受信 汎用入出力切換え(シリアル出力禁止) MAIN 397 第 19 章 シリアル起動 図 19.2-10 サブルーチン "SUM チェックエラー " フローチャート : 同期モード時 1バイト送信(SUMチェック異常応答) SUMチェックエラ- 送信データ作成 ・受信コマンドデータ取出し ・{(受信コマンドデータ)&(F0H)}|(02H) ・PH4/SOT1"L"出力 ・シリアル出力許可 ・PH4/SOT1"L"出力 1バイト送信 No 受信データ有 ? ダミー受信 汎用入出力切換え(シリアル出力禁止) MAIN 図 19.2-11 サブルーチン "RESET" フローチャート : 同期モード時 1バイト送信(RESETコマンド受信応答) RESET ・PH4/SOT1"L"出力 ・シリアル出力許可 ・PH4/SOT1"H"出力 1バイト送信(11H) No 受信データ有 ? ダミー受信 汎用入出力切換え(シリアル出力禁止) MAIN 398 付録 付録には , I/O マップ , 割込みベクタ , 各 CPU ス テートにおける端子状態 , リトルエンディアン領域 を利用する際の注意事項および命令一覧を掲載し ます。 付録 A I/O マップ 付録 B 割込みベクタ 付録 C 各 CPU ステートにおける端子状態 付録 D リトルエンディアン領域を利用する際の注意事項 付録 E 命令一覧 399 付録 付録 A I/O マップ 付図 A-1 に I/O マップの見方 , 付表 A-1 に I/O マップ ( メモリ空間領域と周辺リソー スの各レジスタの対応 ) を示します。 ■ I/O マップの見方 付図 A-1 I/O マップの見方 アドレス 000000 H +0 PDR3 [R/W] XXXXXXXX レジスタ +1 +2 ____ PDR2 [R/W] XXXXXXXX ブロック +3 ____ ポートデータレジスタ リード/ライト属性 リセット後のレジスタ初期値 レジスタ名(1コラムのレジスタが4n番地、2コラムが4n+2番地・・・) 最左のレジスタ番地(ワードでアクセスした際は、1コラム目のレジスタがデータのMSB側となる。) <注意事項> レジスタのビット値は , 以下のように初期値を表します。 "1" : 初期値 "1" "0" : 初期値 "0" "X" : 初期値 "X" "-" : その位置に物理的にレジスタがない 400 付録 A I/O マップ ■ I/O マップ 付表 A-1 I/O マップ (1 / 6) アドレス レジスタ +0 +1 000000 H PDR3 [R/W] XXXXXXXX PDR2 [R/W] XXXXXXXX 000004 H − PDR6 [R/W] XXXXXXXX 000008 H +2 PDR5 [R/W] XXXXXXXX PDR4 [R/W] XXXXXXXX PDR8 [R/W] -XXXXXXX − 000010 H PDRF [R/W] ---XXXXX PDRE [R/W] XXXXXXXX PDRD [R/W] XXXXXXXX PDRC [R/W] XXXXXXXX 000014 H PDRJ [R/W] ------11 PDRI [R/W] --XXXXXX PDRH [R/W] --XXXXXX PDRG [R/W] --XXXXXX − PDRL [R/W] XXXXXXXX PDRK [R/W] XXXXXXXX 000018 H ブロック − − 00000C H +3 ポートデータ レジスタ 00001C H SSR0 [R/W,R] 00001000 SIDR0/SODR0 [R,W] XXXXXXXX SCR0 [R/W,W] 00000100 SMR0 [R/W] 00000-00 UART0 000020 H SSR1 [R/W,R] 00001000 SIDR1/SODR1 [R,W] XXXXXXXX SCR1 [R/W,W] 00000100 SMR1 [R/W] 00000-00 UART1 000024 H SSR2 [R/W,R] 00001000 SIDR2/SODR2 [R,W] XXXXXXXX SCR2 [R/W,W] 00000100 SMR2 [R/W] 00000-00 UART2 000028 H SSR3 [R/W,R] 00001000 SIDR3/SODR3 [R,W] XXXXXXXX SCR3 [R/W,W] 00000100 SMR3 [R/W] 00000-00 UART3 TMRLR0 [W] XXXXXXXX XXXXXXXX TMR0 [R] XXXXXXXX XXXXXXXX 000030 H − TMCSR0 [R/W] ----0000 00000000 000034 H TMRLR1 [W] XXXXXXXX XXXXXXXX TMR1 [R] XXXXXXXX XXXXXXXX 000038 H − TMCSR1 [R/W] ----0000 00000000 00003C H TMRLR2 [W] XXXXXXXX XXXXXXXX TMR2 [R] XXXXXXXX XXXXXXXX 000040 H − TMCSR2 [R/W] ----0000 00000000 000044 H TMRLR3 [W] XXXXXXXX XXXXXXXX TMR3 [R] XXXXXXXX XXXXXXXX 000048 H − TMCSR3 [R/W] ----0000 00000000 00002C H 00004C H CDCR1 [R/W] 0---0000 000050 H CDCR3 [R/W] 0---0000 − CDCR0 [R/W] 0---0000 − − CDCR2 [R/W] 0---0000 − リロード タイマ 0 リロード タイマ 1 リロード タイマ 2 リロード タイマ 3 通信プリ スケーラ 1 401 付録 付表 A-1 I/O マップ (2 / 6) アドレス レジスタ +0 +1 000054 H | 000058 H +2 +3 Reserved − 00005C H RCR1 [W] 00000000 RCR0 [W] 00000000 UDCR1 [R] 00000000 UDCR0 [R] 00000000 000060 H CCRH0 [R/W] 00000000 CCRL0 [R/W,W] -000X000 − CSR0 [R/W,R] 00000000 000064 H CCRH1 [R/W] -0000000 CCRL1 [R/W,W] -000X000 − CSR1 [R/W,R] 00000000 000068 H IPCP1 [R] XXXXXXXX XXXXXXXX IPCP0 [R] XXXXXXXX XXXXXXXX 00006C H IPCP3 [R] XXXXXXXX XXXXXXXX IPCP2 [R] XXXXXXXX XXXXXXXX 000070 H ICS23 [R/W] 00000000 − − OCCP1 [R/W] XXXXXXXX XXXXXXXX OCCP0 [R/W] XXXXXXXX XXXXXXXX 000078 H OCCP3 [R/W] XXXXXXXX XXXXXXXX OCCP2 [R/W] XXXXXXXX XXXXXXXX 00007C H OCCP5 [R/W] XXXXXXXX XXXXXXXX OCCP4 [R/W] XXXXXXXX XXXXXXXX 000080 H OCCP7 [R/W] XXXXXXXX XXXXXXXX OCCP6 [R/W] XXXXXXXX XXXXXXXX 000084 H OCS2,3 [R/W] XXX00000 0000XX00 OCS0,1 [R/W] XXX00000 0000XX00 000088 H OCS6,7 [R/W] XXX00000 0000XX00 OCS4,5 [R/W] XXX00000 0000XX00 00008C H TCDT [R/W] 00000000 00000000 TCCS [R/W] 0------- 00000000 STPR0 [R/W] 0000---- STPR1 [R/W] 00000-00 000094 H GCN1 [R/W] 00110010 00010000 000098 H PTMR0 [R] 11111111 11111111 00009C H PDUT0 [W] XXXXXXXX XXXXXXXX 0000A0H PTMR1 [R] 11111111 11111111 0000A4 H PDUT1 [W] XXXXXXXX XXXXXXXX 402 8/16 ビット アップダウン カウンタ 8/16 ビット アップダウン カウンタ 16 ビット ICU ICS01 [R/W] 00000000 000074 H 000090 H ブロック 16 ビット OCU 16 ビット フリーラン タイマ STPR2 [R/W] 000000-- − ストップ レジスタ 0,1,2 − GCN2 [R/W] 00000000 PPG ctl PCSR0 [W] XXXXXXXX XXXXXXXX PCNH0 [R/W] 0000000- PCNL0 [R/W] 00000000 PCSR1 [W] XXXXXXXX XXXXXXXX PCNH1 [R/W] 0000000- PCNL1 [R/W] 00000000 PPG0 PPG1 付録 A I/O マップ 付表 A-1 I/O マップ (3 / 6) アドレス レジスタ +0 +1 0000A8 H PTMR2 [R] 11111111 11111111 0000AC H PDUT2 [W] XXXXXXXX XXXXXXXX 0000B0 H PTMR3 [R] 11111111 11111111 +2 +3 ブロック PCSR2 [W] XXXXXXXX XXXXXXXX PCNH2 [R/W] 0000000- PCNL2 [R/W] 00000000 PPG2 PCSR3 [W] XXXXXXXX XXXXXXXX PPG3 0000B4 H PDUT3 [W] XXXXXXXX XXXXXXXX 0000B8 H PTMR4 [R] 11111111 11111111 0000BC H PDUT4 [W] XXXXXXXX XXXXXXXX 0000C0 H PTMR5 [R] 11111111 11111111 0000C4 H PDUT5 [W] XXXXXXXX XXXXXXXX PCNH3 [R/W] 0000000- PCNL3 [R/W] 00000000 PCSR4 [W] XXXXXXXX XXXXXXXX PPG4 PCNH4 [R/W] 0000000- PCNL4 [R/W] 00000000 PCSR5 [W] XXXXXXXX XXXXXXXX PPG5 0000C8 H EIRR0 [R/W] 00000000 ENIR0 [R/W] 00000000 PCNH5 [R/W] 0000000- PCNL5 [R/W] 00000000 EIRR1 [R/W] 00000000 ENIR1 [R/W] 00000000 Ext int ELVR0 [R/W] 00000000 00000000 0000CC H 0000D0 H | 0000D8 H 0000DC H Reserved − − DACR2 [R/W] -------0 DACR1 [R/W] -------0 DACR0 [R/W] -------0 DADR2 [R/W] XXXXXXXX DADR1 [R/W] XXXXXXXX DADR0 [R/W] XXXXXXXX ADCS1 [R/W,W] 00000000 ADCS0 [R/W] 00000000 A/D コンバータ AICR [R/W] 00000000 アナログ 入力制御 0000E0 H − 0000E4 H ADCR [R,W] 00101-XX XXXXXXXX 0000E8 H − 0000EC H | 0000F0 H 0000F4 H ELVR1 [R/W] 00000000 00000000 Reserved − PCRI [R/W] --000000 PCRH [R/W] --000000 D/A コンバータ PCRD [R/W] 00000000 PCRC [R/W] 00000000 プルアップ 制御 403 付録 付表 A-1 I/O マップ (4 / 6) アドレス レジスタ +0 +1 0000F8 H OCRI [R/W] --000000 OCRH [R/W] --000000 0000FC H DDRF [R/W] ---00000 DDRE [R/W] 00000000 DDRD [R/W] 00000000 DDRC [R/W] 00000000 000100 H − DDRI [R/W] -0000000 DDRH [R/W] --000000 DDRG [R/W] --000000 DDRL [R/W] 00000000 DDRK [R/W] 00000000 000104 H +2 +3 オープン ドレイン制御 − − ブロック データ方向 レジスタ 000108 H | 0001FC H − 000200 H DPDP [R/W] -------- -------- -------- -0000000 000204 H DACSR [R/W] 00000000 00000000 00000000 00000000 000208 H DATCR [R/W] XXXXXXXX XXXX0000 XXXX0000 XXXX0000 00020C H | 0003E0 H − Reserved 0003E4 H ICHCR [R/W] -------- -------- -------- --000000 命令 キャッシュ 0003E8 H | 0003EC H − Reserved 0003F0 H BSD0 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX Reserved DMAC 0003F4 H BSD1 [R/W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003F8 H BSDC [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 0003FC H BSRR [R] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 000400 H ICR00 [R/W] ----1111 ICR01 [R/W] ----1111 ICR02 [R/W] ----1111 ICR03 [R/W] ----1111 000404 H ICR04 [R/W] ----1111 ICR05 [R/W] ----1111 ICR06 [R/W] ----1111 ICR07 [R/W] ----1111 000408 H ICR08 [R/W] ----1111 ICR09 [R/W] ----1111 ICR10 [R/W] ----1111 ICR11 [R/W] ----1111 404 ビットサーチ モジュール ビットサーチ モジュール 割込み制御部 付録 A I/O マップ 付表 A-1 I/O マップ (5 / 6) アドレス レジスタ +0 +1 +2 +3 00040C H ICR12 [R/W] ----1111 ICR13 [R/W] ----1111 ICR14 [R/W] ----1111 ICR15 [R/W] ----1111 000410 H ICR16 [R/W] ----1111 ICR17 [R/W] ----1111 ICR18 [R/W] ----1111 ICR19 [R/W] ----1111 000414 H ICR20 [R/W] ----1111 ICR21 [R/W] ----1111 ICR22 [R/W] ----1111 ICR23 [R/W] ----1111 000418 H ICR24 [R/W] ----1111 ICR25 [R/W] ----1111 ICR26 [R/W] ----1111 ICR27 [R/W] ----1111 00041C H ICR28 [R/W] ----1111 ICR29 [R/W] ----1111 ICR30 [R/W] ----1111 ICR31 [R/W] ----1111 000420 H ICR32 [R/W] ----1111 ICR33 [R/W] ----1111 ICR34 [R/W] ----1111 ICR35 [R/W] ----1111 000424 H ICR36 [R/W] ----1111 ICR37 [R/W] ----1111 ICR38 [R/W] ----1111 ICR39 [R/W] ----1111 000428 H ICR40 [R/W] ----1111 ICR41 [R/W] ----1111 ICR42 [R/W] ----1111 ICR43 [R/W] ----1111 00042C H ICR44 [R/W] ----1111 ICR45 [R/W] ----1111 ICR46 [R/W] ----1111 ICR47 [R/W] ----1111 000430 H DICR [R/W] -------0 HRCL [R/W] ----1111 000434 H | 00047C H STCR [R/W,W] 000111-- 000484 H GCR [R/W,R] 110011-1 WPR [W] XXXXXXXX 000488 H PCTR [R/W] 00XX0XXX 000600 H 000604 H Reserved PDRR [R/W] ----0000 CTBR [W] XXXXXXXX クロック 制御部 − PLL 制御 − 00048C H | 0005FC H 割込み制御部 ディレイ − RSRR/WTCR [R,W] 1-XXX-00 000480 H − ブロック Reserved − DDR3 [W] 00000000 DDR2 [W] 00000000 − − − DDR6 [W] 00000000 DDR5 [W] 00000000 DDR4 [W] 00000000 データ方向 レジスタ 405 付録 付表 A-1 I/O マップ (6 / 6) アドレス レジスタ +0 +1 000608 H +2 +3 DDR8 [W] -0000000 − 00060C H ASR1 [W] 00000000 00000001 AMR1 [W] 00000000 00000000 000610 H ASR2 [W] 00000000 00000010 AMR2 [W] 00000000 00000000 000614 H ASR3 [W] 00000000 00000011 AMR3 [W] 00000000 00000000 000618 H ASR4 [W] 00000000 00000100 AMR4 [W] 00000000 00000000 ASR5 [W] 00000000 00000101 AMR5 [W] 00000000 00000000 00061C H 000620 H AMD0 [R/W] ---00111 000624 H AMD5 [R/W] 000000 AMD1 [R/W] 0--00000 00062C H T-unit AMD4 [R/W] 0--00000 EPCR1 [W] -------- 11111111 Reserved − PCR6 [R/W] 00000000 − 000634 H | 0007F8 H 0007FC H データ方向 レジスタ − EPCR0 [W] ----1100 1111111 000628 H 000630 H AMD32 [R/W] 00000000 ブロック プルアップ 制御 − Reserved − − LER [W] -----000 MODR [W] XXXXXXXX リトル エンディアン レジスタ モード レジスタ ( 注 1) ライトオンリビットのあるレジスタに対して RMW 系の命令を行わないでください。 ( 注 2) RMW 系の命令 (RMW: リードモディファイライト ) AND Rj, @Ri OR Rj, @Ri EOR Rj, @Ri ANDH Rj, @Ri ORH Rj, @Ri EORH Rj, @Ri ANDB Rj, @Ri ORB Rj, @Ri EORB Rj, @Ri BANDL #u4, @Ri BORL #u4, @Ri BEORL #u4, @Ri BANDH #u4, @Ri BORH #u4, @Ri BEORH #u4, @Ri ( 注 3) Reserved または ( − ) の領域のデータは不定です。 406 付録 B 割込みベクタ 付録 B 割込みベクタ 付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには , MB91151A の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載され ています。 ■ 割込みベクタ • ICR0 ∼ ICR47: 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に 対する割込みレベルを設定します。 ICR は割込み要求の各々に対応して用意されています。 • TBR: EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。 TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベク タアドレスとなります。 TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。 1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR +(3FCH - 4 × vct) vctadr : ベクタアドレス vctofs : ベクタオフセット vct : ベクタ番号 付表 B-1 割込みベクタ (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 システム予約 9 09 − 3D8H 000FFFD8H システム予約 10 0A − 3D4H 000FFFD4H システム予約 11 0B − 3D0H 000FFFD0H システム予約 12 0C − 3CCH 000FFFCCH システム予約 13 0D − 3C8H 000FFFC8H 407 付録 付表 B-1 割込みベクタ (2 / 3) 割込み要因 割込み番号 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 未定義命令例外 14 0E − 3C4H 000FFFC4H システム予約 15 0F − 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 外部割込み 8 ∼ 15 24 18 ICR08 39CH 000FFF9CH システム予約 25 19 ICR09 398H 000FFF98H UART0( 受信完了 ) 26 1A ICR10 394H 000FFF94H UART1( 受信完了 ) 27 1B ICR11 390H 000FFF90H UART2( 受信完了 ) 28 1C ICR12 38CH 000FFF8CH UART3( 受信完了 ) 29 1D ICR13 388H 000FFF88H システム予約 30 1E ICR14 384H 000FFF84H UART0( 送信完了 ) 31 1F ICR15 380H 000FFF80H UART1( 送信完了 ) 32 20 ICR16 37CH 000FFF7CH UART2( 送信完了 ) 33 21 ICR17 378H 000FFF78H UART3( 送信完了 ) 34 22 ICR18 374H 000FFF74H システム予約 35 23 ICR19 370H 000FFF70H DMAC( 終了 , エラー ) 36 24 ICR20 36CH 000FFF6CH リロードタイマ 0 37 25 ICR21 368H 000FFF68H リロードタイマ 1 38 26 ICR22 364H 000FFF64H リロードタイマ 2 39 27 ICR23 360H 000FFF60H リロードタイマ 3 40 28 ICR24 35CH 000FFF5CH システム予約 41 29 ICR25 358H 000FFF58H A/D 42 2A ICR26 354H 000FFF54H PPG0 43 2B ICR27 350H 000FFF50H PPG1 44 2C ICR28 34CH 000FFF4CH PPG2 45 2D ICR29 348H 000FFF48H PPG3 46 2E ICR30 344H 000FFF44H PPG4 47 2F ICR31 340H 000FFF40H PPG5 48 30 ICR32 33CH 000FFF3CH U/D カウンタ 0( コンペア / アンダフロー , オーバフロー , アップダウン反転 ) 49 31 ICR33 338H 000FFF38H 408 付録 B 割込みベクタ 付表 B-1 割込みベクタ (3 / 3) 割込み要因 割込み番号 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 U/D カウンタ 1( コンペア / アンダフロー , オーバフロー , アップダウン反転 ) 50 32 ICR34 334H 000FFF34H ICU0 ( 取込み ) 51 33 ICR35 330H 000FFF30H ICU1 ( 取込み ) 52 34 ICR36 32CH 000FFF2CH ICU2 ( 取込み ) 53 35 ICR37 328H 000FFF28H ICU3 ( 取込み ) 54 36 ICR38 324H 000FFF24H OCU0 ( 一致 ) 55 37 ICR39 320H 000FFF20H OCU1 ( 一致 ) 56 38 ICR40 31CH 000FFF1CH OCU2 ( 一致 ) 57 39 ICR41 318H 000FFF18H OCU3 ( 一致 ) 58 3A ICR42 314H 000FFF14H OCU4/5 ( 一致 ) 59 3B ICR43 310H 000FFF10H OCU6/7 ( 一致 ) 60 3C ICR44 30CH 000FFF0CH システム予約 61 3D ICR45 308H 000FFF08H 16 ビットフリーランタイマ 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 INT 命令で使用 80 | 255 50 | FF − 2BCH | 000H 000FFEBCH | 000FFC00H * : REALOS/FR は , システムコード用に 0x40, 0x41 の割込みを使用します。 409 付録 付録 C 各 CPU ステートにおける端子状態 付表 C-1 に端子状態の用語の説明 , 付表 C-2 ∼付表 C-4 に各 CPU ステートにおけ る端子状態の一覧を示します。 ■ 端子状態表の用語 端子の状態に対する語句の意味を , 付表 C-1 に示します。 付表 C-1 端子状態の用語 用語 説明 入力可能 入力機能が使用可能な状態であることを意味する。 入力 0 固定 端子からすぐの入力ゲートで外部入力を遮断して内部へ "0" を伝えている状 態。 出力 Hi-Z 端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンス (HiZ) にすることを意味する。 出力保持 本モードになる直前に出力していた状態をそのまま出力することを意味する。 つまり , 出力のある内蔵周辺が v 動作中であればその内蔵周辺に従い出力を行 い , ポート等として出力している場合にはその出力を保持する。 直前の状態を保持 本モードになる直前に出力していた状態をそのまま出力 , または入力であれば 入力可能を意味する。 ■ 各 CPU ステートにおける端子状態 付表 C-2 外バス 16 ビットモード (1 / 3) 端子名 機能 P20 ∼ P27 D16 ∼ D23 P30 ∼ P37 D24 ∼ D31 P40 ∼ P47 A00 ∼ A07 P50 ∼ P57 A08 ∼ A15 P60 ∼ P67 A16 ∼ A23 P80 RDY P81 BGRNT 410 スリープ時 ストップ時 バス開放 (STCR:HIZX=0) (STCR:HIZX=1) (BGRNT="L") 出力保持 or Hi-Z 同左 出力保持 ( アドレス 出力 ) 同左 出力 Hi-Z/ 出力 Hi-Z 入力 0 固定 リセット時 出力 Hi-Z/ 全端子 入力可能 FFH 出力 P: 直前状態 同左 保持 F: アドレス 出力 P: 直前状態 直前状態 保持 / 保持 F:RDY 入力 入力 0 固定 P: 直前状態 出力 Hi-Z/ 保持 全端子 F:RDY 入力 入力可能 P: 直前状態 保持 F:H 出力 L 出力 備考 付録 C 各 CPU ステートにおける端子状態 付表 C-2 外バス 16 ビットモード (2 / 3) ストップ時 バス開放 (STCR:HIZX=0) (STCR:HIZX=1) (BGRNT="L") 端子名 機能 スリープ時 P82 BRQ P: 直前状態 直前状態 保持 / 保持 F:BRQ 入力 入力 0 固定 P83 RD P84 WR0 P85 WR1 P: 直前状態 保持 F:H 出力 P86 CLK P: 直前状態 保持 F:CLK 出力 直前状態 保持 PC0 ∼ PC3 INT0 ∼ INT3 直前状態 保持 PC4 INT4/CS0 PD0 AIN0/INT8 PD1 BIN0/INT9 PD2 AIN1/INT10 PD3 BIN1/INT11 PD4 ZIN0/INT12 PD5 ZIN1/INT13 PD6 DEOP2/INT14 PD7 ATG/INT15 PE0 ∼ PE7 OC0 ∼ OC7 PF0 ∼ PF3 IN0 ∼ IN3 PF4 ポート 出力 Hi-Z/ BRQ 入力 入力 0 固定 入力可能 P: 直前状態 保持 PC5 ∼ PC7 INT5 ∼ INT7/ F:CS 出力 CS1 ∼ CS3 直前状態 保持 直前状態 保持 / 入力 0 固定 リセット時 備考 出力 Hi-Z/ 全端子 入力可能 出力 Hi-Z H 出力 CLK 出力 CLK 出力 入力可能 直前状態 保持 出力 Hi-Z/ 全端子 入力可能 出力 Hi-Z/ 入力可能 直前状態 CS 出力 保持 CS 出力時は Hi-Z 入力可能 直前状態 保持 出力 Hi-Z/ 全端子 入力可能 出力 Hi-Z/ 入力 0 固定 PG0 ∼ PG5 PPG0 ∼ PPG5 PJ0 ポート PJ1 PI0 ポート SIN2 PI1 SOT2 PI2 SCK/TO2 PI3 SIN3 PI4 SOT3 PI5 SCK3/TO3 PH0 SIN0 PH1 SOT0 PH2 SCK0/TO0 PH3 SIN1 411 付録 付表 C-2 外バス 16 ビットモード (3 / 3) 端子名 機能 スリープ時 PH4 SOT1 PH5 SCK1/TO1 直前状態 保持 PK0 ∼ PK7 AN0 ∼ AN7 PL0 DREQ0 PL1 DACK0 PL2 DEOP0 PL3 DREQ1 PL4 DACK1 PL5 DEOP1 PL6 DREQ2 PL7 DACK2 P: 汎用ポート選択時 , F: 指定機能選択時 412 ストップ時 バス開放 (STCR:HIZX=0) (STCR:HIZX=1) (BGRNT="L") 直前状態 保持 / 入力 0 固定 出力 Hi-Z/ 直前状態 入力 0 固定 保持 リセット時 出力 Hi-Z/ 全端子 入力可能 備考 付録 C 各 CPU ステートにおける端子状態 付表 C-3 外バス 8 ビットモード (1 / 2) スリープ時 ストップ時 バス開放 (STCR:HIZX=0) (STCR:HIZX=1) (BGRNT="L") 端子名 機能 P20 ∼ P27 ポート 直前状態保 持 同左 P30 ∼ P37 D24 ∼ D31 出力保持 or Hi-Z 同左 P40 ∼ P47 A0 ∼ A7 P50 ∼ P57 A8 ∼ A15 P60 ∼ P67 A16 ∼ A23 P80 RDY P81 備考 出力 Hi-Z/ 直前状態保持 出力 Hi-Z/ 入力 0 固定 全端子入力可 能 出力 Hi-Z 出力保持 同左 ( アドレス出 力) P: 直前状態 保持 F: アドレス 出力 リセット時 FFH 出力 同左 P: 直前状態 直前状態保 持/ 保持 F:RDY 入力 入力 0 固定 P: 直前状態保 出力 Hi-Z/ 持 全端子入力可 F:RDY 入力 能 BGRNT P: 直前状態 保持 F:H 出力 L 出力 P82 BRQ P: 直前状態 保持 F:BRQ 入力 BRQ 入力 P83 RD 出力 Hi-Z P84 WR0 直前状態 保持 P85 ポート H 出力 直前状態保持 出力 Hi-Z/ 全端子入力可 能 P86 PC0 ∼ PC3 CLK P: 直前状態 保持 F:CLK 出力 INT0 ∼ INT3 直前状態保 持 PC4 INT4/CS0 PC5 ∼ PC7 CLK 出力 入力可能 入力可能 P: 直前状態 保持 出力 Hi-Z INT5/ CS1 ∼ CS3 F:CS 出力 入力可能 PD0 AIN0/INT8 入力可能 PD1 BIN0/INT9 直前状態 保持 PD2 AIN1/INT10 PD3 BIN1/INT11 PD4 ZIN0/INT12 PD5 ZIN1/INT13 PD6 DEOP2/INT14 PD7 ATG/INT15 CLK 出力 直前状態保持 出力 Hi-Z/ 全端子入力可 能 直前状態保持 CS 出力 /CS 出力時は Hi-Z 直前状態保持 出力 Hi-Z/ 全端子入力可 能 413 付録 付表 C-3 外バス 8 ビットモード (2 / 2) 端子名 機能 PE0 ∼ PE7 OC0 ∼ OC7 PF0 ∼ PF3 IN0 ∼ IN3 PF4 ポート スリープ時 直前状態 保持 PG0 ∼ PG5 PPG0 ∼ PPG5 PJ0 ポート PJ1 PI0 ポート SIN2 PI1 SOT2 PI2 SCK2/TO2 PI3 SIN3 PI4 SOT3 PI5 SCK3/TO3 PH0 SIN0 PH1 SOT0 PH2 SCK0/TO0 PH3 SIN1 PH4 SOT1 PH5 SCK1/TO1 PK0 ∼ PK7 AN0 ∼ AN7 PL0 DREQ0 PL1 DACK0 PL2 DEOP0 PL3 DREQ1 PL4 DACK1 PL5 DEOP1 PL6 DREQ2 PL7 DACK2 P: 汎用ポート選択時 , F: 指定機能選択時 414 ストップ時 バス開放 (STCR:HIZX=0) (STCR:HIZX=1) (BGRNT="L") リセット時 直前状態保 出力 Hi-Z/ 直前状態保持 出力 Hi-Z/ 持/ 入力 0 固定 全端子入力可 入力 0 固定 能 備考 − 付録 C 各 CPU ステートにおける端子状態 付表 C-4 シリアル起動モード (1 / 2) 端子名 機能 P20 ∼ P27 ポート P30 ∼ P37 スリープ時 直前状態 保持 P40 ∼ P47 ストップ時 (STCR:HIZX=0) (STCR:HIZX=1) 直前状態 出力 Hi-Z/ 保持 / 入力 0 固定 入力 0 固定 ―― − リセット時 出力 Hi-Z/ 全端子 入力可能 備考 − P50 ∼ P57 P60 ∼ P67 P80 P81 P82 P83 P84 P85 P86 CLK PC0 ∼ PC7 INT0 ∼ INT7 PD0 AIN0/INT8 PD1 BIN0/INT9 PD2 AIN1/INT10 PD3 BIN1/INT11 PD4 ZIN0/INT12 PD5 ZIN1/INT13 PD6 DEOP2/INT14 PD7 ATG/INT15 PE0 ∼ PE7 OC0 ∼ OC7 PF0 ∼ PF3 IN0 ∼ IN3 PF4 ポート 入力可能 入力可能 直前状態保 出力 Hi-Z/ 持/ 入力 0 固定 入力 0 固定 PG0 ∼ PG5 PPG0 ∼ PPG5 PJ0 ポート PJ1 PI0 ポート SIN2 PI1 SOT2 PI2 SCK2/TO2 PI3 SIN3 PI4 SOT3 PI5 SCK3/TO3 PH0 SIN0 PH1 SOT0 PH2 SCK0/TO0 PH3 SIN1 PH4 SOT1 P: 汎用ポート選択時 , F: 指定機能選択時 415 付録 付表 C-4 シリアル起動モード (2 / 2) 端子名 機能 PH5 SCK1/TO1 PK0 ∼ PK7 スリープ時 直前状態 AN0 ∼ AN7 保持 PL0 DREQ0 PL1 DACK0 PL2 DEOP0 PL3 DREQ1 PL4 DACK1 PL5 DEOP1 PL6 DREQ2 PL7 DACK2 P: 汎用ポート選択時 , F: 指定機能選択時 416 ストップ時 (STCR:HIZX=0) (STCR:HIZX=1) 直前状態保 出力 Hi-Z/ 持/ 入力 0 固定 入力 0 固定 ―― − リセット時 出力 Hi-Z/ 全端子 入力可能 備考 − 付録 D リトルエンディアン領域を利用する際の注意事項 付録 D リトルエンディアン領域を利用する際の注意事項 ここでは , リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明 します。 D.1 C コンパイラ (fcc911) D.2 アセンブラ (fasm911) D.3 リンカ (flnk911) D.4 デバッガ (sim911, eml911, mon911) 417 付録 D.1 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(); ... } ■ 構造体代入 構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造 体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を 行うと , 正しい結果が得られません。 構造体のメンバをそれぞれ代入してください。 418 付録 D リトルエンディアン領域を利用する際の注意事項 [ 例 ] リトルエンディアン領域の構造体変数 little_st に構造体代入する場合 struct tag { char c; int i; } normal_st; extern struct tag little_st; #define STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i; void main(void) { STRMOVE(little_st,normal_st); } また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと きには , 前述の方法においても正しい結果が得られません。 構造体のメンバの配置が一致しないときは,リトルエンディアン領域に構造体変数を配 置しないでください。 ■ 文字列操作関数を使った文字型配列以外の操作 標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま す。このため , リトルエンディアン領域に配置された char, unsigned char, signed char 型 以外の型を持つ領域に対し , 文字列操作関数を使った処理を行うと , 正しい結果が得ら れません。 このような処理は行わないでください。 [ 不具合例 ] memcpy でのワードデータの転送 int big = 0x01020304; /* ビッグエンディアン領域 */ extern int little; /* リトルエンディアン領域 */ memcpy(&little,&big,4); /* memcpy による転送 */ 上記の実行結果は次のようになり , ワードデータの転送結果としては誤りになります。 ( ビッグエンディアン領域 ) 01 02 03 04 → memcpy → ( 正しい結果 ) ( リトルエンディアン領域 ) 01 02 03 04 04 03 02 01 ■ 文字列操作関数使用時の -K lib オプションの指定 -K lib オプションを指定すると , コンパイラはいくつかの文字列操作関数に対し , イン ライン展開を行います。このとき , 最適な処理を選択するためハーフワードまたはワー ドごとの処理に変更される場合があります。 このため , リトルエンディアン領域に対する処理が正しく実行されません。 リトルエンディアン領域に対し文字列操作関数を使った処理を行っているときは , -K lib オプションを指定しないでください。 -K lib オプションを包含する -O4 オプションや , -K speed オプションも同様に指定しな いでください。 419 付録 ■ 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 型データの転送 /* */ 上記の実行結果は次のようになり , double 型データの転送結果としては誤りになりま す。 3f ( ビッグエンディアン領域 ) f0 00 00 00 00 00 00 → ( 正しい結果 ) 00 ( リトルエンディアン領域 ) 00 f0 3f 00 00 00 00 00 00 3f 00 00 00 00 f0 ■ スタックのリトルエンディアン領域への配置 リトルエンディアン領域にスタックの一部または全部が配置された場合,動作を保証し ません。 420 付録 D リトルエンディアン領域を利用する際の注意事項 D.2 アセンブラ (fasm911) FR ファミリのアセンブラ言語でプログラミングをする場合 , リトルエンディアン領 域に関して注意して頂きたい項目を以下に示します。 • セクション • データのアクセス ■ セクション リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク ションとして定義してください。 もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど の指定をした場合には , MB91151A でのアクセス動作は保証できなくなります。 [例] /* 正しいリトルエンディアン領域のセクション定義 */ .SECTION Little_Area, DATA, ALIGN=4 Little_Word: .RES.W 1 Little_Half:・ .RES.H 1 Little_Byte: .RES.B 1 421 付録 ■ データのアクセス リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー タへのアクセスは , 必ずデータサイズと同じサイズでアクセスしてください。 [例] LDI #0x01020304, r0 LDI #Little_Word, r1 LDI #0x0102, r2 LDI #Little_Half, r3 LDI #0x01, r4 LDI #Little_Byte, r5 /* 32 ビットデータは , ST 命令 ( や LD 命令など ) でアクセスします。*/ ST r0, @r1 /* 16 ビットデータは , STH 命令 ( や LDH 命令など ) でアクセスします。*/ STH r2, @r3 /* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/ STB r4, @r5 MB91151A でデータサイズと異なるサイズでアクセスした場合には , その値の保証は できません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使っ て一度にアクセスした場合には , データの値の保証はできません。 422 付録 D リトルエンディアン領域を利用する際の注意事項 D.3 リンカ (flnk911) リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ ン配置で注意する項目を以下に示します。 • セクション種別の制限 • エラーの未検出 ■ セクション種別の制限 リトルエンディアン領域には,初期値なしデータセクションのみ配置することができま す。 リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス 解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。 ■ エラーの未検出 リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ アン領域に配置したセクションの内容を十分にご確認のうえご使用ください。 423 付録 D.4 デバッガ (sim911, eml911, mon911) シミュレータデバッガとエミュレータデバッガ / モニタデバッガでの注意事項につい て説明します。 ■ シミュレータデバッガ リトルエンディアン領域を示すようなメモリ空間指定コマンドはありません。 したがって , メモリ操作コマンドや , メモリを操作する命令実行は , ビッグエンディア ンとして扱われます。 ■ エミュレータデバッガ / モニタデバッガ 以下のコマンドでリトルエンディアン領域をアクセスした場合に,正常な値として扱わ れませんので注意してください。 ● set memory/show memory/enter/examine/set watch コマンド 浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定 / 表示ともにでき ません。 ● search memory コマンド ハーフワード, ワードのデータの検索を行った場合,指定した値で検索が行われません。 ● 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む ) 正常な命令コードが設定 / 表示ともにできません ( リトルエンディアン領域には , 命令 コードを配置しないようにしてください )。 ● call/show call コマンド スタック領域が , リトルエンディアン領域に置かれた場合 , 正常に動作しません ( リト ルエンディアン領域にスタック領域を配置しないようにしてください )。 424 付録 E 命令一覧 付録 E 命令一覧 FR ファミリの命令一覧表を示します。その前に , 命令一覧を理解するために次の事 項について説明します。 • 命令一覧表の読み方 • アドレッシングモードの記号 • 命令フォーマット ■ 命令一覧表の読み方 ニーモニック ADD *ADD Rj, #s5, , , ↓ 1) ↓ 2) Rj Rj 型 OP CYCLE NZVC A C , , AG A4 , , 1 1 , , CCCC CCCC , , ↓ 3) ↓ 4) ↓ 5) ↓ 6) 動作 Ri + Rj Ri + s5 , , 備考 → Rj → Ri ↓ 7) 1) 命令名が示されています。 - * 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。 2) オペランドに指定可能なアドレッシングモードを記号で示されています。 - 記号の意味は ,「■アドレッシングモードの記号」を参照してください。 3) 命令フォーマットが示されています。 4) 命令コードが 16 進数表示されています。 5) マシンサイクル数を表しています。 - a: メモリアクセスサイクルであり , レディ機能により延びる可能性があります。 - b: メモリアクセスサイクルであり , レディ機能により延びる可能性があります。 ただし , LD 動作の対象となるレジスタを直後の命令が参照する場合には , イン タロックがかかり , 実行サイクル数が+ 1 増加します。 - c: 直後の命令が , R15, SSP または USP に対し , 読出しまたは書込みを行う命令で あるとき , または命令フォーマット A の命令であるとき , インタロックがかか り , 実行サイクル数は+ 1 増加して 2 となります。 - d: 直後の命令が MDH/MDL を参照する場合 , インタロックがかかり , 実行サイク ル数は増加して 2 となります。 - a, b, c, d とも最小は 1 サイクルです。 425 付録 6) フラグ変化を表しています。 フラグ変化 フラグの意味 C ・・・ 変化する N ・・・ ネガティブフラグ - ・・・ 変化しない Z ・・・ ゼロフラグ 0 ・・・ クリア V ・・・ オーバフラグ 1 ・・・ セット C ・・・ キャリフラグ 7) 命令動作が表記されています。 ■ アドレッシングモードの記号 付表 E-1 アドレッシングモードの記号説明 (1 / 2) 記号 意味 Ri レジスタ直接 (R0 ∼ R15, AC, FP, SP) Rj レジスタ直接 (R0 ∼ R15, AC, FP, SP) R13 レジスタ直接 (R13, AC) Ps レジスタ直接 ( プログラムステータスレジスタ ) Rs レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL) Cri レジスタ直接 (CR0 ∼ CR15) CRj レジスタ直接 (CR0 ∼ CR15) #i8 符号なし 8 ビット即値 (-128 ∼ 255) ( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。 #i20 符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF) ( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。 #i32 符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF) ( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF として扱います。 #s5 符号付き 5 ビット即値 (-16 ∼ 15) #s10 符号付き 10 ビット即値 (-512 ∼ 508 4 の倍数のみ ) #u4 符号なし 4 ビット即値 (0 ∼ 15) #u5 符号なし 5 ビット即値 (0 ∼ 31) #u8 符号なし 8 ビット即値 (0 ∼ 255) #u10 符号なし 10 ビット即値 (0 ∼ 1020 4 の倍数のみ ) @dir8 符号なし 8 ビット直接アドレス (0 ∼ 0XFF) @dir9 符号なし 9 ビット直接アドレス (0 ∼ 0X1FE 2 の倍数のみ ) @dir10 符号なし 10 ビット直接アドレス (0 ∼ 0X3FC 4 の倍数のみ ) label9 符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC 2 の倍数のみ ) 426 付録 E 命令一覧 付表 E-1 アドレッシングモードの記号説明 (2 / 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) レジスタリスト 427 付録 ■ 命令フォーマット 付表 E-2 命令フォーマット 型 命令フォーマット MSB LSB 16bit A B 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 s5/u5 Ri 7 5 4 OP u8/re18/dir/ reglist 8 8 D E F 428 OP SUB-OP Ri 8 4 4 OP rel11 5 11 付録 E 命令一覧 E.1 FR ファミリの命令一覧表 FR ファミリの命令一覧表を下記の命令順に記載します。 ■ FR ファミリの命令一覧表 付表 E-3 加減算命令 付表 E-4 比較演算命令 付表 E-5 論理演算命令 付表 E-6 ビット操作命令 付表 E-7 乗除算命令 付表 E-8 シフト命令 付表 E-9 即値セット /16 ビット /32 ビット即値転送命令 付表 E-10 メモリロード命令 付表 E-11 メモリストア命令 付表 E-12 レジスタ間転送命令 付表 E-13 通常分岐 ( 遅延なし ) 命令 付表 E-14 遅延分岐命令 付表 E-15 その他の命令 付表 E-16 20 ビット通常分岐マクロ命令 付表 E-17 20 ビット遅延分岐マクロ命令 付表 E-18 32 ビット通常分岐マクロ命令 付表 E-19 32 ビット遅延分岐マクロ命令 付表 E-20 ダイレクトアドレッシング命令 付表 E-21 リソース命令 付表 E-22 コプロセッサ制御命令 429 付録 ■ 加減算命令 付表 E-3 加減算命令 ニーモニック 型 OP CYCLE NZVC ADD Rj, Ri *ADD #s5, Ri A C' A6 A4 1 1 CCCC CCCC ADD #u4, ADD2 #u4, C C A4 A5 1 1 CCCC CCCC A A7 1 ADDN Rj, Ri *ADDN #s5, Ri A C' A2 A0 ADDN #u4, ADDN2 #u4, C C ADDC Rj, SUB Ri Ri Ri Ri Ri 動作 備考 Ri + Rj Ri + s5 → Ri → Ri CCCC アセンブラでは上位 1 ビットを符号と見る Ri + extu(i4) → Ri ゼロ拡張 Ri + extu(i4) → Ri マイナス拡張 Ri + Rj + c → Ri キャリ付き加算 1 1 ------- Ri + Rj Ri + s5 → Ri → Ri A0 A1 1 1 ------- アセンブラでは上位 1 ビットを符号と見る Ri + extu(i4) → Ri ゼロ拡張 Ri + extu(i4) → Ri マイナス拡張 Rj, Ri A AC 1 CCCC Ri - Rj → Ri SUBC Rj, Ri A AD 1 CCCC Ri - Rj - c → Ri キャリ付き減算 SUBN Rj, Ri A AE 1 ---- Ri - Rj → Ri ■ 比較演算命令 付表 E-4 比較演算命令 ニーモニック 型 OP CYCLE NZVC 動作 CMP *CMP Rj, Ri #s5, Ri A C' AA A8 1 1 CCCC CCCC Ri - Rj Ri - s5 CMP CMP2 #u4, Ri #u4, Ri C C A8 A9 1 1 CCCC CCCC Ri - extu(i4) Ri - extu(i4) 型 OP CYCLE NZVC 備考 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 ■ 論理演算命令 付表 E-5 論理演算命令 ニーモニック 動作 AND AND ANDH ANDB Rj, Rj, Rj, Rj, Ri @Ri @Ri @Ri A A A A 82 84 85 86 1 1+2a 1+2a 1+2a CC-CC-CC-CC-- Ri (Ri) (Ri) (Ri) OR OR ORH ORB Rj, Rj, Rj, Rj, Ri @Ri @Ri @Ri A A A A 92 94 95 96 1 1+2a 1+2a 1+2a CC-CC-CC-CC-- EOR EOR EORH EORB Rj, Rj, Rj, Rj, Ri @Ri @Ri @Ri A A A A 9A 9C 9D 9E 1 1+2a 1+2a 1+2a CC-CC-CC-CC-- 430 &= &= &= &= 備考 Rj Rj Rj Rj ワード ワード ハーフワード バイト Ri | = (Ri) | = (Ri) | = (Ri) | = Rj Rj Rj Rj ワード ワード ハーフワード バイト Ri ^ = (Ri) ^ = (Ri) ^ = (Ri) ^ = Rj Rj Rj Rj ワード ワード ハーフワード バイト 付録 E 命令一覧 ■ ビット操作命令 付表 E-6 ビット操作命令 型 OP CYCLE NZVC BANDL #u4, @Ri BANDH #u4, @Ri *BAND #u8, @Ri*1 C C 80 81 1+2a 1+2a ---- (Ri)&=(0xF0+u4) ---- (Ri)&=((u4<<4)+0x0F) ---- (Ri)&=u8 下位 4 ビットを操作 上位 4 ビットを操作 BORL BORH *BOR #u4, @Ri #u4, @Ri #u8, @Ri*2 C C 90 91 1+2a 1+2a ---------- (Ri) | = u4 (Ri) | = (u4<<4) (Ri) | = u8 下位 4 ビットを操作 上位 4 ビットを操作 BEORL #u4, @Ri BEORH #u4, @Ri *BEOR #u8, @Ri*3 C C 98 99 1+2a 1+2a ---------- (Ri) ^ = u4 (Ri) ^ = (u4<<4) (Ri) ^ = u8 下位 4 ビットを操作 上位 4 ビットを操作 BTSTL #u4, @Ri BTSTH #u4, @Ri C C 88 89 2+a 2+a 0C-CC-- (Ri) & u4 (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 の両方を生成する場合もあります。 ■ 乗除算命令 付表 E-7 乗除算命令 ニーモニック 型 OP CYCLE NZVC MUL MULU MULH MULUH Rj,Ri Rj,Ri Rj,Ri Rj,Ri A A A A AF AB BF BB 5 5 3 3 CCCCCCCC-CC-- DIV0S DIV0U DIV1 DIV2 DIV3 DIV4S *DIV Ri Ri Ri Ri*3 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 -------C-C -C-C -------C-C 33 -C-C Ri*1 *DIVU Ri*2 動作 Ri Ri Ri Ri * * * * Rj Rj Rj Rj → → → → 備考 MDH,MDL MDH,MDL MDL MDL 32bit*32bit=64bit 符号なし 16bit*16bit=32bit 符号なし ステップ演算 32bit/32bit=32bit MDL MDL MDL MDL / % / % Ri Ri Ri Ri → → → → MDL , MDH MDL , MDH *1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。 *2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。 *3:DIV2 命令の後には , 必ず DIV3 命令を置いてください。 431 付録 ■ シフト命令 付表 E-8 シフト命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 LSL *LSL LSL LSL2 Rj, Ri A #u5, Ri (u5:0 ∼ 31) C' #u4, Ri C #u4, Ri C B6 B4 B4 B5 1 1 1 1 CC-C CC-C CC-C CC-C Ri Ri Ri Ri << Rj → Ri << u5 → Ri << u4 → Ri <<(u4+16) → Ri 論理シフト LSR *LSR LSR LSR2 Rj, Ri A #u5, Ri (u5:0 ∼ 31) C' #u4, Ri C #u4, Ri C B2 B0 B0 B1 1 1 1 1 CC-C CC-C CC-C CC-C Ri Ri Ri Ri >> Rj → Ri >> u5 → Ri >> u4 → Ri >>(u4+16) → Ri 論理シフト ASR *ASR ASR ASR2 Rj, Ri A #u5, Ri (u5:0 ∼ 31) C' #u4, Ri C #u4, Ri C BA B8 B8 B9 1 1 1 1 CC-C CC-C CC-C CC-C Ri Ri Ri Ri >> Rj → Ri >> u5 → Ri >> u4 → Ri >>(u4+16) → Ri 算術シフト ■ 即値セット /16 ビット /32 ビット即値転送命令 付表 E-9 即値セット /16 ビット /32 ビット即値転送命令 型 OP CYCLE NZVC ニーモニック LDI:32 #i32, Ri LDI:20 #i20, Ri LDI:8 #i8, Ri *LDI # {i8 | i20 | i32} ,Ri*1 E 9F-8 C 9B B C0 3 2 1 ---------- 動作 i32 → Ri i20 → Ri i8 → Ri {i8 | i20 | i32} 備考 上位 12 ビットはゼロ拡張 上位 24 ビットはゼロ拡張 → Ri *1: 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。 即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。 ■ メモリロード命令 付表 E-10 メモリロード命令 ニーモニック 型 OP CYCLE NZVC LD LD LD LD LD LD LD @Rj, Ri @(R13,Rj), Ri @(R14,disp10), Ri @(R15,udisp6), Ri @R15+, Ri @R15+, Rs @R15+, PS A 04 A 00 B 20 C 03 E 07-0 E 07-8 E 07-9 LDUH LDUH LDUH @Rj, Ri @(R13,Rj), Ri @(R14,disp9), Ri A A B LDUB LDUB LDUB @Rj, Ri @(R13,Rj), Ri @(R14,disp8), Ri A A B 動作 備考 b b b b b b 1+a+b ------------------CCCC (Rj) → Ri (R13+Rj) → Ri (R14+disp10) → Ri (R15+udisp6) → Ri (R15) → Ri,R15+=4 (R15) → Rs, R15+=4 Rs: 特殊レジスタ *1 (R15) → PS, R15+=4 05 01 40 b b b ---------- (Rj) → Ri (R13+Rj) → Ri (R14+disp9) → Ri ゼロ拡張 ゼロ拡張 ゼロ拡張 06 02 60 b b b ---------- (Rj) → Ri (R13+Rj) → Ri (R14+disp8) → Ri ゼロ拡張 ゼロ拡張 ゼロ拡張 *1: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL ( 注意事項 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま す。 disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。 udisp6/4 → o4 udisp6 は , 符号なしです。 432 付録 E 命令一覧 ■ メモリストア命令 付表 E-11 メモリストア命令 ニーモニック ST ST ST ST ST ST ST Ri, Ri, Ri, Ri, Ri, Rs, PS, STH STH STH STB STB STB @Rj @(R13,Rj) @(R14,disp10) @(R15,udisp6) @-R15 @-R15 @-R15 型 OP CYCLE NZVC 動作 備考 A 14 A 10 B 30 C 13 E 17-0 E 17-8 E 17-9 a a a a a a a ---------------------- Ri → (Rj) Ri → (R13+Rj) Ri → (R14+disp10) Ri → (R15+udisp6) R15-=4,Ri → (R15) R15-=4, Rs → (R15) R15-=4, PS → (R15) ワード ワード ワード Ri, @Rj Ri, @(R13,Rj) Ri, @(R14,disp9) A A B 15 11 50 a a a ---------- Ri → (Rj) Ri → (R13+Rj) Ri → (R14+disp9) ハーフワード ハーフワード ハーフワード Ri, @Rj Ri, @(R13,Rj) Ri, @(R14,disp8) A A B 16 12 70 a a a ---------- Ri → (Rj) Ri → (R13+Rj) Ri → (R14+disp8) バイト バイト バイト Rs: 特殊レジスタ *1 *1: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL ( 注意事項 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま す。 disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。 udisp6/4 → o4 udisp6 は , 符号なしです。 ■ レジスタ間転送命令 付表 E-12 レジスタ間転送命令 ニーモニック MOV MOV MOV MOV MOV Rj, Rs, Ri, PS, Ri, Ri Ri Rs Ri PS 型 OP CYCLE NZVC A 8B A B7 A B3 E 17-1 E 07-1 1 1 1 1 c ------------CCCC 動作 Rj Rs Ri PS Ri → → → → → Ri Ri Rs Ri PS 備考 汎用レジスタ間転送 Rs: 特殊レジスタ *1 Rs: 特殊レジスタ *1 *1: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL 433 付録 ■ 通常分岐 ( 遅延なし ) 命令 付表 E-13 通常分岐 ( 遅延なし ) 命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 JMP @Ri E 97-0 2 ---- Ri → PC CALL label12 F 2 ---- CALL @Ri E 97-1 2 ---- PC+2 → RP , PC+2+(label12-PC-2) → PC PC+2 → RP ,Ri → PC E 97-2 2 ---- RP → PC 3+3a ---- SSP-=4,PS → (SSP), SSP-=4,PC+2 → (SSP), 0 → I フラグ , 0 → S フラグ , (TBR+0x3FC-u8 × 4) → PC SSP-=4,PS → (SSP), エミュレータ用 SSP-=4,PC+2 → (SSP), 0 → S フラグ , (TBR+0x3D8) → PC RET INT #u8 D D0 1F INTE E 9F-3 3+3a ---- RETI E 97-3 2+2a CCCC (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 BRA BNO BEQ label9 label9 label9 D D D E0 E1 E2 2 1 2/1 ---------- BNE BC BNC BN BP BV BNV BLT BGE BLE BGT BLS BHI label9 label9 label9 label9 label9 label9 label9 label9 label9 label9 label9 label9 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 ---------------------------------------- リターン ( 注意事項 ) • サイクル数の「2/1」は , 分岐するとき 2, 分岐しないとき "1" であることを示します。 • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定します。 (label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。 • RETI 命令を実行するときは , S フラグが "0" であることが必要です。 434 付録 E 命令一覧 ■ 遅延分岐命令 付表 E-14 遅延分岐命令 ニーモニック 型 OP CYCLE NZVC 動作 JMP:D @Ri E 9F-0 1 ---- Ri → PC CALL:D label12 F 1 ---- CALL:D @Ri E 9F-1 1 ---- PC+4 → RP , PC+2+(label12-PC-2) → PC PC+4 → RP ,Ri → PC RET:D D8 E 9F-2 1 ---- RP → PC BRA:D BNO:D BEQ:D label9 label9 label9 D D D F0 F1 F2 1 1 1 ---------- BNE:D BC:D BNC:D BN:D BP:D BV:D BNV:D BLT:D BGE:D BLE:D BGT:D BLS:D BHI:D label9 label9 label9 label9 label9 label9 label9 label9 label9 label9 label9 label9 label9 D D D D D D D D D D D D D F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 1 1 1 1 1 1 1 1 1 1 1 1 1 ---------------------------------------- PC+2+(label9-PC-2) → PC 非分岐 if(Z==1) then PC+2+(label9-PC-2) → PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備考 リターン ( 注意事項 ) • ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定します。 (label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。 • 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。 • 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令です。 複数サイクル命令は置けません。 435 付録 ■ その他の命令 付表 E-15 その他の命令 ニーモニック 型 OP CYCLE NZVC 動作 備考 NOP E 9F-A 1 ---- 何も変化しない ANDCCR #u8 ORCCR #u8 D D c c CCCC CCCC CCR and u8 CCR or u8 STILM #u8 *1 83 93 D 87 1 ---- i8 → ILM ILM 即値セット A3 1 ---- R15 += s10 ADD SP 命令 1 1 1 1 ------------- 符号拡張 8 → 32bit ゼロ拡張 8 → 32bit 符号拡張 16 → 32bit ゼロ拡張 16 → 32bit (R15) → reglist, R15 インクリメント (R15) → reglist, R15 インクリメント (R15) → reglist, R15 インクリメント ADDSP #s10 D EXTSB EXTUB EXTSH EXTUH Ri Ri Ri Ri E E E E 97-8 97-9 97-A 97-B LDM0 (reglist) D 8C ---- LDM1 (reglist) D 8D ---- *LDM (reglist)*2 STM0 (reglist) D 8E ---- STM1 (reglist) D 8F ---- *STM (reglist)*3 ENTER #u10*4 LEAVE XCHB ---- ---D 0F ロードマルチ R0-R7 ロードマルチ R8-R15 ロードマルチ R0-R15 R15 ディクリメント , ストアマルチ R0-R7 reglist → (R15) R15 ディクリメント , ストアマルチ R8-R15 reglist → (R15) R15 ディクリメント , ストアマルチ R0-R15 reglist → (R15) 1+a ---- R14 → (R15 - 4), R15 - 4 → R14, R15 - u10 → R15 関数の入口処理 E 9F-9 b ---- R14 + 4 → R15, (R15 - 4) → R14 関数の出口処理 A 2a ---- Ri → TEMP セマフォ管理用 (Rj) → Ri バイトデータ TEMP → (Rj) *1: s10 はアセンブラが , s10/4 を計算して s8 にして値を設定します。s10 は符号付きです。 *2: reglist で , R0-R7 のいずれかの指定があれば , LDM0 を生成し , R8-R15 のいずれかの指定があれ ば , LDM1 を生成します。LDM0, LDM1 の両方を生成する場合もあります。 *3: reglist で , R0-R7 のいずれかの指定があれば , STM0 を生成し , R8-R15 のいずれかの指定があれ ば , STM1 を生成します。STM1, STM0 の両方を生成する場合もあります。 *4: u10 はアセンブラが , u10/4 を計算して u8 にして値を設定します。u10 は符号なしです。 ( 注意事項 ) • LDM0(reglist), LDM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき , a*(n-1)+b+1 サイクルとなります。 • STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき , a*n+1 サイクルとなります。 436 @Rj, Ri → CCR → CCR 8A 付録 E 命令一覧 ■ 20 ビット通常分岐マクロ命令 付表 E-16 20 ビット通常分岐マクロ命令 ニーモニック 動作 備考 *CALL20 label20,Ri 次の命令のアドレス→ RP, label20 → PC Ri: テンポラリレジスタ ( 参考 1 参照 ) *BRA20 *BEQ20 *BNE20 *BC20 *BNC20 *BN20 *BP20 *BV20 *BNV20 *BLT20 *BGE20 *BLE20 *BGT20 *BLS20 *BHI20 label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri 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: テンポラリレジスタ ( 参考 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: 437 付録 ■ 20 ビット遅延分岐マクロ命令 付表 E-17 20 ビット遅延分岐マクロ命令 ニーモニック 動作 備考 *CALL20:D label20,Ri 次の命令のアドレス +2 → RP, Ri: テンポラリレジスタ ( 参考 1 参照 ) label20 → PC *BRA20:D *BEQ20:D *BNE20:D *BC20:D *BNC20:D *BN20:D *BP20:D *BV20:D *BNV20:D *BLT20:D *BGE20:D *BLE20:D *BGT20:D *BLS20:D *BHI20:D label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri 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: テンポラリレジスタ ( 参考 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: 438 付録 E 命令一覧 ■ 32 ビット通常分岐マクロ命令 付表 E-18 32 ビット通常分岐マクロ命令 ニーモニック 動作 備考 *CALL32 label32,Ri 次の命令のアドレス→ RP, label32 → PC Ri: テンポラリレジスタ ( 参考 1 参照 ) *BRA32 *BEQ32 *BNE32 *BC32 *BNC32 *BN32 *BP32 *BV32 *BNV32 *BLT32 *BGE32 *BLE32 *BGT32 *BLS32 *BHI32 label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri 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: テンポラリレジスタ ( 参考 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: 439 付録 ■ 32 ビット遅延分岐マクロ命令 付表 E-19 32 ビット遅延分岐マクロ命令 ニーモニック 動作 備考 *CALL32:D label32,Ri 次の命令のアドレス +2 → RP, label32 → PC Ri: テンポラリレジスタ ( 参考 1 参照 ) *BRA32:D *BEQ32:D *BNE32:D *BC32:D *BNC32:D *BN32:D *BP32:D *BV32:D *BNV32:D *BLT32:D *BGE32:D *BLE32:D *BGT32:D *BLS32:D *BHI32:D label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri 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: テンポラリレジスタ ( 参考 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 @Ri JMP:D [ 参考 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: 440 付録 E 命令一覧 ■ ダイレクトアドレッシング命令 付表 E-20 ダイレクトアドレッシング命令 型 OP CYCLE NZVC ニーモニック 動作 備考 DMOV DMOV DMOV DMOV DMOV DMOV @dir10, R13, @dir10, @R13+, @dir10, @R15+, R13 @dir10 @R13+ @dir10* @-R15 @dir10 D D D D D D 08 18 0C 1C 0B 1B b a 2a 2a 2a 2a ------------------- (dir10) → R13 R13 → (dir10) (dir10) → (R13),R13+=4 (R13) → (dir10),R13+=4 R15-=4,(R15) → (dir10) (R15) → (dir10),R15+=4 ワード ワード ワード ワード ワード ワード DMOVH DMOVH DMOVH DMOVH DMOVB DMOVB DMOVB DMOVB @dir9, R13, @dir9, @R13+, @dir8, R13, @dir8, @R13+, R13 @dir9 @R13+ @dir9* R13 @dir8 @R13+ @dir8* D D D D 09 19 0D 1D b a 2a 2a ------------- (dir9) → R13 R13 → (dir9) (dir9) → (R13),R13+=2 (R13) → (dir9),R13+=2 ハーフワード ハーフワード ハーフワード ハーフワード D D D D 0A 1A 0E 1E b a 2a 2a ------------- (dir8) → R13 R13 → (dir8) (dir8) → (R13),R13++ (R13) → (dir8),R13++ バイト バイト バイト バイト * : R13+ を転送元にする DMOV 命令の後ろには , 必ず NOP を 1 つ置いてください。 ( 注意事項 ) dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。 dir8 → dir, dir9/2 → dir, dir10/4 → dir dir8, dir9, dir10 は符号なしです。 ■ リソース命令 付表 E-21 リソース命令 型 OP CYCLE NZVC ニーモニック LDRES @Ri+, #u4 C BC a ---- STRES #u4, C BD a ---- @Ri+ 動作 (Ri) → u4 のリソース Ri+=4 u4 のリソース→ (Ri) Ri+=4 備考 u4: チャネル番号 u4: チャネル番号 ■ コプロセッサ制御命令 付表 E-22 コプロセッサ制御命令 ニーモニック COPOP COPLD COPST COPSV #u4, #u4, #u4, #u4, #u8, #u8, #u8, #u8, CRj,CRi Rj, CRi CRj, Ri CRj, Ri 型 OP E E E E 9F-C 9F-D 9F-E 9F-F CYCLE NZVC 2+a 1+2a 1+2a 1+2a ------------- 動作 演算指示 Rj → CRi CRj → Ri CRj → Ri 備考 エラートラップなし ( 注意事項 ) • {CRi | CRj} := CR0 | CR1 | CR2 | CR3 | CR4 | CR5 | CR6 | CR7 | CR8 | CR9 | CR10 | CR11 | CR12 | CR13 | CR14 | CR15 u4:= チャネル指定 u8:= コマンド指定 • 本品種では , コプロセッサを搭載していないため使用できません。 441 付録 442 索引 索引 Numerics 0 検出 0 検出 ......................................................................375 0 検出用データレジスタ 0 検出用データレジスタ (BSD0) ........................373 16 ビット 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................432 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアのタイミング ..........................................................................238 16 ビットアウトプットコンペアの動作説明 ..........................................................................237 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの動作 ............239 16ビットインプットキャプチャの入力タイミング ..........................................................................239 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR0 ∼ TMR3) ..........................................................................191 16 ビットフリーランタイマ 16ビットフリーランタイマのカウントタイミング ..........................................................................236 16 ビットフリーランタイマのクリアタイミング ..........................................................................236 16 ビットフリーランタイマの動作説明 ............235 16 ビットリロードタイマ 16 ビットリロードタイマの特長 ........................186 16ビットリロードタイマのブロックダイヤグラム ..........................................................................187 16 ビットリロードタイマのレジスタ一覧 ..........................................................................188 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................324 16 ビットリロードレジスタ 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) ..........................................................................191 16 ビット× 1 チャネル動作 8 ビット× 2 チャネル ,16 ビット× 1 チャネル動作 ..........................................................................184 1 検出 1 検出 ......................................................................375 1 検出用データレジスタ 1 検出用データレジスタ (BSD1) ........................373 20 ビット遅延分岐マクロ命令 20 ビット遅延分岐マクロ命令 ............................438 20 ビット通常分岐マクロ命令 20 ビット通常分岐マクロ命令 ............................437 2 逓倍 位相差カウントモード (2 逓倍 /4 逓倍 ) ............178 32 ビット即値転送命令 即値セット /16 ビット /32 ビット即値転送命令 ...........................................................................432 32 ビット遅延分岐マクロ命令 32 ビット遅延分岐マクロ命令 ............................440 32 ビット通常分岐マクロ命令 32 ビット通常分岐マクロ命令 ........................... 439 4 逓倍 位相差カウントモード (2 逓倍 /4 逓倍 ) ............178 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ....... 288 8/10 ビット A/D コンバータの端子 ...................273 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..................................274 8/10 ビット A/D コンバータの特長 ...................270 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................271 8/10 ビット A/D コンバータの変換モード ....... 270 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................275 8/10 ビット A/D コンバータの割込み ............... 283 8/16 ビットアップダウンカウンタ / タイマ 8/16 ビットアップダウンカウンタ / タイマの特長 ..........................................................................164 8/16 ビットアップダウンカウンタ / タイマの ブロックダイヤグラム ..................................166 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................168 8 ビット D/A コンバータ 8 ビット D/A コンバータの端子 ........................ 291 8 ビット D/A コンバータの動作 ........................ 295 8 ビット D/A コンバータの特長 ........................ 290 8 ビット D/A コンバータのブロックダイヤグラム ..........................................................................291 8 ビット D/A コンバータのレジスタ一覧 ........292 8 ビット× 2 チャネル 8 ビット× 2 チャネル ,16 ビット× 1 チャネル動作 ..........................................................................184 443 索引 A A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................288 8/10 ビット A/D コンバータの端子 ....................273 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..................................274 8/10 ビット A/D コンバータの特長 ....................270 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................271 8/10 ビット A/D コンバータの変換モード ..........................................................................270 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................275 8/10 ビット A/D コンバータの割込み ................283 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ 0(ADCS0) ..........278 A/D 制御ステータスレジスタ 1(ADCS1) ..........276 A/D データレジスタ A/D データレジスタ (ADCR) ..............................281 A/D 変換データ保護 A/D 変換データ保護機能 .....................................287 ADCR A/D データレジスタ (ADCR) ..............................281 ADCS A/D 制御ステータスレジスタ 0(ADCS0) ..........278 A/D 制御ステータスレジスタ 1(ADCS1) ..........276 AICR アナログ入力制御レジスタ (AICR) ...................162 AMD エリアモードレジスタ 0(AMD0) ........................105 エリアモードレジスタ 1(AMD1) ........................107 エリアモードレジスタ 32(AMD32) ....................108 エリアモードレジスタ 4(AMD4) ........................109 エリアモードレジスタ 5(AMD5) ........................110 AMR エリア選択レジスタ (ASR) と エリアマスクレジスタ (AMR) ......................102 ASR エリア選択レジスタ (ASR) と エリアマスクレジスタ (AMR) ......................102 B BSD0 0 検出用データレジスタ (BSD0) ........................373 BSD1 1 検出用データレジスタ (BSD1) ........................373 BSDC 変化点検出用データレジスタ (BSDC) ..............374 BSRR 検出結果レジスタ (BSRR) ...................................374 C CCRH カウンタコントロールレジスタ H/L ch0(CCRH0/ CCRL0) .............................................................169 カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1) ..........................................................................172 444 CCRL カウンタコントロールレジスタ H/L ch0(CCRH0/ CCRL0) ............................................................ 169 カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1) ..........................................................................172 CDCR 通信プリスケーラコントロールレジスタ (CDCR) ..........................................................................313 CPU CPU アーキテクチャの特長 ..................................29 CPU ステート 各 CPU ステートにおける端子状態 ...................410 CSR カウンタステータスレジスタ 0/1(CSR 0,CSR1) ..........................................................................173 CTBR タイムベースタイマクリアレジスタ (CTBR) ............................................................................73 D D/A コントロールレジスタ D/A コントロールレジスタ (DACR0,DACR1,DACR2) ..............................293 D/A コンバータ 8 ビット D/A コンバータの端子 ........................ 291 8 ビット D/A コンバータの動作 ........................ 295 8 ビット D/A コンバータの特長 ........................ 290 8 ビット D/A コンバータのブロックダイヤグラム ..........................................................................291 8 ビット D/A コンバータのレジスタ一覧 ..........................................................................292 D/A データレジスタ D/A データレジスタ (DADR2,DADR1,DADR0) ..........................................................................294 DACR D/A コントロールレジスタ (DACR0,DACR1,DACR2) ..............................293 DACSR DMACコントロールステータスレジスタ(DACSR) ..........................................................................344 DADR D/A データレジスタ (DADR2,DADR1,DADR0) ..........................................................................294 DATCR DMAC 端子コントロールレジスタ (DATCR) ..........................................................................346 DDR データ方向レジスタ (DDR) ................................158 Delayed Interrupt Control Register 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) .............................................. 251 DICR DICR の DLYI ビット .......................................... 252 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) .............................................. 251 DLYI ビット DICR の DLYI ビット .......................................... 252 DMA リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ...................................... 360 索引 DMAC コントロールステータスレジスタ DMACコントロールステータスレジスタ(DACSR) ..........................................................................344 DMAC 端子コントロールレジスタ DMAC 端子コントロールレジスタ (DATCR) ..........................................................................346 DMAC 内部レジスタ DMAC 内部レジスタへの転送動作 ....................361 DMAC パラメータディスクリプタポインタ DMAC パ ラ メ ー タ デ ィ ス ク リ プ タ ポ インタ (DPDP) .............................................................343 DMA コントローラ DMA コントローラの特長 ..................................340 DMA コントローラのブロックダイヤグラム ..........................................................................341 DMA コントローラのレジスタ一覧 ..................342 DMA 転送動作 スリープモード中の DMA 転送動作 .................361 DMA 転送要求 リソースの割込み要求を DMA 転送要求として使 用する場合の注意 ..........................................360 DMA 転送抑止 優先度の高い割込み発生時の DMA 転送抑止 ..........................................................................360 DMA 要求抑止レジスタ DMA 要求抑止レジスタ (PDRR) ..........................77 double 型 double 型 ,long double 型の利用 ...........................420 DPDP DMAC パラメータディスクリプタポインタ (DPDP) .............................................................343 DREC 信号 DREC 信号のセンスモード .................................353 E EIRR 外部割込み要因レジスタ (EIRR0,EIRR1: External Interrupt Request Register n) .............245 EIT EIT ............................................................................54 EIT からの復帰 .......................................................54 EIT の注意事項 .......................................................54 EIT 要因受理の優先順位 .......................................59 EIT 要因 EIT 要因 ...................................................................54 ELVR 外部割込み要求レベル設定レジスタ (ELVR0,ELVR1:External LeVel Register) ..........................................................................246 ENable Interrupt request Register 割込み許可レジスタ (ENIR0,ENIR1: ENable Interrupt request Register n) ................244 ENIR 割込み許可レジスタ (ENIR0,ENIR1: ENable Interrupt request Register n) ................244 EPCR 外部端子制御レジスタ 0(EPCR0) .......................111 外部端子制御レジスタ 1(EPCR1) .......................114 External Interrupt Request Register 外部割込み要因レジスタ (EIRR0,EIRR1: External Interrupt Request Register n) .............245 External LeVel Register 外部割込み要求レベル設定レジスタ (ELVR0,ELVR1:External LeVel Register) ..........................................................................246 F FPT-144P-M08 FPT-144P-M08 の外形寸法図 ..................................6 MB91151A(FPT-144P-M08) の端子配列 ................9 FR ファミリ FR ファミリの命令一覧表 ..................................429 G GCN ジェネラルコントロールレジスタ 1(GCN1) ..........................................................................210 ジェネラルコントロールレジスタ 2(GCN2) ..........................................................................213 GCR ギア制御レジスタ (GCR) ...................................... 74 H Hold Request Cancel Request ホールドリクエスト取下げ要求 (Hold Request Cancel Request) の発生基準 ........................... 264 HRCL ホールドリクエスト取下げ要求レベル設定レジス タ (HRCL:Hold Request Cancel Level register) .................................................................................259 I I/O ポート I/O ポートのレジスタ .......................................... 150 I/O マップ I/O マップ .............................................................. 401 I/O マップの見方 ..................................................400 I-Cache 本品種の I-Cache を使用するときの設定方法 ............................................................................37 ICR 割込み制御レジスタ (ICR00 ∼ ICR47: Interrupt Control Register) ............................... 258 ICS インプットキャプチャコントロールレジスタ (ICS01,ICS23) ..................................................232 Interrupt Control Register 割込み制御レジスタ (ICR00 ∼ ICR47: Interrupt Control Register) ............................... 258 INTE 命令 INTE 命令の動作 ....................................................62 INT 命令 INT 命令の動作 ....................................................... 62 IPCP インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) .............................................232 445 索引 K -Klib オプション 文字列操作関数使用時の -K lib オプションの指定 ..........................................................................419 L LER リトルエンディアンレジスタ (LER) .................115 long double 型 double 型 ,long double 型の利用 ...........................420 M MB91151A MB91151A(FPT-144P-M08) の端子配列 .................9 MB91151A の特長 .....................................................2 MB91151A のメモリマップ ..................................48 MB91V151A,MB91151A のブロックダイヤグラム ..............................................................................4 MB91V151A,MB91151A のメモリマップ ...........28 MB91V151A MB91V151A(PGA-299C-A01) の端子配列 .............7 MB91V151A,MB91151A のブロックダイヤグラム ..............................................................................4 MB91V151A,MB91151A のメモリマップ ...........28 Multiply & Divide register 乗除算レジスタ (Multiply & Divide register) ........45 O OCCP コンペアレジスタ (OCCP0 ∼ OCCP7) ..............229 OCR オープンドレイン制御レジスタ (OCR) .............161 OCS アウトプットコントロールレジスタ (OCS0 ∼ OCS7) ..............................................229 P PC PC(Program Counter) ...............................................44 PCNH コントロールステータスレジスタ (PCNH0 ∼ PCNH5,PCNL0 ∼ PCNL5) ..........................................................................203 PCNL コントロールステータスレジスタ (PCNH0 ∼ PCNH5,PCNL0 ∼ PCNL5) .........203 PCR プルアップ抵抗制御レジスタ (PCR) .................160 PCSR PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) ..........................................................................207 PCTR PLL 制御レジスタ (PCTR) .....................................78 PDR ポートデータレジスタ (PDR) .............................156 446 PDRR DMA 要求抑止レジスタ (PDRR) .......................... 77 PDUT PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) ........................................................................... 208 PGA-299C-A01 MB91V151A(PGA-299C-A01) の端子配列 ............. 7 PGA-299C-A01 の外形寸法図 ................................. 5 PLL PLL のクロック設定例 .......................................... 85 アセンブラのソース例 (PLL 系への切換え動作の例 ) ........................ 86 PLL クロックモード PLL クロックモード動作中の注意について ............................................................................24 PLL 制御レジスタ PLL 制御レジスタ (PCTR) ..................................... 78 PPG タイマ PPG タイマ 1 チャネル分のブロックダイヤグラム ..........................................................................200 PPG タイマ全体のブロックダイヤグラム ..........................................................................199 PPG タイマの特長 ................................................198 PPG タイマのレジスタ一覧 ................................201 Program Counter PC(Program Counter) ...............................................44 Program Status PS(Program Status) ................................................... 41 PS PS(Program Status) ................................................... 41 PTMR PWM タイマレジスタ (PTMR0 ∼ PTMR5) ..........................................................................209 PWM PWM 出力オール "L" またはオール "H" の 出力方法例 ......................................................218 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 218 PWM 動作 .............................................................. 214 PWM 周期設定レジスタ PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) ..........................................................................207 PWM タイマ PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 218 PWM タイマレジスタ PWM タイマレジスタ (PTMR0 ∼ PTMR5) ..........................................................................209 PWM デューティ設定レジスタ PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) ..........................................................................208 R RCR リロード / コンペアレジスタ 0/1(RCR 0,RCR1) ..........................................................................176 RETI 命令 RETI 命令の動作 ....................................................64 Return Pointer RP(Return Pointer) ................................................... 44 索引 RP RP(Return Pointer) ....................................................44 RSRR リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) .............................70 S SCR 制御レジスタ (SCR0 ∼ SCR3) ............................305 SIDR インプットデータレジスタ (SIDR0 ∼ SIDR3) ..........................................................................311 SMR モードレジスタ (SMR0 ∼ SMR3) ......................307 SODR アウトプットデータレジスタ (SODR0 ∼ SODR3) ..........................................................................312 SSP SSP(System Stack Pointer) .......................................45 SSR ステータスレジスタ (SSR0 ∼ SSR3) .................309 STCR スタンバイ制御レジスタ (STCR) .........................72 STPR ストップ制御レジスタ 0(STPR0) .......................381 ストップ制御レジスタ 1(STPR1) .......................382 ストップ制御レジスタ 2(STPR2) .......................383 System Stack Pointer SSP(System Stack Pointer) .......................................45 UART のブロックダイヤグラム ........................ 300 UART のレジスタ一覧 ........................................ 304 UART の割込み ..................................................... 315 UART ボーレート選択 ........................................ 319 UART ボーレート選択回路 ................................320 UDCR アップダウンカウントレジスタ 0/1(UDCR 0,UDCR1) .....................................175 アップダウンカウントレジスタ (UDCR) への データの書込み .............................................. 183 User Stack Pointer USP(User Stack Pointer) .......................................... 45 USP USP(User Stack Pointer) .......................................... 45 W WPR ウォッチドッグリセット発生延期レジスタ (WPR) ............................................................................76 WTCR リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) ............................. 70 T Table Base Register TBR(Table Base Register) ........................................44 TBR TBR(Table Base Register) ........................................44 TCCS タイマコントロールステータスレジスタ (TCCS) ..........................................................................226 TCDT データレジスタ (TCDT) .......................................226 TMCSR コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) ...................................189 TMR 16 ビットタイマレジスタ (TMR0 ∼ TMR3) ..........................................................................191 TMRLR 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) ..........................................................................191 U UART UART 使用上の注意 .............................................338 UART に関連する割込み .....................................316 UART の端子 .........................................................302 UART の端子のブロックダイヤグラム .............303 UART の動作 .........................................................327 UART の特長 .........................................................298 447 索引 あ う アーキテクチャ CPU アーキテクチャの特長 ..................................29 内部アーキテクチャ ...............................................29 アウトプットコントロールレジスタ アウトプットコントロールレジスタ (OCS0 ∼ OCS7) ..............................................229 アウトプットコンペア 16 ビットアウトプットコンペアのタイミング ..........................................................................238 16 ビットアウトプットコンペアの動作説明 ..........................................................................237 アウトプットデータレジスタ アウトプットデータレジスタ (SODR0 ∼ SODR3) ..........................................................................312 アセンブラ アセンブラのソース例 (PLL 系への切換え動作の例 ) .........................86 アップ / ダウンカウントモード アップ / ダウンカウントモード .........................177 アップダウンカウンタ / タイマ 8/16 ビットアップダウンカウンタ / タイマの特長 ..........................................................................164 8/16 ビットアップダウンカウンタ / タイマの ブロックダイヤグラム ..................................166 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................168 アップダウンカウントレジスタ アップダウンカウントレジスタ 0/1(UDCR 0,UDCR1) ......................................175 アップダウンカウントレジスタ (UDCR) への データの書込み ..............................................183 アドレッシング ダイレクトアドレッシング領域 .....................28, 48 アドレッシングモード アドレッシングモードの記号 .............................426 アナログ入力制御レジスタ アナログ入力制御レジスタ (AICR) ...................162 アンダフロー アンダフロー動作 .................................................193 ウェイトサイクル ウェイトサイクル ................................................132 ウェイトサイクルタイミング 外部ウェイトサイクルタイミング .................... 143 自動ウェイトサイクルタイミング .................... 142 ウォッチドッグ周期制御レジスタ リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) ............................. 70 ウォッチドッグ制御部 ウォッチドッグ制御部のブロックダイヤグラム ............................................................................79 ウォッチドッグタイマ ウォッチドッグタイマ機能について .................. 24 ウォッチドッグタイマの起動 ..............................79 ウォッチドッグリセット発生延期レジスタ ウォッチドッグリセット発生延期レジスタ (WPR) ............................................................................76 い 位相差カウントモード 位相差カウントモード (2 逓倍 /4 逓倍 ) ............178 インプットキャプチャ 16 ビットインプットキャプチャの動作 ............239 16ビットインプットキャプチャの入力タイミング ..........................................................................239 インプットキャプチャコントロールレジスタ インプットキャプチャコントロールレジスタ (ICS01,ICS23) ..................................................232 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) .............................................232 インプットデータレジスタ インプットデータレジスタ (SIDR0 ∼ SIDR3) ..........................................................................311 448 え エッジモード エッジモード時の注意事項 ................................358 エミュレータデバッガ エミュレータデバッガ / モニタデバッガ ......... 424 エラー エラーの未検出 ....................................................423 エリア選択レジスタ エリア選択レジスタ (ASR) と エリアマスクレジスタ (AMR) .....................102 エリアマスクレジスタ エリア選択レジスタ (ASR) と エリアマスクレジスタ (AMR) .....................102 エリアモードレジスタ エリアモードレジスタ 0(AMD0) .......................105 エリアモードレジスタ 1(AMD1) .......................107 エリアモードレジスタ 32(AMD32) ...................108 エリアモードレジスタ 4(AMD4) .......................109 エリアモードレジスタ 5(AMD5) .......................110 お オーダリング バイトオーダリング .............................................. 46 ビットオーダリング .............................................. 46 オープンドレイン出力 オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ..........................................................................153 オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................155 オープンドレイン出力付き入出力ポート オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................155 オープンドレイン制御レジスタ オープンドレイン制御レジスタ (OCR) ............161 オール "H" PWM 出力オール "L" またはオール "H" の 出力方法例 ......................................................218 索引 オール "L" PWM 出力オール "L" またはオール "H" の 出力方法例 ......................................................218 オプション 文字列操作関数使用時の -K lib オプションの指定 ..........................................................................419 か 外形寸法図 FPT-144P-M08 の外形寸法図 ..................................6 PGA-299C-A01 の外形寸法図 .................................5 外部アクセス ビッグエンディアンとリトルエンディアンの 外部アクセスの比較 ......................................116 外部ウェイトサイクルタイミング 外部ウェイトサイクルタイミング .....................143 外部クロック 外部クロックについて ...........................................24 外部クロックによるボーレート .........................326 外部端子制御レジスタ 外部端子制御レジスタ 0(EPCR0) .......................111 外部端子制御レジスタ 1(EPCR1) .......................114 外部デバイス 外部デバイスとの接続例 .............................123, 127 外部バス 外部バス動作のプログラム例 .............................147 外部バスアクセス 外部バスアクセス .................................................120 外部バスリクエスト 外部バスリクエスト .............................................132 外部リセット 外部リセット入力について ...................................24 外部割込み 外部割込みの動作 .................................................247 外部割込みの動作手順 .........................................247 外部割込み要求レベル .........................................248 外部割込み制御部 外部割込み制御部のブロックダイヤグラム ..........................................................................242 外部割込み制御部のレジスタ一覧 .....................243 外部割込み要因レジスタ 外部割込み要因レジスタ (EIRR0,EIRR1: External Interrupt Request Register n) .............245 外部割込み要求レベル設定レジスタ 外部割込み要求レベル設定レジスタ (ELVR0,ELVR1:External LeVel Register) ..........................................................................246 回路 回路の取扱い ...........................................................23 カウンタ カウンタの動作状態 .............................................195 カウンタコントロールレジスタ カウンタコントロールレジスタ H/L ch0 (CCRH0/CCRL0) .............................................169 カウンタステータスレジスタ カウンタステータスレジスタ 0/1(CSR 0,CSR1) ..........................................................................173 カウンタ制御レジスタ カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1) ..........................................................................172 カウントクリア カウントクリア / ゲート機能 ............................. 183 カウントタイミング 16ビットフリーランタイマのカウントタイミング ..........................................................................236 カウント方向転換フラグ カウント方向転換フラグ .................................... 184 カウント方向フラグ カウント方向フラグ ............................................ 184 カウントモード カウントモード選択 ............................................ 177 加減算命令 加減算命令 ............................................................ 430 関数 文字列操作関数使用時の -K lib オプションの指定 ..........................................................................419 文字列操作関数を使った文字型配列以外の操作 ..........................................................................419 き ギア制御部 ギア制御部のブロックダイヤグラム .................. 81 ギア制御レジスタ ギア制御レジスタ (GCR) ...................................... 74 機能 カウントクリア / ゲート機能 ............................. 183 リロード / コンペア機能 .....................................180 リロード / コンペア機能同時起動時 ................. 181 基本プログラミングモデル 基本プログラミングモデル ..................................40 基本入出力ポート 基本入出力ポートのブロックダイヤグラム ..........................................................................151 基本ライトサイクルタイミング 基本ライトサイクルタイミング ........................ 135 基本リードサイクルタイミング 基本リードサイクルタイミング ........................ 133 キャッシュ可能領域 命令キャッシュのキャッシュ可能領域 ..............37 く クリアタイミング 16 ビットフリーランタイマのクリアタイミング ..........................................................................236 クロック PLL クロックモード動作中の注意について ............................................................................24 PLL のクロック設定例 .......................................... 85 外部クロックについて .......................................... 24 外部クロックによるボーレート ........................ 326 クロック選択方法 ................................................145 クロック系統参考図 .............................................. 86 クロック発生部のレジスタ構成 .......................... 68 内部クロック動作 ................................................192 クロック系統参考図 クロック系統参考図 .............................................. 86 クロック発生部 クロック発生部のブロックダイヤグラム ..........69 クロック発生部のレジスタ構成 .......................... 68 449 索引 け ゲート機能 カウントクリア / ゲート機能 .............................183 検出 0 検出 ......................................................................375 1 検出 ......................................................................375 変化点検出 .............................................................376 検出結果レジスタ 検出結果レジスタ (BSRR) ...................................374 こ 構造体代入 構造体代入 .............................................................418 コプロセッサ コプロセッサエラートラップ ...............................64 コプロセッサ不在トラップ ...................................63 コプロセッサエラートラップ コプロセッサエラートラップ ...............................64 コプロセッサ制御命令 コプロセッサ制御命令 .........................................441 コプロセッサ不在トラップ コプロセッサ不在トラップ ...................................63 コマンド コマンド一覧 .........................................................390 混在サイクルタイミング リード / ライト混在サイクルタイミング .........141 コントロールステータスレジスタ コントロールステータスレジスタ (PCNH0 ∼ PCNH5,PCNL0 ∼ PCNL5) ..........................................................................203 コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) ...................................189 コンペア機能 コンペア機能起動時 .............................................181 リロード / コンペア機能 .....................................180 リロード / コンペア機能同時起動時 .................181 コンペアクリアレジスタ コンペアクリアレジスタ .....................................226 コンペア検出フラグ コンペア検出フラグ .............................................184 コンペアレジスタ コンペアレジスタ (OCCP0 ∼ OCCP7) ..............229 さ サイクルタイミング リード / ライト混在サイクルタイミング .........141 し シーケンス ホールドリクエスト取下げ要求シーケンス ..........................................................................266 リセットシーケンス ...............................................65 ジェネラルコントロールレジスタ ジェネラルコントロールレジスタ 1(GCN1) ..........................................................................210 ジェネラルコントロールレジスタ 2(GCN2) ..........................................................................213 450 ジェネラルコントロールレジスタを使った 複数チャネルの起動 ...................................... 220 自動ウェイトサイクルタイミング 自動ウェイトサイクルタイミング .................... 142 シフト命令 シフト命令 ............................................................ 432 シミュレータデバッガ シミュレータデバッガ ........................................ 424 周辺ストップ制御 周辺ストップ制御の動作と注意事項 ................ 380 周辺ストップ制御のレジスタ一覧 .................... 380 初期領域 ベクタテーブル初期領域 ...................................... 48 受信割込み 受信割込み発生とフラグセットのタイミング ..........................................................................317 出力端子 出力端子機能 ........................................................ 194 乗除算命令 乗除算命令 ............................................................ 431 乗除算レジスタ 乗除算レジスタ (Multiply & Divide register) ............................................................................. 45 状態遷移図 低消費電力モードの状態遷移図 .......................... 95 初期化 リセットによる初期化 .......................................... 65 初期値付き変数 初期値付き変数の配置 ........................................ 418 シリアル起動 シリアル起動の通信モード ................................387 シングル ステップ転送 ( シングル / ブロック転送 ) ..........................................................................354 シングル / ブロック転送モード シングル / ブロック転送モード .........................351 す スタック スタックのリトルエンディアン領域への配置 ..........................................................................420 割込みスタック ......................................................56 スタンバイ制御レジスタ スタンバイ制御レジスタ (STCR) .........................72 スタンバイモード スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 263 ステータスレジスタ ステータスレジスタ (SSR0 ∼ SSR3) ................ 309 ステップ転送 ステップ転送 ( シングル / ブロック転送 ) ........354 ステップトレーストラップ ステップトレーストラップの動作 ...................... 62 ストップ スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 263 ストップからの復帰 ............................................ 247 ストップ状態からの復帰 ...................................... 90 ストップ状態の概要 .............................................. 88 ストップ状態への移行 .......................................... 89 索引 ストップ制御部のブロックダイヤグラム ...........89 ストップ制御レジスタ ストップ制御レジスタ 0(STPR0) .......................381 ストップ制御レジスタ 1(STPR1) .......................382 ストップ制御レジスタ 2(STPR2) .......................383 スリープ スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................263 スリープ状態からの復帰 .......................................93 スリープ状態の概要 ...............................................88 スリープ状態への移行 ...........................................92 スリープ制御部のブロックダイヤグラム ...........92 スリープモード スリープモード中の DMA 転送動作 .................361 スロット 遅延スロット付き分岐命令 ...................................51 遅延スロット付き分岐命令の制限事項 ...............52 遅延スロット付き分岐命令の動作 .......................51 遅延スロットなし分岐命令 ...................................53 遅延スロットなし分岐命令の動作 .......................53 せ 制御信号 データバス幅と制御信号との関係 .............116, 117 制御レジスタ 制御レジスタ .........................................................265 制御レジスタ (SCR0 ∼ SCR3) ............................305 制御レジスタ構成 ...................................................34 セクション セクション .............................................................421 セクション種別 セクション種別の制限 .........................................423 接続例 外部デバイスとの接続例 .............................123, 127 センス リクエストのセンスと各転送モードの組合せ ..........................................................................353 センスモード DREC 信号のセンスモード .................................353 専用ボーレートジェネレータ 専用ボーレートジェネレータによるボーレート ..........................................................................321 そ 送信割込み 送信割込み発生とフラグセットのタイミング ..........................................................................318 双方向通信 双方向通信機能 .....................................................334 ソース アセンブラのソース例 (PLL 系への切換え動作の例 ) .........................86 即値セット 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................432 即値転送命令 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................432 た 退避 退避・復帰の処理 ................................................377 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ (TCCS) ..........................................................................226 タイマベースタイマ タイマベースタイマ .............................................. 80 タイマモード タイマモード〔ダウンカウント〕...................... 177 タイミング 受信割込み発生とフラグセットのタイミング ..........................................................................317 送信割込み発生とフラグセットのタイミング ..........................................................................318 タイミング図 タイミング図で使用している記号 .................... 362 タイミングチャート PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 218 タイムベースタイマクリアレジスタ タイムベースタイマクリアレジスタ (CTBR) ............................................................................73 ダイレクトアドレッシング ダイレクトアドレッシング領域 .................... 28, 48 ダイレクトアドレッシング命令 ダイレクトアドレッシング命令 ........................ 441 ダウンカウント タイマモード〔ダウンカウント〕...................... 177 多機能タイマ 多機能タイマの構成 ............................................ 222 多機能タイマの動作説明 .................................... 234 多機能タイマのブロックダイヤグラム ............224 多機能タイマのレジスタ .................................... 225 端子機能 端子機能説明 .......................................................... 10 端子状態 各 CPU ステートにおける端子状態 ...................410 端子状態表 端子状態表の用語 ................................................410 端子処理 端子処理 .................................................................. 22 端子配列 MB91151A(FPT-144P-M08) の端子配列 ................9 MB91V151A(PGA-299C-A01) の端子配列 ............. 7 単発変換モード 単発変換モードの動作 ........................................ 284 ち 遅延 通常分岐 ( 遅延なし ) 命令 ..................................434 遅延スロット付き分岐命令 遅延スロット付き分岐命令 ..................................51 遅延スロット付き分岐命令の制限事項 ..............52 遅延スロット付き分岐命令の動作 ...................... 51 遅延スロットなし分岐命令 遅延スロットなし分岐命令 ..................................53 遅延スロットなし分岐命令の動作 ...................... 53 遅延分岐マクロ命令 20 ビット遅延分岐マクロ命令 ........................... 438 451 索引 32 ビット遅延分岐マクロ命令 ............................440 遅延分岐命令 遅延分岐命令 .........................................................435 遅延割込み制御レジスタ 遅延割込み制御レジスタ (DICR: Delayed Interrupt Control Register) .................251 遅延割込みモジュール 遅延割込みモジュールのブロックダイヤグラム ..........................................................................250 遅延割込みモジュールのレジスタ一覧 .............250 チップセレクト チップセレクト領域 ...............................................98 チャネル間優先順位 チャネル間優先順位 .............................................360 つ 通常極性 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) .................................218 通常バスアクセス 通常バスアクセス .................................................132 通常分岐 通常分岐 ( 遅延なし ) 命令 ..................................434 通常分岐マクロ命令 20 ビット通常分岐マクロ命令 ............................437 32 ビット通常分岐マクロ命令 ............................439 通信プリスケーラコントロールレジスタ 通信プリスケーラコントロールレジスタ (CDCR) ..........................................................................313 通信モード シリアル起動の通信モード .................................387 て 停止変換モード 停止変換モードの動作 .........................................286 低消費電力モード 低消費電力モードの状態遷移図 ...........................95 低消費電力モードの動作一覧 ...............................88 ディスクリプタ ディスクリプタ先頭ワード .................................348 ディスクリプタ第 2 ワード .................................350 ディスクリプタ第 3 ワード .................................350 ディスクリプタアクセス ディスクリプタアクセス部 .................................363 逓倍 位相差カウントモード (2 逓倍 /4 逓倍 ) ............178 データアクセス データアクセス .......................................................47 データ転送部 データ転送部 ,16/8 ビットデータ ......................365 データバス幅 データバス幅 .................................................119, 126 データバス幅と制御信号との関係 .............116, 117 データフォーマット データフォーマット .....................................118, 125 データ方向レジスタ データ方向レジスタ (DDR) ................................158 データ保護 A/D 変換データ保護機能 .....................................287 452 データレジスタ データレジスタ (TCDT) ...................................... 226 電源投入時 電源投入時の注意 ..................................................25 転送 ステップ転送 ( シングル / ブロック転送 ) ..........................................................................354 転送受付信号出力 転送受付信号出力 ................................................359 転送終了信号出力 転送終了信号出力 ................................................359 転送停止 連続転送モードでの転送停止 ( 両方のアドレスが 変化する場合 ),16/8 ビットデータ ............... 367 転送動作 スリープモード中の DMA 転送動作 ................. 361 転送の終了動作 転送の終了動作 ( いずれか一方のアドレスは固定 である場合 ) ....................................................368 転送の終了動作 ( 両方のアドレスが変化する場合 ) ............. 369 転送モード シングル / ブロック転送モード .........................351 バースト転送モード ............................................ 352 転送要求 リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ...................................... 360 転送抑止 優先度の高い割込み発生時の DMA 転送抑止 ..........................................................................360 と 同期モード 同期モード ( 動作モード 2) 時の動作 ................ 332 動作 8 ビット× 2 チャネル ,16 ビット× 1 チャネル動作 ..........................................................................184 動作モード 同期モード ( 動作モード 2) 時の動作 ................ 332 動作モード .............................................................. 66 非同期モード ( 動作モード 0,1) 時の動作 ......... 329 トラップ コプロセッサエラートラップ ..............................64 コプロセッサ不在トラップ ..................................63 な 内部 内部アーキテクチャ .............................................. 29 内部クロック 内部クロック動作 ................................................192 内部タイマ 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................324 内部レジスタ DMAC 内部レジスタへの転送動作 ...................361 索引 に 系統参考図 クロック系統参考図 ...............................................86 入出力回路形式 入出力回路形式 .......................................................17 入出力ポート オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ...........................................................................153 オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................155 プルアップ抵抗付き入出力ポートの ブロックダイヤグラム ..................................152 入力タイミング 16ビットインプットキャプチャの入力タイミング ..........................................................................239 は バースト転送 バースト転送 .........................................................356 バースト転送モード バースト転送モード .............................................352 ハードウェア構成 ハードウェア構成 .................................................265 割込みコントローラのハードウェア構成 .........254 ハーフワードアクセス ハーフワードアクセス .........................................129 バイトアクセス バイトアクセス .....................................................130 バイトオーダリング バイトオーダリング ...............................................46 バス バス権解放 .............................................................144 バス権獲得 .............................................................144 バスアクセス 外部バスアクセス .................................................120 通常バスアクセス .................................................132 ビッグエンディアンのバスアクセス .................116 リトルエンディアンのバスアクセス .................116 バスインタフェース バスインタフェース ...............................................99 バスインタフェースの特長 ...................................98 バスインタフェースのブロックダイヤグラム ..........................................................................100 バスインタフェースのレジスタ構成 .................101 バス権解放 バス権解放 .............................................................144 バス権獲得 バス権獲得 .............................................................144 バスリクエスト 外部バスリクエスト .............................................132 汎用レジスタ 汎用レジスタ ...........................................................40 ひ 比較演算命令 比較演算命令 .........................................................430 ビッグエンディアン ビッグエンディアンとリトルエンディアンの 外部アクセスの比較 ...................................... 116 ビッグエンディアンのバスアクセス ................ 116 リトルエンディアンとビッグエンディアンの 相違点 .............................................................. 124 ビットオーダリング ビットオーダリング .............................................. 46 ビットサーチモジュール ビットサーチモジュールのブロックダイヤグラム ..........................................................................372 ビットサーチモジュールのレジスタ一覧 ..........................................................................372 ビット操作命令 ビット操作命令 ....................................................431 非同期モード 非同期モード ( 動作モード 0,1) 時の動作 ..........................................................................329 ふ フォーマット データフォーマット ....................................118, 125 命令フォーマット ................................................428 複数チャネル ジェネラルコントロールレジスタを使った 複数チャネルの起動 ...................................... 220 復帰 退避・復帰の処理 ................................................377 フラグ カウント方向転換フラグ .................................... 184 カウント方向フラグ ............................................ 184 コンペア検出フラグ ............................................ 184 フラグセット 受信割込み発生とフラグセットのタイミング ..........................................................................317 送信割込み発生とフラグセットのタイミング ..........................................................................318 フリーランタイマ 16ビットフリーランタイマのカウントタイミング ..........................................................................236 16 ビットフリーランタイマのクリアタイミング ..........................................................................236 16 ビットフリーランタイマの動作説明 ........... 235 プルアップ抵抗 オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ..........................................................................153 プルアップ抵抗付き入出力ポートの ブロックダイヤグラム ..................................152 プルアップ抵抗制御レジスタ プルアップ抵抗制御レジスタ (PCR) ................. 160 プルアップ抵抗付き入出力ポート オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ..........................................................................153 プルアップ抵抗付き入出力ポートの ブロックダイヤグラム ..................................152 プログラミングモデル 基本プログラミングモデル ..................................40 プログラム 外部バス動作のプログラム例 ............................147 453 索引 プログラム以外のリセット延期要因 ...................80 プログラム例の仕様 .............................................146 プログラムアクセス プログラムアクセス ...............................................47 ブロックダイヤグラム 16ビットリロードタイマのブロックダイヤグラム ..........................................................................187 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..................................274 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................271 8/16 ビットアップダウンカウンタ / タイマの ブロックダイヤグラム ..................................166 8 ビット D/A コンバータのブロックダイヤグラム ..........................................................................291 DMA コントローラのブロックダイヤグラム ..........................................................................341 MB91V151A,MB91151A のブロックダイヤグラム ..............................................................................4 PPG タイマ 1 チャネル分のブロックダイヤグラム ..........................................................................200 PPG タイマ全体のブロックダイヤグラム ........199 UART の端子のブロックダイヤグラム .............303 UART のブロックダイヤグラム .........................300 ウォッチドッグ制御部のブロックダイヤグラム ............................................................................79 オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ..........................................................................153 オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................155 外部割込み制御部のブロックダイヤグラム ..........................................................................242 各ポートのブロックダイヤグラム .....................150 ギア制御部のブロックダイヤグラム ...................81 基本入出力ポートのブロックダイヤグラム ..........................................................................151 クロック発生部のブロックダイヤグラム ...........69 ストップ制御部のブロックダイヤグラム ...........89 スリープ制御部のブロックダイヤグラム ...........92 多機能タイマのブロックダイヤグラム .............224 遅延割込みモジュールのブロックダイヤグラム ..........................................................................250 バスインタフェースのブロックダイヤグラム ..........................................................................100 ビットサーチモジュールのブロックダイヤグラム ..........................................................................372 プルアップ抵抗付き入出力ポートの ブロックダイヤグラム ..................................152 リセット要因保持回路のブロックダイヤグラム ............................................................................83 割込みコントローラのブロックダイヤグラム ..........................................................................255 ブロック転送 ステップ転送 ( シングル / ブロック転送 ) ..........................................................................354 分岐 通常分岐 ( 遅延なし ) 命令 ..................................434 分岐マクロ命令 20 ビット遅延分岐マクロ命令 ............................438 20 ビット通常分岐マクロ命令 ............................437 32 ビット遅延分岐マクロ命令 ............................440 454 32 ビット通常分岐マクロ命令 ........................... 439 分岐命令 遅延スロット付き分岐命令 ..................................51 遅延スロット付き分岐命令の制限事項 ..............52 遅延スロット付き分岐命令の動作 ...................... 51 遅延スロットなし分岐命令 ..................................53 遅延スロットなし分岐命令の動作 ...................... 53 遅延分岐命令 ........................................................ 435 へ ベクタテーブル ベクタテーブル ......................................................57 ベクタテーブル初期領域 ...................................... 48 変化点検出 変化点検出 ............................................................ 376 変化点検出用データレジスタ 変化点検出用データレジスタ (BSDC) ..............374 変換モード 8/10 ビット A/D コンバータの変換モード ..........................................................................270 単発変換モードの動作 ........................................ 284 停止変換モードの動作 ........................................ 286 連続変換モードの動作 ........................................ 285 変数 初期値付き変数の配置 ........................................ 418 ほ ポート 各ポートのブロックダイヤグラム .................... 150 ポートデータレジスタ ポートデータレジスタ (PDR) ............................. 156 ホールドリクエスト取下げ要求 ホールドリクエスト取下げ要求 (Hold Request Cancel Request) の発生基準 ........................... 264 ホールドリクエスト取下げ要求シーケンス ..........................................................................266 ホールドリクエスト取下げ要求の設定可能な レベル .............................................................. 264 ホールドリクエスト取下げ要求レベル設定レジスタ ホールドリクエスト取下げ要求レベル設定レジス タ (HRCL:Hold Request Cancel Level register) ........................................................................... 259 ボーレート UART ボーレート選択 ........................................ 319 UART ボーレート選択回路 ................................320 外部クロックによるボーレート ........................ 326 専用ボーレートジェネレータによるボーレート ..........................................................................321 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................324 ボーレートジェネレータ 専用ボーレートジェネレータによるボーレート ..........................................................................321 ボーレート選択回路 UART ボーレート選択回路 ................................320 本体構成 本体構成 .................................................................. 32 索引 ま も マスタ / スレーブ型通信 マスタ / スレーブ型通信機能 .............................336 モード DREC 信号のセンスモード ................................. 353 アップ / ダウンカウントモード .........................177 アドレッシングモードの記号 ............................426 位相差カウントモード (2 逓倍 /4 逓倍 ) ............178 エッジモード時の注意事項 ................................358 カウントモード選択 ............................................ 177 各動作モードの状態 .............................................. 35 各モードでのライトサイクルタイミング ..........................................................................139 各モードでのリードサイクルタイミング ..........................................................................137 シリアル起動の通信モード ................................387 シングル / ブロック転送モード .........................351 スリープモード中の DMA 転送動作 ................. 361 タイマモード〔ダウンカウント〕...................... 177 同期モード ( 動作モード 2) 時の動作 ................ 332 動作モード .............................................................. 66 バースト転送モード ............................................ 352 非同期モード ( 動作モード 0,1) 時の動作 ..........................................................................329 モード端子 .............................................................. 66 モードデータ .......................................................... 66 リクエストのセンスと各転送モードの組合せ ..........................................................................353 レベルモード時の注意事項 ................................357 連続転送モード ....................................................351 連続転送モードでの転送停止 ( いずれか一方の アドレスは固定である場合 ), 16/8 ビットデータ .......................................... 366 連続転送モードでの転送停止 ( 両方のアドレスが 変化する場合 ),16/8 ビットデータ ............... 367 モード端子 モード端子 .............................................................. 66 モードデータ モードデータ .......................................................... 66 モードレジスタ モードレジスタ (SMR0 ∼ SMR3) ...................... 307 文字列操作関数 文字列操作関数使用時の -K lib オプションの指定 ..........................................................................419 文字列操作関数を使った文字型配列以外の操作 ..........................................................................419 モニタデバッガ エミュレータデバッガ / モニタデバッガ ..........................................................................424 み 未定義命令 未定義命令例外の動作 ...........................................63 め 命令 20 ビット遅延分岐マクロ命令 ............................438 20 ビット通常分岐マクロ命令 ............................437 32 ビット遅延分岐マクロ命令 ............................440 32 ビット通常分岐マクロ命令 ............................439 FR ファミリの命令一覧表 ...................................429 INTE 命令の動作 .....................................................62 INT 命令の動作 .......................................................62 RETI 命令の動作 .....................................................64 加減算命令 .............................................................430 コプロセッサ制御命令 .........................................441 シフト命令 .............................................................432 乗除算命令 .............................................................431 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................432 その他の命令 .........................................................436 ダイレクトアドレッシング命令 .........................441 遅延スロット付き分岐命令 ...................................51 遅延スロット付き分岐命令の制限事項 ...............52 遅延スロット付き分岐命令の動作 .......................51 遅延スロットなし分岐命令 ...................................53 遅延スロットなし分岐命令の動作 .......................53 遅延分岐命令 .........................................................435 通常分岐 ( 遅延なし ) 命令 ..................................434 比較演算命令 .........................................................430 ビット操作命令 .....................................................431 未定義命令例外の動作 ...........................................63 命令一覧表の読み方 .............................................425 命令概要 ...................................................................49 メモリストア命令 .................................................433 メモリロード命令 .................................................432 リソース命令 .........................................................441 レジスタ間転送命令 .............................................433 論理演算命令 .........................................................430 命令キャッシュ 命令キャッシュのキャッシュ可能領域 ...............37 命令フォーマット 命令フォーマット .................................................428 メモリストア命令 メモリストア命令 .................................................433 メモリマップ MB91151A のメモリマップ ..................................48 MB91V151A,MB91151A のメモリマップ ...........28 メモリロード命令 メモリロード命令 .................................................432 ゆ ユーザ割込み ユーザ割込みの動作 .............................................. 61 優先順位 EIT 要因受理の優先順位 .......................................59 優先順位判定 優先順位判定 ........................................................ 260 優先度 優先度の高い割込み発生時の DMA 転送抑止 ..........................................................................360 455 索引 よ ライトサイクルタイミング 各モードでのライトサイクルタイミング ..........................................................................139 基本ライトサイクルタイミング .........................135 ラッチアップ ラッチアップ防止 ...................................................22 リトルエンディアンのバスアクセス ................ 116 リトルエンディアンレジスタ リトルエンディアンレジスタ (LER) ................. 115 リロード リロード / コンペア機能 .....................................180 リロード / コンペア機能同時起動時 ................. 181 リロード / コンペアレジスタ リロード / コンペアレジスタ 0/1(RCR 0,RCR1) ..........................................................................176 リロード機能 リロード機能起動時 ............................................ 180 リロードタイマ 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................324 り れ リード / ライト混在サイクルタイミング リード / ライト混在サイクルタイミング ..........................................................................141 リードサイクルタイミング 各モードでのリードサイクルタイミング ..........................................................................137 基本リードサイクルタイミング .........................133 リクエスト リクエストのセンスと各転送モードの組合せ ..........................................................................353 リセット 外部リセット入力について ...................................24 プログラム以外のリセット延期要因 ...................80 リセットシーケンス ...............................................65 リセットによる初期化 ...........................................65 リセット発生延期 ...................................................80 リセット要因 ...........................................................65 例外 未定義命令例外の動作 .......................................... 63 レジスタ間転送命令 レジスタ間転送命令 ............................................ 433 レベルマスク 割込みに対するレベルマスク ..............................55 レベルモード レベルモード時の注意事項 ................................357 連続転送 連続転送 ................................................................ 355 連続転送モード 連続転送モード ....................................................351 連続転送モードでの転送停止 ( いずれか一方の アドレスは固定である場合 ), 16/8 ビットデータ .......................................... 366 連続転送モードでの転送停止 ( 両方のアドレスが 変化する場合 ),16/8 ビットデータ ............... 367 リセット要因保持回路のブロックダイヤグラム ............................................................................83 リセット延期要因 プログラム以外のリセット延期要因 ...................80 リセットシーケンス リセットシーケンス ...............................................65 リセット発生延期 リセット発生延期 ...................................................80 リセット要因 リセット要因 ...........................................................65 リセット要因保持回路 リセット要因保持回路のブロックダイヤグラム ............................................................................83 リセット要因レジスタ リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) .............................70 リソース リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ......................................360 リソース命令 リソース命令 .........................................................441 リトルエンディアン スタックのリトルエンディアン領域への配置 ..........................................................................420 ビッグエンディアンとリトルエンディアンの 外部アクセスの比較 ......................................116 リトルエンディアンとビッグエンディアンの 相違点 ..............................................................124 連続変換モード 連続変換モードの動作 ........................................ 285 要求レベル 外部割込み要求レベル .........................................248 ら 456 ろ 論理演算命令 論理演算命令 ........................................................ 430 わ ワードアクセス ワードアクセス ....................................................128 割込み 8/10 ビット A/D コンバータの割込み ............... 283 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 218 UART に関連する割込み .................................... 316 受信割込み発生とフラグセットのタイミング ..........................................................................317 送信割込み発生とフラグセットのタイミング ..........................................................................318 ユーザ割込みの動作 .............................................. 61 優先度の高い割込み発生時の DMA 転送抑止 ..........................................................................360 リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ...................................... 360 索引 割込みスタック .......................................................56 割込みに対するレベルマスク ...............................55 割込み番号 .............................................................252 割込み要因の解除 .................................................262 割込みレベル ...........................................................55 割込み許可レジスタ 割込み許可レジスタ (ENIR0,ENIR1: ENable Interrupt request Register n) ................244 割込みコントローラ 割込みコントローラの主要機能 .........................254 割込みコントローラのハードウェア構成 ..........................................................................254 割込みコントローラのブロックダイヤグラム ..........................................................................255 割込みスタック 割込みスタック .......................................................56 割込み制御 割込み制御のレジスタ一覧 .................................256 割込み制御レジスタ 割込み制御レジスタ (ICR00 ∼ ICR47:Interrupt Control Register) ..........................................................................258 割込みベクタ 割込みベクタ ........................................................ 407 割込み要因 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 218 割込み要因の解除 ................................................262 割込み要求 リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ...................................... 360 割込みレベル 割込みレベル .......................................................... 55 ワンショット動作 ワンショット動作 ................................................216 457 索引 458 CM71-10116-2 富士通半導体デバイス・CONTROLLER MANUAL FR30 32 ビット・マイクロコントローラ MB91151A Series ハードウェアマニュアル 2006 年 8 月 第 2 版発行 発行 富士通株式会社 編集 営業推進統括部 営業推進部 電子デバイス事業本部